From 9b219d1b664067729034647a4b37626cf2bf5e26 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 26 Dec 2013 23:18:36 +0000 Subject: koma-script (26dec13) git-svn-id: svn://tug.org/texlive/trunk@32489 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/koma-script/ChangeLog | 4081 +++++++++++----- .../texmf-dist/source/latex/koma-script/Makefile | 107 +- .../source/latex/koma-script/Makefile.baseinit | 16 +- .../source/latex/koma-script/Makefile.baserules | 4 +- .../source/latex/koma-script/doc/Makefile | 10 +- .../source/latex/koma-script/doc/Makefile.guide | 32 +- .../source/latex/koma-script/doc/bin/genhtmlidx.pl | 9 +- .../source/latex/koma-script/doc/english/Makefile | 14 +- .../latex/koma-script/doc/english/common-0.tex | 24 +- .../latex/koma-script/doc/english/common-1.tex | 16 +- .../latex/koma-script/doc/english/common-10.tex | 8 +- .../latex/koma-script/doc/english/common-11.tex | 8 +- .../latex/koma-script/doc/english/common-12.tex | 10 +- .../latex/koma-script/doc/english/common-13.tex | 8 +- .../latex/koma-script/doc/english/common-14.tex | 163 +- .../latex/koma-script/doc/english/common-15.tex | 8 +- .../latex/koma-script/doc/english/common-2.tex | 10 +- .../latex/koma-script/doc/english/common-20.tex | 127 + .../latex/koma-script/doc/english/common-21.tex | 765 +++ .../latex/koma-script/doc/english/common-3.tex | 8 +- .../latex/koma-script/doc/english/common-4.tex | 8 +- .../latex/koma-script/doc/english/common-5.tex | 379 +- .../latex/koma-script/doc/english/common-6.tex | 23 +- .../latex/koma-script/doc/english/common-7.tex | 9 +- .../latex/koma-script/doc/english/common-8.tex | 20 +- .../latex/koma-script/doc/english/common-9.tex | 14 +- .../latex/koma-script/doc/english/expertpart.tex | 8 +- .../koma-script/doc/english/guide-english.tex | 12 +- .../source/latex/koma-script/doc/english/guide.tex | 6 +- .../source/latex/koma-script/doc/english/htmlsetup | 5 +- .../latex/koma-script/doc/english/introduction.tex | 8 +- .../latex/koma-script/doc/english/japanlco.tex | 8 +- .../latex/koma-script/doc/english/preface.tex | 31 +- .../latex/koma-script/doc/english/scraddr.tex | 8 +- .../latex/koma-script/doc/english/scrbase.tex | 928 ++-- .../doc/english/scrbookreportarticle-experts.tex | 26 +- .../doc/english/scrbookreportarticle.tex | 263 +- .../latex/koma-script/doc/english/scrdatetime.tex | 15 +- .../latex/koma-script/doc/english/scrextend.tex | 41 +- .../latex/koma-script/doc/english/scrhack.tex | 18 +- .../doc/english/scrlayer-notecolumn.tex | 317 ++ .../doc/english/scrlayer-scrpage-experts.tex | 660 +++ .../koma-script/doc/english/scrlayer-scrpage.tex | 1128 +++++ .../latex/koma-script/doc/english/scrlayer.tex | 1242 +++++ .../latex/koma-script/doc/english/scrlfile.tex | 110 +- .../koma-script/doc/english/scrlttr2-experts.tex | 97 +- .../latex/koma-script/doc/english/scrlttr2.tex | 277 +- .../latex/koma-script/doc/english/scrpage2.tex | 18 +- .../latex/koma-script/doc/english/scrwfile.tex | 68 +- .../latex/koma-script/doc/english/tocbasic.tex | 229 +- .../koma-script/doc/english/typearea-experts.tex | 61 +- .../latex/koma-script/doc/english/typearea.tex | 221 +- .../source/latex/koma-script/doc/guide.bib | 33 +- .../source/latex/koma-script/doc/guide.tex | 6 +- .../latex/koma-script/doc/ngerman/common-0.tex | 124 +- .../latex/koma-script/doc/ngerman/common-1.tex | 29 +- .../latex/koma-script/doc/ngerman/common-11.tex | 14 +- .../latex/koma-script/doc/ngerman/common-12.tex | 29 +- .../latex/koma-script/doc/ngerman/common-14.tex | 210 +- .../latex/koma-script/doc/ngerman/common-20.tex | 136 + .../latex/koma-script/doc/ngerman/common-21.tex | 873 ++++ .../latex/koma-script/doc/ngerman/common-5.tex | 547 ++- .../latex/koma-script/doc/ngerman/common-8.tex | 57 +- .../koma-script/doc/ngerman/guide-ngerman.tex | 90 +- .../source/latex/koma-script/doc/ngerman/guide.tex | 6 +- .../source/latex/koma-script/doc/ngerman/htmlsetup | 5 +- .../latex/koma-script/doc/ngerman/introduction.tex | 263 +- .../latex/koma-script/doc/ngerman/scrbase.tex | 482 +- .../doc/ngerman/scrbookreportarticle.tex | 731 +-- .../latex/koma-script/doc/ngerman/scrextend.tex | 35 +- .../doc/ngerman/scrlayer-notecolumn-example.tex | 131 + .../doc/ngerman/scrlayer-notecolumn.tex | 679 +++ .../doc/ngerman/scrlayer-scrpage-experts.tex | 672 +++ .../koma-script/doc/ngerman/scrlayer-scrpage.tex | 1205 +++++ .../latex/koma-script/doc/ngerman/scrlayer.tex | 1436 ++++++ .../latex/koma-script/doc/ngerman/scrlfile.tex | 102 +- .../koma-script/doc/ngerman/scrlttr2-experts.tex | 24 +- .../latex/koma-script/doc/ngerman/scrlttr2.tex | 582 +-- .../latex/koma-script/doc/ngerman/scrpage2.tex | 40 +- .../latex/koma-script/doc/ngerman/tocbasic.tex | 211 +- .../koma-script/doc/ngerman/typearea-experts.tex | 19 +- .../latex/koma-script/doc/ngerman/typearea.tex | 318 +- .../source/latex/koma-script/doc/scrguide.cls | 162 +- .../source/latex/koma-script/japanlco.dtx | 6 +- .../source/latex/koma-script/scraddr.dtx | 29 +- .../source/latex/koma-script/scraddr.ins | 70 - .../source/latex/koma-script/scrbeta.dtx | 2 +- .../source/latex/koma-script/scrdocstrip.tex | 311 ++ .../source/latex/koma-script/scrextend.dtx | 20 +- .../source/latex/koma-script/scrhack.dtx | 102 +- .../source/latex/koma-script/scrjura.dtx | 432 +- .../source/latex/koma-script/scrkbase.dtx | 1928 -------- .../source/latex/koma-script/scrkbib.dtx | 592 --- .../source/latex/koma-script/scrkcile.dtx | 159 - .../source/latex/koma-script/scrkcomp.dtx | 430 -- .../source/latex/koma-script/scrkernel-basics.dtx | 2829 +++++++++++ .../latex/koma-script/scrkernel-bibliography.dtx | 661 +++ .../koma-script/scrkernel-circularletters.dtx | 159 + .../latex/koma-script/scrkernel-compatibility.dtx | 497 ++ .../source/latex/koma-script/scrkernel-floats.dtx | 1567 +++++++ .../source/latex/koma-script/scrkernel-fonts.dtx | 1933 ++++++++ .../latex/koma-script/scrkernel-footnotes.dtx | 611 +++ .../source/latex/koma-script/scrkernel-index.dtx | 342 ++ .../latex/koma-script/scrkernel-language.dtx | 1481 ++++++ .../koma-script/scrkernel-letterclassoptions.dtx | 1464 ++++++ .../koma-script/scrkernel-listsandtabulars.dtx | 511 ++ .../source/latex/koma-script/scrkernel-listsof.dtx | 961 ++++ .../latex/koma-script/scrkernel-miscellaneous.dtx | 598 +++ .../latex/koma-script/scrkernel-notepaper.dtx | 3657 +++++++++++++++ .../latex/koma-script/scrkernel-pagestyles.dtx | 831 ++++ .../latex/koma-script/scrkernel-paragraphs.dtx | 703 +++ .../latex/koma-script/scrkernel-pseudolengths.dtx | 251 + .../latex/koma-script/scrkernel-sections.dtx | 3145 +++++++++++++ .../source/latex/koma-script/scrkernel-title.dtx | 924 ++++ .../latex/koma-script/scrkernel-typearea.dtx | 2716 +++++++++++ .../latex/koma-script/scrkernel-variables.dtx | 376 ++ .../source/latex/koma-script/scrkernel-version.dtx | 194 + .../source/latex/koma-script/scrkfloa.dtx | 1556 ------- .../source/latex/koma-script/scrkfont.dtx | 1564 ------- .../source/latex/koma-script/scrkftn.dtx | 606 --- .../source/latex/koma-script/scrkidx.dtx | 335 -- .../source/latex/koma-script/scrklang.dtx | 1001 ---- .../source/latex/koma-script/scrklco.dtx | 1448 ------ .../source/latex/koma-script/scrkliof.dtx | 890 ---- .../source/latex/koma-script/scrklist.dtx | 491 -- .../source/latex/koma-script/scrkmisc.dtx | 545 --- .../source/latex/koma-script/scrknpap.dtx | 3489 -------------- .../source/latex/koma-script/scrkpage.dtx | 804 ---- .../source/latex/koma-script/scrkpar.dtx | 694 --- .../source/latex/koma-script/scrkplen.dtx | 250 - .../source/latex/koma-script/scrksect.dtx | 3064 ------------ .../source/latex/koma-script/scrktare.dtx | 2465 ---------- .../source/latex/koma-script/scrktitl.dtx | 702 --- .../source/latex/koma-script/scrkvars.dtx | 375 -- .../source/latex/koma-script/scrkvers.dtx | 182 - .../latex/koma-script/scrlayer-notecolumn.dtx | 1927 ++++++++ .../source/latex/koma-script/scrlayer-scrpage.dtx | 2915 ++++++++++++ .../source/latex/koma-script/scrlayer.dtx | 4901 ++++++++++++++++++++ .../source/latex/koma-script/scrlettr.dtx | 2836 ----------- .../source/latex/koma-script/scrlettr.ins | 72 - .../source/latex/koma-script/scrlfile.dtx | 286 +- .../source/latex/koma-script/scrlfile.ins | 185 - .../source/latex/koma-script/scrlogo.dtx | 6 +- .../source/latex/koma-script/scrmain.ins | 585 +-- .../source/latex/koma-script/scrpage.dtx | 1543 +++--- .../source/latex/koma-script/scrpage.ins | 75 - .../source/latex/koma-script/scrsource.tex | 52 +- .../source/latex/koma-script/scrstrip.inc | 103 +- .../source/latex/koma-script/scrstrop.inc | 39 +- .../source/latex/koma-script/scrtime.dtx | 61 +- .../source/latex/koma-script/scrwfile.dtx | 126 +- .../source/latex/koma-script/tocbasic.dtx | 593 ++- .../source/latex/koma-script/tocstyle.dtx | 82 +- 153 files changed, 55713 insertions(+), 32564 deletions(-) create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/english/common-20.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/english/common-21.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer-notecolumn.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer-scrpage-experts.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer-scrpage.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-20.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-21.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-notecolumn-example.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-notecolumn.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-scrpage-experts.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-scrpage.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer.tex delete mode 100644 Master/texmf-dist/source/latex/koma-script/scraddr.ins create mode 100644 Master/texmf-dist/source/latex/koma-script/scrdocstrip.tex delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkbase.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkbib.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkcile.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkcomp.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-bibliography.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-circularletters.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-compatibility.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-floats.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-fonts.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-footnotes.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-index.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-language.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-letterclassoptions.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-listsandtabulars.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-listsof.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-notepaper.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-pagestyles.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-paragraphs.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-pseudolengths.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-title.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-variables.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrkernel-version.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkfont.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkftn.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkidx.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrklang.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrklco.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkliof.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrklist.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkmisc.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrknpap.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkpage.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkpar.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkplen.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrksect.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrktare.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrktitl.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkvars.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrkvers.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrlayer-notecolumn.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrlayer-scrpage.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrlayer.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrlettr.dtx delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrlettr.ins delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrlfile.ins delete mode 100644 Master/texmf-dist/source/latex/koma-script/scrpage.ins (limited to 'Master/texmf-dist/source/latex/koma-script') diff --git a/Master/texmf-dist/source/latex/koma-script/ChangeLog b/Master/texmf-dist/source/latex/koma-script/ChangeLog index 5765029f990..f413f9ae912 100644 --- a/Master/texmf-dist/source/latex/koma-script/ChangeLog +++ b/Master/texmf-dist/source/latex/koma-script/ChangeLog @@ -1,11 +1,1622 @@ +r1562 2013-12-19 08:51:16 +0100 mjk: + + * tocstyle.dtx, scrjura.dtx, scrstrip.inc, Makefile, scrcounter.dtx, + scrwfile.dtx: prepared for 3.12 + +r1560 2013-12-19 08:13:30 +0100 mjk: + + * scrkernel-version.dtx: prepared for 3.12 + +r1559 2013-12-18 07:42:31 +0100 mjk: + + * doc/ngerman/common-21.tex, doc/ngerman/scrlayer-scrpage.tex: einige + Korrekturen von Elke + +r1558 2013-12-17 14:46:13 +0100 mjk: + + * doc/ngerman/scrlayer-scrpage-experts.tex, + doc/ngerman/common-21.tex, doc/ngerman/scrlayer-scrpage.tex: einige + Verbesserungen für die nächste Buchauflage + +r1557 2013-12-17 12:05:35 +0100 mjk: + + * doc/scrguide.cls: fix: of last commit + +r1556 2013-12-17 12:05:13 +0100 mjk: + + * doc/scrguide.cls: markup for some additional KOMA-Script commands + +r1555 2013-12-17 09:01:58 +0100 mjk: + + * doc/ngerman/scrlayer-scrpage-experts.tex: fix: label-Fehler + +r1554 2013-12-17 08:45:48 +0100 mjk: + + * doc/ngerman/common-20.tex: einige Formulierungen verbessert und + Teile der Einleitung als ergänzende Informationen formatiert + +r1553 2013-12-16 18:08:48 +0100 mjk: + + * TODO, doc/ngerman/scrbookreportarticle.tex: \partnumdepth, + \chapternumdepth … \subparagraphnumdepth, \ifnumbered, + \ifunnumbered auf Deutsch dokumentiert + +r1552 2013-12-16 17:51:32 +0100 mjk: + + * scrkernel-sections.dtx: don't define \chapternumdepth in + scrartcl.cls + +r1551 2013-12-16 15:02:13 +0100 mjk: + + * scrkernel-sections.dtx, scrkernel-pagestyles.dtx, TODO: new: + \partnumdepth, \chapternumdepth … \subparagraphnumdepth, + \ifnumbered, \ifunnumbered + +r1550 2013-12-16 09:10:28 +0100 mjk: + + * doc/ngerman/typearea.tex: einen scrpage2-Verweis ergänzt + +r1549 2013-12-14 18:44:34 +0100 mjk: + + * TODO: \@pageat bei Verwendung von scrlayer-scrpage mit scrlttr2 + berücksichtigen + +r1548 2013-12-14 18:36:23 +0100 mjk: + + * scrlayer-scrpage.dtx: support for scrlttr2 added + +r1547 2013-12-14 18:23:38 +0100 mjk: + + * scrpage.dtx: fix for \rohead if page number left at head and + scrlttr2 + +r1546 2013-12-13 17:39:21 +0100 mjk: + + * doc/english/scrlayer.tex: several changes by Jana and some by myself + +r1545 2013-12-13 16:32:18 +0100 mjk: + + * doc/english/scrbase.tex: "There is not a …" --> "There is no …" + +r1544 2013-12-13 12:13:03 +0100 mjk: + + * doc/english/scrdatetime.tex: brace fix + +r1543 2013-12-13 12:11:01 +0100 mjk: + + * doc/english/common-9.tex, doc/english/scrlayer-scrpage-experts.tex, + doc/english/scrlfile.tex, doc/english/common-21.tex, + doc/english/common-0.tex, doc/english/scrlttr2.tex, + doc/english/scrextend.tex, doc/english/common-2.tex, + doc/english/common-10.tex, doc/english/scrbookreportarticle.tex, + doc/english/scrlayer-scrpage.tex, doc/english/common-15.tex, + doc/english/common-12.tex, doc/english/scrdatetime.tex, + doc/english/common-1.tex, doc/english/introduction.tex, + doc/english/scrlayer.tex, doc/english/common-8.tex, + doc/english/common-13.tex, doc/english/common-11.tex, + doc/english/typearea-experts.tex, doc/english/typearea.tex, + doc/english/scrlttr2-experts.tex, doc/english/common-20.tex, + doc/english/scrbase.tex, doc/english/common-6.tex, + doc/english/common-3.tex, doc/english/common-7.tex, + doc/english/japanlco.tex, doc/english/common-4.tex, + doc/english/scraddr.tex, doc/english/scrhack.tex, + doc/english/expertpart.tex, + doc/english/scrbookreportarticle-experts.tex, + doc/english/preface.tex, doc/english/common-5.tex, + doc/english/scrpage2.tex: uniformation of serveral terms + +r1542 2013-12-13 10:31:29 +0100 mjk: + + * doc/english/scrbase.tex: line break + +r1541 2013-12-13 10:18:28 +0100 mjk: + + * doc/english/scrbase.tex: a lot of improvements by Melvin + +r1540 2013-12-12 19:57:43 +0100 mjk: + + * doc/english/scrbase.tex: some of Melvin's improvements + +r1539 2013-12-12 16:57:36 +0100 mjk: + + * doc/ngerman/common-14.tex: Tippfehler [Elke] + +r1538 2013-12-12 12:01:33 +0100 mjk: + + * TODO, doc/ngerman/common-0.tex, doc/ngerman/scrlttr2.tex, + doc/ngerman/common-1.tex, doc/ngerman/common-5.tex: noch ein paar + Änderungen für das nächste Buch + +r1537 2013-12-11 20:21:09 +0100 mjk: + + * doc/scrguide.cls, doc/ngerman/common-0.tex, + doc/ngerman/scrbookreportarticle.tex, doc/ngerman/common-12.tex, + doc/ngerman/common-1.tex, doc/ngerman/common-8.tex, + doc/ngerman/common-11.tex, doc/ngerman/typearea.tex, + doc/ngerman/common-14.tex, doc/ngerman/common-5.tex: diverse + Änderungen für die nächste Auflage + +r1536 2013-12-11 10:18:01 +0100 mjk: + + * doc/scrguide.cls, doc/ngerman/common-0.tex, + doc/ngerman/introduction.tex, doc/ngerman/typearea.tex: einige + Anpassungen für die nächste Buchauflage + +r1535 2013-12-11 08:22:22 +0100 mjk: + + * doc/ngerman/guide-ngerman.tex: Künftig wird die Anleitung nur noch + einen Autor haben (sobald das Kapitel über scrpage2 ausgelagert + ist) + +r1534 2013-12-10 19:50:34 +0100 mjk: + + * doc/scrguide.cls, doc/english/htmlsetup, doc/ngerman/common-21.tex, + doc/ngerman/common-0.tex, doc/ngerman/htmlsetup, + doc/ngerman/scrbookreportarticle.tex, + doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/scrlayer.tex, + doc/ngerman/common-20.tex, doc/ngerman/common-5.tex, + doc/bin/genhtmlidx.pl: some tiny steps towards a new book + +r1533 2013-12-10 19:06:14 +0100 mjk: + + * tocbasic.dtx: usage of default placement (option floatpos of + \DeclareNewTOC) fixed + +r1532 2013-12-10 11:28:56 +0100 mjk: + + * doc/ngerman/common-0.tex: einige Dinge sind für scrlayer etc. + unerheblich + +r1531 2013-12-10 10:57:42 +0100 mjk: + + * doc/Makefile.guide: notecolumn example source added to DIST_SRC + +r1530 2013-12-09 09:13:47 +0100 mjk: + + * doc/english/scrbase.tex: language + +r1529 2013-12-03 08:36:57 +0100 mjk: + + * scrkernel-miscellaneous.dtx: titlesec breaks some KOMA-Script + features + +r1528 2013-11-25 09:39:27 +0100 mjk: + + * doc/english/scrlayer-scrpage.tex, doc/english/common-20.tex: more + fixes by Jens + +r1527 2013-11-24 11:40:41 +0100 mjk: + + * doc/english/scrlayer.tex: improvement by Jana + +r1526 2013-11-24 10:49:38 +0100 mjk: + + * doc/english/scrlfile.tex, doc/ngerman/scrlfile.tex: kleinere + Tippfehler [Elke] + +r1525 2013-11-22 13:57:29 +0100 mjk: + + * scrlfile.dtx, doc/english/scrlfile.tex, doc/ngerman/scrlfile.tex: + new: \UnPreventPackageFromLoading + +r1524 2013-11-22 12:04:59 +0100 mjk: + + * doc/ngerman/scrlfile.tex: fix: docu loop + +r1523 2013-11-22 11:52:58 +0100 mjk: + + * scrlfile.dtx, doc/english/scrlfile.tex, doc/ngerman/scrlfile.tex: + new: optional argument for \PreventPackageFromLoading fix: spaces in + package lists destroyed + +r1522 2013-11-22 09:11:42 +0100 mjk: + + * scrkernel-listsof.dtx: \numberline uses \numberline@numberformat + only if the argument expands to a non-empty string and #1 else + +r1521 2013-11-22 09:06:08 +0100 mjk: + + * scrkernel-listsof.dtx: \numberline@format doesn't output anything if + #1 is empty + +r1520 2013-11-21 16:22:43 +0100 mjk: + + * doc/english/typearea.tex, doc/ngerman/typearea.tex: onehalfspacing + example improved + +r1519 2013-11-21 16:13:48 +0100 mjk: + + * doc/english/common-14.tex: date of translated file + +r1518 2013-11-21 15:54:26 +0100 mjk: + + * doc/english/common-14.tex, doc/ngerman/common-14.tex: fix: cover + page margin macros [Falk] + +r1517 2013-11-21 14:02:39 +0100 mjk: + + * scrkernel-title.dtx, doc/english/common-14.tex, + doc/ngerman/common-14.tex: new option titlepage=firstiscover + +r1516 2013-11-19 09:06:20 +0100 mjk: + + * tocbasic.dtx: fix: \@addxcontentsline had wrong logic and used + optional instead of mandatory second argument at add#2#1entry case + +r1515 2013-11-15 11:26:00 +0100 mjk: + + * scrlfile.dtx, doc/english/scrlfile.tex, doc/ngerman/scrlfile.tex: - + renamed \ReplaceFile into \ReplaceInput - new commands: + \UnReplaceInput, \UnReplacePackage, \UnReplaceClass + +r1514 2013-11-15 09:23:09 +0100 mjk: + + * scrlayer-notecolumn.dtx, doc/english/scrlayer-scrpage-experts.tex, + doc/english/common-21.tex, doc/english/scrlayer-scrpage.tex, + doc/english/scrlayer.tex, doc/ngerman/scrlayer-scrpage.tex, + doc/ngerman/scrlayer.tex: more fixes by several translators + +r1513 2013-11-11 11:36:34 +0100 mjk: + + * TODO: emulatestandardclasses + +r1512 2013-11-11 11:35:04 +0100 mjk: + + * scrkernel-compatibility.dtx, scrkernel-typearea.dtx: + emulatestandardclasses not for scrlttr2 + +r1511 2013-11-11 11:21:33 +0100 mjk: + + * scrkernel-sections.dtx, scrkernel-compatibility.dtx, + scrkernel-typearea.dtx: new option emulatestandardclasses + +r1510 2013-11-11 07:46:10 +0100 mjk: + + * doc/english/scrlayer.tex, doc/ngerman/common-21.tex, + doc/ngerman/scrlayer.tex: minor fixes, e.g., references + +r1509 2013-11-11 07:34:23 +0100 mjk: + + * doc/english/scrlayer-scrpage.tex: Umlaut + +r1508 2013-11-09 15:33:06 +0100 mjk: + + * doc/english/scrlayer-scrpage.tex: first corrections by Jens + +r1507 2013-11-07 18:44:10 +0100 mjk: + + * doc/english/common-21.tex, doc/english/scrlayer.tex: additional typo + and grammer fixes by Elke + +r1506 2013-11-07 17:41:36 +0100 mjk: + + * doc/english/scrlttr2.tex, doc/english/common-8.tex, + doc/ngerman/scrlttr2.tex, doc/ngerman/common-8.tex: fix: \KOMAoption + --> \KOMAoptions + +r1505 2013-11-07 12:23:38 +0100 mjk: + + * doc/english/common-21.tex, doc/english/scrlayer-scrpage.tex, + doc/english/common-20.tex: peinliche Fehler korrigiert + +r1504 2013-11-07 08:26:20 +0100 mjk: + + * doc/english/common-21.tex, doc/english/scrlayer-scrpage.tex: some + more suggestions by Jana + +r1503 2013-11-06 12:44:59 +0100 mjk: + + * scrkernel-language.dtx, doc/english/scrbase.tex, + doc/ngerman/scrbase.tex: doc of changes of \defcaptionname, + \providecaptionname, \newcaptionname, and \renewcaptionname + +r1502 2013-11-06 12:00:12 +0100 mjk: + + * scrkernel-sections.dtx, scrpage.dtx, tocstyle.dtx, scrjura.dtx, + scrkernel-listsandtabulars.dtx, scrlayer-notecolumn.dtx, + scrkernel-miscellaneous.dtx, scrkernel-floats.dtx, + scrkernel-typearea.dtx, scrkernel-basics.dtx: implementation doc + fixed: missing backslash at argument of macro environmant + +r1501 2013-11-06 11:48:33 +0100 mjk: + + * scrkernel-language.dtx: change: allow spaces in the language lists + +r1500 2013-11-06 10:22:28 +0100 mjk: + + * scrkernel-basics.dtx: better usage of \FamilyUnknownKeyValue + +r1499 2013-11-05 18:22:29 +0100 mjk: + + * scrkernel-letterclassoptions.dtx: change: test for correct paper + size with tolerance of ± 0.1 mm + +r1498 2013-11-05 17:00:39 +0100 mjk: + + * scrkernel-compatibility.dtx: option version sets + \FamilyKeyStateProcessed + +r1497 2013-11-05 16:39:50 +0100 mjk: + + * TODO: new: \FamilyCounterKey, \FamilySetCounter, + \FamilyCounterMacroKey, \FamilySetCounterMacro, \FamilyLengthKey, + \FamilySetLength, \FamilyLengthMacroKey, \FamilySetLengthMacro + +r1496 2013-11-05 16:20:41 +0100 mjk: + + * scrkernel-basics.dtx: new: \FamilyCounterKey, \FamilySetCounter, + \FamilyCounterMacroKey, \FamilySetCounterMacro, \FamilyLengthKey, + \FamilySetLength, \FamilyLengthMacroKey, \FamilySetLengthMacro + +r1495 2013-11-05 15:51:50 +0100 mjk: + + * Makefile: scrdocstrip.tex isn't a CLS_FILE + +r1494 2013-11-05 12:31:16 +0100 mjk: + + * scrkernel-basics.dtx, doc/, doc/english/, doc/english/scrbase.tex, + doc/ngerman/, doc/ngerman/scrbase.tex: new: \ifisdimension, \ifisglue, + \ifisnumber + +r1493 2013-11-05 12:04:57 +0100 mjk: + + * scrkernel-basics.dtx: two new internal macros renamed + +r1492 2013-11-05 10:22:47 +0100 mjk: + + * scrkernel-basics.dtx, doc/, doc/english/, doc/english/scrbase.tex, + doc/ngerman/, doc/ngerman/scrbase.tex: new commands \ifstrstart, + \ifisdimen, \ifisskip, \ifiscount, \ifiscounter, \ifisdimexpr, + \ifisglueexpr, \ifisnumexpr + +r1491 2013-11-05 08:11:30 +0100 mjk: + + * TODO: one item removed + +r1490 2013-11-04 16:42:23 +0100 mjk: + + * doc/, doc/english/, doc/english/scrlayer-scrpage.tex: Elke told me, + that only Jana does translation suggestions + +r1489 2013-11-04 16:38:30 +0100 mjk: + + * scrjura.dtx: angepasst an Signalisierung mit \FamilyKeyState in + scrbase.sty + +r1488 2013-11-04 11:44:34 +0100 mjk: + + * doc/, doc/english/, doc/english/typearea.tex: missing footlines and + footheight + +r1487 2013-11-04 11:44:15 +0100 mjk: + + * doc/, doc/english/, doc/english/scrlayer-scrpage-experts.tex, + doc/english/common-21.tex, doc/english/common-20.tex: Korrekturen von + Fam. Schuster + +r1486 2013-11-04 11:38:49 +0100 mjk: + + * doc/, doc/ngerman/, doc/ngerman/typearea.tex: footlines korrigiert + (Bezüge zur Kopfzeile) + +r1485 2013-11-04 11:37:58 +0100 mjk: + + * doc/, doc/english/, doc/english/scrlayer-scrpage.tex: Usage of + automatic date + +r1484 2013-11-04 11:35:45 +0100 mjk: + + * doc/, doc/english/, doc/english/typearea.tex: - type-area --> type + area - description of footheight and footlines + +r1483 2013-10-31 16:12:30 +0100 mjk: + + * scrkernel-fonts.dtx: change: usage of old font commands is + deprecated + +r1482 2013-10-31 11:08:48 +0100 mjk: + + * doc/, doc/english/, doc/english/scrlayer.tex: fix: two references + +r1481 2013-10-31 11:00:19 +0100 mjk: + + * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: do not generate or use + generated user manual + +r1480 2013-10-31 11:00:02 +0100 mjk: + + * scrlayer.dtx, doc/, doc/english/, doc/english/scrlayer.tex: do not + generate or use generated user manual + +r1479 2013-10-31 08:55:56 +0100 mjk: + + * scrkernel-title.dtx: file date + +r1478 2013-10-31 08:52:14 +0100 mjk: + + * scrkernel-title.dtx, doc/, doc/english/, doc/english/scrlayer.tex: + start with English translation of scrlayer.tex + +r1477 2013-10-31 08:48:26 +0100 mjk: + + * scrdocstrip.tex: fix: Line break in error message + +r1476 2013-10-31 08:34:11 +0100 mjk: + + * scrdocstrip.tex: fix: error message for missing files + +r1475 2013-10-30 19:00:11 +0100 mjk: + + * scrkernel-letterclassoptions.dtx: revert last check in + +r1474 2013-10-30 18:17:43 +0100 mjk: + + * scrkernel-letterclassoptions.dtx: classes do not longer support + parsed options like BCOR (instead of BCOR=), but + typearea does still provide them, so most users should not see any + difference + +r1473 2013-10-30 12:29:25 +0100 mjk: + + * scrkernel-basics.dtx: new: \ifintnumber{string}{if string is an + integer}{if string isn't an integer} + +r1472 2013-10-29 13:34:04 +0100 mjk: + + * README.in/: more README sourced + +r1471 2013-10-29 10:20:28 +0100 mjk: + + * TODO, doc/, doc/english/, doc/english/preface.tex: the drafts of + several translations have been finished + +r1470 2013-10-29 10:15:06 +0100 mjk: + + * scrlayer-notecolumn.dtx: initial label fixed + +r1469 2013-10-29 10:06:32 +0100 mjk: + + * manifest.txt, doc/, doc/english/, doc/english/common-21.tex, + doc/english/Makefile, doc/ngerman/, doc/ngerman/scrlayer.tex: draft + translation of scrlayer.tex + +r1468 2013-10-28 18:05:25 +0100 mjk: + + * doc/, doc/english/, doc/english/scrlayer-scrpage-experts.tex: draft + translation of all sections + +r1467 2013-10-28 17:01:06 +0100 mjk: + + * doc/, doc/english/, doc/english/scrlayer-scrpage-experts.tex: draft + translation of one more section + +r1466 2013-10-28 10:55:12 +0100 mjk: + + * doc/, doc/english/, doc/english/scrlayer-scrpage-experts.tex, + doc/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex: draft + translation of one more section + +r1465 2013-10-28 10:40:23 +0100 mjk: + + * scrlayer-scrpage.dtx: fix: typo \providepairofpagestyle --> + \providepairofpagestyles + +r1464 2013-10-28 07:37:21 +0100 mjk: + + * TODO: addmargin issue + +r1463 2013-10-26 17:53:02 +0200 mjk: + + * scrkernel-listsandtabulars.dtx: New: warning, if a "addmargin*" + environment's begin and end are not on the same page + +r1462 2013-10-24 11:10:06 +0200 mjk: + + * manifest.txt, doc/, doc/guide.tex, doc/Makefile.guide, + doc/english/, doc/english/scrlayer-scrpage-experts.tex, + doc/english/scrlayer-scrpage.tex, doc/ngerman/, + doc/ngerman/scrlayer-scrpage-experts.tex, + doc/ngerman/scrlayer-scrpage.tex: chapter about scrlayer splitted into + an author and an expert chapter + +r1461 2013-10-24 09:17:58 +0200 mjk: + + * doc/, doc/english/, doc/english/scrlayer-scrpage.tex, doc/ngerman/, + doc/ngerman/scrlayer-scrpage.tex: draft translation of section 6.4 + finished + +r1460 2013-10-23 18:57:19 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/common-21.tex: ein paar Korrekturen + von Elke + +r1459 2013-10-23 18:51:46 +0200 mjk: + + * TODO: Paket/Paketes + +r1458 2013-10-23 11:35:31 +0200 mjk: + + * doc/, doc/english/, doc/english/common-21.tex, + doc/english/scrlayer-scrpage.tex: a kind of translation + +r1457 2013-10-23 11:34:02 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/common-21.tex: Umbruch + +r1456 2013-10-23 11:16:09 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/common-21.tex: fehlendes Beispiel + für \GenericMarkFormat + +r1455 2013-10-23 09:58:56 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/common-21.tex: einige zustätzliche + Index-Einträge + +r1454 2013-10-23 09:21:29 +0200 mjk: + + * doc/, doc/scrguide.cls: \nentry fixed + +r1453 2013-10-23 09:19:07 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/common-21.tex: string --> Text + +r1452 2013-10-22 18:42:26 +0200 mjk: + + * doc/, doc/english/, doc/english/scrlayer-scrpage.tex: only a comment + +r1451 2013-10-22 18:41:02 +0200 mjk: + + * doc/, doc/english/, doc/english/scrlayer-scrpage.tex: a kind of + translation of some parts + +r1450 2013-10-22 18:40:01 +0200 mjk: + + * doc/, doc/english/, doc/english/common-21.tex: a kind of translation + of some parts + +r1449 2013-10-22 11:23:23 +0200 mjk: + + * doc/, doc/english/, doc/english/common-21.tex: only note about + untranslated state + +r1448 2013-10-22 11:17:09 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/common-21.tex: \ProvidesFile --> + \KOMAProvidesFile + +r1447 2013-10-22 10:39:40 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex: ein paar + kleine Fehlerkorrekturen + +r1446 2013-10-22 10:38:47 +0200 mjk: + + * doc/, doc/english/, doc/english/scrlayer-scrpage.tex: some + translations of German scrlayer-scrpage.tex + +r1445 2013-10-18 15:18:41 +0200 mjk: + + * scrlayer-scrpage.dtx, doc/, doc/english/, doc/english/Makefile, + doc/english/common-20.tex, doc/ngerman/, + doc/ngerman/scrlayer-scrpage.tex: start of translation of + scrlayer-scrpage chapter + +r1444 2013-10-18 12:21:16 +0200 mjk: + + * doc/, doc/scrguide.cls: forgotte \newcommand + +r1443 2013-10-18 12:20:49 +0200 mjk: + + * doc/, doc/scrguide.cls: \KOMAProvidesFile fixed + +r1442 2013-10-18 11:02:10 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex: Dieses Kapitel + stammt von Markus Kohm und wird auch von ihm verwaltet. + +r1441 2013-10-18 10:56:55 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/common-20.tex: some more index + entries + +r1440 2013-10-18 09:03:54 +0200 mjk: + + * Makefile: typo fix + +r1439 2013-10-18 09:03:09 +0200 mjk: + + * doc/, doc/Makefile: file date + +r1438 2013-10-18 09:02:49 +0200 mjk: + + * doc/, doc/Makefile: new html links for new packages + +r1437 2013-10-18 08:57:59 +0200 mjk: + + * Makefile: installation installs also scrdocstrip.tex + +r1436 2013-10-18 08:55:34 +0200 mjk: + + * Makefile.baseinit: INSTALLTEXDIR added (currently unused) + +r1435 2013-10-17 11:09:09 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/typearea.tex: zwei Tippfehler (Elke) + +r1434 2013-10-16 16:25:26 +0200 mjk: + + * TODO: german manual of scrlayer-notecolumn add + +r1433 2013-10-16 16:24:20 +0200 mjk: + + * scrlayer-notecolumn.dtx, manifest.txt, doc/, doc/guide.tex, + doc/Makefile.guide, doc/english/, doc/english/Makefile, doc/ngerman/, + doc/ngerman/scrlayer-notecolumn-example.tex, + doc/ngerman/scrlayer-notecolumn.tex: user manual of + scrlayer-notecolumn added + +r1432 2013-10-16 13:10:21 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/typearea.tex: Erklärung, die + bereits in Abschnitt 2.4 zu finden ist, wieder entfernt + +r1431 2013-10-16 13:05:21 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/typearea.tex: fix: mainindex --> + indexmain + +r1430 2013-10-16 13:01:50 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex, + doc/ngerman/scrlayer.tex, doc/ngerman/typearea.tex, + doc/ngerman/scrpage2.tex: Berücksichtigung von scrlayer-scrpage bei + typearea + +r1429 2013-10-16 12:10:43 +0200 mjk: + + * TODO, manifest.txt, doc/, doc/guide.tex, doc/Makefile.guide, + doc/english/, doc/english/Makefile, doc/ngerman/, + doc/ngerman/scrlayer.tex: user manual for scrlayer added to part II of + the KOMA-Script guide + +r1428 2013-10-16 11:48:56 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex: line break + change + +r1427 2013-10-16 11:47:53 +0200 mjk: + + * doc/, doc/scrguide.cls, doc/ngerman/, + doc/ngerman/scrlayer-scrpage.tex: new \KOMAProvidesFile to avoid + forgotten file date changes + +r1426 2013-10-16 11:45:39 +0200 mjk: + + * scrlayer.dtx: doc generation fixed + +r1425 2013-10-16 11:19:06 +0200 mjk: + + * manifest.txt: scrlayer-scrpage.tex added + +r1424 2013-10-16 08:56:53 +0200 mjk: + + * manifest.txt, doc/, doc/Makefile.guide, doc/english/, + doc/english/common-21.tex, doc/english/common-20.tex, doc/ngerman/, + doc/ngerman/common-21.tex, doc/ngerman/scrlayer-scrpage.tex, + doc/ngerman/common-20.tex: Anleitung für scrlayer-scrpage + +r1423 2013-10-15 10:17:36 +0200 mjk: + + * doc/, doc/english/, doc/english/typearea.tex, doc/ngerman/, + doc/ngerman/typearea.tex: documentation of changed BCOR interpreataion + with "twoside=semi" + +r1422 2013-10-15 09:11:07 +0200 mjk: + + * Makefile.baseinit, Makefile, Makefile.baserules: generate + scrsource.pdf instead of scrsource.dvi to check source integrity + +r1421 2013-10-15 09:00:17 +0200 mjk: + + * scrkernel-typearea.dtx: without compatibility < 3.12 binding + correction will alternate using twoside=semi + +r1420 2013-10-14 18:03:55 +0200 mjk: + + * scrlayer-scrpage.dtx, doc/, doc/guide.tex, doc/Makefile.guide, + doc/english/, doc/english/Makefile, doc/ngerman/, + doc/ngerman/scrlayer-scrpage.tex: preparations for adding the user + manual of scrlayer-scrpage + +r1419 2013-10-14 11:07:52 +0200 mjk: + + * scrlayer-notecolumn.dtx, scrlayer-scrpage.dtx, scrlayer.dtx: package + generation issues fixed (Elke) + +r1418 2013-10-08 18:14:06 +0200 mjk: + + * TODO: missing docu + +r1417 2013-10-08 18:12:40 +0200 mjk: + + * Makefile, scrmain.ins, scrlayer-notecolumn.dtx, + scrlayer-scrpage.dtx, scrlayer.dtx, manifest.txt: scrlayer, + scrlayer-scrpage, and scrlayer-notecolumn have been added to + KOMA-Script + +r1416 2013-10-08 17:43:26 +0200 mjk: + + * scrlayer-notecolumn.dtx, scrlayer-scrpage.dtx, scrlayer.dtx: first + integrated version of scrlayer-notecolumn + +r1415 2013-10-08 17:33:01 +0200 mjk: + + * scrlayer-scrpage.dtx, scrlayer.dtx: first integrated version of + scrlayer-scrpage + +r1414 2013-10-08 17:18:47 +0200 mjk: + + * scrlayer.dtx: initial integrated version of new package scrlayer + +r1413 2013-10-08 17:06:47 +0200 mjk: + + * tocbasic.dtx: use scrdocstrip instead of docstrip + +r1412 2013-10-08 12:50:05 +0200 mjk: + + * TODO: calculation of \intextsep fixed + +r1411 2013-10-08 12:45:17 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: fehlendes + Leerzeichen ergänzt (zweiter Absatz open=Methode) + +r1410 2013-10-08 12:30:47 +0200 mjk: + + * scrkernel-fonts.dtx: if compytibility >= 3.12 the calculations of + the callback solution of option fontsize have been changed + +r1409 2013-10-08 10:28:00 +0200 mjk: + + * scrkernel-compatibility.dtx: version 3.12 is a new compatibility + level + +r1408 2013-10-08 09:19:41 +0200 mjk: + + * scrkernel-fonts.dtx: double defined \partopsep removed one time + +r1407 2013-10-08 08:34:19 +0200 mjk: + + * TODO: is \intextsep correct? + +r1406 2013-10-05 13:05:50 +0200 mjk: + + * README.in/: more README sources + +r1405 2013-10-05 12:56:56 +0200 mjk: + + * tocbasic.dtx: fix: spacing in the abstract of the user manual + +r1404 2013-10-05 12:31:12 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex, + doc/ngerman/common-5.tex: Kopier- bzw. Tippfehler [Elke] + +r1403 2013-10-04 19:33:44 +0200 mjk: + + * README.in/: more README sources + +r1402 2013-10-04 18:51:05 +0200 mjk: + + * scrkernel-fonts.dtx: improved package version generation + +r1401 2013-10-04 13:14:32 +0200 mjk: + + * scrkernel-letterclassoptions.dtx, doc/, doc/english/, + doc/english/scrlttr2-experts.tex, doc/ngerman/, + doc/ngerman/scrlttr2-experts.tex: the third visualization style is + "edges" not "edge" + +r1400 2013-10-02 20:45:58 +0200 mjk: + + * Makefile: improved README generation while release build + +r1399 2013-10-02 20:45:51 +0200 mjk: + + * README.in/, README.in/README.scrlttr2.cls, + README.in/README.scrreprt.cls, README.in/README.scrbook.cls: typo + fixed + +r1398 2013-10-02 20:35:25 +0200 mjk: + + * README.in/, README.in/README.scrdoc.cls, + README.in/README.scrbook.cls, README.in/README.scrartcl.cls: more + basic READMEs + +r1397 2013-10-02 19:01:51 +0200 mjk: + + * README.in/, README.in/README.scrlttr2.cls, + README.in/README.scrreprt.cls, README.in/README.scrdoc.cls, + README.in/README.scrbook.cls, README.in/README.scrartcl.cls: some + files with basic package and class descriptions + +r1396 2013-10-02 19:01:06 +0200 mjk: + + * Makefile: fix of missing files for docstrip + +r1395 2013-10-02 18:37:13 +0200 mjk: + + * manifest.txt: scrdocstrip.tex added + +r1394 2013-10-02 11:12:48 +0200 mjk: + + * TODO, doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex, + doc/ngerman/tocbasic.tex: \addxcontentsline…, + \tocbasic@addxcontentsline, \nonumberline, Eigenschaft "numberline" + und die Klassenoptionen in diesem Zusammenhang dokumentiert + +r1393 2013-10-02 08:40:56 +0200 mjk: + + * scrjura.dtx, TODO: additional languages for scrjura + +r1392 2013-10-02 07:57:31 +0200 mjk: + + * README.SVN: some information for users without make + +r1391 2013-10-01 19:27:20 +0200 mjk: + + * scrdocstrip.tex: usage of \getlastextension fixed + +r1390 2013-10-01 18:16:36 +0200 mjk: + + * manifest.txt: wrong # replaced by % + +r1389 2013-10-01 18:06:04 +0200 mjk: + + * scrsource.tex, Makefile, scrmain.ins, scrkernel-variables.dtx, + manifest.txt: renamed scrkvars.dtx into scrkernel-variables.dtx + +r1388 2013-10-01 18:03:42 +0200 mjk: + + * scrsource.tex, scrkernel-pseudolengths.dtx, Makefile, scrmain.ins, + manifest.txt: renamed scrkplen.dtx into scrkernel-pseudolengths.dtx + +r1387 2013-10-01 18:00:49 +0200 mjk: + + * scrkernel-listsandtabulars.dtx: renamed scrklist.dtx into + scrkernel-listsandtabulars.dtx + +r1386 2013-10-01 18:00:20 +0200 mjk: + + * scrsource.tex, scrkernel-listsandtabulars.dtx, Makefile, + scrmain.ins, manifest.txt: renamed scrklists.dtx into + scrkernel-listsandtabulars.dtx + +r1385 2013-10-01 17:56:01 +0200 mjk: + + * scrkernel-letterclassoptions.dtx, Makefile, scrmain.ins, + manifest.txt: renamed scrklco.dtx into + scrkernel-letterclassoptions.dtx + +r1384 2013-10-01 17:51:14 +0200 mjk: + + * scrkernel-circularletters.dtx, Makefile, scrmain.ins, manifest.txt: + renamed scrkcile.dtx into scrkernel-circularletters.dtx + +r1383 2013-10-01 17:44:28 +0200 mjk: + + * scrpage.dtx, scrsource.tex, scrtime.dtx, scrhack.dtx, + scrkernel-version.dtx, Makefile, scrmain.ins, scrlfile.dtx, + komabug.tex, manifest.txt, scrkernel-typearea.dtx, + scrkernel-basics.dtx, tocbasic.dtx: renamed scrkvers.dtx into + scrkernel-version.dtx + +r1382 2013-10-01 17:37:45 +0200 mjk: + + * scrdocstrip.tex: new extension of docstrip.tex + +r1381 2013-10-01 17:33:08 +0200 mjk: + + * scrpage.dtx, scrtime.dtx, tocstyle.dtx, scrwfile.dtx, tocbasic.dtx: + usage of keyword substitution + +r1380 2013-10-01 17:31:55 +0200 mjk: + + * scrkernel-sections.dtx, scrpage.dtx, scrkernel-index.dtx, + scrtime.dtx, scrhack.dtx, scrkernel-bibliography.dtx, tocstyle.dtx, + scrkernel-version.dtx, scrjura.dtx, scrextend.dtx, scrlogo.dtx, + scrkernel-compatibility.dtx, scraddr.dtx, + scrkernel-pseudolengths.dtx, scrkernel-pagestyles.dtx, + scrkernel-letterclassoptions.dtx, scrkernel-circularletters.dtx, + scrkernel-fonts.dtx, scrbeta.dtx, scrkernel-listsandtabulars.dtx, + scrkernel-footnotes.dtx, scrkernel-listsof.dtx, scrlfile.dtx, + scrkernel-paragraphs.dtx, scrkernel-language.dtx, scrwfile.dtx, + scrkernel-notepaper.dtx, scrkernel-miscellaneous.dtx, + scrkernel-variables.dtx, scrkernel-floats.dtx, + scrkernel-typearea.dtx, scrkernel-basics.dtx, japanlco.dtx, + scrkernel-title.dtx, tocbasic.dtx: usage of keyword substitution + +r1379 2013-10-01 17:02:47 +0200 mjk: + + * scrpage.dtx, scrtime.dtx, scrhack.dtx, scrkernel-version.dtx, + scrstrip.inc, scraddr.dtx, Makefile, scrmain.ins, scrlfile.dtx, + manifest.txt, scrstrop.inc, scrkernel-typearea.dtx, + scrkernel-basics.dtx, tocbasic.dtx: using ins=dtx for package + generation + +r1378 2013-09-30 17:42:35 +0200 mjk: + + * scrkernel-sections.dtx, scrkernel-index.dtx, scrhack.dtx, + missing.dtx, scrdoc.dtx, scrkernel-bibliography.dtx, + scrkernel-version.dtx, scrjura.dtx, scrextend.dtx, scrlogo.dtx, + scrkernel-compatibility.dtx, scraddr.dtx, + scrkernel-pseudolengths.dtx, scrkernel-pagestyles.dtx, + scrkernel-letterclassoptions.dtx, scrkernel-circularletters.dtx, + scrkernel-fonts.dtx, scrbeta.dtx, scrkernel-listsandtabulars.dtx, + scrkernel-footnotes.dtx, scrkernel-listsof.dtx, scrlfile.dtx, + scrkernel-paragraphs.dtx, scrkxflo.dtx, scrkernel-language.dtx, + scrcounter.dtx, scrkernel-notepaper.dtx, scrkernel-miscellaneous.dtx, + scrkernel-variables.dtx, scrkernel-floats.dtx, + scrkernel-typearea.dtx, scrkernel-basics.dtx, japanlco.dtx, + scrkernel-title.dtx: svn keyword substitution activated + +r1377 2013-09-25 09:17:02 +0200 mjk: + + * scrkernel-listsof.dtx: changed warnings about \float@addlist and + \float@listhead + +r1376 2013-09-24 19:08:23 +0200 mjk: + + * scrkernel-sections.dtx, scrkernel-index.dtx, + scrkernel-bibliography.dtx, scrjura.dtx, TODO, scrkernel-listsof.dtx, + scrwfile.dtx, tocbasic.dtx: new tocbasic feature "numberline" to + indent text entries without number; new options "toc=numberline", + "toc=nonumberline", "listof=numberline", "listof=nonumberline" + +r1375 2013-09-24 17:22:51 +0200 mjk: + + * scrjura.dtx: usage of tocbasic and \addcontentslinedefault + +r1374 2013-09-19 11:16:26 +0200 mjk: + + * scrjura.dtx: Replacement of \PackageErrorNoLine by \PackageError + +r1373 2013-09-19 11:13:14 +0200 mjk: + + * scrkernel-basics.dtx: new command \PackageErrorNoLine + +r1372 2013-09-12 09:09:12 +0200 mjk: + + * scrkernel-miscellaneous.dtx: fix: new \scr@package@not@recommended + +r1371 2013-08-28 14:03:11 +0200 mjk: + + * doc/, doc/scrguide.cls: tabularx added + +r1370 2013-08-28 13:46:00 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Copyright Datum + +r1369 2013-08-28 13:45:40 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Gegenüberstellung von + remarkbox und figure und ein Beispiel für die Verwendung von + remarkbox + +r1368 2013-08-28 13:44:19 +0200 mjk: + + * tocbasic.dtx: improvement of example + +r1367 2013-08-28 13:38:33 +0200 mjk: + + * tocbasic.dtx: Improvement of manual part: - comparision of example + environment remarkbox with figure - example of usage of example + environment remarkbox + +r1366 2013-08-26 18:26:25 +0200 mjk: + + * scrkernel-typearea.dtx: missing \FamilyKeyStateProcessed + +r1365 2013-08-26 18:25:41 +0200 mjk: + + * scrkernel-sections.dtx, scrkernel-pagestyles.dtx, TODO, + scrkernel-listsof.dtx: \KOMA@options replaced either by + \KOMAExecuteOptions or \KOMAoptions + +r1364 2013-08-26 17:50:23 +0200 mjk: + + * TODO: one more note about the renewed option interface + +r1363 2013-08-25 12:55:07 +0200 mjk: + + * README.SVN: spezial note for developers using MiKTeX + +r1362 2013-08-11 14:05:03 +0200 mjk: + + * tocstyle.dtx: usage of new font elements of KOMA-Script at style + KOMAlike + +r1361 2013-08-08 18:11:24 +0200 mjk: + + * TODO, doc/, doc/english/, doc/english/common-0.tex, doc/ngerman/, + doc/ngerman/common-0.tex: Note about problems using lengths as option + value with \documentclass or \usepackage + +r1360 2013-08-05 18:42:32 +0200 mjk: + + * scrwfile.dtx, doc/, doc/guide.bib, doc/english/, + doc/english/common-0.tex, doc/english/scrbookreportarticle.tex, + doc/english/scrlttr2-experts.tex, doc/english/guide-english.tex, + doc/english/preface.tex: improvements of the English guide (by Hendrik + M. and KOMA) + +r1359 2013-07-31 13:06:37 +0200 mjk: + + * scrkernel-notepaper.dtx, doc/, doc/english/, + doc/english/scrlttr2.tex, doc/english/common-5.tex, doc/ngerman/, + doc/ngerman/scrlttr2.tex, doc/ngerman/common-5.tex: new font element + placeanddate + +r1358 2013-07-30 12:34:32 +0200 mjk: + + * scrkernel-language.dtx: \defcaptionname etc. can handle empty + language arguments + +r1357 2013-07-30 12:15:12 +0200 mjk: + + * scrkernel-language.dtx: new: \defcaptionname reimplemented: + \newcaptionname, \renewcaptionname, \providecaptionname + +r1356 2013-07-24 17:35:15 +0200 mjk: + + * TODO, tocbasic.dtx: no more need for a patch of tocbasic, because if + hyperref + +r1355 2013-07-24 12:38:18 +0200 mjk: + + * scrwfile.dtx: fix hyperref workaround + +r1354 2013-07-24 12:16:00 +0200 mjk: + + * scrwfile.dtx: work around for unfriendly redefinition of \@starttoc + by hyperref + +r1353 2013-07-22 18:38:26 +0200 mjk: + + * doc/, doc/english/, doc/english/scrlttr2.tex, + doc/english/scrlttr2-experts.tex, doc/english/scrpage2.tex, + doc/ngerman/, doc/ngerman/scrlttr2.tex, + doc/ngerman/scrbookreportarticle.tex, + doc/ngerman/scrlttr2-experts.tex, doc/ngerman/scrpage2.tex: Kleinere + Ergänzungen und Korrekturen + +r1352 2013-07-09 15:01:26 +0200 mjk: + + * scrkernel-miscellaneous.dtx: empty test with wrong argumnent in new + \scr@package@not@recommended + +r1351 2013-07-09 08:22:42 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: + Angezeigter Code stimmt mit Abbildung überein [Epllus] + +r1350 2013-07-08 12:48:52 +0200 mjk: + + * scrkernel-miscellaneous.dtx: several package warnings + +r1349 2013-06-23 18:01:33 +0200 mjk: + + * TODO: problems with hyperref's \AtBeginDocument-redefinition of + \@starttoc + +r1348 2013-06-12 08:23:25 +0200 mjk: + + * scrkernel-floats.dtx: replaced \capfont by \usekomafont{caption} and + \caplabelfont by \usekomafont{captionlabel} + +r1347 2013-06-12 08:21:59 +0200 mjk: + + * scrkernel-fonts.dtx: \use…ofkomafont internally doesn't set the + color + +r1346 2013-06-09 10:33:26 +0200 mjk: + + * scrjura.dtx: new: definition of \toclevel@cpar for usage with + hyperref + +r1345 2013-06-07 18:50:20 +0200 mjk: + + * scrjura.dtx: new: font element parnumber + +r1344 2013-06-06 18:27:36 +0200 mjk: + + * scrjura.dtx: fix: if \thepar is not only an arabic number, output + the par numbers always + +r1343 2013-06-04 14:27:25 +0200 mjk: + + * TODO, doc/, doc/english/, doc/english/scrlttr2.tex, doc/ngerman/, + doc/ngerman/scrlttr2.tex: frommobilephone (option and variable) and + symbolicnames (option) described + +r1342 2013-05-31 15:53:50 +0200 mjk: + + * TODO, doc/, doc/english/, doc/english/scrlttr2.tex, + doc/english/scrextend.tex, doc/english/scrbookreportarticle.tex, + doc/english/common-5.tex, doc/ngerman/, doc/ngerman/scrlttr2.tex, + doc/ngerman/scrextend.tex, doc/ngerman/scrbookreportarticle.tex, + doc/ngerman/common-5.tex: user manual of \usefontofkomafont etc. added + +r1341 2013-05-31 12:02:05 +0200 mjk: + + * doc/, doc/english/, doc/english/typearea-experts.tex: fix: \indent + before \rule{…}{…} to show the typing area correctly + +r1340 2013-05-31 11:59:06 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/typearea-experts.tex: fix: Einzug + vor den Satzspiegelboxen im \storeareas-Beispiel + +r1339 2013-05-29 17:55:00 +0200 mjk: + + * scrkernel-notepaper.dtx: fix of symbolicnames + +r1338 2013-05-29 17:54:43 +0200 mjk: + + * scrkernel-basics.dtx: Fix of \AtEndOfFamilyOptions + +r1337 2013-05-29 14:15:48 +0200 mjk: + + * TODO, scrkernel-language.dtx, scrkernel-notepaper.dtx: new option + and variable "frommobilephone" new option "symbolicnames" + +r1336 2013-05-29 14:14:03 +0200 mjk: + + * scrsource.tex, Makefile, scrmain.ins, manifest.txt: renamed + scrklang.dtx into scrkernel-language.dtx + +r1335 2013-05-29 12:30:52 +0200 mjk: + + * scrkernel-title.dtx, doc/, doc/english/, + doc/english/scrbookreportarticle.tex, doc/english/common-14.tex, + doc/ngerman/, doc/ngerman/scrbookreportarticle.tex, + doc/ngerman/common-14.tex: new font elements "titlehead", "author", + "date", "publishers", "dedication" + +r1334 2013-05-23 18:16:45 +0200 mjk: + + * scrjura.dtx: new: \thisparnumber{} + +r1333 2013-05-23 17:43:10 +0200 mjk: + + * scrjura.dtx: fix: sentence number with \parnumberfalse + +r1332 2013-05-10 19:51:12 +0200 mjk: + + * scrkernel-typearea.dtx: deactivate the dvips hack, if \XeTeXversion + is defined + +r1331 2013-05-03 10:49:14 +0200 mjk: + + * doc/, doc/scrguide.cls: new: requires picture package + +r1330 2013-05-03 09:24:27 +0200 mjk: + + * tocbasic.dtx: fix: \DeclareNewTOC also defines + \listofentryname + +r1329 2013-05-02 11:44:08 +0200 mjk: + + * scrjura.dtx: new: \ellipsispar and \parellipsis + +r1328 2013-05-02 10:32:23 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/common-0.tex: scrlayer und + scrlayer-scrpage mit aufgenommen + +r1327 2013-04-28 11:04:44 +0200 mjk: + + * scrjura.dtx: fix: hanging indent with indent after the space after + the number + +r1326 2013-04-20 19:02:04 +0200 mjk: + + * scrkernel-basics.dtx: date + +r1325 2013-04-20 18:36:17 +0200 mjk: + + * scrkernel-basics.dtx: When I've decided to name a macro + \l@addto@macro in 2001, I've tested, whether or not the macro name + is unused. Unforunatly in the meantime other package authors also + defined macro name \l@addto@macro potentially incompatible. If I + detect such an incompatibility while loading scrbase, the package + throws a warning message. + +r1324 2013-04-19 07:45:44 +0200 mjk: + + * scrjura.dtx: experimental support for several paragraphs with same + number + +r1323 2013-04-16 16:12:57 +0200 mjk: + + * scrjura.dtx: - \newmaxpar sets #1@Paragraphformat to \@firstofone - + \contract@paragraph with option number also uses + \contract@Paragraphformat + +r1322 2013-04-16 11:37:01 +0200 mjk: + + * doc/, doc/Makefile.guide: $(DOCDIR) at TEX_MISC replaced by relative + directory + +r1321 2013-04-16 11:34:30 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: fix: one + \OptionValue + +r1320 2013-04-16 11:13:52 +0200 mjk: + + * scrjura.dtx: \paragraphformat renamed into \Paragraphformat + +r1319 2013-04-10 15:32:01 +0200 mjk: + + * doc/, doc/scrguide.cls: changed CTAN: prefix from ftp: to http: + +r1318 2013-04-10 15:28:24 +0200 mjk: + + * scrkernel-fonts.dtx: missing brace added + +r1317 2013-04-10 15:10:59 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex: Codierungsmurks + beseitigt + +r1316 2013-04-10 08:53:55 +0200 mjk: + + * doc/, doc/scrguide.cls: \NTS added + +r1315 2013-03-30 16:15:12 +0100 mjk: + + * TODO, scrkernel-fonts.dtx: new: \usesizeofkomafont, + \useencodingofkomafont, \usefamilyofkomafont, \useshapeofkomafont, + \useseriesofkomafont, \usefontofkomafont + +r1314 2013-03-28 09:47:28 +0100 mjk: + + * TODO: Die KOMA-Script-Klassen müssen bezüglich \footheight nichts + beachten, da sie die Linie ohnehin immer über dem Fuß einfügen. + +r1313 2013-03-26 12:15:09 +0100 mjk: + + * TODO: classes and \footheight + +r1312 2013-03-26 12:11:24 +0100 mjk: + + * scrkernel-version.dtx: new version date + +r1311 2013-03-26 12:09:18 +0100 mjk: + + * scrkernel-typearea.dtx: support for \footheight + +r1310 2013-03-07 10:47:24 +0100 mjk: + + * doc/, doc/guide.bib: entry manual:eTeX added + +r1309 2013-03-05 16:35:54 +0100 mjk: + + * scrkernel-pagestyles.dtx: delegate options headinclude and + footinclude to package typearea, if the package hasn't been loaded + yet + +r1308 2013-03-05 16:22:40 +0100 mjk: + + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.12 BETA + +r1307 2013-03-05 15:08:12 +0100 mjk: + + * scrextend.dtx: usage of option execution state signals + +r1306 2013-03-05 15:02:53 +0100 mjk: + + * scrhack.dtx: usage of option execution state signals + +r1305 2013-03-05 14:57:18 +0100 mjk: + + * scrsource.tex, Makefile, scrmain.ins, scrkernel-notepaper.dtx, + manifest.txt: scrkpap.dtx renamed into scrkernel-notepaper.dtx + +r1304 2013-03-05 14:54:08 +0100 mjk: + + * scrkernel-notepaper.dtx: usage of option execution state signals + +r1303 2013-03-05 14:29:56 +0100 mjk: + + * scrsource.tex, scrkernel-compatibility.dtx, Makefile, scrmain.ins, + manifest.txt: scrkcomp.dtx renamed into scrkernel-compatibility.dtx + +r1302 2013-03-05 14:13:43 +0100 mjk: + + * scrkernel-typearea.dtx: usage of option execution state signals + +r1301 2013-03-05 13:59:25 +0100 mjk: + + * scrkernel-sections.dtx: usage of option execution state signals + +r1300 2013-03-05 13:02:49 +0100 mjk: + + * scrsource.tex, Makefile, scrmain.ins, scrkernel-paragraphs.dtx, + manifest.txt: scrkpar.dtx renamed into scrkernel-paragraphs.dtx + +r1299 2013-03-05 12:58:41 +0100 mjk: + + * scrkernel-paragraphs.dtx: usage of option execution state signals + +r1298 2013-03-05 12:22:46 +0100 mjk: + + * scrsource.tex, scrkernel-pagestyles.dtx, Makefile, scrmain.ins, + scrkernel-miscellaneous.dtx, manifest.txt: scrkpage.dtx renamed into + scrkernel-pagestyles.dtx + +r1297 2013-03-05 12:19:32 +0100 mjk: + + * scrkernel-pagestyles.dtx: usage of option execution state signals + +r1296 2013-03-05 12:07:01 +0100 mjk: + + * scrkernel-miscellaneous.dtx: usage of option execution state signals + +r1295 2013-03-05 12:02:49 +0100 mjk: + + * scrsource.tex, Makefile, scrmain.ins, scrkernel-listsof.dtx, + manifest.txt: scrkliof.dtx renamed into scrkernel-listsof.dtx + +r1294 2013-03-05 11:57:40 +0100 mjk: + + * scrkernel-listsof.dtx: usage of options execution states + +r1293 2013-03-05 11:47:13 +0100 mjk: + + * scrsource.tex, scrkernel-index.dtx, Makefile, scrmain.ins, + manifest.txt: scrkidx.dtx renamed into scrkernel-index.dtx + +r1292 2013-03-05 11:44:45 +0100 mjk: + + * scrkernel-index.dtx: usage of \FamilyKeyState + +r1291 2013-03-05 11:41:18 +0100 mjk: + + * scrsource.tex, scrkernel-footnotes.dtx, Makefile, scrmain.ins, + manifest.txt: scrkftn.dtx renamed into scrkernel-footnotes.dtx + +r1290 2013-03-05 11:37:39 +0100 mjk: + + * scrkernel-footnotes.dtx: usage of \FamilyKeyStateProcessed + +r1289 2013-03-05 11:33:44 +0100 mjk: + + * scrkernel-fonts.dtx: usage of \FamilyKeyStateProcessed + +r1288 2013-03-05 11:22:09 +0100 mjk: + + * scrkernel-bibliography.dtx: options use \FamilyKeyStateProcessed + +r1287 2013-03-05 11:05:55 +0100 mjk: + + * scrsource.tex, scrkernel-fonts.dtx, Makefile, scrmain.ins, + manifest.txt: scrkfont.dtx renamed into scrkernel-fonts.dtx + +r1286 2013-03-05 11:01:05 +0100 mjk: + + * scrkernel-fonts.dtx: double 11pt test with missing 12pt test fixed + [Falk] + +r1285 2013-03-05 10:48:08 +0100 mjk: + + * doc/, doc/english/, doc/english/scrbase.tex, doc/ngerman/, + doc/ngerman/scrbase.tex: description of new state signals with + \FammilyKeyState and of the new command \AtEndOfFamilyOptions + +r1284 2013-03-05 08:27:48 +0100 mjk: + + * scrsource.tex, TODO, scrkernel-fonts.dtx, Makefile, scrmain.ins, + scrkernel-miscellaneous.dtx, manifest.txt, scrkernel-floats.dtx, + scrkernel-basics.dtx: - reimplementation of the key=value interface - + scrkfloa.dtx renamed into scrkernel-floats.dtx - scrkbase.dtx + renamed into scrkernel-basics.dtx - several \@tempa, \@tempb, + \@tempc replaced by \reserved@a, \reserved@b, and \reserved@c + +r1283 2013-03-01 09:48:48 +0100 mjk: + + * scrkernel-floats.dtx: fix of option captions=figureheading + +r1282 2013-02-26 12:01:00 +0100 mjk: + + * doc/, doc/english/, doc/english/scrbookreportarticle.tex, + doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: description of + \addchapmark and \addsecmark added + +r1281 2013-02-26 11:33:30 +0100 mjk: + + * scrkernel-sections.dtx: new commands \addchapmark and \addsecmark + using \chaptermark and \sectionmark + +r1280 2013-02-18 13:28:30 +0100 mjk: + + * scrkernel-fonts.dtx: fix: \newkomafont should define the optional + warning as an macro with one argument + +r1279 2013-02-14 16:23:59 +0100 mjk: + + * scrsource.tex, Makefile, scrmain.ins, manifest.txt, + scrkernel-title.dtx: renamed scrktitl.dtx to scrkernel-title.dtx + +r1278 2013-02-14 16:18:04 +0100 mjk: + + * scrkernel-title.dtx: several bugs with \thanks and twocolumn mode at + \maketitle fixed + +r1277 2013-02-13 18:40:31 +0100 mjk: + + * doc/, doc/english/, doc/english/scrbookreportarticle.tex, + doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: description of + "bibliography=leveldown" + +r1276 2013-02-13 17:52:06 +0100 mjk: + + * scrkernel-sections.dtx, scrsource.tex, Makefile, scrmain.ins, + manifest.txt: scrksect.dtx renamed to scrkernel-sections.dtx + +r1275 2013-02-13 17:23:42 +0100 mjk: + + * scrkernel-sections.dtx: unused \chapterheadstartvskip and + \chapterheadenedvskip should not be in scrartcl + +r1274 2013-02-12 14:22:49 +0100 mjk: + + * tocbasic.dtx: copyright date changed + +r1273 2013-02-12 14:14:52 +0100 mjk: + + * tocbasic.dtx: arguments of optional argument `atbegin' and `atend' + may be empty at \DeclareNewTOC + +r1272 2013-02-06 11:00:20 +0100 mjk: + + * scrsource.tex, scrkernel-bibliography.dtx, Makefile, scrmain.ins, + manifest.txt: scrkbib.dtx renamed to scrkernel-bibliography.dtx + support for bibliography=leveldown and bibliography=standardlevel + +r1271 2013-02-06 10:59:02 +0100 mjk: + + * scrkernel-typearea.dtx: fix of \let\if@tempswa\if@dvips when + \if@dvips may be undefined + +r1270 2013-02-06 08:35:07 +0100 mjk: + + * scrkernel-typearea.dtx: line break at \ProvidesFile added + +r1269 2012-12-28 15:40:07 +0100 mjk: + + * scrkernel-language.dtx: made language selection more robust for + newer versions of babel's hyphen.cfg + +r1268 2012-11-23 09:39:15 +0100 mjk: + + * TODO, scrkernel-typearea.dtx: changed dvi/ps paper size update code + to avoid pdfTeX messages about unsupported specials + +r1267 2012-11-23 09:16:49 +0100 mjk: + + * scrsource.tex, Makefile, scrmain.ins, manifest.txt, + scrkernel-typearea.dtx: renamed 8+3 file scrktare.dtx into + scrkernel-typearea.dtx + +r1266 2012-11-23 08:16:07 +0100 mjk: + + * TODO: special-Problem + +r1265 2012-11-07 09:41:48 +0100 mjk: + + * scrmain.ins: scrlettr moved to obsolete + +r1264 2012-11-07 09:40:27 +0100 mjk: + + * scrpage.dtx: only documentation changes + +r1263 2012-11-07 08:43:22 +0100 mjk: + + * Makefile, manifest.txt, obsolete/, obsolete/scrlettr.dtx, + obsolete/README, obsolete/scrlettr.ins: scrlettr moved to obsolete + +r1262 2012-11-07 08:33:00 +0100 mjk: + + * obsolete/, obsolete/scrpage-obsolete.dtx: message fixed + +r1261 2012-11-07 08:26:41 +0100 mjk: + + * obsolete/, obsolete/scrpage-obsolete.dtx: The Work definition fixed + +r1260 2012-11-07 08:20:44 +0100 mjk: + + * obsolete/, obsolete/README: new README for KOMA-Script obsolete + +r1259 2012-11-06 18:45:47 +0100 mjk: + + * scrpage.dtx, Makefile: Obsolete package scrpage has been removed + from KOMA-Script. + +r1258 2012-11-06 18:27:26 +0100 mjk: + + * obsolete/, obsolete/scrpage-obsolete.dtx: new subdirectory for + obsolete sources + +r1257 2012-11-02 10:55:29 +0100 mjk: + + * scrpage.dtx: Heuristic to detect manual or automatic runnig head + improved + +r1256 2012-10-16 18:09:55 +0200 mjk: + + * scrkernel-sections.dtx: vertical heading preamble position may also + be `t' (instead of `o') or `b' (instead of `u') + +r1255 2012-10-16 09:25:56 +0200 mjk: + + * doc/, doc/english/, doc/english/scrlttr2.tex: fix: one \Option + instead of \OptionValue + +r1254 2012-10-15 09:14:20 +0200 mjk: + + * scrjura.dtx: error message fixed + +r1253 2012-10-13 17:09:33 +0200 mjk: + + * doc/, doc/guide.bib: 4th edition of the KOMA-Script book + +r1252 2012-10-08 09:27:49 +0200 mjk: + + * scrjura.dtx: Fix: \Paragraph und \SubParagraph funktionierten nur im + vertikalen Modus erzeugten aber fälschlich keinen Absatz am Anfang + [Timon Geppert] + +r1251 2012-09-22 09:04:00 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: drei + identische Grammatikfehler korrigiert + +r1250 2012-09-19 08:59:20 +0200 mjk: + + * TODO: documentation of \PreventPackageFromLoading* + +r1249 2012-09-19 08:59:08 +0200 mjk: + + * doc/, doc/ngerman/, doc/ngerman/typearea-experts.tex: change entry + added + +r1248 2012-09-19 08:54:20 +0200 mjk: + + * doc/, doc/english/, doc/english/scrlfile.tex, doc/ngerman/, + doc/ngerman/scrlfile.tex: documentation of \PreventPackageFromLoading* + +r1247 2012-09-19 08:53:22 +0200 mjk: + + * doc/, doc/english/, doc/english/typearea-experts.tex: change entry + added + +r1246 2012-07-29 11:24:02 +0200 mjk: + + * releaselist.txt: release 2012/07/29 v3.11b + r1245 2012-07-29 11:12:46 +0200 mjk: - * scrksect.dtx: checksum fixed + * scrkernel-sections.dtx: checksum fixed r1244 2012-07-29 10:50:47 +0200 mjk: - * scrkvers.dtx, scrksect.dtx, scrkcomp.dtx: Fix: vertical alignment of - \addpart differed from \part [mrpiggi] + * scrkernel-sections.dtx, scrkernel-version.dtx, + scrkernel-compatibility.dtx: Fix: vertical alignment of \addpart + differed from \part [mrpiggi] r1243 2012-07-22 12:12:56 +0200 mjk: @@ -34,7 +1645,8 @@ r1239 2012-07-07 13:32:45 +0200 mjk: r1238 2012-07-05 10:29:01 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.12 BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.12 BETA r1237 2012-07-05 10:28:17 +0200 mjk: @@ -42,7 +1654,7 @@ r1237 2012-07-05 10:28:17 +0200 mjk: r1235 2012-07-05 09:32:36 +0200 mjk: - * scrkvers.dtx: prepared for 3.11a + * scrkernel-version.dtx: prepared for 3.11a r1234 2012-06-29 17:54:11 +0200 mjk: @@ -68,26 +1680,27 @@ r1230 2012-06-12 12:03:42 +0200 mjk: r1229 2012-06-11 10:43:49 +0200 mjk: - * scrkbase.dtx: \FamilyProcessOptions inside of classes do not longer - report unknown values to known keys a error, but as info only and - maybe as unused global option. + * scrkernel-basics.dtx: \FamilyProcessOptions inside of classes do not + longer report unknown values to known keys a error, but as info only + and maybe as unused global option. r1228 2012-05-28 14:35:47 +0200 mjk: - * scrkbase.dtx: make last fix more robust + * scrkernel-basics.dtx: make last fix more robust r1227 2012-05-28 13:46:29 +0200 mjk: - * scrkbase.dtx: \FamilySetNumerical does not longer consume known - global options with unknown values + * scrkernel-basics.dtx: \FamilySetNumerical does not longer consume + known global options with unknown values r1226 2012-05-25 11:34:01 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.11a BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.11a BETA r1225 2012-05-25 11:31:55 +0200 mjk: - * scrkbase.dtx: Error/Info Message for unkown bool values at + * scrkernel-basics.dtx: Error/Info Message for unkown bool values at \FamilySetBool fixed. r1224 2012-05-15 15:21:01 +0200 mjk: @@ -106,7 +1719,8 @@ r1222 2012-05-15 14:23:23 +0200 mjk: r1221 2012-05-15 14:23:06 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.11 + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.11 r1220 2012-05-15 14:17:51 +0200 mjk: @@ -145,15 +1759,15 @@ r1216 2012-05-11 10:08:07 +0200 mjk: r1215 2012-04-24 14:38:51 +0200 mjk: - * scrksect.dtx: \addpart fixed [reported by Ulrike Fischer] + * scrkernel-sections.dtx: \addpart fixed [reported by Ulrike Fischer] r1214 2012-04-20 09:57:19 +0200 mjk: - * scrksect.dtx: docu fix + * scrkernel-sections.dtx: docu fix r1213 2012-04-17 10:13:15 +0200 mjk: - * TODO, scrktare.dtx, doc/, doc/english/, + * TODO, scrkernel-typearea.dtx, doc/, doc/english/, doc/english/typearea-experts.tex, doc/ngerman/, doc/ngerman/typearea-experts.tex: new \AfterSettingArea similar to \AfterCalculatingArea but for \areaset @@ -247,11 +1861,13 @@ r1192 2012-03-13 11:10:03 +0100 mjk: r1191 2012-03-13 08:21:18 +0100 mjk: - * scrkpar.dtx: fix for loading everysel while \begin{document} + * scrkernel-paragraphs.dtx: fix for loading everysel while + \begin{document} r1190 2012-03-13 08:20:24 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.10b BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.10b BETA r1189 2012-03-12 10:43:56 +0100 mjk: @@ -290,8 +1906,9 @@ r1183 2012-03-09 08:33:38 +0100 mjk: r1182 2012-03-08 12:40:30 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx, scrkidx.dtx: brackets at \idx@heading - fixed [Jürgen Spitzmüller] + * scrkernel-index.dtx, scrkernel-version.dtx, + scrkernel-compatibility.dtx: brackets at \idx@heading fixed [Jürgen + Spitzmüller] r1181 2012-03-06 18:08:46 +0100 mjk: @@ -641,22 +2258,27 @@ r1123 2012-01-12 11:09:49 +0100 mjk: r1122 2012-01-10 15:48:18 +0100 mjk: - * scrkvers.dtx: prepared for KOMA-Script 3.10 + * scrkernel-version.dtx: prepared for KOMA-Script 3.10 r1121 2012-01-10 09:37:54 +0100 mjk: - * scrpage.dtx, scrklang.dtx, scrktitl.dtx, scrtime.dtx, scrhack.dtx, - scrklist.dtx, scrdoc.dtx, tocstyle.dtx, scrjura.dtx, scrextend.dtx, - scrlogo.dtx, scrkbase.dtx, scrkmisc.dtx, scrpage.ins, scrstrip.inc, - scraddr.dtx, scrklco.dtx, scrkpar.dtx, scrkfont.dtx, scrlettr.dtx, - scrbeta.dtx, Makefile.baseinit, Makefile, scrmain.ins, - Makefile.baserules, scrkplen.dtx, scrkvars.dtx, scrlfile.ins, - scrlfile.dtx, scrkftn.dtx, scrkxflo.dtx, scrkvers.dtx, scrksect.dtx, - scrkcile.dtx, scrwfile.dtx, scrkliof.dtx, scrkcomp.dtx, scrknpap.dtx, - scrkbib.dtx, scrktare.dtx, manifest.txt, scrstrop.inc, japanlco.dtx, - scrkpage.dtx, scrkfloa.dtx, tocbasic.dtx, scraddr.ins, scrlettr.ins, - scrkidx.dtx, doc/, doc/plength.dtx, doc/Makefile.latexinit, - doc/guide.tex, doc/Makefile, doc/scrguide.cls, doc/Makefile.guide, + * scrkernel-sections.dtx, scrpage.dtx, scrkernel-index.dtx, + scrtime.dtx, scrhack.dtx, scrdoc.dtx, scrkernel-bibliography.dtx, + tocstyle.dtx, scrkernel-version.dtx, scrjura.dtx, scrextend.dtx, + scrlogo.dtx, scrstrip.inc, scrkernel-compatibility.dtx, scraddr.dtx, + scrkernel-pseudolengths.dtx, scrkernel-pagestyles.dtx, + scrkernel-letterclassoptions.dtx, scrkernel-circularletters.dtx, + scrkernel-fonts.dtx, scrbeta.dtx, scrkernel-listsandtabulars.dtx, + Makefile.baseinit, scrkernel-footnotes.dtx, Makefile, scrmain.ins, + Makefile.baserules, scrkernel-listsof.dtx, scrlfile.dtx, + scrkernel-paragraphs.dtx, scrkxflo.dtx, scrkernel-language.dtx, + scrwfile.dtx, scrkernel-notepaper.dtx, scrkernel-miscellaneous.dtx, + scrkernel-variables.dtx, manifest.txt, scrstrop.inc, + scrkernel-floats.dtx, scrkernel-typearea.dtx, scrkernel-basics.dtx, + japanlco.dtx, scrkernel-title.dtx, tocbasic.dtx, + obsolete/scrlettr.dtx, obsolete/scrlettr.ins, doc/, doc/plength.dtx, + doc/Makefile.latexinit, doc/guide.tex, doc/Makefile, + doc/scrguide.cls, doc/Makefile.guide, doc/linkalias.tex, doc/guide.bib, doc/scrguide.ist, doc/scrguide.gst, doc/english/, doc/english/common-9.tex, doc/english/scrlfile.tex, doc/english/common-0.tex, doc/english/scrlttr2.tex, @@ -673,13 +2295,12 @@ r1121 2012-01-10 09:37:54 +0100 mjk: doc/english/guide-english.tex, doc/english/common-5.tex, doc/english/scrpage2.tex, doc/ngerman/, doc/ngerman/common-0.tex, doc/ngerman/scrextend.tex, doc/ngerman/common-2.tex, - doc/ngerman/common-15.tex, doc/ngerman/guide.tex, - doc/ngerman/common-12.tex, doc/ngerman/adrconvnote.tex, - doc/ngerman/scrdatetime.tex, doc/ngerman/common-1.tex, - doc/ngerman/introduction.tex, doc/ngerman/common-8.tex, - doc/ngerman/common-13.tex, doc/ngerman/guide-ngerman.tex, - doc/ngerman/typearea-experts.tex, doc/ngerman/typearea.tex, - doc/ngerman/scrbase.tex, doc/ngerman/linkalias.tex, + doc/ngerman/common-15.tex, doc/ngerman/common-12.tex, + doc/ngerman/adrconvnote.tex, doc/ngerman/scrdatetime.tex, + doc/ngerman/common-1.tex, doc/ngerman/introduction.tex, + doc/ngerman/common-8.tex, doc/ngerman/common-13.tex, + doc/ngerman/guide-ngerman.tex, doc/ngerman/typearea-experts.tex, + doc/ngerman/typearea.tex, doc/ngerman/scrbase.tex, doc/ngerman/common-3.tex, doc/ngerman/common-7.tex, doc/ngerman/common-4.tex, doc/ngerman/scraddr.tex, doc/ngerman/scrhack.tex, doc/ngerman/expertpart.tex, @@ -693,14 +2314,13 @@ r1120 2012-01-10 09:07:15 +0100 mjk: doc/ngerman/common-0.tex, doc/ngerman/scrlttr2.tex, doc/ngerman/scrextend.tex, doc/ngerman/common-2.tex, doc/ngerman/common-10.tex, doc/ngerman/scrbookreportarticle.tex, - doc/ngerman/common-15.tex, doc/ngerman/guide.tex, - doc/ngerman/common-12.tex, doc/ngerman/scrdatetime.tex, - doc/ngerman/common-1.tex, doc/ngerman/introduction.tex, - doc/ngerman/common-8.tex, doc/ngerman/common-13.tex, - doc/ngerman/common-11.tex, doc/ngerman/guide-ngerman.tex, - doc/ngerman/typearea-experts.tex, doc/ngerman/typearea.tex, - doc/ngerman/common-14.tex, doc/ngerman/scrlttr2-experts.tex, - doc/ngerman/scrbase.tex, doc/ngerman/Makefile.guide, + doc/ngerman/common-15.tex, doc/ngerman/common-12.tex, + doc/ngerman/scrdatetime.tex, doc/ngerman/common-1.tex, + doc/ngerman/introduction.tex, doc/ngerman/common-8.tex, + doc/ngerman/common-13.tex, doc/ngerman/common-11.tex, + doc/ngerman/guide-ngerman.tex, doc/ngerman/typearea-experts.tex, + doc/ngerman/typearea.tex, doc/ngerman/common-14.tex, + doc/ngerman/scrlttr2-experts.tex, doc/ngerman/scrbase.tex, doc/ngerman/common-6.tex, doc/ngerman/common-3.tex, doc/ngerman/common-7.tex, doc/ngerman/common-4.tex, doc/ngerman/scrlttr2examples.dtx, doc/ngerman/scraddr.tex, @@ -711,7 +2331,7 @@ r1120 2012-01-10 09:07:15 +0100 mjk: r1119 2011-10-26 14:55:03 +0200 mjk: - * scrkbase.dtx: \ignorespaces at end of \begin{document} + * scrkernel-basics.dtx: \ignorespaces at end of \begin{document} r1118 2011-09-30 10:34:57 +0200 mjk: @@ -748,17 +2368,18 @@ r1112 2011-09-28 10:56:37 +0200 mjk: r1111 2011-09-28 08:53:11 +0200 mjk: - * scrkpar.dtx: fix: options parskip if package everysel or tracefnt - was loaded + * scrkernel-paragraphs.dtx: fix: options parskip if package everysel + or tracefnt was loaded r1110 2011-09-27 08:56:10 +0200 mjk: - * scrksect.dtx: changed toc entry creation fixed + * scrkernel-sections.dtx: changed toc entry creation fixed r1109 2011-09-27 08:54:42 +0200 mjk: - * scrkftn.dtx: fix: footnotes=multiple may be a class or package - option fix: footnotes=multiple with scrextend and standard classes + * scrkernel-footnotes.dtx: fix: footnotes=multiple may be a class or + package option fix: footnotes=multiple with scrextend and standard + classes r1108 2011-09-22 11:02:23 +0200 mjk: @@ -767,12 +2388,12 @@ r1108 2011-09-22 11:02:23 +0200 mjk: r1107 2011-09-20 10:52:29 +0200 mjk: - * scrktare.dtx: \storeareas stores \marginparwidth and \marginparsep - too + * scrkernel-typearea.dtx: \storeareas stores \marginparwidth and + \marginparsep too r1106 2011-09-16 13:34:41 +0200 mjk: - * scrlettr.dtx: \cite (war nur noch einer) beseitigt + * obsolete/scrlettr.dtx: \cite (war nur noch einer) beseitigt r1105 2011-09-16 12:54:46 +0200 mjk: @@ -780,18 +2401,20 @@ r1105 2011-09-16 12:54:46 +0200 mjk: r1104 2011-09-13 16:57:43 +0200 mjk: - * scrktare.dtx: new command \storeareas to store and restore the - current type area and margins + * scrkernel-typearea.dtx: new command \storeareas to store and restore + the current type area and margins r1103 2011-09-13 08:19:42 +0200 mjk: - * scrkftn.dtx: fix: Option footnotes=multiple may be used as class - option workaround: Package setspace destroys footnote=multiple + * scrkernel-footnotes.dtx: fix: Option footnotes=multiple may be used + as class option workaround: Package setspace destroys + footnote=multiple r1102 2011-09-12 11:05:56 +0200 mjk: - * scrkbase.dtx: unknown values for global options are not longer - errors and not longer removed from list of unknown global options + * scrkernel-basics.dtx: unknown values for global options are not + longer errors and not longer removed from list of unknown global + options r1101 2011-09-11 18:14:15 +0200 mjk: @@ -799,20 +2422,20 @@ r1101 2011-09-11 18:14:15 +0200 mjk: r1100 2011-09-09 11:53:12 +0200 mjk: - * scrksect.dtx: missing \par added + * scrkernel-sections.dtx: missing \par added r1099 2011-09-05 10:16:07 +0200 mjk: - * scrkmisc.dtx: using \providecommand instead of \newcommand at - definition of \@textsubscript + * scrkernel-miscellaneous.dtx: using \providecommand instead of + \newcommand at definition of \@textsubscript r1098 2011-09-02 13:46:49 +0200 mjk: - * scrkfloa.dtx: new environment: captionofbeside + * scrkernel-floats.dtx: new environment: captionofbeside r1097 2011-09-02 10:26:53 +0200 mjk: - * scrkmisc.dtx: new \dictumrule + * scrkernel-miscellaneous.dtx: new \dictumrule r1096 2011-09-01 12:07:38 +0200 mjk: @@ -820,8 +2443,9 @@ r1096 2011-09-01 12:07:38 +0200 mjk: r1095 2011-08-31 11:25:04 +0200 mjk: - * scrjura.dtx, scrksect.dtx, scrkliof.dtx, scrkbib.dtx, scrkpage.dtx, - scrkidx.dtx: Using \MakeMarkcase + * scrkernel-sections.dtx, scrkernel-index.dtx, + scrkernel-bibliography.dtx, scrjura.dtx, scrkernel-pagestyles.dtx, + scrkernel-listsof.dtx: Using \MakeMarkcase r1094 2011-08-30 12:55:46 +0200 mjk: @@ -829,8 +2453,8 @@ r1094 2011-08-30 12:55:46 +0200 mjk: r1093 2011-08-30 12:54:45 +0200 mjk: - * scrksect.dtx: Extension of optional argument of \part, \chapter etc. - activated by option headings=optiontotocandhead, + * scrkernel-sections.dtx: Extension of optional argument of \part, + \chapter etc. activated by option headings=optiontotocandhead, headings=optiontoheadandtoc, headings=optiontohead or headings=optiontotoc. If the extension is activated and no = is at the optional argument of \part, \chapter etc. the optional argument @@ -853,7 +2477,7 @@ r1093 2011-08-30 12:54:45 +0200 mjk: r1092 2011-08-30 12:47:27 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: start 3.10 BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: start 3.10 BETA r1091 2011-06-16 09:26:43 +0200 mjk: @@ -861,15 +2485,15 @@ r1091 2011-06-16 09:26:43 +0200 mjk: r1090 2011-06-16 09:26:10 +0200 mjk: - * scrkvers.dtx: prepared for 3.09a + * scrkernel-version.dtx: prepared for 3.09a r1089 2011-06-16 09:24:50 +0200 mjk: * doc/, doc/ngerman/, doc/ngerman/common-2.tex, - doc/ngerman/scrbookreportarticle.tex, doc/ngerman/guide.tex, - doc/ngerman/common-1.tex, doc/ngerman/introduction.tex, - doc/ngerman/typearea.tex, doc/ngerman/common-14.tex, - doc/ngerman/common-5.tex: some minor steps to the next book release + doc/ngerman/scrbookreportarticle.tex, doc/ngerman/common-1.tex, + doc/ngerman/introduction.tex, doc/ngerman/typearea.tex, + doc/ngerman/common-14.tex, doc/ngerman/common-5.tex: some minor steps + to the next book release r1088 2011-06-16 09:10:09 +0200 mjk: @@ -877,12 +2501,12 @@ r1088 2011-06-16 09:10:09 +0200 mjk: r1087 2011-06-16 09:06:56 +0200 mjk: - * scrkbase.dtx: new usage of \unexpanded fixed + * scrkernel-basics.dtx: new usage of \unexpanded fixed r1086 2011-06-07 08:33:40 +0200 mjk: - * scrkbase.dtx: \FamilyOptions uses e-TeX command \unexpanded to be - more robust + * scrkernel-basics.dtx: \FamilyOptions uses e-TeX command \unexpanded + to be more robust r1085 2011-05-30 15:29:06 +0200 mjk: @@ -895,12 +2519,12 @@ r1084 2011-04-13 10:13:57 +0200 mjk: r1083 2011-04-13 09:20:52 +0200 mjk: - * scrkfloa.dtx: fix: new \captionof feature + * scrkernel-floats.dtx: fix: new \captionof feature r1082 2011-04-13 09:15:33 +0200 mjk: - * scrkfloa.dtx: \captionof sets \@captionabovetrue depending on - \csname if@\@captype captionabove\endcsname + * scrkernel-floats.dtx: \captionof sets \@captionabovetrue depending + on \csname if@\@captype captionabove\endcsname r1081 2011-04-12 10:40:47 +0200 mjk: @@ -908,7 +2532,8 @@ r1081 2011-04-12 10:40:47 +0200 mjk: r1080 2011-04-12 10:40:09 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.09a BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.09a BETA r1079 2011-04-05 09:05:02 +0200 mjk: @@ -916,7 +2541,8 @@ r1079 2011-04-05 09:05:02 +0200 mjk: r1077 2011-04-05 08:58:11 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.09 + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.09 r1076 2011-04-05 08:52:55 +0200 mjk: @@ -926,11 +2552,12 @@ r1076 2011-04-05 08:52:55 +0200 mjk: r1075 2011-04-02 07:54:03 +0200 mjk: - * scrkfloa.dtx: new values for option "captions" + * scrkernel-floats.dtx: new values for option "captions" r1074 2011-04-01 10:27:22 +0200 mjk: - * scrkbase.dtx: fix: \Family@@Numical@@Key --> \Family@@String@@Key + * scrkernel-basics.dtx: fix: \Family@@Numical@@Key --> + \Family@@String@@Key r1073 2011-03-31 10:27:18 +0200 mjk: @@ -942,16 +2569,16 @@ r1072 2011-03-31 10:24:16 +0200 mjk: r1071 2011-03-31 10:21:23 +0200 mjk: - * scrkvars.dtx: only indents changed + * scrkernel-variables.dtx: only indents changed r1070 2011-03-31 10:19:27 +0200 mjk: - * scrkplen.dtx: only one indent changed + * scrkernel-pseudolengths.dtx: only one indent changed r1069 2011-03-31 10:08:05 +0200 mjk: - * scrkbase.dtx: \FamilyStringKey and \FamilyNumericalKey fixed (thanks - to Michael Pock) + * scrkernel-basics.dtx: \FamilyStringKey and \FamilyNumericalKey fixed + (thanks to Michael Pock) r1068 2011-03-23 19:10:35 +0100 mjk: @@ -963,7 +2590,7 @@ r1067 2011-03-23 19:03:00 +0100 mjk: r1066 2011-03-23 18:51:49 +0100 mjk: - * scrkfloa.dtx: new options `captions=top', `captions=bot', + * scrkernel-floats.dtx: new options `captions=top', `captions=bot', `captions=figureabove', `captions=figurebelow' new commands `\captionaboveof' and `\captionsbelowof' @@ -986,7 +2613,7 @@ r1062 2011-03-10 09:37:34 +0100 mjk: r1061 2011-03-10 09:28:23 +0100 mjk: - * scrklang.dtx: scrlttr2 supports language naustrian + * scrkernel-language.dtx: scrlttr2 supports language naustrian r1060 2011-03-09 12:46:48 +0100 mjk: @@ -1017,8 +2644,8 @@ r1056 2011-03-07 10:50:55 +0100 mjk: r1055 2011-03-07 09:38:43 +0100 mjk: - * TODO, scrknpap.dtx: new values dateleft, dateright, and nodate for - option refline + * TODO, scrkernel-notepaper.dtx: new values dateleft, dateright, and + nodate for option refline r1054 2011-03-06 11:14:05 +0100 mjk: @@ -1030,7 +2657,7 @@ r1053 2011-03-01 13:45:55 +0100 mjk: r1051 2011-02-23 18:48:29 +0100 mjk: - * scrkfont.dtx, scrbeta.dtx, Makefile, scrmain.ins: new package + * scrkernel-fonts.dtx, scrbeta.dtx, Makefile, scrmain.ins: new package scrfontsizes.sty for generation of KOMA-Script compatible font sizefiles @@ -1047,12 +2674,13 @@ r1049 2011-02-22 11:39:28 +0100 mjk: r1048 2011-02-22 10:15:41 +0100 mjk: - * scrkfont.dtx: \@listiv, \@listv, and \listvi fixed at + * scrkernel-fonts.dtx: \@listiv, \@listv, and \listvi fixed at \changefontsizes r1046 2011-02-22 09:40:35 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.08b BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.08b BETA r1045 2011-02-19 10:50:59 +0100 mjk: @@ -1060,7 +2688,7 @@ r1045 2011-02-19 10:50:59 +0100 mjk: r1044 2011-02-19 10:49:40 +0100 mjk: - * scrkvers.dtx: prepared for 3.08a + * scrkernel-version.dtx: prepared for 3.08a r1043 2011-02-11 08:59:34 +0100 mjk: @@ -1081,15 +2709,16 @@ r1041 2011-02-09 18:37:55 +0100 mjk: r1040 2011-01-25 18:10:52 +0100 mjk: - * scrktare.dtx: file date changed + * scrkernel-typearea.dtx: file date changed r1039 2011-01-25 18:05:51 +0100 mjk: - * scrktare.dtx: missing % at one \AtBeginDocument added + * scrkernel-typearea.dtx: missing % at one \AtBeginDocument added r1038 2011-01-25 18:04:26 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.08a BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.08a BETA r1037 2011-01-25 09:02:16 +0100 mjk: @@ -1097,11 +2726,11 @@ r1037 2011-01-25 09:02:16 +0100 mjk: r1036 2011-01-25 09:00:57 +0100 mjk: - * scrkvers.dtx: prepared for 3.08 + * scrkernel-version.dtx: prepared for 3.08 r1035 2011-01-25 08:58:29 +0100 mjk: - * scrknpap.dtx: last change of \nexthead fixed + * scrkernel-notepaper.dtx: last change of \nexthead fixed r1034 2011-01-22 12:56:13 +0100 mjk: @@ -1110,19 +2739,25 @@ r1034 2011-01-22 12:56:13 +0100 mjk: r1033 2011-01-20 11:37:25 +0100 mjk: - * scrpage.dtx, scrklang.dtx, scrktitl.dtx, scrsource.tex, - scrhack.dtx, scrklist.dtx, scrdoc.dtx, tocstyle.dtx, scrjura.dtx, - scrextend.dtx, scrlogo.dtx, scrkbase.dtx, scrkmisc.dtx, scrpage.ins, - scrstrip.inc, scraddr.dtx, scrkpar.dtx, scrkfont.dtx, scrlettr.dtx, - scrbeta.dtx, Makefile.baseinit, Makefile, scrmain.ins, - Makefile.baserules, scrkplen.dtx, scrkvars.dtx, scrlfile.ins, - scrlfile.dtx, scrkftn.dtx, scrkxflo.dtx, scrkvers.dtx, scrksect.dtx, - scrkcile.dtx, scrwfile.dtx, scrkliof.dtx, scrkcomp.dtx, scrknpap.dtx, - scrkbib.dtx, scrktare.dtx, scrstrop.inc, japanlco.dtx, scrkpage.dtx, - scrkfloa.dtx, tocbasic.dtx, scraddr.ins, scrlettr.ins, scrkidx.dtx, - doc/, doc/plength.dtx, doc/Makefile.latexinit, doc/guide.tex, - doc/Makefile, doc/scrguide.cls, doc/Makefile.guide, doc/scrguide.ist, - doc/english/, doc/english/common-9.tex, doc/english/scrlfile.tex, + * scrkernel-sections.dtx, scrpage.dtx, scrsource.tex, + scrkernel-index.dtx, scrhack.dtx, scrdoc.dtx, + scrkernel-bibliography.dtx, tocstyle.dtx, scrkernel-version.dtx, + scrjura.dtx, scrextend.dtx, scrlogo.dtx, scrstrip.inc, + scrkernel-compatibility.dtx, scraddr.dtx, + scrkernel-pseudolengths.dtx, scrkernel-pagestyles.dtx, + scrkernel-circularletters.dtx, scrkernel-fonts.dtx, scrbeta.dtx, + scrkernel-listsandtabulars.dtx, Makefile.baseinit, + scrkernel-footnotes.dtx, Makefile, scrmain.ins, Makefile.baserules, + scrkernel-listsof.dtx, scrlfile.dtx, scrkernel-paragraphs.dtx, + scrkxflo.dtx, scrkernel-language.dtx, scrwfile.dtx, + scrkernel-notepaper.dtx, scrkernel-miscellaneous.dtx, + scrkernel-variables.dtx, scrstrop.inc, scrkernel-floats.dtx, + scrkernel-typearea.dtx, scrkernel-basics.dtx, japanlco.dtx, + scrkernel-title.dtx, tocbasic.dtx, obsolete/scrlettr.dtx, + obsolete/scrlettr.ins, doc/, doc/plength.dtx, doc/Makefile.latexinit, + doc/guide.tex, doc/Makefile, doc/scrguide.cls, doc/Makefile.guide, + doc/linkalias.tex, doc/scrguide.ist, doc/english/, + doc/english/common-9.tex, doc/english/scrlfile.tex, doc/english/common-0.tex, doc/english/common-2.tex, doc/english/common-10.tex, doc/english/scrbookreportarticle.tex, doc/english/common-15.tex, doc/english/common-12.tex, @@ -1139,19 +2774,17 @@ r1033 2011-01-20 11:37:25 +0100 mjk: doc/ngerman/scrlfile.tex, doc/ngerman/common-0.tex, doc/ngerman/scrlttr2.tex, doc/ngerman/scrextend.tex, doc/ngerman/common-2.tex, doc/ngerman/common-10.tex, - doc/ngerman/common-15.tex, doc/ngerman/guide.tex, - doc/ngerman/common-12.tex, doc/ngerman/adrconvnote.tex, - doc/ngerman/common-1.tex, doc/ngerman/introduction.tex, - doc/ngerman/common-8.tex, doc/ngerman/common-13.tex, - doc/ngerman/common-11.tex, doc/ngerman/guide-ngerman.tex, - doc/ngerman/typearea-experts.tex, doc/ngerman/Makefile, - doc/ngerman/typearea.tex, doc/ngerman/common-14.tex, - doc/ngerman/scrbase.tex, doc/ngerman/Makefile.guide, - doc/ngerman/linkalias.tex, doc/ngerman/common-6.tex, - doc/ngerman/common-3.tex, doc/ngerman/common-7.tex, - doc/ngerman/common-4.tex, doc/ngerman/scrlttr2examples.dtx, - doc/ngerman/scraddr.tex, doc/ngerman/tocbasic.tex, - doc/ngerman/expertpart.tex, + doc/ngerman/common-15.tex, doc/ngerman/common-12.tex, + doc/ngerman/adrconvnote.tex, doc/ngerman/common-1.tex, + doc/ngerman/introduction.tex, doc/ngerman/common-8.tex, + doc/ngerman/common-13.tex, doc/ngerman/common-11.tex, + doc/ngerman/guide-ngerman.tex, doc/ngerman/typearea-experts.tex, + doc/ngerman/Makefile, doc/ngerman/typearea.tex, + doc/ngerman/common-14.tex, doc/ngerman/scrbase.tex, + doc/ngerman/common-6.tex, doc/ngerman/common-3.tex, + doc/ngerman/common-7.tex, doc/ngerman/common-4.tex, + doc/ngerman/scrlttr2examples.dtx, doc/ngerman/scraddr.tex, + doc/ngerman/tocbasic.tex, doc/ngerman/expertpart.tex, doc/ngerman/scrbookreportarticle-experts.tex, doc/ngerman/preface.tex, doc/ngerman/common-5.tex, doc/ngerman/scrpage2.tex, doc/ngerman/authorpart.tex: Update of @@ -1181,8 +2814,9 @@ r1029 2011-01-20 09:00:32 +0100 mjk: r1028 2011-01-20 08:56:03 +0100 mjk: - * scrklang.dtx, doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: - scrlttr2 supports swedish (Benjamin Hell) + * scrkernel-language.dtx, doc/, doc/ngerman/, + doc/ngerman/scrlttr2-experts.tex: scrlttr2 supports swedish (Benjamin + Hell) r1027 2011-01-18 12:50:07 +0100 mjk: @@ -1195,8 +2829,8 @@ r1026 2011-01-18 12:43:01 +0100 mjk: r1025 2011-01-10 15:06:24 +0100 mjk: - * scrklco.dtx: output of fields address and location fixed at - visualize.lco + * scrkernel-letterclassoptions.dtx: output of fields address and + location fixed at visualize.lco r1024 2010-12-14 11:20:44 +0100 mjk: @@ -1204,18 +2838,18 @@ r1024 2010-12-14 11:20:44 +0100 mjk: r1023 2010-12-14 10:51:53 +0100 mjk: - * scrkpar.dtx, doc/, doc/ngerman/, doc/ngerman/common-6.tex: new - option parskip=never to avoid vertical stretching of paragraphs with - \flushbottom + * scrkernel-paragraphs.dtx, doc/, doc/ngerman/, + doc/ngerman/common-6.tex: new option parskip=never to avoid vertical + stretching of paragraphs with \flushbottom r1022 2010-12-14 10:38:13 +0100 mjk: - * scrkbase.dtx: checksum fixed + * scrkernel-basics.dtx: checksum fixed r1021 2010-12-14 10:37:40 +0100 mjk: - * scrkbase.dtx: - empty element at options list fixed - warning for - unexpected usage of \AfterKOMAoptions fixed + * scrkernel-basics.dtx: - empty element at options list fixed - + warning for unexpected usage of \AfterKOMAoptions fixed r1020 2010-11-22 17:50:57 +0100 mjk: @@ -1233,17 +2867,17 @@ r1018 2010-11-05 16:11:17 +0100 mjk: r1017 2010-11-05 15:37:31 +0100 mjk: - * scrkbase.dtx: fix for \Family@@String@@Key + * scrkernel-basics.dtx: fix for \Family@@String@@Key r1016 2010-11-05 15:24:59 +0100 mjk: - * scrkbase.dtx: new: \FamilyStringKey + * scrkernel-basics.dtx: new: \FamilyStringKey r1015 2010-11-05 12:22:30 +0100 mjk: - * scrkbase.dtx: Allow empty elements at option list of \KOMAoptions - and \FamilyOptions and value list of \KOMAoption and \FamilyOption. - CAVEAT: BREAKS SPECIFICATION! + * scrkernel-basics.dtx: Allow empty elements at option list of + \KOMAoptions and \FamilyOptions and value list of \KOMAoption and + \FamilyOption. CAVEAT: BREAKS SPECIFICATION! r1014 2010-11-05 11:52:31 +0100 mjk: @@ -1266,30 +2900,31 @@ r1011 2010-11-04 13:23:17 +0100 mjk: r1010 2010-11-04 10:46:27 +0100 mjk: - * scrkfloa.dtx: space needed for captionbeside should be independent - of vertical alignment + * scrkernel-floats.dtx: space needed for captionbeside should be + independent of vertical alignment r1009 2010-11-04 10:40:11 +0100 mjk: - * scrkfloa.dtx: vertical alignment of captionbeside in case of t- or - b-placement fixed + * scrkernel-floats.dtx: vertical alignment of captionbeside in case of + t- or b-placement fixed r1008 2010-11-01 21:13:17 +0100 mjk: - * scrksect.dtx, scrkliof.dtx: new: \addchaptertocentry, - \addparttocentry + * scrkernel-sections.dtx, scrkernel-listsof.dtx: new: + \addchaptertocentry, \addparttocentry r1007 2010-10-28 11:55:30 +0200 mjk: - * scrkcomp.dtx: checksum fixed + * scrkernel-compatibility.dtx: checksum fixed r1006 2010-10-28 11:55:02 +0200 mjk: - * scrkcomp.dtx: 3.07a removed because never existed + * scrkernel-compatibility.dtx: 3.07a removed because never existed r1005 2010-10-28 11:54:00 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.08 BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.08 BETA r1004 2010-10-28 11:51:40 +0200 mjk: @@ -1298,8 +2933,9 @@ r1004 2010-10-28 11:51:40 +0200 mjk: r1003 2010-10-28 11:49:47 +0200 mjk: - * scrkvars.dtx, scrknpap.dtx, scrkpage.dtx: \firsthead, \nexthead, - \firtfoot, \nextfoot are deprecated and replaced by variables + * scrkernel-pagestyles.dtx, scrkernel-notepaper.dtx, + scrkernel-variables.dtx: \firsthead, \nexthead, \firtfoot, \nextfoot + are deprecated and replaced by variables r1002 2010-10-20 10:49:11 +0200 mjk: @@ -1340,7 +2976,8 @@ r994 2010-09-30 10:57:24 +0200 mjk: r993 2010-09-30 10:56:40 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for KOMA-Script 3.07a BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + KOMA-Script 3.07a BETA r992 2010-09-17 18:10:51 +0200 mjk: @@ -1352,28 +2989,29 @@ r991 2010-09-17 11:11:10 +0200 mjk: r990 2010-09-17 10:55:45 +0200 mjk: - * scrkvers.dtx: prepared for 3.07 + * scrkernel-version.dtx: prepared for 3.07 r989 2010-09-17 10:20:13 +0200 mjk: - * scrkpage.dtx: pagestyle bug fixed at \cleardoubleoddpageusingstyle, - \cleardoubleevenpageusingstyle, \cleardoublepageusingstyle + * scrkernel-pagestyles.dtx: pagestyle bug fixed at + \cleardoubleoddpageusingstyle, \cleardoubleevenpageusingstyle, + \cleardoublepageusingstyle r988 2010-09-14 12:41:11 +0200 mjk: - * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex, - doc/ngerman/linkalias.tex, doc/ngerman/common-11.tex, - doc/ngerman/scrlttr2.tex: neues Font-Element "footnoterule" - dokumentiert + * doc/, doc/linkalias.tex, doc/ngerman/, doc/ngerman/scrlttr2.tex, + doc/ngerman/scrbookreportarticle.tex, doc/ngerman/common-11.tex: neues + Font-Element "footnoterule" dokumentiert r987 2010-09-14 11:55:32 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for KOMA-Script 3.07 BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + KOMA-Script 3.07 BETA r986 2010-09-14 11:51:44 +0200 mjk: - * scrkftn.dtx: new font element footnoterule to allow color changes of - the foot note separation rule + * scrkernel-footnotes.dtx: new font element footnoterule to allow + color changes of the foot note separation rule r985 2010-09-14 11:30:57 +0200 mjk: @@ -1382,8 +3020,8 @@ r985 2010-09-14 11:30:57 +0200 mjk: r984 2010-09-02 17:15:55 +0200 mjk: - * scrextend.dtx, scrmain.ins, scrkvers.dtx: scrextend identification - added + * scrkernel-version.dtx, scrextend.dtx, scrmain.ins: scrextend + identification added r983 2010-08-24 15:17:25 +0200 mjk: @@ -1392,8 +3030,8 @@ r983 2010-08-24 15:17:25 +0200 mjk: r982 2010-07-29 20:29:14 +0200 mjk: - * scrknpap.dtx: vertical alignment of addresse with parskip setting - different from false fixed + * scrkernel-notepaper.dtx: vertical alignment of addresse with parskip + setting different from false fixed r981 2010-06-30 10:51:52 +0200 mjk: @@ -1418,7 +3056,8 @@ r975 2010-06-17 09:54:01 +0200 mjk: r974 2010-06-17 09:53:42 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.06 + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.06 r973 2010-06-17 09:52:53 +0200 mjk: @@ -1430,8 +3069,8 @@ r972 2010-06-09 10:52:24 +0200 mjk: r971 2010-06-09 10:33:04 +0200 mjk: - * scrksect.dtx: usage of font element "sectioning" replaced by usage - of font element "disposition" + * scrkernel-sections.dtx: usage of font element "sectioning" replaced + by usage of font element "disposition" r970 2010-06-09 10:32:03 +0200 mjk: @@ -1456,7 +3095,8 @@ r967 2010-06-02 17:31:34 +0200 mjk: r966 2010-06-02 17:30:45 +0200 mjk: - * scrksect.dtx: setting of feature chapteratlist moved to scrkliof.dtx + * scrkernel-sections.dtx: setting of feature chapteratlist moved to + scrkliof.dtx r965 2010-06-02 17:28:54 +0200 mjk: @@ -1470,9 +3110,9 @@ r964 2010-06-02 17:21:21 +0200 mjk: r963 2010-06-02 15:20:55 +0200 mjk: - * scrkliof.dtx: settings of option "listof" (also indirekt via toc) - are valid for all "list of"s of tocbasic owner float, even if they - are not yet defined + * scrkernel-listsof.dtx: settings of option "listof" (also indirekt + via toc) are valid for all "list of"s of tocbasic owner float, even + if they are not yet defined r962 2010-06-02 12:07:57 +0200 mjk: @@ -1485,15 +3125,15 @@ r961 2010-06-02 12:05:46 +0200 mjk: r960 2010-06-02 11:43:45 +0200 mjk: - * scrkliof.dtx: new option "listof=entryprefix"; new internal macros - \numberline@prefix, \numberline@postfix, \numberline@numberformat, - \numberline@box, that may be used to change the behaviour of - \numberline + * scrkernel-listsof.dtx: new option "listof=entryprefix"; new internal + macros \numberline@prefix, \numberline@postfix, + \numberline@numberformat, \numberline@box, that may be used to + change the behaviour of \numberline r959 2010-04-29 12:55:13 +0200 mjk: - * scrklist.dtx: vertical alignment of addmargin after \par with - \parskip>0 fixed + * scrkernel-listsandtabulars.dtx: vertical alignment of addmargin + after \par with \parskip>0 fixed r958 2010-04-28 10:56:17 +0200 mjk: @@ -1518,9 +3158,8 @@ r954 2010-04-26 11:13:43 +0200 mjk: r953 2010-04-23 10:51:25 +0200 mjk: - * doc/, doc/scrguide.cls, doc/Makefile.guide, doc/guide.tex, - doc/ngerman/, doc/ngerman/Makefile.guide, doc/ngerman/guide.tex: link - to other language using package bookmark + * doc/, doc/guide.tex, doc/scrguide.cls, doc/Makefile.guide, + doc/ngerman/: link to other language using package bookmark r952 2010-04-05 19:31:04 +0200 mjk: @@ -1532,8 +3171,8 @@ r951 2010-04-05 19:30:07 +0200 mjk: r950 2010-04-03 19:40:32 +0200 mjk: - * scrkftn.dtx: new command \setfootnoterule and some helper macros for - the new command + * scrkernel-footnotes.dtx: new command \setfootnoterule and some + helper macros for the new command r949 2010-03-24 09:25:03 +0100 mjk: @@ -1541,13 +3180,14 @@ r949 2010-03-24 09:25:03 +0100 mjk: r948 2010-03-24 09:22:20 +0100 mjk: - * scrkfont.dtx, scrmain.ins: \setkomafont, \addtokomafont, + * scrkernel-fonts.dtx, scrmain.ins: \setkomafont, \addtokomafont, \usekomafton, \newkomafont, \aliaskomafont moved to package scrkbase r947 2010-03-18 16:01:23 +0100 mjk: - * scrktare.dtx, doc/, doc/ngerman/, doc/ngerman/typearea.tex: option - pagesize supports new output driver dvipdfmx + * scrkernel-typearea.dtx, doc/, doc/ngerman/, + doc/ngerman/typearea.tex: option pagesize supports new output driver + dvipdfmx r946 2010-03-18 15:40:08 +0100 mjk: @@ -1556,21 +3196,21 @@ r946 2010-03-18 15:40:08 +0100 mjk: r945 2010-03-18 12:33:32 +0100 mjk: - * scrkcomp.dtx: 3.05a is not a new compatibility level + * scrkernel-compatibility.dtx: 3.05a is not a new compatibility level r944 2010-03-18 12:32:36 +0100 mjk: - * scrktare.dtx: remove not correct working geometry change + * scrkernel-typearea.dtx: remove not correct working geometry change r943 2010-03-18 11:54:38 +0100 mjk: - * scrktare.dtx: file date an version fixed + * scrkernel-typearea.dtx: file date an version fixed r942 2010-03-18 11:54:00 +0100 mjk: - * scrktare.dtx, scrkcomp.dtx: if compatibility is at least 3.05a - typearea shares binding correction with binding offset of package - geometry + * scrkernel-compatibility.dtx, scrkernel-typearea.dtx: if + compatibility is at least 3.05a typearea shares binding correction + with binding offset of package geometry r941 2010-03-14 10:08:21 +0100 mjk: @@ -1621,13 +3261,14 @@ r933 2010-03-10 18:27:23 +0100 mjk: r932 2010-03-10 15:33:59 +0100 mjk: - * scrkbase.dtx, scrmain.ins, scrtime.dtx: scrtime and new written - scrdate handled by scrmain.ins, \XdivY and \XmodY added to scrbase - (used by scrdate) + * scrtime.dtx, scrmain.ins, scrkernel-basics.dtx: scrtime and new + written scrdate handled by scrmain.ins, \XdivY and \XmodY added to + scrbase (used by scrdate) r931 2010-03-10 13:03:30 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.05a BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.05a BETA r930 2010-02-15 11:49:41 +0100 mjk: @@ -1635,7 +3276,7 @@ r930 2010-02-15 11:49:41 +0100 mjk: r929 2010-02-15 11:48:37 +0100 mjk: - * scrkvers.dtx: prepared for 3.05 + * scrkernel-version.dtx: prepared for 3.05 r928 2010-02-15 11:38:37 +0100 mjk: @@ -1648,70 +3289,72 @@ r927 2010-02-09 10:41:50 +0100 mjk: r926 2010-02-09 10:38:52 +0100 mjk: - * scrkfont.dtx, scrktare.dtx, scrstrop.inc, scrstrip.inc, - scrklang.dtx, scrktitl.dtx, scrlettr.ins, scrkbib.dtx, scrpage.ins, - scrkplen.dtx, scrlogo.dtx, scrkliof.dtx, scrklist.dtx, - Makefile.baseinit, scrextend.dtx, scrkfloa.dtx, scrtime.ins, - tocbasic.dtx, Makefile.baserules, scrkcile.dtx, scraddr.ins, - scrlfile.ins, scrmain.ins, scrkvars.dtx, scrkmisc.dtx, scrdoc.dtx, - Makefile, scrkpar.dtx, scrsource.tex, tocstyle.dtx, scrtime.dtx, - scrkvers.dtx, scrkcomp.dtx, scrknpap.dtx, scrksect.dtx, scraddr.dtx, - scrjura.dtx, scrkftn.dtx, scrkidx.dtx, scrlfile.dtx, scrlettr.dtx, - scrklco.dtx, scrkxflo.dtx, japanlco.dtx, scrbeta.dtx, scrpage.dtx, - doc/, doc/scrguide.cls, doc/Makefile.latexinit, doc/Makefile.guide, - doc/Makefile, doc/guide.bib, doc/koma-script.html, doc/guide.tex, - doc/plength.dtx, doc/scrguide.ist, doc/english/, - doc/english/scrbookreportarticle.tex, doc/english/common-2.tex, - doc/english/common-1.tex, doc/english/common-7.tex, - doc/english/common-13.tex, doc/english/common-4.tex, - doc/english/common-0.tex, doc/english/scrlfile.tex, - doc/english/scrdatetime.tex, doc/english/scrpage2.tex, - doc/english/introduction.tex, doc/english/common-9.tex, - doc/english/common-10.tex, doc/english/Makefile, - doc/english/guide-english.tex, doc/english/common-8.tex, - doc/english/common-15.tex, doc/english/common-11.tex, - doc/english/scrlttr2.tex, doc/english/adrconvnote.tex, - doc/english/typearea.tex, doc/english/common-5.tex, - doc/english/scraddr.tex, doc/english/common-3.tex, - doc/english/japanlco.tex, doc/english/common-14.tex, - doc/english/common-6.tex, doc/english/common-12.tex, doc/ngerman/, - doc/ngerman/scrbookreportarticle.tex, doc/ngerman/common-2.tex, - doc/ngerman/common-1.tex, doc/ngerman/common-7.tex, - doc/ngerman/preface.tex, doc/ngerman/scrbase.tex, - doc/ngerman/expertpart.tex, doc/ngerman/common-13.tex, - doc/ngerman/common-4.tex, doc/ngerman/scrextend.tex, - doc/ngerman/tocbasic.tex, doc/ngerman/common-0.tex, - doc/ngerman/linkalias.tex, doc/ngerman/scrlfile.tex, - doc/ngerman/authorpart.tex, doc/ngerman/Makefile.guide, - doc/ngerman/scrdatetime.tex, doc/ngerman/scrpage2.tex, - doc/ngerman/typearea-experts.tex, doc/ngerman/introduction.tex, - doc/ngerman/common-9.tex, doc/ngerman/common-10.tex, - doc/ngerman/Makefile, doc/ngerman/scrlttr2-experts.tex, - doc/ngerman/common-8.tex, doc/ngerman/common-15.tex, - doc/ngerman/common-11.tex, doc/ngerman/scrlttr2examples.dtx, - doc/ngerman/scrlttr2.tex, doc/ngerman/adrconvnote.tex, - doc/ngerman/typearea.tex, doc/ngerman/common-5.tex, - doc/ngerman/guide.tex, doc/ngerman/scrbookreportarticle-experts.tex, - doc/ngerman/scraddr.tex, doc/ngerman/common-3.tex, - doc/ngerman/common-14.tex, doc/ngerman/guide-ngerman.tex, - doc/ngerman/common-12.tex: - - it's 2010 - - user documentation of pseudo - lengths "firstheadhpos" and "firstheadvpos" added + * scrkernel-sections.dtx, scrpage.dtx, scrsource.tex, + scrkernel-index.dtx, scrtime.dtx, scrdoc.dtx, + scrkernel-bibliography.dtx, tocstyle.dtx, scrkernel-version.dtx, + scrjura.dtx, scrextend.dtx, scrlogo.dtx, scrstrip.inc, + scrkernel-compatibility.dtx, scraddr.dtx, + scrkernel-pseudolengths.dtx, scrkernel-letterclassoptions.dtx, + scrkernel-circularletters.dtx, scrkernel-fonts.dtx, scrbeta.dtx, + scrkernel-listsandtabulars.dtx, Makefile.baseinit, + scrkernel-footnotes.dtx, Makefile, scrmain.ins, Makefile.baserules, + scrkernel-listsof.dtx, scrlfile.dtx, scrkernel-paragraphs.dtx, + scrkxflo.dtx, scrkernel-language.dtx, scrkernel-notepaper.dtx, + scrkernel-miscellaneous.dtx, scrkernel-variables.dtx, scrstrop.inc, + scrkernel-floats.dtx, scrkernel-typearea.dtx, japanlco.dtx, + scrkernel-title.dtx, tocbasic.dtx, obsolete/scrlettr.dtx, + obsolete/scrlettr.ins, doc/, doc/plength.dtx, doc/Makefile.latexinit, + doc/guide.tex, doc/Makefile, doc/scrguide.cls, doc/Makefile.guide, + doc/linkalias.tex, doc/guide.bib, doc/scrguide.ist, + doc/koma-script.html, doc/english/, doc/english/common-9.tex, + doc/english/scrlfile.tex, doc/english/common-0.tex, + doc/english/scrlttr2.tex, doc/english/common-2.tex, + doc/english/common-10.tex, doc/english/scrbookreportarticle.tex, + doc/english/common-15.tex, doc/english/common-12.tex, + doc/english/adrconvnote.tex, doc/english/scrdatetime.tex, + doc/english/common-1.tex, doc/english/introduction.tex, + doc/english/common-8.tex, doc/english/common-13.tex, + doc/english/common-11.tex, doc/english/Makefile, + doc/english/typearea.tex, doc/english/common-14.tex, + doc/english/common-6.tex, doc/english/common-3.tex, + doc/english/common-7.tex, doc/english/japanlco.tex, + doc/english/common-4.tex, doc/english/scraddr.tex, + doc/english/guide-english.tex, doc/english/common-5.tex, + doc/english/scrpage2.tex, doc/ngerman/, doc/ngerman/common-9.tex, + doc/ngerman/scrlfile.tex, doc/ngerman/common-0.tex, + doc/ngerman/scrlttr2.tex, doc/ngerman/scrextend.tex, + doc/ngerman/common-2.tex, doc/ngerman/common-10.tex, + doc/ngerman/scrbookreportarticle.tex, doc/ngerman/common-15.tex, + doc/ngerman/common-12.tex, doc/ngerman/adrconvnote.tex, + doc/ngerman/scrdatetime.tex, doc/ngerman/common-1.tex, + doc/ngerman/introduction.tex, doc/ngerman/common-8.tex, + doc/ngerman/common-13.tex, doc/ngerman/common-11.tex, + doc/ngerman/guide-ngerman.tex, doc/ngerman/typearea-experts.tex, + doc/ngerman/Makefile, doc/ngerman/typearea.tex, + doc/ngerman/common-14.tex, doc/ngerman/scrlttr2-experts.tex, + doc/ngerman/scrbase.tex, doc/ngerman/common-3.tex, + doc/ngerman/common-7.tex, doc/ngerman/common-4.tex, + doc/ngerman/scrlttr2examples.dtx, doc/ngerman/scraddr.tex, + doc/ngerman/tocbasic.tex, doc/ngerman/expertpart.tex, + doc/ngerman/scrbookreportarticle-experts.tex, + doc/ngerman/preface.tex, doc/ngerman/common-5.tex, + doc/ngerman/scrpage2.tex, doc/ngerman/authorpart.tex: * it's 2010 * + user documentation of pseudo lengths "firstheadhpos" and + "firstheadvpos" added r925 2010-02-05 09:20:36 +0100 mjk: - * scrkpage.dtx: \pagemark changed to allow last element of pagenumber - may expect an argument + * scrkernel-pagestyles.dtx: \pagemark changed to allow last element of + pagenumber may expect an argument r924 2010-02-02 09:18:46 +0100 mjk: - * scrkbase.dtx: improved stability of \FamilyExecuteOptions + * scrkernel-basics.dtx: improved stability of \FamilyExecuteOptions r923 2010-01-29 15:25:24 +0100 mjk: - * scrkbase.dtx: some \edef replaced by \protected@edef to fix e.g. - \ifstr and \FamilyOptions + * scrkernel-basics.dtx: some \edef replaced by \protected@edef to fix + e.g. \ifstr and \FamilyOptions r922 2010-01-26 10:13:44 +0100 mjk: @@ -1740,36 +3383,35 @@ r917 2009-11-28 12:00:45 +0100 mjk: * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex, doc/ngerman/common-3.tex: - r916 2009-11-28 11:57:23 +0100 mjk: - * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex, - doc/ngerman/scrlttr2.tex: Ligaturverhinderung im Index wegen neuer - hyperref-Version geändert + * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex, + doc/ngerman/scrbookreportarticle.tex: Ligaturverhinderung im Index + wegen neuer hyperref-Version geändert r915 2009-11-28 11:53:56 +0100 mjk: - * doc/, doc/english/, doc/english/common-2.tex, - doc/english/common-1.tex, doc/english/common-7.tex, - doc/english/common-13.tex, doc/english/common-4.tex, - doc/english/common-0.tex, doc/english/common-9.tex, - doc/english/common-10.tex, doc/english/common-8.tex, - doc/english/common-15.tex, doc/english/common-11.tex, - doc/english/common-5.tex, doc/english/common-3.tex, - doc/english/common-14.tex, doc/english/common-6.tex, - doc/english/common-12.tex: common.tex splitted + * doc/, doc/english/, doc/english/common-9.tex, + doc/english/common-0.tex, doc/english/common-2.tex, + doc/english/common-10.tex, doc/english/common-15.tex, + doc/english/common-12.tex, doc/english/common-1.tex, + doc/english/common-8.tex, doc/english/common-13.tex, + doc/english/common-11.tex, doc/english/common-14.tex, + doc/english/common-6.tex, doc/english/common-3.tex, + doc/english/common-7.tex, doc/english/common-4.tex, + doc/english/common-5.tex: common.tex splitted r914 2009-11-28 11:53:21 +0100 mjk: - * doc/, doc/ngerman/, doc/ngerman/common-2.tex, - doc/ngerman/common-1.tex, doc/ngerman/common-7.tex, - doc/ngerman/common-13.tex, doc/ngerman/common-4.tex, - doc/ngerman/common-0.tex, doc/ngerman/common-9.tex, - doc/ngerman/common-10.tex, doc/ngerman/common-8.tex, - doc/ngerman/common-15.tex, doc/ngerman/common-11.tex, - doc/ngerman/common-5.tex, doc/ngerman/common-3.tex, - doc/ngerman/common-14.tex, doc/ngerman/common-6.tex, - doc/ngerman/common-12.tex: common.tex splitted + * doc/, doc/ngerman/, doc/ngerman/common-9.tex, + doc/ngerman/common-0.tex, doc/ngerman/common-2.tex, + doc/ngerman/common-10.tex, doc/ngerman/common-15.tex, + doc/ngerman/common-12.tex, doc/ngerman/common-1.tex, + doc/ngerman/common-8.tex, doc/ngerman/common-13.tex, + doc/ngerman/common-11.tex, doc/ngerman/common-14.tex, + doc/ngerman/common-6.tex, doc/ngerman/common-3.tex, + doc/ngerman/common-7.tex, doc/ngerman/common-4.tex, + doc/ngerman/common-5.tex: common.tex splitted r913 2009-11-28 11:35:29 +0100 mjk: @@ -1778,7 +3420,7 @@ r913 2009-11-28 11:35:29 +0100 mjk: r912 2009-11-28 11:16:05 +0100 mjk: - * scrkbase.dtx: spellfix: internally + * scrkernel-basics.dtx: spellfix: internally r911 2009-11-11 16:44:30 +0100 mjk: @@ -1786,11 +3428,12 @@ r911 2009-11-11 16:44:30 +0100 mjk: r910 2009-11-11 11:33:18 +0100 mjk: - * tocstyle.dtx, scrksect.dtx, scrpage.dtx: part is always level -1 + * scrkernel-sections.dtx, scrpage.dtx, tocstyle.dtx: part is always + level -1 r909 2009-11-11 10:35:40 +0100 mjk: - * scrklco.dtx: checksum fixed + * scrkernel-letterclassoptions.dtx: checksum fixed r908 2009-11-11 09:38:32 +0100 mjk: @@ -1798,11 +3441,12 @@ r908 2009-11-11 09:38:32 +0100 mjk: r907 2009-11-09 16:28:43 +0100 mjk: - * scrknpap.dtx, scrklco.dtx: new pseudo lengths supported + * scrkernel-letterclassoptions.dtx, scrkernel-notepaper.dtx: new + pseudo lengths supported r906 2009-11-09 16:04:39 +0100 mjk: - * scrknpap.dtx: New pseudo-lengths "firstheadhpos" and + * scrkernel-notepaper.dtx: New pseudo-lengths "firstheadhpos" and "firstfoothpos". r905 2009-11-09 11:48:51 +0100 mjk: @@ -1826,19 +3470,19 @@ r902 2009-08-05 11:43:27 +0200 mjk: r901 2009-08-05 11:41:44 +0200 mjk: - * scrkbase.dtx: version number at \changes fixed + * scrkernel-basics.dtx: version number at \changes fixed r900 2009-08-05 11:40:51 +0200 mjk: - * scrkfloa.dtx: version number at \changed fixed + * scrkernel-floats.dtx: version number at \changed fixed r899 2009-08-05 11:40:00 +0200 mjk: - * scrkliof.dtx: version number at \changed fixed + * scrkernel-listsof.dtx: version number at \changed fixed r898 2009-07-24 19:54:31 +0200 mjk: - * scrkvers.dtx: prepared for 3.05 BETA + * scrkernel-version.dtx: prepared for 3.05 BETA r897 2009-07-24 19:32:25 +0200 mjk: @@ -1846,11 +3490,12 @@ r897 2009-07-24 19:32:25 +0200 mjk: r896 2009-07-24 17:48:46 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.04a + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.04a r895 2009-07-24 15:53:30 +0200 mjk: - * scrklco.dtx: generation of KOMAold fixed + * scrkernel-letterclassoptions.dtx: generation of KOMAold fixed r894 2009-07-24 11:59:07 +0200 mjk: @@ -1869,13 +3514,12 @@ r892 2009-07-15 11:22:44 +0200 mjk: r891 2009-07-15 11:21:06 +0200 mjk: * doc/, doc/scrguide.cls, doc/Makefile.guide, doc/english/, - doc/ngerman/, doc/ngerman/Makefile.guide: common.tex splitted into - single common-.tex files + doc/ngerman/: common.tex splitted into single common-.tex files r890 2009-07-14 10:01:30 +0200 mjk: - * scrktitl.dtx: Option titlepage may be changed after loading using - \KOMAoptions. + * scrkernel-title.dtx: Option titlepage may be changed after loading + using \KOMAoptions. r889 2009-07-10 15:41:10 +0200 mjk: @@ -1888,11 +3532,12 @@ r888 2009-07-08 10:30:58 +0200 mjk: r887 2009-07-08 10:25:15 +0200 mjk: - * scrkfloa.dtx: \captionof added + * scrkernel-floats.dtx: \captionof added r886 2009-07-08 09:16:19 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.05 BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.05 BETA r885 2009-07-07 18:23:22 +0200 mjk: @@ -1912,8 +3557,9 @@ r882 2009-07-07 11:49:12 +0200 mjk: r881 2009-07-07 11:48:32 +0200 mjk: - * scrmain.ins, scrkvers.dtx, scrkcomp.dtx, scrbeta.dtx: some files may - be beta but nevertheless may be distributed since KOMA-Script 3.04 + * scrkernel-version.dtx, scrkernel-compatibility.dtx, scrbeta.dtx, + scrmain.ins: some files may be beta but nevertheless may be + distributed since KOMA-Script 3.04 r880 2009-07-07 11:00:10 +0200 mjk: @@ -1927,51 +3573,55 @@ r879 2009-07-07 10:15:05 +0200 mjk: r878 2009-07-07 10:14:10 +0200 mjk: - * scrkcomp.dtx: version number of 3.03, 3.03a, and 3.03b fixed + * scrkernel-compatibility.dtx: version number of 3.03, 3.03a, and + 3.03b fixed r876 2009-06-30 16:08:16 +0200 mjk: - * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex, - doc/ngerman/scrlttr2.tex: deutsche Dokumentation von UScommercial9.lco - UScommercial9DW.lco und visualize.lco + * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex, + doc/ngerman/scrlttr2-experts.tex: deutsche Dokumentation von + UScommercial9.lco UScommercial9DW.lco und visualize.lco r875 2009-06-30 13:06:19 +0200 mjk: - * scrklco.dtx: CheckSum fixed + * scrkernel-letterclassoptions.dtx: CheckSum fixed r874 2009-06-30 12:31:53 +0200 mjk: - * scrklco.dtx: \showfieldcolor replaced by font element field + * scrkernel-letterclassoptions.dtx: \showfieldcolor replaced by font + element field r873 2009-06-30 12:24:02 +0200 mjk: - * scrmain.ins, Makefile, scrklco.dtx, scrbeta.dtx: Do not longer - create USletter2w.lco; renamed USletterC9DW.lco into - UScommercial9DW.lco; new LCO UScommercial9.lco. + * scrkernel-letterclassoptions.dtx, scrbeta.dtx, Makefile, + scrmain.ins: Do not longer create USletter2w.lco; renamed + USletterC9DW.lco into UScommercial9DW.lco; new LCO + UScommercial9.lco. r872 2009-06-30 08:33:44 +0200 mjk: - * scrknpap.dtx: spelling of ``addressee'' fixed + * scrkernel-notepaper.dtx: spelling of ``addressee'' fixed r871 2009-06-29 18:59:41 +0200 mjk: - * scrmain.ins, scrklco.dtx, scrbeta.dtx: new LCO USletterC9DW + * scrkernel-letterclassoptions.dtx, scrbeta.dtx, scrmain.ins: new LCO + USletterC9DW r870 2009-06-26 14:01:27 +0200 mjk: - * scrmain.ins, Makefile, scrklco.dtx, scrbeta.dtx: new lco files - visualize.lco and USletter2w.lco startet + * scrkernel-letterclassoptions.dtx, scrbeta.dtx, Makefile, + scrmain.ins: new lco files visualize.lco and USletter2w.lco startet r869 2009-06-25 11:09:46 +0200 mjk: - * scrknpap.dtx, scrklco.dtx: implementation of sender and addressee - field fits documentation (sender does not longer increase height of - addresse) + * scrkernel-letterclassoptions.dtx, scrkernel-notepaper.dtx: + implementation of sender and addressee field fits documentation + (sender does not longer increase height of addresse) r868 2009-06-25 10:21:40 +0200 mjk: - * scrknpap.dtx: vertical alignment of addressee and usage of - \@savevbox fixed + * scrkernel-notepaper.dtx: vertical alignment of addressee and usage + of \@savevbox fixed r867 2009-06-12 12:20:48 +0200 mjk: @@ -1984,8 +3634,8 @@ r866 2009-06-12 11:13:49 +0200 mjk: r865 2009-06-09 11:46:44 +0200 mjk: - * scrksect.dtx: workaround for undocumented problem of hyperref with - \relax at \the + * scrkernel-sections.dtx: workaround for undocumented problem of + hyperref with \relax at \the r864 2009-06-08 09:24:37 +0200 mjk: @@ -1993,8 +3643,8 @@ r864 2009-06-08 09:24:37 +0200 mjk: r863 2009-05-11 12:09:06 +0200 mjk: - * scrklist.dtx: scrextend has font elements labelinglabel and - labelingseparator + * scrkernel-listsandtabulars.dtx: scrextend has font elements + labelinglabel and labelingseparator r862 2009-04-21 10:48:00 +0200 mjk: @@ -2002,9 +3652,9 @@ r862 2009-04-21 10:48:00 +0200 mjk: r861 2009-04-21 10:45:52 +0200 mjk: - * scrmain.ins, scrklco.dtx, scrbeta.dtx, doc/, doc/guide.bib, - doc/english/, doc/english/scrlttr2.tex, doc/ngerman/, - doc/ngerman/scrlttr2-experts.tex, doc/ngerman/scrlttr2.tex: new Letter + * scrkernel-letterclassoptions.dtx, scrbeta.dtx, scrmain.ins, doc/, + doc/guide.bib, doc/english/, doc/english/scrlttr2.tex, doc/ngerman/, + doc/ngerman/scrlttr2.tex, doc/ngerman/scrlttr2-experts.tex: new Letter Class Option NF.lco r860 2009-04-21 09:06:07 +0200 mjk: @@ -2013,12 +3663,12 @@ r860 2009-04-21 09:06:07 +0200 mjk: r859 2009-04-21 08:56:43 +0200 mjk: - * scrksect.dtx: One »~« replaced by »\nobreakspace« to improve - compatibility with Spanish (babel). + * scrkernel-sections.dtx: One »~« replaced by »\nobreakspace« to + improve compatibility with Spanish (babel). r858 2009-04-21 08:55:07 +0200 mjk: - * scrksect.dtx: one »~« replaced by »\nobreakspace« + * scrkernel-sections.dtx: one »~« replaced by »\nobreakspace« r857 2009-04-12 19:55:30 +0200 mjk: @@ -2026,7 +3676,8 @@ r857 2009-04-12 19:55:30 +0200 mjk: r856 2009-04-12 19:55:05 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.03b BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.03b BETA r855 2009-04-06 09:07:57 +0200 mjk: @@ -2042,27 +3693,26 @@ r853 2009-04-03 16:17:23 +0200 mjk: r852 2009-04-03 09:40:47 +0200 mjk: - * scrkvers.dtx: prepared for 3.03a + * scrkernel-version.dtx: prepared for 3.03a r851 2009-04-02 11:31:08 +0200 mjk: - * scrklist.dtx: Bug at calculation of width of labeling label fixed + * scrkernel-listsandtabulars.dtx: Bug at calculation of width of + labeling label fixed r850 2009-04-02 11:30:28 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.03a BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.03a BETA r849 2009-03-30 10:29:16 +0200 mjk: - * releaselist.txt: release 2009/04/01 v3.03 + * releaselist.txt: release 2009/04/01 v3.03 r848 2009-03-30 09:49:35 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.03 - -r847 2009-03-25 10:48:11 +0100 mjk: - - * scrlfile.ins: german comment changed + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.03 r846 2009-03-25 10:47:43 +0100 mjk: @@ -2070,7 +3720,7 @@ r846 2009-03-25 10:47:43 +0100 mjk: r845 2009-03-25 10:46:36 +0100 mjk: - * scrlfile.ins, scrlfile.dtx: new command \AfterReadingMainAux + * scrlfile.dtx: new command \AfterReadingMainAux r844 2009-03-24 10:22:26 +0100 mjk: @@ -2078,43 +3728,45 @@ r844 2009-03-24 10:22:26 +0100 mjk: r843 2009-03-19 11:01:11 +0100 mjk: - * scrkfont.dtx, komabug.tex, scrktare.dtx, scrstrop.inc, - scrstrip.inc, scrkbase.dtx, scrklang.dtx, scrktitl.dtx, scrhack.dtx, - scrlettr.ins, scrkbib.dtx, scrpage.ins, scrkplen.dtx, scrlogo.dtx, - scrkliof.dtx, lppl-de.txt, scrklist.dtx, Makefile.baseinit, - scrextend.dtx, scrkfloa.dtx, scrtime.ins, tocbasic.dtx, - Makefile.baserules, scrkcile.dtx, scraddr.ins, scrlfile.ins, - scrmain.ins, scrkvars.dtx, scrkmisc.dtx, scrdoc.dtx, Makefile, - scrkpar.dtx, scrsource.tex, tocstyle.dtx, scrtime.dtx, scrkpage.dtx, - scrkvers.dtx, scrkcomp.dtx, scrknpap.dtx, scrksect.dtx, scraddr.dtx, - scrjura.dtx, scrkftn.dtx, scrkidx.dtx, scrlfile.dtx, scrlettr.dtx, - manifest.txt, scrklco.dtx, scrkxflo.dtx, japanlco.dtx, scrbeta.dtx, - lppl.txt, scrpage.dtx, doc/, doc/scrguide.gst, doc/scrguide.cls, - doc/Makefile.latexinit, doc/Makefile.guide, doc/Makefile, - doc/koma-script.html, doc/guide.tex, doc/plength.dtx, - doc/scrguide.ist, doc/english/, doc/english/scrbookreportarticle.tex, - doc/english/common.tex, doc/english/scrlfile.tex, - doc/english/scrdatetime.tex, doc/english/scrpage2.tex, - doc/english/introduction.tex, doc/english/htmlsetup, - doc/english/Makefile, doc/english/guide-english.tex, - doc/english/scrlttr2.tex, doc/english/adrconvnote.tex, - doc/english/typearea.tex, doc/english/scraddr.tex, - doc/english/japanlco.tex, doc/bin/, doc/bin/genhtmlidx.pl, - doc/bin/genindex.pl, doc/ngerman/, - doc/ngerman/scrbookreportarticle.tex, doc/ngerman/preface.tex, - doc/ngerman/scrbase.tex, doc/ngerman/expertpart.tex, - doc/ngerman/scrextend.tex, doc/ngerman/tocbasic.tex, - doc/ngerman/linkalias.tex, doc/ngerman/common.tex, - doc/ngerman/scrlfile.tex, doc/ngerman/authorpart.tex, - doc/ngerman/Makefile.guide, doc/ngerman/scrdatetime.tex, - doc/ngerman/scrpage2.tex, doc/ngerman/typearea-experts.tex, - doc/ngerman/introduction.tex, doc/ngerman/htmlsetup, - doc/ngerman/Makefile, doc/ngerman/scrlttr2-experts.tex, - doc/ngerman/scrlttr2examples.dtx, doc/ngerman/scrlttr2.tex, - doc/ngerman/adrconvnote.tex, doc/ngerman/typearea.tex, - doc/ngerman/guide.tex, doc/ngerman/scrbookreportarticle-experts.tex, - doc/ngerman/scraddr.tex, doc/ngerman/guide-ngerman.tex: switched from - LPPL 1.3b to LPPL 1.3c + * scrkernel-sections.dtx, scrpage.dtx, scrsource.tex, + scrkernel-index.dtx, scrtime.dtx, scrhack.dtx, scrdoc.dtx, + scrkernel-bibliography.dtx, tocstyle.dtx, scrkernel-version.dtx, + scrjura.dtx, scrextend.dtx, scrlogo.dtx, scrstrip.inc, + scrkernel-compatibility.dtx, scraddr.dtx, + scrkernel-pseudolengths.dtx, lppl.txt, scrkernel-pagestyles.dtx, + scrkernel-letterclassoptions.dtx, scrkernel-circularletters.dtx, + scrkernel-fonts.dtx, scrbeta.dtx, scrkernel-listsandtabulars.dtx, + Makefile.baseinit, scrkernel-footnotes.dtx, Makefile, scrmain.ins, + Makefile.baserules, scrkernel-listsof.dtx, scrlfile.dtx, komabug.tex, + scrkernel-paragraphs.dtx, scrkxflo.dtx, scrkernel-language.dtx, + scrkernel-notepaper.dtx, scrkernel-miscellaneous.dtx, + scrkernel-variables.dtx, manifest.txt, scrstrop.inc, + scrkernel-floats.dtx, scrkernel-typearea.dtx, lppl-de.txt, + scrkernel-basics.dtx, japanlco.dtx, scrkernel-title.dtx, + tocbasic.dtx, obsolete/scrlettr.dtx, obsolete/scrlettr.ins, doc/, + doc/plength.dtx, doc/Makefile.latexinit, doc/guide.tex, doc/Makefile, + doc/scrguide.cls, doc/Makefile.guide, doc/linkalias.tex, + doc/scrguide.ist, doc/koma-script.html, doc/scrguide.gst, + doc/english/, doc/english/scrlfile.tex, doc/english/scrlttr2.tex, + doc/english/htmlsetup, doc/english/scrbookreportarticle.tex, + doc/english/adrconvnote.tex, doc/english/scrdatetime.tex, + doc/english/introduction.tex, doc/english/Makefile, + doc/english/typearea.tex, doc/english/japanlco.tex, + doc/english/scraddr.tex, doc/english/guide-english.tex, + doc/english/scrpage2.tex, doc/ngerman/, doc/ngerman/scrlfile.tex, + doc/ngerman/scrlttr2.tex, doc/ngerman/htmlsetup, + doc/ngerman/scrextend.tex, doc/ngerman/scrbookreportarticle.tex, + doc/ngerman/adrconvnote.tex, doc/ngerman/scrdatetime.tex, + doc/ngerman/introduction.tex, doc/ngerman/guide-ngerman.tex, + doc/ngerman/typearea-experts.tex, doc/ngerman/Makefile, + doc/ngerman/typearea.tex, doc/ngerman/scrlttr2-experts.tex, + doc/ngerman/scrbase.tex, doc/ngerman/scrlttr2examples.dtx, + doc/ngerman/scraddr.tex, doc/ngerman/tocbasic.tex, + doc/ngerman/expertpart.tex, + doc/ngerman/scrbookreportarticle-experts.tex, + doc/ngerman/preface.tex, doc/ngerman/scrpage2.tex, + doc/ngerman/authorpart.tex, doc/bin/, doc/bin/genhtmlidx.pl, + doc/bin/genindex.pl: switched from LPPL 1.3b to LPPL 1.3c r842 2009-03-18 11:32:48 +0100 mjk: @@ -2134,8 +3786,8 @@ r839 2009-03-17 10:21:01 +0100 mjk: r838 2009-03-16 17:54:36 +0100 mjk: - * tocbasic.dtx, scrmain.ins, Makefile, scrsource.tex, manifest.txt, - scrbeta.dtx: new packages + * scrsource.tex, scrbeta.dtx, Makefile, scrmain.ins, manifest.txt, + tocbasic.dtx: new packages r837 2009-03-16 17:51:50 +0100 mjk: @@ -2166,71 +3818,73 @@ r832 2009-03-12 08:55:06 +0100 mjk: r831 2009-03-04 19:19:04 +0100 mjk: - * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex, - doc/ngerman/scrlttr2.tex: Erlärung der neuen Möglichkeiten von - scrlttr2 3.03 bis 2009/03/04 + * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex, + doc/ngerman/scrlttr2-experts.tex: Erlärung der neuen Möglichkeiten + von scrlttr2 3.03 bis 2009/03/04 r830 2009-03-04 19:17:55 +0100 mjk: - * scrklco.dtx, japanlco.dtx: set term for "fromzipcode" + * scrkernel-letterclassoptions.dtx, japanlco.dtx: set term for + "fromzipcode" r829 2009-03-04 18:41:27 +0100 mjk: - * scrknpap.dtx: "ECONOMAY" --> "ECONOMY" + * scrkernel-notepaper.dtx: "ECONOMAY" --> "ECONOMY" r828 2009-03-04 11:43:37 +0100 mjk: - * scrkvars.dtx: new command \ifkomavar and reimplementation of - \ifkomavarempty + * scrkernel-variables.dtx: new command \ifkomavar and reimplementation + of \ifkomavarempty r827 2009-03-04 11:25:28 +0100 mjk: - * scrknpap.dtx: new addresse modes "PP", "backgroundimage", "image" - with several new font elements and pseudo-lengths + * scrkernel-notepaper.dtx: new addresse modes "PP", "backgroundimage", + "image" with several new font elements and pseudo-lengths r826 2009-03-02 17:24:10 +0100 mjk: - * doc/, doc/ngerman/, doc/ngerman/linkalias.tex: Option "version" wird + * doc/, doc/linkalias.tex, doc/ngerman/: Option "version" wird neuerdings bereits im Kapitel über typearea eingeführt, also müssen die Links in den freien Versionen darauf zeigen. r825 2009-02-27 09:45:52 +0100 mjk: - * doc/, doc/ngerman/, doc/ngerman/common.tex: "Abstandsart" --> - "Methode" vereinheitlicht + * doc/, doc/ngerman/: "Abstandsart" --> "Methode" vereinheitlicht r824 2009-02-19 10:03:05 +0100 mjk: - * scrkbase.dtx: Error if not e-TeX, at least version 2, is used + * scrkernel-basics.dtx: Error if not e-TeX, at least version 2, is + used r823 2009-02-17 11:15:39 +0100 mjk: - * scrklang.dtx: made the already-defined test more robust + * scrkernel-language.dtx: made the already-defined test more robust r822 2009-02-17 10:13:46 +0100 mjk: - * scrkmisc.dtx: Information to `final' fixed at scrextend + * scrkernel-miscellaneous.dtx: Information to `final' fixed at + scrextend r821 2009-02-14 11:03:08 +0100 mjk: - * scrkcomp.dtx: 3.02c ist not the same like 3.02b + * scrkernel-compatibility.dtx: 3.02c ist not the same like 3.02b r820 2009-02-14 10:47:50 +0100 mjk: - * scrktare.dtx: some implementation docu added + * scrkernel-typearea.dtx: some implementation docu added r819 2009-02-14 10:22:53 +0100 mjk: - * scrktare.dtx: PostScript code added to change page size at the - document + * scrkernel-typearea.dtx: PostScript code added to change page size at + the document r818 2009-02-13 18:45:23 +0100 mjk: - * scrktare.dtx: paper=seascape implemented + * scrkernel-typearea.dtx: paper=seascape implemented r817 2009-02-11 12:35:36 +0100 mjk: - * scrknpap.dtx: one comment changed + * scrkernel-notepaper.dtx: one comment changed r816 2009-02-04 15:19:47 +0100 mjk: @@ -2243,8 +3897,8 @@ r815 2009-02-04 13:02:45 +0100 mjk: r814 2009-02-04 12:31:06 +0100 mjk: - * scrkbase.dtx: \KOMA@ifkey and \KOMA@ncmdkey does also define the - family member + * scrkernel-basics.dtx: \KOMA@ifkey and \KOMA@ncmdkey does also define + the family member r813 2009-01-30 17:08:24 +0100 mjk: @@ -2256,8 +3910,9 @@ r812 2009-01-30 17:07:40 +0100 mjk: r811 2009-01-28 08:41:40 +0100 mjk: - * scrklist.dtx, scrkvers.dtx, scrkcomp.dtx: bug at new labeling - feature from version 3.02 fixed (reported by Werner Lemberg) + * scrkernel-version.dtx, scrkernel-compatibility.dtx, + scrkernel-listsandtabulars.dtx: bug at new labeling feature from + version 3.02 fixed (reported by Werner Lemberg) r810 2009-01-26 10:39:25 +0100 mjk: @@ -2270,25 +3925,26 @@ r809 2009-01-24 11:51:36 +0100 mjk: r808 2009-01-24 11:49:14 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.02b + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.02b r807 2009-01-24 11:34:08 +0100 mjk: - * scrkfloa.dtx: One more fix of vertical alignment of one line + * scrkernel-floats.dtx: One more fix of vertical alignment of one line captions r806 2009-01-23 15:44:17 +0100 mjk: - * scrkbase.dtx: version number fixed + * scrkernel-basics.dtx: version number fixed r805 2009-01-23 15:39:38 +0100 mjk: - * scrkbase.dtx: problem using amsmath fixed + * scrkernel-basics.dtx: problem using amsmath fixed r804 2009-01-20 18:46:00 +0100 mjk: - * doc/, doc/ngerman/, doc/ngerman/common.tex: {} hinter \nopagebreak - eingefügt (Danke an Torsten Krüger) + * doc/, doc/ngerman/: {} hinter \nopagebreak eingefügt (Danke an + Torsten Krüger) r803 2009-01-20 12:12:55 +0100 mjk: @@ -2305,9 +3961,8 @@ r801 2009-01-06 18:32:15 +0100 mjk: r800 2009-01-06 18:25:58 +0100 mjk: - * doc/, doc/english/, doc/english/common.tex, - doc/english/typearea.tex, doc/ngerman/, doc/ngerman/typearea.tex: Many - changes by GH + * doc/, doc/english/, doc/english/typearea.tex, doc/ngerman/, + doc/ngerman/typearea.tex: Many changes by GH r799 2009-01-02 16:00:25 +0100 mjk: @@ -2319,73 +3974,78 @@ r798 2009-01-02 10:03:38 +0100 mjk: r797 2009-01-02 10:02:45 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.02 + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.02 r796 2009-01-02 09:41:42 +0100 mjk: - * scrkfont.dtx, komabug.tex, scrktare.dtx, scrstrop.inc, - scrstrip.inc, scrkbase.dtx, scrktitl.dtx, scrlettr.ins, scrkbib.dtx, - scrpage.ins, scrkplen.dtx, scrlogo.dtx, scrkliof.dtx, - Makefile.baseinit, scrextend.dtx, scrkfloa.dtx, scrtime.ins, - tocbasic.dtx, Makefile.baserules, scrkcile.dtx, scraddr.ins, - scrlfile.ins, scrmain.ins, scrkvars.dtx, scrkmisc.dtx, scrdoc.dtx, - Makefile, scrkpar.dtx, scrsource.tex, tocstyle.dtx, scrkpage.dtx, - scrkvers.dtx, scrkcomp.dtx, scrknpap.dtx, scraddr.dtx, scrjura.dtx, - scrkftn.dtx, scrkidx.dtx, scrlfile.dtx, scrlettr.dtx, manifest.txt, - scrklco.dtx, scrkxflo.dtx, japanlco.dtx, scrbeta.dtx, scrpage.dtx, - doc/, doc/scrguide.gst, doc/scrguide.cls, doc/Makefile.latexinit, - doc/Makefile.guide, doc/Makefile, doc/guide.tex, doc/plength.dtx, - doc/scrguide.ist, doc/english/, doc/english/scrlfile.tex, - doc/english/scrdatetime.tex, doc/english/scrpage2.tex, - doc/english/introduction.tex, doc/english/htmlsetup, - doc/english/Makefile, doc/english/guide-english.tex, - doc/english/scrlttr2.tex, doc/english/adrconvnote.tex, - doc/english/typearea.tex, doc/english/scraddr.tex, - doc/english/japanlco.tex, doc/german/, - doc/german/scrbookreportarticle.tex, doc/german/scrlfile.tex, - doc/german/scrdatetime.tex, doc/german/scrpage2.tex, - doc/german/introduction.tex, doc/german/htmlsetup, - doc/german/Makefile, doc/german/scrlttr2.tex, - doc/german/adrconvnote.tex, doc/german/typearea.tex, - doc/german/scraddr.tex, doc/german/guide-ngerman.tex, doc/ngerman/, - doc/ngerman/preface.tex, doc/ngerman/scrbase.tex, - doc/ngerman/expertpart.tex, doc/ngerman/scrextend.tex, - doc/ngerman/tocbasic.tex, doc/ngerman/linkalias.tex, - doc/ngerman/scrlfile.tex, doc/ngerman/authorpart.tex, - doc/ngerman/Makefile.guide, doc/ngerman/scrdatetime.tex, - doc/ngerman/scrpage2.tex, doc/ngerman/typearea-experts.tex, - doc/ngerman/introduction.tex, doc/ngerman/htmlsetup, - doc/ngerman/Makefile, doc/ngerman/scrlttr2-experts.tex, - doc/ngerman/scrlttr2examples.dtx, doc/ngerman/scrlttr2.tex, - doc/ngerman/adrconvnote.tex, doc/ngerman/typearea.tex, - doc/ngerman/guide.tex, doc/ngerman/scraddr.tex, - doc/ngerman/guide-ngerman.tex: prepared for 2009 + * scrpage.dtx, scrsource.tex, scrkernel-index.dtx, scrdoc.dtx, + scrkernel-bibliography.dtx, tocstyle.dtx, scrkernel-version.dtx, + scrjura.dtx, scrextend.dtx, scrlogo.dtx, scrstrip.inc, + scrkernel-compatibility.dtx, scraddr.dtx, + scrkernel-pseudolengths.dtx, scrkernel-pagestyles.dtx, + scrkernel-letterclassoptions.dtx, scrkernel-circularletters.dtx, + scrkernel-fonts.dtx, scrbeta.dtx, Makefile.baseinit, + scrkernel-footnotes.dtx, Makefile, scrmain.ins, Makefile.baserules, + scrkernel-listsof.dtx, scrlfile.dtx, komabug.tex, + scrkernel-paragraphs.dtx, scrkxflo.dtx, scrkernel-notepaper.dtx, + scrkernel-miscellaneous.dtx, scrkernel-variables.dtx, manifest.txt, + scrstrop.inc, scrkernel-floats.dtx, scrkernel-typearea.dtx, + scrkernel-basics.dtx, japanlco.dtx, scrkernel-title.dtx, + tocbasic.dtx, obsolete/scrlettr.dtx, obsolete/scrlettr.ins, doc/, + doc/plength.dtx, doc/Makefile.latexinit, doc/guide.tex, doc/Makefile, + doc/scrguide.cls, doc/Makefile.guide, doc/linkalias.tex, + doc/scrguide.ist, doc/scrguide.gst, doc/english/, + doc/english/scrlfile.tex, doc/english/scrlttr2.tex, + doc/english/htmlsetup, doc/english/adrconvnote.tex, + doc/english/scrdatetime.tex, doc/english/introduction.tex, + doc/english/Makefile, doc/english/typearea.tex, + doc/english/japanlco.tex, doc/english/scraddr.tex, + doc/english/guide-english.tex, doc/english/scrpage2.tex, + doc/ngerman/, doc/ngerman/scrlfile.tex, doc/ngerman/scrlttr2.tex, + doc/ngerman/htmlsetup, doc/ngerman/scrextend.tex, + doc/ngerman/adrconvnote.tex, doc/ngerman/scrdatetime.tex, + doc/ngerman/introduction.tex, doc/ngerman/guide-ngerman.tex, + doc/ngerman/typearea-experts.tex, doc/ngerman/Makefile, + doc/ngerman/typearea.tex, doc/ngerman/scrlttr2-experts.tex, + doc/ngerman/scrbase.tex, doc/ngerman/scrlttr2examples.dtx, + doc/ngerman/scraddr.tex, doc/ngerman/tocbasic.tex, + doc/ngerman/expertpart.tex, doc/ngerman/preface.tex, + doc/ngerman/scrpage2.tex, doc/ngerman/authorpart.tex, doc/german/, + doc/german/scrlfile.tex, doc/german/scrlttr2.tex, + doc/german/htmlsetup, doc/german/scrbookreportarticle.tex, + doc/german/adrconvnote.tex, doc/german/scrdatetime.tex, + doc/german/introduction.tex, doc/german/guide-ngerman.tex, + doc/german/Makefile, doc/german/typearea.tex, doc/german/scraddr.tex, + doc/german/scrpage2.tex: prepared for 2009 r795 2009-01-02 08:59:35 +0100 mjk: - * doc/, doc/english/, doc/english/scrbookreportarticle.tex, - doc/english/scrdatetime.tex, doc/english/scrlttr2.tex, doc/ngerman/, - doc/ngerman/scrbookreportarticle.tex, doc/ngerman/common.tex, + * doc/, doc/english/, doc/english/scrlttr2.tex, + doc/english/scrbookreportarticle.tex, doc/english/scrdatetime.tex, + doc/ngerman/, doc/ngerman/scrbookreportarticle.tex, doc/ngerman/scrdatetime.tex, doc/ngerman/scrlttr2-experts.tex, doc/ngerman/scrbookreportarticle-experts.tex: documentation of the new features of rev. 792-794 r794 2009-01-02 08:57:34 +0100 mjk: - * scrklist.dtx: new font elements "labelinglabel" and - "labelingseparator" + * scrkernel-listsandtabulars.dtx: new font elements "labelinglabel" + and "labelingseparator" r793 2009-01-02 08:56:28 +0100 mjk: - * scrklang.dtx, scrtime.dtx: new language norsk (by Sveinung Heggen) + * scrtime.dtx, scrkernel-language.dtx: new language norsk (by Sveinung + Heggen) r792 2009-01-02 08:54:37 +0100 mjk: - * scrksect.dtx: new macro \partheademptypage + * scrkernel-sections.dtx: new macro \partheademptypage r791 2008-12-09 12:33:28 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.01c BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.01c BETA r790 2008-12-09 11:11:14 +0100 mjk: @@ -2393,17 +4053,17 @@ r790 2008-12-09 11:11:14 +0100 mjk: r789 2008-12-09 11:09:51 +0100 mjk: - * scrkvers.dtx: prepared for 3.01b + * scrkernel-version.dtx: prepared for 3.01b r788 2008-12-09 11:07:02 +0100 mjk: - * scrktitl.dtx, scrextend.dtx: scrextend does work without enabled - extended title feature + * scrextend.dtx, scrkernel-title.dtx: scrextend does work without + enabled extended title feature r787 2008-12-09 11:06:16 +0100 mjk: - * scrktare.dtx, scrmain.ins, scrkcomp.dtx, doc/, doc/ngerman/, - doc/ngerman/common.tex, doc/ngerman/typearea.tex: option version at + * scrkernel-compatibility.dtx, scrmain.ins, scrkernel-typearea.dtx, + doc/, doc/ngerman/, doc/ngerman/typearea.tex: option version at typearea avaible to improve option "paper"; warning messages improved; option "paper" improved @@ -2428,8 +4088,7 @@ r783 2008-12-08 11:34:24 +0100 mjk: r782 2008-12-08 11:18:24 +0100 mjk: - * doc/, doc/ngerman/, doc/ngerman/common.tex: \ChangedAt-Einträge - korrigiert + * doc/, doc/ngerman/: \ChangedAt-Einträge korrigiert r781 2008-12-07 13:54:17 +0100 mjk: @@ -2442,7 +4101,7 @@ r780 2008-12-07 13:53:42 +0100 mjk: r779 2008-12-07 13:51:55 +0100 mjk: - * scrklang.dtx: missing \let #2\undefined\relax added at + * scrkernel-language.dtx: missing \let #2\undefined\relax added at \(new|renew|provide)captionname r778 2008-11-28 08:09:13 +0100 mjk: @@ -2456,7 +4115,8 @@ r777 2008-11-25 14:50:13 +0100 mjk: r776 2008-11-24 09:20:03 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.01b BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.01b BETA r775 2008-11-23 15:50:26 +0100 mjk: @@ -2464,24 +4124,27 @@ r775 2008-11-23 15:50:26 +0100 mjk: r774 2008-11-23 15:08:06 +0100 mjk: - * scrkvers.dtx: prepared for 3.01a + * scrkernel-version.dtx: prepared for 3.01a r770 2008-11-22 08:06:54 +0100 mjk: - * scrkftn.dtx: fix: \@footenotetext must be long! + * scrkernel-footnotes.dtx: fix: \@footenotetext must be long! r769 2008-11-21 09:24:20 +0100 mjk: - * doc/, doc/ngerman/, doc/ngerman/common.tex: geänderte - Voreinstellung für »version« dokumentiert + * doc/, doc/ngerman/: geänderte Voreinstellung für »version« + dokumentiert r768 2008-11-21 09:03:06 +0100 mjk: - * scrktare.dtx, scrkbase.dtx, scrklang.dtx, scrktitl.dtx, - scrkbib.dtx, scrkliof.dtx, scrkfloa.dtx, scrkmisc.dtx, scrkpar.dtx, - scrkpage.dtx, scrkcomp.dtx, scrknpap.dtx, scrksect.dtx, scrkidx.dtx, - doc/, doc/scrguide.cls: - improved messages at usage of standard - options or usage of deprecated + * scrkernel-sections.dtx, scrkernel-index.dtx, + scrkernel-bibliography.dtx, scrkernel-compatibility.dtx, + scrkernel-pagestyles.dtx, scrkernel-listsof.dtx, + scrkernel-paragraphs.dtx, scrkernel-language.dtx, + scrkernel-notepaper.dtx, scrkernel-miscellaneous.dtx, + scrkernel-floats.dtx, scrkernel-typearea.dtx, scrkernel-basics.dtx, + scrkernel-title.dtx, doc/, doc/scrguide.cls: - improved messages at + usage of standard options or usage of deprecated KOMA-Script-specific options - some options became deprecated instead of simply obsolete - pre-setting of version is last - usage of any @@ -2489,7 +4152,8 @@ r768 2008-11-21 09:03:06 +0100 mjk: r767 2008-11-20 11:56:43 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.01a BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.01a BETA r766 2008-11-19 15:20:19 +0100 mjk: @@ -2502,13 +4166,14 @@ r765 2008-11-14 10:04:59 +0100 mjk: r764 2008-11-14 09:04:09 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 3.01 + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 3.01 r763 2008-11-13 12:51:55 +0100 mjk: - * scrkliof.dtx, tocbasic.dtx, scrmain.ins, scrksect.dtx, doc/, - doc/ngerman/, doc/ngerman/tocbasic.tex: fixes and extensions at - tocbasic + * scrkernel-sections.dtx, scrmain.ins, scrkernel-listsof.dtx, + tocbasic.dtx, doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: fixes and + extensions at tocbasic r762 2008-11-13 12:51:19 +0100 mjk: @@ -2516,8 +4181,8 @@ r762 2008-11-13 12:51:19 +0100 mjk: r761 2008-11-13 12:49:56 +0100 mjk: - * scrkpar.dtx: missing usage of \@listi at scrsizeXXpt.clo added - (reported by Alexander Niske) + * scrkernel-paragraphs.dtx: missing usage of \@listi at + scrsizeXXpt.clo added (reported by Alexander Niske) r760 2008-11-13 09:48:02 +0100 mjk: @@ -2526,8 +4191,8 @@ r760 2008-11-13 09:48:02 +0100 mjk: r759 2008-11-12 16:21:03 +0100 mjk: - * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex, - doc/ngerman/common.tex: von Thomas Jerge gemeldete Fehler beseitigt + * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: von Thomas + Jerge gemeldete Fehler beseitigt r758 2008-11-12 16:18:27 +0100 mjk: @@ -2540,17 +4205,17 @@ r757 2008-11-11 14:48:50 +0100 mjk: r756 2008-11-03 17:37:07 +0100 mjk: - * scrknpap.dtx, doc/, doc/plength.dtx, doc/ngerman/, + * scrkernel-notepaper.dtx, doc/, doc/plength.dtx, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: new pseudo-lengths: subjectvpos, subjectbeforevskip, subjectaftervskip r755 2008-11-03 15:48:41 +0100 mjk: - * scrknpap.dtx: nix geändert + * scrkernel-notepaper.dtx: nix geändert r754 2008-11-03 15:06:03 +0100 mjk: - * scrkvers.dtx: Ready for 3.01 BETA + * scrkernel-version.dtx: Ready for 3.01 BETA r753 2008-11-03 11:10:19 +0100 mjk: @@ -2570,13 +4235,12 @@ r748 2008-11-03 07:52:55 +0100 mjk: r747 2008-11-03 07:51:55 +0100 mjk: - * scrkvers.dtx: prepared for 3.00 + * scrkernel-version.dtx: prepared for 3.00 r746 2008-10-31 09:02:21 +0100 mjk: - * doc/, doc/ngerman/, doc/ngerman/preface.tex, - doc/ngerman/common.tex, doc/ngerman/typearea.tex: Ligaturen in den - Bookmarks drin lassen + * doc/, doc/ngerman/, doc/ngerman/typearea.tex, + doc/ngerman/preface.tex: Ligaturen in den Bookmarks drin lassen r745 2008-10-20 10:29:35 +0200 mjk: @@ -2588,7 +4252,8 @@ r744 2008-10-20 09:50:04 +0200 mjk: r743 2008-10-16 09:59:20 +0200 mjk: - * scrkbib.dtx, scrkliof.dtx, scrkidx.dtx, doc/, doc/ngerman/, + * scrkernel-index.dtx, scrkernel-bibliography.dtx, + scrkernel-listsof.dtx, doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: toc and notoc values of options listof, index and bibliography equalized @@ -2598,8 +4263,8 @@ r740 2008-10-14 16:52:03 +0200 mjk: r739 2008-10-08 09:17:21 +0200 mjk: - * scrktare.dtx: layout information not only with \typearea but also - \areaset + * scrkernel-typearea.dtx: layout information not only with \typearea + but also \areaset r738 2008-10-07 17:45:50 +0200 mjk: @@ -2607,77 +4272,75 @@ r738 2008-10-07 17:45:50 +0200 mjk: r737 2008-10-07 17:02:01 +0200 mjk: - * scrkvers.dtx: Prepared for 3.00RC2 + * scrkernel-version.dtx: Prepared for 3.00RC2 r736 2008-10-07 16:58:36 +0200 mjk: - * scrksect.dtx: \@autodottrue and \@autodotfalse work global to make - autodot feature group level independant + * scrkernel-sections.dtx: \@autodottrue and \@autodotfalse work global + to make autodot feature group level independant r735 2008-10-07 12:17:42 +0200 mjk: - * scrkvers.dtx: Ready for 2008/10/07 3.00 RC1 + * scrkernel-version.dtx: Ready for 2008/10/07 3.00 RC1 r734 2008-10-07 12:11:13 +0200 mjk: - * doc/, doc/guide.tex, doc/english/, - doc/english/scrbookreportarticle.tex, doc/english/scrpage2.tex, - doc/english/scrlttr2.tex, doc/english/typearea.tex, - doc/english/scraddr.tex: minor changes for KOMA-Script 3 + * doc/, doc/guide.tex, doc/english/, doc/english/scrlttr2.tex, + doc/english/scrbookreportarticle.tex, doc/english/typearea.tex, + doc/english/scraddr.tex, doc/english/scrpage2.tex: minor changes for + KOMA-Script 3 r733 2008-10-06 12:07:42 +0200 mjk: - * tocbasic.dtx, doc/, doc/Makefile.guide, doc/guide.tex, + * tocbasic.dtx, doc/, doc/guide.tex, doc/Makefile.guide, doc/english/, doc/english/scrbookreportarticle.tex, - doc/english/guide-english.tex, doc/english/typearea.tex: minor changes + doc/english/typearea.tex, doc/english/guide-english.tex: minor changes for english documentation r732 2008-09-27 10:51:05 +0200 mjk: - * scrkpage.dtx, scrksect.dtx: \frontmatter, \mainmatter and - \backmatter use \cleardoubleoddpage + * scrkernel-sections.dtx, scrkernel-pagestyles.dtx: \frontmatter, + \mainmatter and \backmatter use \cleardoubleoddpage r731 2008-09-24 14:35:34 +0200 mjk: - * doc/, doc/ngerman/, doc/ngerman/Makefile.guide, - doc/ngerman/Makefile: Vorbereitungen fuer das Buch + * doc/, doc/ngerman/, doc/ngerman/Makefile: Vorbereitungen fuer das + Buch r730 2008-09-23 17:00:45 +0200 mjk: - * manifest.txt, doc/, doc/Makefile, doc/ngerman/, - doc/ngerman/Makefile.guide: usage of new german guide + * manifest.txt, doc/, doc/Makefile, doc/ngerman/: usage of new german + guide r729 2008-09-23 14:23:54 +0200 mjk: - * doc/, doc/scrguide.cls, doc/Makefile.latexinit, doc/Makefile.guide, - doc/Makefile, doc/bin/, doc/bin/genhtmlidx.pl, doc/ngerman/, - doc/ngerman/scrbookreportarticle.tex, doc/ngerman/preface.tex, - doc/ngerman/scrbase.tex, doc/ngerman/expertpart.tex, - doc/ngerman/scrextend.tex, doc/ngerman/tocbasic.tex, - doc/ngerman/linkalias.tex, doc/ngerman/common.tex, - doc/ngerman/scrlfile.tex, doc/ngerman/authorpart.tex, - doc/ngerman/Makefile.guide, doc/ngerman/scrdatetime.tex, - doc/ngerman/scrpage2.tex, doc/ngerman/typearea-experts.tex, - doc/ngerman/introduction.tex, doc/ngerman/settleford600label.lco, - doc/ngerman/htmlsetup, doc/ngerman/Makefile, - doc/ngerman/scrlttr2-experts.tex, doc/ngerman/scrlttr2examples.dtx, - doc/ngerman/scrlttr2.tex, doc/ngerman/adrconvnote.tex, - doc/ngerman/typearea.tex, doc/ngerman/labelbasic.lco, - doc/ngerman/guide.tex, doc/ngerman/scrbookreportarticle-experts.tex, - doc/ngerman/scraddr.tex, doc/ngerman/guide-ngerman.tex: Modifications - for new german guide (KOMA-Script-Buch 3. Auflage) + * doc/, doc/Makefile.latexinit, doc/Makefile, doc/scrguide.cls, + doc/Makefile.guide, doc/linkalias.tex, doc/ngerman/, + doc/ngerman/scrlfile.tex, doc/ngerman/scrlttr2.tex, + doc/ngerman/htmlsetup, doc/ngerman/scrextend.tex, + doc/ngerman/scrbookreportarticle.tex, doc/ngerman/adrconvnote.tex, + doc/ngerman/scrdatetime.tex, doc/ngerman/introduction.tex, + doc/ngerman/guide-ngerman.tex, doc/ngerman/typearea-experts.tex, + doc/ngerman/Makefile, doc/ngerman/typearea.tex, + doc/ngerman/scrlttr2-experts.tex, doc/ngerman/scrbase.tex, + doc/ngerman/scrlttr2examples.dtx, doc/ngerman/scraddr.tex, + doc/ngerman/tocbasic.tex, doc/ngerman/expertpart.tex, + doc/ngerman/scrbookreportarticle-experts.tex, + doc/ngerman/preface.tex, doc/ngerman/scrpage2.tex, + doc/ngerman/authorpart.tex, doc/bin/, doc/bin/genhtmlidx.pl: + Modifications for new german guide (KOMA-Script-Buch 3. Auflage) r728 2008-09-19 11:04:34 +0200 mjk: - * doc/, doc/scrguide.cls, doc/guide.bib, doc/guide.tex, - doc/plength.dtx, doc/english/, doc/english/htmlsetup, + * doc/, doc/plength.dtx, doc/guide.tex, doc/scrguide.cls, + doc/guide.bib, doc/english/, doc/english/htmlsetup, doc/english/guide-english.tex, doc/german/, doc/german/htmlsetup, doc/german/guide-ngerman.tex, doc/bin/, doc/bin/genhtmlidx.pl: preparation to add the new german guide r727 2008-09-09 09:45:40 +0200 mjk: - * scrkvers.dtx: prepared for 3.00 BETA + * scrkernel-version.dtx: prepared for 3.00 BETA r726 2008-09-09 09:42:06 +0200 mjk: @@ -2685,8 +4348,8 @@ r726 2008-09-09 09:42:06 +0200 mjk: r725 2008-08-05 11:14:56 +0200 mjk: - * scrkpage.dtx: \partpagestyle not defined at scrartcl any longer, - because not used + * scrkernel-pagestyles.dtx: \partpagestyle not defined at scrartcl any + longer, because not used r724 2008-07-11 12:56:15 +0200 mjk: @@ -2699,8 +4362,8 @@ r723 2008-07-09 20:05:52 +0200 mjk: r722 2008-07-09 12:44:12 +0200 mjk: - * scrktare.dtx, doc/, doc/german/, doc/german/typearea.tex: new value - "semi" for option "twoside" + * scrkernel-typearea.dtx, doc/, doc/german/, doc/german/typearea.tex: + new value "semi" for option "twoside" r721 2008-07-05 13:36:49 +0200 mjk: @@ -2716,41 +4379,42 @@ r719 2008-07-04 16:19:04 +0200 mjk: r718 2008-07-04 16:01:21 +0200 mjk: - * scrkliof.dtx, tocbasic.dtx, scrksect.dtx: vertical space or chapter - entry for chapters to list of ... using tocbasic + * scrkernel-sections.dtx, scrkernel-listsof.dtx, tocbasic.dtx: + vertical space or chapter entry for chapters to list of ... using + tocbasic r717 2008-07-04 13:26:14 +0200 mjk: - * scrkliof.dtx, tocbasic.dtx, scrmain.ins: toc, lof and lot created - using tocbasic (code at scrksect.dtx still has to be changed + * scrmain.ins, scrkernel-listsof.dtx, tocbasic.dtx: toc, lof and lot + created using tocbasic (code at scrksect.dtx still has to be changed r716 2008-07-01 10:53:35 +0200 mjk: - * scrksect.dtx: some ugly hyperref hacks lack of an interface for - class and package authors + * scrkernel-sections.dtx: some ugly hyperref hacks lack of an + interface for class and package authors r715 2008-07-01 09:59:19 +0200 mjk: - * scrkpage.dtx, scrkcomp.dtx, scrksect.dtx: \relax added at - compatibility tests + * scrkernel-sections.dtx, scrkernel-compatibility.dtx, + scrkernel-pagestyles.dtx: \relax added at compatibility tests r714 2008-06-19 11:47:45 +0200 mjk: - * scrktitl.dtx, scrextend.dtx, scrmain.ins, scrkmisc.dtx: scrextend - activates features with option "extendedfeature" not longer with - e.g. option "titlepage=KOMA" + * scrextend.dtx, scrmain.ins, scrkernel-miscellaneous.dtx, + scrkernel-title.dtx: scrextend activates features with option + "extendedfeature" not longer with e.g. option "titlepage=KOMA" r713 2008-06-06 11:50:57 +0200 mjk: - * scrknpap.dtx: option `foldmarks' fixed + * scrkernel-notepaper.dtx: option `foldmarks' fixed r712 2008-05-28 09:23:26 +0200 mjk: - * scrkbase.dtx: FamilyNumericalKey fixed + * scrkernel-basics.dtx: FamilyNumericalKey fixed r711 2008-05-14 11:47:38 +0200 mjk: - * scrkmisc.dtx: option "draft" also at scrextend + * scrkernel-miscellaneous.dtx: option "draft" also at scrextend r710 2008-05-06 14:26:43 +0200 mjk: @@ -2758,8 +4422,8 @@ r710 2008-05-06 14:26:43 +0200 mjk: r709 2008-05-06 09:28:23 +0200 mjk: - * scrkbase.dtx: Most \Family... commands have an optional argument for - the member + * scrkernel-basics.dtx: Most \Family... commands have an optional + argument for the member r708 2008-05-02 16:46:18 +0200 mjk: @@ -2767,17 +4431,20 @@ r708 2008-05-02 16:46:18 +0200 mjk: r707 2008-05-02 16:43:26 +0200 mjk: - * scrkfont.dtx, scrkbase.dtx, scrklang.dtx, scrktitl.dtx, - scrklist.dtx, scrextend.dtx, scrkfloa.dtx, scrmain.ins, scrkmisc.dtx, - Makefile, scrkpar.dtx, scrsource.tex, scrkpage.dtx, scrkcomp.dtx, - scrksect.dtx, scrkftn.dtx, scrbeta.dtx: new packages scrbase and + * scrkernel-sections.dtx, scrsource.tex, scrextend.dtx, + scrkernel-compatibility.dtx, scrkernel-pagestyles.dtx, + scrkernel-fonts.dtx, scrbeta.dtx, scrkernel-listsandtabulars.dtx, + scrkernel-footnotes.dtx, Makefile, scrmain.ins, + scrkernel-paragraphs.dtx, scrkernel-language.dtx, + scrkernel-miscellaneous.dtx, scrkernel-floats.dtx, + scrkernel-basics.dtx, scrkernel-title.dtx: new packages scrbase and scrextend r706 2008-04-30 09:52:59 +0200 mjk: - * doc/, doc/german/, doc/german/scrbookreportarticle.tex, - doc/german/scrpage2.tex, doc/german/introduction.tex, - doc/german/scrlttr2.tex, doc/german/typearea.tex: diverse Neuerungen + * doc/, doc/german/, doc/german/scrlttr2.tex, + doc/german/scrbookreportarticle.tex, doc/german/introduction.tex, + doc/german/typearea.tex, doc/german/scrpage2.tex: diverse Neuerungen inbesondere bezüglich der Optionen dokumentiert r705 2008-04-30 09:52:22 +0200 mjk: @@ -2790,11 +4457,11 @@ r704 2008-04-30 09:15:14 +0200 mjk: r703 2008-04-30 09:13:50 +0200 mjk: - * scrksect.dtx: more aliases for option numbers + * scrkernel-sections.dtx: more aliases for option numbers r702 2008-04-17 11:51:49 +0200 mjk: - * README.SVN, LIESMICH.SVN: README.SVN and LIESMICH.SVN for tester of + * LIESMICH.SVN, README.SVN: README.SVN and LIESMICH.SVN for tester of the svn version. r701 2008-04-17 11:35:20 +0200 mjk: @@ -2807,12 +4474,13 @@ r700 2008-04-17 11:25:02 +0200 mjk: r699 2008-04-17 11:23:44 +0200 mjk: - * Makefile.baserules, Makefile, doc/, doc/Makefile.guide, - doc/Makefile: new rules: prepare, prepare_recursive, prepare_local + * Makefile, Makefile.baserules, doc/, doc/Makefile, + doc/Makefile.guide: new rules: prepare, prepare_recursive, + prepare_local r698 2008-04-16 11:45:23 +0200 mjk: - * scrkliof.dtx: bib-values for option `toc' + * scrkernel-listsof.dtx: bib-values for option `toc' r697 2008-04-11 12:08:52 +0200 mjk: @@ -2821,8 +4489,8 @@ r697 2008-04-11 12:08:52 +0200 mjk: r696 2008-04-11 10:15:46 +0200 mjk: - * scrkpage.dtx, scrkcomp.dtx: default for \cleardoublepage changed - depeding on "version" + * scrkernel-compatibility.dtx, scrkernel-pagestyles.dtx: default for + \cleardoublepage changed depeding on "version" r695 2008-04-10 11:43:54 +0200 mjk: @@ -2840,11 +4508,11 @@ r693 2008-04-09 16:39:33 +0200 mjk: r692 2008-04-09 16:18:30 +0200 mjk: - * scrktare.dtx: Replacement for option `dvips' changed + * scrkernel-typearea.dtx: Replacement for option `dvips' changed r691 2008-04-09 08:57:00 +0200 mjk: - * scrktare.dtx: new option `headheight' + * scrkernel-typearea.dtx: new option `headheight' r690 2008-04-08 12:11:07 +0200 mjk: @@ -2862,7 +4530,7 @@ r688 2008-04-04 09:55:09 +0200 mjk: r687 2008-04-04 09:37:50 +0200 mjk: - * scrkvers.dtx: prepared for 2.98c BETA + * scrkernel-version.dtx: prepared for 2.98c BETA r686 2008-04-03 12:01:09 +0200 mjk: @@ -2891,23 +4559,22 @@ r681 2008-03-27 10:16:07 +0100 mjk: r680 2008-03-27 09:13:23 +0100 mjk: - * scrkvers.dtx: date changed + * scrkernel-version.dtx: date changed r679 2008-03-27 09:10:54 +0100 mjk: - * doc/, doc/german/, doc/german/scrbookreportarticle.tex, - doc/german/introduction.tex, doc/german/scrpage2.tex, - doc/german/scrdatetime.tex, doc/german/typearea.tex, - doc/german/scraddr.tex, doc/german/htmlsetup, - doc/german/scrlfile.tex, doc/german/adrconvnote.tex, - doc/german/Makefile, doc/german/guide-ngerman.tex, doc/english/, - doc/english/scrbookreportarticle.tex, doc/english/introduction.tex, - doc/english/scrpage2.tex, doc/english/scrdatetime.tex, - doc/english/typearea.tex, doc/english/scraddr.tex, - doc/english/htmlsetup, doc/english/scrlfile.tex, - doc/english/adrconvnote.tex, doc/english/Makefile, - doc/english/japanlco.tex, doc/english/guide-english.tex: unknown - change + * doc/, doc/english/, doc/english/scrlfile.tex, + doc/english/htmlsetup, doc/english/scrbookreportarticle.tex, + doc/english/adrconvnote.tex, doc/english/scrdatetime.tex, + doc/english/introduction.tex, doc/english/Makefile, + doc/english/typearea.tex, doc/english/japanlco.tex, + doc/english/scraddr.tex, doc/english/guide-english.tex, + doc/english/scrpage2.tex, doc/german/, doc/german/scrlfile.tex, + doc/german/htmlsetup, doc/german/scrbookreportarticle.tex, + doc/german/adrconvnote.tex, doc/german/scrdatetime.tex, + doc/german/introduction.tex, doc/german/guide-ngerman.tex, + doc/german/Makefile, doc/german/typearea.tex, doc/german/scraddr.tex, + doc/german/scrpage2.tex: unknown change r678 2008-03-27 09:09:02 +0100 mjk: @@ -2925,12 +4592,14 @@ r676 2008-03-27 08:41:40 +0100 mjk: r675 2008-03-27 08:40:45 +0100 mjk: - * scrbeta.dtx, scrkpar.dtx, scrmain.ins, scrkfont.dtx, Makefile: new - font size files scrsize10pt.clo, scrsize11pt.clo, scrsize12pt.clo + * scrkernel-fonts.dtx, scrbeta.dtx, Makefile, scrmain.ins, + scrkernel-paragraphs.dtx: new font size files scrsize10pt.clo, + scrsize11pt.clo, scrsize12pt.clo r674 2008-03-27 08:40:38 +0100 mjk: - * scrkpage.dtx: options "headsepline" and "footsepline" improved + * scrkernel-pagestyles.dtx: options "headsepline" and "footsepline" + improved r673 2008-03-26 15:30:52 +0100 mjk: @@ -2950,7 +4619,7 @@ r670 2008-03-24 11:30:01 +0100 mjk: r669 2008-03-24 11:12:19 +0100 mjk: - * scrkvers.dtx: prepared for 2.98c BETA + * scrkernel-version.dtx: prepared for 2.98c BETA r668 2008-03-24 11:10:35 +0100 mjk: @@ -2971,7 +4640,7 @@ r665 2008-03-22 16:58:33 +0100 mjk: r664 2008-03-22 16:56:04 +0100 mjk: - * scrkfont.dtx: option `Xpt' does work again + * scrkernel-fonts.dtx: option `Xpt' does work again r663 2008-03-20 19:01:44 +0100 mjk: @@ -3010,63 +4679,68 @@ r656 2008-03-13 13:29:28 +0100 mjk: r655 2008-03-12 09:50:59 +0100 mjk: - * scrkbase.dtx: new command \KOMAoption{}{} + * scrkernel-basics.dtx: new command \KOMAoption{}{} r654 2008-03-12 09:50:24 +0100 mjk: - * scrkfloa.dtx: vertical alignment at captionsbeside fixed + * scrkernel-floats.dtx: vertical alignment at captionsbeside fixed r653 2008-03-10 10:06:41 +0100 mjk: - * scrksect.dtx: new values for option `headings' to set options - `chapterprefix' and `appendixprefix' + * scrkernel-sections.dtx: new values for option `headings' to set + options `chapterprefix' and `appendixprefix' r652 2008-03-10 09:52:26 +0100 mjk: - * scrkmisc.dtx, scrksect.dtx: new option `headings' with values `big', - `normal', `small', `openany', `openright', and `openleft'; option - `bigheadings', `normalheadings', and `smallheadings' are obsolete; - `headings=big' is default + * scrkernel-sections.dtx, scrkernel-miscellaneous.dtx: new option + `headings' with values `big', `normal', `small', `openany', + `openright', and `openleft'; option `bigheadings', `normalheadings', + and `smallheadings' are obsolete; `headings=big' is default r651 2008-03-10 09:27:32 +0100 mjk: - * scrknpap.dtx: missing `v' at version argument of changes entry added + * scrkernel-notepaper.dtx: missing `v' at version argument of changes + entry added r650 2008-03-10 09:25:02 +0100 mjk: - * scrlettr.dtx: missing `v' at version argument of changes entry added + * obsolete/scrlettr.dtx: missing `v' at version argument of changes + entry added r649 2008-03-10 09:23:43 +0100 mjk: - * scrkidx.dtx: missing `v' at version argument of changes entry added + * scrkernel-index.dtx: missing `v' at version argument of changes + entry added r648 2008-03-10 09:23:16 +0100 mjk: - * scrkfloa.dtx: missing `v' at version argument of changes entry added + * scrkernel-floats.dtx: missing `v' at version argument of changes + entry added r647 2008-03-10 09:22:50 +0100 mjk: - * scrkbase.dtx: missing `v' at version argument of changes entry added + * scrkernel-basics.dtx: missing `v' at version argument of changes + entry added r646 2008-03-07 10:25:13 +0100 mjk: - * scrksect.dtx: new option `number' with values `auto', `enddot', - `noenddot' instead of obsolete options `pointednumbers' and - `pointlessnumbers'; options `pointednumber' and `pointlessnumber' - removed + * scrkernel-sections.dtx: new option `number' with values `auto', + `enddot', `noenddot' instead of obsolete options `pointednumbers' + and `pointlessnumbers'; options `pointednumber' and + `pointlessnumber' removed r645 2008-03-06 11:42:46 +0100 mjk: - * scrkpage.dtx: \def\cleardoublepage to make option `open=left' work - even without usage of option `cleardoublepage' + * scrkernel-pagestyles.dtx: \def\cleardoublepage to make option + `open=left' work even without usage of option `cleardoublepage' r644 2008-03-06 11:28:25 +0100 mjk: - * scrksect.dtx: new value 'left' for option `open' + * scrkernel-sections.dtx: new value 'left' for option `open' r643 2008-03-06 11:22:57 +0100 mjk: - * scrkpage.dtx: new macros `\cleardoubeoddstandardpage', + * scrkernel-pagestyles.dtx: new macros `\cleardoubeoddstandardpage', `\cleardoubleevenstandardpage', `\cleardoubleoddusingstyle', `\cleardoubleevenusingstyle', `\cleardoubleoddemptypage', `\cleardoubleevenemptypage', `\cleardoubleoddplainpage', @@ -3074,22 +4748,23 @@ r643 2008-03-06 11:22:57 +0100 mjk: r642 2008-03-06 11:09:25 +0100 mjk: - * scrksect.dtx: new option `open' with values `any' and `right' + * scrkernel-sections.dtx: new option `open' with values `any' and + `right' r641 2008-03-06 10:55:11 +0100 mjk: - * scrknpap.dtx: `wlocfield' and `slocfield' are simple obsolete - options + * scrkernel-notepaper.dtx: `wlocfield' and `slocfield' are simple + obsolete options r640 2008-03-05 09:56:41 +0100 mjk: - * scrkliof.dtx: new values `nolistof', 'listof', and 'listofnumbered' - to option 'toc' + * scrkernel-listsof.dtx: new values `nolistof', 'listof', and + 'listofnumbered' to option 'toc' r639 2008-03-05 09:38:36 +0100 mjk: - * scrkliof.dtx: new `toc=flat', `toc=graduated' instead of obsolete - `tocleft', `tocindent'; new `listof=notoc', `listof=totoc', + * scrkernel-listsof.dtx: new `toc=flat', `toc=graduated' instead of + obsolete `tocleft', `tocindent'; new `listof=notoc', `listof=totoc', `listof=numbered', `listof=flat', `listof=graduated' instead of obsolete `liststotoc', `liststotocnumbered', `listsleft', `listsindent'; new `listof=chapterentry', `listof=nochaptergap', @@ -3097,21 +4772,22 @@ r639 2008-03-05 09:38:36 +0100 mjk: r638 2008-03-04 17:31:23 +0100 mjk: - * scrkliof.dtx: new option `toc=index' and `toc=noindex' uses + * scrkernel-listsof.dtx: new option `toc=index' and `toc=noindex' uses `index=totoc' and `index=notoc' internally r637 2008-03-04 17:30:28 +0100 mjk: - * scrkidx.dtx: options `index=notoc' and `index=totoc' replaces - obsolete `idxtotoc' + * scrkernel-index.dtx: options `index=notoc' and `index=totoc' + replaces obsolete `idxtotoc' r636 2008-03-03 14:41:39 +0100 mjk: - * scrkfloa.dtx: deprecated handling for caption package removed + * scrkernel-floats.dtx: deprecated handling for caption package + removed r635 2008-03-03 11:56:07 +0100 mjk: - * scrkfloa.dtx: Option `captions=oneline' instead of obsolete + * scrkernel-floats.dtx: Option `captions=oneline' instead of obsolete `onelinecaptions', option `captions=nooneline' instead if obsolete `noonelinecaptions'; values `topbeside', `bottombeside', `centeredbeside', `rightbeside', `leftbeside', `innerbeside', @@ -3120,11 +4796,11 @@ r635 2008-03-03 11:56:07 +0100 mjk: r634 2008-03-03 10:49:58 +0100 mjk: - * scrkfloa.dtx: date fixed + * scrkernel-floats.dtx: date fixed r633 2008-03-03 10:24:13 +0100 mjk: - * scrkfloa.dtx: works with caption 3.1g + * scrkernel-floats.dtx: works with caption 3.1g r632 2008-02-29 16:19:13 +0100 mjk: @@ -3133,22 +4809,22 @@ r632 2008-02-29 16:19:13 +0100 mjk: r631 2008-02-29 13:13:13 +0100 mjk: - * scrkfloa.dtx: use \captionsetup* instead of \captionsetup + * scrkernel-floats.dtx: use \captionsetup* instead of \captionsetup r630 2008-02-18 11:13:30 +0100 mjk: - * scrkfloa.dtx: new option "captions"; "captions=tableheading" + * scrkernel-floats.dtx: new option "captions"; "captions=tableheading" replaces "tablecaptionabove"; "captions=tablesignature" replaces "tablecaptionbelow" r629 2008-02-18 10:45:12 +0100 mjk: - * scrkbase.dtx: Obsolete option messages are messages of the classes - or packages that declare the option not of scrkbase. + * scrkernel-basics.dtx: Obsolete option messages are messages of the + classes or packages that declare the option not of scrkbase. r628 2008-02-18 09:13:04 +0100 mjk: - * scrkbib.dtx: \AtBeginBibliography renamed to + * scrkernel-bibliography.dtx: \AtBeginBibliography renamed to \AfterBibliographyPreamble because of biblatex r627 2008-02-16 11:42:17 +0100 mjk: @@ -3157,32 +4833,34 @@ r627 2008-02-16 11:42:17 +0100 mjk: r626 2008-02-15 15:25:26 +0100 mjk: - * scrkvers.dtx: date changed + * scrkernel-version.dtx: date changed r625 2008-02-15 12:51:39 +0100 mjk: - * scrkbib.dtx: options "bibtotoc" and "bibtotocnumbered" replaced by - "bibliography=totoc" and "bibliography=totocnumbered"; option - "bibliography=nottotoc" added; new commands \AtBeginBibliography, - \AtEndBibliography and \BreakBibliography + * scrkernel-bibliography.dtx: options "bibtotoc" and + "bibtotocnumbered" replaced by "bibliography=totoc" and + "bibliography=totocnumbered"; option "bibliography=nottotoc" added; + new commands \AtBeginBibliography, \AtEndBibliography and + \BreakBibliography r624 2008-02-15 10:15:38 +0100 mjk: - * scrkbib.dtx: Option "openbib" replaced by "bibliography=openstyle"; - option "bibliography=oldstyle" added; new command \newbibstyle + * scrkernel-bibliography.dtx: Option "openbib" replaced by + "bibliography=openstyle"; option "bibliography=oldstyle" added; new + command \newbibstyle r623 2008-02-15 10:12:30 +0100 mjk: - * scrksect.dtx, scrktitl.dtx: \ClassInfo replaced by \ClassInfoNoLine - at usage of \KOMA@DeclareObsoleteOption + * scrkernel-sections.dtx, scrkernel-title.dtx: \ClassInfo replaced by + \ClassInfoNoLine at usage of \KOMA@DeclareObsoleteOption r622 2008-02-15 10:09:07 +0100 mjk: - * scrkbase.dtx: \ClassInfoNoLine defined + * scrkernel-basics.dtx: \ClassInfoNoLine defined r621 2008-02-15 08:32:25 +0100 mjk: - * scrkbase.dtx: missing \end{macrocode} added + * scrkernel-basics.dtx: missing \end{macrocode} added r620 2008-02-14 16:17:47 +0100 mjk: @@ -3191,13 +4869,13 @@ r620 2008-02-14 16:17:47 +0100 mjk: r619 2008-02-14 16:17:34 +0100 mjk: - * scrkpage.dtx: some changes about font elements `pagehead' and - `pagefoot' + * scrkernel-pagestyles.dtx: some changes about font elements + `pagehead' and `pagefoot' r618 2008-02-14 15:40:51 +0100 mjk: - * scrkpage.dtx: new font element `pageheadfoot'; font element - `pagehead' is only an alias for `pageheadfoot' + * scrkernel-pagestyles.dtx: new font element `pageheadfoot'; font + element `pagehead' is only an alias for `pageheadfoot' r617 2008-02-14 15:39:43 +0100 mjk: @@ -3214,29 +4892,31 @@ r615 2008-02-14 15:07:31 +0100 mjk: r614 2008-02-14 12:53:27 +0100 mjk: - * scrkftn.dtx: no unwanted warnings of footmisc package + * scrkernel-footnotes.dtx: no unwanted warnings of footmisc package r613 2008-02-14 12:22:35 +0100 mjk: - * scrkftn.dtx: footnote solution is compatible to footmisc + * scrkernel-footnotes.dtx: footnote solution is compatible to footmisc r612 2008-02-14 11:22:39 +0100 mjk: - * scrkftn.dtx: multifootnote does work unless using bigfoot, manyfoot - etc. Special handling for footmisc does not longer produce a warning - message. + * scrkernel-footnotes.dtx: multifootnote does work unless using + bigfoot, manyfoot etc. Special handling for footmisc does not longer + produce a warning message. r611 2008-02-14 10:51:58 +0100 mjk: - * scrkftn.dtx: docu fix + * scrkernel-footnotes.dtx: docu fix r610 2008-02-01 12:13:17 +0100 mjk: - * scrkftn.dtx: new option "multifootnotes" and new command "\footref" + * scrkernel-footnotes.dtx: new option "multifootnotes" and new command + "\footref" r609 2008-02-01 09:07:06 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 2.98c BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 2.98c BETA r608 2008-01-30 11:10:16 +0100 mjk: @@ -3244,11 +4924,12 @@ r608 2008-01-30 11:10:16 +0100 mjk: r607 2008-01-30 10:26:17 +0100 mjk: - * scrkvers.dtx: prepared for 2008/01/30 2.98b + * scrkernel-version.dtx: prepared for 2008/01/30 2.98b r606 2008-01-30 10:01:30 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 2.98b BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 2.98b BETA r605 2008-01-30 10:00:17 +0100 mjk: @@ -3256,7 +4937,8 @@ r605 2008-01-30 10:00:17 +0100 mjk: r604 2008-01-30 09:51:41 +0100 mjk: - * scrknpap.dtx: fix: \firsthead does not longer deactivate "location" + * scrkernel-notepaper.dtx: fix: \firsthead does not longer deactivate + "location" r603 2008-01-26 16:05:53 +0100 mjk: @@ -3273,32 +4955,38 @@ r601 2008-01-11 11:24:01 +0100 mjk: r600 2008-01-11 11:21:50 +0100 mjk: - * scrkmisc.dtx, scrkcile.dtx, scrsource.tex, scrpage.dtx, - tocstyle.dtx, scrkliof.dtx, scrkvers.dtx, scrlettr.ins, scrstrop.inc, - scrksect.dtx, scrbeta.dtx, scrlogo.dtx, scrstrip.inc, scrkfloa.dtx, - scrkpar.dtx, scrmain.ins, scrkidx.dtx, scrlfile.ins, scrkbase.dtx, - scrkplen.dtx, scrpage.ins, scrkbib.dtx, scrklist.dtx, scrtime.dtx, - scrkxflo.dtx, scraddr.ins, README, scrtime.ins, scrlettr.dtx, - scrkcomp.dtx, Makefile.baserules, japanlco.dtx, scrkftn.dtx, - scrkpage.dtx, scrklco.dtx, scrkfont.dtx, scrdoc.dtx, scrklang.dtx, - Makefile, scrlfile.dtx, scrktitl.dtx, scrknpap.dtx, manifest.txt, - scraddr.dtx, scrktare.dtx, Makefile.baseinit, scrkvars.dtx, - komabug.tex, doc/, doc/Makefile.latexinit, doc/plength.dtx, - doc/scrguide.gst, doc/scrguide.ist, doc/Makefile, doc/guide.tex, - doc/scrguide.cls, doc/Makefile.guide: prepared for 2008/01/11 2.98a + * scrkernel-sections.dtx, scrpage.dtx, scrsource.tex, + scrkernel-index.dtx, scrtime.dtx, scrdoc.dtx, + scrkernel-bibliography.dtx, tocstyle.dtx, scrkernel-version.dtx, + scrlogo.dtx, scrstrip.inc, scrkernel-compatibility.dtx, scraddr.dtx, + scrkernel-pseudolengths.dtx, scrkernel-pagestyles.dtx, + scrkernel-letterclassoptions.dtx, scrkernel-circularletters.dtx, + scrkernel-fonts.dtx, README, scrbeta.dtx, + scrkernel-listsandtabulars.dtx, Makefile.baseinit, + scrkernel-footnotes.dtx, Makefile, scrmain.ins, Makefile.baserules, + scrkernel-listsof.dtx, scrlfile.dtx, komabug.tex, + scrkernel-paragraphs.dtx, scrkxflo.dtx, scrkernel-language.dtx, + scrkernel-notepaper.dtx, scrkernel-miscellaneous.dtx, + scrkernel-variables.dtx, manifest.txt, scrstrop.inc, + scrkernel-floats.dtx, scrkernel-typearea.dtx, scrkernel-basics.dtx, + japanlco.dtx, scrkernel-title.dtx, obsolete/scrlettr.dtx, + obsolete/scrlettr.ins, doc/, doc/plength.dtx, doc/Makefile.latexinit, + doc/guide.tex, doc/Makefile, doc/scrguide.cls, doc/Makefile.guide, + doc/scrguide.ist, doc/scrguide.gst: prepared for 2008/01/11 2.98a r598 2008-01-11 09:14:15 +0100 mjk: - * scrknpap.dtx: behaviour of location field with "fromalign=center" - changed to the one before 2.98 + * scrkernel-notepaper.dtx: behaviour of location field with + "fromalign=center" changed to the one before 2.98 r597 2008-01-08 11:41:53 +0100 mjk: - * scrkcomp.dtx: prepared for 2.98a BETA + * scrkernel-compatibility.dtx: prepared for 2.98a BETA r596 2008-01-08 11:39:47 +0100 mjk: - * scrkvers.dtx, scrktare.dtx: twocolumn option fixed at classes + * scrkernel-version.dtx, scrkernel-typearea.dtx: twocolumn option + fixed at classes r595 2008-01-08 11:37:35 +0100 mjk: @@ -3306,7 +4994,7 @@ r595 2008-01-08 11:37:35 +0100 mjk: r594 2007-12-21 11:15:13 +0100 mjk: - * scrkvers.dtx: version bug fixed + * scrkernel-version.dtx: version bug fixed r593 2007-12-21 11:03:40 +0100 mjk: @@ -3314,7 +5002,8 @@ r593 2007-12-21 11:03:40 +0100 mjk: r592 2007-12-21 11:03:07 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 2.98 + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 2.98 r591 2007-12-21 10:59:43 +0100 mjk: @@ -3441,9 +5130,9 @@ r566 2007-12-04 11:36:59 +0100 mjk: r565 2007-11-30 13:06:11 +0100 mjk: - * TODO, doc/, doc/german/, doc/german/scrbookreportarticle.tex, - doc/german/scrlttr2.tex: environment documentation changed; font - elements for address field + * TODO, doc/, doc/german/, doc/german/scrlttr2.tex, + doc/german/scrbookreportarticle.tex: environment documentation + changed; font elements for address field r564 2007-11-29 12:35:39 +0100 mjk: @@ -3504,7 +5193,7 @@ r554 2007-11-27 12:27:16 +0100 mjk: r553 2007-11-27 10:00:28 +0100 mjk: - * scrkcomp.dtx: 2.97e is not compatible to 2.97d + * scrkernel-compatibility.dtx: 2.97e is not compatible to 2.97d r552 2007-11-27 09:50:51 +0100 mjk: @@ -3528,13 +5217,14 @@ r549 2007-11-26 11:56:12 +0100 mjk: r548 2007-11-26 11:53:02 +0100 mjk: - * scrkmisc.dtx, scrksect.dtx, scrkfloa.dtx: scrbook uses \thechapter - at \thesection, \thefigure, \thetable, and \theequation only at main - matter (depends on option "version") + * scrkernel-sections.dtx, scrkernel-miscellaneous.dtx, + scrkernel-floats.dtx: scrbook uses \thechapter at \thesection, + \thefigure, \thetable, and \theequation only at main matter (depends + on option "version") r547 2007-11-26 11:31:42 +0100 mjk: - * scrktare.dtx: You can set "paper=:" + * scrkernel-typearea.dtx: You can set "paper=:" r546 2007-11-23 13:03:03 +0100 mjk: @@ -3542,8 +5232,8 @@ r546 2007-11-23 13:03:03 +0100 mjk: r545 2007-11-23 10:52:01 +0100 mjk: - * scrktare.dtx: Some users asked for twoside-handling by the class - additional to the typearea package. So I've changed this for + * scrkernel-typearea.dtx: Some users asked for twoside-handling by the + class additional to the typearea package. So I've changed this for twoside, oneside, twocolumn, and onecolumn. Disadvantage of the change is, that type area recalculation will be done twice after \begin{document}. @@ -3554,7 +5244,7 @@ r544 2007-11-23 09:59:51 +0100 mjk: r543 2007-11-23 09:50:56 +0100 mjk: - * scrmain.ins, japanlco.dtx, Makefile: new lco file "NipponRL.lco" for + * Makefile, scrmain.ins, japanlco.dtx: new lco file "NipponRL.lco" for Japanese envelopes with window on the right side r542 2007-11-22 18:04:33 +0100 stephan-hennig: @@ -3570,13 +5260,14 @@ r541 2007-11-22 12:00:36 +0100 mjk: r540 2007-11-22 11:58:07 +0100 mjk: - * scrknpap.dtx: new option "firstfoot=(yes|on|true|no|off|false)" and - fix of "fromalign=(locationright|locationleft)" + * scrkernel-notepaper.dtx: new option + "firstfoot=(yes|on|true|no|off|false)" and fix of + "fromalign=(locationright|locationleft)" r539 2007-11-22 11:36:53 +0100 mjk: - * scrmain.ins, japanlco.dtx, Makefile, scrknpap.dtx, manifest.txt: new - Japanese lco files and new option + * Makefile, scrmain.ins, scrkernel-notepaper.dtx, manifest.txt, + japanlco.dtx: new Japanese lco files and new option "firsthead=(yes|on|true|no|off|false)" r538 2007-11-20 17:42:55 +0100 mjk: @@ -3589,8 +5280,9 @@ r537 2007-11-20 17:38:03 +0100 mjk: r536 2007-11-20 17:35:20 +0100 mjk: - * scrsource.tex, scrmain.ins, japanlco.dtx, scrklco.dtx, Makefile, - scrknpap.dtx: new lco files for Japanese letters + * scrsource.tex, scrkernel-letterclassoptions.dtx, Makefile, + scrmain.ins, scrkernel-notepaper.dtx, japanlco.dtx: new lco files for + Japanese letters r535 2007-11-13 10:55:46 +0100 mjk: @@ -3599,14 +5291,16 @@ r535 2007-11-13 10:55:46 +0100 mjk: r534 2007-11-13 09:44:02 +0100 mjk: - * scrknpap.dtx: two new values for option "fromalign": "locationleft" - aligns the from ragged right at the location; "locationright" aligns - the from ragged left at the location. No logos are set in these - cases, no user defined location is set in these cases. + * scrkernel-notepaper.dtx: two new values for option "fromalign": + "locationleft" aligns the from ragged right at the location; + "locationright" aligns the from ragged left at the location. No + logos are set in these cases, no user defined location is set in + these cases. r533 2007-11-12 15:15:16 +0100 mjk: - * scrknpap.dtx: default of locheight fixed (backaddrtoheight added) + * scrkernel-notepaper.dtx: default of locheight fixed + (backaddrtoheight added) r532 2007-11-10 11:25:07 +0100 mjk: @@ -3614,7 +5308,7 @@ r532 2007-11-10 11:25:07 +0100 mjk: r531 2007-11-10 11:22:39 +0100 mjk: - * scrknpap.dtx: - new pseudo length "tfoldmarklength", + * scrkernel-notepaper.dtx: - new pseudo length "tfoldmarklength", "mfoldmarklength", "bfoldmarklength" - new optional vertical fold marks with pseudo length "foldmarkvpos", @@ -3622,8 +5316,8 @@ r531 2007-11-10 11:22:39 +0100 mjk: r530 2007-11-10 08:53:30 +0100 mjk: - * scrkbase.dtx: spaces before and after keys and values are ignored at - \KOMAoptions + * scrkernel-basics.dtx: spaces before and after keys and values are + ignored at \KOMAoptions r529 2007-11-08 11:29:28 +0100 mjk: @@ -3631,8 +5325,9 @@ r529 2007-11-08 11:29:28 +0100 mjk: r528 2007-11-08 11:27:59 +0100 mjk: - * scrknpap.dtx: - new pseudo length mfoldmarkvpos (0pt = middle!) - - single fold marks may be (de)activated by option "foldmarks" + * scrkernel-notepaper.dtx: - new pseudo length mfoldmarkvpos (0pt = + middle!) - single fold marks may be (de)activated by option + "foldmarks" r527 2007-11-07 10:43:25 +0100 mjk: @@ -3640,8 +5335,8 @@ r527 2007-11-07 10:43:25 +0100 mjk: r526 2007-11-07 10:42:24 +0100 mjk: - * scrknpap.dtx, doc/, doc/plength.dtx: new pseudo-length "lochpos", - "locvpos", "locheight" + * scrkernel-notepaper.dtx, doc/, doc/plength.dtx: new pseudo-length + "lochpos", "locvpos", "locheight" r525 2007-11-07 10:16:07 +0100 mjk: @@ -3650,15 +5345,15 @@ r525 2007-11-07 10:16:07 +0100 mjk: r524 2007-10-23 08:53:48 +0200 mjk: - * scrktare.dtx: fix: \isopaper pays attention to landscape + * scrkernel-typearea.dtx: fix: \isopaper pays attention to landscape r523 2007-10-23 07:25:38 +0200 mjk: - * scrkpage.dtx: Typofix + * scrkernel-pagestyles.dtx: Typofix r522 2007-10-12 11:58:49 +0200 mjk: - * scrkvers.dtx: prepared for v2.97e BETA + * scrkernel-version.dtx: prepared for v2.97e BETA r521 2007-10-12 11:58:09 +0200 mjk: @@ -3666,7 +5361,7 @@ r521 2007-10-12 11:58:09 +0200 mjk: r520 2007-10-12 11:37:39 +0200 mjk: - * scrkvers.dtx: prepared for 2007/10/12 v2.97d + * scrkernel-version.dtx: prepared for 2007/10/12 v2.97d r519 2007-10-12 11:36:16 +0200 mjk: @@ -3679,16 +5374,16 @@ r518 2007-10-12 11:35:19 +0200 mjk: r517 2007-10-12 11:11:26 +0200 mjk: - * scrknpap.dtx: forgotten \show removed [Stephan Hennig] + * scrkernel-notepaper.dtx: forgotten \show removed [Stephan Hennig] r516 2007-10-09 15:46:27 +0200 mjk: - * scrknpap.dtx: vertical spacing of date field fixed + * scrkernel-notepaper.dtx: vertical spacing of date field fixed r515 2007-10-09 14:56:29 +0200 mjk: - * scrkcomp.dtx, scrknpap.dtx: setting for font element `refvalue' - fixed + * scrkernel-compatibility.dtx, scrkernel-notepaper.dtx: setting for + font element `refvalue' fixed r514 2007-10-04 14:51:20 +0200 mjk: @@ -3696,12 +5391,15 @@ r514 2007-10-04 14:51:20 +0200 mjk: r513 2007-10-03 11:02:36 +0200 mjk: - * scrkfont.dtx, scrkbase.dtx, scrkpage.dtx, scrkpar.dtx, - scrklang.dtx, scrktare.dtx, scrkmisc.dtx: New \PackageInfoNoLine + * scrkernel-pagestyles.dtx, scrkernel-fonts.dtx, + scrkernel-paragraphs.dtx, scrkernel-language.dtx, + scrkernel-miscellaneous.dtx, scrkernel-typearea.dtx, + scrkernel-basics.dtx: New \PackageInfoNoLine r512 2007-10-03 10:43:06 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 2.97d BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 2.97d BETA r511 2007-10-01 11:52:58 +0200 mjk: @@ -3709,41 +5407,41 @@ r511 2007-10-01 11:52:58 +0200 mjk: r510 2007-10-01 09:18:44 +0200 mjk: - * scrkvers.dtx: version number fixed + * scrkernel-version.dtx: version number fixed r509 2007-09-28 10:01:05 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: version fixed + * scrkernel-version.dtx, scrkernel-compatibility.dtx: version fixed r508 2007-09-28 09:45:33 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for v2.97c + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + v2.97c r507 2007-09-27 09:42:11 +0200 mjk: - * doc/, doc/english/, doc/english/scrpage2.tex, - doc/english/guide-english.tex, doc/english/typearea.tex, - doc/english/scrlttr2.tex, doc/english/scraddr.tex, - doc/english/scrbookreportarticle.tex, doc/english/adrconvnote.tex: - index fixed + * doc/, doc/english/, doc/english/scrlttr2.tex, + doc/english/scrbookreportarticle.tex, doc/english/adrconvnote.tex, + doc/english/typearea.tex, doc/english/scraddr.tex, + doc/english/guide-english.tex, doc/english/scrpage2.tex: index fixed r506 2007-09-26 16:44:56 +0200 mjk: - * doc/, doc/english/, doc/english/scrdatetime.tex, - doc/english/scrpage2.tex, doc/english/guide-english.tex, - doc/english/introduction.tex, doc/english/typearea.tex, - doc/english/scrlttr2.tex, doc/english/scrlfile.tex, - doc/english/scraddr.tex, doc/english/scrbookreportarticle.tex: - improved by GH + * doc/, doc/english/, doc/english/scrlfile.tex, + doc/english/scrlttr2.tex, doc/english/scrbookreportarticle.tex, + doc/english/scrdatetime.tex, doc/english/introduction.tex, + doc/english/typearea.tex, doc/english/scraddr.tex, + doc/english/guide-english.tex, doc/english/scrpage2.tex: improved by + GH r505 2007-09-26 09:23:54 +0200 mjk: - * doc/, doc/english/, doc/english/scrdatetime.tex, - doc/english/scrpage2.tex, doc/english/guide-english.tex, - doc/english/introduction.tex, doc/english/typearea.tex, - doc/english/scrlttr2.tex, doc/english/scrlfile.tex, - doc/english/scraddr.tex, doc/english/scrbookreportarticle.tex: - improved by GH + * doc/, doc/english/, doc/english/scrlfile.tex, + doc/english/scrlttr2.tex, doc/english/scrbookreportarticle.tex, + doc/english/scrdatetime.tex, doc/english/introduction.tex, + doc/english/typearea.tex, doc/english/scraddr.tex, + doc/english/guide-english.tex, doc/english/scrpage2.tex: improved by + GH r504 2007-09-25 09:07:38 +0200 mjk: @@ -3759,11 +5457,11 @@ r502 2007-09-25 08:34:49 +0200 mjk: r501 2007-09-25 08:32:57 +0200 mjk: - * scrkpage.dtx: date fixed + * scrkernel-pagestyles.dtx: date fixed r500 2007-09-25 08:32:30 +0200 mjk: - * scrkpage.dtx: warning \scr@fnt@wrn@pagehead changed + * scrkernel-pagestyles.dtx: warning \scr@fnt@wrn@pagehead changed r499 2007-09-21 09:06:57 +0200 mjk: @@ -3777,13 +5475,13 @@ r498 2007-09-20 15:08:33 +0200 mjk: r497 2007-09-18 12:04:55 +0200 mjk: - * doc/, doc/scrguide.cls, doc/guide.tex, doc/german/, - doc/german/guide-ngerman.tex, doc/english/, - doc/english/scrdatetime.tex, doc/english/scrpage2.tex, - doc/english/guide-english.tex, doc/english/introduction.tex, - doc/english/scrlttr2.tex, doc/english/scrlfile.tex, - doc/english/scraddr.tex, doc/english/scrbookreportarticle.tex, - doc/english/adrconvnote.tex: new command \translator at the guide + * doc/, doc/guide.tex, doc/scrguide.cls, doc/english/, + doc/english/scrlfile.tex, doc/english/scrlttr2.tex, + doc/english/scrbookreportarticle.tex, doc/english/adrconvnote.tex, + doc/english/scrdatetime.tex, doc/english/introduction.tex, + doc/english/scraddr.tex, doc/english/guide-english.tex, + doc/english/scrpage2.tex, doc/german/, doc/german/guide-ngerman.tex: + new command \translator at the guide r496 2007-09-18 11:52:41 +0200 mjk: @@ -3795,23 +5493,24 @@ r495 2007-09-18 10:37:10 +0200 mjk: r494 2007-09-17 12:46:21 +0200 mjk: - * scrkplen.dtx: it's save but not compatible not to use e-TeX + * scrkernel-pseudolengths.dtx: it's save but not compatible not to use + e-TeX r493 2007-09-17 12:45:25 +0200 mjk: - * scrkfont.dtx: test for needed e-TeX feature + * scrkernel-fonts.dtx: test for needed e-TeX feature r492 2007-09-17 12:31:34 +0200 mjk: - * scrkplen.dtx: less functionality, if eTeX not used + * scrkernel-pseudolengths.dtx: less functionality, if eTeX not used r491 2007-09-17 11:57:42 +0200 mjk: - * scrkfloa.dtx: there where to many \scr@smashdp + * scrkernel-floats.dtx: there where to many \scr@smashdp r490 2007-09-17 11:48:43 +0200 mjk: - * scrkfloa.dtx: use of \scr@smashdp fixed + * scrkernel-floats.dtx: use of \scr@smashdp fixed r489 2007-09-17 11:48:28 +0200 mjk: @@ -3819,19 +5518,19 @@ r489 2007-09-17 11:48:28 +0200 mjk: r488 2007-09-17 11:46:47 +0200 mjk: - * scrkbase.dtx: Warning message break changed + * scrkernel-basics.dtx: Warning message break changed r487 2007-09-17 11:35:22 +0200 mjk: - * scrkfloa.dtx: \@@makecaption uses \scr@smashdp + * scrkernel-floats.dtx: \@@makecaption uses \scr@smashdp r486 2007-09-17 11:34:48 +0200 mjk: - * scrkbase.dtx: date fixed + * scrkernel-basics.dtx: date fixed r485 2007-09-17 11:34:33 +0200 mjk: - * scrkbase.dtx: new: scr@smashdp + * scrkernel-basics.dtx: new: scr@smashdp r484 2007-09-17 10:13:55 +0200 mjk: @@ -3851,8 +5550,8 @@ r481 2007-09-12 17:05:12 +0200 mjk: r480 2007-09-12 17:03:04 +0200 mjk: - * scrktare.dtx, scrklco.dtx: loading of lco file via \documentclass - option fixed + * scrkernel-letterclassoptions.dtx, scrkernel-typearea.dtx: loading of + lco file via \documentclass option fixed r479 2007-09-12 12:47:27 +0200 mjk: @@ -3902,7 +5601,8 @@ r470 2007-09-02 11:16:22 +0200 mjk: r469 2007-08-31 11:41:50 +0200 mjk: - * scrktitl.dtx: back side of title pages should use page style empty + * scrkernel-title.dtx: back side of title pages should use page style + empty r468 2007-08-31 09:29:35 +0200 mjk: @@ -3953,7 +5653,8 @@ r459 2007-08-19 12:15:31 +0200 mjk: r458 2007-08-10 18:55:58 +0200 mjk: - * scrklang.dtx: text of \languagename warning changed [Stephan Hennig] + * scrkernel-language.dtx: text of \languagename warning changed + [Stephan Hennig] r457 2007-08-09 17:30:26 +0200 mjk: @@ -3978,8 +5679,8 @@ r453 2007-08-09 17:08:00 +0200 mjk: r452 2007-08-07 13:22:59 +0200 mjk: - * doc/, doc/german/, doc/german/scrlfile.tex, doc/english/, - doc/english/scrlfile.tex: german version extended to english version + * doc/, doc/english/, doc/english/scrlfile.tex, doc/german/, + doc/german/scrlfile.tex: german version extended to english version r451 2007-08-07 13:14:42 +0200 mjk: @@ -4024,7 +5725,7 @@ r443 2007-07-26 11:22:41 +0200 mjk: r442 2007-07-25 09:41:22 +0200 mjk: - * scrkvers.dtx: prepared for 2.97c BETA + * scrkernel-version.dtx: prepared for 2.97c BETA r441 2007-07-24 11:37:42 +0200 mjk: @@ -4032,8 +5733,8 @@ r441 2007-07-24 11:37:42 +0200 mjk: r440 2007-07-24 10:53:54 +0200 mjk: - * doc/, doc/german/, doc/german/scrbookreportarticle.tex, - doc/english/, doc/english/scrbookreportarticle.tex: mib GH and MK + * doc/, doc/english/, doc/english/scrbookreportarticle.tex, + doc/german/, doc/german/scrbookreportarticle.tex: mib GH and MK r439 2007-07-23 11:12:39 +0200 mjk: @@ -4046,8 +5747,8 @@ r438 2007-07-23 09:33:21 +0200 mjk: r437 2007-07-23 09:27:58 +0200 mjk: - * scrksect.dtx: revert to: \partlevel is -1 at chapter classes and 0 - at no chapter classes + * scrkernel-sections.dtx: revert to: \partlevel is -1 at chapter + classes and 0 at no chapter classes r436 2007-07-23 09:21:31 +0200 mjk: @@ -4075,19 +5776,19 @@ r432 2007-07-21 09:48:15 +0200 mjk: r431 2007-07-19 15:27:54 +0200 mjk: - * scrkplen.dtx: \useplength may be used with factor prefix (e.g. - .5\useplength{firstheadwidth}) + * scrkernel-pseudolengths.dtx: \useplength may be used with factor + prefix (e.g. .5\useplength{firstheadwidth}) r430 2007-07-18 09:44:04 +0200 mjk: - * scrkpage.dtx, scrktare.dtx, scrkmisc.dtx: The classes and - typearea.sty allow to set option twoside to a new value at the - document's body. + * scrkernel-pagestyles.dtx, scrkernel-miscellaneous.dtx, + scrkernel-typearea.dtx: The classes and typearea.sty allow to set + option twoside to a new value at the document's body. r429 2007-07-18 09:12:39 +0200 mjk: - * scrkpage.dtx: change: the classes should tolerate late changes of - option twoside + * scrkernel-pagestyles.dtx: change: the classes should tolerate late + changes of option twoside r428 2007-07-17 18:59:20 +0200 mjk: @@ -4096,7 +5797,7 @@ r428 2007-07-17 18:59:20 +0200 mjk: r427 2007-07-16 14:44:41 +0200 mjk: - * scrksect.dtx: several \nobreak after \sectfont added + * scrkernel-sections.dtx: several \nobreak after \sectfont added r426 2007-07-14 07:52:26 +0200 mjk: @@ -4104,7 +5805,8 @@ r426 2007-07-14 07:52:26 +0200 mjk: r425 2007-07-10 17:20:29 +0200 mjk: - * scrkfont.dtx, scrkbase.dtx: \l@addto@macro moved to scrkbase + * scrkernel-fonts.dtx, scrkernel-basics.dtx: \l@addto@macro moved to + scrkbase r424 2007-07-10 10:29:58 +0200 mjk: @@ -4118,8 +5820,8 @@ r423 2007-07-10 10:15:02 +0200 mjk: r422 2007-07-06 16:09:52 +0200 mjk: - * TODO, scrknpap.dtx: new values for option subject: underlined, - left, right, centered + * TODO, scrkernel-notepaper.dtx: new values for option subject: + underlined, left, right, centered r421 2007-07-06 15:33:02 +0200 mjk: @@ -4127,8 +5829,8 @@ r421 2007-07-06 15:33:02 +0200 mjk: r420 2007-07-06 15:04:14 +0200 mjk: - * scrknpap.dtx: new font elements: specialmail, addressee, toname, - toaddress, and internal use of \specialmail@format. + * scrkernel-notepaper.dtx: new font elements: specialmail, addressee, + toname, toaddress, and internal use of \specialmail@format. r419 2007-07-06 12:24:58 +0200 mjk: @@ -4154,8 +5856,8 @@ r415 2007-07-06 10:03:31 +0200 mjk: r414 2007-07-06 09:57:57 +0200 mjk: - * doc/, doc/german/, doc/german/scrbookreportarticle.tex, - doc/english/, doc/english/scrbookreportarticle.tex: secnumdepth fixed + * doc/, doc/english/, doc/english/scrbookreportarticle.tex, + doc/german/, doc/german/scrbookreportarticle.tex: secnumdepth fixed r413 2007-07-06 09:56:01 +0200 mjk: @@ -4180,8 +5882,8 @@ r410 2007-07-05 18:56:09 +0200 mjk: r409 2007-07-04 17:16:12 +0200 mjk: - * scrkfont.dtx, scrktare.dtx: initialize more font size dependent - lengths + * scrkernel-fonts.dtx, scrkernel-typearea.dtx: initialize more font + size dependent lengths r408 2007-07-02 18:15:54 +0200 mjk: @@ -4202,8 +5904,8 @@ r404 2007-06-27 08:28:01 +0200 mjk: r399 2007-06-21 13:20:21 +0200 mjk: - * scrksect.dtx: \l@chapter and \l@section reimplemented to make - \raggedchapterentry and \raggedsectionentry work + * scrkernel-sections.dtx: \l@chapter and \l@section reimplemented to + make \raggedchapterentry and \raggedsectionentry work r398 2007-06-21 11:07:34 +0200 mjk: @@ -4211,7 +5913,7 @@ r398 2007-06-21 11:07:34 +0200 mjk: r397 2007-06-21 11:06:08 +0200 mjk: - * scrksect.dtx, TODO: new font elements: partentry, + * scrkernel-sections.dtx, TODO: new font elements: partentry, partentrypagenumber, chapterentry, chapterentrypagenumber, sectionentry, sectionentrypagenumber @@ -4230,19 +5932,20 @@ r394 2007-06-20 11:10:25 +0200 mjk: r393 2007-06-20 10:53:58 +0200 mjk: - * scrkbase.dtx: renamed \scr@ifvtex to \scr@ifVTeX and \ifvtex to - \ifVTeX + * scrkernel-basics.dtx: renamed \scr@ifvtex to \scr@ifVTeX and \ifvtex + to \ifVTeX r392 2007-06-20 10:21:09 +0200 mjk: - * scrkfont.dtx, scrkbase.dtx, scrktare.dtx, scrkcomp.dtx: - \scr@ifundefined renamed to \scr@ifundefinedorrelax, \ifundefined - renamed to \ifundefinedorrelax + * scrkernel-compatibility.dtx, scrkernel-fonts.dtx, + scrkernel-typearea.dtx, scrkernel-basics.dtx: \scr@ifundefined renamed + to \scr@ifundefinedorrelax, \ifundefined renamed to + \ifundefinedorrelax r391 2007-06-20 09:28:05 +0200 mjk: - * scrktitl.dtx, TODO: new title command \subtitle with font element - subtitle + * TODO, scrkernel-title.dtx: new title command \subtitle with font + element subtitle r390 2007-06-14 09:56:35 +0200 mjk: @@ -4257,7 +5960,7 @@ r389 2007-06-06 09:32:40 +0200 mjk: r388 2007-06-06 09:28:51 +0200 mjk: - * scrkfloa.dtx: vertical alignment of captions fixed by adding + * scrkernel-floats.dtx: vertical alignment of captions fixed by adding \unskip\strut r387 2007-06-06 08:40:10 +0200 mjk: @@ -4306,11 +6009,11 @@ r379 2007-05-28 14:53:53 +0200 mjk: r378 2007-05-28 12:13:28 +0200 mjk: - * scrkvers.dtx: prepared for new 2.97c BETA + * scrkernel-version.dtx: prepared for new 2.97c BETA r377 2007-05-28 12:11:20 +0200 mjk: - * scrkfont.dtx: fix: use of \KOMA@UseObsolete replaced + * scrkernel-fonts.dtx: fix: use of \KOMA@UseObsolete replaced r376 2007-05-25 12:19:59 +0200 mjk: @@ -4324,24 +6027,25 @@ r375 2007-05-22 17:39:37 +0200 mjk: r374 2007-05-17 10:30:34 +0200 mjk: - * scrknpap.dtx: file date fixed + * scrkernel-notepaper.dtx: file date fixed r373 2007-05-17 10:30:11 +0200 mjk: - * scrknpap.dtx: new: \flushbottom uses \stopletter to deactivate - itself at the last page + * scrkernel-notepaper.dtx: new: \flushbottom uses \stopletter to + deactivate itself at the last page r372 2007-05-14 18:30:12 +0200 mjk: - * scrknpap.dtx: new: font elements "refname" and "refvalue" + * scrkernel-notepaper.dtx: new: font elements "refname" and "refvalue" r371 2007-05-12 18:20:38 +0200 mjk: - * scrkcomp.dtx: checksum fixed + * scrkernel-compatibility.dtx: checksum fixed r370 2007-05-12 18:04:15 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for 2.97c BETA + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + 2.97c BETA r369 2007-05-08 11:56:13 +0200 mjk: @@ -4349,26 +6053,28 @@ r369 2007-05-08 11:56:13 +0200 mjk: r368 2007-05-08 11:18:59 +0200 mjk: - * scrknpap.dtx: font (color) and thickness of foldmarks and fromrule - configurable using font elements "foldmark" and "fromrule" and - pseudo lengths "foldmarkthickness" and "fromrulethickness" + * scrkernel-notepaper.dtx: font (color) and thickness of foldmarks and + fromrule configurable using font elements "foldmark" and "fromrule" + and pseudo lengths "foldmarkthickness" and "fromrulethickness" r367 2007-04-19 17:15:07 +0200 mjk: - * scrkbase.dtx, scrkpage.dtx, scrktare.dtx, scrkmisc.dtx: New - implementation of option execution + * scrkernel-pagestyles.dtx, scrkernel-miscellaneous.dtx, + scrkernel-typearea.dtx, scrkernel-basics.dtx: New implementation of + option execution r366 2007-04-17 09:33:44 +0200 mjk: - * scrkbase.dtx: - changed: message text about obsolete options etc. + * scrkernel-basics.dtx: - changed: message text about obsolete options + etc. r365 2007-03-30 12:56:32 +0200 mjk: - * scrknpap.dtx: `locfield=narrow' and `locfield=wide' fixed + * scrkernel-notepaper.dtx: `locfield=narrow' and `locfield=wide' fixed r364 2007-03-25 11:13:12 +0200 mjk: - * scrkvers.dtx: Pepared for new BETA + * scrkernel-version.dtx: Pepared for new BETA r363 2007-03-25 11:12:55 +0200 mjk: @@ -4376,20 +6082,22 @@ r363 2007-03-25 11:12:55 +0200 mjk: r362 2007-03-25 10:48:11 +0200 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for release 2.97b + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + release 2.97b r361 2007-03-09 15:22:09 +0100 mjk: - * scrksect.dtx: bug at \@@makechapterhead using chapterprefix fixed + * scrkernel-sections.dtx: bug at \@@makechapterhead using + chapterprefix fixed r360 2007-03-08 11:49:23 +0100 mjk: - * scrkbase.dtx: use of \ifcsname for definition of \scr@ifundefined - fixed + * scrkernel-basics.dtx: use of \ifcsname for definition of + \scr@ifundefined fixed r359 2007-03-07 11:07:50 +0100 mjk: - * scrkvers.dtx: prepared for new BETA + * scrkernel-version.dtx: prepared for new BETA r358 2007-03-07 11:07:29 +0100 mjk: @@ -4401,7 +6109,8 @@ r357 2007-03-07 10:47:26 +0100 mjk: r356 2007-03-07 10:40:27 +0100 mjk: - * scrkvers.dtx, scrkcomp.dtx: prepared for version 2.97a + * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for + version 2.97a r355 2007-03-07 10:39:55 +0100 mjk: @@ -4422,11 +6131,11 @@ r351 2007-03-02 11:50:10 +0100 mjk: r350 2007-03-02 11:47:35 +0100 mjk: - * scrkcomp.dtx: v2.97 added + * scrkernel-compatibility.dtx: v2.97 added r349 2007-03-02 11:33:19 +0100 mjk: - * scrkvers.dtx: new beta + * scrkernel-version.dtx: new beta r348 2007-03-02 11:32:35 +0100 mjk: @@ -4434,7 +6143,7 @@ r348 2007-03-02 11:32:35 +0100 mjk: r347 2007-03-02 09:39:10 +0100 mjk: - * scrkvers.dtx: prepared for release 2.97 + * scrkernel-version.dtx: prepared for release 2.97 r346 2007-03-02 09:37:06 +0100 mjk: @@ -4442,14 +6151,15 @@ r346 2007-03-02 09:37:06 +0100 mjk: r345 2007-02-27 13:01:29 +0100 mjk: - * scrkfloa.dtx: fix: min. caption width is 0pt + * scrkernel-floats.dtx: fix: min. caption width is 0pt r344 2007-01-24 17:49:13 +0100 mjk: - * scrksect.dtx: fix: \@seccntformat gives \othersectionlevelsformat - \csname the#1\endcsname, that will be used by the default - \othersectionlevelformat with 3 (instead of 1) arguments. With this - \automark{subsubsection} will give correct numbers at head. + * scrkernel-sections.dtx: fix: \@seccntformat gives + \othersectionlevelsformat \csname the#1\endcsname, that will be used + by the default \othersectionlevelformat with 3 (instead of 1) + arguments. With this \automark{subsubsection} will give correct + numbers at head. r343 2007-01-12 09:57:36 +0100 mjk: @@ -4458,42 +6168,46 @@ r343 2007-01-12 09:57:36 +0100 mjk: r341 2007-01-09 19:07:25 +0100 mjk: - * scrsource.tex, scrksect.dtx, scrbeta.dtx, scrmain.ins, - scrkfont.dtx, scrkxflo.dtx, scrkbase.dtx, scrktitl.dtx, scrkpage.dtx, - scrkvers.dtx, scrkfloa.dtx, Makefile.baserules, scrkpar.dtx, - scrkliof.dtx, Makefile, scrstrip.inc, manifest.txt, scrstrop.inc, - scrlfile.ins, scrklist.dtx, scrlfile.dtx, scrklang.dtx, scrkidx.dtx, - scrlogo.dtx, scrkftn.dtx, Makefile.baseinit, scrdoc.dtx, - scrktare.dtx, scrkmisc.dtx, scrkbib.dtx, scraddr.dtx, scrtime.dtx, - komabug.tex, scrkplen.dtx, scrpage.dtx, scraddr.ins, scrtime.ins, - scrpage.ins, scrklco.dtx, scrkcomp.dtx, scrlettr.dtx, scrknpap.dtx, - scrlettr.ins, scrkvars.dtx, scrkcile.dtx, doc/, doc/Makefile.guide, - doc/plength.dtx, doc/scrguide.ist, doc/scrguide.cls, doc/guide.tex, - doc/scrguide.gst, doc/Makefile, doc/Makefile.latexinit, doc/german/, - doc/german/guide-ngerman.tex, doc/german/introduction.tex, - doc/german/scrdatetime.tex, doc/german/scraddr.tex, - doc/german/scrlfile.tex, doc/german/Makefile, - doc/german/scrbookreportarticle.tex, doc/german/scrpage2.tex, - doc/german/typearea.tex, doc/german/scrlttr2.tex, - doc/german/adrconvnote.tex, doc/german/htmlsetup, doc/english/, - doc/english/Makefile, doc/english/htmlsetup, - doc/english/guide-english.tex, doc/english/introduction.tex, - doc/english/typearea.tex, doc/english/scrdatetime.tex, - doc/english/scrpage2.tex, doc/english/scrlfile.tex, - doc/english/scraddr.tex, doc/english/scrlttr2.tex, - doc/english/adrconvnote.tex, doc/english/scrbookreportarticle.tex: - copyright end date changed to 2007 + * scrkernel-sections.dtx, scrpage.dtx, scrsource.tex, + scrkernel-index.dtx, scrtime.dtx, scrdoc.dtx, + scrkernel-bibliography.dtx, scrkernel-version.dtx, scrlogo.dtx, + scrstrip.inc, scrkernel-compatibility.dtx, scraddr.dtx, + scrkernel-pseudolengths.dtx, scrkernel-pagestyles.dtx, + scrkernel-letterclassoptions.dtx, scrkernel-circularletters.dtx, + scrkernel-fonts.dtx, scrbeta.dtx, scrkernel-listsandtabulars.dtx, + Makefile.baseinit, scrkernel-footnotes.dtx, Makefile, scrmain.ins, + Makefile.baserules, scrkernel-listsof.dtx, scrlfile.dtx, komabug.tex, + scrkernel-paragraphs.dtx, scrkxflo.dtx, scrkernel-language.dtx, + scrkernel-notepaper.dtx, scrkernel-miscellaneous.dtx, + scrkernel-variables.dtx, manifest.txt, scrstrop.inc, + scrkernel-floats.dtx, scrkernel-typearea.dtx, scrkernel-basics.dtx, + scrkernel-title.dtx, obsolete/scrlettr.dtx, obsolete/scrlettr.ins, + doc/, doc/plength.dtx, doc/Makefile.latexinit, doc/guide.tex, + doc/Makefile, doc/scrguide.cls, doc/Makefile.guide, doc/scrguide.ist, + doc/scrguide.gst, doc/english/, doc/english/scrlfile.tex, + doc/english/scrlttr2.tex, doc/english/htmlsetup, + doc/english/scrbookreportarticle.tex, doc/english/adrconvnote.tex, + doc/english/scrdatetime.tex, doc/english/introduction.tex, + doc/english/Makefile, doc/english/typearea.tex, + doc/english/scraddr.tex, doc/english/guide-english.tex, + doc/english/scrpage2.tex, doc/german/, doc/german/scrlfile.tex, + doc/german/scrlttr2.tex, doc/german/htmlsetup, + doc/german/scrbookreportarticle.tex, doc/german/adrconvnote.tex, + doc/german/scrdatetime.tex, doc/german/introduction.tex, + doc/german/guide-ngerman.tex, doc/german/Makefile, + doc/german/typearea.tex, doc/german/scraddr.tex, + doc/german/scrpage2.tex: copyright end date changed to 2007 r340 2007-01-09 11:41:16 +0100 mjk: - * TODO, doc/, doc/german/, doc/german/scrbookreportarticle.tex, - doc/english/, doc/english/scrbookreportarticle.tex: documentation of + * TODO, doc/, doc/english/, doc/english/scrbookreportarticle.tex, + doc/german/, doc/german/scrbookreportarticle.tex: documentation of page break changes at toc r339 2007-01-09 11:39:44 +0100 mjk: - * scrksect.dtx: fix: element "minisec" may not be an alias element and - a real element + * scrkernel-sections.dtx: fix: element "minisec" may not be an alias + element and a real element r338 2007-01-08 10:44:47 +0100 mjk: @@ -4535,11 +6249,13 @@ r331 2007-01-04 11:53:49 +0100 mjk: r330 2007-01-03 12:46:55 +0100 mjk: - * scrkpage.dtx: fix for option cleardoublepage, value current + * scrkernel-pagestyles.dtx: fix for option cleardoublepage, value + current r329 2007-01-02 11:06:17 +0100 mjk: - * scrkpage.dtx: replacement for option cleardoublestandard fixed + * scrkernel-pagestyles.dtx: replacement for option cleardoublestandard + fixed r328 2006-12-12 10:30:56 +0100 mjk: @@ -4553,8 +6269,8 @@ r327 2006-12-12 10:30:21 +0100 mjk: r326 2006-12-07 11:50:19 +0100 mjk: - * scrksect.dtx, TODO: bug with automatic set dot at end of numbers - fixed + * scrkernel-sections.dtx, TODO: bug with automatic set dot at end of + numbers fixed r325 2006-12-07 10:56:31 +0100 mjk: @@ -4566,12 +6282,12 @@ r324 2006-12-07 10:54:29 +0100 mjk: r323 2006-12-07 09:58:16 +0100 mjk: - * scrknpap.dtx: bugfix: refline=wide was narrow and refline=narrow was - wide + * scrkernel-notepaper.dtx: bugfix: refline=wide was narrow and + refline=narrow was wide r322 2006-12-07 09:53:17 +0100 mjk: - * scrksect.dtx: typo fix at use of command \scr@v@2.96 + * scrkernel-sections.dtx: typo fix at use of command \scr@v@2.96 r321 2006-12-03 12:00:28 +0100 mjk: @@ -4579,23 +6295,23 @@ r321 2006-12-03 12:00:28 +0100 mjk: r320 2006-12-03 11:58:12 +0100 mjk: - * scrksect.dtx, scrkliof.dtx: new option "chapteratlists" with values - entry or amount of vertical space + * scrkernel-sections.dtx, scrkernel-listsof.dtx: new option + "chapteratlists" with values entry or amount of vertical space r319 2006-12-03 09:24:15 +0100 mjk: - * scrksect.dtx: New font element "minisec" and not needed \nobreak at - font selection of headings removed with the result that the last - entry of an font element may need an argument. \caps from soul may - not be used because of implementation of \@sect and \@ssect at the - LaTeX kernel. + * scrkernel-sections.dtx: New font element "minisec" and not needed + \nobreak at font selection of headings removed with the result that + the last entry of an font element may need an argument. \caps from + soul may not be used because of implementation of \@sect and \@ssect + at the LaTeX kernel. r318 2006-12-02 11:41:37 +0100 mjk: - * scrksect.dtx: last command of font elements part, partnumber, - chapter and chapterprefix (new) may need an argument that does not - effect \baselineskip. To make command \caps of package soul work - also default of \chapterformat was changed (\mbox added). + * scrkernel-sections.dtx: last command of font elements part, + partnumber, chapter and chapterprefix (new) may need an argument + that does not effect \baselineskip. To make command \caps of package + soul work also default of \chapterformat was changed (\mbox added). r317 2006-12-02 11:38:22 +0100 mjk: @@ -4604,8 +6320,8 @@ r317 2006-12-02 11:38:22 +0100 mjk: r316 2006-12-02 11:37:12 +0100 mjk: - * scrktare.dtx: - new hook at end of \typearea and new command - \AfterCalculatingTypearea to + * scrkernel-typearea.dtx: - new hook at end of \typearea and new + command \AfterCalculatingTypearea to handle the hook - mew command \activateareas to activate changes of layout parameters even @@ -4618,8 +6334,8 @@ r315 2006-12-02 11:33:29 +0100 mjk: r314 2006-11-30 19:57:36 +0100 mjk: - * scrksect.dtx: extended the page break algorithm at toc from part - down to chapter or section down to subparagraph + * scrkernel-sections.dtx: extended the page break algorithm at toc + from part down to chapter or section down to subparagraph r313 2006-11-29 16:38:15 +0100 mjk: @@ -4633,23 +6349,23 @@ r312 2006-11-29 16:29:25 +0100 mjk: r311 2006-11-28 11:50:17 +0100 mjk: - * scrksect.dtx: Mit Option version (ohne Wert oder mit Wert ab 2.96a) - erfolgt im Inhaltsverzeichnis kein Seitenumbruch mehr zwischen part- - und chapter-, bzw. part- und section-, bzw. chapter- und section-, - bzw. section- und subsection-Eintrag. Das genau Verhalten ist von - der Klasse abhängig. + * scrkernel-sections.dtx: Mit Option version (ohne Wert oder mit Wert + ab 2.96a) erfolgt im Inhaltsverzeichnis kein Seitenumbruch mehr + zwischen part- und chapter-, bzw. part- und section-, bzw. chapter- + und section-, bzw. section- und subsection-Eintrag. Das genau + Verhalten ist von der Klasse abhängig. r310 2006-11-28 09:26:08 +0100 mjk: - * scrksect.dtx, scrkcomp.dtx: New version will behave different in - section etc. headings with parskip options used. -- Dssss und die - folgenden Zeilen werden ignoriert -- + * scrkernel-sections.dtx, scrkernel-compatibility.dtx: New version + will behave different in section etc. headings with parskip options + used. -- Dssss und die folgenden Zeilen werden ignoriert -- M scrksect.dtx M scrkcomp.dtx r309 2006-11-26 11:38:02 +0100 mjk: - * scrkvers.dtx: new BETA + * scrkernel-version.dtx: new BETA r308 2006-11-26 11:37:27 +0100 mjk: @@ -4657,7 +6373,7 @@ r308 2006-11-26 11:37:27 +0100 mjk: r307 2006-11-26 11:30:55 +0100 mjk: - * scrkvers.dtx: Release: 2006/11/26 v2.96 + * scrkernel-version.dtx: Release: 2006/11/26 v2.96 r306 2006-11-26 11:29:27 +0100 mjk: @@ -4665,11 +6381,11 @@ r306 2006-11-26 11:29:27 +0100 mjk: r305 2006-11-26 11:27:07 +0100 mjk: - * scrkbase.dtx: Commands, that have an internal and an external name - (defined using \let@as@internal@defined) may optional be defined - only internal (using option internalonly). The backslash of the - macro name has to be replaced by a slash at the option argument (e. - g. "internalonly=/ifvtex/ifundefined"). + * scrkernel-basics.dtx: Commands, that have an internal and an + external name (defined using \let@as@internal@defined) may optional + be defined only internal (using option internalonly). The backslash + of the macro name has to be replaced by a slash at the option + argument (e. g. "internalonly=/ifvtex/ifundefined"). r304 2006-09-12 09:57:55 +0200 mjk: @@ -4677,12 +6393,12 @@ r304 2006-09-12 09:57:55 +0200 mjk: r303 2006-09-12 09:57:18 +0200 mjk: - * doc/, doc/german/, doc/german/typearea.tex, doc/english/, - doc/english/typearea.tex: fix: line number at \areaset example + * doc/, doc/english/, doc/english/typearea.tex, doc/german/, + doc/german/typearea.tex: fix: line number at \areaset example r302 2006-09-12 09:55:01 +0200 mjk: - * scrktare.dtx: fix: set \topskip + * scrkernel-typearea.dtx: fix: set \topskip r301 2006-09-10 08:42:55 +0200 mjk: @@ -4690,7 +6406,7 @@ r301 2006-09-10 08:42:55 +0200 mjk: r300 2006-08-30 10:09:32 +0200 mjk: - * scrkvers.dtx: ready for release of 2.96 BETA + * scrkernel-version.dtx: ready for release of 2.96 BETA r299 2006-08-27 09:20:08 +0200 mjk: @@ -4699,50 +6415,51 @@ r299 2006-08-27 09:20:08 +0200 mjk: r298 2006-08-21 12:51:18 +0200 mjk: - * scrktare.dtx: new: warn if \typearea is used at any group + * scrkernel-typearea.dtx: new: warn if \typearea is used at any group r297 2006-08-21 12:17:06 +0200 mjk: - * scrksect.dtx, scrkmisc.dtx: change: some more options changed to use - keyval + * scrkernel-sections.dtx, scrkernel-miscellaneous.dtx: change: some + more options changed to use keyval r296 2006-08-21 12:16:03 +0200 mjk: - * scrktitl.dtx: fix: \maketitle sets \parskip etc. + * scrkernel-title.dtx: fix: \maketitle sets \parskip etc. r295 2006-08-20 12:10:53 +0200 mjk: - * scrkbase.dtx: fix: \ProcessOptions added + * scrkernel-basics.dtx: fix: \ProcessOptions added r294 2006-08-20 12:05:29 +0200 mjk: - * scrkbase.dtx: new: \AfterKOMAoptions + * scrkernel-basics.dtx: new: \AfterKOMAoptions r293 2006-08-20 12:03:59 +0200 mjk: - * scrkfont.dtx: fix: change entries + * scrkernel-fonts.dtx: fix: change entries r292 2006-08-20 12:03:01 +0200 mjk: - * scrktare.dtx: fix: typos at change entries + * scrkernel-typearea.dtx: fix: typos at change entries r291 2006-08-20 10:27:41 +0200 mjk: - * scrkbase.dtx: fix: preserve \CurrentOption from being destroyed by - xkeyval`s \setkeys + * scrkernel-basics.dtx: fix: preserve \CurrentOption from being + destroyed by xkeyval`s \setkeys r290 2006-08-18 17:05:25 +0200 mjk: - * scrktare.dtx: changed: \ProcessOptions* instead of \ProcessOptions + * scrkernel-typearea.dtx: changed: \ProcessOptions* instead of + \ProcessOptions r289 2006-08-18 17:03:14 +0200 mjk: - * scrkbase.dtx: fix: \DeclareKeyValOption works if xkeyval was loaded; - unused macros removed + * scrkernel-basics.dtx: fix: \DeclareKeyValOption works if xkeyval was + loaded; unused macros removed r288 2006-08-18 10:46:42 +0200 mjk: - * scrkfont.dtx: Fix: \usekomafont of an alias element + * scrkernel-fonts.dtx: Fix: \usekomafont of an alias element r287 2006-08-12 09:34:36 +0200 mjk: @@ -4750,21 +6467,22 @@ r287 2006-08-12 09:34:36 +0200 mjk: r286 2006-08-12 09:33:28 +0200 mjk: - * scrkvers.dtx: Version with new features not only bug fixes + * scrkernel-version.dtx: Version with new features not only bug fixes r285 2006-08-12 09:31:59 +0200 mjk: - * scrkfont.dtx, scrktare.dtx: every font size may be set up + * scrkernel-fonts.dtx, scrkernel-typearea.dtx: every font size may be + set up r284 2006-08-12 09:25:46 +0200 mjk: - * scrkbase.dtx, scrkcomp.dtx: internal use of \scr@ifundefined instead - of \ifundefined + * scrkernel-compatibility.dtx, scrkernel-basics.dtx: internal use of + \scr@ifundefined instead of \ifundefined r283 2006-08-11 12:37:15 +0200 mjk: - * scrkpage.dtx: Fix: arguments of \PassOptionsToPackage exchanged at - headinclude and footinclude + * scrkernel-pagestyles.dtx: Fix: arguments of \PassOptionsToPackage + exchanged at headinclude and footinclude r274 2006-08-09 08:50:14 +0200 mjk: @@ -4772,7 +6490,8 @@ r274 2006-08-09 08:50:14 +0200 mjk: r272 2006-08-03 12:16:01 +0200 mjk: - * scrkpar.dtx: fix: set \parsep at \@list@extra instead of \parskip + * scrkernel-paragraphs.dtx: fix: set \parsep at \@list@extra instead + of \parskip r271 2006-08-02 09:44:51 +0200 mjk: @@ -4780,9 +6499,9 @@ r271 2006-08-02 09:44:51 +0200 mjk: r270 2006-08-02 09:43:15 +0200 mjk: - * scrknpap.dtx: new: option backaddress has two new values: underlines - (default) to underline the back sending address, plain to set the - back sending address plain + * scrkernel-notepaper.dtx: new: option backaddress has two new values: + underlines (default) to underline the back sending address, plain to + set the back sending address plain r269 2006-08-02 09:36:18 +0200 mjk: @@ -4794,7 +6513,7 @@ r268 2006-08-02 09:35:29 +0200 mjk: r267 2006-07-30 11:39:17 +0200 mjk: - * scrkvers.dtx: 2.95c BETA + * scrkernel-version.dtx: 2.95c BETA r266 2006-07-30 11:38:37 +0200 mjk: @@ -4802,26 +6521,26 @@ r266 2006-07-30 11:38:37 +0200 mjk: r265 2006-07-30 11:19:37 +0200 mjk: - * scrkvers.dtx: prepared for new release v2.95b + * scrkernel-version.dtx: prepared for new release v2.95b r264 2006-07-30 11:17:26 +0200 mjk: - * scrksect.dtx: replaces sectioning by new term disposition; + * scrkernel-sections.dtx: replaces sectioning by new term disposition; sectioning is a font alias for disposition, now r263 2006-07-30 11:15:44 +0200 mjk: - * scrkfont.dtx: Breaking of some messages improved + * scrkernel-fonts.dtx: Breaking of some messages improved r262 2006-07-28 18:10:07 +0200 mjk: - * scrkmisc.dtx: \ifthispageodd fixed, it uses basics of the LaTeX - label mechanism now, so ``run again'' detection of several TeX - shells should work + * scrkernel-miscellaneous.dtx: \ifthispageodd fixed, it uses basics of + the LaTeX label mechanism now, so ``run again'' detection of several + TeX shells should work r261 2006-07-22 07:53:58 +0200 mjk: - * scrkvers.dtx: new BETA + * scrkernel-version.dtx: new BETA r260 2006-07-22 07:53:28 +0200 mjk: @@ -4829,31 +6548,32 @@ r260 2006-07-22 07:53:28 +0200 mjk: r259 2006-07-22 07:46:10 +0200 mjk: - * scrkvers.dtx: v2.95a + * scrkernel-version.dtx: v2.95a r258 2006-07-22 07:42:14 +0200 mjk: - * scrkliof.dtx: switching off options tocleft or listsleft will not - longer result in an error + * scrkernel-listsof.dtx: switching off options tocleft or listsleft + will not longer result in an error r257 2006-07-22 07:41:17 +0200 mjk: - * scrksect.dtx: new: \partheadstartvskip, \partheadmidvskip, + * scrkernel-sections.dtx: new: \partheadstartvskip, \partheadmidvskip, \partheadendvskip, \raggedpart r256 2006-07-20 09:46:55 +0200 mjk: - * scrklist.dtx: \@listdepth at addmargin fixed + * scrkernel-listsandtabulars.dtx: \@listdepth at addmargin fixed r255 2006-07-20 09:46:11 +0200 mjk: - * scrktare.dtx: \normalsize to \typearea added; expressions for big - font sizes improved + * scrkernel-typearea.dtx: \normalsize to \typearea added; expressions + for big font sizes improved r254 2006-07-13 10:36:46 +0200 mjk: - * scrkfloa.dtx: fix: vertical alignment of multi line captions same - like single line caption does not longer depend on (x)color package + * scrkernel-floats.dtx: fix: vertical alignment of multi line captions + same like single line caption does not longer depend on (x)color + package r253 2006-07-13 10:35:15 +0200 mjk: @@ -4870,7 +6590,7 @@ r251 2006-07-06 15:14:55 +0200 mjk: r248 2006-07-05 10:16:16 +0200 mjk: - * scrkvers.dtx: next beta + * scrkernel-version.dtx: next beta r247 2006-07-05 10:15:02 +0200 mjk: @@ -4886,7 +6606,7 @@ r243 2006-07-05 09:39:06 +0200 mjk: r241 2006-07-05 09:08:45 +0200 mjk: - * scrkvers.dtx: Release: 2006/07/05 v2.95 KOMA-Script + * scrkernel-version.dtx: Release: 2006/07/05 v2.95 KOMA-Script r240 2006-07-05 09:07:03 +0200 mjk: @@ -4894,7 +6614,8 @@ r240 2006-07-05 09:07:03 +0200 mjk: r239 2006-07-04 18:15:00 +0200 mjk: - * scrksect.dtx: at \appendix replaced \newcommand* by \cs{gdef} + * scrkernel-sections.dtx: at \appendix replaced \newcommand* by + \cs{gdef} r238 2006-07-04 09:43:32 +0200 mjk: @@ -4903,7 +6624,8 @@ r238 2006-07-04 09:43:32 +0200 mjk: r237 2006-07-03 10:05:49 +0200 mjk: - * scrkfloa.dtx: unused assignment at \@@makecaption removed [Moss] + * scrkernel-floats.dtx: unused assignment at \@@makecaption removed + [Moss] r236 2006-07-01 09:21:32 +0200 mjk: @@ -4977,7 +6699,7 @@ r221 2006-06-27 09:42:10 +0200 mjk: r220 2006-06-20 09:19:08 +0200 mjk: - * scrkvers.dtx: ready for 2.95 RC3 + * scrkernel-version.dtx: ready for 2.95 RC3 r219 2006-06-14 10:34:22 +0200 mjk: @@ -5005,23 +6727,24 @@ r212 2006-06-07 13:04:01 +0200 mjk: r211 2006-06-07 12:57:14 +0200 mjk: - * scrkvers.dtx: Ready for release 2.95 RC2 + * scrkernel-version.dtx: Ready for release 2.95 RC2 r210 2006-06-06 10:39:42 +0200 mjk: - * scrknpap.dtx: fix: foldmarks should not depenand on type area + * scrkernel-notepaper.dtx: fix: foldmarks should not depenand on type + area r209 2006-06-02 12:10:07 +0200 mjk: - * scrkfont.dtx: \l@addto@macro improved + * scrkernel-fonts.dtx: \l@addto@macro improved r208 2006-06-01 13:32:57 +0200 mjk: - * scrklang.dtx: fix: Define \today default at all classes + * scrkernel-language.dtx: fix: Define \today default at all classes r207 2006-06-01 10:54:36 +0200 mjk: - * scrkvers.dtx: Beta on the way to RC2 + * scrkernel-version.dtx: Beta on the way to RC2 r206 2006-06-01 10:52:07 +0200 mjk: @@ -5037,16 +6760,17 @@ r203 2006-05-31 09:32:40 +0200 mjk: r202 2006-05-31 09:30:52 +0200 mjk: - * scrkvers.dtx, Makefile, README: Almost ready for release 2.95 RC1 + * scrkernel-version.dtx, README, Makefile: Almost ready for release + 2.95 RC1 r200 2006-05-27 08:22:36 +0200 mjk: - * Makefile, README, INSTALLD.txt, INSTALL.txt: release candidate 1 + * INSTALLD.txt, README, Makefile, INSTALL.txt: release candidate 1 r199 2006-05-10 14:13:39 +0200 mjk: - * doc/, doc/german/, doc/german/guide-ngerman.tex, doc/english/, - doc/english/guide-english.tex: Licence note fixed + * doc/, doc/english/, doc/english/guide-english.tex, doc/german/, + doc/german/guide-ngerman.tex: Licence note fixed r198 2006-05-10 12:56:11 +0200 mjk: @@ -5059,11 +6783,11 @@ r197 2006-05-10 12:42:44 +0200 mjk: r196 2006-05-04 09:25:36 +0200 mjk: - * scrknpap.dtx: KOMA key pagenumber fixed [Henk Jongbloets] + * scrkernel-notepaper.dtx: KOMA key pagenumber fixed [Henk Jongbloets] r195 2006-05-03 16:11:07 +0200 mjk: - * Makefile, manifest.txt, komabug.tex: komabug.tex added + * Makefile, komabug.tex, manifest.txt: komabug.tex added r194 2006-05-02 10:19:59 +0200 mjk: @@ -5098,37 +6822,39 @@ r188 2006-04-24 11:04:42 +0200 mjk: r187 2006-04-21 10:13:43 +0200 mjk: - * scrkfont.dtx: \newkomafont fixed (define \scr@fnt@ not - longer as \csname @font\endcsname but at \@font) + * scrkernel-fonts.dtx: \newkomafont fixed (define \scr@fnt@ + not longer as \csname @font\endcsname but at + \@font) r186 2006-04-20 14:09:24 +0200 mjk: - * scrkfont.dtx: \setkomafont fixed + * scrkernel-fonts.dtx: \setkomafont fixed r185 2006-04-20 10:41:12 +0200 mjk: - * scrkvers.dtx: new date of beta release + * scrkernel-version.dtx: new date of beta release r184 2006-04-20 08:09:46 +0200 mjk: - * scrksect.dtx: \@@makechapterhead fixed: brace moved + * scrkernel-sections.dtx: \@@makechapterhead fixed: brace moved r183 2006-04-14 15:40:32 +0200 mjk: - * scrkpar.dtx: work around for everysel added + * scrkernel-paragraphs.dtx: work around for everysel added r182 2006-04-14 12:36:58 +0200 mjk: - * scrknpap.dtx: option "subject" fixed: old garbage code removed + * scrkernel-notepaper.dtx: option "subject" fixed: old garbage code + removed r181 2006-04-11 11:18:24 +0200 mjk: - * Makefile.baseinit, doc/, doc/Makefile.guide, doc/Makefile: + * Makefile.baseinit, doc/, doc/Makefile, doc/Makefile.guide: installation using links r180 2006-04-10 12:04:55 +0200 mjk: - * README, TODO: README changed + * TODO, README: README changed r179 2006-04-08 12:01:51 +0200 mjk: @@ -5140,7 +6866,7 @@ r178 2006-04-08 12:01:25 +0200 mjk: r177 2006-04-08 11:44:09 +0200 mjk: - * scrstrip.inc, manifest.txt, TODO: manifest test added + * scrstrip.inc, TODO, manifest.txt: manifest test added r176 2006-03-31 14:09:18 +0200 mjk: @@ -5153,8 +6879,8 @@ r175 2006-03-31 13:56:27 +0200 mjk: r174 2006-03-31 11:06:56 +0200 mjk: - * TODO, scrkcomp.dtx: \@setif implemented iff option version was set - to a value less than 2.95 + * scrkernel-compatibility.dtx, TODO: \@setif implemented iff option + version was set to a value less than 2.95 r173 2006-03-30 18:51:43 +0200 mjk: @@ -5164,17 +6890,13 @@ r172 2006-03-30 18:35:59 +0200 mjk: * INSTALLD.txt: Deutsche Installationsanleitung -r171 2006-03-30 16:38:07 +0200 mjk: - - * scrtime.ins: preamble fixed - r170 2006-03-30 16:25:37 +0200 mjk: * manifest.txt: scrtime added r169 2006-03-30 16:24:27 +0200 mjk: - * scrmain.ins, Makefile, scrtime.dtx, scrtime.ins: scrtime added + * scrtime.dtx, Makefile, scrmain.ins: scrtime added r168 2006-03-30 13:04:36 +0200 mjk: @@ -5190,14 +6912,14 @@ r166 2006-03-30 12:08:16 +0200 mjk: r165 2006-03-30 12:04:05 +0200 mjk: - * Makefile, Makefile.baseinit: rules dist-, install-, uninstall-, and + * Makefile.baseinit, Makefile: rules dist-, install-, uninstall-, and bindist-rules updated r164 2006-03-30 12:02:08 +0200 mjk: - * Makefile, Makefile.baseinit, doc/, doc/Makefile.guide, - doc/Makefile: rules dist-, install-, uninstall-, and bindist-rules - updated + * Makefile.baseinit, Makefile, doc/, doc/Makefile, + doc/Makefile.guide: rules dist-, install-, uninstall-, and + bindist-rules updated r163 2006-03-30 10:19:06 +0200 mjk: @@ -5209,7 +6931,7 @@ r162 2006-03-29 11:12:47 +0200 mjk: r161 2006-03-29 11:10:52 +0200 mjk: - * scrkbase.dtx: undefine \ifpdftex before loading pdfcprot and + * scrkernel-basics.dtx: undefine \ifpdftex before loading pdfcprot and redefine after loading pdfcprot r160 2006-03-29 11:09:45 +0200 mjk: @@ -5218,36 +6940,40 @@ r160 2006-03-29 11:09:45 +0200 mjk: r159 2006-03-29 10:26:53 +0200 mjk: - * scrsource.tex, scrksect.dtx, scrbeta.dtx, scrmain.ins, - scrkfont.dtx, scrkxflo.dtx, scrkbase.dtx, scrktitl.dtx, scrkpage.dtx, - scrkvers.dtx, scrkfloa.dtx, Makefile.baserules, scrkpar.dtx, - scrkliof.dtx, Makefile, scrstrip.inc, manifest.txt, scrstrop.inc, - scrlfile.ins, scrklist.dtx, scrlfile.dtx, scrklang.dtx, scrkidx.dtx, - scrlogo.dtx, scrkftn.dtx, Makefile.baseinit, scrdoc.dtx, - scrktare.dtx, scrkmisc.dtx, scrkbib.dtx, scraddr.dtx, scrkplen.dtx, - scrpage.dtx, scraddr.ins, scrpage.ins, scrklco.dtx, scrkcomp.dtx, - scrlettr.dtx, scrknpap.dtx, scrlettr.ins, scrkvars.dtx, scrkcile.dtx, - doc/, doc/Makefile.guide, doc/plength.dtx, doc/scrguide.cls, - doc/guide.tex, doc/scrguide.gst, doc/Makefile, doc/bin/, - doc/bin/genindex.pl, doc/bin/genhtmlidx.pl, doc/german/, - doc/german/guide-ngerman.tex, doc/german/introduction.tex, - doc/german/scrdatetime.tex, doc/german/scraddr.tex, - doc/german/scrlfile.tex, doc/german/Makefile, - doc/german/scrbookreportarticle.tex, doc/german/scrpage2.tex, - doc/german/typearea.tex, doc/german/scrlttr2.tex, - doc/german/adrconvnote.tex, doc/german/htmlsetup, doc/english/, - doc/english/Makefile, doc/english/htmlsetup, - doc/english/guide-english.tex, doc/english/introduction.tex, - doc/english/typearea.tex, doc/english/scrdatetime.tex, - doc/english/scrpage2.tex, doc/english/scrlfile.tex, - doc/english/scraddr.tex, doc/english/scrlttr2.tex, - doc/english/adrconvnote.tex, doc/english/scrbookreportarticle.tex: fix - of initial comment + * scrkernel-sections.dtx, scrpage.dtx, scrsource.tex, + scrkernel-index.dtx, scrdoc.dtx, scrkernel-bibliography.dtx, + scrkernel-version.dtx, scrlogo.dtx, scrstrip.inc, + scrkernel-compatibility.dtx, scraddr.dtx, + scrkernel-pseudolengths.dtx, scrkernel-pagestyles.dtx, + scrkernel-letterclassoptions.dtx, scrkernel-circularletters.dtx, + scrkernel-fonts.dtx, scrbeta.dtx, scrkernel-listsandtabulars.dtx, + Makefile.baseinit, scrkernel-footnotes.dtx, Makefile, scrmain.ins, + Makefile.baserules, scrkernel-listsof.dtx, scrlfile.dtx, + scrkernel-paragraphs.dtx, scrkxflo.dtx, scrkernel-language.dtx, + scrkernel-notepaper.dtx, scrkernel-miscellaneous.dtx, + scrkernel-variables.dtx, manifest.txt, scrstrop.inc, + scrkernel-floats.dtx, scrkernel-typearea.dtx, scrkernel-basics.dtx, + scrkernel-title.dtx, obsolete/scrlettr.dtx, obsolete/scrlettr.ins, + doc/, doc/plength.dtx, doc/guide.tex, doc/Makefile, doc/scrguide.cls, + doc/Makefile.guide, doc/scrguide.gst, doc/english/, + doc/english/scrlfile.tex, doc/english/scrlttr2.tex, + doc/english/htmlsetup, doc/english/scrbookreportarticle.tex, + doc/english/adrconvnote.tex, doc/english/scrdatetime.tex, + doc/english/introduction.tex, doc/english/Makefile, + doc/english/typearea.tex, doc/english/scraddr.tex, + doc/english/guide-english.tex, doc/english/scrpage2.tex, doc/german/, + doc/german/scrlfile.tex, doc/german/scrlttr2.tex, + doc/german/htmlsetup, doc/german/scrbookreportarticle.tex, + doc/german/adrconvnote.tex, doc/german/scrdatetime.tex, + doc/german/introduction.tex, doc/german/guide-ngerman.tex, + doc/german/Makefile, doc/german/typearea.tex, doc/german/scraddr.tex, + doc/german/scrpage2.tex, doc/bin/, doc/bin/genhtmlidx.pl, + doc/bin/genindex.pl: fix of initial comment r158 2006-03-29 10:12:51 +0200 mjk: - * scrmain.ins, Makefile, scrlettr.dtx, scrlettr.ins: obsolete scrlettr - added + * Makefile, scrmain.ins, obsolete/scrlettr.dtx, + obsolete/scrlettr.ins: obsolete scrlettr added r157 2006-03-29 09:42:59 +0200 mjk: @@ -5255,25 +6981,26 @@ r157 2006-03-29 09:42:59 +0200 mjk: r156 2006-03-29 09:41:30 +0200 mjk: - * scrmain.ins, scrpage.dtx, scrpage.ins: scrpage/scrpage2 added + * scrpage.dtx, scrmain.ins: scrpage/scrpage2 added r155 2006-03-29 09:39:57 +0200 mjk: * scrbeta.dtx: distringuish scrpage and scrpage2 -r154 2006-03-29 09:14:56 +0200 mjk: - - * scraddr.ins: \idocfiles fixed - r153 2006-03-28 09:30:06 +0200 mjk: - * scrksect.dtx, scrbeta.dtx, scrkfont.dtx, scrkxflo.dtx, - scrkbase.dtx, scrktitl.dtx, scrkpage.dtx, scrkvers.dtx, scrkfloa.dtx, - scrkpar.dtx, scrkliof.dtx, scrklist.dtx, scrlfile.dtx, scrklang.dtx, - scrkidx.dtx, scrlogo.dtx, scrkftn.dtx, scrktare.dtx, scrkmisc.dtx, - scrkbib.dtx, scraddr.dtx, scrkplen.dtx, scrklco.dtx, scrkcomp.dtx, - scrknpap.dtx, scrkvars.dtx, scrkcile.dtx: character table test - activated + * scrkernel-sections.dtx, scrkernel-index.dtx, + scrkernel-bibliography.dtx, scrkernel-version.dtx, scrlogo.dtx, + scrkernel-compatibility.dtx, scraddr.dtx, + scrkernel-pseudolengths.dtx, scrkernel-pagestyles.dtx, + scrkernel-letterclassoptions.dtx, scrkernel-circularletters.dtx, + scrkernel-fonts.dtx, scrbeta.dtx, scrkernel-listsandtabulars.dtx, + scrkernel-footnotes.dtx, scrkernel-listsof.dtx, scrlfile.dtx, + scrkernel-paragraphs.dtx, scrkxflo.dtx, scrkernel-language.dtx, + scrkernel-notepaper.dtx, scrkernel-miscellaneous.dtx, + scrkernel-variables.dtx, scrkernel-floats.dtx, + scrkernel-typearea.dtx, scrkernel-basics.dtx, scrkernel-title.dtx: + character table test activated r152 2006-03-28 09:13:39 +0200 mjk: @@ -5285,12 +7012,12 @@ r151 2006-03-28 08:59:06 +0200 mjk: r150 2006-03-27 12:17:35 +0200 mjk: - * scrkbase.dtx, scrktare.dtx: some commands moved from scrktare to - scrkbase and fixed + * scrkernel-typearea.dtx, scrkernel-basics.dtx: some commands moved + from scrktare to scrkbase and fixed r149 2006-03-27 09:57:45 +0200 mjk: - * scrmain.ins, Makefile, scraddr.dtx, scraddr.ins: scraddr added + * scraddr.dtx, Makefile, scrmain.ins: scraddr added r148 2006-03-25 10:42:41 +0100 mjk: @@ -5298,24 +7025,30 @@ r148 2006-03-25 10:42:41 +0100 mjk: r147 2006-03-25 10:32:59 +0100 mjk: - * scrksect.dtx, scrkfont.dtx, scrkxflo.dtx, scrkbase.dtx, - scrktitl.dtx, scrkpage.dtx, scrkvers.dtx, scrkfloa.dtx, scrkpar.dtx, - scrkliof.dtx, scrklist.dtx, scrlfile.dtx, scrklang.dtx, scrkidx.dtx, - scrlogo.dtx, scrkftn.dtx, scrktare.dtx, scrkmisc.dtx, scrkbib.dtx, - scrkplen.dtx, scrklco.dtx, scrkcomp.dtx, scrknpap.dtx, scrkvars.dtx, - scrkcile.dtx: Version number set to 2.95 + * scrkernel-sections.dtx, scrkernel-index.dtx, + scrkernel-bibliography.dtx, scrkernel-version.dtx, scrlogo.dtx, + scrkernel-compatibility.dtx, scrkernel-pseudolengths.dtx, + scrkernel-pagestyles.dtx, scrkernel-letterclassoptions.dtx, + scrkernel-circularletters.dtx, scrkernel-fonts.dtx, + scrkernel-listsandtabulars.dtx, scrkernel-footnotes.dtx, + scrkernel-listsof.dtx, scrlfile.dtx, scrkernel-paragraphs.dtx, + scrkxflo.dtx, scrkernel-language.dtx, scrkernel-notepaper.dtx, + scrkernel-miscellaneous.dtx, scrkernel-variables.dtx, + scrkernel-floats.dtx, scrkernel-typearea.dtx, scrkernel-basics.dtx, + scrkernel-title.dtx: Version number set to 2.95 r146 2006-03-25 08:49:38 +0100 mjk: - * scrklco.dtx: fix: Define \LCOWarning(NoLine) using \providecommand + * scrkernel-letterclassoptions.dtx: fix: Define \LCOWarning(NoLine) + using \providecommand r145 2006-03-25 08:48:42 +0100 mjk: - * scrklang.dtx: \dateenglish defined if undefined + * scrkernel-language.dtx: \dateenglish defined if undefined r144 2006-03-24 13:00:38 +0100 mjk: - * scrkvers.dtx: version date changed + * scrkernel-version.dtx: version date changed r143 2006-03-24 12:59:55 +0100 mjk: @@ -5323,11 +7056,11 @@ r143 2006-03-24 12:59:55 +0100 mjk: r142 2006-03-24 12:58:50 +0100 mjk: - * scrknpap.dtx: lco part with lco and KOMAold switch + * scrkernel-notepaper.dtx: lco part with lco and KOMAold switch r141 2006-03-24 12:58:16 +0100 mjk: - * scrklco.dtx: \LCOWarningNoLine and \LCOWarning + * scrkernel-letterclassoptions.dtx: \LCOWarningNoLine and \LCOWarning r140 2006-03-24 12:57:44 +0100 mjk: @@ -5335,7 +7068,7 @@ r140 2006-03-24 12:57:44 +0100 mjk: r138 2006-03-24 11:23:38 +0100 mjk: - * scrkfont.dtx: fixed: too many \expandafters at \setkomafont + * scrkernel-fonts.dtx: fixed: too many \expandafters at \setkomafont r137 2006-03-24 11:14:23 +0100 mjk: @@ -5343,7 +7076,7 @@ r137 2006-03-24 11:14:23 +0100 mjk: r135 2006-03-23 12:11:28 +0100 mjk: - * scrkcomp.dtx: version 2.95 added + * scrkernel-compatibility.dtx: version 2.95 added r134 2006-03-23 12:07:59 +0100 mjk: @@ -5359,35 +7092,35 @@ r132 2006-03-23 12:03:58 +0100 mjk: r131 2006-03-23 12:03:05 +0100 mjk: - * scrkvars.dtx: koma variables + * scrkernel-variables.dtx: koma variables r130 2006-03-23 12:02:34 +0100 mjk: - * scrkplen.dtx: pseudo length + * scrkernel-pseudolengths.dtx: pseudo length r129 2006-03-23 12:02:03 +0100 mjk: - * scrklco.dtx: lco part of scrlltr2 + * scrkernel-letterclassoptions.dtx: lco part of scrlltr2 r128 2006-03-23 12:01:39 +0100 mjk: - * scrkcile.dtx: circular letter part + * scrkernel-circularletters.dtx: circular letter part r127 2006-03-23 12:01:14 +0100 mjk: - * scrkvers.dtx: scrlttr2 name fixed + * scrkernel-version.dtx: scrlttr2 name fixed r126 2006-03-23 12:00:49 +0100 mjk: - * scrkpar.dtx: trace log fixed + * scrkernel-paragraphs.dtx: trace log fixed r125 2006-03-23 12:00:21 +0100 mjk: - * scrkmisc.dtx: Default parskip=false added + * scrkernel-miscellaneous.dtx: Default parskip=false added r124 2006-03-23 11:59:08 +0100 mjk: - * scrknpap.dtx: note paper and letter environment + * scrkernel-notepaper.dtx: note paper and letter environment r123 2006-03-23 11:58:00 +0100 mjk: @@ -5395,38 +7128,44 @@ r123 2006-03-23 11:58:00 +0100 mjk: r122 2006-03-23 10:17:35 +0100 mjk: - * scrkfont.dtx: letter class uses default font size of 12 pt + * scrkernel-fonts.dtx: letter class uses default font size of 12 pt r121 2006-03-22 15:16:40 +0100 mjk: - * scrkpage.dtx: Use of \aliaskomafont + * scrkernel-pagestyles.dtx: Use of \aliaskomafont r120 2006-03-22 15:11:54 +0100 mjk: - * scrkfont.dtx: font aliases will produce infos not warnings or errors + * scrkernel-fonts.dtx: font aliases will produce infos not warnings or + errors r119 2006-03-22 14:47:25 +0100 mjk: - * scrkfont.dtx: Fix: \aliadkomafont --> \aliaskomafont + * scrkernel-fonts.dtx: Fix: \aliadkomafont --> \aliaskomafont r118 2006-03-22 14:35:11 +0100 mjk: - * scrksect.dtx: Use of \aliaskomafont + * scrkernel-sections.dtx: Use of \aliaskomafont r117 2006-03-22 14:31:50 +0100 mjk: - * scrkmisc.dtx: Use of \newkomafont + * scrkernel-miscellaneous.dtx: Use of \newkomafont r116 2006-03-22 11:00:30 +0100 mjk: - * scrkmisc.dtx: Call of \DeclareKeyValOption extended for scrlttr2 + * scrkernel-miscellaneous.dtx: Call of \DeclareKeyValOption extended + for scrlttr2 r115 2006-03-22 09:27:23 +0100 mjk: - * scrksect.dtx, scrkfont.dtx, scrkxflo.dtx, scrkbase.dtx, - scrktitl.dtx, scrkpage.dtx, scrkvers.dtx, scrkfloa.dtx, scrkpar.dtx, - scrkliof.dtx, scrklist.dtx, scrklang.dtx, scrkidx.dtx, scrlogo.dtx, - scrkftn.dtx, scrktare.dtx, scrkmisc.dtx, scrkbib.dtx, scrkcomp.dtx: + * scrkernel-sections.dtx, scrkernel-index.dtx, + scrkernel-bibliography.dtx, scrkernel-version.dtx, scrlogo.dtx, + scrkernel-compatibility.dtx, scrkernel-pagestyles.dtx, + scrkernel-fonts.dtx, scrkernel-listsandtabulars.dtx, + scrkernel-footnotes.dtx, scrkernel-listsof.dtx, + scrkernel-paragraphs.dtx, scrkxflo.dtx, scrkernel-language.dtx, + scrkernel-miscellaneous.dtx, scrkernel-floats.dtx, + scrkernel-typearea.dtx, scrkernel-basics.dtx, scrkernel-title.dtx: german --> ngerman r113 2006-03-22 09:24:57 +0100 mjk: @@ -5439,16 +7178,16 @@ r112 2006-03-22 09:22:13 +0100 mjk: r111 2006-03-20 10:59:13 +0100 mjk: - * scrklang.dtx: numerical date and language definitions for letters - added + * scrkernel-language.dtx: numerical date and language definitions for + letters added r110 2006-03-16 15:37:57 +0100 mjk: - * scrkcomp.dtx: New part to set up compatibility + * scrkernel-compatibility.dtx: New part to set up compatibility r109 2006-03-16 15:27:24 +0100 mjk: - * scrkpage.dtx: brace error at pagestyle plain fixed + * scrkernel-pagestyles.dtx: brace error at pagestyle plain fixed r107 2006-03-15 17:12:10 +0100 mjk: @@ -5472,95 +7211,96 @@ r103 2006-03-15 15:14:13 +0100 mjk: r102 2006-03-15 14:32:28 +0100 mjk: - * scrklist.dtx: scrlttr2 integration + * scrkernel-listsandtabulars.dtx: scrlttr2 integration r101 2006-03-15 14:29:11 +0100 mjk: - * scrkidx.dtx: scrlttr2 integration + * scrkernel-index.dtx: scrlttr2 integration r100 2006-03-15 14:27:49 +0100 mjk: - * scrkbib.dtx: scrlttr2 integration + * scrkernel-bibliography.dtx: scrlttr2 integration r99 2006-03-15 14:25:35 +0100 mjk: - * scrkliof.dtx: scrlttr2 integrated + * scrkernel-listsof.dtx: scrlttr2 integrated r98 2006-03-15 14:23:58 +0100 mjk: - * scrksect.dtx: scrlttr2 integration + * scrkernel-sections.dtx: scrlttr2 integration r97 2006-03-15 14:21:07 +0100 mjk: - * scrktitl.dtx: scrlttr2 integration + * scrkernel-title.dtx: scrlttr2 integration r96 2006-03-15 14:17:34 +0100 mjk: - * scrkpar.dtx: scrlttr2 integration + * scrkernel-paragraphs.dtx: scrlttr2 integration r95 2006-03-15 12:51:02 +0100 mjk: - * scrkpage.dtx: scrlttr2 integration + * scrkernel-pagestyles.dtx: scrlttr2 integration r94 2006-03-15 12:14:00 +0100 mjk: - * scrkftn.dtx: auctex mode doctex + * scrkernel-footnotes.dtx: auctex mode doctex r93 2006-03-15 12:10:49 +0100 mjk: - * scrkfloa.dtx: scrlttr2 integration + * scrkernel-floats.dtx: scrlttr2 integration r92 2006-03-15 11:22:48 +0100 mjk: - * scrktare.dtx: Option paper has no default value + * scrkernel-typearea.dtx: Option paper has no default value r91 2006-03-15 10:59:11 +0100 mjk: - * scrkmisc.dtx: scrlttr2 integration + * scrkernel-miscellaneous.dtx: scrlttr2 integration r90 2006-03-14 14:34:28 +0100 mjk: - * scrkbase.dtx: AucTeX mode: doctex + * scrkernel-basics.dtx: AucTeX mode: doctex r89 2006-03-14 14:33:10 +0100 mjk: - * scrkvers.dtx: scrlttr2 added + * scrkernel-version.dtx: scrlttr2 added r88 2006-03-13 14:16:37 +0100 mjk: - * scrkfont.dtx: file date fixed + * scrkernel-fonts.dtx: file date fixed r87 2006-03-13 14:14:32 +0100 mjk: - * scrkfont.dtx: Option fontsize= implemented + * scrkernel-fonts.dtx: Option fontsize= implemented r86 2006-03-13 13:52:01 +0100 mjk: - * scrkfont.dtx, scrktare.dtx: \@pt@scan moved from scrktare.dtx to - scrkfont.dtx + * scrkernel-fonts.dtx, scrkernel-typearea.dtx: \@pt@scan moved from + scrktare.dtx to scrkfont.dtx r84 2006-03-12 12:26:33 +0100 mjk: - * scrkpar.dtx: parskip=relative and parskip=absolute fixed + * scrkernel-paragraphs.dtx: parskip=relative and parskip=absolute + fixed r81 2006-03-11 09:10:40 +0100 mjk: - * scrkpar.dtx: parskip Optionen auf keyval umgestellt, neue Werte - "relative" und "absolute" + * scrkernel-paragraphs.dtx: parskip Optionen auf keyval umgestellt, + neue Werte "relative" und "absolute" r80 2006-03-10 13:07:47 +0100 mjk: - * scrktitl.dtx: Halbenglischen Ausdruck "in-page Titel" durch + * scrkernel-title.dtx: Halbenglischen Ausdruck "in-page Titel" durch "Titelkopf" ersetzt. r79 2006-03-10 13:01:07 +0100 mjk: - * scrkpar.dtx: Planung angegeben + * scrkernel-paragraphs.dtx: Planung angegeben r78 2006-03-10 12:35:26 +0100 mjk: - * scrklang.dtx: catcodes at definition ot \languagename should not - longer matter + * scrkernel-language.dtx: catcodes at definition ot \languagename + should not longer matter r74 2006-03-08 15:03:23 +0100 mjk: @@ -5568,29 +7308,31 @@ r74 2006-03-08 15:03:23 +0100 mjk: r72 2006-03-08 10:59:49 +0100 mjk: - * scrsource.tex, scrksect.dtx, scrbeta.dtx, scrmain.ins, - scrkfont.dtx, scrkxflo.dtx, scrkbase.dtx, scrktitl.dtx, scrkpage.dtx, - scrkvers.dtx, scrkfloa.dtx, Makefile.baserules, scrkpar.dtx, - scrkliof.dtx, Makefile, scrstrip.inc, scrstrop.inc, scrlfile.ins, - scrklist.dtx, scrlfile.dtx, scrklang.dtx, scrkidx.dtx, scrlogo.dtx, - scrkftn.dtx, Makefile.baseinit, scrdoc.dtx, scrktare.dtx, - scrkmisc.dtx, scrkbib.dtx, doc/, doc/Makefile.guide, doc/plength.dtx, - doc/scrguide.cls, doc/guide.tex, doc/scrguide.gst, doc/Makefile, - doc/bin/, doc/bin/genindex.pl, doc/bin/genhtmlidx.pl, doc/german/, - doc/german/guide-ngerman.tex, doc/german/introduction.tex, - doc/german/scrdatetime.tex, doc/german/scraddr.tex, - doc/german/scrlfile.tex, doc/german/Makefile, - doc/german/scrbookreportarticle.tex, doc/german/scrpage2.tex, - doc/german/typearea.tex, doc/german/scrlttr2.tex, - doc/german/adrconvnote.tex, doc/german/htmlsetup, doc/english/, - doc/english/Makefile, doc/english/htmlsetup, - doc/english/guide-english.tex, doc/english/introduction.tex, - doc/english/typearea.tex, doc/english/scrdatetime.tex, - doc/english/scrpage2.tex, doc/english/scrlfile.tex, - doc/english/scraddr.tex, doc/english/scrlttr2.tex, - doc/english/adrconvnote.tex, doc/english/scrbookreportarticle.tex: - scrksect.dtx scrbeta.dtx scrmain.ins scrkfont.dtx scrkxflo.dtx - scrkbase.dtx scrktitl.dtx scrkpage.dtx scrkvers.dtx + * scrkernel-sections.dtx, scrsource.tex, scrkernel-index.dtx, + scrdoc.dtx, scrkernel-bibliography.dtx, scrkernel-version.dtx, + scrlogo.dtx, scrstrip.inc, scrkernel-pagestyles.dtx, + scrkernel-fonts.dtx, scrbeta.dtx, scrkernel-listsandtabulars.dtx, + Makefile.baseinit, scrkernel-footnotes.dtx, Makefile, scrmain.ins, + Makefile.baserules, scrkernel-listsof.dtx, scrlfile.dtx, + scrkernel-paragraphs.dtx, scrkxflo.dtx, scrkernel-language.dtx, + scrkernel-miscellaneous.dtx, scrstrop.inc, scrkernel-floats.dtx, + scrkernel-typearea.dtx, scrkernel-basics.dtx, scrkernel-title.dtx, + doc/, doc/plength.dtx, doc/guide.tex, doc/Makefile, doc/scrguide.cls, + doc/Makefile.guide, doc/scrguide.gst, doc/english/, + doc/english/scrlfile.tex, doc/english/scrlttr2.tex, + doc/english/htmlsetup, doc/english/scrbookreportarticle.tex, + doc/english/adrconvnote.tex, doc/english/scrdatetime.tex, + doc/english/introduction.tex, doc/english/Makefile, + doc/english/typearea.tex, doc/english/scraddr.tex, + doc/english/guide-english.tex, doc/english/scrpage2.tex, doc/german/, + doc/german/scrlfile.tex, doc/german/scrlttr2.tex, + doc/german/htmlsetup, doc/german/scrbookreportarticle.tex, + doc/german/adrconvnote.tex, doc/german/scrdatetime.tex, + doc/german/introduction.tex, doc/german/guide-ngerman.tex, + doc/german/Makefile, doc/german/typearea.tex, doc/german/scraddr.tex, + doc/german/scrpage2.tex, doc/bin/, doc/bin/genhtmlidx.pl, + doc/bin/genindex.pl: scrksect.dtx scrbeta.dtx scrmain.ins scrkfont.dtx + scrkxflo.dtx scrkbase.dtx scrktitl.dtx scrkpage.dtx scrkvers.dtx Makefile.baserules scrkfloa.dtx scrkpar.dtx doc/plength.dtx doc/scrguide.gst doc/scrguide.cls doc/bin/genindex.pl doc/bin/genchangelog.pl doc/bin/genhtmlidx.pl @@ -5620,7 +7362,7 @@ r71 2006-03-08 10:39:05 +0100 mjk: r70 2006-03-08 10:27:23 +0100 mjk: - * scrkpar.dtx: - parskip error fixed (testet by + * scrkernel-paragraphs.dtx: - parskip error fixed (testet by testsuite/parskipindent) r68 2006-03-08 08:52:54 +0100 mjk: @@ -5638,8 +7380,8 @@ r60 2006-01-25 12:56:38 +0100 mjk: r59 2006-01-25 12:41:27 +0100 mjk: - * Makefile, doc/, doc/Makefile, doc/german/, doc/german/Makefile, - doc/english/, doc/english/Makefile: Get BASEDIR from parent + * Makefile, doc/, doc/Makefile, doc/english/, doc/english/Makefile, + doc/german/, doc/german/Makefile: Get BASEDIR from parent r50 2006-01-20 14:48:57 +0100 mjk: @@ -5661,14 +7403,13 @@ r46 2005-12-13 08:52:03 +0100 mjk: r45 2005-11-27 15:32:22 +0100 mjk: - * doc/, doc/Makefile, doc/english/, doc/english/Makefile, - doc/english/htmlsetup, doc/english/guide-english.tex, - doc/english/introduction.tex, doc/english/typearea.tex, - doc/english/scrdatetime.tex, doc/english/scrpage2.tex, - doc/english/scrlfile.tex, doc/english/scraddr.tex, - doc/english/scrlttr2.tex, doc/english/adrconvnote.tex, - doc/english/scrbookreportarticle.tex: Initial import of the englisch - guide + * doc/, doc/Makefile, doc/english/, doc/english/scrlfile.tex, + doc/english/scrlttr2.tex, doc/english/htmlsetup, + doc/english/scrbookreportarticle.tex, doc/english/adrconvnote.tex, + doc/english/scrdatetime.tex, doc/english/introduction.tex, + doc/english/Makefile, doc/english/typearea.tex, + doc/english/scraddr.tex, doc/english/guide-english.tex, + doc/english/scrpage2.tex: Initial import of the englisch guide r44 2005-11-27 12:14:29 +0100 mjk: @@ -5755,110 +7496,115 @@ r26 2005-08-15 10:49:52 +0200 mjk: r25 2005-08-13 07:47:02 +0200 mjk: - * doc/Makefile.guide, doc/scrguide.gst, doc/Makefile.latexinit: change - log generation + * doc/, doc/Makefile.latexinit, doc/Makefile.guide, doc/scrguide.gst: + change log generation r24 2005-08-12 17:04:01 +0200 mjk: - * doc/german/scrlttr2.tex: Explain before Declaration not after + * doc/, doc/german/, doc/german/scrlttr2.tex: Explain before + Declaration not after r23 2005-08-12 16:58:46 +0200 mjk: - * doc/german/scrbookreportarticle.tex: Explain before Declaration not - after + * doc/, doc/german/, doc/german/scrbookreportarticle.tex: Explain + before Declaration not after r22 2005-08-12 16:47:14 +0200 mjk: - * doc/german/typearea.tex: Explain should not start after Declaration - but before + * doc/, doc/german/, doc/german/typearea.tex: Explain should not start + after Declaration but before r21 2005-08-12 16:42:22 +0200 mjk: - * doc/scrguide.cls: \lstset-fix for buggy version of LM fonts + * doc/, doc/scrguide.cls: \lstset-fix for buggy version of LM fonts r20 2005-08-12 15:48:59 +0200 mjk: - * doc/Makefile.guide, doc/Makefile.latexinit: Generation of a html - index file supported + * doc/, doc/Makefile.latexinit, doc/Makefile.guide: Generation of a + html index file supported r19 2005-08-12 13:17:59 +0200 mjk: - * doc/bin/genhtmlidx.pl, doc/german/htmlsetup: Generation of a html - index file supported + * doc/, doc/german/, doc/german/htmlsetup, doc/bin/, + doc/bin/genhtmlidx.pl: Generation of a html index file supported r18 2005-08-12 09:53:52 +0200 mjk: - * doc/Makefile: new rule "edit" + * doc/, doc/Makefile: new rule "edit" r17 2005-08-12 09:52:44 +0200 mjk: - * doc/Makefile.guide: $(TEX_SRC) added to rule "guide.idx guide.aux" + * doc/, doc/Makefile.guide: $(TEX_SRC) added to rule "guide.idx + guide.aux" r16 2005-08-11 10:47:22 +0200 mjk: - * doc/scrguide.cls: The free version of the guide will be optimized to - be used on the screen instead to be printed. + * doc/, doc/scrguide.cls: The free version of the guide will be + optimized to be used on the screen instead to be printed. r15 2005-08-11 10:45:33 +0200 mjk: - * doc/german/guide-ngerman.tex: \GuideCopyright changed - ("Bildschirm-Version") + * doc/, doc/german/, doc/german/guide-ngerman.tex: \GuideCopyright + changed ("Bildschirm-Version") r14 2005-08-10 16:31:33 +0200 mjk: - * doc/scrguide.cls, doc/german/introduction.tex, - doc/german/scrdatetime.tex, doc/german/scraddr.tex, - doc/german/scrlfile.tex, doc/german/scrbookreportarticle.tex, - doc/german/scrpage2.tex, doc/german/typearea.tex, - doc/german/scrlttr2.tex, doc/german/adrconvnote.tex: \phantomsection - at Declaration environment not longer needed and used. Anchors are - more descriptive. + * doc/, doc/scrguide.cls, doc/german/, doc/german/scrlfile.tex, + doc/german/scrlttr2.tex, doc/german/scrbookreportarticle.tex, + doc/german/adrconvnote.tex, doc/german/scrdatetime.tex, + doc/german/introduction.tex, doc/german/typearea.tex, + doc/german/scraddr.tex, doc/german/scrpage2.tex: \phantomsection at + Declaration environment not longer needed and used. Anchors are more + descriptive. r13 2005-08-09 17:18:30 +0200 mjk: - * doc/Makefile.latexinit: - scrguide.bst removed + * doc/, doc/Makefile.latexinit: scrguide.bst removed r12 2005-08-09 17:16:59 +0200 mjk: - * doc/Makefile: - scrguide.bst removed + * doc/, doc/Makefile: scrguide.bst removed + +r11 2005-08-09 16:54:35 +0200 mjk: + + * doc/: not longer needed since babelbib supports the same thing r10 2005-08-09 16:50:42 +0200 mjk: - * doc/scrguide.cls: tablecaptionsabove; use of babalpha-fl + * doc/, doc/scrguide.cls: tablecaptionsabove; use of babalpha-fl r9 2005-08-09 14:51:14 +0200 mjk: - * doc/Makefile.latexinit: INDEXPOSTOP added + * doc/, doc/Makefile.latexinit: INDEXPOSTOP added r8 2005-08-09 14:50:53 +0200 mjk: - * doc/Makefile.guide: $(INDEXPOSTOP) added to latex function + * doc/, doc/Makefile.guide: $(INDEXPOSTOP) added to latex function r7 2005-08-09 14:50:08 +0200 mjk: - * doc/german/scrbookreportarticle.tex: \AddSeeIndex entries fixed + * doc/, doc/german/, doc/german/scrbookreportarticle.tex: \AddSeeIndex + entries fixed r6 2005-08-09 14:49:44 +0200 mjk: - * doc/scrguide.ist: - start of comment line fixed + * doc/, doc/scrguide.ist: start of comment line fixed r5 2005-08-09 14:49:12 +0200 mjk: - * doc/scrguide.cls: macros of multiindex fixed + * doc/, doc/scrguide.cls: macros of multiindex fixed r4 2005-07-27 09:43:44 +0200 mjk: - * doc/german/adrconvnote.tex: Initial subversion import of KOMA-Script - 3; see ChangeLog for version information prior to 2005-07-25 12:14 - and ChangeLog.2 for version information of KOMA-Script < 2.91 + * doc/, doc/german/, doc/german/adrconvnote.tex: Initial subversion + import of KOMA-Script 3; see ChangeLog for version information prior + to 2005-07-25 12:14 and ChangeLog.2 for version information of + KOMA-Script < 2.91 r3 2005-07-27 09:41:23 +0200 mjk: - * doc/Makefile.latexinit: While not all TeX-Distributions have BibTeX8 - use BibTeX by default. This may be changed some day. + * doc/, doc/Makefile.latexinit: While not all TeX-Distributions have + BibTeX8 use BibTeX by default. This may be changed some day. r2 2005-07-27 09:31:50 +0200 mjk: @@ -5867,25 +7613,28 @@ r2 2005-07-27 09:31:50 +0200 mjk: r1 2005-07-25 12:19:51 +0200 mjk: - * ./, scrsource.tex, scrksect.dtx, scrbeta.dtx, scrmain.ins, - ChangeLog.2, scrkfont.dtx, scrkxflo.dtx, scrkbase.dtx, scrktitl.dtx, - scrkpage.dtx, scrkvers.dtx, scrkfloa.dtx, Makefile.baserules, - scrkpar.dtx, scrkliof.dtx, .cvsignore, Makefile, scrstrip.inc, - template.sh, ChangeLog, scrstrop.inc, scrlfile.ins, scrklist.dtx, - README, scrlfile.dtx, scrklang.dtx, scrkidx.dtx, scrlogo.dtx, - missing.dtx, scrkftn.dtx, Makefile.cfg, Makefile.baseinit, - scrdoc.dtx, scrktare.dtx, scrkmisc.dtx, scrkbib.dtx, doc, - doc/Makefile.guide, doc/plength.dtx, doc/scrguide.ist, - doc/scrguide.cls, doc/guide.bib, doc/guide.tex, doc/Makefile, - doc/Makefile.latexinit, doc/bin, doc/bin/genindex.pl, doc/german, - doc/german/guide-ngerman.tex, doc/german/introduction.tex, - doc/german/scrdatetime.tex, doc/german/scraddr.tex, - doc/german/scrlfile.tex, doc/german/Makefile, - doc/german/scrbookreportarticle.tex, doc/german/scrpage2.tex, - doc/german/typearea.tex, doc/german/scrlttr2.tex: Initial subversion - import of KOMA-Script 3; see ChangeLog for version information prior - to 2005-07-25 12:14 and ChangeLog.2 for version information of - KOMA-Script < 2.91 + * scrkernel-sections.dtx, ChangeLog.2, scrsource.tex, + scrkernel-index.dtx, missing.dtx, scrdoc.dtx, + scrkernel-bibliography.dtx, scrkernel-version.dtx, scrlogo.dtx, + scrstrip.inc, scrkernel-pagestyles.dtx, scrkernel-fonts.dtx, README, + scrbeta.dtx, Makefile.cfg, scrkernel-listsandtabulars.dtx, + Makefile.baseinit, .cvsignore, ChangeLog.cvs, + scrkernel-footnotes.dtx, Makefile, scrmain.ins, Makefile.baserules, + scrkernel-listsof.dtx, scrlfile.dtx, scrkernel-paragraphs.dtx, + scrkxflo.dtx, scrkernel-language.dtx, scrkernel-miscellaneous.dtx, + scrstrop.inc, scrkernel-floats.dtx, scrkernel-typearea.dtx, + scrkernel-basics.dtx, scrkernel-title.dtx, doc/, doc/plength.dtx, + doc/Makefile.latexinit, doc/guide.tex, doc/Makefile, + doc/scrguide.cls, doc/Makefile.guide, doc/guide.bib, + doc/scrguide.ist, doc/german/, doc/german/scrlfile.tex, + doc/german/scrlttr2.tex, doc/german/scrbookreportarticle.tex, + doc/german/scrdatetime.tex, doc/german/introduction.tex, + doc/german/guide-ngerman.tex, doc/german/Makefile, + doc/german/typearea.tex, doc/german/scraddr.tex, + doc/german/scrpage2.tex, doc/bin/, doc/bin/genindex.pl: Initial + subversion import of KOMA-Script 3; see ChangeLog for version + information prior to 2005-07-25 12:14 and ChangeLog.2 for version + information of KOMA-Script < 2.91 ------- Switch from CVS to subversion ---------------------------------------- diff --git a/Master/texmf-dist/source/latex/koma-script/Makefile b/Master/texmf-dist/source/latex/koma-script/Makefile index bef6476017d..32da8d12b2d 100644 --- a/Master/texmf-dist/source/latex/koma-script/Makefile +++ b/Master/texmf-dist/source/latex/koma-script/Makefile @@ -1,6 +1,6 @@ # ====================================================================== # Makefile -# Copyright (c) Markus Kohm, 2002-2012 +# Copyright (c) Markus Kohm, 2002-2013 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # Makefile -# Copyright (c) Markus Kohm, 2002-2012 +# Copyright (c) Markus Kohm, 2002-2013 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3c, verteilt und/oder veraendert werden. @@ -55,8 +55,8 @@ export MAINTAINDIR := $(DISTDIR)-maintain # ---------------------------------------------------------------------- # More than once used: # Make implementation documentation -define makedvifromdtx - if ! $(LATEX) $(NONSTOPMODE) $(DVIOUTPUT) $<; then \ +define makepdffromdtx + if ! $(LATEX) $(NONSTOPMODE) $(PDFOUTPUT) $<; then \ $(RM) -v $@; \ exit 1; \ fi @@ -65,7 +65,7 @@ define makedvifromdtx while $$oncemore; \ do \ if ! $(MKINDEX) $(basename $<) \ - || ! $(LATEX) $(NONSTOPMODE) $(DVIOUTPUT) $<; then \ + || ! $(LATEX) $(NONSTOPMODE) $(PDFOUTPUT) $<; then \ $(RM) -v $@; \ exit 1; \ fi; \ @@ -82,14 +82,10 @@ endef MAKE_FILES = Makefile Makefile.baserules Makefile.baseinit # ---------------------------------------------------------------------- # make classes, packages, etc. -INS_TEMPLATES = scrstrip.inc \ - scrstrop.inc - CLS_MAIN = scrbook.cls \ scrreprt.cls \ scrartcl.cls \ scrlttr2.cls \ - scrlettr.cls \ typearea.sty \ scrsize10pt.clo \ scrsize11pt.clo \ @@ -99,7 +95,6 @@ CLS_MAIN = scrbook.cls \ scrbase.sty \ scrkbase.sty \ scraddr.sty \ - scrpage.sty \ scrpage2.sty \ scrtime.sty \ scrdate.sty \ @@ -127,44 +122,49 @@ CLS_MAIN = scrbook.cls \ NipponLH.lco \ NipponLL.lco \ NipponRL.lco \ - KakuLL.lco + KakuLL.lco \ + scrlayer.sty \ + scrlayer-scrpage.sty \ + scrlayer-notecolumn.sty CLS_MAIN_DTX = scrbeta.dtx \ - scrkbase.dtx \ - scrkbib.dtx \ - scrkcile.dtx \ - scrkcomp.dtx \ - scrkfloa.dtx \ - scrkfont.dtx \ - scrkftn.dtx \ - scrkidx.dtx \ - scrklang.dtx \ - scrklco.dtx \ + scrkernel-basics.dtx \ + scrkernel-bibliography.dtx \ + scrkernel-circularletters.dtx \ + scrkernel-compatibility.dtx \ + scrkernel-floats.dtx \ + scrkernel-fonts.dtx \ + scrkernel-footnotes.dtx \ + scrkernel-index.dtx \ + scrkernel-language.dtx \ + scrkernel-letterclassoptions.dtx \ japanlco.dtx \ - scrkliof.dtx \ - scrklist.dtx \ - scrkmisc.dtx \ - scrknpap.dtx \ - scrkpage.dtx \ - scrkpar.dtx \ - scrkplen.dtx \ - scrksect.dtx \ - scrktare.dtx \ - scrktitl.dtx \ - scrkvars.dtx \ - scrkvers.dtx \ + scrkernel-listsof.dtx \ + scrkernel-listsandtabulars.dtx \ + scrkernel-miscellaneous.dtx \ + scrkernel-notepaper.dtx \ + scrkernel-pagestyles.dtx \ + scrkernel-paragraphs.dtx \ + scrkernel-pseudolengths.dtx \ + scrkernel-sections.dtx \ + scrkernel-typearea.dtx \ + scrkernel-title.dtx \ + scrkernel-variables.dtx \ + scrkernel-version.dtx \ scrlfile.dtx \ scrwfile.dtx \ scraddr.dtx \ scrpage.dtx \ scrtime.dtx \ - scrlettr.dtx \ scrlogo.dtx \ scrextend.dtx \ scrhack.dtx \ scrjura.dtx \ tocbasic.dtx \ - tocstyle.dtx + tocstyle.dtx \ + scrlayer.dtx \ + scrlayer-scrpage.dtx \ + scrlayer-notecolumn.dtx STATIC_DOC = README \ INSTALL.txt \ @@ -174,20 +174,18 @@ STATIC_DOC = README \ manifest.txt \ komabug.tex -CLS_MAIN_DVI = scrsource.dvi +CLS_MAIN_DVI = scrsource.pdf CLS_MAIN_INS = scrmain.ins -CLS_MAIN_SUBINS = scrlfile.ins scraddr.ins scrlettr.ins scrpage.ins +CLS_MAIN_SUBINS = scrstrip.inc scrstrop.inc scrdocstrip.tex -ALPHA_INS = tocstyle.dtx tocbasic.dtx scrjura.dtx scrwfile.dtx +ALPHA_INS = tocstyle.dtx scrjura.dtx scrwfile.dtx ALPHA_DOC = tocstyle.pdf scrjura.pdf scrhack.pdf ALPHA_DTX = $(subst .pdf,.dtx,$(ALPHA_DOC)) -DTX_IS_INS = tocstyle.dtx tocbasic.dtx scrjura.dtx scrwfile.dtx - CLS_MAIN_SRC = $(CLS_MAIN_DTX) $(CLS_MAIN_INS) $(CLS_MAIN_SUBINS) \ scrsource.tex @@ -198,12 +196,12 @@ $(ALPHA_DOC): $(ALPHA_DTX) $(MKINDEX) $(subst .pdf,,$@) $(LATEX) $(BATCHMODE) $(PDFOUTPUT) $(subst .pdf,.dtx,$@) -$(CLS_MAIN): $(CLS_MAIN_DVI) $(CLS_MAIN_INS) $(INS_TEMPLATES) $(MAKE_FILES) +$(CLS_MAIN): $(CLS_MAIN_DVI) $(CLS_MAIN_INS) $(MAKE_FILES) $(TEXUNPACK) $(CLS_MAIN_INS) $(foreach alphains,$(ALPHA_INS),$(TEXUNPACK) $(alphains);) -scrsource.dvi: scrsource.tex $(CLS_MAIN_DTX) $(MAKE_FILES) scrdoc.cls - $(makedvifromdtx) +scrsource.pdf: scrsource.tex $(CLS_MAIN_DTX) $(MAKE_FILES) scrdoc.cls + $(makepdffromdtx) scrdoc.cls: scrdoc.dtx $(SSYMLINK) scrdoc.dtx scrdoc.cls @@ -219,12 +217,12 @@ NODIST_GENERATED = $(CLS_DVIS) $(CLS_FILES) $(ALPHA_DOC) GENERATED = $(NODIST_GENERATED) ChangeLog \ scrjura.ins \ - scrlettr.drv \ scrwfile.ins scrwfile.tex scrwfile.drv \ tocbasic.ins tocbasic.tex \ - tocstyle.ins tocstyle.tex tocstyle.dvi tocstyle.drv + tocstyle.ins tocstyle.tex tocstyle.dvi tocstyle.drv \ + scrlayer.tex scrlayer-scrpage.tex scrlayer-notecolumn.tex -MISC_SRC = $(INS_TEMPLATES) $(MAKE_FILES) \ +MISC_SRC = $(MAKE_FILES) \ scrdoc.dtx ChangeLog ChangeLog.2 DIST_SRC = $(MISC_SRC) $(CLS_SRC) @@ -237,22 +235,29 @@ MAINTAIN_FILES = $(MAINTAIN_SRC) # ---------------------------------------------------------------------- # ---------------------------------------------------------------------- -# additional ruls +# additional rules tdsdist:dist # extract dist and make all $(UNTARGZ) $(DISTDIR).tar.gz chmod -R a+w $(DISTDIR) ifdef PREPARERELEASE - $(foreach dtxins,$(DTX_IS_INS),\ - sed -i -e 's/{trace,/{/g;s/\(\\let\\ifbeta=\\if\)true/\1false/;s/\(\\expandafter\\let\\expandafter\\ifbeta\\csname if\)true/\1false/' $(DISTDIR)/$(dtxins) && ) : developer/scripts/preparerelease.sh 2 $(notdir $(DISTDIR)) endif $(CD) $(notdir $(DISTDIR)) && \ $(MAKE) +ifdef PREPARERELEASE + $(MKDIR) $(notdir $(DISTDIR))/README.in + $(INSTALL) README.in/README.*.sty README.in/README.*.cls $(notdir $(DISTDIR))/README.in + developer/scripts/preparerelease.sh 3 $(notdir $(DISTDIR)) + $(RMDIR) $(notdir $(DISTDIR))/README.in +endif # install to temporary directory $(MKDIR) $(notdir $(DISTDIR))-bin/komascript-texmf $(CD) $(notdir $(DISTDIR)) && \ $(MAKE) INSTALLTEXMF=$(PWD)/$(notdir $(DISTDIR))-bin/komascript-texmf install +ifdef PREPARERELEASE + developer/scripts/preparerelease.sh final $(notdir $(DISTDIR)) +endif $(RMDIR) $(notdir $(DISTDIR)) $(SRM) $(notdir $(DISTDIR))-bin/komascript-texmf/ls-R # build the tds.zip @@ -276,7 +281,7 @@ bindist:tdsdist $(INSTALL) $(notdir $(DISTDIR))-bin/komascript-texmf/doc/latex/koma-script/*.txt $(notdir $(DISTDIR))-bin $(INSTALL) $(notdir $(DISTDIR))-bin/komascript-texmf/doc/latex/koma-script/README $(notdir $(DISTDIR))-bin $(INSTALL) $(notdir $(DISTDIR))-bin/komascript-texmf/doc/latex/koma-script/koma*.html $(notdir $(DISTDIR))-bin - $(GREP) 'CheckKOMAScriptVersion{' $(notdir $(DISTDIR))-bin/komascript-texmf/source/latex/koma-script/scrkvers.dtx | grep -o '2.*t' > $(notdir $(DISTDIR))-bin/VERSION + $(GREP) 'CheckKOMAScriptVersion{' $(notdir $(DISTDIR))-bin/komascript-texmf/source/latex/koma-script/scrkernel-version.dtx | grep -o '2.*t' > $(notdir $(DISTDIR))-bin/VERSION # build the bin.zip $(RMDIR) $(notdir $(DISTDIR))-bin/komascript-texmf $(SRM) $(notdir $(DISTDIR))-bin.zip @@ -302,7 +307,7 @@ ctandist:tdsdist $(notdir $(DISTDIR))-ctan/texmf/doc/latex/koma-script/README \ $(notdir $(DISTDIR))-ctan/texmf/source/latex/koma-script/ # generate VERSION at main source - $(GREP) 'CheckKOMAScriptVersion{' $(notdir $(DISTDIR))-ctan/texmf/source/latex/koma-script/scrkvers.dtx | grep -o '2.*t' \ + $(GREP) 'CheckKOMAScriptVersion{' $(notdir $(DISTDIR))-ctan/texmf/source/latex/koma-script/scrkernel-version.dtx | grep -o '2.*t' \ > $(notdir $(DISTDIR))-ctan/texmf/source/latex/koma-script/VERSION # generate README.distributors at upmost $(HEAD) 18 $(notdir $(DISTDIR))-ctan/texmf/source/latex/koma-script/README > $(notdir $(DISTDIR))-ctan/README.distributors diff --git a/Master/texmf-dist/source/latex/koma-script/Makefile.baseinit b/Master/texmf-dist/source/latex/koma-script/Makefile.baseinit index b6ff0e8f966..abeaa01b3a8 100644 --- a/Master/texmf-dist/source/latex/koma-script/Makefile.baseinit +++ b/Master/texmf-dist/source/latex/koma-script/Makefile.baseinit @@ -1,6 +1,6 @@ # ====================================================================== # Makefile.baseinit -# Copyright (c) Markus Kohm, 2002-2012 +# Copyright (c) Markus Kohm, 2002-2013 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # Makefile.baseinit -# Copyright (c) Markus Kohm, 2002-2012 +# Copyright (c) Markus Kohm, 2002-2013 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3c, verteilt und/oder veraendert werden. @@ -48,7 +48,7 @@ # ---------------------------------------------------------------------- # KOMA-Script subfolder -KOMASCRIPTSUBDIR=/latex/koma-script +KOMASCRIPTSUBDIR=/koma-script # ---------------------------------------------------------------------- # 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. @@ -95,13 +95,16 @@ endif endif # ---------------------------------------------------------------------- # The directory, where to install *.cls, *.sty etc. -INSTALLCLSDIR ?= $(INSTALLTEXMF)/tex$(KOMASCRIPTSUBDIR) +INSTALLCLSDIR ?= $(INSTALLTEXMF)/tex/latex$(KOMASCRIPTSUBDIR) +# ---------------------------------------------------------------------- +# The directory, where to install generic *.tex files +INSTALLTEXDIR ?= $(INSTALLTEXMF)/tex/generic$(KOMASCRIPTSUBDIR) # ---------------------------------------------------------------------- # The directory, where to install documentation -INSTALLDOCDIR ?= $(INSTALLTEXMF)/doc$(KOMASCRIPTSUBDIR) +INSTALLDOCDIR ?= $(INSTALLTEXMF)/doc/latex$(KOMASCRIPTSUBDIR) # ---------------------------------------------------------------------- # The directory, where to install the sources -INSTALLSRCDIR ?= $(INSTALLTEXMF)/source$(KOMASCRIPTSUBDIR) +INSTALLSRCDIR ?= $(INSTALLTEXMF)/source/latex$(KOMASCRIPTSUBDIR) # ---------------------------------------------------------------------- # The directory, where to install demos INSTALLDEMODIR ?= $(INSTALLDOCDIR)/demo @@ -209,6 +212,7 @@ ifdef VERBOSE $(SECHO) Makefile.baseinit: variables and their values: $(SECHO) " INSTALLTEXMF =$(INSTALLTEXMF)" $(SECHO) " INSTALLSRCDIR =$(INSTALLSRCDIR)" + $(ECHO) " INSTALLTEXDIR =$(INSTALLTEXDIR)" $(SECHO) " INSTALLDOCDIR =$(INSTALLDOCDIR)" $(SECHO) " INSTALLDEMODIR=$(INSTALLDEMODIR)" $(SECHO) " INSTALLCLSDIR =$(INSTALLCLSDIR)" diff --git a/Master/texmf-dist/source/latex/koma-script/Makefile.baserules b/Master/texmf-dist/source/latex/koma-script/Makefile.baserules index 7858c965ac2..66c4d77590b 100644 --- a/Master/texmf-dist/source/latex/koma-script/Makefile.baserules +++ b/Master/texmf-dist/source/latex/koma-script/Makefile.baserules @@ -1,6 +1,6 @@ # ====================================================================== # Makefile.baserules -# Copyright (c) Markus Kohm, 2002-2012 +# Copyright (c) Markus Kohm, 2002-2013 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # Makefile.baserules -# Copyright (c) Markus Kohm, 2002-2012 +# Copyright (c) Markus Kohm, 2002-2013 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3c, verteilt und/oder veraendert werden. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/Makefile b/Master/texmf-dist/source/latex/koma-script/doc/Makefile index 9092d885d86..05097a7c297 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/Makefile +++ b/Master/texmf-dist/source/latex/koma-script/doc/Makefile @@ -1,6 +1,6 @@ # ====================================================================== # Makefile -# Copyright (c) Markus Kohm, 2002-2012 +# Copyright (c) Markus Kohm, 2002-2013 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # Makefile -# Copyright (c) Markus Kohm, 2002-2012 +# Copyright (c) Markus Kohm, 2002-2013 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3c, verteilt und/oder veraendert werden. @@ -97,9 +97,13 @@ STATIC_DOC_SRC = koma-script.html STATIC_DOC_LINKS= komascript.html komascr.html \ scrbook.html scrreprt.html scrartcl.html scrlttr2.html \ + scrextend.html \ typearea.html scrpage2.html scraddr.html scrlfile.html \ scrwfile.html \ - scrtime.html scrdate.html tocbasic.html scrbase.html + scrtime.html scrdate.html tocbasic.html \ + scrlayer.html scrlayer-scrpage.html \ + scrlayer-notecolumn.html \ + scrbase.html scrhack.html DOC_SRC = scrguide.cls scrguide.ist scrguide.gst \ guide.tex guide.bib plength.dtx \ diff --git a/Master/texmf-dist/source/latex/koma-script/doc/Makefile.guide b/Master/texmf-dist/source/latex/koma-script/doc/Makefile.guide index 8f76ea692dd..432d427419d 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/Makefile.guide +++ b/Master/texmf-dist/source/latex/koma-script/doc/Makefile.guide @@ -1,6 +1,6 @@ # ====================================================================== # Makefile.guide -# Copyright (c) Markus Kohm, 2002-2012 +# Copyright (c) Markus Kohm, 2002-2013 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # Makefile.guide -# Copyright (c) Markus Kohm, 2002-2012 +# Copyright (c) Markus Kohm, 2002-2013 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3c, verteilt und/oder veraendert werden. @@ -70,19 +70,23 @@ endif TEX_CHAPTERS = preface.tex introduction.tex \ authorpart.tex typearea.tex scrbookreportarticle.tex \ - scrlttr2.tex scrpage2.tex scrdatetime.tex scraddr.tex \ + scrlttr2.tex scrlayer-scrpage.tex scrpage2.tex \ + scrdatetime.tex scraddr.tex \ adrconvnote.tex scrextend.tex \ expertpart.tex scrbase.tex scrlfile.tex scrwfile.tex \ tocbasic.tex scrhack.tex \ + scrlayer.tex \ + scrlayer-scrpage-experts.tex scrlayer-notecolumn.tex \ typearea-experts.tex scrbookreportarticle-experts.tex \ scrlttr2-experts.tex \ $(TEX_APPENDICES) -TEX_MISC = $(DOCDIR)guide.tex $(DOCDIR)linkalias.tex \ +TEX_MISC = ../guide.tex ../linkalias.tex \ common-0.tex common-1.tex common-2.tex common-3.tex \ common-4.tex common-5.tex common-6.tex common-7.tex \ common-8.tex common-9.tex common-10.tex common-11.tex \ - common-12.tex common-13.tex common-14.tex common-15.tex + common-12.tex common-13.tex common-14.tex common-15.tex \ + common-20.tex common-21.tex EXAMPLE_LETTER_DTX = scrlttr2examples.dtx @@ -93,6 +97,11 @@ EXAMPLE_LETTER_LETTERS = $(foreach num,\ EXAMPLE_LETTER_DTX_RESULT = $(EXAMPLE_LETTER_LETTERS) musterlogo.eps ich.lco +ifeq ($(LANGUAGE),ngerman) +EXAMPLE_NOTECOLUMN_SRC = scrlayer-notecolumn-example.tex +EXAMPLE_NOTECOLUMN_PDF = $(addsuffix .pdf,$(basename $(EXAMPLE_NOTECOLUMN_SRC))) +endif + PLENGTH_DTX = $(DOCDIR)plength.dtx PLENGTH_DTX_RESULT = plength.drv plenDIN.mp varDIN.mp plinc.mp \ @@ -108,18 +117,20 @@ EXAMPLE_LETTER_SRC = $(EXAMPLE_LETTER_LETTERS) $(PDF_EPS) ich.lco EXAMPLE_LETTER_PDF = $(addsuffix .pdf,$(basename $(EXAMPLE_LETTER_LETTERS))) -GENERATED_SRC = $(EXAMPLE_LETTER_PDF) $(PLENGTH_PDF) +GENERATED_SRC = $(EXAMPLE_LETTER_PDF) $(PLENGTH_PDF) \ + $(EXAMPLE_NOTECOLUMN_PDF) GENERATED_CLEAN = $(GENERATED_SRC) \ $(EXAMPLE_LETTER_DTX_RESULT) letter-label.tex \ - $(PDF_EPS) \ + $(EXAMPLE_NOTECOLUMN_PDF) $(PDF_EPS) \ $(PLENGTH_DTX_RESULT) TEX_SRC = guide-$(LANGUAGELONG).tex $(TEX_CHAPTERS) $(TEX_MISC) MISC_SRC = $(MAKE_FILES) htmlsetup -DIST_SRC = $(MISC_SRC) $(TEX_SRC) $(EXAMPLE_LETTER_DTX) +DIST_SRC = $(MISC_SRC) $(TEX_SRC) $(EXAMPLE_LETTER_DTX) \ + $(EXAMPLE_NOTECOLUMN_SRC) GUIDE_FILES = $(GUIDENAME).pdf $(GUIDENAME).html @@ -277,6 +288,11 @@ $(EXAMPLE_LETTER_PDF): $(EXAMPLE_LETTER_SRC) $(EXAMPLE_LETTER_DTX_RESULT): $(EXAMPLE_LETTER_DTX) $(PDFLATEX) $< +ifdef EXAMPLE_NOTECOLUMN_SRC +$(EXAMPLE_NOTECOLUMN_PDF): $(EXAMPLE_NOTECOLUMN_SRC) + $(PDFLATEX) $< +endif + guide.ind: guide.idx $(MAKEINDEX) $@ $< $(INDEXPOSTOP) guide diff --git a/Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl b/Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl index 65ec7e5b444..a49935fd8df 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl +++ b/Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl @@ -4,7 +4,7 @@ eval 'exec perl -S $0 ${1+"$@"}' # ====================================================================== # genhtmlidx.pl -# Copyright (c) Markus Kohm, 2002-2006 +# Copyright (c) Markus Kohm, 2002-2013 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -22,7 +22,7 @@ eval 'exec perl -S $0 ${1+"$@"}' # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # genhtmlidx.pl -# Copyright (c) Markus Kohm, 2002-2006 +# Copyright (c) Markus Kohm, 2002-2013 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3c, verteilt und/oder veraendert werden. @@ -62,6 +62,7 @@ my @counter; my @floatstyle; my @fontelement; my @file; +my @length; my $baselink; my $htmlhead; @@ -106,6 +107,8 @@ while ( $auxfile=shift ) { push @fontelement,$entry; } elsif ( "$2" eq "package" ) { push @file,$entry; + } elsif ( "$2" eq "length" ) { + push @length,$entry; } else { print STDERR "Unknown type $2!\n"; } @@ -146,6 +149,7 @@ print "\n"; process "option","",\@option; process "macro","\\",\@macro; process "environment","",\@environment; +process "length","",\@length; process "plength","",\@plength; process "variable","",\@variable; process "pagestyle","",\@pagestyle; diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/Makefile b/Master/texmf-dist/source/latex/koma-script/doc/english/Makefile index e9c2b0cd026..9ac3413dfaf 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/Makefile +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/Makefile @@ -53,7 +53,7 @@ tocbasic.tex: ../../tocbasic.tex if [ -L $@ ] || ! [ -f $@ ]; then $(SYMLINK) $< .; else touch $@; fi ../../tocbasic.tex: ../../tocbasic.dtx - cd ../.. && tex \\nonstopmode\\input tocbasic.dtx + cd ../.. && tex \\nonstopmode\\input $(basename $<) # ---------------------------------------------------------------------- # ---------------------------------------------------------------------- @@ -63,7 +63,17 @@ scrwfile.tex: ../../scrwfile.tex if [ -L $@ ] || ! [ -f $@ ]; then $(SYMLINK) $< .; else touch $@; fi ../../scrwfile.tex: ../../scrwfile.dtx - cd ../.. && tex \\nonstopmode\\input scrwfile.dtx + cd ../.. && tex \\nonstopmode\\input $(basename $<) +# ---------------------------------------------------------------------- + +# ---------------------------------------------------------------------- +# NOTE: Remove these rules after real translation of scrlayer-notecolumn.tex +# is available. +scrlayer-notecolumn.tex: ../../scrlayer-notecolumn.tex + if [ -L $@ ] || ! [ -f $@ ]; then $(SYMLINK) $< .; else touch $@; fi + +../../scrlayer-notecolumn.tex: ../../scrlayer-notecolumn.dtx + cd ../.. && tex \\nonstopmode\\input $(basename $<) # ---------------------------------------------------------------------- # diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-0.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-0.tex index f950ed11530..deced1e00ca 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-0.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-0.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-0.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-0.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,10 +45,12 @@ % % ====================================================================== -\ProvidesFile{common-0.tex}[2012/04/02 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-0.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \translator{Gernot Hassenpflug\and Krickette Murabayashi} -% Date of the translated German file: 2011/08/26 +% Date of the translated German file: 2013/08/08 \makeatletter \@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% @@ -109,7 +111,7 @@ may also have the form \PName{option}\texttt{=}\PName{value}. Apart from this difference \Macro{documentclass} and \Macro{usepackage} function the same in {\KOMAScript} as described in \cite{latex:usrguide} or any introduction to \LaTeX, for example -\cite{l2short}.% +\cite{lshort}.% % \IfNotCommon{scrextend}{\par% When using a {\KOMAScript} class, no options should be passed on @@ -124,7 +126,17 @@ function the same in {\KOMAScript} as described in packages.}% \IfCommon{scrlttr2}{\ Actually, it is no longer necessary when using any {\KOMAScript} class to explicity load either one of these - packages.}}% + packages.}} + +You should note\textnote{Attention!}, that in opposite to the interface +described below the options interface of \Macro{documentclass} and +\Macro{usepackage} is not robust. So commands, lengths, counters and such +constructs may break inside the optional argument of these commands. Because +of this, the usage of a \LaTeX{} length inside the value of an option would +cause an error before \KOMAScript{} can get the control over the option +execution. So, if you want to use a \LaTeX{} length, counter or command a part +of the value of an option, you have to use \Macro{KOMAoptions} or +\Macro{KOMAoption}. These commands will be described next.% % \EndIndex{Cmd}{usepackage}% \EndIndex{Cmd}{documentclass}% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-1.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-1.tex index 3dbcdad259b..69e02610745 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-1.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-1.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-1.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-1.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-1.tex}[2012/04/08 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-1.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \translator{Markus Kohm\and Krickette Murabayashi} % Date of the translated German file: 2011/09/20 @@ -127,7 +129,7 @@ poses possibilities of compatibility issues for future \LaTeX{} runs. Option \Option{version} without any \PName{value} means the same. \ChangedAt{v3.01a}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}\and \Package{scrextend}}This is the -default behaviour as long as you don't use any deprecated options. +default behaviour as long as you do not use any deprecated options. If\textnote{Attention!} you use a deprecated option of \KOMAScript~2, \KOMAScript~3 will switch to \OptionValue{version}{first} automatically. This @@ -137,7 +139,7 @@ switching. Alternatively you may select another adjustment using option Compatibility is primarily make-up compatibility. New features not related to the mark-up will be available even if you switch compatibility to a version -before first implementation of the feature. Option \Option{version} doesn't +before first implementation of the feature. Option \Option{version} does not influence make-up changes that are motivated by bug fixes. If you need bug compatibility you should physically save the used \KOMAScript{} version together with your document. @@ -151,8 +153,8 @@ together with your document. latest version.% \end{Example}} -Please note\textnote{Attention!} that you can't change option \Option{version} -anymore after loading the % +Please note\textnote{Attention!} that you cannot change option +\Option{version} anymore after loading the % \IfCommon{maincls}{class}% \IfCommon{scrlttr2}{class}% \IfCommon{typearea}{package \Package{typearea}}% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-10.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-10.tex index 2b10f4ae9c9..a3c209f6806 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-10.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-10.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-10.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-10.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-10.tex}[2012/05/15 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-10.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \translator{Markus Kohm\and Krickette Murabayashi} % Date of the translated German file: 2012/01/01 diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-11.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-11.tex index 55f9aeb02a8..e4f3ebb325b 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-11.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-11.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-11.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-11.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-11.tex}[2012/02/07 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-11.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \translator{Gernot Hassenpflug\and Markus Kohm} % Date of the translated German file: 2012/01/01 diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-12.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-12.tex index a57b75f9624..a567512ef83 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-12.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-12.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-12.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-12.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-12.tex}[2012/05/15 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-12.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \translator{Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi} % Date of the translated German file: 2011/09/21 @@ -415,7 +417,7 @@ with the commands \Macro{setkomafont} and \Macro{addtokomafont} (see \autoref{se \end{labeling} \end{ShowOutput} As can be seen in this example, a font changing command may be set - in the usual way. But if you don't want the font of the separator to + in the usual way. But if you do not want the font of the separator to be changed in the same way as the font of the label, you have to set the font of the separator as well. \end{Example} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-13.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-13.tex index 62a79e01ef9..e4f69fb2f48 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-13.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-13.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-13.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-13.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-13.tex}[2012/02/14 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-13.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \translator{Gernot Hassenpflug\and Markus Kohm} % Date of the translated German file: 2011/09/03 diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-14.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-14.tex index afbd0583800..15f222f283b 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-14.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-14.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-14.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-14.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,10 +45,12 @@ % % ====================================================================== -\ProvidesFile{common-14.tex}[2012/05/15 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-14.tex} + [$Date: 2013-11-21 16:13:48 +0100 (Do, 21. Nov 2013) $ + KOMA-Script guide (common paragraphs)] \translator{Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi} -% Date of the translated German file: 2012/01/01 +% Date of the translated German file: 2013/11/21 \makeatletter \@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% @@ -103,9 +105,11 @@ should be used. \else %------------------------------------------------------- nur maincls - \begin{Declaration} - \KOption{titlepage}\PName{simple switch} + \KOption{titlepage}\PName{simple switch}\\ + \OptionValue{titlepage}{firstiscover} \end{Declaration}% \BeginIndex{Option}{titlepage~=\PName{simple switch}}% +\BeginIndex{Option}{titlepage~=\PValue{firstiscover}}% Using \Macro{maketitle} (see \autopageref{desc:\csname label@base\endcsname.cmd.maketitle}), this option\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} switches between document title pages\Index{title>pages} @@ -127,6 +131,27 @@ 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~=\PName{simple switch}}% +The third choice,\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}} +\OptionValue{titlepage}{firstiscover}% +\important{\OptionValue{titlepage}{firstiscover}} does not only select title +pages. It additionally prints the first title page of +\Macro{maketitle}\IndexCmd{maketitle}, this is either the extra title or the +main title, as a cover\Index{cover} page. Every other setting of option +\Option{titlepage} would cancel this setting. The margins\important{% + \Macro{coverpagetopmargin}\\ + \Macro{coverpagebottommargin}\\ + \Macro{coverpageleftmargin}\\ + \Macro{coverpagerightmargin}} of the cover page are given by +\Macro{coverpagetopmargin}\IndexCmd[indexmain]{coverpagetopmargin}, +\Macro{coverpagebottommargin}\IndexCmd[indexmain]{coverpagebottommargin}, +\Macro{coverpageleftmargin}\IndexCmd[indexmain]{coverpageleftmargin} und +\Macro{coverpagerightmargin}\IndexCmd[indexmain]{coverpagerightmargin}. The +defaults of these depend on the lengths +\Length{topmargin}\IndexLength{topmargin} and +\Length{evensidemargin}\IndexLength{evensidemargin} and can be changed using +\Macro{renewcommand}. + \IfCommon{maincls}{The default of classes \Class{scrbook} and \Class{scrreprt} is usage of title pages. Class \Class{scrartcl}, on the other hand, uses in-page titles as default.}% @@ -335,69 +360,16 @@ the top of the page. It can be freely designed by the user. The\important{\Macro{subject}} \PName{subject}\Index[indexmain]{subject} is output immediately above the \PName{title}. -Thereby\ChangedAt{v2.95}{\Class{scrbook}\and \Class{scrreprt}\and - \Class{scrartcl}} the font switching of element -\FontElement{subject}\IndexFontElement{subject}\important{\FontElement{subject}} -will be used. The default, that may be found in -\autoref{tab:maincls.titlefonts}, % -\IfNotCommon{maincls}{\autopageref{tab:maincls.titlefonts}, }% -may be changed using the commands \Macro{setkomafont} and -\Macro{addtokomafont} (see \autoref{sec:\csname - label@base\endcsname.textmarkup}, \autopageref{desc:\csname - label@base\endcsname.cmd.setkomafont}). The\important{\Macro{title}} \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}\important{\FontElement{title}} -also take effect. By default these settings are identical to the settings for -the element \FontElement{disposition}\IndexFontElement{disposition} (see -\autoref{tab:maincls.elementsWithoutText}, -\autopageref{tab:maincls.elementsWithoutText}). The default settings may be -changed using the commands \Macro{setkomafont} and \Macro{addtokomafont} (see -\autoref{sec:\csname label@base\endcsname.textmarkup}, -\autopageref{desc:\csname label@base\endcsname.cmd.setkomafont}). The font -size\textnote{Attention!} is, however, not affected (see +size. Beside all other element the font size\textnote{Attention!} is, +however, not affected by the font switching element \FontElement{title} (see \autoref{tab:maincls.elementsWithoutText}, \autopageref{tab:maincls.mainTitle}). The\important{\Macro{subtitle}} \PName{subtitle}\ChangedAt{v2.97c}{\Class{scrbook}\and \Class{scrreprt}\and - \Class{scrartcl}} is set just below the title, in a font determined by the -element \FontElement{subtitle}\IndexFontElement{subtitle}% -\important{\FontElement{subtitle}}. The default, seen in -\autoref{tab:maincls.titlefonts}% -\IfNotCommon{maincls}{, \autopageref{tab:maincls.titlefonts}}, % -can be changed with the help of the commands \Macro{setkomafont} and -\Macro{addtokomafont} (see \autoref{sec:\csname - label@base\endcsname.textmarkup}, \autopageref{desc:\csname - label@base\endcsname.cmd.setkomafont}). - -\IfCommon{maincls}{% -\begin{table} -% \centering - \KOMAoptions{captions=topbeside}% - \setcapindent{0pt}% -% \caption - \begin{captionbeside} - [{Font defaults for the elements of the title}] - {\label{tab:maincls.titlefonts}% - Font defaults for the elements of the title} - [l] - \begin{tabular}[t]{ll} - \toprule - Element name & Default \\ - \midrule - \FontElement{subject} & - \Macro{normalfont}\Macro{normalcolor}\Macro{bfseries}\Macro{Large} \\ - \FontElement{title} & \Macro{usekomafont}\PParameter{disposition} \\ - \FontElement{subtitle} & - \Macro{usekomafont}\PParameter{title}\Macro{large} \\ - \bottomrule - \end{tabular} - \end{captionbeside} -\end{table}} + \Class{scrartcl}} is set just below the title. Below\important{\Macro{author}} the \PName{subtitle} appears the \PName{author}\Index[indexmain]{author}. Several authors can be @@ -424,6 +396,44 @@ markers instead of numbers. Note\textnote{Attention!}, that \Macro{thanks} has to be used inside the argument of another command, e.\,g., at the argument \PName{author} of the command \Macro{author}. +While\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}} printing the title elements the +equal named font switching elements will be used for all them. The defaults, +that may be found in \autoref{tab:maincls.titlefonts}, % +\IfNotCommon{maincls}{\autopageref{tab:maincls.titlefonts}, }% +may be changed using the commands \Macro{setkomafont} and +\Macro{addtokomafont} (see \autoref{sec:\csname + label@base\endcsname.textmarkup}, \autopageref{desc:\csname + label@base\endcsname.cmd.setkomafont}). \IfCommon{maincls}{% +\begin{table} +% \centering + \KOMAoptions{captions=topbeside}% + \setcapindent{0pt}% +% \caption + \begin{captionbeside} + [{Font defaults for the elements of the title}] + {\label{tab:maincls.titlefonts}% + Font defaults for the elements of the title} + [l] + \begin{tabular}[t]{ll} + \toprule + Element name & Default \\ + \midrule + \FontElement{author} & \Macro{Large} \\ + \FontElement{date} & \Macro{Large} \\ + \FontElement{dedication} & \Macro{Large} \\ + \FontElement{publishers} & \Macro{Large} \\ + \FontElement{subject} & + \Macro{normalfont}\Macro{normalcolor}\Macro{bfseries}\Macro{Large} \\ + \FontElement{subtitle} & + \Macro{usekomafont}\PParameter{title}\Macro{large} \\ + \FontElement{title} & \Macro{usekomafont}\PParameter{disposition} \\ + \FontElement{titlehead} & \\ + \bottomrule + \end{tabular} + \end{captionbeside} +\end{table}} + With the exception of \PName{titlehead} and possible footnotes, all the items are centered horizontally. The information is summarised in \autoref{tab:maincls.mainTitle}% @@ -436,7 +446,7 @@ the items are centered horizontally. The information is summarised in \setcapindent{0pt}% % \caption \begin{captionbeside}[Main title]{% - Font size and horizontal positioning of the + Font 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}} [l] @@ -445,19 +455,21 @@ the items are centered horizontally. The information is summarised in \toprule Element & Command & Font & Orientation \\ \midrule - Title head & \Macro{titlehead} & \Macro{normalsize} & justified \\ + Title head & \Macro{titlehead} & \Macro{usekomafont}\PParameter{titlehead} & justified \\ Subject & \Macro{subject} & \Macro{usekomafont}\PParameter{subject} & centered \\ - Title & \Macro{title} & \Macro{huge}\Macro{usekomafont}\PParameter{title} & centered \\ + Title & \Macro{title} & \Macro{usekomafont}\PParameter{title}\Macro{huge} & centered \\ Subtitle & \Macro{subtitle} & \Macro{usekomafont}\PParameter{subtitle} & centered \\ - Authors & \Macro{author} & \Macro{Large} & centered \\ - Date & \Macro{date} & \Macro{Large} & centered \\ - Publishers & \Macro{publishers} & \Macro{Large} & centered \\ + Authors & \Macro{author} & \Macro{usekomafont}\PParameter{author} & centered \\ + Date & \Macro{date} & \Macro{usekomafont}\PParameter{date} & centered \\ + Publishers & \Macro{publishers} & \Macro{usekomafont}\PParameter{publishers} & centered \\ \bottomrule \end{tabular} \end{captionbeside} \label{tab:maincls.mainTitle} -\end{table}} - + \end{table}} +Please note\textnote{Attention!}, that for the main title \Macro{huge} will be +used after the font switching element \Macro{title}. So you cannot change the +size of the main title using \Macro{setkomafont} or \Macro{addtokomafont}. \begin{Example} Assume you are writing a dissertation. The title page should have @@ -510,9 +522,9 @@ the items are centered horizontally. The information is summarised in \begin{Explain} A frequent misunderstanding concerns the role of the full title page. It is - often erroneously 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 has equally large left and right margins. + often erroneously assumed that the cover\Index{cover} or dust cover is + meant. Therefore, it is frequently expected that the title page does not + follow the normal page layout, but has equally large left and right margins. However, if one takes a book and opens it, one notices very quickly at least one title page under the cover within the so-called inner book. Precisely @@ -525,6 +537,13 @@ the items are centered horizontally. The information is summarised in 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. + + Nevertheless, since \KOMAScript~3.12 the first title page of + \Macro{maketitle} can be printed as a cover page with different margins. For + more information about this see the description of option + \OptionValue{titlepage}{firstiscover}% + \IndexOption{titlepage~=\PValue{firstiscover}} on \autopageref{desc:\csname + label@base\endcsname.option.titlepage}. \end{Explain} % \EndIndex{Cmd}{titlehead}% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-15.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-15.tex index 2f8f870f71d..ff61582d756 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-15.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-15.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-15.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-15.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-15.tex}[2012/05/15 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-15.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \translator{Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi} % Date of the translated German file: 2011/09/21 diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-2.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-2.tex index 81a5e22d550..8ac590a8100 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-2.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-2.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-2.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-2.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-2.tex}[2012/05/15 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-2.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \translator{Markus Kohm\and Gernot Hassenpflug\and Krickette Murabayashi} % Date of the translated German file: 2011/09/20 @@ -71,7 +73,7 @@ Many classes and packages provide a draft mode aside from the final typesetting mode. The difference of draft and final mode may be as manifold as the classes and package that support these modes. For instance, the \Package{graphics}\IndexPackage{graphics} and the -\Package{graphicx}\IndexPackage{graphicx} packages don't actually output the +\Package{graphicx}\IndexPackage{graphicx} packages do not actually output the graphics in their own draft mode. Instead they output a framed box of the appropriate size containing only the graphic's file name (see \cite{package:graphics}).% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-20.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-20.tex new file mode 100644 index 00000000000..85fdea3b1a8 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-20.tex @@ -0,0 +1,127 @@ +% ====================================================================== +% common-20.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% common-20.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% +% Text that is common for several chapters of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Absaetze, die mehreren Kapitels in der KOMA-Script-Anleitung gemeinsam sind +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\KOMAProvidesFile{common-20.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraph: Head and Foot Height)] +\translator{Markus Kohm\and Jana Schubert\and Jens H\"uhne} + +% Date of the translated German file: 2013-10-18 + +\makeatletter +\@ifundefined{ifCommonscrlayer}{\newif\ifCommonscrlayer}{}% +\@ifundefined{ifCommoonscrlayer-scrpage}{\expandafter\newif\csname ifCommonscrlayer-scrpage\endcsname}{}% +\@ifundefined{ifIgnoreThis}{\newif\ifIgnoreThis}{}% +\makeatother + +\section{Head and Foot Height} +\label{sec:\csname label@base\endcsname.height} + +\IfCommon{scrlayer-scrpage}{% + The \LaTeX{} standard classes do not use the page footer a lot and if they do + use it, they put the contents into a \Macro{mbox} which results in the + footer being a single text line. This is probably the reason that \LaTeX{} itself + does not have a well-defined foot height. Actually there is + \Length{footskip}\IndexLength{footskip} giving the distance between the last base + line of the text area and the base line of the footer. However, if the footer + consists of more than one text line, there is no definite statement whether this + length should be the distance to the first or the last base line of the footer. + + Despite the fact that the page header of the standard classes will also be + put into a horizontal box and therefore is a single text line too, \LaTeX{} + indeed has a length to setup the height of the page header. The reason for + this may be that the height will be needed to determine the start of the + text area. } + +\ifshortversion\IgnoreThisfalse\IfNotCommon{scrlayer-scrpage}{\IgnoreThistrue}\fi +\ifIgnoreThis %++++++++++++++++++++++++++++++++++++++++ not scrlayer-scrpage + +You may find basic information about the height of the page header and footer +in \autoref{sec:scrlayer-scrpage.height}, +\autopageref{sec:scrlayer-scrpage.height}. +\else % ---------------------------------------------- only scrlayer-scrpage - + +\begin{Declaration} + \Length{footheight}\\ + \Length{headheight} +\end{Declaration} +\BeginIndex{Length}{footheight}% +\BeginIndex{Length}{headheight}% +The package \Package{scrlayer} introduces \Length{footheight} as a new length +similar to \Length{headheight} of the \LaTeX{} kernel. Additionally +\Package{scrlayer-scrpage} interprets \Length{footskip} to be the distance +from the last possible base line of the text area to the first normal base +line of the footer. Package \Package{typearea}\IndexPackage{typearea} +interprets \Package{footheight} in the same way. So \Package{typearea}'s foot +height options may also be used to setup the values for packages +\Package{scrlayer} and \Package{scrlayer-scrpage}. See option +\Option{footheight} and \Option{footlines} in \autoref{sec:typearea.typearea}, +\autopageref{desc:typearea.option.footheight}) and option \Option{footinclude} +at \autopageref{desc:typearea.option.footinclude} of the same section. + +If you do not use package \Package{typearea}, you should setup the head and +foot height using the lengths directly where necessary. At least for the head +package \Package{geometry} provides similar settings. If you setup a head or +foot height that is too small for the effective content, +\Package{scrlayer-scrpage} will try to adjust the corresponding lengths +properly. Furthermore, it will warn you and give you additional information +about the changes and proper settings you may use yourself. The automatic +changes will become valid immediately after the need for them has been +detected. They will never be removed automatically, however, even if content +with a lower height requirement should be detected at a later point in time.% +\EndIndex{Length}{headheight}% +\EndIndex{Length}{footheight}% + +\fi % ********************************************* Ende nur scrlayer-scrpage * + +%%% Local Variables: +%%% mode: latex +%%% mode: flyspell +%%% coding: us-ascii +%%% ispell-local-dictionary: "en_GB" +%%% TeX-master: "../guide.tex" +%%% TeX-PDF-mode: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-21.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-21.tex new file mode 100644 index 00000000000..92397fe2f17 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-21.tex @@ -0,0 +1,765 @@ +% ====================================================================== +% common-21.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% common-21.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% +% Text that is common for several chapters of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Absaetze, die mehreren Kapitels in der KOMA-Script-Anleitung gemeinsam sind +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\KOMAProvidesFile{common-21.tex} + [$Date: 2013-10-22 11:17:09 +0200 (Di, 22 Okt 2013) $ + KOMA-Script guide (common paragraph: + Manipulation of defined page styles)] +\translator{Markus Kohm\and Jana Schubert} + +% Date version of the translated file: 2013-10-23 + +\makeatletter +\@ifundefined{ifCommonscrlayer}{\newif\ifCommonscrlayer}{}% +\@ifundefined{ifCommoonscrlayer-scrpage}{\expandafter\newif\csname ifCommonscrlayer-scrpage\endcsname}{}% +\@ifundefined{ifIgnoreThis}{\newif\ifIgnoreThis}{}% +\makeatother + +\section{Manipulation of Defined Page Styles} +\label{sec:\csname label@base\endcsname.pagestyle.content} + +\IfCommon{scrlayer}{% + Even though \Package{scrlayer} itself does not define a concrete page style + with content\,---\,the already mentioned page styles \Pagestyle{@everystyle@} + and \Pagestyle{empty} are initially defined without any level and so empty + and without content\,---\,, it provides some options and commands for the + manipulation of the contents.% +} + +\IfCommon{scrlayer-scrpage}{% + \hyperref[sec:scrlayer-scrpage.predefined.pagestyles]% + {Section~\ref*{sec:scrlayer-scrpage.predefined.pagestyles}} + states the predefined defaults for the page style \Pagestyle{scrheadings} + and \Pagestyle{plain.scrheadings} and how they can be adapted. But + information about the generation of, i.\,e., the running heads, the + manipulation of the widths of page head and footer, and how you can get + horizontal lines printed above or below the page head or footer are still + missing. Even though all these are features of package \Package{scrlayer}, + they will be described consecutively, because these basic features of + \Package{scrlayer} are also a fundamental part of the features of + \Package{scrlayer-scrpage}.% +} + +\ifshortversion\IgnoreThistrue\IfCommon{scrlayer-scrpage}{\IgnoreThisfalse}\fi +\ifIgnoreThis %++++++++++++++++++++++++++++++++++++++++ not scrlayer-scrpage + +\else %----------------------------------------------- only scrlayer-scrpage - + +\begin{Declaration} + \Macro{automark}\OParameter{section level of the right mark}% + \Parameter{section level of the left mark}\\ + \Macro{automark*}\OParameter{section level of the right mark}% + \Parameter{section level of the left mark}\\ + \Macro{manualmark}\\ + \Option{automark}\\ + \KOption{autooneside}\PName{simple switch}\\ + \Option{manualmark} +\end{Declaration} +\BeginIndex{Cmd}{automark}% +\BeginIndex{Cmd}{manualmark}% +\BeginIndex{Option}{automark}% +\BeginIndex{Option}{manualmark}% +\BeginIndex{Option}{autooneside~=\PName{simple switch}}% +With the \LaTeX{} standard classes or the \KOMAScript{} classes the decision +whether using automatic running heads\Index{running heads>automatic}, or +static or manual running heads\Index{running heads>static}\Index{running + heads>manual} would be done using either page style \Pagestyle{headings} or +\Pagestyle{myheadings}. Automatic running heads are replications of a +significant, characterizing text snippet of the page mostly inside the page +head, sometimes in the page footer. + +The article classes\OnlyAt{\Class{article}\and \Class{scrartcl}} +\Class{article} or \Class{scrartcl} with page style +\Pagestyle{headings}\IndexPagestyle{headings} use the section heading, which +is either the mandatory or the optional argument of \Macro{section}, for the +automatic running head of single side documents. Double side documents use +this section heading as the \emph{left mark} and at once use the subsection +heading as the \emph{right mark}. The left mark will be printed on left pages, +which founds the name \emph{left mark}. The right mark will be printed on +right\,---\,in single side mode this means every\,---\,page. The classes by +default also remove the right mark whenever they put the section heading into +the left mark. + +The report and book classes \OnlyAt{\Class{report}\and + \Class{scrreprt}\and \Class{book}\and \Class{scrbook}} start one level +higher. So they use the chapter heading to be the right mark in single side +layout. In double side layout they use the chapter heading to be the left mark +and the section heading to be the right mark. + +If you are using \Pagestyle{myheadings} instead of +\Pagestyle{headings}\IndexPagestyle{myheadings}, the marks in the page header +still exists and would be printed same like using \Pagestyle{headings}. But +section commands will not automatically set the marks any longer. So you can +fill them only using the commands \Macro{markright}, \Macro{markleft}, and +\Macro{markboth}, which will be described later in this section. + +This difference between two page styles has been abolished by +\Package{scrpage2} and also by \Package{scrlayer}. Instead of distinguishing +between automatic and manual running head by the selection of a page style, +two new commands, \Macro{automark} and \Macro{manualmark}, are provided. The +command \Macro{manualmark} switches to manual marks and deactivates the +automatic filling of the marks. In contrast to this \Macro{automark} and +\Macro{automark*} can be used to define, which section levels should be used +for the automatic mark filling. The optional argument is the \PName{section + level of the right mark}, the mandatory argument the \PName{section level of + the left mark}. The arguments always should be the name of a section level +like \PValue{part}, \PValue{chapter}, \PValue{section}, \PValue{subsection}, +\PValue{subsubsection}, \PValue{paragraph}, or \PValue{subparagraph}. + +Generally the higher level should be used for the left mark and the lower +level for the right mark. This is only a convention and not a need, but it +makes sense. + +The difference in \Macro{automark} and \Macro{automark*} is, that +\Macro{automark} deletes all prior usages of \Macro{automark} or +\Macro{automark*}, while \Macro{automark*} changes only the behaviour of the +section levels of its arguments. So you can even build more complex cases. + +\begin{Example} + Assume you want the chapter heading to be the running head of even pages + and the section heading to be the running head of odd pages like this is + usual for books. But on odd pages you also want the chapter headings as a + running head as long as the first section appears. To do so, you first have + to load \Package{scrlayer-scrpage} and select page style + \Pagestyle{scrheadings}. So you're document starts with: +\begin{lstcode} + \documentclass{scrbook} + \usepackage{scrlayer-scrpage} + \pagestyle{scrheadings} +\end{lstcode} + Next you will setup the chapter heading to be not only the left but also the + right mark: +\begin{lstcode} + \automark[chapter]{chapter} +\end{lstcode} + Then the section heading should also become a right mark: +\begin{lstcode} + \automark*[section]{} +\end{lstcode} + Here the star version is used, because the prior \Macro{automark} command + should be still valid. Additionally the mandatory argument for the + \PName{section level of the left mark} is empty, because this mark should be + unchanged. + + Now you just need some document contents to see a result: +\begin{lstcode} + \usepackage{lipsum} + \begin{document} + \chapter{Chapter Heading} + \lipsum[1-20] + \section{Section Heading} + \lipsum[21-40] + \end{document} +\end{lstcode} + We once again use package \Package{lipsum}\IndexPackage{lipsum} to generate + some dummy text with command \Macro{lipsum}\IndexCmd{lipsum}. The package is + really useful. + + If you'd test the example, you'd see, that the chapter start page does not + have a running head as usual. This is, because it automatically uses the + \Pagestyle{plain} page style \Pagestyle{plain.scrheadings}. Pages~2--4 have + the chapter headings in the running head. After the section heading on + page~4 the running head of page~5 changes into this section heading. From + this page to the end the running head alternates between chapter and section + heading from page to page. +\end{Example} + +Instead of the commands you may also use the options \Option{manualmark} and +\Option{automark} to switch between manual and automatic running +heads. Thereby \Option{automark} always uses the default +\begin{lstcode}[belowskip=\dp\strutbox] + \automark[section]{chapter} +\end{lstcode} +for classes with \Macro{chapter} and +\begin{lstcode}[belowskip=\dp\strutbox] + \automark[subsection]{section} +\end{lstcode} +for classes without \Macro{chapter}. + +But normally in single side mode you do not want that the lower level +influences the right mark, you want the higher level, that +will fill only the left mark in double side layout, to be the running head of +all pages. The default option \Option{autooneside} corresponds to this +behaviour. The option understands the values for simple switches, that can be +found in \autoref{tab:truefalseswitch} on +\autopageref{tab:truefalseswitch}. If you'd deactivate the option, in single +side layout the optional and the obligatory arguments of \Macro{automark} and +\Macro{automark*} will influence the running head again.% +% +\begin{Example} + Assume you have a single sided report but want similar running heads as in + the book example before. The chapter headings should be used as a running + head as long as the first section appears. From the first section on, the + section heading should be used. So we modify the previous example a little + bit: +\begin{lstcode} + \documentclass{scrreprt} + \usepackage[autooneside=false]{scrlayer-scrpage} + \pagestyle{scrheadings} + \automark[section]{chapter} + \usepackage{lipsum} + \begin{document} + \chapter{Chapter Heading} + \lipsum[1-20] + \section{Section Heading} + \lipsum[21-40] + \end{document} +\end{lstcode} + You can see, that we do not need a \Macro{automark*} command in this + case. Please try the example also with \Option{autooneside} set to + \PValue{true} or remove the option and its value. You should find a + difference at the running head in the pages' head from page~4 on. +\end{Example} + +Please note\textnote{Attention!}, only loading the package does not have +any effect on the fact whether automatic or manual running heads are used or +what kind of section headings do fill up the marks. Only using an explicit +option \Option{automark} or \Option{manualmark} or one of the commands +\Macro{automark} or \Macro{manualmark} can reach a well defined state.% +\EndIndex{Option}{autooneside~=\PName{simple switch}}% +\EndIndex{Option}{manualmark}% +\EndIndex{Option}{automark}% +\EndIndex{Cmd}{manualmark}% +\EndIndex{Cmd}{automark}% +\fi % ******************************************** End only scrlayer-scrpage * + +\ifshortversion\IgnoreThistrue\IfCommon{scrlayer}{\IgnoreThisfalse}\fi +\ifIgnoreThis %++++++++++++++++++++++++++++++++++++++++++++++++ not scrlayer + +\else %------------------------------------------------------- only scrlayer - + +\begin{Declaration} + \KOption{draft}\PName{simple switch} +\end{Declaration} +\BeginIndex{Option}{draft~=\PName{simple switch}}% +This \KOMAScript{} option understands the values for simple switches, that are +shown in \autoref{tab:truefalseswitch} on \autopageref{tab:truefalseswitch}. If +the option is active, all elements of the page styles will also show dimension +lines. This might be useful while draft editing. If the option has been set as +a global option (see the optional argument of \Macro{documentclass}), but you +do not want the dimension lines, you can deactivate them for the package only +using \OptionValue{draft}{false} as an optional argument of \Macro{usepackage} +while loading the package.% +\EndIndex{Option}{draft~=\PName{Ein-Aus-Wert}}% + +\begin{Declaration} + \Macro{MakeMarkcase}\Parameter{string} +\end{Declaration} +\BeginIndex{Cmd}{MakeMarkcase}% +The automatic running head and only this uses \Macro{MakeMarkcase} for its +output. If the command has not been defined, e.\,g., by the class, while +loading \Package{scrlayer}, it would be defined with the default of outputting +the argument \PName{string} without changes. But the default can be change +either redefining \Macro{MakeMarkcase} or using option \Option{markcase}, that +\ifshortversion has been described in +\autoref{sec:scrlayer-scrpage.pagestyle.content}% +\else will be described next% +\fi% +. Depending on the setting the argument could, e.\,g., be converted into upper +or lower cases. +% +\EndIndex{Cmd}{MakeMarkcase}% +\fi %***************************************************** End only scrlayer * + +\ifshortversion\IgnoreThistrue\IfCommon{scrlayer-scrpage}{\IgnoreThisfalse}\fi +\ifIgnoreThis %++++++++++++++++++++++++++++++++++++++++ not scrlayer-scrpage + +\else %----------------------------------------------- only scrlayer-scrpage - +\begin{Declaration} + \KOption{markcase}\PName{Wert} +\end{Declaration} +\BeginIndex{Option}{markcase~=\PName{Wert}}% +As already mentioned with \Package{scrlayer} you may switch between manual and +automatic running heads. Using automatic running heads the corresponding marks +will be filled by the section heading commands. Some culture areas do convert +the running heads into upper case letters in opposite to the German +typographic habit. The \LaTeX{} standard classes do so by default. Package +\Package{scrlayer} optionally provides this too. Therefor you'd use option +\OptionValue{markcase}{upper} which results in a redefinition of +\Macro{MakeMarkcase}\IndexCmd[indexmain]{MakeMarkcase}, a command, that is +used by \Package{scrlayer} for automatic running heads. + +Unfortunately \LaTeX's command for upper case letter typesetting, +\Macro{MakeUppercase}\IndexCmd{MakeUppercase} results in an very inadequate +typesetting, because it neither uses letter spacing nor does it space +balancing. One reason for this behaviour might be, that a glyph analyzing +would be needed, to incorporate the letter shapes and their combination while +space balancing. Because of this \KOMAScript{} author suggests to abstain from +upper case letter typesetting for running heads. This could be achieved using +\OptionValue{markcase}{used}. Nevertheless, some classes would add +\Macro{MarkUppercase} or even \TeX{} command \Macro{uppercase} into the +running heads. For such cases option \OptionValue{markcase}{noupper} can be +used. This will also deactivate \Macro{MakeUppercase} and \Macro{uppercase} +inside the running heads. + +You can find all valid values for \Option{markcase} in +\autoref{tab:scrlayer-scrpage.markcase}.% +% +\begin{table} + \centering + \caption[Possible values for option \Option{markcase}]{Possible values for + option \Option{markcase} to select upper/lower case letter typesetting in + automatic running heads}% + \label{tab:scrlayer-scrpage.markcase}% + \begin{desctabular} + \pventry{lower}{\IndexOption{markcase~=\PValue{lower}}% + redefines \Macro{MakeMarkcase} to convert the automatic running heads + into lower case letters using \Macro{MakeLowercase} + (lower case typesetting).% + }% + \pventry{upper}{\IndexOption{markcase~=\PValue{upper}}% + redefines \Macro{MakeMarkcase} to convert the automatic running heads + into upper case letters using \Macro{MakeUppercase} + (upper case typesetting).% + }% + \pventry{used}{\IndexOption{markcase~=\PValue{used}}% + redefines \Macro{MakeMarkcase} to use automatic running heads without + any case changes.% + }% + \entry{\PValue{ignoreuppercase}, \PValue{nouppercase}, + \PValue{ignoreupper}, + \PValue{noupper}}{\IndexOption{markcase~=\PValue{noupper}}% + redefines not only \Macro{MakeMarkcase} but also locally to the running + heads \Macro{MakeUppercase} and \Macro{uppercase} to leave the automatic + running heads unchanged.% + }% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{markcase~=\PName{Wert}}% + +\begin{Declaration} + \Macro{leftmark}\\ + \Macro{rightmark}\\ + \Macro{headmark}\\ + \Macro{pagemark} +\end{Declaration} +\BeginIndex{Cmd}{leftmark}% +\BeginIndex{Cmd}{rightmark}% +\BeginIndex{Cmd}{headmark}% +\BeginIndex{Cmd}{pagemark}% +If you want to differ from the predefined page styles, usually you need to +decide, where to place the marks' contents. With \Macro{leftmark} you can state +the contents of the left mark. + +Similar you can use \Macro{rightmark} to state the contents of the right +mark. For more information about some intricacies of this see the further +description of \Macro{rightmark} in \autoref{sec:maincls-experts.addInfos}, +\autopageref{desc:maincls-experts.cmd.rightmark}. + +Somehow easier would be usage of \Macro{headmark}. This extension of +\Package{scrlayer} aliases either \Macro{leftmark} or \Macro{rightmark} +depending on whether the current page is even or odd. + +Strictly thought command \Macro{pagemark} is not involved by \TeX's mark +mechanism. It is only used to output a formatted page number. +\BeginIndex{FontElement}{pagenumber}% +The font of element +\FontElement{pagenumber}\important{\FontElement{pagenumber}} will be used for +the output. This can be changed using command \Macro{setkomafont} or +\Macro{addtokomafont} (see also \autoref{sec:maincls.textmarkup}, +\autopageref{desc:maincls.cmd.setkomafont}).% +\EndIndex{FontElement}{pagenumber}% +% +\begin{Example} + Assume you want to use a left aligned running head and right aligned page + number in the head of the pages of a document in single side layout. The + following minimal but working examples would do so: +\begin{lstcode} + \documentclass{scrreprt} + \usepackage{blindtext} + \usepackage[automark]{scrlayer-scrpage} + \pagestyle{scrheadings} + \ihead{\headmark} + \ohead[\pagemark]{\pagemark} + \chead{} + \cfoot[]{} + \begin{document} + \blinddocument + \end{document} +\end{lstcode} + Here package \Package{blindtext}\IndexPackage{blindtext} with its command + \Macro{blinddocument}\IndexCmd{blinddocument} has been used to easily + generate content for an example document. + + Commands \Macro{ihead} and \Macro{ohead} have been used to place the wanted + marks. Although the page mark will be place not only to pages in page style + \Pagestyle{scrheadings} but using the optional argument also to pages in + page style \Pagestyle{plain.scrheadings}. + + Because of both page styles already have marks in the middle of the page + head and page foot, those elements will be cleared using \Macro{chead} and + \Macro{cfoot} with empty arguments. Alternatively you'd use + \Macro{clearpairofpagestyles} \emph{before} \Macro{ihead}. You will find a + description of this command in + \autoref{sec:scrlayer-scrpage.pagestyle.pairs}. +\end{Example} + +Please note\textnote{Attention!}, that the empty optional argument of +\Macro{cfoot} in the example above is not the same like omitting the optional +argument. Please try it out and have a look at the difference in the footer of +the first page.% +% +\EndIndex{Cmd}{pagemark}% +\EndIndex{Cmd}{headmark}% +\EndIndex{Cmd}{rightmark}% +\EndIndex{Cmd}{leftmark}% + +\begin{Declaration} + \Macro{partmarkformat}\\ + \Macro{chaptermarkformat}\\ + \Macro{sectionmarkformat}\\ + \Macro{subsectionmarkformat}\\ + \Macro{subsubsectionmarkformat}\\ + \Macro{paragraphmarkformat}\\ + \Macro{subparagraphmarkformat} +\end{Declaration} +\BeginIndex{Cmd}{partmarkformat}% +\BeginIndex{Cmd}{chaptermarkformat}% +\BeginIndex{Cmd}{sectionmarkformat}% +\BeginIndex{Cmd}{subsectionmarkformat}% +\BeginIndex{Cmd}{subsubsectionmarkformat}% +\BeginIndex{Cmd}{paragraphmarkformat}% +\BeginIndex{Cmd}{subparagraphmarkformat}% +Usually the \KOMAScript{} classes and package \Package{scrlayer} use these +commands internally to bring the section numbers into wanted form and +additionally they support the \Macro{autodot} mechanism of the \KOMAScript{} +classes. If wanted these commands may be redefined to get another form of +section numbers.% +% +\begin{Example} + Assume you do not want section numbers but section heading text only in the + running head. So: +\begin{lstcode} + \renewcommand*{\sectionmarkformat}{} +\end{lstcode} + would be a simple solution for this. +\end{Example} +% +\EndIndex{Cmd}{subparagraphmarkformat}% +\EndIndex{Cmd}{paragraphmarkformat}% +\EndIndex{Cmd}{subsubsectionmarkformat}% +\EndIndex{Cmd}{subsectionmarkformat}% +\EndIndex{Cmd}{sectionmarkformat}% +\EndIndex{Cmd}{chaptermarkformat}% +\EndIndex{Cmd}{partmarkformat}% + +\begin{Declaration} + \Macro{partmark}\Parameter{Text}\\ + \Macro{chaptermark}\Parameter{Text}\\ + \Macro{sectionmark}\Parameter{Text}\\ + \Macro{subsectionmark}\Parameter{Text}\\ + \Macro{subsubsectionmark}\Parameter{Text}\\ + \Macro{paragraphmark}\Parameter{Text}\\ + \Macro{subparagraphmark}\Parameter{Text} +\end{Declaration} +\BeginIndex{Cmd}{partmark}% +\BeginIndex{Cmd}{chaptermark}% +\BeginIndex{Cmd}{sectionmark}% +\BeginIndex{Cmd}{subsectionmark}% +\BeginIndex{Cmd}{subsubsectionmark}% +\BeginIndex{Cmd}{paragraphmark}% +\BeginIndex{Cmd}{subparagraphmark}% +Most classes use these commands to setup marks corresponding to the +section commands. Thereby the only argument is the text without the number of +the section heading, that should be used for the running head. For the number +simply the number of the current section level will be used, if the current +level uses numbers. + +If users redefine these commands, they should\textnote{Attention!} take care +to also use the counter \Counter{secnumdepth} for the test whether or not the +section level should output a number, even in the case the user +does not change counter \Counter{secnumdepth} himself, because packages and +classes may do so locally and rely on correct handling of +\Counter{secnumdepth}. + +However, package \Package{scrlayer} redefines these commands whenever you use +\Macro{automark} or \Macro{manualmark} or the corresponding options, to +activate or deactivate the wanted running heads.% +% +\EndIndex{Cmd}{subparagraphmark}% +\EndIndex{Cmd}{paragraphmark}% +\EndIndex{Cmd}{subsubsectionmark}% +\EndIndex{Cmd}{subsectionmark}% +\EndIndex{Cmd}{sectionmark}% +\EndIndex{Cmd}{chaptermark}% +\EndIndex{Cmd}{partmark}% + +\begin{Declaration} + \Macro{markleft}\Parameter{left mark}\\ + \Macro{markright}\Parameter{right mark}\\ + \Macro{markboth}\Parameter{left mark}\Parameter{right mark} +\end{Declaration} +\BeginIndex{Cmd}{markleft}% +\BeginIndex{Cmd}{markright}% +\BeginIndex{Cmd}{markboth}% +Independent of whether currently manual or automatic running heads are active, +you may change the contents of the \PName{left mark} or the \PName{right mark} +at any time using these commands. You should note, that the resulting contents +of \Macro{leftmark}\IndexCmd{leftmark} is the \PName{left + mark} of the last \Macro{markleft} or \Macro{markboth} command of the +current page. In opposite to this the resulting contents of +\Macro{rightmark}\IndexCmd{rightmark} is the \PName{right mark} of the first +\Macro{rightmark} or \Macro{markboth} command of the current page. + +If you are using manual running heads, the marks will stay valid until one of +the corresponding commands will be used again. If you are using automatic +running heads the marks can loose their validity with the next section heading +depending on the configuration of the automatism. + +You may also use these commands together with the star versions of the section +commands.% +% +\begin{Example} + Assume you are using a preface with several pages just before the table of + contents, that should not have an entry at the table of contents + itself. Because of using a separation line at the page head, you want also a + running head for this preface: +\begin{lstcode} + \documentclass[headsepline]{book} + \usepackage{scrlayer-scrpage} + \pagestyle{scrheadings} + \usepackage{blindtext} + \begin{document} + \chapter*{Preface} + \markboth{Preface}{Preface} + \blindtext[20] + \tableofcontents + \blinddocument + \end{document} +\end{lstcode} + First of all this seems to produce the wanted result. But have a closer + look: In difference to the other running heads ``\texttt{Preface}'' is not in + upper case letters. But you can fix this easily: +\begin{lstcode} + \documentclass[headsepline]{book} + \usepackage{scrlayer-scrpage} + \pagestyle{scrheadings} + \usepackage{blindtext} + \begin{document} + \chapter*{Preface} + \markboth{\MakeMarkcase{Preface}}{\MakeMarkcase{Preface}} + \blindtext[20] + \tableofcontents + \blinddocument + \end{document} +\end{lstcode} + Using command \Macro{MakeMarkcase} results in getting the same letter case + as for automatic running heads. + + Now, let's move command \Macro{tableofcontents} in front of the + preface. Let's remove the \Macro{markboth} command too. You'll realise, that + the preface now has the running head ``\texttt{CONTENTS}''. This is because + of a quirk of \Macro{chapter*} (see also \autoref{sec:maincls.structure} on + \autopageref{desc:maincls.cmd.chapter*}). If in such cases the running head + should be removed, \Macro{markboth} with two empty arguments would be + useful: +\begin{lstcode} + \documentclass[headsepline]{book} + \usepackage{scrlayer-scrpage} + \pagestyle{scrheadings} + \usepackage{blindtext} + \begin{document} + \tableofcontents + \chapter*{Preface} + \markboth{}{} + \blindtext[20] + \blinddocument + \end{document} +\end{lstcode} +\end{Example} +% +\EndIndex{Cmd}{markboth}% +\EndIndex{Cmd}{markright}% +\EndIndex{Cmd}{markleft}% + +\fi %********************************************* End only scrlayer-scrpage * + + +\ifshortversion\IgnoreThistrue\IfCommon{scrlayer}{\IgnoreThisfalse}\fi +\ifIgnoreThis %++++++++++++++++++++++++++++++++++++++++++++++++ not scrlayer + +\else %------------------------------------------------------- only scrlayer - + +\begin{Declaration} + \Macro{GenericMarkFormat}\Parameter{name of the section level} +\end{Declaration} +\BeginIndex{Cmd}{GenericMarkFormat}% +At the running head this command will be used by default for the formatting of +all section numbers below the subsection and with classes without +\Macro{chapter} also for the section level and the subsection level, if the +mark commands for those numbers have not been defined before loading +\Package{scrlayer}. Thereby the package uses \Macro{@seccntmarkformat} if such +a command has been defined, like the \KOMAScript{} classes do. Otherwise +\Macro{@seccntformat} will be used, which is provided by the \LaTeX{} +kernel. The expected, mandatory argument of the command is the \PName{name of + a section level}, i.\,e., \PValue{chapter} or \PValue{section} +\emph{without} the backslash prefix. + +You can change the default formatting of the numbers, that use this command, +by redefining only this single command. Classes can change the default +formatting also by defining this command.% +% +\begin{Example} + Assume you want the section numbers of all levels at the running head of + an article to be printed in white colour inside a black coloured box. Using + standard \LaTeX{} \Class{article} class, package \Package{scrlayer} defines + the number mark commands \Macro{sectionmarkformat} and + \Macro{subsectionmarkformat} using \Macro{GenericMarkFormat}. So you need to + redefine only this single command: +\begin{lstcode} + \documentclass{article} + \usepackage{blindtext} + \usepackage[automark]{scrlayer-scrpage} + \pagestyle{scrheadings} + \usepackage{xcolor} + \newcommand*{\numberbox}[1]{% + \colorbox{black}{\strut~\textcolor{white}{#1}~}} + \renewcommand*{\GenericMarkFormat}[1]{% + \protect\numberbox{\csname the#1\endcsname}\enskip} + \begin{document} + \blinddocument + \end{document} +\end{lstcode} + The colour has been done using package + \Package{xcolor}\IndexPackage{xcolor}. See the package manual for more + information about this. Additionally a not visible strut has been + used. Every complete \LaTeX{} introduction should explain the related + command \Macro{strut}. A helper macro \Macro{numberbox} has been defined for + the formatting of the number within a box. In the redefinition of + \Macro{GenericMarkFormat} this has been prefixed by + \Macro{protect} to protect it from expansion. This is necessary because + otherwise the upper case letter conversion of \Macro{MakeUppercase} that + will be used for the running head, would result in an ask for colours + ``\texttt{BLACK}'' and ``\texttt{WHITE}'' instead of ``\texttt{black}'' and + ``\texttt{white}'' and those colours are undefined. Alternatively you may + define \Macro{numberbox} using \Macro{DeclareRobustCommand*} instead of + \Macro{newcommand*} and then omit \Macro{protect} (see + \cite{latex:clsguide}). + + If you'd do the same with a \KOMAScript{} class or with one of the \LaTeX{} + standard classes \Class{book} or \Class{report}, you'd additionally have to + redefine \Macro{sectionmarkformat} and \Macro{subsectionmarkformat} + respectively \Macro{chaptermarkformat} and \Macro{sectionmarkformat} too, + because then these would not have been defined using + \Macro{GenericMarkFormat}: +\begin{lstcode} + \documentclass{scrbook} + \usepackage{blindtext} + \usepackage[automark]{scrlayer-scrpage} + \pagestyle{scrheadings} + \usepackage{xcolor} + \newcommand*{\numberbox}[1]{% + \colorbox{black}{\strut~\textcolor{white}{#1}~}} + \renewcommand*{\GenericMarkFormat}[1]{% + \protect\numberbox{\csname the#1\endcsname}\enskip} + \renewcommand*{\chaptermarkformat}{\GenericMarkFormat{chapter}} + \renewcommand*{\sectionmarkformat}{\GenericMarkFormat{section}} + \begin{document} + \blinddocument + \end{document} +\end{lstcode} +\end{Example} +% +\EndIndex{Cmd}{GenericMarkFormat}% + +\begin{Declaration} + \Macro{@mkleft}\Parameter{left mark}\\ + \Macro{@mkright}\Parameter{right mark}\\ + \Macro{@mkdouble}\Parameter{mark}\\ + \Macro{@mkboth}\Parameter{left mark}\Parameter{right mark} +\end{Declaration} +\BeginIndex{Cmd}{@mkleft}% +\BeginIndex{Cmd}{@mkright}% +\BeginIndex{Cmd}{@mkdouble}% +\BeginIndex{Cmd}{@mkboth}% +Sometimes inside classes and packages the marks for running heads should be +filled up only if automatic running heads are active (see option +\Option{automark} and command \Macro{automark} on +\autopageref{desc:scrlayer-scrpage.cmd.automark}). In the \LaTeX{} standard +classes only \Macro{@mkboth} has been used for this. This command is either +\Macro{@gobbletwo}, that simply destroys both mandatory arguments, or +\Macro{markboth}, a command that fills up the left and \PValue{left mark} and +the \PValue{right mark}. Packages like \Package{babel} also change +\Macro{\@mkboth}, i.\,e., to add language switching to the running head. + +But if a class or package author only wants to change either the \PName{left + mark} or the \PName{right mark} without the other one, a proper command is +missing. Package \Package{scrlayer} itself needs such commands for the +implementation of all cases of automatic running heads. So if command +\Macro{@mkleft} to fill up only the left mark or \Macro{@mkright} to fill up +only the right mark or \Macro{@mkdouble} to fill up both marks with the same +content is undefined while loading \Package{scrlayer}, the package will define +them. Thereby the actual definition of \Macro{@mkboth} will be used as an +indicator whether or not automatic running heads should be used. The new +commands will full up the marks only in the case of automatic running heads. + +Class and package authors can use these commands too, if they want to fill up +only one of the marks or both marks with the same content but only if +automatic running heads are activated. This condition is also the difference +to the commands \Macro{markleft}, \Macro{markright}, and \Macro{markboth}.% +\EndIndex{Cmd}{@mkboth}% +\EndIndex{Cmd}{@mkdouble}% +\EndIndex{Cmd}{@mkright}% +\EndIndex{Cmd}{@mkleft}% + + +\fi %***************************************************** End only scrlayer * + + +\ifshortversion% +\IfCommon{scrlayer}{% + For more information about manipulation of the contents of page styles see + also \autoref{sec:scrlayer-scrpage.pagestyle.content} from + \autopageref{sec:scrlayer-scrpage.pagestyle.content}.% +}% +\fi + +%%% Local Variables: +%%% mode: latex +%%% mode: flyspell +%%% coding: iso-latin-1 +%%% ispell-local-dictionary: "en_GB" +%%% TeX-master: "scrlayer-de.tex" +%%% TeX-PDF-mode: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-3.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-3.tex index 4ab9ce77ef9..a747b1f68e2 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-3.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-3.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-3.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-3.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-3.tex}[2012/05/15 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-3.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \translator{Markus Kohm\and Krickette Murabayashi} % Date of the translated german file: 2009/11/28 diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-4.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-4.tex index 38c0e9e2730..8388bc8a938 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-4.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-4.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-4.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-4.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-4.tex}[2012/05/15 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-4.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \translator{Markus Kohm\and Krickette Murabayashi} % Date of the translated German file: 2011/09/05 diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-5.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-5.tex index dfbf6fd9aff..fea58a3a5ee 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-5.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-5.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-5.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-5.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,10 +45,12 @@ % % ====================================================================== -\ProvidesFile{common-5.tex}[2012/05/15 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-5.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \translator{Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi} -% Date of the translated German file: 2012/01/01 +% Date of the translated German file: 2013/07/31 \makeatletter \@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% @@ -60,11 +62,12 @@ \section{Text Markup} \label{sec:\csname label@base\endcsname.textmarkup}% -\ifshortversion\IgnoreThisfalse\IfCommon{scrlttr2}{\IgnoreThistrue}\fi% -\ifIgnoreThis %++++++++++++++++++++++++++++++++++++++++++++++ nur scrlttr2 + +\IgnoreThisfalse +\ifshortversion\IgnoreThistrue\ifCommonmaincls\IgnoreThisfalse\fi\fi% +\ifIgnoreThis %++++++++++++++++++++++++++++++++++++ short version (maincls) + What is described in \autoref{sec:maincls.textmarkup} applies, mutatis mutandis. -\else %---------------------------------------------------- nicht scrlttr2 - +\else %----------------------------------------- long version (not maincls) - \BeginIndex{}{text>markup}% \BeginIndex{}{font}% @@ -177,8 +180,8 @@ You should\textnote{Attention!}, however, absolutely limit yourself to those statements that really switch only one font attribute. This will usually be the commands \Macro{normalfont}, \Macro{rmfamily}, \Macro{sffamily}, \Macro{ttfamily}, \Macro{mdseries}, \Macro{bfseries}, \Macro{upshape}, -\Macro{itshape}, \Macro{slshape}, and \Macro{scshape}, as well as the font size -commands \Macro{Huge}, \Macro{huge}, \Macro{LARGE}, \Macro{Large}, +\Macro{itshape}, \Macro{slshape}, and \Macro{scshape}, as well as the font +size commands \Macro{Huge}, \Macro{huge}, \Macro{LARGE}, \Macro{Large}, \Macro{large}, \Macro{normalsize}, \Macro{small}, \Macro{footnotesize}, \Macro{scriptsize}, and \Macro{tiny}. The description of these commands can be found in \cite{lshort}, \cite{latex:usrguide}, or \cite{latex:fntguide}. Color @@ -192,7 +195,7 @@ completely new definition. In contrast to this, the \Macro{addtokomafont} command merely extends an existing definition. It is recommended to not use both commands inside the document body, but only in the document preamble. Usage examples can be found in the paragraphs on the corresponding element. -\fi %************************************************* Ende nicht scrlttr2 * +\fi %**************************************** End long version (not maincls) * Names and meanings of the individual items are listed in % \IfNotCommon{scrextend}{\autoref{tab:\csname label@base\endcsname.elementsWithoutText}}% @@ -206,6 +209,362 @@ Names and meanings of the individual items are listed in % the \KOMAScript{} classes. }% The default values are shown in the corresponding paragraphs. +\ifIgnoreThis %++++++++++++++++++++++++++++++++++++ short version (maincls) + +\else %----------------------------------------- long version (not maincls) - +With command \Macro{usekomafont} the current font style may be changed into +the font style of the selected \PName{element}. +% +\ifCommonmaincls %++++++++++++++++++++++++++++++++++++++++++++ maincls only + +% +\begin{Example} + \phantomsection\label{desc:maincls.setkomafont.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{lstcode} + \setkomafont{captionlabel}{% + \usekomafont{descriptionlabel}% + } +\end{lstcode} + You can find other examples in the paragraphs on each element. +\end{Example} + +\begin{desclist} + \desccaption{% + Elements whose type style can be changed with the {\KOMAScript} command + \Macro{setkomafont} or + \Macro{addtokomafont}\label{tab:maincls.elementsWithoutText}% + }{% + Elements whose type style can be changed (\emph{continuation})% + }% + \feentry{author}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}}% + author of the document on the main title, i.\,e., the argument of + \Macro{author} when \Macro{maketitle} will be used (see + \autoref{sec:maincls.titlepage}, \autopageref{desc:maincls.cmd.author})}% + \feentry{caption}{text of a table or figure caption (see + \autoref{sec:maincls.floats}, \autopageref{desc:maincls.cmd.caption})}% + \feentry{captionlabel}{label of a table or figure caption; used according to + the element \FontElement{caption} (see \autoref{sec:maincls.floats}, + \autopageref{desc:maincls.cmd.caption})}% + \feentry{chapter}{title of the sectional unit \Macro{chapter} (see + \autoref{sec:maincls.structure}, \autopageref{desc:maincls.cmd.chapter})}% + \feentry{chapterentry}{% + table of contents entry of the sectional unit \Macro{chapter} (see + \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{chapterentrypagenumber}{% + page number of the table of contents entry of the sectional unit + \Macro{chapter}, variation on the element \FontElement{chapterentry} (see + \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{chapterprefix}{% + chapter number line at setting \OptionValue{chapterprefix}{true} or + \OptionValue{appendixprefix}{true} (see \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.option.chapterprefix})}% + \feentry{date}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}}% + date of the document on the main title, i.\,e., the argument of + \Macro{date} when \Macro{maketitle} will be used (see + \autoref{sec:maincls.titlepage}, \autopageref{desc:maincls.cmd.date})}% + \feentry{dedication}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}}% + dedication page after the main title, i.\,e., the argument of + \Macro{dedication} when \Macro{maketitle} will be used (see + \autoref{sec:maincls.titlepage}, + \autopageref{desc:maincls.cmd.dedication})}% + \feentry{descriptionlabel}{labels, i.\,e., the optional argument of + \Macro{item} in the \Environment{description} environment (see + \autoref{sec:maincls.lists}, \autopageref{desc:maincls.env.description})}% + \feentry{dictum}{dictum, wise saying, or smart slogan (see + \autoref{sec:maincls.dictum}, \autopageref{desc:maincls.cmd.dictum})}% + \feentry{dictumauthor}{author of a dictum, wise saying, or smart slogan; + used according to the element \FontElement{dictumtext} (see + \autoref{sec:maincls.dictum}, \autopageref{desc:maincls.cmd.dictum})}% + \feentry{dictumtext}{another name for \FontElement{dictum}}% + \feentry{disposition}{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 (see \autoref{sec:maincls.structure} ab + \autopageref{sec:maincls.structure})}% + \feentry{footnote}{footnote text and marker (see + \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.footnote})}% + \feentry{footnotelabel}{mark of a footnote; used according to the element + \FontElement{footnote} (see \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.footnote})}% + \feentry{footnotereference}{footnote reference in the text (see + \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.footnote})}% + \feentry{footnoterule}{% + horizontal rule\ChangedAt{v3.07}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} above the footnotes at the end of the text area (see + \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.setfootnoterule})}% + \feentry{labelinglabel}{labels, i.\,e., the optional argument of + \Macro{item} in the \Environment{labeling} environment (see + \autoref{sec:maincls.lists}, \autopageref{desc:maincls.env.labeling})}% + \feentry{labelingseparator}{separator, i.\,e., the optional argument of the + \Environment{labeling} environment; used according to the element + \FontElement{labelinglabel} (see \autoref{sec:maincls.lists}, + \autopageref{desc:maincls.env.labeling})}% + \feentry{minisec}{title of \Macro{minisec} (see + \autoref{sec:maincls.structure} ab + \autopageref{desc:maincls.cmd.minisec})}% + \feentry{pagefoot}{only used if package \Package{scrpage2} has been loaded + (see \autoref{cha:scrpage}, + \autopageref{desc:scrpage.fontelement.pagefoot})}% + \feentry{pagehead}{another name for \FontElement{pageheadfoot}}% + \feentry{pageheadfoot}{the head of a page, but also the foot of a page (see + \autoref{sec:maincls.pagestyle} ab \autopageref{sec:maincls.pagestyle})}% + \feentry{pagenumber}{page number in the header or footer (see + \autoref{sec:maincls.pagestyle})}% + \feentry{pagination}{another name for \FontElement{pagenumber}}% + \feentry{paragraph}{title of the sectional unit \Macro{paragraph} (see + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.paragraph})}% + \feentry{part}{title of the \Macro{part} sectional unit, without the line + containing the part number (see \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.part})}% + \feentry{partentry}{% + table of contents entry of the sectional unit \Macro{part} (see + \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{partentrypagenumber}{% + Page number of the table of contents entry of the sectional unit + \Macro{part} variation on the element \FontElement{partentry} (see + \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{partnumber}{line containing the part number in a title of the + sectional unit \Macro{part} (see \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.part})}% + \feentry{publishers}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}}% + publishers of the document on the main title, i.\,e., the argument of + \Macro{publishers} when \Macro{maketitle} will be used (see + \autoref{sec:maincls.titlepage}, + \autopageref{desc:maincls.cmd.publishers})}% + \feentry{section}{title of the sectional unit \Macro{section} (see + \autoref{sec:maincls.structure}, \autopageref{desc:maincls.cmd.section})}% + \feentry{sectionentry}{% + table of contents entry of sectional unit \Macro{section} (only available + in \Class{scrartcl}, see \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{sectionentrypagenumber}{% + page number of the table of contents entry of the sectional unit + \Macro{section}, variation on element \FontElement{sectionentry} (only + available in \Class{scrartcl, see \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents}})}% + \feentry{sectioning}{another name for \FontElement{disposition}}% + \feentry{subject}{% + categorization of the document, i.\,e., the argument of \Macro{subject} on + the main title page (see \autoref{sec:maincls.titlepage}, + \autopageref{desc:maincls.cmd.subject})}% + \feentry{subparagraph}{title of the sectional unit \Macro{subparagraph} (see + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.subparagraph})}% + \feentry{subsection}{title of the sectional unit \Macro{subsection} (see + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.subsection})}% + \feentry{subsubsection}{title of the sectional unit \Macro{subsubsection} + (see \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.subsubsection})}% + \feentry{subtitle}{% + subtitle of the document, i.\,e., the argument of \Macro{subtitle} on the + main title page (see \autoref{sec:maincls.titlepage}, + \autopageref{desc:maincls.cmd.title})}% + \feentry{title}{main title of the document, i.\,e., the argument of + \Macro{title} (for details about the title size see the additional note in + the text of \autoref{sec:maincls.titlepage} from + \autopageref{desc:maincls.cmd.title})}% + \feentry{titlehead}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}}% + head above the main title of the document, i.\,e., the argument of + \Macro{titlehead} when \Macro{maketitle} will be used (see + \autoref{sec:maincls.titlepage}, + \autopageref{desc:maincls.cmd.titlehead})}% +\end{desclist} +\fi %************************************************** end of maincls only * +\ifCommonscrextend %++++++++++++++++++++++++++++++++++++++++ scrextend only + +\begin{Example} + Assumed, you want to print the document title in a serif font and with red + color. You may do this using: +\begin{lstcode} + \setkomafont{title}{\color{red}} +\end{lstcode} + Package \Package{color} or \Package{xcolor} will be needed for command + \lstinline|\color{red}|. The additional usage of \Macro{normalfont} is not + needed in this case, because it is already part of the definition of the + title itself. This\textnote{Attention!} example also needs option + \OptionValue{extendedfeature}{title} (see + \autoref{sec:scrextend.optionalFeatures}, + \autopageref{desc:scrextend.option.extendedfeature}). +\end{Example} +\fi %************************************************ end of scrextend only * +\ifCommonscrlttr %+++++++++++++++++++++++++++++++++++++++++++ scrlttr2 only + +A general example for the usage of \Macro{setkomafont} and \Macro{usekomafont} +may be found in \autoref{sec:maincls.textmarkup} at +\autopageref{desc:maincls.setkomafont.example}. +% +\fi %************************************************* End of scrlttr2 only * +\fi %*************************************** End long version (not maincls) * +\ifCommonscrlttr % ++++++++++++++++++++++++++++++++++++++++++ scrlttr2 only + +\begin{desclist} + \desccaption{% + Alphabetical list of elements whose font can be changed in + \Class{scrlttr2} using the commands \Macro{setkomafont} and + \Macro{addtokomafont}\label{tab:scrlttr2.elementsWithoutText}% + }{% + Elements whose font can be changed (\emph{continuation})% + }% + \feentry{addressee}{name und address in address field % + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.option.addrfield})}% + \feentry{backaddress}{% + return address for a window envelope % + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.option.backaddress})}% + \feentry{descriptionlabel}{% + label, i.\,e., the optional argument of \Macro{item}, in a + \Environment{description} environment % + (\autoref{sec:scrlttr2.lists}, + \autopageref{desc:scrlttr2.env.description})}% + \feentry{foldmark}{% + foldmark on the letter page; intended for color settings % + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.option.foldmarks})}% + \feentry{footnote}{% + footnote text and marker % + (see \autoref{sec:scrlttr2.footnotes}, + \autopageref{desc:scrlttr2.cmd.footnote})}% + \feentry{footnotelabel}{% + mark of a footnote; used according to the element \FontElement{footnote} % + (see \autoref{sec:scrlttr2.footnotes}, + \autopageref{desc:scrlttr2.cmd.footnote})}% + \feentry{footnotereference}{% + footnote reference in the text % + (see \autoref{sec:scrlttr2.footnotes}, + \autopageref{desc:scrlttr2.cmd.footnote})}% + \feentry{footnoterule}{% + horizontal rule\ChangedAt{v3.07}{\Class{scrlttr2}} above the footnotes at + the end of the text area % + (see \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.setfootnoterule})}% + \feentry{labelinglabel}{% + labels, i.\,e., the optional argument of \Macro{item} in the + \Environment{labeling} environment % + (see \autoref{sec:scrlttr2.lists}, + \autopageref{desc:scrlttr2.env.labeling})}% + \feentry{labelingseparator}{% + separator, i.\,e., the optional argument of the \Environment{labeling} + environment; used according to the element \FontElement{labelinglabel} % + (see \autoref{sec:scrlttr2.lists}, + \autopageref{desc:scrlttr2.env.labeling})}% + \feentry{pagefoot}{% + used after element \FontElement{pageheadfoot} for the page foot, that has + been defined with variable \Variable{nextfoot}\IndexVariable{nextfoot}, or + for the page foot of package \Package{scrpage2} % + (\autoref{cha:scrpage}, \autopageref{desc:scrpage.fontelement.pagefoot})}% + \feentry{pagehead}{% + another name for \FontElement{pageheadfoot}}% + \feentry{pageheadfoot}{% + the head of a page, but also the foot of a page at all page style, that + has been defined using \KOMAScript{} % + (see \autoref{sec:scrlttr2.pagestyle}, + \autopageref{desc:scrlttr2.fontelement.pageheadfoot})}% + \feentry{pagenumber}{% + page number in the header or footer % + (see \autoref{sec:scrlttr2.pagestyle}, + \autopageref{desc:scrlttr2.fontelement.pagenumber})}% + \feentry{pagination}{% + another name for \FontElement{pagenumber}}% + \feentry{placeanddate}{% + \ChangedAt{v3.12}{\Class{scrlttr2}}% + place and date, if a date line will be used instead of a normal reference + line (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.placeseparator})}% + \feentry{refname}{% + description or title of the fields in the reference line % + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.yourref})}% + \feentry{refvalue}{% + content of the fields in the reference line % + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.yourref})}% + \feentry{specialmail}{% + mode of dispatch in the address field % + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.specialmail})}% + \feentry{subject}{% + subject in the opening of the letter % + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.subject})}% + \feentry{title}{% + title in the opening of the letter % + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.title})}% + \feentry{toaddress}{% + variation of the element \FontElement{addressee} for setting the addressee + address (less the name) in the address field % + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.toaddress})}% + \feentry{toname}{% + variation of the element \FontElement{addressee} for the name (only) of + the addressee in the address field % + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.toname})}% +\end{desclist} +\fi %************************************************* End of scrlttr2 only * +\ifIgnoreThis %++++++++++++++++++++++++++++++++++++ short version (maincls) + +\else %----------------------------------------- long version (not maincls) - +% +\EndIndex{Cmd}{setkomafont}% +\EndIndex{Cmd}{addtokomafont}% +\EndIndex{Cmd}{usekomafont}% + +\begin{Declaration} + \Macro{usefontofkomafont}\Parameter{element}\\ + \Macro{useencodingofkomafont}\Parameter{element}\\ + \Macro{usesizeofkomafont}\Parameter{element}\\ + \Macro{usefamilyofkomafont}\Parameter{element}\\ + \Macro{useseriesofkomafont}\Parameter{element}\\ + \Macro{useshapeofkomafont}\Parameter{element} +\end{Declaration} +\BeginIndex{Cmd}{usefontofkomafont}% +\BeginIndex{Cmd}{useencodingofkomafont}% +\BeginIndex{Cmd}{usesizeofkomafont}% +\BeginIndex{Cmd}{usefamilyofkomafont}% +\BeginIndex{Cmd}{useseriesofkomafont}% +\BeginIndex{Cmd}{useshapeofkomafont}% +Sometimes\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}} and despite the recommendation +users use the font setting feature of elements not only for font settings but +for other settings too. In this case it may be useful to switch only to the +font setting of an element but not to those other settings. You may use +\Macro{usefontofkomafont} in such cases. This will activate the font size and +baseline skip, the font encoding, the font family, the font series, and the +font shape of an element, but no further settings as long as those further +settings are local. + +You may also switch to one of those attributes only using one of the other +commands. Note, that \Macro{usesizeofkomafont} will activate both, the font +size and the baseline skip.% +\EndIndex{Cmd}{useshapeofkomafont}% +\EndIndex{Cmd}{useseriesofkomafont}% +\EndIndex{Cmd}{usefamilyofkomafont}% +\EndIndex{Cmd}{usesizeofkomafont}% +\EndIndex{Cmd}{useencodingofkomafont}% +\EndIndex{Cmd}{usefontofkomafont}% +% +\EndIndex{}{font}% +\EndIndex{}{text>markup} +\fi %*************************************** End long version (not maincls) * + %%% Local Variables: %%% mode: latex %%% coding: us-ascii diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-6.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-6.tex index 06051e8a95a..9636b3eb4c1 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-6.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-6.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-6.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-6.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-6.tex}[2012/05/15 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-6.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraph: Paragraph Markup)] \translator{Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi} % Date of the translated German file: 2012/01/01 @@ -91,8 +93,8 @@ \IfCommon{scrlttr2}{% In the preliminaries of \autoref{sec:maincls.parmarkup}, \autopageref{sec:maincls.parmarkup} it was argued why paragraph indent is - preferred over paragraph spacing. But the elements the argumentation depends on, - i.\,e., figures, tables, lists, equations, and even new pages, + preferred over paragraph spacing. But the elements the argumentation depends + on, i.\,e., figures, tables, lists, equations, and even new pages, are rare. Often letters are not so long that an oversighted paragraph will have serious consequences to the readability of the document. Because of this, the arguments are less serious for standard letters. This may be one @@ -100,7 +102,7 @@ indentation of the first line, but with a vertical skip between them. But there may be still some advantages of the paragraph indent. One may be that such a letter is highlighted in the mass of letters. Another may - be that the \emph{corporate identity} needn't be broken for letters only.}% + be that the \emph{corporate identity} need not be broken for letters only.}% \ifIgnoreThis %+++++++++++++++++++++++++++++++++++++++++++++ nicht maincls + \IfCommon{scrlttr2}{Apart from these suggestions, everything that has been written at \autoref{sec:maincls.parmarkup} for the other \KOMAScript{} @@ -126,11 +128,12 @@ The \PName{manner} consists of two elements. The first element is either \PValue{full} or \PValue{half}, meaning the space amount of one line or only half of a line. The second element is ``\PValue{*}'', ``\PValue{+}'', or -``\PValue{-}'', and may be omitted. Without the second element the last line of -a paragraph will end with white space of at least 1\Unit{em}. With the plus +``\PValue{-}'', and may be omitted. Without the second element the last line +of a paragraph will end with white space of at least 1\Unit{em}. With the plus character as second element the white space amount will be a third, and with -the asterisk a fourth, of the width of a normal line. The minus variant doesn't -take care about the white space at the end of the last line of a paragraph. +the asterisk a fourth, of the width of a normal line. The minus variant does +not take care about the white space at the end of the last line of a +paragraph. The setting may be changed at any place inside the document. In this case the command \Macro{selectfont}\IndexCmd{selectfont}% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-7.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-7.tex index aeef2455ac2..3648bf1abb6 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-7.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-7.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-7.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-7.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,10 @@ % % ====================================================================== -\ProvidesFile{common-7.tex}[2012/05/15 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-7.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraph: Detection of Odd and + Even Pages)] \translator{Markus Kohm\and Krickette Murabayashi} % Date of translated German file: 2011/08/26 diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-8.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-8.tex index 784129a0fa8..29eb6a19a78 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-8.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-8.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-8.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-8.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,10 +45,12 @@ % % ====================================================================== -\ProvidesFile{common-8.tex}[2012/05/15 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-8.tex}% + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs: Interleaf Pages)] \translator{Markus Kohm\and Gernot Hassenpflug\and Krickette Murabayashi} -% Date of the translated German file: 2011/09/21 +% Date of the translated German file: 2013/11/07 \makeatletter \@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% @@ -78,7 +80,7 @@ books commonly start on odd pages, sometimes a left page without contents has to be added before. This is also the reason that interleaf pages only exist in double-sided printing. The unused back - sides of the one-sided printings aren't interleaf pages, really, + sides of the one-sided printings are not interleaf pages, really, although % . Nevertheless at the printing paper they may seem to be such pages.} \fi %**************************************************** Ende nur maincls * @@ -88,7 +90,7 @@ \IfCommon{scrlttr2}{% at letters interleaf pages are unusual. This may be benefited by the case, that real two-sided letters are seldom, because binding of - letters won't be done often. Nevertheless \Class{scrlttr2} supports + letters is not done often. Nevertheless \Class{scrlttr2} supports interleaf pages in the case of two-sided letters. Because the following described commands are seldom used in letters no examples are shown. If you need examples, please note them at @@ -126,7 +128,7 @@ compatibility to an earlier version (see option \Option{version}, means you want to use page style \Pagestyle{plain}. You may use following to achieve this: \begin{lstcode} - \KOMAoption{cleardoublepage=plain} + \KOMAoptions{cleardoublepage=plain} \end{lstcode} More information about page style \Pagestyle{plain} may be found at \autoref{sec:maincls.pagestyle}, \autopageref{desc:maincls.pagestyle.plain}. @@ -139,7 +141,7 @@ compatibility to an earlier version (see option \Option{version}, means you want to use page style \Pagestyle{plain}. You may use following to achieve this: \begin{lstcode} - \KOMAoption{cleardoublepage=plain} + \KOMAoptions{cleardoublepage=plain} \end{lstcode} More information about page style \Pagestyle{plain} may be found at \autoref{sec:maincls.pagestyle}, \autopageref{desc:maincls.pagestyle.plain}. @@ -288,6 +290,8 @@ the standard command \Macro{cleardoublepage}, that may be either %%% Local Variables: %%% mode: latex +%%% mode: flyspell %%% coding: us-ascii +%%% ispell-local-dictionary: "en_GB" %%% TeX-master: "../guide" %%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common-9.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common-9.tex index 150e563f87d..408de83c117 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/common-9.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common-9.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-9.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-9.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-9.tex}[2012/05/15 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-9.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (common paragraphs: Footnotes)] \translator{Markus Kohm\and Krickette Murabayashi} % Date of the translated German file: 2012/01/01 @@ -83,7 +85,7 @@ Package \Package{scrextend} supports all the footnote features of \KOMAScript \ifIgnoreThis %+++++++++++++++++++++++++++++++++++++++++++++ nicht maincls + - , that are described at \autoref{sec:maincls.footnotes}% + \ that are described in \autoref{sec:maincls.footnotes}% \fi %**************************************************** Ende nur maincls * . Nevertheless, by default the footnotes are under full control of the used class. This changes as soon as command \Macro{deffootnote} (see @@ -168,7 +170,7 @@ automatically. See\important{\Option{footnote}} the previously documented option \Option{footnotes} for this. If you want to set the separator manually, you may use -\Macro{multiplefootnoteseparator}. Note that this command shouldn't be +\Macro{multiplefootnoteseparator}. Note that this command should not be redefined, because it has been defined not only to be the separator string but also the type style, i.\,e., font size and superscript. The separator string without type style may be found at \Macro{multfootsep}. The @@ -200,7 +202,7 @@ and may be changed by redefining the command. \footnote{2nd footnote} \end{lstcode} This should give you the wanted result even if the automatic solution would - fail or couldn't be used. + fail or could not be used. Further, assume you want the footnotes separated not only by a single comma, but by a comma and a white space. In this case you may redefine diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/expertpart.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/expertpart.tex index 4556bf6a940..b8ba50618ee 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/expertpart.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/expertpart.tex @@ -1,6 +1,6 @@ % ====================================================================== % expertpart.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % expertpart.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{expertpart.tex}[2012/01/13 Part KOMA-Script for Experts] +\KOMAProvidesFile{expertpart.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + Part KOMA-Script for Experts] \translator{Markus Kohm} \setpartpreamble{% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/guide-english.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/guide-english.tex index 9137bd523ab..947254a3ce5 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/guide-english.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/guide-english.tex @@ -1,6 +1,6 @@ % ====================================================================== % guide-english.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % guide-english.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ====================================================================== % -\ProvidesFile{guide-english.tex}[{2012/03/14 +\ProvidesFile{guide-english.tex}[{2013/08/05 KOMA-Script guide language dependencies}] % % \section{Extra Packages} @@ -71,9 +71,9 @@ % Ugly note \vfill \noindent Note: This document is a translation of the German \KOMAScript{} - manual. Several authors has been involved to this translation. Some of them - are native English speakers, others like me are not. Improvement of the - translation by native speakers or experts would be welcome always!% + manual. Several authors have been involved to this translation. Some of them + are native English speakers, others like me are not. Improvements of the + translation by native speakers or experts are welcome at all times!% }% \newcommand*{\GuideAuthorHeadline}{Authors of the {\KOMAScript} Bundle}% \newcommand*{\GuideTranslatorHeadline}{English translation of this manual by: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/guide.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/guide.tex index 6fc6a8c55dd..41ba9402133 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/guide.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/guide.tex @@ -45,7 +45,7 @@ % % ====================================================================== -\ProvidesFile{guide.tex}[2012/02/22 KOMA-Script guide main file] +\ProvidesFile{guide.tex}[2013/10/14 KOMA-Script guide main file] \documentclass[\languagename]{scrguide} @@ -95,6 +95,7 @@ \include{scrbookreportarticle} \include{scrlttr2} \include{scrpage2} +\include{scrlayer-scrpage} \include{scrdatetime} \include{scraddr} \include{adrconvnote} @@ -106,6 +107,9 @@ \include{scrwfile} \include{tocbasic} \include{scrhack} +\include{scrlayer} +\include{scrlayer-scrpage-experts} +\include{scrlayer-notecolumn} \include{typearea-experts} \include{scrbookreportarticle-experts} \include{scrlttr2-experts} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/htmlsetup b/Master/texmf-dist/source/latex/koma-script/doc/english/htmlsetup index fd90a64e075..8c30c6ed561 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/htmlsetup +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/htmlsetup @@ -1,6 +1,6 @@ # ====================================================================== # htmlsetup -# Copyright (c) Markus Kohm, 2002-2009 +# Copyright (c) Markus Kohm, 2002-2013 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # htmlsetup -# Copyright (c) Markus Kohm, 2002-2009 +# Copyright (c) Markus Kohm, 2002-2013 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3c, verteilt und/oder veraendert werden. @@ -54,6 +54,7 @@ alt=\"Valid HTML 4.0 Strict\" height=\"31\" width=\"88\"> %titles=( "option" => "Options", "macro" => "Commands", "environment" => "Environments", + "length" => "Lengths", "plength" => "Pseudolengths", "variable" => "Variables", "pagestyle" => "Page Styles", diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/introduction.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/introduction.tex index fe43c56e545..28569628ad8 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/introduction.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/introduction.tex @@ -1,6 +1,6 @@ % ====================================================================== % introduction.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % introduction.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{introduction.tex}[2012/03/14 KOMA-Script guide introduction] +\KOMAProvidesFile{introduction.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide introduction] \translator{Kevin Pfeiffer\and Gernot Hassenpflug\and Krickette Murabayashi\and Markus Kohm} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/japanlco.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/japanlco.tex index 1ceb9bbe6cc..54a6d3f0782 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/japanlco.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/japanlco.tex @@ -1,6 +1,6 @@ % ====================================================================== % japanlco.tex -% Copyright (c) Gernot Hassenpflug and Markus Kohm, 2001-2012 +% Copyright (c) Gernot Hassenpflug and Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % japanlco.tex -% Copyright (c) Gernot Hassenpflug und Markus Kohm, 2001-2012 +% Copyright (c) Gernot Hassenpflug und Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -49,7 +49,9 @@ % KOMA-Script bundle. % -\ProvidesFile{japanlco.tex}[2007/12/17 KOMA-Script guide (appendix: japanlco)] +\KOMAProvidesFile{japanlco.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (appendix: japanlco)] \appendix diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/preface.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/preface.tex index 17ed62fca68..f98815f546b 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/preface.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/preface.tex @@ -1,6 +1,6 @@ % ====================================================================== % preface.tex -% Copyright (c) Markus Kohm, 2008-2012 +% Copyright (c) Markus Kohm, 2008-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % preface.tex -% Copyright (c) Markus Kohm, 2008-2012 +% Copyright (c) Markus Kohm, 2008-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -35,7 +35,9 @@ % Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. % ====================================================================== -\ProvidesFile{preface.tex}[2012/05/15 Preface to the KOMA-Script book] +\KOMAProvidesFile{preface.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + Preface to the KOMA-Script book] %\translator{Markus Kohm} % Date of the translated German file: 0000/00/00 @@ -46,15 +48,24 @@ This is not a translation of the preface of the German \KOMAScript{} guide, because this translation of the German \KOMAScript{} guide is still a work in progress. Currently the chapters of \autoref{part:forAuthors} and \autoref{cha:scrbase}, \autoref{cha:scrlfile}, \autoref{cha:scrhack}, +\autoref{cha:scrlayer}, \autoref{cha:scrlayer-scrpage-experts}, \autoref{cha:typearea-experts}, \autoref{cha:maincls-experts}, -\autoref{cha:scrlttr2-experts} are up-to-date. There may still be dead-links -and broken references at these chapters, because the referenced information in -chapters of other parts could be missing. +\autoref{cha:scrlttr2-experts} are up-to-date. -The descriptions in \autoref{cha:scrwfile}, \autoref{cha:tocbasic} aren't -translations from the German manual but are primary descriptions from the -implementation of these packages. They should be up-to-date\,---\,sometimes -even more than the chapters from the German manual. +Nevertheless, for \autoref{cha:scrlayer}, \autoref{cha:scrlayer-scrpage}, +\autoref{cha:scrlayer-scrpage-experts} a native speaker or someone with +advanced knowledge of the English language would be needed to improve it. +% AFAIK currently there are not any dead links or broken references, otherwise +% I would use the following: +% There may still be dead links and broken references in these chapters, +% because the referenced information in chapters of other parts could be +% missing. + +The descriptions in \autoref{cha:scrwfile}, \autoref{cha:tocbasic}, +\autoref{cha:scrlayer-notecolumn} are not translations from the German manual +but are primary descriptions from the implementation of these packages. They +should be up-to-date\,---\,sometimes even more than the chapters from the +German manual. So this English guide is complete but nevertheless not as good as the German one, because my English is not as good as my German. Currently there's only diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scraddr.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scraddr.tex index beec72d274b..3c383597324 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scraddr.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scraddr.tex @@ -1,6 +1,6 @@ % ====================================================================== % scraddr.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scraddr.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{scraddr.tex}[2012/02/23 KOMA-Script guide (chapter: scraddr)] +\KOMAProvidesFile{scraddr.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (chapter: scraddr)] \translator{Jens-Uwe Morawski\and Gernot Hassenpflug\and Markus Kohm} % Date of translated german file: 2011/09/30 diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrbase.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrbase.tex index ce472d81292..376319b4d06 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrbase.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrbase.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrbase.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrbase.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,21 +45,23 @@ % % ====================================================================== -\ProvidesFile{scrbase.tex}[2012/03/04 KOMA-Script package scrbase] -\translator{Markus Kohm} +\KOMAProvidesFile{scrbase.tex} + [$Date: 2013-12-13 16:32:18 +0100 (Fr, 13 Dez 2013) $ + KOMA-Script package scrbase] +\translator{Markus Kohm\and Melvin Hendrix} -% Date of the translated German file: 2012/03/04 +% Date of the translated German file: 2013/11/06 -\chapter{Basic Functions at Package \Package{scrbase}} +\chapter{Basic Functions of Package \Package{scrbase}} \labelbase{scrbase} \BeginIndex{Package}{scrbase}% -The package \Package{scrbase} provides basic features, that are designed and -implemented to be used by authors of packages and classes. Thereby it may not -only used for wrapper classes, that use a \KOMAScript{} class. Authors of -classes, that aren't related to anything else from \KOMAScript{}, may also -benefit from the functionality of \Package{scrbase}. +The package \Package{scrbase} provides basic features designed and implemented +for use by authors of packages and classes. However, \Package{scrbase} cannot +only by used for wrapper classes related to \KOMAScript{} class. Authors of +classes that have nothing to do with \KOMAScript{} can benefit from +\Package{scrbase} functionality. \section{Loading the Package} \label{sec:scrbase.loadit} @@ -68,10 +70,10 @@ Whereas users load packages using \Macro{usepackage}, authors of packages or classes should use \Macro{RequirePackage}\IndexCmd{RequirePackage}. Authors of wrapper packages may also use \Macro{RequirePackageWithOptions}. Command \Macro{RequirePackage} has the same optional argument for package options like -\Macro{usepackage}. In opposite to this \Macro{RequirePackageWithOptions} -doesn't have an optional argument but passes all options given while loading -the wrapper package to the required package. See \cite{latex:clsguide} for -more information about these commands. +\Macro{usepackage}. In contrast, \Macro{RequirePackageWithOptions} does not +have an optional argument but passes all options given when loading the +wrapper package to the required package. See \cite{latex:clsguide} for more +information about these commands. The package \Package{scrbase} needs the functionality of package \Package{keyval}\IndexPackage{keyval} internally. This may be provided by @@ -79,7 +81,7 @@ package \Package{xkeyval} alternatively. Package \Package{scrbase} loads \Package{keyval} as needed. The package \Package{keyval} provides definition of keys and assignment of -values to this keys. The options provided by \Package{scrbase} also use +values to these keys. The options provided by \Package{scrbase} also use \Package{keyval} syntax: \PName{key}\texttt{=}\PName{value}. \begin{Declaration} @@ -87,35 +89,37 @@ values to this keys. The options provided by \Package{scrbase} also use \end{Declaration} \BeginIndex{Option}{internalonly~=\PName{value}}% Package \Package{scrbase} provides some commands for conditional -execution. The primary names of those are build like -\Macro{scr@\PName{name}}. With this those are internal commands. \KOMAScript{} -really uses this internal commands internally. Authors of packages and classes -may use those internal commands too, but should not redefine them. Because -some of those commands may be useful for users too, they are also provided as -\Macro{\PName{name}} normally. But eventually other packages provide commands -with the same name but different syntax or different functionality. This would -result in an conflict. So \Package{scrbase} provides to suppress the -definition of the user commands, \Macro{\PName{name}}, only. Using option -\Option{internalonly} without \PName{value} will define only the internal -commands and suppress definition of all the user commands for conditional -execution. Alternatively, the user may give all the commands, that shouldn't -be defined as \PName{value}, but replaces ``\Macro{}'' by ``\texttt{/}''. +execution. The primary names for these are builds like +\Macro{scr@\PName{name}}, which are internal commands. \KOMAScript{} only uses +these internal commands internally. Authors of packages and classes may use +these internal commands, too, but should not redefine them. Because some of +these commands are useful for users, too, they are provided as +\Macro{\PName{name}} normally. But eventually, other packages may provide +commands with the same name but different syntax or different +functionality. As this would result in an conflict, \Package{scrbase} can +suppress the definition of the user commands \Macro{\PName{name}}. Using +option \Option{internalonly} without \PName{value} will define only the +internal commands and suppress definition of all the user commands for +conditional execution. Alternatively, the user may give all the commands that +should not be defined as \PName{value}, but replaces ``\Macro{}'' by +``\texttt{/}''. Authors of packages and classes normally should not use this option. Users may use it with or without \PName{value} either as a global option with \Macro{documentclass} or using \Macro{PassOptionsToPackage}. \begin{Example} - The user doesn't want \Package{scrbase} to define commands \Macro{ifVTeX} - and \Macro{ifundefinedorrelax}. Because of this, user uses: + The user does not want \Package{scrbase} to define commands \Macro{ifVTeX} + and \Macro{ifundefinedorrelax}. Because of this, to load the class, the user + writes: \begin{lstcode} \documentclass% [internalonly=/ifVTeX/ifundefinedorrelax]% {foo} \end{lstcode} - to load the class. Class name \Class{foo} has been used as an placeholder + Class name \Class{foo} is, therefore, an placeholder for any class in this example. The meanings of commands \Macro{ifVTeX} and \Macro{ifundefinedorrelax} and many more commands for conditional execution - may be found in \autoref{sec:scrbase.if}. + is located in \autoref{sec:scrbase.if}. \end{Example} % \EndIndex{Option}{internalonly~=\PName{value}}% @@ -127,54 +131,55 @@ use it with or without \PName{value} either as a global option with As already mentioned in \autoref{sec:scrbase.loadit}, \Package{scrbase} uses package \Package{keyval} for keys and values of keys. Nevertheless \Package{scrbase} extends the functionality of \Package{keyval}. Whereas only -one family owns all keys of \Package{keyval}, \Package{scrbase} knows also -family members. Now, a key may be owned by a family or by one or more family -members. Additionally a value may be assigned to the key of a family member, -of a family or of all family members. +one family owns all keys of \Package{keyval}, \Package{scrbase} recognises +also family members. Therefore, a key may be owned by a family or by one or +more family members. Additionally, a value may be assigned to the key of a +family member, to the key of a family, or to the keys of all family members. \begin{Declaration} \Macro{DefineFamily}\Parameter{family}\\ - \Macro{DefineFamilyMember}\OParameter{family member}\Parameter{family} + \Macro{DefineFamilyMember}\OParameter{family member}\Parameter{family}% \end{Declaration} \BeginIndex{Cmd}{DefineFamily}% \BeginIndex{Cmd}{DefineFamilyMember}% \Package{scrbase} needs to know the members of a family for different -reasons. So it's necessary first to define a new family using -\Macro{DefineFamily}, that produces also an empty member list. If the family -has already been defined nothing would happen. Nothing means also, that an +reasons. First, you have to define a new family using +\Macro{DefineFamily}, which produces an empty member list. If the family +has already been defined nothing would happen. Nothing also means that an already existing member list would not be overwritten. -A new member may be added to the family using \Macro{DefineFamilyMember}. If -the family doesn't exist, this would result in an error message. If the member -already exists, nothing happens. If the member is omitted, the member won't -stay empty, but ``\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}'' will -be assumed. While loading a class or package \Macro{@currname} and -\Macro{@currext} together represent the file name of the class or package. - -Theoretically is would be possible, to define a member without a name using an -empty optional argument \PName{family member}. But this would be same like the -family itself. It is recommended to use only letters and digits at the -\PName{family} an start the \PName{family member} with another char like a -period. Otherwise it could happen, that members of one family are same like -members of another family. - -\Package{scrbase} itself defines family ``\PValue{KOMA}'' and adds member -``\PValue{.scrbase.sty}'' to is. Generally family ``\PValue{KOMA}'' is -reserved to \KOMAScript{}. For your own packages it is recommended to use the -name of the bundle as \PName{family} and the name of the package as -\PName{family member} of that \PName{family}. +Next, a new member can be added to the family using +\Macro{DefineFamilyMember}. If the family does not exist, this would result in +an error message. If the member already exists, nothing happens. If the +optional \PName{family member} is omitted, the default value +``\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}'' is used. During +class or package loading \Macro{@currname} and \Macro{@currext} together +represent the file name of the class or package. + +Theoretically, it is possible, to define a member without a name using an +empty optional \PName{family member} argument. But this is the same as the +family itself. It is recommended that only letters and digits be used for +\PName{family} and the first character of \PName{family member} should not be +a letter or digit. Otherwise, it could happen that members of one family are +the same as members of another family. + +\Package{scrbase} assigns family ``\PValue{KOMA}'' to itself and adds member +``\PValue{.scrbase.sty}'' to it. Family ``\PValue{KOMA}'' is reserved to +\KOMAScript{}. For your own packages, use the name of the bundle as +\PName{family} and the name of the package as \PName{family member} of that +\PName{family}. % \begin{Example} - Assumed you're writing a bundle ``master butcher''. Within that bundle you - have packages \File{salami.sty}, \File{liversausage.sty}, and - \File{kielbasa.sty}. Therefor you decide to use family name - ``\PValue{butcher}'' and add the lines + Assume you are writing a bundle called ``master butcher''. Within that + bundle you have packages \File{salami.sty}, \File{liversausage.sty}, and + \File{kielbasa.sty}. Therefore, you decide to use family name + ``\PValue{butcher}'' and,to each of the package file, you add the lines \begin{lstcode} \DefineFamily{butcher} \DefineFamilyMember{butcher} \end{lstcode} - to each of the package files. While loading the three packages this will - all the members ``\PValue{.salami.sty}'', ``\PValue{.liversausage.sty}'', + When loading the three packages, this will + add the members ``\PValue{.salami.sty}'', ``\PValue{.liversausage.sty}'', and ``\PValue{.kielbasa.sty}'' to the family ``\PValue{butcher}''. After loading all three packages, all three member will be defined. \end{Example} @@ -186,18 +191,29 @@ name of the bundle as \PName{family} and the name of the package as \begin{Declaration} \Macro{DefineFamilyKey}\OParameter{family member}\Parameter{family}% \Parameter{key}\OParameter{default}\\ - \hphantom{\Macro{DefineFamilyKey}}\Parameter{action} + \hphantom{\Macro{DefineFamilyKey}}\Parameter{action}\\ + \Macro{FamilyKeyState}\\ + \Macro{FamilyKeyStateUnknown}\\ + \Macro{FamilyKeyStateProcessed}\\ + \Macro{FamilyKeyStateUnknownValue}\\ + \Macro{FamilyKeyStateNeedValue} \end{Declaration} \BeginIndex{Cmd}{DefineFamilyKey}% -This command defines a \PName{key}. If a \PName{family member} is given, the -\PName{key} will become an attribute of that member of the also given -\PName{family}. If no \PName{family member} is given, the member -``\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}'' will be assumed. If -later a value will be assigned to the \PName{key}, the \PName{action} will be -executed and the value will be an argument of this. So inside of -\PName{action} ``\lstinline{#1}'' would be that value. If the value will be -omitted, the \PName{default} will be used instead. If there's no -\PName{default}, the \PName{key} can be used only with value. +\BeginIndex{Cmd}{FamilyKeyState}% +\BeginIndex{Cmd}{FamilyKeyStateUnknown}% +\BeginIndex{Cmd}{FamilyKeyStateProcessed}% +\BeginIndex{Cmd}{FamilyKeyStateUnknownValue}% +\BeginIndex{Cmd}{FamilyKeyStateNeedValue}% +The command \Macro{DefineFamilyKey} defines a \PName{key}. If a \PName{family + member} is given, the \PName{key} becomes an attribute of that member in the +given \PName{family}. If a \PName{family member} is not given, the member +``\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}'' is assumed. If, +later, a value is assigned to the \PName{key}, the \PName{action} will be +executed and the value made an argument of \PName{action}. So inside +\PName{action} ``\lstinline{#1}'' would be that value. If the value is +omitted, the \PName{default} is used instead. If there is no \PName{default}, +the \PName{key} can be used only with a value being defined. + \begin{Explain} \phantomsection\label{explain:scrbase.macro.DefineFamilyKey}% At least @@ -208,33 +224,73 @@ omitted, the \PName{default} will be used instead. If there's no will result in a call of \begin{lstcode}[moretexcs={define@key},escapeinside=`'] \define@key{`\PName{family\,member}'}{`\PName{key}'} - [`\PName{default}']{`\PName{action}'} + [`\PName{default}']{`\PName{extended action}'} \end{lstcode} - with \Macro{define@key} is provided by package - \Package{keyval}\IndexPackage{keyval} (see \cite{package:keyval}). + with \Macro{define@key} provided by package + \Package{keyval}\IndexPackage{keyval} (see \cite{package:keyval}). However, + the call of \Macro{define@key} and the \PName{action} is, in fact, + extended by additional arrangements. \end{Explain} + +Success\ChangedAt{v3.12}{\Package{scrbase}} or failure of the execution of the +\PName{action} should be reported back to \Package{scrbase} by +\Macro{FamilyKeyState}. The package itself will take care of additional +procedures if needed. You should not report errors by yourself! The default +state before execution of \PName{action} is +\Macro{FamilyKeyStateUnknown}. This signals that it is not known whether or +not the execution is successful. If this state does not change until end of +execution of the \PName{action}, \Package{scrbase} will write a message into +the \File{log} file and assumes state \Macro{FamilyKeyStateProcessed} during +the further procedure. + +State \Macro{FamilyKeyStateProcessed} signals that the option and the value +assignment to the option are completely and successfully finished. You may +switch to this state by using \Macro{FamilyKeyStateProcessed} itself. + +State \Macro{FamilyKeyStateUnknownValue} indicates that the option was +handled, but the value, that should be assigned to the key, was unknown or not +allowed. You should use \Macro{FamilyKeyStateUnknownValue} to switch to +this state. + +State \Macro{FamilyKeyStateNeedValue} signals that the option could not be +set because it needs a value, but no value was assigned to the +key. This state is used automatically, whenever an option has been +defined without \PName{default} value and is used without value +assignment. You should not set the state using \Macro{FamilyKeyStateNeedValue} +yourself. + +Last but not least you may switch to additional failure states, simply +re-defining \Macro{FamilyKeyState} with a very short text message. +Generally, the four predefined states should be sufficient. + \begin{Example} - Assumed, each of the three packages from the previous example should get a - key \PValue{coldcuts}. If this is used, a switch should be set at each of - the packages. For package \Package{salami} this may be, e.\,g., + Assume each of the three packages from the previous example should get a + key named \PValue{coldcuts}. When used, a switch is set at each of + the packages. For package \Package{salami} this may be: \begin{lstcode} \newif\if@Salami@Aufschnitt \DefineFamilyKey{butcher}% {coldcut}[true]{% \expandafter\let\expandafter\if@salami@coldcut \csname if#1\endcsname + \FamilyKeyStateProcessed } \end{lstcode} Available values for the key are \PValue{true} or \PValue{false} in this - case. There's no test on inappropriate values in this example. If the key - will be used later, this has to be done with one of the allowed values or - without assignment. In the second case the default \PName{true} will be - used. + case. Instead of testing on inappropriate values, success will be signalled + for any case in this example. If the key is used later, it is executed with + one of the allowed values or without assignment. In the second case, the + default \PName{true} will be used. The definitions in the other packages are similar. Only ``\texttt{salami}'' has to be replaced by the corresponding names. \end{Example} % +\EndIndex{Cmd}{FamilyKeyStateNeedValue}% +\EndIndex{Cmd}{FamilyKeyStateUnknownValue}% +\EndIndex{Cmd}{FamilyKeyStateProcessed}% +\EndIndex{Cmd}{FamilyKeyStateUnknown}% +\EndIndex{Cmd}{FamilyKeyState}% \EndIndex{Cmd}{DefineFamilyKey}% @@ -243,38 +299,37 @@ omitted, the \PName{default} will be used instead. If there's no \end{Declaration} \BeginIndex{Cmd}{FamilyProcessOptions}% Generally the extension of keys of families to keys of families and family -members was mentioned to use keys or key-value settings as class or package -options. This command therefor is an extension of \Macro{ProcessOption*} from -\LaTeX{} kernel (see \cite{latex:clsguide}. Thereby the command processes not -only options that has been declared using \Macro{DeclareOption}. It processes -even all keys of the given family member. If the optional argument +members, as mentioned earlier, uses keys or key-value settings as class or +package options. The command \Macro{FamilyProcessOptions} is an extension of +\Macro{ProcessOption*} from \LaTeX{} kernel (see \cite{latex:clsguide}, which +processes not only options that has been declared using \Macro{DeclareOption}, +it processes all keys of the given family member. If the optional argument \PName{family member} is omitted, family member -``\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}'' will be used. +``\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}'' is used. -Somehow special are keys, that are not attached to a family member, but to a -family. These are keys with an empty family member. Such keys will be set also -and before the keys of the family members. +Somehow special are keys that are not attached to a family member, but to a +family. These are keys with an empty family member. Such keys are set before +the keys of the family members. \begin{Example} If a package in the previous example would be extended by the line \begin{lstcode} \FamilyProcessOptions{butcher} \end{lstcode} - then the user may select the option \Option{coldcut} while loading the - package. If the option will be used globally, this means at the optional + then the user may select the option \Option{coldcut} when loading the + package. If the option is used globally, this means at the optional argument of \Macro{documentclass}, then the option would be passed - automatically to all three packages, if all three packages will be loaded + automatically to all three packages, if all three packages are loaded later. \end{Example} -Please note\textnote{Attention!} that packages process global options always -before local options, that has been assigned locally to the package. In -opposite to unknown options while processing of global options, that will only -result in an information in the \File{log}-file, unknown options assigned to -the package result in error messages. +Please note\textnote{Attention!} that packages always process global options +before local options. When processing unknown options initiate an entry in the +\File{log}-file and the option is otherwise ignored. By contrast, unknown +options assigned to the package locally leads to an error message. \Macro{FamilyProcessOptions} may be interpreted either as an extension of \Macro{ProcessOption*} or as an extension of the \PName{key=value} mechanism -of \Package{keyval}. Finally \PName{key=value} pairs become options with help -of \Macro{FamilyProcessOptions}.% +of \Package{keyval}. Ultimately, with the help of +\Macro{FamilyProcessOptions}, \PName{key=value} pairs become options.% % \EndIndex{Cmd}{FamilyProcessOptions}% @@ -285,17 +340,17 @@ of \Macro{FamilyProcessOptions}.% \end{Declaration} \BeginIndex{Cmd}{FamilyExecuteOptions}% This command is an extension of \Macro{ExecuteOptions} from the \LaTeX{} -kernel (see \cite{latex:clsguide}). Thereby the command processes not only -options, that has been defined using \Macro{DeclareOption}. Also all keys of -the given family member will be processed. If the optional argument -\Macro{family member} is omitted, then +kernel (see \cite{latex:clsguide}). The command processes not only options +that are defined using \Macro{DeclareOption}, but also processes all keys of +the given \PName{family member}. If the optional argument \Macro{family + member} is omitted, then ``\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}'' is used. -Somehow special are keys, that are not attached to a family member, but to a -family. These are keys with an empty family member. Such keys will be set also -and before the keys of the family members. +Somehow special are keys of empty family members, which are not attached to a +family member, but to a family. Such keys are set before the keys of family +members. \begin{Example} - Assumed, option \Option{coldcut} should be set by default already in the + Assume option \Option{coldcut} should be set by default in the previous example. In this case only line \begin{lstcode} \FamilyExecuteOptions{butcher}{coldcut} @@ -307,31 +362,27 @@ and before the keys of the family members. \begin{Declaration} - \Macro{FamilyOptions}\Parameter{family}\Parameter{options list}\\ - \Macro{Family@Options}\Parameter{family}\Parameter{options list}% - \Parameter{error action} + \Macro{FamilyOptions}\Parameter{family}\Parameter{options list}% \end{Declaration} \BeginIndex{Cmd}{FamilyOptions}% -\BeginIndex{Cmd}{Family@Options}% -Thereby \PName{options list} is like: +Hence \PName{options list} is like: \begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} \PName{key}\texttt{=}\PName{value}\texttt{,}% \PName{key}\texttt{=}\PName{value}\dots \end{tabular}\vskip\dp\strutbox\end{flushleft} -whereby the value assignment may be omitted for \PName{key}s, that have a +after which the value assignment may be omitted for \PName{key}s that have a defined default. -In opposite to average options, that has been defined using -\Macro{DeclareOption}, the \PName{key}s may also be set after loading a class -or package. For this the user uses \Macro{FamilyOptions}. Thereby the -\PName{key}s of all members of the given family will be set. If a \PName{key} -also exists as an family attribute, then the family key will be set -first. After this the member keys will follow in the order, the members has -been defined. If a given \PName{key} does exist neither in the family nor in -any member of the family, then \Macro{FamilyOptions} will result in an -error. In opposite to this with \Macro{Family@Options} the user may declare -his own \PName{error action}. But this internal command is reserved for -authors of classes and packages. +In contrast to average options that are defined using \Macro{DeclareOption}, +the \PName{key}s also may be set after loading a class or package. For this, +the user calls \Macro{FamilyOptions}. Thereafter, the \PName{key}s of all +members of the specified family are set. If a \PName{key} also exists as a +family attribute, then the family key is set first. After this, the member +keys follow in the order in which the members have been defined. If a given +\PName{key} does not exist, either for the family or for any member of the +family, then \Macro{FamilyOptions} will result in an error. Package +\Package{scrbase} reports an error also if there are members with key +\PName{key}, but all those members signal failure via \Macro{FamilyKeyState}. \begin{Example} You extend your butcher project by a package \Package{sausagesalad}. If this package has been loaded, all sausage package should generate cold cut: @@ -343,15 +394,15 @@ authors of classes and packages. \FamilyProcessOptions{butcher}\relax \FamilyOptions{butcher}{coldcut} \end{lstcode} - If currently non of the sausage packages has been loaded, then an error - message would result because of undefined option ``\Option{coldcut}''. Dies - may be avoided changing the last line of the previous code into: + If currently none of the sausage packages are loaded, then an error + message results because of undefined option ``\Option{coldcut}''. This is + avoided by changing the last line of the code to: \begin{lstcode}[moretexcs={Family@Options}] \Family@Options{butcher}{coldcut}{} \end{lstcode} - Nevertheless, sausage packages, that will be loaded after - \Package{sausagesalad}, won't produce cold cut. This may be changed - additionally, by changing the last line again: + Despite this, sausage packages loaded after + \Package{sausagesalad} still do not produce cold cut. This may be corrected + by editing the last line of the code again to: \begin{lstcode}[moretexcs={Family@Options}] \AtBeginDocument{% \Family@Options{butcher}{coldcut}{% @@ -361,40 +412,34 @@ authors of classes and packages. }% }% \end{lstcode} - This will also throw a warning message, if non of the sausage packages will - be loaded. + This may throw a warning message if none of the sausage packages are loaded. \end{Example} % -\EndIndex{Cmd}{Family@Options}% \EndIndex{Cmd}{FamilyOptions}% \begin{Declaration} \Macro{FamilyOption}\Parameter{family}% - \Parameter{option}\Parameter{values list}\\ - \Macro{Family@Option}\Parameter{family}% - \Parameter{option}\Parameter{values list}% - \Parameter{error action} + \Parameter{option}\Parameter{values list}% \end{Declaration} \BeginIndex{Cmd}{FamilyOption}% -\BeginIndex{Cmd}{Family@Option}% -Beside options that have concurrently excluding values, there may be options, -that have several values at the same time. Using \Macro{FamilyOptions} for -that kind of options would result in using the same option several times with +Besides options that have concurrently excluding values, there may be options +that produce several values at the same time. Using \Macro{FamilyOptions} for +that type of option would result in using the same option several times with different value assignments. Instead of this, \Macro{FamilyOption} may be used to assign a whole \PName{values list} to the same \PName{option}. The -\PName{values list} is a comma separated list of values: +\PName{values list} is a comma separated list of values, also known as +\emph{csv}: \begin{flushleft}\begin{tabular}{l} \PName{value}\texttt{,}\PName{value}\dots \end{tabular}\end{flushleft} -By the way please note, that usage of a comma inside a value may be done only, -if the value is put into braces. The general functionality of these commands -is the same like that of the previous commands \Macro{FamilyOptions} and -\Macro{Family@Options}. +By the way, please note that usage of a comma inside a value may be done only +if the value is put inside braces. The general functionality of this command +is the same as that of the previous command \Macro{FamilyOptions}. \begin{Example} Package \Package{sausagesalad} should have one mire option, to add - additional ingredients. Each of the ingredients will set a switch like done - before for the cold cut. + additional ingredients. Each of the ingredients sets a switch as was done + previously for the cold cut. \begin{lstcode} \newif\if@saladwith@onions \newif\if@saladwith@gherkins @@ -403,8 +448,9 @@ is the same like that of the previous commands \Macro{FamilyOptions} and \csname @saladwith@#1true\endcsname } \end{lstcode} - Here the three ingredients ``onions'', ``gherkins'', and ``chillies'' has - been defined. An error message for not defined ingredients doesn't exist. + Here the three ingredients ``onions'', ``gherkins'', and ``chillies'' have + been defined. An error message for ``not defined'' ingredients does not + exist. For a salad with onions and gherkins the user may use \begin{lstcode} @@ -418,10 +464,25 @@ is the same like that of the previous commands \Macro{FamilyOptions} and \end{lstcode} \end{Example} % -\EndIndex{Cmd}{Family@Option}% \EndIndex{Cmd}{FamilyOption}% +\begin{Declaration} + \Macro{AtEndOfFamilyOptions}\Parameter{action}% +\end{Declaration} +\BeginIndex{Cmd}{AtEndOfFamilyOptions}% +Sometimes\ChangedAt{v3.12}{\Package{scrbase}} it is useful to delay the +execution of an \PName{action} that is part of a value assignment to a key +until all assignments inside one \Macro{FamilyProcessOptions}, +\Macro{FamilyExecuteOptions}, \Macro{FamilyOptions}, or \Macro{FamilyOption} +is finished. This may be done using \Macro{AtEndOfFamilyOptions} inside +an option definition. Reporting failure states of \PName{action} is not +possible in this case. Furthermore, the command should not be used outside an +option definition. +% +\EndIndex{Cmd}{AtEndOfFamilyOptions}% + + \begin{Declaration} \Macro{FamilyBoolKey}\OParameter{family member}\Parameter{family}% \Parameter{key}\Parameter{switch name}\\ @@ -430,31 +491,33 @@ is the same like that of the previous commands \Macro{FamilyOptions} and \end{Declaration} \BeginIndex{Cmd}{FamilyBoolKey}% \BeginIndex{Cmd}{FamilySetBool}% -In the previous examples boolean switches often have been used. In the example -with option \Option{coldcut} is was necessary, that the user assigns either -value \PValue{true} or value \PValue{false}. No error message existed on wrong -value assignment. Because of such boolean switches are an often needed -feature, \Package{scrbase} provides \Macro{FamilyBoolKey} for definition of -such options. Thereby the arguments \PName{family member}, \PName{family}, -and \PName{key} are same like used by \Macro{DefineFamilyKey} (see +In the previous examples, boolean switches often have been used. In the example +with option \Option{coldcut}, it is necessary that the user assigns either +value \PValue{true} or value \PValue{false}. There is no error message for +wrong value assignment. Because of this, boolean switches are a necessary +feature. Package \Package{scrbase} provides \Macro{FamilyBoolKey} for definition of +such options. Therefore, the arguments \PName{family member}, \PName{family}, and +\PName{key} are the same as that used by \Macro{DefineFamilyKey} (see \autopageref{desc:scrbase.cmd.DefineFamilyKey}). Argument \PName{switch name} is the name of the switch without the prefix \Macro{if}. If a switch with this -name doesn't exist already, \Macro{FamilyBoolKey} will define it and +name does not exist already, \Macro{FamilyBoolKey} will define it and initialize it to \PName{false}. Internally \Macro{FamilyBooKey} uses \Macro{FamilySetBool} as \PName{action} of \Macro{DefineFamilyKey}. The \PName{default} for those options is always \PValue{true}. -\Macro{FamilySetBool} on the other side understands \PName{value} \PValue{on} +On the other hand, \Macro{FamilySetBool} understands \PName{value} \PValue{on} and \PValue{yes} beside \PName{true} for switching on and \PName{off} and \PName{no} beside \PName{false} for switching off. Unknown values will result in a call of \Macro{FamilyUnknownKeyValue} with the arguments \PName{family}, -\PName{key}, and \PName{value}. This will normally result in an error message -about unknown value assignment (see also -\autopageref{desc:scrbase.cmd.FamilyUnkownKeyValue}). +\PName{key}, and \PName{value}, which results in setting of +\Macro{FamilyKeyState}. Depending on the command used and other family +members, this may result in an error message about unknown value assignment +(see also \autopageref{desc:scrbase.cmd.FamilyUnkownKeyValue} and +\autopageref{desc:scrbase.cmd.FamilyKeyState}). \begin{Example} - The key \Option{coldcut} should be declared somehow more robust. Additionally - all sausage packages should use the same key. So either all or none of them - will produce cold cut. + The key \Option{coldcut} should be declared somehow more + robust. Additionally, all sausage packages should use the same key. So + either all or none of them will produce cold cut. \begin{lstcode} \FamilyBoolKey{butcher}{coldcut}% {@coldcut} @@ -467,13 +530,13 @@ about unknown value assignment (see also ... \fi \end{lstcode} - This would be the same in each of the three sausage packages. With this the - attribute ``coldcut'' may be defined as a family option: + This would be the same in each of the three sausage packages, thereby + defining the attribute ``coldcut'' as a family option: \begin{lstcode}[moretexcs={define@key}] \@ifundefined{if@coldcut}{% \expandafter\newif\csname if@coldcut\endcsname }{}% - \define@key{butcher}{coldcut}[true]{% + \DefineFamilyKey[]{butcher}{coldcut}[true]{% \FamilySetBool{butcher}{coldcut}% {@coldcut}% {#1}% @@ -485,7 +548,7 @@ about unknown value assignment (see also {@coldcut} \end{lstcode} using the additional information at - \autopageref{explain:scrbase.macro.DefineFamilyKey}, that's not only valid + \autopageref{explain:scrbase.macro.DefineFamilyKey}, this is not only valid for \Macro{DefineFamilyKey} but for \Macro{FamilyBoolKey} too. \end{Example} % @@ -506,10 +569,10 @@ about unknown value assignment (see also \end{Declaration} \BeginIndex{Cmd}{FamilyNumericalKey}% \BeginIndex{Cmd}{FamilySetNumerical}% -In opposite to switches that may be either true or false, also key exists, +In contrast to switches that may be either true or false, a key exists that accept several values. For example an alignment may not only be left or -not left, but, e.\,g., left, centered, or right. Internally such -differentiations are often made using \Macro{ifcase}. This \TeX{} command +not left, but left, centered, or right. Internally such +differentiation often is made using \Macro{ifcase}. This \TeX{} command expects a numerical value. Because of this the command to define a macro by a \PName{key} has been named \Macro{FamilyNumericalKey} in \Package{scrbase}. The \PName{values list} thereby has the form: @@ -518,16 +581,16 @@ a \PName{key} has been named \Macro{FamilyNumericalKey} in \Parameter{value}\Parameter{definition}\texttt{,}% \dots \end{tabular}\vskip\dp\strutbox\end{flushleft} -So the \PName{values list} does not only define the supported values to the -\PName{key}. For each of the \PName{value}s it also gives the -\PName{definition} of macro \Macro{\PName{command}}. Usually -\PName{definition} is just a numerical value. Nevertheless other content is -possible and allowed. Currently the only limitation is, that -\PName{definition} has to be fully expandable and will be expanded while the +Therefore, the \PName{values list} does not solely define the supported values to the +\PName{key}. For each of the \PName{value}s, the +\PName{definition} of macro \Macro{\PName{command}} also is given. Usually, +\PName{definition} is just a numerical value. Nevertheless, other content is +possible and allowed. Currently, the only limitation is that +\PName{definition} has to be fully expandable and will be expanded during the assignment. \begin{Example} The sausage may be cut different. For example the cold cut may stay uncut or - will by cut roughly or may be cut thinly. This information should be stored + will be cut roughly or may be cut thinly. This information should be stored in command \Macro{cuthow}. \begin{lstcode} \FamilyNumericalKey{butcher}% @@ -551,10 +614,10 @@ assignment. \end{lstcode} In all three cases \Macro{cuthow} would be defined with content \PValue{none}. It may be very useful to provide several values for the same - result like shown in this example. + result as shown in this example. Now, it's most likely, that the kind of cutting will not be printed, but - should be evaluated later. In this case a textual definition wouldn't be + should be evaluated later. In this case a textual definition would not be useful. If the key is defined like this: \begin{lstcode} \FamilyNumericalKey{butcher}% @@ -564,7 +627,7 @@ assignment. {thin}{2}% } \end{lstcode} - then a condition like this: + then a condition like the following may be used: \begin{lstcode} \ifcase\cuthow % no cut @@ -574,9 +637,8 @@ assignment. % thin cut \fi \end{lstcode} - may be used. \end{Example} -Internally \Macro{FamilyNumericalKey} uses \Macro{FamilySetNumerical} as +Internally, \Macro{FamilyNumericalKey} uses \Macro{FamilySetNumerical} as \PName{action} of \Macro{DefineFamilyKey}. If a unknown value is assigned to such a key, \Macro{FamilySetNumerical} will call \Macro{FamilyUnkownKeyValue} with the arguments \PName{family}, \PName{key} and \PName{value}. This will @@ -593,18 +655,19 @@ normally result in an error message about assigning an unknown value. \OParameter{default}\Parameter{command} \end{Declaration} \BeginIndex{Cmd}{FamilyStringKey}% -This defines\ChangedAt{v3.08}{\Package{scrbase}} a \PName{key}, that accepts -every value. The value will be stored into the given \Macro{command}. If their +This defines\ChangedAt{v3.08}{\Package{scrbase}} a \PName{key} that accepts +every value. The value will be stored into the given \Macro{command}. If there is no optional argument for the \PName{default}, \Macro{FamilyStringKey} is -the same like +the same as: \begin{quote} \Macro{DefineFamilyKey}\OParameter{family member}\Parameter{family}% \Parameter{key}\\ \hphantom{\Macro{DefineFamilyKey}}% -\PParameter{\Macro{def}\PName{command}\string{\#1\string}}. +\PParameter{\Macro{def}\PName{command}\string{\#1\string}% +\Macro{FamilyKeyStateProcessed}}. \end{quote} -If an optional argument \PName{default} has been used, \Macro{FamilyStringKey} -is the same like +If an optional argument \PName{default} is used, \Macro{FamilyStringKey} +is the same as: \begin{quote} \Macro{DefineFamilyKey}\OParameter{family member}\Parameter{family}% \Parameter{key}\\ @@ -612,13 +675,12 @@ is the same like \OParameter{default}% \PParameter{\Macro{def}\PName{command}\string{\#1\string}}. \end{quote} -If \PName{command} hasn't been defined already, an empty macro will be -defined. +If \PName{command} is not been defined, an empty macro will be defined. \begin{Example} By default an amount of 250\Unit{g} sausage salad should be produced. The amount should be configurable by an option. The wanted amount will be stored in the macro \Macro{saladweight}. The option should be named - \PValue{saladweight} too: + \PValue{saladweight}, too: \begin{lstcode} \newcommand*{\saladweight}{250g} \FamilyStringKey{butcher}% @@ -629,11 +691,11 @@ defined. \begin{lstcode} \FamilyOptions{butcher}{saladweight} \end{lstcode} - That may be done, because the default weight has been set as default at the + This may be done, because the default weight has been set as default at the definition of the option above. \end{Example} -In this case there are no unknown values, because all values are simply used -for a macro definition. Nevertheless, you should note, that paragraph breaks +In this case there are not unknown values because all values are simply used +for a macro definition. Nevertheless, you should note that paragraph breaks at the value assignment to the key are not allowed. % \EndIndex{Cmd}{FamilyStringKey}% @@ -641,8 +703,7 @@ at the value assignment to the key are not allowed. \begin{Declaration} \Macro{FamilyUnkownKeyValue}\Parameter{family}\Parameter{key}% - \Parameter{value}\Parameter{values list}\\ - \Macro{FamilyElseValues} + \Parameter{value}\Parameter{values list}% \end{Declaration} \BeginIndex{Cmd}{FamilyUnkownKeyValue}% \BeginIndex{Cmd}{FamilyElseValues}% @@ -652,17 +713,10 @@ separated list of allowed values in the form: \begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} `\PName{value}'\texttt{,} `\PName{value}' \dots \end{tabular}\vskip\dp\strutbox\end{flushleft} -Additional allowed values may be set by \Macro{FamilyElseValues} in -the form: -\begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} - \texttt{,} `\PName{value}'\texttt{,} `\PName{value}' \dots -\end{tabular}\vskip\dp\strutbox\end{flushleft} -These will also be shown in the error message. \Macro{FamilySetBool} as well -as \Macro{FamilySetNumerical} will reset \Macro{FamilyElseValue} to an empty -definition automatically\,---\,independent of whether or not a error has been -thrown. +Currently\ChangedAt{v3.12}{\Package{scrbase}}, \PName{values list} is +not used by \Package{scrbase}. \begin{Example} - Now, for the cold cut the choices should be cut or no cut and in case of cut + Now, for the cold cut, the choices should be cut or no-cut and in case of cut rough or thin. Rough should be the default for cutting. \begin{lstcode} \@ifundefined{if@thincut}{% @@ -673,31 +727,62 @@ thrown. \newif\csname if@coldcut\endcsname}{} \DefineFamilyKey{butcher}% {coldcut}[true]{% - \ifstr{#1}{thin}{% - \@coldcuttrue - \@thincuttrue - }{% + \FamilySetBool{butcher}{coldcut}% + {@coldcut}% + {#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed \@thincutfalse - \def\FamilyElseValue{, `thin'}% - \FamilySetBool{butcher}{coldcut}% - {@coldcut}% - {#1}% - }% + \else + \ifstr{#1}{thin}{% + \@coldcuttrue + \@thincuttrue + \FamilyKeyStateProcessed + }{}% + \fi }% \end{lstcode} - Command \Macro{ifstr} used at the example code above will be described at - \autopageref{desc:scrbase.cmd.ifstr} in \autoref{sec:scrbase.if}. + Let's have a look at the definition of \Option{butcher}: + First of all, we try to set the boolean switch of cold cut using + \Macro{FamilySetBool}. After this command, we test whether or not + \Macro{FamilyKeyState} signals the success of the command with state + \Macro{FamilyKeyStateProcessed}. If so, only the thin cut has to be + deactivated. + + In the other case, the value will be tested to be equal to \PValue{thin}. In + that case, cold cut and thin cut are activated and the state will be + switched to \Macro{FamilyKeyStateProcessed}. If the last test failed also, + the failure state of \Macro{FamilySetBool} is still valid at the end of the + execution. + + Command \Macro{ifstr} is used for the thin test. It is + described on \autopageref{desc:scrbase.cmd.ifstr} in + \autoref{sec:scrbase.if}. \end{Example} % -\EndIndex{Cmd}{FamilyElseValues}% \EndIndex{Cmd}{FamilyUnkownKeyValue}% +\begin{Declaration} + \Macro{FamilyElseValues} +\end{Declaration} +\BeginIndex{Cmd}{FamilyElseValues}% +With former releases\ChangedAt{v3.12}{\Package{scrbase}} of \Package{scrbase}, +additional allowed values reported by \Macro{FamilyUnknownKeyValue} can be +set re-defining \Macro{FamilyElseValues} in the form: +\begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} + \texttt{,} `\PName{value}'\texttt{,} `\PName{value}' \dots +\end{tabular}\vskip\dp\strutbox\end{flushleft} +Since release~3.12 \Macro{FamilyUnknownValue} does not report errors itself, +but signals them using \Macro{FamilyKeyState}. Therefore, +\Macro{FamilyElseValues} became deprecated. Nevertheless, its former usage is +recognised by \Package{scrbase} and results in a code change demand message.% +\EndIndex{Cmd}{FamilyElseValues}% + \section{Conditional Execution} \label{sec:scrbase.if} The package \Package{scrbase} provides several commands for conditional -execution. Thereby not the \TeX{} syntax of conditionals, e.\,g., +execution. other than the \TeX{} syntax of conditionals, e.\,g., % Umbruchkorrektur \begin{lstcode}[belowskip=\dp\strutbox] \iftrue @@ -706,21 +791,21 @@ execution. Thereby not the \TeX{} syntax of conditionals, e.\,g., ... \fi \end{lstcode} -but the \LaTeX{} syntax also known from \LaTeX{} commands like +yet the \LaTeX{} syntax also known from \LaTeX{} commands like \Macro{IfFileExists}, \Macro{@ifundefined}, \Macro{@ifpackageloaded}, and many -others will be used. Nevertheless, some package authors prefer to use the -\TeX{} syntax even for users at the \LaTeX{} interface level. In fact the -conditionals of \Package{scrbase} are very basic conditionals, this could -result in conditionals with the same name but different syntax and though in -naming conflicts. Because of this \Package{scrbase} firstly defines these -conditionals as internal commands with prefix \Macro{scr@}. Additional user -commands without this prefix are additionally defined. But the definition of -the user commands may be suppressed with option \Option{internalonly} (see +others, is used. Nevertheless, some package authors prefer to use the \TeX{} +syntax even for users at the \LaTeX{} interface level that could inevitably +lead to naming conflicts with the \Package{scrbase} conditionals. In fact, the +conditionals of \Package{scrbase} are very basic. Because of this +\Package{scrbase} firstly defines these conditionals as internal commands with +prefix \Macro{scr@}. Additional user commands without this prefix are +subsequently defined. But the definition of the user commands may be +suppressed with option \Option{internalonly} (see \autoref{sec:scrbase.loadit}, \autopageref{desc:scrbase.option.internalonly}). -Authors of packages and classes should use the internal commands like +Authors of packages and classes should use the internal commands as \KOMAScript{} itself does. Nevertheless, for completeness the user commands -are described additionally. +are described separately. \begin{Declaration} @@ -733,12 +818,12 @@ are described additionally. \BeginIndex{Cmd}{ifundefinedorrelax}% This command has almost the same functionality as \Macro{@ifundefined} from the \LaTeX{} kernel (see \cite{latex:source2e}). So the \PName{then - instructions} will be executed, if \PName{name} is the name of a command, -that is currently either not defined or \Macro{relax}. Otherwise the -\PName{else instructions} will be executed. In opposite to -\Macro{@ifundefined} \Macro{\PName{name}} won't be defined to be \Macro{relax} -in the case it wasn't defined before. Using \eTeX{} this case won't at least -consume any hash memory.% + instructions} will be executed if \PName{name} is the name of a command +that is currently either not defined or \Macro{relax}. Otherwise, the +\PName{else instructions} will be executed. In contrast to +\Macro{@ifundefined}, \Macro{\PName{name}} is not defined to be \Macro{relax} +in the event it was not defined before. Moreover, using \eTeX{} this case will +not consume any hash memory.% % \EndIndex{Cmd}{ifundefinedorrelax}% \EndIndex{Cmd}{scr@ifundefinedorrelax}% @@ -753,11 +838,10 @@ consume any hash memory.% \BeginIndex{Cmd}{scr@ifpdftex}% \BeginIndex{Cmd}{ifpdftex}% If pdf\TeX{} has been used, the \PName{then instructions} will be executed, -otherwise the \PName{else instructions}. Whether or not a PDF-file will be -out, doesn't matter. Nevertheless, this pdf\TeX{} test seems so make sense -seldom only. Generally it's recommended to test for the wanted commands -instead (see previous \Macro{scr@ifundefinedorrelax} and -\Macro{ifundefinedorrelax}). +otherwise the \PName{else instructions}. Whether or not a PDF-file is +generated does not matter, and the pdf\TeX{} test is rarely useful. In +general, test for the desired command instead (see previous +\Macro{scr@ifundefinedorrelax} and \Macro{ifundefinedorrelax}). % \EndIndex{Cmd}{ifpdftex}% \EndIndex{Cmd}{scr@ifpdftex}% @@ -772,9 +856,9 @@ instead (see previous \Macro{scr@ifundefinedorrelax} and \BeginIndex{Cmd}{scr@ifVTeX}% \BeginIndex{Cmd}{ifVTeX}% If V\TeX{} has been used, the \PName{then instructions} will be executed, -otherwise the \PName{else instructions}. This test seems so make sense -seldom only. Generally it's recommended to test for the wanted commands instead -(see previous \Macro{scr@ifundefinedorrelax} and \Macro{ifundefinedorrelax}). +otherwise the \PName{else instructions}. This test is seldom useful. Test for +the desired command instead (see previous \Macro{scr@ifundefinedorrelax} and +\Macro{ifundefinedorrelax}). % \EndIndex{Cmd}{ifVTeX}% \EndIndex{Cmd}{scr@ifVTeX}% @@ -788,9 +872,9 @@ seldom only. Generally it's recommended to test for the wanted commands instead \end{Declaration} \BeginIndex{Cmd}{scr@ifpdfoutput}% \BeginIndex{Cmd}{ifpdfoutput}% -While PDF-file generation the \PName{then instructions} will be executed, -otherwise the \PName{else instructions}. Whether, e.\,g., pdf\TeX{} or V\TeX{} -is used to generate the PDF-file doesn't matter. +When generating a PDF-file the \PName{then instructions} will be executed, +otherwise the \PName{else instructions}. Whether pdf\TeX{} or V\TeX{} or +another \TeX{} engine is used to generate the PDF-file does not matter. % \EndIndex{Cmd}{ifpdfoutput}% \EndIndex{Cmd}{scr@ifpdfoutput}% @@ -804,12 +888,11 @@ is used to generate the PDF-file doesn't matter. \end{Declaration} \BeginIndex{Cmd}{scr@ifpsoutput}% \BeginIndex{Cmd}{ifpsoutput}% -While PostScript-file generation the \PName{then instructions} will be executed, -otherwise the \PName{else instructions}. V\TeX{} provides direct PostScript -generation, that will be recognized here. If V\TeX{} is not used but a switch -\Macro{if@dvips} has been defined, the decision depends on that -switch. \KOMAScript{}, e.\,g., provides \Macro{if@dvips} in -\Package{typearea}. +When generating a PostScript-file the \PName{then instructions} will be +executed, otherwise the \PName{else instructions}. V\TeX{} provides direct +PostScript generation that will be recognised here. If V\TeX{} is not used, +but a switch \Macro{if@dvips} has been defined, the decision depends on that +switch. \KOMAScript{} provides \Macro{if@dvips} in \Package{typearea}. % \EndIndex{Cmd}{ifpsoutput}% \EndIndex{Cmd}{scr@ifpsoutput}% @@ -823,7 +906,7 @@ switch. \KOMAScript{}, e.\,g., provides \Macro{if@dvips} in \end{Declaration} \BeginIndex{Cmd}{scr@ifdvioutput}% \BeginIndex{Cmd}{ifdvioutput}% -While DVI-file generation the \PName{then instructions} will be executed, +When generating a DVI-file the \PName{then instructions} will be executed, otherwise the \PName{else instructions}. If neither a direct PDF-file generation nor a direct PostScript-file generation has been detected, DVI-file generation is assumed. @@ -839,8 +922,8 @@ generation is assumed. \BeginIndex{Cmd}{ifnotundefined}% \eTeX{} will be used to test, whether or not a command with the given \PName{name} has already been defined. The \PName{then instructions} will be -executed, if the command is defined, the \PName{else instructions} -otherwise. There's no corresponding internal command for this. +executed if the command is defined, otherwise the \PName{else + instructions}. There is no corresponding internal command. % \EndIndex{Cmd}{ifnotundefined}% @@ -850,23 +933,159 @@ otherwise. There's no corresponding internal command for this. \Parameter{then instructions}\Parameter{else instructions} \end{Declaration} \BeginIndex{Cmd}{ifstr}% -Both \PName{string} arguments will be expanded and afterward compared. If the -expansions are same, the \PName{then instructions} will be -executed, otherwise the \PName{else instructions}. There's no corresponding -internal command for this. +Both \PName{string} arguments are expanded and afterwards compared. If the +expansions are the same, the \PName{then instructions} will be executed, +otherwise the \PName{else instructions}. There is no corresponding internal +command. % \EndIndex{Cmd}{ifstr}% +\begin{Declaration} + \Macro{ifstrstart}\Parameter{string}\Parameter{string}% + \Parameter{then instructions}\Parameter{else instructions} +\end{Declaration} +\BeginIndex{Cmd}{ifstrstart}% +Both\ChangedAt{v3.12}{\Package{scrbase}} \PName{string} arguments are +expanded and afterwards compared. If aside from white spaces the first string +starts with the second one, the \PName{then instructions} will be executed, +otherwise the \PName{else instructions}. The command is not completely +expandable and there is no corresponding internal command.% +\EndIndex{Cmd}{ifstrstart}% + +\begin{Declaration} + \Macro{ifisdimen}\Parameter{code}% + \Parameter{then instructions}\Parameter{else instructions} +\end{Declaration} +\BeginIndex{Cmd}{ifisdimen}% +If\ChangedAt{v3.12}{\Package{scrbase}} the expansion of\PName{code} results in +a \Macro{dimen}, which is also known as \TeX{} length register, the +\PName{then instructions} will be executed, otherwise the \PName{else + instructions}. The command is not completely expandable and there is no +corresponding internal command.% +\EndIndex{Cmd}{ifisdimen}% + +\begin{Declaration} + \Macro{ifisdimension}\Parameter{code}% + \Parameter{then instructions}\Parameter{else instructions} +\end{Declaration} +\BeginIndex{Cmd}{ifisdimension}% +If\ChangedAt{v3.12}{\Package{scrbase}} \PName{code} expands to something with +the syntax of the value of a length, the \PName{then instructions} will be +executed, otherwise the \PName{else instructions}. Please +note\textnote{Attention!} that currently an invalid unit will result in an +error message. The command is not completely expandable and there is no +corresponding internal command.% +\EndIndex{Cmd}{ifisdimension}% + +\begin{Declaration} + \Macro{ifisdimexpr}\Parameter{code}% + \Parameter{then instructions}\Parameter{else instructions} +\end{Declaration} +\BeginIndex{Cmd}{ifisdimexpr}% +If\ChangedAt{v3.12}{\Package{scrbase}} the expansion of\PName{code} results in +a \Macro{dimexpr}, which is also known as \TeX{} length expression, the +\PName{then instructions} will be executed, otherwise the \PName{else + instructions}. Note\textnote{Attention!} that illegal expressions will +result in error messages. The command is not completely expandable and there +is no corresponding internal command.% +\EndIndex{Cmd}{ifisdimexpr}% + +\begin{Declaration} + \Macro{ifisskip}\Parameter{code}% + \Parameter{then instructions}\Parameter{else instructions} +\end{Declaration} +\BeginIndex{Cmd}{ifisskip}% +If\ChangedAt{v3.12}{\Package{scrbase}} the expansion of\PName{code} results in +a \Macro{skip}, which is also known as \TeX{} distance register, the +\PName{then instructions} will be executed, otherwise the \PName{else + instructions}. The command is not completely expandable and there is no +corresponding internal command.% +\EndIndex{Cmd}{ifisskip}% + +\begin{Declaration} + \Macro{ifisglue}\Parameter{code}% + \Parameter{then instructions}\Parameter{else instructions} +\end{Declaration} +\BeginIndex{Cmd}{ifisglue}% +If\ChangedAt{v3.12}{\Package{scrbase}} \PName{code} expands to something with +the syntax of the value of a skip, the \PName{then instructions} will be +executed, otherwise the \PName{else instructions}. Please +note\textnote{Attention!} that currently an invalid unit will result in an +error message. The command is not completely expandable and there is no +corresponding internal command.% +\EndIndex{Cmd}{ifisglue}% + +\begin{Declaration} + \Macro{ifisglueexpr}\Parameter{code}% + \Parameter{then instructions}\Parameter{else instructions} +\end{Declaration} +\BeginIndex{Cmd}{ifisglueexpr}% +If\ChangedAt{v3.12}{\Package{scrbase}} the expansion of\PName{code} results in +a \Macro{glueexpr}, which is also known as \TeX{} distance expression, the +\PName{then instructions} will be executed, otherwise the \PName{else + instructions}. Note,\textnote{Attention!} that illegal expressions will +result in error messages. The command is not completely expandable and there +is no corresponding internal command.% +\EndIndex{Cmd}{ifisglueexpr}% + +\begin{Declaration} + \Macro{ifiscount}\Parameter{code}% + \Parameter{then instructions}\Parameter{else instructions} +\end{Declaration} +\BeginIndex{Cmd}{ifiscount}% +If\ChangedAt{v3.12}{\Package{scrbase}} the expansion of\PName{code} results in +a \Macro{count}, which is also known as \TeX{} counter register, the +\PName{then instructions} will be executed, otherwise the \PName{else + instructions}. The command is not completely expandable and there is no +corresponding internal command. For test with \LaTeX{} counters, see +\Macro{ifiscounter}.% +\EndIndex{Cmd}{ifiscount}% + +\begin{Declaration} + \Macro{ifisnumber}\Parameter{code}% + \Parameter{then instructions}\Parameter{else instructions} +\end{Declaration} +\BeginIndex{Cmd}{ifisnumber}% +If\ChangedAt{v3.12}{\Package{scrbase}} \PName{code} expands to something with +the syntax of the value of a counter, which would be a negative or positive +integer, the \PName{then instructions} will be executed, otherwise the +\PName{else instructions}. The command is not completely expandable and there +is no corresponding internal command.% +\EndIndex{Cmd}{ifisnumber}% + +\begin{Declaration} + \Macro{ifisnumexpr}\Parameter{code}% + \Parameter{then instructions}\Parameter{else instructions} +\end{Declaration} +\BeginIndex{Cmd}{ifisnumexpr}% +If\ChangedAt{v3.12}{\Package{scrbase}} the expansion of\PName{code} results in +a \Macro{numexpr}, which is also known as \TeX{} number expression, the +\PName{then instructions} will be executed, otherwise the \PName{else + instructions}. Note\textnote{Attention!} that illegal expressions will +result in error messages. The command is not completely expandable and there +is no corresponding internal command.% +\EndIndex{Cmd}{ifisnumexpr}% + +\begin{Declaration} + \Macro{ifiscounter}\Parameter{counter}% + \Parameter{then instructions}\Parameter{else instructions} +\end{Declaration} +\BeginIndex{Cmd}{ifiscounter}% +If\ChangedAt{v3.12}{\Package{scrbase}} \PName{counter} is an already defined +\LaTeX{} counter, the \PName{then instructions} will be executed, otherwise +the \PName{else instructions}. The command is not completely expandable and +there is no corresponding internal command.% +\EndIndex{Cmd}{ifiscounter}% \begin{Declaration} \Macro{ifnumber}\Parameter{string}% \Parameter{then instructions}\Parameter{else instructions} \end{Declaration} \BeginIndex{Cmd}{ifnumber}% -Note, that this does not compare numbers. The \PName{then instructions} will -be executed, if the expansion of \PName{string} consists of digits -only. Otherwise the \PName{else instructions} will be used. There's no -corresponding internal command for this. +Note that this does not compare numbers. The \PName{then instructions} will +be executed if the expansion of \PName{string} consists of digits +only. Otherwise the \PName{else instructions} will be used. There is no +corresponding internal command. % \EndIndex{Cmd}{ifnumber}% @@ -876,10 +1095,10 @@ corresponding internal command for this. \Parameter{then instructions}\Parameter{else instructions} \end{Declaration} \BeginIndex{Cmd}{ifdimen}% -Note, that this does not compare dimensions. The \PName{then instructions} will +Note that this does not compare dimensions. The \PName{then instructions} will be executed, if the expansion of \PName{string} consists of digits and a valid -unit of length. Otherwise the \PName{else instructions} will be used. There's no -corresponding internal command for this. +unit of length. Otherwise, the \PName{else instructions} will be used. There +is no corresponding internal command. % \EndIndex{Cmd}{ifdimen}% @@ -890,11 +1109,11 @@ corresponding internal command for this. \end{Declaration} \BeginIndex{Cmd}{if@atdocument}% This command exists intentionally as internal command only. In the document -preamble \Macro{if@atdocument} is same like \Macro{iffalse}. After -\Macro{begin}\PParameter{document} it's same like \Macro{iftrue}. Authors of -classes and packages may use this, if a command should work somehow different -depending in whether it has been used in the preamble or inside the documents -body. Please note\textnote{Attention!}, that this is a condition in \TeX{} +preamble \Macro{if@atdocument} is same as \Macro{iffalse}. After +\Macro{begin}\PParameter{document} it's the same as \Macro{iftrue}. Authors of +classes and packages may use this if a command should work somehow different +depending on whether it has been used in the preamble or inside the documents +body. Please note\textnote{Attention!} that this is a condition in \TeX{} syntax not in \LaTeX{} syntax! % \EndIndex{Cmd}{if@atdocument}% @@ -906,77 +1125,106 @@ syntax not in \LaTeX{} syntax! \index{language>dependent terms|see{language definition}} \index{terms>language-dependent|see{language definition}} -Normally one has to change or define language-dependent terms like -\Macro{captionsenglish} in such a way that in addition to the available terms +Normally, one has to change or define language-dependent terms like +\Macro{captionsenglish} in such a way that, in addition to the available terms, the new or redefined terms are defined. This is made more difficult by the fact that some packages like \Package{german}\IndexPackage{german} or \Package{ngerman}\IndexPackage{ngerman} redefine those settings when the -packages are loaded. This definitions unfortunately occurs in such a manner as +packages are loaded. These definitions unfortunately occur in such a manner as to destroy all previous private settings. That is also the reason why it makes -sense to delay own changes with \Macro{AtBeginDocument} until -\Macro{begin}\PParameter{document}, that is, after package loading is -completed. The user can also use \Macro{AtBeginDocument}, or redefine the -language-dependent terms after \Macro{begin}\PParameter{document}, that is, +sense to delay changes with \Macro{AtBeginDocument} until +\Macro{begin}\PParameter{document}; that is, after package loading is +completed. The user can also use \Macro{AtBeginDocument} or redefine the +language-dependent terms after \Macro{begin}\PParameter{document}; that is, not put them in the preamble at all. The package \Package{scrbase} provides some additional commands for defining language-dependent terms. \begin{Declaration} + \Macro{defcaptionname}% + \Parameter{language list}\Parameter{term}\Parameter{definition}\\ \Macro{providecaptionname}% - \Parameter{language}\Parameter{term}\Parameter{definition}\\ + \Parameter{language list}\Parameter{term}\Parameter{definition}\\ \Macro{newcaptionname}% - \Parameter{language}\Parameter{term}\Parameter{definition}\\ + \Parameter{language list}\Parameter{term}\Parameter{definition}\\ \Macro{renewcaptionname}% - \Parameter{language}\Parameter{term}\Parameter{definition} + \Parameter{language list}\Parameter{term}\Parameter{definition}\\ + \Macro{defcaptionname*}% + \Parameter{language list}\Parameter{term}\Parameter{definition}\\ + \Macro{providecaptionname*}% + \Parameter{language list}\Parameter{term}\Parameter{definition}\\ + \Macro{newcaptionname*}% + \Parameter{language list}\Parameter{term}\Parameter{definition}\\ + \Macro{renewcaptionname*}% + \Parameter{language list}\Parameter{term}\Parameter{definition} \end{Declaration} +\BeginIndex{Cmd}{defcaptionname}% \BeginIndex{Cmd}{providecaptionname}% \BeginIndex{Cmd}{newcaptionname}% \BeginIndex{Cmd}{renewcaptionname}% Using one of these commands, the user can assign a \PName{definition} for a -particular \PName{language} to a \PName{term}. The \PName{term} is always a -macro. The commands differ dependent on whether a given \PName{language} or a -\PName{term} within a given \PName{language} are already defined or not at the +particular language to a \PName{term}. Several languages can be concatenated +with comma to a \PName{language list}. The \PName{term} is always a +macro. The commands differ depending on whether a given language or a +\PName{term} within a given language are already defined or not at the time the command is called. -If \PName{language} is not defined, then \Macro{providecaptionname} does -nothing other than writes a message in the log file. This happens only once -for each language. If \PName{language} is defined but \PName{term} is not yet +If a language is not defined, then \Macro{providecaptionname} does +nothing other than write a message in the log file. This happens only once +for each language. If a language is defined, but \PName{term} is not yet defined for it, then it will be defined using \PName{definition}. The -\PName{term} will not be redefined if the \PName{language} already has such a +\PName{term} will not be redefined if the language already has such a definition; instead, an appropriate message is written to the log file. -The command \Macro{newcaptionname} has a slightly different behaviour. If the -\PName{language} is not yet defined, then a new language command will be -created and a message written to the log file. For \PName{language} -\PValue{USenglish}, e.\,g.\, this would be the language command -\Macro{captionsUSenglish}. If \PName{term} is not yet defined in -\PName{language}, then it will be defined using \PName{definition}. If -\PName{term} already exists in \PName{language}, then this results in an error +The command \Macro{newcaptionname} has a slightly different behaviour. If a +language is not yet defined, then a new language command will be +created and a message written to the log file. For language +\PValue{USenglish}, for example, this would be the language command +\Macro{captionsUSenglish}. If \PName{term} is not yet defined in a +language, then it will be defined using \PName{definition}. If +\PName{term} already exists in a language, then this results in an error message. The command \Macro{renewcaptionname} again behaves differently. It requires an -existing definition of \PName{term} in \PName{language}. If neither -\PName{language} nor \PName{term} exist or \PName{term} is unknown in a -defined language then a error message will be given. Otherwise, the -\PName{term} for \PName{language} will be redefined according to +existing definition of \PName{term} in the languages. If neither +a language nor \PName{term} exist or \PName{term} is unknown in a +defined language, then an error message is given. Otherwise, the +\PName{term} for the language will be redefined according to \PName{definition}. -\KOMAScript{} itself employs \Macro{providecaptionname} in order to define the +\KOMAScript{} employs \Macro{providecaptionname} in order to define the commands in \autoref{sec:scrlttr2-experts.languages}. \begin{Example} - If you prefer ``fig.'' instead of ``figure'', you may achieve this using: + If you prefer ``fig.'' instead of ``figure'' in \PValue{USenglish}, you may + achieve this using: \begin{lstcode} \renewcaptionname{USenglish}{\figurename}{fig.} \end{lstcode} + If you want the same change not only in \PValue{USenglish} but also in + \PValue{UKenglish}, you do not need an additional: +\begin{lstcode} + \renewcaptionname{UKenglish}{\figurename}{fig.} +\end{lstcode} + but can simply extend the \PName{language list}: +\begin{lstcode} + \renewcaptionname{USenglish,UKenglish}{\figurename}{fig.} +\end{lstcode} + You can extend the \PName{language list} in the same manner by + \PValue{american}, \PValue{australian}, \PValue{british}, \PValue{canadian}, + and \PValue{newzealand}. \end{Example} -Since\textnote{Attention!} only existing terms in available languages can be -redefined using \Macro{renewcaptionname}, you have to put the command after -\Macro{begin}\PParameter{document} or delay the command by using -\Macro{AtBeginDocument}. Furthermore, you will get an error message if there -is no package used that switches language selection to, e.\,g., -\PName{USenglish} in the example above. +Since \KOMAScript~3.12\ChangedAt{v3.12}{\Package{scrbase}} you do not need to +delay the definition or redefinition until \Macro{begin}\PParameter{document} +using \Macro{AtBeginDocument} any longer because \Package{scrbase} does the +delay automatically for (re)definitions in the document's +preamble. Additionally, \Package{scrbase} tests if a redefinition should be +made in \Macro{extras\PName{language}} instead of +\Macro{captions\PName{language}} and does so automatically. The new star +variants of the commands always use \Macro{extras\PName{language}}. So +redefinition of language dependent terms for packages like \Package{hyperref} +that use \Macro{extras\PName{language}} should work as expected by the user. Language dependent terms usually defined by classes and language packages are listed and described in \autoref{tab:scrbase.commonNames}. @@ -1081,6 +1329,7 @@ packages are listed and described in \autoref{tab:scrbase.commonNames}. \EndIndex{Cmd}{providecaptionname}% \EndIndex{Cmd}{newcaptionname}% \EndIndex{Cmd}{renewcaptionname}% +\EndIndex{Cmd}{defcaptionname}% % \EndIndex{}{language>definition} @@ -1088,18 +1337,18 @@ packages are listed and described in \autoref{tab:scrbase.commonNames}. \section{Identification of \KOMAScript} \label{sec:scrbase.identify} -\Package{scrbase} may be used independent of \KOMAScript{} with -other packages and classes, nevertheless it's a \KOMAScript{} package. For -this is also provides commands to identify \KOMAScript{} and itself as a -\KOMAScript{} package. +Package \Package{scrbase} may be used independent of \KOMAScript{} with +other packages and classes. Nevertheless, it is a \KOMAScript{} package. For +this, \Package{scrbase} also provides commands to identify \KOMAScript{} and +to identify itself as a \KOMAScript{} package. \begin{Declaration} \Macro{KOMAScript} \end{Declaration} \BeginIndex{Cmd}{KOMAScript}% This command only sets the word ``\KOMAScript'' with sans-serif font and -a little bit tracking of the capitals. Bay the way: All \KOMAScript{} classes -and packages define this command, if it hasn't been defined already. The +a little bit tracking for the capitals. By the way: All \KOMAScript{} classes +and packages define this command, if it has not been defined already. The definition is robust using \Macro{DeclareRobustCommand}. % \EndIndex{Cmd}{KOMAScript} @@ -1111,9 +1360,9 @@ definition is robust using \Macro{DeclareRobustCommand}. \BeginIndex{Cmd}{KOMAScriptVersion}% \KOMAScript{} defines the main version of \KOMAScript{} in this command. It has the form ``\PName{date} \PName{version} \texttt{KOMA-Script}''. This main -version is same for all \KOMAScript{} classes and the \KOMAScript{} packages, +version is same for all \KOMAScript{} classes and the \KOMAScript{} packages that are essential for the classes. Because of this, it may be inquired after -loading \Package{scrbase} too. This document has been made, e.\,g., using +loading \Package{scrbase}, too. For example, this document has been made using \KOMAScript{} version ``\KOMAScriptVersion''. % \EndIndex{Cmd}{KOMAScriptVersion}% @@ -1122,8 +1371,8 @@ loading \Package{scrbase} too. This document has been made, e.\,g., using \section{Extension of the \LaTeX{} Kernel} \label{sec:scrbase:latexkernel} -Sometimes the \LaTeX{} kernel itself provides commands, but lacks of other, -similar commands, that would often be useful too. Some of those commands for +Sometimes the \LaTeX{} kernel itself provides commands, but lacks other, +similar commands that would often be useful, too. Some of those commands for authors of packages and classes are provided by \Package{scrbase}. \begin{Declaration} @@ -1133,14 +1382,14 @@ authors of packages and classes are provided by \Package{scrbase}. \BeginIndex{Cmd}{PackageInfoNoLine}% \BeginIndex{Cmd}{ClassInfoNoLine}% For authors of classes and package the \LaTeX{} kernel already provides -commands like \Macro{ClassInfo} and \Macro{PackageInfo} to write information -together with the current line number into the log-file. Beside +commands like \Macro{ClassInfo} and \Macro{PackageInfo} to write information. +together with the current line number, into the log-file. Besides \Macro{PackageWarning} and \Macro{ClassWarning} to throw warning messages with line numbers, it also provides \Macro{PackageWarningNoLine} and \Macro{ClassWarningNoLine} for warning messages without line numbers. Nevertheless, the commands \Macro{ClassInfoNoLine} and -\Macro{PackageInfoNoLine}, to write information without line numbers into the -log-file, are missing. Package \Package{scrbase} provides them. +\Macro{PackageInfoNoLine} for writing information without line numbers into the +log-file are missing. Package \Package{scrbase} provides them. % \EndIndex{Cmd}{ClassInfoNoLine}% \EndIndex{Cmd}{PackageInfoNoLine} @@ -1156,8 +1405,8 @@ globally. This may be used only for macros that have no arguments. Nevertheless, sometimes a command like this, that works locally to a group instead of globally, could be useful. Package \Package{scrbase} provides such a command with \Macro{l@addto@macro}. An alternative may be -usage of package \Package{etoolbox}\IndexPackage{etoolbox}, that provides -several of such commands for different purpose (see \cite{package:etoolbox}). +usage of package \Package{etoolbox}\IndexPackage{etoolbox}, which provides +several of such commands for different purposes (see \cite{package:etoolbox}). % \EndIndex{Cmd}{l@addto@macro} @@ -1166,7 +1415,7 @@ several of such commands for different purpose (see \cite{package:etoolbox}). \label{sec:scrbase:etex} \eTeX{}, that is meanwhile used by \LaTeX{} and needed by \KOMAScript{}, -provides with \Macro{numexpr}\IndexCmd{numexpr} an extended feature for +provided with \Macro{numexpr}\IndexCmd{numexpr}, an extended feature for calculation of simple arithmetic with \TeX{} counters and integers. The four basic arithmetic operations and brackets are supported. Correct rounding is done while division. Sometimes additional @@ -1178,9 +1427,10 @@ operators would be useful. \end{Declaration}% \BeginIndex{Cmd}{XdivY}% \BeginIndex{Cmd}{XmodY}% -Having a division with remainder, command\ChangedAt{v3.05a}{\Package{scrbase}} -\Macro{XdivY} gives the value of the integer quotient, command \Macro{XmodY} -the value of the remainder. This kind of division is defined: +Having a division with remainder command\ChangedAt{v3.05a}{\Package{scrbase}} +\Macro{XdivY} gives the value of the integer quotient, with command +\Macro{XmodY} giving the value of the remainder. This kind of division is +defined: \[ \textit{dividend} = \textit{divisor} \cdot \textit{integer quotient} + \textit{remainder} @@ -1190,7 +1440,7 @@ is greater or equal to \textit{divisor}, and \textit{divisor} is a natural number greater than 0. The value may be used for assignment to a counter or directly in the -expression of \Macro{numexpr}. For output the value as an Arabic number is has +expression of \Macro{numexpr}. For output the value as an Arabic number has to be prefixed by \Macro{the}.% % \EndIndex{Cmd}{XmodY}% @@ -1203,7 +1453,7 @@ to be prefixed by \Macro{the}.% %%% Local Variables: %%% mode: latex %%% mode: flyspell -%%% ispell-local-dictionary: "english" +%%% ispell-local-dictionary: "en_GB" %%% coding: us-ascii %%% TeX-master: "../guide.tex" %%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle-experts.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle-experts.tex index b718bccf6f8..9fc393d423e 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle-experts.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle-experts.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrbookreportarticle-experts.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrbookreportarticle-experts.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -47,8 +47,10 @@ % % ============================================================================ -\ProvidesFile{scrbookreportarticle-experts.tex}[2012/02/28 KOMA-Script guide -(chapter: scrbook, scrreprt, scrartcl for experts)] +\KOMAProvidesFile{scrbookreportarticle-experts.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl for + experts)] \translator{Gernot Hassenpflug\and Markus Kohm} @@ -64,14 +66,14 @@ This chapter gives additional information about the \KOMAScript{} classes \Class{scrbook}, \Class{scrreprt}, and \Class{scrartcl}. Some of the features are also available for package \Package{scrextend}. \iffree{Some parts of the chapter are subject to the \KOMAScript{} book \cite{book:komascript} - only. This shouldn't be a problem, because the}{The} average user, who only -want to use the package, won't need the information, that is addressed to + only. This should not be a problem, because the}{The} average user, who only +want to use the package, will not need the information, that is addressed to users with non-standard requirements or who want to write their own classes using a \KOMAScript{} class. Another part of the information describes features of the classes that exist only because of compatibility to former releases of \KOMAScript{} or the standard classes. The features, that exist only because of compatibility to former \KOMAScript{} releases, are printed -with a sans serif font. You shouldn't use them any longer. +with a sans serif font. You should not use them any longer. \LoadNonFree{scrbookreportarticle-experts}{0} @@ -108,7 +110,7 @@ difference to this, \Macro{ClassName} tells which would be the standard class, that has been replaced by a \KOMAScript{} class. Please note\textnote{Attention!}, that the existence of -\Macro{KOMAScript}\IndexCmd{KOMAScript} isn't a indication for the usage of a +\Macro{KOMAScript}\IndexCmd{KOMAScript} is not a indication for the usage of a \KOMAScript{} class. First of all: Every \KOMAScript{} package and not only \KOMAScript{} classes define \Macro{KOMAScript}. Furthermore other packages may also define the \KOMAScript{} word mark with this name.% @@ -122,7 +124,7 @@ may also define the \KOMAScript{} word mark with this name.% \end{Declaration} \BeginIndex{Cmd}{addtocentrydefault}% The\ChangedAt{v3.08}{\Class{scrbook}\and \Class{scrreprt}\and - \Class{scrartcl}} \KOMAScript{} classes don't use + \Class{scrartcl}} \KOMAScript{} classes do not use \Macro{addcontentsline}\IndexCmd{addcontentsline}% \important{\Macro{addcontentsline}} directly. Instead they call \Macro{addtocentrydefault} with similar arguments. The command may be used @@ -168,7 +170,7 @@ manipulate the entries. For example\textnote{Example} one could suggest }% }% \end{lstcode} -to omit entries with empty \PName{heading}. In real live this wouldn't be +to omit entries with empty \PName{heading}. In real live this would not be needed, because the \KOMAScript{} classes already use another method to suppress empty entries. See the description of the structuring commands in \autoref{sec:maincls.structure} from \autopageref{desc:maincls.cmd.part} @@ -218,7 +220,7 @@ The prefix \File{scrsize} for file names of font size files, that has been mentioned\iffree{ in \autoref{sec:maincls-experts.addInfos}}{} at \autopageref{desc:maincls-experts.option.fontsize} is only the default of the internal macro \Macro{@fontsizefilebase}\IndexCmd{@fontsizefilebase}. This -default is used only, if the macro hasn't already be defined when loading a +default is used only, if the macro has not already be defined when loading a \KOMAScript{} class or package \Package{scrextend}. Authors of wrapper classes may define this macro with another file name prefix to use completely different font size files. Also\textnote{Hint!} authors of wrapper classes @@ -569,7 +571,7 @@ the\,---\,list environment, that will be used for the bibliography. It should be assumed, that many packages will execute this command in the same kind, if they redefine the bibliography. -The \KOMAScript{} classes do something similar. Nevertheless, they don't +The \KOMAScript{} classes do something similar. Nevertheless, they do not redefine \Macro{@openbib@code} at the end of the class. Instead of, the bibliography style \PValue{openstyle} is defined using \Macro{newbibstyle}. The \PName{instructions}, that has been defined as part diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle.tex index 08633a351a6..2d9a75f5718 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrbookreportarticle.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrbookreportarticle.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrbookreportarticle.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,11 +45,13 @@ % % ============================================================================ -\ProvidesFile{scrbookreportarticle.tex}[2012/05/15 KOMA-Script guide (chapter: -scrbook, scrreprt, scrartcl)] +\KOMAProvidesFile{scrbookreportarticle.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl)] + \translator{Jens-Uwe Morawski\and Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi} -% Date of translated german file: 2012-02-15 +% Date of translated german file: 2013-05-31 \chapter{The Main Classes: \Class{scrbook}, \Class{scrreprt}, and \Class{scrartcl}} @@ -188,160 +190,8 @@ class.% \LoadCommon{5}% \section{Text Markup} -The command \Macro{usekomafont} can change the current font specification to -the one currently used with the specified \PName{element}. - -\begin{Example} - \phantomsection\label{desc:maincls.setkomafont.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{lstcode} - \setkomafont{captionlabel}{% - \usekomafont{descriptionlabel}% - } -\end{lstcode} - You can find other examples in the paragraphs on each element. -\end{Example} - -\begin{desclist} - \desccaption{% - Elements whose type style can be changed with the {\KOMAScript} command - \Macro{setkomafont} or - \Macro{addtokomafont}\label{tab:maincls.elementsWithoutText}% - }{% - Elements whose type style can be changed (\emph{continuation})% - }% - \feentry{caption}{text of a table or figure caption (see - \autoref{sec:maincls.floats}, \autopageref{desc:maincls.cmd.caption})}% - \feentry{captionlabel}{label of a table or figure caption; used according to - the element \FontElement{caption} (see \autoref{sec:maincls.floats}, - \autopageref{desc:maincls.cmd.caption})}% - \feentry{chapter}{title of the sectional unit \Macro{chapter} (see - \autoref{sec:maincls.structure}, \autopageref{desc:maincls.cmd.chapter})}% - \feentry{chapterentry}{% - table of contents entry of the sectional unit \Macro{chapter} (see - \autoref{sec:maincls.toc}, - \autopageref{desc:maincls.cmd.tableofcontents})}% - \feentry{chapterentrypagenumber}{% - page number of the table of contents entry of the sectional unit - \Macro{chapter}, variation on the element \FontElement{chapterentry} (see - \autoref{sec:maincls.toc}, - \autopageref{desc:maincls.cmd.tableofcontents})}% - \feentry{chapterprefix}{% - chapter number line at setting \OptionValue{chapterprefix}{true} or - \OptionValue{appendixprefix}{true} (see \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.option.chapterprefix})}% - \feentry{descriptionlabel}{labels, i.\,e., the optional argument of - \Macro{item} in the \Environment{description} environment (see - \autoref{sec:maincls.lists}, \autopageref{desc:maincls.env.description})}% - \feentry{dictum}{dictum, wise saying, or smart slogan (see - \autoref{sec:maincls.dictum}, \autopageref{desc:maincls.cmd.dictum})}% - \feentry{dictumauthor}{author of a dictum, wise saying, or smart slogan; - used according to the element \FontElement{dictumtext} (see - \autoref{sec:maincls.dictum}, \autopageref{desc:maincls.cmd.dictum})}% - \feentry{dictumtext}{another name for \FontElement{dictum}}% - \feentry{disposition}{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 (see \autoref{sec:maincls.structure} ab - \autopageref{sec:maincls.structure})}% - \feentry{footnote}{footnote text and marker (see - \autoref{sec:maincls.footnotes}, - \autopageref{desc:maincls.cmd.footnote})}% - \feentry{footnotelabel}{mark of a footnote; used according to the element - \FontElement{footnote} (see \autoref{sec:maincls.footnotes}, - \autopageref{desc:maincls.cmd.footnote})}% - \feentry{footnotereference}{footnote reference in the text (see - \autoref{sec:maincls.footnotes}, - \autopageref{desc:maincls.cmd.footnote})}% - \feentry{footnoterule}{% - horizontal rule\ChangedAt{v3.07}{\Class{scrbook}\and \Class{scrreprt}\and - \Class{scrartcl}} above the footnotes at the end of the text area (see - \autoref{sec:maincls.footnotes}, - \autopageref{desc:maincls.cmd.setfootnoterule})}% - \feentry{labelinglabel}{labels, i.\,e., the optional argument of - \Macro{item} in the \Environment{labeling} environment (see - \autoref{sec:maincls.lists}, \autopageref{desc:maincls.env.labeling})}% - \feentry{labelingseparator}{separator, i.\,e., the optional argument of the - \Environment{labeling} environment; used according to the element - \FontElement{labelinglabel} (see \autoref{sec:maincls.lists}, - \autopageref{desc:maincls.env.labeling})}% - \feentry{minisec}{title of \Macro{minisec} (see - \autoref{sec:maincls.structure} ab - \autopageref{desc:maincls.cmd.minisec})}% - \feentry{pagefoot}{only used if package \Package{scrpage2} has been loaded - (see \autoref{cha:scrpage}, - \autopageref{desc:scrpage.fontelement.pagefoot})}% - \feentry{pagehead}{another name for \FontElement{pageheadfoot}}% - \feentry{pageheadfoot}{the head of a page, but also the foot of a page (see - \autoref{sec:maincls.pagestyle} ab \autopageref{sec:maincls.pagestyle})}% - \feentry{pagenumber}{page number in the header or footer (see - \autoref{sec:maincls.pagestyle})}% - \feentry{pagination}{another name for \FontElement{pagenumber}}% - \feentry{paragraph}{title of the sectional unit \Macro{paragraph} (see - \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.cmd.paragraph})}% - \feentry{part}{title of the \Macro{part} sectional unit, without the line - containing the part number (see \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.cmd.part})}% - \feentry{partentry}{% - table of contents entry of the sectional unit \Macro{part} (see - \autoref{sec:maincls.toc}, - \autopageref{desc:maincls.cmd.tableofcontents})}% - \feentry{partentrypagenumber}{% - Page number of the table of contents entry of the sectional unit - \Macro{part} variation on the element \FontElement{partentry} (see - \autoref{sec:maincls.toc}, - \autopageref{desc:maincls.cmd.tableofcontents})}% - \feentry{partnumber}{line containing the part number in a title of the - sectional unit \Macro{part} (see \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.cmd.part})}% - \feentry{section}{title of the sectional unit \Macro{section} (see - \autoref{sec:maincls.structure}, \autopageref{desc:maincls.cmd.section})}% - \feentry{sectionentry}{% - table of contents entry of sectional unit \Macro{section} (only available - in \Class{scrartcl}, see \autoref{sec:maincls.toc}, - \autopageref{desc:maincls.cmd.tableofcontents})}% - \feentry{sectionentrypagenumber}{% - page number of the table of contents entry of the sectional unit - \Macro{section}, variation on element \FontElement{sectionentry} (only - available in \Class{scrartcl, see \autoref{sec:maincls.toc}, - \autopageref{desc:maincls.cmd.tableofcontents}})}% - \feentry{sectioning}{another name for \FontElement{disposition}}% - \feentry{subject}{% - categorization of the document, i.\,e., the argument of \Macro{subject} on - the main title page (see \autoref{sec:maincls.titlepage}, - \autopageref{desc:maincls.cmd.subject})}% - \feentry{subparagraph}{title of the sectional unit \Macro{subparagraph} (see - \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.cmd.subparagraph})}% - \feentry{subsection}{title of the sectional unit \Macro{subsection} (see - \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.cmd.subsection})}% - \feentry{subsubsection}{title of the sectional unit \Macro{subsubsection} - (see \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.cmd.subsubsection})}% - \feentry{subtitle}{% - subtitle of the document, i.\,e., the argument of \Macro{subtitle} on the - main title page (see \autoref{sec:maincls.titlepage}, - \autopageref{desc:maincls.cmd.title})}% - \feentry{title}{main title of the document, i.\,e., the argument of - \Macro{title} (for details about the title size see the additional note in - the text of \autoref{sec:maincls.titlepage} from - \autopageref{desc:maincls.cmd.title})}% -\end{desclist} -% -\EndIndex{Cmd}{setkomafont}% -\EndIndex{Cmd}{addtokomafont}% -\EndIndex{Cmd}{usekomafont}% -% -\EndIndex{}{font}% -\EndIndex{}{text>markup}% - \LoadCommon{14} %\section{Document Titles} - \section{Abstract} \label{sec:maincls.abstract} \BeginIndex{}{summary}% @@ -408,8 +258,8 @@ When using an in-page title\Index{title>in-page} (see option \Option{titlepage}, the abstract is set using the environment \Environment{quotation}\IndexEnv{quotation} (see \autoref{sec:maincls.lists}, \autopageref{desc:maincls.env.quotation}) internally. Thereby paragraphs will -be set with intention of the first line. If that first paragraph of the -abstract should not be intended, this indent may be disabled using +be set with indentation of the first line. If that first paragraph of the +abstract should not be indented, this indent may be disabled using \Macro{noindent}\IndexCmd{noindent}\important{\Macro{noindent}} \iffree{just after \Macro{begin}\PParameter{abstract}}{at the begin of the environment}.% % @@ -662,7 +512,7 @@ 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 \Macro{subsubsection}. However, you do not want this sectional unit to appear in the table of contents. The preamble of your document might contain the following: \begin{lstcode} @@ -723,7 +573,7 @@ rule. 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 bringing header and text body closer together. That -doesn't mean that the header must now be moved farther from the text +does not mean that the header must now be moved farther from the text body. Instead, the header should be considered as belonging 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 @@ -1002,7 +852,7 @@ The page styles can be redefined with the \Macro{renewcommand} macro. \renewcommand*{\chapterpagestyle}{plain} \end{lstcode} Instead of the above you may do a local redefinition using a group. The - advantage will be that you don't need to know the current page style before + advantage will be that you do not need to know the current page style before the change to switch back at the end. \begin{lstcode} \clearpage @@ -1238,12 +1088,12 @@ starts, the option influences also the explicit usage of the commands \Macro{cleardoublestandardpage}, \Macro{cleardoubleplainpage}, and \Macro{cleardoubleemptypage}. See \autoref{sec:maincls.pagestyle}, \autopageref{desc:maincls.cmd.cleardoublepage} for more information -about these. Since \LaTeX{} doesn't differentiate between left-hand -and right-hand pages in single-sided printing, the option doesn't have +about these. Since \LaTeX{} does not differentiate between left-hand +and right-hand pages in single-sided printing, the option does not have any influence in that case. In class \Class{scrartcl} the section is the first structural element below -the part. Because of this, \Class{scrartcl} doesn't support this option. +the part. Because of this, \Class{scrartcl} does not support this option. % \EndIndex{Option}{open~=\PName{method}}% @@ -1414,7 +1264,7 @@ description of the structural commands. structural commands \Macro{part} down to \Macro{subparagraph} will be activated. By default the optional argument will be used for the running head only.% - \IndexOption{headings=~optiontohead}% + \IndexOption{headings~=\PValue{optiontohead}}% }% \entry{\PValue{optiontoheadandtoc}, \PValue{optiontotocandhead}% \IndexOption{headings~=\PValue{optiontoheadandtoc}}}{% @@ -1430,7 +1280,7 @@ description of the structural commands. structural commands \Macro{part} down to \Macro{subparagraph} will be activated. By default the optional argument will be used for the table of contents only.% - \IndexOption{headings=~optiontohead}% + \IndexOption{headings~=\PValue{optiontohead}}% }% \pventry{small}{% Use small headings with small distances above and below.% @@ -1578,13 +1428,13 @@ In addition to this, with\ChangedAt{v3.10}{\Class{scrbook}\and classes} option \important{\Option{headings}} \OptionValue{headings}{optiontohead}% \IndexOption[indexmain]{headings~=\PValue{optiontohead}}, \KOMAScript{} -doesn't use +does not use the optional argument \PName{short version} at the table of contents, but for the running head only. Nevertheless, such a running head needs an appropriate page style. See \autoref{sec:maincls.pagestyle} and \autoref{cha:scrpage} about this. With option \OptionValue{headings}{optiontotoc}% -\IndexOption[indexmain]{headings~=\PValue{optiontotoc}}, \KOMAScript{} doesn't +\IndexOption[indexmain]{headings~=\PValue{optiontotoc}}, \KOMAScript{} does not use the optional argument \PName{short version} for the running head, but at the table of contents. Nevertheless, the entry will be shown only if @@ -1594,7 +1444,7 @@ counter \Counter{tocdepth} (see \autoref{sec:maincls.toc}, \IndexOption[indexmain]{headings~=\PValue{optiontoheadandtoc}}, \KOMAScript{} uses the optional argument \PName{short version} in both the table of contents and running head. All these three selections will also activate the extended -interpretation of the optional argument \PName{short version}, which isn't +interpretation of the optional argument \PName{short version}, which is not active by default. The \ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and @@ -2121,7 +1971,7 @@ horizontally centered instead of set ragged right. This is because command \end{lstcode} You may also redefine this using \Macro{renewcommand} too. \begin{Example} - You don't want different alignment at headings of \Macro{part}. So you + You do not want different alignment at headings of \Macro{part}. So you put \begin{lstcode} \renewcommand*{\raggedpart}{\raggedsection} @@ -2270,12 +2120,16 @@ Since chapters only exist in the classes \Class{scrbook} and \begin{Declaration} \Macro{chaptermark}\Parameter{running head}\\ + \Macro{addchapmark}\Parameter{running head}\\ \Macro{sectionmark}\Parameter{running head}\\ + \Macro{addsecmark}\Parameter{running head}\\ \Macro{subsectionmark}\Parameter{running head}\\ \Macro{chaptermarkformat}\\ \Macro{sectionmarkformat}\\ \Macro{subsectionmarkformat} \end{Declaration}% +\BeginIndex{Cmd}{addchapmark}% +\BeginIndex{Cmd}{addsecmark}% \BeginIndex{Cmd}{chaptermark}% \BeginIndex{Cmd}{sectionmark}% \BeginIndex{Cmd}{subsectionmark}% @@ -2297,6 +2151,18 @@ Since chapters only exist in the classes \Class{scrbook} and \Macro{chaptermarkformat}, \Macro{sectionmarkformat}, or \Macro{subsectionmarkformat}. + Because\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} \KOMAScript{} provides additional commands + \Macro{addchap} and \Macro{addsec} to make headings without numbers, there + also exist corresponding commands for making the running heads of those. + Please note\textnote{Attention!}, that the predefined \Macro{addchapmark} + and \Macro{addsecmark} use \Macro{chaptermark} and + \Macro{sectionmark} while they set counter + \Counter{secnumdepth} to -1 locally. You should pay attention for this + exspecially if you redefine \Macro{chaptermark} or + \Macro{sectionmark}, e.\,g., you should also redefine \Macro{addchapmark} + and \Macro{addsecmark} suitable. + \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Of course there is no command \Macro{chaptermark} or \Macro{chaptermarkformat} in \Class{scrartcl}. \OnlyAt{\Class{scrartcl}}Accordingly, @@ -2336,6 +2202,8 @@ As you can see, both the commands \Macro{chapappifchapterprefix} and \EndIndex{Cmd}{chaptermarkformat}% \EndIndex{Cmd}{sectionmarkformat}% \EndIndex{Cmd}{subsectionmarkformat}% +\EndIndex{Cmd}{addsecmark}% +\EndIndex{Cmd}{addchapmark}% \begin{Declaration} @@ -2476,7 +2344,7 @@ classes. Instead of this, the math features of the \LaTeX{} kernel have been supported. With this also, the options \Option{leqno} and \Option{fleqn} are available. -You won't find a description of the math environments of the \LaTeX{} kernel +You will not find a description of the math environments of the \LaTeX{} kernel here. If you want to use \Environment{displaymath}\IndexEnv{displaymath}, \Environment{equation}\IndexEnv{equation}, and \Environment{eqnarray}\IndexEnv{eqnarray} you should read a short introduction @@ -2493,7 +2361,7 @@ standard option \Option{leqno} causes the standard option file \File{leqno.clo} to be loaded. The equations are then numbered on the left. This\textnote{Attention!} option has to be used as an optional argument of \Macro{documentclass}. Usage as an argument of \Macro{KOMAoptions} or -\Macro{KOMAoption} is not supported. This wouldn't make sense, because the +\Macro{KOMAoption} is not supported. This would not make sense, because the recommended math package \Package{amsmath} supports the option at loading time only too and would not react on run-time changes of the option. % @@ -2508,7 +2376,7 @@ standard option \Option{fleqn} causes the standard option file \File{fleqn.clo} to be loaded. Displayed equations are then left-justified. This option may be used as an optional argument of \Macro{documentclass} but not as an argument of \Macro{KOMAoptions} or -\Macro{KOMAoption}. The latter wouldn't make sense, because the recommended +\Macro{KOMAoption}. The latter would not make sense, because the recommended math package \Package{amsmath} supports the option at loading time only too and would not react on run-time changes of the option. % @@ -2600,7 +2468,7 @@ Of course similar features exist\ChangedAt{v3.09}{\Class{scrbook}\and \IndexOption{captions~=\PValue{figuresignature}}. Nevertheless, figures like photos will be viewed as a whole, and a diagram or graph will mostly be examined from left bottom to the right. Therefore, in -general, signatures should be used and it wouldn't be useful to change +general, signatures should be used and it would not be useful to change the caption format from signatures to headings. Nevertheless sometimes all floating environments shall use headings. For this @@ -2630,7 +2498,7 @@ Furthermore, \KOMAScript{} supports to switch off the distinguish of captions with only one line or more than one line using option \OptionValue{captions}{nooneline}\IndexOption{captions~=\PValue{nooneline}}% \important{\OptionValue{captions}{nooneline}}. This may be useful, if one-line -captions shouldn't be centered. The default of centering one-line captions +captions should not be centered. The default of centering one-line captions corresponds to \OptionValue{captions}{oneline}. Another special feature of \KOMAScript{} is to alternatively put the caption @@ -3156,7 +3024,7 @@ e.\,g., using \Macro{raisebox}\IndexCmd{raisebox}. placed on the inner side beside the figure. The figure itself is shifted 2\Unit{em} into the outer margin. - With \Macro{dimexp} a \eTeX{} command has been used. This shouldn't be a + With \Macro{dimexp} a \eTeX{} command has been used. This should not be a problem at all, because \KOMAScript{} itself needs \eTeX{} and every almost up-to-date \LaTeX{} distribution uses \eTeX already. @@ -3606,13 +3474,13 @@ will become their final result. Setting \OptionValue{listof}{entryprefix}\ChangedAt{v3.06}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} will automatically activate \OptionValue{listof}{flat} -too. Normally\important{\OptionValue{listof}{entryprefix}} it wouldn't make +too. Normally\important{\OptionValue{listof}{entryprefix}} it would not make sense to add the prefix ``figure'' to each entry of the list of figures and the prefix ``table'' to each entry of the list of tables, because nothing else than figures would be and should be expected at the list of figures and nothing else than tables would be and should be expected at the list of -tables. So this prefixes wouldn't give any additional information and for this -wouldn't be useful. Nevertheless, such prefixes may be added using option +tables. So this prefixes would not give any additional information and for this +would not be useful. Nevertheless, such prefixes may be added using option \OptionValue{listof}{entryprefix}. With this all entries of the same list will get the same prefix. The prefix will depend on the file extension of the helper file, that will be used for the corresponding list. For the list of @@ -3640,7 +3508,7 @@ with \OptionValue{listof}{nochaptergap}% \IndexOption{listof~=\PValue{chapterentry}} is somehow special. Instead of a gap it adds the table of contents entry for the chapter additionally to the lists of floating environments. Please\textnote{Attention!} note, that this -would also happen, if the chapter doesn't have any floating +would also happen, if the chapter does not have any floating environment. Additional influence of chapters to the lists of floating environments is available with option \Option{chapteratlists}. See \autoref{sec:maincls.structure}, @@ -3693,11 +3561,11 @@ An overview about all settings to option \Option{listof} may be found at sectioning level than default.% \IndexOption{listof~=\PValue{leveldown}}}% \entry{\PValue{nochaptergap}, \PValue{ignorechapter}}{% - Chapter starts won't be marked at the lists of floating environments.% + Chapter starts are not marked at the lists of floating environments.% \IndexOption{listof~=\PValue{nochaptergap}}}% \entry{\PValue{notoc}, \PValue{plainheading}}{% The lists of floating environments, e.\,g., list of figures and list of - tables, won't generate an entry at the table of contents.% + tables do not generate an entry at the table of contents.% \IndexOption{listof~=\PValue{notoc}}}% \entry{\PValue{numbered}, \PValue{totocnumbered}, \PValue{tocnumbered}, \PValue{numberedtotoc}}{% @@ -3708,7 +3576,7 @@ An overview about all settings to option \Option{listof} may be found at \entry{\PValue{totoc}, \PValue{toc}, \PValue{notnumbered}}{% The lists of floating environments, e.\,g., list of figures and list of tables, would generate an entry at the table of contents, but their - headings won't be numbered.% + headings are not numbered.% \IndexOption{listof~=\PValue{totoc}}}% \end{desclist} % @@ -3863,6 +3731,17 @@ neither a number nor an entry to the table of contents and corresponds to \PValue{nobibliography} to this option at \autopageref{desc:maincls.option.toc.bibliography}. +Sometimes\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} it is not usefull to have one bibliography for the whole +document but a bibliography at every chapter of a document made using +\Class{scrbook} or \Class{scrreprt}. In that case +you'd\important{\OptionValue{bibliography=leveldown}} need the bibliography +itself not to be a chapter but one level below, a section. You may achieve +this using Option \OptionValue{bibliography}{leveldown}% +\IndexOption{bibliography~=\PValue{leveldown}}. You may use this also if you'd +combine several lists and the bibliography together below one heading. So this +option is also available with \Class{scrartcl}. + A summary of all available values for option \Option{bibliography} may be found in \autoref{tab:maincls.bibliography}. Nevertheless you should note, that additional values may be generated using @@ -3874,6 +3753,12 @@ that additional values may be generated using of the bibliography} \label{tab:maincls.bibliography} \begin{desctabular} + \pventry{leveldown}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}}% + The bibliography will use a heading of one step lower section level than + default.% + \IndexOption{bibliography~=\PValue{leveldown}}}% \pventry{nottotoc}{% The bibliography will neither have an entry at the table of contents nor a number,% @@ -3907,7 +3792,7 @@ that additional values may be generated using \BeginIndex{Cmd}{setbibpreamble}% The command \Macro{setbibpreamble} can be used to set a preamble for the bibliography\Index{bibliography}. This can be achieved by placing the preamble -before the command for issuing the bibliography. However, it needn't be +before the command for issuing the bibliography. However, it need not be directly in front of it. For example, it could be placed at the beginning of the document. Similar\textnote{Attention!} to the options \OptionValue{bibliography}{totoc} and @@ -4001,10 +3886,10 @@ index hardly. This would be valid, e.\,g., for usage of package The index is chapter (\Class{scrbook} or \Class{scrreprt}) or section (\Class{scrartcl}) without heading number or entry at the table of contents by default or option -\OptionValue{index}{default}\IndexOption{index~=\PValue{default}}. The\important{\OptionValue{index}{totoc}} index -doesn't need an entry at the table of contents, because it should always be -the last element of a document. Nevertheless, such an entry may be achieved -using option +\OptionValue{index}{default}\IndexOption{index~=\PValue{default}}. +The\important{\OptionValue{index}{totoc}} index does not need an entry at the +table of contents, because it should always be the last element of a +document. Nevertheless, such an entry may be achieved using option \OptionValue{index}{totoc}\IndexOption{index~=\PValue{totoc}}. See also option \Option{toc} with value \PValue{index} in \autoref{sec:maincls.toc} from \autopageref{desc:maincls.option.toc.index} onward. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrdatetime.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrdatetime.tex index 39be1185e0f..82ec269a6aa 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrdatetime.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrdatetime.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrdatetime.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrdatetime.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,8 +45,9 @@ % % ============================================================================ -\ProvidesFile{scrdatetime.tex}[{2012/02/23 KOMA-Script guide (chapter: - scrdate, scrtime)}] +\KOMAProvidesFile{scrdatetime.tex} + [$Date: 2013-12-13 12:13:03 +0100 (Fr, 13 Dez 2013) $ + KOMA-Script guide (chapter: scrdate, scrtime)] \translator{Markus Kohm\and Gernot Hassenpflug} % Date of translated German file: 2012/02/23 @@ -88,7 +89,7 @@ The\ChangedAt{v3.05a}{\Package{scrdate}} command \Macro{CenturyPart} offers the value of the century digits\,---\,hundreds and thousands\,---\,of a \PName{year}. The command \Macro{DecadePart} in difference offers the other digits which are the units and tens. The number of digits of \PName{year} -doesn't care. The value may be assigned to a counter or may be used for +does not care. The value may be assigned to a counter or may be used for calculations, i.\,e., using \Macro{numexpr}\IndexCmd{numexpr}. For output of an Arabic number of the value prefix it with \Macro{the}\IndexCmd{the}. @@ -125,7 +126,7 @@ differ only in the kind of date declaration. Command \Macro{DayNumber} needs \PName{year}, \PName{month}, and \PName{day} as separate parameters. Command \Macro{ISODayNumber} expects an \PName{ISO-date} as a single argument. The expected format of the \PName{ISO-date} is: -\PName{year}\texttt{-}\PName{month}\texttt{-}\PName{day}. It doesn't matter +\PName{year}\texttt{-}\PName{month}\texttt{-}\PName{day}. It does not matter whether \PName{month} or \PName{day} have one or two digits. The result of both commands may be assigned to a counter or used for calculations, i.\,e., using \Macro{numexpr}\IndexCmd{numexpr}. For output of @@ -179,7 +180,7 @@ Wednesday\,=\,3, Thursday\,=\,4, Friday\,=\,5, and Saturday\,=\,6.% \BeginIndex{Cmd}{DayNameByNumber}% \BeginIndex{Cmd}{DayName}% \BeginIndex{Cmd}{ISODayName}% -Usually\ChangedAt{v3.05a}{\Package{scrdate}} you don't want to know the number +Usually\ChangedAt{v3.05a}{\Package{scrdate}} you do not want to know the number of the day of the week, but the name of the day of the week. Because of this, the command \Macro{DayNameByNumber} offers the name of the day of the week corresponding with a number. The number may be the result of \Macro{DayNumber} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrextend.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrextend.tex index 05e7dea5eb5..5baf6701c96 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrextend.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrextend.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrextend.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrextend.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,10 +45,12 @@ % % ====================================================================== -\ProvidesFile{scrextend.tex}[2012/02/16 KOMA-Script package scrextend] +\KOMAProvidesFile{scrextend.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script package scrextend] \translator{Markus Kohm} -% Date of the translated German file: 2008/09/12 +% Date of the translated German file: 2013/05/31 \chapter{Making Basic Feature of the \KOMAScript{} Classes Available with Package \Package{scrextend} while Using Other Classes} @@ -62,7 +64,7 @@ classes \Class{book}, \Class{report}, and \Class{article}, but also for several features of the \KOMAScript{} class \Class{scrlttr2}, the successor of \Class{scrlettr}, that may be used for letters. These basic features, that may be found in the above-named classes, are also provided by package -\Package{scrextend} since \KOMAScript{} release~3.00. This package shouldn't +\Package{scrextend} since \KOMAScript{} release~3.00. This package should not be used together with a \KOMAScript{} class, but may be used together with many other classes. Package \Package{scrextend} would recognize, if it would be used with a \KOMAScript{} class, and would terminate with a warning message @@ -86,7 +88,7 @@ In difference to the above, only the \KOMAScript{} classes \Class{scrbook}, \Class{scrreprt}, and \Class{scrartcl} load package \Package{tocbasic} (see \autoref{cha:tocbasic} from \autopageref{cha:tocbasic}), that has been designed to be used by authors of classes and packages too. Because of this -\Package{scrextend} doesn't provide the features of this package. Nevertheless +\Package{scrextend} does not provide the features of this package. Nevertheless you may use \Package{tocbasic} together with \Package{scrextend}.% \fi @@ -157,31 +159,6 @@ argument of \Macro{usepackage}\OParameter{optional \LoadCommon{5}% \section{Text Markup} -With command \Macro{usekomafont} the current font style may be changed into -the font style, that has been defined for the given \PName{element}. - -\begin{Example} - Assumed, you want to print the document title in a serif font and with red - color. You may do this using: -\begin{lstcode} - \setkomafont{title}{\color{red}} -\end{lstcode} - Package \Package{color} or \Package{xcolor} will be needed for command - \lstinline|\color{red}|. The additional usage of \Macro{normalfont} is not - needed in this case, because it is already part of the definition of the - title itself. This\textnote{Attention!} example also needs option - \OptionValue{extendedfeature}{title} (see - \autoref{sec:scrextend.optionalFeatures}, - \autopageref{desc:scrextend.option.extendedfeature}). -\end{Example} -% -\EndIndex{Cmd}{setkomafont}% -\EndIndex{Cmd}{addtokomafont}% -\EndIndex{Cmd}{usekomafont}% -% -\EndIndex{}{font>style}% -\EndIndex{}{text>markup} - \LoadCommon{14} %\section{Document Title Pages} \LoadCommon{7}% \section{Detection of Odd and Even Pages} @@ -191,7 +168,7 @@ the font style, that has been defined for the given \PName{element}. One of the basic features of a document is the page style\Index[indexmain]{page>style}. Page style in \LaTeX{} means mainly header -and footer of the page. Package \Package{scrextend} doesn't define any page +and footer of the page. Package \Package{scrextend} does not define any page style, but it uses and expects the definition some page styles. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrhack.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrhack.tex index fce50ee9fda..901ae104649 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrhack.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrhack.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrhack.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrhack.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ============================================================================ -\ProvidesFile{scrhack.tex}[2012/03/06 KOMA-Script guide (chapter: scrhack)] +\KOMAProvidesFile{scrhack.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (chapter: scrhack)] \translator{Markus Kohm} % Date of the translated German file: 2011/10/07 @@ -71,13 +73,13 @@ been used by lot of users, there's one problem with it. While redefinition of macros of foreign packages, it depend on the exact definition an usage of those macros. This means additionally, that it depends on dedicated releases of those packages. If a unknown release of such a package will be used, -\Package{scrhack} eventually couldn't do the needed patch. Contrary, in +\Package{scrhack} eventually could not do the needed patch. Contrary, in extreme cases the patch may cause errors and fault. So \Package{scrhack} has to be continuously modified to fit new releases of foreign packages and will never be finished. Because of this \Package{scrhack} will stay in beta state forever. Though the usage will generally be a -benefit, the correct function couldn't be guaranteed forever. +benefit, the correct function could not be guaranteed forever. \LoadCommon{0} @@ -105,7 +107,7 @@ will need a certain package loading order, though all these packages are not related to each other. Wrong loading order may result in an error or break the functionality of the commands. -To clear all this disadvantages and problems, \KOMAScript{} officially doesn't +To clear all this disadvantages and problems, \KOMAScript{} officially does not support this old interface any more. Instead \KOMAScript{} warns, if the old interface is used. At the same time package \Package{tocbasic}\IndexPackage{tocbasic}\important{\Package{tocbasic}} (see @@ -115,7 +117,7 @@ lists. Usage of this package provides much more advantages and features than the two old commands, that has been alluded above. Though the effort using that package is very small, the authors of most of the -packages, that are using the old interface, haven't done so currently. Because +packages, that are using the old interface, have not done so currently. Because of this \Package{scrhack} contains appropriate modifications of packages \Package{float}\IndexPackage{float}\important{\Package{float}, \Package{floatrow}, \Package{listings}}, @@ -144,7 +146,7 @@ Before version~6.79h package \Package{hyperref} set the link anchors after instead of before the heading of star version commands like \Macro{part*}, \Macro{chapter*}, and so on. In the meantime this problem have been solved at the \KOMAScript{} author's suggestion. But because the \KOMAScript{} author -wasn't patient enough to wait more than a year for the change of +was not patient enough to wait more than a year for the change of \Package{hyperref}, a corresponding patch has been added to \Package{scrhack}. This may be deactivated by \OptionValue{hyperref}{false}. Nevertheless, it is recommended to use the diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer-notecolumn.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer-notecolumn.tex new file mode 100644 index 00000000000..63606d0b3a6 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer-notecolumn.tex @@ -0,0 +1,317 @@ +\immediate\write17{^^J% ++----------------------------------------------------------------------^^J% +| WARNING (`scrlayer-notecolumn.tex'):^^J% ++----------------------------------------------------------------------^^J% +| YOU SHOULD NOTE, THAT THIS IS NOT AN OFFICIAL RELEASE!^^J% +| THIS VERSION IS INTENDED TO BE USED FOR TESTING ONLY!^^J% +| USAGE FOR PURPOSES OTHER THAN INTENDED IS DANGEROUS!^^J% +| DON'T EXPECT ANY SUPPORT FOR THIS VERSION!^^J% ++----------------------------------------------------------------------^^J% +} +%% +%% This is file `scrlayer-notecolumn.tex', +%% generated with the docstrip utility, extended by scrdocstrip. +%% +%% The original source files were: +%% +%% scrlayer-notecolumn.dtx (with options: `doc') +%% +%% Copyright (c) 1994-2013 Markus Kohm [komascript at gmx info] +%% +%% This file was generated from file(s) of the KOMA-Script bundle. +%% --------------------------------------------------------------- +%% +%% It may be distributed under the conditions of the +%% LaTeX Project Public License in the version distributed together +%% with KOMA-Script, see file `lppl.txt' or `lppl-de.txt'. +%% +%% This file may only be distributed together with a copy of the +%% KOMA-Script bundle. You may however distribute the +%% KOMA-Script bundle without all such generated files. See also +%% `lppl.txt' or `lppl-de.txt' for additional information. +%% +%% The list of files belonging to KOMA-Script distribution is given in +%% the file `manifest.txt'. See also `lppl.txt' or `lppl-de.txt' for +%% additional information. +%% +%% If this file is a beta version, you may not be allowed to distribute +%% it. Look at the comments below to see if this is the case. +%% +%% English and German manuals are part of KOMA-Script bundle. +%% ---------------------------------------------------------- +%% +%% See `README'. +%% +%% The KOMA-Script bundle (but maybe not this file) was based upon the +%% LaTeX 2.09 Script family created by Frank Neukam 1993 and the LaTeX2e +%% standard classes created by The LaTeX3 Project 1994-1996. You may +%% find a complete unmodified copy of LaTeX2e at +%% . +%% +\ProvidesFile{scrlayer-notecolumn.tex}[% + 15/11/2013 v0.1.1514 + (end user interface for scrlayer)] + +\chapter[{End User Interface \Package{scrlayer-notecolumn}}]{End User + Interface \Package{scrlayer-notecolumn}\footnote{This is not a translation + of the corresponding chapter of the German \KOMAScript{} manual but the + tentative and primary implementation manual of package + \Package{scrlayer-notecolumn}. As long as \Package{scrlayer-notecolumn} is + primary a proof of concept this doesn't matter. But nevertheless, a + German to English translator would still be welcome.}} +\label{sec:scrlayer.notecolumn} +\labelbase{scrlayer-notecolumn} + +Sometimes documents need an additional notes column beside the main text +column and maybe beside the marginal note column. Problematicly may be +having page breaks inside the notes column. This package provides a +solution based on the layer interface of \Package{scrlayer}. You may +define several notes columns, each of them with page breaks +inside. It supports automatic page break inside of notes and recognises +note collisions and solve them by moving notes. + +The idea of this package raised while an e-mail contact with Heiner +Richter from FH~Stralsund, who told me of a book project, and asked +whether or not such a functionality may be added to another package of +mine easily. It couldn't, but design and implementation of a first test +alpha of \Package{scrlayer-notecolumn} has been done in about three +hours. So maybe it was a really good idea to ask me the question. + +\begin{Declaration} + \Macro{DeclareNoteColumn}% + \OParameter{option list}\Parameter{note column name}% + \\ + \Macro{DeclareNewNoteColumn}% + \OParameter{option list}\Parameter{note column name}\\%^^A + \Macro{ProvideNoteColumn}% + \OParameter{option list}\Parameter{note column name}\\%^^A + \Macro{RedeclareNoteColumn}% + \OParameter{option list}\Parameter{note column name}% +\end{Declaration} +\BeginIndex{Cmd}{DeclareNoteColumn}% +\BeginIndex{Cmd}{DeclareNewNoteColumn}% +\BeginIndex{Cmd}{ProvideNoteColumn}% +\BeginIndex{Cmd}{RedeclareNoteColumn}% +Command \Macro{DeclareNoteColumn} +may be used to declare a note column. Each note column is referenced by its +name, defined by the obligatory argument \PName{note column name}. A note +column vertically span the text area. + +By default its horizontal position is the current position of the marginal +note column. It also regards \Macro{reversemarginpar} and +\Macro{normalmarginpar}, while output of a note. Note that this is not the +same like making a margin note. The default width is +\Length{marginparwidth}. But you may use the optional argument \PName{option + list} to change this behaviour. + +The \PName{option list} is a comma-separated list of +\texttt{\PName{key}=\PName{value}} options. Currently the following +\PName{key}s are supported: +\begin{labeling}[\ --]{\KOption{position}\PName{horizontal offset}} +\item [\KOption{font}\PName{font declaration}] set the initial font attributes + to be used for the note column. Everything, that is allowed to be set by + \Macro{setkomafont} or \Macro{addtokomafont} can be used as + \PName{font declaration}. Note, that + \Macro{normalfont}\Macro{normalsize} will be used + before. So you don't need one of them at your own initialisation. +\item [\Option{marginpar}] set up \Option{position} and \Option{width} to use + the marginal note column of \Macro{marginpar}. +\item [\Option{normalmarginpar}] set up \Option{position} and \Option{width} + to use the normal marginal note column and ignore \Macro{reversemarginpar} + and \Macro{normalmarginpar}. +\item [\KOption{position}\PName{horizontal offset}] set up the horizontal + offset of the note column from the left edge of the paper. The + \PName{horizontal offset} can be either a \LaTeX{} length, a \TeX{} + dimension, a \TeX{} skip, a length value, or a dimensional expression using + \texttt{+}, \texttt{-}, \texttt{*}, \texttt{/} and parenthesis (see + \cite[section~3.5]{manual:eTeX} for more information about dimensional + expressions). The value will be calculated at usage time not at definition + time. So you may even use more complex constructs like: +\begin{lstcode} + \ifodd\value{page} + \oddsidemargin+1in + +\textwidth+\marginparsep + \else + \evensidemargin+1in + -\marginparsep + -\marginparwidth + \fi +\end{lstcode} +\item [\Option{reversemarginpar}] set up \Option{position} and \Option{width} + to use the reverse marginal note column and ignore \Macro{reversemarginpar} + and \Macro{normalmarginpar}. +\item [\KOption{width}\PName{size}] set up the horizontal size of the note + column. You can use the same values for \PName{size} like for + \PName{horizontal offset} of option \Option{position}. +\end{labeling} + +You may use as much note columns as \LaTeX{} provides free box registers, +because every note column needs one box register. You may use package +\Package{etex} to increase the normal amount of box registers from 256 to +32768. This should be enough to avoid the ``\texttt{no room for + \Macro{newbox}}'' error. + +The implementation of note columns uses foreground layers from package +\Package{scrlayer}. Every \Macro{DeclareNoteColumn} generates a layer and adds +this layer to the pseudo page style \Pagestyle{@everystyle@}. Theoretically +you may modify the generated layer, but it is recommended not to modify them. + +Overlapping of different note columns is allowed. There's one predefined note +column named ``\texttt{marginpar}''. + +\BeginIndex{FontElement}{notecolumn.\PName{note column name}}% +Note, that if you change the initial font using +\begin{quote} + \Macro{setkomafont}\linebreak[1]\PParameter{marginnote.\PName{note column + name}}\Parameter{font declaration} +\end{quote} +or +\begin{quote} + \Macro{addtokomafont}\linebreak[1]\PParameter{marginnote.\PName{note column + name}}\Parameter{font declaration} +\end{quote} +the font of all succeeding note column outputs would change. This could make it +hard to find out, which notes will be affected by the change. +See \autoref{sec:maincls.textmarkup}, +\autopageref{desc:maincls.cmd.setkomafont} for more information about +\Macro{setkomafont} and \Macro{addtokomafont}.% +\EndIndex{FontElement}{notecolumn.\PName{note column name}}% + +The difference between \Macro{DeclareNoteColumn} and the other commands is, +that \Macro{DeclareNoteColumn} defines the note column independent whether a +note column with the same name has already been defined or +not. \Macro{DeclareNewNoteColumn} defined only note columns which names are +not yet used for another note column. It's an error to use it with an already +used \PName{note column name}. \Macro{ProvideNoteColumn} is like +\Macro{DeclareNewNoteColumn}, but if the \PName{note column name} is already +used for a note column nothing happens. \Macro{RedeclareNoteColumn} may be +used to declare a note column with a name, that is already used. Using it with +a new name is an error. +\EndIndex{Cmd}{RedeclareNoteColumn}%^^A +\EndIndex{Cmd}{ProvideNoteColumn}%^^A +\EndIndex{Cmd}{DeclareNewNoteColumn}%^^A +\EndIndex{Cmd}{DeclareNoteColumn}%^^A + +\begin{Declaration} + \Macro{makenote}% + \OParameter{note column name}\Parameter{note text} +\end{Declaration} +\BeginIndex{Cmd}{makenote}% +This command +may be used to make a new note. The note will be written to a helper file with +extension \File{.slnc} in this run. In the next run, it will be +typeset. Normally it will be typeset with the same vertical position, that +would be used for a \Macro{parbox[t]}, but horizontally moved to the note +column. Collisions at this position of this note column (but not of other note +columns) will be recognised. In such a case the note may be moved down and +even to another page. Automatic page breaks at the note columns are +supported. This is something different to \Macro{marginpar}, +\Macro{marginline} (\KOMAScript{} classes), or \Macro{marginnote} (package +\Package{marginnote}). + +Note, that after changing the document, at least two \LaTeX{} runs are needed +to move the note to its final position. + +Note, that fragile commands should be protected to avoid error messages while +writing or reading the helper file. + +Note, that \Package{scrlayer-notecolumn} needs only one helper file for all +note columns together. You should not edit or change that helper file, because +the syntax is fragile. It won't be read using \Macro{input} but +\Macro{read}. Because of this, line breaks, empty lines and \Macro{par} should +be avoided. + +Currently it is unknown where you may use \Macro{makenote} and where not. But +you must not use \Macro{makenote} inside of \Macro{makenote}! + +The default for the optional argument \PName{makenote} is \PValue{marginpar}, +that is the \PName{note column name} of the pre-defined note column. +\EndIndex{Cmd}{makenote} + +\begin{Declaration} + \KOption{autoclearnotecolumns}\PName{simple switch}\\ + \Macro{clearnotecolumn}\OParameter{name of a note column}% + \\ + \Macro{clearnotecolumns}\OParameter{list of note column names} +\end{Declaration} +\BeginIndex{Cmd}{clearnotcolumn}% +\BeginIndex{Cmd}{clearnotcolumns}% +The commands +may be used to output all hanging notes for either one or several note +columns. With \Macro{clearnotecolumn} only the notes of the note column with +the given \PName{name of a note column} will be output. If you omit the +optional argument (this is not the same like using an empty value!) note +column \PValue{marginnote} will be used. + +With \Macro{clearnotecolumns} the notes of all note columns of the comma +separated \PName{list of note column names} will be output. If you omit the +optional Argument or if the optional Argument is empty (or start with +\Macro{relax}) the notes of all note columns will be output. + +Macro \Macro{clearpage} will be used to output hanging notes and several +\LaTeX{} runs may be needed to terminate with the correct number of +\Macro{clearpage} for the whole document. You will get the message ``\LaTeX{} +Warning: Label(s) may have changed. Rerun to get cross-references right.'' as +long as the process hasn't been terminated. + +But normally you don't need to us \Macro{clearnotecolum} or +\Macro{clearnotecolumns} yourself. Because by default option +\Option{autoclearnotecolumns} is switched on, which means, that +\Macro{clearnotecolumns} will be done at every \Macro{clearpage}. You may +change this, switching off \Macro{autoclearnotecolumns} using one of the +values for simple switches. + +Note, that it is not allowed to use \Macro{clearnotecolumn} or +\Macro{clearnotecolumns} inside a note. You can use these commands only inside +the main text of the document.% +\EndIndex{Cmd}{clearnotcolumns}% +\EndIndex{Cmd}{clearnotcolumn}% + +\begin{Declaration} + \Macro{syncwithnotecolumn}\OParameter{name of a note column}% + \\ + \Macro{syncwithnotecolumns}\OParameter{list of note column names}% +\end{Declaration} +\BeginIndex{Cmd}{syncwithnotecolumn}% +\BeginIndex{Cmd}{syncwithnotecolumns}% +These commands +may be used to synchronise the vertical position of the main text with one or +several note columns. If you use the optional argument of +\Macro{syncwithnotecolumn} it should be one \PName{name of a note column}. If +you omit it, \PValue{marginpar} will be used as the \PName{name of a note + column}. Usage of \Macro{syncwithnotecolumn} is exactly the same like usage +of \Macro{syncwithnotecolumns} with exactly one \PName{name of a note column}. + +The optional argument of \Macro{syncwithnotecolumns} is a comma-separated list +of names of note columns. If you omit this optional argument or if you use an +empty argument or if the argument starts with \Macro{relax} synchronisation +will be done with all declared note columns. + +Synchronisation with a note column means, that the current position of the +main text will be changed to be the current vertical position of the note +column after cleaning the note column. This differs in several point from +cleaning a note column: +\begin{itemize} +\item After cleaning a note column the text position would change to be at a + new page, even if the note column doesn't fill the whole page + before. Synchronisation will change the vertical position just after the + last vertical position of the note column. +\item Cleaning a note column needs less \LaTeX{} runs than synchronising a + note column. +\end{itemize} +Both, cleaning an synchronising a note column, uses the label mechanism of +\LaTeX{} without using \Macro{label}, \Macro{ref}, or \Macro{pageref} itself +(but \Macro{newlabel}). So you should have a look at \LaTeX{} rerun messages, +because of undefined or changed labels. + +Note, that it is not allowed to use \Macro{syncwithnotecolumn} or +\Macro{syncwithnotecolumns} inside a note. If you do so, you need endless +\LaTeX{} runs without reaching a final state. But synchronisation of several +note columns in the main text of a document will also synchronise the notes +columns with each others.% +\EndIndex{Cmd}{syncwithnotecolumns} +\EndIndex{Cmd}{syncwithnotecolumn} + +\endinput +%% +%% End of file `scrlayer-notecolumn.tex'. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer-scrpage-experts.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer-scrpage-experts.tex new file mode 100644 index 00000000000..ba5a99e60b3 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer-scrpage-experts.tex @@ -0,0 +1,660 @@ +% ====================================================================== +% scrlayer-scrpage-experts.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrlayer-scrpage-experts.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% +% Expert chapter about scrlayer-scrpage of the KOMA-Script guide +% +% ---------------------------------------------------------------------- +% +% Expertenkapitel ueber scrlayer-scrpage in der KOMA-Script-Anleitung +% +% ============================================================================ + +\KOMAProvidesFile{scrlayer-scrpage-experts.tex}% + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (chapter: scrlayer-scrpage-experts)] +\translator{Markus Kohm} + +% Date version of the translated file: 2013-10-28 + +\chapter[{Additional Features of \Package{scrlayer-scrpage}}] + {Additional Features\ChangedAt{v3.12}{\Package{scrlayer-scrpage}} with + package \Package{scrlayer-scrpage}} +\labelbase{scrlayer-scrpage-experts} +% +\BeginIndex{Package}{scrlayer-scrpage}% +Package \Package{scrlayer-scrpage} provides features that have not been +described in \autoref{cha:scrlayer-scrpage} of \autoref{part:forAuthors} of this +\iffree{user guide}{book}. But the most average user will not need those +extensions and some of them are only implemented for compatibility with +\Package{scrpage2}. So most users do not need to know them. Therefore all those +things are described here in \autoref{part:forExperts} only. + +\section{Definition of new Pairs of Page Styles} +\label{sec:scrlayer-scrpage.pagestyle.pairs} + +In \autoref{sec:scrlayer-scrpage.predefined.pagestyles} the page styles +\Pagestyle{scrheadings} and \Pagestyle{plain.scrheadings} have been +described. Those build quasi a pair of page styles, with +\Pagestyle{scrheadings} as the main page style with running head and +\Pagestyle{plain.scrheadings} as the corresponding \Pagestyle{plain} page +style without running head but generally with pagination. Beside the +configuration of these page styles, \Package{scrlayer-scrpage} provides also +the feature of defining new such pairs of page styles. Thereby the name of the +main page style, e.\,g., \Pagestyle{scrheadings}, is quasi the name of the +pair of page styles. + +Most users will not need more than the predefined pair +\Pagestyle{scrheadings}. So the commands of this section may be understood as +an addition for special cases. And because each such case is very special, +this section also lacks of handsome examples. Nevertheless, if the support +will show me a real nice example in future, I perhaps could use it in +future. Nevertheless, I'm almost sure that all such cases could also be +solved using the predefined pair only. + +\begin{Declaration} + \Macro{defpairofpagestyles}% + \OParameter{parent pair}\Parameter{name}\Parameter{definition}\\ + \Macro{newpairofpagestyles}% + \OParameter{parent pair}\Parameter{name}\Parameter{definition}\\ + \Macro{renewpairofpagestyles}% + \OParameter{parent pair}\Parameter{name}\Parameter{definition}\\ + \Macro{providepairofpagestyles}% + \OParameter{parent pair}\Parameter{name}\Parameter{definition} +\end{Declaration} +\BeginIndex{Cmd}{defpairofpagestyles}% +\BeginIndex{Cmd}{newpairofpagestyles}% +\BeginIndex{Cmd}{renewpairofpagestyle}% +\BeginIndex{Cmd}{providepairofpagestyles}% +With these commands you may define pairs of page styles similar to +\Pagestyle{scrheadings} and \Pagestyle{plain.scrheadings}. Thereby +\PName{name} is the name of the main page style that is similar to +\Pagestyle{scrheadings}. The name of the corresponding \Pagestyle{plain} page +style will be prefixed by \PValue{plain.} automatically. So \PName{name} is +not only the name of the pair of page styles, but also the name of the main +page style of that pair, while \PValue{plain.}\PName{name} is the name of the +\Pagestyle{plain} page style of this pair. + +If the optional argument \PName{parent pair} is given, the settings of the +pair of page styles with that name are the initial settings of the new pair of +page styles. So the new pair inherits the configuration of the \PName{parent + pair}. + +While reading \autoref{sec:scrlayer-scrpage.predefined.pagestyles} you might +have the impression that the commands of this section were related to +\Pagestyle{scrheadings} and \Pagestyle{plain.scrheadings} only. Nevertheless, +this is only as long true, as this is the only existing pair of page +styles. As soon as there exist more pairs of page styles, they are related to +the pair that has been activated last. In fact, this is the case for \Macro{lehead}, \Macro{cehead}, \Macro{rehead}, \Macro{lohead}, +\Macro{cohead}, \Macro{rohead}, \Macro{lefoot}, \Macro{cefoot}, +\Macro{refoot}, \Macro{lofoot}, \Macro{cofoot}, \Macro{rofoot}, \Macro{ihead}, +\Macro{chead}, \Macro{ohead}, \Macro{ifoot}, \Macro{cfoot}, and \Macro{ofoot} +from \autoref{sec:scrlayer-scrpage.predefined.pagestyles}. + +All those commands and the below described commands \Macro{clearmainofpairofpagestyles}, \Macro{clearplainofpairofpagestyles}, and +\Macro{clearpairofpagestyles} are also mentioned to be used inside the +argument \PName{definition}. In that case, they are a kind of default +configuration of the pair of page styles that will be executed each time the +pair will be activated. A pair of page styles will be activated, if one of the +page styles of the pair will be activated. This will be done mostly using +\Macro{pagestyle}\IndexCmd{pagestyle}. + +Please note that the commands of +\autoref{sec:scrlayer-scrpage.pagestyle.content} are for general purpose, +anyway. So they are related to every page style that has been defined using +\Package{scrlayer-scrpage}. + +Whereas \Macro{defpairofpagestyles} will define a pair independent whether or +not the corresponding page styles are already defined, will +\Macro{newpairofpagestyles} and \Macro{providepairofpagestyles} define the pair +only, if the page styles are currently undefined. If at least one of the page +styles is already defined, the new definition of +\Macro{providepairofpagestyles} will be ignored, but usage of +\Macro{newpairofpagestyles} would result in an error message. To redefine +already existing pairs of page styles you may use +\Macro{renewpairofpagestyles}. With this an error would be thrown, if at least +one of the page styles of the pair does not already exist.% +\EndIndex{Cmd}{providepairofpagestyles}% +\EndIndex{Cmd}{renewpairofpagestyles}% +\EndIndex{Cmd}{newpairofpagestyles}% +\EndIndex{Cmd}{defpairofpagestyles}% + +\begin{Declaration} + \Macro{clearmainofpairofpagestyles}\\ + \Macro{clearplainofpairofpagestyles}\\ + \Macro{clearpairofpagestyles} +\end{Declaration} +\BeginIndex{Cmd}{clearmainofpairofpagestyles}% +\BeginIndex{Cmd}{clearplainofpairofpagestyles}% +\BeginIndex{Cmd}{clearpairofpagestyles}% +Command \Macro{clearmainofpairofpagestyles} will configure the main page style +of the lastly activated pair of page styles to be empty. In contrast to this +\Macro{clearplainofpairofpagestyles} will configure the \Pagestyle{plain} page +style of the lastly activated pair of page styles to be empty. Last but not +least \Macro{clearpairofpagestyle} will configure both page styles of the +lastly activated pair of page styles to be empty. + +But please note\textnote{Attention!} that none of these commands will remove +the definitions of argument \PName{definition} that has been used when +defining the pair of page styles (see above). So if you activate the pair of +page styles again, those definitions will be used again! + +These commands may be used inside of \PName{definition} themselves. But you +may use them outside the definition of a pair of page styles too. In this case +they are related to the lastly activated pair of page styles. + +\BeginIndex{Cmd}{clearscrheadings}% +\BeginIndex{Cmd}{clearscrplain}% +\BeginIndex{Cmd}{clearscrheadfoot}% +The commands \Macro{clearscrheadings}, \Macro{clearscrplain}, and +\Macro{clearscrheadfoot} are aliases for these commands that have been +implemented for compatibility with \Package{scrpage2} only. Nevertheless, they +are deprecated and should not be used any longer.% +\EndIndex{Cmd}{clearscrheadfoot}% +\EndIndex{Cmd}{clearscrplain}% +\EndIndex{Cmd}{clearscrheadings}% +% +\EndIndex{Cmd}{clearpairofpagestyles}% +\EndIndex{Cmd}{clearplainofpairofpagestyles}% +\EndIndex{Cmd}{clearmainofpairofpagestyles}% + + +\section{Definition of Simple Page Styles with Three Parts in Head and Foot } +\label{sec:scrlayer-scrpage.pagestyle.triple} + +Beside predefined page styles and beside the definition of new pairs of page +styles, package \Package{scrlayer-scrpage} also provides the Definition of +page styles with three parts in head and foot. But this user interface exists +for compatibility with \Package{scrpage2} only. Nevertheless, it has been +extended to have a more consistent set of commands in difference to +\Package{scrpage2}. However, for new documents it is recommended to use the +advanced features that have been described in the previous section, instead +of the commands of this section. + +\begin{Declaration} + \Macro{deftriplepagestyle}% + \Parameter{name of the page style}\\ + \hphantom{\XMacro{deftriplepagestyle}}% + \OParameter{thickness of the outer line}% + \OParameter{thickness of the inner line}\\ + \hphantom{\XMacro{deftriplepagestyle}}% + \Parameter{inner head element}% + \Parameter{centre head element}% + \Parameter{outer head element}\\ + \hphantom{\XMacro{deftriplepagestyle}}% + \Parameter{inner foot element}% + \Parameter{centre foot element}% + \Parameter{outer foot element}\\ + \Macro{newtriplepagestyle}% + \Parameter{name of the page style}\\ + \hphantom{\XMacro{newtriplepagestyle}}% + \OParameter{thickness of the outer linen}% + \OParameter{thickness of the inner linen}\\ + \hphantom{\XMacro{newtriplepagestyle}}% + \Parameter{inner head element}% + \Parameter{centre head element}% + \Parameter{outer head element}\\ + \hphantom{\XMacro{newtriplepagestyle}}% + \Parameter{inner foot element}% + \Parameter{centre foot element}% + \Parameter{outer foot element}\\ + \Macro{renewtriplepagestyle}% + \Parameter{name of the page style}\\ + \hphantom{\XMacro{renewtriplepagestyle}}% + \OParameter{thickness of the outer line}% + \OParameter{thickness of the inner line}\\ + \hphantom{\XMacro{renewtriplepagestyle}}% + \Parameter{inner head element}% + \Parameter{centre head element}% + \Parameter{outer head element}\\ + \hphantom{\XMacro{renewtriplepagestyle}}% + \Parameter{inner foot element}% + \Parameter{centre foot element}% + \Parameter{outer foot element}\\ + \Macro{providetriplepagestyle}% + \Parameter{name of the page style}\\ + \hphantom{\XMacro{providetriplepagestyle}}% + \OParameter{thickness of the outer line}% + \OParameter{thickness of the inner line}\\ + \hphantom{\XMacro{providetriplepagestyle}}% + \Parameter{inner head element}% + \Parameter{centre head element}% + \Parameter{outer head element}\\ + \hphantom{\XMacro{providetriplepagestyle}}% + \Parameter{inner foot element}% + \Parameter{centre foot element}% + \Parameter{outer foot element} +\end{Declaration} +\BeginIndex{Cmd}{deftriplepagestyle}% +\BeginIndex{Cmd}{newtriplepagestyle}% +\BeginIndex{Cmd}{renewtriplepagestyle}% +\BeginIndex{Cmd}{providetriplepagestyle}% +With these commands you can define a single page style, whose head and foot are +parted into three elements: an inner element, a centre element, and an outer +element. The contents of the elements are given three mandatory arguments for +the head and three mandatory arguments for the foot. + +Each of the two inner elements will be printed right aligned on left pages and +left aligned on right pages. The centre elements will be printed centred in +the head respectively foot of left and right pages. Each of the two outer +elements will be printed left aligned on left pages and right aligned on right +pages. + +Please remember once again:\textnote{Attention!} There are only right pages in +single side layout! + +The two optional arguments can be used to activate horizontal lines in the +head and foot of the page style. To do so, you put the wanted thickness of the +line as an optional argument. The first optional argument is the +\PName{thickness of the outer line} in both, the page head and footer. In the +page head it will be printed above the head contents. In the page footer it +will be printed below the foot contents. The second optional argument is the +\PName{thickness of the inner line}. This will be printed below the page head +and additionally above the page footer. If you have only one optional +argument, this is the \PName{thickness of the inner line}. In this case no +outer line will be printed. And if you omit both optional arguments, both +lines will be omitted. + +Please note\textnote{Attention!} that an empty optional argument is not the +same like omitting the optional argument! Empty optional arguments are not +allowed in this case. But you may use simple dimension expressions for the +optional arguments, like they have been explained for \KOMAScript{} option +\Option{headwidth} (see \autoref{sec:scrlayer-scrpage.pagestyle.content}, +\autopageref{desc:scrlayer-scrpage.option.headwidth}). + +The meaning of the arguments is also shown in +\autoref{fig:scrlayer-scrpage.triplepagestyle} for an schematic double +page. Thereby ``\texttt{outer}'', ``\texttt{inner}'', and ``\texttt{centre}'' +are example contents. The corresponding arrows illustrate the expansion of +those contents. The \iffree{coloured }{}texts inside the pages are only the +names of the arguments of these commands. The related arrows \iffree{in + the same colour }{} point to the corresponding elements of the page. + +\begin{figure} + \centering + \begin{picture}(\textwidth,80mm) + \put(0,50mm){% + %\ + \begin{picture}(\textwidth,30mm)(0,-10mm) + \thinlines + \small + % linke Seite + \put(0,20mm){\line(1,0){.49\textwidth}}% + \put(0,0){\line(0,1){20mm}}% + \multiput(0,0)(0,-1mm){10}{\line(0,-1){.5mm}}% + \put(.49\textwidth,5mm){\line(0,1){15mm}}% + \put(.05\textwidth,15mm){\thicklines\line(1,0){.415\textwidth}}% + \put(.05\textwidth,10mm){\makebox(0em,5mm)[l]{\slshape outer\strut$\longrightarrow$}}% + \put(.465\textwidth,10mm){\makebox(0em,5mm)[r]{\slshape $\longleftarrow$inner\strut}}% + \put(.2575\textwidth,10mm){\makebox(0em,5mm)[c]{\slshape $\longleftarrow$centre\strut$\longrightarrow$}}% + \put(.05\textwidth,10mm){\thicklines\line(1,0){.415\textwidth}}% + % rechte Seite + \put(0.51\textwidth,20mm){\line(1,0){.49\textwidth}}% + \put(0.51\textwidth,5mm){\line(0,1){15mm}}% + \multiput(\textwidth,0)(0,-1mm){10}{\line(0,-1){.5mm}}% + \put(\textwidth,0mm){\line(0,1){20mm}}% + \put(.535\textwidth,15mm){\thicklines\line(1,0){.415\textwidth}}% + \put(.535\textwidth,10mm){\makebox(0em,5mm)[l]{\slshape inner\strut$\longrightarrow$}}% + \put(.95\textwidth,10mm){\makebox(0em,5mm)[r]{\slshape $\longleftarrow$outer\strut}}% + \put(.7425\textwidth,10mm){\makebox(0em,5mm)[c]{\slshape $\longleftarrow$centre\strut$\longrightarrow$}}% + \put(.535\textwidth,10mm){\thicklines\line(1,0){.415\textwidth}}% + % commands for both pages + \iffree{\color{red}}{}% + \put(.5\textwidth,0){\makebox(0,\baselineskip)[c]{\PName{inner head element}}}% + \put(.5\textwidth,-5mm){\makebox(0,\baselineskip)[c]{\PName{centre + head element}}}% + \put(.5\textwidth,-10mm){\makebox(0,\baselineskip)[c]{\PName{outer + head element}}}% + \put(\dimexpr.5\textwidth-2em,.5\baselineskip){% + \put(-1.5em,.5\baselineskip){\vector(0,1){7mm}}% + \put(-3.5em,-1\baselineskip){\line(-1,0){\dimexpr .25\textwidth-6.5em\relax}}% + \put(-\dimexpr + .25\textwidth-3em\relax,-1\baselineskip){\vector(0,1){\dimexpr + 7mm+1.5\baselineskip\relax}} + \put(-3.25em,-2.25\baselineskip){\line(-1,0){\dimexpr .45\textwidth-8em\relax}}% + \put(-\dimexpr + .45\textwidth-4.75em\relax,-2.25\baselineskip){\vector(0,1){\dimexpr + 7mm+2.75\baselineskip\relax}} + }% + \put(\dimexpr.5\textwidth+2em,.5\baselineskip){% + \put(1.5em,.5\baselineskip){\vector(0,1){7mm}}% + \put(3.5em,-1\baselineskip){\line(1,0){\dimexpr .25\textwidth-6.5em\relax}} + \put(\dimexpr + .25\textwidth-3em\relax,-1\baselineskip){\vector(0,1){\dimexpr + 7mm+1.5\baselineskip\relax}} + \put(3.25em,-2.25\baselineskip){\line(1,0){\dimexpr .45\textwidth-8em\relax}} + \put(\dimexpr + .45\textwidth-4.75em\relax,-2.25\baselineskip){\vector(0,1){\dimexpr + 7mm+2.75\baselineskip\relax}} + }% + \end{picture} + % + }% + \put(0,0){% + \begin{picture}(\textwidth,30mm) + \thinlines + \small + % linke Seite + \put(0,0){\line(1,0){.49\textwidth}}% + \put(0,0){\line(0,1){20mm}}% + \multiput(0,20mm)(0,1mm){10}{\line(0,1){.5mm}}% + \put(.49\textwidth,0){\line(0,1){15mm}}% + \put(.05\textwidth,15mm){\thicklines\line(1,0){.415\textwidth}}% + \put(.05\textwidth,10mm){\makebox(0em,5mm)[l]{\slshape outer\strut$\longrightarrow$}}% + \put(.465\textwidth,10mm){\makebox(0em,5mm)[r]{\slshape $\longleftarrow$inner\strut}}% + \put(.2575\textwidth,10mm){\makebox(0em,5mm)[c]{\slshape $\longleftarrow$centre\strut$\longrightarrow$}}% + \put(.05\textwidth,10mm){\thicklines\line(1,0){.415\textwidth}}% + % rechte Seite + \put(.51\textwidth,0){\line(1,0){.49\textwidth}}% + \put(.51\textwidth,0){\line(0,1){15mm}}% + \put(\textwidth,0){\line(0,1){20mm}}% + \multiput(\textwidth,20mm)(0,1mm){10}{\line(0,1){.5mm}}% + \put(.535\textwidth,15mm){\thicklines\line(1,0){.415\textwidth}}% + \put(.535\textwidth,10mm){\makebox(0em,5mm)[l]{\slshape inner\strut$\longrightarrow$}}% + \put(.95\textwidth,10mm){\makebox(0em,5mm)[r]{\slshape $\longleftarrow$outer\strut}}% + \put(.7425\textwidth,10mm){\makebox(0em,5mm)[c]{\slshape $\longleftarrow$centre\strut$\longrightarrow$}}% + \put(.535\textwidth,10mm){\thicklines\line(1,0){.415\textwidth}}% + % commands for both pages + \iffree{\color{red}}{}% + \put(.5\textwidth,20mm){\makebox(0,\baselineskip)[c]{\PName{inner foot + element}}}% + \put(.5\textwidth,25mm){\makebox(0,\baselineskip)[c]{\PName{centre + foot element}}}% + \put(.5\textwidth,30mm){\makebox(0,\baselineskip)[c]{\PName{outer foot + element}}}% + \put(\dimexpr.5\textwidth-2em,.5\baselineskip){% + \put(-1.5em,\dimexpr 20mm-.5\baselineskip\relax){\vector(0,-1){6mm}}% + \put(-3.5em,25mm){\line(-1,0){\dimexpr .25\textwidth-6.5em\relax}}% + \put(-\dimexpr .25\textwidth-3em\relax,25mm){\vector(0,-1){\dimexpr + .5\baselineskip + 11mm\relax}}% + \put(-3em,30mm){\line(-1,0){\dimexpr .45\textwidth-7.5em\relax}}% + \put(-\dimexpr .45\textwidth-4.5em\relax,30mm){\vector(0,-1){\dimexpr + .5\baselineskip + 16mm\relax}}% + }% + \put(\dimexpr.5\textwidth+2em,.5\baselineskip){% + \put(1.5em,\dimexpr 20mm-.5\baselineskip\relax){\vector(0,-1){6mm}}% + \put(3.5em,25mm){\line(1,0){\dimexpr .25\textwidth-6.5em\relax}}% + \put(\dimexpr .25\textwidth-3em\relax,25mm){\vector(0,-1){\dimexpr + .5\baselineskip + 11mm\relax}}% + \put(3em,30mm){\line(1,0){\dimexpr .45\textwidth-7.5em\relax}}% + \put(\dimexpr .45\textwidth-4.5em\relax,30mm){\vector(0,-1){\dimexpr + .5\baselineskip + 16mm\relax}}% + }% + \end{picture} + }% + \thinlines\small\iffree{\color{blue}}{}% + \put(0.055\textwidth,45mm){\vector(0,1){25mm}}% + \put(0.945\textwidth,45mm){\vector(0,1){25mm}}% + \put(0.055\textwidth,45mm){\vector(0,-1){30mm}}% + \put(0.945\textwidth,45mm){\vector(0,-1){30mm}}% + \put(0.055\textwidth,45mm){\line(1,0){\dimexpr + .445\textwidth-7.5em\relax}}% + \put(0.945\textwidth,45mm){\line(-1,0){\dimexpr + .445\textwidth-7.5em\relax}}% + \put(0.5\textwidth,45mm){\makebox(0,0)[c]{\PName{thickness of the inner lines}}}% + \iffree{\color{green}}{}% + \put(0.025\textwidth,40mm){\line(0,1){35mm}}% + \put(0.025\textwidth,75mm){\vector(1,0){3.75mm}}% + \put(0.975\textwidth,40mm){\line(0,1){35mm}}% + \put(0.975\textwidth,40mm){\line(0,1){35mm}}% + \put(0.975\textwidth,75mm){\vector(-1,0){3.75mm}}% + \put(0.025\textwidth,40mm){\line(0,-1){30mm}}% + \put(0.025\textwidth,10mm){\vector(1,0){3.75mm}}% + \put(0.975\textwidth,40mm){\line(0,-1){30mm}}% + \put(0.975\textwidth,40mm){\line(0,-1){30mm}}% + \put(0.975\textwidth,10mm){\vector(-1,0){3.75mm}}% + \put(0.025\textwidth,40mm){\line(1,0){\dimexpr + .475\textwidth-7.5em\relax}}% + \put(0.975\textwidth,40mm){\line(-1,0){\dimexpr + .475\textwidth-7.5em\relax}}% + \put(0.5\textwidth,40mm){\makebox(0,0)[c]{\PName{thickness of the outer lines}}}% + \end{picture} + \caption[{Elements of a three parts page style}]{Schematic double page with + the elements of a tripartite page style of commands + \Macro{deftriplepagestyle}, \Macro{newtriplepagestyle}, + \Macro{providetriplepagestyle}, and \Macro{renewtriplepagestyle}} + \label{fig:scrlayer-scrpage.triplepagestyle} +\end{figure} + +With the commands that are described here, it is not possible to activate only +a single line, e.\,g., only below the page head but not above the page +footer. If you need so, you should either use the commands of the previous or +the following section. + +The length of a single element\textnote{Attention!} is not limited by the +existence of a neighbour element. So in inappropriate circumstances it can +happen that one elements overwrites a neighbour element or even both of +them. The user himself is responsible to avoid such inappropriate cases. With +automatic running heads this could, e.\,g., be done using the optional +argument of the section commands. See the manual of the document class for +more information about those commands. + +Command \Macro{deftriplepagestyle} defines a page style independent from +whether or not a page style with the same \PName{name of the page style} +already exists. In difference to this \Macro{newtriplepagestyle} and +\Macro{providetriplepagestyle} define the page style only, if the \PName{name + of the page style} is not the name of an already defined page +style. Otherwise \Macro{providepagestyle} will simply do nothing, but +\Macro{newtriplepagestyle} would throw an error. Command +\Macro{renewtriplepagestyle} is something like the opposite of +\Macro{newtriplepagestyle}. It would throw an error, if there has not been +a page style with the \PName{name of the page style} before, and defines the +page style only, if there has been already a page style with the given name. + +\BeginIndex{Cmd}{deftripstyle}% +The command \Macro{deftriplestyle} of \Package{scrpage2} conforms to +\Macro{deftriplepagestyle}. Because of unification reasons it has been renamed +and should not be used with it's old name any longer. Using the old name would +result in a warning message. Nevertheless, the result would be the expected +one.% +\EndIndex{Cmd}{deftripstyle}% +\EndIndex{Cmd}{providetriplepagestyle}% +\EndIndex{Cmd}{renewtriplepagestyle}% +\EndIndex{Cmd}{newtriplepagestyle}% +\EndIndex{Cmd}{deftriplepagestyle}% + + +\section{Definition of Complex Page Styles} +\label{sec:scrlayer-scrpage.pagestyle.experts} + +Beside predefined page styles and the definition of new pairs of page styles, +and beside the definition of page styles with tripartite head and foot that +are not recommended any longer, package \Package{scrlayer-scrpage} provides +also a more basic features to define new page styles. All already described +page style definitions of \Package{scrlayer-scrpage} use internally these basic +features. Because of the complexity of this user interface it is recommended +for advanced users only. Less advanced users should be able to reach almost all +using one of the previously described features. So less advanced users do not +need to read this section. + +\begin{Declaration} + \Macro{defpagestyle}% + \Parameter{name}\Parameter{head definition}\Parameter{foot definition}\\ + \Macro{newpagestyle}% + \Parameter{name}\Parameter{head definition}\Parameter{foot definition}\\ + \Macro{providepagestyle}% + \Parameter{name}\Parameter{head definition}\Parameter{foot definition}\\ + \Macro{renewpagestyle}% + \Parameter{name}\Parameter{head definition}\Parameter{foot definition}% +\end{Declaration} +\BeginIndex{Cmd}{defpagestyle}% +\BeginIndex{Cmd}{newpagestyle}% +\BeginIndex{Cmd}{providepagestyle}% +\BeginIndex{Cmd}{renewpagestyle}% +These commands can be used to define a single page style with maximum +flexibility. Thereby \PName{name} is the name of the page style that should +be defined. + +The arguments \PName{head definition} and \PName{foot definition} have +identical structure: +\begin{quote}\raggedright + \texttt{% + (\PName{length of the line above},\PName{thickness of the line above})\%\\ + \Parameter{definition for the left page in two-side layout}\%\\ + \Parameter{definition for the right page in two-side layout}\%\\ + \Parameter{definition for all pages in one-side laypout}\%\\ + (\PName{length of the line below},\PName{thickness of the line below})% + } +\end{quote} +Thereby the arguments in the round brackets are options, this means, you may +omit them together with the brackets. In that case, the length and thickness +of the corresponding horizontal line would be given by the \KOMAScript{} +options \Option{headtopline}, \Option{headsepline}, \Option{footsepline} or +\Option{footbotline} (see \autoref{sec:scrlayer-scrpage.pagestyle.content}, +\autopageref{desc:scrlayer-scrpage.option.headtopline}). + +All three definition arguments are mandatory and will be used depending on the +page and the layout settings. The contents of the definitions are +arbitrary. But for page styles with running heads usage of \Macro{headmark}, +\Macro{leftmark}, or \Macro{rightmark} is recommended inside the +definition. In no case section numbers or section headings should be used in +the definition. Ignoring this could result in wrong numbers or texts in the +page head or footer, because of the asynchronous page building of \LaTeX{}. + +Command \Macro{defpagestyle} will define the page style independent from +whether or not a page style with the same \PName{name} already exists. Command +\Macro{newpagestyle} would throw an error, if such a page style already +exists. In difference to this, \Macro{providepagestyle} will simple do nothing +in such a case. In opposite to \Macro{newpagestyle} command +\Macro{renewpagestyle} would throw the error, if a page style with the +\PName{name} does not already exist, and therefore may be used to redefine an +existing page style. + +All these commands base on command \Macro{DeclareLayerPageStyle} of package +\Package{scrlayer} internally. Thereby for a page style \PName{Name} the +layer \PName{Name}\PValue{.head.above.line} will be defined for the horizontal +line above the page head, the layer \PName{Name}\PValue{.head.odd} will be +defined for the page head of odd pages in two-side layout, +\PName{Name}\PValue{.head.even} will be defined for the page head of even pages +in two-side layout, \PName{Name}\PValue{.head.oneside} will be defined for the +page head of all pages in one-side layout, \PName{Name}\PValue{.head.below} +will be defined for the horizontal line below the page head, +\PName{Name}\PValue{.foot.above.line} will be defined for the horizontal line +above the page foot, \PName{Name}\PValue{.foot.odd} will be defined for the +page foot of odd pages in two-side layout, \PName{Name}\PValue{.foot.even} for +the page foot of even pages in two-side layout, +\PName{Name}\PValue{.foot.oneside} for the page foot of all pages in one-side +layout, and last but not least \PName{Name}\PValue{.foot.below} for the +horizontal line below the page foot. More information about layers and layer +page styles can be found from \autopageref{cha:scrlayer} in +\autoref{cha:scrlayer} also in \autoref{part:forExperts}.% +% +\begin{Example} + Assume you want to background the whole head of page style + \Pagestyle{scrheadings} with a colour. Because you read the introduction to + this chapter, you know, that \Pagestyle{scrheadings} last but not least is a + layer page style with, e.\,g., layers \PValue{scrheadings.head.even}, + \PValue{scrheadings.head.odd}, and \PValue{scrheadings.head.oneside}. So you + define three more layers for the backgrounds and add them at the very + beginning of the page style: +\begin{lstcode} + \documentclass{scrartcl} + \usepackage[automark]{scrlayer-scrpage} + \usepackage{xcolor} + \usepackage{blindtext} + \DeclareLayer[clone=scrheadings.head.oneside, + contents={% + \color{yellow}\rule[-\dp\strutbox]{\layerwidth}{\layerheight}% + }% + ]{scrheadings.head.oneside.background} + \DeclareLayer[clone=scrheadings.head.odd, + contents={% + \color{yellow}\rule[-\dp\strutbox]{\layerwidth}{\layerheight}% + }% + ]{scrheadings.head.odd.background} + \DeclareLayer[clone=scrheadings.head.even, + contents={% + \color{yellow}\rule[-\dp\strutbox]{\layerwidth}{\layerheight}% + }% + ]{scrheadings.head.even.background} + \AddLayersAtBeginOfPageStyle{scrheadings}{% + scrheadings.head.oneside.background,% + scrheadings.head.odd.background,% + scrheadings.head.even.background% + } + \pagestyle{scrheadings} + \begin{document} + \blinddocument + \end{document} +\end{lstcode} + As you can see, the example uses three layers, so the position and size of + that background layers may simply be copied from the corresponding head + layer using option \Option{clone}. This is much easier than using only one + background layer and dynamically calculate the position time by time. + + The coloured background have been printed using a \Macro{rule} command in + this example. The size arguments of this \Macro{rule} are given by + \Macro{layerwidth} and \Macro{layerheight} which contain the current width + and height of the layer itself. The optional argument of \Macro{rule} has + been used to move the rule down by the height of a descender. +\end{Example} +% +Instead of using new layers for the background colours like in the example +above, \Macro{colorbox} and \Macro{chead} could have been used. It is +recommended to build such a solution as an exercise. Another change could be +to add the background layers one by one and just before the contents +layers. You may do this as an exercise too.% +\EndIndex{Cmd}{renewpagestyle}% +\EndIndex{Cmd}{providepagestyle}% +\EndIndex{Cmd}{newpagestyle}% +\EndIndex{Cmd}{defpagestyle}% + +\begin{Declaration} + \KOption{hmode}\PValue{simple switch} +\end{Declaration} +\BeginIndex{Option}{hmode}% +Package \Package{scrpage2} outputs page heads and page foots in horizontal +mode always. In opposite to this \Package{scrlayer-scrpage} does not switch +into horizontal mode itself, but the output of horizontal material will do +so. Nevertheless, you can activate option \Option{hmode} to make +\Package{scrlayer-scrpage} more compatible with \Package{scrpage2} in this +aspect. But this would have implications to, i.\,e., white +spaces at the start of the output or the vertical alignment of the output. + +The options knows the standard values for simple switches that are given at +\autoref{tab:truefalseswitch} on \autopageref{tab:truefalseswitch}. The option +is deactivated by default.% +\EndIndex{Option}{hmode}% +% +\EndIndex{Package}{scrlayer-scrpage}% + +%%% Local Variables: +%%% mode: latex +%%% mode: flyspell +%%% coding: us-ascii +%%% ispell-local-dictionary: "en_GB" +%%% TeX-master: "../guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer-scrpage.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer-scrpage.tex new file mode 100644 index 00000000000..34d3a727741 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer-scrpage.tex @@ -0,0 +1,1128 @@ +% ====================================================================== +% scrlayer-scrpage.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrlayer-scrpage.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% +% Chapter about scrlayer-scrpage of the KOMA-Script guide +% +% ---------------------------------------------------------------------- +% +% Kapitel ueber scrlayer-scrpage in der KOMA-Script-Anleitung +% +% ============================================================================ + +\KOMAProvidesFile{scrlayer-scrpage.tex}% + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (chapter: scrlayer-scrpage)] +\translator{Markus Kohm\and Jana Schubert\and Jens H\"uhne} + +% Date version of the translated file: 2013-11-15 + +\chapter[{Adapting Page Headers and Footers with \Package{scrlayer-scrpage}}] + {Adapting\ChangedAt{v3.12}{\Package{scrlayer-scrpage}} Page Headers and + Footers with \Package{scrlayer-scrpage}} +\labelbase{scrlayer-scrpage} +% +\BeginIndex{Package}{scrlayer-scrpage}% + +Until version 3.11b of \KOMAScript, package \Package{scrpage2} has been the +recommended way to customise page headers and footers beyond the options +provided by the page styles \Pagestyle{headings}, \Pagestyle{myheadings}, +\Pagestyle{plain}, and \Pagestyle{empty} of the standard \KOMAScript{} +classes. Until 2001 there was also package \Package{scrpage} as a supported +solution for the same purpose. It was then made obsolete and in 2013, more +than ten years later, it was finally removed from the regular +\KOMAScript~distribution. + +In 2013 package \Package{scrlayer}\IndexPackage{scrlayer} became a basic +module of \KOMAScript. That package provides a layer scheme and a new page +style scheme based upon the layer scheme. Nevertheless, the flexibility it +provides and the resulting complexity may be too demanding for the average +user to handle. More about \Package{scrlayer} may be found in +\autoref{cha:scrlayer} of \autoref{part:forExperts}. Potential problems with +the controllability of \Package{scrlayer} apart, there are lots of users who +are already familiar with the user interface of package \Package{scrpage2}. + +As a consequence the additional package \Package{scrlayer-scrpage} provides a +user interface, which is largely compatible with \Package{scrpage2} and based +on \Package{scrlayer}. Thus, if you are already familiar with \Package{scrpage2} +and refrain from using dirty tricks, like calling internal commands of +\Package{scrpage2} directly, it should be easy for you to use +\Package{scrlayer-scrpage} as a drop-in replacement. Most examples covering +\Package{scrpage2} in \LaTeX{} books or online resources should also work +with \Package{scrlayer-scrpage} either directly or with only minor +code changes provided that they stick to the standard interfaces. + +Apart from the aforementioned \KOMAScript{} packages, you could in principle +also use \Package{fancyhdr}\IndexPackage{fancyhdr} (see +\cite{package:fancyhdr}) in conjunction with a \KOMAScript{} class. However, +\Package{fancyhdr}\ has no support for several \KOMAScript{} features, e.\,g., +the element scheme (see \Macro{setkomafont}, \Macro{addtokomafont}, and +\Macro{usekomafont} in \autoref{sec:maincls.textmarkup}, from +\autopageref{desc:maincls.cmd.setkomafont}) or the configurable numbering +format for dynamic headers (see option \Option{numbers} and, e.\,g., +\Macro{chaptermarkformat} in \autoref{sec:maincls.structure}, +\autopageref{desc:maincls.option.numbers} and +\autopageref{desc:maincls.cmd.chaptermarkformat}). Hence, if you are using a +\KOMAScript{} class, the usage of package \Package{scrlayer-scrpage} is +recommended. Of course you can use \Package{scrlayer-scrpage} with other +classes, namely the \LaTeX{} standard classes, too. + +Besides the features described in this chapter, \Package{scrlayer-scrpage} +provides several more that are likely only of minor interest to the average +user and for this reason are described from +\autopageref{cha:scrlayer-scrpage-experts} onwards in +\autoref{cha:scrlayer-scrpage-experts} of \autoref{part:forExperts}. +Nevertheless, should the options described in \autoref{part:forAuthors} be +insufficient for your purposes you are encouraged to examine +\autoref{cha:scrlayer-scrpage-experts}. + +\LoadCommon{0} % \section{Early or late Selection of Options} + +\LoadCommon{20} % \section{Head and Foot Width} + +\section{Usage of Predefined Page Styles} +\label{sec:scrlayer-scrpage.predefined.pagestyles} + +The easiest way to get a requested design of page head and foot with +\Package{scrlayer-scrpage} is the usage of a predefined page style. + +\begin{Declaration} + \Pagestyle{scrheadings}\\ + \Pagestyle{plain.scrheadings} +\end{Declaration} +\BeginIndex{Pagestyle}{scrheadings}% +\BeginIndex{Pagestyle}{plain.scrheadings}% +Package \Package{scrlayer-scrpage} provides two page styles that may be +reconfigured depending on your own requests. Let's first of all talk about +page style \Pagestyle{scrheadings} which has been designed to be used with +running heads. Its defaults are similar to the page style +\Pagestyle{headings}\IndexPagestyle{headings} of \LaTeX's standard classes or +the \KOMAScript{} classes. The commands and options that may be used to +configure the exact contents of the header and footer will be described +consecutively. + +Second there's page style \Pagestyle{plain.scrheadings} which has been +designed to be used without any running head. Its defaults are very similar to +page style \Pagestyle{plain}\IndexPagestyle{plain} of \LaTeX's standard +classes or the \KOMAScript{} classes. Once more the commands and options that +may be used to configure the exact contents of the header and footer will be +described consecutively. + +Fore sure, you could configure \Pagestyle{scrheadings} to be a page style +without a running head and \Pagestyle{plain.scrheadings} to be a page style +with running heads. Nevertheless, it is more useful to fit the conventions +declared above, mainly, because both page styles influence each other. If you +select one of these page styles, \Pagestyle{scrheadings} will become +accessible as \Pagestyle{headings} and the page style +\Pagestyle{plain.scrheadings} will become accessible as \Pagestyle{plain}. So, +if you have a class or package that automatically switches between +\Pagestyle{headings} and \Pagestyle{plain}, you need to select +\Pagestyle{scrheadings} or \Pagestyle{plain.scrheadings} only once and then +the class or package will switch between \Pagestyle{scrheadings} and +\Pagestyle{plain.scrheadings} without even knowing these page styles. Patches +or other adaptions of classes (or packages) will not be necessary. So these page +styles are something like a pair that may be used as a drop-in replacement +for \Pagestyle{headings} and \Pagestyle{plain}. + +At this point I'd like to mention that for compatibility with +\Package{scrpage2} page style \Pagestyle{plain.scrheadings} can also be used +with the alias name \Pagestyle{scrplain}\IndexPagestyle[indexmain]{scrplain}. +% +\EndIndex{Pagestyle}{plain.scrheadings}% +\EndIndex{Pagestyle}{scrheadings}% + +\begin{Declaration} + \Macro{lehead}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{cehead}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{rehead}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{lohead}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{cohead}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{rohead}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content} +\end{Declaration} +\BeginIndex{Cmd}{lehead}% +\BeginIndex{Cmd}{cehead}% +\BeginIndex{Cmd}{rehead}% +\BeginIndex{Cmd}{lohead}% +\BeginIndex{Cmd}{cohead}% +\BeginIndex{Cmd}{rohead}% +The contents of the header of page style \Pagestyle{plain.scrheadings} and +\Pagestyle{scrheadings} can be defined using these commands. Thereby the +optional argument defines the content of an element of page style +\Pagestyle{plain.scrheadings}, while the mandatory argument sets the content +of the corresponding element of page style \Pagestyle{scrheadings}. + +Contents of left\,---\,so called even\,---\,pages can be set with +\Macro{lehead}, \Macro{cehead}, and \Macro{rohead}. Remark: The ``\texttt{e}'' +at the second position of the commands' names means ``\emph{even}''. + +Contents of right\,---\,so called odd\,---\,pages can be set with +\Macro{lohead}, \Macro{cohead}, and \Macro{rohead}. Remark: The ``\texttt{o}'' +at the second position of the commands' names means ``\emph{odd}''. + +Please note\textnote{Attention!} that there are only odd pages within single +side layouts independent of whether or not they have an odd page number. + +Each header consists of a left aligned element that will be defined by +\Macro{lehead} respectively \Macro{lohead}. Remark: The ``\texttt{l}'' at the +first position of the commands' names means ``\emph{left aligned}''. + +Similarly each header has a centred element that will be defined by +\Macro{cehead} respectively \Macro{cohead}. Remark: The ``\texttt{c}'' at the +first position of the command' names means ``\emph{centred}''. + +Similarly each header has a right aligned element that will be defined by +\Macro{rehead} respectively \Macro{rohead}. Remark: The ``\texttt{r}'' at the +first position of the commands' names means ``\emph{right aligned}''. + +\BeginIndex{FontElement}{pagehead}% +\BeginIndex{FontElement}{pageheadfoot}% +However, these elements do not have their own font attributes that may be +changed using commands \Macro{setkomafont} and \Macro{addtokomafont} (see +\autoref{sec:maincls.textmarkup}, \autopageref{desc:maincls.cmd.setkomafont}), +but are grouped in an element named \FontElement{pagehead}. And before the +font of that element additionally the font of element +\FontElement{pageheadfoot} will be used. See +\autoref{tab:scrlayer-scrpage.fontelements} for the font default of these +elements.% +\EndIndex{FontElement}{pageheadfoot}% +\EndIndex{FontElement}{pagehead}% + +\begin{desclist} + \desccaption[{Elements of \Package{scrlayer-scrpage} whose type style can be + changed with \KOMAScript{} command \Macro{setkomafont} or + \Macro{addtokomafont}}]% + {Elements of \Package{scrlayer-scrpage} whose type style can be changed with + \KOMAScript{} command \Macro{setkomafont} or \Macro{addtokomafont} and the + default of those, if they have not been defined before loading + \Package{scrlayer-scrpage}% + \label{tab:scrlayer-scrpage.fontelements}% + }% + {Elements whose type style can be changed (\emph{continuation})}% + \feentry{footbotline}{% + Horizontal line below the footer of a page style defined using + \Package{scrlayer-scrpage}. The font will be used after + \Macro{normalfont}\IndexCmd{normalfont} and the fonts of elements + \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} and + \FontElement{pagefoot}\FontElement{pagefoot}. It is recommended to use + this element for colour changes only.\par + Default: \emph{empty}% + }% + \feentry{footsepline}{% + Horizontal line above the footer of a page style defined using + \Package{scrlayer-scrpage}. The font will be used after + \Macro{normalfont}\IndexCmd{normalfont} and the fonts of elements + \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} and + \FontElement{pagefoot}\FontElement{pagefoot}. It is recommended to use + this element for colour changes only.\par + Default: \emph{empty}% + }% + \feentry{headsepline}{% + Horizontal line below the header of a page style defined using + \Package{scrlayer-scrpage}. The font will be used after + \Macro{normalfont}\IndexCmd{normalfont} and the fonts of elements + \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} and + \FontElement{pagehead}\FontElement{pagehead}. It is recommended to use + this element for colour changes only.\par + Default: \emph{empty}% + }% + \feentry{headtopline}{% + Horizontal line above the header of a page style defined using + \Package{scrlayer-scrpage}. The font will be used after + \Macro{normalfont}\IndexCmd{normalfont} and the fonts of elements + \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} and + \FontElement{pagehead}\FontElement{pagehead}. It is recommended to use + this element for colour changes only.\par + Default: \emph{empty}% + }% + \feentry{pagefoot}{% + Contents of the page footer of a page style defined using + \Package{scrlayer-scrpage}. The font will be used after + \Macro{normalfont}\IndexCmd{normalfont} and the font of element + \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot}.\par + Default: \emph{empty}% + }% + \feentry{pagehead}{% + Contents of the page header of a page style defined using + \Package{scrlayer-scrpage}. The font will be used after + \Macro{normalfont}\IndexCmd{normalfont} and the font of element + \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot}.\par + Default: \emph{empty}% + }% + \feentry{pageheadfoot}{% + Contents of the page header or footer of a page style defined using + \Package{scrlayer-scrpage}. The font will be used after + \Macro{normalfont}\IndexCmd{normalfont}.\par + Default: \Macro{normalcolor}\Macro{slshape}% + }% + \feentry{pagenumber}{% + Pagination set with \Macro{pagemark}. If you redefine \Macro{pagemark}, + you have to take care that your redefinition also uses + \Macro{usekomafont}\PParameter{pagenumber}!\par + Default: \Macro{normalfont}% + }% +\end{desclist} +% +The semantics of the described commands within two-sided layouts are also +sketched in \autoref{fig:scrlayer-scrpage.head}.% +% +\begin{figure}[tp] + \centering + \begin{picture}(\textwidth,30mm)(0,-10mm) + \thinlines + \small\ttfamily + % left/even page + \put(0,20mm){\line(1,0){.49\textwidth}}% + \put(0,0){\line(0,1){20mm}}% + \multiput(0,0)(0,-1mm){10}{\line(0,-1){.5mm}}% + \put(.49\textwidth,5mm){\line(0,1){15mm}}% + \put(.05\textwidth,10mm){% + \iffree{\color{red}}{}% + \put(-.5em,0){\line(1,0){4em}}% + \multiput(3.5em,0)(.25em,0){5}{\line(1,0){.125em}}% + \put(-.5em,0){\line(0,1){\baselineskip}}% + \put(-.5em,\baselineskip){\line(1,0){4em}}% + \multiput(3.5em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \makebox(4em,5mm)[l]{\Macro{lehead}}% + }% + \put(.465\textwidth,10mm){% + \iffree{\color{blue}}{}% + \put(-4em,0){\line(1,0){4em}}% + \multiput(-4em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(0,0){\line(0,1){\baselineskip}}% + \put(-4em,\baselineskip){\line(1,0){4em}}% + \multiput(-4em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-4.5em,0){\makebox(4em,5mm)[r]{\Macro{rehead}}}% + }% + \put(.2525\textwidth,10mm){% + \iffree{\color{green}}{}% + \put(-2em,0){\line(1,0){4em}}% + \multiput(2em,0)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,\baselineskip){\line(1,0){4em}}% + \multiput(2em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,0){\makebox(4em,5mm)[c]{\Macro{cehead}}}% + }% + % right/odd page + \put(.51\textwidth,20mm){\line(1,0){.49\textwidth}}% + \put(.51\textwidth,5mm){\line(0,1){15mm}}% + \put(\textwidth,0){\line(0,1){20mm}}% + \multiput(\textwidth,0)(0,-1mm){10}{\line(0,-1){.5mm}}% + \put(.5325\textwidth,10mm){% + \iffree{\color{blue}}{}% + \put(0,0){\line(1,0){4em}}% + \multiput(4em,0)(.25em,0){5}{\line(1,0){.125em}}% + \put(0,0){\line(0,1){\baselineskip}}% + \put(0em,\baselineskip){\line(1,0){4em}}% + \multiput(4em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \put(.5em,0){\makebox(4em,5mm)[l]{\Macro{lohead}}}% + }% + \put(.965\textwidth,10mm){% + \iffree{\color{red}}{}% + \put(-4em,0){\line(1,0){4em}}% + \multiput(-4em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(0,0){\line(0,1){\baselineskip}}% + \put(-4em,\baselineskip){\line(1,0){4em}}% + \multiput(-4em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-4.5em,0){\makebox(4em,5mm)[r]{\Macro{rohead}}}% + }% + \put(.75\textwidth,10mm){% + \iffree{\color{green}}{}% + \put(-2em,0){\line(1,0){4em}}% + \multiput(2em,0)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,\baselineskip){\line(1,0){4em}}% + \multiput(2em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,0){\makebox(4em,5mm)[c]{\Macro{cohead}}}% + }% + % commands for both pages + \iffree{\color{blue}}{}% + \put(.5\textwidth,0){\makebox(0,\baselineskip)[c]{\Macro{ihead}}}% + \iffree{\color{green}}{}% + \put(.5\textwidth,-5mm){\makebox(0,\baselineskip)[c]{\Macro{chead}}} + \iffree{\color{red}}{}% + \put(.5\textwidth,-10mm){\makebox(0,\baselineskip)[c]{\Macro{ohead}}} + \put(\dimexpr.5\textwidth-2em,.5\baselineskip){% + \iffree{\color{blue}}{}% + \put(0,0){\line(-1,0){1.5em}}% + \put(-1.5em,0){\vector(0,1){5mm}}% + \iffree{\color{green}}{}% + \put(0,-1.25\baselineskip){\line(-1,0){\dimexpr .25\textwidth-2em\relax}}% + \put(-\dimexpr + .25\textwidth-2em\relax,-1.25\baselineskip){\vector(0,1){\dimexpr + 5mm+1.25\baselineskip\relax}} + \iffree{\color{red}}{}% + \put(0,-2.5\baselineskip){\line(-1,0){\dimexpr .45\textwidth-4em\relax}}% + \put(-\dimexpr + .45\textwidth-4em\relax,-2.5\baselineskip){\vector(0,1){\dimexpr + 5mm+2.5\baselineskip\relax}} + }% + \put(\dimexpr.5\textwidth+2em,.5\baselineskip){% + \iffree{\color{blue}}{}% + \put(0,0){\line(1,0){1.5em}}% + \put(1.5em,0){\vector(0,1){5mm}}% + \iffree{\color{green}}{}% + \put(0,-1.25\baselineskip){\line(1,0){\dimexpr .25\textwidth-2em\relax}} + \put(\dimexpr + .25\textwidth-2em\relax,-1.25\baselineskip){\vector(0,1){\dimexpr + 5mm+1.25\baselineskip\relax}} + \iffree{\color{red}}{}% + \put(0,-2.5\baselineskip){\line(1,0){\dimexpr .45\textwidth-4em\relax}} + \put(\dimexpr + .45\textwidth-4em\relax,-2.5\baselineskip){\vector(0,1){\dimexpr + 5mm+2.5\baselineskip\relax}} + }% + \end{picture} + \caption[Commands to define the page head]% + {The meaning of the commands to define the contents of the page head + of the page styles sketched on a schematic double page} + \label{fig:scrlayer-scrpage.head} +\end{figure} +% +\begin{Example} + Assume you're writing a short article and you want the title of that + article to be shown left aligned and the author's name to be + shown right aligned at the page head. You may for example use: +\begin{lstcode} + \documentclass{scrartcl} + \usepackage{scrlayer-scrpage} + \lohead{John Doe} + \rohead{Page style with \KOMAScript} + \pagestyle{scrheadings} + \begin{document} + \title{Page styles with \KOMAScript} + \author{John Doe} + \maketitle + \end{document} +\end{lstcode} + But what happens: On the first page there's only a page number at the page + foot, but the header is empty! + + The explanation is very easy. Document class \Class{scrartcl} switches to + page style \Pagestyle{plain} for the page with the title head. After command + \Macro{pagestyle}\PParameter{scrheadings} in the preamble of the short + document this will actually result in page style + \Pagestyle{plain.scrheadings}. Using a \KOMAScript{} class the default of + this page style is an empty page header and a page number in the footer. In + the example code the optional arguments of \Macro{lohead} and \Macro{rohead} + are omitted. So page style \Pagestyle{plain.scrheadings} remains + unchanged as default and the result for the first page is indeed correct. + + Please add some text below \Macro{maketitle} until a second page will be + printed. Alternatively you may just add + \Macro{usepackage}\PParameter{lipsum}\IndexPackage{lipsum} into the document + preamble and \Macro{lipsum}\IndexCmd{lipsum} below \Macro{maketitle}. You + will see that the head of the second page will show the author and the + document title as we wanted. + + To see the difference you should also add an optional argument to + \Macro{lohead} and \Macro{rohead} containing some content. To do so, change + the example above: + \begin{lstcode} + \documentclass{scrartcl} + \usepackage{scrlayer-scrpage} + \lohead[John Doe] + {John Doe} + \rohead[Page style with \KOMAScript] + {Page style with \KOMAScript} + \pagestyle{scrheadings} + \begin{document} + \title{Page styles with \KOMAScript} + \author{John Doe} + \maketitle + \end{document} +\end{lstcode} + Now, you also get a page header above the title head of the first + page. That is because you have reconfigured page style + \Pagestyle{plain.scrheadings} with the two optional arguments. Most of you + will also recognise that it would be better to leave this page style + unchanged, because the running head above the document title is certainly + annoying. +\end{Example} + +Allow me an important note:\textnote{Attention!} You should never put a +section heading or section number directly into the page head using a new +declaration by one of these commands. This could result in a wrong number or +heading text in the running head, because of the asynchronous page generation +and output of \TeX. Instead you should use the mark mechanism and ideally you +should use it together with the automatism described in the following +section.% +\EndIndex{Cmd}{rohead}% +\EndIndex{Cmd}{cohead}% +\EndIndex{Cmd}{lohead}% +\EndIndex{Cmd}{rehead}% +\EndIndex{Cmd}{cehead}% +\EndIndex{Cmd}{lehead}% + +\begin{Declaration} + \Macro{lefoot}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{cefoot}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{refoot}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{lofoot}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{cofoot}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{rofoot}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content} +\end{Declaration} +\BeginIndex{Cmd}{lefoot}% +\BeginIndex{Cmd}{cefoot}% +\BeginIndex{Cmd}{refoot}% +\BeginIndex{Cmd}{lofoot}% +\BeginIndex{Cmd}{cofoot}% +\BeginIndex{Cmd}{rofoot}% +The contents of the footer of page style \Pagestyle{plain.scrheadings} and +\Pagestyle{scrheadings} can be defined using these commands. Thereby the +optional argument defines the content of an element of page style +\Pagestyle{plain.scrheadings}, while the mandatory argument sets the content +of the corresponding element of page style \Pagestyle{scrheadings}. + +Contents of left\,---\,so called even\,---\,pages can be set with +\Macro{lefoot}, \Macro{cefoot}, and \Macro{rohead}. Remark: The ``\texttt{e}'' +at the second position of the commands' names means ``\emph{even}''. + +Contents of odd pages can be set with \Macro{lofoot}, \Macro{cofoot}, and +\Macro{rofoot}. Remark: The ``\texttt{o}'' at the second position of the +commands' names means ``\emph{odd}''. + +Please note\textnote{Attention!} that there are only odd pages within single +side layouts independent of whether or not they have an odd page number. + +Each footer consists of a left aligned element that will be defined by +\Macro{lefoot} respectively \Macro{lofoot}. Remark: The ``\texttt{l}'' at the +first position of the commands' names means ``\emph{left aligned}''. + +Similarly each footer has a centred element that will be defined by +\Macro{cefoot} respectively \Macro{cofoot}. Remark: The ``\texttt{c}'' at the +first position of the command' names means ``\emph{centred}''. + +Similarly each footer has a right aligned element that will be defined by +\Macro{refoot} respectively \Macro{rofoot}. Remark: The ``\texttt{r}'' at the +first position of the commands' names means ``\emph{right aligned}''. + +\BeginIndex{FontElement}{pagefoot}% +\BeginIndex{FontElement}{pageheadfoot}% +However, these elements do not have their own font attributes that may be +changed using commands \Macro{setkomafont} and \Macro{addtokomafont} (see +\autoref{sec:maincls.textmarkup}, \autopageref{desc:maincls.cmd.setkomafont}), +but are grouped in an element named \FontElement{pagefoot}. And before the +font of that element additionally the font of element +\FontElement{pageheadfoot} will be used. See +\autoref{tab:scrlayer-scrpage.fontelements} for the defaults of the fonts of +these elements.% +\EndIndex{FontElement}{pageheadfoot}% +\EndIndex{FontElement}{pagefoot}% + +The semantics of the described commands within two-sided layouts are also +sketched in \autoref{fig:scrlayer-scrpage.foot}.% +% +\begin{figure}[bp] + \centering + \begin{picture}(\textwidth,30mm) + \thinlines + \small\ttfamily + % left page + \put(0,0){\line(1,0){.49\textwidth}}% + \put(0,0){\line(0,1){20mm}}% + \multiput(0,20mm)(0,1mm){10}{\line(0,1){.5mm}}% + \put(.49\textwidth,0){\line(0,1){15mm}}% + \put(.05\textwidth,5mm){% + \iffree{\color{red}}{}% + \put(-.5em,0){\line(1,0){4em}}% + \multiput(3.5em,0)(.25em,0){5}{\line(1,0){.125em}}% + \put(-.5em,0){\line(0,1){\baselineskip}}% + \put(-.5em,\baselineskip){\line(1,0){4em}}% + \multiput(3.5em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \makebox(4em,5mm)[l]{\Macro{lefoot}}% + }% + \put(.465\textwidth,5mm){% + \iffree{\color{blue}}{}% + \put(-4em,0){\line(1,0){4em}}% + \multiput(-4em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(0,0){\line(0,1){\baselineskip}}% + \put(-4em,\baselineskip){\line(1,0){4em}}% + \multiput(-4em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-4.5em,0){\makebox(4em,5mm)[r]{\Macro{refoot}}}% + }% + \put(.2525\textwidth,5mm){% + \iffree{\color{green}}{}% + \put(-2em,0){\line(1,0){4em}}% + \multiput(2em,0)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,\baselineskip){\line(1,0){4em}}% + \multiput(2em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,0){\makebox(4em,5mm)[c]{\Macro{cefoot}}}% + }% + % right page + \put(.51\textwidth,0){\line(1,0){.49\textwidth}}% + \put(.51\textwidth,0){\line(0,1){15mm}}% + \put(\textwidth,0){\line(0,1){20mm}}% + \multiput(\textwidth,20mm)(0,1mm){10}{\line(0,1){.5mm}}% + \put(.5325\textwidth,5mm){% + \iffree{\color{blue}}{}% + \put(0,0){\line(1,0){4em}}% + \multiput(4em,0)(.25em,0){5}{\line(1,0){.125em}}% + \put(0,0){\line(0,1){\baselineskip}}% + \put(0em,\baselineskip){\line(1,0){4em}}% + \multiput(4em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \put(.5em,0){\makebox(4em,5mm)[l]{\Macro{lofoot}}}% + }% + \put(.965\textwidth,5mm){% + \iffree{\color{red}}{}% + \put(-4em,0){\line(1,0){4em}}% + \multiput(-4em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(0,0){\line(0,1){\baselineskip}}% + \put(-4em,\baselineskip){\line(1,0){4em}}% + \multiput(-4em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-4.5em,0){\makebox(4em,5mm)[r]{\Macro{rofoot}}}% + }% + \put(.75\textwidth,5mm){% + \iffree{\color{green}}{}% + \put(-2em,0){\line(1,0){4em}}% + \multiput(2em,0)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,\baselineskip){\line(1,0){4em}}% + \multiput(2em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,0){\makebox(4em,5mm)[c]{\Macro{cofoot}}}% + }% + % both pages + \iffree{\color{blue}}{}% + \put(.5\textwidth,15mm){\makebox(0,\baselineskip)[c]{\Macro{ifoot}}}% + \iffree{\color{green}}{}% + \put(.5\textwidth,20mm){\makebox(0,\baselineskip)[c]{\Macro{cfoot}}} + \iffree{\color{red}}{}% + \put(.5\textwidth,25mm){\makebox(0,\baselineskip)[c]{\Macro{ofoot}}} + \put(\dimexpr.5\textwidth-2em,.5\baselineskip){% + \iffree{\color{blue}}{}% + \put(0,15mm){\line(-1,0){1.5em}}% + \put(-1.5em,15mm){\vector(0,-1){5mm}}% + \iffree{\color{green}}{}% + \put(0,20mm){\line(-1,0){\dimexpr .25\textwidth-2em\relax}}% + \put(-\dimexpr .25\textwidth-2em\relax,20mm){\vector(0,-1){10mm}}% + \iffree{\color{red}}{}% + \put(0,25mm){\line(-1,0){\dimexpr .45\textwidth-4em\relax}}% + \put(-\dimexpr .45\textwidth-4em\relax,25mm){\vector(0,-1){15mm}}% + }% + \put(\dimexpr.5\textwidth+2em,.5\baselineskip){% + \iffree{\color{blue}}{}% + \put(0,15mm){\line(1,0){1.5em}}% + \put(1.5em,15mm){\vector(0,-1){5mm}}% + \iffree{\color{green}}{}% + \put(0,20mm){\line(1,0){\dimexpr .25\textwidth-2em\relax}}% + \put(\dimexpr .25\textwidth-2em\relax,20mm){\vector(0,-1){10mm}}% + \iffree{\color{red}}{}% + \put(0,25mm){\line(1,0){\dimexpr .45\textwidth-4em\relax}}% + \put(\dimexpr .45\textwidth-4em\relax,25mm){\vector(0,-1){15mm}}% + }% + \end{picture} + \caption[Commands to define the page footer]% + {The meaning of the commands to define the contents of the page + footer of the page styles sketched on a schematic double page}% + \label{fig:scrlayer-scrpage.foot} +\end{figure} +% +\begin{Example} + Let's return to the example of the short article. Assuming you want to print + the publisher at the left side of the page footer, you would change the + example above into: +\begin{lstcode} + \documentclass{scrartcl} + \usepackage{scrlayer-scrpage} + \lohead{John Doe} + \rohead{Page style with \KOMAScript} + \lofoot{Smart Alec Publishing} + \pagestyle{scrheadings} + \usepackage{lipsum} + \begin{document} + \title{Page styles with \KOMAScript} + \author{John Doe} + \maketitle + \lipsum + \end{document} +\end{lstcode} + Once again the publisher is not printed on the first page with the title + head. For the reason see the explanation about \Macro{lohead} in the example + above. And again the solution to print the publisher on the first page would + be similar: +\begin{lstcode} + \lofoot[Smart Alec Publishing] + {Smart Alec Publishing} +\end{lstcode} + But now you also want to replace the slanted font used in page head and + footer by a upright smaller font. This may be done using: +\begin{lstcode} + \setkomafont{pageheadfoot}{\small} +\end{lstcode} + Furthermore, the head but not the footer should be bold: +\begin{lstcode} + \setkomafont{pagehead}{\bfseries} +\end{lstcode} + For the last command it is important to have it just after + \Package{scrpage-scrlayer} has been loaded, because + the \KOMAScript{} class already defines \FontElement{pagehead} and + \FontElement{pageheadfoot} but with the same meaning. Only loading + \Package{scrpage-scrlayer} changes the meaning of \FontElement{pagehead} and + makes it an element independent of \FontElement{pageheadfoot}. + + Now, please add one more \Macro{lipsum} and add option \Option{twoside} to + the loading of \Class{scrartcl}. First of all, you will see the page number + moving from the middle of the page footer to the outer margin, due to the + changed defaults of \Pagestyle{scrheadings} and + \Pagestyle{plain.scrheadings} using double-sided layout and a \KOMAScript{} + class. + + Simultaneously the author, document title and publisher will vanish from + page~2. It only appears on page~3. This is a consequence of using only + commands for odd pages. You can recognise this by the ``\texttt{o}'' on the + second position of the commands' names. + + Now, we could simply copy those commands and replace the ``\texttt{o}'' by + an ``\texttt{e}'' to define the contents of \emph{even} pages. But with + double sided layout it makes more sense to use mirror-inverted elements. So + the left element of an odd page should become the right element of the even + page and visa versa. To achieve this, we also replace the first letter + ``\texttt{l}'' by ``\texttt{r}'': +\begin{lstcode} + \documentclass[twoside]{scrartcl} + \usepackage{scrlayer-scrpage} + \lohead{John Doe} + \rohead{Page style with \KOMAScript} + \lofoot[Smart Alec Publishing] + {Smart Alec Publishing} + \rehead{John Doe} + \lohead{Page style with \KOMAScript} + \refoot[Smart Alec Publishing] + {Smart Alec Publishing} + \pagestyle{scrheadings} + \usepackage{lipsum} + \begin{document} + \title{Page styles with \KOMAScript} + \author{John Doe} + \maketitle + \lipsum\lipsum + \end{document} +\end{lstcode} +\end{Example} +% +After reading the example it may appear to you that it is somehow +uncomfortable to duplicate commands to have the same contents on mirror +positions of the page header or footer of a double page. Therefore you will +learn to know an easier solution for this standard case next. + +Before allow me an important note:\textnote{Attention!} You should never put a +section heading or section number directly into the page's footer using a new +declaration by one of these commands. This could result in a wrong number or +heading text in the running footer, because of the asynchronous page +generation and output of \TeX. Instead you should use the mark mechanism +ideally together with the automatism described in the following section.% +\EndIndex{Cmd}{rofoot}% +\EndIndex{Cmd}{cofoot}% +\EndIndex{Cmd}{lofoot}% +\EndIndex{Cmd}{refoot}% +\EndIndex{Cmd}{cefoot}% +\EndIndex{Cmd}{lefoot}% + +\begin{Declaration} + \Macro{ohead}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{chead}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{ihead}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{ofoot}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{cfoot}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content}\\ + \Macro{ifoot}\OParameter{plain.scrheadings's content}% + \Parameter{scrheadings's content} +\end{Declaration} +\BeginIndex{Cmd}{ohead}% +\BeginIndex{Cmd}{chead}% +\BeginIndex{Cmd}{ihead}% +\BeginIndex{Cmd}{ofoot}% +\BeginIndex{Cmd}{cfoot}% +\BeginIndex{Cmd}{ifoot}% +To define the contents of page headers and footers of odd and the even pages +of a double-sided layout using the commands described before, you would have to +define the contents of the even page different from the contents of the odd +page. But in general the pages should be symmetric. An element, that should be +printed left aligned on an even page, should be right aligned on an odd page +and vise versa. Elements, that are centred on odd pages, should be centred on +even pages too. + +To simplify the definition of such symmetric page styles, +\Package{scrlayer-scrpage} provides a kind of abbreviation. Command +\Macro{ohead} is same like usage of both \Macro{lehead} and +\Macro{rohead}. Command \Macro{chead} is same like \Macro{cehead} and +\Macro{cohead}. And command \Macro{ihead} is same like \Macro{rehead} and +\Macro{lohead}. The corresponding commands for the page footer are defined +accordingly. A sketch of these commands can be found also in +\autoref{fig:scrlayer-scrpage.head} on \autopageref{fig:scrlayer-scrpage.head} +and \autoref{fig:scrlayer-scrpage.foot} on +\autopageref{fig:scrlayer-scrpage.foot} together with the relationships of all +the page header and footer commands. +% +\begin{Example} + You can simplify the example before using the new commands: +\begin{lstcode} + \documentclass[twoside]{scrartcl} + \usepackage{scrlayer-scrpage} + \ihead{John Doe} + \ohead{Page style with \KOMAScript} + \ifoot[Smart Alec Publishing] + {Smart Alec Publishing} + \pagestyle{scrheadings} + \usepackage{lipsum} + \begin{document} + \title{Page styles with \KOMAScript} + \author{John Doe} + \maketitle + \lipsum\lipsum + \end{document} +\end{lstcode} + As you can see, you can spare half of the commands but get the same result. +\end{Example} +% +In single-sided layouts all pages are odd pages. So in LaTeX's single-sided +mode these commands are synonymous for the odd page commands. Therefore in +most cases you will only need these six commands instead of the twelve +described before. + +Once again, allow me an important note:\textnote{Attention!} You should never +put a section heading or section number directly into the page head or +page foot using a new declaration by one of these commands. This could result in +a wrong number or heading text in the running header or footer, because of the +asynchronous page generation and output of \TeX. Instead you should use the +mark mechanism ideally together with the automatism described in the following +section.% +\EndIndex{Cmd}{ihead}% +\EndIndex{Cmd}{chead}% +\EndIndex{Cmd}{ohead}% +\EndIndex{Cmd}{ifoot}% +\EndIndex{Cmd}{cfoot}% +\EndIndex{Cmd}{ofoot}% + + +\begin{Declaration} + \KOption{pagestyleset}\PName{setting} +\end{Declaration} +\BeginIndex{Option}{pagestyleset~=KOMA-Script}% +\BeginIndex{Option}{pagestyleset~=standard}% +In the examples above you can already find some information about the defaults +of \Pagestyle{scrheadings}\IndexPagestyle{scrheadings} and +\Pagestyle{plain.scrheadings}\IndexPagestyle{plain.scrheadings}. Indeed +\Package{scrlayer-scrpage} provides two different defaults yet. You may select +one of those defaults manually using option \Option{pagestyleset}. + +If \PName{setting} is \PValue{KOMA-Script} the defaults will be used that +would also be activated automatically if a \KOMAScript{} class has been +detected. In this case and within double-sided layout \Pagestyle{scrheadings} +uses running heads outer aligned in the page head. The page number will be +printed outer aligned in the page footer. Within single-sided layout the +running head will be printed in the middle of the page head and the page +number in the middle of the page footer. Upper and lower case will be used for +the automatic running head as given by the words you have typed. This would be +same like using Option +\OptionValue{markcase}{used}\IndexOption{markcase~=used}. Pagestyle +\Pagestyle{plain.scrheadings} has not got running heads, but the page numbers +will be printed in the same manner. + +If \PName{setting} is \PValue{standard} the defaults will be used that are +similar to page style \Pagestyle{headings} and \Pagestyle{plain} of the +standard classes. This \PName{setting} will also be activated automatically +if the option has not been used and \KOMAScript{} class cannot be +detected. Within double-sided layout thereby \Pagestyle{scrheadings} uses +running heads aligned inner in the page head and the page numbers will be +printed\,---\,also in the page head\,---\,aligned outer. Within single-sided +layout \Pagestyle{scrheadings} is the same. But because of single side layout +knows only odd pages, the running head will be aligned left always and the +page number will be aligned right. In spite of typographic objection, the +automatic running head will be converted into upper cases like they would +using \OptionValue{markcase}{upper}\IndexOption{markcase~=upper}. Within +single side layout page style \Pagestyle{plain.scrheadings} differs a lot from +\Pagestyle{scrheading}, because the page number will be printed in the middle +of the page footer. Using double side layout page style +\Pagestyle{plain.scrheadings} differs from standard classes' +\Pagestyle{plain}. The standard classes would print the page number in the +middle of the page footer. But this would not harmonise with the +\Pagestyle{scrheadings}, so \Pagestyle{plain.scrheadings} does not print a page +number. But like \Pagestyle{plain} it does not print a running head. + +Please note\textnote{Attention!} that together with this option page style +\Pagestyle{scrheadings} will be activated. This will be also the case, if you +use the option inside the document. + +\BeginIndex{Option}{komastyle}% +\BeginIndex{Option}{standardstyle}% +Options \Option{komastyle} and \Option{standardstyle}, provided by +\Package{scrpage}, are defined only for compatibility reasons in +\Package{scrlayer-scrpage}. But they are implemented using option +\Option{pagestyleset}. They are deprecated and you should not use them.% +% +\EndIndex{Option}{standardstyle}% +\EndIndex{Option}{komastyle}% +\EndIndex{Option}{pagestyleset~=standard}% +\EndIndex{Option}{pagestyleset~=KOMA-Script}% + +\LoadCommon{21} % \section{Manipulation of Defined Page Styles} + +\begin{Declaration} + \KOption{headwidth}\PName{width\textup{:}offset}\\ + \KOption{footwidth}\PName{width\textup{:}offset} +\end{Declaration} +\BeginIndex{Option}{headwidth~=\PName{offset\textup{:}width}}% +\BeginIndex{Option}{footwidth~=\PName{offset\textup{:}width}}% +By default the page head\Index{head>width} and foot\Index{foot>width} are as +wide as the type area. This can be changed using these \KOMAScript{} +options. The value \PName{width} is the wanted width of the head respective +foot. The \PName{offset} defines how much the head or foot should be moved +towards the outer\,---\,in single side layout to the right\,---\,margin. Both +values are optional and can be omitted. If you omit both values, you can also +omit the colon. If you only use one value without colon, this will be the +\PName{width}. + +For the \PName{width} as well as the \PName{offset} you can use any valid +length value, \LaTeX{} length, \TeX{} dimension or \TeX{} skip. In addition +you may use an \eTeX{} dimension expression with basic arithmetic operations +\texttt{+}, \texttt{-}, \texttt{*}, \texttt{/}, and parenthesis. See +\cite[section~3.5]{manual:eTeX} for more information on such expressions. See +\autoref{sec:scrlayer-scrpage.options} for more information on using, +e.\,g., a \LaTeX{} length as an option value. The \PName{width} can +alternatively be one of the symbolic values shown in +\autoref{tab:scrlayer-scrpage.symbolic.values}. + +By default the head and the foot are as wide as the text area. The default +\PName{offset} depends on the used \PName{width}. In single side layout +generally the half of the difference of \PName{width} and the width of the +text area will be used. This results in horizontal centring the page head +above or the page footer below the text area. In difference to this, in double +side layout generally a third of the difference of \PName{offset} and the +width of the text area will be used. But if \PName{width} is the width of the +whole text area plus the marginal note column, default \PName{offset} will be +zero. If you think, this is complicated, you should simply use an explicit +\PName{offset}. +% +\begin{table} + \centering + \caption[Symbolic values for options \Option{headwidth} and + \Option{footwidth}]{Possible symbolic values for the \PName{width} value of + options \Option{headwidth} and \Option{footwidth}} + \label{tab:scrlayer-scrpage.symbolic.values} + \begin{desctabular} + \ventry{foot}{% + the current width of the page foot% + }% + \ventry{footbotline}{% + the current length of the horizontal line below the page foot% + }% + \ventry{footsepline}{% + the current length of the horizontal line above the page foot% + } \ventry{head}{% + the current width of the page head% + }% + \ventry{headsepline}{% + the current length of the horizontal line below the page head% + }% + \ventry{headtopline}{% + the current lenght of the horizontal line above the page head% + }% + \ventry{marginpar}{% + the current width of the marginal note column including the distance + between the text area and the marginal note column% + }% + \ventry{page}{% + the current width of the page considering a binding correction of + package \Package{typearea} (see option \Option{BCOR} in + \autoref{sec:typearea.typearea}, + \autopageref{desc:typearea.option.BCOR})% + }% + \ventry{paper}{% + the current width of the paper without considering a binding correction% + }% + \ventry{text}{% + the current width of the text area% + }% + \ventry{textwithmarginpar}{% + the current width of the text area plus the marginal note column + including the distance between them (note: in this case and only in this + case the default of \PName{offset} would be zero)% + }% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{footwidth~=\PName{offset\textup{:}width}}% +\EndIndex{Option}{headwidth~=\PName{offset\textup{:}width}}% + +\begin{Declaration} + \KOption{headtopline}\PName{thickness\textup{:}length}\\ + \KOption{headsepline}\PName{thickness\textup{:}length}\\ + \KOption{footsepline}\PName{thickness\textup{:}length}\\ + \KOption{footbotline}\PName{thickness\textup{:}length} +\end{Declaration} +\BeginIndex{Option}{headtopline~=\PName{thickness\textup{:}length}}% +\BeginIndex{Option}{headsepline~=\PName{thickness\textup{:}length}}% +\BeginIndex{Option}{footsepline~=\PName{thickness\textup{:}length}}% +\BeginIndex{Option}{footbotline~=\PName{thickness\textup{:}length}}% +The \KOMAScript{} classes provide only a separation line below the page head +and above the page head, and you may only switch each of these lines on or +off. But package \Package{scrlayer-scrpage} provides four such horizontal +lines: one above the head, one below the head, one above the foot, and one +below the foot. And you can not only switch them on an off, but also configure +the \PName{length} and \PName{thickness} of each of these lines. + +Both values are optional. If you omit the \PName{thickness}, a default value +of 0.4\Unit{pt} will be used, a so called \emph{hairline}. If you omit the +\PName{length}, the width of the head respective the foot will be used. If you +omit both, you can also omit the colon. If you use only one value without +colon, this will be the \PName{thickness}. + +For sure, the \PName{length} can be not only shorter than the current width of +the page head respectively the page foot, but also longer. See additionally +options \Option{ilines}\IndexOption{ilines}, +\Option{clines}\IndexOption{clines}, and \Option{olines}\IndexOption{olines} +later in this section. + +\BeginIndex{FontElement}{headtopline}% +\BeginIndex{FontElement}{headsepline}% +\BeginIndex{FontElement}{footsepline}% +\BeginIndex{FontElement}{footbotline}% +Beside the length and thickness also the colour of the lines can be +changed. First of all the colour depends on the colour of the head or +foot. But independent from those or additional to them the settings of the +corresponding elements \FontElement{headtopline}, \FontElement{headsepline}, +\FontElement{footsepline}, and \FontElement{footbotline} will be used. You may +change these using command \Macro{setkomafont} or \Macro{addtokomafont} (see +\autoref{sec:maincls.textmarkup} from +\autopageref{desc:maincls.cmd.setkomafont}). By default those settings are +empty, which means no change of the current font or colour. Change of font in +opposite to colour would not make sense and is not recommended for these +elements.% +\EndIndex{FontElement}{footbotline}% +\EndIndex{FontElement}{footsepline}% +\EndIndex{FontElement}{headsepline}% +\EndIndex{FontElement}{headtopline}% + +\BeginIndex{Cmd}{setheadtopline}% +\BeginIndex{Cmd}{setheadseoline}% +\BeginIndex{Cmd}{setfootsepline}% +\BeginIndex{Cmd}{setfootbotline}% +Package \Package{scrpage2} has additionally to the options that do not take +any values, also four commands +\Macro{setheadtopline}\IndexCmd[indexmain]{setheadtopline}, +\Macro{setheadsepline}\IndexCmd[indexmain]{setheadsepline}, +\Macro{setfootsepline}\IndexCmd[indexmain]{setfootsepline}, and +\Macro{setfootbotline}\IndexCmd[indexmain]{setfootbotline}. These have a first +optional argument for the \PName{length}, a second mandatory argument for the +\PName{thickness}, and a third optional argument for the setting of font or +colour. Package \Package{scrlayer-scrpage} does also provide those +commands. Nevertheless, these commands are deprecated and should not be used +any longer. To get it clear: These commands have never been made to +switch the lines on or off. They have been made to configure already switched +on lines. Users often ignored this!% +\EndIndex{Cmd}{setfootbotline}% +\EndIndex{Cmd}{setfootsepline}% +\EndIndex{Cmd}{setheadseoline}% +\EndIndex{Cmd}{setheadtopline}% +% +\EndIndex{Option}{footbotline~=\PName{thickness\textup{:}length}}% +\EndIndex{Option}{footsepline~=\PName{thickness\textup{:}length}}% +\EndIndex{Option}{headsepline~=\PName{thickness\textup{:}length}}% +\EndIndex{Option}{headtopline~=\PName{thickness\textup{:}length}}% + + +\begin{Declaration} + \KOption{plainheadtopline}\PName{simple switch}\\ + \KOption{plainheadsepline}\PName{simple switch}\\ + \KOption{plainfootsepline}\PName{simple switch}\\ + \KOption{plainfootbotline}\PName{simple switch} +\end{Declaration} +\BeginIndex{Option}{plainheadtopline~=\PName{simple switch}}% +\BeginIndex{Option}{plainheadsepline~=\PName{simple switch}}% +\BeginIndex{Option}{plainfootsepline~=\PName{simple switch}}% +\BeginIndex{Option}{plainfootbotline~=\PName{simple switch}}% +These options can be used to inherit the settings of the lines also for the +\Pagestyle{plain} page style. Possible values for \PName{simple switch} can be +found in \autoref{tab:truefalseswitch} on +\autopageref{tab:truefalseswitch}. If a option is activated, the +\Pagestyle{plain} page style will use the line settings given by the options +and commands described above. If the option is deactivated, the +\Pagestyle{plain} will not show the corresponding line.% +\EndIndex{Option}{plainfootbotline~=\PName{simple switch}}% +\EndIndex{Option}{plainfootsepline~=\PName{simple switch}}% +\EndIndex{Option}{plainheadsepline~=\PName{simple switch}}% +\EndIndex{Option}{plainheadtopline~=\PName{simple switch}}% + +\begin{Declaration} + \Option{ilines}\\ + \Option{clines}\\ + \Option{olines} +\end{Declaration} +\BeginIndex{Option}{ilines}% +\BeginIndex{Option}{clines}% +\BeginIndex{Option}{olines}% +You have already been told that the horizontal lines above or below the page +head or foot can be shorter or longer than the page head or page foot +itself. Only the answer to the question about the alignment of those lines is +still missing. By default all lines are left aligned at single side layout and +aligned to the inner margin of the head or foot at double side layout. This +is same like using option \Option{ilines}. Alternatively, you can use option +\Option{clines} to centre the lines in the head or foot, or option +\Option{olines} to align them right respectively to the outer margin.% +\EndIndex{Option}{olines}% +\EndIndex{Option}{clines}% +\EndIndex{Option}{ilines}% +% +\EndIndex{Package}{scrlayer-scrpage}% + +%%% Local Variables: +%%% mode: latex +%%% mode: flyspell +%%% coding: us-ascii +%%% ispell-local-dictionary: "en_GB" +%%% TeX-master: "../guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer.tex new file mode 100644 index 00000000000..2e413bf8d7d --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlayer.tex @@ -0,0 +1,1242 @@ +% ====================================================================== +% scrlayer.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrlayer.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% +% Chapter about scrlayer of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Kapitel ueber scrlayer in der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\KOMAProvidesFile{scrlayer.tex} + [$Date: 2013-12-13 17:39:21 +0100 (Fr, 13 Dez 2013) $ + KOMA-Script guide (chapter:scrlayer)] + +\translator{Markus Kohm} + +% Date of the translated file: 2013-10-31 + +\chapter[{Defining Layers and Page Styles Using \Package{scrlayer}}]% +{Defining Layers and Page Styles Using \Package{scrlayer}% +} +\labelbase{scrlayer} + +\BeginIndex{Package}{scrlayer} + +Most users of graphics software already know layer models for pages or working +sheets. \LaTeX{} itself does not know layers, but there are already packages +like \Package{eso-pic} or \Package{textpos}, that provide a kind of +background or foreground layer. \Package{scrlayer} is another package, +that provides such background and foreground layers, but in difference +to the other packages mentioned above these layers are part of the +page style definition. With this you may simply switch between usage +of layers by switching the page style. + +To do so, the package also supports a low level interface to define page +styles using a layer stack, to put layers onto a page style's layer stack, to +put layers at the lowest position of a page style's layer stack, to put layers +before or after a layer of a page style's layer stack, to remove a layer from +a page style's layer stack and to remove doublets of layers of a page style's +layer stack. In short words: The page style interface of \Package{scrlayer} +provides commands to define layer-stack-based page styles and to manage those +layer stacks. + +Nevertheless, using the layers directly is recommended for advanced users only. +End user interfaces for beginners or average users are provided by additional +packages, that load \Package{scrlayer} on their own. See +\autoref{cha:scrlayer-scrpage} in \autoref{part:forAuthors} of this +\iffree{manual}{book}. + +\section{State of Development Note} +\label{sec:scrlayer.draft} + +Development of this package has not been finished yet. Parts of the package +are even still experimental. Because of this, especially internal +functionality may be changed in future. Most likely the package will be +extended. And because of the early state of development, you should not expect +a complete and finished user manual. Nevertheless, this manual, which is +recommended for advanced users and developers, describes the current state of +development and the released parts of \Package{scrlayer}. Everything, not +documented here, should not be used for anything else but testing. + +\LoadCommon{0} % \section{Early or Late Selection of Options} + +\section{Some Generic Information} +\label{sec:scrlayer.generic} + +The package needs some generic information about the class. Class authors may +help \Package{scrlayer} by setting this information. Otherwise the package tries +to detect the information itself. This works, e.g., for the standard classes +and the \KOMAScript{} classes. But it may or may not fail with other classes. + +This section describes some of the information, that class authors may +provide. Generally users need not to care about this. + +\begin{Declaration} + \Macro{if@chapter}\ \PName{then code} \Macro{else}\ \PName{else code} + \Macro{fi}% +\end{Declaration} +\BeginIndex{Cmd}{if@chapter}% +If \Macro{if@chapter} is \Macro{iftrue}, \Package{scrlayer} will additionally +consider the chapter level, e.g., processing option \Option{automark}. If it +is defined, but differs from \Macro{iftrue}, only part, section, subsection, +sub\dots subsection, paragraph, subparagraph, sub\dots subparagraph will be +considered. If the macro is not defined, \Package{scrlayer} searches for +\Macro{chapter}. If \Macro{chapter} is defined and not \Macro{relax}, +\Package{scrlayer} will define \Macro{if@chapter} to \Macro{iftrue}, otherwise +\Macro{if@chapter} will become \Macro{iffalse}.% +\EndIndex{Cmd}{if@chapter} + +\begin{Declaration} + \Macro{if@mainmatter}\ \PName{then code} \Macro{else}\ \PName{else code} + \Macro{fi}% +\end{Declaration} +\BeginIndex{Cmd}{if@mainmatter}% +Classes like \Class{book} define \Macro{frontmatter}, \Macro{mainmatter}, and +\Macro{backmatter}. They also use \Macro{if@mainmatter} to distinguish whether +or not the current matter is the main matter. Classes like \Class{report} and +\Class{article} do not have \Macro{frontmatter}, \Macro{mainmatter}, or +\Macro{backmatter} and therefore also do not have \Macro{if@mainmatter}. + +For \Package{scrlayer} it's easier not to test always for the existence of the +matter commands, but to use \Macro{if@mainmatter} even with classes like +\Class{report} and \Class{article}, simply set to \Macro{iftrue}. So if +\Macro{if@mainmatter} is not defined, it will be defined to \Macro{iftrue}. + +Some classes have \Macro{frontmatter}, \Macro{mainmatter}, or +\Macro{backmatter} but not \Macro{if@mainmatter}. In this case +\Package{scrlayer} also defines \Macro{if@mainmatter} to be \Macro{iftrue} +and it extends definition of \Macro{frontmatter}, \Macro{mainmatter}, and +\Macro{backmatter} to set \Macro{if@mainmatter} properly. Other matter +commands are not known, not tested, and not extended. So if there are other +matter commands \Package{scrlayer} needs help of the class author to set +\Macro{if@mainmatter} correctly.% +\EndIndex{Cmd}{if@mainmatter} + +\begin{Declaration} + \Macro{DeclareSectionNumberDepth}%^^A + \Parameter{level name}\Parameter{level depth} +\end{Declaration} +\BeginIndex{Cmd}{DeclareSectionNumberDepth}% +Generally each section level is related to an integer number indicating its +depth in the document structure. \LaTeX{} needs this to manage hierarchic +section levels. But normally only the document class, that defines the section +commands, itself knows that \PName{level depth} of a section level and uses +these numerical values inside the corresponding commands, when needed. + +But \Package{scrlayer} also needs information about the section hierarchy. +With command \Macro{DeclareSectionNumberDepth} you can map +the name of a heading level to a \PName{level depth}. With standard class +book, e.g., the \PName{level name} could be \PValue{part}, \PValue{chapter}, +\PValue{section}, \PValue{subsection}, \PValue{subsubsection}, +\PValue{paragraph}, or \PValue{subparagraph} and the corresponding +\PName{level depth}s would be -1, 0, 1, 2, 3, 4, and 5. + +Package \Package{scrlayer} tries to determine the \PName{level depth}s on its +own while loading and again while \Macro{begin}\PParameter{document}. But, if +it fails, i.\,e., if completely different section commands are used, it would +be useful, to be able to define the relationship explicitly. For such cases +\Macro{DeclareSectionNumberDepth} gives the class author the opportunity to +define the relationship explicitly.% +\EndIndex{Cmd}{DeclareSectionNumberDepth} + +\section{Declaration of Layers} +\label{sec:scrlayer.layers} + +A layer is a kind of virtual sheet of transparent paper (in opposite to a +physical sheet of paper). One layer is stacked onto another layer and opaque +material on one layer may hide material on the layers below. The stack of all +layers together makes the physical page. Package \Package{scrlayer} +provides two such layer stacks for each page: a background layer stack and a +foreground layer stack. The background layer stack is behind the normal page +contents, the foreground layer stack is above the normal page contents. So the +normal contents is a kind of a separating layer between the background layer +stack and the foreground layer stack. + +A layer has several attributes. The first attribute states, whether or not the +layer is part of the foreground or the background. During page building +background layers will be printed first, followed by the main contents and the +foreground layers. Therefore, in the output the background layers show up +behind the main contents and the foreground layers in front of the main +contents. By default, a layer is both, a background layer \emph{and} a +foreground layer and therefore will be printed twice. + +The horizontal position of the layer is set by the second attribute, the +vertical position by the third. The forth and fifth attributes determine the +horizontal and vertical size of the layer. As you can see, a layer may be +smaller or larger than the paper. + +But having two numerical values of the second and third attribute does not +directly give us the position of the layer on the page. For each dimension we +need two reference points, one on the page and one on the layer. The +numerical value than states the distance between these reference. +Reference points in layouts are also known as alignment and are set by the +sixth attribute. + +The seventh attribute states, whether or not a layer should be +printed onto left or right pages. By default a layer will be printed on both, +left and right pages. Note, that \LaTeX{} names left pages as even pages and +right pages as odd pages and that there are no left or even pages in +single-sided mode. + +The eighth attribute states, whether or not a layer should be printed in +single-side mode or in two-side mode. By default a layer will be printed in +both, single-side mode and two-side mode. Nevertheless, an even page layer will +never be printed in single-side mode and therefore is not really a two-side +mode layer. + +The ninth attribute is, whether or not a layer should be printed onto float +pages or non-float pages. \LaTeX{} produces float pages for float environments +like tables or figures, if they are allowed to be printed on a page without +normal page contents (see option \PValue{p} for \Environment{figure} or +\Environment{table}). So from some point of view a float page is a page, that +may itself flow. Non-float pages are not pages without floats, but pages, that +are not float pages. They may contain floats inside the text, on the top of +the page, or on the bottom of the page. Very large floats may seem to be page +floats, while in reality they are top floats. + +The tenth and last attribute is the contents of the layer. This is simply, +what should be printed, whenever the layer will be printed. + +So we have ten attributes yet. Below in this manual we will describe +additional attributes. However, they are just defined for convenience and can +be expressed by a combination of the ten attributes stated above. We call +these ten attributes the primary attributes. + +\begin{Declaration} + \Macro{DeclareLayer}\OParameter{option list}\Parameter{layer name}\\ + \Macro{DeclareNewLayer}\OParameter{option list}\Parameter{layer name}\\ + \Macro{ProvideLayer}\OParameter{option list}\Parameter{layer name}\\ + \Macro{RedeclareLayer}\OParameter{option list}\Parameter{layer name}\\ + \Macro{ModifyLayer}\OParameter{option list}\Parameter{layer name} +\end{Declaration} +\BeginIndex{Cmd}{DeclareLayer}% +\BeginIndex{Cmd}{DeclareNewLayer}% +\BeginIndex{Cmd}{ProvideLayer}% +\BeginIndex{Cmd}{RedeclareLayer}% +\BeginIndex{Cmd}{ModifyLayer}% +These commands can be used to define a layer. The \PName{layer name} has to be +fully expandable and should expand to letters only. Some additional characters +are tolerated, but are not recommended. + +Command \Macro{DeclareLayer} does not care whether or not a layer with the +given \PName{layer name} already exists. It will under all circumstances +define the layer with the attribute defined by the \PName{option list}. +An +\PName{option} can be either a key or a key followed by an +equal sign followed by a value. Several options may be concatenated to +a \PName{option list} and have to be separated by comma. If you'd like to have +a comma or a white space inside the value of an option, you should put the +value inside curly brackets. See \autoref{tab:scrlayer.layerkeys} for +more information on keys, values, and the corresponding +attributes. + +In contrast to \Macro{DeclareLayer} using \Macro{DeclareNewLayer} results in +an error, if a layer with the same \PName{layer name} already exists. So you +may prevent yourself using the same \PName{layer name} more than once by +mistake. This would be useful, e.\,g., if a class or package also defines +layers internally. + +If you use \Macro{ProvideLayer} instead of \Macro{DeclareLayer}, the +declaration will be ignored in case a layer with the same layer name already +exists. It could be paraphrased by: \emph{declare the layer only, if it has not + been declared already.} + +If an existing layer should be redefined, \Macro{RedeclareLayer} or +\Macro{ModifyLayer} can be used. \Macro{RedeclareLayer} would simply define +the layer as if it would be defined newly. In difference to this, +\Macro{ModifyLayer} would change only those attributes, that are represented +by an option of the \PName{option list}. All other attributes will stay +unchanged and will not be reset to the initial default value. Using either +\Macro{RedeclareLayer} or \Macro{ModifyLayer} will result in an error, in case +there has not been a layer with \PName{layer name} defined before. + +\begin{desclist} + \desccaption{% + Options for the definition of page layers with description of the + corresponding layer attribute\label{tab:scrlayer.layerkeys}% + }{% + Options for the definition of layers (\emph{Continuation})% + }% + \nentry{\KOption{align}{\PName{alignment characters}}}{% + The \PName{alignment characters} define the desired alignment of the + layer. Each \PName{alignment character} influences either, how argument + \PName{length} of option \Option{hoffset} or \Option{voffset} will be + used. Several \PName{alignment characters} may be used together (without + comma or space) and will be interpreted in the order of occurrence. No + macros should be used here! Valid \PName{alignment character}s are: + \begin{description} + \item[\PValue{b} --] align the layer at its bottom edge; the + value of + \Option{voffset} is interpreted as the distance from the top edge of the + paper to the bottom edge of the layer. + \item[\PValue{c} --] align the layer at its centre; the values of + \Option{voffset} and \Option{hoffset} are interpreted as the distance + from the top left corner of the paper to the centre of the layer. + \item[\PValue{l} --] align the layer at its left edge: the value of + \Option{hoffset} is interpreted as the distance from the left edge of + the paper to the left edge of the layer. + \item[\PValue{r} --] align the layer at its right edge; the value of + \Option{hoffset} is interpreted as the distance from the left edge of + the paper to the right edge of the layer. + \item[\PValue{t} --] align the layer at its top edge; the value of + \Option{voffset} is interpreted as the distance from the top edge of the + paper to the top edge of the layer. + \end{description}% + }% + \nentry{\KOption{area}{%^^A + \Parameter{hoffset}\Parameter{voffset}%^^A + \Parameter{width}\Parameter{height}}}{% + The composed option results in \OptionValue{hoffset}{\PName{hoffset}}, + \OptionValue{voffset}{\PName{voffset}}, + \OptionValue{width}{\PName{width}}, \OptionValue{height}{\PName{height}}.% + }% + \entry{\Option{background}}{% + Print the layer only in the background, but not in the foreground. This + makes a background-only layer in opposite to the default of layers which + are both, background and foreground layers and therefore would be printed + twice. The option does not expect any value. By the default the attribute + is not set.% + }% + \entry{\Option{bottommargin}}{% + The composed option sets \Option{hoffset}, \Option{voffset}, + \Option{width}, \Option{height}, and \Option{align} to horizontally span + the paper from the left edge to the right and vertically span the area + below the footer down to the bottom edge of the paper.% + }% + \nentry{\KOption{clone}{\PName{layer name}}}{% + The composed option sets all primary attributes of the layer to the same + values as the primary attributes of the layer with the given \PName{layer + name}. Note, that \PName{layer name} has to be fully expandable and + should expand to letters only. Some additional characters are tolerated, + but are not recommended!% + }% + \nentry{\KOption{contents}{\PName{code}}}{% + The \PName{code} will be expanded whenever the layer is printed. So the + \PName{code} is what you will see. Code validity is not checked. So errors + in \PName{code} may result in several failures on each page, that prints + the layer.% + }% + \entry{\Option{evenpage}}{% + Print the layer on even pages only, but not on odd pages. The option does + not expect any value. By the default the option is not set and therefore + layers would be printed on odd pages and on even pages. Note, that this + attribute subsumes \Option{twoside}.% + }% + \entry{\Option{floatpage}}{% + Print the layer on float pages only, but not on other pages. The option + does not expect any value. By the default the attribute is not set and + therefore layers would be printed on float pages and on non-float pages.% + }% + \entry{\Option{foot}}{% + The composed option sets \Option{hoffset}, \Option{voffset}, + \Option{width}, \Option{height}, and \Option{align} to horizontally span + the text area and vertically span the page footer defined by the new + \LaTeX{} length \Length{footheight}.% + }% + \entry{\Option{footskip}}{% + The composed option sets \Option{hoffset}, \Option{voffset}, + \Option{width}, \Option{height}, and \Option{align} to horizontally span + the text area and vertically span the distance between the text area and + the page footer (note, that this is not the same like \Length{footskip}).% + }% + \entry{\Option{foreground}}{% + Print the layer only in the foreground, but not in the background. This + makes a foreground-only layer in opposite to the default of layers which + are both, background and foreground layers and therefore would be printed + twice. The option does not expect any value. By the default the attribute + is not set.% + }% + \entry{\Option{head}}{% + The composed option sets \Option{hoffset}, \Option{voffset}, + \Option{width}, \Option{height}, and \Option{align} to horizontally span + the text area and vertically span the page head defined by usual \LaTeX{} + length \Length{headheight}.% + }% + \entry{\Option{headsep}}{% + The composed option sets \Option{hoffset}, \Option{voffset}, + \Option{width}, \Option{height}, and \Option{align} to horizontally span + the text area and vertically span the distance between the page head and + the text area.% + }% + \nentry{\KOption{height}{\PName{length}}}{% + Sets the height of the layer. Note, that \PName{length} can either be a + \LaTeX{} length, declared using \Macro{newlength}, or a \TeX{} length, + declared using \Macro{newdimen} or \Macro{newskip}, a length value like + 10\,pt, or a dimensional expression using +, -, /, *, (, and ). For more + information about valid dimensional expressions see + \cite[section~3.5]{manual:eTeX}.% + }% + \nentry{\KOption{hoffset}{\PName{length}}}{% + Sets the offset of the layer (depending on \Option{align} either left edge + of the layer, middle of the layer or right edge of the layer) from the + left edge of the paper. See \Option{height} for more information about + valid content of \PName{length}.% + }% + \entry{\Option{innermargin}}{% + The composed option sets \Option{hoffset}, \Option{voffset}, + \Option{width}, \Option{height}, and \Option{align} to horizontally span + the distance between the right edge of text area and the right edge of the + paper on even pages or the distance between the left edge of the paper and + the left edge of the text area on odd pages and vertically span the whole + paper from the top edge to the bottom edge.% + }% + \entry{\Option{leftmargin}}{% + The composed option sets \Option{hoffset}, \Option{voffset}, + \Option{width}, \Option{height}, and \Option{align} to horizontally span + the distance between the left edge of the paper and the left edge of the + text area and vertically span the whole paper from the top edge to the + bottom edge.% + }% + \entry{\Option{nonfloatpage}}{% + Restricts the layer to pages, that are not float pages. The option does + not expect any value. By the default the attribute is not set and + therefore layers would be printed on float pages and on non-float pages.% + }% + \entry{\Option{oddpage}}{% + Print the layer on odd pages only, but not on even pages. The option does + not expect any value. By the default the option is not set and therefore + layers would be printed on odd pages and on even pages.% + }% + \entry{\Option{oneside}}{% + Print the layer in single-side mode only, but not in two-side mode. The + option does not expect any value. By the default the attribute is not set + and therefore layers would be printed in single-side and two-side mode.% + }% + \entry{\Option{outermargin}}{% + The composed option sets \Option{hoffset}, \Option{voffset}, + \Option{width}, \Option{height}, and \Option{align} to horizontally span + the distance between the left edge of the paper and the left edge of the + text area on even pages or the distance between the right edge of the text + area and the right edge of the paper on odd pages and vertically span the + whole paper from the top edge to the bottom edge.% + }% + \entry{\Option{page}}{% + The composed option sets \Option{hoffset}, \Option{voffset}, + \Option{width}, \Option{height}, and \Option{align} to horizontally and + vertically span the whole paper from the left edge to the right edge and + the top edge to the bottom edge.% + }% + \entry{\Option{rightmargin}}{% + The composed option sets \Option{hoffset}, \Option{voffset}, + \Option{width}, \Option{height}, and \Option{align} to horizontally span + the distance between the right edge of text area and the right edge of the + paper and vertically span the whole paper from the top edge to the bottom + edge.% + }% + \entry{\Option{textarea}}{% + The composed option sets \Option{hoffset}, \Option{voffset}, + \Option{width}, \Option{height}, and \Option{align} to horizontally and + vertically span the whole text area from the left edge to the right edge + and the top edge to the bottom edge.% + }% + \entry{\Option{topmargin}}{% + The composed option sets \Option{hoffset}, \Option{voffset}, + \Option{width}, \Option{height}, and \Option{align} to horizontally span + the whole page from the left edge to the right edge and vertically span + the distance between the top edge of the paper and the page head.% + }% + \entry{\Option{twoside}}{% + Print the layer in two-side mode only, but not in single-side mode. The + option does not expect any value. By the default the attribute is not set + and therefore layers would be printed in single-side and two-side mode.% + }% + \nentry{\KOption{voffset}{\PName{length}}}{% + Sets the offset of the layer (depending on \Option{align} either top edge + of the layer, middle of the layer or bottom edge of the layer) from the + top edge of the paper. See \Option{height} for more information about + valid content of \PName{length}.% + }% + \nentry{\KOption{width}{\PName{length}}}{% + Sets the width of the layer. See \Option{height} for more information + about valid content of \PName{length}.% + }% +\end{desclist} +% +\EndIndex{Cmd}{ModifyLayer}% +\EndIndex{Cmd}{RedeclareLayer}% +\EndIndex{Cmd}{ProvideLayer}% +\EndIndex{Cmd}{DeclareNewLayer}% +\EndIndex{Cmd}{DeclareLayer}% + +\begin{Declaration} + \Macro{layerxoffset}\\ + \Macro{layeryoffset}\\ + \Macro{layerwidth}\\ + \Macro{layerheight}% +\end{Declaration} +\BeginIndex{Cmd}{layerxoffset}% +\BeginIndex{Cmd}{layeryoffset}% +\BeginIndex{Cmd}{layerwidth}% +\BeginIndex{Cmd}{layerheight}% +These commands are valid during output of the layer's contents only. So they +can only be used inside the \PName{code} of option \Option{contents} of the +previously described commands. In this case they give the effective position +and dimension of the layer, that will be used for the output. However, the +effective dimension of the layer's contents may differ, i.\,e., if the +contents are oversized or do not fill the layer completely. Redefinition of +the commands to change the stored values is strictly forbidden and would +result in unpredictable issues.% +\EndIndex{Cmd}{layerheight}% +\EndIndex{Cmd}{layerwidth}% +\EndIndex{Cmd}{layeryoffset}% +\EndIndex{Cmd}{layerxoffset}% + +\begin{Declaration} + \Macro{IfLayerExists}% + \Parameter{string}\Parameter{then-code}\Parameter{else-code} +\end{Declaration} +\BeginIndex{Cmd}{IfLayerExists}% +This command may be used to execute code depending on whether or not a layer +has been defined already. If the layer exists \PName{then-code} will be +executed, otherwise \PName{else-code}. Note, the command cannot really +test whether a layer exists. It uses a heuristic, that will never be false +negative, but may be false positive. Nevertheless, if it is false positive +something went wrong, either an incompatible package has been used or the user +made something he should not do.% +\EndIndex{Cmd}{IfLayerExists} + +\begin{Declaration} + \Macro{DestroyLayer}\Parameter{layer name} +\end{Declaration} +\BeginIndex{Cmd}{DestroyLayer}% +This command sets all macros corresponding with the layer with given +\PName{layer name} to \Macro{relax}, if a layer with that name exists. As a result the layer cannot be used any longer. It does not matter, if the layer +is still part of the layer list of a page style, because such destroyed layers +will be ignored. Nevertheless, destroyed layers may be defined again using +\Macro{DeclareNewLayer} or \Macro{ProvideLayer}, but cannot be changed using +\Macro{RedeclareLayer} or \Macro{ModifyLayer} any longer. + +The command is intended to be used inside +\Macro{scrlayerOnAutoRemoveInterface} to remove layers, which have been +defined using removable macros of an interface, whenever the interface would +be removed.% +\EndIndex{Cmd}{DestroyLayer} + +\begin{Declaration} + \Macro{layercontentsmeasure}% +\end{Declaration} +\BeginIndex{Cmd}{layercontentsmeasure}% +The command \Macro{layercontentsmeasure} is internally used, if option +\Option{draft} has been set, so visualise the layers. The visualisation will +be done with a centimetre ruler at the top and left edge of the layer and an +inch ruler at the bottom and right edge of the layer. The rulers will be drawn +behind the content of the layer. If you would, you could also use it as +exclusive content of a layer.% +\EndIndex{Cmd}{layercontentsmeasure} + + +\section{Declaration and Management of Page Styles} +\label{sec:scrlayer.pagestyles} + +Until now we know layers, but we do not know how to use them. The +perhaps astonishing answer is: with page styles. In \LaTeX{}, page +styles usually define heads and foots of odd and even pages. + +The head and foot of odd pages will be printed on pages with odd +page number in two-side mode or on all pages in single-side mode. This is +something like the layer attributes \Option{oddpage} and \Option{evenpage}. + +The page head will be printed before the main contents of a page. The page +footer will be printed after the main contents of a page. So this is something +like the layer attributes \Option{background} and \Option{foreground}. + +So it's obvious to declare page styles to be a list of layers. But instead of +having only four attributes \Option{oddpage}, \Option{evenpage}, +\Option{background}, and \Option{foreground} all the attributes of layers +shown in \autoref{sec:scrlayer.layers} may be used. + +The outcome of this is that layer page styles are one type of page styles +\Package{scrlayer} provides. A layer page style consists of layers and +several \emph{hooks}. For description of layers see +\autoref{sec:scrlayer.layers}. The \emph{hooks} are points in the expansion +or execution of page styles and you may add additional code that will be +expanded there. Advanced users know this already from commands like +\Macro{AtBeginDocument} (see \cite{latex:usrguide}) or +\Macro{BeforeClosingMainAux} (see +\autopageref{desc:scrlfile.cmd.BeforeClosingMainAux}). + +Alias page styles are another type of page styles, provided by +\Package{scrlayer}. An alias page style simply consists of another page +style. In other words, the name of an alias page style is an alias name of +another page style, the aliased or original page style. Because of this, the +manipulation of an alias page style results in the manipulation of the +original page style. If the original page style is an alias page style too, +the manipulation will result in the manipulation of the aliased page style of +that original page style and so on until a real page style will be +manipulated. You may not only alias layer page styles made with +\Package{scrlayer}, but all kind of page styles. + +\begin{Declaration} + \Macro{currentpagestyle} +\end{Declaration} +\BeginIndex{Cmd}{currentpagestyle}% +Package scrlayer patches \Macro{pagestyle} to set \Macro{currentpagestyle} to +the currently active page style. Note, \Macro{thispagestyle} does not +change \Macro{currentpagestyle}. But if you use \Macro{thispagestyle} the +result of \Macro{currentpagestyle} may be changed while execution of the +\LaTeX{} output routine. This may be relevant only, if +\Macro{currentpagestyle} has been used protected until execution of the output +routine. + +Note, the layer page styles described later in this section, will not need +the patch of \Macro{pagestyle} to set \Macro{currentpagestyle}. The patch has +been made for usage with other page styles. Note also, +\Macro{currentpagestyle} is empty before the first \Macro{pagestyle} after +loading \Package{scrlayer}. So if you define an end user page style interface, +it may be useful to use an implicit \Macro{pagestyle} to set the current page +style to a default page style.% +\EndIndex{Cmd}{currentpagestyle} + +\begin{Declaration} + \Macro{BeforeSelectAnyPageStyle}\Parameter{code}\\ + \Macro{AfterSelectAnyPageStyle}\Parameter{code}%^^A +\end{Declaration} +\BeginIndex{Cmd}{BeforeSelectAnyPageStyle}% +\BeginIndex{Cmd}{AfterSelectAnyPageStyle}% +The command \Macro{BeforeSelectAnyPageStyle} adds \PName{code} to the hook +that will be executed inside of \Macro{pagestyle} just before the page style +will be selected. You may use \texttt{\#1} as a placeholder for the argument +of \Macro{pagestyle}. + +The command \Macro{AfterSelectAnyPageStyle} is similar, but the \PName{code} +will be executed just after the page style has been selected and after +\Macro{currentpagestyle} has been set to the name of real page style. + +Note\textnote{Attention!}, \PName{code} of both commands will be executed +only, if a page style will be selected using \Macro{pagestyle}, but not, +e.\,g., if a page style will be selected using \Macro{thispagestyle}. Note +also, you cannot remove \PName{code} from the hook after adding it. But +the \PName{code} will be added locally, so you may use a group to limit the +scope of \PName{code}.%^^A +\EndIndex{Cmd}{AfterSelectAnyPageStyle} +\EndIndex{Cmd}{BeforeSelectAnyPageStyle} + +\begin{Declaration} + \Macro{DeclarePageStyleAlias}% + \Parameter{alias page style name}\Parameter{original page style name}\\ + \Macro{DeclareNewPageStyleAlias}% + \Parameter{alias page style name}\Parameter{original page style name}\\ + \Macro{ProvidePageStyleAlias}% + \Parameter{alias page style name}\Parameter{original page style name}\\ + \Macro{RedeclarePageStyleAlias}% + \Parameter{alias page style name}\Parameter{original page style name} +\end{Declaration} +\BeginIndex{Cmd}{DeclarePageStyleAlias}% +\BeginIndex{Cmd}{DeclareNewPageStyleAlias}% +\BeginIndex{Cmd}{ProvidePageStyleAlias}% +\BeginIndex{Cmd}{RedeclarePageStyleAlias}% +These commands may be used to define a page style with name \PName{alias page + style name} that is simply an alias for an already existing page style with +name \PName{original page style name}. If there's already a page style +\PName{alias page style name} it will be destroyed before creating the alias +using \Macro{DeclarePageStyleAlias} or \Macro{RedeclarePageStyleAlias}. + +\Macro{DeclareNewPageStyleAlias} will throw an error message, if a page style +\PName{alias page style name} has already been defined before. It does not +matter if the already defined page style is a layer page style, an alias page +style or another page style. + +\Macro{ProvidePageStyleAlias} will define the alias only, if a page style +\PName{alias page style name} has not been defined before. If a page style +\PName{alias page style name} already exists nothing will be done. + +\Macro{RedeclarePageStyleAlias} expects an already existing page style +\PName{alias page style name}. It will destroy that page style and afterwards +define the alias. If the page style \PName{alias page style name} does not +exist, then you will get an error.% +\EndIndex{Cmd}{RedeclarePageStyleAlias}% +\EndIndex{Cmd}{ProvidePageStyleAlias}% +\EndIndex{Cmd}{DeclareNewPageStyleAlias}% +\EndIndex{Cmd}{DeclarePageStyleAlias} + +\begin{Declaration} + \Macro{DestroyPageStyleAlias}\Parameter{page style name}% +\end{Declaration} +\BeginIndex{Cmd}{DestroyPageStyleAlias}% +This command makes the page style with given \PName{page style name} +\LaTeX-undefined, if it is an alias for another page style. After this, the +page style may be defined newly with, e.g., \Macro{DeclareNewAliasPageStyle} +or \Macro{ProvideAliasPageStyle}. + +The command is intended to be used inside of +\Macro{scrlayerOnAutoRemoveInterface} to remove page styles that have been +declared by an interface and uses removable macros of that interface.% +\EndIndex{Cmd}{DestroyPageStyleAlias} + +\begin{Declaration} + \Macro{GetRealPageStyle}\Parameter{page style name}% +\end{Declaration} +\BeginIndex{Cmd}{GetRealPageStyle}% +The command will result in the (recursive) real page name of the page style, +if the page style with given name \PName{page style name} is an alias of +another page style. In all other cases, even if there's no alias and no page +style named \PName{page style name}, the result would be simply \PName{page + style name}. The command is fully expandable and may be used, e.g., in the +second argument of \Macro{edef}.% +\EndIndex{Cmd}{GetRealPageStyle} + +\begin{Declaration} + \Macro{DeclarePageStyleByLayers}% + \OParameter{option list}\Parameter{page style name}\Parameter{layer list}\\ + \Macro{DeclareNewPageStyleByLayers}% + \OParameter{option list}\Parameter{page style name}\Parameter{layer list}\\ + \Macro{ProvidePageStyleByLayers}% + \OParameter{option list}\Parameter{page style name}\Parameter{layer list}\\ + \Macro{RedeclarePageStyleByLayers}%^ + \OParameter{option list}\Parameter{page style name}\Parameter{layer list}% +\end{Declaration} +\BeginIndex{Cmd}{DeclarePageStyleByLayers}% +\BeginIndex{Cmd}{DeclareNewPageStyleByLayers}% +\BeginIndex{Cmd}{ProvidePageStyleByLayers}% +\BeginIndex{Cmd}{RedeclarePageStyleByLayers}% +These commands declare a page style with \PName{page style name}. The page +style will consist of the layers given in \PName{layer list}, a comma +separated list of layer names. Note, the \PName{page style name} and the +layer names at the \PName{layer list} must be fully expandable and should +expand to letters. Several other characters are tolerated, but, +nevertheless, are not recommended. + +The \PName{option list} is a comma separated list of +\OptionValue{\PName{key}}{\PName{value}} options. These options may be used to +set additional features. Currently they are used to set the code that should +be expanded or executed at several \emph{hooks}. See the introduction to this +section for more general information about \emph{hooks}. See +\autoref{tab:scrlayer.pagestyle.hooks} for more information about the hooks +and their purpose. + +\begin{desclist} + \desccaption{% + The \emph{hook} options for page styles (in order of + execution)\label{tab:scrlayer.pagestyle.hooks}% + }{% + The \emph{hook} options for page styles (\emph{Continuation})% + }% + \entry{\KOption{onselect}\PName{code}}{% + Execute \PName{code} whenever the page style will be selected using, e.g., + \Macro{pagestyle}. Note\textnote{Attention!}, \Macro{thispagestyle} + does not select the page style immediately, but asynchronously inside + \LaTeX's output routine.% + }% + \entry{\KOption{oninit}\PName{code}}{% + Execute \PName{code} whenever the output of the layers of a page style + will be initialised. Note\textnote{Attention!}, this will be done + twice for every page: once for background layers and once for foreground + layers.% + }% + \entry{\KOption{ononeside}\PName{code}}{% + Execute \PName{code} whenever the output of the layers of a page style in + single-side mode will initialised. Note\textnote{Attention!}, this + will be done twice for every page: once for background layers and once for + foreground layers.% + }% + \entry{\KOption{ontwoside}\PName{code}}{% + Execute \PName{code} whenever the output of the layers of a page style in + two-side mode will initialised. Note\textnote{Attention!}, this will + be done twice for every page: once for background layers and once for + foreground layers.% + }% + \entry{\KOption{onoddpage}\PName{code}}{% + Execute \PName{code} whenever the output of the layers of a page style on + an odd page will initialised. Note\textnote{Attention!}, this will be + done twice for every page: once for background layers and once for + foreground layers. Note\textnote{Attention!} also, in single-side + mode all pages are odd pages, not only pages with odd page numbers.% + }% + \entry{\KOption{onevenpage}\PName{code}}{% + Execute \PName{code} whenever the output of the layers of a page style on + an even page will initialised. Note\textnote{Attention!}, this will + be done twice for every page: once for background layers and once for + foreground layers. Note\textnote{Attention!} also, there are not even + pages in single-side mode, but all pages are odd pages, not only pages + with odd page numbers.% + }% + \entry{\KOption{onfloatpage}\PName{code}}{% + Execute \PName{code} whenever the output of the layers of a page style on + a float page will initialised. Note\textnote{Attention!}, this will + be done twice for every page: once for background layers and once for + foreground layers. Note\textnote{Attention!} also, float pages are + only those pages with p-placed floating objects.% + }% + \entry{\KOption{onnonfloatpage}\PName{code}}{% + Execute \PName{code} whenever the output of the layers of a page style on + a non-float page will initialised. Note\textnote{Attention!}, this + will be done twice for every page: once for background layers and once for + foreground layers. Note\textnote{Attention!} also, non-float pages + are all pages that are not float-pages. Those pages may have t-placed, + h-placed, b-placed, or no floating objects.% + }% + \entry{\KOption{onbackground}\PName{code}}{% + Execute \PName{code} whenever the output of the layers of a page style in + the background of a page will initialised. Note\textnote{Attention!}, + this will be done once for every page.% + }% + \entry{\KOption{onforeground}\PName{code}}{% + Execute \PName{code} whenever the output of the layers of a page style in + the foreground of a page will initialised. Note\textnote{Attention!}, + this will be done once for every page.% + }% +\end{desclist} + +The difference of \Macro{DeclarePageStyleByLayers} and +\Macro{DeclareNewPageStyleByLayers} is that \Macro{DeclareNewPageStyleByLayers} +will result in an error, if a page style with name \PName{page style name} +already exists. Note, declaring a page style, which is an alias of another +page style (see \Macro{DeclareAliasPageStyle} prior in this section), will not +re-declare the page style itself, but it's real page style (see +\Macro{GetRealPageStyle} prior in this section). + +The difference of \Macro{DeclarePageStyleByLayers} and +\Macro{ProvidePageStyleByLayers} is that \Macro{ProvidePageStyleByLayers} +will simply do nothing, if there's already a page style with name \PName{page + style name}. In difference to \Macro{DeclareNewPageStyleByLayers} it will not +raise an error in this case. + +The difference of \Macro{DeclarePageStyleByLayers} and +\Macro{RedeclarePageStyleByLayers} is, that \Macro{RedeclarePageStyleByLayers} +may be used only, if the real page style of \PName{page style name} already +exists. Otherwise an error would occur. + +Please have also a look at the notes to following pseudo page style +\Pagestyle{@everystyle@}.% +\EndIndex{Cmd}{RedeclarePageStyleByLayers}% +\EndIndex{Cmd}{ProvidePageStyleByLayers}% +\EndIndex{Cmd}{DeclareNewPageStyleByLayers}% +\EndIndex{Cmd}{DeclarePageStyleByLayers}% + +\begin{Declaration} + \Pagestyle{@everystyle@}\\ + \Pagestyle{empty} +\end{Declaration} +\BeginIndex{Pagestyle}{@everysel@}% +\BeginIndex{Pagestyle}{empty}% +There are two somehow special, default layer page styles. The first one is +\Pagestyle{@everystyle@}. This page style should not be used normally, but the +layers of this page style will be used by all the other layer page styles. So +adding a layer to this page style would be similar to adding this layer to all +other layer page styles even the empty one. There's one difference: Layer +referencing commands of the page style interface like +\Macro{ForEachLayerOfPageStyle}, \Macro{AddLayerToPageStyleBeforeLayer}, or +\Macro{AddLayerToPageStyleAfterLayer} ignore the layers of +\Pagestyle{@everystyle@} if they are used for another layer page style. + +The other somehow special page style is \Pagestyle{empty}. Normally page style +\Pagestyle{empty} is defined by the \LaTeX{} kernel, to be a page style +without page head or page foot. Package \Package{scrlayer} re-defines it to be +a layer page style without any layer. Nevertheless, you may use it like every +other layer page style too. The main advantage above the \LaTeX{} kernel's +empty page style is that it also executes the layers of special layer page +style \Pagestyle{@everysel@}.% +\EndIndex{Pagestyle}{empty}% +\EndIndex{Pagestyle}{@everysel@}% + +\begin{Declaration} + \KOption{onpsselect}\PValue{code}\\ + \KOption{onpsinit}\PValue{code}\\ + \KOption{onpsoneside}\PValue{code}\\ + \KOption{onpstwoside}\PValue{code}\\ + \KOption{onpsoddpage}\PValue{code}\\ + \KOption{onpsevenpage}\PValue{code}\\ + \KOption{onpsfloatpage}\PValue{code}\\ + \KOption{onpsnonfloatpage}\PValue{code}\\ + \KOption{onpsbackground}\PValue{code}\\ + \KOption{onpsforeground}\PValue{code} +\end{Declaration} +\BeginIndex{Option}{onpsselect~=\PName{code}}% +\BeginIndex{Option}{onpsinit~=\PName{code}}% +\BeginIndex{Option}{onpsoneside~=\PName{code}}% +\BeginIndex{Option}{onpstwoside~=\PName{code}}% +\BeginIndex{Option}{onpsoddpage~=\PName{code}}% +\BeginIndex{Option}{onpsevenpage~=\PName{code}}% +\BeginIndex{Option}{onpsfloatpage~=\PName{code}}% +\BeginIndex{Option}{onpsnonfloatpage~=\PName{code}}% +\BeginIndex{Option}{onpsbackground~=\PName{code}}% +\BeginIndex{Option}{onpsforeground~=\PName{code}}% +There's also a \KOMAScript{} option for each of those \texttt{hooks}. The +names of the \KOMAScript{} options are similar to the names of the page style +options, but with ``\texttt{ps}'' inserted behind ``\texttt{on}''. The value of +the \KOMAScript{} options are the initial defaults of the corresponding +\texttt{hooks}. This default will be extended by every usage of the page style +options at the \PName{option list}. You may remove the default, using +\Macro{ModifyLayerPageStyleOptions} described later in this section.% +\EndIndex{Option}{onpsforeground~=\PName{code}}% +\EndIndex{Option}{onpsbackground~=\PName{code}}% +\EndIndex{Option}{onpsnonfloatpage~=\PName{code}}% +\EndIndex{Option}{onpsfloatpage~=\PName{code}}% +\EndIndex{Option}{onpsevenpage~=\PName{code}}% +\EndIndex{Option}{onpsoddpage~=\PName{code}}% +\EndIndex{Option}{onpstwoside~=\PName{code}}% +\EndIndex{Option}{onpsoneside~=\PName{code}}% +\EndIndex{Option}{onpsinit~=\PName{code}}% +\EndIndex{Option}{onpsselect~=\PName{code}}% + +\begin{Declaration} + \KOption{deactivatepagestylelayers}\PName{simple switch}\\ + \Macro{ForEachLayerOfPageStyle}\Parameter{page style name}\Parameter{code} +\end{Declaration} +\BeginIndex{Cmd}{ForEachLayerOfPageStyle}% +As long as \KOMAScript{} option \Option{deactivatepagestylelayers} has not been +activated command \Macro{ForEachLayerOfPageStyle} can be used to process +\PName{code} for every layer that is a member of the layers list of a page +style with given \PName{page style name}. Inside of \PName{code} the place +holder \PValue{\#1} may be used for the name of the current layer. +\begin{Example} + If you want to output the names of all layers of page style + \PValue{scrheadings}, you may us: +\begin{lstcode} + \let\commaatlist\empty + \ForEachLayerOfPageStyle{scrheadings}{% + \commaatlist#1\gdef\commaatlist{, }} +\end{lstcode} +\end{Example} +Usage of \Macro{gdef} instead of \Macro{def} is necessary in the example +above, because \Macro{ForEachLayerOfPageStyle} executes the \PName{code} +inside of a group to minimise side effects. Here \Macro{gdef} redefines +\Macro{commaatlist} globally, so it would be still valid at the execution of +\PName{code} for the next layer. + +Several other commands of \Package{scrlayer} also +use \Macro{ForEachLayerOfPageStyle} internally. So these also do not process +any layer if \KOMAScript{} option \Option{deactivatepagestylelayers} would be +activated. So you may use this options, e.g., to hide all layers of all layer +page styles.% +\EndIndex{Cmd}{ForEachLayerOfPageStyle}% + +\begin{Declaration} + \Macro{AddLayersToPageStyle}% + \Parameter{page style name}\Parameter{layer list}\\ + \Macro{AddLayersAtBeginOfPageStyle}% + \Parameter{page style name}\Parameter{layer list}\\ + \Macro{AddLayersAtEndOfPageStyle}% + \Parameter{page style name}\Parameter{layer list}\\ + \Macro{RemoveLayersFromPageStyle}% + \Parameter{page style name}\Parameter{layer list}% +\end{Declaration} +\BeginIndex{Cmd}{AddLayersToPageStyle}% +\BeginIndex{Cmd}{AddLayersAtBeginOfPageStyle}% +\BeginIndex{Cmd}{AddLayersAtEndOfPageStyle}% +\BeginIndex{Cmd}{RemoveLayersFromPageStyle}% +You can use these commands to add layers to a layer page style or to remove +layers from a layer page style. The page style will be referenced by it +\PName{page style name}. The layers are given by a comma separated +\PName{layer list}. + +The commands \Macro{AddLayersToPageStyle} and \Macro{AddLayersAtEndOfPageStyle} +add all layers of the comma separated list of layers \PName{layer list} at +the end of the layer list of layer page style \PName{page style + name}. Logically the added layers would be above or in front of the old +layers of the page style. Nevertheless, new background layers would be behind +the text layer and therefore behind all foreground layers. + +Command \Macro{AddLayersAtBeginOfPageStyle} adds the new layers at the begin +of the layer list of the page style. Note, the layers +will be added in the order of the \PName{layer list}. The first layer at +\PName{layer list} will be added first, the second layer will be added second +and so on. So with \Macro{AddLayersAtBeginOfPageStyle} the last layer at +\PName{layer list} will become the new first layer of the layer list of layer +page style \PName{page style name}. + +Command \Macro{RemoveLayersFromPageStyle} may be used to remove layers from +the layer list of layer page style \PName{page style name} instead of adding +them. Note, layers, which are part of \PName{layer list}, but not part of +the page style's layer list, will be ignored. But adding or removing layers +from a page style, which is not a layer page style or an alias of a layer page +style, would be a mistake and result in an error message.% +\EndIndex{Cmd}{RemoveLayersFromPageStyle}% +\EndIndex{Cmd}{AddLayersAtEndOfPageStyle}% +\EndIndex{Cmd}{AddLayersAtBeginOfPageStyle}% +\EndIndex{Cmd}{AddLayersToPageStyle} + +\begin{Declaration} + \Macro{AddLayersToPageStyleBeforeLayer}% + \Parameter{page style name}\Parameter{layer list}% + \Parameter{reference layer name}\\ + \Macro{AddLayersToPageStyleAfterLayer}% + \Parameter{page style name}\Parameter{layer list}% + \Parameter{reference layer name} +\end{Declaration} +\BeginIndex{Cmd}{AddLayersToPageStyleBeforeLayer}% +\BeginIndex{Cmd}{AddLayersToPageStyleAfterLayer}% +These commands are similar to the commands described before, but they do not +add the layers at the begin or end of the layer list of a layer page style, +but just before or after a reference layer at the layer list of a layer page +style. Note, in this case the order of the \PName{layer list} will be +same in the layer list of \PName{page style name} after adding. If the +reference layer named \PName{reference layer name} is not part of the layer +list of the layer page style, nothing happens.% +\EndIndex{Cmd}{AddLayersToPageStyleAfterLayer}% +\EndIndex{Cmd}{AddLayersToPageStyleBeforeLayer} + +\begin{Declaration} + \Macro{UnifyLayersAtPageStyle}\Parameter{page style name} +\end{Declaration} +\BeginIndex{Cmd}{UnifyLayersAtPageStyle}% +With the commands described before in this section you may not only add +different layers to a page style, but even add the same layer several times to +a page style. In most cases it does not make sense to have one layer several +times at the layer list of a layer page style. So you may use +\Macro{UnifyLayersAtPageStyle} to remove all dupes of layers from the layer +list of a layer page style. + +Note\textnote{Attention!}, the order of layers may change! So if +you want a special order, you should remove all layers and add the layers in +the order you want instead of using \Macro{UnifyLayersAtPageStyle}.% +\EndIndex{Cmd}{UnifyLayersAtPageStyle} + +\begin{Declaration} + \Macro{ModifyLayerPageStyleOptions}% + \Parameter{page style name}\Parameter{option list}\\ + \Macro{AddToLayerPageStyleOptions}% + \Parameter{page style name}\Parameter{option list} +\end{Declaration} +\BeginIndex{Cmd}{ModifyLayerPageStyleOptions}% +\BeginIndex{Cmd}{AddToLayerPageStyleOptions}% +Command \Macro{ModifyLayerPageStyleOptions} may be used to modify the page +style options of a layer page style. Only options at the comma separated +\PName{option list} will be set to the new values given in \PName{option list} +if the new value is not empty. Options, which are not at \PName{option list}, +will stay unchanged. If you want to set an option to \emph{do nothing} you may +use value \Macro{relax}. Note, setting an option to a new value using +\Macro{ModifyLayerPageStyleOptions} will remove the previous value including +the global default value. + +\Macro{AddToLayerPageStyleOptions} differs from +\Macro{ModifyLayerPageStyleOptions} in that point. It will not overwrite the +previous values, but adds\,---\,or more precisely: concatenates\,---\, the new +values to the previous values of the options at \PName{option list}.% +\EndIndex{Cmd}{AddToLayerPageStyleOptions}% +\EndIndex{Cmd}{ModifyLayerPageStyleOptions}% + +\begin{Declaration} + \Macro{IfLayerPageStyleExists}% + \Parameter{page style name}\Parameter{then code}\Parameter{else code}\\ + \Macro{IfRealLayerPageStyleExists}%^ + \Parameter{page style name}\Parameter{then code}\Parameter{else code}% +\end{Declaration} +\BeginIndex{Cmd}{IfLayerPageStyleExists}% +\BeginIndex{Cmd}{IfRealLayerPageStyleExists}% +Command \Macro{IfLayerPageStyleExists} tests, whether or not the real page +style of \PName{page style name} is a layer page style. If the test is true, +\PName{then code} will be executed. If \PName{page style name} is neither a +layer page style, nor an alias of a layer page style, nor an alias of an alias +of \dots\ a layer page style, \PName{else code} will be executed. Internally +this command is often used to throw an error message if you use one of the +layer page style commands with an \PName{page style name} that does not +correspond with a layer page style. + +Command \Macro{IfRealLayerPageStyleExists} is similar, but \PName{then code} +will only be executed, if \PName{page style name} itself is the name of a +layer page style. So \PName{else code} will even be executed, if \PName{page + style name} is an alias name of a layer page style or the alias name of an +alias name of \dots\ a layer page style.% +\EndIndex{Cmd}{IfRealLayerPageStyleExists}% +\EndIndex{Cmd}{IfLayerPageStyleExists}% + +\begin{Declaration} + \Macro{IfLayerAtPageStyle}% + \Parameter{page style name}\Parameter{layer name}% + \Parameter{then code}\Parameter{else code}\\ + \Macro{IfSomeLayerAtPageStyle}% + \Parameter{page style name}\Parameter{layer list}%^ + \Parameter{then code}\Parameter{else code}\\ + \Macro{IfLayerAtPageStyle}% + \Parameter{page style name}\Parameter{layer list}% + \Parameter{then code}\Parameter{else code}% +\end{Declaration} +\BeginIndex{Cmd}{IfLayerAtPageStyle}% +\BeginIndex{Cmd}{IfSomeLayersAtPageStyle}% +\BeginIndex{Cmd}{IfLayersAtPageStyle}% +Command \Macro{IfLayerAtPageStyle} may be used to test, whether or not a layer +named \PName{layer name} is a member of the layer list of a given page +style. If the test is true, the \PName{then code} will be executed. If the +layer is not a member of the layer list of \PName{page style name}, the +\PName{else code} will be executed. + +Commands \Macro{IfSomeLayerAtPageStyle} and \Macro{IfLayersAtPageStyle} do not +only test one layer but several layers at a given, comma separated +\PName{layer list}. \Macro{IfSomeLayerAtPageStyle} will execute the +\PName{then code} if \emph{at least one} of the layers at \PName{layer list} +is a member of the layer list of \PName{page style name}. In difference +\Macro{IfLayersAtPageStyle} executes the \PName{then code} only, if \emph{all} +of the layers at \PName{layer list} are members of the layer list of +\PName{page style name}.% +\EndIndex{Cmd}{IfLayersAtPageStyle}% +\EndIndex{Cmd}{IfSomeLayersAtPageStyle}% +\EndIndex{Cmd}{IfLayerAtPageStyle} + +\begin{Declaration} + \Macro{DestroyRealLayerPageStyle}\Parameter{page style name} +\end{Declaration} +\BeginIndex{Cmd}{DestroyRealLayerPageStyle}% +Command \Macro{DestroyRealLayerPageStyle} makes the page style named +\PName{page style name} undefined, if and only if it is a layer page +style. Nothing will be happen if it is an alias name of a layer page style, if +it is another page style, or if it is not a page style. + +If \PName{page style name} is the name of the current page style the current +page style will become a kind of empty page style. If the special page +style\,---\,this may be set using \Macro{thispagestyle}\,---\,is \PName{page + style name}, this will be simply reset. So the previous +\Macro{thispagestyle} will become invalid. + +Note, the layers of the page style will not be destroyed +automatically. If you want to destroy the layers too, you may use +\begin{lstcode} + \ForEachLayerOfPageStyle{...}{\DestroyLayer{#1}} +\end{lstcode} +\emph{before} destroying the layer page style. + +The command is intended to be used inside the auto-remove code of an interface +See \autoref{sec:scrlayer.enduserinterfaces} below for more information about +auto-remove code.% +\EndIndex{Cmd}{DestroyRealLayerPageStyle} + +\LoadCommon{20} % \section{Height of Page Head and Foot} + +\LoadCommon{21} % \section{Manipulation of Defined Page Styles} + +\section{End User Interfaces} +\label{sec:scrlayer.enduserinterfaces} + +Package \Package{scrlayer} provides an interface to define and manage +(concurrent) end user interfaces. Maybe future releases of \KOMAScript{} will +provide parts of this by package \Package{scrbase} and remove those commands +from \Package{scrlayer}. But currently this part if \Package{scrlayer} is very +experimental, so package \Package{scrlayer} provides its own interface +definition commands. Currently you should not depend on correct working of +auto-removing a concurrent end user interface. Instead you should avoid using +concurrent end user interfaces. + +This section only describes the interface commands for defining end user +interfaces. This is not interesting for end users, but only for authors of end +user interfaces. End users will find information about the end user interfaces +in the sections about the particular end user interface, e.g., +\autoref{cha:scrlayer-scrpage}, \autoref{cha:scrlayer-scrpage-experts}, and +\autoref{cha:scrlayer-notecolumn}. + +\begin{Declaration} + \Macro{scrlayerInitInterface}\OParameter{interface name} +\end{Declaration} +\BeginIndex{Cmd}{scrlayerInitInterface}% +Command \Macro{scrlayerInitInterface} +registers a new interface. The \PName{interface name} must be unique. If you +try to initialise an already initialised interface an error will occur. This +command is obligatory and mandatory for interfaces. It should be the first +interface command and therefore has been described first. If the optional +argument is omitted, \PValue{\Macro{@currname}.\Macro{@currext}} will be +used instead. For classes and packages this will be the file name of the class +or package while loading the class or package. But you may use any sequence of +characters with category letter or other.% +\EndIndex{Cmd}{scrlayerInitInterface} + +\begin{Declaration} + \KOption{forceoverwrite}\PName{simple switch}\\ + \KOption{autoremoveinterfaces}\PName{simple switch}\\ + \Macro{scrlayerAddToInterface}% + \OParameter{interface name}\Parameter{command}\Parameter{code}\\ + \Macro{scrlayerAddCsToInterface}% + \OParameter{interface name}\Parameter{command sequence}\Parameter{code} +\end{Declaration} +\BeginIndex{Option}{forceoverwrite}% +\BeginIndex{Option}{autoremoveinterfaces}% +\BeginIndex{Cmd}{scrlayerAddToInterface}% +\BeginIndex{Cmd}{scrlayerAddCsToInterface}% +One of the special features of end user interfaces is that they should +register all interface dependent commands (also known as \emph{macros}). You +may do this using \Macro{scrlayerAddToInterface}%^^A +. If your interface generates macros not only at load time but also at run +time or if the interface name should not be the class's or package's name, you +have to use the optional argument to add the command to a dedicated +interface. An error will occur, if the interface has not been initialised +before. + +The first mandatory argument is the \PName{command}\footnote{The + \PName{command} consists of the backslash followed by a \PName{command + sequence} consisting of characters with category code letter or one other + character, or \PName{command} consists of one active character (without + backslash).} that should be added to the interface. If the command can be +added to the interface, it will be added to the interface, will be set to +\Macro{relax} and \PName{code} will be executed. You can use, e.g., +\Macro{newcommand}\PName{command} inside of \PName{code} to define +\PName{command}. + +But when can a command be defined? If a command is undefined or \Macro{relax} +it can be defined. If a command has already been defined and registered for +another interface \emph{and} if \KOMAScript{} option +\Option{autoremoveinterface} has been switched on, the other interface will be +removed automatically and the new command will be set to \Macro{relax} and +will be registered for the given interface. If a command +has already been defined but is not part of another interface \emph{and} if +\KOMAScript{} option \Option{forceoverwrite} has been switched on, the command +will be set to \Macro{relax} and will be registered for the given interface. + +Command \Macro{scrlayerAddCsToInterface} is similar to +\Macro{scrlayerAddToInterface} but does not expect a command as first, +mandatory argument, but a command sequence\footnote{A command sequence may + consist of any characters with category code letter or other.}.% +\EndIndex{Cmd}{scrlayerAddCsToInterface}% +\EndIndex{Cmd}{scrlayerAddToInterface} +\EndIndex{Option}{autoremoveinterfaces}% +\EndIndex{Option}{forceoverwrite}% + +\begin{Declaration} + \Macro{scrlayerOnAutoRemoveInterface}%^^A + \OParameter{interface name}\Parameter{code} +\end{Declaration} +\BeginIndex{Cmd}{scrlayerOnAutoRemoveInterface}% +Command \Macro{scrlayerOnAutoRemoveInterface} +registers \PName{code} to be executed, if the interface will be automatically +removed (see \Option{autoremoveinterfaces} prior in this section). This may be +used, e.g., to automatically destroy layers or page styles (see +\Macro{DestroyLayer}, \Macro{DestroyAliasPageStyle}, and +\Macro{DestroyRealLayerPageStyle}).% +\EndIndex{Cmd}{scrlayerOnAutoRemoveInterface}% +% +\EndIndex{Package}{scrlayer} + +%%% Local Variables: +%%% mode: latex +%%% mode: flyspell +%%% coding: us-ascii +%%% ispell-local-dictionary: "en_GB" +%%% TeX-master: "../guide" +%%% End: + + diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlfile.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlfile.tex index a3bfa1aab2e..a01d445a1cf 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlfile.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlfile.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrlfile.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlfile.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,10 +45,12 @@ % % ============================================================================ -\ProvidesFile{scrlfile.tex}[2012/02/24 KOMA-Script guide (chapter: scrlfile)] +\KOMAProvidesFile{scrlfile.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (chapter: scrlfile)] \translator{Gernot Hassenpflug\and Markus Kohm} -% Date of translated german file: 2012/02/25 +% Date of translated german file: 2013/11/24 \chapter{Control Package Dependencies with \Package{scrlfile}} \labelbase{scrlfile} @@ -210,10 +212,10 @@ The\important[i]{\Macro{AfterClass+}\\\Macro{AfterPackage+}} plussed\ChangedAt{v3.09}{\Package{scrlfile}} version executes the \PName{instructions} after loading of the class or package has been finished. The difference to the starred version is only valid, if loading of -the class or package already started but hasn't been finished +the class or package already started but has not been finished yet. Nevertheless, \PName{instructions} will be executed before the instructions of \Macro{AtEndOfClass} or \Macro{AtEndOfPackage} when loading of -the class or package hasn't been finished already. +the class or package has not been finished already. If\important[i]{\Macro{AfterClass!}\\\Macro{AfterPackage!}} a class uses \Macro{AtEndOfClass} or a package uses \Macro{AtEndOfPackage} to execute @@ -355,7 +357,7 @@ page of the document already have been shipped out before \Macro{end}\PParameter{document}, the code above will not result in any writing into the \File{aux}-file. If someone would try to fix this new problem using \Macro{immediate} just before \Macro{write}, the inverse problem would -occur: If the last page wasn't shipped out before +occur: If the last page was not shipped out before \Macro{end}\PParameter{document} the \Macro{writethistoaux} would be written into \File{aux}-file before ship-out the last page. Another often seen suggestion for this problem therefore is: @@ -377,7 +379,7 @@ been enforced by the \Macro{clearpage}. After that, instructions like Note at the end of the document.\par } \end{lstcode} -wouldn't any longer output the note at the end of the last page of the +would not any longer output the note at the end of the last page of the document but at the end of one more page. Additionally \Macro{writethistoaux} would be written one page to early into the \File{aux}-file again. @@ -395,7 +397,7 @@ immediately after the final \Macro{clearpage}, that is part of } \end{lstcode} This would be successful even if the final \Macro{clearpage} inside of -\Macro{end}\PParameter{document} wouldn't really ship-out any page or if +\Macro{end}\PParameter{document} would not really ship-out any page or if someone have had used \Macro{clearpage} in the argument of \Macro{AtEndDocument}. @@ -517,7 +519,7 @@ Please\textnote{Attention!} note, that the \PName{replacement class} or the \PName{replacement package} will be loaded with the same options, the \PName{source class} or \PName{replacement class} would until it has been replaced. Replacement of a class or package by a class or package, that -doesn't support a requested option, would result in a warning or even an error +does not support a requested option, would result in a warning or even an error message. But you may declare such missing options using \Macro{BeforeClass} or \Macro{BeforePackage}. @@ -528,7 +530,7 @@ message. But you may declare such missing options using \Macro{BeforeClass} or \ReplacePackage{oldfoo}{newfoo} \end{lstcode} Assumed the old package provides an option \Option{oldopt}, but the new - package doesn't. Using + package does not. Using \begin{lstcode} \BeforePackage{newfoo}{% \DeclareOption{oldopt}{% @@ -578,6 +580,23 @@ class using \Macro{RequirePackage} instead of \Macro{usepackage}. \EndIndex{Cmd}{ReplacePackage}% \EndIndex{Cmd}{ReplaceClass}% +\begin{Declaration} + \Macro{UnReplaceInput}\Parameter{file name}\\ + \Macro{UnReplacePackage}\Parameter{package}\\ + \Macro{UnReplaceClass}\Parameter{class}% +\end{Declaration} +\BeginIndex{Cmd}{UnReplaceInput}% +\BeginIndex{Cmd}{UnReplacePackage}% +\BeginIndex{Cmd}{UnReplaceClass}% +A\ChangedAt{v3.12}{\Package{scrlfile}} replacement definition can be removed +using one of these commands. The replacement definition of a input file should +be removed using \Macro{UnReplaceInput}, the replacement definition of a +package should be removed using \Macro{UnReplacePackage}, and the replacement +definition of a class should be removed using \Macro{UnReplaceClass}.% +\EndIndex{Cmd}{UnReplaceClass}% +\EndIndex{Cmd}{UnReplacePackage}% +\EndIndex{Cmd}{UnReplaceInput}% + \section{Prevent File Loading} \label{sec:scrlfile.prevent} @@ -590,9 +609,13 @@ of that package has to prevented. For this purpose \Package{scrlfile} again provides a solution. \begin{Declaration} - \Macro{PreventPackageFromLoading}\Parameter{package list} + \Macro{PreventPackageFromLoading}\OParameter{instead code}% + \Parameter{package list}\\ + \Macro{PreventPackageFromLoading*}\OParameter{instead code}% + \Parameter{package list} \end{Declaration} \BeginIndex{Cmd}{PreventPackageFromLoading}% +\BeginIndex{Cmd}{PreventPackageFromLoading*}% Calling this command\ChangedAt{v3.08}{\Package{scrlfile}} before loading a package using \Macro{usepackage}\IndexCmd{usepackage}, \Macro{RequirePackage}\IndexCmd{RequirePackage}, or @@ -610,7 +633,7 @@ the \PName{package list}. \end{lstcode} But now, you want to use X\kern-.125em\lower.5ex\hbox{\reflectbox{E}}\LaTeX{} oder Lua\LaTeX{} the - first time. In this case loading of \Package{fontenc} wouldn't be a good + first time. In this case loading of \Package{fontenc} would not be a good suggestion and Latin-Modern would be the default font of the recommended package \Package{fontspec}. Because of this you want to prevent both packages from being loaded. This may be done, loading the class like this: @@ -623,8 +646,21 @@ the \PName{package list}. The example above also shows, that package \Package{scrlfile} may be loaded before the class. In this case \Macro{RequirePackage}\IndexCmd{RequirePackage} has to be used, because \Macro{usepackage} before \Macro{documentclass} is not -permitted.% -% +permitted. + +If \PName{package list} is empty or contains a package, that already has been +loaded, \Macro{PreventPackageFromLoading} will warn. If you'd prefer an +info\ChangedAt{v3.12}{\Package{scrlfile}} at the log-file only, you may use +\Macro{PreventPackageFromLoading*} instead. + +The optional argument\ChangedAt{v3.12}{\Package{scrlfile}} may be used to +execute code instead of loading the package. But you must not load another +packages or files inside \PName{instead code}. See \Macro{ReplacePackage} in +\autoref{sec:scrlfile.macros} on +\autopageref{desc:scrlfile.cmd.ReplacePackage} for information about replacing +a package by another one. Note also, that the \PName{instead code} will be +executed several times, if you try to load the package more than once!% +\EndIndex{Cmd}{PreventPackageFromLoading*}% \EndIndex{Cmd}{PreventPackageFromLoading} \begin{Declaration} @@ -670,9 +706,51 @@ been stored using \Macro{StorePreventPackageFromLoading} is responsible for the correct restorability. For example the list elements must be separated by comma, must not contain white space or group braces, and must be fully expandable. -% + +Please note\textnote{Attention!}, that \Macro{ResetPreventPackageFromLoading} +does not clean the \PName{instead code} of a package. Only the execution is not +done as long as the prevention is not reactivated.% \EndIndex{Cmd}{ResetPreventPackageFromLoading}% \EndIndex{Cmd}{StorePreventPackageFromLoading}% + +\begin{Declaration} + \Macro{UnPreventPackageFromLoading}\Parameter{package list}\\ + \Macro{UnPreventPackageFromLoading*}\Parameter{package list} +\end{Declaration} +\BeginIndex{Cmd}{UnPreventPackageFromLoading}% +\BeginIndex{Cmd}{UnPreventPackageFromLoading*}% +Instead\ChangedAt{v3.12}{\Package{scrlfile}} of resetting the whole list of +packages, that should prevented from being loaded, you may also remove some +packages from that list. The star version of the command does also clean the +\PName{instead code}. So reactivation of the prevent package list, e.\,g., +from a stored one, will not reactivate the \PName{instead code} of the +packages.% +% +\begin{Example} + Assuming, you want to prevent a package \Package{foo} from being loaded, but + you do not want an already stored \PName{instead code} to be + executed. Instead of that code, you're own \PName{instead code} should be + executed. You can do this: +\begin{lstcode} + \UnPreventPackageFromLoading*{foo} + \PreventPackageFromLoading[\typeout{Stattdessencode}]{foo} +\end{lstcode} + For \Macro{UnPreventPackageFromLoading} it does not matter whether or not + the package has been prevented from being loaded before. + + Surely you can use the command also to remove only the \PName{instead code} + of all packages: +\begin{lstcode} + \StorePreventPackageFromLoading\TheWholePreventList + \UnPreventPackageFromLoading*{\TheWholePreventList} + \PreventPackageFromLoading{\TheWholePreventList} +\end{lstcode} + In this case the packages, that has been prevented from being loaded, are + still prevented from being loaded, but their \PName{instead code} has been + cleaned and will not be executed any longer.% +\end{Example}% +\EndIndex{Cmd}{UnPreventPackageFromLoading*}% +\EndIndex{Cmd}{UnPreventPackageFromLoading}% % \EndIndex{Package}{scrlfile} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2-experts.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2-experts.tex index c2d08cc4fe0..9ed1ae7f361 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2-experts.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2-experts.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrlttr2-experts.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlttr2-experts.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,13 +45,14 @@ % % ============================================================================ -\ProvidesFile{scrlttr2-experts.tex}[2012/03/01 KOMA-Script guide (chapter: -scrlttr2 for experts)] +\KOMAProvidesFile{scrlttr2-experts.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (chapter: scrlttr2 for experts)] \translator{Harald Bongartz\and Georg Grandke\and Raimund Kohl\and Jens-Uwe Morawski\and Stephan Hennig\and Gernot Hassenpflug\and Markus Kohm} -% Date of the translated German file: 2012/03/01 +% Date of the translated German file: 2013/10/04 \chapter{Additional Information about the Letter Class \Class{scrlttr2}} @@ -59,14 +60,14 @@ scrlttr2 for experts)] This chapter gives additional information about the \KOMAScript{} class \Class{scrlttr2}. \iffree{Some parts of the chapter are subject to the - \KOMAScript{} book \cite{book:komascript} only. This shouldn't be a problem, - because the}{The} average user, who only want to use the package, won't need -the information. Other information is addressed to users, who want additional -information about details. For example the first section will describe -pseudo-lengths in detail. These may be used to modify the note paper. Another -part of the information describes features of the class that exist only -because of compatibility to deprecated \Class{scrlettr} class. Last but not -least it will be described in detail how to change a document from the old + \KOMAScript{} book \cite{book:komascript} only. This should not be a + problem, because the}{The} average user, who only want to use the package, +does not need the information. Other information is addressed to users, who +want additional information about details. For example the first section will +describe pseudo-lengths in detail. These may be used to modify the note paper. +Another part of the information describes features of the class that exist +only because of compatibility to deprecated \Class{scrlettr} class. Last but +not least it will be described in detail how to change a document from the old \Class{scrlettr} class to be used with the current \Class{scrlttr2} class. @@ -84,9 +85,16 @@ registers for the first page alone. {\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 would already be in use. That is the reason why lengths specific to letters in \Class{scrlttr2} -are defined with macros instead of lengths. The drawback of this approach is -that computations with macros is somewhat more complicated than with real -lengths. +are internally defined with macros instead of lengths. The drawback of this +approach is that computations with macros is somewhat more complicated than +with real lengths. + +Please note\textnote{Attention!}: Even though these pseudo-lengths are +internally implemented as macros, the commands for pseudo-length management +expect only the names of the pseudo-lengths not the macros representing the +pseudo-lengths. The names of pseudo-lengths are without backslash at the very +beginning similar to the names of \LaTeX{} counters and in opposite to macros +or \LaTeX{} lengths. It can be pointed out that the now recommended {\LaTeX} installation with {\eTeX} no longer suffers from the above-mentioned limitation. However, that @@ -100,8 +108,8 @@ given in the table. A schematic display of the most important distances of the note paper is shown in \autoref{fig:scrlttr2-experts.pseudoLength} at \autopageref{fig:scrlttr2-experts.pseudoLength}. Beside the -pseudo-lengths for the modifiable distances, also some lengths, that may not -be modified are shown in light gray. Some rarely needed pseudo-length of the +pseudo-lengths for the modifiable distances, also some lengths, which may not +be modified, are shown in light gray. Some rarely needed pseudo-length of the note paper have been omitted to get a more clear arrangement. % \begin{desclist} @@ -425,21 +433,18 @@ shifted in the vertical direction. \BeginIndex{PLength}{tfoldmarkvpos}% \BeginIndex{PLength}{bfoldmarkvpos}% \BeginIndex{PLength}{mfoldmarkvpos}% -The letter class \Class{scrlttr2} knows a total of three -vertically placed configurable foldmarks. The position of the topmost -foldmark, taken from the upper edge of the paper, is governed by the -pseudo-length \PLength{tfoldmarkvpos}, that of the middle foldmark by -pseudo-length -\PLength{mfoldmarkvpos}\ChangedAt{v2.97e}{\Class{scrlttr2}}, and that -of the bottommost foldmark by pseudo-length \PLength{bfoldmarkvpos}. With -the addition of the puncher hole\Index{puncher hole mark} or -center\Index{center mark|see{punch hole mark}} -mark, there is still a fourth horizontal mark. This one is however -always placed at the vertical center of the paper. +The letter class \Class{scrlttr2} knows a total of three vertically placed +configurable foldmarks. The position of the topmost foldmark, taken from the +upper edge of the paper, is governed by the pseudo-length +\PLength{tfoldmarkvpos}; the position of the middle foldmark by pseudo-length +\PLength{mfoldmarkvpos}\ChangedAt{v2.97e}{\Class{scrlttr2}}; the position of +the bottommost foldmark by pseudo-length \PLength{bfoldmarkvpos}. With the +addition of the puncher hole\Index{puncher hole mark} or center\Index{center + mark|see{punch hole mark}} mark, there is still a fourth horizontal +mark. This one is however always placed at the vertical center of the paper. \iffalse% Umbruchkorrekturtext -There's no pseudo-length for this last mark, because it vertical position -isn't configurable. -\fi +There's no pseudo-length for this last mark, because it vertical position is +not configurable. \fi The\textnote{Attention!} topmost and bottommost foldmarks do not serve to divide the paper into exactly equal thirds. Instead, with their help, the @@ -777,8 +782,8 @@ For window envelopes the sender is often printed with small font at one line above the addressee. This kind of sender's information is known as return address\textnote{return address}\Index{return address}, because it is visible at the address window and will be used by the post officers to return the -letter (back) to the sender. In this return address only the information -should be, that is needed for this purpose. +letter (back) to the sender. In this return address only that information +should be that is needed for this purpose. The height, that is reserved for the return address at the top of the address field, is given by pseudo-length \PLength{backaddrheight}. A typical value for @@ -832,7 +837,7 @@ the height, that will be reserved for the Port-Pay\'e head using the options \PLength{PPheadwidth} will be used only with \OptionValue{addrfield}{PP} (see \autoref{sec:scrlttr2.firstpage}, \autopageref{desc:scrlttr2.option.addrfield}) and gives the width of the left -field in the Port-Pay\'e head, that contains P.\,P. logo, zip-code and +field in the Port-Pay\'e head that contains P.\,P. logo, zip-code and place. The width of the right field with the sender's code and the priority is the remaining width. @@ -966,7 +971,7 @@ fields line is centered, while with \OptionValue{refline}{narrow}\IndexOption{refline~=\PValue{narrow}} it is aligned on the left inside the typing area. -If \PLength{refwidth} isn't null, i.\,e., the width of the reference fields +If \PLength{refwidth} is not null, i.\,e., the width of the reference fields line is therefore not determined by the option \Option{refline}, then \PLength{refhpos} gives the distance of the reference fields line from the left edge of the paper. If\textnote{Attention!} this distance is null, then @@ -1206,7 +1211,7 @@ variables in the business line\Index{business line}. 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}. In opposite to \PName{name} -the \PName{description} won't be used to reference a variable. In fact the +the \PName{description} is not used to reference a variable. In fact the \PName{description} defines an addition to the content of a variable, that may be output similar to the variable content. @@ -1243,7 +1248,7 @@ The command \Macro{defaultreffields} acts to reset the reference fields line to its predefined format. In doing so, all custom-defined variables are removed from the reference fields line. -The\textnote{Attention!} date shouldn't be added to the reference fields line +The\textnote{Attention!} date should not be added to the reference fields line using \Macro{addtoreffields}. Instead option \Option{date}\important[i]{\OptionValue{refline}{dateleft}\\ \OptionValue{refline}{dateright}\\ \OptionValue{refline}{nodate}}% @@ -1310,7 +1315,7 @@ to be used as the argument of, e.\,g., \Macro{markboth} or \Macro{footnote}.% \section{\File{lco}-Files for Experienced Users} -\label{sec:scrlttr2-experts.variables} +\label{sec:scrlttr2-experts.lcoFile} \BeginIndex{File}{lco}% \BeginIndex{}{lco-file=\File{lco}-file}% @@ -1319,7 +1324,7 @@ Even though each paper size, that may be set up using package \Package{typearea}, may be also used with \Class{scrlttr2}, the result of the first page may be unwanted with some of those page sizes. The conception of the class is not the reason for this, but the fact, that there are mainly -parameter sets for ISO~A4 paper. Unfortunately their aren't any universal +parameter sets for ISO~A4 paper. Unfortunately their are not any universal rules, to calculate, e.\,g., the position of the address field or similar for every available paper sizes. But it is possible to make parameter sets for any paper size that is needed.% @@ -1361,7 +1366,7 @@ forget about this option and skip the example.% into standard C6 window envelopes. In that case, 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 topmost and bottommost folding marks. If their wouldn't be options for + the topmost and bottommost folding marks. If their would not be options for this, the easiest way to achieve this would be to place the marks outside of the paper area. \begin{lstcode} @@ -1444,13 +1449,13 @@ commands\Macro{setkomafont} und \Macro{addtokomafont} (see \BeginIndex{Cmd}{edgesize} The default for the visualization of single areas are frames\important{\PValue{frame}} around the areas. Areas with open top or -bottom won't be framed completely but have an open edge with arrows at the end +bottom are not framed completely but have an open edge with arrows at the end of the ending lines. Alternatively\important{\PValue{rule}} the \PName{visualization style} \PValue{rule} may be used. In this case a -background color will be used to visualize the areas. This doesn't differ open +background color will be used to visualize the areas. This does not differ open and closed areas. Instead a minimal height will be used for open areas. The -third\important{\PValue{edge}} available \PName{visualization style} is -\PValue{edge}. This will mark the corners of the areas. The corner marks at +third\important{\PValue{edges}} available \PName{visualization style} is +\PValue{edges}. This will mark the corners of the areas. The corner marks at the open edge of open areas will be omitted. The size of two edges of the corner marks are given by the macro \Macro{edgesize} with default 1\Unit{ex}.% \EndIndex{Cmd}{edgesize}% @@ -1830,7 +1835,7 @@ How\important[i]{% }]{% Default settings for language-dependent terms using languages \Option{english} and \Option{ngerman}, as long as language selection - packages haven't been used% + packages have not been used% \label{tab:scrlttr2-experts.languageTerms}% }[l] \begin{tabular}[t]{lll} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2.tex index cabf94914ce..ab944d13090 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrlttr2.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrlttr2.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlttr2.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,12 +45,14 @@ % % ============================================================================ -\ProvidesFile{scrlttr2.tex}[2012/05/15 KOMA-Script guide (chapter: scrlttr2)] +\KOMAProvidesFile{scrlttr2.tex}% + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (chapter: scrlttr2)] \translator{Harald Bongartz\and Georg Grandke\and Raimund Kohl\and Jens-Uwe Morawski\and Stephan Hennig\and Gernot Hassenpflug\and Markus Kohm} -% Date of translated german file: < 2007-09-17 +% Date of translated german file: 2013/11/07 \chapter{The New Letter Class \Class{scrlttr2}} \labelbase{scrlttr2} @@ -175,6 +177,11 @@ of all variables is given in \autoref{tab:scrlttr2.variables}. commands for inserting the sender's logo % (\autoref{sec:scrlttr2.firstpage}, \autopageref{desc:scrlttr2.variable.fromlogo})}% + \ventry{frommobilephone}{% + \ChangedAt{v3.12}{\Class{scrlttr2}}% + sender's mobile telephone number % + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.frommobilephone})}% \ventry{fromname}{% complete name of sender % (\autoref{sec:scrlttr2.firstpage}, @@ -414,6 +421,12 @@ of this, definition of pseudo-lengths will be described in the expert part at new values is also a work for advanced users. So this will be described in the expert part too at \autopageref{desc:scrlttr2-experts.cmd.@setplength}. +Please note\textnote{Attention!}: Even though these pseudo-lengths are +internally implemented as macros, the commands for pseudo-length management +expect only the names of the pseudo-lengths not the macros representing the +pseudo-lengths. The names of pseudo-lengths are without backslash at the very +beginning similar to the names of \LaTeX{} counters and in opposite to macros +or \LaTeX{} lengths. \begin{Declaration} \Macro{useplength}\Parameter{name} @@ -471,7 +484,7 @@ of a \PName{pseudo-length} to the \PName{length}. \LoadCommon[scrlttr]{3} % \section{Page Layout} Normally it makes no sense to distinguish letters with single-side layout and -letters with double-side layout. Mostly letters won't be bound like +letters with double-side layout. Mostly letters are not bound like books. Therefor each page will be viewed on its own. This is also true if both sides of the paper sheet will be used for printing. Vertical adjustment is unusual at letters too. Nevertheless, if you need or want it, you may read the @@ -642,7 +655,7 @@ the standard letter class. \end{document} \end{lstcode} However, this would not result in any printable output. At least there - wouldn't be an addressee at the note paper sheet. The reason for this will + would not be an addressee at the note paper sheet. The reason for this will be explained at the description of command \Macro{opening} at \autopageref{desc:scrlttr2.cmd.opening}. \end{Example} @@ -922,125 +935,8 @@ and content of the variable % \EndIndex{}{font>size} - \LoadCommon[scrlttr]{5} % \section{Text Markup} -With command \Macro{usekomafont} the current font style may be changed into -the font style of the selected \PName{element}. - -A general example for the usage of \Macro{setkomafont} and \Macro{usekomafont} -may be found in \autoref{sec:maincls.textmarkup} at -\autopageref{desc:maincls.setkomafont.example}. - -\begin{desclist} - \desccaption{% - Alphabetical list of elements whose font can be changed in - \Class{scrlttr2} using the commands \Macro{setkomafont} and - \Macro{addtokomafont}\label{tab:scrlttr2.elementsWithoutText}% - }{% - Elements whose font can be changed (\emph{continuation})% - }% - \feentry{addressee}{name und address in address field % - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.option.addrfield})}% - \feentry{backaddress}{% - return address for a window envelope % - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.option.backaddress})}% - \feentry{descriptionlabel}{% - label, i.\,e., the optional argument of \Macro{item}, in a - \Environment{description} environment % - (\autoref{sec:scrlttr2.lists}, - \autopageref{desc:scrlttr2.env.description})}% - \feentry{foldmark}{% - foldmark on the letter page; intended for color settings % - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.option.foldmarks})}% - \feentry{footnote}{% - footnote text and marker % - (see \autoref{sec:scrlttr2.footnotes}, - \autopageref{desc:scrlttr2.cmd.footnote})}% - \feentry{footnotelabel}{% - mark of a footnote; used according to the element \FontElement{footnote} % - (see \autoref{sec:scrlttr2.footnotes}, - \autopageref{desc:scrlttr2.cmd.footnote})}% - \feentry{footnotereference}{% - footnote reference in the text % - (see \autoref{sec:scrlttr2.footnotes}, - \autopageref{desc:scrlttr2.cmd.footnote})}% - \feentry{footnoterule}{% - horizontal rule\ChangedAt{v3.07}{\Class{scrlttr2}} above the footnotes at - the end of the text area % - (see \autoref{sec:maincls.footnotes}, - \autopageref{desc:maincls.cmd.setfootnoterule})}% - \feentry{labelinglabel}{% - labels, i.\,e., the optional argument of \Macro{item} in the - \Environment{labeling} environment % - (see \autoref{sec:scrlttr2.lists}, - \autopageref{desc:scrlttr2.env.labeling})}% - \feentry{labelingseparator}{% - separator, i.\,e., the optional argument of the \Environment{labeling} - environment; used according to the element \FontElement{labelinglabel} % - (see \autoref{sec:scrlttr2.lists}, - \autopageref{desc:scrlttr2.env.labeling})}% - \feentry{pagefoot}{% - used after element \FontElement{pageheadfoot} for the page foot, that has - been defined with variable \Variable{nextfoot}\IndexVariable{nextfoot}, or - for the page foot of package \Package{scrpage2} % - (\autoref{cha:scrpage}, \autopageref{desc:scrpage.fontelement.pagefoot})}% - \feentry{pagehead}{% - another name for \FontElement{pageheadfoot}}% - \feentry{pageheadfoot}{% - the head of a page, but also the foot of a page at all page style, that - has been defined using \KOMAScript{} % - (see \autoref{sec:scrlttr2.pagestyle}, - \autopageref{desc:scrlttr2.fontelement.pageheadfoot})}% - \feentry{pagenumber}{% - page number in the header or footer % - (see \autoref{sec:scrlttr2.pagestyle}, - \autopageref{desc:scrlttr2.fontelement.pagenumber})}% - \feentry{pagination}{% - another name for \FontElement{pagenumber}}% - \feentry{refname}{% - description or title of the fields in the reference line % - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.yourref})}% - \feentry{refvalue}{% - content of the fields in the reference line % - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.yourref})}% - \feentry{specialmail}{% - mode of dispatch in the address field % - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.specialmail})}% - \feentry{subject}{% - subject in the opening of the letter % - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.subject})}% - \feentry{title}{% - title in the opening of the letter % - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.title})}% - \feentry{toaddress}{% - variation of the element \FontElement{addressee} for setting the addressee - address (less the name) in the address field % - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.toaddress})}% - \feentry{toname}{% - variation of the element \FontElement{addressee} for the name (only) of - the addressee in the address field % - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.toname})}% -\end{desclist} -% -\EndIndex{Cmd}{setkomafont}% -\EndIndex{Cmd}{addtokomafont}% -\EndIndex{Cmd}{usekomafont}% -% -\EndIndex{}{font}% -\EndIndex{}{text>markup} - - \section{Note Paper} \label{sec:scrlttr2.firstpage} \BeginIndex{}{note paper}% @@ -1136,7 +1032,7 @@ chosen for a letter. Default values are \PValue{true} and \PValue{TBMPL}. Assume that you would like to deactivate all folding marks except the punching mark. This you can accomplish with, for example: \begin{lstlisting} - \KOMAoption{foldmarks=blmt} + \KOMAoptions{foldmarks=blmt} \end{lstlisting} as long as the defaults have not been changed previously. If some changes might have been made before, a safer method should be used. This changes our @@ -1372,7 +1268,7 @@ information about colors.% \label{fig:scrlttr2.letter-10-11} \end{figure} In difference to this, the left letter has been set once again with the - standard letter head, that doesn't react on the additional option. + standard letter head, that does not react on the additional option. \end{Example} An\textnote{Attention!} important note concerns the sender's address: within @@ -1394,12 +1290,16 @@ signature (see variable \Variable{signature}, \begin{Declaration} + \KOption{symbolicnames}\PName{simple switch}\\ \KOption{fromphone}\PName{simple switch}\\ + \KOption{frommobilephone}\PName{simple switch}\\ \KOption{fromfax}\PName{simple switch}\\ \KOption{fromemail}\PName{simple switch}\\ \KOption{fromurl}\PName{simple switch}\\ \Macro{setkomavar}\PParameter{\Variable{fromphone}}% \OParameter{description}\Parameter{content}\\ + \Macro{setkomavar}\PParameter{\Variable{frommobilephone}}% + \OParameter{description}\Parameter{content}\\ \Macro{setkomavar}\PParameter{\Variable{fromfax}}% \OParameter{description}\Parameter{content}\\ \Macro{setkomavar}\PParameter{\Variable{fromemail}}% @@ -1408,6 +1308,8 @@ signature (see variable \Variable{signature}, \OParameter{description}\Parameter{content}\\ \Macro{setkomavar}\PParameter{\Variable{phoneseparator}}% \OParameter{description}\Parameter{content}\\ + \Macro{setkomavar}\PParameter{\Variable{mobilephoneseparator}}% + \OParameter{description}\Parameter{content}\\ \Macro{setkomavar}\PParameter{\Variable{faxseparator}}% \OParameter{description}\Parameter{content}\\ \Macro{setkomavar}\PParameter{\Variable{emailseparator}}% @@ -1415,30 +1317,49 @@ signature (see variable \Variable{signature}, \Macro{setkomavar}\PParameter{\Variable{urlseparator}}% \OParameter{description}\Parameter{content}% \end{Declaration}% +\BeginIndex{Option}{symbolicnames~=\PName{simple switch}}% \BeginIndex{Option}{fromphone~=\PName{simple switch}}% +\BeginIndex{Option}{frommobilephone~=\PName{simple switch}}% \BeginIndex{Option}{fromfax~=\PName{simple switch}}% \BeginIndex{Option}{fromemail~=\PName{simple switch}}% \BeginIndex{Option}{fromurl~=\PName{simple switch}}% \BeginIndex{Variable}{fromphone}% +\BeginIndex{Variable}{frommobilephone}% \BeginIndex{Variable}{fromfax}% \BeginIndex{Variable}{fromemail}% \BeginIndex{Variable}{fromurl}% \BeginIndex{Variable}{emailseparator}% \BeginIndex{Variable}{faxseparator}% \BeginIndex{Variable}{phoneseparator}% +\BeginIndex{Variable}{mobilephoneseparator}% \BeginIndex{Variable}{urlseparator}% -Whether or not a telephone number\Index{telephone}\Index{phone}, a fax -number\Index{fax}, an e-mail address\Index{e-mail}, or a sender's URL should -be set as part of the letterhead may be configured by the options -\Option{fromphone}, \Option{fromfax}, \Option{fromemail}, and -\Option{fromurl}. Any standard value for simple switches from -\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} may be -assigned to these options. Default is \PValue{false} for all of them. The -\PName{contents} depends on the corresponding variable. The default of the -\PName{description} or title of each variable may be found in -\autoref{tab:scrlttr2.fromTerm}. The separators, that will be inserted between -\PName{description} and \PName{content}, may be found in -\autoref{tab:scrlttr2.fromSeparator}. +Whether or not a telephone number\Index{telephone}\Index{phone}, a +mobile\ChangedAt{v3.12}{\Class{scrlttr2}} telephone number\Index{mobile + phone}\Index{cell phone}\Index{cellphone}, a fax number\Index{fax}, an +e-mail address\Index{e-mail}, or a sender's URL should be set as part of the +letterhead may be configured by the options \Option{fromphone}, +\Option{fromfax}, \Option{fromemail}, and \Option{fromurl}. Any standard value +for simple switches from \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch} may be assigned to these options. Default is +\PValue{false} for all of them. The \PName{contents} depends on the +corresponding variable. The default of the \PName{description} or title of +each variable may be found in \autoref{tab:scrlttr2.fromTerm}. The separators, +that will be inserted between \PName{description} and \PName{content}, may be +found in \autoref{tab:scrlttr2.fromSeparator}. + +You may\ChangedAt{v3.12}{\Class{scrlttr2}}\important{\Option{symbolicnames}} +change the defaults for the description of the separator variables at once +using option \Option{symbolicnames}. The option understands the values for +simple switches from \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch}. Switching on the option replaces the +descriptions from the language depending terms \Macro{emailname}, +\Macro{faxname}, \Macro{mobilephonename}, and \Macro{phonename} into symbols +of the package \Package{marvosym}\IndexPackage{marvosym}. Also the colon will +be removed from the content of the separator variables. And in this case the +description and the content of the URL separator will be +empty. Note\textnote{Attention!}, that you have to load package +\Package{marvosym} on your own, if you switch on \Option{symbolicnames} +first time after \Macro{begin}\PParameter{document}. \begin{table} \centering @@ -1451,6 +1372,10 @@ assigned to these options. Default is \PValue{false} for all of them. The \Macro{usekomavar}\PParameter{emailseparator}}% \ventry{fromfax}{\Macro{usekomavar*}\PParameter{faxseparator}% \Macro{usekomavar}\PParameter{faxseparator}}% + \ventry{frommobilephone}{% + \ChangedAt{v3.12}{\Class{scrlttr2}}% + \Macro{usekomavar*}\PParameter{mobilephoneseparator}% + \Macro{usekomavar}\PParameter{mobilephoneseparator}}% \ventry{fromname}{\Macro{headfromname}}% \ventry{fromphone}{\Macro{usekomavar*}\PParameter{phoneseparator}% \Macro{usekomavar}\PParameter{phoneseparator}}% @@ -1466,7 +1391,7 @@ assigned to these options. Default is \PValue{false} for all of them. The \setcapindent{0pt}% % \caption \begin{captionbeside}{Predefined description and content of the separators - at the letterhead} + at the letterhead without option \Option{symbolicnames}} [l] \begin{tabular}[t]{lll} \toprule @@ -1474,6 +1399,7 @@ assigned to these options. Default is \PValue{false} for all of them. The \midrule \Variable{emailseparator} & \Macro{emailname} & \texttt{:\~} \\ \Variable{faxseparator} & \Macro{faxname} & \texttt{:\~} \\ + \Variable{mobilephoneseparator} & \Macro{mobilephonename} & \Macro{usekomavaer}\PParameter{phoneseparator} \\ \Variable{phoneseparator} & \Macro{phonename} & \texttt{:\~} \\ \Variable{urlseparator} & \Macro{wwwname} & \texttt{:\~} \\ \bottomrule @@ -1533,17 +1459,21 @@ assigned to these options. Default is \PValue{false} for all of them. The \end{Example} % \EndIndex{Variable}{urlseparator}% +\EndIndex{Variable}{mobilephoneseparator}% \EndIndex{Variable}{phoneseparator}% \EndIndex{Variable}{faxseparator}% \EndIndex{Variable}{emailseparator}% \EndIndex{Variable}{fromurl} \EndIndex{Variable}{fromemail} \EndIndex{Variable}{fromfax} +\EndIndex{Variable}{frommobilephone}% \EndIndex{Variable}{fromphone}% \EndIndex{Option}{fromurl~=\PName{simple switch}}% \EndIndex{Option}{fromemail~=\PName{simple switch}}% \EndIndex{Option}{fromfax~=\PName{simple switch}}% +\EndIndex{Option}{frommobilephone~=\PName{simple switch}}% \EndIndex{Option}{fromphone~=\PName{simple switch}}% +\EndIndex{Option}{symbolicnames~=\PName{simple switch}}% \begin{Declaration} \KOption{fromlogo}\PName{simple switch}\\ @@ -1558,7 +1488,7 @@ logo\Index{Logo} at the letterhead. The option value may be any \PName{simple \autopageref{tab:truefalseswitch}. Default is \PValue{false}, that means no logo. The logo itself is defined by the \PName{content} of variable \Variable{fromlogo}. The \PName{description} of the logo is empty by default -and \KOMAScript{} won't use it anywhere at the predefined note papers (see +and \KOMAScript{} does not use it anywhere at the predefined note papers (see also \autoref{tab:scrlttr2.fromTerm}).% \begin{Example} Mr Public likes to use a letterhead with logo. He generated a graphics file @@ -1610,7 +1540,7 @@ construction as content of variable \Variable{firsthead}. Within or one underneath the other. An advanced user will thus be able to create a letterhead on his own. Of course the construct may and should use other variables with the help of -\Macro{usekomavar}. \KOMAScript{} doesn't use the +\Macro{usekomavar}. \KOMAScript{} does not use the \PName{description} of variable \Variable{firsthead}. \iffree{}{A detailed example for the definition of a letterhead will be shown in \autoref{cha:modernletters}.} @@ -1733,7 +1663,7 @@ will be printed. Option \Option{backaddress} defines whether a return address for window envelopes will be set. This option\important{\OptionValue{backaddress}{false}} can take the standard values for simple switches, as listed in \autoref{tab:truefalseswitch}, -\autopageref{tab:truefalseswitch}. These values don't change style of the +\autopageref{tab:truefalseswitch}. These values do not change style of the return address. On the other hand, additionally\ChangedAt{v2.96}{\Class{scrlttr2}} to switching on the return address, the style of the return address may be selected. Option value @@ -1748,7 +1678,7 @@ The return address itself is defined by the \PName{content} of variable and \Variable{toaddress} with redefinition of the double backslash to set the \PName{content} of variable \Variable{backaddressseparator}. The predefined separator \PName{content} is a comma followed by a non-breakable white -space. The \PName{description} of variable \Variable{backaddress} isn't used +space. The \PName{description} of variable \Variable{backaddress} is not used by \KOMAScript. The font style of the return address is configurable via element \FontElement{backaddress}\important{\FontElement{backaddress}}. Default for @@ -1813,7 +1743,7 @@ type\Index{mode of dispatch}\Index{dispatch type} can be output within the address field between the return address and the addressee address, This will be done only if variable \Variable{specialmail} is not empty and \OptionValue{priority}{manual}\ChangedAt{v3.03}{\Class{scrlttr2}} has been -selected, which is also the default. Class \Class{scrlttr2} itself doesn't use +selected, which is also the default. Class \Class{scrlttr2} itself does not use the \PName{description} of variable \Variable{specialmail}. The alignment is defined by the pseudo-lengths PLength{specialmailindent} and \PLength{specialmailrightindent} (siehe @@ -1910,7 +1840,7 @@ With\important[i]{\begin{tabular}[t]{@{}l@{}} \OptionValue{addrfield}{backgroundimage}\ChangedAt{v3.03}{\Class{scrlttr2}} or \OptionValue{addrfield}{image} a picture will be print inside the address field. The \PName{content} of variable \Variable{addresseeimage} will be used -for this. \KOMAScript{} doesn't use the \PName{description} of that +for this. \KOMAScript{} does not use the \PName{description} of that variable. Nothing else but the picture will be printed with option \OptionValue{addrfield}{image}. But with option \OptionValue{addrfield}{backgroundimage} the addressee's name and address from @@ -1994,7 +1924,7 @@ option are shown in \autoref{tab:scrlttr2.locfield}. Default is The contents of the sender's extension field is determined by the variable \Variable{location}. To set this variable's \PName{content}, it is permitted to use formatting commands like \Macro{raggedright}. \KOMAScript{} -doesn't use the \PName{description} of the variable. +does not use the \PName{description} of the variable. \begin{Example} Mr Public likes to show some additional information about his @@ -2048,12 +1978,14 @@ standard date presentation. \BeginIndex{Variable}{date}% The date in the selected presentation will become the \PName{content} of variable \Variable{date}. The selection of option \Option{numericaldate} -doesn't influence the date any longer, if the \PName{content} of this variable +does not influence the date any longer, if the \PName{content} of this variable will be changed by the user. Normally the date will be part of the reference -line. This is the case even if all other elements of the reference line will -be empty and therefore unused. For more information about the automatic -printing of the date may be found in following description of option -\Option{refline}.% +line. If all other elements of the reference line will be empty and therefore +unused a date line instead of a reference line will be printed. See the +description of variable \Variable{place} on +\autopageref{desc:scrlttr2.variable.placeseparator} for more information about +the date line. You should note, that you can change the automatic printing of +the date using option \Option{refline}, that will be described next. % \EndIndex{Variable}{date}% \EndIndex{Option}{numericaldate~=\PName{switch}}% @@ -2072,7 +2004,7 @@ be named \emph{reference line}\textnote{reference line} in this manual. With the \Class{scrlttr2} class, the header, footer, address, and sender attributes may extend beyond the normal type area to the left and to the -right. Option \Option{refline}{wide} defines that this should also apply to +right. Option \OptionValue{refline}{wide} defines that this should also apply to the reference fields line. Normally, the reference fields line contains at least the date, but it can hold additional data. Possible values for this option are shown in \autoref{tab:scrlttr2.refline}. Default is \PValue{narrow} @@ -2092,7 +2024,7 @@ and \PValue{dateright}\ChangedAt{v3.09}{\Class{scrlttr2}}.% \pventry{narrow}{The reference line will be restricted to type area.}% \pventry{nodate}{\ChangedAt{v3.09}{\Class{scrlttr2}}% - The date won't be placed automatically into the reference line.}% + The date is not placed automatically into the reference line.}% \pventry{wide}{The with of the reference line corresponds to address and sender's additional information.}% \end{desctabular} @@ -2202,6 +2134,21 @@ unset also. The predefined \PName{content} of \Variable{date} is \Macro{today}\IndexCmd{today} and depends on the setting of the option \Option{numericaldate} (see \autopageref{desc:scrlttr2.option.numericaldate}). +Since version~3.09\ChangedAt{v3.09}{\Class{scrlttr2}} place and date the +alignment of place and date is given by option \Option{refline}. The available +alignment values for this option are listed in \autoref{tab:scrlttr2.refline}. + +\BeginIndex{FontElement}{placeanddate}% +The\ChangedAt{v3.12}{\Class{scrlttr2}} font setting of place and date in the +date line are given by font +element\FontElement{placeanddate}\important[i]{\FontElement{placeanddate}} +instead of element \FontElement{refvalue}, which would be used for general +reference lines. You can change the empty default of the font element using +commands \Macro{setkomafont} and \Macro{addtokomafont} (see +\autoref{sec:scrlttr2.textmarkup}, +\autopageref{desc:scrlttr2.cmd.setkomafont}).% +\EndIndex{FontElement}{placeanddate}% + \begin{Example} Now Mr Public also sets the place:% \lstinputcode[xleftmargin=1em]{letter-20.tex}% @@ -2419,10 +2366,10 @@ the setting of the letter foot. The first page's footer is preset to empty. However\ChangedAt{v3.08}{\Class{scrlttr2}}, a new construction may be made at the \PName{content} of variable \Variable{firstfoot}. \KOMAScript{} -doesn't use the \PName{description} of the variable. For more information see +does not use the \PName{description} of the variable. For more information see the example following the next description. Only for compatibility reason the deprecated command \Macro{firstfoot}\IndexCmd[indexmain]{firstfoot} of -\Class{scrlttr2} before release~3.08 still exists. Nevertheless it shouldn't +\Class{scrlttr2} before release~3.08 still exists. Nevertheless it should not be used any longer. \begin{Declaration} @@ -2545,14 +2492,14 @@ head. Activation\important{\OptionValue{footsepline}{true}} of option \Option{footsepline} switches on a rule above the page foot. Deactivation of the options switches of the corresponding rules. -Obviously option \Option{headsepline} doesn't influence page styles +Obviously option \Option{headsepline} does not influence page styles \PValue{empty}\important[i]{\Pagestyle{empty}\\ \Pagestyle{plain}} and \PValue{plain} (see afterwards at this -section). These page styles explicitly don't use any page head. +section). These page styles explicitly do not use any page head. Typographically\important[i]{\Pagestyle{headings}\\ \Pagestyle{myheadings}} such a rule make a hard optical connection of head -or foot and the text area. This wouldn't mean, that the distance between head +or foot and the text area. This would not mean, that the distance between head and text or text and foot should be increased. Instead of this the head or foot should be seen as parts of the typing area, while calculation of margins and typing area. To achieve this \KOMAScript{} will pass option @@ -2761,12 +2708,12 @@ boxes side by side or one beneath the other by use of the \Macro{parbox} command (see \cite{latex:usrguide}). A more advanced user should have no problems creating letterheads of footers of his own. Within \PName{content} you can and should of course also make use of other variables by using -\Macro{usekomavar}. \KOMAScript{} doesn't use the \PName{description} of both +\Macro{usekomavar}. \KOMAScript{} does not use the \PName{description} of both variables. Only\textnote{Attention!} for compatibility reason the deprecated commands \Macro{nexthead}\IndexCmd[indexmain]{nexthead} and \Macro{nextfoot}\IndexCmd[indexmain]{nextfoot} of former \Class{scrlttr2} -releases before 3.08 are also implemented. Nevertheless, you shouldn't use +releases before 3.08 are also implemented. Nevertheless, you should not use those.% % \EndIndex{Variable}{nextfoot}% @@ -2798,12 +2745,12 @@ There are not math environments implemented at the \KOMAScript{} classes. Instead of this, the math features of the \LaTeX{} kernel have been supported. Furthermore\textnote{Attention!} regular math with numbered equations or formulas is very unusual at letters. Because of this -\Class{scrlttr2} doesn't actively support numbered equations. Therefore +\Class{scrlttr2} does not actively support numbered equations. Therefore options \Option{leqno} and \Option{fleqn}, that has been described for \Class{scrbook}, \Class{scrreprt}, and \Class{scrartcl} at \autoref{sec:maincls.math} are not available from \Class{scrlttr2}. -You won't find a description of the math environments of the \LaTeX{} kernel +You will not find a description of the math environments of the \LaTeX{} kernel here. If you want to use \Environment{displaymath}\IndexEnv{displaymath}, \Environment{equation}\IndexEnv{equation} and \Environment{eqnarray}\IndexEnv{eqnarray} you should read a short introduction @@ -2819,7 +2766,7 @@ recommended (see \cite{package:amsmath}).% \label{sec:scrlttr2.floats} Floating environments for tables or figures are very unusual in -letters. Therefore\textnote{Attention!} \Class{scrlttr2} doesn't provide +letters. Therefore\textnote{Attention!} \Class{scrlttr2} does not provide them. If someone nevertheless needs floating environments, then this is often points out a malpractice of the letter class. In such cases you may try to define the floating environments with help of packages like \Package{tocbasic}\important{\Package{tocbasic}} (siehe @@ -3000,13 +2947,13 @@ If\ChangedAt{v2.97}{\Class{scrlttr2}} an \File{lco}-file is loaded via \begin{Example} Since Mr~Public often writes letters with the same options and parameters, - he doesn't like to copy all these to each new letter. To simplify the effort + he does not like to copy all these to each new letter. To simplify the effort of writing a new letter, he therefore makes a \File{lco}-file:% \lstinputcode[xleftmargin=1em]{ich.lco}% With this the size of the previous letter decreases to: \lstinputcode[xleftmargin=1em]{letter-23.tex}% Nevertheless, as shown in \autoref{fig:scrlttr2.letter-23}, the result - doesn't change. + does not change. \begin{figure} \setcapindent{0pt}% \begin{captionbeside}[{Example: letter with extended sender, logo, @@ -3397,7 +3344,9 @@ current version of \Package{adrconv} supports the \Macro{addrentry} and %%% Local Variables: %%% mode: latex +%%% mode: flyspell %%% coding: us-ascii +%%% ispell-local-dictionary: "en_GB" %%% TeX-master: "../guide" %%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrpage2.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrpage2.tex index 603adeb934d..937acdec0b0 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrpage2.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrpage2.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrpage2.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrpage2.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,12 +45,14 @@ % % ============================================================================ -\ProvidesFile{scrpage2.tex}[2012/02/22 KOMA-Script guide (chapter:scrpage2)] +\KOMAProvidesFile{scrpage2.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (chapter:scrpage2)] \translator{Jens-Uwe Morawski\and Karl-Heinz Zimmer\and Christoph Bier\and Gernot Hassenpflug\and Markus Kohm} -% date of translated german file: 2012/02/22 +% date of translated german file: 2013/07/22 \chapter{Adapting Page Headers and Footers with \Package{scrpage2}} \labelbase{scrpage} @@ -97,7 +99,7 @@ documentation describes only \Package{scrpage2}. The package \end{Explain} -Package \Package{scrpage2} doesn't distinguish between page styles with +Package \Package{scrpage2} does not distinguish between page styles with automatic, running headings and page styles with manual headings. The way to deal with automatic and manual headings is independent from the page style and so the page style is independent from the choice of automatic or manual @@ -745,7 +747,7 @@ elements \FontElement{headtopline}\important[i]{\FontElement{headtopline}\\ \FontElement{footbotline}. These can then be extended via \Macro{addtokomafont}\IndexCmd{addtokomafont}. See \autoref{sec:maincls.textmarkup}, \autopageref{desc:maincls.cmd.setkomafont} -for details on the \Macro{setkomafont} and \Macro{addkomafont} commands. +for details on the \Macro{setkomafont} and \Macro{addtokomafont} commands. \EndIndex{FontElement}{footbottomline}% \EndIndex{FontElement}{footbotline}% \EndIndex{FontElement}{footsepline}% @@ -853,7 +855,7 @@ together with other package options in the next In opposite to the \KOMAScript{} classes, where the most options may be changed using \Macro{KOMAoptions} or \Macro{KOMAoption} also after loading the -class, package \Package{scrpage2} doesn't provide this feature\iffree{ +class, package \Package{scrpage2} does not provide this feature\iffree{ currently}{}. All options to \Package{scrpage2} have to be global options, i.\,e. be part of the optional argument of \Macro{documentclass}, or package option, i.\,e. be part of the optional argument of \Macro{usepackage}. @@ -867,7 +869,7 @@ package option, i.\,e. be part of the optional argument of \Macro{usepackage}. \BeginIndex{Option}{headinclude}\BeginIndex{Option}{footinclude}% \BeginIndex{Option}{headexclude}\BeginIndex{Option}{footexclude}% Since\textnote{Attention!} \KOMAScript~3\ChangedAt{v2.3}{\Package{scrpage2}} -this options shouldn't be passed to \Package{scrpage2} any longer using +this options should not be passed to \Package{scrpage2} any longer using \Macro{PassOptionsToPackage} or the optional argument of \Macro{usepackage}. Only for compatibility reason \Package{scrpage2} still declares them and pass them as \Option{headinclude}, diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/scrwfile.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/scrwfile.tex index baf1d38f565..9d69c9d2fc7 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/scrwfile.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/scrwfile.tex @@ -6,7 +6,7 @@ %% %% scrwfile.dtx (with options: `doc') %% -%% Copyright (c) 2010-2012 by Markus Kohm +%% Copyright (c) 2010-2013 by Markus Kohm %% %% This file was generated from file(s) of the KOMA-Script bundle. %% --------------------------------------------------------------- @@ -43,9 +43,9 @@ %% EVERYTHING MAY CHANGE IN FUTURE! %% THERE IS NO SUPPORT, IF YOU USE THIS PACKAGE! %% -%%% From File: scrwfile.dtx +%%% From File: $Id: scrwfile.dtx 1562 2013-12-19 07:51:16Z mjk $ \ProvidesFile{scrwfile.tex} - [2012/03/05 v0.1d-alpha LaTeX2e KOMA-Script package (write and clone files)] + [2013/08/05 v0.1f-alpha LaTeX2e KOMA-Script package (write and clone files)] \chapter[{Spare and Replace Files Using \Package{scrwfile}}] {Spare and Replace Files Using \Package{scrwfile}% } @@ -143,7 +143,7 @@ limited any longer. Sometimes it is useful to input a file not only once but several times. As \Macro{@starttoc} does not open files for writing any longer, this may be -done by simply using \Macro{\@starttoc} several times with the same +done by simply using \Macro{@starttoc} several times with the same extension. But sometimes you may have additional entries in only some of the content directories. Because of this, \Package{scrwfile} allows to copy all entries of a file to another file, too. We call this cloning. @@ -178,23 +178,53 @@ contents: \begin{lstcode} \usepackage{scrwfile} \TOCclone[Short \contentsname]{toc}{stoc} - \AtBeginDocument{% - % aux first opened at \begin{document}. So wait until this: - \addtocontents{toc}{% first toc entry: - \proctect\addcontentsline{stoc}{% write to Short Contents - \protect\tableofcontents% Contents - }% - }% +\end{lstcode} +This would create a new table of contents with the heading ^^c2^^bbShort +Contents^^c2^^ab. The new table of contents uses a helper file with extension +\File{stoc}. All entries to the helper file with extension \File{toc} will +also be copied to this new helper file. + +The new short table of contents should only have the chapter entries. This may +be done using: +\begin{lstcode} + \addtocontents{stoc}{\protect\value{tocdepth}=0} +\end{lstcode} +Normally you cannot write into a helper file before +\Macro{begin}\PParameter{document}. But using \Package{scrwfile} changes +this. So the code above will be successful after loading \Package{scrwfile}. + +To show the new short contents of helper file extension \File{stoc} we will +use +\begin{lstcode}[moretexcs={listofsttoc}] + \listofstoc +\end{lstcode} +somewhere after \Macro{begin}\PParameter{document}. + +If we also want an entry for the table of contents at the short contents, we +cannot use +\begin{lstcode} + \addtocontents{toc}{% write to the Contents + \protect\addcontentslinedefault{stoc}% write to Short Contents + {chapter}% a chapter entry with + {\contentsname}% the Contents' name + } +\end{lstcode} +because the \Macro{addcontentsline} command would be copied to \File{stoc} +too. So we cannot add the command to the \File{toc}-file. Package +\Package{tocbasic}\important{\Package{tocbasic}} may be used to solve this: +\csname phantomsection\endcsname\label{example:scrwfile.AfterStartingTOC} +\begin{lstcode} + \AfterStartingTOC[toc]{% + \addcontentslinedefault{stoc}{chapter} + {\protect\contentsname}% } - \begin{document} - \setcounter{tocdepth}{1}% show chapters only - \listofstoc% Write short table of contents - \setcounter{tocdepth}{6}% show all levels - \tableofcontents% Write table of contents \end{lstcode} -You need at least three \LaTeX{} runs to get a short table of contents and a -detailed table of contents. The detailed one produces an entry at the short -one but this entry will not be part of the detailed table of contents. +But this needs, that the file with extension \File{toc} is under control of +package \Package{tocbasic}, which is indeed the case within all \KOMAScript{} +classes. +See \autoref{sec:tocbasic.toc} on +\autopageref{desc:tocbasic.cmd.AfterStartingTOC} for more information about +\Macro{AfterStartingTOC}.% \end{Example} \EndIndex{Cmd}{TOCclone} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/tocbasic.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/tocbasic.tex index 0e84fc54c33..3e240f8f973 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/tocbasic.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/tocbasic.tex @@ -1,48 +1,59 @@ +\immediate\write17{^^J% ++----------------------------------------------------------------------^^J% +| WARNING (`tocbasic.tex'):^^J% ++----------------------------------------------------------------------^^J% +| YOU SHOULD NOTE, THAT THIS IS NOT AN OFFICIAL RELEASE!^^J% +| THIS VERSION IS INTENDED TO BE USED FOR TESTING ONLY!^^J% +| USAGE FOR PURPOSES OTHER THAN INTENDED IS DANGEROUS!^^J% +| DON'T EXPECT ANY SUPPORT FOR THIS VERSION!^^J% ++----------------------------------------------------------------------^^J% +} %% %% This is file `tocbasic.tex', -%% generated with the docstrip utility. +%% generated with the docstrip utility, extended by scrdocstrip. %% %% The original source files were: %% %% tocbasic.dtx (with options: `doc') %% -%% Copyright (c) 2007-2012 -%% Markus Kohm and any individual authors listed elsewhere in this file. +%% Copyright (c) 2008-2013 Markus Kohm [komascript at gmx info] %% %% This file was generated from file(s) of the KOMA-Script bundle. %% --------------------------------------------------------------- %% -%% This work may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License, version 1.3c of the license. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2005/12/01 or later and of this work. +%% It may be distributed under the conditions of the +%% LaTeX Project Public License in the version distributed together +%% with KOMA-Script, see file `lppl.txt' or `lppl-de.txt'. %% -%% This work has the LPPL maintenance status "author-maintained". +%% This file may only be distributed together with a copy of the +%% KOMA-Script bundle. You may however distribute the +%% KOMA-Script bundle without all such generated files. See also +%% `lppl.txt' or `lppl-de.txt' for additional information. %% -%% The Current Maintainer and author of this work is Markus Kohm. +%% The list of files belonging to KOMA-Script distribution is given in +%% the file `manifest.txt'. See also `lppl.txt' or `lppl-de.txt' for +%% additional information. %% -%% This file may only be distributed together with the files -%% `scrlogo.dtx' and `tocbasic.dtx'. You may however distribute the files -%% `scrlogo.dtx' and `tocbasic.dtx' without this file. -%% See also `tocbasic.dtx' for additional information. +%% If this file is a beta version, you may not be allowed to distribute +%% it. Look at the comments below to see if this is the case. %% -%% If this file is a beta version, you are not allowed to distribute it. +%% English and German manuals are part of KOMA-Script bundle. +%% ---------------------------------------------------------- %% -%% Currently there is only a short english manual at `tocbasic.dtx', that -%% should also be found as `tocbasic.pdf'. +%% See `README'. %% %% The KOMA-Script bundle (but maybe not this file) was based upon the -%% LaTeX2.09 Script family created by Frank Neukam 1993 and the LaTeX2e -%% standard classes created by The LaTeX3 Project 1994-1996. +%% LaTeX 2.09 Script family created by Frank Neukam 1993 and the LaTeX2e +%% standard classes created by The LaTeX3 Project 1994-1996. You may +%% find a complete unmodified copy of LaTeX2e at +%% . %% -%%% From File: tocbasic.dtx -\def\tocbasicversion{2012/04/04 v3.10b} -\ProvidesFile{tocbasic.tex} - [\tocbasicversion\space KOMA-Script package - (manual)% - ] +%%% From File: $Id: tocbasic.dtx 1533 2013-12-10 18:06:14Z mjk $ +\ProvidesFile{tocbasic.tex}[% + 2013/12/19 v3.12 KOMA-Script + package + (handling toc-files)% +] \translator{Markus Kohm} @@ -65,7 +76,7 @@ the list of figures and the list of tables and thereby allow other classes or packages some types of controll about these. For examples package \Package{tocbasic} delegates language control of all these tables and lists of contents to package \Package{babel}\IndexPackage{babel}%^^A -(see \cite{package:babel})%^^A +\ (see \cite{package:babel})%^^A . So automatic change of language will be provides inside all these tables and lists of contents. Using \Package{tocbasic} will exculpate authors of classes and packages from implementation of such @@ -333,37 +344,89 @@ Commands, that shouldn't be expanded while writing, should be prefixed by \EndIndex{Cmd}{addtoeachtocfile}% \begin{Declaration} - \Macro{addcontentslinetoeachtocfile}\OParameter{owner}\Parameter{level}% - \Parameter{contentsline} + \Macro{addxcontentsline}% + \Parameter{extension}\Parameter{level}\OParameter{number}%^^A + \Parameter{text} +\end{Declaration} +\BeginIndex{Cmd}{addxcontentsline}% +The command \Macro{addxcontentsline} +adds an entry of given \PName{level} to toc-file with \PName{extension}. If +the \Parameter{number} is empty or omitted the entry won't have a number for +the entry with the given \PName{text}. Entries without number may be left +aligned to the number of the numbered entries of the same \PName{level} or +indented like the text of the numbered entries of the same \PName{level}, +depending on the \PValue{numberline} feature. + +\begin{Example} + Maybe you are not using a \KOMAScript{} class but need a not numbered + chapter with entry to the table of contents. This may be done using +\begin{lstcode} + \cleardoublepage + \csname phantomsection\endcsname + \addxcontentsline{toc}{chapter} + {Chapters without Numbers} + \chapter*{Chapters without Numbers} + \markboth{Chapters without Numbers}{} +\end{lstcode} + As you can see, you simply have to replace usual \Macro{addcontentsline} by + \Macro{addxcontentsline} to support the \Package{tocbasic} feature + \PValue{numberline}. +\end{Example} + +Note, that \Macro{addxcontentsline} uses +\Macro{add\PName{level}\PName{extension}entry} if such a macro exists and +\Macro{tocbasic@addxcontentsline} otherwise. Therefore you cannot define +a macro \Macro{add\PName{level}\PName{extension}entry} using +\Macro{addxcontentsline} but \Macro{tocbasic@addxcontentsline}. + +It is recommended to use \Macro{addxcontentsline} instead of +\Macro{addcontentsline} whenever possible.% +\EndIndex{Cmd}{addxcontentsline} + +\begin{Declaration} + \Macro{addcontentslinetoeachtocfile}\OParameter{owner}\Parameter{level}%^^A + \Parameter{contentsline}\\ + \Macro{addxcontentslinetoeachtocfile}\OParameter{owner}%^^A + \Parameter{level}\OParameter{number}\Parameter{text} \end{Declaration} \BeginIndex{Cmd}{addcontentslinetoeachtocfile}% -This command +\BeginIndex{Cmd}{addxcontentslinetoeachtocfile}% +The first command is something like \Macro{addcontentsline} from \LaTeX{} kernel. In difference to that it writes the \PName{contentsline} not only into one file, but into all files of all known file extensions or of all known file extensions of a given owner. + +The Command \Macro{addxcontentslinetoeachtocfile}%^^A +\ is similar but uses +\Macro{addxcontentsline} instead of \Macro{addcontentsline} and +therefore supports \Package{tocbasic} feature \PValue{numberline}. \begin{Example} You are a class author and want to write the chapter entry not only to the table of contents toc-file but to all toc-files, while \texttt{\#1} is the title, that should be written to the files. \begin{lstcode} - \addcontentslinetoeachtocfile{chapter}{% - \protect\numberline{\thechapter}#1} + \addxcontentslinetoeachtocfile + {chapter}[\thechapter]{#1}% \end{lstcode} In this case the current chapter number should be expanded while writing into the file. So it isn't protected from expansion using \Macro{protect}. \end{Example} -While writing -\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} is the file -extension of the file into which \PName{contentsline} will be written. +While writing \Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} +is the file extension of the file into which \PName{contentsline} will be +written. + +It is recommended to use \Macro{addxcontentslinetoeachtocfile} instead +of \Macro{addcontentslinetoeachtocfile} whenever possible. +\EndIndex{Cmd}{addxcontentslinetoeachtocfile}% \EndIndex{Cmd}{addcontentslinetoeachtocfile}% \begin{Declaration} - \Macro{listoftoc}\OParameter{list of title}\Parameter{extension} + \Macro{listoftoc}\OParameter{list of title}\Parameter{extension}%^^A \\ - \Macro{listoftoc*}\Parameter{extension} + \Macro{listoftoc*}\Parameter{extension}%^^A \\ - \Macro{listofeachtoc}\OParameter{owner} + \Macro{listofeachtoc}\OParameter{owner}%^^A \\ \Macro{listof\PName{file-extension}name} \end{Declaration} @@ -603,6 +666,11 @@ features. \Package{tocbasic} does know following features: \OptionValue{listof}{numbered}\important{\OptionValue{listof}{numbered}}% \IndexOption{listof~=\PValue{numbered}} for all file extensions of the owner \PValue{float}. +\item[\texttt{numberline}] \leavevmode\ChangedAt{v3.12}{\Package{tocbasic}}% + redefines \Macro{nonumberline} to use \Macro{numberline}. With this the not + numbered entries generated by \KOMAScript{} or using \Macro{nonumberline} at + the very beginning of the last argument of \Macro{addcontentline} will also + be indented like numbered entries of the same type. \item[\texttt{onecolumn}] \leavevmode\ChangedAt{v3.01}{\Package{tocbasic}}% typesets the corresponding table of contents or list of something with internal one column mode of @@ -843,6 +911,18 @@ toc-entry, and running head, if it was defined. If it was not defined it will be defined and used in \Macro{tocbasic@listhead} automatically. \EndIndex{Cmd}{tocbasic@listhead@\PName{extension}}% +\begin{Declaration} + \Macro{tocbasic@addxcontentsline}% + \Parameter{extension}\Parameter{level}\Parameter{number}\Parameter{text} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@addxcontentsline}% +This command +uses \Macro{addcontentsline} to either create a numbered or not numbered text +entry to toc-file with given \PName{extension}. Note, that all parameters of +\Macro{tocbasic@addxcontentsline} are mandatory. But you may use an +empty \PName{number} argument, if you don't want a number. +\EndIndex{Cmd}{tocbasic@addxcontentsline} + \section{A Complete Example} \label{sec:tocbasic.example} @@ -1137,6 +1217,79 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. additionally, then a non-floating environment \Environment{remarkbox-} will be also defined. You may use \Macro{caption}\IndexCmd{caption} inside of that non-floating environment as usual for floating environments. + \hyperref[tab:tocbasic.comparison]{Figure~\ref*{tab:tocbasic.comparison}} + showes a comparison of the commands, counters and environments of the + example environment \Environment{remarkbox} and of the commands, counters + and environments for figures.% + \begin{table} + \centering + \caption{Comparison of example environment \Environment{remarkbox} + and environment \Environment{figure}} + \label{tab:tocbasic.comparison} + \begin{tabularx}{\textwidth}{ll>{\raggedright}p{6em}X} + \toprule + \Environment{remarkbox} & \Environment{figure} + & options of \Macro{DeclareNewTOC} & short description \\[1ex] + \midrule + \Environment{remarkbox} & \Environment{figure} + & \Option{type}, \Option{float} + & floating environments of the respective types\\[1ex] + \Environment{remarkbox*} & \Environment{figure*} + & \Option{type}, \Option{float} + & columns spanning floating environments of the respective types\\[1ex] + \Counter{remarkbox} & \Counter{figure} + & \Option{type}, \Option{float} + & counter used by \Macro{caption}\\[1ex] + \Macro{theremarkbox} & \Macro{thefigure} + & \Option{type}, \Option{float} + & output command to the respective counters\\[1ex] + \Macro{remarkboxformat} & \Macro{figureformat} + & \Option{type}, \Option{float} + & formating command to the respective counters used by + \Macro{caption}\\[1ex] + \Macro{remarkboxname} & \Macro{figurename} + & \Option{type}, \Option{float}, \Option{name} + & names used in the label of \Macro{caption}\\[1ex] + \Macro{listofremarkboxes} & \Macro{listoffigures} + & \Option{types}, \Option{float} + & command to show the list of the respective environments\\[1ex] + \Macro{listremarboxname} & \Macro{listfigurename} + & \Option{type}, \Option{float}, \Option{listname} + & heading text of the respective list \\[1ex] + \Macro{fps@remarkbox} & \Macro{fps@figure} + & \Option{type}, \Option{float}, \Option{floattype} + & numeric float type for order perputation\\[1ex] + \File{lor} & \File{lof} + & + & file extension of the helper file of the respective list \\ + \bottomrule + \end{tabularx} + \end{table} + + And now a possible usage of the example environment: +\begin{lstcode} + \begin{remarkbox} + \centering + Equal should be typeset equally + and with equal formatting. + \caption{First theorem of typography} + \label{rem:typo1} + \end{remarkbox} +\end{lstcode} + A segment of an example page with this environment could be: + \begin{center}\footnotesize + \begin{tabular} + {|!{\hspace{.1\linewidth}}p{.55\linewidth}!{\hspace{.1\linewidth}}|} + \\ + \centering + Equal should be typeset equally + and with equal formatting.\\[\abovecaptionskip] + {% + \usekomafont{caption}\footnotesize{\usekomafont{captionlabel}% + Remark 1: }First theorem of typography + }\\ + \end{tabular}% + \end{center}% \end{Example} \EndIndex{Cmd}{DeclareNewTOC}% \EndIndex{Package}{tocbasic}% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/typearea-experts.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/typearea-experts.tex index 15bfc38d8dd..7a2d45bc612 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/typearea-experts.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/typearea-experts.tex @@ -1,6 +1,6 @@ % ====================================================================== -% typearea.tex -% Copyright (c) Markus Kohm, 2001-2012 +% typearea-experts.tex +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -17,8 +17,8 @@ % % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- -% typearea.tex -% Copyright (c) Markus Kohm, 2001-2012 +% typearea-experts.tex +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,31 +45,33 @@ % % ====================================================================== -\ProvidesFile{typearea-experts.tex}[2012/04/17 KOMA-Script guide (chapter: typearea)] +\KOMAProvidesFile{typearea-experts.tex} + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (chapter: typearea)] \translator{Markus Kohm\and Gernot Hassenpflug} -% Date of the translated German file: 2012/04/17 +% Date of the translated German file: 2013/05/31 \chapter{Additional Information about package \Package{typearea}} \labelbase{typearea-experts} This chapter gives additional information about package \Package{typearea}. \iffree{Some parts of the chapter are subject to the - \KOMAScript{} book \cite{book:komascript} only. This shouldn't be a problem, - because the}{The} average user, who only want to use the package, won't need -the information, that is addressed to users with non-standard requirements or -who want to write their own packages using \Package{typearea}. Another part of -the information describes features of \Package{typearea} that exist only -because of compatibility to former releases of \KOMAScript{} or the standard -classes. The features, that exist only because of compatibility to former -\KOMAScript{} releases, are printed with a sans serif font. You shouldn't use -them any longer. + \KOMAScript{} book \cite{book:komascript} only. This should not be a + problem, because the}{The} average user, who only want to use the package, +does not need the information that is addressed to users with non-standard +requirements or who want to write their own packages using +\Package{typearea}. Another part of the information describes features of +\Package{typearea} that exist only because of compatibility to former releases +of \KOMAScript{} or the standard classes. The features, that exist only +because of compatibility to former \KOMAScript{} releases, are printed with a +sans serif font. You should not use them any longer. \section{Expert Commands} \label{sec:typearea-experts.experts} -This section describes commands, that aren't of interest for average +This section describes commands that are not of interest for average users. Nevertheless these commands provide additional features for experts. Because the information is addressed to experts it's condensed. @@ -96,7 +98,7 @@ after usage of \Macro{activateareas}. Moreover all changes of \Macro{storeareas}\Parameter{\Macro{command}} \end{Declaration} \BeginIndex{Cmd}{storearea}% -With \Macro{storeareas} a \PName{\Macro{command}} will be defined, that may be +With \Macro{storeareas} a \PName{\Macro{command}} will be defined that may be used to restore all current settings of typing area and margins. This provides to store the current settings, change them, do anything with valid changed settings and restore the previous settings afterwards. @@ -108,21 +110,25 @@ settings and restore the previous settings afterwards. \documentclass[pagesize]{scrartcl} \begin{document} - \rule{\textwidth}{\textheight} + \noindent\rule{\textwidth}{\textheight} \storeareas\MySavedValues \KOMAoptions{paper=landscape,DIV=current} - \rule{\textwidth}{\textheight} + \noindent\rule{\textwidth}{\textheight} \clearpage \MySavedValues - \rule{\textwidth}{\textheight} + \noindent\rule{\textwidth}{\textheight} \end{document} \end{lstcode} Command \Macro{clearpage}\textnote{Attention} before calling \Macro{MySavedValues} is important to restore the saved values at the next page. \end{Example} +In the example \Macro{noindent} has been used to avoid the paragraph indent of +the black boxes. Without these commands the boxes would not show the +typing area correctly. + Please note\textnote{Attention!} that neither \Macro{storeareas} nor the defined \PName{\Macro{command}} should be used inside a group. Internally \Macro{newcommand}\IndexCmd{newcommand*}\important{\Macro{newcommand*}} is @@ -143,13 +149,14 @@ These commands manage \emph{hooks}. \Macro{AfterCalculatingTypearea} and it's star version provide experts to execute \PName{instructions} every time \Package{typearea} has recalculated the typing area and margins either implicitly or because of an explicit usage of \Macro{typearea}. Similar -\Macro{AfterSettingArea} and it's star version provide execution of -\PName{instructions} every time \Macro{areaset} has been used. While normal -versions work globally the influence of the star versions is only -local. The \PName{instructions} will be executed instantly before execution of -\Macro{activateareas}.\iffree{}{ In \autoref{cha:modernletters} - \Macro{AfterCalculatingTypearea} will be used in letter class option - \File{asymTypB.lco} to change the division of the margins.}% +\Macro{AfterSettingArea}\ChangedAt{v3.11}{\Package{typearea}} and it's star +version provide execution of \PName{instructions} every time \Macro{areaset} +has been used. While normal versions work globally the influence of the star +versions is only local. The \PName{instructions} will be executed instantly +before execution of \Macro{activateareas}.\iffree{}{ In + \autoref{cha:modernletters} \Macro{AfterCalculatingTypearea} will be used in + letter class option \File{asymTypB.lco} to change the division of the + margins.}% % \EndIndex{Cmd}{AfterCalculatingTypearea} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex index db2bce403f2..a752145682b 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex @@ -1,6 +1,6 @@ % ====================================================================== % typearea.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % typearea.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,10 +45,12 @@ % % ====================================================================== -\ProvidesFile{typearea.tex}[2012/07/22 KOMA-Script guide (chapter: typearea)] +\KOMAProvidesFile{typearea.tex}% + [$Date: 2013-12-13 12:11:01 +0100 (Fr, 13. Dez 2013) $ + KOMA-Script guide (chapter: typearea)] \translator{Markus Kohm\and Gernot Hassenpflug\and Krickette Murabayashi} -% Date of translated german file: 2012/07/22 +% Date of translated german file: 2013/11/21 \chapter{Construction of the Page Layout with \Package{typearea}} \labelbase{typearea} @@ -355,7 +357,7 @@ user, but rather at authors of classes and packages. \cite{JTsch87}. A disadvantage of this late Middle Age method is that the width of - the text area is no longer dependent on the font. Thus, one doesn't + the text area is no longer dependent on the font. Thus, one does not 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''. @@ -465,24 +467,24 @@ construction method is found in larger the \PName{Factor}, the larger the text block and the smaller the margins. Any integer value greater than 4 is valid for \PName{Factor}. Please note that large values can lead to -unfulfillment of various minor conditions in the type-area, depending +unfulfillment of various minor conditions in the type area, depending on further options chosen. Thus, in an extreme case, the header may fall outside of the page. Users applying the option \KOption{DIV}\PName{Factor} are themselves responsible for fulfillment of the marginal conditions and setting of a typographically aesthetic line length. -In \autoref{tab:typearea.typearea} are found the type-area sizes for +In \autoref{tab:typearea.typearea} are found the type area sizes for several \Var{DIV} factors for an A4 page without binding correction. Here the minor conditions dependent on font size are not considered. \begin{table} \centering - \caption{Type-area dimensions dependent on \Var{DIV} for A4} + \caption{Type area dimensions dependent on \Var{DIV} for A4} \begin{tabular}{ccccc} \toprule & - \multicolumn{2}{c}{Type-area} & \multicolumn{2}{c}{Margins}\\ + \multicolumn{2}{c}{Type area} & \multicolumn{2}{c}{Margins}\\ %\raisebox{1.5ex}[0pt]{ \Var{DIV} %} @@ -658,7 +660,7 @@ class is used together with a font package. With \KOption{DIV}\PName{current}\ChangedAt{v3.00}{\Package{typearea}} a renewed calculation of text block and margin is requested, in which the currently set \Var{DIV} will be used. This is less of interest for -renewed type-area calculations after loading a different font; it is +renewed type area calculations after loading a different font; it is rather more useful for determining, for example, after changing the leading, while keeping \Var{DIV} the same, that the marginal condition is fulfilled that \Length{textheight} less @@ -670,7 +672,7 @@ exactly the same setting is used as in the last calculation. \begin{Example} Let us take up the previous example again, in which a good line - length is required for a type-area using the Bookman font. At the + length is required for a type area using the Bookman font. At the same time, a {\KOMAScript} class is to be used. This is easily possible using the symbolic value \PValue{last} and the command \Macro{KOMAoptions}: @@ -697,25 +699,25 @@ can also lead to \LaTeX{} loading a different font. \begin{desctabular} \pventry{areaset}{Recalculate page layout.\IndexOption{DIV~=areaset}}% - \pventry{calc}{Recalculate type-area including choice of + \pventry{calc}{Recalculate type area including choice of appropriate \Var{DIV} value.\IndexOption{DIV~=calc}}% - \pventry{classic}{Recalculate type-area using Middle Age book + \pventry{classic}{Recalculate type area using Middle Age book design canon (circle-based calculation).\IndexOption{DIV~=classic}}% - \pventry{current}{Recalculate type-area using current \Var{DIV} + \pventry{current}{Recalculate type area using current \Var{DIV} value.\IndexOption{DIV~=current}}% - \pventry{default}{Recalculate type-area using the standard value + \pventry{default}{Recalculate type area using the standard value for the current page format and current font size. If no standard value exists, \PValue{calc} is used.\IndexOption{DIV~=default}}% - \pventry{last}{Recalculate type-area using the same \PName{DIV} + \pventry{last}{Recalculate type area using the same \PName{DIV} argument as was used in the last call.\IndexOption{DIV~=last}}% \end{desctabular} \end{table} -Often the renewed type-area calculation is required in combination +Often the renewed type area calculation is required in combination with a change in the line spacing -(\emph{leading})\Index{leading}. Since the type-area should be +(\emph{leading})\Index{leading}. Since the type area should be calculated such that an integer number of lines fit in the text block, a change in the leading normally requires a recalculation of the page layout. @@ -733,7 +735,7 @@ layout. \KOMAoptions{DIV=last} \end{lstcode}\IndexCmd{linespread} Since \Package{typearea} always executes the command -\Macro{normalsize} itself upon calculation of a new type-area, it is +\Macro{normalsize} itself upon calculation of a new type area, it is not necessary to activate the chosen leading with \Macro{selectfont} after \Macro{linespread}, since this will be used already in the recalculation. @@ -755,21 +757,26 @@ page should be reset to the normal value. A complete example would be: \fi \begin{lstcode} - \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt} + \documentclass[10pt,twoside,BCOR=12mm,DIV=calc] + {scrreprt} \usepackage{setspace} \onehalfspacing + \AfterTOCHead{\singlespacing} \KOMAoptions{DIV=last} \begin{document} \title{Title} \author{Markus Kohm} \begin{spacing}{1} \maketitle - \tableofcontents \end{spacing} + \tableofcontents \chapter{Ok} \end{document} \end{lstcode} - See further also the notes in \autoref{sec:typearea.tips}. + See further also the notes in \autoref{sec:typearea.tips}. The command + \Macro{AfterTOCHead}\IndexCmd{AfterTOCHead} will be described in + \autoref{cha:tocbasic} of \autoref{part:forExoerts} on + \autopageref{desc:tocbasic.cmd.AfterTOCHead}. \end{Example} Please note that when using this option with one of the {\KOMAScript} @@ -813,7 +820,7 @@ margins are automatically recalculated anew.% \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} \label{tab:symbolicBCOR} \begin{desctabular} - \pventry{current}{Recalculate type-area with the currently valid + \pventry{current}{Recalculate type area with the currently valid \Var{BCOR} value.\IndexOption{BCOR~=current}} \end{desctabular} \end{table} @@ -828,7 +835,7 @@ change to \PName{BCOR}. \begin{Explain} The command \Macro{typearea} is currently defined so as to make it - possible to change the type-area anywhere within a + possible to change the type area anywhere within a document. Several assumptions about the structure of the {\LaTeX} kernel are however made and internal definitions and sizes of the kernel changed. There is a definite possibility, but no guarantee, @@ -838,7 +845,7 @@ change to \PName{BCOR}. Since \Macro{typearea}\POParameter{current}\PParameter{last} or \Macro{KOMAoptions}\PParameter{DIV=last} are often needed for -recalculation of the type-area, there exists specially the +recalculation of the type area, there exists specially the abbreviated command \Macro{recalctypearea}\ChangedAt{v3.00}{\Package{typearea}}. @@ -882,38 +889,42 @@ typesetting is carried out. Deactivation of the option leads to single-sided typesetting. \begin{table} - \begin{minipage}{\textwidth} \centering \caption{Standard values for simple switches in \KOMAScript} \begin{tabular}{ll} \toprule Value & Description \\ \midrule - \PValue{true}\footnote{This value will be used also, if you use the option - without assigning any value.} & activates the option \\ + \PValue{true} & activates the option \\ \PValue{on} & activates the option \\ - \PValue{yes} & activates the option \\ + \PValue{yes} & activates the option \\ \PValue{false}& deactivates the option \\ \PValue{off} & deactivates the option \\ - \PValue{no} & deactivates the option \\ + \PValue{no} & deactivates the option \\ \bottomrule \end{tabular} \label{tab:truefalseswitch} - \end{minipage} \end{table} Apart from the values in \autoref{tab:truefalseswitch} the value -\PValue{semi}\ChangedAt{v3.00}{\Package{typearea}} can also be -given. The value \PValue{semi} results in a double-sided typesetting -with single-sided margins and single-sided, i.\ e., not alternating, -margin notes. +\PValue{semi}\ChangedAt{v3.00}{\Package{typearea}} can also be given. The +value \PValue{semi} results in a double-sided typesetting with single-sided +margins and single-sided, i.\ e., not alternating, margin +notes. Nevertheless\ChangedAt{v3.12}{\Package{typearea}}, since \KOMAScript{} +version 3.12 binding corrections (see \Option{BCOR}, +\autopageref{desc:typearea.option.BCOR}) will be part of the left margin on +odd pages but part of the right margin on even pages. But if you use +compatibility with prior versions of \KOMAScript (see +\autoref{sec:typearea.compatibilityOptions}, +\autopageref{sec:typearea.compatibilityOptions}), binding correction will be +part of the left margin on both pages while using \OptionValue{twoside}{semi}. The option can also be passed as class option in \Macro{documentclass}, as package option to \Macro{usepackage}, or even after loading of the \Package{typearea} package with the use of \Macro{KOMAoptions} or \Macro{KOMAoption}. Use of the option after loading the \Package{typearea} package results automatically in -recalculation of the type-area using \Macro{recalctypearea} (see +recalculation of the type area using \Macro{recalctypearea} (see \autopageref{desc:typearea.cmd.recalctypearea}). If double-sided typesetting was active before the option was set, then before the recalculation a page break is made to the next odd page.% @@ -925,11 +936,11 @@ recalculation a page break is made to the next odd page.% \begin{Declaration} \KOption{twocolumn}\PName{simple switch} \end{Declaration} -For the calculation of a good type-area with the help of +For the calculation of a good type area with the help of \OptionValue{DIV}{calc} it is useful to know in advance if the document is to be typeset one-column or two-column. Since the observations about line length in \autoref{sec:typearea.basics} then -apply to each column, the width of a type-area in a two-column +apply to each column, the width of a type area in a two-column document can be up to double that in a one-column document. To implement this difference, the \Package{typearea} package must be @@ -945,7 +956,7 @@ The option can also be passed as class option in even after loading of the \Package{typearea} package with the use of \Macro{KOMAoptions} or \Macro{KOMAoption}. Use of the option after loading the \Package{typearea} package results automatically in -recalculation of the type-area using \Macro{recalctypearea} (see +recalculation of the type area using \Macro{recalctypearea} (see \autopageref{desc:typearea.cmd.recalctypearea}).% % \EndIndex{Option}{twocolumn~=\PName{simple switch}} @@ -958,8 +969,8 @@ recalculation of the type-area using \Macro{recalctypearea} (see \KOption{footinclude}\PName{simple switch} \end{Declaration}% \begin{Explain}% - So far we have discussed how the type-area is - calculated\Index{type-area} and the relationship of the + So far we have discussed how the type area is + calculated\Index{type area} and the relationship of the margins\Index{margins} to one another and between margins and text block. However, one important question has not been answered: What constitutes the margins? @@ -1039,9 +1050,9 @@ Please note that when using these options with one of the either as a class option, or passed via \Macro{KOMAoptions} or \Macro{KOMAoption} after loading the class. Changing of these options after loading the \Package{typearea} package does not result in an -automatic recalculation of the type-area. Instead, the changes only -take effect at the next recalculation of the type-area. For -recalculation of the type-area, refer to the \Option{DIV} option with +automatic recalculation of the type area. Instead, the changes only +take effect at the next recalculation of the type area. For +recalculation of the type area, refer to the \Option{DIV} option with the values \PValue{last} or \PValue{current} (see \autopageref{desc:typearea.option.DIV.last}) or the \Macro{recalctypearea} command (see @@ -1083,7 +1094,7 @@ double-sided page layout has been chosen. The option 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 set up. The + \Length{marginparwidth} after the type area has been set up. The length can be easily enlarged with the command \Macro{addtolength}. How much the length has to be enlarged depends on the special situation and it requires some flair. This is another reason the @@ -1098,7 +1109,7 @@ double-sided page layout has been chosen. The option Currently there is no option to enlarge the margin by a given amount. The only solution is to either not use the option \Option{mpinclude} or to set \Option{mpinclude} to \PValue{false}, - and after the type-area has been calculated, one reduces the + and 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 cannot be combined with automatic calculation of the @@ -1113,9 +1124,9 @@ classes as in the example above, it must be used either as a class option, or passed via \Macro{KOMAoptions} or \Macro{KOMAoption} after loading the class. Changing of this option after loading the \Package{typearea} package does not result in an automatic -recalculation of the type-area. Instead, the changes only take effect -at the next recalculation of the type-area. For recalculation of the -type-area, refer to the \Option{DIV} option with the values +recalculation of the type area. Instead, the changes only take effect +at the next recalculation of the type area. For recalculation of the +type area, refer to the \Option{DIV} option with the values \PValue{last} or \PValue{current} (see \autopageref{desc:typearea.option.DIV.last}) or the \Macro{recalctypearea} command (see @@ -1130,7 +1141,7 @@ type-area, refer to the \Option{DIV} option with the values \KOption{headlines}\PName{number of lines}\\ \KOption{headheight}\PName{height} \end{Declaration}% -We have seen how to calculate the type-area using the +We have seen how to calculate the type area using the \Package{typearea} package and how to specify whether header and footer are part of the text or the margins. However, in particular for the header, we still have to specify the height. This is achieved with @@ -1149,7 +1160,7 @@ its default value and adapt it only in special cases. Assume that you want to use a header with two lines. Normally this would result in an ``\texttt{overfull} \Macro{vbox}'' warning for each page. To prevent this from happening, the \Package{typearea} package is told to - calculate an appropriate type-area: + calculate an appropriate type area: \begin{lstcode} \documentclass[a4paper]{article} \usepackage[headlines=2.1]{typearea} @@ -1159,8 +1170,8 @@ directly as a class option: \begin{lstcode} \documentclass[a4paper,headlines=2.1]{scrartcl} \end{lstcode} -Commands that can be used to define the contents of a header with two -lines are described in \autoref{cha:scrpage}. +Commands that can be used to define the contents of a header with two lines +are described in \autoref{cha:scrpage} and \autoref{cha:scrlayer-scrpage}. \end{Example} In some cases it is useful to be able to specify the header height not @@ -1169,7 +1180,7 @@ with the aid of the alternative option \Option{headheight}. For \PName{height} any lengths and sizes that \LaTeX{} understands are valid. It should be noted though that when using a \LaTeX{} length such as \Length{baselineskip} its value at the time of the calculation -of the type-area and margins, not at the time of setting of the +of the type area and margins, not at the time of setting of the option, is decisive. Please note that when using these options with one of the @@ -1177,9 +1188,9 @@ Please note that when using these options with one of the either as a class option, or passed via \Macro{KOMAoptions} or \Macro{KOMAoption} after loading the class. Changing of these options after loading the \Package{typearea} package does not result in an -automatic recalculation of the type-area. Instead, the changes only -take effect at the next recalculation of the type-area. For -recalculation of the type-area, refer to the \Option{DIV} option with +automatic recalculation of the type area. Instead, the changes only +take effect at the next recalculation of the type area. For +recalculation of the type area, refer to the \Option{DIV} option with the values \PValue{last} or \PValue{current} (see \autopageref{desc:typearea.option.DIV.last}) or the \Macro{recalctypearea} command (see @@ -1188,13 +1199,87 @@ the values \PValue{last} or \PValue{current} (see \EndIndex{Option}{headheight~=\PName{height}}% \EndIndex{Option}{headlines~=\PName{number}} +\begin{Declaration} + \KOption{footlines}\PName{number}\\ + \KOption{footheight}\PName{height} +\end{Declaration} +\BeginIndex{Option}{footlines~=\PName{number}}% +\BeginIndex{Option}{footheight~=\PName{height}}% +As\ChangedAt{v3.12}{\Package{typearea}} well as we needed a height value for +the head, we need a height value for the page footer. But in difference to the +height of the head, \LaTeX itself do not provide a length for the height of +the page footer. So \Package{typearea} defines the new length +\Length{footheight}\IndexLength[indexmain]{footheight}, if it does not +exist. Wether or not this length will be used by classes or packages depends +on the classes and packages, that will be used. The \KOMAScript{} package +\Package{scrlayer-scrpage} incorporates \Length{footheight} and actively +cooperates with \Package{typearea}. The \KOMAScript{} classes do not recognize +\Length{footheight}, because without any package assistance they provide only +page styles with single-line page footers. + +You can use \Option{footlines} to setup the \PName{number} of lines in the +page footer, similar to \Option{headlines} for the number of lines in the page +header. By default \Package{typearea} uses 1.25 footlines. This is a +compromise, large enough for overlining or underlining footers and small +enough that the relative weight of the bottom margin is not affected too mich +when the footer is neither over- nor underlined. Thus in most cases you may +leave \PName{footlines} at its default value and adapt it only in special +cases. + +\begin{Example} + Assume a two-lined copyright note should be placed in the page + footer. Indeed, \LaTeX{} itself does not test, whether or not the footer has + room enough for that, exceeding of the available height would probably could + result in unbalanced margins. Moreover, for example package + \Package{scrlayer-scrpage}, that may be used to define such a page footer, + would definitely do such a test and would notify a recognised oversize. So + it makes sense, to declare the needed footheight already for the calculation + of the text area and the margins: +\begin{lstcode} + \documentclass[a4paper]{article} + \usepackage[footlines=2.1]{typearea} +\end{lstcode} + Again, if you use a \KOMAScript{} class, it is recommended to pass this + option directly a a class option: +\begin{lstcode} + \documentclass[footlines=2.1]{scrartcl} +\end{lstcode} + Commands that can be used to define the contents of a footer with two lines + are described in \autoref{cha:scrlayer-scrpage}. +\end{Example} + +In some cases it is useful to be able to specify the footer height not +in lines but directly as a length measurement. This is accomplished +with the aid of the alternative option \Option{footheight}. For +\PName{height} any lengths and sizes that \LaTeX{} understands are +valid. It should be noted though that when using a \LaTeX{} length +such as \Length{baselineskip} its value at the time of the calculation +of the type area and margins, not at the time of setting of the +option, is decisive. + +Please note that when using these options with one of the +{\KOMAScript} classes as in the example above, they must be used +either as a class option, or passed via \Macro{KOMAoptions} or +\Macro{KOMAoption} after loading the class. Changing of these options +after loading the \Package{typearea} package does not result in an +automatic recalculation of the type area. Instead, the changes only +take effect at the next recalculation of the type area. For +recalculation of the type area, refer to the \Option{DIV} option with +the values \PValue{last} or \PValue{current} (see +\autopageref{desc:typearea.option.DIV.last}) or the +\Macro{recalctypearea} command (see +\autopageref{desc:typearea.cmd.recalctypearea}).% +\EndIndex{Option}{footheight~=\PName{height}}% +\EndIndex{Option}{footlines~=\PName{number}}% + + \BeginIndex{Cmd}{areaset}% \begin{Declaration} \Macro{areaset}\OParameter{BCOR}\Parameter{Width}\Parameter{Height} \end{Declaration}% So far we have seen how a good or even very good -type-area\Index{type-area} is calculated and how the +type area\Index{type area} 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 some @@ -1230,7 +1315,7 @@ text line is \Macro{topskip} below the top margin of the type area, as long as the height of the topmost line is less than \Macro{topskip}. Thus, the uppermost line does not require any height. The descenders of characters on the lowermost line, on the -other hand, hang below the dimensions of the type-area. +other hand, hang below the dimensions of the type area. \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 @@ -1248,7 +1333,7 @@ other hand, hang below the dimensions of the type-area. \OptionValue{DIV}{areaset} \end{Declaration}% In\ChangedAt{v3.00}{\Package{typearea}} rare cases it is useful to be -able to reconstruct the current type-area anew. This is possible via +able to reconstruct the current type area anew. This is possible via the option \OptionValue{DIV}{areaset}, where \Macro{KOMAoptions}\PParameter{DIV=areaset} corresponds to the \begin{lstcode}[belowskip=\dp\strutbox] @@ -1356,8 +1441,8 @@ classes, it must be used either as a class option, or passed via \Macro{KOMAoptions} or \Macro{KOMAoption} after loading the class. Changing of this option after loading the \Package{typearea} package does not result in an automatic recalculation of the -type-area. Instead, the changes only take effect at the next -recalculation of the type-area. For recalculation of the type-area, +type area. Instead, the changes only take effect at the next +recalculation of the type area. For recalculation of the type area, refer to the \Option{DIV} option with the values \PValue{last} or \PValue{current} (see \autopageref{desc:typearea.option.DIV.last}) or the \Macro{recalctypearea} command (see @@ -1375,7 +1460,7 @@ the \Macro{recalctypearea} command (see The above-mentioned mechanisms for choice of paper format only affect the output insofar as internal {\LaTeX} lengths are set. The \Package{typearea} package then uses them in the division of the - page into type-area and margins. + page into type area and margins. The specification of the DVI formats\Index{DVI}, however, does not include any indications of paper format. If printing is done directly from DVI format to a low-level @@ -1421,7 +1506,7 @@ at \autoref{tab:typearea.outputdriver}. The default is \Macro{mediaheight}\IndexLength{mediaheight} are defined, they will be set additionally.\IndexOption{pagesize~=\PValue{automedia}}}% \entry{\PValue{false}, \PValue{no}, \PValue{off}}{% - Doesn't set any output driver and doesn't send page size information to + Does not set any output driver and does not send page size information to the output driver.\IndexOption{pagesize~=\PValue{false}}}% \pventry{dvipdfmx}{\ChangedAt{v3.05a}{\Package{typearea}}Writes paper size into DVI files using @@ -1516,7 +1601,7 @@ not as a fixed, but as an average or maximal value.% As executed, record regulations are usually intended to obtain a usable result even if the author does not know what needs to be considered. \emph{Usable} frequently means readable and correctable. In -the author's opinion the type-area of a text set with {\LaTeX} and the +the author's opinion the type area of a text set with {\LaTeX} and the \Package{typearea} package meets these criteria well right from the start. Thus if one is confronted with regulations which deviate obviously substantially from it, then the author recommends submitting @@ -1527,7 +1612,7 @@ modification of option \Option{DIV}. The author advises against the use of \Macro{areaset} for this purpose however. In the worst case one may make use of the geometry package (see \cite{package:geometry}), which is not part of \KOMAScript, or change -the type-area parameters of \LaTeX. One may find the values +the type area parameters of \LaTeX. One may find the values determined by \Package{typearea} in the \File{log} file of one's document. Thus moderate adjustments should be possible. However, one should make absolutely sure that the proportions of the text area @@ -1542,7 +1627,7 @@ too frequently, it has been obsolete since the introduction of \Macro{linespread}. The author recommends the package \Package{setspace}\IndexPackage{setspace} (see \cite{package:setspace}), which is not part of \KOMAScript. Also one -should let \Package{typearea} recalculate a new type-area after the +should let \Package{typearea} recalculate a new type area after the conversion of the line spacing. However, one should switch back to the normal line spacing for the title, preferably also for the table contents and various listings\,---\,as well as the bibliography and @@ -1557,7 +1642,7 @@ respective document. Thus one can select a smaller value easily after the first {\LaTeX} run. The question is not infrequently put to the author, why he spends an -entire chapter discussing type-area calculations, when it would be +entire chapter discussing type area calculations, when it would be very much simpler to merely give the world a package with which anyone can adjust the margins like in a word processor. Often it is added that such a package would in any case be the better solution, since diff --git a/Master/texmf-dist/source/latex/koma-script/doc/guide.bib b/Master/texmf-dist/source/latex/koma-script/doc/guide.bib index 8bc465fd7b7..1a9b3ea8bd1 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/guide.bib +++ b/Master/texmf-dist/source/latex/koma-script/doc/guide.bib @@ -1,6 +1,6 @@ % ====================================================================== % guide.bib -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % guide.bib -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -80,12 +80,12 @@ author = {Kohm, Markus and Morawski, Jens-Uwe}, title = {{\KOMAScript}}, subtitle= {Eine Sammlung von Klassen und Paketen für {\LaTeXe}}, - year = 2008, - edition = 3, + year = 2012, + edition = 4, publisher={Lehmanns Media}, address = {Berlin}, series = {Edition DANTE}, - isbn = {978-3-86541-291-1} + isbn = {978-3-86541-459-5} } @Book{ DUDEN, @@ -172,6 +172,15 @@ address = {Berlin} } +@Manual{ manual:eTeX, + language = {english}, + author = {The {\NTS} Team}, + title = {The {\eTeX} manual}, + year = {1998}, + month = feb, + url = {CTAN://systems/e-tex/v2/doc/etex_man.pdf} +} + @Manual{ latex:source2e, language = {english}, author = {Johannes Braams and David Carlisle and Alan Jeffrey and Leslie Lamport and Frank Mittelbach and Chris Rowley and Rainer Schöpf}, @@ -201,11 +210,11 @@ @Manual{ l2kurz, language = {ngerman}, - author = {Walter Schmidt and Jörg Knappen and Hubert Partl and Irene -Hyna}, + author = {Marco Daniel and Patrick Gundlach and Walter Schmidt and Jörg Knappen and Hubert Partl and Irene Hyna}, title = {{\LaTeXe}-Kurzbeschreibung}, - year = 1999, - month = apr, + year = 2012, + month = jul, + version = {3.0}, url = {CTAN://info/lshort/german/} } @@ -214,10 +223,10 @@ Hyna}, author = {Tobias Oetker and Hubert Partl and Irene Hyna and Elisabeth Schlegl}, title = {The Not So Short Introduction to {\LaTeXe}}, - year = 1999, + year = 2011, month = apr, - version = {3.7}, - url = {CTAN://info/lshort/} + version = {5.01}, + url = {CTAN://info/lshort/english} } @Book{ latexbook, diff --git a/Master/texmf-dist/source/latex/koma-script/doc/guide.tex b/Master/texmf-dist/source/latex/koma-script/doc/guide.tex index 6fc6a8c55dd..41ba9402133 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/guide.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/guide.tex @@ -45,7 +45,7 @@ % % ====================================================================== -\ProvidesFile{guide.tex}[2012/02/22 KOMA-Script guide main file] +\ProvidesFile{guide.tex}[2013/10/14 KOMA-Script guide main file] \documentclass[\languagename]{scrguide} @@ -95,6 +95,7 @@ \include{scrbookreportarticle} \include{scrlttr2} \include{scrpage2} +\include{scrlayer-scrpage} \include{scrdatetime} \include{scraddr} \include{adrconvnote} @@ -106,6 +107,9 @@ \include{scrwfile} \include{tocbasic} \include{scrhack} +\include{scrlayer} +\include{scrlayer-scrpage-experts} +\include{scrlayer-notecolumn} \include{typearea-experts} \include{scrbookreportarticle-experts} \include{scrlttr2-experts} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-0.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-0.tex index 8954468a96f..1838631a98a 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-0.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-0.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-0.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-0.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-0.tex}[2011/08/26 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-0.tex} + [$Date: 2013-12-12 12:01:33 +0100 (Do, 12. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \makeatletter \@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% @@ -78,13 +80,26 @@ neben % "~Klassen }% \IfCommon{scrjura}{\Package{scrjura} auch andere \KOMAScript-Pakete und "~Klassen }% -betrifft. Damit die Anwender alle Informationen zu einem Paket oder einer -Klasse im jeweiligen Kapitel finden, ist dieser Abschnitt nahezu gleichlautend -in mehreren Kapiteln zu finden. Anwender, die nicht nur an der Anleitung zu -einem Paket oder einer Klasse interessiert sind, sondern sich einen -Gesamtüberblick über \KOMAScript{} verschaffen wollen, brauchen diesen -Abschnitt nur in einem der Kapitel zu lesen und können ihn beim weiteren -Studium der Anleitung dann überspringen. +\IfCommon{scrlayer}{\Package{scrlayer} auch andere \KOMAScript-Pakete und + "-Klassen }% +\IfCommon{scrlayer-scrpage}{\Package{scrlayer} auch andere \KOMAScript-Pakete + und "-Klassen }% +betrifft. % +% Umbruchvarianten: +\IfNotCommon{scrlttr2}{Damit die Anwender alle Informationen zu einem Paket + oder einer Klasse im jeweiligen Kapitel finden, ist dieser Abschnitt nahezu + gleichlautend in mehreren Kapiteln zu finden. Anwender, die nicht nur an + der Anleitung zu einem Paket oder einer Klasse interessiert sind, sondern + sich einen Gesamtüberblick über \KOMAScript{} verschaffen wollen, brauchen + diesen Abschnitt nur in einem der Kapitel zu lesen und können ihn + \IfCommon{maincls}{bei den weiteren Kapitel überspringen.}% + \IfNotCommon{maincls}{beim weiteren Studium der Anleitung dann + überspringen.}% +} % +\IfCommon{scrlttr2}{Im Sinne der Abgeschlossenheit der Kapitel ist dieser + Abschnitt nahezu identisch in mehreren Kapiteln zu finden, braucht aber beim + Studium des gesamten von \KOMAScript{} natürlich nur in einem gelesen + werden.} \begin{Declaration} \Macro{documentclass}\OParameter{Optionenliste}% @@ -111,19 +126,44 @@ arbeiten \Macro{documentclass} und \Macro{usepackage} bei \KOMAScript{} wie in \cite{latex:usrguide} oder jeder \LaTeX-Einführung, beispielsweise \cite{l2kurz}, beschrieben.% % -\IfNotCommon{scrjura}{\IfNotCommon{scrhack}{\IfNotCommon{scrextend}{\par% - Bei Verwendung einer \KOMAScript-Klasse\textnote{Achtung!} sollten im - Übrigen beim +\iffree{}{\IfCommon{scrlayer-scrpage}{\par + Das als veraltet zu betrachtende Paket + \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}} + besitzt diese Erweiterung übrigens nicht. Es versteht daher nur einfache + Optionen ohne Wertzuweisung.\par}}% +% +\IfNotCommon{scrjura}{% + \IfNotCommon{scrhack}{% + \IfNotCommon{scrlayer}{% + \IfNotCommon{scrlayer-scrpage}{% + \IfNotCommon{scrlayer-notecolumn}{% + \IfNotCommon{scrextend}{\par% + Bei Verwendung einer \KOMAScript-Klasse\textnote{Achtung!} sollten + im Übrigen beim % Die Alternativen an dieser Stelle dienen der Verbesserung des Umbruchs -\IfCommon{typearea}{überflüssigen, expliziten }% -Laden des Pakets \Package{typearea} oder \Package{scrbase} keine Optionen -angegeben werden. Das ist darin begründet, dass die Klasse diese Pakete -bereits ohne Optionen lädt und \LaTeX{} das mehrmalige Laden eines Pakets mit -unterschiedlicher Angabe von Optionen verweigert.% -\IfCommon{maincls}{\ Überhaupt ist es bei Verwendung einer \KOMAScript-Klasse - nicht notwendig, eines dieser Pakete auch noch explizit zu laden.}% -\IfCommon{scrlttr2}{\ Überhaupt ist es bei Verwendung einer \KOMAScript-Klasse - nicht notwendig, eines dieser Pakete auch noch explizit zu laden.}}}}% + \IfCommon{typearea}{überflüssigen, expliziten }% + Laden des Pakets \Package{typearea} oder \Package{scrbase} keine + Optionen angegeben werden. Das ist darin begründet, dass die + Klasse diese Pakete bereits ohne Optionen lädt und \LaTeX{} das + mehrmalige Laden eines Pakets mit unterschiedlicher Angabe von + Optionen verweigert.% +% \IfCommon{maincls}{\ Überhaupt ist es bei Verwendung einer +% \KOMAScript-Klasse nicht notwendig, eines dieser Pakete auch +% noch explizit zu laden.}% + \IfCommon{scrlttr2}{\ Überhaupt ist es bei Verwendung einer + \KOMAScript-Klasse nicht notwendig, eines dieser Pakete auch + noch explizit zu laden.}}}}}}} + +Gegenüber der nachfolgend vorgestellten Schnittstelle zu Einstellungen von +Optionen haben \Macro{documentclass} und \Macro{usepackage} einen Nachteil, +der unbedingt zu beachten\textnote{Achtung!} ist: Anweisungen, Längen, Zähler +und ähnliches können darin leicht zerbrechen. So führt die Verwendung einer +\LaTeX-Länge im Wert einer Option bei diesen Anweisungen zu einer +Fehlermeldung, noch bevor der Wert an \KOMAScript{} übergeben wird, es also +die Kontrolle darüber übernehmen könnte. Wertzuweisungen mit \LaTeX-Längen +oder \LaTeX-Zählern sollten daher nie per \Macro{documentclass} oder +\Macro{usepackage}, sondern immer mit den nachfolgend dokumentierten +Anweisungen \Macro{KOMAoptions} oder \Macro{KOMAoption} vorgenommen werden.% % \EndIndex{Cmd}{usepackage}% \EndIndex{Cmd}{documentclass}% @@ -149,34 +189,40 @@ einfach in der Form \PName{Option}, so wird automatisch dieser S angenommen. Manche Optionen können % -\IfCommon{maincls}{auch }% Umbruchkorrektur -\IfCommon{scrlttr2}{auch }% Umbruchkorrektur +%\IfCommon{maincls}{auch }% Umbruchkorrektur +%\IfCommon{scrlttr2}{auch }% Umbruchkorrektur gleichzeitig mehrere Werte besitzen. Für solche Optionen besteht die -Möglichkeit, mit Hilfe von \Macro{KOMAoption} der einen \PName{Option} +Möglichkeit, mit \Macro{KOMAoption} der einen \PName{Option} nacheinander eine Reihe von Werten zuzuweisen. Die einzelnen Werte sind dabei in der \PName{Werteliste} durch Komma voneinander getrennt. -\begin{Explain} - \looseness=-1 - Falls man in der \PName{Optionenliste} eine Option auf einen unzulässigen - Wert setzt oder die \PName{Werteliste} einen unzulässigen Wert enthält, so - wird ein Fehler gemeldet. Wird \LaTeX{} in einem Modus verwendet, in dem im - Fehlerfall Interaktionen möglich sind, so stoppt \LaTeX{} in diesem - Fall. 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. - - Soll\textnote{Achtung!} in einem \PName{Wert} ein Gleichheitszeichen oder - ein Komma vorkommen, so ist der \PName{Wert} in geschweifte Klammern zu - setzen. +Soll\textnote{Achtung!} ein \PName{Wert} ein Gleichheitszeichen oder ein Komma +enthalten, so ist der \PName{Wert} in geschweifte Klammern zu setzen. +\begin{Explain} \KOMAScript{} bedient sich für die Realisierung dieser Möglichkeit der Anweisungen \Macro{FamilyOptions} und \Macro{FamilyOption} mit der Familie - »\PValue{KOMA}«. Näheres zu diesen Anweisungen ist % + »\PValue{KOMA}«. +\iffalse % Umbruchkorrektur + Näheres zu diesen Anweisungen ist % \IfCommon{maincls}{für Experten }% \IfCommon{scrlttr2}{für Experten }% in \autoref{sec:scrbase.keyvalue}, \autopageref{desc:scrbase.cmd.FamilyOptions} zu finden. -\end{Explain} +\else + % + Siehe dazu \autoref{part:forExperts}, \autoref{sec:scrbase.keyvalue}, + \autopageref{desc:scrbase.cmd.FamilyOptions}. + % +\fi + +\end{Explain}% +\iffree{}{\IfCommon{scrlayer-scrpage}{\par + Das als veraltet zu betrachtende Paket + \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}} + besitzt diese Erweiterung übrigens nicht. Optionen können daher nur über + die zuvor erklärte Möglichkeit während des Ladens des Pakets gesetzt + werden.}}% % \EndIndex{Cmd}{KOMAoption}% \EndIndex{Cmd}{KOMAoptions}% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-1.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-1.tex index c02527550df..60ded49b399 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-1.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-1.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-1.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-1.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-1.tex}[2011/09/20 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-1.tex} + [$Date: 2013-12-12 12:01:33 +0100 (Do, 12. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \makeatletter \@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% @@ -67,15 +69,14 @@ geschrieben wurde. \IfCommon{scrlttr2}{Allerdings existiert diese M \IfCommon{typearea}{Wer seine Dokumente im Quellcode archiviert, legt in der Regel allergrößten Wert darauf, dass bei zukünftigen \LaTeX{}-Läufen immer - wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen ist es aber - so, dass Verbesserungen und Korrekturen am Paket zu Änderungen im - Verhalten, inbesondere beim Umbruch, führen. Dies ist in einigen Fällen - jedoch eher unerwünscht.}% + wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen führen aber + Verbesserungen und Korrekturen am Paket zu Änderungen im Verhalten, + inbesondere beim Umbruch. Dies ist jedoch manchmal eher unerwünscht.}% \IfCommon{maincls}{Wer seine Dokumente im Quellcode archiviert, legt in der Regel allergrößten Wert darauf, dass bei zukünftigen \LaTeX{}-Läufen immer - wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen ist es aber - so, dass Verbesserungen und Korrekturen an der Klasse zu Änderungen im - Verhalten, inbesondere beim Umbruch, führen.}% + wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen führen aber + Verbesserungen und Korrekturen am Paket zu unerwünschten Änderungen im + Verhalten und insbesondere bezüglich des Umbruchs.}% \IfCommon{scrextend}{Wer seine Dokumente im Quellcode archiviert, legt in der Regel allergrößten Wert darauf, dass bei zukünftigen \LaTeX{}-Läufen immer wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen ist es aber @@ -167,8 +168,12 @@ dem Laden % \IfCommon{scrlttr2}{der Klasse }% \IfCommon{typearea}{des Pakets \Package{typearea} }% \IfCommon{scrextend}{des Pakets \Package{scrextend} }% -nicht mehr verändert werden kann. Das Setzen mit \Macro{KOMAoptions} oder -\Macro{KOMAoption} ist für diese Option daher nicht vorgesehen.% +nicht mehr verändert werden kann. +Das Setzen mit \Macro{KOMAoptions} oder +\Macro{KOMAoption} ist +% Umbruchkorrektur +\IfNotCommon{scrlttr2}{für diese Option }% +daher nicht vorgesehen.% % \EndIndex{Option}{version~=\PName{Wert}}% \EndIndex{Option}{version~=\PValue{first}}% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-11.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-11.tex index 66e4e0d0976..7cc374f52f8 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-11.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-11.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-11.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-11.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-11.tex}[2012/01/01 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-11.tex} + [$Date: 2013-12-11 20:21:09 +0100 (Mi, 11. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \makeatletter \@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% @@ -90,7 +92,8 @@ Definition: % Umbruchkorrektur: listings korrigieren! \begin{lstcode}[belowskip=\dp\strutbox] \deffootnote[1em]{1.5em}{1em}{% - \textsuperscript{\thefootnotemark}} + \textsuperscript{\thefootnotemark}% + } \end{lstcode} Dabei wird mit Hilfe von \Macro{textsuperscript} sowohl die Hochstellung als auch die Wahl einer kleineren Schrift erreicht. Die Anweisung @@ -231,7 +234,8 @@ Schriftart kann mit den Anweisungen \Macro{setkomafont} und erhalten werden: \begin{lstcode} \deffootnote{1.5em}{1em}{% - \makebox[1.5em][l]{\thefootnotemark}} + \makebox[1.5em][l]{\thefootnotemark}% + } \end{lstcode} Sollen jedoch die Fußnoten insgesamt lediglich in einer anderen Schriftart, diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-12.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-12.tex index 492368c9c8d..26dd4e78e3e 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-12.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-12.tex @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-12.tex}[2011/09/21 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-12.tex} + [$Date: 2013-12-11 20:21:09 +0100 (Mi, 11. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \makeatletter \@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% @@ -125,7 +127,6 @@ einzelnen Stichpunkte werden mit \Macro{item} eingeleitet.% \item Flugzeuge \begin{itemize} \item Doppeldecker - \item Jets \item Transportmaschinen \begin{itemize} \item einmotorig @@ -142,10 +143,6 @@ einzelnen Stichpunkte werden mit \Macro{item} eingeleitet.% \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 @@ -163,7 +160,7 @@ einzelnen Stichpunkte werden mit \Macro{item} eingeleitet.% \item Flugzeuge \begin{itemize} \item Doppeldecker - \item Jets +% \item Jets \item Transportmaschinen \begin{itemize} \item einmotorig @@ -180,10 +177,10 @@ einzelnen Stichpunkte werden mit \Macro{item} eingeleitet.% \item Drehflügler \end{itemize} \item Motorräder - \begin{itemize} - \item historisch korrekt - \item futurisch nicht real - \end{itemize} +% \begin{itemize} +% \item historisch korrekt +% \item futurisch nicht real +% \end{itemize} \item Automobile \begin{itemize} \item Rennwagen @@ -634,9 +631,14 @@ ersten Absatz einer \Environment{quotation}-Umgebung% Umbruchkorrektur \begin{Example} \phantomsection\label{desc:maincls.env.quote.example}% Sie wollen eine kleine Anekdote hervorheben. Also schreiben Sie - folgende \Environment{quotation}-Umgebung: + unter Verwendung der Umgebung \Environment{quotation}: % \begin{lstcode} + \documentclass[paper=a5,pagesize]{scrartcl} + \usepackage{selinput} + \SelectInputMappings{adieresis={ä},germandbls={ß}} + \usepackage[ngerman]{babel} + \begin{document} Ein kleines Beispiel für eine Anekdote, die sich einst in Schwaben zugetragen haben soll: \begin{quotation} @@ -656,8 +658,9 @@ ersten Absatz einer \Environment{quotation}-Umgebung% Umbruchkorrektur "`Guda Moh, Sie missat sich halt zwinga!"' \end{quotation} + \end{document} \end{lstcode} - Das Ergebnis ist dann: + Das Ergebnis könnte dann so aussehen: \begin{ShowOutput} \iftrue% Umbruchkorrekturtext Ein kleines Beispiel für eine Anekdote, die sich einst diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-14.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-14.tex index b70c6537975..2f9983066c7 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-14.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-14.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-14.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-14.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-14.tex}[2012/01/01 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-14.tex} + [$Date: 2013-12-12 16:57:36 +0100 (Do, 12 Dez 2013) $ + KOMA-Script guide (common paragraphs)] \makeatletter \@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% @@ -100,17 +102,20 @@ ersetzt werden. \else %------------------------------------------------------- nur maincls - \begin{Declaration} - \KOption{titlepage}\PName{Ein-Aus-Wert} + \KOption{titlepage}\PName{Ein-Aus-Wert}\\ + \OptionValue{titlepage}{firstiscover} \end{Declaration}% \BeginIndex{Option}{titlepage~=\PName{Ein-Aus-Wert}}% -Mit dieser Option\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and - \Class{scrartcl}} wird ausgewählt, ob für die mit \Macro{maketitle} -(siehe \autopageref{desc:\csname label@base\endcsname.cmd.maketitle}) gesetzte -Titelei eigene Seiten\Index{Titel>Seite} verwendet werden, oder stattdessen -die Titelei von \Macro{maketitle} als Titelkopf\Index{Titel>Kopf} gesetzt -wird. Als \PName{Ein-Aus-Wert} kann einer der Standardwerte für einfache -Schalter aus \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} -verwendet werden. +\BeginIndex{Option}{titlepage~=\PValue{firstiscover}}% +Mit dieser Option\IfCommon{maincls}{\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}}} wird ausgewählt, ob für die mit +\Macro{maketitle} (siehe \autopageref{desc:\csname + label@base\endcsname.cmd.maketitle}) gesetzte Titelei eigene +Seiten\Index{Titel>Seite} verwendet werden, oder stattdessen die Titelei von +\Macro{maketitle} als Titelkopf\Index{Titel>Kopf} gesetzt wird. Als +\PName{Ein-Aus-Wert} kann einer der Standardwerte für einfache Schalter aus +\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} verwendet +werden. Mit \OptionValue{titlepage}{true}\important{\OptionValue{titlepage}{true}} \IfNotCommon{scrextend}{oder \Option{titlepage} }wird die Titelei in Form von @@ -127,6 +132,30 @@ hei dem Titel kann aber nachfolgend weiteres Material, beispielsweise eine Zusammenfassung oder ein Abschnitt gesetzt werden. +Mit\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}} der dritten Möglichkeit, +\OptionValue{titlepage}{firstiscover}% +\important{\OptionValue{titlepage}{firstiscover}}, werden nicht nur +Titelseiten aktiviert. Es wird auch dafür gesorgt, dass die erste von +\Macro{maketitle}\IndexCmd{maketitle} ausgegebene Titelseite, also entweder +der Schmutztitel oder der Haupttitel, als Umschlagseite\Index{Umschlag} +ausgegeben wird. Jede andere Einstellung für Option \Option{titlepage} hebt +diese Einstellung wieder auf. Die Ränder\important{% + \Macro{coverpagetopmargin}\\ + \Macro{coverpageleftmargin}\\ + \Macro{coverpagerightmargin}\\ + \Macro{coverpagebottommargin}} dieser Umschlagseite werden über +\Macro{coverpagetopmargin}\IndexCmd[indexmain]{coverpagetopmargin} (oberer +Rand), \Macro{coverpageleftmargin}\IndexCmd[indexmain]{coverpageleftmargin} +(linker Rand), +\Macro{coverpagerightmargin}\IndexCmd[indexmain]{coverpagerightmargin} +(rechter Rand) und natürlich +\Macro{coverpagebottommargin}\IndexCmd[indexmain]{coverpagebottommargin} +(unterer Rand) bestimmt. Die Voreinstellungen sind von den Längen +\Length{topmargin}\IndexLength{topmargin} und +\Length{evensidemargin}\IndexLength{evensidemargin} abhängig und können mit +\Macro{renewcommand} geändert werden. + \IfCommon{maincls}{Bei den Klassen \Class{scrbook} und \Class{scrreprt} sind Titelseiten voreingestellt. Demgegenüber verwendet \Class{scrartcl} in der Voreinstellung einen Titelkopf.}% @@ -135,7 +164,8 @@ Zusammenfassung oder ein Abschnitt gesetzt werden. erkannt. Setzt eine Klasse keine entsprechende Voreinstellung, so ist der Titelkopf voreingestellt.}% % -\EndIndex{Option}{titlepage~=\PName{Ein-Aus-Wert}} +\EndIndex{Option}{titlepage~=\PValue{firstiscover}}% +\EndIndex{Option}{titlepage~=\PName{Ein-Aus-Wert}}% \begin{Declaration} @@ -340,16 +370,24 @@ Der\important{\Macro{titlehead}} \PName{Kopf}\Index[indexmain]{Titel>Seitenkopf} des Haupttitels 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. +gestaltet werden. Seine\IndexFontElement[indexmain]{titlehead} +Schrift\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}} wird über das Element +\FontElement{titlehead}\important{\FontElement{titlehead}} mit Hilfe der +Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:\csname label@base\endcsname.textmarkup}, +\autopageref{desc:\csname label@base\endcsname.cmd.setkomafont}) +gesteuert. Die Voreinstellung ist \autoref{tab:maincls.titlefonts}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.titlefonts}} zu entnehmen. Die\important{\Macro{subject}} \PName{Typisierung}\Index[indexmain]{Typisierung} wird unmittelbar über dem \PName{Titel} ausgegeben. Dabei\ChangedAt{v2.95}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} findet die Schriftumschaltung für das -Element -\FontElement{subject}\IndexFontElement{subject}\important{\FontElement{subject}} -Anwendung. Die Voreinstellung, die in \autoref{tab:maincls.titlefonts}% -\IfNotCommon{maincls}{, \autopageref{tab:maincls.titlefonts} }% +Element \FontElement{subject}\IndexFontElement[indexmain]{subject}% +\important{\FontElement{subject}} Anwendung. Die Voreinstellung, die in +\autoref{tab:maincls.titlefonts}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.titlefonts}}% \ zu finden ist, kann mit Hilfe der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe \autoref{sec:\csname label@base\endcsname.textmarkup}, \autopageref{desc:\csname @@ -358,9 +396,9 @@ Anwendung. Die Voreinstellung, die in \autoref{tab:maincls.titlefonts}% Der\important{\Macro{title}} \PName{Titel} wird in einer sehr großen Schrift ausgegeben. Dabei\ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} findet abgesehen von der Größe auch die Schriftumschaltung -für das Element -\FontElement{title}\IndexFontElement{title}\important{\FontElement{title}} -Anwendung. Voreingestellt ist die gleiche Schrift, die für das Element +für das Element \FontElement{title}\IndexFontElement[indexmain]{title}% +\important{\FontElement{title}} Anwendung. Voreingestellt ist die gleiche +Schrift, die für das Element \FontElement{disposition}\IndexFontElement{disposition} verwendet wird (siehe \autoref{tab:maincls.elementsWithoutText}, \autopageref{tab:maincls.elementsWithoutText}). Die Voreinstellungen können @@ -373,7 +411,7 @@ werden. Die Gr Der\important{\Macro{subtitle}} \PName{Untertitel}\ChangedAt{v2.97c}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} wird in der über das Element -\FontElement{subtitle}\IndexFontElement{subtitle}% +\FontElement{subtitle}\IndexFontElement[indexmain]{subtitle}% \important{\FontElement{subtitle}} eingestellten Schrift knapp unter dem Titel ausgegeben. Die Voreinstellung, die \autoref{tab:maincls.titlefonts}% \IfNotCommon{maincls}{, \autopageref{tab:maincls.titlefonts}}% @@ -398,36 +436,71 @@ ausgegeben. Die Voreinstellung, die \autoref{tab:maincls.titlefonts}% \toprule Element-Name & Voreinstellung \\ \midrule + \FontElement{author} & \Macro{Large} \\ + \FontElement{date} & \Macro{Large} \\ + \FontElement{dedication} & \Macro{Large} \\ + \FontElement{publishers} & \Macro{Large} \\ \FontElement{subject} & \Macro{normalfont}\Macro{normalcolor}\Macro{bfseries}\Macro{Large} \\ - \FontElement{title} & \Macro{usekomafont}\PParameter{disposition} \\ \FontElement{subtitle} & \Macro{usekomafont}\PParameter{title}\Macro{large} \\ + \FontElement{title} & \Macro{usekomafont}\PParameter{disposition} \\ + \FontElement{titlehead} & \\ \bottomrule \end{tabular} \end{captionbeside} \end{table}} Unter\important{\Macro{author}} dem \PName{Untertitel} folgt der -\PName{Autor}\Index[indexmain]{Autor}. Es kann auch durchaus mehr als ein +\PName{Autor}\Index[indexmain]{Autor}. Es kann auch durchaus mehr als ein Autor innerhalb des Arguments von \Macro{author} angegeben werden. Die Autoren -sind dann mit \Macro{and} voneinander zu trennen. +sind dann mit \Macro{and} voneinander zu +trennen. Auch\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}} für die +Autoren\important{\FontElement{author}} kann die Schrift über das gleichnamige +Element \FontElement{author}\IndexFontElement[indexmain]{author}, dessen +Voreinstellung \autoref{tab:maincls.titlefonts}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.titlefonts}}% +\ zu entnehmen ist, mit Hilfe der Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} (siehe \autoref{sec:\csname + label@base\endcsname.textmarkup}, \autopageref{desc:\csname + label@base\endcsname.cmd.setkomafont}) verändert werden. Unter\important{\Macro{date}} 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. +eine beliebige Angabe -- auch ein leere -- erreicht werden. Die +Schrift\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}}\important{\FontElement{date}} wird +über das Element \FontElement{date}\IndexFontElement[indexmain]{date} mit +Hilfe der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:\csname label@base\endcsname.textmarkup}, +\autopageref{desc:\csname label@base\endcsname.cmd.setkomafont}) +gesteuert. Die Voreinstellung ist \autoref{tab:maincls.titlefonts}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.titlefonts}}% +\ zu entnehmen. Als\important{\Macro{publishers}} Letztes folgt schließlich der -\PName{Verlag}\Index[indexmain]{Verlag}. 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 Kopf zu betrachten. Dabei ist jedoch zu beachten, -dass sie oberhalb von eventuell vorhandenen Fußnoten ausgegeben wird. - -\looseness=-1 % Umbruchoptimierung! +\PName{Verlag}\Index[indexmain]{Verlag}. 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 Kopf zu +betrachten. Dabei ist jedoch zu beachten, dass sie oberhalb von eventuell +vorhandenen Fußnoten ausgegeben wird. Die\ChangedAt{v3.12}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}\and + \Package{scrextend}} Schrift\important{\FontElement{publishers}} der +Verlagsangaben ist über das Element +\FontElement{publishers}\IndexFontElement[indexmain]{publishers} mit Hilfe der +Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:\csname label@base\endcsname.textmarkup}, +\autopageref{desc:\csname label@base\endcsname.cmd.setkomafont}) +veränderbar. Die Voreinstellung ist wiederum in +\autoref{tab:maincls.titlefonts}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.titlefonts}}% +\ angegeben. + +%\looseness=-1 % Umbruchoptimierung! Fußnoten\important{\Macro{thanks}}\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 @@ -459,16 +532,16 @@ horizontal zentriert. Diese Angaben sind noch einmal kurz zusammengefasst in \toprule Element & Anweisung & Schrift & Satz \\ \midrule - Seitenkopf & \Macro{titlehead} & \Macro{normalsize} & Block- \\ + Seitenkopf & \Macro{titlehead} & \Macro{usekomafont}\PParameter{titlehead} & Block- \\ Typisierung & \Macro{subject} & \Macro{usekomafont}\PParameter{subject} & zentriert \\ Titel & \Macro{title} & - \Macro{huge}\Macro{usekomafont}\PParameter{title} & zentriert \\ + \Macro{usekomafont}\PParameter{title}\Macro{huge} & zentriert \\ Untertitel & \Macro{subtitle} & \Macro{usekomafont}\PParameter{subtitle} & zentriert \\ - Autoren & \Macro{author} & \Macro{Large} & zentriert \\ - Datum & \Macro{date} & \Macro{Large} & zentriert \\ - Verlag & \Macro{publishers} & \Macro{Large} & zentriert \\ + Autoren & \Macro{author} & \Macro{usekomafont}\PParameter{author} & zentriert \\ + Datum & \Macro{date} & \Macro{usekomafont}\PParameter{date} & zentriert \\ + Verlag & \Macro{publishers} & \Macro{usekomafont}\PParameter{publishers} & zentriert \\ \bottomrule \end{tabular} \end{captionbeside} @@ -483,7 +556,7 @@ horizontal zentriert. Diese Angaben sind noch einmal kurz zusammengefasst in Außerdem soll der Betreuer angegeben und zu erkennen sein, dass es sich um eine Diplomarbeit handelt. Sie könnten das wie folgt erreichen: -\ifCommonmaincls +\ifCommonmaincls % Umbruchvarianten \begin{lstcode} \documentclass{scrbook} \usepackage[ngerman]{babel} @@ -531,24 +604,30 @@ horizontal zentriert. Diese Angaben sind noch einmal kurz zusammengefasst in \begin{Explain} Ein häufiges Missverständnis betrifft die Bedeutung der Haupttitelseite. Irrtümlich wird oft angenommen, es handle sich dabei um den - Buchumschlag\textnote{Umschlag} 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\textnote{Titelseiten} unter dem - Buchdeckel innerhalb des so genannten Buchblocks. Genau diese Titelseiten - werden mit \Macro{maketitle} gesetzt. + Buchumschlag\textnote{Umschlag}\Index{Umschlag} 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\textnote{Titelseiten} + unter dem Buchdeckel innerhalb des so genannten 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 + etwas, das 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. + + Seit \KOMAScript~3.12 kann man die erste von \Macro{maketitle} ausgegebene + Titelseite alternativ aber auch als Umschlagseite formatieren lassen. Dabei + ändern sich nur die für diese Seite verwendeten Ränder (siehe Option + \OptionValue{titlepage}{firstiscover}% + \IndexOption{titlepage~=\PValue{firstiscover}} auf \autopageref{desc:\csname + label@base\endcsname.option.titlepage}). \end{Explain} % \EndIndex{Cmd}{titlehead}% @@ -588,17 +667,28 @@ umgekehrt. \iffree{Nimmt man diese Anleitung als Beispiel, so wurde der \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. +{\KOMAScript} bietet eine eigene Widmungsseite. Diese Widmung\Index{Widmung} +wird zentriert und in der Voreinstellung mit etwas größerer Schrift +gesetzt. Die\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and + \Package{scrextend}}\important{\FontElement{dedication}} genaue +Schrifteinstellung für das Element +\FontElement{dedication}\IndexFontElement[indexmain]{dedication}, die +\autoref{tab:maincls.titlefonts}, \autopageref{tab:maincls.titlefonts} +zu entnehmen ist, kann über die Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} (siehe \autoref{sec:\csname + label@base\endcsname.textmarkup}, \autopageref{desc:\csname + label@base\endcsname.cmd.setkomafont}) verändert werden. + +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: -\ifCommonmaincls +\ifCommonmaincls% Umbruchkorrekturvariante \begin{lstcode} \documentclass{scrbook} \usepackage[ngerman]{babel} @@ -610,9 +700,11 @@ Anweisung definiert sein. \lowertitleback{% Dieser Gedichtband wurde mit Hilfe von {\KOMAScript} und {\LaTeX} gesetzt.} - \uppertitleback{Selbstverlach\par + \uppertitleback{% + Selbstverlach\par Auf"|lage: 1 Exemplar} - \dedication{Meinem Schnuckelchen\\ + \dedication{% + Meinem Schnuckelchen\\ in ewiger Liebe\\ von Deinem Hasenboppelchen.} \maketitle diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-20.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-20.tex new file mode 100644 index 00000000000..90f0862c5ad --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-20.tex @@ -0,0 +1,136 @@ +% ====================================================================== +% common-20.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% common-20.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% +% Text that is common for several chapters of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Absätze, die mehreren Kapitels in der KOMA-Script-Anleitung gemeinsam sind +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\KOMAProvidesFile{common-20.tex} + [$Date: 2013-12-17 08:45:48 +0100 (Di, 17 Dez 2013) $ + KOMA-Script guide (common paragraph: Head and Foot Height)] + +\makeatletter +\@ifundefined{ifCommonscrlayer}{\newif\ifCommonscrlayer}{}% +\@ifundefined{ifCommoonscrlayer-scrpage}{\expandafter\newif\csname ifCommonscrlayer-scrpage\endcsname}{}% +\@ifundefined{ifIgnoreThis}{\newif\ifIgnoreThis}{}% +\makeatother + +\section{Höhe von Kopf und Fuß} +\label{sec:\csname label@base\endcsname.height} + +\begin{Explain}% + \IfCommon{scrlayer-scrpage}{% + Vermutlich, weil der Fuß bei den Standardklassen kaum besetzt ist und + zudem als \Macro{mbox} immer einzeilig ist, gibt es bei \LaTeX{} keine + definierte Höhe des Fußes. Zwar ist der Abstand von der letzten Grundlinie + des Textblocks zur Grundlinie des Fußes mit + \Length{footskip}\IndexLength[indexmain]{footskip} durchaus + definiert. Wenn allerdings der Fuß höher als eine Zeile wird, dann ist + nicht hinreichend festgelegt, wie sich diese Höhe niederschlägt bzw. ob + \Length{footskip} den Abstand zur obersten oder untersten Grundlinie des + Fußes darstellt. + + Obwohl auch der Kopf bei den Seitenstilen der Standardklassen in einer + horizontalen Box ausgegeben wird und damit immer einzeilig ist, hat + \LaTeX{} für die Kopfhöhe tatsächlich selbst eine Länge zur Einstellung + ihrer Höhe vorgesehen. Dies erklärt sich vermutlich daraus, dass diese + Höhe zur Bestimmung des Anfangs des Textbereichs benötigt wird.% + }% +\end{Explain} + +\ifshortversion\IgnoreThisfalse\IfNotCommon{scrlayer-scrpage}{\IgnoreThistrue}\fi +\ifIgnoreThis %++++++++++++++++++++++++++++++++++++++ nicht scrlayer-scrpage + +Für grundlegende Informationen zur Höhe von Kopf und Fuß siehe +\autoref{sec:scrlayer-scrpage.height}, +\autopageref{sec:scrlayer-scrpage.height}. +\else % ----------------------------------------------- nur scrlayer-scrpage - + +\begin{Declaration} + \Length{footheight}\\ + \Length{headheight} +\end{Declaration} +\BeginIndex{Length}{footheight}% +\BeginIndex{Length}{headheight}% +Das Paket \Package{scrlayer} führt als neue Länge \Length{footheight} analog +zur Höhe \Length{headheight} ein. Gleichzeitig interpretiert +\Package{scrlayer-scrpage} \Length{footskip} so, dass es den Abstand der +letzten Grundlinie des Textbereichs von der ersten Standard-Grundlinie des +Fußes darstellt. Das Paket \Package{typearea}\IndexPackage{typearea} +betrachtet dies in gleicher Weise, so dass die dortigen Optionen zum Setzen +der Höhe des Fußes (siehe die Optionen \Option{footheight} und +\Option{footlines} in \autoref{sec:typearea.typearea}, +\autopageref{desc:typearea.option.footheight}) und zur Berücksichtigung des +Fußes bei der Berechnung des Satzspiegels (siehe Option \Option{footinclude} +in demselben Abschnitt, \autopageref{desc:typearea.option.footinclude}) sehr +gut zum Setzen der Werte für \Package{scrlayer} verwendet werden können und +auch das gewünschte Ergebnis liefern. + +Wird das Paket \Package{typearea} nicht verwendet, so sollte man +gegebenenfalls die Höhe von Kopf und Fuß über entsprechende Werte für die +Längen einstellen. Zumindest für den Kopf bietet aber beispielsweise auch das +Paket \Package{geometry} entsprechende Einstellmöglichkeiten. Wurde der Kopf +oder der Fuß für den tatsächlich verwendeten Inhalt zu klein gewählt, so +versucht \Package{scrlayer-scrpage} die Längen selbst entsprechend +anzupassen. Gleichzeitig wird eine entsprechende Warnung ausgegeben, die auch +Ratschläge für passende Einstellungen enthält. Die automatischen Änderungen +haben dann ab dem Zeitpunkt, an dem ihre Notwendigkeit erkannt wurde, +Gültigkeit und werden nicht automatisch aufgehoben, wenn beispielsweise der +Inhalt von Kopf oder Fuß wieder kleiner wird.% +\EndIndex{Length}{headheight}% +\EndIndex{Length}{footheight}% + +\fi % ********************************************* Ende nur scrlayer-scrpage * + +%%% Local Variables: +%%% mode: latex +%%% mode: flyspell +%%% coding: iso-latin-1 +%%% ispell-local-dictionary: "de_DE" +%%% TeX-master: "scrlayer-de.tex" +%%% TeX-PDF-mode: t +%%% End: + +% LocalWords: Seitenstilen Ebenenmodell scrpage headings myheadings plain +% LocalWords: empty scrlayer Seitenstil Rückgriffe Gliederungsnummern +% LocalWords: Standardklassen Seitenstile konsistenteren Befehlssatzes +% LocalWords: Einstellmöglichkeiten Seiteninhalts Gliederungsüberschrift diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-21.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-21.tex new file mode 100644 index 00000000000..649d22299f6 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-21.tex @@ -0,0 +1,873 @@ +% ====================================================================== +% common-21.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% common-21.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% +% Text that is common for several chapters of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Absätze, die mehreren Kapitels in der KOMA-Script-Anleitung gemeinsam sind +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\KOMAProvidesFile{common-21.tex} + [$Date: 2013-12-18 07:42:31 +0100 (Mi, 18. Dez 2013) $ + KOMA-Script guide (common paragraph: + Setting up defined page styles)] + +\makeatletter +\@ifundefined{ifCommonscrlayer}{\newif\ifCommonscrlayer}{}% +\@ifundefined{ifCommonscrlayerscrpage}{\newif\ifCommonscrlayerscrpage}{}% +\@ifundefined{ifCommonscrlayerscrpageexperts}{\newif\ifCommonscrlayerscrpageexperts}{} +\@ifundefined{ifIgnoreThis}{\newif\ifIgnoreThis}{}% +\makeatother + +\section{Beeinflussung von definierten Seitenstilen} +\label{sec:\csname label@base\endcsname.pagestyle.content} + +\IfCommon{scrlayer}{% + Obwohl \Package{scrlayer} selbst keine konkreten Seitenstile mit Inhalt + definiert -- die erwähnten Seitenstile \Pagestyle{@everystyle@} und + \Pagestyle{empty} werden ja zunächst ohne Ebenen, also leer definiert --, + stellt es einige Optionen und Befehle zur Beeinflussung von Inhalten zur + Verfügung.% +} + +\IfCommon{scrlayer-scrpage}{% + In \autoref{sec:scrlayer-scrpage.predefined.pagestyles} wurde erklärt, wie + die Seitenstile \Pagestyle{scrheadings} und \Pagestyle{plain.scrheadings} + grundlegend vordefiniert sind und wie diese Vorbelegung grundsätzlich + geändert werden kann. Es fehlen jedoch noch Informationen, wie + beispielsweise die Kolumnentitel zustande kommen, wie man die Breite des + Kopfes und Fußes verändern kann und wie man Linien über oder unter Kopf oder + Fuß setzen kann. Obwohl dies eigentlich Fähigkeiten des Pakets + \Package{scrlayer} sind, werden sie nachfolgend erläutert, da diese + grundlegenden Eigenschaften von \Package{scrlayer} einen wichtigen Teil der + Möglichkeiten von \Package{scrlayer-scrpage} ausmachen.% +} + +\IfCommon{scrlayer-scrpage-experts}{% + Dieser Abschnitt ist als Ergänzung zu + \autoref{sec:scrlayer.pagestyle.content} zu verstehen und beschreibt Dinge, + die sich dem Anfänger nicht unbedingt sofort erschließen.% +} + +\ifCommonscrlayerscrpageexperts\else % ------- nicht scrlayer-scrpage-experts - +\ifshortversion\IgnoreThistrue\IfCommon{scrlayer-scrpage}{\IgnoreThisfalse}\fi +\ifIgnoreThis %++++++++++++++++++++++++++++++++++++++ nicht scrlayer-scrpage + +\else %------------------------------------------------ nur scrlayer-scrpage - + +\begin{Declaration} + \Macro{automark}\OParameter{Gliederungsebene der rechten Marke}\\ + \phantom{\XMacro{automark}}\Parameter{Gliederungsebene der linken Marke}\\ + \Macro{automark*}\OParameter{Gliederungsebene der rechten Marke}\\ + \phantom{\XMacro{automark*}}\Parameter{Gliederungsebene der linken Marke}\\ + \Macro{manualmark}\\ + \Option{automark}\\ + \KOption{autooneside}\PName{Ein-Aus-Wert}\\ + \Option{manualmark} +\end{Declaration} +\BeginIndex{Cmd}{automark}% +\BeginIndex{Cmd}{manualmark}% +\BeginIndex{Option}{automark}% +\BeginIndex{Option}{manualmark}% +\BeginIndex{Option}{autooneside~=\PName{Ein-Aus-Wert}}% +\begin{Explain} + Bei den Standardklassen und auch bei den \KOMAScript-Klassen fällt die + Entscheidung, ob mit lebenden oder statischen + Kolumnentiteln\Index{Kolumnentitel>lebend}\Index{Kolumnentitel>statisch} + gearbeitet werden soll über die Wahl des entsprechenden Seitenstils. Wie + bereits in \autoref{sec:maincls.pagestyle} erklärt, erhält man bei Wahl von + \Pagestyle{headings}\IndexPagestyle{headings}\important{\Pagestyle{headings}} + lebende Kolumnentitel. Unter lebenden Kolumnentiteln versteht man die + Wiederholung eines für die Seite oder die \emph{Kolumne} markanten Textes + meist im Kopf, seltener im Fuß der Seite. + + Bei den Artikel-Klassen\OnlyAt{\Class{article}\and \Class{scrartcl}} + \Class{article} oder \Class{scrartcl} wird für den lebenden + Kolumnentitel\textnote{lebende Kolumnentitel} im einseitigen Modus die + Abschnittsüberschrift, also das obligatorische oder das optionale Argument + von \Macro{section} verwendet. Diese wird als \emph{rechte Marke} + behandelt. Im doppelseitigen Satz wird dieselbe Überschrift als \emph{linke + Marke} verwendet und gleichzeitig die Unterabschnittsüberschrift als + \emph{rechte Marke}. Ausgegeben wird die linke Marke wie der Name schon sagt + auf der linken Seite, während die rechte Marke auf rechten Seiten -- im + einseitigen Modus also auf allen Seiten -- ausgegeben wird. Beim Setzen der + linken Marke für den Abschnitt werden von den Klassen in der Voreinstellung + außerdem auch immer die rechten Marken gelöscht. + + Bei den Bericht- und Buch-Klassen\OnlyAt{\Class{report}\and + \Class{scrreprt}\and \Class{book}\and \Class{scrbook}} wird eine Ebene + höher begonnen. Im einseitigen Modus wird also die Kapitelüberschrift als + rechte Marke gesetzt. Im doppelseitigen Satz wird die Kapitelüberschrift als + linke Marke und die Abschnittsüberschrift als rechte Marke gesetzt. + + Verwendet man hingegen als Seitenstil + \Pagestyle{myheadings}\IndexPagestyle{myheadings}% + \important{\Pagestyle{myheadings}}\textnote{manuelle Kolumnentitel}, so + existieren zwar die Marken im Kopf genauso und auch die Seitenzahlen werden + gleich platziert, allerdings werden die Marken nicht automatisch durch die + Überschriften gesetzt. Man kann sie dann nur + manuell\important{\Macro{markright}\\\Macro{markboth}} über die später in + diesem Abschnitt dokumentierten Anweisungen \Macro{markright} und + \Macro{markboth} befüllen. +\end{Explain} + +Genau diese Unterscheidung wurde bei \Package{scrpage2} und nun auch bei +\Package{scrlayer} aufgehoben. Statt die Unterscheidung zwischen +automatischen\textnote{lebende und manuelle Kolumnentitel} und manuellen +Kolumnentiteln über den Seitenstil vorzunehmen, gibt es die beiden Anweisungen +\Macro{automark} und \Macro{manualmark}. + +Mit \Macro{manualmark}\important{\Macro{manualmark}} wird dabei auf manuelle +Marken umgeschaltet. Es deaktiviert also das automatische Setzen der +Marken. Demgegenüber kann mit \Macro{automark}\important{\Macro{automark}} und +\Macro{automark*} festgelegt werden, welche Gliederungsebenen für das +automatische Setzen der Marke verwendet werden sollen. Das optionale Argument +gibt dabei die \PName{Gliederungsebene der rechten Marke} an, während das +obligatorische Argument die \PName{Gliederungsebene der linken Marke} ist. Als +Argument werden jeweils die Namen der Gliederungsebenen angegeben, also +\PValue{part}, \PValue{chapter}, \PValue{section}, \PValue{subsection}, +\PValue{subsubsection}, \PValue{paragraph} oder \PValue{subparagraph}. + +Normalerweise sollte die höhere Ebene die linke Marke setzen, während die +tiefere Ebene für die rechte Marke zu verwenden ist. Diese übliche Konvention +ist jedoch keine Pflicht, sondern lediglich sinnvoll. + +Der Unterschied zwischen \Macro{automark} und +\Macro{automark*}\important{\Macro{automark*}} liegt darin, dass +\Macro{automark} alle vorherigen Befehle zum automatischen Setzen der Marken +aufhebt, während die Stern-Version \Macro{automark*} lediglich die Aktionen +für die angegebenen Gliederungsebenen ändert. Man kann so auch relativ +komplexe Fälle abdecken.% +\iffree{}{\par + Das veraltete Paket + \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}} + kennt sowohl \Macro{manualmark} als auch \Macro{automark}, jedoch nicht + \Macro{automark*}. Daher sind die nachfolgenden Beispielen nicht vollständig + auf die Verwendung von \Package{scrpage2} übertragbar.}% +% +\begin{Example} + Angenommen Sie wollen, dass wie üblich auf den linken Seiten eines + Buches die Kapitelüberschriften als automatische Kolumnentitel verwendet + werden und auf den rechten Seiten die Abschnittsüberschriften. Allerdings + soll auf rechte Seiten so lange ebenfalls die Kapitelüberschrift verwendet + werden, bis der erste Abschnitt auftaucht. Dazu wird + zuerst \Package{scrlayer-scrpage} geladen und der Seitenstil + \Pagestyle{scrheadings} aktiviert. Das Dokument beginnt also mit: +\begin{lstcode} + \documentclass{scrbook} + \usepackage{scrlayer-scrpage} + \pagestyle{scrheadings} +\end{lstcode} + Als nächstes wird dafür gesorgt, dass die Kapitelüberschriften sowohl die + linke als auch die rechte Marke setzen: +\begin{lstcode} + \automark[chapter]{chapter} +\end{lstcode} + Dann sollen die Abschnittsüberschriften zusätzlich die rechten Marken + setzen: +\begin{lstcode} + \automark*[section]{} +\end{lstcode} + Hier findet die Stern-Version Anwendung, da die vorherige + \Macro{automark}-Anweisung weiterhin wirksam bleiben soll. Außerdem bleibt + das Argument für die \PName{Gliederungsebene der linken Marke} leer, weil + diese Marke unverändert bleiben soll. + + Alles, was jetzt noch fehlt, ist ein wenig Dokumentinhalt: +\begin{lstcode} + \usepackage{lipsum} + \begin{document} + \chapter{Kapitel} + \lipsum[1-20] + \section{Abschnitt} + \lipsum[21-40] + \end{document} +\end{lstcode} + Dabei ist das Paket \Package{lipsum}\IndexPackage{lipsum} mit seiner + Anweisung \Macro{lipsum}\IndexCmd{lipsum} sehr nützlich. + + Wenn Sie dieses Beispiel einmal testen, werden Sie sehen, dass die + Kapitelanfangsseite wie üblich ohne Kolumnentitel ist, da sie automatisch im + \Pagestyle{plain}-Seitenstil \Pagestyle{plain.scrheadings} gesetzt + wird. Seite~2 bis 4 tragen als Kolumnentitel die Kapitelüberschrift. Nachdem + auf Seite~4 eine Abschnittsüberschrift ausgegeben wurde, ändert sich der + Kolumnentitel auf Seite~5 in die Abschnittsüberschrift. Ab dann werden die + beiden Überschriften im Kopf wechselweise ausgegeben, auf linken Seiten die + Kapitelüberschrift, auf rechten Seiten die Abschnittsüberschrift. +\end{Example} + +Außer mit den Befehlen kann auch direkt mit den beiden Optionen +\Option{manualmark}\important{\Option{manualmark}\\\Option{automark}} und +\Option{automark} zwischen automatischen und manuellen Kolumnentiteln hin- und +hergeschaltet werden. Dabei verwendet \Option{automark} bei Klassen mit +\Macro{chapter}-Anweisung immer die Voreinstellung +\begin{lstcode}[belowskip=\dp\strutbox] + \automark[section]{chapter} +\end{lstcode} +und bei anderen Klassen +\begin{lstcode}[belowskip=\dp\strutbox] + \automark[subsection]{section} +\end{lstcode} + +Im einseitigen Modus\textnote{einseitiger Satz} will man in der Regel nicht, +dass die untergeordnete Ebene die rechte Marke beeinflusst. Stattdessen soll +auch mit der Voreinstellung nur die höhere Ebene, die beispielsweise im +doppelseitigen Modus in der Voreinstellung alleine die linke Marke +beeinflusst, den Kolumnentitel aller Seiten vorgeben. Diese Voreinstellung +entspricht einer aktiven Option +\Option{autooneside}\important{\Option{autooneside}}. Die Option versteht die +Werte für einfache Schalter, die in \autoref{tab:truefalseswitch} auf +\autopageref{tab:truefalseswitch} angegeben sind. Wird die Option deaktiviert, +so wirken sich im einseitigen Satz sowohl das optionale als auch das +obligatorische Argument auf den Kolumnentitel aus.% +% +\begin{Example} + Angenommen, Sie wollen im einseitigen Modus eines Berichts eine ganz + ähnliche Verwendung des Kolumnentitels erreichen, wie im vorherigen + Beispiel. Konkret soll so lange die Kapitelüberschrift verwendet werden, bis + ein Abschnitt gesetzt wird. Ab dann soll nur noch die Abschnittsüberschrift + verwendet werden. Dazu wird das Beispiel wie folgt abgewandelt: +\begin{lstcode} + \documentclass{scrreprt} + \usepackage[autooneside=false]{scrlayer-scrpage} + \pagestyle{scrheadings} + \automark[section]{chapter} + \usepackage{lipsum} + \begin{document} + \chapter{Kapitel} + \lipsum[1-20] + \section{Abschnitt} + \lipsum[21-40] + \end{document} +\end{lstcode} + Wie zu sehen ist, wird in diesem Fall keine ergänzende + \Macro{automark*}-Anweisung benötigt. Sie sollten zum Vergleich die Option + \Option{autooneside} auch einmal auf \PValue{true} setzen oder sie + entfernen. Ein Unterschied ist dann ab Seite~4 im Kolumnentitel im Kopf der + Seiten zu sehen. +\end{Example} + +Das\textnote{Achtung!} Laden des Pakets selbst hat übrigens noch keine +Auswirkung darauf, ob mit automatischen Kolumnentiteln gearbeitet wird oder +nicht. Erst die explizite Verwendung einer der Optionen \Option{automark} oder +\Option{manualmark} oder einer der beiden Anweisungen \Macro{automark} oder +\Macro{manualmark} schafft hier klare Verhältnisse.% +\EndIndex{Option}{autooneside~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{manualmark}% +\EndIndex{Option}{automark}% +\EndIndex{Cmd}{manualmark}% +\EndIndex{Cmd}{automark}% +\fi % ******************************************** Ende nur scrlayer-scrpage * + +\ifshortversion\IgnoreThistrue\IfCommon{scrlayer}{\IgnoreThisfalse}\fi +\ifIgnoreThis %++++++++++++++++++++++++++++++++++++++++++++++ nicht scrlayer + +\else %-------------------------------------------------------- nur scrlayer - +\begin{Declaration} + \KOption{draft}\PName{Ein-Aus-Wert} +\end{Declaration} +\BeginIndex{Option}{draft~=\PName{Ein-Aus-Wert}}% +Die \KOMAScript-Option versteht die Standardwerte für einfache Schalter, die +in \autoref{tab:truefalseswitch} auf \autopageref{tab:truefalseswitch} +angegeben sind. Ist die Option aktiviert, so werden alle Elemente der +Seitenstile zusätzlich mit Maßlinien versehen. Dies kann während der +Entwurfsphase manchmal nützlich sein. Falls diese Option global gesetzt wurde, +die Maßlinien aber nicht gewünscht sind, kann die Option auch nur für das +Paket deaktiviert werden, indem man \OptionValue{draft}{false} als optionales +Argument von \Macro{usepackage} beim Laden des Pakets angibt.% +\EndIndex{Option}{draft~=\PName{Ein-Aus-Wert}}% + +\begin{Declaration} + \Macro{MakeMarkcase}\Parameter{Text} +\end{Declaration} +\BeginIndex{Cmd}{MakeMarkcase}% +Die automatischen, nicht jedoch die manuellen Kolumnentitel verwenden +\Macro{MakeMarkcase} für ihre Ausgabe. Ist die Anweisung beim Laden von +\Package{scrlayer} nicht definiert, so wird sie in der Voreinstellung derart +definiert, dass sie ihr Argument \PName{Text} unverändert ausgibt. Diese +Voreinstellung kann jedoch entweder durch Umdefinierung von +\Macro{MakeMarkcase} oder durch die % +\ifshortversion in \autoref{sec:scrlayer-scrpage.pagestyle.content} % +\else später in diesem Abschnitt % +\fi% +dokumentierte Option +\Option{markcase}\IndexOption{markcase}\important{\Option{markcase}} geändert +werden. Je nach Einstellung wird das Argument dann beispielsweise in Groß- +oder Kleinbuchstaben umgewandelt. +% +\EndIndex{Cmd}{MakeMarkcase}% +\fi %***************************************************** Ende nur scrlayer * + +\ifshortversion\IgnoreThistrue\IfCommon{scrlayer-scrpage}{\IgnoreThisfalse}\fi +\ifIgnoreThis %++++++++++++++++++++++++++++++++++++++ nicht scrlayer-scrpage + +\else %------------------------------------------------ nur scrlayer-scrpage - +\begin{Declaration} + \KOption{markcase}\PName{Wert} +\end{Declaration} +\BeginIndex{Option}{markcase~=\PName{Wert}}% +Wie bereits früher erläutert kann man bei \Package{scrlayer} zwischen +manuellen und automatischen Kolumnentiteln wählen. Bei den automatischen +Kolumnentiteln werden dabei die entsprechenden Marken über die +Gliederungsbefehle gesetzt. In manchen Kulturkreisen ist es im Gegensatz zur +Typografie des deutschsprachigen Raums üblich, die Kolumnentitel in +Großbuchstaben zu setzen. Die Standardklassen machen genau dies in der +Voreinstellung. Das Paket \Package{scrlayer} unterstützt das optional +ebenfalls. Hierzu gibt man als Option +\OptionValue{markcase}{upper}\important{\OptionValue{markcase}{upper}}% +\IndexOption[indexmain]{markcase~=upper} an. Im Endeffekt führt das zu einer +Umdefinierung von \Macro{MakeMarkcase}\IndexCmd[indexmain]{MakeMarkcase}, +einer Anweisung, die von \Package{scrlayer} beim Setzen von automatischen +Kolumnentiteln verwendet wird. + +Leider führt die von \LaTeX{} für derartigen +Versalsatz\Index{Versalsatz} vorgesehene Anweisung +\Macro{MakeUppercase}\IndexCmd{MakeUppercase} zu einem sehr unzureichenden +Satz, da weder gesperrt noch ausgeglichen wird. Dies liegt teilweise sicher +daran, dass für typografisch korrekten Versalsatz eine Glyphenanalyse +notwendig ist, um die konkrete Form der Buchstaben und ihrer Kombinationen in +den Ausgleich der Sperrung einfließen zu lassen. Der \KOMAScript-Autor +empfiehlt daher, auf Versalsatz für die Kolumnentitel zu verzichten. Dies ist +normalerweise mit +\OptionValue{markcase}{used}\important{\OptionValue{markcase}{used}}% +\IndexOption[indexmain]{markcase~=used} möglich. Allerdings fügen einige +Klassen selbst beispielsweise bei den Kolumnentitel für Verzeichnisse ein +\Macro{MakeUppercase} oder sogar die \TeX-Anweisung \Macro{uppercase} ein. Für +diese Fälle gibt es auch noch die Einstellung +\OptionValue{markcase}{noupper}\important{\OptionValue{markcase}{noupper}}% +\IndexOption[indexmain]{markcase~=noupper}, mit deren Hilfe +\Macro{MakeUppercase} und \Macro{uppercase} für die Kolumnentitel lokal +deaktiviert werden können. + +Alle für \Option{markcase} möglichen Werte sind noch einmal in +\autoref{tab:\csname label@base\endcsname.markcase} zusammengefasst. +% +\begin{table} + \centering + \caption[Mögliche Werte für Option \Option{markcase}]{Mögliche Werte für + Option \Option{markcase} zur Wahl von Groß-/Kleinschreibung in + automatischen Kolumnentiteln}% + \label{tab:\csname label@base\endcsname.markcase}% + \begin{desctabular} + \pventry{lower}{\IndexOption{markcase~=\PValue{lower}}% + definiert \Macro{MakeMarkcase} so um, dass automatische Kolumnentitel + mit Hilfe von \Macro{MakeLowercase} in Kleinbuchstaben gewandelt werden + (Minuskelsatz).% + }% + \pventry{upper}{\IndexOption{markcase~=\PValue{upper}}% + definiert \Macro{MakeMarkcase} so um, dass automatische Kolumnentitel + mit Hilfe von \Macro{MakeUppercase} in Großbuchstaben gewandelt werden + (Versalsatz).% + }% + \pventry{used}{\IndexOption{markcase~=\PValue{used}}% + definiert \Macro{MakeMarkcase} so um, dass für automatische + Kolumnentitel keine automatische Veränderung der Groß-/Kleinschreibung + durchgeführt wird.% + }% + \entry{\PValue{ignoreuppercase}, \PValue{nouppercase}, + \PValue{ignoreupper}, + \PValue{noupper}}{\IndexOption{markcase~=\PValue{noupper}}% + definiert nicht nur \Macro{MakeMarkcase} so um, dass für automatische + Kolumnentitel keine automatische Veränderung der Groß-/Kleinschreibung + durchgeführt wird, sondern deaktiviert zusätzlich lokal für alle Ebenen + aller Seitenstile \Macro{MakeUppercase} und \Macro{uppercase}.% + }% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{markcase~=\PName{Wert}}% + +\begin{Declaration} + \Macro{leftmark}\\ + \Macro{rightmark}\\ + \Macro{headmark}\\ + \Macro{pagemark} +\end{Declaration} +\BeginIndex{Cmd}{leftmark}% +\BeginIndex{Cmd}{rightmark}% +\BeginIndex{Cmd}{headmark}% +\BeginIndex{Cmd}{pagemark}% +Will man von den vordefinierten Seitenstilen abweichen, so muss man in der +Regel auch selbst entscheiden können, wo die Marken gesetzt werden sollen. Mit +\Macro{leftmark}\important{\Macro{leftmark}} platziert man die linke +Marke. Diese wird dann bei der Ausgabe der Seite durch den entsprechenden +Inhalt ersetzt. + +Dementsprechend kann man mit \Macro{rightmark}\important{\Macro{rightmark}} +die rechte Marke platzieren, die dann bei der Ausgabe der Seite durch den +entsprechenden Inhalt ersetzt wird. Für einige Feinheiten dabei, sei auch auf +die weiterführenden Erklärungen zu \Macro{rightmark} in +\autoref{sec:maincls-experts.addInfos}, +\autopageref{desc:maincls-experts.cmd.rightmark} verwiesen. + +Mit \Macro{headmark}\important{\Macro{headmark}} kann man sich das Leben +erleichtern. Diese Erweiterung von \Package{scrlayer} entspricht je nachdem, +ob die aktuelle Seite eine linke oder rechte ist, \Macro{leftmark} oder +\Macro{rightmark}. + +Die Anweisung \Macro{pagemark}\important{\Macro{pagemark}} hat genau genommen +nichts mit den Marken von \TeX{} zu tun. Sie dient dazu eine formatierte +Seitenzahl zu platzieren. +\BeginIndex{FontElement}{pagenumber}% +Bei ihrer Ausgabe wird dann auch die Schrifteinstellung für das Element +\FontElement{pagenumber}\important{\FontElement{pagenumber}} verwendet. Diese +kann mit Hilfe der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} +verändert werden (siehe auch \autoref{sec:maincls.textmarkup}, +\autopageref{desc:maincls.cmd.setkomafont}).% +\EndIndex{FontElement}{pagenumber}% +% +\begin{Example} + Angenommen, Sie wollen, dass auch im einseitigen Modus der Kolumnentitel + immer am linken Rand und die Seitenzahl immer am rechten Rand ausgerichtet + wird. Beide sollen im Kopf platziert werden. Das folgende, vollständige + Minimalbeispiel liefert genau dies: +\begin{lstcode} + \documentclass{scrreprt} + \usepackage{blindtext} + \usepackage[automark]{scrlayer-scrpage} + \pagestyle{scrheadings} + \ihead{\headmark} + \ohead[\pagemark]{\pagemark} + \chead{} + \cfoot[]{} + \begin{document} + \blinddocument + \end{document} +\end{lstcode} + Das Paket \Package{blindtext}\IndexPackage{blindtext} mit seiner Anweisung + \Macro{blinddocument}\IndexCmd{blinddocument} wird hier für die komfortable + Erzeugung eines Beispieldokumentinhalts verwendet. + + Mit den Anweisungen \Macro{ihead}\IndexCmd{ihead} und + \Macro{ohead}\IndexCmd{ohead} werden die gewünschten Marken platziert. Dabei + wird die Seitenzahl-Marke mit Hilfe des optionalen Argument von + \Macro{ohead} nicht nur auf den mit + \Pagestyle{scrheadings}\IndexPagestyle{scrheadings} gesetzten Seiten, + sondern auch für den auf der ersten Seite automatisch verwendeten + \Pagestyle{plain}-Seitenstil + \Pagestyle{plain.scrheadings}\IndexPagestyle{plain.scrheadings} + konfiguriert. + + Da die beiden Seitenstile bereits mit Marken in der Mitte von Kopf und Fuß + vordefiniert sind, werden diese beiden Elemente mit \Macro{chead} und + \Macro{cfoot} gelöscht. Hierzu werden leere Argumente verwendet. Alternativ + dazu hätte man auch + \Macro{clearpairofpagestyles}\IndexCmd{clearpairofpagestyles} \emph{vor} + \Macro{ihead} verwenden können. Diese Anweisung wird jedoch erst in + \autoref{sec:scrlayer-scrpage-experts.pagestyle.pairs} auf + \autopageref{desc:scrlayer-scrpage-experts.cmd.clearpairofpagestyles} erklärt + werden. +\end{Example} + +Bitte beachten Sie, dass das leere optionale Argument bei \Macro{cfoot} im +Beispiel nicht gleichbedeutend mit dem Weglassen dieses optionalen Arguments +ist. Sie sollten das einmal selbst ausprobieren und dabei den Fuß der ersten +Seite beobachten.% +\EndIndex{Cmd}{pagemark}% +\EndIndex{Cmd}{headmark}% +\EndIndex{Cmd}{rightmark}% +\EndIndex{Cmd}{leftmark}% + +\begin{Declaration} + \Macro{partmarkformat}\\ + \Macro{chaptermarkformat}\\ + \Macro{sectionmarkformat}\\ + \Macro{subsectionmarkformat}\\ + \Macro{subsubsectionmarkformat}\\ + \Macro{paragraphmarkformat}\\ + \Macro{subparagraphmarkformat} +\end{Declaration} +\BeginIndex{Cmd}{partmarkformat}% +\BeginIndex{Cmd}{chaptermarkformat}% +\BeginIndex{Cmd}{sectionmarkformat}% +\BeginIndex{Cmd}{subsectionmarkformat}% +\BeginIndex{Cmd}{subsubsectionmarkformat}% +\BeginIndex{Cmd}{paragraphmarkformat}% +\BeginIndex{Cmd}{subparagraphmarkformat}% +Diese Anweisungen werden von den \KOMAScript-Klassen und auch von +\Package{scrlayer} intern üblicherweise verwendet, um die Gliederungsnummern +der automatischen Kolumnentitel zu formatieren. Dabei wird auch der +\Macro{autodot}-Mechanismus der \KOMAScript-Klassen unterstützt. Bei Bedarf +können diese Anweisungen umdefiniert werden, um eine andere Formatierung der +Nummern zu erreichen. +% +\begin{Example} + Angenommen, Sie wollen, dass Abschnittsüberschriften im Kolumnentitel ohne + Gliederungsnummer gesetzt werden, so ist das ganz einfach mit: +\begin{lstcode} + \renewcommand*{\sectionmarkformat}{} +\end{lstcode} + zu erreichen. +\end{Example}% +% +\EndIndex{Cmd}{subparagraphmarkformat}% +\EndIndex{Cmd}{paragraphmarkformat}% +\EndIndex{Cmd}{subsubsectionmarkformat}% +\EndIndex{Cmd}{subsectionmarkformat}% +\EndIndex{Cmd}{sectionmarkformat}% +\EndIndex{Cmd}{chaptermarkformat}% +\EndIndex{Cmd}{partmarkformat}% + +\begin{Declaration} + \Macro{partmark}\Parameter{Text}\\ + \Macro{chaptermark}\Parameter{Text}\\ + \Macro{sectionmark}\Parameter{Text}\\ + \Macro{subsectionmark}\Parameter{Text}\\ + \Macro{subsubsectionmark}\Parameter{Text}\\ + \Macro{paragraphmark}\Parameter{Text}\\ + \Macro{subparagraphmark}\Parameter{Text} +\end{Declaration} +\BeginIndex{Cmd}{partmark}% +\BeginIndex{Cmd}{chaptermark}% +\BeginIndex{Cmd}{sectionmark}% +\BeginIndex{Cmd}{subsectionmark}% +\BeginIndex{Cmd}{subsubsectionmark}% +\BeginIndex{Cmd}{paragraphmark}% +\BeginIndex{Cmd}{subparagraphmark}% +Diese Anweisungen werden intern von den meisten Klassen verwendet, um die +Marken entsprechend der Gliederungsbefehle zu setzen. Dabei wird als Argument +lediglich der Text, nicht jedoch die Nummer erwartet. Die Nummer wird +stattdessen automatisch über den aktuellen Zählerstand ermittelt, falls mit +nummerierten Überschriften gearbeitet wird. + +Falls diese Anweisungen vom Anwender umdefiniert werden, sollte +er\textnote{Achtung!} unbedingt darauf achten, vor dem Setzen der Nummer +ebenfalls über \Counter{secnumdepth} zu prüfen, ob die Nummern auszugeben +sind. Dies gilt auch, wenn der Anwender \Counter{secnumdepth} selbst nicht +verändert, weil Pakete und Klassen sich eventuell auf die Wirkung von +\Counter{secnumdepth} verlassen! + +Das Paket \Package{scrlayer} definiert diese Anweisungen außerdem bei jedem +Aufruf von \Macro{automark} oder \Macro{manualmark} oder den entsprechenden +Optionen teilweise neu, um so die gewünschten automatischen oder manuellen +Kolumnentitel zu erreichen.% +\EndIndex{Cmd}{subparagraphmark}% +\EndIndex{Cmd}{paragraphmark}% +\EndIndex{Cmd}{subsubsectionmark}% +\EndIndex{Cmd}{subsectionmark}% +\EndIndex{Cmd}{sectionmark}% +\EndIndex{Cmd}{chaptermark}% +\EndIndex{Cmd}{partmark}% + +\begin{Declaration} + \Macro{markleft}\Parameter{linke Marke}\\ + \Macro{markright}\Parameter{rechte Marke}\\ + \Macro{markboth}\Parameter{linke Marke}\Parameter{rechte Marke} +\end{Declaration} +\BeginIndex{Cmd}{markleft}% +\BeginIndex{Cmd}{markright}% +\BeginIndex{Cmd}{markboth}% +Unabhängig davon, ob gerade mit manuellen oder automatischen Kolumnentiteln +gearbeitet wird, kann man jederzeit die \PName{linke Marke} oder \PName{rechte + Marke} mit einer dieser Anweisungen setzen. Dabei ist zu beachten, dass die +resultierende linke Marke in +\Macro{leftmark}\IndexCmd{leftmark}\important{\Macro{leftmark}} die letzte auf +der entsprechenden Seite gesetzte Marke ist, während die resultierende rechte +Marke in \Macro{rightmark}\IndexCmd{rightmark}\important{\Macro{rightmark}} +die erste auf der entsprechenden Seite gesetzte Marke ausgibt. Näheres dazu +ist den weiterführenden Erklärungen zu \Macro{rightmark} in +\autoref{sec:maincls-experts.addInfos}, +\autopageref{desc:maincls-experts.cmd.rightmark} zu entnehmen. + +Wird mit manuellen Kolumnentiteln\Index{Kolumnentitel>manuell} gearbeitet, so +bleiben die Marken gültig, bis sie durch erneute Verwendung der entsprechenden +Anweisung explizit ersetzt werden. Bei automatischen Kolumnentiteln können +Marken hingegen je nach Konfigurierung des Automatismus ihre Gültigkeit mit +einer der nächsten Gliederungsüberschriften verlieren. + +Auch im Zusammenhang mit den Sternvarianten der Gliederungsbefehle können +diese Anweisungen nützlich sein.% +% +\begin{Example} + Angenommen Sie schreiben noch vor dem Inhaltsverzeichnis ein Vorwort über + mehrere Seiten, das jedoch im Inhaltsverzeichnis nicht auftauchen + soll. Da Sie aber Trennlinien im Kopf verwenden, soll der Kolumnentitel das + Vorwort dennoch zeigen: +\begin{lstcode} + \documentclass[headsepline]{book} + \usepackage{scrlayer-scrpage} + \pagestyle{scrheadings} + \usepackage{blindtext} + \begin{document} + \chapter*{Vorwort} + \markboth{Vorwort}{Vorwort} + \blindtext[20] + \tableofcontents + \blinddocument + \end{document} +\end{lstcode} + Zunächst erscheint das Ergebnis wunschgemäß. Beim zweiten Blick fällt aber + auf, dass der Kolumnentitel »\texttt{Vorwort}« im Gegensatz zu den übrigen + Kolumnentiteln nicht im Versalsatz erscheint. Das ist jedoch leicht zu + ändern: +\begin{lstcode} + \documentclass[headsepline]{book} + \usepackage{scrlayer-scrpage} + \pagestyle{scrheadings} + \usepackage{blindtext} + \begin{document} + \chapter*{Vorwort} + \markboth{\MakeMarkcase{Vorwort}} + {\MakeMarkcase{Vorwort}} + \blindtext[20] + \tableofcontents + \blinddocument + \end{document} +\end{lstcode} + Wie zu sehen ist, wurde + \Macro{MakeMarkcase}\IndexCmd{MakeMarkcase}\important{\Macro{MakeMarkcase}} + verwendet, um auch den manuell korrigierten Kolumnentitel des Vorworts + entsprechend der automatischen Kolumnentitel des restlichen Dokuments + anzupassen. + + Verschieben Sie nun einmal \Macro{tableofcontents}% + \Index{Inhaltsverzeichnis}\IndexCmd{tableofcontents}% + \important{\Macro{tableofcontents}} vor das Vorwort und entfernen Sie die + \Macro{markboth}-Anweisung. Sie werden entdecken, dass das Vorwort als + Kolumnentitel nun »\texttt{CONTENTS}« trägt. Das liegt an einer Eigenart von + \Macro{chapter*}\IndexCmd{chapter*}\important{\Macro{chapter*}} (siehe auch + in \autoref{sec:maincls.structure} auf + \autopageref{desc:maincls.cmd.chapter*}). Soll hier stattdessen kein + Kolumnentitel erscheinen, so ist dies sehr einfach mit \Macro{markboth} mit + zwei leeren Argumenten zu erreichen: +\begin{lstcode} + \documentclass[headsepline]{book} + \usepackage{scrlayer-scrpage} + \pagestyle{scrheadings} + \usepackage{blindtext} + \begin{document} + \tableofcontents + \chapter*{Vorwort} + \markboth{}{} + \blindtext[20] + \blinddocument + \end{document} +\end{lstcode} +\end{Example} +% +\EndIndex{Cmd}{markboth}% +\EndIndex{Cmd}{markright}% +\EndIndex{Cmd}{markleft}% + +\fi %********************************************* Ende nur scrlayer-scrpage * +\fi %*********************************** Ende nicht scrlayer-scrpage-experts * + + +\ifshortversion\IgnoreThisfalse\IfCommon{scrlayer-scrpage}{\IgnoreThistrue}\fi +\ifIgnoreThis %+++++++++++++++++++++++++++++++++++++++ auch scrlayer-scrpage + +\else %---------------------------------------------- nicht scrlayer-scrpage - +\ifCommonscrlayerscrpage\else %---------------------- nicht scrlayer-scrpage - +\begin{Declaration} + \Macro{GenericMarkFormat}\Parameter{Gliederungsname} +\end{Declaration} +\BeginIndex{Cmd}{GenericMarkFormat}% +Diese Anweisung wird in der Voreinstellung zur Formatierung aller +Gliederungsnummern in automatischen Kolumnentiteln unterhalb der +Unterabschnitte und bei Klassen ohne \Macro{chapter} zusätzlich auch für die +Ebene der Abschnitte und Unterabschnitte verwendet, soweit die entsprechenden +Mark-Anweisungen nicht bereits anderweitig definiert sind. Dabei verwendet die +Anweisung in der Voreinstellung +\Macro{@seccntmarkformat}\IndexCmd{@seccntmarkformat}% +\important{\Macro{@seccntmarkformat}}, wenn eine solche interne Anweisung wie +bei den \KOMAScript-Klassen definiert ist. Anderenfalls wird mit +\Macro{@seccntformat}\IndexCmd{@seccntformat}\important{\Macro{@seccntformat}} +eine Anweisung verwendet, die bereits vom \LaTeX-Kern für Klassen und Pakete +bereitgestellt wird. Als Argument erwartet \Macro{GenericMarkFormat} den Namen +der Gliederung, also beispielsweise \PValue{chapter} oder \PValue{section} +\emph{ohne} vorangestellten umgekehrten Schrägstrich (engl. \emph{backslash}). + +Durch Umdefinierung dieser Anweisung kann damit die Standardformatierung aller +Gliederungsnummern im Kolumnentitel geändert werden, die darauf +zurückgreifen. Ebenso kann eine Klasse darüber eine andere +Standardformatierung vorgeben, ohne alle Befehle einzeln ändern zu müssen.% +% +\begin{Example} + Angenommen, Sie wollen, dass bei allen Gliederungsnummern im Kolumnentitel + eines Artikels die Nummer als weiße Schrift auf einem schwarzen Kasten + ausgegeben wird. Da bei Artikeln mit \Class{article} die Anweisungen + \Macro{sectionmarkformat}\IndexCmd{sectionmarkformat}% + \important{\Macro{sectionmarkformat}\\\Macro{subsectionmarkformat}} und + \Macro{subsectionmarkformat}\IndexCmd{subsectionmarkformat} von + \Package{scrlayer} mit Hilfe von \Macro{GenericMarkFormat} definiert werden, + genügt dafür die entsprechende Umdefinierung dieser einen Anweisung: +\begin{lstcode}[moretexcs={colorbox,textcolor}] + \documentclass{article} + \usepackage{blindtext} + \usepackage[automark]{scrlayer-scrpage} + \pagestyle{scrheadings} + \usepackage{xcolor} + \newcommand*{\numberbox}[1]{% + \colorbox{black}{% + \strut~\textcolor{white}{#1}~% + }% + } + \renewcommand*{\GenericMarkFormat}[1]{% + \protect\numberbox{\csname the#1\endcsname}% + \enskip + } + \begin{document} + \blinddocument + \end{document} +\end{lstcode} + Für die Farbumschaltungen werden Anweisungen des Pakets + \Package{xcolor}\IndexPackage{xcolor} verwendet. Näheres dazu ist der + Anleitung zum Paket zu entnehmen (siehe \cite{package:xcolor}). + + Außerdem wird eine unsichtbare Stütze mit \Macro{strut} eingefügt. Diese + Anweisung sollte in keiner ausführlichen \LaTeX-Einführung fehlen. + + Für den Kasten mit der Nummer wird eine eigene Hilfsanweisung + \Macro{numberbox} definiert. Diese wird in der Umdefinierung von + \Macro{GenericMarkFormat} mit + \Macro{protect}\IndexCmd{protect}\important{\Macro{protect}} vor der + Expansion geschützt. Dies ist notwendig, weil sonst durch das + \Macro{MakeUppercase}\IndexCmd{MakeUppercase}\important{\Macro{MakeUppercase}} + für den Versalsatz der Kolumnentitel nicht mehr die Farben »\texttt{black}« + und »\texttt{white}«, sondern die Farben »\texttt{BLACK}« und + »\texttt{WHITE}« verlangt werden, die gar nicht definiert sind. Alternativ + könnte man \Macro{numberbox} auch mit Hilfe von + \Macro{DeclareRobustCommand*} statt mit \Macro{newcommand*} definieren + (siehe \cite{latex:clsguide}). + + Wollte man dasselbe mit einer \KOMAScript-Klasse oder mit den + Standardklassen \Class{book} oder \Class{report} erreichen, so müsste man + übrigens zusätzlich \Macro{sectionmarkformat}\IndexCmd{sectionmarkformat}% + \important{\Macro{sectionmarkformat}} und -- je nach Klasse -- + \Macro{subsectionmarkformat}\IndexCmd{subsectionmarkformat}% + \important{\Macro{subsectionmarkformat}} beziehungsweise + \Macro{chaptermarkformat}\IndexCmd{chaptermarkformat}% + \important{\Macro{chaptermarkformat}} umdefinieren, da diese bei Verwendung + der genannten Klassen \Macro{GenericMarkFormat} nicht verwenden: +\begin{lstcode}[moretexcs={colorbox,textcolor}] + \documentclass{scrbook} + \usepackage{blindtext} + \usepackage[automark]{scrlayer-scrpage} + \pagestyle{scrheadings} + \usepackage{xcolor} + \newcommand*{\numberbox}[1]{% + \colorbox{black}{% + \strut~\textcolor{white}{#1}~% + }% + } + \renewcommand*{\GenericMarkFormat}[1]{% + \protect\numberbox{\csname the#1\endcsname}% + \enskip + } + \renewcommand*{\chaptermarkformat}{% + \GenericMarkFormat{chapter}% + } + \renewcommand*{\sectionmarkformat}{% + \GenericMarkFormat{section}% + } + \begin{document} + \blinddocument + \end{document} +\end{lstcode} +\end{Example} +\EndIndex{Cmd}{GenericMarkFormat}% + +\begin{Declaration} + \Macro{@mkleft}\Parameter{linke Marke}\\ + \Macro{@mkright}\Parameter{rechte Marke}\\ + \Macro{@mkdouble}\Parameter{Marke}\\ + \Macro{@mkboth}\Parameter{linke Marke}\Parameter{rechte Marke} +\end{Declaration} +\BeginIndex{Cmd}{@mkleft}% +\BeginIndex{Cmd}{@mkright}% +\BeginIndex{Cmd}{@mkdouble}% +\BeginIndex{Cmd}{@mkboth}% +Innerhalb der Klassen und Pakete kommt es vor, dass Kolumnentitel nur dann +gesetzt werden sollen, wenn automatische Kolumnentitel (siehe Option +\Option{automark} und Anweisung \Macro{automark} auf +\autopageref{desc:scrlayer-scrpage.cmd.automark}) aktiviert sind. Bei den +Standardklassen geht dies ausschließlich über \Macro{@mkboth}. Diese Anweisung +entspricht entweder \Macro{\@gobbletwo}, einer Anweisung, die ihre beiden +Argumente vernichtet, oder \Macro{markboth}, einer Anweisung, mit der sowohl +eine \PName{linke Marke} als auch eine \PName{rechte Marke} gesetzt +wird. Pakete wie \Package{babel} hängen sich ebenfalls in \Macro{\@mkboth} +ein, um beispielsweise noch eine Sprachumschaltung im Kolumnentitel +vorzunehmen. + +Will man nun jedoch nur eine \PName{linke Marke} oder nur eine \PName{rechte + Marke} setzen, ohne die jeweils andere Marke zu verändern, so fehlen +entsprechende Anweisungen. Das Paket \Package{scrlayer} selbst benötigt +entsprechende Anweisungen beispielsweise im Rahmen der automatischen +Kolumnentitel. Sind \Macro{@mkleft} zum Setzen nur der \PName{linken Marke}, +\Macro{@mkright} zum Setzen nur der \PName{rechten Marke} oder +\Macro{@mkdouble} zum Setzen sowohl der rechten als auch der linken +\PName{Marke} mit demselben Inhalt beim Laden von \Package{scrlayer} nicht +definiert, so werden sie vom Paket selbst definiert. Dabei wird eine +Definition gewählt, die am Zustand von \Macro{@mkboth} erkennt, ob mit +automatischen Kolumnentiteln gearbeitet wird. Nur in diesem Fall setzen die +Befehle auch eine entsprechende Marke.% + +Klassen- und Paketautoren können ebenfalls auf diese Anweisungen +zurückgreifen, wenn sie nur linke oder nur rechte Marken setzen wollen und +auch diese nur, wenn mit automatischen Kolumnentiteln gearbeitet wird.% +\EndIndex{Cmd}{@mkboth}% +\EndIndex{Cmd}{@mkdouble}% +\EndIndex{Cmd}{@mkright}% +\EndIndex{Cmd}{@mkleft}% + +\fi %******************************************* Ende nicht scrlayer-scrpage * +\fi %******************************************* Ende nicht scrlayer-scrpage * + +\ifshortversion% +\IfCommon{scrlayer}{% + Zu weiteren Möglichkeiten zur Beeinflussung der Inhalte von Seitenstilen + siehe auch \autoref{sec:scrlayer-scrpage.pagestyle.content}, + \autopageref{sec:scrlayer-scrpage.pagestyle.content}.% +}% +\fi + +%%% Local Variables: +%%% mode: latex +%%% mode: flyspell +%%% coding: iso-latin-1 +%%% ispell-local-dictionary: "de_DE" +%%% TeX-master: "scrlayer-de.tex" +%%% TeX-PDF-mode: t +%%% End: + +% LocalWords: Seitenstilen Ebenenmodell scrpage headings myheadings plain +% LocalWords: empty scrlayer Seitenstil Rückgriffe Gliederungsnummern +% LocalWords: Standardklassen Seitenstile konsistenteren Befehlssatzes +% LocalWords: Einstellmöglichkeiten Seiteninhalts Gliederungsüberschrift +% LocalWords: Maßlinien Entwurfsphase Unterabschnittsüberschrift Versalsatz +% LocalWords: Abschnittsüberschrift Kapitelüberschrift Glyphenanalyse +% LocalWords: Hilfsanweisung diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-5.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-5.tex index 849dd14f962..e820a04c572 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-5.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-5.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-5.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-5.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,33 +45,41 @@ % % ====================================================================== -\ProvidesFile{common-5.tex}[2012/01/01 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-5.tex} + [$Date: 2013-12-12 12:01:33 +0100 (Do, 12. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \makeatletter \@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% \@ifundefined{ifCommonscrextend}{\newif\ifCommonscrextend}{}% \@ifundefined{ifCommonscrlttr}{\newif\ifCommonscrlttr}{}% \@ifundefined{ifIgnoreThis}{\newif\ifIgnoreThis}{}% +\@ifundefined{ifCommonscrlayer-scrpage}{% + \expandafter\newif\csname ifCommonscrlayer-scrpage\endcsname +}{} +\expandafter\let\expandafter\ifCommonscrlayerscrpage +\csname ifCommonscrlayer-scrpage\endcsname \makeatother - \section{Textauszeichnungen} \label{sec:\csname label@base\endcsname.textmarkup}% -\ifshortversion\IgnoreThisfalse\IfCommon{scrlttr2}{\IgnoreThistrue}\fi% -\ifIgnoreThis %++++++++++++++++++++++++++++++++++++++++++++++ nur scrlttr2 + +\IgnoreThisfalse +\ifshortversion\IgnoreThistrue\ifCommonmaincls\IgnoreThisfalse\fi\fi% +\ifIgnoreThis %+++++++++++++++++++++++++++++++ Kurzfassung (nicht maincls) + Es gilt sinngemäß, was in \autoref{sec:maincls.textmarkup} geschrieben wurde. Dabei sind Namen und Bedeutung der einzelnen Elemente in -\else %---------------------------------------------------- nicht scrlttr2 - +\else %----------------------------------------- Langfassung (nur maincls) - \BeginIndex{}{Text>Auszeichnung}% \BeginIndex{}{Schrift>Art}% -\LaTeX{} verfügt über eine ganze Reihe von Anweisungen zur -Textauszeichnung. Neben der Wahl der Schriftart gehören dazu auch Befehle zur -Wahl einer Textgröße oder der Textausrichtung. Näheres zu den normalerweise -definierten Möglichkeiten ist \cite{l2kurz}, \cite{latex:usrguide} und -\cite{latex:fntguide} zu entnehmen. - +\LaTeX{} verfügt über eine ganze Reihe von Anweisungen zur Textauszeichnung. % +% Umbruchkorrektur +\IfNotCommon{scrlttr2}{Neben der Wahl der Schriftart gehören dazu auch Befehle + zur Wahl einer Textgröße oder der Textausrichtung. }% +Näheres zu den normalerweise definierten Möglichkeiten ist \cite{l2kurz}, +\cite{latex:usrguide} und \cite{latex:fntguide} zu entnehmen. +\ifCommonscrlayerscrpage\else \begin{Declaration} \Macro{textsuperscript}\Parameter{Text}\\ \Macro{textsubscript}\Parameter{Text} @@ -151,6 +159,7 @@ geschweifte Klammern gesetzt wurden.% % \EndIndex{Cmd}{textsuperscript}% \EndIndex{Cmd}{textsubscript}% +\fi% \ifCommonscrlayerscrpage \begin{Declaration} @@ -179,34 +188,516 @@ entnehmen Sie bitte \cite{l2kurz}, \cite{latex:usrguide} oder \cite{latex:fntguide}. Auch Farbumschaltungen wie \Macro{normalcolor} sind möglich (siehe \cite{package:graphics} und \cite{package:xcolor}). \iffalse % Umbruchkorrekturtext -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. \else Die Verwendung -anderer Anweisungen, inbesondere solcher, die Umdefinierungen vornehmen oder -zu Ausgaben führen, ist nicht vorgesehen. Seltsames Verhalten ist in diesen -Fällen möglich und stellt keinen Fehler dar. \fi + 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. + \else Die Verwendung anderer Anweisungen, inbesondere solcher, die + Umdefinierungen vornehmen oder zu Ausgaben führen, ist nicht vorgesehen. + Seltsames Verhalten ist in diesen Fällen möglich und stellt keinen Fehler + dar.% +\fi 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, sondern nur in der Dokumentpräambel zu verwenden. Beispiele für die Verwendung entnehmen Sie bitte den Abschnitten -zu den jeweiligen Elementen. Namen und Bedeutung der einzelnen Elemente sind +zu den jeweiligen Elementen. Namen und Bedeutung der einzelnen Elemente +\IfCommon{scrlayer-scrpage}{und deren Voreinstellungen }sind in % -\fi %************************************************* Ende nicht scrlttr2 * -\IfNotCommon{scrextend}{\autoref{tab:\csname - label@base\endcsname.elementsWithoutText} }% +\fi %******************************************* Ende Langform (nur maincls) * +\IfNotCommon{scrextend}{\IfNotCommon{scrlayer-scrpage}{\autoref{tab:\csname + label@base\endcsname.elementsWithoutText} }}% \IfCommon{scrextend}{\autoref{tab:maincls.elementsWithoutText}, \autopageref{tab:maincls.elementsWithoutText} }% +\IfCommon{scrlayer-scrpage}{\autoref{tab:scrlayer-scrpage.fontelements}, + \autopageref{tab:scrlayer-scrpage.fontelements} }% aufgelistet. % \IfCommon{scrextend}{Allerdings werden davon in \Package{scrextend} nur die Elemente für den Dokumenttitel, den schlauen Spruch, die Fußnoten und die - \Environment{labeling}-Umgebung - behandelt. Das Element \FontElement{disposition} ist zwar auch verfügbar, - wird jedoch von \Package{scrextend} ebenfalls nur für den Dokumenttitel - verwendet. }% -Die Voreinstellungen sind den jeweiligen Abschnitten zu entnehmen. + \Environment{labeling}-Umgebung behandelt. Das Element + \FontElement{disposition} ist zwar auch verfügbar, wird jedoch von + \Package{scrextend} ebenfalls nur für den Dokumenttitel verwendet.% +}% +\IfNotCommon{scrlayer-scrpage}{Die Voreinstellungen sind den jeweiligen + Abschnitten zu entnehmen.}% + +\ifIgnoreThis %+++++++++++++++++++++++++++++++ Kurzfassung (nicht maincls) + +\else %----------------------------------------- Langfassung (nur maincls) - + +Mit der Anweisung \Macro{usekomafont} kann die aktuelle Schriftart auf +diejenige umgeschaltet werden, die für das angegebene \PName{Element} +definiert ist. +\ifCommonmaincls % +++++++++++++++++++++++++++++++++++++++++++ nur maincls + +\begin{Example} + \phantomsection\label{desc:maincls.setkomafont.example}% + Angenommen, für das Element + \FontElement{captionlabel} soll dieselbe Schriftart wie + für \FontElement{descriptionlabel} verwenden. Das + erreichen Sie einfach mit: +\begin{lstcode} + \setkomafont{captionlabel}{% + \usekomafont{descriptionlabel}% + } +\end{lstcode} + Weitere Beispiele finden Sie in den Abschnitten zu den jeweiligen + Elementen. +\end{Example} +\begin{desclist} + \desccaption{% + Elemente, deren Schrift bei \Class{scrbook}, \Class{scrreprt} oder + \Class{scrartcl} mit \Macro{setkomafont} und \Macro{addtokomafont} + verändert werden kann\label{tab:maincls.elementsWithoutText}% + }{% + Elemente, deren Schrift verändert werden kann (\emph{Fortsetzung})% + }% + \feentry{author}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}}% + Autorangaben im Haupttitel des Dokuments mit \Macro{maketitle}, also das + Argument von \Macro{author} (siehe \autoref{sec:maincls.titlepage}, + \autopageref{desc:maincls.cmd.author})}% + \feentry{caption}{Text einer Abbildungs- oder Tabellenunter- oder + "~überschrift (siehe \autoref{sec:maincls.floats}, + \autopageref{desc:maincls.cmd.caption})}% + \feentry{captionlabel}{% + Label einer Abbildungs- oder Tabellenunter- oder "~überschrift; Anwendung + erfolgt nach dem Element \FontElement{caption} (siehe + \autoref{sec:maincls.floats}, \autopageref{desc:maincls.cmd.caption})}% + \feentry{chapter}{% + Überschrift der Ebene \Macro{chapter} (siehe + \autoref{sec:maincls.structure}, \autopageref{desc:maincls.cmd.chapter})}% + \feentry{chapterentry}{% + Inhaltsverzeichniseintrag der Ebene \Macro{chapter} (siehe + \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{chapterentrypagenumber}{% + Seitenzahl des Inhaltsverzeichniseintrags der Ebene \Macro{chapter} + abweichend vom Element \FontElement{chapterentry} (siehe + \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{chapterprefix}{% + Kapitelnummernzeile bei Einstellung \OptionValue{chapterprefix}{true} oder + \OptionValue{appendixprefix}{true} (siehe \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.option.chapterprefix})}% + \feentry{date}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}}% + Datum im Haupttitel des Dokuments mit \Macro{maketitle}, also das Argument + von \Macro{date} (siehe \autoref{sec:maincls.titlepage}, + \autopageref{desc:maincls.cmd.date})}% + \feentry{dedication}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}}% + Widmung nach dem Haupttitel des Dokuments mit \Macro{maketitle}, also das + Argument von \Macro{dedication} (siehe \autoref{sec:maincls.titlepage}, + \autopageref{desc:maincls.cmd.dedication})}% + \feentry{descriptionlabel}{% + Label, also das optionale Argument der \Macro{item}-Anweisung, in einer + \Environment{description}-Umgebung (siehe \autoref{sec:maincls.lists}, + \autopageref{desc:maincls.env.description})}% + \feentry{dictum}{% + mit \Macro{dictum} gesetzter schlauer Spruch (siehe + \autoref{sec:maincls.dictum}, \autopageref{desc:maincls.cmd.dictum})}% + \feentry{dictumauthor}{% + Urheber eines schlauen Spruchs; Anwendung erfolgt nach dem Element + \FontElement{dictum} (siehe \autoref{sec:maincls.dictum}, + \autopageref{desc:maincls.cmd.dictum})}% + \feentry{dictumtext}{% + alternative Bezeichnung für \FontElement{dictum}}% + \feentry{disposition}{% + 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 + Gliederungsebene (siehe \autoref{sec:maincls.structure} ab + \autopageref{sec:maincls.structure})}% + \feentry{footnote}{% + Marke und Text einer Fußnote (siehe \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.footnote})}% + \feentry{footnotelabel}{% + Marke einer Fußnote; Anwendung erfolgt nach dem Element + \FontElement{footnote} (siehe \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.footnote})}% + \feentry{footnotereference}{% + Referenzierung der Fußnotenmarke im Text (siehe + \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.footnote})}% + \feentry{footnoterule}{% + Linie\ChangedAt{v3.07}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} über dem Fußnotenapparat (siehe + \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.setfootnoterule})}% + \feentry{labelinglabel}{% + Label, also das optionale Argument der \Macro{item}-Anweisung, und + Trennzeichen, also das optionale Argument der + \Environment{labeling}-Umgebung, in einer \Environment{labeling}-Umgebung + (siehe \autoref{sec:maincls.lists}, + \autopageref{desc:maincls.env.labeling})}% + \feentry{labelingseparator}{% + Trennzeichen, also das optionale Argument der + \Environment{labeling}-Umgebung, in einer \Environment{labeling}-Umgebung; + Anwendung erfolgt nach dem Element \FontElement{labelinglabel} (siehe + \autoref{sec:maincls.lists}, \autopageref{desc:maincls.env.labeling})}% + \feentry{minisec}{% + mit \Macro{minisec} gesetzte Überschrift (siehe + \autoref{sec:maincls.structure} ab + \autopageref{desc:maincls.cmd.minisec})}% + \feentry{pagefoot}{% + wird nur verwendet, wenn das Paket \Package{scrlayer-scrpage}\iffree{ oder + \Package{scrpage2}}{} geladen ist (siehe + \autoref{cha:scrlayer-scrpage}, + \autopageref{desc:scrlayer-scrpage.fontelement.pagefoot}\iffree{ + beziehungsweise \autoref{cha:scrpage}, + \autopageref{desc:scrpage.fontelement.pagefoot}}{})}% + \feentry{pagehead}{% + alternative Bezeichnung für \FontElement{pageheadfoot}}% + \feentry{pageheadfoot}{% + Seitenkopf und Seitenfuß bei allen von \KOMAScript{} definierten + Seitenstilen (siehe \autoref{sec:maincls.pagestyle} ab + \autopageref{sec:maincls.pagestyle})}% + \feentry{pagenumber}{% + Seitenzahl im Kopf oder Fuß der Seite (siehe + \autoref{sec:maincls.pagestyle})}% + \feentry{pagination}{% + alternative Bezeichnung für \FontElement{pagenumber}}% + \feentry{paragraph}{% + Überschrift der Ebene \Macro{paragraph} (siehe + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.paragraph})}% + \feentry{part}{% + Überschrift der Ebene \Macro{part}, jedoch ohne die Zeile mit der Nummer + des Teils (siehe \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.part})}% + \feentry{partentry}{% + Inhaltsverzeichniseintrag der Ebene \Macro{part} (siehe + \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{partentrypagenumber}{% + Seitenzahl des Inhaltsverzeichniseintrags der Ebene \Macro{part} + abweichend vom Element \FontElement{partentry} (siehe + \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{partnumber}{% + Zeile mit der Nummer des Teils in Überschrift der Ebene \Macro{part} + (siehe \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.part})}% + \feentry{publishers}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}}% + Verlagsangabe im Haupttitel des Dokuments mit \Macro{maketitle}, also das + Argument von \Macro{publishers} (siehe \autoref{sec:maincls.titlepage}, + \autopageref{desc:maincls.cmd.publishers})}% + \feentry{section}{% + Überschrift der Ebene \Macro{section} (siehe + \autoref{sec:maincls.structure}, \autopageref{desc:maincls.cmd.section})}% + \feentry{sectionentry}{% + Inhaltsverzeichniseintrag der Ebene \Macro{section} (nur bei + \Class{scrartcl} verfügbar, siehe \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{sectionentrypagenumber}{% + Seitenzahl des Inhaltsverzeichniseintrags der Ebene \Macro{section} + abweichend vom Element \FontElement{sectionentry} (nur bei + \Class{scrartcl} verfügbar, siehe \autoref{sec:maincls.toc}, + \autopageref{desc:maincls.cmd.tableofcontents})}% + \feentry{sectioning}{% + alternative Bezeichnung für \FontElement{disposition}}% + \feentry{subject}{% + Typisierung des Dokuments, also das Argument von \Macro{subject} auf der + Haupttitelseite mit \Macro{maketitle} (siehe + \autoref{sec:maincls.titlepage}, \autopageref{desc:maincls.cmd.subject})}% + \feentry{subparagraph}{% + Überschrift der Ebene \Macro{subparagraph} (siehe + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.subparagraph})}% + \feentry{subsection}{% + Überschrift der Ebene \Macro{subsection} (siehe + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.subsection})}% + \feentry{subsubsection}{% + Überschrift der Ebene \Macro{subsubsection} (siehe + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.subsubsection})}% + \feentry{subtitle}{% + Untertitel des Dokuments, also das Argument von \Macro{subtitle} auf der + Haupttitelseite mit \Macro{maketitle} (siehe + \autoref{sec:maincls.titlepage}, \autopageref{desc:maincls.cmd.title})}% + \feentry{title}{% + Haupttitel des Dokuments, also das Argument von \Macro{title} bei + Verwendung von \Macro{maketitle} (bezüglich der Größe des Haupttitels + siehe die ergänzenden Bemerkungen im Text von + \autoref{sec:maincls.titlepage} ab \autopageref{desc:maincls.cmd.title})}% + \feentry{titlehead}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}}% + Kopf über dem Haupttitel des Dokuments, also das Argument von + \Macro{titlehead} mit \Macro{maketitle} (siehe + \autoref{sec:maincls.titlepage}, + \autopageref{desc:maincls.cmd.titlehead})}% +\end{desclist} +% +\fi % *************************************************** Ende nur maincls * +\ifCommonscrextend % +++++++++++++++++++++++++++++++++++++++ nur scrextend + +\begin{Example} + Angenommen, Sie wollen, dass der Titel in Serifenschrift und rot gesetzt + wird. Das erreichen Sie einfach mit: +\begin{lstcode} + \setkomafont{title}{\color{red}} +\end{lstcode} + Für die Anweisung \lstinline|\color{red}| wird das Paket \Package{color} + oder \Package{xcolor} benötigt. Die zusätzliche Angabe von + \Macro{normalfont} ist in diesem Beispiel deshalb nicht notwendig, weil + diese Anweisung bereits in der Definition des Titels enthalten + ist. Das\textnote{Achtung!} Beispiel setzt voraus, dass + \OptionValue{extendedfeature}{title} gesetzt ist (siehe + \autoref{sec:scrextend.optionalFeatures}, + \autopageref{desc:scrextend.option.extendedfeature}). +\end{Example} +\fi % ************************************************* Ende nur scrextend * +\ifCommonscrlttr % ++++++++++++++++++++++++++++++++++++++++++ nur scrlttr2 + +\par +Ein allgemeines Beispiel für die Anwendung von \Macro{setkomafont} und +\Macro{usekomafont} finden Sie in \autoref{sec:maincls.textmarkup}, +\autopageref{desc:maincls.setkomafont.example}. +\fi % ************************************************** Ende nur scrlttr2 * +\fi %***************************************** Ende Langform (nur maincls) * +\ifCommonscrlttr % ++++++++++++++++++++++++++++++++++++++++++ nur scrlttr2 + +\begin{desclist} + \desccaption{% + Elemente, deren Schrift bei der Klasse \Class{scrlttr2} mit + \Macro{setkomafont} und \Macro{addtokomafont} verändert werden + kann\label{tab:scrlttr2.elementsWithoutText}% + }{% + Elemente, deren Schrift verändert werden kann (\emph{Fortsetzung})% + }% + \feentry{addressee}{Name und Anschrift im Anschriftfenster + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.option.addrfield})}% + \feentry{backaddress}{Rücksendeadresse für einen Fensterbriefumschlag + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.option.backaddress})}% + \feentry{descriptionlabel}{Label, also das optionale Argument von + \Macro{item}, in einer \Environment{description}-Umgebung + (\autoref{sec:scrlttr2.lists}, + \autopageref{desc:scrlttr2.env.description})}% + \feentry{foldmark}{Faltmarke auf dem Briefpapier; ermöglicht Änderung der + Linienfarbe (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.option.foldmarks})}% + \feentry{footnote}{% + Marke und Text einer Fußnote (\autoref{sec:scrlttr2.footnotes}, + \autopageref{desc:scrlttr2.cmd.footnote})}% + \feentry{footnotelabel}{% + Marke einer Fußnote; Anwendung erfolgt nach dem Element + \FontElement{footnote} (\autoref{sec:scrlttr2.footnotes}, + \autopageref{desc:scrlttr2.cmd.footnote})}% + \feentry{footnotereference}{% + Referenzierung der Fußnotenmarke im Text + (\autoref{sec:scrlttr2.footnotes}, + \autopageref{desc:scrlttr2.cmd.footnote})}% + \feentry{footnoterule}{% + Linie\ChangedAt{v3.07}{\Class{scrlttr2}} über dem Fußnotenapparat + (\autoref{sec:scrlttr2.footnotes}, + \autopageref{desc:scrlttr2.cmd.setfootnoterule})}% + \feentry{fromaddress}{Absenderadresse im Briefkopf + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.fromaddress})}% + \feentry{fromname}{Name des Absenders im Briefkopf abweichend von + \PValue{fromaddress} (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.fromname})}% + \feentry{fromrule}{Linie im Absender im Briefkopf; gedacht für + Farbänderungen (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.option.fromrule})}% + \feentry{labelinglabel}{% + Label, also das optionale Argument der \Macro{item}-Anweisung, und + Trennzeichen, also das optionale Argument der + \Environment{labeling}-Umgebung, in einer \Environment{labeling}-Umgebung + (siehe \autoref{sec:scrlttr2.lists}, + \autopageref{desc:scrlttr2.env.labeling})}% + \feentry{labelingseparator}{% + Trennzeichen, also das optionale Argument der + \Environment{labeling}-Umgebung, in einer \Environment{labeling}-Umgebung; + Anwendung erfolgt nach dem Element \FontElement{labelinglabel} (siehe + \autoref{sec:scrlttr2.lists}, \autopageref{desc:scrlttr2.env.labeling})}% + \feentry{pagefoot}{% + wird nach dem Element \FontElement{pageheadfoot} für den mit Variable + \Variable{nextfoot}\IndexVariable{nextfoot} definieren Seitenfuß verwendet + oder wenn das Paket \Package{scrpage2} geladen ist + (\autoref{cha:scrlayer-scrpage}, + \autopageref{desc:scrlayer-scrpage.fontelement.pagefoot}\iffree{ oder + \autoref{cha:scrpage}, + \autopageref{desc:scrpage.fontelement.pagefoot}}{})}% + \feentry{pagehead}{% + alternative Bezeichnung für \FontElement{pageheadfoot}}% + \feentry{pageheadfoot}{% + Seitenkopf und Seitenfuß bei allen von \KOMAScript{} definierten + Seitenstilen (\autoref{sec:scrlttr2.pagestyle}, + \autopageref{desc:scrlttr2.fontelement.pageheadfoot})}% + \feentry{pagenumber}{% + Seitenzahl im Kopf oder Fuß der Seite (\autoref{sec:scrlttr2.pagestyle}, + \autopageref{desc:scrlttr2.fontelement.pagenumber})}% + \feentry{pagination}{% + alternative Bezeichnung für \FontElement{pagenumber}}% + \feentry{placeanddate}{% + \ChangedAt{v3.12}{\Class{scrlttr2}}% + Ort und Datum, falls statt einer Geschäftszeile nur eine Datumszeile + verwendet wird (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.placeseparator})}% + \feentry{refname}{% + Bezeichnung der Felder in der Geschäftszeile + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.yourref})}% + \feentry{refvalue}{% + Werte der Felder in der Geschäftszeile (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.yourref})}% + \feentry{specialmail}{Versandart im Anschriftfenster + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.specialmail})}% + \feentry{subject}{Betreff in der Brieferöffnung + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.subject})}% + \feentry{title}{Titel in der Brieferöffnung + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.title})}% + \feentry{toaddress}{Abweichung vom Element \FontElement{addressee} für die + Anschrift (ohne Name) des Empfängers im Anschriftfeld + (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.toaddress})}% + \feentry{toname}{Abweichung vom Element \FontElement{addressee} für den + Namen des Empfängers im Anschriftfeld (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.toname})}% +\end{desclist} +\fi % ************************************************** Ende nur scrlttr2 * +\ifCommonscrlayerscrpage % ++++++++++++++++++++++++++ nur scrlayer-scrpage + +\begin{desclist} + \desccaption[{Elemente, deren Schrift bei \Package{scrlayer-scrpage} mit + \Macro{setkomafont} und \Macro{addtokomafont} verändert werden kann, sowie + deren Voreinstellung}]% + {Elemente, deren Schrift bei \Package{scrlayer-scrpage} mit + \Macro{setkomafont} und \Macro{addtokomafont} verändert werden kann, sowie + deren Voreinstellung, falls die Elemente beim Laden von + \Package{scrlayer-scrpage} nicht bereits definiert sind% + \label{tab:scrlayer-scrpage.fontelements}% + }% + {Elemente, deren Schrift verändert werden kann (\emph{Fortsetzung})}% + \feentry{footbotline}{% + Linie unter dem Fuß eines mit \Package{scrlayer-scrpage} definierten + Seitenstils (siehe \autoref{sec:scrlayer-scrpage.pagestyle.content}, + \autopageref{desc:scrlayer-scrpage.fontelement.footbotline}). Das Element + wird nach \Macro{normalfont}\IndexCmd{normalfont} und nach den Elementen + \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} und + \FontElement{pagefoot}\IndexFontElement{pagefoot} angewandt. Es wird + empfohlen dieses Element lediglich für Farbänderungen zu verwenden.\par + Voreinstellung: \emph{leer} }% + \feentry{footsepline}{% + Linie über dem Fuß eines mit \Package{scrlayer-scrpage} definierten + Seitenstils (siehe \autoref{sec:scrlayer-scrpage.pagestyle.content}, + \autopageref{desc:scrlayer-scrpage.fontelement.footsepline}). Das Element + wird nach \Macro{normalfont}\IndexCmd{normalfont} und nach den Elementen + \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} und + \FontElement{pagefoot}\IndexFontElement{pagefoot} angewandt. Es wird + empfohlen dieses Element lediglich für Farbänderungen zu verwenden.\par + Voreinstellung: \emph{leer}% + }% + \feentry{headsepline}{% + Linie unter dem Kopf eines mit \Package{scrlayer-scrpage} definierten + Seitenstils (siehe \autoref{sec:scrlayer-scrpage.pagestyle.content}, + \autopageref{desc:scrlayer-scrpage.fontelement.headsepline}). Das Element + wird nach \Macro{normalfont}\IndexCmd{normalfont} und nach den Elementen + \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} und + \FontElement{pagehead}\IndexFontElement{pagehead} angewandt. Es wird + empfohlen dieses Element lediglich für Farbänderungen zu verwenden.\par + Voreinstellung: \emph{leer}% + }% + \feentry{headtopline}{% + Linie über dem Kopf eines mit \Package{scrlayer-scrpage} definierten + Seitenstils (siehe \autoref{sec:scrlayer-scrpage.pagestyle.content}, + \autopageref{desc:scrlayer-scrpage.fontelement.headtopline}). Das Element + wird nach \Macro{normalfont}\IndexCmd{normalfont} und nach den Elementen + \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} und + \FontElement{pagehead}\IndexFontElement{pagehead} angewandt. Es wird + empfohlen dieses Element lediglich für Farbänderungen zu verwenden.\par + Voreinstellung: \emph{leer}% + }% + \feentry{pagefoot}{% + Inhalt eines Fußes eines mit \Package{scrlayer-scrpage} definierten + Seitenstils (siehe \autoref{sec:scrlayer-scrpage.predefined.pagestyles}, + \autopageref{desc:scrlayer-scrpage.fontelement.pagefoot}). Das Element + wird nach \Macro{normalfont}\IndexCmd{normalfont} und nach dem Element + \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} angewandt.\par + Voreinstellung: \emph{leer}% + }% + \feentry{pagehead}{% + Inhalt eines Kopfes eines mit \Package{scrlayer-scrpage} definierten + Seitenstils (siehe \autoref{sec:scrlayer-scrpage.predefined.pagestyles}, + \autopageref{desc:scrlayer-scrpage.fontelement.pagehead}). Das Element + wird nach \Macro{normalfont}\IndexCmd{normalfont} und nach Element + \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} angewandt.\par + Voreinstellung: \emph{leer}% + }% + \feentry{pageheadfoot}{% + Inhalt eines Kopfes oder Fußes eines mit \Package{scrlayer-scrpage} + definierten Seitenstils (siehe + \autoref{sec:scrlayer-scrpage.predefined.pagestyles}, + \autopageref{desc:scrlayer-scrpage.fontelement.pageheadfoot}). Das Element + wird nach \Macro{normalfont}\IndexCmd{normalfont} angewandt.\par + Voreinstellung: \Macro{normalcolor}\Macro{slshape}% + }% + \feentry{pagenumber}{% + Die mit \Macro{pagemark} gesetzte Paginierung (siehe + \autoref{sec:scrlayer-scrpage.predefined.pagestyles}, + \autopageref{desc:scrlayer-scrpage.fontelement.pagenumber}). Bei einer + etwaigen Umdefinierung von \Macro{pagemark} ist dafür zu sorgen, dass die + Umdefinierung auch ein \Macro{usekomafont}\PParameter{pagenumber} + enthält!\par + Voreinstellung: \Macro{normalfont}% + }% +\end{desclist} +\fi % ****************************************** Ende nur scrlayer-scrpage * +\ifIgnoreThis %+++++++++++++++++++++++++++++++ Kurzfassung (nicht maincls) + +\else %----------------------------------------- Langfassung (nur maincls) - +\EndIndex{Cmd}{setkomafont}% +\EndIndex{Cmd}{addtokomafont}% +\EndIndex{Cmd}{usekomafont}% + +\begin{Declaration} + \Macro{usefontofkomafont}\Parameter{Element}\\ + \Macro{useencodingofkomafont}\Parameter{Element}\\ + \Macro{usesizeofkomafont}\Parameter{Element}\\ + \Macro{usefamilyofkomafont}\Parameter{Element}\\ + \Macro{useseriesofkomafont}\Parameter{Element}\\ + \Macro{useshapeofkomafont}\Parameter{Element} +\end{Declaration} +\BeginIndex{Cmd}{usefontofkomafont}% +\BeginIndex{Cmd}{useencodingofkomafont}% +\BeginIndex{Cmd}{usesizeofkomafont}% +\BeginIndex{Cmd}{usefamilyofkomafont}% +\BeginIndex{Cmd}{useseriesofkomafont}% +\BeginIndex{Cmd}{useshapeofkomafont}% +Manchmal\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}} werden in der Schrifteinstellung +eines Elements auch Dinge vorgenommen, die mit der Schrift eigentlich gar +nichts zu tun haben, obwohl dies ausdrücklich nicht empfohlen wird. Soll dann +nur die Schrifteinstellung aber keine dieser zusätzlichen Einstellungen +ausgeführt werden, so kann statt \Macro{usekomafont} die Anweisung +\Macro{usefontofkomafont} verwendet werden. Diese Anweisung übernimmt nur die +Schriftgröße und den Grundlinienabstand, die Codierung +(engl. \emph{encoding}), die Familie (engl. \emph{family}), die Strichstärke +oder Ausprägung (engl. \emph{font series}) und die Form oder Ausrichtung +(engl. \emph{font shape}). + +Mit den übrigen Anweisungen können auch einzelne Schriftattribute +übernommen werden. Dabei übernimmt \Macro{usesizeofkomafont} sowohl die +Schriftgröße als auch den Grundlinienabstand. +\EndIndex{Cmd}{useshapeofkomafont}% +\EndIndex{Cmd}{useseriesofkomafont}% +\EndIndex{Cmd}{usefamilyofkomafont}% +\EndIndex{Cmd}{usesizeofkomafont}% +\EndIndex{Cmd}{useencodingofkomafont}% +\EndIndex{Cmd}{usefontofkomafont}% +% +\EndIndex{}{Schrift>Art}% +\EndIndex{}{Text>Auszeichnung} +\fi %***************************************** Ende Langform (nur maincls) * %%% Local Variables: %%% mode: latex diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-8.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-8.tex index b2507a244b1..11360076599 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-8.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/common-8.tex @@ -1,6 +1,6 @@ % ====================================================================== % common-8.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % common-8.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{common-8.tex}[2011/09/21 KOMA-Script guide (common paragraphs)] +\KOMAProvidesFile{common-8.tex}% + [$Date: 2013-12-11 20:21:09 +0100 (Mi, 11. Dez 2013) $ + KOMA-Script guide (common paragraphs)] \makeatletter \@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% @@ -66,18 +68,22 @@ wurde. \BeginIndex{}{Seiten>Stil}% \IfNotCommon{scrlttr2}{Vakatseiten sind Seiten, die beim Satz eines Dokuments - absichtlich leer bleiben. Ursprünglich sind diese Seiten wirklich komplett - leer. Bei \LaTeX{} werden sie jedoch in der Voreinstellung mit dem aktuell - gültigen Seitenstil gesetzt. \KOMAScript{} bietet hier diverse - Erweiterungen. + absichtlich leer bleiben. Bei \LaTeX{} werden sie jedoch in der + Voreinstellung mit dem aktuell gültigen Seitenstil gesetzt. \KOMAScript{} + bietet hier diverse Erweiterungen. Vakatseiten findet man hauptsächlich in Büchern. Da es bei Büchern üblich ist, dass Kapitel auf einer rechten Seite beginnen, muss in dem Fall, dass das vorherigen Kapitel ebenfalls auf einer rechten Seite endet, eine leere linke Seite eingefügt werden. Aus dieser Erklärung ergibt sich auch, dass - Vakatseiten normalerweise nur im doppelseitigen Satz existieren. Die leeren + Vakatseiten normalerweise nur im doppelseitigen Satz existieren. +% +\iffalse % Umbruchkorrektur + Die leeren Rückseiten im einseitigen Druck werden eher nicht als Vakatseiten - bezeichnet, obwohl sie auf Druckbögen im Ergebnis als solche erscheinen.}% + bezeichnet, obwohl sie auf Druckbögen im Ergebnis als solche erscheinen. +% +\fi}% \fi %**************************************************** Ende nur maincls * \ifIgnoreThis %+++++++++++++++++++++++++++++++++++++++++++++ nicht maincls + \IfCommon{scrlttr2}{Aber} @@ -106,25 +112,27 @@ Mit Hilfe dieser Option\ChangedAt{v3.00}{\Class{scrbook}\and umbrechen. Als \PName{Seitenstil} sind dabei alle bereits definierten Seitenstile (siehe \autoref{sec:\csname label@base\endcsname.pagestyle} ab \autopageref{sec:\csname label@base\endcsname.pagestyle} und -\autoref{cha:scrpage} ab \autopageref{cha:scrpage}) verwendbar. Daneben ist -auch \OptionValue{cleardoublepage}{current} möglich. Dieser Fall entspricht -der Voreinstellung von \KOMAScript{} bis Version~2.98c und führt dazu, dass -die Vakatseite mit dem Seitenstil erzeugt wird, der beim Einfügen gerade -aktuell ist. Ab Version~3.00\ChangedAt{v3.00}{\Class{scrbook}\and - \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}} werden in der -Voreinstellung entsprechend der typografischen Gepflogenheiten Vakatseiten mit -dem Seitenstil \Pagestyle{empty} erzeugt, wenn man nicht Kompatibilität zu -früheren \KOMAScript-Versionen eingestellt hat (siehe Option \Option{version}, +\autoref{cha:scrlayer-scrpage} ab \autopageref{cha:scrlayer-scrpage}\iffree{ + beziehungsweise \autoref{cha:scrpage} ab \autopageref{cha:scrpage}}{}) +verwendbar. Daneben ist auch \OptionValue{cleardoublepage}{current} +möglich. Dieser Fall entspricht der Voreinstellung von \KOMAScript{} bis +Version~2.98c und führt dazu, dass die Vakatseite mit dem Seitenstil erzeugt +wird, der beim Einfügen gerade aktuell ist. Ab +Version~3.00\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Class{scrlttr2}} werden in der Voreinstellung +entsprechend der typografischen Gepflogenheiten Vakatseiten mit dem Seitenstil +\Pagestyle{empty} erzeugt, wenn man nicht Kompatibilität zu früheren +\KOMAScript-Versionen eingestellt hat (siehe Option \Option{version}, \autoref{sec:\csname label@base\endcsname.compatibilityOptions}, \autopageref{desc:\csname label@base\endcsname.option.version}). \ifCommonmaincls \begin{Example} \phantomsection\label{desc:maincls.option.cleardoublepage.example} Angenommen Sie wollen, dass die Vakatseiten bis auf die Paginierung leer - sind, also mit Seitenstil \Pagestyle{plain} erzeugt werden. Dies erreichen - Sie beispielsweise mit + sind\iffree{, also mit Seitenstil \Pagestyle{plain} erzeugt werden}{}. Dies + erreichen Sie \iffree{beispielsweise }{}mit: \begin{lstcode} - \KOMAoption{cleardoublepage=plain} + \KOMAoptions{cleardoublepage=plain} \end{lstcode} Näheres zum Seitenstil \Pagestyle{plain} ist in \autoref{sec:maincls.pagestyle}, \autopageref{desc:maincls.pagestyle.plain} @@ -138,7 +146,7 @@ fr sind, also mit Seitenstil \Pagestyle{plain} erzeugt werden. Dies erreichen Sie beispielsweise mit \begin{lstcode} - \KOMAoption{cleardoublepage=plain} + \KOMAoptions{cleardoublepage=plain} \end{lstcode} Näheres zum Seitenstil \Pagestyle{plain} ist in \autoref{sec:maincls.pagestyle}, \autopageref{desc:maincls.pagestyle.plain} @@ -206,7 +214,8 @@ linken Seite zus leer. Will man für die Vakatseite einen eigenen \PName{Seitenstil} vorgeben, so ist dieser als Argument von \Macro{cleardoubleoddusingstyle} anzugeben. Dabei kann jeder bereits definierte Seitenstil (siehe auch -\autoref{cha:scrpage}) verwendet werden. +\autoref{cha:scrlayer-scrpage}\iffree{ oder \autoref{cha:scrpage}}{}) +verwendet werden. \IfNotCommon{scrlttr2}{% Manchmal möchte man nicht, dass Kapitel mit neuen @@ -302,6 +311,8 @@ erl %%% Local Variables: %%% mode: latex +%%% mode: flyspell %%% coding: iso-latin-1 +%%% ispell-local-dictionary: "de_DE" %%% TeX-master: "../guide" %%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide-ngerman.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide-ngerman.tex index 840c58d3ee3..bc5cf702c80 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide-ngerman.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide-ngerman.tex @@ -1,6 +1,6 @@ % ====================================================================== % guide-ngerman.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % guide-ngerman.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -40,13 +40,14 @@ % % ---------------------------------------------------------------------- % -% Sprachabhängigkeiten (ngerman) der KOMA-Script-Anleitung +% Sprachabhaengigkeiten (ngerman) der KOMA-Script-Anleitung % Verwaltet von Markus Kohm % % ====================================================================== % -\ProvidesFile{guide-ngerman.tex}[{2012/02/26 - KOMA-Script guide language dependencies}] +\KOMAProvidesFile{guide-ngerman.tex} + [$Date: 2013-12-11 08:22:22 +0100 (Mi, 11 Dez 2013) $ + KOMA-Script guide language dependencies] % % \section{Title} % @@ -65,33 +66,33 @@ \newcommand*{\GuideTitle}{\KOMAScript}% \newcommand*{\GuideSubTitle}{ein wandelbares \LaTeXe-Paket}% \newcommand*{\GuideAuthorHeadline}{Autoren des \KOMAScript-Pakets}% -\newcommand*{\GuideTranslatorHeadline}{An der deutschen Übersetzung dieser +\newcommand*{\GuideTranslatorHeadline}{An der deutschen \"Ubersetzung dieser Anleitung haben mitgewirkt: } \newcommand*{\GuideWarrantyHeadline}{Rechtliche Hinweise:}% -\newcommand*{\GuideWarranty}{Die Autoren dieser Anleitung sind in ihrer - Eigenschaft als Autoren dieser Anleitung nicht verantwortlich für die +\newcommand*{\GuideWarranty}{Der Autor dieser Anleitung ist in dieser + Eigenschaft nicht verantwortlich f\"ur die Funktion oder Fehler der in dieser Anleitung beschriebenen Software. Bei der - Erstellung von Texten und Abbildungen wurde mit größter Sorgfalt - vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen + Erstellung von Texten und Abbildungen wurde mit gro\ss er Sorgfalt + vorgegangen. Trotzdem k\"onnen Fehler nicht vollst\"andig ausgeschlossen werden.\par\medskip% - Die Autoren können jedoch für fehlerhafte Angaben und deren Folgen weder - eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für - Verbesserungsvorschläge und Hinweise auf Fehler sind die Autoren + Der Autor kann jedoch f\"ur fehlerhafte Angaben und deren Folgen weder + eine juristische Verantwortung noch irgendeine Haftung \"ubernehmen. F\"ur + Verbesserungsvorschl\"age und Hinweise auf Fehler ist der Autor dankbar.\par\medskip% - In dieser Anleitung werden Warennamen ohne der Gewährleistung der freien + In dieser Anleitung werden Warennamen ohne der Gew\"ahrleistung der freien Verwendbarkeit und ohne besondere Kennzeichnung benutzt. Es ist jedoch davon auszugehen, dass viele der Warennamen gleichzeitig eingetragene Warenzeichnen oder als solche zu betrachten sind.}% \newcommand*{\GuideCopyright}{Freie Bildschirm-Version ohne Optimierung des Umbruchs\par\medskip% Diese Anleitung ist als Bestandteil von \KOMAScript{} frei im Sinne der - \LaTeX{} Project Public License Version 1.3c. Eine für \KOMAScript{} gültige - deutsche Übersetzung liegt \KOMAScript{} in der Datei »\texttt{lppl-de.txt}« + \LaTeX{} Project Public License Version 1.3c. Eine f\"ur \KOMAScript{} g\"ultige + deutsche \"Ubersetzung liegt \KOMAScript{} in der Datei »\texttt{lppl-de.txt}« bei. Diese Anleitung --~auch in gedruckter Form~-- darf nur zusammen mit den - übrigen Bestandteilen von \KOMAScript{} weitergegeben und verteilt werden. - Eine Verteilung der Anleitung unabhängig von den übrigen Bestandteilen von - \KOMAScript{} bedarf der ausdrücklichen Genehmigung der - Autoren.\par\medskip% + \"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 des + Autors.\par\medskip% Eine umbruchoptimierte und erweiterte Ausgabe der \KOMAScript-Anleitung ist in der dante-Edition von Lehmanns Media erschienen (siehe \cite{book:komascript}).}% @@ -112,7 +113,7 @@ % % \begin{macro}{\GuideCTANserver} % \begin{macrocode} -\newcommand*{\GuideCTANserver}{ftp.dante.de} +\newcommand*{\GuideCTANserver}{mirror.ctan.org} % \end{macrocode} % \end{macro} % @@ -124,7 +125,7 @@ % \begin{macro}{\GuideClass} % \begin{macro}{\GuideClassIndexCategory} % \begin{macro}{\GuideClassIndexCategoryExpanded} -% The term »class«. +% The term ``class''. % \begin{macrocode} \newcommand*{\GuideClass}{Klasse} \newcommand*{\GuideClassIndexCategory}{Klassen} @@ -137,10 +138,10 @@ % \begin{macro}{\GuideCounter} % \begin{macro}{\GuideCounterIndexCategory} % \begin{macro}{\GuideCounterIndexCategoryExpanded} -% The term »counter«. +% The term ``counter''. % \begin{macrocode} -\newcommand*{\GuideCounter}{Zähler} -\newcommand*{\GuideCounterIndexCategory}{Zähler} +\newcommand*{\GuideCounter}{Z\"ahler} +\newcommand*{\GuideCounterIndexCategory}{Z\"ahler} \let\GuideCounterIndexCategoryExpanded\GuideCounterIndexCategory % \end{macrocode} % \end{macro} @@ -150,7 +151,7 @@ % \begin{macro}{\GuideEnvironment} % \begin{macro}{\GuideEnvIndexCategory} % \begin{macro}{\GuideEnvIndexCategoryExpanded} -% The term »environment«. +% The term ``environment''. % \begin{macrocode} \newcommand*{\GuideEnvironment}{Umgebung} \newcommand*{\GuideEnvIndexCategory}{Umgebungen} @@ -161,7 +162,7 @@ % \end{macro} % % \begin{macro}{\GuideExample} -% The term »Example« used at a kind of heading, so it should be upper case. +% The term ``Example'' used at a kind of heading, so it should be upper case. % \begin{macrocode} \newcommand*{\GuideExample}{Beispiel} % \end{macrocode} @@ -170,7 +171,7 @@ % \begin{macro}{\GuideFile} % \begin{macro}{\GuideFileIndexCategory} % \begin{macro}{\GuideFileIndexCategoryExpanded} -% The term »file«. +% The term ``file''. % \begin{macrocode} \newcommand*{\GuideFile}{Datei} \newcommand*{\GuideFileIndexCategory}{Dateien} @@ -183,7 +184,7 @@ % \begin{macro}{\GuideFloatstyle} % \begin{macro}{\GuideFloatstyleIndexCategory} % \begin{macro}{\GuideFloatstyleIndexCategoryExpanded} -% The term »\Package{float} style«. +% The term ``\Package{float} style''. % \begin{macrocode} \newcommand*{\GuideFloatstyle}{\Package{float}-Stil} \newcommand*{\GuideFloatstyleIndexCategory}{\Package{float}-Stile} @@ -196,7 +197,7 @@ % \begin{macro}{\GuideFontElement} % \begin{macro}{\GuideFontElementIndexCategory} % \begin{macro}{\GuideFontElementIndexCategoryExpanded} -% The term »element«. +% The term ``element''. % \begin{macrocode} \newcommand*{\GuideFontElement}{Element} \newcommand*{\GuideFontElementIndexCategory}{Elemente} @@ -209,10 +210,10 @@ % \begin{macro}{\GuideLength} % \begin{macro}{\GuideLengthIndexCategory} % \begin{macro}{\GuideLengthIndexCategoryExpanded} -% The term »length«. +% The term ``length''. % \begin{macrocode} -\newcommand*{\GuideLength}{Länge} -\newcommand*{\GuideLengthIndexCategory}{Längen} +\newcommand*{\GuideLength}{L\"ange} +\newcommand*{\GuideLengthIndexCategory}{L\"angen} \let\GuideLengthIndexCategoryExpanded\GuideLengthIndexCategory % \end{macrocode} % \end{macro} @@ -225,7 +226,7 @@ % \begin{macro}{\GuideCommand} % \begin{macro}{\GuideCommandIndexCategory} % \begin{macro}{\GuideCommandIndexCategoryExpanded} -% The term »command«. +% The term ``command''. % \begin{macrocode} \newcommand*{\GuideMacro}{Befehl} \let\GuideCommand\GuideMacro @@ -244,7 +245,7 @@ % \begin{macro}{\GuideOption} % \begin{macro}{\GuideOptionIndexCategory} % \begin{macro}{\GuideOptionIndexCategoryExpanded} -% The term »option«. +% The term ``option''. % \begin{macrocode} \newcommand*{\GuideOption}{Option} \newcommand*{\GuideOptionIndexCategory}{Optionen} @@ -257,7 +258,7 @@ % \begin{macro}{\GuidePackage} % \begin{macro}{\GuidePackageIndexCategory} % \begin{macro}{\GuidePackageIndexCategoryExpanded} -% The term »package«. +% The term ``package''. % \begin{macrocode} \newcommand*{\GuidePackage}{Paket} \newcommand*{\GuidePackageIndexCategory}{Pakete} @@ -270,7 +271,7 @@ % \begin{macro}{\GuidePagestyle} % \begin{macro}{\GuidePagestyleIndexCategory} % \begin{macro}{\GuidePagestyleIndexCategoryExpanded} -% The term »page style«. +% The term ``page style''. % \begin{macrocode} \newcommand*{\GuidePagestyle}{Seitenstil} \newcommand*{\GuidePagestyleIndexCategory}{Seitenstile} @@ -284,11 +285,11 @@ % \begin{macro}{\GuidePLengthIndexCategory} % \begin{macro}{\GuidePLengthIndexCategoryExpanded} % \begin{macro}{\GuidePseudoPrefix} -% The prefix »pseudo« at the term »pseudo length« and the term itself. +% The prefix ``pseudo'' at the term ``pseudo length'' and the term itself. % \begin{macrocode} \newcommand*{\GuidePseudoPrefix}{Pseudo-} -\newcommand*{\GuidePLength}{Pseudolänge} -\newcommand*{\GuidePLengthIndexCategory}{Pseudolängen} +\newcommand*{\GuidePLength}{Pseudol\"ange} +\newcommand*{\GuidePLengthIndexCategory}{Pseudol\"angen} \let\GuidePLengthIndexCategoryExpanded\GuidePLengthIndexCategory % \end{macrocode} % \end{macro} @@ -299,7 +300,7 @@ % \begin{macro}{\GuideVariable} % \begin{macro}{\GuideVariableIndexCategory} % \begin{macro}{\GuideVariableIndexCategoryExpanded} -% The term »variable«. +% The term ``variable''. % \begin{macrocode} \newcommand*{\GuideVariable}{Variable} \newcommand*{\GuideVariableIndexCategory}{Variablen} @@ -419,7 +420,7 @@ 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://\GuideCTANserver/tex-archive/} ersetzen. Bei + \url{http://\GuideCTANserver/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 @@ -519,7 +520,7 @@ \newcommand*{\GuideLanguageExtensions}{% % \end{macrocode} % \begin{macro}{\pageautorefname} -% The term »page« that will be put before the reference of a page set by +% The term ``page'' that will be put before the reference of a page set by % |\autopageref|. % \begin{macrocode} \let\pageautorefname\pagename @@ -529,7 +530,7 @@ % \begin{macro}{\subsubsectionautorefname} % \begin{macro}{\paragraphautorefname} % \begin{macro}{\subparagraphautorefname} -% I'll call them all »section«. +% I'll call them all ``section''. % \begin{macrocode} \let\subsectionautorefname=\sectionautorefname \let\subsubsectionautorefname=\sectionautorefname @@ -576,5 +577,6 @@ \endinput %%% Local Variables: %%% mode: doctex +%%% coding: iso-latin-1 %%% TeX-master: "../guide.tex" %%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide.tex index 6fc6a8c55dd..41ba9402133 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/guide.tex @@ -45,7 +45,7 @@ % % ====================================================================== -\ProvidesFile{guide.tex}[2012/02/22 KOMA-Script guide main file] +\ProvidesFile{guide.tex}[2013/10/14 KOMA-Script guide main file] \documentclass[\languagename]{scrguide} @@ -95,6 +95,7 @@ \include{scrbookreportarticle} \include{scrlttr2} \include{scrpage2} +\include{scrlayer-scrpage} \include{scrdatetime} \include{scraddr} \include{adrconvnote} @@ -106,6 +107,9 @@ \include{scrwfile} \include{tocbasic} \include{scrhack} +\include{scrlayer} +\include{scrlayer-scrpage-experts} +\include{scrlayer-notecolumn} \include{typearea-experts} \include{scrbookreportarticle-experts} \include{scrlttr2-experts} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/htmlsetup b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/htmlsetup index e0ccde385ea..92dd812ff4e 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/htmlsetup +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/htmlsetup @@ -1,6 +1,6 @@ # ====================================================================== # htmlsetup -# Copyright (c) Markus Kohm, 2002-2009 +# Copyright (c) Markus Kohm, 2002-2013 # # This file is part of the LaTeX2e KOMA-Script bundle. # @@ -18,7 +18,7 @@ # This work consists of all files listed in manifest.txt. # ---------------------------------------------------------------------- # htmlsetup -# Copyright (c) Markus Kohm, 2002-2009 +# Copyright (c) Markus Kohm, 2002-2013 # # Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, # Version 1.3c, verteilt und/oder veraendert werden. @@ -54,6 +54,7 @@ alt=\"Valid HTML 4.0 Strict\" height=\"31\" width=\"88\"> %titles=( "option" => "Optionen", "macro" => "Anweisungen", "environment" => "Umgebungen", + "length" => "Längen", "plength" => "Pseudolängen", "variable" => "Variablen", "pagestyle" => "Seitenstile", diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/introduction.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/introduction.tex index c17cd67d45d..5b0a0cc633e 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/introduction.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/introduction.tex @@ -1,6 +1,6 @@ % ====================================================================== % introduction.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % introduction.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{introduction.tex}[2012/07/17 KOMA-Script guide introduction] +\KOMAProvidesFile{introduction.tex} + [$Date: 2013-12-11 10:18:01 +0100 (Mi, 11. Dez 2013) $ + KOMA-Script guide introduction] \chapter{Einleitung} \labelbase{introduction} @@ -53,8 +55,11 @@ Dieses Kapitel enthält \iffree{unter anderem }{}wichtige Informationen über den Aufbau \iffree{der Anleitung}{des Buches} und die Geschichte von \KOMAScript, die Jahre vor der ersten Version beginnt. Darüber hinaus finden -Sie Informationen für den Fall, dass Sie \KOMAScript{} noch nicht installiert -haben, oder auf Fehler stoßen. +Sie Informationen für den Fall, dass Sie % +\iffalse % Umbruchkorreturauslassung + \KOMAScript{} noch nicht installiert haben, oder % +\fi% +auf Fehler stoßen. \iffree{% \section{Vorwort} @@ -80,17 +85,17 @@ dass {\KOMAScript} in der Regel nicht gelehrt wird. Das hei 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, +verfassen. Die Schwierigkeit, der sich der Autor gegenüber sieht, besteht jedoch darin, dass eine Anleitung für alle möglichen -Zielgruppen benötigt wird. Wir haben uns bemüht, eine Anleitung zu +Zielgruppen benötigt wird. Ich habe mich 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 +die Sekretärin des Fischhändlers. Ich habe mich bemüht, obwohl es sich dabei eigentlich um ein unmögliches Unterfangen handelt. Ergebnis sind -zahlreiche Kompromisse. Wir bitten jedoch, die Problematik bei +zahlreiche Kompromisse. Ich bitte jedoch, die Problematik bei eventuellen Beschwerden zu berücksichtigen und bei der Verbesserung -unserer derzeitigen Lösung zu helfen. +der derzeitigen Lösung zu helfen. -Trotz des Umfangs der Anleitung bitten wir außerdem darum, im Falle von +Trotz des Umfangs der Anleitung bitte ich außerdem darum, im Falle von Problemen zunächst die Dokumentation zu konsultieren. Als erste Anlaufstelle sei auf den mehrteiligen Index am Ende des \iffree{Dokuments}{Buches} hingewiesen. \iffree{Zur Dokumentation gehören neben dieser Anleitung auch @@ -167,10 +172,10 @@ anders angezeigt als \File{Dateinamen}. \Option{Optionen}, \Macro{Anweisungen}, \PLength{Pseudolängen} werden einheitlich hervorgehoben. Der \PName{Platzhalter} für einen Parameter wird jedoch anders dargestellt als ein konkreter \PValue{Wert} eines Parameters. So zeigt etwa -\Macro{begin}\Parameter{Umgebungsname}, wie eine Umgebung ganz allgemein +\Macro{begin}\Parameter{Umgebung}, wie eine Umgebung ganz allgemein eingeleitet wird, wohingegen \Macro{begin}\PParameter{document} angibt, wie die konkrete Umgebung \Environment{document} beginnt. Dabei ist dann -\PValue{document} ein konkreter Wert für den Parameter \PName{Umgebungsname} +\PValue{document} ein konkreter Wert für den Parameter \PName{Umgebung} der Anweisung \Macro{begin}. \iffalse% Umbruchkorrekturtext @@ -237,30 +242,27 @@ auch zu lesen. \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, Torsten Krüger und Gernot Hassenpflug -nennen. Jens' unermüdlichem Einsatz ist neben vielem Anderen die englische -Übersetzung der Anleitung zu verdanken, die Gernot in wesentlichen Teilen -mitgestaltet hat. Torsten ist 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 auf der Mailingliste -\texttt{\TeX-D-L} (siehe \cite{DANTE:FAQ}) und in der Usenet-Gruppe -\texttt{de.comp.text.tex}, die mir so manche Antwort auf Fragen zu -{\KOMAScript} abnehmen. +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. Dieses Mal danke ich Elke, Jana, Ben und Edoardo stellvertretend für +Beta-Test und Kritik. Ich hoffe, ihr macht damit noch weiter. + +Ganz besonderen Dank bin ich den Gründern und den Mitgliedern 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 auf der +Mailingliste \texttt{\TeX-D-L} (siehe \cite{DANTE:FAQ})m in der Usenet-Gruppe +\texttt{de.comp.text.tex} und den vielen \LaTeX-Foren im Internet, die mir so +manche Antwort auf Fragen zu {\KOMAScript} abnehmen. + +Mein Dank gilt aber 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 besonders bedanke ich mich noch +einmal bei dem äußerst großzügigen Spender, der mich mit dem bisher und +vermutlich für alle Zeiten größten Einzelbetrag für die bisher geleistete +Arbeit an \KOMAScript{} bedacht hat. \section{Rechtliches} @@ -296,102 +298,101 @@ auch die jeweilige Dokumentation zur installierten \TeX-Distribution. \label{sec:introduction.errors} \iffree{% -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 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. Gehen Sie dazu wie unten beschrieben vor. -%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. - -Wenn Sie denken, dass Sie einen noch unbekannten Fehler gefunden haben, oder -es aus anderem Grund für sinnvoll oder notwendig erachten, den -\KOMAScript-Autor zu kontaktieren, so sollten Sie dabei folgende Angaben -keinesfalls vergessen: -\begin{itemize} -\item Tritt das Problem auch auf, wenn statt einer \KOMAScript-Klasse eine - Standardklasse verwendet wird? In dem Fall liegt der Fehler höchst - wahrscheinlich nicht bei \KOMAScript. Es ist dann sinnvoller, die Frage in - einem öffentlichen Forum, einer Mailingliste oder im Usenet zu stellen. -\item Welche \KOMAScript-Version verwenden Sie? Entsprechende Informationen - finden Sie in der \File{log}-Datei des \LaTeX-Laufs jedes Dokuments, das - eine \KOMAScript-Klasse verwendet. -\item Welches Betriebssystem und welche \TeX-Distribution wird verwendet? - Diese Angaben erscheinen bei einem bestriebssystemunabhängigen Paket wie - \KOMAScript{} oder \LaTeX{} eher überflüssig. Es zeigt sich aber immer - wieder, dass sie durchaus eine Rolle spielen können. -\item Was genau ist das Problem oder der Fehler? Beschreiben Sie das Problem - oder den Fehler lieber zu ausführlich als zu knapp. Oftmals ist es sinnvoll - auch die Hintergründe zu erläutern. -\item Wie sieht ein vollständiges Minimalbeispiel aus? Ein solches - vollständiges Minimalbeispiel kann jeder leicht selbst erstellen, indem - Schritt für Schritt Inhalte und Pakete aus dem Problemdokument - auskommentiert werden. Am Ende bleibt ein Dokument, das nur die Pakete lädt - und nur die Teile enthält, die für das Problem notwendig sind. Außerdem - sollten alle geladenen Abbildungen durch \Macro{rule}-Anweisungen - entsprechender Größe ersetzt werden. Vor dem Verschicken entfernt man nun - die auskommentierten Teile, fügt als erste Zeile die Anweisung - \Macro{listfiles} ein und führt einen weiteren \LaTeX-Lauf durch. Man erhält - dann am Ende der \File{log}-Datei eine Übersicht über die verwendeten - Pakete. Das vollständige Minimalbeispiel und die \File{log}-Datei fügen Sie - ihrer Beschreibung hinzu. -\end{itemize} -Schicken Sie keine Pakete, PDF- oder PS- oder DVI-Dateien mit. Falls die -gesamte Problem- oder Fehlerbeschreibung einschließlich Minimalbeispiel und -\File{log}-Datei größer als ein paar Dutzend KByte ist, haben Sie mit größter -Wahrscheinlichkeit etwas falsch gemacht. Anderenfalls schicken Sie Ihre -Mitteilung an \href{mailto:komascript@gmx.info}{komascript@gmx.info}. - -Häufig werden Sie eine Frage zu \KOMAScript{} oder im Zusammenhang mit -\KOMAScript{} lieber öffentlich, beispielsweise in \texttt{de.comp.text.tex} -oder dem Forum auf \cite{homepage}, stellen wollen. Auch in diesem Fall -sollten Sie obige Punkte beachten, in der Regel jedoch auf die -\File{log}-Datei verzichten. Fügen Sie stattdessen nur die Liste der Pakete -und Paketversionen aus der \File{log}-Datei an. Im Falle einer Fehlermeldung -zitieren Sie diese ebenfalls aus der \File{log}-Datei.% + 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 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. Gehen + Sie dazu wie unten beschrieben vor. + % 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. + + Wenn Sie denken, dass Sie einen noch unbekannten Fehler gefunden haben, oder + es aus anderem Grund für sinnvoll oder notwendig erachten, den + \KOMAScript-Autor zu kontaktieren, so sollten Sie dabei folgende Angaben + keinesfalls vergessen: + \begin{itemize} + \item Tritt das Problem auch auf, wenn statt einer \KOMAScript-Klasse eine + Standardklasse verwendet wird? In dem Fall liegt der Fehler höchst + wahrscheinlich nicht bei \KOMAScript. Es ist dann sinnvoller, die Frage in + einem öffentlichen Forum, einer Mailingliste oder im Usenet zu stellen. + \item Welche \KOMAScript-Version verwenden Sie? Entsprechende Informationen + finden Sie in der \File{log}-Datei des \LaTeX-Laufs jedes Dokuments, das + eine \KOMAScript-Klasse verwendet. + \item Welches Betriebssystem und welche \TeX-Distribution wird verwendet? + Diese Angaben erscheinen bei einem bestriebssystemunabhängigen Paket wie + \KOMAScript{} oder \LaTeX{} eher überflüssig. Es zeigt sich aber immer + wieder, dass sie durchaus eine Rolle spielen können. + \item Was genau ist das Problem oder der Fehler? Beschreiben Sie das Problem + oder den Fehler lieber zu ausführlich als zu knapp. Oftmals ist es + sinnvoll auch die Hintergründe zu erläutern. + \item Wie sieht ein vollständiges Minimalbeispiel aus? Ein solches + vollständiges Minimalbeispiel kann jeder leicht selbst erstellen, indem + Schritt für Schritt Inhalte und Pakete aus dem Problemdokument + auskommentiert werden. Am Ende bleibt ein Dokument, das nur die Pakete + lädt und nur die Teile enthält, die für das Problem notwendig + sind. Außerdem sollten alle geladenen Abbildungen durch + \Macro{rule}-Anweisungen entsprechender Größe ersetzt werden. Vor dem + Verschicken entfernt man nun die auskommentierten Teile, fügt als erste + Zeile die Anweisung \Macro{listfiles} ein und führt einen weiteren + \LaTeX-Lauf durch. Man erhält dann am Ende der \File{log}-Datei eine + Übersicht über die verwendeten Pakete. Das vollständige Minimalbeispiel + und die \File{log}-Datei fügen Sie ihrer Beschreibung hinzu. + \end{itemize} + Schicken Sie keine Pakete, PDF- oder PS- oder DVI-Dateien mit. Falls die + gesamte Problem- oder Fehlerbeschreibung einschließlich Minimalbeispiel und + \File{log}-Datei größer als ein paar Dutzend KByte ist, haben Sie mit + größter Wahrscheinlichkeit etwas falsch gemacht. Anderenfalls schicken Sie + Ihre Mitteilung an \href{mailto:komascript@gmx.info}{komascript@gmx.info}. + + Häufig werden Sie eine Frage zu \KOMAScript{} oder im Zusammenhang mit + \KOMAScript{} lieber öffentlich, beispielsweise in \texttt{de.comp.text.tex} + oder dem Forum auf \cite{homepage}, stellen wollen. Auch in diesem Fall + sollten Sie obige Punkte beachten, in der Regel jedoch auf die + \File{log}-Datei verzichten. Fügen Sie stattdessen nur die Liste der Pakete + und Paketversionen aus der \File{log}-Datei an. Im Falle einer Fehlermeldung + zitieren Sie diese ebenfalls aus der \File{log}-Datei.% }{% -Die Autoren haben sich größte Mühe gegeben, Fehler in diesem Buch zu -vermeiden. Die Beispiele, die in diesem Buch abgedruckt sind, wurden -größtenteils während ihrer Entstehung getestet. Leider sind trotzdem weder -orthografische noch inhaltliche Fehler komplett auszuschließen. Sollten Sie -Fehler in diesem Buch finden, so wenden Sie sich bitte an die Autoren. Sie -können diese per E-Mail über die \KOMAScript-Support-Adresse, -\mbox{komascript@gmx.info}, oder über \cite{homepage} erreichen. - -Wenn Sie hingegen Fehler in \KOMAScript{} selbst melden wollen, so verwenden -Sie bitte die dafür vorgesehene Prozedur. Diese ist in der Einleitung der -freien \KOMAScript-Anleitung, die jeder korrekten Verteilung von \KOMAScript{} -beiliegt, ausführlich erklärt.} + Der Autor hat sich große Mühe gegeben, Fehler in diesem Buch zu + vermeiden. Die Beispiele, die in diesem Buch abgedruckt sind, wurden + größtenteils während ihrer Entstehung getestet. Leider sind trotzdem weder + orthografische noch inhaltliche Fehler komplett auszuschließen. Sollten Sie + Fehler in diesem Buch finden, so melden Sie diese bitte über die + \KOMAScript-Support-Adresse, \mbox{komascript@gmx.info}, oder über + \cite{homepage} an den Autor. + + Bei Fehlern an \KOMAScript{} selbst beachten Sie bitte die Prozedur, die in + der Einleitung der freien \KOMAScript-Anleitung erklärt ist. Nur so ist + sichergestellt, dass das Problem auch reproduziert werden kann. Dies ist + für die Beseitigung eventueller Fehler eine Grundvoraussetzung.% +} Bitte beachten Sie, dass typografisch nicht optimale Voreinstellungen keine -Fehler darstellen. Aus Gründen der Langzeit-Kompatibilität werden -Voreinstellungen nach Möglichkeit auch in neuen \KOMAScript-Versionen -beibehalten. Darüber hinaus ist Typografie auch eine Frage der Sprache und -Kultur. Die Voreinstellungen von \KOMAScript{} stellen daher zwangsläufig -einen Kompromiss dar. +Fehler darstellen. Aus Gründen der Kompatibilität werden Voreinstellungen nach +Möglichkeit auch in neuen \KOMAScript-Versionen beibehalten. Darüber hinaus +ist Typografie auch eine Frage der Sprache und Kultur. Die Voreinstellungen +von \KOMAScript{} stellen daher zwangsläufig einen Kompromiss dar. \iffree{% \section{Weitere Informationen} @@ -409,6 +410,8 @@ konzipiert. F \endinput %%% Local Variables: %%% mode: latex +%%% mode: flyspell %%% coding: iso-latin-1 +%%% ispell-local-dictionary: "de_DE" %%% TeX-master: "../guide.tex" %%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex index 12b94fb89c6..0f84bda93e0 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrbase.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrbase.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ====================================================================== -\ProvidesFile{scrbase.tex}[2012/03/04 KOMA-Script package scrbase] +\KOMAProvidesFile{scrbase.tex} + [$Date: 2013-11-06 12:44:59 +0100 (Mi, 06. Nov 2013) $ + KOMA-Script package scrbase] \chapter{Grundlegende Funktionen im Paket \Package{scrbase}} \labelbase{scrbase} @@ -186,10 +188,20 @@ Pakete im Gesamtpaket als Mitglied zu verwenden. \EndIndex{Cmd}{DefineFamily}% \BeginIndex{Cmd}{DefineFamilyKey}% +\BeginIndex{Cmd}{FamilyKeyState}% +\BeginIndex{Cmd}{FamilyKeyStateUnknown}% +\BeginIndex{Cmd}{FamilyKeyStateProcessed}% +\BeginIndex{Cmd}{FamilyKeyStateUnknownValue}% +\BeginIndex{Cmd}{FamilyKeyStateNeedValue}% \begin{Declaration} \Macro{DefineFamilyKey}\OParameter{Mitglied}\Parameter{Familie}% \Parameter{Schlüssel}\OParameter{Säumniswert}\\ - \hphantom{\Macro{DefineFamilyKey}}\Parameter{Aktion} + \hphantom{\Macro{DefineFamilyKey}}\Parameter{Aktion}\\ + \Macro{FamilyKeyState}\\ + \Macro{FamilyKeyStateUnknown}\\ + \Macro{FamilyKeyStateProcessed}\\ + \Macro{FamilyKeyStateUnknownValue}\\ + \Macro{FamilyKeyStateNeedValue} \end{Declaration} Mit dieser Anweisung wird ein \PName{Schlüssel} definiert. Ist ein \PName{Mitglied} angegeben, so ist der \PName{Schlüssel} eine Eigenschaft @@ -202,6 +214,7 @@ ausgef kein Wert übergeben, so wird stattdessen der \PName{Säumniswert} eingesetzt. Falls kein \PName{Säumniswert} angegeben wird, kann später der \PName{Schlüssel} nur mit Wertübergabe verwendet werden. + \begin{Explain} \phantomsection\label{explain:scrbase.macro.DefineFamilyKey}% Letztlich führt @@ -209,41 +222,50 @@ eingesetzt. Falls kein \PName{S \DefineFamilyKey[»\PName{Mitglied}«]{»\PName{Familie}«}{»\PName{Schlüssel}«} [»\PName{Säumniswert}«]{»\PName{Aktion}«} \end{lstcode} -\iffalse% oder so - \begin{flushleft}\begin{tabular}{l@{}l} - \Macro{DefineFamilyKey}&\OParameter{Mitglied}\Parameter{Familie}% - \Parameter{Schlüssel}\\ - &\OParameter{Säumniswert}\Parameter{Aktion} - \end{tabular}\end{flushleft} -\fi zu dem Aufruf \begin{lstcode}[moretexcs={define@key},escapeinside=»«] \define@key{»\PName{Familie\,Mitglied}«}{»\PName{Schlüssel}«} - [»\PName{Säumniswert}«]{»\PName{Aktion}«} + [»\PName{Säumniswert}«]{»\PName{erweiterte Aktion}«} \end{lstcode} -\iffalse% oder so - \begin{flushleft}\begin{tabular}{l@{}l} - \Macro{define@key}&\Parameter{Familie\,Mitglied}% - \Parameter{Schlüssel}\\ - &\OParameter{Säumniswert}\Parameter{Aktion} - \end{tabular}\end{flushleft} -\fi wobei \Macro{define@key} im \Package{keyval}-Paket\IndexPackage{keyval} - definiert ist (siehe \cite{package:keyval}). -\iffalse% Umbruchkorrektur - Prinzipiell könnte daher dem - Schlüssel eines Familienmitglieds per -\begin{lstcode}[moretexcs={setkeys},escapeinside=»«] - \setkeys{»\PName{Familie\,Mitglied}«}{»\PName{Schlüssel}«=»\PName{Wert}«} -\end{lstcode} -\iffalse% oder so - \begin{flushleft}\begin{tabular}{l@{}l} - \Macro{setkeys}&\Parameter{Familie\,Mitglied}\Parameter{Schlüssel=Wert} - \end{tabular}\end{flushleft} -\fi - ein Wert zugewiesen werden. -\fi + definiert ist (siehe \cite{package:keyval}). Allerdings kommen zu dem Aufruf + von \Macro{define@key} noch einige zusätzliche Vorkehrungen und auch die + \PName{Aktion} wird um zusätzliche Vorkehrungen erweitert. \end{Explain} + +Erfolg\ChangedAt{v3.12}{\Package{scrbase}} oder Misserfolg der Ausführung der +\PName{Aktion} werden über \Macro{FamilyKeyState} an \Package{scrbase} zurück +gemeldet, damit dieses je nach Bedarf und Verwendung der Option weitere +Maßnahmen ergreifen kann. In der Voreinstellung ist \Macro{FamilyKeyState} +identisch mit \Macro{FamilyKeyStateUnknown}. Das bedeutet, dass es nicht +sicher ist, ob die Option korrekt verarbeitet werden konnte. Findet +\Package{scrbase} nach Ausführung der \PName{Aktion} noch immer diesen Zustand +vor, so wird ein Hinweis in die \File{log}-Datei geschrieben und im weiteren +der Zustand \Macro{FamilyKeyStateProcessed} angenommen. + +Der Zustand \Macro{FamilyKeyStateProcessed} signalisiert, dass die Option und +die Wertzuweisung an die Option vollständig abgeschlossen wurde und alles in +Ordnung ist. Auf den Zustand kann einfach durch Aufruf von +\Macro{FamilyKeyStateProcessed} selbst umgeschaltet werden. + +Der Zustand \Macro{FamilyKeyStateUnknownValue} signalisiert, dass die Option +zwar verarbeitet wurde, ihr jedoch ein Wert zugewiesen werden sollte, der +nicht erlaubt ist. Diesen Zustand meldet beispielsweise \Package{typearea}, +wenn versucht wird, an Option \Option{twoside} den Wert \PValue{unbekannt} +zuzuweisen. Die Umschaltung auf den Zustand erfolgt einfach durch Aufruf von +\Macro{FamilyKeyStateUnknownValue} selbst. + +Der Zustand \Macro{FamilyKeyStateNeedValue} signalisiert, dass die Option nicht +verarbeitet werden konnte, weil sie zwingend einen Wert erwartet, sie aber +ohne Wertzuweisung aufgerufen wurde. Dieser Zustand wird automatisch gesetzt, +wenn eine Option, die keinen \PName{Säumniswert} besitzt, ohne Wertzuweisung +verwendet wird. Theoretisch wäre aber auch eine explizite Umschaltung darauf +durch Aufruf von \Macro{FamilyKeyStateNeedValue} selbst möglich. + +Desweiteren können zusätzliche Fehlerzustände definiert werden, indem man +\Macro{FamilyKeyState} auf eine kurze Meldung umdefiniert. In der Regel +sollten jedoch die vier vordefinierten Zustände verwendet werden. + \begin{Example} Nehmen wir an, jedes der drei Pakete aus dem letzten Beispiel soll einen Schlüssel \PValue{Aufschnitt} erhalten. Wird dieser aufgerufen, so soll in @@ -256,19 +278,27 @@ eingesetzt. Falls kein \PName{S {Aufschnitt}[true]{% \expandafter\let\expandafter\if@Salami@Aufschnitt \csname if#1\endcsname + \FamilyKeyStateProcessed } \end{lstcode} Als Wert sind daher beim Aufruf \PValue{true} oder \PValue{false} erlaubt. Ein Test auf unerlaubte Werte existiert in diesem Beispiel - nicht. Wird der Schlüssel später verwendet, so muss entweder einer der - erlaubten Werte zugewiesen oder ein Aufruf ohne Wertzuweisung verwendet - werden. In letzterem Fall wird der Säumniswert \PName{true} zugewiesen. + nicht. Stattdessen wird immer zurück gemeldet, dass die Option vollständig + und korrekt verarbeitet wwurde. Wird der Schlüssel später verwendet, so muss + entweder einer der erlaubten Werte zugewiesen oder ein Aufruf ohne + Wertzuweisung verwendet werden. In letzterem Fall wird der Säumniswert + \PName{true} zugewiesen. Für die anderen beiden Pakete kann das fast identisch definiert werden. Lediglich die Zeichenfolge »\texttt{Salami}« ist jeweils zu ersetzen. \end{Example} % +\EndIndex{Cmd}{FamilyKeyStateNeedValue}% +\EndIndex{Cmd}{FamilyKeyStateUnknownValue}% +\EndIndex{Cmd}{FamilyKeyStateProcessed}% +\EndIndex{Cmd}{FamilyKeyStateUnknown}% +\EndIndex{Cmd}{FamilyKeyState}% \EndIndex{Cmd}{DefineFamilyKey}% @@ -313,6 +343,11 @@ Man kann \Macro{FamilyProcessOptions} wahlweise als Erweiterung von \PName{Schlüssel=Wert}-Mechanismus von \Package{keyval} verstehen. Letztlich werden mit Hilfe von \Macro{FamilyProcessOptions} aus \PName{Schlüssel=Wert}-Paaren Optionen. + +Während der Ausführung von Optionen darf \Macro{FamilyProcessOptions} nicht +verwendet werden. Es ist also insbesondere nicht erlaubt, innerhalb der +Ausführung von Optionen Pakete zu laden, die selbst +\Macro{FamilyProcessOptions} verwenden.% % \EndIndex{Cmd}{FamilyProcessOptions}% @@ -343,16 +378,16 @@ Mitglieds gesetzt wird. \end{lstcode} ergänzt werden. \end{Example} + +Diese Anweisung darf auch innerhalb dere Ausführung von Optionen verwendet +werden.% % \EndIndex{Cmd}{FamilyExecuteOptions}% \BeginIndex{Cmd}{FamilyOptions}% -\BeginIndex{Cmd}{Family@Options}% \begin{Declaration} - \Macro{FamilyOptions}\Parameter{Familie}\Parameter{Optionenliste}\\ - \Macro{Family@Options}\Parameter{Familie}\Parameter{Optionenliste}% - \Parameter{Fehleraktion} + \Macro{FamilyOptions}\Parameter{Familie}\Parameter{Optionenliste}% \end{Declaration} Die \PName{Optionenliste} hat dabei die Form: \begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} @@ -371,9 +406,9 @@ Eigenschaft der Familie selbst, so wird dieser Familien-Schl gesetzt. Danach folgen die Mitglieder-Schlüssel in der Reihenfolge, in der die Mitglieder definiert wurden. Existiert ein angegebener \PName{Schlüssel} weder für die Familie noch für ein Mitglied der Familie, so wird von -\Macro{FamilyOptions} ein Fehler ausgegeben. Bei \Macro{Family@Options} kann -man hingegen die Fehleraktion selbst wählen. Diese interne Anweisung ist -Klassen- und Paketautoren vorbehalten. +\Macro{FamilyOptions} ein Fehler ausgegeben. Dies geschieht ebenfalls, wenn +zwar für einige Mitglieder ein Schlüssel existiert, jedoch jedes dieser +Mitglieder über \Macro{FamilyKeyState} einen Fehler zurückmeldet. \begin{Example} Sie ergänzen das Fleischermeister-Projekt um ein weiteres Paket \Package{Wurstsalat}. Wird dieses Paket verwendet, so sollen alle @@ -408,16 +443,12 @@ Klassen- und Paketautoren vorbehalten. ist, wird nun auch gleich noch eine Warnung ausgegeben. \end{Example} % -\EndIndex{Cmd}{Family@Options}% \EndIndex{Cmd}{FamilyOptions}% \BeginIndex{Cmd}{FamilyOption}% -\BeginIndex{Cmd}{Family@Option}% \begin{Declaration} \Macro{FamilyOption}\Parameter{Familie}% - \Parameter{Option}\Parameter{Werteliste}\\ - \Macro{Family@Option}\Parameter{Familie}% - \Parameter{Option}\Parameter{Werteliste}\Parameter{Fehleraktion} + \Parameter{Option}\Parameter{Werteliste}% \end{Declaration} Neben Optionen, die sich gegenseitig ausschließende Werte besitzen, kann es auch Optionen geben, die gleichzeitig mehrere Werte annehmen können. Für diese @@ -432,7 +463,7 @@ einzigen \PName{Option} eine ganze \PName{Werteliste} zuweisen. Die In diesem Zusammenhang sei darauf hingewiesen, dass die Verwendung eines Kommas in einem Wert möglich ist, wenn man den Wert in geschweifte Klammern setzt. Die weiteren Funktionsweise ist der vorhergehenden Erklärung zu -\Macro{FamilyOptions} und \Macro{Family@Options} zu entnehmen. +\Macro{FamilyOptions} zu entnehmen. \begin{Example} Das Paket \Package{Wurstsalat} soll eine Option bekommen, über die man weitere Zutaten bestimmen kann. Für jede Zutat wird dabei wieder ein @@ -462,9 +493,25 @@ setzt. Die weiteren Funktionsweise ist der vorhergehenden Erkl verwenden. \end{Example} % -\EndIndex{Cmd}{Family@Option}% \EndIndex{Cmd}{FamilyOption}% + +\begin{Declaration} + \Macro{AtEndOfFamilyOptions}\Parameter{Aktion}% +\end{Declaration} +\BeginIndex{Cmd}{AtEndOfFamilyOptions}% +Manchmal\ChangedAt{v3.12}{\Package{scrbase}} ist es vorteilhafter, wenn nicht +jede Wertzuweisung an eine Option eine \PName{Aktion} auslöst, sondern dies +erst geschieht, wenn alle Wertzuweisungen innerhalb eines Aufrufs von +\Macro{FamilyProcessOptions}, \Macro{FamilyExecuteOptions}, +\Macro{FamilyOptions} oder \Macro{FamilyOption} abgeschlossen sind. Genau dies +ist mit Hilfe von \Macro{AtEndOfFamilyOptions} möglich. Die Rückmeldung von +Fehlerzuständen ist über diese Anweisung jedoch ebenso wenig möglich, wie die +Verwendung dieser Anweisung außerhalb der Ausführung von Optionen. +% +\EndIndex{Cmd}{AtEndOfFamilyOptions}% + + \BeginIndex{Cmd}{FamilyBoolKey}% \BeginIndex{Cmd}{FamilySetBool}% \begin{Declaration} @@ -489,14 +536,16 @@ definiert und mit \PName{false} voreingestellt. Intern verwendet \Macro{DefineFamilyKey}. Der Säumniswert für eine solche Option ist immer \PValue{true}. -\Macro{FamilySetBool} wiederum versteht als \PName{Wert} neben -\PValue{true} auch die Werte \PValue{on} und \PValue{yes} zum Einschalten und -neben \PValue{false} auch die Werte \PValue{off} und \PValue{no} zum +\Macro{FamilySetBool} wiederum versteht als \PName{Wert} neben \PValue{true} +auch die Werte \PValue{on} und \PValue{yes} zum Einschalten und neben +\PValue{false} auch die Werte \PValue{off} und \PValue{no} zum Ausschalten. Wird ein unbekannter Wert übergeben, so wird die Anweisung \Macro{FamilyUnkownKeyValue} mit den Argumenten \PName{Familie}, -\PName{Schlüssel} und \PName{Wert} aufgerufen. Dadurch wird dann eine -Fehlermeldung über unbekannte Wertzuweisung ausgegeben (siehe auch -\autopageref{desc:scrbase.cmd.FamilyUnkownKeyValue}). +\PName{Schlüssel} und \PName{Wert} aufgerufen und so \Macro{FamilyKeyState} +entsprechend gesetzt. Dadurch wird dann gegebenenfalls eine Meldung über +unbekannte Wertzuweisung ausgegeben (siehe auch +\autopageref{desc:scrbase.cmd.FamilyUnkownKeyValue} und +\autopageref{desc:scrbase.cmd.FamilyKeyState}). \begin{Example} Der Schlüssel \Option{Aufschnitt} soll in den Wurstpaketen etwas robuster definiert werden. Außerdem sollen alle Wurstpakete denselben Schalter @@ -521,7 +570,7 @@ Fehlermeldung \@ifundefined{if@Aufschnitt}{% \expandafter\newif\csname if@Aufschnitt\endcsname }{}% - \define@key{Fleischermeister}{Aufschnitt}[true]{% + \DefineFamilyKey[]{Fleischermeister}{Aufschnitt}[true]{% \FamilySetBool{Fleischermeister}{Aufschnitt}% {@Aufschnitt}% {#1}% @@ -536,11 +585,29 @@ Fehlermeldung \autopageref{explain:scrbase.macro.DefineFamilyKey}, der nicht nur für \Macro{DefineFamilyKey}, sondern entsprechend auch für \Macro{FamilyBoolKey} gilt. + + Da \Macro{FamilyKeyState} bereits von \Macro{FamilySetBool} gesetzt wird, + kann innerhalb der Definition der Option mit Hilfe von + \Macro{DefineFamilyKey} der Status gegebenenfalls auch abgefragt werden. So + könnte man im ersten Fall beispielsweise nach \Macro{FamilySetBool} einen + Test der Art: +\begin{lstcode} + \ifx\FamilyKeyState\FamilyKeyStateProcessed + ... + \else + ... + \fi +\end{lstcode} + zusätzliche Aktionen in Abhängigkeit davon, ob \Macro{FamilySetBool} + erfolgreich war oder nicht, ausführen. Es ist zu beachten, dass an dieser + Stelle unbedingt ein Test mit Hilfe von \Macro{ifx} vorzunehmen + ist. Expandierende Tests wie \Macro{ifstr} sind hier zu vermeiden. \end{Example} % \EndIndex{Cmd}{FamilySetBool}% \EndIndex{Cmd}{FamilyBoolKey} + \BeginIndex{Cmd}{FamilyNumericalKey}% \BeginIndex{Cmd}{FamilySetNumerical}% \begin{Declaration} @@ -632,6 +699,9 @@ Schl Argumenten \PName{Familie}, \PName{Schlüssel} und \PName{Wert} aufgerufen. Dadurch wird dann eine Fehlermeldung über unbekannte Wertzuweisung ausgegeben. + +Beim Aufruf von \Macro{FamilySetNumerical} wird wiederum auch der Erfolg oder +Misserfolg automatisch via \Macro{FamilyKeyState} signalisiert. % \EndIndex{Cmd}{FamilySetNumerical}% \EndIndex{Cmd}{FamilyNumericalKey}% @@ -660,7 +730,8 @@ das optionale Argument f \Parameter{Schlüssel}\\ \hphantom{\Macro{DefineFamilyKey}}% \OParameter{Säumniswert}% -\PParameter{\Macro{def}\PName{Makro}\string{\#1\string}}. +\PParameter{\Macro{def}\PName{Makro}\string{\#1\string}% +\Macro{FamilyKeyStateProcessed}}. \end{quote} Ist \PName{Makro} noch nicht definiert, so wird es als leeres Makro definiert. @@ -691,27 +762,19 @@ Wertzuweisung an den Schl \EndIndex{Cmd}{FamilyStringKey}% \BeginIndex{Cmd}{FamilyUnkownKeyValue}% -\BeginIndex{Cmd}{FamilyElseValues}% \begin{Declaration} \Macro{FamilyUnkownKeyValue}\Parameter{Familie}\Parameter{Schlüssel}% - \Parameter{Wert}\Parameter{Werteliste}\\ - \Macro{FamilyElseValues} + \Parameter{Wert}\Parameter{Werteliste} \end{Declaration} -Die Anweisung \Macro{FamilyUnkownKeyValue} gibt eine Fehlermeldung über einen -unbekannten Wert für einen bekannten Schlüssel aus. Als \PName{Werteliste} +Die Anweisung \Macro{FamilyUnkownKeyValue} signalisiert über +\Macro{FamilyKeyState} einen Fehler aufgrund eines unbekannten oder +unerlaubten Werts. Als \PName{Werteliste} wird dabei eine durch Komma separierte Liste von erlaubten Werten der Form \begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} `\PName{Wert}'\texttt{,} `\PName{Wert}' \dots \end{tabular}\vskip\dp\strutbox\end{flushleft} -erwartet. Darüber hinaus kann die Anweisung \Macro{FamilyElseValues} weitere -erlaubte Werte in der Form -\begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} - \texttt{,} `\PName{Wert}'\texttt{,} `\PName{Wert}' \dots -\end{tabular}\vskip\dp\strutbox\end{flushleft} -enthalten, die dann ebenfalls in der Fehlermeldung mit ausgegeben werden. Sowohl -\Macro{FamilySetBool} als auch \Macro{FamilySetNumerical} leeren das -Makro \Macro{FamilyElseValues} am Ende automatisch -- unabhängig davon, ob ein -Fehler zu melden war oder nicht. +erwartet. Allerdings\ChangedAt{v3.12}{\Package{scrbase}} wird die +\PName{Werteliste} derzeit nicht ausgewertet. \begin{Example} Für den Aufschnitt soll nun zusätzlich wählbar sein, ob er grob oder fein geschnitten werden soll. Dabei ist grob die Voreinstellung, die auch @@ -726,26 +789,56 @@ Fehler zu melden war oder nicht. \newif\csname if@Aufschnitt\endcsname}{} \DefineFamilyKey{Fleischermeister}% {Aufschnitt}[true]{% - \ifstr{#1}{fein}{% - \@Aufschnitttrue - \@Feinschnittrue - }{% + \FamilySetBool{Fleischermeister}{Aufschnitt}% + {@Aufschnitt}% + {#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed \@Feinschnittfalse - \def\FamilyElseValue{, `fein'}% - \FamilySetBool{Fleischermeister}{Aufschnitt}% - {@Aufschnitt}% - {#1}% - }% + \else + \ifstr{#1}{fein}{% + \@Aufschnitttrue + \@Feinschnittrue + \FamilyKeyStateProcessed + }{}% + \fi }% \end{lstcode} - Die hierbei verwendete Anweisung \Macro{ifstr} ist auf + Hier wird zunächst versucht, den boolschen Schalter für Aufschnitt über + \Macro{FamilySetBool} zu setzen. Wenn dies über \Macro{FamilyKeyState} den + Erfolgs-Status \Macro{FamilyKeyStateProcessed} zurück liefert, wird nur noch + der Feinschnitt abgeschaltet. Anderenfalls wird überprüft, ob als Wert + keiner für den boolschen Schalter, sondern \PValue{fein} übergeben wurde. In + diesem Fall wird sowohl der Feinschnitt, als auch Aufschnitt aktiviert und + mit Hilfe von \Macro{FamilyKeyStateProcessed} der Erfolgs-Status + gesetzt. Ist auch das nicht der Fall, bleibt der von \Macro{FamilySetBool} + signalisierte Fehler-Zustand bestehen. + + Die bei den Tests verwendete Anweisung \Macro{ifstr} ist auf \autopageref{desc:scrbase.cmd.ifstr} in \autoref{sec:scrbase.if} erklärt. \end{Example} % -\EndIndex{Cmd}{FamilyElseValues}% \EndIndex{Cmd}{FamilyUnkownKeyValue}% +\BeginIndex{Cmd}{FamilyElseValues}% +\begin{Declaration} + \Macro{FamilyElseValues} +\end{Declaration} +In\ChangedAt{v3.12}{\Package{scrbase}} früheren Versionen von +\Package{scrbase} konnte man über die Anweisung \Macro{FamilyElseValues} weitere +erlaubte Werte für die Bearbeitung durch \Macro{FamilyUnknownValue} in der Form +\begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} + \texttt{,} `\PName{Wert}'\texttt{,} `\PName{Wert}' \dots +\end{tabular}\vskip\dp\strutbox\end{flushleft} +ablegen, die dann ebenfalls in einer Fehlermeldung mit ausgegeben wurden. Seit +Version~3.12 gibt \Macro{FamilyUnknownValue} selbst keine Fehlermeldungen mehr +aus, sondern setzt nur noch \Macro{FamilyKeyState} entsprechend. Damit ist die +Verwendung von \Macro{FamilyElseValue} ebenfalls überholt. Ihre Verwendung +wird jedoch erkannt und führt dann zu einer Aufforderung, den Code +entsprechend anzupassen. +% +\EndIndex{Cmd}{FamilyElseValues}% + \section{Verzweigungen} \label{sec:scrbase.if} @@ -905,6 +998,139 @@ interne Variante. % \EndIndex{Cmd}{ifstr} +\begin{Declaration} + \Macro{ifstrstart}\Parameter{Zeichenfolge}\Parameter{Zeichenfolge}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifstrstart}% +Die\ChangedAt{v3.12}{\Package{scrbase}} beiden Argumente \PName{Zeichenfolge} +werden expandiert und dann verglichen. Beginnt die erste Zeichenfolge von +Leerzeichen abgesehen mit der zweiten Zeichenfolge, so wird der +\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Von dieser +Anweisung gibt es keine interne Variante.% +\EndIndex{Cmd}{ifstrstart}% + +\begin{Declaration} + \Macro{ifisdimen}\Parameter{Code}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifisdimen}% +Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in +einem \Macro{dimen}, also einem \TeX-Längenregister, resultiert, wird der +\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Die +Anweisung ist nicht voll expandierbar. Von dieser +Anweisung gibt es keine interne Variante.% +\EndIndex{Cmd}{ifisdimen}% + +\begin{Declaration} + \Macro{ifisdimension}\Parameter{Code}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifisdimension}% +Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in +etwas resultiert, das syntaktisch dem Wert einer Länge entspricht, wird der +\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Es ist zu +beachten,\textnote{Achtung!} dass derzeit unbekannte Einheiten zu einer +Fehlermeldung führen. Die Anweisung ist nicht voll expandierbar. Von dieser +Anweisung gibt es keine interne Variante.% +\EndIndex{Cmd}{ifisdimension}% + +\begin{Declaration} + \Macro{ifisdimexpr}\Parameter{Code}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifisdimexpr}% +Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in +einer \Macro{dimexpr}, also einem \TeX-Längenausdruck resultiert, wird der +\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Es ist zu +beachten,\textnote{Achtung!} dass fehlerhafte Ausdrücke zu Fehlermeldungen +führen! Die Anweisung ist nicht voll expandierbar. Von dieser +Anweisung gibt es keine interne Variante.% +\EndIndex{Cmd}{ifisdimexpr}% + +\begin{Declaration} + \Macro{ifisskip}\Parameter{Code}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifisskip}% +Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in +einem \Macro{skip}, also einem \TeX-Abstand, resultiert, wird der +\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Die +Anweisung ist nicht voll expandierbar. Von dieser +Anweisung gibt es keine interne Variante.% +\EndIndex{Cmd}{ifisskip}% + +\begin{Declaration} + \Macro{ifisglue}\Parameter{Code}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifisglue}% +Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in +etwas resultiert, das syntaktisch dem Wert eines Abstandes entspricht, wird der +\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Es ist zu +beachten,\textnote{Achtung!} dass derzeit unbekannte Einheiten zu einer +Fehlermeldung führen. Die Anweisung ist nicht voll expandierbar. Von dieser +Anweisung gibt es keine interne Variante.% +\EndIndex{Cmd}{ifisglue}% + +\begin{Declaration} + \Macro{ifisglueexpr}\Parameter{Code}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifisglueexpr}% +Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in +einer \Macro{glueexpr}, also einem \TeX-Abstandsausdruck resultiert, wird der +\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Es ist zu +beachten,\textnote{Achtung!} dass fehlerhafte Ausdrücke zu Fehlermeldungen +führen! Die Anweisung ist nicht voll expandierbar. Von dieser +Anweisung gibt es keine interne Variante.% +\EndIndex{Cmd}{ifisglueexpr}% + +\begin{Declaration} + \Macro{ifiscount}\Parameter{Code}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifiscount}% +Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in +einem \Macro{count}, also einem \TeX-Zähler, resultiert, wird der +\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Die +Anweisung ist nicht voll expandierbar. Für einen Test auf einen \LaTeX-Zähler +siehe \Macro{ifiscounter}. Von dieser +Anweisung gibt es keine interne Variante.% +\EndIndex{Cmd}{ifiscount}% + +\begin{Declaration} + \Macro{ifisnumber}\Parameter{Code}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifisnumber}% +Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in +etwas resultiert, das syntaktisch dem Wert eines Zählers entspricht, also eine +negative oder positive ganze Zahl ist, wird der \PName{Dann-Teil} ausgeführt, +anderenfalls der \PName{Sonst-Teil}. Die Anweisung ist nicht voll +expandierbar. Von dieser Anweisung gibt es keine interne Variante.% +\EndIndex{Cmd}{ifisnumber}% + +\begin{Declaration} + \Macro{ifisnumexpr}\Parameter{Code}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifisnumexpr}% +Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in +einer \Macro{numexpr}, also einem \TeX-Zahlenausdruck resultiert, wird der +\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Es ist zu +beachten,\textnote{Achtung!} dass fehlerhafte Ausdrücke zu Fehlermeldungen +führen! Die Anweisung ist nicht voll expandierbar. Von dieser +Anweisung gibt es keine interne Variante.% +\EndIndex{Cmd}{ifisnumexpr}% + +\begin{Declaration} + \Macro{ifiscounter}\Parameter{Zähler}% + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifiscounter}% +Wenn\ChangedAt{v3.12}{\Package{scrbase}} \PName{Zähler} ein definierter +\LaTeX-Zähler ist, wird der \PName{Dann-Teil} ausgeführt, anderenfalls der +\PName{Sonst-Teil}. Die Anweisung ist nicht voll expandierbar. Von dieser +Anweisung gibt es keine interne Variante.% +\EndIndex{Cmd}{ifiscounter}% + \BeginIndex{Cmd}{ifnumber} \begin{Declaration} \Macro{ifnumber}\Parameter{Zeichenfolge}% @@ -913,8 +1139,7 @@ interne Variante. Hier werden keine Zahlen verglichen. Der \PName{Dann-Teil} wird vielmehr ausgeführt, wenn die Expansion der \PName{Zeichenfolge} nur aus Ziffern besteht. Anderenfalls wird der \PName{Sonst-Teil} verwendet. Von dieser -Anweisung gibt es keine interne Variante. -% +Anweisung gibt es keine interne Variante.% \EndIndex{Cmd}{ifnumber} \BeginIndex{Cmd}{ifdimen} @@ -966,48 +1191,61 @@ sondern hinter \Macro{begin}\PParameter{document} einf \Package{scrbase} bietet ihm für die Definition selbst einige zusätzliche Anweisungen. +\BeginIndex{Cmd}{defcaptionname}% \BeginIndex{Cmd}{providecaptionname}% \BeginIndex{Cmd}{newcaptionname}% \BeginIndex{Cmd}{renewcaptionname}% \begin{Declaration} + \Macro{defcaptionname}% + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ \Macro{providecaptionname}% - \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt}\\ + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ \Macro{newcaptionname}% - \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt}\\ + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ \Macro{renewcaptionname}% - \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt} + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ + \Macro{defcaptionname*}% + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ + \Macro{providecaptionname*}% + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ + \Macro{newcaptionname*}% + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ + \Macro{renewcaptionname*}% + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt} \end{Declaration} 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 dieser \PName{Sprache} zum Zeitpunkt des Aufrufs -bereits definiert ist. +Abhängigkeit der Sprache einen \PName{Inhalt} zuzuweisen. Mehrere Sprachen +können durch Komma voneinander getrennt als +\PName{Sprachliste}\ChangedAt{v3.12}{\Package{scrbase}} angegeben werden. -Ist eine \PName{Sprache} nicht definiert, so tut \Macro{providecaptionname} +Der \PName{Begriff} ist immer ein Makro. Die Arbeitsweise der drei Anweisungen +unterscheidet sich je nachdem, ob eine Sprache und ein \PName{Begriff} +innerhalb dieser Sprache zum Zeitpunkt des Aufrufs bereits definiert ist. + +Ist eine 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. Ist der \PName{Begriff} hingegen in der 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 bei ihr -die \PName{Sprache} nicht definiert, dann wird diese neu definiert, indem eine -entsprechende Anweisung definiert wird. Für die \PName{Sprache} +eine Sprache nicht definiert, dann wird diese neu definiert, indem eine +entsprechende Anweisung definiert wird. Für die Sprache \PValue{ngerman} wäre das beispielsweise \Macro{captionsngerman}. 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 +wird darüber auch in der \File{log}-Datei informiert. Ist die Sprache +definiert, der \PName{Begriff} in dieser 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 +\PName{Begriff} in der Sprache bereits vorhanden, so wird eine Fehlermeldung ausgegeben. Die Anweisung \Macro{renewcaptionname} verhält sich noch einmal anders. 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 +eine Sprache nicht definiert, so wird eine Fehlermeldung +ausgegeben. Ist die Sprache definiert, der \PName{Begriff} in dieser +Sprache jedoch nicht, so wird ebenfalls eine Fehlermeldung +ausgegeben. Ist der \PName{Begriff} in der Sprache definiert, so wird er auf den gewünschten \PName{Inhalt} umdefiniert. \KOMAScript{} selbst verwendet \Macro{providecaptionname} um die Begriffe aus @@ -1015,18 +1253,37 @@ er auf den gew \begin{Example} Möchten Sie statt »Abbildung« in den Abbildungsunterschriften lieber »Abb.« - stehen haben, so erreichen Sie dies mit + stehen haben, so erreichen Sie dies mit: \begin{lstcode} \renewcaptionname{ngerman}{\figurename}{Abb.} \end{lstcode} + Soll dieselbe Änderung nicht nur für die Sprache \PValue{ngerman}, sondern + auch für Sprache \PValue{naustrian}, also für Österreichisch gelten, so ist + es nicht notwendig eine zweite Anweisung: +\begin{lstcode} + \renewcaptionname{naustrian}{\figurename}{Abb.} +\end{lstcode} + hinzuzufügen. Stattdessen kann einfach, die \PName{Sprachliste} erweitert + werden: +\begin{lstcode} + \renewcaptionname{ngerman,naustrian{\figurename}{Abb.} +\end{lstcode} + In gleicher Weise können auch \PValue{german} und \PValue{austrian}, also + Deutsch und Österreichisch nach der veralteten Rechtschreibung, hinzugefügt + werden. \end{Example} -Da\important{Achtung!} 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. +Seit \KOMAScript~3.12\ChangedAt{v3.12}{\Package{scrbase}} ist es auch nicht +mehr erforderlich, die Definierung oder Umdefinierung mit Hilfe von +\Macro{AtBeginDocument} bis \Macro{begin}\PParameter{document} zu +verzögern. Stattdessen erledigt \Package{scrbase} dies selbst, falls die +Anweisungen in der Dokumentpräambel aufgerufen werden. Außerdem prüft +\Package{scrbase} nun auch, ob ein umzudefinierender Begriff statt in +\Macro{captions\PName{Sprache}} in \Macro{extras\PName{Sprache}} zu definieren +ist. Die neuen Sternvarianten der Befehle verwenden grundsätzlich +\Macro{captions\PName{Sprache}}. Damit funktioniert nun in der Regel auch das +Umdefinieren von sprachabhängigen Bezeichnern von Paketen wie +\Package{hyperref}, die dafür \Macro{extras\PName{Sprache}} verwenden. In \autoref{tab:scrbase.commonNames} ist ein Überblick über die üblicherweise von Klassen und Sprachpaketen definierten Begriffe und deren Verwendung zu @@ -1132,7 +1389,8 @@ finden. \EndIndex{Cmd}{renewcaptionname}% \EndIndex{Cmd}{newcaptionname}% \EndIndex{Cmd}{providecaptionname}% - +\EndIndex{Cmd}{defcaptionname}% +% \EndIndex{}{Sprachdefinition}% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbookreportarticle.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbookreportarticle.tex index 8c0d120142d..bda0be62839 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbookreportarticle.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbookreportarticle.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrbookreportarticle.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrbookreportarticle.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,8 +45,9 @@ % % ============================================================================ -\ProvidesFile{scrbookreportarticle.tex}[2012/02/15 KOMA-Script guide (chapter: -scrbook, scrreprt, scrartcl)] +\KOMAProvidesFile{scrbookreportarticle.tex} + [$Date: 2013-12-16 18:08:48 +0100 (Mo, 16. Dez 2013) $ + KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl)] \chapter{Die Hauptklassen \Class{scrbook}, \Class{scrreprt}, \Class{scrartcl}} \labelbase{maincls}% @@ -117,7 +118,7 @@ Tabellen. \LoadCommon{0} % \section{Frühe oder späte Optionenwahl} -\iffree{}{\clearpage}% Umbruchkorrektur!!! +%\iffree{}{\clearpage}% Umbruchkorrektur!!! \LoadCommon{1} % \section{Kompatibilität zu früheren Versionen von \KOMAScript} @@ -136,7 +137,8 @@ Tabellen. nur alle ersten Zeilen eines Satzspiegels mit ihrer Grundlinie auf der gleichen Höhe liegen, sondern auch die letzten Zeilen einer Doppelseite. Enthält eine Seite nur Text ohne Absätze und Überschriften, so - hat man das automatisch. Aber bereits dann, wenn Absätze mit einem halben + hat man das automatisch, wenn bei der Konstruktion des Satzspiegels einige + Grundregeln befolgt wurden. Aber bereits dann, wenn Absätze mit einem halben Grundlinienabstand markiert werden, genügt es, wenn die Anzahl der Absätze auf der einen Seite um eine ungerade Zahl von der auf der anderen Seite abweicht, damit dieses Ziel nicht mehr erreicht werden kann. Es ist dann @@ -178,193 +180,10 @@ voreingestellt. Dies ist bei einem Wechsel von den Standardklassen zu den % \EndIndex{}{Schrift>Groesse=Größe} - \LoadCommon{5} % \section{Textauszeichnungen} -Mit der Anweisung \Macro{usekomafont} kann die aktuelle Schriftart auf -diejenige umgeschaltet werden, die für das angegebene \PName{Element} -definiert ist. - -\begin{Example} - \phantomsection\label{desc:maincls.setkomafont.example}% - Angenommen, für das Element - \FontElement{captionlabel} soll dieselbe Schriftart wie - für \FontElement{descriptionlabel} verwenden. Das - erreichen Sie einfach mit: -\begin{lstcode} - \setkomafont{captionlabel}{% - \usekomafont{descriptionlabel}% - } -\end{lstcode} - Weitere Beispiele finden Sie in den Abschnitten zu den jeweiligen - Elementen. -\end{Example} - -\begin{desclist} - \desccaption{% - Elemente, deren Schrift bei \Class{scrbook}, \Class{scrreprt} oder - \Class{scrartcl} mit \Macro{setkomafont} und \Macro{addtokomafont} - verändert werden kann\label{tab:maincls.elementsWithoutText}% - }{% - Elemente, deren Schrift verändert werden kann (\emph{Fortsetzung})% - }% - \feentry{caption}{Text einer Abbildungs- oder Tabellenunter- oder - "~überschrift (siehe \autoref{sec:maincls.floats}, - \autopageref{desc:maincls.cmd.caption})}% - \feentry{captionlabel}{% - Label einer Abbildungs- oder Tabellenunter- oder "~überschrift; Anwendung - erfolgt nach dem Element \FontElement{caption} (siehe - \autoref{sec:maincls.floats}, \autopageref{desc:maincls.cmd.caption})}% - \feentry{chapter}{% - Überschrift der Ebene \Macro{chapter} (siehe - \autoref{sec:maincls.structure}, \autopageref{desc:maincls.cmd.chapter})}% - \feentry{chapterentry}{% - Inhaltsverzeichniseintrag der Ebene \Macro{chapter} (siehe - \autoref{sec:maincls.toc}, - \autopageref{desc:maincls.cmd.tableofcontents})}% - \feentry{chapterentrypagenumber}{% - Seitenzahl des Inhaltsverzeichniseintrags der Ebene \Macro{chapter} - abweichend vom Element \FontElement{chapterentry} (siehe - \autoref{sec:maincls.toc}, - \autopageref{desc:maincls.cmd.tableofcontents})}% - \feentry{chapterprefix}{% - Kapitelnummernzeile bei Einstellung \OptionValue{chapterprefix}{true} oder - \OptionValue{appendixprefix}{true} (siehe \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.option.chapterprefix})}% - \feentry{descriptionlabel}{% - Label, also das optionale Argument der \Macro{item}-Anweisung, in einer - \Environment{description}-Umgebung (siehe \autoref{sec:maincls.lists}, - \autopageref{desc:maincls.env.description})}% - \feentry{dictum}{% - mit \Macro{dictum} gesetzter schlauer Spruch (siehe - \autoref{sec:maincls.dictum}, \autopageref{desc:maincls.cmd.dictum})}% - \feentry{dictumauthor}{% - Urheber eines schlauen Spruchs; Anwendung erfolgt nach dem Element - \FontElement{dictum} (siehe \autoref{sec:maincls.dictum}, - \autopageref{desc:maincls.cmd.dictum})}% - \feentry{dictumtext}{% - alternative Bezeichnung für \FontElement{dictum}}% - \feentry{disposition}{% - 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 - Gliederungsebene (siehe \autoref{sec:maincls.structure} ab - \autopageref{sec:maincls.structure})}% - \feentry{footnote}{% - Marke und Text einer Fußnote (siehe \autoref{sec:maincls.footnotes}, - \autopageref{desc:maincls.cmd.footnote})}% - \feentry{footnotelabel}{% - Marke einer Fußnote; Anwendung erfolgt nach dem Element - \FontElement{footnote} (siehe \autoref{sec:maincls.footnotes}, - \autopageref{desc:maincls.cmd.footnote})}% - \feentry{footnotereference}{% - Referenzierung der Fußnotenmarke im Text (siehe - \autoref{sec:maincls.footnotes}, - \autopageref{desc:maincls.cmd.footnote})}% - \feentry{footnoterule}{% - Linie\ChangedAt{v3.07}{\Class{scrbook}\and \Class{scrreprt}\and - \Class{scrartcl}} - über dem Fußnotenapparat (siehe \autoref{sec:maincls.footnotes}, - \autopageref{desc:maincls.cmd.setfootnoterule})}% - \feentry{labelinglabel}{% - Label, also das optionale Argument der \Macro{item}-Anweisung, und - Trennzeichen, also das optionale Argument der - \Environment{labeling}-Umgebung, in einer \Environment{labeling}-Umgebung - (siehe \autoref{sec:maincls.lists}, \autopageref{desc:maincls.env.labeling})}% - \feentry{labelingseparator}{% - Trennzeichen, also das optionale Argument der - \Environment{labeling}-Umgebung, in einer \Environment{labeling}-Umgebung; - Anwendung erfolgt nach dem Element \FontElement{labelinglabel} - (siehe \autoref{sec:maincls.lists}, \autopageref{desc:maincls.env.labeling})}% - \feentry{minisec}{% - mit \Macro{minisec} gesetzte Überschrift (siehe - \autoref{sec:maincls.structure} ab - \autopageref{desc:maincls.cmd.minisec})}% - \feentry{pagefoot}{% - wird nur verwendet, wenn das Paket \Package{scrpage2} geladen ist (siehe - \autoref{cha:scrpage}, \autopageref{desc:scrpage.fontelement.pagefoot})}% - \feentry{pagehead}{% - alternative Bezeichnung für \FontElement{pageheadfoot}}% - \feentry{pageheadfoot}{% - Seitenkopf und Seitenfuß bei allen von \KOMAScript{} definierten - Seitenstilen (siehe \autoref{sec:maincls.pagestyle} ab - \autopageref{sec:maincls.pagestyle})}% - \feentry{pagenumber}{% - Seitenzahl im Kopf oder Fuß der Seite (siehe - \autoref{sec:maincls.pagestyle})}% - \feentry{pagination}{% - alternative Bezeichnung für \FontElement{pagenumber}}% - \feentry{paragraph}{% - Überschrift der Ebene \Macro{paragraph} (siehe - \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.cmd.paragraph})}% - \feentry{part}{% - Überschrift der Ebene \Macro{part}, jedoch ohne die Zeile mit der Nummer - des Teils (siehe \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.cmd.part})}% - \feentry{partentry}{% - Inhaltsverzeichniseintrag der Ebene \Macro{part} (siehe - \autoref{sec:maincls.toc}, - \autopageref{desc:maincls.cmd.tableofcontents})}% - \feentry{partentrypagenumber}{% - Seitenzahl des Inhaltsverzeichniseintrags der Ebene \Macro{part} - abweichend vom Element \FontElement{partentry} (siehe - \autoref{sec:maincls.toc}, - \autopageref{desc:maincls.cmd.tableofcontents})}% - \feentry{partnumber}{% - Zeile mit der Nummer des Teils in Überschrift der Ebene \Macro{part} - (siehe \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.cmd.part})}% - \feentry{section}{% - Überschrift der Ebene \Macro{section} (siehe - \autoref{sec:maincls.structure}, \autopageref{desc:maincls.cmd.section})}% - \feentry{sectionentry}{% - Inhaltsverzeichniseintrag der Ebene \Macro{section} (nur bei - \Class{scrartcl} verfügbar, siehe \autoref{sec:maincls.toc}, - \autopageref{desc:maincls.cmd.tableofcontents})}% - \feentry{sectionentrypagenumber}{% - Seitenzahl des Inhaltsverzeichniseintrags der Ebene \Macro{section} - abweichend vom Element \FontElement{sectionentry} (nur bei - \Class{scrartcl} verfügbar, siehe \autoref{sec:maincls.toc}, - \autopageref{desc:maincls.cmd.tableofcontents})}% - \feentry{sectioning}{% - alternative Bezeichnung für \FontElement{disposition}}% - \feentry{subject}{% - Typisierung des Dokuments, also das Argument von \Macro{subject} auf der - Haupttitelseite (siehe \autoref{sec:maincls.titlepage}, - \autopageref{desc:maincls.cmd.subject})}% - \feentry{subparagraph}{% - Überschrift der Ebene \Macro{subparagraph} (siehe - \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.cmd.subparagraph})}% - \feentry{subsection}{% - Überschrift der Ebene \Macro{subsection} (siehe - \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.cmd.subsection})}% - \feentry{subsubsection}{% - Überschrift der Ebene \Macro{subsubsection} (siehe - \autoref{sec:maincls.structure}, - \autopageref{desc:maincls.cmd.subsubsection})}% - \feentry{subtitle}{% - Untertitel des Dokuments, also das Argument von \Macro{subtitle} auf der - Haupttitelseite (siehe \autoref{sec:maincls.titlepage}, - \autopageref{desc:maincls.cmd.title})}% - \feentry{title}{% - Haupttitel des Dokuments, also das Argument von \Macro{title} (bezüglich - der Größe des Haupttitels siehe die ergänzenden Bemerkungen im Text von - \autoref{sec:maincls.titlepage} ab \autopageref{desc:maincls.cmd.title})}% -\end{desclist} -% -\EndIndex{Cmd}{setkomafont}% -\EndIndex{Cmd}{addtokomafont}% -\EndIndex{Cmd}{usekomafont}% -% -\EndIndex{}{Schrift>Art}% -\EndIndex{}{Text>Auszeichnung} - \LoadCommon{14}% \section{Dokumenttitel} - \section{Zusammenfassung} \label{sec:maincls.abstract} \BeginIndex{}{Zusammenfassung}% @@ -535,8 +354,8 @@ aus. In \cite{DANTE:FAQ} wird f des Inhaltsverzeichnisses umzudefinieren. \KOMAScript{}\important{\OptionValue{toc}{flat}} bietet jedoch eine alternative Formatierung an, bei der das Problem nicht auf"|tritt. Bei -Verwendung der Option \OptionValue{toc}{flat}\IndexOption{toc~=\PValue{flat}} werden -die unterschiedlichen Gliederungsebenen nicht unterschiedlich weit +Verwendung der Option \OptionValue{toc}{flat}\IndexOption{toc~=\PValue{flat}} +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 @@ -572,10 +391,29 @@ Einen Das Inhaltsverzeichnis erhält eine hierarchische Form. Es steht nur ein begrenzter Platz für die Gliederungsnummern zur Verfügung.% \IndexOption{toc~=\PValue{graduated}}}% + \entry{\PValue{indenttextentries}, \PValue{indentunnumbered}, + \PValue{numberline}}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}}% + Die Eigenschaft \PValue{numberline} (siehe \autoref{sec:tocbasic.toc}, + \autopageref{desc:tocbasic.cmd.setuptoc}) wird für das Inhaltsverzeichnis + gesetzt. Dadurch werden nicht nummerierte Einträge linksbündig mit dem + Text von nummerierten Einträgen gleicher Ebene gesetzt.% + \IndexOption{toc~=\PValue{numberline}}}% \entry{\PValue{index}, \PValue{idx}}{% Das Stichwortverzeichnis erhält einen Eintrag im Inhaltsverzeichnis, ohne dass es nummeriert wird.% \IndexOption{toc~=\PValue{index}}}% + \entry{\PValue{leftaligntextentries}, \PValue{leftalignunnumbered}, + \PValue{nonumberline}}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}}% + Die Eigenschaft \PValue{numberline} (siehe \autoref{sec:tocbasic.toc}, + \autopageref{desc:tocbasic.cmd.setuptoc}) wird für das Inhaltsverzeichnis + gelöscht. Dadurch werden nicht nummerierte Einträge linksbündig mit dem + Nummer von nummerierten Einträgen gleicher Ebene gesetzt. Dies entspricht + der Voreinstellung.% + \IndexOption{toc~=\PValue{numberline}}}% \pventry{listof}{% Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und das Tabellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis, @@ -583,8 +421,8 @@ Einen \IndexOption{toc~=\PValue{listof}}}% \entry{\PValue{listofnumbered}, \PValue{numberedlistof}}{% Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und - das Tabellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis - und werden nummeriert.% + das Tabellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis und + werden nummeriert.% \IndexOption{toc~=\PValue{listofnumbered}}}% \entry{\PValue{nobibliography}, \PValue{nobib}}{% Das Literaturverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis.% @@ -630,19 +468,20 @@ Inhaltsverzeichniseintr und \Class{scrreprt} über \FontElement{chapterentry}\IndexFontElement{chapterentry} beziehungsweise \FontElement{sectionentry}\IndexFontElement{sectionentry} für \Class{scrartcl} -einstellbar. Die Schrift der -Seitenzahlen kann jeweils davon abweichend über die Elemente +einstellbar. Die Schrift der Seitenzahlen kann jeweils davon abweichend über +die Elemente \FontElement{partentrypagenumber}\IndexFontElement{partentrypagenumber}% \important{\FontElement{partentrypagenumber}} und \FontElement{chapterentrypagenumber}\IndexFontElement{chapterentrypagenumber}% \important[i]{\FontElement{chapterentrypagenumber}\\ - \FontElement{sectionentrypagenumber}} respektive + \FontElement{sectionentrypagenumber}} (\Class{scrbook} und \Class{scrreprt}) +beziehungsweise \FontElement{sectionentrypagenumber}\IndexFontElement{sectionentrypagenumber} -eingestellt werden (siehe auch \autoref{sec:maincls.textmarkup}, -\autopageref{desc:maincls.cmd.setkomafont}, sowie -\autoref{tab:maincls.elementsWithoutText}, +(\Class{scrartcl}) eingestellt werden (siehe auch +\autoref{sec:maincls.textmarkup}, \autopageref{desc:maincls.cmd.setkomafont}, +sowie \autoref{tab:maincls.elementsWithoutText}, \autopageref{tab:maincls.elementsWithoutText}). Die Voreinstellungen der -Elemente ist \autoref{tab:maincls.tocelements} zu entnehmen. +Elemente sind \autoref{tab:maincls.tocelements} zu entnehmen. \begin{table} % \centering % \caption @@ -691,11 +530,14 @@ Z 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{partlevel}, \Macro{chapterlevel}, \Macro{sectionlevel} und so weiter -bis hinunter zu \Macro{subparagraphlevel} zur Verfügung. +Bitten beachten Sie\textnote{Achtung!}, dass die Werte für \Counter{tocdepth} +und \Counter{secnumdepth}\IndexCounter{secnumdepth} (siehe +\autoref{sec:maincls.structure}, +\autopageref{desc:maincls.counter.secnumdepth}) bei \Class{scrartcl} für +\Macro{part} nicht übereinstimmen. Dies wurde aus Gründen der Kompatibilität +von der Standardklasse \Class{article} übernommen. Daher sollte die Anweisung +\Macro{partnumdepth}\IndexCmd{partnumdepth} nicht zum Setzen von +\Counter{tocdepth} verwendet werden.% \begin{Example} Angenommen, Sie setzen einen Artikel, bei dem die Gliederungsebene \Macro{subsubsection} verwendet wird. Gehen wir weiter davon aus, @@ -716,9 +558,9 @@ bis hinunter zu \Macro{subparagraphlevel} zur Verf \documentclass{scrartcl} \addtocounter{tocdepth}{-1} \end{lstcode} - Wie\textnote{Tipp!} viel Sie von \Counter{tocdepth} subtrahieren oder dazu - addieren müssen, können Sie natürlich auch einfach nach einem ersten - \LaTeX-Lauf im Inhaltsverzeichnis abzählen. + Den\textnote{Tipp!} Wert, den Sie zu \Counter{tocdepth} addieren oder davon + subtrahieren müssen, können Sie nach mindestens zwei \LaTeX-Läufen einfach im + Inhaltsverzeichnis abzählen. \end{Example} \iffalse % Umbruchausgleichstext Falls\textnote{Tipp!} Sie sich nicht merken wollen, welche Nummer zu welcher @@ -788,9 +630,12 @@ wird. Entsprechendes gilt bei \Option{footsepline} f \Option{footinclude}\IndexOption{footinclude}\important{\Option{footinclude}}. 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. Das Paket -\Package{scrpage2}\IndexPackage{scrpage2} (siehe \autoref{cha:scrpage}) bietet -weitere Einflussmöglichkeiten für Linien im Kopf und Fuß.% +\PValue{plain} eine Seitenzahl im Fuß ausgibt. \iffree{Die Pakete + \Package{scrpage2} und}{Das Paket} +\Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage} (siehe +\iffree{\autoref{cha:scrpage} beziehungsweise}{\ignorespaces} +\autoref{cha:scrlayer-scrpage}) bietet weitere Einflussmöglichkeiten für +Linien im Kopf und Fuß.% % \EndIndex{Option}{headsepline~=\PName{Ein-Aus-Wert}}% \EndIndex{Option}{footsepline~=\PName{Ein-Aus-Wert}}% @@ -863,8 +708,13 @@ weitere Einflussm jederzeit} gesetzt werden. Verwendet\textnote{Tipp!} man \Macro{pagestyle} vor Anweisungen, die einen Seitenumbruch herbeiführen, und soll die Änderung erst ab der neuen Seite gelten, so ist ein \Macro{cleardoublepage} davor -nützlich. Üblicherweise verwendet man \Macro{pagestyle} aber nur einmal zu +nützlich. +% +\iffalse % Umbruchkorrektur +Üblicherweise verwendet man \Macro{pagestyle} aber nur einmal zu Beginn des Dokuments oder in der Präambel. +% +\fi Für\important{\Macro{thispagestyle}} eine Änderung des Seitenstils nur der aktuellen Seite verwendet man stattdessen die Anweisung @@ -873,13 +723,15 @@ automatisch. Beispielsweise wird bei allen Kapitelanfangsseiten implizit die Anweisung \Macro{thispagestyle}\PParameter{\Macro{chapterpagestyle}} ausgeführt. -Bitte\textnote{Achtung!} beachten Sie auch, dass die Umschaltung zwischen -automatischen und manuellen Kolumnentiteln bei Verwendung des Pakets -\Package{scrpage2}\important{\Package{scrpage2}} nicht mehr über den -Seitenstil, sondern mit speziellen Anweisungen erfolgt. Die beiden Seitenstile -\Pagestyle{headings} und \Pagestyle{myheadings} sollten nicht zusammen mit -diesem Paket verwendet werden (siehe \autoref{cha:scrpage}, -\autopageref{desc:scrpage.pagestyle.useheadings}). +Bitte\textnote{Achtung!} beachten Sie, dass die Umschaltung zwischen +automatischen und manuellen Kolumnentiteln bei Verwendung \iffree{des Pakets + \Package{scrpage2}\important{\Package{scrpage2}} oder }{}von +\Package{scrlayer-scrpage}\important{\Package{scrlayer-scrpage}} nicht mehr +über den Seitenstil, sondern mit speziellen Anweisungen erfolgt. Die beiden +Seitenstile \Pagestyle{headings} und \Pagestyle{myheadings} sollten nicht +zusammen mit \iffree{diesen Paketen}{diesem Paket} verwendet werden\iffree{ + (siehe auch \autoref{cha:scrpage}, + \autopageref{desc:scrpage.pagestyle.useheadings})}{}. \BeginIndex[indexother]{}{Schrift>Art}% \BeginIndex{FontElement}{pageheadfoot}% @@ -898,9 +750,13 @@ hei \FontElement{pagenumber}\IndexFontElement{pagenumber}\important{\FontElement{pagenumber}}. Das ebenfalls in den \KOMAScript-Klassen bereitgestellte Element \FontElement{pagefoot}\IndexFontElement{pagefoot} wird nur verwendet, wenn man -mit dem Paket \Package{scrpage2}\IndexPackage{scrpage2} (siehe -\autoref{cha:scrpage}, \autopageref{desc:scrpage.fontelement.pagefoot}) einen -Seitenstil definiert, bei dem auch der Fuß Text enthält. +mit dem Paket \Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage} +\iffree{oder \Package{scrpage2}\IndexPackage{scrpage2}}{\ignorespaces} (siehe +\autoref{cha:scrlayer-scrpage}, +\autopageref{desc:scrlayer-scrpage.fontelement.pagefoot} +\iffree{beziehungsweise \autoref{cha:scrpage}, + \autopageref{desc:scrpage.fontelement.pagefoot}}{\unskip}) einen Seitenstil +definiert, bei dem auch der Fuß Text enthält. Die Voreinstellungen sind in \autoref{tab:maincls.defaultFontsHeadFoot} zu finden. @@ -940,8 +796,7 @@ finden. Sie dies wie folgt erreichen: \begin{lstcode} \setkomafont{pageheadfoot}{% - \normalfont\normalcolor\itshape\small - } + \normalfont\normalcolor\itshape\small} \setkomafont{pagenumber}{\normalfont\bfseries} \end{lstcode} Wollen Sie hingegen lediglich, dass zusätzlich zur bereits voreingestellten @@ -957,23 +812,28 @@ finden. \autopageref{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}, -\autopageref{desc:scrpage.option.markuppercase}). +Kolumnentitel zu erzwingen. Wenn Sie dies wünschen, müssen Sie entweder +\Macro{MakeMarkcase}\IndexCmd{MakeMarkcase} entsprechend umdefinieren. Es wird +jedoch empfohlen, in solchen Fällen das Paket \Package{scrlayer-scrpage} zu +verwenden (siehe \autoref{cha:scrlayer-scrpage}, +\autopageref{desc:scrlayer-scrpage.option.markcase}). Werden\textnote{Tipp!} eigene Seitenstile definiert, sind eventuell die Befehle \Macro{usekomafont}\PParameter{pageheadfoot}, \Macro{usekomafont}\PParameter{pagenumber} sowie \Macro{usekomafont}\PParameter{pagefoot} nützlich. Insbesondere falls Sie -dafür nicht das \KOMAScript-Paket \Package{scrpage2} (siehe -\autoref{cha:scrpage}), sondern beispielsweise das Paket +dafür nicht das \KOMAScript-Paket \Package{scrlayer-scrpage}\iffree{ oder + \Package{scrpage2}}{} (siehe \autoref{cha:scrlayer-scrpage}\iffree{ + beziehungsweise \autoref{cha:scrpage}}{}), sondern beispielsweise das Paket \Package{fancyhdr}\IndexPackage{fancyhdr}\important{\Package{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. Das Paket \Package{scrpage2}\IndexPackage{scrpage2} sorgt selbst -für maximale Kompatibilität.% +unbeachtet. \iffree{Die Pakete}{Das Paket} +\Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage} \iffree{und + Package{scrpage2}\IndexPackage{scrpage2} sorgen}{sorgt} selbst für maximale +Kompatibilität.% \EndIndex{FontElement}{pagenumber}% \EndIndex{FontElement}{pagefoot}% \EndIndex{FontElement}{pageheadfoot}% @@ -999,8 +859,10 @@ und \Macro{markright}. Dabei wird die \PName{linke Marke} normalerweise im Kopf linker Seiten und die \PName{rechte Marke} im Kopf rechter Seiten verwendet. Im einseitigen Satz existiert nur die rechte Marke. Bei Verwendung des Paketes -\Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}} steht -außerdem die Anweisung +\Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage}\important{\Package{scrlayer-scrpage}}\iffree{ + oder + \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}}}{} +steht außerdem die Anweisung \Macro{markleft}\IndexCmd{markleft}\important{\Macro{markleft}} zur Verfügung. Die Anweisungen können auch zusammen mit anderen Seitenstilen verwendet @@ -1064,12 +926,12 @@ werden. wird. Natürlich können Sie auch einen selbst definierten Seitenstil verwenden. - Angenommen, Sie haben mit dem Paket \Package{scrpage2} (siehe - \autoref{cha:scrpage}) einen eigenen Seitenstil für + Angenommen, Sie haben mit dem Paket \Package{scrlayer-scrpage} (siehe + \autoref{cha:scrlayer-scrpage}) einen eigenen Seitenstil für Kapitelanfangsseiten\Index{Kapitel>Seitenstil}% \textnote{Kapitel\-anfangs\-seiten} definiert. Diesem Seitenstil haben Sie den passenden Namen \PValue{chapter} - gegeben. Um diesen nun auch tatsächlich zu verwenden, definieren Sie + gegeben. Um diesen auch tatsächlich zu verwenden, definieren Sie \Macro{chapterpagestyle} entsprechend um: \begin{lstcode} \renewcommand*{\chapterpagestyle}{chapter} @@ -1111,8 +973,7 @@ werden. \begin{Explain} Wer nun glaubt, er könne auf Kapitelanfangsseiten ebenfalls mit - lebenden Kolumnentiteln arbeiten, indem er einfach eine Definition - wie + lebenden Kolumnentiteln arbeiten, indem er einfach \begin{lstcode} \renewcommand*{\chapterpagestyle}{headings} \end{lstcode} @@ -1304,7 +1165,8 @@ Zusammenfassung der m \Macro{cleardoublepage} erzeugen einen Seitenumbruch und fügen ggf. eine Vakatseite\Index{Vakatseite} ein, um im doppelseitigen - Satz auf die nächste linke Seite zu gelangen.\IndexOption{open~=\PValue{left}}}% + Satz auf die nächste linke Seite zu gelangen.% + \IndexOption{open~=\PValue{left}}}% \pventry{right}{Die Anweisungen \Macro{cleardoublepageusingstyle}, \Macro{cleardoublestandardpage}, @@ -1321,7 +1183,7 @@ Zusammenfassung der m \begin{sloppypar}% Umbruchoptimierung Neben den Kapitelanfängen wirkt sich die Option auch auf die explizite -Verwendung der Anweisung\Macro{cleardoublepage} ebenso wie auf +Verwendung der Anweisung \Macro{cleardoublepage} ebenso wie auf \Macro{cleardoublepageusingstyle}, \Macro{cleardoublestandardpage}, \Macro{cleardoubleplainpage} und \Macro{cleardoubleemptypage} aus. Siehe dazu \autoref{sec:maincls.pagestyle}, @@ -1473,7 +1335,6 @@ Eine Zusammenfassung der m finden Sie in \autoref{tab:maincls.headings}. Beispiele zu Verwendung einiger der möglichen Einstellungen sind in den nachfolgenden Beschreibungen der Gliederungsbefehle enthalten. -\iffree{}{\vskip-\ht\strutbox\enlargethispage*{\ht\strutbox}}% Umbruchkorrektur \begin{desclist} \renewcommand*{\abovecaptionskipcorrection}{-\normalbaselineskip}% \desccaption[{Mögliche Werte für Option \Option{headings}}]{% @@ -1522,26 +1383,26 @@ der Gliederungsbefehle enthalten. \IndexOption{headings~=\PValue{openright}}}% \pventry{optiontohead}{% Die\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and - \Class{scrartcl}} erweiterte Funktion des optionalen Argument der + \Class{scrartcl}} erweiterte Funktion des optionalen Arguments der Gliederungsbefehle wird aktiviert. In der Voreinstellung wird das optionale Argument ausschließlich für den Kolumnentitel verwendet.% - \IndexOption{headings=~optiontohead}% + \IndexOption{headings~=\PValue{optiontohead}}% }% \entry{\PValue{optiontoheadandtoc}, \PValue{optiontotocandhead}% \IndexOption{headings~=\PValue{optiontoheadandtoc}}}{% Die\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and - \Class{scrartcl}} erweiterte Funktion des optionalen Argument der + \Class{scrartcl}} erweiterte Funktion des optionalen Arguments der Gliederungsbefehle wird aktiviert. In der Voreinstellung wird das optionale Argument sowohl für den Kolumnentitel als auch den Eintrag ins Inhaltsverzeichnis verwendet.% }% \pventry{optiontotoc}{% Die\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and - \Class{scrartcl}} erweiterte Funktion des optionalen Argument der + \Class{scrartcl}} erweiterte Funktion des optionalen Arguments der Gliederungsbefehle wird aktiviert. In der Voreinstellung wird das optionale Argument ausschließlich für den Eintrag ins Inhaltsverzeichnis verwendet.% - \IndexOption{headings=~optiontohead}% + \IndexOption{headings~=\PValue{optiontohead}}% }% \pventry{small}{% Verwende kleine Überschriften mit kleinen Abständen darüber und darunter.% @@ -1697,10 +1558,11 @@ Einstellung\important{\Option{headings}} \OptionValue{headings}{optiontohead}\IndexOption[indexmain]{headings~=\PValue{optiontohead}} wird das optionale Argument bei \KOMAScript{} hingegen nur noch für den Kolumnentitel verwendet. Ein konkreter Eintrag in den Kolumnentitel erfolgt -natürlich nur, wenn ein Seitenstil\Index{Seiten>Stil} gewählt wird, bei dem die -entsprechende Gliederungsebene überhaupt für den Kolumnentitel verwendet +natürlich nur, wenn ein Seitenstil\Index{Seiten>Stil} gewählt wird, bei dem +die entsprechende Gliederungsebene überhaupt für den Kolumnentitel verwendet wird. Siehe hierzu \autoref{sec:maincls.pagestyle} sowie -\autoref{cha:scrpage}. Mit der Einstellung +\autoref{cha:scrlayer-scrpage}\iffree{ beziehungsweise + \autoref{cha:scrpage}}{}. Mit der Einstellung \OptionValue{headings}{optiontotoc}\IndexOption[indexmain]{headings~=\PValue{optiontotoc}} wird das optionale Argument hingegen ausschließlich für den Eintrag ins Inhaltsverzeichnis verwendet. Auch dies selbstverständlich nur, wenn die @@ -1720,10 +1582,10 @@ dies der Fall, so wird das optionale Argument der Gliederungsbefehle selbst statt als \PName{Kurzform} als \PName{Optionenliste} interpretiert. Dabei werden die beiden Optionen \Option{head=}\PName{Kolumnentitel}\important{\Option{head}} und -\Option{tocentry=}\PName{Inhaltsverzeichniseintrag} akzeptiert. Um ein -Gleichheitszeichen oder ein Komma in einem der beiden Werte dieser Optionen -unter zu bringen, muss dieses in zusätzliche geschweifte Klammern gesetzt -werden. +\Option{tocentry=}\PName{Inhaltsverzeichniseintrag}\important{\Option{tocentry}} +akzeptiert. Um ein Gleichheitszeichen oder ein Komma in einem der beiden Werte +dieser Optionen unter zu bringen, muss dieses in zusätzliche geschweifte +Klammern gesetzt werden. Bitte\textnote{Achtung!} beachten Sie, dass dieser Mechanismus nur funktioniert, solange \KOMAScript{} die Kontrolle über die Gliederungsbefehle @@ -2258,8 +2120,12 @@ das Element \FontElement{disposition} wirkt.% % »Mauseschnappfalle«, das dem Tierschutz zum Opfer gefallen ist. \end{ShowOutput} Zum Verständnis der Verwendung des Pakets - \Package{selinput}\IndexPackage{selinput} und der darin definierten - Anweisung \Macro{SelectInputMappings} sei auf \cite{package:selinput} + \Package{selinput}\IndexPackage{selinput} und + % + \iffalse % Umbruchkorrektur + der darin definierten Anweisung % + \fi % + \Macro{SelectInputMappings} sei auf \cite{package:selinput} verwiesen. \end{Example} % @@ -2471,12 +2337,16 @@ gibt, existieren die beiden Anweisungen auch nur bei diesen Klassen.% \begin{Declaration} \Macro{chaptermark}\Parameter{Kolumnentitel}\\ + \Macro{addchapmark}\Parameter{Kolumnentitel}\\ \Macro{sectionmark}\Parameter{Kolumnentitel}\\ + \Macro{addsecmark}\Parameter{Kolumnentitel}\\ \Macro{subsectionmark}\Parameter{Kolumnentitel}\\ \Macro{chaptermarkformat}\\ \Macro{sectionmarkformat}\\ \Macro{subsectionmarkformat} \end{Declaration}% +\BeginIndex{Cmd}{addchapmark}% +\BeginIndex{Cmd}{addsecmark}% \BeginIndex{Cmd}{chaptermark}\Index{Kapitel}% \BeginIndex{Cmd}{sectionmark}\Index{Abschnitt}% \BeginIndex{Cmd}{subsectionmark}% @@ -2498,13 +2368,29 @@ gibt, existieren die beiden Anweisungen auch nur bei diesen Klassen.% einer der drei Anweisungen \Macro{chaptermarkformat}, \Macro{sectionmarkformat} und \Macro{subsectionmarkformat}. - \OnlyAt{\Class{scrbook}\and \Class{scrreprt}}Während bei \Class{scrartcl} - \Macro{chaptermark} und \Macro{chaptermarkformat} nicht existieren, gibt es - die Anweisungen + Da\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} \KOMAScript{} zusätzlich die Gliederungsanweisungen + \Macro{addchap} und \Macro{addsec} bereitstellt, die nicht nummerierte + Überschriften erzeugen, existieren für diese auch korrespondierende + Anweisungen für den Kolumnentitel. Es ist zu beachten\textnote{Achtung!}, + dass diese in der Voreinstellung ebenfalls auf \Macro{chaptermark} und + \Macro{sectionmark} zurück greifen, dabei aber lokal den Zähler + \Counter{secnumdepth} auf -1 setzen, um die Nummerierung von Kapiteln und + Abschnitten abzuschalten. Dies sollte man beispielsweise bei der + Umdefinierung von \Macro{chaptermark} und \Macro{sectionmark} + berücksichtigen (siehe \Macro{ifnumbered} auf + \autopageref{desc:maincls.cmd.ifnumbered}) oder \Macro{addchapmark} und + \Macro{addsecmark} ebenfalls dazu passend umdefinieren. + + Während\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} bei \Class{scrartcl} + weder \Macro{chaptermark} noch \Macro{addchapmark} oder + \Macro{chaptermarkformat} existieren, gibt es die beiden Anweisungen \OnlyAt{\Class{scrartcl}}\Macro{subsectionmark} und - \Macro{subsectionmarkformat} nur bei \Class{scrartcl}. Dies ändert sich - allerdings bei Verwendung des \Package{scrpage2}-Pakets (siehe - \autoref{cha:scrpage}). + \Macro{subsectionmarkformat} nur bei \Class{scrartcl}. Bei Verwendung des + Pakets \Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage}\iffree{ + oder \Package{scrpage2}\IndexPackage{scrpage2}}{} ändert sich dies jedoch + (siehe \autoref{cha:scrlayer-scrpage}\iffree{ beziehungsweise + \autoref{cha:scrpage}}). \end{Explain} So wie mit \Macro{chapterformat} und \Macro{othersectionlevelsformat} die Nummern der Gliederungsüberschriften formatiert ausgegeben werden, werden mit @@ -2516,7 +2402,8 @@ Originaldefinitionen aus den {\KOMAScript}-Klassen sind: \begin{lstcode} \newcommand*{\chaptermarkformat}{% \chapappifchapterprefix{\ }\thechapter\autodot\enskip} - \newcommand*{\sectionmarkformat}{\thesection\autodot\enskip} + \newcommand*{\sectionmarkformat}{% + \thesection\autodot\enskip} \newcommand*{\subsectionmarkformat}{% \thesubsection\autodot\enskip} \end{lstcode} @@ -2529,38 +2416,108 @@ Originaldefinitionen aus den {\KOMAScript}-Klassen sind: \chapapp~\thechapter\autodot\enskip} \end{lstcode} \end{Example} -Wie Sie sehen, finden hier bei der Umdefinierung die Anweisungen -\Macro{chapappifchapterprefix} und \Macro{chapapp} Verwendung, die weiter oben -erklärt wurden.% -% +Wie Sie sehen, finden hier die beiden Anweisungen \Macro{chapapp} und +\Macro{chapappifchapterprefix} 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}% +\EndIndex{Cmd}{addsecmark}% +\EndIndex{Cmd}{addchapmark}% \begin{Declaration} - \Counter{secnumdepth} + \Counter{secnumdepth}\\ + \Macro{partnumdepth}\\ + \Macro{chapternumdepth}\\ + \Macro{sectionnumdepth}\\ + \Macro{subsectionnumdepth}\\ + \Macro{subsubsectionnumdepth}\\ + \Macro{paragraphnumdepth}\\ + \Macro{subparagraphnumdepth} \end{Declaration}% \BeginIndex{Counter}{secnumdepth}\BeginIndex{}{Nummerierung}% +\BeginIndex{Cmd}{partnumdepth}% +\BeginIndex{Cmd}{chapternumdepth}% +\BeginIndex{Cmd}{sectionnumdepth}% +\BeginIndex{Cmd}{subsectionnumdepth}% +\BeginIndex{Cmd}{subsubsectionnumdepth}% +\BeginIndex{Cmd}{paragraphnumdepth}% +\BeginIndex{Cmd}{subparagraphnumdepth}% 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. 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}, -\autopageref{desc:maincls.counter.tocdepth}.% +über den \LaTeX-Zähler \Counter{secnumdepth}. + +Damit\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} sich der Anwender keine abstrakten Nummern merken muss, um +einstellen zu können, bis zu welcher Gliederungsebene die Überschriften +nummeriert werden sollen, gibt es die Anweisungen \Macro{partnumdepth} bis +\Macro{subparagraphnumdepth}. Diese liefern die entsprechende Nummer zur +jeweiligen Gliederungsebene. +\begin{Example} + Sie wollen, dass in einem Buchprojekt nur die Gliederungsebenen vom Teil + (engl. \emph{part}) über das Kapitel (engl. \emph{chapter}) bis zum + Abschnitt (engl. \emph{section}) nummeriert werden. Dazu müssen Sie + in der Dokumentpräambel den Zähler \Counter{secnumdepth} auf den Wert + setzen, den die Anweisung \Macro{sectionnumdepth} liefert: +\begin{lstcode} + \setcounter{secnumdepth}{\sectionnumdepth} +\end{lstcode} +\end{Example} +Eine Umdefinierung der Anweisungen ist nicht vorgesehen und wird ausdrücklich +nicht empfohlen, da dies zu unvorhergesehenen Ergebnissen sowohl mit +\KOMAScript{} als auch bei Verwendung von Drittpaketen führen kann. + +Der Zähler \Counter{secnumdepth} ist nicht zu verwechseln mit dem Zähler +\Counter{tocdepth} (siehe \autoref{sec:maincls.toc}, +\autopageref{desc:maincls.counter.tocdepth}). Auch sind die Werte je nach +Klasse nicht eins zu eins übertragbar.% % +\EndIndex{Cmd}{subparagraphnumdepth}% +\EndIndex{Cmd}{paragraphnumdepth}% +\EndIndex{Cmd}{subsubsectionnumdepth}% +\EndIndex{Cmd}{subsectionnumdepth}% +\EndIndex{Cmd}{sectionnumdepth}% +\EndIndex{Cmd}{chapternumdepth}% +\EndIndex{Cmd}{partnumdepth}% \EndIndex{Counter}{secnumdepth}\EndIndex{}{Nummerierung} +\begin{Declaration} + \Macro{ifnumbered}\Parameter{Gliederungsebene}% + \Parameter{Dann-Teil}\Parameter{Else-Teil}\\ + \Macro{ifunnumbered}\Parameter{Gliederungsebene}% + \Parameter{Dann-Teil}\Parameter{Else-Teil} +\end{Declaration} +\BeginIndex{Cmd}{ifnumbered}% +\BeginIndex{Cmd}{ifunnumbered}% +Nachdem\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} zuvor erklärt wurde, wie man bestimmen kann, welche +Gliederungsebenen nummeriert werden sollen, kann mit diesen Anweisungen nun +Code abhängig davon, ob eine \PName{Gliederungsebene} nummeriert wird oder +nicht, ausgeführt werden. Wird mit den aktuellen Einstellungen eine +\PName{Gliederungsebene} nummeriert, so führt \Macro{ifnumbered} den +\PName{Dann-Teil} aus, während \Macro{ifunnumbered} den \PName{Else-Teil} +ausführt. Wird mit den aktuellen Einstellungen eine \PName{Gliederungsebene} +nicht nummeriert, dann führt \Macro{ifnumbered} den \PName{Else-Teil} aus, +wohingegen \Macro{ifunnumbered} den \PName{Dann-Teil} ausführt. Als +\PName{Gliederungsebene} wird der englische Name der Ebene angegeben, also +\PValue{part}, \PValue{chapter}, \PValue{section}, \PValue{subsection}, +\PValue{subsubsection}, \PValue{paragraph} oder \PValue{subparagraph}. + +\KOMAScript{} selbst verwendet diesen Test beispielsweise in der Definition +von \Macro{chaptermark}\IndexCmd{chaptermark} beim Seitenstil +\Pagestyle{headings}\IndexPagestyle{headings}. Dadurch wird indirekt auch +sichergestellt, dass Überschriften mit \Macro{addchap} den Kolumnentitel nicht +mit einer Nummer versehen (siehe auch \Macro{addchapmark}, +\autopageref{desc:maincls.cmd.addchapmark}).% +\EndIndex{Cmd}{ifnumbered}% +\EndIndex{Cmd}{ifunnumbered}% \begin{Declaration} \Macro{setpartpreamble}% @@ -2590,8 +2547,7 @@ Anweisung zum Setzen der \PName{Pr \setpartpreamble{% \begin{abstract} Dies ist ein Blindtext zur Demonstration. - \end{abstract} - } + \end{abstract}} \part{Abteilung Grünschnitt} \end{lstcode} Je nach Einstellung der Optionen für die @@ -2624,16 +2580,13 @@ optionale Argument \PName{Position} bestimmt Buchstaben die Position, an der die Präambel ausgegeben wird. Für die vertikale Position existieren derzeit zwei Möglichkeiten: %\iffree{}{\pagebreak}% Umbruchoptimierung -\begin{labeling}[~--]{\quad\PValue{o}}\itemsep=0pt +\begin{labeling}[~--]{\quad\PValue{o}}\itemsep=-\parsep \item [\quad\PValue{o}] über der Überschrift \item [\quad\PValue{u}] unter der Überschrift -\end{labeling} -\iffree{Es kann jeweils eine Präambel unter und eine Präambel über der - Überschrift gesetzt werden.}{Beide Möglichkeiten können nacheinander genutzt - werden.} - -Für die horizontale Position existieren derzeit drei Möglichkeiten: -\begin{labeling}[~--]{\quad\PValue{o}}\itemsep=0pt +\end{labeling}\pagebreak[3]% Umbruchkorrektur +Es kann so jeweils eine Präambel unter und über der Überschrift gesetzt werden, +mit drei Möglichkeiten für die horizontale Position: +\begin{labeling}[~--]{\quad\PValue{o}}\itemsep=-\parsep \item [\quad\PValue{l}] linksbündig \item [\quad\PValue{r}] rechtsbündig \item [\quad\PValue{c}] zentriert @@ -2781,8 +2734,8 @@ Unterschrift formatiert. Dar Unterschriften unterschieden, wobei einzeilige Unterschriften horizontal zentriert werden. -\leavevmode\phantomsection\nobreak -\label{desc:maincls.option.captions.tableheading}\nobreak +\leavevmode\phantomsection\nobreak% +\label{desc:maincls.option.captions.tableheading}\nobreak% Tabellen werden jedoch häufig mit Überschriften statt mit Unterschriften versehen. Das liegt daran, dass es auch Tabellen geben kann, die sich über mehrere Seiten erstrecken. Bei solchen Tabellen möchte man natürlich bereits @@ -2790,9 +2743,9 @@ auf der ersten Seite wissen, worum es sich handelt. Dar Tabellen zeilenweise von oben nach unten gelesen. Damit gibt es mindestens zwei gute Gründe, in der Regel alle Tabellen mit Überschriften zu versehen. \KOMAScript{}\important{\OptionValue{captions}{tableheading}} bietet -daher mit der Einstellung -\OptionValue{captions}{tableheading}\IndexOption{captions~=\PValue{tableheading}} die -Möglichkeit, bei Tabellen die Formatierung auf Überschriften zu ändern. +daher mit der Einstellung \OptionValue{captions}{tableheading}% +\IndexOption{captions~=\PValue{tableheading}} die Möglichkeit, bei Tabellen +die Formatierung auf Überschriften zu ändern. Es\textnote{Achtung!} sei an dieser Stelle darauf hingewiesen, dass mehrseitige Tabellen nicht als Gleitumgebungen gesetzt werden können. Für den @@ -2804,7 +2757,8 @@ Mit\important[i]{\begin{tabular}[t]{@{}l@{}} \Option{captions=}\\ \quad\PValue{tablesignature} \end{tabular}} der Einstellung -\OptionValue{captions}{tablesignature}\IndexOption{captions~=\PValue{tablesignature}} +\OptionValue{captions}{tablesignature}% +\IndexOption{captions~=\PValue{tablesignature}} wird wieder die Voreinstellung der Formatierung als Tabellenunterschrift gewählt. Es\textnote{Achtung!} sei an dieser Stelle darauf hingewiesen, dass die beiden Werte lediglich die Formatierung ändern. Der Ort, an dem die Über"~ @@ -2816,8 +2770,10 @@ verwendet wird. Dies Natürlich existiert\ChangedAt{v3.09}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} mit den Optionen -\OptionValue{captions}{figureheading}\IndexOption{captions~=\PValue{figureheading}} und -\OptionValue{captions}{figuresignature}\IndexOption{captions~=\PValue{figuresignature}} +\OptionValue{captions}{figureheading}% +\IndexOption{captions~=\PValue{figureheading}} und +\OptionValue{captions}{figuresignature}% +\IndexOption{captions~=\PValue{figuresignature}} auch die entsprechende Funktion für Abbildungen. Allerdings werden Abbildungen in der Regel wie im Falle von Fotos eher als Ganzes und im Falle von Diagrammen oder Graphen eher von unten links her betrachtet. In den wenigsten @@ -2828,12 +2784,13 @@ Manchmal wird jedoch gew versehen. Daher gibt es bei \KOMAScript{} die Einstellung \important[i]{\OptionValue{captions}{heading}\\ \OptionValue{captions}{signature}} Optionen -\OptionValue{captions}{heading}\IndexOption{captions~=\PValue{heading}} und die +\OptionValue{captions}{heading}% +\IndexOption{captions~=\PValue{heading}} und die umgekehrte Einstellung -\OptionValue{captions}{signature}\IndexOption{captions~=\PValue{signature}}, mit der -man die Formatierungen aller Gleitumgebungen entsprechend ändern kann. Diese -entfalten ihre Wirkung auch noch, wenn sie innerhalb einer Gleitumgebung -verwendet werden. +\OptionValue{captions}{signature}\IndexOption{captions~=\PValue{signature}}, +mit der man die Formatierungen aller Gleitumgebungen entsprechend ändern +kann. Diese entfalten ihre Wirkung auch noch, wenn sie innerhalb einer +Gleitumgebung verwendet werden. Bitte\textnote{Achtung!}\OnlyAt{\Package{float}}\IndexPackage{float} beachten Sie, dass bei Verwendung des \Package{float}-Pakets die Einstellungen von @@ -3117,7 +3074,7 @@ entnehmen. \begin{lstcode} \setkomafont{captionlabel}{\sffamily\bfseries} \end{lstcode} - Das Ergebnis wäre bei Verwendung von \Macro{addkomafont} in diesem Fall + Das Ergebnis wäre bei Verwendung von \Macro{addtokomafont} in diesem Fall übrigens gleich. \end{Example}% \EndIndex[indexother]{}{Schrift>Art}% @@ -3174,7 +3131,7 @@ Paket zu beachten!% \captionaboveof{table} [Maße des Rechtecks aus Abbildung~\ref{fig:rechteck}]% - {Maße des Rechtecks} + {Rechtecksmaße} \label{tab:rechteck} \begin{tabular}{ll} Breite: & 4\,cm\\ @@ -3285,7 +3242,8 @@ der Gleitumgebungen verwendet werden. Der erste optionale Parameter 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{labeling}[~--]{\quad\PValue{o}}\setlength{\itemsep}{0pt}% +\iffree{}{\enlargethispage*{\dp\strutbox}}% Umbruchkorrektur +\begin{labeling}[~--]{\quad\PValue{o}}\setlength{\itemsep}{-\parsep}% \item[\quad\PValue{l}] links \item[\quad\PValue{r}] rechts \item[\quad\PValue{i}] innen: auf rechten Seiten links, auf @@ -3300,10 +3258,11 @@ Voreinstellung\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \autopageref{desc:maincls.option.captions}) und deren Werte \PValue{innerbeside}\IndexOption[indexmain]{captions~=\PValue{innerbeside}}, \PValue{leftbeside}\IndexOption[indexmain]{captions~=\PValue{leftbeside}}, -\PValue{outerbeside}\IndexOption[indexmain]{captions~=\PValue{outerbeside}} und -\PValue{rightbeside}\IndexOption[indexmain]{captions~=\PValue{rightbeside}} verändert -werden. Bei Verwendung der Anordnung außen oder innen werden unter Umständen -zwei \LaTeX-Läufe benötigt, um die korrekte Anordnung zu erreichen. +\PValue{outerbeside}\IndexOption[indexmain]{captions~=\PValue{outerbeside}} +und +\PValue{rightbeside}\IndexOption[indexmain]{captions~=\PValue{rightbeside}} +verändert werden. Bei Verwendung der Anordnung außen oder innen werden unter +Umständen zwei \LaTeX-Lä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 @@ -3336,14 +3295,15 @@ Einstellung\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Option{captions}\IndexOption{captions} (siehe \autopageref{desc:maincls.option.captions}) und deren Werte \PValue{topbeside}\IndexOption[indexmain]{captions~=\PValue{topbeside}}, -\PValue{centeredbeside}\IndexOption[indexmain]{captions~=\PValue{centeredbeside}} und -\PValue{bottombeside}\IndexOption[indexmain]{captions~=\PValue{bottombeside}} verändert -werden. Bei der Einstellung \PValue{topbeside} werden die oberen Grundlinien -von Gleitobjektinhalt und \PName{Titel} auf einer Höhe ausgerichtet, während -bei \PValue{centeredbeside} eine Zentrierung stattfindet. In diesem -Zusammenhang sei erwähnt, dass Abbildungen normalerweise die Grundlinie unten -haben. Dies kann beispielsweise mit der Anweisung -\Macro{raisebox}\IndexCmd{raisebox} verändert werden. +\PValue{centeredbeside}\IndexOption[indexmain]{captions~=\PValue{centeredbeside}} +und +\PValue{bottombeside}\IndexOption[indexmain]{captions~=\PValue{bottombeside}} +verändert werden. Bei der Einstellung \PValue{topbeside} werden die oberen +Grundlinien von Gleitobjektinhalt und \PName{Titel} auf einer Höhe +ausgerichtet, während bei \PValue{centeredbeside} eine Zentrierung +stattfindet. In diesem Zusammenhang sei erwähnt, dass Abbildungen +normalerweise die Grundlinie unten haben. Dies kann beispielsweise mit der +Anweisung \Macro{raisebox}\IndexCmd{raisebox} verändert werden. \begin{Example} Ein Beispiel für die Verwendung der @@ -3379,22 +3339,29 @@ haben. Dies kann beispielsweise mit der Anweisung \label{fig:maincls.captionbeside} \end{figure} Die Gesamtbreite ist also die aktuell verfügbare Breite - \PValue{\Macro{linewidth}}. Diese wird jedoch mit \PValue{2em} nach + \PValue{\Macro{linewidth}}. Diese wird jedoch mit um $\Length{marginparwidth} + + \Length{marginparsep}$ 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. + der Abbildung. Damit erscheint die Abbildung selbst bis in die + Marginalienspalte in den Rand gerückt. +\iffalse% Umbruchkorrekturtext Mit \Macro{dimexpr} wird hier eine \eTeX-Anweisung verwendet, da \KOMAScript{} dessen Verwendung voraussetzt und bei jeder halbwegs aktuellen - \LaTeX-Distribution ohnehin \eTeX{} verwendet wird. + \LaTeX-Distribution ohnehin \eTeX{} verwendet wird.% +\fi Die Zentrierung der Bildbeschreibung mit \begin{lstcode} \KOMAoption{captions}{centeredbeside} \end{lstcode} - zeigt \autoref{fig:maincls.captionbesidecentered}. Auch der typografisch - weniger bewanderte Anfänger wird sofort - erkennen, dass von dieser Ausrichtung normalerweise abzusehen ist. + zeigt \autoref{fig:maincls.captionbesidecentered}. % +\iffalse % Umbruchalternativen + Auch der typografisch weniger bewanderte Anfänger wird sofort + erkennen, dass von dieser Ausrichtung normalerweise abzusehen ist.% +\else + Das ist jedoch sicher keine empfehlswerte Lösung.% +\fi \begin{figure} \KOMAoption{captions}{centeredbeside} @@ -3877,14 +3844,16 @@ auch bei den Standardklassen gibt, dient dazu, diese Verzeichnisse nach Kapiteln zu gruppieren. Es entspricht bei \KOMAScript{} der Einstellung\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} -\OptionValue{listof}{chaptergapsmall}\IndexOption{listof~=\PValue{chaptergapsmall}}. +\OptionValue{listof}{chaptergapsmall}% +\IndexOption{listof~=\PValue{chaptergapsmall}}. Dabei wird ein fester vertikaler Abstand von 10\Unit{pt} verwendet. Mit\important{\OptionValue{listof}{chaptergapline}} der Einstellung -\OptionValue{listof}{chaptergapline}\IndexOption{listof~=\PValue{chaptergapline}} kann +\OptionValue{listof}{chaptergapline}% +\IndexOption{listof~=\PValue{chaptergapline}} kann man stattdessen einen vertikalen Abstand von einer Zeile erreichen. Mit\important{\OptionValue{listof}{nochaptergap}} -\OptionValue{listof}{nochaptergap}\IndexOption{listof~=\PValue{nochaptergap}} kann man -den vertikalen Abstand komplett +\OptionValue{listof}{nochaptergap}\IndexOption{listof~=\PValue{nochaptergap}} +kann man den vertikalen Abstand komplett abschalten. Eine\important{\OptionValue{listof}{chapterentry}} Besonderheit stellt die Einstellung \OptionValue{listof}{chapterentry}\IndexOption{listof~=\PValue{chapterentry}} @@ -3902,9 +3871,8 @@ Einen \begin{desclist} \desccaption[{Mögliche Werte für Option \Option{listof}}]{% - Mögliche Werte für - Option \Option{listof} zur Einstellung von Form und Inhalt der - Verzeichnisse der Gleitumgebungen\label{tab:maincls.listof}% + Mögliche Werte für Option \Option{listof} zur Einstellung von Form und + Inhalt der Verzeichnisse der Gleitumgebungen\label{tab:maincls.listof}% }{% Mögliche Werte für Option \Option{listof} (\emph{Fortsetzung})% }% @@ -3941,6 +3909,38 @@ Einen steht nur ein begrenzter Platz für die Gleitumgebungsnummern zur Verfügung.% \IndexOption{listof~=\PValue{graduated}}}% + \entry{\PValue{indenttextentries}, \PValue{indentunnumbered}, + \PValue{numberline}}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}}% + Die Eigenschaft \PValue{numberline} (siehe \autoref{sec:tocbasic.toc}, + \autopageref{desc:tocbasic.cmd.setuptoc}) wird für die Verzeichnisse der + Gleitumgebungen, beispielsweise das Abbildungs"~ und das + Tabellenverzeichnis, gesetzt. Dadurch werden nicht nummerierte Einträge + linksbündig mit dem Text von nummerierten Einträgen gleicher Ebene + gesetzt. Allerdings bieten die \KOMAScript-Klassen selbst keine nicht + nummerierten Einträge in diese Verzeichnisse. Dies hat daher nur + Auswirkungen auf entsprechende Einträge, die nicht von den Klassen selbst, + aber dennoch mit Hilfe von \Macro{addxcontentsline} (siehe + \autoref{sec:tocbasic.toc}, + \autopageref{desc:tocbasic.cmd.addxcontentsline}) erzeugt werden.% + \IndexOption{toc~=\PValue{numberline}}}% + \entry{\PValue{leftaligntextentries}, \PValue{leftalignunnumbered}, + \PValue{nonumberline}}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}}% + Die Eigenschaft \PValue{numberline} (siehe \autoref{sec:tocbasic.toc}, + \autopageref{desc:tocbasic.cmd.setuptoc}) wird für die Verzeichnisse der + Gleitumgebungen, beispielsweise das Abbildungs"~ und das + Tabellenverzeichnis, gesetzt. Dadurch werden nicht nummerierte Einträge + linksbündig mit der Nummer von nummerierten Einträgen gleicher Ebene + gesetzt. Allerdings bieten die \KOMAScript-Klassen selbst keine nicht + nummerierten Einträge in diese Verzeichnisse. Dies hat daher nur + Auswirkungen auf entsprechende Einträge, die nicht von den Klassen selbst, + aber dennoch mit Hilfe von \Macro{addxcontentsline} (siehe + \autoref{sec:tocbasic.toc}, + \autopageref{desc:tocbasic.cmd.addxcontentsline}) erzeugt werden.% + \IndexOption{toc~=\PValue{numberline}}}% \entry{\PValue{leveldown}}{% Die Verzeichnisse werden um eine Gliederungsebene nach unten verschoben.% \IndexOption{listof~=\PValue{leveldown}}}% @@ -4078,7 +4078,8 @@ Literaturverzeichnisses bestimmt, k einige wenige Eigenschaften der Formatierung der Einträge beeinflusst werden. Mit\important{\OptionValue{bibliography}{oldstyle}} -\OptionValue{bibliography}{oldstyle}\IndexOption{bibliography~=\PValue{oldstyle}} wird +\OptionValue{bibliography}{oldstyle}% +\IndexOption{bibliography~=\PValue{oldstyle}} wird die kompakte Formatierung gewählt. Dabei führt die Anweisung \Macro{newblock}\IndexCmd{newblock} in den einzelnen Einträgen lediglich zu einem dehnbaren horizontalen Abstand. Der Name kommt daher, dass dies die @@ -4087,7 +4088,8 @@ ist. Demgegen \Option{bibliography=}\\ \quad\PValue{openstyle}\end{tabular}} erreicht man die etwas modernere, offene Form mit der Einstellung -\OptionValue{bibliography}{openstyle}\IndexOption{bibliography~=\PValue{openstyle}}. Der +\OptionValue{bibliography}{openstyle}% +\IndexOption{bibliography~=\PValue{openstyle}}. Der Name kommt daher, dass hier die Anweisung \Macro{newblock} einen Absatz einfügt. Die Einträge im Literaturverzeichnis werden so stärker gegliedert. Sie sind weniger kompakt und deutlich aufgelockerter oder @@ -4102,33 +4104,46 @@ aufgelistet, sondern auf externe Inhalte verwiesen wird. Mit dieser Begründung könnte man argumentieren, dass das Literaturverzeichnis ein eigenes Kapitel bzw. einen eigenen Abschnitt darstellt und somit eine -Nummer\important[i]{\begin{tabular}[t]{@{}l@{}} +Nummer verdiene. Die +Einstellung \OptionValue{bibliography}{totocnumbered}% +\important[i]{\begin{tabular}[t]{@{}l@{}} \Option{bibliography=}\\ \quad\PValue{totocnumbered} - \end{tabular}} verdiene. Die -Einstellung \OptionValue{bibliography}{totocnumbered}% -\IndexOption{bibliography~=\PValue{totocnumbered}} führt genau dazu, einschließlich des -dann fälligen Eintrags im Inhaltsverzeichnis. Ich selbst bin der Meinung, -dass bei dieser Argumentation auch ein klassisches, kommentiertes -Quellenverzeichnis ein eigenes Kapitel wäre. Außerdem ist das + \end{tabular}}\IndexOption{bibliography~=\PValue{totocnumbered}} führt genau +dazu, einschließlich des dann fälligen Eintrags im 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\important{\OptionValue{bibliography}{totoc}} verdient es allenfalls einen nicht nummerierten Eintrag im Inhaltsverzeichnis, was mit der Einstellung -\OptionValue{bibliography}{totoc}\IndexOption{bibliography~=\PValue{totoc}} erreicht -wird. Die Voreinstellung, bei der das Literaturverzeichnis als nicht +\OptionValue{bibliography}{totoc}\IndexOption{bibliography~=\PValue{totoc}} +erreicht wird. Die Voreinstellung, bei der das Literaturverzeichnis als nicht nummeriertes Kapitel ohne eigenen Inhaltsverzeichniseintrag gesetzt wird, -entspricht -\OptionValue{bibliography}{nottotoc}\IndexOption{bibliography~=\PValue{nottotoc}}. Siehe +entspricht \OptionValue{bibliography}{nottotoc}% +\IndexOption{bibliography~=\PValue{nottotoc}}. Siehe hierzu auch Option \Option{toc} in \autoref{sec:maincls.toc}, insbesondere die Werte \PValue{bibliographynumbered}, \PValue{bibliography} und \PValue{nobibliography} ab \autopageref{desc:maincls.option.toc.bibliography}. -Eine Zusammenfassung der möglichen Werte für die \PName{Einstellung} von -\Option{bibliography} ist in \autoref{tab:maincls.bibliography} zu finden. Es -ist jedoch zu beachten, dass mit \Macro{newbibstyle}\IndexCmd{newbibstyle} -weitere Werte definiert werden können. +In\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} +einigen Fällen wird nicht das gesamte Dokumente mit einem einzigen +Literaturverzeichnis versehen, sondern jedes Kapitel eines mit \Class{scrbook} +oder \Class{scrreprt} gesetzten Dokuments erhält sein eigenes +Literaturverzeichnis. In diesem Fall ist es sinnvoll, +wenn\important{\OptionValue{bibliography}{leveldown}} das Literaturverzeichnis +selbst nicht auf Kapitel, sondern etwas tiefer auf Abschnittsebene angesiedelt +wird. Dies ist mit Option \OptionValue{bibliography}{leveldown}% +\IndexOption{bibliography~=\PValue{leveldown}} zu erreichen. Diese kann +beispielsweise auch verwendet werden, wenn das Literaturverzeichnis zusammen +mit anderen Verzeichnissen unter einer gemeinsamen Überschrift erscheinen +soll. Daher ist diese Option auch in \Class{scrartcl} verfügbar. + +Eine Zusammenfassung möglicher Werte für \PName{Einstellung} ist +\autoref{tab:maincls.bibliography} zu entnehmen. Es ist jedoch zu beachten, +dass mit \Macro{newbibstyle}\IndexCmd{newbibstyle} weitere Werte definiert +werden können. \begin{table} \caption[{Mögliche Werte für Option \Option{bibliography}}]{Vordefinierte @@ -4136,6 +4151,12 @@ weitere Werte definiert werden k Literatur\-verzeichnisses} \label{tab:maincls.bibliography} \begin{desctabular} + \pventry{leveldown}{% + \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}}% + Das Literaturverzeichnis wird um eine Gliederungsebene nach unten + verschoben.% + \IndexOption{bibliography~=\PValue{leveldown}}}% \pventry{nottotoc}{% Das Literaturverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis und wird auch nicht nummeriert.% @@ -4171,8 +4192,8 @@ Mit der Anweisung \Macro{setbibpreamble} kann eine Pr 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\textnote{Achtung!} wie die Optionen -\OptionValue{bibliography}{totoc} und +Dokuments erfolgen. Ebenso\textnote{Achtung!} wie Option +\OptionValue{bibliography}{totoc} oder \OptionValue{bibliography}{totocnumbered} kann die Anweisung aber nur erfolgreich sein, wenn nicht ein Paket geladen wird, das dies durch Umdefinierung der \Environment{thebibliography}-Umgebung verhindert. Obwohl @@ -4272,7 +4293,8 @@ nicht jedoch bei Verwendung von \end{Declaration} \BeginIndex{Option}{index~=\PName{Einstellung}}% \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}% -In der Voreinstellung \OptionValue{index}{default}\IndexOption{index~=\PValue{default}} +In der Voreinstellung +\OptionValue{index}{default}\IndexOption{index~=\PValue{default}} ist das Stichwortverzeichnis ein nicht nummeriertes Kapitel ohne Eintrag im Inhaltsverzeichnis. Da\important{\OptionValue{index}{totoc}} das Stichwortverzeichnis normalerweise in einem Buch oder ähnlichen Dokument @@ -4280,8 +4302,8 @@ zuletzt steht, ben Inhaltsverzeichniseintrag. Wird dieser dennoch gewünscht, beispielsweise weil wie in \iffree{dieser Anleitung}{diesem Buch} mit einem mehrgliedrigen Stichwortverzeichnis gearbeitet wird, so kann dies mit der Einstellung -\OptionValue{index}{totoc}\IndexOption{index~=\PValue{totoc}} erreicht werden. Siehe -hierzu auch Option \Option{toc} mit dem Wert \PValue{index} in +\OptionValue{index}{totoc}\IndexOption{index~=\PValue{totoc}} erreicht +werden. Siehe hierzu auch Option \Option{toc} mit dem Wert \PValue{index} in \autoref{sec:maincls.toc} ab \autopageref{desc:maincls.option.toc.index}. Eine Zusammenfassung der möglichen Werte für die \PName{Einstellung} von @@ -4338,9 +4360,12 @@ ist im Makro \Macro{indexpagestyle} abgelegt (siehe 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.% +zuständig.% +\iffalse % Umbruchoptimierung + \ Von {\KOMAScript} werden genau wie von den Standardklassen + lediglich die grundlegenden Makros und Umgebungen dafür zur Verfügung + gestellt.% +\fi % \EndIndex{Cmd}{setindexpreamble}% % @@ -4354,6 +4379,8 @@ gestellt.% %%% Local Variables: %%% mode: latex +%%% mode: flyspell %%% coding: iso-latin-1 -%%% TeX-master: "guide.tex" +%%% ispell-local-dictionary: "de_DE" +%%% TeX-master: "../guide.tex" %%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrextend.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrextend.tex index 361d712f99e..c68e770ce5d 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrextend.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrextend.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrextend.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrextend.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ====================================================================== -\ProvidesFile{scrextend.tex}[2008/09/12 KOMA-Script package scrextend] +\ProvidesFile{scrextend.tex}[2013/05/31 KOMA-Script package scrextend] \chapter[tocentry={Grundlegende Fähigkeiten der \KOMAScript-Klassen\protect\linebreak @@ -162,35 +162,6 @@ optionales Argument von \Macro{usepackage}\PParameter{scrextend} an. \LoadCommon{5}% \section{Textauszeichnungen} -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 der Titel in Serifenschrift und rot gesetzt - wird. Das erreichen Sie einfach mit: -\begin{lstcode} - \setkomafont{title}{\color{red}} -\end{lstcode} - Für die Anweisung \lstinline|\color{red}| wird das Paket \Package{color} - oder \Package{xcolor} benötigt. Die zusätzliche Angabe von - \Macro{normalfont} ist in diesem Beispiel deshalb nicht notwendig, weil - diese Anweisung bereits in der Definition des Titels enthalten - ist. Das\textnote{Achtung!} Beispiel setzt voraus, dass - \OptionValue{extendedfeature}{title} gesetzt ist (siehe - \autoref{sec:scrextend.optionalFeatures}, - \autopageref{desc:scrextend.option.extendedfeature}). -\end{Example} -% -\EndIndex{Cmd}{setkomafont}% -\EndIndex{Cmd}{addtokomafont}% -\EndIndex{Cmd}{usekomafont}% -% -\EndIndex{}{Schrift>Art}% -\EndIndex{}{Text>Auszeichnung} - -\newpage% Umbruchoptimierung! - \LoadCommon{14}% \section{Dokumenttitel} \LoadCommon{7}% \section{Erkennung von rechten und linken Seiten} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-notecolumn-example.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-notecolumn-example.tex new file mode 100644 index 00000000000..92d2ca4fd28 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-notecolumn-example.tex @@ -0,0 +1,131 @@ +% ====================================================================== +% scrlayer-notecolumn-example.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrlayer-notecolumn-example.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% +% Example file for the chapter about scrlayer-notecolumn +% of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Beispieldatei für das Kapitel über scrlayer-notecolumn +% in der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ============================================================================ +\documentclass{scrartcl} +\usepackage[ngerman]{babel} +\usepackage{selinput} +\SelectInputMappings{ + adieresis={ä}, + germandbls={ß}, +} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{xcolor} + +\usepackage{scrjura} +\setkomafont{contract.Paragraph}{\bfseries} +\setkeys{contract}{preskip=-\dp\strutbox} + +\usepackage{scrlayer-scrpage} +\usepackage{scrlayer-notecolumn} + +\newlength{\paragraphscolwidth} +\AfterCalculatingTypearea{% + \setlength{\paragraphscolwidth}{.333\textwidth}% + \addtolength{\paragraphscolwidth}{-\marginparsep}% +} +\recalctypearea +\DeclareNewNoteColumn[% + position=\oddsidemargin+1in + +.667\textwidth + +\marginparsep, + width=\paragraphscolwidth, + font=\raggedright\footnotesize + \color{blue} +]{paragraphs} + +\begin{document} + +\title{Kommentar zum GüdaVaS} +\author{Professor R. O. Tenase} +\date{11.\,11.\,2011} +\maketitle +\tableofcontents + +\section{Vormerkung} +Das GüdaVaS ist ohne jeden Zweifel das wichtigste Gesetz, das in +Spaßmaniern in den letzten eintausend Jahren verabschiedet wurde. +Die erste Lesung fand bereits am 11.\,11\,1111 im obersten +spaßmanischen Kongress statt, wurde aber vom damalige Spaßvesier +abgelehnt. Erst nach Umwandlung der spaßmanischen, aberwitzigen Monarchie +in eine repräsentative, witzige Monarchie durch W. Itzbold, den +urkomischen, am 9.\,9.\,1999 war der Weg für dieses Gesetz endlich frei. + +\section{Analyse} + +\begin{addmargin}[0pt]{.333\textwidth} + \makenote[paragraphs]{% + \protect\begin{contract} + \protect\Paragraph{title={Kein Witz ohne Publikum}} + Ein Witz kann nur dort witzig sein, wo er auf ein Publikum trifft. + \protect\end{contract} + } + Dies ist eine der zentralsten Aussagen des Gesetzes. Sie ist derart + elementar, dass es durchaus angebracht ist, sich vor der Weisheit der + Verfasser zu verbeugen. + + \syncwithnotecolumn[paragraphs]\bigskip + \makenote[paragraphs]{% + \protect\begin{contract} + \protect\Paragraph{title={Komik der Kultur}} + \setcounter{par}{0}Die Komik eines Witzes kann durch das kulturelle + Umfeld, in dem er erzählt wird, bestimmt sein. + + Die Komik eines Witzes kann durch das kulturelle Umfeld, in dem er + spielt, bestimmt sein. + \protect\end{contract} + } + Die kulturelle Komponente eines Witzes ist tatsächlich nicht zu + vernachlässigen. Ãœber die politische Korrektheit der Nutzung des kulturellen + Umfeldes kann zwar trefflich gestritten werden, nichtsdestotrotz ist die + Treffsicherheit einer solchen Komik in entsprechendem Umfeld frapierend. Auf + der anderen Seite kann ein vermeintlicher Witz im falschen kulturellen + Umfeld auch zu einer echten Gefahr für den Witzeerzähler werden. +\end{addmargin} + +\end{document} diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-notecolumn.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-notecolumn.tex new file mode 100644 index 00000000000..53918019fc7 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-notecolumn.tex @@ -0,0 +1,679 @@ +% ====================================================================== +% scrlayer-notecolumn.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrlayer-notecolumn.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% +% Chapter about scrlayer-notecolumn of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Kapitel über scrlayer-notecolumn in der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\KOMAProvidesFile{scrlayer-notecolumn.tex}% + [$Date: 2013-10-16 16:24:20 +0200 (Mi, 16. Okt 2013) $ + KOMA-Script guide (chapter:scrlayer-notecolumn)] + +\chapter{Notizspalten mit \Package{scrlayer-notecolumn}} +\labelbase{scrlayer-notecolumn} + +\BeginIndex{Package}{scrlayer-notecolumn}% +Bis einschließlich Version~3.11b unterstützte \KOMAScript{} Notizspalten nur +in Form der Marginalienspalte, die mit \Macro{marginpar} und +\Macro{marginline} (siehe \autoref{sec:maincls.marginNotes}, +\autopageref{desc:maincls.cmd.marginline}) mit Inhalt versehen werden +können. Jene Art der Randnotizen hat allerdings einige Nachteile: +\begin{itemize} +\item Randnotizen können nur vollständig auf einer einzelnen Seite gesetzt + werden. Seitenumbrüche innerhalb von Randnotizen sind nicht möglich. Dies + führt teilweise dazu, dass die Randnotizen bis in den unteren Rand hinein + ragen. +\item Randnotizen in der Nähe des Seitenumbruchs können auf die nächste Seiten + rutschen und dort im Falle des doppelseitigen Layouts mit alternierenden + Marginalienspalten im falschen Rand ausgegeben werden. Dieses Problem ist + mit dem Zusatzpaket \Package{mparhack}\IndexPackage{mparhack} oder durch + Verwendung von \Macro{marginnote} aus dem Paket + \Package{marginnote}\IndexPackage{marginnote} lösbar. +\item Randnotizen innerhalb von Gleitumgebungen oder Fußnoten sind nicht + möglich. Auch dieses Problem ist mit \Package{marginnote} lösbar. +\item Es gibt nur eine Marginalienspalte oder, wenn mit + \Macro{reversemarginpar} und \Macro{normalmarginpar} gearbeitet wird, auch + zwei. +\end{itemize} +Die Verwendung von \Package{marginnote}\IndexPackage{marginnote} führt zu +einem weiteren Problem. Da das Paket keine Kollisionserkennung besitzt, können +sich Randnotizen, die in unmittelbarer Nähe veranlasst wurden, gegenseitig +ganz oder teilweise überdecken. Darüber hinaus führt \Macro{marginnote} je +nach den gewählten Einstellungen von \Package{marginnote} manchmal zu +Veränderungen beim Zeilenabstand des normalen Textes. + +Das Paket \Package{scrlayer-notecolumn} tritt an, all diese Probleme zu +lösen. Dazu stützt es sich auf die Grundfunktionalität von +\Package{scrlayer}\IndexPackage{scrlayer}. Damit einher geht jedoch auch ein +Nachteil:\textnote{Achtung!} Notizen können nur auf den Seiten ausgegeben +werden, die einen auf \Package{scrlayer} basierenden Seitenstil +besitzen. Dieser Nachteil lässt sich mit Hilfe von +\Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage} jedoch leicht +auflösen oder sogar in einen Vorteil verwandeln. + + +\section{Hinweise zum Entwicklungsstand} +\label{sec:scrlayer-notecolumn.draft} + +Obwohl sich das Paket derzeit noch in einem recht frühen Entwicklungsstadium +befindet, ist die Stabilität von weiten Teilen weniger eine Frage von +\Package{scrlayer-notecolumn} als von \Package{scrlayer}. Dennoch ist davon +auszugehen, dass sich auch in \Package{scrlayer-notecolumn} noch Fehler +befinden. Es wird darum gebeten, diese bei Auffinden zu melden. Einige +\emph{Unzulänglichkeiten} des Pakets sind jedoch auch der Minimierung des +Aufwands geschuldet. So können Notizspalten zwar über Seiten hinweg umbrochen +werden, allerdings findet dabei kein neuerlicher Absatzumbruch statt. Dies ist +bei \TeX{} schlicht nicht vorgesehen. + +Da das Paket derzeit noch als experimentell gilt, findet sich die Anleitung +hier im zweiten Teil der \KOMAScript-Anleitung. Dementsprechend richtet sie +sich auch in erster Linie an erfahrene Anwender. Für Anfänger oder Anwender, +die sich bereits deutlich auf dem Weg zum \LaTeX-Experten befinden, mag +einiges in den nachfolgenden Erklärungen unklar oder gar unverständlich +sein. Ich bitte um Nachsicht, dass ich bei experimentellen Paketen den Aufwand +für die Anleitung halbwegs erträglich halten will. + +\section{Deklaration neuer Notizspalten} +\label{sec:scrlayer-notecolumn.declaration} + +Beim Laden des Pakets wird bereits automatisch eine Notizspalte namens +\PName{marginpar} deklariert. Wie der Name andeutet, liegt diese Notizspalte +auf der Marginalienspalte von \Macro{marginpar} und \Macro{marginline}. Dabei +werden auch \Macro{reversemarginpar} und \Macro{normalmarginpar} beachtet, +allerdings nicht für die einzelnen Notizen, sondern nur für die gesamten +Notizen einer Seite. Maßgeblich ist dabei die Einstellung, die am Ende der +Seite, nämlich bei der Ausgabe der Notizspalte gilt. Dies sind im Übrigen auch +die Voreinstellungen für alle neue deklarierten Notizspalten, soweit bei der +Deklaration nichts anderes angegeben wurde. + +Es ist zu beachten\textnote{Achtung!}, dass Notizspalten nur auf Seiten +ausgegeben werden, deren Seitenstil auf dem Paket +\Package{scrlayer}\IndexPackage{scrlayer} basiert. Das Paket +\Package{scrlayer} wird von \Package{scrlayer-notecolumn} automatisch geladen +und stellt in der Voreinstellung lediglich den Seitenstil +\Pagestyle{empty}\IndexPagestyle{empty} bereit. Werden weitere Seitenstile +benötigt, wird zusätzlich das Paket +\Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage} empfohlen. + +\begin{Declaration} + \Macro{DeclareNoteColumn}% + \OParameter{Liste der Einstellungen}\Parameter{Name der Notizspalte}\\ + \Macro{DeclareNewNoteColumn}% + \OParameter{Liste der Einstellungen}\Parameter{Name der Notizspalte}\\ + \Macro{ProvideNoteColumn}% + \OParameter{Liste der Einstellungen}\Parameter{Name der Notizspalte}\\ + \Macro{RedeclareNoteColumn}% + \OParameter{Liste der Einstellungen}\Parameter{Name der Notizspalte}% +\end{Declaration} +\BeginIndex{Cmd}{DeclareNoteColumn}% +\BeginIndex{Cmd}{DeclareNewNoteColumn}% +\BeginIndex{Cmd}{ProvideNoteColumn}% +\BeginIndex{Cmd}{RedeclareNoteColumn}% +Mit Hilfe dieser Anweisungen können Notizspalten angelegt werden. Dabei +erzeugt \Macro{DeclareNoteColumn} die Notizspalte ungeachtet der Tatsache, ob +sie bereits existiert oder nicht, während \Macro{DeclareNewNoteColumn} einen +Fehler ausgibt, falls der \PName{Name der Notizspalte} bereits für eine andere +Notizspalte vergeben ist, und \Macro{ProvideNoteColumn} in eben diesem Fall +schlicht nichts tut. Mit \Macro{RedeclareNoteColumn} wiederum kann nur eine +bereits existierende Notiz-Spalte neu konfiguriert werden. + +Bei der Neukonfigurierung bereits existierender Notizspalten mit +\Macro{DeclareNoteColumn} oder \Macro{RedeclareNoteColumn} gehen im übrigen +die bereits erzeugten Notizen für diese Spalte nicht verloren, sondern bleiben +erhalten. + +\BeginIndex{FontElement}{notecolumn.\PName{Name der Notizspalte}}% +\BeginIndex{FontElement}{notecolumn.marginpar}% +Für neue Notizspalten wird immer ein Element zur Änderung der +Schriftattribute mit \Macro{setkomafont} und \Macro{addtokomafont} angelegt, +falls dieses noch nicht existiert. Als Name für das Element wird +\PValue{notecolumn.}\PName{Name der Notizspalte} verwendet. Dementsprechend +existiert für die vordefinierte Notizspalte \PValue{marginpar} das Element +\PValue{notecolumn.marginpar}. Die Voreinstellung kann bei der Deklaration +einer Notizspalte direkt über die Option \Option{font} innerhalb der +optionalen \PName{Liste der Einstellungen} angegeben werden.% +\EndIndex{FontElement}{notecolumn.marginpar}% +\EndIndex{FontElement}{notecolumn.\PName{Name der Notizspalte}}% + +Die \PName{Liste der Einstellungen} ist eine durch Komma separierte Liste von +Einstellungen oder Optionen. Die verfügbaren Optionen sind in +\autoref{tab:scrlayer-notecolumn.note.column.options} zu finden. Als +Voreinstellung ist \Option{marginpar} immer gesetzt, kann aber durch +individuelle Einstellungen überschrieben werden. + +\begin{desclist} + \desccaption{% + Mögliche Einstellungen für die Deklaration von Notizspalten% + \label{tab:scrlayer-notecolumn.note.column.options}% + }{% + Mögliche Einstellungen für die Deklaration von Notizspalten + (\emph{Fortsetzung})% + }% + \entry{\KOption{font}\PName{Schriftattribute}}{% + Einstellung der \PName{Schriftattribute} der Notizspalte mit Hilfe von + \Macro{setkomafont}. Für erlaubte Werte sei auf + \autoref{sec:maincls.textmarkup}, + \autopageref{desc:maincls.cmd.setkomafont} verwiesen.\par% + Voreinstellung: \emph{leer}% + }% + \entry{\Option{marginpar}}{% + Position und Breite der Notizspalte werden so eingestellt, dass sie der + Marginalienspalte von \Macro{marginpar} entsprechen. Eine Umschaltung + zwischen \Macro{reversemarginpar}\IndexCmd{reversemarginpar} und + \Macro{normalmarginpar}\IndexCmd{normalmarginpar} wird immer nur am Ende + der Seite bei der Ausgabe der Notizspalte beachtet. Es wird darauf + hingewiesen, dass diese Option kein Argument erwartet oder erlaubt.\par% + Voreinstellung: \emph{ja} + }% + \entry{\Option{normalmarginpar}}{% + Position und Breite der Notizspalte werden so eingestellt, dass sie der + Marginalienspalte von \Macro{marginpar} bei Einstellung + \Macro{normalmarginpar} entsprechen. Es wird darauf hingewiesen, dass + diese Option kein Argument erwartet oder erlaubt.\par% + Voreinstellung: \emph{nein} + }% + \entry{\KOption{position}\PName{Abstand}}{% + Die Notizspalte wird mit \PName{Abstand} vom linken Rand des Papiers + gesetzt. Dabei sind für \PName{Abstand} auch komplexe Ausdrücke gestattet, + solange diese voll expandierbar sind und zum Zeitpunkt der Ausgabe der + Notizspalte zu einer Länge oder zu einem Längenwert oder einem + Längenausdruck expandieren. Siehe \cite[Abschnitt~3.5]{manual:eTeX} für + weitere Informationen zu Längenausdrücken.\par% + Voreinstellung: \emph{durch Option \Option{marginpar}}% + }% + \entry{\KOption{width}\PName{Breite}}{% + Die Notizspalte wird mit der angegebenen Breite gesetzt. Dabei sind für + \PName{Breite} auch komplexe Ausdrücke gestattet, solange diese voll + expandierbar sind und zum Zeitpunkt der Ausgabe der Notizspalte zu einer + Länge oder einem Längenwert oder einem Längenausdruck expandieren. Siehe + \cite[Abschnitt~3.5]{manual:eTeX} für weitere Informationen zu + Längenausdrucken.\par% + Voreinstellung: \emph{durch Option \Option{marginpar}}% + }% + \entry{\Option{reversemarginpar}}{% + Position und Breite der Notizspalte werden so eingestellt, dass sie der + Marginalienspalte von \Macro{marginpar} bei Einstellung + \Macro{reversemarginpar} entsprechen. Es wird darauf hingewiesen, dass + diese Option kein Argument erwartet oder erlaubt.\par% + Voreinstellung: \emph{nein} + }% +\end{desclist} + +Da die Notizspalten mit Hilfe von \Package{scrlayer} definiert werden, wird +auch für jede Notizspalte eine Ebene angelegt. Als Name für diese Ebene wird +ebenfalls \PValue{notecolumn.}\PName{Name der Notizspalte} verwendet. Näheres +zu Ebenen ist \autoref{sec:scrlayer.layers} zu entnehmen.% +% +\begin{Example} + Angenommen Sie sind Professor für ulkiges Recht und wollen eine Abhandlung + über das neue »Gesetz über die ausgelassene Verbreitung allgemeiner Späße«, + kurz GüdaVaS, schreiben. Der Hauptaugenmerk soll dabei jeweils auf dem + Kommentar zu einzelnen Paragraphen liegen. Sie entscheiden sich für ein + zweispaltiges Layout, wobei der Kommentar in der Hauptspalte enthalten sein + soll und die Paragraphen jeweils klein\iffree{ und in Farbe}{} in einer + schmaleren Notizspalte rechts daneben. +\begin{lstcode} + \documentclass{scrartcl} + \usepackage[ngerman]{babel} + \usepackage{selinput} + \SelectInputMappings{ + adieresis={ä}, + germandbls={ß}, + } + \usepackage[T1]{fontenc} + \usepackage{lmodern} + \usepackage{xcolor} + + \usepackage{scrjura} + \setkomafont{contract.Paragraph}{\bfseries} + \setkeys{contract}{preskip=-\dp\strutbox} + + \usepackage{scrlayer-scrpage} + \usepackage{scrlayer-notecolumn} + + \newlength{\paragraphscolwidth} + \AfterCalculatingTypearea{% + \setlength{\paragraphscolwidth}{.333\textwidth}% + \addtolength{\paragraphscolwidth}{-\marginparsep}% + } + \recalctypearea + \DeclareNewNoteColumn[% + position=\oddsidemargin+1in + +.667\textwidth + +\marginparsep, + width=\paragraphscolwidth, + font=\raggedright\footnotesize + \color{blue} + ]{paragraphs} +\end{lstcode} + Es wird ein einseitiger Artikel verfasst. Dazu wird die Sprache mit Hilfe + des \Package{babel}\IndexPackage{babel}-Pakets auf Deutsch (neue + Rechtschreibung) festgelegt. Die Eingabecodierung wird mit Hilfe von + \Package{selinput}\IndexPackage{selinput} automatisch bestimmt. Als Schrift + wird Latin Modern in 8-Bit-Codierung verwendet.\iffree{ Für die + Farbeinstellungen wird das Paket \Package{xcolor}\IndexPackage{xcolor} + genutzt.}{} + + Bezüglich des Setzens von Gesetzestexten mit \Package{scrjura} sei auf + \iffree{dessen Anleitung}{\autoref{cha:scrjura}} verwiesen. + + Da ein Seitenstil mit Seitenzahl verwendet werden soll, wird das Paket + \Package{scrlayer-scrpage} verwendet. Somit können Notizspalten auf allen + Seiten ausgegeben werden. + + Dann wird das Paket \Package{scrlayer-notecolumn} für die Notizspalten + geladen. Die gewünschte Breite der Notizspalte wird über + \Macro{AfterCalculatingTypearea} nach jeder etwaigen Neuberechnung des + Satzspiegels neu berechnet. Sie soll jeweils ein Drittel der + Satzspiegelbreite betragen, wobei der Abstand zwischen Text und Notizspalte + zu Lasten der Notizspalte geht. + + Mit dieser Information kann dann die neue Notizspalte definiert werden. Bei + der Festlegung der Position wird ein einfacher Längenausdruck genutzt. Dabei + ist zu beachten, dass \Length{oddsidemargin} nicht der gesamte linke Rand + ist, sondern aus historischen Gründen der linke Rand abzüglich + 1\Unit{inch}. Daher muss dieser Wert noch hinzugezählt werden. + + Damit ist die Deklaration abgeschlossen. Es ist zu beachten, dass die + Notizspalte bisher im Textbereich ausgegeben wird. Die Notizspalte würde + also den Text überschreiben. + +\begin{lstcode} + \begin{document} + + \title{Kommentar zum GüdaVaS} + \author{Professor R. O. Tenase} + \date{11.\,11.~2011} + \maketitle + \tableofcontents + + \section{Vormerkung} + Das GüdaVaS ist ohne jeden Zweifel das wichtigste Gesetz, das in + Spaßmanien in den letzten eintausend Jahren verabschiedet wurde. + Die erste Lesung fand bereits am 11.\,11.~1111 im obersten + spaßmanischen Kongress statt, wurde aber vom damalige Spaßvesier + abgelehnt. Erst nach Umwandlung der spaßmanischen, aberwitzigen + Monarchie in eine repräsentative, witzige Monarchie durch W. Itzbold, + den Urkomischen, am 9.\,9.~1999 war der Weg für dieses Gesetz + endlich frei. +\end{lstcode} + Dadurch, dass der Textbereich nicht verkleinert wurde, wird hier der ganze + Vorspann über die Gesamtbreite ausgegeben. Um das Beispiel zu testen, können + Sie vorübergehend +\begin{lstcode} + \end{document} +\end{lstcode} + ergänzen. +\end{Example} +% +Offen blieb in diesem Beispiel die Frage, wie dann aber der Text für den +Kommentar schmaler gesetzt werden kann. Dies werden Sie bei der Fortsetzung +des Beispiels erfahren.% +\EndIndex{Cmd}{RedeclareNoteColumn}% +\EndIndex{Cmd}{ProvideNoteColumn}% +\EndIndex{Cmd}{DeclareNewNoteColumn}% +\EndIndex{Cmd}{DeclareNoteColumn}% + +\section{Erstellen einer Notiz} +\label{sec:scrlayer-notecolumn.makenote} + +Nachdem eine Notizspalte deklariert wurde, können Notizen für diese Spalte +erstellt werden. Diese Notizen werden allerdings nicht unmittelbar ausgegeben, +sondern zunächst nur in eine Hilfsdatei mit Endung »\File{.slnc}« +geschrieben.\footnote{Ganz genau werden die Notizen sogar zunächst in die + \File{aux}-Datei geschrieben und erst beim Lesen der \File{aux}-Datei + innerhalb von \Macro{end}\PParameter{document} in die \File{slnc}-Datei + übertragen. Dabei wird gegebenenfalls auch die Einstellung \Macro{nofiles} + beachtet.} % +Beim nächsten \LaTeX-Lauf wird diese Hilfsdatei dann Stück für Stück je nach +Fortschritt des Dokuments wieder eingelesen und am Ende der Seite die Notizen +für die jeweilige Seite ausgegeben. + +Es ist jedoch zu beachten\textnote{Achtung!}, dass Notizspalten nur auf Seiten +ausgegeben werden, deren Seitenstil auf dem Paket +\Package{scrlayer}\IndexPackage{scrlayer} basiert. Das Paket +\Package{scrlayer} wird von \Package{scrlayer-notecolumn} automatisch geladen +und stellt in der Voreinstellung lediglich den Seitenstil +\Pagestyle{empty}\IndexPagestyle{empty} bereit. Werden weitere Seitenstile +benötigt, wird zusätzlich das Paket +\Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage} empfohlen. + +\begin{Declaration} + \Macro{makenote}\OParameter{Name der Notizspalte}\Parameter{Notiz} +\end{Declaration} +\BeginIndex{Cmd}{makenote}% +Mit Hilfe dieser Anweisung kann eine \PName{Notiz} erstellt werden. Dabei wird +die aktuelle vertikale Position als vertikale Position für den Anfang der +\PName{Notiz} verwendet. Die horizontale Position für die Notiz ergibt sich +aus der definierten Position der Notizspalte. Für die korrekte Funktion ist +das Paket dabei auf \Macro{pdfsavepos}, \Macro{pdflastypos} und +\Macro{pdfpageheight} angewiesen. Ohne diese Befehle funktioniert +\Package{scrlayer-notecolumn} nicht. Dabei wird außerdem davon ausgegangen, +dass die genannten Primitiven exakt die Ergebnisse von PDF\TeX{} liefern. + +Wird allerdings bei der Ausgabe der \PName{Notiz} eine Kollision mit einer +früheren Notiz in derselben Notizspalte erkannt, so wird die \PName{Notiz} bis +unter diese frühere Notiz verschoben. Passt die \PName{Notiz} nicht mehr auf +die Seite, so wird sie ganz oder teilweise auf die nächste Seite umbrochen. + +Für welche Notizspalte die \PName{Notiz} erstellt werden soll, wird über das +optionale Argument \PName{Name der Notizspalte} bestimmt. Ist kein optionales +Argument angegeben, so wird die vordefinierte Notizspalte \PValue{marginpar} +verwendet.% +\begin{Example} + Fügen wir nun dem Beispiel aus dem vorherigen Abschnitt einen kommentierten + Paragraphen hinzu, wobei der Paragraph selbst in der neu definierten + Notizspalte gesetzt werden soll. +\begin{lstcode} + \section{Analyse} + \begin{addmargin}[0pt]{.333\textwidth} + \makenote[paragraphs]{% + \protect\begin{contract} + \protect\Paragraph{title={Kein Witz ohne Publikum}} + Ein Witz kann nur dort witzig sein, wo er auf ein Publikum + trifft. + \protect\end{contract} + } + Dies ist eine der zentralsten Aussagen des Gesetzes. Sie ist derart + elementar, dass es durchaus angebracht ist, sich vor der Weisheit der + Verfasser zu verbeugen. +\end{lstcode} + Die in \autoref{sec:maincls.lists}, \autopageref{desc:maincls.env.addmargin} + dokumentierte Umgebung wird genutzt, um den Haupttext in der Breite um die + Spalte für die Paragraphen zu vermindern. Hier ist auch eines der wenigen + Probleme bei Verwendung von \Macro{makenote} zu erkennen. Da das + obligatorische Argument in Dateien geschrieben wird, können Befehle + innerhalb des Arguments leider \emph{zerbrechen}. Um das zu verhindern, wird + empfohlen, vor alle Befehle ein \Macro{protect} zu setzen. Anderenfalls kann + die Verwendung von Befehlen innerhalb dieses Arguments zu Fehlermeldungen + führen. + + Prinzipiell könnten Sie das Beispiel nun bereits mit +\begin{lstcode} + \end{addmargin} + \end{document} +\end{lstcode} + beenden, wenn Sie ein Ergebnis sehen wollen. +\end{Example}% +Wenn Sie das Beispiel testen, werden Sie feststellen, dass die Gesetzes-Spalte +tiefer hinunter reicht als der Kommentartext. Wenn Sie zwecks Übung einen +weiteren Abschnitt mit einem weiteren Paragraphen hinzufügen, ergibt sich +eventuell das Problem, dass der Kommentar nicht unterhalb des Gesetzestextes, +sondern direkt im Anschluss an den bisherigen Kommentar fortgesetzt wird. Eine +Lösung für dieses Problem, werden Sie gleich kennenlernen.% +\EndIndex{Cmd}{makenote}% + +\begin{Declaration} + \Macro{syncwithnotecolumn}\OParameter{Name der Notizspalte} +\end{Declaration} +\BeginIndex{Cmd}{syncwithnotecolumn}% +Mit Hilfe dieser Anweisung wird in einer Notizspalte und im Haupttext des +Dokumente je ein Synchronisierungspunkt erstellt. Wann immer bei der Ausgabe +einer Notizspalte oder des Haupttextes ein solcher Synchronisierungspunkt +erreicht wird, wird eine Marke angelegt, deren Inhalt die aktuelle Seite und +die aktuelle vertikale Position ist. + +Parallel zum Erstellen der Synchronisierungspunkte, wird ermittelt, ob in +der Notizspalte und im Haupttext beim letzten \LaTeX-Lauf eine Marke angelegt +wurde. Falls das der Fall ist, werden deren Werte miteinander +verglichen. Liegt die Marke der Notizspalte tiefer auf der Seite oder auf +einer späteren Seite, so wird im Haupttext bis zu der Stelle der Notizspalte +vorgerückt. + +In der Regel sollten Synchronisierungspunkte nicht innerhalb eines Absatzes +des Haupttextes, sondern nur zwischen diesen gesetzt werden. Wird +\Macro{syncwithnotecolumn} dennoch innerhalb eines Absatzes verwendet, so +wird der Synchronisierungspunkt im Haupttext tatsächlich erst nach der +aktuellen Zeile eingefügt. In dieser Hinsicht ähnelt +\Macro{syncwithnotecolumn} also beispielsweise \Macro{vspace}. + +Dadurch, dass Synchronisierungspunkte in den Notizspalten erst beim nächsten +\LaTeX-Lauf erkannt werden, benötigt der Mechanismus mindestens drei +\LaTeX-Läufe. Aus jeder neuen Synchronisierung können sich außerdem +Verschiebungen für spätere Synchronisierungspunkte ergeben, was wiederum die +Notwendigkeit weiterer \LaTeX-Läufe nach sich zieht. Zu erkennen +sind solche Verschiebungen in der Regel an der Meldung: »\LaTeX{} +Warning: Label(s) may have changed. Rerun to get cross-references right.« Aber +auch Meldungen über undefinierte \emph{Labels} können auf die Notwendigkeit +eines weiteren \LaTeX-Laufs hinweisen. + +Wird das optionale Argument nicht angegeben\footnote{Es sei an dieser Stelle + darauf hingewiesen, dass ein leeres optionales Argument nicht + gleichbedeutend mit dem Weglassen eines optionalen Arguments ist!}, so wird +an seiner Stelle \PValue{marginpar}, also die vordefinierte Notizspalte +verwendet. + +Es ist nicht erlaubt \Macro{syncwithnotecolumn} innerhalb einer Notiz selbst, +also im obligatorischen Argument von \Macro{makenote}\IndexCmd{makenote} zu +verwenden! Dieser Fehler kann derzeit nicht abgefangen werden und führt dazu, +dass mit jedem \LaTeX-Lauf neue Verschiebungen auftreten, so dass nie ein +endgültiger Zustand erreicht wird. Um zwei oder mehrere Notizspalten +miteinander zu synchronisieren, sind diese stattdessen mit dem Haupttext zu +synchronisieren, da dabei auch die Spalten miteinander synchronisiert +werden. Die hierzu empfohlene Anweisung wird nachfolgend beschrieben.% +% +\begin{Example} + Führen wir nun das obige Beispiel fort, indem wir zunächst einen + Synchronisationspunkt und dann einen weiteren Paragraphen + mit Kommentar hinzufügen: +\begin{lstcode} + \syncwithnotecolumn[paragraphs]\bigskip + \makenote[paragraphs]{% + \protect\begin{contract} + \protect\Paragraph{title={Komik der Kultur}} + \setcounter{par}{0}% + Die Komik eines Witzes kann durch das kulturelle + Umfeld, in dem er erzählt wird, bestimmt sein. + + Die Komik eines Witzes kann durch das kulturelle Umfeld, + in dem er spielt, bestimmt sein. + \protect\end{contract} + } + Die kulturelle Komponente eines Witzes ist tatsächlich nicht zu + vernachlässigen. Über die politische Korrektheit der Nutzung des + kulturellen Umfeldes kann zwar trefflich gestritten werden, + nichtsdestotrotz ist die Treffsicherheit einer solchen Komik im + entsprechendem Umfeld frappierend. Auf der anderen Seite kann ein + vermeintlicher Witz im falschen kulturellen Umfeld auch zu einer + echten Gefahr für den Witzeerzähler werden. +\end{lstcode} + Außer dem Synchronisationspunkt wurde hier auch noch ein vertikaler + Abstand mit \Macro{bigskip} eingefügt, um die einzelnen Paragraphen und ihre + Kommentare besser voneinander abzusetzen. + + Außerdem wird hier ein weiterer Punkt, der zu einem Problem werden kann, + sichtbar. Da die Notizspalten mit Boxen arbeiten, die zusammengebaut und + zerlegt werden, kann es bei Zählern innerhalb der Notizspalten teilweise zu + Verschiebungen kommen. Im Beispiel würde daher der erste Absatz nicht mit 1, + sondern mit 2 nummeriert. Dies kann jedoch mit einem beherzten Zurücksetzen + des entsprechenden Zählers leicht korrigiert werden. + + Das Beispiel ist damit fast fertig, was noch fehlt, ist das Ende der + Umgebungen: +\begin{lstcode} + \end{addmargin} + \end{document} +\end{lstcode} + Tatsächlich wären natürlich auch noch die restlichen Paragraphen des + Gesetztes zu kommentieren. Dies sei mir hier jedoch erlassen. +\end{Example}% +Doch halt! Was wäre, wenn in diesem Beispiel der Paragraph nicht mehr auf die +Seiten passen würde? Würde er dann auf der nächsten Seite ausgegeben? Diese +Frage wird im nächsten Abschnitt beantwortet werden. +\EndIndex{Cmd}{syncwithnotecolumn}% + +\begin{Declaration} + \Macro{syncwithnotecolumns}\OParameter{Liste von Notizspalte-Namen} +\end{Declaration} +\BeginIndex{Cmd}{syncwithnotecolumns}% +Diese Anweisung führt eine Synchronisierung des Haupttextes mit allen in der +mit Komma separierten \PName{Liste von Notizspalten-Namen} durch. Dabei wird +der Haupttext mit der Notizspalte synchronisiert, deren Marke am weitesten +hinten im Dokument steht. Somit werden als Nebeneffekt auch die Notizspalten +untereinander synchronisiert. + +Wird das optionale Argument nicht angegeben oder ist es leer (oder beginnt es +mit \Macro{relax}), so wird mit allen deklarierten Notizspalten +synchronisiert.% +\EndIndex{Cmd}{syncwithnotecolumns}% + + +\section{Erzwungene Ausgabe von Notizspalten} +\label{sec:scrlayer-notecolumn.clearnotes} + +Neben der normalen Ausgabe der Notizspalten, wie sie in +\autoref{sec:scrlayer-notecolumn.makenote} beschrieben ist, ist es manchmal +auch erforderlich alle aufgesammelten Notizen, die noch nicht ausgegeben +wurden, auszugeben. Das ist insbesondere dann sinnvoll, wenn längere Notizen +dazu führen, dass immer mehr Notizen nach unten und auf neue Seiten verschoben +werden. Ein guter Zeitpunkt für eine solche erzwungene Ausgabe ist +beispielsweise das Ende eines Kapitels oder das Ende des Dokuments. + +\begin{Declaration} + \Macro{clearnotecolum}\OParameter{Name der Notizspalte} +\end{Declaration} +\BeginIndex{Cmd}{clearnotecolumn}% +Mit dieser Anweisung werden alle Notizen einer bestimmen Notizspalte +ausgegeben, die bis zum Ende der aktuellen Seite noch nicht ausgegeben sind, +aber auf dieser oder einer vorherigen Seite erstellt wurden. Zur Ausgabe +dieser noch anhängigen Notizen werden nach Bedarf Leerseiten erstellt. Während +der Ausgabe der anhängigen Notizen dieser Notizspalte werden gegebenenfalls +auch anhängige Notizen anderer Notizspalten ausgegeben, jedoch nur so lange, +wie dies zu Ausgabe der anhängigen Notizen der angegebenen Notizspalte +notwendig ist. + +Während der Ausgabe der anhängigen Notizen kann es auch geschehen, dass +irrtümlich Notizen ausgegeben werden, die im vorherigen \LaTeX-Lauf auf den +Seiten erstellt wurden, die nun durch die eingefügten Leerseiten ersetzt +werden. Dies normalisiert sich in einem der nächsten \LaTeX-Läufe. Zu erkennen +sind solche Verschiebungen in der Regel an der Meldung: »\LaTeX{} +Warning: Label(s) may have changed. Rerun to get cross-references right.« + +Die Notizspalte, deren anhängige Notizen ausgegeben werden soll, ist über das +optionale Argument, \PName{Name der Notizspalte}, angegeben. Ist kein solches +Argument angegeben, so wird die vordefinierte Notizspalte \PValue{marginpar} +verwendet. + +Dem aufmerksamen Leser wird nicht entgangen sein, dass die erzwungene Ausgabe +einer Notizspalte der Synchronisierung nicht unähnlich ist. Allerdings +befindet man sich nach der erzwungenen Ausgabe im Fall, dass tatsächlich eine +Ausgabe stattfindet, am Anfang der Seite nach der letzten Ausgabe und nicht +unmittelbar unterhalb der letzten Ausgabe. Dafür terminiert die erzwungene +Ausgabe in der Regel mit weniger \LaTeX-Läufen.% +\EndIndex{Cmd}{clearnotecolumn}% + +\begin{Declaration} + \Macro{clearnotecolumns}\OParameter{Liste von Notizspalten-Namen} +\end{Declaration} +\BeginIndex{Cmd}{clearnotecolumns}% +Diese Anweisung arbeitet vergleichbar mit \Macro{clearnotecolumn}. Allerdings +kann hier als optionales Argument nicht nur eine Notizspalte angegeben werden, +sondern es ist eine durch Komma getrennte Liste mehrere Namen von +Notizspalten erlaubt. Es werden dann die anhängigen Notizen all dieser Spalten +ausgegeben. + +Wurde das optionale Argument nicht angegeben oder ist es leer, so werden die +anhängigen Notizen aller Notizspalten ausgegeben.% +\EndIndex{Cmd}{clearnotecolumns}% + +\begin{Declaration} + \KOption{autoclearnotecolumns}\PName{Ein-Aus-Schalter} +\end{Declaration} +\BeginIndex{Option}{autoclearnotecolumns}% +In der Regel wird man anhängige Notizen immer dann ausgeben lassen, wenn im +Dokument explizit oder implizit -- beispielsweise in Folge von \Macro{chapter} +-- die Anweisung \Macro{clearpage} ausgeführt wird. Dies ist auch am Ende +eines Dokuments innerhalb von \Macro{end}\PParameter{document} der Fall. Über +Option \Option{autoclearnotecolumns} kann daher gesteuert werden, ob bei +Ausführung von \Macro{clearpage} automatisch auch \Macro{clearnotecolumns} +ohne Argument ausgeführt werden soll. + +Da davon ausgegangen wird, dass dies in der Regel erwünscht ist, ist die +Option in der Voreinstellung aktiv. Man kann sie jedoch über die +entsprechenden Werte für einfache Schalter (siehe +\autoref{tab:truefalseswitch} auf \autopageref{tab:truefalseswitch}) jederzeit +aus- und auch wieder einschalten. + +Es ist zu beachten, dass im Falle der Deaktivierung der automatischen Ausgabe +anhängiger Notizen am Ende des Dokument Notizen ganz oder teilweise verloren +gehen können. Daher sollte man in diesem Fall vor +\Macro{end}\PParameter{document} sicherheitshalber ein +\Macro{clearnotecolumns} einfügen. + +Damit ist nun auch die Frage nach dem Beispiel im letzten Abschnitt +beantwortet, ob der Paragraph auch komplett ausgegeben würde, wenn er auf die +nächste Seite umbrochen werden müsste. Dies ist in der Voreinstellung +selbstverständlich der Fall. Da es jedoch nach dem Ende der +\Environment{addmargin}-Umgebung geschehen würde, könnte es eventuell noch +zu Überlappungen durch nachfolgenden Text kommen. Daher wäre es im Beispiel +durchaus sinnvoll nach der \Environment{addmargin}-Umgebung einen weiteren +Synchronisationspunkt einzufügen. + +Das Ergebnis des Beispiels ist übrigens in +\autoref{fig:scrlayer-notecolumn.example} zu sehen. + +\begin{figure} + \KOMAoptions{captions=bottombeside}% + \setcapindent{0pt}% + \begin{captionbeside}[{Eine Ergebnisseite zu dem Beispiel in + \autoref{cha:scrlayer-notecolumn}}]{Eine Ergebnisseite zu dem Beispiel + aus diesem Kapitel\label{fig:scrlayer-notecolumn.example}}[l] + \frame{\includegraphics[width=.5\textwidth,keepaspectratio]% + {scrlayer-notecolumn-example}} + \end{captionbeside} +\end{figure} +\EndIndex{Option}{autoclearnotecolumns}% +% +\EndIndex{Package}{scrlayer-notecolumn}% + +%%% Local Variables: +%%% mode: latex +%%% mode: flyspell +%%% coding: iso-latin-1 +%%% ispell-local-dictionary: "de_DE" +%%% TeX-master: "scrlayer-de.tex" +%%% TeX-PDF-mode: t +%%% End: + +% LocalWords: Randnotizen Entwicklungsstadium Notizspalte Notizspalten +% LocalWords: Neukonfigurierung Synchronisierungspunkt diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-scrpage-experts.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-scrpage-experts.tex new file mode 100644 index 00000000000..ddcbe5a8284 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-scrpage-experts.tex @@ -0,0 +1,672 @@ +% ====================================================================== +% scrlayer-scrpage-experts.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrlayer-scrpage-experts.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% +% Expert chapter about scrlayer-scrpage of the KOMA-Script guide +% +% ---------------------------------------------------------------------- +% +% Expertenkapitel über scrlayer-scrpage in der KOMA-Script-Anleitung +% +% ============================================================================ + +\KOMAProvidesFile{scrlayer-scrpage-experts.tex}% + [$Date: 2013-12-17 14:46:13 +0100 (Di, 17. Dez 2013) $ + KOMA-Script guide (chapter: scrlayer-scrpage for experts)] + +\chapter[{Zusätzliche Möglichkeiten von \Package{scrlayer-scrpage}}] +{Zusätzliche Möglichkeiten des + Pakets\ChangedAt{v3.12}{\Package{scrlayer-scrpage}} + \Package{scrlayer-scrpage}} +\labelbase{scrlayer-scrpage-experts} +% +\BeginIndex{Package}{scrlayer-scrpage}% +Über die Erklärungen in \autoref{cha:scrlayer-scrpage} von +\autoref{part:forAuthors} diese\iffree{r Anleitung}{s Buches} hinaus, bietet das +Paket \Package{scrlayer-scrpage} viele weitere Möglichkeiten. Diese stellen +jedoch entweder Erweiterungen dar, die der durchschnittliche Anwender nicht +zwingend benötigt oder sie existieren nur aus Gründen der Kompatibilität zu +\Package{scrpage2}, so dass die meisten Anwender sie nicht wissen +müssen. All diese Dinge werden daher in hier in \autoref{part:forExperts} +dokumentiert. + +\LoadCommon[scrlayerscrpageexperts]{21}% \section{Beeinflussung von definierten Seitenstilen} + +\section{Definition eigener Seitenstil-Paare} +\label{sec:scrlayer-scrpage-experts.pagestyle.pairs} + +In \autoref{sec:scrlayer-scrpage.predefined.pagestyles} wurden die beiden +Seitenstile \Pagestyle{scrheadings} und \Pagestyle{plain.scrheadings} +vorgestellt. Diese bilden quasi ein Paar, bei dem \Pagestyle{scrheadings} als +Haupt-Seitenstil mit Kolumnentitel vorgesehen ist, während +\Pagestyle{plain.scrheadings} ein dazu passender \Pagestyle{plain}-Seitenstil +ohne Kolumnentitel aber üblicherweise mit Paginierung, also mit Seitenzahl +ist. Neben der Konfiguration dieses vordefinierten Paars bietet +\Package{scrlayer-scrpage} auch die Möglichkeit, zusätzliche Paare zu +definieren. Der Name des Haupt-Seitenstils \Pagestyle{scrheadings} dient dabei +quasi auch als Name des Seitenstil-Paars. + +Die allermeisten Anwender werden in der Regel mit dem einen vordefinierten +Seitenstil-Paar \Pagestyle{scrheadings} auskommen. Die in diesem Abschnitt +dokumentierten Anweisungen sind daher eher Ergänzungen für besondere Fälle. Da +mir während des Abfassens dieser Anleitung keine handlichen +Anwendungsbeispiele eingefallen sind, gibt es auch keine ausführlichen +Beispiele. Sollte mir im Support einmal eine besonders schöne Anwendung +begegnen, werde ich solche aber in zukünftigen Fassungen gerne aufgreifen. Ich +bin jedoch gleichzeitig sicher, dass sich all diese Fälle auch mit dem einen +Paar \Pagestyle{scrheadings} lösen lassen. + +\begin{Declaration} + \Macro{defpairofpagestyles}% + \OParameter{Eltern-Paar}\Parameter{Name}\Parameter{Definition}\\ + \Macro{newpairofpagestyles}% + \OParameter{Eltern-Paar}\Parameter{Name}\Parameter{Definition}\\ + \Macro{renewpairofpagestyles}% + \OParameter{Eltern-Paar}\Parameter{Name}\Parameter{Definition}\\ + \Macro{providepairofpagestyles}% + \OParameter{Eltern-Paar}\Parameter{Name}\Parameter{Definition} +\end{Declaration} +\BeginIndex{Cmd}{defpairofpagestyles}% +\BeginIndex{Cmd}{newpairofpagestyles}% +\BeginIndex{Cmd}{renewpairofpagestyles}% +\BeginIndex{Cmd}{providepairofpagestyles}% +Mit diesen Anweisungen können Paare von Seitenstilen vergleichbar zu +\Pagestyle{scrheadings} und \Pagestyle{plain.scrheadings} definiert +werden. Dabei ist \PName{Name} der Name des zu \Pagestyle{scrheadings} +vergleichbaren Hauptseitenstils, der für die Verwendung mit Kolumnentiteln +ausgelegt ist. Für den Namen des zugehörigen \Pagestyle{plain}-Seitenstil wird +\PName{Name} automatisch \PValue{plain.} vorangestellt. \PName{Name} ist also +gleichzeitig der Name des Paares und des Hauptseitenstils dieses Paares, während +\PValue{plain.}\PName{Name} der Name des \Pagestyle{plain}-Seitenstils dieses +Paares ist. + +Ist das optionale Argument \PName{Eltern-Paar} angegeben, so ist dies der Name +eines Seitenstil-Paars, mit dessen Einstellungen das neue Paar initialisiert +werden soll. Das neue Paar erbt also quasi die Konfiguration des +\PName{Eltern-Paar}s. + +Während in \autoref{sec:scrlayer-scrpage.predefined.pagestyles} der Eindruck +entstanden ist, dass sich die in jenem Abschnitt erläuterten Anweisungen nur +auf \Pagestyle{scrheadings} und \Pagestyle{plain.scrheadings} beziehen, gilt +das tatsächlich nur, solange diese das einzige Seitenstil-Paar +darstellen. Sobald es mehrere Seitenstil-Paare gibt, beziehen sich diese +Anweisungen auf das zuletzt aktive Seitenstil-Paar. Dies gilt für +\Macro{lehead}, \Macro{cehead}, \Macro{rehead}, \Macro{lohead}, +\Macro{cohead}, \Macro{rohead}, \Macro{lefoot}, \Macro{cefoot}, +\Macro{refoot}, \Macro{lofoot}, \Macro{cofoot}, \Macro{rofoot}, \Macro{ihead}, +\Macro{chead}, \Macro{ohead}, \Macro{ifoot}, \Macro{cfoot}, \Macro{ofoot} aus +\autoref{sec:scrlayer-scrpage.predefined.pagestyles}. + +Genau jene Anweisung, sowie die nachfolgend dokumentierten Anweisungen +\Macro{clearmainofpairofpagestyles}, \Macro{clearplainofpairofpagestyles} und +\Macro{clearpairofpagestyles} sind auch für die Verwendung im letzten +Parameter \PName{Definition} gedacht. In diesem Fall stellen sie eine Art +Grundkonfiguration des Seitenstil-Paars dar, die immer dann ausgeführt wird, +wenn das Seitenstil-Paar aktiviert wird. Ein Seitenstil-Paar wird aktiviert, +indem einer der beiden Seitenstile des Paares aktiviert wird. Dies geschieht +in der Regel mit Hilfe von \Macro{pagestyle}\IndexCmd{pagestyle}. + +Es sei darauf hingewiesen, dass die Anweisungen aus +\autoref{sec:scrlayer-scrpage.pagestyle.content} ohnehin allgemeiner Natur +sind und für alle mit \Pagestyle{scrlayer-scrpage} definierten Seitenstile +gelten. + +Während \Macro{defpairofpagestyles} das Paar unabhängig davon, ob entsprechende +Seitenstile bereits existieren, definiert, geschieht die Definition bei +\Macro{newpairofpagestyles} und \Macro{providepairofpagestyles} nur, wenn die +Seitenstile noch nicht definiert sind. Ist mindestens einer der beiden +Seitenstile des Paares bereits definiert, so wird die neuerliche Definition +bei \Macro{providepairofpagestyles} ignoriert, während sie bei +\Macro{newpairofpagestyles} einen Fehler ergeben. Für die Umdefinierung +bereits existierender Paare kann \Macro{renewpairofpagestyles} verwendet +werden. Hier wird ein Fehler gemeldet, wenn einer der beiden Seitenstile oder +beide Seitenstile des Paares noch nicht existieren.% +\EndIndex{Cmd}{providepairofpagestyles}% +\EndIndex{Cmd}{renewpairofpagestyles}% +\EndIndex{Cmd}{newpairofpagestyles}% +\EndIndex{Cmd}{defpairofpagestyles}% + +\begin{Declaration} + \Macro{clearmainofpairofpagestyles}\\ + \Macro{clearplainofpairofpagestyles}\\ + \Macro{clearpairofpagestyles} +\end{Declaration} +\BeginIndex{Cmd}{clearmainofpairofpagestyles}% +\BeginIndex{Cmd}{clearplainofpairofpagestyles}% +\BeginIndex{Cmd}{clearpairofpagestyles}% +Mit der Anweisung \Macro{clearmainofpairofpagestyles} wird der Hauptseitenstil +des zuletzt aktivierten Seitenstil-Paares leer konfiguriert. Dagegen wird mit +der Anweisung \Macro{clearplainofpairofpagestyles} der +\Pagestyle{plain}-Seitenstil des entsprechenden Seitenstil-Paares leer +konfiguriert. Anweisung \Macro{clearpairofpagestyles} konfiguriert schließlich +beide Seitenstile des entsprechenden Paares als leer. + +Es ist jedoch zu beachten\textnote{Achtung!}, dass keine dieser Anweisungen +die Definitionen aus dem Parameter \PName{Definition}, der bei der Definition +des Seitenstil-Paares angegeben wurde (siehe oben), entfernt. Bei der erneuten +Auswahl eines Seitenstils des Paares werden jene Einstellungen also erneut +ausgeführt! + +Die Anweisungen können selbst ebenfalls innerhalb von \PName{Definition} +verwendet werden. Sie können aber auch jederzeit außerhalb der Definition +eines Seitenstils verwendet werden. In diesem Fall beziehen sie sich auf das +zuletzt aktivierte Seitenstil-Paar. + +\BeginIndex{Cmd}{clearscrheadings}% +\BeginIndex{Cmd}{clearscrplain}% +\BeginIndex{Cmd}{clearscrheadfoot}% +Die Anweisungen \Macro{clearscrheadings}, \Macro{clearscrplain} und +\Macro{clearscrheadfoot} sind Aliase für diese Anweisungen, die nur aus +Gründen der Kompatibilität mit \Package{scrpage2} existieren. Sie sollten +nicht mehr verwendet werden.% +\EndIndex{Cmd}{clearscrheadfoot}% +\EndIndex{Cmd}{clearscrplain}% +\EndIndex{Cmd}{clearscrheadings}% +% +\EndIndex{Cmd}{clearpairofpagestyles}% +\EndIndex{Cmd}{clearplainofpairofpagestyles}% +\EndIndex{Cmd}{clearmainofpairofpagestyles}% + + +\section{Definition einfacher Seitenstile mit dreigeteiltem Kopf und Fuß} +\label{sec:scrlayer-scrpage-experts.pagestyle.triple} + +Neben den vordefinierten Seitenstilen und der Definition eigener +Seitenstil-Paare, bietet \Package{scrlayer-scrpage} auch noch die Möglichkeit +der Definition von Seitenstilen, bei denen sowohl der Kopf als auch der Fuß fest +in drei Elemente aufgeteilt ist. Diese Schnittstelle existiert jedoch nur aus +Gründen der Kompatibilität mit \Package{scrpage2}. Zum +Zwecke eines konsistenteren Befehlssatzes wurde sie sogar noch +erweitert. Dennoch wird empfohlen, für neue Dokumente nicht mehr auf diese +Möglichkeit zurück zu greifen, sondern die deutlich überlegenen Möglichkeiten +der vorherigen Abschnitte oder des nachfolgende Abschnitts zu nutzen. + +\begin{Declaration} + \Macro{deftriplepagestyle}% + \Parameter{Name des Seitenstils}\\ + \hphantom{\XMacro{deftriplepagestyle}}% + \OParameter{Dicke der äußeren Linie}% + \OParameter{Dicke der inneren Linie}\\ + \hphantom{\XMacro{deftriplepagestyle}}% + \Parameter{inneres Kopfelement}% + \Parameter{mittleres Kopfelement}% + \Parameter{äußeres Kopfelement}\\ + \hphantom{\XMacro{deftriplepagestyle}}% + \Parameter{inneres Fußelement}% + \Parameter{mittleres Fußelement}% + \Parameter{äußeres Fußelement}\\ + \Macro{newtriplepagestyle}% + \Parameter{Name des Seitenstils}\\ + \hphantom{\XMacro{newtriplepagestyle}}% + \OParameter{Dicke der äußeren Linien}% + \OParameter{Dicke der inneren Linien}\\ + \hphantom{\XMacro{newtriplepagestyle}}% + \Parameter{inneres Kopfelement}% + \Parameter{mittleres Kopfelement}% + \Parameter{äußeres Kopfelement}\\ + \hphantom{\XMacro{newtriplepagestyle}}% + \Parameter{inneres Fußelement}% + \Parameter{mittleres Fußelement}% + \Parameter{äußeres Fußelement}\\ + \Macro{renewtriplepagestyle}% + \Parameter{Name des Seitenstils}\\ + \hphantom{\XMacro{renewtriplepagestyle}}% + \OParameter{Dicke der äußeren Linie}% + \OParameter{Dicke der inneren Linie}\\ + \hphantom{\XMacro{renewtriplepagestyle}}% + \Parameter{inneres Kopfelement}% + \Parameter{mittleres Kopfelement}% + \Parameter{äußeres Kopfelement}\\ + \hphantom{\XMacro{renewtriplepagestyle}}% + \Parameter{inneres Fußelement}% + \Parameter{mittleres Fußelement}% + \Parameter{äußeres Fußelement}\\ + \Macro{providetriplepagestyle}% + \Parameter{Name des Seitenstils}\\ + \hphantom{\XMacro{providetriplepagestyle}}% + \OParameter{Dicke der äußeren Linie}% + \OParameter{Dicke der inneren Linie}\\ + \hphantom{\XMacro{providetriplepagestyle}}% + \Parameter{inneres Kopfelement}% + \Parameter{mittleres Kopfelement}% + \Parameter{äußeres Kopfelement}\\ + \hphantom{\XMacro{providetriplepagestyle}}% + \Parameter{inneres Fußelement}% + \Parameter{mittleres Fußelement}% + \Parameter{äußeres Fußelement} +\end{Declaration} +\BeginIndex{Cmd}{deftriplepagestyle}% +\BeginIndex{Cmd}{newtriplepagestyle}% +\BeginIndex{Cmd}{renewtriplepagestyle}% +\BeginIndex{Cmd}{providetriplepagestyle}% +Mit diesen Anweisungen kann ein einzelner Seitenstil definiert werden, bei dem +Kopf und Fuß in drei Elemente aufgeteilt sind: ein inneres Element, ein +mittleres Element und ein äußeres Element. Diese werden über jeweils drei +obligatorische Argumente angegeben. + +Das jeweilige innere Element wird auf linken Seiten rechtsbündig im Kopf +respektive im Fuß platziert. Auf rechten Seiten wird es hingegen linksbündig +platziert. Entsprechend wird das mittlere Element sowohl auf linken als auch +auf rechten Seiten im Kopf respektive Fuß zentriert. Das äußere Element wird +schließlich auf linken Seiten linksbündig und auf rechten Seiten rechtsbündig +im Kopf respektive Fuß platziert. + +An\textnote{Achtung!} dieser Stelle sei noch einmal daran erinnert, dass im +einseitigen Satz nur rechte Seiten existieren! + +Mit den beiden optionalen Argumenten können Linien in Kopf und Fuß aktiviert +werden. Dazu gibt man die gewünschte Dicke der Linien als Argument an. Das +erste optionale Argument betrifft die \PName{Dicke der äußeren Linien}. Diese +Linien werden über dem Kopf und unter dem Fuß gezeichnet. Das zweite optionale +Argument betrifft die \PName{Dicke der inneren Linien}. Diese beiden Linien +werden unterhalb des Kopfes und oberhalb des Fußes gezeichnet. Ist nur ein +optionales Argument angegeben, so ist dies die \PName{Dicke der inneren + Linien}. Die \PName{Dicke der äußeren Linien} ist dann Null, womit nur noch +die beiden inneren Linien gezeichnet werden. Ist keines der optionalen +Argumente angegeben, so entfallen alle Linien. + +Es ist zu beachten\textnote{Achtung!}, dass leere optionale Argumente nicht +gleichbedeutend mit dem Weglassen der optionalen Argumente sind! Leere +optionale Argumente sind in diesem Fall nicht erlaubt. Dagegen sind einfache +Längenausdrücke, wie sie bereits bei Option \Option{headwidth} (siehe +\autoref{sec:scrlayer-scrpage.pagestyle.content}, +\autopageref{desc:scrlayer-scrpage.option.headwidth}) erklärt wurden, erlaubt. + +Die Bedeutung der einzelnen Argumente ist in +\autoref{fig:scrlayer-scrpage.triplepagestyle} noch einmal an einer +schematischen Doppelseite veranschaulicht. Dabei dienen »\textsl{außen}«, +»\textsl{innen}«, »\textsl{mittig}« als beispielhafte Inhalte. Die zugehörigen +Pfeile verdeutlichen die Ausbreitung dieser Inhalte. Die \iffree{farbigen +}{}Texte im Inneren der Seite sind die Namen der Argumente der Befehle. Die +zugehörigen Pfeile \iffree{in gleicher Farbe }{}weisen auf die entsprechenden +Elemente der Seite. + +\begin{figure} + \centering + \begin{picture}(\textwidth,80mm) + \put(0,50mm){% + %\ + \begin{picture}(\textwidth,30mm)(0,-10mm) + \thinlines + \small + % linke Seite + \put(0,20mm){\line(1,0){.49\textwidth}}% + \put(0,0){\line(0,1){20mm}}% + \multiput(0,0)(0,-1mm){10}{\line(0,-1){.5mm}}% + \put(.49\textwidth,5mm){\line(0,1){15mm}}% + \put(.05\textwidth,15mm){\thicklines\line(1,0){.415\textwidth}}% + \put(.05\textwidth,10mm){\makebox(0em,5mm)[l]{\slshape außen\strut$\longrightarrow$}}% + \put(.465\textwidth,10mm){\makebox(0em,5mm)[r]{\slshape $\longleftarrow$innen\strut}}% + \put(.2575\textwidth,10mm){\makebox(0em,5mm)[c]{\slshape $\longleftarrow$mittig\strut$\longrightarrow$}}% + \put(.05\textwidth,10mm){\thicklines\line(1,0){.415\textwidth}}% + % rechte Seite + \put(0.51\textwidth,20mm){\line(1,0){.49\textwidth}}% + \put(0.51\textwidth,5mm){\line(0,1){15mm}}% + \multiput(\textwidth,0)(0,-1mm){10}{\line(0,-1){.5mm}}% + \put(\textwidth,0mm){\line(0,1){20mm}}% + \put(.535\textwidth,15mm){\thicklines\line(1,0){.415\textwidth}}% + \put(.535\textwidth,10mm){\makebox(0em,5mm)[l]{\slshape innen\strut$\longrightarrow$}}% + \put(.95\textwidth,10mm){\makebox(0em,5mm)[r]{\slshape $\longleftarrow$außen\strut}}% + \put(.7425\textwidth,10mm){\makebox(0em,5mm)[c]{\slshape $\longleftarrow$mittig\strut$\longrightarrow$}}% + \put(.535\textwidth,10mm){\thicklines\line(1,0){.415\textwidth}}% + % Befehle für beide Seiten + \iffree{\color{red}}{}% + \put(.5\textwidth,0){\makebox(0,\baselineskip)[c]{\PName{inneres Kopfelement}}}% + \put(.5\textwidth,-5mm){\makebox(0,\baselineskip)[c]{\PName{mittleres Kopfelement}}}% + \put(.5\textwidth,-10mm){\makebox(0,\baselineskip)[c]{\PName{äußeres Kopfelement}}}% + \put(\dimexpr.5\textwidth-2em,.5\baselineskip){% + \put(-1.5em,.5\baselineskip){\vector(0,1){7mm}}% + \put(-4em,-1\baselineskip){\line(-1,0){\dimexpr .25\textwidth-7em\relax}}% + \put(-\dimexpr + .25\textwidth-3em\relax,-1\baselineskip){\vector(0,1){\dimexpr + 7mm+1.5\baselineskip\relax}} + \put(-3.25em,-2.25\baselineskip){\line(-1,0){\dimexpr .45\textwidth-8em\relax}}% + \put(-\dimexpr + .45\textwidth-4.75em\relax,-2.25\baselineskip){\vector(0,1){\dimexpr + 7mm+2.75\baselineskip\relax}} + }% + \put(\dimexpr.5\textwidth+2em,.5\baselineskip){% + \put(1.5em,.5\baselineskip){\vector(0,1){7mm}}% + \put(4em,-1\baselineskip){\line(1,0){\dimexpr .25\textwidth-7em\relax}} + \put(\dimexpr + .25\textwidth-3em\relax,-1\baselineskip){\vector(0,1){\dimexpr + 7mm+1.5\baselineskip\relax}} + \put(3.25em,-2.25\baselineskip){\line(1,0){\dimexpr .45\textwidth-8em\relax}} + \put(\dimexpr + .45\textwidth-4.75em\relax,-2.25\baselineskip){\vector(0,1){\dimexpr + 7mm+2.75\baselineskip\relax}} + }% + \end{picture} + % + }% + \put(0,0){% + \begin{picture}(\textwidth,30mm) + \thinlines + \small + % linke Seite + \put(0,0){\line(1,0){.49\textwidth}}% + \put(0,0){\line(0,1){20mm}}% + \multiput(0,20mm)(0,1mm){10}{\line(0,1){.5mm}}% + \put(.49\textwidth,0){\line(0,1){15mm}}% + \put(.05\textwidth,15mm){\thicklines\line(1,0){.415\textwidth}}% + \put(.05\textwidth,10mm){\makebox(0em,5mm)[l]{\slshape außen\strut$\longrightarrow$}}% + \put(.465\textwidth,10mm){\makebox(0em,5mm)[r]{\slshape $\longleftarrow$innen\strut}}% + \put(.2575\textwidth,10mm){\makebox(0em,5mm)[c]{\slshape $\longleftarrow$mittig\strut$\longrightarrow$}}% + \put(.05\textwidth,10mm){\thicklines\line(1,0){.415\textwidth}}% + % rechte Seite + \put(.51\textwidth,0){\line(1,0){.49\textwidth}}% + \put(.51\textwidth,0){\line(0,1){15mm}}% + \put(\textwidth,0){\line(0,1){20mm}}% + \multiput(\textwidth,20mm)(0,1mm){10}{\line(0,1){.5mm}}% + \put(.535\textwidth,15mm){\thicklines\line(1,0){.415\textwidth}}% + \put(.535\textwidth,10mm){\makebox(0em,5mm)[l]{\slshape innen\strut$\longrightarrow$}}% + \put(.95\textwidth,10mm){\makebox(0em,5mm)[r]{\slshape $\longleftarrow$außen\strut}}% + \put(.7425\textwidth,10mm){\makebox(0em,5mm)[c]{\slshape $\longleftarrow$mittig\strut$\longrightarrow$}}% + \put(.535\textwidth,10mm){\thicklines\line(1,0){.415\textwidth}}% + % Befehle für beide Seiten + \iffree{\color{red}}{}% + \put(.5\textwidth,20mm){\makebox(0,\baselineskip)[c]{\PName{inneres Fußelement}}}% + \put(.5\textwidth,25mm){\makebox(0,\baselineskip)[c]{\PName{mittleres Fußelement}}}% + \put(.5\textwidth,30mm){\makebox(0,\baselineskip)[c]{\PName{äußeres Fußelement}}}% + \put(\dimexpr.5\textwidth-2em,.5\baselineskip){% + \put(-1.5em,\dimexpr 20mm-.5\baselineskip\relax){\vector(0,-1){6mm}}% + \put(-3.5em,25mm){\line(-1,0){\dimexpr .25\textwidth-6.5em\relax}}% + \put(-\dimexpr .25\textwidth-3em\relax,25mm){\vector(0,-1){\dimexpr + .5\baselineskip + 11mm\relax}}% + \put(-3em,30mm){\line(-1,0){\dimexpr .45\textwidth-7.5em\relax}}% + \put(-\dimexpr .45\textwidth-4.5em\relax,30mm){\vector(0,-1){\dimexpr + .5\baselineskip + 16mm\relax}}% + }% + \put(\dimexpr.5\textwidth+2em,.5\baselineskip){% + \put(1.5em,\dimexpr 20mm-.5\baselineskip\relax){\vector(0,-1){6mm}}% + \put(3.5em,25mm){\line(1,0){\dimexpr .25\textwidth-6.5em\relax}}% + \put(\dimexpr .25\textwidth-3em\relax,25mm){\vector(0,-1){\dimexpr + .5\baselineskip + 11mm\relax}}% + \put(3em,30mm){\line(1,0){\dimexpr .45\textwidth-7.5em\relax}}% + \put(\dimexpr .45\textwidth-4.5em\relax,30mm){\vector(0,-1){\dimexpr + .5\baselineskip + 16mm\relax}}% + }% + \end{picture} + }% + \thinlines\small\iffree{\color{blue}}{}% + \put(0.055\textwidth,45mm){\vector(0,1){25mm}}% + \put(0.945\textwidth,45mm){\vector(0,1){25mm}}% + \put(0.055\textwidth,45mm){\vector(0,-1){30mm}}% + \put(0.945\textwidth,45mm){\vector(0,-1){30mm}}% + \put(0.055\textwidth,45mm){\line(1,0){\dimexpr + .445\textwidth-6.5em\relax}}% + \put(0.945\textwidth,45mm){\line(-1,0){\dimexpr + .445\textwidth-6.5em\relax}}% + \put(0.5\textwidth,45mm){\makebox(0,0)[c]{\PName{Dicke der inneren + Linien}}}% + \iffree{\color{green}}{}% + \put(0.025\textwidth,40mm){\line(0,1){35mm}}% + \put(0.025\textwidth,75mm){\vector(1,0){3.75mm}}% + \put(0.975\textwidth,40mm){\line(0,1){35mm}}% + \put(0.975\textwidth,40mm){\line(0,1){35mm}}% + \put(0.975\textwidth,75mm){\vector(-1,0){3.75mm}}% + \put(0.025\textwidth,40mm){\line(0,-1){30mm}}% + \put(0.025\textwidth,10mm){\vector(1,0){3.75mm}}% + \put(0.975\textwidth,40mm){\line(0,-1){30mm}}% + \put(0.975\textwidth,40mm){\line(0,-1){30mm}}% + \put(0.975\textwidth,10mm){\vector(-1,0){3.75mm}}% + \put(0.025\textwidth,40mm){\line(1,0){\dimexpr + .475\textwidth-6.5em\relax}}% + \put(0.975\textwidth,40mm){\line(-1,0){\dimexpr + .475\textwidth-6.5em\relax}}% + \put(0.5\textwidth,40mm){\makebox(0,0)[c]{\PName{Dicke der äußeren Linien}}}% + \end{picture} + \caption[{Elemente dreigeteilter Seitenstile}]{Elemente einer Doppelseite + der dreigeteilten Seitenstile mit den Anweisungen + \Macro{deftriplepagestyle}, \Macro{newtriplepagestyle}, + \Macro{providetriplepagestyle} und \Macro{renewtriplepagestyle}} + \label{fig:scrlayer-scrpage.triplepagestyle} +\end{figure} + + +Mit den hier dokumentierten Anweisungen ist es nicht möglich, einzelne Linien +zu aktivieren, beispielsweise nur eine Linie unter dem Seitenkopf aber keine +Linie über dem Seitenfuß zu haben. Verwenden Sie dafür stattdessen die +Anweisungen aus einem der vorherigen oder aus dem nachfolgenden Abschnitt. + +Die\textnote{Achtung!} Länge der einzelnen Elemente ist nicht durch das +Vorhandensein eines Nachbarelements beschränkt. Dadurch kann es bei +ungünstiger Verwendung passieren, dass ein Element eines oder beide +Nachbarelemente überschreibt. Der Anwender ist selbst für die Vermeidung +dieses ungünstigen Falles verantwortlich. Bei lebenden Kolumnentiteln ist dies +beispielsweise durch Verwendung des optionalen Arguments der +Gliederungsbefehle möglich. Siehe dazu die Anleitung zu den +Gliederungsbefehlen der jeweiligen Klasse. + +Während \Macro{deftriplepagestyle} einen Seitenstil unabhängig davon, ob er +bereits früher definiert wurde, immer definiert, werden mit +\Macro{newtriplepagestyle} und \Macro{providetriplepagestyle} nur Seitenstile +definiert, die derzeit noch nicht definiert sind. Ist ein Seitenstil hingegen +bereits definiert, so erhält man mit \Macro{newtriplepagestyle} eine +Fehlermeldung, während \Macro{providetriplepagestyle} die neue Definition +einfach verwirft. Ein vorhandener Seitenstil kann auch mit +\Macro{renewtriplepagestyle} umdefiniert werden. Diese Anweisung meldet einen +Fehler, falls ein Seitenstil dieses Namens noch nicht definiert war.% + +\BeginIndex{Cmd}{deftripstyle}% +Die bei \Package{scrpage2} vorhandene Anweisung \Macro{deftripstyle} +entspricht damit der neuen Anweisung \Macro{deftriplepagestyle}. Sie wurde aus +Gründen der Vereinheitlichung der Namen der Anweisungen jedoch umbenannt und +sollte nicht mehr verwendet werden. Wird sie dennoch verwendet, resultiert +daraus eine Warnung.% +\EndIndex{Cmd}{deftripstyle}% +\EndIndex{Cmd}{providetriplepagestyle}% +\EndIndex{Cmd}{renewtriplepagestyle}% +\EndIndex{Cmd}{newtriplepagestyle}% +\EndIndex{Cmd}{deftriplepagestyle}% + + +\section{Definition komplexer Seitenstile} +\label{sec:scrlayer-scrpage-experts.pagestyle.experts} + +Neben den vordefinierten Seitenstilen und der Definition eigener +Seitenstil-Paare, sowie der nicht mehr empfohlenen Möglichkeit der Definition +von Seitenstilen, bei denen sowohl der Kopf als auch der Fuß fest in drei +Elemente aufgeteilt ist, bietet \Package{scrlayer-scrpage} auch noch eine eher +grundlegende Möglichkeit der Definition von Seitenstilen. Die in den +vorherigen Abschnitten erläuterten Konzepte greifen bei der Implementierung +alle auf diese Möglichkeit zurück. Aufgrund ihrer Komplexität wird diese +Schnittstelle jedoch nur erfahrenen Anwendern empfohlen. Weniger erfahrene +Anwender können mit den vorgenannten Möglichkeiten bereits nahezu alles +erreichen, was auch mit dieser grundlegenden Schnittstelle möglich +ist. Weniger erfahrene Anwender dürfen den Rest dieses Kapitels daher gerne +überspringen. + +\begin{Declaration} + \Macro{defpagestyle}% + \Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ + \Macro{newpagestyle}% + \Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ + \Macro{providepagestyle}% + \Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ + \Macro{renewpagestyle}% + \Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}% +\end{Declaration} +\BeginIndex{Cmd}{defpagestyle}% +\BeginIndex{Cmd}{newpagestyle}% +\BeginIndex{Cmd}{providepagestyle}% +\BeginIndex{Cmd}{renewpagestyle}% +Diese Anweisungen dienen der Definition eines einzelnen Seitenstils mit +maximaler Flexibilität. Dabei \PName{Name} der Name des Seitenstils, der +definiert werden soll. + +Die beiden Parameter \PName{Kopfdefinition} und \PName{Fußdefinition} haben +den identischen Aufbau: +\begin{quote}\raggedright + \texttt{(\PName{Länge der oberen Linie},\PName{Dicke der oberen Linie})\%\\ + \Parameter{Definition für linke Seiten im doppelseitigen Layout}\%\\ + \Parameter{Definition für rechte Seiten im doppelseitigen Layout}\%\\ + \Parameter{Definition für Seiten im einseitigen Layout}\%\\ + (\PName{Länge der unteren Linie},\PName{Dicke der unteren Linie})% + } +\end{quote} +Dabei sind die Argumente in den runden Klammern optional, das heißt, sie +können zusammen mit den Klammern weggelassen werden. In diesem Fall richtigen +sich die Längen und Dicken je nach Linie nach den Angaben der Option +\Option{headtopline}, \Option{headsepline}, \Option{footsepline} oder +\Option{footbotline} (siehe \autoref{sec:scrlayer-scrpage.pagestyle.content}, +\autopageref{desc:scrlayer-scrpage.option.headtopline}). + +Die drei Argumente mit den Definitionen sind obligatorisch und werden je nach +Seite und Layouteinstellung verwendet. Der Inhalt der Definitionen ist frei +wählbar. Für Seitenstile mit Kolumnentitel wird jedoch die Verwendung von +\Macro{headmark}, \Macro{leftmark} oder \Macro{rightmark} innerhalb der +Definitionen empfohlen. Keinesfalls sollte man hier direkt eine +Gliederungsnummer oder einen Überschriftentext als Kolumnentitel +angeben. Aufgrund des asynchronen Seitenaufbaus von \LaTeX{} kann sonst die +falsche Nummer oder der falsche Text im Seitenkopf erscheinen. + +Bei \Macro{defpagestyle} wird der Seitenstil unabhängig davon, ob er bereits +existiert oder nicht, neu definiert. Demgegenüber meldet \Macro{newpagestyle} +einen Fehler, wenn bereits ein Seitenstil gleichen Namens existiert. Im +Unterschied dazu, wird die Definition bei \Macro{providepagestyle} ignoriert, +falls der \PName{Name} bereits für einen Seitenstil verwendet wurde. Umgekehrt +kann mit \Macro{renewpagestyle} nur ein bereits vorhandener Seitenstil +umdefiniert werden. Für einen neuen Namen meldet diese Anweisung dagegen einen +Fehler. + +Intern basiert diese Anweisung auf der Anweisung \Macro{DeclareLayerPageStyle} +des Pakets \Package{scrlayer}. Dabei werden für einen Seitenstil \PName{Name} +die Ebenen \PName{Name}\PValue{.head.above.line} für die Linie über dem Kopf, +\PName{Name}\PValue{.head.odd} für den Kopf von rechten Seiten im +doppelseitigen Layout, \PName{Name}\PValue{.head.even} für den Kopf von linken +Seiten im doppelseitigen Layout, \PName{Name}\PValue{.head.oneside} für den +Kopf von Seiten im einseitigen Layout, \PName{Name}\PValue{.head.below} für +die Linie unter dem Kopf, \PName{Name}\PValue{.foot.above.line} für die Linie +über dem Fuß, \PName{Name}\PValue{.foot.odd} für den Fuß von rechten Seiten im +doppelseitigen Layout, \PName{Name}\PValue{.foot.even} für den Fuß von linken +Seiten im doppelseitigen Layout, \PName{Name}\PValue{.foot.oneside} für den +Fuß von Seiten im einseitigen Layout und \PName{Name}\PValue{.foot.below} für +die Linie unter dem Fuß definiert. Näheres zu Ebenen und Ebenen-Seitenstilen +ist \autoref{cha:scrlayer} ab \autopageref{cha:scrlayer} in +\autoref{part:forExperts} zu entnehmen.% +% +\begin{Example} + Angenommen, Sie wollen den gesamten Kopf des Seitenstil + \Pagestyle{scrheadings} mit einer Farbe hinterlegen. Da Sie die + Einleitung zu diesem Kapitel gelesen haben, wissen Sie, dass + \Pagestyle{scrheadings} letztlich ein Ebenen-Seitenstil ist, der unter + anderem aus den Ebenen \PValue{scrheadings.head.even}, + \PValue{scrheadings.head.odd} und \PValue{scrheadings.head.oneside} + besteht. Sie definieren nun drei weitere Ebenen für deren Hintergrund und + fügen diese am Anfang des Seitenstils ein: +\begin{lstcode} + \documentclass{scrartcl} + \usepackage[automark]{scrlayer-scrpage} + \usepackage{xcolor} + \usepackage{blindtext} + \DeclareLayer[clone=scrheadings.head.oneside, + contents={% + \color{yellow}\rule[-\dp\strutbox]{\layerwidth}{\layerheight}% + }% + ]{scrheadings.head.oneside.background} + \DeclareLayer[clone=scrheadings.head.odd, + contents={% + \color{yellow}\rule[-\dp\strutbox]{\layerwidth}{\layerheight}% + }% + ]{scrheadings.head.odd.background} + \DeclareLayer[clone=scrheadings.head.even, + contents={% + \color{yellow}\rule[-\dp\strutbox]{\layerwidth}{\layerheight}% + }% + ]{scrheadings.head.even.background} + \AddLayersAtBeginOfPageStyle{scrheadings}{% + scrheadings.head.oneside.background,% + scrheadings.head.odd.background,% + scrheadings.head.even.background% + } + \pagestyle{scrheadings} + \begin{document} + \blinddocument + \end{document} +\end{lstcode} + Wie Sie sehen, wurden in dem Beispiel drei Ebenen verwendet, damit Position + und Größe der Hintergrund-Ebenen per Option \Option{clone} einfach jeweils + von der Ebene für den Kopf kopiert werden konnten. Das ist einfacher, als + nur eine Hintergrundebene zu verwenden und für diese die Position + umständlich dynamisch zu bestimmen. + + Der farbige Hintergrund selbst wurde in diesem Beispiel mit einer + \Macro{rule}-Anweisung gesetzt. Für die Größe wurde dabei mit + \Macro{layerwidth} und \Macro{layerheight} die aktuelle Breite und Höhe der + Ebene verwendet. Diese wurde per optionalem Argument um die Höhe der + Unterlängen \Macro{dp}\Macro{strutbox} nach unten verschoben. +\end{Example} +% +Statt wie im Beispiel für die Hintergrundfarbe neue Ebenen hinzuzufügen, hätte +man das Problem übrigens auch mit \Macro{colorbox} und \Macro{chead} lösen +können. Es wird empfohlen, eine entsprechende Lösung als Übung zu +erarbeiten. Ebenso hätte man die Hintergrundebenen auch einzeln und jeweils +unmittelbar vor der entsprechenden Inhaltsebene einfügen können. Auch dies +sei als Übung empfohlen.% +\EndIndex{Cmd}{renewpagestyle}% +\EndIndex{Cmd}{providepagestyle}% +\EndIndex{Cmd}{newpagestyle}% +\EndIndex{Cmd}{defpagestyle}% + +\begin{Declaration} + \KOption{hmode}\PValue{Ein-Aus-Wert} +\end{Declaration} +\BeginIndex{Option}{hmode}% +Bei \Package{scrpage2} wurden die Köpfe und Füße der Seitenstile noch +grundsätzlich im horizontalen Modus ausgegeben. Bei \Package{scrlayer-scrpage} +wird hingegen in der Voreinstellung erst durch entsprechende Ausgaben selbst +in den horizontalen Modus geschaltet. Aktiviert man jedoch Option +\Option{hmode} verhält sich \Package{scrlayer-scrpage} auch in dieser Hinsicht +kompatibel mit \Package{scrpage2} und schaltet bereits vor der Ausgabe in den +horizontalen Modus. Dies kann Auswirkungen sowohl auf die Verarbeitung von +Leerzeichen am Anfang der Ausgabe als auch auf die vertikale Ausrichtung +haben. + +Die Option versteht die Standardwerte für einfache Schalter, die in +\autoref{tab:truefalseswitch} auf \autopageref{tab:truefalseswitch} angegeben +sind. In der Voreinstellung ist der Schalter deaktiviert.% +\EndIndex{Option}{hmode}% +% +\EndIndex{Package}{scrlayer-scrpage}% + +%%% Local Variables: +%%% mode: latex +%%% mode: flyspell +%%% coding: iso-latin-1 +%%% ispell-local-dictionary: "de_DE" +%%% TeX-master: "../guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-scrpage.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-scrpage.tex new file mode 100644 index 00000000000..9b556d5cf21 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer-scrpage.tex @@ -0,0 +1,1205 @@ +% ====================================================================== +% scrlayer-scrpage.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrlayer-scrpage.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% +% Chapter about scrlayer-scrpage of the KOMA-Script guide +% +% ---------------------------------------------------------------------- +% +% Kapitel über scrlayer-scrpage in der KOMA-Script-Anleitung +% +% ============================================================================ + +\KOMAProvidesFile{scrlayer-scrpage.tex}% + [$Date: 2013-12-18 07:42:31 +0100 (Mi, 18. Dez 2013) $ + KOMA-Script guide (chapter:scrlayer-scrpage)] + +\chapter[{Kopf- und Fußzeilen mit \Package{scrlayer-scrpage}}] + {Kopf-\ChangedAt{v3.12}{\Package{scrlayer-scrpage}} und Fußzeilen mit + \Package{scrlayer-scrpage}} +\labelbase{scrlayer-scrpage} +% +\BeginIndex{Package}{scrlayer-scrpage}% +\begin{Explain} + Bis \KOMAScript~3.11b war das Paket + \Package{scrpage2}\IndexPackage{scrpage2} das Mittel der Wahl, wenn es darum + ging, den Kopf und den Fuß der Seite über das hinaus zu verändern, was die + \KOMAScript-Klassen mit den Seitenstilen \Pagestyle{headings}, + \Pagestyle{myheadings}, \Pagestyle{plain} und \Pagestyle{empty} boten. Bis + 2001 gab es dafür auch noch das Paket + \Package{scrpage}\IndexPackage{scrpage}, das aber seit 2013 nicht mehr mit + \KOMAScript{} zusammen verteilt wird. + + Seit 2013 ist das Paket \Package{scrlayer}\IndexPackage{scrlayer} als neuer, + grundlegender Baustein in \KOMAScript{} enthalten. Dieses Paket bietet ein + Ebenenmodell, sowie ein darauf basierendes Seitenstil-Modell an. Für die + direkte Verwendung durch den durchschnittlichen Anwender ist die + Schnittstelle dieses Pakets jedoch fast schon zu flexibel und damit + einhergehend auch nicht leicht zu durchschauen. Näheres zu dieser + Schnittstelle ist \autoref{cha:scrlayer} in \autoref{part:forExperts} zu + entnehmen. Einige wenige Möglichkeiten, die eigentlich zu \Package{scrlayer} + gehören und deshalb in jenem Kapitel noch einmal aufgegriffen werden, sind + jedoch auch in diesem Kapitel dokumentiert, da sie für die Verwendung von + \Package{scrlayer-scrpage} ebenfalls benötigt werden. + + Viele Anwender sind bereits mit den Anweisungen aus \Package{scrpage2} + vertraut. Deshalb wurde mit \Package{scrlayer-scrpage} ein Paket geschaffen, + das basierend auf \Package{scrlayer} eine mit \Package{scrpage2} weitgehend + kompatible und gleichzeitig stark erweiterte Anwender-Schnittstelle + bereitstellt. Wer bereits mit \Package{scrpage2} vertraut ist und dort keine + unsauberen Rückgriffe auf interne Anweisungen getätigt hat, kann daher in + der Regel \Package{scrpage2} recht einfach durch \Package{scrlayer-scrpage} + ersetzen. Das gilt mit der genannten Einschränkung auch für die meisten + Beispiele in \LaTeX-Büchern oder im Internet. + +\iffree{}{Mit Erscheinen dieses Buches wird \Package{scrlayer-scrpage} für + \KOMAScript{} das empfohlene Mittel der Wahl, wenn es um Änderungen der + vordefinierten Seitenstile geht. Die Verwendung des als veraltet + anzusehenden Pakets \Package{scrpage2}\IndexPackage[indexmain]{scrpage2}% + \important{\Package{scrpage2}} wird hingegen nicht mehr empfohlen. Daher ist + die Anleitung zu diesem veralteten Paket auch nicht mehr Bestandteil dieses + Buches. Wenn Sie auf ältere Dokumente stoßen, die noch \Package{scrpage2} + verwenden, sollten Sie eine Umstellung auf \Package{scrlayer-scrpage} + erwägen. Für alle Fälle finden Sie in diesem Kapitel auch einige Hinweise + zur Verwendung von \Package{scrpage2}.} +\end{Explain} + +Neben \Package{scrlayer-scrpage}\iffree{oder \Package{scrpage2}}{} wäre auch +\Package{fancyhdr} (siehe \cite{package:fancyhdr}) grundsätzlich geeignet, um +Kopf und Fuß der Seiten zu konfigurieren. Allerdings unterstützt dieses Paket +diverse Möglichkeiten von \KOMAScript{}, angefangen von Änderungen der Schrift +über das Elemente-Modell (siehe \Macro{setkomafont}, \Macro{addtokomafont} und +\Macro{usekomafont} in \autoref{sec:maincls.textmarkup}, ab +\autopageref{desc:maincls.cmd.setkomafont}) bis hin zum konfigurierbaren +Format der Gliederungsnummern in Kolumnentiteln (siehe Option \Option{numbers} +und beispielsweise Anweisung \Macro{chaptermarkformat} in +\autoref{sec:maincls.structure}, \autopageref{desc:maincls.option.numbers} und +\autopageref{desc:maincls.cmd.chaptermarkformat}), nicht. Daher wird für die +Verwendung mit den \KOMAScript-Klassen das neue Paket +\Package{scrlayer-scrpage} empfohlen. \iffree{Bei Problemen damit kann auch + auf \Package{scrpage2} zurückgegriffen werden.}{\ignorespaces} Natürlich +kann \Package{scrlayer-scrpage} auch mit anderen Klassen, beispielsweise den +Standardklassen verwendet werden. + +Über die in diesem Kapitel erklärten Möglichkeiten hinaus bietet das Paket +\Package{scrlayer-scrpage} weiteres, das jedoch nur für einige, wenige +Anwender von Interesse sein dürfte und daher in +\autoref{cha:scrlayer-scrpage-experts} von \autoref{part:forExperts} ab +\autopageref{cha:scrlayer-scrpage-experts} ausgeführt wird. Dennoch: Falls die +hier in \autoref{part:forAuthors} dokumentierten Möglichkeiten für Sie nicht +ausreichen, sei Ihnen auch jenes Kapitel nahe gelegt. + +\LoadCommon{0} % \section{Frühe oder späte Optionenwahl} + +\LoadCommon{20} % \section{Höhe von Kopf und Fuß} + +\LoadCommon{5} % \section{Textauszeichnung} + +\section{Verwendung vordefinierter Seitenstile} +\label{sec:scrlayer-scrpage.predefined.pagestyles} + +Die einfachste Möglichkeit, mit \Package{scrlayer-scrpage} zu seinem +Wunschdesign für Kopf und Fuß der Seite zu gelangen, ist die Verwendung eines +vorgefertigten Seitenstils. +% +\iffalse % Umbruchoptimierung + In diesem Abschnitt werden die vom Paket \Package{scrlayer-scrpage} bereits + beim Laden definierten Seitenstile vorgestellt. Darüber hinaus werden + diejenigen Befehle erklärt, mit denen grundlegende Einstellungen bei diesen + Seitenstilen vorgenommen werden können. Weitere Optionen, Befehle und + Hintergründe sind in den nachfolgenden Abschnitten, aber auch in + \autoref{sec:scrlayer-scrpage-experts.pagestyle.pairs} in + \autoref{part:forExperts} zu finden.% +\fi + +\begin{Declaration} + \Pagestyle{scrheadings}\\ + \Pagestyle{plain.scrheadings} +\end{Declaration} +\BeginIndex{Pagestyle}{scrheadings}% +\BeginIndex{Pagestyle}{plain.scrheadings}% +Das Paket \Package{scrlayer-scrpage} stellt zwei Seitenstile zur Verfügung, +die nach eigenen Wünschen umgestaltet werden können. Als erstes wäre der +Seitenstil \Pagestyle{scrheadings}\important{\Pagestyle{scrheadings}} zu +nennen. Dieser ist als Seitenstil mit Kolumnentitel vorgesehen. Er ähnelt in +der Voreinstellung dem Seitenstil +\Pagestyle{headings}\IndexPagestyle{headings} der Standard- oder der +\KOMAScript-Klassen. Was genau im Kopf und Fuß ausgegeben wird, ist über die +nachfolgend beschriebenen Befehle und Optionen einstellbar. + +Als zweites ist der Seitenstil +\Pagestyle{plain.scrheadings}\important{\Pagestyle{plain.scrheadings}} zu +nennen. Dieser ist als Seitenstil ohne Kolumnentitel vorgesehen. Er ähnelt in +der Voreinstellung dem Seitenstil \Pagestyle{plain}\IndexPagestyle{plain} der +Standard- oder der \KOMAScript-Klassen. Was genau im Kopf und Fuß ausgegeben +wird, ist auch hier über die nachfolgend beschriebenen Befehle und Optionen +einstellbar. + +Natürlich kann auch \Pagestyle{scrheadings} als Seitenstil ohne Kolumnentitel +und \Pagestyle{plain.scrheadings} als Seitenstil mit Kolumnentitel +konfiguriert werden. Es ist jedoch zweckmäßig, sich an die vorgenannte +Konvention zu halten. Die beiden Seitenstile beeinflussen sich nämlich in +gewisser Weise gegenseitig. Sobald einer der Seitenstile einmal ausgewählt +wurde, ist \Pagestyle{scrheadings} auch unter dem Namen +\Pagestyle{headings}\important{\Pagestyle{headings}}\IndexPagestyle{headings} +und der Seitenstil \Pagestyle{plain.scrheadings} auch unter dem Namen +\Pagestyle{plain}\important{\Pagestyle{plain}}\IndexPagestyle{plain} +aktivierbar. Das hat den Vorteil, dass bei Klassen, die automatisch zwischen +\Pagestyle{headings} und \Pagestyle{plain} umschalten, durch einmalige Auswahl +von \Pagestyle{scrheadings} oder \Pagestyle{plain.scrheadings} nun zwischen +diesen beiden Stilen umgeschaltet wird. Direkte Anpassungen der entsprechenden +Klassen sind nicht erforderlich. Die beiden Seitenstile stellen also quasi ein +Paar dar, das als Ersatz für \Pagestyle{headings} und \Pagestyle{plain} +verwendet werden kann. Sollten weitere solche Paare benötigt werden, so sei +auf \autoref{sec:scrlayer-scrpage-experts.pagestyle.pairs} in +\autoref{part:forExperts} verwiesen. + +Für\important{\Package{scrpage2}} frühere Benutzer des alten +\KOMAScript-Pakets \Package{scrpage2} sei ausdrücklich noch darauf +hingewiesen, dass \Pagestyle{plain.scrheadings} aus Gründen der Kompatibilität +mit jenem Paket auch unter dem Alias-Namen +\Pagestyle{scrplain}\IndexPagestyle[indexmain]{scrplain} angesprochen werden +kann.\iffree{}{ Bei Verwendung von \Package{scrpage2}\IndexPackage{scrpage2} + existiert hingegen \Pagestyle{plain.scrheadings} nicht. Dessen Funktion wird + dann vollständig vom Seitenstil \Pagestyle{scrplain} übernommen.} +\EndIndex{Pagestyle}{plain.scrheadings}% +\EndIndex{Pagestyle}{scrheadings}% + +\begin{Declaration} + \Macro{lehead}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{cehead}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{rehead}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{lohead}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{cohead}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{rohead}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings} +\end{Declaration} +\BeginIndex{Cmd}{lehead}% +\BeginIndex{Cmd}{cehead}% +\BeginIndex{Cmd}{rehead}% +\BeginIndex{Cmd}{lohead}% +\BeginIndex{Cmd}{cohead}% +\BeginIndex{Cmd}{rohead}% +Was in den Kopf der Seitenstile \Pagestyle{plain.scrheadings}\iffree{}{ -- + beim veralteten Paket + \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}} + entsprechend in den Kopf von \Pagestyle{scrplain} --} und +\Pagestyle{scrheadings} geschrieben wird, ist mit Hilfe dieser Befehle +einstellbar. Dabei setzt das optionale Argument jeweils den Inhalt eines +Elements in \Pagestyle{plain.scrheadings}\iffree{}{ beziehungsweise + \Pagestyle{scrplain}}, während das obligatorische Argument jeweils einen +Inhalt in \Pagestyle{scrheadings} setzt. + +Die Inhalte für gerade, also linke Seiten\textnote{linke Seite} werden mit den +Befehlen \Macro{lehead}, \Macro{cehead} und \Macro{rehead} gesetzt. Das +»\texttt{e}« an zweiter Stelle des Befehlsnamens steht dabei für »\emph{even}« +(engl. für »gerade«). + +Die Inhalte für ungerade, also rechte Seiten\textnote{rechte Seite} werden mit +den Befehlen \Macro{lohead}, \Macro{cohead} und \Macro{rohead} gesetzt. Das +»\texttt{o}« an zweiter Stelle des Befehlsnamens steht dabei für »\emph{odd}« +(engl. für »ungerade«). + +Es\textnote{Achtung!} sei an dieser Stelle noch einmal darauf hingewiesen, +dass im einseitigen Satz nur rechte Seiten existieren und diese von \LaTeX{} +unabhängig von ihrer Nummer als ungerade Seiten bezeichnet werden. + +Jeder Kopf eines Seitenstils besitzt ein linksbündiges\textnote{linksbündig} +Element, das mit \Macro{lehead} respektive \Macro{lohead} gesetzt werden +kann. Das »\texttt{l}« am Anfang des Befehlsnamens steht hier für »\emph{left + aligned}« (engl. für »linksbündig«). + +Ebenso besitzt jeder Kopf eines Seitenstils ein zentriert\textnote{zentriert} +gesetztes Element, das mit \Macro{cehead} respektive \Macro{cohead} gesetzt +werden kann. Das »\texttt{c}« am Anfang des Befehlsnamens steht hier für +»\emph{centred}« (engl. für »zentriert«). + +Entsprechend besitzt jeder Kopf eines Seitenstil auch ein +rechtsbündiges\textnote{rechtsbündig} Element, das mit \Macro{rehead} +respektive \Macro{rohead} gesetzt werden kann. Das »\texttt{r}« am Anfang des +Befehlsnamens steht hier für »\emph{right aligned}« (engl. für +»rechtsbündig«). + +\BeginIndex{FontElement}{pagehead}% +\BeginIndex{FontElement}{pageheadfoot}% +Diese Elemente besitzen jedoch nicht jedes für sich eine Schriftzuordnung mit +Hilfe der Befehle \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:maincls.textmarkup}, \autopageref{desc:maincls.cmd.setkomafont}), +sondern alle zusammen über das Element +\FontElement{pagehead}\important{\FontElement{pagehead}}. Vor diesem wird +außerdem noch das Element +\FontElement{pageheadfoot}\important{\FontElement{pageheadfoot}} +angewandt. Die Voreinstellungen für diese beiden Elemente sind +\autoref{tab:scrlayer-scrpage.fontelements}, +\autopageref{tab:scrlayer-scrpage.fontelements} zu entnehmen.% +\EndIndex{FontElement}{pageheadfoot}% +\EndIndex{FontElement}{pagehead}% + +In \autoref{fig:scrlayer-scrpage.head} ist die Bedeutung der einzelnen Befehle +für den Kopf der Seiten im doppelseitigen Modus noch einmal skizziert.% +% +\begin{figure}[tp] + \centering + \begin{picture}(\textwidth,30mm)(0,-10mm) + \thinlines + \small\ttfamily + % linke Seite + \put(0,20mm){\line(1,0){.49\textwidth}}% + \put(0,0){\line(0,1){20mm}}% + \multiput(0,0)(0,-1mm){10}{\line(0,-1){.5mm}}% + \put(.49\textwidth,5mm){\line(0,1){15mm}}% + \put(.05\textwidth,10mm){% + \iffree{\color{red}}{}% + \put(-.5em,0){\line(1,0){4em}}% + \multiput(3.5em,0)(.25em,0){5}{\line(1,0){.125em}}% + \put(-.5em,0){\line(0,1){\baselineskip}}% + \put(-.5em,\baselineskip){\line(1,0){4em}}% + \multiput(3.5em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \makebox(4em,5mm)[l]{\Macro{lehead}}% + }% + \put(.465\textwidth,10mm){% + \iffree{\color{blue}}{}% + \put(-4em,0){\line(1,0){4em}}% + \multiput(-4em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(0,0){\line(0,1){\baselineskip}}% + \put(-4em,\baselineskip){\line(1,0){4em}}% + \multiput(-4em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-4.5em,0){\makebox(4em,5mm)[r]{\Macro{rehead}}}% + }% + \put(.2525\textwidth,10mm){% + \iffree{\color{green}}{}% + \put(-2em,0){\line(1,0){4em}}% + \multiput(2em,0)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,\baselineskip){\line(1,0){4em}}% + \multiput(2em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,0){\makebox(4em,5mm)[c]{\Macro{cehead}}}% + }% + % rechte Seite + \put(.51\textwidth,20mm){\line(1,0){.49\textwidth}}% + \put(.51\textwidth,5mm){\line(0,1){15mm}}% + \put(\textwidth,0){\line(0,1){20mm}}% + \multiput(\textwidth,0)(0,-1mm){10}{\line(0,-1){.5mm}}% + \put(.5325\textwidth,10mm){% + \iffree{\color{blue}}{}% + \put(0,0){\line(1,0){4em}}% + \multiput(4em,0)(.25em,0){5}{\line(1,0){.125em}}% + \put(0,0){\line(0,1){\baselineskip}}% + \put(0em,\baselineskip){\line(1,0){4em}}% + \multiput(4em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \put(.5em,0){\makebox(4em,5mm)[l]{\Macro{lohead}}}% + }% + \put(.965\textwidth,10mm){% + \iffree{\color{red}}{}% + \put(-4em,0){\line(1,0){4em}}% + \multiput(-4em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(0,0){\line(0,1){\baselineskip}}% + \put(-4em,\baselineskip){\line(1,0){4em}}% + \multiput(-4em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-4.5em,0){\makebox(4em,5mm)[r]{\Macro{rohead}}}% + }% + \put(.75\textwidth,10mm){% + \iffree{\color{green}}{}% + \put(-2em,0){\line(1,0){4em}}% + \multiput(2em,0)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,\baselineskip){\line(1,0){4em}}% + \multiput(2em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,0){\makebox(4em,5mm)[c]{\Macro{cohead}}}% + }% + % Befehle für beide Seiten + \iffree{\color{blue}}{}% + \put(.5\textwidth,0){\makebox(0,\baselineskip)[c]{\Macro{ihead}}}% + \iffree{\color{green}}{}% + \put(.5\textwidth,-5mm){\makebox(0,\baselineskip)[c]{\Macro{chead}}} + \iffree{\color{red}}{}% + \put(.5\textwidth,-10mm){\makebox(0,\baselineskip)[c]{\Macro{ohead}}} + \put(\dimexpr.5\textwidth-2em,.5\baselineskip){% + \iffree{\color{blue}}{}% + \put(0,0){\line(-1,0){1.5em}}% + \put(-1.5em,0){\vector(0,1){5mm}}% + \iffree{\color{green}}{}% + \put(0,-1.25\baselineskip){\line(-1,0){\dimexpr .25\textwidth-2em\relax}}% + \put(-\dimexpr + .25\textwidth-2em\relax,-1.25\baselineskip){\vector(0,1){\dimexpr + 5mm+1.25\baselineskip\relax}} + \iffree{\color{red}}{}% + \put(0,-2.5\baselineskip){\line(-1,0){\dimexpr .45\textwidth-4em\relax}}% + \put(-\dimexpr + .45\textwidth-4em\relax,-2.5\baselineskip){\vector(0,1){\dimexpr + 5mm+2.5\baselineskip\relax}} + }% + \put(\dimexpr.5\textwidth+2em,.5\baselineskip){% + \iffree{\color{blue}}{}% + \put(0,0){\line(1,0){1.5em}}% + \put(1.5em,0){\vector(0,1){5mm}}% + \iffree{\color{green}}{}% + \put(0,-1.25\baselineskip){\line(1,0){\dimexpr .25\textwidth-2em\relax}} + \put(\dimexpr + .25\textwidth-2em\relax,-1.25\baselineskip){\vector(0,1){\dimexpr + 5mm+1.25\baselineskip\relax}} + \iffree{\color{red}}{}% + \put(0,-2.5\baselineskip){\line(1,0){\dimexpr .45\textwidth-4em\relax}} + \put(\dimexpr + .45\textwidth-4em\relax,-2.5\baselineskip){\vector(0,1){\dimexpr + 5mm+2.5\baselineskip\relax}} + }% + \end{picture} + \caption[Befehle zum Setzen des Seitenkopfes]% + {Die Bedeutung der Befehle zum Setzen der Inhalte des Kopfs eines + Seitenstils für die Seitenköpfe einer schematischen Doppelseite} + \label{fig:scrlayer-scrpage.head} +\end{figure} +% +\begin{Example} + Angenommen, Sie verfassen einen kurzen Artikel und wollen, dass im Kopf der + Seiten links der Name des Autors und rechts der Titel des Artikels + steht. Sie schreiben daher beispielsweise: +\begin{lstcode} + \documentclass{scrartcl} + \usepackage{scrlayer-scrpage} + \lohead{Peter Musterheinzel} + \rohead{Seitenstile mit \KOMAScript} + \pagestyle{scrheadings} + \begin{document} + \title{Seitenstile mit \KOMAScript} + \author{Peter Musterheinzel} + \maketitle + \end{document} +\end{lstcode} + Doch, was ist das? Auf der ersten Seite erscheint nur eine Seitenzahl im + Fuß, der Kopf hingegen bleibt leer! + + Die Erklärung dafür ist einfach: Die Klasse \Class{scrartcl} schaltet wie + auch die Standardklasse \Class{article} für die Seite mit dem Titelkopf in + der Voreinstellung auf den Seitenstil \Pagestyle{plain}. Nach der Anweisung + \Macro{pagestyle}\PParameter{scrheadings} in der Präambel unseres Beispiels + führt dies tatsächlich zur Verwendung des Seitenstils + \Pagestyle{plain.scrheadings} für die Seite mit dem Titelkopf. Dieser + Seitenstil ist bei Verwendung einer \KOMAScript-Klasse mit leerem Kopf und + Seitenzahl im Fuß vorkonfiguriert. Da im Beispiel das optionale Argument von + \Macro{lohead} und \Macro{rohead} gar nicht verwendet wird, bleibt der + Seitenstil \Pagestyle{plain.scrheadings} unverändert. Das Ergebnis ist für + die erste Seite also tatsächlich korrekt. + + Fügen Sie jetzt im Beispiel nach \Macro{maketitle} so viel Text ein, dass + eine zweite Seite ausgegeben wird. Sie können dazu auch einfach + \Macro{usepackage}\PParameter{lipsum}\IndexPackage{lipsum} in der + Dokumentpräambel und \Macro{lipsum}\IndexCmd{lipsum} nach \Macro{maketitle} + ergänzen. Wie Sie sehen werden, enthält der Kopf der zweiten Seite nun, + genau wie gewünscht, den Namen des Autors und den Titel des Dokuments. + + Zum Vergleich sollten Sie zusätzlich das optionale Argument der Anweisungen + \Macro{lohead} und \Macro{rohead} mit einem Inhalt versehen. Ändern Sie das + Beispiel dazu wie folgt ab: +\begin{lstcode} + \documentclass{scrartcl} + \usepackage{scrlayer-scrpage} + \lohead[Peter Musterheinzel] + {Peter Musterheinzel} + \rohead[Seitenstile mit \KOMAScript] + {Seitenstile mit \KOMAScript} + \pagestyle{scrheadings} + \usepackage{lipsum} + \begin{document} + \title{Seitenstile mit \KOMAScript} + \author{Peter Musterheinzel} + \maketitle + \lipsum + \end{document} +\end{lstcode} + Jetzt haben Sie den Kopf auch auf der ersten Seite direkt über dem Titelkopf + selbst. Das kommt daher, dass Sie mit den beiden optionalen Argumenten den + Seitenstil \Pagestyle{plain.scrheadings} nun ebenfalls entsprechend + konfiguriert haben. Wie Sie am Ergebnis vermutlich auch erkennen, ist es + jedoch besser, diesen Seitenstil unverändert zu lassen, da der Kolumnentitel + über dem Titelkopf doch eher störend ist. + + Alternativ zur Konfigurierung von \Pagestyle{plain.scrheadings} hätte man + bei Verwendung einer \KOMAScript-Klasse übrigens auch den Seitenstil für + Seiten mit Titelkopf ändern können. Siehe dazu + \Macro{titlepagestyle}\important{\Macro{titlepagestyle}}% + \IndexCmd{titlepagestyle} in \autoref{sec:maincls.pagestyle}, + \autopageref{desc:maincls.cmd.titlepagestyle}. +\end{Example} +% +\iffree{}{Der Code aus dem Beispiel funktionieren übrigens unverändert auch + mit dem veralteten Paket + \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}}.}% + +Erlauben Sie mir einen wichtigen Hinweis:\textnote{Achtung!} Sie sollten +niemals die Überschrift oder die Nummer einer Gliederungsebene mit Hilfe einer +dieser Anweisungen als Kolumnentitel in den Kopf der Seite setzen. Aufgrund +der Asynchronizität von Seitenaufbau und Seitenausgabe kann es sonst leicht +geschehen, dass die falsche Nummer oder die falsche Überschrift im +Kolumnentitel ausgegeben wird. Stattdessen ist der Mark-Mechanismus idealer +Weise in Verbindung mit den Automatismen, die im nächsten Abschnitt erklärt +werden, zu verwenden.% +\EndIndex{Cmd}{rohead}% +\EndIndex{Cmd}{cohead}% +\EndIndex{Cmd}{lohead}% +\EndIndex{Cmd}{rehead}% +\EndIndex{Cmd}{cehead}% +\EndIndex{Cmd}{lehead}% + +\begin{Declaration} + \Macro{lefoot}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{cefoot}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{refoot}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{lofoot}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{cofoot}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{rofoot}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings} +\end{Declaration} +\BeginIndex{Cmd}{lefoot}% +\BeginIndex{Cmd}{cefoot}% +\BeginIndex{Cmd}{refoot}% +\BeginIndex{Cmd}{lofoot}% +\BeginIndex{Cmd}{cofoot}% +\BeginIndex{Cmd}{rofoot}% +Was in den Fuß der Seitenstile \Pagestyle{plain.scrheadings}\iffree{}{ -- + beim veralteten Paket + \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}} + entsprechend in den Kopf von \Pagestyle{scrplain} --} und +\Pagestyle{scrheadings} geschrieben wird, ist mit Hilfe dieser Befehle +einstellbar. Dabei setzt das optionale Argument jeweils den Inhalt eines +Elements in \Pagestyle{plain.scrheadings}, während das obligatorische Argument +jeweils einen Inhalt in \Pagestyle{scrheadings} setzt. + +Die Inhalte für gerade, also linke Seiten\textnote{linke Seite} werden mit den +Befehlen \Macro{lefoot}, \Macro{cefoot} und \Macro{refoot} gesetzt. Das +»\texttt{e}« an zweiter Stelle des Befehlsnamens steht dabei für »\emph{even}« +(engl. für »gerade«). + +Die Inhalte für ungerade, also rechte Seiten\textnote{rechte Seite} werden mit +den Befehlen \Macro{lofoot}, \Macro{cofoot} und \Macro{rofoot} gesetzt. Das +»\texttt{o}« an zweiter Stelle des Befehlsnamens steht dabei für »\emph{odd}« +(engl. für »ungerade«). + +Es\textnote{Achtung!} sei an dieser Stelle noch einmal darauf hingewiesen, +dass im einseitigen Satz nur rechte Seiten existieren und diese von \LaTeX{} +unabhängig von ihrer Nummer als ungerade Seiten gezeichnet werden. + +Jeder Fuß eines Seitenstils besitzt ein linksbündiges\textnote{linksbündig} +Element, das mit \Macro{lefoot} respektive \Macro{lofoot} gesetzt werden +kann. Das »\texttt{l}« am Anfang des Befehlsnamens steht hier für »\emph{left + aligned}« (engl. für »linksbündig«). + +Ebenso besitzt jeder Fuß eines Seitenstils ein zentriert\textnote{zentriert} +gesetztes Element, das mit \Macro{cefoot} respektive \Macro{cofoot} gesetzt +werden kann. Das »\texttt{c}« am Anfang des Befehlsnamens steht hier für +»\emph{centered}« (engl. für »zentriert«). + +Entsprechend besitzt jeder Fuß eines Seitenstil auch ein +rechtsbündiges\textnote{rechtsbündig} Element, das mit \Macro{refoot} +respektive \Macro{rofoot} gesetzt werden kann. Das »\texttt{r}« am Anfang des +Befehlsnamens steht hier für »\emph{right aligned}« (engl. für +»rechtsbündig«). + +\BeginIndex{FontElement}{pagefoot}% +\BeginIndex{FontElement}{pageheadfoot}% +Diese Elemente besitzen jedoch nicht jedes für sich eine Schriftzuordnung mit +Hilfe der Befehle \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:maincls.textmarkup}, \autopageref{desc:maincls.cmd.setkomafont}), +sondern alle zusammen über das Element \FontElement{pagefoot}. Vor diesem wird +außerdem noch das Element \FontElement{pageheadfoot} angewandt. Die +Voreinstellungen für diese beiden Elemente sind +\autoref{tab:scrlayer-scrpage.fontelements}, +\autopageref{tab:scrlayer-scrpage.fontelements} zu entnehmen.% +\EndIndex{FontElement}{pageheadfoot}% +\EndIndex{FontElement}{pagefoot}% + +In \autoref{fig:scrlayer-scrpage.foot} ist die Bedeutung der einzelnen Befehle +für den Fuß der Seiten im doppelseitigen Modus noch einmal skizziert. +% +\begin{figure}[bp] + \centering + \begin{picture}(\textwidth,30mm) + \thinlines + \small\ttfamily + % linke Seite + \put(0,0){\line(1,0){.49\textwidth}}% + \put(0,0){\line(0,1){20mm}}% + \multiput(0,20mm)(0,1mm){10}{\line(0,1){.5mm}}% + \put(.49\textwidth,0){\line(0,1){15mm}}% + \put(.05\textwidth,5mm){% + \iffree{\color{red}}{}% + \put(-.5em,0){\line(1,0){4em}}% + \multiput(3.5em,0)(.25em,0){5}{\line(1,0){.125em}}% + \put(-.5em,0){\line(0,1){\baselineskip}}% + \put(-.5em,\baselineskip){\line(1,0){4em}}% + \multiput(3.5em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \makebox(4em,5mm)[l]{\Macro{lefoot}}% + }% + \put(.465\textwidth,5mm){% + \iffree{\color{blue}}{}% + \put(-4em,0){\line(1,0){4em}}% + \multiput(-4em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(0,0){\line(0,1){\baselineskip}}% + \put(-4em,\baselineskip){\line(1,0){4em}}% + \multiput(-4em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-4.5em,0){\makebox(4em,5mm)[r]{\Macro{refoot}}}% + }% + \put(.2525\textwidth,5mm){% + \iffree{\color{green}}{}% + \put(-2em,0){\line(1,0){4em}}% + \multiput(2em,0)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,\baselineskip){\line(1,0){4em}}% + \multiput(2em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,0){\makebox(4em,5mm)[c]{\Macro{cefoot}}}% + }% + % rechte Seite + \put(.51\textwidth,0){\line(1,0){.49\textwidth}}% + \put(.51\textwidth,0){\line(0,1){15mm}}% + \put(\textwidth,0){\line(0,1){20mm}}% + \multiput(\textwidth,20mm)(0,1mm){10}{\line(0,1){.5mm}}% + \put(.5325\textwidth,5mm){% + \iffree{\color{blue}}{}% + \put(0,0){\line(1,0){4em}}% + \multiput(4em,0)(.25em,0){5}{\line(1,0){.125em}}% + \put(0,0){\line(0,1){\baselineskip}}% + \put(0em,\baselineskip){\line(1,0){4em}}% + \multiput(4em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \put(.5em,0){\makebox(4em,5mm)[l]{\Macro{lofoot}}}% + }% + \put(.965\textwidth,5mm){% + \iffree{\color{red}}{}% + \put(-4em,0){\line(1,0){4em}}% + \multiput(-4em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(0,0){\line(0,1){\baselineskip}}% + \put(-4em,\baselineskip){\line(1,0){4em}}% + \multiput(-4em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-4.5em,0){\makebox(4em,5mm)[r]{\Macro{rofoot}}}% + }% + \put(.75\textwidth,5mm){% + \iffree{\color{green}}{}% + \put(-2em,0){\line(1,0){4em}}% + \multiput(2em,0)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,0)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,\baselineskip){\line(1,0){4em}}% + \multiput(2em,\baselineskip)(.25em,0){5}{\line(1,0){.125em}}% + \multiput(-2em,\baselineskip)(-.25em,0){5}{\line(1,0){.125em}}% + \put(-2em,0){\makebox(4em,5mm)[c]{\Macro{cofoot}}}% + }% + % Befehle für beide Seiten + \iffree{\color{blue}}{}% + \put(.5\textwidth,15mm){\makebox(0,\baselineskip)[c]{\Macro{ifoot}}}% + \iffree{\color{green}}{}% + \put(.5\textwidth,20mm){\makebox(0,\baselineskip)[c]{\Macro{cfoot}}} + \iffree{\color{red}}{}% + \put(.5\textwidth,25mm){\makebox(0,\baselineskip)[c]{\Macro{ofoot}}} + \put(\dimexpr.5\textwidth-2em,.5\baselineskip){% + \iffree{\color{blue}}{}% + \put(0,15mm){\line(-1,0){1.5em}}% + \put(-1.5em,15mm){\vector(0,-1){5mm}}% + \iffree{\color{green}}{}% + \put(0,20mm){\line(-1,0){\dimexpr .25\textwidth-2em\relax}}% + \put(-\dimexpr .25\textwidth-2em\relax,20mm){\vector(0,-1){10mm}}% + \iffree{\color{red}}{}% + \put(0,25mm){\line(-1,0){\dimexpr .45\textwidth-4em\relax}}% + \put(-\dimexpr .45\textwidth-4em\relax,25mm){\vector(0,-1){15mm}}% + }% + \put(\dimexpr.5\textwidth+2em,.5\baselineskip){% + \iffree{\color{blue}}{}% + \put(0,15mm){\line(1,0){1.5em}}% + \put(1.5em,15mm){\vector(0,-1){5mm}}% + \iffree{\color{green}}{}% + \put(0,20mm){\line(1,0){\dimexpr .25\textwidth-2em\relax}}% + \put(\dimexpr .25\textwidth-2em\relax,20mm){\vector(0,-1){10mm}}% + \iffree{\color{red}}{}% + \put(0,25mm){\line(1,0){\dimexpr .45\textwidth-4em\relax}}% + \put(\dimexpr .45\textwidth-4em\relax,25mm){\vector(0,-1){15mm}}% + }% + \end{picture} + \caption[Befehle zum Setzen des Seitenfußes]% + {Die Bedeutung der Befehle zum Setzen der Inhalte des Fußes eines + Seitenstils für die Seitenfüße einer schematischen Doppelseite.} + \label{fig:scrlayer-scrpage.foot} +\end{figure} +% +\begin{Example} + Kommen wir zu dem Beispiel des kurzen Artikels zurück. Angenommen Sie wollen + nun links im Fuß zusätzlich den Verlag angegeben haben. Daher ergänzen Sie + das Beispiel zu +\begin{lstcode} + \documentclass{scrartcl} + \usepackage{scrlayer-scrpage} + \lohead{Peter Musterheinzel} + \rohead{Seitenstile mit \KOMAScript} + \lofoot{Verlag Naseblau, Irgendwo} + \pagestyle{scrheadings} + \usepackage{lipsum} + \begin{document} + \title{Seitenstile mit \KOMAScript} + \author{Peter Musterheinzel} + \maketitle + \lipsum + \end{document} +\end{lstcode} + Der Verlag wird Ihnen nun aber wiederum nicht auf der Seite mit dem + Titelkopf ausgegeben. Die Begründung ist dieselbe wie beim Beispiel zu + \Macro{lohead}. Ebenso ist die Lösung, um den Verlag auch auf diese Seite + zu bekommen, entsprechend: +\begin{lstcode} + \lofoot[Verlag Naseblau, Irgendwo] + {Verlag Naseblau, Irgendwo} +\end{lstcode} + Nun entscheiden Sie noch, dass + statt\textnote{Fontänderung}\important{\FontElement{pageheadfoot}}% + \IndexFontElement{pageheadfoot} der schrägen Schrift in Kopf und Fuß eine + aufrechte, aber kleinere Schrift verwendet werden soll% + % Umbruchoptimierung: + \iffree{}{. Dies erreichen + Sie, indem Sie in der Dokumentpräambel die folgende Codezeile ergänzen}% + : +\begin{lstcode} + \setkomafont{pageheadfoot}{\small} +\end{lstcode} + + Darüber hinaus, soll der + Kopf\important{\FontElement{pagehad}}\IndexFontElement{pagefoot}, nicht + jedoch der Fuß fett gesetzt werden: +\begin{lstcode} + \setkomafont{pagehead}{\bfseries} +\end{lstcode} + Bei dieser Anweisung ist es wichtig, dass sie erst nach dem Laden von + \Package{scrpage-scrlayer} erfolgt, weil davor zwar bereits sowohl + \FontElement{pagehead} als auch \FontElement{pageheadfoot} vorhanden sind, + aber dasselbe Element, nämlich \FontElement{pageheadfoot}, bezeichnen. Erst + durch Laden von \Package{scrpage-scrlayer} werden daraus zwei unabhängige + Elemente. + + Ergänzen Sie nun das Beispiel einmal durch ein weiteres \Macro{lipsum} und + fügen Sie gleichzeitig Option + \Option{twoside}\IndexOption{twoside}\important{\Option{twoside}} beim Laden + von \Class{scrartcl} hinzu. Zum einen wandert die Seitenzahl im Fuß nun von + der Mitte nach außen. Das liegt an der geänderten Voreinstellung für + \Pagestyle{scrheadings} und \Pagestyle{plain.scrheadings} für doppelseitige + Dokumente mit einer \KOMAScript-Klasse. + + Gleichzeitig verschwinden aber auch Autor, Dokumenttitel und Verlag von + Seite~2. Diese finden sich erst auf Seite~3 wieder. Das liegt daran, dass + wir bisher nur Befehle für ungerade Seiten\textnote{rechte Seite} + verwendet haben. Zu erkennen ist das am »\texttt{o}« für \emph{odd} an der + zweiten Stelle der Befehlsnamen. + + Nun könnten wir die Befehle einfach kopieren und in der Kopie dieses + »\texttt{o}« durch ein »\texttt{e}« für \emph{even}\textnote{linke Seite} + ersetzen. Allerdings ist es bei doppelseitigen Dokumenten meist sinnvoller, + wenn die Elemente spiegelverkehrt verwendet werden, dass also Elemente, die + auf linken Seiten links stehen, auf rechten Seiten rechts platziert werden + und umgekehrt. Daher vertauschen wir auch noch beim ersten Buchstaben + »\texttt{l}« durch »\texttt{r}« und umgekehrt: +\begin{lstcode} + \documentclass[twoside]{scrartcl} + \usepackage{scrlayer-scrpage} + \lohead{Peter Musterheinzel} + \rohead{Seitenstile mit \KOMAScript} + \lofoot[Verlag Naseblau, Irgendwo} + {Verlag Naseblau, Irgendwo} + \rehead{Peter Musterheinzel} + \lehead{Seitenstile mit \KOMAScript} + \refoot[Verlag Naseblau, Irgendwo] + {Verlag Naseblau, Irgendwo} + \pagestyle{scrheadings} + \setkomafont{pageheadfoot}{\small} + \setkomafont{pagehead}{\bfseries} + \usepackage{lipsum} + \begin{document} + \title{Seitenstile mit \KOMAScript} + \author{Peter Musterheinzel} + \maketitle + \lipsum\lipsum + \end{document} +\end{lstcode} +\end{Example}% +\iffree{}{Der Code dieses Beispiels funktioniert ebenfalls mit dem veralteten + Paket + \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}}. Wegen + der Verwendung von \Macro{setkomafont} gilt das aber nur, solange eine + \KOMAScript-Klasse wie \Class{scrartcl} verwendet wird.}% + +Da es etwas umständlich ist, die Angaben bei doppelseitigen Dokumenten wie im +letzten Beispiel immer getrennt für linke und rechte Seiten zu machen, wird +nachfolgend eine schönere Lösung für diesen Standardfall eingeführt. + +Erlauben Sie mir zuvor noch einen wichtigen Hinweis:\textnote{Achtung!} Sie +sollten niemals die Überschrift oder die Nummer einer Gliederungsebene mit +Hilfe einer dieser Anweisungen als Kolumnentitel in den Fuß der +Seite setzen. Aufgrund der Asynchronizität von Seitenaufbau und Seitenausgabe +kann es sonst leicht geschehen, dass die falsche Nummer oder die falsche +Überschrift im Kolumnentitel ausgegeben wird. Stattdessen ist der +Mark-Mechanismus idealer Weise in Verbindung mit den Automatismen, die im +nächsten Abschnitt erklärt werden, zu verwenden.% +% +\EndIndex{Cmd}{rofoot}% +\EndIndex{Cmd}{cofoot}% +\EndIndex{Cmd}{lofoot}% +\EndIndex{Cmd}{refoot}% +\EndIndex{Cmd}{cefoot}% +\EndIndex{Cmd}{lefoot}% + + +\begin{Declaration} + \Macro{ohead}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{chead}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{ihead}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{ofoot}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{cfoot}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings}\\ + \Macro{ifoot}\OParameter{Inhalt plain.scrheadings}% + \Parameter{Inhalt scrheadings} +\end{Declaration} +\BeginIndex{Cmd}{ohead}% +\BeginIndex{Cmd}{chead}% +\BeginIndex{Cmd}{ihead}% +\BeginIndex{Cmd}{ofoot}% +\BeginIndex{Cmd}{cfoot}% +\BeginIndex{Cmd}{ifoot}% +Um Kopf und Fuß im doppelseitigen Layout zu konfigurieren, müsste man mit den +zuvor erklärten Befehlen die linken und die rechten Seiten getrennt +voneinander konfigurieren. Meist ist es jedoch so, dass linke und rechte Seite +mehr oder weniger symmetrisch zueinander sind. Ein Element das auf linken +Seiten links steht, steht auf rechten Seiten rechts. Ein Element, das auf +linken Seiten rechts steht, steht auf rechten Seiten links. Mittig angeordnete +Elemente sind normalerweise auf beiden Seiten mittig angeordnet. + +Zur Vereinfachung der Einstellungen für diesen Standardfall gibt es bei +\Package{scrlayer-scrpage} sozusagen Abkürzungen. Der Befehl \Macro{ohead} +entspricht einem Aufruf sowohl von \Macro{lehead} als auch \Macro{rohead}. Der +Befehl \Macro{chead} entspricht sowohl \Macro{cehead} als auch +\Macro{cohead}. Und Befehl \Macro{ihead} entspricht \Macro{rehead} und +\Macro{lohead}. Entsprechendes gilt für die Anweisungen des Fußes. In +\autoref{fig:scrlayer-scrpage.head} auf +\autopageref{fig:scrlayer-scrpage.head} und +\autoref{fig:scrlayer-scrpage.foot} auf +\autopageref{fig:scrlayer-scrpage.foot} werden auch diese Beziehungen +skizziert. +% +\begin{Example} + Mit Hilfe der neuen Befehle, lässt sich das letzte Beispiel wie folgt + vereinfachen: +\begin{lstcode} + \documentclass[twoside]{scrartcl} + \usepackage{scrlayer-scrpage} + \ihead{Peter Musterheinzel} + \ohead{Seitenstile mit \KOMAScript} + \ifoot[Verlag Naseblau, Irgendwo] + {Verlag Naseblau, Irgendwo} + \pagestyle{scrheadings} + \setkomafont{pageheadfoot}{\small} + \setkomafont{pagehead}{\bfseries} + \usepackage{lipsum} + \begin{document} + \title{Seitenstile mit \KOMAScript} + \author{Peter Musterheinzel} + \maketitle + \lipsum\lipsum + \end{document} +\end{lstcode} + Wie zusehen ist, konnte die Hälfte der Befehle eingespart und trotzdem + dasselbe Ergebnis erzielt werden. +\end{Example}% +\iffree{}{Der Code dieses Beispiels funktioniert wiederum ohne Änderung auch + mit dem veralteten Paket + \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}}, + solange eine \KOMAScript-Klasse wie \Class{scrartcl} verwendet wird.}% + +Da im einseitigen Layout alle Seiten als ungerade oder rechte Seiten behandelt +werden, können im einseitigen Layout diese Befehle auch als Synonyme für die +entsprechenden Befehle für rechte Seiten verwendet werden. In den meisten +Fällen wird man daher eher diese sechs als die zwölf zuvor vorgestellten +Befehle verwenden. + +Erlauben Sie mir noch einmal einen wichtigen Hinweis:\textnote{Achtung!} Sie +sollten niemals die Überschrift oder die Nummer einer Gliederungsebene mit +Hilfe einer dieser Anweisungen als Kolumnentitel in den Kopf oder Fuß der +Seite setzen. Aufgrund der Asynchronizität von Seitenaufbau und Seitenausgabe +kann es sonst leicht geschehen, dass die falsche Nummer oder die falsche +Überschrift im Kolumnentitel ausgegeben wird. Stattdessen ist der +Mark-Mechanismus idealer Weise in Verbindung mit den Automatismen, die im +nächsten Abschnitt erklärt werden, zu verwenden.% +\EndIndex{Cmd}{ifoot}% +\EndIndex{Cmd}{cfoot}% +\EndIndex{Cmd}{ofoot}% +\EndIndex{Cmd}{ihead}% +\EndIndex{Cmd}{chead}% +\EndIndex{Cmd}{ohead}% + +\begin{Declaration} + \KOption{pagestyleset}\PName{Einstellung} +\end{Declaration} +\BeginIndex{Option}{pagestyleset~=KOMA-Script}% +\BeginIndex{Option}{pagestyleset~=standard}% +In den zurückliegenden Beispielen wurde bereits mehrfach auf die +Voreinstellung der Seitenstile +\Pagestyle{scrheadings}\IndexPagestyle{scrheadings} und +\Pagestyle{plain.scrheadings}\IndexPagestyle{plain.scrheadings} +hingewiesen. Tatsächlich unterstützt \Package{scrlayer-scrpage} derzeit zwei +unterschiedliche Voreinstellungen. Diese sind von Hand über Option +\Option{pagestyleset} auswählbar. + +Mit der \PName{Einstellung} \PValue{KOMA-Script}% +\important{\KOption{pagestyleset}\quad\\\quad\PValue{KOMA-Script}} +wird die Voreinstellung gewählt, die auch automatisch eingestellt wird, falls +die Option nicht angegeben ist und eine \KOMAScript-Klasse erkannt +wurde. Dabei werden für \Pagestyle{scrheadings} im doppelseitigen Satz +Kolumnentitel außen im Kopf und Seitenzahlen außen im Fuß gesetzt. Im +einseitigen Satz wird der Kolumnentitel stattdessen mittig im Kopf und die +Seitenzahl mittig im Fuß platziert. Für die automatischen Kolumnentitel werden +Groß- und Kleinbuchstaben verwendet, wie diese vorgefunden werden. Dies +entspricht der gleichzeitigen Verwendung von Option +\OptionValue{markcase}{used}\IndexOption{markcase~=used}% +\important{\OptionValue{markcase}{used}}. Für \Pagestyle{plain.scrheadings} +entfallen die Kolumnentitel. Die Seitenzahlen werden jedoch identisch +platziert. + +Wird allerdings +\Class{scrlttr2}\important{\Class{scrlttr2}}\IndexClass{scrlttr2} als Klasse +erkannt, so werden die Voreinstellungen an die Seitenstile jener Klasse +angelehnt. Siehe dazu \autoref{sec:scrlttr2.pagestyle}, ab +\autopageref{sec:scrlttr2.pagestyle}. + +Mit der \PName{Einstellung} \PValue{standard}% +\important{\KOption{pagestyleset}\quad\\\quad\PValue{standard}} wird die +Voreinstellung gewählt, die den Standard-Klassen entspricht. Diese wird auch +automatisch eingestellt, falls die Option nicht angegeben ist und keine +\KOMAScript-Klasse erkannt wurde. Dabei wird für \Pagestyle{scrheadings} im +doppelseitigen Satz der Kolumnentitel im Kopf innen und die Seitenzahl -- +ebenfalls im Kopf -- außen ausgerichtet platziert. Im einseitigen Satz werden +dieselben Einstellungen verwendet. Da hierbei nur rechte Seiten existieren, +steht der Kolumnentitel dann immer linksbündig im Kopf, die Seitenzahl +entsprechend rechtsbündig. Die automatischen Kolumnentitel werden -- trotz +erheblicher typografischer Bedenken -- entsprechend +\OptionValue{markcase}{upper}\IndexOption{markcase~=upper}% +\important{\OptionValue{markcase}{upper}} in Großbuchstaben +umgewandelt. Von \Pagestyle{scrheadings} deutlich abweichend hat +\Pagestyle{plain.scrheadings} die Seitenzahl im einseitigen Satz mittig im +Fuß. Abweichend vom Seitenstil \Pagestyle{plain} der Standardklassen entfällt +die Seitenzahl im doppelseitigen Modus. Die Standardklassen setzen die +Seitenzahl stattdessen mittig im Fuß, was im doppelseitigen Satz nicht zum +übrigen Stil der Seiten passt. Der Kolumnentitel entfällt beim +\Pagestyle{plain.scrheadings} natürlich in jedem Fall. + +Es ist zu beachten\textnote{Achtung!}, dass mit der Verwendung dieser Option +gleichzeitig der Seitenstil +\Pagestyle{scrheadings}\IndexPagestyle{scrheadings}% +\important{\Pagestyle{scrheadings}} aktiviert wird. Dies gilt auch, wenn die +Option innerhalb eines Dokuments verwendet wird. + +\BeginIndex{Option}{komastyle}% +\BeginIndex{Option}{standardstyle}% +Die für \Package{scrpage2}\IndexPackage{scrpage2} dokumentierten Paketoptionen +\Option{komastyle}\important{\Option{komastyle}\\ \Option{standardstyle}} und +\Option{standardstyle} existieren in \Package{scrlayer-scrpage} nur aus +Gründen der Kompatibilität. Sie werden jedoch auf Option \Option{pagestyleset} +abgebildet, gelten als überholt und sollten nicht mehr verwendet +werden.\iffree{}{ Bei Verwendung des veralteten Pakets + \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}} sind + sie hingegen die einzige Möglichkeit zwischen den beiden unterschiedlichen + Voreinstellungen umzuschalten, da dort Option \Option{pagestyleset} nicht + existiert.}% +\EndIndex{Option}{standardstyle}% +\EndIndex{Option}{komastyle}% +\EndIndex{Option}{pagestyleset~=standard}% +\EndIndex{Option}{pagestyleset~=KOMA-Script}% + +\LoadCommon[scrlayerscrpage]{21} % \section{Beeinflussung von definierten Seitenstilen} + +\begin{Declaration} + \KOption{headwidth}\PName{Breite\textup{:}Offset}\\ + \KOption{footwidth}\PName{Breite\textup{:}Offset} +\end{Declaration} +\BeginIndex{Option}{headwidth~=\PName{Offset\textup{:}Breite}}% +\BeginIndex{Option}{footwidth~=\PName{Offset\textup{:}Breite}}% +In der Voreinstellung sind Kopf\Index{Kopf>Breite} und Fuß\Index{Fuß>Breite} +genauso breit wie der Satzspiegel. Mit Hilfe dieser beiden +\KOMAScript-Optionen lässt sich das jedoch ändern. Die \PName{Breite} ist +dabei die gewünschte Breite des Kopfes beziehungsweise Fußes. Der +\PName{Offset} gibt an, wie weit der Kopf respektive Fuß in Richtung des +äußeren Randes -- im einseitigen Satz entsprechend in Richtung des rechten +Randes -- verschoben werden soll. Dabei sind beide Werte optional, können also +auch weggelassen werden. Falls beide Werte weggelassen werden, kann auch der +Doppelpunkt entfallen. Ist nur ein Wert aber kein Doppelpunkt angegeben, so +handelt es sich um die \PName{Breite}. + +Sowohl für \PName{Breite} als auch für \PName{Offset} kann jeder gültige +Längenwert aber auch jede \LaTeX-Länge oder \TeX-Länge oder \TeX-Abstand +eingesetzt werden. Darüber hinaus sind für beides auch \eTeX-Längen\-ausdrücke +mit den Grundrechenarten \texttt{+}, \texttt{-}, \texttt{*}, \texttt{/} und +runden Klammern erlaubt. Näheres zu solchen Längenausdrücken ist +\cite[Abschnitt~3.5]{manual:eTeX} zu entnehmen. Für \PName{Breite} sind +außerdem einige symbolische Werte zulässig. Diese sind +\autoref{tab:scrlayer-scrpage.symbolic.values} zu entnehmen. + +Die Voreinstellung für \PName{Breite} ist die Breite des Textbereichs. Die +Voreinstellung für \PName{Offset} hängt von der gewählten \PName{Breite} +ab. In der Regel wird im einseitigen Satz die Hälfte des Unterschieds zwischen +\PName{Breite} und der Breite des Textbereichs verwendet. Damit wird der Kopf +über dem Textbereich zentriert. Im doppelseitigen Satz wird hingegen nur ein +Drittel des Unterschieds zwischen \PName{Breite} und der Breite des +Textbereichs verwendet. Ist \PName{Breite} jedoch die Breite des Textbereichs +zuzüglich der Marginalienspalte, so ist die Voreinstellung von \PName{Offset} +immer Null. Falls Ihnen das zu kompliziert ist, sollten Sie den gewünschten +\PName{Offset} einfach selbst angeben.% +% +\begin{table} + \centering + \caption[Symbolische Werte für Option \Option{headwidth} und + \Option{footwidth}]{Erlaubte symbolische Werte für \PName{Breite} bei den + Optionen \Option{headwidth} und \Option{footwidth}} + \label{tab:scrlayer-scrpage.symbolic.values} + \begin{desctabular} + \ventry{foot}{% + die aktuelle Breite des Fußes% + }% + \ventry{footbotline}{% + die aktuelle Länge der horizontalen Linie unterhalb des Fußes% + }% + \ventry{footsepline}{ die aktuelle Länge der horizontalen Linie zwischen + dem Textbereich und dem Fuß% + } \ventry{head}{% + die aktuelle Breite des Kopfes% + }% + \ventry{headsepline}{% + die aktuelle Länge der horizontalen Linie zwischen dem Kopf und dem + Textbereich% + }% + \ventry{headtopline}{% + die aktuelle Länge der horizontalen Linie über dem Kopf% + }% + \ventry{marginpar}{% + die Breite der Marginalienspalte einschließlich des Abstandes zwischen + dem Textbereich und der Marginalienspalte% + }% + \ventry{page}{% + die Breite der Seite unter Berücksichtigung einer eventuell mit Hilfe + des Pakets \Package{typearea} definierten Bindekorrektur (siehe Option + \Option{BCOR} in \autoref{sec:typearea.typearea}, + \autopageref{desc:typearea.option.BCOR})% + }% + \ventry{paper}{% + die Breite des Papiers ohne Berücksichtigung einer etwaigen + Bindekorrektur% + }% + \ventry{text}{% + die Breite des Textbereichs% + }% + \ventry{textwithmarginpar}{% + die Breite des Textbereichs einschließlich der Marginalienspalte und + natürlich des Abstandes zwischen den beiden (Achtung: Nur in diesem Fall + ist die Voreinstellung für \PName{Offset} Null)% + }% + \end{desctabular} +\end{table} +% +\EndIndex{Option}{footwidth~=\PName{Offset\textup{:}Breite}}% +\EndIndex{Option}{headwidth~=\PName{Offset\textup{:}Breite}}% + +\begin{Declaration} + \KOption{headtopline}\PName{Dicke\textup{:}Länge}\\ + \KOption{headsepline}\PName{Dicke\textup{:}Länge}\\ + \KOption{footsepline}\PName{Dicke\textup{:}Länge}\\ + \KOption{footbotline}\PName{Dicke\textup{:}Länge} +\end{Declaration} +\BeginIndex{Option}{headtopline~=\PName{Dicke\textup{:}Länge}}% +\BeginIndex{Option}{headsepline~=\PName{Dicke\textup{:}Länge}}% +\BeginIndex{Option}{footsepline~=\PName{Dicke\textup{:}Länge}}% +\BeginIndex{Option}{footbotline~=\PName{Dicke\textup{:}Länge}}% +Während die \KOMAScript-Klassen nur eine Trennlinie unter dem Kopf und eine +weitere über dem Fuß unterstützen und man diese nur wahlweise ein- und +ausschalten kann, erlaubt das Paket \Package{scrlayer-scrpage} auch noch eine +Linie über dem Kopf und unter dem Fuß, und man kann bei diesen beiden sowohl +die \PName{Länge} als auch die \PName{Dicke} konfigurieren. + +Beide Werte sind optional. Lässt man die \PName{Dicke} weg, so wird +0,4\Unit{pt} angenommen, also eine Haarlinie produziert. Verzichtet man auf +eine Angabe der \PName{Länge}, so wird die Breite des Kopfes respektive des +Fußes als gewünschter Wert angenommen. Wird beides weggelassen, so kann auch +der Doppelpunkt entfallen. Wird nur ein Wert ohne Doppelpunkt angegeben, so +ist dies die \PName{Dicke}. + +Natürlich darf die \PName{Länge} nicht nur kürzer als die aktuelle Breite des +Kopfes respektive des Fußes sein. Sie darf auch länger sein. Siehe dazu auch +die Optionen \Option{ilines}\IndexOption{ilines}\important{\Option{ilines}, + \Option{clines}, \Option{olines}}, \Option{clines}\IndexOption{clines} und +\Option{olines}\IndexOption{olines}, die später in diesem Abschnitt erklärt +werden. + +\BeginIndex{FontElement}{headtopline}% +\BeginIndex{FontElement}{headsepline}% +\BeginIndex{FontElement}{footsepline}% +\BeginIndex{FontElement}{footbotline}% +Neben der Dicke und der Länge kann man auch die Farben der Linien +ändern. Zunächst richtet sich diese natürlich nach der Farbe, die für den Kopf +und den Fuß eingestellt ist. Davon unabhängig werden aber auch noch die +Einstellungen für die gleich benannten Elemente +\FontElement{headtopline}\important[i]{\FontElement{headtopline}\\ +\FontElement{headsepline}\\ +\FontElement{footsepline}\\ +\FontElement{footbotline}}, +\FontElement{headsepline}, \FontElement{footsepline} und +\FontElement{footbotline} angewendet. Diese können mit den Anweisungen +\Macro{setkomafont} und \Macro{addtokomafont} geändert werden (siehe +\autoref{sec:maincls.textmarkup}, ab +\autopageref{desc:maincls.cmd.setkomafont}). In der Voreinstellung sind die +Einstellungen für diese Elemente leer, so dass sie zu keiner Änderung der +Schrift oder Farbe führen. Änderungen der Schrift sind im Gegensatz zu +Farbänderungen an dieser Stelle ohnehin nicht sinnvoll und werden daher nicht +empfohlen.% +\EndIndex{FontElement}{footbotline}% +\EndIndex{FontElement}{footsepline}% +\EndIndex{FontElement}{headsepline}% +\EndIndex{FontElement}{headtopline}% + +\BeginIndex{Cmd}{setheadtopline}% +\BeginIndex{Cmd}{setheadseoline}% +\BeginIndex{Cmd}{setfootsepline}% +\BeginIndex{Cmd}{setfootbotline}% +\iffree{Neben den Optionen }{Das veraltete Paket + \Package{scrpage2}\important{\Package{scrpage2}}\IndexPackage{scrpage2} + kannte gleich benannte Paketoptionen, denen jedoch kein Wert zugewiesen + werden konnte. Man aktivierte Haarlinien in der Breite des Kopfes respektive + Fußes. Daneben }% +gab es bei \Package{scrpage2} auch noch die nahezu +gleichbedeutenden Befehle +\Macro{setheadtopline}\IndexCmd[indexmain]{setheadtopline}% +\important[i]{\Macro{setheadtopline}\\ + \Macro{setheadsepline}\\ + \Macro{setfootsepline}\\ + \Macro{setfootbotline}}, +\Macro{setheadsepline}\IndexCmd[indexmain]{setheadsepline}, +\Macro{setfootsepline}\IndexCmd[indexmain]{setfootsepline} und +\Macro{setfootbotline}\IndexCmd[indexmain]{setfootbotline}. Diese Befehle +hatten als erstes, optionales Argument ebenfalls die \PName{Länge} der +entsprechende Linie, als zweites, obligatorisches Argument die \PName{Dicke} +und als zusätzliches drittes, optionales Argument Einstellungen, die direkt +für die Schrift oder Farbe des entsprechenden Elements verwendet wurden. Diese +Anweisungen existieren in \Package{scrlayer-scrpage} aus +Kompatibilitätsgründen ebenfalls, wobei die ersten beiden Argumente +entsprechend der Werte für die Optionen erweitert wurden. Allerdings sind die +Befehle gleichzeitig als überholt anzusehen und sollten nicht mehr verwendet +werden. Es sei an dieser Stelle auch darauf hingewiesen, dass diese Befehle +nie dazu gedacht waren, die entsprechenden Linien einzuschalten. Vielmehr +waren sie ausschließlich zur Einstellung von \PName{Länge} und \PName{Dicke} +der Linien gedacht, wenn diese über die Optionen eingeschaltet wurden. Dies +wurde von den Anwendern aber leider häufig nicht beachtet!% +\EndIndex{Cmd}{setfootbotline}% +\EndIndex{Cmd}{setfootsepline}% +\EndIndex{Cmd}{setheadseoline}% +\EndIndex{Cmd}{setheadtopline}% +% +\EndIndex{Option}{footbotline~=\PName{Dicke\textup{:}Länge}}% +\EndIndex{Option}{footsepline~=\PName{Dicke\textup{:}Länge}}% +\EndIndex{Option}{headsepline~=\PName{Dicke\textup{:}Länge}}% +\EndIndex{Option}{headtopline~=\PName{Dicke\textup{:}Länge}}% + + +\begin{Declaration} + \KOption{plainheadtopline}\PName{Ein-Aus-Wert}\\ + \KOption{plainheadsepline}\PName{Ein-Aus-Wert}\\ + \KOption{plainfootsepline}\PName{Ein-Aus-Wert}\\ + \KOption{plainfootbotline}\PName{Ein-Aus-Wert} +\end{Declaration} +\BeginIndex{Option}{plainheadtopline~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{plainheadsepline~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{plainfootsepline~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{plainfootbotline~=\PName{Ein-Aus-Wert}}% +Mit diesen Optionen können die Einstellungen für die Linien auch für den +\Pagestyle{plain}-Seitenstil übernommen werden. Als \PName{Ein-Aus-Wert} +stehen die Standardwerte für einfache Schalter, die in +\autoref{tab:truefalseswitch} auf \autopageref{tab:truefalseswitch} angegeben +sind, zur Verfügung. Bei aktivierter Option werden die entsprechenden +Linieneinstellungen übernommen. Bei deaktivierter Option wird die +entsprechende Linie im \Pagestyle{plain}-Seitenstil hingegen nicht angezeigt. +% +\EndIndex{Option}{plainfootbotline~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{plainfootsepline~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{plainheadsepline~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{plainheadtopline~=\PName{Ein-Aus-Wert}}% + + +\begin{Declaration} + \Option{ilines}\\ + \Option{clines}\\ + \Option{olines} +\end{Declaration} +\BeginIndex{Option}{ilines}% +\BeginIndex{Option}{clines}% +\BeginIndex{Option}{olines}% +Wie bereits zuvor erklärt wurde, können Trennlinien für den Kopf oder Fuß +konfiguriert werden, die länger oder kürzer als die Breite des Kopfes +beziehungsweise des Fußes sind. Bisher blieb die Frage offen, wie diese Linien +dann ausgerichtet werden. In der Voreinstellung sind sie im einseitigen Satz +linksbündig und im doppelseitigen Satz bündig mit dem Anfang des inneren +Randes. Dies entspricht Option \Option{ilines}. Alternativ können sie jedoch +mit Option \Option{clines} auch horizontal bezüglich der Breite des Kopfes +beziehungsweise Fußes zentriert werden. Ebenso ist mit Hilfe von Option +\Option{olines} eine Ausrichtung am äußeren beziehungsweise rechten Rand +möglich.% +\EndIndex{Option}{olines}% +\EndIndex{Option}{clines}% +\EndIndex{Option}{ilines}% +% +\EndIndex{Package}{scrlayer-scrpage}% + +%%% Local Variables: +%%% mode: latex +%%% mode: flyspell +%%% coding: iso-latin-1 +%%% ispell-local-dictionary: "de_DE" +%%% TeX-master: "../guide" +%%% End: + +% LocalWords: Paketoptionen diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer.tex new file mode 100644 index 00000000000..2bf8540ab0c --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer.tex @@ -0,0 +1,1436 @@ +% ====================================================================== +% scrlayer.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrlayer.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% +% Chapter about scrlayer of the KOMA-Script guide +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Kapitel über scrlayer in der KOMA-Script-Anleitung +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\KOMAProvidesFile{scrlayer.tex} + [$Date: 2013-12-10 19:50:34 +0100 (Di, 10. Dez 2013) $ + KOMA-Script guide (chapter:scrlayer)] + +\chapter[{Definition von Ebenen und Seitenstilen mit \Package{scrlayer}}] + {Definition\ChangedAt{v3.12}{\Package{scrlayer}} von Ebenen und Seitenstilen + mit \Package{scrlayer}} +\labelbase{scrlayer} + +\BeginIndex{Package}{scrlayer} + +Anwender von Grafikprogrammen sind mit dem Modell der Ebenen für eine Seite +bereits vertraut. \LaTeX{} selbst ist ein solches Modell jedoch eher +fremd. Dennoch gibt es bereits einige Pakete wie \Package{eso-pic} oder +\Package{textpos}, mit denen bereits eine Art Hintergrund- oder +Vor\-der\-grund\-ebe\-ne in \LaTeX{} verfügbar gemacht wurden. Das Paket +\Package{scrlayer} ist ein weiteres Paket, das solche Hintergrund- und +Vordergrundebenen zur Verfügung stellt. Im Unterschied zu den anderen +genannten Paketen sind die Ebenen bei \Package{scrlayer} jedoch Teil des +Seitenstils. Dadurch ist eine einfache Umschaltung zwischen der Verwendung +unterschiedlicher Ebenen durch die Umschaltung des Seitenstils möglich. + +Um dies zu erreichen, stellt das Paket auf unterer Stufe zusätzlich eine +Schnittstelle zur Definition von Seitenstilen, die auf einem Stapel oder einer +Liste von Ebenen beruhen, zum Hinzufügen von Ebenen wahlweise am Anfang oder +Ende einer solchen Liste von Ebenen oder unmittelbar vor oder hinter einer +anderen Ebene in einer solchen Liste, zum Löschen einer Ebene aus einer +solchen Liste und zum Löschen aller Dubletten einer Ebene aus einer solchen +Liste bereit. Oder kurz und verständlich gesagt: Die Seitenstil-Schnittstelle +von \Package{scrlayer} stellt Befehle bereit, um einen Seitenstil, der auf +einer Liste von Ebenen basiert, zu definieren und diese Ebenenliste zu +verwalten. + +Nichtsdestoweniger wird die direkte Verwendung der Ebenen nur erfahrenen +Anwendern empfohlen. Schnittstellen für Anfänger und durchschnittliche +Anwender werden als zusätzliche Pakete angeboten, die dann ihrerseits +\Package{scrlayer} laden. Siehe hierzu \autoref{cha:scrlayer-scrpage} in +\autoref{part:forAuthors} diese\iffree{r Anleitung}{s Buches}. + + +\section{Hinweis zum Entwicklungsstand} +\label{sec:scrlayer.draft} + +Die Entwicklung dieses Pakets ist noch nicht abgeschlossen. Teile des Pakets +sind auch noch als experimentell einzustufen. Daher können sich in Zukunft +insbesondere die internen Funktionalitäten und Funktionsweisen noch ändern. Es +ist auch noch mit Erweiterungen zu rechnen. Wegen dieses noch nicht +abgeschlossenen Entwicklungsstandes sollte der Leser auch keine abgeschlossene +Anleitung erwarten. Dennoch gibt diese Anleitung, die sich vor allem an +erfahrene Anwender und Entwickler richtet, den aktuellen Entwicklungsstand der +Teile von \Package{scrlayer} wieder, die als zur Verwendung freigegeben +eingestuft sind. Dinge, die hier nicht dokumentiert sind, sollten allenfalls +zu Testzwecken Verwendung finden. + +\LoadCommon{0} % \section{Frühe oder späte Optionenwahl} + +\section{Einige grundlegende Informationen} +\label{sec:scrlayer.generic.information} + +Das Paket benötigt einige grundlegende Informationen über die +verwendete Klasse. Autoren von Klassen können \Package{scrlayer} helfen, indem +sie entsprechende Angaben machen. Anderenfalls versucht das Paket diese +Informationen selbst zu ermitteln. Das funktioniert beispielsweise für die +Standardklassen oder für die \KOMAScript-Klassen. Mit anderen Klassen kann es +funktionieren oder auch ganz oder teilweise fehlschlagen. + +Dieser Abschnitt beschreibt einige der Informationen, die Autoren von Klassen +bereitstellen können. Anwender sollten sich im Normalfall nicht darum zu +kümmern brauchen. + +\begin{Declaration} + \Macro{if@chapter}\ \PName{Dann-Code} \Macro{else}\ \PName{Sonst-Code} + \Macro{fi} +\end{Declaration} +\BeginIndex{Cmd}{if@chapter}% +Wenn \Macro{if@chapter} definiert ist und \Macro{iftrue}\IndexCmd{iftrue} +entspricht, wird \Package{scrlayer} bei seiner Arbeit die Kapitel-Ebene +beispielsweise bei Option \Option{automark} mit berücksichtigen. Wenn es +definiert ist, aber nicht \Macro{iftrue} entspricht, behandelt +\Package{scrlayer} nur die Ebenen der Befehle \Macro{part}, \Macro{section}, +\Macro{subsection}, \Macro{sub\dots subsection}, \Macro{paragraph}, +\Macro{subparagraph}, \Macro{sub\dots subparagraph}. Wenn das Makro nicht +definiert ist, macht \Package{scrlayer} die Frage, ob auch die +Kapitel-Ebene zu behandeln ist, an der Anweisung \Macro{chapter} fest. Ist +diese Anweisung definiert und entspricht sie nicht \Macro{relax}, dann +definiert \Package{scrlayer} das Makro \Macro{if@chapter} selbst als Synonym für +\Macro{iftrue}. Anderenfalls definiert es \Macro{if@chapter} als Synonym für +\Macro{iffalse}\IndexCmd{iffalse}.% +% +\EndIndex{Cmd}{if@chapter}% + +\begin{Declaration} + \Macro{if@mainmatter}\ \PName{Dann-Code} \Macro{else}\ \PName{Sonst-Code} + \Macro{fi} +\end{Declaration} +\BeginIndex{Cmd}{if@mainmatter}% +Klassen wie \Class{book} definieren \Macro{frontmatter}\IndexCmd{frontmatter}, +\Macro{mainmatter}\IndexCmd{mainmatter} und +\Macro{backmatter}\IndexCmd{backmatter}, um zwischen Vorderteil, Hauptteil und +Endteil eines Buches umschalten zu können. In der Regel verwenden diese Klassen +intern \Macro{if@mainmatter}, um entscheiden zu können, ob gerade im Hauptteil +des Dokuments gearbeitet wird oder nicht. Klassen wie \Class{report} oder +\Class{article} haben kein \Macro{frontmatter}, \Macro{mainmatter} oder +\Macro{backmatter} und deshalb auch kein \Macro{if@mainmatter}. Stattdessen +gehen sie davon aus, dass es nur einen Hauptteil gibt. + +Für \Package{scrlayer} ist es aber einfacher, nicht ständig erneut die +Existenz und Verwendung der Umschaltanweisungen zu erkennen und damit zu +entscheiden, ob nun gerade im Hauptteil gearbeitet wird oder nicht, sondern +stattdessen auch bei Klassen wie \Class{report} oder \Class{article} mit +\Macro{if@mainmatter} zu arbeiten. Das sollte bei den genannten Klassen dann +schlicht \Macro{iftrue}\IndexCmd{iftrue} entsprechen. Wenn also +\Macro{if@mainmatter} nicht definiert ist, dann definiert \Package{scrlayer} +es als Synonym für \Macro{iftrue}. + +Einige Klassen haben jedoch tatsächlich \Macro{frontmatter}, +\Macro{mainmatter} oder \Macro{backmatter} und trotzdem kein +\Macro{if@mainmatter}. In diesem Fall definiert \Package{scrlayer} ebenfalls +\Macro{if@mainmatter} als Synonym für \Macro{iftrue} und erweitert +die gefundenen Definitionen von \Macro{frontmatter}, \Macro{mainmatter} und +\Macro{backmatter} so, dass diese \Macro{if@mainmatter} passend +umdefinieren. Falls es jedoch weitere, vergleichbare Befehle zur Umschaltung +zwischen unterschiedlichen Dokumentteilen gibt, so kennt \Package{scrlayer} +diese nicht, testet nicht auf diese und erweitert sie daher auch nicht +passend. In diesem Fall ist \Package{scrlayer} also auf die Mitarbeit des +Klassenautors angewiesen.% +\EndIndex{Cmd}{if@mainmatter}% + +\begin{Declaration} + \Macro{DeclareSectionNumberDepth}% + \Parameter{Name der Gliederungsebene}\Parameter{Tiefe der Gliederungsebene} +\end{Declaration} +\BeginIndex{Cmd}{DeclareSectionNumberDepth}% +Jeder Gliederungsebene ist normalerweise eine nummerische Tiefe +zugeordnet. Das ist notwendig, damit \LaTeX{} die Hierarchie der +Gliederungsebenen verwalten kann. Allerdings sind die Werte normalerweise nur +der jeweiligen Klasse bekannt, in der die Gliederungsbefehle definiert +sind. Diese setzt dann in den entsprechenden \LaTeX-Befehlen selbst die +zugehörigen Nummern ein. + +Das Paket \Package{scrlayer} benötigt ebenfalls Informationen über die +Hierarchie. Mit Hilfe der Anweisung \Macro{DeclareSectionNumberDepth} kann +\Package{scrlayer} zum Namen einer Gliederungsebene die zugehörige nummerische +Tiefe bekannt gemacht werden. Für die Standardklassen wäre \Parameter{Name der + Gliederungsebene} beispielsweise \PValue{part}, \PValue{chapter}, +\PValue{section}, \PValue{subsection}, \PValue{subsubsection}, +\PValue{paragraph} oder \PValue{subparagraph} und die jeweils zugehörige +\PName{Tiefe der Gliederungsebene} wäre -1, 0, 1, 2, 3, 4 oder 5. + +Das Paket \Package{scrlayer} versucht diese nummerischen Werte zunächst beim +Laden des Pakets und dann noch einmal während +\Macro{begin}\PParameter{document} selbst zu ermitteln. Aber für den Fall, +dass dies einmal nicht zu einem korrekten Ergebnis führt, beispielsweise falls +es vollkommen andere Gliederungsbefehle gibt, kann man die Zuordnung eben mit +\Macro{DeclareSectionNumberDepth} auch explizit vornehmen.% +% +\EndIndex{Cmd}{DeclareSectionNumberDepth}% + +\section{Deklaration von Ebenen} +\label{sec:scrlayer.layers} + +Eine Ebene (engl. \emph{layer}) ist ein Denkmodell für eine Seite. Im +Gegensatz zu echtem, physischem Papier, ist diese Seite vollständig +transparent. Üblicherweise werden mehrere Ebenen übereinander gestapelt und +undurchsichtiges Material auf einer Ebene überdeckt Material auf den Ebenen +darunter. Ein solcher Stapel von Ebenen wird dann auf eine reale Seite Papier +abgebildet. Das Paket \Package{scrlayer} stellt zwei solche Stapel für jede +Seite zur Verfügung: einen Hintergrundstapel und einen Vordergrundstapel. Der +Hintergrundstapel befindet sich unter oder hinter dem normalen Seiteninhalt, +während der Vordergrundstapel über oder vor dem normalen Seiteninhalt +ausgegeben wird. Der normale Seiteninhalt ist daher eine Art von Trennebene +zwischen den beiden Ebenenstapeln. + +Eine Ebene hat mehrere Eigenschaften. Die erste Eigenschaft ist Antwort auf +die Frage, ob die Ebene zum Hintergrund oder zum Vordergrund +gehört. Hintergrundebenen werden ausgegeben, bevor der normale Inhalt der +Seite gedruckt wird. Optisch erscheinen sie daher \emph{hinter} oder +\emph{unter} dem normalen Inhalt der Seite. Vordergrundebenen werden an den +normalen Inhalt anschließend ausgegeben. Optisch erscheinen sie daher +\emph{vor}, \emph{auf} oder \emph{über} dem normalen Inhalt der Seite. In der +Voreinstellung ist eine Ebene sowohl eine Hintergrundebene als auch eine +Vordergrundebene und wird daher zweimal ausgegeben. + +Die zweite und dritte Eigenschaft sind die horizontale und vertikale Position +der Ebene. Die vierte und fünfte Eigenschaft sind die horizontale und +vertikale Größe der Ebene. Daraus ergibt sich, dass eine Ebene auch kleiner +oder größer als das Papier sein kann. + +Aber wie werden die horizontale und die vertikale Position gemessen? Aus der +Antwort ergibt sich die sechste Eigenschaft, die Ausrichtung. Man kann von der +linken Papierkante zur linken Kante der Ebene, zur Mitte der Ebene oder zur +rechten Kante der Ebene messen. Entsprechend kann man von der oberen Kante des +Papiers zur oberen Kante der Ebene, zur Mitte der Ebene oder zur unteren Kante +der Ebene messen. + +Die siebte Eigenschaft ist, ob eine Ebene auf linken oder rechten Seiten eines +Dokuments gedruckt werden soll. In der Voreinstellung wird eine Ebene auf +allen Seiten gedruckt. Es ist zu beachten, dass \LaTeX{} Seiten mit geraden +Seitenzahlen als linke Seiten und Seiten mit ungeraden Seitenzahlen als rechte +Seiten behandelt, dass es jedoch im einseitigen Modus unabhängig von der +Nummer nur rechte Seiten gibt. \LaTeX{} bezeichnet den Gepflogenheiten in der +englischen Sprache entsprechend linke Seiten auch als gerade Seiten und rechte +Seiten als ungerade Seiten. + +Die achte Eigenschaft ist, ob eine Ebene auf den einseitigen oder den +doppelseitigen Modus beschränkt sein soll. In der Voreinstellung ist die Ebene +diesbezüglich unbeschränkt, wird also sowohl im einseitigen als auch im +doppelseitigen Modus ausgegeben. Nichtsdestotrotz wird eine Ebene, die auf +gerade Seiten beschränkt ist, im einseitigen Modus niemals ausgegeben werden +und ist daher auch keine einseitige Ebene. + +Die neunte Eigenschaft ist, ob eine Ebene auf Gleitseiten oder auf +Normalseiten beschränkt ist. \LaTeX{} erzeugt Gleitseiten für Objekte aus +Umgebungen wie \Environment{table} oder \Environment{figure}, wenn diesen +erlaubt wurde, auf eigenen Seiten ohne Teile des normalen Dokumentinhalts +ausgegeben zu werden (siehe Option \PValue{p} für \Environment{table} oder +\Environment{figure}). In gewisser Weise ist es so der gesamten Seite erlaubt, +im Dokument zu gleiten. Normalseiten in diesem Sinne sind alle Seiten, die +keine Gleitseiten sind. Normalseiten können ebenfalls Gleitumgebungen am +Anfang, im Inneren oder am Ende enthalten. Sehr große Gleitumgebungen können +auch den Eindruck einer Gleitseite erzeugen, obwohl es sich bei ihnen in +Wirklichkeit um oben auf einer Normalseite platzierte Gleitumgebungen handelt. + +Die zehnte und letzte Eigenschaft ist der Inhalt der Ebene. Das ist schlicht +das, was gedruckt werden soll, wann immer die Ebene ausgegeben wird. + +Damit haben wir also zehn Eigenschaften. Später in dieser Anleitung werden wir +weitere Eigenschaften sehen, die jedoch auf diese zehn Eigenschaften +abgebildet werden können. Daher nennen wir diese zehn Eigenschaften die +primären Eigenschaften. + +\begin{Declaration} + \Macro{DeclareLayer}\OParameter{Optionenliste}\Parameter{Name der Ebene}\\ + \Macro{DeclareNewLayer}\OParameter{Optionenliste}\Parameter{Name der Ebene}\\ + \Macro{ProvideLayer}\OParameter{Optionenliste}\Parameter{Name der Ebene}\\ + \Macro{RedeclareLayer}\OParameter{Optionenliste}\Parameter{Name der Ebene}\\ + \Macro{ModifyLayer}\OParameter{Optionenliste}\Parameter{Name der Ebene} +\end{Declaration} +\BeginIndex{Cmd}{DeclareLayer}% +\BeginIndex{Cmd}{DeclareNewLayer}% +\BeginIndex{Cmd}{ProvideLayer}% +\BeginIndex{Cmd}{RedeclareLayer}% +\BeginIndex{Cmd}{ModifyLayer}% +Diese Anweisungen können verwendet werden, um Ebenen zu definieren. Der +\PName{Name der Ebene} muss voll expandierbar sein. Die Expansion sollte in +ASCII-Buchstaben resultieren. Einige zusätzliche Zeichen werden ebenfalls +akzeptiert, ihre Verwendung wird jedoch nicht empfohlen. + +Dabei spielt es bei Verwendung von \Macro{DeclareLayer} keine Rolle, ob eine +Ebene \PName{Name der Ebene} bereits existiert oder nicht. Sie wird in jedem +Fall mit den über die \PName{Optionenliste} angegebenen Eigenschaften +definiert. Einzelne Optionen bestehen entweder nur aus einem Schlüssel oder +aus einem Schlüssel, gefolgt von einem Gleichheitszeichen und einem Wert. Die +Optionen sind durch Komma voneinander getrennt. Um innerhalb der Werte einer +Option ein Komma oder ein Leerzeichen verwenden zu können, muss der +entsprechende Wert in geschweifte Klammern gesetzt werden. Eine Übersicht +über die Optionen und die Eigenschaften, die sie repräsentieren, findet sich +in \autoref{tab:scrlayer.layerkeys}. + +Im Unterschied zu \Macro{DeclareLayer} meldet \Macro{DeclareNewLayer} einen +Fehler, falls eine Ebene mit dem angegebenen Namen bereits existiert. Damit +wird der Anwender davor bewahrt, versehentlich mehrmals denselben Namen zu +verwenden. Dies ist insbesondere auch dann nützlich, wenn Klassen oder Pakete +intern ebenfalls Ebenen definieren. + +Dagegen definiert \Macro{ProvideLayer} die Ebene nur, wenn nicht bereits eine +Ebene mit dem angegebenen Namen existiert. Ist der Name hingegen bereits für +eine andere Ebene verwendet, so wird die neuerliche Definition ignoriert. Die +Anweisung hat also die Bedeutung: \emph{Definiere die Ebene, falls sie noch + nicht existiert.} + +Soll eine bereits existierende Ebene umdefiniert werden, so kann wahlweise +\Macro{RedeclareLayer} oder \Macro{ModifyLayer} verwendet werden. Während mit +\Macro{RedeclareLayer} die Ebene zunächst auf die Grundeinstellungen +zurückgesetzt und damit über die angegebene \PName{Optionenliste} komplett neu +definiert wird, unterbleibt bei \Macro{ModifyLayer} das Zurücksetzen. Es +werden dann nur die Eigenschaften geändert, für die in der +\PName{Optionenliste} auch Angaben vorhanden sind. Die Anwendung auf eine +zuvor noch nicht definierte Ebene stellt bei beiden Anweisungen einen Fehler +dar. + +\begin{desclist} + \desccaption{% + Optionen für die Definition von Seiten-Ebenen mit ihrer jeweiligen + Bedeutung als Ebenen-Eigenschaft\label{tab:scrlayer.layerkeys}% + }{% + Optionen für die Definition von Ebenen (\emph{Fortsetzung})% + }% + \nentry{\KOption{align}\PName{Ausrichtungszeichen}}{% + Über die \PName{Ausrichtungszeichen} wird die gewünschte Ausrichtung der + Ebene bestimmt. Dabei steht jedes einzelne \PName{Ausrichtungszeichen} für + eine mögliche Anwendung der Werte \PName{Abstand} der Optionen + \Option{hoffset} oder \Option{voffset}. Mehrere + \PName{Ausrichtungszeichen} können ohne Leerzeichen oder Komma direkt + hintereinander geschrieben werden und werden in der Reihenfolge ihres + Auftretens ausgewertet. Makros sind im Wert der Option jedoch + nicht zulässig. Zulässige \PName{Ausrichtungszeichen} sind: + \begin{description} + \item[\PValue{b} --] der Wert der Option \Option{voffset} ist der Abstand + der Unterkante der Ebene von der Oberkante des Papiers. + \item[\PValue{c} --] die Werte der Optionen \Option{hoffset} und + \Option{voffset} sind die Abstände des Zentrums der Ebene von der linken + und der oberen Kante des Papiers. + \item[\PValue{l} --] der Wert der Option \Option{hoffset} ist der Abstand + der linken Kante der Ebene von der linken Kante des Papiers. + \item[\PValue{r} --] der Wert der Option \Option{hoffset} ist der Abstand + der rechten Kante der Ebene von der linken Kante des Papiers. + \item[\PValue{t} --] der Wert der Option \Option{voffset} ist der Abstand + der Oberkante der Ebene von der Oberkante des Papiers. + \end{description} + }% + \entry{\KOption{area}\Parameter{horizontaler Abstand}\Parameter{vertikaler + Abstand}\Parameter{Breite}\Parameter{Höhe}}{% + Die zusammengesetzte Eigenschaft, resultiert in den primären Eigenschaften + \KOption{hoffset}\PName{horizontaler Abstand}, + \KOption{voffset}\PName{vertikaler Abstand}, + \KOption{width}\PName{Breite}, \KOption{height}\PName{Höhe}.% + }% + \entry{\Option{background}}{% + Mit dieser Option wird die Ebene zu einer reinen Hintergrundebene. Sie + wird also im Gegensatz zur Grundeinstellung nicht mehr gleichzeitig im + Hintergrund und im Vordergrund, sondern nur noch im Hintergrund + ausgegeben. Diese Option erwartet und erlaubt keinen Wert.% + }% + \entry{\Option{bottommargin}}{% + Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und + \Option{align} so, dass die Ebene horizontal von der linken Kante bis zur + rechten Kante des Papiers reicht und vertikal den gesamten Bereich unter + dem Seitenfuß bis zur unteren Papierkante abdeckt. Diese Option erwartet + und erlaubt keinen Wert.% + }% + \entry{\KOption{clone}\PName{Name einer Ebene}}{% + Die zusammengesetzte Eigenschaft setzt alle primären Eigenschaften + entsprechend der aktuellen, primären Eigenschaften der Ebene mit dem + angegebenen \PName{Name einer Ebene}. Es ist zu beachten, dass \PName{Name + einer Ebene} voll expandierbar sein muss und zu Buchstaben expandieren + sollte. Einige weitere Zeichen werden toleriert, ihre Verwendung wird + jedoch nicht empfohlen! Die Ebene mit dem angegebenen \PName{Name einer + Ebene} muss außerdem bereits existieren.% + }% + \entry{\KOption{contents}\PName{Code}}{% + Der angegebene \PName{Code} wird immer dann expandiert und ausgeführt, + wenn die Ebene ausgegeben wird. Damit definiert \PName{Code} das, was auf + der Ebene zu sehen ist. Es werden keine Tests durchgeführt, ob + \PName{Code} gültig und korrekt ist. Fehler in \PName{Code} können daher + zu verschiedenen Fehlermeldungen auf jeder Seite führen, auf der die Ebene + ausgegeben wird.% + }% + \entry{\Option{evenpage}}{% + Mit dieser Option wird die Ebene zu einer Ebene für linke Seiten. Sie wird + also im Gegensatz zur Grundeinstellung nicht mehr sowohl auf linken als + auch auf rechten Seiten ausgegeben. Da es linke Seiten nur im + doppelseitigen Satz gibt, schließt diese Eigenschaft quasi + \Option{twoside} mit ein. Diese Option erwartet und erlaubt keinen Wert.% + }% + \entry{\Option{floatpage}}{% + Mit dieser Option wird die Ebene zu einer Gleitseitenebene. Sie wird also + im Gegensatz zur Grundeinstellung nicht mehr auf allen Seiten, sondern nur + noch auf Gleitseiten ausgegeben. Näheres zu Gleitseiten ist der Einleitung + zu diesem Abschnitt zu entnehmen. Diese Option erwartet und erlaubt keinen + Wert.% + }% + \entry{\Option{foot}}{% + Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und + \Option{align} so, dass die Ebene den Seitenfuß in der Breite des + Textbereichs überdeckt. Diese Option erwartet und erlaubt keinen Wert.% + }% + \entry{\Option{footskip}}{% + Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und + \Option{align} so, dass die Ebene vertikal den Bereich zwischen dem + Textbereich und dem Seitenfuß in Breite des Textbereichs überdeckt. Es ist + zu beachten, dass die Höhe dieses Bereichs zwar von der Länge + \Length{footskip} abhängt, dieser jedoch nicht entspricht. Diese Option + erwartet und erlaubt keinen Wert.% + }% + \entry{\Option{foreground}}{% + Mit dieser Option wird die Ebene zu einer reinen Vodergrundebene. Sie wird + also im Gegensatz zur Grundeinstellung nicht mehr gleichzeitig im + Hintergrund und im Vordergrund, sondern nur noch im Vordergrund + ausgegeben. Diese Option erwartet und erlaubt keinen Wert.% + }% + \entry{\Option{head}}{% + Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und + \Option{align} so, dass die Ebene den Seitenkopf in der Breite des + Textbereichs überdeckt. Diese Option erwartet und erlaubt keinen Wert.% + }% + \entry{\Option{headsep}}{% + Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und + \Option{align} so, dass die Ebene den Abstand zwischen dem Seitenkopf und + dem Textbereich in der Breite des Textbereichs überdeckt. Ihre Höhe + entspricht damit der Länge \Length{headsep}. Diese Option erwartet und + erlaubt keinen Wert.% + }% + \entry{\KOption{height}\PName{Höhe}}{% + Setzt die \PName{Höhe} der Ebene. Beachten Sie, dass \PName{Höhe} + wahlweise eine \LaTeX-Länge sein kann, die mit \Macro{newlength} definiert + wurde, eine \TeX-Länge, die mit \Macro{newdimen} oder \Macro{newskip} + definiert wurde, ein Längenwert wie 10\Unit{pt} oder ein Längenausdruck + unter Verwendung von +, -, /, *, (, und ). Die genaue Syntax eines + Längenausdrucks ist \cite[Abschnitt~3.5]{manual:eTeX} zu entnehmen.% + }% + \entry{\KOption{hoffset}\PName{Abstand}}{% + Setzt den \PName{Abstand} der Ebene von der linken Kante des Papiers. Wie + der \PName{Abstand} gemessen wird, hängt von Eigenschaft \Option{align} + ab. Beachten Sie, dass \PName{Abstand} wahlweise eine \LaTeX-Länge sein + kann, die mit \Macro{newlength} definiert wurde, eine \TeX-Länge, die mit + \Macro{newdimen} oder \Macro{newskip} definiert wurde, ein Längenwert wie + 10\Unit{pt} oder ein Längenausdruck unter Verwendung von +, -, /, *, (, + und ). Die genaue Syntax eines Längenausdrucks ist + \cite[Abschnitt~3.5]{manual:eTeX} zu entnehmen.% + }% + \entry{\Option{innermargin}}{% + Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und + \Option{align} so, dass die Ebene den inneren Rand der Seite von der + Papieroberkante bis zur Papierunterkante überdeckt. Der innere Rand + entspricht im einseitigen Satz dem linken Rand. Diese Option erwartet und + erlaubt keinen Wert.% + }% + \entry{\Option{leftmargin}}{% + Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und + \Option{align} so, dass die Ebene den linken Rand der Seite von der + Papieroberkante bis zur Papierunterkante überdeckt. Diese Option erwartet + und erlaubt keinen Wert.% + }% + \entry{\Option{nonfloatpage}}{% + Mit dieser Option wird die Ebene auf Seiten beschränkt, die keine + Gleitseiten sind. Sie wird also im Gegensatz zur Grundeinstellung nicht + mehr auf allen Seiten, sondern nur noch auf Nichtgleitseiten + ausgegeben. Näheres zu Gleitseiten und Nichtgleitseiten ist der Einleitung + zu diesem Abschnitt zu entnehmen. Diese Option erwartet und erlaubt keinen + Wert.% + }% + \entry{\Option{oddpage}}{% + Mit dieser Option wird die Ebene zu einer Ebene für rechte Seiten. Sie wird + also im Gegensatz zur Grundeinstellung nicht mehr sowohl auf linken als + auch auf rechten Seiten ausgegeben. Es ist zu beachten, dass im + einseitigen Satz alle Seiten unabhängig von der Seitenzahl rechte Seiten + sind. Diese Option erwartet und erlaubt keinen Wert.% + }% + \entry{\Option{oneside}}{% + Mit dieser Option wird die Ebene zu einer Ebene für den einseitigen + Satz. Sie wird also im Gegensatz zur Grundeinstellung nicht mehr sowohl + im einseitigen als auch im doppelseitigen Satz ausgegeben. Diese Option + erwartet und erlaubt keinen Wert.% + }% + \entry{\Option{outermargin}}{% + Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und + \Option{align} so, dass die Ebene den äußeren Rand der Seite von der + Papieroberkante bis zur Papierunterkante überdeckt. Der äußere Rand + entspricht im einseitigen Satz dem rechten Rand. Diese Option erwartet und + erlaubt keinen Wert.% + }% + \entry{\Option{page}}{% + Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und + \Option{align} so, dass die Ebene die komplette Seite überdeckt. Diese + Option erwartet und erlaubt keinen Wert.% + }% + \entry{\Option{rightmargin}}{% + Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und + \Option{align} so, dass die Ebene den rechten Rand der Seite von der + Papieroberkante bis zur Papierunterkante überdeckt. Diese Option erwartet + und erlaubt keinen Wert.% + }% + \entry{\Option{textarea}}{% + Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und + \Option{align} so, dass die Ebene den kompletten Textbereich + überdeckt. Diese Option erwartet und erlaubt keinen Wert.% + }% + \entry{\Option{topmargin}}{% + Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und + \Option{align} so, dass die Ebene den oberen Rand der Seite von der linken + Kante des Papiers bis zu dessen rechter Kante überdeckt. Diese Option + erwartet und erlaubt keinen Wert.% + }% + \entry{\Option{twoside}}{% + Mit dieser Option wird die Ebene zu einer Ebene für den doppelseitigen + Satz. Sie wird also im Gegensatz zur Grundeinstellung nicht mehr sowohl + im einseitigen als auch im doppelseitigen Satz ausgegeben. Diese Option + erwartet und erlaubt keinen Wert.% + }% + \entry{\KOption{voffset}\PName{Abstand}}{% + Setzt den \PName{Abstand} der Ebene von der Papieroberkante. Wie der + \PName{Abstand} gemessen wird, hängt von Eigenschaft \Option{align} + ab. Beachten Sie, dass \PName{Abstand} wahlweise eine \LaTeX-Länge sein + kann, die mit \Macro{newlength} definiert wurde, eine \TeX-Länge, die mit + \Macro{newdimen} oder \Macro{newskip} definiert wurde, ein Längenwert wie + 10\Unit{pt} oder ein Längenausdruck unter Verwendung von +, -, /, *, (, + und ). Die genaue Syntax eines Längenausdrucks ist + \cite[Abschnitt~3.5]{manual:eTeX} zu entnehmen.% + }% + \entry{\KOption{width}\PName{Breite}}{% + Setzt die \PName{Breite} der Ebene. Beachten Sie, dass \PName{Breite} + wahlweise eine \LaTeX-Länge sein kann, die mit \Macro{newlength} definiert + wurde, eine \TeX-Länge, die mit \Macro{newdimen} oder \Macro{newskip} + definiert wurde, ein Längenwert wie 10\Unit{pt} oder ein Längenausdruck + unter Verwendung von +, -, /, *, (, und ). Die genaue Syntax eines + Längenausdrucks ist \cite[Abschnitt~3.5]{manual:eTeX} zu entnehmen.% + }% +\end{desclist} +% +\EndIndex{Cmd}{ModifyLayer}% +\EndIndex{Cmd}{RedeclareLayer}% +\EndIndex{Cmd}{ProvideLayer}% +\EndIndex{Cmd}{DeclareNewLayer}% +\EndIndex{Cmd}{DeclareLayer}% + +\begin{Declaration} + \Macro{layerxoffset}\\ + \Macro{layeryoffset}\\ + \Macro{layerwidth}\\ + \Macro{layerheight}% +\end{Declaration} +\BeginIndex{Cmd}{layerxoffset}% +\BeginIndex{Cmd}{layeryoffset}% +\BeginIndex{Cmd}{layerwidth}% +\BeginIndex{Cmd}{layerheight}% +Diese Anweisungen sind nur innerhalb der Ausgabe des mit \Option{contents} +angegebenen \PName{Code} gültig. In diesem Fall enthalten sie die tatsächlich +verwendete Position und Ausdehnung der Ebene, die für die Ausgabe verwendet +werden. Dies ist jedoch nicht zwangsläufig auch die tatsächliche Ausdehnung des +Inhalts, falls dieser beispielsweise überbreit oder überhoch ist oder die +Ebene nicht komplett ausfüllt. Eine Umdefinierung der Anweisungen und damit +Änderung der in ihnen gespeicherten Werte ist nicht gestattet und führt zu +unvorhersehbaren Ergebnissen.% +\EndIndex{Cmd}{layerheight}% +\EndIndex{Cmd}{layerwidth}% +\EndIndex{Cmd}{layeryoffset}% +\EndIndex{Cmd}{layerxoffset}% + +\begin{Declaration} + \Macro{IfLayerExists}%^^A + \Parameter{Name}\Parameter{Dann-Code}\Parameter{Sonst-Code} +\end{Declaration} +\BeginIndex{Cmd}{IfLayerExists}% +Diese Anweisung kann dazu verwendet werden, Code in Abhängigkeit davon, ob ein +eine Ebene existiert oder nicht, auszuführen. Wenn die Ebene mit dem +angegebenen \PName{Name} existiert, so wird der \PName{Dann-Code} +ausgeführt, anderenfalls der \PName{Sonst-Code}. Bitte beachten Sie, dass die +Anweisung nicht wirklich testen kann, ob eine Ebene existiert. Sie verwendet +stattdessen Heuristiken, die niemals falsch-negativ sein können, jedoch im +Extremfall falsch-positiv sein könnten. Nichts desto trotz: Falls der Test +falsch-positiv ist, läuft etwas schief. Beispielsweise könnte dies ein +Indikator für die Verwendung eines inkompatiblen Pakets oder dafür sein, dass +der Anwender etwas tut, was er besser nicht tun sollte.% +\EndIndex{Cmd}{IfLayerExists} + +\begin{Declaration} + \Macro{DestroyLayer}\Parameter{Name der Ebene} +\end{Declaration} +\BeginIndex{Cmd}{DestroyLayer}% +Existiert eine Ebene mit dem angegebenen \PName{Name der Ebene}, so werden +alle zu dieser Ebene gehörenden Makros zu \Macro{relax}. Anschließend kann die +Ebene nicht länger verwendet werden. Allerdings ist es kein Problem, falls die +Ebene Bestandteil eines mit \Package{scrlayer} definierten Seitenstils ist, da +derart zerstörte Ebenen schlicht ignoriert werden. Nichtsdestotrotz können +zerstörte Ebenen anschließend mit \Macro{DeclareNewLayer} oder +\Macro{ProvideLayer} neu definiert werden. Sie können jedoch vor einer +neuerlichen Definition nicht länger mit \Macro{RedeclareLayer} oder +\Macro{ModifyLayer} verändert werden. + +Die Anweisung ist dazu bestimmt, innerhalb von +\Macro{scrlayerOnAutoRemoveInterface} verwendet zu werden. Damit können Ebenen +die unter Verwendung von entfernbaren Anweisungen einer entfernbaren +Benutzerschnittstelle definiert wurden, zusammen mit dieser +Benutzerschnittstelle entfernt werden.% +% +\EndIndex{Cmd}{DestroyLayer}% + + +\begin{Declaration} + \Macro{layercontentsmeasure} +\end{Declaration} +\BeginIndex{Cmd}{layercontentsmeasure}% +Mit Hilfe der \KOMAScript-Option +\Option{draft}\IndexOption{draft~=\PName{Ein-Aus-Wert}} kann für das Paket +\Package{scrlayer} ein Entwurfsmodus aktiviert werden. In diesem Entwurfsmodus +wird hinter jeder Ebene zunächst eine Bemaßung der Ebene ausgegeben. Diese +Bemaßung erfolgt mit \Macro{layercontentsmeasure}. Diese Anweisung zeigt am +oberen und linken Rand der Ebene ein Maßband in Zentimeter und am rechten und +unteren Rand der Ebene ein Maßband in Zoll. Die Anweisung +\Macro{layercontentsmeasure} kann statt über die Option auch schlicht als +alleiniger \PName{Code} für die Eigenschaft \Option{contents} einer Ebene +verwendet werden.% +% +\EndIndex{Cmd}{layercontentsmeasure}% + + +\section{Deklaration und Verwaltung von Seitenstilen} +\label{sec:scrlayer.pagestyles} + +Wir kennen nun Ebenen und wissen, wie diese definiert und verwaltet +werden. Aber bisher wissen wir noch nicht, wie sie verwendet werden. Die +möglicherweise überraschende Antwort lautet: mit Hilfe von +Seitenstilen. Üblicherweise werden Seitenstile in \LaTeX{} zur Definition von +Kopf und Fuß der Seite verwendet. + +Kopf und Fuß für ungerade oder rechte Seiten werden im doppelseitigen Modus +auf Seiten mit ungerader Seitenzahl ausgegeben. Im einseitigen Modus werden +sie auf allen Seiten verwendet. Das ist unmittelbar mit den Optionen +\Option{oddpage} und \Option{evenpage} für Ebenen vergleichbar. + +Der Seitenkopf wird vor dem normalen Seiteninhalt ausgegeben. Der Seitenfuß +wird entsprechend nach dem normalen Seiteninhalt ausgegeben. Dies +korrespondiert also unmittelbar mit den Optionen \Option{background} und +\Option{foreground} für Ebenen. + +Daher liegt es nahe, Seitenstile als Listen von Ebenen zu definieren. Aber +statt nur die genannten vier Optionen, können dabei alle Eigenschaften +verwendet werden, die in \autoref{sec:scrlayer.layers} erklärt wurden. + +Als Ergebnis dieser Überlegungen ist eine Form von Seitenstilen, die +\Package{scrlayer} bietet, der Ebenen-Seitenstil. Ein solcher Ebenen-Seitenstil +besteht aus Ebenen und zusätzlich aus mehreren Haken (engl. \emph{hooks}). Die +Ebenen wurden bereits in \autoref{sec:scrlayer.layers} beschrieben. Die Haken +sind Punkte in der Expansion oder Anwendung von Seitenstilen, zu denen +zusätzlicher Code hinzugefügt werden kann. Erfahrene Anwender kennen dieses +Konzept bereits von beispielsweise \Macro{AtBeginDocument} (siehe +\cite{latex:usrguide}) oder \Macro{BeforeClosingMainAux} (siehe +\autopageref{desc:scrlfile.cmd.BeforeClosingMainAux}). + +Eine zweite Form von Seitenstilen, die \Package{scrlayer} bietet, ist der +Alias-Seitenstil oder Seitenstil-Alias. Ein Seitenstil-Alias besteht in +Wirklichkeit aus einem anderen Seitenstil. Anders ausgedrückt ist der Name eines +Seitenstil-Alias ein Alias-Name für einen anderen Seitenstil-Alias oder einen +primären Seitenstil. Daher führt die Manipulation an einem Seitenstil-Alias +zu einer Manipulation am originären Seitenstil. Ist der originäre Seitenstil +selbst ebenfalls ein Seitenstil-Alias, so führt dessen Manipulation wiederum +zu einer Manipulation dessen originären Seitenstils und immer so weiter, bis +schließlich ein realer Seitenstil verändert wird. Der Ausdruck +\emph{realer Seitenstil} wird zur Unterscheidung von einem Seitenstil-Alias +verwendet. Alle Seitenstile, die kein Seitenstil-Alias sind, sind reale +Seitenstile. Seitenstil-Aliase können nicht nur für Seitenstile definiert +werden, die mit \Package{scrlayer} definiert wurden, sondern für alle +Seitenstile. + +\begin{Declaration} + \Macro{currentpagestyle} +\end{Declaration} +\BeginIndex{Cmd}{currentpagestyle}% +Das Paket \Package{scrlayer} erweitert die \LaTeX-Anweisung +\Macro{pagestyle}\IndexCmd{pagestyle} so, dass diese \Macro{currentpagestyle} +als den Namen des jeweils aktiven Seitenstils +definiert. Es\textnote{Achtung!} ist zu beachten, dass +\Macro{thispagestyle}\IndexCmd{thispagestyle} selbst \Macro{currentpagestyle} +nicht verändert. Wird \Macro{thispagestyle} verwendet, so kann sich +\Macro{currentpagestyle} aber innerhalb der \LaTeX-Ausgabefunktion +verändern. Dies hat jedoch nur dann Auswirkungen, wenn +\Macro{currentpagestyle} bis in die \LaTeX-Ausgabefunktion geschützt +verwendet wird. + +Es sei darauf hingewiesen, dass die später in diesem Abschnitt dokumentierten +Ebenen-Seitenstile nicht auf diese Erweiterung von \Macro{pagestyle} angewiesen +sind, da sie selbst ebenfalls \Macro{currentpagestyle} umdefinieren. Die +Erweiterung wurde für die Verwendung von anderen Seitenstilen, die nicht auf +\Package{scrlayer} basieren, vorgenommen. Es ist außerdem zu +beachten\textnote{Achtung!}, dass \Macro{currentpagestyle} vor der ersten +Verwendung von \Macro{pagestyle} nach dem Laden von \Package{scrlayer} leer +ist. Bei der Definition einer Endanwender-Schnittstelle dürfte es daher +nützlich sein, mit einer impliziten \Macro{pagestyle}-Anweisung den aktuellen +Seitenstil auf eine Voreinstellung zu setzen.% +\EndIndex{Cmd}{currentpagestyle}% + +\begin{Declaration} + \Macro{BeforeSelectAnyPageStyle}\Parameter{Code}\\ + \Macro{AfterSelectAnyPageStyle}\Parameter{Code}% +\end{Declaration} +\BeginIndex{Cmd}{BeforeSelectAnyPageStyle}% +\BeginIndex{Cmd}{AfterSelectAnyPageStyle}% +Die Anweisung \Macro{BeforeSelectAnyPageStyle} fügt einem Haken +(engl. \emph{hook}) \PName{Code} hinzu, der innerhalb der Ausführung von +\Macro{pagestyle}, unmittelbar vor der Auswahl des Seitenstils ausgeführt +wird. Innerhalb von \PName{Code} kann \texttt{\#1} als Platzhalter für das +Argument von \Macro{pagestyle} verwendet werden. + +Die Anweisung \Macro{AfterSelectAnyPageStyle} arbeitet ähnlich. Allerdings +wird hier \PName{Code} ausgeführt, nachdem der Seitenstil gewählt und +\Macro{currentpagestyle} auf den Namen des realen Seitenstils gesetzt wurde. + +Es ist zu beachten\textnote{Achtung!}, dass \PName{Code} jeweils nur bei der +Wahl eines Seitenstils mit Hilfe von \Macro{pagestyle} ausgeführt wird. Wird +ein Seitenstil auf andere Art, beispielsweise mit Hilfe von +\Macro{thispagestyle}, gewählt, so wird \PName{Code} nicht ausgeführt. Es ist +außerdem zu beachten\textnote{Achtung!}, dass einmal hinzugefügter +\PName{Code} nicht mehr entfernt werden kann. Allerdings wird der \PName{Code} +lokal hinzugefügt. Sein Gültigkeitsbereich kann daher mit einer Gruppe +beschränkt werden.% +\EndIndex{Cmd}{AfterSelectAnyPageStyle}% +\EndIndex{Cmd}{BeforeSelectAnyPageStyle}% + + +\begin{Declaration} + \Macro{DeclarePageStyleAlias}% + \Parameter{Seitenstil-Alias-Name}\Parameter{originärer Seitenstil-Name}\\ + \Macro{DeclareNewPageStyleAlias}% + \Parameter{Seitenstil-Alias-Name}\Parameter{originärer Seitenstil-Name}\\ + \Macro{ProvidePageStyleAlias}% + \Parameter{Seitenstil-Alias-Name}\Parameter{originärer Seitenstil-Name}\\ + \Macro{RedeclarePageStyleAlias}% + \Parameter{Seitenstil-Alias-Name}\Parameter{originärer Seitenstil-Name}% +\end{Declaration} +\BeginIndex{Cmd}{DeclarePageStyleAlias}% +\BeginIndex{Cmd}{DeclareNewPageStyleAlias}% +\BeginIndex{Cmd}{ProvidePageStyleAlias}% +\BeginIndex{Cmd}{RedeclarePageStyleAlias}% +Diese Anweisungen können verwendet werden, um einen Seitenstil mit dem Namen +\PName{Seitenstil-Alias-Name} zu definieren, der einfach nur ein Alias für +einen bereits existierenden Seitenstil mit dem Namen \PName{originärer + Seitenstil-Name} ist. Falls bereits ein Seitenstil mit dem Namen +\PName{Seitenstil-Alias-Name} existiert, wird dieser vor der Erzeugung des +Alias mit \Macro{DeclarePageStyleAlias} oder \Macro{RedeclarePageStyleAlias} +zerstört. + +Die Anweisung \Macro{DeclareNewPageStyleAlias} erzeugt eine Fehlermeldung, +falls zuvor bereits ein Seitenstil mit dem Namen \PName{Seitenstil-Alias-Name} +definiert wurde. Dabei spielt es keine Rolle, ob der existierende Seitenstil +selbst ein Alias-Seitenstil, ein Ebenen-Seitenstil oder eine andere Art von +Seitenstil ist. + +Die Anweisung \Macro{ProvidePageStyleAlias} definiert den Alias-Seitenstil +nur, falls nicht bereits ein Seitenstil mit dem Namen +\PName{Seitenstil-Alias-Name} existiert. Falls ein solcher Seitenstil +existiert, bleibt dieser erhalten und die Anweisung tut schlicht nichts. + +Im Gegensatz zu den anderen Anweisungen erwartet +\Macro{RedeclarePageStyleAlias}, dass bereits ein Seitenstil mit dem Namen +\PName{Seitenstil-Alias-Name} existiert. Anderenfalls erzeugt die Anweisung +eine Fehlermeldung.% +\EndIndex{Cmd}{RedeclarePageStyleAlias}% +\EndIndex{Cmd}{ProvidePageStyleAlias}% +\EndIndex{Cmd}{DeclareNewPageStyleAlias}% +\EndIndex{Cmd}{DeclarePageStyleAlias} + +\begin{Declaration} + \Macro{DestroyPageStyleAlias}\Parameter{Seitenstil-Alias-Name}% +\end{Declaration} +\BeginIndex{Cmd}{DestroyPageStyleAlias}% +Mit dieser Anweisung wird der Seitenstil-Alias mit dem angegebenen Namen +\PName{Seitenstil-Alias-Name} für \LaTeX{} wieder undefiniert, wenn es +tatsächlich einen Alias-Seitenstil dieses Namens gibt. Anschließend kann der +Seitenstil beispielsweise mit \Macro{DeclareNewAliasPageStyle} oder +\Macro{ProvideAliasPageStyle} neu definiert werden. + +Die Anweisung ist dazu bestimmt innerhalb von +\Macro{scrlayerOnAutoRemoveInterface} verwendet zu werden, um Seitenstile, die +als Teil eines Endanwender-Interfaces definiert wurden, beim Entfernen dieses +Interfaces mit zu entfernen.% +\EndIndex{Cmd}{DestroyPageStyleAlias}% + +\begin{Declaration} + \Macro{GetRealPageStyle}\Parameter{Seitenstil-Name}% +\end{Declaration} +\BeginIndex{Cmd}{GetRealPageStyle}% +Diese Anweisung sucht rekursiv nach dem tatsächlichen Namen eines +Seitenstils, wenn der angegebene \PName{Seitenstil-Name} zu einem +Alias-Seitenstil gehört. Ist \PName{Seitenstil-Name} nicht der Name eines +Alias-Seitenstils, so ist das Ergebnis \PName{Seitenstil-Name} selbst. Das +gilt auch, falls ein Seitenstil namens \PName{Seitenstil-Name} gar nicht +existiert. Die Anweisung ist voll expandierbar und kann damit beispielsweise +auch im zweiten Argument einer \Macro{edef}-Anweisung verwendet werden. +% +\EndIndex{Cmd}{GetRealPageStyle}% + + +\begin{Declaration} + \Macro{DeclarePageStyleByLayers}% + \OParameter{Optionenliste}\Parameter{Seitenstil-Name}% + \Parameter{Ebenenliste}\\ + \Macro{DeclareNewPageStyleByLayers}% + \OParameter{Optionenliste}\Parameter{Seitenstil-Name}% + \Parameter{Ebenenliste}\\ + \Macro{ProvidePageStyleByLayers}% + \OParameter{Optionenliste}\Parameter{Seitenstil-Name}% + \Parameter{Ebenenliste}\\ + \Macro{RedeclarePageStyleByLayers}% + \OParameter{Optionenliste}\Parameter{Seitenstil-Name}% + \Parameter{Ebenenliste}% +\end{Declaration} +\BeginIndex{Cmd}{DeclarePageStyleByLayers}% +\BeginIndex{Cmd}{DeclareNewPageStyleByLayers}% +\BeginIndex{Cmd}{ProvidePageStyleByLayers}% +\BeginIndex{Cmd}{RedeclarePageStyleByLayers}% +Diese Anweisungen deklarieren einen Seitenstil mit dem +Namen \Parameter{Seitenstil-Name}. Der Seitenstil besteht aus einer Anzahl von +Ebenen, die in der mit Komma separierten \PName{Ebenenliste} angegeben +sind. Es ist zu beachten\textnote{Achtung!}, dass sowohl +\PName{Seitenstil-Name} als auch \PName{Ebenenliste} voll expandierbar sein +muss und die Expansion zu einer Reihe von Buchstaben führen sollte. Einige +andere Zeichen werden zwar toleriert, ihre Verwendung wird jedoch nicht +empfohlen. + +Die \PName{Optionenliste} ist eine mit Komma separierte Liste von +\texttt{\PName{Schlüssel}=\PName{Wert}}-Optionen. Diese Optionen können +verwendet werden, um zusätzliche Eigenschaften zu setzen und zusätzliche +Möglichkeiten zu nutzen. Derzeit werden sie verwendet, um Code an bestimmten +Stellen der Aktivierung oder Verwendung eines Seitenstils über Haken +(engl. \emph{hooks}) auszuführen. Für allgemeine Informationen zu Haken sei +auf die Einleitung zu diesem Abschnitt verwiesen. Details zu den Haken und +ihrer Bedeutung sind \autoref{tab:scrlayer.pagestyle.hooks} zu entnehmen. + +\begin{desclist} + \desccaption{% + Optionen und gleichnamige Haken für Ebenen-Seitenstile (in der Reihenfolge + ihrer Abarbeitung)\label{tab:scrlayer.pagestyle.hooks}% + }{% + Optionen für die Haken von Ebenen-Seitenstilen (\emph{Fortsetzung})% + }% + \entry{\KOption{onselect}\PName{Code}}{% + Der \PName{Code} dieses Hakens wird immer dann ausgeführt, wenn der + Seitenstil beispielsweise mit \Macro{pagestyle} ausgewählt wird. Es ist zu + beachten, dass \Macro{thispagestyle} selbst keinen Seitenstil unmittelbar + auswählt, sondern der Seitenstil in diesem Fall erst innerhalb der + Ausgaberoutine von \LaTeX{} aktiviert wird.% + }% + \entry{\KOption{oninit}\PName{Code}}{% + Der \PName{Code} dieses Hakens wird immer dann ausgeführt, wenn die + Ausgabe der Ebenen für den Seitenstil initialisiert wird. Beachten Sie, + dass dies für jede Seite zweimal geschieht: einmal für Hintergrund-Ebenen + und einmal für Vordergrund-Ebenen.% + }% + \entry{\KOption{ononeside}\PName{Code}}{% + Der \PName{Code} dieses Hakens wird immer dann ausgeführt, wenn im + einseitigen Modus die Ausgabe der Ebenen für den Seitenstil initialisiert + wird. Beachten Sie, dass dies für jede Seite zweimal geschieht: einmal für + Hintergrund-Ebenen und einmal für Vordergrund-Ebenen.% + }% + \entry{\KOption{ontwoside}\PName{Code}}{% + Der \PName{Code} dieses Hakens wird immer dann ausgeführt, wenn im + doppelseitigen Modus die Ausgabe der Ebenen für den Seitenstil + initialisiert wird. Beachten Sie, dass dies für jede + Seite zweimal geschieht: einmal für Hintergrund-Ebenen und einmal für + Vordergrund-Ebenen.% + }% + \entry{\KOption{onoddpage}\PName{Code}}{% + Der \PName{Code} dieses Hakens wird immer dann ausgeführt, wenn die + Ausgabe der Ebenen für den Seitenstil auf einer rechten Seite + initialisiert wird. Beachten Sie, dass dies für jede + Seite zweimal geschieht: einmal für Hintergrund-Ebenen und einmal für + Vordergrund-Ebenen. Beachten Sie außerdem, dass im + einseitigen Modus alle Seiten rechte Seiten sind.% + }% + \entry{\KOption{onevenpage}\PName{Code}}{% + Der \PName{Code} dieses Hakens wird immer dann ausgeführt, wenn die + Ausgabe der Ebenen für den Seitenstil auf einer linken Seite initialisiert + wird. Beachten Sie, dass dies für jede Seite zweimal + geschieht: einmal für Hintergrund-Ebenen und einmal für + Vordergrund-Ebenen. Beachten Sie außerdem, dass im + einseitigen Modus keine linken Seiten existieren.% + }% + \entry{\KOption{onfloatpage}\PName{Code}}{% + Der \PName{Code} dieses Hakens wird immer dann ausgeführt, wenn die + Ausgabe der Ebenen für den Seitenstil auf einer Gleitumgebungsseite + initialisiert wird. Beachten Sie, dass dies für jede + Seite zweimal geschieht: einmal für Hintergrund-Ebenen und einmal für + Vordergrund-Ebenen. Beachten Sie außerdem, dass + Gleitumgebungsseiten nur diejenigen Seiten sind, auf denen eine oder + mehrere p-platzierte Gleitumgebungen ausgegeben werden.% + }% + \entry{\KOption{onnonfloatpage}\PName{Code}}{% + Der \PName{Code} dieses Hakens wird immer dann ausgeführt, wenn die + Ausgabe der Ebenen für den Seitenstil auf einer Seite initialisiert wird, + die keine Gleitumgebungsseite ist. Beachten Sie, dass + dies für jede Seite zweimal geschieht: einmal für Hintergrund-Ebenen und + einmal für Vordergrund-Ebenen. Beachten Sie außerdem, + dass Gleitumgebungsseiten nur diejenigen Seiten sind, auf denen eine oder + mehrere p-platzierte Gleitumgebungen ausgegeben werden, und auf anderen + Seiten sehr wohl t-, b- oder h-platzierte Gleitumgebungen stehen können.% + }% + \entry{\KOption{onbackground}\PName{Code}}{% + Der \PName{Code} dieses Hakens wird immer dann ausgeführt, wenn die + Ausgabe der Ebenen für den Hintergrund einer Seite initialisiert + wird. Beachten Sie, dass dies auf jeder Seite genau + einmal der Fall ist.% + }% + \entry{\KOption{onforeground}\PName{Code}}{% + Der \PName{Code} dieses Hakens wird immer dann ausgeführt, wenn die + Ausgabe der Ebenen für den Vordergrund einer Seite initialisiert + wird. Beachten Sie, dass dies auf jeder Seite genau + einmal der Fall ist.% + }% +\end{desclist} + +Der Unterschied zwischen \Macro{DeclarePageStyleByLayers} und +\Macro{DeclareNewPageStyleByLayers} besteht darin, dass +\Macro{DeclareNewPageStyleByLayers} eine Fehlermeldung erzeugt, falls bereits +ein Seitenstil des Namens \PName{Seitenstil-Name} +existiert. Beachten\textnote{Achtung!} Sie, dass die Deklaration eines +Seitenstils, der bereits ein Alias für einen anderen Seitenstil ist (siehe +\Macro{DeclareAliasPageStyle} zuvor in diesem Abschnitt) nicht zu der +Umdefinierung des angegebenen Alias-Seitenstils, sondern des realen +Seitenstils (siehe \Macro{GetRealPageStyle} zuvor in diesem Abschnitt) führt. + +Im Unterschied dazu wird bei \Macro{ProvidePageStyleByLayers} der Seitenstil +unverändert erhalten, wenn bereits ein Seitenstil des Namens +\PName{Seitenstil-Name} existiert. Existiert kein solcher Seitenstil, so wird +er wie bei \Macro{DeclarePageStyleByLayers} oder +\Macro{DeclareNewPageStyleByLayers} neu definiert. + +Die Anweisung \Macro{RedeclarePageStyleByLayers} wiederum erwartet, dass +bereits ein Seitenstil des Namens \PName{Seitenstil-Name} existiert und +definiert dessen realen Seitenstil dann um. Existiert jedoch noch kein +Seitenstil des angegebenen Namens, so resultiert daraus eine Fehlermeldung. + +Beachten Sie auch die nachfolgenden Anmerkungen zum Pseudo-Seitenstil +\Pagestyle{@everystyle@}.% +\EndIndex{Cmd}{RedeclarePageStyleByLayers}% +\EndIndex{Cmd}{ProvidePageStyleByLayers}% +\EndIndex{Cmd}{DeclareNewPageStyleByLayers}% +\EndIndex{Cmd}{DeclarePageStyleByLayers}% + + +\begin{Declaration} + \Pagestyle{@everystyle@}\\ + \Pagestyle{empty} +\end{Declaration} +\BeginIndex{Pagestyle}{@everysel@}% +\BeginIndex{Pagestyle}{empty}% +Das Paket \Package{scrlayer} definiert von sich aus bereits zwei in gewisser +Weise spezielle Seitenstile. Der erste davon ist +\Pagestyle{@everystyle@}. Dieser Seitenstil sollte niemals als normaler +Seitenstil beispielsweise mit \Macro{pagestyle} oder \Macro{thispagestyle} +oder als Ziel eines Alias-Seitenstils verwendet werden. Stattdessen werden die +Ebenen und Haken dieses Seitenstils von allen anderen Ebenen-Seitenstilen mit +verwendet. Dabei werden die Haken von \Pagestyle{@everystyle@} jeweils vor den +entsprechenden Haken und die Ebenen jeweils vor den entsprechenden Ebenen des +aktiven Seitenstils ausgeführt. Damit ist das Hinzufügen einer Ebene zum +Seitenstil \Pagestyle{@everystyle@} oder von Code zu einem Haken dieses +Seitenstils vergleichbar mit dem Hinzufügen einer Ebene beziehungsweise von +Haken-Code zu allen Ebenen-Seitenstile. Der eine entscheidende Unterschied +ist: Befehle, die sich auf die Ebenen eines Seitenstils beziehen, +beispielsweise \Macro{ForEachLayerOfPageStyle}, +\Macro{AddLayersToPageStyleBeforeLayer} oder +\Macro{AddLayersToPageStyleAfterLayer} lassen die Ebenen des Seitenstils +\Pagestyle{@everystyle@} unberücksichtigt, wenn sie auf einen anderen +Ebenen-Seitenstil angewendet werden. + +Der zweite etwas andere Ebenen-Seitenstil ist \Pagestyle{empty}. Normalerweise +wird bereits vom \LaTeX-Kern ein Seitenstil dieses Namens definiert. Dieser +Seitenstil hat einen leeren Kopf und Fuß. Das Paket \Package{scrlayer} +definiert diesen Seitenstil als Ebenen-Seitenstil ohne Ebenen +um. Nichtsdestotrotz kann er wie jeder andere Ebenen-Seitenstil verwendet +werden. Der Hauptvorteil dieses Ebenen-Seitenstils gegenüber dem +ursprünglichen Seitenstil aus dem \LaTeX-Kern ist, dass er ebenfalls die Haken +und Ebenen des Pseudo-Seitenstils \Pagestyle{@everystyle@} ausführt.% +\EndIndex{Pagestyle}{empty}% +\EndIndex{Pagestyle}{@everysel@}% + + +\begin{Declaration} + \KOption{onpsselect}\PValue{Code}\\ + \KOption{onpsinit}\PValue{Code}\\ + \KOption{onpsoneside}\PValue{Code}\\ + \KOption{onpstwoside}\PValue{Code}\\ + \KOption{onpsoddpage}\PValue{Code}\\ + \KOption{onpsevenpage}\PValue{Code}\\ + \KOption{onpsfloatpage}\PValue{Code}\\ + \KOption{onpsnonfloatpage}\PValue{Code}\\ + \KOption{onpsbackground}\PValue{Code}\\ + \KOption{onpsforeground}\PValue{Code} +\end{Declaration} +\BeginIndex{Option}{onpsselect~=\PName{Code}}% +\BeginIndex{Option}{onpsinit~=\PName{Code}}% +\BeginIndex{Option}{onpsoneside~=\PName{Code}}% +\BeginIndex{Option}{onpstwoside~=\PName{Code}}% +\BeginIndex{Option}{onpsoddpage~=\PName{Code}}% +\BeginIndex{Option}{onpsevenpage~=\PName{Code}}% +\BeginIndex{Option}{onpsfloatpage~=\PName{Code}}% +\BeginIndex{Option}{onpsnonfloatpage~=\PName{Code}}% +\BeginIndex{Option}{onpsbackground~=\PName{Code}}% +\BeginIndex{Option}{onpsforeground~=\PName{Code}}% +Für jeden der Haken aus \autoref{tab:scrlayer.pagestyle.hooks} existiert +außerdem eine \KOMAScript-Option. Die Namen der \KOMAScript-Optionen ähneln +den Namen der Optionen für die Befehle zur Deklaration von +Ebenen-Seitenstilen. Es wird lediglich ein »\texttt{ps}« nach dem +»\texttt{on}« am Anfang des Namens eingefügt. Die Werte dieser +\KOMAScript-Optionen werden als Anfangswerte für die entsprechenden Haken +verwendet. Dieser Anfangswert wird dann um alle Werte, die dem entsprechenden +Haken in der \PName{Optionenliste} der Deklarationsbefehle zugewiesen werden, +erweitert. Der Anfangswert kann mit Hilfe der Anweisung +\Macro{ModifyLayerPageStyleOptions}, die später in diesem Abschnitt erklärt +wird, entfernt werden.% +\EndIndex{Option}{onpsforeground~=\PName{Code}}% +\EndIndex{Option}{onpsbackground~=\PName{Code}}% +\EndIndex{Option}{onpsnonfloatpage~=\PName{Code}}% +\EndIndex{Option}{onpsfloatpage~=\PName{Code}}% +\EndIndex{Option}{onpsevenpage~=\PName{Code}}% +\EndIndex{Option}{onpsoddpage~=\PName{Code}}% +\EndIndex{Option}{onpstwoside~=\PName{Code}}% +\EndIndex{Option}{onpsoneside~=\PName{Code}}% +\EndIndex{Option}{onpsinit~=\PName{Code}}% +\EndIndex{Option}{onpsselect~=\PName{Code}}% + +\begin{Declaration} + \KOption{deactivatepagestylelayers}\PName{Ein-Aus-Wert}\\ + \Macro{ForEachLayerOfPageStyle}\Parameter{Seitenstil-Name}% + \Parameter{Code} +\end{Declaration} +\BeginIndex{Option}{deactivatepagestylelayers~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Cmd}{ForEachLayerOfPageStyle}% +Solange die \KOMAScript-Option \Option{deactivatepagestylelayers} nicht +aktiviert ist, kann mit \Macro{ForEachLayerOfPageStyle} für jede Ebene des +Seitenstils mit dem Namen \PName{Seitenstil-Name} beliebiger \PName{Code} +ausgeführt werden. Innerhalb von \PName{Code} dient dabei \PValue{\#1} als +Platzhalter für den Namen der gerade abgearbeiteten Ebene. +\begin{Example} + Angenommen, Sie wollen die Namen aller Ebenen des Seitenstils + \PValue{scrheadings} als Komma-separierte Liste, so können Sie dies mit +\begin{lstcode} + \newcommand*\commaatlist{} + \ForEachLayerOfPageStyle{scrheadings}{% + \commaatlist#1\gdef\commaatlist{, }} + \let\commaatlist\relax +\end{lstcode} + erreichen. +\end{Example} +Die Verwendung von \Macro{gdef} an Stelle von \Macro{def} ist im Beispiel +notwendig, weil \PName{Code} innerhalb einer Gruppe ausgeführt wird, um +unerwünschte Seiteneffekte zu minimieren. Die Anweisung \Macro{gdef} definiert +\Macro{commaatlist} jedoch global um, so dass beim Aufruf des Codes für die +nächste Ebene die Änderung Bestand hat. + +Diverse Anweisungen von \Package{scrlayer} setzen ebenfalls +\Macro{ForEachLayerOfPageStyle} ein. Auch deren Funktion kann daher über die +\KOMAScript-Option \Option{deactivatepagestylelayers} verändert werden. Diese +Option kann daher verwendet werden, um alle Ebenen aller Seitenstile temporär +zu deaktivieren oder zu verstecken. +% +\EndIndex{Cmd}{ForEachLayerOfPageStyle}% +\EndIndex{Option}{deactivatepagestylelayers~=\PName{Ein-Aus-Wert}}% + +\begin{Declaration} + \Macro{AddLayersToPageStyle}% + \Parameter{Seitenstil-Name}\Parameter{Ebenenliste}\\ + \Macro{AddLayersAtBeginOfPageStyle}% + \Parameter{Seitenstil-Name}\Parameter{Ebenenliste}\\ + \Macro{AddLayersAtEndOfPageStyle}% + \Parameter{Seitenstil-Name}\Parameter{Ebenenliste}\\ + \Macro{RemoveLayersFromPageStyle}% + \Parameter{Seitenstil-Name}\Parameter{Ebenenliste}% +\end{Declaration} +\BeginIndex{Cmd}{AddLayersToPageStyle}% +\BeginIndex{Cmd}{AddLayersAtBeginOfPageStyle}% +\BeginIndex{Cmd}{AddLayersAtEndOfPageStyle}% +\BeginIndex{Cmd}{RemoveLayersFromPageStyle}% +Diese Anweisungen können verwendet werden, um Ebenen zu einem Seitenstil +hinzuzufügen oder davon zu entfernen. Der Seitenstil wird dabei über seinen +\PName{Seitenstil-Name} referenziert. Die Ebenen werden in einer durch Komma +separierten \PName{Ebenenliste} angegeben. + +Die Anweisungen \Macro{AddLayersToPageStyle} und +\Macro{AddLayersAtEndOfPageStyle} fügen die Ebenen am Ende der Ebenenliste des +Seitenstils ein. Logisch liegen die neu hinzugefügten Ebenen also über oder +vor den bereits vorhandenen Ebenen, wobei Hintergrund-Ebenen natürlich +weiterhin logisch hinter der Textebene und damit auch hinter allen +Vordergrund-Ebenen liegen. + +Die Anweisung \Macro{AddLayersAtBeginOfPageStyle} fügt die Ebenen hingegen am +Anfang der Ebenenliste des Seitenstils ein. Dabei werden die Ebenen in der +Reihenfolge am Anfang eingefügt, in der sie auch in der \PName{Ebenenliste} +stehen. Damit wird die Ebene, die ganz am Ende von \PName{Ebenenliste} steht, +nach dem Einfügen die erste und damit die unterste oder hinterste Ebene +(jeweils entweder der Vordergrund oder der Hintergrundebenen) sein. + +Der Versuch, mit Hilfe von \Macro{RemoveLayersFromPageStyle} Ebenen von einem +Seitenstil zu entfernen, die gar nicht Teil des Seitenstils sind, wird +ignoriert, führt also nicht zu einer Fehlermeldung. Dagegen ist der Versuch, +Ebenen zu einem Seitenstil, der kein Ebenen-Seitenstil ist und auch kein +Alias-Seitenstil, der zu einem Ebenen-Seitenstil führt, hinzuzufügen oder von +einem solchen zu entfernen ein Fehler und wird als solcher gemeldet.% +\EndIndex{Cmd}{RemoveLayersFromPageStyle}% +\EndIndex{Cmd}{AddLayersAtEndOfPageStyle}% +\EndIndex{Cmd}{AddLayersAtBeginOfPageStyle}% +\EndIndex{Cmd}{AddLayersToPageStyle}% + +\begin{Declaration} + \Macro{AddLayersToPageStyleBeforeLayer}% + \Parameter{Seitenstil-Name}\Parameter{Ebenenliste}% + \Parameter{Referenzebenen-Name}\\ + \Macro{AddLayersToPageStyleAfterLayer}% + \Parameter{Seitenstil-Name}\Parameter{Ebenenliste}% + \Parameter{Referenzebenen-Name}% +\end{Declaration} +\BeginIndex{Cmd}{AddLayersToPageStyleBeforeLayer}% +\BeginIndex{Cmd}{AddLayersToPageStyleAfterLayer}% +Diese beiden Befehle ähneln den vorangegangenen. Allerdings wird hier +zusätzlich ein \PName{Referenzebenen-Name} angegeben. Die Ebenen des über den +\PName{Seitenstil-Name} angegebenen Seitenstils werden nach dieser +Referenzebene durchsucht. Die Ebenen der \PName{Ebenenliste} werden dann vor +respektive nach jedem Auf"|treten der Referenzebene in die Ebenen des +Seitenstils eingefügt. Dabei bleibt die Reihenfolge der Ebenen der +\PName{Ebenenliste} erhalten.%| + +Ist die Referenzebene nicht Bestandteil des Seitenstils, so wird auch nichts +eingefügt. Ist der Seitenstil hingegen kein Ebenen-Seitenstil und auch kein +Alias-Seitenstil, der zu einem Ebenen-Seitenstil führt, so wird ein Fehler +gemeldet.% +\EndIndex{Cmd}{AddLayersToPageStyleAfterLayer}% +\EndIndex{Cmd}{AddLayersToPageStyleBeforeLayer}% + +\begin{Declaration} + \Macro{UnifyLayersAtPageStyle}\Parameter{Seitenstil-Name} +\end{Declaration} +\BeginIndex{Cmd}{UnifyLayersAtPageStyle}% +Bei den Befehlen zur Definition eines Seitenstils oder zum Hinzufügen von +Ebenen zu einem Seitenstil wird nicht darauf geachtet, ob eine Ebene mehrfach +Bestandteil eines Seitenstils ist oder wird. Dies ist also durchaus +zulässig. In den meisten Fällen hat es allerdings keinen Sinn, eine Ebene +mehrfach als Bestandteil eines Seitenstils zu haben. Daher kann mit Hilfe von +\Macro{UnifyLayersAtPageStyle} dafür gesorgt werden, dass alle +Ebenen-Dubletten vom Seitenstil mit dem angegebenen \PName{Seitenstil-Name} +entfernt werden. + +Es ist zu beachten\textnote{Achtung!}, dass sich dabei die Reihenfolge der +Ebenen ändern kann. Wird also eine spezielle Reihenfolge gewünscht, sollten +stattdessen alle Ebenen entfernt und die gewünschten Ebenen in der erwarteten +Reihenfolge neu hinzugefügt werden. \Macro{UnifyLayersAtPageStyle} ist in einem +solchen Fall also nicht geeignet.% +\EndIndex{Cmd}{UnifyLayersAtPageStyle}% + +\begin{Declaration} + \Macro{ModifyLayerPageStyleOptions}% + \Parameter{Seitenstil-Name}\Parameter{Optionenliste}\\ + \Macro{AddToLayerPageStyleOptions}% + \Parameter{Seitenstil-Name}\Parameter{Optionenliste}% +\end{Declaration} +\BeginIndex{Cmd}{ModifyLayerPageStyleOptions}% +\BeginIndex{Cmd}{AddToLayerPageStyleOptions}% +Mit diesen beiden Anweisungen können die Optionen und damit die Haken eines +Ebenen-Seitenstils nachträglich verändert werden. Bei +\Macro{ModifyLayerPageStyleOptions} werden dabei genau die Optionen, die in +der durch Komma separierten \PName{Optionenliste} angegeben sind auf die +dortigen neuen Werte gesetzt. Die bisherigen Werte gehen dabei verloren. Es +sind alle Optionen aus \autoref{tab:scrlayer.pagestyle.hooks}, +\autopageref{tab:scrlayer.pagestyle.hooks} erlaubt. Optionen beziehungsweise +Haken, die nicht in der \PName{Optionenliste} angegeben sind, bleiben hingegen +unverändert. Diese Anweisung ist damit auch die einzige Möglichkeit, die +globalen Voreinstellungen der \KOMAScript-Optionen von einem Seitenstil zu +entfernen. + +Die Anweisung \Macro{AddToLayerPageStyleOptions} unterscheidet sich insofern, +als die neuen Werte die bisher vorhandenen Werte nicht überschreiben, sondern +diesen hinzugefügt oder -- genauer gesagt -- an diese angehängt werden.% +\EndIndex{Cmd}{AddToLayerPageStyleOptions}% +\EndIndex{Cmd}{ModifyLayerPageStyleOptions}% + +\begin{Declaration} + \Macro{IfLayerPageStyleExists}% + \Parameter{Seitenstil-Name}\Parameter{Dann-Code}\Parameter{Sonst-Code}\\ + \Macro{IfRealLayerPageStyleExists}%^ + \Parameter{Seitenstil-Name}\Parameter{Dann-Code}\Parameter{Sonst-Code}% +\end{Declaration} +\BeginIndex{Cmd}{IfLayerPageStyleExists}% +\BeginIndex{Cmd}{IfRealLayerPageStyleExists}% +Mit diesen Anweisungen kann Code in Abhängigkeit davon ausgeführt werden, ob +ein Seitenstil ein Ebenen-Seitenstil ist oder nicht. Dabei führt +\Macro{IfLayerPageStyleExists} den \PName{Dann-Code} nur dann aus, wenn +\PName{Seitenstil-Name} der Name eines Ebenen-Seitenstils oder der Name eines +Alias-Seitenstils ist, der zu einem Ebenen-Seitenstil führt. Anderenfalls +führt die Anweisung den \PName{Sonst-Code} aus. + +Die Anweisung \Macro{IfRealLayerPageStyleExists} geht einen Schritt weiter und +führt den \PName{Dann-Code} nur dann aus, wenn der über +\PName{Seitenstil-Name} angegebene Seitenstil selbst ein Ebenen-Seitenstil +ist. Im Falle eines Alias-Seitenstils führt diese Anweisung also selbst dann +\PName{Sonst-Code} aus, wenn dieser Alias-Seitenstil zu einem +Ebenen-Seitenstil führt.% +\EndIndex{Cmd}{IfRealLayerPageStyleExists}% +\EndIndex{Cmd}{IfLayerPageStyleExists}% + +\begin{Declaration} + \Macro{IfLayerAtPageStyle}% + \Parameter{Seitenstil-Name}\Parameter{Ebenen-Name}% + \Parameter{Dann-Code}\Parameter{Sonst-Code}\\ + \Macro{IfSomeLayersAtPageStyle}% + \Parameter{Seitenstil-Name}\Parameter{Ebenenliste}% + \Parameter{Dann-Code}\Parameter{Sonst-Code}\\ + \Macro{IfLayersAtPageStyle}% + \Parameter{Seitenstil-Name}\Parameter{Ebenenliste}% + \Parameter{Dann-Code}\Parameter{Sonst-Code}% +\end{Declaration} +\BeginIndex{Cmd}{IfLayerAtPageStyle}% +\BeginIndex{Cmd}{IfSomeLayersAtPageStyle}% +\BeginIndex{Cmd}{IfLayersAtPageStyle}% +Mit diesen Anweisungen kann überprüft werden ob ein oder mehrere Ebenen +Bestandteil eines Seitenstils sind. Anweisung \Macro{IfLayerAtPageStyle} +erwartet dabei nach dem \PName{Seitenstil-Name} im ersten Argument im zweiten +Argument genau einen \PName{Ebenen-Name}. Ist die entsprechende Ebene +Bestandteil des Seitenstils, so wird der \PName{Dann-Code} ausgeführt, +anderenfalls der \PName{Sonst-Code}. + +Die Anweisungen \Macro{IfSomeLayersAtPageStyle} und +\Macro{IfLayersAtPageStyle} erlauben hingegen im zweiten Argument eine durch +Komma separierte \PName{Ebenenliste}. Dabei führt +\Macro{IfSomeLayersAtPageStyle} den \PName{Dann-Code} bereits aus, wenn +\emph{mindestens eine} der Ebenen Bestandteil des Seitenstils ist. Dagegen +führt \Macro{IfLayersAtPageStyle} den \PName{Dann-Code} nur aus, wenn +\emph{alle} Ebenen Bestandteil des Seitenstils sind. Ist die Bedingung nicht +erfüllt, so wird jeweils \PName{Sonst-Code} ausgeführt. + +Durch geeignete Schachtelung sind auch komplexe Bedingungen abbildbar. Gibt +man statt einer \PName{Ebenenliste} jeweils nur einen \PName{Ebenen-Name} an, +so sind alle drei Anweisungen gleichbedeutend.% +\EndIndex{Cmd}{IfLayersAtPageStyle}% +\EndIndex{Cmd}{IfSomeLayersAtPageStyle}% +\EndIndex{Cmd}{IfLayerAtPageStyle}% + +\begin{Declaration} + \Macro{DestroyRealLayerPageStyle}\Parameter{Ebenen-Seitenstil-Name} +\end{Declaration} +\BeginIndex{Cmd}{DestroyRealLayerPageStyle}% +Mit dieser Anweisung kann ein Ebenen-Seitenstil aus \LaTeX-Sicht wieder +undefiniert werden. Dies gilt jedoch nur, wenn es einen Ebenen-Seitenstil mit +dem Namen \PName{Ebenen-Seitenstil-Name} auch tatsächlich gibt. Handelt es sich +stattdessen um einen Alias-Seitentstil -- auch wenn dieser zu einem +Ebenen-Seitenstil führt -- oder um einen anderen Seitenstil oder ist gar kein +Seitenstil mit dem Namen \PName{Ebenen-Seitenstil-Name} bekannt, so geschieht +nichts, die Anweisung wird ignoriert. + +Falls \PName{Ebenen-Seitenstil-Name} der Name des aktuellen Seitenstils ist, so +wird der aktuelle Seitenstil auf eine Art leerer Seitenstil gesetzt. Falls der +Spezial-Seitenstil, der durch \Macro{thispagestyle} gesetzt wurde, auf +\PName{Ebenen-Seitenstil-Name} lautet, so wird dieser einfach nur +zurückgesetzt. Die vorherige Anweisung \Macro{thispagestyle} verliert damit +ihre aktuelle Auswirkung. + +Es ist zu beachten\textnote{Achtung!}, dass die Ebenen des Seitenstils nicht +automatisch mit vernichtet werden. Falls Sie die Ebenen ebenfalls vernichten +möchten, so können Sie dies beispielsweise mit: +\begin{lstcode}[belowskip=\dp\strutbox] + \ForEachLayerOfPageStyle{...}{\DestroyLayer{#1}} +\end{lstcode} +vor der Vernichtung des Seitenstils selbst erreichen. + +Die Anweisung ist dazu gedacht innerhalb der automatischen Entfernung einer +Endanwender-Schnittstelle verwendet zu werden. Siehe +\autoref{sec:scrlayer.enduserinterfaces} für weitere Informationen zu diesem +Thema.% +\EndIndex{Cmd}{DestroyRealLayerPageStyle}% + +\LoadCommon{20} % \section{Höhe von Kopf und Fuß} + +\LoadCommon{21} % \section{Beeinflussung der Inhalte von Seitenstilen} + +\section{Definition und Verwaltung von Schnittstellen für Endanwender} +\label{sec:scrlayer.enduserinterfaces} + +Das Paket \Package{scrlayer} stellt eine Benutzerschnittstelle zur Verfügung +um (konkurrierende) Schnittstellen für Endanwender definieren und verwalten zu +können. Möglicherweise wird diese Schnittstelle langfristig wieder aus +\Package{scrlayer} verschwinden und dann stattdessen von \Package{scrbase} +übernommen werden. Derzeit ist diese Schnittstelle aber noch hoch +experimentell und wird daher von eigenen Befehlen innerhalb von +\Package{scrlayer} nur für Unterpakete von \Package{scrlayer} bereit +gestellt. Es empfiehlt sich derzeit nicht, sich darauf zu verlassen, dass die +automatische Entfernung einer konkurrierenden Schnittstelle +funktioniert. Stattdessen sollte die Verwendung konkurrierender Schnittstellen +vermieden werden. + +Dieser Abschnitt beschreibt lediglich die Schnittstellen-Anweisungen für die +Definition einer Endanwender-Schnittstelle. Für Endanwender selbst ist es +damit von geringem Interesse. Vielmehr richtet sich dieser Teil der Anleitung +an Autoren von Paketen und Klassen, die auf \Package{scrlayer} +aufbauen. Endanwender finden Informationen zu konkreten +Endanwender-Schnittstellen in \autoref{cha:scrlayer-scrpage}, +\autoref{cha:scrlayer-scrpage-experts} und \autoref{cha:scrlayer-notecolumn}. + +\begin{Declaration} + \Macro{scrlayerInitInterface}\OParameter{Schnittstellen-Name} +\end{Declaration} +\BeginIndex{Cmd}{scrlayerInitInterface}% +Mit dieser Anweisung wird eine neue Schnittstelle mit dem Namen +\PName{Schnittstellen-Name} registriert. Das Argument +\PName{Schnittstellen-Name} muss einzigartig sein. Das bedeutet, dass eine +Schnittstelle gleichen Namens noch nicht registriert sein darf. Sollte dies +doch der Fall sein, so wird ein Fehler ausgegeben. + +Diese Anweisung sollte immer ganz am Anfang einer Endanwender-Schnittstelle +stehen. Daher wird sie hier auch zuerst erklärt. Wird das optionale Argument +-- einschließlich der eckigen Klammern -- weg gelassen, so wird dafür +\PValue{\Macro{@currname}.\Macro{@currext}} verwendet. Für Klassen und +Pakete ist dies der Dateiname der Klasse respektive des Pakets. Aber +selbstverständlich kann jede andere Zeichenfolge der Kategorie \emph{letter} +oder \emph{other} verwendet werden. Dies ist beispielsweise sinnvoll, wenn +eine Klasse oder ein Paket mehrere Endanwender-Schnittstellen definiert.% +\EndIndex{Cmd}{scrlayerInitInterface}% + +\begin{Declaration} + \KOption{forceoverwrite}\PName{Ein-Aus-Wert}\\ + \KOption{autoremoveinterfaces}\PName{Ein-Aus-Wert}\\ + \Macro{scrlayerAddToInterface}% + \OParameter{Schnittstellen-Name}\Parameter{Befehl}\Parameter{Code}\\ + \Macro{scrlayerAddCsToInterface}% + \OParameter{Schnittstellen-Name}\Parameter{Befehlssequenz}\Parameter{Code} +\end{Declaration} +\BeginIndex{Option}{forceoverwrite}% +\BeginIndex{Option}{autoremoveinterfaces}% +\BeginIndex{Cmd}{scrlayerAddToInterface}% +\BeginIndex{Cmd}{scrlayerAddCsToInterface}% +Eine der besonderen Eigenschaften der Endanwender-Schnittstellen von +\Package{scrlayer} ist es, dass die Schnittstelle verwendete Befehle (auch +bekannt als \emph{Makros} oder engl. \emph{macros}) registrieren sollte. Dies +kann mit \Macro{scrlayerAddToInterface} erfolgen. Das optionale Argument +\PName{Schnittstellen-Name} entspricht hier dem Namen, der mit +\Macro{scrlayerInitInterface} zuvor registriert wurde. + +Werden\textnote{Achtung!} Anweisungen nicht nur während des Ladens einer +Klasse oder eines Pakets, sondern auch zur Laufzeit definiert, so ist das +optionale Argument auch dann zu verwenden, wenn es dem Dateinamen der Klasse +beziehungsweise des Pakets entspricht, da die Werte von \Macro{@currname} und +\Macro{@currext} nur während des Ladens Gültigkeit besitzen. + +Das erste obligatorische Argument ist der \PName{Befehl}\footnote{\PName{Befehl} + besteht aus einem umgekehrten Schrägstrich (engl. \emph{backslash}) gefolgt + von einer \PName{Befehlssequenz}, die entweder aus Zeichen der + Kategorie \emph{letter} oder aus genau einem Zeichen der Kategorie + \emph{other} besteht, oder aus einem Zeichen der Kategorie \texttt{active} + (ohne umgekehrten Schrägstrich davor).}, der zu der +Endanwender-Schnittstelle hinzugefügt werden soll. Falls der Befehl +definiert werden kann, erfolgt dies. Außerdem wird dann der Befehl auf +\Macro{relax} gesetzt und \PName{Code} wird ausgeführt. Innerhalb von +\PName{Code} kann der \PName{Befehl} dann beispielsweise mit Hilfe von +\Macro{newcommand}\PName{Befehl} definiert werden. + +Wann aber kann ein \PName{Befehl} definiert werden? Ist ein \PName{Befehl} +undefiniert oder \Macro{relax}, so kann er immer definiert werden. Wurde ein +\PName{Befehl} bereits definiert \emph{und} für eine andere +Endanwender-Schnittstelle registriert \emph{und} wurde die \KOMAScript-Option +\Option{autoremoveinterface} aktiviert, so wird diese andere +Endanwender-Schnittstelle automatisch entfernt, der \PName{Befehl} auf +\Macro{relax} gesetzt und für die angegebene neue Endanwender-Schnittstelle +registriert. Damit ist \PName{Befehl} auch dann definierbar. Falls ein +\PName{Befehl} bereits definiert ist, \emph{aber nicht} Teil einer anderen +Endanwender-Schnittstelle ist, \emph{und} falls die \KOMAScript-Option +\Option{forceoverwrite} aktiviert wurde, wird \PName{Befehl} ebenfalls +\Macro{relax} und für die angegebene Endanwender-Schnittstelle +registriert. Der \PName{Befehl} ist also auch in diesem Fall definierbar. In +allen anderen Fällen ist er jedoch nicht definierbar, also insbesondere, falls +er bereits definiert ist und die \KOMAScript-Optionen +\Option{autoremoveinterface} und \Option{forceoverwrite} deaktiviert sind. + +Die Anweisung \Macro{scrlayerAddCsToInterface} arbeitet ganz ähnlich der +vorgenannten Anweisung \Macro{scrlayerAddToInterface}. Allerdings erwartet sie +als erstes Argument keinen \PName{Befehl}, sondern eine +\PName{Befehlssequenz}\footnote{Eine \PName{Befehlssequenz} muss voll + expandierbar sein und ihre Expansion muss zu Zeichen der Kategorie + \emph{letter}, \emph{other} oder \emph{space} führen.}.% +% +\EndIndex{Cmd}{scrlayerAddCsToInterface}% +\EndIndex{Cmd}{scrlayerAddToInterface}% +\EndIndex{Option}{autoremoveinterfaces}% +\EndIndex{Option}{forceoverwrite}% + +\begin{Declaration} + \Macro{scrlayerOnAutoRemoveInterface}%^^A + \OParameter{Schnittstellen-Name}\Parameter{Code} +\end{Declaration} +\BeginIndex{Cmd}{scrlayerOnAutoRemoveInterface}% +Für den Fall, dass die Endanwender-Schnittstelle namens +\PName{Schnittstellen-Name} automatisch entfernt wird (siehe +\KOMAScript-Option \Option{autoremoveinterface} zuvor in diesem Abschnitt) +kann zusätzlich \PName{Code} ausgeführt werden. Dies kann beispielsweise +verwendet werden, um Ebenen oder Seitenstile automatisch mit zu vernichten +(siehe \Macro{DestroyLayer}, \Macro{DestroyAliasPageStyle}, and +\Macro{DestroyRealLayerPageStyle}), die auf Befehlen der +Endanwender-Schnittstelle beruhen. Bezüglich des optionalen Arguments +\PName{Schnittstellen-Name} sei auf die Erklärung zu +\Macro{scrlayerInitInterface} verwiesen.% +\EndIndex{Cmd}{scrlayerOnAutoRemoveInterface}% +% +\EndIndex{Package}{scrlayer}% + +%%% Local Variables: +%%% mode: latex +%%% mode: flyspell +%%% coding: iso-latin-1 +%%% ispell-local-dictionary: "de_DE" +%%% TeX-master: "../guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlfile.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlfile.tex index ea00f9fa9b3..c7dfe74b3f1 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlfile.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlfile.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrlfile.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlfile.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ============================================================================ -\ProvidesFile{scrlfile.tex}[2012/02/25 KOMA-Script guide (chapter: scrlfile)] +\KOMAProvidesFile{scrlfile.tex} + [$Date: 2013-11-24 10:49:38 +0100 (So, 24. Nov 2013) $ + KOMA-Script guide (chapter: scrlfile)] \chapter{Paketabhängigkeiten mit \Package{scrlfile} beherrschen} @@ -605,6 +607,28 @@ mit Hilfe von \Macro{RequirePackage} vor der Klasse zu laden. \EndIndex{Cmd}{ReplacePackage}% \EndIndex{Cmd}{ReplaceClass}% +\begin{Declaration} + \Macro{UnReplaceInput}\Parameter{Dateinamen}\\ + \Macro{UnReplacePackage}\Parameter{Paket}\\ + \Macro{UnReplaceClass}\Parameter{Klasse}% +\end{Declaration} +\BeginIndex{Cmd}{UnReplaceInput}% +\BeginIndex{Cmd}{UnReplacePackage}% +\BeginIndex{Cmd}{UnReplaceClass}% +Eine\ChangedAt{v3.12}{\Package{scrlfile}} Ersetzung kann auch wieder +aufgehoben werden. Dabei sollten Ersetzungen von Dateien immer mit +\Macro{UnReplaceInput}, Ersetzungen von Paketen mit \Macro{UnReplacePackage} +und Ersetzungen von Klassen mit \Macro{UnReplaceClass} aufgehoben werden. Nach +der Aufhebung der Ersetzung führen Ladebefehle für den entsprechenden +\PName{Dateiname}, das entsprechende \PName{Paket} oder die entsprechende +\PName{Klasse} dann wieder dazu, dass die Datei, das Paket oder die Klasse +selbst an Stelle der Ersatzdatei, des Ersatzpakets oder der Ersatzklasse +geladen wird.% +\EndIndex{Cmd}{UnReplaceClass}% +\EndIndex{Cmd}{UnReplacePackage}% +\EndIndex{Cmd}{UnReplaceInput}% + + \section{Dateien gar nicht erst einlesen} \label{sec:scrlfile.prevent} @@ -616,9 +640,13 @@ zu einem Problem kommt, muss man irgendwie das Laden des problematischen Paketes verhindern. Auch hier bietet \Package{scrlfile} eine einfache Lösung. \begin{Declaration} - \Macro{PreventPackageFromLoading}\Parameter{Paketliste} + \Macro{PreventPackageFromLoading}\OParameter{Stattdessencode}% + \Parameter{Paketliste}\\ + \Macro{PreventPackageFromLoading*}\OParameter{Stattdessencode}% + \Parameter{Paketliste} \end{Declaration} \BeginIndex{Cmd}{PreventPackageFromLoading}% +\BeginIndex{Cmd}{PreventPackageFromLoading*}% Wird diese Anweisung\ChangedAt{v3.08}{\Package{scrlfile}} vor dem Laden eines Paket mit \Macro{usepackage}\IndexCmd{usepackage}, \Macro{RequirePackage}\IndexCmd{RequirePackage} oder @@ -650,7 +678,22 @@ Wie im Beispiel zu sehen ist, kann man das Paket \Package{scrlfile} auch bereits vor der Klasse laden. In diesem Fall muss das Laden dann aber mit Hilfe von \Macro{RequirePackage}\IndexCmd{RequirePackage} erfolgen, da \Macro{usepackage} vor \Macro{documentclass} verboten ist. -% + +Wird eine leere \PName{Paketliste} angegeben, oder wird ein Paket angegeben, +das bereits geladen ist, so gibt \Macro{PreventPackageFromLoading} eine +Warnung aus, während +\Macro{PreventPackageFromLoading*}\ChangedAt{v3.12}{\Package{scrlfile}} +lediglich einen entsprechenden Hinweis in die Log-Datei schreibt. + +Das optionale Argument\ChangedAt{v3.12}{\Package{scrlfile}} kann verwendet +werden, wenn an Stelle des Ladens des Pakets etwas anderes getan werden +soll. Innerhalb des \PName{Stattdessencode}s dürfen jedoch keine anderen +Pakete und keine Dateien geladen werden. Zum Laden eines anderen Pakets siehe +\Macro{ReplacePackage} in \autoref{sec:scrlfile.macros} auf +\autopageref{desc:scrlfile.cmd.ReplacePackage}. Beachten Sie bitte auch, dass +der \PName{Stattdessencode} mehrfach ausgeführt wird, falls Sie versuchen, +das Paket mehrfach zu laden!% +\EndIndex{Cmd}{PreventPackageFromLoading*}% \EndIndex{Cmd}{PreventPackageFromLoading} \begin{Declaration} @@ -699,14 +742,59 @@ An dieser Stelle sei darauf hingewiesen, dass Sie bei Manipulationen an der mit \Macro{StorePreventPackageFromLoading} zwischengespeicherten Liste selbst die Verantwortung für eine korrekte Wiederherstellbarkeit tragen. So muss die Liste unbedingt mit Komma separiert sein, sollte keine Leerzeichen oder -Gruppenklammern enthalten und muss voll expandierbar sein. -% +Gruppenklammern enthalten und muss voll expandierbar sein.% + +Beachten\textnote{Achtung!} Sie bitte auch, dass +\Macro{ResetPreventPackageFromLoading} den \PName{Stattdessencode} für ein +Paket nicht löscht, sondern nur vorübergehend dessen Ausführung nicht mehr +erfolgt.% \EndIndex{Cmd}{ResetPreventPackageFromLoading}% \EndIndex{Cmd}{StorePreventPackageFromLoading}% + +\begin{Declaration} + \Macro{UnPreventPackageFromLoading}\Parameter{Paketliste}\\ + \Macro{UnPreventPackageFromLoading*}\Parameter{Paketliste} +\end{Declaration} +\BeginIndex{Cmd}{UnPreventPackageFromLoading}% +\BeginIndex{Cmd}{UnPreventPackageFromLoading*}% +Statt\ChangedAt{v3.12}{\Package{scrlfile}} die Liste der Pakete, für die das +Laden verhindert werden soll, komplett zurück zu setzen, kann man auch +einzelne oder mehrere Pakete gezielt von dieser Liste entfernen. Die +Sternvariante des Befehls löscht außerdem den \PName{Stattdessencode}, der für +das Paket gespeichert ist. Falls die Verhinderungsliste beispielsweise aus +einer gespeicherten Liste wiederhergestellt wird, wird dann der +\PName{Stattdessencode} trotzdem nicht mehr ausgeführt.% +% +\begin{Example} + Angenommen, Sie wollen zwar verhindern, dass ein Paket \Package{foo} + geladen wird, wollen aber nicht, dass ein eventuell bereits gespeicherter + \PName{Stattdessencode} ausgeführt wird. Stattdessen soll nur Ihr neuer + \PName{Stattdessencode} ausgeführt werden. Dies ist wie folgt möglich: +\begin{lstcode} + \UnPreventPackageFromLoading*{foo} + \PreventPackageFromLoading[\typeout{Stattdessencode}]{foo} +\end{lstcode} + Sollte das Paket zuvor gar nicht vom Laden ausgenommen worden sein, so spielt + dies für die Anweisung \Macro{UnPreventPackageFromLoading*} keine Rolle. + + Natürlich können Sie die Anweisung indirekt auch nutzen, um den + \PName{Stattdessencode} aller Pakete zu löschen: +\begin{lstcode} + \StorePreventPackageFromLoading\TheWholePreventList + \UnPreventPackageFromLoading*{\TheWholePreventList} + \PreventPackageFromLoading{\TheWholePreventList} +\end{lstcode} + Die Pakete werden dann zwar noch immer nicht geladen, ihr + \PName{Stattdessencode} existiert aber nicht mehr und wird nicht mehr + ausgeführt.% +\end{Example}% +\EndIndex{Cmd}{UnPreventPackageFromLoading*}% +\EndIndex{Cmd}{UnPreventPackageFromLoading}% % \EndIndex{Package}{scrlfile} %%% Local Variables: %%% mode: latex +%%% coding: iso-latin-1 %%% TeX-master: "../guide" %%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2-experts.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2-experts.tex index 8f1f41c862d..925f81c246b 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2-experts.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2-experts.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrlttr2-experts.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlttr2-experts.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ============================================================================ -\ProvidesFile{scrlttr2-experts.tex}[2012/03/01 KOMA-Script guide (chapter: scrlttr2 for experts)] +\ProvidesFile{scrlttr2-experts.tex}[2013/10/04 KOMA-Script guide (chapter: scrlttr2 for experts)] \chapter{Zusätzliche Informationen zur Briefklasse \Class{scrlttr2}} @@ -85,6 +85,12 @@ L den Pseudolängen. Der Nachteil dieses Vorgehens besteht darin, dass man mit diesen Makros nicht so einfach rechnen kann wie mit echten Längen. +Bitte beachten\textnote{Achtung!} Sie unbedingt, dass die Pseudolängen zwar +intern als Makros implementiert sind, bei den Befehlen zur Nutzung der +Pseudolängen jedoch nur die Namen anzugeben sind. Diese werden wie die Namen +von \LaTeX-Zählern und im Gegensatz zu Makros oder echten Längen ohne +umgekehrten Schrägstrich geschrieben! + Wer nun einwenden will, dass \LaTeX{} in der empfohlenen und für \KOMAScript{} benötigten Installation mit \eTeX{} inzwischen das oben genannte Beschränkungsproblem nicht mehr besitzt, hat Recht. Allerdings kam diese @@ -94,7 +100,7 @@ Eine Auf"|listung aller von \Class{scrlttr2} definierten und verwendeten Pseudolängen ist \autoref{tab:scrlttr2-experts.pseudoLengths} zu entnehmen. Dabei ist auch angegeben, wo in den nachfolgenden Unterabschnitten nähere Erklärungen zu der jeweiligen Pseudolänge zu finden -sind. +sind.%| \autoref{fig:scrlttr2-experts.pseudoLengths} auf \autopageref{fig:scrlttr2-experts.pseudoLengths} zeigt eine schematische @@ -134,17 +140,17 @@ auf einige weniger h Abstand des Brief"|fußes von der linken Kante des Papiers; Werte größer der Breite oder kleiner der negativen Breite des Papiers werden gesondert behandelt (\autoref{sec:scrlttr2-experts.firstFoot}, - \autopageref{desc:scrlttr2-experts.plength.firstfoothpos})% + \autopageref{desc:scrlttr2-experts.plength.firstfoothpos})%| }% \pentry{firstfootvpos}{% Abstand des Brief"|fußes von der oberen Kante des Papiers (\autoref{sec:scrlttr2-experts.firstFoot}, - \autopageref{desc:scrlttr2-experts.plength.firstfootvpos})% + \autopageref{desc:scrlttr2-experts.plength.firstfootvpos})%| }% \pentry{firstfootwidth}{% Breite des Brief"|fußes (\autoref{sec:scrlttr2-experts.firstFoot}, - \autopageref{desc:scrlttr2-experts.plength.firstfootwidth})% + \autopageref{desc:scrlttr2-experts.plength.firstfootwidth})%| }% \pentry{firstheadhpos}{% Abstand des Briefkopfes von der linken Kante des Papiers; Werte @@ -1463,8 +1469,8 @@ der \PName{Visualisierungsstil} \PValue{rule} zur Verf Feld farbig hinterlegt. Hierbei kann nicht zwischen geschlossenen und nach unten offenen Feldern unterschieden werden. Stattdessen werden nach unten offene Felder mit einer Mindesthöhe dargestellt. Der -dritte\important{\PValue{edge}} verfügbare \PName{Visualisierungsstil} ist -\PValue{edge}. Dabei werden die Ecken der Felder markiert. Bei nach unten +dritte\important{\PValue{edges}} verfügbare \PName{Visualisierungsstil} ist +\PValue{edges}. Dabei werden die Ecken der Felder markiert. Bei nach unten offenen Feldern entfallen dabei die unteren Eckmarkierungen. Die Größe der Eckmarkierungen ist im Makro \Macro{edgesize} abgelegt und mit 1\Unit{ex} voreingestellt. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2.tex index 5d595de2c55..5cd5cce2ea5 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlttr2.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrlttr2.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlttr2.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ============================================================================ -\ProvidesFile{scrlttr2.tex}[2012/01/01 KOMA-Script guide (chapter: scrlttr2)] +\KOMAProvidesFile{scrlttr2.tex}% + [$Date: 2013-12-12 12:01:33 +0100 (Do, 12. Dez 2013) $ + KOMA-Script guide (chapter: scrlttr2)] \chapter{Die Briefklasse \Class{scrlttr2}} \labelbase{scrlttr2} @@ -97,8 +99,6 @@ nachfolgenden Abschnitten. \autoref{tab:scrlttr2.variables} gibt eine Übersicht über alle in \Class{scrlttr2} definierten Variablen. % \begin{desclist} - % Umbruchkorrektur - \renewcommand*{\abovecaptionskipcorrection}{-\normalbaselineskip}% \desccaption{Von der Klasse \Class{scrlttr2} unterstützte Variablen\label{tab:scrlttr2.variables}} {Von der Klasse \Class{scrlttr2} unterstützte Variablen (\emph{Fortsetzung})} @@ -152,6 +152,10 @@ nachfolgenden Abschnitten. \autoref{tab:scrlttr2.variables} gibt eine \ventry{fromlogo}{Anweisungen zum Setzen des Absenderlogos (\autoref{sec:scrlttr2.firstpage}, \autopageref{desc:scrlttr2.variable.fromlogo})}% + \ventry{frommobilephone}{% + \ChangedAt{v3.12}{\Class{scrlttr2}}% + Handynummer des Absenders (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.frommobilephone})}% \ventry{fromname}{vollständiger Absendername (\autoref{sec:scrlttr2.firstpage}, \autopageref{desc:scrlttr2.variable.fromname})}% @@ -169,6 +173,9 @@ nachfolgenden Abschnitten. \autoref{tab:scrlttr2.variables} gibt eine \ventry{location}{erweiterte Absenderangabe (\autoref{sec:scrlttr2.firstpage}, \autopageref{desc:scrlttr2.variable.location})}% + \ventry{mobilephoneseparator}{Trennzeichen zwischen Handybezeichner und + Handynummer (\autoref{sec:scrlttr2.firstpage}, + \autopageref{desc:scrlttr2.variable.mobilephoneseparator})}% \ventry{myref}{Geschäftszeilenfeld »Mein Zeichen« (\autoref{sec:scrlttr2.firstpage}, \autopageref{desc:scrlttr2.variable.myref})}% @@ -342,13 +349,14 @@ normale Variante den Inhalt behandelt.% \label{sec:scrlttr2.pseudoLength} \BeginIndex{}{Pseudolängen} -Längen werden bei \LaTeX{} mit den Anweisungen \Macro{newlength}, -\Macro{setlength}, \Macro{addtolength} und \Macro{the}\PName{Länge} -verarbeitet. Sehr viele Pakete nutzen aber auch Makros, also Anweisungen, um -Längen zu speichern. \KOMAScript{} erweitert dieses Verfahren um die -Möglichkeit, solche in Makros gespeicherten Längen mit ähnlichen Anweisungen -zu verarbeiten wie echte Längen. Diese eigentlich in Makros abgelegten Längen -heißen bei \KOMAScript{} daher Pseudolängen. +Längen werden bei \LaTeX{} mit den drei Anweisungen +\Macro{newlength}\IndexCmd{newlength}, \Macro{setlength}\IndexCmd{setlength} +und \Macro{addtolength}\IndexCmd{addtolength} verarbeitet. Sehr viele Pakete +nutzen aber auch Makros, also Anweisungen, um Längen zu +speichern. \KOMAScript{} erweitert dieses Verfahren um die Möglichkeit, solche +in Makros gespeicherten Längen mit ähnlichen Anweisungen zu verarbeiten wie +echte Längen. Diese eigentlich in Makros abgelegten Längen heißen bei +\KOMAScript{} daher Pseudolängen. Eine Liste aller in \Class{scrlttr2} definierten Pseudolängen findet sich in \autoref{tab:scrlttr2-experts.pseudoLengths}, @@ -368,6 +376,11 @@ Setzen von Pseudol wird auch dies im Abschnitt für Experten ab \autopageref{desc:scrlttr2-experts.cmd.@setplength} erklärt. +Bitte beachten\textnote{Achtung!} Sie unbedingt, dass die Pseudolängen zwar +intern als Makros implementiert sind, bei den Befehlen zur Nutzung der +Pseudolängen jedoch nur die Namen anzugeben sind. Diese werden wie die Namen +von \LaTeX-Zählern und im Gegensatz zu Makros oder echten Längen ohne +umgekehrten Schrägstrich geschrieben! \begin{Declaration} \Macro{useplength}\Parameter{Name} @@ -401,17 +414,25 @@ verwendet werden.% 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 ein \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.% +Mit der Anweisung +\Macro{setlengthtoplength}\important{\Macro{setlengthtoplength}} kann man +einer echten \PName{Länge} das Vielfache einer \PName{Pseudolänge} zuweisen. +Allerdings wird hier ein \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. % +\iffalse % Umbruchkorrektur + Als \PName{Faktor} kann dann wahlweise ein Minuszeichen oder \PValue{-1} + verwendet werden. +% +\else % + \PName{Faktor} ist dann \PValue{-1}. +% +\fi +% +Die Anweisung\important{\Macro{addtolengthplength}} \Macro{addtolengthplength} +arbeitet ähnlich. Nur wird die mit \PName{Faktor} multiplizierte +\PName{Pseudolänge} zur \PName{Länge} addiert.% % \EndIndex{Cmd}{setlengthtoplength}% \EndIndex{Cmd}{addtolengthplength}% @@ -422,7 +443,7 @@ addiert.% \LoadCommon[scrlttr]{1} % \section{Kompatibilität zu früheren Versionen von \KOMAScript} -\iffree{}{\vfill}% Umbruchoptimierung! +%\iffree{}{\vfill}% Umbruchoptimierung! \LoadCommon[scrlttr]{2} % \section{Entwurfsmodus} @@ -704,14 +725,13 @@ gesetzt werden, so muss eben das Argument von \Macro{opening} leer bleiben. \label{fig:scrlttr2.letter-0} \end{figure} \end{Example} -\iffalse% Umbruchkorrekturtext - -Bei\textnote{Tipp!} maschinell erstellten Briefen wurde früher häufig auf -eine Anrede verzichtet. Das lag daran, dass die Möglichkeiten für -individualisierte Serienbriefe noch kaum vorhanden waren. Heute sind -persönliche Anreden auch bei massenhaft erzeugten Werbebriefen üblich.% +\iftrue % Umbruchkorrekturtext +\begin{Explain} + Bei\textnote{Tipp!} maschinell erstellten Briefen wurde früher meist auf + eine Anrede verzichtet, da individualisierte Serienbriefe kaum möglich + waren. Heute sind persönliche Anreden auch bei Massensendungen üblich.% +\end{Explain}% \fi -% \EndIndex{Cmd}{opening}% @@ -785,10 +805,12 @@ automatisch noch optional. 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. + Vergessenes nachträglich in den Brief einzuarbeiten. % +\iffalse % Umbruchkorrektur + 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.% +\fi \end{Explain} % \EndIndex{Cmd}{ps} @@ -915,121 +937,8 @@ hier von der \PName{Bezeichnung} und dem \PName{Inhalt} der Variablen % \EndIndex{}{Schrift>Groesse=Größe} - \LoadCommon[scrlttr]{5} % \section{Textauszeichnungen} -Mit der Anweisung \Macro{usekomafont} kann die aktuelle Schriftart auf -diejenige umgeschaltet werden, die für das angegebene \PName{Element} -definiert ist. - -Ein allgemeines Beispiel für die Anwendung von \Macro{setkomafont} und -\Macro{usekomafont} finden Sie in \autoref{sec:maincls.textmarkup}, -\autopageref{desc:maincls.setkomafont.example}. - -\begin{desclist} - \desccaption{% - Elemente, deren Schrift bei der Klasse \Class{scrlttr2} mit - \Macro{setkomafont} und \Macro{addtokomafont} verändert werden - kann\label{tab:scrlttr2.elementsWithoutText}% - }{% - Elemente, deren Schrift verändert werden kann (\emph{Fortsetzung})% - }% - \feentry{addressee}{Name und Anschrift im Anschriftfenster - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.option.addrfield})}% - \feentry{backaddress}{Rücksendeadresse für einen Fensterbriefumschlag - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.option.backaddress})}% - \feentry{descriptionlabel}{Label, also das optionale Argument von - \Macro{item}, in einer \Environment{description}-Umgebung - (\autoref{sec:scrlttr2.lists}, - \autopageref{desc:scrlttr2.env.description})}% - \feentry{foldmark}{Faltmarke auf dem Briefpapier; ermöglicht Änderung der - Linienfarbe (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.option.foldmarks})}% - \feentry{footnote}{% - Marke und Text einer Fußnote (\autoref{sec:scrlttr2.footnotes}, - \autopageref{desc:scrlttr2.cmd.footnote})}% - \feentry{footnotelabel}{% - Marke einer Fußnote; Anwendung erfolgt nach dem Element - \FontElement{footnote} (\autoref{sec:scrlttr2.footnotes}, - \autopageref{desc:scrlttr2.cmd.footnote})}% - \feentry{footnotereference}{% - Referenzierung der Fußnotenmarke im Text - (\autoref{sec:scrlttr2.footnotes}, - \autopageref{desc:scrlttr2.cmd.footnote})}% - \feentry{footnoterule}{% - Linie\ChangedAt{v3.07}{\Class{scrlttr2}} über dem Fußnotenapparat - (\autoref{sec:scrlttr2.footnotes}, - \autopageref{desc:scrlttr2.cmd.setfootnoterule})}% - \feentry{fromaddress}{Absenderadresse im Briefkopf - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.fromaddress})}% - \feentry{fromname}{Name des Absenders im Briefkopf abweichend von - \PValue{fromaddress} (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.fromname})}% - \feentry{fromrule}{Linie im Absender im Briefkopf; gedacht für - Farbänderungen (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.option.fromrule})}% - \feentry{labelinglabel}{% - Label, also das optionale Argument der \Macro{item}-Anweisung, und - Trennzeichen, also das optionale Argument der - \Environment{labeling}-Umgebung, in einer \Environment{labeling}-Umgebung - (siehe \autoref{sec:scrlttr2.lists}, - \autopageref{desc:scrlttr2.env.labeling})}% - \feentry{labelingseparator}{% - Trennzeichen, also das optionale Argument der - \Environment{labeling}-Umgebung, in einer \Environment{labeling}-Umgebung; - Anwendung erfolgt nach dem Element \FontElement{labelinglabel} (siehe - \autoref{sec:scrlttr2.lists}, \autopageref{desc:scrlttr2.env.labeling})}% - \feentry{pagefoot}{% - wird nach dem Element \FontElement{pageheadfoot} für den mit Variable - \Variable{nextfoot}\IndexVariable{nextfoot} definieren Seitenfuß verwendet - oder wenn das Paket \Package{scrpage2} geladen ist (\autoref{cha:scrpage}, - \autopageref{desc:scrpage.fontelement.pagefoot})}% - \feentry{pagehead}{% - alternative Bezeichnung für \FontElement{pageheadfoot}}% - \feentry{pageheadfoot}{% - Seitenkopf und Seitenfuß bei allen von \KOMAScript{} definierten - Seitenstilen (\autoref{sec:scrlttr2.pagestyle}, - \autopageref{desc:scrlttr2.fontelement.pageheadfoot})}% - \feentry{pagenumber}{% - Seitenzahl im Kopf oder Fuß der Seite (\autoref{sec:scrlttr2.pagestyle}, - \autopageref{desc:scrlttr2.fontelement.pagenumber})}% - \feentry{pagination}{% - alternative Bezeichnung für \FontElement{pagenumber}}% - \feentry{refname}{% - Bezeichnung der Felder in der Geschäftszeile - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.yourref})}% - \feentry{refvalue}{% - Werte der Felder in der Geschäftszeile (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.yourref})}% - \feentry{specialmail}{Versandart im Anschriftfenster - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.specialmail})}% - \feentry{subject}{Betreff in der Brieferöffnung - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.subject})}% - \feentry{title}{Titel in der Brieferöffnung - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.title})}% - \feentry{toaddress}{Abweichung vom Element \FontElement{addressee} für die - Anschrift (ohne Name) des Empfängers im Anschriftfeld - (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.toaddress})}% - \feentry{toname}{Abweichung vom Element \FontElement{addressee} für den - Namen des Empfängers im Anschriftfeld (\autoref{sec:scrlttr2.firstpage}, - \autopageref{desc:scrlttr2.variable.toname})}% -\end{desclist} -% -\EndIndex{Cmd}{setkomafont}% -\EndIndex{Cmd}{addtokomafont}% -\EndIndex{Cmd}{usekomafont}% -% -\EndIndex{}{Schrift>Art}% -\EndIndex{}{Text>Auszeichnung} - \section{Briefbogen} \label{sec:scrlttr2.firstpage} \BeginIndex{}{Briefbogen} @@ -1066,7 +975,6 @@ Briefseiten abgesehen von der ersten. \KOption{foldmarks}\PName{Einstellung} \end{Declaration} \BeginIndex{Option}{foldmarks~=\PName{Einstellung}}% -\looseness=-1 % Umbruchkorrektur Falt- oder Falzmarken sind kleine horizontale Striche am linken und kleine vertikale Striche am oberen Rand. \KOMAScript{} unterstützt für den Briefbogen derzeit drei konfigurierbare horizontale und eine konfigurierbare vertikale @@ -1133,7 +1041,7 @@ abh abschalten. Wenn die Voreinstellung zuvor noch nicht geändert wurde, können Sie das Abschalten wie folgt erreichen: \begin{lstcode} - \KOMAoption{foldmarks=blmt} + \KOMAoptions{foldmarks=blmt} \end{lstcode} Besteht die Möglichkeit, dass die Voreinstellung bereits geändert wurde, so sollten Sie lieber auf Nummer Sicher gehen. Unser Beispiel ist dann @@ -1168,16 +1076,25 @@ keine \KOption{enlargefirstpage}\PName{Ein-Aus-Wert} \end{Declaration} \BeginIndex{Option}{enlargefirstpage~=\PName{Ein-Aus-Wert}}% -Die erste Seite eines Briefes fällt immer aus dem normalen Satzspiegel. Von -\Class{scrlttr2} werden Mechanismen bereitgestellt, um die Höhe und vertikale -Ausrichtung von Kopf und Fuß der ersten Seite unabhängig von den Folgeseiten -zu bestimmen. Würde dadurch der Fuß der ersten Seite in den -Textbereich\Index{Text>Bereich} 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} auf +\begin{Explain} + Die erste Seite eines Briefes fällt % + \iftrue % Umbruchkorrektur + aufgrund der vielen Konsultationselemente wie dem Briefkopf oder der + Anschrift + % + \fi % + immer aus dem normalen Satzspiegel. Von \Class{scrlttr2} werden Mechanismen + bereitgestellt, um die Höhe und vertikale Ausrichtung von Kopf und Fuß der + ersten Seite unabhängig von den Folgeseiten zu bestimmen. Würde dadurch der + Fuß der ersten Seite in den Textbereich\Index{Text>Bereich} ragen, so wird + der Textbereich der ersten Seite automatisch mit Hilfe von + \Macro{enlargethispage}\IndexCmd{enlargethispage} verkleinert. +\end{Explain} +Soll der Textbereich auch automatisch mit \Macro{enlargethispage} 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} auf \autopageref{desc:scrlttr2-experts.plength.firstfootvpos}. Als \PName{Ein-Aus-Wert} kann dabei einer der Standardwerte für einfache Schalter aus \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} verwendet @@ -1338,7 +1255,11 @@ k \EndIndex{FontElement}{fromaddress}% \begin{Example} - Geben wir nun dem Absender aus den bisherigen Beispielen einen Namen. + Geben wir nun dem Absender + \iffalse % Umbruchkorrektur + aus den bisherigen Beispielen + \fi % + einen Namen. \lstinputcode[xleftmargin=1em]{letter-8.tex} \begin{figure} \centering @@ -1370,7 +1291,16 @@ k Nun soll der Brief mit aktivierter Erweiterung für den Briefkopf mit Hilfe der Option \Option{fromrule} auch noch eine Linie unter dem Namen erhalten:% \lstinputcode[xleftmargin=1em]{letter-11.tex}% - Das Ergebnis ist in \autoref{fig:scrlttr2.letter-10-11}, rechts zu sehen. + Das Ergebnis ist in \autoref{fig:scrlttr2.letter-10-11} rechts zu sehen. % + \iffalse % Umbruchkorrektur + Im Vergleich dazu ist links daneben das gleiche Beispiel noch einmal mit dem + Standardbriefkopf und ohne Reaktion auf die zusätzliche Option. + % + \else % + Links steht zum Vergleich ein Beispiel mit Standardbriefkopf. + % + \fi + % \begin{figure} \centering \frame{\includegraphics[width=.4\textwidth]{letter-10}}\quad @@ -1385,24 +1315,29 @@ k Briefkopf mit \OptionValue{fromalign}{center}} \label{fig:scrlttr2.letter-10-11} \end{figure} - Im Vergleich dazu ist links daneben das gleiche Beispiel noch einmal mit dem - Standardbriefkopf und ohne Reaktion auf die zusätzliche Option. \end{Example} -Ein\textnote{Achtung!} 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 solche Mittel gegebenenfalls sinnvoll im Absender einsetzen zu -können. Außerdem sollte man in dem Fall unbedingt die Variablen für -Rücksendeadresse (siehe Variable \Variable{backaddress}, +Ein\textnote{Achtung!} wichtiger Hinweis betrifft \iffree{noch}{\unskip} 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% +\iffalse % Umbruchkorrektur +. Man muss \Class{scrlttr2} schon sehr genau kennen, um solche Mittel +gegebenenfalls sinnvoll im Absender einsetzen zu können. Außerdem sollte man +in dem Fall unbedingt die Variablen für Rücksendeadresse (siehe Variable +\Variable{backaddress}, \autopageref{desc:scrlttr2.variable.backaddress}) und +Signatur (siehe Variable \Variable{signature}, +\autopageref{desc:scrlttr2.variable.signature}) selbst setzen.% +\else % +\ und hätten außerdem gegebenenfalls Auswirkungen auf die Rücksendeadresse +(siehe Variable \Variable{backaddress}, \autopageref{desc:scrlttr2.variable.backaddress}) und Signatur (siehe Variable -\Variable{signature}, \autopageref{desc:scrlttr2.variable.signature}) selbst -setzen.% +\Variable{signature}, \autopageref{desc:scrlttr2.variable.signature}).% +\fi % % \EndIndex{Variable}{fromname}% \EndIndex{Variable}{fromaddress}% @@ -1410,12 +1345,16 @@ setzen.% \begin{Declaration} + \KOption{symbolicnames}\PName{Ein-Aus-Wert}\\ \KOption{fromphone}\PName{Ein-Aus-Wert}\\ + \KOption{frommobilephone}\PName{Ein-Aus-Wert}\\ \KOption{fromfax}\PName{Ein-Aus-Wert}\\ \KOption{fromemail}\PName{Ein-Aus-Wert}\\ \KOption{fromurl}\PName{Ein-Aus-Wert}\\ \Macro{setkomavar}\PParameter{\Variable{fromphone}}% \OParameter{Bezeichnung}\Parameter{Inhalt}\\ + \Macro{setkomavar}\PParameter{\Variable{frommobilephone}}% + \OParameter{Bezeichnung}\Parameter{Inhalt}\\ \Macro{setkomavar}\PParameter{\Variable{fromfax}}% \OParameter{Bezeichnung}\Parameter{Inhalt}\\ \Macro{setkomavar}\PParameter{\Variable{fromemail}}% @@ -1424,6 +1363,8 @@ setzen.% \OParameter{Bezeichnung}\Parameter{Inhalt}\\ \Macro{setkomavar}\PParameter{\Variable{phoneseparator}}% \OParameter{Bezeichnung}\Parameter{Inhalt}\\ + \Macro{setkomavar}\PParameter{\Variable{mobilephoneseparator}}% + \OParameter{Bezeichnung}\Parameter{Inhalt}\\ \Macro{setkomavar}\PParameter{\Variable{faxseparator}}% \OParameter{Bezeichnung}\Parameter{Inhalt}\\ \Macro{setkomavar}\PParameter{\Variable{emailseparator}}% @@ -1431,30 +1372,50 @@ setzen.% \Macro{setkomavar}\PParameter{\Variable{urlseparator}}% \OParameter{Bezeichnung}\Parameter{Inhalt}% \end{Declaration}% +\BeginIndex{Option}{symbolicnames~=\PName{Ein-Aus-Wert}}% \BeginIndex{Option}{fromphone~=\PName{Ein-Aus-Wert}}% +\BeginIndex{Option}{frommobilephone~=\PName{Ein-Aus-Wert}}% \BeginIndex{Option}{fromfax~=\PName{Ein-Aus-Wert}}% \BeginIndex{Option}{fromemail~=\PName{Ein-Aus-Wert}}% \BeginIndex{Option}{fromurl~=\PName{Ein-Aus-Wert}}% \BeginIndex{Variable}{fromphone}% +\BeginIndex{Variable}{frommobilephone}% \BeginIndex{Variable}{fromfax}% \BeginIndex{Variable}{fromemail}% \BeginIndex{Variable}{fromurl}% \BeginIndex{Variable}{emailseparator}% \BeginIndex{Variable}{faxseparator}% \BeginIndex{Variable}{phoneseparator}% +\BeginIndex{Variable}{mobilephoneseparator}% \BeginIndex{Variable}{urlseparator}% -Mit den Optionen \Option{fromphone}, \Option{fromfax}, \Option{fromemail} und -\Option{fromurl} kann bestimmt werden, ob die Telefonnummer\Index{Telefon}, -die Faxnummer\Index{Fax}, die E-Mail-Adresse und die URL im -Absender\Index{Absender} gesetzt werden soll. Als \PName{Ein-Aus-Wert} kann -dabei einer der Standardwerte für einfache Schalter aus -\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} verwendet -werden. Voreingestellt ist jeweils \PValue{false}. Die Inhalte selbst werden -über die gleichnamigen Variablen bestimmt. Die Voreinstellungen für die dabei -verwendeten Bezeichnungen sind \autoref{tab:scrlttr2.fromTerm} zu entnehmen, -die verwendeten Trennzeichen, die zwischen der \PName{Bezeichnung} und dem -\PName{Inhalt} einer Variablen eingefügt werden, -\autoref{tab:scrlttr2.fromSeperator}. +Mit Hilfe der fünf Optionen \Option{fromphone}, +\Option{frommobilephone}\ChangedAt{v3.12}{\Class{scrlttr2}}, \Option{fromfax}, +\Option{fromemail} und \Option{fromurl} kann bestimmt werden, ob die +Telefonnummer\Index{Telefon}, die +Mobiltelefonnummer\Index{Mobiltelefon}\Index{Handy}, die Faxnummer\Index{Fax}, +die E-Mail-Adresse und die URL im Absender\Index{Absender} gesetzt werden +soll. Als \PName{Ein-Aus-Wert} kann dabei einer der Standardwerte für einfache +Schalter aus \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} +verwendet werden. Voreingestellt ist jeweils \PValue{false}. Die Inhalte +selbst werden über die gleichnamigen Variablen bestimmt. Die Voreinstellungen +für die dabei verwendeten Bezeichnungen sind \autoref{tab:scrlttr2.fromTerm} +zu entnehmen, die verwendeten Trennzeichen, die zwischen der +\PName{Bezeichnung} und dem \PName{Inhalt} einer Variablen eingefügt werden, +\autoref{tab:scrlttr2.fromSeparator}. + +Mit\ChangedAt{v3.12}{\Class{scrlttr2}}\important{\Option{symbolicnames}} +Option \Option{symbolicnames} kann diese Voreinstellung auf einen Schlag +geändert werden. Die Option versteht die \PName{Ein-Aus-Werte} für einfache +Schalter, wie sie in \autoref{tab:truefalseswitch}, +\autopageref{tab:truefalseswitch} angegeben sind. Durch Aktivierung der Option +werden statt der sprachabhängigen Bezeichner \Macro{emailname}, +\Macro{faxname}, \Macro{mobilephonename} und \Macro{phonename} Symbole aus dem +\Package{marvosym}\IndexPackage{marvosym}-Paket +verwendet. Gleichzeitig entfällt der Doppelpunkt bei der Definition der +Trennzeichen. Für die URL entfallen in diesem Fall sowohl der sprachabhängige +Bezeichner als auch das Trennzeichen. Es ist zu beachten\textnote{Achtung!}, +dass das Paket \Package{marvosym} gegebenenfalls selbst zu laden ist, falls +die Option erst nach \Macro{begin}\PParameter{document} aktiviert wird. \begin{table} \centering @@ -1462,12 +1423,15 @@ die verwendeten Trennzeichen, die zwischen der \PName{Bezeichnung} und dem Absenderangaben im Briefkopf}]{Vordefinierte Bezeichnungen der Variablen für die Absenderangaben im Briefkopf (die Bezeichnungen und Inhalte der verwendeten Variablen für Trennzeichen ist - \autoref{tab:scrlttr2.fromSeperator} zu entnehmen)} + \autoref{tab:scrlttr2.fromSeparator} zu entnehmen)} \begin{desctabular}[1.8em] \ventry{fromemail}{\Macro{usekomavar*}\PParameter{emailseparator}% \Macro{usekomavar}\PParameter{emailseparator}}% \ventry{fromfax}{\Macro{usekomavar*}\PParameter{faxseparator}% \Macro{usekomavar}\PParameter{faxseparator}}% + \ventry{frommobilephone}{% + \Macro{usekomavar*}\PParameter{mobilephoneseparator}% + \Macro{usekomavar}\PParameter{mobilephoneseparator}}% \ventry{fromname}{\Macro{headfromname}}% \ventry{fromphone}{\Macro{usekomavar*}\PParameter{phoneseparator}% \Macro{usekomavar}\PParameter{phoneseparator}}% @@ -1478,25 +1442,29 @@ die verwendeten Trennzeichen, die zwischen der \PName{Bezeichnung} und dem \end{table} \begin{table}[tp] -% \centering - \KOMAoptions{captions=topbeside}% - \setcapindent{0pt}% -% \caption - \begin{captionbeside}{Vordefinierte Bezeichnungen und Inhalte der Trennzeichen - für die Absenderangaben im Briefkopf} - [l] - \begin{tabular}[t]{lll} + \centering +% \KOMAoptions{captions=topbeside}% +% \setcapindent{0pt}% + \caption +% \begin{captionbeside} + {Vordefinierte Bezeichnungen und Inhalte der Trennzeichen + für die Absenderangaben im Briefkopf ohne Option + \Option{symbolicnumbers}} +% [l] + \begin{tabularx}{\textwidth}{llX} \toprule Name & Bezeichnung & Inhalt \\ \midrule \Variable{emailseparator} & \Macro{emailname} & \texttt{:\~} \\ \Variable{faxseparator} & \Macro{faxname} & \texttt{:\~} \\ + \Variable{mobilephoneseparator} & \Macro{mobilephonename} & + \Macro{usekomavar}\PParameter{phoneseparator} \\ \Variable{phoneseparator} & \Macro{phonename} & \texttt{:\~} \\ \Variable{urlseparator} & \Macro{wwwname} & \texttt{:\~} \\ \bottomrule - \end{tabular} - \end{captionbeside} - \label{tab:scrlttr2.fromSeperator} + \end{tabularx} +% \end{captionbeside} + \label{tab:scrlttr2.fromSeparator} \end{table} \begin{Example} @@ -1527,8 +1495,8 @@ die verwendeten Trennzeichen, die zwischen der \PName{Bezeichnung} und dem \lstinputcode[xleftmargin=1em]{letter-13.tex} Den Vergleich zweier Alternativen mit linksbündigem Absender durch - Einstellung \OptionValue{fromalign}{left} und rechtsbündigem Absender - durch Einstellung \OptionValue{fromalign}{right} zeigt + Einstellung \OptionValue{fromalign}{left} und rechtsbündigem + Absender durch Einstellung \OptionValue{fromalign}{right} zeigt \autoref{fig:scrlttr2.letter-14-15}. \begin{figure} \centering @@ -1547,17 +1515,21 @@ die verwendeten Trennzeichen, die zwischen der \PName{Bezeichnung} und dem \end{Example} % \EndIndex{Variable}{urlseparator}% +\EndIndex{Variable}{mobilephoneseparator}% \EndIndex{Variable}{phoneseparator}% \EndIndex{Variable}{faxseparator}% \EndIndex{Variable}{emailseparator}% \EndIndex{Variable}{fromurl} \EndIndex{Variable}{fromemail} \EndIndex{Variable}{fromfax} +\EndIndex{Variable}{frommobilephone}% \EndIndex{Variable}{fromphone}% \EndIndex{Option}{fromurl~=\PName{Ein-Aus-Wert}}% \EndIndex{Option}{fromemail~=\PName{Ein-Aus-Wert}}% \EndIndex{Option}{fromfax~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{frommobilephone~=\PName{Ein-Aus-Wert}}% \EndIndex{Option}{fromphone~=\PName{Ein-Aus-Wert}}% +\EndIndex{Option}{symbolicnames~=\PName{Ein-Aus-Wert}}% \begin{Declaration} \KOption{fromlogo}\PName{Ein-Aus-Wert}\\ @@ -1581,10 +1553,11 @@ auch \autoref{tab:scrlttr2.fromTerm}).% zusätzlich das Paket \Package{graphics}\IndexPackage{graphics} (siehe \cite{package:graphics}) ein.% \lstinputcode[xleftmargin=1em]{letter-16}% - Das Ergebnis ist in \autoref{fig:scrlttr2.letter-16-18} links oben zu - sehen. Die beiden anderen Bilder in dieser Abbildung zeigen das Ergebnis bei - rechtsbündigem und bei zentriertem Absender. - \begin{figure} + Das Ergebnis ist in \autoref{fig:scrlttr2.letter-16-18}, + \autopageref{fig:scrlttr2.letter-16-18} links oben zu sehen. Die beiden + anderen Bilder in dieser Abbildung zeigen das Ergebnis bei rechtsbündigem + und bei zentriertem Absender. + \begin{figure} \setcapindent{0pt}% {\hfill \frame{\includegraphics[width=.4\textwidth]{letter-16}}\quad @@ -1684,16 +1657,16 @@ mehr verwendet werden.% Mit der Option \Option{addrfield} kann gewählt werden, ob ein Anschriftfeld gesetzt werden soll oder nicht. Voreingestellt ist die Verwendung eines Anschriftfeldes. Die Option versteht die in -\autoref{tab:scrlttr2.addrfield}\ChangedAt{v3.03}{\Class{scrlttr2}} -angegebenen Werte für den \PName{Modus}. Voreingestellt ist \PValue{true}. Bei -den Werten \PValue{true}, \PValue{PP} und \PValue{backgroundimage} werden Name -und Adresse des Empfängers, die im Anschriftfeld gesetzt werden, über das -Argument der Umgebung \Environment{letter} (siehe -\autoref{sec:scrlttr2.document}, \autopageref{desc:scrlttr2.env.letter}) -bestimmt. Diese Angaben werden außerdem in die Variablen \Variable{toname} und -\Variable{toaddress} kopiert. Die voreingestellten Schriftarten -können\ChangedAt{v2.97c}{\Class{scrlttr2}} über die Anweisungen -\Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{tab:scrlttr2.addrfield}\ChangedAt{v3.03}{\Class{scrlttr2}}, +\autopageref{tab:scrlttr2.addrfield} angegebenen Werte für den +\PName{Modus}. Voreingestellt ist \PValue{true}. Bei den Werten \PValue{true}, +\PValue{PP} und \PValue{backgroundimage} werden Name und Adresse des +Empfängers, die im Anschriftfeld gesetzt werden, über das Argument der +Umgebung \Environment{letter} (siehe \autoref{sec:scrlttr2.document}, +\autopageref{desc:scrlttr2.env.letter}) bestimmt. Diese Angaben werden +außerdem in die Variablen \Variable{toname} und \Variable{toaddress} kopiert. +Die voreingestellten Schriftarten können\ChangedAt{v2.97c}{\Class{scrlttr2}} +über die Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe \autoref{sec:scrlttr2.textmarkup}, ab \autopageref{desc:scrlttr2.cmd.setkomafont}) verändert werden. Dabei existieren drei Elemente. Zunächst gibt es das Element @@ -1824,8 +1797,8 @@ wobei vor der Anwendung der konfigurierten Schriftumschaltung noch auf \end{table} \BeginIndex{FontElement}{specialmail} -Zwischen Rücksendeadresse und Empfängeradresse kann bei der -Standardeinstellung \OptionValue{addrfield}{true} noch eine optionale +Zwischen Rücksendeadresse und Empfängeradresse kann bei \iffree{der +}{}Standardeinstellung \OptionValue{addrfield}{true} noch eine optionale Versandart\Index{Versandart} gesetzt werden. Diese wird genau dann gesetzt, wenn die Variable \Variable{specialmail} einen \PName{Inhalt} hat und \OptionValue{priority}{manual}\ChangedAt{v3.03}{\Class{scrlttr2}} gewählt @@ -1883,13 +1856,13 @@ Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe \end{table} Bei\ChangedAt{v3.03}{\Class{scrlttr2}}\important{\OptionValue{addrfield}{PP}} -\OptionValue{addrfield}{PP} wird im Port-Payé-Kopf außerdem die Postleitzahl -aus der Variablen \Variable{fromzipcode} und der Ort aus der Variablen -\Variable{place} gesetzt. Dabei wird der Postleitzahl aus dem \PName{Inhalt} der -Variablen \Variable{fromzipcode} die \PName{Bezeichnung} der Variablen -\Variable{fromzipcode} gefolgt vom \PName{Inhalt} der Variablen -\Variable{zipcodeseparator} vorangestellt. Die Voreinstellung dieser -\PName{Bezeichnung} hängt von der verwendeten \File{lco}-Datei (siehe +\OptionValue{addrfield}{PP} wird im Port-Payé-Kopf die Postleitzahl aus der +Variablen \Variable{fromzipcode} und der Ort aus der Variablen +\Variable{place} gesetzt. Dabei wird der Postleitzahl, also dem \PName{Inhalt} +von \Variable{fromzipcode}, die \PName{Bezeichnung} der Variablen +\Variable{fromzipcode} gefolgt vom \PName{Inhalt} von +\Variable{zipcodeseparator} vorangestellt. Für diese \PName{Bezeichnung} hängt +die Voreinstellung von der verwendeten \File{lco}-Datei (siehe \autoref{sec:scrlttr2.lcoFile} ab \autopageref{sec:scrlttr2.lcoFile}) ab. Für den \PName{Inhalt} von \Variable{zipcodeseparator} ist hingegen ein kleiner Abstand, gefolgt von einem Streckenstrich, gefolgt von einem kleinen Abstand @@ -1958,8 +1931,8 @@ Anweisung \Macro{includegraphics} zu verwenden.% \BeginIndex{}{Absenderergaenzung=Absenderergänzung}% \BeginIndex{Option}{locfield~=\PName{Einstellung}}% Neben dem Anschriftfeld setzt \Class{scrlttr2} noch ein Feld mit erweiterter -Absenderangabe. Dieses Feld kann beispielsweise für Bankverbindungen und -Ähnliches verwendet werden. Je\important[i]{\OptionValue{fromalign}{center}\\ +Absenderangabe. Der Inhalt ist frei wählbar. +Je\important[i]{\OptionValue{fromalign}{center}\\ \begin{tabular}[t]{@{}l@{}} \KOption{fromalign}\\\quad\PValue{locationleft}\end{tabular}\\ \begin{tabular}[t]{@{}l@{}} @@ -2059,10 +2032,13 @@ die Standardwerte f Das Datum in der gewählten Darstellung wird in im \PName{Inhalt} der Variablen \Variable{date} abgelegt. Die Einstellung von \Option{numericaldate} hat keine Auswirkung, wenn diese Variable überschrieben wird. Gesetzt wird das Datum -normalerweise als Teil der Geschäftszeile. Dies ist auch dann der Fall, wenn -die Geschäftszeile ansonsten leer bleibt. Für weitere Angaben zum -automatischen Setzen des Datums siehe die nachfolgend beschriebene Option -\Option{refline}.% +normalerweise als Teil der Geschäftszeile. Wenn die Geschäftszeile ansonsten +leer bleibt wird allerdings nur eine Datumszeile, bestehend aus dem Ort und +dem Datum gesetzt. Trotzdem haben auch in diesem Fall die Einstellungen der +nachfolgend beschriebenen Option \Option{refline} Auswirkungen auf diese +Datumszeile. Weitere Informationen zum Ort finden Sie in der Beschreibung zur +Variablen \Variable{place}\IndexVariable{place} auf +\autopageref{desc:scrlttr2.variable.placeseparator}.% % \EndIndex{Variable}{date}% \EndIndex{Option}{numericaldate~=\PName{Ein-Aus-Wert}}% @@ -2126,9 +2102,14 @@ weitere Angaben aufnehmen. M \BeginIndex{Variable}{invoice}% Typische Felder der Geschäftszeile werden über die fünf Variablen \Variable{yourref}, \Variable{yourmail}, \Variable{myref}, \Variable{customer} -und \Variable{invoice} verwaltet. Die Bedeutung dieser Felder sind -\autoref{tab:scrlttr2.variables} auf \autopageref{tab:scrlttr2.variables} zu -entnehmen. Jede dieser Variablen hat außerdem eine vordefinierte +und \Variable{invoice} verwaltet. % +\iffalse % Umbruchkorrektur +Die Bedeutung dieser Felder % +\else % +Ihre Bedeutung % +\fi % +ist \autoref{tab:scrlttr2.variables}, \autopageref{tab:scrlttr2.variables} zu +entnehmen. Jede dieser Variablen hat auch eine vordefinierte \PName{Bezeichnung}, die in \autoref{tab:scrlttr2.reflineTerm} zu finden ist. Wie weitere Variablen zur Geschäftszeile hinzugefügt werden können, ist in \autoref{sec:scrlttr2-experts.variables} ab @@ -2207,7 +2188,7 @@ der beiden Elemente sind \autoref{tab:scrlttr2.refnamerefvalue} zu entnehmen.% \BeginIndex{Variable}{placeseparator}% Sind bis auf \Variable{date} alle Variablen der Geschäftszeile leer, so wird keine eigentliche Geschäftszeile gesetzt. Stattdessen werden dann nur -rechtsbündig Ort\Index{Ort} und Datum\Index{Datum} ausgegeben. Dabei bestimmt +Ort\Index{Ort} und Datum\Index{Datum} ausgegeben. Dabei bestimmt der \PName{Inhalt} der Variablen \Variable{place} den Ort. Für das Trennzeichen, das in diesem Fall nach dem Ort gesetzt wird, ist der \PName{Inhalt} der Variablen \Variable{placeseparator} zuständig. Der @@ -2218,13 +2199,31 @@ Trennzeichen nicht gesetzt. Der vordefinierte \PName{Inhalt} der Variablen Einstellung der Option \Option{numericaldate} ab (siehe \autopageref{desc:scrlttr2.option.numericaldate}). +Seit Version~3.09\ChangedAt{v3.09}{\Class{scrlttr2}} werden Ort und Datum +nicht mehr zwingend rechtsbündig ausgegeben. Stattdessen findet auch im Falle +der Datumszeile die Datumseinstellung von Option \Option{refline}, wie sie in +\autoref{tab:scrlttr2.refline} angegeben ist, Anwendung. + +\BeginIndex{FontElement}{placeanddate}% +Falls\ChangedAt{v3.12}{\Class{scrlttr2}} statt der Geschäftszeile eine solche +Datumszeile mit Ort gesetzt wird, so findet nicht die Schrifteinstellung des +Elements \FontElement{refvalue} Anwendung. Stattdessen wird in diesem Fall das +Element \FontElement{placeanddate}\important[i]{\FontElement{placeanddate}} +verwendet, dessen leere Voreinstellung wie gewohnt mit Hilfe der +Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:scrlttr2.textmarkup}, +\autopageref{desc:scrlttr2.cmd.setkomafont}) geändert werden kann.% +\EndIndex{FontElement}{placeanddate}% + \begin{Example} Herr Musterfrau setzt nun auch die Variable für den Ort: \lstinputcode[xleftmargin=1em]{letter-20.tex}% - Damit erscheint vor dem Datum, wie in \autoref{fig:scrlttr2.letter-20} zu - sehen, der Ort gefolgt von den automatischen Trennzeichen vor dem - Datum. Dieses wurde nun ebenfalls explizit gesetzt, damit bei einem späteren - \LaTeX-Durchlauf des Briefes das ursprüngliche Datum erhalten bleibt. + Damit erscheint vor dem Datum, wie in \autoref{fig:scrlttr2.letter-20}, + \autopageref{fig:scrlttr2.letter-20} zu sehen, der Ort gefolgt von den + automatischen Trennzeichen vor dem Datum. Dieses Datum wurde im Beispielcode + über Variable \Variable{date} ebenfalls explizit gesetzt, damit bei einem + späteren \LaTeX-Durchlauf des Briefes das ursprüngliche Datum erhalten + bleibt und nicht etwa automatisch das Datum des \LaTeX-Laufs verwendet wird. \begin{figure} \setcapindent{0pt}% \begin{captionbeside}[{Beispiel: Brief mit erweitertem Absender, Logo, @@ -2468,7 +2467,7 @@ neue Festlegung zu treffen. Die \PName{Bezeichnung} der Variablen wird von \end{tabular}% \hfill \begin{tabular}[t]{l@{}}% - \multicolumn{1}{@{}l@{}}{Geschäftsführerin:}\\ + \multicolumn{1}{@{}l@{}}{Geschäftsführung:}\\ Liselotte Mayer\\[1ex] \multicolumn{1}{@{}l@{}}{Gerichtsstand:}\\ Hinterdupfeldingen @@ -2587,9 +2586,13 @@ Verwendung der Klassenoption \Option{headsepline} automatisch die Paketoption \Option{footinclude}\important{\Option{footinclude}}. Im\important{\Pagestyle{plain}} Gegensatz zu \Option{headsepline} wirkt sich die Option \Option{footsepline} auch beim Seitenstil \PValue{plain} aus, da \PValue{plain} eine Seitenzahl im -Fuß ausgibt. Das Paket \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}} (siehe -\autoref{cha:scrpage}) bietet weitere Einflussmöglichkeiten für Linien im Kopf -und Fuß und kann auch mit \Class{scrlttr2} kombiniert werden.% +Fuß ausgibt. Das Paket +\Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage}\important{\Package{scrlayer-scrpage}} +\iffree{oder das veraltete + \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}}}% +{\unskip} (siehe \autoref{cha:scrlayer-scrpage} \iffree{beziehungsweise + \autoref{cha:scrpage}}{\unskip}) bietet weitere Einflussmöglichkeiten für +Linien im Kopf und Fuß und kann auch mit \Class{scrlttr2} kombiniert werden.% % \EndIndex{Option}{headsepline~=\PName{Ein-Aus-Wert}}% \EndIndex{Option}{footsepline~=\PName{Ein-Aus-Wert}}% @@ -2604,14 +2607,17 @@ Folgeseiten gesetzt werden soll. Die Option wirkt sich auf die Seitenstile\important[i]{\Pagestyle{headings}\\ \Pagestyle{myheadings}\\ \Pagestyle{plain}} \PValue{headings}, \PValue{myheadings} und \PValue{plain} -aus. Sie beeinflusst außerdem die Voreinstellung der Seitenstile des -\Package{scrpage2}-Paketes\important{\Package{scrpage2}}, 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 -\autoref{tab:scrlttr2.pagenumber} zu entnehmen. Voreingestellt ist -\PValue{botcenter}. +aus. Sie beeinflusst außerdem die Voreinstellung der Seitenstile des Pakets +\Package{scrlayer-scrpage}\important{\Package{scrlayer-scrpage}}% +\IndexPackage{scrlayer-scrpage} \iffree{oder des veralteten + \Package{scrpage2}\important{\Package{scrpage2}}% + \IndexPackage{scrpage2}}{\unskip}, soweit sie vor dem Laden des Paketes +gesetzt wird (siehe \autoref{cha:scrlayer-scrpage} \iffree{oder + \autoref{cha:scrpage}}{\unskip}). 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 \autoref{tab:scrlttr2.pagenumber} zu +entnehmen. Voreingestellt ist \PValue{botcenter}. \begin{table}[t!]% Umbruchkorrektur \caption[{Mögliche Werte für Option \Option{pagenumber} bei @@ -2684,14 +2690,19 @@ Seitenstilen unterschieden. \Variable{nextfoot}\IndexVariable{nextfoot} ab. Der Autor kann die Marken aber auch noch nach \Macro{opening} manuell beeinflussen. Hierzu stehen wie üblich die Anweisungen \Macro{markboth} und \Macro{markright}, bei - Verwendung von \Package{scrpage2} auch \Macro{markleft} (siehe - \autoref{sec:scrpage.basics.mark}, \autopageref{desc:scrpage.cmd.automark}), - zur Verfügung. + Verwendung von + \Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage}\important{\Package{scrlayer-scrpage}} + \iffree{oder \Package{scrpage2}}{\unskip} auch \Macro{markleft} (siehe + \autoref{sec:scrlayer-scrpage.pagestyle.content}, + \autopageref{desc:scrlayer-scrpage.cmd.markleft} \iffree{oder + \autoref{sec:scrpage.basics.mark}, + \autopageref{desc:scrpage.cmd.markleft}}{\unskip}), zur Verfügung. \item[{\Pagestyle{myheadings}}] ist der Seitenstil für manuelle Kolumnentitel auf Folgeseiten. Im Unterschied zu \PValue{headings} müssen die Marken vom Anwender gesetzt werden. Er verwendet dazu die Anweisungen \Macro{markboth}\IndexCmd{markboth} und - \Macro{markright}\IndexCmd{markright}. Bei Verwendung von \Package{scrpage2} + \Macro{markright}\IndexCmd{markright}. Bei Verwendung von + \Package{scrlayer-scrpage} \iffree{oder \Package{scrpage2}}{\unskip} steht außerdem \Macro{markleft}\IndexCmd{markleft} zur Verfügung. \item[{\Pagestyle{plain}}] ist der voreingestellte Seitenstil, bei dem auf Folgeseiten keinerlei Kolumnentitel verwendet, sondern nur eine Seitenangabe @@ -2723,10 +2734,16 @@ Fu \FontElement{pagefoot}\important{\FontElement{pagefoot}} zuständig, das nach \FontElement{pageheadfoot} in mit Variable \Variable{nextfoot}\IndexVariable{nextfoot} oder per Paket -\Package{scrpage2}\IndexPackage{scrpage2} (siehe \autoref{cha:scrpage}, -\autopageref{desc:scrpage.fontelement.pagefoot}) definierten Seitenstilen zur -Anwendung kommt. Das Element für die Seitenzahl innerhalb des Kopfes oder -Fußes heißt \FontElement{pagenumber}\important{\FontElement{pagenumber}}. Die +\Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage}% +\important{\Package{scrlayer-scrpage}} \iffree{oder + \Package{scrpage2}\IndexPackage{scrpage2}}{\unskip} (siehe +\autoref{cha:scrlayer-scrpage}, +\autopageref{desc:scrlayer-scrpage.fontelement.pagefoot} \iffree{oder + \autoref{cha:scrpage}, + \autopageref{desc:scrpage.fontelement.pagefoot}}{\unskip}) definierten +Seitenstilen zur Anwendung kommt. Das Element für die Seitenzahl innerhalb des +Kopfes oder Fußes heißt +\FontElement{pagenumber}\important{\FontElement{pagenumber}}. Die Voreinstellungen sind in \autoref{tab:maincls.defaultFontsHeadFoot}, \autopageref{tab:maincls.defaultFontsHeadFoot} zu finden. Beachten Sie dazu auch das Beispiel aus \autoref{sec:maincls.pagestyle}, @@ -2760,10 +2777,17 @@ vollkommen ausreichen. Dies umso mehr, als man zus \Macro{markboth}\IndexCmd{markboth} und \Macro{markright}\IndexCmd{markright} können insbesondere mit dem Seitenstil \PValue{myheadings}\IndexPagestyle{myheadings}\important{\Pagestyle{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. +verwendet werden. Bei Verwendung des Pakets +\Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage}\important{\Package{scrlayer-scrpage}} +\iffree{oder \Package{scrpage2}}{\unskip} gilt dies natürlich auch für den +Seitenstil +\Pagestyle{scrheadings}\IndexPagestyle{scrheadings}\important{\Pagestyle{scrheadings}}. +Dort steht außerdem die Anweisung +\Macro{markleft}\IndexCmd{markleft}\important{\Macro{markleft}} zur Verfügung +(siehe \autoref{sec:scrlayer-scrpage.pagestyle.content}, +\autopageref{desc:scrlayer-scrpage.cmd.markleft} \iffree{oder + \autoref{sec:scrpage.basics.mark}, + \autopageref{desc:scrpage.cmd.markleft}}{\unskip}). \begin{Declaration} \Macro{setkomavar}\PParameter{\Variable{nexthead}}% @@ -3058,21 +3082,17 @@ haben. \end{captionbeside} \label{fig:scrlttr2.letter-23} \end{figure} - - Bitte\textnote{Achtung!} beachten Sie, dass in der Bankverbindung in - \File{ich.lco} für »ß« die \TeX-Schreibweise »\Macro{ss}« verwendet - wurde. Dies hat seinen Grund darin, dass direkt nach - \Macro{documentclass} weder ein Paket für die Eingabecodierung, - beispielsweise mit - \Macro{usepackage}\POParameter{ansinew}\PParameter{inputenc} für typische - Windows-Editoren oder - \Macro{usepackage}\POParameter{utf8}\PParameter{inputenc} für - moderne Editoren, noch ein - Paket zur Sprachumschaltung, beispielsweise für die neue, deutsche - Rechtschreibung mit - \Macro{usepackage}\POParameter{ngerman}\PParameter{babel}, geladen ist. \end{Example} +Bitte\textnote{Achtung!} beachten Sie, dass im Beispiel in der Bankverbindung +der Datei \File{ich.lco} für »ß« die \TeX-Schreibweise »\Macro{ss}« verwendet +wurde. Dies hat seinen Grund darin, dass während des Ladens der Klasse +weder ein Paket für die Eingabecodierung, beispielsweise mit +\Macro{usepackage}\POParameter{utf8}\PParameter{inputenc} für moderne +Editoren, noch ein Paket zur Sprachumschaltung, beispielsweise für die neue, +deutsche Rechtschreibung mit +\Macro{usepackage}\POParameter{ngerman}\PParameter{babel}, geladen ist. + In \autoref{tab:lcoFiles} finden Sie eine Liste aller vordefinierten \File{lco}-Dateien. Falls\textnote{Achtung!} Sie einen Drucker verwenden, der einen sehr großen unbedruckbaren Rand links oder rechts besitzt, werden Sie @@ -3440,8 +3460,8 @@ ignoriert diese Anweisung ebenso wie \Macro{addrchar}. {}{}{}{Gefallener Engel ohne Telefon} {LUZIFER} \end{lstcode} - Diese bearbeiten Sie nun unter Verwendung von \File{adrdir.tex} aus - \cite{package:adrconv}. Eine Seite des Ergebnisses sieht dann etwa so aus: + Diese verarbeiten Sie nun unter Verwendung des Dokuments \File{adrdir.tex} + aus \cite{package:adrconv}. Eine Seite des Ergebnisses sieht dann etwa so aus: \begin{center} \setlength{\unitlength}{1mm} \begin{picture}(80,58) @@ -3485,6 +3505,10 @@ Version von \Package{adrconv} bereits mit \Macro{addrentry} und %%% Local Variables: %%% mode: latex +%%% mode: flyspell %%% coding: iso-latin-1 +%%% ispell-local-dictionary: "de_DE" %%% TeX-master: "../guide.tex" %%% End: + +% LocalWords: Paketoption diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrpage2.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrpage2.tex index 5483bbefa51..17671189bdf 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrpage2.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrpage2.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrpage2.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrpage2.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,9 @@ % % ============================================================================ -\ProvidesFile{scrpage2.tex}[2012/07/07 KOMA-Script guide (chapter:scrpage2)] +\KOMAProvidesFile{scrpage2.tex}% + [$Date: 2013-07-22 $ + KOMA-Script guide (chapter:scrpage2)] \chapter{Kopf- und Fußzeilen mit \Package{scrpage2}} \labelbase{scrpage} @@ -58,14 +60,30 @@ Inhalt der Kopf- und Fu \Package{scrpage2} verwendet. Diese Anleitung beschreibt daher auch nur noch \Package{scrpage2}. Das Paket \Package{scrpage} ist obsolet. +Mit \KOMAScript~3.12 wurde außerdem das komplett neu implementierte Paket +\Package{scrlayer-scrpage} vorgestellt, das eine konsequente Weiterführung des +Designs von \Package{scrpage2} mit anderen Mitteln darstellt. Siehe dazu +\autoref{cha:scrlayer-scrpage} ab \autopageref{cha:scrlayer-scrpage}. Während +\Package{scrpage2} die erweiterte Optionen-Schnittstelle der +\KOMAScript-Klassen nicht unterstützt, kommt diese in +\Package{scrlayer-scrpage} selbstverständlich zum Einsatz. Da der Ansatz von +\Package{scrlayer-scrpage} gegenüber \Package{scrpage2} als überlegen +betrachtet wird, wird somit empfohlen, \Package{scrlayer-scrpage} an Stelle +von \Package{scrpage2} zu verwenden. Die aktuelle Version von +\Package{scrpage2} ist daher auch als final zu betrachten. Sämtliche +Entwicklungsresourcen im Bereich Kopf- und Fußzeilen werden zukünftig in +\Package{scrlayer-scrpage} einfließen. + \begin{Explain} - An Stelle von \Package{scrpage2} kann natürlich auch \Package{fancyhdr} - (siehe \cite{package:fancyhdr}) verwendet werden. \Package{scrpage2} - harmoniert jedoch mit den \KOMAScript-Klassen deutlich besser. Genau deshalb - und weil der Vorläufer von \Package{fancyhdr} damals viele Möglichkeiten - vermissen lies, ist \Package{scrpage2} entstanden. Natürlich ist das Paket - \Package{scrpage2} nicht an eine \KOMAScript-Klasse gebunden, sondern kann - auch sehr gut mit anderen Klassen verwendet werden. + An Stelle von \Package{scrpage2} oder \Package{scrlayer-scrpage} kann + natürlich auch \Package{fancyhdr} (siehe \cite{package:fancyhdr}) verwendet + werden. \Package{scrpage2} und insbesondere \Package{scrlayer-scrpage} + harmonieren jedoch mit den \KOMAScript-Klassen deutlich besser. Genau + deshalb und weil der Vorläufer von \Package{fancyhdr} damals viele + Möglichkeiten vermissen lies, ist \Package{scrpage2} entstanden. Natürlich + ist das Paket \Package{scrpage2} ebenso wie das Paket + \Package{scrlayer-scrpage} nicht an eine \KOMAScript-Klasse gebunden, + sondern kann auch sehr gut mit anderen Klassen verwendet werden. \end{Explain} \section{Grundlegende Funktionen}\label{sec:scrpage.basics} @@ -743,7 +761,7 @@ Farbe\Index{Kopf>Farbe}\Index{Fuss=Fu \FontElement{footbottomline}\IndexFontElement[indexmain]{footbottomline} oder auch \FontElement{footbotline}\IndexFontElement[indexmain]{footbotline} gesetzt und mit \Macro{addtokomafont}\IndexCmd{addtokomafont} erweitert -werden. Die beiden Anweisungen \Macro{setkomafont} und \Macro{addkomafont} +werden. Die beiden Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} sind in \autoref{sec:maincls.textmarkup}, \autopageref{desc:maincls.cmd.setkomafont} näher beschrieben. diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex index aa6e50df240..d470aae319b 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex @@ -1,6 +1,6 @@ % ====================================================================== % tocbasic.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % tocbasic.tex -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ====================================================================== -\ProvidesFile{tocbasic.tex}[2012/03/14 KOMA-Script package tocbasic] +\ProvidesFile{tocbasic.tex}[2013/10/02 KOMA-Script package tocbasic] \chapter{Verzeichnisse verwalten mit Hilfe von \Package{tocbasic}} \labelbase{tocbasic} @@ -65,6 +65,13 @@ werden. Durch Verwendung von \Package{tocbasic} soll dem Paketautor die M genommen werden, selbst solche Anpassungen an andere Pakete oder an Klassen vornehmen zu müssen. +Als kleiner Nebeneffekt kann das Paket auch verwendet werden, um neue +Gleitumgebungen oder den Gleitumgebungen ähnliche nicht gleitende Umgebungen +für Konsultationsobjekte zu definieren. Näheres dazu ist nach den +grundlegenden Anweisungen in \autoref{sec:tocbasic.toc}, verdeutlicht durch +ein Beispiel in \autoref{sec:tocbasic.example} und kompakt in +\autoref{sec:tocbasic.declarenewtoc} zu finden. + \KOMAScript{} verwendet \Package{tocbasic} sowohl für das Inhaltsverzeichnis als auch für die bereits erwähnten Verzeichnisse für Abbildungen und Tabellen. @@ -77,7 +84,7 @@ bekannten Dateierweiterungen\textnote{Dateierweiterung, Verzeichnis}, die f Verzeichnisse stehen, zu verwalten. Einträge in Dateien mit solchen Dateierweiterungen werden typischerweise mit \Macro{addtocontents}\important{\Macro{addtocontents}, - \Macro{addcontentsline}} oder \Macro{addcontentsline} vorgenommen. Darüber + \Macro{addxcontentsline}} oder \Macro{addxcontentsline} vorgenommen. Darüber hinaus gibt es Anweisungen, mit denen eine Aktion für all diese Dateierweiterungen durchgeführt werden können. Außerdem gibt es Anweisungen, um Einstellungen für die Datei vorzunehmen, die zu einer gegebenen @@ -365,23 +372,69 @@ wie bei \Macro{addtocontents} mit \Macro{protect} gesch \begin{Declaration} - \Macro{addcontentslinetoeachtocfile}\OParameter{Besitzer}\Parameter{Ebene}\Parameter{Inhalt} + \Macro{addxcontentsline}\Parameter{Dateierweiterung}\Parameter{Ebene}% + \OParameter{Gliederungsnummer}\Parameter{Inhalt} +\end{Declaration} +\BeginIndex{Cmd}{addxcontentsline}% +Diese\ChangedAt{v3.12}{\Package{tocbasic}} +Anweisung ähnelt sehr der Anweisung +\Macro{addcontentsline}\IndexCmd{addcontentsline} aus dem +\LaTeX-Kern. Allerdings besitzt sie ein zusätzliches optionales Argument für +die \PName{Gliederungsnummer} des Eintrags, während diese bei +\Macro{addcontentsline} im Argument \PName{Inhalt} mit angegeben wird. Die +Anweisung wird verwendet, um nummerierte oder nicht nummerierte Einträge in +das über die \PName{Dateierweiterung} spezifierte Verzeichnis +aufzunehmen. Dabei ist \PName{Ebene} der symbolische Name der Gliederungsebene +und \PName{Inhalt} der entsprechende Eintrag. Die Seitenzahl wird automatisch +bestimmt. + +Die Anweisung selbst testet zunächst, ob eine Anweisung +\Macro{add\PName{Ebene}\PName{Dateierweiterung}entry} definiert ist. Wenn dies +der Fall ist, wird diese für den Eintrag verwendet, wobei +\PName{Gliederungsnummer} als optionales Argument in \PName{Inhalt} als +obligatorisches Argument übergeben wird. Ein Beispiel für eine solche +Anweisung, die von den \KOMAScript-Klassen bereitgestellt wird, wäre +\Macro{addparttocentry} (siehe \autoref{sec:maincls-experts.experts}, +\autopageref{desc:maincls-experts.cmd.addparttocentry}). Ist die entsprechend +Anweisung nicht definiert, wird stattdessen die interne Anweisung +\Macro{tocbasic@addxcontentsline} verwendet. Diese erhält alle vier Argument +als obligatorische Argumente und verwendet dann seinerseits +\Macro{addcontentsline}, um den gewünschten Eintrag vorzunehmen. Näheres zu +\Macro{tocbasic@addxcontentsline} ist \autoref{sec:tocbasic.internals}, +\autopageref{desc:tocbasic.cmd.tocbasic@addxcontentsline} zu entnehmen. + +Ein Vorteil der Verwendung von \Macro{addxcontentsline} gegenüber +\Macro{addcontentsline} ist zum einen, dass die Eigenschaft +\PValue{numberline} (siehe \autopageref{desc:tocbasic.cmd.setuptoc}) beachtet +wird. Zum anderen kann die Form der Einträge über die Definition +entsprechender, für die \PName{Ebene} und \PName{Dateierweiterung} +spezifischer Anweisungen konfiguriert werden.% +% +\EndIndex{Cmd}{addxcontentsline}% + + +\begin{Declaration} + \Macro{addxcontentslinetoeachtocfile}% + \OParameter{Besitzer}\Parameter{Ebene}\OParameter{Gliederungsnummer}% + \Parameter{Inhalt}\\ + \Macro{addcontentslinetoeachtocfile}% + \OParameter{Besitzer}\Parameter{Ebene}\Parameter{Inhalt}% \end{Declaration} \BeginIndex{Cmd}{addcontentslinetoeachtocfile}% -Diese Anweisung ist mit \Macro{addcontentsline} aus dem \LaTeX-Kern -vergleichbar. Der Unterschied besteht darin, dass diese Anweisung -\PName{Inhalt} nicht nur in eine einzelne Datei, sondern in alle Dateien eines -angegebenen \PName{Besitzers} und bei Verzicht auf das optionale Argument in -alle Dateien aus der Liste der bekannten Dateierweiterungen schreibt. +Diese Anweisungen sind mit der oben erklärten Anweisung +\Macro{addxcontentsline}\ChangedAt{v3.12}{\Package{tocbasic}} +beziehungsweise \Macro{addcontentsline} aus dem \LaTeX-Kern vergleichbar. Der +Unterschied besteht darin, dass diese Anweisungen \PName{Inhalt} nicht nur in +eine einzelne Datei, sondern in alle Dateien eines angegebenen +\PName{Besitzers} und bei Verzicht auf das erste optionale Argument in alle +Dateien aus der Liste der bekannten Dateierweiterungen schreibt. \begin{Example} Angenommen, Sie sind Klassen-Autor und wollen den Kapiteleintrag nicht nur in das Inhaltsverzeichnis, sondern in alle Verzeichnisdateien schreiben. Nehmen wir weiter an, dass aktuell \PName{\#1} den Titel enthält, der geschrieben werden soll. \begin{lstcode} - \addcontentslinetoeachtocfile{chapter}{% - \protect\numberline{\thechapter}#1% - }% + \addxcontentslinetoeachtocfile{chapter}[\thechapter]{#1} \end{lstcode} In diesem Fall soll natürlich die aktuelle Kapitelnummer direkt beim Schreiben in die Verzeichnisdatei expandiert werden, weshalb sie nicht mit @@ -390,7 +443,14 @@ alle Dateien aus der Liste der bekannten Dateierweiterungen schreibt. Während des Schreibens von \PName{Inhalt} ist auch hier wie schon bei \Macro{addtoeachtocfile} \Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} die -Dateierweiterung der Datei, in die aktuell geschrieben wird. +Dateierweiterung der Datei, in die aktuell geschrieben wird.% + +Anweisung\ChangedAt{v3.12}{\Package{tocbasic}} +\Macro{addxcontentslinetoeachtocfile} ist wann immer möglich gegenüber +\Macro{addcontentslinetoeachtocfile} der Vorrang zu gewähren, da die +Erweiterungen von \Macro{addxcontentsline} nur damit Anwendung finden. Näheres +zu diesen Erweiterungen und Vorteilen ist in der vorausgehenden Erklärung der +Anweisung \Macro{addxcontentsline} zu finden.% % \EndIndex{Cmd}{addcontentslinetoeachtocfile}% @@ -626,6 +686,27 @@ getrennte Aneinanderreihung von \PName{Eigenschaften}. Das Paket \OptionValue{listof}{leveldown}\important{\OptionValue{listof}{leveldown}}% \IndexOption{listof~=\PValue{leveldown}} für alle Dateierweiterungen des Besitzers \PValue{float}. +\item[\PValue{numberline}] \ChangedAt{v3.12}{\Package{tocbasic}}% + bedeutet, dass auch diejenigen Einträge, die mit \Macro{addxcontentsline} + oder \Macro{addxcontentslinetoceachtocfile} in das Verzeichnis geschrieben + werden und bei denen das optionale Argument für die Nummer fehlt oder leer + ist, mit einer (leeren) \Macro{numberline}-Anweisung verstehen werden. Das + führt in der Regel dazu, dass diese Einträge nicht linksbündig mit der + Nummer, sondern mit dem Text der nummerierten Einträge gleicher Ebene + gesetzt werden. Die \KOMAScript-Klassen setzen diese Eigenschaft bei + Verwendung der Option \OptionValue{listof}{numberline}% + \important{\OptionValue{listof}{numberline}}% + \IndexOption{listof~=\PValue{numberline}} für die Dateierweiterungen des + Besitzers \PValue{float} und bei Verwendung der Option + \OptionValue{toc}{numberline}\important{\OptionValue{toc}{numberline}}% + \IndexOption{toc~=\PValue{numberline}} für die Dateierweiterung + \PValue{toc}. Entsprechend wird die Eigenschaft bei Verwendung von Option + \OptionValue{listof}{nonumberline}% + \important{\OptionValue{listof}{nonumberline}}% + \IndexOption{listof~=\PValue{nonumberline}} oder + \OptionValue{toc}{nonumberline}% + \important{\OptionValue{toc}{nonumberline}}% + \IndexOption{toc~=\PValue{nonumberline}} wieder zurückgesetzt. \item[\PValue{nobabel}] bedeutet, dass die normalerweise automatisch verwendete Erweiterung für die Sprachumschaltung mit \Package{babel}\IndexPackage{babel} für diese Dateierweiterung nicht @@ -919,6 +1000,33 @@ definiert \Macro{tocbasic@listhead} diese und ruft sie dann auf. % \EndIndex{Cmd}{tocbasic@listhead@\PName{Dateierweiterung}} +\begin{Declaration} + \Macro{tocbasic@addxcontentsline}% + \Parameter{Dateierweiterung}\Parameter{Ebene}% + \Parameter{Gliederungsnummer}\Parameter{Eintrag}\\ + \Macro{nonumberline} +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@addxcontentsline}% +\BeginIndex{Cmd}{nonumberline}% +Die\ChangedAt{v3.12}{\Package{tocbasic}} Anweisung +\Macro{tocbasic@addxcontentsline} nimmt einen \PName{Eintrag} der angegebenen +\PName{Ebene} in das über die \PName{Dateierweiterung} spezifizierte +Verzeichnis vor. Ob der Eintrag nummeriert wird oder nicht, hängt davon ab, ob +das Argument \PName{Gliederungsnummer} leer ist oder nicht. Im Falle eines +leeren Argument wird dem \PName{Eintrag} ein \Macro{nonumberline} ohne +Argument vorangestellt. Anderenfalls wird wie gewohnt \Macro{numberline} mit +\PName{Gliederungsnummer} als Argument verwendet. + +Die Anweisung \PName{nonumberline} wird innerhalb \Macro{listoftoc} (siehe +\autoref{sec:tocbasic.toc}, \autopageref{desc:tocbasic.cmd.listoftoc}) +entsprechend der Eigenschaft \PValue{numberline} (siehe +\autoref{sec:tocbasic.toc}, \autopageref{desc:tocbasic.cmd.setuptoc}) +umdefiniert. Dadurch wirkt sich das Setzen oder Löschen dieser Eigenschaft +bereits beim nächsten \LaTeX-Lauf aus.% +% +\EndIndex{Cmd}{nonumberline}% +\EndIndex{Cmd}{tocbasic@addxcontentsline}% + \section{Ein komplettes Beispiel} \label{sec:tocbasic.example} @@ -1256,6 +1364,81 @@ die m die Option \Option{nonfloat} angegeben, wird außerdem eine nicht gleitende Umgebung \Environment{remarkbox-} definiert, in der ebenfalls \Macro{caption}\IndexCmd{caption} verwendet werden kann. + + Zum besseren Verständnis zeigt \autoref{tab:tocbasic.comparison} eine + Gegenüberstellung der Anweisungen und Umgebungen für die neu erstellte + Beispielumgebung \Environment{remarkbox} mit den entsprechenden Befehlen und + Umgebungen für Abbildungen.% + \begin{table} + \centering + \caption{Gegenüberstellung von Beispielumgebung \Environment{remarkbox} + und Umgebung \Environment{figure}} + \label{tab:tocbasic.comparison} + \begin{tabularx}{\textwidth}{ll>{\raggedright}p{7em}X} + \toprule + \Environment{remarkbox} & \Environment{figure} + & Optionen von \Macro{DeclareNewTOC} & Kurzbeschreibung \\[1ex] + \midrule + \Environment{remarkbox} & \Environment{figure} + & \Option{type}, \Option{float} + & Gleitumgebung des jeweiligen Typs.\\[1ex] + \Environment{remarkbox*} & \Environment{figure*} + & \Option{type}, \Option{float} + & spaltenübergreifende Gleitumgebung des jeweiligen Typs \\[1ex] + \Counter{remarkbox} & \Counter{figure} + & \Option{type}, \Option{float} + & Zähler, der von \Macro{caption} verwendet wird \\[1ex] + \Macro{theremarkbox} & \Macro{thefigure} + & \Option{type}, \Option{float} + & Anweisung zur Ausgabe des jeweiligen Zählers \\[1ex] + \Macro{remarkboxformat} & \Macro{figureformat} + & \Option{type}, \Option{float} + & Anweisung zur Formatierung des jeweiligen Zählers in der Ausgabe von + \Macro{caption}\\[1ex] + \Macro{remarkboxname} & \Macro{figurename} + & \Option{type}, \Option{float}, \Option{name} + & Name, der im Label von \Macro{caption} verwendet wird \\[1ex] + \Macro{listofremarkboxes} & \Macro{listoffigures} + & \Option{types}, \Option{float} + & Anweisung zur Ausgabe des jeweiligen Verzeichnisses \\[1ex] + \Macro{listremarboxname} & \Macro{listfigurename} + & \Option{type}, \Option{float}, \Option{listname} + & Überschrift des jeweiligen Verzeichnisses \\[1ex] + \Macro{fps@remarkbox} & \Macro{fps@figure} + & \Option{type}, \Option{float}, \Option{floattype} + & nummerischer Gleitumge\-bungstyp zwecks Reihen\-fol\-gen\-erhalts \\[1ex] + \File{lor} & \File{lof} + & + & Dateiendung der Hilfsdatei für das jeweilige Verzeichnis \\ + \bottomrule + \end{tabularx} + \end{table} + + Und hier nun eine mögliche Verwendung der Umgebung: +\begin{lstcode} + \begin{remarkbox} + \centering + Gleiches sollte immer auf gleiche Weise und + mit gleichem Aussehen gesetzt werden. + \caption{Erster Hauptsatz der Typografie} + \label{rem:typo1} + \end{remarkbox} +\end{lstcode} + Ein Ausschitt aus einer Beispielseite mit dieser Umgebung könnte dann so + aussehen: + \begin{center}\footnotesize + \begin{tabular} + {|!{\hspace{.1\linewidth}}p{.55\linewidth}!{\hspace{.1\linewidth}}|} + \\ + \centering + Gleiches sollte immer auf gleiche Weise und + mit gleichem Aussehen gesetzt werden.\\[\abovecaptionskip] + {% + \usekomafont{caption}\footnotesize{\usekomafont{captionlabel}% + Merksatz 1: }Erster Hauptsatz der Typografie + }\\ + \end{tabular}% + \end{center}% \end{Example}% % \EndIndex{Cmd}{DeclareNewTOC}% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea-experts.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea-experts.tex index dddf176f5d5..aaf5a99c47b 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea-experts.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea-experts.tex @@ -1,6 +1,6 @@ % ====================================================================== % typearea-experts.tex -% Copyright (c) Markus Kohm, 2008-2012 +% Copyright (c) Markus Kohm, 2008-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % typearea-experts.tex -% Copyright (c) Markus Kohm, 2008-2012 +% Copyright (c) Markus Kohm, 2008-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -45,7 +45,7 @@ % % ====================================================================== -\ProvidesFile{typearea-experts.tex}[2012/04/17 KOMA-Script guide (chapter: +\ProvidesFile{typearea-experts.tex}[2013/05/31 KOMA-Script guide (chapter: typearea for experts)] \chapter{Zusätzliche Informationen zum Paket \Package{typearea.sty}} @@ -111,21 +111,25 @@ Einstellungen wieder zu reaktivieren. \documentclass[pagesize]{scrartcl} \begin{document} - \rule{\textwidth}{\textheight} + \noindent\rule{\textwidth}{\textheight} \storeareas\meinegespeichertenWerte \KOMAoptions{paper=landscape,DIV=current} - \rule{\textwidth}{\textheight} + \noindent\rule{\textwidth}{\textheight} \clearpage \meinegespeichertenWerte - \rule{\textwidth}{\textheight} + \noindent\rule{\textwidth}{\textheight} \end{document} \end{lstcode} Wichtig\textnote{Achtung!} ist dabei die Anweisung \Macro{clearpage} vor dem Aufruf von \Macro{meinegespeichertenWerte}, damit die Wiederherstellung erst auf der nächsten Seite erfolgt. \end{Example} +Im Beispiel wird \Macro{noindent} verwendet, um den normalen Absatzeinzug vor +den schwarzen Kästen zu verhindern. Sie würden sonst kein korrektes Bilde des +Seitenlayouts wiedergeben. + Bei\textnote{Achtung!} der Verwendung von \Macro{storeareas} ist zu beachten, dass sowohl \Macro{storeareas} als auch die damit definierte \PName{Anweisung} nicht innerhalb einer Gruppe aufgerufen werden sollten. Die Definition der @@ -148,7 +152,8 @@ Diese Anweisungen dienen der Verwaltung zweier ermöglichen es dem Experten jedes Mal, nachdem \Package{typearea} eine neue Aufteilung in Satzspiegel und Ränder berechnet hat, also nach jeder impliziten oder expliziten Ausführung von \Macro{typearea}, \PName{Anweisungen} ausführen -zu lassen. Entsprechendes leisten \Macro{AfterSettingArea} und dessen +zu lassen. Entsprechendes leisten +\Macro{AfterSettingArea}\ChangedAt{v3.11}{\Package{typearea}} und dessen Stern-Form für die Ausführung von \Macro{areaset}. Die Normalformen arbeiten dabei global, während die Änderungen durch die Sternformen nur lokal wirksam sind. Die \PName{Anweisungen} werden jeweils unmittelbar vor diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea.tex index 1c2c74c78a6..d5d273e3e7f 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/typearea.tex @@ -1,6 +1,6 @@ % ====================================================================== % typearea.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % typearea.tex -% Copyright (c) Markus Kohm, 2001-2012 +% Copyright (c) Markus Kohm, 2001-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -46,7 +46,9 @@ % ====================================================================== -\ProvidesFile{typearea.tex}[2012/07/22 KOMA-Script guide (chapter: typearea)] +\KOMAProvidesFile{typearea.tex}% + [$Date: 2013-12-16 09:10:28 +0100 (Mo, 16. Dez 2013) $ + KOMA-Script guide (chapter: typearea)] \chapter{Satzspiegelberechnung mit \Package{typearea.sty}} \labelbase{typearea} @@ -288,7 +290,7 @@ Paketautoren. Damit sind alle Grundlagen der Satzspiegelberechnung, die bei {\KOMAScript} eine Rolle spielen, erklärt. -\iftrue% Umbruchkorrektur +\iffalse% Umbruchkorrektur Wir können also mit den konkreten Konstruktionen beginnen. \else In den folgenden beiden Abschnitten werden die von {\KOMAScript} angebotenen @@ -424,24 +426,25 @@ Paketautoren. 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 unbedingt die zum - Textbereich passende Schrift wählen. -\iffalse + 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 unbedingt die zum Textbereich passende Schrift + wählen. +% +\iftrue % Umbruchkorrekturtext Dies ist als zwingend zu betrachten. \fi - Im \Package{typearea}-Paket wird diese Konstruktion dahingehend - abgewandelt, dass durch Auswahl eines ausgezeichneten -- normalerweise - 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. Es wird also wiederum auf die Satzspiegelkonstruktion durch Teilung - zurückgegriffen. -\iffalse + Im \Package{typearea}-Paket wird diese Konstruktion dahingehend abgewandelt, + dass durch Auswahl eines ausgezeichneten -- normalerweise 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. Es wird also + wiederum auf die Satzspiegelkonstruktion durch Teilung zurückgegriffen. +% +\iftrue % Umbruchkorrekturtext Bei Wahl einer guten Schrift stimmt dieses Ergebnis nicht selten mit der Suche nach dem optimalen \Var{DIV}-Wert überein. Siehe hierzu ebenfalls @@ -452,8 +455,6 @@ Paketautoren. \LoadCommon{0} % \section{Frühe oder späte Optionenwahl} -\iffree{}{\vfill}% Umbruchoptimierung - \LoadCommon{1} % \section{Kompatibilität zu früheren Versionen von \KOMAScript} \section{Einstellung des Satzspiegels und der \texorpdfstring{Seitenauf"|teilung}{Seitenaufteilung}} @@ -665,13 +666,13 @@ sehr rasch zu unangenehm hoher Zeichenzahl je Zeile f Überlegungen in \autoref{sec:typearea.basics}. 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 \OptionValue{DIV}{calc}\important{\OptionValue{DIV}{calc}} -an Stelle von \KOption{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-experts.cfg}). Eine explizit angegebene -Option \OptionValue{DIV}{calc} überschreibt diese Vorkonfiguration aber. +\OptionValue{DIV}{calc}\important{\OptionValue{DIV}{calc}} an Stelle von +\KOption{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-experts.cfg}). Eine explizit angegebene Option +\OptionValue{DIV}{calc} überschreibt diese Vorkonfiguration aber. \begin{table} % \centering @@ -693,7 +694,6 @@ Option \OptionValue{DIV}{calc} \end{table} \iffree{}{\BeginIndex{Option}{DIV~=\PValue{classic}}}% -\looseness=1 % Umbruchoptimierung!!! Die in \autoref{sec:typearea.circleConstruction} erwähnte klassische Konstruktion, der mittelalterliche Buchseitenkanon, ist ebenfalls auswählbar. Verwenden Sie in diesem Fall an Stelle von \KOption{DIV}\PName{Faktor} oder @@ -804,7 +804,7 @@ andere Schrift l \begin{table} \caption[{Symbolische Werte für Option \Option{DIV} und das \PName{DIV}-Argument von \Macro{typearea}}]{Mögliche symbolische Werte - für die Option \Option{DIV} oder das \PName{DIV}-Argument von + für die Option \Option{DIV} oder das \PName{DIV}-Argument der Anweisung \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} \label{tab:symbolicDIV} \begin{desctabular} @@ -847,12 +847,14 @@ normalen der Satzspiegel f \linespread{1.25} \KOMAoptions{DIV=last} \end{lstcode}\IndexCmd{linespread} - \looseness=1 % Umbruchkorrektur Da \Package{typearea} selbst immer die Anweisung \Macro{normalsize} bei Berechnung eines neuen Satzspiegels ausführt, ist es nicht zwingend notwendig, nach \Macro{linespread} den gewählten Durchschuss mit - \Macro{selectfont} zu aktivieren, damit dieser auch tatsächlich für die - Neuberechnung verwendet wird. + \Macro{selectfont} zu aktivieren, damit dieser % +\iffalse % Umbruchkorrektur + auch tatsächlich +\fi % + für die Neuberechnung verwendet wird. Das gleiche Beispiel sähe unter Verwendung des \Package{setspace}-Pakets (siehe \cite{package:setspace}) wie folgt @@ -860,8 +862,7 @@ normalen der Satzspiegel f \begin{lstcode} \documentclass[10pt,twoside,BCOR=12mm,DIV=calc] {scrreprt} - \usepackage{setspace} - \onehalfspacing + \usepackage[onehalfspacing]{setspace} \KOMAoptions{DIV=last} \end{lstcode} \end{Example} @@ -869,31 +870,41 @@ normalen der Satzspiegel f Wie\textnote{Tipp!} man an dem Beispiel sieht, spart man sich mit dem \Package{setspace}-Paket das Wissen um den korrekten Dehnungswert. Dies gilt allerdings nur für die Standardschriftgrößen 10\Unit{pt}, 11\Unit{pt} und -12\Unit{pt}. Für alle anderen Schriftgrößen verwendet das Paket einen -näherungsweise passenden Dehnungswert. +12\Unit{pt}. Für alle anderen Schriftgrößen verwendet das Paket +% +\iffalse % Umbruchkorrektur +einen näherungsweise passenden Dehnungswert. +% +\else % +eine Näherung. +\fi An\textnote{Achtung!} dieser Stelle erscheint es mir angebracht, darauf hinzuweisen, dass der Zeilenabstand für die Titelseite wieder auf den normalen -Wert zurückgesetzt werden sollte. +Wert zurückgesetzt werden sollte und außerdem auch die Verzeichnisse mit dem +normalen Zeilenabstand gesetzt werden sollten. \begin{Example} Ein vollständiges Beispiel wäre also: \begin{lstcode} \documentclass[10pt,twoside,BCOR=12mm,DIV=calc] {scrreprt} - \usepackage{setspace} - \onehalfspacing + \usepackage[onehalfspacing]{setspace} + \AfterTOCHead{\singlespacing} \KOMAoptions{DIV=last} \begin{document} \title{Titel} \author{Markus Kohm} \begin{spacing}{1} \maketitle - \tableofcontents \end{spacing} + \tableofcontents \chapter{Ok} \end{document} \end{lstcode} - Siehe hierzu auch die Anmerkungen in \autoref{sec:typearea.tips}. + Siehe hierzu auch die Anmerkungen in \autoref{sec:typearea.tips}. Die + Anweisung \Macro{AfterTOCHead}\IndexCmd{AfterTOCHead} wird in + \autoref{part:forExperts}, \autoref{cha:tocbasic} auf + \autopageref{desc:tocbasic.cmd.AfterTOCHead} vorgestellt. \end{Example} Bitte beachten Sie unbedingt\textnote{Achtung!}, dass diese Optionen auch zur @@ -956,14 +967,13 @@ bei der Seitenumbruch. \end{Explain} -\begin{sloppypar}% Umbruchoptimierung!!! -Da \Macro{KOMAoption}\PParameter{DIV}\PParameter{last}, -\Macro{KOMAoptions}\PParameter{DIV=last} oder +Da\important{\Macro{recalctypearea}} +\Macro{KOMAoption}\PParameter{DIV}\PParameter{last} oder +\Macro{KOMAoptions}\PParameter{DIV=last} beziehungsweise \Macro{typearea}\POParameter{current}\PParameter{last} für die Neuberechnung -des Satzspiegels und der Ränder recht häufig benötigt -werden, gibt es dafür die abkürzende Anweisung +des Satzspiegels und der Ränder recht häufig benötigt werden, gibt es dafür +die abkürzende Anweisung \Macro{recalctypearea}\ChangedAt{v3.00}{\Package{typearea}}. -\end{sloppypar} \begin{Example} Wenn Ihnen die Schreibweisen \begin{lstcode} @@ -1009,21 +1019,19 @@ doppelseitiger Satz verwendet. Deaktivieren der Option\important{\OptionValue{twoside}{false}} führt zu einseitigem Satz. \begin{table} -% \begin{minipage}{\linewidth} % \centering % \caption \KOMAoptions{captions=topbeside}\setcapindent{0pt} - \begin{captionbeside} - [{Standardwerte für einfache Schalter in \KOMAScript}] - {\label{tab:truefalseswitch}Standardwerte für alle einfachen Schalter in \KOMAScript} + \begin{captionbeside}% + [{Standardwerte für einfache Schalter in \KOMAScript}]% + {\label{tab:truefalseswitch}Standardwerte für alle einfachen Schalter in + \KOMAScript}% [l] \begin{tabular}[t]{ll} \toprule Wert & Bedeutung \\ \midrule - \PValue{true}\footnote{Dieser Wert wird auch - eingesetzt, wenn die entsprechende Option ohne Wertangabe verwendet - wird.} & aktiviert die Option\\ + \PValue{true} & aktiviert die Option\\ \PValue{on} & aktiviert die Option \\ \PValue{yes} & aktiviert die Option \\ \PValue{false}& deaktiviert die Option \\ @@ -1032,7 +1040,6 @@ Option\important{\OptionValue{twoside}{false}} f \bottomrule \end{tabular} \end{captionbeside} -% \end{minipage} \end{table} \iffree{}{\BeginIndex{Option}{twoside~=\PValue{semi}}}% @@ -1040,13 +1047,26 @@ Au Wert \PValue{semi}\ChangedAt{v3.00}{\Package{typearea}}% \important{\OptionValue{twoside}{semi}} angegeben werden. Dieser Wert \PValue{semi} führt zu doppelseitigem Satz mit einseitigen Rändern und -einseitigen, also nicht alternierenden Marginalien. - -Die Option kann wahlweise als Klassenoption bei \Macro{documentclass}, als +einseitigen, also nicht alternierenden +Marginalien. Eine\ChangedAt{v3.12}{\Package{typearea}} eventuelle +Bindekorrektur (siehe Option \Option{BCOR}, +\autopageref{desc:typearea.option.BCOR}) wird jedoch ab \KOMAScript~Version +3.12 wie beim doppelseitigen Satz auf Seiten mit ungerader Nummer dem linken +Rand und auf Seiten mit gerader Nummer dem rechten Rand zugeschlagen. Wird auf +Kompatibilität zu einer Version früheren Version zurückgeschaltet (siehe +\autoref{sec:typearea.compatibilityOptions}, +\autopageref{sec:typearea.compatibilityOptions}), so ist die Bindekorrektur +jedoch auch bei \OptionValue{twoside}{semi} immer Teil des linken Randes. + +Die Option kann % +\iffalse % Umbruchkorrektur +wahlweise +\fi % +als Klassenoption bei \Macro{documentclass}, als Paketoption bei \Macro{usepackage} oder auch nach dem Laden von \Package{typearea} per \Macro{KOMAoptions} oder \Macro{KOMAoption} gesetzt werden. Eine Verwendung dieser Option nach dem Laden von \Package{typearea} -führt dabei\textnote{automatische Neuberechnung} automatisch zur +führt\textnote{automatische Neuberechnung} automatisch zur Neuberechnung des Satzspiegels mittels \Macro{recalctypearea} (siehe \autopageref{desc:typearea.cmd.recalctypearea}). War vor der Option doppelseitiger Satz aktiv, wird noch vor der Neuberechnung auf die nächste @@ -1077,11 +1097,15 @@ doppelspaltiger Satz verwendet. Ein Deaktivieren der Option führt wieder zum voreingestellten, einspaltigen Satz. -Die Option kann wahlweise als Klassenoption bei \Macro{documentclass}, als +Die Option kann % +\iffalse % Umbruchkorrektur +wahlweise +\fi % +als Klassenoption bei \Macro{documentclass}, als Paketoption bei \Macro{usepackage} oder auch nach dem Laden von \Package{typearea} per \Macro{KOMAoptions} oder \Macro{KOMAoption} gesetzt werden. Eine Verwendung dieser Option nach dem Laden von \Package{typearea} -führt dabei\textnote{automatische Neuberechnung} automatischen zur +führt\textnote{automatische Neuberechnung} automatisch zur Neuberechnung des Satzspiegels mittels \Macro{recalctypearea} (siehe \autopageref{desc:typearea.cmd.recalctypearea}).% % @@ -1114,21 +1138,22 @@ Neuberechnung des Satzspiegels mittels \Macro{recalctypearea} (siehe 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 - Copyright-Hinweis, so wirkt die Fußzeile eher wie ein etwas abgesetzter Teil - des Textkörpers. Bei der Berechnung des Satzspiegels sollte das - berücksichtigt werden. + versteht man die Angabe der Seitenzahl, wahlweise innerhalb oder außerhalb + des Satzspiegels, meist im Kopf oder Fuß der Seite.} 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 Copyright-Hinweis, 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 @@ -1173,14 +1198,13 @@ angegeben sind. Man kann die Optionen auch ohne Wertzuweisung verwenden. In diesem Fall wird \PValue{true} als \PName{Ein-Aus-Wert} verwendet, also der Kopf oder Fuß zum Satzspiegel gerechnet. -\iffree{}{\enlargethispage{\dp\strutbox}}% Umbruchkorrektur Wenn Sie unsicher sind, was die richtige Einstellung ist, lesen Sie bitte obige Erläuterungen. Voreingestellt sind normalerweise \OptionValue{headinclude}{false} und \OptionValue{footinclude}{false}. Dies kann sich jedoch bei den \KOMAScript-Klassen je nach Klassenoption oder bei Verwendung anderer \KOMAScript-Pakete generell ändern (siehe \autoref{sec:maincls.options} und -\autoref{cha:scrpage}). +\iffree{\autoref{cha:scrpage} oder }{}\autoref{cha:scrlayer-scrpage}). Bitte beachten Sie unbedingt\textnote{Achtung!}, dass diese Optionen bei Verwendung einer der \KOMAScript-Klassen als Klassenoptionen oder per @@ -1249,7 +1273,17 @@ bleiben. 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} oder setzt + erreichen: % +\iftrue % Umbruchkorrektur + Die Anpassung von \Length{textwidth}\IndexLength{textwidth} und + \Length{marginparwidth}\IndexLength{marginparwidth} nach der Berechnung des + Satzspiegels. Siehe dazu \Macro{AfterCalculatingTypearea} in + \autoref{sec:typearea-experts.experts}, + \autopageref{desc:typearea-experts.cmd.AfterCalculatingTypearea}. +% +\else +% + Man verzichtet auf die Option \Option{mpinclude} oder setzt \Option{mpinclude} auf \PValue{false}, 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 @@ -1258,6 +1292,8 @@ bleiben. Demgegenüber wird \Option{mpinclude} bei \OptionValue{DIV}{calc}\IndexOption{DIV=calc} (siehe \autopageref{desc:typearea.option.DIV.calc}) berücksichtigt. +% +\fi \end{Explain} Bitte beachten Sie unbedingt\textnote{Achtung!}, dass diese Option bei @@ -1316,8 +1352,9 @@ Erfordernissen anpassen. \begin{lstcode} \documentclass[headlines=2.1]{scrartcl} \end{lstcode} - Befehle, mit denen dann der Inhalt der zweizeiligen Kopfzeile - definiert werden kann, sind in \autoref{cha:scrpage} zu finden. + Befehle, mit denen dann der Inhalt der zweizeiligen Kopfzeile definiert + werden kann, sind in \autoref{cha:scrlayer-scrpage}\iffree{oder + \autoref{cha:scrpage}}{} zu finden. \end{Example} In einigen Fällen ist es nützlich, wenn man die Kopfhöhe nicht in Zeilen, @@ -1346,6 +1383,88 @@ Option \Option{DIV} mit den Werten \PValue{last} oder \PValue{current} (siehe \EndIndex{Option}{headlines~=\PName{Anzahl}} +\BeginIndex{Option}{footlines~=\PName{Anzahl}}% +\BeginIndex{Option}{footheight~=\PName{Höhe}}% +\begin{Declaration} + \KOption{footlines}\PName{Zeilenanzahl}\\ + \KOption{footheight}\PName{Höhe} +\end{Declaration}% +Ebenso wie für den Kopf fehlt aber noch die Angabe, wie hoch der Fuß sein +soll. Hierzu dienen die Optionen \Option{footlines} und +\Option{footheight}\ChangedAt{v3.12}{\Package{typearea}}. Allerdings ist die +Höhe des Fußes im Gegensatz zur Höhe des Kopfes keine Länge des \LaTeX-Kerns +selbst. Daher definiert \Package{typearea} zur Einführung eine neue Länge +\Length{footheight}\IndexLength[indexmain]{footheight}, falls diese noch nicht +existiert. Ob diese dann auch beispielsweise von Klassen und Paketen für die +Gestaltung von Kopf und Fuß verwendet wird, hängt von den verwendeten Klassen +und Paketen ab. Das \KOMAScript-Paket \Package{scrlayer-scrpage} +berücksichtigt\iffree{ im Gegensatz zu \Package{scrpage2}}{} +\Length{footheight} und arbeitet somit aktiv mit \Package{typearea} +zusammen. Die \KOMAScript-Klassen berücksichtigen \Length{footheight} hingegen +nicht, da sie ohne Paketunterstützung nur Seitenstile mit einzeilige +Seitenfüßen anbieten. + +Die Option \Option{footlines}\important{\Option{footlines}} setzt man +vergleichbar zu \Option{headlines} auf die Anzahl der Fußzeilen. +Normalerweise arbeitet das \Package{typearea}-Paket mit 1,25 +Fußzeilen. Dieser Wert stellt einen Kompromiss dar. Zum einen ist er groß +genug, um auch für eine über- und unterstrichene Fußzeile (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 Fußzeile ohne Trennlinien 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 Fußhöhe genauer den tatsächlichen +Erfordernissen anpassen. + +\begin{Example} + Angenommen, im Fuß soll eine zweizeilige Copyright-Angabe gesetzt + werden. Zwar gibt es in \LaTeX{} selbst keinen Test, ob der für den Fuß + vorgesehene Platz dafür genügend Raum bietet, die Überschreitung der + vorgesehenen Höhe resultiert aber wahrscheinlich in einer unausgeglichenen + Verteilung von Satzspiegeln und Rändern. Außerdem führt beispielsweise das + Paket \Package{scrlayer-scrpage}, mit dem ein solcher Fuß\-in\-halt gesetzt + werden könnte, durchaus eine entsprechende Überprüfung durch und meldet + gegebenenfalls auch Überschreitungen. Daher ist es sinnvoll, die benötigte + größere Fußhöhe bereits bei der Berechnung des Satzspiegels anzugeben: +\begin{lstcode} + \documentclass[a4paper]{article} + \usepackage[footlines=2.1]{typearea} +\end{lstcode} + Es ist auch wieder möglich und bei Verwendung einer \KOMAScript-Klasse + empfehlenswert, diese Option direkt an die Klasse zu übergeben: +\begin{lstcode} + \documentclass[footlines=2.1]{scrartcl} +\end{lstcode} + Befehle, mit denen dann der Inhalt der zweizeiligen Fußzeile + definiert werden kann, sind in \autoref{cha:scrlayer-scrpage} zu finden. +\end{Example} + +In einigen Fällen ist es nützlich, wenn man die Fußhöhe nicht in Zeilen, +sondern direkt als Längenwert angeben kann. Dies ist mit Hilfe der alternativ +verwendbaren Option \Option{footheight}\important{\Option{footheight}} +möglich. Als \PName{Höhe} sind alle Längen und Größen verwendbar, die \LaTeX{} +kennt. Es ist jedoch zu beachten, dass bei Verwendung einer \LaTeX-Länge wie +\Length{baselineskip} nicht deren Größe zum Zeitpunkt des Setzens der Option, +sondern zum Zeitpunkt der Berechnung des Satzspiegels und der Rändern +entscheidend ist. + +Bitte beachten Sie unbedingt\textnote{Achtung!}, dass diese Optionen bei +Verwendung einer der \KOMAScript-Klassen als Klassenoptionen oder per +\Macro{KOMAoptions} beziehungsweise \Macro{KOMAoption} nach dem Laden der +Klasse übergeben werden müssen. Eine Änderung dieser Optionen nach dem Laden +von \Package{typearea} führt nicht\textnote{keine automatische + Neuberechnung} zu einer automatischen Neuberechnung des +Satzspiegels. Vielmehr wirkt sich die Änderung erst bei der nächsten +Neuberechnung des Satzspiegels aus. Zur Neuberechnung des Satzspiegels siehe +Option \Option{DIV} mit den Werten \PValue{last} oder \PValue{current} (siehe +\autopageref{desc:typearea.option.DIV.last}) oder die Anweisung +\Macro{recalctypearea} (siehe +\autopageref{desc:typearea.cmd.recalctypearea}).% +% +\EndIndex{Option}{footheight~=\PName{Höhe}}% +\EndIndex{Option}{footlines~=\PName{Anzahl}} + + \BeginIndex{Cmd}{areaset}% \begin{Declaration} \Macro{areaset}\OParameter{BCOR}\Parameter{Breite}\Parameter{Höhe} @@ -1388,18 +1507,26 @@ unber \Macro{topskip} ist. Die oberste Zeile benötigt damit keine Höhe. Die Unterlängen der untersten Zeile ragen dafür unter den Satzspiegel. -\item Soll stattdessen ein Gedichtband gesetzt werden, bei dem es nur +\iffalse % Umbruchkorrekturtext + 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: +% +\else % + Soll stattdessen ein Gedichtband mit quadratischem Textbereich der + Seitenlänge 15\Unit{cm} und einem Binderand von 1\Unit{cm} gesetzt + werden, so ist folgendes möglich: +% +\fi \begin{lstcode} \documentclass{gedichte} \usepackage{typearea} \areaset[1cm]{15cm}{15cm} -\end{lstcode} -\end{Example} -\EndIndex{Cmd}{areaset} +\end{lstcode}% +\end{Example}% +\EndIndex{Cmd}{areaset}% \BeginIndex{Option}{DIV~=\PValue{areaset}}% @@ -1428,7 +1555,8 @@ Paketes \Package{geometry}\IndexPackage{geometry}\important{\Package{geometry}} (siehe \cite{package:geometry}) empfehlenswert. % -\else +\fi +\iffalse % Das Paket \Package{typearea} ist nicht dafür gedacht, bestimmte Randbreiten einzustellen. Dafür ist das Paket \Package{geometry}\IndexPackage{geometry} @@ -1458,8 +1586,7 @@ Seitengr \BeginIndex{Option}{paper~=\PName{Format}}% \BeginIndex{Option}{paper~=\PName{Ausrichtung}}% Die Option \Option{paper}\ChangedAt{v3.00}{\Package{typearea}} ist das -zentrale Element der Formatauswahl bei \KOMAScript. Als -\PName{Format}\important[i]{% +zentrale Element der Formatauswahl\important[i]{% \begin{tabular}[t]{@{}l@{}l@{}} \KOption{paper} & \PValue{letter}, \\ & \PValue{legal}, \\ @@ -1467,12 +1594,11 @@ zentrale Element der Formatauswahl bei \KOMAScript. Als & \PValue{A0}, \PValue{A1}, \PValue{A2} \dots\\ & \PValue{B0}, \PValue{B1}, \PValue{B2} \dots\\ & \PValue{C0}, \PValue{C1}, \PValue{C2} \dots\\ - & \PValue{D0}, \PValue{D1}, \PValue{D2} \dots\end{tabular}} -wird -dabei zunächst das amerikanische \Option{letter}, \Option{legal} und -\Option{executive} unterstützt. Darüber hinaus sind die ISO-Formate der Reihen -A, B, C und D möglich, also beispielsweise -\PValue{A4} oder -- klein geschrieben -- \PValue{a4}. + & \PValue{D0}, \PValue{D1}, \PValue{D2} \dots\end{tabular}} % +bei \KOMAScript. Als \PName{Format} wird dabei zunächst das amerikanische +\Option{letter}, \Option{legal} und \Option{executive} unterstützt. Darüber +hinaus sind die ISO-Formate der Reihen A, B, C und D möglich, also +beispielsweise \PValue{A4} oder -- klein geschrieben -- \PValue{a4}. Querformate\important{% \begin{tabular}[t]{@{}l@{}l@{}} @@ -1570,11 +1696,11 @@ Option \Option{DIV} mit den Werten \PValue{last} oder \PValue{current} (siehe 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% - \iffalse% Umbruchkorrektur + \iftrue% Umbruchkorrektur \footnote{PCL ist die Druckersprache, die HP für seine Tinten- und Laserdrucker verwendet.}% \fi \ oder ESC/P2% - \iffalse% Umbruchkorrektur + \iftrue% Umbruchkorrektur \footnote{ESC/P2 ist die Druckersprache, die EPSON für seine Nadel-, Tinten- und Laserdrucker benutzt.}% \fi \ ausgegeben, spielt dies normalerweise keine Rolle, da auch bei diesen diff --git a/Master/texmf-dist/source/latex/koma-script/doc/scrguide.cls b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.cls index 1e397e31138..e4d540c3ffb 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/scrguide.cls +++ b/Master/texmf-dist/source/latex/koma-script/doc/scrguide.cls @@ -1,6 +1,6 @@ % ====================================================================== % scrguide.cls -% Copyright (c) Markus Kohm, 2005-2012 +% Copyright (c) Markus Kohm, 2005-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrguide.cls -% Copyright (c) Markus Kohm, 2005-2012 +% Copyright (c) Markus Kohm, 2005-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -38,7 +38,7 @@ % \section{Identification} % % \begin{macrocode} -\ProvidesClass{scrguide}[2011/10/18 v1.6 internal KOMA-Script guide class] +\ProvidesClass{scrguide}[2013/10/13 v1.7c internal KOMA-Script guide class] % \end{macrocode} % % @@ -92,8 +92,32 @@ % % \section{Load the Base Class and Packages} % +% \begin{macro}{\KOMAProvidesFile} +% \begin{macro}{\@KOMAProvidesFile} +% Extended version of |\ProvidesFile|, that uses the date from the +% repository. +% \begin{macrocode} +\newcommand*{\KOMAProvidesFile}{} +\def\KOMAProvidesFile#1{% + \@ifnextchar [%] + {\@KOMAProvidesFile{#1}}{\ProvidesFile{#1}\relax}% +} +\newcommand*{\@KOMAProvidesFile}{} +\def\@KOMAProvidesFile#1[$#2: #3-#4-#5 #6$#7]{% + \ifstr{#2}{Date}{% + \ProvidesFile{#1}[#3/#4/#5 #6 #7]\relax + }{% + \ClassError{scrguide}{missmatch repository date string}{% + It seams, that you haven't used $% + Date: YYYY-MM-DD $ for the date of \string\KOMAProvidesFile.}% + \ProvidesFile{#1}[$#2: #3/#4/#5 #6$#7]\relax + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} % NOTE: I use \texttt{latin1} instead of the prefered \texttt{utf8} because of -% problems of package \textsf{listings}. +% problems of early versions of package \textsf{listings}. % \begin{macrocode} \LoadClassWithOptions{scrbook} \RequirePackage[latin1]{inputenc} @@ -112,6 +136,7 @@ \RequirePackage{makeidx} \RequirePackage{scrdate} \RequirePackage{scrtime} +\RequirePackage{picture} \RequirePackage{graphicx} \RequirePackage{booktabs} \RequirePackage{longtable} @@ -119,6 +144,7 @@ \RequirePackage{listings} \RequirePackage{multicol} \RequirePackage{marginnote} +\RequirePackage{tabularx} \RequirePackage{xcolor,tocstyle}% hyperref needs xcolor with tocstyle \RequirePackage[\uselanguage]{hyperref} \RequirePackage[open,openlevel=0]{bookmark}% improved pdf bookmarks @@ -658,6 +684,9 @@ % This may already be defined. % \begin{macrocode} \providecommand*{\eTeX}{\ensuremath{\varepsilon}-\TeX} +\providecommand*{\NTS}{% + \leavevmode\hbox{$\cal N\kern-0.35em\lower0.5ex\hbox{$\cal T$}% + \kern-0.2emS$}} % \end{macrocode} % \end{macro} % @@ -1027,6 +1056,8 @@ % to allow page breaks. % \begin{macrocode} \newenvironment{desctable}[1][\descdefaultindent]{% + \ClassError{scrguide}{deprecated environment}{% + please replace desctable by desclist}% \onelinecaptionsfalse \start@desctab{#1}% \newcommand{\Endfirsthead}{\toprule\endfirsthead}% @@ -1046,6 +1077,8 @@ % \end{environment} % % \begin{macro}{\start@desctab} +% \changes{v1.7c}{2013/10/13}{\cs{leavevmode}\cs{ignorespaces} added to +% \cs{nentry}} % This is the \emph{worker} macro of \texttt{desctable} and % \texttt{desctabular}. It does the complete calculations and definition of % the entry (something like |\item|) commands. @@ -1058,7 +1091,7 @@ \addtolength{\labelwidth}{-2\tabcolsep}% \newcommand{\nentry}[2]{% \multicolumn{2}{p{\labelwidth}}{\raggedright##1}\tabularnewline*% - \hspace*{#1} & ##2\tabularnewline% + \hspace*{#1} & \leavevmode\ignorespaces ##2\tabularnewline% }% \newcommand{\entry}[2]{\nentry{##1}{##2}[.5\baselineskip]}% \newcommand*{\pentry}[1]{% @@ -1105,8 +1138,11 @@ \setbox\desccaptionb@xfirst\vbox{% \tabular{p{\labelwidth}}% \multicolumn{1}{@{}p{\dimexpr\labelwidth+2\tabcolsep}@{}}{% - \captionaboveof{table}[##1]{##2}% - }\tabularnewline[\dimexpr \abovecaptionskip\abovecaptionskipcorrection\relax] + \captionaboveof{table}[##1]{##2\unskip\strut}% + }\tabularnewline[% + \dimexpr \abovecaptionskip-\normalbaselineskip\relax +% \dimexpr \abovecaptionskip-\abovecaptionskipcorrection\relax + ] \toprule\tabularnewline \endtabular \vskip -\baselineskip @@ -1135,21 +1171,35 @@ \ifx\relax##1\relax\else\vskip##1\relax\fi }% \renewcommand{\nentry}[2]{% + \typeout{TRACE: Generate entry}% \setbox\descentryb@x\vbox{% \ifx\desccaptionb@xnext\desccaptionb@xfirst\copy\desccaptionb@xnext\fi - \tabular{lp{\descwidth}}% + \makebox[\linewidth][l]{\begin{tabular}{lp{\descwidth}}% \multicolumn{2}{p{\labelwidth}}{\raggedright##1}\tabularnewline \hspace*{#1} & ##2\tabularnewline - \endtabular + \end{tabular}}% }% + \typeout{TRACE: entry done}% \begingroup - \dimen@ \ht\descentryb@x \advance \dimen@ \dp\descentryb@x - \advance \dimen@ \ht\descfootb@x \advance \dimen@ \dp\descfootb@x + \dimen@ \ht\descentryb@x + \advance \dimen@ \dp\descentryb@x + \ifdim \ht\descfootb@x>\ht\strutbox + \advance \dimen@ \ht\descfootb@x + \else + \advance \dimen@ \ht\strutbox + \fi + \ifdim \dp\descfootb@x>\dp\strutbox + \advance \dimen@ \dp\descfootb@x + \else + \advance \dimen@ \dp\strutbox + \fi \advance \dimen@ \baselineskip \dimen@ii \pagegoal \advance \dimen@ii -\pagetotal - \typeout{TRACE: \the\dimen@>\the\dimen@ii?}% + \typeout{TRACE: \the\dimen@>\the\dimen@ii\space (footbox + ht=\the\ht\descfootb@x, dp=\the\dp\descfootb@x; strutbox + ht=\the\ht\strutbox, dp=\the\dp\strutbox)?}% \ifdim \dimen@>\dimen@ii - \typeout{TRACE: Break table}% + \typeout{TRACE: Break table \thetable}% \ifx\desccaptionb@xnext\@empty \csname @desclistentryhook\endcsname {\copy\descfootb@x}% @@ -1186,7 +1236,7 @@ }% \csname @desclistentryhook\endcsname {\copy\descfootb@x}% - \par + \par\nobreak \vskip -\baselineskip \vskip \intextsep } % \end{macrocode} @@ -1207,72 +1257,54 @@ columns=fullflexible,keepspaces,% aboveskip=.4\baselineskip,% belowskip=0pt% -} -\lstdefinestyle{code}{% +} \lstdefinestyle{code}{% style=basics,% language=[LaTeX]TeX,% moretexcs={% - @auxout, - @currext, - @empty, - @float, - @ifpackagelater, - @ifundefined, - @rightmark, - @secondoftwo, - @tempswafalse,@tempswatrue, - @undefined, - AtBeginDocument,AtEndDocument, - appendix, - ClassWarningNoLine,CurrentOption, - DeclareOption,DeclareRobustCommand,dimexpr, - end@float, - ExecuteOptions, - if@filesw,if@tempswa,if@twoside, - includegraphics, - MessageBreak, + @auxout, @currext, @empty, @float, @ifpackagelater, @ifundefined, + @rightmark, @secondoftwo, @tempswafalse,@tempswatrue, @undefined, + AtBeginDocument,AtEndDocument, appendix, ClassWarningNoLine,CurrentOption, + DeclareOption,DeclareRobustCommand,dimexpr, end@float, ExecuteOptions, + if@filesw,if@tempswa,if@twoside, includegraphics, MessageBreak, onehalfspacing, PackageError,PackageInfo,PackageWarning,PassOptionsToPackage, ProcessOptions,protected@write,ProvidesFile,ProvidesPackage, - RequirePackage,RequirePackageWithOptions, - setkey,setlength, + RequirePackage,RequirePackageWithOptions,setkey,setlength, + SelectInputMappings, textsuperscript}% -} -\lstdefinestyle{output}{% +} \lstdefinestyle{output}{% style=basics,breaklines,prebreak=\mbox{$\hookleftarrow$}% -} -\lstdefinestyle{KOMA}{% +} \lstdefinestyle{KOMA}{% style=code,% moretexcs={% - @addtoplength,@setplength,@newplength, - activateareas, + @addtoplength,@setplength,@newplength, activateareas, addchap,addrentry,Address,addcontentslinetoeachtocfile,addsec, addtoeachtocfile, addtokomafont,addtolengthplength,addtoreffields,addtotoclist, adrchar,adrentry,AfterBibliographyPreamble,AfterCalculatingTypearea, - AfterFile,AfterPackage,AfterStartingTOC, + AfterFile,AfterPackage,AfterStartingTOC,AfterTOCHead, appendixmore,appendixname,areaset,autodot,automark,AtAddToTocList, AtBeginLetter, BeforeClosingMainAux,BeforePackage,bib@beginhook,bib@endhook, + blinddocument,blindtext,Blinddocument,Blindtext, cc,captionabove,captionaboveof,captionbelow,captionbelowof,captionformat, - captionof,cefoot,cfoot,chapapp, - chapappifchapterprefix, + captionof,cefoot,cfoot,chapapp, chapappifchapterprefix, chapter,chapterformat,chaptermarkformat,chapterpagestyle,chead, cleardoubleevenemptypage,clearscrheadfoot,closing,cofoot,Comment, DeclareNewTOC, dedication,deffootnote,deffootnotemark,DefineFamily,DefineFamilyKey, DefineFamilyMember,defpagestyle,deftripstyle, dictum,dictumauthorformat,dictumrule,dictumwidth,doforeachtocfile, - encl,extratitle, - FamilyBoolKey,FamilyExecuteOptions,FamilyNumericalKey,% + encl,extratitle, FamilyBoolKey,FamilyExecuteOptions,FamilyNumericalKey,% FamilyOption,FamilyOptions,FamilyProcessOptions,FamilySetBool, figureformat,figurename,firstfoot,firsthead,FirstName,footfont,footref, FreeI,FreeII,FreeIII,FreeIV, + GenericMarkFormat, headfont,headmark, ifattoclist,ifoot,ihead,ifkomavarempty,ifstr,ifthispageodd,InputAddressFile, - KOMAoption,KOMAoptions,KOMAScript, - l@addto@macro,LastName,LetterOptionNeedsPapersize,listoffigures, - listoftables,listoftoc,LoadLetterOption,lohead,lowertitleback, + KOMAoption,KOMAoptions,KOMAScript, l@addto@macro, + LastName,lefoot,lehead,LetterOptionNeedsPapersize,lipsum,listoffigures, + listoftables,listoftoc,LoadLetterOption,lofoot,lohead,lowertitleback, MakeMarkcase,maketitle,manualmark,marginline,minisec, multfootsep,multiplefootnoteseparator, Name,nameday,newbibstyle,newcaptionname,newkomavar,nexthead, @@ -1281,11 +1313,11 @@ part,partformat,partname,partpagestyle,pnumfont, PreventPackageFromLoading,publishers,ps, raggedsection,raggedpart,raggedsignature,recalctypearea, - refL,refS,refN,refParagraph,refParagraphN,refPar,refParL,refParS,refParN, - refSentence,refSentenceL,refSentenceS,refSentenceN, - rehead, + refL,refS,refN,refoot, + refParagraph,refParagraphN,refPar,refParL,refParS,refParN, + refSentence,refSentenceL,refSentenceS,refSentenceN,rehead, removereffields,ReplaceInput,ReplacePackage,ResetPreventPackageFromLoading, - sectionmarkformat,Sentence,sentencename,sentenceshortname, + rohead, sectionmarkformat,Sentence,sentencename,sentenceshortname, setbibpreamble,setcapindent,setcapwidth, setchapterpreamble,setfootbotline,setfootsepline,setfootwidth, setheadsepline,setheadtopline,setheadwidth,setindexpreamble,setkomafont, @@ -1296,19 +1328,13 @@ tableformat,tablename,tableofcontents,textsubscript,thechapter,thefigure, thefootnotemark,thepar,thepart,thesection,thesentence,thesubsection, thetable,thistime, - titlehead,tocbasic@extend@babel,TOCclone,todaysname,typearea, - unitfactor, - unsettoc,usekomafont,useplength,usekomavar,uppertitleback - }% -} -\lstset{style=basics} -\lstnewenvironment{lstoutput}[1][]{% + titlehead,tocbasic@extend@babel,TOCclone,todaysname,typearea, unitfactor, + unsettoc,usekomafont,useplength,usekomavar,uppertitleback }% +} \lstset{style=basics} \lstnewenvironment{lstoutput}[1][]{% \lstset{style=output,basicstyle=\ttfamily\small,#1}% -}{} -\lstnewenvironment{lstcode}[1][]{% +}{} \lstnewenvironment{lstcode}[1][]{% \lstset{style=KOMA,basicstyle=\ttfamily\small,#1}% -}{} -\newcommand*{\lstinputcode}[1][]{% +}{} \newcommand*{\lstinputcode}[1][]{% \lstinputlisting[style=KOMA,basicstyle=\ttfamily\small,#1]% } % \end{macrocode} @@ -1332,12 +1358,12 @@ KOMAScript \endcsname % % \begin{macro}{\url@} % Redefine to make \texttt{CTAN://} be an alias for -% \texttt{ftp://|\GuideCTANserver|/tex-archive/}. +% \texttt{http://|\GuideCTANserver|/tex-archive/}. % \begin{macrocode} \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://\GuideCTANserver/tex-archive/#2}% + \hyper@linkurl{\Hurl{#1://#2}}{http://\GuideCTANserver/tex-archive/#2}% \else \hyper@linkurl{\Hurl{#1://#2}}{#1://#2}% \fi diff --git a/Master/texmf-dist/source/latex/koma-script/japanlco.dtx b/Master/texmf-dist/source/latex/koma-script/japanlco.dtx index 98d927764c8..98d89ee3fdb 100644 --- a/Master/texmf-dist/source/latex/koma-script/japanlco.dtx +++ b/Master/texmf-dist/source/latex/koma-script/japanlco.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % japanlco.dtx -% Copyright (c) Markus Kohm, 2008-2012 +% Copyright (c) Markus Kohm, 2008-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % japanlco.dtx -% Copyright (c) Markus Kohm, 2008-2012 +% Copyright (c) Markus Kohm, 2008-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -55,7 +55,7 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: japanlco.dtx +%%% From File: $Id: japanlco.dtx 1380 2013-10-01 15:31:55Z mjk $ %<*driver> % \fi \ProvidesFile{japanlco.dtx}[2009/03/04 v3.03 KOMA-Script (letter class options)] diff --git a/Master/texmf-dist/source/latex/koma-script/scraddr.dtx b/Master/texmf-dist/source/latex/koma-script/scraddr.dtx index aacad73f72a..b1deb16d478 100644 --- a/Master/texmf-dist/source/latex/koma-script/scraddr.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scraddr.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scraddr.dtx -% Copyright (c) Markus Kohm, 2006-2012 +% Copyright (c) Markus Kohm, 2006-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scraddr.dtx -% Copyright (c) Markus Kohm, 2006-2012 +% Copyright (c) Markus Kohm, 2006-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -55,20 +55,39 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: scraddr.dtx +%%% From File: $Id: scraddr.dtx 1380 2013-10-01 15:31:55Z mjk $ %<*dtx> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{scraddr.dtx} -% +%> %\NeedsTeXFormat{LaTeX2e}[1995/12/01] %\ProvidesFile{scraddr.drv} %\ProvidesPackage{scraddr} %<*dtx|scraddr|driver> - [2006/03/28 v1.1c KOMA-Script + [2013/09/30 v1.1c KOMA-Script % % package] %<*dtx|driver> Script bundle] % +%<*dtx> +\ifx\documentclass\undefined + \input docstrip.tex + \@@input scrdocstrip.tex + \@@input scrstrip.inc + \KOMAdefVariable{COPYRIGHTFROM}{2006} + \generate{\usepreamble\defaultpreamble + \file{scraddr.sty}{% + \from{scraddr.dtx}{scraddr}% + \from{scrlogo.dtx}{logo}% + }% + } + \@@input scrstrop.inc +\else + \let\endbatchfile\relax +\fi +\endbatchfile +% %<*driver> \documentclass{scrdoc} \usepackage[english,ngerman]{babel} diff --git a/Master/texmf-dist/source/latex/koma-script/scraddr.ins b/Master/texmf-dist/source/latex/koma-script/scraddr.ins deleted file mode 100644 index 9269288205a..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scraddr.ins +++ /dev/null @@ -1,70 +0,0 @@ -% ====================================================================== -% scraddr.ins -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scraddr.ins -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== - -% ---------- start of docstrip process --------------------------------- -\def\batchfile{scraddr.ins} - -% ---------- KOMA-Script default docstrip declarations ----------------- - -\input docstrip.tex -\@@input scrstrip.inc - -% ---------- File generation ------------------------------------------- - -\generate{\usepreamble\defaultpreamble - \file{scraddr.sty}{% - \ifbeta\from{scrbeta.dtx}{package,scraddr}\fi - \from{scraddr.dtx}{scraddr}% - \from{scrlogo.dtx}{logo}% - }% -} - -% ---------- end of docstrip process ----------------------------------- - -\ifToplevel{% - \def\idocfiles{`scraddr.dtx'}% -} - -\@@input scrstrop.inc - -\endinput -% -% end of file `scraddr.ins' -%%% Local Variables: -%%% mode: TeX -%%% TeX-master: "scrmain.ins" -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrbeta.dtx b/Master/texmf-dist/source/latex/koma-script/scrbeta.dtx index e8984037ef4..a79872429fc 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrbeta.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrbeta.dtx @@ -55,7 +55,7 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: scrbeta.dtx +%%% From File: $Id: scrbeta.dtx 1380 2013-10-01 15:31:55Z mjk $ %<*driver> % \fi \ProvidesFile{scrbeta.dtx}[2011/02/23 v3.09 KOMA-Script (beta warning)] diff --git a/Master/texmf-dist/source/latex/koma-script/scrdocstrip.tex b/Master/texmf-dist/source/latex/koma-script/scrdocstrip.tex new file mode 100644 index 00000000000..ca7ec757fd8 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrdocstrip.tex @@ -0,0 +1,311 @@ +% ====================================================================== +% scrdocstrip.tex +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrdocstrip.tex +% Copyright (c) Markus Kohm, 2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== + +\expandafter\ifx\csname scrdocstripversion\endcsname\relax + \let\KOMAbatchfile\batchfile + \let\batchfile\undefined +\fi + +\expandafter\ifx\csname ifbeta\endcsname\undefined + \expandafterlet\csname ifbeta\expandafter\csname iftrue\endcsname +\fi + +\input docstrip.tex + +\ifx\generate\undefined + \errhelp{| This installation requires docstrip version 2.3c or * later,^^J% + | but an old version of docstrip has been input.^^J% + | This error is fatal, because You have to update docstrip and maybe LaTeX + fist!} + \errmessage{| Fatal error: Old docstrip in input path} + \batchmode + \csname @@end\endcsname +\fi + +\expandafter\ifx\csname scrdocstripversion\endcsname\relax +\else \expandafter\endinput +\fi +\Msg{| Using KOMA-Script's docstrip extensions.} +% Support for variables: +\def\KOMAdefVariable#1#2{% + \expandafter\def\csname KOMAvar@#1\endcsname{#2}% +} +\def\KOMAifVariable#1{% + \expandafter\ifx\csname KOMAvar@#1\endcsname\relax + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi +} +\def\KOMAuseVariable#1{% + \KOMAifVariable{#1}{% + \csname KOMAvar@#1\endcsname + }{% + variable #1\undefined + }% +} +\KOMAdefVariable{AUTHOR}{Markus Kohm} +\KOMAdefVariable{COPYRIGHT}{% + Copyright (c) + \KOMAifVariable{COPYRIGHTFROM}{\KOMAuseVariable{COPYRIGHTFROM}-}{}% + \KOMAifVariable{COPYRIGHTTILL}{\KOMAuseVariable{COPYRIGHTTILL}}{} + \KOMAuseVariable{AUTHOR}% + \KOMAifVariable{EMAIL}{ \KOMAuseVariable{EMAIL}}{}% +} +\KOMAdefVariable{COPYRIGHTCOMMENT}{% + \MetaPrefix\space\KOMAuseVariable{COPYRIGHT}% +} +% Provide validity test: All files listed in a file must exists. +% You should note, that some TeX distributions cannot find files without +% extension! +\def\defuppercase#1#2{% + \edef\reserved@a{\noexpand\def\noexpand#1{#2}}% + \expandafter\uppercase\expandafter{\reserved@a}% +} +\def\KOMAdocExtensions{HTML,PDF,TXT} +\let\KOMAdocFilesMissing\empty +\let\KOMAnoFilesMissing\empty +\let\KOMAFilesMissing\empty +\def\getlastextension#1.#2.#3\@nil{% + \ifx\relax#2\relax + \ifx\relax#3\relax + \else + #1% + \fi + \else + \getlastextension#2.#3..\@nil + \fi +} +\def\KOMAvalidityTest#1{% + \maybeMsg{^^J| Testing validity of distribution: }% + \begingroup + \def\readloop{% + \ifeof\inFile\else + \read\inFile to \input@testfile\relax + \ifx\input@testfile\empty + \maybeMsg{\space}% + \else + \openin\inputcheck \input@testfile\relax + \ifeof\inputcheck + \maybeMsg{-}% + \defuppercase\reserved@a{% + \expandafter\getlastextension\input@testfile..\@nil + }% + \ifx\reserved@a\empty + \@addto\KOMAnoFilesMissing{\noexpand\do{\input@testfile}}% + \let\reserved@a\empty + \else + \forlist\reserved@b:=\KOMAdocExtensions\do + \ifx\reserved@a\reserved@b + \@addto\KOMAdocFilesMissing{\noexpand\do{\input@testfile}}% + \let\reserved@a\empty + \Forlistfalse + \fi + \od + \fi + \ifx\reserved@a\empty\else + \@addto\KOMAFilesMissing{\noexpand\do{\input@testfile}}% + \fi + \else + \maybeMsg{+}% + \fi + \closein\inputcheck + \fi + \expandafter\readloop + \fi + }% + \endlinechar=256 + \openin\inFile #1\relax + \ifeof\inFile + \global\@addto\KOMAFilesMissing{\noexpand\do{#1}}% + \else + \readloop + \closein\inFile + \fi + \ifx\KOMAFilesMissing\empty + \ifx\KOMAdocFilesMissing\empty + \ifx\KOMAnoFilesMissing\empty + \maybeMsg{\space OK.^^J}% + \fi + \fi + \else + \def\do##1{,^^J| \@spaces\@spaces\@spaces##1}% + \errhelp{| You should ask your distributor for a valid and legal + distribution.}% + \errmessage{^^J% + | Missing files: \expandafter\expandafter\expandafter\@gobble + \KOMAFilesMissing\KOMAdocFilesMissing\KOMAnoFilesMissing^^J% + | Distribution seems to be invalid.^^J% + | This error is fatal}% + \batchmode + \csname @@end\endcsname + \fi + \global\let\KOMAnoFilesMissing\KOMAnoFilesMissing + \global\let\KOMAdocFilesMissing\KOMAdocFilesMissing + \endgroup +} +\def\@gobbletwo#1#2{} +\expandafter\def\expandafter\ReportTotals\expandafter{\ReportTotals + \ifx\KOMAnoFilesMissing\empty\else + \Msg{% + +----------------------------------------------------------------------% + ^^J% + | Following files without extension seem to be missing:} + \begingroup + \def\do##1{,^^J| \space\space##1}% + \Msg{\expandafter\expandafter\expandafter\@gobbletwo\KOMAnoFilesMissing} + \endgroup + \Msg{% + | PLEASE NOTE, THAT DISTRIBUTIONS WITHOUT THOSE FILES ARE NOT ALLOWED!^^J% + | But maybe those files are there and you're TeX distribution simply^^J% + | cannot open files without extension.^^J% + +----------------------------------------------------------------------} + \fi + \ifx\KOMAdocFilesMissing\empty\else + \Msg{% + +----------------------------------------------------------------------% + ^^J% + | Following documentations files are missing:} + \begingroup + \def\do##1{,^^J| \space\space##1}% + \Msg{\expandafter\expandafter\expandafter\@gobbletwo\KOMAdocFilesMissing} + \endgroup + \Msg{% + | PLEASE NOTE, THAT DISTRIBUTIONS WITHOUT THOSE FILES ARE NOT ALLOWED!^^J% + | MAYBE YOU CAN GENERATE THOSE FILES FROM OTHER PARTS OF THE SOURCES.^^J% + +----------------------------------------------------------------------} + \fi +} +% Extend line scanner by: +% - %!VARIABLE : to write variable into files +% - %?VARIABLE=VALUE : to setup a new variable +\begingroup +\catcode`\%=12 \catcode`\*=14 +\gdef\processLineX%#1{* + \ifcase\ifx%#10\else + \ifx<#11\else + \ifx!#12\else 3\fi\fi\fi\relax + \expandafter\putMetaComment\or + \expandafter\checkOption\or + \expandafter\KOMAexpandVariable\or + \expandafter\removeComment\fi + #1} +\gdef\KprocessLineX%#1{* + \ifcase\ifx%#10\else + \ifx<#11\else + \ifx!#12\else + \ifx?#13\else 4\fi\fi\fi\fi\relax + \expandafter\putMetaComment\or + \expandafter\checkOption\or + \expandafter\KOMAexpandVariable\or + \expandafter\KOMAsetVariable\or + \expandafter\removeComment\fi + #1} +\endgroup +\def\KOMAexpandVariable!#1\endLine{% + \advance\codeLinesPassed\@ne + \maybeMsg{x}% + \edef\inLine{\KOMAuseVariable{#1}}% + \let\do\putline@do + \activefiles +} +\def\KOMAsetVariable?#1=#2\endLine{% + \expandafter\gdef\csname KOMAvar@#1\endcsname{#2}% +} +% Extend heading +\def\ds@heading{% + \expandafter\ifx\csname ifbeta\expandafter\endcsname + \csname iftrue\endcsname + \use@Warning{\outFileName}{% + YOU SHOULD NOTE, THAT THIS IS NOT AN OFFICIAL RELEASE!^^J% + THIS VERSION IS INTENDED TO BE USED FOR TESTING ONLY!^^J% + USAGE FOR PURPOSES OTHER THAN INTENDED IS DANGEROUS!^^J% + DON'T EXPECT ANY SUPPORT FOR THIS VERSION!% + }% + \fi + \MetaPrefix ^^J% + \MetaPrefix\space This is file `\outFileName',^^J% + \MetaPrefix\space generated with the docstrip utility, extended by + scrdocstrip.^^J% +} +\def\commentWarning#1#2{% + \MetaPrefix\space + -------------------------------------------------------------------------^^J% + \@commentWarning#2^^J\@nil + \MetaPrefix\space + -------------------------------------------------------------------------^^J% +} +\def\@commentWarning#1^^J#2\@nil{% + \MetaPrefix\space #1^^J% + \ifx\relax#2\relax\else\@commentWarning#2\@nil\fi +} +\def\KNL{^\empty^J\perCent^^J} +\def\genericWarning#1#2{% + \string\immediate\string\write17{\KNL + +----------------------------------------------------------------------\KNL + | WARNING (`#1'):\KNL + +----------------------------------------------------------------------\KNL + \@genericWarning#2^^J\@nil + +----------------------------------------------------------------------\KNL + }^^J% +} +\def\@genericWarning#1^^J#2\@nil{% + | #1\KNL + \ifx\relax#2\relax\else\@genericWarning#2\@nil\fi +} +\def\useWarning#1{\let\use@Warning#1} +\useWarning\genericWarning + +% Now, we need some code from docstrip to start old docstrip-processing +\ifx\undefined\KOMAbatchfile\else + \Defaultfalse + \let\batchfile\KOMAbatchfile + \def\process@first@batchfile{% + \processbatchFile + \ifnum\NumberOfFiles=\z@ + \interactive + \fi + \endbatchfile + } +\fi + +\chardef\scrdocstripversion 1\relax + +\process@first@batchfile +\endinput +% +% end of file `scrdocstrip.tex' diff --git a/Master/texmf-dist/source/latex/koma-script/scrextend.dtx b/Master/texmf-dist/source/latex/koma-script/scrextend.dtx index a2bf2eb5b8b..f90c757f820 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrextend.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrextend.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scrextend.dtx -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrextend.dtx -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -55,11 +55,11 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: scrextend.dtx +%%% From File: $Id: scrextend.dtx 1380 2013-10-01 15:31:55Z mjk $ %<*driver> % \fi -\ProvidesFile{scrextend.dtx}[2010/09/02 v3.06a KOMA-Script - (extend other classes)] +\ProvidesFile{scrextend.dtx}[2013/03/05 v3.12 KOMA-Script + (extend other classes)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -189,6 +189,8 @@ % Verfügung! % % \begin{option}{extendedfeature} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} % \begin{macrocode} \KOMA@key{extendedfeature}{% \scr@ext@activate{#1}% @@ -207,13 +209,7 @@ } \AtEndOfPackage{% \KOMA@key{extendedfeature}{% - \PackageError{scrextend}{% - Option `extendedfeature' too late% - }{% - Option `extendedfeature' my be used only while loading the - package.\MessageBreak - But you've tried to set it up later% - }% + \def\FamilyKeyState{Option `extendedfeature' too late}% }% } % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/koma-script/scrhack.dtx b/Master/texmf-dist/source/latex/koma-script/scrhack.dtx index 2d3df325044..81184c0ed01 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrhack.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrhack.dtx @@ -1,8 +1,8 @@ -% \CheckSum{675} +% \CheckSum{679} % \iffalse meta-comment % ====================================================================== % scrhack.dtx -% Copyright (c) Markus Kohm, 2008-2012 +% Copyright (c) Markus Kohm, 2008-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -23,7 +23,7 @@ % of TeX would generate the implementation documentation. % ---------------------------------------------------------------------- % scrhack.dtx -% Copyright (c) Markus Kohm, 2008-2012 +% Copyright (c) Markus Kohm, 2008-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -62,31 +62,79 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: scrhack.dtx +%%% From File: $Id: scrhack.dtx 1383 2013-10-01 15:44:28Z mjk $ %%%% using: package,identify %%%% using: package,option %%%% using: package,body %\NeedsTeXFormat{LaTeX2e}[1995/06/01] -%\ProvidesFile{scrhack.tex} +%<*driver> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{scrhack.dtx}[% +% +%\ProvidesFile{scrhack.tex}[% +%\ProvidesPackage{scrhack}[% +%\ProvidesFile{hyperref.hak}[% +%\ProvidesFile{float.hak}[% +%\ProvidesFile{floatrow.hak}[% +%\ProvidesFile{listings.hak}[% +%<*driver|manual|identify> +%!KOMAScriptVersion + package +%<*!identify> + (hacking other packages)% +% +% +% (hacking package +% hyperref)% +% float)% +% floatrow)% +% listings)% +%<*driver|manual|identify> +] +% %<*dtx> -\ProvidesFile{scrhack.dtx} +\ifx\documentclass\undefined + \input scrdocstrip.tex + \@@input scrkernel-version.dtx + \@@input scrstrip.inc + \KOMAdefVariable{COPYRIGHTFROM}{2008} + \generate{\usepreamble\defaultpreamble + \file{scrhack.sty}{% + \from{scrkernel-version.dtx}{package,scrhack}% + \from{scrhack.dtx}{package,identify}% + \from{scrkernel-basics.dtx}{load}% + \from{scrhack.dtx}{package,option}% + \from{scrhack.dtx}{package,body}% + \from{scrlogo.dtx}{logo}% + }% + \file{hyperref.hak}{% + \from{scrkernel-version.dtx}{file,hyperref.hak}% + \from{scrhack.dtx}{hack,hyperref,identify}% + \from{scrhack.dtx}{hack,hyperref,body}% + }% + \file{float.hak}{% + \from{scrkernel-version.dtx}{file,float.hak}% + \from{scrhack.dtx}{hack,float,identify}% + \from{scrhack.dtx}{hack,float,body}% + }% + \file{floatrow.hak}{% + \from{scrkernel-version.dtx}{file,floatrow.hak}% + \from{scrhack.dtx}{hack,floatrow,identify}% + \from{scrhack.dtx}{hack,floatrow,body}% + }% + \file{listings.hak}{% + \from{scrkernel-version.dtx}{file,listings.hak}% + \from{scrhack.dtx}{hack,listings,identify}% + \from{scrhack.dtx}{hack,listings,body}% + }% + } + \@@input scrstrop.inc +\else + \let\endbatchfile\relax +\fi +\endbatchfile % -%<*dtx|manual> - [2011/09/28 v3.10 KOMA-Script (hacking other packages)] -% -%\ProvidesPackage{scrhack} -%\ProvidesFile{hyperref.hak} -%\ProvidesFile{float.hak} -%\ProvidesFile{floatrow.hak} -%\ProvidesFile{listings.hak} -% [\KOMAScriptVersion\space -% package (hacking other packages)] -% hacking package -% hyperref] -% float] -% floatrow] -% listings] -%<*dtx> +%<*driver> \documentclass[halfparskip-]{scrdoc} \usepackage[latin1]{inputenc} \usepackage[english,ngerman]{babel} @@ -98,7 +146,7 @@ \GetFileInfo{scrhack.dtx} \DocInput{scrhack.dtx} \end{document} -% +% % \fi % % @@ -381,6 +429,7 @@ loading package \Package{scrhack}, but before loading package % einheitlich vor die Überschrift. % % \begin{option}{hyperref} +% \changes{v3.12}{2013/03/05}{Signalisierung mit \cs{FamilyKeyStateProcessed}} % \begin{macrocode} %<*package&option> \KOMA@ifkey{hyperref}{@scrhack@hyperref}% @@ -408,6 +457,7 @@ loading package \Package{scrhack}, but before loading package \AtEndOfPackage{% \KOMA@key[.scrhack.sty]{hyperref}{% \PackageWarning{scrhack}{option `hyperref=#1' ignored}% + \FamilyKeyStateProcessed }% \if@scrhack@hyperref\scr@hack@load\@pkgextension{hyperref}\fi }% @@ -552,6 +602,7 @@ loading package \Package{scrhack}, but before loading package % nach. % % \begin{option}{float} +% \changes{v3.12}{2013/03/05}{Signalisierung mit \cs{FamilyKeyStateProcessed}} % \begin{macrocode} %<*package&option> \KOMA@ifkey{float}{@scrhack@float}% @@ -561,6 +612,7 @@ loading package \Package{scrhack}, but before loading package \AfterPackage*{float}{% \KOMA@key[.scrhack.sty]{float}{% \PackageWarning{scrhack}{option `float' ignored}% + \FamilyKeyStateProcessed }% \if@scrhack@float\scr@hack@load\@pkgextension{float}\fi } @@ -688,6 +740,7 @@ loading package \Package{scrhack}, but before loading package % nach. % % \begin{option}{floatrow} +% \changes{v3.12}{2013/03/05}{Signalisierung mit \cs{FamilyKeyStateProcessed}} % \begin{macrocode} %<*package&option> \KOMA@ifkey{floatrow}{@scrhack@floatrow}% @@ -697,6 +750,7 @@ loading package \Package{scrhack}, but before loading package \AfterPackage*{floatrow}{% \KOMA@key[.scrhack.sty]{floatrow}{% \PackageWarning{scrhack}{option `floatrow' ignored}% + \FamilyKeyStateProcessed }% \if@scrhack@floatrow\scr@hack@load\@pkgextension{floatrow}\fi } @@ -821,6 +875,7 @@ loading package \Package{scrhack}, but before loading package % nach. % % \begin{option}{listings} +% \changes{v3.12}{2013/03/05}{Signalisierung mit \cs{FamilyKeyStateProcessed}} % \begin{macrocode} %<*package&option> \KOMA@ifkey{listings}{@scrhack@listings}% @@ -830,6 +885,7 @@ loading package \Package{scrhack}, but before loading package \AfterPackage*{listings}{% \KOMA@key[.scrhack.sty]{listings}{% \PackageWarning{scrhack}{option `listings' ignored}% + \FamilyKeyStateProcessed }% \if@scrhack@listings\scr@hack@load\@pkgextension{listings}\fi } diff --git a/Master/texmf-dist/source/latex/koma-script/scrjura.dtx b/Master/texmf-dist/source/latex/koma-script/scrjura.dtx index c38fe2c1209..7661daa108c 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrjura.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrjura.dtx @@ -1,8 +1,8 @@ -% \CheckSum{1397} +% \CheckSum{1494} % \iffalse meta-comment % ====================================================================== % scrjura.dtx -% Copyright (c) Markus Kohm, 2007-2012 +% Copyright (c) Markus Kohm, 2007-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -22,7 +22,7 @@ % `scrlogo.dtx'. % ---------------------------------------------------------------------- % scrjura.dtx -% Copyright (c) Markus Kohm, 2007-2012 +% Copyright (c) Markus Kohm, 2007-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -60,7 +60,7 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: scrjura.dtx +%%% From File: $Id: scrjura.dtx 1562 2013-12-19 07:51:16Z mjk $ %<*dtx> \def\LaTeXformat{LaTeX2e} \ifx\fmtname\LaTeXformat\def\MainBodyWork{% @@ -70,7 +70,7 @@ %\ProvidesFile{scrjura.drv} %\ProvidesPackage{scrjura} %<*dtx|package|driver> - [2011/09/30 v0.6 KOMA-Script for jurists + [2013/11/04 v0.7 KOMA-Script for jurists % % (driver)% % (package)% @@ -112,7 +112,7 @@ %<*dtx|ins> \input docstrip.tex -\let\ifbeta=\iffalse +\let\ifbeta=\iffalse % with = will be replaced by release process \ifToplevel{\ifx\generate\undefined \errhelp{Install a new version of docstrip.} @@ -150,7 +150,7 @@ \preamble -Copyright (c) 2007-2012 +Copyright (c) 2007-2013 Markus Kohm and any individual authors listed elsewhere in this file. This file was generated from file(s) of the KOMA-Script bundle. @@ -484,6 +484,18 @@ standard classes created by The LaTeX3 Project 1994-1996. % ein |\parnumberfalse| und danach ein |\parnumbertrue|. Vergisst man dies, % wird der Abschnitt zum ersten als Paragraphenabsatz und dann als Abschnitt % nummeriert. +% +% \DescribeMacro{\ellipsispar} +% \DescribeMacro{\parellipsis} +% Manchmal wird insbesondere für Kommentare gewünscht, dass man Absätze in +% Paragraphen auch auslassen kann, diese Absätze aber dennoch mitgezählt und +% auch bei der automatischen Absatznummerierung mitberücksichtigt werden. Die +% ausgelassenen Absätze sollen dabei in der Regel durch Pünktchen markiert +% werden. Genau dies erledigt |\ellisispar|. Als optionales Argument kann +% dabei die Anzahl der Absätze angegeben werden, die ausgelassen +% wurde. Voreingestellt ist ein Absatz. Für das Auslassungszeichen wird +% |\parellipsis| verwendet. Dies ist mit |\textellipsis| vordefiniert, falls +% eine solche Anweisung existiert. Anderenfalls wird |\dots| verwendet. % % % \subsection{Verweise} @@ -629,7 +641,8 @@ standard classes created by The LaTeX3 Project 1994-1996. % Paragraphentitel auf dem Bildschirm einblenden zu können. Wer kile als % Editor verwendet, der kann sich -- Open Source sei Dank! -- selbst % helfen. Bei Version 2.0.0 von kile genügt es, in der Datei -% |kiledocumentinfo.cpp| an geeigneter Stelle zwei Zeilen (jeweils ohne Zeilenumbruch) einzufügen: +% |kiledocumentinfo.cpp| an geeigneter Stelle zwei Zeilen (jeweils ohne +% Zeilenumbruch) einzufügen: % \begin{verbatim} % m_dictStructLevel["\\Paragraph"]= % KileStructData(5, KileStruct::Sect, "Paragraph"); @@ -646,9 +659,10 @@ standard classes created by The LaTeX3 Project 1994-1996. % Dokumentenstruktur an. Vielleicht findet ein Anwender ja heraus, wie dies % mit \TeX nicCenter zu bewerkstelligen ist. % -% Bis jemand für die Verwendung von \textsf{scrjura} eine lyx-Klasse schreibt, wozu wir ausdrücklich ermutigen wollen, -% kann man sich bei der Nutzung von lyx damit behelfen, im sog. »\LaTeX"=Vorspann« -% beispielsweise die Definition des Unterunterabschnitts anzupassen: +% Bis jemand für die Verwendung von \textsf{scrjura} eine lyx-Klasse schreibt, +% wozu wir ausdrücklich ermutigen wollen, kann man sich bei der Nutzung von +% lyx damit behelfen, im sog. »\LaTeX"=Vorspann« beispielsweise die Definition +% des Unterunterabschnitts anzupassen: % % |\renewcommand{\subsubsection}[1]{\Paragraph{title= #1}}| % @@ -688,8 +702,9 @@ standard classes created by The LaTeX3 Project 1994-1996. % \DescribeMacro{\parformat}% % \DescribeMacro{\parciteformat}% % Zähler für die Absatznummern und dessen Ausgabe und Formatierung und -% Formatierung der Referenz. ACHTUNG: |\thepar| muss bei unverändertem -% |\parciteformat| eine arabische Zahl sein! +% Formatierung der Referenz. ACHTUNG: Wenn |\thepar| nicht nur eine arabische +% Zahl ist, werden Absätze bei automatischer Nummerierung unabhängig davon +% nummeriert, ob es mehr als einen Absatz im Paragraphen gibt. % % \DescribeMacro{\refParagraph}% % So etwas wie |\ref| nur für den Paragraphen. @@ -741,7 +756,13 @@ standard classes created by The LaTeX3 Project 1994-1996. % Es wird das Paket \textsf{scrkbase} benötigt, weil alles weitere darauf % aufbaut. % \begin{macrocode} -\RequirePackage{scrkbase} +\RequirePackage{scrkbase}[2013/03/26] +% \end{macrocode} +% +% Außerdem wird \textsf{tocbasic} benötigt, weil einige wenige Befehle davon +% verwendet werden. +% \begin{macrocode} +\RequirePackage{tocbasic} % \end{macrocode} % % \begin{option}{contract} @@ -757,42 +778,50 @@ standard classes created by The LaTeX3 Project 1994-1996. % \end{option} % % \begin{option}{juratotoc} -% Mit dieser Option wird der Schalter |\if@juratotoc| auf |\iftrue| gesetzt. +% Mit dieser Option wird der Zähler \Counter{juratoclevel} auf einen +% gewünschten Wert oder 2 oder 10000 gesetzt. +% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit +% \cs{FamilyKeyState}} % \begin{macro}{\if@juratotoc} % \changes{v0.6}{2011/09/29}{Schalter durch Zähler überflüssig} % \begin{Counter}{juratoclevel} % \changes{v0.6}{2011/09/29}{Zählerdefinition verschoben} % Mit dem Zähler wiederum wird erreicht, dass Paragraphen in das % Inhaltsverzeichnis aufgenommen werden. +% \begin{macro}{\toclevel@cpar} +% \changes{v0.7}{2013/06/09}{neue für \textsf{hyperref}} % \begin{macrocode} \newcounter{juratoclevel}\setcounter{juratoclevel}{\@M} \KOMA@key{juratotoc}[true]{% \begingroup - \newif\if@setjuratoclevel\@setjuratocleveltrue - \let\juratoclevel@@FamilyUnknownKeyValue\FamilyUnknownKeyValue - \renewcommand*{\FamilyUnknownKeyValue}[4]{% - \setcounter{juratoclevel}{#1}% - \@setjuratoclevelfalse - }% \KOMA@set@ifkey{juratoclevel}{@tempswa}{#1}% - \if@setjuratoclevel + \ifx\FamilyKeyState\FamilyKeyStateProcessed \if@tempswa \setcounter{juratoclevel}{2}% \else \setcounter{juratoclevel}{\@M}% \fi + \else + \setcounter{juratoclevel}{#1}% + \FamilyKeyStateProcessed \fi \endgroup } +\providecommand*{\toclevel@cpar}{\arabic{juratoclevel}} % \end{macrocode} +% \end{macro} % \end{Counter} % \end{macro} % \end{option} % % \begin{option}{juratocnumberwidth} -% \changes{v0.6}{2011/09/29}{neu} +% \changes{v0.6}{2011/09/29}{neu}%^^A +% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit +% \cs{FamilyKeyStateProcessed}}%^^A % \begin{option}{juratocindent} -% \changes{v0.6}{2011/09/29}{neu} +% \changes{v0.6}{2011/09/29}{neu}%^^A +% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit +% \cs{FamilyKeyStateProcessed}}%^^A % \begin{macro}{\cpar@numberwidth} % \changes{v0.6}{2011/09/29}{neu (intern)} % \begin{macro}{\cpar@indent} @@ -805,10 +834,12 @@ standard classes created by The LaTeX3 Project 1994-1996. \KOMA@key{juratocnumberwidth}{% \begingroup\setlength{\@tempdima}{#1}\endgroup \renewcommand*{\cpar@numberwidth}{#1}% + \FamilyKeyStateProcessed } \KOMA@key{juratocindent}{% \begingroup\setlength{\@tempdima}{#1}\endgroup \renewcommand*{\cpar@indent}{#1}% + \FamilyKeyStateProcessed } % \end{macrocode} % \end{macro} @@ -830,15 +861,17 @@ standard classes created by The LaTeX3 Project 1994-1996. % \end{option} % % \begin{option}{parnumber} -% \changes{v0.6}{2011/09/29}{neue Option} +% \changes{v0.6}{2011/09/29}{neue Option}%^^A +% \changes{v0.6a}{2012/10/15}{Meldung bei falschen Werten korrigiert}%^^A +% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit +% \cs{FamilyKeyStateProcessed}}%^^A % Die (automatische) Absatznummerierung lässt sich nun auch per Option ein- % und ausschalten. % \begin{macrocode} \newif\ifparnumber \KOMA@key{parnumber}[true]{% - \ifstr{#1}{auto}{\AutoPar}{% - \ifstr{#1}{manual}{\ManualPar}{% - \def\FamilyElseValue{, `auto', `semi'}% + \ifstr{#1}{auto}{\AutoPar\FamilyKeyStateProcessed}{% + \ifstr{#1}{manual}{\ManualPar\FamilyKeyStateProcessed}{% \KOMA@set@ifkey{parnumber}{parnumber}{#1}% }% }% @@ -847,6 +880,8 @@ standard classes created by The LaTeX3 Project 1994-1996. % \end{option} % % \begin{option}{paragraphmark} +% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit +% \cs{FamilyKeyStateProcessed}}%^^A % \begin{option}{markright} % \begin{option}{markboth} % \begin{macro}{\Paragraphmark} @@ -866,31 +901,35 @@ standard classes created by The LaTeX3 Project 1994-1996. {right}{3},% {both}{4}% }{#1}% - \ifcase\number\@tempa - \endgroup - \let\Paragraphmark\@gobble - \or - \endgroup - \renewcommand*{\Paragraphmark}[1]{% - \markright{\csname MakeMarkcase\endcsname{##1}}}% - \or - \endgroup - \renewcommand*{\Paragraphmark}[1]{% - \markboth{\csname MakeMarkcase\endcsname{##1}}% - {\csname MakeMarkcase\endcsname{##1}}}% - \or - \endgroup - \renewcommand*{\Paragraphmark}[1]{% - \ifx - \@mkboth\@gobbletwo - \else - \markright{\csname MakeMarkcase\endcsname{##1}}% - \fi}% - \or - \endgroup - \renewcommand*{\Paragraphmark}[1]{% - \@mkboth{\csname MakeMarkcase\endcsname{##1}}% - {\csname MakeMarkcase\endcsname{##1}}}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase\number\@tempa + \endgroup + \let\Paragraphmark\@gobble + \or + \endgroup + \renewcommand*{\Paragraphmark}[1]{% + \markright{\csname MakeMarkcase\endcsname{##1}}}% + \or + \endgroup + \renewcommand*{\Paragraphmark}[1]{% + \markboth{\csname MakeMarkcase\endcsname{##1}}% + {\csname MakeMarkcase\endcsname{##1}}}% + \or + \endgroup + \renewcommand*{\Paragraphmark}[1]{% + \ifx + \@mkboth\@gobbletwo + \else + \markright{\csname MakeMarkcase\endcsname{##1}}% + \fi}% + \or + \endgroup + \renewcommand*{\Paragraphmark}[1]{% + \@mkboth{\csname MakeMarkcase\endcsname{##1}}% + {\csname MakeMarkcase\endcsname{##1}}}% + \else + \endgroup + \fi \else \endgroup \fi @@ -905,7 +944,9 @@ standard classes created by The LaTeX3 Project 1994-1996. % % \begin{option}{ref} % \changes{v0.5d}{2010/06/07}{neue Einstellungen \texttt{nopar}, -% \texttt{nosentence}, \texttt{OnlyParagraph}} +% \texttt{nosentence}, \texttt{OnlyParagraph}}%^^A +% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit +% \cs{FamilyKeyStateProcessed}}%^^A % \begin{option}{parcitename} % \begin{option}{sentencecitename} % Die Form, in der Absätze und Sätze referenziert werden. Es gibt eine lange, @@ -941,39 +982,41 @@ standard classes created by The LaTeX3 Project 1994-1996. {paragraphonly}{44},{onlyparagraph}{44},% {ParagraphOnly}{44},{OnlyParagraph}{44}% }{#1}% - \@tempcnta=\@tempa\relax - \@tempcntb=\z@ - \@whilenum \@tempcnta>9 \do{% - \advance\@tempcnta -10\relax - \advance\@tempcntb \@ne\relax - }% - \ifcase \@tempcnta - \or - \aftergroup\def\aftergroup\parcite@format - \aftergroup{\aftergroup0\aftergroup}% - \or - \aftergroup\def\aftergroup\parcite@format - \aftergroup{\aftergroup1\aftergroup}% - \or - \aftergroup\def\aftergroup\parcite@format - \aftergroup{\aftergroup2\aftergroup}% - \or - \aftergroup\def\aftergroup\parcite@format - \aftergroup{\aftergroup-\aftergroup1\aftergroup}% - \fi - \ifcase \@tempcntb - \or - \aftergroup\def\aftergroup\sentencecite@format - \aftergroup{\aftergroup0\aftergroup}% - \or - \aftergroup\def\aftergroup\sentencecite@format - \aftergroup{\aftergroup1\aftergroup}% - \or - \aftergroup\def\aftergroup\sentencecite@format - \aftergroup{\aftergroup2\aftergroup}% - \or - \aftergroup\def\aftergroup\sentencecite@format - \aftergroup{\aftergroup-\aftergroup1\aftergroup}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \@tempcnta=\@tempa\relax + \@tempcntb=\z@ + \@whilenum \@tempcnta>9 \do{% + \advance\@tempcnta -10\relax + \advance\@tempcntb \@ne\relax + }% + \ifcase \@tempcnta + \or + \aftergroup\def\aftergroup\parcite@format + \aftergroup{\aftergroup0\aftergroup}% + \or + \aftergroup\def\aftergroup\parcite@format + \aftergroup{\aftergroup1\aftergroup}% + \or + \aftergroup\def\aftergroup\parcite@format + \aftergroup{\aftergroup2\aftergroup}% + \or + \aftergroup\def\aftergroup\parcite@format + \aftergroup{\aftergroup-\aftergroup1\aftergroup}% + \fi + \ifcase \@tempcntb + \or + \aftergroup\def\aftergroup\sentencecite@format + \aftergroup{\aftergroup0\aftergroup}% + \or + \aftergroup\def\aftergroup\sentencecite@format + \aftergroup{\aftergroup1\aftergroup}% + \or + \aftergroup\def\aftergroup\sentencecite@format + \aftergroup{\aftergroup2\aftergroup}% + \or + \aftergroup\def\aftergroup\sentencecite@format + \aftergroup{\aftergroup-\aftergroup1\aftergroup}% + \fi \fi \endgroup } @@ -998,11 +1041,47 @@ standard classes created by The LaTeX3 Project 1994-1996. % \end{macrocode} % \end{macro} % +% \begin{macro}{\ellipsispar} +% \changes{v0.7}{2013/05/02}{neu} +% \begin{macro}{\parellipsis} +% \changes{v0.7}{2013/05/02}{neu} +% Paragraphen auslassen aber mit zählen. +% \begin{macrocode} +\newcommand*{\ellipsispar}[1][1]{% + \begingroup + \KOMAoptions{parnumber=manual}\parellipsis\par + \addtocounter{par}{#1}% + \protected@write\@auxout{}{% + \string\newmaxpar{\jura@env@type}% + {\thecontractAbsoluteParagraph}% + {\thepar}% + }% + \endgroup + \addtocounter{par}{-1}\refstepcounter{par}% + \ignorespaces +} +\newcommand*{\parellipsis}{% + \scr@ifundefinedorrelax{textellipsis}{\dots}{\textellipsis}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{environment}{contract} % \begin{macro}{\contract} % \changes{v0.5d}{2010/04/28}{fehlende Fehlermeldung ergänzt} % \changes{v0.5d}{2010/04/28}{Umgebung definiert sich nicht mehr selbst um} % \changes{v0.5d}{2010/04/28}{\cs{jura@env@type} wird gesetzt} +% \begin{Counter}{contractParagraph} +% \begin{macro}{\thecontractParagraph} +% \begin{macro}{\contract@Paragraphformat} +% \begin{macro}{\Paragraphformat} +% \changes{v0.6b}{2013/04/16}{\cs{paragraphformat} umdefiniert} +% \begin{Counter}{contractSubParagraph} +% \begin{macro}{\thecontractSubParagraph} +% \begin{Counter}{contractAbsoluteParagraph} +% \changes{v0.7}{2013/04/18}{neuer (interner) Zähler über alle Paragraphen, +% um ggf. die Zählung neu beginnen zu können} % Die Umgebung \texttt{contract} wird als Anweisung \cs{contract} % definiert. Nichts desto trotz handelt es sich dabei um eine Umgebung und % sollte sie immer als Umgebung verwendet werden! @@ -1037,13 +1116,21 @@ standard classes created by The LaTeX3 Project 1994-1996. \newcounter{contractParagraph} \renewcommand*{\thecontractParagraph}{% {\contract@Paragraphformat{\arabic{contractParagraph}}}} -\DeclareRobustCommand*{\contract@Paragraphformat}[1]{\paragraphformat{#1}} -\newcommand*{\paragraphformat}[1]{\S~#1} +\DeclareRobustCommand*{\contract@Paragraphformat}[1]{\Paragraphformat{#1}} +\newcommand*{\Paragraphformat}[1]{\S~#1} \newcounter{contractSubParagraph} \@addtoreset{SubParagraph}{Paragraph} \renewcommand*{\thecontractSubParagraph}{% {\theParagraph\alph{contractSubParagraph}}} +\newcounter{contractAbsoluteParagraph} % \end{macrocode} +% \end{Counter} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Counter} % \end{macro} % \end{environment} % @@ -1165,8 +1252,11 @@ standard classes created by The LaTeX3 Project 1994-1996. % natürlich innerhalb der Überschrift keine Nummer gesetzt werden % soll. Trotzdem werden generell die Absatznummern eingeschaltet. Dann werden % die Optionen initialisiert und ausgeführt. +% \changes{v0.7}{2013/04/18}{Zähler \texttt{contractAbsoluteParagraph} wird +% erhöht} % \begin{macrocode} \newcommand*{\contract@paragraph}[1]{% + \stepcounter{contractAbsoluteParagraph}% \ManualPar\parnumbertrue \let\contract@title\relax \let\contract@entry\relax @@ -1177,8 +1267,10 @@ standard classes created by The LaTeX3 Project 1994-1996. % \end{macrocode} % Wenn es kein Blindparagraph ist, werden Vorbereitung für nach der % Überschrift getroffen und der vertikale Abstand eingefügt. +% \changes{v0.6a}{2012/10/08}{fehlendes \cs{par} ergänzt} % \begin{macrocode} \ifcontract@dummy\else + \par \@afterindentfalse \addvspace{\contract@preskip}% \fi @@ -1186,6 +1278,8 @@ standard classes created by The LaTeX3 Project 1994-1996. % Wenn die Nummer nicht manuell gesetzt wurde, wird die nächste Nummer % verwendet. Im anderen Fall muss die Nummer gesetzt und auch dafür gesorgt % werden, dass sowohl ein Label als auch hyperref diese Nummer verwenden. +% \changes{v0.6b}{2013/04/16}{Verwendung von \cs{contract@Paragraphformat} +% auch bei manueller Nummerierung der Paragraphen.} % \begin{macrocode} \ifx\contract@number\relax \let\p@Paragraph\@empty @@ -1196,7 +1290,7 @@ standard classes created by The LaTeX3 Project 1994-1996. \let\@elt\@stpelt \cl@Paragraph \endgroup - \protected@edef\theParagraph{\S~\contract@number}% + \protected@edef\theParagraph{\contract@Paragraphformat{\contract@number}}% \protected@edef\@currentlabel{\theParagraph}% \fi \stepcounter{@AbsParagraph}% @@ -1217,19 +1311,18 @@ standard classes created by The LaTeX3 Project 1994-1996. % \end{macrocode} % Außer für Blindparagraphen wird dann die Überschrift gesetzt, die % Verzeichniseinträge vorgenommen und der Kolumnentitel angepasst. +% \changes{v0.7}{2013/04/28}{Abstand nach der Nummer als Bestandteil der +% Nummer setzen} % \begin{macrocode} \ifcontract@dummy\else \begingroup \if@juratitlepagebreak\else\interlinepenalty\@M\fi - \contract@paragraph@font \theParagraph - \ifx\contract@title\relax\else\enskip\contract@title\fi + \contract@paragraph@font{\theParagraph + \ifx\contract@title\relax\else\enskip\fi}% + \contract@title \ifx\contract@entry\relax\else - \addcontentsline{toc}{cpar}{% - \protect\numberline{\theParagraph}\contract@entry - }% - \addcontentsline{cpa}{cpar}{% - \protect\numberline{\theParagraph}\contract@entry - }% + \addxcontentsline{toc}{cpar}[\theParagraph]\contract@entry + \addxcontentsline{cpa}{cpar}[\theParagraph]\contract@entry \fi \ifx\contract@head\relax\else \expandafter\Paragraphmark\expandafter{% @@ -1247,11 +1340,17 @@ standard classes created by The LaTeX3 Project 1994-1996. % \end{macrocode} % \end{macro} % -% \begin{macro}{contract@subparagraph} +% \begin{macro}{\contract@subparagraph} +% \changes{v0.6a}{2012/10/08}{fehlendes \cs{par} ergänzt}%^^A +% \changes{v0.7}{2013/04/18}{Zähler \texttt{contractAbsoluteParagraph} wird +% erhöht} +% \changes{v0.7}{2013/04/28}{Abstand nach der Nummer als Bestandteil der +% Nummer setzen} % Das entspricht bis auf wenige Kleinigkeiten, die Unterparagraphen betreffen, % |\contract@paragraph| % \begin{macrocode} \newcommand*{\contract@subparagraph}[1]{% + \stepcounter{contractAbsoluteParagraph}% \ManualPar\parnumbertrue \let\contract@title\relax \let\contract@entry\relax @@ -1260,6 +1359,7 @@ standard classes created by The LaTeX3 Project 1994-1996. \contract@dummyfalse \ifx\relax#1\relax\else\setkeys{contract}{#1}\fi \ifcontract@dummy\else + \par \@afterindentfalse \vskip\contract@preskip \fi @@ -1289,15 +1389,12 @@ standard classes created by The LaTeX3 Project 1994-1996. \ifcontract@dummy\else \begingroup \if@juratitlepagebreak\else\interlinepenalty\@M\fi - \contract@paragraph@font \theSubParagraph - \ifx\contract@title\relax\else\enskip\contract@title\fi + \contract@paragraph@font{\theSubParagraph + \ifx\contract@title\relax\else\enskip\fi}% + \contract@title \ifx\contract@entry\relax\else - \addcontentsline{toc}{cpar}{% - \protect\numberline{\theSubParagraph}\contract@entry - }% - \addcontentsline{cpa}{cpar}{% - \protect\numberline{\theSubParagraph}\contract@entry - }% + \addxcontentsline{toc}{cpar}[\theSubParagraph]\contract@entry + \addxcontentsline{cpa}{cpar}[\theSubParagraph]\contract@entry \fi \ifx\contract@head\relax\else \expandafter\Paragraphmark\expandafter{% @@ -1433,6 +1530,8 @@ standard classes created by The LaTeX3 Project 1994-1996. % \begin{Counter}{par} % \begin{macro}{\thepar} % \begin{macro}{\theHpar} +% \begin{macro}{\parformat} +% \changes{v0.7}{2013/06/07}{neues Font-Element \texttt{parnumber}} % \begin{macro}{\p@par} % \changes{v0.5d}{2010/04/28}{\cs{jura@usetype} mit Argument % \cs{jura@env@type} eingefügt} @@ -1448,6 +1547,7 @@ standard classes created by The LaTeX3 Project 1994-1996. \renewcommand*{\thepar}{\arabic{par}} \newcommand*{\theHpar}{\theH@AbsParagraph-\Roman{par}} \newcommand*{\parformat}{(\thepar)} +\newkomafont{parnumber}{} \renewcommand*\p@par{{\jura@usetype{\jura@env@type}\theSubParagraph\jura@separator{\nobreakspace}}} \@addtoreset{par}{Paragraph} \@addtoreset{par}{SubParagraph} @@ -1455,6 +1555,7 @@ standard classes created by The LaTeX3 Project 1994-1996. % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % \end{Counter} % \end{macro} % \changes{0.5c}{2010/04/26}{erstes Argument von \cs{newmaxpar} und zweites @@ -1462,27 +1563,79 @@ standard classes created by The LaTeX3 Project 1994-1996. % \texttt{contractpars}} % \changes{0.5c}{2010/04/26}{\cs{contract@Paragraphformat} expandiert beim % Schreiben zu seinem Argument} +% \changes{v0.7}{2013/04/18}{Zähler \texttt{contractAbsoluteParagraph} wird +% verwendet} +% \changes{v0.7}{2013/05/23}{Satznummer bei manuell nummerierten Absätzen +% auf 0 statt 1 initialisiert, weil \cs{Sentence} die Nummer als erstes +% hochzählt.} +% \changes{v0.7}{2013/05/23}{Absatznummer von \cs{thisparnumber} beachtet} +% \changes{v0.7}{2013/06/06}{Im Fall von nicht rein nummerischen +% Absatznummern die Absätze auf jeden Fall nummerieren} % \begin{macrocode} \newcommand*{\contract@everypar}{% \ifparnumber - \refstepcounter{par}% - \refstepcounter{sentence}% + \ifx\scrjura@special@par\relax + \ifx\scrjura@special@reset@par\relax\else + \global\let\thepar\scrjura@special@reset@par + \global\let\scrjura@special@reset@par\relax + \fi + \refstepcounter{par}% + \refstepcounter{sentence}% + \else + \ifx\scrjura@special@reset@par\relax + \global\let\scrjura@special@reset@par\thepar + \fi + \global\let\thepar\scrjura@special@par + \global\let\scrjura@special@par\relax + \setcounter{sentence}{0}\refstepcounter{sentence}% + \fi \begingroup \protected@write\@auxout{\let\contract@Paragraphformat\@firstofone}{% - \string\newmaxpar{contract}{\theSubParagraph}{\arabic{par}}}% - \getmaxpar\@tempa{contract}{\theSubParagraph}% + \string\newmaxpar{contract}% + {\thecontractAbsoluteParagraph}% + {\thepar}}% + \getmaxpar\@tempa{contract}{\thecontractAbsoluteParagraph}% \typeout{Stored max is \@tempa}% - \ifnum \@tempa>\@ne - \parformat\nobreakspace + \def\reserved@a##1\@nnil{\def\@tempa{##1}}% + \afterassignment\reserved@a\@tempcnta=0\@tempa\relax\@nnil + \ifnum \@tempcnta>\@ne + {\usekomafont{parnumber}{\parformat\nobreakspace}}% + \else + \def\reserved@a{\relax}% + \ifx\@tempa\reserved@a + \else + {\usekomafont{parnumber}{\parformat\nobreakspace}}% + \fi \fi \endgroup \else - \setcounter{sentence}{0}\refstepcounter{sentence}% + \setcounter{sentence}{-1}\refstepcounter{sentence}% \fi } % \end{macrocode} % \end{macro} % +% \begin{macro}{\thisparnumber} +% \changes{v0.7}{2013/05/23}{neue Anweisung} +% \begin{macro}{\scrjura@special@par} +% \changes{v0.7}{2013/05/23}{neue Anweisung (intern)} +% \begin{macro}{\scrjura@special@reset@par} +% \changes{v0.7}{2013/05/23}{neue Anweisung (intern)} +% Mit dieser Anweisung kann man eine Absatznummer manuell vergeben. Allerdings +% muss die Nummer voll expandierbar sein! +% \begin{macrocode} +\newcommand*{\thisparnumber}[1]{% + \def\scrjura@special@par{#1}% +} +\newcommand*{\scrjura@special@par}{} +\let\scrjura@special@par\relax +\newcommand*{\scrjura@special@reset@par}{} +\let\scrjura@special@reset@par\relax +% \end{macrocode} +% \end{macro}^^A \scrjura@special@reset@par +% \end{macro}^^A \scrjura@special@par +% \end{macro}^^A\thisparnumber +% % % \begin{macro}{\refL} % \begin{macro}{\ref@L} @@ -1591,7 +1744,7 @@ standard classes created by The LaTeX3 Project 1994-1996. } \newcommand*{\ref@ParagraphN}[2]{% \begingroup - \let\paragraphformat\relax + \let\Paragraphformat\relax \ref@Paragraph{#1}{#2}% \endgroup } @@ -1886,41 +2039,39 @@ standard classes created by The LaTeX3 Project 1994-1996. % \begin{macro}{\sentencename} % \begin{macro}{\sentenceshortname} % \begin{macro}{\scrjura@lang@error} -% Der Name eines Absatzes und eines Satzes. +% \changes{v0.7}{2013/09/19}{Verwendung von \cs{PackageError} an Stelle von +% \cs{PackageErrorNoLine}} +% Der Name eines Absatzes und eines Satzes. Die englischen Namen wurden von +% »m.eik« beigesteuert. % \begin{macrocode} \newcommand*{\parname}{Paragraph} \AtBeginDocument{% - \providecaptionname{german}\parname{Absatz}% - \providecaptionname{german}\parshortname{Abs.}% - \providecaptionname{german}\sentencename{Satz}% - \providecaptionname{german}\sentenceshortname{S.}% - \providecaptionname{ngerman}\parname{Absatz}% - \providecaptionname{ngerman}\parshortname{Abs.}% - \providecaptionname{ngerman}\sentencename{Satz}% - \providecaptionname{ngerman}\sentenceshortname{S.}% - \providecaptionname{austrian}\parname{Absatz}% - \providecaptionname{austrian}\parshortname{Abs.}% - \providecaptionname{austrian}\sentencename{Satz}% - \providecaptionname{austrian}\sentenceshortname{S.}% - \providecaptionname{naustrian}\parname{Absatz}% - \providecaptionname{naustrian}\parshortname{Abs.}% - \providecaptionname{naustrian}\sentencename{Satz}% - \providecaptionname{naustrian}\sentenceshortname{S.}% + \providecaptionname{german,ngerman,austrian,naustrian}\parname{Absatz}% + \providecaptionname{german,ngerman,austrian,naustrian}\parshortname{Abs.}% + \providecaptionname{german,ngerman,austrian,naustrian}\sentencename{Satz}% + \providecaptionname{german,ngerman,austrian,naustrian}\sentenceshortname{S.}% + \providecaptionname{english,american,british,canadian,USenglish,UKenglish}\parname{paragraph}% + \providecaptionname{english,american,british,canadian,USenglish,UKenglish}\parshortname{par.}% + \providecaptionname{english,american,british,canadian,USenglish,UKenglish}\sentencename{sentence}% + \providecaptionname{english,american,british,canadian,USenglish,UKenglish}\sentenceshortname{sent.}% } \providecommand*{\parname}{\scrjura@lang@error{\parname}} \providecommand*{\parshortname}{\scrjura@lang@error{\parshortname}} \providecommand*{\sentencename}{\scrjura@lang@error{\sentencename}} \providecommand*{\sentenceshortname}{\scrjura@lang@error{\sentenceshortname}} \newcommand*{\scrjura@lang@error}[1]{% - \PackageErrorNoLine{scrjura}{% + \PackageError{scrjura}{% current language not supported% }{% - Currently scrjura only supports languages `german', - `ngerman', `austrian', and `naustrian'.\MessageBreak - It seems, that you are using another language (maybe - \languagename).\MessageBreak - Because of this you have to define \string#1\space by - yourself!\MessageBreak + Currently scrjura only supports languages `german', `ngerman', + `austrian',\MessageBreak + `naustrian', `english', `american', `british', `canadian', `USenglish', + and\MessageBreak + `UKenglish'.\MessageBreak + It seems, that you are using another language (maybe `\languagename') or + that\MessageBreak + your language selection isn't compatible to package `babel'.\MessageBreak + Because of this you have to define `\string#1' by yourself!\MessageBreak It would be nice if you'll send your definitions to the author.% }% \textbf{??}% @@ -1933,6 +2084,8 @@ standard classes created by The LaTeX3 Project 1994-1996. % \end{macro} % % \begin{macro}{\newmaxpar} +% \changes{v0.6b}{2013/04/16}{\cs{\#1@Paragraphformat} expandiert zu seinem +% Argument} % \begin{macro}{\getmaxpar} % \changes{v0.6}{2011/09/30}{Argument 3 muss mit \cs{protected@edef} % expandiert werden} @@ -1944,6 +2097,7 @@ standard classes created by The LaTeX3 Project 1994-1996. % \begin{macrocode} \newcommand*{\newmaxpar}[3]{% \begingroup + \expandafter\let\csname #1@Paragraphformat\endcsname\@firstofone \protected@edef\@tempa{#2}\@onelevel@sanitize\@tempa \expandafter\xdef\csname max@#1@\@tempa\endcsname{#3}% \endgroup diff --git a/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx b/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx deleted file mode 100644 index 6717f00fc59..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx +++ /dev/null @@ -1,1928 +0,0 @@ -% \CheckSum{1419} -% \iffalse meta-comment -% ====================================================================== -% scrkbase.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkbase.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkbase.dtx -%<*driver> -% \fi -\ProvidesFile{scrkbase.dtx}[2012/06/11 v3.11a KOMA-Script (basics)] -% \iffalse -% -%\ProvidesPackage{% -% scrbase% -% scrkbase% -%}[% -% \KOMAScriptVersion\space package -% (KOMA-Script-independent basics and keyval usage)] -% (KOMA-Script-dependent basics and keyval usage)] -%<*driver> -\documentclass{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkbase.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei - \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v1.0}{2002/07/06}{Beginn der ersten Version} -% -% \section{Grundlegenden \KOMAScript-Erweiterungen} -% -% Neue Versionen von \KOMAScript{} machen zunehmend Gebrauch vom -% \textsf{keyval}-Paket. Das \textsf{keyval}-Paket ist Bestandteil des -% \textsf{graphics}-Pakets und muss als solches auf allen -% \TeX-Systemen mit \LaTeX{} enthalten sein. Es genügt jedoch in -% einigen Punkten nicht den Anforderungen von \KOMAScript{}. Deshalb -% werden hier Erweiterungen vorgenommen, die von \KOMAScript-Klassen -% und \KOMAScript-Paketen verwendet werden können. -% -% Darüber hinaus werden immer mehr Teile von \KOMAScript{} von mehr als einem -% Paket oder von Paketen und Klassen verwendet. Diese grundlegenden Dinge -% wurden daher in zwei Pakete, \textsf{scrbase} (für Dinge, die auch von -% anderen Klassen und Paketen genutzt werden können) und \textsf{scrkbase} -% (für Dinge, die \KOMAScript vorbehalten bleiben), ausgegliedert. Dadurch -% werden die Pakete und Klassen selbst kleiner und die können trotzdem -% unabhängig voneinander verwendet werden. Selbstverständlich kann man dieses -% Paket auch ohne den Rest von \KOMAScript{} zum Einsatz bringen. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*load> -% \fi -% -% \subsection{Laden des Pakets} -% Wer das Paket lädt, tut das allerdings in der Regel sogar bereits -% vor der Definition der Optionen mit: -% \begin{macrocode} -\RequirePackage{scrkbase}[\KOMAScriptVersion] -% \end{macrocode} -% -% \iffalse -% -%<*option> -% \fi -% -% \subsection{\eTeX-Test} -% \changes{v3.02c}{2009/02/19}{Fehlermeldung, wenn nicht \eTeX{} verwendet -% wird} -% -% \begin{macrocode} -%<*base> -\begingroup - \def\@tempb{}% - \def\@tempa{% - \PackageError{scrbase}{seems you are not running e-TeX\@tempb}{% - Since 2004 the LaTeX team recommends to use e-TeX.\MessageBreak - KOMA-Script since version 2.95 uses several e-TeX features.\MessageBreak - At actual systems `latex' should already use e-TeX.\MessageBreak - At deprecated systems it may be called `elatex'.\MessageBreak - Use either unsupported KOMA-Script up to version 2.9u or\MessageBreak - ask you administrator for LaTeX using e-TeX\@tempb.\MessageBreak - Not using e-TeX\@tempb\space is a fatal error!\MessageBreak - Processing cannot be continued!}% - \endgroup - \batchmode \errmessage{}\csname @@end\endcsname\end\relax - \csname endinput\endcsname - }% - \expandafter\ifx\csname eTeXversion\endcsname\relax\else - \ifnum\eTeXversion <2 - \def\@tempb{ V 2}% - \else - \let\@tempa\endgroup - \fi - \fi -\@tempa -% -% \end{macrocode} -% -% \subsection{Der abhängige Teil lädt den unabhängigen Teil} -% -% \begin{macrocode} -%\RequirePackage{scrbase}[\KOMAScriptVersion] -% \end{macrocode} -% -% \subsection{Laden von \textsf{keyval}} -% -% Hier wird nicht nur das Paket geladen, was ruckzuck mit: -% \begin{macrocode} -%\RequirePackage{keyval} -% \end{macrocode} -% erledigt ist. -% -% -% \subsection{Test von Anweisungen} -% -% \begin{macro}{\scr@ifundefinedorrelax} -% \changes{v2.95c}{2006/08/12}{neu (intern)} -% \changes{v2.97b}{2007/03/08}{vermurkste Logik korrigiert} -% \changes{v2.97c}{2007/04/18}{vermurkste Funktion korrigiert} -% \changes{v2.97c}{2007/04/18}{von \cs{scr@ifundefined} umbenannt} -% \changes{v3.02c}{2009/02/19}{Sonderbehandlung für nicht \eTeX entfernt} -% Dieses Makro arbeitet wie \cs{@ifundefined}, definiert dabei aber -% ein undefiniertes Makro nicht als \cs{relax}. Es muss bereits hier definiert -% werden, weil es gleich verwendet wird. -% \begin{macrocode} -%<*base> -\newcommand{\scr@ifundefinedorrelax}[1]{% - \ifcsname #1\endcsname - \expandafter\ifx\csname #1\endcsname\relax - \expandafter\expandafter\expandafter\@firstoftwo - \else - \expandafter\expandafter\expandafter\@secondoftwo - \fi - \else - \expandafter\@firstoftwo - \fi -} -% -% \end{macrocode} -% \end{macro} -% -% -% \subsection{Definition von KOMA-\textsf{keyval}-Schlüsseln (Basis)} -% -% Üblicherweise verwendet \KOMAScript{} für alle -% \textsf{keyval}-Schlüssel die gleiche Bereichskennung -% "`\texttt{KOMA}"'. Dadurch ist es möglich, dass Pakete die Schlüssel -% der Klassen umdefinieren und dass jeder Teil von \KOMAScript{} die -% Schlüssel jedes anderen Teils ausführen kann -- sobald sie definiert -% sind. -% -% \begin{macro}{\DefineFamily} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} -% \begin{macro}{\DefineFamilyMember} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} -% \begin{macro}{\DefineFamilyKey} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} -% \begin{macro}{\scr@if@family} -% \changes{v3.00}{2008/04/30}{Neu (intern)} -% \begin{macro}{\scr@if@familymember} -% \changes{v3.00}{2008/04/30}{Neu (intern)} -% Familie, Familienmitglied und \textsf{keyval}-Schlüssel für ein -% Familienmitglied definieren. Dabei wird als Familienmitglied per Default der -% (Datei-)Name des aktuellen Pakets bzw. der aktuellen Klasse verwendet. -% \begin{macrocode} -%<*base> -\newcommand*{\DefineFamily}[1]{% - \scr@ifundefinedorrelax{#1@key@familylist}{% - \@namedef{#1@key@familylist}{}% - }{}% -} -\newcommand*{\scr@if@family}[2]{% - \scr@ifundefinedorrelax{#1@key@familylist}{% - \PackageError{scrbase}{% - unknown family `#1'% - }{% - You've tried to #2 for family `#1'.\MessageBreak - This my be done only for previous defined families.\MessageBreak - You should call `\string\DefineFamily{#1}' first.% - }% - }% -} -\newcommand*{\DefineFamilyMember}[2][.\@currname.\@currext]{% - \scr@if@family{#2}{define a family member}{% - \edef\reserved@a{% - \noexpand\in@{#2#1,}{\csname #2@key@familylist\endcsname}}% - \reserved@a - \ifin@\else - \expandafter\edef\csname #2@key@familylist\endcsname{% - \@nameuse{#2@key@familylist}#2#1,}% - \fi - }% -} -\newcommand*{\scr@if@familymember}[3]{% - \scr@if@family{#2}{#3}{% - \edef\reserved@a{% - \noexpand\in@{#2#1,}{\csname #2@key@familylist\endcsname}}% - \reserved@a - \ifin@ - \expandafter\@firstofone - \else - \PackageError{scrbase}{% - unknown member `#1' at family `#2'% - }{% - You've tried to #3 for member `#1' of family `#2'.\MessageBreak - This my be done only for previous defined family members.\MessageBreak - You should call `\string\DefineFamilyMember[{#1}]{#2}' first.% - }% - \expandafter\@gobble - \fi - }% -} -\newcommand*{\DefineFamilyKey}[2][.\@currname.\@currext]{% - \scr@if@familymember{#1}{#2}{define a key}{% - \define@key{#2#1}% - }% -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\KOMA@key} -% \changes{v2.97c}{2007/04/19}{neues optionales Argument} -% \begin{macro}{\KOMA@key@familylist} -% \textsf{keyval}-Schlüssel für \KOMAScript{} werden mit \cs{KOMAkey} -% definiert, damit auch die Familie korrekt gesetzt und ggf. der Liste der -% Familien (\cs{KOMA@key@familylist}) hinzugefügt wird. -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMA@key}[1][.\@currname.\@currext]{% - \DefineFamilyMember{KOMA}% - \DefineFamilyKey[#1]{KOMA}% -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \subsection{Optionen} -% -% Ab Version 2.97c sollen sowohl globale KOMA-Optionen als auch die -% KOMA-Optionen der jeweiligen Datei als auch die normalen Optionen in der -% Reihenfolge ausgeführt werden, in der sie angegeben wurden -- zuerst die -% globalen Optionen, dann die lokalen. Dabei werden nur die Optionen -% verwendet, die auch für das jeweilige Paket bzw. die jeweilige Klasse -% definiert wurden. -% -% \begin{macro}{\@globaloptionslist} -% \changes{v2.96}{2006/11/26}{new} -% \changes{v2.96}{2006/11/26}{Klassenoptionen durchsuchen} -% Die Lister der globalen Optionen wird teilweise benötigt. Weil -% \textsl{xkeyval} dämlicherweise glaubt, es müsse alle Optionen mit -% Gleichheitszeichen aus der Liste der Klassenoptionen entfernen -% (seltsamerweise aber nicht die (x)keyval-Optionen, die ohne Wert aufgerufen -% werden, weil ihr Defaultwert verwendet werden soll), wird hier ein eigenes -% Makro definiert. -% \begin{macrocode} -%<*base> -\newcommand*{\@globaloptionslist}{} -\let\@globaloptionslist\@classoptionslist -\scr@ifundefinedorrelax{XKV@classoptionslist}{}{% - \ifx\XKV@classoptionslist\@empty\else - \let\@globaloptionslist\XKV@classoptionslist - \fi -} -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FamilyProcessOptions} -% \changes{v3.00}{2008/04/30}{Neue Anweisung}% -% \changes{v3.11a}{2012/06/11}{Klassen melden falsche Werte nicht -% selbst als Fehler, sondern informieren nur darüber} -% \begin{macro}{\scr@removeunused} -% \changes{v3.10}{2011/09/12}{neu (intern)}% -% Diese Anweisung führt alle Optionen, sowohl normal deklarierte als auch -% \textsf{keyval}-Optionen für eine angegebene Familie (2. Argument) und das -% aktuelle Mitglied (1. optionales Argument) in der Reihenfolge, in der sie -% verwendet wurden aus -- zuerst globale Optionen, dann lokale Optionen. Das -% entspricht der Verwendung von \cs{ProcessOptions*} mit dem Unterschied, -% dass eben auch die \textsf{keyval}-Optionen abgearbeitet -% werden. \textsf{keyval}-Optionen, die keinem Mitglied zugeordnet, sondern -% universell sind, werden dabei vor gleichnamigen \textsf{keyval}-Optionen -% des aktuellen Mitglieds ausgeführt. -% \begin{macrocode} -%<*base> -\newcommand*{\scr@removeunused}{} -\newcommand*{\FamilyProcessOptions}[2][.\@currname.\@currext]{% - \let\ds@\@empty - \edef\@curroptions{\@ptionlist{\@currname.\@currext}}% - \ifx\@currext\@clsextension\else - \@for\CurrentOption:=\@globaloptionslist\do{% - \ifx\CurrentOption\@empty\else - \@expandtwoargs\in@{,\CurrentOption,}{,\@declaredoptions,}% - \ifin@ - \@use@ption - \expandafter\let\csname ds@\CurrentOption\endcsname\@empty - \else - \expandafter\def\expandafter\scr@removeunused\expandafter{% - \expandafter\def\expandafter\CurrentOption\expandafter{% - \CurrentOption}\@use@ption}% - \scr@optiontest{#2}\CurrentOption{}{% - \@expandtwoargs\setkeys{#2}% - \CurrentOption - \scr@removeunused - }% - \scr@optiontest{#2#1}\CurrentOption{}{% - \@expandtwoargs\setkeys{#2#1}% - \CurrentOption - \scr@removeunused - }% - \let\scr@removeunused\@empty - \fi - \fi - }% - \fi - \@for\CurrentOption:=\@curroptions\do{% - \@use@ption - \scr@ifundefinedorrelax{ds@\CurrentOption}{% - \scr@optiontest{#2}\CurrentOption{% - \scr@optiontest{#2#1}\CurrentOption{% - \default@ds - }{% - \let\scr@removeunused\relax - \edef\reserved@a{% - \noexpand\setkeys{#2#1}{\CurrentOption}% - \noexpand\def\noexpand\CurrentOption{\CurrentOption}% - }\reserved@a - \ifx\scr@removeunused\relax\else\default@ds\fi - }% - }{% - \let\scr@removeunused\relax - \edef\reserved@a{% - \noexpand\setkeys{#2}{\CurrentOption}% - \noexpand\def\noexpand\CurrentOption{\CurrentOption}% - }\reserved@a - \if\scr@removeunused\relax\else\default@ds\fi - \scr@optiontest{#2#1}\CurrentOption{}{% - \let\scr@removeunused\relax - \@expandtwoargs\setkeys{#2#1}% - \CurrentOption - \ifx\scr@removeunused\relax\else\default@ds\fi - }% - }% - }{% - }% - }% - \@for\CurrentOption:=\@declaredoptions\do{% - \expandafter\let\csname ds@\CurrentOption\endcsname\relax}% - \let\CurrentOption\@empty - \let\@fileswith@pti@ns\@@fileswith@pti@ns - \AtEndOfPackage{\let\@unprocessedoptions\relax}% -} -\@onlypreamble\FamilyProcessOptions -% \end{macrocode} -% \end{macro} -% \begin{macro}{\scr@optiontest} -% \changes{v2.97c}{2007/04/18}{neu (intern)}% -% \begin{macro}{\scr@pti@ntest} -% \changes{v2.97c}{2007/04/18}{neu (intern)}% -% Es werden zwei interne Makros benötigt, um zu testen, ob eine -% entsprechende keyval-Option definiert ist. Grund der Übung ist, dass -% sowohl das Familienargument als auch die Option selbst expandiert werden -% muss. -% \begin{macrocode} -\newcommand*{\scr@optiontest}[2]{% - \edef\reserved@a{\noexpand\scr@pti@ntest{#1}#2=\noexpand\@nil}% - \reserved@a -} -\newcommand*{\scr@pti@ntest}{} -\def\scr@pti@ntest#1#2=#3\@nil{\scr@ifundefinedorrelax{KV@#1@#2}} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\KOMAProcessOptions} -% \changes{v2.97c}{2007/04/18}{neu}% -% \changes{v3.00}{2008/04/30}{kein optionales Argument mehr}% -% Diese Anweisung führt alle Optionen, sowohl normal deklarierte als auch -% keyval-Optionen eines Pakets bzw. einer Klasse in der Reihenfolge, in der -% sie verwendet wurden aus -- zuerst globale Optionen, dann lokale -% Optionen. Das entspricht der Verwendung von \cs{ProcessOptions*} mit dem -% Unterschied, dass eben auch die keyval-Optionen abgearbeitet -% werden. keyval-Optionen, die keiner einzelnen Klasse und keinem einzelnen -% Paket zugeordnet werden, werden dabei vor gleichnamigen eigenen -% keyval-Optionen ausgeführt. -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMAProcessOptions}{\FamilyProcessOptions{KOMA}} -\@onlypreamble\KOMAProcessOptions -% -% \end{macrocode} -% \end{macro} -% -% \begin{option}{internalonly} -% \changes{v2.96}{2006/11/26}{neu} -% \changes{v2.97c}{2007/06/20}{geht auch ohne Argument} -% \begin{macro}{\dont@let@as@internal@defined} -% \changes{v2.96}{2006/11/26}{neu (intern)} -% Anweisungen, die mit einem internen und einem Anwendername vorhanden sind, -% können vor dem Anwender optional verborgen werden. Wird kein Argument -% angegeben, so werden alle Anweisungen verborgen. -% \begin{macrocode} -%<*base> -\newcommand*{\dont@let@as@internal@defined}{/} -\newif\if@let@as@internalonly@defined\@let@as@internalonly@definedfalse -\DefineFamily{KOMA} -\DefineFamilyMember{KOMA} -\DefineFamilyKey{KOMA}{internalonly}[\relax]{% - \ifx\relax#1\relax - \@let@as@internalonly@definedtrue - \else - \@let@as@internalonly@definedfalse - \begingroup - \@expandtwoargs\in@{#1}\dont@let@as@internal@defined - \expandafter\endgroup - \ifin@\else\g@addto@macro\dont@let@as@internal@defined{#1/}\fi - \fi -} -% -% \end{macrocode} -% \end{macro} -% \end{option} -% -% \changes{v2.96}{2006/08/20}{Optionen werden abgearbeitet} -% \changes{v2.97c}{2007/04/18}{Optionen werden mit \cs{KOMAProcessOptions} -% abgearbeitet} -% \begin{macrocode} -%\KOMAProcessOptions\relax -%\FamilyProcessOptions{KOMA}\relax -% \end{macrocode} -% -% \iffalse -% -%<*body> -% \fi -% -% \subsection{Ein wenig zusätzliche Mathematik für \eTeX} -% -% \begin{macro}{\XdivY} -% \changes{v3.05a}{2010/03/10}{Neu} -% Ergebnis ist erster Argument durch zweites abgerundet auf die nächst -% kleinere ganze Zahl. -% \begin{macrocode} -%<*base> -\newcommand*{\XdivY}[2]{% - \numexpr ( #1 + #2 / 2 ) / #2 - 1\relax -} -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\XmodY} -% \changes{v3.05a}{2010/03/10}{Neu} -% Ergebnis ist erstes Argument modulo zweites Argument. -% \begin{macrocode} -%<*base> -\newcommand*{\XmodY}[2]{% - \numexpr #1 - #2 * \XdivY{#1}{#2}\relax -} -% -% \end{macrocode} -% \end{macro} -% -% \subsection{Häufig benötigte Befehle} -% -% \begin{macro}{\if@atdocument} -% \changes{v2.95}{2002/12/05}{neuer Schalter} -% \begin{macro}{\@atdocumenttrue} -% \begin{macro}{\@atdocumentfalse} -% Dieser Schalter wird bei \cs{begin}\texttt{\{document\}} wahr. Er -% wird von \KOMAScript{} für Befehle verwendet, die sich -% unterschiedlich verhalten, je nachdem, ob sie in der Präambel oder -% danach aufgerufen werden. -% \begin{macrocode} -%<*base> -\newif\if@atdocument -\AtBeginDocument{\@atdocumenttrue} -\@onlypreamble\@atdocumentrue -\@onlypreamble\@atdocumentfalse -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\let@as@internal@defined} -% \changes{v2.95}{2002/08/19}{neu (intern)} -% \changes{v2.95c}{2006/08/12}{Warnung bei Umdefinierung} -% \changes{v2.96}{2006/11/26}{Herausreichen von internen Makros als -% Benutzermakros kann verhindert werden} -% \changes{v2.97c}{2007/06/20}{Herausreichen von internen Makros kann -% generell verhindert werden} -% \changes{v3.10}{2010/10/26}{\cs{ignorespaces} beim \cs{document}-Patch -% ergänzt} -% Dieses Makro wird intern verwendet, um dokumentierte Makros mit der -% Definition von internen Makros zu versehen, falls sie nicht bereits -% definiert oder als nicht zu definieren markiert sind. Der Name des -% dokumentierten Makros wird als Parameter übergeben. Dies wird gleich -% benötigt. -% \begin{macrocode} -%<*base> -\newcommand*{\let@as@internal@defined}[1]{% - \begingroup - \if@let@as@internalonly@defined - \in@true - \else - \@expandtwoargs\in@{/#1/}\dont@let@as@internal@defined - \fi - \expandafter\endgroup - \ifin@ - \PackageInfo{% - scrbase% - }{% - \expandafter\string\csname #1\endcsname\space excluded from being - defined% - }% - \else - \@ifundefined{#1}{% - \begingroup - \expandafter\def\expandafter\@tempa - \expandafter{\csname scr@#1\endcsname} - \expandafter\def\expandafter\@tempb - \expandafter{\csname #1\endcsname} - \expandafter\expandafter\expandafter\endgroup - \expandafter\expandafter\expandafter\let\expandafter\@tempb\@tempa - \if@atdocument\else - \g@addto@macro\document{% - \expandafter\ifx\csname #1\expandafter\endcsname - \csname scr@#1\endcsname - \else - \PackageWarning{scrbase}{% - \expandafter\string\csname #1\endcsname\space was - redefined\MessageBreak - at the document preamble.\MessageBreak - If you did not redefine it by yourself, have a\MessageBreak - a look at the description of this command at\MessageBreak - the manual of every package you are using\@gobble - }% - \fi - \ignorespaces - }% - \fi - }{% - \PackageInfo{% - scrbase% - }{% - \expandafter\string\csname #1\endcsname\space already - defined.\MessageBreak - If \expandafter\string\csname #1\endcsname\space does not behave - like\MessageBreak - it was described at the KOMA-Script manual, try to\MessageBreak - load `scrbase.sty' earlier or find out at which\MessageBreak - package or class \expandafter\string\csname #1\endcsname\space - was defined before\@gobble - }% - }% - \fi -} -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ifundefinedorrelax} -% \changes{v2.95}{2002/08/21}{neu} -% \changes{v2.95c}{2006/08/12}{über interne Anweisung definiert} -% \changes{v2.97c}{2007/06/20}{umbenannt von \cs{ifundefined}} -% Dieses Makro arbeitet wie \cs{@ifundefined}, definiert dabei aber -% ein undefiniertes Makro nicht als \cs{relax}. -% \begin{macrocode} -%<*base> -\let@as@internal@defined{ifundefinedorrelax} -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ifnotundefined} -% \changes{v2.95}{2002/08/21}{neu} -% \changes{v2.95c}{2006/08/12}{nutzt \eTeX{} wenn möglich} -% \changes{v3.02c}{2009/02/19}{\eTeX{} ist zwingend} -% Dieses Makro arbeitet genau umgekehrt zu \cs{ifundefined}. Manchmal -% ist es ganz nützlich, auch das zu haben. Dieses Makro heißt nicht -% \cs{ifdefined}, weil \eTeX\ bereits ein solches Primitiv bietet. -% \begin{macrocode} -%<*base> -\newcommand{\ifnotundefined}[1]{% - \ifcsname #1\endcsname - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi -} -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ifstr} -% \changes{v2.95}{2004/07/20}{if- und then-Teil werden nicht gefressen} -% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt} -% Dieses Makro vergleicht zwei Tokenfolgen. Eigentlich müsste es also -% eher \cs{ifequal} oder ähnlich heißen. -% \begin{macrocode} -%<*base> -\newcommand\ifstr[2]{% - \begingroup\protected@edef\@tempa{#1}\protected@edef\@tempb{#2}% - \ifx\@tempa\@tempb - \endgroup\expandafter\@firstoftwo - \else - \endgroup\expandafter\@secondoftwo - \fi -} -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ifnumber} -% Dieses Makro testet, ob ein übergebener Parameter eine positive, -% ganze Zahl ist. Ist dies der Fall, wird der zweite Parameter -% ausgeführt, sonst der dritte. -% \begin{macrocode} -%<*base> -\newcommand\ifnumber[1]{% - \begingroup\@tempswafalse\let\scr@next\test@number - \expandafter\scr@next#1\scr@next - \if@tempswa - \endgroup\expandafter\@firstoftwo - \else - \endgroup\expandafter\@secondoftwo - \fi -} -% \end{macrocode} -% \begin{macro}{\test@number} -% Für den eigentlichen Test wird der erste Parameter Token für Token -% gescannt und beurteilt. -% \begin{macrocode} -\newcommand*{\test@number}[1]{% - \ifx \scr@next#1 - \let\scr@next\relax - \else -% \end{macrocode} -% Dabei wird für einen schnelleren Vergleich die Tatsache genutzt, dass -% Ziffernzeichen immer im selben durchgängigen Bereich liegen -% \begin{macrocode} - \@tempcnta=\expandafter\expandafter\expandafter\number - \expandafter`#1\relax - \ifnum \@tempcnta>47 - \ifnum \@tempcnta<58 - \@tempswatrue - \else\@tempswafalse\fi - \else\@tempswafalse\fi -% \end{macrocode} -% Das zeichenweise Scannen und Parsen kann natürlich nicht einfach -% abgebrochen werden. Stattdessen ist der Parameterrest noch zu -% entfernen. -% \begin{macrocode} - \if@tempswa\else\let\scr@next\gobble@till@scr@next\fi - \fi - \scr@next -} -% \end{macrocode} -% \begin{macro}{\gobble@tillscr@@next} -% Das geschieht mit einem einzigen "`Leermacro"'. -% \begin{macrocode} -\newcommand*{\gobble@till@scr@next}{} -\def\gobble@till@scr@next#1\scr@next{} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\ifdimen} -% Dieses Makro testet, ob ein übergebener Parameter eine Dimension -% ist und führt in Abhängigkeit davon den zweiten oder dritten -% Parameter aus. -% \begin{macrocode} -%<*base> -\newcommand{\ifdimen}[1]{% - \begingroup\@tempswatrue\let\scr@next\test@posdimen - \expandafter\test@dimen#1\scr@next - \if@tempswa - \endgroup\expandafter\@firstoftwo - \else - \endgroup\expandafter\@secondoftwo - \fi -} -% \end{macrocode} -% \begin{macro}{\test@dimen} -% Als erste muss 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 muss getestet werden, ob es sich beim Rest um eine Dimension -% handelt. Dabei werden der Einfachheit halber mehrere Dezimalkomma -% und -punkte erlaubt. Natürlich könnte man es auch wirklich richtig -% machen, aber das wäre 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 - \ifnum \@tempcnta<58 - \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ßer einer Gleitkomma- bzw. Gleitpunktzahl muss auch noch die Einheit -% behandelt werden. Dabei sind sowohl die neun Standardeinheiten als auch -% deren "`true"'-Variante zu berücksichtigen. 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ßend wird dann getestet, ob es sich um eine der neun üblichen -% 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} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\ifpdftex} -% \changes{v2.95}{2002/08/19}{neu} -% \begin{macro}{\scr@ifpdftex} -% \changes{v2.95}{2002/08/19}{neu (intern)} -% If-then-else-Konstrukt, um zu testen, ob pdf\TeX{} verwendet wird. -% \begin{macrocode} -%<*base> -\newcommand{\scr@ifpdftex}{\ifnotundefined{pdftexversion}} -\let@as@internal@defined{ifpdftex} -\BeforePackage{pdfcprot}{\let\ifpdftex\relax} -\AfterPackage{pdfcprot}{\let@as@internal@defined{ifpdftex}} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\ifVTeX} -% \changes{v2.95}{2002/08/19}{neu} -% \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{ifvtex}} -% \begin{macro}{\scr@ifVTeX} -% \changes{v2.95}{2002/08/19}{neu} -% \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{scr@ifvtex}} -% If-then-else-Konstrukt, um zu testen, ob V\TeX{} verwendet wird. -% \begin{macrocode} -%<*base> -\newcommand{\scr@ifVTeX}{\ifnotundefined{VTeXversion}} -\let@as@internal@defined{ifVTeX} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \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 (intern)} -% \changes{v2.8q}{2001/11/13}{funktioniert} -% \changes{v2.95}{2002/08/21}{berücksichtigt V\TeX} -% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert} -% If-then-else-Konstrukt, um abhängig davon, ob als \texttt{pdf} -% ausgegeben wird oder nicht, Befehle auszuführen. Dieses Makro wird -% für die Deklaration der Option \texttt{pagesize} benötigt. -% \begin{macrocode} -%<*base> -\newcommand{\scr@ifpdfoutput}{% - \scr@ifundefinedorrelax{pdfoutput}{% - \scr@ifundefinedorrelax{OpMode}{% - \expandafter\@secondoftwo% - }{% - \ifnum\OpMode=1 - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - }% - }{% - \ifnum\pdfoutput>0 - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - }% -}% -\let@as@internal@defined{ifpdfoutput} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\ifpsoutput} -% \changes{v2.95}{2002/08/21}{neu} -% \begin{macro}{\scr@ifpsoutput} -% \changes{v2.95}{2002/08/21}{neu (intern)} -% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert} -% If-then-else-Konstrukt, um abhängig davon, ob früher oder später -% \texttt{ps} ausgegeben wird oder nicht, Befehle auszuführen. -% \begin{macrocode} -%<*base> -\newcommand*{\scr@ifpsoutput}{% - \ifnotundefined{if@dvips}{% - \if@dvips - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - }{% - \ifnotundefined{OpMode}{% - \ifnum\OpMode=2 - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - }{% - \expandafter\@secondoftwo - }% - }% -} -\let@as@internal@defined{ifpsoutput} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\ifdvioutput} -% \changes{v2.95}{2002/08/21}{neu} -% \begin{macro}{\scr@ifdvioutput} -% \changes{v2.95}{2002/08/21}{neu (intern)} -% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert} -% If-then-else-Konstrukt, um abhängig davon, ob \texttt{dvi} -% ausgegeben wird oder nicht, Befehle auszuführen. -% \begin{macrocode} -%<*base> -\newcommand*{\scr@ifdvioutput}{% - \scr@ifundefinedorrelax{pdfoutput}{% - \scr@ifundefinedorrelax{OpMode}{% - \expandafter\@firstoftwo - }{% - \ifnum\OpMode=0 - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - }% - }{% - \ifnum\pdfoutput=0 - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - }% -} -\let@as@internal@defined{ifdvioutput} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\scr@smashdp} -% \changes{v2.97c}{2007/09/17}{neu (intern)} -% \changes{v3.02a}{2009/01/23}{\cs{smash} nicht direkt verwenden, weil -% \textsf{amsmath} das inkompatibel umdefiniert} -% Gibt Material aus, erzeugt dabei aber nur Höhe und Breite, jedoch keine -% Tiefe. -% \begin{macrocode} -%<*base> -\newcommand*{\scr@smashdp}[1]{% - \begingroup - \def\finsm@sh{\dp\z@\z@\box\z@}% - \ifmmode - \expandafter\mathpalette\expandafter\mathsm@sh - \else - \expandafter\makesm@sh - \fi - {#1}% - \endgroup -} -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\PackageInfoNoLine} -% \changes{v2.97d}{2007/10/03}{neu} -% Arbeitet wie \cs{PackageInfo} aber ohne Ausgabe der Zeilennummer. -% \begin{macrocode} -%<*base> -\providecommand*{\PackageInfoNoLine}[2]{% - \PackageInfo{#1}{#2\@gobble}% -} -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ClassInfoNoLine} -% \changes{v2.98c}{2008/02/15}{neu} -% Arbeitet wie \cs{ClassInfo} aber ohne Ausgabe der Zeilennummer. -% \begin{macrocode} -%<*base> -\providecommand*{\ClassInfoNoLine}[2]{% - \ClassInfo{#1}{#2\@gobble}% -} -% -% \end{macrocode} -% \end{macro} -% -% \subsection{Definition von KOMA-\textsf{keyval}-Schlüsseln (Hauptteil)} -% -% \begin{macro}{\FamilyExecuteOptions} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} -% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt} -% \changes{v3.04b}{2010/02/02}{\cs{scr@key@atlist} und \cs{scr@key@name} -% vor Überschreiben in \cs{serkeys} geschützt} -% Entspriche \cs{ExecuteOptions} jedoch \textsf{keyval}-Optionen. -% \begin{macrocode} -%<*base> -\newcommand*{\FamilyExecuteOptions}[3][.\@currname.\@currext]{% - \def\reserved@a##1\@nil{% - \@for\scr@key@atlist:=#3\do{% - \expandafter\scr@key@split@name@value\scr@key@atlist==\@nil - \scr@ifundefinedorrelax{KV@#2@\scr@key@name}{}{% - \protected@edef\reserved@a{\noexpand\setkeys{#2}{\scr@key@atlist}% - \noexpand\def\noexpand\scr@key@atlist{\scr@key@atlist}% - \noexpand\def\noexpand\scr@key@name{\scr@key@name}% - }% - \reserved@a - }% - \scr@ifundefinedorrelax{KV@#2#1@\scr@key@name}{}{% - \protected@edef\reserved@a{% - \noexpand\setkeys{#2#1}{\scr@key@atlist}% - \noexpand\def\noexpand\scr@key@atlist{\scr@key@atlist}% - \noexpand\def\noexpand\scr@key@name{\scr@key@name}% - }% - \reserved@a - }% - \let\CurrentOption\scr@key@atlist - \csname ds@\CurrentOption\endcsname - }% - \edef\CurrentOption{##1}% - }% - \expandafter\reserved@a\CurrentOption\@nil -} -\@onlypreamble\FamilyExecuteOptions -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KOMAExecuteOptions} -% \changes{v2.97c}{2007/04/19}{Neue Anweisung} -% \changes{v3.00}{2008/04/30}{Kein optionales Argument mehr} -% Liste von Optionen ausführen -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMAExecuteOptions}{\FamilyExecuteOptions{KOMA}} -\@onlypreamble\KOMAExecuteOptions -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FamilyOptions} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} -% Es werden Schlüssel einer Familie verwendet. Existiert ein Schlüssel nicht, -% so wird eine Fehlermeldung ausgegeben. -% \begin{macrocode} -%<*base> -\newcommand*{\FamilyOptions}[2]{% - \Family@Options{#1}{#2}{% - \PackageError{scrbase}{% - option `\scr@key@name' unknown at family `#1'% - }{% - You have used \string\FamilyOptions{#1} to set - `\scr@key@atlist',\MessageBreak - but family `#1' does not know any option named - `\scr@key@name'.\MessageBreak - See the manual for the package or class using family `#1' for - more\MessageBreak - informations about options and their values.% - }% - }% -} -% \begin{macro}{\Family@Options} -% \changes{v3.00}{2008/04/30}{Neues Makro (intern)}% -% Das interne Macro \cs{Family@Options} macht die eigentliche Arbeit. Das -% erste Argument ist dabei die Familie. Das zweite Argument ist die Liste -% der Optionen, das zweite Code, der im Fehlerfall ausgeführt werden -% soll. Dabei sind die Makros \cs{scr@key@atlist}, \cs{scr@key@name} und -% \cs{scr@key@value} gültig und können verwendet werden. -% -% Anmerkung: Es wird nicht auf \textsf{xkeyval} und den dortigen Befehl -% \cs{setkeys+} gesetzt, weil dieser die Optionen nicht in der Reihenfolge -% der Optionen, sondern in der Reihenfolge der Familien ausführt. Das passt -% mir aber hier gar nicht. -% -% In einer Schleife über alle Optionen werden die Optionen zunächst in -% Option und Wert aufgespaltet. -% \begin{macrocode} -\newcommand*{\Family@Options}[3]{% - \@for\scr@key@atlist:=#2\do{% -% \end{macrocode} -% \changes{v3.08}{2010/11/05}{leere Argumente in der Optionenliste}% -% Auf vielfachen Wunsch und entgegen meiner Überzeugung, sind auch leere -% Argumente in der Optionenliste erlaubt. Die erste Form wäre, wenn zwei -% Kommas diret aufeinander folgen: -% \begin{macrocode} - \ifx\scr@key@atlist\@empty\else -% \end{macrocode} -% Die zweite Möglichkeit wäre, dass noch Leerzeichen zwischen den Komma -% übrig bleiben: -% \begin{macrocode} - \ifx\scr@key@atlist\space\else - \expandafter\scr@key@split@name@value\scr@key@atlist==\@nil -% \end{macrocode} -% Die dritte Möglichkeit, dass auch noch ein Gleichheitszeichen übrig -% gelassen wurde, werde ich aber nicht abfangen. Irgendwann müssen die -% Anwender auch mal ihre Fehler einsehen und korrigieren! -% -% Dann wird in einer Schleife über alle Familien festgestellt, ob die Option -% in einer Familie bekannt ist und ggf. ausgeführt. -% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt} -% \changes{v3.09a}{2011/06/07}{weniger Expansion durch sinnvollen Gebrauch -% von \cs{unexpanded}} -% \begin{macrocode} - \scr@key@found@false - \edef\@tempa{\csname #1@key@familylist\endcsname}% - \@for\@tempa:=\@tempa\do{% - \scr@ifundefinedorrelax{KV@\@tempa @\scr@key@name}{}{% - \scr@key@found@true - \protected@edef\reserved@a{% - \noexpand\setkeys{\@tempa}{% - \unexpanded\expandafter{\scr@key@atlist}}% - \noexpand\def\noexpand\@tempa{% - \unexpanded\expandafter{\@tempa}}% - \noexpand\def\noexpand\scr@key@atlist{% - \unexpanded\expandafter{\scr@key@atlist}}% - \noexpand\def\noexpand\scr@key@name{% - \unexpanded\expandafter{\scr@key@name}}% - \noexpand\def\noexpand\scr@key@value{% - \unexpanded\expandafter{\scr@key@value}}% - }% - \reserved@a - }% - }% - \ifscr@key@found@\else#3\fi - \fi - \fi - }% -} -% \end{macrocode} -% \begin{macro}{\ifscr@key@found@} -% \changes{v2.97c}{2007/04/19}{Neuer Schalter (intern)} -% \changes{v3.00}{2008/04/30}{umbenannt von \cs{ifKOMA@key@found}} -% \begin{macro}{\scr@key@atlist} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} -% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@atlist}} -% \begin{macro}{\scr@key@name} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} -% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@name}} -% \begin{macro}{\scr@key@value} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} -% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@value}} -% \begin{macro}{\scr@key@split@name@value} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} -% \changes{v2.97e}{2007/11/10}{verwendet \cs{KV@@sp@def} zur Entsorgung von -% Leerzeichen} -% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@split@name@value}} -% \begin{macrocode} -\newif\ifscr@key@found@ -\newcommand*{\scr@key@atlist}{} -\newcommand*{\scr@key@name}{} -\newcommand*{\scr@key@value}{} -\newcommand*{\scr@key@split@name@value}{} -\def\scr@key@split@name@value#1=#2=#3\@nil{% - \KV@@sp@def\scr@key@name{#1}% - \KV@@sp@def\scr@key@value{#2}% -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\FamilyOption} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} -% \begin{macro}{\Family@Option} -% \changes{v3.00}{2008/04/30}{Neu (intern)} -% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt} -% Im Gegensatz zu \cs{FamilyOptions} kann man mit dieser Anweisung nur eine -% einzige Option setzen. Dafür kann man gleich mehrere durch Komma getrennte -% Argumente für diese Option setzen. Das erste obligatorische Argument ist -% wieder die Familie, das zweite obligatorische Argument ist die Option, das -% dritte, obligatorische Argument ist die Liste der Werte für diese Option. -% \begin{macrocode} -%<*base> -\newcommand*{\FamilyOption}[3]{% - \Family@Option{#1}{#2}{#3}{% - \PackageError{scrbase}{% - unknown option `\scr@key@name' for familie `#1'% - }{% - You have used \string\FamilyOption{#1} to set - `\scr@key@name',\MessageBreak - but family '#1' does not know any option named - `\scr@key@name'.\MessageBreak - See the the manual of the class or package, that provides - family\MessageBreak - `#1' for more informations about options and their values.% - }% - }% -} -\newcommand*{\Family@Option}[4]{% - \expandafter\KV@@sp@def\expandafter\scr@key@name\expandafter{#2}% - \scr@key@found@false - \edef\@tempa{\csname #1@key@familylist\endcsname}% - \@for\@tempa:=\@tempa\do{% - \scr@ifundefinedorrelax{KV@\@tempa @\scr@key@name}{}{% - \scr@key@found@true - \let\@tempb\@tempa - }% - }% - \ifscr@key@found@ - \let\reserved@a\@empty - \@for\@tempa:=#3\do{% - \expandafter\KV@@sp@def\expandafter\@tempa\expandafter{\@tempa}% -% \end{macrocode} -% \changes{v3.08}{2010/11/05}{leere Argumente in der Werteliste} -% Auf vielfachen Wunsch und entgegen meiner Überzeugung, sind auch leere -% Argumente in der Werteliste erlaubt: -% \begin{macrocode} - \ifx\@tempa\@empty\else - \protected@edef\reserved@a{\reserved@a,\scr@key@name=\@tempa}% - \fi - }% - \ifx\reserved@a\@empty - \protected@edef\reserved@a{\noexpand\setkeys{\@tempb}{\scr@key@name}}% - \else - \protected@edef\reserved@a{% - \noexpand\setkeys{\@tempb}{\expandafter\@gobble\reserved@a}}% - \fi - \reserved@a - \else - #4 - \fi -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\KOMAoptions} -% \changes{v2.96}{2006/08/20}{Neuer Hook nach den Optionen} -% \changes{v2.97c}{2007/04/19}{Optionen aller KOMA-Familien abarbeiten} -% Es werden Schlüssel verwendet und ggf. danach noch Dinge ausgeführt. -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMAoptions}[1]{% - \let\post@kopt@hook\@empty - \KOMA@options{#1}{% -% \end{macrocode} -% Wenn der Schlüssel für keines der bekannten Familienmitglieder definiert -% ist, wird ein Fehler ausgegeben. -% \begin{macrocode} - \PackageError{scrkbase}{% - unknown KOMA option `\scr@key@name'% - }{% - You have used \string\KOMAoptions\space to set - `\scr@key@atlist',\MessageBreak - but KOMA-Script does not know any option named - `\scr@key@name'.\MessageBreak - See the KOMA-Script manual for more informations about options - and\MessageBreak - their values.% - }% - }% - \post@kopt@hook\let\post@kopt@hook\relax -} -% \end{macrocode} -% \begin{macro}{\KOMA@options} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} -% Das interne Macro \cs{KOMA@options} macht die eigentliche Arbeit. Das erste -% Argument ist dabei die Liste der Optionen, das zweite Code, der im -% Fehlerfall ausgeführt werden soll. Dabei sind die Makros -% \cs{KOMA@key@atlist}, \cs{KOMA@key@name} und \cs{KOMA@key@value} gültig und -% können verwendet werden. -% -% Anmerkung: Es wird nicht auf \textsf{ykeyval} und den dortigen Befehl -% \cs{setkeys+} gesetzt, weil dieser die Optionen nicht in der Reihenfolge der -% Optionen, sondern in der Reihenfolge der Familien ausführt. Das passt mir -% aber hier gar nicht. -% -% In einer Schleife über alle Optionen werden die Optionen zunächst in Option -% und Wert aufgespaltet. -% \begin{macrocode} -\newcommand*{\KOMA@options}{\Family@Options{KOMA}} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\post@kopt@hook} -% \begin{macro}{\AfterKOMAoptions} -% Eine Option kann dafür sorgen, dass nach den Optionen noch etwas passiert. -% \begin{macrocode} -%<*koma> -\newcommand*{\post@kopt@hook}{} -\let\post@kopt@hook\relax -\newcommand*{\AfterKOMAoptions}{% - \ifx\post@kopt@hook\relax - \PackageWarning{scrkbase}{% - \string\AfterKOMAoptions\space can only be used inside a\MessageBreak - KOMA-Script option that is called using \string\KOMAoptions.\MessageBreak - Because of this, command will be ignored% - }% - \expandafter\@gobbletwo - \else - \expandafter\l@addto@macro - \fi - \post@kopt@hook -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\l@addto@macro} -% \changes{v2.8p}{2001/09/22}{neu (intern)} -% Damit \cs{AfterKOMAoptions} lokal möglich ist, wird eine lokal arbeitende -% Variante von \cs{g@addto@macro} benötigt, wie sie hier vorgestellt wird. -% \changes{v2.95}{2006/06/02}{korrigiert, damit es sich bezüglich -% Erweiterung um Makrodefinitonen mit Argumenten wie \cs{g@addto@macro} -% verhält} -% \begin{macrocode} -%<*base> -\scr@ifundefinedorrelax{unexpanded}{% - \newcommand*{\g@addto@macro@temp}{}% - \newcommand{\l@addto@macro}[2]{% - \begingroup% - \toks@\expandafter{#1#2}% - \xdef\g@addto@macro@temp{\the\toks@}% - \endgroup - \let#1\g@addto@macro@temp - }% -}{% - \newcommand{\l@addto@macro}[2]{% - \edef#1{\unexpanded\expandafter{#1#2}}% - }% -} -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KOMAoption} -% \changes{v2.98c}{2008/03/12}{Neue Anweisung} -% Im Gegensatz zu \cs{KOMAoptions} kann man mit dieser Anweisung nur eine -% einzige Option setzen. Dafür kann man gleich mehrere durch Komma getrennte -% Argumente für diese Option setzen. Das erste obligatorische Argument ist die -% Option, das zweite, obligatorische Argument ist die Liste der Werte für -% diese Option. -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMAoption}[2]{% - \let\post@kopt@hook\@empty - \Family@Option{KOMA}{#1}{#2}{% - \PackageError{scrkbase}{% - unknown KOMA option `\scr@key@name'% - }{% - You have used \string\KOMAoption\space to set - `\scr@key@name',\MessageBreak - but KOMA-Script does not know any option named - `\scr@key@name'.\MessageBreak - See the KOMA-Script manual for more informations about options - and\MessageBreak - their values.% - }% - }% - \post@kopt@hook\let\post@kopt@hook\relax -} -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FamilyUnknownKeyValue} -% \changes{v3.10}{2011/09/12}{no error while processing global options}% -% \changes{v3.11a}{2012/05/28}{prevent remove from list of unused global -% options globally}% -% Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an einen -% Schlüssel. Das erste Argument ist die Familie, das zweite der Schlüssel, -% das dritte der Wert und das vierte die Liste der möglichen Werte. -% \begin{macrocode} -%<*base> -\newcommand*{\FamilyUnknownKeyValue}[4]{% - \ifx\scr@removeunused\@empty - \PackageError{% - scrbase% - }{% - option `#2' of family `#1' has no value `#3'% - }{% - You've tried to set option `#2' of family '#1' to value `#3'.\MessageBreak - But allowed values are only:\MessageBreak - #4\FamilyElseValues.\MessageBreak - See the manual of the class or package, that provides family - `#1'\MessageBreak - for more information about options and their values.% - }% - \else - \global\let\scr@removeunused\@empty - \PackageInfo{% - scrbase% - }{% - option `#2' of family `#1' has no value `#3'.\MessageBreak - Allowed values for option `#2' of family `#1'\MessageBreak - would be:\MessageBreak - #4\FamilyElseValues.\MessageBreak - Maybe another class or package provides this option.\MessageBreak - Global option ignored - }% - \fi -} -% -% \end{macrocode} -% \begin{macro}{\FamilyElseValues} -% \changes{v3.00}{2008/05/02}{Neue Anweisung} -% Diese Anweisung kann vor dem Setzen eines Wertes definiert werden, um bei -% einer etwaigen Fehlermeldung weitere Werte als erlaubt auszugeben. Am Ende -% von \cs{FamilySetBool} und \cs{FamilySetNumerical} wird die Anweisung -% automatisch zu \cs{@empty}. Es ist zu beachten, dass bei der Definition der -% Anweisung als erstes ein Komma und ein Leerzeichen zu setzen ist! -% \begin{macrocode} -%<*base> -\newcommand*{\FamilyElseValues}{} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\FamilyBoolKey} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} -% Dieses Makro definiert einen Schlüssel für eine Familie. Dieser Schlüssel -% ist ein Schalter, der über diverse Werte geschaltet werden kann. -% Das erste, optionale Argument ist das Familienmitglied, das zweite, -% obligatorische Argument ist die Familie, das dritte der Name des Schlüssels, -% das vierte der Schalter. -% \begin{macrocode} -%<*base> -\newcommand*{\FamilyBoolKey}[4][.\@currname.\@currext]{% - \@ifundefined{if#4}{% - \expandafter\newif\csname if#4\endcsname - }{}% - \DefineFamilyKey[{#1}]{#2}{#3}[true]{\FamilySetBool{#2}{#3}{#4}{##1}}% -} -% \end{macrocode} -% \begin{macro}{\FamilySetBool} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} -% \changes{v3.11a}{2012/05/25}{Argument in Fehlermeldung korrigiert} -% Über diese Anweisung wird der Wert dann gesetzt. Dabei ist das erste -% Argument die Familie, das zweite der Name des Schlüsselt, das dritte der -% Schalter und das vierte schließlich der gewünschte Wert. -% \begin{macrocode} -\newcommand*{\FamilySetBool}[4]{% - \ifstr{#4}{true}{\@nameuse{#3true}}{% - \ifstr{#4}{on}{\@nameuse{#3true}}{% - \ifstr{#4}{yes}{\@nameuse{#3true}}{% - \ifstr{#4}{false}{\@nameuse{#3false}}{% - \ifstr{#4}{off}{\@nameuse{#3false}}{% - \ifstr{#4}{no}{\@nameuse{#3false}}{% - \FamilyUnknownKeyValue{#1}{#2}{#4}{% - `true', `on', `yes', `false', `off', `no'% - }% - }% - }% - }% - }% - }% - }% - \let\FamilyElseValues\@empty -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\KOMA@unknown@keyval} -% Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an -% einen Schlüssel. Das erste Argument ist der Schlüssel, das zweite -% der Wert und das dritte die Liste der möglichen Werte. -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMA@unknown@keyval}{\FamilyUnknownKeyValue{KOMA}} -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KOMA@ifkey} -% \changes{v3.02c}{2009/02/04}{definiert ebenfalls das Familienmitglied} -% Dieses Makro definiert einen Schlüssel, der einen Schalter an Hand des -% Wertes setzt. Als Werte sind "`\texttt{true}"', "`\texttt{false}"', -% "`\texttt{on}"', "`\texttt{off}"', "`\texttt{yes}"' und -% "`\texttt{no}"' erlaubt. Der Default-Wert für den Schalter ist -% grundsätzlich "`false"', so dass der Default-Wert für die Verwendung -% des Schküssels grundsätzlich "`true"' ist. Das erste Argument ist -% der Name des Schlüssels, der zweite ist der Name des Schalters. -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMA@ifkey}{% - \DefineFamilyMember{KOMA}% - \FamilyBoolKey{KOMA}% -} -% -% \end{macrocode} -% \begin{macro}{\KOMA@set@ifkey} -% Die eigentliche Arbeit bei der ganzen Sache wird von diesem internen -% Makro erledigt. Dabei wird der Name des Schlüssels zu Argument 1, der -% Name des Schalters zu Argument 2 und der Wert des Schlüssels wird -% Argument 3. -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMA@set@ifkey}{\FamilySetBool{KOMA}} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\FamilyNumericalKey} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} -% \begin{macro}{\Family@Numerical@Key} -% \changes{v3.00}{2008/05/28}{Neu (intern)} -% \changes{v3.08b}{2011/03/31}{fehlendes Argument bei \cs{ifundefined}} -% Ein ähnliches Makro definiert einen Schlüssel, der ein nummerisches Makro -% auf einen bestimmten Wert setzt. Dabei können auch verschiedene symbolische -% Werte auf denselben nummerischen Wert abgebildet werden. Das erste, -% optionale Argument ist das Familienmitglied, das zweite, obligatorische -% Argument ist die Familie, das dritte, obligatorische Argument ist der Name -% der Option, das vierte, optionale Artument ist der Defaultwert für den -% Schlüssel, das fünfte, obligatorische Argument ist der Name des Makros, das -% (in der Voreinstellung als 0) definiert werden soll, das sechste, -% obligatorische Argument ist die Liste der symbolischen und nummerischen -% Werte. Die Liste hat die Form: -% \{\emph{Symbol}\}\{\emph{Wert}\},\{\emph{Symbol}\}\{\emph{Wert}\}\dots -% Das interne Makro wird benötigt, um das vierte, optionale Argument zu -% ermöglichen. Dabei ist dann das erste Argument nicht mehr optional, sondern -% obligatorisch. -% \begin{macrocode} -%<*base> -\newcommand*{\FamilyNumericalKey}[3][.\@currname.\@currext]{% - \@ifnextchar [%] - {\Family@Numerical@Key{#1}{#2}{#3}}{\Family@Numerical@Key{#1}{#2}{#3}[]}% -} -\newcommand*{\Family@Numerical@Key}{} -\def\Family@Numerical@Key#1#2#3[#4]#5#6{% - \@ifundefined{#5}{\@namedef{#5}{0}}{}% - \ifx\relax#4\relax - \DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetNumerical{#2}{#3}{#5}{#6}{##1}}% - \else - \DefineFamilyKey[{#1}]{#2}{#3}[{#4}]{% - \FamilySetNumerical{#2}{#3}{#5}{#6}{##1}}% - \fi -} -% \end{macrocode} -% \begin{macro}{\FamilySetNumerical} -% \changes{v3.11a}{2012/05/28}{call of \cs{FamilyUnknownKeyValue} outside of -% local group} -% Die eigentliche Arbeit dabei wird von diesem Makro erledigt. Dabei -% wird die Familie zu Argument 1, der Name des Schlüssels zu Argument 2, der -% Name des Makros, das definiert werden soll zu Argument 3, die Liste zu -% Argument 4 und der Wert, auf den gesetzt werden soll, zu Argument 5. -% \begin{macrocode} -\newcommand*{\FamilySetNumerical}[5]{% - \begingroup - \edef\@searched{#5}% - \let\@tempa=\@empty - \let\@tempb=\@empty - \@tempswafalse - \@for\@valuelist:=#4\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\@namedef{#3}{\@tempa}% - }% - \else - \edef\@tempa{\endgroup - \noexpand\FamilyUnknownKeyValue{#1}{#2}{#5}{\@tempa}% - }% - \fi - \@tempa - \let\FamilyElseValues\@empty -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\KOMA@ncmdkey} -% \changes{v3.02c}{2009/02/04}{definiert ebenfalls das Familienmitglied} -% Ein ähnliches Makro definiert einen Schlüssel, der ein nummerisches -% Makro auf einen bestimmten Wert setzt. Dabei können auch -% verschiedene symbolische Werte auf denselben nummerischen Wert -% abgebildet werden. Das erste Argument ist obligatorisch und der Name -% des Schlüssels. Das zweite Argument ist optional und der Defaultwert -% für den Schlüssel. Das dritte Argument ist obligatorisch und der -% Name des Makros, das definiert werden soll. Der Defaultwert dafür -% ist 0. Das vierte Argument ist obligatorisch und die Liste der -% symbolischen und nummerischen Wert. Die Liste hat die Form: -% \{\emph{Symbol}\}\{\emph{Wert}\},\{\emph{Symbol}\}\{\emph{Wert}\}\dots -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMA@ncmdkey}{% - \DefineFamilyMember{KOMA}% - \FamilyNumericalKey{KOMA}% -} -% -% \end{macrocode} -% \begin{macro}{\KOMA@set@ncmdkey} -% Die eigentliche Arbeit dabei wird wahlweise von diesem Makro erledigt. Dabei -% wird der Name des Schlüssels zu Argument 1, der Name des Makros, -% das definiert werden soll zu Argument 2, die Liste zu Argument 3 und -% der Wert, auf den gesetzt werden soll, zu Argument 4. -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMA@set@ncmdkey}{\FamilySetNumerical{KOMA}} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\FamilyStringKey} -% \changes{v3.08}{2010/11/05}{Neue Anweisung} -% \changes{v3.08b}{2011/03/31}{\cs{Family@String@Key} und -% \cs{Family@@String@@Key} vertauscht} -% \begin{macro}{\Family@String@Key} -% \changes{v3.08}{2010/11/05}{Neu (intern)} -% \begin{macro}{\Family@@String@@Key} -% \changes{v3.08}{2010/11/05}{Neu (intern)} -% Ein ähnliches Makro definiert einen Schlüssel, der ein Makro auf einen -% beliegigen Wert setzt. Das erste, optionale Argument ist das -% Familienmitglied, das zweite, obligatorische Argument ist die Familie, das -% dritte, obligatorische Argument ist der Name der Option, das vierte, -% optionale Artument ist der Defaultwert für den Schlüssel, das fünfte, -% obligatorische Argument ist der Name des Makros, das (in der Voreinstellung -% als leer) definiert werden soll. Die internen Makro werden benötigt, um das -% vierte, optionale Argument zu ermöglichen. Dabei ist dann das erste Argument -% nicht mehr optional, sondern obligatorisch. -% \begin{macrocode} -%<*base> -\newcommand*{\FamilyStringKey}[3][.\@currname.\@currext]{% - \@ifnextchar [%] - {\Family@@String@@Key{#1}{#2}{#3}}{\Family@String@Key{#1}{#2}{#3}}% -} -\newcommand*{\Family@@String@@Key}{} -\long\def\Family@@String@@Key#1#2#3[#4]#5{% - \DefineFamilyKey[{#1}]{#2}{#3}[{#4}]{\def#5{##1}}% -} -\newcommand{\Family@String@Key}[4]{% - \DefineFamilyKey[{#1}]{#2}{#3}{\def#4{##1}}% -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\KOMA@DeclareDeprecatedOption} -% \changes{v3.01a}{2008/11/20}{neu (intern)} -% \begin{macro}{\KOMA@@DeclareDeprecatedOption} -% \changes{v3.01a}{2008/11/20}{neu (intern)} -% \begin{macro}{\KOMA@@@DeclareDeprecatedOption} -% \changes{v3.01a}{2008/11/20}{neu (intern)} -% Mit Hilfe dieses Makros kann eine Option definiert werden, die -% eigentlich obsolete ist. Statt dieser Option wird dann ein Schlüssel -% verwendet. Das erste Argument ist optional und muss dann der Paketname -% sein. Ist es nicht gesetzt, so wird stattdessen die Klasse -% \cs{KOMAClassName} angenommen. Das zweite Argument ist der Name der -% Option. Das vierte Argument ist das Setzen des gewünschten Schlüssels. -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMA@DeclareDeprecatedOption}{% - \@ifnextchar [%] - {\KOMA@@DeclareDeprecatedOption}% - {\KOMA@@@DeclareDeprecatedOption{\ClassWarningNoLine{\KOMAClassName}}}% -} -\newcommand*{\KOMA@@DeclareDeprecatedOption}[1][]{% - \KOMA@@@DeclareDeprecatedOption{\PackageWarningNoLine{#1}}% -} -\newcommand*{\KOMA@@@DeclareDeprecatedOption}[3]{% - \DeclareOption{#2}{\KOMA@UseDeprecatedOption{#1}{#2}{#3}}% -} -% \end{macrocode} -% \begin{macro}{\KOMA@UseDeprecatedOption} -% \changes{v3.01a}{2008/11/20}{neu (intern)} -% Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind -% 1. Meldungsbefehl, 2. obsolete Option, 3. Setzen des Schlüssels. -% \begin{macrocode} -\newcommand*{\KOMA@UseDeprecatedOption}[3]{% - \let\scr@sr@co\CurrentOption - #1{% - You've used obsolete option `#2'.\MessageBreak - Usage of this option indicates an old document and\MessageBreak - changes compatibility level using\MessageBreak - `#3,version=first'.\MessageBreak - If you don't want this, you should simply replace\MessageBreak - usage of option `#2' by `#3'% - }% - \KOMAExecuteOptions{#3,version=first}% - \let\CurrentOption\scr@sr@co -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\KOMA@DeclareStandardOption} -% \changes{v3.01a}{2008/11/21}{neu (intern)} -% \begin{macro}{\KOMA@@DeclareStandardOption} -% \changes{v3.01a}{2008/11/21}{neu (intern)} -% \begin{macro}{\KOMA@@@DeclareStandardOption} -% \changes{v3.01a}{2008/11/21}{neu (intern)} -% Mit Hilfe dieses Makros kann eine Option definiert werden, die -% eigentlich obsolete ist. Statt dieser Option wird dann ein Schlüssel -% verwendet. Das erste Argument ist optional und muss dann der Paketname -% sein. Ist es nicht gesetzt, so wird stattdessen die Klasse -% \cs{KOMAClassName} angenommen. Das zweite Argument ist der Name der -% Option. Das vierte Argument ist das Setzen des gewünschten Schlüssels. -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMA@DeclareStandardOption}{% - \@ifnextchar [%] - {\KOMA@@DeclareStandardOption}% - {\KOMA@@@DeclareStandardOption{\ClassInfoNoLine{\KOMAClassName}}}% -} -\newcommand*{\KOMA@@DeclareStandardOption}[1][]{% - \KOMA@@@DeclareStandardOption{\PackageInfoNoLine{#1}}% -} -\newcommand*{\KOMA@@@DeclareStandardOption}[3]{% - \DeclareOption{#2}{\KOMA@UseStandardOption{#1}{#2}{#3}}% -} -% \end{macrocode} -% \begin{macro}{\KOMA@UseStandardOption} -% \changes{v3.01a}{2008/11/21}{neu (intern)} -% Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind -% 1. Meldungsbefehl, 2. obsolete Option, 3. Setzen des Schlüssels. -% \begin{macrocode} -\newcommand*{\KOMA@UseStandardOption}[3]{% - \let\scr@sr@co\CurrentOption - #1{% - You've used standard option `#2'.\MessageBreak - This is correct!\MessageBreak - Internally I'm using `#3'.\MessageBreak - If you'd like to set the option with \string\KOMAoptions,\MessageBreak - you'd have to use `#3' there\MessageBreak - instead of `#2', too% - }% - \KOMAExecuteOptions{#3}% - \let\CurrentOption\scr@sr@co -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\KOMA@DeclareObsoleteOption} -% \changes{v2.96}{2006/08/20}{\cs{CurrentOption wir geschützt}} -% \begin{macro}{\KOMA@@DeclareObsoleteOption} -% \changes{v2.98c}{2008/02/18}{neu (intern)} -% \begin{macro}{\KOMA@@@DeclareObsoleteOption} -% \changes{v2.98c}{2008/02/18}{neu (intern)} -% \begin{macro}{\KOMA@iv@DeclareObsoleteOption} -% \changes{v2.98c}{2008/02/18}{neu (intern)} -% Mit Hilfe dieses Makros kann eine Option definiert werden, die -% eigentlich obsolete ist. Statt dieser Option wird dann ein Schlüssel -% verwendet. Das erste Argument ist optional und muss dann entweder -% \cs{PackageInfo}, \cs{PackageInfoNoLine}, \cs{PackageWarning}, -% \cs{PackageWarningNoLine} oder das gleiche für Klassen sein. Das zweite -% Argument ist ebenfalls optional und der Name des Pakets oder der Klasse. Das -% dritte Argument ist der Name der Option. Das vierte Argument ist das Setzen -% des gewünschten Schlüssels. -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMA@DeclareObsoleteOption}{% - \@ifnextchar [%] - {\KOMA@@DeclareObsoleteOption}% - {\KOMA@@DeclareObsoleteOption[\@gobbletwo]}% -} -\newcommand*{\KOMA@@DeclareObsoleteOption}{} -\def\KOMA@@DeclareObsoleteOption[#1]{% - \@ifnextchar [%] - {\KOMA@@@DeclareObsoleteOption{#1}}% - {\KOMA@@@DeclareObsoleteOption{#1}[]}% -} -\newcommand*{\KOMA@@@DeclareObsoleteOption}{} -\def\KOMA@@@DeclareObsoleteOption#1[#2]#3#4{% - \ifstr{#2}{}{% - \KOMA@iv@DeclareObsoleteOption{#1}{\@currname}{#3}{#4}% - }{% - \KOMA@UseObsoleteOption{#1}{#2}{#3}{#4}% - }% -} -\newcommand*{\KOMA@iv@DeclareObsoleteOption}[4]{% - \DeclareOption{#3}{\KOMA@UseObsoleteOption{#1{#2}}{#3}{#4}}% -} -% \end{macrocode} -% \begin{macro}{\KOMA@UseObsoleteOption} -% \changes{v2.97c}{2007/04/19}{neu (intern)} -% Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind -% 1. Meldungsbefehl, 2. obsolete Option, 3. Setzen des Schlüssels. -% \begin{macrocode} -\newcommand*{\KOMA@UseObsoleteOption}[3]{% - \let\scr@sr@co\CurrentOption - #1{% - You've used obsolete option `#2'.\MessageBreak - \protect\KOMAExecuteOptions{#3} will be\MessageBreak - used instead.\MessageBreak - You may simply replace `#2'\MessageBreak - by `#3'% - }% - \KOMAExecuteOptions{#3}% - \let\CurrentOption\scr@sr@co -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\scr@sr@co} -% \changes{v2.96}{2006/08/20}{neu (intern)} -% Da das \texttt{xkeyval}-Paket leider \cs{CurrentOption} vernichtet, das aber -% innerhalb von \cs{ProcessOptions} und \cs{KOMAProcessOptions} nach dem -% Ausführen der Option noch benötigt wird, muss die Anweisung gesichert -% werden. Dafür wird ein Hilfsmakro benötigt. -% \begin{macrocode} -\newcommand*{\scr@sr@co}{} -% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KOMA@newobsoletecommand} -% Mit Hilfe dieses Makros kann ein Makro definiert werden, das -% eigentlich obsolete ist. Das Makro verwendet dann schlicht einen -% Schlüssel. Das erste Argument ist optional und muss dann entweder -% \cs{PackageInfo}, \cs{PackageInfoNoLine}, \cs{PackageWarning} oder -% \cs{PackageWarningNoLine} sein. Das zweite Argument ist das Makro. -% Das dritte Argument ist das Setzen des gewünschten Schlüssels. Das -% definierte Makro selbst hat Schaltercharakter, ist also nicht -% \cs{long} und versteht auch keine Argumente. -% \begin{macrocode} -%<*koma> -\newcommand*{\KOMA@newobsoletecommand}[3][\@gobbletwo]{% - \newcommand*{#2}{\KOMA@UseObsoleteCommand{#1}{\string#2}{#3}}% -} -% \end{macrocode} -% \begin{macro}{\KOMA@UseObsoleteCommand} -% \changes{v2.97c}{2007/04/19}{neu (intern)} -% Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind -% dieselben. -% \begin{macrocode} -\newcommand*{\KOMA@UseObsoleteCommand}[3]{% - #1{% - scrkbase% - }{% - You've used the obsolete command `#2'.\MessageBreak - \protect\KOMAoptions{#3} will be used instead.\MessageBreak - You should also replace `#2' by `\protect\KOMAoptions{#3}'% - }% - \KOMAoptions{#3}% -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrkbase.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkbib.dtx b/Master/texmf-dist/source/latex/koma-script/scrkbib.dtx deleted file mode 100644 index 278fa2f1c74..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkbib.dtx +++ /dev/null @@ -1,592 +0,0 @@ -% \CheckSum{319} -% \iffalse meta-comment -% ====================================================================== -% scrkbib.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkbib.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkbib.dtx -%<*driver> -% \fi -\ProvidesFile{scrkbib.dtx}[2011/08/31 v3.10 KOMA-Script (bibliography)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkbib.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei - \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/06/30}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Literaturverzeichnis} -% -% Das Literaturverzeichnis unterscheidet sich bei \KOMAScript{} nicht -% wesentlich von den Standardklassen. -% -% Briefe haben kein Literaturverzeichnis. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*!letter> -% \fi -% -% \iffalse -%<*option> -% \fi -% \subsection{Anweisungen, die für die Optionen benötigt werden} -% -% Einige Anweisungen werden über Optionen verändert. Dazu müssen sie aber -% bereits vor der Abarbeitung der Optionen definiert sein. -% -% \subsubsection{Literaturverzeichnisstile} -% -% \begin{macro}{\newbibstyle} -% \changes{v2.98c}{2008/02/15}{Neu} -% Neue Literaturverzeichnisstile müssen mit dieser Anweisung definiert werden, -% wenn sie von der Fehlermeldung korrekt angezeigt werden sollen. Das erste, -% optionale Argument ist der Name eines Elternstils. Das zweite -% Argument ist der Name des Stils. Das dritte Argument ist Code für den -% Stil. Darin sollten normalerweise Umdefinierungen für \cs{@openbib@code}, -% \cs{newblock}, \cs{bib@beginhook}, \cs{bib@endhook} enthalten sein. Die -% genannten Makros werden am Anfang des Stils zurückgesetzt. Danach wird der -% Elternstil geladen und dann die eigenen Definitionen. -% \begin{macrocode} -\newcommand{\newbibstyle}[3][]{% - \scr@ifundefinedorrelax{scr@bibstyle@#2}{% - \scr@ifundefinedorrelax{scr@bibstyle@#1}{% - \ClassError{\KOMAClassName}{% - parent bibliography style `#1' does not exist}{% - You've told me to define the new bibliography style `#2'\MessageBreak - to be a child of bibliography style `#1', but bibliography - style\MessageBreak - `#1' does not exist.\MessageBreak - You have to remove the parent declaration or use an existing parent! - See the KOMA-Script manual for more information.% - }% - }{% - \@namedef{scr@bibstyle@#2}{% - \let\@openbib@code\@empty - \let\newblock\@empty - \let\bib@beginhook\@empty - \let\bib@endhook\@empty - \csname scr@bibstyle@#1\endcsname - #3% - }% - \g@addto@macro\scr@bibstylelist{, `#2'}% - }% - }{% - \ClassError{\KOMAClassName}{bibliography style `#2' already exists}{% - You've told me to define the new bibliography style `#2',\MessageBreak - but this style already exists.\MessageBreak - You have to use another bibliography style name.\MessageBreak - See the KOMA-Script manual for more information.% - }% - }% -} -% \end{macrocode} -% \begin{macro}{\scr@bibstyle@} -% \changes{v2.98c}{2008/02/15}{Neu (intern)}% -% Nur ein Dummy, wenn kein Elternstil existiert. -% \begin{macrocode} -\newcommand*{\scr@bibstyle@}{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\bib@beginhook} -% \changes{v2.98c}{2008/02/15}{Neu (intern)}% -% \begin{macro}{\bib@endhook} -% \changes{v2.98c}{2008/02/15}{Neu (intern)}% -% Die beiden Haken, wie sie durch den Literaturverzeichnisstil vorgegeben -% werden. -% \begin{macrocode} -\newcommand*{\bib@beginhook}{} -\newcommand*{\bib@endhook}{} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\scr@bibstylelist} -% \changes{v2.98c}{2008/02/15}{Neu (intern)}% -% Liste der mit \cs{newbibstyle} definierten und daher bekannten -% Literaturverzeichnisstile. -% \begin{macro}{\@openbib@code} -% \changes{v2.3g}{1996/01/14}{Neu (intern)} -% \changes{v2.98c}{2008/02/15}{wird nun früher definiert} -% Code, der am Anfang des Literaturverzeichnisses ausgeführt wird und -% normalerweise ursprünglich für die \texttt{openbib}-Funktionalität verwendet -% wurde. Inzwischen wird er für die komplette Stilauswahl verwendet. -% \begin{macro}{\newblock} -% \changes{v2.3g}{1996/01/14}{Grundeinstellung geändert} -% \changes{v2.98c}{2008/02/15}{wird nun früher definiert} -% \begin{macrocode} -\newcommand*{\scr@bibstylelist}{\@gobble} -\newcommand*{\@openbib@code}{} -\newcommand*{\newblock}{} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\scr@bibstyle@openstyle} -% \changes{v2.98c}{2008/02/15}{Neu (intern)}% -% Vordefiniert sind zwei Stile. Mit dem Bibliographystil \texttt{openstyle} -% kann eine alternative Darstellung der Literatureinträge aktiviert -% werden. Dabei fügt \cs{newblock} keinen horizontalen Abstand mehr ein, -% sondern beginnt einen neuen Absatz (in Form einer neuen Zeile). -% \begin{macro}{\scr@bibstyle@oldstyle} -% \changes{v2.98c}{2008/02/15}{Neu (intern)} -% Der Stil \texttt{oldstyle} entspricht hingegen der Voreinstellung. -% \begin{macrocode} -\newbibstyle{openstyle}{% - \renewcommand*{\@openbib@code}{% - \advance\leftmargin\bibindent - \itemindent -\bibindent - \listparindent \itemindent - \parsep \z@ - }% - \renewcommand*{\newblock}{\par}% -} -\newbibstyle{oldstyle}{% - \renewcommand*{\newblock}{\hskip .11em\@plus.33em\@minus.07em}% -} -\scr@bibstyle@oldstyle -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \subsubsection{Überschrift des Literaturverzeichnisses} -% -% \begin{macro}{\bib@heading} -% \changes{v2.3h}{1995/01/21}{neu (intern)}% -% \changes{v2.6c}{2000/06/10}{die Präambel wird gesetzt}% -% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird verwendet}% -% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die -% \texttt{thebibliography}-Umgebung verschoben}% -% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}% -% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}% -% Befehl zum Setzen der Überschrift des Literaturverzeichnisses. -% \begin{macrocode} -\newcommand*\bib@heading{% -%<*article> - \section*{\refname}% - \@mkboth{\MakeMarkcase{\refname}}{\MakeMarkcase{\refname}}% -% -%<*book|report> - \chapter*{\bibname}% - \@mkboth{\MakeMarkcase{\bibname}}{\MakeMarkcase{\bibname}}% -% -} -% \end{macrocode} -% \end{macro} -% -% -% -% \subsection{Optionen für das Literaturverzeichnis} -% -% \begin{option}{bibliography} -% \changes{v2.98c}{2008/02/15}{Neu}% -% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}% -% Dies ist der Generalschlüssel für alle Optionen, die das -% Literaturverzeichnis betreffen. Neu ist, dass verschiedene Stile definiert -% werden können. Desweiteren kann man \texttt{totoc} und -% \texttt{totocnumbered} wieder mit \texttt{nottotoc} aufgeben. -% \begin{macrocode} -\KOMA@key{bibliography}{% - \scr@ifundefinedorrelax{scr@bibstyle@#1}{% - \let\FamilyElseValues\scr@bibstylelist - \KOMA@set@ncmdkey{bibliography}{@tempa}{% - {notoc}{0},{nottotoc}{0},{plainheading}{0},% - {totoc}{1},{toc}{1},{notnumbered}{1},% - {numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},% - {numberedtoc}{2}% - }{#1}% - \ifcase \@tempa\relax - \renewcommand*\bib@heading{% -%<*article> - \section*{\refname}% - \@mkboth{\MakeMarkcase{\refname}}{\MakeMarkcase{\refname}}% -% -%<*book|report> - \chapter*{\bibname}% - \@mkboth{\MakeMarkcase{\bibname}}{\MakeMarkcase{\bibname}}% -% - }% - \or% totoc - \renewcommand*\bib@heading{% -%<*article> - \addsec{\refname}% - \@mkboth{\MakeMarkcase{\refname}}{\MakeMarkcase{\refname}}% -% -%<*book|report> - \addchap{\bibname}% - \@mkboth{\MakeMarkcase{\bibname}}{\MakeMarkcase{\bibname}}% -% - }% - \or% numbered - \renewcommand*\bib@heading{% -%<*article> - \section{\refname}% - \@mkboth{\MakeMarkcase{\sectionmarkformat \refname}}% - {\MakeMarkcase{\sectionmarkformat \refname}}% -% -%<*book|report> - \chapter{\bibname}% - \@mkboth{\MakeMarkcase{\chaptermarkformat \bibname}}% - {\MakeMarkcase{\chaptermarkformat \bibname}}% -% - } - \fi - }{% - \csname scr@bibstyle@#1\endcsname - }% -} -% \end{macrocode} -% \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} -% \changes{v2.98c}{2008/02/15}{obsolete} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% Mit dieser Option kann eine alternative Darstellung der -% Literatureinträge aktiviert werden. Dabei fügt \cs{newblock} keinen -% horizontalen Abstand mehr ein, sondern beginnt einen neuen Absatz -% (in Form einer neuen Zeile). -% \begin{macrocode} -\KOMA@DeclareStandardOption{openbib}{bibliography=openstyle} -% \end{macrocode} -% \end{option} -% -% \begin{option}{bibtotoc} -% \changes{v2.3h}{1995/01/21}{neue Option} -% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt} -% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt} -% \changes{v2.7}{2001/01/03}{Klammerung korrigiert} -% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die -% thebibliography-Umgebung verschoben} -% \changes{v2.98c}{2008/02/15}{obsolete} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{bibtotocnumbered} -% \changes{v2.3h}{1995/01/21}{neue Option} -% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt} -% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt} -% \changes{v2.7}{2001/01/03}{Klammerung korrigiert} -% \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äambel in die -% thebibliography-Umgebung verschoben} -% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel} -% \changes{v2.98c}{2008/02/15}{obsolete} -% \changes{v3.01a}{2008/11/20}{deprecated} -% Die Option \texttt{bibtotoc} sorgt dafür, dass das -% Literaturverzeichnis im Inhaltsverzeichnis aufgeführt wird. -% Demgegenüber erweitert die Option \texttt{bibtotocnumbered} zu einem -% normalen Kapitel einschließlich Nummerierung. -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption{bibtotoc}{bibliography=totoc} -\KOMA@DeclareDeprecatedOption{bibtotocnumbered}{bibliography=totocnumbered} -% \end{macrocode} -% \end{option} -% \end{option} -% -% -% \iffalse -% -%<*body> -% \fi -% -% -% \subsection{Standardbezeichner} -% -% \begin{macro}{\refname} -% \begin{macro}{\bibname} -% Je nach Klasse wird \cs{refname} oder \cs{bibname} verwendet. -% \begin{macrocode} -%
\newcommand*\refname{References} -%\newcommand*\bibname{Bibliography} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \subsection{Definitionen für das Literaturverzeichnis} -% -% \begin{macro}{\setbibpreamble} -% \changes{v2.6c}{2000/06/10}{neu} -% \changes{v2.7j}{2001/05/27}{\cs{renewcommand} durch \cs{def} -% ersetzt zur Erhöhung der \textsf{natbib}-Kompatibilität} -% \begin{macro}{\bibpreamble} -% \changes{v2.6c}{2000/06/10}{neue (intern)} -% \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 Überschrift eingefügt -% wird. Dasselbe Makro wird von \textsf{natbib} als \cs{relax} -% definiert; aus Kompatibilitätsgründen wird hier vergleichbar -% verfahren und \cs{let} bzw. \cs{def} statt \cs{renewcommand} -% verwendet. -% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die -% \texttt{thebibliography}-Umgebung verschoben} -% Außerdem wird ab Version 2.7j die Präambel nicht mehr in -% \cs{bib@heading} gesetzt, sondern in der -% \texttt{thebibliography}-Umgebung. Dies dient ebenfalls der -% Kompatibilität mit natbib. Trotz aller Kompatibilität ist -% \cs{bibpreamble} als internes Makro zu betrachten. -% \begin{macrocode} -\newcommand*{\bibpreamble}{\relax} -\let\bibpreamble\relax -\newcommand{\setbibpreamble}[1]{\def\bibpreamble{#1}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{Length}{bibindent} -% Der Einzug der Einträge bei \texttt{openbib}. Voreingestellt sind -% 1,5\,em. -% \begin{macrocode} -\newdimen\bibindent -\bibindent=1.5em -% \end{macrocode} -% \end{Length} -% -% \begin{environment}{thebibliography} -% \changes{v2.2a}{1995/02/01}{in \textsf{scrartcl} \cs{bibname} -% vollständig durch \cs{refname} ersetzt} -% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{bib@heading}} -% \changes{v2.8q}{2002/01/10}{Erkennung und gesonderte Behandlung -% leerer Präambeln} -% \changes{v2.9o}{2003/03/06}{Vergleich \cs{bibpreamble} mit \cs{@empty} -% korrigiert} -% \changes{v2.98c}{2008/02/15}{Neue Haken \cs{bib@before@hook} und -% \cs{bib@after@hook} eingefügt} -% Nun werden noch die Umgebung für das Literaturverzeichnis und der -% Befehl für die einzelnen Einträge definiert. -% \begin{macrocode} -\newenvironment{thebibliography}[1]{% - \if@bib@break@ - \bib@beginhook - \else -%<*book|report> - \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else - \setchapterpreamble{\bibpreamble}% - \fi\fi -% - \bib@heading -%<*article> - \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else - \noindent\bibpreamble\par\nobreak - \fi\fi -%
- \bib@beginhook - \bib@before@hook - \fi -% \end{macrocode} -% \begin{macro}{\BreakBibliography} -% \changes{v2.98c}{2008/02/15}{Neu} -% An dieser Stelle wird \cs{BreakBibliography} passend umdefiniert. -% \begin{macrocode} - \renewcommand{\BreakBibliography}[1]{% - \@bib@break - \end{thebibliography}% - \begingroup ##1\endgroup - \begin{thebibliography}{#1} - }% -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -% Hier geht es jetzt mit \texttt{thebibliography} weiter. - \list{% - \@biblabel{\@arabic\c@enumiv}% - }{% - \settowidth\labelwidth{\@biblabel{#1}}% - \leftmargin\labelwidth - \advance\leftmargin\labelsep - \@openbib@code - \if@bib@break@ - \edef\@tempa{% - \noexpand\usecounter{enumiv}% - \noexpand\setcounter{enumiv}{\the\c@enumiv}% - }\@tempa - \no@bib@break - \else - \usecounter{enumiv}% - \fi - \let\p@enumiv\@empty - \renewcommand*\theenumiv{\@arabic\c@enumiv}% - }% - \sloppy\clubpenalty4000 \widowpenalty4000 - \sfcode`\.=\@m -}{% - \if@bib@break@ - \def\@noitemerr{% - \@latex@warning{% - \string\BreakBibliography\space at begin of `thebibliography' - environment\MessageBreak - or following \string\BreakBibliography}% - }% - \else - \def\@noitemerr{% - \@latex@warning{% - Empty `thebibliography' environment or - \string\BreakBibliography\MessageBreak - before end of `thebibliography' environment}% - }% - \fi - \endlist - \if@bib@break@ - \else - \bib@after@hook - \let\bib@before@hook\@empty - \let\bib@after@hook\@empty - \fi - \bib@endhook -} -% \end{macrocode} -% \begin{macro}{\if@bib@break@} -% \changes{v2.98c}{2008/02/15}{Neu (intern)} -% \begin{macro}{\no@bib@break} -% \changes{v2.98c}{2008/02/15}{Neu (intern)} -% \begin{macro}{\@bib@break} -% \changes{v2.98c}{2008/02/15}{Neu (intern)} -% Dieser Hilfsschalter arbeitet immer global! -% \begin{macrocode} -\newif\if@bib@break@ -\newcommand{\no@bib@break}{\global\let\if@bib@break@\iffalse} -\newcommand*{\@bib@break}{\global\let\if@bib@break@\iftrue} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\bib@before@hook} -% \changes{v2.98c}{2008/02/15}{Neu (intern)} -% \begin{macro}{\bib@after@hook} -% \changes{v2.98c}{2008/02/15}{Neu (intern)} -% \begin{macrocode} -\newcommand*{\bib@before@hook}{} -\newcommand*{\bib@after@hook}{} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{environment} -% -% \begin{macro}{\BreakBibliography} -% \changes{v2.98c}{2008/02/15}{Neu} -% Diese Anweisung unterbricht normalerweise das Literaturverzeichnis für ein -% paar eigene Anweisungen (z. B. Unterüberschriften). Wenn jedoch nicht das -% \KOMAScript-Literaturverzeichnis verwendet wird, dann gibt es eine Warnung -% aus. -% \begin{macrocode} -\newcommand{\BreakBibliography}[1]{% - \ClassWarning{\KOMAClassName}{% - You've used \string\BreakBibliography\space either outside of\MessageBreak - the bibliography or `thebibliography' was redefined\MessageBreak - incompatible, e.g., using a bibliography package.\MessageBreak - \string\BreakBibliography\space ignored% - }% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\AfterBibliographyPreamble} -% \changes{v2.98c}{2008/02/15}{Neu} -% \begin{macro}{\AtEndBibliography} -% \changes{v2.98c}{2008/02/15}{Neu} -% Zwei neue Anweisungen, um am Anfang des Literaturverzeichnisses, nach -% Überschrift und Präambel, und am Ende des Literaturverzeichnisses, nach -% Abschluss der Liste, Code einschleusen zu können. Das funktioniert natürlich -% nur so lange, wie keine Paket verwendet wird, das die Umgebung umdefiniert. -% \begin{macrocode} -\newcommand{\AfterBibliographyPreamble}{\g@addto@macro\bib@before@hook} -\newcommand{\AtEndBibliography}{\g@addto@macro\bib@after@hook} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \iffalse -% -% \fi -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrkbib.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkcile.dtx b/Master/texmf-dist/source/latex/koma-script/scrkcile.dtx deleted file mode 100644 index 7841ccf4a04..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkcile.dtx +++ /dev/null @@ -1,159 +0,0 @@ -% \CheckSum{36} -% \iffalse meta-comment -% ====================================================================== -% scrkcile.dtx -% Copyright (c) Markus Kohm, 2006-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkcile.dtx -% Copyright (c) Markus Kohm, 2006-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkcile.dtx -%<*driver> -% \fi -\ProvidesFile{scrkcile.dtx}[2006/03/28 v2.95 KOMA-Script (circular letters)] -% \iffalse -\documentclass{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkcile.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2006/03/22}{% -% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} -% -% \section{Serienbriefe und Adressdateien} -% -% Die \KOMAScript-Brief-Klasse unterstützt die Verwendung von Adressdateien -% beispielsweise für Serienbriefe. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*letter> -%<*option> -% \fi -% -% \subsection{Option} -% Die Implementierung ist von Optionen unabhängig. -% -% -% \iffalse -% -%<*body> -% \fi -% -% \subsection{Makos für Serienbriefe und Adressdateien} -% -% \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über hinaus werden mit diesen Befehlen -% Abkürzungen für Adressen definiert. Durch die Definition mit Hilfe von -% \cs{addrentry} bzw. \cs{addrchar} müssen vom Anwender für 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öglichen 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} -% -% \iffalse -% -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrkcile.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkcomp.dtx b/Master/texmf-dist/source/latex/koma-script/scrkcomp.dtx deleted file mode 100644 index b9792e7ba0d..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkcomp.dtx +++ /dev/null @@ -1,430 +0,0 @@ -% \CheckSum{106} -% \iffalse meta-comment -% ====================================================================== -% scrkcomp.dtx -% Copyright (c) Markus Kohm, 2006-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkcomp.dtx -% Copyright (c) Markus Kohm, 2006-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkcomp.dtx -%<*driver> -% \fi -\ProvidesFile{scrkcomp.dtx}[2012/07/29 v3.11b KOMA-Script (compatibility)] -% \iffalse -\documentclass{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkcomp.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2006/03/16}{% -% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} -% -% \section{Kompatibilität zu früheren Versionen} -% -% Manchmal ist es sinnvoll, dass sich eine neue Version von \KOMAScript{} -% etwas anders verhält als frühere Versionen. Gleichzeitig ist es aber für den -% Anwender manchmal auch notwendig, dass sich neue Versionen ganz genau so -% verhalten wie frühere. Daher wird eine Option geboten, mit der man die -% Kompatibilität selbst steuern kann. Voreingestellt ist jeweils maximale -% Kompatibilität. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*option> -% \fi -% -% \subsection{Option} -% Die gesamte Kompatibilitätssteuerung erfolgt mit einer einzigen Option, bei -% der man angibt, zu welcher Version Kompatibilität hergestellt werden -% soll. Dies bedeutet ggf. dann auch, dass einzelne neuere Möglichkeiten nicht -% zur Verfügung stehen. -% \changes{v3.01b}{2008/12/09}{Kompatibilitätseinstellungen werden in Paketen -% nur definiert, wenn sie noch nicht vorhanden sind} -% -% \begin{option}{version} -% \changes{v2.9u}{2005/03/05}{Neue Option} -% \changes{v2.95}{2006/03/16}{Option kann nur beim Laden der Klasse gesetzt -% werden} -% \begin{macro}{\scr@compatibility} -% \changes{v2.9u}{2005/03/05}{Neues Macro} -% \changes{v3.01a}{2008/11/20}{Voreinstellung auf \textit{last} geändert} -% \begin{macro}{\scr@ta@compatibility} -% \changes{v3.01b}{2008/12/09}{Neues Macro} -% In einigen Fällen sind Verbesserungen nicht kompatibel mit früheren -% Versionen. Deshalb sind solche Verbesserungen nur verfügbar, wenn mit diesem -% Schalter die neue Version ausgewählt wird. Aber es gilt: Entweder kompatibel -% oder in allen Dingen neu. Mischmasch machen wir nicht. Die aktuell -% eingestellte Kompatibilität wird in \cs{scr@compatibility} als Zahl -% gespeichert. In den Makros \cs{scr@v@\emph{Version}} werden die -% zugehörigen Nummern gespeichert. -% \begin{macrocode} -%\newcommand* -%\providecommand* - {\scr@compatibility}{\scr@v@last} -%\newcommand*{\scr@ta@compatibility}{\scr@compatibility} -\KOMA@key{version}[last]{% - \scr@ifundefinedorrelax{scr@v@#1}{% - \def\scr@compatibility{0}% -% \ClassWarningNoLine{\KOMAClassName}{% -% \PackageWarningNoLine{% -% scrextend% -% typearea% -% }{% - You have set option `version' to value `#1', but\MessageBreak - this value of version is not supported.\MessageBreak - Because of this, version was set to `first'% - }% - }{% -% \ClassInfoNoLine{\KOMAClassName}{% -% \PackageInfoNoLine{scrextend}{% - Switching compatibility level to `#1'% - }% -% \edef\scr@compatibility{\@nameuse{scr@v@#1}}% -% \edef\scr@ta@compatibility{\@nameuse{scr@v@#1}}% - }% -} -% \end{macrocode} -% Eine zusätzliche Bedingung gibt es noch: Die Kompatibilität kann nur beim -% Laden gesetzt werden. Danach geht es nicht mehr: -% \begin{macrocode} -%\AtEndOfClass{% -%\AtEndOfPackage{% - \KOMA@key{version}[]{% -% \ClassError{\KOMAClassName}{% -% \PackageError{% -% scrextend% -% typearea% -% }{% - Option `version' too late% - }{% - Option `version' may be set only while loading the -% class.\MessageBreak -% package.\MessageBreak - But you've tried to set it up later.% - }% - }% -} -% \end{macrocode} -% -% \begin{macro}{\scr@v@first} -% \changes{v2.9u}{2005/03/05}{Neues Macro} -% \begin{macro}{\scr@v@2.9} -% \changes{v2.9u}{2005/03/05}{Neues Macro} -% \begin{macro}{\scr@v@2.9t} -% \changes{v2.9u}{2005/03/05}{Neues Macro} -% \begin{macro}{\scr@v@2.95} -% \changes{v2.95}{2006/03/23}{Neues Macro} -% \begin{macro}{\scr@v@2.95a} -% \changes{v2.96a}{2006/11/27}{Neues Macro} -% \begin{macro}{\scr@v@2.95b} -% \changes{v2.96a}{2006/11/27}{Neues Macro} -% \begin{macro}{\scr@v@2.96} -% \changes{v2.96a}{2006/11/27}{Neues Macro} -% \begin{macro}{\scr@v@2.96a} -% \changes{v2.96a}{2006/11/27}{Neues Macro} -% \begin{macro}{\scr@v@2.97} -% \changes{v2.97}{2007/03/02}{Neues Macro} -% \begin{macro}{\scr@v@2.97a} -% \changes{v2.97a}{2007/03/07}{Neues Macro} -% \begin{macro}{\scr@v@2.97b} -% \changes{v2.97b}{2007/03/25}{Neues Macro} -% \begin{macro}{\scr@v@2.97c} -% \changes{v2.97c}{2007/05/12}{Neues Macro} -% \changes{v2.97d}{2007/10/09}{Wert geändert} -% \begin{macro}{\scr@v@2.97d} -% \changes{v2.97d}{2007/10/03}{Neues Macro} -% \changes{v2.97d}{2007/10/09}{Wert geändert} -% \begin{macro}{\scr@v@2.97e} -% \changes{v2.97e}{2007/11/27}{Neues Macro} -% \begin{macro}{\scr@v@2.98} -% \changes{v2.98}{2007/12/24}{Neues Macro} -% \begin{macro}{\scr@v@2.98a} -% \changes{v2.98a}{2008/01/08}{Neues Macro} -% \begin{macro}{\scr@v@2.98b} -% \changes{v2.98b}{2008/01/30}{Neues Macro} -% \begin{macro}{\scr@v@2.98c} -% \changes{v2.98c}{2008/02/01}{Neues Macro} -% \begin{macro}{\scr@v@3.00} -% \changes{v3.00}{2008/11/04}{Neues Macro} -% \begin{macro}{\scr@v@3.01} -% \changes{v3.01}{2008/11/14}{Neues Macro} -% \begin{macro}{\scr@v@3.01a} -% \changes{v3.01a}{2008/11/20}{Neues Macro} -% \begin{macro}{\scr@v@3.01b} -% \changes{v3.01b}{2008/11/24}{Neues Macro} -% \begin{macro}{\scr@v@3.01c} -% \changes{v3.01c}{2008/12/09}{Neues Macro} -% \begin{macro}{\scr@v@3.02} -% \changes{v3.02}{2009/01/01}{Neues Macro} -% \begin{macro}{\scr@v@3.02b} -% \changes{v3.02b}{2009/01/24}{Neues Macro} -% \begin{macro}{\scr@v@3.02c} -% \changes{v3.02c}{2009/01/28}{Neues Macro} -% \begin{macro}{\scr@v@3.03} -% \changes{v3.03}{2009/04/01}{Neues Macro} -% \begin{macro}{\scr@v@3.03a} -% \changes{v3.03a}{2009/04/02}{Neues Macro} -% \begin{macro}{\scr@v@3.03b} -% \changes{v3.03b}{2009/04/12}{Neues Macro} -% \begin{macro}{\scr@v@3.04} -% \changes{v3.04}{2009/07/07}{Neues Macro} -% \begin{macro}{\scr@v@3.05} -% \changes{v3.05}{2009/07/08}{Neues Macro} -% \begin{macro}{\scr@v@3.04a} -% \changes{v3.04a}{2009/07/24}{Neues Macro} -% \begin{macro}{\scr@v@3.05a} -% \changes{v3.05a}{2010/03/10}{Neues Macro} -% \begin{macro}{\scr@v@3.06} -% \changes{v3.06}{2010/06/17}{Neues Macro} -% \begin{macro}{\scr@v@3.07} -% \changes{v3.07}{2010/09/14}{Neues Macro} -% \begin{macro}{\scr@v@3.08} -% \changes{v3.08}{2010/10/28}{Neues Macro} -% \begin{macro}{\scr@v@3.08a} -% \changes{v3.08a}{2011/01/25}{Neues Macro} -% \begin{macro}{\scr@v@3.08b} -% \changes{v3.08b}{2011/02/22}{Neues Macro} -% \begin{macro}{\scr@v@3.09} -% \changes{v3.09}{2011/04/02}{Neues Macro} -% \begin{macro}{\scr@v@3.09a} -% \changes{v3.09a}{2011/04/12}{Neues Macro} -% \begin{macro}{\scr@v@3.10} -% \changes{v3.10}{2011/08/30}{Neues Macro} -% \begin{macro}{\scr@v@3.10a} -% \changes{v3.10a}{2012/03/08}{Neues Macro} -% \begin{macro}{\scr@v@3.10b} -% \changes{v3.10b}{2012/03/13}{Neues Macro} -% \begin{macro}{\scr@v@3.11} -% \changes{v3.11}{2012/05/15}{Neues Macro} -% \begin{macro}{\scr@v@3.11a} -% \changes{v3.11a}{2012/05/25}{Neues Macro} -% \begin{macro}{\scr@v@3.11b} -% \changes{v3.11b}{2012/07/29}{Neues Macro} -% \begin{macro}{\scr@v@last} -% \changes{v2.9u}{2005/03/05}{Neues Macro} -% Nun die unterschiedlichen möglichen Werte (|\scr@v@last| ist jeweils die -% höchste vorhandene Nummer): -% \begin{macrocode} -\@namedef{scr@v@first}{0} -\@namedef{scr@v@2.9}{0} -\@namedef{scr@v@2.9t}{0} -\@namedef{scr@v@2.9u}{1} -\@namedef{scr@v@2.95}{2} -\@namedef{scr@v@2.95a}{2} -\@namedef{scr@v@2.95b}{2} -\@namedef{scr@v@2.96}{2} -\@namedef{scr@v@2.96a}{3} -\@namedef{scr@v@2.97}{3} -\@namedef{scr@v@2.97a}{3} -\@namedef{scr@v@2.97b}{3} -\@namedef{scr@v@2.97c}{4} -\@namedef{scr@v@2.97d}{5} -\@namedef{scr@v@2.97e}{6} -\@namedef{scr@v@2.98}{6} -\@namedef{scr@v@2.98a}{6} -\@namedef{scr@v@2.98b}{6} -\@namedef{scr@v@2.98c}{7} -\@namedef{scr@v@3.00}{8} -\@namedef{scr@v@3.01}{8} -\@namedef{scr@v@3.01a}{8} -\@namedef{scr@v@3.01b}{9} -\@namedef{scr@v@3.01c}{9} -\@namedef{scr@v@3.02}{9} -\@namedef{scr@v@3.02b}{9} -\@namedef{scr@v@3.02c}{10} -\@namedef{scr@v@3.03}{10} -\@namedef{scr@v@3.03a}{10} -\@namedef{scr@v@3.03b}{10} -\@namedef{scr@v@3.04}{10} -\@namedef{scr@v@3.04a}{10} -\@namedef{scr@v@3.05}{10} -\@namedef{scr@v@3.05a}{10} -\@namedef{scr@v@3.06}{10} -\@namedef{scr@v@3.07}{10} -\@namedef{scr@v@3.08}{10} -\@namedef{scr@v@3.08a}{10} -\@namedef{scr@v@3.08b}{10} -\@namedef{scr@v@3.09}{10} -\@namedef{scr@v@3.09a}{10} -\@namedef{scr@v@3.10}{10} -\@namedef{scr@v@3.10a}{10} -\@namedef{scr@v@3.10b}{10} -\@namedef{scr@v@3.11}{10} -\@namedef{scr@v@3.11a}{10} -\@namedef{scr@v@3.11b}{10} -\@namedef{scr@v@last}{10} -% \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} -% \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{option} -% -% -% \iffalse -% -%<*body> -% \fi -% -% \subsection{Kompatibilität mit früheren Versionen von \textsf{scrlttr2}} -% In früheren Versionen von \textsf{scrlttr2} gab es weitere Befehle, die -% eventuell von \texttt{lco}-Dateien oder Paketen verwendet werden. -% Gemeldete Inkompatibitlitäten sind nach Möglichkeit zu lösen. -% -% \iffalse -%<*letter> -% \fi -% \begin{macro}{\@setif} -% \changes{v2.8q}{2001/10/08}{Neu} -% \changes{v2.95}{2006/03/31}{Nur vor Version 2.95} -% Dies war ein Makro, mit dem man einen Schalter über die symbolischen -% Werte \texttt{true}, \texttt{false}, \texttt{on} und \texttt{off} setzen -% kann. Das erste, optionale Argument war der Name des Schalters ohne Präfix -% "`\texttt{if}"'. Das zweite Argument war der Name der Option und das dritte -% der gewünschte Wert. War das optionale Argument nicht gesetzt oder leer, so -% wurde der Optionenname mit einem vorangestellten "`\texttt{@}"' als Name des -% Schalters verwendet. Dieses Makro wird nun mit Hilfe von \cs{KOMA@set@ifkey} -% nachgebildet. Dadurch ist es nicht absolut fehlerkompatibel, das es nun mehr -% Werte versteht als vorher. -% \begin{macrocode} -\expandafter\ifnum \@nameuse{scr@v@2.95}>\scr@compatibility\relax - \newcommand*{\@setif}[2][]{% - \begingroup - \edef\@tempa{#1}\ifx\@tempa\@empty - \def\@tempa{\KOMA@set@ifkey{#2}{@#2}}% - \else - \def\@tempa{\KOMA@set@ifkey{#2}{#1}}% - \fi - \expandafter\endgroup\@tempa - }% -\fi -% \end{macrocode} -% \end{macro} -% \iffalse -% -% \fi -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrkcomp.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx new file mode 100644 index 00000000000..8faf8096b23 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx @@ -0,0 +1,2829 @@ +% \CheckSum{2390} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-basics.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-basics.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-basics.dtx 1502 2013-11-06 11:00:12Z mjk $ +%\NeedsTeXFormat{LaTeX2e}[1995/06/01] +%<*driver> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{scrkernel-basics.dtx}[% +% +%<*driver|(package&option)> +%\ProvidesPackage{% +% scrbase% +% scrkbase% +%}[% +%!KOMAScriptVersion + package (% +% KOMA-Script-independent +% KOMA-Script-dependent + basics and keyval usage)] +% +%<*dtx> +\ifx\documentclass\undefined + \input scrdocstrip.tex + \@@input scrkernel-version.dtx + \@@input scrstrip.inc + \KOMAdefVariable{COPYRIGHTFROM}{2002} + \generate{\usepreamble\defaultpreamble + \file{scrbase.sty}{% + \from{scrkernel-version.dtx}{package,scrbase}% + \from{scrkernel-basics.dtx}{package,option,base}% + \from{scrkernel-language.dtx}{package,option,base}% + \from{scrlfile.dtx}{load}% + \from{scrkernel-basics.dtx}{package,body,base}% + \from{scrkernel-language.dtx}{package,body,base}% + \from{scrlogo.dtx}{logo}% + }% + } + \@@input scrstrop.inc +\else + \let\endbatchfile\relax +\fi +\endbatchfile +% +%<*driver> +\documentclass{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-basics.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei + \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v1.0}{2002/07/06}{Beginn der ersten Version} +% \changes{v3.12}{203/03/05}{Verwendung von \cs{@tempa}, \cs{@tempb}, +% \cs{@tempc} eliminiert} +% +% \section{Grundlegenden \KOMAScript-Erweiterungen} +% +% Neue Versionen von \KOMAScript{} machen zunehmend Gebrauch vom +% \textsf{keyval}-Paket. Das \textsf{keyval}-Paket ist Bestandteil des +% \textsf{graphics}-Pakets und muss als solches auf allen +% \TeX-Systemen mit \LaTeX{} enthalten sein. Es genügt jedoch in +% einigen Punkten nicht den Anforderungen von \KOMAScript{}. Deshalb +% werden hier Erweiterungen vorgenommen, die von \KOMAScript-Klassen +% und \KOMAScript-Paketen verwendet werden können. +% +% Darüber hinaus werden immer mehr Teile von \KOMAScript{} von mehr als einem +% Paket oder von Paketen und Klassen verwendet. Diese grundlegenden Dinge +% wurden daher in zwei Pakete, \textsf{scrbase} (für Dinge, die auch von +% anderen Klassen und Paketen genutzt werden können) und \textsf{scrkbase} +% (für Dinge, die \KOMAScript vorbehalten bleiben), ausgegliedert. Dadurch +% werden die Pakete und Klassen selbst kleiner und die können trotzdem +% unabhängig voneinander verwendet werden. Selbstverständlich kann man dieses +% Paket auch ohne den Rest von \KOMAScript{} zum Einsatz bringen. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*load> +% \fi +% +% \subsection{Laden des Pakets} +% Wer das Paket lädt, tut das allerdings in der Regel sogar bereits +% vor der Definition der Optionen mit: +% \begin{macrocode} +\RequirePackage{scrkbase}[\KOMAScriptVersion] +% \end{macrocode} +% +% \iffalse +% +%<*option> +% \fi +% +% \subsection{\eTeX-Test} +% \changes{v3.02c}{2009/02/19}{Fehlermeldung, wenn nicht \eTeX{} verwendet +% wird} +% +% \begin{macrocode} +%<*base> +\begingroup + \def\reserved@b{}% + \def\reserved@a#1{% + \PackageError{scrbase}{seems you are not running e-TeX#1}{% + Since 2004 the LaTeX team recommends to use e-TeX.\MessageBreak + KOMA-Script since version 2.95 uses several e-TeX features.\MessageBreak + At actual systems `latex' should already use e-TeX.\MessageBreak + At deprecated systems it may be called `elatex'.\MessageBreak + Use either unsupported KOMA-Script up to version 2.9u or\MessageBreak + ask you administrator for LaTeX using e-TeX#1.\MessageBreak + Not using e-TeX#1 is a fatal error!\MessageBreak + Processing cannot be continued!}% + \endgroup + \batchmode \errmessage{}\csname @@end\endcsname\end\relax + \csname endinput\endcsname + }% + \expandafter\ifx\csname eTeXversion\endcsname\relax\else + \ifnum\eTeXversion <2 + \def\reserved@b{ V 2}% + \else + \let\reserved@a\endgroup + \fi + \fi +\expandafter\reserved@a\expandafter{\reserved@b} +% +% \end{macrocode} +% +% \subsection{Der abhängige Teil lädt den unabhängigen Teil} +% +% \begin{macrocode} +%\RequirePackage{scrbase}[\KOMAScriptVersion] +% \end{macrocode} +% +% \subsection{Laden von \textsf{keyval}} +% +% Hier wird nicht nur das Paket geladen, was ruckzuck mit: +% \begin{macrocode} +%\RequirePackage{keyval} +% \end{macrocode} +% erledigt ist. +% +% +% \subsection{Test von Anweisungen} +% +% \begin{macro}{\scr@ifundefinedorrelax} +% \changes{v2.95c}{2006/08/12}{neu (intern)} +% \changes{v2.97b}{2007/03/08}{vermurkste Logik korrigiert} +% \changes{v2.97c}{2007/04/18}{vermurkste Funktion korrigiert} +% \changes{v2.97c}{2007/04/18}{von \cs{scr@ifundefined} umbenannt} +% \changes{v3.02c}{2009/02/19}{Sonderbehandlung für nicht \eTeX entfernt} +% Dieses Makro arbeitet wie \cs{@ifundefined}, definiert dabei aber +% ein undefiniertes Makro nicht als \cs{relax}. Es muss bereits hier definiert +% werden, weil es gleich verwendet wird. +% \begin{macrocode} +%<*base> +\newcommand{\scr@ifundefinedorrelax}[1]{% + \ifcsname #1\endcsname + \expandafter\ifx\csname #1\endcsname\relax + \expandafter\expandafter\expandafter\@firstoftwo + \else + \expandafter\expandafter\expandafter\@secondoftwo + \fi + \else + \expandafter\@firstoftwo + \fi +} +% +% \end{macrocode} +% \end{macro}^^A \scr@ifundefinedorrelax +% +% +% \subsection{Erweiterung von Meldungen} +% +% \begin{macro}{\PackageErrorNoLine} +% \changes{v3.12}{2013/09/19}{neu} +% Dieses Makro wird zwar bereits seit langem für einige wenige Fehlermeldungen +% verwendet, existierte bisher aber nicht. Es wird für Fehlermeldungen +% verwendet, denen keine eindeutige Zeilennummer zugeordnet werden kann. In +% der Regel ist dies zu vermeiden und besser \cs{PackageError} zu verwenden. +% \begin{macrocode} +%<*base> +\newcommand*\PackageErrorNoLine[2]{% + \PackageError{#1}{#2\@gobble}% +} +% +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Definition von KOMA-\textsf{keyval}-Schlüsseln (Basis)} +% +% Üblicherweise verwendet \KOMAScript{} für alle +% \textsf{keyval}-Schlüssel die gleiche Bereichskennung +% "`\texttt{KOMA}"'. Dadurch ist es möglich, dass Pakete die Schlüssel +% der Klassen umdefinieren und dass jeder Teil von \KOMAScript{} die +% Schlüssel jedes anderen Teils ausführen kann -- sobald sie definiert +% sind. +% +% \begin{macro}{\DefineFamily} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \begin{macro}{\DefineFamilyMember} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \begin{macro}{\DefineFamilyKey} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \changes{v3.12}{2013/03/04}{Setzen von \cs{FamilyKeyState}} +% \begin{macro}{\scr@if@family} +% \changes{v3.00}{2008/04/30}{Neu (intern)} +% \begin{macro}{\scr@if@familymember} +% \changes{v3.00}{2008/04/30}{Neu (intern)} +% Familie, Familienmitglied und \textsf{keyval}-Schlüssel für ein +% Familienmitglied definieren. Dabei wird als Familienmitglied per Default der +% (Datei-)Name des aktuellen Pakets bzw. der aktuellen Klasse verwendet. +% \begin{macrocode} +%<*base> +\newcommand*{\DefineFamily}[1]{% + \scr@ifundefinedorrelax{#1@key@familylist}{% + \@namedef{#1@key@familylist}{}% + }{}% +} +\newcommand*{\scr@if@family}[2]{% + \scr@ifundefinedorrelax{#1@key@familylist}{% + \PackageError{scrbase}{% + unknown family `#1'% + }{% + You've tried to #2 for family `#1'.\MessageBreak + This my be done only for previous defined families.\MessageBreak + You should call `\string\DefineFamily{#1}' first.% + }% + }% +} +\newcommand*{\DefineFamilyMember}[2][.\@currname.\@currext]{% + \scr@if@family{#2}{define a family member}{% + \edef\reserved@a{% + \noexpand\in@{#2#1,}{\csname #2@key@familylist\endcsname}}% + \reserved@a + \ifin@\else + \expandafter\edef\csname #2@key@familylist\endcsname{% + \@nameuse{#2@key@familylist}#2#1,}% + \fi + }% +} +\newcommand*{\scr@if@familymember}[3]{% + \scr@if@family{#2}{#3}{% + \edef\reserved@a{% + \noexpand\in@{#2#1,}{\csname #2@key@familylist\endcsname}}% + \reserved@a + \ifin@ + \expandafter\@firstofone + \else + \PackageError{scrbase}{% + unknown member `#1' at family `#2'% + }{% + You've tried to #3 for member `#1' of family `#2'.\MessageBreak + This my be done only for previous defined family members.\MessageBreak + You should call `\string\DefineFamilyMember[{#1}]{#2}' first.% + }% + \expandafter\@gobble + \fi + }% +} +\newcommand*{\DefineFamilyKey}[3][.\@currname.\@currext]{% + \@ifnextchar[%] + {% + \edef\reserved@a{#1}% + \expandafter\scr@define@family@key + \expandafter{\reserved@a}{#2}{#3}% + }{% + \edef\reserved@a{#1}% + \expandafter\scr@define@family@key@nodefault + \expandafter{\reserved@a}{#2}{#3}% + }% +} +\newcommand*{\scr@define@family@key}{} +\def\scr@define@family@key#1#2#3[#4]#5{% + \scr@if@familymember{#1}{#2}{define a key}{% + \define@key{#2#1}{#3}[{#4}]{% + \def\FamilyOfKey{#2}\def\FamilyMemberOfKey{#1}% + \FamilyKeyStateUnknown + #5% + \def\FamilyOfKey{#2}\def\FamilyMemberOfKey{#1}% + }% + }% +} +\newcommand*{\scr@define@family@key@nodefault}[4]{% + \scr@if@familymember{#1}{#2}{define a key}{% + \define@key{#2#1}{#3}{% + \def\FamilyOfKey{#2}\def\FamilyMemberOfKey{#1}% + \FamilyKeyStateUnknown + #4 + \def\FamilyOfKey{#2}\def\FamilyMemberOfKey{#1}% + }% + \@namedef{KV@#2#1@#3@default}{% + \def\FamilyOfKey{#2}\def\FamilyMemberOfKey{#1}% + \FamilyKeyStateNeedValue + }% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \scr@if@familymember +% \end{macro}^^A \scr@if@family +% \end{macro}^^A \DefineFamilyKey +% \end{macro}^^A \DefineFamilyMember +% \end{macro}^^A \DefineFamily +% +% \begin{macro}{\FamilyKeyState} +% \changes{v3.12}{2013/03/04}{Neue Anweisung} +% \begin{macro}{\FamilyKeyStateProcessed} +% \changes{v3.12}{2013/03/04}{Neue Anweisung} +% \begin{macro}{\FamilyKeyStateUnknown} +% \changes{v3.12}{2013/03/04}{Neue Anweisung}% +% \begin{macro}{\FamilyKeyStateUnknownValue} +% \changes{v3.12}{2013/03/04}{Neue Anweisung}% +% \begin{macro}{\FamilyKeyStateNeedValue} +% \changes{v3.12}{2013/03/04}{Neue Anweisung}% +% \cs{FamilyKeyState} gibt den Status der Verarbeitung eines Schlüssels +% an. In der Voreinstellung wird der Status beim Aufruf des Schlüssels auf +% \cs{FamilyKeyStateUnknown} gesetzt, was anzeigt, dass der Zustand +% unbekannnt ist, der Schlüssel aber möglicherweise verarbeitet +% wurde. Daneben gibt es den Zustand \cs{FamilyKeyStateProcessed}, der +% anzeigt, dass der Schlüssel komplett verarbeitet wurde. Alternativ kann +% das Makro einen Text enthalten, der ggf. Teil einer Fehlermeldung, einer +% Warnung oder einer Information über Probleme bei der Verarbeitung wird. Es +% ist zu beachten, dass \cs{FamilyKeyState} nur unmittelbar nach der +% Verarbeitung gültig ist. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyKeyState}{} +\newcommand*{\FamilyKeyStateUnknown}{% + \let\FamilyKeyState\FamilyKeyStateUnknown +} +\newcommand*{\FamilyKeyStateUnknownValue}{% + \let\FamilyKeyState\FamilyKeyStateUnknownValue +} +\newcommand*{\FamilyKeyStateNeedValue}{% + \let\FamilyKeyState\FamilyKeyStateNeedValue +} +\newcommand*{\FamilyKeyStateProcessed}{% + \let\FamilyKeyState\FamilyKeyStateProcessed +} +\let\FamilyKeyState\FamilyKeyStateUnknown +% +% \end{macrocode} +% \end{macro}^^A \FamilyKeyStateNeedValue +% \end{macro}^^A \FamilyKeyStateUnknownValue +% \end{macro}^^A \FamilyKeyStateUnknown +% \end{macro}^^A \FamilyKeyStateProcessed +% \end{macro}^^A \FamilyKeyState +% +% \begin{macro}{\FamilyOfKey} +% \changes{v3.12}{2013/03/04}{Neue Anweisung} +% \begin{macro}{\FamilyMemberOfKey} +% \changes{v3.12}{2013/03/04}{Neue Anweisung} +% Geben innerhalb der Verarbeitung eines Schlüssels dessen Familie bzw. das +% zugehörige Familienmitglied an. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyOfKey}{} +\newcommand*{\FamilyMemberOfKey}{} +% +% \end{macrocode} +% \end{macro}^^A \FamilyMemberOfKey +% \end{macro}^^A \FamilyOfKey +% +% \begin{macro}{\KOMA@key} +% \changes{v2.97c}{2007/04/19}{neues optionales Argument} +% \begin{macro}{\KOMA@key@familylist} +% \textsf{keyval}-Schlüssel für \KOMAScript{} werden mit \cs{KOMAkey} +% definiert, damit auch die Familie korrekt gesetzt und ggf. der Liste der +% Familien (\cs{KOMA@key@familylist}) hinzugefügt wird. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@key}[1][.\@currname.\@currext]{% + \DefineFamilyMember{KOMA}% + \DefineFamilyKey[#1]{KOMA}% +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Optionen} +% +% Ab Version 2.97c sollen sowohl globale KOMA-Optionen als auch die +% KOMA-Optionen der jeweiligen Datei als auch die normalen Optionen in der +% Reihenfolge ausgeführt werden, in der sie angegeben wurden -- zuerst die +% globalen Optionen, dann die lokalen. Dabei werden nur die Optionen +% verwendet, die auch für das jeweilige Paket bzw. die jeweilige Klasse +% definiert wurden. +% +% \begin{macro}{\@globaloptionslist} +% \changes{v2.96}{2006/11/26}{new} +% \changes{v2.96}{2006/11/26}{Klassenoptionen durchsuchen} +% Die Lister der globalen Optionen wird teilweise benötigt. Weil +% \textsl{xkeyval} dämlicherweise glaubt, es müsse alle Optionen mit +% Gleichheitszeichen aus der Liste der Klassenoptionen entfernen +% (seltsamerweise aber nicht die (x)keyval-Optionen, die ohne Wert aufgerufen +% werden, weil ihr Defaultwert verwendet werden soll), wird hier ein eigenes +% Makro definiert. +% \begin{macrocode} +%<*base> +\newcommand*{\@globaloptionslist}{} +\let\@globaloptionslist\@classoptionslist +\scr@ifundefinedorrelax{XKV@classoptionslist}{}{% + \ifx\XKV@classoptionslist\@empty\else + \let\@globaloptionslist\XKV@classoptionslist + \fi +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\FamilyProcessOptions} +% \changes{v3.00}{2008/04/30}{Neue Anweisung}% +% \changes{v3.11a}{2012/06/11}{Klassen melden falsche Werte nicht +% selbst als Fehler, sondern informieren nur darüber} +% \changes{v3.12}{2013/03/04}{Fehlerbehandlung} +% Es ist zu beachten, dass falsche Werte für Optionen grundsätzlich nicht in +% der Verarbeitung der Optionen per Info, Warnung oder Fehler gemeldet werden +% sollten, sondern über setzen von \cs{FamilyKeyState}. Erst, wenn auch andere +% Familienmitglieder den Wert nicht verarbeiten können, ergibt sich daraus +% ggf. eine Meldung, die dann von der Verarbeitung hier erzeugt wird. +% Es wird darauf hingewiesen, dass diese Anweisung nicht reentrant ist. Das +% bedeutet, dass man es innerhalb der eigenen Ausführung nicht erneut aufrufen +% darf. +% \begin{macro}{\scr@removeunused} +% \changes{v3.10}{2011/09/12}{neu (intern)}% +% \changes{v3.12}{2013/03/04}{entfernt} +% \end{macro}^^A \scr@removeunused +% \begin{macro}{\scr@optiontest} +% \changes{v2.97c}{2007/04/18}{neu (intern)}% +% \changes{v3.12}{2013/03/04}{entfernt}% +% \begin{macro}{\scr@pti@ntest} +% \changes{v2.97c}{2007/04/18}{neu (intern)}% +% \changes{v3.12}{2013/03/04}{entfernt}% +% \end{macro}^^A \scr@pti@ntest +% \end{macro}^^A \scr@optiontest +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyProcessOptions}[2][.\@currname.\@currext]{% + \ifx\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions + \PackageError{scrbase}{nested \string\FamilyProcessOptions\space + detected\MessageBreak}{% + \string\FamilyProcessOptions\space has been used while processing or + setting options.\MessageBreak + This is currently not allowed. You should contact the author of the + causing\MessageBreak + code.\MessageBreak + This error is fatal. You should not continue.% + }% + \fi + \let\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions + \@namedef{scr@after@options@#1@hook}{\@namedef{scr@after@options@#1@hook}{}}% + \let\ds@\@empty + \edef\@curroptions{\@ptionlist{\@currname.\@currext}}% + \ifx\@currext\@clsextension\else +% \end{macrocode} +% Bei Klassen ist die aktuelle Optionenliste gleichzeitig die globale +% Optionenliste. Daher dürften Klassen nicht auch noch die globale Optionliste +% verarbeiten. Paket verarbeiten jedoch auch die globale Optionenliste, geben +% dazu jedoch keine Fehler oder Warnungen aus. +% \begin{macrocode} + \@for\CurrentOption:=\@globaloptionslist\do{% +% \end{macrocode} +% Die Optionen werden in der Reihenfolge verarbeitet, in der sie als globale +% Optionen angegeben wurden. Dabei werden nur Optionen verarbeitet, die nicht +% leer sind und die im aktuellen Paket bekannt sind. Das sind also keine +% \textsf{keyval}-Optionen, sondern normale \LaTeX-Optionen. +% \begin{macrocode} + \ifx\CurrentOption\@empty\else + \@expandtwoargs\in@{,\CurrentOption,}{,\@declaredoptions,}% + \ifin@ + \@use@ption + \expandafter\let\csname ds@\CurrentOption\endcsname\@empty + \else +% \end{macrocode} +% Wenn die Option keine \LaTeX-Option ist, kann sie noch immer eine +% \textsf{keyval}-Option sein. In diesem Fall wird geprüft, ob das +% Mitglied (\#1) eine Option in der Familie (\#2) hat. Wenn das der Fall ist, +% wird die Option unmittelbar ausgeführt und zwar einmal ohne Mitglied (also +% Optionen, die global der Familie gehören) und dann mit Mitglied. Im Fall +% einer unbekannnten Option oder eines unbekannten Wertes, geschieht hier gar +% nichts. +% \begin{macrocode} + \scr@ifprocess@curroption{#1}{#2}{% + \@expandtwoargs\@removeelement\CurrentOption + \@unusedoptionlist\@unusedoptionlist + }{}% + \fi + \fi + }% + \fi +% \end{macrocode} +% Sowohl für Klassen als auch für Pakete werden nun die aktuellen Optionen +% abgearbeitet. In diesem Fall ist zu beachten, dass nicht definierte Optionen +% oder unbekannte Werte für Optionen unmittelbar zu einem Fehler führen, wenn +% es sich um ein Paket handelt. Bei Klassen landet die Option hingegen in der +% Liste der nicht benutzten globalen Optionen. +% \begin{macrocode} + \@for\CurrentOption:=\@curroptions\do{% + \scr@ifundefinedorrelax{ds@\CurrentOption}{% + \@use@ption + \scr@ifprocess@curroption{#1}{#2}{}\default@ds + }\@use@ption + }% +% \end{macrocode} +% Fast zum Schluss wird wir im \LaTeX-Kern der Optionencode für alle +% deklarierten \LaTeX-Optionen gelöscht und dafür gesorgt, dass nach dem Paket +% keine unverarbeiteten Optionen mehr vorhanden sind. +% \begin{macrocode} + \@for\CurrentOption:=\@declaredoptions\do{% + \expandafter\let\csname ds@\CurrentOption\endcsname\relax}% + \let\CurrentOption\@empty + \let\@fileswith@pti@ns\@@fileswith@pti@ns + \AtEndOfPackage{\let\@unprocessedoptions\relax}% +% \end{macrocode} +% Jetzt muss noch der Hook ausgeführt und wieder gelöscht werden. +% \begin{macrocode} + \let\AtEndOfFamilyOptions\@firstofone + \@nameuse{scr@after@options@#1@hook}% +} +\@onlypreamble\FamilyProcessOptions +% \end{macrocode} +% \begin{macro}{\AtEndOfFamilyOptions} +% \changes{v3.12}{2013/03/04}{Neue Anweisung} +% Mit dieser Option kann innerhalb der Ausführung einer Option Material auf +% das Ende der aktuellen \cs{FamilyProcessOptions}, \cs{FamilyExecuteOptions}, +% \cs{FamilyOptions} oder \cs{FamilyOption} verzögert werden. Als einziges +% Argument wird der zu verzögernde Code erwartet, der an \cs{l@addto@macro} +% delegiert wird. +% \begin{macro}{\scr@AtEndOfFamilyOptions} +% \changes{v3.12}{2013/05/29}{Neue Anweisung (intern)} +% \begin{macrocode} +\newcommand*{\scr@AtEndOfFamilyOptions}{% + \expandafter + \l@addto@macro\csname scr@after@options@\FamilyOfKey @hook\endcsname +} +\newcommand*{\AtEndOfFamilyOptions}{} +\let\AtEndOfFamilyOptions\@firstofone +% \end{macrocode} +% \end{macro}^^A \scr@AtEndOfFamilyOptions +% \end{macro}^^A \AtEndOfFamilyOptions +% \begin{macro}{\scr@ifprocess@curroption} +% Dieses Makro führt eine aktuelle \textsf{keyval}-Option für das angegebene +% Mitglied (\#1) der angegebenen Familie (\#2) aus. Falls die Option keinen +% entsprechenden Wert hat, wird das vierte Argument ausgeführt, anderenfalls +% nicht. Es ist zu beachten, dass vor der Option des Mitglieds die +% Familien-Option auszuführen ist. Ggf. benötigt das Mitglied dann keine +% entsprechende Option. +% \begin{macrocode} +\newcommand*\scr@ifprocess@curroption[2]{% + \def\reserved@a##1=##2\@nil{\def\reserved@a{##1}}% + \expandafter\reserved@a\CurrentOption=\@nil + \scr@ifundefinedorrelax{KV@#2@\reserved@a}{% + \scr@ifundefinedorrelax{KV@#2#1@\reserved@a}{% + \let\FamilyKeyState\OptionNotUsed + }{% + \protected@edef\reserved@b{\noexpand\setkeys{#2#1}{\CurrentOption}% + \noexpand\def\noexpand\CurrentOption{\CurrentOption}}% + \reserved@b + \ifx\FamilyKeyState\FamilyKeyStateUnknown + \PackageInfo{scrbase}{Unknown processing state.\MessageBreak + Processing option `\CurrentOption'\MessageBreak + of member `#1' of family\MessageBreak + `#2' doesn't set\MessageBreak + a valid state. This will be interpreted\MessageBreak + as \string\FamilyKeyStateProcessed + }% + \FamilyKeyStateProcessed + \fi + }{% + \let\FamilyKeyState\OptionNotUsed + }% + }{% + \proteced@edef\reserved@b{\noexpand\setkeys{#2}{\CurrentOption}% + \noexpand\def\noexpand\CurrentOption{\CurrentOption}}% + \reserved@b + \ifx\FamilyKeyState\FamilyKeyStateUnknown + \PackageInfo{scrbase}{Unknown processing state.\MessageBreak + Processing option `\CurrentOption'\MessageBreak + of family `#2'\MessageBreak + doesn't set a valid state.\MessageBreak + This will be interpreted\MessageBreak + as \string\FamilyKeyStateProcessed + }% + \FamilyKeyStateProcessed + \fi + \def\reserved@a##1=##2\@nil{\def\reserved@a{##1}}% + \expandafter\reserved@a\CurrentOption=\@nil + \scr@ifundefinedorrelax{KV@#2#1@\reserved@a}{}{% + \protected@edef\reserved@b{\noexpand\setkeys{#2#1}{\CurrentOption}% + \noexpand\def\noexpand\CurrentOption{\CurrentOption}}% + \ifx\FamilyKeyState\FamiliyKeyStateProcessed + \reserved@b + \FamilyKeyStateProcessed + \else + \reserved@b + \ifx\FamilyKeyState\FamilyKeyStateUnknown + \PackageInfo{scrbase}{Unknown processing state.\MessageBreak + Processing option `\CurrentOption'\MessageBreak + of member `#1' of family\MessageBreak + `#2' doesn't set\MessageBreak + a valid state. This will be interpreted\MessageBreak + as \string\FamilyKeyStateProcessed + }% + \FamilyKeyStateProcessed + \fi + \fi + }% + }% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +% +% \end{macrocode} +% \end{macro}^^A \scr@process@curroption +% \end{macro}^^A \FamilyProcessOptions +% +% \begin{macro}{\KOMAProcessOptions} +% \changes{v2.97c}{2007/04/18}{neu}% +% \changes{v3.00}{2008/04/30}{kein optionales Argument mehr}% +% Diese Anweisung führt alle Optionen, sowohl normal deklarierte als auch +% keyval-Optionen eines Pakets bzw. einer Klasse in der Reihenfolge, in der +% sie verwendet wurden aus -- zuerst globale Optionen, dann lokale +% Optionen. Das entspricht der Verwendung von \cs{ProcessOptions*} mit dem +% Unterschied, dass eben auch die keyval-Optionen abgearbeitet +% werden. keyval-Optionen, die keiner einzelnen Klasse und keinem einzelnen +% Paket zugeordnet werden, werden dabei vor gleichnamigen eigenen +% keyval-Optionen ausgeführt. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMAProcessOptions}{\FamilyProcessOptions{KOMA}} +\@onlypreamble\KOMAProcessOptions +% +% \end{macrocode} +% \end{macro} +% +% \begin{option}{internalonly} +% \changes{v2.96}{2006/11/26}{neu} +% \changes{v2.97c}{2007/06/20}{geht auch ohne Argument} +% \begin{macro}{\dont@let@as@internal@defined} +% \changes{v2.96}{2006/11/26}{neu (intern)} +% Anweisungen, die mit einem internen und einem Anwendername vorhanden sind, +% können vor dem Anwender optional verborgen werden. Wird kein Argument +% angegeben, so werden alle Anweisungen verborgen. +% \begin{macrocode} +%<*base> +\newcommand*{\dont@let@as@internal@defined}{/} +\newif\if@let@as@internalonly@defined\@let@as@internalonly@definedfalse +\DefineFamily{KOMA} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{internalonly}[\relax]{% + \ifx\relax#1\relax + \@let@as@internalonly@definedtrue + \else + \@let@as@internalonly@definedfalse + \begingroup + \@expandtwoargs\in@{#1}\dont@let@as@internal@defined + \expandafter\endgroup + \ifin@\else\g@addto@macro\dont@let@as@internal@defined{#1/}\fi + \fi +} +% +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \changes{v2.96}{2006/08/20}{Optionen werden abgearbeitet} +% \changes{v2.97c}{2007/04/18}{Optionen werden mit \cs{KOMAProcessOptions} +% abgearbeitet} +% \begin{macrocode} +%\KOMAProcessOptions\relax +%\FamilyProcessOptions{KOMA}\relax +% \end{macrocode} +% +% \iffalse +% +%<*body> +% \fi +% +% \subsection{Ein wenig zusätzliche Mathematik für \eTeX} +% +% \begin{macro}{\XdivY} +% \changes{v3.05a}{2010/03/10}{Neu} +% Ergebnis ist erster Argument durch zweites abgerundet auf die nächst +% kleinere ganze Zahl. +% \begin{macrocode} +%<*base> +\newcommand*{\XdivY}[2]{% + \numexpr ( #1 + #2 / 2 ) / #2 - 1\relax +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\XmodY} +% \changes{v3.05a}{2010/03/10}{Neu} +% Ergebnis ist erstes Argument modulo zweites Argument. +% \begin{macrocode} +%<*base> +\newcommand*{\XmodY}[2]{% + \numexpr #1 - #2 * \XdivY{#1}{#2}\relax +} +% +% \end{macrocode} +% \end{macro} +% +% \subsection{Häufig benötigte Befehle} +% +% \begin{macro}{\if@atdocument} +% \changes{v2.95}{2002/12/05}{neuer Schalter} +% \begin{macro}{\@atdocumenttrue} +% \begin{macro}{\@atdocumentfalse} +% Dieser Schalter wird bei \cs{begin}\texttt{\{document\}} wahr. Er +% wird von \KOMAScript{} für Befehle verwendet, die sich +% unterschiedlich verhalten, je nachdem, ob sie in der Präambel oder +% danach aufgerufen werden. +% \begin{macrocode} +%<*base> +\newif\if@atdocument +\AtBeginDocument{\@atdocumenttrue} +\@onlypreamble\@atdocumentrue +\@onlypreamble\@atdocumentfalse +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\let@as@internal@defined} +% \changes{v2.95}{2002/08/19}{neu (intern)} +% \changes{v2.95c}{2006/08/12}{Warnung bei Umdefinierung} +% \changes{v2.96}{2006/11/26}{Herausreichen von internen Makros als +% Benutzermakros kann verhindert werden} +% \changes{v2.97c}{2007/06/20}{Herausreichen von internen Makros kann +% generell verhindert werden} +% \changes{v3.10}{2010/10/26}{\cs{ignorespaces} beim \cs{document}-Patch +% ergänzt} +% Dieses Makro wird intern verwendet, um dokumentierte Makros mit der +% Definition von internen Makros zu versehen, falls sie nicht bereits +% definiert oder als nicht zu definieren markiert sind. Der Name des +% dokumentierten Makros wird als Parameter übergeben. Dies wird gleich +% benötigt. +% \begin{macrocode} +%<*base> +\newcommand*{\let@as@internal@defined}[1]{% + \begingroup + \if@let@as@internalonly@defined + \in@true + \else + \@expandtwoargs\in@{/#1/}\dont@let@as@internal@defined + \fi + \expandafter\endgroup + \ifin@ + \PackageInfo{% + scrbase% + }{% + \expandafter\string\csname #1\endcsname\space excluded from being + defined% + }% + \else + \@ifundefined{#1}{% + \begingroup + \expandafter\def\expandafter\reserved@a + \expandafter{\csname scr@#1\endcsname} + \expandafter\def\expandafter\reserved@b + \expandafter{\csname #1\endcsname} + \expandafter\expandafter\expandafter\endgroup + \expandafter\expandafter\expandafter\let\expandafter\reserved@b\reserved@a + \if@atdocument\else + \g@addto@macro\document{% + \expandafter\ifx\csname #1\expandafter\endcsname + \csname scr@#1\endcsname + \else + \PackageWarning{scrbase}{% + \expandafter\string\csname #1\endcsname\space was + redefined\MessageBreak + at the document preamble.\MessageBreak + If you did not redefine it by yourself, have a\MessageBreak + a look at the description of this command at\MessageBreak + the manual of every package you are using\@gobble + }% + \fi + \ignorespaces + }% + \fi + }{% + \PackageInfo{% + scrbase% + }{% + \expandafter\string\csname #1\endcsname\space already + defined.\MessageBreak + If \expandafter\string\csname #1\endcsname\space does not behave + like\MessageBreak + it was described at the KOMA-Script manual, try to\MessageBreak + load `scrbase.sty' earlier or find out at which\MessageBreak + package or class \expandafter\string\csname #1\endcsname\space + was defined before\@gobble + }% + }% + \fi +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifundefinedorrelax} +% \changes{v2.95}{2002/08/21}{neu} +% \changes{v2.95c}{2006/08/12}{über interne Anweisung definiert} +% \changes{v2.97c}{2007/06/20}{umbenannt von \cs{ifundefined}} +% Dieses Makro arbeitet wie \cs{@ifundefined}, definiert dabei aber +% ein undefiniertes Makro nicht als \cs{relax}. +% \begin{macrocode} +%<*base> +\let@as@internal@defined{ifundefinedorrelax} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifnotundefined} +% \changes{v2.95}{2002/08/21}{neu} +% \changes{v2.95c}{2006/08/12}{nutzt \eTeX{} wenn möglich} +% \changes{v3.02c}{2009/02/19}{\eTeX{} ist zwingend} +% Dieses Makro arbeitet genau umgekehrt zu \cs{ifundefined}. Manchmal +% ist es ganz nützlich, auch das zu haben. Dieses Makro heißt nicht +% \cs{ifdefined}, weil \eTeX\ bereits ein solches Primitiv bietet. +% \begin{macrocode} +%<*base> +\newcommand{\ifnotundefined}[1]{% + \ifcsname #1\endcsname + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifstr} +% \changes{v2.95}{2004/07/20}{if- und then-Teil werden nicht gefressen} +% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt} +% Dieses Makro vergleicht zwei Tokenfolgen. Eigentlich müsste es also +% eher \cs{ifequal} oder ähnlich heißen. +% \begin{macrocode} +%<*base> +\newcommand\ifstr[2]{% + \begingroup\protected@edef\reserved@a{#1}\protected@edef\reserved@b{#2}% + \ifx\reserved@a\reserved@b + \endgroup\expandafter\@firstoftwo + \else + \endgroup\expandafter\@secondoftwo + \fi +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifstrstart} +% \changes{v3.12}{2013/11/05}{neu}%^^A +% Falls die Expansion des ersten Arguments mit der Expansion des zweiten +% Arguments beginnt, wird das dritte Argument ausgeführt, sonst das vierte. +% \begin{macrocode} +%<*base> +\newcommand*{\ifstrstart}[2]{% + \begingroup + \edef\reserved@a{\noexpand\@ifstrstart{#1}{#2}}% + \reserved@a{\aftergroup\@firstoftwo}{\aftergroup\@secondoftwo}% + \endgroup +} +% \end{macrocode} +% \begin{macro}{\@ifstrstart} +% \changes{v3.12}{2013/11/05}{neu (intern)}%^^A +% Hilfsmakro, damit die Argumente vollständig expandiert werden können. +% \begin{macrocode} +\newcommand*{\@ifstrstart}[2]{% + \def\reserved@a ##1#2##2\@nil{% + \if\relax\detokenize{##1}\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + }% + \reserved@a#1#2\@nil +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifisdimen} +% \changes{v3.12}{2013/11/05}{neu}%^^A +% Falls die Expansion des ersten Arguments eine \cs{dimen} ist, wird das +% zweite Argument ausgeführt, sonst das dritte. +% \begin{macrocode} +%<*base> +\newcommand*{\ifisdimen}[1]{% + \begingroup + \edef\reserved@a{#1}% + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\reserved@a + \expandafter\expandafter\expandafter{\expandafter\meaning\reserved@a}% + \expandafter\def\expandafter\reserved@b\expandafter{\string\dimen}% + \ifstrstart{\reserved@a}{\reserved@b}{% + \afterassignment\scr@ifrelax@to@nnil + \@tempdima=#1\relax\@nnil{% + \aftergroup\@firstoftwo + }{% + \aftergroup\@secondoftwo + }% + }{\aftergroup\@secondoftwo}% + \endgroup +} +% \end{macrocode} +% \begin{macro}{\scr@ifrelax@to@nnil} +% \changes{v3.12}{2013/11/05}{neu (intern)}%^^A +% Hilfsmakro, zur Verwendung beispielsweise nach Zuweissungen. Falls alles bis +% zum ersten \cs{@nnil} aus genau einem \cs{relax} besteht, wird das erste +% Argument ausgeführt, sonst das zweite. +% \begin{macrocode} +\newcommand*{\scr@ifrelax@to@nnil}{} +\def\scr@ifrelax@to@nnil#1\@nnil{% + \begingroup + \def\reserved@a{#1}\def\reserved@b{\relax}% + \ifx\reserved@a\reserved@b + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \endgroup +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifisdimexpr} +% \changes{v3.12}{2013/11/05}{neu} +% Falls die Expansion des ersten Arguments eine \cs{dimexpr} ist, wird das +% zweite Argument ausgeführt, sonst das dritte. Achtung: Falls der Ausdruck +% ungültig ist, so wird ein Fehler gemeldet! +% \begin{macrocode} +%<*base> +\newcommand*{\ifisdimexpr}[1]{% + \begingroup + \edef\reserved@a{#1}% + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\reserved@a + \expandafter\expandafter\expandafter{\expandafter\meaning\reserved@a}% + \expandafter\def\expandafter\reserved@b\expandafter{\string\dimexpr}% + \ifstrstart{\reserved@a}{\reserved@b}{% + \afterassignment\scr@ifemptyorrelax@to@nnil + \@tempdima=#1\relax\@nnil{% + \aftergroup\@firstoftwo + }{% + \aftergroup\@secondoftwo + }% + }{\aftergroup\@secondoftwo}% + \endgroup +} +% \end{macrocode} +% \begin{macro}{\scr@ifemptyorrelax@to@nnil} +% \changes{v3.12}{2013/11/05}{neu (intern)}%^^A +% Hilfsmakro, zur Verwendung beispielsweise nach Zuweissungen. Falls alles bis +% zum ersten \cs{@nnil} leer ist oder aus genau einem \cs{relax} besteht, wird +% das erste Argument ausgeführt, sonst das zweite. +% \begin{macrocode} +\newcommand*{\scr@ifemptyorrelax@to@nnil}{} +\def\scr@ifemptyorrelax@to@nnil#1\@nnil{% + \begingroup + \def\reserved@a{#1}\def\reserved@b{\relax}% + \ifx\reserved@a\reserved@b + \aftergroup\@firstoftwo + \else + \ifx\reserved@a\@empty + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \fi + \endgroup +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifisskip} +% \changes{v3.12}{2013/11/05}{neu}%^^A +% Falls die Expansion des ersten Arguments ein \cs{skip} ist, wird das +% zweite Argument ausgeführt, sonst das dritte. +% \begin{macrocode} +%<*base> +\newcommand*{\ifisskip}[1]{% + \begingroup + \edef\reserved@a{#1}% + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\reserved@a + \expandafter\expandafter\expandafter{\expandafter\meaning\reserved@a}% + \expandafter\def\expandafter\reserved@b\expandafter{\string\skip}% + \ifstrstart{\reserved@a}{\reserved@b}{% + \afterassignment\scr@ifrelax@to@nnil + \@tempskipa=#1\relax\@nnil{% + \aftergroup\@firstoftwo + }{% + \aftergroup\@secondoftwo + }% + }{\aftergroup\@secondoftwo}% + \endgroup +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifisglueexpr} +% \changes{v3.12}{2013/11/05}{neu} +% Falls die Expansion des ersten Arguments eine \cs{glueexpr} ist, wird das +% zweite Argument ausgeführt, sonst das dritte. Achtung: Falls der Ausdruck +% ungültig ist, so wird ein Fehler gemeldet! +% \begin{macrocode} +%<*base> +\newcommand*{\ifisglueexpr}[1]{% + \begingroup + \edef\reserved@a{#1}% + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\reserved@a + \expandafter\expandafter\expandafter{\expandafter\meaning\reserved@a}% + \expandafter\def\expandafter\reserved@b\expandafter{\string\glueexpr}% + \ifstrstart{\reserved@a}{\reserved@b}{% + \afterassignment\scr@ifemptyorrelax@to@nnil + \@tempskipa=#1\relax\@nnil{% + \aftergroup\@firstoftwo + }{% + \aftergroup\@secondoftwo + }% + }{\aftergroup\@secondoftwo}% + \endgroup +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifiscount} +% \changes{v3.12}{2013/11/05}{neu} +% Falls die Expansion des ersten Arguments ein \cs{count} ist, wird das +% zweite Argument ausgeführt, sonst das dritte. Für \LaTeX-Zähler siehe +% stattdessen \cs{ifiscounter}. +% \begin{macrocode} +%<*base> +\newcommand*{\ifiscount}[1]{% + \begingroup + \edef\reserved@a{#1}% + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\reserved@a + \expandafter\expandafter\expandafter{\expandafter\meaning\reserved@a}% + \expandafter\def\expandafter\reserved@b\expandafter{\string\count}% + \ifstrstart{\reserved@a}{\reserved@b}{% + \afterassignment\scr@ifrelax@to@nnil + \@tempcnta=#1\relax\@nnil{% + \aftergroup\@firstoftwo + }{% + \aftergroup\@secondoftwo + }% + }{\aftergroup\@secondoftwo}% + \endgroup +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifisnumexpr} +% \changes{v3.12}{2013/11/05}{neu} +% Falls die Expansion des ersten Arguments eine \cs{numexpr} ist, wird das +% zweite Argument ausgeführt, sonst das dritte. Achtung: Falls der Ausdruck +% ungültig ist, so wird ein Fehler gemeldet! +% \begin{macrocode} +%<*base> +\newcommand*{\ifisnumexpr}[1]{% + \begingroup + \edef\reserved@a{#1}% + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\reserved@a + \expandafter\expandafter\expandafter{\expandafter\meaning\reserved@a}% + \expandafter\def\expandafter\reserved@b\expandafter{\string\numexpr}% + \ifstrstart{\reserved@a}{\reserved@b}{% + \afterassignment\scr@ifemptyorrelax@to@nnil + \@tempcnta=#1\relax\@nnil{% + \aftergroup\@firstoftwo + }{% + \aftergroup\@secondoftwo + }% + }{\aftergroup\@secondoftwo}% + \endgroup +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifiscounter} +% \changes{v3.12}{2013/11/05}{neu} +% Falls die Expansion des ersten Arguments ein \LaTeX-Zähler ist, wird das +% zweite Argument ausgeführt, sonst das dritte. +% \begin{macrocode} +%<*base> +\newcommand*{\ifiscounter}[1]{% + \begingroup + \@ifundefined{c@#1}% + {\aftergroup\@secondoftwo}% + {\aftergroup\@firstoftwo}% + \endgroup +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifisinteger} +% \changes{v3.12}{2013/11/05}{neu} +% Falls die Expansion des ersten Arguments eine (positive oder negative) ganze +% Zahl ist, wird das zweite Argument ausgeführt, sonst das dritte. +% \begin{macrocode} +%<*base> +\newcommand*{\ifisinteger}[1]{% + \begingroup + \edef\reserved@a{#1}\expandafter + \scr@ifintegerplusminus\reserved@a\@nil{\aftergroup\@firstoftwo}% + {\aftergroup\@secondoftwo} + \endgroup +} +% \end{macrocode} +% \begin{macro}{\scr@ifintegerplusminus} +% \changes{v3.12}{2013/11/05}{neu (intern)} +% Hilfsmakro, ausschließlich für \cs{ifisinteger}. +% \begin{macrocode} +\newcommand*{\scr@ifintegerplusminus}{} +\def\scr@ifintegerplusminus#1#2\@nil{% + \def\scr@next{\scr@ifintegerplusminus #2\@nil}% + \if #1-\relax + \else \if #1+\relax + \else + \def\scr@next{% + \afterassignment\scr@ifrelax@to@nnil + \@tempcnta=#1#2\relax\@nnil + }% + \if #10\else\if #11\else\if #12\else\if #13\else\if #14\else + \if #15\else\if #16\else\if #17\else\if #18\else\if #19\else + \let\scr@next\@secondoftwo + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \fi + \fi + \scr@next +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifisdimension} +% \changes{v3.12}{2013/11/05}{neu} +% Falls die Expansion des ersten Arguments eine (positive oder negative) +% Länge ist, wird das zweite Argument ausgeführt, sonst das dritte. Es sei +% darauf hingewiesen, dass derzeit ungültige oder fehlende Einheiten eine +% Fehlermeldung bewirken! +% \begin{macrocode} +%<*base> +\newcommand*{\ifisdimension}[1]{% + \begingroup + \edef\reserved@a{#1\relax}\expandafter + \scr@ifdimensionplusminus\reserved@a\@nil{\aftergroup\@firstoftwo}% + {\aftergroup\@secondoftwo} + \endgroup +} +% \end{macrocode} +% \begin{macro}{\scr@ifdimensionplusminus} +% \changes{v3.12}{2013/11/05}{neu (intern)} +% Hilfsmakro, ausschließlich für \cs{ifisdimension}. +% \begin{macrocode} +\newcommand*{\scr@ifdimensionplusminus}{} +\def\scr@ifdimensionplusminus#1#2\@nil{% + \def\scr@next{\scr@ifdimensionplusminus #2\@nil}% + \if #1-\relax + \else \if #1+\relax + \else + \def\scr@next{% + \afterassignment\scr@ifrelax@to@nnil + \@tempdima=#1#2\@nnil + }% + \if #1,\else\if #1.\else + \if #10\else\if #11\else\if #12\else\if #13\else\if #14\else + \if #15\else\if #16\else\if #17\else\if #18\else\if #19\else + \let\scr@next\@secondoftwo + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \fi\fi + \fi + \fi + \scr@next +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifisglue} +% \changes{v3.12}{2013/11/05}{neu} +% Falls die Expansion des ersten Arguments eine (positive oder negative) +% Ausdehnung ist, wird das zweite Argument ausgeführt, sonst das dritte. Es sei +% darauf hingewiesen, dass derzeit ungültige oder fehlende Einheiten eine +% Fehlermeldung bewirken! +% \begin{macrocode} +%<*base> +\newcommand*{\ifisglue}[1]{% + \begingroup + \edef\reserved@a{#1\relax}\expandafter + \scr@ifglueplusminus\reserved@a\@nil{\aftergroup\@firstoftwo}% + {\aftergroup\@secondoftwo} + \endgroup +} +% \end{macrocode} +% \begin{macro}{\scr@ifglueplusminus} +% \changes{v3.12}{2013/11/05}{neu (intern)} +% Hilfsmakro, ausschließlich für \cs{ifisglue}. +% \begin{macrocode} +\newcommand*{\scr@ifglueplusminus}{} +\def\scr@ifglueplusminus#1#2\@nil{% + \def\scr@next{\scr@ifglueplusminus #2\@nil}% + \if #1-\relax + \else \if #1+\relax + \else + \def\scr@next{% + \afterassignment\scr@ifrelax@to@nnil + \@tempskipa=#1#2\@nnil + }% + \if #1,\else\if #1.\else + \if #10\else\if #11\else\if #12\else\if #13\else\if #14\else + \if #15\else\if #16\else\if #17\else\if #18\else\if #19\else + \let\scr@next\@secondoftwo + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \fi\fi + \fi + \fi + \scr@next +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\ifnumber} +% \changes{v3.12}{2013/10/30}{using \cs{aftergroup} instead of +% \cs{endgroup}\cs{expandafter}}%^^A +% Dieses Makro testet, ob ein übergebener Parameter eine positive, +% ganze Zahl ist. Ist dies der Fall, wird der zweite Parameter +% ausgeführt, sonst der dritte. +% \begin{macrocode} +%<*base> +\newcommand\ifnumber[1]{% + \begingroup\@tempswafalse\let\scr@next\test@number + \expandafter\scr@next#1\scr@next + \if@tempswa + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \endgroup +} +% \end{macrocode} +% \begin{macro}{\test@number} +% Für den eigentlichen Test wird der erste Parameter Token für Token +% gescannt und beurteilt. +% \begin{macrocode} +\newcommand*{\test@number}[1]{% + \ifx \scr@next#1 + \let\scr@next\relax + \else +% \end{macrocode} +% Dabei wird für einen schnelleren Vergleich die Tatsache genutzt, dass +% Ziffernzeichen immer im selben durchgängigen Bereich liegen +% \begin{macrocode} + \@tempcnta=\expandafter\expandafter\expandafter\number + \expandafter`#1\relax + \ifnum \@tempcnta>47 + \ifnum \@tempcnta<58 + \@tempswatrue + \else\@tempswafalse\fi + \else\@tempswafalse\fi +% \end{macrocode} +% Das zeichenweise Scannen und Parsen kann natürlich nicht einfach +% abgebrochen werden. Stattdessen ist der Parameterrest noch zu +% entfernen. +% \begin{macrocode} + \if@tempswa\else\let\scr@next\gobble@till@scr@next\fi + \fi + \scr@next +} +% \end{macrocode} +% \begin{macro}{\gobble@tillscr@@next} +% Das geschieht mit einem einzigen "`Leermacro"'. +% \begin{macrocode} +\newcommand*{\gobble@till@scr@next}{} +\def\gobble@till@scr@next#1\scr@next{} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifintnumber} +% \changes{v3.12}{2013/10/30}{neu} +% Ist das erste Argument eine positive oder negative ganze Zahl, to wird das +% zweite Argument ausgeführt, sonst das dritte. Wie bei \TeX{} auch sind +% beliebig viele Vorzeichen erlaubt. +% \begin{macrocode} +%<*base> +\newcommand\ifintnumber[1]{% + \begingroup\@tempswafalse\let\scr@next\scr@test@sign + \expandafter\scr@next#1\scr@next + \if@tempswa + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \endgroup +} +% \end{macrocode} +% \begin{macro}{\scr@test@sign} +% \changes{v3.12}{2013/10/30}{neu (intern)} +% \begin{macrocode} +\newcommand*{\scr@test@sign}[1]{% + \ifx \scr@next#1 + \let\scr@next\relax + \else + \if #1-% + \else + \ifx #1+% + \else + \def\scr@next{\let\scr@next\test@number\scr@next #1}% + \fi + \fi + \fi + \scr@next +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifdimen} +% Dieses Makro testet, ob ein übergebener Parameter eine Dimension +% ist und führt in Abhängigkeit davon den zweiten oder dritten +% Parameter aus. +% \begin{macrocode} +%<*base> +\newcommand{\ifdimen}[1]{% + \begingroup\@tempswatrue\let\scr@next\test@posdimen + \expandafter\test@dimen#1\scr@next + \if@tempswa + \endgroup\expandafter\@firstoftwo + \else + \endgroup\expandafter\@secondoftwo + \fi +} +% \end{macrocode} +% \begin{macro}{\test@dimen} +% Als erste muss 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 muss getestet werden, ob es sich beim Rest um eine Dimension +% handelt. Dabei werden der Einfachheit halber mehrere Dezimalkomma +% und -punkte erlaubt. Natürlich könnte man es auch wirklich richtig +% machen, aber das wäre 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 + \ifnum \@tempcnta<58 + \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}{\test@dimunt} +% \begin{macro}{\test@trueunt} +% Außer einer Gleitkomma- bzw. Gleitpunktzahl muss auch noch die Einheit +% behandelt werden. Dabei sind sowohl die neun Standardeinheiten als auch +% deren "`true"'-Variante zu berücksichtigen. 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\reserved@a{#1}% + \ifx\reserved@a\@empty\test@@ifdimunt{#2}\else\test@@ifdimunt{#1}\fi +} +% \end{macrocode} +% \begin{macro}{\test@@ifdimunt} +% Anschließend wird dann getestet, ob es sich um eine der neun üblichen +% 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} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\ifpdftex} +% \changes{v2.95}{2002/08/19}{neu} +% \begin{macro}{\scr@ifpdftex} +% \changes{v2.95}{2002/08/19}{neu (intern)} +% If-then-else-Konstrukt, um zu testen, ob pdf\TeX{} verwendet wird. +% \begin{macrocode} +%<*base> +\newcommand{\scr@ifpdftex}{\ifnotundefined{pdftexversion}} +\let@as@internal@defined{ifpdftex} +\BeforePackage{pdfcprot}{\let\ifpdftex\relax} +\AfterPackage{pdfcprot}{\let@as@internal@defined{ifpdftex}} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifVTeX} +% \changes{v2.95}{2002/08/19}{neu} +% \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{ifvtex}} +% \begin{macro}{\scr@ifVTeX} +% \changes{v2.95}{2002/08/19}{neu} +% \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{scr@ifvtex}} +% If-then-else-Konstrukt, um zu testen, ob V\TeX{} verwendet wird. +% \begin{macrocode} +%<*base> +\newcommand{\scr@ifVTeX}{\ifnotundefined{VTeXversion}} +\let@as@internal@defined{ifVTeX} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \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 (intern)} +% \changes{v2.8q}{2001/11/13}{funktioniert} +% \changes{v2.95}{2002/08/21}{berücksichtigt V\TeX} +% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert} +% If-then-else-Konstrukt, um abhängig davon, ob als \texttt{pdf} +% ausgegeben wird oder nicht, Befehle auszuführen. Dieses Makro wird +% für die Deklaration der Option \texttt{pagesize} benötigt. +% \begin{macrocode} +%<*base> +\newcommand{\scr@ifpdfoutput}{% + \scr@ifundefinedorrelax{pdfoutput}{% + \scr@ifundefinedorrelax{OpMode}{% + \expandafter\@secondoftwo% + }{% + \ifnum\OpMode=1 + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + }% + }{% + \ifnum\pdfoutput>0 + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + }% +}% +\let@as@internal@defined{ifpdfoutput} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifpsoutput} +% \changes{v2.95}{2002/08/21}{neu} +% \begin{macro}{\scr@ifpsoutput} +% \changes{v2.95}{2002/08/21}{neu (intern)} +% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert} +% If-then-else-Konstrukt, um abhängig davon, ob früher oder später +% \texttt{ps} ausgegeben wird oder nicht, Befehle auszuführen. +% \begin{macrocode} +%<*base> +\newcommand*{\scr@ifpsoutput}{% + \ifnotundefined{if@dvips}{% + \if@dvips + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + }{% + \ifnotundefined{OpMode}{% + \ifnum\OpMode=2 + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + }{% + \expandafter\@secondoftwo + }% + }% +} +\let@as@internal@defined{ifpsoutput} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifdvioutput} +% \changes{v2.95}{2002/08/21}{neu} +% \begin{macro}{\scr@ifdvioutput} +% \changes{v2.95}{2002/08/21}{neu (intern)} +% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert} +% If-then-else-Konstrukt, um abhängig davon, ob \texttt{dvi} +% ausgegeben wird oder nicht, Befehle auszuführen. +% \begin{macrocode} +%<*base> +\newcommand*{\scr@ifdvioutput}{% + \scr@ifundefinedorrelax{pdfoutput}{% + \scr@ifundefinedorrelax{OpMode}{% + \expandafter\@firstoftwo + }{% + \ifnum\OpMode=0 + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + }% + }{% + \ifnum\pdfoutput=0 + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + }% +} +\let@as@internal@defined{ifdvioutput} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\scr@smashdp} +% \changes{v2.97c}{2007/09/17}{neu (intern)} +% \changes{v3.02a}{2009/01/23}{\cs{smash} nicht direkt verwenden, weil +% \textsf{amsmath} das inkompatibel umdefiniert} +% Gibt Material aus, erzeugt dabei aber nur Höhe und Breite, jedoch keine +% Tiefe. +% \begin{macrocode} +%<*base> +\newcommand*{\scr@smashdp}[1]{% + \begingroup + \def\finsm@sh{\dp\z@\z@\box\z@}% + \ifmmode + \expandafter\mathpalette\expandafter\mathsm@sh + \else + \expandafter\makesm@sh + \fi + {#1}% + \endgroup +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\PackageInfoNoLine} +% \changes{v2.97d}{2007/10/03}{neu} +% Arbeitet wie \cs{PackageInfo} aber ohne Ausgabe der Zeilennummer. +% \begin{macrocode} +%<*base> +\providecommand*{\PackageInfoNoLine}[2]{% + \PackageInfo{#1}{#2\@gobble}% +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ClassInfoNoLine} +% \changes{v2.98c}{2008/02/15}{neu} +% Arbeitet wie \cs{ClassInfo} aber ohne Ausgabe der Zeilennummer. +% \begin{macrocode} +%<*base> +\providecommand*{\ClassInfoNoLine}[2]{% + \ClassInfo{#1}{#2\@gobble}% +} +% +% \end{macrocode} +% \end{macro} +% +% \subsection{Definition von KOMA-\textsf{keyval}-Schlüsseln (Hauptteil)} +% +% \begin{macro}{\FamilyExecuteOptions} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt} +% \changes{v3.04b}{2010/02/02}{\cs{scr@key@atlist} und \cs{scr@key@name} +% vor Überschreiben in \cs{serkeys} geschützt} +% \changes{v3.12}{2013/03/04}{neue Implementierung} +% \changes{v3.12}{2013/03/04}{darf auch noch nach der Präambel verwendet +% werden} +% Entspriche \cs{ExecuteOptions} jedoch \textsf{keyval}-Optionen. Insbesondere +% ist die Anweisung reentrant! Es ist jedoch zu beachten, dass der hook lokal +% zum jeweiligen Aufruf ist. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyExecuteOptions}[3][.\@currname.\@currext]{% + \@namedef{scr@after@options@#1@hook}{\@namedef{scr@after@options@#1@hook}{}}% + \@for\scr@key@atlist:=#3\do{% + \expandafter\scr@key@split@name@value\scr@key@atlist==\@nil + \ifx\scr@key@name\@empty\else + \ifx\scr@key@name\space\else + \scr@ifundefinedorrelax{KV@#2@\scr@key@name}{% + \scr@ifundefinedorrelax{KV@#2#1@\scr@key@name}{% + \PackageError{scrbase}{% + unknown option + `\expandafter\detokenize\expandafter{\scr@key@atlist}'% + }{% + Member `#1' of family `#2'\MessageBreak + cannot handle option `\scr@key@name'.\MessageBreak + So it cannot be set% + \ifx\scr@key@value\@empty\else + \space to value + `\expandafter\detokenize\expandafter{\scr@key@value}'% + \fi.% + }% + }{% + \scr@execute@option{#2#1}% + }% + }{% + \scr@execute@option{#2}% + \ifstr{#1}{}{}{% + \scr@ifundefinedorrelax{KV@#2#1\scr@key@name}{}{% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \scr@execute@option{#2#1}% + \FamilyKeyStateProcessed + \else + \scr@execute@option{#2#1}% + \fi + }% + }% + }% + \scr@show@key@state@error + \fi + \fi + }% + \@nameuse{scr@after@options@#1@hook}% +} +% +% \end{macrocode} +% \begin{macro}{\scr@show@key@state@error} +% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)}% +% Zeige abhängig von \cs{FamilyKeyState} eine Fehlermeldung. Alle +% Informationen zu dem Fehler müssen in \cs{FamilyMemberOfKey} +% (Familienmitglied oder \cs{@empty}), \cs{FamilyOfKey} (Familie oder +% \cs{@empty}), \cs{scr@key@atlist} (Option, wie sie in der Liste stand), +% \cs{scr@key@name} (Name der Option) und \cs{scr@key@value} (Wert der +% Option) stehen. Es ist zu beachten, dass \cs{scr@key@atlist} und +% \cs{scr@key@value} ebenfalls Macros enthalten können. Deshalb werden diese +% Werte ggf. über \cs{detokenize} ausgegeben. +% \begin{macrocode} +%<*base> +\newcommand*{\scr@show@key@state@error}{% + \ifx\FamilyKeyState\FamilyKeyStateProcessed\else + \PackageError{scrbase}{% + unknown option + `\expandafter\detokenize\expandafter{\scr@key@atlist}'% + }{% + Option + `\expandafter\detokenize\expandafter{\scr@key@name}'\MessageBreak + \ifx\FamilyMemberOfKey\@empty\else + of member `\FamilyMemberOfKey'\MessageBreak + \fi + \ifx\FamilyOfKey\@empty\else + of family `\FamilyOfKey'\MessageBreak + \fi + \ifx\FamilyKeyState\FamilyKeyStateNeedValue + expects a value, but has been used without any value.% + \else + cannot handle value\MessageBreak + `\expandafter\detokenize\expandafter{\scr@key@value}',% + \MessageBreak + \ifx\FamilyKeyState\FamilyKeyStateUnknownValue + because this is an unsupported value.% + \else + because \FamilyKeyState. + \fi + \fi + }% + \fi +} +% +% \end{macrocode} +% \end{macro}^^A \scr@show@key@state@error +% \end{macro}^^A \FamilyExecuteOptions +% +% \begin{macro}{\KOMAExecuteOptions} +% \changes{v2.97c}{2007/04/19}{Neue Anweisung} +% \changes{v3.00}{2008/04/30}{Kein optionales Argument mehr} +% \changes{v3.12}{2013/03/04}{darf auch noch nach der Präambel verwendet +% werden} +% Liste von Optionen für ein Mitglied der Familie \texttt{KOMA} ausführen. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMAExecuteOptions}[1][.\@currname.\@currext]{% + \FamilyExecuteOptions[#1]{KOMA}% +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\FamilyOptions} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \changes{v3.12}{2013/03/02}{Neue Implementierung} +% \changes{v3.12}{2013/03/02}{\cs{scr@after@options@\#1@hook}} +% \begin{macro}{\Family@Options} +% \changes{v3.00}{2008/04/30}{Neues Makro (intern)}% +% \changes{v3.12}{2013/03/04}{entfernt} +% \end{macro}^^A \FamilyOptions +% Es werden Schlüssel einer Familie verwendet. Existiert ein Schlüssel nicht, +% oder ist der Wert für alle Schlüssel unbekannt, so wird ein Fehler +% ausgegeben. Diese Anweisung selbst ist reentrant, das heißt sie kann auch +% innerhalb der Ausführung von Optionen aufgerufen werden. Es sei jedoch +% erwähnt, dass der hook dabei nur die jeweilige Anweisung umfasst. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyOptions}[2]{% + \@namedef{scr@after@options@#1@hook}{\@namedef{scr@after@options@#1@hook}{}}% +% \end{macrocode} +% \begin{description} +% \item[Anmerkung:] Es wird nicht auf \textsf{xkeyval} und den dortigen Befehl +% \cs{setkeys+} gesetzt, weil dieser die Optionen nicht in der Reihenfolge +% der Optionen, sondern in der Reihenfolge der Familien ausführt. Das passt +% mir aber hier gar nicht. +% \end{description} +% In einer Schleife über alle Optionen werden die Optionen zunächst in Option +% und Wert aufgespaltet. +% \begin{macrocode} + \@for\scr@key@atlist:=#2\do{% +% \end{macrocode} +% \changes{v3.08}{2010/11/05}{leere Argumente in der Optionenliste}% +% Auf vielfachen Wunsch und entgegen meiner Überzeugung, sind auch leere +% Argumente in der Optionenliste erlaubt. Die erste Form wäre, wenn zwei +% Kommas diret aufeinander folgen: +% \begin{macrocode} + \ifx\scr@key@atlist\@empty\else +% \end{macrocode} +% Die zweite Möglichkeit wäre, dass noch Leerzeichen zwischen den Komma +% übrig bleiben: +% \begin{macrocode} + \ifx\scr@key@atlist\space\else + \expandafter\scr@key@split@name@value\scr@key@atlist==\@nil +% \end{macrocode} +% Die dritte Möglichkeit, dass auch noch ein Gleichheitszeichen übrig +% gelassen wurde, werde ich aber nicht abfangen. Irgendwann müssen die +% Anwender auch mal ihre Fehler einsehen und korrigieren! +% +% Wir haben jetzt also eine Option und diese aufgespaltet in Schlüssel und +% Wert. +% \changes{v3.12}{2013/03/04}{der Gesamtstatus wird gespeichert} +% Jetzt speichern wir den Gesamtstatus einfach, indem der Fehlerspeicher +% gelöscht wird. Bei \cs{relax} wird er nicht weiter benötigt und es liegt +% ebenso wie bei \cs{@empty} kein auszugebender Fehler vor. Bei anderen +% Werten, enthält er Fehler, die zu melden sind. +% \begin{macrocode} + \let\scr@key@run@errors\@empty +% \end{macrocode} +% +% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt} +% \changes{v3.09a}{2011/06/07}{weniger Expansion durch sinnvollen Gebrauch +% von \cs{unexpanded}} +% Dann wird in einer Schleife über alle Familien festgestellt, ob die Option +% in einer Familie bekannt ist und ggf. ausgeführt. Hier ist wichtig, dass +% keines der internen Macros vom Aufruf verändert wird. Außerdem muss der +% Status und die daraus resultierenden Meldungen aufgesammelt werden. +% \begin{macrocode} + \scr@key@found@false + \edef\reserved@a{\csname #1@key@familylist\endcsname}% + \@for\reserved@a:=\reserved@a\do{% + \scr@ifundefinedorrelax{KV@\reserved@a @\scr@key@name}{}{% + \expandafter\scr@execute@option\expandafter{\reserved@a}% + \scr@key@found@true + \ifx\scr@key@run@errors\relax\else + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \let\scr@key@run@errors\relax + \else + \ifx\FamilyKeyState\FamilyKeyStateUnknownValue + \edef\scr@key@run@errors{% + \unexpanded\expandafter{\scr@key@run@errors}% + \noexpand\MessageBreak + \FamilyMemberOfKey: unkown value + `\expandafter\detokenize\expandafter{\scr@key@value}'.% + }% + \else + \ifx\FamilyKeyState\FamilyKeyStateNeedValue + \edef\scr@key@run@errors{% + \unexpanded\expandafter{\scr@key@run@errors}% + \noexpand\MessageBreak + \FamilyMemberOfKey: value expected. + }% + \else + \edef\scr@key@run@errors{% + \unexpanded\expandafter{\scr@key@run@errors}% + \noexpand\MessageBreak + \FamilyMemberOfKey: \FamilyKeyState. + }% + \fi + \fi + \fi + \fi + }% + }% + \ifscr@key@found@ + \ifx\scr@key@run@errors\relax\else + \ifx\scr@key@run@errors\@empty\else + \PackageError{scrbase}{% + unknown option + `\expandafter\detokenize\expandafter{\scr@key@atlist}'% + }{% + The members of family `#1' cannot set option + `\scr@key@name' + \ifx\scr@key@value\@empty\else + \MessageBreak + to value + `\expandafter\detokenize\expandafter{\scr@key@value}'% + \fi.\MessageBreak + Here's what each member says: + \scr@key@run@errors + }% + \fi + \fi + \else + \PackageError{scrbase}{% + unknown option + `\expandafter\detokenize\expandafter{\scr@key@atlist}'% + }{% + No one of the members of family `#1'\MessageBreak + can handle option `\scr@key@name'.\MessageBreak + So it cannot be set% + \ifx\scr@key@value\@empty\else + \space to value + `\expandafter\detokenize\expandafter{\scr@key@value}'% + \fi.% + }% + \fi + \fi + \fi + }% + \@nameuse{scr@after@options@#1@hook}% +} +% \end{macrocode} +% \begin{macro}{\scr@execute@option} +% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)}% +% Es wird die bereits gesplittete Option ausgeführt, ohne dass die dabei +% wesentlichen Macros (aber nicht \cs{reserved@a}!) verändert werden. Das +% erste Argument ist bereits der Besitzer in \textsf{keyval}-Syntax. +% \begin{macrocode} +\newcommand*{\scr@execute@option}[1]{% + \protected@edef\reserved@a{% + \noexpand\let\noexpand\KV@err\noexpand\scr@KV@err + \noexpand\setkeys{#1}{% + \unexpanded\expandafter{\scr@key@atlist}}% + \noexpand\def\noexpand\scr@key@atlist{% + \unexpanded\expandafter{\scr@key@atlist}}% + \noexpand\def\noexpand\scr@key@name{% + \unexpanded\expandafter{\scr@key@name}}% + \noexpand\def\noexpand\scr@key@value{% + \unexpanded\expandafter{\scr@key@value}} + \ifx\scr@key@run@errors\relax + \noexpand\let\noexpand\scr@key@run@errors\relax + \else + \noexpand\def\noexpand\scr@key@run@errors{% + \unexpanded\expandafter{\scr@key@run@errors}}% + \fi + \noexpand\def\expandafter\noexpand + \csname scr@after@options@#1@hook\endcsname{% + \expandafter\unexpanded\expandafter\expandafter\expandafter{% + \csname scr@after@options@#1@hook\endcsname + }}% + }% + \let\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions + \reserved@a + \let\AtEndOfFamilyOptions\@firstofone + \ifx\FamilyKeyState\FamilyKeyStateUnknown + \PackageInfo{scrbase}{Unknown processing state.\MessageBreak + Processing option `\scr@key@atlist'\MessageBreak + \ifx\FamilyMemberOfKey\@empty\else + of member `\FamilyMemberOfKey'\MessageBreak + \fi + of family `\FamilyOfKey'\MessageBreak + doesn't set a valid state.\MessageBreak + This will be interpreted\MessageBreak + as \string\FamilyKeyStateProcessed + }% + \FamilyKeyStateProcessed + \fi +} +% \end{macrocode} +% \begin{macro}{\scr@key@run@errors} +% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)} +% Wird innerhalb von \cs{FamilyOptions} benötigt, um die Fehlermeldungen +% aufzusammeln, aber erst auszugeben, wenn tatsächlich kein Mitglied die +% Option verarbeiten konnte. Wir definieren das hier, damit oben die +% Wiederherstellung korrekt funktioniert. +% \begin{macrocode} +\newcommand*{\scr@key@run@errors}{} +% \end{macrocode} +% \end{macro} +% \end{macro}^^A \scr@execute@option +% \begin{macro}{\ifscr@key@found@} +% \changes{v2.97c}{2007/04/19}{Neuer Schalter (intern)} +% \changes{v3.00}{2008/04/30}{umbenannt von \cs{ifKOMA@key@found}} +% \begin{macro}{\scr@key@atlist} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@atlist}} +% \begin{macro}{\scr@key@name} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@name}} +% \begin{macro}{\scr@key@value} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@value}} +% \begin{macro}{\scr@key@split@name@value} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v2.97e}{2007/11/10}{verwendet \cs{KV@@sp@def} zur Entsorgung von +% Leerzeichen} +% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@split@name@value}} +% \begin{macrocode} +\newif\ifscr@key@found@ +\newcommand*{\scr@key@atlist}{} +\newcommand*{\scr@key@name}{} +\newcommand*{\scr@key@value}{} +\newcommand*{\scr@key@split@name@value}{} +\def\scr@key@split@name@value#1=#2=#3\@nil{% + \KV@@sp@def\scr@key@name{#1}% + \KV@@sp@def\scr@key@value{#2}% +} +% +% \end{macrocode} +% \end{macro}^^A \scr@key@split@name@value +% \end{macro}^^A \scr@key@value +% \end{macro}^^A \scr@key@name +% \end{macro}^^A \scr@key@atlist +% \end{macro}^^A \FamilyOptions +% +% \begin{macro}{\FamilyOption} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \begin{macro}{\Family@Option} +% \changes{v3.00}{2008/04/30}{Neu (intern)} +% \changes{v3.12}{2013/03/04}{entfernt} +% \end{macro} +% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt} +% Im Gegensatz zu \cs{FamilyOptions} kann man mit dieser Anweisung nur eine +% einzige Option setzen. Dafür kann man gleich mehrere durch Komma getrennte +% Argumente für diese Option setzen. Das erste obligatorische Argument ist +% wieder die Familie, das zweite obligatorische Argument ist die Option, das +% dritte, obligatorische Argument ist die Liste der Werte für diese Option. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyOption}[3]{% + \expandafter\KV@@sp@def\expandafter\scr@key@name\expandafter{#2}% +% \end{macrocode} +% Der einfachste Weg ist nun schlicht, die Liste der Werte durchzugehen und so +% nach und nach eine Liste von Werten für \cs{FamilyOptions} zu erzeugen. +% \begin{macrocode} + \let\reserved@a\@empty + \@for\reserved@b:=#3\do{% +% \end{macrocode} +% \changes{v3.08}{2010/11/05}{leere Argumente in der Werteliste} +% Auf vielfachen Wunsch und entgegen meiner Überzeugung, sind auch leere +% Argumente in der Werteliste erlaubt, werden jedoch ignoriert: +% \begin{macrocode} + \ifx\reserved@b\@empty\else +% \end{macrocode} +% \changes{v3.12}{2012/03/04}{auch Leerzeichenargumente werden ignoriert} +% Auch Argumente, die nur aus einem Leerzeichen bestehen, werden ignoriert: +% \begin{macrocode} + \ifx\reserved@b\space\else + \edef\reserved@a{\unexpanded\expandafter{\reserved@a},% + \scr@key@name=\unexpanded\expandafter{\reserved@b}}% + \fi + \fi + }% + \def\reserved@b{\FamilyOptions{#1}}% + \expandafter\reserved@b\expandafter{\reserved@a}% +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\KOMAoptions} +% \changes{v2.96}{2006/08/20}{Neuer Hook nach den Optionen} +% \changes{v2.97c}{2007/04/19}{Optionen aller KOMA-Familien abarbeiten} +% \changes{v3.12}{2013/03/04}{Hook-Mechanismus von \cs{FamilyOptions} +% verwendent} +% Simple kleine Abkürzung. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMAoptions}{\FamilyOptions{KOMA}} +% +% \end{macrocode} +% \begin{macro}{\KOMA@options} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v3.12}{2013/03/04}{entfernt} +% \end{macro}^^A \KOMA@options +% \end{macro}^^A \KOMAoptions +% +% \begin{macro}{\post@kopt@hook} +% \changes{v3.12}{2013/03/04}{entfernt} +% \end{macro}^^A \post@kopt@hook +% \begin{macro}{\AfterKOMAoptions} +% \changes{v3.12}{2013/03/04}{Verwendung von \cs{AtEndOfFamilyOptions}} +% Eine Option kann dafür sorgen, dass nach den Optionen noch etwas passiert. +% \begin{macrocode} +%<*koma> +\newcommand*{\AfterKOMAoptions}{} +\let\AfterKOMAoptions\AtEndOfFamilyOptions +% +% \end{macrocode} +% \end{macro}^^A \AfterKOMAoptions +% +% \begin{macro}{\l@addto@macro} +% \changes{v2.8p}{2001/09/22}{neu (intern)} +% Damit \cs{AfterKOMAoptions} lokal möglich ist, wird eine lokal arbeitende +% Variante von \cs{g@addto@macro} benötigt, wie sie hier vorgestellt wird. +% \changes{v2.95}{2006/06/02}{korrigiert, damit es sich bezüglich +% Erweiterung um Makrodefinitonen mit Argumenten wie \cs{g@addto@macro} +% verhält} +% \changes{v3.12}{2013/04/20}{veraltete \eTeX-freie Version entfernt} +% \changes{v3.12}{2013/04/20}{Warnung, falls eine inkompatible Definition +% von \cs{l@addto@macro} entdeckt wird} +% \begin{macrocode} +%<*base> +\@ifundefined{l@addto@macro}{}{% + \begingroup + \long\def\reserved@a#1#2{% + \edef#1{\unexpanded\expandafter{#1#2}}% + }% + \ifx\reserved@a\l@addto@macro\else + \PackageWarning{scrbase}{% + Someone also uses macro name \string\l@addto@macro.\MessageBreak + When KOMA-Script author decided to use macro name\MessageBreak + \string\l@addto@macro\space first, there was no other + free\MessageBreak + LaTeX package using this macro name.\MessageBreak + In the meantime other package authers decided to use\MessageBreak + same macro name, but unfortunatly not all of those\MessageBreak + are compatible with KOMA-Script's definition, e.g.,\MessageBreak + while adding definitions with arguments to macros.\MessageBreak + Because of such potentially incompatible definitions,\MessageBreak + KOMA-Script will redefine the command now.\MessageBreak + Please ask the author of the other package to\MessageBreak + rename his macro, if a problem results in the\MessageBreak + redefinition% + }% + \fi + \endgroup +} +\long\def\l@addto@macro#1#2{% + \edef#1{\unexpanded\expandafter{#1#2}}% +}% +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\KOMAoption} +% \changes{v2.98c}{2008/03/12}{Neue Anweisung} +% \changes{v3.12}{2013/03/04}{Einfacher Aufruf von \cs{FamilyOption}} +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMAoption}{\FamilyOption{KOMA}} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\FamilyUnknownKeyValue} +% \changes{v3.10}{2011/09/12}{no error while processing global options}%^^A +% \changes{v3.11a}{2012/05/28}{prevent remove from list of unused global +% options globally}%^^A +% Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an einen +% Schlüssel. Das erste Argument ist die Familie, das zweite der Schlüssel, +% das dritte der Wert und das vierte die Liste der möglichen Werte. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyUnknownKeyValue}[4]{% + \FamilyKeyStateUnknownValue + \ifx\FamilyElseValues\@empty\else + \PackageWarning{scrbase}{non empty \string\FamilyElseValue + ignored.\MessageBreak + Setting this command to a non empty\MessageBreak + value for option `#2' of\MessageBreak + family `#1' is deprecated,\MessageBreak + but has been found + }% + \fi +} +% +% \end{macrocode} +% \begin{macro}{\FamilyElseValues} +% \changes{v3.00}{2008/05/02}{Neue Anweisung}%^^A +% \changes{v3.12}{2013/03/04}{wird intern nicht mehr verwendet}%^^A +% Diese Anweisung konnte ursprünglich vor dem Setzen eines Wertes definiert +% werden, um bei einer etwaigen Fehlermeldung weitere Werte als erlaubt +% auszugeben. Am Ende von \cs{FamilySetBool} und \cs{FamilySetNumerical} +% wird die Anweisung automatisch zu \cs{@empty}. Seit Version~3.12 wird +% diese Anweisung jedoch nicht mehr ausgewertet. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyElseValues}{} +% +% \end{macrocode} +% \end{macro}^^A \FamilyUnknownKeyValue +% \end{macro}^^A \FamilyElseValue +% +% \begin{macro}{\FamilyBoolKey} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% Dieses Makro definiert einen Schlüssel für eine Familie. Dieser Schlüssel +% ist ein Schalter, der über diverse Werte geschaltet werden kann. +% Das erste, optionale Argument ist das Familienmitglied, das zweite, +% obligatorische Argument ist die Familie, das dritte der Name des Schlüssels, +% das vierte der Schalter. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyBoolKey}[4][.\@currname.\@currext]{% + \@ifundefined{if#4}{% + \expandafter\newif\csname if#4\endcsname + }{}% + \DefineFamilyKey[{#1}]{#2}{#3}[true]{\FamilySetBool{#2}{#3}{#4}{##1}}% +} +% \end{macrocode} +% \begin{macro}{\FamilySetBool} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \changes{v3.11a}{2012/05/25}{Argument in Fehlermeldung korrigiert} +% Über diese Anweisung wird der Wert dann gesetzt. Dabei ist das erste +% Argument die Familie, das zweite der Name des Schlüssels, das dritte der +% Schalter und das vierte schließlich der gewünschte Wert. +% \begin{macrocode} +\newcommand*{\FamilySetBool}[4]{% + \ifstr{#4}{true}{\@nameuse{#3true}\FamilyKeyStateProcessed}{% + \ifstr{#4}{on}{\@nameuse{#3true}\FamilyKeyStateProcessed}{% + \ifstr{#4}{yes}{\@nameuse{#3true}\FamilyKeyStateProcessed}{% + \ifstr{#4}{false}{\@nameuse{#3false}\FamilyKeyStateProcessed}{% + \ifstr{#4}{off}{\@nameuse{#3false}\FamilyKeyStateProcessed}{% + \ifstr{#4}{no}{\@nameuse{#3false}\FamilyKeyStateProcessed}{% + \FamilyUnknownKeyValue{#1}{#2}{#4}{% + `true', `on', `yes', `false', `off', `no'% + }% + }% + }% + }% + }% + }% + }% + \let\FamilyElseValues\@empty +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\KOMA@unknown@keyval} +% Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an +% einen Schlüssel. Das erste Argument ist der Schlüssel, das zweite +% der Wert und das dritte die Liste der möglichen Werte. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@unknown@keyval}{\FamilyUnknownKeyValue{KOMA}} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\KOMA@ifkey} +% \changes{v3.02c}{2009/02/04}{definiert ebenfalls das Familienmitglied} +% Dieses Makro definiert einen Schlüssel, der einen Schalter an Hand des +% Wertes setzt. Als Werte sind "`\texttt{true}"', "`\texttt{false}"', +% "`\texttt{on}"', "`\texttt{off}"', "`\texttt{yes}"' und +% "`\texttt{no}"' erlaubt. Der Default-Wert für den Schalter ist +% grundsätzlich "`false"', so dass der Default-Wert für die Verwendung +% des Schküssels grundsätzlich "`true"' ist. Das erste Argument ist +% der Name des Schlüssels, der zweite ist der Name des Schalters. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@ifkey}{% + \DefineFamilyMember{KOMA}% + \FamilyBoolKey{KOMA}% +} +% +% \end{macrocode} +% \begin{macro}{\KOMA@set@ifkey} +% Die eigentliche Arbeit bei der ganzen Sache wird von diesem internen +% Makro erledigt. Dabei wird der Name des Schlüssels zu Argument 1, der +% Name des Schalters zu Argument 2 und der Wert des Schlüssels wird +% Argument 3. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@set@ifkey}{\FamilySetBool{KOMA}} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\FamilyCounterKey} +% \changes{v3.12}{2013/11/05}{neu}%^^A +% Dieses Makro definiert einen Schlüssel, der einen \LaTeX-Zähler an Hand +% des Wertes setzt. Das erste, optionale Argument ist das Familienmitglied, +% das zweite, obligatorische Argument ist die Familie, das dritte der Name +% des Schlüssels, das vierte der name des \LaTeX-Zählers. Erlaubt sind alle +% Integer-Werte. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyCounterKey}[4][.\@currname.\@currext]{% + \@ifundefined{c@#4}{\newcounter{#4}}{}% + \DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetCounter{#2}{#3}{#4}{##1}}% +} +% \end{macrocode} +% \begin{macro}{\FamilySetCounter} +% \changes{v3.12}{2013/11/05}{neu}%^^A +% Über diese Anwesiung wird der Wert dann gesetzt. Dabei ist das erste +% Argument die Familie, das zweite der Name des Schlüssels, das dritte der +% Name des \LaTeX-Zählers, das vierte schließlich der gewünschte Wert. +% \begin{macrocode} +\newcommand*{\FamilySetCounter}[4]{% + \ifiscount{#4}{\value{#3}=#4\FamilyKeyStateProcessed}{% + \ifisdimen{#4}{\value{#3}=#4\FamilyKeyStateProcessed}{% + \ifisskip{#4}{\value{#3}=#4\FamilyKeyState\Processed}{% + \ifisnumexpr{#4}{\value{#3}=#4\FamilyKeyStateProcessed}{% + \ifisdimexpr{#4}{\value{#3}=#4\FamilyKeyStateProcessed}{% + \ifisinteger{#4}{\value{#3}=#4\FamilyKeyStateProcessed}{% + \ifiscounter{#4}{\value{#3}=\value{#4}\FamilyKeyStateProcessed}{% + \FamilyUnknownKeyValue{#1}{#2}{#4}{% + integer numbers, counters, lengths, skips, dimens + }% + }% + }% + }% + }% + }% + }% + }% +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\FamilyCounterMacroKey} +% \changes{v3.12}{2013/11/05}{neu}%^^A +% \begin{macro}{\FamilySetCounterMacro} +% \changes{v3.12}{2013/11/05}{neu}%^^A +% Diese Anweisungen arbeitet fast wie \cs{FamilyCounterKey} und +% \cs{FamilySetCounter}, allerdings wird nicht ein Zähler gesetzt, sondern +% ein Makro auf einen Wert definiert. Dabei ist das erste Argument die +% Familie, das zweite der Name des Schlüssels, das dritte das Makro, das +% vierte schließlich der gewünschte Wert. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyCounterMacroKey}[4][.\@currname.\@currext]{% + \ifdefined#4\else\let#4\z@\fi + \DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetCounterMacro{#2}{#3}{#4}{##1}}% +} +\newcommand*{\FamilySetCounterMacro}[4]{% + \begingroup + \ifiscount{#4}{\@tempcnta=#4\FamilyKeyStateProcessed}{% + \ifisdimen{#4}{\@tempcnta=#4\FamilyKeyStateProcessed}{% + \ifisskip{#4}{\@tempcnta=#4\FamilyKeyState\Processed}{% + \ifisnumexpr{#4}{\@tempcnta=#4\FamilyKeyStateProcessed}{% + \ifisdimexpr{#4}{\@tempcnta=#4\FamilyKeyStateProcessed}{% + \ifisinteger{#4}{\@tempcnta=#4\FamilyKeyStateProcessed}{% + \ifiscounter{#4}{% + \@tempcnta=\value{#4}\FamilyKeyStateProcessed}{% + \FamilyUnknownKeyValue{#1}{#2}{#4}{% + integer numbers, counters, lengths, skips, dimens + }% + }% + }% + }% + }% + }% + }% + }% + \expandafter\expandafter\expandafter\endgroup + \expandafter\def\expandafter#3\expandafter{\the\@tempcnta}% +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\FamilyLengthKey} +% \changes{v3.12}{2013/11/05}{neu}%^^A +% Dieses Makro definiert einen Schlüssel, der eine \LaTeX-Länge an Hand +% des Wertes setzt. Das erste, optionale Argument ist das Familienmitglied, +% das zweite, obligatorische Argument ist die Familie, das dritte der Name +% des Schlüssels, das vierte der name der \LaTeX-Länge. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyLengthKey}[4][.\@currname.\@currext]{% + \ifdefined#4\else\newlength{#4}\fi + \DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetLength{#2}{#3}{#4}{##1}}% +} +% \end{macrocode} +% \begin{macro}{\FamilySetLength} +% \changes{v3.12}{2013/11/05}{neu}%^^A +% Über diese Anwesiung wird der Wert dann gesetzt. Dabei ist das erste +% Argument die Familie, das zweite der Name des Schlüssels, das dritte der +% Name der \LaTeX-Länge, das vierte schließlich der gewünschte Wert. +% \begin{macrocode} +\newcommand*{\FamilySetLength}[4]{% + \ifiscount{#4}{#3=#4\FamilyKeyStateProcessed}{% + \ifisdimen{#4}{#3=#4\FamilyKeyStateProcessed}{% + \ifisskip{#4}{#3=#4\FamilyKeyState\Processed}{% + \ifisnumexpr{#4}{#3=#4\FamilyKeyStateProcessed}{% + \ifisdimexpr{#4}{#3=#4\FamilyKeyStateProcessed}{% + \ifisglue{#4}{#3=#4\FamilyKeyStateProcessed}{% + \FamilyUnknownKeyValue{#1}{#2}{#4}{% + length values, counters, lengths, skips, dimens + }% + }% + }% + }% + }% + }% + }% +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\FamilyLengthMacroKey} +% \changes{v3.12}{2013/11/05}{neu}%^^A +% \begin{macro}{\FamilySetLengthMacro} +% \changes{v3.12}{2013/11/05}{neu}%^^A +% Diese Anweisungen arbeitet fast wie \cs{FamilyCounterKey} und +% \cs{FamilySetCounter}, allerdings wird nicht ein Zähler gesetzt, sondern +% ein Makro auf einen Wert definiert. Dabei ist das erste Argument die +% Familie, das zweite der Name des Schlüssels, das dritte das Makro, das +% vierte schließlich der gewünschte Wert. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyLengthMacroKey}[4][.\@currname.\@currext]{% + \ifdefined#4\else\let#4\z@\fi + \DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetLengthMacro{#2}{#3}{#4}{##1}}% +} +\newcommand*{\FamilySetLengthMacro}[4]{% + \begingroup + \ifiscount{#4}{\@tempskipa=#4\FamilyKeyStateProcessed}{% + \ifisdimen{#4}{\@temskipa=#4\FamilyKeyStateProcessed}{% + \ifisskip{#4}{\@tempkipa=#4\FamilyKeyState\Processed}{% + \ifisnumexpr{#4}{\@tempskipa=#4\FamilyKeyStateProcessed}{% + \ifisdimexpr{#4}{\@tempskipa=#4\FamilyKeyStateProcessed}{% + \ifisglue{#4}{\@tempskipa=#4\FamilyKeyStateProcessed}{% + \FamilyUnknownKeyValue{#1}{#2}{#4}{% + length values, counters, lengths, skips, dimens + }% + }% + }% + }% + }% + }% + }% + \expandafter\expandafter\expandafter\endgroup + \expandafter\def\expandafter#3\expandafter{\the\@tempskipa}% +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\FamilyNumericalKey} +% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \begin{macro}{\Family@Numerical@Key} +% \changes{v3.00}{2008/05/28}{Neu (intern)} +% \changes{v3.08b}{2011/03/31}{fehlendes Argument bei \cs{ifundefined}} +% Ein ähnliches Makro definiert einen Schlüssel, der ein nummerisches Makro +% auf einen bestimmten Wert setzt. Dabei können auch verschiedene symbolische +% Werte auf denselben nummerischen Wert abgebildet werden. Das erste, +% optionale Argument ist das Familienmitglied, das zweite, obligatorische +% Argument ist die Familie, das dritte, obligatorische Argument ist der Name +% der Option, das vierte, optionale Artument ist der Defaultwert für den +% Schlüssel, das fünfte, obligatorische Argument ist der Name des Makros, das +% (in der Voreinstellung als 0) definiert werden soll, das sechste, +% obligatorische Argument ist die Liste der symbolischen und nummerischen +% Werte. Die Liste hat die Form: +% \{\emph{Symbol}\}\{\emph{Wert}\},\{\emph{Symbol}\}\{\emph{Wert}\}\dots +% Das interne Makro wird benötigt, um das vierte, optionale Argument zu +% ermöglichen. Dabei ist dann das erste Argument nicht mehr optional, sondern +% obligatorisch. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyNumericalKey}[3][.\@currname.\@currext]{% + \@ifnextchar [%] + {\Family@Numerical@Key{#1}{#2}{#3}}{\Family@Numerical@Key{#1}{#2}{#3}[]}% +} +\newcommand*{\Family@Numerical@Key}{} +\def\Family@Numerical@Key#1#2#3[#4]#5#6{% + \@ifundefined{#5}{\@namedef{#5}{0}}{}% + \ifx\relax#4\relax + \DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetNumerical{#2}{#3}{#5}{#6}{##1}}% + \else + \DefineFamilyKey[{#1}]{#2}{#3}[{#4}]{% + \FamilySetNumerical{#2}{#3}{#5}{#6}{##1}}% + \fi +} +% \end{macrocode} +% \begin{macro}{\FamilySetNumerical} +% \changes{v3.11a}{2012/05/28}{call of \cs{FamilyUnknownKeyValue} outside of +% local group} +% Die eigentliche Arbeit dabei wird von diesem Makro erledigt. Dabei +% wird die Familie zu Argument 1, der Name des Schlüssels zu Argument 2, der +% Name des Makros, das definiert werden soll zu Argument 3, die Liste zu +% Argument 4 und der Wert, auf den gesetzt werden soll, zu Argument 5. +% \begin{macrocode} +\newcommand*{\FamilySetNumerical}[5]{% + \begingroup + \edef\@searched{#5}% + \let\reserved@a=\@empty + \let\reserved@b=\@empty + \@tempswafalse + \@for\@valuelist:=#4\do{% + \if@tempswa\else + \edef\reserved@c{\expandafter\@firstoftwo\@valuelist}% + \edef\reserved@a{\reserved@a\reserved@b`\reserved@c'}% + \edef\reserved@b{, }% + \ifx\reserved@c\@searched + \@tempswatrue + \edef\reserved@a{\expandafter\@secondoftwo\@valuelist}% + \fi + \fi + }% + \if@tempswa + \edef\reserved@a{\endgroup + \noexpand\@namedef{#3}{\reserved@a}% + \noexpand\FamilyKeyStateProcessed + }% + \else + \edef\reserved@a{\endgroup + \noexpand\FamilyUnknownKeyValue{#1}{#2}{#5}{\reserved@a}% + }% + \fi + \reserved@a + \let\FamilyElseValues\@empty +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\KOMA@ncmdkey} +% \changes{v3.02c}{2009/02/04}{definiert ebenfalls das Familienmitglied} +% Ein ähnliches Makro definiert einen Schlüssel, der ein nummerisches +% Makro auf einen bestimmten Wert setzt. Dabei können auch +% verschiedene symbolische Werte auf denselben nummerischen Wert +% abgebildet werden. Das erste Argument ist obligatorisch und der Name +% des Schlüssels. Das zweite Argument ist optional und der Defaultwert +% für den Schlüssel. Das dritte Argument ist obligatorisch und der +% Name des Makros, das definiert werden soll. Der Defaultwert dafür +% ist 0. Das vierte Argument ist obligatorisch und die Liste der +% symbolischen und nummerischen Wert. Die Liste hat die Form: +% \{\emph{Symbol}\}\{\emph{Wert}\},\{\emph{Symbol}\}\{\emph{Wert}\}\dots +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@ncmdkey}{% + \DefineFamilyMember{KOMA}% + \FamilyNumericalKey{KOMA}% +} +% +% \end{macrocode} +% \begin{macro}{\KOMA@set@ncmdkey} +% Die eigentliche Arbeit dabei wird wahlweise von diesem Makro erledigt. Dabei +% wird der Name des Schlüssels zu Argument 1, der Name des Makros, +% das definiert werden soll zu Argument 2, die Liste zu Argument 3 und +% der Wert, auf den gesetzt werden soll, zu Argument 4. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@set@ncmdkey}{\FamilySetNumerical{KOMA}} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\FamilyStringKey} +% \changes{v3.08}{2010/11/05}{Neue Anweisung} +% \changes{v3.08b}{2011/03/31}{\cs{Family@String@Key} und +% \cs{Family@@String@@Key} vertauscht} +% \begin{macro}{\Family@String@Key} +% \changes{v3.08}{2010/11/05}{Neu (intern)} +% \begin{macro}{\Family@@String@@Key} +% \changes{v3.08}{2010/11/05}{Neu (intern)} +% Ein ähnliches Makro definiert einen Schlüssel, der ein Makro auf einen +% beliegigen Wert setzt. Das erste, optionale Argument ist das +% Familienmitglied, das zweite, obligatorische Argument ist die Familie, das +% dritte, obligatorische Argument ist der Name der Option, das vierte, +% optionale Artument ist der Defaultwert für den Schlüssel, das fünfte, +% obligatorische Argument ist der Name des Makros, das (in der Voreinstellung +% als leer) definiert werden soll. Die internen Makro werden benötigt, um das +% vierte, optionale Argument zu ermöglichen. Dabei ist dann das erste Argument +% nicht mehr optional, sondern obligatorisch. +% \begin{macrocode} +%<*base> +\newcommand*{\FamilyStringKey}[3][.\@currname.\@currext]{% + \@ifnextchar [%] + {\Family@@String@@Key{#1}{#2}{#3}}{\Family@String@Key{#1}{#2}{#3}}% +} +\newcommand*{\Family@@String@@Key}{} +\long\def\Family@@String@@Key#1#2#3[#4]#5{% + \DefineFamilyKey[{#1}]{#2}{#3}[{#4}]{\def#5{##1}}% +} +\newcommand{\Family@String@Key}[4]{% + \DefineFamilyKey[{#1}]{#2}{#3}{\def#4{##1}\FamilyKeyStateProcessed}% +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\KOMA@DeclareDeprecatedOption} +% \changes{v3.01a}{2008/11/20}{neu (intern)} +% \begin{macro}{\KOMA@@DeclareDeprecatedOption} +% \changes{v3.01a}{2008/11/20}{neu (intern)} +% \begin{macro}{\KOMA@@@DeclareDeprecatedOption} +% \changes{v3.01a}{2008/11/20}{neu (intern)} +% Mit Hilfe dieses Makros kann eine Option definiert werden, die +% eigentlich obsolete ist. Statt dieser Option wird dann ein Schlüssel +% verwendet. Das erste Argument ist optional und muss dann der Paketname +% sein. Ist es nicht gesetzt, so wird stattdessen die Klasse +% \cs{KOMAClassName} angenommen. Das zweite Argument ist der Name der +% Option. Das vierte Argument ist das Setzen des gewünschten Schlüssels. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@DeclareDeprecatedOption}{% + \@ifnextchar [%] + {\KOMA@@DeclareDeprecatedOption}% + {\KOMA@@@DeclareDeprecatedOption{\ClassWarningNoLine{\KOMAClassName}}}% +} +\newcommand*{\KOMA@@DeclareDeprecatedOption}[1][]{% + \KOMA@@@DeclareDeprecatedOption{\PackageWarningNoLine{#1}}% +} +\newcommand*{\KOMA@@@DeclareDeprecatedOption}[3]{% + \DeclareOption{#2}{\KOMA@UseDeprecatedOption{#1}{#2}{#3}}% +} +% \end{macrocode} +% \begin{macro}{\KOMA@UseDeprecatedOption} +% \changes{v3.01a}{2008/11/20}{neu (intern)}% +% \changes{v3.12}{2013/03/04}{Test für \texttt{version!=first}}% +% Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind +% 1. Meldungsbefehl, 2. obsolete Option, 3. Setzen des Schlüssels. +% \begin{macrocode} +\newcommand*{\KOMA@UseDeprecatedOption}[3]{% + \let\scr@sr@co\CurrentOption + \begingroup + #1{% + You've used obsolete option `#2'.\MessageBreak + Usage of this option indicates an old document and\MessageBreak + \scr@ifundefinedorrelax{KV@KOMA.\@currname.\@currext @version}{% + changes compatibility level using\MessageBreak + `#3,version=first'.\MessageBreak + If you don't want this, y% + }{% + is deprecated.\MessageBreak + Y% + }% + ou should simply replace\MessageBreak + usage of option `#2' by `#3'% + }% + \endgroup + \KOMAExecuteOptions{#3,version=first}% + \let\CurrentOption\scr@sr@co +} +% +% \end{macrocode} +% \end{macro}^^A \KOMA@UseDeprecatedOption +% \end{macro}^^A \KOMA@@@DeclareDeprecatedOption +% \end{macro}^^A \KOMA@@DeclareDeprecatedOption +% \end{macro}^^A \KOMA@DeclareDeprecatedOption +% +% +% \begin{macro}{\KOMA@DeclareStandardOption} +% \changes{v3.01a}{2008/11/21}{neu (intern)} +% \begin{macro}{\KOMA@@DeclareStandardOption} +% \changes{v3.01a}{2008/11/21}{neu (intern)} +% \begin{macro}{\KOMA@@@DeclareStandardOption} +% \changes{v3.01a}{2008/11/21}{neu (intern)} +% Mit Hilfe dieses Makros kann eine Option definiert werden, die +% eigentlich obsolete ist. Statt dieser Option wird dann ein Schlüssel +% verwendet. Das erste Argument ist optional und muss dann der Paketname +% sein. Ist es nicht gesetzt, so wird stattdessen die Klasse +% \cs{KOMAClassName} angenommen. Das zweite Argument ist der Name der +% Option. Das vierte Argument ist das Setzen des gewünschten Schlüssels. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@DeclareStandardOption}{% + \@ifnextchar [%] + {\KOMA@@DeclareStandardOption}% + {\KOMA@@@DeclareStandardOption{\ClassInfoNoLine{\KOMAClassName}}}% +} +\newcommand*{\KOMA@@DeclareStandardOption}[1][]{% + \KOMA@@@DeclareStandardOption{\PackageInfoNoLine{#1}}% +} +\newcommand*{\KOMA@@@DeclareStandardOption}[3]{% + \DeclareOption{#2}{\KOMA@UseStandardOption{#1}{#2}{#3}}% +} +% \end{macrocode} +% \begin{macro}{\KOMA@UseStandardOption} +% \changes{v3.01a}{2008/11/21}{neu (intern)} +% Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind +% 1. Meldungsbefehl, 2. obsolete Option, 3. Setzen des Schlüssels. +% \begin{macrocode} +\newcommand*{\KOMA@UseStandardOption}[3]{% + \let\scr@sr@co\CurrentOption + #1{% + You've used standard option `#2'.\MessageBreak + This is correct!\MessageBreak + Internally I'm using `#3'.\MessageBreak + If you'd like to set the option with \string\KOMAoptions,\MessageBreak + you'd have to use `#3' there\MessageBreak + instead of `#2', too% + }% + \KOMAExecuteOptions{#3}% + \let\CurrentOption\scr@sr@co +} +% \end{macrocode} +% \begin{macro}{\scr@sr@co} +% \changes{v2.96}{2006/08/20}{neu (intern)} +% Da das \texttt{xkeyval}-Paket leider \cs{CurrentOption} vernichtet, das aber +% innerhalb von \cs{ProcessOptions} und \cs{KOMAProcessOptions} nach dem +% Ausführen der Option noch benötigt wird, muss die Anweisung gesichert +% werden. Dafür wird ein Hilfsmakro benötigt. +% \begin{macrocode} +\newcommand*{\scr@sr@co}{} +% +% \end{macrocode} +% \end{macro}^^A \scr@sr@co +% \end{macro}^^A \KOMA@UseStandardOption +% \end{macro}^^A \KOMA@@@DeclareStandardOption +% \end{macro}^^A \KOMA@@DeclareStandardOption +% \end{macro}^^A \KOMA@DeclareStandardOption +% +% +% \begin{macro}{\KOMA@DeclareObsoleteOption} +% \changes{v2.96}{2006/08/20}{\cs{CurrentOption wir geschützt}} +% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt} +% \begin{macro}{\KOMA@@DeclareObsoleteOption} +% \changes{v2.98c}{2008/02/18}{neu (intern)} +% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt} +% \begin{macro}{\KOMA@@@DeclareObsoleteOption} +% \changes{v2.98c}{2008/02/18}{neu (intern)} +% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt} +% \begin{macro}{\KOMA@iv@DeclareObsoleteOption} +% \changes{v2.98c}{2008/02/18}{neu (intern)} +% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt} +% \begin{macro}{\KOMA@UseObsoleteOption} +% \changes{v2.97c}{2007/04/19}{neu (intern)} +% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt} +% \end{macro}^^A \KOMA@UseObsoleteOption +% \end{macro}^^A \KOMA@iv@DeclareObsoleteOption +% \end{macro}^^A \KOMA@iii@DeclareObsoleteOption +% \end{macro}^^A \KOMA@ii@DeclareObsoleteOption +% \end{macro}^^A \KOMA@i@DeclareObsoleteOption +% +% +% \begin{macro}{\KOMA@newdeprecatedcommand} +% \changes{v3.12}{2013/03/04}{renamed \cs{KOMA@newobsoletecommand} into +% \cs{KOMA@newdeprecatedcommand}} +% Mit Hilfe dieses Makros kann ein Makro definiert werden, das +% eigentlich obsolete ist. Das Makro verwendet dann schlicht einen +% Schlüssel. Das erste Argument ist optional und muss dann entweder +% \cs{PackageInfo}, \cs{PackageInfoNoLine}, \cs{PackageWarning} oder +% \cs{PackageWarningNoLine} sein. Das zweite Argument ist das Makro. +% Das dritte Argument ist das Setzen des gewünschten Schlüssels. Das +% definierte Makro selbst hat Schaltercharakter, ist also nicht +% \cs{long} und versteht auch keine Argumente. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@newdeprecatedcommand}[3][\@gobbletwo]{% + \newcommand*{#2}{\KOMA@UseDeprecatedCommand{#1}{\string#2}{#3}}% +} +% \end{macrocode} +% \begin{macro}{\KOMA@UseDeprecatedCommand} +% \changes{v2.97c}{2007/04/19}{neu (intern)} +% \changes{v3.12}{2013/03/04}{renamed \cs{KOMA@UseObsoleteCommand} into +% \cs{KOMA@UseDeprecatedCommand}} +% Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind +% dieselben. +% \begin{macrocode} +\newcommand*{\KOMA@UseDeprecatedCommand}[3]{% + #1{% + scrkbase% + }{% + You've used deprecated command `#2'.\MessageBreak + \protect\KOMAoptions{#3} will be used instead.\MessageBreak + You should also replace `#2' by `\protect\KOMAoptions{#3}'% + }% + \KOMAoptions{#3}% +} +% +% \end{macrocode} +% \end{macro}^^A \KOMA@UseDeprecatedCommand +% \end{macro}^^A \KOMA@newdeprecatedcommand +% +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-basics.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-bibliography.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-bibliography.dtx new file mode 100644 index 00000000000..0522f044522 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-bibliography.dtx @@ -0,0 +1,661 @@ +% \CheckSum{419} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-bibliography.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-bibliography.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-bibliography.dtx 1380 2013-10-01 15:31:55Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-bibliography.dtx}[2013/09/24 v3.12 KOMA-Script + (bibliography)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-bibliography.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei + \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/06/30}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Literaturverzeichnis} +% +% Das Literaturverzeichnis unterscheidet sich bei \KOMAScript{} nicht +% wesentlich von den Standardklassen. +% +% Briefe haben kein Literaturverzeichnis. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*!letter> +% \fi +% +% \iffalse +%<*option> +% \fi +% \subsection{Anweisungen, die für die Optionen benötigt werden} +% +% Einige Anweisungen werden über Optionen verändert. Dazu müssen sie aber +% bereits vor der Abarbeitung der Optionen definiert sein. +% +% \subsubsection{Literaturverzeichnisstile} +% +% \begin{macro}{\newbibstyle} +% \changes{v2.98c}{2008/02/15}{Neu} +% Neue Literaturverzeichnisstile müssen mit dieser Anweisung definiert werden, +% wenn sie von der Fehlermeldung korrekt angezeigt werden sollen. Das erste, +% optionale Argument ist der Name eines Elternstils. Das zweite +% Argument ist der Name des Stils. Das dritte Argument ist Code für den +% Stil. Darin sollten normalerweise Umdefinierungen für \cs{@openbib@code}, +% \cs{newblock}, \cs{bib@beginhook}, \cs{bib@endhook} enthalten sein. Die +% genannten Makros werden am Anfang des Stils zurückgesetzt. Danach wird der +% Elternstil geladen und dann die eigenen Definitionen. +% \begin{macrocode} +\newcommand{\newbibstyle}[3][]{% + \scr@ifundefinedorrelax{scr@bibstyle@#2}{% + \scr@ifundefinedorrelax{scr@bibstyle@#1}{% + \ClassError{\KOMAClassName}{% + parent bibliography style `#1' does not exist}{% + You've told me to define the new bibliography style `#2'\MessageBreak + to be a child of bibliography style `#1', but bibliography + style\MessageBreak + `#1' does not exist.\MessageBreak + You have to remove the parent declaration or use an existing parent! + See the KOMA-Script manual for more information.% + }% + }{% + \@namedef{scr@bibstyle@#2}{% + \let\@openbib@code\@empty + \let\newblock\@empty + \let\bib@beginhook\@empty + \let\bib@endhook\@empty + \csname scr@bibstyle@#1\endcsname + #3% + }% + \g@addto@macro\scr@bibstylelist{, `#2'}% + }% + }{% + \ClassError{\KOMAClassName}{bibliography style `#2' already exists}{% + You've told me to define the new bibliography style `#2',\MessageBreak + but this style already exists.\MessageBreak + You have to use another bibliography style name.\MessageBreak + See the KOMA-Script manual for more information.% + }% + }% +} +% \end{macrocode} +% \begin{macro}{\scr@bibstyle@} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% Nur ein Dummy, wenn kein Elternstil existiert. +% \begin{macrocode} +\newcommand*{\scr@bibstyle@}{} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\bib@beginhook} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% \begin{macro}{\bib@endhook} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% Die beiden Haken, wie sie durch den Literaturverzeichnisstil vorgegeben +% werden. +% \begin{macrocode} +\newcommand*{\bib@beginhook}{} +\newcommand*{\bib@endhook}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\scr@bibstylelist} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% Liste der mit \cs{newbibstyle} definierten und daher bekannten +% Literaturverzeichnisstile. +% \begin{macro}{\@openbib@code} +% \changes{v2.3g}{1996/01/14}{Neu (intern)} +% \changes{v2.98c}{2008/02/15}{wird nun früher definiert} +% Code, der am Anfang des Literaturverzeichnisses ausgeführt wird und +% normalerweise ursprünglich für die \texttt{openbib}-Funktionalität verwendet +% wurde. Inzwischen wird er für die komplette Stilauswahl verwendet. +% \begin{macro}{\newblock} +% \changes{v2.3g}{1996/01/14}{Grundeinstellung geändert} +% \changes{v2.98c}{2008/02/15}{wird nun früher definiert} +% \begin{macrocode} +\newcommand*{\scr@bibstylelist}{\@gobble} +\newcommand*{\@openbib@code}{} +\newcommand*{\newblock}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\scr@bibstyle@openstyle} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% Vordefiniert sind zwei Stile. Mit dem Bibliographystil \texttt{openstyle} +% kann eine alternative Darstellung der Literatureinträge aktiviert +% werden. Dabei fügt \cs{newblock} keinen horizontalen Abstand mehr ein, +% sondern beginnt einen neuen Absatz (in Form einer neuen Zeile). +% \begin{macro}{\scr@bibstyle@oldstyle} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% Der Stil \texttt{oldstyle} entspricht hingegen der Voreinstellung. +% \begin{macrocode} +\newbibstyle{openstyle}{% + \renewcommand*{\@openbib@code}{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% + \renewcommand*{\newblock}{\par}% +} +\newbibstyle{oldstyle}{% + \renewcommand*{\newblock}{\hskip .11em\@plus.33em\@minus.07em}% +} +\scr@bibstyle@oldstyle +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsubsection{Überschrift des Literaturverzeichnisses} +% +% \begin{macro}{\bib@heading} +% \changes{v2.3h}{1995/01/21}{neu (intern)}% +% \changes{v2.6c}{2000/06/10}{die Präambel wird gesetzt}% +% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird verwendet}% +% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die +% \texttt{thebibliography}-Umgebung verschoben}% +% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}% +% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}% +% \changes{v3.12}{2012/02/06}{\cs{ifbib@leveldown} wird beachtet}% +% Befehl zum Setzen der Überschrift des Literaturverzeichnisses. +% \begin{macrocode} +\newcommand*\bib@heading{% +%<*article> + \ifbib@leveldown + \subsection*{\refname}% + \ifx\@mkboth\@gobble\else\markright{\MakeMarkcase{\refname}}\fi + \else + \section*{\refname}% + \@mkboth{\MakeMarkcase{\refname}}{\MakeMarkcase{\refname}}% + \fi +% +%<*book|report> + \ifbib@leveldown + \section*{\bibname}% + \ifx\@mkboth\@gobble\else\markright{\MakeMarkcase{\bibname}}\fi + \else + \chapter*{\bibname}% + \@mkboth{\MakeMarkcase{\bibname}}{\MakeMarkcase{\bibname}}% + \fi +% +}% +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{Optionen für das Literaturverzeichnis} +% +% \begin{option}{bibliography} +% \changes{v2.98c}{2008/02/15}{Neu}%^^A +% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%^^A +% \changes{v3.12}{2013/02/06}{neuer Wert \texttt{leveldown}}%^^A +% \changes{v3.12}{2013/02/06}{neuer Wert \texttt{standardlevel}}%^^A +% \changes{v3.12}{2013/03/05}{an die Änderungen in \textsf{scrbase} +% angepasst}%^^A +% \changes{v3.12}{2013/09/28}{Verwendung von \cs{addxcontentsline} statt +% \cs{addcontentsline}}%^^A +% \changes{v3.12}{2013/09/28}{Es werden keine Kapiteleinträge in andere +% Verzeichnisse geschrieben.}%^^A +% Dies ist der Generalschlüssel für alle Optionen, die das +% Literaturverzeichnis betreffen. Neu ist, dass verschiedene Stile definiert +% werden können. Desweiteren kann man \texttt{totoc} und +% \texttt{totocnumbered} wieder mit \texttt{nottotoc} aufgeben. +% \begin{macro}{\ifbib@leveldown} +% \changes{v3.12}{2013/02/06}{neuer Schalter (intern)} +% Für den ab Version~3.12 neuen Wert \texttt{leveldown} und dessen +% Gegenstück \texttt{standardlevel} wird außerdem ein Schalter benötigt. +% \begin{macrocode} +\newif\ifbib@leveldown +\KOMA@key{bibliography}{% + \scr@ifundefinedorrelax{scr@bibstyle@#1}{% + \KOMA@set@ncmdkey{bibliography}{@tempa}{% + {notoc}{0},{nottotoc}{0},{plainheading}{0},% + {totoc}{1},{toc}{1},{notnumbered}{1},% + {numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},% + {numberedtoc}{2},% + {leveldown}{3},% + {standardlevel}{4}% + }{#1}% + \ifcase \@tempa\relax + \renewcommand*\bib@heading{% +%<*article> + \ifbib@leveldown + \subsection*{\refname}% + \ifx\@mkboth\@gobble\else\markright{\MakeMarkcase{\refname}}\fi + \else + \section*{\refname}% + \@mkboth{\MakeMarkcase{\refname}}{\MakeMarkcase{\refname}}% + \fi +% +%<*book|report> + \ifbib@leveldown + \section*{\bibname}% + \ifx\@mkboth\@gobble\else\markright{\MakeMarkcase{\bibname}}\fi + \else + \chapter*{\bibname}% + \@mkboth{\MakeMarkcase{\bibname}}{\MakeMarkcase{\bibname}}% + \fi +% + }% + \or% totoc + \renewcommand*\bib@heading{% +%<*article> + \ifbib@leveldown + \subsection*{% + \addxcontentsline{toc}{subsection}{\refname}% + \refname + }% + \ifx\@mkboth\@gobble\else\markright{\MakeMarkcase{\refname}}\fi + \else + \addsec{\refname} + \@mkboth{\MakeMarkcase{\refname}}{\MakeMarkcase{\refname}}% + \fi +% +%<*book|report> + \ifbib@leveldown + \addsec{\bibname} + \else + \if@chaptertolists + \@chaptertolistsfalse\addchap{\bibname}\@chaptertoliststrue + \else + \addchap{\bibname} + \fi + \@mkboth{\MakeMarkcase{\bibname}}{\MakeMarkcase{\bibname}}% + \fi +% + }% + \or% numbered + \renewcommand*\bib@heading{% +%<*article> + \ifbib@leveldown + \subsection{\refname}% + \else + \section{\refname}% + \@mkboth{\MakeMarkcase{\sectionmarkformat \refname}}% + {\MakeMarkcase{\sectionmarkformat \refname}}% + \fi +% +%<*book|report> + \ifbib@leveldown + \section{\bibname}% + \else + \if@chaptertolists + \@chaptertolistsfalse\chapter{\bibname}\@chaptertoliststrue + \else + \chapter{\bibname} + \fi + \@mkboth{\MakeMarkcase{\chaptermarkformat \bibname}}% + {\MakeMarkcase{\chaptermarkformat \bibname}}% + \fi +% + } + \or% leveldown + \bib@leveldowntrue + \or% standardlevel + \bib@leveldownfalse + \fi + }{% + \csname scr@bibstyle@#1\endcsname + \FamilyKeyStateProcessed + }% +} +% \end{macrocode} +% \end{macro} +% \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} +% \changes{v2.98c}{2008/02/15}{obsolete} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% Mit dieser Option kann eine alternative Darstellung der +% Literatureinträge aktiviert werden. Dabei fügt \cs{newblock} keinen +% horizontalen Abstand mehr ein, sondern beginnt einen neuen Absatz +% (in Form einer neuen Zeile). +% \begin{macrocode} +\KOMA@DeclareStandardOption{openbib}{bibliography=openstyle} +% \end{macrocode} +% \end{option} +% +% \begin{option}{bibtotoc} +% \changes{v2.3h}{1995/01/21}{neue Option} +% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt} +% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt} +% \changes{v2.7}{2001/01/03}{Klammerung korrigiert} +% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die +% thebibliography-Umgebung verschoben} +% \changes{v2.98c}{2008/02/15}{obsolete} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{bibtotocnumbered} +% \changes{v2.3h}{1995/01/21}{neue Option} +% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt} +% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt} +% \changes{v2.7}{2001/01/03}{Klammerung korrigiert} +% \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äambel in die +% thebibliography-Umgebung verschoben} +% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel} +% \changes{v2.98c}{2008/02/15}{obsolete} +% \changes{v3.01a}{2008/11/20}{deprecated} +% Die Option \texttt{bibtotoc} sorgt dafür, dass das +% Literaturverzeichnis im Inhaltsverzeichnis aufgeführt wird. +% Demgegenüber erweitert die Option \texttt{bibtotocnumbered} zu einem +% normalen Kapitel einschließlich Nummerierung. +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{bibtotoc}{bibliography=totoc} +\KOMA@DeclareDeprecatedOption{bibtotocnumbered}{bibliography=totocnumbered} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \iffalse +% +%<*body> +% \fi +% +% +% \subsection{Standardbezeichner} +% +% \begin{macro}{\refname} +% \begin{macro}{\bibname} +% Je nach Klasse wird \cs{refname} oder \cs{bibname} verwendet. +% \begin{macrocode} +%
\newcommand*\refname{References} +%\newcommand*\bibname{Bibliography} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{Definitionen für das Literaturverzeichnis} +% +% \begin{macro}{\setbibpreamble} +% \changes{v2.6c}{2000/06/10}{neu} +% \changes{v2.7j}{2001/05/27}{\cs{renewcommand} durch \cs{def} +% ersetzt zur Erhöhung der \textsf{natbib}-Kompatibilität} +% \begin{macro}{\bibpreamble} +% \changes{v2.6c}{2000/06/10}{neue (intern)} +% \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 Überschrift eingefügt +% wird. Dasselbe Makro wird von \textsf{natbib} als \cs{relax} +% definiert; aus Kompatibilitätsgründen wird hier vergleichbar +% verfahren und \cs{let} bzw. \cs{def} statt \cs{renewcommand} +% verwendet. +% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die +% \texttt{thebibliography}-Umgebung verschoben} +% Außerdem wird ab Version 2.7j die Präambel nicht mehr in +% \cs{bib@heading} gesetzt, sondern in der +% \texttt{thebibliography}-Umgebung. Dies dient ebenfalls der +% Kompatibilität mit natbib. Trotz aller Kompatibilität ist +% \cs{bibpreamble} als internes Makro zu betrachten. +% \begin{macrocode} +\newcommand*{\bibpreamble}{\relax} +\let\bibpreamble\relax +\newcommand{\setbibpreamble}[1]{\def\bibpreamble{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{Length}{bibindent} +% Der Einzug der Einträge bei \texttt{openbib}. Voreingestellt sind +% 1,5\,em. +% \begin{macrocode} +\newdimen\bibindent +\bibindent=1.5em +% \end{macrocode} +% \end{Length} +% +% \begin{environment}{thebibliography} +% \changes{v2.2a}{1995/02/01}{in \textsf{scrartcl} \cs{bibname} +% vollständig durch \cs{refname} ersetzt} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{bib@heading}} +% \changes{v2.8q}{2002/01/10}{Erkennung und gesonderte Behandlung +% leerer Präambeln} +% \changes{v2.9o}{2003/03/06}{Vergleich \cs{bibpreamble} mit \cs{@empty} +% korrigiert} +% \changes{v2.98c}{2008/02/15}{Neue Haken \cs{bib@before@hook} und +% \cs{bib@after@hook} eingefügt} +% Nun werden noch die Umgebung für das Literaturverzeichnis und der +% Befehl für die einzelnen Einträge definiert. +% \begin{macrocode} +\newenvironment{thebibliography}[1]{% + \if@bib@break@ + \bib@beginhook + \else +%<*book|report> + \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else + \setchapterpreamble{\bibpreamble}% + \fi\fi +% + \bib@heading +%<*article> + \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else + \noindent\bibpreamble\par\nobreak + \fi\fi +%
+ \bib@beginhook + \bib@before@hook + \fi +% \end{macrocode} +% \begin{macro}{\BreakBibliography} +% \changes{v2.98c}{2008/02/15}{Neu} +% An dieser Stelle wird \cs{BreakBibliography} passend umdefiniert. +% \begin{macrocode} + \renewcommand{\BreakBibliography}[1]{% + \@bib@break + \end{thebibliography}% + \begingroup ##1\endgroup + \begin{thebibliography}{#1} + }% +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +% Hier geht es jetzt mit \texttt{thebibliography} weiter. + \list{% + \@biblabel{\@arabic\c@enumiv}% + }{% + \settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \if@bib@break@ + \edef\@tempa{% + \noexpand\usecounter{enumiv}% + \noexpand\setcounter{enumiv}{\the\c@enumiv}% + }\@tempa + \no@bib@break + \else + \usecounter{enumiv}% + \fi + \let\p@enumiv\@empty + \renewcommand*\theenumiv{\@arabic\c@enumiv}% + }% + \sloppy\clubpenalty4000 \widowpenalty4000 + \sfcode`\.=\@m +}{% + \if@bib@break@ + \def\@noitemerr{% + \@latex@warning{% + \string\BreakBibliography\space at begin of `thebibliography' + environment\MessageBreak + or following \string\BreakBibliography}% + }% + \else + \def\@noitemerr{% + \@latex@warning{% + Empty `thebibliography' environment or + \string\BreakBibliography\MessageBreak + before end of `thebibliography' environment}% + }% + \fi + \endlist + \if@bib@break@ + \else + \bib@after@hook + \let\bib@before@hook\@empty + \let\bib@after@hook\@empty + \fi + \bib@endhook +} +% \end{macrocode} +% \begin{macro}{\if@bib@break@} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% \begin{macro}{\no@bib@break} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% \begin{macro}{\@bib@break} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% Dieser Hilfsschalter arbeitet immer global! +% \begin{macrocode} +\newif\if@bib@break@ +\newcommand{\no@bib@break}{\global\let\if@bib@break@\iffalse} +\newcommand*{\@bib@break}{\global\let\if@bib@break@\iftrue} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\bib@before@hook} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% \begin{macro}{\bib@after@hook} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% \begin{macrocode} +\newcommand*{\bib@before@hook}{} +\newcommand*{\bib@after@hook}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{environment} +% +% \begin{macro}{\BreakBibliography} +% \changes{v2.98c}{2008/02/15}{Neu} +% Diese Anweisung unterbricht normalerweise das Literaturverzeichnis für ein +% paar eigene Anweisungen (z. B. Unterüberschriften). Wenn jedoch nicht das +% \KOMAScript-Literaturverzeichnis verwendet wird, dann gibt es eine Warnung +% aus. +% \begin{macrocode} +\newcommand{\BreakBibliography}[1]{% + \ClassWarning{\KOMAClassName}{% + You've used \string\BreakBibliography\space either outside of\MessageBreak + the bibliography or `thebibliography' was redefined\MessageBreak + incompatible, e.g., using a bibliography package.\MessageBreak + \string\BreakBibliography\space ignored% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AfterBibliographyPreamble} +% \changes{v2.98c}{2008/02/15}{Neu} +% \begin{macro}{\AtEndBibliography} +% \changes{v2.98c}{2008/02/15}{Neu} +% Zwei neue Anweisungen, um am Anfang des Literaturverzeichnisses, nach +% Überschrift und Präambel, und am Ende des Literaturverzeichnisses, nach +% Abschluss der Liste, Code einschleusen zu können. Das funktioniert natürlich +% nur so lange, wie keine Paket verwendet wird, das die Umgebung umdefiniert. +% \begin{macrocode} +\newcommand{\AfterBibliographyPreamble}{\g@addto@macro\bib@before@hook} +\newcommand{\AtEndBibliography}{\g@addto@macro\bib@after@hook} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \iffalse +% +% \fi +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-bibliography.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-circularletters.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-circularletters.dtx new file mode 100644 index 00000000000..edc41d19aeb --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-circularletters.dtx @@ -0,0 +1,159 @@ +% \CheckSum{36} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-circularletters.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-circularletters.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-circularletters.dtx 1384 2013-10-01 15:51:14Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-circularletters.dtx}[2006/03/28 v2.95 KOMA-Script (circular letters)] +% \iffalse +\documentclass{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-circularletters.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2006/03/22}{% +% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} +% +% \section{Serienbriefe und Adressdateien} +% +% Die \KOMAScript-Brief-Klasse unterstützt die Verwendung von Adressdateien +% beispielsweise für Serienbriefe. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*letter> +%<*option> +% \fi +% +% \subsection{Option} +% Die Implementierung ist von Optionen unabhängig. +% +% +% \iffalse +% +%<*body> +% \fi +% +% \subsection{Makos für Serienbriefe und Adressdateien} +% +% \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über hinaus werden mit diesen Befehlen +% Abkürzungen für Adressen definiert. Durch die Definition mit Hilfe von +% \cs{addrentry} bzw. \cs{addrchar} müssen vom Anwender für 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öglichen 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} +% +% \iffalse +% +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-circularletters.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-compatibility.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-compatibility.dtx new file mode 100644 index 00000000000..d98490a00ba --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-compatibility.dtx @@ -0,0 +1,497 @@ +% \CheckSum{142} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-compatibility.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-compatibility.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-compatibility.dtx 1512 2013-11-11 10:35:04Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-compatibility.dtx}[2013/11/05 v3.11b KOMA-Script + (compatibility)] +% \iffalse +\documentclass{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-compatibility.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2006/03/16}{% +% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} +% +% +% \section{Kompatibilität mit den Standardklassen oder +% zu früheren Versionen} +% +% \KOMAScript{} ist bezüglich der Anwenderschnittstelle von vornherein +% aufwärtskompatibel mit den Standardklassen. Allerdings unterscheiden sich +% diverse Voreinstellungen doch sehr erheblich von denen der +% Standardklassen. In Zukunft soll man beim Laden der Klassen (nicht jedoch +% später!) mit Option \texttt{emulatestandardclasses} die Voreinstellungen +% anpassen können. Dabei wird jedoch nicht komplette Umbruchkompatibilität mit +% den Standardklassen erreicht, sondern nur einige Einstellungen werden +% angepasst. +% +% +% Manchmal ist es sinnvoll, dass sich eine neue Version von \KOMAScript{} +% etwas anders verhält als frühere Versionen. Gleichzeitig ist es aber für den +% Anwender manchmal auch notwendig, dass sich neue Versionen ganz genau so +% verhalten wie frühere. Daher wird eine Option geboten, mit der man die +% Kompatibilität selbst steuern kann. Voreingestellt ist jeweils maximale +% Kompatibilität. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Optionen für die Kompatibilität mit den Standardklassen} +% Hier gibt es derzeit nur eine Optione, die nur beim Laden aber nicht zur +% Laufzeit verwendet werden kann: +% +% \begin{option}{emulatestandardclasses} +% \changes{v3.12}{2013/11/11}{Neue Option} +% Diese Option muss sich auf diverse andere Einstellungen auswirken und +% sollte deshalb so früh wie möglich verwendet werden. Vieles ändert sie +% sofort, manches aber auch erst später. +% \begin{macro}{\if@scr@emulatestandardclasses} +% \changes{v3.12}{2013/11/11}{Neuer Schalter (intern)} +% Für die späteren Änderungen wird ein Schalter benötigt, der jedoch nicht +% wie gewohnt geändert werden kann. +% \begin{macrocode} +%<*class&!letter> +\newif\if@scr@emulatestandardclasses +\let\scr@emulatestandardclassestrue\relax +\let\scr@emulatestandardclassesfalse\relax +\DeclareOption{emulatestandardclasses}{% + \let\if@scr@emulatestandardclasses\iftrue + \KOMAExecuteOptions{% + fontsize=10pt,% +% headings=standardclasses,% + cleardoublepage=current + }% + \newcommand*{\defaultpapersize}{letter}% + \AtEndOfClass{% + \setkomafont{descriptionlabel}{\bfseries}% + \setkomafont{dictum}{\normalfont\small}% + \setkomafont{caption}{}% + \setkomafont{captionlabel}{}% + \setcapindent{0pt}% + \RequirePackage[pagestyleset=standard,markcase=upper]{scrlayer-scrpage}% + \PreventPackageFromLoading{scrpage2}% + \setkomafont{pagenumber}{\normalfont}% + \setkomafont{pageheadfoot}{\normalfont}% + \cfoot[\pagemark]{}% +% \pagestyle{plain}% + }% +} +% +% \end{macrocode} +% \end{macro} +% \end{option} +% +% +% \subsection{Option für die Kompatibilität zu früheren Versionen} +% Die gesamte Kompatibilitätssteuerung erfolgt mit einer einzigen Option, bei +% der man angibt, zu welcher Version Kompatibilität hergestellt werden +% soll. Dies bedeutet ggf. dann auch, dass einzelne neuere Möglichkeiten nicht +% zur Verfügung stehen. +% \changes{v3.01b}{2008/12/09}{Kompatibilitätseinstellungen werden in Paketen +% nur definiert, wenn sie noch nicht vorhanden sind} +% +% \begin{option}{version} +% \changes{v2.9u}{2005/03/05}{Neue Option} +% \changes{v2.95}{2006/03/16}{Option kann nur beim Laden der Klasse gesetzt +% werden} +% \begin{macro}{\scr@compatibility} +% \changes{v2.9u}{2005/03/05}{Neues Macro} +% \changes{v3.01a}{2008/11/20}{Voreinstellung auf \textit{last} geändert} +% \begin{macro}{\scr@ta@compatibility} +% \changes{v3.01b}{2008/12/09}{Neues Macro} +% In einigen Fällen sind Verbesserungen nicht kompatibel mit früheren +% Versionen. Deshalb sind solche Verbesserungen nur verfügbar, wenn mit diesem +% Schalter die neue Version ausgewählt wird. Aber es gilt: Entweder kompatibel +% oder in allen Dingen neu. Mischmasch machen wir nicht. Die aktuell +% eingestellte Kompatibilität wird in \cs{scr@compatibility} als Zahl +% gespeichert. In den Makros \cs{scr@v@\emph{Version}} werden die +% zugehörigen Nummern gespeichert. +% \begin{macrocode} +%\newcommand* +%\providecommand* + {\scr@compatibility}{\scr@v@last} +%\newcommand*{\scr@ta@compatibility}{\scr@compatibility} +\KOMA@key{version}[last]{% + \scr@ifundefinedorrelax{scr@v@#1}{% + \def\scr@compatibility{0}% +% \ClassWarningNoLine{\KOMAClassName}{% +% \PackageWarningNoLine{% +% scrextend% +% typearea% +% }{% + You have set option `version' to value `#1', but\MessageBreak + this value of version is not supported.\MessageBreak + Because of this, version was set to `first'% + }% + }{% +% \ClassInfoNoLine{\KOMAClassName}{% +% \PackageInfoNoLine{scrextend}{% + Switching compatibility level to `#1'% + }% +% \edef\scr@compatibility{\@nameuse{scr@v@#1}}% +% \edef\scr@ta@compatibility{\@nameuse{scr@v@#1}}% + \FamilyKeyStateProcessed + }% +} +% \end{macrocode} +% Eine zusätzliche Bedingung gibt es noch: Die Kompatibilität kann nur beim +% Laden gesetzt werden. Danach geht es nicht mehr. Ausnahmsweise wird hier +% auch nicht mit \cs{FamilyKeyState} signalisiert, sondern direkt ein Fehler +% ausgegeben. +% \begin{macrocode} +%\AtEndOfClass{% +%\AtEndOfPackage{% + \KOMA@key{version}[]{% +% \ClassError{\KOMAClassName}{% +% \PackageError{% +% scrextend% +% typearea% +% }{% + Option `version' too late% + }{% + Option `version' may be set only while loading the +% class.\MessageBreak +% package.\MessageBreak + But you've tried to set it up later.% + }% + \FamilyKeyStateProcessed + }% +} +% \end{macrocode} +% +% \begin{macro}{\scr@v@first} +% \changes{v2.9u}{2005/03/05}{Neues Macro} +% \begin{macro}{\scr@v@2.9} +% \changes{v2.9u}{2005/03/05}{Neues Macro} +% \begin{macro}{\scr@v@2.9t} +% \changes{v2.9u}{2005/03/05}{Neues Macro} +% \begin{macro}{\scr@v@2.95} +% \changes{v2.95}{2006/03/23}{Neues Macro} +% \begin{macro}{\scr@v@2.95a} +% \changes{v2.96a}{2006/11/27}{Neues Macro} +% \begin{macro}{\scr@v@2.95b} +% \changes{v2.96a}{2006/11/27}{Neues Macro} +% \begin{macro}{\scr@v@2.96} +% \changes{v2.96a}{2006/11/27}{Neues Macro} +% \begin{macro}{\scr@v@2.96a} +% \changes{v2.96a}{2006/11/27}{Neues Macro} +% \begin{macro}{\scr@v@2.97} +% \changes{v2.97}{2007/03/02}{Neues Macro} +% \begin{macro}{\scr@v@2.97a} +% \changes{v2.97a}{2007/03/07}{Neues Macro} +% \begin{macro}{\scr@v@2.97b} +% \changes{v2.97b}{2007/03/25}{Neues Macro} +% \begin{macro}{\scr@v@2.97c} +% \changes{v2.97c}{2007/05/12}{Neues Macro} +% \changes{v2.97d}{2007/10/09}{Wert geändert} +% \begin{macro}{\scr@v@2.97d} +% \changes{v2.97d}{2007/10/03}{Neues Macro} +% \changes{v2.97d}{2007/10/09}{Wert geändert} +% \begin{macro}{\scr@v@2.97e} +% \changes{v2.97e}{2007/11/27}{Neues Macro} +% \begin{macro}{\scr@v@2.98} +% \changes{v2.98}{2007/12/24}{Neues Macro} +% \begin{macro}{\scr@v@2.98a} +% \changes{v2.98a}{2008/01/08}{Neues Macro} +% \begin{macro}{\scr@v@2.98b} +% \changes{v2.98b}{2008/01/30}{Neues Macro} +% \begin{macro}{\scr@v@2.98c} +% \changes{v2.98c}{2008/02/01}{Neues Macro} +% \begin{macro}{\scr@v@3.00} +% \changes{v3.00}{2008/11/04}{Neues Macro} +% \begin{macro}{\scr@v@3.01} +% \changes{v3.01}{2008/11/14}{Neues Macro} +% \begin{macro}{\scr@v@3.01a} +% \changes{v3.01a}{2008/11/20}{Neues Macro} +% \begin{macro}{\scr@v@3.01b} +% \changes{v3.01b}{2008/11/24}{Neues Macro} +% \begin{macro}{\scr@v@3.01c} +% \changes{v3.01c}{2008/12/09}{Neues Macro} +% \begin{macro}{\scr@v@3.02} +% \changes{v3.02}{2009/01/01}{Neues Macro} +% \begin{macro}{\scr@v@3.02b} +% \changes{v3.02b}{2009/01/24}{Neues Macro} +% \begin{macro}{\scr@v@3.02c} +% \changes{v3.02c}{2009/01/28}{Neues Macro} +% \begin{macro}{\scr@v@3.03} +% \changes{v3.03}{2009/04/01}{Neues Macro} +% \begin{macro}{\scr@v@3.03a} +% \changes{v3.03a}{2009/04/02}{Neues Macro} +% \begin{macro}{\scr@v@3.03b} +% \changes{v3.03b}{2009/04/12}{Neues Macro} +% \begin{macro}{\scr@v@3.04} +% \changes{v3.04}{2009/07/07}{Neues Macro} +% \begin{macro}{\scr@v@3.05} +% \changes{v3.05}{2009/07/08}{Neues Macro} +% \begin{macro}{\scr@v@3.04a} +% \changes{v3.04a}{2009/07/24}{Neues Macro} +% \begin{macro}{\scr@v@3.05a} +% \changes{v3.05a}{2010/03/10}{Neues Macro} +% \begin{macro}{\scr@v@3.06} +% \changes{v3.06}{2010/06/17}{Neues Macro} +% \begin{macro}{\scr@v@3.07} +% \changes{v3.07}{2010/09/14}{Neues Macro} +% \begin{macro}{\scr@v@3.08} +% \changes{v3.08}{2010/10/28}{Neues Macro} +% \begin{macro}{\scr@v@3.08a} +% \changes{v3.08a}{2011/01/25}{Neues Macro} +% \begin{macro}{\scr@v@3.08b} +% \changes{v3.08b}{2011/02/22}{Neues Macro} +% \begin{macro}{\scr@v@3.09} +% \changes{v3.09}{2011/04/02}{Neues Macro} +% \begin{macro}{\scr@v@3.09a} +% \changes{v3.09a}{2011/04/12}{Neues Macro} +% \begin{macro}{\scr@v@3.10} +% \changes{v3.10}{2011/08/30}{Neues Macro} +% \begin{macro}{\scr@v@3.10a} +% \changes{v3.10a}{2012/03/08}{Neues Macro} +% \begin{macro}{\scr@v@3.10b} +% \changes{v3.10b}{2012/03/13}{Neues Macro} +% \begin{macro}{\scr@v@3.11} +% \changes{v3.11}{2012/05/15}{Neues Macro} +% \begin{macro}{\scr@v@3.11a} +% \changes{v3.11a}{2012/05/25}{Neues Macro} +% \begin{macro}{\scr@v@3.11b} +% \changes{v3.11b}{2012/07/29}{Neues Macro} +% \begin{macro}{\scr@v@3.12} +% \changes{v3.12}{2013/03/05}{Neues Macro} +% \begin{macro}{\scr@v@last} +% \changes{v2.9u}{2005/03/05}{Neues Macro} +% Nun die unterschiedlichen möglichen Werte (|\scr@v@last| ist jeweils die +% höchste vorhandene Nummer): +% \begin{macrocode} +\@namedef{scr@v@first}{0} +\@namedef{scr@v@2.9}{0} +\@namedef{scr@v@2.9t}{0} +\@namedef{scr@v@2.9u}{1} +\@namedef{scr@v@2.95}{2} +\@namedef{scr@v@2.95a}{2} +\@namedef{scr@v@2.95b}{2} +\@namedef{scr@v@2.96}{2} +\@namedef{scr@v@2.96a}{3} +\@namedef{scr@v@2.97}{3} +\@namedef{scr@v@2.97a}{3} +\@namedef{scr@v@2.97b}{3} +\@namedef{scr@v@2.97c}{4} +\@namedef{scr@v@2.97d}{5} +\@namedef{scr@v@2.97e}{6} +\@namedef{scr@v@2.98}{6} +\@namedef{scr@v@2.98a}{6} +\@namedef{scr@v@2.98b}{6} +\@namedef{scr@v@2.98c}{7} +\@namedef{scr@v@3.00}{8} +\@namedef{scr@v@3.01}{8} +\@namedef{scr@v@3.01a}{8} +\@namedef{scr@v@3.01b}{9} +\@namedef{scr@v@3.01c}{9} +\@namedef{scr@v@3.02}{9} +\@namedef{scr@v@3.02b}{9} +\@namedef{scr@v@3.02c}{10} +\@namedef{scr@v@3.03}{10} +\@namedef{scr@v@3.03a}{10} +\@namedef{scr@v@3.03b}{10} +\@namedef{scr@v@3.04}{10} +\@namedef{scr@v@3.04a}{10} +\@namedef{scr@v@3.05}{10} +\@namedef{scr@v@3.05a}{10} +\@namedef{scr@v@3.06}{10} +\@namedef{scr@v@3.07}{10} +\@namedef{scr@v@3.08}{10} +\@namedef{scr@v@3.08a}{10} +\@namedef{scr@v@3.08b}{10} +\@namedef{scr@v@3.09}{10} +\@namedef{scr@v@3.09a}{10} +\@namedef{scr@v@3.10}{10} +\@namedef{scr@v@3.10a}{10} +\@namedef{scr@v@3.10b}{10} +\@namedef{scr@v@3.11}{10} +\@namedef{scr@v@3.11a}{10} +\@namedef{scr@v@3.11b}{10} +\@namedef{scr@v@3.12}{11} +\@namedef{scr@v@last}{11} +% \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} +% \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{option} +% +% +% \iffalse +% +%<*body> +% \fi +% +% \subsection{Kompatibilität mit früheren Versionen von \textsf{scrlttr2}} +% In früheren Versionen von \textsf{scrlttr2} gab es weitere Befehle, die +% eventuell von \texttt{lco}-Dateien oder Paketen verwendet werden. +% Gemeldete Inkompatibitlitäten sind nach Möglichkeit zu lösen. +% +% \iffalse +%<*letter> +% \fi +% \begin{macro}{\@setif} +% \changes{v2.8q}{2001/10/08}{Neu} +% \changes{v2.95}{2006/03/31}{Nur vor Version 2.95} +% Dies war ein Makro, mit dem man einen Schalter über die symbolischen +% Werte \texttt{true}, \texttt{false}, \texttt{on} und \texttt{off} setzen +% kann. Das erste, optionale Argument war der Name des Schalters ohne Präfix +% "`\texttt{if}"'. Das zweite Argument war der Name der Option und das dritte +% der gewünschte Wert. War das optionale Argument nicht gesetzt oder leer, so +% wurde der Optionenname mit einem vorangestellten "`\texttt{@}"' als Name des +% Schalters verwendet. Dieses Makro wird nun mit Hilfe von \cs{KOMA@set@ifkey} +% nachgebildet. Dadurch ist es nicht absolut fehlerkompatibel, das es nun mehr +% Werte versteht als vorher. +% \begin{macrocode} +\expandafter\ifnum \@nameuse{scr@v@2.95}>\scr@compatibility\relax + \newcommand*{\@setif}[2][]{% + \begingroup + \edef\@tempa{#1}\ifx\@tempa\@empty + \def\@tempa{\KOMA@set@ifkey{#2}{@#2}}% + \else + \def\@tempa{\KOMA@set@ifkey{#2}{#1}}% + \fi + \expandafter\endgroup\@tempa + }% +\fi +% \end{macrocode} +% \end{macro} +% \iffalse +% +% \fi +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-compatibility.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-floats.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-floats.dtx new file mode 100644 index 00000000000..8c1966bb2bb --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-floats.dtx @@ -0,0 +1,1567 @@ +% \CheckSum{1198} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-floats.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-floats.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-floats.dtx 1502 2013-11-06 11:00:12Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-floats.dtx}[2013/06/12 v3.12 KOMA-Script + (floats)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-floats.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/06/25}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Gleitumgebungen} +% +% \KOMAScript{} verfügt bezüglich der Gleitumgebungen über einige +% Features, die über das, was die Standardklassen bieten, hinaus +% geht. \marginline{Geplant!} Allerdings ist das hier verwendete Interface +% gnadenlos veraltet und wird deshalb irgendwann ersetzt. Dabei wird +% höchstwahrscheinlich grundsätzlich auf das \textsf{caption}-Paket aufgebaut +% werden. Man betrachte dieses Modul daher als grundsätzlich zur Disposition +% stehend. +% +% Die einzige Gleitumgebung, über die Briefe derzeit verfügen sind +% Randnotizen. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*option> +% \fi +% +% \iffalse +%<*class> +%<*!letter> +% \fi +% +% \subsection{Einige Anweisungen und Einstellungen für die Optionen} +% +% Einige Anweisungen und Einstellungen werden bereits benötigt, bevor die +% Optionen abgearbeitet werden. +% +% \begin{macro}{\if@captionabove} +% \changes{v2.8h}{2001/07/19}{neu} +% \changes{v3.09}{2011/03/23}{Initialisierung vor den Optionen} +% Ob es sich bei \cs{caption} um eine Unter- oder Überschrift handelt und also +% \cs{abovecaptionskip} davor und \cs{belowcaptionskip} danach steht +% oder umgekehrt, wird über diesen Schalter gesteuert. Voreingestellt +% sind Unterschriften. +% \begin{macrocode} +\newif\if@captionabove\@captionabovefalse +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@tablecaptionabove} +% \changes{v2.8h}{2001/07/19}{neu Option} +% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen +% verschoben} +% \changes{v2.98c}{2008/02/18}{Definition erfolgt etwas früher} +% \begin{macro}{\@tablecaptionabovetrue} +% \begin{macro}{\@tablecaptionabovefalse} +% Die Einstellung, ob es Tabellenüber- oder -unterschriften sind, wird in +% einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@tablecaptionabove\@tablecaptionabovefalse +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\if@figurecaptionabove} +% \changes{v3.09}{2011/03/23}{neu Option} +% \begin{macro}{\@figurecaptionabovetrue} +% \changes{v3.09}{2011/03/23}{neu (intern)} +% \begin{macro}{\@figurecaptionabovefalse} +% \changes{v3.09}{2011/03/23}{neu (intern)} +% Die Einstellung, ob es Abbildungsüber- oder -unterschriften sind, wird in +% einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@figurecaptionabove\@figurecaptionabovefalse +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifonelinecaptions} +% \changes{v2.8q}{2001/11/17}{neuer Schalter} +% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher} +% \begin{macro}{\onelinecaptionstrue} +% \begin{macro}{\onelinecaptionsfalse} +% Die Entscheidung, ob die Sonderbehandlung für einzeilige caption-Texte +% durchgeführt werden soll, wird in einem Schalter gespeichert. In der +% Hoffnung, beim Laden von \textsf{caption2} Speicher zu sparen, wird +% der gleiche Name verwendet, den auch \textsf{caption2} +% verwendet. Trotzdem sollte man diesen Schalter als internen Schalter +% betrachten. +% \begin{macrocode} +\newif\ifonelinecaptions\onelinecaptionstrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\scap@pos} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher} +% Hier wird gespeichert, ob die Beschreibung bei |captionbeside| links oder +% rechts vom Rest stehen soll. Voreingestellt ist rechts davon +% (\emph{\textbf{r}ight}). Andere Möglichkeiten sind \emph{\textbf{l}eft}, +% \emph{\textbf{o}uter}, \emph{\textbf{i}nner}. +% \begin{macrocode} +\newcommand*{\scap@pos}{r} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@valign} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher} +% Hier wird gespeichert, ob bei |captionbeside| 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} +% +% \subsection{Optionen für Titel von Gleitumgebungen} +% +% \begin{option}{captions} +% \changes{v2.98c}{2008/02/18}{Neuer Zentralschalter für caption} +% \changes{v3.09}{2011/04/02}{Neue Werte (\texttt{heading}, +% \texttt{signature}, \texttt{figureheading}, \texttt{figuresignature})} +% Dies ist nun die zentrale Option für Einstellungen zu \cs{caption}. Als +% besondere Schwierigkeit ergibt sich dabei jedoch, dass das Paket +% \textsf{caption} einige Sonderbehandlungen für \KOMAScript{} enthält, die +% darauf angewiesen sind, dass die alte Optionenschnittstelle verwendet +% wird. Erfreulicherweise funktioniert das aber ab Version~3.1g über eine +% Erweiterung der Schalter-Umschaltbefehle (|\@tablecaptionabovetrue|, +% |\@tablecaptionabovefalse|, |\onelinecaptionstrue|, +% |\onelinecaptionsfalse|), so dass lediglich dafür georgt werden muss, +% dass diese weiterhin verwendet werden. +% \begin{macrocode} +\KOMA@key{captions}{% + \KOMA@set@ncmdkey{captions}{@tempa}{% + {heading}{0},{above}{0},{top}{0},% + {signature}{1},{below}{1},{bot}{1},{bottom}{1},% + {tableheading}{2},% + {tableabove}{2},{abovetable}{2},{abovetabular}{2},{topattable}{2},% + {tablesignature}{3},% + {tablebelow}{3},{belowtable}{3},{belowtabular}{3},{bottomattable}{3},% + {figureheading}{4},{figureabove}{4},{abovefigure}{4},{topatfigure}{4},% + {figuresignature}{5},{figurebelow}{5},{belowfigure}{5},{bottomatfigure}{5},% + {oneline}{6},% + {nooneline}{7},% + {rightbeside}{8},{besideright}{8},% + {leftbeside}{9},{besideleft}{9},% + {innerbeside}{10},{besideinner}{10},% + {outerbeside}{11},{besideouter}{11},% + {topbeside}{12},{besidetop}{12},% + {centeredbeside}{13},{besidecentered}{13},% + {middlebeside}{13},{besidemiddle}{13},% + {bottombeside}{14},{besidebottom}{14}% + }{#1}% + \ifcase \@tempa\relax + \@tablecaptionabovetrue + \@figurecaptionabovetrue + \@captionabovetrue + \or + \@tablecaptionabovefalse + \@figurecaptionabovefalse + \@captionabovefalse + \or + \@tablecaptionabovetrue + \or + \@tablecaptionabovefalse + \or + \@figurecaptionabovetrue + \or + \@figurecaptionabovefalse + \or + \onelinecaptionstrue + \or + \onelinecaptionsfalse + \or + \renewcommand*{\scap@pos}{r}% + \or + \renewcommand*{\scap@pos}{l}% + \or + \renewcommand*{\scap@pos}{i}% + \or + \renewcommand*{\scap@pos}{o}% + \or + \renewcommand*{\scap@valign}{t}% + \or + \renewcommand*{\scap@valign}{c}% + \or + \renewcommand*{\scap@valign}{b}% + \fi +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{tablecaptionabove} +% \changes{v2.8h}{2001/07/19}{neue Option} +% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen +% verschoben} +% \changes{v2.98c}{2008/02/18}{obsolete} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{tablecaptionbelow} +% \changes{v2.8h}{2001/07/19}{neue Option} +% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen +% verschoben} +% \changes{v2.98c}{2008/02/18}{obsolete} +% \changes{v3.01a}{2008/11/20}{deprecated} +% Es besteht nun die Wahl, ob \cs{caption} bei Tabellen für Unter- +% oder Überschriften voreingestellt ist. Die Defaulteinstellung ist +% aus Kompatibilitätsgründen die Tabellenunterschrift. +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{tablecaptionabove}{captions=tableheading} +\KOMA@DeclareDeprecatedOption{tablecaptionbelow}{captions=tablesignature} +% \end{macrocode} +% \end{option} +% \end{option} +% +% \begin{option}{origlongtable} +% \changes{v2.8l}{2001/08/16}{neue Option} +% Wenn das \textsf{longtable}-Paket geladen ist, werden die +% Tabellentitel dafür normalerweise von den Klassen umdefiniert. Dies +% geschieht automatisch nicht, wenn das \textsf{caption2}-Paket +% geladen ist. Es geschieht ausserdem nicht, wenn diese Option gesetzt +% ist. +% \begin{macro}{\if@komalongtable} +% \changes{v2.8l}{2001/08/16}{neue Option} +% \begin{macro}{\@komalongtabletrue} +% \begin{macro}{\@komalongtablefalse} +% Die Einstellung wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@komalongtable\@komalongtabletrue +\DeclareOption{origlongtable}{\@komalongtablefalse} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{onelinecaption} +% \changes{v2.8q}{2001/11/17}{neue Option} +% \changes{v2.98c}{2008/03/03}{obsolete} +% \changes{v2.98c}{2008/03/03}{keine Sonderbehandlung für \textsf{caption2} +% mehr} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{noonelinecaption} +% \changes{v2.8q}{2001/11/17}{neue Option} +% \changes{v2.98c}{2008/03/03}{obsolete} +% \changes{v2.98c}{2008/03/03}{keine Sonderbehandlung für \textsf{caption2} +% mehr} +% \changes{v3.01a}{2008/11/20}{deprecated} +% Da für diese Option nicht der gleiche Name verwendet wird, wie bei +% \textsf{caption2}, wurde von den Optionen bis Version~2.98b nicht nur der +% Schalter entsprechend gesetzt, sondern auch die korrespondierende Option an +% \textsf{caption2} weitergeleitet. Der gleiche Name konnte schlecht +% verwendet werden, weil er bei einer Klasse auch nicht ansatzweise +% als selbsterklärend bezeichnet werden kann. Ab Version~2.98c entfällt die +% Sonderbehandlung von \textsf{caption2}. +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{onelinecaption}{captions=oneline} +\KOMA@DeclareDeprecatedOption{noonelinecaption}{captions=nooneline} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \iffalse +% +% +% +%<*body> +% \fi +% +% \subsection{Randnotizen} +% +% Randnotizen sind ebenfalls eine Art von Gleitumgebung. +% +% \begin{macro}{\marginline} +% \KOMAScript{} stellt zusätzlich ein Randzeilenmakro zur Verfügung, +% das je nach gerader oder ungerader Seite in doppelseitigen Layout +% rechts- oder linksbündig gesetzt werden muss. +% \changes{v2.4l}{1997/02/06}{Definition mit Hilfe des optionalen +% Parameters von \cs{marginpar} deutlich vereinfacht} +% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt} +% \begin{macrocode} +\newcommand\marginline[1]{% + \marginpar[\raggedleft{#1}]{\raggedright #1}% +} +% \end{macrocode} +% \end{macro} +% +% \iffalse +%<*class> +%<*!letter> +% \fi +% +% \subsection{Definitionen für Titel von Gleitumgebungen} +% +% \begin{macro}{\caption} +% \changes{v2.2c}{1995/05/25}{Fließtitel auf CJK umgestellt} +% Es ist möglich, die Fließumgebungen 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ängenregistern gespeichert: +% \begin{macrocode} +\newlength{\abovecaptionskip} +\newlength{\belowcaptionskip} +\setlength{\abovecaptionskip}{10\p@} +\setlength{\belowcaptionskip}{0\p@} +% \end{macrocode} +% \end{Length} +% \end{Length} +% \begin{macro}{\captionformat} +% \changes{v2.3c}{1995/08/06}{neu} +% Trennung von Label und Text: +% \begin{macrocode} +\newcommand*{\captionformat}{:\ } +% \end{macrocode} +% \end{macro} +% \begin{macro}{\scr@caption} +% \changes{v2.8h}{2001/07/19}{neu (intern)} +% \begin{macro}{\captionabove} +% \changes{v2.8h}{2001/07/19}{neu} +% \begin{macro}{\captionbelow} +% \changes{v2.8h}{2001/07/19}{neu} +% Damit überhaupt zwischen Unter- und Überschriften unterschieden +% werden kann, muss zunächst das Originalmakro gesichert werden. Dies +% geschieht erst zu Beginn des Dokuments, damit Pakete ggf. noch ihre +% eigenen Definitionen von \cs{caption} vornehmen können. Das +% \textsf{hyperref}-Paket ist so ein Kandidat. +% \begin{macrocode} +\newcommand{\scr@caption}{} +\AtBeginDocument{\let\scr@caption\caption} +% \end{macrocode} +% \end{macro} +% Jetzt ist es möglich durch einfaches Umlegen des Schalters für 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 über die +% Tabelle oder Abbildung zu setzen, ist der Versuch, sie daneben zu +% setzen. Dies funktioniert frundsätzlich auch nicht mit +% \texttt{longtable}-Tabellen. +% +% \begin{macro}{\scap@caption} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% Die Beschreibung, die der Umgebung als Parameter übergeben wird, +% muss zwischengespeichert werden. Hier wird lediglich das Makro +% dafür reserviert. +% \begin{macrocode} +\newcommand*{\scap@caption}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@width} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% Die Breite, die Tabelle bzw. Abbildung einschließlich Beschreibung +% und insgesamt haben dürften. Voreingestellt ist die gesamte +% verfügbare Breite. +% \begin{macrocode} +\newcommand*{\scap@width}{\linewidth} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@move} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% Der Wert, um den die Tabelle bzw. Abbildung einschließlich +% Beschreibung nach rechts bzw. außen 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 (intern)} +% Da \cs{caption} innerhalb einer Umgebung (\cs{parbox} und +% \texttt{captionbeside}) aufgerufen wird, würde ein \cs{label}, das +% zwar innerhalb der Gleitumgebung aber nach der +% \texttt{captionbeside}-Umgebung eingefügt wird, nicht die +% Gleitumgebung, sondern die umgebende Referenzebene +% referenzieren. Damit das nicht geschieht, wird in der +% \texttt{captionbeside}-Umgebung in der \cs{parbox} die aktuelle +% Referenz \cs{@currentlabel} in dem globalen Makro +% \cs{scap@currentlabel} zwischengespeichert und am Ende der +% \texttt{captionbeside}-Umgebung mit Hilfe von \cs{aftergroup} nach +% dem Ende der Umgebung wiederhergestellt. Da die +% \texttt{captionbeside}-Umgebung ohnehin nicht geschachtelt werden +% kann, funktioniert das problemlos. Für 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 \cs{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 (intern)} +% \begin{macro}{\@@captionbeside} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% \begin{macro}{\@@@captionbeside} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% \begin{macro}{\@@@@captionbeside} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% Die Umgebung soll einmal folgende Parameter besitzen: +% \begin{description} +% \item[(optional)] Verzeichniseintrag +% \item[(obligatorisch)] Beschreibung +% \item[(optional)] lokaler Wert für \cs{scap@pos} +% \item[(optional)] lokaler Wert für \cs{scap@width} +% \item[(optional)] lokaler Wert für \cs{scap@move} +% \item[(*)] lokaler Wert für \cs{ifscap@alt} (Stern gesetzt +% entspricht \cs{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önnen, werden einige +% Hilfsmakros benötigt. +% \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 (intern)} +% Es wird noch eines der kostbaren Boxregister benötigt. +% \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 (intern)} +% \changes{v2.98c}{2008/03/11}{vertikale Ausrichtung korrigiert} +% \changes{v3.07a}{2010/11/04}{vertikale Ausrichtung im t- und b-Fall erneut +% korrigiert} +% Hier wird nun die Umgebung eigentlich geöffnet, während zuvor nur +% die Parameter ausgewertet wurden. +% \begin{macrocode} +\newcommand{\c@pti@nb@sid@}{} +\long\def\c@pti@nb@sid@[#1]#2{% + \def\scap@caption{% + \if c\scap@valign + \setlength{\abovecaptionskip}{\z@}% + \else \if t\scap@valign + \setlength{\abovecaptionskip}{-\ht\strutbox}% + \else \if b\scap@valign + \setlength{\abovecaptionskip}{\z@}% + \fi + \fi + \fi + \setlength{\belowcaptionskip}{-\dp\strutbox}% + \captionbelow[{#1}]{#2}% + }% + \begin{lrbox}{\c@pti@nb@sid@b@x}% +} +% \end{macrocode} +% \end{macro} +% +% Jetzt endlich können wir uns auf die Umgebung stürzen. Die +% Umgebung zu starten ist einfach. Es wird ein Doppelargumentmakro +% ausgeführt. +% \begin{macrocode} +\newenvironment*{captionbeside}{% + \@dblarg\@captionbeside% +}{% +% \end{macrocode} +% Komplizierter ist die Beendigung der Umgebung. Hier fällt der +% gesamte Satzaufwand an. +% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt +% \cs{if@thispageodd}} +% \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{\KOMAClassName}{% + caption beside will be very, very small.\MessageBreak + In most cases this will result in overfull and\MessageBreak + underfull \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}{2003/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}{\capfont} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} +% Die Schriftart der Titel kann eingestellt werden. Dazu dient dieses +% Makro, das als internes Makro zu verstehen ist, +% \begin{macro}{\caplabelfont} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} +% Davon unabhängig kann auch die Schriftart der Titel-Titel +% ("`Abbildung X:"') eingestellt werden. Auch dieses Makro ist als +% internes Makro zu verstehen. +% \begin{macrocode} +\newcommand*\capfont{\normalfont\normalcolor} +\newcommand*\caplabelfont{\normalfont\normalcolor} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\scr@fnt@caption} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{caption}} +% \begin{macro}{\scr@fnt@captionlabel} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{captionlabel}} +% Die eigentliche Änderung der Schriftart erfolgt über das Element +% \texttt{caption} bzw. \texttt{captionlabel}. +% \begin{macrocode} +\newcommand*{\scr@fnt@caption}{\capfont} +\newcommand*{\scr@fnt@captionlabel}{\caplabelfont} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \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ückgesetzt (ist das +% ok?)} +% \changes{v2.3f}{1995/12/09}{Fontumschaltung einheitlich für lange +% und kurze Unter-/Überschriften} +% \changes{v2.5g}{1999/10/09}{neben den komplett hängenden +% Titeln sind nun auch nicht hängende oder teilweise hängende +% möglich} +% 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ötigt, der angibt, ob auf die volle Länge 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ßerdem 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 +% \textsf{caption2} umdefiniert} +% Dann wird weiter ein Befehl benötigt, mit dem der Benutzer die +% Weite des Einzugs selbst einstellen kann. Da intern für 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ürlich muss hier auch +% der automatische Einzug abgeschaltet werden. In der Sternform wird +% außerdem dafür gesorgt, dass zwischen "`Label"' und Beschreibung +% ein Umbruch erfolgt. In der normalen Version wird stattdessen für +% Kompatibilität zu früheren Versionen gesorgt. +% \begin{macro}{\@setcapindent} +% \begin{macro}{\@@setcaptindent} +% Für die Implementierung der Sternform werden zwei interne Makros +% benötigt. +% \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{\KOMAClassName}{% + You're using package `caption2'.\MessageBreak + Because of this you should also use `\string\captionstyle' + and\MessageBreak + set length '\string\captionindent' instead of + 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 +% \textsf{caption2} umdefiniert} +% Andererseits soll es auch möglich sein, nachträglich wieder den +% automatischen Einzug einzuschalten. Dafür gibt es ein weiteres +% Makro. +% \begin{macrocode} +\newcommand*{\setcaphanging}{\dofullc@ptrue\@capbreakfalse} +\AfterPackage{caption2}{% + \renewcommand*{\setcaphanging}{% + \ClassWarning{\KOMAClassName}{% + 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 Titel. Zunächst 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 Über- und +% Unterschriften} +% \changes{v2.8j}{2001/07/30}{\cs{@makecaption} verwendet +% \cs{@@makecaption}} +% \changes{v2.8q}{2001/11/17}{die Sonderbehandlung für einzeilige +% \emph{caption}s ist abschaltbar} +% \changes{v2.8q}{2001/11/17}{Titel können in ihrer Breite +% beschränkt werden} +% \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ächlich gesetzt wird der Titel mit diesem Makro. Dabei muss der +% erste Parameter entweder \cs{@gobble} oder \cs{@firstofone} sein. +% +% \begin{macro}{\cap@width} +% \changes{v2.8q}{2001/11/17}{neu (intern)} +% \begin{macro}{\cap@left} +% \changes{v2.8q}{2001/11/17}{neu (intern)} +% \begin{macro}{\cap@right} +% \changes{v2.8q}{2001/11/17}{neu (intern)} +% 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ür 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}{neu} +% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt +% \cs{if@thispageodd}} +% \changes{v2.97}{2007/02/27}{Mindestbreite für captions ist 0\,pt} +% Hier wird \cs{cap@width} gesetzt. Dabei werden optional auch +% \cs{cap@left} und \cs{cap@right} angepasst. +% \begin{macrocode} +\newcommand*{\setcapwidth}[2][]{% + \begingroup% + \setlength{\@tempdima}{#2}% + \ifdim\@tempdima <\z@ + \@tempdima\z@ + \ClassWarning{\KOMAClassName}{% + caption width less than 0pt not allowed.\MessageBreak + Setting caption width to 0pt% + }% + \fi + \edef\@tempa{\endgroup\def\noexpand\cap@width{\the\@tempdima}}% + \@tempa + \begingroup + \edef\@tempa{#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{\KOMAClassName}{% + 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 \textsf{caption2} geladen wird, ändert sich die Funktion. Das +% optionale Argument wird dann ignorriert. +% \begin{macrocode} +\AfterPackage{caption2}{% + \renewcommand*{\setcapwidth}[2][]{% + \ClassWarning{\KOMAClassName}{% + 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'% + }% + \setcaptionwidth{#2}% + }% +}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\cap@margin} +% \changes{v2.8q}{2001/11/17}{neu (intern)} +% Dieses Makro beinhaltet nicht den Wert der Ränder, sondern das +% Makro, mit dem innerhalb von \cs{@@makecaption} die Makros +% \cs{cap@left} und \cs{cap@right} neu definiert werden. Dies +% geschieht nur, wenn die Ränder mit \cs{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}{neu} +% \begin{macro}{\@setcapmargin} +% \changes{v2.8q}{2001/11/17}{neu (intern)} +% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt +% \cs{if@thispageodd}} +% \begin{macro}{\@@setcapmargin} +% \changes{v2.8q}{2001/11/17}{neu (intern)} +% Statt die Breite der \emph{caption} zu setzen, können auch die +% Ränder gesetzt werden. In der Sternvariante werden im zweiseitigen +% Modus die Ränder 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 \textsf{caption2} geladen ist, ändert sich die Bedeutung. +% \begin{macrocode} +\AfterPackage{caption2}{% + \renewcommand*{\@setcapmargin}[2][\@tempdimb]{% + \setlength{\@tempdimb}{#2}% + \setlength{\@tempdima}{#1}% + \ifdim\@tempdima\@tempdimb\else + \ClassWarning{\KOMAClassName}{% + 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 Option \texttt{onelinecaption} verwendet +% wird. Das bedeutet auch, dass bei \texttt{noonelinecaption} das +% Problem mit dem Hochzählen der Fußnoten nicht auftritt. +% \changes{v2.8q}{2002/05/17}{Problem mit doppelten Fußnoten behoben}% +% \changes{v2.95}{2004/01/30}{Korrekturen für vertikalen Abstand und +% \textsl{float}-Paket}% +% \changes{v2.95a}{2006/07/13}{diverse Korrekturen für den vertikalen +% Abstand u.\,a. bei Verwendung des \textsl{color}-Pakets}% +% \changes{v2.97c}{2007/06/06}{\cs{unskip}\cs{strut} eingefügt, um die +% vertikale Ausrichtung im \emph{above}-Fall in eingen Fällen zu +% verbessern}% +% \changes{v3.02a}{2009/01/24}{diverse Gruppen- bzw. Argumentklammern ergänzt}% +% \changes{v3.11c}{2013/06/12}{\cs{capfont} durch +% \cs{usekomafont{caption}}ersetzt}% +% \changes{v3.11c}{2013/06/12}{\cs{caplabelfont} durch +% \cs{usekomafont{captionlabel}}ersetzt}% +% \changes{v3.12}{2013/06/12}{ein \cs{usekomafont} durch +% \cs{usesizeofkomafont} ersetzt} +% \begin{macrocode} +\newcommand{\@@makecaption}[3]{% + \cap@margin + \ifonelinecaptions + \@tempcnta=\value{mpfootnote}\@tempcntb=\value{footnote}% + \let\scr@tmp@footnotetext=\@footnotetext + \let\@footnotetext=\@gobble + \sbox\@tempboxa{% + {\usekomafont{caption}{\strut\ignorespaces + #1{{\usekomafont{captionlabel}{#2\captionformat}}}% + #3\unskip\strut}}% + }% + \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}{\cap@width}% + \ifdim \wd\@tempboxa >\@tempdima + \hb@xt@\hsize{% + \setbox\@tempboxa\vbox{\hsize=\cap@width +% \end{macrocode} +% Im Fall, dass nun also mehrzeilig gesetzt werden muss, ist zu +% unterscheiden, ob wie bisher voll hängend gearbeitet werden soll +% oder nicht. In ersterem Fall machen wir das, wie bisher, allerdings +% wird der \cs{capfont} früher aktiviert, damit darin auch globale +% Größsenänderungen für den Titel Platz finden. Außerdem wird die +% geänderte Parameterübergabe berücksichtigt. +% \changes{v2.97c}{2007/09/17}{\cs{scr@smashdp} eingefügt} +% \begin{macrocode} + \ifdofullc@p + {\usekomafont{caption}{\@hangfrom{\scr@smashdp{\strut\ignorespaces + #1{{\usekomafont{captionlabel}{#2\captionformat}}}}}% + {#3\unskip\strut\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@ + {\usekomafont{caption}{\strut\ignorespaces + #1{{\usekomafont{captionlabel}{#2\captionformat\par}}}% + \noindent\hspace*{-\cap@indent}#3\unskip\strut\par}}% + \else% + \if@capbreak + {\usekomafont{caption}{\strut\ignorespaces + #1{{\usekomafont{captionlabel}{#2\captionformat\par}}}% + \noindent\@hangfrom{\hspace*{\cap@indent}}{#3\par}}}% + \else + {\usekomafont{caption}{% + \@hangfrom{\scr@smashdp\strut\hspace*{\cap@indent}}% + {\hspace{-\cap@indent}\scr@smashdp{\ignorespaces#1% + {{\usekomafont{captionlabel}{% + #2\captionformat}}}}#3\unskip\strut\par}}}% + \fi + \fi + \fi + }% + \setlength{\@tempdima}{\ht\@tempboxa}% + \addtolength{\@tempdima}{\dp\@tempboxa}% + \addtolength{\@tempdima}{-\ht\strutbox}% + \ht\@tempboxa\ht\strutbox + \dp\@tempboxa\@tempdima + \strut\cap@left + \box\@tempboxa + \cap@right\strut + }% + \else + \global \@minipagefalse +% \end{macrocode} +% Im einzeiligen Fall wird nun die Box wie oben erneut erzeugt und gleich +% gesetzt. Im Prinzip ginge das auch direkt ohne erst eine Box zu erzeugen. +% \changes{v3.02a}{2009/01/24}{die Box selbst muss im \cs{capfont} gesetzt +% werden, falls darin eine Größenumschaltung stattfindet} +% \begin{macrocode} + \sbox\@tempboxa{% + {\usekomafont{caption}{\scr@smashdp{\strut\ignorespaces + #1{{\usekomafont{captionlabel}{#2\captionformat}}}}% + #3}}% + }% + {\usesizeofkomafont{caption}{% + \hb@xt@\hsize{\strut\cap@left\box\@tempboxa\cap@right\strut}}}% + \fi + \endgroup +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\LT@makecaption} +% \changes{v2.8j}{2001/07/30}{neu (intern)} +% \changes{v2.8k}{2001/08/15}{keine Umdefinierung, wenn das +% \textsf{caption2}-Paket erkannt oder die Option +% \texttt{origlongtable} gesetzt wurde} +% \changes{v2.8q}{2001/11/18}{Breite und Anordnung wird über +% \KOMAScript-Makros bestimmt} +% \changes{v2.8q}{2001/11/18}{Verwendung von \cs{AfterPackage}} +% \changes{v2.9s}{2004/08/24}{vertikale Abstände durch verschieben von +% \cs{vskip} korrigiert} +% \begin{macro}{\LT@array} +% \changes{v2.8q}{2001/11/18}{neu (intern)} +% \begin{macro}{\LT@caption} +% \changes{v2.8q}{2001/11/18}{neu (intern)} +% \begin{macro}{\scr@caption@before@longtable@warning} +% \changes{v2.98c}{2008/03/03}{neu (intern)} +% Ab Version 2.8j wird auf vielfachen Wunsch das +% \textsf{longtable}-Paket berücksichtigt. Da Pakete aber nach +% Klassen geladen werden, kann dies erst nach dem Laden des Pakets +% aktiviert werden. Die Definition entspricht der obigen. Wird das +% \textsf{caption2}-Paket nach \textsf{longtable} geladen, so wird +% automatisch die Definition von \textsf{caption2} verwendet. Wird +% \textsf{caption2} vor \textsf{longtable} geladen, so liegt +% voraussichtlich eine Fehlbedienung vor, auf die hingewiesen wird. +% \begin{macrocode} +\newcommand*{\scr@caption@before@longtable@warning}[1]{% + \ClassWarning{\KOMAClassName}{% + you've loaded package `#1' before package\MessageBreak + `longtable'!\MessageBreak + Because of this package `#1' isn't able to\MessageBreak + control `\string\caption' at longtables. \space After loading + \MessageBreak + package `#1' KOMA-Script also doesn't control\MessageBreak + `\string\caption'.\MessageBreak + I think, you should load package `caption' after\MessageBreak + package `longtable'% + }% +} +\AfterPackage{longtable}{% + \@ifpackageloaded{caption2}{\@komalongtablefalse + \scr@caption@before@longtable@warning{caption2}% + }{}% + \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{\KOMAClassName}{% + longtable captions redefined% + }% + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fs@komaabove} +% \changes{v2.8j}{2001/07/30}{neu (intern)} +% \begin{macro}{\fs@komabelow} +% \changes{v2.8j}{2001/07/30}{neu (intern)} +% \begin{macro}{\floatc@komascript} +% \changes{v2.8j}{2001/07/30}{neu (intern)} +% Ab Version 2.8j werden für das \textsf{float}-Paket zwei float-Stile +% Namens \texttt{komaabove} und \texttt{komabelow} definiert. Da +% möglicherweise auch andere Pakete darauf zurückgreifen, wird das +% unabhängig von der Existenz von \textsf{float} getan. Verwendet wird +% dies innerhalb von \KOMAScript{} jedoch nicht. Es werden außerdem +% interne Makros von \textsf{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} +% +% +% \subsection{Verteilung der Gleitumgebungen} +% +% \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} +% Für die Fließumgebungen müssen verschiedene Konstanten definiert +% werden, die Aufteilung zwischen Text und Fließumgebung und Ähnliches +% regeln. +% \begin{macrocode} +\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{Titel ohne Gleitumgebung} +% +% \begin{macro}{\captionof} +% \changes{v3.05}{2009/07/08}{Neue Anweisung} +% \changes{v3.09}{2011/03/21}{Verwendung des internen \cs{scr@caption}} +% \changes{v3.09a}{2011/04/13}{Berücksichtigung von +% \texttt{captions=tableheading} und \texttt{captions=figureheading}} +% \begin{macro}{\captionaboveof} +% \changes{v3.09}{2011/03/21}{Neue Anweisung} +% \begin{macro}{\captionbelowof} +% \changes{v3.09}{2011/03/21}{Neue Anweisung} +% Obwohl es inzwischen mehrere Pakete gibt, die diese Anweisung bereit +% stellen, kommt es doch immer wieder zu Fehlern, weil einige Anwender diese +% Pakete nicht nutzen. Also habe ich beschlossen, das selbst zu +% implementieren. Um die Kompatibilität mit \textsf{capt-of} nicht zu stören, +% wird die Definition vor dme Laden jenes Pakets zurück genommen. Mit dem +% Paket \textsf{caption} gibt es solche Probleme nicht, da dieses +% \cs{captionof} ohnehin per \cs{def} definiert. Allerdings berücksichtigt das +% \cs{captionof} von \textsf{caption} und \textsf{capt-of} eventuell die +% Einstellungen für darüber oder darunter nicht in gleicher Weise. +% \begin{macrocode} +\newcommand*{\captionof}[1]{\def\@captype{#1}% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname if@#1captionabove\endcsname\iftrue + \@captionabovetrue + \fi + \scr@caption} +\newcommand*{\captionaboveof}{\@captionabovetrue\captionof} +\newcommand*{\captionbelowof}{\@captionabovefalse\captionof} +\BeforePackage{capt-of}{\let\captionof\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{captionofbeside} +% \changes{v3.10}{2011/09/02}{Neue Umgebung} +% Analog zu \texttt{captionbeside} hier eine Umgebung mit Angabe des +% Gleitumgebungstyps als erstes Argument. +% \begin{macrocode} +\newenvironment{captionofbeside}[1]{% + \def\@captype{#1}% + \captionbeside +}{% + \endcaptionbeside +} +% \end{macrocode} +% \end{environment} +% +% +% \subsection{Standardbezeichner} +% +% \begin{macro}{\figurename} +% \begin{macro}{\tablename} +% So heißen die Dinger: +% \begin{macrocode} +\newcommand*\figurename{Figure} +\newcommand*\tablename{Table} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{Abbildungsumgebung} +% +% \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ächst werden \texttt{figure}s, also Abbildungen behandelt. +% \begin{Counter}{figure} +% \begin{macro}{\thefigure} +% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil} +% \begin{macro}{\figureformat} +% \changes{v2.3c}{1995/08/06}{neu} +% Dafür wird ein neuer Zähler benötigt, der bei der Buch- und der +% Bericht-Klasse mit \cs{chapter} zurückgesetzt wird und auch den +% Kapitelzähler mit enthält. +% \begin{macrocode} +%\newcounter{figure}[chapter] +%
\newcounter{figure} +\renewcommand*\thefigure{% +%<*book> + \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d}\relax + \if@mainmatter\thechapter.\fi + \else +% +% \thechapter.% +% \fi + \@arabic\c@figure +} +\newcommand*{\figureformat}{% + \figurename~\thefigure% +% \autodot% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{Counter} +% \begin{macro}{\fps@figure} +% Die Standardplatzierung für Abbildungen ist \emph{t}op, +% \emph{b}ottom, \emph{p}age. +% \begin{macrocode} +\newcommand*{\fps@figure}{tbp} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ftype@figure} +% Um die verschiedenen \emph{float}-Typen unterscheiden zu können, +% benätigen sie eine Nummer. Abbildungen bekommen hier willkürlich +% die Nummer 1. +% \begin{macrocode} +\newcommand*{\ftype@figure}{1} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ext@figure} +% Die Extension der Datei für das Abbildungsverzeichnis. +% \begin{macrocode} +\newcommand*{\ext@figure}{lof} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\fnum@figure} +% Die Ausgabe der Abbildungsnummer. +% \begin{macrocode} +\newcommand*{\fnum@figure}{\figureformat} +% \end{macrocode} +% \end{macro} +% Jetzt aber zurück zur Umgebung. Wie üblich gibt es eine Version mit +% und eine Version ihne Stern. Zur unterschiedlichen Bedeutung bei +% zweispaltigem Satz siehe \texttt{classes.dtx} und \texttt{source2e}. +% \changes{v3.11c}{2013/03/01}{fix: one \cs{caption} change removed} +% \begin{macrocode} +\newenvironment{figure}{% + \if@figurecaptionabove\let\caption\captionabove + \else\let\caption\captionbelow\fi + \@float{figure}% +}{% + \end@float +} +\newenvironment{figure*}{% + \if@figurecaptionabove\let\caption\captionabove + \else\let\caption\captionbelow\fi + \@dblfloat{figure}% +}{% + \end@dblfloat +} +% \end{macrocode} +% \end{environment} +% +% +% \subsection{Tabellengleitumgebung} +% +% \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ür +% \cs{caption} von Unter- auf Überschriften geändert werden} +% Auch verschiebbare Tabellen sind möglich. Das Prinzip ist das +% gleiche wie bei den Abbildungen. +% \begin{Counter}{table} +% \begin{macro}{\thetable} +% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil} +% \begin{macro}{\tableformat} +% \changes{v2.3c}{1995/08/06}{neu} +% \begin{macrocode} +%
\newcounter{table} +%\newcounter{table}[chapter] +\renewcommand*\thetable{% +%<*book> + \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d}\relax + \if@mainmatter\thechapter.\fi + \else +% +% \thechapter.% +% \fi + \@arabic\c@table +} +\newcommand*{\tableformat}{% + \tablename~\thetable% +% \autodot% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{Counter} +% \begin{macro}{\fps@table} +% \begin{macrocode} +\newcommand*{\fps@table}{tbp} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ftype@table} +% Allerdings wird für Tabellen willkürlich Nummer 2 verwendet. +% \begin{macrocode} +\newcommand*{\ftype@table}{2} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ext@table} +% Natürlich haben sie auch eine andere Extension. +% \begin{macrocode} +\newcommand*{\ext@table}{lot} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\fnum@table} +% Die Ausgabe der Nummer kann ebenfalls abweichen. +% \begin{macrocode} +\newcommand*{\fnum@table}{\tableformat} +% \end{macrocode} +% \end{macro} +% Ob es \cs{caption} in der Voreinstellung eine Tabellenüberschrift +% oder eine Tabellenunterschrift erzeugt, hängt hier von den Optionen +% ab. +% \begin{macrocode} +\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{environment} +% +% \iffalse +% +% +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-floats.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-fonts.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-fonts.dtx new file mode 100644 index 00000000000..99ca110e5b6 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-fonts.dtx @@ -0,0 +1,1933 @@ +% \CheckSum{3220} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-fonts.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-fonts.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-fonts.dtx 1483 2013-10-31 15:12:30Z mjk $ +%<*driver> +\ProvidesFile{scrkernel-fonts.dtx}[2013/10/31 v3.12 KOMA-Script (font size)] +% \changes{v3.09}{2011/02/23}{Neues Paket \texttt{scrfontsizes}} +% +%<*package&generator&identify> +%\ProvidesPackage{scrfontsizes}[% +%!KOMAScriptVersion +% package (font size file generator)] +% +%<*driver> +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-fonts.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/06/25}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Schriftauswahl} +% +% Dieser Bereich befasst sich mit allem, was zur Schriftauswahl +% gehört. Die einzelnen Elemente, für die eine Schriftauswahl möglich +% ist, sind jedoch in den Dateien definiert, in denen diese Elemente +% auftreten. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Der Generator für Schriftgrößendateien} +% +% \iffalse +%<*generator> +% \fi +% Ab Version 3.09 gibt es einen Generator für neue +% Schriftgrößendateien. Dieser richtet sich vor allem an Klassenautoren und +% bietet die Möglichkeit, eine eigene berechnete Schriftgrößendatei als +% Grundlage für eine spezifisch angepasste Schriftgrößendateie zu erstellen. +% Optionen besitzt dieser jedoch nicht. Daher reduziert sich der Optionenteil +% auf ein einfaches +% \begin{macrocode} +\ProcessOptions\relax +% \end{macrocode} +% \iffalse +% +% \fi +% +% \subsection{Option zur Auswahl der Größe der Grundschrift} +% +% \iffalse +%<*class|extend> +% \fi +% \begin{option}{10pt} +% \begin{option}{11pt} +% \begin{option}{12pt} +% Diese Optionen existieren nicht mehr als explizite Optionen, sondern +% werden in \texttt{scrtarea.dtx} über \cs{DeclareOption*} +% ausgewertet. +% \begin{macro}{\@ptsize} +% \changes{v2.96}{2006/08/11}{\cs{@ptsize} hat temporär eine andere +% Bedeutung} +% Wir definieren \cs{@ptsize} als Grundschriftgrößee minus 10\,pt. +% Hier wird die Standardeinstellung 11\,pt für alle Klassen außer der +% Briefklasse gewählt. Bis zum Einstellen tatsächlichen Einstellen der +% Schriftgröße wird in \cs{@ptsize} allerdings die tatsächliche Größe +% angegeben, damit sich Rundungsfehler nicht so leicht summieren. +% \begin{macrocode} +%<*!extend> +\newcommand*\@ptsize{% +% 11% +% 12% +} +% +% \end{macrocode} +% \end{macro} +% \end{option} +% \end{option} +% \end{option} +% +% \begin{macro}{\@pt@scan} +% \changes{v2.6}{2000/01/04}{neu (intern)} +% \begin{macro}{\@pt@@scan} +% \changes{v2.6}{2000/01/04}{neu (intern)} +% \changes{v2.97c}{2007/05/12}{\cs{KOMA@UseObsolete} durch +% \cs{KOMA@UseObsoleteOption} ersetzt} +% \changes{v2.98c}{2008/03/22}{Verwendung von \cs{KOMA@UseObsoleteOption} +% korrigiert} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch +% \cs{PackageInfoNoLine} ersetzt} +% \changes{v3.12}{2013/03/04}{Alle Schriftgrößen-Optionen außer +% \texttt{10pt}, \texttt{11pt} und \texttt{12pt} sind überholt.} +% Das Macro \cs{@pt@scan} wird benötigt, um die Schriftgröße nach der alten +% Methode zu erkennen. +% \begin{macrocode} +%<*!extend> +\newcommand*{\@pt@scan}{% + \expandafter\@pt@@scan\CurrentOption pt\@pt@@scan% +} +\newcommand*{\@pt@@scan}{} +\def\@pt@@scan #1pt#2\@pt@@scan{% + \ifstr{#2}{pt}{% + \ifnumber{#1}{% + \ifstr{#1}{10}{% + \KOMA@UseStandardOption{\PackageInfoNoLine{\KOMAClassName}}% + {#1#2}{fontsize=#1#2}% + }{% + \ifstr{#1}{11}{% + \KOMA@UseStandardOption{\PackageInfoNoLine{\KOMAClassName}}% + {#1#2}{fontsize=#1#2}% + }{% + \ifstr{#1}{12}{% + \KOMA@UseStandardOption{\PackageInfoNoLine{\KOMAClassName}}% + {#1#2}{fontsize=#1#2}% + }{% + \KOMA@UseDeprecatedOption{\PackageWarningNoLine{\KOMAClassName}}% + {#1#2}{fontsize=#1#2}% + }% + }% + } + }{\@headlines}% + }{\@headlines}% +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@fontsizefilebase} +% \changes{v2.96}{2006/08/11}{neu (intern)} +% \changes{v3.00}{2008/05/01}{Definition für \textsf{scrextend} vorgezogen} +% Dieses Makro speichert den Präfix der primären +% Schriftgrößenoptionsdateien. Es wird nur definiert, wenn es nicht bereits +% definiert ist. Damit können Wrapperklassen komplett andere Größen vorgeben, +% ohne mit \cs{ReplaceInput} arbeiten zu müssen. +% \begin{macrocode} +\providecommand*{\@fontsizefilebase}{scrsize} +% \end{macrocode} +% \end{macro} +% +% \begin{option}{fontsize} +% \changes{v2.96}{2006/08/11}{Funktion komplett geändert} +% \changes{v2.98c}{2008/03/26}{lädt nach Möglichkeit die zugehörige +% Schriftgrößendatei} +% \changes{v3.12}{2013/03/05}{Status wird mit \cs{FamilyKeyStateProcessed} +% gesetzt.} +% Hier nun die Option, die tatsächlich verwendet wird. Es sei darauf +% hingewiesen, dass damit auch Schriftgrößen wie \texttt{10.3pt} denkbar +% wären. +% \begin{macrocode} +\KOMA@key{fontsize}{% +%<*!extend> + \scr@ifundefinedorrelax{changefontsizes}{% + \@defaultunits\@tempdima#1pt\relax\@nnil + \edef\@ptsize{#1}% + }{% +% + \expandafter\@defaultunits\expandafter\@tempdima#1 pt\relax\@nnil + \edef\@tempa{#1}% + \setlength{\@tempdimb}{\@tempdima}% + \edef\@tempb{\strip@pt\@tempdimb}% + \addtolength{\@tempdimb}{-10\p@}% + \edef\@ptsize{\strip@pt\@tempdimb}% + \edef\@tempa{% + \noexpand\makeatletter + \noexpand\InputIfFileExists{\@fontsizefilebase\@tempa.clo}{% +% \noexpand\ClassInfo{\KOMAClassName}{% +% \noexpand\PackageInfo{scrextend}{% + File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}% + }{% + \noexpand\InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{% +% \noexpand\ClassInfo{\KOMAClassName}{% +% \noexpand\PackageInfo{scrextend}{% + File `\@fontsizefilebase\@tempb pt.clo' used instead of% + \noexpand\MessageBreak + file `\@fontsizefilebase\@tempa.clo' to setup font sizes}% + }{% + \noexpand\changefontsizes{#1}% + }% + }% + \noexpand\catcode`\noexpand\@=\the\catcode`\@ + }% +% \scr@ifundefinedorrelax{changefontsizes}{% +% \expandafter\AtEndOfPackage\expandafter{\@tempa}% +% }{% + \@tempa + }% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \end{option} +% +% \iffalse +% +% \fi +% +% \iffalse +% +%<*body> +% \fi +% +% \subsection{Sicherstellen der Umgebung des Generators} +% +% \iffalse +%<*generator> +% \fi +% Der Generator benötigt die Anweisung \cs{changefontsizes}, die entweder von +% einer \KOMAScript-Klasse oder vom Paket \texttt{scrextend} bereitgestellt +% wird: +% \begin{macrocode} +\@ifundefined{changefontsizes}{\RequirePackage{scrextend}}{} +% \end{macrocode} +% \iffalse +% +% \fi +% +% \subsection{Einlesen der Schriftgrößendatei} +% +% \changes{v2.6}{2000/01/04}{Einlesen der Schriftgrößen-Options-Datei +% funktioniert nun mit diversen Größen} +% \changes{v2.98c}{2008/03/26}{Eigene \texttt{scrsize}-Dateien definiert} +% +% \iffalse +% +%<*10pt|11pt|12pt> +% \fi +% +% Es werden min. drei Schriftgrößendateien benötigt. Ab Version 2.98c +% verwendet \KOMAScript{} vorzugsweise eigene Dateien, die auch noch zu einem +% späteren Zeitpunkt geladen werden können. Ansonsten sind diese Dateien +% weitestgehend dem Quellcode der Standardklassen \texttt{classes.dtx} +% entnommen. +% +% \begin{macrocode} +\ProvidesFile{% +%<10pt> scrsize10pt.clo% +%<11pt> scrsize11pt.clo% +%<12pt> scrsize12pt.clo% +}[\KOMAScriptVersion\space font size class option % +%<10pt> (10pt)% +%<11pt> (11pt)% +%<12pt> (12pt)% +] +% \end{macrocode} +% +% \begin{macro}{\normalsize} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\small} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\footnotesize} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\scriptsize} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\tiny} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\large} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\Large} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\LARGE} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\huge} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\Huge} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% Siehe \texttt{classes.dtx}. +% \begin{macrocode} +\def\normalsize{% +%<*10pt> + \@setfontsize\normalsize\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ +% +%<*11pt> + \@setfontsize\normalsize\@xipt{13.6}% + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ +% +%<*12pt> + \@setfontsize\normalsize\@xiipt{14.5}% + \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ +% + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI +} +\def\small{% +%<*10pt> + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% +% +%<*11pt> + \@setfontsize\small\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% +% +%<*12pt> + \@setfontsize\small\@xipt{13.6}% + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% +% + \belowdisplayskip \abovedisplayskip +} +\def\footnotesize{% +%<*10pt> + \@setfontsize\footnotesize\@viiipt{9.5}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% +% +%<*11pt> + \@setfontsize\footnotesize\@ixpt{11}% + \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% +% +%<*12pt> + \@setfontsize\footnotesize\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% +% + \belowdisplayskip \abovedisplayskip +} +%<*10pt> +\def\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt} +\def\tiny{\@setfontsize\tiny\@vpt\@vipt} +\def\large{\@setfontsize\large\@xiipt{14}} +\def\Large{\@setfontsize\Large\@xivpt{18}} +\def\LARGE{\@setfontsize\LARGE\@xviipt{22}} +\def\huge{\@setfontsize\huge\@xxpt{25}} +\def\Huge{\@setfontsize\Huge\@xxvpt{30}} +% +%<*11pt> +\def\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}} +\def\tiny{\@setfontsize\tiny\@vipt\@viipt} +\def\large{\@setfontsize\large\@xiipt{14}} +\def\Large{\@setfontsize\Large\@xivpt{18}} +\def\LARGE{\@setfontsize\LARGE\@xviipt{22}} +\def\huge{\@setfontsize\huge\@xxpt{25}} +\def\Huge{\@setfontsize\Huge\@xxvpt{30}} +% +%<*12pt> +\def\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}} +\def\tiny{\@setfontsize\tiny\@vipt\@viipt} +\def\large{\@setfontsize\large\@xivpt{18}} +\def\Large{\@setfontsize\Large\@xviipt{22}} +\def\LARGE{\@setfontsize\LARGE\@xxpt{25}} +\def\huge{\@setfontsize\huge\@xxvpt{30}} +\let\Huge=\huge +% +\normalsize +% \end{macrocode} +% \begin{Length}{\footnotesep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\footins} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\floatsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\textfloatsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\intextsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\dblfloatsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\sbltextfloatsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\@fptop} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\@fpsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\@fpbot} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\@dblfptop} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\@dblfpsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\@dblfpbot} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{Length}{\partopsep} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% Siehe \texttt{classes.dtx}. +% \begin{macrocode} +%<*10pt> +\setlength\footnotesep {6.65\p@} +\setlength{\skip\footins} {9\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop {0\p@ \@plus 1fil} +\setlength\@fpsep {8\p@ \@plus 2fil} +\setlength\@fpbot {0\p@ \@plus 1fil} +\setlength\@dblfptop {0\p@ \@plus 1fil} +\setlength\@dblfpsep {8\p@ \@plus 2fil} +\setlength\@dblfpbot {0\p@ \@plus 1fil} +\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@} +% +%<*11pt> +\setlength\footnotesep {7.7\p@} +\setlength{\skip\footins} {10\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop {0\p@ \@plus 1fil} +\setlength\@fpsep {8\p@ \@plus 2fil} +\setlength\@fpbot {0\p@ \@plus 1fil} +\setlength\@dblfptop {0\p@ \@plus 1fil} +\setlength\@dblfpsep {8\p@ \@plus 2fil} +\setlength\@dblfpbot {0\p@ \@plus 1fil} +\setlength\partopsep {3\p@ \@plus 1\p@ \@minus 1\p@} +% +%<*12pt> +\setlength\footnotesep {8.4\p@} +\setlength{\skip\footins} {10.8\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@} +\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop {0\p@ \@plus 1fil} +\setlength\@fpsep {10\p@ \@plus 2fil} +\setlength\@fpbot {0\p@ \@plus 1fil} +\setlength\@dblfptop {0\p@ \@plus 1fil} +\setlength\@dblfpsep {10\p@ \@plus 2fil} +\setlength\@dblfpbot {0\p@ \@plus 1fil} +\setlength\partopsep {3\p@ \@plus 2\p@ \@minus 2\p@} +% +% \end{macrocode} +% \begin{macro}{\@listi} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\@listii} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\@listiii} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\@listiv} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\@listv} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% \begin{macro}{\@listvi} +% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} +% Siehe \texttt{classes.dtx}. +% \begin{macrocode} +\def\@listi{\leftmargin\leftmargini +%<*10pt> + \parsep 4\p@ \@plus2\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep4\p@ \@plus2\p@ \@minus\p@} +% +%<*11pt> + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \itemsep4.5\p@ \@plus2\p@ \@minus\p@} +% +%<*12pt> + \parsep 5\p@ \@plus2.5\p@ \@minus\p@ + \topsep 10\p@ \@plus4\p@ \@minus6\p@ + \itemsep5\p@ \@plus2.5\p@ \@minus\p@} +% +\let\@listI\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep +%<*10pt> + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ +% +%<*11pt> + \topsep 4.5\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ +% +%<*12pt> + \topsep 5\p@ \@plus2.5\p@ \@minus\p@ + \parsep 2.5\p@ \@plus\p@ \@minus\p@ +% + \itemsep \parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep +%<10pt> \topsep 2\p@ \@plus\p@\@minus\p@ +%<11pt> \topsep 2\p@ \@plus\p@\@minus\p@ +%<12pt> \topsep 2.5\p@\@plus\p@\@minus\p@ + \parsep \z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep \topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +% \end{macrocode} +% \iffalse +% +%<*body> +% \fi +% +% \iffalse +%<*class|extend> +% \fi +% +% \begin{macro}{\changefontsizes} +% \changes{v2.96}{2006/08/11}{neue Anweisung (benötigt \eTeX)} +% \changes{v3.08b}{2011/02/22}{drei falsche \cs{def} durch \cs{edef} +% ersetzt} +% Diese Anweisung bietet berechnete Schriftgrößen als Fallbacklösung an. Das +% optionale erste Argument ist dabei der Grundlinienabstand. Das zweite +% Argument ist die gewünschte Grundschriftgröße. +% \begin{macro}{\scr@setlength} +% \changes{v3.12}{2013/10/08}{neue Anweisung (intern)}%^^A +% Setzt die Länge in |#1| auf den Wert |#2| plus |#3| minus |#4|, wobei +% allerdings für |#2|, |#3| und |#4| Mindestwerte von 1\,pt verwendet werden. +% \begin{macrocode} +\newcommand*\scr@setlength[4]{% + \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax + \setlength{#1}{#2 \@plus#3 \@minus#4}% + \else + \ifdim #2<\ifdim #2=\z@ \z@ \else \p@\fi + \ifdim #3<\ifdim #3=\z@ \z@ \else \p@\fi + \ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi + \setlength{#1}{\p@ \@plus\p@ \@minus\p@}% + \else + \setlength{#1}{\p@ \@plus\p@ \@minus#4}% + \fi + \else + \ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi + \setlength{#1}{\p@ \@plus#3 \@minus\p@}% + \else + \setlength{#1}{\p@ \@plus#3 \@minus#4}% + \fi + \fi + \else + \ifdim #3<\ifdim #3=\z@ \z@ \else \p@\fi + \ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi + \setlength{#1}{#2 \@plus\p@ \@minus\p@}% + \else + \setlength{#1}{#2 \@plus\p@ \@minus#4}% + \fi + \else + \ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi + \setlength{#1}{#2 \@plus#3 \@minus\p@}% + \else + \setlength{#1}{#2 \@plus#3 \@minus#4}% + \fi + \fi + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\newcommand*{\changefontsizes}[2][1.2\@tempdima]{% +% \ClassWarning{\KOMAClassName}{% +% \PackageWarning{scrextend}{% + Using fallback calculation to setup font sizes\MessageBreak + for basic size `#2'}% + \scr@ifundefinedorrelax{dimexpr}{% +% \ClassError{\KOMAClassName}{% +% \PackageError{scrextend}{% + feature only allowed using e-TeX% + }{% + The fallback calculation to setup font sizes was implemented + using e-TeX.\MessageBreak + You should not continue, because the fallback calculation would fail% + } + }{% + \@defaultunits\@tempdima#2pt\relax\@nnil + \setlength{\@tempdimc}{\@tempdima}% + \addtolength{\@tempdimc}{-10\p@}% + \edef\@ptsize{\strip@pt\@tempdimc}% + \@defaultunits\@tempdimb#1pt\relax\@nnil + \setlength{\@tempdimc}{\dimexpr (100\@tempdimb / \@tempdima * \p@)}% + \edef\@tempb{\the\@tempdimc}% + \setlength{\@tempdimc}{\@tempdima}% + \def\@tempa##1##2##3##4##5\@nnil{\def##1{##2.##3##4}}% + \expandafter\@tempa\expandafter\@tempb\@tempb\@nnil% +% \end{macrocode} +% Ab hier ist \cs{@tempdimc} die gewünschte Grundschriftgröße in pt und +% \cs{@tempb} der Faktor für den Grundlinienabstand auf 2 Stellen hinter dem +% Komma. Zunächst ist auch \cs{@tempdima} noch die geforderte +% Grundschriftgröße und \cs{@tempdimb} der geforderte +% Grundlinienabstand. Allerdings verändern sich \cs{@tempdima} und +% \cs{@tempdimb} im Laufe der nachfolgenden Definitionen abhängig von der zu +% definierenden Schriftgröße. +% +% Berechnungen für und Definition von \cs{normalsize}: +% \begin{macrocode} + \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax + \setlength{\abovedisplayskip}{% + \@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}% + \setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}% + \setlength{\belowdisplayshortskip}{% + .55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}% + \else + \scr@setlength{\abovedisplayskip}% + {.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}% + \scr@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}% + \scr@setlength{\belowdisplayshortskip}% + {.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}% + \fi + \setlength{\belowdisplayskip}{\abovedisplayskip}% + \edef\normalsize{% + \noexpand\@setfontsize\noexpand\normalsize + {\the\@tempdima}{\the\@tempdimb}% + \abovedisplayskip \the\abovedisplayskip + \abovedisplayshortskip \the\abovedisplayshortskip + \belowdisplayskip \the\belowdisplayskip + \belowdisplayshortskip \the\belowdisplayshortskip + \let\noexpand\@listi\noexpand\@listI + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{small}: +% \begin{macrocode} + \setlength{\@tempdima}{0.9125\@tempdimc}% + \setlength{\@tempdimb}{\@tempb\@tempdima}% + \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax + \setlength{\abovedisplayskip}{% + \@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}% + \setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}% + \setlength{\belowdisplayshortskip}{% + .55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}% + \else + \scr@setlength{\abovedisplayskip}% + {.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}% + \scr@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}% + \scr@setlength{\belowdisplayshortskip}% + {.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}% + \fi + \setlength{\belowdisplayskip}{\abovedisplayskip}% + \edef\small{% + \noexpand\@setfontsize\noexpand\small + {\the\@tempdima}{\the\@tempdimb}% + \abovedisplayskip \the\abovedisplayskip + \abovedisplayshortskip \the\abovedisplayshortskip + \belowdisplayskip \the\belowdisplayskip + \belowdisplayshortskip \the\belowdisplayshortskip + \let\noexpand\@listi\noexpand\@listi@small + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{footnotesize}: +% \begin{macrocode} + \setlength{\@tempdima}{.83334\@tempdimc}% + \setlength{\@tempdimb}{\@tempb\@tempdima}% + \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax + \setlength{\abovedisplayskip}{% + \@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}% + \setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}% + \setlength{\belowdisplayshortskip}{% + .55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}% + \else + \scr@setlength{\abovedisplayskip}% + {.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}% + \scr@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}% + \scr@setlength{\belowdisplayshortskip}% + {.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}% + \fi + \setlength{\belowdisplayskip}{\abovedisplayskip}% + \edef\footnotesize{% + \noexpand\@setfontsize\noexpand\footnotesize + {\the\@tempdima}{\the\@tempdimb}% + \abovedisplayskip \the\abovedisplayskip + \abovedisplayshortskip \the\abovedisplayshortskip + \belowdisplayskip \the\belowdisplayskip + \belowdisplayshortskip \the\belowdisplayshortskip + \let\noexpand\@listi\noexpand\@listi@footnotesize + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{scriptsize}: +% \begin{macrocode} + \setlength{\@tempdima}{.66667\@tempdimc}% + \setlength{\@tempdimb}{\@tempb\@tempdima}% + \edef\scriptsize{% + \noexpand\@setfontsize\noexpand\scriptsize + {\the\@tempdima}{\the\@tempdimb}% + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{tiny}: +% \begin{macrocode} + \setlength{\@tempdima}{.5\@tempdimc}% + \setlength{\@tempdimb}{\@tempb\@tempdima}% + \edef\tiny{% + \noexpand\@setfontsize\noexpand\tiny + {\the\@tempdima}{\the\@tempdimb}% + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{large}: +% \begin{macrocode} + \setlength{\@tempdima}{1.2\@tempdimc}% + \setlength{\@tempdimb}{\@tempb\@tempdima}% + \edef\large{% + \noexpand\@setfontsize\noexpand\large + {\the\@tempdima}{\the\@tempdimb}% + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{Large}: +% \begin{macrocode} + \setlength{\@tempdima}{1.44\@tempdimc}% + \setlength{\@tempdimb}{\@tempb\@tempdima}% + \edef\Large{% + \noexpand\@setfontsize\noexpand\Large + {\the\@tempdima}{\the\@tempdimb}% + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{LARGE}: +% \begin{macrocode} + \setlength{\@tempdima}{1.728\@tempdimc}% + \setlength{\@tempdimb}{\@tempb\@tempdima}% + \edef\LARGE{% + \noexpand\@setfontsize\noexpand\LARGE + {\the\@tempdima}{\the\@tempdimb}% + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{huge}: +% \begin{macrocode} + \setlength{\@tempdima}{2.074\@tempdimc}% + \setlength{\@tempdimb}{\@tempb\@tempdima}% + \edef\huge{% + \noexpand\@setfontsize\noexpand\huge + {\the\@tempdima}{\the\@tempdimb}% + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{Huge}: +% \begin{macrocode} + \setlength{\@tempdima}{2.488\@tempdimc}% + \setlength{\@tempdimb}{\@tempb\@tempdima}% + \edef\Huge{% + \noexpand\@setfontsize\noexpand\Huge + {\the\@tempdima}{\the\@tempdimb}% + }% +% \end{macrocode} +% Wechsel zu \cs{normalsize} und Berechnung weiterer schriftabhängigen +% Abstände für diese Schriftgröße. +% \begin{macrocode} + \normalsize +% \end{macrocode} +% Ab hier kann nun \cs{f@size} für die Schriftgröße und \cs{f@baselineskip} +% für den normalen Grundlinienabstand (ohne \cs{baselinestretch}) verwendet +% werden. Allerdings ist das keine Länge! +% \begin{macrocode} + \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax + \setlength{\footnotesep}{.7\@tempdimc}% + \setlength{\skip\footins}{.9\@tempdimc \@plus .3333\@tempdimc \@minus + .6\@tempdimc}% + \setlength{\floatsep}{\@tempdimc \@plus .1667\@tempdimc \@minus + .3333\@tempdimc}% + \setlength{\textfloatsep}{1.6667\@tempdimc \@plus .1667\@tempdimc \@minus + .3333\@tempdimc}% + \setlength{\intextsep}{\@tempb\@tempdimc \@plus .3333\@tempdimc \@minus + .3333\@tempdimc}% + \setlength{\dblfloatsep}{\@tempb\@tempdimc \@plus .1667\@tempdimc \@minus + .3333\@tempdimc}% + \setlength{\dbltextfloatsep}{\textfloatsep}% + \setlength{\@fptop}{0\p@ \@plus 1fil}% + \setlength{\@fpsep}{.8333\@tempdimc \@plus 2fil}% + \setlength{\@fpbot}{\@fptop}% + \setlength{\@dblfptop}{0\p@ \@plus 1fil}% + \setlength{\@dblfpsep}{.8333\@tempdimc \@plus 2fil}% + \setlength{\@dblfpbot}{\@fptop}% + \fi +% \end{macrocode} +% Berechnungen für und Definition von \cs{@listi} und \cs{@listI}: +% \begin{macrocode} + \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax + \setlength{\topsep}{.8333\@tempdimc \@plus .3333\@tempdimc \@minus + .5\@tempdimc}% + \setlength{\parsep}{.4167\@tempdimc \@plus .2083\@tempdimc \@minus \p@}% + \else + \setlength{\@tempdimb}{\f@baselineskip}% + \scr@setlength{\parsep}% + {.3333\@tempdimb}{.1667\@tempdimb}{.0833\@tempdimb}% + \scr@setlength{\topsep}% + {.6667\@tempdimb}{.1667\@tempdimb}{.3333\@tempdimb}% + \fi + \@tempswafalse + \begingroup + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listi\endcsname + \endgroup + \edef\@listi{\leftmargin\leftmargini + \topsep \the\topsep + \parsep \the\parsep + \itemsep \parsep + \if@tempswa\noexpand\@list@extra\fi + }% + \let\@listI\@listi +% \end{macrocode} +% Berechnungen für und Definition von \cs{@listi@small}: +% \begin{macrocode} + \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax + \setlength{\topsep}{.75\@tempdimc \@plus .25\@tempdimc \@minus + .41667\@tempdimc}% + \setlength{\parsep}{.375\@tempdimc \@plus .16667\@tempdimc \@minus \p@}% + \else + \scr@setlength{\parsep}% + {.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}% + \scr@setlength{\topsep}% + {.3333\@tempdimb}{.1667\@tempdimb}{.1667\@tempdimb}% + \fi + \@tempswafalse + \begingroup + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listi\endcsname + \endgroup + \edef\@listi@small{\leftmargin\leftmargini + \topsep \the\topsep + \parsep \the\parsep + \itemsep \parsep + \if@tempswa\noexpand\@list@extra\fi + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{@listi@footnotesize}: +% \begin{macrocode} + \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax + \setlength{\topsep}{.5\@tempdimc \@plus .16667\@tempdimc \@minus + .16667\@tempdimc}% + \setlength{\parsep}{.25\@tempdimc \@plus .16667\@tempdimc \@minus \p@}% + \else + \scr@setlength{\parsep}% + {.125\@tempdimb}{.0625\@tempdimb}{.0625\@tempdimb}% + \scr@setlength{\topsep}% + {.25\@tempdimb}{.125\@tempdimb}{.125\@tempdimb}% + \fi + \@tempswafalse + \begingroup + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listi\endcsname + \endgroup + \edef\@listi@footnotesize{\leftmargin\leftmargini + \topsep \the\topsep + \parsep \the\parsep + \itemsep \parsep + \if@tempswa\noexpand\@list@extra\fi + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{@listii}: +% \begin{macrocode} + \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax + \setlength{\topsep}{.4167\@tempdimc \@plus .2083\@tempdimc \@minus \p@}% + \setlength{\parsep}{.2083\@tempdimc \@plus \p@ \@minus \p@}% + \else + \scr@setlength{\parsep}% + {.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}% + \scr@setlength{\topsep}% + {.3333\@tempdimb}{.1667\@tempdimb}{.0833\@tempdimb}% + \fi + \@tempswafalse + \begingroup + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listii\endcsname + \endgroup + \edef\@listii{\leftmargin\leftmarginii + \labelwidth=\dimexpr \leftmargin-\labelsep + \topsep \the\topsep + \parsep \the\parsep + \itemsep \parsep + \if@tempswa\noexpand\@list@extra\fi + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{@listiii}: +% \begin{macrocode} + \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax + \setlength{\topsep}{.2083\@tempdimc \@plus \p@ \@minus \p@}% + \else + \scr@setlength{\topsep}% + {.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}% + \fi + \setlength{\partopsep}{\z@ \@plus\z@ \@minus\p@}% + \@tempswafalse + \begingroup + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listiii\endcsname + \endgroup + \edef\@listiii{\leftmargin\leftmarginiii + \labelwidth=\dimexpr \leftmargin-\labelsep + \topsep \the\topsep + \parsep \z@ + \partopsep \the\partopsep + \itemsep \topsep + \if@tempswa\noexpand\@list@extra\fi + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{@listiv}: +% \begin{macrocode} + \@tempswafalse + \begingroup + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listiv\endcsname + \endgroup + \edef\@listiv{\leftmargin\leftmarginiv + \labelwidth=\dimexpr \leftmargin-\labelsep\relax + \if@tempswa\noexpand\@list@extra\fi + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{@listv}: +% \begin{macrocode} + \@tempswafalse + \begingroup + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listv\endcsname + \endgroup + \edef\@listv{\leftmargin\leftmarginv + \labelwidth=\dimexpr \leftmargin-\labelsep\relax + \if@tempswa\noexpand\@list@extra\fi + }% +% \end{macrocode} +% Berechnungen für und Definition von \cs{@listvi}: +% \begin{macrocode} + \@tempswafalse + \begingroup + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listvi\endcsname + \endgroup + \edef\@listvi{\leftmargin\leftmarginvi + \labelwidth=\dimexpr \leftmargin-\labelsep\relax + \if@tempswa\noexpand\@list@extra\fi + }% + \@listi +% \end{macrocode} +% Einige Platzierungsabstände sind ebenfalls schriftgrößenabhängig. %^^A +% \changes{v2.97c}{2007/07/04}{\cs{intextsep} setzen}%^^A +% \changes{v2.97c}{2007/07/04}{\cs{dblfloatsep} setzen}%^^A +% \changes{v2.97c}{2007/07/04}{\cs{partopsep} setzen}%^^A +% \changes{v3.12}{2013/10/08}{Berechnung einiger Größen verändert}%^^A +% Ab Version~3.12 wird deren Berechnung korrigiert. Viele der Größen sind nun +% nicht mehr von der Schriftgröße, sondern dem Grundlinienabstand abhängig. +% \begin{macrocode} + \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax + \setlength{\@tempdimb}{\@tempb\@tempdima}% + \setlength{\@tempdima}{\dimexpr \@tempdimb-\@tempdimc}% + \setlength\intextsep{\@tempdimb \@plus.2\@tempdima \@minus.2\@tempdima}% + \setlength\dblfloatsep\intextsep + \setlength\partopsep{.2\@tempdimc \@plus.1\@tempdimc \@minus.1\@tempdimc}% + \else + \setlength{\@tempdimb}{\f@baselineskip}% + \setlength{\footnotesep}{.555\@tempdimb}% + \scr@setlength{\skip\footins}% + {.75\@tempdimb}{.3333\@tempdimb}{.1667\@tempdimb}% + \scr@setlength{\floatsep}% + {\@tempdimb}{.1667\@tempdimb}{.1667\@tempdimb}% + \scr@setlength{\textfloatsep}% + {1.6667\@tempdimb}{.1667\@tempdimb}{.3333\@tempdimb}% + \setlength{\intextsep}{\floatsep}% + \setlength{\dblfloatsep}{\floatsep}% + \setlength{\dbltextfloatsep}{\textfloatsep}% + \setlength{\@fptop}{\z@ \@plus 1fil}% + \setlength{\@fpsep}{.6667\@tempdimb \@plus 2fil}% + \setlength{\@fpbot}{\@fptop}% + \setlength{\@dblfptop}{\@fptop}% + \setlength{\@dblfpsep}{\@fpsep}% + \setlength{\@dblfpbot}{\@fptop}% + \scr@setlength{\partopsep}{.2\@tempdimb}{.1\@tempdimb}{.1\@tempdimb}% +% \end{macrocode} +% Hinweis: \cs{topsep} und \cs{parsep} werden hier nicht gesetzt, weil dies +% bereits durch das \cs{@listi} zurvor erfolgte. +% \begin{macrocode} + \fi + }% +} +% \end{macrocode} +% \end{macro} +% \iffalse +% +%<*generator> +% \fi +% \begin{macro}{\generatefontfile} +% \changes{v3.09}{2011/02/23}{Neu} +% Dies ist die zentrale Anweisung des neuen Generators. Es wird eine neue +% Schriftgrößendatei ausgegeben. Der Name dieser Datei setzt sich aus dem +% ersten obligaorischen Argument gefolgt von der Schriftgröße und der +% Erweiterung \texttt{.clo} zusammen. Da Schriftgrößendateien, die mit +% »\texttt{scrsize}« beginnen, \KOMAScript{} vorbehalten sind wird dieses +% erste Argument verweigert. +% \begin{macrocode} +\newcommand*{\generatefontfile}[1]{% + \ifstr{#1}{scrsize}{% + \ClassError{\KOMAClassName}{% + Font file name `scrsize' not allowed% + }{% + Font files with name `scrsize.clo' are reserved for + KOMA-Script.\MessageBreak + You should use another prefix and rename \string\@fontsizefilebase\space + either before\MessageBreak + loading a KOMA-Script class using one of \string\documentclass, + \string\LoadClass,\MessageBreak + or \string\LoadClassWithOptions\space or before loading package + `scrextend' using another\MessageBreak + class.}% + \@@@generatefontfile + }{% +% \end{macrocode} +% Das zweite Argument ist optional. Ist es angegeben, so gibt es den +% gewünschten Zeilenabstand an. Ist es nicht angegeben, so wird der +% Zeilenabstand |\changefontsized| überlassen. Das dritte Argument ist +% schließlich die gewünschte Schriftgröße. +% \begin{macrocode} + \@ifnextchar [{\@generatefontfile{#1}}{\@@generatefontfile{#1}}% + }% +} +% \end{macrocode} +% \begin{macro}{\@generatefontfile} +% \changes{v3.09}{2011/02/23}{Neu (intern)} +% \begin{macro}{\@@generatefontfile} +% \changes{v3.09}{2011/02/23}{Neu (intern)} +% Diese beiden Hilfsmakros werden benötigt, um Aufrufe von |\generatefontfile| +% mit oder ohne optionales, zweites Argument zu behandeln. In jedem Fall wird +% die gewünschte Schriftgröße innerhalb einer Gruppe mit Hilfe von +% |\changefontsizes| bestimmt und dann eine Datei mit den dabei ermittelten +% Einstellungen ausgegeben. +% \begin{macrocode} +\newcommand*{\@generatefontfile}{} +\def\@generatefontfile#1[#2]#3{% + \begingroup + \@ifundefined{setparsizes}{\setlength{\parskip}{0pt}}% + {\setparsizes{0pt}{0pt}{0pt}}% + \changefontsizes[{#2}]{#3}% + \generate@fontfile{#1}{#3}% + \endgroup +} +\newcommand\@@generatefontfile[2]{% + \begingroup + \@ifundefined{setparsizes}{\setlength{\parskip}{0pt}}% + {\setparsizes{0pt}{0pt}{0pt}}% + \changefontsizes{#2}% + \generate@fontfile{#1}{#2}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\@@@generatorfontfile} +% \changes{v3.09}{2011/02/23}{Neu (intern)} +% Dieses Hilfsmakro wird hingegen im Fehlerfall aufgerufen, um die Ausgabe +% einer Schriftgrößendatei zu verhindern. +% \begin{macrocode} +\newcommand*{\@@@generatefontfile}[2][]{} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@fontfile} +% \changes{v3.09}{2011/02/23}{Neu (intern)} +% Da später die Verwendung von |\generatefontfile| noch auf die Präambel +% beschränkt werden wird, ist es kein Problem hier |\@mainaux| für die Ausgabe +% zu missbrauchen. Das funktioniert aber nur, weil |\@mainaux| erst innerhalb +% von |\begin{document}| tatsächlich geöffnet wird. Die Dateisparsamkeit an +% dieser Stelle ist also eigentlich ein ziemlich unsauberer Hack! +% \begin{macrocode} +\newcommand*{\@fontfile}{} +\let\@fontfile\@mainaux +% \end{macrocode} +% \begin{macro}{\generate@fontfile} +% \changes{v3.09}{2011/02/23}{Neu (intern)} +% Es wird nun eine Schriftgrößendatei ausgegeben. Dabei werden die aktuellen +% Einstellungen verwendet. Dabei wird die Tatsache ausgenutzt, dass diese +% Anweisung immer innerhalb einer Gruppe aufgerufen wird. Das erste Argument +% ist der Dateinamenpräfix (also so etwas wie »\texttt{scrsize}«, das zweite +% Argument die gewünschte Schriftgröße. Es ist zu beachten, dass alle Werte in +% der Datei in pt angegeben werden, auch wenn die gewünschte Schriftgröße eine +% ganz andere Einheit besitzt. Das macht schlicht die Arbeit etwas einfacher. +% \begin{macrocode} +\newcommand*{\generate@fontfile}[2]{% + \def\@ind{\space\space}% + \immediate\openout\@fontfile #1#2.clo + \immediate\write\@fontfile{\@percentchar^^J% + \@percentchar\space This is file `#1#2.clo', generated with^^J% + \@percentchar\space scrfontsizes + \csname ver@scrfontsizes.sty\endcsname,^^J% + \@percentchar\space Copyright (c) Markus Kohm.^^J% + \@percentchar^^J% + \string\ProvidesFile{#1#2.clo}[% + \the\year/\ifnum\month<10 0\fi\the\month/\ifnum\day<10 0\fi\the\day% + \space generated font size class option (#2)]}% + \immediate\write\@fontfile{% + \string\def\string\normalsize{\@percentchar^^J% + \@ind\string\@setfontsize\string\normalsize{\f@size}{\f@baselineskip}% + \@percentchar^^J% + \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J% + \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J% + \@ind\string\belowdisplayskip\space \the\belowdisplayskip^^J% + \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J% + \@ind\string\let\string\@listi\string\@listI^^J% + }\@percentchar% + }% + \begingroup\small\@listi + \immediate\write\@fontfile{% + \string\def\string\small{\@percentchar^^J% + \@ind\string\@setfontsize\string\small{\f@size}{\f@baselineskip}% + \@percentchar^^J% + \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J% + \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J% + \@ind\string\belowdisplayskip\space \the\belowdisplayskip^^J% + \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J% + \@ind\string\def\string\@listi{\@percentchar^^J% + \@ind\@ind\string\leftmargin\string\leftmargini^^J% + \@ind\@ind\string\topsep \the\topsep^^J% + \@ind\@ind\string\parsep \the\parsep^^J% + \@ind\@ind\string\itemsep \string\parsep^^J% + \@ind}\@percentchar^^J% + }\@percentchar% + }% + \endgroup + \begingroup\footnotesize\@listi + \immediate\write\@fontfile{% + \string\def\string\footnotesize{\@percentchar^^J% + \@ind\string\@setfontsize\string\small{\f@size}{\f@baselineskip}% + \@percentchar^^J% + \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J% + \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J% + \@ind\string\belowdisplayskip\space \the\belowdisplayskip^^J% + \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J% + \@ind\string\def\string\@listi{\@percentchar^^J% + \@ind\@ind\string\leftmargin\string\leftmargini^^J% + \@ind\@ind\string\topsep \the\topsep^^J% + \@ind\@ind\string\parsep \the\parsep^^J% + \@ind\@ind\string\itemsep \string\parsep^^J% + \@ind}\@percentchar^^J% + }\@percentchar% + }% + \endgroup + \begingroup\scriptsize + \immediate\write\@fontfile{% + \string\def\string\scriptsize{% + \string\@setfontsize\string\scriptsize{\f@size}{\f@baselineskip}% + }\@percentchar% + }% + \endgroup + \begingroup\tiny + \immediate\write\@fontfile{% + \string\def\string\tiny{% + \string\@setfontsize\string\tiny{\f@size}{\f@baselineskip}% + }\@percentchar% + }% + \endgroup + \begingroup\large + \immediate\write\@fontfile{% + \string\def\string\large{% + \string\@setfontsize\string\large{\f@size}{\f@baselineskip}% + }\@percentchar% + }% + \endgroup + \begingroup\Large + \immediate\write\@fontfile{% + \string\def\string\Large{% + \string\@setfontsize\string\Large{\f@size}{\f@baselineskip}% + }\@percentchar% + }% + \endgroup + \begingroup\LARGE + \immediate\write\@fontfile{% + \string\def\string\LARGE{% + \string\@setfontsize\string\LARGE{\f@size}{\f@baselineskip}% + }\@percentchar% + }% + \endgroup + \begingroup\huge + \immediate\write\@fontfile{% + \string\def\string\huge{% + \string\@setfontsize\string\huge{\f@size}{\f@baselineskip}% + }\@percentchar% + }% + \endgroup + \begingroup\Huge + \immediate\write\@fontfile{% + \string\def\string\Huge{% + \string\@setfontsize\string\Huge{\f@size}{\f@baselineskip}% + }\@percentchar% + }% + \endgroup + \immediate\write\@fontfile{\string\normalsize}% + \immediate\write\@fontfile{% + \string\setlength{\string\footnotesep}{\the\footnotesep}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\skip\string\footins}{\the\skip\footins}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\floatsep}{\the\floatsep}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\textfloatsep}{\the\textfloatsep}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\intextsep}{\the\intextsep}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\dblfloatsep}{\the\dblfloatsep}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\dbltextfloatsep}{\the\dbltextfloatsep}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\@fptop}{\the\@fptop}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\@fpsep}{\the\@fpsep}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\@fpbot}{\the\@fpbot}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\@dblfptop}{\the\@dblfptop}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\@dblfpsep}{\the\@dblfpsep}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\@dblfpbot}{\the\@dblfpbot}\@percentchar + }% + \immediate\write\@fontfile{% + \string\setlength{\string\partopsep}{\the\partopsep}\@percentchar + }% + \begingroup + \@listi + \immediate\write\@fontfile{% + \string\def\string\@listi{\@percentchar^^J% + \@ind\string\leftmargin\string\leftmargini^^J% + \@ind\string\topsep \the\topsep^^J% + \@ind\string\parsep \the\parsep^^J% + \@ind\string\itemsep \string\parsep^^J% + }\@percentchar + }% + \endgroup + \immediate\write\@fontfile{% + \string\let\string\@listI\string\@listi + }% + \begingroup + \@listii + \immediate\write\@fontfile{% + \string\def\string\@listii{\@percentchar^^J% + \@ind\string\leftmargin\string\leftmarginii^^J% + \@ind\string\labelwidth\string\leftmarginii^^J% + \@ind\string\advance\string\labelwidth-\string\labelsep^^J% + \@ind\string\topsep \the\topsep^^J% + \@ind\string\parsep \the\parsep^^J% + \@ind\string\itemsep \string\parsep^^J% + }\@percentchar + }% + \endgroup + \begingroup + \@listiii + \immediate\write\@fontfile{% + \string\def\string\@listiii{\@percentchar^^J% + \@ind\string\leftmargin\string\leftmarginiii^^J% + \@ind\string\labelwidth\string\leftmarginiii^^J% + \@ind\string\advance\string\labelwidth-\string\labelsep^^J% + \@ind\string\topsep \the\topsep^^J% + \@ind\string\parsep \the\parsep^^J% + \@ind\string\partopsep \the\partopsep^^J% + \@ind\string\itemsep \string\topsep^^J% + }\@percentchar + }% + \endgroup + \begingroup + \@listiv + \immediate\write\@fontfile{% + \string\def\string\@listiv{\@percentchar^^J% + \@ind\string\leftmargin\string\leftmarginiv^^J% + \@ind\string\labelwidth\string\leftmarginiv^^J% + \@ind\string\advance\string\labelwidth-\string\labelsep^^J% + }\@percentchar + }% + \endgroup + \begingroup + \@listv + \immediate\write\@fontfile{% + \string\def\string\@listv{\@percentchar^^J% + \@ind\string\leftmargin\string\leftmarginv^^J% + \@ind\string\labelwidth\string\leftmarginv^^J% + \@ind\string\advance\string\labelwidth-\string\labelsep^^J% + }\@percentchar + }% + \endgroup + \begingroup + \@listvi + \immediate\write\@fontfile{% + \string\def\string\@listvi{\@percentchar^^J% + \@ind\string\leftmargin\string\leftmarginvi^^J% + \@ind\string\labelwidth\string\leftmarginvi^^J% + \@ind\string\advance\string\labelwidth-\string\labelsep^^J% + }\@percentchar + }% + \endgroup + \immediate\write\@fontfile{% + \string\@ifundefined{@list@extra}{}{\@percentchar^^J% + \@ind\string\l@addto@macro{\string\@listi}{\string\@list@extra}% + \@percentchar^^J% + \@ind\string\let\string\@listI=\string\@listi^^J% + \@ind\string\l@addto@macro{\string\@listii}{\string\@list@extra}% + \@percentchar^^J% + \@ind\string\l@addto@macro{\string\@listiii}{\string\@list@extra}% + \@percentchar^^J% + \@ind\string\l@addto@macro{\string\footnotesize}{\string\protect + \string\add@extra@listi{ftns}}\@percentchar^^J% + \@ind\string\l@addto@macro{\string\small}{\string\protect + \string\add@extra@listi{sml}}\@percentchar^^J% + }\@percentchar^^J% + \string\@listi^^J% + \string\endinput^^J% + \@percentchar^^J% + \@percentchar\space End of file `#1#2.clo'. + } + \immediate\closeout\@fontfile +} +\@onlypreamble\generatefontfile +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \iffalse +% +%<*class|extend> +% \fi +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Zunächst wird die gewünschte Größe, die in \cs{@ptsize} abgelegt ist, als +% Länge ermittelt. In \cs{@tempa} wird die ursprünglich gewünschte Größe +% abgelegt, damit zwischen \texttt{10pt}, \texttt{10} und \texttt{10dd} +% unterschieden werden kann. In \cs{@tempb} wird hingegen die Größe in pt +% abgelegt, damit die Standard-Dateien verwendet werden können. Dann wird +% \cs{@ptsize} schon einmal richtig eingestellt. +% \begin{macrocode} +%<*!extend> +\expandafter\@defaultunits\expandafter\@tempdima\@ptsize pt\relax\@nnil +\edef\@tempa{\@ptsize}% +\setlength{\@tempdimb}{\@tempdima}% +\edef\@tempb{\strip@pt\@tempdimb}% +\addtolength{\@tempdimb}{-10\p@}% +\edef\@ptsize{\strip@pt\@tempdimb}% +% \end{macrocode} +% Jetzt wird zunächst versucht, ob eine Datei +% "`\texttt{\cs{fontsizefilebase}\cs{@tempa}.clo}"' vorhanden ist, also eine, +% bei der die ursprünliche Einheit im Namen angegeben ist. Wenn das der Fall +% ist, wird diese verwendet. Wenn nicht wird das Ganze für \cs{@tempb} um die +% Einheit pt erweitert wiederholt. +% \begin{macrocode} +\InputIfFileExists{\@fontsizefilebase\@tempa.clo}{ + \ClassInfo{\KOMAClassName}{% + File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}% +}{% + \InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{% + \ClassInfo{\KOMAClassName}{% + File `\@fontsizefilebase\@tempb pt.clo' used instead of\MessageBreak + file `\@fontsizefilebase\@tempa.clo' to setup font sizes}% + }{% +% \end{macrocode} +% Wurde bis hier noch keine Datei geladen, wird nun versucht, die +% Größendateien der Standardklassen zu verwenden. +% \begin{macrocode} +%<*book> + \InputIfFileExists{bk\@tempb.clo}{% + \ClassInfo{\KOMAClassName}{% + File `bk\@tempb.clo' used to setup font sizes}% + }{% +% + \InputIfFileExists{size\@tempb.clo}{% + \ClassInfo{\KOMAClassName}{% + File `size\@tempb.clo' used to setup font sizes}% + }{% +% \end{macrocode} +% Sind auch diese Dateien nicht vorhanden, so wird als Fallback eine +% Berechnung der Schriftgrößen verwendet. Es sei darauf hingewiesen, dass +% dabei auch \cs{@tempa}, \cs{@tempb} und \cs{@ptsize} neu gesetzt werden. +% \begin{macrocode} + \changefontsizes{\@tempa}% +% \end{macrocode} +% Damit sollten nun die Schriftgrößen eingestellt sein. +% \begin{macrocode} + }% +% }% + }% +} +% +% \end{macrocode} +% +% +% \subsection{"`Alte"' Font-Auswahlbefehle} +% +% \begin{macro}{\scr@DeclareOldFontCommand} +% \changes{v3.12}{2013/10/31}{neu} +% Diese Anweisung arbeitet prinzipiell wie die \LaTeX-Kern-Anweisung +% \cs{DeclareOldFontCommand}, wirft aber zusätzlich mit Warnungen um sich, um +% dem Anwender die Verwendung der alten Befehle zu versauern. +% \begin{macrocode} +%<*!extend> +\newcommand*{\scr@DeclareOldFontCommand}[3]{% + \DeclareRobustCommand #1{\@fontswitch {% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated font command `\string#1'!\MessageBreak + You should note, that in 1994 font command `\string#1' has\MessageBreak + been defined for compatiblitiy to Script 2.0 only.\MessageBreak + Now, after two decades of LaTeX2e and NFSS2, you\MessageBreak + shouldn't use such commands any longer and within\MessageBreak + KOMA-Script usage of `\string#1' is definitely deprecated.\MessageBreak + See `fntguide.pdf' for more information about\MessageBreak + recommended font commands.\MessageBreak + Note also, that KOMA-Script will remove the definition\MessageBreak + of `\string#1' anytime until release of about version 3.20.\MessageBreak + But for now, KOMA-Script will replace deprecated + `\string#1'\MessageBreak + by `\detokenize{#2}'% + }% + #2% + }{% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated font command `\string#1'!\MessageBreak + You should note, that in 1994 font command `\string#1' has\MessageBreak + been defined for compatiblitiy to Script 2.0 only.\MessageBreak + Now, after two decades of LaTeX2e and NFSS2, you\MessageBreak + shouldn't use such commands any longer and within\MessageBreak + KOMA-Script usage of `\string#1' is definitely deprecated.\MessageBreak + See `fntguide.pdf' for more information about\MessageBreak + recommended font commands.\MessageBreak + Note also, that KOMA-Script will remove the definition\MessageBreak + of `\string#1' anytime until release of about version 3.20.\MessageBreak + But for now, KOMA-Script will replace deprecated + `\string#1'\MessageBreak + by `\detokenize{#3}'% + }% + #3% + }% + }% +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\rm} +% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} +% \begin{macro}{\sf} +% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} +% \begin{macro}{\tt} +% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} +% \begin{macro}{\bf} +% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} +% \begin{macro}{\it} +% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} +% \begin{macro}{\sl} +% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} +% \begin{macro}{\sc} +% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} +% \begin{macro}{\sfb} +% \changes{v2.2c}{1995/05/25}{nicht mehr mathematisch} +% \changes{v2.3a}{1995/07/08}{keine Unterscheidung mehr für den +% Kompatibilitätsmodus} +% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} +% Um die Umstellung von \LaTeX\ auf \LaTeXe\ zu erleichtern, gibt es +% die alten Font-Auswahlbefehle \cs{rm}, \cs{sf}, \cs{tt}, \cs{bf}, +% \cs{it}, \cs{sl} und \cs{sc} auch in den Klassen. Es ist zu +% beachten, dass diese Befehle hier nach dem alten +% Fontauswahlverfahren arbeiten. Es werden also immer alle Parameter +% zugleich geändert. Somit ist zu empfehlen, dass statt dieser Befehle +% zukünftig in der Regel die neuen \cs{text\dots}-Befehle verwendet +% werden. +% +% Der aus der \textsf{Script 2.0}-Familie bekannte Befehl \cs{sfb} ist +% hier ebenfalls definiert. +% \begin{macrocode} +%<*!extend> +\scr@DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\scr@DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\scr@DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\scr@DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\scr@DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\scr@DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\scr@DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\scr@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}{hier statt im \LaTeX-Kern} +% Der Befehl ist in \LaTeX{} nicht mehr definiert. Deshalb wird er nun +% neu und gleich robust deklariert. Dafür fällt \cs{pcal} weg. +% \changes{v2.3g}{1996/01/14}{überflüssige Klammerpaare entfernt} +% \begin{macro}{\mit} +% \changes{v2.3}{1995/06/25}{hier statt im \LaTeX-Kern} +% Der Befehl ist in \LaTeX{} nicht mehr definiert. Deshalb wird er nun +% neu und gleich robust deklariert. Dafür fällt \cs{pmit} weg. +% \changes{v2.3g}{1996/01/14}{überflüssige Klammerpaare entfernt} +% +% Die beiden Befehle \cs{cal} und \cs{mit} war bis zur \LaTeX-Version +% vom 1.12.1994 patch level 3 noch im Kernal definiert. Jetzt sind die +% beiden den Klassen überlassen. Hier ist die Definition aus den +% Standard-classes übernommen. +% \begin{macrocode} +%<*!extend> +\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \iffalse +% +% \fi +% +% \subsection{Setzen der Schrift eines Elements} +% +% \iffalse +%<*scrkbase> +% \fi +% +% \begin{macro}{\setkomafont} +% \changes{v2.8o}{2001/09/14}{neu} +% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} +% Mit Hilfe dieses Makros kann die Schriftart von +% \KOMAScript-Elementen gesetzt werden. +% \begin{macrocode} +\newcommand*{\setkomafont}[2]{% + \@ifundefined{scr@fnt@#1}{% + \@ifundefined{scr@fnt@instead@#1}{% + \PackageError{scrkbase}{% + 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% + }% + }{% + \PackageInfo{scrkbase}{% + You've told me to redefine the font selection of the\MessageBreak + element `#1' that is an alias of element\MessageBreak + `\csname scr@fnt@instead@#1\endcsname'% + }% + \expandafter\setkomafont\expandafter{% + \csname scr@fnt@instead@#1\endcsname}{#2}% + }% + }{% + \expandafter\expandafter\expandafter\def\csname scr@fnt@#1\endcsname{#2}% + }% + \@ifundefined{scr@fnt@wrn@#1}{}{% + \PackageWarning{scrkbase}{% + \csname scr@fnt@wrn@#1\endcsname{#1}% + }% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\addtokomafont} +% \changes{v2.8p}{2001/09/22}{neu} +% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} +% Dieses Makro funktioniert fast wie obiges, allerdings fügt es der +% vorhandenen Definition etwas an. Dazu wird \cs{l@addto@macro} aus +% \textsf{scrkbase} verwendet. +% \begin{macrocode} +\newcommand*{\addtokomafont}[2]{% + \@ifundefined{scr@fnt@#1}{% + \@ifundefined{scr@fnt@instead@#1}{% + \PackageError{scrkbase}{% + 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% + }% + }{% + \PackageInfo{scrkbase}{% + You've told me to extend the font selection of the\MessageBreak + element `#1' that is an alias of element\MessageBreak + `\csname scr@fnt@instead@#1\endcsname'% + }% + \expandafter\addtokomafont\expandafter{% + \csname scr@fnt@instead@#1\endcsname}{#2}% + }% + }{% + \expandafter\expandafter\expandafter\l@addto@macro + \csname scr@fnt@#1\endcsname{#2}% + }% + \@ifundefined{scr@fnt@wrn@#1}{}{% + \PackageWarning{scrkbase}{% + \csname scr@fnt@wrn@#1\endcsname{#1}% + }% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\usekomafont} +% \changes{v2.8p}{2001/09/28}{neu} +% \changes{v2.96}{2006/08/18}{Benutzung eines Fontalias korrigiert} +% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} +% Mit Hilfe dieses Makros kann auf die Schriftart von +% \KOMAScript-Elementen umgeschaltet werden. +% \begin{macrocode} +\newcommand*{\usekomafont}[1]{% + \@ifundefined{scr@fnt@#1}{% + \@ifundefined{scr@fnt@instead@#1}{% + \PackageError{scrkbase}{% + 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% + }% + }{% + \PackageInfo{scrkbase}{% + You've told me to use the font selection of the + element\MessageBreak + `#1' that is an alias of element `\csname + scr@fnt@instead@#1\endcsname'\MessageBreak + }% + \expandafter\expandafter\expandafter\usekomafont + \expandafter\expandafter\expandafter{% + \csname scr@fnt@instead@#1\endcsname}% + }% + }{% + \@nameuse{scr@fnt@#1}% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\usesizeofkomafont} +% \changes{v3.12}{2013/03/30}{neu} +% \begin{macro}{\usefamilyofkomafont} +% \changes{v3.12}{2013/03/30}{neu} +% \begin{macro}{\useseriesofkomafont} +% \changes{v3.12}{2013/03/30}{neu} +% \begin{macro}{\useshapeofkomafont} +% \changes{v3.12}{2013/03/30}{neu} +% \begin{macro}{\useencodingofkomafont} +% \changes{v3.12}{2013/03/30}{neu} +% \begin{macro}{\usefontofkomafont} +% \changes{v3.12}{2013/03/30}{neu} +% Manchmal wollen die Leute tatsächlich gar nicht den kompletten Font eines +% Elements, sondern nur einen Teilaspekt davon. Aber Version~3.12 wird das mit +% Hilfe neuer Anweisungen unterstützt. +% \begin{macrocode} +\newcommand*{\usesizeofkomafont}[1]{% + \begingroup + \let\color\@gobble\let\normalcolor\relax + \@tempcnta=\currentgrouplevel + \usekomafont{#1}{% + \ifnum \currentgrouplevel>\numexpr\@tempcnta\relax + \edef\reserved@a{\noexpand\egroup\noexpand\endgroup + \noexpand\fontsize{\f@size}{\f@baselineskip}% + \noexpand\bgroup}% + \else + \edef\reserved@a{\noexpand\endgroup + \noexpand\fontsize{\f@size}{\f@baselineskip}}% + \fi + \reserved@a + }% + \selectfont +} +\newcommand*{\usefamilyofkomafont}{\use@ofkomafont{family}} +\newcommand*{\useseriesofkomafont}{\use@ofkomafont{series}} +\newcommand*{\useshaperofkomafont}{\use@ofkomafont{shape}} +\newcommand*{\useencodingofkomafont}{\use@ofkomafont{encoding}} +\newcommand*{\usefontofkomafont}[1]{% + \begingroup + \let\color\@gobble\let\normalcolor\relax + \@tempcnta=\currentgrouplevel + \usekomafont{#1}{% + \ifnum \currentgrouplevel>\numexpr\@tempcnta\relax + \edef\reserved@a{\noexpand\egroup\noexpand\endgroup + \noexpand\fontsize{\f@size}{\f@baselineskip}% + \noexpand\fontfamily{\f@family}% + \noexpand\fontseries{\f@series}% + \noexpand\fontshape{\f@shape}% + \noexpand\fontencoding{\f@encoding}% + \noexpand\bgroup}% + \else + \edef\reserved@a{\noexpand\endgroup + \noexpand\fontsize{\f@size}{\f@baselineskip}}% + \noexpand\fontfamily{\f@family}% + \noexpand\fontseries{\f@series}% + \noexpand\fontshape{\f@shape}% + \noexpand\fontencoding{\f@encoding}% + \fi + \reserved@a + }% + \selectfont +} +% \end{macrocode} +% \begin{macro}{\use@ofkomafont} +% \changes{v3.12}{2013/03/30}{neu (intern)} +% Kleines Hilfsmakro für all diese Anweisungen bis auf die erste und die letzte. +% \begin{macrocode} +\newcommand*{\use@ofkomafont}[2]{% + \begingroup + \let\color\@gobble\let\normalcolor\relax + \@tempcnta=\currentgrouplevel + \usekomafont{#2}{% + \ifnum \currentgrouplevel>\numexpr\@tempcnta\relax + \edef\reserved@a{\noexpand\egroup\noexpand\endgroup + \expandafter\noexpand\csname font#1\endcsname + {\csname f@#1\endcsname}% + \noexpand\bgroup}% + \else + \edef\reserved@a{\noexpand\endgroup + \expandafter\noexpand\csname font#1\endcsname + {\csname f@#1\endcsname}% + }% + \fi + \reserved@a + }% + \selectfont +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Um dann ein Element zu definieren, definiert man zunächst ein +% Makro, das die Schriftart enthält. Dann definiert man +% \cs{scr@fnt@\emph{Elementname}}. Wobei der Inhalt dieses Makros das +% Makro ist, das die Schriftart speichert. Damit ist das Element +% definiert. Soll ein Element durch ein anderes Element gesteuert +% werden, so definiert man stattdessen +% \cs{scr@fnt@instead@\emph{Elementname}}, wobei der Inhalt des Makros +% dann der Name jenes anderen Elements ist. Soll beim Ändern der +% Schrift eines Elements eine zusätzliche Warnung ausgegeben werden, +% so kann der Text dieser Warnung in +% \cs{scr@fnt@wrn@\emph{Elementname}} abgelegt werden. Die Warnung wird dann +% als Befehl mit einem Argument definiert. Also alles +% eigentlich ganz einfach. Damit es noch einfacher wird, ein paar +% Hilfsmakros: +% +% \begin{macro}{\newkomafont} +% \changes{v2.95}{2004/07/21}{neu} +% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} +% \changes{v3.11c}{2013/02/18}{die Warnung hat ein Argument} +% Mit \cs{newkomafont} wird ein neues Element definiert. Das erste optionale +% Argument ist dabei die optionale Warnung. Ist dieses nicht gesetzt oder +% \cs{relax}, so wird keine Warnung definiert. Das erste obligatorische +% Argument ist der Name des Elements. Als letztes folgt die Voreinstellung für +% die Schrift dieses Elements. Als Fontmakro wird übrigens +% \cs{@\emph{Elementname}font} definiert. +% \begin{macrocode} +\newcommand*{\newkomafont}[3][\relax]{% + \expandafter\newcommand\expandafter*\csname @#2font\endcsname{#3}% + \expandafter\expandafter\expandafter\newcommand + \expandafter\expandafter\expandafter*% + \expandafter\csname scr@fnt@#2\expandafter\endcsname\expandafter{% + \csname @#2font\endcsname% + }% + \ifx\relax#1\relax\else + \expandafter\newcommand\expandafter*\csname scr@fnt@wrn@#2\endcsname[1]{#1}% + \fi +} +% \end{macrocode} +% \begin{macro}{\aliaskomafont} +% \changes{v2.95}{2004/07/21}{neu} +% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} +% Mit \cs{aliaskomafont} wird hingegen einfach ein Alias definiert. Dieser +% Befehlt kennt zwei Argumente: der Name des Elements und der Names des +% Elements, das stattdessen verwendet werden soll. +% \begin{macrocode} +\newcommand*{\aliaskomafont}[2]{% + \expandafter\newcommand\expandafter*\csname scr@fnt@instead@#1\endcsname{% + #2% + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \iffalse +% +% \fi +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-fonts.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-footnotes.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-footnotes.dtx new file mode 100644 index 00000000000..f1745e3e565 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-footnotes.dtx @@ -0,0 +1,611 @@ +% \CheckSum{401} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-footnotes.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-footnotes.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-footnotes.dtx 1380 2013-10-01 15:31:55Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-footnotes.dtx}[2013/03/05 v3.12 KOMA-Script + (footnotes)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-footnotes.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei + \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/07/01}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Fußnoten} +% +% Die Fußnotengestaltung in \KOMAScript{} basiert auf einem Hinweis +% aus dem dokumentierten \LaTeX-Kern. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Option} +% +% \begin{option}{footnotes} +% \changes{v2.98c}{2008/02/01}{Neue Option für Mehrfachfußnoten}% +% \changes{v3.10}{2011/09/13}{\cs{let} durch \cs{def} ersetzt, damit die +% Option auch als Klassenoption funktioniert}% +% \changes{v3.12}{2013/03/05}{Status-Signalisierung mit +% \cs{FamilyKeyStateProcessed}}% +% Mehrfachfußnoten gibt es dann, wenn zu einer Textstelle mehrere Fußnoten +% hintereinander gesetzt werden. Normalerweise werden die einfach ohne +% Abstand hintereinander geklatscht. Man kann dann aber die beiden Fußnoten +% 1 und 2 beispielsweise nicht von der Fußnote 12 unterscheiden. Besser ist +% es, wenn mehrere Fußnoten automatisch durch ein Trennzeichen getrennt +% werden. Die Funktion ist \textsf{footmisc} entnommen und sollte inklusive +% Ein- und Ausschalten auch zusammen mit diesem Paket funktionieren. +% \begin{macrocode} +\KOMA@key{footnotes}{% + \ifx\@footnotemark\scr@saved@footnotemark + \else + \ifx\@footnotemark\scr@footnotemark + \else +% \ClassWarning{\KOMAClassName}{% +% \PackageWarning{scrextend}{% + Change of `\string\@footnotemark' detected!\MessageBreak + Use of `footnotes=#1' may break\MessageBreak + another package!\MessageBreak + Maybe you should remove the usage of\MessageBreak + option `footnotes=#1'}% + \fi + \fi + \ifstr{#1}{multiple}{% + \let\@footnotemark\scr@footnotemark + \def\FN@mf@prepare{\scr@mf@prepare}% + \def\scr@footmisc@options{multiple}% + \FamilyKeyStateProcessed + }{% + \ifstr{#1}{nomultiple}{% + \let\@footnotemark\scr@saved@footnotemark + \let\FN@mf@prepare\relax + \let\scr@footmisc@options\@empty + \FamilyKeyStateProcessed + }{% + \KOMA@unknown@keyval{footnotes}{#1}{`multiple' and `nomultiple'}% + }% + }% +} +% \end{macrocode} +% \begin{macro}{\scr@footmisc@options} +% \changes{v2.98c}{2008/02/14}{Neuer (intern)} +% Für etwas mehr Kompatibilität mit \textsf{footmisc}, wird die aktuelle +% Einstellung der \texttt{multifootnotes} an das Paket weitergereicht. +% \begin{macrocode} +\newcommand*{\scr@footmisc@options}{} +\PassOptionsToPackage{\noexpand\scr@footmisc@options}{footmisc} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\scr@saved@footnotemark} +% \changes{v2.98c}{2008/02/01}{Neu (intern)} +% \begin{macro}{\scr@footnotemark} +% \changes{v2.98c}{2008/02/01}{Neu (intern)} +% \begin{macrocode} +\newcommand*{\scr@saved@footnotemark}{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi + \@makefnmark + \ifhmode\spacefactor\@x@sf\fi + \relax} +\expandafter\CheckCommand\expandafter*\expandafter\@footnotemark +\expandafter{\scr@saved@footnotemark} +\newcommand*{\scr@footnotemark}{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\FN@mf@check\nobreak\fi + \@makefnmark + \csname FN@mf@prepare\endcsname + \ifhmode\spacefactor\@x@sf\fi + \relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{option} +% +% +% \iffalse +% +%<*body> +% \fi +% +% \subsection{Definitionen für Fußnoten} +% +% \begin{macro}{\footnoterule} +% \changes{v2.3a}{1995/07/08}{\cs{@width} verwendet} +% \changes{v2.8q}{2002/02/06}{\cs{raggedbottom}-Verbesserung +% eingefügt} +% \changes{v2.95}{2002/01/07}{\texttt{.05fil} statt +% \texttt{.005fil}} +% \changes{v3.06}{2010/04/03}{die neuen Längenmakros werden genutzt} +% \changes{v3.07}{2010/09/14}{neues Font-Element \texttt{footnoterule} wird +% verwendet} +% Im Fall, dass \cs{raggedbottom} verwendet wird, die Fußnotenlinie +% nach unten gedrückt. 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ürlich auch +% einmal schief gehen, ist dann aber auch nicht ganz so tragisch. +% \begin{macrocode} +%<*class> +\renewcommand*\footnoterule{% + \normalsize\ftn@rule@test@values + \kern-\dimexpr 2.6\p@+\ftn@rule@height\relax + \ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi + {\usekomafont{footnoterule}{% + \hrule \@height\ftn@rule@height \@width\ftn@rule@width}}% + \kern 2.6\p@} +% +% \end{macrocode} +% \begin{macro}{\ftn@rule@test@values} +% \changes{v3.06}{2010/04/03}{neu (intern)} +% Test, ob die Einstellungen für die Längen der Fußnotenlinie halbwegs +% vernünftig sind. +% \begin{macrocode} +\newcommand*{\ftn@rule@test@values}{% + \ifdim\ftn@rule@height <\z@ + \ClassWarning{\KOMAClassName}{% + You might get into trouble, because the\MessageBreak + height of the footnote rule has a value\MessageBreak + less than 0% + }% + \else + \ifdim\ftn@rule@height >\dimexpr\skip\footins -2.6\p@\relax + \ClassWarning{\KOMAClassName}{% + You might get into trouble, because the\MessageBreak + height of the footnote rule has a value\MessageBreak + greater than \the\dimexpr\skip\footins -2.6\p@\relax + }% + \fi + \fi + \ifdim\ftn@rule@width <\z@ + \ClassWarning{\KOMAClassName}{% + You might get into trouble, because the width\MessageBreak + or length of the footnote rule has a value\MessageBreak + less than 0pt% + }% + \else + \ifdim\ftn@rule@width >\columnwidth + \ClassWarning{\KOMAClassName}{% + You might get into trouble, because the width\MessageBreak + or length of the footnote rule has a value\MessageBreak + greater than \string\columnwidth + }% + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{KOMAfont}{footnoterule} +% \changes{v3.07}{2010/09/14}{\texttt{footnoterule} ist ein eneues +% Fontelement} +% Damit man die Farbe der Fußnotentrennlinie ändern kann, gibt es nun ein +% eigenes Element dafür. Die Voreinstellung ist jedoch leer. +% \begin{macrocode} +\newkomafont{footnoterule}{} +% \end{macrocode} +% \end{KOMAfont} +% \begin{macro}{\ftn@rule@width} +% \changes{v3.06}{2010/04/03}{neu (intern)} +% Die Länge der Fußnotentrennlinie. +% \begin{macrocode} +\newcommand*{\ftn@rule@width}{.4\columnwidth} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ftn@rule@height} +% \changes{v3.06}{2010/04/03}{neu (intern)} +% Die Höhe der Fußnotentrennlinie (die Tiefe ist immer 0). +% \begin{macrocode} +\newcommand*{\ftn@rule@height}{.4\p@} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\setfootnoterule} +% \changes{v3.06}{2010/04/03}{neue Anweisung} +% Das erste, optionale Argument ist die Höhe der Linie, das zweite nicht +% optionale die Länge. +% \begin{macrocode} +\newcommand*{\setfootnoterule}[2][]{% + \ifstr{#1}{}{}{% + \renewcommand*{\ftn@rule@height}{#1}% + }% + \ifstr{#2}{}{}{% + \renewcommand*{\ftn@rule@width}{#2}% + }% + \ftn@rule@test@values +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{Counter}{footnote} +% Der Fußnotenzähler wird mit \cs{chapter} zurückgesetzt, die Fußnoten +% werden also kapitelweise nummeriert. +% \begin{macrocode} +%\@addtoreset{footnote}{chapter} +% \end{macrocode} +% \end{Counter} +% +% \begin{macro}{\deffootnote} +% \changes{v2.4l}{1997/02/06}{neu} +% \changes{v2.95}{2002/07/09}{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 zur Definition der Gestalt von Fußnoten erlaubt einen +% optionalen und erwartet drei weitere Parameter. Der erste, optionale +% gibt den Einzug der ersten Zeile des Fußnotentextes vom linken Rand +% an. Die Fußnotenmarkierungen werden rechtsbündig in diesen Einzug +% gesetzt. Der zweite, also erste nicht optionale Parameter gibt den +% Einzug jeder weiteren Zeile des Fußnotentextes vom linken Rand +% an. Fehlt der optionale Parameter so ist er gleich diesem. Der +% dritte, also zweite nicht optionale Parameter gibt den zusätzlichen +% Einzug jedes weiteren Absatzes einer Fußnote an. Der letzte +% Parameter schließlich bestimmt die Ausgabe der Fußnotenmarkierung in +% der Fußnote. Diese wird zusätzlich in eine \cs{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}{neu} +% Makro zum Setzen der Fußnotenmarkierung in der Fußnote: +% \begin{macrocode} + \def\@@makefnmark{\hbox{\ftnm@font{#4}}}% +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ftn@font} +% \changes{v2.8q}{2001/11/16}{neu (intern)} +% \begin{macro}{\scr@fnt@footnote} +% \changes{v2.8q}{2001/11/16}{neues Element \texttt{footnote}} +% \begin{macro}{\ftnm@font} +% \changes{v2.8q}{2001/11/16}{neu (intern)} +% \begin{macro}{\scr@fnt@footnotenumber} +% \changes{v2.8q}{2001/11/16}{neues Element +% \texttt{footnotenumber}} +% \begin{macro}{\scr@fnt@footnotenlabel} +% \changes{v2.8q}{2001/11/16}{neues Element \texttt{footnotelabel}} +% \begin{macro}{\scr@fnt@instead@footnotetext} +% \changes{v2.8q}{2001/11/16}{neuer Ersatz für Element +% \texttt{footnotetext}} +% Das erste Element gibt die Schrift an, in der die Fußnote gesetzt +% wird. Davon abweichend kann mit dem zweiten Element die Schriftart +% für die Fußnotennummer 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} +% +% \begin{macro}{\deffootnotemark} +% \changes{v2.4l}{1997/02/06}{neu} +% Makro zur Definition der Fußnotenmarkierung 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 (intern)} +% \begin{macro}{\scr@fnt@footnotereference} +% \changes{v2.8q}{2001/11/16}{neues Element +% \texttt{footnotereference}} +% \begin{macro}{\scr@fnt@footnoteref} +% \changes{v2.8q}{2001/11/16}{neues Element \texttt{footnoteref}} +% Dies ist die Schriftart der Fußnotenreferenz 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}{\FN@mf@check} +% \changes{v2.98c}{2008/02/01}{Neu (intern)} +% Dafür sorgen, dass hier ggf. der Trenner eingefügt wird. +% \begin{macrocode} +%\providecommand*{\FN@mf@check}{% +%\newcommand*{\FN@mf@check}{% + \ifdim\lastkern=\multiplefootnotemarker\relax + \edef\@x@sf{\the\spacefactor}% + \unkern\multiplefootnoteseparator + \spacefactor\@x@sf\relax + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scr@mf@prepare} +% \changes{v2.98c}{2008/02/01}{Neu (intern)} +% Damit |\FN@mf@check| informiert ist, dass es etwas zu tun hat. +% \begin{macrocode} +\newcommand*{\scr@mf@prepare}{% + \kern-\multiplefootnotemarker + \kern\multiplefootnotemarker\relax +} +% \end{macro} +% \begin{macro}{\F@mf@prepare} +% \changes{v2.98c}{2008/02/14}{Neu (intern)} +% Aus Gründen der Kompatibilität mit \textsf{footmisc} wird das dann +% vorsoglich auch noch definiert (und zwar als \cs{relax}, wenn es bisher noch +% nicht definiert ist). +\@ifundefined{FN@mf@prepare}{}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@footnotetext} +% \changes{v3.01a}{2008/11/22}{long} +% \begin{macro}{\scr@saved@footnotetext} +% \changes{v2.98c}{2008/02/01}{Neu (intern)} +% \changes{v3.01a}{2008/11/22}{long} +% Auch hier muss dafür gesorgt werden, dass die Markierung erfolgt. +% \begin{macrocode} +\newcommand{\scr@saved@footnotetext}{} +\let\scr@saved@footnotetext\@footnotetext +\renewcommand{\@footnotetext}[1]{% + \scr@saved@footnotetext{#1}% + \csname FN@mf@prepare\endcsname +} +% \end{macrocode} +% +% Es muss auch dafür gesorgt werden, dass \textsf{footmisc} nicht unnötig +% mit Warnung um sich wirft. +% \begin{macrocode} +\BeforePackage{footmisc}{% + \ifx\@footnotemark\scr@footnotemark + \let\@footnotemark\scr@saved@footnotemark + \fi + \let\@footnotetext\scr@saved@footnotetext +} +% \end{macrocode} +% +% \changes{v3.10}{2011/09/12}{Workaround für die zerstörerische Wirkung von +% \textsf{setspace}}% +% Außerdem zerstört das Paket \textsf{setspace} die Erweiterung von +% \cs{@footnotetext}. Deshalb schalten wir sie vor dem Paket lieber gleich ab +% und reaktivieren sie anschließend wieder: +% \begin{macrocode} +\BeforePackage{setspace}{% + \let\@footnotetext\scr@saved@footnotetext +} +\AfterPackage{setspace}{% + \let\scr@saved@footnotetext\@footnotetext + \renewcommand{\@footnotetext}[1]{% + \scr@saved@footnotetext{#1}% + \csname FN@mf@prepare\endcsname + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\multiplefootnoteseparator} +% \changes{v2.98c}{2008/02/01}{Neu} +% Das ist der formatierte Separator! +% \begin{macrocode} +\newcommand*{\multiplefootnoteseparator}{% + \begingroup\let\thefootnotemark\multfootsep\@makefnmark\endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\multfootsep} +% \changes{v2.98c}{2008/02/01}{Neu} +% Und hier \textsf{footmisc}-kompatibel unformatiert +% \begin{macrocode} +%\newcommand*{\multfootsep}{,} +%\providecommand*{\multfootsep}{,} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\multiplefootnotemarker} +% \changes{v2.98c}{2008/02/01}{Neu} +% Das Markierungskerning wieder \textsf{footmisc}-kompatibel. +% \begin{macrocode} +\newcommand*{\multiplefootnotemarker}{3sp} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\thefootnotemark} +% \changes{v2.4l}{1997/02/06}{neu} +% Makro, damit \cs{@thefnmark} auf Anwenderebene verfügbar wird: +% \begin{macrocode} +%\newcommand*{\thefootnotemark}{\@thefnmark} +%\providecommand*{\thefootnotemark}{\@thefnmark} +% \end{macrocode} +% \end{macro} +% +% \changes{v2.4l}{1997/02/06}{Verwendung der neuen Makros zur +% Fußnotengestaltgebung} +% \begin{macro}{\@makefnmark} +% \changes{v3.10}{2011/09/27}{\textsf{scrextend} redefines \cs{@makefnmark} +% to use \cs{thefootnotemark}} +% \begin{macrocode} +%<*class> +\deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}} +% +%<*package> +\def\reserved@a{\hbox{\@textsuperscript{\normalfont\@thefnmark}}} +\ifx\reserved@a\@makefnmark +% +\deffootnotemark{\textsuperscript{\thefootnotemark}} +%<*package> +\else + \IfFileExists{etoolbox.sty}{% + \PackageInfo{scrextend}{% + unexpected definition of `\string\@makefnmark'.\MessageBreak + Trying to patch it% + }% + \RequirePackage{etoolbox}% + \patchcmd{\@makefnmark}{\@thefnmark}{\thefootnotemark}{% + \PackageInfo{scrextend}{patch seems to be successfull}% + }{% + \PackageWarning{scrextend}{% + patching `\string\@makefnmark' failed.\MessageBreak + Using hard coded redefinition% + }% + \deffootnotemark{\textsuperscript{\thefootnotemark}}% + }% + }{% + \PackageWarning{scrextend}{% + unexpected definition of `\string\@makefnmark'.\MessageBreak + Using hard coded redefintion% + }% + \deffootnotemark{\textsuperscript{\thefootnotemark}}% + }% +\fi +% +% \end{macrocode} +% \end{macro} +% +% \subsection{Fußnotenreferenz} +% +% \begin{macro}{\footref} +% \changes{v2.98c}{2008/02/01}{Neue Anweisung} +% Damit man nicht nur zu diesem Zweck das Paket \textsf{footmisc} laden muss, +% kann man jetzt auch mit \KOMAScript{} alleine Fußnoten setzen, die +% Referenzen auf andere Fußnoten sind. Der Code stammt einerseits aus footmisc +% andererseits auf der Usenet-Gruppe comp.text.tex. Wer den zuerst hatte, ist +% für mich nicht mehr reproduzierbar. Jedenfalls steht er in footmisc unter +% LPPL und \KOMAScript{} steht ebenfalls unter LPPL. Das sollte also im +% Zweifelsfall nicht das Problem sein. +% \begin{macrocode} +%\newcommand*{\footref}[1]{% +%\providecommand*{\footref}[1]{% + \begingroup + \unrestored@protected@xdef\@thefnmark{\ref{#1}}% + \endgroup + \@footnotemark +} +% \end{macrocode} +% \end{macro} +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-footnotes.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-index.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-index.dtx new file mode 100644 index 00000000000..2a6ee50c551 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-index.dtx @@ -0,0 +1,342 @@ +% \CheckSum{114} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-index.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-index.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-index.dtx 1380 2013-10-01 15:31:55Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-index.dtx}[2013/09/24 v3.12 KOMA-Script + (index)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-index.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/07/01}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Index} +% +% Der Index unterscheidet sich bei \KOMAScript{} scheinbar nicht +% wesentlich von dem, was die Standardklassen zu bieten haben. In +% Wirklichkeit sind die Unterschiede jedoch erheblich. +% +% Briefe haben keinen Index. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*!letter> +% \fi +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Anweisungen und Einstellungen für die Optionen} +% +% Einige Anweisungen und Einstellungen werden bereits benötigt, bevor die +% Optionen abgearbeitet werden. +% +% \begin{macro}{\idx@@heading} +% \changes{v2.98c}{2008/03/04}{neu (intern)} +% Diese Anweisung wird verwendet, um nur die Überschrift zu setzen (nichts +% weiter!). Sie hat genau ein Argument, nämlich den Text der Überschrift und +% wird innerhalb von |\idx@heading| verwendet. +% \begin{macrocode} +\newcommand*{\idx@@heading}{% +%
\section* +% \chapter* +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Optionen für den Index} +% +% \begin{option}{index} +% \changes{v2.98c}{2008/03/04}{Neue Option} +% \begin{macro}{\idx@@heading} +% Die Option sorgt dafür, dass der Index auch im Inhaltsverzeichnis +% erscheint. Dazu wird das interne Makro \cs{idx@@heading} umdefiniert, über +% das die Überschrift gesetzt und der Kolumnentitel angepasst wird. +% \changes{v2.4c}{1996/04/04}{Kolumnentitel werden nun korrekt +% behandelt} +% \changes{v2.4g}{1996/11/04}{Index auch bei \textsf{scrartcl} +% wieder zweispaltig} +% \changes{v2.6c}{2000/06/10}{im Index kann nach der Überschrift +% eine Präambel gesetzt werden} +% \changes{v2.7a}{2001/01/04}{für \textsf{scrbook} und +% \textsf{scrreprt} die Link-Erzeugung mit \texttt{hyperref} +% verbessert} +% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die +% \texttt{theindex}-Umgebung verschoben} +% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch +% \cs{if@openright} ersetzt} +% \changes{v2.98c}{2008/03/04}{statt \cs{idx@heading} wird nun +% \cs{idx@@heading} umdefiniert} +% An dieser Stelle muss dafür gesorgt werden, dass im Falle von +% \textsf{scrbook} und \textsf{scrreprt} das Makro \cs{@schapter} +% verwendet wird. Damit dies hier möglich ist mussten tiefreifendere +% Änderungen am \LaTeX-Kernel bzw. am Gliederungsbefehl \cs{chapter} +% vorgenommen werden. +% \begin{macrocode} +\KOMA@key{index}{% + \KOMA@set@ncmdkey{index}{@tempa}{% + {notoc}{0},{nottotoc}{0},{default}{0},{plainheading}{0},% + {totoc}{1},{toc}{1},{notnumbered}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase \@tempa\relax + \renewcommand*{\idx@@heading}{% +%
\section* +% \chapter* + }% + \or + \renewcommand*{\idx@@heading}{% +%
\addsec +% \addchap + }% + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{idxtotoc} +% \changes{v2.3h}{1995/01/21}{neue Option} +% \changes{v2.98c}{2008/03/04}{obsolete} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{idxtotoc}{index=totoc} +% \end{macrocode} +% \end{option} +% +% +% \iffalse +% +%<*body> +% \fi +% +% \subsection{Definitionen für den Index} +% +% \begin{macro}{\index@preamble} +% \changes{v2.6c}{2000/06/10}{neu (intern)} +% \begin{macro}{\setindexpreamble} +% \changes{v2.6c}{2000/06/10}{neu} +% \changes{v2.6d}{2000/07/20}{Befehl funktioniert nachdem \cs{let} +% durch \cs{newcommand*} ersetzt wurde} +% \changes{v2.95}{2002/07/01}{\cs{let} und \cs{def}} +% Analog zu \cs{bibpreamble} kann \cs{index@preamble} vom Benutzer mit +% \cs{setindexpreamble} auf einen Text gesetzt werden, der nach der +% Indexüberschrift eingefügt wird. Hier wird ein echtes internes Makro +% verwendet, da nicht auf Kompatibilität geachtet werden muss. +% \begin{macrocode} +\newcommand*{\index@preamble}{} +\let\index@preamble=\relax +\newcommand{\setindexpreamble}[1]{\def\index@preamble{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\idx@heading} +% \changes{v2.3h}{1995/01/21}{neu (intern)} +% \changes{v2.4c}{1995/04/04}{Kolumnentitel werden nun korrekt behandelt} +% \changes{v2.4g}{1996/11/04}{Index auch bei \texttt{scrartcl} wieder +% zweispaltig}% +% \changes{v2.6c}{2000/06/10}{Verwendung von \cs{index@preamble} eingefügt} +% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die +% \texttt{theindex}-Umgebung verschoben}% +% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch \cs{if@openright} +% ersetzt}% +% \changes{v2.98c}{2008/03/04}{Verwendung von \cs{idx@@heading}}% +% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}% +% \changes{v3.10a}{2012/03/08}{Falsche Klammerung der letzten Änderung +% behoben}% +% \changes{v3.12}{2013/09/24}{Index wird nie in andere Verzeichnisse +% eingetragen (außer Inhaltsverzeichnis)} +% Befehl zum Setzen der Überschrift des Indexes. 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}\vspace{-\baselineskip} +% Dagegen ist grundsätzlich nichts zu sagen. Allerdings gibt es seit +% Version 2.7b die neue Methode der Kapitel-Präambel, die extra +% eingeführt wurde, um die \textsf{hyperref}-Links -- insbesondere +% den des Index -- zumindest bei Verwendung von \texttt{hpdftex.def} +% zu verbessern. Deshalb wurde die Implementierung entsprechend +% abgeändert. Außerdem wurde das Setzen der Präambel aus +% Konsistenzgründen in Version 2.7j übereinstimmten mit der +% \texttt{thebibliography}-Umgebung in die \texttt{theindex}-Umgebung +% verschoben. +% \begin{macrocode} +\newcommand*{\idx@heading}{% +% \if@openright\cleardoublepage\else\clearpage\fi% + \twocolumn[% +% \@chaptertolistsfalse + \idx@@heading{\indexname}]% + \@mkboth{\MakeMarkcase{\indexname}}{\MakeMarkcase{\indexname}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{theindex} +% \changes{v2.8d}{2001/07/05}{\cs{indexpagestyle} statt +% \texttt{plain}} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{idx@heading}} +% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die +% \texttt{theindex}-Umgebung verschoben} +% Der Index ist wie üblich 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 +} +% \end{macrocode} +% \begin{macro}{\@idxitem} +% Hier haben wird den Anfang eines Eintrags in den Index +% \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} +% und ebenso Unter- und Unteruntereinträge sowie ein vertikaler +% Abstand. +% \begin{macrocode} +\newcommand*\@idxitem{\par\hangindent 40\p@} +% \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{macro} +% \end{environment} +% +% +% \subsection{Standardbezeichner} +% +% \begin{macro}{\indexname} +% Names des Index: +% \begin{macrocode} +\newcommand*\indexname{Index} +% \end{macrocode} +% \end{macro} +% +% +% \iffalse +% +% \fi +% +% \iffalse +% +% \fi +% +% +% \Finale +% +\endinput +% +% end of file `scrkernel-index.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-language.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-language.dtx new file mode 100644 index 00000000000..80b2ccd6f25 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-language.dtx @@ -0,0 +1,1481 @@ +% \CheckSum{1830} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-language.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-language.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-language.dtx 1503 2013-11-06 11:44:59Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-language.dtx}[2013/11/06 v3.12 KOMA-Script + (language)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-language.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei + \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/07/01}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Sprachabhängigkeiten} +% +% Aus verschiedenen Gründen ist es nicht so einfach, neue, +% sprachabhängige Begriffe zu definieren oder vorhandene +% umzudefinieren. Mit \KOMAScript{} geht das etwas einfacher. +% +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Option} +% Für Briefe gibt es die Möglichkeit, zwischen symbolischem und numerischem +% Datum umzuschalten. +% +% \iffalse +%<*class&letter> +% \fi +% +% \begin{option}{numericaldate} +% \changes{v2.8q}{2001/10/07}{Neue Option (an Stelle von +% \texttt{scrdate} und \texttt{orgdate})} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% Es kann zwischen dem Originaldatum, das beispielsweise von +% \texttt{german.sty} definiert wird, und dem \texttt{scrlttr2}-Datum +% gewählt werden. Natürlich 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 + \KOMA@set@ifkey{numericaldate}{@orgdate}{#1}% + \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi +} +% \end{macrocode} +% \begin{option}{scrdate} +% \changes{v3.01a}{2008/11/21}{deprecated} +% \begin{option}{orgdate} +% \changes{v3.01a}{2008/11/21}{deprecated} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{scrdate}{numericaldate=true} +\KOMA@DeclareDeprecatedOption{orgdate}{numericaldate=false} +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% +% \iffalse +% +% \fi +% +% +% \iffalse +% +%<*body> +% \fi +% +% \subsection{Definitionen für sprachabhängige Bezeichner} +% +% Dieser Teil ist so grundlegend, dass er ab Version~3.00 in das Paket +% \textsf{scrbase} ausgelagert wird. +% +% \iffalse +%<*package&base> +% \fi +% +% \begin{macro}{\defcaptionname} +% \changes{3.12}{2013/07/29}{neu} +% Für eine Reihe von Sprachen (durch Komma separierte Liste in \#1) +% wird ein Makro (\#2) auf einen bestimmten Inhalt (\#3) definiert. Die +% Sternversion verwendet dabei zwingend \cs{extras\meta{Sprache}}, während +% die Normalversion \cs{captions\meta{Sprache}} verwendet, außer wenn der +% Begriff bereits in \cs{extras\meta{Sprache}} definiert ist. Falls der +% Befehl in der Dokumentpräambel aufgerufen wird, wird er verzögert. +% \begin{macrocode} +\newcommand*{\defcaptionname}{% + \@ifstar\scr@def@scaptionname\scr@def@captionname +} +% \end{macrocode} +% \begin{macro}{\scr@def@scaptionname} +% \changes{v3.12}{2013/07/30}{neu (intern)} +% Die Sternvariante von \cs{defcaptionname}. Die Argumente sind dieselben. +% \begin{macrocode} +\newcommand*{\scr@def@scaptionname}[3]{% +% \end{macrocode} +% Als erstes findet die Verzögerung bis \cs{begin{document}} statt. +% \begin{macrocode} + \if@atdocument \expandafter\@firstofone + \else \expandafter\AtBeginDocument + \fi + {% +% \end{macrocode} +% Dann arbeiten wir in einer lokalen Schleife alle Sprachen aus Argument \#1 +% ab und \dots +% \begin{macrocode} + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% + \scr@reserved@a \do{% +% \end{macrocode} +% \dots\ fügen dabei \cs{extras\meta{Sprache}} die Definition \#3 für \#2 +% hinzu. +% \begin{macrocode} + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at \string\defcaptionname}% + \else + \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname extras\scr@reserved@a\endcsname{% + \def#2{#3}% + }% +% \end{macrocode} +% Wenn etwas hinzugefügt wurde, muss außerdem \cs{reserved@b} so umdefiniert +% werden, dass dies ggf. auch unmittelbar Geltung bekommt. +% \begin{macrocode} + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \begin{macro}{\scr@def@activateactivelanguageaftergroup} +% \changes{v3.12}{2013/07/30}{neu (intern)} +% Wenn die Sprache in \cs{reserved@a} die aktuelle Sprache \cs{languagename} +% ist oder die Sprachnummer zur Sprache \cs{reserved@a} die aktuelle +% Sprachnummer \cs{language} ist, dann wird \cs{reserved@b} so umdefiniert, +% dass es die aktuelle Gruppe beendet und \#1 als \#2 definiert. +% \begin{macrocode} +\newcommand*{\scr@def@activateactivelanguageaftergroup}[2]{% + \@onelevel@sanitize\languagename + \@tempswafalse + \ifx\languagename\scr@reserved@a + \@tempswatrue + \else + \ifcsname l@\scr@reserved@a\endcsname + \expandafter\ifnum\csname l@\scr@reserved@a\endcsname=\language + \@tempswatrue + \fi + \fi + \fi + \if@tempswa + \def\reserved@b{\endgroup + \PackageInfo{scrbase}{activating \languagename\space \string#1}% + \def#1{#2}% + }% + \fi +} +% \end{macrocode} +% \end{macro}^^A \scr@def@activateactivelanguageaftergroup +% \end{macro}^^A \scr@def@scaptionname +% \begin{macro}{\scr@trim@spaces} +% \changes{v3.12}{2013/11/06}{neu (intern)} +% Diese Hilfsanweisung entfernt führende und abschließende +% Leerzeichen. Argument ist die Anweisung, deren Inhalt von den Leerzeichen +% befreit werden soll. Gedacht ist das ganze für die Listenverarbeitung. +% \begin{macrocode} +\newcommand\scr@trim@spaces[1]{% + \expandafter\KV@@sp@def\expandafter#1\expandafter{#1}% +} +% \end{macrocode} +% \end{macro}^^A \scr@trim@space +% \begin{macro}{\scr@def@captionname} +% \changes{v3.12}{2013/07/30}{neu (intern)} +% Die Normalvariante von \cs{defcaptionname}, mit denselben Argumenten. +% \begin{macrocode} +\newcommand*{\scr@def@captionname}[3]{% +% \end{macrocode} +% Als erstes findet die Verzögerung bis \cs{begin{document}} statt. +% \begin{macrocode} + \if@atdocument \expandafter\@firstofone + \else \expandafter\AtBeginDocument + \fi + {% +% \end{macrocode} +% Dann arbeiten wir in einer lokalen Schleife alle Sprachen aus Argument \#1 +% ab und \dots +% \begin{macrocode} + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% + \scr@reserved@a \do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at \string\defcaptionname}% + \else +% \end{macrocode} +% \dots\ testen dabei, ob \#2 bereits in \cs{extras\meta{Sprache}} definiert +% ist. +% \begin{macrocode} + \@tempswafalse + \begingroup + \@tempswafalse + \ifcsname extras\scr@reserved@a\endcsname + \let#2\relax + \csname extras\scr@reserved@a\endcsname + \ifx #2\relax \else \aftergroup\@tempswatrue \fi + \fi + \endgroup +% \end{macrocode} +% Wenn \#2 bereits in \cs{extras\meta{Sprache}} definiert ist, \dots +% \begin{macrocode} + \if@tempswa +% \end{macrocode} +% \dots\ dann definieren wir es genau hier neu, +% \begin{macrocode} + \expandafter\g@addto@macro\csname extras\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \else +% \end{macrocode} +% \dots\ anderenfalls definieren wir es in \cs{captions\meta{Sprache}} neu. +% \begin{macrocode} + \expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname captions\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \fi +% \end{macrocode} +% Wenn etwas hinzugefügt wurde, muss außerdem \cs{reserved@b} so umdefiniert +% werden, dass dies ggf. auch unmittelbar Geltung bekommt. +% \begin{macrocode} + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@def@captionname +% \end{macro}^^A \defcaptionname +% +% \begin{macro}{\providecaptionname} +% \changes{v2.8q}{2001/11/08}{neu}^^A +% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte +% ist, wird die Anderung sofort aktiviert.}^^A +% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert +% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.}^^A +% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben}^^A +% \changes{v3.01b}{2008/12/07}{missing make undefined}^^A +% \changes{v3.02c}{2009/02/17}{undefined test improved}^^A +% \changes{v3.12}{2013/07/30}{Neuimplementierung nach dem Muster von +% \cs{defcaptionname}}^^A +% Wie \cs{defcaptionname}, allerdings wird nur definiert, wenn die Sprache \#1 +% bereits existiert, aber der Begriff \#2 nicht existiert. Unter dieser +% Einschränkung verwendet die Sternvariante \cs{extras\meta{Sprache}}, während +% die Normalvariante \cs{captions\meta{Sprache}} verwendet. +% \begin{macrocode} +\newcommand*{\providecaptionname}{% + \@ifstar\scr@provide@scaptionname\scr@provide@captionname +} +% \end{macrocode} +% \begin{macro}{\scr@provide@scaptionname} +% \changes{v3.12}{2013/07/30}{neu (intern)} +% \begin{macrocode} +\newcommand*{\scr@provide@scaptionname}[3]{% + \if@atdocument \expandafter\@firstofone + \else \expandafter\AtBeginDocument + \fi + {% + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% + \scr@reserved@a \do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at + \string\providecaptionname}% + \else +% \end{macrocode} +% Im Unterschied zu \cs{defcaptionname} wird hier nur etwas zu +% \cs{extras\meta{Sprache}} hinzugefügt, wenn das bereits definiert ist, +% aber \#2 selbst noch nicht definiert ist. +% \begin{macrocode} + \begingroup + \let#2\relax + \csname extras\scr@reserved@a\endcsname + \csname captions\scr@reserved@a\endcsname + \ifx #2\relax \aftergroup\@firstofone + \else +%<*trace> + \PackageInfo{scrbase}{letting \scr@reserved@a\space + \expandafter\string#2\MessageBreak + unchanged}% +% + \aftergroup\@gobble + \fi + \endgroup + {% + \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax +%<*trace> + \PackageInfo{scrbase}{letting + \expandafter\string\csname extras\scr@reserved@a\endcsname\space + unused}% +% + \expandafter\expandafter\expandafter\@gobbletwo + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname extras\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + }% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@provide@scaptionname +% \begin{macro}{\scr@provide@captionname} +% \changes{v3.12}{2013/07/30}{neu (intern)} +% Die Normalvariante von \cs{providecaptionname}, mit denselben Argumenten. +% \begin{macrocode} +\newcommand*{\scr@provide@captionname}[3]{% + \if@atdocument \expandafter\@firstofone + \else \expandafter\AtBeginDocument + \fi + {% + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% + \scr@reserved@a \do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at + \string\providecaptionname}% + \else +% \end{macrocode} +% Im Unterschied zu \cs{defcaptionname} wird hier nur etwas zu +% \cs{captions\meta{Sprache}} hinzugefügt, wenn das bereits definiert ist, +% aber \#2 selbst weder in \cs{extras\meta{Sprache}} noch in +% \cs{captions\meta{Sprache}} definiert ist. +% \begin{macrocode} + \begingroup + \let#2\relax + \csname captions\scr@reserved@a\endcsname + \csname extras\scr@reserved@a\endcsname + \ifx #2\relax \aftergroup\@firstofone + \else +%<*trace> + \PackageInfo{scrbase}{letting \scr@reserved@a + \expandafter\string#2\MessageBreak + unchanged}% +% + \aftergroup\@gobble + \fi + \endgroup + {% + \expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax +%<*trace> + \PackageInfo{scrbase}{letting + \expandafter\string\csname extras\scr@reserved@a\endcsname\space + unused}% +% + \expandafter\expandafter\expandafter\@gobbletwo + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname captions\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + }% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@provide@captionname +% \end{macro}^^A \providecaptionname +% +% \begin{macro}{\newcaptionname} +% \changes{v2.8q}{2001/11/08}{neu}^^A +% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte +% ist, wird die Anderung sofort aktiviert.}^^A +% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert +% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.}^^A +% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben}^^A +% \changes{v3.01b}{2008/12/07}{missing make undefined}^^A +% \changes{v3.02c}{2009/02/17}{undefined test improved}^^A +% \changes{v3.12}{2013/07/30}{Neuimplementierung nach dem Muster von +% \cs{defcaptionname}}^^A +% Wie \cs{defcaptionname} mit folgender Änderung: Existiert die +% Sprache und der Begriff, so wird ein Fehler ausgegeben. Existiert die +% Sprache aber nicht der Begriff, so wird er definiert. Existiert die Sprache +% nicht, so wird sie definiert. Unter dieser Prämisse verwendet die +% Sternversion \cs{extras\meta{Sprache}}, während die Normalversion +% \cs{captions\meta{Sprache}} verwendet. +% \begin{macrocode} +\newcommand*{\newcaptionname}{% + \@ifstar\scr@new@scaptionname\scr@new@captionname +} +% \end{macrocode} +% \begin{macro}{\scr@new@scaptionname} +% \changes{v3.12}{2013/07/30}{neu (intern)} +% Die Sternvariante von \cs{newcaptionname}. Die Argumente sind dieselben. +% \begin{macrocode} +\newcommand*{\scr@new@scaptionname}[3]{% + \if@atdocument \expandafter\@firstofone + \else \expandafter\AtBeginDocument + \fi + {% + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% + \scr@reserved@a \do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at \string\newcaptionname}% + \else +% \end{macrocode} +% Im Unterschied zu \cs{defcaptionname} darf der Begriff noch nicht definiert +% sein. +% \begin{macrocode} + \begingroup + \let#2\relax + \csname captions\scr@reserved@a\endcsname + \csname extras\scr@reserved@a\endcsname + \ifx #2\relax + \else + \PackageError{scrbase}{% + `\string#2' already defined\MessageBreak + for language `\scr@reserved@a'% + }{% + You've told me to define `\string#2' for language + `\scr@reserved@a',\MessageBreak + but is has already been defined.\MessageBreak + Nevertheless, if you'll continue it will be redefined.% + }% + \fi + \endgroup + \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname extras\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@new@scaptionname +% \begin{macro}{\scr@new@captionname} +% \changes{v3.12}{2013/07/30}{neu (intern)} +% Die Normalvariante von \cs{newcaptionname}, mit denselben Argumenten. +% \begin{macrocode} +\newcommand*{\scr@new@captionname}[3]{% + \if@atdocument \expandafter\@firstofone + \else \expandafter\AtBeginDocument + \fi + {% + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% + \scr@reserved@a \do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at \string\newcaptionname}% + \else +% \end{macrocode} +% Im Unterschied zu \cs{defcaptionname} darf der Begriff noch nicht definiert +% sein. +% \begin{macrocode} + \begingroup + \let#2\relax + \csname captions\scr@reserved@a\endcsname + \csname extras\scr@reserved@a\endcsname + \ifx #2\relax + \else + \PackageError{scrbase}{% + `\string#2' already defined\MessageBreak + for language `\scr@reserved@a'% + }{% + You've told me to define `\string#2' for language + `\scr@reserved@a',\MessageBreak + but is has already been defined.\MessageBreak + Nevertheless, if you'll continue it will be redefined.% + }% + \fi + \endgroup + \expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname captions\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@new@captionname +% \end{macro}^^A \newcaptionname +% +% \begin{macro}{\renewcaptionname} +% \changes{v2.8q}{2001/11/08}{neu}^^A +% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte +% ist, wird die Anderung sofort aktiviert.}^^A +% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert +% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.}^^A +% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben}^^A +% \changes{v3.01b}{2008/12/07}{missing make undefined}^^A +% \changes{v3.02c}{2009/02/17}{undefined test improved}^^A +% \changes{v3.12}{2013/07/30}{Neuimplementierung nach dem Muster von +% \cs{defcaptionname}}^^A +% Wie \cs{defcaptionname} mit folgender Änderung: Existiert die +% Sprache nicht, so ist dies ein Fehler. Existiert die Sprache nicht aber der +% Begriff, so ist dies ebenfalls ein Fehler. Existieren Sprache und Begriff, +% so wird dieser umdefiniert. Unter dieser Voraussetzung ändert die +% Sternvariante immer \cs{extras\meta{Sprache}}, während die Normalvariante +% \cs{captions\meta{Sprache}} ändert, falls der Begriff nicht i +% \cs{extras\meta{Sprache}} definiert war, und sonst \cs{extras\meta{Sprache}}. +% \begin{macrocode} +\newcommand*{\renewcaptionname}{% + \@ifstar\scr@renew@scaptionname\scr@renew@captionname +} +% \end{macrocode} +% \begin{macro}{\scr@renew@scaptionname} +% \changes{v3.12}{2013/07/30}{neu (intern)} +% Die Sternvariante von \cs{renewcaptionname}. Die Argumente sind dieselben. +% \begin{macrocode} +\newcommand*{\scr@renew@scaptionname}[3]{% + \if@atdocument \expandafter\@firstofone + \else \expandafter\AtBeginDocument + \fi + {% + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% + \scr@reserved@a \do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at \string\renewcaptionname}% + \else +% \end{macrocode} +% Im Unterschied zu \cs{defcaptionname} muss der Begriff bereits definiert +% sein. +% \begin{macrocode} + \begingroup + \let#2\relax + \csname captions\scr@reserved@a\endcsname + \csname extras\scr@reserved@a\endcsname + \ifx #2\relax + \PackageError{scrbase}{% + `\string#2' not defined at language `\scr@reserved@a'% + }{% + You've told me to redefine `\string#2' at language + `\scr@reserved@a',\MessageBreak + but is hasn't been defined before.\MessageBreak + Nevertheless, if you'll continue I'll define it at + `\expandafter\string\csname extras\scr@reserved@a\endcsname'% + }% + \fi + \endgroup + \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname extras\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@renew@scaptionname +% \begin{macro}{\scr@renew@captionname} +% \changes{v3.12}{2013/07/30}{neu (intern)} +% Die Normalvariante von \cs{renewcaptionname}, mit denselben Argumenten. +% \begin{macrocode} +\newcommand*{\scr@renew@captionname}[3]{% + \if@atdocument \expandafter\@firstofone + \else \expandafter\AtBeginDocument + \fi + {% + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% + \scr@reserved@a \do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at \string\renewcaptionname}% + \else +% \end{macrocode} +% Im Unterschied zu \cs{defcaptionname} muss der Begriff bereits definiert +% sein. +% \begin{macrocode} + \begingroup + \let#2\relax + \csname extras\scr@reserved@a\endcsname + \ifx #2\relax + \csname captions\scr@reserved@a\endcsname + \ifx #2\relax + \PackageError{scrbase}{% + `\string#2' not defined at language `\scr@reserved@a'% + }{% + You've told me to redefine `\string#2' at language + `\scr@reserved@a',\MessageBreak + but it hasn't been defined before.\MessageBreak + Nevertheless, if you'll continue I'll define it at + `\expandafter\string + \csname captions\scr@reserved@a\endcsname'% + }% + \fi + \expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname captions\scr@reserved@a\endcsname{\def#2{#3}}% + \else + \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname extras\scr@reserved@a\endcsname{\def#2{#3}}% + \fi + \endgroup + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@renew@captionname +% \end{macro}^^A \renewcaptionname +% +% \iffalse +% +%<*class> +% \fi +% +% +% \subsection{Definitionen für ein nummerisches Datum} +% Bei Briefen kann ein nummerisches oder ein symbolisches Datum verwendet +% werden. +% +% \iffalse +%<*letter> +% \fi +% +% \begin{macro}{\g@addnumerical@date} +% Dazu ist es notwendig, ggf. das bereits definierte symbolische Datum durch +% ein nummerisches zu ergänzen. +% \begin{macrocode} +\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} +% +% \iffalse +% +% \fi +% +% +% \subsection{Festlegungen für einzelne Sprachen} +% +% Es folgen nun für einzelne Sprachen konkrete Festlegungen, die für Briefe +% benötigt werden. +% +% \iffalse +%<*letter> +% \fi +% +% \begin{macro}{\captionsenglish} +% \begin{macro}{\dateenglish} +% \begin{macro}{\captionsUSenglish} +% \begin{macro}{\dateUSenglish} +% \begin{macro}{\captionsamerican} +% \changes{v2.4c}{1997/11/25}{american identisch mit USenglish definiert} +% \begin{macro}{\dateamerican} +% \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}{\datebritish} +% \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}{\dateUKenglish} +% \changes{v2.4c}{1997/11/25}{UKenglish identisch mit english definiert} +% \begin{macro}{\captionsgerman} +% \begin{macro}{\dategerman} +% \begin{macro}{\captionsngerman} +% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german} +% \begin{macro}{\datengerman} +% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german} +% \begin{macro}{\captionsaustrian} +% \begin{macro}{\dateaustrian} +% \begin{macro}{\captionsnaustrian} +% \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian} +% \begin{macro}{\datenaustrian} +% \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian} +% \begin{macro}{\captionsfrench} +% \begin{macro}{\datefrench} +% \begin{macro}{\captionsitalian} +% \begin{macro}{\dateitalian} +% \changes{v2.3e}{1996/05/31}{Ich hoffe, dass das stimmt} +% \begin{macro}{\captionsspanish} +% \begin{macro}{\datespanish} +% \changes{v2.4c}{1997/11/25}{Ich hoffe, dass das stimmt} +% \changes{v2.4c}{1997/11/25}{Datumsumschaltung nicht mehr zwingend} +% \begin{macro}{\captionscroation} +% \changes{v2.8q}{2001/05/10}{Neu} +% \begin{macro}{\datecroatian} +% \changes{v2.8q}{2001/05/10}{Neu} +% \begin{macro}{\captionsdutch} +% \changes{v2.8q}{2002/02/01}{Neu} +% \begin{macro}{\datedutch} +% \changes{v2.8q}{2002/02/01}{Neu} +% \begin{macro}{\captionsfinnish} +% \changes{v2.9u}{2005/02/07}{Unterstützung für Finnisch (Dank Hannu +% Väisänen)} +% \changes{v2.9u}{2005/02/07}{Neu} +% \begin{macro}{\datefinnish} +% \changes{v2.9u}{2005/02/07}{Neu} +% \changes{v3.01c}{2008/12/29}{Aktivierung korrigiert} +% \begin{macro}{\captionsnorsk} +% \changes{v3.02}{2009/01/01}{Neu} +% \begin{macro}{\datenorsk} +% \changes{v3.02}{2009/01/01}{Neu} +% \begin{macro}{\captionsnorsk} +% \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)} +% \begin{macro}{\datenorsk} +% \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)} +% Weil es in früheren 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önnen. +% \begin{table} +% \centering +% \begin{tabular}{ll} +% Sprache & Spender \\\hline\\[-1.6ex] +% English & Frank Neukam, Michael Dewey, Markus Kohm \\ +% Deutsch & Frank Neukam, Markus Kohm \\ +% Französisch & Frank Neukam, Henk Jongbloets \\ +% Italienisch & Simone Naldi \\ +% Spanisch & Ralph J.\ Hangleiter, Alejandro L\'opez-Valencia\\ +% Kroatisch & Branka Lon\v{c}arevi\'{c} \\ +% Holländisch & Henk Jongbloets \\ +% Finnisch & Hannu Väisänen \\ +% Norwegisch & Sveinung Heggen \\ +% Schwedisch & Benjamin Hell\\ +% \end{tabular} +% \caption{Liste der unterstützten 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} +\AtBeginDocument{% + \@ifundefined{captionsenglish}{\let\captionsenglish\@empty}{}% + \@ifundefined{dateenglish}{\def\dateenglish{% +% \end{macrocode} +% \iffalse +% +% \fi +% \begin{macrocode} + \def\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} +% \iffalse +%<*letter> +% \fi +% \begin{macrocode} + }% + }{}% + \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}\mobilephonename{Mobile phone}% + \providecaptionname{english}\faxname{Fax}% + \providecaptionname{english}\emailname{Email}% + \providecaptionname{english}\wwwname{Url}% + \providecaptionname{english}\bankname{Bank account}% + \g@addnumerical@date{english}{\number\day/\number\month/\number\year}% + \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}\mobilephonename{Cell phone}% + \providecaptionname{USenglish}\faxname{Fax}% + \providecaptionname{USenglish}\emailname{Email}% + \providecaptionname{USenglish}\wwwname{Url}% + \providecaptionname{USenglish}\bankname{Bank account}% + \g@addnumerical@date{USenglish}{\number\month/\number\day/\number\year}% + \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}\mobilephonename{Cell phone}% + \providecaptionname{american}\faxname{Fax}% + \providecaptionname{american}\emailname{Email}% + \providecaptionname{american}\wwwname{Url}% + \providecaptionname{american}\bankname{Bank account}% + \g@addnumerical@date{american}{\number\month/\number\day/\number\year}% + \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}\mobilephonename{Mobile phone}% + \providecaptionname{british}\faxname{Fax}% + \providecaptionname{british}\emailname{Email}% + \providecaptionname{british}\wwwname{Url}% + \providecaptionname{british}\bankname{Bank account}% + \g@addnumerical@date{british}{\number\day/\number\month/\number\year}% + \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}\mobilephonename{Mobile phone}% + \providecaptionname{UKenglish}\faxname{Fax}% + \providecaptionname{UKenglish}\emailname{Email}% + \providecaptionname{UKenglish}\wwwname{Url}% + \providecaptionname{UKenglish}\bankname{Bank account}% + \g@addnumerical@date{UKenglish}{\number\day/\number\month/\number\year}% + \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}\mobilephonename{Mobiltelephon}% + \providecaptionname{german}\faxname{Fax}% + \providecaptionname{german}\emailname{E-Mail}% + \providecaptionname{german}\wwwname{URL}% + \providecaptionname{german}\bankname{Bankverbindung}% + \g@addnumerical@date{german}{\number\day.\,\number\month.\,\number\year}% + \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}\mobilephonename{Handy}% + \providecaptionname{ngerman}\faxname{Fax}% + \providecaptionname{ngerman}\emailname{E-Mail}% + \providecaptionname{ngerman}\wwwname{URL}% + \providecaptionname{ngerman}\bankname{Bankverbindung}% + \g@addnumerical@date{ngerman}{\number\day.\,\number\month.\,\number\year}% + \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}\mobilephonename{Mobiltelefon}% + \providecaptionname{austrian}\faxname{Fax}% + \providecaptionname{austrian}\emailname{E-Mail}% + \providecaptionname{austrian}\wwwname{URL}% + \providecaptionname{austrian}\bankname{Bankverbindung}% + \g@addnumerical@date{austrian}{\number\day.\,\number\month.\,\number\year}% + \providecaptionname{naustrian}\yourrefname{Ihr Zeichen}% + \providecaptionname{naustrian}\yourmailname{Ihr Schreiben vom}% + \providecaptionname{naustrian}\myrefname{Unser Zeichen}% + \providecaptionname{naustrian}\customername{Kundennummer}% + \providecaptionname{naustrian}\invoicename{Rechnungsnummer}% + \providecaptionname{naustrian}\subjectname{Betrifft}% + \providecaptionname{naustrian}\ccname{Kopien an}% + \providecaptionname{naustrian}\enclname{Anlagen}% + \providecaptionname{naustrian}\headtoname{An}% + \providecaptionname{naustrian}\headfromname{Von}% + \providecaptionname{naustrian}\datename{Datum}% + \providecaptionname{naustrian}\pagename{Seite}% + \providecaptionname{naustrian}\phonename{Telefon}% + \providecaptionname{naustrian}\phonename{Handy}% + \providecaptionname{naustrian}\faxname{Fax}% + \providecaptionname{naustrian}\emailname{E-Mail}% + \providecaptionname{naustrian}\wwwname{URL}% + \providecaptionname{naustrian}\bankname{Bankverbindung}% + \g@addnumerical@date{naustrian}{\number\day.\,\number\month.\,\number\year}% + \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}\mobilephonename{Portable}% + \providecaptionname{french}\faxname{T\'el\'efax}% + \providecaptionname{french}\emailname{E-mail}% + \providecaptionname{french}\wwwname{URL}% + \providecaptionname{french}\bankname{Compte en banque}% + \g@addnumerical@date{french}{\number\day.\,\number\month.\,\number\year}% + \providecaptionname{italian}\yourrefname{Vs./Rif.}% or Vostro Riferimento + \providecaptionname{italian}\yourmailname{Vs.~lettera del}% or Vostra + % lettera del + \providecaptionname{italian}\myrefname{Ns./Rif.}% or Nostro Riferimento + \providecaptionname{italian}\customername{Nr.~cliente}% or Cliente num. + \providecaptionname{italian}\invoicename{Nr.~fattura}% or Fattura num. + \providecaptionname{italian}\subjectname{Oggetto}% + \providecaptionname{italian}\ccname{Per conoscenza}% or Copia a + \providecaptionname{italian}\enclname{Allegato}% or (plural) Allegati + \providecaptionname{italian}\headtoname{A}% + \providecaptionname{italian}\headfromname{Da}% + \providecaptionname{italian}\datename{Data}% + \providecaptionname{italian}\pagename{Pagina}% + \providecaptionname{italian}\phonename{Telefono}% + \providecaptionname{italian}\mobilephonename{Telefonino}% + \providecaptionname{italian}\faxname{Fax}% + \providecaptionname{italian}\emailname{Email}% + \providecaptionname{italian}\wwwname{Sito Web}% + \providecaptionname{italian}\bankname{Conto bancario}% + \g@addnumerical@date{italian}{\number\day.\,\number\month.\,\number\year}% + \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}\mobilephonename{M\'ovil}% + \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}% + \g@addnumerical@date{spanish}{\number\day.\,\number\month.\,\number\year}% + \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}\mobilphonename{Mobitel}% + \providecaptionname{croatian}\faxname{Fax}% + \providecaptionname{croatian}\emailname{E-Mail}% + \providecaptionname{croatian}\wwwname{URL}% + \providecaptionname{croatian}\bankname{Bankovna veza}% + \g@addnumerical@date{croatian}{\number\day.\,\number\month.\,\number\year.}% + \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}\mobilephonename{Mobieltje}% + \providecaptionname{dutch}\faxname{Fax}% + \providecaptionname{dutch}\emailname{E--mail}% + \providecaptionname{dutch}\wwwname{URL}% + \providecaptionname{dutch}\bankname{Bankrekening}% + \g@addnumerical@date{dutch}{\number\day.\,\number\month.\,\number\year}% + \providecaptionname{finnish}\yourrefname{Viitteenne}% + \providecaptionname{finnish}\yourmailname{Kirjeenne}% + \providecaptionname{finnish}\myrefname{Viitteemme}% + \providecaptionname{finnish}\customername{Asiakasnumero}% + \providecaptionname{finnish}\invoicename{Laskun numero}% + \providecaptionname{finnish}\subjectname{Asia}% + \providecaptionname{finnish}\ccname{Jakelu}% + \providecaptionname{finnish}\enclname{Liitteet}% + \providecaptionname{finnish}\headtoname{Vastaanottaja}% + \providecaptionname{finnish}\headfromname{L\"ahett\"aj\"a}% + \providecaptionname{finnish}\datename{P\"aiv\"a}% + \providecaptionname{finnish}\pagename{Sivu}% + \providecaptionname{finnish}\phonename{Puhelin}% + \providecaptionname{finnish}\mobilephonename{Matkapuhelin}% + \providecaptionname{finnish}\faxname{Faksi}% + \providecaptionname{finnish}\emailname{S\"ahk\"oposti}% + \providecaptionname{finnish}\wwwname{URL}% + \providecaptionname{finnish}\bankname{Pankkitilin numero}% + \g@addnumerical@date{finnish}{\number\day.\number\month.\number\year}% + \providecaptionname{norsk}\yourrefname{Deres ref.}% + \providecaptionname{norsk}\yourmailname{Deres brev av:}% + \providecaptionname{norsk}\myrefname{V\aa{}r ref:}% + \providecaptionname{norsk}\customername{Kundenummer}% + \providecaptionname{norsk}\invoicename{Fakturanummer}% + \providecaptionname{norsk}\subjectname{Emne}% + \providecaptionname{norsk}\ccname{Kopi til}% + \providecaptionname{norsk}\enclname{Vedlegg}% + \providecaptionname{norsk}\headtoname{Til}% + \providecaptionname{norsk}\headfromname{Fra}% + \providecaptionname{norsk}\datename{Dato}% + \providecaptionname{norsk}\pagename{Side}% + \providecaptionname{norsk}\phonename{Telefon}% + \providecaptionname{norsk}\mobilephonename{Mobiltelefon}% + \providecaptionname{norsk}\faxname{Telefaks}% + \providecaptionname{norsk}\emailname{E-post}% + \providecaptionname{norsk}\wwwname{Url}% + \providecaptionname{norsk}\bankname{Bankkontonummer}% + \g@addnumerical@date{norsk}{\number\day.\number\month.\number\year}% + \providecaptionname{swedish}\yourrefname{Er ref}% + \providecaptionname{swedish}\yourmailname{Ert brev av}% + \providecaptionname{swedish}\myrefname{V\aa{}r ref}% + \providecaptionname{swedish}\customername{Kundnummer}% + \providecaptionname{swedish}\invoicename{Fakturanummer}% + \providecaptionname{swedish}\subjectname{\"Amne}% +% \end{macrocode} +% "`Kopia"' oder "`Kopia till"' geht beides -- da im Deutschen die +% lange Form verwendet wird nehmen wir die auch hier: +% \begin{macrocode} + \providecaptionname{swedish}\ccname{Kopia till}% +% \end{macrocode} +% "`Bilaga"' ist Singular. Bei mehreren Anlagen schreibt man +% "`Bilagor"'. Da wir nicht wissen, ob es eine oder mehrere Anlagen sind, +% haben wir ein kleines Problem und gehen mal von mehreren aus: +% \begin{macrocode} + \providecaptionname{swedish}\enclname{Bilagor}% Singular: Bilaga + \providecaptionname{swedish}\headtoname{Till}% + \providecaptionname{swedish}\headfromname{Fr\aa{}n}% + \providecaptionname{swedish}\datename{Datum}% + \providecaptionname{swedish}\pagename{Sida}% + \providecaptionname{swedish}\phonename{Telefon}% + \providecaptionname{swedish}\mobilephonename{Mobiltelefon}% + \providecaptionname{swedish}\faxname{Telefax}% + \providecaptionname{swedish}\emailname{E-post}% + \providecaptionname{swedish}\wwwname{Hemsida}% +% \end{macrocode} +% Für \cs{bankname} gibt es zwei verschiedene Ausdrücke, je nachdem um +% welche Kontoform es sich handelt: "`Bankgiro"' und "`PlusGiro"'. Beide +% sind etwa gleich verbreitet, evtl. mit einem leichten Vorteil für +% Bankgiro. +% \begin{macrocode} + \providecaptionname{swedish}\bankname{Bankgiro}% PlusGiro +% \end{macrocode} +% Statt der ISO-Variante wird hier die traditionelle Variante, +% "`18/1 2011"', verwendet. +% \begin{macrocode} + \g@addnumerical@date{swedish}{\number\day/\number\month~\number\year}% +% \end{macrocode} +% Zum Schluss 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ür sind nun keine Erweiterungen für andere +% Sprachen mehr möglich. +% \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öglich ist} +% \changes{v2.5e}{2000/07/14}{Workaround für 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ür den +% \texttt{hyphen.cfg}-Bug von Babel} +% \changes{v2.97c}{2007/08/10}{Text einer Warnung geändert} +% Wird die \texttt{hyphen.cfg} von Babel verwendet, wird aber das +% \textsl{babel}-Paket nicht geladen, so ist \cs{languagename} häufig +% nicht korrekt, so dass dann \cs{selectlanguage} mit +% \cs{languagename} als Argument schief geht. Daher hier ein +% Workaround für 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 + Undefining macro \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@naustrian\undefined\else\ifnum\language=\l@naustrian + \captionsnaustrian + \datenaustrian + \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 + \ifx\l@finnish\undefined\else\ifnum\language=\l@finnish + \captionsfinnish + \datefinnish + \fi\fi + \ifx\l@norsk\undefined\else\ifnum\language=\l@norsk + \captionsnorsk + \datenorsk + \fi\fi + \ifx\l@swedish\undefined\else\ifnum\language=\l@swedish + \captionsswedish + \dateswedish + \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 + \ClassInfo{scrlttr2}{% + trying to activate captions and date\MessageBreak + of language `\languagename'% + }% +% \end{macrocode} +% \changes{v3.12}{2012/12/28}{Workaround für babels geänderte hyphen.cfg} +% Irgendwann wurde in babel die hyphen.cfg geändert, so dass das früher sehr +% gut funktionierende |\expandafter\selectlanguage\expandafter{\languagename}| +% damit leider nicht mehr funktioniert, wenn babel nicht mehr geladen +% ist. Deshalb wird nun etwas direkter vorgegangen. Das kann mit einzelnen +% Sprachpaketen eventuell Nachteile bringen, funktioniert aber aktuell ohne +% Sprachpaket, mit babel und mit polyglossia. +% \begin{macrocode} + \csname date\languagename\endcsname + \csname captions\languagename\endcsname + \ClassInfo{% + scrlttr2% + }{% + used language is `\languagename'.\MessageBreak + Supported languages are `english', `UKenglish',\MessageBreak + `british', `american', `USenglish',\MessageBreak + `german', `ngerman', `austrian', `naustrian',\MessageBreak + `dutch', `italian', `spanish',\MessageBreak + `croatian', `finnish', `norsk', `swedish'% + }% + \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} +% \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} +% +% \iffalse +% +% +% \fi +% +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-language.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-letterclassoptions.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-letterclassoptions.dtx new file mode 100644 index 00000000000..3bc69e080d7 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-letterclassoptions.dtx @@ -0,0 +1,1464 @@ +% \CheckSum{1467} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-letterclassoptions.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-letterclassoptions.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-letterclassoptions.dtx 1499 2013-11-05 17:22:29Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-letterclassoptions.dtx}[2013/11/05 v3.12 KOMA-Script + (letter class options)] +% \iffalse +\documentclass{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-letterclassoptions.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2006/03/22}{% +% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} +% +% \section{Optionendateien für Briefe} +% +% Bei der Briefklasse tritt eine Besonderheit ein. Hier ist es +% möglich, spezielle \texttt{lco}-Dateien zu definieren, die über +% Optionen geladen werden können. Die unterschiedlichen Brieftypen +% sind ein Fall für solche \emph{\textbf{l}etter \textbf{c}lass +% \textbf{o}ption} Dateien. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*letter> +% \fi +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Optionen für Letter-Class-Options} +% +% \begin{macro}{\lco@test} +% \changes{v2.95}{2006/03/22}{Neu} +% \changes{v2.97c}{2007/09/12}{an neue Optionenabarbeitung angepasst} +% Letter-Class-Optionen können auch für jede per |\documentclass| angegebene +% keyval-Option oder sonstige scan-Option (das sind Optionen, die nicht per +% |\DeclareOption| definiert wurden) geladen werden. Dabei wird die +% Abarbeitung der Option nicht unterbrochen. Dazu wird dieses Makro in den +% scan-Vorgang eingebaut +% \begin{macrocode} +\newcommand*{\lco@test}{% + \IfFileExists{\CurrentOption.lco}{% + \expandafter\AtEndOfClass\expandafter{% + \expandafter\LoadLetterOption\expandafter{\CurrentOption}% + }% + \expandafter\def\expandafter\scr@pti@nerr@r\expandafter{% + \expandafter\def\expandafter\scr@pti@nerr@r\expandafter{% + \scr@pti@nerr@r + }% + }% + }{}% +} +% \end{macrocode} +% \end{macro} +% +% Als Voreinstellung wird am Ende schon einmal die Datei \texttt{DIN.lco} +% geladen. +% \begin{macrocode} +\AtEndOfClass{\LoadLetterOption{DIN}} +% \end{macrocode} +% +% \iffalse +% +%<*body> +% \fi +% +% \subsection{Makros für Letter-Class-Options} +% +% \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önnen, muss der catcode von "`@"' entsprechend +% gesetzt sein. Damit der Befehl sowohl in der Präambel 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ächlich eine +% Schachtelung möglich 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öglichkeit, in \texttt{lco}-Dateien eine bestimmte +% Papiergröße zu fordern. Dazu wird der Name der \texttt{lco}-Datei +% und die geforderte Papiergröse als Parameter übergeben. Stimmt die +% Papiergröße nicht überein, so wird bei \cs{opening} eine Warnung +% ausgegeben. +% \begin{macro}{\@PapersizeWarning} +% \changes{v2.8q}{2002/03/25}{Neu (intern)}%^^A +% \changes{v3.12}{2013/11/05}{Abweichung von 1\,mm nach unten und oben +% erlaubt}%^^A +% \begin{macro}{\@@PapersizeWarning} +% \changes{v2.8q}{2002/03/25}{Neu (intern)}%^^A +% \begin{macro}{\LOPNP@size} +% \changes{v2.8q}{2002/03/25}{Neu (intern)}%^^A +% \begin{macro}{\LOPNP@option} +% \changes{v2.8q}{2002/03/25}{Neu (intern)}%^^A +% Zur einfacheren Realisierung wird mit vier internen Hilfsmakros +% gearbeitet. +% \begin{macrocode} +\newcommand*{\LOPNP@option}{} +\newcommand*{\LOPNP@size}{} +\newcommand*{\@PapersizeWarning}{% + \begingroup% + \edef\@tempc{\noexpand\@tempswafalse + \noexpand\ifdim\paperwidth<\the\dimexpr\paperwidth-.1mm\relax + \relax + \noexpand\else + \noexpand\ifdim\paperwidth>\the\dimexpr\paperwidth+.1mm\relax + \relax + \noexpand\else + \noexpand\ifdim\paperheight<\the\dimexpr\paperheight-.1mm\relax + \relax + \noexpand\else + \noexpand\ifdim\paperheight>\the\dimexpr\paperheight+.1mm\relax + \relax + \noexpand\else + \noexpand\@tempswatrue + \noexpand\fi + \noexpand\fi + \noexpand\fi + \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} +% +% \iffalse +% +% +% \fi +% +% \subsection{Die Letter-Class-Optionen} +% +% Die Letter-Class-Optionen selbst werden wie bereits erwähnt über Dateien +% realisiert. In den vorgefertigen Dateien für unterschiedliche Arten von +% Briefen werden in erster Linie Pseudo-Längen passend gesetzt. In einigen +% Fällen werden aber auch zusätzlich Befehle umdefiniert. +% +% \iffalse +%<*lco> +% \fi +% +% \subsubsection{Der Datei Kopf} +% +% \iffalse +%<*head> +% \fi +% +% Im Kopf ist natürlich die Datei zu deklarieren: +% \changes{v3.04}{2009/04/21}{neue LCO \texttt{NF} von Jean-Marie Pacquet +% übernommen und ergänzt} +% \changes{v3.04}{2009/06/26}{neue LCO \texttt{USletter2w} in Zusammenarbeit +% mit Engelbert Buxbaum und Richard Ar\`es geschaffen} +% \changes{v3.04}{2009/06/29}{neue LCO \texttt{UScommercial9DW} für Papier im +% Format letter oder legal in Umschlägen im Format commercial No.\,9 mit +% zwei Fenstern} +% \changes{v3.04}{2009/06/30}{neue LCO \texttt{UScommercial9} für Papier im +% Format letter oder legal in Umschlägen im Format commercial No.\,9 mit +% einem Fenster auf Basis von \texttt{http://www.envelopesuperstore.com/}} +% \changes{v3.04}{2009/06/26}{seit langem existierende LCO \texttt{visualize} +% zur Visualisierung einiger Pseudolängen aufgenommen} +% \begin{macrocode} +\ProvidesFile{% +% visualize% +% DIN% +% DINmtext% +% SN% +% SNold% +% SNleft% +% KOMAold% +% NF% +% USletter2w +% UScommercial9 +% UScommercial9DW + .lco}[\KOMAScriptVersion\space letter-class-option] +% \end{macrocode} +% +% \begin{macro}{\LCOWarningNoLine} +% \changes{v2.95}{2006/03/24}{Neu} +% \begin{macro}{\LCOWarning} +% \changes{v2.95}{2006/03/24}{Neu} +% Außerdem wird ein Makro benötigt, das analog zu |\ClassWarningNoLine| oder +% |\PackageWarningNoLine| funktioniert. +\providecommand*\LCOWarningNoLine[2]{% + \LCOWarning{#1}{#2\@gobble}% +} +\providecommand*\LCOWarning[2]{% + \GenericWarning{% + (#1)\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces + }{% + Letter class option #1 Warning: #2% + }% +} +% \end{macro} +% \end{macro} +% +% \iffalse +% +%<*body> +%<*!visualize> +% \fi +% +% \subsubsection{Der Hauptteil} +% +% Die Maße für 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 \\ +% NF & Jean-Marie Pacquet \\ +% USletter2w & Engelbert Buxbaum \\ +% UScommercial9 & mir \\ +% UScommercial9DW & mir \\ +% \end{tabular}{ll} +% \end{center} +% +% Zunächst wird geprüft, ob überhaupt die richtige Klasse geladen ist. +% \begin{macrocode} +\@ifundefined{scr@fromname@var}{% + \LCOWarningNoLine{% +% DIN% +% DINmtext% +% SN% +% SNold% +% SNleft% +% KOMAold% +% NF% +% USletter2w% +% UScommercial9% +% UScommercial9DW% + }{% + 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% + }% +}{} +% \end{macrocode} +% +% Dann wird geprüft, ob das richtige Papierformat vorhanden ist. +% \begin{macrocode} +\LetterOptionNeedsPapersize{% +% DIN% +% DINmtext% +% SN% +% SNold% +% SNleft% +% KOMAold% +% NF% +% USletter2w% +% UScommercial9% +% UScommercial9DW% +%<*DIN|DINmoretext|SN|SNold|SwissLeft|KOMAold|NF> +}{a4} +% +%<*USletter2w|UScommercial9|UScommercial9DW> +}{letter} +% +% \end{macrocode} +% +% Dann werden die Werte gesetzt. +% \begin{description} +% \item[ZIP-Code] +% \changes{v3.03}{2009/03/04}{Bezeichner der Variablen \texttt{fromzipcode} +% wird gesetzt} +% \begin{macrocode} +%\setkomavar*{fromzipcode}{% +% D} +% CH} +% F} +% US} +% \end{macrocode} +% \item[Faltmarken] +% \changes{v2.97e}{2007/11/20}{Die neuen Faltmarken werden berücksichtigt.} +% \begin{macrocode} +\@setplength{foldmarkhpos}{3.5mm} +\@setplength{tfoldmarkvpos}{% +% 105mm} +% 87mm} +% 103.5mm} +% 99mm} +% 3.75in} +\@setplength{mfoldmarkvpos}{\z@} +\@setplength{bfoldmarkvpos}{% +% 210mm} +% 192mm} +% 202.5mm} +% 198mm} +% 7.4in} +% 7.375in} +\@setplength{lfoldmarkhpos}{\z@} +% \end{macrocode} +% \item[Anschrift] +% \begin{macrocode} +\@setplength{toaddrvpos}{% +% 45mm} +% 27mm} +% 35.5mm} +% 49mm} +% 35mm} +% 1.8in} +% 2.1875in} +\@setplength{toaddrhpos}{% +% 20mm} +% -8mm} +% 1in} +%\@addtoplength{toaddrhpos}{\oddsidemargin} +% -10mm} +% .73in} +% 0.6875in} +% .5625in} +\@setplength{toaddrwidth}{% +% 85mm} +% 90mm} +% 100mm} +% 70mm} +% 3.11in} +% 4.5in} +% 3.625in} +% \end{macrocode} +% \changes{v3.03}{2009/06/25}{Anschriftfeld enthält laut Doku die +% Rücksendeadresse, also machen wir das jetzt auch so} +% \begin{macrocode} +\@setplength{toaddrheight}{% +% 45mm} +% 1.17in} +% 1.125in} +\@setplength{toaddrindent}{% +% \z@} +% 10mm} +\@setplength{backaddrheight}{% +% 5mm} +% \z@} +%\KOMAoptions{backaddress=false} +\@setplength{specialmailindent}{\fill} +\@setplength{specialmailrightindent}{1em} +% \end{macrocode} +% \item[Absenderergänzung] +% \begin{macrocode} +\@setplength{locwidth}{% +% \z@} +% \end{macrocode} +% \item[Kopf] +% \begin{macrocode} +\@setplength{firstheadvpos}{% +% 8mm} +% 6mm} +% 15mm} +% .36in} +% .4375in} +\@setplength{firstheadwidth}{% +% \textwidth} +% 170mm} +%<*DIN|DINmoretext|SN|SwissLeft|UScommercial9> + \paperwidth} +\ifdim \useplength{toaddrhpos}>\z@ + \@addtoplength[-2]{firstheadwidth}{\useplength{toaddrhpos}} +\else + \@addtoplength[2]{firstheadwidth}{\useplength{toaddrhpos}} +\fi +% +%<*USletter2w> + \paperwidth} +\@addtoplength[-]{firstheadwidth}{.68in} +% +%<*UScommercial9DW> + \paperwidth} +\@addtoplength[-]{firstheadwidth}{.25in} +% +% \end{macrocode} +% \item[Fuß] +% \changes{v2.9u}{2005/03/05}{Der Fuß hat optional eine feste Position 16\,mm +% über der unteren Papierkante.} +% \begin{macrocode} +\@setplength{firstfootwidth}{\useplength{firstheadwidth}} +%\@setplength{firstfootvpos}{\paperheight} +%\@addtoplength{firstfootvpos}{-2cm} +%\ifnum \scr@compatibility >\@nameuse{scr@v@2.9t}\relax +% \@setplength{firstfootvpos}{\paperheight} +% \@addtoplength{firstfootvpos}{-16mm} +%\else +% \@setplength{firstfootvpos}{1in} +% \@addtoplength{firstfootvpos}{\topmargin} +% \@addtoplength{firstfootvpos}{\headheight} +% \@addtoplength{firstfootvpos}{\headsep} +% \@addtoplength{firstfootvpos}{\textheight} +% \@addtoplength{firstfootvpos}{\footskip} +%\fi +%\@setplength{firstfootvpos}{266.679mm} +% \end{macrocode} +% \item[Geschäftszeile] +% \begin{macrocode} +\@setplength{refvpos}{% +% 98.5mm} +% 80.5mm} +% 89mm} +% 89.5mm} +% \useplength{tfoldmarkvpos}} +% 3.1in} +% 3.4375in} +\@setplength{refaftervskip}{% +% \baselineskip} +% 2\baselineskip} +% \end{macrocode} +% Bei der Breite der Geschäftszeile brauchen wir wieder eine Sonderlösung, +% damit die Option "`wide"' auch später 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} +% \end{macrocode} +% \item[Signature] +% \begin{macrocode} +\@setplength{sigindent}{0mm} +\@setplength{sigbeforevskip}{2\baselineskip} +%\let\raggedsignature=\centering +%\let\raggedsignature=\raggedright +% \end{macrocode} +% \end{description} +% Es folgen ggf. noch zusätzliche Änderungen. +% \begin{macrocode} +%<*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ßerdem gibt es noch die Kompatibilitätseinstellungen, 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} +\def\foldmarkson{\@ObsoleteCommand{\foldmarkson}{foldmarks=on}} +\def\foldmarksoff{\@ObsoleteCommand{\foldmarksoff}{foldmarks=off}} +\def\addrfieldon{\@ObsoleteCommand{\addrfieldon}{addrfield=on}} +\def\addrfieldoff{\@ObsoleteCommand{\addrfieldoff}{addrfield=off}} +\def\subjecton{\@ObsoleteCommand{\subjecton}{subject=titled}} +\def\subjectoff{\@ObsoleteCommand{\subjectoff}{subject=untitled}} +\def\subjectafteron{% + \@ObsoleteCommand{\subjectafteron}{subject=afteropening}} +\def\subjectafteroff{% + \@ObsoleteCommand{\subjectafteroff}{subject=beforeopening}} +% +% \end{macrocode} +% +% \iffalse +% +%<*visualize> +% \fi +% +% \subsection{Makros zur Visualisierung diverser Felder in einem Brief} +% +% Diese Makros werden nur von \texttt{visualize.lco} verwendet und stellen den +% Hauptteil dieser LCO dar. +% +% Das Paket benötigt \textsf{eso-pic}. Das Paket wird nur dann explizit +% geladen, wenn dies nicht bereits geschehen ist. Damit ist es möglich das +% Paket mit Optionen vor der LCO zu laden: +% \begin{macrocode} +\@ifpackageloaded{eso-pic}{}{\RequirePackage{eso-pic}} +% \end{macrocode} +% +% \begin{macro}{\showfields} +% Diese Anweisung erlaubt es, eine Reihe von Felder zu visualisieren. Dazu +% gibt man die gewünschten Felder als Komma separierte Liste im ersten und +% einzigen Argument der Anweisung an. Gibt man ein unbekanntes Feld an, so +% wird nicht etwa ein Fehler, sondern nur eine Warnung ausgegeben. Die +% Visualisierung erfolgt im Hintergrund. Dies wird mit Hilfe des Pakets +% \textsf{eso-pic} erreicht. Wichtig ist noch, dass die Anweisung nicht +% zurückgenommen werden kann. +% \begin{macrocode} +\newcommand*{\showfields}[1]{% + \AtBeginLetter{% + \begingroup + \@for \@tempa:=#1\do{% + \ifx\@tempa\@empty\else + \@ifundefined{showfield@\@tempa}{% + \LCOWarning{visualize}{Unknown field `\@tempa' ignored}% + }{% + \edef\@tempa{% + \noexpand\AddToShipoutPicture*{% + \noexpand\AtPageUpperLeft{% + \noexpand\usekomafont{field}% + \noexpand\@nameuse{showfield@\@tempa}% + }% + }% + }\@tempa + }% + \fi + }% + \endgroup + }% +} +% \end{macrocode} +% \begin{KOMAfont}{field} +% Die Visualisierung erfolgt dabei in einer wählbaren Farbe, die über das +% Element \cs{field} definiert ist. Voreingestellt ist dabei +% \cs{normalcolor}. +% \begin{macrocode} +\newkomafont{field}{\normalcolor} +% \end{macrocode} +% \end{KOMAfont} +% \end{macro} +% +% \begin{macro}{\showfield} +% Die Visualisierung der einzelnen Felder erfolgt über eigene Anweisungen des +% Aufbaus \cs{showfield@\emph{Feldname}}. In der Regel sind die Felder +% rechteckig. Zur Visualisierung solcher Felder können daher einheitliche +% Anweisungen verwendet werden. Diese besitzen vier Argumente: +% \begin{enumerate} +% \item Abstand vom linken Rand (x-Koordinate des Rahmens) +% \item Abstand vom oberen Rand (y-Koordinate des Rahmens) +% \item Breite des Feldes +% \item Höhe des Feldes; ist dieser Wert negativ gibt es keine feste Höhe, +% sondern nur eine Art unbestimmte Ausdehnung mit einer Mindesthöhe +% \end{enumerate} +% +% \begin{macro}{\showfield@by@frame} +% Diese Anweisung visualisiert ein rechteckiges Feld durch Rahmen. Bei einer +% negativen Höhe wird ein unten offener Rahmen gezeichnet, bei dem die +% vertikalen Linien als Pfeile nach unten ausgeführt werden. +% \begin{macrocode} +\newcommand*{\showfield@by@frame}[4]{% + \thinlines + \ifdim #4<\z@ + \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(1,0){\LenToUnit{#3}}}% + \setlength{\@tempdima}{\dimexpr #1+#3\relax}% + \setlength{\@tempdimb}{#4} + \put(\LenToUnit{#1},-\LenToUnit{#2}){% + \vector(0,-1){\LenToUnit{-\@tempdimb}}}% + \put(\LenToUnit\@tempdima,-\LenToUnit{#2}){% + \vector(0,-1){\LenToUnit{-\@tempdimb}}}% + \else + \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(1,0){\LenToUnit{#3}}}% + \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(0,-1){\LenToUnit{#4}}}% + \setlength{\@tempdima}{\dimexpr #1+#3\relax}% + \setlength{\@tempdimb}{\dimexpr #2+#4\relax}% + \put(\LenToUnit\@tempdima,\LenToUnit{-\@tempdimb}){% + \line(-1,0){\LenToUnit{#3}}}% + \put(\LenToUnit\@tempdima,\LenToUnit{-\@tempdimb}){% + \line(0,1){\LenToUnit{#4}}}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\showfield@by@edges} +% Diese Anweisung visualisert ein rechteckiges Feld, indem es die Ecken des +% Feldes durch kleine Striche markiert. Bei negativer Höhe entfallen die +% unteren Eckmarkierungen. +% \begin{macrocode} +\newcommand*{\showfield@by@edges}[4]{% + \thinlines + \setlength{\@tempdima}{\dimexpr #1+#3\relax}% + \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(1,0){\LenToUnit{\edgesize}}}% + \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(0,-1){\LenToUnit{\edgesize}}}% + \put(\LenToUnit{\@tempdima},-\LenToUnit{#2}){\line(-1,0){\LenToUnit{\edgesize}}}% + \put(\LenToUnit{\@tempdima},-\LenToUnit{#2}){\line(0,-1){\LenToUnit{\edgesize}}}% + \ifdim #4<\z@\else + \setlength{\@tempdimb}{\dimexpr #2+#4\relax}% + \put(\LenToUnit{#1},-\LenToUnit{\@tempdimb}){\line(1,0){\LenToUnit{\edgesize}}}% + \put(\LenToUnit{#1},-\LenToUnit{\@tempdimb}){\line(0,1){\LenToUnit{\edgesize}}}% + \put(\LenToUnit{\@tempdima},-\LenToUnit{\@tempdimb}){\line(-1,0){\LenToUnit{\edgesize}}}% + \put(\LenToUnit{\@tempdima},-\LenToUnit{\@tempdimb}){\line(0,1){\LenToUnit{\edgesize}}}% + \fi +} +% \end{macrocode} +% \begin{macro}{\edgesize} +% Die Länge der Ecklinien wird über dieses Makro bestimmt. Voreingestellt ist +% 1\,ex. +% \begin{macrocode} +\newcommand*{\edgesize}{1ex} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\showfield@by@rule} +% Diese Anweisung visualisiert ein rechteckiges Feld, indem es das komplette +% Feld einfärbt. Es wird hier nicht zwischen unten offenen und geschlossenen +% Feldern unterschieden. +% \begin{macrocode} +\newcommand*{\showfield@by@rule}[4]{% + \ifdim #4<\z@ + \put(\LenToUnit{#1},-\LenToUnit{#2}){\rule[#4]{#3}{-#4}}% + \else + \put(\LenToUnit{#1},-\LenToUnit{#2}){\rule[-#4]{#3}{#4}}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% Die Voreinstellung für die Visualsierung ist mit Rahmen: +% \begin{macrocode} +\newcommand*{\showfield}{} +\let\showfield\showfield@by@frame +% \end{macrocode} +% +% \begin{macro}{\setshowstyle} +% Dieser Stil der Visualisierung kann per Anweisung umgeschaltet +% werden. Existiert ein Stil nicht, so wird kein Fehler gemldet, sondern +% lediglich eine Warnung und der Standardstil verwendet: +% \begin{macrocode} +\newcommand*{\setshowstyle}[1]{% + \@ifundefined{showfield@by@#1}{% + \LCOWarning{visualize}{Unknown show type `#1'.\MessageBreak + You should simply set one of the supported\MessageBreak + show types `frame', `edges', `rule'.\MessageBreak + Style `frame' will be used instead}% + \let\showfield\showfield@by@frame + }{% + \expandafter\let\expandafter\showfield\csname showfield@by@#1\endcsname + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Die folgenden Felder werden derzeit unterstützt: +% \begin{macro}{\showfield@test} +% ein Testfeld \texttt{test} mit den Koordinaten: +% $(1\,\mathrm{cm},1\,\mathrm{cm})\times(10\,\mathrm{cm},15\,\mathrm{cm})$ +% \begin{macrocode} +\newcommand*{\showfield@test}{% + \showfield{1cm}{1cm}{10cm}{15cm}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@head} +% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstheadhpos} +% beachtet} +% das Feld \texttt{head} für den Kopfbereich des Briefbogens: +% \begin{macrocode} +\newcommand*{\showfield@head}{% + \ifdim\useplength{firstheadhpos}<\paperwidth + \ifdim \useplength{firstheadhpos}>-\paperwidth + \ifdim \useplength{firstheadhpos}<\z@ + \setlength\@tempskipa{\paperwidth}% + \addtolengthplength{\@tempskipa}{firstheadhpos}% + \addtolengthplength[-]{\@tempskipa}{firstheadwidth}% + \else + \setlength{\@tempskipa}{\useplength{firstheadhpos}}% + \fi + \else + \setlength\@tempskipa{\oddsidemargin}% + \addtolength\@tempskipa{1in}% + \fi + \else + \setlength\@tempskipa{.5\paperwidth}% + \addtolengthplength[-.5]{\@tempskipa}{firstheadwidth}% + \fi + \showfield{\@tempskipa}% + {\useplength{firstheadvpos}}% + {\useplength{firstheadwidth}}% + {-\headheight}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@foot} +% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstfoothpos} +% beachtet} +% das Feld \texttt{foot} für den Fußbereich des Briefbogens: +% \begin{macrocode} +\newcommand*{\showfield@foot}{% + \ifdim\useplength{firstfoothpos}<\paperwidth + \ifdim \useplength{firstfoothpos}>-\paperwidth + \ifdim \useplength{firstfoothpos}<\z@ + \setlength\@tempskipa{\paperwidth}% + \addtolengthplength{\@tempskipa}{firstfoothpos}% + \addtolengthplength[-]{\@tempskipa}{firstfootwidth}% + \else + \setlength{\@tempskipa}{\useplength{firstfoothpos}}% + \fi + \else + \setlength\@tempskipa{\oddsidemargin}% + \addtolength\@tempskipa{1in}% + \fi + \else + \setlength\@tempskipa{.5\paperwidth}% + \addtolengthplength[-.5]{\@tempskipa}{firstfootwidth}% + \fi + \showfield{\@tempskipa}% + {\useplength{firstfootvpos}}% + {\useplength{firstfootwidth}}% + {-\baselineskip}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@address} +% \changes{v3.07a}{2011/01/10}{Implementierung der Höhe an die Änderung in +% \textsf{scrlttr}~3.03b angepasst.} +% das Feld \texttt{address} für das Feld mit der Anschrift: +% \begin{macrocode} +\newcommand*{\showfield@address}{% + \setlengthtoplength{\@tempskipa}{toaddrhpos}% + \ifdim \@tempskipa<\z@ + \addtolength{\@tempskipa}{\paperwidth}% + \addtolengthplength[-]{\@tempskipa}{toaddrwidth}% + \fi + \showfield{\@tempskipa}{\useplength{toaddrvpos}}% + {\useplength{toaddrwidth}}% + {\dimexpr\useplength{toaddrheight}\relax}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@location} +% \changes{v3.07a}{2011/01/10}{Implementierung der Höhe an die Änderung in +% \textsf{scrlttr}~3.03b angepasst.} +% das Feld \texttt{location} mit der Absenderergänzung: +% \begin{macrocode} +\newcommand*{\showfield@location}{% + \begingroup + \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% + \ifdim \useplength{lochpos}=\z@% + \@setplength{lochpos}{\useplength{toaddrhpos}}% + \fi + \ifdim \useplength{locvpos}=\z@% + \@setplength{locvpos}{\useplength{toaddrvpos}}% + \fi + \ifdim \useplength{locheight}=\z@% + \@setplength{locheight}{\useplength{toaddrheight}}% + \fi + \setlengthtoplength[-]{\@tempskipa}{lochpos}% + \ifdim \@tempskipa<\z@ + \addtolength{\@tempskipa}{\paperwidth}% + \else + \addtolengthplength{\@tempskipa}{locwidth}% + \fi + \addtolengthplength[-]{\@tempskipa}{locwidth}% + \showfield{\@tempskipa}{\useplength{locvpos}}% + {\useplength{locwidth}}{\useplength{locheight}}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\showfield@refline} +% das Feld mit der Geschäftszeile: +% \begin{macrocode} +\newcommand*{\showfield@refline}{% + \begingroup + \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 + \setlength\@tempdima{\textwidth}% + \addtolengthplength[-]{\@tempdima}{refwidth}% + \setlength\@tempdimb{\oddsidemargin}% + \addtolength\@tempdimb{1in}% + \setlength{\@tempdimc}{\paperwidth}% + \addtolength{\@tempdimc}{-\textwidth}% + \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 + \showfield{\useplength{refhpos}}{\useplength{refvpos}}% + {\useplength{refwidth}}{-1.5\baselineskip}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\showenvelope} +% \begin{macro}{\@showenvelope} +% \begin{macro}{\@@showenvelope} +% \begin{macro}{\@@@showenvelope} +% Es kann auch ein Briefumschlag angezeigt werden. Dazu müssen verschiedene +% Parameter des Umschlags bekannt sein. Der Umschlag wird immer hochkant auf +% der aktuellen Seite angezeigt. Hierfür wird das Paket \textsf{graphicx} +% benötigt. Das Paket wird nur dann explizit geladen, wenn dies nicht bereits +% geschehen ist. Damit ist es möglich das Paket mit Optionen vor der LCO zu +% laden. +% \begin{macrocode} +\@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}} +\newcommand*{\showenvelope}{} +\newcommand*{\@@showenvelope}{} +\newcommand*{\@@@showenvelope}{} +\def\showenvelope(#1,#2){% + \@ifnextchar (%) + {\@showenvelope({#1},{#2})}% + {\@@@showenvelope({#1},{#2})}% +} +\def\@@@showenvelope(#1,#2){% + \begingroup + \def\@tempa{\endgroup}% + \ifdim \paperwidth>#1\relax + \LCOWarning{visualize}{% + \string\paperwidth\space > envelope width not supported}% + \else + \ifdim \paperheight>#2\relax + \ifdim .5\paperheight>#2\relax + \expandafter\ifdim \useplength{tfoldmarkvpos}>#2\relax + \LCOWarning{visualize}{% + tfoldmarkvpos > envelope height not supported}% + \else + \def\@tempa{\endgroup + \@showenvelope({#1},{#2})% + ({\dimexpr (#1-\paperwidth)/2\relax},% + {\dimexpr (#2-\expandafter\dimexpr + \useplength{tfoldmarkvpos}\relax)% + /2\relax})% + }% + \fi + \else + \def\@tempa{\endgroup + \@showenvelope({#1},{#2})% + ({\dimexpr (#1-\paperwidth)/2\relax},% + {\dimexpr (#2-.5\paperheight)/2\relax})% + }% + \fi + \else + \def\@tempa{\endgroup + \@showenvelope({#1},{#2})% + ({\dimexpr (#1-\paperwidth)/2\relax},% + {\dimexpr (#2-\paperheight)/2\relax})% + }% + \fi + \fi + \@tempa +} +\def\@showenvelope(#1,#2)(#3,#4){% + \@ifnextchar [%] + {\@@showenvelope({#1},{#2})({#3},{#4})}% + {\@@showenvelope({#1},{#2})({#3},{#4})[]}% +} +\def\@@showenvelope(#1,#2)(#3,#4)[#5]{% +% \end{macrocode} +% Die Argumente sind: +% \begin{enumerate} +% \item Breite des Umschlags, +% \item Höhe des Umschlags, +% \item Abstand des Briefbogens vom linken und rechten Rand des Umschlags, +% \item Abstand des Briefbogens vom oberen und unteren Rand des Umschlags, +% \item optionale weitere Anweisungen, zum Setzen von Elementen. +% \end{enumerate} +% \begin{macrocode} + \newpage + \vspace*{\fill} + \rotatebox{90}{% + \begin{picture}(0,0) + \begin{picture}(\LenToUnit{#1},\LenToUnit{#2})(0,\LenToUnit{#2}) + \newcommand*{\PlusHOffset}[1]{% + \dimexpr \expandafter\dimexpr ##1\relax + #3\relax + }% + \newcommand*{\MinusHOffset}[1]{% + \dimexpr \expandafter\dimexpr ##1\relax - #3\relax + }% + \newcommand*{\PlusVOffset}[1]{% + \dimexpr \expandafter\dimexpr ##1\relax + #4\relax + }% + \newcommand*{\MinusVOffset}[1]{% + \dimexpr \expandafter\dimexpr ##1\relax - #4\relax + }% + \newcommand{\AtEnvelopeUpperLeft}[1]{% + \put(\LenToUnit{\PlusHOffset\z@},\LenToUnit{\MinusVOffset{#2}}){##1}% + }% + \newcommand{\AtEnvelopeLowerLeft}[1]{% + \put(\LenToUnit{\PlusHOffset\z@},\LenToUnit{\PlusVOffset\z@}){##1}% + }% + \newcommand{\AtEnvelopeUpperRight}[1]{% + \put(\LenToUnit{\MinusHOffset{#1}},\LenToUnit{\MinusVOffset{#2}}){##1}% + }% + \newcommand{\AtEnvelopeLowerRight}[1]{% + \put(\LenToUnit{\MinusHOffset{#1}},\LenToUnit{\PlusVOffset\z@}){##1}% + }% + \newcommand*{\measuredIFrame}{}% + \def\measuredIFrame(##1,##2)(##3,##4){% + \put(\LenToUnit{##1},\LenToUnit{##2}){% + \measuredFrameLB({##3},{##4})% + }% + \put(\LenToUnit{\MinusHOffset\z@},% + \LenToUnit{\dimexpr ##2-.5mm\relax}){% + \measureLineHB{\PlusHOffset{##1}}% + }% + \put(\LenToUnit{\dimexpr ##1+##3\relax},% + \LenToUnit{\dimexpr ##2-.5mm\relax}){% + \measureLineHB{\dimexpr #1-% + \PlusHOffset{\dimexpr ##1+##3\relax}\relax}% + }% + \put(\LenToUnit{\dimexpr ##1-.5mm\relax},% + \LenToUnit{\dimexpr ##2+##4\relax}){% + \measureLineVL{\PlusVOffset{\dimexpr -##2-##4\relax}}% + }% + \put(\LenToUnit{\dimexpr ##1-.5mm\relax},% + \LenToUnit{\PlusVOffset{-#2}}){% + \measureLineVL{\dimexpr #2-% + \PlusVOffset{\dimexpr -##2\relax}\relax}% + }% + }% + \put(0,0){% + \thicklines + \usekomafont{envelope}% + \measuredFrameLB({#1},{#2})% + }% + \AtEnvelopeLowerLeft{% + \usekomafont{letter}% + \dashbox{\LenToUnit{1mm}}% + (\LenToUnit{\MinusHOffset{\MinusHOffset{#1}}},% + \LenToUnit{\MinusVOffset{\MinusVOffset{#2}}}){}% + }% + \expandafter\ifdim \useplength{toaddrhpos}<\z@ + \AtEnvelopeUpperLeft{% + \thicklines + \usekomafont{envelope}% + \measuredIFrame(\expandafter\dimexpr \useplength{toaddrhpos}+ + \MinusHOffset{\MinusHOffset{#1}}\relax,% + -\dimexpr % + \expandafter\dimexpr\useplength{toaddrvpos}\relax + + + \expandafter + \dimexpr\useplength{toaddrheight}\relax + \relax)% + (\useplength{toaddrwidth},\useplength{toaddrheight})% + }% + \else + \AtEnvelopeUpperLeft{% + \thicklines + \usekomafont{envelope}% + \measuredIFrame(\useplength{toaddrhpos},% + -\dimexpr % + \expandafter\dimexpr\useplength{toaddrvpos}\relax + + + \expandafter + \dimexpr\useplength{toaddrheight}\relax + \relax)% + (\useplength{toaddrwidth},\useplength{toaddrheight})% + }% + \fi + \AtEnvelopeUpperLeft{#5}% + \end{picture} + \end{picture} + }% + \newpage +} +% \end{macrocode} +% \begin{KOMAfont}{envelope} +% Farbe des Umschlagrahmens. +% \begin{macrocode} +\newkomafont{envelope}{\normalcolor} +% \end{macrocode} +% \end{KOMAfont} +% \begin{KOMAfont}{letter} +% Farbe des getrichelten Briefbogens im Umschlag +\newkomafont{letter}{\normalcolor} +% \end{KOMAfont} +% \begin{macro}{\unmeasuredFrame} +% Ein Rahmen ohne Maßlinien. +% \begin{macrocode} +\newcommand*{\unmeasuredFrame}{} +\def\unmeasuredFrame(#1,#2){% + \put(0,0){\line(1,0){\LenToUnit{#1}}}% + \put(\LenToUnit{#1},0){\line(0,1){\LenToUnit{#2}}}% + \put(\LenToUnit{#1},\LenToUnit{#2}){\line(-1,0){\LenToUnit{#1}}}% + \put(0,\LenToUnit{#2}){\line(0,-1){\LenToUnit{#2}}}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\measuredFrameLB} +% \begin{macro}{\measuredFrameLT} +% \begin{macro}{\measuredFrameRB} +% \begin{macro}{\measuredFrameRT} +% Die Maßlinien für ein Rechteck. +% \begin{macrocode} +\newcommand*{\measuredFrameLB}{} +\def\measuredFrameLB(#1,#2){% + \unmeasuredFrame({#1},{#2})% + \put(\LenToUnit{-.5mm},0){\measureLineVL{#2}}% + \put(0,\LenToUnit{-.5mm}){\measureLineHB{#1}}% +} +\newcommand*{\measuredFrameLT}{} +\def\measuredFrameLT(#1,#2){% + \unmeasuredFrame({#1},{#2})% + \put(\LenToUnit{-.5mm},0){\measureLineVL{#2}}% + \put(0,\LenToUnit{\expandafter\dimexpr #2+.5mm\relax}){\measureLineHT{#1}}% +} +\newcommand*{\measuredFrameRB}{} +\def\measuredFrameRB(#1,#2){% + \unmeasuredFrame({#1},{#2})% + \put(\LenToUnit{\expandafter\dimexpr #1+.5mm\relax},0){\measureLineVR{#2}}% + \put(0,\LenToUnit{-.5mm}){\measureLineHB{#1}}% +} +\newcommand*{\measuredFrameRT}{} +\def\measuredFrameRT(#1,#2){% + \unmeasuredFrame({#1},{#2})% + \put(\LenToUnit{\expandafter\dimexpr #1+.5mm\relax},0){\measureLineVR{#2}}% + \put(0,\LenToUnit{\expandafter\dimexpr #2+.5mm\relax}){\measureLineHT{#1}}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\measureLineV} +% Vertikale Maßlinie ohne Beschriftung: +% \begin{macrocode} +\newcommand*{\measureLineV}[1]{% + \begin{picture}(0,0) + \thinlines + \usekomafont{measure}% + \put(0,0){\vector(0,1){\LenToUnit{#1}}}% + \put(0,\LenToUnit{#1}){\vector(0,-1){\LenToUnit{#1}}}% + \end{picture} +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\measureLineVL} +% \begin{macro}{\measureLineVR} +% Vertikale Maßlinie mit Beschriftung links bzw. rechts. +% \begin{macrocode} +\newcommand*{\measureLineVL}[1]{% + \begin{picture}(0,0) + \usekomafont{measure}% + \put(0,0){\measureLineV{#1}}% + \put(0,0){\makebox(0,\LenToUnit{#1})[r]{\ValPerUnit{#1}}}% + \end{picture} +} +\newcommand*{\measureLineVR}[1]{% + \begin{picture}(0,0) + \usekomafont{measure}% + \put(0,0){\measureLineV{#1}}% + \put(0,0){\makebox(0,\LenToUnit{#1})[l]{\ValPerUnit{#1}}}% + \end{picture} +} +% \end{macrocode} +% \begin{macro}{\ValPerUnit} +% \begin{macro}{\unitfactor} +% Zeige die Längen in \cs{unitlength} mit einer Genauigkeit von +% 1/\cs{unitfactor} an. +% \begin{macrocode} +\newcommand*{\ValPerUnit}[1]{% + \begingroup + \setlength{\@tempdima}{% + \dimexpr #1/(\unitlength/\unitfactor)*\p@/\unitfactor\relax + }% + \strip@pt\@tempdima + \endgroup +} +\newcommand*{\unitfactor}{1} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\measureLineH} +% Horizontale Maßlinie ohne Beschriftung: +% \begin{macrocode} +\newcommand*{\measureLineH}[1]{% + \begin{picture}(0,0) + \usekomafont{measure}% + \put(0,0){\vector(1,0){\LenToUnit{#1}}}% + \put(\LenToUnit{#1},0){\vector(-1,0){\LenToUnit{#1}}}% + \end{picture} +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\measureLineHB} +% \begin{macro}{\measureLineHT} +% Horizontale Maßlinie mit Beschriftung darunter bzw. oben. +% \begin{macrocode} +\newcommand*{\measureLineHB}[1]{% + \begin{picture}(0,0) + \usekomafont{measure}% + \put(0,0){\measureLineH{#1}}% + \put(0,\LenToUnit{\dimexpr -\ht\strutbox-.5mm\relax}){% + \makebox(\LenToUnit{#1},\LenToUnit{\baselineskip})[c]{\ValPerUnit{#1}}}% + \end{picture} +} +\newcommand*{\measureLineHT}[1]{% + \begin{picture}(0,0) + \usekomafont{measure}% + \put(0,0){\measureLineH{#1}}% + \put(0,0){% + \makebox(\LenToUnit{#1},\LenToUnit{\baselineskip})[c]{\ValPerUnit{#1}}}% + \end{picture} +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{KOMAfont}{measure} +% Farbe der Maßlinien. +% \begin{macrocode} +\newkomafont{measure}{\normalcolor} +% \end{macrocode} +% \end{KOMAfont} +% \end{macro} +% +% \begin{macro}{\showISOenvelope} +% Zeigt einen DIN/ISO C4, C5, DL=C5/6, C6/5 Umschlag. +% \begin{macrocode} +\newcommand*{\showISOenvelope}[1]{% + \ifstr{#1}{C4}{% + \showenvelope(324mm,229mm)% + }{% + \ifstr{#1}{C5}{% + \showenvelope(229mm,162mm)% + }{% + \ifstr{#1}{C5/6}{% + \showenvelope(220mm,110mm)% + }{% + \ifstr{#1}{DL}{% + \showenvelope(220mm,110mm)% + }{% + \ifstr{#1}{C6/5}{% + \showenvelope(229mm,114mm)% + }{% + \ifstr{#1}{C6}{% + \showenvelope(162mm,114mm)% + }{% + \LCOWarning{visualize}{envelope size `ISO #1' unsupported}% + }% + }% + }% + }% + }% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\showUScommercial} +% Zeige ein US commercial Umschlag der Nummer 9 und 10 +% \begin{macrocode} +\newcommand*{\showUScommercial}[1]{% + \ifstr{#1}{9}{% + \showenvelope(8.875in,3.875in)% + }{% + \ifstr{#1}{10}{% + \showenvelope(9.5in,4.125in)% + }{% + \LCOWarning{visualize}{envelope size `US commercial #1' unsupported}% + }% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\showUScheck} +% Zeige einen US check Umschag. +% \begin{macrocode} +\newcommand*{\showUScheck}{% + \showenvelope(8.625in,3.625in)% +} +% \end{macrocode} +% \end{macro} +% +% \iffalse +% +%<*!visualize> +% \fi +% +% \begin{macro}{\showUSletterCixDW} +% Ein Umschlag im Format commercial No. 9 mit 2 Fenstern, +% Absenderfenster $3\frac{1}{2}\,\mathrm{in}\times\frac{7}{8}\,\mathrm{in}$, +% $\frac{5}{16}\,\mathrm{in}$ von links und $2\frac{1}{2}\,\mathrm{in}$ von +% unten. +% \begin{macrocode} +%<*UScommercial9DW> +\newcommand*{\showUSletterCixDW}{% + \showUScommercial9[{% + \thicklines + \usekomafont{envelope}% + \measuredIFrame({\dimexpr (\paperwidth- + \expandafter\dimexpr \useplength{firstheadwidth}\relax% + )/2\relax},% + -\expandafter\dimexpr\useplength{firstheadvpos}\relax)% + (3.5in,.875in)% + }]% +} +% +% \end{macrocode} +% \end{macro} +% +% \iffalse +% +% +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-letterclassoptions.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-listsandtabulars.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-listsandtabulars.dtx new file mode 100644 index 00000000000..16b7298b229 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-listsandtabulars.dtx @@ -0,0 +1,511 @@ +% \CheckSum{293} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-listsandtabulars.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-listsandtabulars.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-listsandtabulars.dtx 1502 2013-11-06 11:00:12Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-listsandtabulars.dtx}[2013/10/26 v3.12 KOMA-Script + (lists and tabulars)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-listsandtabulars.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei + \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/07/01}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Listen und Tabellen} +% +% \KOMAScript{} verfügt über einige zusätzliche Listenumgebungen. Ein +% Teil dieser Listenumgebungen ist nicht sofort auf den ersten Blick +% als solche zu erkennen, so wie dies schon bei den Standardklassen +% beispielsweise mit \texttt{quote} und \texttt{quotation} der Fall +% ist. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Optionen} +% Diese Umgebungen werden nicht durch Optionen beeinflusst. +% +% +% \iffalse +% +%<*body> +%<*class> +% \fi +% +% +% \subsection{Ränder in Listen} +% +% \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ür die Listenumgebungen in verschiedenen Stufen müssen Ränder +% definiert werden. Hinzu kommen noch die Breite eines Labels und der +% Abstand nach einem Label. +% \begin{macrocode} +%<*!letter> +\if@twocolumn + \setlength{\leftmargini}{2em} +\else +% + \setlength{\leftmargini}{2.5em} +%\fi +\setlength{\leftmarginii}{2.2em} +\setlength{\leftmarginiii}{1.87em} +\setlength{\leftmarginiv}{1.7em} +%<*!letter> +\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} +% \end{macrocode} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% +% Weil die Gelegenheit so günstig ist, setzen wir hier auch gleich +% noch ein paar \emph{penalties} (Erlaubsnispunkte). +% \begin{macrocode} +\@beginparpenalty=-\@lowpenalty +\@endparpenalty =-\@lowpenalty +\@itempenalty =-\@lowpenalty +% \end{macrocode} +% +% +% \subsection{Verschiedene Längen für Tabellen, Arrays und Tabulatoren} +% +% Vorbemerkung: Arrays sind im Prinzip Tabellen zur Verwendung im +% mathemathischen Modus. +% +% \begin{Length}{arraycolsep} +% \begin{Length}{tabcolsep} +% \begin{Length}{arrayrulewidth} +% \begin{Length}{doublerulewidth} +% \begin{Length}{tabbingsep} +% Bei diesen Längen handelt es sich um die Abstände der Spalten in +% \texttt{array}- und \texttt{tabular}-Umgebungen, sowie um die Breite +% und den Abstand der Trennlinien. Hinzu kommt noch der \cs{'} Abstand +% in \texttt{tabbing}-Umgebungen. +% \begin{macrocode} +\setlength\arraycolsep{5\p@} +\setlength\tabcolsep{6\p@} +\setlength\arrayrulewidth{.4\p@} +\setlength\doublerulesep{2\p@} +\setlength\tabbingsep{\labelsep} +% \end{macrocode} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% +% +% \subsection{Marken in Listen} +% +% \begin{macro}{\theenumi} +% \begin{macro}{\theenumii} +% \begin{macro}{\theenumiii} +% \begin{macro}{\theenumiv} +% \begin{macro}{\labelenumi} +% \begin{macro}{\labelenumii} +% \changes{v2.4m}{1997/02/28}{öffnende Klammer entsprechend 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} +% Für die numerierten Listenumgebungen müssen Marken bzw. Numerierungen +% festgelegt werden. Dazu wird eine Darstellung der Zähler, ihr Prefix +% und ihre Labeldarstellung neu definiert. +% \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} +% +% +% \subsection{Definition der Umgebungen} +% +% \begin{environment}{description} +% Die \texttt{description}-Umgebung dient der Beschreibung von +% einzelnen Begriffen. Der Begriff aus dem optionalen Argument des +% \cs{item}-Befehls wird in einem speziellen Font, dem \cs{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} +% \begin{macro}{\labelinglabel} +% \changes{v3.02}{2009/01/01}{Neue Elemente \texttt{labelinglabel} und +% \texttt{labelingseparator} werden verwendet} +% \changes{v3.02c}{2009/01/28}{\texttt{labelinglabel} und +% \texttt{labelingseparator} werden nun auch zur Berechnung der Breite +% verwendet} +% \changes{v3.03a}{2009/04/02}{Argumente in der Berechnung der Label-Breite +% korrigiert} +% Die \cs{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 +% \cs{item}-Marke und \cs{item}-Beschreibung. Das eigentliche Argument +% wird für die Ermittlung der Einrückung des Beschreibungstextes +% bzw. des Trenntextes benötigt. +% \begin{macrocode} +% +\newenvironment{labeling}[2][]{% + \def\sc@septext{#1}% + \list{}{\settowidth{\labelwidth}{{% + \usekomafont{labelinglabel}{#2% + \usekomafont{labelingseparator}{\sc@septext}}% + }}% + \leftmargin\labelwidth \advance\leftmargin by \labelsep + \let\makelabel\labelinglabel + }% +}{% + \endlist +} +\newcommand\labelinglabel[1]{% + \usekomafont{labelinglabel}{#1\hfil + \usekomafont{labelingseparator}{\sc@septext}}% +} +%<*class> +% \end{macrocode} +% \end{macro} +% \end{environment} +% +% \begin{environment}{verse} +% \changes{v2.3g}{1996/01/14}{\cs{item} muss keine "`[]"'-Klammern +% mehr verarbeiten} +% Die Verse-Umgebung ist für Zitate in Gedichtform und ähnliches +% gedacht. +% \begin{macrocode} +\newenvironment{verse}{% + \let\\=\@centercr + \list{}{\itemsep=\z@ + \itemindent=-1.5em + \listparindent=\itemindent + \rightmargin=\leftmargin + \advance\leftmargin by1.5em + }% + \item\relax +}{% + \endlist +} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{quotation} +% \changes{v2.3g}{1996/01/14}{\cs{item} muss keine "`[]"'-Klammern +% mehr verarbeiten} +% \begin{environment}{quote} +% \changes{v2.3g}{1996/01/14}{\cs{item} muss keine "`[]"'-Klammern +% mehr verarbeiten} +% Die \texttt{quotation}- und die \texttt{quote}-Umgebung erlauben +% rechts und links eingerückte Passagen. Absätze werden entweder in +% der ersten Zeile zusätzlich eingerückt 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} +% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} korrigiert} +% \begin{environment}{addmargin*} +% \changes{v2.8q}{2001/11/29}{neue Umgebung} +% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} korrigiert} +% Diese beiden Umgebungen ähneln \texttt{quote} und +% \texttt{quotation}. Dabei werden Absatzeinzug und Absatzabstand +% nicht verändert. Die einzige Veränderung besteht in den Rändern. Wie +% stark die Ränder verändert werden, hängt dabei von den Parametern +% ab. Ist nur der obligatorische Parameter angegeben, werden die +% Ränder auf beiden Seiten um diesen Wert vergrößert. Ist ein +% optionaler Parameter angegeben, so ist dies bei \texttt{addmargin} +% der linke und bei \texttt{addmargin*} der innere Rand. Der +% obligatorische Parameter ist dann der andere Rand. Diese +% Entscheidung ist das einzige, was die Umgebungen selbst erledigen +% müssen. +% \begin{macro}{\@addmargin} +% \changes{v2.8q}{2001/11/29}{neu (intern)} +% \changes{v2.95}{2002/07/01}{\cs{item} muss keine "`[]"'-Klammern +% mehr verarbeiten} +% \changes{v2.9q}{2003/03/24}{\cs{labelsep} bleibt unverändert} +% \changes{v2.95a}{2006/07/20}{\cs{@tmpcnta} bleibt unverändert} +% \changes{v3.05b}{2010/04/29}{\cs{partopsep} muss auf 0 statt \cs{parskip} +% gesetzt werden, weil es zu \cs{topsep} addiert wird} +% Der Rest wird von diesem Makro erledigt. +% \begin{macro}{\scr@addmargin@startpage} +% \changes{v3.12}{2013/10/26}{neu (intern, lokal)} +% \changes{v3.12}{2013/10/26}{Test auf Seitenumbruch in \texttt{addmargin*}} +% \begin{macrocode} +% +\newenvironment{addmargin}{% + \@tempswafalse\@addmargin +}{% + \advance\@listdepth\@ne + \endlist +} +\newenvironment{addmargin*}{% + \@tempswafalse + \if@twoside\ifthispageodd{}{\@tempswatrue}\fi + \edef\scr@addmargin@startpage{\csname tpo@\scr@tpo\endcsname}% + \@addmargin +}{% + \unskip\nobreak\ifthispageodd{}{}% + \expandafter\ifx\csname tpo@\scr@tpo\endcsname\scr@addmargin@startpage\else +% \ClassWarning{\KOMAClassName}{% +% \PackageWarning{scrextend}{% + page break inside `addmargin*' environment.\MessageBreak + A `addmargin*' environment starting on page + \scr@addmargin@startpage\MessageBreak + ends on page \csname tpo@\scr@tpo\endcsname.\MessageBreak + This will result in potential wrong margins on\MessageBreak + every other page.\MessageBreak + So maybe you should change the `addmargin*'\MessageBreak + environment, that ends% + }% + \fi + \advance\@listdepth\@ne + \endlist +} +\newcommand*{\@addmargin}[2][\@tempa]{% + \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}{\z@}% + \let\makelabel\@gobble + \setlength{\labelwidth}{\z@}% + \advance\@listdepth\m@ne + }% + \item\relax% +} +%<*class> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{environment} +% \end{environment} +% +% +% \subsection{Schriftarten für Listen} +% +% \begin{macro}{\descfont} +% Dies ist die Schriftart, in der das Label der Einträge in eine +% \texttt{description}-Umgebung gesetzt wird. Das Makro ist als intern +% zu betrachten. Anwender habe stattdessen das entsprechende Element +% zu verwenden. +% \begin{macrocode} +\newcommand*\descfont{\sffamily\bfseries} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scr@fnt@descriptionlabel} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{descriptionlabel}} +% Das Element auf das \cs{descfont} angewandt wird: +% \begin{macrocode} +\newcommand*{\scr@fnt@descriptionlabel}{\descfont} +% \end{macrocode} +% \end{macro} +% +% \begin{KOMAfont}{labelinglabel} +% \changes{v3.02}{2009/01/01}{neues Element} +% \begin{KOMAfont}{labelingseparator} +% \changes{v3.02}{2009/01/01}{neues Element} +% Das Label einer \texttt{labeling}-Umgebung wird in eigener Schrift +% gesetzt. Innerhalb des Labels wird dann das Trennzeichen ebenfalls mit +% eigener Schrift gesetzt. Voreingestellt ist in beiden Fällen keine Änderung. +% \begin{macrocode} +% +\newkomafont{labelinglabel}{} +\newkomafont{labelingseparator}{} +%<*class> +% \end{macrocode} +% \end{KOMAfont} +% \end{KOMAfont} +% +% +% \iffalse +% +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-listsandtabulars.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-listsof.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-listsof.dtx new file mode 100644 index 00000000000..f5433c50b07 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-listsof.dtx @@ -0,0 +1,961 @@ +% \CheckSum{457} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-listsof.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-listsof.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-listsof.dtx 1522 2013-11-22 08:11:42Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-listsof.dtx}[2013/11/22 v3.12 KOMA-Script + (lists of)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-listsof.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/06/28}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Verzeichnisse} +% +% \LaTeX{} Klassen bieten eine ganze Reihe von Verzeichnissen. Thema +% dieses Abschnitts sind die Verzeichnisse der +% Gleitumgebungen und das Inhaltsverzeichnis. \KOMAScript{} bietet +% selbst das Verzeichnis der Gleittabellen und der Abbildungen. Es +% unterstützt außerdem die Verzeichnisse der mit dem \textsf{float} +% Paket angelegten Gleitumgebungen. +% +% Briefe verfügen über keine Verzeichnisse. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*!letter> +% \fi +% +% \iffalse +%<*option> +% \fi +% +% +% \subsection{Optionen für das Inhaltsverzeichnis} +% +% Einige Anweisungen und Einstellungen werden bereits für die Optionen +% benötigt und deshalb vorab definiert. +% +% \begin{macro}{\if@tocleft} +% \changes{v2.8q}{2001/11/14}{neuer Schalter} +% \changes{v2.98c}{2008/03/05}{wird früher definiert} +% \begin{macro}{\@toclefttrue} +% \begin{macro}{\@tocleftfalse} +% Die Wahl der Darstellungsart für das Inhaltsverzeichnis wird in einem +% Schalter gespeichert. +% \begin{macrocode} +\newif\if@tocleft +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{option}{toc} +% \changes{v2.98c}{2008/03/04}{Neue Option}^^A +% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit +% \cs{FamilyKeyStateProcessed}}^^A +% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} durch +% \cs{KOMAExecuteOptions} ersetzt}^^A +% Dies ist die zentrale Option für Einstellungen des Inhaltsverzeichnisses. +% \begin{macrocode} +\KOMA@key{toc}{% + \KOMA@set@ncmdkey{toc}{@tempa}{% +% \end{macrocode} +% Es gibt Werte, um zu bestimmen, welche Verzeichnisse ins Inhaltsverzeichis +% aufgenommen werden. Eigentlich sind das Optionen der jeweiligen +% Verzeichnisses, aber das muss sich der Anwender ja nicht unbedingt merken. +% \begin{macrocode} + {noindex}{0},{noidx}{0},% + {index}{1},{idx}{1},% + {nolistof}{2},% + {listof}{3},% + {listofnumbered}{4},{numberedlistof}{4},% + {nobibliography}{5},{nobib}{5},% + {bibliography}{6},{bib}{6},% + {bibliographynumbered}{7},{bibnumbered}{7},{numberedbibliography}{7},% + {numberedbib}{7},% +% \end{macrocode} +% Dann gibt es Optionen für die Darstellungsarten des +% Inhaltsverzeichnisses. Die Variante \texttt{graduated} ist die altbekannte +% Variante. Bei \texttt{flat} hingegen wird eine tabellenartige Form +% verwendet, bei der die Nummern, Texte und Seitenzahlen jeweils untereinander +% stehen. Der für die Nummern benötigte Platz wird dabei automatisch +% ermittelt. +% \begin{macrocode} + {flat}{8},{left}{8},% + {graduated}{9},{indent}{9},{indented}{9},% +% \end{macrocode} +% \changes{v3.12}{2014/09/24}{neue Werte \texttt{numberline} und +% \texttt{nonumberline}}%^^A +% Außerdem können die nicht nummerierten Einträge ggf. ebenfalls mit +% \cs{numberline} eingerückt werden. Das geht über ein Feature von +% \textsf{tocbasic}. +% \begin{macrocode} + {indenttextentries}{10},{indentunnumbered}{10},{numberline}{10},% + {leftaligntextentries}{11},{leftalignunnumbered}{11},{nonumberline}{11}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase \@tempa\relax + \KOMAExecuteOptions{index=notoc}% + \or + \KOMAExecuteOptions{index=totoc}% + \or + \KOMAExecuteOptions{listof=notoc}% + \or + \KOMAExecuteOptions{listof=totoc}% + \or + \KOMAExecuteOptions{listof=numbered}% + \or + \KOMAExecuteOptions{bibliography=nottotoc}% + \or + \KOMAExecuteOptions{bibliography=totoc}% + \or + \KOMAExecuteOptions{bibliography=totocnumbered}% + \or + \@toclefttrue + \or + \@tocleftfalse + \or + \setuptoc{toc}{numberline}% + \or + \unsettoc{toc}{numberline}% + \fi + \fi +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{tocleft} +% \changes{v2.8q}{2001/11/14}{neue Option} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{tocindent} +% \changes{v2.8q}{2001/11/14}{neue Option} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{tocleft}{toc=flat} +\KOMA@DeclareDeprecatedOption{tocindent}{toc=graduated} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \subsection{Optionen für die Gleitumgebungen} +% +% Einige Anweisungen und Einstellungen werden bereits für die Optionen +% benötigt und deshalb vorab definiert. +% +% \begin{macro}{\float@@listhead} +% \changes{v2.98c}{2008/03/05}{neu (intern)} +% Setzt nur die Überschrift und sonst nichts. Dabei wird die Überschrift als +% einziges Argument übergeben. +% \begin{macrocode} +\newcommand*{\float@@listhead}{% +%
\section* +% \chapter* +} +% \end{macrocode} +% \end{macro} +% +% \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{option}{listof} +% \changes{v2.98c}{2008/03/05}{Neue Option}^^A +% \changes{v3.06}{2010/06/02}{Alle über \textsf{tocbasic} realisierten +% Einstellungen wirken sich auch auf Verzeichnisse des Besitzers +% \texttt{float} aus, die erst später unter Kontrolle von +% \textsf{tocbasic} gestellt werden.}^^A +% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit +% \cs{FamilyKeyStateProcessed}}^^A +% \changes{v3.12}{2013/06/26}{\cs{KOMA@options} durch +% \cs{KOMAExecuteOptions} ersetzt}^^A +% Dies ist die zentrale Option für die Gleitumgebungsverzeichnisse. +% \begin{macrocode} +\KOMA@key{listof}{% + \KOMA@set@ncmdkey{listof}{@tempa}{% +% \end{macrocode} +% Es gibt Werte, die dafür sorgen, dass die Verzeichnisse der Gleitumgebungen +% im Inhalsverzeichnis aufgeführt werden. Dazu muss nur \cs{float@@listhead} +% umdefiniert werden. +% \begin{macrocode} + {notoc}{0},{nottotoc}{0},{plainheading}{0},% + {totoc}{1},{toc}{1},{notnumbered}{1},% + {numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},% + {numberedtoc}{2},% +% \end{macrocode} +% Dann gibt es Optionen für die Darstellungsarten des +% Inhaltsverzeichnisses. Die Variante \texttt{graduated} ist die altbekannte +% Variante. Bei \texttt{flat} hingegen wird eine tabellenartige Form +% verwendet, bei der die Nummern, Texte und Seitenzahlen jeweils untereinander +% stehen. Der für die Nummern benötigte Platz wird dabei automatisch +% ermittelt. +% \begin{macrocode} + {flat}{3},{left}{3},% + {graduated}{4},{indent}{4},{indented}{4},% +% \end{macrocode} +% Dann gibt es eine Option, mit der die Gliederungsebene der Verzeichnisse +% verändert werden kann. +% \begin{macrocode} + {leveldown}{5}, +% \end{macrocode} +% \changes{v3.06}{2010/05/18}{neuer Wert \texttt{entryprefix}} +% Dann gibt es eine Option, mit der die Einträge in die Verzeichnisse mit +% einem Prefix versehen werden können, soweit ein solcher Prefix +% existiert. Dieser Wert beinhaltet gleichzeitig auch den Wert \texttt{flat}. +% \begin{macrocode} + {entryprefix}{6}, +% \end{macrocode} +% \changes{v3.12}{2014/09/24}{neue Werte \texttt{numberline} und +% \texttt{nonumberline}}%^^A +% Außerdem können die nicht nummerierten Einträge ggf. ebenfalls mit +% \cs{numberline} eingerückt werden. Das geht über ein Feature von +% \textsf{tocbasic}. +% \begin{macrocode} + {indenttextentries}{7},{indentunnumbered}{7},{numberline}{7},% + {leftaligntextentries}{8},{leftalignunnumbered}{8},{nonumberline}{8},% +% \end{macrocode} +% Dann gibt es Optionen, für die Unterteilung auf Kapitelebene. Allerdings nur +% für \textsf{scrbook} und \textsf{scrreprt}. +% \begin{macrocode} +%<*book|report> + {chapterentry}{9},{withchapterentry}{9},% + {nochaptergap}{10},{ignorechapter}{10},% + {chaptergapsmall}{11},{smallchaptergap}{11},% + {chaptergapline}{12},{onelinechaptergap}{12}% +% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase \@tempa\relax + \renewcommand*{\float@@listhead}{% +%
\section* +% \chapter* + }% + \doforeachtocfile[float]{% + \unsettoc{\@currext}{numbered}% + \unsettoc{\@currext}{totoc}% + }% + \AtAddToTocList[float]{% + \unsettoc{\@currext}{numbered}% + \unsettoc{\@currext}{totoc}% + }% + \or% totoc + \renewcommand*{\float@@listhead}{% +%
\addsec +% \addchap + }% + \doforeachtocfile[float]{% + \unsettoc{\@currext}{numbered}% + \setuptoc{\@currext}{totoc}% + }% + \AtAddToTocList[float]{% + \unsettoc{\@currext}{numbered}% + \setuptoc{\@currext}{totoc}% + }% + \or% numbered + \renewcommand*{\float@@listhead}{% +%
\section +% \chapter + }% + \doforeachtocfile[float]{% + \setuptoc{\@currext}{numbered}% + \setuptoc{\@currext}{totoc}% + }% + \AtAddToTocList[float]{% + \setuptoc{\@currext}{numbered}% + \setuptoc{\@currext}{totoc}% + }% + \or% flat + \@dynlisttrue + \or% graduated + \@dynlistfalse + \or% leveldown + \doforeachtocfile[float]{% + \setuptoc{\@currext}{leveldown}% + }% + \AtAddToTocList[float]{% + \setuptoc{\@currext}{leveldown}% + }% + \or% entryprefix + \@dynlisttrue + \doforeachtocfile[float]{% + \BeforeStartingTOC[\@currext]{% + \scr@ifundefinedorrelax{listof\@currext entryname}{}{% + \expandafter\def\expandafter\numberline@prefix + \expandafter{\csname listof\@currext entryname\endcsname + \nobreakspace}% + }% + }% + }% + \AtAddToTocList[float]{% + \BeforeStartingTOC[\@currext]{% + \scr@ifundefinedorrelax{listof\@currext entryname}{}{% + \expandafter\def\expandafter\numberline@prefix + \expandafter{\csname listof\@currext entryname\endcsname + \nobreakspace}% + }% + }% + }% + \or% numberline + \doforeachtocfile[float]{% + \setuptoc{\@currext}{numberline}% + }% + \AtAddToTocList[float]{% + \setuptoc{\@currext}{numberline}% + } + \or% nonumberline + \doforeachtocfile[float]{% + \unsettoc{\@currext}{numberline}% + }% + \AtAddToTocList[float]{% + \unsettoc{\@currext}{numberline}% + } +%<*book|report> + \or% chapterentry + \KOMAExecuteOptions{chapteratlists=entry}% + \or% chaptergap + \KOMAExecuteOptions{chapteratlists=\z@}% + \or% chaptergapsmall + \KOMAExecuteOptions{chapteratlists=10\p@}% + \or% chaptergapline + \KOMAExecuteOptions{chapteratlists=\baselineskip}% +% + \fi + \fi +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{liststotoc} +% \changes{v2.3h}{1995/01/21}{neue Option} +% \changes{v2.8b}{2001/06/26}{Verwendung von \cs{float@headings}} +% \changes{v2.4a}{1996/03/13}{\cs{listtabelname} durch +% \cs{listtablename} ersetzt} +% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in +% \cs{float@listhead}} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{liststotoc}{listof=totoc} +% \end{macrocode} +% \end{option} +% +% \begin{option}{liststotocnumbered} +% \changes{v2.8q}{2002/04/08}{dem langjährigen Druck nachgegeben} +% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{liststotocnumbered}{listof=numbered} +% \end{macrocode} +% \end{option} +% +% +% \begin{option}{listsleft} +% \changes{v2.8q}{2001/11/14}{neue Option} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{listsindent} +% \changes{v2.8q}{2001/11/14}{neue Option} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{listsleft}{listof=flat} +\KOMA@DeclareDeprecatedOption{listsindent}{listof=graduated} +% \end{macrocode} +% \end{option} +% \end{option} +% +% \begin{option}{chapteratlists} +% \changes{v2.96a}{2006/12/03}{neue Option}%^^A +% \changes{v2.98c}{2008/03/05}{nicht mehr bei \textsf{scrartcl}}%^^A +% \begin{macro}{\if@chaptertolists} +% \changes{v2.96a}{2006/12/03}{neuer Schalter}%^^A +% \changes{v3.12}{2013/09/24}{Verzeichnisse werden nicht in Verzeichnisse +% eingetragen}%^^A +% \begin{macro}{\@chapterlistsgap} +% \changes{v2.96a}{2006/12/03}{neues Macro (intern)}%^^A +% Option, um einzugstellen, ob Kapitel in den Verzeichnissen der +% Gleitumgebungen Spuren hinterlassen. Man kann wahlweise Lücken einstellen +% (Voreinstellung mit 10\,pt) oder die Kapitelüberschrift eintragen lassen. +% Der Schalter gibt dabei an, ob die Kapitelüberschrift eingetragen werden +% soll. Das interne Hilfsmakro \cs{@chapterlistsgap} enthält den gewünschten +% Abstand. +% \begin{macrocode} +%<*book|report> +\newcommand*{\@chapterlistsgap}{10\p@} +\newif\if@chaptertolists\@chaptertolistsfalse +\KOMA@key{chapteratlists}[entry]{% + \ifstr{#1}{entry}{% + \@chaptertoliststrue\renewcommand*{\@chapterlistsgap}{\z@}% + }{% + \@chaptertolistsfalse\renewcommand*{\@chapterlistsgap}{#1}% + }% +} +\BeforeTOCHead{\@chaptertolistsfalse} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{option} +% +% \iffalse +% +%<*body> +% \fi +% +% \subsection{Definitionen für alle Verzeichnisse} +% +% Einige Definitionen werden von unterschiedlichen Verzeichnissen +% verwendet. Diese sind hier zu finden. +% +% \changes{v3.06}{2010/06/02}{einschalten des \texttt{tocbasic}-Features +% \texttt{chapteratlist} in die Datei \texttt{scrkernel-listsof.dtx} verschoben} +% Bei Büchern wird für jedes Verzeichnis des Besitzers \texttt{float} das +% Feature \texttt{chapteratlist} gesetzt. Das gilt auch für solche +% Verzeichnisse, die noch gar nicht definiert sind. +% \begin{macrocode} +%<*book|report> +\doforeachtocfile[float]{% + \setuptoc{\@currext}{chapteratlist}% +} +\AtAddToTocList[float]{% + \setuptoc{\@currext}{chapteratlist}% +} +% +% \end{macrocode} +% \begin{macro}{\numberline} +% \changes{v2.3c}{1995/08/06}{\cs{numberline} umdefiniert}^^A +% \changes{v3.06}{2010/05/18}{Verwendung von \cs{numberline@prefix} und +% \cs{numberline@postfix}}^^A +% \changes{v3.12}{2013/11/22}{use \cs{numberline@numberformat} only, if the +% argument expands to a non-empty string}^^A +% Dieses Makro wird indirekt im Inhaltsverzeichnis verwendet und muss +% umdefiniert werden, um Duden, 20.~Auflage, Regel~5 und Regel~6 zu +% implementieren. +% \begin{macrocode} +\renewcommand*{\numberline}[1]{% + \numberline@box{% + \numberline@prefix + \ifstr{#1}{}{#1}{\numberline@numberformat{#1}}% + \numberline@postfix + }% +} +% \end{macrocode} +% \begin{macro}{\numberline@prefix} +% \changes{v3.06}{2010/05/18}{neu (intern)} +% Das ist in der Voreinstellung einfach leer. Es könnte verwendet werden, um +% etwas vor die Nummer zu setzen oder die Nummer rechtsbündig zu setzen. +% \begin{macrocode} +\newcommand*{\numberline@prefix}{} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\numberline@postfix} +% \changes{v3.06}{2010/05/18}{neu (intern)} +% Das ist in der Voreinstellung einfach \cs{hfil} und dient dazu die Nummer +% linksbündig zu platzieren. +% \begin{macrocode} +\newcommand*{\numberline@postfix}{\hfil} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\numberline@numberformat} +% \changes{v3.06}{2010/05/18}{neu (intern)}^^A +% \changes{v3.12}{2013/11/22}{don't output anything, if argument expands to +% an empty string}^^A +% Das dient in der Voreinstellung dazu, Regel~5 und 6 aus der 20.~Auflage des +% DUDENs umzusetzen. +% \begin{macrocode} +\newcommand*{\numberline@numberformat}[1]{\ifstr{#1}{}{}{#1\autodot}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\numberline@box} +% \changes{v3.06}{2010/05/18}{neu (intern)} +% Das dient in der Voreinstellung dazu, die Gliederungsnummer in eine Box zu +% setzen. +% \begin{macrocode} +\newcommand*{\numberline@box}[1]{\hb@xt@\@tempdima{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@pnumwidth} +% \begin{macro}{\@tocrmarg} +% \begin{macro}{\@dotsep} +% Einige Makros für die Formatierung der Verzeichniseinträge: +% \begin{description} +% \item[\cs{@pnumwidth}] ist der Platz für die Seitenzahl. +% \item[\cs{@tocrmarg}] ist der rechte Rand bei mehrzeiligen +% Verzeichniseinträgen. Dieser wird hier größer als \cs{@pnumwidth} +% gewählt. +% \item[\cs{\@dotsep}] ist der Abstand zwischen den einzelnen +% Punkten. +% \end{description} +% \begin{macrocode} +\newcommand*\@pnumwidth{1.55em} +\newcommand*\@tocrmarg {2.55em} +\newcommand*\@dotsep{4.5} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\before@starttoc} +% \changes{v2.8q}{2001/11/14}{neu (intern)} +% Dieses Makro führt im Falle von \texttt{tocleft} oder +% \texttt{listsleft} am Anfang eines Verzeichnisses alle notwendigen +% Änderungen 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} +% \changes{v3.06}{2010/05/18}{nicht länger benötigt} +% \begin{macro}{\last@l@number} +% Dafür werden ein paar Hilfsmakros benötigt, die vorsichtshalber +% global vordefiniert werden. +% \begin{macrocode} +\newcommand*{\scr@dottedtocline}{} +\newcommand*{\last@l@number}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\@l@number} +% \changes{v2.8q}{2001/11/14}{neu (intern)} +% In diesem Makro wird während der Erstellung eines Verzeichnisses +% Inhaltsverzeichnisses die aktuelle Breite der Nummer gespeichert. +% \begin{macro}{\set@l@number} +% \changes{v2.8q}{2001/11/14}{neu (intern)} +% Dieses Makro ist dafür verantwortlich, dass zum einen \cs{@tempdima} +% für den Aufruf von \cs{numberline@box} auf den richtigen Wert gesetzt +% wird, zum anderen wird die aktuelle größte Breite der Nummer hier +% angepasst. +% \begin{macrocode} +\newcommand*{\@l@number}{} +\newcommand*{\set@l@number}[1]{% + \settowidth{\@tempdima}{#1\enskip}% + \ifdim\@tempdima >\@l@number + \xdef\@l@number{\the\@tempdima}% + \fi% + \ifdim\@tempdima >\last@l@number \else + \setlength{\@tempdima}{\last@l@number}% + \fi% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% Kommen wir endlich zu \cs{before@starttoc}: +% \changes{v2.95a}{2006/07/12}{Initialisierung im \cs{@empty}-Fall} +% \changes{v3.06}{2010/05/18}{statt \cs{numberline} wird \cs{numberline@box} +% umdefiniert} +% \begin{macrocode} +\newcommand*{\before@starttoc}[1]{ + \let\scr@dottedtocline=\@dottedtocline + \renewcommand*{\@dottedtocline}[3]{% + \scr@dottedtocline{##1}{\z@}{\last@l@number}}% + \renewcommand*{\numberline@box}[1]{% + \set@l@number{##1}\hb@xt@\@tempdima{##1}}% + \gdef\@l@number{\z@}% + \@ifundefined{#1@l@number}{% + \def\last@l@number{2em}% + }{% + \expandafter\ifx\csname #1@l@number\endcsname\@empty + \let\last@l@number\z@ + \else + \expandafter\let\expandafter\last@l@number + \expandafter=\csname#1@l@number\endcsname + \fi + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\after@starttoc} +% \changes{v2.8q}{2001/11/14}{neu (intern)} +% 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} +% +% Dafür sorgen, dass die Verzeichnisse von \textsf{tocbasic} so gesetzt +% werden, wie wir das gerne hätten (wird über einen Trick auch für das +% Inhaltsverzeichnis verwendet): +% \begin{macrocode} +\g@addto@macro\tocbasic@@before@hook{% + \if@dynlist\expandafter\before@starttoc\expandafter{\@currext}\fi +} +\g@addto@macro\tocbasic@@after@hook{% + \if@dynlist\expandafter\after@starttoc\expandafter{\@currext}\fi +} +% \end{macrocode} +% +% +% \subsection{Definitionen für das Inhaltsverzeichnis} +% +% \begin{macro}{\contentsname} +% \begin{macro}{\listoftocname} +% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}} +% Der Name des Verzeichnisses. +% \begin{macrocode} +\newcommand*\contentsname{Contents} +\newcommand*\listoftocname{\contentsname} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{Counter}{tocdepth} +% Der Zähler gibt an, bis zu welcher Gliederungebene Einträge in das +% Inhaltsverzeichnis aufgenommen werden. Da \textsf{scrartcl} eine +% Ebene tiefer beginnt, wird auch eine Ebene tiefer eingetragen. Damit +% finden sich -- abgesehen von \cs{part} -- immer drei Ebenen im +% Inhaltsverzeichnis. +% \begin{macrocode} +%\setcounter{tocdepth}{2} +%
\setcounter{tocdepth}{3} +% \end{macrocode} +% \end{Counter} +% +% \begin{macro}{\toc@heading} +% \changes{v2.3h}{1995/01/21}{neu (intern)} +% \changes{v2.95}{2002/06/28}{auch für \textsf{scrreprt} und +% \textsf{scrbook}} +% \changes{v3.00}{2008/07/04}{Verwendung von \cs{toc@heading} ist nicht +% länger empfohlen} +% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}% +% Befehl, zum Setzen der Überschrift des Inhaltsverzeichnisses. Eigentlich +% ist das überflüssig, weil es nur einmal verwendet wird. Aus Gründen der +% Konsistenz mit den anderen Verzeichnissen machen wir das hier aber +% genauso. +% \begin{macrocode} +\newcommand*\toc@heading{% + \ClassWarning{\KOMAClassName}{% + usage of deprecated \string\toc@heading!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\toc@heading.\MessageBreak + Definition of \string\toc@heading\space my be removed from\MessageBreak + KOMA-Script soon, so it should not be used + }% +%
\section*{\contentsname}% +% \chapter*{\contentsname}% + \@mkboth{\MakeMarkcase{\contentsname}}{\MakeMarkcase{\contentsname}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\toc@l@number} +% \changes{v2.8q}{2001/11/14}{neu} +% Dieses Makro wird innerhalb von \cs{tableofcontents} über +% \cs{before@starttoc} und \cs{after@starttoc} in der +% \texttt{aux}-Datei global definiert. Aus Sicherheitsgründen wird es +% hier global vordefiniert. +% \begin{macrocode} +\newcommand*{\toc@l@number}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tableofcontents} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{toc@heading}} +% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt 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} +% \changes{v2.95}{2002/06/28}{\textsf{article} beachtet ebenfalls +% \texttt{tocleft}} +% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} +% ersetzt} +% \changes{v3.00}{2008/07/04}{auf \textsf{tocbasic} umgestellt} +% Die Ausgabe des Inhaltsverzeichnisses. +% \begin{macrocode} +\newcommand*{\tableofcontents}{% + \begingroup\let\if@dynlist\if@tocleft\listoftoc{toc}\endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addtocentrydefault} +% \changes{v3.08}{2010/11/01}{Neu} +% \changes{v3.12}{2013/09/24}{Verwendung der neuen +% \texttt{tocbasic}-Anweisung \cs{tocbasic@addxcontentsline}} +% Seit Version~3.08 werden Einträge ins Inhaltsverzeichnis in der +% Voreinstellung über diese Anweisung vorgenommen. Das erste Argument ist +% dabei die Gliederungsebene. Das zweite Argument ist die (formatierte) +% Gliederungsnummer oder leer, falls die Überschrift nicht nummeriert +% wird. Das dritte Argument ist der Überschriftentext, der in das +% Inhaltsverzeichnis soll. +% \begin{macrocode} +\newcommand{\addtocentrydefault}[3]{% + \tocbasic@addxcontentsline{toc}{#1}{#2}{#3}% +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Definitionen für die Verzeichnisse der +% Gleitumgebungen} +% +% \begin{macro}{\float@listhead} +% \changes{v2.8b}{2001/06/26}{neu (für alle Paketautoren)}% +% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in +% \cs{float@listhead}}% +% \changes{v2.98c}{2008/03/05}{\cs{float@@listhead} wird verwendet}% +% \changes{v3.00}{2008/07/04}{Verwendung von \cs{float@listhead} ist nicht +% länger empfohlen}% +% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}% +% In Absprache mit Anselm Lingnau, dem Autor des Pakets \textsf{float}, wird +% ab Version 2.8b \cs{float@headings} zum Setzen des Kolumnentitels bei den +% Verzeichnissen verwendet, die \textsf{float} für neu definierte floats zur +% Verfügung stellt. Dabei definiert \textsf{float} 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]{% + \scr@float@listhead@warning + \float@@listhead{#1}% + \@mkboth{\MakeMarkcase{#1}}{\MakeMarkcase{#1}}% +% \end{macrocode} +% \changes{v2.8q}{2001/11/14}{dynamische Anpassung an die Nummer} +% Dies ist der passende Ort, um die Breite, die für die Nummer des +% Gleitobjekts benötigt wird zu ermitteln und anzupassen, falls dies +% geünscht wird. Dazu findet eine lokale Umdefinierung von +% \cs{@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} +% \begin{macro}{\scr@float@listhead@warning} +% \changes{v3.01}{2008/11/13}{Neu (intern)} +% \changes{v3.12}{2013/09/25}{Text geändert} +% Die Warnung für die Verwendung von \cs{float@listhead}, dessen Definition +% irgendwann aus den Klassen verschwinden wird. +% \begin{macrocode} +\newcommand*{\scr@float@listhead@warning}{% + \ClassWarning{\KOMAClassName}{% + \string\float@listhead\space detected!\MessageBreak + Implementation of \string\float@listhead\space became\MessageBreak + deprecated in KOMA-Script v3.01 2008/11/14 and\MessageBreak + has been replaced by more several more flexible\MessageBreak + features of package `tocbasic`.\MessageBreak + Maybe implementation of \string\float@listhead\space will\MessageBreak + be removed from KOMA-Script soon.\MessageBreak + Loading of package `scrhack' may help to\MessageBreak + avoid this warning, if you are using a\MessageBreak + a package that still implements the\MessageBreak + deprecated \string\float@listhead\space interface + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\scr@float@addtolists@warning} +% \changes{v3.01}{2008/11/13}{Neu (intern)} +% \changes{v3.12}{2013/09/25}{Text geändert} +% Die Warnung für die Verwendung von \cs{float@addtolists}, dessen +% Unterstützung irgendwann aus den Klassen verschwinden wird. +% \begin{macrocode} +\newcommand*{\scr@float@addtolists@warning}{% + \ClassWarningNoLine{\KOMAClassName}{% + \string\float@addtolists\space detected!\MessageBreak + Implementation of \string\float@addtolist\space became\MessageBreak + deprecated in KOMA-Script v3.01 2008/11/14 and\MessageBreak + has been replaced by more several more flexible\MessageBreak + features of package `tocbasic`.\MessageBreak + Since Version 3.12 support for deprecated\MessageBreak + \string\float@addtolist\space interface has been\MessageBreak + restricted to only some of the KOMA-Script\MessageBreak + features and been removed from others.\MessageBreak + Loading of package `scrhack' may help to\MessageBreak + avoid this warning, if you are using a\MessageBreak + a package that still implements the\MessageBreak + deprecated \string\float@addtolist\space interface + }% + \global\let\scr@float@addtolists@warning\relax +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\listfigurename} +% \begin{macro}{\listtablename} +% \begin{macro}{\listoflofname} +% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}} +% \begin{macro}{\listotlofname} +% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}} +% Die Namen der Verzeichnisse auch für das Paket \textsf{tocbasic}. +% \begin{macrocode} +\newcommand*\listfigurename{List of Figures} +\newcommand*\listoflofname{\listfigurename} +\newcommand*\listoflofentryname{\figurename} +\newcommand*\listtablename{List of Tables} +\newcommand*\listoflotname{\listtablename} +\newcommand*\listoflotentryname{\tablename} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\listoffigures} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lof@heading}} +% \changes{v2.4k}{1996/12/13}{\cs{lof@heading} nicht nur bei +% \textsf{scrartcl}} +% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf +% 0 gesetzt} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}% +% \cs{@parskip@indent}} +% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} +% ersetzt} +% \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}} +% Die Ausgabe des Abbildungsverzeichnisses. +% \begin{macrocode} +\newcommand*\listoffigures{\listoftoc{lof}} +% \end{macrocode} +% +% \begin{macro}{\l@figure} +% Befehl zur Formatierung eines Verzeichniseintrags. +% \begin{macrocode} +\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\listoftables} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lot@heading}} +% \changes{v2.4k}{1996/12/13}{\cs{lot@heading} nicht nur bei +% \textsf{scrartcl}} +% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf +% 0 gesetzt} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}% +% \cs{@parskip@indent}} +% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} +% ersetzt} +% \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}} +% Die Ausgabe des Tabellenverzeichnisses. +% \begin{macrocode} +\newcommand*\listoftables{\listoftoc{lot}} +% \end{macrocode} +% +% \begin{macro}{\l@table} +% Befehl zur Formatierung eines Verzeichniseintrags. +% \begin{macrocode} +\let\l@table\l@figure +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \iffalse +% +% \fi +% +% \iffalse +% +% \fi +% +% +% \Finale +% +\endinput +% +% end of file `scrkernel-listsof.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx new file mode 100644 index 00000000000..3a3ff52eb79 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx @@ -0,0 +1,598 @@ +% \CheckSum{223} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-miscellaneous.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-miscellaneous.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-miscellaneous.dtx 1529 2013-12-03 07:36:57Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-miscellaneous.dtx}[2013/12/08 v3.12 KOMA-Script + (miscellaneous, maybe everything or nothing)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-miscellaneous.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei + \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/07/01}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Verschiedenes} +% +% Es gibt eine ganze Menge für das sich einzeln keine eigene Datei +% lohnt oder eine Einordnunge schwierig ist. All das nennen wird +% "`Verschiedenes"'. +% +% \subsection{Erweiterung der Internationalisierung} +% +% \changes{v2.2c}{1995/05/25}{Anpassung an CJK von Werner Lemberg.} +% +% Die Standardnamen wie \cs{figurename} etc. sind nicht immer +% ausreichend, da manche Sprachen Zählwörter vor oder nach dem +% jeweiligen Zähler einfügen müssen (man denke da sogar im +% Deutschen an "`Abbildung~1"' und "`Erste Abbildung"'). Desweiteren +% werden bei manchen Sprachen die Zwischenräume anders gesetzt +% bzw. sogar ganz unterdrückt. +% +% Es gibt drei Ebenen, die man modifizieren kann, um verschiedenste +% Sprachen zu implementieren: Ebene~1 besteht aus den hinl"anglich +% bekannten Makros wie \cs{figurename} und alle weiteren Makros, die +% z.\,B. \textsf{german} modifiziert. Desweiteren können die Makros +% \cs{sectfont} etc. etwaige zusätzliche Fonts aktivieren. Ebene~2 ist +% die zusätzliche Adaptierung von den Zählern selbst (\cs{thesection} +% könnte z.\,B. chinesische Schriftzeichen ansprechen anstelle von +% arabischen Ziffern). Die allgemeinste Form der dritten Ebene +% besteht aus den Makros \cs{chaptermarkformat}, +% \cs{sectionmarkformat} etc. welche die Änderung der Reihenfolge von +% Zähler und Titel sowie die genaue Kontrolle der Zwischenräume +% etc. ermöglichen. +% +% Für die gängigen Sprachen können alle Makros für die dritte +% Ebene identisch definiert werden. Bei Verwendung von "`exotischen"' +% Sprachen, aber auch speziellen Darstellungen in den gängigen +% Sprachen können diese Makros umdefiniert werden. +% +% Das Konzept für der Internationalisierung mit der dritten Ebene +% wurde ursprünglich 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 \KOMAScript{} für alle möglichen +% Sprachanpassungen bestens gerüstet. In der dritten Ebene wird +% übrigens auch die Einhaltung der DUDEN-Regeln für die +% Gliederungsnummern realisiert. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Optionen für Entwürfe} +% +% \begin{option}{draft} +% \changes{v2.95}{2002/12/05}{mit \textsl{keyval} reimplementiert} +% \begin{option}{final} +% \changes{v2.95}{2002/12/05}{obsolete Option} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v3.02c}{2008/02/17}{optionales Argument im Fall von +% \textsf{scrextend} gesetzt} +% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit +% \cs{FamilyKeyStateProcessed}}% +% Der einzige Unterschied zwischen Entwürfen und Endversionen ist aus +% Sicht der Klassen, ob Zeilenüberhänge mit einem schwarzen Balken +% angezeigt werden sollen oder nicht. +% \begin{macrocode} +\KOMA@key{draft}[true]{% + \KOMA@set@ifkey{draft}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \if@tempswa + \setlength{\overfullrule}{5pt}% + \else + \setlength{\overfullrule}{\z@}% + \fi + \fi +} +\KOMA@DeclareStandardOption +%[scrextend] +{final}{draft=false} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \subsection{Optionen für Gleichungen} +% +% Briefe haben derzeit keine Gleichungen. +% \iffalse +%<*!letter> +% \fi +% +% \begin{option}{leqno} +% \begin{option}{fleqno} +% Es können Gleichungsnummern links oder linksbündige Gleichungen +% eingestellt werden. +% \begin{macrocode} +%<*!extend> +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}} +% +% \end{macrocode} +% \end{option} +% \end{option} +% +% \iffalse +% +% \fi +% +% \iffalse +% +%<*execoption> +% \fi +% +% +% \subsection{Standardeinstellungen für die Optionen} +% +% Am Ende aller Optionen wird zunächst die Standardeinstellungen der +% Optionen vorgenommen und dann alle Optionen ausgeführt. Dies +% geschieht zwischen den Optionen und dem Körper dieser Datei. +% +% Es müssen die Standardoptionen festgelegt und alle Optionen +% ausgewählt werden. +% \changes{v2.97c}{2007/04/19}{Verwendung von \cs{KOMAExecuteOptions} an +% Stelle von \cs{KOMAoptions} und \cs{KOMAProcessOptions} an Stelle von +% \cs{ProcessOptions}} +% \changes{v2.97c}{2007/04/19}{Optionen, die der Voreinstellung ohnehin +% entsprechen, werden nicht explizit gesetzt} +% \changes{v2.97c}{2007/07/18}{Option \texttt{twoside} bei den +% Voreinstellungen rausgenommen} +% \changes{v2.98c}{2008/03/10}{Option \texttt{headings!=big} zu den +% Voreinstellungen hinzugefügt} +% \changes{v3.11c}{2013/03/04}{Option \texttt{headings!=big} nicht für die +% Briefklasse} +% \begin{macrocode} +%<*!extend> +\KOMAExecuteOptions{% + parskip=false,% +% headings=big% +} +% +\KOMAProcessOptions\relax +% \end{macrocode} +% +% +% \iffalse +% +%<*body> +% \fi +% +% +% \subsection{Temporäre Umschaltung zwischen ein- und zweispaltigem +% Satz} +% +% Briefe sind immer einspaltig, benötigen also den Schalter nicht. +% \iffalse +%<*!letter> +% \fi +% +% \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ötigt. Dieser +% wird dann dafür 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ür +% Titelseiten und das Inhaltsverzeichnis. +% \begin{macrocode} +%<*!extend> +\newif\if@restonecol +% +%<*extend> +\scr@ifundefinedorrelax{if@restonecol}{% + \expandafter\newif\csname if@restonecol\endcsname + \@restonecolfalse +}{} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \iffalse +% +% \fi +% +% \subsection{Definitionen für den schlauen Spruch} +% +% Den schlauen Spruch gibt es nicht bei Briefen. +% \iffalse +%<*!letter> +% \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{KOMAfont}{dictum} +% \changes{v2.8q}{2001/20/04}{neues Element} +% \begin{KOMAfont}{dictumtext} +% \changes{v2.8q}{2001/20/04}{neues Element} +% \begin{KOMAfont}{dictumauthor} +% \changes{v2.8q}{2001/20/04}{neues Element} +% \begin{macro}{\dictumauthorformat} +% \changes{v2.8q}{2001/20/04}{neu} +% \begin{macro}{\dictumrule} +% \changes{v3.10}{2011/09/02}{neu} +% Ein \emph{dictum} ist ein Spruch. Er besteht aus dem Spruch selbst +% und verfügt optional über einen Autor, der dann mit einer Linie +% abgetrennt wird. Gibt es keinen Autor, gibt es auch keine Linie. Die +% Schriften für Autor und Spruch können 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\dictumrule}% + \raggeddictumauthor\@dictumauthorfont\dictumauthorformat{#1}% + \strut\par% + \fi% + }% + }\par% + \endgroup +} +\newcommand*{\dictumrule}{\vskip-1ex\hrulefill\par}% +\newcommand*{\dictumwidth}{.3333\textwidth} +\newcommand*{\raggeddictum}{\raggedleft} +\newcommand*{\dictumauthorformat}[1]{(#1)} +\newcommand*{\raggeddictumtext}{\raggedright} +\newcommand*{\raggeddictumauthor}{\raggedleft} +\newkomafont{dictum}{\normalfont\normalcolor\sffamily\small} +\newkomafont{dictumauthor}{\itshape} +\aliaskomafont{dictumtext}{dictum} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{KOMAfont} +% \end{KOMAfont} +% \end{KOMAfont} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \iffalse +% +% \fi +% +% \subsection{Längen für Minipages und Rahmen} +% +% \begin{Length}{@mpfootins} +% \begin{Length}{fboxsep} +% \begin{Length}{fboxrule} +% \cs{@mpfootins} entspricht \cs{footins} in Minipages. \cs{fboxsep} +% ist der Abstand zwischen dem Rahmen einer \cs{fbox} oder +% \cs{framebox} und dem Inhalt, \cs{fboxrule} ist die Dicke des +% Rahmens. +% \begin{macrocode} +%<*!extend> +\setlength{\skip\@mpfootins}{\skip\footins} +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +% +% \end{macrocode} +% \end{Length} +% \end{Length} +% \end{Length} +% +% +% \subsection{Gleichungen} +% +% Gleichungen gibt es bei Briefen nicht. +% \iffalse +%<*!letter> +% \fi +% +% \begin{macro}{\theequation} +% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil} +% Darstellung der Gleichungsnummer: +% \begin{macrocode} +%<*!extend> +%\@addtoreset{equation}{chapter} +\renewcommand*\theequation{% +%<*book> + \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d}\relax + \if@mainmatter\thechapter.\fi + \else +% +% \thechapter.% +% \fi + \@arabic\c@equation +} +% +% \end{macrocode} +% \end{macro} +% +% \iffalse +% +% \fi +% +% \subsection{Definitionen zur Feststellung von linken und rechten +% Seiten} +% +% \begin{macro}{\ifthispageodd} +% \changes{v2.8q}{2001/11/22}{neu} +% Häufig wird mit \cs{ifodd}\cs{value\{page\}} getestet, ob man sich +% gerade auf einer rechten oder einer linken Seite +% befindet. Dummerweise funktioniert das aber genaugenommen nur +% zufällig manchmal. Ob man sich auf einer linken oder einer rechten +% Seite befindet, ergibt sich nämlich erst bei der Ausgabe. Deshalb +% wird hier ein Makro definiert, das über eine Art Label-Mechanismus +% arbeitet. Es werden bewusst keine echten \cs{label} und \cs{pageref} +% verwendet, weil diese Befehle von verschiedenen Paketen manipuliert +% werden. +% +% \begin{macro}{\new@tpo@label} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% \changes{v2.95b}{2006/07/28}{verwendet jetzt \cs{@newl@bel}} +% Definition eines neuen \emph{true}-\emph{page}-\emph{odd} Labels. +% Wird in der \texttt{aux}-Datei verwendet. +% \begin{macrocode} +\newcommand*{\new@tpo@label}{\@newl@bel{tpo}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scr@tpo} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% Es wird ein Zähler benötigt, 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 (intern)} +% \changes{v2.9l}{2003/01/28}{renamed \cs{if@thispageodd}} +% \changes{v2.95b}{2006/07/28}{basiert nun auf \cs{@newl@bel}} +% Dieses Makro macht die eigentliche Arbeit. Es funktioniert nicht wie +% ein normales \cs{iffalse} oder \cs{iftrue}, denn es kann nicht +% geschachtelt innerhalb anderer \cs{if\dots} \dots \cs{fi} +% Klammerungen verwendet werden. Es sollte daher niemals außerhalb von +% \cs{ifthispageodd} verwendet werden. Da über die \texttt{aux}-Datei +% gearbeitet wird, funktioniert das Ganze nur, wenn die Datei auch +% geschrieben wird und min. zwei \LaTeX-Läufe erfolgen. +% \begin{macrocode} +\newcommand*{\is@thispageodd}{% + \@bsphack + \begingroup + \@tempcnta=\scr@tpo + \advance\@tempcnta by\@ne + \xdef\scr@tpo{\the\@tempcnta}% + \protected@write\@auxout{\let\arabic\relax}{% + \string\new@tpo@label{\scr@tpo}{\arabic{page}}}% + \expandafter\ifx\csname tpo@\scr@tpo\endcsname\relax + \protect\G@refundefinedtrue +% \ClassWarning{\KOMAClassName}{% +% \PackageWarning{scrextend}{% + odd/even page label number \scr@tpo\space undefined}% + \edef\@tempa{\the\value{page}}% + \else + \edef\@tempa{\csname tpo@\scr@tpo\endcsname}% + \fi + \ifodd\number\@tempa + \aftergroup\thispagewasoddtrue + \else + \aftergroup\thispagewasoddfalse + \fi + \endgroup + \@esphack +} +% \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} +% +% +% \subsection{Definitionen für tiefer gestellten Text} +% +% \begin{macro}{\textsubscript} +% \changes{v2.8h}{2001/07/19}{neu}% +% \begin{macro}{\@textsubscript} +% \changes{v2.8h}{2001/07/19}{neu (intern)}% +% \changes{v3.10}{2011/09/05}{\cs{providecommand} statt \cs{newcommand}, +% damit das auch noch funktioniert, wenn \textsf{scrextend} nach +% \textsf{fixltx2e} geladen wird}% +% Im \LaTeX-Kern wird zwar ein Makro \cs{textsuperscript} definiert, +% um Texte hochstellen zu können, die entsprechende Anweisung zum +% Tiefstellen fehlt jedoch. Das wird hier nachgeholt, wobei nahezu +% unverändert auf die Definition aus dem \LaTeX-Kern zurückgegriffen +% wird. +% \begin{macrocode} +\DeclareRobustCommand*\textsubscript[1]{% + \@textsubscript{\selectfont#1}% +} +\providecommand*{\@textsubscript}[1]{% + {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% +% \subsection{Warnung vor Paketen} +% \label{sec:packagewarning} +% +% \changes{v3.12}{2013/07/08}{neue Warnungen vor bestimmten Paketen} +% \begin{macro}{\scr@package@not@recommended} +% \changes{v3.12}{2013/07/08}{neu (intern)} +% Beim Laden verschiedener Pakete wird nun eine Warnung ausgegeben. In der +% Regel mit einer Alternativempfehlung. +% \begin{macrocode} +%<*class> +\newcommand*{\scr@package@not@recommended}[2]{% + \BeforePackage{#1}{% + \ClassWarning{\KOMAClassName}{% + Usage of package `#1' together\MessageBreak + with a KOMA-Script class is not recommended.\MessageBreak + \if\relax\detokenize{#2}\relax\else + I'd suggest to use #2.\MessageBreak + \fi + Nevertheless, using requested\MessageBreak + package `#1'% + }% + }% +} +\scr@package@not@recommended{emptypage}{% + option\MessageBreak + `cleardoublepage' with one of it's\MessageBreak + several values} +\scr@package@not@recommended{parskip}{% + option\MessageBreak + `parskip' with one of it's several values} +\scr@package@not@recommended{fancyhdr}{% + \MessageBreak + package `scrpage2' or `scrlayer-scrpage'} +\scr@package@not@recommended{titlesec}{% + the package only\MessageBreak + if you really need it, because it breaks several\MessageBreak + KOMA-Script features, i.e., option `headings' and\MessageBreak + the extended optional argument of the section\MessageBreak + commands +} +% +% \end{macrocode} +% \end{macro}^^A \scr@package@not@recommended +% +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-miscellaneous.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-notepaper.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-notepaper.dtx new file mode 100644 index 00000000000..a6e52722c9b --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-notepaper.dtx @@ -0,0 +1,3657 @@ +% \CheckSum{3156} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-notepaper.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-notepaper.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-notepaper.dtx 1380 2013-10-01 15:31:55Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-notepaper.dtx}[2013/07/31 v3.12 KOMA-Script + (note-paper)] +% \iffalse +\documentclass{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-notepaper.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2006/03/16}{% +% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} +% +% \section{Briefbogen und Briefpapier} +% +% Bei Briefen kommt dem Briefbogen, also dem ersten Blatt des Briefes eine +% besondere Bedeutung zu. Dieser ist bei \texttt{scrlttr2} durch diverse +% Optionen, Variablen, Pseudo-Längen und Anweisungen bestimmt. Die weiteren +% Briefseiten werden hier verinfacht als das Briefpapier bezeichnet. Natürlich +% ist genau genommen auch der Briefbogen Briefpapier, aber eben ein besonderes. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*option> +% \fi +% +% \iffalse +%<*letter> +% \fi +% +% \subsection{Option für den Briefbogen} +% +% Gerade der Briefbogen ist durch eine ganze Anzahl von Optionen +% konfigurierbar. Daher wird hier weiter thematisch untergliedert. +% +% +% \subsubsection{Optionen für den Briefkopf} +% +% Die Gestaltung des Briefkopfes war bei der alten \texttt{scrlettr} +% Klasse eng begrenzt. Deshalb hatte ich für mich selbst das +% \texttt{briefkopf} Paket geschrieben und ohne Support +% veröffentlicht. Die Funktionalität ist nun direkt verfügbar. Dazu +% werden verschiedene Optionen benötigt. +% +% \begin{option}{firsthead} +% \changes{v2.97e}{2007/11/22}{Neu} +% Der Briefkopf kann auch einfach abgeschaltet werden. +% \begin{macro}{\if@firsthead} +% \changes{v2.8q}{2002/01/25}{Neuer Schalter (intern)} +% Gespeichert wird die Information in einem einfachen Schalter. +% Voreingestellt ist die Verwendung des Briefkopfes. +% \begin{macrocode} +\KOMA@ifkey{firsthead}{@firsthead}\@firstheadtrue +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{fromalign} +% \changes{v2.8q}{2002/01/25}{Neu} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Diese Option legt fest, ob der Absender linksbündig, mittig oder +% rechtsbündig gesetzt werden soll. +% \begin{macro}{\@alignfrom} +% \changes{v2.8q}{2002/01/25}{Neu} +% \changes{v2.97e}{2007/11/13}{neue Werte für Verwendung der +% Absenderergänzung} +% Die Einstellung wird in einem nummerisch auszuwertenden Makro +% gespeichert. Dabei gelten folgende Werte: +% \begin{center} +% \begin{tabular}{rl} +% Wert & Ausrichtung \\\hline +% 0 & linksbündig \\ +% 1 & zentriert \\ +% 2 & rechtsbündig \\ +% 3 & linksbündig in der Absenderergänzung ohne Kopf \\ +% 4 & rechtbündig in der Absenderergänzung ohne Kopf \\ +% 10000 & nicht antasten \\ +% \end{tabular} +% \end{center} +% Voreingestellt ist "`nicht antasten"'. +% \begin{macrocode} +\newcommand*{\@alignfrom}{0} +\KOMA@key{fromalign}{% + \KOMA@set@ncmdkey{fromalign}{@alignfrom}{% + {left}{0},% + {center}{1},{centered}{1},{middle}{1},% + {right}{2},% + {locationleft}{3},{leftlocation}{3},% + {locationright}{4},{rightlocation}{4},{location}{4},% + {no}{10000},{false}{10000},{off}{10000}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase\@alignfrom\or\or\or\@firstheadfalse\or\@firstheadfalse\fi + \fi +} +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{fromrule} +% \changes{v2.8q}{2002/01/25}{Neu} +% Es kann gewählt 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@ncmdkey{fromrule}[below]{@rulefrom}{% + {false}{0},{no}{0},{off}{0},{aftername}{1},% + {below}{2},{afteraddress}{2},{true}{2},{yes}{2},{on}{2}% +} +% \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} +\KOMA@ifkey{fromphone}{@phone} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{frommobilephone} +% \changes{v3.12}{2013/05/29}{Neu} +% Ob die Handynummer im Absender gesetzt werden soll oder nicht, +% kann hier angegeben werden. +% \begin{macro}{\if@mobilephone} +% \changes{v3.12}{2013/05/29}{Neu} +% \begin{macro}{\@mobilephonetrue} +% \changes{v3.12}{2013/05/29}{Neu} +% \begin{macro}{\@mobilephonefalse} +% \changes{v3.12}{2013/05/29}{Neu} +% Gespeichert wird die Information in einem einfachen Schalter. +% Voreingestellt ist keine Handynummer im Absender. +% \begin{macrocode} +\KOMA@ifkey{frommobilephone}{@mobilephone} +% \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} +\KOMA@ifkey{fromfax}{@fax} +% \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} +\KOMA@ifkey{fromemail}{@email} +% \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} +\KOMA@ifkey{fromurl}{@www} +% \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} +\KOMA@ifkey{fromlogo}{@logo} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% +% \subsubsection{Optionen für Anschrift und Absenderergänzung} +% +% \begin{option}{addrfield} +% \changes{v2.8q}{2001/10/09}{Neu} +% \changes{v3.03}{2009/03/04}{neue Werte} +% Das Adressfeld für Fensterumschläge kann mit \texttt{addrfield} ein- und +% ausgeschaltet werden. Darüber hinaus kann die Art des Adressfeldes gewählt +% werden. +% \begin{macro}{\if@afield} +% \changes{v3.03}{2009/03/04}{ersetzt durch \cs{@afieldmode}} +% \begin{macro}{\@afieldtrue} +% \changes{v3.03}{2009/03/04}{ersetzt durch \cs{@afieldmode}} +% \begin{macro}{\@afieldfalse} +% \changes{v3.03}{2009/03/04}{ersetzt durch \cs{@afieldmode}} +% \begin{macro}{\@afieldmode} +% \changes{v3.03}{2009/03/04}{neu (intern)} +% Die Speicherung erfolgt wiederum in einem Makro. +% \begin{macrocode} +\newcommand*{\if@afield}{% + \ClassWarning{\KOMAClassName}{% + Usage of \string\if@afield\space deprecated.\MessageBreak + Internal macro \string\if@afield\space was removed at\MessageBreak + KOMA-Script version 3.03. I'll replace the usage of\MessageBreak + \string\if@afield\space by \string\ifnum + \string\@afieldmode=\string\@ne.\MessageBreak + This may result in errors. A better solution would be\MessageBreak + to change the code}% + \ifnum \@afieldmode=\@ne} +\newcommand*{\@afieldtrue}{% + \ClassWarning{\KOMAClassName}{% + Usage of \string\if@afield\space deprecated.\MessageBreak + Internal macro \string\if@afield\space was removed at\MessageBreak + KOMA-Script version 3.03. I'll replace the usage of\MessageBreak + \string\@afieldtrue\space by + \string\KOMAoptions{addrfield=true}.\MessageBreak + This may result in erros. A better solution would be\MessageBreak + to change the code}% + \KOMAoptions{addrfield=true}} +\newcommand*{\@afieldfalse}{% + \ClassWarning{\KOMAClassName}{% + Usage of \string\if@afield\space deprecated.\MessageBreak + Internal macro \string\if@afield\space was removed at\MessageBreak + KOMA-Script version 3.03. I'll replace the usage of\MessageBreak + \string\@afieldfalse\space by + \string\KOMAoptions{addrfield=false}.\MessageBreak + This may result in erros. A better solution would be\MessageBreak + to change the code}% + \KOMAoptions{addrfield=false}} +\newcommand*{\@afieldmode}{\@ne} +\KOMA@ncmdkey{addrfield}[true]{@afieldmode}{% + {false}{0},{off}{0},{no}{0},% + {true}{1},{on}{1},{yes}{1},% + {PP}{2},{pp}{2},% + {PPexplicite}{2},{PPExplicite}{2},% + {ppexplicite}{2},{ppExplicite}{2},% + {backgroundimage}{3},% + {PPbackgroundimage}{3},{PPBackgroundImage}{3},{PPBackGroundImage}{3},% + {ppbackgroundimage}{3},{ppBackgroundImage}{3},{ppBackGroundImage}{3},% + {image}{4},{Image}{4},% + {PPimage}{4},{PPImage}{4},% + {ppimage}{4},{ppImage}{4}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{priority} +% \changes{v3.03}{2009/03/04}{neu} +% Im internationalen Briefverkehr sind zwei Prioritätseinstellungen +% bekannt. Dafür gibt es dann so etwas wie eine Versandart nicht mehr. +% \begin{macro}{\ltr@priority} +% \changes{v3.03}{2009/03/04}{neu (intern)} +% Abgelegt wird die Art der Priorität in einem Macro. +% \begin{macrocode} +\newcommand*{\ltr@priority}{0}% +\KOMA@ncmdkey{priority}[A]{ltr@priority}{% + {no}{0},{off}{0},{false}{0},{manual}{1},% + {B}{1},{b}{1},% + {economy}{1},{Economy}{1},{ECONOMY}{1},% + {B-ECONOMY}{1},{B-Economy}{1},{b-economy}{1},% + {A}{2},{a}{2},% + {priority}{2},{Priority}{2},{PRIORITY}{2},% + {A-PRIORITY}{2},{A-Priority}{2},{a-priority}{2}% +}% +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{backaddress} +% \changes{v2.8q}{2002/01/22}{Neu} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Im Adressfeld kann die Rücksendeadresse gesetzt werden. Dies geschieht nun +% nicht mehr allein durch Definition einer Rücksendeadresse, sondern auch +% durch eine Option. +% \begin{macro}{\if@baddr} +% \begin{macro}{\@baddrtrue} +% \begin{macro}{\@baddrfalse} +% \begin{macro}{\backaddr@format} +% \changes{v2.96}{2006/07/31}{neu (intern)} +% Dieses Makro hat genau ein Argument und bestimmt die Form der +% Rücksendeadresse. Voreingestellt ist Unterstreichung. Dies entspricht der +% vor Version~2.96 festen Voreinstellung. +% \begin{macrocode} +\newcommand{\backaddr@format}[1]{} +\let\backaddr@format\underline +% \end{macrocode} +% \end{macro} +% Die Einstellung true/false der Option wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@baddr\@baddrtrue +\KOMA@key{backaddress}[true]{% + \begingroup + \KOMA@set@ncmdkey{backaddress}{@tempa}{% + {false}{0},{off}{0},{no}{0},% + {true}{1},{on}{1},{yes}{1},% + {underlined}{2},% + {plain}{3}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \aftergroup\FamilyKeyStateProcessed + \ifcase\@tempa + \endgroup + \@baddrfalse + \or + \endgroup + \@baddrtrue + \or + \endgroup + \@baddrtrue + \let\backaddr@format\underline + \or + \endgroup + \@baddrtrue + \let\backaddr@format\@firstofone + \else + \endgroup + \fi + \else + \endgroup + \FamilyKeyStateUnknownValue + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{locfield} +% \changes{v2.8q}{2001/10/09}{Neu} +% \changes{v2.97c}{2007/03/30}{vertauschte Bedeutung korrigiert} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Mit Hilfe der Optione \texttt{locfield} kann der Platz neben dem Adressfeld +% groß oder klein gewählt 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]{% + \begingroup + \KOMA@set@ncmdkey{locfield}{@tempa}{{wide}{0},{narrow}{1}}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase\@tempa + \endgroup + \@bigloctrue + \else + \endgroup + \@biglocfalse + \fi + \else + \endgroup + \FamilyKeyStateUnknownValue + \fi +} +% \end{macrocode} +% \begin{option}{wlocfield} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{slocfield} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{wlocfield}{locfield=wide} +\KOMA@DeclareDeprecatedOption{slocfield}{locfield=narrow} +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% +% +% \subsubsection{Optionen für Faltmarken} +% +% \begin{option}{foldmarks} +% \changes{v2.8q}{2001/09/10}{Neu} +% \changes{v3.00}{2008/06/06}{es muss \cs{FamilyUnkownKeyVal} statt +% \cs{KOMA@unkown@keyval} lokal umdefiniert werden} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Die Faltmarken können mit \texttt{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 +% \end{macrocode} +% \begin{macro}{\@usefolds} +% Welche Faltmarken gesetzt werden sollen, wird in einem Makro gespeichert. +% \changes{v2.97e}{2007/11/08}{Neu (intern)} +% \begin{macrocode} +\newcommand*{\@usefolds}{TMBPL} +\KOMA@key{foldmarks}[true]{% + \begingroup + \KOMA@set@ifkey\@empty{@fold}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \if@fold\aftergroup\@foldtrue\else\aftergroup\@foldfalse\fi + \aftergroup\FamilyKeyStateProcessed + \else + \aftergroup\FamilyKeyStateProcessed + \def\sc@nf@ldch@rs##1{% + \ifx ##1\@nil\else + \if ##1T\g@addto@macro\@usefolds{##1}\else + \if ##1M\g@addto@macro\@usefolds{##1}\else + \if ##1B\g@addto@macro\@usefolds{##1}\else + \if ##1P\g@addto@macro\@usefolds{##1}\else + \if ##1L\g@addto@macro\@usefolds{##1}\else + \if ##1V\g@addto@macro\@usefolds{L}\else + \if ##1H\g@addto@macro\@usefolds{TMBP}\else + \if ##1t\scr@removechar\@usefolds{T}\else + \if ##1m\scr@removechar\@usefolds{M}\else + \if ##1b\scr@removechar\@usefolds{B}\else + \if ##1p\scr@removechar\@usefolds{P}\else + \if ##1l\scr@removechar\@usefolds{L}\else + \if ##1v% + \scr@removechar\@usefolds{L}% + \else + \if ##1h% + \scr@removechar\@usefolds{T}% + \scr@removechar\@usefolds{M}% + \scr@removechar\@usefolds{B}% + \else + \aftergroup\FamilyKeyStateUnknownValue + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \expandafter\sc@nf@ldch@rs + \fi + }% + \expandafter\sc@nf@ldch@rs#1\@nil + \fi + \endgroup +} +% \end{macrocode} +% \begin{macro}{\scr@removechar} +% \changes{v2.97e}{2007/11/08}{Neu (intern)} +% \begin{macrocode} +\newcommand*{\scr@removechar}[2]{% + \def\in@@##1#2##2##3\in@@{% + \ifx\in@##2\else + \def\in@@####1#2\in@{\gdef#1{##1####1}}% + \in@@##2##3% + \fi}% + \expandafter\in@@#1#2\in@\in@@ +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% +% \subsubsection{Optionen für die Geschäftszeile} +% +% \begin{option}{refline} +% \changes{v2.8n}{2001/09/08}{Neue Option} +% \changes{v2.96a}{2006/12/07}{vertauschte Bedeutung korrigiert} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Kopf und Fuß der ersten Seite sind normalweise so breit, dass sie +% zur Adresse des Empfängers passen. Für die Geschäftszeile 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} +% \changes{v3.09}{2011/03/07}{Neue Werte: \texttt{dateleft}, +% \texttt{dateright}, \texttt{nodate}} +% \begin{macro}{\@refwidetrue} +% \begin{macro}{\@refwidefalse} +% Gespeichert wird die Information in einem Schalter. +% \begin{macro}{\@datepos} +% \changes{v3.09}{2011/03/07}{Neu (intern)} +% Das Datum kann links oder rechts oder gar nicht gesetzt werden. +% Wo die Speicherung erfolgt wird in einem nummerischen Makro +% abglegt. Voreingestellt ist rechts. +% \begin{macrocode} +\newif\if@refwide +\newcommand*{\@datepos}{1} +\KOMA@key{refline}[wide]{% + \begingroup + \KOMA@set@ncmdkey{refline}{@tempa}{{wide}{0},{narrow}{1},% + {dateleft}{2},{leftdate}{2},% + {dateright}{3},{rightdate}{3},% + {nodate}{4}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \aftergroup\FamilyKeyStateProcessed + \ifcase\@tempa + \endgroup + \@refwidetrue + \or + \endgroup + \@refwidefalse + \or + \endgroup + \def\@datepos{2}% + \or + \endgroup + \def\@datepos{1}% + \or + \endgroup + \def\@datepos{0}% + \fi + \else + \endgroup + \FamilyKeyStateUnknownValue + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% +% \subsubsection{Optionen für den Betreff} +% +% \begin{option}{subject} +% \changes{v2.8q}{2001/10/09}{Neu} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Ein Betreff-Titel kann mit \texttt{subject} ein- und abgeschaltet +% werden. In England und Frankreich scheint es teilweise üblich zu +% sein, den Betreff erst nach der Anrede und dafür zentriert zu +% setzen\footnote{Ich kann mir nur mühsahm eine Bemerkung dazu +% verkneifen.}. +% Deshalb kann alternativ zum Einschalten des Betreff-Titels hier auch +% dies aktiviert werden. +% \begin{macro}{\subject@format} +% \changes{v2.97c}{2007/07/06}{neu (intern)} +% Das Format des Betreffs kann geändert werden. +% \begin{macrocode} +\newcommand{\subject@format}[1]{#1} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\raggedsubject} +% \changes{v2.97c}{2007/07/06}{neu (intern)} +% \begin{macrocode} +\newcommand*{\raggedsubject}{} +% \end{macrocode} +% \end{macro} +% \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}{% + \begingroup + \KOMA@set@ncmdkey{subject}{@tempa}{% + {titled}{0},% + {untitled}{1},% + {afteropening}{2},% + {beforeopening}{3},% + {underlined}{4},% + {left}{5},% + {right}{6},% + {centered}{7}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \aftergroup\FamilyKeyStateProcessed + \ifcase\@tempa + \aftergroup\@subjtrue + \or + \aftergroup\@subjfalse + \or + \aftergroup\@subjaftertrue + \or + \aftergroup\@subjafterfalse + \or + \aftergroup\let\aftergroup\subject@format\aftergroup\underline + \or + \aftergroup\let\aftergroup\raggedsubject\aftergroup\raggedright + \or + \aftergroup\let\aftergroup\raggedsubject\aftergroup\raggedleft + \or + \aftergroup\let\aftergroup\raggedsubject\aftergroup\centering + \fi + \else + \aftergroup\FamilyKeyStateUnknownValue + \fi + \endgroup +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% +% \subsubsection{Optionen für den Satzspiegel} +% +% \begin{option}{enlargefirstpage} +% \changes{v2.8o}{2001/09/18}{Neue Option} +% Normalerweise wird der Text des Briefboges entsprechend dem +% normalen Satzspiegel gesetzt. Ist allerdings der Fuß der ersten +% Seite zu hoch, dann wird der Satzspiegel vertikal entsprechend +% verkürzt. Mit der Option \texttt{firstpageenlarge} kann erzwungen +% werden, dass im umgekehrten Fall, der Satzspiegel vertikal +% verlängert wird. +% \begin{macro}{\if@enlargefp} +% \begin{macro}{\@enlargefptrue} +% \begin{macro}{\@enlargefpfalse} +% Gespeichert wird die Information über die Optionen in einem +% Schalter. +% \begin{macrocode} +\KOMA@ifkey{enlargefirstpage}{@enlargefp} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% +% \subsubsection{Optionen für den Briefbogenfuß} +% +% \begin{option}{firstfoot} +% \changes{v2.97e}{2007/11/22}{Neu} +% Der Fuß des Briefbogens kann auch einfach abgeschaltet werden. +% \begin{macro}{\if@firstfoot} +% \changes{v2.8q}{2002/01/25}{Neuer Schalter (intern)} +% Gespeichert wird die Information in einem einfachen Schalter. +% Voreingestellt ist die Verwendung des Fußes. +% \begin{macrocode} +\KOMA@ifkey{firstfoot}{@firstfoot}\@firstfoottrue +% \end{macrocode} +% \end{macro} +% \end{option} +% +% +% \subsection{Optionen für den Kopf des weiteren Briefpapiers} +% +% Diese Optionen haben zwar nichts mit dem eigentlichen Briefbogen zu tun. Das +% Briefpapier schließt sich aber an, weshalb die Optionen hier zu finden sind. +% +% \begin{option}{pagenumber} +% \changes{v2.8q}{2002/01/31}{Neu} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Bei Briefen kann gewählt werden, ob auf Folgeseiten die Seitenzahl +% im Kopf oder im Fuß stehen soll. Dabei kann zwischen Seitenzahl +% rechts, links oder zentriert gewählt werden. Voreingestellt ist der +% Fuß 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ür die Seitenzahl\\\hline +% -1 & keine \\ +% 0 & im Kopf links \\ +% 1 & im Kopf mittig \\ +% 2 & im Kopf rechts \\ +% 3 & im Fuß links \\ +% 4 & im Fuß mittig \\ +% 5 & im Fuß rechts \\ +% \end{tabular}\end{center} +% \begin{macrocode} +\newcommand*{\@pageat}{4} +\KOMA@key{pagenumber}{% + \begingroup + \KOMA@set@ncmdkey{pagenumber}{@tempa}{% + {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}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \aftergroup\FamilyKeyStateProcessed + \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 + \else + \def\@tempa{\endgroup\FamilyKeyStateUnknownValue}% + \fi + \@tempa +} +% \end{macrocode} +% \end{macro} +% \end{option} +% +% +% \iffalse +% +% +%<*body> +%<*letter> +% \fi +% +% \subsection{Anweisungen für den Briefbogen} +% +% Auch bei den Anweisungen zunächst alles, was mit dem Briefbogen zu tun hat. +% +% \subsubsection{Der Kopf des Briefbogens} +% +% \begin{macro}{\firsthead} +% \changes{v2.8q}{2002/01/28}{\cs{@alignfrom} auf 10000 gesetzt} +% \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine +% Variable realisiert} +% \begin{macro}{\@firsthead} +% \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine +% Variable realisiert} +% \begin{macro}{\@gen@firsthead} +% \changes{v2.8q}{2002/01/28}{Neu} +% \changes{v2.97c}{2007/05/08}{Dicke der Linie konfigurierbar} +% \changes{v2.97c}{2007/05/08}{Schrift (Farbe) der Linie konfigurierbar} +% \changes{v3.06a}{2010/07/29}{Verwendung des Font-Elements +% \texttt{fromrule} eingefügt} +% \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine +% Variable realisiert} +% \begin{KOMAvar}{firsthead} +% \changes{v3.08}{2010/10/28}{Neu} +% Bei \texttt{scrlttr2} gibt es die üblichen Seitenstile, allerdings +% ist deren Verhalten etwas anders als gewohnt. Dies ist in den +% Besonderheiten für Briefen begründet. Zunächst die Voreinstellung für +% Briefbögen. +% \begin{macrocode} +\newcommand*{\@firsthead}{% + \ClassWarning{scrlttr2}{% + Deprecated usage of \string\@firsthead.\MessageBreak + \string\usekomavar{firsthead} should be used\MessageBreak + instead of \string\@firsthead + }% + \usekomavar{firsthead}% +} +\newkomavar{firsthead} +\setkomavar{firsthead}{% + \parbox[b]{\useplength{firstheadwidth}}% + {\centering\usekomafont{fromaddress}{% + \ifkomavarempty{fromname}{}{% + {\usekomafont{fromname}% + {\ignorespaces\usekomavar{fromname}}}\\[-8pt] + {\usekomafont{fromrule}{\rule{\useplength{firstheadwidth}}{.4pt}}}\\ + }% + \ifkomavarempty{fromaddress}{}{% + \ignorespaces\usekomavar{fromaddress}% + }% + }% + }% +} +% \end{macrocode} +% \end{KOMAvar} +% \begin{macro}{\scr@firsthead@postsetvar} +% \changes{v3.08}{2010/10/28}{Neu (intern)} +% Über dieses Makro wird jeweils nach dem Setzen der Variable die Ausrichtung +% auf manuell umgeschaltet. Das darf deshalb auch erst nach dem erstmaligen +% Setzen definiert werden! +% \begin{macrocode} +\newcommand*{\scr@firsthead@postsetvar}{% + \renewcommand*{\@alignfrom}{10000}% +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\newcommand*{\@gen@firsthead}{% +% \end{macrocode} +% Damit wird ggf. die Kopfzeile der ersten Seite umdefiniert, nämlich dann, +% wenn dies per Option aktiviert wurde. +% \begin{macrocode} + \ifcase\@alignfrom +% \end{macrocode} +% Wir befinden uns nun in dem Bereich für \verb|\@alignfrom|=0. +% Entsprechend unserer Festlegung wird daher als Erstes der +% linksbündige Absender definiert. Wir verwenden dafür eine +% \emph{parbox}, in der der Text linksbündig angeordnet wird. Diese +% Box soll über die gesamte Breite gehen dürfen: +% \begin{macrocode} + \setkomavar{firsthead}{% + \parbox[b]{\textwidth}{\raggedright +% \end{macrocode} +% Zuerst wird der Name gesetzt. Dabei soll eine eigene Schriftart für +% 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änge dieser Linie kann vom Anwender +% bestimmt oder automatisch gewählt werden. Es werden dabei die +% Pseudo-Längen \texttt{fromrulewidth} und \texttt{fromrulethickness} +% verwendet. Ist \texttt{fromrulewidth} negativ, so wird sie automatisch +% bestimmt. Bei der automatischen Längenbestimmung wird dafür gesorgt, dass +% die Linie nicht bis in das Logo ragt, das eventuell rechtsbündig neben dem +% Absender steht: +% \begin{macrocode} + {% + \ifnum\@rulefrom=1\\[-.5\baselineskip]% + \usekomafont{fromrule}{% + \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}{% + \useplength{fromrulethickness}}}% + \fi + }% + \\ + }% +% \end{macrocode} +% Als Nächstes wird die Absenderadresse einschließlich 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.% +% \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird +% berücksichtigt}% +% \begin{macrocode} + {\usekomafont{fromaddress}\strut\ignorespaces + \usekomavar{fromaddress}% + \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi% + \if@mobilephone + \\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}% + \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ähnt, 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 über der Linie zu +% stehen hat. Die entsprechende Berechnung kann also entfallen. +% \begin{macrocode} + \ifnum\@rulefrom=2\\[-.5\baselineskip]% + \usekomafont{fromrule}{% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\textwidth}% + \fi + \expandafter\rule\expandafter{\the\@tempdima}{% + \useplength{fromrulethickness}}}% + \fi + \\ + }% + }% +% \end{macrocode} +% Die parbox ist damit ebenfalls beendet. Es muss 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 + }% + \renewcommand*{\@alignfrom}{0}% +% \end{macrocode} +% Damit ist die Definition des linksbündigen 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änger gesetzt wird. Dort ist bereits +% das location-Feld, daher wird dieser Fall auch dort behandelt.% +% \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird +% berücksichtigt}% +% \begin{macrocode} + \or + \setkomavar{firsthead}{% + \parbox[b]{\textwidth}{\centering + {\usekomafont{fromname}\strut\ignorespaces + \usekomavar{fromname}% + {% + \ifnum\@rulefrom=1\\[-.5\baselineskip]% + \usekomafont{fromrule}{% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\textwidth}% + \fi + \expandafter\rule\expandafter{\the\@tempdima}{% + \useplength{fromrulethickness}}}% + \fi + }% + \\ + }% + {\usekomafont{fromaddress}\strut\ignorespaces + \usekomavar{fromaddress}% + \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi% + \if@mobilephone + \\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}% + \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]% + \usekomafont{fromrule}{% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\textwidth}% + \fi + \expandafter\rule\expandafter{\the\@tempdima}{% + \useplength{fromrulethickness}}}% + \fi + \\ + }% + }% + }% + \renewcommand*{\@alignfrom}{1}% +% \end{macrocode} +% Damit ist die Definition des zentrierten Absenders abgeschlossen. Es +% geht weiter mit dem rechtsbündigen Absender. Das ganze wird einfach +% beim linksbündigen Absender abgeschaut.% +% \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird +% berücksichtigt}% +% \begin{macrocode} + \or + \setkomavar{firsthead}{% + \if@logo + \rlap{\usekomavar{fromlogo}}% + \fi + \parbox[b]{\textwidth}{\raggedleft + {\usekomafont{fromname}\strut\ignorespaces + \usekomavar{fromname}% + {% + \ifnum\@rulefrom=1\\[-.5\baselineskip]% + \usekomafont{fromrule}{% + \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}{% + \useplength{fromrulethickness}}}% + \fi + }% + \\ + }% + {\usekomafont{fromaddress}\strut\ignorespaces + \usekomavar{fromaddress}% + \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi% + \if@mobilephone + \\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}% + \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]% + \usekomafont{fromrule}{% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\textwidth}% + \fi + \expandafter\rule\expandafter{\the\@tempdima}{% + \useplength{fromrulethickness}}}% + \fi + \\ + }% + }% + }% + \renewcommand*{\@alignfrom}{2}% +% \end{macrocode} +% Damit ist die Umdefinierung beendet. In allen anderen Fällen wird +% der Kopf nicht verändert. +% \begin{macrocode} + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Der Benutzer kann die Voreinstellung mit einer einfachen Anweisung ändern: +% \begin{macrocode} +\newcommand{\firsthead}{% + \ClassWarning{scrlttr2}{% + Deprecated usage of \string\firsthead.\MessageBreak + You should use \string\setkomavar{firsthead}\MessageBreak + instead of \string\firsthead + } + \setkomavar{firsthead}% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Schrifteinstellungen für den Briefbogen} +% +% \begin{KOMAfont}{foldmark} +% \changes{v2.97c}{2007/05/08}{Neu} +% Die Schrift (hier ist die Farbe der entscheidende Faktor) der Faltmarken. +% \begin{macrocode} +\newkomafont{foldmark}{} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{fromname} +% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}} +% Der Absendername im Briefkopf. +% \begin{macrocode} +\newkomafont{fromname}{} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{fromaddress} +% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}} +% Die Absenderadresse im Briefkopf. +% \begin{macrocode} +\newkomafont{fromaddress}{} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{fromrule} +% \changes{v2.97c}{2007/05/08}{Neu} +% Die Schrift (hier ist die Farbe der entscheidende Faktor) der Linie im +% Absender. +% \begin{macrocode} +\newkomafont{fromrule}{} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{backaddress} +% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}} +% Die Rücksendeadresse. +% \begin{macrocode} +\newkomafont{backaddress}{\sffamily} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{specialmail} +% \changes{v2.97c}{2007/07/06}{Neues Font-Element} +% Die Versandart. +% \begin{macrocode} +\newkomafont{specialmail}{} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{priority} +% \changes{v3.03}{2009/03/04}{Neues Font-Element} +% Grundschrift für die Priorität des Briefs, falls diese A oder B ist. Es wird +% ohne Durchschuss gearbeitet. +% \begin{macrocode} +\newkomafont{priority}{\fontsize{10pt}{10pt}\sffamily\bfseries} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{prioritykey} +% \changes{v3.03}{2009/03/04}{Neues Font-Element} +% Schrift für den Buchstaben der Priorität des Briefs, falls diese A oder B +% ist. Wird nach \texttt{priority} angewandt. Eigentlich sollten hier 9\,mm +% verwendet werden. Dafür wird aber eine frei skalierbare Schrift benötig. Mit +% 24,88\,pt sind wir nur 0,25\,mm kleiner. Das sollte kein Problem +% darstellen. Es wird auch hier ohne Durchschuss gearbeitet. +% \begin{macrocode} +\newkomafont{prioritykey}{\fontsize{24.88pt}{24.88pt}\selectfont} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{PPlogo} +% \changes{v3.03}{2009/03/04}{Neues Font-Element} +% Schrift für das Logo \texttt{P.P.}, das im Anschriftmodus \texttt{PP} +% gesetzt wird. +% \begin{macrocode} +\newkomafont{PPlogo}{\sffamily\bfseries} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{PPdata} +% \changes{v3.03}{2009/03/04}{Neues Font-Element} +% Schrift, die innerhalb des PP-Kopfes für die Daten verwendet wird. +% gesetzt wird. +% \begin{macrocode} +\newkomafont{PPdata}{\sffamily} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{addressee} +% \changes{v2.97c}{2007/07/06}{Neues Font-Element} +% Die komplette Anschrift. +% \begin{macrocode} +\newkomafont{addressee}{} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{toname} +% \changes{v2.97c}{2007/07/06}{Neues Font-Element} +% Der Name des Empfängers in der Anschrift. +% \begin{macrocode} +\newkomafont{toname}{} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{toaddress} +% \changes{v2.97c}{2007/07/06}{Neues Font-Element} +% Die Adresse des Empfängers in der Anschrift. +% \begin{macrocode} +\newkomafont{toaddress}{} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{refname} +% \changes{v2.97c}{2007/05/14}{Neues Font-Element} +% Die Feldnamen in der Geschäftszeile. +% \begin{macrocode} +\newkomafont{refname}{\sffamily\scriptsize} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{refvalue} +% \changes{v2.97c}{2007/05/14}{Neues Font-Element} +% \changes{v2.97d}{2007/10/09}{Voreinstellung korrigiert} +% Die Feldwerte in der Geschäftszeile. +% \begin{macrocode} +\ifnum\scr@compatibility=\@nameuse{scr@v@2.97}\relax + \newkomafont{refvalue}{\sffamily\scriptsize} +\else + \newkomafont{refvalue}{} +\fi +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{placeanddate} +% \changes{v3.12}{2013/07/31}{Neues Font-Element} +% Wird an Stelle einer Geschäftszeile nur Ort und Datum gesetzt, so findet +% dieses Element Anwendung. +% \begin{macrocode} +\newkomafont{placeanddate}{} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{title} +% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}} +% Der Brieftitel. +% \begin{macrocode} +\newkomafont{title}{\normalcolor\sffamily\bfseries} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{subject} +% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}} +% Der Betreff. +% \begin{macrocode} +\newkomafont{subject}{\normalcolor\bfseries} +% \end{macrocode} +% \end{KOMAfont} +% +% \subsubsection{Längen für den Briefbogen} +% +% \begin{macro}{\ltr@len@foldmarkhpos} +% \changes{v2.8q}{2001/10/06}{Neu} +% Abstand der horizontalen Faltmarken von der linken Papierkante. +% \begin{macrocode} +\@newplength{foldmarkhpos} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@foldmarkvpos} +% \changes{v2.97e}{2007/11/10}{Neu} +% Abstand der vertikalen Faltmarken von der oberen Papierkante. +% \begin{macrocode} +\@newplength{foldmarkvpos} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@tfoldmarkvpos} +% \changes{v2.8q}{2001/10/06}{Neu} +% \begin{macro}{\ltr@len@mfoldmarkvpos} +% \changes{v2.97e}{2007/11/08}{Neu} +% \begin{macro}{\ltr@len@bfoldmarkvpos} +% \changes{v2.8q}{2001/10/06}{Neu} +% Abstand der oberen, mittleren und unteren Faltmarken von der oberen +% Papierkante. +% \begin{macrocode} +\@newplength{tfoldmarkvpos} +\@newplength{mfoldmarkvpos} +\@newplength{bfoldmarkvpos} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\ltr@len@lfoldmarkhpos} +% \changes{v2.97e}{2007/11/10}{Neu} +% Abstand linken Faltmarken von der linken Papierkante. +% \begin{macrocode} +\@newplength{lfoldmarkhpos} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@pfoldmarklength} +% \changes{v2.97e}{2007/11/19}{Neu} +% \begin{macro}{\ltr@len@hfoldmarklength} +% \changes{v2.97e}{2007/11/10}{Neu} +% \begin{macro}{\ltr@len@mfoldmarklength} +% \changes{v2.97e}{2007/11/10}{Neu} +% \begin{macro}{\ltr@len@bfoldmarklength} +% \changes{v2.97e}{2001/11/10}{Neu} +% \begin{macro}{\ltr@len@lfoldmarklength} +% \changes{v2.97e}{2001/11/10}{Neu} +% Länge der Lochmarke und der oberen, mittleren und unteren horizontalen und +% der (linken) vertikalen Faltmarke. +% \begin{macrocode} +\@newplength{pfoldmarklength} +\@newplength{tfoldmarklength} +\@newplength{mfoldmarklength} +\@newplength{bfoldmarklength} +\@newplength{lfoldmarklength} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\ltr@len@foldmarkthickness} +% \changes{v2.97c}{2007/05/08}{Neu} +% Dicke der Faltmarken. +% \begin{macrocode} +\@newplength{foldmarkthickness} +\@setplength{foldmarkthickness}{.2pt} +% \end{macrocode} +% \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öhe der Rücksendeadresse. +% \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. 0 bedeutet im +% Anschriftmodus \texttt{PP} 8\,mm, ansonsten wirklich 0\,mm. Außerdem wird im +% Anschriftmodus \texttt{PP} die Pseudolänge auch für den Abstand vom rechten +% Rand des Adressfensters verwendet. +% \begin{macrocode} +\@newplength{toaddrindent} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@PPheadheight} +% \changes{v3.03}{2009/03/04}{Neu}% +% Höhe des PP-Kopfes in den Anschriftmodi \texttt{PP}, +% \texttt{backgroundimage} und \texttt{image}. 0 bedeutet hier 20,74\,pt. +% \begin{macrocode} +\@newplength{PPheadheight} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@PPheadwidth} +% \changes{v3.03}{2009/03/04}{Neu}% +% Breite des PP-Kopfes im Anschriftmodus \texttt{PP}. 0 bedeutet hier 42\,mm. +% \begin{macrocode} +\@newplength{PPheadwidth} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@PPdatamatrixvskip} +% \changes{v3.03}{2009/03/04}{Neu}% +% Abstand zwischen PP-Kopf und DataMatrix im Anschriftmodus \texttt{PP}. 0 +% bedeutet hier 9\,mm. +% \begin{macrocode} +\@newplength{PPdatamatrixvskip} +% \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} +% \changes{v3.03b}{2009/06/25}{Implementierung an Doku angepasst} +% Höhe des Adressfensters mit Rücksendeadresse +% \begin{macrocode} +\@newplength{toaddrheight} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@locvpos} +% \changes{v2.97e}{2007/11/07}{Neu} +% Abstand der Absenderergänzung von der oberen Papierkante. +% \begin{macrocode} +\@newplength{locvpos} +% \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@lochpos} +% \changes{v2.97e}{2007/11/07}{Neu} +% Abstand der Absenderergänzung von der linken Papierkante bzw. wenn negativ +% von der rechten Papierkante. +% \begin{macrocode} +\@newplength{lochpos} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@locheight} +% \changes{v2.97e}{2007/11/07}{Neu} +% Höhe der Absenderergänzung. +% \begin{macrocode} +\@newplength{locheight} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@refvpos} +% \changes{v2.8q}{2001/10/06}{Neu} +% Abstand der Geschäftszeile 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äftszeile. +% \begin{macrocode} +\@newplength{refwidth} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@refhpos} +% \changes{v2.9l}{2003/01/28}{Neu} +% Horizontale Position der Geschäftszeile. +% \begin{macrocode} +\@newplength{refhpos} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@refaftervskip} +% \changes{v2.8q}{2001/10/09}{Neu} +% Abstand nach der Geschäftszeile. +% \begin{macrocode} +\@newplength{refaftervskip} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@sigbeforevskip} +% \changes{v2.8q}{2001/10/09}{Neu} +% Raum für 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ßes 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ßes 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ßes der ersten Seite. +% \begin{macrocode} +\@newplength{firstfootwidth} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@firstfoothpos} +% \changes{v3.05}{2009/11/09}{Neu} +% Abstand des Kopfes vom linken Rand der Seite. +% \begin{macrocode} +\@newplength{firstfoothpos} +\@setplength{firstfoothpos}{\maxdimen} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@firstheadvspos} +% \changes{v2.8q}{2001/10/06}{Neu} +% Abstand des Kopfes der ersten Seite von der Papieroberkante. +% \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@firstheadhpos} +% \changes{v3.05}{2009/11/09}{Neu} +% Abstand des Kopfes vom linken Rand der Seite. +% \begin{macrocode} +\@newplength{firstheadhpos} +\@setplength{firstheadhpos}{\maxdimen} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@fromrulewidth} +% \changes{v2.8q}{2002/01/28}{Neu} +% Die Länge einer eventuell gesetzten Linie im Absender. Negative +% Werte bedeuten, dass die Länge automtaisch bestimmt wird. +% \begin{macrocode} +\@newplength{fromrulewidth} +\@setplength{fromrulewidth}{0pt} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@fromrulethickness} +% \changes{v2.97c}{2007/05/08}{Neue Pseudolänge \texttt{fromrulewidth}} +% Die Dicke einer eventuell gesetzte Linie im Absender. +% \begin{macrocode} +\@newplength{fromrulethickness} +\@setplength{fromrulethickness}{.4pt} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{Fuß des Briefbogens} +% +% \begin{macro}{\firstfoot} +% \changes{v3.08}{2010/10/28}{der Fuß des Briefbogens wird über eine +% Variable realisiert} +% \begin{macro}{\@firstfoot} +% \changes{v3.08}{2010/10/28}{der Fuß des Briefbogens wird über eine +% Variable realisiert} +% \begin{KOMAvar}{firstfoot} +% \changes{v3.08}{2010/10/28}{Neu} +% \begin{macrocode} +% Der Fuß des Briefbogens ist in der Voreinstellung leer. +\newkomavar{firstfoot} +\newcommand*{\@firstfoot}{% + \ClassWarning{scrlttr2}{% + Deprecated usage of \string\@firstfoot.\MessageBreak + \string\usekomavar{firstfoot} should be used\MessageBreak + instead of \string\@firstfoot + }% + \usekomavar{firstfoot}% +} +% \end{macrocode} +% Dies kann jedoch über eine einfache Benutzeranweisung geändert werden: +% \begin{macrocode} +\newcommand{\firstfoot}{% + \ClassWarning{scrlttr2}{% + Deprecated usage of \string\firstfoot.\MessageBreak + You should use \string\setkomavar{firstfoot}\MessageBreak + instead of \string\firstfoot + } + \setkomavar{firstfoot}% +} +% \end{macrocode} +% \end{KOMAvar} +% \end{macro} +% \end{macro} +% +% +% \subsubsection{Ausgabe des Briefbogens} +% +% Die Ausgabe selbst erfolgt derzeit über die |\opening|-Anweisung, die in +% einem späteren Abschnitt implementiert ist. +% +% \begin{macro}{\move@topt} +% \changes{v2.8n}{2001/09/07}{Neu} +% Für die folgenden Aktionen wird ein Makro benötigt, 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ürlich wird auch ein Makro benötigt, um vertikal von einer relativen +% Papierposition wieder auf die relative Seitenposition zurück 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ür die folgenden Aktionen wird außerdem ein Makro benötigt, 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ürlich wird auch ein Makro benötigt, um horizontal von einer relativen +% Papierposition wieder auf die relative Seitenposition zurück 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} +% \changes{v2.95}{2006/03/23}{Absatzformatierung mit \cs{setparsizes}} +% \changes{v2.97e}{2007/11/20}{\cs{long}} +% Ausserdem wird ein vertikales Äquivalent zu |\rlap| benötigt. +% \begin{macrocode} +\newcommand{\vb@t@z}[1]{{% + \setbox0\vbox to\z@{#1\vss}% + \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative + \setlength{\baselineskip}{\z@}% + \setlength{\@tempdima}{\ht0}\addtolength{\@tempdima}{\dp0}% + \box0\vskip-\@tempdima% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@foldmarks} +% \changes{v2.97e}{2007/11/08}{\texttt{mfoldmarkvpos} wird verwendet} +% Für die Faltmarken müssen nicht nur Abstände definiert werden, es wird auch +% ein Befehl benötigt, um die Faltmarken zu setzen. +% \begin{macro}{\@hfoldmark} +% \changes{v2.97e}{2007/11/08}{Neu (intern)} +% Dabei werden nur die horizontalen Faltmarken gesetzt, die tatsächlich +% existieren. +% \begin{macro}{\@foldmark} +% \changes{v2.8n}{2001/09/07}{Neu} +% \changes{v2.95}{2006/06/06}{\cs{vskip} in \cs{vb@t@z} verschoben, damit es +% vom Satzspiegel unabhängig wird} +% \changes{v2.97c}{2007/05/08}{Dicke konfigurierbar} +% \changes{v2.97c}{2007/05/08}{Schrift (Farbe) konfigurierbar} +% 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ändert +% bleibt. Als Parameter werden der vertikale Abstand zur aktuellen Position +% und die Länder der Marke übergeben. +% \begin{macrocode} +\newcommand*{\@foldmark}[2]{% + \vb@t@z{\setlength{\@tempdima}{#1}% + \addtolengthplength[-.5]{\@tempdima}{foldmarkthickness}% + \vskip \@tempdima + \rlap{\move@topl\hskip\useplength{foldmarkhpos}% + \usekomafont{foldmark}{% + \rule{#2}{\useplength{foldmarkthickness}}}}}% + \ignorespaces +} +\newcommand*{\@hfoldmark}[1]{% + \begingroup + \@expandtwoargs\in@{#1}{\@usefolds}% + \ifin@ + \lowercase{% + \edef\@tempa{% + \noexpand\ifdim \noexpand\useplength{#1foldmarkvpos}=\noexpand\z@ + \noexpand\else + \noexpand\@foldmark{% + \noexpand\useplength{#1foldmarkvpos}% + }{% + \noexpand\useplength{#1foldmarklength}% + }% + \noexpand\fi + }% + }% + \@tempa + \fi + \endgroup +} +% \end{macrocode} +% \begin{macro}{\@vfoldmark} +% \changes{v2.97e}{2007/11/10}{Neu (intern)} +% Für die vertikale(n) Faltmarke(n) gilt prinzipiell das gleiche. Dabei ist +% lediglich zu beachten, dass die Linie hier komplett oberhalb der Grundlinie +% gesetzt wird, also die vertikale Position um die Länge nach unten zu +% verschieben ist. +% \begin{macrocode} +\newcommand*{\@vfoldmark}[1]{% + \begingroup + \@expandtwoargs\in@{#1}{\@usefolds}% + \ifin@ + \ifdim \useplength{lfoldmarkhpos}=\z@\else + \vb@t@z{% + \ifdim \useplength{foldmarkvpos}<\z@ + \nobreak\vskip \paperheight\nobreak + \fi + \vskip \useplength{foldmarkvpos}% + \vskip \useplength{foldmarkthickness}% + \rlap{\move@topl + \setlength{\@tempdima}{\useplength{lfoldmarkhpos}}% + \addtolengthplength[-.5]{\@tempdima}{foldmarkthickness}% + \hskip\@tempdima + \usekomafont{foldmark}{% + \rule{\useplength{foldmarkthickness}}% + {\useplength{lfoldmarklength}}% + }% + }% + }% + \ignorespaces + \fi + \fi + \endgroup +} +\newcommand*{\@foldmarks}{% + \if@fold% + \typeout{Foldmarks: yes}% + \move@topt + \ifdim \useplength{pfoldmarklength}=\z@ + \@setplength{pfoldmarklength}{4mm}% + \fi + \ifdim \useplength{tfoldmarklength}=\z@ + \@setplength{tfoldmarklength}{2mm}% + \fi + \ifdim \useplength{mfoldmarklength}=\z@ + \@setplength{mfoldmarklength}{2mm}% + \fi + \ifdim \useplength{bfoldmarklength}=\z@ + \@setplength{bfoldmarklength}{2mm}% + \fi + \ifdim \useplength{lfoldmarklength}=\z@ + \@setplength{lfoldmarklength}{4mm}% + \fi + \begingroup + \@expandtwoargs\in@{P}{\@usefolds}% + \ifin@ + \@foldmark{.5\paperheight}{\useplength{pfoldmarklength}}% + \fi + \endgroup + \@hfoldmark{T}% + \@hfoldmark{M}% + \@hfoldmark{B}% + \@vfoldmark{L}% + \move@frompt + \else + \typeout{Foldmarks: no}% + \fi% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@savevbox} +% \changes{v2.8n}{2001/09/07}{Neu} +% \changes{v2.8q}{2001/10/30}{zusätzlich 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ührt, weiss letztlich niemand, welche Box dafür +% verantwortlich war. Deshalb definieren wir hier ein Makro, das ggf. eine +% Meldung ausgibt, die erklärt, welches Element die Ursache war und was man +% tun kann. Das erste Argument ist dabei die Sollhöhe 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öhe und das fünfte +% schließlich 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ücksichtigung. +% \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ß explizit in eine Box gesetzt} +% \changes{v2.9l}{2003/01/23}{Positionierung verbessert} +% \changes{v2.97e}{2007/11/22}{Optionen \texttt{firsthead} und +% \texttt{firstfoot} beachten} +% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstheadhpos} +% beachtet} +% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstfoothpos} +% beachtet} +% Ab Version 2.8n werden Kopf und Fuß 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änkte Höhe hat. Diese Höhe ist unabhängig von der normalen Kopfhöhe +% und richtet sich stattdessen nach der Position des Adressfeldes. +% \begin{macrocode} +\newcommand*{\@firstheadfootfield}{% + \if@firsthead + \typeout{Head of first page}% + \move@topt\vskip\useplength{firstheadvpos}% + \vb@t@z{% + \rlap{\move@topl +% \end{macrocode} +% Wenn \texttt{firstheadhpos} positiv und kleiner als die Seitenbreite ist, +% dann ist es der Abstand des Kopfes vom linken Rand. +% Wenn \texttt{firstheadhpos} negativ und betragsmäßig kleiner als die +% Seitenbreite ist, dann ist es der Abstand des Kopfes vom rechten Rand. +% Wenn \texttt{firstheadhpos} größer als die Seitenbreite ist, dann wird der +% Kopf zentriert. +% Wenn \texttt{firstheadhpos} kleiner als die negative Seitenbreite ist, dann +% wird der Kopf am linken Rand des Satzspiegels ausgerichtet. +% \begin{macrocode} + \ifdim\useplength{firstheadhpos}<\paperwidth + \ifdim \useplength{firstheadhpos}>-\paperwidth + \ifdim \useplength{firstheadhpos}<\z@ + \setlength\@tempskipa{\paperwidth}% + \addtolengthplength{\@tempskipa}{firstheadhpos}% + \addtolengthplength[-]{\@tempskipa}{firstheadwidth}% + \else + \setlength{\@tempskipa}{\useplength{firstheadhpos}}% + \fi + \else + \setlength\@tempskipa{\oddsidemargin}% + \addtolength\@tempskipa{1in}% + \fi + \else + \setlength\@tempskipa{.5\paperwidth}% + \addtolengthplength[-.5]{\@tempskipa}{firstheadwidth}% + \fi + \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änge lokal +% entsprechend gesetzt. Außerdem wird dafür gesorgt, dass |\parfillskip| hier +% nicht berücksichtigt wird. +% \begin{macrocode} + \setlength{\textwidth}{\useplength{firstheadwidth}}% + \setlength{\parfillskip}{\z@ \@plus 1fil}% + \@savevbox{\@tempskipa}{\noindent\usekomavar{firsthead}% + \vskip \z@ \@plus .00001fil}% + {head of first page}{firstheadvpos}{\setkomavar}% + }% + }% + }% + \vskip-\useplength{firstheadvpos}\move@frompt + \else + \typeout{No head at first page}% + \fi + \move@topt + \if@firstfoot + \typeout{Foot of first page}% + \vb@t@z{% + \rlap{\move@topl +% \end{macrocode} +% Wenn \texttt{firstfoothpos} positiv und kleiner als die Seitenbreite ist, +% dann ist es der Abstand des Kopfes vom linken Rand. +% Wenn \texttt{firstfoothpos} negativ und betragsmäßig kleiner als die +% Seitenbreite ist, dann ist es der Abstand des Kopfes vom rechten Rand. +% Wenn \texttt{firstfoothpos} größer als die Seitenbreite ist, dann wird der +% Kopf zentriert. +% Wenn \texttt{firstfoothpos} kleiner als die negative Seitenbreite ist, dann +% wird der Kopf am linken Rand des Satzspiegels ausgerichtet. +% \begin{macrocode} + \ifdim\useplength{firstfoothpos}<\paperwidth + \ifdim \useplength{firstfoothpos}>-\paperwidth + \ifdim \useplength{firstfoothpos}<\z@ + \setlength\@tempskipa{\paperwidth}% + \addtolengthplength{\@tempskipa}{firstfoothpos}% + \addtolengthplength[-]{\@tempskipa}{firstfootwidth}% + \else + \setlength{\@tempskipa}{\useplength{firstfoothpos}}% + \fi + \else + \setlength\@tempskipa{\oddsidemargin}% + \addtolength\@tempskipa{1in}% + \fi + \else + \setlength\@tempskipa{.5\paperwidth}% + \addtolengthplength[-.5]{\@tempskipa}{firstfootwidth}% + \fi + \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ßes ist, wird diese Länge lokal +% entsprechend gesetzt. Außerdem wird dafür gesorgt, dass |\parfillskip| hier +% nicht berücksichtigt wird. +% \begin{macrocode} + \setlength{\textwidth}{\useplength{firstfootwidth}}% + \setlength{\parfillskip}{\z@ \@plus 1fil}% + \vbox{\hsize\useplength{firstfootwidth}\noindent + \usekomavar{firstfoot}}% + }% + }% + }% + \else + \typeout{No foot at first page}% + \fi + \move@frompt% + {% + \setlength{\@tempdima}{1in}\addtolength{\@tempdima}{\topmargin}% + \addtolength{\@tempdima}{\headheight}% + \addtolength{\@tempdima}{\headsep}% + \addtolength{\@tempdima}{\textheight}% + \addtolength{\@tempdima}{\footskip}% + \if@firstfoot + \addtolengthplength[-1]{\@tempdima}{firstfootvpos}% + \else + \addtolength{\@tempdima}{-\paperheight}% + \fi + \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ändert} +% \changes{v2.8q}{2002/06/03}{Sonderbehandlung für Adressfeld rechts} +% \changes{v2.9o}{2003/02/20}{\cs{noindent} eingefügt bei +% \texttt{specialmail}} +% \changes{v2.96}{2006/07/31}{Benutzung von \cs{backaddr@format}} +% \changes{v3.03}{2009/03/04}{Priorität kann Versandart ersetzen} +% \changes{v3.03}{2009/03/04}{Neue Anschriftmodi \texttt{PP}, +% \texttt{backgroundimage}, \texttt{addresseeimage}} +% \changes{v3.03b}{2009/06/30}{Schreibfehler bei »addressee« korrigiert} +% \changes{v3.06a}{2010/07/29}{Absatzparameter werden passend eingestellt} +% Dasselbe gilt auch für das Adressfeld für Fensterumschläge. Die +% Rücksendeadresse und die Briefart werden dabei mit eigenen +% Formatieranweisungen gesetzt. +% \begin{macrocode} +\newcommand*{\@addrfield}{% + \ifcase \@afieldmode\relax + \typeout{Address: No}% + \or + \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 + \ifcase \ltr@priority + \ifkomavarempty{specialmail}{}{% + \edef\@tempa{\@tempa\@tempb specialmail}\def\@tempb{,\space}% + }% + \or + \edef\@tempa{\@tempa\@tempb B-Economy}\def\@tempb{,\space}% + \or + \edef\@tempa{\@tempa\@tempb A-Priority}\def\@tempb{,\space}% + \fi + \typeout{Address (\@tempa\@tempb addressee)}% + \endgroup% + \move@topt\vskip\useplength{toaddrvpos}% + \vb@t@z{{\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative + \rlap{\move@topl + \setlengthtoplength{\@tempskipa}{toaddrhpos}% + \ifdim \@tempskipa<\z@ + \addtolength{\@tempskipa}{\paperwidth}% + \addtolengthplength[-]{\@tempskipa}{toaddrwidth}% + \fi + \hskip\@tempskipa + \@savevbox{\useplength{toaddrheight}}{\hsize\useplength{toaddrwidth}% + \@savevbox[\vss]{\useplength{backaddrheight}}{% + \hsize\useplength{toaddrwidth}% + \if@baddr + \ifkomavarempty{backaddress}{}{{% + \noindent% + \def\\{\usekomavar{backaddressseparator}\@ogobble}% + \backaddr@format{\scriptsize\usekomafont{backaddress}% + \usekomavar{backaddress}}}}% + \fi + }{backaddress}{backaddrheight}{\setkomavar}% + \ifcase \ltr@priority + \or + \setkomavar{specialmail}{% + {\usekomafont{priority}{% + {\usekomafont{prioritykey}{B}}% + -ECONOMY}}% + }% + \or + \setkomavar{specialmail}{% + {\usekomafont{priority}{% + {\usekomafont{prioritykey}{A}}% + -PRIORITY}}% + }% + \fi + \ifkomavarempty{specialmail}{}{% + \vbox{\hsize\useplength{toaddrwidth}% + \noindent\hspace*{\useplength{specialmailindent}}% + \specialmail@format{% + \usekomafont{specialmail}\usekomavar{specialmail}}% + \hspace*{\useplength{specialmailrightindent}}}% + }% + \vfil% + \noindent\hskip\useplength{toaddrindent}% + \setlength{\@tempdima}{\useplength{toaddrwidth}}% + \addtolengthplength[-2]{\@tempdima}{toaddrindent}% + \vbox{\hsize\@tempdima\raggedright + \usekomafont{addressee}{% + \usekomafont{toname}{\usekomavar{toname}\\}% + \usekomafont{toaddress}{\usekomavar{toaddress}}}}% + \vfil\null\vskip-\baselineskip}% + {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 + \begingroup% +% \end{macrocode} +% In den Modi \texttt{PP}, \texttt{backgroundimage} oder \texttt{addresseeimage} +% gibt es weder Rücksendeadresse noch Versandart aber ebenfalls eine Priorität. +% \begin{macrocode} + \if@baddr + \let\@tempa\@empty\let\@tempb\@empty + \ifcase \@afieldmode\relax\or\or + \def\@tempa{PP-mode}\def\@tempb{,\space}% + \or + \def\@tempa{backgroundimage-mode}\def\@tempb{,\space}% + \or + \def\@tempa{image-mode}\def\@tempb{,\space}% + \fi + \ifkomavarempty{backaddress}{}{% + \edef\@tempa{\@tempa\@tempb backaddress ignored}\def\@tempb{,\space}% + }% + \else + \let\@tempa\@empty\let\@tempb\@empty + \fi + \ifcase \ltr@priority + \ifkomavarempty{specialmail}{}{% + \edef\@tempa{\@tempa\@tempb specialmail ignored}\def\@tempb{,\space}% + }% + \or + \edef\@tempa{\@tempa\@tempb B-Economy}\def\@tempb{,\space}% + \or + \edef\@tempa{\@tempa\@tempb A-Priority}\def\@tempb{,\space}% + \fi + \typeout{Address (\@tempa\@tempb addressee)}% + \endgroup% + \move@topt\vskip\useplength{toaddrvpos}% + \vb@t@z{{% + \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative + \ifdim \useplength{toaddrindent}=\z@ + \@setplength{toaddrindent}{8mm}% + \fi + \ifdim \useplength{PPheadheight}=\z@ + \@setplength{PPheadheight}{20.74pt}% + \fi + \ifdim \useplength{PPheadwidth}=\z@ + \@setplength{PPheadwidth}{42mm}% + \fi + \ifdim \useplength{PPdatamatrixvskip}=\z@ + \@setplength{PPdatamatrixvskip}{9mm}% + \fi + \rlap{\move@topl + \setlengthtoplength{\@tempskipa}{toaddrhpos}% + \ifdim \@tempskipa<\z@ + \addtolength{\@tempskipa}{\paperwidth}% + \addtolengthplength[-]{\@tempskipa}{toaddrwidth}% + \fi + \hskip\@tempskipa + \@savevbox{\useplength{toaddrheight}}{\hsize\useplength{toaddrwidth}% + \ifnum\@afieldmode=\tw@ +% \end{macrocode} +% Modus \texttt{PP}. +% \begin{macrocode} + \vskip 2pt\relax + \hskip \useplength{toaddrindent}\relax + \fbox{% + \vbox to \dimexpr \useplength{PPheadheight}-2\fboxsep\relax{% + \setlength{\parindent}{0pt}% + \hsize \dimexpr \useplength{PPheadwidth}-2\fboxsep\relax + \setbox\@tempboxa\hbox{% + {\fontsize{20.74pt}{20.74pt}\selectfont + \usekomafont{PPlogo}{P.P.}}\hskip 2mm% + }% + \dp\@tempboxa\z@ + \setlength{\@tempdima}{\hsize}% + \addtolength{\@tempdima}{-\wd\@tempboxa}% + \hbox{\box\@tempboxa + \vbox to \dimexpr + \useplength{PPheadheight}-2\fboxsep\relax{% + \vss\hsize\@tempdima + \raggedright + \fontsize{8pt}{9pt}\selectfont\usekomafont{PPdata}% + \usekomavar*{fromzipcode}\usekomavar{zipcodeseparator}% + \usekomavar{fromzipcode}\unskip\strut\\ + \usekomavar{place}\unskip\strut + \hfill + }% + }% + \vss + }% + }% + \hskip 1mm + \mbox{% + \vbox to \useplength{PPheadheight}{% + \addtolengthplength[-]{\hsize}{PPheadwidth}% + \addtolength{\hsize}{-1mm}% + \addtolengthplength[-2]{\hsize}{toaddrindent}% + \setlength{\parindent}{0pt}% + \fontsize{8pt}{9pt}\selectfont\usekomafont{PPdata}% + \hfill\usekomavar{PPcode} + \vss + \ifcase \ltr@priority + \or + \usekomafont{priority}{% + {\usekomafont{prioritykey}{B}}% + -ECONOMY\hss\vskip-\dp\strutbox + }% + \or + \usekomafont{priority}{% + {\usekomafont{prioritykey}{A}}% + -PRIORITY\hss\vskip-\dp\strutbox + }% + \fi + \vss + }% + }% + \vskip 1mm + \vskip-\ht\strutbox + \noindent\hskip\useplength{toaddrindent}% + \hrulefill% + \hskip\useplength{toaddrindent}% + \vbox to\z@{\hsize\z@ + \vskip \useplength{PPdatamatrixvskip}\relax + \llap{\usekomavar{PPdatamatrix}\hskip\useplength{toaddrindent}}% + \vss + }% + \else +% \end{macrocode} +% Modus \texttt{backgroundimage} oder \texttt{image}. +% \begin{macrocode} + \vskip 1mm + \noindent\expandafter\hskip\useplength{toaddrindent}% + \vbox to \useplength{PPheadheight}{% + \addtolengthplength[-2]{\hsize}{toaddrindent}% + \setlength{\parindent}{0pt}% + \usekomavar{addresseeimage}% + \vss + }% + \vskip 1mm + \vskip\dp\strutbox + \fi + \ifnum \@afieldmode=4 \else + \vfil% + \noindent\hskip\useplength{toaddrindent}% + \setlength{\@tempdima}{\useplength{toaddrwidth}}% + \addtolengthplength[-2]{\@tempdima}{toaddrindent}% + \vbox{\hsize\@tempdima + \ifkomavarempty{PPdatamatrix}{}{% + \addtolength{\hsize}{-2mm}% + \settowidth\@tempdima{\usekomavar{PPdatamatrix}}% + \addtolength{\hsize}{-\@tempdima}% + }% + \raggedright + \usekomafont{addressee}{% + \usekomafont{toname}{\usekomavar{toname}\\}% + \usekomafont{toaddress}{\usekomavar{toaddress}}}}% + \fi + \vss\null}% + {address field}{toaddrheight}% + {\string\begin{letter}}% + }}}% + \vskip-\useplength{toaddrvpos}\move@frompt + \fi +} +% \end{macrocode} +% \begin{macro}{\specialmail@format} +% \changes{v2.97c}{2007/07/06}{neu (intern)} +% Die Anweisung, die für das Aussehen der Versandart zuständig ist. +% \begin{macrocode} +\newcommand*{\specialmail@format}[1]{} +\let\specialmail@format\underline +% \end{macrocode} +% \end{macro} +% +% \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ügt} +% \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ür Adressfeld rechts} +% Das "`locfield"' wird unabhängig 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% +% \end{macrocode} +% \changes{v2.97e}{2007/11/13}{Der Absender kann nun ebenfalls in der +% Absenderergänzung stehen} +% \changes{v2.98b}{2008/01/30}{Absenderergänzung immer setzen, wenn +% verwendet} +% Je nach Absenderanordnung muss hier nun ebenfalls etwas getan werden. +% Der Fall 0, also linksbündiger Absender im Kopf spielt hier keine Rolle. +% \begin{macrocode} + \ifcase\@alignfrom +% \end{macrocode} +% Im Fall 1, also zentrierter Absender im Kopf wird jedoch das Logo hier +% platziert, also darf die Absenderergänzung nicht leer sein. +% \begin{macrocode} + \or + \if@logo + \ifkomavarempty{location}{\setkomavar{location}{\null}}{}% + \fi +% \end{macrocode} +% Im Fall 2, also rechtsbündiger Absender im Kopf, ist auch nichts zu tun. +% \begin{macrocode} + \or +% \end{macrocode} +% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier +% eine Menge ausgegeben, also darf die Absenderergänzung nicht leer sein. +% \begin{macrocode} + \or + \ifkomavarempty{location}{\setkomavar{location}{\null}}{}% +% \end{macrocode} +% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier +% eine Menge ausgegeben, also darf die Absenderergänzung nicht leer sein. +% \begin{macrocode} + \or + \ifkomavarempty{location}{\setkomavar{location}{\null}}{}% +% \end{macrocode} +% Alle anderen Fälle sind wie hier ebenfalls ohne Bedeutung. +% \begin{macrocode} + \fi + \ifkomavarempty{location}{% + \typeout{Location field: empty}% + }{% + \typeout{Location field: yes}% + \ifdim \useplength{lochpos}=\z@% + \@setplength{lochpos}{\useplength{toaddrhpos}}% + \fi + \ifdim \useplength{locvpos}=\z@% + \@setplength{locvpos}{\useplength{toaddrvpos}}% + \fi + \ifdim \useplength{locheight}=\z@% + \@setplength{locheight}{\useplength{toaddrheight}}% + \fi + \move@topt\vskip\useplength{locvpos}% + \vb@t@z{\noindent\makebox[0pt][l]{% + \move@topl + \setlengthtoplength[-]{\@tempskipa}{lochpos}% + \ifdim \@tempskipa<\z@ + \addtolength{\@tempskipa}{\paperwidth}% + \else + \addtolengthplength{\@tempskipa}{locwidth}% + \fi + \hskip\@tempskipa + \makebox[0pt][r]{% + \@savevbox{\useplength{locheight}}{% + \noindent\hsize\useplength{locwidth}% +% \end{macrocode} +% In einigen Fällen der Absenderanordnung muss hier nun eine ganze Menge getan +% werden. In anderen ist hingegen nur wenig zu tun. +% Im Fall 0, also linksbündiger Absender im Kopf wird nur die +% Absenderergänzung ausgegeben (das erfolgt nach der Fallunterscheidung). +% \begin{macrocode} + \ifcase\@alignfrom +% \end{macrocode} +% Im Fall 1, also zentrierter Absender im Kopf wird jedoch das Logo hier +% platziert, die Absenderergänzung wird ggf. danach ausgegeben (das erfolgt +% nach der Fallunterscheidung). +% \changes{v2.98a}{2008/01/10}{bei zentriertem Absender wird die +% Absenderergänzung ggf. unter dem Logo ausgegeben} +% \begin{macrocode} + \or + \if@logo + \ifkomavarempty{fromlogo}{\null}{% + {\raggedleft\noindent\usekomavar{fromlogo}\\ + \vskip\parskip}\noindent}% + \fi +% \end{macrocode} +% Im Fall 2, also rechtsbündiger Absender im Kopf, wird auch nur die +% Absenderergänzung ausgegeben (das erfolgt nach der Fallunterscheidung). +% \begin{macrocode} + \or +% \end{macrocode} +% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier +% sozusagen der linksbündige Kopf nachgebaut. Das Logo steht dabei +% ggf. rechtsbündig oben. +% \begin{macrocode} + \or + \if@logo + \ifkomavarempty{fromlogo}{}{% + \raggedleft\usekomavar{fromlogo}\par}% + \fi + \raggedright +% \end{macrocode} +% Zuerst wird der Name gesetzt. Dabei soll eine eigene Schriftart für +% 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änge dieser Linie kann vom Anwender +% bestimmt oder automatisch gewählt werden. Es werden dabei die +% Pseudo-Längen \texttt{fromrulewidth} und \texttt{fromrulethickness} +% verwendet. Ist \texttt{fromrulewidth} 0, so wird sie automatisch +% bestimmt. Bei der automatischen Längenbestimmung wird einfach eine Linie +% über die Gesamtbreite der Absenderergänzung gesetzt. +% \begin{macrocode} + {% + \ifnum\@rulefrom=1\\[-.5\baselineskip]% + \usekomafont{fromrule}{% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\useplength{locwidth}}% + \fi + \expandafter\rule\expandafter{\the\@tempdima}{% + \useplength{fromrulethickness}}% + }% + \fi + }% + \\ + }% +% \end{macrocode} +% Als Nächstes wird die Absenderadresse einschließlich 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.% +% \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird +% berücksichtigt}% +% \begin{macrocode} + {\usekomafont{fromaddress}\strut\ignorespaces + \usekomavar{fromaddress}% + \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi% + \if@mobilephone + \\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}% + \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ähnt, kann auch an dieser Stelle eine Linie +% gesetzt werden. +% \begin{macrocode} + \ifnum\@rulefrom=2\\[-.5\baselineskip]% + \usekomafont{fromrule}{% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\useplength{locwidth}}% + \fi + \expandafter\rule\expandafter{\the\@tempdima}{% + \useplength{fromrulethickness}}}% + \fi + \\ + }% +% \end{macrocode} +% Damit ist die Definition des linksbündigen Absenders in der +% Absenderergänzung abgeschlossen. +% Im Fall 4, also rechtsbündiger Absender in der Absenderergänzung wird hier +% exakt wie für Fall 3 verfahren. Nur ist jetzt alles rechtsbündig.% +% \changes{v3.12}{2013/05/29}{Variable \texttt{frommobilephone} wird +% berücksichtigt}% +% \begin{macrocode} + \or + \raggedleft + \if@logo + \ifkomavarempty{fromlogo}{}{\usekomavar{fromlogo}\par}% + \fi + {\usekomafont{fromname}\strut\ignorespaces + \usekomavar{fromname}% + {% + \ifnum\@rulefrom=1\\[-.5\baselineskip]% + \usekomafont{fromrule}{% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\useplength{locwidth}}% + \fi + \expandafter\rule\expandafter{\the\@tempdima}{% + \useplength{fromrulethickness}}% + }% + \fi + }% + \\ + }% + {\usekomafont{fromaddress}\strut\ignorespaces + \usekomavar{fromaddress}% + \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi% + \if@mobilephone% + \\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}% + \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]% + \usekomafont{fromrule}{% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\useplength{locwidth}}% + \fi + \expandafter\rule\expandafter{\the\@tempdima}{% + \useplength{fromrulethickness}}}% + \fi + \\ + }% +% \end{macrocode} +% In allen anderen Fällen wird ebenfalls die Absenderergänzung gesetzt. +% \begin{macrocode} + \fi + \usekomavar{location}% +% \end{macrocode} +% Zum Schluss wird noch verhindert, dass wegen nicht vollen vertikalen Boxen +% gemotzt wird. +% \begin{macrocode} + \vskip \z@ \@plus .00001fil}% + {location field}{locheight}{\setkomavar}% + }}% + }% + \vskip-\useplength{locvpos}\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} +% \changes{v2.97c}{2007/05/14}{Neue Fontelemente} +% Je nachdem, welche Felder definiert sind, muss eine geschäftsmäßiger +% Standardbrief oder ein eher persönliches Aussehen gewählt werden. +% \begin{macro}{\do@set@reffield} +% \changes{v3.09}{2011/03/06}{Neu (intern)} +% Das ist ein \cs{do} für die Felder und bekommt innerhalb von +% \cs{@datefield} unterschiedliche Bedeutungen. An dieser Stelle wird es daher +% nur reserviert. +% \begin{macrocode} +\newcommand*{\do@set@reffield}{} +% \end{macrocode} +% \begin{macro}{\@set@reffield} +% Einzelne Felder werden mit Hilfe dieses Makros gesetzt. Als Parameter wird +% der Name des Feldes übergeben. 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\usekomafont{refvalue}\usekomavar{#1}}% + \setbox0\hbox{\strut\usekomafont{refname}\usekomavar*{#1}}% + \ifdim \@tempdima<\wd0\setlength{\@tempdima}{\wd0}\fi + \if@tempswa\enskip\hfill\fi + \parbox[t]{\@tempdima}{\noindent\raggedright + \strut\box0\\\usekomafont{refvalue}\strut\usekomavar{#1}}% + \@tempswatrue + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@test@reffield} +% \changes{v3.09}{2011/03/06}{Neu (intern)} +% Dieses Makro testet, ob ein Feld tatsächlich zu setzen ist und setzt +% ggf. \cs{@tempswa}. +% \begin{macrocode} +\newcommand*{\@test@reffield}[1]{% + \ifkomavarempty{#1}{}{% +% \if@tempswa\l@addto@macro\@tempa{, }\fi +% \l@addto@macro\@tempa{#1}% + \@tempswatrue + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@set@reffields} +% \changes{v2.8q}{2002/01/14}{Neu} +% Dieses Makro enthält alle Aufrufe von \cs{@set@reffield}, die durchzuführen +% sind. Das Makro kann mit Hilfe von \cs{addtoreffields} erweitert werden. +% \begin{macrocode} +\newcommand*{\@set@reffields}{}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\addtoreffields} +% \changes{v3.09}{2011/03/06}{Verwendung von \cs{do@set@reffield} an Stelle +% von \cs{@set@reffield}} +% 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}{\do@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äftszeile 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 üblichen 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ügt} +% \changes{v2.8o}{2001/09/18}{für den Brieftyp \texttt{KOMAold} anschließend +% einen zusätzlichen vertikalen Abstand eingefügt} +% \changes{v2.8q}{2001/11/13}{\cs{rlap} eingefügt} +% \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ügt} +% \changes{v2.95}{2006/03/23}{Absatzeinzug mit \cs{setparsizes} abschalten} +% \changes{v2.97c}{2007/05/14}{Neue Font-Elemente} +% \changes{v3.09}{2011/03/06}{\cs{do@set@reffield} muss initialisiert +% werden} +% \begin{macrocode} +\newcommand*{\@datefield}{{% + \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative + \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ächst, um wieviel die Geschäftszeile schmaler ist als der +% Textbereich. +% \begin{macrocode} + \setlength\@tempdima{\textwidth}% + \addtolengthplength[-]{\@tempdima}{refwidth}% +% \end{macrocode} +% Dann wird bestimmt, wie groß der linke Rand tatsächlich ist. +% \begin{macrocode} + \setlength\@tempdimb{\oddsidemargin}% + \addtolength\@tempdimb{1in}% +% \end{macrocode} +% Ebenso wird bestimmt, wie groß der linke und rechte Rand zusammen sind. +% \begin{macrocode} + \setlength{\@tempdimc}{\paperwidth}% + \addtolength{\@tempdimc}{-\textwidth}% +% \end{macrocode} +% Jetzt wird aus dem Gesamtrand der Geschäftszeile der linke Rand der +% Geschäftszeile so bestimmt, dass das Randverhältnis dabei unverändert +% 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 kontrollieren wir, ob überhaupt etwas auszugeben ist: +% \begin{macrocode} + \@tempswafalse + \let\do@set@reffield\@test@reffield +% \let\@tempa\@empty + \@set@reffields + \ifcase \@datepos\else\@test@reffield{date}\fi + \if@tempswa +% \typeout{Reference line(s) with: \@tempa}% + \@tempswafalse +% \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 + \ifnum \@datepos=2 + \@set@reffields + \if@tempswa + \@tempswafalse + \@set@reffield{date}% + \fi + \fi + \let\do@set@reffield\@set@reffield + \@set@reffields% + \if@tempswa + \ifnum \@datepos=1 \@set@reffield{date}\fi% +% \end{macrocode} +% Seit Version~2.97c wird hier auch noch getestet, ob die Geschäftszeile +% möglicherweise mit zu großer Schrift gesetzt wird. +% \begin{macrocode} + \setbox0\hbox{\usekomafont{refname}\strutbox}% + \ifdim\ht0>\ht\strutbox + \ClassWarningNoLine{scrlttr}{% + Font element `refname' should not be larger than + \string\normalsize!}% + \fi + \setbox0\hbox{\usekomafont{refvalue}\strutbox}% + \ifdim\ht0>\ht\strutbox + \ClassWarningNoLine{scrlttr}{% + Font element `refvalue' should not be larger than + \string\normalsize!}% + \fi + \else +% \end{macrocode} +% Hier landen wir schließlich, wenn gar keine Felder ausgegeben wurden, also +% nur Ort und Datum zu setzen sind. +% \changes{v3.12}{2013/07/31}{neues Element \texttt{placeanddate} wird +% verwendet} +% \begin{macrocode} + \ifcase \@datepos\else + \ifnum \@datepos=1 \enskip\hfill\fi + {\usekomafont{placeanddate}{\ifkomavarempty{place}{}{% + \usekomavar{place}\usekomavar{placeseparator}}% + \usekomavar{date}}}% + \fi + \fi + }% + }% +% \else\typeout{No reference line.}% + \fi + \vskip\useplength{refaftervskip}% + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@maketitle} +% \changes{v2.3b}{1996/01/14}{Verwendung von \cs{sectfont} für 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öße und Schrift des Titels} +% \changes{v2.95}{2006/03/22}{\cs{usekomafont} and Stelle fon \cs{titlefont}} +% \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ängendem Einzug gesetzt} +% \changes{v2.95}{2006/03/23}{Absatzeinzug mit cs{setparsizes} einstellen} +% \changes{v3.01}{2008/11/03}{Verwendung der neuen Pseudolängen +% \texttt{subjectbeforevskip} und \texttt{subjectaftervskip}} +% 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}% + {\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative + \centering\LARGE\usekomafont{title}\usekomavar{title}\par}% + \vskip\baselineskip% + }% +} +\newcommand*{\@subjfield}{{% + \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative + \ifkomavarempty{subject}{% + \typeout{Subject: no}% + }{% + \ifx\raggedsubject\@empty + \ifdim\useplength{subjectvpos}=\z@ + \if@subjafter% + \typeout{Subject: after opening}% + \let\raggedsubject\centering% + \else + \typeout{Subject: before opening}% + \def\raggedsubject{\noindent\@hangfrom}% + \fi + \else + \typeout{Subject: at absolute vertical position}% + \def\raggedsubject{\noindent\@hangfrom}% + \fi + \fi + \ifdim\useplength{subjectvpos}=\z@ + \vskip\useplength{subjectbeforevskip}% + \begingroup + \else + \move@topt\vskip\useplength{subjectvpos}% + \expandafter\vb@t@z\expandafter{% + \fi + \usekomafont{subject}% + \raggedsubject{\if@subj \subject@format{\strut\ignorespaces + \usekomavar*{subject}}\fi}% + \subject@format{\strut\ignorespaces\usekomavar{subject}}\par + \ifdim\useplength{subjectvpos}=\z@ + \endgroup + \vskip\useplength{subjectaftervskip}% + \else + }% + \vskip-\useplength{subjectvpos}\move@frompt + \fi + }% + }% +} +% \end{macrocode} +% \begin{macro}{\ltr@len@subjectvpos} +% \changes{v3.01}{2008/11/03}{Neue Pseudolänge \texttt{subjectvpos}} +% Manchmal ist es günstiger, wenn man den Betreff absolut positionieren +% kann. Das geschieht über diese Pseudolänge, wenn sie \emph{nicht} 0 ist. +% \begin{macrocode} +\@newplength{subjectvpos} +\@setplength{subjectvpos}{0pt} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@subjectaftervskip} +% \changes{v3.01}{2008/11/03}{Neue Pseudolänge \texttt{subjectaftervskip}} +% Abstand nach dem Betreff. Dieser Abstand wird aus Gründen der +% Kompatibilität zu früheren Versionen mit 2\cs{baselineskip} +% voreingestellt. +% \begin{macrocode} +\@newplength{subjectaftervskip} +\@setplength{subjectaftervskip}{2\baselineskip} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@subjectbeforevskip} +% \changes{v3.01}{2008/11/03}{Neue Pseudolänge \texttt{subjectbeforevskip}} +% Abstand zusätzlich vor dem Betreff. Dieser Abstand wird aus Gründen der +% Kompatibilität zu früheren Versionen mit \cs{baselineskip} +% voreingestellt. Es sei darauf hingewiesen, dass hier bereits ein Abstand +% beispielsweise vom Titel existieren kann! +% \begin{macrocode} +\@newplength{subjectbeforevskip} +\@setplength{subjectbeforevskip}{0pt} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Anweisungen für das Briefpapier} +% +% Für das Briefpapier gibt es etwas weniger Anweisungen. Teilweise werden hier +% auch die Anweisungen für den Briefbogen mit verwendet. +% +% \subsubsection{Kopf des Briefpapiers} +% +% Der Kopf des Briefpapiers wird wieder ganz normal über den Seitenstil +% festgelegt. Allerdings kann er entsprechende dem Briefbogen manuell +% definiert werden. +% +% \begin{macro}{\nexthead} +% \changes{v3.08}{2010/10/28}{der Kopf der Folgeseiten wird über eine +% Variable realisiert} +% \begin{macro}{\@nexthead} +% \changes{v3.08}{2010/10/28}{der Kopf der Folgeseiten wird über eine +% Variable realisiert} +% \begin{KOMAvar}{nexthead} +% \changes{v3.08}{2010/10/28}{Neu} +% Die Voreinstellung ist ebenfalls von Optionen abhängig. +% \begin{macrocode} +\newcommand*{\@nexthead}{% + \ClassWarning{scrlttr2}{% + Deprecated usage of \string\@nexthead.\MessageBreak + \string\usekomavar{nexthead} should be used\MessageBreak + instead of \string\@nexthead + }% + \usekomavar{nexthead}% +} +\newkomavar{nexthead} +\setkomavar{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}}% +}% +% \end{macrocode} +% \end{KOMAvar} +% \end{macro} +% Die Voreinstellung ist wiederum mit einer einfachen Benutzeranweisung +% änderbar. +% \begin{macrocode} +\newcommand{\nexthead}{% + \ClassWarning{scrlttr2}{% + Deprecated usage of \string\nexthead.\MessageBreak + You should use \string\setkomavar{nexthead}\MessageBreak + instead of \string\nexthead + } + \setkomavar{nexthead}% +} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{Fuß des Briefpapiers} +% +% \begin{macro}{\nextfoot} +% \changes{v3.08}{2010/10/28}{der Fuß der Folgeseiten wird über eine +% Variable realisiert} +% \begin{macro}{\@nextfoot} +% \changes{v3.08}{2010/10/28}{der Fuß der Folgeseiten wird über eine +% Variable realisiert} +% \begin{KOMAvar}{nextfoot} +% \changes{v3.08}{2010/10/28}{Neu} +% Je nach Optioneneinstellung kann sich die Seitenmarke in der Voreinstellung +% auch im Fuß befinden. +% \begin{macrocode} +\newcommand*{\@nextfoot}{% + \ClassWarning{scrlttr2}{% + Deprecated usage of \string\@nextfoot.\MessageBreak + \string\usekomavar{nextfoot} should be used\MessageBreak + instead of \string\@nextfoot + }% + \usekomavar{nextfoot}% +} +\newkomavar{nextfoot} +\setkomavar{nextfoot}{% + \ifnum\@pageat>2 + \parbox[c]{\textwidth}{% + \ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi + \strut\pagemark% + }% + \fi +} +% \end{macrocode} +% \end{KOMAvar} +% \end{macro} +% Auch diese Einstellung ist per Benutzeranweisung leicht zu ändern. +% \begin{macrocode} +\newcommand{\nextfoot}{% + \ClassWarning{scrlttr2}{% + Deprecated usage of \string\nextfoot.\MessageBreak + You should use \string\setkomavar{nextfoot}\MessageBreak + instead of \string\nextfoot + } + \setkomavar{nextfoot}% +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Die Brief-Umgebung} +% +% \begin{environment}{letter} +% \changes{v2.8q}{2002/01/16}{optionales Argument hinzugefügt} +% \changes{v2.8q}{2002/01/16}{Fußnotenzähler wird zurückgesetzt} +% \changes{v2.9d}{2002/08/12}{Fußnotenzähler wird korrekt zurückgesetzt} +% Diese Umgebung ist etwas anders definiert, als normalerweise von +% \LaTeX gewohnt. Mit ihr können innerhalb eines Dokuments beliebig +% viele Briefe erzeugt werden. Eine der Abweichungen von der +% Standardklasse besteht darin, dass als optionales Argument Optionen +% gesetzt werden können. +% \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ähler und Strafpunkte +% zurückgesetzt 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 übergebenen Optionen ausgeführt. +% \begin{macrocode} + \KOMAoptions{#1}% +% \end{macrocode} +% Zum Schluss werden die per \cs{AtBeginLetter} angegeben Anweisungen +% ausgeführt. +% \begin{macrocode} + \@beginletterhook +}{% + \stopletter\@@par\pagebreak\@@par% +} +% \end{macrocode} +% \begin{macro}{\stopletter} +% Damit man Material am Ende des Briefes einschleusen kann. +% \begin{macro}{\@processto} +% \changes{v2.9r}{2004/06/16}{robust gegen leeren Empfänger} +% \begin{macro}{\@xproc} +% Die Adresse, die als Argument der Briefumgebung übergeben wird, muss in Name +% und Adresse zerlegt werden. +% \begin{macrocode} +\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}{\flushbottom} +% \changes{v2.97c}{2007/05/17}{neue Erweiterung} +% Das Verhalten muss auf der letzten Briefseite wieder \cs{raggedbottom} +% ähneln. Das wird über \cs{stopletter} erreicht. +% \begin{macrocode} +\g@addto@macro\flushbottom{% + \g@addto@macro\stopletter{\vskip \z@\@plus.0001fil\relax}% +} +% \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ügt. Dieser wird auch tatsächlich intern genutzt. Er funktioniert +% prinzipiell wie der |\AtBeginDocument|-Haken. Zunächst macht der Haken rein +% gar nichts. +% \begin{macrocode} +\newcommand{\AtBeginLetter}{\g@addto@macro\@beginletterhook} +\newcommand{\@beginletterhook}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\AtEndLetter} +% \changes{v2.95}{2006/03/22}{Neu} +% Analog zu |\AtBeginLetter| gibt es auch ein |\AtEndLetter|. Als Haken wird +% hierbei |\stopletter| verwendet. +% \begin{macrocode} +\newcommand{\AtEndLetter}{\g@addto@macro\stopletter} +% \end{macrocode} +% \end{macro} +% +% \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}{\opening} +% \changes{v2.8n}{2001/09/08}{Komplett überarbeitet} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \changes{v2.8q}{2002/03/25}{\cs{@PapersizeWarning}} +% \changes{v2.95}{2003/03/23}{Absatzformatierung mit \cs{setparsizes} +% einstellen} +% Denn beim Eröffnungsgruß mit |\opening| wird neben sämtlichen 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 + \ifdim\useplength{subjectvpos}=\z@\else\@subjfield\fi + \@datefield + \@maketitle + \ifdim\useplength{subjectvpos}=\z@\if@subjafter\else\@subjfield\fi\fi + {\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative#1\par}% + {\setlength{\@tempdima}{\baselineskip}% + \addtolength{\@tempdima}{-\parskip}% + \ifdim \@tempdima>\z@\vskip\@tempdima\fi}% + \ifdim\useplength{subjectvpos}=\z@\if@subjafter\@subjfield\fi\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 Schlussgruß und Signatur +% erhöht} +% \changes{v2.5d}{2000/06/10}{Abstand zwischen Schlussgruß 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} +% \changes{v2.95}{2003/03/23}{Absatzformatierung mit \cs{setparsizes} +% einstellen} +% Außer dem Eröffnungsgruß mit |\opening| gibt es natürlich auch einen +% Schlussgruß mit |\closing|, bei dem außerdem die Unterschrift u.\,ä. gesetzt +% wird. +% \begin{macro}{\presig@skip} +% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen +% Schlussgruß und Signatur beinhaltet} +% \changes{v2.8q}{2001/10/09}{Ersetzt durch Pseudo-Länge sigbeforevskip} +% \end{macro} +% \begin{macro}{\setpresigskip} +% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen +% Schlussgruß und Signatur setzt} +% \changes{v2.8q}{2001/10/09}{Mit Hilfe der neuen Pseudo-Längen definiert} +% Das Makro |\presig@skip| beinhaltet dabei den Abstand zwischen Schlussgruß +% und Signatur. Da der Wert über ein Benutzerinterface per |\setpresigskip| +% gesetzt wird, muss hier kein kostbares Längenregister (skip oder dim) +% verschwendet werden, sondern ein Makro reicht aus. In |\setpresigskip| wird +% allerdings noch sichergestellt, dass die Fehlermeldung bei falschem +% Parameter möglichst nicht erst bei Verwendung auftritt. +% \begin{macrocode} +% +%\def\setpresigskip{\@setplength{sigbeforevskip}} +%<*letter> +% \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ötigt, um beim Zerlegen eines mit +% \texttt{\cmd{\\}[\cs{dots}]} zusammengesetzten Arguments das optionale +% Argument in eckigen Klammern abzutrennen. Das Ergebnis steht anschließend 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änge des längsten +% Elements. \cs{@tempdima} enthält beim Aufruf die minimale Länge. +% \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ängenbegrenzung auf \cs{hsize}} +% \changes{v2.9r}{2004/01/28}{das Argument darf leer sein} +% \begin{macrocode} +\newcommand*{\closing}[1]{{% + \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative\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 überarbeitet} +% Ebenfalls möglich 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über 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ändert} +% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf \texttt{\cs{z@} plus +% 1fil} geändert} +% \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 überarbeiten} +% \changes{v2.8q}{2002/01/31}{Fehlendes \% ergänzt} +% \changes{v2.9o}{2003/04/22}{\cs{parfillskip} angepasst} +% \changes{v2.9q}{2004/04/26}{\cs{parfillskip} auf \texttt{1em plus 1fil} +% geändert} +% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf \texttt{\cs{z@} plus +% 1fil} geändert} +% \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} +% +% +% \subsection{Briefspezifische Feld-Variablen} +% +% \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} +% \begin{KOMAvar}{fromzipcode} +% \changes{v3.03}{2009/03/04}{Neu} +% \begin{KOMAvar}{PPcode} +% \changes{v3.03}{2009/03/04}{Neu} +% \begin{KOMAvar}{PPdatamatrix} +% \changes{v3.03}{2009/03/04}{Neu} +% \begin{KOMAvar}{addresseeimage} +% \changes{v3.03}{2009/03/04}{Neu} +% \changes{v3.03b}{2009/06/30}{Schreibfehler korrigiert} +% Zunächst besitzt die Briefklasse einige Variablen, die von Haus aus nicht +% über einen Ausgabenamen verfügen, weil sie üblicherweise 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ängt. +% \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} +\newkomavar{fromzipcode} +\newkomavar{PPcode} +\newkomavar{PPdatamatrix} +\newkomavar{addresseeimage} +% \end{macrocode} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% +% \begin{option}{symbolicnames} +% \changes{v3.12}{2013/05/2013}{neue Option} +% \begin{macro}{\if@scrsymbols} +% \changes{v3.12}{2013/05/2013}{neu (intern)} +% \begin{macro}{\@scrsymbolstrue} +% \changes{v3.12}{2013/05/2013}{neu (intern)} +% \begin{macro}{\@scrsymbolsfalse} +% \changes{v3.12}{2013/05/2013}{neu (intern)} +% Über diese Option kann eingestellt werden, dass an Stelle von +% sprachabhängigen Bezeichnern für einige Variablen Symbole verwendet +% werden. Daztu wird das Paket \textsf{macrosym} benötigt. +% \begin{macrocode} +% +% +%<*option&letter> +\newif\if@scrsymbols +\KOMA@key{symbolicnames}[true]{% + \KOMA@set@ifkey{symbolicnames}{@scrsymbols}{#1}% + \if@scrsymbols + \if@atdocument + \begingroup + \@tempswafalse + \scr@ifundefinedorrelax{Telefon}{\@tempswatrue}{% + \scr@ifundefinedorrelax{FAX}{\@tempswatrue}{% + \scr@ifundefinedorrelax{Email}{\@tempswatrue}{% + \scr@ifundefinedorrelax{Mobilefone}{\@tempswatrue}{% + }% + }% + }% + }% + \if@tempswa + \aftergroup\@scrsymbolsfalse + \ClassWarning{scrlttr2}{Option `symbolicnames' + ignorred.\MessageBreak + You've tried to set option `symbolicnames'\MessageBreak + after \string\begin{document}, but without\MessageBreak + loading package `marvosym' before.\MessageBreak + You should either switch on option\MessageBreak + `symbolicnames' before \string\begin{document}\MessageBreak + or load package `marvosym' in the document\MessageBreak + preamble to avoid this warning% + }% + \fi + \endgroup + \else + \ifstr{\@currname.\@currext}{scrlttr2.cls}{% + \expandafter\AtEndOfClass + }{% + \expandafter\@firstofone + }% + {\RequirePackage{marvosym}}% + \fi + \fi +} +% +%<*body> +%<*letter> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \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} +% \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet} +% \begin{KOMAvar}{faxseparator} +% \changes{v2.8q}{2002/03/25}{Neu} +% \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet} +% \begin{KOMAvar}{emailseparator} +% \changes{v2.8q}{2002/03/25}{Neu} +% \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet} +% \begin{KOMAvar}{urlseparator} +% \changes{v2.8q}{2002/03/25}{Neu} +% \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet} +% \begin{KOMAvar}{mobilephoneseparator} +% \changes{v3.12}{2013/05/29}{Neu} +% \begin{KOMAvar}{zipcodeseparator} +% \changes{v3.03}{2009/03/04}{Neu} +% Daneben gibt es einige Trennzeichen. Diese haben ggf. als Ausgabenamen das +% Feld, für das sie als Trennzeichen dienen. Die Trennzeichen sind +% vordefiniert. +% \begin{macrocode} +\newkomavar[\usekomavar{place}]{placeseparator} +\setkomavar{placeseparator}{,\nobreakspace} +\newkomavar[\subjectname]{subjectseparator} +\setkomavar{subjectseparator}{: } +\newkomavar[\ccname]{ccseparator} +\setkomavar{ccseparator}{: } +\newkomavar[\enclname]{enclseparator} +\setkomavar{enclseparator}{: } +\newkomavar{backaddressseparator} +\setkomavar{backaddressseparator}{,\nobreakspace} +\newkomavar[\if@scrsymbols\Telefon\else\phonename\fi]{phoneseparator} +\setkomavar{phoneseparator}{\if@scrsymbols\else:\fi\nobreakspace} +\newkomavar[% + \if@scrsymbols\Mobilefone\else\mobilephonename\fi +]{mobilephoneseparator} +\setkomavar{mobilephoneseparator}{\usekomavar{phoneseparator}} +\newkomavar[\if@scrsymbols\FAX\else\faxname\fi]{faxseparator} +\setkomavar{faxseparator}{\if@scrsymbols\else:\fi\nobreakspace} +\newkomavar[\if@scrsymbols\Email\else\emailname\fi]{emailseparator} +\setkomavar{emailseparator}{\if@scrsymbols\else:\fi\nobreakspace} +\newkomavar[\if@scrsymbols\else\wwwname\fi]{urlseparator} +\setkomavar{urlseparator}{\if@scrsymbols\else:\nobreakspace\fi} +\newkomavar{zipcodeseparator} +\setkomavar{zipcodeseparator}{\,--\,} +% \end{macrocode} +% \end{KOMAvar} +% \end{KOMAvar} +% \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}{frommobilephone} +% \changes{v3.12}{2013/05/29}{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 üblicherweise vorangestellt wird. Eine Besonderheit stellt dabei +% \texttt{subject} dar. Der Ausgabename beinhaltet dabei nämlich auch die +% Trennzeichen, die hinter dem Namen üblicherweise stehen. Diese sind wiederum +% ein Variable, deren Name der Ausgabename des Feldes ist. Will man also nur +% den Namen aber nicht die Trennzeichen ändern, so ändert man statt dem Namen +% von \texttt{subject} den Namen von \texttt{subjectseparator}. +% +% Ähnlich 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*{mobilephoneseparator}% + \usekomavar{mobilephoneseparator}]{frommobilephone} +\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} +% \end{KOMAvar} +% +% \iffalse +% +% \fi +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-notepaper.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-pagestyles.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-pagestyles.dtx new file mode 100644 index 00000000000..7697aac6e3f --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-pagestyles.dtx @@ -0,0 +1,831 @@ +% \CheckSum{593} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-pagestyles.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-pagestyles.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-pagestyles.dtx 1551 2013-12-16 14:02:13Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-pagestyles.dtx}[2013/12/16 v3.12 KOMA-Script + (page style)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-pagestyles.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/06/25}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Seitenstil} +% +% Neben den Definitionen zum Seitenstil in dieser Datei gibt es auch +% noch das Paket \textsf{scrpage2} (siehe \texttt{scrpage.dtx}). +% Es\marginline{Geplant!} ist deshalb davon auszugehen, dass zukünftig die +% Definitionen hier komplett durch \textsf{scrpage2} ersetzt werden und +% \textsf{scrpage2} von den \KOMAScript-Klassen direkt geladen wird. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \subsection{Optionen für die Trennlinien in Kopf und Fuß} +% +% \iffalse +%<*option> +%<*class> +% \fi +% +% \begin{option}{headsepline} +% \changes{v2.95c}{2006/08/11}{BugFix: Argument bei +% \cs{PassOptionsToPackage} vertauscht}% +% \changes{v2.97c}{2007/04/19}{Option \texttt{headinclude} wird nicht +% mehr an \textsf{typearea} geschickt}% +% \changes{v2.98c}{2008/03/26}{Option \texttt{headinclude} wird gesetzt, +% wobei kein Fehler ausgegeben wird, wenn sie nicht existiert.}% +% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit +% \cs{FamilyKeyStateProcessed}}% +% \changes{v3.12}{2013/03/05}{wenn \textsf{typearea} noch gar nicht geladen +% ist, Option an dieses Paket schicken} +% \begin{option}{headnosepline} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% 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 \textsf{typearea}-Paket mitgeteilt, dass der +% Kopf zum Textbereich zu rechnen ist. Dies geschieht allerdings in +% umgekehrter Richtung nicht. Die Optionen sind also nicht +% symmetrisch. +% \begin{macrocode} +\KOMA@key{headsepline}[true]{% + \KOMA@set@ifkey{headsepline}{@hsl}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \@ifundefined{typearea}{% + \PassOptionsToPackage{typearea}{headinclude=#1}% + }{% + \KOMAoptions{headinclude=#1}{}% + }% + \fi +} +\KOMA@DeclareDeprecatedOption{headnosepline}{headsepline=false} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \begin{option}{footsepline} +% \changes{v2.0e}{1994/08/14}{bei \cs{PassOptionsToPackage} fehlte +% die Paket-Angabe}^^A +% \changes{v2.95c}{2006/08/11}{BugFix: Argument bei +% \cs{PassOptionsToPackage} vertauscht}^^A +% \changes{v2.97c}{2007/04/19}{Option \texttt{footinclude} wird nicht +% mehr an \textsf{typearea} geschickt}^^A +% \changes{v2.98c}{2008/03/26}{Option \texttt{footinclude} wird gesetzt, +% wobei kein Fehler ausgegeben wird, wenn sie nicht existiert.}^^A +% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit +% \cs{FamilyKeyStateProcessed}}^^A +% \changes{v3.12}{2013/03/05}{wenn \textsf{typearea} noch gar nicht geladen +% ist, Option an dieses Paket schicken}^^A +% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} durch +% \cs{KOMAoptions} ersetzt}^^A +% \changes{v3.12}{2013/08/26}{ggf. Satzspiegel neu berechnen}^^A +% \begin{option}{footnosepline} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% Der Fußteil 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ß zum Textbereich zu rechnen ist. Auch hier sind die Optionen +% nicht symmetrisch. +% \begin{macrocode} +\KOMA@key{footsepline}[true]{% + \KOMA@set@ifkey{footsepline}{@fsl}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \@ifundefined{typearea}{% + \PassOptionsToPackage{typearea}{headinclude=#1}% + }{% + \KOMAoptions{footinclude=#1,DIV=current}% + }% + \fi +} +\KOMA@DeclareDeprecatedOption{footnosepline}{footsepline=false} +% \end{macrocode} +% \end{option} +% \end{option} +% +% In früheren Versionen wurde noch die Option \texttt{mpinclude} von +% den Klassen ausgewertet. Dies geschieht jetzt nur noch in +% \textsf{typearea}. Von den Klassen wird dann ggf. auf den dort +% definierten Schalter zugegriffen. Dieses Vorgehen ist deshalb +% sinnvoll, weil die Klassen ausnahmslos das \textsf{typearea}-Paket +% laden. +% +% +% \subsection{Optionen und Anweisungen für leere Seiten} +% +% \begin{macro}{\if@twoside} +% \changes{v2.97c}{2007/07/18}{Schalter passend setzen} +% Die Voreinstellung wird direkt passend gesetzt. +% \begin{macrocode} +%\@twosidefalse +%\@twosidetrue +% \end{macrocode} +% \end{macro} +% +% \iffalse +% +% \fi +% +% \begin{option}{cleardoublepage} +% \changes{v2.95}{2004/08/24}{neuer Schalter} +% \changes{v2.96a}{2007/01/03}{Wert \texttt{current} sollte nun +% funktionieren} +% \changes{v2.98c}{2008/03/06}{verwendet \cs{def} statt \cs{let}, damit die +% Option \texttt{open} funktioniert} +% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit +% \cs{FamilyKeyStateProcessed}}% +% \begin{option}{cleardoubleempty} +% \changes{v2.8a}{2001/06/18}{neue Option} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{cleardoubleplain} +% \changes{v2.8a}{2001/06/18}{neue Option} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{cleardoublestandard} +% \changes{v2.8a}{2001/06/18}{neue Option} +% \changes{v2.8q}{2001/11/06}{\cs{cleardoublestandardpage} statt +% \cs{cleardoublestandard}} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macro}{\cleardoublestandardpage} +% \changes{v2.8a}{2001/06/18}{neu} +% \changes{v2.96a}{2007/01/02}{korrekter Ersatzwert gesetzt} +% \begin{macro}{\cleardoubleusingstyle} +% \changes{v2.95}{2004/08/24}{neu} +% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle} +% ersetzt} +% \begin{macro}{\cleardoubleemptypage} +% \changes{v2.8a}{2001/06/18}{neu} +% \begin{macro}{\cleardoubleplainpage} +% \changes{v2.8a}{2001/06/18}{neu} +% \begin{macro}{\cleardoubleoddpage} +% \changes{v3.00}{2008/09/27}{neu} +% \begin{macro}{\cleardoubleoddstandardpage} +% \changes{v2.98c}{2008/03/06}{neu} +% \begin{macro}{\cleardoubleoddusingstyle} +% \changes{v2.98c}{2008/03/06}{neu} +% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle} +% ersetzt} +% \begin{macro}{\cleardoubleoddemptypage} +% \changes{v2.98c}{2008/03/06}{neu} +% \begin{macro}{\cleardoubleoddplainpage} +% \changes{v2.98c}{2001/06/18}{neu} +% \begin{macro}{\cleardoubleevenpage} +% \changes{v3.00}{2008/09/27}{neu} +% \begin{macro}{\cleardoubleevenstandardpage} +% \changes{v2.98c}{2008/03/06}{neu} +% \begin{macro}{\cleardoubleevenusingstyle} +% \changes{v2.98c}{2008/03/06}{neu} +% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle} +% ersetzt} +% \begin{macro}{\cleardoubleevenemptypage} +% \changes{v2.98c}{2008/03/06}{neu} +% \begin{macro}{\cleardoubleevenplainpage} +% \changes{v2.98c}{2001/06/18}{neu} +% \begin{macro}{\cleardoublepage} +% \changes{v2.98c}{2001/06/18}{wird immer neu definiert} +% \changes{v2.98c}{2008/04/11}{neue Voreinstellung für Versionen nach 2.98c} +% Bei Verwendung von \texttt{twoside} und \texttt{openright} bei den +% Klassen \textsf{scrbook} und \textsf{scrreprt} wird bei \cs{chapter} +% implizit \cs{cleardoublepage} ausgeführt. Das führt ggf. +% normalerweise zu einer linken Seite, auf der noch der Kolumnentitel +% des vorherigen Kapitels und eine Seitenzahl steht. Häufig wird +% stattdessen nur eine Seitenzahl oder auch gar nichts gewünscht. Es +% soll also der Seitenstil \texttt{plain} oder \texttt{empty} +% verwendet werden. Dies wird mit den Optionen ermöglicht. Dazu +% werden auch gleich neue Makros definiert: +% \begin{macrocode} +\KOMA@key{cleardoublepage}{% + \begingroup% + \def\@tempc{% + \endgroup% + \KOMA@unknown@keyval{cleardoublepage}{#1}{% + 'current' or any defined pagestyle e.g. 'empty','plain'}% + }% + \ifstr{#1}{current}{% + \def\@tempc{\endgroup% + \def\cleardoublepage{\cleardoublestandardpage}% + \def\cleardoubleoddpage{\cleardoubleoddstandardpage}% + \def\cleardoubleevenpage{\cleardoubleevenstandardpage}% + \FamilyKeyStateProcessed + }% + }{% + \ifnotundefined{ps@#1}{% + \def\@tempc{\endgroup% + \def\cleardoublepage{\cleardoublepageusingstyle{#1}}% + \def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}% + \def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}% + \FamilyKeyStateProcessed + }% + }{}% + }% + \@tempc +} +\newcommand*{\cleardoubleoddstandardpage}{} +\let\cleardoubleoddstandardpage=\cleardoublepage +\newcommand*{\cleardoubleoddpageusingstyle}[1]{\clearpage + {\pagestyle{#1}\cleardoubleoddstandardpage}} +\newcommand*{\cleardoubleoddemptypage}{\cleardoubleoddpageusingstyle{empty}} +\newcommand*{\cleardoubleoddplainpage}{\cleardoubleoddpageusingstyle{plain}} +\newcommand*{\cleardoubleevenstandardpage}{% + \clearpage + \if@twoside\ifodd\c@page + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi + \fi\fi +} +\newcommand*{\cleardoubleevenpageusingstyle}[1]{\clearpage + {\pagestyle{#1}\cleardoubleevenstandardpage}} +\newcommand*{\cleardoubleevenemptypage}{\cleardoubleevenpageusingstyle{empty}} +\newcommand*{\cleardoubleevenplainpage}{\cleardoubleevenpageusingstyle{plain}} +\newcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage} +\renewcommand*{\cleardoublepage}{% + \expandafter\ifnum \@nameuse{scr@v@2.98c}<\scr@compatibility\relax + \cleardoubleemptypage + \else + \cleardoublestandardpage + \fi +} +\newcommand*{\cleardoubleoddpage}{\cleardoubleoddemptypage} +\newcommand*{\cleardoubleevenpage}{\cleardoubleevenemptypage} +\newcommand*{\cleardoublepageusingstyle}[1]{\clearpage + {\pagestyle{#1}\cleardoublestandardpage}} +\newcommand*{\cleardoubleemptypage}{\cleardoublepageusingstyle{empty}} +\newcommand*{\cleardoubleplainpage}{\cleardoublepageusingstyle{plain}} +%<*class> +\KOMA@DeclareDeprecatedOption{cleardoubleempty}{cleardoublepage=empty} +\KOMA@DeclareDeprecatedOption{cleardoubleplain}{cleardoublepage=plain} +\KOMA@DeclareDeprecatedOption{cleardoublestandard}{cleardoublepage=current} +% +% \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{option} +% \end{option} +% \end{option} +% \end{option} +% +% +% \iffalse +% +%<*body> +%<*class> +% \fi +% +% +% \subsection{Befehle für den Kompatibilitätsmodus} +% +% \begin{macro}{\headincludeon} +% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} +% \begin{macro}{\headincludeoff} +% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} +% \begin{macro}{\headseplineon} +% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} +% \begin{macro}{\headseplineoff} +% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} +% \begin{macro}{\footincludeon} +% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} +% \begin{macro}{\footincludeoff} +% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} +% \begin{macro}{\footseplineon} +% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} +% \begin{macro}{\footseplineoff} +% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} +% Da die \KOMAScript-Klassen ohnehin nicht mehr auf Kompatibilität zu +% \textsf{Script~2.0} überprüft werden, wurde der Kompatibilitätsmodus +% ersatzlos gestrichen. Dazu gehören nach über zehn Jahren nun auch diese +% Anweisungen. Ehemals waren sie wie folgt definiert: +% \begin{verbatim} +% \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{verbatim} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Definition der Standardseitenstile} +% +% \changes{v2.0e}{1994/08/10}{bei \textsf{scrbook} gibt es kein +% einseitiges Layout} +% \changes{v2.3a}{1995/07/08}{da bei \textsf{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ßzeilen für die +% Standardseitenstile \texttt{empty}, \texttt{plain}, +% \texttt{headings} und \texttt{myheadings} festgelegt. Diese sind +% außerdem abhängig davon, ob es sich um einseitiges oder beidseitiges +% Layout handelt. +% +% Im Gegensatz zu den Seitenstilen der Standardklassen steht die +% Seitennummer beim \KOMAScript{} Paket immer in der Fußzeile. +% Außerdem sind Trennlinien zwischen Kopf- und Textbereich sowie +% zwischen Text- und Fußbereich möglich. +% +% Die Kopfzeile wird auch nicht mehr in Großbuchstaben gewandelt. +% +% \changes{v2.2a}{1995/02/07}{bei \textsf{scrbook} und +% \textsf{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ügt} +% \begin{macro}{\set@tempdima@hw} +% \changes{v2.8q}{2002/03/28}{neu (intern)} +% Um nicht ständig das Gleiche schreiben zu müssen wird hier ein +% internes Makro verwendet. +% \begin{macrocode} +\newcommand*{\set@tempdima@hw}{% + \setlength{\@tempdima}{\textwidth}% + \if@mincl + \addtolength{\@tempdima}{\marginparsep}% + \addtolength{\@tempdima}{\marginparwidth}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pnumfont} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} +% \begin{macro}{\headfont} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} +% \begin{macro}{\footfont} +% \changes{v2.98c}{2008/02/14}{Neu} +% Kopf- und Fußzeile sowie die Seitennummer werden in einer speziellen +% Schriftart gesetzt. Die drei Makros hier sind jedoch als interne +% Makros zu betrachten. +% \begin{macrocode} +\newcommand*{\pnumfont}{\normalfont\normalcolor} +\newcommand*{\headfont}{\normalfont\normalcolor\slshape} +\newcommand*{\footfont}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{KOMAfont}{pagenumber} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagenumber}} +% \begin{KOMAfont}{pagination} +% \changes{v2.8o}{2001/09/14}{neues Alias-Element} +% \begin{KOMAfont}{pageheadfoot} +% \changes{v2.98c}{2008/02/14}{neues Element} +% \begin{KOMAfont}{pagehead} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagehead}} +% \changes{v2.98c}{2008/02/14}{neuer Alias} +% \begin{macro}{\scr@fnt@wrn@pagehead} +% \changes{v2.8o}{2001/09/14}{neue Warnung für Element \texttt{pagehead}} +% \changes{v2.97c}{2007/09/25}{Warnung geändert} +% \changes{v2.98c}{2008/02/14}{Warnung geändert} +% \begin{KOMAfont}{pagefoot} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagefoot}} +% \changes{v2.98c}{2008/02/14}{nicht länger ein Alias} +% \begin{macro}{\scr@fnt@wrn@pagefoot} +% \changes{v2.98c}{2008/02/14}{Neu (intern)} +% Hier werden die Elemente definiert, deren Schriftart dann geändert +% werden kann. +% \begin{macrocode} +\newcommand*{\scr@fnt@pagenumber}{\pnumfont} +\aliaskomafont{pagination}{pagenumber} +\newcommand*{\scr@fnt@pageheadfoot}{\headfont} +\aliaskomafont{pagehead}{pageheadfoot} +%<*letter> +\newcommand*{\scr@fnt@wrn@pagehead}[1]{% + `pagehead' is only an alias of `pageheadfoot'.\MessageBreak + Font of page foot will also be changed% +} +\newcommand*{\scr@fnt@pagefoot}{\footfont} +% +%<*!letter> +\newcommand*{\scr@fnt@pagefoot}{\footfont} +\newcommand*{\scr@fnt@wrn@pagefoot}[1]{% + This class does not use font element `pagefoot'!\MessageBreak + Maybe you should load package `scrpage2', before\MessageBreak + using this element% +} +% +% \end{macrocode} +% \end{macro} +% \end{KOMAfont} +% \end{macro} +% \end{KOMAfont} +% \end{KOMAfont} +% \end{KOMAfont} +% \end{KOMAfont} +% +% \begin{macro}{\pagemark} +% \changes{v2.95}{2006/03/15}{nun für alle Klassen} +% \changes{v3.05}{2010/02/05}{eine zusätzliche Gruppe eingefügt} +% Das ist die Seitenmarke, die nun für alle Klassen verwendet wird. Damit +% wird es leichter, \textsf{fancyhdr} statt \textsf{scrpage2} zu verwenden. +% \begin{macrocode} +\newcommand*{\pagemark}{{\usekomafont{pagenumber}{% +% \pagename\ % + \thepage}}} +% \end{macrocode} +% \end{macro} +% +% Zurück zur Definition der Seitenstile. Hier gibt es erhebliche +% Unterschiede zwischen der Briefklasse und den anderen Klassen. Das beginnt +% schon damit, dass es spezielle Stile für doppelseitige Briefe nicht gibt. +% \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 +% \textsf{scrartcl} und \texttt{oneside} \cs{subsectionmark} eingefügt}% +% \changes{v2.2a}{1995/02/07}{im einseitigen Seitenstil bei +% \textsf{scrreprt} und \texttt{oneside} \cs{sectionmark} eingefügt}% +% \changes{v2.0e}{1994/08/17}{im einseitigen Seitenstil \cs{markboth} durch +% \cs{markright} ersetzt}% +% \changes{v2.97c}{2007/07/18}{Unterscheidung auf \texttt{twoside} so spät +% wie möglich}% +% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}% +% Hinweis: Die \emph{even}-Varianten werden im einseitigen Satz vom +% \LaTeX-Kern selbst nicht verwendet. Es schadet also nicht, sie trotzdem +% identisch zum doppelseitigen Satz zu definieren. +% \begin{macrocode} +%<*!letter> +\renewcommand*{\ps@plain}{% + \renewcommand*{\@oddhead}{}% + \let\@evenhead\@oddhead + \renewcommand*{\@evenfoot}{% + \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\pagemark\hfil}}}}}% + \renewcommand*{\@oddfoot}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\hfil\pagemark + \if@twoside\else\hfil\fi}}}}\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@twoside\else\hfil\fi}}% + \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{{\pagemark\hfil}}}}}% + \renewcommand*{\@oddfoot}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\hfil\pagemark + \if@twoside\else\hfil\fi}}}}\hss}% +%<*article> + \renewcommand*{\sectionmark}[1]{% + \if@twoside\expandafter\markboth\else\expandafter\markright\fi + {\MakeMarkcase{\ifnumbered{section}{\sectionmarkformat\fi}{}##1}}{}}% + \renewcommand*{\subsectionmark}[1]{% + \if@twoside + \markright{% + \MakeMarkcase{\ifnumbered{subsection}{\subsectionmarkformat}{}##1}% + }% + \fi + }% +%
+%<*report|book> + \renewcommand*{\chaptermark}[1]{% + \if@twoside\expandafter\markboth\else\expandafter\markright\fi + {\MakeMarkcase{\ifnumbered{chapter}{% +% \if@mainmatter + \chaptermarkformat +% \fi + }{}##1}% + }{}% + }% + \renewcommand*{\sectionmark}[1]{% + \if@twoside + \markright{\MakeMarkcase{\ifnumbered{section}{\sectionmarkformat}{}% + ##1}}% + \fi + }% +% +}% +\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@twoside\else\hfil\fi}}% + \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{{\pagemark\hfil}}}}}% + \renewcommand*{\@oddfoot}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\hfil\pagemark + \if@twoside\else\hfil\fi}}}}\hss}% +% \renewcommand*{\chaptermark}[1]{}% +%
\renewcommand*{\subsectionmark}[1]{}% + \renewcommand*{\sectionmark}[1]{}% +} +% +% \end{macrocode} +% \changes{v3.08}{2010/10/28}{\cs{noindent} added before usage of variable +% \texttt{nexthead} or \texttt{nextfoot}} +% \begin{macrocode} +%<*letter> +\renewcommand*{\ps@plain}{% + \renewcommand*{\@oddhead}{% + \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\@evenhead\@oddhead% + \renewcommand*{\@oddfoot}{% + \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\@evenfoot\@oddfoot +} +\newcommand*{\ps@headings}{\let\@mkboth\markboth + \renewcommand*{\@oddhead}{% + \vbox{% + \vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\noindent + \usekomavar{nexthead}}}% + \if@hsl\kern1pt\rule{\textwidth}{.4pt}\fi% + }% + }% + \let\@evenhead\@oddhead + \renewcommand*{\@oddfoot}{% + \parbox[t]{\textwidth}{% + \if@fsl + {% + \raggedright% + \vskip-\baselineskip\vskip.4pt + \hrulefill\\ + }% + \fi + \vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\footfont\noindent + \usekomavar{nextfoot}}}% + }% + }% + \let\@evenfoot\@oddfoot +} +\newcommand*{\ps@myheadings}{% + \ps@headings + \let\@mkboth\@gobbletwo +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Festlegung des Seitenstils auf besonderen Seiten} +% +% So etwas gibt es derzeit nicht für Briefe. +% \iffalse +% +%<*!letter> +% \fi +% +% \begin{macro}{\titlepagestyle} +% \changes{v2.8d}{2001/07/05}{neu} +% \begin{macro}{\partpagestyle} +% \changes{v2.8d}{2001/07/05}{neu} +% \changes{v3.00}{2008/08/05}{nicht mehr in \textsf{scrartcl} definiert} +% \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 \cs{thispagestyle} auf +% einen anderen Seitenstil umgeschaltet. Welcher das ist, ist in +% diesem Makros abgelegt und kann bei Bedarf geändert werden. +% Voreingestellt ist der in früheren Versionen fest verdrahtete +% Seitenstil \texttt{plain}. +% \begin{macrocode} +\newcommand*{\titlepagestyle}{plain} +%\newcommand*{\partpagestyle}{plain} +%\newcommand*{\chapterpagestyle}{plain} +%\newcommand*{\indexpagestyle}{plain} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \iffalse +% +%<*class> +% \fi +% +% \subsection{Standardeinstellungen} +% +% Der voreingestellte Seitenstil hängt von der verwendeten Klasse ab: +% \begin{macrocode} +%\pagestyle{plain} +%\pagestyle{headings} +% \end{macrocode} +% Die Nummerierung erfolgt hingegen immer mit arabischen Zahlen: +% \begin{macrocode} +\pagenumbering{arabic} +% \end{macrocode} +% +% Im zweiseitigen Satz wird die letzte Zeile bündig gesetzt, im +% einseitigen und bei Briefen generell jedoch nicht: +% \begin{macrocode} +%<*!letter> +\if@twoside + \flushbottom +\else +% + \raggedbottom +%\fi +% \end{macrocode} +% Im zweispaltigen Satz wird \cs{sloppy} verwendet und die letzte +% Zeile jeweils bündig gesetzt. Briefe sind einspaltig. +% \begin{macrocode} +%<*!letter> +\if@twocolumn + \twocolumn + \sloppy + \flushbottom +\else +% + \onecolumn +%\fi +% \end{macrocode} +% +% +% \iffalse +% +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-pagestyles.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-paragraphs.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-paragraphs.dtx new file mode 100644 index 00000000000..87a5a1e0425 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-paragraphs.dtx @@ -0,0 +1,703 @@ +% \CheckSum{641} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-paragraphs.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-paragraphs.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-paragraphs.dtx 1380 2013-10-01 15:31:55Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-paragraphs.dtx}[2013/03/05 v3.12 KOMA-Script + (paragraphs)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-paragraphs.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/06/25}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Absatzformatierung und -umbruch} +% +% In diesen Bereich gehört alles, was die Absatzformatierung selbst +% betrifft. Dazu kommen dann noch einige Kleinigkeiten aus dem +% Seitenumbruch. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Optionen für das Absatzlayout} +% +% Ab Version 2.8i können wir auch mit Absatzlayouts umgehen, die einen +% Absatzabstand statt einem Absatzeinzug verlangen. Gesteuert wird +% dies über Optionen und Schalter. +% +% \begin{macro}{\setparsizes} +% \changes{v2.95}{2004/11/05}{neues Macro} +% Über dieses Makro wird die Änderung der Absatzparameter |\parskip|, +% |\parindent|, |\parfillskip| gesetzt. Das erste Argument ist der Einzug, das +% zweite der Abstand und das dritte die Füllung. Aktiviert werden die +% Änderungen wie bei |\fontsize| über |\selectfont|. Obwohl in der +% Voreinstellung absolut gearbeitet wird, wird hier intern +% |\par@updaterelative| verwendet. +% \begin{macrocode} +\newcommand*{\setparsizes}[3]{% + \edef\f@parindent{\the\parindent}% + \edef\f@parskip{\the\parskip}% + \edef\f@parfillskip{\the\parfillskip}% + \def\scr@parindent{#1}% + \def\scr@parskip{#2}% + \def\scr@parfillskip{#3}% + \def\par@update{\let\par@update\default@par@update\par@updaterelative}% +} +% \end{macrocode} +% \begin{macro}{\f@parindent} +% \changes{v2.95}{2004/11/05}{neu (intern)} +% Eingestellter Absatzeinzug. +% \begin{macro}{\f@parskip} +% \changes{v2.8i}{2001/07/22}{neu (intern)} +% \changes{v2.95}{2004/11/05}{Bedeutung geändert} +% Eingestellter Absatzabstand. +% \begin{macro}{\f@parfillskip} +% \changes{v2.8i}{2001/07/22}{neu (intern)} +% \changes{v2.95}{2004/11/05}{Bedeutung geändert} +% Eingestellte Absatzfüllung. +% +% Diese drei Werte werden automatisch bei der Font-Initialisierung eingestellt +% und sind vorher ungültig! +% \begin{macrocode} +\newcommand*{\f@parindent}{\the\parindent} +\newcommand*{\f@parskip}{\the\parskip} +\newcommand*{\f@parfillskip}{\the\parfillskip} +\AtEndOfClass{% + \edef\f@parindent{\the\parindent}% + \edef\f@parskip{\the\parskip}% + \edef\f@parfillskip{\the\parfillskip}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\par@update} +% \changes{v2.95}{2004/11/05}{neues internes Macro} +% Dieses Makro wird später in |\selectfont| die Änderung vornehmen. +% \begin{macro}{\default@par@update} +% \changes{v2.95}{2004/11/05}{neues internes Macro} +% In der Voreinstellung findet keine Änderung statt. Dies wird jedoch durch +% die Auswahl einer entsprechenden Option geändert. +% \begin{macrocode} +\newcommand*{\par@update}{} +\let\par@update\relax +\newcommand*{\default@par@update}{} +\let\default@par@update\relax +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{option}{parskip} +% \changes{v2.8i}{2001/07/22}{neue Option} +% \changes{v2.95}{2006/03/11}{primäre \textsf{keyval}-Option} +% \changes{v3.08}{2010/12/14}{neuer Wert \texttt{never}} +% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit +% \cs{FamilyKeyState}.} +% \begin{option}{parskip-} +% \changes{v2.8l}{2001/08/16}{neue Option} +% \changes{v2.95}{2006/03/11}{obsolet} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{parskip+} +% \changes{v2.8i}{2001/07/22}{neue Option} +% \changes{v2.95}{2006/03/11}{obsolet} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{parskip*} +% \changes{v2.8i}{2001/07/22}{neue Option} +% \changes{v2.95}{2006/03/11}{obsolet} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{halfparskip} +% \changes{v2.8i}{2001/07/22}{neue Option} +% \changes{v2.95}{2006/03/11}{obsolet} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{halfparskip-} +% \changes{v2.8l}{2001/08/16}{neue Option} +% \changes{v2.95}{2006/03/11}{obsolet} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{halfparskip+} +% \changes{v2.8i}{2001/07/22}{neue Option} +% \changes{v2.95}{2006/03/11}{obsolet} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{halfparskip*} +% \changes{v2.8i}{2001/07/22}{neue Option} +% \changes{v2.95}{2006/03/11}{obsolet} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{parindent} +% \changes{v2.8i}{2001/07/22}{neue Option} +% \changes{v2.95}{2006/03/11}{obsolet} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/20}{deprecated} +% Diese neun 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ßerdem dafür, dass +% die letzte Zeile eines Absatzes maximal zu zwei Dritteln gefüllt +% wird. Entsprechend sorgt die \texttt{*}-Variante für eine maximale +% Füllung von drei Vierteln. Die normale Variante sorgt lediglich +% für einen freien Raum von 1\,em. Die \texttt{-}-Variante sorgt für +% überhaupt nichts. +% \begin{macro}{\scr@parindent} +% \changes{v2.95}{2004/11/05}{neu (intern)} +% Der einzustellende Absatzeinzug. +% \begin{macro}{\scr@parskip} +% \changes{v2.8i}{2001/07/22}{neu (intern)} +% \changes{v2.95}{2004/11/05}{Bedeutung geändert} +% Der einzustellende Absatzabstand. +% \begin{macro}{\scr@parfillskip} +% \changes{v2.8i}{2001/07/22}{neu (intern)} +% \changes{v2.95}{2004/11/05}{Bedeutung geändert} +% Die einzustellende Absatzfüllung. +% \begin{macrocode} +\newcommand*{\scr@parindent}{1em} +\newcommand*{\scr@parskip}{\z@} +\newcommand*{\scr@parfillskip}{\z@ \@plus 1fil} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Neu bei \KOMAScript-3 ist, dass die Optionen wie bei \textsf{scrlttr2} über +% eine eingzige \textsf{keyval} gesetzt werden können. +% \begin{macrocode} +\KOMA@key{parskip}[true]{% + \begingroup + \KOMA@set@ncmdkey{parskip}{@tempa}{% + {never}{0},% + {false}{1},{off}{1},{no}{1},% + {full-}{2},% + {half-}{3},% + {full}{4},{true}{4},{on}{4},{yes}{4},% + {half}{5},% + {full+}{6},% + {half+}{7},% + {full*}{8},% + {half*}{9},% + {relative}{10},% + {absolute}{11}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \aftergroup\FamilyKeyStateProcessed + \ifcase\number\@tempa% 0 + \endgroup + \setparsizes{1em}{\z@}{\z@ \@plus 1fil}% + \if@atdocument\AfterKOMAoptions{\selectfont}\fi + \or% 1 + \endgroup + \setparsizes{1em}{\z@ \@plus \p@}{\z@ \@plus 1fil}% + \if@atdocument\AfterKOMAoptions{\selectfont}\fi + \or% 2 + \endgroup + \setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{% + \z@ \@plus 1fil}% + \if@atdocument\AfterKOMAoptions{\selectfont}\fi + \or% 3 + \endgroup + \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{% + \z@ \@plus 1fil}% + \if@atdocument\AfterKOMAoptions{\selectfont}\fi + \or% 4 + \endgroup + \setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{% + 1em \@plus 1fil}% + \if@atdocument\AfterKOMAoptions{\selectfont}\fi + \or% 5 + \endgroup + \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{% + 1em \@plus 1fil}% + \if@atdocument\AfterKOMAoptions{\selectfont}\fi + \or% 6 + \endgroup + \setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{% + .3333\linewidth\@plus 1fil}% + \if@atdocument\AfterKOMAoptions{\selectfont}\fi + \or% 7 + \endgroup + \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{% + .3333\linewidth \@plus 1fil}% + \if@atdocument\AfterKOMAoptions{\selectfont}\fi + \or% 8 + \endgroup + \setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{% + .25\linewidth \@plus 1fil}% + \if@atdocument\AfterKOMAoptions{\selectfont}\fi + \or% 9 + \endgroup + \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{% + .25\linewidth \@plus 1fil}% + \if@atdocument\AfterKOMAoptions{\selectfont}\fi + \or% 10 + \endgroup + \ifx\par@updaterelative\undefined + \expandafter\AtEndOfClass + \else + \expandafter\@firstofone + \fi + {% + \ifx\par@update\default@par@update + \let\par@update\par@updaterelative + \fi + \let\default@par@update=\par@updaterelative + }% + \or%11 + \endgroup + \ifx\par@updaterelative\undefined + \expandafter\AtEndOfClass + \else + \expandafter\@firstofone + \fi + {% + \ifx\par@update\default@par@update + \let\par@update\relax + \fi + \let\default@par@update=\relax + }% + \else% should never be + \endgroup + \fi + \else + \endgroup + \FamilyKeyStateUnkownValue + \fi +} +\KOMA@DeclareDeprecatedOption{parskip-}{parskip=full-} +\KOMA@DeclareDeprecatedOption{parskip+}{parskip=full+} +\KOMA@DeclareDeprecatedOption{parskip*}{parskip=full*} +\KOMA@DeclareDeprecatedOption{halfparskip}{parskip=half} +\KOMA@DeclareDeprecatedOption{halfparskip-}{parskip=half-} +\KOMA@DeclareDeprecatedOption{halfparskip+}{parskip=half+} +\KOMA@DeclareDeprecatedOption{halfparskip*}{parskip=half*} +\KOMA@DeclareDeprecatedOption{parindent}{parskip=false} +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% +% Hierfür\marginline{Geplant!} sollte eine keyval-Option mit Werten definiert +% werden. Dazu dann neue Werte für absolutes oder relatives Verhalten. +% +% \iffalse +% +%<*body> +% \fi +% +% +% \subsection{Abatzformatierung} +% +% \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 (nicht bei Briefen): +% \begin{macrocode} +%<*!letter> +\setlength{\columnsep}{10\p@} +\setlength{\columnseprule}{\z@} +% +% \end{macrocode} +% \end{Length} +% \end{Length} +% +% \begin{macro}{\selectfont} +% \changes{v2.95}{2004/11/05}{neue Änderung} +% Spätestens ab Version~3.0 soll die Möglichkeit bestehen, |\parskip|, +% |\parindent| und |\parfillskip| mit der Schriftgröße automatisch +% anzupassen. Dazu muss |\selectfont| entsprechend erweitert werden. +% \begin{macro}{\scr@selectfont} +% \changes{v2.95}{2006/04/14}{neue Erweiterung} +% \changes{v3.10}{2010/09/28}{\textsf{everysel}-Behandlung korrigiert} +% \changes{v3.10}{2010/09/28}{\textsf{tracefnt}-Behandlung hinzugefügt} +% \begin{macro}{\scr@new@selectfont} +% \changes{v2.95}{2006/04/14}{neue Erweiterung} +% \changes{v3.10}{2010/09/28}{\textsf{everysel}-Behandlung korrigiert} +% \changes{v3.10}{2010/09/28}{\textsf{tracefnt}-Behandlung hinzugefügt} +% \changes{v3.10b}{2011/03/13}{\textsf{everysel} kann jetzt auch während +% \cs{begin}\marg{document} geladen werden} +% Damit das auch bei Verwendung des \textsf{everysel}-Pakets funktioniert, +% wird hier zusätzliche Vorsorge getroffen. +% \begin{macrocode} +\newcommand*{\scr@selectfont}{} +\expandafter\let\expandafter\scr@selectfont\csname selectfont \endcsname +\BeforePackage{everysel}{% + \AtBeginDocument{% + \expandafter\ifx\csname selectfont \endcsname\scr@new@selectfont\else + \ClassWarningNoLine{\KOMAClassName}{discard change of \string\selectfont}% + \fi + \expandafter\let\csname selectfont \endcsname\scr@selectfont + }% +} +\AfterPackage{everysel}{% + \scr@ifundefinedorrelax{@EverySelectfont@Init}{% +% \end{macrocode} +% Jetzt gibt es zwei Möglichkeiten: Entweder wurde ein \textsf{everysel} +% verwendet, bei dem alles anders funktioniert, oder es wurde während +% \cs{begin}\marg{document} geladen. In beiden Fällen versuchen wir einen +% direkten Patch: +% \begin{macrocode} + \expandafter\ifx\csname selectfont \endcsname\scr@new@selectfont + \ClassWarningNoLine{\KOMAClassName}{% + \string\selectfont\space already changed}% + \else + \expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}% + \expandafter\let\expandafter\scr@new@selectfont + \csname selectfont \endcsname + \fi + }{% +% \end{macrocode} +% In diesem Fall muss hingegen indirekt gepatcht werden. +% \begin{macrocode} + \g@addto@macro\@EverySelectfont@Init{% + \expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}% + \expandafter\let\expandafter\scr@new@selectfont + \csname selectfont \endcsname + }% + }% +} +\AfterPackage{tracefnt}{% + \expandafter\let\expandafter\scr@selectfont\csname selectfont \endcsname + \expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}% + \expandafter\let\expandafter\scr@new@selectfont\csname selectfont \endcsname +} +\expandafter\g@addto@macro\csname selectfont \endcsname{\par@update} +\newcommand*{\scr@new@selectfont}{} +\expandafter\let\expandafter\scr@new@selectfont\csname selectfont \endcsname +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\par@updaterelative} +% \changes{v2.95}{2004/11/05}{neues internes Macro} +% Die eigentliche Änderung verbirgt sich in |\par@updaterelative|. Ggf. wird +% |\par@update| zu |\par@updaterelative|. +% \begin{macrocode} +\newcommand*{\par@updaterelative}{% +% \end{macrocode} +% Die neuen Werte werden nur gesetzt, wenn die bisherigen Werten den +% erwarteten Werten entsprechen. Sonst lassen wir lieber die Finger davon, +% weil wir dann davon ausgehen, dass der Anwender die so setzen wollte. +% \begin{macrocode} + \begingroup + \edef\@tempa{\the\parindent}\ifx\@tempa\f@parindent + \aftergroup\parindent@update +%<*trace> + \else + \ClassInfo{\KOMAClassName}{\string\parindent\space not changed}% +% + \fi + \edef\@tempa{\the\parskip}\ifx\@tempa\f@parskip + \aftergroup\parskip@update +%<*trace> + \else + \ClassInfo{\KOMAClassName}{\string\parskip\space not changed}% +% + \fi + \edef\@tempa{\the\parfillskip}\ifx\@tempa\f@parfillskip + \aftergroup\parfillskip@update +%<*trace> + \else + \ClassInfo{\KOMAClassName}{\string\parfillskip\space not changed}% +% + \fi + \endgroup +} +% \end{macrocode} +% \begin{macro}{\parindent@update} +% \changes{v2.95}{2004/11/05}{neues internes Macro} +% \begin{macro}{\parskip@update} +% \changes{v2.95}{2004/11/05}{neues internes Macro} +% \begin{macro}{\parfillskip@update} +% \changes{v2.95}{2004/11/05}{neues internes Macro} +% Ein paar Hilfsmakros. +% \begin{macrocode} +\newcommand*{\parindent@update}{% + \scr@defaultunits\parindent\scr@parindent + \begingroup + \let\@tempb\endgroup + \edef\@tempa{\the\parindent}\ifx\@tempa\f@parindent\else + \def\@tempb{\endgroup\edef\f@parindent{\the\parindent}}% +% \ClassInfo{\KOMAClassName}{\string\parindent=\the\parindent}% + \fi + \@tempb +} +\newcommand*{\parskip@update}{% + \scr@defaultunits\parskip\scr@parskip + \begingroup + \let\@tempb\endgroup + \edef\@tempa{\the\parskip}\ifx\@tempa\f@parskip\else + \def\@tempb{\endgroup\edef\f@parskip{\the\parskip}}% +% \ClassInfo{\KOMAClassName}{\string\parskip=\the\parskip}% + \fi + \@tempb +} +\newcommand*{\parfillskip@update}{% + \scr@defaultunits\parfillskip\scr@parfillskip + \begingroup + \let\@tempb\endgroup + \edef\@tempa{\the\parfillskip}\ifx\@tempa\f@parfillskip\else + \def\@tempb{\endgroup\edef\f@parfillskip{\the\parfillskip}}% +% \ClassInfo{\KOMAClassName}{\string\parfillskip=\the\parfillskip}% + \fi + \@tempb +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\scr@defaultunits} +% \changes{v2.95}{2004/11/05}{neues internes Macro} +% \begin{macro}{\scr@@defaultunits} +% \changes{v2.95}{2004/11/05}{neues internes Macro} +% \begin{macro}{\scr@@@defaultunits} +% \changes{v2.95}{2004/11/05}{neues internes Macro} +% Damit |\par@updaterelative| überhaupt funktionieren kann, wird +% |\scr@defaultunits| benötigt. Dieses Makro arbeitet prinzipiell wie +% |\@defaultunits| bekommt aber Dimension bzw. Skip als erstes und den Wert +% als zweites Argument. Als Besonderheit dürften im Wert auch andere +% Dimensions bzw. Skips vor und nach \texttt{plus} und \texttt{minus} +% verwendet werden. Es sind also auch Angaben der Art "`\texttt{12 plus 1 +% minus 2}"' sowie +% "`\texttt{\string\baselineskip\string\@plus.1\string\baselineskip}"' +% gültig. +% \begin{macrocode} +\newcommand*{\scr@defaultunits}[2]{% + \begingroup + \edef\@tempa{#2}% + \expandafter\scr@@defaultunits\expandafter#1\@tempa plusplus\@nnil + \edef\@tempa{\noexpand\endgroup\noexpand\setlength{\noexpand#1}{\the#1}}% + \@tempa +} +\newcommand*{\scr@@defaultunits}{} +\def\scr@@defaultunits#1#2plus#3plus#4\@nnil{% + \ifx\relax#3\relax + \scr@@@defaultunits#1{}#2minusminus\@nnil + \else + \scr@@@defaultunits#1{#2}#3minusminus\@nnil + \fi +} +\newcommand*{\scr@@@defaultunits}{} +\def\scr@@@defaultunits#1#2#3minus#4minus#5\@nnil{% + \ifx\relax#2\relax + \@defaultunits\@tempskipa#3pt\relax\@nnil + \setlength{#1}{\@tempskipa}% + \else + \@defaultunits\@tempskipa\z@\@plus#3pt\relax\@nnil + \setlength{#1}{\@tempskipa}% + \@defaultunits\@tempskipa#2pt\relax\@nnil + \addtolength{#1}{\@tempskipa}% + \fi + \ifx\relax#4\relax\else + \@defaultunits\@tempskipa\z@\@minus #4pt\relax\@nnil + \addtolength{#1}{\@tempskipa}% + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Absatzabstand und Absatzeinzug: +% \begin{macro}{\@list@extra} +% \changes{v2.8q}{2001/11/06}{neu (intern)} +% \changes{v2.95c}{2006/08/03}{\cs{parsep} fixed} +% \begin{macro}{\add@extra@listi} +% \changes{v2.9h}{2002/09/03}{neu (intern)} +% Ab Version 2.8i wird hier optionsabhängig gearbeitet. Dabei müssen +% auch die Befehle bei der Umschaltung der Schriftgröße für \cs{small} +% und \cs{footnotesize} geändert werden. +% \begin{macrocode} +\newcommand*{\@list@extra}{% + \ifdim\parskip>\z@\topsep\z@\parsep\parskip\itemsep\z@\fi +} +\newcommand*{\add@extra@listi}[1]{% + \expandafter\let\csname #1@listi\endcsname=\@listi + \def\@listi{\csname #1@listi\endcsname\@list@extra}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \iffalse +% +%<*body|10pt|11pt|12pt> +% \fi +% \changes{v2.98c}{2008/03/26}{Umstellung für die pt-Dateien} +% \begin{macro}{\@listi} +% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} +% ersetzt} +% \changes{v3.01}{2008/11/13}{\cs{@listi} wird auf jeden Fall ausgeführt} +% \begin{macro}{\@listI} +% \begin{macro}{\@listii} +% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} +% ersetzt} +% \begin{macro}{\@listiii} +% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} +% ersetzt} +% \begin{macro}{\footnotesize} +% \changes{v2.9h}{2002/09/03}{etwas robuster} +% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} +% ersetzt} +% \begin{macro}{\small} +% \changes{v2.9h}{2002/09/03}{etwas robuster} +% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} +% ersetzt} +% \begin{macrocode} +%<10pt|11pt|12pt>\@ifundefined{@list@extra}{}{% + \l@addto@macro{\@listi}{\@list@extra}% + \let\@listI=\@listi + \l@addto@macro{\@listii}{\@list@extra}% + \l@addto@macro{\@listiii}{\@list@extra}% + \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}% + \l@addto@macro{\small}{\protect\add@extra@listi{sml}}% +%<10pt|11pt|12pt>} +%<10pt|11pt|12pt>\@listi +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \iffalse +% +%<*body> +% \fi +% +% +% \subsection{Umbruchsteuerung} +% +% Für die Umbruchsteuerung sind einige Penalties zuständig. Diese sind +% im \LaTeX-Kern definiert. Leider sind \cs{@lowpenalty}, +% \cs{@medpenalty} und \cs{@highpenalty} aber nicht mit +% Voreinstellungen versehen, besitzen einheitlich die Voreinstellung +% 0. Hier werden deshalb die Werte aus den Standardklassen übernommen: +% \begin{macrocode} +\@lowpenalty = 51 +\@medpenalty =151 +\@highpenalty =301 +% \end{macrocode} +% +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-paragraphs.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-pseudolengths.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-pseudolengths.dtx new file mode 100644 index 00000000000..447e8e91e64 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-pseudolengths.dtx @@ -0,0 +1,251 @@ +% \CheckSum{100} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-pseudolengths.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-pseudolengths.dtx +% Copyright (c) Markus Kohm, 2006-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-pseudolengths.dtx 1388 2013-10-01 16:03:42Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-pseudolengths.dtx}[2011/03/20 v3.08b KOMA-Script + (pseudo length)] +% \iffalse +\documentclass{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-pseudolengths.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2006/03/22}{% +% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} +% +% \section{Pseudo-Längen für Briefe} +% +% Pseudo-Längen wurden für \textsf{scrlttr2} eingeführt, um Längenregister zu +% sparen. Tatsächlich hat das \LaTeX-Team kurz darauf entschieden, dass +% künftig \eTeX{} die empfohlene Maschine für \LaTeX{} sein soll, wodurch die +% Einführung von Pseudo-Längen nachträglich überflüssig wurde. Es gibt sie nun +% aber einmal und aus Gründen der Kompatiblität wird es sie für Briefe auch +% weiterhin geben. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*letter> +% \fi +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Option} +% Das Prinzip der Pseudo-Längen wird nicht durch Optionen beeinflusst. +% +% +% \iffalse +% +%<*body> +% \fi +% +% \subsection{Anweisungen für Pseudo-Längen} +% +% Zu Berechnung der Feldpositionen werden verschiedene Dimensions-Variablen +% benötigt. Um jedoch nicht unnötig viele Längenregister zu verbrauchen, wird +% hier mit einer Pseudo-Längen-Arithmetik gearbeitet. +% +% \begin{macro}{\@newplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% \changes{v2.8q}{2001/10/06}{Kompatibilität zu \texttt{scrlettr.cls} +% aufgegeben} +% Dieses Makro definiert eine neue Pseude-Länge und setzt sie auf den +% Wert 0. Eine Pseudo-Länge ist ein Makro, das eine Länge enthält. +% \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} +% \changes{v2.97c}{2007/09/17}{\cs{dimexpr} statt \cs{number} verwendet, +% wenn \eTeX{} verwendet wird} +% Natürlich muss auf eine solche Pseudo-Länge auch wieder lesend +% zugeriffen werden können. Wir definieren dies hier so, dass es +% außerdem möglich ist, ein Vorzeichen oder einen Faktor zu verwenden. Dafür +% wird allerdings \eTeX{} benötigt. +% \begin{macrocode} +\scr@ifundefinedorrelax{dimexpr}{% + \newcommand*{\useplength}[1]{% + \number \csname ltx@len@#1\endcsname\relax}% +}{% + \newcommand*{\useplength}[1]{% + \dimexpr \csname ltr@len@#1\endcsname\relax}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\setlengthtoplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% Eine echte Länge soll auf das Vielfache einer Pseudo-Länge gesetzt +% werden. Dabei wird der Faktor als optionaler Parameter übergeben. +% Der erste obligatorische Parameter ist die Länge, der zweite +% obligatorische Parameter ist die Pseudo-Länge. +% \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ürlich wird ebenfalls eine Möglichkeit benötigt, einer +% Pseudo-Länge einen Wert zuzuweisen. Dies geschieht unter lokaler +% Anwendung einer Länge, damit sichergestellt ist, dass eine +% Längenangabe übergeben 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ür +% die Pseudo-Länge und nicht für 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ötigt, mit dem zu einer Pseudo-Länge 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} +% +% \iffalse +% +% \fi +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-pseudolengths.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx new file mode 100644 index 00000000000..ac28717e035 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx @@ -0,0 +1,3145 @@ +% \CheckSum{2255} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-sections.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-sections.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-sections.dtx 1552 2013-12-16 16:51:32Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-sections.dtx}[2013/12/16 v3.12 KOMA-Script + (disposition)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-sections.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei + \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/06/26}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Gliederung} +% +% Zur Gliederung gehören neben den üblichen Gliederungsbefehlen +% \cs{chapter} \dots \cs{subparagraph} auch alle Optionen und Befehle, +% die diese Gliederung beeinflussen. Eingeschränkt gehören auch die +% Befehle dazu, die Inhaltsverzeichniseinträge zu den +% Gliederungsbefehlen erzeugen oder unmittelbar formatieren. Diese +% Entscheidung wurde getroffen, weil die Zusammengehörigkeit eher hier +% gesehen wird, als bei den Verzeichnissen selbst. +% +% Briefe haben derzeit keine derartige Gliederung. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*!letter> +% \fi +% +% \iffalse +%<*option> +% \fi +% \subsection{Optionen für die Gliederung} +% +% \iffalse +%<*class> +%<*book|report> +% \fi +% \begin{option}{open} +% \changes{v2.98c}{2008/03/06}{Neue Option} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Bei \textsf{scrreprt} und \textsf{scrbook} kann per Option eingestellt +% werden, ob Kapitel nur auf linken oder rechten Seiten beginnen dürfen oder +% auf jeder Seite. +% \begin{macro}{\if@openright} +% \begin{macro}{\@openrighttrue} +% \begin{macro}{\@openrightfalse} +% Der Zustand wird dann in einem Schalter und durch umdefinieren von +% \cs{cleardoublestandardpage} gespeichert. +% \begin{macrocode} +\newif\if@openright +%\@openrightfalse +%\@openrighttrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\KOMA@key{open}{% + \KOMA@set@ncmdkey{open}{@tempa}{% + {any}{0},% + {right}{1},% + {left}{2}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase \@tempa\relax + \@openrightfalse + \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}% + \or + \@openrighttrue + \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}% + \or + \@openrighttrue + \renewcommand*{\cleardoublestandardpage}{\cleardoubleevenstandardpage}% + \fi + \fi +} +% \end{macrocode} +% \end{option} +% \begin{option}{openright} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{openany} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{macrocode} +\KOMA@DeclareStandardOption{openright}{open=right} +\KOMA@DeclareStandardOption{openany}{open=any} +% \end{macrocode} +% \end{option} +% \end{option} +% \iffalse +% +%% \fi +% +% +% \begin{option}{numbers} +% \changes{v2.98c}{2008/03/07}{Neue Option} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Dies ist die zentrale Option zur Konfiguration der Nummerierung. Dabei geht +% es primär um die Gliederungsnummern, es sind jedoch auch davon abgeleitete +% Nummern betroffen. +% \begin{macro}{\scr@dotchangeatdocument} +% \changes{v2.98c}{2008/03/07}{Neu (intern)} +% Da die Umschaltung zwischen automatischem Endpunkt, immer Endpunkt und kein +% Endpunkt unbedingt \emph{vor} \cs{begin{document}} erfolgen muss, wird eine +% Fehlermeldung ausgegeben, falls das jemand zu einem späteren Zeitpunkt +% probiert. +% \begin{macrocode} +\newcommand*{\scr@dotchangeatdocument}[1]{% + \ClassError{\KOMAClassName}{% + change of end dot feature after \string\begin{document}% + }{% + You've tried to set `numbers=#1' after \string\begin{document},\MessageBreak + but this option is only allowed at the document preamble.\MessageBreak + See KOMA-Script manual for more information about.% + }% +} +% \end{macrocode} +% \end{macro} +% Normalerweise wird automatisch entschieden, ob Nummern mit einem +% Punkt enden müssen oder nicht. Um dies abzuschalten, muss nur der +% gewünschte Zustand eingeschaltet und die Umschaltmöglichkeit +% entfernt werden. Die Umschaltung kann jedoch nicht direkt erfolgen, sondern +% erfolgt zeitverzögert in \cs{begin{document}}. Hier wird nur das Makro +% umgeschaltet, das dort verwendet wird. +% \begin{macrocode} +\KOMA@key{numbers}{% + \KOMA@set@ncmdkey{numbers}{@tempa}{% + {autoendperiod}{0},{autoenddot}{0},{auto}{0},% + {endperiod}{1},{withendperiod}{1},{periodatend}{1},% + {enddot}{1},{withenddot}{1},{dotatend}{1},% + {noendperiod}{2},{noperiodatend}{2},% + {noenddot}{2},{nodotatend}{2}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase \@tempa\relax + \if@atdocument\scr@dotchangeatdocument{#1}\else + \let\scr@altsecnumhook\@empty + \fi + \or + \if@atdocument\scr@dotchangeatdocument{#1}\else + \let\scr@altsecnumhook\scr@altsecnumhooktrue + \fi + \or + \if@atdocument\scr@dotchangeatdocument{#1}\else + \let\scr@altsecnumhook\scr@altsecnumhookfalse + \fi + \fi + \fi +} +% \end{macrocode} +% \begin{macro}{\scr@altsecnumhook} +% \changes{v2.98c}{2008/03/07}{Neu (intern)} +% \begin{macro}{\scr@altsecnumhooktrue} +% \changes{v2.98c}{2008/03/07}{Neu (intern)} +% \begin{macro}{\scr@altsecnumhookfalse} +% \changes{v2.98c}{2008/03/07}{Neu (intern)} +% Es werden drei Hilfsmakros benötigt. Das erste davon wird bei +% \cs{begin{document}} ausgeführt (nachdem die \texttt{aux}-Datei gelesen +% wurde!) und schaltet den gewünschten Zustand ein. Dazu wird es per Option +% ggf. auf die eine oder andere Bedeutung umgeschaltet. Im Auto-Fall ist es +% übrigens \cs{@empty}. +% \begin{macrocode} +\newcommand*{\scr@altsecnumhook}{} +\AtBeginDocument{\scr@altsecnumhook} +\newcommand*{\scr@altsecnumhooktrue}{% + \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue +} +\newcommand*{\scr@altsecnumhookfalse}{% + \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{pointednumbers} +% \changes{v2.3h}{1995/01/19}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt 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} +% \changes{v2.98c}{2008/03/07}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{pointlessnumbers} +% \changes{v2.3h}{1995/01/19}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt 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} +% \changes{v2.98c}{2008/03/07}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{pointednumbers}{numbers=enddot} +\KOMA@DeclareDeprecatedOption{pointlessnumbers}{numbers=noenddot} +% \end{macrocode} +% Übrigens weiß ich, wie blödsinnig die Namen der Optionen sind. Aber +% das ist nun nicht mehr zu ändern. +% \end{option} +% \end{option} +% +% +% \begin{option}{chapterprefix} +% \changes{v2.8}{2001/06/15}{neue Option} +% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option} +% \begin{option}{nochapterprefix} +% \changes{v2.8}{2001/06/15}{neue Option} +% \changes{v2.95c}{2006/08/21}{obsolete Option} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \iffalse +%<*book|report> +% \fi +% Normalerweise verwenden \textsf{scrbook} und \textsf{scrreprt} nicht +% die enorm großen Überschriften von \textsf{book} und +% \textsf{report}, die mit einem Absatz "`Kapitel \emph{Nummer}"' +% beginnen. Mit der Option \texttt{chapterprefix} kann dies jetzt +% wieder aktiviert werden. Die Option, zur Deaktivierung heißt +% entsprechend \textsf{nochapterprefix}. +% \begin{macro}{\if@chapterprefix} +% \begin{macro}{\@chapterprefixtrue} +% \begin{macro}{\@chapterprefixfalse} +% Um für Spezialanwendungen auch innerhalb des Dokuments eine +% Umschaltung zu ermöglichen bzw. für die Optionen +% \texttt{appendixprefix} und \texttt{noappendixprefix} erfolgt die +% Umschaltung durch einen Schalter. +% \begin{macrocode} +\newif\if@chapterprefix\@chapterprefixfalse +\KOMA@ifkey{chapterprefix}{@chapterprefix} +\KOMA@DeclareDeprecatedOption{nochapterprefix}{chapterprefix=false} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \iffalse +% +% \fi +% \end{option} +% \end{option} +% +% +% \begin{option}{appendixprefix} +% \changes{v2.8}{2001/06/15}{neue Option} +% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% \begin{option}{noappendixprefix} +% \changes{v2.8}{2001/06/15}{neue Option} +% \changes{v2.95c}{2006/08/21}{obsolete Option} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \iffalse +%<*book|report> +% \fi +% Will man abweichend von der Option \texttt{chapterprefix} die großen +% Überschriften für den Anhang aktivieren oder deaktivieren, so kann man das +% mit dieser Option erreichen. Allerdings setzt diese keinen Schalter, sondern +% ein Zusatzmakro, das auch für andere Zwecke genutzt werden kann. Übrigens +% ist keine der beiden Einstellungen die Voreinstellung! +% \begin{macrocode} +\KOMA@key{appendixprefix}[true]{% + \KOMA@set@ifkey{appendixprefix}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \if@tempswa + \def\appendixmore{\@chapterprefixtrue}% + \else + \def\appendixmore{\@chapterprefixfalse}% + \fi + \fi +} +\KOMA@DeclareDeprecatedOption{noappendixprefix}{appendixprefix=false} +% \end{macrocode} +% \iffalse +% +% \fi +% \end{option}^^A noappendixprefix +% \end{option}^^A appendixprefix +% +% +% \begin{macro}{\sectfont} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt}%^^A +% \changes{v3.12}{2013/11/11}{wird wegen Option +% \texttt{headings!=standardclasses} früher definiert}%^^A +% Dies Schriftart nicht nur für die Gliederungsbefehle. Dieses Makro +% ist als intern zu betrachten. Der Anwender sollte stattdessen das +% entsprtechende Fontelement verwenden. +% \begin{macrocode} +% +\newcommand*{\sectfont}{\normalcolor\sffamily\bfseries} +%<*class> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\size@part} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, +% wenn es keine Auswirkung auf den Zeilen abstand hat} +% \begin{macro}{\size@partnumber} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, +% wenn es keine Auswirkung auf den Zeilen abstand hat} +% \begin{macro}{\size@chapter} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, +% wenn es keine Auswirkung auf den Zeilen abstand hat} +% \begin{macro}{\size@chapterprefix} +% \changes{v2.96a}{2006/12/02}{neu (intern)} +% \begin{macro}{\size@section} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \begin{macro}{\size@subsection} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \begin{macro}{\size@subsubsection} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \begin{macro}{\size@paragraph} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \begin{macro}{\size@subparagraph} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% Diese Makros werden intern von den Elementen benötigt (siehe unten). Darüber +% hinaus werden sie per Option geändert und sind deshalb vor der +% entsprechenden Option zu definieren. +% \begin{macrocode} +\newcommand*{\size@part}{} +\newcommand*{\size@partnumber}{} +%\newcommand*{\size@chapter}{} +%\newcommand*{\size@chapterprefix}{\size@chapter} +\newcommand*{\size@section}{} +\newcommand*{\size@subsection}{} +\newcommand*{\size@subsubsection}{} +\newcommand*{\size@paragraph}{} +\newcommand*{\size@subparagraph}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\chapterheadstartvskip} +% \begin{macro}{\chapterheadendvskip} +% \changes{v3.11c}{2013/02/13}{\cs{chapterheadstartvskip} und +% \cs{chapterheadendvskip} haben in \textsf{scrartcl} nichts verloren} +% Mit diesen Anweisungen wird üblicherweise der Abstand zwischen +% oberem Rand des Textbereichs und der Überschrift bzw. der Abstand +% zwischen der Überschrift und dem Text des Kapitels gesetzt. Man kann +% die Anweisungen aber zusätzlich auch für andere Zwecke +% missbrauchen. Das ist der Grund warum diese Makros keine Längen, +% sondern komplette Anweisungen enthalten. In der Voreinstellung +% enthalten sie jedoch gar nichts. Die tatsächlichen Werte werden +% durch die Optionen festgelegt. +% \begin{macrocode} +%<*book|report> +\newcommand*{\chapterheadstartvskip}{} +\newcommand*{\chapterheadendvskip}{} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{option}{headings} +% \changes{v2.3h}{1996/01/20}{Größe von \cs{chapter} um eine Stufe +% verringert}^^A +% \changes{v2.3h}{1996/01/20}{Verwendung von \cs{chapterheadstartvskip} und +% \cs{chapterheadendvskip} an Stelle von festen vertikalen Abständen am +% Anfang und am Ende eines Kapitels}^^A +% \changes{v2.7c}{2000/01/19}{vertikale Abstände nach der Kapitelüberschrift +% geringfügig verändert und mit Leim versehen, um mit \cs{flushbottom} zu +% besseren Ergebnissen zu gelangen}^^A +% \changes{v2.98c}{2008/03/10}{Neue Option}^^A +% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale +% Argument der Gliederungsbefehle}^^A +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}}^^A +% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} durch \cs{KOMAoptions} +% ersetzt}^^A +% \changes{v3.12}{2013/11/11}{neuer Wert \texttt{standardclasses}}^^A +% Dies ist eine neue zentrale Option für Überschriften. Dabei ergibt sich +% nun auch das Problem, dass die Gesamtmenge der Überschriften mal +% \emph{headings} (Überschriften), mal \emph{sectioning} +% (Abschnittseinteilung) und mal \emph{disposition} (Gliederung) genannt +% wird. Es wäre gut gewesen, sich bei Zeiten Gedanken darüber zu machen, wie +% man das am besten einheitlich nennt. +% \begin{macrocode} +\KOMA@key{headings}{% + \KOMA@set@ncmdkey{headings}{@tempa}{% + {big}{0},% + {normal}{1},% + {small}{2},% +%<*book|report> + {openany}{3},% + {openright}{4},% + {openleft}{5},% + {twolinechapter}{6},{chapterprefix}{6},{chapterwithprefix}{6},% + {chapterwithprefixline}{6},% + {onelinechapter}{7},{nochapterprefix}{7},{chapterwithoutprefix}{7},% + {chapterwithoutprefixline}{7},% + {twolineappendix}{8},{appendixprefix}{8},{appendixwithprefix}{8},% + {appendixwithprefixline}{8},% + {onelineappendix}{9},{noappendixprefix}{9},{appendixwithoutprefix}{9},% + {appendixwithoutprefixline}{9},% +% + {optiontotocandhead}{10},{optiontoheadandtoc}{10},% + {optiontotoc}{11},% + {optiontohead}{12},% + {standardclasses}{13}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase \@tempa\relax +% \end{macrocode} +% Als erstes kümmern wir uns um die drei Größenabstufungen für die +% Überschriften, die \KOMAScript{} bietet, und zwar in der Reihenfolge +% \texttt{big}, \texttt{normal}, \texttt{small}. Es sei darauf hingewiesen, +% dass die Verwendung dieser Option alle Änderungen an +% \cs{chapterheadstartvskip} oder \cs{chapterheadendvskip} oder den +% Font-Elementen für die einzelnen Überschriften aufhebt macht! +% \begin{macrocode} +%<*book|report> + \renewcommand*{\chapterheadstartvskip}{% + \vspace*{2.3\baselineskip}% + }% + \renewcommand*{\chapterheadendvskip}{% + \vspace{1.725\baselineskip + \@plus .115\baselineskip \@minus .192\baselineskip}% + }% +% + \renewcommand*{\size@part}{\Huge}% + \renewcommand*{\size@partnumber}{\huge}% +% \renewcommand*{\size@chapter}{\huge}% +% \renewcommand*{\size@chapterprefix}{\size@chapter}% + \renewcommand*{\size@section}{\Large}% + \renewcommand*{\size@subsection}{\large}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \or +%<*book|report> + \renewcommand*{\chapterheadstartvskip}{% + \vspace*{2\baselineskip}% + }% + \renewcommand*{\chapterheadendvskip}{% + \vspace{1.5\baselineskip + \@plus .1\baselineskip \@minus .167\baselineskip}% + }% +% + \renewcommand*{\size@part}{\huge}% + \renewcommand*{\size@partnumber}{\huge}% +%<*book|report> + \renewcommand*{\size@chapter}{\LARGE}% + \renewcommand*{\size@chapterprefix}{\size@chapter}% + \renewcommand*{\size@section}{\Large}% + \renewcommand*{\size@subsection}{\large}% +% +%<*article> + \renewcommand*{\size@section}{\large}% + \renewcommand*{\size@subsection}{\normalsize}% +%
+ \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \or +%<*book|report> + \renewcommand*{\chapterheadstartvskip}{% + \vspace*{1.8\baselineskip}% + }% + \renewcommand*{\chapterheadendvskip}{% + \vspace{1.35\baselineskip + \@plus 0.09\baselineskip \@minus .15\baselineskip}% + }% +% + \renewcommand*{\size@part}{\LARGE}% + \renewcommand*{\size@partnumber}{\LARGE}% +%<*book|report> + \renewcommand*{\size@chapter}{\Large}% + \renewcommand*{\size@chapterprefix}{\size@chapter}% + \renewcommand*{\size@section}{\large}% +% +%<*article> + \renewcommand*{\size@section}{\normalsize}% +%
+ \renewcommand*{\size@subsection}{\normalsize}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% +% \end{macrocode} +% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die +% Möglichkeit, auch hierüber die Optionen \texttt{open=any}, +% \texttt{open=right} und \texttt{open=left} zu setzen. +% \begin{macrocode} + \or +%<*book|report> + \KOMAoptions{open=any}% +%
+ \or +%<*book|report> + \KOMAoptions{open=right}% +% + \or +%<*book|report> + \KOMAoptions{open=left}% +% +% \end{macrocode} +% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die +% Möglichkeit, auch hierüber die Optionen \texttt{chapterprefix} und +% \texttt{appendixprefix} zu setzen. +% \begin{macrocode} + \or +%<*book|report> + \KOMAoptions{chapterprefix=true}% +% + \or +%<*book|report> + \KOMAoptions{chapterprefix=false}% +% + \or +%<*book|report> + \KOMAoptions{appendixprefix=true}% +% + \or +%<*book|report> + \KOMAoptions{appendixprefix=false}% +% +% \end{macrocode} +% Ab Version~3.10 wird über diese Option auch noch die Erweiterung für das +% optionale Argument der Gliederungsüberschriften aktiviert und gesteuert. +% \begin{macrocode} + \or + \scr@activate@xsection{3}% + \or + \scr@activate@xsection{2}% + \or + \scr@activate@xsection{1}% +% \end{macrocode} +% Ab Version~3.12 gibt es noch die Möglichkeit, die Überschriftengrößen der +% Standardklassen zu emulieren. +% \begin{macrocode} + \or +%<*book|report> + \renewcommand*{\chapterheadstartvskip}{% + \vspace*{50\p@}% + }% + \renewcommand*{\chapterheadendvskip}{% + \vspace{40\p@}% + }% + \renewcommand*{\size@part}{\Huge}% + \renewcommand*{\size@partnumber}{\huge}% + \renewcommand*{\size@chapter}{\Huge}% + \renewcommand*{\size@chapterprefix}{\huge}% +% +%<*article> + \renewcommand*{\size@part}{\huge}% + \renewcommand*{\size@partnumber}{\Large}% +%
+ \renewcommand*{\size@section}{\Large}% + \renewcommand*{\size@subsection}{\large}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \renewcommand*{\sectfont}{\bfseries}% +% \KOMAoptions{open=right,chapterprefix=true}% + \fi + \fi +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{bigheadings} +% \changes{v2.3h}{1996/01/20}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei +% Verwendung des alten, falschen Namens wird ein Fehler +% ausgegeben} +% \changes{v2.98c}{2008/03/10}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macro}{\@bigheadings} +% \changes{v2.98c}{2008/03/10}{entfernt} +% \begin{option}{normalheadings} +% \changes{v2.3h}{1996/01/20}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei +% Verwendung des alten, falschen Namens wird ein Fehler +% ausgegeben} +% \changes{v2.98c}{2008/03/10}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macro}{\@normalheadings} +% \changes{v2.98c}{2008/03/10}{entfernt} +% \begin{option}{smallheadings} +% \changes{v2.3h}{1996/01/20}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei +% Verwendung des alten, falschen Namens wird ein Fehler +% ausgegeben} +% \changes{v2.98c}{2008/03/10}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macro}{\@smallheadings} +% \changes{v2.98c}{2008/03/10}{entfernt} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{bigheadings}{headings=big} +\KOMA@DeclareDeprecatedOption{normalheadings}{headings=normal} +\KOMA@DeclareDeprecatedOption{smallheadings}{headings=small} +% \end{macrocode} +% \end{macro} +% \end{option} +% \end{macro} +% \end{option} +% \end{macro} +% \end{option} +% +% \begin{macro}{\scr@activate@xsection} +% \changes{v3.10}{2011/08/30}{neu (intern)} +% Hiermit wird die Erweiterung für das optionale Argument der +% Gliederungsbefehle eingeschaltet. +% \begin{macro}{\scr@osectarg} +% Für die nicht per \cs{@startsection} implementierten Befehle geht das +% einfach durch Umschaltung von \cs{scr@osectarg}. Bei 0 ist die Aktivierung +% nicht aktiv. Bei 1 landet das optionale Argument hingegen im Kopf, bei 2 +% im Inhaltsverzeichnis und bei 3 in beiden. Die Voreinstellung ist deshalb +% ebenfalls 0. +% \begin{macrocode} +\newcommand*{\scr@osectarg}{0} +\newcommand*{\scr@activate@xsection}[1]{% + \renewcommand*{\scr@osectarg}{#1}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \iffalse +% +% +%<*body> +% \fi +% +% +% \subsection{Grobeinteilung von Büchern} +% \iffalse +%<*class> +%<*book> +% \fi +% +% \begin{macro}{\if@mainmatter} +% \begin{macro}{\@mainmattertrue} +% \begin{macro}{\@mainmatterfalse} +% \changes{v2.3a}{1995/07/08}{\cs{if@mainmatter} Anforderung +% verschoben} +% Über 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} +% +% \begin{macro}{\frontmatter} +% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten} +% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten} +% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt +% \cs{cleardoublepage}} +% Der Vorspann enthält bei Büchern oftmals Inhaltsverzeichnis, Vorwort +% und dergleichen und wird mit kleinen römischen Seitenzahlen +% versehen. +% \begin{macrocode} +\newcommand*\frontmatter{% + \if@twoside\cleardoubleoddpage\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} +% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt +% \cs{cleardoublepage}} +% Der Hauptteil ist das Fleisch der Bücher. +% \begin{macrocode} +\newcommand*\mainmatter{% + \if@twoside\cleardoubleoddpage\else\clearpage\fi + \@mainmattertrue\pagenumbering{arabic}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\backmatter} +% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt +% \cs{cleardoublepage}} +% 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\cleardoubleoddpage\else\clearpage\fi\@mainmatterfalse +} +% \end{macrocode} +% \end{macro} +% \iffalse +% +% \fi +% +% +% \subsection{Anhang} +% \begin{macro}{\appendix} +% Wird der Anhang aktiviert, so werden Kapitel zukünftig mit Buchstaben +% nummeriert. +% \changes{v2.2d}{1995/05/28}{\textsf{scrartcl} benötigt keinen +% Zähler für \cs{chapter}} +% \changes{v2.3c}{1995/08/06}{alternative Nummerierung 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änger ausgeführt} +% \changes{v2.8o}{2001/09/19}{\cs{par} eingefügt} +% \changes{v2.95}{2006/07/04}{\cs{newcommand*} durch \cs{gdef} ersetzt} +% \changes{v2.95}{2006/07/04}{Ausführung von \cs{appendixmore} vereinfacht} +% \begin{macro}{\appendixmore} +% \cs{appendixmore} kann als \emph{hook} verwendet werden. +% \begin{macrocode} +\newcommand*\appendix{\par% +%<*article> + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \gdef\thesection{\@Alph\c@section}% +%
+%<*report|book> + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@Alph\c@chapter}% +%
+ \csname appendixmore\endcsname +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{Definitionen für Seitenstile} +% +% \begin{macro}{\chaptermark} +% Da \cs{chapter} nicht mit Hilfe von \cs{@startsection} definiert +% wird, wird auch \cs{chaptermark} nicht automatisch definiert. Es +% wird aber in den Seitenstilen benötigt bzw. umdefiniert. Also hier +% vorsorglich eine Dummy-Definition: +% \begin{macrocode} +%\newcommand*\chaptermark[1]{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addchapmark} +% \changes{v3.12}{2013/03/26}{neue Anweisung} +% \begin{macro}{\addsecmark} +% \changes{v3.12}{2013/03/26}{neue Anweisung} Für \cs{addchapmark} und +% \cs{addsecmark} gilt dies hingegen nicht. Das wird nicht von den Stilen +% definiert, sondern direkt mit der gewünschten Definition +% initialisiert. Bitte nicht davon verwirren lassen, dass \cs{if@mainmatter} +% hier auch von \textsf{scrreprt} definiert wird. Das ist Absicht und +% vereinfacht dem einen oder anderen Paket oder Benutzer vielleicht die +% Arbeit. +% \begin{macrocode} +%<*book|report> +\newcommand*\addchapmark[1]{% + \begingroup + \expandafter\let\csname if@mainmatter\expandafter\endcsname + \csname iffalse\endcsname + \c@secnumdepth=\m@ne + \chaptermark{#1}% + \endgroup +} +% +\newcommand*\addsecmark[1]{% + \begingroup + \c@secnumdepth=\m@ne + \sectionmark{#1}% + \endgroup +} +% \end{macrocode} +% \end{macro}^^A \addsecmark +% \end{macro}^^A \addchapmark +% +% \subsection{Der Automatismus für den Punkt in der Nummerierung} +% +% Nach Duden 20.~Auflage, Regel~5 wird in der Gliederung kein Punkt +% gesetzt, wenn diese rein mit arabischen Zahlen erfolgt. Nach Regel~6 +% folgt jedoch ein Punkt, wenn die Gliederung auch römische Zahlen +% oder Großbuchstaben enthält. Aus Konsistenzgründen muss der Punkt in +% diesem Fall immer gesetzt werden. \KOMAScript{} bietet dafür einen +% Automatismus. +% +% \begin{macro}{\if@altsecnumformat} +% \changes{v2.3c}{1995/08/06}{neuer Schalter} +% \begin{macro}{\@altsecnumformattrue} +% \begin{macro}{\@altsecnumformatfalse} +% Dieses Schalter wird für die Umschaltung auf Duden-Regel~6 bei der +% Numerierung benötigt. +% \begin{macro}{\if@autodot} +% \changes{v2.8e}{2001/07/10}{neuer Schalter} +% \begin{macro}{\@autodottrue} +% \changes{v3.00}{2008/10/07}{arbeitet nun gobal} +% \begin{macro}{\@autodotfalse} +% \changes{v3.00}{2008/10/07}{arbeitet nun gobal} +% Damit die Umschaltung auch wieder zurück auf Regel~5 automatisch +% erfolgen kann, wird ein zweiter Schalter benötigt. +% \begin{macrocode} +\newif\if@altsecnumformat\@altsecnumformatfalse +\newif\if@autodot +\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue} +\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse} +\@autodotfalse +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\@maybeautodot} +% \changes{v2.8e}{2001/07/10}{neu (intern)} +% Ob der automatische Punkt aktiviert werden muss, wird aufgrund der +% Darstellung eines Zählers entschieden. Diese wird dem Makro als +% Argument übergeben (\cs{thepart}, \cs{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 (intern)} +% \changes{v3.00}{2008/10/07}{neuerdings überflüssige \cs{aftergroup} +% entfernt} +% Die expandierte Darstellung wird dann auf Darstellungsbefehle für +% Zähler gescannt. +% \begin{macrocode} +\newcommand*{\@@maybeautodot}[1]{% + \ifx #1\@stop\let\@@maybeautodot\relax + \else + \ifx #1\Alph \@autodottrue\fi + \ifx #1\alph \@autodottrue\fi + \ifx #1\Roman \@autodottrue\fi + \ifx #1\roman \@autodottrue\fi + \ifx #1\@Alph \@autodottrue\fi + \ifx #1\@alph \@autodottrue\fi + \ifx #1\@Roman \@autodottrue\fi + \ifx #1\@roman \@autodottrue\fi + \ifx #1\romannumeral \@autodottrue\fi + \fi + \@@maybeautodot +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\scr@sect} +% \changes{v3.10}{2011/08/30}{entfällt} +% \begin{macro}{\@sect} +% \changes{v3.10}{2011/08/30}{Vollständige Neudefinition zur Realisierung +% der Erweiterung für das optionale Argument}%^^A +% \changes{v3.10}{2011/08/30}{Verwendung von +% \cs{csname}\texttt{add\#1tocentry}\cs{endcsname} +% bzw. \cs{addtocentrydefault}}%^^A +% Damit auch alle mit \cs{@startsection} definierten Gliederungsebenen +% bei der Entscheidung berücksichtigt werden, muss ein internes Makro +% des \LaTeX-Kerns erweitert werden. Für die Ebenen \cs{part} und +% \cs{chapter} wird der Test direkt in der Definition der Befehle +% erledigt. +% \begin{macrocode} +\def\@tempa#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% + \interlinepenalty \@M #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}% + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% + \fi + \@xsect{#5}} +\ifx\@sect\@tempa\else + \ClassWarning{\KOMAClassName}{% + Unexpected definition of \string\@sect!\MessageBreak + Please send an information about this to\MessageBreak + the KOMA-Script maintainer!\MessageBreak + Maybe LaTeX will be broken by the redefinition\MessageBreak + of \string\@sect\space}% +\fi +%\ClassInfo{\KOMAClassName}{redefining LaTeX kernel macro \string\@sect} +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum \scr@osectarg=\z@ + \@scr@tempswafalse + \else + \scr@istest#7=\@nil + \fi + \if@scr@tempswa + \setkeys{KOMAarg.section}{tocentry={#8},head={#8},#7}% + \else + \ifcase \scr@osectarg\relax + \setkeys{KOMAarg.section}{tocentry={#7},head={#7}}% + \or + \setkeys{KOMAarg.section}{tocentry={#8},head={#7}}% + \or + \setkeys{KOMAarg.section}{tocentry={#7},head={#8}}% + \or + \setkeys{KOMAarg.section}{tocentry={#7},head={#7}}% + \fi + \fi + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \expandafter\@maybeautodot\csname the#1\endcsname + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% + \interlinepenalty \@M #8\@@par}% + \endgroup +% \ClassInfo{\KOMAClassName}{head=`\scr@ds@head'}% + \expandafter\csname #1mark\expandafter\endcsname\expandafter{\scr@ds@head}% +% \ClassInfo{\KOMAClassName}{tocentry=`\scr@ds@tocentry'}% + \ifx\scr@ds@tocentry\@empty\else + \scr@ifundefinedorrelax{add#1tocentry}{% + \expandafter\global\expandafter\def + \csname add#1tocentry\endcsname##1##2{% + \addtocentrydefault{#1}{##1}{##2}% + }% + }{}% + \ifnum #2>\c@secnumdepth + \csname add#1tocentry\endcsname{}{\scr@ds@tocentry}% + \else + \csname add#1tocentry\endcsname{\csname the#1\endcsname}{% + \scr@ds@tocentry}% + \fi + \fi + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% +% \ClassInfo{\KOMAClassName}{head=`\scr@ds@head'}% + \expandafter\csname #1mark\expandafter\endcsname\expandafter{% + \scr@ds@head}% +% \ClassInfo{\KOMAClassName}{tocentry=`\scr@ds@tocentry'}% + \ifx\scr@ds@tocentry\@empty\else + \scr@ifundefinedorrelax{add#1tocentry}{% + \expandafter\global\expandafter\def + \csname add#1tocentry\endcsname####1####2{% + \addtocentrydefault{#1}{####1}{####2}% + }% + }{}% + \ifnum #2>\c@secnumdepth + \csname add#1tocentry\endcsname{}{\scr@ds@tocentry}% + \else + \csname add#1tocentry\endcsname{\csname the#1\endcsname}{% + \scr@ds@tocentry}% + \fi + \fi + }% + \fi + \@xsect{#5}% +} +% \end{macrocode} +% \begin{macro}{\scr@ds@tocentry} +% \changes{v3.10}{2011/08/30}{neu (intern)} +% \begin{macro}{\scr@ds@head} +% \changes{v3.10}{2011/08/30}{neu (intern)} +% \begin{macro}{\if@scr@tempswa} +% \changes{v3.10}{2011/08/30}{neu (intern)} +% \begin{macro}{\scr@istest} +% \changes{v3.10}{2011/08/30}{neu (intern)} +% Für die Realisierung werden noch ein paar Key-Value-Definitionen und ein +% paar Hilfsmakros benötigt: +% \begin{macrocode} +\DefineFamily{KOMAarg} +\DefineFamilyMember[.section]{KOMAarg} +\DefineFamilyKey[.section]{KOMAarg}{tocentry}{\def\scr@ds@tocentry{#1}} +\DefineFamilyKey[.section]{KOMAarg}{head}{\def\scr@ds@head{#1}} +\newcommand*\scr@ds@tocentry{} +\newcommand*\scr@ds@head{} +\newcommand*{\scr@istest}{} +\def\scr@istest#1=#2\@nil{% + \ifx\relax#2\relax\@scr@tempswafalse\else\@scr@tempswatrue\fi +} +\newif\if@scr@tempswa +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% Dabei soll die Umstellung des Punktes 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} +% \changes{v2.95}{2004/01/15}{es wird erst unmittelbar vor dem Schließen +% der Haupt-aux-Datei in diese geschrieben} +% \changes{v2.96a}{2006/12/07}{es wird \cs{immediate} geschrieben} +% \begin{macrocode} +\BeforeClosingMainAux{% + \if@autodot\if@filesw\immediate\write\@mainaux{% + \string\global\string\@altsecnumformattrue}% + \fi\fi} +% \end{macrocode} +% +% \begin{macro}{\autodot} +% \changes{v2.7}{2001/01/03}{neu} +% Dieses Makro setzt dann den Punkt nach Bedarf. +% \begin{macrocode} +\newcommand*\autodot{\if@altsecnumformat.\fi} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Zähler für die Gliederungsebenen} +% +% \begin{Counter}{secnumdepth} +% Dieser Zähler gibt an, bis zu welcher Ebene die +% Gliederungsüberschriften nummeriert werden. +% \begin{macrocode} +%\setcounter{secnumdepth}{2} +%
\setcounter{secnumdepth}{3} +% \end{macrocode} +% \end{Counter} +% +% \begin{macro}{\partnumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% \begin{macro}{\chapternumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% \begin{macro}{\sectionnumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% \begin{macro}{\subsectionnumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% \begin{macro}{\subsubsectionnumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% \begin{macro}{\paragraphnumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% \begin{macro}{\subparagraphnumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% Diese dürfen nur gelesen, sollten aber nie umdefiniert werden und geben die +% Nummerierungsebene der Gliederungsanweisungen an (nicht zu verwechseln mit +% der Verzeichnisebene der Gliederungsanweisungen): +% \begin{macrocode} +\newcommand*{\partnumdepth}{% +%
\z@ +% \m@ne +} +%\newcommand*{\chapternumdepth}{\z@} +\newcommand*{\sectionnumdepth}{\@ne} +\newcommand*{\subsectionnumdepth}{\tw@} +\newcommand*{\subsubsectionnumdepth}{\thr@@} +\newcommand*{\paragraphnumdepth}{4} +\newcommand*{\subparagraphnumdepth}{5} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifnumbered} +% \changes{v3.12}{2013/12/16}{new command} +% \begin{macro}{\ifunnumbered} +% \changes{v3.12}{2013/12/16}{new command} +% Test, ob eine Gliederungsebene (\texttt{\#1}) nummeriert wird. Falls das der +% Fall ist, wird das zweite Argument verwendet, sonst das dritte. Bei +% \cs{ifunnumbered} ist die Logik genau vertauscht. +% \begin{macrocode} +\newcommand*{\ifnumbered}[1]{% + \scr@ifundefinedorrelax{#1numdepth}{% + \@secondoftwo + }{% + \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi + }% +} +\newcommand*{\ifunnumbered}[1]{% + \scr@ifundefinedorrelax{#1numdepth}{% + \@firstoftwo + }{% + \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{Counter}{part} +% \begin{macro}{\thepart} +% \begin{macro}{\partformat} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6} +% \changes{v2.5f}{1999/02/14}{überflüssiges Leerzeichen am Ende +% entfernt} +% \changes{v2.7h}{2001/04/22}{verlorenen Backslash in \cs{autodot} +% wieder eingefügt} +% \begin{Counter}{chapter} +% \begin{macro}{\thechapter} +% \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ügt} +% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt +% \cs{chapappifprefix}} +% \changes{v2.96a}{2006/12/02}{\cs{mbox} eingefügt, um \cs{caps} zu +% ermöglichen} +% \begin{macro}{\chaptermarkformat} +% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer +% erhöht} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6} +% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingefügt} +% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt +% \cs{chapappifprefix}} +% \changes{v3.03a}{2009/04/03}{Tilde durch \cs{nobreakspace} ersetzt, um die +% Kompatibilität mit Spanisch zu verbessern} +% \begin{Counter}{section} +% \begin{macro}{\thesection} +% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil} +% \changes{v3.03b}{2009/06/09}{\cs{relax} im Kompatibilitätstest durch ein +% Leerzeichen ersetzt, obwohl das die Wartbarkeit verschlechtert, aber +% \textsf{hyperref} hat mit dem \cs{relax} ein nicht dokumentieres Problem} +% \begin{macro}{\sectionmarkformat} +% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer +% erhöht} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6} +% \begin{Counter}{subsection} +% \begin{macro}{\thesubsection} +% \begin{macro}{\subsectionmarkformat} +% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer +% erhöht} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6} +% \begin{Counter}{subsubsection} +% \begin{macro}{\thesubsubsection} +% \begin{Counter}{paragraph} +% \begin{macro}{\theparagraph} +% \begin{Counter}{subparagraph} +% \begin{macro}{\thesubparagraph} +% Jede Gliederungsebene benötigt einen Zähler für die +% Gliederungsnummer und eine Darstellung des Zählers +% (\cs{the\dots}). Desweiteren wird eine Formatierung des Zählers in +% den Gliederungsüberschriften (\texttt{\bslash\dots format}) und eine +% Formatierung des Zählers in der Kopfzeile +% (\texttt{\bslash\dots markformat}) benötigt. +% \begin{macrocode} +\newcounter{part} +\renewcommand*{\thepart}{\@Roman\c@part} +\newcommand*{\partformat}{\partname~\thepart\autodot} +%<*book|report> +\newcounter{chapter} +\renewcommand*{\thechapter}{\@arabic\c@chapter} +\newcommand*{\chapterformat}{% + \mbox{\chapappifchapterprefix{\nobreakspace}\thechapter\autodot\enskip}% +} +\newcommand*\chaptermarkformat{\chapappifchapterprefix{\ }% + \thechapter\autodot\enskip} +\newcounter{section}[chapter] +\renewcommand*\thesection{% +%<*book> + \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d} % the space before this + % comment should be \relax but hyperref has a + % not documented problem with \relax + \if@mainmatter\thechapter.\fi + \else +% + \thechapter.% +% \fi + \@arabic\c@section +} +\newcommand*\sectionmarkformat{\thesection\autodot\enskip} +% +%<*article> +\newcounter{section} +\renewcommand*{\thesection}{\@arabic\c@section} +\newcommand*\sectionmarkformat{\thesection\autodot\enskip} +%
+\newcounter{subsection}[section] +\renewcommand*{\thesubsection}{\thesection.\@arabic\c@subsection} +%<*article> +\newcommand*\subsectionmarkformat{\thesubsection\autodot\enskip} +%
+\newcounter{subsubsection}[subsection] +\renewcommand*{\thesubsubsection}{% + \thesubsection.\@arabic\c@subsubsection +} +\newcounter{paragraph}[subsubsection] +\renewcommand*{\theparagraph}{\thesubsubsection.\@arabic\c@paragraph} +\newcounter{subparagraph}[paragraph] +\renewcommand*{\thesubparagraph}{% + \theparagraph.\@arabic\c@subparagraph +} +% \end{macrocode} +% \begin{macro}{\@seccntformat} +% \changes{v2.3c}{1995/08/06}{CJK erweitert} +% \changes{v2.9p}{2004/01/07}{\cs{protect} eingefügt} +% \changes{v2.97}{2007/01/24}{Workaround für das blöde \cs{protect}} +% \begin{macro}{\othersectionlevelsformat} +% \changes{v2.7}{2000/01/03}{neu} +% \changes{v2.7}{2000/01/03}{\cs{quad} durch \cs{enskip} ersetzt} +% \changes{v2.7i}{2001/05/17}{\cs{let} durch \cs{def} ersetzt} +% \changes{v2.97}{2007/01/24}{statt einem Argument jetzt drei} +% Bei den Ebenen ab \cs{section} erfolgt die Formatierung der +% Gliederungnummer in der Überschrift mit einer gemeinsamen +% Anweisung. Die interne Anweisung \cs{@seccntformat} wird dabei von +% \LaTeX-Kern verwendet und muss umdefiniert werden, um eine +% entsprechende Anweisung auf Anwenderebene verfügbar zu haben. +% Ab Version 2.9p wurde in \cs{@seccntformat} ein \cs{protect} vor +% \cs{othersectionlevelsformat} eingefügt. Damit wurde es für den Benutzer +% deutlich einfacher, die Anweisung \cs{othersectionlevelsformat} +% umzudefinieren. Dafür war dadurch aber \cs{the\dots} nicht mehr +% expandiert. Das wiederum gab Probleme, wenn \cs{@seccntformat} für den +% \cs{mark}-Mechanismus genutzt wurde. Deshalb hat +% \cs{othersectionlevelsformat} ab Version 2.97 drei Argumente statt nur +% eines. Das zweite Argument sollte vom Anwender ignoriert werden, es +% existiert nur, um die Kompatibitlität Umdefinitionen zu erhalten, bei denen +% \cs{othersectionlevelsformat} nur ein Argument besitzt. Das dritte Argument +% ist die \cs{the\dots}-Anweisung. Das zweite Argument funktioniert so, das es +% das dritte Argument frisst, falls \cs{othersectionlevelsformat} nur ein +% Argument liest. +% \begin{macrocode} +\newcommand*{\othersectionlevelsformat}[3]{#3\autodot\enskip} +\renewcommand*{\@seccntformat}[1]{% + \protect\othersectionlevelsformat{#1}{% + \expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{macro} +% \end{Counter} +% +% +% \changes{v2.8e}{2001/07/10}{\cs{@thepart} entfernt} +% \changes{v2.8e}{2001/07/10}{\cs{@maybeasf} entfernt} +% +% +% \subsection{Namen für die Gliederung} +% +% \begin{macro}{\partname} +% \begin{macro}{\chaptername} +% \begin{macro}{\abstractname} +% Diese Makros enthalten die Namen der Gliederungsebenen \cs{part} und +% \cs{chapter}, sowie den Namen der Zusammenfassung: +% \begin{macrocode} +\newcommand*\partname{Part} +%\newcommand*\chaptername{Chapter} +%\newcommand*\abstractname{Abstract} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\appendixname} +% Der Name des Anhangs. +% \begin{macrocode} +\newcommand*\appendixname{Appendix} +% \end{macrocode} +% \end{macro} +% +% \iffalse +%<*book|report> +% \fi +% \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} +% Das in \cs{chapterformat} verwendete Makro +% \cs{chapappifchapterprefix} setzt abhängig von \cs{if@chapterprefix} +% noch das Makro \cs{chapapp} gefolgt vom obliatorischen Argument. +% \cs{chapapp} macht \cs{@chapapp} auf Anwenderebene verfügbar. Der +% Vorteil des neuen \cs{chapappifchapterprefix} gegenüber dem alten +% \cs{chapappifprefix} ist, dass nun beim Umdefinieren von +% \cs{chapterformat} und \cs{chaptermarkformat} wieder +% \cs{renewcommand} verwendet werden kann und beim Umschalten in den +% Anhang die Kopfzeile korrekt ist, weil das Makro nun nicht mehr +% geschützt ist, sondern direkt expandiert. +% \begin{macrocode} +\newcommand*{\chapappifprefix}[1][]{% + \ClassWarning{\KOMAClassName}{% + 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} +% \begin{macro}{\@chapapp} +% Dieses Makro enthält den Kapitelname (\cs{chaptername}), der sich im +% Anhang üblicherweise ändert (\cs{appendixname}). +% \begin{macrocode} +\newcommand*\@chapapp{\chaptername} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \iffalse +% +% \fi +% +% \subsection{Die Gliederungsbefehle} +% +% \changes{v2.3h}{1996/01/20}{Größenbefehle in den Überschriften +% variabilisiert} +% +% \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ömischer +% 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äambel über der Überschrift +% hinzugefügt} +% \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ür \textsf{scrartcl} \cs{markboth} +% zum Löschen der Kolumnentitel durch \cs{sectionmark} ersetzt} +% \changes{v2.5e}{1998/07/17}{\cs{numberline} verwendet, damit die +% reservierte Part-Nummern-Breite in \cs{l@part} auch wirklich +% verwendet wird} +% \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.95}{2002/08/13}{\cs{centering} und \cs{@parskipfalse}% +% \cs{@parskip@indent} vertauscht} +% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und } +% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} +% ersetzt} +% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addparttocentry}} +% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale +% Argument der Gliederungsbefehle} +% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird +% stattdessen \cs{@mkboth}{}{} aufgerufen.} +% \begin{macro}{\@spart} +% \changes{v2.4n}{1997/05/28}{in der Sternvariante \cs{chaptermark} +% bzw. \cs{sectionmark} eingefügt, um die Kolumnentitel zu +% löschen} +% \changes{v2.6a}{2000/01/20}{zum Löschen der Kolumnentitel wird +% nun \cs{@mkboth} verwendet} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \changes{v2.95}{2002/08/13}{\cs{centering} und +% \cs{@parskipfalse}\cs{@parskip@indent} vertauscht} +% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} +% ersetzt} +% \begin{macro}{\@endpart} +% \changes{v2.3g}{1996/01/14}{\cs{@endpart} wird für +% \textsf{scrartcl} nicht mehr definiert} +% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten} +% \changes{v2.6c}{2000/06/10}{\cs{@endpart} fügt nur noch in +% beidseitigen Dokumenten bei Verwendung von openright eine +% Leerseite ein} +% \changes{v2.8p}{2001/09/27}{\cs{vbox} eingefügt} +% \changes{v2.8p}{2001/09/27}{\cs{use@preamble} ersetzt +% \cs{@part@preamble}} +% \changes{v3.02}{2009/01/01}{Verwendung des neuen \cs{partheademptypage}} +% Der Gliederungsfehl \cs{part} wird wie in den Standardklassen mit +% Hilfe mehrere Hilfsmakros definiert. Wesentliche Unterschiede zu den +% Standardklassen existieren nicht, jedoch sind Schriftgröße, +% Schriftart u.\,ä. flexibler gehalten. Außerdem gibt es die +% Möglichkeit von Präambeln. \emph{Achtung: Die Präambel vor der +% \cs{part}-Überschrift kann ohne Warnung über den oberen Rand +% hinaus reichen!} +% \begin{macro}{\partheadstartvskip} +% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit} +% \begin{macro}{\partheadmidvskip} +% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit} +% \begin{macro}{\partheadendvskip} +% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit} +% \begin{macro}{\parheademptypage} +% \changes{v3.02}{2009/01/01}{neue Konfigurationsmöglichkeit} +% Diese vier Makros werden verwendet, um den Abstand über in und unter der +% Überschrift eines Teils und die leere Rückseite zu definieren. Prinzipiell +% kann damit auch der Umbruch zwischen Nummer und Text entfernt werden. +% \begin{macrocode} +\newcommand*{\partheadstartvskip}{% +%
\addvspace{4ex}% +% \null\vfil +} +\newcommand*{\partheadmidvskip}{% + \par\nobreak +% \vskip 20\p@ +} +\newcommand*{\partheadendvskip}{% +%
\vskip 3ex +% \vfil\newpage +} +%<*report|book> +\newcommand*{\partheademptypage}{% + \if@twoside\if@openright + \null% + \thispagestyle{empty}% + \newpage + \fi\fi +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +%<*article> +\newcommand\part{\par + \partheadstartvskip% + \@afterindentfalse + \secdef\@part\@spart +} +%
+%<*report|book> +\newcommand\part{\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{\partpagestyle}% + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \partheadstartvskip + \vbox to\z@{\vss\use@preamble{part@o}\strut\par}% + \vskip-\baselineskip\nobreak% + \secdef\@part\@spart +} +%
+\newcommand*{\@part}{} +\def\@part[#1]#2{% + \ifnum \scr@osectarg=\z@ + \@scr@tempswafalse + \else + \scr@istest#1=\@nil + \fi + \if@scr@tempswa + \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% + \else + \ifcase \scr@osectarg\relax + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \fi + \fi + \ifnumbered{part}{% + \refstepcounter{part}% + \@maybeautodot\thepart% + \ifx\scr@ds@tocentry\@empty\else + \addparttocentry{\thepart}{\scr@ds@tocentry}% + \fi + }{% + \ifx\scr@ds@tocentry\@empty\else + \addparttocentry{}{\scr@ds@tocentry}% + \fi + }% + \begingroup + \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative + \raggedpart + \interlinepenalty \@M + \normalfont\sectfont\nobreak + \ifnumbered{part}{% + \size@partnumber{\partformat}% + \partheadmidvskip + }{}% + \size@part{#2}\strut + \ifx\partmark\@gobble + \@mkboth{}{}\par + \else + \expandafter\partmark\expandafter{\scr@ds@head}\par + \fi + \endgroup +%<*article> + \nobreak + \partheadendvskip + \@afterheading +%
+% \@endpart +} +\newcommand*{\@spart}[1]{% + \begingroup + \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative + \raggedpart + \interlinepenalty \@M + \normalfont + \sectfont\nobreak\size@part{#1}\strut\@mkboth{}{}\par + \endgroup +%<*article> + \nobreak + \partheadendvskip + \@afterheading +%
+% \@endpart +} +%<*book|report> +\newcommand*{\@endpart}{\vbox to\z@{\use@preamble{part@u}\vss}% + \partheadendvskip + \partheademptypage + \if@tempswa + \twocolumn + \fi +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\addparttocentry} +% \changes{v3.08}{2010/11/01}{Neu} +% Seit Version~3.08 wird der Eintrag nicht direkt innerhalb von \cs{part} +% per \cs{addcontentsline} erzeugt, sondern indirekt über diese Anweisung. Das +% erste Argument ist dabei die (formatierte) Nummer bzw. bei nicht +% nummerierten Teilen leer. Das zweite Argument ist der Überschriftstext für +% das Verzeichnis. Durch diesen indirekten Weg, kann die Anweisung einfach +% umdefiniert werden. Verwendet wird hier die Standardanweisung für +% Inhaltsverzeichniseinträge, die in \texttt{scrkliof.dtx} definiert ist: +% \begin{macrocode} +\newcommand*{\addparttocentry}[2]{% + \addtocentrydefault{part}{#1}{#2}% +} +% \end{macrocode} +% \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}} +% \changes{v2.95a}{2006/07/10}{support of preamble added} +% \changes{v3.11b}{2012/07/29}{missing negativ \cs{vskip} added} +% \begin{macro}{\@addpart} +% \changes{v2.8c}{2001/06/29}{neu (intern)} +% \changes{v2.8l}{2001/08/17}{erst eintragen, dann ausgeben} +% \changes{v2.95}{2004/07/20}{kann Kolumnentitel erzeugen} +% \changes{v3.00}{2008/07/01}{Notlösung für \textsf{hyperref} eingefügt} +% \changes{v3.08}{2010/11/02}{Verwendung von \cs{addparttocentry}} +% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale +% Argument der Gliederungsbefehle} +% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird +% \cs{@mkboth}{}{} aufgerufen.} +% \begin{macro}{\@saddpart} +% \changes{v2.8c}{2001/06/29}{neu (intern)} +% \begin{macrocode} +\newcommand\addpart{% +%<*article> + \par + \partheadstartvskip + \@afterindentfalse +%
+%<*report|book> + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{\partpagestyle}% + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \partheadstartvskip + \vbox to\z@{\vss\use@preamble{part@o}\strut\par}% + \vskip-\baselineskip\nobreak% +% + \secdef\@addpart\@saddpart +} +\newcommand*{\@addpart}{} +\def\@addpart[#1]#2{% + \ifnum \scr@osectarg=\z@ + \@scr@tempswafalse + \else + \scr@istest#1=\@nil + \fi + \if@scr@tempswa + \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% + \else + \ifcase \scr@osectarg\relax + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \fi + \fi +% \end{macrocode} +% Notlösung, damit \textsf{hyperref} halbwegs damit klar kommt. Das ist aber +% weit davon entfernt eine echte Lösung zu bringen. +% \changes{v3.10b}{2012/04/24}{missing \cs{fi} added} +% \begin{macrocode} + \csname phantomsection\endcsname + \ifx\scr@ds@tocentry\@empty\else + \expandafter\addparttocentry\expandafter{\expandafter}\expandafter{% + \scr@ds@tocentry}% + \fi + \@spart{#2}% + \ifx\partmark\@gobble + \@mkboth{}{}% + \else + \expandafter\@mkboth\expandafter{% + \expandafter\MakeMarkcase\expandafter{\scr@ds@head}}{}% + \fi +} +\newcommand*{\@saddpart}{\@spart} +% \end{macrocode} +% \begin{macro}{\partmark} +% \changes{v2.9r}{2004/07/20}{neu (für \textsf{scrpage2})} +% \begin{macrocode} +\newcommand*{\partmark}{} +\let\partmark\@gobble +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \iffalse +%<*report|book> +% \fi +% \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}%^^A +% \changes{v2.8g}{2001/07/18}{per \cs{float@addtolists} wird nun +% auch ein vertikaler Abstand in Listen des \texttt{float}-Pakets +% eingebaut}%^^A +% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere +% float-Verzeichnisse mit hyperref}%^^A +% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}}%^^A +% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale +% Argument der Gliederungsbefehle}%^^A +% \begin{macro}{\@makechapterhead} +% \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit +% einer Präambel versehen werden} +% \changes{v2.8p}{2001/09/25}{es gibt verschiedene Arten von +% Präambeln} +% \begin{macro}{\@@makechapterhead} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% \changes{v2.8q}{2002/04/18}{\cs{raggedsection} wird bei Option +% \texttt{chapterprefix} auch auf den Präfix angewendet} +% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt} +% Der Gliederungsfehl \cs{chapter}, der nur in den Klassen +% \textsf{scrbook} und \textsf{scrreprt} vorhanden ist, wird wie in +% den Standardklassen mit Hilfe mehrere Hilfsmakros definiert. +% \begin{macro}{\if@at@twocolumn} +% \changes{v2.7b}{2001/01/05}{neu (intern)} +% \begin{macro}{\scr@topnewpage} +% \changes{v2.7b}{2001/01/05}{neu (intern)} +% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt} +% \begin{macro}{\@topnewpage} +% \changes{v2.7b}{2001/01/05}{neu (\LaTeX{} intern)} +% \changes{v2.7g}{2001/04/17}{vergessenes \cs{long} ergänzt} +% \changes{v3.01}{2008/11/13}{Verwendung von +% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})} +% Interessant ist dabei die Erweiterung, daß jedes Kapitel mit einer +% Präambel versehen werden kann. Diese wird im zweispaltigen Satz wie +% die Überschrift selbst einspaltig gesetzt. Intern wird dies für +% die Preambel des Index und der Bibliography verwendet. Dabei +% entsteht aber wiederum das Problem, dass der Indexkopf innerhalb von +% \cs{twocolumn} ausgegeben wird andererseits aber innerhalb von +% \cs{chapter} das Makro \cs{@topnewpage} verwendet wird. Damit würde +% dann also \cs{@topnewpage} innerhalb von \cs{@topnewpage} +% aufgerufen. Das ist jedoch nicht erlaubt. Als muss der Aufruf von +% \cs{@topnewpage} in \cs{@chapter} und \cs{@schapter} verhindert +% werden, wenn wir uns bereits in \cs{@topnewpage} befinden. Eine +% Möglichkeit dafür wäre, einen Schalter in den Index-Kopf +% einzubauen. Ich wähle hingegen die Methode, \cs{@topnewpage} +% entsprechend umzudefinieren. Damit kann dann auch der Anwender +% \cs{@chapter} innerhalb des optionalen Arguments von \cs{twocolumn} +% verwenden. Ein Schalter wird allerdings trotzdem gebraucht. +% \begin{macrocode} +\newif\if@at@twocolumn +\newcommand*\scr@topnewpage{} +\let\scr@topnewpage\@topnewpage +\long\def\@topnewpage[#1]{% + \@at@twocolumntrue\scr@topnewpage[{#1}]\@at@twocolumnfalse +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\use@chapter@o@preamble} +% Das Makro wird benötigt, weil das Setzen der oberen Präambel etwas +% mehr Aufwand bedeutet. Die Anweisung spart Platz, da sie zweimal +% verwendet wird. +% \begin{macrocode} +\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{\KOMAClassName}{% + 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% + } +} +% \end{macrocode} +% \end{macro} +% Zurück zur Kapiteldefinition: +% \begin{macrocode} +\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{\chapterpagestyle}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter +} +% \end{macrocode} +% \changes{v3.06}{2010/06/02}{einschalten des \texttt{tocbasic}-Features +% \texttt{chapteratlist} in die Datei \texttt{scrkliof.dtx} verschoben} +% Die Variante ohne Stern: +% \begin{macrocode} +\newcommand*{\@chapter}{} +\def\@chapter[#1]#2{% + \ifnum \scr@osectarg=\z@ + \@scr@tempswafalse + \else + \scr@istest#1=\@nil + \fi + \if@scr@tempswa + \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% + \else + \ifcase \scr@osectarg\relax + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \fi + \fi + \ifnumbered{chapter}{% +% \if@mainmatter + \refstepcounter{chapter}% + \@maybeautodot\thechapter + \typeout{\@chapapp\space\thechapter.}% + \ifx\scr@ds@tocentry\@empty\else + \addchaptertocentry{\thechapter}{\scr@ds@tocentry}% + \fi +%<*book> + \else + \ifx\scr@ds@tocentry\@empty\else + \addchaptertocentry{}{\scr@ds@tocentry}% + \fi + \fi +% + }{% + \ifx\scr@ds@tocentry\@empty\else + \addchaptertocentry{}{\scr@ds@tocentry}% + \fi + }% + \expandafter\chaptermark\expandafter{\scr@ds@head}% + \ifdim \@chapterlistsgap>\z@ + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}% + }{}% + }% + \@ifundefined{float@addtolists}{}{% + \scr@float@addtolists@warning + \float@addtolists{\protect\addvspace{\@chapterlistsgap}}% + }% + \fi + \if@twocolumn + \if@at@twocolumn + \@makechapterhead{#2}% + \else + \@topnewpage[\@makechapterhead{#2}]% + \fi + \else + \@makechapterhead{#2}% + \@afterheading + \fi +} +\newcommand*{\@makechapterhead}[1]{% + \use@chapter@o@preamble + \@@makechapterhead{#1}% + \use@preamble{chapter@u}\nobreak +} +% \end{macrocode} +% \changes{v2.96a}{2006/12/02}{Abstand nach der Präfixzeile nur, wenn eines +% Präfixzeile ausgegeben wurde} +% \changes{v2.97b}{2007/03/09}{\cs{endgraf} korrigiert} +% \begin{macrocode} +\newcommand*{\@@makechapterhead}[1]{\chapterheadstartvskip + {% + \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}% + \normalfont\sectfont\nobreak\size@chapter{}% + \if@chapterprefix + \let\@tempa\raggedsection + \else + \let\@tempa\@hangfrom + \fi + \@tempa{% + \ifnumbered{chapter}{% +% \if@mainmatter + \if@chapterprefix + \expandafter\size@chapterprefix + \else + \expandafter\size@chapter + \fi + {\chapterformat}% + \if@chapterprefix + \size@chapterprefix{}\endgraf\nobreak\vskip.5\baselineskip + \fi +% \fi + }{}% + }% + {\raggedsection \interlinepenalty \@M \size@chapter{#1}\par}}% + \nobreak\chapterheadendvskip +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\addchaptertocentry} +% \changes{v3.08}{2010/11/01}{Neu}%^^A +% \changes{v3.12}{2013/09/24}{Behandlung von \cs{if@chaptertolists} hier}%^^A +% \changes{v3.12}{2013/09/24}{Verwendung von \cs{addxcontentsline}}%^^A +% Seit Version~3.08 wird der Eintrag nicht direkt innerhalb von \cs{chapter} +% per \cs{addcontentsline} erzeugt, sondern indirekt über diese Anweisung. Das +% erste Argument ist dabei die (formatierte) Nummer bzw. bei nicht +% nummerierten Kapiteln leer. Das zweite Argument ist der Überschriftstext für +% das Verzeichnis. Durch diesen indirekten Weg, kann die Anweisung einfach +% umdefiniert werden. Verwendet wird hier die Standardanweisung für +% Inhaltsverzeichniseinträge, die in \texttt{scrkliof.dtx} definiert ist: +% \begin{macrocode} +\newcommand*{\addchaptertocentry}[2]{% + \addtocentrydefault{chapter}{#1}{#2}% + \if@chaptertolists + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addxcontentsline{\@currext}{chapteratlist}[{#1}]{#2}% + }{}% + }% + \@ifundefined{float@addtolists}{}{\scr@float@addtolists@warning}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@schapter} +% \begin{macro}{\@makeschapterhead} +% \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit +% einer Präambel versehen werden} +% \begin{macro}{\@@makeschapterhead} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt} +% \changes{v2.9q}{2004/03/24}{Klammerung an \cs{@@makechapterhead} +% angepasst} +% Die Sternvariante, die um Einiges einfacher ausfällt. +% \begin{macrocode} +\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\nobreak\size@chapter{}% + \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}% + \raggedsection \interlinepenalty \@M \size@chapter{#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} +% +% +% \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{@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 \textsf{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.8d}{2001/07/05}{\cs{chapterpagestyle} statt +% \texttt{plain}} +% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere +% float-Verzeichnisse mit hyperref} +% \changes{v3.01}{2008/11/13}{Verwendung von +% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})} +% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}} +% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale +% Argument der Gliederungsbefehle} +% \KOMAScript{} bietet in \textsf{scrbook} und \textsf{scrreprt} den +% zusätzlichen Gliederungsbefehl \cs{addchap}. Es handelt sich dabei +% um einen mit \cs{chapter*} vergleichbaren Befehl, bei dem jedoch der +% Kolumnentitel korrigiert wird und ein Eintrag ins Inhaltsverzeichnis +% erfolgt (nicht in der Stern-Variante). +% +% 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}\vspace{-\baselineskip} +% Dies führte jedoch zu Problemen im Zusammenhang mit +% \textsf{hyperref}, da hierbei keine korrekten Links erzeugt +% werden. Mit dem \texttt{hypertex}-Treiber von \textsf{hyperref} +% bis Version 6.71a werden auch in der neuen Implementierung keine +% korrekten Links erzeugt. Dies ist jedoch ein Bug in jenem +% Treiber. Mit neuen Versionen tritt das Problem nicht mehr auf. +% 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, dass ein korrekter Link erzeugt wird. +% \begin{macro}{\@addchap} +% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addchapmark}} +% \begin{macro}{\@saddchap} +% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addchapmark}} +% \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{% + \ifnum \scr@osectarg=\z@ + \@scr@tempswafalse + \else + \scr@istest#1=\@nil + \fi + \if@scr@tempswa + \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% + \else + \ifcase \scr@osectarg\relax + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \fi + \fi + \@schapter{#2}% + \ifx\scr@ds@tocentry\@empty\else + \addchaptertocentry{}{\scr@ds@tocentry}% + \fi + \ifnum \@nameuse{scr@v@2.96}<\scr@compatibility\relax + \ifdim \@chapterlistsgap>\z@ + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}% + }{}% + }% + \@ifundefined{float@addtolists}{}{% + \scr@float@addtolists@warning + \float@addtolists{\protect\addvspace{\@chapterlistsgap}}% + }% + \fi + \fi + \addchapmark{\scr@ds@head}% +}% +\newcommand*{\@saddchap}[1]{\@schapter{#1}\addchapmark{}}% +% \end{macrocode} +% \iffalse +%<*book> +% \fi +% In \texttt{hyperref} bis Version 6.71a ist ein dicker Bug. In +% verschiedenen \texttt{def}-Dateien wird dort das \emph{interne} +% \KOMAScript-Makro \cs{@addchap} umdefiniert, ohne sicherzustellen, +% dass das Makro auch noch so aussieht, wie man das erwartet hat. Die +% sauberste Lösung wäre sicher gewesen dort \cs{@addchap} nur zu +% ergänzen, so wie man das auch bei \cs{@schapter} gemacht hatte. Ab +% Version 6.71b ist dieser Bug behoben. Damit ich nicht eines Fehlers +% verdächtigt werde, wird ggf. eine entsprechende Meldung ausgegeben. +% \changes{v2.7e}{2001/04/16}{fehlende, schließende Klammer +% ergänzt} +% \changes{v2.7f}{2001/04/17}{fehlendes Klammerpaar ergänzt} +% \changes{v2.8q}{2001/11/17}{\cs{AfterPackage} zur Überprüfung der +% \textsf{hyperref}-Version verwendet} +% \begin{macrocode} +\AfterPackage{hyperref}{% + \@ifpackagelater{hyperref}{2001/02/19}{}{% + \ClassWarningNoLine{\KOMAClassName}{% + 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} +% \iffalse +% +% \fi +% \end{macro} +% \end{macro} +% \end{macro} +% \iffalse +% +% \fi +% +% \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 \textsf{scrbook} und +% \textsf{scrreprt}} +% \changes{v2.4g}{1996/11/04}{\cs{section*} vorgezogen, damit +% dadurch provozierte Seitenumbrüche im Inhaltsverzeichnis +% berücksichtigt werden} +% \changes{v2.5d}{1998/01/03}{\cs{@mkboth} bedingt durch +% \cs{markright} ersetzt} +% \changes{v2.7a}{2001/01/04}{\cs{addsec} für eine bessere +% Unterstützung von \textsf{hyperref} geändert} +% \begin{macro}{\@addsec} +% \changes{v3.10}{2011/08/30}{Verwendung von \cs{addsectiontocentry}} +% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale +% Argument der Gliederungsbefehle} +% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}} +% \begin{macro}{\@saddsec} +% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}} +% \KOMAScript{} bietet in allen drei Hauptklassen den zusätzlichen +% Gliederungsbefehl \cs{addsec}. Es handelt sich dabei um einen mit +% \cs{section*} vergleichbaren Befehl, bei dem jedoch der +% Kolumnentitel korrigiert wird 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}% + \ifnum \scr@osectarg=\z@ + \@scr@tempswafalse + \else + \scr@istest#1=\@nil + \fi + \if@scr@tempswa + \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% + \else + \ifcase \scr@osectarg\relax + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \fi + \fi + \ifx\scr@ds@tocentry\@empty\else + \addsectiontocentry{}{\scr@ds@tocentry}% + \fi + \addsecmark{\scr@ds@head}% +} +\newcommand*{\@saddsec}[1]{\section*{#1}\addsecmark{}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\addsectiontocentry} +% \changes{v3.10}{2011/08/30}{Neu} +% Entsprechend \cs{addparttocentry} und \cs{addchaptertocentry}. +% \begin{macrocode} +\newcommand*{\addsectiontocentry}[2]{% + \addtocentrydefault{section}{#1}{#2}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addsubsectiontocentry} +% \changes{v3.10}{2011/08/30}{Neu} +% Entsprechend \cs{addparttocentry} usw. +% \begin{macrocode} +\newcommand*{\addsubsectiontocentry}[2]{% + \addtocentrydefault{subsection}{#1}{#2}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addparagraphtocentry} +% \changes{v3.10}{2011/08/30}{Neu} +% Entsprechend \cs{addparttocentry} usw. +% \begin{macrocode} +\newcommand*{\addparagraphtocentry}[2]{% + \addtocentrydefault{paragraph}{#1}{#2}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addsubparagraphtocentry} +% \changes{v3.10}{2011/08/30}{Neu} +% Entsprechend \cs{addparttocentry} usw. +% \begin{macrocode} +\newcommand*{\addsubparagraphtocentry}[2]{% + \addtocentrydefault{subparagraph}{#1}{#2}% +} +% \end{macrocode} +% \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.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig +% von Option \texttt{version})} +% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \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.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig +% von Option \texttt{version})} +% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \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.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig +% von Option \texttt{version})} +% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \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.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \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.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% Die Standardgliederungsbefehle \cs{section} bis \cs{subparagraph} +% sind mit der im Kernel dafür vorgesehenen Schnittstelle +% definiert. Im Unterschied zu den Standardklassen erfolgt die +% Formatierung jedoch in \cs{raggedsection} und die Ausgabe in der +% Schriftart \cs{sectfont}. Außerdem sind die Größen veränderbar. In +% letzter Konsequenz sollten hier eigentlich auch die Abstände +% variabilisiert werden. Vielleicht in einer späteren Version. +% \begin{macrocode} +\newcommand\section{% + \@startsection{section}{\sectionnumdepth}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi + \raggedsection\normalfont\sectfont\nobreak\size@section}% +} +\newcommand\subsection{% + \@startsection{subsection}{\subsectionnumdepth}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi + \raggedsection\normalfont\sectfont\nobreak\size@subsection + }% +} +\newcommand\subsubsection{% + \@startsection{subsubsection}{\subsubsectionnumdepth}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi + \raggedsection\normalfont\sectfont\nobreak\size@subsubsection + }% +} +\newcommand\paragraph{% + \@startsection{paragraph}{\paragraphnumdepth}{\z@}% + {3.25ex \@plus1ex \@minus.2ex}% + {-1em}% + {\raggedsection\normalfont\sectfont\nobreak\size@paragraph}% +} +\newcommand\subparagraph{% + \@startsection{subparagraph}{\subparagraphnumdepth}{\parindent}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\raggedsection\normalfont\sectfont\nobreak\size@subparagraph}% +} +% \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} +% \changes{v2.9o}{2003/01/31}{\cs{nobreak} nach dem Gruppenende +% behebt einen Bug im color Paket} +% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig +% von Option \texttt{version})} +% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \begin{KOMAfont}{minisec} +% \changes{v2.96a}{2006/12/03}{\texttt{minisec} ist ein eigenes +% Fontelement} +% In \KOMAScript{} gibt es diese zusätzliche Gliederungsebene, die +% immer ohne Nummer und ohne Eintrag ins Inhaltsverzeichnis erfolgt. +% \begin{macrocode} +\newkomafont{minisec}{} +\newcommand\minisec[1]{\@afterindentfalse \vskip 1.5ex + {\parindent \z@ + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi + \raggedsection\normalfont\sectfont\nobreak + \usekomafont{minisec}#1\par\nobreak}\nobreak% + \@afterheading +} +% \end{macrocode} +% \end{KOMAfont} +% \end{macro} +% +% +% \subsection{Schrift und Formatierung} +% +% \begin{macro}{\raggedsection} +% \changes{v2.3h}{1996/01/20}{Überschriften werden +% \cs{raggedsection} gesetzt} +% \changes{v2.3h}{1996/01/20}{\cs{raggedsection} ist als +% \cs{raggedright} voreingestellt} +% Dieses Makro gibt an, wie die Überschriften formatiert +% werden. Voreingestellt ist linksbündig. +% \begin{macrocode} +\newcommand*{\raggedsection}{} +\let\raggedsection\raggedright +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\raggedpart} +% \changes{v2.95a}{2006/07/10}{neue Konfigurationsmöglichkeit} +% Die Ausrichtung der Überschrift von \cs{part} kann davon abweichend über +% \cs{raggedpart} konfiguriert werden. Die Voreinstellung ist von der +% Klasse abhängig. +% \begin{macrocode} +\newcommand*{\raggedpart}{} +%
\let\raggedpart\raggedsection +%\let\raggedpart\centering +% \end{macrocode} +% \end{macro} +% +% \begin{KOMAfont}{partentry} +% \changes{v2.97c}{2007/06/21}{neues Font-Element} +% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch +% \texttt{disposition} ersetzt} +% Schrift für den \cs{part}-Eintrag im Inhaltsverzeichnis. +% \begin{macrocode} +\newkomafont{partentry}{\usekomafont{disposition}\large} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{partentrypagenumber} +% \changes{v2.97c}{2007/06/21}{neues Font-Element} +% Schrift für die Seitenzahl des \cs{part}-Eintrags im Inhaltsverzeichnis +% abweichend von \texttt{partentry}. +% \begin{macrocode} +\newkomafont{partentrypagenumber}{} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{chapterentry} +% \changes{v2.97c}{2007/06/21}{neues Font-Element} +% Schrift für den \cs{chapter}-Eintrag im Inhaltsverzeichnis. +% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch +% \texttt{disposition} ersetzt} +% \begin{macrocode} +%<*book|report> +\newkomafont{chapterentry}{\usekomafont{disposition}} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{chapterentrypagenumber} +% \changes{v2.97c}{2007/06/21}{neues Font-Element} +% Schrift für die Seitenzahl des \cs{chapter}-Eintrags im Inhaltsverzeichnis +% abweichend von \texttt{chapterentry}. +% \begin{macrocode} +\newkomafont{chapterentrypagenumber}{} +% +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{sectionentry} +% \changes{v2.97c}{2007/06/21}{neues Font-Element} +% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch +% \texttt{disposition} ersetzt} +% Schrift für den \cs{section}-Eintrag im Inhaltsverzeichnis. +% \begin{macrocode} +%<*article> +\newkomafont{sectionentry}{\usekomafont{disposition}} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{sectionentrypagenumber} +% \changes{v2.97c}{2007/06/21}{neues Font-Element} +% Schrift für die Seitenzahl des \cs{section}-Eintrags im Inhaltsverzeichnis +% abweichend von \texttt{sectionentry}. +% \begin{macrocode} +\newkomafont{sectionentrypagenumber}{} +%
+% \end{macrocode} +% \end{KOMAfont} +% +% \begin{macro}{\scr@fnt@disposition} +% \changes{v2.95b}{2006/07/30}{neues Element \texttt{disposition}} +% \begin{macro}{\scr@fnt@sectioning} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{sectioning}} +% \changes{v2.95b}{2006/07/30}{\texttt{sectioning} ist nun ein Alias für +% \texttt{disposition}} +% \begin{macro}{\scr@fnt@part} +% \changes{v2.8p}{2001/09/23}{neues Element \texttt{part}} +% \begin{macro}{\scr@fnt@partnumber} +% \changes{v2.8p}{2001/09/23}{neues Element \texttt{partnumber}} +% \begin{macro}{\scr@fnt@chapter} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{chapter}} +% \begin{macro}{\scr@fnt@chapterprefix} +% \changes{v2.96a}{2006/12/02}{neues Element \texttt{chapterprefix}} +% \begin{macro}{\scr@fnt@section} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{section}} +% \begin{macro}{\scr@fnt@subsection} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsection}} +% \begin{macro}{\scr@fnt@subsubsection} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsubsection}} +% \begin{macro}{\scr@fnt@paragraph} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{paragraph}} +% \begin{macro}{\scr@fnt@subparagraph} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subparagraph}} +% \begin{KOMAfont}{minisec} +% \changes{v2.8o}{2001/09/14}{neuer Ersatz für das Element +% \texttt{minisec}} +% \changes{v2.96a}{2007/01/08}{Alias für das Element \texttt{minisec} +% entfernt, da es nun ein eigenes Element ist} +% Definition der Elemente der Gliederung, deren Schrift geändert +% werden kann: +% \begin{macrocode} +% +\newcommand*{\scr@fnt@disposition}{\sectfont} +\aliaskomafont{sectioning}{disposition} +%<*class> +\newcommand*{\scr@fnt@part}{\size@part} +\newcommand*{\scr@fnt@partnumber}{\size@partnumber} +%\newcommand*{\scr@fnt@chapter}{\size@chapter} +%\newcommand*{\scr@fnt@chapterprefix}{\size@chapterprefix} +\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} +% \end{macrocode} +% \end{KOMAfont} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Definitionen für Präambeln} +% +% \iffalse +%<*report|book> +% \fi +% Bei den \KOMAScript-Klassen \textsf{scrbook} und \textsf{scrreprt} +% können \cs{part} und \cs{chapter} mit Präambeln versehen werden. Es +% wird gleichzeitig eine Präambel über und unter der jeweiligen +% Überschrift unterstützt. +% +% \begin{macro}{\use@preamble} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% Dieses Makro dient allgemein zum Setzen einer Präambel (für +% Gliederungsüberschriften), wenn eine solche definiert ist. Als +% Argument wird der Name der Präambel übergeben, an den automatisch +% \texttt{@preamble} angehängt wird. Zum Schluss wird die gespeicherte +% Präambel gelöscht. +% \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 (intern)} +% Das Makro \cs{set@preamble} dient allgemein der Defintion einer +% Präambel (für Gliederungsüberschriften). Als Argument wird der +% Name der Gliederungsebene übergeben. Danach folgt ein optionales +% Argument, das die Position der Präambel angibt. Darauf folgt ein +% weiteres optionales Argument, das die Breite der Präambel +% angibt. Ist nur ein optionales Argument angegeben, so ist es die +% Position. Es folgt ein obligatorisches Argument mit dem Inhalt der +% Präambel. Die Definition der Präambel erfolgt global. +% \begin{macro}{\set@@preamble} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% \begin{macro}{\set@@@preamble} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% \begin{macro}{\set@@@@preamble} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt} +% \changes{v3.12}{2012/10/16}{b mit derselben Funktion wie u erlaubt} +% Da mehrere optionale Argumente nach einem obligatorischen Argument +% auszuwerten sind, werden diverse Hilfsmakros benötigt. +% \begin{macrocode} +\newcommand*{\set@preamble}[1]{% +% \end{macrocode} +% Zunächst 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 +% \cs{long} definiert werden, da die Präambel auch aus mehreren +% Absätzen bestehen kann. +% +% Zunächst wird das Positionsargument ausgewertet. Dies geschieht mit +% lokalen Hilfsmakros und einer Schleife. Zur Funktion der Schleife +% siehe im dokumentierten \LaTeX-Kern. +% \begin{macrocode} + \begingroup + \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 b% + \set@preamble@vpox{0}{#2}% + \fi + \if \@tempa o% + \set@preamble@vpos{1}{#2}% + \fi% + \if \@tempa t% + \set@preamble@vpos{1}{#2}% + \fi + }% +% \end{macrocode} +% Wurde keine horizontale oder vertikale Ausrichtung definiert, so +% wird nun der Standardwert dafür 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ängig davon +% entsprechende Päambelmakros definiert. +% \begin{macrocode} + \ifcase\prmbl@hpos +% \end{macrocode} +% Zunächst 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 + \endgroup +} +% \end{macrocode} +% Es folgt das Makro, mit dem die Definition tatsächlich +% stattfindet. Das erste Argument ist der Name der Präambel, das +% zweite die Positionsoption für 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ßlich 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 (intern)} +% Eines der Hilfsmakros dient dazu, die horizontale Position der +% Präambel einzustellen, falls dies nicht bereits erfolgt ist. Ist es +% bereits nicht über"-einstimmend erfolgt, 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{\KOMAClassName}{% + inconsistent hpos options% + }{% + You've said `#2' as position option. But you have + to\MessageBreak + use only one of `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 (intern)} +% Das Hilfsmakro für 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{\KOMAClassName}{% + inconsistent vpos options% + }{% + You've said `#2' as position option. But you have + to\MessageBreak + use only one of `t', `o', `b', or `u' not two of + these.\MessageBreak + If you'll continue only first vpos option will be + used% + }% + \fi + }% +} +% \end{macrocode} +% \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 (intern)} +% \changes{v2.8p}{2001/09/25}{Ersatz für \cs{chapter@preamble}} +% \begin{macro}{\chapter@o@preamble} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% Diese Makros werden benötigt, um die Kapitel-Präambel zu setzen +% bzw. zu speichern. +% \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}{neu (intern)} +% \changes{v2.8p}{2001/09/27}{Ersatz für \cs{part@preamble}} +% \begin{macro}{\part@preamble@o} +% \changes{v2.8p}{2001/09/27}{neu (intern)} +% Analog zu den Kapitel gibt es Befehle für eine Teil-Präambel. +% \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} +% \iffalse +% +% \fi +% +% +% \subsection{Einträge ins Inhaltsverzeichnis} +% +% Die Gliederungsbefehle schreiben auch Einträge ins +% Inhaltsverzeichnis, die dort ebenfalls formatiert werden müssen. +% +% \begin{macro}{\l@part} +% \changes{v2.97c}{2007/06/21}{\cs{sectfont}\cs{large} durch Verwendung von +% Element \texttt{partentry} ersetzt} +% \changes{v2.97c}{2007/06/21}{Element \texttt{partentrypagenumber} wird +% verwendet} +% \changes{v3.05}{2009/11/11}{Da auch \textsf{article} die Ebene -2 +% verwendet, wird das nun für scrartcl übernommen.} +% Der Eintrag für \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änderte 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}{beinhaltet \cs{sectfont} eine +% Größenangabe, so wird diese überschrieben} +% \begin{macrocode} + \leavevmode + \advance\leftskip\@tempdima + \hskip -\leftskip + \usekomafont{partentry}{#1\nobreak + \usekomafont{partentrypagenumber}{\hfil\nobreak + \hb@xt@\@pnumwidth{\hss#2}}}\par +% \end{macrocode} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{part}-Eintrag im +% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% Aus unerfindlichen Gründen war es bis Version~2.96 erlaubt, dass zwischen +% der \cs{part}-Überschrift und der nachfolgenden Überschrift ein Umbruch +% stattfinden kann. Ab Version~2.96a gilt das nur noch, wenn die nachfolgende +% Überschrift wiederum eine \cs{part}-Überschrift ist. +% \begin{macrocode} + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \endgroup + \penalty20010 + \else +%<*article> + \if@compatibility + \global\@nobreaktrue +% \end{macrocode} +% \changes{v2.3g}{1996/01/14}{fehlendes Kommentarzeichen ergänzt} +% \begin{macrocode} + \everypar{\global\@nobreakfalse\everypar{}}% + \else +%
+ \penalty\@highpenalty +%
\fi + \endgroup + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\l@chapter} +% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im +% Inhaltsverzeichnis und übergeordneten Einträgen verhindern} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im +% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von +% Element \texttt{chapterentry} ersetzt} +% \changes{v2.97c}{2007/06/21}{Element \texttt{chapterentrypagenumber} wird +% verwendet} +% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige +% Einträge zu ermöglichen} +% \iffalse +%<*report|book> +% \fi +% Kapiteleinträge gibt es natürlich nicht bei \textsf{scrartcl}. +% \begin{macrocode} +\newcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \ifnum \lastpenalty<20010 + \addpenalty{-\@highpenalty}% + \fi + \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 + \raggedchapterentry + \parindent \z@ \advance\rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \interlinepenalty\@M + \leavevmode + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + \usekomafont{chapterentry}{#1\nobreak + \usekomafont{chapterentrypagenumber}{% +% \end{macrocode} +% Und dann könnte man noch folgendes machen: +% \begin{verbatim} +% \if@chapterentrywithdots +% \leaders\hbox{$\m@th +% \mkern \@dotsep mu\hbox{.}\mkern \@dotsep +% mu$}% +% \fi +% \end{verbatim} +% \begin{macrocode} + \hfill\nobreak + \hb@xt@\@pnumwidth{\hss#2}}}\par + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \endgroup + \penalty20009 + \else + \penalty\@highpenalty + \endgroup + \fi + \fi +} +% \end{macrocode} +% \begin{macro}{\raggedchapterentry} +% \changes{v2.97c}{2007/06/21}{neue Anweisung} +% Ausrichtung des Textes der Kapiteleinträge im Inhaltsverzeichnis. +% \begin{macrocode} +\newcommand*{\raggedchapterentry}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@chapteratlist} +% \changes{v2.96a}{2006/12/03}{neues Macro} +% Dieses Makro wird ggf. für die Kapiteleinträge in den Listen der +% Gleitumgebungen verwendet. Zunächst einmal wird hier dasselbe verwendet, wie +% für die Kapiteleinträge ins Inhaltsverzeichnis. +% \begin{macrocode} +\newcommand*{\l@chapteratlist}{\l@chapter} +% \end{macrocode} +% +% \end{macro} +% \iffalse +% +% \fi +% \end{macro} +% \begin{macro}{\l@section} +% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im +% Inhaltsverzeichnis und übergeordneten Einträgen verhindern} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im +% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von +% Element \texttt{sectionentry} ersetzt} +% \changes{v2.97c}{2007/06/21}{Element \texttt{sectionentrypagenumber} wird +% verwendet} +% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige +% Einträge zu ermöglichen} +% Bei der Artikel-Klasse folgt die Formatierung für +% \cs{section}-Einträge, an Stelle der Einträge für \cs{chapter} +% der Buch- oder der Bericht-Klasse. Bei diesen handelt es sich hier +% stattdessen um eine normale Ebene. +% \begin{macrocode} +%<*article> +\newcommand*\l@section[2]{% + \ifnum \c@tocdepth >\z@ + \ifnum \lastpenalty<20009 + \addpenalty{\@secpenalty}% + \fi + \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 + \raggedsectionentry + \parindent \z@ \advance\rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \interlinepenalty\@M + \leavevmode + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + \usekomafont{sectionentry}{#1\nobreak + \usekomafont{sectionentrypagenumber}{% +% \end{macrocode} +% Und dann könnte man noch folgendes machen: +% \begin{verbatim} +% \if@sectionentrywithdots +% \leaders\hbox{$\m@th +% \mkern \@dotsep mu\hbox{.}\mkern \@dotsep +% mu$}% +% \fi +% \end{verbatim} +% \begin{macrocode} + \hfill\nobreak + \hb@xt@\@pnumwidth{\hss#2}}}\par + \endgroup + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \penalty20008 + \fi + \fi +} +% \end{macrocode} +% \begin{macro}{\raggedsectionentry} +% \changes{v2.97c}{2007/06/21}{neue Anweisung} +% Ausrichtung des Textes der Abschnittseinträge im Inhaltsverzeichnis. +% \begin{macrocode} +\newcommand*{\raggedsectionentry}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%
+%<*report|book> +\newcommand*\l@section{\bprot@dottedtocline{1}{1.5em}{2.3em}} +% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\l@subsection} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsection}-Eintrag im +% Inhaltsverzeichnis und übergeordneten Einträgen verhindern} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsection}-Eintrag im +% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% \begin{macro}{\l@subsubsection} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsubsection}-Eintrag +% im Inhaltsverzeichnis und übergeordneten Einträgen verhindern} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsubsection}-Eintrag +% im Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% \begin{macro}{\l@paragraph} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{paragraph}-Eintrag im +% Inhaltsverzeichnis und übergeordneten Einträgen verhindern} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{paragraph}-Eintrag im +% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% \begin{macro}{\l@subparagraph} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subparagraph}-Eintrag +% im Inhaltsverzeichnis und übergeordneten Einträgen verhindern} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subparagraph}-Eintrag +% im Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% Die übrigen Ebenen werden normal behandelt. +% \begin{macrocode} +%<*article> +\newcommand*\l@subsection{\bprot@dottedtocline{2}{1.5em}{2.3em}} +\newcommand*\l@subsubsection{\bprot@dottedtocline{3}{3.8em}{3.2em}} +\newcommand*\l@paragraph{\bprot@dottedtocline{4}{7.0em}{4.1em}} +\newcommand*\l@subparagraph{\bprot@dottedtocline{5}{10em}{5em}} +%
+%<*report|book> +\newcommand*\l@subsection{\bprot@dottedtocline{2}{3.8em}{3.2em}} +\newcommand*\l@subsubsection{\bprot@dottedtocline{3}{7.0em}{4.1em}} +\newcommand*\l@paragraph{\bprot@dottedtocline{4}{10em}{5em}} +\newcommand*\l@subparagraph{\bprot@dottedtocline{5}{12em}{6em}} +%
+% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\bprot@dottedtocline} +% \changes{v2.96a}{2006/11/30}{neu (intern)} +% Dieses Makro wird benötigt, um die Ebenen unterhalb von \cs{chapter} +% bzw. \cs{section} im Inhaltsverzeichnis ebenfalls vor unerwünschten +% Umbrüchen zwischen Eintrag und Unterebene zu schützen. +% \begin{macrocode} +\newcommand*{\bprot@dottedtocline}[5]{% + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \ifnum #1>\c@tocdepth \else + \begingroup + \@tempcnta 20010 + \advance \@tempcnta by -#1 + \ifnum \@tempcnta>\lastpenalty + \endgroup + \addpenalty{\@lowpenalty}% + \else + \endgroup + \fi + \@dottedtocline{#1}{#2}{#3}{#4}{#5}% + \@tempcnta 20009 + \advance \@tempcnta by -#1 + \penalty\@tempcnta + \fi + \else + \@dottedtocline{#1}{#2}{#3}{#4}{#5}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \iffalse +% +% +% \fi +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-sections.dtx' +%%% Local Variables: +%%% mode: doctex +%%% coding: iso-latin-1 +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-title.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-title.dtx new file mode 100644 index 00000000000..3e961956ac3 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-title.dtx @@ -0,0 +1,924 @@ +% \CheckSum{774} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-title.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-title.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-title.dtx 1517 2013-11-21 13:02:39Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-title.dtx}[2013/10/31 v3.12 KOMA-Script + (title pages)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-title.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei + \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/06/26}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Die Titelei} +% +% Die Titelei ist gegenüber den Standardklassen erheblich +% erweitert. Trotzdem kann ein Titel einer Standardklasse unmittelbar +% mit einer \KOMAScript-Klasse gesetzt werden. Briefe besitzen allerdings +% keine Titelei im eigentlichen Sinne. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*!letter> +% \fi +% +% \iffalse +%<*option> +% \fi +% +% +% \subsection{Optionen der Titelei} +% +% \begin{option}{titlepage} +% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option}^^A +% \changes{v3.12}{2013/11/21}{neuer Wert \texttt{firstiscover}} +% \begin{option}{notitlepage} +% \changes{v2.95c}{2006/08/21}{Option ist obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% Es werden zei Arten von Titeln unterstützt. Da sind zum einen eigene +% Titelseiten, zum anderen sogenannte Titelköpfe, also Titel, die nicht eine +% eigene Seite erhalten, sondern am Anfang einer Seite stehen. Zwischen den +% beiden Arten wird mit einer Option umgeschaltet. Ab Version~3.12 unterstützt +% \KOMAScript{} außerdem die Einstellung \texttt{titlepage=firstiscover} bei +% der die erste Titelseite als Umschlagseite gesetzt wird. +% \begin{macro}{\if@titlepage} +% \begin{macro}{\@titlepagetrue} +% \begin{macro}{\@titlepagefalse} +% Die gewählte Einstellung wird in einem Schalter gespeichert. +% \begin{macrocode} +%<*class> +\newif\if@titlepage +%
\@titlepagefalse +%\@titlepagetrue +% +% \end{macrocode} +% Im Falle von \textsf{scrextend} ist die Option Teil der Erweiterung. +% \begin{macrocode} +%<*package&extend> +\scr@ext@activateable{title}{% + \scr@ifundefinedorrelax{if@titlepage}{% + \expandafter\newif\csname if@titlepage\endcsname + \@titlepagefalse + }{}% + \scr@ifundefinedorrelax{if@titlepageiscoverpage}{% + \expandafter\newif\csname if@titlepageiscoverpage\endcsname + \@titlepageiscoverpagefalse + }{}% +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +%<*class|package> +%\newif\if@titlepageiscoverpage +\KOMA@key{titlepage}[true]{% +% \ifstr{#1}{firstiscover}{% +% \ifstr{##1}{firstiscover}{% + \@titlepagetrue + \@titlepageiscoverpagetrue + \FamilyKeyStateProcessed + }{% + \def\FamilyElseValue{, `firstiscover'}% +% \KOMA@set@ifkey{titlepage}{@titlepage}{#1}% +% \KOMA@set@ifkey{titlepage}{@titlepage}{##1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \@titlepageiscoverpagefalse + \fi + }% +} +%<*extend> +% \end{macrocode} +% Diese Erweiterung soll dann auch tatsächlich sofort aktiviert werden: +% \begin{macrocode} + \def\scr@ext@immediate@title{% + \scr@ext@activate{title}% + \let\scr@ext@immediate@title\relax + }% +} +% +% +\KOMA@DeclareStandardOption% +% [scrextend]% + {notitlepage}{titlepage=false} +% \end{macrocode} +% \end{option} +% \end{option} +% +% \begin{option}{abstract} +% \changes{v2.95c}{2006/08/21}{neue \textsf{keyval}-Option} +% \begin{option}{abstracton} +% \changes{v2.95c}{2006/08/21}{Option ist obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{abstractoff} +% \changes{v2.95c}{2006/08/21}{Option ist obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% Obwohl die Zusammenfassung nicht unbedingt auf einer Titelseite steht, +% gehört sie doch zur Titelei und wird daher hier mit behandelt. Die +% Zusammenfassung kann mit einem standardmäßigen Titel versehen werden. Der +% Titel kann aber auch unterdrückt werden. +% +% \iffalse +%<*class> +%<*article|report> +% \fi +% Bei Büchern gibt es keine Zusammenfassung als gesonderte Umgebung. Als +% Ersatz kann bei Büchern auf \cs{addchap*} zurückgegriffen werden. +% +% \begin{macro}{\if@abstrt} +% \begin{macro}{\@abstrttrue} +% \begin{macro}{\@abstrtfalse} +% Die Enscheidung, ob der Titel der Zusammenfassung gesetzt werden soll, wird +% in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@abstrt\@abstrtfalse +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +\KOMA@ifkey{abstract}{@abstrt} +\KOMA@DeclareStandardOption{abstracton}{abstract=true} +\KOMA@DeclareStandardOption{abstractoff}{abstract=false} +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \iffalse +% +% +% \fi +% +% +% \iffalse +% +%<*body> +% \fi +% +% +% \subsection{Definitionen der Titelei} +% +% \begin{macro}{\extratitle} +% \begin{macro}{\@extratitle} +% \begin{macro}{\titlehead} +% \begin{macro}{\@titlehead} +% \begin{macro}{\subject} +% \begin{macro}{\@subject} +% \begin{macro}{\subtitle} +% \changes{v2.97c}{2007/06/20}{neue Möglichkeit} +% \begin{macro}{\@subtitle} +% \changes{v2.97c}{2007/06/20}{neu (intern)} +% \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 \KOMAScript{} Paket wesentlich mehr Angaben erlaubt +% als bei den Standardklassen, gibt es natürlich auch einige Befehle, +% mit denen diese gesetzt werden können. Alle zusätzlichen Angaben +% sind optional und können auch weggelassen werden. In diesem Fall +% werden Leerfelder verwendet. Bis auf \cs{subject} sind alle +% Zusatzbefehle \cs{long} deklariert, können also ganze Absätze +% enthalten. +% \begin{macrocode} +%\scr@ext@addto@activateable{title}{% +\newcommand*{\@extratitle}{}% +\newcommand{\extratitle}[1]{\gdef\@extratitle{% +% ##1% +% #1% +}}% +\newcommand*{\@titlehead}{}% +\newcommand{\titlehead}[1]{\gdef\@titlehead{% +% ##1% +% #1% +}}% +\newcommand*{\@subject}{}% +\newcommand*{\subject}[1]{\gdef\@subject{% +% ##1% +% #1% +}}% +\newcommand*{\subtitle}[1]{\gdef\@subtitle{% +% ##1% +% #1% +}}% +\newcommand*{\@subtitle}{}% +\newcommand*{\@publishers}{}% +\newcommand{\publishers}[1]{\gdef\@publishers{% +% ##1% +% #1% +}}% +\newcommand*{\@uppertitleback}{}% +\newcommand{\uppertitleback}[1]{\gdef\@uppertitleback{% +% ##1% +% #1% +}}% +\newcommand*{\@lowertitleback}{}% +\newcommand{\lowertitleback}[1]{\gdef\@lowertitleback{% +% ##1% +% #1% +}}% +\newcommand*{\@dedication}{}% +\newcommand{\dedication}[1]{\gdef\@dedication{% +% ##1% +% #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} +% +% \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} +% \changes{v3.11c}{2013/02/14}{Fußnoten der letzten Titelseite ausgeben} +% \changes{v3.11c}{2013/02/14}{Fußnoten für die nächste Titelseite +% initialisieren} +% \begin{macro}{\next@tdpage} +% \changes{v3.11c}{2013/02/14}{neue Anweisung (intern)} +% \changes{v3.12}{2013/11/21}{\cs{titlepage@restore} hinzugefügt} +% Innerhalb eines Titels auf die nächste Seite bzw. nächste rechte Seite +% umschalten. +% \begin{macrocode} +\newcommand*{\next@tpage}{% + \@thanks\global\let\@thanks\@empty + \clearpage + \csname titlepage@restore\endcsname + \thispagestyle{empty}% + \let\footnote\thanks + \setcounter{footnote}{0}% +} +\newcommand*{\next@tdpage}{% + \next@tpage\if@twoside \ifodd\value{page}\else\null\next@tpage\fi\fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\maketitle} +% \changes{v3.11c}{2013/02/14}{Schmutztitel bei Titelkopf in eigene +% Anweisung verlagert}% +% \changes{v3.11c}{2013/02/14}{Verwendung von \cs{next@tdpage}}% +% Mit dieser Anweisung wird der Titel generiert, dessen Inhalt zuvor +% gesetzt wurde. Es muss unterschieden werden, ob der Titel auf einer +% eigenen Titelseite oder als Seitenkopf erstellt werden soll. Der +% \KOMAScript-Titel ist u.\,U. sehr groß. Im Fall dass diverse +% Zusatzelemente verwendet werden, sollte eigentlich immer eine +% Titelseite verwendet werden.% +% \changes{v2.1a}{1994/10/29}{das Hilfskonstrukt \cs{@maketitle} +% wurde aus der Unterscheidung herausgenommen (für den Fall, dass +% \cs{maketitle} von einem Paket überladen 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öße neuerdings danach eingestellt wird}% +% \changes{v2.4l}{1997/02/06}{symbolische Fußnoten und +% Fußnotensymbolbreiten von 0\,pt zur besseren Zentrierung des +% Autors sind auch bei Titelseiten angebracht}% +% \changes{v2.8p}{2001/09/22}{\cs{titlefont} an Stelle von +% \cs{sectfont}}% +% \changes{v2.95c}{2006/08/21}{Absatzgrundeinstellungen}% +% \changes{v2.97c}{2007/08/31}{Vakatseiten in der Titelei immer im +% Seitenstil \texttt{empty}}% +% \changes{v3.04a}{2009/07/14}{die Unterscheidung, ob Titelseite oder +% Titelkopf sollte erst in \cs{maketitle} und nicht schon bei dessen +% Definition erfolgen}% +% \changes{v3.12}{2013/05/29}{Verwendung neuer Font-Elemente +% \texttt{titlehead}, \texttt{author}, \texttt{date}, \texttt{publishers}, +% \texttt{dedication}}% +% \begin{macrocode} +%\let\maketitle\relax\let\@maketitle\relax +\newcommand*\maketitle[1][1]{% +% \end{macrocode} +% Da ab Version~3.12 auch mehrere \cs{maketitle} möglich sind, muss ggf. für +% eine korrekte Definition von \cs{and} gesorgt werden: +% \begin{macrocode} + \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax + \else + \def\and{% + \end{tabular}% + \hskip 1em \@plus.17fil% + \begin{tabular}[t]{c}% + }% + \fi +% \end{macrocode} +% Es folgt die eigentliche Definition, die davon abhängt, ob wir uns im +% doppelseitigen Modus befinden oder nicht. +% \begin{macrocode} + \if@titlepage + \begin{titlepage} + \setcounter{page}{% +% ##1% +% #1% + }% +% \end{macrocode} +% \changes{v3.12}{2013/11/21}{Berücksichtigung von +% \texttt{titlepage!=firstiscover}}^^A +% Ab Version~3.12 gibt es hier eine Sonderbehandlung für die erste Titelseite, +% falls es sich dabei um eine Umschlagsseite handeln soll. In diesem Fall +% werden die Maße der Seite verändert, was später per \cs{titlepage@restore} +% ggf. wieder zurückgenommen wird. +% \begin{macrocode} + \if@titlepageiscoverpage + \edef\titlepage@restore{% + \noexpand\endgroup + \noexpand\global\noexpand\@colht\the\@colht + \noexpand\global\noexpand\@colroom\the\@colroom + \noexpand\global\vsize\the\vsize + \noexpand\global\noexpand\@titlepageiscoverpagefalse + \noexpand\let\noexpand\titlepage@restore\noexpand\relax + }% + \begingroup + \topmargin=\dimexpr \coverpagetopmargin-1in\relax + \oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax + \evensidemargin=\dimexpr \coverpageleftmargin-1in\relax + \textwidth=\dimexpr + \paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax + \textheight=\dimexpr + \paperheight-\coverpagetopmargin-\coverpagebottommargin\relax + \headheight=0pt + \headsep=0pt + \footskip=\baselineskip + \@colht=\textheight + \@colroom=\textheight + \vsize=\textheight + \columnwidth=\textwidth + \hsize=\columnwidth + \linewidth=\hsize + \else + \let\titlepage@restore\relax + \fi + \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@tdpage + \fi +% \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative +% \parskip\z@ \parindent\z@ \parfillskip\z@\@plus 1fil + \ifx\@titlehead\@empty \else + \begin{minipage}[t]{\textwidth}% + \usekomafont{titlehead}{\@titlehead\par}% + \end{minipage}\par + \fi + \null\vfill + \begin{center} + \ifx\@subject\@empty \else + {\usekomafont{subject}{\@subject\par}}% + \vskip 3em + \fi + {\usekomafont{title}{\huge \@title\par}}% + \vskip 1em + {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}% + \vskip 2em + {% + \usekomafont{author}{% + \lineskip 0.75em + \begin{tabular}[t]{c} + \@author + \end{tabular}\par + }% + }% + \vskip 1.5em + {\usekomafont{date}{\@date \par}}% + \vskip \z@ \@plus3fill + {\usekomafont{publishers}{\@publishers \par}}% + \vskip 3em + \end{center}\par + \@thanks\let\@thanks\@empty + \vfill\null + \if@twoside +% \end{macrocode} +% \changes{v3.12}{2013/11/21}{Rückseite wird nur bei Bedarf ausgegeben.}^^A +% Ab Version~3.12 wird die Rückseite der Titelseite nur noch bei Bedarf +% ausgegeben. Das gilt aber nur, wenn keine Kompatibilität mit früheren +% Versionen verlangt ist. +% \begin{macrocode} + \@tempswatrue + \expandafter\ifnum \@nameuse{scr@v@3.12}>\scr@compatibility\relax + \else + \ifx\@uppertitleback\@empty\ifx\@lowertitleback\@empty + \@tempswafalse + \fi\fi + \fi + \if@tempswa + \next@tpage + \begin{minipage}[t]{\textwidth} + \@uppertitleback + \end{minipage}\par + \vfill + \begin{minipage}[b]{\textwidth} + \@lowertitleback + \end{minipage}\par + \@thanks\let\@thanks\@empty + \fi + \fi + \ifx\@dedication\@empty + \else + \next@tdpage\null\vfill + {\centering\usekomafont{dedication}{\@dedication \par}}% + \vskip \z@ \@plus3fill + \@thanks\let\@thanks\@empty +% \end{macrocode} +% \changes{v3.12}{2013/10/31}{Nach der Widmung kein \cs{next@tdpage}, +% sondern nur \cs{cleardoubleemptypage}}^^A +% \begin{macrocode} + \cleardoubleemptypage + \fi +% \end{macrocode} +% Falls wir uns noch immer auf einer Umschlagseite befinden, muss diese hier +% beendet werden. +% \begin{macrocode} + \ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi + \end{titlepage} +% \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ängig von math} +% \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änzt} +% \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} + \else + \par + \@tempcnta=% +% ##1% +% #1% + \relax\ifnum\@tempcnta=1\else +% \ClassWarning{\KOMAClassName}{% +% \PackageWarning{scrextend}{% + Optional argument of \string\maketitle\space ignored + at\MessageBreak + notitlepage-mode% + }% + \fi + \begingroup + \let\titlepage@restore\relax + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark + \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark} + \next@tdpage + \if@twocolumn + \ifnum \col@number=\@ne + \@makeextratitle + \next@tdpage + \@maketitle + \else + \ifx\@extratitle\@empty\else + \twocolumn[\@makeextratitle]\next@tdpage + \fi + \twocolumn[\@maketitle]% + \fi + \else + \@makeextratitle + \@maketitle + \fi + \thispagestyle{\titlepagestyle}\@thanks + \endgroup + \fi + \setcounter{footnote}{0}% +% \end{macrocode} +% \changes{v3.12}{2013/11/21}{die Titelei wird nur noch bei Kompatibilität +% zu früheren Versionen zerstört} +% \begin{macrocode} + \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax + \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.\,ä. ebenfalls löschen, um Speicher zu sparen} +% \begin{macrocode} + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\@subtitle\@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 + \fi + \global\let\and\relax +}% +% \end{macrocode} +% \begin{macro}{\@maketitle} +% \changes{v2.95c}{2006/08/21}{Absatzgrundeinstellungen} +% \changes{v3.11c}{2012/02/14}{Schmutztitel in eigene Anweisung verlagert} +% \begin{macro}{\@makeextratitle} +% \changes{v3.11c}{2013/02/14}{neue Anweisung (intern)} +% Damit wird im Fall des Titelkopfes die eigentliche Arbeit geleistet. +% \begin{macrocode} +\newcommand*{\@makeextratitle}{% + \next@tdpage + \ifx\@extratitle\@empty \else + \noindent\@extratitle \next@tdpage + \fi +} +\newcommand*{\@maketitle}{% + \next@tdpage + \global\@topnum=\z@ +% \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative +% \parskip\z@ \parindent\z@ \parfillskip\z@\@plus 1fil + \ifx\@titlehead\@empty \else + \begin{minipage}[t]{\textwidth} + \usekomafont{titlehead}{\@titlehead\par}% + \end{minipage}\par + \fi + \null + \vskip 2em% + \begin{center}% + \ifx\@subject\@empty \else + {\usekomafont{subject}{\@subject \par}}% + \vskip 1.5em + \fi + {\usekomafont{title}{\huge \@title \par}}% + \vskip .5em + {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}% + \vskip 1em + {% + \usekomafont{author}{% + \lineskip .5em% + \begin{tabular}[t]{c} + \@author + \end{tabular}\par + }% + }% + \vskip 1em% + {\usekomafont{date}{\@date \par}}% + \vskip \z@ \@plus 1em + {\usekomafont{publishers}{\@publishers \par}}% + \ifx\@dedication\@empty \else + \vskip 2em + {\usekomafont{dedication}{\@dedication \par}}% + \fi + \end{center}% + \par + \vskip 2em +}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\coverpagetopmargin} +% \changes{v3.12}{2013/11/21}{neu} +% Oberer Rand für Umschlagsseiten. +% \begin{macrocode} +\newcommand*{\coverpagetopmargin}{% + \dimexpr \topmargin+1in\relax +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\coverpagebottommargin} +% \changes{v3.12}{2013/11/21}{neu} +% Unterer Rand für Umschlagsseiten. +% \begin{macrocode} +\newcommand*{\coverpagebottommargin}{% + 2\dimexpr\coverpagetopmargin\relax +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\coverpageleftmargin} +% \changes{v3.12}{2013/11/21}{neu} +% Linker Rand für Umschlagsseiten. +% \begin{macrocode} +\newcommand*{\coverpageleftmargin}{% + \dimexpr \evensidemargin+1in\relax +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\coverpagerightmargin} +% \changes{v3.12}{2013/11/21}{neu} +% Oberer Rand für Umschlagsseiten. +% \begin{macrocode} +\newcommand*{\coverpagerightmargin}{\coverpageleftmargin} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Umgebung für die Titelseite} +% +% \begin{environment}{titlepage} +% Die Titelseite bedarf ebenfalls einer gesonderter Umgebung. Beim +% zweispaltigen Layout soll die Titelseite z.\,B. einspaltig gedruckt +% werden. +% \begin{macrocode} +%\scr@ifundefinedorrelax{titlepage}{% +\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} +% +% Im Fall von \textsf{scrextend} muss jetzt das Kürzel \emph{title} beendet +% werden: +% \begin{macrocode} +%}\csname scr@ext@immediate@title\endcsname +% \end{macrocode} +% +% \subsection{Fonts für den Titel} +% +% \begin{macro}{\titlefont} +% \changes{v2.8p}{2001/09/22}{neu} +% Wie oben zu sehen ist, wird in der Titelei ein eigenes Schriftmakro +% verwendet. Dieses ist als internes Makro zu verstehen. Der Anwender +% sollte stattdessen auf das entsprechende Element zugreifen (siehe +% unten). +% \begin{macro}{\subject@font} +% \changes{v2.8q}{2002/01/14}{neu (intern)} +% \changes{v2.95}{2002/06/26}{jetzt auch bei \textsf{scrbook}, +% \textsf{scrreprt} und \textsf{scrartcl}} +% Ebenso verhält es sich mit den \emph{Subject} im Titel. Hier ist +% aber von vornherein ein internes Makro definiert. +% \begin{macrocode} +\newcommand*\titlefont{\sectfont}% +\newcommand*{\subject@font}{\normalfont\normalcolor\bfseries\Large}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{KOMAfont}{subtitle} +% \changes{v2.97c}{2007/06/20}{neu} +% \begin{macrocode} +\newkomafont{subtitle}{\usekomafont{title}\large}% +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{titlehead} +% \changes{v3.12}{2013/05/29}{neu} +% \begin{macrocode} +\newkomafont{titlehead}{}% +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{author} +% \changes{v3.12}{2013/05/29}{neu} +% \begin{macrocode} +\newkomafont{author}{\Large} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{date} +% \changes{v3.12}{2013/05/29}{neu} +% \begin{macrocode} +\newkomafont{date}{\Large} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{publishers} +% \changes{v3.12}{2013/05/29}{neu} +% \begin{macrocode} +\newkomafont{publishers}{\Large} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{dedication} +% \changes{v3.12}{2013/05/29}{neu} +% \begin{macrocode} +\newkomafont{dedication}{\Large} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{macro}{\scr@fnt@title} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{title}} +% \begin{macro}{\scr@fnt@subject} +% \changes{v2.8q}{2002/01/14}{neues Element \texttt{subject}} +% \changes{v2.95}{2002/06/26}{jetzt auch bei \textsf{scrbook}, +% \textsf{scrreprt} und \textsf{scrartcl}} +% Die beiden Elemente, deren Schrift geändert werden kann. +% \begin{macrocode} +\newcommand*{\scr@fnt@title}{\titlefont}% +\newcommand*{\scr@fnt@subject}{\subject@font}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{Umgebung für die Zusammenfassung} +% +% \begin{environment}{abstract} +% \textsf{scrartcl} und \textsf{scrreprt} bieten die Möglichkeit einer +% Zusammenfassung, eines sogenannten \emph{Abstracts}. Wenn eine +% Titelseite verlangt wurde, wird auch die Zusammenfassung auf eine +% eigene Seite gesetzt. \textsf{scrbook} kennt keine Zusammenfassung +% dieser Art. In Büchern werden Zusammenfassungen üblicherweise mit +% Kapitelcharakter gesetzt. +% \iffalse +%<*class> +%<*article|report> +% \fi +% \changes{v2.3a}{1995/07/08}{\cs{@endparpenalty} zur Verhinderung +% eines Seitenumbruchs nach dem Abstract-Kopf eingefügt} +% \changes{v2.3g}{1996/01/14}{\cs{@beginparpenalty} zur +% Verhinderung eines Seitenumbruchs vor dem Abstract-Kopf +% eingefügt} +% \changes{v2.7a}{2001/01/04}{statt \cs{section*} wird nun +% \cs{addsec*} verwendet, damit die Kolumnentitel korrekt +% behandelt werden} +% \changes{v3.04a}{2009/07/14}{die Unterscheidung, ob Titelseite oder +% Titelkopf sollte erst in der Umgebung und nicht schon bei deren +% Definition erfolgen} +% \begin{macrocode} +\newenvironment{abstract}{% + \if@titlepage + \titlepage + \null\vfil + \@beginparpenalty\@lowpenalty + \if@abstrt + \begin{center} + \normalfont\sectfont\nobreak\abstractname + \@endparpenalty\@M + \end{center} + \fi + \else + \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 + \fi +}{% + \if@titlepage + \par\vfil\null\endtitlepage + \else + \if@twocolumn\else\endquotation\fi + \fi +} +% \end{macrocode} +% \iffalse +% +% +% \fi +% \end{environment} +% +% +% \iffalse +% +% \fi +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-title.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx new file mode 100644 index 00000000000..44bfbf9fb9c --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx @@ -0,0 +1,2716 @@ +% \CheckSum{2328} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-typearea.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-typearea.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-typearea.dtx 1512 2013-11-11 10:35:04Z mjk $ +%\NeedsTeXFormat{LaTeX2e}[1995/06/01] +%<*driver> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{scrkernel-typearea.dtx}[% +% +%<*driver|(package&identify)> +%\ProvidesPackage{typearea}[% +%!KOMAScriptVersion + package (type area)] +% +%<*dtx> +\ifx\documentclass\undefined + \input scrdocstrip.tex + \@@input scrkernel-version.dtx + \@@input scrstrip.inc + \generate{\usepreamble\defaultpreamble + \file{typearea.sty}{% + \from{scrkernel-version.dtx}{package,typearea}% + \from{scrkernel-typearea.dtx}{package,identify}% + \from{scrkernel-basics.dtx}{load}% + \from{scrkernel-typearea.dtx}{package,option}% + \from{scrkernel-compatibility.dtx}{package,typearea,option}% + \from{scrkernel-typearea.dtx}{package,body}% + \from{scrkernel-compatibility.dtx}{package,typearea,body}% + \from{scrlogo.dtx}{logo}% + }% + } + \@@input scrstrop.inc +\else + \let\endbatchfile\relax +\fi +\endbatchfile +% +%<*driver> +\documentclass{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-typearea.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/06/20}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% +% \section{Satzspiegel Makros} +% +% Dieser Abschnitt beinhaltet alle Makros, die für den Satzspiegel +% benötigt werden. Dies betrifft sowohl das Paket \textsf{typearea} +% als auch die Klassen. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% +% \subsection{Präambel} +% +% \iffalse +%<*class|package> +%<*package&identify> +% \fi +% +% Zuerst einmal zeigen, was das Paket 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-^^J% +} +% \end{macrocode} +% +% \iffalse +% +%<*option> +% \fi +% +% \subsection{Von den Optionen benötigte Befehle} +% +% Für das Paket +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% Zur Auswertung der Optionen werden einige Makros benötigt. Diese +% sind natürlich vor der Deklaration der Optionen bzw. vor der +% Auswertung der Optionen zu definieren. Ich mache das hier vor der +% Deklaration der Optionen. +% +% \begin{macro}{\SetDIVList} +% \changes{v2.1a}{1994/10/28}{neu} +% \changes{v2.6}{2000/01/04}{\cs{ta@divlist} enthält Werte für +% Schriftgrößen ab 1pt} +% Der Befehl \cs{SetDIVList} tut nichts weiter als die innere Variable +% für die schriftgrößenabhängige \emph{DIV}-Liste \cs{ta@divlist} neu +% zu definieren. Dabei können \emph{DIV}-Werte für Größen 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} +% Da mit \cs{SetDIVList} aus Kompatibilitätsgründen nur Werte für +% Größen ab 10\,pt gesetzt werden können, wird für Werte ab 1\,pt +% ein neuer Befehl benötigt. +% \begin{macrocode} +\newcommand*\SetXDIVList[1]{\def\ta@divlist{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{Length}{\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ür die Definition verwendet} +% Dimension für die Bindekorrektur reservieren. Diese wird implizit +% zu 0\,pt initialisiert. +% \begin{macrocode} +\newlength{\ta@bcor} +% \end{macrocode} +% \end{Length} +% +% \begin{macro}{\ta@div} +% \changes{v2.2a}{1995/01/25}{Definition wegen der Option +% \texttt{DIV} vorgezogen} +% Zähler für \emph{DIV} reservieren. Dieser wird implizit zu 0 +% initialisiert. +% \begin{macrocode} +\newcount\ta@div +% \end{macrocode} +% \end{macro} +% +% Ab hier nun Teile für Klassen und Paket: +% \begin{macrocode} +% +% \end{macrocode} +% +% \begin{macro}{\@BCOR} +% \begin{macro}{\@@BCOR} +% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch +% Mustererkennung ersetzt} +% Das Makro \cs{@BCOR} wird später benötigt, um die Option +% \texttt{BCOR\emph{BCOR}} zu erkennen. Die Option wird über 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 \texttt{BCOR}, so ist der erste +% Parameter leer. +% \begin{macrocode} + \ifstr{#1}{}{% +% \end{macrocode} +% Außerdem ist der dritte Parameter dann \texttt{BCOR}. +% \begin{macrocode} + \ifstr{#3}{BCOR}{% +% \end{macrocode} +% Der zweite Parameter sollte dann die Größe enthalten. Ist dies +% nicht der Fall, wird ein Fehler gemeldet (Fehlerzeile ist dann +% \cs{ProcessOptions}). +% \begin{macrocode} +% \PassOptionsToPackage{BCOR#2}{typearea}% +% \ifdimen{#2}{\setlength{\ta@bcor}{#2}}{\scr@pti@nerr@r}% +% \end{macrocode} +% In allen anderen Fällen ist es nicht diese Option, dann wird ein +% Fehler ausgegeben. Stattdessen könnte hier auch auf weitere Optionen +% getestet werden. +% \begin{macrocode} + }{\scr@pti@nerr@r}% + }{\scr@pti@nerr@r}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@DIV} +% \begin{macro}{\@@DIV} +% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch +% Mustererkennung ersetzt} +% Die grundsätzliche Funktion ist die gleiche wie bei \cs{@BCOR}, +% \cs{@@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 +% \PassOptionsToPackage{DIV#2}{typearea}% +% \ifnumber{#2}{\ta@div=#2\relax}{\scr@pti@nerr@r}% + \else\scr@pti@nerr@r\fi +% \end{macrocode} +% Der Unterschied liegt darin, dass bei einem Fehlschlag der +% Mustererkennung kein Fehler vorliegt, sondern u.\,U. noch auf +% \texttt{BCOR} getestet werden muss. +% \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ür die Anzahl +% der Kopfzeilen} +% Das Macro \cs{@headlines} wird benötigt, 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 +% \PassOptionsToPackage{#1headlines}{typearea} +% \setlength{\@tempdima}{#1\baselineskip}% +% \def\ta@hh{#1\baselineskip}% + \else\@DIV\fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Jetzt kommt ein Stück, das nur im Paket benötigt wird. +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \begin{macro}{\x@paper} +% \begin{macro}{\x@@paper} +% \changes{v2.5}{1997/06/17}{neue Mustererkennung für die +% Papiergröße} +% Diese Makros werden ebenfalls später benötigt, wenn die Papiergröße +% festgelegt wird. +% \begin{macro}{\isopaper} +% \changes{v2.5}{1997/06/17}{neu} +% \changes{v2.95}{2002/12/03}{es sind auch Großbuchstaben erlaubt} +% Da das Makro \cs{isopaper} zur Berechnung unterschiedlicher +% ISO/DIN-Papierformate in der Mustererkennung für die Papiergröße +% benötigt 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öße angibt. Die Angabe erfolgt über einen +% Buchstaben. Möglich sind +% \begin{description} +% \item[a] -- ISO/DIN-A-Format +% \item[b] -- ISO/DIN-B-Format +% \item[c] -- ISO/DIN-C-Format +% \item[d] -- ISO/DIN-D-Format +% \end{description} +% Der zweite Paremeter gibt dann die Skalierung an. +% +% Als Grundgröße wird jeweils die 0-Größe eingesetzt. +% \begin{macrocode} + \ifx a#1 + \setlength{\paperwidth}{841sp}% + \setlength{\paperheight}{1189sp}% + \else\ifx A#1 + \setlength{\paperwidth}{841sp}% + \setlength{\paperheight}{1189sp}% + \else\ifx b#1 + \setlength{\paperwidth}{1000sp}% + \setlength{\paperheight}{1414sp}% + \else\ifx B#1 + \setlength{\paperwidth}{1000sp}% + \setlength{\paperheight}{1414sp}% + \else\ifx c#1 + \setlength{\paperwidth}{917sp}% + \setlength{\paperheight}{1297sp}% + \else\ifx C#1 + \setlength{\paperwidth}{917sp}% + \setlength{\paperheight}{1297sp}% + \else\ifx d#1 + \setlength{\paperwidth}{771sp}% + \setlength{\paperheight}{1090sp}% + \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ählten Papiergröße +% entfernt} +% \begin{macrocode} + \else + \PackageError{typearea}{% + Unknown ISO/DIN-papersize-letter #1% + }{% + There are only four defined paper scalings:\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 + \fi + \fi + \fi + \fi +% \end{macrocode} +% Es dürfte aufgefallen sein, dass bei der Größenfestlegung statt +% der Einheit "`mm"' die Einheit "`sp"' geschrieben wurde. Die Maße +% sind also um ein Vielfaches zu klein und müssen später noch mit +% 186468 multiplitziert werden, um auf Millimeter zu kommen. Dieser +% Trick ist jedoch notwendig, weil die Norm vorschreibt, dass bei der +% nun folgenden $n$-fachen Halbierung der Seiten ($n = +% \mathrm{Skalierung} + 1$) jeweils auf ganze Millimeter abgerundet +% werden muss. +% \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ß muss 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 + \multiply\paperheight by186468 +% \end{macrocode} +% Jetzt noch die gewünschte Ausrichtung beachten. +% \changes{v2.97e}{2007/10/23}{gewünschte Papierausrichtung wird beachtet} +% \begin{macrocode} + \if@landscape + \setlength{\@tempdima}{\paperwidth}% + \setlength{\paperwidth}{\paperheight}% + \setlength{\paperheight}{\@tempdima}% + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\iso@paper} +% \changes{v2.95}{2002/12/03}{neu (intern)} +% Ein ganz ähnlicher interner Befehl erhält den gesamten Namen des +% ISO-Papierformats als einziges Argument. +% \begin{macro}{\iso@@paper} +% \changes{v2.95}{2002/12/03}{neu (intern)} +% Dieses Argument wird dann über einen weiteren internen Befehl per +% Mustererkennung in den Kennbuchstaben und eine Zahl zerlegt. +% \begin{macrocode} +\newcommand*{\iso@paper}[1]{\expandafter\iso@@paper#1\@nil} +\newcommand*{\iso@@paper}{} +\def\iso@@paper#1#2\@nil{% + \@tempswafalse + \if #1a\@tempswatrue + \else\if #1A\@tempswatrue + \else\if #1b\@tempswatrue + \else\if #1B\@tempswatrue + \else\if #1c\@tempswatrue + \else\if #1C\@tempswatrue + \else\if #1d\@tempswatrue + \else\if #1D\@tempswatrue + \fi\fi\fi\fi\fi\fi\fi\fi + \if@tempswa + \ifnumber{#2}{\isopaper[#1]{#2}}{\@tempswafalse}% + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Jetzt wird es wieder für alle interessant: +% \begin{macrocode} +% +% \end{macrocode} +% +% Zurück zur Mustererkennung. Diese ist tatsächlich etwas einfacher +% als die in den beiden Fällen zuvor. +% \changes{v2.97e}{2007/10/23}{Optionen werden nach der neuen Syntax an +% typearea weitergeleitet} +% \begin{macrocode} +\newcommand*{\x@paper}{% + \expandafter\x@@paper\CurrentOption paper\x@@paper% +} +\newcommand*{\x@@paper}{} +\def\x@@paper #1#2paper#3\x@@paper{% + \ifstr{#3}{paper}{% + \ifnumber{#2}{% + \ifstr{#1}{a}{% +% \PassOptionsToPackage{#3=#1#2}{typearea}% +% \isopaper[a]{#2}% + }{% + \ifstr{#1}{b}{% +% \PassOptionsToPackage{#3=#1#2}{typearea}% +% \isopaper[b]{#2}% + }{% + \ifstr{#1}{c}{% +% \PassOptionsToPackage{#3=#1#2}{typearea}% +% \isopaper[c]{#2}% + }{% + \ifstr{#1}{d}{% +% \PassOptionsToPackage{#3=#1#2}{typearea}% +% \isopaper[d]{#2}% + }{\scr@pti@nerr@r}% + }% + }% + }% + }{\scr@pti@nerr@r}% + }{% +% \@pt@scan +% \@headlines + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\scr@pti@nerr@r} +% \changes{v2.95}{2002/06/20}{\cs{OptionNotUsed} statt +% \cs{PackageError}} +% Falls die zuätzliche Option nicht \texttt{BCOR}, \texttt{DIV}, +% \texttt{headlines} oder eine bekannte Papiergröße ist, ist die +% Option nicht verwendet. +% \begin{macrocode} +\newcommand*{\scr@pti@nerr@r}{ +% \OptionNotUsed +% \@unknownoptionerror +} +% \end{macrocode} +% \end{macro} +% +% Jetzt wieder nur für Pakete: +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \subsection{Optionen mit \textsf{keyval}} +% +% \subsubsection{Kopf-, Fuß-, Rand- und Textbereich} +% +% \begin{option}{headlines} +% \changes{v2.95}{2002/12/06}{mit \textsf{keyval} neu implementiert} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% \begin{option}{footlines} +% \changes{v3.12}{2013/03/26}{neue Option} +% Neben der Auswertung der \meta{Wert}\texttt{headlines} Form über +% Pattern Matching wird hier auch noch eine \textsf{keyval}-Option +% definiert, die bevorzugt zu verwenden ist. Für den Fuß wird überhaupt nur +% diese Form bereit gestellt. +% \begin{macrocode} +\KOMA@key{headlines}{% + \begingroup + \setlength{\@tempdima}{#1\baselineskip}% + \endgroup + \def\ta@hh{#1\baselineskip}% + \FamilyKeyStateProcessed +} +\KOMA@key{footlines}{% + \begingroup + \setlength{\@tempdima}{#1\baselineskip}% + \endgroup + \def\ta@fh{#1\baselineskip}% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \end{option} +% \end{option} +% +% \begin{option}{headheight} +% \changes{v2.98c}{2008/04/06}{neue Option} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% \begin{option}{footheight} +% \changes{v3.12}{2013/03/26}{neue Option} +% Manchmal ist es nützlicher, wenn man die Höhe direkt setzen kann, statt sie +% über die Anzahl der Grundlinien zu setzen. In dem Fall nimmt man einfach +% diese Optionen. +% \begin{macrocode} +\KOMA@key{headheight}{% + \begingroup + \setlength{\@tempdima}{#1}% + \endgroup + \def\ta@hh{#1}% + \FamilyKeyStateProcessed +} +\KOMA@key{footheight}{% + \begingroup + \setlength{\@tempdima}{#1}% + \endgroup + \def\ta@fh{#1}% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \end{option} +% \end{option} +% +% \begin{option}{headinclude} +% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} +% \begin{option}{headexclude} +% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{deprecated} +% Diese Optionen bestimmen, ob der Seitenkopf bereits zum Textbereich +% gehört. +% \begin{macro}{\if@hincl} +% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} +% \changes{v2.97c}{2007/04/19}{direkte Initialisierung über \cs{if@hsl}, +% falls definiert} +% \begin{macro}{\@hincltrue} +% \begin{macro}{\@hinclfalse} +% Der Zustand selbst wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@hincl\@ifundefined{if@hsl}{}{\let\if@hincl\if@hsl} +\KOMA@ifkey{headinclude}{@hincl} +\KOMA@DeclareDeprecatedOption[typearea]{headexclude}{headinclude=false} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% \end{option} +% +% \begin{option}{footinclude} +% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} +% \begin{option}{footexclude} +% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{deprecated} +% Diese Optionen bestimmen, ob die Fußzeilen noch zum Textbereich +% gehören. +% \begin{macro}{\if@fincl} +% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} +% \changes{v2.97c}{2007/04/19}{direkte Initialisierung über \cs{if@fsl}, +% falls definiert} +% \begin{macro}{\@fincltrue} +% \begin{macro}{\@finclfalse} +% Der Zustand selbst wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@fincl\@ifundefined{if@fsl}{}{\let\if@fincl\if@fsl} +\KOMA@ifkey{footinclude}{@fincl} +\KOMA@DeclareDeprecatedOption[typearea]{footexclude}{footinclude=false} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% \end{option} +% +% \begin{option}{mpinclude} +% \changes{v2.8q}{2002/03/28}{neue Option} +% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} +% \begin{option}{mpexclude} +% \changes{v2.8q}{2002/03/28}{neue Option} +% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{deprecated} +% Es gibt Dokumente mit sehr ausführlichen 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} +% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} +% \begin{macro}{\@mincltrue} +% \begin{macro}{\@minclfalse} +% Der Zustand wird in einem Schalter gespeichert. \textbf{Achtung:} +% Bei Verwendung dieser Option müssen größere DIV-Werte verwendet +% werden. Siehe dazu weiter unten. +% \begin{macrocode} +\KOMA@ifkey{mpinclude}{@mincl} +\KOMA@DeclareDeprecatedOption[typearea]{mpexclude}{mpinclude=false} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% \end{option} +% +% \begin{option}{BCOR} +% \changes{v2.2a}{1995/01/25}{neue Option} +% \changes{v2.95}{2002/12/04}{als \textsf{keyval}-Option +% implementiert} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Der Wert wird einfach an die Länge \cs{ta@bcor} verfüttert, wobei +% symbolische Werte speziell behandelt werden, auch wenn sie beim +% Laden des Pakets absolut keinen Sinn ergeben! +% \begin{macrocode} +\KOMA@key{BCOR}{% + \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else + \setlength{\ta@bcor}{#1}% + \fi + \FamilyKeyStateProcessed +} +% \end{macrocode} +% Wenn allerdings der Satzspiegel bereits berechnet ist, dann muss er +% hier stattdessen neu berechnet werden. +% \begin{macrocode} +\AtEndOfPackage{\KOMA@key{BCOR}{\typearea[{#1}]{last}}} +% \end{macrocode} +% \end{option} +% +% \begin{option}{DIV} +% \changes{v2.2a}{1995/01/25}{neue Option} +% \changes{v2.95}{2002/12/04}{als \textsf{keyval}-Option +% implementiert} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Der Wert wird einfach an den Zähler \cs{ta@div} verfüttert, wobei +% symbolische Werte speziell behandelt werden. Dabei werden auch die +% Werte "`\texttt{last}"' und "`\texttt{current}"' ausgewertet, auch +% wenn diese beim Laden des Pakets absolut keinen Sinn ergeben! +% \begin{macrocode} +\KOMA@key{DIV}[calc]{% + \edef\@tempa{#1}% + \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=\z@ \else + \def\@tempb{calc}\ifx\@tempa\@tempb\ta@div=\tw@ \else + \def\@tempb{classic}\ifx\@tempa\@tempb\ta@div=\thr@@ \else + \ta@div=\@tempa + \fi + \fi + \fi + \fi + \FamilyKeyStateProcessed +} +% \end{macrocode} +% Wenn allerdings der Satzspiegel bereits berechnet ist, dann muss er +% hier stattdessen neu berechnet werden. +% \begin{macrocode} +\AtEndOfPackage{\KOMA@key{DIV}{\typearea[current]{#1}}} +% \end{macrocode} +% \end{option} +% +% \begin{option}{DIVcalc} +% \changes{v2.4g}{1996/11/04}{neue Option} +% \changes{v2.95}{2002/12/04}{über Option \texttt{DIV} reimplementiert} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{DIVclassic} +% \changes{v2.4n}{1997/05/28}{neue Option} +% \changes{v2.95}{2002/12/04}{über Option \texttt{DIV} reimplementiert} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% Dann gibt es da noch zwei alte Sonderfälle. +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption[typearea]{DIVcalc}{DIV=calc} +\KOMA@DeclareDeprecatedOption[typearea]{DIVclassic}{DIV=classic} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \begin{option}{areasetadvanced} +% \changes{v3.11}{2012/04/17}{new internal option} +% Switch to advanced version of \cs{areaset}. This does calculate margins +% more like \cs{typearea}. Nevertheless, there's still a difference at the top +% margin, because \cs{typerea} doesn't balance differences in calculated +% height of margins and resulting height of margins but reduces only the +% bottom margin. +% \begin{macrocode} +\KOMA@ifkey{areasetadvanced}{@areasetadvanced} +% \end{macrocode} +% \end{option} +% +% +% \subsubsection{Sonstige Satzspiegel-Optionen} +% +% \begin{option}{oneside} +% \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die +% Option an das Paket weiter} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{twoside} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die +% Option an das Paket weiter} +% \changes{v3.00}{2008/07/09}{die Option kennt zusätzlich den Wert +% \texttt{semi}} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% \begin{macro}{\if@semitwoside} +% \changes{v3.00}{2008/07/09}{neuer Schalter (intern)} +% \begin{macro}{\if@twoside} +% \changes{v3.00}{2008/07/09}{Schalter setzt auch \cs{if@semitwoside}} +% Einseitiger oder zweiseitiger Satzspiegel? +% \begin{macrocode} +\newif\if@semitwoside +\g@addto@macro\@twosidetrue\@semitwosidefalse +\g@addto@macro\@twosidefalse\@semitwosidefalse +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\KOMA@key{twoside}[true]{% +% \if@atdocument\else\PassOptionsToPackage{twoside=#1}{typearea}\fi% +%<*package> + \if@atdocument\if@twoside\cleardoublepage\else\clearpage\fi\fi + \ifstr{#1}{semi}{% + \@twosidetrue + \@semitwosidetrue + \FamilyKeyStateProcessed + }{% + \def\FamilyElseValue{, `semi'}% + \KOMA@set@ifkey{twoside}{@twoside}{#1}% + }% + \if@twoside + \if@semitwoside + \@mparswitchfalse + \else + \@mparswitchtrue + \fi + \else + \@mparswitchfalse + \fi% + \csname recalctypearea\endcsname +% +} +\KOMA@DeclareStandardOption% +% [typearea]% + {oneside}{twoside=false} +%<*package> +% \end{macrocode} +% \end{option} +% \end{option} +% +% \begin{option}{onecolumn} +% \changes{v2.95}{2002/12/04}{Option in das \textsf{typearea}-Paket +% verlagert} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die +% Option an das Paket weiter} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{twocolumn} +% \changes{v2.95}{2002/12/04}{Option in das \textsf{typearea}-Paket +% verlagert} +% \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die +% Option an das Paket weiter} +% \changes{v2.98a}{2007/01/08}{es wird die richtige Option an das Paket +% weitergereicht} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Einspaltiger oder zweispaltiger Satz? +% \begin{macrocode} +% +\KOMA@key{twocolumn}[true]{% +% \if@atdocument\else\PassOptionsToPackage{twocolumn=#1}{typearea}\fi% +%<*package> + \if@atdocument\clearpage\fi + \KOMA@set@ifkey{twocolumn}{@twocolumn}{#1}% + \ifx\FamilyKeyState\FammilyKeyStateProcessed + \csname recalctypearea\endcsname + \fi +% +} +\KOMA@DeclareStandardOption% +% [typearea]% + {onecolumn}{twocolumn=false} +%<*package> +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \subsubsection{Ausgabeformat-Optionen} +% +% Diese Optionen arbeiten in Abhänigkeit des Ausgabeformats. +% +% \begin{option}{pagesize} +% \changes{v2.7g}{2001/04/17}{neue Option} +% \changes{v2.95}{2002/08/27}{neu implementiert} +% \changes{v3.02c}{2009/02/14}{neuer Wert \texttt{false}} +% \changes{v3.05a}{2010/03/18}{neuer Wert \texttt{dvipdfmx}} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Diese Option ist nun das zentrale Element für die Übermittlung der +% Seitengröße an pdf\TeX, \texttt{dvips} oder V\TeX. Sie wird auch von +% den obsoleten Optionen verwendet. Die Werte und ihre Bedeutung: +% \begin{labeling}[~--]{\texttt{automedia}} +% \item[\texttt{auto}] Kombination aus den Optionen \texttt{pdftex} +% und \texttt{dvips}. +% \item[\texttt{automedia}] wie \texttt{auto} allerdings werden +% zusätzlich \cs{mediawidth} und \cs{mediaheight} gesetzt, falls +% sie definiert sind. +% \item[\texttt{dvips}] das \cs{special} für \texttt{dvips} wird +% ausgegeben, falls \texttt{dvi}-Ausgabe erwartet wird oder +% \cs{if@dvips} erfüllt ist. Führt zu einer Warnung, wenn sie mehr +% als einmal oder nach der Präambel verwendet wird. +% \item[\texttt{dvipdfmx}] das \cs{special} für \texttt{dvipdfmx} wird +% ausgegeben, falls \texttt{dvi}-Ausgabe erwartet wird. +% \item[\texttt{false}] die automatische Anpassung bei Änderungen innerhalb +% des Dokuments abschalten. +% \item[\texttt{pdftex}] \cs{pdfpagewidth} und \cs{pdfpageheight} +% werden gesetzt, falls sie definiert sind. +% \end{labeling} +% \begin{macrocode} +\KOMA@key{pagesize}[auto]{% + \begingroup + \KOMA@set@ncmdkey{pagesize}{@tempa}{% + {off}{-1},{no}{-1},{false}{-1},% + {auto}{0},{automedia}{1},{dvips}{2},{pdftex}{3},{dvipdfmx}{4}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \aftergroup\FamilyKeyStateProcessed + \ifcase\number\@tempa\relax + \endgroup + \set@pdftexpagesize + \set@dvipspagesize + \or + \endgroup + \set@pdftexpagesize + \set@vtexpagesize + \set@dvipspagesize + \or + \endgroup + \set@dvipspagesize + \or + \endgroup + \set@pdftexpagesize + \or + \endgroup + \set@dvipdfmxpagesize + \fi + \edef\@pagesizelast{#1}% + \else + \endgroup + \FamilyKeyStateUnknownValue + \fi +} +% \end{macrocode} +% +% \begin{macro}{\set@pdftexpagesize} +% \changes{v2.95}{2002/08/27}{neu (intern)} +% \begin{macro}{\set@dvipspagesize} +% \changes{v2.95}{2002/08/27}{neu (intern)} +% \changes{v3.02c}{2009/02/13}{\texttt{seascape} wird beachtet} +% \changes{v3.02c}{2009/02/14}{funktioniert auch im Dokument} +% \changes{v3.12}{2012/02/06}{nicht ausgeführtes +% \cs{let}\cs{if@tempswa}\cs{if@dvips} funktioniert auch noch, wenn +% letzteres nicht definiert ist} +% \begin{macro}{\setnot@dvipspagesize} +% \changes{v2.95}{2002/08/27}{neu (intern)} +% \begin{macro}{\set@dvipdfmxpagesize} +% \changes{v3.05a}{2010/03/18}{neu (intern)} +% \begin{macro}{\set@vtexpagesize} +% \changes{v2.95}{2002/08/27}{neu (intern)} +% \begin{macro}{\scr@updatedvipspagesize} +% \changes{v3.02c}{2009/02/14}{neu (intern)} +% \changes{v3.12}{2013/05/10}{deaktiviert, wenn \cs{XeTeXversion} existiert} +% Damit die Option \texttt{pagesize} überhaupt funktionieren kann, +% werden einige interne Makros benötigt. +% \begin{description} +% \item{Achtung:} die Definition dieser Makros ändert sich teilweise +% bei ihrem Aufruf und insgesamt bei +% \texttt{\cs{begin}\{document\}}. +% \end{description} +% \begin{macrocode} +\newcommand{\set@pdftexpagesize}{% + \AtBeginDocument{% + \ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}% + \ifnotundefined{pdfpageheight}{\pdfpageheight=\paperheight}{}% + }% + \let\set@pdftexpagesize=\@empty +} +\newcommand{\set@dvipspagesize}{% + \begingroup + \@tempswafalse + \scr@ifdvioutput{\@tempswatrue}{% + \ifnotundefined{if@dvips}{% + \expandafter\let\csname if@tempswa\expandafter\endcsname + \csname if@dvips\endcsname + }{}% + }% + \if@tempswa + \endgroup + \AtBeginDocument{\AtBeginDvi{% + \special{papersize=\the\paperwidth,\the\paperheight}% + \if@seascape\special{! TeXDict begin /landplus90{true}store end }\fi + }% + }% + \ifnum \scr@compatibility>\@nameuse{scr@v@3.02b}\relax + \let\set@dvipspagesize=\@empty + \else + \let\set@dvipspagesize=\setnot@dvipspagesize + \fi + \else + \endgroup + \fi +} +\newcommand{\setnot@dvipspagesize}{% + \scr@ifdvioutput{% + \PackageWarning{% + typearea% + }{% + With dvi output option `pagesize=auto',\MessageBreak + `pagesize=automedia' or `pagesize=dvips'\MessageBreak + may be used only once at preamble.\MessageBreak + Option ignored% + }% + }{}% +} +\newcommand*{\set@dvipdfmxpagesize}{% + \scr@ifdvioutput{% + \AtBeginDocument{\AtBeginDvi{% + \special{papersize=\the\paperwidth,\the\paperheight}% + }% + }% + }{}% +} +\newcommand{\set@vtexpagesize}{% + \AtBeginDocument{% + \ifnotundefined{mediawith}{\mediawidth=\paperwidth}{}% + \ifnotundefined{mediaheight}{\mediaheight=\paperheight}{}% + }% + \let\set@vtexpagesize=\@empty +} +\newcommand*{\scr@updatedvipspagesize}{% + \scr@ifundefinedorrelax{XeTeXversion}{% + \special{ps::\@percentchar\@percentchar + PageBoundingBox: 0 0 \the\numexpr\paperwidth/\dimexpr 1bp\relax\relax + \space \the\numexpr\paperheight/\dimexpr 1bp\relax\relax^^J% + \@percentchar\@percentchar BeginPageSetup^^J% + << /PageSize [\the\numexpr\paperwidth/\dimexpr 1bp\relax\relax\space + \the\numexpr\paperheight/\dimexpr 1bp\relax\relax] + >> setpagedevice^^J%<< + 0 0 bop^^J% + \@percentchar\@percentchar EndPageSetup}% + }{}% +} +\AtBeginDocument{% + \renewcommand*{\set@pdftexpagesize}{% + \ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}% + \ifnotundefined{pdfpageheight}{\pdfpageheight=\paperheight}{}% + }% + \ifnum \scr@compatibility>\@nameuse{scr@v@3.02b}\relax + \renewcommand*{\set@dvipspagesize}{% +% \end{macrocode} +% \changes{v3.12}{2012/11/23}{nur im DVI- und PS-Fall das Papierformatupdate +% durchführen} +% \changes{v3.12}{2012/02/06}{nicht ausgeführtes +% \cs{let}\cs{if@tempswa}\cs{if@dvips} funktioniert auch noch, wenn +% letzteres nicht definiert ist} +% Es wird getestet, ob unspezfizierte DVI-Ausgabe oder spezifizierte +% PS-Ausgabe verwendet wird. Nur in diesen Fällen wird der PS-Code für das +% Papierformatupdate eingefügt. +% \begin{macrocode} + \begingroup + \@tempswafalse + \scr@ifdvioutput{\@tempswatrue}{% + \ifnotundefined{if@dvips}{% + \expandafter\let\csname if@tempswa\expandafter\endcsname + \csname if@dvips\endcsname + }{}% + }% + \if@tempswa + \endgroup + \scr@ifundefinedorrelax{AtNextShipout}{% + \scr@ifundefinedorrelax{AtBeginShipoutNext}{% + \begingroup + \protected@edef\reserved@a{\endgroup + \scr@updatedvipspagesize}% + \reserved@a + }{% +% \end{macrocode} +% Wenn \textsf{atbegshi} geladen wurde, bzw. \cs{AtBeginShipoutNext} zur +% Verfügung steht, dann soll dieser Code noch vor Code ausgeführt werden, der +% eventuell in \cs{shipout} eingeschleust wurde. Das funktioniert leider nicht +% wirklich zuverlässig. Sollte zwischen dem Aufruf von \cs{set@dvipspagesize} +% (also der Neuberechnung des Satzspiegels) und der Ausgabe der Seite doch +% noch etwas per \cs{AtBeginShipout} oder \cs{AtBeginShipoutNext} eingefügt +% werden, dann gehen diese Teile verloren! +% \begin{macrocode} + \begingroup + \protected@edef\reserved@a{\endgroup + \protect\AtBeginShipoutNext{% + \protect\bgroup + \protect\global\protect\setbox\AtBeginShipoutBox + \protect\vbox{% + \scr@updatedvipspagesize + \protect\box\AtBeginShipoutBox + }% + \protect\egroup + }}% + \reserved@a + }% + }{% +% \end{macrocode} +% Wenn \textsf{everyshi} geladen wurde, bzw. \cs{AtNextShipout} zur +% Verfügung steht, dann soll dieser Code noch vor Code ausgeführt werden, der +% eventuell in \cs{shipout} eingeschleust wurde. Das funktioniert leider nicht +% wirklich zuverlässig. Sollte zwischen dem Aufruf von \cs{set@dvipspagesize} +% (also der Neuberechnung des Satzspiegels) und der Ausgabe der Seite doch +% noch etwas per \cs{AtNextShipout} oder \cs{EveryShipout} eingefügt +% werden, dann gehen diese Teile verloren! +% \begin{macrocode} + \begingroup + \protected@edef\reserved@a{\endgroup + \protect\AtNextShipout{% + \protect\bgroup + \protect\global\protect\setbox\protect\@cclv\protect\vbox{% + \scr@updatedvipspagesize + \protect\box\protect\@cclv + }% + \protect\egroup + }}% + \reserved@a + }% + \else +% \end{macrocode} +% In diesem Fall (nämlich weder DVI- noch PS-Ausgabe) muss nur die Gruppe, die +% eingefügt wurde, um die Änderung von \cs{if@tempswa} lokal zu halten, +% geschlossen werden. +% \begin{macrocode} + \endgroup + \fi + }% + \else + \let\set@dvipspagesize=\setnot@dvipspagesize + \fi + \renewcommand*{\set@dvipdfmxpagesize}{% + \scr@ifdvioutput{% + \special{papersize=\the\paperwidth,\the\paperheight}% + }{}% + }% + \renewcommand*{\set@vtexpagesize}{% + \ifnotundefined{mediawith}{\mediawidth=\paperwidth}{}% + \ifnotundefined{mediaheight}{\mediaheight=\paperheight}{}% + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% +% \begin{option}{dvips} +% \changes{v2.7g}{2001/04/17}{neue Option} +% \changes{v2.95}{2002/08/27}{neu implementiert} +% \changes{v2.98c}{2008/04/09}{Ersatz geändert} +% \changes{v2.98c}{2008/04/09}{Info statt Warnung} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% Die Option ist obsolete und wird nun über die Option +% \texttt{pagesize} implementiert. Obwohl die Verwendung von +% \texttt{pagesize=automedia} zu einer Warnung führen kann, wird hier nur +% informiert. +% \begin{macrocode} +\KOMA@DeclareStandardOption[typearea]{dvips}{% + pagesize=automedia% +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{pdftex} +% \changes{v2.7g}{2001/04/17}{neue Option} +% \changes{v2.95}{2002/08/27}{neu implementiert} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% Die Option ist obsolete und wird nun über die Option +% \texttt{pagesize} implementiert. +% \begin{macrocode} +\KOMA@DeclareStandardOption[typearea]{pdftex}{% + pagesize=pdftex% +} +% \end{macrocode} +% \end{option} +% +% +% \subsubsection{Papiergrößen-Optionen} +% +% Die folgende Option bestimmt die Papiergröße und -ausrichtung. Aus +% der Papiergröße wird später mit \cs{typearea} der Satzspiegel +% berechnet. Darüber hinaus wäre das eine passende Gelegenheit +% \cs{SetDIVList} anzuwenden, darauf wird aber verzichtet, da die +% Verwendung der Liste ohnehin als veraltete Methode betrachtet werden +% kann. +% +% \begin{option}{a4paper} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{a5paper} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{b5paper} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{letterpaper} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{legalpaper} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{executivepaper} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{landscape} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{portrait} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} +% ersetzt} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% Die Formate, die auch bei den Standardklassen definiert sind, werden +% als Sonderfall explizit definiert. Dadurch ist ein Wechsel der +% Klasse bzw. die Verwendung von \textsf{typearea} mit den +% Standardklassen einfacher. Aus Kompatibilitätsgründen werden auch +% die übrigen Papiergrößenoptionen später noch per Mustererkennung +% verarbeitet. +% \begin{macrocode} +\KOMA@DeclareStandardOption[typearea]{a4paper}{paper=a4} +\KOMA@DeclareStandardOption[typearea]{a5paper}{paper=a5} +\KOMA@DeclareStandardOption[typearea]{b5paper}{paper=b5} +\KOMA@DeclareStandardOption[typearea]{letterpaper}{paper=letter} +\KOMA@DeclareStandardOption[typearea]{legalpaper}{paper=legal} +\KOMA@DeclareStandardOption[typearea]{executivepaper}{paper=executive} +\KOMA@DeclareStandardOption[typearea]{landscape}{paper=landscape} +\KOMA@DeclareStandardOption[typearea]{portrait}{paper=portrait} +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% +% \begin{option}{paper} +% \changes{v2.95}{2002/12/03}{neu implementiert} +% \changes{v3.01b}{2008/12/09}{Höhe und Breite vertauscht} +% \changes{v3.02c}{2009/02/12}{neuer Wert \texttt{seascape}} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Im Normalfall wird die Papiergröße jedoch über diese Option +% gesetzt. Dabei sind neben den Standard- und den ISO-Reihen A, B, C +% und D auch Wertepaare der Form +% "`\texttt{(\meta{Breite},\meta{Höhe})}"' und die Angaben +% "`\texttt{portrait}"' und "`\texttt{landscape}"' erlaubt. +% \begin{macrocode} +\KOMA@key{paper}{% + \ifstr{#1}{seascape}{% + \@seascapetrue + \if@landscape\else + \setlength{\@tempdima}{\paperwidth}% + \setlength{\paperwidth}{\paperheight}% + \setlength{\paperheight}{\@tempdima}% + \@landscapetrue + \fi + \FamilyKeyStateProcessed + }{% + \ifstr{#1}{landscape}{% + \@seascapefalse + \if@landscape\else + \setlength{\@tempdima}{\paperwidth}% + \setlength{\paperwidth}{\paperheight}% + \setlength{\paperheight}{\@tempdima}% + \@landscapetrue + \fi + \FamilyKeyStateProcessed + }{% + \ifstr{#1}{portrait}{% + \if@landscape + \setlength{\@tempdima}{\paperwidth}% + \setlength{\paperwidth}{\paperheight}% + \setlength{\paperheight}{\@tempdima}% + \@landscapefalse + \fi + \FamilyKeyStateProcessed + }{% + \ifstr{#1}{letter}{% + \if@landscape + \setlength\paperheight{8.5in}% + \setlength\paperwidth {11in}% + \else + \setlength\paperheight{11in}% + \setlength\paperwidth {8.5in}% + \fi + \FamilyKeyStateProcessed + }{% + \ifstr{#1}{legal}{% + \if@landscape + \setlength\paperheight{8.5in}% + \setlength\paperwidth {14in}% + \else + \setlength\paperheight{14in}% + \setlength\paperwidth {8.5in}% + \fi + \FamilyKeyStateProcessed + }{% + \ifstr{#1}{executive}{% + \if@landscape + \setlength\paperheight{7.25in}% + \setlength\paperwidth {10.5in}% + \else + \setlength\paperheight{10.5in}% + \setlength\paperwidth {7.25in}% + \fi + \FamilyKeyStateProcessed + }{% + \iso@paper{#1}% + \if@tempswa + \FamilyKeyStateProcessed + \else + \expandafter\maybe@pair#1::\@nil + \if@tempswa + \ifnum \scr@ta@compatibility<\@nameuse{scr@v@3.01b}\relax + \PackageWarningNoLine{typearea}{% + You may have to exchange height and width!\MessageBreak + Until KOMA-Script version 3.01b the semantic\MessageBreak + of option `paper' was `paper=height:width'\MessageBreak + instead of `paper=width:height'.\MessageBreak + I've switched back to that old interpretation\MessageBreak + because of the given compatiblity settings}% + \setlength\paperheight{\@tempa}% + \setlength\paperwidth{\@tempb}% + \else + \setlength\paperwidth{\@tempa}% + \setlength\paperheight{\@tempb}% + \fi + \FamilyKeyStateProcessed + \else + \KOMA@unknown@keyval{paper}{#1}{% + `letter', `legal', `executive', `a', `b', + `c', `d',\MessageBreak + `:', `landscape' and `portrait'% + }% + \fi + \fi + }% + }% + }% + }% + }% + }% +} +% \end{macrocode} +% \begin{macro}{\if@seascape} +% \changes{v3.02c}{2009/02/12}{neu} +% \begin{macro}{\@seascapetrue} +% \changes{v3.02c}{2009/02/12}{neu} +% \begin{macro}{\@seascapefalse} +% \changes{v3.02c}{2009/02/12}{neu} +% In diesem Schalter wird nur gespeichert, ob Breitformat ggf. umgekehrt +% verwendet werden soll. Dies macht derzeit nur bei Verwendung von dvips einen +% Unterschied! +% \begin{macrocode} +\newif\if@seascape +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\if@landscape} +% \begin{macro}{\@landscapetrue} +% \begin{macro}{\@landscapefalse} +% In diesem Schalter wird gespeichert, ob Hoch- oder Breitformat +% verwendet wird. +% \begin{macrocode} +\newif\if@landscape +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\maybe@pair} +% \changes{v2.95}{2002/12/03}{neu (intern)} +% \changes{v2.97e}{2007/11/26}{funktioniert zum ersten Mal} +% Testet, ob der nachfolgende Parameter die Form +% "`\meta{erstes Argument}:\meta{zweites Argument}"' hat. +% Wenn ja, wird \cs{@tempa} mit dem ersten und \cs{@tempb} mit dem +% zweiten Argument definiert. +% \begin{macrocode} +\newcommand*{\maybe@pair}{} +\def\maybe@pair#1:#2:#3\@nil{% + \edef\@tempa{#1}\edef\@tempb{#2}% + \ifx\@tempa\@empty\@tempswafalse\else + \ifx\@tempb\@empty\@tempswafalse\else\@tempswatrue\fi + \fi +} +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsubsection{Geparste Optionen} +% +% Die Behandlung für \texttt{BCOR\emph{Wert}}, \texttt{DIV\emph{Wert}} und +% \texttt{a\emph{Wert}paper}, \texttt{b\emph{Wert}paper}, +% \texttt{c\emph{Wert}paper} sowie \texttt{d\emph{Wert}paper} und +% \texttt{\emph{Wert}headlines}. +% \changes{v2.97c}{2007/09/12}{\cs{lco@test} bei den geparsten Optionen +% eingefügt} +% \begin{macrocode} +\DeclareOption*{% +% \lco@test + \x@paper} +% \end{macrocode} +% +% \iffalse +% Der Rest gehört nicht mehr zu den Optionen. +% +%<*body> +%<*package> +% \fi +% +% +% \subsubsection{Konfigurationsdatei} +% +% \changes{v2.0e}{1994/10/28}{Konfigurationsdatei +% \texttt{typearea.cfg} zur Definition weiterer Optionen +% bzw. Papiergrößen} +% Es ist möglich in einer Datei \texttt{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} +% +% +% \subsubsection{Standardoptionen} +% +% Als Standardoptionen sind \texttt{headinclude=false}, +% \texttt{footinclude=false} und die Papiergröße \texttt{paper=A4} +% eingestellt. Diese Optionen können selbstverständlich durch +% explizite Angaben überladen werden. +% \changes{v2.3h}{1995/01/19}{\cs{relax} nach \cs{ProcessOptions} +% ergänzt.} +% \changes{v2.96}{2006/08/18}{Optionen werden in Reihenfolge der Angabe statt +% in Reihenfolge der Deklaration abgearbeitet.} +% \changes{v2.97c}{2007/04/19}{Verwendung von \cs{KOMAExecuteOptions} an +% Stelle von \cs{KOMAoptions} und \cs{KOMAProcessOptions} an Stelle von +% \cs{ProcessOptions}} +% \changes{v2.97c}{2007/04/19}{Optionen, die der Voreinstellung ohnehin +% entsprechen, werden nicht explizit gesetzt} +% \changes{v2.97c}{2007/07/18}{Option \texttt{twoside} wird explizit passend +% gesetzt} +% \changes{v3.12}{2013/11/11}{die voreingestellte Papiergröße kann via +% \cs{defaultpagesize} auch in \texttt{typearea.cfg} verändert werden} +% \begin{macro}{\defaultpapersize} +% \changes{v3.12}{2013/11/11}{Neue Anweisung} +% \begin{macrocode} +\providecommand*{\defaultpapersize}{A4} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\KOMAExecuteOptions{paper=\defaultpapersize} +\if@twoside + \if@semitwoside + \KOMAExecuteOptions{twoside=semi} + \else + \KOMAExecuteOptions{twoside} + \fi +\else + \KOMAExecuteOptions{twoside=false} +\fi +\KOMAProcessOptions\relax +% \end{macrocode} +% +% +% \subsection{Schriftgrößenabhängige Voreinstellungen für \emph{DIV}} +% +% \begin{macro}{\ta@divlist} +% \changes{v2.0e}{1994/10/28}{neu (intern)} +% \changes{v2.6}{2000/01/04}{die Liste umfasst nun Werte ab 1\,pt +% statt ab 10\,pt.} +% \begin{macro}{\ta@divlistelse} +% \changes{v2.6}{2000/01/04}{neu (intern)} +% An dieser Stelle muss noch für die Standardeinstellung der +% \textit{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} +% +% +% Das waren die Optionen für das Paket oder im ersten Durchlauf der +% Klassen. +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Laden des Pakets} +% +% Das Folgende wird nur in einem zweiten Durchlauf in die Klassen +% eingefügt und sorgt für das Laden des \textsf{typearea} Pakets. +% \begin{macrocode} +%<*class> +% \end{macrocode} +% Vor dem Laden müssen noch diverse Makros zurückgesetzt werden, damit +% sie überhaupt in \textsf{typearea} definiert werden können: +% \begin{macrocode} +\let\@BCOR =\relax +\let\@@BCOR =\relax +\let\@DIV =\relax +\let\@@DIV =\relax +\let\@headlines =\relax +\let\@@headlines =\relax +\let\x@paper =\relax +\let\x@@paper =\relax +\let\scr@pti@nerr@r =\relax +% \end{macrocode} +% Jetzt kann geladen werden: +% \changes{v2.95}{2002/06/22}{Beim Laden von \textsf{typearea} wird +% \cs{KOMAScriptVersion} verwendet} +% Die Überprüfung auf die korrekte \KOMAScript-Version geschieht in +% dem Paket (siehe dazu \texttt{scrkernel-version.dtx}). +% \begin{macrocode} +\RequirePackage{typearea}[\KOMAScriptVersion] +% \end{macrocode} +% Auf diese Art ist sichergestellt, dass immer die Version von +% \textsf{typearea} verlangt wird, die zur gleichen Release wie +% die Klassen gehört. Wobei die Warnungen je nach Zusammentreffen der +% Versionen unterschiedlich ausfallen können. +% +% Für die Kompatibilität mit den Standardklassen muss jetzt ggf. noch der +% Seitenspiegel angepasst werden. Dies geschieht aber nur, wenn ein +% vordefinierter Wert verwendet wurde: +% \begin{macrocode} +%<*!letter> +\if@scr@emulatestandardclasses + \ifnum\@lastdiv=\z@ + \setlength{\textwidth}{\dimexpr \paperwidth-2in\relax} + \ifdim \f@size\p@<10.5\p@ + \setlength{\@tempdimb}{345\p@} + \else\ifdim \f@size\p@<11.5\p@ + \setlength{\@tempdimb}{360\p@} + \else + \setlength{\@tempdimb}{390\p@} + \fi + \fi + \if@twocolumn + \ifdim\@textwidth>2\@tempdimb\relax + \setlength{\textwidth}{2\@tempdimb} + \fi + \else + \ifdim\textwidth>\@tempdimb + \setlength{\textwidth}{\@tempdimb} + \fi + \fi + \@settopoint\textwidth + \setlength{\@tempdima}{\dimexpr \paperheight-3.5in\relax} + \divide\@tempdima\baselineskip + \@tempcnta=\@tempdima + \setlength{\textheight}{\@tempcnta\baselineskip} + \addtolength{\textheight}{\topskip} + \edef\reserved@a{% + \noexpand\@areasetadvancedtrue + \noexpand\areaset[current]{\noexpand\textwidth}{\noexpand\textheight}% + \if@areasetadvanced\else\noexpand\@areasetadvancedfalse\fi + }\reserved@a + \fi +\fi +% +% \end{macrocode} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% Ab hier ist alles nur noch für das Paket. +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \subsection{Einige interne Register} +% +% \begin{Length}{\ta@hblk} +% \begin{Length}{\ta@vblk} +% \begin{Length}{\ta@temp} +% Diese Größsenparameter und werden intern für verschiedene Befehle +% benötigt. (Die Zähler \cs{ta@bcor} und \cs{ta@div} werden bereits +% bei der Optionenauswertung benötigt 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 Satzspiegels} +% +% \begin{macro}{\typearea} +% Die Berechnung des Satzspiegels, wie sie in der Anleitung +% beschrieben ist, findet mit Hilfe des Befehls \cs{typearea} statt, +% der hier definiert wird. Die Berechnung selbst benötigt mehreren +% Stufen. +% +% \begin{macro}{\@typearea} +% \changes{v2.4n}{1997/05/28}{eigentliche Satzspiegelberechnung in +% \cs{@typearea} ausgegliedert} +% \changes{v2.95}{2002/08/20}{\cs{selectfont} eingefügt} +% Die eigentliche Satzspiegelberechnung geschieht über das Hilfsmakro +% \cs{@typearea}, das dann auch von \cs{typearea} genutzt wird. Dieses +% Hilfsmakro benötigt keine Parameter, da diese bereits zuvor von +% \cs{typearea} in die entsprechenden Variablen geschrieben wurden. +% \begin{macrocode} +\newcommand*\@typearea{% +% \end{macrocode} +% Bevor irgend etwas anderes gemacht wird, sogen wir dafür, dass die +% gewählte Schrift auch gesetzt wird. Dies ist notwendig, falls jemand +% vor \cs{typearea} einen Befehl wie \cs{linespread} verwendet. +% \begin{macrocode} + \selectfont +% \end{macrocode} +% Zunächst werden die horizontalen Maße berechnet. Dazu wird als +% erstes die Größe einer horizontalen Längeneinheit (\emph{HLE}) +% ermittelt: +% \begin{macrocode} + \ta@hblk=\paperwidth + \advance \ta@hblk by-\ta@bcor + \divide\ta@hblk by\ta@div +% \end{macrocode} +% Die Größe des Bereichs für die Randnotizen ist ebenfalls von der +% Streifenbreite abhängig. +% \changes{v2.8q}{2002/03/28}{Textbreite berücksichtigt Option +% \texttt{mpinclude}} +% \begin{macrocode} + \if@mincl + \marginparwidth=\ta@hblk + \advance\marginparwidth by-\marginparsep + \else + \if@twoside + \if@semitwoside + \marginparwidth=\ta@hblk + \else + \marginparwidth=1.5\ta@hblk + \fi + \else + \marginparwidth=\ta@hblk + \fi + \fi +% \end{macrocode} +% Der linke und rechte Rand wird relativ zur benutzbaren Seitenbreite +% berechnet. Dabei muss auch der Rand berücksichtigt werden, der vom +% Druckertreiber standardmäßig hinzugefügt wird. Außerdem ist der +% Rand abhängig davon, ob es sich um ein einseitiges oder beidseitiges +% Layout handelt. Bei Option \texttt{mpinclude} sind im beidseitigen +% Satz zusätzlich die Randnotizen zu beachten. +% \begin{macrocode} + \oddsidemargin=-1in + \evensidemargin=-1in + \if@twoside + \if@semitwoside + \advance\oddsidemargin by1.5\ta@hblk + \advance\oddsidemargin by\ta@bcor +% \end{macrocode} +% \changes{v3.12}{2013/10/15}{use alternating \texttt{BCOR} with +% \texttt{twoside!=semi}} +% Wenn \texttt{twoside=semi} verwendet wird, wird der Binderand ab +% \KOMAScript~3.12 dem inneren Rand zugeschlagen. Bei Kompatibilität zu +% älteren Versionen wird hingegen immer der linke Rand verwendet. +% \begin{macrocode} + \ifnum \scr@compatibility<\@nameuse{scr@v@3.12}\relax + \evensidemargin=\oddsidemargin + \else + \advance\evensidemargin by1.5\ta@hblk + \fi + \else + \advance\oddsidemargin by\ta@hblk + \advance\oddsidemargin by\ta@bcor + \advance\evensidemargin by2\ta@hblk + \if@mincl + \advance\evensidemargin by\marginparwidth + \advance\evensidemargin by\marginparsep + \fi + \fi + \else + \advance\oddsidemargin by1.5\ta@hblk + \advance\oddsidemargin by\ta@bcor + \evensidemargin=\oddsidemargin + \fi +% \end{macrocode} +% Der Rest steht nun für den Textbereich zur Verfügung: +% \begin{macrocode} + \textwidth=\paperwidth + \advance\textwidth by-\ta@bcor + \advance\textwidth by-3\ta@hblk +% \end{macrocode} +% Falls die Randnotizen für die Satzspiegelberechnung zum Textbereich +% gehören, müssen sie zusammen mit ihrem Abstand vom Text nun von +% diesem abgezogen werden. Es wird dabei davon ausgegangen, dass die +% Randnotizen immer außen gesetzt werden. Sollte der Textbereich für +% 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 + }% + \@tempskipa=\marginparwidth + \marginparwidth=\textwidth + \textwidth=\@tempskipa + \fi + \fi +% \end{macrocode} +% Danach folgen die vertikalen Maße. Auch dafür wird zunächst die Höhe +% eines Streifens benötigt. +% \begin{macrocode} + \ta@vblk=\paperheight + \divide\ta@vblk by\ta@div +% \end{macrocode} +% Davon ausgehend kann der obere Rand berechnet werden, wobei zu +% berücksichtigen ist, dass {\TeX} diesen selbständig um ein Inch +% vergrößert. +% \begin{macrocode} + \topmargin=-1in + \advance\topmargin by\ta@vblk +% \end{macrocode} +% Außerdem ist zu berücksichtigen, ob der Kopf zum Textbereich oder +% zum Rand gehört. +% \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öhe die +% Ränder abzuziehen und es ist ebenfalls zu berücksichtigen, ob Kopf- +% und Fuß zu den Rändern oder zum Textbereich selbst gezählt 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, dass die Größse des +% Textbereichs nicht zu einer vertikalen Aufweitung führt. +% \changes{v2.96}{2006/09/12}{\cs{topskip} wird gesetzt} +% \changes{v2.97c}{2007/07/04}{\cs{maxdepth} wird gesetzt} +% \begin{macrocode} + \scr@ifundefinedorrelax{@ptsize}{% + \topskip=\f@size\p@ + }{% + \topskip=\@ptsize\p@ + \advance\topskip by 10\p@ + }% + \maxdepth=.5\topskip + \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ötigt. Es dividiert den +% ersten Parameter durch den zweiten und liefert das gerundete +% Ergebnis in \cs{ta@div} zurück. Für die Berechnung werden +% \cs{@tempdima} und \cs{@tempdimb} verwendet. +% \begin{macrocode} +\newcommand*\ta@modiv[2]{ + \setlength{\@tempdima}{#1} + \divide\@tempdima by#2 + \ta@div\@tempdima + \ifnum \ta@div<4 + \ta@div=4 + \else + \setlength{\@tempdimb}{#1}% + \divide\@tempdimb by\ta@div + \addtolength{\@tempdima}{\@tempdima}% + \addtolength{\@tempdima}{-\@tempdimb}% + \advance\ta@div by\@ne + \setlength{\@tempdimb}{#1}% + \divide\@tempdimb by\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 \cs{ta@temp} auf den Wert einer +% optimalen Zeilenbreite in der aktuellen Schrift. Voraussetzung für +% diese Berechnung ist, dass 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ßbuchstaben. +% \changes{v2.7i}{2001/05/17}{Berechnung ist robuster gegen +% arithmetischen Überlauf bei sehr großen Schriften} +% \changes{v2.8q}{2002/03/06}{\cs{normalfont} \cs{normalsize} +% hinzugefügt} +% \changes{v2.95a}{2006/07/20}{Berechnung für große Schriften korrigiert} +% \begin{macrocode} +\newcommand*\ta@temp@goodwidth{% + \settowidth{\ta@temp}{\normalfont\normalsize + abcdefghijklmnopqrstuvwxyz}% + \ifdim\ta@temp >200\p@ + \setlength{\ta@temp}{2.53846\ta@temp}% + \settowidth{\@tempdima}{\normalfont\normalsize + ABCDEFGHIJKLMNOPQRSTUVWXYZ}% + \setlength{\@tempdima}{.11538\@tempdima}% + \addtolength{\ta@temp}{\@tempdima}% + \else + \multiply\ta@temp by66 + \settowidth{\@tempdima}{\normalfont\normalsize + ABCDEFGHIJKLMNOPQRSTUVWXYZ}% + \multiply\@tempdima by3 + \addtolength{\ta@temp}{\@tempdima}% + \divide\ta@temp by26 + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AfterCalculatingTypearea} +% \changes{v2.96a}{2006/11/29}{neu} +% Neuerdings besteht die Möglichkeit, auf Benutzerebene das Verhalten von +% \cs{typearea} zu beeinflussen. In der Sternvariante wird dabei lokal +% gearbeitet. +% \begin{macrocode} +\newcommand*{\AfterCalculatingTypearea}{% + \@ifstar \l@addto@macro \g@addto@macro \@typearea@end +} +% \end{macrocode} +% \begin{macro}{\@typearea@end} +% \changes{v2.96a}{2006/11/29}{wird wieder immer aber mit neuer Bedeutung +% definiert} +% Das Makro \cs{@typearea@end} dient als Hook, um am Ende von \cs{typearea} +% noch irgendwelche Änderungen vornehmen zu können. Dies geschieht ggf. noch +% vor der Aktivierung der Einstellungen innerhalb eines Dokuments. +% \begin{macrocode} +\newcommand*{\@typearea@end}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\AfterSettingArea} +% \changes{v3.11}{2012/04/17}{new} +% The user may influence the result of \cs{areaset}. The star version works +% local while the non-star version is global. +% \begin{macrocode} +\newcommand*{\AfterSettingArea}{% + \@ifstar \l@addto@macro \g@addto@macro \@areaset@end +} +% \end{macrocode} +% \begin{macro}{\@areaset@end} +% \changes{v3.11}{2012/04/17}{new} +% Macro \cs{@areaset@end} is a hook to make it possible to add some +% instructions to the end of the \cs{areaset} command. This will be executed +% before the activation of the settings inside a document. +% \begin{macrocode} +\newcommand*{\@areaset@end}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\activateareas} +% \changes{v2.96a}{Neuer Name für alte Anweisung} +% Dieses Makro wird verwendet, um mit einem gewaltigen Hack die Änderung des +% Satzspiegels innerhalb eines Dokuments zu ermöglichen. Es stellt selbst +% sicher, dass es nur innerhalb des Dokuments ausgeführt wird. +% \begin{macrocode} +\newcommand*{\activateareas}{% +% \end{macrocode} +% Als erstes wird getestet, ob wir überhaupt innerhalb des Dokuments sind und +% nur dann wird etwas getan. +% \begin{macrocode} + \if@atdocument +% \end{macrocode} +% Wenn dem so ist, wird jedoch eine Warnung ausgegeben, weil es wirklich sehr +% unsauber ist, so zu verfahren. Das ganze ist absolut abhängig 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} +% Dann können endlich die Dimensionen, die z.\,B. von der Ausgaberoutine +% benötigt werden, neu berechnet werden. +% \begin{macrocode} + \@colht=\textheight + \@colroom=\textheight + \vsize=\textheight + \columnwidth=\textwidth + \if@twocolumn + \advance\columnwidth by-\columnsep + \divide\columnwidth by\tw@ + \hsize=\columnwidth + \@firstcolumntrue + \fi + \hsize=\columnwidth + \linewidth\hsize + \scr@ifundefinedorrelax{@pagesizelast}{}{% + \KOMAoptions{pagesize=\@pagesizelast}% + }% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\storeareas} +% \changes{v3.10}{2011/09/13}{neue Anweisung}% +% Die aktuellen Einstellungen können in einem Makro gespeichert +% werden. Dieses Makro kann anschließend genutzt werden, um die +% Einstellungen wieder her zu stellen. +% \begin{macro}{\scr@grouplevel@test} +% \changes{v3.10}{2011/09/13}{neu (intern)} +% \begin{macrocode} +\newcommand*{\scr@grouplevel@test}[1]{% + \ifcase\currentgrouptype\else + \PackageWarning{typearea}{% + \string#1\space used at group level + \the\currentgrouplevel.\MessageBreak + Using \string#1\space inside any group, e.g.\MessageBreak + environments, math mode, boxes, etc. may result in\MessageBreak + many type setting problems.\MessageBreak + You should move the command \string#1\MessageBreak + outside all groups% + }% + \fi +} +\newcommand*{\storeareas}[1]{% + \edef\reserved@a{% + \noexpand\newcommand*{\unexpanded{#1}}{% + \noexpand\scr@grouplevel@test\unexpanded{#1}% + \noexpand\paperheight=\the\paperheight\space + \noexpand\paperwidth=\the\paperwidth\space + \noexpand\topmargin=\the\topmargin\space + \noexpand\headheight=\the\headheight\space + \noexpand\headsep=\the\headsep\space + \noexpand\textheight=\the\textheight\space + \noexpand\vsize=\the\vsize\space + \noexpand\footskip=\the\footskip\space + \noexpand\@colht=\the\@colht\space + \noexpand\@colroom=\the\@colroom\space + \noexpand\textwidth=\the\textwidth\space + \noexpand\columnwidth=\the\columnwidth\space + \noexpand\hsize=\the\hsize\space + \noexpand\oddsidemargin=\the\oddsidemargin\space + \noexpand\evensidemargin=\if@twoside + \the\evensidemargin + \else + \the\oddsidemargin + \fi\space + \noexpand\linewidth=\the\linewidth\space + \noexpand\maxdepth=\the\maxdepth\space + \scr@ifundefinedorrelax{@pagesizelast}{}{% + \noexpand\KOMAoptions{pagesize=\@pagesizelast}}% + \noexpand\ta@div=\the\ta@div\space + \noexpand\ta@bcor=\the\ta@bcor\space + \noexpand\def\noexpand\@lastdiv{\@lastdiv}% + \noexpand\marginparsep=\the\marginparsep\space + \noexpand\marginparwidth=\the\marginparwidth\space + }% + }% + \reserved@a +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ta@divfor} +% Der Standardseitenspiegel ist abhängig von den mit \cs{SetDIVList} +% vorgegebenen Einstellungen. Dazu muss aus einer eventuell +% vorhandenen inneren Liste \cs{ta@divlist} der von der Schriftgröße +% abhängige \textit{DIV}-Wert ausgelesen werden. Dies geschieht mit +% Hilfe des \cs{ta@divfor}-Befehls, der sich wiederum einiger interner +% Befehle zur Listenbearbeitung bedient. +% \changes{v2.4g}{1996/11/04}{Satzspiegel wird nicht mehr direkt +% berechnet, sondern nur der \textit{DIV}-Wert aus der +% Defaultliste ermittelt} +% \changes{v2.6}{2000/01/04}{Berücksichtigung der erweiterten +% Liste} +% \changes{v2.8q}{2002/03/28}{Berücksichtigung der Option +% `mpinclude'} +% \changes{v2.96}{2006/08/11}{Schriftgröße muss nicht in ganzen pt sein} +% \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=\tw@ + \else + \xdef\@tempa{\ta@divlist{}}% + \@tempdima=#1pt + \addtolength{\@tempdima}{.5\p@}% + \divide\@tempdima by\p@ + \setlength{\@tempdimb}{\@tempdima}% + \multiply\@tempdimb by\p@ + \ifdim \@tempdimb=#1pt + \ta@div=#1\relax + \@whilenum \ta@div >-9 \do {% + \ifx\@tempa\empty + \else \xdef\@tempa{\expandafter\@cdr\@tempa\@nil}\fi + \advance\ta@div by-1 + }% + \else + \let\@tempa\empty + \fi + \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} + \setlength{\@tempdima}{#1\p@}% + \addtolength{\@tempdima}{10\p@}% + \PackageWarningNoLine{typearea}{% + DIV for \the\@tempdima\space 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.4g}{1996/11/04}{überflüssigen Kommentar gelöscht} +% \changes{v2.7g}{2001/04/17}{die neuen Werte \texttt{current}, +% \texttt{default}, \texttt{calc}, \texttt{classic} werden +% verstanden} +% \changes{v2.8q}{2001/11/06}{der Wert \texttt{last} wird +% verstanden} +% \changes{v2.96}{2006/08/21}{Warnung, wenn \cs{typearea} innerhalb einer +% Gruppe verwendet wird} +% \changes{v3.10}{2011/09/13}{Verwendung von \cs{scr@grouplevel@test}} +% \changes{v3.12}{2013/03/26}{konfigurierbare Höhe des Fußes} +% +% Die symbolischen Werte für das obligatorische Argument von +% \cs{typearea} haben folgende Bedeutung: +% \begin{center}\begin{tabular}{lll} +% Symbol & Wert & Bedeutung \\\hline\\[-2ex] +% \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 \\ +% \texttt{areaset} & --- & Satzspiegel beibehalten nur neu anordnen \\ +% \end{tabular}\end{center} +% Das optionale Argument kennt hingegen nur den symbolischen Wert +% \texttt{current}. +% \begin{macrocode} +\newcommand*\typearea[2][\z@]{% + \scr@grouplevel@test\typearea + \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 + \ifx\csname @tempa\endcsname\relax + \def\@tempa{current}% + \fi + \fi + \def\@tempb{areaset}\ifx\@tempa\@tempb + \areaset[current]{\textwidth}{\textheight}% + \else + \def\@tempb{current}\ifx\@tempa\@tempb\else + \def\@tempb{default}\ifx\@tempa\@tempb\ta@div=\z@ \else + \def\@tempb{calc}\ifx\@tempa\@tempb\ta@div=\tw@ \else + \def\@tempb{classic}\ifx\@tempa\@tempb\ta@div=\thr@@ \else + \ta@div=\@tempa + \fi + \fi + \fi + \fi + \edef\@lastdiv{\the\ta@div}% +% \end{macrocode} +% Bevor nun irgendeine Berechnung durchgeführt wird, muss ggf. eine +% neue Seite begonnen werden. Außerdem wird sichergestellt, dass die aktuelle +% Schriftgröße die Grundschriftgröße ist und auch mit dem aktuellen +% Durchschuss gerechnet wird. +% \changes{v2.95a}{2006/07/20}{Grundschriftgröße einstellen} +% \begin{macrocode} + \if@atdocument\newpage\fi + \normalsize +% \end{macrocode} +% Nun muss festgestellt werden, ob die Höhe des Kopfbereichs bereits +% vorgegeben ist, oder ob diese selbst berechnet werden soll. Im Falle +% der Berechnung wird als Höhe für den Kopf das 1,25-Fache des +% Grundzeilenabstandes gewählt. Damit sollte auch noch genug Raum für die +% optionale Trennlinie vorhanden sein. +% \changes{v2.4n}{1997/05/28}{berechnete Kopfhöhe vom +% Grundzeilenabstand abhängig} +% \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 eingepasst wird. Der Abstand +% soll aber auch nicht zu groß, werden. Optimal ist angeblich ein Wert +% von einer Zeile. Dies führt jedoch zu einem klaren Konflikt bei +% unterstrichenen Kopfzeilen. Deshalb wird ein Kompromiss gebildet. +% \begin{macrocode} + \headsep=1.5\baselineskip +% \end{macrocode} +% Für den Fuß muss ähnlich verfahren werden. Dabei muss aber nicht nur +% ggf. \cs{footheight}, sondern auch \cs{footskip} angepasst werden. +% \begin{macrocode} + \@ifundefined{footheight}{% + \newlength\footheight + }{}% + \@ifundefined{ta@fh}{% + \footheight=1.25\baselineskip + }{% + \footheight=\ta@fh + }% + \footskip=\dimexpr\footheight+2.25\baselineskip +% \end{macrocode} +% Es folgen die restlichen von \textit{DIV} und \textit{BCOR} +% unabhängigen Werte. +% \begin{macrocode} + \marginparsep=1cc + \marginparpush=0.45\baselineskip +% \end{macrocode} +% \changes{v2.4g}{1996/11/04}{\textit{DIV}=0 versucht den Wert aus +% der Default-Liste zu verwenden} +% Vor der eigentlichen Berechnung des Satzspiegels wird nun zunächst +% überprüft, ob der übergebene \textit{DIV}-Wert 0 ist. Da Werte von 0 +% bis 3 nicht möglich sind (Minimum sind drei Teile Rand und ein Teil +% Text), wird der Wert 0 dafür 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\p@ + \advance\@tempdima by.5pt + \ta@div=\@tempdima + \divide\ta@div by65536 + \advance\ta@div by-10 + \xdef\@ptsize{\the\ta@div}% + \PackageWarningNoLine{typearea}{% + \string\@ptsize\space not defined!\MessageBreak + Fontsize is \f@size pt.\MessageBreak + Defining \string\@ptsize\space to \@ptsize% + }% + }{}% + \ta@divfor{\@ptsize}% + \fi +% \end{macrocode} +% \changes{v2.4n}{1997/05/28}{optionale, klassische Kreisberechnung +% für \texttt{DIV}} +% Als zweiter Sonderfall wird für einen \textit{DIV}-Wert von 3 die +% \emph{Kreisberechnung} durchgeführt. Dabei wird versucht, den +% Textbereich genau so hoch zu wählen, wie das Papier breit ist. Ein +% solches Verhältnis 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ötigten Platzes, ist zu +% beachten, ob Kopf und Fuß zum Textbereich oder zu den Rändern +% gehören. +% \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ötigt, 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öhe +% 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öhe +% \begin{macrocode} + \divide\ta@temp by3 +% \end{macrocode} +% und schließlich erneut mit Hilfe der Papierhöhe der genaue +% \textit{DIV}-Wert berechnet. +% \begin{macrocode} + \ta@modiv{\paperheight}{\ta@temp}% + \fi +% \end{macrocode} +% An dieser Stelle muss \texttt{mpinclude} nicht berücksichtigt +% werden, da nicht die Breite des Textbereichs, sondern die Breite des +% Papiers als Kriterium verwendet wird. +% \begin{macrocode} + \fi +% \end{macrocode} +% Wurde bisher kein Wert gefunden oder ein \textit{DIV}-Wert von 1 bis +% 2 angegeben, so wird nun ein möglichst optimaler \textit{DIV}-Wert +% ermittelt. +% \changes{v2.4n}{1997/05/28}{optimale \textit{DIV}-Berechnung +% verbessert} +% \begin{macrocode} + \ifnum\ta@div <4 + \typeout{DIV calculation for typearea with good linewidth.}% +% \end{macrocode} +% Zunächst könnte 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üllung verwendet: +% \begin{macrocode} + \ta@temp@goodwidth +% \end{macrocode} +% Im Zweispaltenmodus besteht jede Zeile aus zwei solchen Spalten +% zuzüglich dem Spaltenabstand: +% \changes{v2.8q}{2001/12/13}{\texttt{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üheren Versionen erfolgte nun eine iterative Annäherung an den +% optimalen \textit{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ächst wie oben die +% Größe der horizontalen Ränder 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 by3 +% \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@ + \setlength{\ta@hblk}{5mm}% + \fi +% \end{macrocode} +% Nun kann wieder der \textit{DIV}-Wert ermittelt werden. +% \changes{v2.8q}{2002/03/28}{Berüchsichtigung von Option +% \texttt{mpinclude} bei der \textit{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ängeneinheiten, die für 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ängeneinheiten, sondern ein konkreter Wert für die Breite der +% Randnotizen verwendet wird. +% \begin{macrocode} + \if@mincl + \setlength{\ta@temp}{.75\ta@hblk}% + \else + \setlength{\ta@temp}{\ta@hblk}% + \fi + \ta@modiv{\paperwidth}{\ta@temp}% +% \end{macrocode} +% Als Erschwernis kommt jetzt jedoch hinzu, dass nun zwar der +% \textit{DIV}-Wert für die Breite optimal ist, jedoch u.\,U. zu einer +% zu großen Höhe führt. Deshalb wird zunächst ein Satzspiegel für +% diesen \textit{DIV}-Wert berechnet. +% \begin{macrocode} + \@typearea +% \end{macrocode} +% Nun wird überprüft, ob die vertikalen Ausmaße 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 1\,in zu berücksichtigen 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ür diesen ein neuer +% \textit{DIV}-Wert ermittelt. Dabei muss ebenfalls berücksichtigt +% werden, ob Kopf- und Fußbereich zum Text oder zum Rand gehören. +% \changes{v2.5b}{1997/06/29}{bei der Mindestrandbetrachtung +% \texttt{headinclude} und \texttt{footinclude} berücksichtigen} +% \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 + \ta@modiv{\paperheight}{\ta@temp}% + \fi +% \end{macrocode} +% Dieser Sonderfall ist somit abschließend behandelt. +% \begin{macrocode} + \fi +% \end{macrocode} +% Damit steht jetzt also der \textit{DIV}-Wert fest, und die +% eigentliche Berechnung kann folgen. +% \begin{macrocode} + \@typearea +% \end{macrocode} +% \changes{v2.0e}{1994/10/28}{Seitenaufteilung wird in die log-Datei +% geschrieben} +% \changes{v2.4i}{1996/11/11}{Seitenaufteilung wird etwas später in +% die log-Datei geschrieben} +% \changes{v2.4i}{1996/11/11}{am Ende von \cs{typearea} wird noch +% \cs{@typeare@end} ausgeführt} +% \changes{v2.4j}{1996/12/04}{bei der Seitenaufteilung wird +% \cs{textheight} nicht mehr doppelt, dafür zusätzlich +% \cs{baselineskip} ausgegeben} +% \changes{v2.5}{1997/06/17}{"`arithmetic overflow"' bei landscape +% behoben} +% \changes{v2.95}{2004/01/30}{Warnung im Zweispaltenmodus korrigiert} +% \changes{v3.00}{2008/10/08}{Layout-Infos werden per \cs{ta@layoutinfo} +% in die \texttt{log}-Datei geschrieben} +% \changes{v3.01b}{2008/12/09}{Warnungen vor ungünstigen Einstellungen +% geändert} +% Zum Schluss soll die Seitenaufteilung noch in die \texttt{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 by100 + \divide\ta@temp by\@tempdima + \@tempcnta=\ta@temp + \ifnum\@tempcnta <5 + \ifnum\@tempcnta >-5 + \@tempcnta=0 + \else + \advance\@tempcnta by4 + \fi + \else + \advance\@tempcnta by-4 + \fi + \ifnum\@tempcnta <-15 + \@tempcnta=-\@tempcnta + \PackageWarningNoLine{typearea}{% + Bad type area settings!\MessageBreak + The detected line width is about + \the\@tempcnta\@percentchar\MessageBreak + larger than the heuristically detected line width.\MessageBreak + You should e.g. decrease DIV, increase fontsize\MessageBreak + or change papersize% + }% + \@tempcnta=-\@tempcnta + \else + \ifnum\@tempcnta>15 + \PackageWarningNoLine{typearea}{% + Maybe no optimal type area settings!\MessageBreak + The maximum limit of line width is about + \the\@tempcnta\@percentchar\MessageBreak + larger than the heuristically detected line width.\MessageBreak + You may e.g. increase DIV, decrease fontsize\MessageBreak + or change the papersize% + } + \fi\fi + \ifnum\ta@div <6 + \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 e.g. increase DIV, increase fontsize or\MessageBreak + change papersize% + } + \fi + \ta@layoutinfo{\number\ta@div}{\the\@tempcnta}% + \@typearea@end + \activateareas + \ifdim \dimexpr 1in+\topmargin + +\headheight+\headsep + +\textheight + +\footskip+\dp\strutbox\relax + >\paperheight + \PackageWarningNoLine{typearea}{% + page content and margins higher than paper.\MessageBreak + This may result in page footer out of paper.\MessageBreak + You should decrease DIV, decrease foot height,\MessageBreak + or include footer into type area% + }% + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ta@layoutinfo} +% \changes{v3.00}{2008/10/08}{neu (intern)} +% Schreibt die Layout-Information in die \texttt{log}-Datei. Dabei ist das +% erste Argument die Ausgabe für den DIV-Wert und das zweite Argument die +% DIV-Abweichung. Letztere wird nur ausgegeben, wenn das Argument nicht leer +% und nicht \cs{relax} ist. +% \begin{macrocode} +\newcommand*{\ta@layoutinfo}[2]{% + \PackageInfo{typearea}{% + These are the values describing the layout:\MessageBreak + DIV\space\space=\space#1\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 + \ifx\relax#2\relax\else + \space DIV departure\space\space\space=% + \space#2\@percentchar\MessageBreak + \fi + \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 + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\recalctypearea} +% \changes{v2.95}{2002/12/04}{Neu} +% Dieses Anweisung dient der Neuberechnung des Satzspiegels mit den +% zuletzt eingestellten Werten. Dieser Befehl existiert erst, nachdem +% das Paket geladen wurde. +% \begin{macrocode} +\AtEndOfPackage{\newcommand*{\recalctypearea}{\typearea[current]{last}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\areaset} +% \changes{v2.1b}{1994/12/31}{\cs{headheight} von \cs{@ptsize} +% abhängig gemacht} +% \changes{v2.6}{2000/01/04}{\cs{headheight} von \cs{f@size} statt +% von \cs{@ptsize} abhängig gemacht} +% \changes{v2.7g}{2001/04/17}{auch hier existiert der symbolische +% Wert \texttt{current} für BCOR} +% \changes{v2.95}{2002/12/05}{am Ende von \cs{areaset} wird noch +% \cs{@typeare@end} ausgeführt} +% Zur Berechnung eines Satzspiegels mit fester Breite und Höhe dient +% der Befehl \cs{areaset}. Der Algorithmus ist ähnlich dem vorherigen +% Verfahren, aber einfacher. Auch hier soll ein Wechsel innerhalb des +% Dokuments ermöglicht werden. +% \begin{macrocode} +\newcommand*\areaset[3][\z@]{% + \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else + \setlength{\ta@bcor}{#1}% + \fi +% \end{macrocode} +% Bevor nun irgendeine Berechnung durchgeführt wird, muss ggf. eine +% neue Seite begonnen werden. +% \begin{macrocode} + \if@atdocument\newpage\fi +% \end{macrocode} +% Erst dann folgt die eigentlich Berechnung: +% \changes{v2.96}{2006/09/12}{\cs{topskip} wird gesetzt} +% \changes{v3.00}{2008/10/08}{Layout-Infos werden per \cs{ta@layoutinfo} +% in die \texttt{log}-Datei geschrieben} +% \begin{macrocode} + \setlength{\textwidth}{#2}% + \setlength{\textheight}{#3}% + \def\@lastdiv{areaset}% + \ta@hblk=\paperwidth + \advance\ta@hblk by-\ta@bcor + \advance\ta@hblk by-\textwidth +% \end{macrocode} +% \changes{v3.11}{2012/04/17}{advanced version with different margin widths}% +% With version 3.11 we will have an advanced version of \cs{areaset}. This +% version takes care to option \texttt{mpinclude}. +% \begin{macrocode} + \if@areasetadvanced + \if@mincl + \divide\ta@hblk by4 + \else + \divide\ta@hblk by3 + \fi + \else + \divide\ta@hblk by3 + \fi + \oddsidemargin=-1in + \evensidemargin=-1in + \if@twoside + \if@semitwoside + \advance\oddsidemargin by1.5\ta@hblk + \advance\oddsidemargin by\ta@bcor +% \end{macrocode} +% \changes{v3.12}{2013/10/15}{use alternating \texttt{BCOR} with +% \texttt{twoside!=semi}} +% Wenn \texttt{twoside=semi} verwendet wird, wird der Binderand ab +% \KOMAScript~3.12 dem inneren Rand zugeschlagen. Bei Kompatibilität zu +% älteren Versionen wird hingegen immer der linke Rand verwendet. +% \begin{macrocode} + \ifnum \scr@compatibility<\@nameuse{scr@v@3.12}\relax + \evensidemargin=\oddsidemargin + \else + \advance\evensidemargin by1.5\ta@hblk + \fi + \else + \advance\oddsidemargin by\ta@hblk + \advance\oddsidemargin by\ta@bcor + \advance\evensidemargin by2\ta@hblk + \fi + \else + \advance\oddsidemargin by1.5\ta@hblk + \advance\oddsidemargin by\ta@bcor + \evensidemargin\oddsidemargin + \fi + \scr@ifundefinedorrelax{@ptsize}{% + \topskip=\f@size\p@ + }{% + \topskip=\@ptsize\p@ + \advance\topskip by 10\p@ + }% +% \end{macrocode} +% \changes{v3.11}{2012/04/17}{advanced version with different margin widths}% +% With version 3.11 we will have an advanced version of \cs{areaset}. This +% version uses the head height algorithm of \cs{typearea}. +% \begin{macrocode} + \if@areasetadvanced + \normalsize + \@ifundefined{ta@hh}{% + \headheight=1.25\baselineskip + }{% + \headheight=\ta@hh + }% + \else + \headheight=15\p@ + \advance\headheight by\f@size\p@ + \advance\headheight by-10\p@ + \fi + \headsep=1.5\baselineskip +% \end{macrocode} +% \changes{v3.12}{2013/03/26}{changes for height of foot} +% \begin{macrocode} + \@ifundefined{footheight}{\newlength\footheight}{} + \if@areasetadvanced + \@ifundefined{ta@fh}{% + \footheight=1.25\baselineskip + \footskip=3.5\baselineskip + }{% + \footheight=\ta@fh + \footskip=\dimexpr \footheight+2.25\baselineskip\relax + }% + \else + \footheight=1.25\baselineskip + \footskip=3.5\baselineskip + \fi + \ta@vblk=\paperheight + \advance\ta@vblk by-\textheight + \divide\ta@vblk by3 + \if@hincl + \advance\textheight by-\headheight + \advance\textheight by-\headsep + \fi + \if@fincl + \advance\textheight by-\footskip + \fi + \topmargin=-1in + \advance\topmargin by\ta@vblk + \if@hincl \else + \advance\topmargin by-\headheight + \advance\topmargin by-\headsep + \fi + \if@twoside + \if@semitwoside + \marginparwidth=\ta@hblk + \else + \marginparwidth=1.5\ta@hblk + \fi + \else + \marginparwidth=\ta@hblk + \fi + \marginparsep=1cc +% \end{macrocode} +% \changes{v3.11}{2012/04/17}{advanced version with different +% \cs{marginparwidth} and unchanged \cs{marginparsep}}% +% With version 3.11 we will have an advanced version of \cs{areaset}. This +% version supports \texttt{mpinclude} option like \cs{typearea}. +% \begin{macrocode} + \if@areasetadvanced + \if@mincl + \marginparwidth=\ta@hblk + \if@twoside\if@semitwoside\else + \advance\evensidemargin by\marginparwidth + \fi\fi + \advance\marginparwidth by-\marginparsep + \fi + \fi + \marginparpush=0.45\baselineskip + \ta@layoutinfo{areaset}{}% +% \end{macrocode} +% \changes{v3.11}{2012/04/17}{usage of \cs{@areaset@end}}% +% Since version~3.11 we also support \cs{AfterSettingArea} analogous to +% \cs{AfterCalculatingTypearea}: +% \begin{macrocode} + \@areaset@end + \activateareas + \ifdim \dimexpr 1in+\topmargin + +\headheight+\headsep + +\textheight + +\footskip+\dp\strutbox\relax + >\paperheight + \PackageWarningNoLine{typearea}{% + page content and margins higher than paper.\MessageBreak + This may result in page footer out of paper.\MessageBreak + You should decrease DIV, decrease foot height,\MessageBreak + or decreate height of text area% + }% + \fi +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Berechnung des Standardsatzspiegels} +% +% \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 \textit{DIV}-Wert 0 für einen Wert aus der +% Default-Liste steht, bleibt die Kompatibilität zu älteren Versionen +% erhalten. Der aktuelle Wert für \textit{DIV} und \textit{BCOR} wurde +% über 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} +% +% \iffalse +% +% +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-typearea.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-variables.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-variables.dtx new file mode 100644 index 00000000000..763eee0a8df --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-variables.dtx @@ -0,0 +1,376 @@ +% \CheckSum{157} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-variables.dtx +% Copyright (c) Markus Kohm, 2008-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-variables.dtx +% Copyright (c) Markus Kohm, 2008-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-variables.dtx 1389 2013-10-01 16:06:04Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-variables.dtx}[2011/03/31 v3.08b KOMA-Script + (koma variables)] +% \iffalse +\documentclass{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-variables.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2006/03/20}{% +% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} +% +% \section{\KOMAScript{}-Variablen} +% +% 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öglich alle diese Felder vorherzusehen. Daher wurde in der neuen +% Briefklasse ein neuer Mechanismus zur Definition solcher Felder geschaffen. +% +% \iffalse +%<*letter> +% \fi +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Option} +% Der Mechanismus ist unabhängig von Optionen. +% +% +% \iffalse +% +%<*body> +% \fi +% +% \subsection{Anweisungen zum Anlegen und Verwenden von Variablen} +% +% \begin{macro}{\newkomavar} +% \changes{v2.8q}{2002/01/14}{Neu} +% Es wird +% zwischen zwei Arten von Feldern unterschieden: +% \begin{itemize} +% \item Felder für die Geschäftszeile +% \item Felder für sonstige Verwendung +% \end{itemize} +% Felder können aber auch nachträglich zur Geschäftszeile +% hinzugefügt werden. Die Sternvariante von \cs{newkomavar} führt +% dies jedoch automatisch durch. +% \begin{macro}{\@newkomavar} +% Da mit einer Sternvariante gearbeitet wird, wird ein Hilfsmakro +% benötigt. Das Makro erhält ein optionales und +% ein obligatorisches Argument. Das optionale Argument ist dabei die +% Voreinstellung für den \emph{Ausgabenamen} des Feldes, der +% ggf. ausgegeben werden soll. Das obligatorische Argument ist +% \emph{Name} des Feldes, über 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} +% \changes{v3.08}{2010/10/28}{\cs{scr@\emph{Name}@postsetname} +% und \cs{scr@\emph{Name}@postsetvar}} +% Natürlich wird auch ein Befehl benötigt, um die Feldvariablen +% zu setzen und ihnen ggf. einen neuen Namen für die Ausgabe zu +% geben. Der \emph{Name} der Feldvariable wird als obligatorisches +% erstes Argument übergeben. Zusätzlich zum Setzen von Ausgabename oder Wert +% werden ggf. auch die Hooks \cs{scr@\emph{Name}@postsetname} +% bzw. \cs{scr@\emph{Name}@postsetvar} ausgeführt. +% \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ötigt. +% \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 +% übergeben. Der \emph{Inhalt} wird als obligatorisches, drittes +% Argument übergeben. +% \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}% + \csname scr@#1@postsetname\endcsname + }% +} +\newcommand*{\@@setkomavar}{} +\long\def\@@setkomavar#1[#2]#3{% + \@ifundefined{scr@#1@var}{% + \@komavar@err{set}{#1}% + }{% + \@namedef{scr@#1@var}{#3}% + \csname scr@#1@postsetvar\endcsname + \begingroup + \def\@tempa{#2}\def\@tempb{\relax}% + \ifx\@tempa\@tempb\endgroup\else + \endgroup\@namedef{scr@#1@name}{#2}% + \csname scr@#1@postsetname\endcsname + \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ändlich wird auch ein Makro benötigt, um auf den +% Inhalt oder den Ausgabename einer Variablen zugreifen zu +% können. 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ötigt. +% \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}{\ifkomavar} +% \changes{v3.03}{2009/03/04}{Neu} +% Feststellen, ob eine \KOMAScript-Variable überhaupt definiert ist. +% \begin{macrocode} +\DeclareRobustCommand*{\ifkomavar}[1]{% + \scr@ifundefinedorrelax{scr@#1@var}{% + \expandafter\@secondoftwo + }{% + \expandafter\@firstoftwo + }% +} +% \end{macrocode} +% \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 \KOMAScript{} +% Variable oder deren Name leer ist. Die Sternvariante ist wieder für +% den Namen zuständig. +% \begin{macro}{\if@komavarempty} +% \changes{v2.8q}{2002/01/14}{Neu} +% \changes{v3.03}{2009/03/04}{die neue Anweisung \cs{ifkomavar} wird +% verwendet} +% \changes{v3.03}{2009/03/04}{die Argumente werden nicht mehr direkt gelesen} +% Da mit einer Sternvariante gearbeitet wird, wird wieder ein +% Hilfsmakro verwendet. +% \begin{macrocode} +\DeclareRobustCommand*{\ifkomavarempty}{% + \begingroup + \@ifstar {\@tempswatrue\@ifkomavarempty}% + {\@tempswafalse\@ifkomavarempty}% + } +\newcommand{\@ifkomavarempty}[1]{% + \ifkomavar{#1}{% + \if@tempswa + \@ifundefined{scr@#1@name}{% + \aftergroup\@firstoftwo + }{% + \expandafter\ifx\csname scr@#1@name\endcsname\@empty + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + }% + \else + \expandafter\ifx\csname scr@#1@var\endcsname\@empty + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \fi + }{% + \@komavar@err{use}{#1}% + \aftergroup\@gobbletwo + }% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \iffalse +% +% \fi +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-variables.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-version.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-version.dtx new file mode 100644 index 00000000000..13e64914a20 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-version.dtx @@ -0,0 +1,194 @@ +% \CheckSum{52} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-version.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-version.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \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 \~} +% +% \iffalse +%%% From File: $Id: scrkernel-version.dtx 1560 2013-12-19 07:13:30Z mjk $ +% \fi +% +% \iffalse +% Nicht verwirren lassen! In dieser Datei steht die Dokumentation und +% der Code vor dem Treiber. Das ist notwendig, weil der Code bereits +% am Anfang des Treibers selbst benötigt wird. +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.0e}{1994/07/07}{erste Version von \textsf{scrartcl}, +% \textsf{scrreprt} und \textsf{scrbook}} +% \changes{v2.95}{2002/06/25}{erste Version aus der Aufteilung von +% \texttt{scrclass.dtx}} +% +% \section{Version des \KOMAScript-Kerns} +% +% Dies ist die erste Datei in allen Dateien, Klassen und Paketen, die +% zum \KOMAScript-Kern gehören (Ausnahme: \texttt{scrlfile}). +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \begin{macro}{\KOMAScriptVersion} +% \changes{v2.95}{2002/06/25}{neu} +% Dieses Makro gibt an, zu welcher \KOMAScript-Version die Datei +% gehört. Die Klassen und Pakete des \KOMAScript-Kerns verwenden +% dieses Makro außerdem als eigene Versionsangabe. +% \begin{macro}{\@CheckKOMAScriptVersion} +% \changes{v2.95}{2002/06/25}{neu (intern)} +% Je nachdem, ob \cs{KOMAScriptVersion} bereits definiert ist nicht, +% wird die Definition überprüft oder eine globale Definition +% vorgenommen. Da das ganze auch bei der Erstellung der Doku +% geschieht, wird mit \cs{makeatletter} innerhalb einer Gruppe +% gearbeitet. +% \begin{macrocode} +\begingroup + \catcode`\@11\relax +%<*ignorethis> + \ifx\newcommand\undefined + \gdef\@CheckKOMAScriptVersion#1{% + \global\KOMAdefVariable{KOMAScriptVersion}{\space\space#1}% + \aftergroup\endinput + }% + \else +% + \ifx\KOMAScriptVersion\undefined + \newcommand*{\@CheckKOMAScriptVersion}[1]{% + \gdef\KOMAScriptVersion{#1}% + }% + \else + \newcommand*{\@CheckKOMAScriptVersion}[1]{% + \def\@tempa{#1}% + \ifx\KOMAScriptVersion\@tempa\else + \@latex@warning@no@line{% + \noexpand\KOMAScriptVersion\space is + `\KOMAScriptVersion',\MessageBreak + but `#1' was expected!\MessageBreak + You should not use classes, packages or files + from\MessageBreak + different KOMA-Script versions% + }% + \fi + } +%<*ignorethis> + \fi +% + \fi + \@CheckKOMAScriptVersion{2013/12/19 v3.12 KOMA-Script}% +\endgroup +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \iffalse +%<*driver> +% \fi +\ProvidesFile{scrkernel-version.dtx}[\KOMAScriptVersion (versions)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-version.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +%<*class> +% \begin{macro}{\KOMAClassName} +% \changes{v2.95}{2004/11/04}{Neu} +% \begin{macro}{\ClassName} +% \changes{v2.95}{2004/11/04}{Neu} +% Für \KOMAScript-Klassen wird hier einmalig der Name der Klasse definiert und +% und die Klasse der Klasse angegeben. +% \begin{macrocode} +\newcommand*{\KOMAClassName}{% +%
scrartcl% +% scrreprt% +% scrbook% +% scrlttr2% +} +\newcommand*{\ClassName}{% +%
article% +% report% +% book% +% letter% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\ProvidesClass{\KOMAClassName}[% +%!KOMAScriptVersion + document class (\ClassName)% +] +% \end{macrocode} +% +% +% \Finale +% +\endinput +% +% end of file `scrkernel-version.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx b/Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx deleted file mode 100644 index 63bf17ec4f3..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx +++ /dev/null @@ -1,1556 +0,0 @@ -% \CheckSum{1204} -% \iffalse meta-comment -% ====================================================================== -% scrkfloa.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkfloa.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkfloa.dtx -%<*driver> -% \fi -\ProvidesFile{scrkfloa.dtx}[2011/09/02 v3.10 KOMA-Script (floats)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkfloa.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/06/25}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Gleitumgebungen} -% -% \KOMAScript{} verfügt bezüglich der Gleitumgebungen über einige -% Features, die über das, was die Standardklassen bieten, hinaus -% geht. \marginline{Geplant!} Allerdings ist das hier verwendete Interface -% gnadenlos veraltet und wird deshalb irgendwann ersetzt. Dabei wird -% höchstwahrscheinlich grundsätzlich auf das \textsf{caption}-Paket aufgebaut -% werden. Man betrachte dieses Modul daher als grundsätzlich zur Disposition -% stehend. -% -% Die einzige Gleitumgebung, über die Briefe derzeit verfügen sind -% Randnotizen. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*option> -% \fi -% -% \iffalse -%<*class> -%<*!letter> -% \fi -% -% \subsection{Einige Anweisungen und Einstellungen für die Optionen} -% -% Einige Anweisungen und Einstellungen werden bereits benötigt, bevor die -% Optionen abgearbeitet werden. -% -% \begin{macro}{\if@captionabove} -% \changes{v2.8h}{2001/07/19}{neu} -% \changes{v3.09}{2011/03/23}{Initialisierung vor den Optionen} -% Ob es sich bei \cs{caption} um eine Unter- oder Überschrift handelt und also -% \cs{abovecaptionskip} davor und \cs{belowcaptionskip} danach steht -% oder umgekehrt, wird über diesen Schalter gesteuert. Voreingestellt -% sind Unterschriften. -% \begin{macrocode} -\newif\if@captionabove\@captionabovefalse -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\if@tablecaptionabove} -% \changes{v2.8h}{2001/07/19}{neu Option} -% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen -% verschoben} -% \changes{v2.98c}{2008/02/18}{Definition erfolgt etwas früher} -% \begin{macro}{\@tablecaptionabovetrue} -% \begin{macro}{\@tablecaptionabovefalse} -% Die Einstellung, ob es Tabellenüber- oder -unterschriften sind, wird in -% einem Schalter gespeichert. -% \begin{macrocode} -\newif\if@tablecaptionabove\@tablecaptionabovefalse -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\if@figurecaptionabove} -% \changes{v3.09}{2011/03/23}{neu Option} -% \begin{macro}{\@figurecaptionabovetrue} -% \changes{v3.09}{2011/03/23}{neu (intern)} -% \begin{macro}{\@figurecaptionabovefalse} -% \changes{v3.09}{2011/03/23}{neu (intern)} -% Die Einstellung, ob es Abbildungsüber- oder -unterschriften sind, wird in -% einem Schalter gespeichert. -% \begin{macrocode} -\newif\if@figurecaptionabove\@figurecaptionabovefalse -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\ifonelinecaptions} -% \changes{v2.8q}{2001/11/17}{neuer Schalter} -% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher} -% \begin{macro}{\onelinecaptionstrue} -% \begin{macro}{\onelinecaptionsfalse} -% Die Entscheidung, ob die Sonderbehandlung für einzeilige caption-Texte -% durchgeführt werden soll, wird in einem Schalter gespeichert. In der -% Hoffnung, beim Laden von \textsf{caption2} Speicher zu sparen, wird -% der gleiche Name verwendet, den auch \textsf{caption2} -% verwendet. Trotzdem sollte man diesen Schalter als internen Schalter -% betrachten. -% \begin{macrocode} -\newif\ifonelinecaptions\onelinecaptionstrue -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\scap@pos} -% \changes{v2.8q}{2001/11/22}{neu (intern)} -% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher} -% Hier wird gespeichert, ob die Beschreibung bei |captionbeside| links oder -% rechts vom Rest stehen soll. Voreingestellt ist rechts davon -% (\emph{\textbf{r}ight}). Andere Möglichkeiten sind \emph{\textbf{l}eft}, -% \emph{\textbf{o}uter}, \emph{\textbf{i}nner}. -% \begin{macrocode} -\newcommand*{\scap@pos}{r} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\scap@valign} -% \changes{v2.8q}{2001/11/22}{neu (intern)} -% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher} -% Hier wird gespeichert, ob bei |captionbeside| 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} -% -% \subsection{Optionen für Titel von Gleitumgebungen} -% -% \begin{option}{captions} -% \changes{v2.98c}{2008/02/18}{Neuer Zentralschalter für caption} -% \changes{v3.09}{2011/04/02}{Neue Werte (\texttt{heading}, -% \texttt{signature}, \texttt{figureheading}, \texttt{figuresignature})} -% Dies ist nun die zentrale Option für Einstellungen zu \cs{caption}. Als -% besondere Schwierigkeit ergibt sich dabei jedoch, dass das Paket -% \textsf{caption} einige Sonderbehandlungen für \KOMAScript{} enthält, die -% darauf angewiesen sind, dass die alte Optionenschnittstelle verwendet -% wird. Erfreulicherweise funktioniert das aber ab Version~3.1g über eine -% Erweiterung der Schalter-Umschaltbefehle (|\@tablecaptionabovetrue|, -% |\@tablecaptionabovefalse|, |\onelinecaptionstrue|, -% |\onelinecaptionsfalse|), so dass lediglich dafür georgt werden muss, -% dass diese weiterhin verwendet werden. -% \begin{macrocode} -\KOMA@key{captions}{% - \KOMA@set@ncmdkey{captions}{@tempa}{% - {heading}{0},{above}{0},{top}{0},% - {signature}{1},{below}{1},{bot}{1},{bottom}{1},% - {tableheading}{2},% - {tableabove}{2},{abovetable}{2},{abovetabular}{2},{topattable}{2},% - {tablesignature}{3},% - {tablebelow}{3},{belowtable}{3},{belowtabular}{3},{bottomattable}{3},% - {figureheading}{4},{figureabove}{4},{abovefigure}{4},{topatfigure}{4},% - {figuresignature}{5},{figurebelow}{5},{belowfigure}{5},{bottomatfigure}{5},% - {oneline}{6},% - {nooneline}{7},% - {rightbeside}{8},{besideright}{8},% - {leftbeside}{9},{besideleft}{9},% - {innerbeside}{10},{besideinner}{10},% - {outerbeside}{11},{besideouter}{11},% - {topbeside}{12},{besidetop}{12},% - {centeredbeside}{13},{besidecentered}{13},% - {middlebeside}{13},{besidemiddle}{13},% - {bottombeside}{14},{besidebottom}{14}% - }{#1}% - \ifcase \@tempa\relax - \@tablecaptionabovetrue - \@figurecaptionabovetrue - \@captionabovetrue - \or - \@tablecaptionabovefalse - \@figurecaptionabovefalse - \@captionabovefalse - \or - \@tablecaptionabovetrue - \or - \@tablecaptionabovefalse - \or - \@figurecaptionabovetrue - \or - \@figurecaptionabovefalse - \or - \onelinecaptionstrue - \or - \onelinecaptionsfalse - \or - \renewcommand*{\scap@pos}{r}% - \or - \renewcommand*{\scap@pos}{l}% - \or - \renewcommand*{\scap@pos}{i}% - \or - \renewcommand*{\scap@pos}{o}% - \or - \renewcommand*{\scap@valign}{t}% - \or - \renewcommand*{\scap@valign}{c}% - \or - \renewcommand*{\scap@valign}{b}% - \fi -} -% \end{macrocode} -% \end{option} -% -% \begin{option}{tablecaptionabove} -% \changes{v2.8h}{2001/07/19}{neue Option} -% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen -% verschoben} -% \changes{v2.98c}{2008/02/18}{obsolete} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{tablecaptionbelow} -% \changes{v2.8h}{2001/07/19}{neue Option} -% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen -% verschoben} -% \changes{v2.98c}{2008/02/18}{obsolete} -% \changes{v3.01a}{2008/11/20}{deprecated} -% Es besteht nun die Wahl, ob \cs{caption} bei Tabellen für Unter- -% oder Überschriften voreingestellt ist. Die Defaulteinstellung ist -% aus Kompatibilitätsgründen die Tabellenunterschrift. -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption{tablecaptionabove}{captions=tableheading} -\KOMA@DeclareDeprecatedOption{tablecaptionbelow}{captions=tablesignature} -% \end{macrocode} -% \end{option} -% \end{option} -% -% \begin{option}{origlongtable} -% \changes{v2.8l}{2001/08/16}{neue Option} -% Wenn das \textsf{longtable}-Paket geladen ist, werden die -% Tabellentitel dafür normalerweise von den Klassen umdefiniert. Dies -% geschieht automatisch nicht, wenn das \textsf{caption2}-Paket -% geladen ist. Es geschieht ausserdem nicht, wenn diese Option gesetzt -% ist. -% \begin{macro}{\if@komalongtable} -% \changes{v2.8l}{2001/08/16}{neue Option} -% \begin{macro}{\@komalongtabletrue} -% \begin{macro}{\@komalongtablefalse} -% Die Einstellung wird in einem Schalter gespeichert. -% \begin{macrocode} -\newif\if@komalongtable\@komalongtabletrue -\DeclareOption{origlongtable}{\@komalongtablefalse} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% -% \begin{option}{onelinecaption} -% \changes{v2.8q}{2001/11/17}{neue Option} -% \changes{v2.98c}{2008/03/03}{obsolete} -% \changes{v2.98c}{2008/03/03}{keine Sonderbehandlung für \textsf{caption2} -% mehr} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{noonelinecaption} -% \changes{v2.8q}{2001/11/17}{neue Option} -% \changes{v2.98c}{2008/03/03}{obsolete} -% \changes{v2.98c}{2008/03/03}{keine Sonderbehandlung für \textsf{caption2} -% mehr} -% \changes{v3.01a}{2008/11/20}{deprecated} -% Da für diese Option nicht der gleiche Name verwendet wird, wie bei -% \textsf{caption2}, wurde von den Optionen bis Version~2.98b nicht nur der -% Schalter entsprechend gesetzt, sondern auch die korrespondierende Option an -% \textsf{caption2} weitergeleitet. Der gleiche Name konnte schlecht -% verwendet werden, weil er bei einer Klasse auch nicht ansatzweise -% als selbsterklärend bezeichnet werden kann. Ab Version~2.98c entfällt die -% Sonderbehandlung von \textsf{caption2}. -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption{onelinecaption}{captions=oneline} -\KOMA@DeclareDeprecatedOption{noonelinecaption}{captions=nooneline} -% \end{macrocode} -% \end{option} -% \end{option} -% -% -% \iffalse -% -% -% -%<*body> -% \fi -% -% \subsection{Randnotizen} -% -% Randnotizen sind ebenfalls eine Art von Gleitumgebung. -% -% \begin{macro}{\marginline} -% \KOMAScript{} stellt zusätzlich ein Randzeilenmakro zur Verfügung, -% das je nach gerader oder ungerader Seite in doppelseitigen Layout -% rechts- oder linksbündig gesetzt werden muss. -% \changes{v2.4l}{1997/02/06}{Definition mit Hilfe des optionalen -% Parameters von \cs{marginpar} deutlich vereinfacht} -% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt} -% \begin{macrocode} -\newcommand\marginline[1]{% - \marginpar[\raggedleft{#1}]{\raggedright #1}% -} -% \end{macrocode} -% \end{macro} -% -% \iffalse -%<*class> -%<*!letter> -% \fi -% -% \subsection{Definitionen für Titel von Gleitumgebungen} -% -% \begin{macro}{\caption} -% \changes{v2.2c}{1995/05/25}{Fließtitel auf CJK umgestellt} -% Es ist möglich, die Fließumgebungen 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ängenregistern gespeichert: -% \begin{macrocode} -\newlength{\abovecaptionskip} -\newlength{\belowcaptionskip} -\setlength{\abovecaptionskip}{10\p@} -\setlength{\belowcaptionskip}{0\p@} -% \end{macrocode} -% \end{Length} -% \end{Length} -% \begin{macro}{\captionformat} -% \changes{v2.3c}{1995/08/06}{neu} -% Trennung von Label und Text: -% \begin{macrocode} -\newcommand*{\captionformat}{:\ } -% \end{macrocode} -% \end{macro} -% \begin{macro}{\scr@caption} -% \changes{v2.8h}{2001/07/19}{neu (intern)} -% \begin{macro}{\captionabove} -% \changes{v2.8h}{2001/07/19}{neu} -% \begin{macro}{\captionbelow} -% \changes{v2.8h}{2001/07/19}{neu} -% Damit überhaupt zwischen Unter- und Überschriften unterschieden -% werden kann, muss zunächst das Originalmakro gesichert werden. Dies -% geschieht erst zu Beginn des Dokuments, damit Pakete ggf. noch ihre -% eigenen Definitionen von \cs{caption} vornehmen können. Das -% \textsf{hyperref}-Paket ist so ein Kandidat. -% \begin{macrocode} -\newcommand{\scr@caption}{} -\AtBeginDocument{\let\scr@caption\caption} -% \end{macrocode} -% \end{macro} -% Jetzt ist es möglich durch einfaches Umlegen des Schalters für 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 über die -% Tabelle oder Abbildung zu setzen, ist der Versuch, sie daneben zu -% setzen. Dies funktioniert frundsätzlich auch nicht mit -% \texttt{longtable}-Tabellen. -% -% \begin{macro}{\scap@caption} -% \changes{v2.8q}{2001/11/22}{neu (intern)} -% Die Beschreibung, die der Umgebung als Parameter übergeben wird, -% muss zwischengespeichert werden. Hier wird lediglich das Makro -% dafür reserviert. -% \begin{macrocode} -\newcommand*{\scap@caption}{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\scap@width} -% \changes{v2.8q}{2001/11/22}{neu (intern)} -% Die Breite, die Tabelle bzw. Abbildung einschließlich Beschreibung -% und insgesamt haben dürften. Voreingestellt ist die gesamte -% verfügbare Breite. -% \begin{macrocode} -\newcommand*{\scap@width}{\linewidth} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\scap@move} -% \changes{v2.8q}{2001/11/22}{neu (intern)} -% Der Wert, um den die Tabelle bzw. Abbildung einschließlich -% Beschreibung nach rechts bzw. außen 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 (intern)} -% Da \cs{caption} innerhalb einer Umgebung (\cs{parbox} und -% \texttt{captionbeside}) aufgerufen wird, würde ein \cs{label}, das -% zwar innerhalb der Gleitumgebung aber nach der -% \texttt{captionbeside}-Umgebung eingefügt wird, nicht die -% Gleitumgebung, sondern die umgebende Referenzebene -% referenzieren. Damit das nicht geschieht, wird in der -% \texttt{captionbeside}-Umgebung in der \cs{parbox} die aktuelle -% Referenz \cs{@currentlabel} in dem globalen Makro -% \cs{scap@currentlabel} zwischengespeichert und am Ende der -% \texttt{captionbeside}-Umgebung mit Hilfe von \cs{aftergroup} nach -% dem Ende der Umgebung wiederhergestellt. Da die -% \texttt{captionbeside}-Umgebung ohnehin nicht geschachtelt werden -% kann, funktioniert das problemlos. Für 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 \cs{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 (intern)} -% \begin{macro}{\@@captionbeside} -% \changes{v2.8q}{2001/11/22}{neu (intern)} -% \begin{macro}{\@@@captionbeside} -% \changes{v2.8q}{2001/11/22}{neu (intern)} -% \begin{macro}{\@@@@captionbeside} -% \changes{v2.8q}{2001/11/22}{neu (intern)} -% Die Umgebung soll einmal folgende Parameter besitzen: -% \begin{description} -% \item[(optional)] Verzeichniseintrag -% \item[(obligatorisch)] Beschreibung -% \item[(optional)] lokaler Wert für \cs{scap@pos} -% \item[(optional)] lokaler Wert für \cs{scap@width} -% \item[(optional)] lokaler Wert für \cs{scap@move} -% \item[(*)] lokaler Wert für \cs{ifscap@alt} (Stern gesetzt -% entspricht \cs{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önnen, werden einige -% Hilfsmakros benötigt. -% \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 (intern)} -% Es wird noch eines der kostbaren Boxregister benötigt. -% \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 (intern)} -% \changes{v2.98c}{2008/03/11}{vertikale Ausrichtung korrigiert} -% \changes{v3.07a}{2010/11/04}{vertikale Ausrichtung im t- und b-Fall erneut -% korrigiert} -% Hier wird nun die Umgebung eigentlich geöffnet, während zuvor nur -% die Parameter ausgewertet wurden. -% \begin{macrocode} -\newcommand{\c@pti@nb@sid@}{} -\long\def\c@pti@nb@sid@[#1]#2{% - \def\scap@caption{% - \if c\scap@valign - \setlength{\abovecaptionskip}{\z@}% - \else \if t\scap@valign - \setlength{\abovecaptionskip}{-\ht\strutbox}% - \else \if b\scap@valign - \setlength{\abovecaptionskip}{\z@}% - \fi - \fi - \fi - \setlength{\belowcaptionskip}{-\dp\strutbox}% - \captionbelow[{#1}]{#2}% - }% - \begin{lrbox}{\c@pti@nb@sid@b@x}% -} -% \end{macrocode} -% \end{macro} -% -% Jetzt endlich können wir uns auf die Umgebung stürzen. Die -% Umgebung zu starten ist einfach. Es wird ein Doppelargumentmakro -% ausgeführt. -% \begin{macrocode} -\newenvironment*{captionbeside}{% - \@dblarg\@captionbeside% -}{% -% \end{macrocode} -% Komplizierter ist die Beendigung der Umgebung. Hier fällt der -% gesamte Satzaufwand an. -% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt -% \cs{if@thispageodd}} -% \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{\KOMAClassName}{% - caption beside will be very, very small.\MessageBreak - In most cases this will result in overfull and\MessageBreak - underfull \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}{2003/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}{\capfont} -% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} -% Die Schriftart der Titel kann eingestellt werden. Dazu dient dieses -% Makro, das als internes Makro zu verstehen ist, -% \begin{macro}{\caplabelfont} -% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} -% Davon unabhängig kann auch die Schriftart der Titel-Titel -% ("`Abbildung X:"') eingestellt werden. Auch dieses Makro ist als -% internes Makro zu verstehen. -% \begin{macrocode} -\newcommand*\capfont{\normalfont\normalcolor} -\newcommand*\caplabelfont{\normalfont\normalcolor} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\scr@fnt@caption} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{caption}} -% \begin{macro}{\scr@fnt@captionlabel} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{captionlabel}} -% Die eigentliche Änderung der Schriftart erfolgt über das Element -% \texttt{caption} bzw. \texttt{captionlabel}. -% \begin{macrocode} -\newcommand*{\scr@fnt@caption}{\capfont} -\newcommand*{\scr@fnt@captionlabel}{\caplabelfont} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \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ückgesetzt (ist das -% ok?)} -% \changes{v2.3f}{1995/12/09}{Fontumschaltung einheitlich für lange -% und kurze Unter-/Überschriften} -% \changes{v2.5g}{1999/10/09}{neben den komplett hängenden -% Titeln sind nun auch nicht hängende oder teilweise hängende -% möglich} -% 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ötigt, der angibt, ob auf die volle Länge 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ßerdem 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 -% \textsf{caption2} umdefiniert} -% Dann wird weiter ein Befehl benötigt, mit dem der Benutzer die -% Weite des Einzugs selbst einstellen kann. Da intern für 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ürlich muss hier auch -% der automatische Einzug abgeschaltet werden. In der Sternform wird -% außerdem dafür gesorgt, dass zwischen "`Label"' und Beschreibung -% ein Umbruch erfolgt. In der normalen Version wird stattdessen für -% Kompatibilität zu früheren Versionen gesorgt. -% \begin{macro}{\@setcapindent} -% \begin{macro}{\@@setcaptindent} -% Für die Implementierung der Sternform werden zwei interne Makros -% benötigt. -% \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{\KOMAClassName}{% - You're using package `caption2'.\MessageBreak - Because of this you should also use `\string\captionstyle' - and\MessageBreak - set length '\string\captionindent' instead of - 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 -% \textsf{caption2} umdefiniert} -% Andererseits soll es auch möglich sein, nachträglich wieder den -% automatischen Einzug einzuschalten. Dafür gibt es ein weiteres -% Makro. -% \begin{macrocode} -\newcommand*{\setcaphanging}{\dofullc@ptrue\@capbreakfalse} -\AfterPackage{caption2}{% - \renewcommand*{\setcaphanging}{% - \ClassWarning{\KOMAClassName}{% - 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 Titel. Zunächst 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 Über- und -% Unterschriften} -% \changes{v2.8j}{2001/07/30}{\cs{@makecaption} verwendet -% \cs{@@makecaption}} -% \changes{v2.8q}{2001/11/17}{die Sonderbehandlung für einzeilige -% \emph{caption}s ist abschaltbar} -% \changes{v2.8q}{2001/11/17}{Titel können in ihrer Breite -% beschränkt werden} -% \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ächlich gesetzt wird der Titel mit diesem Makro. Dabei muss der -% erste Parameter entweder \cs{@gobble} oder \cs{@firstofone} sein. -% -% \begin{macro}{\cap@width} -% \changes{v2.8q}{2001/11/17}{neu (intern)} -% \begin{macro}{\cap@left} -% \changes{v2.8q}{2001/11/17}{neu (intern)} -% \begin{macro}{\cap@right} -% \changes{v2.8q}{2001/11/17}{neu (intern)} -% 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ür 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}{neu} -% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt -% \cs{if@thispageodd}} -% \changes{v2.97}{2007/02/27}{Mindestbreite für captions ist 0\,pt} -% Hier wird \cs{cap@width} gesetzt. Dabei werden optional auch -% \cs{cap@left} und \cs{cap@right} angepasst. -% \begin{macrocode} -\newcommand*{\setcapwidth}[2][]{% - \begingroup% - \setlength{\@tempdima}{#2}% - \ifdim\@tempdima <\z@ - \@tempdima\z@ - \ClassWarning{\KOMAClassName}{% - caption width less than 0pt not allowed.\MessageBreak - Setting caption width to 0pt% - }% - \fi - \edef\@tempa{\endgroup\def\noexpand\cap@width{\the\@tempdima}}% - \@tempa - \begingroup - \edef\@tempa{#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{\KOMAClassName}{% - 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 \textsf{caption2} geladen wird, ändert sich die Funktion. Das -% optionale Argument wird dann ignorriert. -% \begin{macrocode} -\AfterPackage{caption2}{% - \renewcommand*{\setcapwidth}[2][]{% - \ClassWarning{\KOMAClassName}{% - 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'% - }% - \setcaptionwidth{#2}% - }% -}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\cap@margin} -% \changes{v2.8q}{2001/11/17}{neu (intern)} -% Dieses Makro beinhaltet nicht den Wert der Ränder, sondern das -% Makro, mit dem innerhalb von \cs{@@makecaption} die Makros -% \cs{cap@left} und \cs{cap@right} neu definiert werden. Dies -% geschieht nur, wenn die Ränder mit \cs{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}{neu} -% \begin{macro}{\@setcapmargin} -% \changes{v2.8q}{2001/11/17}{neu (intern)} -% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt -% \cs{if@thispageodd}} -% \begin{macro}{\@@setcapmargin} -% \changes{v2.8q}{2001/11/17}{neu (intern)} -% Statt die Breite der \emph{caption} zu setzen, können auch die -% Ränder gesetzt werden. In der Sternvariante werden im zweiseitigen -% Modus die Ränder 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 \textsf{caption2} geladen ist, ändert sich die Bedeutung. -% \begin{macrocode} -\AfterPackage{caption2}{% - \renewcommand*{\@setcapmargin}[2][\@tempdimb]{% - \setlength{\@tempdimb}{#2}% - \setlength{\@tempdima}{#1}% - \ifdim\@tempdima\@tempdimb\else - \ClassWarning{\KOMAClassName}{% - 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 Option \texttt{onelinecaption} verwendet -% wird. Das bedeutet auch, dass bei \texttt{noonelinecaption} das -% Problem mit dem Hochzählen der Fußnoten nicht auftritt. -% \changes{v2.8q}{2002/05/17}{Problem mit doppelten Fußnoten behoben} -% \changes{v2.95}{2004/01/30}{Korrekturen für vertikalen Abstand und -% \textsl{float}-Paket} -% \changes{v2.95a}{2006/07/13}{diverse Korrekturen für den vertikalen -% Abstand u.\,a. bei Verwendung des \textsl{color}-Pakets} -% \changes{v2.97c}{2007/06/06}{\cs{unskip}\cs{strut} eingefügt, um die -% vertikale Ausrichtung im \emph{above}-Fall in eingen Fällen zu -% verbessern} -% \changes{v3.02a}{2009/01/24}{diverse Gruppen- bzw. Argumentklammern ergänzt} -% \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{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat}}}% - #3\unskip\strut}}% - }% - \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}{\cap@width}% - \ifdim \wd\@tempboxa >\@tempdima - \hb@xt@\hsize{% - \setbox\@tempboxa\vbox{\hsize=\cap@width -% \end{macrocode} -% Im Fall, dass nun also mehrzeilig gesetzt werden muss, ist zu -% unterscheiden, ob wie bisher voll hängend gearbeitet werden soll -% oder nicht. In ersterem Fall machen wir das, wie bisher, allerdings -% wird der \cs{capfont} früher aktiviert, damit darin auch globale -% Größsenänderungen für den Titel Platz finden. Außerdem wird die -% geänderte Parameterübergabe berücksichtigt. -% \changes{v2.97c}{2007/09/17}{\cs{scr@smashdp} eingefügt} -% \begin{macrocode} - \ifdofullc@p - {\capfont{\@hangfrom{\scr@smashdp{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat}}}}}% - {#3\unskip\strut\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{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat\par}}}% - \noindent\hspace*{-\cap@indent}#3\unskip\strut\par}}% - \else% - \if@capbreak - {\capfont{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat\par}}}% - \noindent\@hangfrom{\hspace*{\cap@indent}}{#3\par}}}% - \else - {\capfont{\@hangfrom{\scr@smashdp\strut\hspace*{\cap@indent}}% - {\hspace{-\cap@indent}\scr@smashdp{\ignorespaces#1% - {{\caplabelfont{#2\captionformat}}}}#3\unskip\strut\par}}}% - \fi - \fi - \fi - }% - \setlength{\@tempdima}{\ht\@tempboxa}% - \addtolength{\@tempdima}{\dp\@tempboxa}% - \addtolength{\@tempdima}{-\ht\strutbox}% - \ht\@tempboxa\ht\strutbox - \dp\@tempboxa\@tempdima - \strut\cap@left - \box\@tempboxa - \cap@right\strut - }% - \else - \global \@minipagefalse -% \end{macrocode} -% Im einzeiligen Fall wird nun die Box wie oben erneut erzeugt und gleich -% gesetzt. Im Prinzip ginge das auch direkt ohne erst eine Box zu erzeugen. -% \changes{v3.02a}{2009/01/24}{die Box selbst muss im \cs{capfont} gesetzt -% werden, falls darin eine Größenumschaltung stattfindet} -% \begin{macrocode} - \sbox\@tempboxa{% - {\capfont{\scr@smashdp{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat}}}}% - #3}}% - }% - {\capfont{\hb@xt@\hsize{\strut\cap@left\box\@tempboxa\cap@right\strut}}}% - \fi - \endgroup -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\LT@makecaption} -% \changes{v2.8j}{2001/07/30}{neu (intern)} -% \changes{v2.8k}{2001/08/15}{keine Umdefinierung, wenn das -% \textsf{caption2}-Paket erkannt oder die Option -% \texttt{origlongtable} gesetzt wurde} -% \changes{v2.8q}{2001/11/18}{Breite und Anordnung wird über -% \KOMAScript-Makros bestimmt} -% \changes{v2.8q}{2001/11/18}{Verwendung von \cs{AfterPackage}} -% \changes{v2.9s}{2004/08/24}{vertikale Abstände durch verschieben von -% \cs{vskip} korrigiert} -% \begin{macro}{\LT@array} -% \changes{v2.8q}{2001/11/18}{neu (intern)} -% \begin{macro}{\LT@caption} -% \changes{v2.8q}{2001/11/18}{neu (intern)} -% \begin{macro}{\scr@caption@before@longtable@warning} -% \changes{v2.98c}{2008/03/03}{neu (intern)} -% Ab Version 2.8j wird auf vielfachen Wunsch das -% \textsf{longtable}-Paket berücksichtigt. Da Pakete aber nach -% Klassen geladen werden, kann dies erst nach dem Laden des Pakets -% aktiviert werden. Die Definition entspricht der obigen. Wird das -% \textsf{caption2}-Paket nach \textsf{longtable} geladen, so wird -% automatisch die Definition von \textsf{caption2} verwendet. Wird -% \textsf{caption2} vor \textsf{longtable} geladen, so liegt -% voraussichtlich eine Fehlbedienung vor, auf die hingewiesen wird. -% \begin{macrocode} -\newcommand*{\scr@caption@before@longtable@warning}[1]{% - \ClassWarning{\KOMAClassName}{% - you've loaded package `#1' before package\MessageBreak - `longtable'!\MessageBreak - Because of this package `#1' isn't able to\MessageBreak - control `\string\caption' at longtables. \space After loading - \MessageBreak - package `#1' KOMA-Script also doesn't control\MessageBreak - `\string\caption'.\MessageBreak - I think, you should load package `caption' after\MessageBreak - package `longtable'% - }% -} -\AfterPackage{longtable}{% - \@ifpackageloaded{caption2}{\@komalongtablefalse - \scr@caption@before@longtable@warning{caption2}% - }{}% - \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{\KOMAClassName}{% - longtable captions redefined% - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\fs@komaabove} -% \changes{v2.8j}{2001/07/30}{neu (intern)} -% \begin{macro}{\fs@komabelow} -% \changes{v2.8j}{2001/07/30}{neu (intern)} -% \begin{macro}{\floatc@komascript} -% \changes{v2.8j}{2001/07/30}{neu (intern)} -% Ab Version 2.8j werden für das \textsf{float}-Paket zwei float-Stile -% Namens \texttt{komaabove} und \texttt{komabelow} definiert. Da -% möglicherweise auch andere Pakete darauf zurückgreifen, wird das -% unabhängig von der Existenz von \textsf{float} getan. Verwendet wird -% dies innerhalb von \KOMAScript{} jedoch nicht. Es werden außerdem -% interne Makros von \textsf{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} -% -% -% \subsection{Verteilung der Gleitumgebungen} -% -% \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} -% Für die Fließumgebungen müssen verschiedene Konstanten definiert -% werden, die Aufteilung zwischen Text und Fließumgebung und Ähnliches -% regeln. -% \begin{macrocode} -\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{Titel ohne Gleitumgebung} -% -% \begin{macro}{captionof} -% \changes{v3.05}{2009/07/08}{Neue Anweisung} -% \changes{v3.09}{2011/03/21}{Verwendung des internen \cs{scr@caption}} -% \changes{v3.09a}{2011/04/13}{Berücksichtigung von -% \texttt{captions=tableheading} und \texttt{captions=figureheading}} -% \begin{macro}{captionaboveof} -% \changes{v3.09}{2011/03/21}{Neue Anweisung} -% \begin{macro}{captionbelowof} -% \changes{v3.09}{2011/03/21}{Neue Anweisung} -% Obwohl es inzwischen mehrere Pakete gibt, die diese Anweisung bereit -% stellen, kommt es doch immer wieder zu Fehlern, weil einige Anwender diese -% Pakete nicht nutzen. Also habe ich beschlossen, das selbst zu -% implementieren. Um die Kompatibilität mit \textsf{capt-of} nicht zu stören, -% wird die Definition vor dme Laden jenes Pakets zurück genommen. Mit dem -% Paket \textsf{caption} gibt es solche Probleme nicht, das dieses -% \cs{captionof} ohnehin per \cs{def} definiert. Allerdings berücksichtigt das -% \cs{captionof} von \textsf{caption} und \textsf{capt-of} eventuell die -% Einstellungen für darüber oder darunter nicht in gleicher Weise. -% \begin{macrocode} -\newcommand*{\captionof}[1]{\def\@captype{#1}% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname if@#1captionabove\endcsname\iftrue - \@captionabovetrue - \fi - \scr@caption} -\newcommand*{\captionaboveof}{\@captionabovetrue\captionof} -\newcommand*{\captionbelowof}{\@captionabovefalse\captionof} -\BeforePackage{capt-of}{\let\captionof\relax} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{environment}{captionofbeside} -% \changes{v3.10}{2011/09/02}{Neue Umgebung} -% Analog zu \texttt{captionbeside} hier eine Umgebung mit Angabe des -% Gleitumgebungstyps als erstes Argument. -% \begin{macrocode} -\newenvironment{captionofbeside}[1]{% - \def\@captype{#1}% - \captionbeside -}{% - \endcaptionbeside -} -% \end{macrocode} -% \end{environment} -% -% -% \subsection{Standardbezeichner} -% -% \begin{macro}{\figurename} -% \begin{macro}{\tablename} -% So heißen die Dinger: -% \begin{macrocode} -\newcommand*\figurename{Figure} -\newcommand*\tablename{Table} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \subsection{Abbildungsumgebung} -% -% \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ächst werden \texttt{figure}s, also Abbildungen behandelt. -% \begin{Counter}{figure} -% \begin{macro}{\thefigure} -% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil} -% \begin{macro}{\figureformat} -% \changes{v2.3c}{1995/08/06}{neu} -% Dafür wird ein neuer Zähler benötigt, der bei der Buch- und der -% Bericht-Klasse mit \cs{chapter} zurückgesetzt wird und auch den -% Kapitelzähler mit enthält. -% \begin{macrocode} -%\newcounter{figure}[chapter] -%
\newcounter{figure} -\renewcommand*\thefigure{% -%<*book> - \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d}\relax - \if@mainmatter\thechapter.\fi - \else -% -% \thechapter.% -% \fi - \@arabic\c@figure -} -\newcommand*{\figureformat}{% - \figurename~\thefigure% -% \autodot% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{Counter} -% \begin{macro}{\fps@figure} -% Die Standardplatzierung für Abbildungen ist \emph{t}op, -% \emph{b}ottom, \emph{p}age. -% \begin{macrocode} -\newcommand*{\fps@figure}{tbp} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ftype@figure} -% Um die verschiedenen \emph{float}-Typen unterscheiden zu können, -% benätigen sie eine Nummer. Abbildungen bekommen hier willkürlich -% die Nummer 1. -% \begin{macrocode} -\newcommand*{\ftype@figure}{1} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ext@figure} -% Die Extension der Datei für das Abbildungsverzeichnis. -% \begin{macrocode} -\newcommand*{\ext@figure}{lof} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\fnum@figure} -% Die Ausgabe der Abbildungsnummer. -% \begin{macrocode} -\newcommand*{\fnum@figure}{\figureformat} -% \end{macrocode} -% \end{macro} -% Jetzt aber zurück zur Umgebung. Wie üblich gibt es eine Version mit -% und eine Version ihne Stern. Zur unterschiedlichen Bedeutung bei -% zweispaltigem Satz siehe \texttt{classes.dtx} und \texttt{source2e}. -% \begin{macrocode} -\newenvironment{figure}{% - \if@figurecaptionabove\let\caption\captionabove - \else\let\caption\captionbelow\fi - \let\caption\captionbelow\@float{figure}% -}{% - \end@float -} -\newenvironment{figure*}{% - \if@figurecaptionabove\let\caption\captionabove - \else\let\caption\captionbelow\fi - \let\caption\captionbelow\@dblfloat{figure}% -}{% - \end@dblfloat -} -% \end{macrocode} -% \end{environment} -% -% -% \subsection{Tabellengleitumgebung} -% -% \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ür -% \cs{caption} von Unter- auf Überschriften geändert werden} -% Auch verschiebbare Tabellen sind möglich. Das Prinzip ist das -% gleiche wie bei den Abbildungen. -% \begin{Counter}{table} -% \begin{macro}{\thetable} -% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil} -% \begin{macro}{\tableformat} -% \changes{v2.3c}{1995/08/06}{neu} -% \begin{macrocode} -%
\newcounter{table} -%\newcounter{table}[chapter] -\renewcommand*\thetable{% -%<*book> - \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d}\relax - \if@mainmatter\thechapter.\fi - \else -% -% \thechapter.% -% \fi - \@arabic\c@table -} -\newcommand*{\tableformat}{% - \tablename~\thetable% -% \autodot% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{Counter} -% \begin{macro}{\fps@table} -% \begin{macrocode} -\newcommand*{\fps@table}{tbp} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ftype@table} -% Allerdings wird für Tabellen willkürlich Nummer 2 verwendet. -% \begin{macrocode} -\newcommand*{\ftype@table}{2} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ext@table} -% Natürlich haben sie auch eine andere Extension. -% \begin{macrocode} -\newcommand*{\ext@table}{lot} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\fnum@table} -% Die Ausgabe der Nummer kann ebenfalls abweichen. -% \begin{macrocode} -\newcommand*{\fnum@table}{\tableformat} -% \end{macrocode} -% \end{macro} -% Ob es \cs{caption} in der Voreinstellung eine Tabellenüberschrift -% oder eine Tabellenunterschrift erzeugt, hängt hier von den Optionen -% ab. -% \begin{macrocode} -\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{environment} -% -% \iffalse -% -% -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrkfloa.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx b/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx deleted file mode 100644 index 6fe383d2eb9..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx +++ /dev/null @@ -1,1564 +0,0 @@ -% \CheckSum{2688} -% \iffalse meta-comment -% ====================================================================== -% scrkfont.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkfont.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkfont.dtx -%<*driver> -% \fi -\ProvidesFile{scrkfont.dtx}[2011/02/23 v3.09 KOMA-Script (font selection)] -% \changes{v3.09}{2011/02/23}{Neues Paket \texttt{scrfontsizes}} -% \iffalse -% -%\ProvidesPackage{scrfontsizes}[% -% \KOMAScriptVersion\space package -% (font size file generator)] -%<*driver> -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkfont.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/06/25}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Schriftauswahl} -% -% Dieser Bereich befasst sich mit allem, was zur Schriftauswahl -% gehört. Die einzelnen Elemente, für die eine Schriftauswahl möglich -% ist, sind jedoch in den Dateien definiert, in denen diese Elemente -% auftreten. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*option> -% \fi -% -% \subsection{Der Generator für Schriftgrößendateien} -% -% \iffalse -%<*generator> -% \fi -% Ab Version 3.09 gibt es einen Generator für neue -% Schriftgrößendateien. Dieser richtet sich vor allem an Klassenautoren und -% bietet die Möglichkeit, eine eigene berechnete Schriftgrößendatei als -% Grundlage für eine spezifisch angepasste Schriftgrößendateie zu erstellen. -% Optionen besitzt dieser jedoch nicht. Daher reduziert sich der Optionenteil -% auf ein einfaches -% \begin{macrocode} -\ProcessOptions\relax -% \end{macrocode} -% \iffalse -% -% \fi -% -% \subsection{Option zur Auswahl der Größe der Grundschrift} -% -% \iffalse -%<*class|extend> -% \fi -% \begin{option}{10pt} -% \begin{option}{11pt} -% \begin{option}{12pt} -% Diese Optionen existieren nicht mehr als explizite Optionen, sondern -% werden in \texttt{scrtarea.dtx} über \cs{DeclareOption*} -% ausgewertet. -% \begin{macro}{\@ptsize} -% \changes{v2.96}{2006/08/11}{\cs{@ptsize} hat temporär eine andere -% Bedeutung} -% Wir definieren \cs{@ptsize} als Grundschriftgrößee minus 10\,pt. -% Hier wird die Standardeinstellung 11\,pt für alle Klassen außer der -% Briefklasse gewählt. Bis zum Einstellen tatsächlichen Einstellen der -% Schriftgröße wird in \cs{@ptsize} allerdings die tatsächliche Größe -% angegeben, damit sich Rundungsfehler nicht so leicht summieren. -% \begin{macrocode} -%<*!extend> -\newcommand*\@ptsize{% -% 11% -% 12% -} -% -% \end{macrocode} -% \end{macro} -% \end{option} -% \end{option} -% \end{option} -% -% \begin{macro}{\@pt@scan} -% \changes{v2.6}{2000/01/04}{neu (intern)} -% \begin{macro}{\@pt@@scan} -% \changes{v2.6}{2000/01/04}{neu (intern)} -% \changes{v2.97c}{2007/05/12}{\cs{KOMA@UseObsolete} durch -% \cs{KOMA@UseObsoleteOption} ersetzt} -% \changes{v2.98c}{2008/03/22}{Verwendung von \cs{KOMA@UseObsoleteOption} -% korrigiert} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch -% \cs{PackageInfoNoLine} ersetzt} -% Das Macro \cs{@pt@scan} wird benötigt, um die Schriftgröße nach der alten -% Methode zu erkennen. -% \begin{macrocode} -%<*!extend> -\newcommand*{\@pt@scan}{% - \expandafter\@pt@@scan\CurrentOption pt\@pt@@scan% -} -\newcommand*{\@pt@@scan}{} -\def\@pt@@scan #1pt#2\@pt@@scan{% - \ifstr{#2}{pt}{% - \ifnumber{#1}{% - \KOMA@UseObsoleteOption{\PackageInfoNoLine{\KOMAClassName}}% - {#1#2}{fontsize=#1#2}% - }{\@headlines}% - }{\@headlines}% -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\@fontsizefilebase} -% \changes{v2.96}{2006/08/11}{neu (intern)} -% \changes{v3.00}{2008/05/01}{Definition für \textsf{scrextend} vorgezogen} -% Dieses Makro speichert den Präfix der primären -% Schriftgrößenoptionsdateien. Es wird nur definiert, wenn es nicht bereits -% definiert ist. Damit können Wrapperklassen komplett andere Größen vorgeben, -% ohne mit \cs{ReplaceInput} arbeiten zu müssen. -% \begin{macrocode} -\providecommand*{\@fontsizefilebase}{scrsize} -% \end{macrocode} -% \end{macro} -% -% \begin{option}{fontsize} -% \changes{v2.96}{2006/08/11}{Funktion komplett geändert} -% \changes{v2.98c}{2008/03/26}{lädt nach Möglichkeit die zugehörige -% Schriftgrößendatei} -% Hier nun die Option, die tatsächlich verwendet wird. Es sei darauf -% hingewiesen, dass damit auch Schriftgrößen wie \texttt{10.3pt} denkbar -% wären. -% \begin{macrocode} -\KOMA@key{fontsize}{% -%<*!extend> - \scr@ifundefinedorrelax{changefontsizes}{% - \@defaultunits\@tempdima#1pt\relax\@nnil - \edef\@ptsize{#1}% - }{% -% - \expandafter\@defaultunits\expandafter\@tempdima#1 pt\relax\@nnil - \edef\@tempa{#1}% - \setlength{\@tempdimb}{\@tempdima}% - \edef\@tempb{\strip@pt\@tempdimb}% - \addtolength{\@tempdimb}{-10\p@}% - \edef\@ptsize{\strip@pt\@tempdimb}% - \edef\@tempa{% - \noexpand\makeatletter - \noexpand\InputIfFileExists{\@fontsizefilebase\@tempa.clo}{% -% \noexpand\ClassInfo{\KOMAClassName}{% -% \noexpand\PackageInfo{scrextend}{% - File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}% - }{% - \noexpand\InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{% -% \noexpand\ClassInfo{\KOMAClassName}{% -% \noexpand\PackageInfo{scrextend}{% - File `\@fontsizefilebase\@tempb pt.clo' used instead of% - \noexpand\MessageBreak - file `\@fontsizefilebase\@tempa.clo' to setup font sizes}% - }{% - \noexpand\changefontsizes{#1}% - }% - }% - \noexpand\catcode`\noexpand\@=\the\catcode`\@ - }% -% \scr@ifundefinedorrelax{changefontsizes}{% -% \expandafter\AtEndOfPackage\expandafter{\@tempa}% -% }{% - \@tempa - }% -} -% \end{macrocode} -% \end{option} -% -% \iffalse -% -% \fi -% -% \iffalse -% -%<*body> -% \fi -% -% \subsection{Sicherstellen der Umgebung des Generators} -% -% \iffalse -%<*generator> -% \fi -% Der Generator benötigt die Anweisung \cs{changefontsizes}, die entweder von -% einer \KOMAScript-Klasse oder vom Paket \texttt{scrextend} bereitgestellt -% wird: -% \begin{macrocode} -\@ifundefined{changefontsizes}{\RequirePackage{scrextend}}{} -% \end{macrocode} -% \iffalse -% -% \fi -% -% \subsection{Einlesen der Schriftgrößendatei} -% -% \changes{v2.6}{2000/01/04}{Einlesen der Schriftgrößen-Options-Datei -% funktioniert nun mit diversen Größen} -% \changes{v2.98c}{2008/03/26}{Eigene \texttt{scrsize}-Dateien definiert} -% -% \iffalse -% -%<*10pt|11pt|12pt> -% \fi -% -% Es werden min. drei Schriftgrößendateien benötigt. Ab Version 2.98c -% verwendet \KOMAScript{} vorzugsweise eigene Dateien, die auch noch zu einem -% späteren Zeitpunkt geladen werden können. Ansonsten sind diese Dateien -% weitestgehend dem Quellcode der Standardklassen \texttt{classes.dtx} -% entnommen. -% -% \begin{macrocode} -\ProvidesFile{% -%<10pt> scrsize10pt.clo% -%<11pt> scrsize11pt.clo% -%<12pt> scrsize12pt.clo% -}[\KOMAScriptVersion\space font size class option % -%<10pt> (10pt)% -%<11pt> (11pt)% -%<12pt> (12pt)% -] -% \end{macrocode} -% -% \begin{macro}{\normalsize} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\small} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\footnotesize} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\scriptsize} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\tiny} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\large} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\Large} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\LARGE} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\huge} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\Huge} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% Siehe \texttt{classes.dtx}. -% \begin{macrocode} -\def\normalsize{% -%<*10pt> - \@setfontsize\normalsize\@xpt\@xiipt - \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ -% -%<*11pt> - \@setfontsize\normalsize\@xipt{13.6}% - \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ -% -%<*12pt> - \@setfontsize\normalsize\@xiipt{14.5}% - \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ -% - \belowdisplayskip \abovedisplayskip - \let\@listi\@listI -} -\def\small{% -%<*10pt> - \@setfontsize\small\@ixpt{11}% - \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus2\p@ - \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 4\p@ \@plus2\p@ \@minus2\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep}% -% -%<*11pt> - \@setfontsize\small\@xpt\@xiipt - \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 6\p@ \@plus2\p@ \@minus2\p@ - \parsep 3\p@ \@plus2\p@ \@minus\p@ - \itemsep \parsep}% -% -%<*12pt> - \@setfontsize\small\@xipt{13.6}% - \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 9\p@ \@plus3\p@ \@minus5\p@ - \parsep 4.5\p@ \@plus2\p@ \@minus\p@ - \itemsep \parsep}% -% - \belowdisplayskip \abovedisplayskip -} -\def\footnotesize{% -%<*10pt> - \@setfontsize\footnotesize\@viiipt{9.5}% - \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus\p@ - \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 3\p@ \@plus\p@ \@minus\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep}% -% -%<*11pt> - \@setfontsize\footnotesize\@ixpt{11}% - \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus\p@ - \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 4\p@ \@plus2\p@ \@minus2\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep}% -% -%<*12pt> - \@setfontsize\footnotesize\@xpt\@xiipt - \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 6\p@ \@plus2\p@ \@minus2\p@ - \parsep 3\p@ \@plus2\p@ \@minus\p@ - \itemsep \parsep}% -% - \belowdisplayskip \abovedisplayskip -} -%<*10pt> -\def\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt} -\def\tiny{\@setfontsize\tiny\@vpt\@vipt} -\def\large{\@setfontsize\large\@xiipt{14}} -\def\Large{\@setfontsize\Large\@xivpt{18}} -\def\LARGE{\@setfontsize\LARGE\@xviipt{22}} -\def\huge{\@setfontsize\huge\@xxpt{25}} -\def\Huge{\@setfontsize\Huge\@xxvpt{30}} -% -%<*11pt> -\def\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}} -\def\tiny{\@setfontsize\tiny\@vipt\@viipt} -\def\large{\@setfontsize\large\@xiipt{14}} -\def\Large{\@setfontsize\Large\@xivpt{18}} -\def\LARGE{\@setfontsize\LARGE\@xviipt{22}} -\def\huge{\@setfontsize\huge\@xxpt{25}} -\def\Huge{\@setfontsize\Huge\@xxvpt{30}} -% -%<*12pt> -\def\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}} -\def\tiny{\@setfontsize\tiny\@vipt\@viipt} -\def\large{\@setfontsize\large\@xivpt{18}} -\def\Large{\@setfontsize\Large\@xviipt{22}} -\def\LARGE{\@setfontsize\LARGE\@xxpt{25}} -\def\huge{\@setfontsize\huge\@xxvpt{30}} -\let\Huge=\huge -% -\normalsize -% \end{macrocode} -% \begin{Length}{\footnotesep} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\footins} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\floatsep} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\textfloatsep} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\intextsep} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\dblfloatsep} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\sbltextfloatsep} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\@fptop} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\@fpsep} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\@fpbot} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\@dblfptop} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\@dblfpsep} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\@dblfpbot} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{Length}{\partopsep} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% Siehe \texttt{classes.dtx}. -% \begin{macrocode} -%<*10pt> -\setlength\footnotesep {6.65\p@} -\setlength{\skip\footins} {9\p@ \@plus 4\p@ \@minus 2\p@} -\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\@fptop {0\p@ \@plus 1fil} -\setlength\@fpsep {8\p@ \@plus 2fil} -\setlength\@fpbot {0\p@ \@plus 1fil} -\setlength\@dblfptop {0\p@ \@plus 1fil} -\setlength\@dblfpsep {8\p@ \@plus 2fil} -\setlength\@dblfpbot {0\p@ \@plus 1fil} -\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@} -% -%<*11pt> -\setlength\footnotesep {7.7\p@} -\setlength{\skip\footins} {10\p@ \@plus 4\p@ \@minus 2\p@} -\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\@fptop {0\p@ \@plus 1fil} -\setlength\@fpsep {8\p@ \@plus 2fil} -\setlength\@fpbot {0\p@ \@plus 1fil} -\setlength\@dblfptop {0\p@ \@plus 1fil} -\setlength\@dblfpsep {8\p@ \@plus 2fil} -\setlength\@dblfpbot {0\p@ \@plus 1fil} -\setlength\partopsep {3\p@ \@plus 1\p@ \@minus 1\p@} -% -%<*12pt> -\setlength\footnotesep {8.4\p@} -\setlength{\skip\footins} {10.8\p@ \@plus 4\p@ \@minus 2\p@} -\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@} -\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\@fptop {0\p@ \@plus 1fil} -\setlength\@fpsep {10\p@ \@plus 2fil} -\setlength\@fpbot {0\p@ \@plus 1fil} -\setlength\@dblfptop {0\p@ \@plus 1fil} -\setlength\@dblfpsep {10\p@ \@plus 2fil} -\setlength\@dblfpbot {0\p@ \@plus 1fil} -\setlength\partopsep {3\p@ \@plus 2\p@ \@minus 2\p@} -% -% \end{macrocode} -% \begin{macro}{\@listi} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\@listii} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\@listiii} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\@listiv} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\@listv} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% \begin{macro}{\@listvi} -% \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} -% Siehe \texttt{classes.dtx}. -% \begin{macrocode} -\def\@listi{\leftmargin\leftmargini -%<*10pt> - \parsep 4\p@ \@plus2\p@ \@minus\p@ - \topsep 8\p@ \@plus2\p@ \@minus4\p@ - \itemsep4\p@ \@plus2\p@ \@minus\p@} -% -%<*11pt> - \parsep 4.5\p@ \@plus2\p@ \@minus\p@ - \topsep 9\p@ \@plus3\p@ \@minus5\p@ - \itemsep4.5\p@ \@plus2\p@ \@minus\p@} -% -%<*12pt> - \parsep 5\p@ \@plus2.5\p@ \@minus\p@ - \topsep 10\p@ \@plus4\p@ \@minus6\p@ - \itemsep5\p@ \@plus2.5\p@ \@minus\p@} -% -\let\@listI\@listi -\def\@listii {\leftmargin\leftmarginii - \labelwidth\leftmarginii - \advance\labelwidth-\labelsep -%<*10pt> - \topsep 4\p@ \@plus2\p@ \@minus\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ -% -%<*11pt> - \topsep 4.5\p@ \@plus2\p@ \@minus\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ -% -%<*12pt> - \topsep 5\p@ \@plus2.5\p@ \@minus\p@ - \parsep 2.5\p@ \@plus\p@ \@minus\p@ -% - \itemsep \parsep} -\def\@listiii{\leftmargin\leftmarginiii - \labelwidth\leftmarginiii - \advance\labelwidth-\labelsep -%<10pt> \topsep 2\p@ \@plus\p@\@minus\p@ -%<11pt> \topsep 2\p@ \@plus\p@\@minus\p@ -%<12pt> \topsep 2.5\p@\@plus\p@\@minus\p@ - \parsep \z@ - \partopsep \p@ \@plus\z@ \@minus\p@ - \itemsep \topsep} -\def\@listiv {\leftmargin\leftmarginiv - \labelwidth\leftmarginiv - \advance\labelwidth-\labelsep} -\def\@listv {\leftmargin\leftmarginv - \labelwidth\leftmarginv - \advance\labelwidth-\labelsep} -\def\@listvi {\leftmargin\leftmarginvi - \labelwidth\leftmarginvi - \advance\labelwidth-\labelsep} -% \end{macrocode} -% \iffalse -% -%<*body> -% \fi -% -% \iffalse -%<*class|extend> -% \fi -% -% \begin{macro}{\changefontsizes} -% \changes{v2.96}{2006/08/11}{neue Anweisung (benötigt \eTeX)} -% \changes{v3.08b}{2011/02/22}{drei falsche \cs{def} durch \cs{edef} -% ersetzt} -% Diese Anweisung bietet berechnete Schriftgrößen als Fallbacklösung an. Das -% optionale erste Argument ist dabei der Grundlinienabstand. Das zweite -% Argument ist die gewünschte Grundschriftgröße. -% \begin{macrocode} -\newcommand*{\changefontsizes}[2][1.2\@tempdima]{% -% \ClassWarning{\KOMAClassName}{% -% \PackageWarning{scrextend}{% - Using fallback calculation to setup font sizes\MessageBreak - for basic size `#2'}% - \scr@ifundefinedorrelax{dimexpr}{% -% \ClassError{\KOMAClassName}{% -% \PackageError{scrextend}{% - feature only allowed using e-TeX% - }{% - The fallback calculation to setup font sizes was implemented - using e-TeX.\MessageBreak - You should not continue, because the fallback calculation would fail% - } - }{% - \@defaultunits\@tempdima#2pt\relax\@nnil - \setlength{\@tempdimc}{\@tempdima}% - \addtolength{\@tempdimc}{-10\p@}% - \edef\@ptsize{\strip@pt\@tempdimc}% - \@defaultunits\@tempdimb#1pt\relax\@nnil - \setlength{\@tempdimc}{\dimexpr (100\@tempdimb / \@tempdima * \p@)}% - \edef\@tempb{\the\@tempdimc}% - \setlength{\@tempdimc}{\@tempdima}% - \def\@tempa##1##2##3##4##5\@nnil{\def##1{##2.##3##4}}% - \expandafter\@tempa\expandafter\@tempb\@tempb\@nnil% -% \end{macrocode} -% Ab hier ist \cs{@tempdimc} die gewünschte Grundschriftgröße in pt und -% \cs{@tempb} der Faktor für den Grundlinienabstand auf 2 Stellen hinter dem -% Komma. -% \begin{macrocode} - \setlength{\abovedisplayskip}{% - \@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}% - \setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}% - \setlength{\belowdisplayskip}{\abovedisplayskip}% - \setlength{\belowdisplayshortskip}{% - .55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}% - \edef\normalsize{% - \noexpand\@setfontsize\noexpand\normalsize - {\the\@tempdima}{\the\@tempdimb}% - \abovedisplayskip \the\abovedisplayskip - \abovedisplayshortskip \the\abovedisplayshortskip - \belowdisplayskip \the\belowdisplayskip - \belowdisplayshortskip \the\belowdisplayshortskip - \let\noexpand\@listi\noexpand\@listI - }% - \setlength{\@tempdima}{0.9125\@tempdimc}% - \setlength{\@tempdimb}{\@tempb\@tempdima}% - \setlength{\abovedisplayskip}{% - \@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}% - \setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}% - \setlength{\belowdisplayskip}{\abovedisplayskip}% - \setlength{\belowdisplayshortskip}{% - .55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}% - \edef\small{% - \noexpand\@setfontsize\noexpand\small - {\the\@tempdima}{\the\@tempdimb}% - \abovedisplayskip \the\abovedisplayskip - \abovedisplayshortskip \the\abovedisplayshortskip - \belowdisplayskip \the\belowdisplayskip - \belowdisplayshortskip \the\belowdisplayshortskip - \let\noexpand\@listi\noexpand\@listi@small - }% - \setlength{\@tempdima}{.83334\@tempdimc}% - \setlength{\@tempdimb}{\@tempb\@tempdima}% - \setlength{\abovedisplayskip}{% - \@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}% - \setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}% - \setlength{\belowdisplayskip}{\abovedisplayskip}% - \setlength{\belowdisplayshortskip}{% - .55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}% - \edef\footnotesize{% - \noexpand\@setfontsize\noexpand\footnotesize - {\the\@tempdima}{\the\@tempdimb}% - \abovedisplayskip \the\abovedisplayskip - \abovedisplayshortskip \the\abovedisplayshortskip - \belowdisplayskip \the\belowdisplayskip - \belowdisplayshortskip \the\belowdisplayshortskip - \let\noexpand\@listi\noexpand\@listi@footnotesize - }% - \setlength{\@tempdima}{.66667\@tempdimc}% - \setlength{\@tempdimb}{\@tempb\@tempdima}% - \edef\scriptsize{% - \noexpand\@setfontsize\noexpand\scriptsize - {\the\@tempdima}{\the\@tempdimb}% - }% - \setlength{\@tempdima}{.5\@tempdimc}% - \setlength{\@tempdimb}{\@tempb\@tempdima}% - \edef\tiny{% - \noexpand\@setfontsize\noexpand\tiny - {\the\@tempdima}{\the\@tempdimb}% - }% - \setlength{\@tempdima}{1.2\@tempdimc}% - \setlength{\@tempdimb}{\@tempb\@tempdima}% - \edef\large{% - \noexpand\@setfontsize\noexpand\large - {\the\@tempdima}{\the\@tempdimb}% - }% - \setlength{\@tempdima}{1.44\@tempdimc}% - \setlength{\@tempdimb}{\@tempb\@tempdima}% - \edef\Large{% - \noexpand\@setfontsize\noexpand\Large - {\the\@tempdima}{\the\@tempdimb}% - }% - \setlength{\@tempdima}{1.728\@tempdimc}% - \setlength{\@tempdimb}{\@tempb\@tempdima}% - \edef\LARGE{% - \noexpand\@setfontsize\noexpand\LARGE - {\the\@tempdima}{\the\@tempdimb}% - }% - \setlength{\@tempdima}{2.074\@tempdimc}% - \setlength{\@tempdimb}{\@tempb\@tempdima}% - \edef\huge{% - \noexpand\@setfontsize\noexpand\huge - {\the\@tempdima}{\the\@tempdimb}% - }% - \setlength{\@tempdima}{2.488\@tempdimc}% - \setlength{\@tempdimb}{\@tempb\@tempdima}% - \edef\Huge{% - \noexpand\@setfontsize\noexpand\Huge - {\the\@tempdima}{\the\@tempdimb}% - }% - \normalsize - \setlength{\footnotesep}{.7\@tempdimc}% - \setlength{\skip\footins}{.9\@tempdimc \@plus .3333\@tempdimc \@minus - .6\@tempdimc}% - \setlength{\floatsep}{\@tempdimc \@plus .1667\@tempdimc \@minus - .3333\@tempdimc}% - \setlength{\textfloatsep}{1.6667\@tempdimc \@plus .1667\@tempdimc \@minus - .3333\@tempdimc}% - \setlength{\intextsep}{\@tempb\@tempdimc \@plus .3333\@tempdimc \@minus - .3333\@tempdimc}% - \setlength{\dblfloatsep}{\@tempb\@tempdimc \@plus .1667\@tempdimc \@minus - .3333\@tempdimc}% - \setlength{\dbltextfloatsep}{\textfloatsep}% - \setlength{\@fptop}{0\p@ \@plus 1fil}% - \setlength{\@fpsep}{.8333\@tempdimc \@plus 2fil}% - \setlength{\@fpbot}{\@fptop}% - \setlength{\@dblfptop}{0\p@ \@plus 1fil}% - \setlength{\@dblfpsep}{.8333\@tempdimc \@plus 2fil}% - \setlength{\@dblfpbot}{\@fptop}% - \setlength{\partopsep}{.25\@tempdimc \@plus .16667\@tempdimc \@minus - .16667\@tempdimc}% - \setlength{\topsep}{.8333\@tempdimc \@plus .3333\@tempdimc \@minus - .5\@tempdimc}% - \setlength{\parsep}{.4167\@tempdimc \@plus .2083\@tempdimc \@minus \p@}% - \@tempswafalse - \begingroup - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listi\endcsname - \endgroup - \edef\@listi{\leftmargin\leftmargini - \topsep \the\topsep - \parsep \the\parsep - \itemsep \parsep - \if@tempswa\noexpand\@list@extra\fi - }% - \let\@listI\@listi - \setlength{\topsep}{.75\@tempdimc \@plus .25\@tempdimc \@minus - .41667\@tempdimc}% - \setlength{\parsep}{.375\@tempdimc \@plus .16667\@tempdimc \@minus \p@}% - \@tempswafalse - \begingroup - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listi\endcsname - \endgroup - \edef\@listi@small{\leftmargin\leftmargini - \topsep \the\topsep - \parsep \the\parsep - \itemsep \parsep - \if@tempswa\noexpand\@list@extra\fi - }% - \setlength{\topsep}{.5\@tempdimc \@plus .16667\@tempdimc \@minus - .16667\@tempdimc}% - \setlength{\parsep}{.25\@tempdimc \@plus .16667\@tempdimc \@minus \p@}% - \@tempswafalse - \begingroup - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listi\endcsname - \endgroup - \edef\@listi@footnotesize{\leftmargin\leftmargini - \topsep \the\topsep - \parsep \the\parsep - \itemsep \parsep - \if@tempswa\noexpand\@list@extra\fi - }% - \setlength{\topsep}{.4167\@tempdimc \@plus .2083\@tempdimc \@minus \p@}% - \setlength{\parsep}{.2083\@tempdimc \@plus \p@ \@minus \p@}% - \@tempswafalse - \begingroup - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listii\endcsname - \endgroup - \edef\@listii{\leftmargin\leftmarginii - \labelwidth=\dimexpr \leftmargin-\labelsep - \topsep \the\topsep - \parsep \the\parsep - \itemsep \parsep - \if@tempswa\noexpand\@list@extra\fi - }% - \setlength{\topsep}{.2083\@tempdimc \@plus \p@ \@minus \p@}% - \setlength{\parsep}{\p@ \@plus\z@ \@minus\p@}% - \@tempswafalse - \begingroup - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listiii\endcsname - \endgroup - \edef\@listiii{\leftmargin\leftmarginiii - \labelwidth=\dimexpr \leftmargin-\labelsep - \topsep \the\topsep - \parsep \z@ - \partopsep \the\parsep - \itemsep \topsep - \if@tempswa\noexpand\@list@extra\fi - }% - \@tempswafalse - \begingroup - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listiv\endcsname - \endgroup - \edef\@listiv{\leftmargin\leftmarginiv - \labelwidth=\dimexpr \leftmargin-\labelsep - \if@tempswa\noexpand\@list@extra\fi - }% - \@tempswafalse - \begingroup - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listv\endcsname - \endgroup - \edef\@listv{\leftmargin\leftmarginv - \labelwidth=\dimexpr \leftmargin-\labelsep - \if@tempswa\noexpand\@list@extra\fi - }% - \@tempswafalse - \begingroup - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listvi\endcsname - \endgroup - \edef\@listvi{\leftmargin\leftmarginvi - \labelwidth=\dimexpr \leftmargin-\labelsep - \if@tempswa\noexpand\@list@extra\fi - }% - \@listi -% \end{macrocode} -% Einige Platzierungsabstände sind ebenfalls schriftgrößenabhängig: -% \changes{v2.97c}{2007/07/04}{\cs{intextsep} setzen} -% \changes{v2.97c}{2007/07/04}{\cs{dblfloatsep} setzen} -% \changes{v2.97c}{2007/07/04}{\cs{partopsep} setzen} -% \begin{macrocode} - \setlength{\@tempdimb}{\@tempb\@tempdima}% - \setlength{\@tempdima}{\dimexpr \@tempdimb-\@tempdimc}% - \setlength\intextsep{\@tempdimb \@plus.2\@tempdima \@minus.2\@tempdima}% - \setlength\dblfloatsep\intextsep - \setlength\partopsep{.2\@tempdimc \@plus.1\@tempdimc \@minus.1\@tempdimc}% - }% -} -% \end{macrocode} -% \end{macro} -% \iffalse -% -%<*generator> -% \fi -% \begin{macro}{\generatefontfile} -% \changes{v3.09}{2011/02/23}{Neu} -% Dies ist die zentrale Anweisung des neuen Generators. Es wird eine neue -% Schriftgrößendatei ausgegeben. Der Name dieser Datei setzt sich aus dem -% ersten obligaorischen Argument gefolgt von der Schriftgröße und der -% Erweiterung \texttt{.clo} zusammen. Da Schriftgrößendateien, die mit -% »\texttt{scrsize}« beginnen, \KOMAScript{} vorbehalten sind wird dieses -% erste Argument verweigert. -% \begin{macrocode} -\newcommand*{\generatefontfile}[1]{% - \ifstr{#1}{scrsize}{% - \ClassError{\KOMAClassName}{% - Font file name `scrsize' not allowed% - }{% - Font files with name `scrsize.clo' are reserved for - KOMA-Script.\MessageBreak - You should use another prefix and rename \string\@fontsizefilebase\space - either before\MessageBreak - loading a KOMA-Script class using one of \string\documentclass, - \string\LoadClass,\MessageBreak - or \string\LoadClassWithOptions\space or before loading package - `scrextend' using another\MessageBreak - class.}% - \@@@generatefontfile - }{% -% \end{macrocode} -% Das zweite Argument ist optional. Ist es angegeben, so gibt es den -% gewünschten Zeilenabstand an. Ist es nicht angegeben, so wird der -% Zeilenabstand |\changefontsized| überlassen. Das dritte Argument ist -% schließlich die gewünschte Schriftgröße. -% \begin{macrocode} - \@ifnextchar [{\@generatefontfile{#1}}{\@@generatefontfile{#1}}% - }% -} -% \end{macrocode} -% \begin{macro}{\@generatefontfile} -% \changes{v3.09}{2011/02/23}{Neu (intern)} -% \begin{macro}{\@@generatefontfile} -% \changes{v3.09}{2011/02/23}{Neu (intern)} -% Diese beiden Hilfsmakros werden benötigt, um Aufrufe von |\generatefontfile| -% mit oder ohne optionales, zweites Argument zu behandeln. In jedem Fall wird -% die gewünschte Schriftgröße innerhalb einer Gruppe mit Hilfe von -% |\changefontsizes| bestimmt und dann eine Datei mit den dabei ermittelten -% Einstellungen ausgegeben. -% \begin{macrocode} -\newcommand*{\@generatefontfile}{} -\def\@generatefontfile#1[#2]#3{% - \begingroup - \@ifundefined{setparsizes}{\setlength{\parskip}{0pt}}% - {\setparsizes{0pt}{0pt}{0pt}}% - \changefontsizes[{#2}]{#3}% - \generate@fontfile{#1}{#3}% - \endgroup -} -\newcommand\@@generatefontfile[2]{% - \begingroup - \@ifundefined{setparsizes}{\setlength{\parskip}{0pt}}% - {\setparsizes{0pt}{0pt}{0pt}}% - \changefontsizes{#2}% - \generate@fontfile{#1}{#2}% - \endgroup -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\@@@generatorfontfile} -% \changes{v3.09}{2011/02/23}{Neu (intern)} -% Dieses Hilfsmakro wird hingegen im Fehlerfall aufgerufen, um die Ausgabe -% einer Schriftgrößendatei zu verhindern. -% \begin{macrocode} -\newcommand*{\@@@generatefontfile}[2][]{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@fontfile} -% \changes{v3.09}{2011/02/23}{Neu (intern)} -% Da später die Verwendung von |\generatefontfile| noch auf die Präambel -% beschränkt werden wird, ist es kein Problem hier |\@mainaux| für die Ausgabe -% zu missbrauchen. Das funktioniert aber nur, weil |\@mainaux| erst innerhalb -% von |\begin{document}| tatsächlich geöffnet wird. Die Dateisparsamkeit an -% dieser Stelle ist also eigentlich ein ziemlich unsauberer Hack! -% \begin{macrocode} -\newcommand*{\@fontfile}{} -\let\@fontfile\@mainaux -% \end{macrocode} -% \begin{macro}{\generate@fontfile} -% \changes{v3.09}{2011/02/23}{Neu (intern)} -% Es wird nun eine Schriftgrößendatei ausgegeben. Dabei werden die aktuellen -% Einstellungen verwendet. Dabei wird die Tatsache ausgenutzt, dass diese -% Anweisung immer innerhalb einer Gruppe aufgerufen wird. Das erste Argument -% ist der Dateinamenpräfix (also so etwas wie »\texttt{scrsize}«, das zweite -% Argument die gewünschte Schriftgröße. Es ist zu beachten, dass alle Werte in -% der Datei in pt angegeben werden, auch wenn die gewünschte Schriftgröße eine -% ganz andere Einheit besitzt. Das macht schlicht die Arbeit etwas einfacher. -% \begin{macrocode} -\newcommand*{\generate@fontfile}[2]{% - \def\@ind{\space\space}% - \immediate\openout\@fontfile #1#2.clo - \immediate\write\@fontfile{\@percentchar^^J% - \@percentchar\space This is file `#1#2.clo', generated with^^J% - \@percentchar\space scrfontsizes - \csname ver@scrfontsizes.sty\endcsname,^^J% - \@percentchar\space Copyright (c) Markus Kohm.^^J% - \@percentchar^^J% - \string\ProvidesFile{#1#2.clo}[% - \the\year/\ifnum\month<10 0\fi\the\month/\ifnum\day<10 0\fi\the\day% - \space generated font size class option (#2)]}% - \immediate\write\@fontfile{% - \string\def\string\normalsize{\@percentchar^^J% - \@ind\string\@setfontsize\string\normalsize{\f@size}{\f@baselineskip}% - \@percentchar^^J% - \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J% - \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J% - \@ind\string\belowdisplayskip\space \the\belowdisplayskip^^J% - \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J% - \@ind\string\let\string\@listi\string\@listI^^J% - }\@percentchar% - }% - \begingroup\small\@listi - \immediate\write\@fontfile{% - \string\def\string\small{\@percentchar^^J% - \@ind\string\@setfontsize\string\small{\f@size}{\f@baselineskip}% - \@percentchar^^J% - \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J% - \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J% - \@ind\string\belowdisplayskip\space \the\belowdisplayskip^^J% - \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J% - \@ind\string\def\string\@listi{\@percentchar^^J% - \@ind\@ind\string\leftmargin\string\leftmargini^^J% - \@ind\@ind\string\topsep \the\topsep^^J% - \@ind\@ind\string\parsep \the\parsep^^J% - \@ind\@ind\string\itemsep \string\parsep^^J% - \@ind}\@percentchar^^J% - }\@percentchar% - }% - \endgroup - \begingroup\footnotesize\@listi - \immediate\write\@fontfile{% - \string\def\string\footnotesize{\@percentchar^^J% - \@ind\string\@setfontsize\string\small{\f@size}{\f@baselineskip}% - \@percentchar^^J% - \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J% - \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J% - \@ind\string\belowdisplayskip\space \the\belowdisplayskip^^J% - \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J% - \@ind\string\def\string\@listi{\@percentchar^^J% - \@ind\@ind\string\leftmargin\string\leftmargini^^J% - \@ind\@ind\string\topsep \the\topsep^^J% - \@ind\@ind\string\parsep \the\parsep^^J% - \@ind\@ind\string\itemsep \string\parsep^^J% - \@ind}\@percentchar^^J% - }\@percentchar% - }% - \endgroup - \begingroup\scriptsize - \immediate\write\@fontfile{% - \string\def\string\scriptsize{% - \string\@setfontsize\string\scriptsize{\f@size}{\f@baselineskip}% - }\@percentchar% - }% - \endgroup - \begingroup\tiny - \immediate\write\@fontfile{% - \string\def\string\tiny{% - \string\@setfontsize\string\tiny{\f@size}{\f@baselineskip}% - }\@percentchar% - }% - \endgroup - \begingroup\large - \immediate\write\@fontfile{% - \string\def\string\large{% - \string\@setfontsize\string\large{\f@size}{\f@baselineskip}% - }\@percentchar% - }% - \endgroup - \begingroup\Large - \immediate\write\@fontfile{% - \string\def\string\Large{% - \string\@setfontsize\string\Large{\f@size}{\f@baselineskip}% - }\@percentchar% - }% - \endgroup - \begingroup\LARGE - \immediate\write\@fontfile{% - \string\def\string\LARGE{% - \string\@setfontsize\string\LARGE{\f@size}{\f@baselineskip}% - }\@percentchar% - }% - \endgroup - \begingroup\huge - \immediate\write\@fontfile{% - \string\def\string\huge{% - \string\@setfontsize\string\huge{\f@size}{\f@baselineskip}% - }\@percentchar% - }% - \endgroup - \begingroup\Huge - \immediate\write\@fontfile{% - \string\def\string\Huge{% - \string\@setfontsize\string\Huge{\f@size}{\f@baselineskip}% - }\@percentchar% - }% - \endgroup - \immediate\write\@fontfile{\string\normalsize}% - \immediate\write\@fontfile{% - \string\setlength{\string\footnotesep}{\the\footnotesep}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\skip\string\footins}{\the\skip\footins}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\floatsep}{\the\floatsep}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\textfloatsep}{\the\textfloatsep}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\intextsep}{\the\intextsep}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\dblfloatsep}{\the\dblfloatsep}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\dbltextfloatsep}{\the\dbltextfloatsep}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\@fptop}{\the\@fptop}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\@fpsep}{\the\@fpsep}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\@fpbot}{\the\@fpbot}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\@dblfptop}{\the\@dblfptop}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\@dblfpsep}{\the\@dblfpsep}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\@dblfpbot}{\the\@dblfpbot}\@percentchar - }% - \immediate\write\@fontfile{% - \string\setlength{\string\partopsep}{\the\partopsep}\@percentchar - }% - \begingroup - \@listi - \immediate\write\@fontfile{% - \string\def\string\@listi{\@percentchar^^J% - \@ind\string\leftmargin\string\leftmargini^^J% - \@ind\string\topsep \the\topsep^^J% - \@ind\string\parsep \the\parsep^^J% - \@ind\string\itemsep \string\parsep^^J% - }\@percentchar - }% - \endgroup - \immediate\write\@fontfile{% - \string\let\string\@listI\string\@listi - }% - \begingroup - \@listii - \immediate\write\@fontfile{% - \string\def\string\@listii{\@percentchar^^J% - \@ind\string\leftmargin\string\leftmarginii^^J% - \@ind\string\labelwidth\string\leftmarginii^^J% - \@ind\string\advance\string\labelwidth-\string\labelsep^^J% - \@ind\string\topsep \the\topsep^^J% - \@ind\string\parsep \the\parsep^^J% - \@ind\string\itemsep \string\parsep^^J% - }\@percentchar - }% - \endgroup - \begingroup - \@listiii - \immediate\write\@fontfile{% - \string\def\string\@listiii{\@percentchar^^J% - \@ind\string\leftmargin\string\leftmarginiii^^J% - \@ind\string\labelwidth\string\leftmarginiii^^J% - \@ind\string\advance\string\labelwidth-\string\labelsep^^J% - \@ind\string\topsep \the\topsep^^J% - \@ind\string\parsep \the\parsep^^J% - \@ind\string\partopsep \the\partopsep^^J% - \@ind\string\itemsep \string\topsep^^J% - }\@percentchar - }% - \endgroup - \begingroup - \@listiv - \immediate\write\@fontfile{% - \string\def\string\@listiv{\@percentchar^^J% - \@ind\string\leftmargin\string\leftmarginiv^^J% - \@ind\string\labelwidth\string\leftmarginiv^^J% - \@ind\string\advance\string\labelwidth-\string\labelsep^^J% - }\@percentchar - }% - \endgroup - \begingroup - \@listv - \immediate\write\@fontfile{% - \string\def\string\@listv{\@percentchar^^J% - \@ind\string\leftmargin\string\leftmarginv^^J% - \@ind\string\labelwidth\string\leftmarginv^^J% - \@ind\string\advance\string\labelwidth-\string\labelsep^^J% - }\@percentchar - }% - \endgroup - \begingroup - \@listvi - \immediate\write\@fontfile{% - \string\def\string\@listvi{\@percentchar^^J% - \@ind\string\leftmargin\string\leftmarginvi^^J% - \@ind\string\labelwidth\string\leftmarginvi^^J% - \@ind\string\advance\string\labelwidth-\string\labelsep^^J% - }\@percentchar - }% - \endgroup - \immediate\write\@fontfile{% - \string\@ifundefined{@list@extra}{}{\@percentchar^^J% - \@ind\string\l@addto@macro{\string\@listi}{\string\@list@extra}% - \@percentchar^^J% - \@ind\string\let\string\@listI=\string\@listi^^J% - \@ind\string\l@addto@macro{\string\@listii}{\string\@list@extra}% - \@percentchar^^J% - \@ind\string\l@addto@macro{\string\@listiii}{\string\@list@extra}% - \@percentchar^^J% - \@ind\string\l@addto@macro{\string\footnotesize}{\string\protect - \string\add@extra@listi{ftns}}\@percentchar^^J% - \@ind\string\l@addto@macro{\string\small}{\string\protect - \string\add@extra@listi{sml}}\@percentchar^^J% - }\@percentchar^^J% - \string\@listi^^J% - \string\endinput^^J% - \@percentchar^^J% - \@percentchar\space End of file `#1#2.clo'. - } - \immediate\closeout\@fontfile -} -\@onlypreamble\generatefontfile -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \iffalse -% -%<*class|extend> -% \fi -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% Zunächst wird die gewünschte Größe, die in \cs{@ptsize} abgelegt ist, als -% Länge ermittelt. In \cs{@tempa} wird die ursprünglich gewünschte Größe -% abgelegt, damit zwischen \texttt{10pt}, \texttt{10} und \texttt{10dd} -% unterschieden werden kann. In \cs{@tempb} wird hingegen die Größe in pt -% abgelegt, damit die Standard-Dateien verwendet werden können. Dann wird -% \cs{@ptsize} schon einmal richtig eingestellt. -% \begin{macrocode} -%<*!extend> -\expandafter\@defaultunits\expandafter\@tempdima\@ptsize pt\relax\@nnil -\edef\@tempa{\@ptsize}% -\setlength{\@tempdimb}{\@tempdima}% -\edef\@tempb{\strip@pt\@tempdimb}% -\addtolength{\@tempdimb}{-10\p@}% -\edef\@ptsize{\strip@pt\@tempdimb}% -% \end{macrocode} -% Jetzt wird zunächst versucht, ob eine Datei -% "`\texttt{\cs{fontsizefilebase}\cs{@tempa}.clo}"' vorhanden ist, also eine, -% bei der die ursprünliche Einheit im Namen angegeben ist. Wenn das der Fall -% ist, wird diese verwendet. Wenn nicht wird das Ganze für \cs{@tempb} um die -% Einheit pt erweitert wiederholt. -% \begin{macrocode} -\InputIfFileExists{\@fontsizefilebase\@tempa.clo}{ - \ClassInfo{\KOMAClassName}{% - File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}% -}{% - \InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{% - \ClassInfo{\KOMAClassName}{% - File `\@fontsizefilebase\@tempb pt.clo' used instead of\MessageBreak - file `\@fontsizefilebase\@tempa.clo' to setup font sizes}% - }{% -% \end{macrocode} -% Wurde bis hier noch keine Datei geladen, wird nun versucht, die -% Größendateien der Standardklassen zu verwenden. -% \begin{macrocode} -%<*book> - \InputIfFileExists{bk\@tempb.clo}{% - \ClassInfo{\KOMAClassName}{% - File `bk\@tempb.clo' used to setup font sizes}% - }{% -% - \InputIfFileExists{size\@tempb.clo}{% - \ClassInfo{\KOMAClassName}{% - File `size\@tempb.clo' used to setup font sizes}% - }{% -% \end{macrocode} -% Sind auch diese Dateien nicht vorhanden, so wird als Fallback eine -% Berechnung der Schriftgrößen verwendet. Es sei darauf hingewiesen, dass -% dabei auch \cs{@tempa}, \cs{@tempb} und \cs{@ptsize} neu gesetzt werden. -% \begin{macrocode} - \changefontsizes{\@tempa}% -% \end{macrocode} -% Damit sollten nun die Schriftgrößen eingestellt sein. -% \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ür den -% Kompatibilitätsmodus} -% Um die Umstellung von \LaTeX\ auf \LaTeXe\ zu erleichtern, gibt es -% die alten Font-Auswahlbefehle \cs{rm}, \cs{sf}, \cs{tt}, \cs{bf}, -% \cs{it}, \cs{sl} und \cs{sc} auch in den Klassen. Es ist zu -% beachten, dass diese Befehle hier nach dem alten -% Fontauswahlverfahren arbeiten. Es werden also immer alle Parameter -% zugleich geändert. Somit ist zu empfehlen, dass statt dieser Befehle -% zukünftig in der Regel die neuen \cs{text\dots}-Befehle verwendet -% werden. -% -% Der aus der \textsf{Script 2.0}-Familie bekannte Befehl \cs{sfb} ist -% hier ebenfalls definiert. -% \begin{macrocode} -%<*!extend> -\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}{hier statt im \LaTeX-Kern} -% Der Befehl ist in \LaTeX{} nicht mehr definiert. Deshalb wird er nun -% neu und gleich robust deklariert. Dafür fällt \cs{pcal} weg. -% \changes{v2.3g}{1996/01/14}{überflüssige Klammerpaare entfernt} -% \begin{macro}{\mit} -% \changes{v2.3}{1995/06/25}{hier statt im \LaTeX-Kern} -% Der Befehl ist in \LaTeX{} nicht mehr definiert. Deshalb wird er nun -% neu und gleich robust deklariert. Dafür fällt \cs{pmit} weg. -% \changes{v2.3g}{1996/01/14}{überflüssige Klammerpaare entfernt} -% -% Die beiden Befehle \cs{cal} und \cs{mit} war bis zur \LaTeX-Version -% vom 1.12.1994 patch level 3 noch im Kernal definiert. Jetzt sind die -% beiden den Klassen überlassen. Hier ist die Definition aus den -% Standard-classes übernommen. -% \begin{macrocode} -%<*!extend> -\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} -\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \iffalse -% -% \fi -% -% \subsection{Setzen der Schrift eines Elements} -% -% \iffalse -%<*scrkbase> -% \fi -% -% \begin{macro}{\setkomafont} -% \changes{v2.8o}{2001/09/14}{neu} -% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} -% Mit Hilfe dieses Makros kann die Schriftart von -% \KOMAScript-Elementen gesetzt werden. -% \begin{macrocode} -\newcommand*{\setkomafont}[2]{% - \@ifundefined{scr@fnt@#1}{% - \@ifundefined{scr@fnt@instead@#1}{% - \PackageError{scrkbase}{% - 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% - }% - }{% - \PackageInfo{scrkbase}{% - You've told me to redefine the font selection of the\MessageBreak - element `#1' that is an alias of element\MessageBreak - `\csname scr@fnt@instead@#1\endcsname'% - }% - \expandafter\setkomafont\expandafter{% - \csname scr@fnt@instead@#1\endcsname}{#2}% - }% - }{% - \expandafter\expandafter\expandafter\def\csname scr@fnt@#1\endcsname{#2}% - }% - \@ifundefined{scr@fnt@wrn@#1}{}{% - \PackageWarning{scrkbase}{% - \csname scr@fnt@wrn@#1\endcsname{#1}% - }% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\addtokomafont} -% \changes{v2.8p}{2001/09/22}{neu} -% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} -% Dieses Makro funktioniert fast wie obiges, allerdings fügt es der -% vorhandenen Definition etwas an. Dazu wird \cs{l@addto@macro} aus -% \textsf{scrkbase} verwendet. -% \begin{macrocode} -\newcommand*{\addtokomafont}[2]{% - \@ifundefined{scr@fnt@#1}{% - \@ifundefined{scr@fnt@instead@#1}{% - \PackageError{scrkbase}{% - 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% - }% - }{% - \PackageInfo{scrkbase}{% - You've told me to extend the font selection of the\MessageBreak - element `#1' that is an alias of element\MessageBreak - `\csname scr@fnt@instead@#1\endcsname'% - }% - \expandafter\addtokomafont\expandafter{% - \csname scr@fnt@instead@#1\endcsname}{#2}% - }% - }{% - \expandafter\expandafter\expandafter\l@addto@macro - \csname scr@fnt@#1\endcsname{#2}% - }% - \@ifundefined{scr@fnt@wrn@#1}{}{% - \PackageWarning{scrkbase}{% - \csname scr@fnt@wrn@#1\endcsname{#1}% - }% - }% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\usekomafont} -% \changes{v2.8p}{2001/09/28}{neu} -% \changes{v2.96}{2006/08/18}{Benutzung eines Fontalias korrigiert} -% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} -% Mit Hilfe dieses Makros kann auf die Schriftart von -% \KOMAScript-Elementen umgeschaltet werden. -% \begin{macrocode} -\newcommand*{\usekomafont}[1]{% - \@ifundefined{scr@fnt@#1}{% - \@ifundefined{scr@fnt@instead@#1}{% - \PackageError{scrkbase}{% - 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% - }% - }{% - \PackageInfo{scrkbase}{% - You've told me to use the font selection of the - element\MessageBreak - `#1' that is an alias of element `\csname - scr@fnt@instead@#1\endcsname'\MessageBreak - }% - \expandafter\expandafter\expandafter\usekomafont - \expandafter\expandafter\expandafter{% - \csname scr@fnt@instead@#1\endcsname}% - }% - }{% - \@nameuse{scr@fnt@#1}% - }% -} -% \end{macrocode} -% \end{macro} -% -% Um dann ein Element zu definieren, definiert man zunächst ein -% Makro, das die Schriftart enthält. Dann definiert man -% \cs{scr@fnt@\emph{Elementname}}. Wobei der Inhalt dieses Makros das -% Makro ist, das die Schriftart speichert. Damit ist das Element -% definiert. Soll ein Element durch ein anderes Element gesteuert -% werden, so definiert man stattdessen -% \cs{scr@fnt@instead@\emph{Elementname}}, wobei der Inhalt des Makros -% dann der Name jenes anderen Elements ist. Soll beim Ändern der -% Schrift eines Elements eine zusätzliche Warnung ausgegeben werden, -% so kann der Text dieser Warnung in -% \cs{scr@fnt@wrn@\emph{Elementname}} abgelegt werden. Also alles -% eigentlich ganz einfach. Damit es noch einfacher wird, ein paar -% Hilfsmakros: -% -% \begin{macro}{\newkomafont} -% \changes{v2.95}{2004/07/21}{neu} -% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} -% Mit \cs{newkomafont} wird ein neues Element definiert. Das erste optionale -% Argument ist dabei die optionale Warnung. Ist dieses nicht gesetzt oder -% \cs{relax}, so wird keine Warnung definiert. Das erste obligatorische -% Argument ist der Name des Elements. Als letztes folgt die Voreinstellung für -% die Schrift dieses Elements. Als Fontmakro wird übrigens -% \cs{@\emph{Elementname}font} definiert. -% \begin{macrocode} -\newcommand*{\newkomafont}[3][\relax]{% - \expandafter\newcommand\expandafter*\csname @#2font\endcsname{#3}% - \expandafter\expandafter\expandafter\newcommand - \expandafter\expandafter\expandafter*% - \expandafter\csname scr@fnt@#2\expandafter\endcsname\expandafter{% - \csname @#2font\endcsname% - }% - \ifx\relax#1\relax\else - \expandafter\newcommand\expandafter*\csname scr@fnt@wrn@#2\endcsname{#1}% - \fi -} -% \end{macrocode} -% \begin{macro}{\aliaskomafont} -% \changes{v2.95}{2004/07/21}{neu} -% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} -% Mit \cs{aliaskomafont} wird hingegen einfach ein Alias definiert. Dieser -% Befehlt kennt zwei Argumente: der Name des Elements und der Names des -% Elements, das stattdessen verwendet werden soll. -% \begin{macrocode} -\newcommand*{\aliaskomafont}[2]{% - \expandafter\newcommand\expandafter*\csname scr@fnt@instead@#1\endcsname{% - #2% - }% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \iffalse -% -% \fi -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrkfont.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkftn.dtx b/Master/texmf-dist/source/latex/koma-script/scrkftn.dtx deleted file mode 100644 index 9333dad76aa..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkftn.dtx +++ /dev/null @@ -1,606 +0,0 @@ -% \CheckSum{399} -% \iffalse meta-comment -% ====================================================================== -% scrkftn.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkftn.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkftn.dtx -%<*driver> -% \fi -\ProvidesFile{scrkftn.dtx}[2011/09/13 v3.10 KOMA-Script (footnotes)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkftn.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei - \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/07/01}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Fußnoten} -% -% Die Fußnotengestaltung in \KOMAScript{} basiert auf einem Hinweis -% aus dem dokumentierten \LaTeX-Kern. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*option> -% \fi -% -% \subsection{Option} -% -% \begin{option}{footnotes} -% \changes{v2.98c}{2008/02/01}{Neue Option für Mehrfachfußnoten}% -% \changes{v3.10}{2011/09/13}{\cs{let} durch \cs{def} ersetzt, damit die -% Option auch als Klassenoption funktioniert}% -% Mehrfachfußnoten gibt es dann, wenn zu einer Textstelle mehrere Fußnoten -% hintereinander gesetzt werden. Normalerweise werden die einfach ohne -% Abstand hintereinander geklatscht. Man kann dann aber die beiden Fußnoten -% 1 und 2 beispielsweise nicht von der Fußnote 12 unterscheiden. Besser ist -% es, wenn mehrere Fußnoten automatisch durch ein Trennzeichen getrennt -% werden. Die Funktion ist \textsf{footmisc} entnommen und sollte inklusive -% Ein- und Ausschalten auch zusammen mit diesem Paket funktionieren. -% \begin{macrocode} -\KOMA@key{footnotes}{% - \ifx\@footnotemark\scr@saved@footnotemark - \else - \ifx\@footnotemark\scr@footnotemark - \else -% \ClassWarning{\KOMAClassName}{% -% \PackageWarning{scrextend}{% - Change of `\string\@footnotemark' detected!\MessageBreak - Use of `footnotes=#1' may break\MessageBreak - another package!\MessageBreak - Maybe you should remove the usage of\MessageBreak - option `footnotes=#1'}% - \fi - \fi - \ifstr{#1}{multiple}{% - \let\@footnotemark\scr@footnotemark - \def\FN@mf@prepare{\scr@mf@prepare}% - \def\scr@footmisc@options{multiple}% - }{% - \ifstr{#1}{nomultiple}{% - \let\@footnotemark\scr@saved@footnotemark - \let\FN@mf@prepare\relax - \let\scr@footmisc@options\@empty - }{% - \KOMA@unknown@keyval{footnotes}{#1}{`multiple' and `nomultiple'}% - }% - }% -} -% \end{macrocode} -% \begin{macro}{\scr@footmisc@options} -% \changes{v2.98c}{2008/02/14}{Neuer (intern)} -% Für etwas mehr Kompatibilität mit \textsf{footmisc}, wird die aktuelle -% Einstellung der \texttt{multifootnotes} an das Paket weitergereicht. -% \begin{macrocode} -\newcommand*{\scr@footmisc@options}{} -\PassOptionsToPackage{\noexpand\scr@footmisc@options}{footmisc} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\scr@saved@footnotemark} -% \changes{v2.98c}{2008/02/01}{Neu (intern)} -% \begin{macro}{\scr@footnotemark} -% \changes{v2.98c}{2008/02/01}{Neu (intern)} -% \begin{macrocode} -\newcommand*{\scr@saved@footnotemark}{% - \leavevmode - \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi - \@makefnmark - \ifhmode\spacefactor\@x@sf\fi - \relax} -\expandafter\CheckCommand\expandafter*\expandafter\@footnotemark -\expandafter{\scr@saved@footnotemark} -\newcommand*{\scr@footnotemark}{% - \leavevmode - \ifhmode\edef\@x@sf{\the\spacefactor}\FN@mf@check\nobreak\fi - \@makefnmark - \csname FN@mf@prepare\endcsname - \ifhmode\spacefactor\@x@sf\fi - \relax} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{option} -% -% -% \iffalse -% -%<*body> -% \fi -% -% \subsection{Definitionen für Fußnoten} -% -% \begin{macro}{\footnoterule} -% \changes{v2.3a}{1995/07/08}{\cs{@width} verwendet} -% \changes{v2.8q}{2002/02/06}{\cs{raggedbottom}-Verbesserung -% eingefügt} -% \changes{v2.95}{2002/01/07}{\texttt{.05fil} statt -% \texttt{.005fil}} -% \changes{v3.06}{2010/04/03}{die neuen Längenmakros werden genutzt} -% \changes{v3.07}{2010/09/14}{neues Font-Element \texttt{footnoterule} wird -% verwendet} -% Im Fall, dass \cs{raggedbottom} verwendet wird, die Fußnotenlinie -% nach unten gedrückt. 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ürlich auch -% einmal schief gehen, ist dann aber auch nicht ganz so tragisch. -% \begin{macrocode} -%<*class> -\renewcommand*\footnoterule{% - \normalsize\ftn@rule@test@values - \kern-\dimexpr 2.6\p@+\ftn@rule@height\relax - \ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi - {\usekomafont{footnoterule}{% - \hrule \@height\ftn@rule@height \@width\ftn@rule@width}}% - \kern 2.6\p@} -% -% \end{macrocode} -% \begin{macro}{\ftn@rule@test@values} -% \changes{v3.06}{2010/04/03}{neu (intern)} -% Test, ob die Einstellungen für die Längen der Fußnotenlinie halbwegs -% vernünftig sind. -% \begin{macrocode} -\newcommand*{\ftn@rule@test@values}{% - \ifdim\ftn@rule@height <\z@ - \ClassWarning{\KOMAClassName}{% - You might get into trouble, because the\MessageBreak - height of the footnote rule has a value\MessageBreak - less than 0% - }% - \else - \ifdim\ftn@rule@height >\dimexpr\skip\footins -2.6\p@\relax - \ClassWarning{\KOMAClassName}{% - You might get into trouble, because the\MessageBreak - height of the footnote rule has a value\MessageBreak - greater than \the\dimexpr\skip\footins -2.6\p@\relax - }% - \fi - \fi - \ifdim\ftn@rule@width <\z@ - \ClassWarning{\KOMAClassName}{% - You might get into trouble, because the width\MessageBreak - or length of the footnote rule has a value\MessageBreak - less than 0pt% - }% - \else - \ifdim\ftn@rule@width >\columnwidth - \ClassWarning{\KOMAClassName}{% - You might get into trouble, because the width\MessageBreak - or length of the footnote rule has a value\MessageBreak - greater than \string\columnwidth - }% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{KOMAfont}{footnoterule} -% \changes{v3.07}{2010/09/14}{\texttt{footnoterule} ist ein eneues -% Fontelement} -% Damit man die Farbe der Fußnotentrennlinie ändern kann, gibt es nun ein -% eigenes Element dafür. Die Voreinstellung ist jedoch leer. -% \begin{macrocode} -\newkomafont{footnoterule}{} -% \end{macrocode} -% \end{KOMAfont} -% \begin{macro}{\ftn@rule@width} -% \changes{v3.06}{2010/04/03}{neu (intern)} -% Die Länge der Fußnotentrennlinie. -% \begin{macrocode} -\newcommand*{\ftn@rule@width}{.4\columnwidth} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ftn@rule@height} -% \changes{v3.06}{2010/04/03}{neu (intern)} -% Die Höhe der Fußnotentrennlinie (die Tiefe ist immer 0). -% \begin{macrocode} -\newcommand*{\ftn@rule@height}{.4\p@} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\setfootnoterule} -% \changes{v3.06}{2010/04/03}{neue Anweisung} -% Das erste, optionale Argument ist die Höhe der Linie, das zweite nicht -% optionale die Länge. -% \begin{macrocode} -\newcommand*{\setfootnoterule}[2][]{% - \ifstr{#1}{}{}{% - \renewcommand*{\ftn@rule@height}{#1}% - }% - \ifstr{#2}{}{}{% - \renewcommand*{\ftn@rule@width}{#2}% - }% - \ftn@rule@test@values -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{Counter}{footnote} -% Der Fußnotenzähler wird mit \cs{chapter} zurückgesetzt, die Fußnoten -% werden also kapitelweise nummeriert. -% \begin{macrocode} -%\@addtoreset{footnote}{chapter} -% \end{macrocode} -% \end{Counter} -% -% \begin{macro}{\deffootnote} -% \changes{v2.4l}{1997/02/06}{neu} -% \changes{v2.95}{2002/07/09}{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 zur Definition der Gestalt von Fußnoten erlaubt einen -% optionalen und erwartet drei weitere Parameter. Der erste, optionale -% gibt den Einzug der ersten Zeile des Fußnotentextes vom linken Rand -% an. Die Fußnotenmarkierungen werden rechtsbündig in diesen Einzug -% gesetzt. Der zweite, also erste nicht optionale Parameter gibt den -% Einzug jeder weiteren Zeile des Fußnotentextes vom linken Rand -% an. Fehlt der optionale Parameter so ist er gleich diesem. Der -% dritte, also zweite nicht optionale Parameter gibt den zusätzlichen -% Einzug jedes weiteren Absatzes einer Fußnote an. Der letzte -% Parameter schließlich bestimmt die Ausgabe der Fußnotenmarkierung in -% der Fußnote. Diese wird zusätzlich in eine \cs{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}{neu} -% Makro zum Setzen der Fußnotenmarkierung in der Fußnote: -% \begin{macrocode} - \def\@@makefnmark{\hbox{\ftnm@font{#4}}}% -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ftn@font} -% \changes{v2.8q}{2001/11/16}{neu (intern)} -% \begin{macro}{\scr@fnt@footnote} -% \changes{v2.8q}{2001/11/16}{neues Element \texttt{footnote}} -% \begin{macro}{\ftnm@font} -% \changes{v2.8q}{2001/11/16}{neu (intern)} -% \begin{macro}{\scr@fnt@footnotenumber} -% \changes{v2.8q}{2001/11/16}{neues Element -% \texttt{footnotenumber}} -% \begin{macro}{\scr@fnt@footnotenlabel} -% \changes{v2.8q}{2001/11/16}{neues Element \texttt{footnotelabel}} -% \begin{macro}{\scr@fnt@instead@footnotetext} -% \changes{v2.8q}{2001/11/16}{neuer Ersatz für Element -% \texttt{footnotetext}} -% Das erste Element gibt die Schrift an, in der die Fußnote gesetzt -% wird. Davon abweichend kann mit dem zweiten Element die Schriftart -% für die Fußnotennummer 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} -% -% \begin{macro}{\deffootnotemark} -% \changes{v2.4l}{1997/02/06}{neu} -% Makro zur Definition der Fußnotenmarkierung 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 (intern)} -% \begin{macro}{\scr@fnt@footnotereference} -% \changes{v2.8q}{2001/11/16}{neues Element -% \texttt{footnotereference}} -% \begin{macro}{\scr@fnt@footnoteref} -% \changes{v2.8q}{2001/11/16}{neues Element \texttt{footnoteref}} -% Dies ist die Schriftart der Fußnotenreferenz 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}{\FN@mf@check} -% \changes{v2.98c}{2008/02/01}{Neu (intern)} -% Dafür sorgen, dass hier ggf. der Trenner eingefügt wird. -% \begin{macrocode} -%\providecommand*{\FN@mf@check}{% -%\newcommand*{\FN@mf@check}{% - \ifdim\lastkern=\multiplefootnotemarker\relax - \edef\@x@sf{\the\spacefactor}% - \unkern\multiplefootnoteseparator - \spacefactor\@x@sf\relax - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\scr@mf@prepare} -% \changes{v2.98c}{2008/02/01}{Neu (intern)} -% Damit |\FN@mf@check| informiert ist, dass es etwas zu tun hat. -% \begin{macrocode} -\newcommand*{\scr@mf@prepare}{% - \kern-\multiplefootnotemarker - \kern\multiplefootnotemarker\relax -} -% \end{macro} -% \begin{macro}{\F@mf@prepare} -% \changes{v2.98c}{2008/02/14}{Neu (intern)} -% Aus Gründen der Kompatibilität mit \textsf{footmisc} wird das dann -% vorsoglich auch noch definiert (und zwar als \cs{relax}, wenn es bisher noch -% nicht definiert ist). -\@ifundefined{FN@mf@prepare}{}{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@footnotetext} -% \changes{v3.01a}{2008/11/22}{long} -% \begin{macro}{\scr@saved@footnotetext} -% \changes{v2.98c}{2008/02/01}{Neu (intern)} -% \changes{v3.01a}{2008/11/22}{long} -% Auch hier muss dafür gesorgt werden, dass die Markierung erfolgt. -% \begin{macrocode} -\newcommand{\scr@saved@footnotetext}{} -\let\scr@saved@footnotetext\@footnotetext -\renewcommand{\@footnotetext}[1]{% - \scr@saved@footnotetext{#1}% - \csname FN@mf@prepare\endcsname -} -% \end{macrocode} -% -% Es muss auch dafür gesorgt werden, dass \textsf{footmisc} nicht unnötig -% mit Warnung um sich wirft. -% \begin{macrocode} -\BeforePackage{footmisc}{% - \ifx\@footnotemark\scr@footnotemark - \let\@footnotemark\scr@saved@footnotemark - \fi - \let\@footnotetext\scr@saved@footnotetext -} -% \end{macrocode} -% -% \changes{v3.10}{2011/09/12}{Workaround für die zerstörerische Wirkung von -% \textsf{setspace}}% -% Außerdem zerstört das Paket \textsf{setspace} die Erweiterung von -% \cs{@footnotetext}. Deshalb schalten wir sie vor dem Paket lieber gleich ab -% und reaktivieren sie anschließend wieder: -% \begin{macrocode} -\BeforePackage{setspace}{% - \let\@footnotetext\scr@saved@footnotetext -} -\AfterPackage{setspace}{% - \let\scr@saved@footnotetext\@footnotetext - \renewcommand{\@footnotetext}[1]{% - \scr@saved@footnotetext{#1}% - \csname FN@mf@prepare\endcsname - }% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\multiplefootnoteseparator} -% \changes{v2.98c}{2008/02/01}{Neu} -% Das ist der formatierte Separator! -% \begin{macrocode} -\newcommand*{\multiplefootnoteseparator}{% - \begingroup\let\thefootnotemark\multfootsep\@makefnmark\endgroup -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\multfootsep} -% \changes{v2.98c}{2008/02/01}{Neu} -% Und hier \textsf{footmisc}-kompatibel unformatiert -% \begin{macrocode} -%\newcommand*{\multfootsep}{,} -%\providecommand*{\multfootsep}{,} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\multiplefootnotemarker} -% \changes{v2.98c}{2008/02/01}{Neu} -% Das Markierungskerning wieder \textsf{footmisc}-kompatibel. -% \begin{macrocode} -\newcommand*{\multiplefootnotemarker}{3sp} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\thefootnotemark} -% \changes{v2.4l}{1997/02/06}{neu} -% Makro, damit \cs{@thefnmark} auf Anwenderebene verfügbar wird: -% \begin{macrocode} -%\newcommand*{\thefootnotemark}{\@thefnmark} -%\providecommand*{\thefootnotemark}{\@thefnmark} -% \end{macrocode} -% \end{macro} -% -% \changes{v2.4l}{1997/02/06}{Verwendung der neuen Makros zur -% Fußnotengestaltgebung} -% \begin{macro}{\@makefnmark} -% \changes{v3.10}{2011/09/27}{\textsf{scrextend} redefines \cs{@makefnmark} -% to use \cs{thefootnotemark}} -% \begin{macrocode} -%<*class> -\deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}} -% -%<*package> -\def\reserved@a{\hbox{\@textsuperscript{\normalfont\@thefnmark}}} -\ifx\reserved@a\@makefnmark -% -\deffootnotemark{\textsuperscript{\thefootnotemark}} -%<*package> -\else - \IfFileExists{etoolbox.sty}{% - \PackageInfo{scrextend}{% - unexpected definition of `\string\@makefnmark'.\MessageBreak - Trying to patch it% - }% - \RequirePackage{etoolbox}% - \patchcmd{\@makefnmark}{\@thefnmark}{\thefootnotemark}{% - \PackageInfo{scrextend}{patch seems to be successfull}% - }{% - \PackageWarning{scrextend}{% - patching `\string\@makefnmark' failed.\MessageBreak - Using hard coded redefinition% - }% - \deffootnotemark{\textsuperscript{\thefootnotemark}}% - }% - }{% - \PackageWarning{scrextend}{% - unexpected definition of `\string\@makefnmark'.\MessageBreak - Using hard coded redefintion% - }% - \deffootnotemark{\textsuperscript{\thefootnotemark}}% - }% -\fi -% -% \end{macrocode} -% \end{macro} -% -% \subsection{Fußnotenreferenz} -% -% \begin{macro}{\footref} -% \changes{v2.98c}{2008/02/01}{Neue Anweisung} -% Damit man nicht nur zu diesem Zweck das Paket \textsf{footmisc} laden muss, -% kann man jetzt auch mit \KOMAScript{} alleine Fußnoten setzen, die -% Referenzen auf andere Fußnoten sind. Der Code stammt einerseits aus footmisc -% andererseits auf der Usenet-Gruppe comp.text.tex. Wer den zuerst hatte, ist -% für mich nicht mehr reproduzierbar. Jedenfalls steht er in footmisc unter -% LPPL und \KOMAScript{} steht ebenfalls unter LPPL. Das sollte also im -% Zweifelsfall nicht das Problem sein. -% \begin{macrocode} -%\newcommand*{\footref}[1]{% -%\providecommand*{\footref}[1]{% - \begingroup - \unrestored@protected@xdef\@thefnmark{\ref{#1}}% - \endgroup - \@footnotemark -} -% \end{macrocode} -% \end{macro} -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrkftn.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkidx.dtx b/Master/texmf-dist/source/latex/koma-script/scrkidx.dtx deleted file mode 100644 index db1e0979423..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkidx.dtx +++ /dev/null @@ -1,335 +0,0 @@ -% \CheckSum{109} -% \iffalse meta-comment -% ====================================================================== -% scrkidx.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkidx.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkidx.dtx -%<*driver> -% \fi -\ProvidesFile{scrkidx.dtx}[2012/03/08 v3.10a KOMA-Script (index)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkidx.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/07/01}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Index} -% -% Der Index unterscheidet sich bei \KOMAScript{} scheinbar nicht -% wesentlich von dem, was die Standardklassen zu bieten haben. In -% Wirklichkeit sind die Unterschiede jedoch erheblich. -% -% Briefe haben keinen Index. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*!letter> -% \fi -% -% \iffalse -%<*option> -% \fi -% -% \subsection{Anweisungen und Einstellungen für die Optionen} -% -% Einige Anweisungen und Einstellungen werden bereits benötigt, bevor die -% Optionen abgearbeitet werden. -% -% \begin{macro}{\idx@@heading} -% \changes{v2.98c}{2008/03/04}{neu (intern)} -% Diese Anweisung wird verwendet, um nur die Überschrift zu setzen (nichts -% weiter!). Sie hat genau ein Argument, nämlich den Text der Überschrift und -% wird innerhalb von |\idx@heading| verwendet. -% \begin{macrocode} -\newcommand*{\idx@@heading}{% -%
\section* -% \chapter* -} -% \end{macrocode} -% \end{macro} -% -% -% \subsection{Optionen für den Index} -% -% \begin{option}{index} -% \changes{v2.98c}{2008/03/04}{Neue Option} -% \begin{macro}{\idx@@heading} -% Die Option sorgt dafür, dass der Index auch im Inhaltsverzeichnis -% erscheint. Dazu wird das interne Makro \cs{idx@@heading} umdefiniert, über -% das die Überschrift gesetzt und der Kolumnentitel angepasst wird. -% \changes{v2.4c}{1996/04/04}{Kolumnentitel werden nun korrekt -% behandelt} -% \changes{v2.4g}{1996/11/04}{Index auch bei \textsf{scrartcl} -% wieder zweispaltig} -% \changes{v2.6c}{2000/06/10}{im Index kann nach der Überschrift -% eine Präambel gesetzt werden} -% \changes{v2.7a}{2001/01/04}{für \textsf{scrbook} und -% \textsf{scrreprt} die Link-Erzeugung mit \texttt{hyperref} -% verbessert} -% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die -% \texttt{theindex}-Umgebung verschoben} -% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch -% \cs{if@openright} ersetzt} -% \changes{v2.98c}{2008/03/04}{statt \cs{idx@heading} wird nun -% \cs{idx@@heading} umdefiniert} -% An dieser Stelle muss dafür gesorgt werden, dass im Falle von -% \textsf{scrbook} und \textsf{scrreprt} das Makro \cs{@schapter} -% verwendet wird. Damit dies hier möglich ist mussten tiefreifendere -% Änderungen am \LaTeX-Kernel bzw. am Gliederungsbefehl \cs{chapter} -% vorgenommen werden. -% \begin{macrocode} -\KOMA@key{index}{% - \KOMA@set@ncmdkey{index}{@tempa}{% - {notoc}{0},{nottotoc}{0},{default}{0},{plainheading}{0},% - {totoc}{1},{toc}{1},{notnumbered}{1}% - }{#1}% - \ifcase \@tempa\relax - \renewcommand*{\idx@@heading}{% -%
\section* -% \chapter* - }% - \or - \renewcommand*{\idx@@heading}{% -%
\addsec -% \addchap - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \end{option} -% -% \begin{option}{idxtotoc} -% \changes{v2.3h}{1995/01/21}{neue Option} -% \changes{v2.98c}{2008/03/04}{obsolete} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption{idxtotoc}{index=totoc} -% \end{macrocode} -% \end{option} -% -% -% \iffalse -% -%<*body> -% \fi -% -% \subsection{Definitionen für den Index} -% -% \begin{macro}{\index@preamble} -% \changes{v2.6c}{2000/06/10}{neu (intern)} -% \begin{macro}{\setindexpreamble} -% \changes{v2.6c}{2000/06/10}{neu} -% \changes{v2.6d}{2000/07/20}{Befehl funktioniert nachdem \cs{let} -% durch \cs{newcommand*} ersetzt wurde} -% \changes{v2.95}{2002/07/01}{\cs{let} und \cs{def}} -% Analog zu \cs{bibpreamble} kann \cs{index@preamble} vom Benutzer mit -% \cs{setindexpreamble} auf einen Text gesetzt werden, der nach der -% Indexüberschrift eingefügt wird. Hier wird ein echtes internes Makro -% verwendet, da nicht auf Kompatibilität geachtet werden muss. -% \begin{macrocode} -\newcommand*{\index@preamble}{} -\let\index@preamble=\relax -\newcommand{\setindexpreamble}[1]{\def\index@preamble{#1}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\idx@heading} -% \changes{v2.3h}{1995/01/21}{neu (intern)} -% \changes{v2.4c}{1995/04/04}{Kolumnentitel werden nun korrekt behandelt} -% \changes{v2.4g}{1996/11/04}{Index auch bei \texttt{scrartcl} wieder -% zweispaltig}% -% \changes{v2.6c}{2000/06/10}{Verwendung von \cs{index@preamble} eingefügt} -% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die -% \texttt{theindex}-Umgebung verschoben}% -% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch \cs{if@openright} -% ersetzt}% -% \changes{v2.98c}{2008/03/04}{Verwendung von \cs{idx@@heading}}% -% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}% -% \changes{v3.10a}{2012/03/08}{Falsche Klammerung der letzten Änderung -% behoben}% -% Befehl zum Setzen der Überschrift des Indexes. 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}\vspace{-\baselineskip} -% Dagegen ist grundsätzlich nichts zu sagen. Allerdings gibt es seit -% Version 2.7b die neue Methode der Kapitel-Präambel, die extra -% eingeführt wurde, um die \textsf{hyperref}-Links -- insbesondere -% den des Index -- zumindest bei Verwendung von \texttt{hpdftex.def} -% zu verbessern. Deshalb wurde die Implementierung entsprechend -% abgeändert. Außerdem wurde das Setzen der Präambel aus -% Konsistenzgründen in Version 2.7j übereinstimmten mit der -% \texttt{thebibliography}-Umgebung in die \texttt{theindex}-Umgebung -% verschoben. -% \begin{macrocode} -\newcommand*{\idx@heading}{% -% \if@openright\cleardoublepage\else\clearpage\fi% - \twocolumn[\idx@@heading{\indexname}]% - \@mkboth{\MakeMarkcase{\indexname}}{\MakeMarkcase{\indexname}}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{environment}{theindex} -% \changes{v2.8d}{2001/07/05}{\cs{indexpagestyle} statt -% \texttt{plain}} -% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{idx@heading}} -% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die -% \texttt{theindex}-Umgebung verschoben} -% Der Index ist wie üblich 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 -} -% \end{macrocode} -% \begin{macro}{\@idxitem} -% Hier haben wird den Anfang eines Eintrags in den Index -% \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} -% und ebenso Unter- und Unteruntereinträge sowie ein vertikaler -% Abstand. -% \begin{macrocode} -\newcommand*\@idxitem{\par\hangindent 40\p@} -% \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{macro} -% \end{environment} -% -% -% \subsection{Standardbezeichner} -% -% \begin{macro}{\indexname} -% Names des Index: -% \begin{macrocode} -\newcommand*\indexname{Index} -% \end{macrocode} -% \end{macro} -% -% -% \iffalse -% -% \fi -% -% \iffalse -% -% \fi -% -% -% \Finale -% -\endinput -% -% end of file `scrkidx.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrklang.dtx b/Master/texmf-dist/source/latex/koma-script/scrklang.dtx deleted file mode 100644 index b1d85848c08..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrklang.dtx +++ /dev/null @@ -1,1001 +0,0 @@ -% \CheckSum{1243} -% \iffalse meta-comment -% ====================================================================== -% scrklang.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrklang.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrklang.dtx -%<*driver> -% \fi -\ProvidesFile{scrklang.dtx}[2011/03/10 v3.08 KOMA-Script (language)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrklang.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei - \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/07/01}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Sprachabhängigkeiten} -% -% Aus verschiedenen Gründen ist es nicht so einfach, neue, -% sprachabhängige Begriffe zu definieren oder vorhandene -% umzudefinieren. Mit \KOMAScript{} geht das etwas einfacher. -% -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*option> -% \fi -% -% \subsection{Option} -% Für Briefe gibt es die Möglichkeit, zwischen symbolischem und numerischem -% Datum umzuschalten. -% -% \iffalse -%<*class&letter> -% \fi -% -% \begin{option}{numericaldate} -% \changes{v2.8q}{2001/10/07}{Neue Option (an Stelle von -% \texttt{scrdate} und \texttt{orgdate})} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% Es kann zwischen dem Originaldatum, das beispielsweise von -% \texttt{german.sty} definiert wird, und dem \texttt{scrlttr2}-Datum -% gewählt werden. Natürlich 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 - \KOMA@set@ifkey{numericaldate}{@orgdate}{#1}% - \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi -} -% \end{macrocode} -% \begin{option}{scrdate} -% \changes{v3.01a}{2008/11/21}{deprecated} -% \begin{option}{orgdate} -% \changes{v3.01a}{2008/11/21}{deprecated} -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption{scrdate}{numericaldate=true} -\KOMA@DeclareDeprecatedOption{orgdate}{numericaldate=false} -% \end{macrocode} -% \end{option} -% \end{option} -% \end{option} -% -% \iffalse -% -% \fi -% -% -% \iffalse -% -%<*body> -% \fi -% -% \subsection{Definitionen für sprachabhängige Bezeichner} -% -% Dieser Teil ist so grundlegend, dass er ab Version~3.00 in das Paket -% \textsf{scrbase} ausgelagert wird. -% -% \iffalse -%<*package&base> -% \fi -% -% \begin{macro}{\providecaptionname} -% \changes{v2.8q}{2001/11/08}{neu} -% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte -% ist, wird die Anderung sofort aktiviert.} -% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert -% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.} -% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben} -% \changes{v3.01b}{2008/12/07}{missing make undefined} -% \changes{v3.02c}{2009/02/17}{undefined test improved} -% \begin{macro}{\newcaptionname} -% \changes{v2.8q}{2001/11/08}{neu} -% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte -% ist, wird die Anderung sofort aktiviert.} -% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert -% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.} -% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben} -% \changes{v3.01b}{2008/12/07}{missing make undefined} -% \changes{v3.02c}{2009/02/17}{undefined test improved} -% \begin{macro}{\renewcaptionname} -% \changes{v2.8q}{2001/11/08}{neu} -% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte -% ist, wird die Anderung sofort aktiviert.} -% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert -% auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.} -% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben} -% \changes{v3.01b}{2008/12/07}{missing make undefined} -% \changes{v3.02c}{2009/02/17}{undefined test improved} -% Drei Benutzerkommandos zur Definition sprachabhängiger Begriffe. -% Es empfiehlt sich wegen \textsf{babel} diese Anweisungen innerhalb -% von \cs{AtBeginDocument} zu verwenden. -% \begin{macrocode} -\newcommand*{\providecaptionname}[3]{% - \@ifundefined{captions#1}{% - \@ifundefined{cap@info@#1@done}{% - \PackageInfo{scrbase}{% - No captions found for `#1'\MessageBreak - --> skipped% - }% - \expandafter\let\csname cap@info@#1@done\endcsname\@empty - }{}% - }{% - \begingroup - \let\@tempa\endgroup - \def\@tempb{\relax\undefined\relax}% - \let #2\@tempb\relax - \csname captions#1\endcsname - \ifx #2\@tempb\relax - \edef\@tempb{#1}% - \@onelevel@sanitize\@tempb - \@onelevel@sanitize\languagename - \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 - \PackageInfo{scrbase}{% - `\string#2' at language `#1' already - defined\MessageBreak - --> skipped% - }% - \fi - \@tempa - }% -} -\newcommand*{\newcaptionname}[3]{% - \@ifundefined{captions#1}{% - \PackageInfo{scrbase}{% - No captions found for `#1' --> defining% - }% - \@namedef{captions#1}{}% - }{}% - \begingroup - \def\@tempb{\relax\undefined\relax}% - \let #2\@tempb\relax - \csname captions#1\endcsname - \ifx #2\@tempb\relax\else - \PackageError{scrbase}{% - `\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 - \edef\@tempb{#1}% - \@onelevel@sanitize\@tempb - \@onelevel@sanitize\languagename - \ifx\@tempb\languagename - \def\@tempa{\endgroup\csname captions#1\endcsname}% - \else - \let\@tempa\endgroup - \fi - \@tempa -} -\newcommand*{\renewcaptionname}[3]{% - \@ifundefined{captions#1}{% - \PackageError{scrbase}{% - 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 - \def\@tempb{\relax\undefined\relax}% - \let #2\@tempb\relax - \csname captions#1\endcsname - \ifx #2\@tempb\relax - \PackageError{scrbase}{% - `\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 - \edef\@tempb{#1}% - \@onelevel@sanitize\@tempb - \@onelevel@sanitize\languagename - \ifx\@tempb\languagename - \def\@tempa{\endgroup\csname captions#1\endcsname}% - \else - \let\@tempa\endgroup - \fi - \@tempa -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \iffalse -% -%<*class> -% \fi -% -% -% \subsection{Definitionen für ein nummerisches Datum} -% Bei Briefen kann ein nummerisches oder ein symbolisches Datum verwendet -% werden. -% -% \iffalse -%<*letter> -% \fi -% -% \begin{macro}{\g@addnumerical@date} -% Dazu ist es notwendig, ggf. das bereits definierte symbolische Datum durch -% ein nummerisches zu ergänzen. -% \begin{macrocode} -\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} -% -% \iffalse -% -% \fi -% -% -% \subsection{Festlegungen für einzelne Sprachen} -% -% Es folgen nun für einzelne Sprachen konkrete Festlegungen, die für Briefe -% benötigt werden. -% -% \iffalse -%<*letter> -% \fi -% -% \begin{macro}{\captionsenglish} -% \begin{macro}{\dateenglish} -% \begin{macro}{\captionsUSenglish} -% \begin{macro}{\dateUSenglish} -% \begin{macro}{\captionsamerican} -% \changes{v2.4c}{1997/11/25}{american identisch mit USenglish definiert} -% \begin{macro}{\dateamerican} -% \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}{\datebritish} -% \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}{\dateUKenglish} -% \changes{v2.4c}{1997/11/25}{UKenglish identisch mit english definiert} -% \begin{macro}{\captionsgerman} -% \begin{macro}{\dategerman} -% \begin{macro}{\captionsngerman} -% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german} -% \begin{macro}{\datengerman} -% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german} -% \begin{macro}{\captionsaustrian} -% \begin{macro}{\dateaustrian} -% \begin{macro}{\captionsnaustrian} -% \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian} -% \begin{macro}{\datenaustrian} -% \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian} -% \begin{macro}{\captionsfrench} -% \begin{macro}{\datefrench} -% \begin{macro}{\captionsitalian} -% \begin{macro}{\dateitalian} -% \changes{v2.3e}{1996/05/31}{Ich hoffe, dass das stimmt} -% \begin{macro}{\captionsspanish} -% \begin{macro}{\datespanish} -% \changes{v2.4c}{1997/11/25}{Ich hoffe, dass das stimmt} -% \changes{v2.4c}{1997/11/25}{Datumsumschaltung nicht mehr zwingend} -% \begin{macro}{\captionscroation} -% \changes{v2.8q}{2001/05/10}{Neu} -% \begin{macro}{\datecroatian} -% \changes{v2.8q}{2001/05/10}{Neu} -% \begin{macro}{\captionsdutch} -% \changes{v2.8q}{2002/02/01}{Neu} -% \begin{macro}{\datedutch} -% \changes{v2.8q}{2002/02/01}{Neu} -% \begin{macro}{\captionsfinnish} -% \changes{v2.9u}{2005/02/07}{Unterstützung für Finnisch (Dank Hannu -% Väisänen)} -% \changes{v2.9u}{2005/02/07}{Neu} -% \begin{macro}{\datefinnish} -% \changes{v2.9u}{2005/02/07}{Neu} -% \changes{v3.01c}{2008/12/29}{Aktivierung korrigiert} -% \begin{macro}{\captionsnorsk} -% \changes{v3.02}{2009/01/01}{Neu} -% \begin{macro}{\datenorsk} -% \changes{v3.02}{2009/01/01}{Neu} -% \begin{macro}{\captionsnorsk} -% \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)} -% \begin{macro}{\datenorsk} -% \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)} -% Weil es in früheren 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önnen. -% \begin{table} -% \centering -% \begin{tabular}{ll} -% Sprache & Spender \\\hline\\[-1.6ex] -% English & Frank Neukam, Michael Dewey, Markus Kohm \\ -% Deutsch & Frank Neukam, Markus Kohm \\ -% Französisch & Frank Neukam, Henk Jongbloets \\ -% Italienisch & Simone Naldi \\ -% Spanisch & Ralph J.\ Hangleiter, Alejandro L\'opez-Valencia\\ -% Kroatisch & Branka Lon\v{c}arevi\'{c} \\ -% Holländisch & Henk Jongbloets \\ -% Finnisch & Hannu Väisänen \\ -% Norwegisch & Sveinung Heggen \\ -% Schwedisch & Benjamin Hell\\ -% \end{tabular} -% \caption{Liste der unterstützten 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} -\AtBeginDocument{% - \@ifundefined{captionsenglish}{\let\captionsenglish\@empty}{}% - \@ifundefined{dateenglish}{\def\dateenglish{% -% \end{macrocode} -% \iffalse -% -% \fi -% \begin{macrocode} - \def\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} -% \iffalse -%<*letter> -% \fi -% \begin{macrocode} - }% - }{}% - \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}% - \g@addnumerical@date{english}{\number\day/\number\month/\number\year}% - \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}% - \g@addnumerical@date{USenglish}{\number\month/\number\day/\number\year}% - \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}% - \g@addnumerical@date{american}{\number\month/\number\day/\number\year}% - \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}% - \g@addnumerical@date{british}{\number\day/\number\month/\number\year}% - \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}% - \g@addnumerical@date{UKenglish}{\number\day/\number\month/\number\year}% - \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}% - \g@addnumerical@date{german}{\number\day.\,\number\month.\,\number\year}% - \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}% - \g@addnumerical@date{ngerman}{\number\day.\,\number\month.\,\number\year}% - \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}% - \g@addnumerical@date{austrian}{\number\day.\,\number\month.\,\number\year}% - \providecaptionname{naustrian}\yourrefname{Ihr Zeichen}% - \providecaptionname{naustrian}\yourmailname{Ihr Schreiben vom}% - \providecaptionname{naustrian}\myrefname{Unser Zeichen}% - \providecaptionname{naustrian}\customername{Kundennummer}% - \providecaptionname{naustrian}\invoicename{Rechnungsnummer}% - \providecaptionname{naustrian}\subjectname{Betrifft}% - \providecaptionname{naustrian}\ccname{Kopien an}% - \providecaptionname{naustrian}\enclname{Anlagen}% - \providecaptionname{naustrian}\headtoname{An}% - \providecaptionname{naustrian}\headfromname{Von}% - \providecaptionname{naustrian}\datename{Datum}% - \providecaptionname{naustrian}\pagename{Seite}% - \providecaptionname{naustrian}\phonename{Telefon}% - \providecaptionname{naustrian}\faxname{Fax}% - \providecaptionname{naustrian}\emailname{E-Mail}% - \providecaptionname{naustrian}\wwwname{URL}% - \providecaptionname{naustrian}\bankname{Bankverbindung}% - \g@addnumerical@date{naustrian}{\number\day.\,\number\month.\,\number\year}% - \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}% - \g@addnumerical@date{french}{\number\day.\,\number\month.\,\number\year}% - \providecaptionname{italian}\yourrefname{Vs./Rif.}% or Vostro Riferimento - \providecaptionname{italian}\yourmailname{Vs.~lettera del}% or Vostra - % lettera del - \providecaptionname{italian}\myrefname{Ns./Rif.}% or Nostro Riferimento - \providecaptionname{italian}\customername{Nr.~cliente}% or Cliente num. - \providecaptionname{italian}\invoicename{Nr.~fattura}% or Fattura num. - \providecaptionname{italian}\subjectname{Oggetto}% - \providecaptionname{italian}\ccname{Per conoscenza}% or Copia a - \providecaptionname{italian}\enclname{Allegato}% or (plural) Allegati - \providecaptionname{italian}\headtoname{A}% - \providecaptionname{italian}\headfromname{Da}% - \providecaptionname{italian}\datename{Data}% - \providecaptionname{italian}\pagename{Pagina}% - \providecaptionname{italian}\phonename{Telefono}% - \providecaptionname{italian}\faxname{Fax}% - \providecaptionname{italian}\emailname{Email}% - \providecaptionname{italian}\wwwname{Sito Web}% - \providecaptionname{italian}\bankname{Conto bancario}% - \g@addnumerical@date{italian}{\number\day.\,\number\month.\,\number\year}% - \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}% - \g@addnumerical@date{spanish}{\number\day.\,\number\month.\,\number\year}% - \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}% - \g@addnumerical@date{croatian}{\number\day.\,\number\month.\,\number\year.}% - \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}\wwwname{URL}% - \providecaptionname{dutch}\bankname{Bankrekening}% - \g@addnumerical@date{dutch}{\number\day.\,\number\month.\,\number\year}% - \providecaptionname{finnish}\yourrefname{Viitteenne}% - \providecaptionname{finnish}\yourmailname{Kirjeenne}% - \providecaptionname{finnish}\myrefname{Viitteemme}% - \providecaptionname{finnish}\customername{Asiakasnumero}% - \providecaptionname{finnish}\invoicename{Laskun numero}% - \providecaptionname{finnish}\subjectname{Asia}% - \providecaptionname{finnish}\ccname{Jakelu}% - \providecaptionname{finnish}\enclname{Liitteet}% - \providecaptionname{finnish}\headtoname{Vastaanottaja}% - \providecaptionname{finnish}\headfromname{L\"ahett\"aj\"a}% - \providecaptionname{finnish}\datename{P\"aiv\"a}% - \providecaptionname{finnish}\pagename{Sivu}% - \providecaptionname{finnish}\phonename{Puhelin}% - \providecaptionname{finnish}\faxname{Faksi}% - \providecaptionname{finnish}\emailname{S\"ahk\"oposti}% - \providecaptionname{finnish}\wwwname{URL}% - \providecaptionname{finnish}\bankname{Pankkitilin numero}% - \g@addnumerical@date{finnish}{\number\day.\number\month.\number\year}% - \providecaptionname{norsk}\yourrefname{Deres ref.}% - \providecaptionname{norsk}\yourmailname{Deres brev av:}% - \providecaptionname{norsk}\myrefname{V\aa{}r ref:}% - \providecaptionname{norsk}\customername{Kundenummer}% - \providecaptionname{norsk}\invoicename{Fakturanummer}% - \providecaptionname{norsk}\subjectname{Emne}% - \providecaptionname{norsk}\ccname{Kopi til}% - \providecaptionname{norsk}\enclname{Vedlegg}% - \providecaptionname{norsk}\headtoname{Til}% - \providecaptionname{norsk}\headfromname{Fra}% - \providecaptionname{norsk}\datename{Dato}% - \providecaptionname{norsk}\pagename{Side}% - \providecaptionname{norsk}\phonename{Telefon}% - \providecaptionname{norsk}\faxname{Telefaks}% - \providecaptionname{norsk}\emailname{E-post}% - \providecaptionname{norsk}\wwwname{Url}% - \providecaptionname{norsk}\bankname{Bankkontonummer}% - \g@addnumerical@date{norsk}{\number\day.\number\month.\number\year}% - \providecaptionname{swedish}\yourrefname{Er ref}% - \providecaptionname{swedish}\yourmailname{Ert brev av}% - \providecaptionname{swedish}\myrefname{V\aa{}r ref}% - \providecaptionname{swedish}\customername{Kundnummer}% - \providecaptionname{swedish}\invoicename{Fakturanummer}% - \providecaptionname{swedish}\subjectname{\"Amne}% -% \end{macrocode} -% "`Kopia"' oder "`Kopia till"' geht beides -- da im Deutschen die -% lange Form verwendet wird nehmen wir die auch hier: -% \begin{macrocode} - \providecaptionname{swedish}\ccname{Kopia till}% -% \end{macrocode} -% "`Bilaga"' ist Singular. Bei mehreren Anlagen schreibt man -% "`Bilagor"'. Da wir nicht wissen, ob es eine oder mehrere Anlagen sind, -% haben wir ein kleines Problem und gehen mal von mehreren aus: -% \begin{macrocode} - \providecaptionname{swedish}\enclname{Bilagor}% Singular: Bilaga - \providecaptionname{swedish}\headtoname{Till}% - \providecaptionname{swedish}\headfromname{Fr\aa{}n}% - \providecaptionname{swedish}\datename{Datum}% - \providecaptionname{swedish}\pagename{Sida}% - \providecaptionname{swedish}\phonename{Telefon}% - \providecaptionname{swedish}\faxname{Telefax}% - \providecaptionname{swedish}\emailname{E-post}% - \providecaptionname{swedish}\wwwname{Hemsida}% -% \end{macrocode} -% Für \cs{bankname} gibt es zwei verschiedene Ausdrücke, je nachdem um -% welche Kontoform es sich handelt: "`Bankgiro"' und "`PlusGiro"'. Beide -% sind etwa gleich verbreitet, evtl. mit einem leichten Vorteil für -% Bankgiro. -% \begin{macrocode} - \providecaptionname{swedish}\bankname{Bankgiro}% PlusGiro -% \end{macrocode} -% Statt der ISO-Variante wird hier die traditionelle Variante, -% "`18/1 2011"', verwendet. -% \begin{macrocode} - \g@addnumerical@date{swedish}{\number\day/\number\month~\number\year}% -% \end{macrocode} -% Zum Schluss 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ür sind nun keine Erweiterungen für andere -% Sprachen mehr möglich. -% \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öglich ist} -% \changes{v2.5e}{2000/07/14}{Workaround für 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ür den -% \texttt{hyphen.cfg}-Bug von Babel} -% \changes{v2.97c}{2007/08/10}{Text einer Warnung geändert} -% Wird die \texttt{hyphen.cfg} von Babel verwendet, wird aber das -% \textsl{babel}-Paket nicht geladen, so ist \cs{languagename} häufig -% nicht korrekt, so dass dann \cs{selectlanguage} mit -% \cs{languagename} als Argument schief geht. Daher hier ein -% Workaround für 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 - Undefining macro \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@naustrian\undefined\else\ifnum\language=\l@naustrian - \captionsnaustrian - \datenaustrian - \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 - \ifx\l@finnish\undefined\else\ifnum\language=\l@finnish - \captionsfinnish - \datefinnish - \fi\fi - \ifx\l@norsk\undefined\else\ifnum\language=\l@norsk - \captionsnorsk - \datenorsk - \fi\fi - \ifx\l@swedish\undefined\else\ifnum\language=\l@swedish - \captionsswedish - \dateswedish - \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', `naustrian',\MessageBreak - `dutch', `italian', `spanish',\MessageBreak - `croatian', `finnish', `norsk'% - }% - \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} -% \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} -% -% \iffalse -% -% -% \fi -% -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrklang.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrklco.dtx b/Master/texmf-dist/source/latex/koma-script/scrklco.dtx deleted file mode 100644 index db12c796efc..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrklco.dtx +++ /dev/null @@ -1,1448 +0,0 @@ -% \CheckSum{1439} -% \iffalse meta-comment -% ====================================================================== -% scrklco.dtx -% Copyright (c) Markus Kohm, 2006-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrklco.dtx -% Copyright (c) Markus Kohm, 2006-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrklco.dtx -%<*driver> -% \fi -\ProvidesFile{scrklco.dtx}[2011/01/10 v3.07a KOMA-Script (letter class options)] -% \iffalse -\documentclass{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrklco.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2006/03/22}{% -% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} -% -% \section{Optionendateien für Briefe} -% -% Bei der Briefklasse tritt eine Besonderheit ein. Hier ist es -% möglich, spezielle \texttt{lco}-Dateien zu definieren, die über -% Optionen geladen werden können. Die unterschiedlichen Brieftypen -% sind ein Fall für solche \emph{\textbf{l}etter \textbf{c}lass -% \textbf{o}ption} Dateien. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*letter> -% \fi -% -% \iffalse -%<*option> -% \fi -% -% \subsection{Optionen für Letter-Class-Options} -% -% \begin{macro}{\lco@test} -% \changes{v2.95}{2006/03/22}{Neu} -% \changes{v2.97c}{2007/09/12}{an neue Optionenabarbeitung angepasst} -% Letter-Class-Optionen können auch für jede per |\documentclass| angegebene -% keyval-Option oder sonstige scan-Option (das sind Optionen, die nicht per -% |\DeclareOption| definiert wurden) geladen werden. Dabei wird die -% Abarbeitung der Option nicht unterbrochen. Dazu wird dieses Makro in den -% scan-Vorgang eingebaut -% \begin{macrocode} -\newcommand*{\lco@test}{% - \IfFileExists{\CurrentOption.lco}{% - \expandafter\AtEndOfClass\expandafter{% - \expandafter\LoadLetterOption\expandafter{\CurrentOption}% - }% - \expandafter\def\expandafter\scr@pti@nerr@r\expandafter{% - \expandafter\def\expandafter\scr@pti@nerr@r\expandafter{% - \scr@pti@nerr@r - }% - }% - }{}% -} -% \end{macrocode} -% \end{macro} -% -% Als Voreinstellung wird am Ende schon einmal die Datei \texttt{DIN.lco} -% geladen. -% \begin{macrocode} -\AtEndOfClass{\LoadLetterOption{DIN}} -% \end{macrocode} -% -% \iffalse -% -%<*body> -% \fi -% -% \subsection{Makros für Letter-Class-Options} -% -% \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önnen, muss der catcode von "`@"' entsprechend -% gesetzt sein. Damit der Befehl sowohl in der Präambel 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ächlich eine -% Schachtelung möglich 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öglichkeit, in \texttt{lco}-Dateien eine bestimmte -% Papiergröße zu fordern. Dazu wird der Name der \texttt{lco}-Datei -% und die geforderte Papiergröse als Parameter übergeben. Stimmt die -% Papiergröße nicht überein, 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} -% -% \iffalse -% -% -% \fi -% -% \subsection{Die Letter-Class-Optionen} -% -% Die Letter-Class-Optionen selbst werden wie bereits erwähnt über Dateien -% realisiert. In den vorgefertigen Dateien für unterschiedliche Arten von -% Briefen werden in erster Linie Pseudo-Längen passend gesetzt. In einigen -% Fällen werden aber auch zusätzlich Befehle umdefiniert. -% -% \iffalse -%<*lco> -% \fi -% -% \subsubsection{Der Datei Kopf} -% -% \iffalse -%<*head> -% \fi -% -% Im Kopf ist natürlich die Datei zu deklarieren: -% \changes{v3.04}{2009/04/21}{neue LCO \texttt{NF} von Jean-Marie Pacquet -% übernommen und ergänzt} -% \changes{v3.04}{2009/06/26}{neue LCO \texttt{USletter2w} in Zusammenarbeit -% mit Engelbert Buxbaum und Richard Ar\`es geschaffen} -% \changes{v3.04}{2009/06/29}{neue LCO \texttt{UScommercial9DW} für Papier im -% Format letter oder legal in Umschlägen im Format commercial No.\,9 mit -% zwei Fenstern} -% \changes{v3.04}{2009/06/30}{neue LCO \texttt{UScommercial9} für Papier im -% Format letter oder legal in Umschlägen im Format commercial No.\,9 mit -% einem Fenster auf Basis von \texttt{http://www.envelopesuperstore.com/}} -% \changes{v3.04}{2009/06/26}{seit langem existierende LCO \texttt{visualize} -% zur Visualisierung einiger Pseudolängen aufgenommen} -% \begin{macrocode} -\ProvidesFile{% -% visualize% -% DIN% -% DINmtext% -% SN% -% SNold% -% SNleft% -% KOMAold% -% NF% -% USletter2w -% UScommercial9 -% UScommercial9DW - .lco}[\KOMAScriptVersion\space letter-class-option] -% \end{macrocode} -% -% \begin{macro}{\LCOWarningNoLine} -% \changes{v2.95}{2006/03/24}{Neu} -% \begin{macro}{\LCOWarning} -% \changes{v2.95}{2006/03/24}{Neu} -% Außerdem wird ein Makro benötigt, das analog zu |\ClassWarningNoLine| oder -% |\PackageWarningNoLine| funktioniert. -\providecommand*\LCOWarningNoLine[2]{% - \LCOWarning{#1}{#2\@gobble}% -} -\providecommand*\LCOWarning[2]{% - \GenericWarning{% - (#1)\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces - }{% - Letter class option #1 Warning: #2% - }% -} -% \end{macro} -% \end{macro} -% -% \iffalse -% -%<*body> -%<*!visualize> -% \fi -% -% \subsubsection{Der Hauptteil} -% -% Die Maße für 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 \\ -% NF & Jean-Marie Pacquet \\ -% USletter2w & Engelbert Buxbaum \\ -% UScommercial9 & mir \\ -% UScommercial9DW & mir \\ -% \end{tabular}{ll} -% \end{center} -% -% Zunächst wird geprüft, ob überhaupt die richtige Klasse geladen ist. -% \begin{macrocode} -\@ifundefined{scr@fromname@var}{% - \LCOWarningNoLine{% -% DIN% -% DINmtext% -% SN% -% SNold% -% SNleft% -% KOMAold% -% NF% -% USletter2w% -% UScommercial9% -% UScommercial9DW% - }{% - 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% - }% -}{} -% \end{macrocode} -% -% Dann wird geprüft, ob das richtige Papierformat vorhanden ist. -% \begin{macrocode} -\LetterOptionNeedsPapersize{% -% DIN% -% DINmtext% -% SN% -% SNold% -% SNleft% -% KOMAold% -% NF% -% USletter2w% -% UScommercial9% -% UScommercial9DW% -%<*DIN|DINmoretext|SN|SNold|SwissLeft|KOMAold|NF> -}{a4} -% -%<*USletter2w|UScommercial9|UScommercial9DW> -}{letter} -% -% \end{macrocode} -% -% Dann werden die Werte gesetzt. -% \begin{description} -% \item[ZIP-Code] -% \changes{v3.03}{2009/03/04}{Bezeichner der Variablen \texttt{fromzipcode} -% wird gesetzt} -% \begin{macrocode} -%\setkomavar*{fromzipcode}{% -% D} -% CH} -% F} -% US} -% \end{macrocode} -% \item[Faltmarken] -% \changes{v2.97e}{2007/11/20}{Die neuen Faltmarken werden berücksichtigt.} -% \begin{macrocode} -\@setplength{foldmarkhpos}{3.5mm} -\@setplength{tfoldmarkvpos}{% -% 105mm} -% 87mm} -% 103.5mm} -% 99mm} -% 3.75in} -\@setplength{mfoldmarkvpos}{\z@} -\@setplength{bfoldmarkvpos}{% -% 210mm} -% 192mm} -% 202.5mm} -% 198mm} -% 7.4in} -% 7.375in} -\@setplength{lfoldmarkhpos}{\z@} -% \end{macrocode} -% \item[Anschrift] -% \begin{macrocode} -\@setplength{toaddrvpos}{% -% 45mm} -% 27mm} -% 35.5mm} -% 49mm} -% 35mm} -% 1.8in} -% 2.1875in} -\@setplength{toaddrhpos}{% -% 20mm} -% -8mm} -% 1in} -%\@addtoplength{toaddrhpos}{\oddsidemargin} -% -10mm} -% .73in} -% 0.6875in} -% .5625in} -\@setplength{toaddrwidth}{% -% 85mm} -% 90mm} -% 100mm} -% 70mm} -% 3.11in} -% 4.5in} -% 3.625in} -% \end{macrocode} -% \changes{v3.03}{2009/06/25}{Anschriftfeld enthält laut Doku die -% Rücksendeadresse, also machen wir das jetzt auch so} -% \begin{macrocode} -\@setplength{toaddrheight}{% -% 45mm} -% 1.17in} -% 1.125in} -\@setplength{toaddrindent}{% -% \z@} -% 10mm} -\@setplength{backaddrheight}{% -% 5mm} -% \z@} -%\KOMAoptions{backaddress=false} -\@setplength{specialmailindent}{\fill} -\@setplength{specialmailrightindent}{1em} -% \end{macrocode} -% \item[Absenderergänzung] -% \begin{macrocode} -\@setplength{locwidth}{% -% \z@} -% \end{macrocode} -% \item[Kopf] -% \begin{macrocode} -\@setplength{firstheadvpos}{% -% 8mm} -% 6mm} -% 15mm} -% .36in} -% .4375in} -\@setplength{firstheadwidth}{% -% \textwidth} -% 170mm} -%<*DIN|DINmoretext|SN|SwissLeft|UScommercial9> - \paperwidth} -\ifdim \useplength{toaddrhpos}>\z@ - \@addtoplength[-2]{firstheadwidth}{\useplength{toaddrhpos}} -\else - \@addtoplength[2]{firstheadwidth}{\useplength{toaddrhpos}} -\fi -% -%<*USletter2w> - \paperwidth} -\@addtoplength[-]{firstheadwidth}{.68in} -% -%<*UScommercial9DW> - \paperwidth} -\@addtoplength[-]{firstheadwidth}{.25in} -% -% \end{macrocode} -% \item[Fuß] -% \changes{v2.9u}{2005/03/05}{Der Fuß hat optional eine feste Position 16\,mm -% über der unteren Papierkante.} -% \begin{macrocode} -\@setplength{firstfootwidth}{\useplength{firstheadwidth}} -%\@setplength{firstfootvpos}{\paperheight} -%\@addtoplength{firstfootvpos}{-2cm} -%\ifnum \scr@compatibility >\@nameuse{scr@v@2.9t}\relax -% \@setplength{firstfootvpos}{\paperheight} -% \@addtoplength{firstfootvpos}{-16mm} -%\else -% \@setplength{firstfootvpos}{1in} -% \@addtoplength{firstfootvpos}{\topmargin} -% \@addtoplength{firstfootvpos}{\headheight} -% \@addtoplength{firstfootvpos}{\headsep} -% \@addtoplength{firstfootvpos}{\textheight} -% \@addtoplength{firstfootvpos}{\footskip} -%\fi -%\@setplength{firstfootvpos}{266.679mm} -% \end{macrocode} -% \item[Geschäftszeile] -% \begin{macrocode} -\@setplength{refvpos}{% -% 98.5mm} -% 80.5mm} -% 89mm} -% 89.5mm} -% \useplength{tfoldmarkvpos}} -% 3.1in} -% 3.4375in} -\@setplength{refaftervskip}{% -% \baselineskip} -% 2\baselineskip} -% \end{macrocode} -% Bei der Breite der Geschäftszeile brauchen wir wieder eine Sonderlösung, -% damit die Option "`wide"' auch später 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} -% \end{macrocode} -% \item[Signature] -% \begin{macrocode} -\@setplength{sigindent}{0mm} -\@setplength{sigbeforevskip}{2\baselineskip} -%\let\raggedsignature=\centering -%\let\raggedsignature=\raggedright -% \end{macrocode} -% \end{description} -% Es folgen ggf. noch zusätzliche Änderungen. -% \begin{macrocode} -%<*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ßerdem gibt es noch die Kompatibilitätseinstellungen, 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} -\def\foldmarkson{\@ObsoleteCommand{\foldmarkson}{foldmarks=on}} -\def\foldmarksoff{\@ObsoleteCommand{\foldmarksoff}{foldmarks=off}} -\def\addrfieldon{\@ObsoleteCommand{\addrfieldon}{addrfield=on}} -\def\addrfieldoff{\@ObsoleteCommand{\addrfieldoff}{addrfield=off}} -\def\subjecton{\@ObsoleteCommand{\subjecton}{subject=titled}} -\def\subjectoff{\@ObsoleteCommand{\subjectoff}{subject=untitled}} -\def\subjectafteron{% - \@ObsoleteCommand{\subjectafteron}{subject=afteropening}} -\def\subjectafteroff{% - \@ObsoleteCommand{\subjectafteroff}{subject=beforeopening}} -% -% \end{macrocode} -% -% \iffalse -% -%<*visualize> -% \fi -% -% \subsection{Makros zur Visualisierung diverser Felder in einem Brief} -% -% Diese Makros werden nur von \texttt{visualize.lco} verwendet und stellen den -% Hauptteil dieser LCO dar. -% -% Das Paket benötigt \textsf{eso-pic}. Das Paket wird nur dann explizit -% geladen, wenn dies nicht bereits geschehen ist. Damit ist es möglich das -% Paket mit Optionen vor der LCO zu laden: -% \begin{macrocode} -\@ifpackageloaded{eso-pic}{}{\RequirePackage{eso-pic}} -% \end{macrocode} -% -% \begin{macro}{\showfields} -% Diese Anweisung erlaubt es, eine Reihe von Felder zu visualisieren. Dazu -% gibt man die gewünschten Felder als Komma separierte Liste im ersten und -% einzigen Argument der Anweisung an. Gibt man ein unbekanntes Feld an, so -% wird nicht etwa ein Fehler, sondern nur eine Warnung ausgegeben. Die -% Visualisierung erfolgt im Hintergrund. Dies wird mit Hilfe des Pakets -% \textsf{eso-pic} erreicht. Wichtig ist noch, dass die Anweisung nicht -% zurückgenommen werden kann. -% \begin{macrocode} -\newcommand*{\showfields}[1]{% - \AtBeginLetter{% - \begingroup - \@for \@tempa:=#1\do{% - \ifx\@tempa\@empty\else - \@ifundefined{showfield@\@tempa}{% - \LCOWarning{visualize}{Unknown field `\@tempa' ignored}% - }{% - \edef\@tempa{% - \noexpand\AddToShipoutPicture*{% - \noexpand\AtPageUpperLeft{% - \noexpand\usekomafont{field}% - \noexpand\@nameuse{showfield@\@tempa}% - }% - }% - }\@tempa - }% - \fi - }% - \endgroup - }% -} -% \end{macrocode} -% \begin{KOMAfont}{field} -% Die Visualisierung erfolgt dabei in einer wählbaren Farbe, die über das -% Element \cs{field} definiert ist. Voreingestellt ist dabei -% \cs{normalcolor}. -% \begin{macrocode} -\newkomafont{field}{\normalcolor} -% \end{macrocode} -% \end{KOMAfont} -% \end{macro} -% -% \begin{macro}{\showfield} -% Die Visualisierung der einzelnen Felder erfolgt über eigene Anweisungen des -% Aufbaus \cs{showfield@\emph{Feldname}}. In der Regel sind die Felder -% rechteckig. Zur Visualisierung solcher Felder können daher einheitliche -% Anweisungen verwendet werden. Diese besitzen vier Argumente: -% \begin{enumerate} -% \item Abstand vom linken Rand (x-Koordinate des Rahmens) -% \item Abstand vom oberen Rand (y-Koordinate des Rahmens) -% \item Breite des Feldes -% \item Höhe des Feldes; ist dieser Wert negativ gibt es keine feste Höhe, -% sondern nur eine Art unbestimmte Ausdehnung mit einer Mindesthöhe -% \end{enumerate} -% -% \begin{macro}{\showfield@by@frame} -% Diese Anweisung visualisiert ein rechteckiges Feld durch Rahmen. Bei einer -% negativen Höhe wird ein unten offener Rahmen gezeichnet, bei dem die -% vertikalen Linien als Pfeile nach unten ausgeführt werden. -% \begin{macrocode} -\newcommand*{\showfield@by@frame}[4]{% - \thinlines - \ifdim #4<\z@ - \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(1,0){\LenToUnit{#3}}}% - \setlength{\@tempdima}{\dimexpr #1+#3\relax}% - \setlength{\@tempdimb}{#4} - \put(\LenToUnit{#1},-\LenToUnit{#2}){% - \vector(0,-1){\LenToUnit{-\@tempdimb}}}% - \put(\LenToUnit\@tempdima,-\LenToUnit{#2}){% - \vector(0,-1){\LenToUnit{-\@tempdimb}}}% - \else - \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(1,0){\LenToUnit{#3}}}% - \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(0,-1){\LenToUnit{#4}}}% - \setlength{\@tempdima}{\dimexpr #1+#3\relax}% - \setlength{\@tempdimb}{\dimexpr #2+#4\relax}% - \put(\LenToUnit\@tempdima,\LenToUnit{-\@tempdimb}){% - \line(-1,0){\LenToUnit{#3}}}% - \put(\LenToUnit\@tempdima,\LenToUnit{-\@tempdimb}){% - \line(0,1){\LenToUnit{#4}}}% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\showfield@by@edges} -% Diese Anweisung visualisert ein rechteckiges Feld, indem es die Ecken des -% Feldes durch kleine Striche markiert. Bei negativer Höhe entfallen die -% unteren Eckmarkierungen. -% \begin{macrocode} -\newcommand*{\showfield@by@edges}[4]{% - \thinlines - \setlength{\@tempdima}{\dimexpr #1+#3\relax}% - \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(1,0){\LenToUnit{\edgesize}}}% - \put(\LenToUnit{#1},-\LenToUnit{#2}){\line(0,-1){\LenToUnit{\edgesize}}}% - \put(\LenToUnit{\@tempdima},-\LenToUnit{#2}){\line(-1,0){\LenToUnit{\edgesize}}}% - \put(\LenToUnit{\@tempdima},-\LenToUnit{#2}){\line(0,-1){\LenToUnit{\edgesize}}}% - \ifdim #4<\z@\else - \setlength{\@tempdimb}{\dimexpr #2+#4\relax}% - \put(\LenToUnit{#1},-\LenToUnit{\@tempdimb}){\line(1,0){\LenToUnit{\edgesize}}}% - \put(\LenToUnit{#1},-\LenToUnit{\@tempdimb}){\line(0,1){\LenToUnit{\edgesize}}}% - \put(\LenToUnit{\@tempdima},-\LenToUnit{\@tempdimb}){\line(-1,0){\LenToUnit{\edgesize}}}% - \put(\LenToUnit{\@tempdima},-\LenToUnit{\@tempdimb}){\line(0,1){\LenToUnit{\edgesize}}}% - \fi -} -% \end{macrocode} -% \begin{macro}{\edgesize} -% Die Länge der Ecklinien wird über dieses Makro bestimmt. Voreingestellt ist -% 1\,ex. -% \begin{macrocode} -\newcommand*{\edgesize}{1ex} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\showfield@by@rule} -% Diese Anweisung visualisiert ein rechteckiges Feld, indem es das komplette -% Feld einfärbt. Es wird hier nicht zwischen unten offenen und geschlossenen -% Feldern unterschieden. -% \begin{macrocode} -\newcommand*{\showfield@by@rule}[4]{% - \ifdim #4<\z@ - \put(\LenToUnit{#1},-\LenToUnit{#2}){\rule[#4]{#3}{-#4}}% - \else - \put(\LenToUnit{#1},-\LenToUnit{#2}){\rule[-#4]{#3}{#4}}% - \fi -} -% \end{macrocode} -% \end{macro} -% -% Die Voreinstellung für die Visualsierung ist mit Rahmen: -% \begin{macrocode} -\newcommand*{\showfield}{} -\let\showfield\showfield@by@frame -% \end{macrocode} -% -% \begin{macro}{\setshowstyle} -% Dieser Stil der Visualisierung kann per Anweisung umgeschaltet -% werden. Existiert ein Stil nicht, so wird kein Fehler gemldet, sondern -% lediglich eine Warnung und der Standardstil verwendet: -% \begin{macrocode} -\newcommand*{\setshowstyle}[1]{% - \@ifundefined{showfield@by@#1}{% - \LCOWarning{visualize}{Unknown show type `#1'.\MessageBreak - You should simply set one of the supported\MessageBreak - show types `frame', `edge', `rule'.\MessageBreak - Style `frame' will be used instead}% - \let\showfield\showfield@by@frame - }{% - \expandafter\let\expandafter\showfield\csname showfield@by@#1\endcsname - }% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% Die folgenden Felder werden derzeit unterstützt: -% \begin{macro}{\showfield@test} -% ein Testfeld \texttt{test} mit den Koordinaten: -% $(1\,\mathrm{cm},1\,\mathrm{cm})\times(10\,\mathrm{cm},15\,\mathrm{cm})$ -% \begin{macrocode} -\newcommand*{\showfield@test}{% - \showfield{1cm}{1cm}{10cm}{15cm}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\showfield@head} -% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstheadhpos} -% beachtet} -% das Feld \texttt{head} für den Kopfbereich des Briefbogens: -% \begin{macrocode} -\newcommand*{\showfield@head}{% - \ifdim\useplength{firstheadhpos}<\paperwidth - \ifdim \useplength{firstheadhpos}>-\paperwidth - \ifdim \useplength{firstheadhpos}<\z@ - \setlength\@tempskipa{\paperwidth}% - \addtolengthplength{\@tempskipa}{firstheadhpos}% - \addtolengthplength[-]{\@tempskipa}{firstheadwidth}% - \else - \setlength{\@tempskipa}{\useplength{firstheadhpos}}% - \fi - \else - \setlength\@tempskipa{\oddsidemargin}% - \addtolength\@tempskipa{1in}% - \fi - \else - \setlength\@tempskipa{.5\paperwidth}% - \addtolengthplength[-.5]{\@tempskipa}{firstheadwidth}% - \fi - \showfield{\@tempskipa}% - {\useplength{firstheadvpos}}% - {\useplength{firstheadwidth}}% - {-\headheight}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\showfield@foot} -% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstfoothpos} -% beachtet} -% das Feld \texttt{foot} für den Fußbereich des Briefbogens: -% \begin{macrocode} -\newcommand*{\showfield@foot}{% - \ifdim\useplength{firstfoothpos}<\paperwidth - \ifdim \useplength{firstfoothpos}>-\paperwidth - \ifdim \useplength{firstfoothpos}<\z@ - \setlength\@tempskipa{\paperwidth}% - \addtolengthplength{\@tempskipa}{firstfoothpos}% - \addtolengthplength[-]{\@tempskipa}{firstfootwidth}% - \else - \setlength{\@tempskipa}{\useplength{firstfoothpos}}% - \fi - \else - \setlength\@tempskipa{\oddsidemargin}% - \addtolength\@tempskipa{1in}% - \fi - \else - \setlength\@tempskipa{.5\paperwidth}% - \addtolengthplength[-.5]{\@tempskipa}{firstfootwidth}% - \fi - \showfield{\@tempskipa}% - {\useplength{firstfootvpos}}% - {\useplength{firstfootwidth}}% - {-\baselineskip}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\showfield@address} -% \changes{v3.07a}{2011/01/10}{Implementierung der Höhe an die Änderung in -% \textsf{scrlttr}~3.03b angepasst.} -% das Feld \texttt{address} für das Feld mit der Anschrift: -% \begin{macrocode} -\newcommand*{\showfield@address}{% - \setlengthtoplength{\@tempskipa}{toaddrhpos}% - \ifdim \@tempskipa<\z@ - \addtolength{\@tempskipa}{\paperwidth}% - \addtolengthplength[-]{\@tempskipa}{toaddrwidth}% - \fi - \showfield{\@tempskipa}{\useplength{toaddrvpos}}% - {\useplength{toaddrwidth}}% - {\dimexpr\useplength{toaddrheight}\relax}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\showfield@location} -% \changes{v3.07a}{2011/01/10}{Implementierung der Höhe an die Änderung in -% \textsf{scrlttr}~3.03b angepasst.} -% das Feld \texttt{location} mit der Absenderergänzung: -% \begin{macrocode} -\newcommand*{\showfield@location}{% - \begingroup - \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% - \ifdim \useplength{lochpos}=\z@% - \@setplength{lochpos}{\useplength{toaddrhpos}}% - \fi - \ifdim \useplength{locvpos}=\z@% - \@setplength{locvpos}{\useplength{toaddrvpos}}% - \fi - \ifdim \useplength{locheight}=\z@% - \@setplength{locheight}{\useplength{toaddrheight}}% - \fi - \setlengthtoplength[-]{\@tempskipa}{lochpos}% - \ifdim \@tempskipa<\z@ - \addtolength{\@tempskipa}{\paperwidth}% - \else - \addtolengthplength{\@tempskipa}{locwidth}% - \fi - \addtolengthplength[-]{\@tempskipa}{locwidth}% - \showfield{\@tempskipa}{\useplength{locvpos}}% - {\useplength{locwidth}}{\useplength{locheight}}% - \endgroup -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\showfield@refline} -% das Feld mit der Geschäftszeile: -% \begin{macrocode} -\newcommand*{\showfield@refline}{% - \begingroup - \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 - \setlength\@tempdima{\textwidth}% - \addtolengthplength[-]{\@tempdima}{refwidth}% - \setlength\@tempdimb{\oddsidemargin}% - \addtolength\@tempdimb{1in}% - \setlength{\@tempdimc}{\paperwidth}% - \addtolength{\@tempdimc}{-\textwidth}% - \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 - \showfield{\useplength{refhpos}}{\useplength{refvpos}}% - {\useplength{refwidth}}{-1.5\baselineskip}% - \endgroup -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\showenvelope} -% \begin{macro}{\@showenvelope} -% \begin{macro}{\@@showenvelope} -% \begin{macro}{\@@@showenvelope} -% Es kann auch ein Briefumschlag angezeigt werden. Dazu müssen verschiedene -% Parameter des Umschlags bekannt sein. Der Umschlag wird immer hochkant auf -% der aktuellen Seite angezeigt. Hierfür wird das Paket \textsf{graphicx} -% benötigt. Das Paket wird nur dann explizit geladen, wenn dies nicht bereits -% geschehen ist. Damit ist es möglich das Paket mit Optionen vor der LCO zu -% laden. -% \begin{macrocode} -\@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}} -\newcommand*{\showenvelope}{} -\newcommand*{\@@showenvelope}{} -\newcommand*{\@@@showenvelope}{} -\def\showenvelope(#1,#2){% - \@ifnextchar (%) - {\@showenvelope({#1},{#2})}% - {\@@@showenvelope({#1},{#2})}% -} -\def\@@@showenvelope(#1,#2){% - \begingroup - \def\@tempa{\endgroup}% - \ifdim \paperwidth>#1\relax - \LCOWarning{visualize}{% - \string\paperwidth\space > envelope width not supported}% - \else - \ifdim \paperheight>#2\relax - \ifdim .5\paperheight>#2\relax - \expandafter\ifdim \useplength{tfoldmarkvpos}>#2\relax - \LCOWarning{visualize}{% - tfoldmarkvpos > envelope height not supported}% - \else - \def\@tempa{\endgroup - \@showenvelope({#1},{#2})% - ({\dimexpr (#1-\paperwidth)/2\relax},% - {\dimexpr (#2-\expandafter\dimexpr - \useplength{tfoldmarkvpos}\relax)% - /2\relax})% - }% - \fi - \else - \def\@tempa{\endgroup - \@showenvelope({#1},{#2})% - ({\dimexpr (#1-\paperwidth)/2\relax},% - {\dimexpr (#2-.5\paperheight)/2\relax})% - }% - \fi - \else - \def\@tempa{\endgroup - \@showenvelope({#1},{#2})% - ({\dimexpr (#1-\paperwidth)/2\relax},% - {\dimexpr (#2-\paperheight)/2\relax})% - }% - \fi - \fi - \@tempa -} -\def\@showenvelope(#1,#2)(#3,#4){% - \@ifnextchar [%] - {\@@showenvelope({#1},{#2})({#3},{#4})}% - {\@@showenvelope({#1},{#2})({#3},{#4})[]}% -} -\def\@@showenvelope(#1,#2)(#3,#4)[#5]{% -% \end{macrocode} -% Die Argumente sind: -% \begin{enumerate} -% \item Breite des Umschlags, -% \item Höhe des Umschlags, -% \item Abstand des Briefbogens vom linken und rechten Rand des Umschlags, -% \item Abstand des Briefbogens vom oberen und unteren Rand des Umschlags, -% \item optionale weitere Anweisungen, zum Setzen von Elementen. -% \end{enumerate} -% \begin{macrocode} - \newpage - \vspace*{\fill} - \rotatebox{90}{% - \begin{picture}(0,0) - \begin{picture}(\LenToUnit{#1},\LenToUnit{#2})(0,\LenToUnit{#2}) - \newcommand*{\PlusHOffset}[1]{% - \dimexpr \expandafter\dimexpr ##1\relax + #3\relax - }% - \newcommand*{\MinusHOffset}[1]{% - \dimexpr \expandafter\dimexpr ##1\relax - #3\relax - }% - \newcommand*{\PlusVOffset}[1]{% - \dimexpr \expandafter\dimexpr ##1\relax + #4\relax - }% - \newcommand*{\MinusVOffset}[1]{% - \dimexpr \expandafter\dimexpr ##1\relax - #4\relax - }% - \newcommand{\AtEnvelopeUpperLeft}[1]{% - \put(\LenToUnit{\PlusHOffset\z@},\LenToUnit{\MinusVOffset{#2}}){##1}% - }% - \newcommand{\AtEnvelopeLowerLeft}[1]{% - \put(\LenToUnit{\PlusHOffset\z@},\LenToUnit{\PlusVOffset\z@}){##1}% - }% - \newcommand{\AtEnvelopeUpperRight}[1]{% - \put(\LenToUnit{\MinusHOffset{#1}},\LenToUnit{\MinusVOffset{#2}}){##1}% - }% - \newcommand{\AtEnvelopeLowerRight}[1]{% - \put(\LenToUnit{\MinusHOffset{#1}},\LenToUnit{\PlusVOffset\z@}){##1}% - }% - \newcommand*{\measuredIFrame}{}% - \def\measuredIFrame(##1,##2)(##3,##4){% - \put(\LenToUnit{##1},\LenToUnit{##2}){% - \measuredFrameLB({##3},{##4})% - }% - \put(\LenToUnit{\MinusHOffset\z@},% - \LenToUnit{\dimexpr ##2-.5mm\relax}){% - \measureLineHB{\PlusHOffset{##1}}% - }% - \put(\LenToUnit{\dimexpr ##1+##3\relax},% - \LenToUnit{\dimexpr ##2-.5mm\relax}){% - \measureLineHB{\dimexpr #1-% - \PlusHOffset{\dimexpr ##1+##3\relax}\relax}% - }% - \put(\LenToUnit{\dimexpr ##1-.5mm\relax},% - \LenToUnit{\dimexpr ##2+##4\relax}){% - \measureLineVL{\PlusVOffset{\dimexpr -##2-##4\relax}}% - }% - \put(\LenToUnit{\dimexpr ##1-.5mm\relax},% - \LenToUnit{\PlusVOffset{-#2}}){% - \measureLineVL{\dimexpr #2-% - \PlusVOffset{\dimexpr -##2\relax}\relax}% - }% - }% - \put(0,0){% - \thicklines - \usekomafont{envelope}% - \measuredFrameLB({#1},{#2})% - }% - \AtEnvelopeLowerLeft{% - \usekomafont{letter}% - \dashbox{\LenToUnit{1mm}}% - (\LenToUnit{\MinusHOffset{\MinusHOffset{#1}}},% - \LenToUnit{\MinusVOffset{\MinusVOffset{#2}}}){}% - }% - \expandafter\ifdim \useplength{toaddrhpos}<\z@ - \AtEnvelopeUpperLeft{% - \thicklines - \usekomafont{envelope}% - \measuredIFrame(\expandafter\dimexpr \useplength{toaddrhpos}+ - \MinusHOffset{\MinusHOffset{#1}}\relax,% - -\dimexpr % - \expandafter\dimexpr\useplength{toaddrvpos}\relax - + - \expandafter - \dimexpr\useplength{toaddrheight}\relax - \relax)% - (\useplength{toaddrwidth},\useplength{toaddrheight})% - }% - \else - \AtEnvelopeUpperLeft{% - \thicklines - \usekomafont{envelope}% - \measuredIFrame(\useplength{toaddrhpos},% - -\dimexpr % - \expandafter\dimexpr\useplength{toaddrvpos}\relax - + - \expandafter - \dimexpr\useplength{toaddrheight}\relax - \relax)% - (\useplength{toaddrwidth},\useplength{toaddrheight})% - }% - \fi - \AtEnvelopeUpperLeft{#5}% - \end{picture} - \end{picture} - }% - \newpage -} -% \end{macrocode} -% \begin{KOMAfont}{envelope} -% Farbe des Umschlagrahmens. -% \begin{macrocode} -\newkomafont{envelope}{\normalcolor} -% \end{macrocode} -% \end{KOMAfont} -% \begin{KOMAfont}{letter} -% Farbe des getrichelten Briefbogens im Umschlag -\newkomafont{letter}{\normalcolor} -% \end{KOMAfont} -% \begin{macro}{\unmeasuredFrame} -% Ein Rahmen ohne Maßlinien. -% \begin{macrocode} -\newcommand*{\unmeasuredFrame}{} -\def\unmeasuredFrame(#1,#2){% - \put(0,0){\line(1,0){\LenToUnit{#1}}}% - \put(\LenToUnit{#1},0){\line(0,1){\LenToUnit{#2}}}% - \put(\LenToUnit{#1},\LenToUnit{#2}){\line(-1,0){\LenToUnit{#1}}}% - \put(0,\LenToUnit{#2}){\line(0,-1){\LenToUnit{#2}}}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\measuredFrameLB} -% \begin{macro}{\measuredFrameLT} -% \begin{macro}{\measuredFrameRB} -% \begin{macro}{\measuredFrameRT} -% Die Maßlinien für ein Rechteck. -% \begin{macrocode} -\newcommand*{\measuredFrameLB}{} -\def\measuredFrameLB(#1,#2){% - \unmeasuredFrame({#1},{#2})% - \put(\LenToUnit{-.5mm},0){\measureLineVL{#2}}% - \put(0,\LenToUnit{-.5mm}){\measureLineHB{#1}}% -} -\newcommand*{\measuredFrameLT}{} -\def\measuredFrameLT(#1,#2){% - \unmeasuredFrame({#1},{#2})% - \put(\LenToUnit{-.5mm},0){\measureLineVL{#2}}% - \put(0,\LenToUnit{\expandafter\dimexpr #2+.5mm\relax}){\measureLineHT{#1}}% -} -\newcommand*{\measuredFrameRB}{} -\def\measuredFrameRB(#1,#2){% - \unmeasuredFrame({#1},{#2})% - \put(\LenToUnit{\expandafter\dimexpr #1+.5mm\relax},0){\measureLineVR{#2}}% - \put(0,\LenToUnit{-.5mm}){\measureLineHB{#1}}% -} -\newcommand*{\measuredFrameRT}{} -\def\measuredFrameRT(#1,#2){% - \unmeasuredFrame({#1},{#2})% - \put(\LenToUnit{\expandafter\dimexpr #1+.5mm\relax},0){\measureLineVR{#2}}% - \put(0,\LenToUnit{\expandafter\dimexpr #2+.5mm\relax}){\measureLineHT{#1}}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\measureLineV} -% Vertikale Maßlinie ohne Beschriftung: -% \begin{macrocode} -\newcommand*{\measureLineV}[1]{% - \begin{picture}(0,0) - \thinlines - \usekomafont{measure}% - \put(0,0){\vector(0,1){\LenToUnit{#1}}}% - \put(0,\LenToUnit{#1}){\vector(0,-1){\LenToUnit{#1}}}% - \end{picture} -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\measureLineVL} -% \begin{macro}{\measureLineVR} -% Vertikale Maßlinie mit Beschriftung links bzw. rechts. -% \begin{macrocode} -\newcommand*{\measureLineVL}[1]{% - \begin{picture}(0,0) - \usekomafont{measure}% - \put(0,0){\measureLineV{#1}}% - \put(0,0){\makebox(0,\LenToUnit{#1})[r]{\ValPerUnit{#1}}}% - \end{picture} -} -\newcommand*{\measureLineVR}[1]{% - \begin{picture}(0,0) - \usekomafont{measure}% - \put(0,0){\measureLineV{#1}}% - \put(0,0){\makebox(0,\LenToUnit{#1})[l]{\ValPerUnit{#1}}}% - \end{picture} -} -% \end{macrocode} -% \begin{macro}{\ValPerUnit} -% \begin{macro}{\unitfactor} -% Zeige die Längen in \cs{unitlength} mit einer Genauigkeit von -% 1/\cs{unitfactor} an. -% \begin{macrocode} -\newcommand*{\ValPerUnit}[1]{% - \begingroup - \setlength{\@tempdima}{% - \dimexpr #1/(\unitlength/\unitfactor)*\p@/\unitfactor\relax - }% - \strip@pt\@tempdima - \endgroup -} -\newcommand*{\unitfactor}{1} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\measureLineH} -% Horizontale Maßlinie ohne Beschriftung: -% \begin{macrocode} -\newcommand*{\measureLineH}[1]{% - \begin{picture}(0,0) - \usekomafont{measure}% - \put(0,0){\vector(1,0){\LenToUnit{#1}}}% - \put(\LenToUnit{#1},0){\vector(-1,0){\LenToUnit{#1}}}% - \end{picture} -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\measureLineHB} -% \begin{macro}{\measureLineHT} -% Horizontale Maßlinie mit Beschriftung darunter bzw. oben. -% \begin{macrocode} -\newcommand*{\measureLineHB}[1]{% - \begin{picture}(0,0) - \usekomafont{measure}% - \put(0,0){\measureLineH{#1}}% - \put(0,\LenToUnit{\dimexpr -\ht\strutbox-.5mm\relax}){% - \makebox(\LenToUnit{#1},\LenToUnit{\baselineskip})[c]{\ValPerUnit{#1}}}% - \end{picture} -} -\newcommand*{\measureLineHT}[1]{% - \begin{picture}(0,0) - \usekomafont{measure}% - \put(0,0){\measureLineH{#1}}% - \put(0,0){% - \makebox(\LenToUnit{#1},\LenToUnit{\baselineskip})[c]{\ValPerUnit{#1}}}% - \end{picture} -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{KOMAfont}{measure} -% Farbe der Maßlinien. -% \begin{macrocode} -\newkomafont{measure}{\normalcolor} -% \end{macrocode} -% \end{KOMAfont} -% \end{macro} -% -% \begin{macro}{\showISOenvelope} -% Zeigt einen DIN/ISO C4, C5, DL=C5/6, C6/5 Umschlag. -% \begin{macrocode} -\newcommand*{\showISOenvelope}[1]{% - \ifstr{#1}{C4}{% - \showenvelope(324mm,229mm)% - }{% - \ifstr{#1}{C5}{% - \showenvelope(229mm,162mm)% - }{% - \ifstr{#1}{C5/6}{% - \showenvelope(220mm,110mm)% - }{% - \ifstr{#1}{DL}{% - \showenvelope(220mm,110mm)% - }{% - \ifstr{#1}{C6/5}{% - \showenvelope(229mm,114mm)% - }{% - \ifstr{#1}{C6}{% - \showenvelope(162mm,114mm)% - }{% - \LCOWarning{visualize}{envelope size `ISO #1' unsupported}% - }% - }% - }% - }% - }% - }% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\showUScommercial} -% Zeige ein US commercial Umschlag der Nummer 9 und 10 -% \begin{macrocode} -\newcommand*{\showUScommercial}[1]{% - \ifstr{#1}{9}{% - \showenvelope(8.875in,3.875in)% - }{% - \ifstr{#1}{10}{% - \showenvelope(9.5in,4.125in)% - }{% - \LCOWarning{visualize}{envelope size `US commercial #1' unsupported}% - }% - }% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\showUScheck} -% Zeige einen US check Umschag. -% \begin{macrocode} -\newcommand*{\showUScheck}{% - \showenvelope(8.625in,3.625in)% -} -% \end{macrocode} -% \end{macro} -% -% \iffalse -% -%<*!visualize> -% \fi -% -% \begin{macro}{\showUSletterCixDW} -% Ein Umschlag im Format commercial No. 9 mit 2 Fenstern, -% Absenderfenster $3\frac{1}{2}\,\mathrm{in}\times\frac{7}{8}\,\mathrm{in}$, -% $\frac{5}{16}\,\mathrm{in}$ von links und $2\frac{1}{2}\,\mathrm{in}$ von -% unten. -% \begin{macrocode} -%<*UScommercial9DW> -\newcommand*{\showUSletterCixDW}{% - \showUScommercial9[{% - \thicklines - \usekomafont{envelope}% - \measuredIFrame({\dimexpr (\paperwidth- - \expandafter\dimexpr \useplength{firstheadwidth}\relax% - )/2\relax},% - -\expandafter\dimexpr\useplength{firstheadvpos}\relax)% - (3.5in,.875in)% - }]% -} -% -% \end{macrocode} -% \end{macro} -% -% \iffalse -% -% -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrklco.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkliof.dtx b/Master/texmf-dist/source/latex/koma-script/scrkliof.dtx deleted file mode 100644 index 41ec5de897b..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkliof.dtx +++ /dev/null @@ -1,890 +0,0 @@ -% \CheckSum{410} -% \iffalse meta-comment -% ====================================================================== -% scrkliof.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkliof.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkliof.dtx -%<*driver> -% \fi -\ProvidesFile{scrkliof.dtx}[2010/11/01 v3.08 KOMA-Script (lists of)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkliof.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/06/28}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Verzeichnisse} -% -% \LaTeX{} Klassen bieten eine ganze Reihe von Verzeichnissen. Thema -% dieses Abschnitts sind die Verzeichnisse der -% Gleitumgebungen und das Inhaltsverzeichnis. \KOMAScript{} bietet -% selbst das Verzeichnis der Gleittabellen und der Abbildungen. Es -% unterstützt außerdem die Verzeichnisse der mit dem \textsf{float} -% Paket angelegten Gleitumgebungen. -% -% Briefe verfügen über keine Verzeichnisse. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*!letter> -% \fi -% -% \iffalse -%<*option> -% \fi -% -% -% \subsection{Optionen für das Inhaltsverzeichnis} -% -% Einige Anweisungen und Einstellungen werden bereits für die Optionen -% benötigt und deshalb vorab definiert. -% -% \begin{macro}{\if@tocleft} -% \changes{v2.8q}{2001/11/14}{neuer Schalter} -% \changes{v2.98c}{2008/03/05}{wird früher definiert} -% \begin{macro}{\@toclefttrue} -% \begin{macro}{\@tocleftfalse} -% Die Wahl der Darstellungsart für das Inhaltsverzeichnis wird in einem -% Schalter gespeichert. -% \begin{macrocode} -\newif\if@tocleft -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{option}{toc} -% \changes{v2.98c}{2008/03/04}{Neue Option} -% Dies ist die zentrale Option für Einstellungen des Inhaltsverzeichnisses. -% \begin{macrocode} -\KOMA@key{toc}{% - \KOMA@set@ncmdkey{toc}{@tempa}{% -% \end{macrocode} -% Es gibt Werte, um zu bestimmen, welche Verzeichnisse ins Inhaltsverzeichis -% aufgenommen werden. Eigentlich sind das Optionen der jeweiligen -% Verzeichnisses, aber das muss sich der Anwender ja nicht unbedingt merken. -% \begin{macrocode} - {noindex}{0},{noidx}{0},% - {index}{1},{idx}{1},% - {nolistof}{2},% - {listof}{3},% - {listofnumbered}{4},{numberedlistof}{4},% - {nobibliography}{5},{nobib}{5},% - {bibliography}{6},{bib}{6},% - {bibliographynumbered}{7},{bibnumbered}{7},{numberedbibliography}{7},% - {numberedbib}{7},% -% \end{macrocode} -% Dann gibt es Optionen für die Darstellungsarten des -% Inhaltsverzeichnisses. Die Variante \texttt{graduated} ist die altbekannte -% Variante. Bei \texttt{flat} hingegen wird eine tabellenartige Form -% verwendet, bei der die Nummern, Texte und Seitenzahlen jeweils untereinander -% stehen. Der für die Nummern benötigte Platz wird dabei automatisch -% ermittelt. -% \begin{macrocode} - {flat}{8},{left}{8},% - {graduated}{9},{indent}{9},{indented}{9}% - }{#1}% - \ifcase \@tempa\relax - \KOMA@options{index=notoc}{}% - \or - \KOMA@options{index=totoc}{}% - \or - \KOMA@options{listof=notoc}{}% - \or - \KOMA@options{listof=totoc}{}% - \or - \KOMA@options{listof=numbered}{}% - \or - \KOMA@options{bibliography=nottotoc}{}% - \or - \KOMA@options{bibliography=totoc}{}% - \or - \KOMA@options{bibliography=totocnumbered}{}% - \or - \@toclefttrue - \or - \@tocleftfalse - \fi -} -% \end{macrocode} -% \end{option} -% -% \begin{option}{tocleft} -% \changes{v2.8q}{2001/11/14}{neue Option} -% \changes{v2.98c}{2008/03/05}{obsolet} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{tocindent} -% \changes{v2.8q}{2001/11/14}{neue Option} -% \changes{v2.98c}{2008/03/05}{obsolet} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption{tocleft}{toc=flat} -\KOMA@DeclareDeprecatedOption{tocindent}{toc=graduated} -% \end{macrocode} -% \end{option} -% \end{option} -% -% -% \subsection{Optionen für die Gleitumgebungen} -% -% Einige Anweisungen und Einstellungen werden bereits für die Optionen -% benötigt und deshalb vorab definiert. -% -% \begin{macro}{\float@@listhead} -% \changes{v2.98c}{2008/03/05}{neu (intern)} -% Setzt nur die Überschrift und sonst nichts. Dabei wird die Überschrift als -% einziges Argument übergeben. -% \begin{macrocode} -\newcommand*{\float@@listhead}{% -%
\section* -% \chapter* -} -% \end{macrocode} -% \end{macro} -% -% \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{option}{listof} -% \changes{v2.98c}{2008/03/05}{Neue Option} -% \changes{v3.06}{2010/06/02}{Alle über \textsf{tocbasic} realisierten -% Einstellungen wirken sich auch auf Verzeichnisse des Besitzers -% \texttt{float} aus, die erst später unter Kontrolle von -% \textsf{tocbasic} gestellt werden.} -% Dies ist die zentrale Option für die Gleitumgebungsverzeichnisse. -% \begin{macrocode} -\KOMA@key{listof}{% - \KOMA@set@ncmdkey{listof}{@tempa}{% -% \end{macrocode} -% Es gibt Werte, die dafür sorgen, dass die Verzeichnisse der Gleitumgebungen -% im Inhalsverzeichnis aufgeführt werden. Dazu muss nur \cs{float@@listhead} -% umdefiniert werden. -% \begin{macrocode} - {notoc}{0},{nottotoc}{0},{plainheading}{0},% - {totoc}{1},{toc}{1},{notnumbered}{1},% - {numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},% - {numberedtoc}{2},% -% \end{macrocode} -% Dann gibt es Optionen für die Darstellungsarten des -% Inhaltsverzeichnisses. Die Variante \texttt{graduated} ist die altbekannte -% Variante. Bei \texttt{flat} hingegen wird eine tabellenartige Form -% verwendet, bei der die Nummern, Texte und Seitenzahlen jeweils untereinander -% stehen. Der für die Nummern benötigte Platz wird dabei automatisch -% ermittelt. -% \begin{macrocode} - {flat}{3},{left}{3},% - {graduated}{4},{indent}{4},{indented}{4},% -% \end{macrocode} -% Dann gibt es eine Option, mit der die Gliederungsebene der Verzeichnisse -% verändert werden kann. -% \begin{macrocode} - {leveldown}{5}, -% \end{macrocode} -% \changes{v3.06}{2010/05/18}{neuer Wert \texttt{entryprefix}} -% Dann gibt es eine Option, mit der die Einträge in die Verzeichnisse mit -% einem Prefix versehen werden können, soweit ein solcher Prefix -% existiert. Dieser Wert beinhaltet gleichzeitig auch den Wert \texttt{flat}. -% \begin{macrocode} - {entryprefix}{6}, -% \end{macrocode} -% Dann gibt es Optionen, für die Unterteilung auf Kapitelebene. Allerdings nur -% für \textsf{scrbook} und \textsf{scrreprt}. -% \begin{macrocode} -%<*book|report> - {chapterentry}{7},{withchapterentry}{7},% - {nochaptergap}{8},{ignorechapter}{8},% - {chaptergapsmall}{9},{smallchaptergap}{9},% - {chaptergapline}{10},{onelinechaptergap}{10}% -% - }{#1}% - \ifcase \@tempa\relax - \renewcommand*{\float@@listhead}{% -%
\section* -% \chapter* - }% - \doforeachtocfile[float]{% - \unsettoc{\@currext}{numbered}% - \unsettoc{\@currext}{totoc}% - }% - \AtAddToTocList[float]{% - \unsettoc{\@currext}{numbered}% - \unsettoc{\@currext}{totoc}% - }% - \or% totoc - \renewcommand*{\float@@listhead}{% -%
\addsec -% \addchap - }% - \doforeachtocfile[float]{% - \unsettoc{\@currext}{numbered}% - \setuptoc{\@currext}{totoc}% - }% - \AtAddToTocList[float]{% - \unsettoc{\@currext}{numbered}% - \setuptoc{\@currext}{totoc}% - }% - \or% numbered - \renewcommand*{\float@@listhead}{% -%
\section -% \chapter - }% - \doforeachtocfile[float]{% - \setuptoc{\@currext}{numbered}% - \setuptoc{\@currext}{totoc}% - }% - \AtAddToTocList[float]{% - \setuptoc{\@currext}{numbered}% - \setuptoc{\@currext}{totoc}% - }% - \or% flat - \@dynlisttrue - \or% graduated - \@dynlistfalse - \or% leveldown - \doforeachtocfile[float]{% - \setuptoc{\@currext}{leveldown}% - }% - \AtAddToTocList[float]{% - \setuptoc{\@currext}{leveldown}% - }% - \or% entryprefix - \@dynlisttrue - \doforeachtocfile[float]{% - \BeforeStartingTOC[\@currext]{% - \scr@ifundefinedorrelax{listof\@currext entryname}{}{% - \expandafter\def\expandafter\numberline@prefix - \expandafter{\csname listof\@currext entryname\endcsname - \nobreakspace}% - }% - }% - }% - \AtAddToTocList[float]{% - \BeforeStartingTOC[\@currext]{% - \scr@ifundefinedorrelax{listof\@currext entryname}{}{% - \expandafter\def\expandafter\numberline@prefix - \expandafter{\csname listof\@currext entryname\endcsname - \nobreakspace}% - }% - }% - }% -%<*book|report> - \or% chapterentry - \KOMA@options{chapteratlists=entry}{}% - \or% chaptergap - \KOMA@options{chapteratlists=\z@}{}% - \or% chaptergapsmall - \KOMA@options{chapteratlists=10\p@}{}% - \or% chaptergapline - \KOMA@options{chapteratlists=\baselineskip}{}% -% - \fi -} -% \end{macrocode} -% \end{option} -% -% \begin{option}{liststotoc} -% \changes{v2.3h}{1995/01/21}{neue Option} -% \changes{v2.8b}{2001/06/26}{Verwendung von \cs{float@headings}} -% \changes{v2.4a}{1996/03/13}{\cs{listtabelname} durch -% \cs{listtablename} ersetzt} -% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in -% \cs{float@listhead}} -% \changes{v2.98c}{2008/03/05}{obsolet} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption{liststotoc}{listof=totoc} -% \end{macrocode} -% \end{option} -% -% \begin{option}{liststotocnumbered} -% \changes{v2.8q}{2002/04/08}{dem langjährigen Druck nachgegeben} -% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel} -% \changes{v2.98c}{2008/03/05}{obsolet} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption{liststotocnumbered}{listof=numbered} -% \end{macrocode} -% \end{option} -% -% -% \begin{option}{listsleft} -% \changes{v2.8q}{2001/11/14}{neue Option} -% \changes{v2.98c}{2008/03/05}{obsolet} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{listsindent} -% \changes{v2.8q}{2001/11/14}{neue Option} -% \changes{v2.98c}{2008/03/05}{obsolet} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption{listsleft}{listof=flat} -\KOMA@DeclareDeprecatedOption{listsindent}{listof=graduated} -% \end{macrocode} -% \end{option} -% \end{option} -% -% \begin{option}{chapteratlists} -% \changes{v2.96a}{2006/12/03}{neue Option} -% \changes{v2.98c}{2008/03/05}{nicht mehr bei \textsf{scrartcl}} -% \begin{macro}{\if@chaptertolists} -% \changes{v2.96a}{2006/12/03}{neuer Schalter} -% \begin{macro}{\@chapterlistsgap} -% \changes{v2.96a}{2006/12/03}{neues Macro (intern)} -% Option, um einzugstellen, ob Kapitel in den Verzeichnissen der -% Gleitumgebungen Spuren hinterlassen. Man kann wahlweise Lücken einstellen -% (Voreinstellung mit 10\,pt) oder die Kapitelüberschrift eintragen lassen. -% Der Schalter gibt dabei an, ob die Kapitelüberschrift eingetragen werden -% soll. Das interne Hilfsmakro \cs{@chapterlistsgap} enthält den gewünschten -% Abstand. -% \begin{macrocode} -%<*book|report> -\newcommand*{\@chapterlistsgap}{10\p@} -\newif\if@chaptertolists\@chaptertolistsfalse -\KOMA@key{chapteratlists}[entry]{% - \ifstr{#1}{entry}{% - \@chaptertoliststrue\renewcommand*{\@chapterlistsgap}{\z@}% - }{% - \@chaptertolistsfalse\renewcommand*{\@chapterlistsgap}{#1}% - }% -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{option} -% -% \iffalse -% -%<*body> -% \fi -% -% \subsection{Definitionen für alle Verzeichnisse} -% -% Einige Definitionen werden von unterschiedlichen Verzeichnissen -% verwendet. Diese sind hier zu finden. -% -% \changes{v3.06}{2010/06/02}{einschalten des \texttt{tocbasic}-Features -% \texttt{chapteratlist} in die Datei \texttt{scrkliof.dtx} verschoben} -% Bei Büchern wird für jedes Verzeichnis des Besitzers \texttt{float} das -% Feature \texttt{chapteratlist} gesetzt. Das gilt auch für solche -% Verzeichnisse, die noch gar nicht definiert sind. -% \begin{macrocode} -%<*book|report> -\doforeachtocfile[float]{% - \setuptoc{\@currext}{chapteratlist}% -} -\AtAddToTocList[float]{% - \setuptoc{\@currext}{chapteratlist}% -} -% -% \end{macrocode} -% \begin{macro}{\numberline} -% \changes{v2.3c}{1995/08/06}{\cs{numberline} umdefiniert} -% \changes{v3.06}{2010/05/18}{Verwendung von \cs{numberline@prefix} und -% \cs{numberline@postfix}} -% Dieses Makro wird indirekt im Inhaltsverzeichnis verwendet und muss -% umdefiniert werden, um Duden, 20.~Auflage, Regel~5 und Regel~6 zu -% implementieren. -% \begin{macrocode} -\renewcommand*{\numberline}[1]{% - \numberline@box{% - \numberline@prefix\numberline@numberformat{#1}\numberline@postfix - }% -} -% \end{macrocode} -% \begin{macro}{\numberline@prefix} -% \changes{v3.06}{2010/05/18}{neu (intern)} -% Das ist in der Voreinstellung einfach leer. Es könnte verwendet werden, um -% etwas vor die Nummer zu setzen oder die Nummer rechtsbündig zu setzen. -% \begin{macrocode} -\newcommand*{\numberline@prefix}{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\numberline@postfix} -% \changes{v3.06}{2010/05/18}{neu (intern)} -% Das ist in der Voreinstellung einfach \cs{hfil} und dient dazu die Nummer -% linksbündig zu platzieren. -% \begin{macrocode} -\newcommand*{\numberline@postfix}{\hfil} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\numberline@numberformat} -% \changes{v3.06}{2010/05/18}{neu (intern)} -% Das dient in der Voreinstellung dazu, Regel~5 und 6 aus der 20.~Auflage des -% DUDENs umzusetzen. -% \begin{macrocode} -\newcommand*{\numberline@numberformat}[1]{#1\autodot} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\numberline@box} -% \changes{v3.06}{2010/05/18}{neu (intern)} -% Das dient in der Voreinstellung dazu, die Gliederungsnummer in eine Box zu -% setzen. -% \begin{macrocode} -\newcommand*{\numberline@box}[1]{\hb@xt@\@tempdima{#1}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\@pnumwidth} -% \begin{macro}{\@tocrmarg} -% \begin{macro}{\@dotsep} -% Einige Makros für die Formatierung der Verzeichniseinträge: -% \begin{description} -% \item[\cs{@pnumwidth}] ist der Platz für die Seitenzahl. -% \item[\cs{@tocrmarg}] ist der rechte Rand bei mehrzeiligen -% Verzeichniseinträgen. Dieser wird hier größer als \cs{@pnumwidth} -% gewählt. -% \item[\cs{\@dotsep}] ist der Abstand zwischen den einzelnen -% Punkten. -% \end{description} -% \begin{macrocode} -\newcommand*\@pnumwidth{1.55em} -\newcommand*\@tocrmarg {2.55em} -\newcommand*\@dotsep{4.5} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\before@starttoc} -% \changes{v2.8q}{2001/11/14}{neu (intern)} -% Dieses Makro führt im Falle von \texttt{tocleft} oder -% \texttt{listsleft} am Anfang eines Verzeichnisses alle notwendigen -% Änderungen 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} -% \changes{v3.06}{2010/05/18}{nicht länger benötigt} -% \begin{macro}{\last@l@number} -% Dafür werden ein paar Hilfsmakros benötigt, die vorsichtshalber -% global vordefiniert werden. -% \begin{macrocode} -\newcommand*{\scr@dottedtocline}{} -\newcommand*{\last@l@number}{} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\@l@number} -% \changes{v2.8q}{2001/11/14}{neu (intern)} -% In diesem Makro wird während der Erstellung eines Verzeichnisses -% Inhaltsverzeichnisses die aktuelle Breite der Nummer gespeichert. -% \begin{macro}{\set@l@number} -% \changes{v2.8q}{2001/11/14}{neu (intern)} -% Dieses Makro ist dafür verantwortlich, dass zum einen \cs{@tempdima} -% für den Aufruf von \cs{numberline@box} auf den richtigen Wert gesetzt -% wird, zum anderen wird die aktuelle größte Breite der Nummer hier -% angepasst. -% \begin{macrocode} -\newcommand*{\@l@number}{} -\newcommand*{\set@l@number}[1]{% - \settowidth{\@tempdima}{#1\enskip}% - \ifdim\@tempdima >\@l@number - \xdef\@l@number{\the\@tempdima}% - \fi% - \ifdim\@tempdima >\last@l@number \else - \setlength{\@tempdima}{\last@l@number}% - \fi% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% Kommen wir endlich zu \cs{before@starttoc}: -% \changes{v2.95a}{2006/07/12}{Initialisierung im \cs{@empty}-Fall} -% \changes{v3.06}{2010/05/18}{statt \cs{numberline} wird \cs{numberline@box} -% umdefiniert} -% \begin{macrocode} -\newcommand*{\before@starttoc}[1]{ - \let\scr@dottedtocline=\@dottedtocline - \renewcommand*{\@dottedtocline}[3]{% - \scr@dottedtocline{##1}{\z@}{\last@l@number}}% - \renewcommand*{\numberline@box}[1]{% - \set@l@number{##1}\hb@xt@\@tempdima{##1}}% - \gdef\@l@number{\z@}% - \@ifundefined{#1@l@number}{% - \def\last@l@number{2em}% - }{% - \expandafter\ifx\csname #1@l@number\endcsname\@empty - \let\last@l@number\z@ - \else - \expandafter\let\expandafter\last@l@number - \expandafter=\csname#1@l@number\endcsname - \fi - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\after@starttoc} -% \changes{v2.8q}{2001/11/14}{neu (intern)} -% 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} -% -% Dafür sorgen, dass die Verzeichnisse von \textsf{tocbasic} so gesetzt -% werden, wie wir das gerne hätten (wird über einen Trick auch für das -% Inhaltsverzeichnis verwendet): -% \begin{macrocode} -\g@addto@macro\tocbasic@@before@hook{% - \if@dynlist\expandafter\before@starttoc\expandafter{\@currext}\fi -} -\g@addto@macro\tocbasic@@after@hook{% - \if@dynlist\expandafter\after@starttoc\expandafter{\@currext}\fi -} -% \end{macrocode} -% -% -% \subsection{Definitionen für das Inhaltsverzeichnis} -% -% \begin{macro}{\contentsname} -% \begin{macro}{\listoftocname} -% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}} -% Der Name des Verzeichnisses. -% \begin{macrocode} -\newcommand*\contentsname{Contents} -\newcommand*\listoftocname{\contentsname} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{Counter}{tocdepth} -% Der Zähler gibt an, bis zu welcher Gliederungebene Einträge in das -% Inhaltsverzeichnis aufgenommen werden. Da \textsf{scrartcl} eine -% Ebene tiefer beginnt, wird auch eine Ebene tiefer eingetragen. Damit -% finden sich -- abgesehen von \cs{part} -- immer drei Ebenen im -% Inhaltsverzeichnis. -% \begin{macrocode} -%\setcounter{tocdepth}{2} -%
\setcounter{tocdepth}{3} -% \end{macrocode} -% \end{Counter} -% -% \begin{macro}{\toc@heading} -% \changes{v2.3h}{1995/01/21}{neu (intern)} -% \changes{v2.95}{2002/06/28}{auch für \textsf{scrreprt} und -% \textsf{scrbook}} -% \changes{v3.00}{2008/07/04}{Verwendung von \cs{toc@heading} ist nicht -% länger empfohlen} -% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}% -% Befehl, zum Setzen der Überschrift des Inhaltsverzeichnisses. Eigentlich -% ist das überflüssig, weil es nur einmal verwendet wird. Aus Gründen der -% Konsistenz mit den anderen Verzeichnissen machen wir das hier aber -% genauso. -% \begin{macrocode} -\newcommand*\toc@heading{% - \ClassWarning{\KOMAClassName}{% - usage of deprecated \string\toc@heading!\MessageBreak - You should use the features of package `tocbasic'\MessageBreak - instead of \string\toc@heading.\MessageBreak - Definition of \string\toc@heading\space my be removed from\MessageBreak - KOMA-Script soon, so it should not be used - }% -%
\section*{\contentsname}% -% \chapter*{\contentsname}% - \@mkboth{\MakeMarkcase{\contentsname}}{\MakeMarkcase{\contentsname}}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\toc@l@number} -% \changes{v2.8q}{2001/11/14}{neu} -% Dieses Makro wird innerhalb von \cs{tableofcontents} über -% \cs{before@starttoc} und \cs{after@starttoc} in der -% \texttt{aux}-Datei global definiert. Aus Sicherheitsgründen wird es -% hier global vordefiniert. -% \begin{macrocode} -\newcommand*{\toc@l@number}{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\tableofcontents} -% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{toc@heading}} -% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt 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} -% \changes{v2.95}{2002/06/28}{\textsf{article} beachtet ebenfalls -% \texttt{tocleft}} -% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} -% ersetzt} -% \changes{v3.00}{2008/07/04}{auf \textsf{tocbasic} umgestellt} -% Die Ausgabe des Inhaltsverzeichnisses. -% \begin{macrocode} -\newcommand*{\tableofcontents}{% - \begingroup\let\if@dynlist\if@tocleft\listoftoc{toc}\endgroup -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\addtocentrydefault} -% \changes{v3.08}{2010/11/01}{Neu} -% Seit Version~3.08 werden Einträge ins Inhaltsverzeichnis in der -% Voreinstellung über diese Anweisung vorgenommen. Das erste Argument ist -% dabei die Gliederungsebene. Das zweite Argument ist die (formatierte) -% Gliederungsnummer oder leer, falls die Überschrift nicht nummeriert -% wird. Das dritte Argument ist der Überschriftentext, der in das -% Inhaltsverzeichnis soll. -% \begin{macrocode} -\newcommand{\addtocentrydefault}[3]{% - \ifstr{#2}{}{% - \addcontentsline{toc}{#1}{#3}% - }{% - \addcontentsline{toc}{#1}{\protect\numberline{#2}#3}% - }% -} -% \end{macrocode} -% \end{macro} -% -% -% \subsection{Definitionen für die Verzeichnisse der -% Gleitumgebungen} -% -% \begin{macro}{\float@listhead} -% \changes{v2.8b}{2001/06/26}{neu (für alle Paketautoren)}% -% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in -% \cs{float@listhead}}% -% \changes{v2.98c}{2008/03/05}{\cs{float@@listhead} wird verwendet}% -% \changes{v3.00}{2008/07/04}{Verwendung von \cs{float@listhead} ist nicht -% länger empfohlen}% -% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}% -% In Absprache mit Anselm Lingnau, dem Autor des Pakets \textsf{float}, wird -% ab Version 2.8b \cs{float@headings} zum Setzen des Kolumnentitels bei den -% Verzeichnissen verwendet, die \textsf{float} für neu definierte floats zur -% Verfügung stellt. Dabei definiert \textsf{float} 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]{% - \scr@float@listhead@warning - \float@@listhead{#1}% - \@mkboth{\MakeMarkcase{#1}}{\MakeMarkcase{#1}}% -% \end{macrocode} -% \changes{v2.8q}{2001/11/14}{dynamische Anpassung an die Nummer} -% Dies ist der passende Ort, um die Breite, die für die Nummer des -% Gleitobjekts benötigt wird zu ermitteln und anzupassen, falls dies -% geünscht wird. Dazu findet eine lokale Umdefinierung von -% \cs{@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} -% \begin{macro}{\scr@float@listhead@warning} -% \changes{v3.01}{2008/11/13}{Neu (intern)} -% Die Warnung für die Verwendung von \cs{float@listhead}, dessen Definition -% irgendwann aus den Klassen verschwinden wird. -% \begin{macrocode} -\newcommand*{\scr@float@listhead@warning}{% - \ClassWarning{\KOMAClassName}{% - Usage of deprecated \string\float@listhead!\MessageBreak - You should use the features of package `tocbasic'\MessageBreak - instead of \string\float@listhead.\MessageBreak - Definition of \string\float@listhead\space my be removed from\MessageBreak - `\KOMAClassName' soon, so it should not be used - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\scr@float@addtolists@warning} -% \changes{v3.01}{2008/11/13}{Neu (intern)} -% Die Warning für die Verwendung von \cs{float@addtolists}, dessen -% Unterstützung irgendwann aus den Klassen verschwinden wird. -% \begin{macrocode} -\newcommand*{\scr@float@addtolists@warning}{% - \ClassWarningNoLine{\KOMAClassName}{% - \string\float@addtolists\space detected!\MessageBreak - You should use the features of package `tocbasic'\MessageBreak - instead of \string\float@addtolists.\MessageBreak - Support for \string\float@addtolists\space may be removed - from\MessageBreak - `\KOMAClassName' soon - }% - \global\let\scr@float@addtolists@warning\relax -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\listfigurename} -% \begin{macro}{\listtablename} -% \begin{macro}{\listoflofname} -% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}} -% \begin{macro}{\listotlofname} -% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}} -% Die Namen der Verzeichnisse auch für das Paket \textsf{tocbasic}. -% \begin{macrocode} -\newcommand*\listfigurename{List of Figures} -\newcommand*\listoflofname{\listfigurename} -\newcommand*\listoflofentryname{\figurename} -\newcommand*\listtablename{List of Tables} -\newcommand*\listoflotname{\listtablename} -\newcommand*\listoflotentryname{\tablename} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\listoffigures} -% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lof@heading}} -% \changes{v2.4k}{1996/12/13}{\cs{lof@heading} nicht nur bei -% \textsf{scrartcl}} -% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf -% 0 gesetzt} -% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}% -% \cs{@parskip@indent}} -% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} -% ersetzt} -% \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}} -% Die Ausgabe des Abbildungsverzeichnisses. -% \begin{macrocode} -\newcommand*\listoffigures{\listoftoc{lof}} -% \end{macrocode} -% -% \begin{macro}{\l@figure} -% Befehl zur Formatierung eines Verzeichniseintrags. -% \begin{macrocode} -\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\listoftables} -% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lot@heading}} -% \changes{v2.4k}{1996/12/13}{\cs{lot@heading} nicht nur bei -% \textsf{scrartcl}} -% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf -% 0 gesetzt} -% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}% -% \cs{@parskip@indent}} -% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} -% ersetzt} -% \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}} -% Die Ausgabe des Tabellenverzeichnisses. -% \begin{macrocode} -\newcommand*\listoftables{\listoftoc{lot}} -% \end{macrocode} -% -% \begin{macro}{\l@table} -% Befehl zur Formatierung eines Verzeichniseintrags. -% \begin{macrocode} -\let\l@table\l@figure -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \iffalse -% -% \fi -% -% \iffalse -% -% \fi -% -% -% \Finale -% -\endinput -% -% end of file `scrkliof.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrklist.dtx b/Master/texmf-dist/source/latex/koma-script/scrklist.dtx deleted file mode 100644 index ac8e1953150..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrklist.dtx +++ /dev/null @@ -1,491 +0,0 @@ -% \CheckSum{264} -% \iffalse meta-comment -% ====================================================================== -% scrklist.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrklist.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrklist.dtx -%<*driver> -% \fi -\ProvidesFile{scrklist.dtx}[2010/04/29 v3.05b KOMA-Script (lists and tabulars)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrklist.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei - \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/07/01}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Listen und Tabellen} -% -% \KOMAScript{} verfügt über einige zusätzliche Listenumgebungen. Ein -% Teil dieser Listenumgebungen ist nicht sofort auf den ersten Blick -% als solche zu erkennen, so wie dies schon bei den Standardklassen -% beispielsweise mit \texttt{quote} und \texttt{quotation} der Fall -% ist. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*option> -% \fi -% -% \subsection{Optionen} -% Diese Umgebungen werden nicht durch Optionen beeinflusst. -% -% -% \iffalse -% -%<*body> -%<*class> -% \fi -% -% -% \subsection{Ränder in Listen} -% -% \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ür die Listenumgebungen in verschiedenen Stufen müssen Ränder -% definiert werden. Hinzu kommen noch die Breite eines Labels und der -% Abstand nach einem Label. -% \begin{macrocode} -%<*!letter> -\if@twocolumn - \setlength{\leftmargini}{2em} -\else -% - \setlength{\leftmargini}{2.5em} -%\fi -\setlength{\leftmarginii}{2.2em} -\setlength{\leftmarginiii}{1.87em} -\setlength{\leftmarginiv}{1.7em} -%<*!letter> -\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} -% \end{macrocode} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% -% Weil die Gelegenheit so günstig ist, setzen wir hier auch gleich -% noch ein paar \emph{penalties} (Erlaubsnispunkte). -% \begin{macrocode} -\@beginparpenalty=-\@lowpenalty -\@endparpenalty =-\@lowpenalty -\@itempenalty =-\@lowpenalty -% \end{macrocode} -% -% -% \subsection{Verschiedene Längen für Tabellen, Arrays und Tabulatoren} -% -% Vorbemerkung: Arrays sind im Prinzip Tabellen zur Verwendung im -% mathemathischen Modus. -% -% \begin{Length}{arraycolsep} -% \begin{Length}{tabcolsep} -% \begin{Length}{arrayrulewidth} -% \begin{Length}{doublerulewidth} -% \begin{Length}{tabbingsep} -% Bei diesen Längen handelt es sich um die Abstände der Spalten in -% \texttt{array}- und \texttt{tabular}-Umgebungen, sowie um die Breite -% und den Abstand der Trennlinien. Hinzu kommt noch der \cs{'} Abstand -% in \texttt{tabbing}-Umgebungen. -% \begin{macrocode} -\setlength\arraycolsep{5\p@} -\setlength\tabcolsep{6\p@} -\setlength\arrayrulewidth{.4\p@} -\setlength\doublerulesep{2\p@} -\setlength\tabbingsep{\labelsep} -% \end{macrocode} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% \end{Length} -% -% -% \subsection{Marken in Listen} -% -% \begin{macro}{\theenumi} -% \begin{macro}{\theenumii} -% \begin{macro}{\theenumiii} -% \begin{macro}{\theenumiv} -% \begin{macro}{\labelenumi} -% \begin{macro}{\labelenumii} -% \changes{v2.4m}{1997/02/28}{öffnende Klammer entsprechend 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} -% Für die numerierten Listenumgebungen müssen Marken bzw. Numerierungen -% festgelegt werden. Dazu wird eine Darstellung der Zähler, ihr Prefix -% und ihre Labeldarstellung neu definiert. -% \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} -% -% -% \subsection{Definition der Umgebungen} -% -% \begin{environment}{description} -% Die \texttt{description}-Umgebung dient der Beschreibung von -% einzelnen Begriffen. Der Begriff aus dem optionalen Argument des -% \cs{item}-Befehls wird in einem speziellen Font, dem \cs{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} -% \begin{macro}{labelinglabel} -% \changes{v3.02}{2009/01/01}{Neue Elemente \texttt{labelinglabel} und -% \texttt{labelingseparator} werden verwendet} -% \changes{v3.02c}{2009/01/28}{\texttt{labelinglabel} und -% \texttt{labelingseparator} werden nun auch zur Berechnung der Breite -% verwendet} -% \changes{v3.03a}{2009/04/02}{Argumente in der Berechnung der Label-Breite -% korrigiert} -% Die \cs{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 -% \cs{item}-Marke und \cs{item}-Beschreibung. Das eigentliche Argument -% wird für die Ermittlung der Einrückung des Beschreibungstextes -% bzw. des Trenntextes benötigt. -% \begin{macrocode} -% -\newenvironment{labeling}[2][]{% - \def\sc@septext{#1}% - \list{}{\settowidth{\labelwidth}{{% - \usekomafont{labelinglabel}{#2% - \usekomafont{labelingseparator}{\sc@septext}}% - }}% - \leftmargin\labelwidth \advance\leftmargin by \labelsep - \let\makelabel\labelinglabel - }% -}{% - \endlist -} -\newcommand\labelinglabel[1]{% - \usekomafont{labelinglabel}{#1\hfil - \usekomafont{labelingseparator}{\sc@septext}}% -} -%<*class> -% \end{macrocode} -% \end{macro} -% \end{environment} -% -% \begin{environment}{verse} -% \changes{v2.3g}{1996/01/14}{\cs{item} muss keine "`[]"'-Klammern -% mehr verarbeiten} -% Die Verse-Umgebung ist für Zitate in Gedichtform und ähnliches -% gedacht. -% \begin{macrocode} -\newenvironment{verse}{% - \let\\=\@centercr - \list{}{\itemsep=\z@ - \itemindent=-1.5em - \listparindent=\itemindent - \rightmargin=\leftmargin - \advance\leftmargin by1.5em - }% - \item\relax -}{% - \endlist -} -% \end{macrocode} -% \end{environment} -% -% \begin{environment}{quotation} -% \changes{v2.3g}{1996/01/14}{\cs{item} muss keine "`[]"'-Klammern -% mehr verarbeiten} -% \begin{environment}{quote} -% \changes{v2.3g}{1996/01/14}{\cs{item} muss keine "`[]"'-Klammern -% mehr verarbeiten} -% Die \texttt{quotation}- und die \texttt{quote}-Umgebung erlauben -% rechts und links eingerückte Passagen. Absätze werden entweder in -% der ersten Zeile zusätzlich eingerückt 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} -% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} korrigiert} -% \begin{environment}{addmargin*} -% \changes{v2.8q}{2001/11/29}{neue Umgebung} -% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} korrigiert} -% Diese beiden Umgebungen ähneln \texttt{quote} und -% \texttt{quotation}. Dabei werden Absatzeinzug und Absatzabstand -% nicht verändert. Die einzige Veränderung besteht in den Rändern. Wie -% stark die Ränder verändert werden, hängt dabei von den Parametern -% ab. Ist nur der obligatorische Parameter angegeben, werden die -% Ränder auf beiden Seiten um diesen Wert vergrößert. Ist ein -% optionaler Parameter angegeben, so ist dies bei \texttt{addmargin} -% der linke und bei \texttt{addmargin*} der innere Rand. Der -% obligatorische Parameter ist dann der andere Rand. Diese -% Entscheidung ist das einzige, was die Umgebungen selbst erledigen -% müssen. -% \begin{macro}{\@addmargin} -% \changes{v2.8q}{2001/11/29}{neu (intern)} -% \changes{v2.95}{2002/07/01}{\cs{item} muss keine "`[]"'-Klammern -% mehr verarbeiten} -% \changes{v2.9q}{2003/03/24}{\cs{labelsep} bleibt unverändert} -% \changes{v2.95a}{2006/07/20}{\cs{@tmpcnta} bleibt unverändert} -% \changes{v3.05b}{2010/04/29}{\cs{partopsep} muss auf 0 statt \cs{parskip} -% gesetzt werden, weil es zu \cs{topsep} addiert wird} -% Der Rest wird von diesem Makro erledigt. -% \begin{macrocode} -% -\newenvironment{addmargin}{% - \@tempswafalse\@addmargin -}{% - \advance\@listdepth\@ne - \endlist -} -\newenvironment{addmargin*}{% - \@tempswafalse - \if@twoside\ifthispageodd{}{\@tempswatrue}\fi - \@addmargin -}{% - \advance\@listdepth\@ne - \endlist -} -\newcommand*{\@addmargin}[2][\@tempa]{% - \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}{\z@}% - \let\makelabel\@gobble - \setlength{\labelwidth}{\z@}% - \advance\@listdepth\m@ne - }% - \item\relax% -} -%<*class> -% \end{macrocode} -% \end{macro} -% \end{environment} -% \end{environment} -% -% -% \subsection{Schriftarten für Listen} -% -% \begin{macro}{\descfont} -% Dies ist die Schriftart, in der das Label der Einträge in eine -% \texttt{description}-Umgebung gesetzt wird. Das Makro ist als intern -% zu betrachten. Anwender habe stattdessen das entsprechende Element -% zu verwenden. -% \begin{macrocode} -\newcommand*\descfont{\sffamily\bfseries} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\scr@fnt@descriptionlabel} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{descriptionlabel}} -% Das Element auf das \cs{descfont} angewandt wird: -% \begin{macrocode} -\newcommand*{\scr@fnt@descriptionlabel}{\descfont} -% \end{macrocode} -% \end{macro} -% -% \begin{KOMAfont}{labelinglabel} -% \changes{v3.02}{2009/01/01}{neues Element} -% \begin{KOMAfont}{labelingseparator} -% \changes{v3.02}{2009/01/01}{neues Element} -% Das Label einer \texttt{labeling}-Umgebung wird in eigener Schrift -% gesetzt. Innerhalb des Labels wird dann das Trennzeichen ebenfalls mit -% eigener Schrift gesetzt. Voreingestellt ist in beiden Fällen keine Änderung. -% \begin{macrocode} -% -\newkomafont{labelinglabel}{} -\newkomafont{labelingseparator}{} -%<*class> -% \end{macrocode} -% \end{KOMAfont} -% \end{KOMAfont} -% -% -% \iffalse -% -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrklist.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkmisc.dtx b/Master/texmf-dist/source/latex/koma-script/scrkmisc.dtx deleted file mode 100644 index 342d5dfb371..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkmisc.dtx +++ /dev/null @@ -1,545 +0,0 @@ -% \CheckSum{192} -% \iffalse meta-comment -% ====================================================================== -% scrkmisc.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkmisc.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkmisc.dtx -%<*driver> -% \fi -\ProvidesFile{scrkmisc.dtx}[2011/09/05 v3.10 KOMA-Script (misc)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkmisc.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei - \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/07/01}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Verschiedenes} -% -% Es gibt eine ganze Menge für das sich einzeln keine eigene Datei -% lohnt oder eine Einordnunge schwierig ist. All das nennen wird -% "`Verschiedenes"'. -% -% \subsection{Erweiterung der Internationalisierung} -% -% \changes{v2.2c}{1995/05/25}{Anpassung an CJK von Werner Lemberg.} -% -% Die Standardnamen wie \cs{figurename} etc. sind nicht immer -% ausreichend, da manche Sprachen Zählwörter vor oder nach dem -% jeweiligen Zähler einfügen müssen (man denke da sogar im -% Deutschen an "`Abbildung~1"' und "`Erste Abbildung"'). Desweiteren -% werden bei manchen Sprachen die Zwischenräume anders gesetzt -% bzw. sogar ganz unterdrückt. -% -% Es gibt drei Ebenen, die man modifizieren kann, um verschiedenste -% Sprachen zu implementieren: Ebene~1 besteht aus den hinl"anglich -% bekannten Makros wie \cs{figurename} und alle weiteren Makros, die -% z.\,B. \textsf{german} modifiziert. Desweiteren können die Makros -% \cs{sectfont} etc. etwaige zusätzliche Fonts aktivieren. Ebene~2 ist -% die zusätzliche Adaptierung von den Zählern selbst (\cs{thesection} -% könnte z.\,B. chinesische Schriftzeichen ansprechen anstelle von -% arabischen Ziffern). Die allgemeinste Form der dritten Ebene -% besteht aus den Makros \cs{chaptermarkformat}, -% \cs{sectionmarkformat} etc. welche die Änderung der Reihenfolge von -% Zähler und Titel sowie die genaue Kontrolle der Zwischenräume -% etc. ermöglichen. -% -% Für die gängigen Sprachen können alle Makros für die dritte -% Ebene identisch definiert werden. Bei Verwendung von "`exotischen"' -% Sprachen, aber auch speziellen Darstellungen in den gängigen -% Sprachen können diese Makros umdefiniert werden. -% -% Das Konzept für der Internationalisierung mit der dritten Ebene -% wurde ursprünglich 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 \KOMAScript{} für alle möglichen -% Sprachanpassungen bestens gerüstet. In der dritten Ebene wird -% übrigens auch die Einhaltung der DUDEN-Regeln für die -% Gliederungsnummern realisiert. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*option> -% \fi -% -% \subsection{Optionen für Entwürfe} -% -% \begin{option}{draft} -% \changes{v2.95}{2002/12/05}{mit \textsl{keyval} reimplementiert} -% \begin{option}{final} -% \changes{v2.95}{2002/12/05}{obsolete Option} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \changes{v3.02c}{2008/02/17}{optionales Argument im Fall von -% \textsf{scrextend} gesetzt} -% Der einzige Unterschied zwischen Entwürfen und Endversionen ist aus -% Sicht der Klassen, ob Zeilenüberhänge mit einem schwarzen Balken -% angezeigt werden sollen oder nicht. -% \begin{macrocode} -\KOMA@key{draft}[true]{% - \KOMA@set@ifkey{draft}{@tempswa}{#1}% - \if@tempswa - \setlength{\overfullrule}{5pt}% - \else - \setlength{\overfullrule}{\z@}% - \fi -} -\KOMA@DeclareStandardOption -%[scrextend] -{final}{draft=false} -% \end{macrocode} -% \end{option} -% \end{option} -% -% -% \subsection{Optionen für Gleichungen} -% -% Briefe haben derzeit keine Gleichungen. -% \iffalse -%<*!letter> -% \fi -% -% \begin{option}{leqno} -% \begin{option}{fleqno} -% Es können Gleichungsnummern links oder linksbündige Gleichungen -% eingestellt werden. -% \begin{macrocode} -%<*!extend> -\DeclareOption{leqno}{\input{leqno.clo}} -\DeclareOption{fleqn}{\input{fleqn.clo}} -% -% \end{macrocode} -% \end{option} -% \end{option} -% -% \iffalse -% -% \fi -% -% \iffalse -% -%<*execoption> -% \fi -% -% -% \subsection{Standardeinstellungen für die Optionen} -% -% Am Ende aller Optionen wird zunächst die Standardeinstellungen der -% Optionen vorgenommen und dann alle Optionen ausgeführt. Dies -% geschieht zwischen den Optionen und dem Körper dieser Datei. -% -% Es müssen die Standardoptionen festgelegt und alle Optionen -% ausgewählt werden. -% \changes{v2.97c}{2007/04/19}{Verwendung von \cs{KOMAExecuteOptions} an -% Stelle von \cs{KOMAoptions} und \cs{KOMAProcessOptions} an Stelle von -% \cs{ProcessOptions}} -% \changes{v2.97c}{2007/04/19}{Optionen, die der Voreinstellung ohnehin -% entsprechen, werden nicht explizit gesetzt} -% \changes{v2.97c}{2007/07/18}{Option \texttt{twoside} bei den -% Voreinstellungen rausgenommen} -% \changes{v2.98c}{2008/03/10}{Option \texttt{headings!=big} zu den -% Voreinstellungen hinzugefügt} -% \begin{macrocode} -%<*!extend> -\KOMAExecuteOptions{% - parskip=false,% - headings=big% -} -% -\KOMAProcessOptions\relax -% \end{macrocode} -% -% -% \iffalse -% -%<*body> -% \fi -% -% -% \subsection{Temporäre Umschaltung zwischen ein- und zweispaltigem -% Satz} -% -% Briefe sind immer einspaltig, benötigen also den Schalter nicht. -% \iffalse -%<*!letter> -% \fi -% -% \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ötigt. Dieser -% wird dann dafür 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ür -% Titelseiten und das Inhaltsverzeichnis. -% \begin{macrocode} -%<*!extend> -\newif\if@restonecol -% -%<*extend> -\scr@ifundefinedorrelax{if@restonecol}{% - \expandafter\newif\csname if@restonecol\endcsname - \@restonecolfalse -}{} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \iffalse -% -% \fi -% -% \subsection{Definitionen für den schlauen Spruch} -% -% Den schlauen Spruch gibt es nicht bei Briefen. -% \iffalse -%<*!letter> -% \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{KOMAfont}{dictum} -% \changes{v2.8q}{2001/20/04}{neues Element} -% \begin{KOMAfont}{dictumtext} -% \changes{v2.8q}{2001/20/04}{neues Element} -% \begin{KOMAfont}{dictumauthor} -% \changes{v2.8q}{2001/20/04}{neues Element} -% \begin{macro}{\dictumauthorformat} -% \changes{v2.8q}{2001/20/04}{neu} -% \begin{macro}{\dictumrule} -% \changes{v3.10}{2011/09/02}{neu} -% Ein \emph{dictum} ist ein Spruch. Er besteht aus dem Spruch selbst -% und verfügt optional über einen Autor, der dann mit einer Linie -% abgetrennt wird. Gibt es keinen Autor, gibt es auch keine Linie. Die -% Schriften für Autor und Spruch können 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\dictumrule}% - \raggeddictumauthor\@dictumauthorfont\dictumauthorformat{#1}% - \strut\par% - \fi% - }% - }\par% - \endgroup -} -\newcommand*{\dictumrule}{\vskip-1ex\hrulefill\par}% -\newcommand*{\dictumwidth}{.3333\textwidth} -\newcommand*{\raggeddictum}{\raggedleft} -\newcommand*{\dictumauthorformat}[1]{(#1)} -\newcommand*{\raggeddictumtext}{\raggedright} -\newcommand*{\raggeddictumauthor}{\raggedleft} -\newkomafont{dictum}{\normalfont\normalcolor\sffamily\small} -\newkomafont{dictumauthor}{\itshape} -\aliaskomafont{dictumtext}{dictum} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{KOMAfont} -% \end{KOMAfont} -% \end{KOMAfont} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \iffalse -% -% \fi -% -% \subsection{Längen für Minipages und Rahmen} -% -% \begin{Length}{@mpfootins} -% \begin{Length}{fboxsep} -% \begin{Length}{fboxrule} -% \cs{@mpfootins} entspricht \cs{footins} in Minipages. \cs{fboxsep} -% ist der Abstand zwischen dem Rahmen einer \cs{fbox} oder -% \cs{framebox} und dem Inhalt, \cs{fboxrule} ist die Dicke des -% Rahmens. -% \begin{macrocode} -%<*!extend> -\setlength{\skip\@mpfootins}{\skip\footins} -\setlength\fboxsep{3\p@} -\setlength\fboxrule{.4\p@} -% -% \end{macrocode} -% \end{Length} -% \end{Length} -% \end{Length} -% -% -% \subsection{Gleichungen} -% -% Gleichungen gibt es bei Briefen nicht. -% \iffalse -%<*!letter> -% \fi -% -% \begin{macro}{\theequation} -% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil} -% Darstellung der Gleichungsnummer: -% \begin{macrocode} -%<*!extend> -%\@addtoreset{equation}{chapter} -\renewcommand*\theequation{% -%<*book> - \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d}\relax - \if@mainmatter\thechapter.\fi - \else -% -% \thechapter.% -% \fi - \@arabic\c@equation -} -% -% \end{macrocode} -% \end{macro} -% -% \iffalse -% -% \fi -% -% \subsection{Definitionen zur Feststellung von linken und rechten -% Seiten} -% -% \begin{macro}{\ifthispageodd} -% \changes{v2.8q}{2001/11/22}{neu} -% Häufig wird mit \cs{ifodd}\cs{value\{page\}} getestet, ob man sich -% gerade auf einer rechten oder einer linken Seite -% befindet. Dummerweise funktioniert das aber genaugenommen nur -% zufällig manchmal. Ob man sich auf einer linken oder einer rechten -% Seite befindet, ergibt sich nämlich erst bei der Ausgabe. Deshalb -% wird hier ein Makro definiert, das über eine Art Label-Mechanismus -% arbeitet. Es werden bewusst keine echten \cs{label} und \cs{pageref} -% verwendet, weil diese Befehle von verschiedenen Paketen manipuliert -% werden. -% -% \begin{macro}{\new@tpo@label} -% \changes{v2.8q}{2001/11/22}{neu (intern)} -% \changes{v2.95b}{2006/07/28}{verwendet jetzt \cs{@newl@bel}} -% Definition eines neuen \emph{true}-\emph{page}-\emph{odd} Labels. -% Wird in der \texttt{aux}-Datei verwendet. -% \begin{macrocode} -\newcommand*{\new@tpo@label}{\@newl@bel{tpo}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\scr@tpo} -% \changes{v2.8q}{2001/11/22}{neu (intern)} -% Es wird ein Zähler benötigt, 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 (intern)} -% \changes{v2.9l}{2003/01/28}{renamed \cs{if@thispageodd}} -% \changes{v2.95b}{2006/07/28}{basiert nun auf \cs{@newl@bel}} -% Dieses Makro macht die eigentliche Arbeit. Es funktioniert nicht wie -% ein normales \cs{iffalse} oder \cs{iftrue}, denn es kann nicht -% geschachtelt innerhalb anderer \cs{if\dots} \dots \cs{fi} -% Klammerungen verwendet werden. Es sollte daher niemals außerhalb von -% \cs{ifthispageodd} verwendet werden. Da über die \texttt{aux}-Datei -% gearbeitet wird, funktioniert das Ganze nur, wenn die Datei auch -% geschrieben wird und min. zwei \LaTeX-Läufe erfolgen. -% \begin{macrocode} -\newcommand*{\is@thispageodd}{% - \@bsphack - \begingroup - \@tempcnta=\scr@tpo - \advance\@tempcnta by\@ne - \xdef\scr@tpo{\the\@tempcnta}% - \protected@write\@auxout{\let\arabic\relax}{% - \string\new@tpo@label{\scr@tpo}{\arabic{page}}}% - \expandafter\ifx\csname tpo@\scr@tpo\endcsname\relax - \protect\G@refundefinedtrue -% \ClassWarning{\KOMAClassName}{% -% \PackageWarning{scrextend}{% - odd/even page label number \scr@tpo\space undefined}% - \edef\@tempa{\the\value{page}}% - \else - \edef\@tempa{\csname tpo@\scr@tpo\endcsname}% - \fi - \ifodd\number\@tempa - \aftergroup\thispagewasoddtrue - \else - \aftergroup\thispagewasoddfalse - \fi - \endgroup - \@esphack -} -% \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} -% -% -% \subsection{Definitionen für tiefer gestellten Text} -% -% \begin{macro}{textsubscript} -% \changes{v2.8h}{2001/07/19}{neu}% -% \begin{macro}{@textsubscript} -% \changes{v2.8h}{2001/07/19}{neu (intern)}% -% \changes{v3.10}{2011/09/05}{\cs{providecommand} statt \cs{newcommand}, -% damit das auch noch funktioniert, wenn \textsf{scrextend} nach -% \textsf{fixltx2e} geladen wird}% -% Im \LaTeX-Kern wird zwar ein Makro \cs{textsuperscript} definiert, -% um Texte hochstellen zu können, die entsprechende Anweisung zum -% Tiefstellen fehlt jedoch. Das wird hier nachgeholt, wobei nahezu -% unverändert auf die Definition aus dem \LaTeX-Kern zurückgegriffen -% wird. -% \begin{macrocode} -\DeclareRobustCommand*\textsubscript[1]{% - \@textsubscript{\selectfont#1}% -} -\providecommand*{\@textsubscript}[1]{% - {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrkmisc.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx b/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx deleted file mode 100644 index d9b1664f251..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrknpap.dtx +++ /dev/null @@ -1,3489 +0,0 @@ -% \CheckSum{2990} -% \iffalse meta-comment -% ====================================================================== -% scrknpap.dtx -% Copyright (c) Markus Kohm, 2006-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrknpap.dtx -% Copyright (c) Markus Kohm, 2006-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrknpap.dtx -%<*driver> -% \fi -\ProvidesFile{scrknpap.dtx}[2011/01/25 v3.08 KOMA-Script (note-paper)] -% \iffalse -\documentclass{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrknpap.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2006/03/16}{% -% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} -% -% \section{Briefbogen und Briefpapier} -% -% Bei Briefen kommt dem Briefbogen, also dem ersten Blatt des Briefes eine -% besondere Bedeutung zu. Dieser ist bei \texttt{scrlttr2} durch diverse -% Optionen, Variablen, Pseudo-Längen und Anweisungen bestimmt. Die weiteren -% Briefseiten werden hier verinfacht als das Briefpapier bezeichnet. Natürlich -% ist genau genommen auch der Briefbogen Briefpapier, aber eben ein besonderes. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*option> -% \fi -% -% \iffalse -%<*letter> -% \fi -% -% \subsection{Option für den Briefbogen} -% -% Gerade der Briefbogen ist durch eine ganze Anzahl von Optionen -% konfigurierbar. Daher wird hier weiter thematisch untergliedert. -% -% -% \subsubsection{Optionen für den Briefkopf} -% -% Die Gestaltung des Briefkopfes war bei der alten \texttt{scrlettr} -% Klasse eng begrenzt. Deshalb hatte ich für mich selbst das -% \texttt{briefkopf} Paket geschrieben und ohne Support -% veröffentlicht. Die Funktionalität ist nun direkt verfügbar. Dazu -% werden verschiedene Optionen benötigt. -% -% \begin{option}{firsthead} -% \changes{v2.97e}{2007/11/22}{Neu} -% Der Briefkopf kann auch einfach abgeschaltet werden. -% \begin{macro}{\if@firsthead} -% \changes{v2.8q}{2002/01/25}{Neuer Schalter (intern)} -% Gespeichert wird die Information in einem einfachen Schalter. -% Voreingestellt ist die Verwendung des Briefkopfes. -% \begin{macrocode} -\KOMA@ifkey{firsthead}{@firsthead}\@firstheadtrue -% \end{macrocode} -% \end{macro} -% \end{option} -% -% \begin{option}{fromalign} -% \changes{v2.8q}{2002/01/25}{Neu} -% Diese Option legt fest, ob der Absender linksbündig, mittig oder -% rechtsbündig gesetzt werden soll. -% \begin{macro}{\@alignfrom} -% \changes{v2.8q}{2002/01/25}{Neu} -% \changes{v2.97e}{2007/11/13}{neue Werte für Verwendung der -% Absenderergänzung} -% Die Einstellung wird in einem nummerisch auszuwertenden Makro -% gespeichert. Dabei gelten folgende Werte: -% \begin{center} -% \begin{tabular}{rl} -% Wert & Ausrichtung \\\hline -% 0 & linksbündig \\ -% 1 & zentriert \\ -% 2 & rechtsbündig \\ -% 3 & linksbündig in der Absenderergänzung ohne Kopf \\ -% 4 & rechtbündig in der Absenderergänzung ohne Kopf \\ -% 10000 & nicht antasten \\ -% \end{tabular} -% \end{center} -% Voreingestellt ist "`nicht antasten"'. -% \begin{macrocode} -\newcommand*{\@alignfrom}{0} -\KOMA@key{fromalign}{% - \KOMA@set@ncmdkey{fromalign}{@alignfrom}{% - {left}{0},% - {center}{1},{centered}{1},{middle}{1},% - {right}{2},% - {locationleft}{3},{leftlocation}{3},% - {locationright}{4},{rightlocation}{4},{location}{4},% - {no}{10000},{false}{10000},{off}{10000}% - }{#1}% - \ifcase\@alignfrom\or\or\or\@firstheadfalse\or\@firstheadfalse\fi -} -% \end{macrocode} -% \end{macro} -% \end{option} -% -% \begin{option}{fromrule} -% \changes{v2.8q}{2002/01/25}{Neu} -% Es kann gewählt 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@ncmdkey{fromrule}[below]{@rulefrom}{% - {false}{0},{no}{0},{off}{0},{aftername}{1},% - {below}{2},{afteraddress}{2},{true}{2},{yes}{2},{on}{2}% -} -% \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} -\KOMA@ifkey{fromphone}{@phone} -% \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} -\KOMA@ifkey{fromfax}{@fax} -% \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} -\KOMA@ifkey{fromemail}{@email} -% \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} -\KOMA@ifkey{fromurl}{@www} -% \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} -\KOMA@ifkey{fromlogo}{@logo} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% -% -% \subsubsection{Optionen für Anschrift und Absenderergänzung} -% -% \begin{option}{addrfield} -% \changes{v2.8q}{2001/10/09}{Neu} -% \changes{v3.03}{2009/03/04}{neue Werte} -% Das Adressfeld für Fensterumschläge kann mit \texttt{addrfield} ein- und -% ausgeschaltet werden. Darüber hinaus kann die Art des Adressfeldes gewählt -% werden. -% \begin{macro}{\if@afield} -% \changes{v3.03}{2009/03/04}{ersetzt durch \cs{@afieldmode}} -% \begin{macro}{\@afieldtrue} -% \changes{v3.03}{2009/03/04}{ersetzt durch \cs{@afieldmode}} -% \begin{macro}{\@afieldfalse} -% \changes{v3.03}{2009/03/04}{ersetzt durch \cs{@afieldmode}} -% \begin{macro}{\@afieldmode} -% \changes{v3.03}{2009/03/04}{neu (intern)} -% Die Speicherung erfolgt wiederum in einem Makro. -% \begin{macrocode} -\newcommand*{\if@afield}{% - \ClassWarning{\KOMAClassName}{% - Usage of \string\if@afield\space deprecated.\MessageBreak - Internal macro \string\if@afield\space was removed at\MessageBreak - KOMA-Script version 3.03. I'll replace the usage of\MessageBreak - \string\if@afield\space by \string\ifnum - \string\@afieldmode=\string\@ne.\MessageBreak - This may result in errors. A better solution would be\MessageBreak - to change the code}% - \ifnum \@afieldmode=\@ne} -\newcommand*{\@afieldtrue}{% - \ClassWarning{\KOMAClassName}{% - Usage of \string\if@afield\space deprecated.\MessageBreak - Internal macro \string\if@afield\space was removed at\MessageBreak - KOMA-Script version 3.03. I'll replace the usage of\MessageBreak - \string\@afieldtrue\space by - \string\KOMAoptions{addrfield=true}.\MessageBreak - This may result in erros. A better solution would be\MessageBreak - to change the code}% - \KOMAoptions{addrfield=true}} -\newcommand*{\@afieldfalse}{% - \ClassWarning{\KOMAClassName}{% - Usage of \string\if@afield\space deprecated.\MessageBreak - Internal macro \string\if@afield\space was removed at\MessageBreak - KOMA-Script version 3.03. I'll replace the usage of\MessageBreak - \string\@afieldfalse\space by - \string\KOMAoptions{addrfield=false}.\MessageBreak - This may result in erros. A better solution would be\MessageBreak - to change the code}% - \KOMAoptions{addrfield=false}} -\newcommand*{\@afieldmode}{\@ne} -\KOMA@ncmdkey{addrfield}[true]{@afieldmode}{% - {false}{0},{off}{0},{no}{0},% - {true}{1},{on}{1},{yes}{1},% - {PP}{2},{pp}{2},% - {PPexplicite}{2},{PPExplicite}{2},% - {ppexplicite}{2},{ppExplicite}{2},% - {backgroundimage}{3},% - {PPbackgroundimage}{3},{PPBackgroundImage}{3},{PPBackGroundImage}{3},% - {ppbackgroundimage}{3},{ppBackgroundImage}{3},{ppBackGroundImage}{3},% - {image}{4},{Image}{4},% - {PPimage}{4},{PPImage}{4},% - {ppimage}{4},{ppImage}{4}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% -% \begin{option}{priority} -% \changes{v3.03}{2009/03/04}{neu} -% Im internationalen Briefverkehr sind zwei Prioritätseinstellungen -% bekannt. Dafür gibt es dann so etwas wie eine Versandart nicht mehr. -% \begin{macro}{\ltr@priority} -% \changes{v3.03}{2009/03/04}{neu (intern)} -% Abgelegt wird die Art der Priorität in einem Macro. -% \begin{macrocode} -\newcommand*{\ltr@priority}{0}% -\KOMA@ncmdkey{priority}[A]{ltr@priority}{% - {no}{0},{off}{0},{false}{0},{manual}{1},% - {B}{1},{b}{1},% - {economy}{1},{Economy}{1},{ECONOMY}{1},% - {B-ECONOMY}{1},{B-Economy}{1},{b-economy}{1},% - {A}{2},{a}{2},% - {priority}{2},{Priority}{2},{PRIORITY}{2},% - {A-PRIORITY}{2},{A-Priority}{2},{a-priority}{2}% -}% -% \end{macrocode} -% \end{macro} -% \end{option} -% -% \begin{option}{backaddress} -% \changes{v2.8q}{2002/01/22}{Neu} -% Im Adressfeld kann die Rücksendeadresse gesetzt werden. Dies geschieht nun -% nicht mehr allein durch Definition einer Rücksendeadresse, sondern auch -% durch eine Option. -% \begin{macro}{\if@baddr} -% \begin{macro}{\@baddrtrue} -% \begin{macro}{\@baddrfalse} -% \begin{macro}{\backaddr@format} -% \changes{v2.96}{2006/07/31}{neu (intern)} -% Dieses Makro hat genau ein Argument und bestimmt die Form der -% Rücksendeadresse. Voreingestellt ist Unterstreichung. Dies entspricht der -% vor Version~2.96 festen Voreinstellung. -% \begin{macrocode} -\newcommand{\backaddr@format}[1]{} -\let\backaddr@format\underline -% \end{macrocode} -% \end{macro} -% Die Einstellung true/false der Option wird in einem Schalter gespeichert. -% \begin{macrocode} -\newif\if@baddr\@baddrtrue -\KOMA@key{backaddress}[true]{% - \begingroup - \KOMA@set@ncmdkey{backaddress}{@tempa}{% - {false}{0},{off}{0},{no}{0},% - {true}{1},{on}{1},{yes}{1},% - {underlined}{2},% - {plain}{3}% - }{#1}% - \ifcase\@tempa - \endgroup - \@baddrfalse - \or - \endgroup - \@baddrtrue - \or - \endgroup - \@baddrtrue - \let\backaddr@format\underline - \or - \endgroup - \@baddrtrue - \let\backaddr@format\@firstofone - \else - \endgroup - \fi -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% -% \begin{option}{locfield} -% \changes{v2.8q}{2001/10/09}{Neu} -% \changes{v2.97c}{2007/03/30}{vertauschte Bedeutung korrigiert} -% Mit Hilfe der Optione \texttt{locfield} kann der Platz neben dem Adressfeld -% groß oder klein gewählt 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]{% - \begingroup - \KOMA@set@ncmdkey{locfield}{@tempa}{{wide}{0},{narrow}{1}}{#1}% - \ifcase\@tempa - \endgroup - \@bigloctrue - \else - \endgroup - \@biglocfalse - \fi -} -% \end{macrocode} -% \begin{option}{wlocfield} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{slocfield} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption{wlocfield}{locfield=wide} -\KOMA@DeclareDeprecatedOption{slocfield}{locfield=narrow} -% \end{macrocode} -% \end{option} -% \end{option} -% \end{option} -% -% -% \subsubsection{Optionen für Faltmarken} -% -% \begin{option}{foldmarks} -% \changes{v2.8q}{2001/09/10}{Neu} -% \changes{v3.00}{2008/06/06}{es muss \cs{FamilyUnkownKeyVal} statt -% \cs{KOMA@unkown@keyval} lokal umdefiniert werden} -% Die Faltmarken können mit \texttt{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 -% \end{macrocode} -% \begin{macro}{\@usefolds} -% Welche Faltmarken gesetzt werden sollen, wird in einem Makro gespeichert. -% \changes{v2.97e}{2007/11/08}{Neu (intern)} -% \begin{macrocode} -\newcommand*{\@usefolds}{TMBPL} -\KOMA@key{foldmarks}[true]{% - \begingroup - \def\FamilyUnknownKeyValue##1##2##3##4{% - \def\sc@nf@ldch@rs####1{% - \ifx ####1\@nil\else - \if ####1T\g@addto@macro\@usefolds{####1}\else - \if ####1M\g@addto@macro\@usefolds{####1}\else - \if ####1B\g@addto@macro\@usefolds{####1}\else - \if ####1P\g@addto@macro\@usefolds{####1}\else - \if ####1L\g@addto@macro\@usefolds{####1}\else - \if ####1V\g@addto@macro\@usefolds{L}\else - \if ####1H\g@addto@macro\@usefolds{TMBP}\else - \if ####1t\scr@removechar\@usefolds{T}\else - \if ####1m\scr@removechar\@usefolds{M}\else - \if ####1b\scr@removechar\@usefolds{B}\else - \if ####1p\scr@removechar\@usefolds{P}\else - \if ####1l\scr@removechar\@usefolds{L}\else - \if ####1v% - \scr@removechar\@usefolds{L}% - \else - \if ####1h% - \scr@removechar\@usefolds{T}% - \scr@removechar\@usefolds{M}% - \scr@removechar\@usefolds{B}% - \else - \ClassError{\KOMAClassName}{% - unknown fold mark switch `####1'}{% - You should use option `foldmarks' - either with one of\MessageBreak - \@spaces `true', `on', or `yes' to - switch fold marks on,\MessageBreak - \@spaces `false', `off', or `no' to - switch fold marks off,\MessageBreak - or a combination of\MessageBreak - \@spaces `T', `M', `B', 'P', 'L', `V', - `H' to select dedicated fold - marks\MessageBreak - or\MessageBreak - \@spaces `t', `m', 'b', 'p', 'l', 'v', - 'h' to deselect dedicated fold - marks.\MessageBreak - See the KOMA-Script manual for more - information. - }% - \fi - \fi - \fi - \fi - \fi - \fi - \fi - \fi - \fi - \fi - \fi - \fi - \fi - \fi - \expandafter\sc@nf@ldch@rs - \fi - }% - \expandafter\sc@nf@ldch@rs#1\@nil - }% - \KOMA@set@ifkey\@empty{@fold}{#1}% - \if@fold\aftergroup\@foldtrue\else\aftergroup\@foldfalse\fi - \endgroup -} -% \end{macrocode} -% \begin{macro}{\scr@removechar} -% \changes{v2.97e}{2007/11/08}{Neu (intern)} -% \begin{macrocode} -\newcommand*{\scr@removechar}[2]{% - \def\in@@##1#2##2##3\in@@{% - \ifx\in@##2\else - \def\in@@####1#2\in@{\gdef#1{##1####1}}% - \in@@##2##3% - \fi}% - \expandafter\in@@#1#2\in@\in@@ -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% -% -% \subsubsection{Optionen für die Geschäftszeile} -% -% \begin{option}{refline} -% \changes{v2.8n}{2001/09/08}{Neue Option} -% \changes{v2.96a}{2006/12/07}{vertauschte Bedeutung korrigiert} -% Kopf und Fuß der ersten Seite sind normalweise so breit, dass sie -% zur Adresse des Empfängers passen. Für die Geschäftszeile 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} -% \changes{v3.09}{2011/03/07}{Neue Werte: \texttt{dateleft}, -% \texttt{dateright}, \texttt{nodate}} -% \begin{macro}{\@refwidetrue} -% \begin{macro}{\@refwidefalse} -% Gespeichert wird die Information in einem Schalter. -% \begin{macro}{\@datepos} -% \changes{v3.09}{2011/03/07}{Neu (intern)} -% Das Datum kann links oder rechts oder gar nicht gesetzt werden. -% Wo die Speicherung erfolgt wird in einem nummerischen Makro -% abglegt. Voreingestellt ist rechts. -% \begin{macrocode} -\newif\if@refwide -\newcommand*{\@datepos}{1} -\KOMA@key{refline}[wide]{% - \begingroup - \KOMA@set@ncmdkey{refline}{@tempa}{{wide}{0},{narrow}{1},% - {dateleft}{2},{leftdate}{2},% - {dateright}{3},{rightdate}{3},% - {nodate}{4}% - }{#1}% - \ifcase\@tempa - \endgroup - \@refwidetrue - \or - \endgroup - \@refwidefalse - \or - \endgroup - \def\@datepos{2}% - \or - \endgroup - \def\@datepos{1}% - \or - \endgroup - \def\@datepos{0}% - \fi -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% -% -% \subsubsection{Optionen für den Betreff} -% -% \begin{option}{subject} -% \changes{v2.8q}{2001/10/09}{Neu} -% Ein Betreff-Titel kann mit \texttt{subject} ein- und abgeschaltet -% werden. In England und Frankreich scheint es teilweise üblich zu -% sein, den Betreff erst nach der Anrede und dafür zentriert zu -% setzen\footnote{Ich kann mir nur mühsahm eine Bemerkung dazu -% verkneifen.}. -% Deshalb kann alternativ zum Einschalten des Betreff-Titels hier auch -% dies aktiviert werden. -% \begin{macro}{\subject@format} -% \changes{v2.97c}{2007/07/06}{neu (intern)} -% Das Format des Betreffs kann geändert werden. -% \begin{macrocode} -\newcommand{\subject@format}[1]{#1} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\raggedsubject} -% \changes{v2.97c}{2007/07/06}{neu (intern)} -% \begin{macrocode} -\newcommand*{\raggedsubject}{} -% \end{macrocode} -% \end{macro} -% \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}{% - \begingroup - \KOMA@set@ncmdkey{subject}{@tempa}{% - {titled}{0},% - {untitled}{1},% - {afteropening}{2},% - {beforeopening}{3},% - {underlined}{4},% - {left}{5},% - {right}{6},% - {centered}{7}% - }{#1}% - \ifcase\@tempa - \aftergroup\@subjtrue - \or - \aftergroup\@subjfalse - \or - \aftergroup\@subjaftertrue - \or - \aftergroup\@subjafterfalse - \or - \aftergroup\let\aftergroup\subject@format\aftergroup\underline - \or - \aftergroup\let\aftergroup\raggedsubject\aftergroup\raggedright - \or - \aftergroup\let\aftergroup\raggedsubject\aftergroup\raggedleft - \or - \aftergroup\let\aftergroup\raggedsubject\aftergroup\centering - \fi - \endgroup -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% -% -% \subsubsection{Optionen für den Satzspiegel} -% -% \begin{option}{enlargefirstpage} -% \changes{v2.8o}{2001/09/18}{Neue Option} -% Normalerweise wird der Text des Briefboges entsprechend dem -% normalen Satzspiegel gesetzt. Ist allerdings der Fuß der ersten -% Seite zu hoch, dann wird der Satzspiegel vertikal entsprechend -% verkürzt. Mit der Option \texttt{firstpageenlarge} kann erzwungen -% werden, dass im umgekehrten Fall, der Satzspiegel vertikal -% verlängert wird. -% \begin{macro}{\if@enlargefp} -% \begin{macro}{\@enlargefptrue} -% \begin{macro}{\@enlargefpfalse} -% Gespeichert wird die Information über die Optionen in einem -% Schalter. -% \begin{macrocode} -\KOMA@ifkey{enlargefirstpage}{@enlargefp} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% -% -% \subsubsection{Optionen für den Briefbogenfuß} -% -% \begin{option}{firstfoot} -% \changes{v2.97e}{2007/11/22}{Neu} -% Der Fuß des Briefbogens kann auch einfach abgeschaltet werden. -% \begin{macro}{\if@firstfoot} -% \changes{v2.8q}{2002/01/25}{Neuer Schalter (intern)} -% Gespeichert wird die Information in einem einfachen Schalter. -% Voreingestellt ist die Verwendung des Fußes. -% \begin{macrocode} -\KOMA@ifkey{firstfoot}{@firstfoot}\@firstfoottrue -% \end{macrocode} -% \end{macro} -% \end{option} -% -% -% \subsection{Optionen für den Kopf des weiteren Briefpapiers} -% -% Diese Optionen haben zwar nichts mit dem eigentlichen Briefbogen zu tun. Das -% Briefpapier schließt sich aber an, weshalb die Optionen hier zu finden sind. -% -% \begin{option}{pagenumber} -% \changes{v2.8q}{2002/01/31}{Neu} -% Bei Briefen kann gewählt werden, ob auf Folgeseiten die Seitenzahl -% im Kopf oder im Fuß stehen soll. Dabei kann zwischen Seitenzahl -% rechts, links oder zentriert gewählt werden. Voreingestellt ist der -% Fuß 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ür die Seitenzahl\\\hline -% -1 & keine \\ -% 0 & im Kopf links \\ -% 1 & im Kopf mittig \\ -% 2 & im Kopf rechts \\ -% 3 & im Fuß links \\ -% 4 & im Fuß mittig \\ -% 5 & im Fuß rechts \\ -% \end{tabular}\end{center} -% \begin{macrocode} -\newcommand*{\@pageat}{4} -\KOMA@key{pagenumber}{% - \begingroup - \KOMA@set@ncmdkey{pagenumber}{@tempa}{% - {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} -% -% -% \iffalse -% -% -%<*body> -%<*letter> -% \fi -% -% \subsection{Anweisungen für den Briefbogen} -% -% Auch bei den Anweisungen zunächst alles, was mit dem Briefbogen zu tun hat. -% -% \subsubsection{Der Kopf des Briefbogens} -% -% \begin{macro}{\firsthead} -% \changes{v2.8q}{2002/01/28}{\cs{@alignfrom} auf 10000 gesetzt} -% \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine -% Variable realisiert} -% \begin{macro}{\@firsthead} -% \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine -% Variable realisiert} -% \begin{macro}{\@gen@firsthead} -% \changes{v2.8q}{2002/01/28}{Neu} -% \changes{v2.97c}{2007/05/08}{Dicke der Linie konfigurierbar} -% \changes{v2.97c}{2007/05/08}{Schrift (Farbe) der Linie konfigurierbar} -% \changes{v3.06a}{2010/07/29}{Verwendung des Font-Elements -% \texttt{fromrule} eingefügt} -% \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine -% Variable realisiert} -% \begin{KOMAvar}{firsthead} -% \changes{v3.08}{2010/10/28}{Neu} -% Bei \texttt{scrlttr2} gibt es die üblichen Seitenstile, allerdings -% ist deren Verhalten etwas anders als gewohnt. Dies ist in den -% Besonderheiten für Briefen begründet. Zunächst die Voreinstellung für -% Briefbögen. -% \begin{macrocode} -\newcommand*{\@firsthead}{% - \ClassWarning{scrlttr2}{% - Deprecated usage of \string\@firsthead.\MessageBreak - \string\usekomavar{firsthead} should be used\MessageBreak - instead of \string\@firsthead - }% - \usekomavar{firsthead}% -} -\newkomavar{firsthead} -\setkomavar{firsthead}{% - \parbox[b]{\useplength{firstheadwidth}}% - {\centering\usekomafont{fromaddress}{% - \ifkomavarempty{fromname}{}{% - {\usekomafont{fromname}% - {\ignorespaces\usekomavar{fromname}}}\\[-8pt] - {\usekomafont{fromrule}{\rule{\useplength{firstheadwidth}}{.4pt}}}\\ - }% - \ifkomavarempty{fromaddress}{}{% - \ignorespaces\usekomavar{fromaddress}% - }% - }% - }% -} -% \end{macrocode} -% \end{KOMAvar} -% \begin{macro}{\scr@firsthead@postsetvar} -% \changes{v3.08}{2010/10/28}{Neu (intern)} -% Über dieses Makro wird jeweils nach dem Setzen der Variable die Ausrichtung -% auf manuell umgeschaltet. Das darf deshalb auch erst nach dem erstmaligen -% Setzen definiert werden! -% \begin{macrocode} -\newcommand*{\scr@firsthead@postsetvar}{% - \renewcommand*{\@alignfrom}{10000}% -} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\newcommand*{\@gen@firsthead}{% -% \end{macrocode} -% Damit wird ggf. die Kopfzeile der ersten Seite umdefiniert, nämlich dann, -% wenn dies per Option aktiviert wurde. -% \begin{macrocode} - \ifcase\@alignfrom -% \end{macrocode} -% Wir befinden uns nun in dem Bereich für \verb|\@alignfrom|=0. -% Entsprechend unserer Festlegung wird daher als Erstes der -% linksbündige Absender definiert. Wir verwenden dafür eine -% \emph{parbox}, in der der Text linksbündig angeordnet wird. Diese -% Box soll über die gesamte Breite gehen dürfen: -% \begin{macrocode} - \setkomavar{firsthead}{% - \parbox[b]{\textwidth}{\raggedright -% \end{macrocode} -% Zuerst wird der Name gesetzt. Dabei soll eine eigene Schriftart für -% 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änge dieser Linie kann vom Anwender -% bestimmt oder automatisch gewählt werden. Es werden dabei die -% Pseudo-Längen \texttt{fromrulewidth} und \texttt{fromrulethickness} -% verwendet. Ist \texttt{fromrulewidth} negativ, so wird sie automatisch -% bestimmt. Bei der automatischen Längenbestimmung wird dafür gesorgt, dass -% die Linie nicht bis in das Logo ragt, das eventuell rechtsbündig neben dem -% Absender steht: -% \begin{macrocode} - {% - \ifnum\@rulefrom=1\\[-.5\baselineskip]% - \usekomafont{fromrule}{% - \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}{% - \useplength{fromrulethickness}}}% - \fi - }% - \\ - }% -% \end{macrocode} -% Als Nächstes wird die Absenderadresse einschließlich 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ähnt, 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 über der Linie zu -% stehen hat. Die entsprechende Berechnung kann also entfallen. -% \begin{macrocode} - \ifnum\@rulefrom=2\\[-.5\baselineskip]% - \usekomafont{fromrule}{% - \setlength{\@tempdima}{\useplength{fromrulewidth}}% - \ifdim\@tempdima=\z@ - \setlength{\@tempdima}{\textwidth}% - \fi - \expandafter\rule\expandafter{\the\@tempdima}{% - \useplength{fromrulethickness}}}% - \fi - \\ - }% - }% -% \end{macrocode} -% Die parbox ist damit ebenfalls beendet. Es muss 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 - }% - \renewcommand*{\@alignfrom}{0}% -% \end{macrocode} -% Damit ist die Definition des linksbündigen 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änger gesetzt wird. Dort ist bereits -% das location-Feld, daher wird dieser Fall auch dort behandelt. -% \begin{macrocode} - \or - \setkomavar{firsthead}{% - \parbox[b]{\textwidth}{\centering - {\usekomafont{fromname}\strut\ignorespaces - \usekomavar{fromname}% - {% - \ifnum\@rulefrom=1\\[-.5\baselineskip]% - \usekomafont{fromrule}{% - \setlength{\@tempdima}{\useplength{fromrulewidth}}% - \ifdim\@tempdima=\z@ - \setlength{\@tempdima}{\textwidth}% - \fi - \expandafter\rule\expandafter{\the\@tempdima}{% - \useplength{fromrulethickness}}}% - \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]% - \usekomafont{fromrule}{% - \setlength{\@tempdima}{\useplength{fromrulewidth}}% - \ifdim\@tempdima=\z@ - \setlength{\@tempdima}{\textwidth}% - \fi - \expandafter\rule\expandafter{\the\@tempdima}{% - \useplength{fromrulethickness}}}% - \fi - \\ - }% - }% - }% - \renewcommand*{\@alignfrom}{1}% -% \end{macrocode} -% Damit ist die Definition des zentrierten Absenders abgeschlossen. Es -% geht weiter mit dem rechtsbündigen Absender. Das ganze wird einfach -% beim linksbündigen Absender abgeschaut. -% \begin{macrocode} - \or - \setkomavar{firsthead}{% - \if@logo - \rlap{\usekomavar{fromlogo}}% - \fi - \parbox[b]{\textwidth}{\raggedleft - {\usekomafont{fromname}\strut\ignorespaces - \usekomavar{fromname}% - {% - \ifnum\@rulefrom=1\\[-.5\baselineskip]% - \usekomafont{fromrule}{% - \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}{% - \useplength{fromrulethickness}}}% - \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]% - \usekomafont{fromrule}{% - \setlength{\@tempdima}{\useplength{fromrulewidth}}% - \ifdim\@tempdima=\z@ - \setlength{\@tempdima}{\textwidth}% - \fi - \expandafter\rule\expandafter{\the\@tempdima}{% - \useplength{fromrulethickness}}}% - \fi - \\ - }% - }% - }% - \renewcommand*{\@alignfrom}{2}% -% \end{macrocode} -% Damit ist die Umdefinierung beendet. In allen anderen Fällen wird -% der Kopf nicht verändert. -% \begin{macrocode} - \fi -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% Der Benutzer kann die Voreinstellung mit einer einfachen Anweisung ändern: -% \begin{macrocode} -\newcommand{\firsthead}{% - \ClassWarning{scrlttr2}{% - Deprecated usage of \string\firsthead.\MessageBreak - You should use \string\setkomavar{firsthead}\MessageBreak - instead of \string\firsthead - } - \setkomavar{firsthead}% -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Schrifteinstellungen für den Briefbogen} -% -% \begin{KOMAfont}{foldmark} -% \changes{v2.97c}{2007/05/08}{Neu} -% Die Schrift (hier ist die Farbe der entscheidende Faktor) der Faltmarken. -% \begin{macrocode} -\newkomafont{foldmark}{} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{fromname} -% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}} -% Der Absendername im Briefkopf. -% \begin{macrocode} -\newkomafont{fromname}{} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{fromaddress} -% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}} -% Die Absenderadresse im Briefkopf. -% \begin{macrocode} -\newkomafont{fromaddress}{} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{fromrule} -% \changes{v2.97c}{2007/05/08}{Neu} -% Die Schrift (hier ist die Farbe der entscheidende Faktor) der Linie im -% Absender. -% \begin{macrocode} -\newkomafont{fromrule}{} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{backaddress} -% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}} -% Die Rücksendeadresse. -% \begin{macrocode} -\newkomafont{backaddress}{\sffamily} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{specialmail} -% \changes{v2.97c}{2007/07/06}{Neues Font-Element} -% Die Versandart. -% \begin{macrocode} -\newkomafont{specialmail}{} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{priority} -% \changes{v3.03}{2009/03/04}{Neues Font-Element} -% Grundschrift für die Priorität des Briefs, falls diese A oder B ist. Es wird -% ohne Durchschuss gearbeitet. -% \begin{macrocode} -\newkomafont{priority}{\fontsize{10pt}{10pt}\sffamily\bfseries} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{prioritykey} -% \changes{v3.03}{2009/03/04}{Neues Font-Element} -% Schrift für den Buchstaben der Priorität des Briefs, falls diese A oder B -% ist. Wird nach \texttt{priority} angewandt. Eigentlich sollten hier 9\,mm -% verwendet werden. Dafür wird aber eine frei skalierbare Schrift benötig. Mit -% 24,88\,pt sind wir nur 0,25\,mm kleiner. Das sollte kein Problem -% darstellen. Es wird auch hier ohne Durchschuss gearbeitet. -% \begin{macrocode} -\newkomafont{prioritykey}{\fontsize{24.88pt}{24.88pt}\selectfont} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{PPlogo} -% \changes{v3.03}{2009/03/04}{Neues Font-Element} -% Schrift für das Logo \texttt{P.P.}, das im Anschriftmodus \texttt{PP} -% gesetzt wird. -% \begin{macrocode} -\newkomafont{PPlogo}{\sffamily\bfseries} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{PPdata} -% \changes{v3.03}{2009/03/04}{Neues Font-Element} -% Schrift, die innerhalb des PP-Kopfes für die Daten verwendet wird. -% gesetzt wird. -% \begin{macrocode} -\newkomafont{PPdata}{\sffamily} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{addressee} -% \changes{v2.97c}{2007/07/06}{Neues Font-Element} -% Die komplette Anschrift. -% \begin{macrocode} -\newkomafont{addressee}{} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{toname} -% \changes{v2.97c}{2007/07/06}{Neues Font-Element} -% Der Name des Empfängers in der Anschrift. -% \begin{macrocode} -\newkomafont{toname}{} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{toaddress} -% \changes{v2.97c}{2007/07/06}{Neues Font-Element} -% Die Adresse des Empfängers in der Anschrift. -% \begin{macrocode} -\newkomafont{toaddress}{} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{refname} -% \changes{v2.97c}{2007/05/14}{Neues Font-Element} -% Die Feldnamen in der Geschäftszeile. -% \begin{macrocode} -\newkomafont{refname}{\sffamily\scriptsize} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{refvalue} -% \changes{v2.97c}{2007/05/14}{Neues Font-Element} -% \changes{v2.97d}{2007/10/09}{Voreinstellung korrigiert} -% Die Feldwerte in der Geschäftszeile. -% \begin{macrocode} -\ifnum\scr@compatibility=\@nameuse{scr@v@2.97}\relax - \newkomafont{refvalue}{\sffamily\scriptsize} -\else - \newkomafont{refvalue}{} -\fi -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{title} -% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}} -% Der Brieftitel. -% \begin{macrocode} -\newkomafont{title}{\normalcolor\sffamily\bfseries} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{subject} -% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}} -% Der Betreff. -% \begin{macrocode} -\newkomafont{subject}{\normalcolor\bfseries} -% \end{macrocode} -% \end{KOMAfont} -% -% \subsubsection{Längen für den Briefbogen} -% -% \begin{macro}{\ltr@len@foldmarkhpos} -% \changes{v2.8q}{2001/10/06}{Neu} -% Abstand der horizontalen Faltmarken von der linken Papierkante. -% \begin{macrocode} -\@newplength{foldmarkhpos} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@foldmarkvpos} -% \changes{v2.97e}{2007/11/10}{Neu} -% Abstand der vertikalen Faltmarken von der oberen Papierkante. -% \begin{macrocode} -\@newplength{foldmarkvpos} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@tfoldmarkvpos} -% \changes{v2.8q}{2001/10/06}{Neu} -% \begin{macro}{\ltr@len@mfoldmarkvpos} -% \changes{v2.97e}{2007/11/08}{Neu} -% \begin{macro}{\ltr@len@bfoldmarkvpos} -% \changes{v2.8q}{2001/10/06}{Neu} -% Abstand der oberen, mittleren und unteren Faltmarken von der oberen -% Papierkante. -% \begin{macrocode} -\@newplength{tfoldmarkvpos} -\@newplength{mfoldmarkvpos} -\@newplength{bfoldmarkvpos} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\ltr@len@lfoldmarkhpos} -% \changes{v2.97e}{2007/11/10}{Neu} -% Abstand linken Faltmarken von der linken Papierkante. -% \begin{macrocode} -\@newplength{lfoldmarkhpos} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@pfoldmarklength} -% \changes{v2.97e}{2007/11/19}{Neu} -% \begin{macro}{\ltr@len@hfoldmarklength} -% \changes{v2.97e}{2007/11/10}{Neu} -% \begin{macro}{\ltr@len@mfoldmarklength} -% \changes{v2.97e}{2007/11/10}{Neu} -% \begin{macro}{\ltr@len@bfoldmarklength} -% \changes{v2.97e}{2001/11/10}{Neu} -% \begin{macro}{\ltr@len@lfoldmarklength} -% \changes{v2.97e}{2001/11/10}{Neu} -% Länge der Lochmarke und der oberen, mittleren und unteren horizontalen und -% der (linken) vertikalen Faltmarke. -% \begin{macrocode} -\@newplength{pfoldmarklength} -\@newplength{tfoldmarklength} -\@newplength{mfoldmarklength} -\@newplength{bfoldmarklength} -\@newplength{lfoldmarklength} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\ltr@len@foldmarkthickness} -% \changes{v2.97c}{2007/05/08}{Neu} -% Dicke der Faltmarken. -% \begin{macrocode} -\@newplength{foldmarkthickness} -\@setplength{foldmarkthickness}{.2pt} -% \end{macrocode} -% \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öhe der Rücksendeadresse. -% \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. 0 bedeutet im -% Anschriftmodus \texttt{PP} 8\,mm, ansonsten wirklich 0\,mm. Außerdem wird im -% Anschriftmodus \texttt{PP} die Pseudolänge auch für den Abstand vom rechten -% Rand des Adressfensters verwendet. -% \begin{macrocode} -\@newplength{toaddrindent} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@PPheadheight} -% \changes{v3.03}{2009/03/04}{Neu}% -% Höhe des PP-Kopfes in den Anschriftmodi \texttt{PP}, -% \texttt{backgroundimage} und \texttt{image}. 0 bedeutet hier 20,74\,pt. -% \begin{macrocode} -\@newplength{PPheadheight} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@PPheadwidth} -% \changes{v3.03}{2009/03/04}{Neu}% -% Breite des PP-Kopfes im Anschriftmodus \texttt{PP}. 0 bedeutet hier 42\,mm. -% \begin{macrocode} -\@newplength{PPheadwidth} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@PPdatamatrixvskip} -% \changes{v3.03}{2009/03/04}{Neu}% -% Abstand zwischen PP-Kopf und DataMatrix im Anschriftmodus \texttt{PP}. 0 -% bedeutet hier 9\,mm. -% \begin{macrocode} -\@newplength{PPdatamatrixvskip} -% \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} -% \changes{v3.03b}{2009/06/25}{Implementierung an Doku angepasst} -% Höhe des Adressfensters mit Rücksendeadresse -% \begin{macrocode} -\@newplength{toaddrheight} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@locvpos} -% \changes{v2.97e}{2007/11/07}{Neu} -% Abstand der Absenderergänzung von der oberen Papierkante. -% \begin{macrocode} -\@newplength{locvpos} -% \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@lochpos} -% \changes{v2.97e}{2007/11/07}{Neu} -% Abstand der Absenderergänzung von der linken Papierkante bzw. wenn negativ -% von der rechten Papierkante. -% \begin{macrocode} -\@newplength{lochpos} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@locheight} -% \changes{v2.97e}{2007/11/07}{Neu} -% Höhe der Absenderergänzung. -% \begin{macrocode} -\@newplength{locheight} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@refvpos} -% \changes{v2.8q}{2001/10/06}{Neu} -% Abstand der Geschäftszeile 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äftszeile. -% \begin{macrocode} -\@newplength{refwidth} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@refhpos} -% \changes{v2.9l}{2003/01/28}{Neu} -% Horizontale Position der Geschäftszeile. -% \begin{macrocode} -\@newplength{refhpos} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@refaftervskip} -% \changes{v2.8q}{2001/10/09}{Neu} -% Abstand nach der Geschäftszeile. -% \begin{macrocode} -\@newplength{refaftervskip} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@sigbeforevskip} -% \changes{v2.8q}{2001/10/09}{Neu} -% Raum für 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ßes 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ßes 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ßes der ersten Seite. -% \begin{macrocode} -\@newplength{firstfootwidth} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@firstfoothpos} -% \changes{v3.05}{2009/11/09}{Neu} -% Abstand des Kopfes vom linken Rand der Seite. -% \begin{macrocode} -\@newplength{firstfoothpos} -\@setplength{firstfoothpos}{\maxdimen} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@firstheadvspos} -% \changes{v2.8q}{2001/10/06}{Neu} -% Abstand des Kopfes der ersten Seite von der Papieroberkante. -% \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@firstheadhpos} -% \changes{v3.05}{2009/11/09}{Neu} -% Abstand des Kopfes vom linken Rand der Seite. -% \begin{macrocode} -\@newplength{firstheadhpos} -\@setplength{firstheadhpos}{\maxdimen} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@fromrulewidth} -% \changes{v2.8q}{2002/01/28}{Neu} -% Die Länge einer eventuell gesetzten Linie im Absender. Negative -% Werte bedeuten, dass die Länge automtaisch bestimmt wird. -% \begin{macrocode} -\@newplength{fromrulewidth} -\@setplength{fromrulewidth}{0pt} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@fromrulethickness} -% \changes{v2.97c}{2007/05/08}{Neue Pseudolänge \texttt{fromrulewidth}} -% Die Dicke einer eventuell gesetzte Linie im Absender. -% \begin{macrocode} -\@newplength{fromrulethickness} -\@setplength{fromrulethickness}{.4pt} -% \end{macrocode} -% \end{macro} -% -% -% \subsubsection{Fuß des Briefbogens} -% -% \begin{macro}{\firstfoot} -% \changes{v3.08}{2010/10/28}{der Fuß des Briefbogens wird über eine -% Variable realisiert} -% \begin{macro}{\@firstfoot} -% \changes{v3.08}{2010/10/28}{der Fuß des Briefbogens wird über eine -% Variable realisiert} -% \begin{KOMAvar}{firstfoot} -% \changes{v3.08}{2010/10/28}{Neu} -% \begin{macrocode} -% Der Fuß des Briefbogens ist in der Voreinstellung leer. -\newkomavar{firstfoot} -\newcommand*{\@firstfoot}{% - \ClassWarning{scrlttr2}{% - Deprecated usage of \string\@firstfoot.\MessageBreak - \string\usekomavar{firstfoot} should be used\MessageBreak - instead of \string\@firstfoot - }% - \usekomavar{firstfoot}% -} -% \end{macrocode} -% Dies kann jedoch über eine einfache Benutzeranweisung geändert werden: -% \begin{macrocode} -\newcommand{\firstfoot}{% - \ClassWarning{scrlttr2}{% - Deprecated usage of \string\firstfoot.\MessageBreak - You should use \string\setkomavar{firstfoot}\MessageBreak - instead of \string\firstfoot - } - \setkomavar{firstfoot}% -} -% \end{macrocode} -% \end{KOMAvar} -% \end{macro} -% \end{macro} -% -% -% \subsubsection{Ausgabe des Briefbogens} -% -% Die Ausgabe selbst erfolgt derzeit über die |\opening|-Anweisung, die in -% einem späteren Abschnitt implementiert ist. -% -% \begin{macro}{\move@topt} -% \changes{v2.8n}{2001/09/07}{Neu} -% Für die folgenden Aktionen wird ein Makro benötigt, 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ürlich wird auch ein Makro benötigt, um vertikal von einer relativen -% Papierposition wieder auf die relative Seitenposition zurück 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ür die folgenden Aktionen wird außerdem ein Makro benötigt, 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ürlich wird auch ein Makro benötigt, um horizontal von einer relativen -% Papierposition wieder auf die relative Seitenposition zurück 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} -% \changes{v2.95}{2006/03/23}{Absatzformatierung mit \cs{setparsizes}} -% \changes{v2.97e}{2007/11/20}{\cs{long}} -% Ausserdem wird ein vertikales Äquivalent zu |\rlap| benötigt. -% \begin{macrocode} -\newcommand{\vb@t@z}[1]{{% - \setbox0\vbox to\z@{#1\vss}% - \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative - \setlength{\baselineskip}{\z@}% - \setlength{\@tempdima}{\ht0}\addtolength{\@tempdima}{\dp0}% - \box0\vskip-\@tempdima% - }% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@foldmarks} -% \changes{v2.97e}{2007/11/08}{\texttt{mfoldmarkvpos} wird verwendet} -% Für die Faltmarken müssen nicht nur Abstände definiert werden, es wird auch -% ein Befehl benötigt, um die Faltmarken zu setzen. -% \begin{macro}{\@hfoldmark} -% \changes{v2.97e}{2007/11/08}{Neu (intern)} -% Dabei werden nur die horizontalen Faltmarken gesetzt, die tatsächlich -% existieren. -% \begin{macro}{\@foldmark} -% \changes{v2.8n}{2001/09/07}{Neu} -% \changes{v2.95}{2006/06/06}{\cs{vskip} in \cs{vb@t@z} verschoben, damit es -% vom Satzspiegel unabhängig wird} -% \changes{v2.97c}{2007/05/08}{Dicke konfigurierbar} -% \changes{v2.97c}{2007/05/08}{Schrift (Farbe) konfigurierbar} -% 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ändert -% bleibt. Als Parameter werden der vertikale Abstand zur aktuellen Position -% und die Länder der Marke übergeben. -% \begin{macrocode} -\newcommand*{\@foldmark}[2]{% - \vb@t@z{\setlength{\@tempdima}{#1}% - \addtolengthplength[-.5]{\@tempdima}{foldmarkthickness}% - \vskip \@tempdima - \rlap{\move@topl\hskip\useplength{foldmarkhpos}% - \usekomafont{foldmark}{% - \rule{#2}{\useplength{foldmarkthickness}}}}}% - \ignorespaces -} -\newcommand*{\@hfoldmark}[1]{% - \begingroup - \@expandtwoargs\in@{#1}{\@usefolds}% - \ifin@ - \lowercase{% - \edef\@tempa{% - \noexpand\ifdim \noexpand\useplength{#1foldmarkvpos}=\noexpand\z@ - \noexpand\else - \noexpand\@foldmark{% - \noexpand\useplength{#1foldmarkvpos}% - }{% - \noexpand\useplength{#1foldmarklength}% - }% - \noexpand\fi - }% - }% - \@tempa - \fi - \endgroup -} -% \end{macrocode} -% \begin{macro}{\@vfoldmark} -% \changes{v2.97e}{2007/11/10}{Neu (intern)} -% Für die vertikale(n) Faltmarke(n) gilt prinzipiell das gleiche. Dabei ist -% lediglich zu beachten, dass die Linie hier komplett oberhalb der Grundlinie -% gesetzt wird, also die vertikale Position um die Länge nach unten zu -% verschieben ist. -% \begin{macrocode} -\newcommand*{\@vfoldmark}[1]{% - \begingroup - \@expandtwoargs\in@{#1}{\@usefolds}% - \ifin@ - \ifdim \useplength{lfoldmarkhpos}=\z@\else - \vb@t@z{% - \ifdim \useplength{foldmarkvpos}<\z@ - \nobreak\vskip \paperheight\nobreak - \fi - \vskip \useplength{foldmarkvpos}% - \vskip \useplength{foldmarkthickness}% - \rlap{\move@topl - \setlength{\@tempdima}{\useplength{lfoldmarkhpos}}% - \addtolengthplength[-.5]{\@tempdima}{foldmarkthickness}% - \hskip\@tempdima - \usekomafont{foldmark}{% - \rule{\useplength{foldmarkthickness}}% - {\useplength{lfoldmarklength}}% - }% - }% - }% - \ignorespaces - \fi - \fi - \endgroup -} -\newcommand*{\@foldmarks}{% - \if@fold% - \typeout{Foldmarks: yes}% - \move@topt - \ifdim \useplength{pfoldmarklength}=\z@ - \@setplength{pfoldmarklength}{4mm}% - \fi - \ifdim \useplength{tfoldmarklength}=\z@ - \@setplength{tfoldmarklength}{2mm}% - \fi - \ifdim \useplength{mfoldmarklength}=\z@ - \@setplength{mfoldmarklength}{2mm}% - \fi - \ifdim \useplength{bfoldmarklength}=\z@ - \@setplength{bfoldmarklength}{2mm}% - \fi - \ifdim \useplength{lfoldmarklength}=\z@ - \@setplength{lfoldmarklength}{4mm}% - \fi - \begingroup - \@expandtwoargs\in@{P}{\@usefolds}% - \ifin@ - \@foldmark{.5\paperheight}{\useplength{pfoldmarklength}}% - \fi - \endgroup - \@hfoldmark{T}% - \@hfoldmark{M}% - \@hfoldmark{B}% - \@vfoldmark{L}% - \move@frompt - \else - \typeout{Foldmarks: no}% - \fi% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\@savevbox} -% \changes{v2.8n}{2001/09/07}{Neu} -% \changes{v2.8q}{2001/10/30}{zusätzlich 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ührt, weiss letztlich niemand, welche Box dafür -% verantwortlich war. Deshalb definieren wir hier ein Makro, das ggf. eine -% Meldung ausgibt, die erklärt, welches Element die Ursache war und was man -% tun kann. Das erste Argument ist dabei die Sollhöhe 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öhe und das fünfte -% schließlich 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ücksichtigung. -% \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ß explizit in eine Box gesetzt} -% \changes{v2.9l}{2003/01/23}{Positionierung verbessert} -% \changes{v2.97e}{2007/11/22}{Optionen \texttt{firsthead} und -% \texttt{firstfoot} beachten} -% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstheadhpos} -% beachtet} -% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstfoothpos} -% beachtet} -% Ab Version 2.8n werden Kopf und Fuß 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änkte Höhe hat. Diese Höhe ist unabhängig von der normalen Kopfhöhe -% und richtet sich stattdessen nach der Position des Adressfeldes. -% \begin{macrocode} -\newcommand*{\@firstheadfootfield}{% - \if@firsthead - \typeout{Head of first page}% - \move@topt\vskip\useplength{firstheadvpos}% - \vb@t@z{% - \rlap{\move@topl -% \end{macrocode} -% Wenn \texttt{firstheadhpos} positiv und kleiner als die Seitenbreite ist, -% dann ist es der Abstand des Kopfes vom linken Rand. -% Wenn \texttt{firstheadhpos} negativ und betragsmäßig kleiner als die -% Seitenbreite ist, dann ist es der Abstand des Kopfes vom rechten Rand. -% Wenn \texttt{firstheadhpos} größer als die Seitenbreite ist, dann wird der -% Kopf zentriert. -% Wenn \texttt{firstheadhpos} kleiner als die negative Seitenbreite ist, dann -% wird der Kopf am linken Rand des Satzspiegels ausgerichtet. -% \begin{macrocode} - \ifdim\useplength{firstheadhpos}<\paperwidth - \ifdim \useplength{firstheadhpos}>-\paperwidth - \ifdim \useplength{firstheadhpos}<\z@ - \setlength\@tempskipa{\paperwidth}% - \addtolengthplength{\@tempskipa}{firstheadhpos}% - \addtolengthplength[-]{\@tempskipa}{firstheadwidth}% - \else - \setlength{\@tempskipa}{\useplength{firstheadhpos}}% - \fi - \else - \setlength\@tempskipa{\oddsidemargin}% - \addtolength\@tempskipa{1in}% - \fi - \else - \setlength\@tempskipa{.5\paperwidth}% - \addtolengthplength[-.5]{\@tempskipa}{firstheadwidth}% - \fi - \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änge lokal -% entsprechend gesetzt. Außerdem wird dafür gesorgt, dass |\parfillskip| hier -% nicht berücksichtigt wird. -% \begin{macrocode} - \setlength{\textwidth}{\useplength{firstheadwidth}}% - \setlength{\parfillskip}{\z@ \@plus 1fil}% - \@savevbox{\@tempskipa}{\noindent\usekomavar{firsthead}% - \vskip \z@ \@plus .00001fil}% - {head of first page}{firstheadvpos}{\setkomavar}% - }% - }% - }% - \vskip-\useplength{firstheadvpos}\move@frompt - \else - \typeout{No head at first page}% - \fi - \move@topt - \if@firstfoot - \typeout{Foot of first page}% - \vb@t@z{% - \rlap{\move@topl -% \end{macrocode} -% Wenn \texttt{firstfoothpos} positiv und kleiner als die Seitenbreite ist, -% dann ist es der Abstand des Kopfes vom linken Rand. -% Wenn \texttt{firstfoothpos} negativ und betragsmäßig kleiner als die -% Seitenbreite ist, dann ist es der Abstand des Kopfes vom rechten Rand. -% Wenn \texttt{firstfoothpos} größer als die Seitenbreite ist, dann wird der -% Kopf zentriert. -% Wenn \texttt{firstfoothpos} kleiner als die negative Seitenbreite ist, dann -% wird der Kopf am linken Rand des Satzspiegels ausgerichtet. -% \begin{macrocode} - \ifdim\useplength{firstfoothpos}<\paperwidth - \ifdim \useplength{firstfoothpos}>-\paperwidth - \ifdim \useplength{firstfoothpos}<\z@ - \setlength\@tempskipa{\paperwidth}% - \addtolengthplength{\@tempskipa}{firstfoothpos}% - \addtolengthplength[-]{\@tempskipa}{firstfootwidth}% - \else - \setlength{\@tempskipa}{\useplength{firstfoothpos}}% - \fi - \else - \setlength\@tempskipa{\oddsidemargin}% - \addtolength\@tempskipa{1in}% - \fi - \else - \setlength\@tempskipa{.5\paperwidth}% - \addtolengthplength[-.5]{\@tempskipa}{firstfootwidth}% - \fi - \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ßes ist, wird diese Länge lokal -% entsprechend gesetzt. Außerdem wird dafür gesorgt, dass |\parfillskip| hier -% nicht berücksichtigt wird. -% \begin{macrocode} - \setlength{\textwidth}{\useplength{firstfootwidth}}% - \setlength{\parfillskip}{\z@ \@plus 1fil}% - \vbox{\hsize\useplength{firstfootwidth}\noindent - \usekomavar{firstfoot}}% - }% - }% - }% - \else - \typeout{No foot at first page}% - \fi - \move@frompt% - {% - \setlength{\@tempdima}{1in}\addtolength{\@tempdima}{\topmargin}% - \addtolength{\@tempdima}{\headheight}% - \addtolength{\@tempdima}{\headsep}% - \addtolength{\@tempdima}{\textheight}% - \addtolength{\@tempdima}{\footskip}% - \if@firstfoot - \addtolengthplength[-1]{\@tempdima}{firstfootvpos}% - \else - \addtolength{\@tempdima}{-\paperheight}% - \fi - \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ändert} -% \changes{v2.8q}{2002/06/03}{Sonderbehandlung für Adressfeld rechts} -% \changes{v2.9o}{2003/02/20}{\cs{noindent} eingefügt bei -% \texttt{specialmail}} -% \changes{v2.96}{2006/07/31}{Benutzung von \cs{backaddr@format}} -% \changes{v3.03}{2009/03/04}{Priorität kann Versandart ersetzen} -% \changes{v3.03}{2009/03/04}{Neue Anschriftmodi \texttt{PP}, -% \texttt{backgroundimage}, \texttt{addresseeimage}} -% \changes{v3.03b}{2009/06/30}{Schreibfehler bei »addressee« korrigiert} -% \changes{v3.06a}{2010/07/29}{Absatzparameter werden passend eingestellt} -% Dasselbe gilt auch für das Adressfeld für Fensterumschläge. Die -% Rücksendeadresse und die Briefart werden dabei mit eigenen -% Formatieranweisungen gesetzt. -% \begin{macrocode} -\newcommand*{\@addrfield}{% - \ifcase \@afieldmode\relax - \typeout{Address: No}% - \or - \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 - \ifcase \ltr@priority - \ifkomavarempty{specialmail}{}{% - \edef\@tempa{\@tempa\@tempb specialmail}\def\@tempb{,\space}% - }% - \or - \edef\@tempa{\@tempa\@tempb B-Economy}\def\@tempb{,\space}% - \or - \edef\@tempa{\@tempa\@tempb A-Priority}\def\@tempb{,\space}% - \fi - \typeout{Address (\@tempa\@tempb addressee)}% - \endgroup% - \move@topt\vskip\useplength{toaddrvpos}% - \vb@t@z{{\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative - \rlap{\move@topl - \setlengthtoplength{\@tempskipa}{toaddrhpos}% - \ifdim \@tempskipa<\z@ - \addtolength{\@tempskipa}{\paperwidth}% - \addtolengthplength[-]{\@tempskipa}{toaddrwidth}% - \fi - \hskip\@tempskipa - \@savevbox{\useplength{toaddrheight}}{\hsize\useplength{toaddrwidth}% - \@savevbox[\vss]{\useplength{backaddrheight}}{% - \hsize\useplength{toaddrwidth}% - \if@baddr - \ifkomavarempty{backaddress}{}{{% - \noindent% - \def\\{\usekomavar{backaddressseparator}\@ogobble}% - \backaddr@format{\scriptsize\usekomafont{backaddress}% - \usekomavar{backaddress}}}}% - \fi - }{backaddress}{backaddrheight}{\setkomavar}% - \ifcase \ltr@priority - \or - \setkomavar{specialmail}{% - {\usekomafont{priority}{% - {\usekomafont{prioritykey}{B}}% - -ECONOMY}}% - }% - \or - \setkomavar{specialmail}{% - {\usekomafont{priority}{% - {\usekomafont{prioritykey}{A}}% - -PRIORITY}}% - }% - \fi - \ifkomavarempty{specialmail}{}{% - \vbox{\hsize\useplength{toaddrwidth}% - \noindent\hspace*{\useplength{specialmailindent}}% - \specialmail@format{% - \usekomafont{specialmail}\usekomavar{specialmail}}% - \hspace*{\useplength{specialmailrightindent}}}% - }% - \vfil% - \noindent\hskip\useplength{toaddrindent}% - \setlength{\@tempdima}{\useplength{toaddrwidth}}% - \addtolengthplength[-2]{\@tempdima}{toaddrindent}% - \vbox{\hsize\@tempdima\raggedright - \usekomafont{addressee}{% - \usekomafont{toname}{\usekomavar{toname}\\}% - \usekomafont{toaddress}{\usekomavar{toaddress}}}}% - \vfil\null\vskip-\baselineskip}% - {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 - \begingroup% -% \end{macrocode} -% In den Modi \texttt{PP}, \texttt{backgroundimage} oder \texttt{addresseeimage} -% gibt es weder Rücksendeadresse noch Versandart aber ebenfalls eine Priorität. -% \begin{macrocode} - \if@baddr - \let\@tempa\@empty\let\@tempb\@empty - \ifcase \@afieldmode\relax\or\or - \def\@tempa{PP-mode}\def\@tempb{,\space}% - \or - \def\@tempa{backgroundimage-mode}\def\@tempb{,\space}% - \or - \def\@tempa{image-mode}\def\@tempb{,\space}% - \fi - \ifkomavarempty{backaddress}{}{% - \edef\@tempa{\@tempa\@tempb backaddress ignored}\def\@tempb{,\space}% - }% - \else - \let\@tempa\@empty\let\@tempb\@empty - \fi - \ifcase \ltr@priority - \ifkomavarempty{specialmail}{}{% - \edef\@tempa{\@tempa\@tempb specialmail ignored}\def\@tempb{,\space}% - }% - \or - \edef\@tempa{\@tempa\@tempb B-Economy}\def\@tempb{,\space}% - \or - \edef\@tempa{\@tempa\@tempb A-Priority}\def\@tempb{,\space}% - \fi - \typeout{Address (\@tempa\@tempb addressee)}% - \endgroup% - \move@topt\vskip\useplength{toaddrvpos}% - \vb@t@z{{% - \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative - \ifdim \useplength{toaddrindent}=\z@ - \@setplength{toaddrindent}{8mm}% - \fi - \ifdim \useplength{PPheadheight}=\z@ - \@setplength{PPheadheight}{20.74pt}% - \fi - \ifdim \useplength{PPheadwidth}=\z@ - \@setplength{PPheadwidth}{42mm}% - \fi - \ifdim \useplength{PPdatamatrixvskip}=\z@ - \@setplength{PPdatamatrixvskip}{9mm}% - \fi - \rlap{\move@topl - \setlengthtoplength{\@tempskipa}{toaddrhpos}% - \ifdim \@tempskipa<\z@ - \addtolength{\@tempskipa}{\paperwidth}% - \addtolengthplength[-]{\@tempskipa}{toaddrwidth}% - \fi - \hskip\@tempskipa - \@savevbox{\useplength{toaddrheight}}{\hsize\useplength{toaddrwidth}% - \ifnum\@afieldmode=\tw@ -% \end{macrocode} -% Modus \texttt{PP}. -% \begin{macrocode} - \vskip 2pt\relax - \hskip \useplength{toaddrindent}\relax - \fbox{% - \vbox to \dimexpr \useplength{PPheadheight}-2\fboxsep\relax{% - \setlength{\parindent}{0pt}% - \hsize \dimexpr \useplength{PPheadwidth}-2\fboxsep\relax - \setbox\@tempboxa\hbox{% - {\fontsize{20.74pt}{20.74pt}\selectfont - \usekomafont{PPlogo}{P.P.}}\hskip 2mm% - }% - \dp\@tempboxa\z@ - \setlength{\@tempdima}{\hsize}% - \addtolength{\@tempdima}{-\wd\@tempboxa}% - \hbox{\box\@tempboxa - \vbox to \dimexpr - \useplength{PPheadheight}-2\fboxsep\relax{% - \vss\hsize\@tempdima - \raggedright - \fontsize{8pt}{9pt}\selectfont\usekomafont{PPdata}% - \usekomavar*{fromzipcode}\usekomavar{zipcodeseparator}% - \usekomavar{fromzipcode}\unskip\strut\\ - \usekomavar{place}\unskip\strut - \hfill - }% - }% - \vss - }% - }% - \hskip 1mm - \mbox{% - \vbox to \useplength{PPheadheight}{% - \addtolengthplength[-]{\hsize}{PPheadwidth}% - \addtolength{\hsize}{-1mm}% - \addtolengthplength[-2]{\hsize}{toaddrindent}% - \setlength{\parindent}{0pt}% - \fontsize{8pt}{9pt}\selectfont\usekomafont{PPdata}% - \hfill\usekomavar{PPcode} - \vss - \ifcase \ltr@priority - \or - \usekomafont{priority}{% - {\usekomafont{prioritykey}{B}}% - -ECONOMY\hss\vskip-\dp\strutbox - }% - \or - \usekomafont{priority}{% - {\usekomafont{prioritykey}{A}}% - -PRIORITY\hss\vskip-\dp\strutbox - }% - \fi - \vss - }% - }% - \vskip 1mm - \vskip-\ht\strutbox - \noindent\hskip\useplength{toaddrindent}% - \hrulefill% - \hskip\useplength{toaddrindent}% - \vbox to\z@{\hsize\z@ - \vskip \useplength{PPdatamatrixvskip}\relax - \llap{\usekomavar{PPdatamatrix}\hskip\useplength{toaddrindent}}% - \vss - }% - \else -% \end{macrocode} -% Modus \texttt{backgroundimage} oder \texttt{image}. -% \begin{macrocode} - \vskip 1mm - \noindent\expandafter\hskip\useplength{toaddrindent}% - \vbox to \useplength{PPheadheight}{% - \addtolengthplength[-2]{\hsize}{toaddrindent}% - \setlength{\parindent}{0pt}% - \usekomavar{addresseeimage}% - \vss - }% - \vskip 1mm - \vskip\dp\strutbox - \fi - \ifnum \@afieldmode=4 \else - \vfil% - \noindent\hskip\useplength{toaddrindent}% - \setlength{\@tempdima}{\useplength{toaddrwidth}}% - \addtolengthplength[-2]{\@tempdima}{toaddrindent}% - \vbox{\hsize\@tempdima - \ifkomavarempty{PPdatamatrix}{}{% - \addtolength{\hsize}{-2mm}% - \settowidth\@tempdima{\usekomavar{PPdatamatrix}}% - \addtolength{\hsize}{-\@tempdima}% - }% - \raggedright - \usekomafont{addressee}{% - \usekomafont{toname}{\usekomavar{toname}\\}% - \usekomafont{toaddress}{\usekomavar{toaddress}}}}% - \fi - \vss\null}% - {address field}{toaddrheight}% - {\string\begin{letter}}% - }}}% - \vskip-\useplength{toaddrvpos}\move@frompt - \fi -} -% \end{macrocode} -% \begin{macro}{\specialmail@format} -% \changes{v2.97c}{2007/07/06}{neu (intern)} -% Die Anweisung, die für das Aussehen der Versandart zuständig ist. -% \begin{macrocode} -\newcommand*{\specialmail@format}[1]{} -\let\specialmail@format\underline -% \end{macrocode} -% \end{macro} -% -% \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ügt} -% \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ür Adressfeld rechts} -% Das "`locfield"' wird unabhängig 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% -% \end{macrocode} -% \changes{v2.97e}{2007/11/13}{Der Absender kann nun ebenfalls in der -% Absenderergänzung stehen} -% \changes{v2.98b}{2008/01/30}{Absenderergänzung immer setzen, wenn -% verwendet} -% Je nach Absenderanordnung muss hier nun ebenfalls etwas getan werden. -% Der Fall 0, also linksbündiger Absender im Kopf spielt hier keine Rolle. -% \begin{macrocode} - \ifcase\@alignfrom -% \end{macrocode} -% Im Fall 1, also zentrierter Absender im Kopf wird jedoch das Logo hier -% platziert, also darf die Absenderergänzung nicht leer sein. -% \begin{macrocode} - \or - \if@logo - \ifkomavarempty{location}{\setkomavar{location}{\null}}{}% - \fi -% \end{macrocode} -% Im Fall 2, also rechtsbündiger Absender im Kopf, ist auch nichts zu tun. -% \begin{macrocode} - \or -% \end{macrocode} -% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier -% eine Menge ausgegeben, also darf die Absenderergänzung nicht leer sein. -% \begin{macrocode} - \or - \ifkomavarempty{location}{\setkomavar{location}{\null}}{}% -% \end{macrocode} -% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier -% eine Menge ausgegeben, also darf die Absenderergänzung nicht leer sein. -% \begin{macrocode} - \or - \ifkomavarempty{location}{\setkomavar{location}{\null}}{}% -% \end{macrocode} -% Alle anderen Fälle sind wie hier ebenfalls ohne Bedeutung. -% \begin{macrocode} - \fi - \ifkomavarempty{location}{% - \typeout{Location field: empty}% - }{% - \typeout{Location field: yes}% - \ifdim \useplength{lochpos}=\z@% - \@setplength{lochpos}{\useplength{toaddrhpos}}% - \fi - \ifdim \useplength{locvpos}=\z@% - \@setplength{locvpos}{\useplength{toaddrvpos}}% - \fi - \ifdim \useplength{locheight}=\z@% - \@setplength{locheight}{\useplength{toaddrheight}}% - \fi - \move@topt\vskip\useplength{locvpos}% - \vb@t@z{\noindent\makebox[0pt][l]{% - \move@topl - \setlengthtoplength[-]{\@tempskipa}{lochpos}% - \ifdim \@tempskipa<\z@ - \addtolength{\@tempskipa}{\paperwidth}% - \else - \addtolengthplength{\@tempskipa}{locwidth}% - \fi - \hskip\@tempskipa - \makebox[0pt][r]{% - \@savevbox{\useplength{locheight}}{% - \noindent\hsize\useplength{locwidth}% -% \end{macrocode} -% In einigen Fällen der Absenderanordnung muss hier nun eine ganze Menge getan -% werden. In anderen ist hingegen nur wenig zu tun. -% Im Fall 0, also linksbündiger Absender im Kopf wird nur die -% Absenderergänzung ausgegeben (das erfolgt nach der Fallunterscheidung). -% \begin{macrocode} - \ifcase\@alignfrom -% \end{macrocode} -% Im Fall 1, also zentrierter Absender im Kopf wird jedoch das Logo hier -% platziert, die Absenderergänzung wird ggf. danach ausgegeben (das erfolgt -% nach der Fallunterscheidung). -% \changes{v2.98a}{2008/01/10}{bei zentriertem Absender wird die -% Absenderergänzung ggf. unter dem Logo ausgegeben} -% \begin{macrocode} - \or - \if@logo - \ifkomavarempty{fromlogo}{\null}{% - {\raggedleft\noindent\usekomavar{fromlogo}\\ - \vskip\parskip}\noindent}% - \fi -% \end{macrocode} -% Im Fall 2, also rechtsbündiger Absender im Kopf, wird auch nur die -% Absenderergänzung ausgegeben (das erfolgt nach der Fallunterscheidung). -% \begin{macrocode} - \or -% \end{macrocode} -% Im Fall 3, also linksbündiger Absender in der Absenderergänzung wird hier -% sozusagen der linksbündige Kopf nachgebaut. Das Logo steht dabei -% ggf. rechtsbündig oben. -% \begin{macrocode} - \or - \if@logo - \ifkomavarempty{fromlogo}{}{% - \raggedleft\usekomavar{fromlogo}\par}% - \fi - \raggedright -% \end{macrocode} -% Zuerst wird der Name gesetzt. Dabei soll eine eigene Schriftart für -% 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änge dieser Linie kann vom Anwender -% bestimmt oder automatisch gewählt werden. Es werden dabei die -% Pseudo-Längen \texttt{fromrulewidth} und \texttt{fromrulethickness} -% verwendet. Ist \texttt{fromrulewidth} 0, so wird sie automatisch -% bestimmt. Bei der automatischen Längenbestimmung wird einfach eine Linie -% über die Gesamtbreite der Absenderergänzung gesetzt. -% \begin{macrocode} - {% - \ifnum\@rulefrom=1\\[-.5\baselineskip]% - \usekomafont{fromrule}{% - \setlength{\@tempdima}{\useplength{fromrulewidth}}% - \ifdim\@tempdima=\z@ - \setlength{\@tempdima}{\useplength{locwidth}}% - \fi - \expandafter\rule\expandafter{\the\@tempdima}{% - \useplength{fromrulethickness}}% - }% - \fi - }% - \\ - }% -% \end{macrocode} -% Als Nächstes wird die Absenderadresse einschließlich 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ähnt, kann auch an dieser Stelle eine Linie -% gesetzt werden. -% \begin{macrocode} - \ifnum\@rulefrom=2\\[-.5\baselineskip]% - \usekomafont{fromrule}{% - \setlength{\@tempdima}{\useplength{fromrulewidth}}% - \ifdim\@tempdima=\z@ - \setlength{\@tempdima}{\useplength{locwidth}}% - \fi - \expandafter\rule\expandafter{\the\@tempdima}{% - \useplength{fromrulethickness}}}% - \fi - \\ - }% -% \end{macrocode} -% Damit ist die Definition des linksbündigen Absenders in der -% Absenderergänzung abgeschlossen. -% Im Fall 4, also rechtsbündiger Absender in der Absenderergänzung wird hier -% exakt wie für Fall 3 verfahren. Nur ist jetzt alles rechtsbündig. -% \begin{macrocode} - \or - \raggedleft - \if@logo - \ifkomavarempty{fromlogo}{}{\usekomavar{fromlogo}\par}% - \fi - {\usekomafont{fromname}\strut\ignorespaces - \usekomavar{fromname}% - {% - \ifnum\@rulefrom=1\\[-.5\baselineskip]% - \usekomafont{fromrule}{% - \setlength{\@tempdima}{\useplength{fromrulewidth}}% - \ifdim\@tempdima=\z@ - \setlength{\@tempdima}{\useplength{locwidth}}% - \fi - \expandafter\rule\expandafter{\the\@tempdima}{% - \useplength{fromrulethickness}}% - }% - \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]% - \usekomafont{fromrule}{% - \setlength{\@tempdima}{\useplength{fromrulewidth}}% - \ifdim\@tempdima=\z@ - \setlength{\@tempdima}{\useplength{locwidth}}% - \fi - \expandafter\rule\expandafter{\the\@tempdima}{% - \useplength{fromrulethickness}}}% - \fi - \\ - }% -% \end{macrocode} -% In allen anderen Fällen wird ebenfalls die Absenderergänzung gesetzt. -% \begin{macrocode} - \fi - \usekomavar{location}% -% \end{macrocode} -% Zum Schluss wird noch verhindert, dass wegen nicht vollen vertikalen Boxen -% gemotzt wird. -% \begin{macrocode} - \vskip \z@ \@plus .00001fil}% - {location field}{locheight}{\setkomavar}% - }}% - }% - \vskip-\useplength{locvpos}\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} -% \changes{v2.97c}{2007/05/14}{Neue Fontelemente} -% Je nachdem, welche Felder definiert sind, muss eine geschäftsmäßiger -% Standardbrief oder ein eher persönliches Aussehen gewählt werden. -% \begin{macro}{\do@set@reffield} -% \changes{v3.09}{2011/03/06}{Neu (intern)} -% Das ist ein \cs{do} für die Felder und bekommt innerhalb von -% \cs{@datefield} unterschiedliche Bedeutungen. An dieser Stelle wird es daher -% nur reserviert. -% \begin{macrocode} -\newcommand*{\do@set@reffield}{} -% \end{macrocode} -% \begin{macro}{\@set@reffield} -% Einzelne Felder werden mit Hilfe dieses Makros gesetzt. Als Parameter wird -% der Name des Feldes übergeben. 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\usekomafont{refvalue}\usekomavar{#1}}% - \setbox0\hbox{\strut\usekomafont{refname}\usekomavar*{#1}}% - \ifdim \@tempdima<\wd0\setlength{\@tempdima}{\wd0}\fi - \if@tempswa\enskip\hfill\fi - \parbox[t]{\@tempdima}{\noindent\raggedright - \strut\box0\\\usekomafont{refvalue}\strut\usekomavar{#1}}% - \@tempswatrue - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@test@reffield} -% \changes{v3.09}{2011/03/06}{Neu (intern)} -% Dieses Makro testet, ob ein Feld tatsächlich zu setzen ist und setzt -% ggf. \cs{@tempswa}. -% \begin{macrocode} -\newcommand*{\@test@reffield}[1]{% - \ifkomavarempty{#1}{}{% -% \if@tempswa\l@addto@macro\@tempa{, }\fi -% \l@addto@macro\@tempa{#1}% - \@tempswatrue - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@set@reffields} -% \changes{v2.8q}{2002/01/14}{Neu} -% Dieses Makro enthält alle Aufrufe von \cs{@set@reffield}, die durchzuführen -% sind. Das Makro kann mit Hilfe von \cs{addtoreffields} erweitert werden. -% \begin{macrocode} -\newcommand*{\@set@reffields}{}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\addtoreffields} -% \changes{v3.09}{2011/03/06}{Verwendung von \cs{do@set@reffield} an Stelle -% von \cs{@set@reffield}} -% 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}{\do@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äftszeile 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 üblichen 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ügt} -% \changes{v2.8o}{2001/09/18}{für den Brieftyp \texttt{KOMAold} anschließend -% einen zusätzlichen vertikalen Abstand eingefügt} -% \changes{v2.8q}{2001/11/13}{\cs{rlap} eingefügt} -% \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ügt} -% \changes{v2.95}{2006/03/23}{Absatzeinzug mit \cs{setparsizes} abschalten} -% \changes{v2.97c}{2007/05/14}{Neue Font-Elemente} -% \changes{v3.09}{2011/03/06}{\cs{do@set@reffield} muss initialisiert -% werden} -% \begin{macrocode} -\newcommand*{\@datefield}{{% - \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative - \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ächst, um wieviel die Geschäftszeile schmaler ist als der -% Textbereich. -% \begin{macrocode} - \setlength\@tempdima{\textwidth}% - \addtolengthplength[-]{\@tempdima}{refwidth}% -% \end{macrocode} -% Dann wird bestimmt, wie groß der linke Rand tatsächlich ist. -% \begin{macrocode} - \setlength\@tempdimb{\oddsidemargin}% - \addtolength\@tempdimb{1in}% -% \end{macrocode} -% Ebenso wird bestimmt, wie groß der linke und rechte Rand zusammen sind. -% \begin{macrocode} - \setlength{\@tempdimc}{\paperwidth}% - \addtolength{\@tempdimc}{-\textwidth}% -% \end{macrocode} -% Jetzt wird aus dem Gesamtrand der Geschäftszeile der linke Rand der -% Geschäftszeile so bestimmt, dass das Randverhältnis dabei unverändert -% 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 kontrollieren wir, ob überhaupt etwas auszugeben ist: -% \begin{macrocode} - \@tempswafalse - \let\do@set@reffield\@test@reffield -% \let\@tempa\@empty - \@set@reffields - \ifcase \@datepos\else\@test@reffield{date}\fi - \if@tempswa -% \typeout{Reference line(s) with: \@tempa}% - \@tempswafalse -% \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 - \ifnum \@datepos=2 - \@set@reffields - \if@tempswa - \@tempswafalse - \@set@reffield{date}% - \fi - \fi - \let\do@set@reffield\@set@reffield - \@set@reffields% - \if@tempswa - \ifnum \@datepos=1 \@set@reffield{date}\fi% -% \end{macrocode} -% Seit Version~2.97c wird hier auch noch getestet, ob die Geschäftszeile -% möglicherweise mit zu großer Schrift gesetzt wird. -% \begin{macrocode} - \setbox0\hbox{\usekomafont{refname}\strutbox}% - \ifdim\ht0>\ht\strutbox - \ClassWarningNoLine{scrlttr}{% - Font element `refname' should not be larger than - \string\normalsize!}% - \fi - \setbox0\hbox{\usekomafont{refvalue}\strutbox}% - \ifdim\ht0>\ht\strutbox - \ClassWarningNoLine{scrlttr}{% - Font element `refvalue' should not be larger than - \string\normalsize!}% - \fi - \else - \ifcase \@datepos\else - \ifnum \@datepos=1 \enskip\hfill\fi - \ifkomavarempty{place}{}{% - \usekomavar{place}\usekomavar{placeseparator}}% - \usekomavar{date}% - \fi - \fi - }% - }% -% \else\typeout{No reference line.}% - \fi - \vskip\useplength{refaftervskip}% - }% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\@maketitle} -% \changes{v2.3b}{1996/01/14}{Verwendung von \cs{sectfont} für 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öße und Schrift des Titels} -% \changes{v2.95}{2006/03/22}{\cs{usekomafont} and Stelle fon \cs{titlefont}} -% \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ängendem Einzug gesetzt} -% \changes{v2.95}{2006/03/23}{Absatzeinzug mit cs{setparsizes} einstellen} -% \changes{v3.01}{2008/11/03}{Verwendung der neuen Pseudolängen -% \texttt{subjectbeforevskip} und \texttt{subjectaftervskip}} -% 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}% - {\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative - \centering\LARGE\usekomafont{title}\usekomavar{title}\par}% - \vskip\baselineskip% - }% -} -\newcommand*{\@subjfield}{{% - \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative - \ifkomavarempty{subject}{% - \typeout{Subject: no}% - }{% - \ifx\raggedsubject\@empty - \ifdim\useplength{subjectvpos}=\z@ - \if@subjafter% - \typeout{Subject: after opening}% - \let\raggedsubject\centering% - \else - \typeout{Subject: before opening}% - \def\raggedsubject{\noindent\@hangfrom}% - \fi - \else - \typeout{Subject: at absolute vertical position}% - \def\raggedsubject{\noindent\@hangfrom}% - \fi - \fi - \ifdim\useplength{subjectvpos}=\z@ - \vskip\useplength{subjectbeforevskip}% - \begingroup - \else - \move@topt\vskip\useplength{subjectvpos}% - \expandafter\vb@t@z\expandafter{% - \fi - \usekomafont{subject}% - \raggedsubject{\if@subj \subject@format{\strut\ignorespaces - \usekomavar*{subject}}\fi}% - \subject@format{\strut\ignorespaces\usekomavar{subject}}\par - \ifdim\useplength{subjectvpos}=\z@ - \endgroup - \vskip\useplength{subjectaftervskip}% - \else - }% - \vskip-\useplength{subjectvpos}\move@frompt - \fi - }% - }% -} -% \end{macrocode} -% \begin{macro}{\ltr@len@subjectvpos} -% \changes{v3.01}{2008/11/03}{Neue Pseudolänge \texttt{subjectvpos}} -% Manchmal ist es günstiger, wenn man den Betreff absolut positionieren -% kann. Das geschieht über diese Pseudolänge, wenn sie \emph{nicht} 0 ist. -% \begin{macrocode} -\@newplength{subjectvpos} -\@setplength{subjectvpos}{0pt} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@subjectaftervskip} -% \changes{v3.01}{2008/11/03}{Neue Pseudolänge \texttt{subjectaftervskip}} -% Abstand nach dem Betreff. Dieser Abstand wird aus Gründen der -% Kompatibilität zu früheren Versionen mit 2\cs{baselineskip} -% voreingestellt. -% \begin{macrocode} -\@newplength{subjectaftervskip} -\@setplength{subjectaftervskip}{2\baselineskip} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltr@len@subjectbeforevskip} -% \changes{v3.01}{2008/11/03}{Neue Pseudolänge \texttt{subjectbeforevskip}} -% Abstand zusätzlich vor dem Betreff. Dieser Abstand wird aus Gründen der -% Kompatibilität zu früheren Versionen mit \cs{baselineskip} -% voreingestellt. Es sei darauf hingewiesen, dass hier bereits ein Abstand -% beispielsweise vom Titel existieren kann! -% \begin{macrocode} -\@newplength{subjectbeforevskip} -\@setplength{subjectbeforevskip}{0pt} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \subsection{Anweisungen für das Briefpapier} -% -% Für das Briefpapier gibt es etwas weniger Anweisungen. Teilweise werden hier -% auch die Anweisungen für den Briefbogen mit verwendet. -% -% \subsubsection{Kopf des Briefpapiers} -% -% Der Kopf des Briefpapiers wird wieder ganz normal über den Seitenstil -% festgelegt. Allerdings kann er entsprechende dem Briefbogen manuell -% definiert werden. -% -% \begin{macro}{\nexthead} -% \changes{v3.08}{2010/10/28}{der Kopf der Folgeseiten wird über eine -% Variable realisiert} -% \begin{macro}{\@nexthead} -% \changes{v3.08}{2010/10/28}{der Kopf der Folgeseiten wird über eine -% Variable realisiert} -% \begin{KOMAvar}{nexthead} -% \changes{v3.08}{2010/10/28}{Neu} -% Die Voreinstellung ist ebenfalls von Optionen abhängig. -% \begin{macrocode} -\newcommand*{\@nexthead}{% - \ClassWarning{scrlttr2}{% - Deprecated usage of \string\@nexthead.\MessageBreak - \string\usekomavar{nexthead} should be used\MessageBreak - instead of \string\@nexthead - }% - \usekomavar{nexthead}% -} -\newkomavar{nexthead} -\setkomavar{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}}% -}% -% \end{macrocode} -% \end{KOMAvar} -% \end{macro} -% Die Voreinstellung ist wiederum mit einer einfachen Benutzeranweisung -% änderbar. -% \begin{macrocode} -\newcommand{\nexthead}{% - \ClassWarning{scrlttr2}{% - Deprecated usage of \string\nexthead.\MessageBreak - You should use \string\setkomavar{nexthead}\MessageBreak - instead of \string\nexthead - } - \setkomavar{nexthead}% -} -% \end{macrocode} -% \end{macro} -% -% -% \subsubsection{Fuß des Briefpapiers} -% -% \begin{macro}{\nextfoot} -% \changes{v3.08}{2010/10/28}{der Fuß der Folgeseiten wird über eine -% Variable realisiert} -% \begin{macro}{\@nextfoot} -% \changes{v3.08}{2010/10/28}{der Fuß der Folgeseiten wird über eine -% Variable realisiert} -% \begin{KOMAvar}{nextfoot} -% \changes{v3.08}{2010/10/28}{Neu} -% Je nach Optioneneinstellung kann sich die Seitenmarke in der Voreinstellung -% auch im Fuß befinden. -% \begin{macrocode} -\newcommand*{\@nextfoot}{% - \ClassWarning{scrlttr2}{% - Deprecated usage of \string\@nextfoot.\MessageBreak - \string\usekomavar{nextfoot} should be used\MessageBreak - instead of \string\@nextfoot - }% - \usekomavar{nextfoot}% -} -\newkomavar{nextfoot} -\setkomavar{nextfoot}{% - \ifnum\@pageat>2 - \parbox[c]{\textwidth}{% - \ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi - \strut\pagemark% - }% - \fi -} -% \end{macrocode} -% \end{KOMAvar} -% \end{macro} -% Auch diese Einstellung ist per Benutzeranweisung leicht zu ändern. -% \begin{macrocode} -\newcommand{\nextfoot}{% - \ClassWarning{scrlttr2}{% - Deprecated usage of \string\nextfoot.\MessageBreak - You should use \string\setkomavar{nextfoot}\MessageBreak - instead of \string\nextfoot - } - \setkomavar{nextfoot}% -} -% \end{macrocode} -% \end{macro} -% -% -% \subsection{Die Brief-Umgebung} -% -% \begin{environment}{letter} -% \changes{v2.8q}{2002/01/16}{optionales Argument hinzugefügt} -% \changes{v2.8q}{2002/01/16}{Fußnotenzähler wird zurückgesetzt} -% \changes{v2.9d}{2002/08/12}{Fußnotenzähler wird korrekt zurückgesetzt} -% Diese Umgebung ist etwas anders definiert, als normalerweise von -% \LaTeX gewohnt. Mit ihr können innerhalb eines Dokuments beliebig -% viele Briefe erzeugt werden. Eine der Abweichungen von der -% Standardklasse besteht darin, dass als optionales Argument Optionen -% gesetzt werden können. -% \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ähler und Strafpunkte -% zurückgesetzt 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 übergebenen Optionen ausgeführt. -% \begin{macrocode} - \KOMAoptions{#1}% -% \end{macrocode} -% Zum Schluss werden die per \cs{AtBeginLetter} angegeben Anweisungen -% ausgeführt. -% \begin{macrocode} - \@beginletterhook -}{% - \stopletter\@@par\pagebreak\@@par% -} -% \end{macrocode} -% \begin{macro}{\stopletter} -% Damit man Material am Ende des Briefes einschleusen kann. -% \begin{macro}{\@processto} -% \changes{v2.9r}{2004/06/16}{robust gegen leeren Empfänger} -% \begin{macro}{\@xproc} -% Die Adresse, die als Argument der Briefumgebung übergeben wird, muss in Name -% und Adresse zerlegt werden. -% \begin{macrocode} -\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}{\flushbottom} -% \changes{v2.97c}{2007/05/17}{neue Erweiterung} -% Das Verhalten muss auf der letzten Briefseite wieder \cs{raggedbottom} -% ähneln. Das wird über \cs{stopletter} erreicht. -% \begin{macrocode} -\g@addto@macro\flushbottom{% - \g@addto@macro\stopletter{\vskip \z@\@plus.0001fil\relax}% -} -% \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ügt. Dieser wird auch tatsächlich intern genutzt. Er funktioniert -% prinzipiell wie der |\AtBeginDocument|-Haken. Zunächst macht der Haken rein -% gar nichts. -% \begin{macrocode} -\newcommand{\AtBeginLetter}{\g@addto@macro\@beginletterhook} -\newcommand{\@beginletterhook}{} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\AtEndLetter} -% \changes{v2.95}{2006/03/22}{Neu} -% Analog zu |\AtBeginLetter| gibt es auch ein |\AtEndLetter|. Als Haken wird -% hierbei |\stopletter| verwendet. -% \begin{macrocode} -\newcommand{\AtEndLetter}{\g@addto@macro\stopletter} -% \end{macrocode} -% \end{macro} -% -% \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}{\opening} -% \changes{v2.8n}{2001/09/08}{Komplett überarbeitet} -% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} -% \changes{v2.8q}{2002/03/25}{\cs{@PapersizeWarning}} -% \changes{v2.95}{2003/03/23}{Absatzformatierung mit \cs{setparsizes} -% einstellen} -% Denn beim Eröffnungsgruß mit |\opening| wird neben sämtlichen 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 - \ifdim\useplength{subjectvpos}=\z@\else\@subjfield\fi - \@datefield - \@maketitle - \ifdim\useplength{subjectvpos}=\z@\if@subjafter\else\@subjfield\fi\fi - {\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative#1\par}% - {\setlength{\@tempdima}{\baselineskip}% - \addtolength{\@tempdima}{-\parskip}% - \ifdim \@tempdima>\z@\vskip\@tempdima\fi}% - \ifdim\useplength{subjectvpos}=\z@\if@subjafter\@subjfield\fi\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 Schlussgruß und Signatur -% erhöht} -% \changes{v2.5d}{2000/06/10}{Abstand zwischen Schlussgruß 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} -% \changes{v2.95}{2003/03/23}{Absatzformatierung mit \cs{setparsizes} -% einstellen} -% Außer dem Eröffnungsgruß mit |\opening| gibt es natürlich auch einen -% Schlussgruß mit |\closing|, bei dem außerdem die Unterschrift u.\,ä. gesetzt -% wird. -% \begin{macro}{\presig@skip} -% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen -% Schlussgruß und Signatur beinhaltet} -% \changes{v2.8q}{2001/10/09}{Ersetzt durch Pseudo-Länge sigbeforevskip} -% \end{macro} -% \begin{macro}{\setpresigskip} -% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen -% Schlussgruß und Signatur setzt} -% \changes{v2.8q}{2001/10/09}{Mit Hilfe der neuen Pseudo-Längen definiert} -% Das Makro |\presig@skip| beinhaltet dabei den Abstand zwischen Schlussgruß -% und Signatur. Da der Wert über ein Benutzerinterface per |\setpresigskip| -% gesetzt wird, muss hier kein kostbares Längenregister (skip oder dim) -% verschwendet werden, sondern ein Makro reicht aus. In |\setpresigskip| wird -% allerdings noch sichergestellt, dass die Fehlermeldung bei falschem -% Parameter möglichst nicht erst bei Verwendung auftritt. -% \begin{macrocode} -% -%\def\setpresigskip{\@setplength{sigbeforevskip}} -%<*letter> -% \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ötigt, um beim Zerlegen eines mit -% \texttt{\cmd{\\}[\cs{dots}]} zusammengesetzten Arguments das optionale -% Argument in eckigen Klammern abzutrennen. Das Ergebnis steht anschließend 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änge des längsten -% Elements. \cs{@tempdima} enthält beim Aufruf die minimale Länge. -% \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ängenbegrenzung auf \cs{hsize}} -% \changes{v2.9r}{2004/01/28}{das Argument darf leer sein} -% \begin{macrocode} -\newcommand*{\closing}[1]{{% - \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative\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 überarbeitet} -% Ebenfalls möglich 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über 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ändert} -% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf \texttt{\cs{z@} plus -% 1fil} geändert} -% \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 überarbeiten} -% \changes{v2.8q}{2002/01/31}{Fehlendes \% ergänzt} -% \changes{v2.9o}{2003/04/22}{\cs{parfillskip} angepasst} -% \changes{v2.9q}{2004/04/26}{\cs{parfillskip} auf \texttt{1em plus 1fil} -% geändert} -% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf \texttt{\cs{z@} plus -% 1fil} geändert} -% \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} -% -% -% \subsection{Briefspezifische Feld-Variablen} -% -% \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} -% \begin{KOMAvar}{fromzipcode} -% \changes{v3.03}{2009/03/04}{Neu} -% \begin{KOMAvar}{PPcode} -% \changes{v3.03}{2009/03/04}{Neu} -% \begin{KOMAvar}{PPdatamatrix} -% \changes{v3.03}{2009/03/04}{Neu} -% \begin{KOMAvar}{addresseeimage} -% \changes{v3.03}{2009/03/04}{Neu} -% \changes{v3.03b}{2009/06/30}{Schreibfehler korrigiert} -% Zunächst besitzt die Briefklasse einige Variablen, die von Haus aus nicht -% über einen Ausgabenamen verfügen, weil sie üblicherweise 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ängt. -% \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} -\newkomavar{fromzipcode} -\newkomavar{PPcode} -\newkomavar{PPdatamatrix} -\newkomavar{addresseeimage} -% \end{macrocode} -% \end{KOMAvar} -% \end{KOMAvar} -% \end{KOMAvar} -% \end{KOMAvar} -% \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} -% \begin{KOMAvar}{zipcodeseparator} -% \changes{v3.03}{2009/03/04}{Neu} -% Daneben gibt es einige Trennzeichen. Diese haben ggf. als Ausgabenamen das -% Feld, für 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}{:~} -\newkomavar{zipcodeseparator} -\setkomavar{zipcodeseparator}{\,--\,} -% \end{macrocode} -% \end{KOMAvar} -% \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 üblicherweise vorangestellt wird. Eine Besonderheit stellt dabei -% \texttt{subject} dar. Der Ausgabename beinhaltet dabei nämlich auch die -% Trennzeichen, die hinter dem Namen üblicherweise stehen. Diese sind wiederum -% ein Variable, deren Name der Ausgabename des Feldes ist. Will man also nur -% den Namen aber nicht die Trennzeichen ändern, so ändert man statt dem Namen -% von \texttt{subject} den Namen von \texttt{subjectseparator}. -% -% Ähnlich 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} -% -% \iffalse -% -% \fi -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrknpap.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkpage.dtx b/Master/texmf-dist/source/latex/koma-script/scrkpage.dtx deleted file mode 100644 index 7b11c102124..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkpage.dtx +++ /dev/null @@ -1,804 +0,0 @@ -% \CheckSum{590} -% \iffalse meta-comment -% ====================================================================== -% scrkpage.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkpage.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkpage.dtx -%<*driver> -% \fi -\ProvidesFile{scrkpage.dtx}[2011/08/31 v3.10 KOMA-Script (page style)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkpage.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/06/25}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Seitenstil} -% -% Neben den Definitionen zum Seitenstil in dieser Datei gibt es auch -% noch das Paket \textsf{scrpage2} (siehe \texttt{scrpage.dtx}). -% Es\marginline{Geplant!} ist deshalb davon auszugehen, dass zukünftig die -% Definitionen hier komplett durch \textsf{scrpage2} ersetzt werden und -% \textsf{scrpage2} von den \KOMAScript-Klassen direkt geladen wird. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \subsection{Optionen für die Trennlinien in Kopf und Fuß} -% -% \iffalse -%<*option> -%<*class> -% \fi -% -% \begin{option}{headsepline} -% \changes{v2.95c}{2006/08/11}{BugFix: Argument bei -% \cs{PassOptionsToPackage} vertauscht} -% \changes{v2.97c}{2007/04/19}{Option \texttt{headinclude} wird nicht -% mehr an \textsf{typearea} geschickt} -% \changes{v2.98c}{2008/03/26}{Option \texttt{headinclude} wird gesetzt, -% wobei kein Fehler ausgegeben wird, wenn sie nicht existiert.} -% \begin{option}{headnosepline} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% 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 \textsf{typearea}-Paket mitgeteilt, dass der -% Kopf zum Textbereich zu rechnen ist. Dies geschieht allerdings in -% umgekehrter Richtung nicht. Die Optionen sind also nicht -% symmetrisch. -% \begin{macrocode} -\KOMA@key{headsepline}[true]{% - \KOMA@set@ifkey{headsepline}{@hsl}{#1}% - \KOMA@options{headinclude=#1}{}% -} -\KOMA@DeclareDeprecatedOption{headnosepline}{headsepline=false} -% \end{macrocode} -% \end{option} -% \end{option} -% -% -% \begin{option}{footsepline} -% \changes{v2.0e}{1994/08/14}{bei \cs{PassOptionsToPackage} fehlte -% die Paket-Angabe} -% \changes{v2.95c}{2006/08/11}{BugFix: Argument bei -% \cs{PassOptionsToPackage} vertauscht} -% \changes{v2.97c}{2007/04/19}{Option \texttt{footinclude} wird nicht -% mehr an \textsf{typearea} geschickt} -% \changes{v2.98c}{2008/03/26}{Option \texttt{footinclude} wird gesetzt, -% wobei kein Fehler ausgegeben wird, wenn sie nicht existiert.} -% \begin{option}{footnosepline} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% Der Fußteil 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ß zum Textbereich zu rechnen ist. Auch hier sind die Optionen -% nicht symmetrisch. -% \begin{macrocode} -\KOMA@key{footsepline}[true]{% - \KOMA@set@ifkey{footsepline}{@fsl}{#1}% - \KOMA@options{footinclude=#1}{}% -} -\KOMA@DeclareDeprecatedOption{footnosepline}{footsepline=false} -% \end{macrocode} -% \end{option} -% \end{option} -% -% In früheren Versionen wurde noch die Option \texttt{mpinclude} von -% den Klassen ausgewertet. Dies geschieht jetzt nur noch in -% \textsf{typearea}. Von den Klassen wird dann ggf. auf den dort -% definierten Schalter zugegriffen. Dieses Vorgehen ist deshalb -% sinnvoll, weil die Klassen ausnahmslos das \textsf{typearea}-Paket -% laden. -% -% -% \subsection{Optionen und Anweisungen für leere Seiten} -% -% \begin{macro}{\if@twoside} -% \changes{v2.97c}{2007/07/18}{Schalter passend setzen} -% Die Voreinstellung wird direkt passend gesetzt. -% \begin{macrocode} -%\@twosidefalse -%\@twosidetrue -% \end{macrocode} -% \end{macro} -% -% \iffalse -% -% \fi -% -% \begin{option}{cleardoublepage} -% \changes{v2.95}{2004/08/24}{neuer Schalter} -% \changes{v2.96a}{2007/01/03}{Wert \texttt{current} sollte nun -% funktionieren} -% \changes{v2.98c}{2008/03/06}{verwendet \cs{def} statt \cs{let}, damit die -% Option \texttt{open} funktioniert} -% \begin{option}{cleardoubleempty} -% \changes{v2.8a}{2001/06/18}{neue Option} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{cleardoubleplain} -% \changes{v2.8a}{2001/06/18}{neue Option} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{cleardoublestandard} -% \changes{v2.8a}{2001/06/18}{neue Option} -% \changes{v2.8q}{2001/11/06}{\cs{cleardoublestandardpage} statt -% \cs{cleardoublestandard}} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{macro}{\cleardoublestandardpage} -% \changes{v2.8a}{2001/06/18}{neu} -% \changes{v2.96a}{2007/01/02}{korrekter Ersatzwert gesetzt} -% \begin{macro}{\cleardoubleusingstyle} -% \changes{v2.95}{2004/08/24}{neu} -% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle} -% ersetzt} -% \begin{macro}{\cleardoubleemptypage} -% \changes{v2.8a}{2001/06/18}{neu} -% \begin{macro}{\cleardoubleplainpage} -% \changes{v2.8a}{2001/06/18}{neu} -% \begin{macro}{\cleardoubleoddpage} -% \changes{v3.00}{2008/09/27}{neu} -% \begin{macro}{\cleardoubleoddstandardpage} -% \changes{v2.98c}{2008/03/06}{neu} -% \begin{macro}{\cleardoubleoddusingstyle} -% \changes{v2.98c}{2008/03/06}{neu} -% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle} -% ersetzt} -% \begin{macro}{\cleardoubleoddemptypage} -% \changes{v2.98c}{2008/03/06}{neu} -% \begin{macro}{\cleardoubleoddplainpage} -% \changes{v2.98c}{2001/06/18}{neu} -% \begin{macro}{\cleardoubleevenpage} -% \changes{v3.00}{2008/09/27}{neu} -% \begin{macro}{\cleardoubleevenstandardpage} -% \changes{v2.98c}{2008/03/06}{neu} -% \begin{macro}{\cleardoubleevenusingstyle} -% \changes{v2.98c}{2008/03/06}{neu} -% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle} -% ersetzt} -% \begin{macro}{\cleardoubleevenemptypage} -% \changes{v2.98c}{2008/03/06}{neu} -% \begin{macro}{\cleardoubleevenplainpage} -% \changes{v2.98c}{2001/06/18}{neu} -% \begin{macro}{\cleardoublepage} -% \changes{v2.98c}{2001/06/18}{wird immer neu definiert} -% \changes{v2.98c}{2008/04/11}{neue Voreinstellung für Versionen nach 2.98c} -% Bei Verwendung von \texttt{twoside} und \texttt{openright} bei den -% Klassen \textsf{scrbook} und \textsf{scrreprt} wird bei \cs{chapter} -% implizit \cs{cleardoublepage} ausgeführt. Das führt ggf. -% normalerweise zu einer linken Seite, auf der noch der Kolumnentitel -% des vorherigen Kapitels und eine Seitenzahl steht. Häufig wird -% stattdessen nur eine Seitenzahl oder auch gar nichts gewünscht. Es -% soll also der Seitenstil \texttt{plain} oder \texttt{empty} -% verwendet werden. Dies wird mit den Optionen ermöglicht. Dazu -% werden auch gleich neue Makros definiert: -% \begin{macrocode} -\KOMA@key{cleardoublepage}{% - \begingroup% - \def\@tempc{% - \endgroup% - \KOMA@unknown@keyval{cleardoublepage}{#1}{% - 'current' or any defined pagestyle e.g. 'empty','plain'}% - }% - \ifstr{#1}{current}{% - \def\@tempc{\endgroup% - \def\cleardoublepage{\cleardoublestandardpage}% - \def\cleardoubleoddpage{\cleardoubleoddstandardpage}% - \def\cleardoubleevenpage{\cleardoubleevenstandardpage}% - }% - }{% - \ifnotundefined{ps@#1}{% - \def\@tempc{\endgroup% - \def\cleardoublepage{\cleardoublepageusingstyle{#1}}% - \def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}% - \def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}% - }% - }{}% - }% - \@tempc -} -\newcommand*{\cleardoubleoddstandardpage}{} -\let\cleardoubleoddstandardpage=\cleardoublepage -\newcommand*{\cleardoubleoddpageusingstyle}[1]{\clearpage - {\pagestyle{#1}\cleardoubleoddstandardpage}} -\newcommand*{\cleardoubleoddemptypage}{\cleardoubleoddpageusingstyle{empty}} -\newcommand*{\cleardoubleoddplainpage}{\cleardoubleoddpageusingstyle{plain}} -\newcommand*{\cleardoubleevenstandardpage}{% - \clearpage - \if@twoside\ifodd\c@page - \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi - \fi\fi -} -\newcommand*{\cleardoubleevenpageusingstyle}[1]{\clearpage - {\pagestyle{#1}\cleardoubleevenstandardpage}} -\newcommand*{\cleardoubleevenemptypage}{\cleardoubleevenpageusingstyle{empty}} -\newcommand*{\cleardoubleevenplainpage}{\cleardoubleevenpageusingstyle{plain}} -\newcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage} -\renewcommand*{\cleardoublepage}{% - \expandafter\ifnum \@nameuse{scr@v@2.98c}<\scr@compatibility\relax - \cleardoubleemptypage - \else - \cleardoublestandardpage - \fi -} -\newcommand*{\cleardoubleoddpage}{\cleardoubleoddemptypage} -\newcommand*{\cleardoubleevenpage}{\cleardoubleevenemptypage} -\newcommand*{\cleardoublepageusingstyle}[1]{\clearpage - {\pagestyle{#1}\cleardoublestandardpage}} -\newcommand*{\cleardoubleemptypage}{\cleardoublepageusingstyle{empty}} -\newcommand*{\cleardoubleplainpage}{\cleardoublepageusingstyle{plain}} -%<*class> -\KOMA@DeclareDeprecatedOption{cleardoubleempty}{cleardoublepage=empty} -\KOMA@DeclareDeprecatedOption{cleardoubleplain}{cleardoublepage=plain} -\KOMA@DeclareDeprecatedOption{cleardoublestandard}{cleardoublepage=current} -% -% \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{option} -% \end{option} -% \end{option} -% \end{option} -% -% -% \iffalse -% -%<*body> -%<*class> -% \fi -% -% -% \subsection{Befehle für den Kompatibilitätsmodus} -% -% \begin{macro}{\headincludeon} -% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} -% \begin{macro}{\headincludeoff} -% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} -% \begin{macro}{\headseplineon} -% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} -% \begin{macro}{\headseplineoff} -% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} -% \begin{macro}{\footincludeon} -% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} -% \begin{macro}{\footincludeoff} -% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} -% \begin{macro}{\footseplineon} -% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} -% \begin{macro}{\footseplineoff} -% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen} -% Da die \KOMAScript-Klassen ohnehin nicht mehr auf Kompatibilität zu -% \textsf{Script~2.0} überprüft werden, wurde der Kompatibilitätsmodus -% ersatzlos gestrichen. Dazu gehören nach über zehn Jahren nun auch diese -% Anweisungen. Ehemals waren sie wie folgt definiert: -% \begin{verbatim} -% \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{verbatim} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \subsection{Definition der Standardseitenstile} -% -% \changes{v2.0e}{1994/08/10}{bei \textsf{scrbook} gibt es kein -% einseitiges Layout} -% \changes{v2.3a}{1995/07/08}{da bei \textsf{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ßzeilen für die -% Standardseitenstile \texttt{empty}, \texttt{plain}, -% \texttt{headings} und \texttt{myheadings} festgelegt. Diese sind -% außerdem abhängig davon, ob es sich um einseitiges oder beidseitiges -% Layout handelt. -% -% Im Gegensatz zu den Seitenstilen der Standardklassen steht die -% Seitennummer beim \KOMAScript{} Paket immer in der Fußzeile. -% Außerdem sind Trennlinien zwischen Kopf- und Textbereich sowie -% zwischen Text- und Fußbereich möglich. -% -% Die Kopfzeile wird auch nicht mehr in Großbuchstaben gewandelt. -% -% \changes{v2.2a}{1995/02/07}{bei \textsf{scrbook} und -% \textsf{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ügt} -% \begin{macro}{\set@tempdima@hw} -% \changes{v2.8q}{2002/03/28}{neu (intern)} -% Um nicht ständig das Gleiche schreiben zu müssen wird hier ein -% internes Makro verwendet. -% \begin{macrocode} -\newcommand*{\set@tempdima@hw}{% - \setlength{\@tempdima}{\textwidth}% - \if@mincl - \addtolength{\@tempdima}{\marginparsep}% - \addtolength{\@tempdima}{\marginparwidth}% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\pnumfont} -% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} -% \begin{macro}{\headfont} -% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} -% \begin{macro}{\footfont} -% \changes{v2.98c}{2008/02/14}{Neu} -% Kopf- und Fußzeile sowie die Seitennummer werden in einer speziellen -% Schriftart gesetzt. Die drei Makros hier sind jedoch als interne -% Makros zu betrachten. -% \begin{macrocode} -\newcommand*{\pnumfont}{\normalfont\normalcolor} -\newcommand*{\headfont}{\normalfont\normalcolor\slshape} -\newcommand*{\footfont}{} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{KOMAfont}{pagenumber} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagenumber}} -% \begin{KOMAfont}{pagination} -% \changes{v2.8o}{2001/09/14}{neues Alias-Element} -% \begin{KOMAfont}{pageheadfoot} -% \changes{v2.98c}{2008/02/14}{neues Element} -% \begin{KOMAfont}{pagehead} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagehead}} -% \changes{v2.98c}{2008/02/14}{neuer Alias} -% \begin{macro}{\scr@fnt@wrn@pagehead} -% \changes{v2.8o}{2001/09/14}{neue Warnung für Element \texttt{pagehead}} -% \changes{v2.97c}{2007/09/25}{Warnung geändert} -% \changes{v2.98c}{2008/02/14}{Warnung geändert} -% \begin{KOMAfont}{pagefoot} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagefoot}} -% \changes{v2.98c}{2008/02/14}{nicht länger ein Alias} -% \begin{macro}{\scr@fnt@wrn@pagefoot} -% \changes{v2.98c}{2008/02/14}{Neu (intern)} -% Hier werden die Elemente definiert, deren Schriftart dann geändert -% werden kann. -% \begin{macrocode} -\newcommand*{\scr@fnt@pagenumber}{\pnumfont} -\aliaskomafont{pagination}{pagenumber} -\newcommand*{\scr@fnt@pageheadfoot}{\headfont} -\aliaskomafont{pagehead}{pageheadfoot} -%<*letter> -\newcommand*{\scr@fnt@wrn@pagehead}[1]{% - `pagehead' is only an alias of `pageheadfoot'.\MessageBreak - Font of page foot will also be changed% -} -\newcommand*{\scr@fnt@pagefoot}{\footfont} -% -%<*!letter> -\newcommand*{\scr@fnt@pagefoot}{\footfont} -\newcommand*{\scr@fnt@wrn@pagefoot}[1]{% - This class does not use font element `pagefoot'!\MessageBreak - Maybe you should load package `scrpage2', before\MessageBreak - using this element% -} -% -% \end{macrocode} -% \end{macro} -% \end{KOMAfont} -% \end{macro} -% \end{KOMAfont} -% \end{KOMAfont} -% \end{KOMAfont} -% \end{KOMAfont} -% -% \begin{macro}{\pagemark} -% \changes{v2.95}{2006/03/15}{nun für alle Klassen} -% \changes{v3.05}{2010/02/05}{eine zusätzliche Gruppe eingefügt} -% Das ist die Seitenmarke, die nun für alle Klassen verwendet wird. Damit -% wird es leichter, \textsf{fancyhdr} statt \textsf{scrpage2} zu verwenden. -% \begin{macrocode} -\newcommand*{\pagemark}{{\usekomafont{pagenumber}{% -% \pagename\ % - \thepage}}} -% \end{macrocode} -% \end{macro} -% -% Zurück zur Definition der Seitenstile. Hier gibt es erhebliche -% Unterschiede zwischen der Briefklasse und den anderen Klassen. Das beginnt -% schon damit, dass es spezielle Stile für doppelseitige Briefe nicht gibt. -% \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 -% \textsf{scrartcl} und \texttt{oneside} \cs{subsectionmark} eingefügt}% -% \changes{v2.2a}{1995/02/07}{im einseitigen Seitenstil bei -% \textsf{scrreprt} und \texttt{oneside} \cs{sectionmark} eingefügt}% -% \changes{v2.0e}{1994/08/17}{im einseitigen Seitenstil \cs{markboth} durch -% \cs{markright} ersetzt}% -% \changes{v2.97c}{2007/07/18}{Unterscheidung auf \texttt{twoside} so spät -% wie möglich}% -% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}% -% Hinweis: Die \emph{even}-Varianten werden im einseitigen Satz vom -% \LaTeX-Kern selbst nicht verwendet. Es schadet also nicht, sie trotzdem -% identisch zum doppelseitigen Satz zu definieren. -% \begin{macrocode} -%<*!letter> -\renewcommand*{\ps@plain}{% - \renewcommand*{\@oddhead}{}% - \let\@evenhead\@oddhead - \renewcommand*{\@evenfoot}{% - \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{% - \if@fsl \hrule \vskip 3\p@ \fi - \hb@xt@ \@tempdima{{\pagemark\hfil}}}}}% - \renewcommand*{\@oddfoot}{% - \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% - \if@fsl \hrule \vskip 3\p@ \fi - \hb@xt@ \@tempdima{{\hfil\pagemark - \if@twoside\else\hfil\fi}}}}\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@twoside\else\hfil\fi}}% - \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{{\pagemark\hfil}}}}}% - \renewcommand*{\@oddfoot}{% - \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% - \if@fsl \hrule \vskip 3\p@ \fi - \hb@xt@ \@tempdima{{\hfil\pagemark - \if@twoside\else\hfil\fi}}}}\hss}% -%<*article> - \renewcommand*{\sectionmark}[1]{% - \if@twoside\expandafter\markboth\else\expandafter\markright\fi - {\MakeMarkcase{\ifnum \c@secnumdepth >\z@% - \sectionmarkformat\fi ##1}}{}}% - \renewcommand*{\subsectionmark}[1]{% - \if@twoside - \markright{\MakeMarkcase{\ifnum \c@secnumdepth >\@ne% - \subsectionmarkformat\fi ##1}}% - \fi - }% -%
-%<*report|book> - \renewcommand*{\chaptermark}[1]{% - \if@twoside\expandafter\markboth\else\expandafter\markright\fi - {\MakeMarkcase{\ifnum \c@secnumdepth >\m@ne -% \if@mainmatter - \chaptermarkformat -% \fi - \fi - ##1}}{}% - }% - \renewcommand*{\sectionmark}[1]{% - \if@twoside - \markright{\MakeMarkcase{\ifnum \c@secnumdepth >\z@ - \sectionmarkformat\fi - ##1}}% - \fi - }% -% -}% -\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@twoside\else\hfil\fi}}% - \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{{\pagemark\hfil}}}}}% - \renewcommand*{\@oddfoot}{% - \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% - \if@fsl \hrule \vskip 3\p@ \fi - \hb@xt@ \@tempdima{{\hfil\pagemark - \if@twoside\else\hfil\fi}}}}\hss}% -% \renewcommand*{\chaptermark}[1]{}% -%
\renewcommand*{\subsectionmark}[1]{}% - \renewcommand*{\sectionmark}[1]{}% -} -% -% \end{macrocode} -% \changes{v3.08}{2010/10/28}{\cs{noindent} added before usage of variable -% \texttt{nexthead} or \texttt{nextfoot}} -% \begin{macrocode} -%<*letter> -\renewcommand*{\ps@plain}{% - \renewcommand*{\@oddhead}{% - \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\@evenhead\@oddhead% - \renewcommand*{\@oddfoot}{% - \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\@evenfoot\@oddfoot -} -\newcommand*{\ps@headings}{\let\@mkboth\markboth - \renewcommand*{\@oddhead}{% - \vbox{% - \vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\noindent - \usekomavar{nexthead}}}% - \if@hsl\kern1pt\rule{\textwidth}{.4pt}\fi% - }% - }% - \let\@evenhead\@oddhead - \renewcommand*{\@oddfoot}{% - \parbox[t]{\textwidth}{% - \if@fsl - {% - \raggedright% - \vskip-\baselineskip\vskip.4pt - \hrulefill\\ - }% - \fi - \vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\footfont\noindent - \usekomavar{nextfoot}}}% - }% - }% - \let\@evenfoot\@oddfoot -} -\newcommand*{\ps@myheadings}{% - \ps@headings - \let\@mkboth\@gobbletwo -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \subsection{Festlegung des Seitenstils auf besonderen Seiten} -% -% So etwas gibt es derzeit nicht für Briefe. -% \iffalse -% -%<*!letter> -% \fi -% -% \begin{macro}{\titlepagestyle} -% \changes{v2.8d}{2001/07/05}{neu} -% \begin{macro}{\partpagestyle} -% \changes{v2.8d}{2001/07/05}{neu} -% \changes{v3.00}{2008/08/05}{nicht mehr in \textsf{scrartcl} definiert} -% \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 \cs{thispagestyle} auf -% einen anderen Seitenstil umgeschaltet. Welcher das ist, ist in -% diesem Makros abgelegt und kann bei Bedarf geändert werden. -% Voreingestellt ist der in früheren Versionen fest verdrahtete -% Seitenstil \texttt{plain}. -% \begin{macrocode} -\newcommand*{\titlepagestyle}{plain} -%\newcommand*{\partpagestyle}{plain} -%\newcommand*{\chapterpagestyle}{plain} -%\newcommand*{\indexpagestyle}{plain} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \iffalse -% -%<*class> -% \fi -% -% \subsection{Standardeinstellungen} -% -% Der voreingestellte Seitenstil hängt von der verwendeten Klasse ab: -% \begin{macrocode} -%\pagestyle{plain} -%\pagestyle{headings} -% \end{macrocode} -% Die Nummerierung erfolgt hingegen immer mit arabischen Zahlen: -% \begin{macrocode} -\pagenumbering{arabic} -% \end{macrocode} -% -% Im zweiseitigen Satz wird die letzte Zeile bündig gesetzt, im -% einseitigen und bei Briefen generell jedoch nicht: -% \begin{macrocode} -%<*!letter> -\if@twoside - \flushbottom -\else -% - \raggedbottom -%\fi -% \end{macrocode} -% Im zweispaltigen Satz wird \cs{sloppy} verwendet und die letzte -% Zeile jeweils bündig gesetzt. Briefe sind einspaltig. -% \begin{macrocode} -%<*!letter> -\if@twocolumn - \twocolumn - \sloppy - \flushbottom -\else -% - \onecolumn -%\fi -% \end{macrocode} -% -% -% \iffalse -% -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrkpage.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkpar.dtx b/Master/texmf-dist/source/latex/koma-script/scrkpar.dtx deleted file mode 100644 index e4e8fae257f..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkpar.dtx +++ /dev/null @@ -1,694 +0,0 @@ -% \CheckSum{632} -% \iffalse meta-comment -% ====================================================================== -% scrkpar.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkpar.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkpar.dtx -%<*driver> -% \fi -\ProvidesFile{scrkpar.dtx}[2012/03/13 v3.10b KOMA-Script (paragraphs)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkpar.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/06/25}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Absatzformatierung und -umbruch} -% -% In diesen Bereich gehört alles, was die Absatzformatierung selbst -% betrifft. Dazu kommen dann noch einige Kleinigkeiten aus dem -% Seitenumbruch. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% -% \iffalse -%<*option> -% \fi -% -% \subsection{Optionen für das Absatzlayout} -% -% Ab Version 2.8i können wir auch mit Absatzlayouts umgehen, die einen -% Absatzabstand statt einem Absatzeinzug verlangen. Gesteuert wird -% dies über Optionen und Schalter. -% -% \begin{macro}{\setparsizes} -% \changes{v2.95}{2004/11/05}{neues Macro} -% Über dieses Makro wird die Änderung der Absatzparameter |\parskip|, -% |\parindent|, |\parfillskip| gesetzt. Das erste Argument ist der Einzug, das -% zweite der Abstand und das dritte die Füllung. Aktiviert werden die -% Änderungen wie bei |\fontsize| über |\selectfont|. Obwohl in der -% Voreinstellung absolut gearbeitet wird, wird hier intern -% |\par@updaterelative| verwendet. -% \begin{macrocode} -\newcommand*{\setparsizes}[3]{% - \edef\f@parindent{\the\parindent}% - \edef\f@parskip{\the\parskip}% - \edef\f@parfillskip{\the\parfillskip}% - \def\scr@parindent{#1}% - \def\scr@parskip{#2}% - \def\scr@parfillskip{#3}% - \def\par@update{\let\par@update\default@par@update\par@updaterelative}% -} -% \end{macrocode} -% \begin{macro}{\f@parindent} -% \changes{v2.95}{2004/11/05}{neu (intern)} -% Eingestellter Absatzeinzug. -% \begin{macro}{\f@parskip} -% \changes{v2.8i}{2001/07/22}{neu (intern)} -% \changes{v2.95}{2004/11/05}{Bedeutung geändert} -% Eingestellter Absatzabstand. -% \begin{macro}{\f@parfillskip} -% \changes{v2.8i}{2001/07/22}{neu (intern)} -% \changes{v2.95}{2004/11/05}{Bedeutung geändert} -% Eingestellte Absatzfüllung. -% -% Diese drei Werte werden automatisch bei der Font-Initialisierung eingestellt -% und sind vorher ungültig! -% \begin{macrocode} -\newcommand*{\f@parindent}{\the\parindent} -\newcommand*{\f@parskip}{\the\parskip} -\newcommand*{\f@parfillskip}{\the\parfillskip} -\AtEndOfClass{% - \edef\f@parindent{\the\parindent}% - \edef\f@parskip{\the\parskip}% - \edef\f@parfillskip{\the\parfillskip}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\par@update} -% \changes{v2.95}{2004/11/05}{neues internes Macro} -% Dieses Makro wird später in |\selectfont| die Änderung vornehmen. -% \begin{macro}{\default@par@update} -% \changes{v2.95}{2004/11/05}{neues internes Macro} -% In der Voreinstellung findet keine Änderung statt. Dies wird jedoch durch -% die Auswahl einer entsprechenden Option geändert. -% \begin{macrocode} -\newcommand*{\par@update}{} -\let\par@update\relax -\newcommand*{\default@par@update}{} -\let\default@par@update\relax -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{option}{parskip} -% \changes{v2.8i}{2001/07/22}{neue Option} -% \changes{v2.95}{2006/03/11}{primäre \textsf{keyval}-Option} -% \changes{v3.08}{2010/12/14}{neuer Wert \texttt{never}} -% \begin{option}{parskip-} -% \changes{v2.8l}{2001/08/16}{neue Option} -% \changes{v2.95}{2006/03/11}{obsolet} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{parskip+} -% \changes{v2.8i}{2001/07/22}{neue Option} -% \changes{v2.95}{2006/03/11}{obsolet} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{parskip*} -% \changes{v2.8i}{2001/07/22}{neue Option} -% \changes{v2.95}{2006/03/11}{obsolet} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{halfparskip} -% \changes{v2.8i}{2001/07/22}{neue Option} -% \changes{v2.95}{2006/03/11}{obsolet} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{halfparskip-} -% \changes{v2.8l}{2001/08/16}{neue Option} -% \changes{v2.95}{2006/03/11}{obsolet} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{halfparskip+} -% \changes{v2.8i}{2001/07/22}{neue Option} -% \changes{v2.95}{2006/03/11}{obsolet} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{halfparskip*} -% \changes{v2.8i}{2001/07/22}{neue Option} -% \changes{v2.95}{2006/03/11}{obsolet} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{parindent} -% \changes{v2.8i}{2001/07/22}{neue Option} -% \changes{v2.95}{2006/03/11}{obsolet} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/20}{deprecated} -% Diese neun 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ßerdem dafür, dass -% die letzte Zeile eines Absatzes maximal zu zwei Dritteln gefüllt -% wird. Entsprechend sorgt die \texttt{*}-Variante für eine maximale -% Füllung von drei Vierteln. Die normale Variante sorgt lediglich -% für einen freien Raum von 1\,em. Die \texttt{-}-Variante sorgt für -% überhaupt nichts. -% \begin{macro}{\scr@parindent} -% \changes{v2.95}{2004/11/05}{neu (intern)} -% Der einzustellende Absatzeinzug. -% \begin{macro}{\scr@parskip} -% \changes{v2.8i}{2001/07/22}{neu (intern)} -% \changes{v2.95}{2004/11/05}{Bedeutung geändert} -% Der einzustellende Absatzabstand. -% \begin{macro}{\scr@parfillskip} -% \changes{v2.8i}{2001/07/22}{neu (intern)} -% \changes{v2.95}{2004/11/05}{Bedeutung geändert} -% Die einzustellende Absatzfüllung. -% \begin{macrocode} -\newcommand*{\scr@parindent}{1em} -\newcommand*{\scr@parskip}{\z@} -\newcommand*{\scr@parfillskip}{\z@ \@plus 1fil} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% Neu bei \KOMAScript-3 ist, dass die Optionen wie bei \textsf{scrlttr2} über -% eine eingzige \textsf{keyval} gesetzt werden können. -% \begin{macrocode} -\KOMA@key{parskip}[true]{% - \begingroup - \KOMA@set@ncmdkey{parskip}{@tempa}{% - {never}{0},% - {false}{1},{off}{1},{no}{1},% - {full-}{2},% - {half-}{3},% - {full}{4},{true}{4},{on}{4},{yes}{4},% - {half}{5},% - {full+}{6},% - {half+}{7},% - {full*}{8},% - {half*}{9},% - {relative}{10},% - {absolute}{11}% - }{#1}% - \ifcase\number\@tempa% 0 - \endgroup - \setparsizes{1em}{\z@}{\z@ \@plus 1fil}% - \if@atdocument\AfterKOMAoptions{\selectfont}\fi - \or% 1 - \endgroup - \setparsizes{1em}{\z@ \@plus \p@}{\z@ \@plus 1fil}% - \if@atdocument\AfterKOMAoptions{\selectfont}\fi - \or% 2 - \endgroup - \setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{% - \z@ \@plus 1fil}% - \if@atdocument\AfterKOMAoptions{\selectfont}\fi - \or% 3 - \endgroup - \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{% - \z@ \@plus 1fil}% - \if@atdocument\AfterKOMAoptions{\selectfont}\fi - \or% 4 - \endgroup - \setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{% - 1em \@plus 1fil}% - \if@atdocument\AfterKOMAoptions{\selectfont}\fi - \or% 5 - \endgroup - \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{% - 1em \@plus 1fil}% - \if@atdocument\AfterKOMAoptions{\selectfont}\fi - \or% 6 - \endgroup - \setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{% - .3333\linewidth\@plus 1fil}% - \if@atdocument\AfterKOMAoptions{\selectfont}\fi - \or% 7 - \endgroup - \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{% - .3333\linewidth \@plus 1fil}% - \if@atdocument\AfterKOMAoptions{\selectfont}\fi - \or% 8 - \endgroup - \setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{% - .25\linewidth \@plus 1fil}% - \if@atdocument\AfterKOMAoptions{\selectfont}\fi - \or% 9 - \endgroup - \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{% - .25\linewidth \@plus 1fil}% - \if@atdocument\AfterKOMAoptions{\selectfont}\fi - \or% 10 - \endgroup - \ifx\par@updaterelative\undefined - \expandafter\AtEndOfClass - \else - \expandafter\@firstofone - \fi - {% - \ifx\par@update\default@par@update - \let\par@update\par@updaterelative - \fi - \let\default@par@update=\par@updaterelative - }% - \or%11 - \endgroup - \ifx\par@updaterelative\undefined - \expandafter\AtEndOfClass - \else - \expandafter\@firstofone - \fi - {% - \ifx\par@update\default@par@update - \let\par@update\relax - \fi - \let\default@par@update=\relax - }% - \else% sonst - \endgroup - \fi -} -\KOMA@DeclareDeprecatedOption{parskip-}{parskip=full-} -\KOMA@DeclareDeprecatedOption{parskip+}{parskip=full+} -\KOMA@DeclareDeprecatedOption{parskip*}{parskip=full*} -\KOMA@DeclareDeprecatedOption{halfparskip}{parskip=half} -\KOMA@DeclareDeprecatedOption{halfparskip-}{parskip=half-} -\KOMA@DeclareDeprecatedOption{halfparskip+}{parskip=half+} -\KOMA@DeclareDeprecatedOption{halfparskip*}{parskip=half*} -\KOMA@DeclareDeprecatedOption{parindent}{parskip=false} -% \end{macrocode} -% \end{option} -% \end{option} -% \end{option} -% \end{option} -% \end{option} -% \end{option} -% \end{option} -% \end{option} -% \end{option} -% -% Hierfür\marginline{Geplant!} sollte eine keyval-Option mit Werten definiert -% werden. Dazu dann neue Werte für absolutes oder relatives Verhalten. -% -% \iffalse -% -%<*body> -% \fi -% -% -% \subsection{Abatzformatierung} -% -% \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 (nicht bei Briefen): -% \begin{macrocode} -%<*!letter> -\setlength{\columnsep}{10\p@} -\setlength{\columnseprule}{\z@} -% -% \end{macrocode} -% \end{Length} -% \end{Length} -% -% \begin{macro}{\selectfont} -% \changes{v2.95}{2004/11/05}{neue Änderung} -% Spätestens ab Version~3.0 soll die Möglichkeit bestehen, |\parskip|, -% |\parindent| und |\parfillskip| mit der Schriftgröße automatisch -% anzupassen. Dazu muss |\selectfont| entsprechend erweitert werden. -% \begin{macro}{\scr@selectfont} -% \changes{v2.95}{2006/04/14}{neue Erweiterung} -% \changes{v3.10}{2010/09/28}{\textsf{everysel}-Behandlung korrigiert} -% \changes{v3.10}{2010/09/28}{\textsf{tracefnt}-Behandlung hinzugefügt} -% \begin{macro}{\scr@new@selectfont} -% \changes{v2.95}{2006/04/14}{neue Erweiterung} -% \changes{v3.10}{2010/09/28}{\textsf{everysel}-Behandlung korrigiert} -% \changes{v3.10}{2010/09/28}{\textsf{tracefnt}-Behandlung hinzugefügt} -% \changes{v3.10b}{2011/03/13}{\textsf{everysel} kann jetzt auch während -% \cs{begin}\marg{document} geladen werden} -% Damit das auch bei Verwendung des \textsf{everysel}-Pakets funktioniert, -% wird hier zusätzliche Vorsorge getroffen. -% \begin{macrocode} -\newcommand*{\scr@selectfont}{} -\expandafter\let\expandafter\scr@selectfont\csname selectfont \endcsname -\BeforePackage{everysel}{% - \AtBeginDocument{% - \expandafter\ifx\csname selectfont \endcsname\scr@new@selectfont\else - \ClassWarningNoLine{\KOMAClassName}{discard change of \string\selectfont}% - \fi - \expandafter\let\csname selectfont \endcsname\scr@selectfont - }% -} -\AfterPackage{everysel}{% - \scr@ifundefinedorrelax{@EverySelectfont@Init}{% -% \end{macrocode} -% Jetzt gibt es zwei Möglichkeiten: Entweder wurde ein \textsf{everysel} -% verwendet, bei dem alles anders funktioniert, oder es wurde während -% \cs{begin}\marg{document} geladen. In beiden Fällen versuchen wir einen -% direkten Patch: -% \begin{macrocode} - \expandafter\ifx\csname selectfont \endcsname\scr@new@selectfont - \ClassWarningNoLine{\KOMAClassName}{% - \string\selectfont\space already changed}% - \else - \expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}% - \expandafter\let\expandafter\scr@new@selectfont - \csname selectfont \endcsname - \fi - }{% -% \end{macrocode} -% In diesem Fall muss hingegen indirekt gepatcht werden. -% \begin{macrocode} - \g@addto@macro\@EverySelectfont@Init{% - \expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}% - \expandafter\let\expandafter\scr@new@selectfont - \csname selectfont \endcsname - }% - }% -} -\AfterPackage{tracefnt}{% - \expandafter\let\expandafter\scr@selectfont\csname selectfont \endcsname - \expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}% - \expandafter\let\expandafter\scr@new@selectfont\csname selectfont \endcsname -} -\expandafter\g@addto@macro\csname selectfont \endcsname{\par@update} -\newcommand*{\scr@new@selectfont}{} -\expandafter\let\expandafter\scr@new@selectfont\csname selectfont \endcsname -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\par@updaterelative} -% \changes{v2.95}{2004/11/05}{neues internes Macro} -% Die eigentliche Änderung verbirgt sich in |\par@updaterelative|. Ggf. wird -% |\par@update| zu |\par@updaterelative|. -% \begin{macrocode} -\newcommand*{\par@updaterelative}{% -% \end{macrocode} -% Die neuen Werte werden nur gesetzt, wenn die bisherigen Werten den -% erwarteten Werten entsprechen. Sonst lassen wir lieber die Finger davon, -% weil wir dann davon ausgehen, dass der Anwender die so setzen wollte. -% \begin{macrocode} - \begingroup - \edef\@tempa{\the\parindent}\ifx\@tempa\f@parindent - \aftergroup\parindent@update -%<*trace> - \else - \ClassInfo{\KOMAClassName}{\string\parindent\space not changed}% -% - \fi - \edef\@tempa{\the\parskip}\ifx\@tempa\f@parskip - \aftergroup\parskip@update -%<*trace> - \else - \ClassInfo{\KOMAClassName}{\string\parskip\space not changed}% -% - \fi - \edef\@tempa{\the\parfillskip}\ifx\@tempa\f@parfillskip - \aftergroup\parfillskip@update -%<*trace> - \else - \ClassInfo{\KOMAClassName}{\string\parfillskip\space not changed}% -% - \fi - \endgroup -} -% \end{macrocode} -% \begin{macro}{\parindent@update} -% \changes{v2.95}{2004/11/05}{neues internes Macro} -% \begin{macro}{\parskip@update} -% \changes{v2.95}{2004/11/05}{neues internes Macro} -% \begin{macro}{\parfillskip@update} -% \changes{v2.95}{2004/11/05}{neues internes Macro} -% Ein paar Hilfsmakros. -% \begin{macrocode} -\newcommand*{\parindent@update}{% - \scr@defaultunits\parindent\scr@parindent - \begingroup - \let\@tempb\endgroup - \edef\@tempa{\the\parindent}\ifx\@tempa\f@parindent\else - \def\@tempb{\endgroup\edef\f@parindent{\the\parindent}}% -% \ClassInfo{\KOMAClassName}{\string\parindent=\the\parindent}% - \fi - \@tempb -} -\newcommand*{\parskip@update}{% - \scr@defaultunits\parskip\scr@parskip - \begingroup - \let\@tempb\endgroup - \edef\@tempa{\the\parskip}\ifx\@tempa\f@parskip\else - \def\@tempb{\endgroup\edef\f@parskip{\the\parskip}}% -% \ClassInfo{\KOMAClassName}{\string\parskip=\the\parskip}% - \fi - \@tempb -} -\newcommand*{\parfillskip@update}{% - \scr@defaultunits\parfillskip\scr@parfillskip - \begingroup - \let\@tempb\endgroup - \edef\@tempa{\the\parfillskip}\ifx\@tempa\f@parfillskip\else - \def\@tempb{\endgroup\edef\f@parfillskip{\the\parfillskip}}% -% \ClassInfo{\KOMAClassName}{\string\parfillskip=\the\parfillskip}% - \fi - \@tempb -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\scr@defaultunits} -% \changes{v2.95}{2004/11/05}{neues internes Macro} -% \begin{macro}{\scr@@defaultunits} -% \changes{v2.95}{2004/11/05}{neues internes Macro} -% \begin{macro}{\scr@@@defaultunits} -% \changes{v2.95}{2004/11/05}{neues internes Macro} -% Damit |\par@updaterelative| überhaupt funktionieren kann, wird -% |\scr@defaultunits| benötigt. Dieses Makro arbeitet prinzipiell wie -% |\@defaultunits| bekommt aber Dimension bzw. Skip als erstes und den Wert -% als zweites Argument. Als Besonderheit dürften im Wert auch andere -% Dimensions bzw. Skips vor und nach \texttt{plus} und \texttt{minus} -% verwendet werden. Es sind also auch Angaben der Art "`\texttt{12 plus 1 -% minus 2}"' sowie -% "`\texttt{\string\baselineskip\string\@plus.1\string\baselineskip}"' -% gültig. -% \begin{macrocode} -\newcommand*{\scr@defaultunits}[2]{% - \begingroup - \edef\@tempa{#2}% - \expandafter\scr@@defaultunits\expandafter#1\@tempa plusplus\@nnil - \edef\@tempa{\noexpand\endgroup\noexpand\setlength{\noexpand#1}{\the#1}}% - \@tempa -} -\newcommand*{\scr@@defaultunits}{} -\def\scr@@defaultunits#1#2plus#3plus#4\@nnil{% - \ifx\relax#3\relax - \scr@@@defaultunits#1{}#2minusminus\@nnil - \else - \scr@@@defaultunits#1{#2}#3minusminus\@nnil - \fi -} -\newcommand*{\scr@@@defaultunits}{} -\def\scr@@@defaultunits#1#2#3minus#4minus#5\@nnil{% - \ifx\relax#2\relax - \@defaultunits\@tempskipa#3pt\relax\@nnil - \setlength{#1}{\@tempskipa}% - \else - \@defaultunits\@tempskipa\z@\@plus#3pt\relax\@nnil - \setlength{#1}{\@tempskipa}% - \@defaultunits\@tempskipa#2pt\relax\@nnil - \addtolength{#1}{\@tempskipa}% - \fi - \ifx\relax#4\relax\else - \@defaultunits\@tempskipa\z@\@minus #4pt\relax\@nnil - \addtolength{#1}{\@tempskipa}% - \fi -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% Absatzabstand und Absatzeinzug: -% \begin{macro}{\@list@extra} -% \changes{v2.8q}{2001/11/06}{neu (intern)} -% \changes{v2.95c}{2006/08/03}{\cs{parsep} fixed} -% \begin{macro}{\add@extra@listi} -% \changes{v2.9h}{2002/09/03}{neu (intern)} -% Ab Version 2.8i wird hier optionsabhängig gearbeitet. Dabei müssen -% auch die Befehle bei der Umschaltung der Schriftgröße für \cs{small} -% und \cs{footnotesize} geändert werden. -% \begin{macrocode} -\newcommand*{\@list@extra}{% - \ifdim\parskip>\z@\topsep\z@\parsep\parskip\itemsep\z@\fi -} -\newcommand*{\add@extra@listi}[1]{% - \expandafter\let\csname #1@listi\endcsname=\@listi - \def\@listi{\csname #1@listi\endcsname\@list@extra}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \iffalse -% -%<*body|10pt|11pt|12pt> -% \fi -% \changes{v2.98c}{2008/03/26}{Umstellung für die pt-Dateien} -% \begin{macro}{\@listi} -% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} -% ersetzt} -% \changes{v3.01}{2008/11/13}{\cs{@listi} wird auf jeden Fall ausgeführt} -% \begin{macro}{\@listI} -% \begin{macro}{\@listii} -% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} -% ersetzt} -% \begin{macro}{\@listiii} -% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} -% ersetzt} -% \begin{macro}{\footnotesize} -% \changes{v2.9h}{2002/09/03}{etwas robuster} -% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} -% ersetzt} -% \begin{macro}{\small} -% \changes{v2.9h}{2002/09/03}{etwas robuster} -% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} -% ersetzt} -% \begin{macrocode} -%<10pt|11pt|12pt>\@ifundefined{@list@extra}{}{% - \l@addto@macro{\@listi}{\@list@extra}% - \let\@listI=\@listi - \l@addto@macro{\@listii}{\@list@extra}% - \l@addto@macro{\@listiii}{\@list@extra}% - \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}% - \l@addto@macro{\small}{\protect\add@extra@listi{sml}}% -%<10pt|11pt|12pt>} -%<10pt|11pt|12pt>\@listi -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \iffalse -% -%<*body> -% \fi -% -% -% \subsection{Umbruchsteuerung} -% -% Für die Umbruchsteuerung sind einige Penalties zuständig. Diese sind -% im \LaTeX-Kern definiert. Leider sind \cs{@lowpenalty}, -% \cs{@medpenalty} und \cs{@highpenalty} aber nicht mit -% Voreinstellungen versehen, besitzen einheitlich die Voreinstellung -% 0. Hier werden deshalb die Werte aus den Standardklassen übernommen: -% \begin{macrocode} -\@lowpenalty = 51 -\@medpenalty =151 -\@highpenalty =301 -% \end{macrocode} -% -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrkpar.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkplen.dtx b/Master/texmf-dist/source/latex/koma-script/scrkplen.dtx deleted file mode 100644 index 490a414ebde..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkplen.dtx +++ /dev/null @@ -1,250 +0,0 @@ -% \CheckSum{100} -% \iffalse meta-comment -% ====================================================================== -% scrkplen.dtx -% Copyright (c) Markus Kohm, 2006-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkplen.dtx -% Copyright (c) Markus Kohm, 2006-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkplen.dtx -%<*driver> -% \fi -\ProvidesFile{scrkplen.dtx}[2011/03/20 v3.08b KOMA-Script (pseudo length)] -% \iffalse -\documentclass{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkplen.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2006/03/22}{% -% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} -% -% \section{Pseudo-Längen für Briefe} -% -% Pseudo-Längen wurden für \textsf{scrlttr2} eingeführt, um Längenregister zu -% sparen. Tatsächlich hat das \LaTeX-Team kurz darauf entschieden, dass -% künftig \eTeX{} die empfohlene Maschine für \LaTeX{} sein soll, wodurch die -% Einführung von Pseudo-Längen nachträglich überflüssig wurde. Es gibt sie nun -% aber einmal und aus Gründen der Kompatiblität wird es sie für Briefe auch -% weiterhin geben. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*letter> -% \fi -% -% \iffalse -%<*option> -% \fi -% -% \subsection{Option} -% Das Prinzip der Pseudo-Längen wird nicht durch Optionen beeinflusst. -% -% -% \iffalse -% -%<*body> -% \fi -% -% \subsection{Anweisungen für Pseudo-Längen} -% -% Zu Berechnung der Feldpositionen werden verschiedene Dimensions-Variablen -% benötigt. Um jedoch nicht unnötig viele Längenregister zu verbrauchen, wird -% hier mit einer Pseudo-Längen-Arithmetik gearbeitet. -% -% \begin{macro}{\@newplength} -% \changes{v2.8q}{2001/10/06}{Neu} -% \changes{v2.8q}{2001/10/06}{Kompatibilität zu \texttt{scrlettr.cls} -% aufgegeben} -% Dieses Makro definiert eine neue Pseude-Länge und setzt sie auf den -% Wert 0. Eine Pseudo-Länge ist ein Makro, das eine Länge enthält. -% \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} -% \changes{v2.97c}{2007/09/17}{\cs{dimexpr} statt \cs{number} verwendet, -% wenn \eTeX{} verwendet wird} -% Natürlich muss auf eine solche Pseudo-Länge auch wieder lesend -% zugeriffen werden können. Wir definieren dies hier so, dass es -% außerdem möglich ist, ein Vorzeichen oder einen Faktor zu verwenden. Dafür -% wird allerdings \eTeX{} benötigt. -% \begin{macrocode} -\scr@ifundefinedorrelax{dimexpr}{% - \newcommand*{\useplength}[1]{% - \number \csname ltx@len@#1\endcsname\relax}% -}{% - \newcommand*{\useplength}[1]{% - \dimexpr \csname ltr@len@#1\endcsname\relax}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\setlengthtoplength} -% \changes{v2.8q}{2001/10/06}{Neu} -% Eine echte Länge soll auf das Vielfache einer Pseudo-Länge gesetzt -% werden. Dabei wird der Faktor als optionaler Parameter übergeben. -% Der erste obligatorische Parameter ist die Länge, der zweite -% obligatorische Parameter ist die Pseudo-Länge. -% \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ürlich wird ebenfalls eine Möglichkeit benötigt, einer -% Pseudo-Länge einen Wert zuzuweisen. Dies geschieht unter lokaler -% Anwendung einer Länge, damit sichergestellt ist, dass eine -% Längenangabe übergeben 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ür -% die Pseudo-Länge und nicht für 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ötigt, mit dem zu einer Pseudo-Länge 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} -% -% \iffalse -% -% \fi -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrkplen.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrksect.dtx b/Master/texmf-dist/source/latex/koma-script/scrksect.dtx deleted file mode 100644 index cd2d0d248de..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrksect.dtx +++ /dev/null @@ -1,3064 +0,0 @@ -% \CheckSum{2250} -% \iffalse meta-comment -% ====================================================================== -% scrksect.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrksect.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrksect.dtx -%<*driver> -% \fi -\ProvidesFile{scrksect.dtx}[2012/07/29 v3.11b KOMA-Script (disposition)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrksect.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei - \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/06/26}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Gliederung} -% -% Zur Gliederung gehören neben den üblichen Gliederungsbefehlen -% \cs{chapter} \dots \cs{subparagraph} auch alle Optionen und Befehle, -% die diese Gliederung beeinflussen. Eingeschränkt gehören auch die -% Befehle dazu, die Inhaltsverzeichniseinträge zu den -% Gliederungsbefehlen erzeugen oder unmittelbar formatieren. Diese -% Entscheidung wurde getroffen, weil die Zusammengehörigkeit eher hier -% gesehen wird, als bei den Verzeichnissen selbst. -% -% Briefe haben derzeit keine derartige Gliederung. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*!letter> -% \fi -% -% \iffalse -%<*option> -% \fi -% \subsection{Optionen für die Gliederung} -% -% \iffalse -%<*class> -%<*book|report> -% \fi -% \begin{option}{open} -% \changes{v2.98c}{2008/03/06}{Neue Option} -% Bei \textsf{scrreprt} und \textsf{scrbook} kann per Option eingestellt -% werden, ob Kapitel nur auf linken oder rechten Seiten beginnen dürfen oder -% auf jeder Seite. -% \begin{macro}{\if@openright} -% \begin{macro}{\@openrighttrue} -% \begin{macro}{\@openrightfalse} -% Der Zustand wird dann in einem Schalter und durch umdefinieren von -% \cs{cleardoublestandardpage} gespeichert. -% \begin{macrocode} -\newif\if@openright -%\@openrightfalse -%\@openrighttrue -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macrocode} -\KOMA@key{open}{% - \KOMA@set@ncmdkey{open}{@tempa}{% - {any}{0},% - {right}{1},% - {left}{2}% - }{#1}% - \ifcase \@tempa\relax - \@openrightfalse - \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}% - \or - \@openrighttrue - \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}% - \or - \@openrighttrue - \renewcommand*{\cleardoublestandardpage}{\cleardoubleevenstandardpage}% - \fi -} -% \end{macrocode} -% \end{option} -% \begin{option}{openright} -% \changes{v2.98c}{2008/03/05}{obsolet} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{option}{openany} -% \changes{v2.98c}{2008/03/05}{obsolet} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{macrocode} -\KOMA@DeclareStandardOption{openright}{open=right} -\KOMA@DeclareStandardOption{openany}{open=any} -% \end{macrocode} -% \end{option} -% \end{option} -% \iffalse -% -%% \fi -% -% -% \begin{option}{numbers} -% \changes{v2.98c}{2008/03/07}{Neue Option} -% Dies ist die zentrale Option zur Konfiguration der Nummerierung. Dabei geht -% es primär um die Gliederungsnummern, es sind jedoch auch davon abgeleitete -% Nummern betroffen. -% \begin{macro}{scr@dotchangeatdocument} -% \changes{v2.98c}{2008/03/07}{Neu (intern)} -% Da die Umschaltung zwischen automatischem Endpunkt, immer Endpunkt und kein -% Endpunkt unbedingt \emph{vor} \cs{begin{document}} erfolgen muss, wird eine -% Fehlermeldung ausgegeben, falls das jemand zu einem späteren Zeitpunkt -% probiert. -% \begin{macrocode} -\newcommand*{\scr@dotchangeatdocument}[1]{% - \ClassError{\KOMAClassName}{% - change of end dot feature after \string\begin{document}% - }{% - You've tried to set `numbers=#1' after \string\begin{document},\MessageBreak - but this option is only allowed at the document preamble.\MessageBreak - See KOMA-Script manual for more information about.% - }% -} -% \end{macrocode} -% \end{macro} -% Normalerweise wird automatisch entschieden, ob Nummern mit einem -% Punkt enden müssen oder nicht. Um dies abzuschalten, muss nur der -% gewünschte Zustand eingeschaltet und die Umschaltmöglichkeit -% entfernt werden. Die Umschaltung kann jedoch nicht direkt erfolgen, sondern -% erfolgt zeitverzögert in \cs{begin{document}}. Hier wird nur das Makro -% umgeschaltet, das dort verwendet wird. -% \begin{macrocode} -\KOMA@key{numbers}{% - \KOMA@set@ncmdkey{numbers}{@tempa}{% - {autoendperiod}{0},{autoenddot}{0},{auto}{0},% - {endperiod}{1},{withendperiod}{1},{periodatend}{1},% - {enddot}{1},{withenddot}{1},{dotatend}{1},% - {noendperiod}{2},{noperiodatend}{2},% - {noenddot}{2},{nodotatend}{2}% - }{#1}% - \ifcase \@tempa\relax - \if@atdocument\scr@dotchangeatdocument{#1}\else - \let\scr@altsecnumhook\@empty - \fi - \or - \if@atdocument\scr@dotchangeatdocument{#1}\else - \let\scr@altsecnumhook\scr@altsecnumhooktrue - \fi - \or - \if@atdocument\scr@dotchangeatdocument{#1}\else - \let\scr@altsecnumhook\scr@altsecnumhookfalse - \fi - \fi -} -% \end{macrocode} -% \begin{macro}{\scr@altsecnumhook} -% \changes{v2.98c}{2008/03/07}{Neu (intern)} -% \begin{macro}{\scr@altsecnumhooktrue} -% \changes{v2.98c}{2008/03/07}{Neu (intern)} -% \begin{macro}{\scr@altsecnumhookfalse} -% \changes{v2.98c}{2008/03/07}{Neu (intern)} -% Es werden drei Hilfsmakros benötigt. Das erste davon wird bei -% \cs{begin{document}} ausgeführt (nachdem die \texttt{aux}-Datei gelesen -% wurde!) und schaltet den gewünschten Zustand ein. Dazu wird es per Option -% ggf. auf die eine oder andere Bedeutung umgeschaltet. Im Auto-Fall ist es -% übrigens \cs{@empty}. -% \begin{macrocode} -\newcommand*{\scr@altsecnumhook}{} -\AtBeginDocument{\scr@altsecnumhook} -\newcommand*{\scr@altsecnumhooktrue}{% - \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue -} -\newcommand*{\scr@altsecnumhookfalse}{% - \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% -% \begin{option}{pointednumbers} -% \changes{v2.3h}{1995/01/19}{neue Option} -% \changes{v2.4g}{1996/11/04}{die Option heißt 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} -% \changes{v2.98c}{2008/03/07}{obsolet} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{pointlessnumbers} -% \changes{v2.3h}{1995/01/19}{neue Option} -% \changes{v2.4g}{1996/11/04}{die Option heißt 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} -% \changes{v2.98c}{2008/03/07}{obsolet} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption{pointednumbers}{numbers=enddot} -\KOMA@DeclareDeprecatedOption{pointlessnumbers}{numbers=noenddot} -% \end{macrocode} -% Übrigens weiß ich, wie blödsinnig die Namen der Optionen sind. Aber -% das ist nun nicht mehr zu ändern. -% \end{option} -% \end{option} -% -% -% \begin{option}{chapterprefix} -% \changes{v2.8}{2001/06/15}{neue Option} -% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option} -% \begin{option}{nochapterprefix} -% \changes{v2.8}{2001/06/15}{neue Option} -% \changes{v2.95c}{2006/08/21}{obsolete Option} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \iffalse -%<*book|report> -% \fi -% Normalerweise verwenden \textsf{scrbook} und \textsf{scrreprt} nicht -% die enorm großen Überschriften von \textsf{book} und -% \textsf{report}, die mit einem Absatz "`Kapitel \emph{Nummer}"' -% beginnen. Mit der Option \texttt{chapterprefix} kann dies jetzt -% wieder aktiviert werden. Die Option, zur Deaktivierung heißt -% entsprechend \textsf{nochapterprefix}. -% \begin{macro}{\if@chapterprefix} -% \begin{macro}{\@chapterprefixtrue} -% \begin{macro}{\@chapterprefixfalse} -% Um für Spezialanwendungen auch innerhalb des Dokuments eine -% Umschaltung zu ermöglichen bzw. für die Optionen -% \texttt{appendixprefix} und \texttt{noappendixprefix} erfolgt die -% Umschaltung durch einen Schalter. -% \begin{macrocode} -\newif\if@chapterprefix\@chapterprefixfalse -\KOMA@ifkey{chapterprefix}{@chapterprefix} -\KOMA@DeclareDeprecatedOption{nochapterprefix}{chapterprefix=false} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \iffalse -% -% \fi -% \end{option} -% \end{option} -% -% -% \begin{option}{appendixprefix} -% \changes{v2.8}{2001/06/15}{neue Option} -% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option} -% \begin{option}{noappendixprefix} -% \changes{v2.8}{2001/06/15}{neue Option} -% \changes{v2.95c}{2006/08/21}{obsolete Option} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \iffalse -%<*book|report> -% \fi -% Will man abweichend von der Option \texttt{chapterprefix} die großen -% Überschriften für den Anhang aktivieren oder deaktivieren, so kann man das -% mit dieser Option erreichen. Allerdings setzt diese keinen Schalter, sondern -% ein Zusatzmakro, das auch für andere Zwecke genutzt werden kann. Übrigens -% ist keine der beiden Einstellungen die Voreinstellung! -% \begin{macrocode} -\KOMA@key{appendixprefix}[true]{% - \KOMA@set@ifkey{appendixprefix}{@tempswa}{#1}% - \if@tempswa - \def\appendixmore{\@chapterprefixtrue}% - \else - \def\appendixmore{\@chapterprefixfalse}% - \fi -} -\KOMA@DeclareDeprecatedOption{noappendixprefix}{appendixprefix=false} -% \end{macrocode} -% \iffalse -% -% \fi -% \end{option} -% \end{option} -% -% -% \begin{macro}{\size@part} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, -% wenn es keine Auswirkung auf den Zeilen abstand hat} -% \begin{macro}{\size@partnumber} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, -% wenn es keine Auswirkung auf den Zeilen abstand hat} -% \begin{macro}{\size@chapter} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, -% wenn es keine Auswirkung auf den Zeilen abstand hat} -% \begin{macro}{\size@chapterprefix} -% \changes{v2.96a}{2006/12/02}{neu (intern)} -% \begin{macro}{\size@section} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \begin{macro}{\size@subsection} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \begin{macro}{\size@subsubsection} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \begin{macro}{\size@paragraph} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% \begin{macro}{\size@subparagraph} -% \changes{v2.8o}{2001/09/14}{neu (intern)} -% Diese Makros werden intern von den Elementen benötigt (siehe unten). Darüber -% hinaus werden sie per Option geändert und sind deshalb vor der -% entsprechenden Option zu definieren. -% \begin{macrocode} -\newcommand*{\size@part}{} -\newcommand*{\size@partnumber}{} -%\newcommand*{\size@chapter}{} -%\newcommand*{\size@chapterprefix}{\size@chapter} -\newcommand*{\size@section}{} -\newcommand*{\size@subsection}{} -\newcommand*{\size@subsubsection}{} -\newcommand*{\size@paragraph}{} -\newcommand*{\size@subparagraph}{} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\chapterheadstartvskip} -% \begin{macro}{\chapterheadendvskip} -% Mit diesen Anweisungen wird üblicherweise der Abstand zwischen -% oberem Rand des Textbereichs und der Überschrift bzw. der Abstand -% zwischen der Überschrift und dem Text des Kapitels gesetzt. Man kann -% die Anweisungen aber zusätzlich auch für andere Zwecke -% missbrauchen. Das ist der Grund warum diese Makros keine Längen, -% sondern komplette Anweisungen enthalten. In der Voreinstellung -% enthalten sie jedoch gar nichts. Die tatsächlichen Werte werden -% durch die Optionen festgelegt. -% \begin{macrocode} -\newcommand*{\chapterheadstartvskip}{} -\newcommand*{\chapterheadendvskip}{} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{option}{headings} -% \changes{v2.3h}{1996/01/20}{Größe von \cs{chapter} um eine Stufe -% verringert}% -% \changes{v2.3h}{1996/01/20}{Verwendung von \cs{chapterheadstartvskip} und -% \cs{chapterheadendvskip} an Stelle von festen vertikalen Abständen am -% Anfang und am Ende eines Kapitels}% -% \changes{v2.7c}{2000/01/19}{vertikale Abstände nach der Kapitelüberschrift -% geringfügig verändert und mit Leim versehen, um mit \cs{flushbottom} zu -% besseren Ergebnissen zu gelangen}% -% \changes{v2.98c}{2008/03/10}{Neue Option}% -% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale -% Argument der Gliederungsbefehle} -% Dies ist eine neue zentrale Option für Überschriften. Dabei ergibt sich -% nun auch das Problem, dass die Gesamtmenge der Überschriften mal -% \emph{headings} (Überschriften), mal \emph{sectioning} -% (Abschnittseinteilung) und mal \emph{disposition} (Gliederung) genannt -% wird. Es wäre gut gewesen, sich bei Zeiten Gedanken darüber zu machen, wie -% man das am besten einheitlich nennt. -% \begin{macrocode} -\KOMA@key{headings}{% - \KOMA@set@ncmdkey{headings}{@tempa}{% - {big}{0},% - {normal}{1},% - {small}{2},% -%<*book|report> - {openany}{3},% - {openright}{4},% - {openleft}{5},% - {twolinechapter}{6},{chapterprefix}{6},{chapterwithprefix}{6},% - {chapterwithprefixline}{6},% - {onelinechapter}{7},{nochapterprefix}{7},{chapterwithoutprefix}{7},% - {chapterwithoutprefixline}{7},% - {twolineappendix}{8},{appendixprefix}{8},{appendixwithprefix}{8},% - {appendixwithprefixline}{8},% - {onelineappendix}{9},{noappendixprefix}{9},{appendixwithoutprefix}{9},% - {appendixwithoutprefixline}{9},% -% - {optiontotocandhead}{10},{optiontoheadandtoc}{10},% - {optiontotoc}{11},% - {optiontohead}{12}% - }{#1}% - \ifcase \@tempa\relax -% \end{macrocode} -% Als erstes kümmern wir uns um die drei Größenabstufungen für die -% Überschriften, die \KOMAScript{} bietet, und zwar in der Reihenfolge -% \texttt{big}, \texttt{normal}, \texttt{small}. Es sei darauf hingewiesen, -% dass die Verwendung dieser Option alle Änderungen an -% \cs{chapterheadstartvskip} oder \cs{chapterheadendvskip} oder den -% Font-Elementen für die einzelnen Überschriften aufhebt macht! -% \begin{macrocode} -%<*book|report> - \renewcommand*{\chapterheadstartvskip}{% - \vspace*{2.3\baselineskip}% - }% - \renewcommand*{\chapterheadendvskip}{% - \vspace{1.725\baselineskip - \@plus .115\baselineskip \@minus .192\baselineskip}% - }% -% - \renewcommand*{\size@part}{\Huge}% - \renewcommand*{\size@partnumber}{\huge}% -% \renewcommand*{\size@chapter}{\huge}% - \renewcommand*{\size@section}{\Large}% - \renewcommand*{\size@subsection}{\large}% - \renewcommand*{\size@subsubsection}{\normalsize}% - \renewcommand*{\size@paragraph}{\normalsize}% - \renewcommand*{\size@subparagraph}{\normalsize}% - \or -%<*book|report> - \renewcommand*{\chapterheadstartvskip}{% - \vspace*{2\baselineskip}% - }% - \renewcommand*{\chapterheadendvskip}{% - \vspace{1.5\baselineskip - \@plus .1\baselineskip \@minus .167\baselineskip}% - }% -% - \renewcommand*{\size@part}{\huge}% - \renewcommand*{\size@partnumber}{\huge}% -%<*book|report> - \renewcommand*{\size@chapter}{\LARGE}% - \renewcommand*{\size@section}{\Large}% - \renewcommand*{\size@subsection}{\large}% -% -%<*article> - \renewcommand*{\size@section}{\large}% - \renewcommand*{\size@subsection}{\normalsize}% -%
- \renewcommand*{\size@subsubsection}{\normalsize}% - \renewcommand*{\size@paragraph}{\normalsize}% - \renewcommand*{\size@subparagraph}{\normalsize}% - \or -%<*book|report> - \renewcommand*{\chapterheadstartvskip}{% - \vspace*{1.8\baselineskip}% - }% - \renewcommand*{\chapterheadendvskip}{% - \vspace{1.35\baselineskip - \@plus 0.09\baselineskip \@minus .15\baselineskip}% - }% -% - \renewcommand*{\size@part}{\LARGE}% - \renewcommand*{\size@partnumber}{\LARGE}% -%<*book|report> - \renewcommand*{\size@chapter}{\Large}% - \renewcommand*{\size@section}{\large}% -% -%<*article> - \renewcommand*{\size@section}{\normalsize}% -%
- \renewcommand*{\size@subsection}{\normalsize}% - \renewcommand*{\size@subsubsection}{\normalsize}% - \renewcommand*{\size@paragraph}{\normalsize}% - \renewcommand*{\size@subparagraph}{\normalsize}% -% \end{macrocode} -% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die -% Möglichkeit, auch hierüber die Optionen \texttt{open=any}, -% \texttt{open=right} und \texttt{open=left} zu setzen. -% \begin{macrocode} - \or -%<*book|report> - \KOMA@options{open=any}{}% -%
- \or -%<*book|report> - \KOMA@options{open=right}{}% -% - \or -%<*book|report> - \KOMA@options{open=left}{}% -% -% \end{macrocode} -% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die -% Möglichkeit, auch hierüber die Optionen \texttt{chapterprefix} und -% \texttt{appendixprefix} zu setzen. -% \begin{macrocode} - \or -%<*book|report> - \KOMA@options{chapterprefix=true}{}% -% - \or -%<*book|report> - \KOMA@options{chapterprefix=false}{}% -% - \or -%<*book|report> - \KOMA@options{appendixprefix=true}{}% -% - \or -%<*book|report> - \KOMA@options{appendixprefix=false}{}% -% -% \end{macrocode} -% Ab Version~3.10 wird über diese Option auch noch die Erweiterung für das -% optionale Argument der Gliederungsüberschriften aktiviert und gesteuert. -% \begin{macrocode} - \or - \scr@activate@xsection{3}% - \or - \scr@activate@xsection{2}% - \or - \scr@activate@xsection{1}% - \fi -} -% \end{macrocode} -% \end{option} -% -% \begin{option}{bigheadings} -% \changes{v2.3h}{1996/01/20}{neue Option} -% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei -% Verwendung des alten, falschen Namens wird ein Fehler -% ausgegeben} -% \changes{v2.98c}{2008/03/10}{obsolet} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{macro}{\@bigheadings} -% \changes{v2.98c}{2008/03/10}{entfernt} -% \begin{option}{normalheadings} -% \changes{v2.3h}{1996/01/20}{neue Option} -% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei -% Verwendung des alten, falschen Namens wird ein Fehler -% ausgegeben} -% \changes{v2.98c}{2008/03/10}{obsolet} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{macro}{\@normalheadings} -% \changes{v2.98c}{2008/03/10}{entfernt} -% \begin{option}{smallheadings} -% \changes{v2.3h}{1996/01/20}{neue Option} -% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei -% Verwendung des alten, falschen Namens wird ein Fehler -% ausgegeben} -% \changes{v2.98c}{2008/03/10}{obsolet} -% \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{macro}{\@smallheadings} -% \changes{v2.98c}{2008/03/10}{entfernt} -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption{bigheadings}{headings=big} -\KOMA@DeclareDeprecatedOption{normalheadings}{headings=normal} -\KOMA@DeclareDeprecatedOption{smallheadings}{headings=small} -% \end{macrocode} -% \end{macro} -% \end{option} -% \end{macro} -% \end{option} -% \end{macro} -% \end{option} -% -% \begin{macro}{\scr@activate@xsection} -% \changes{v3.10}{2011/08/30}{neu (intern)} -% Hiermit wird die Erweiterung für das optionale Argument der -% Gliederungsbefehle eingeschaltet. -% \begin{macro}{\scr@osectarg} -% Für die nicht per \cs{@startsection} implementierten Befehle geht das -% einfach durch Umschaltung von \cs{scr@osectarg}. Bei 0 ist die Aktivierung -% nicht aktiv. Bei 1 landet das optionale Argument hingegen im Kopf, bei 2 -% im Inhaltsverzeichnis und bei 3 in beiden. Die Voreinstellung ist deshalb -% ebenfalls 0. -% \begin{macrocode} -\newcommand*{\scr@osectarg}{0} -\newcommand*{\scr@activate@xsection}[1]{% - \renewcommand*{\scr@osectarg}{#1}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \iffalse -% -% -%<*body> -% \fi -% -% -% \subsection{Grobeinteilung von Büchern} -% \iffalse -%<*class> -%<*book> -% \fi -% -% \begin{macro}{\if@mainmatter} -% \begin{macro}{\@mainmattertrue} -% \begin{macro}{\@mainmatterfalse} -% \changes{v2.3a}{1995/07/08}{\cs{if@mainmatter} Anforderung -% verschoben} -% Über 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} -% -% \begin{macro}{\frontmatter} -% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten} -% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten} -% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt -% \cs{cleardoublepage}} -% Der Vorspann enthält bei Büchern oftmals Inhaltsverzeichnis, Vorwort -% und dergleichen und wird mit kleinen römischen Seitenzahlen -% versehen. -% \begin{macrocode} -\newcommand*\frontmatter{% - \if@twoside\cleardoubleoddpage\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} -% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt -% \cs{cleardoublepage}} -% Der Hauptteil ist das Fleisch der Bücher. -% \begin{macrocode} -\newcommand*\mainmatter{% - \if@twoside\cleardoubleoddpage\else\clearpage\fi - \@mainmattertrue\pagenumbering{arabic}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\backmatter} -% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt -% \cs{cleardoublepage}} -% 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\cleardoubleoddpage\else\clearpage\fi\@mainmatterfalse -} -% \end{macrocode} -% \end{macro} -% \iffalse -% -% \fi -% -% -% \subsection{Anhang} -% \begin{macro}{\appendix} -% Wird der Anhang aktiviert, so werden Kapitel zukünftig mit Buchstaben -% nummeriert. -% \changes{v2.2d}{1995/05/28}{\textsf{scrartcl} benötigt keinen -% Zähler für \cs{chapter}} -% \changes{v2.3c}{1995/08/06}{alternative Nummerierung 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änger ausgeführt} -% \changes{v2.8o}{2001/09/19}{\cs{par} eingefügt} -% \changes{v2.95}{2006/07/04}{\cs{newcommand*} durch \cs{gdef} ersetzt} -% \changes{v2.95}{2006/07/04}{Ausführung von \cs{appendixmore} vereinfacht} -% \begin{macro}{\appendixmore} -% \cs{appendixmore} kann als \emph{hook} verwendet werden. -% \begin{macrocode} -\newcommand*\appendix{\par% -%<*article> - \setcounter{section}{0}% - \setcounter{subsection}{0}% - \gdef\thesection{\@Alph\c@section}% -%
-%<*report|book> - \setcounter{chapter}{0}% - \setcounter{section}{0}% - \gdef\@chapapp{\appendixname}% - \gdef\thechapter{\@Alph\c@chapter}% -%
- \csname appendixmore\endcsname -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \subsection{Definitionen für Seitenstile} -% -% \begin{macro}{\chaptermark} -% Da \cs{chapter} nicht mit Hilfe von \cs{@startsection} definiert -% wird, wird auch \cs{chaptermark} nicht automatisch definiert. Es -% wird aber in den Seitenstilen benötigt bzw. umdefiniert. Also hier -% vorsorglich eine Dummy-Definition: -% \begin{macrocode} -%\newcommand*\chaptermark[1]{} -% \end{macrocode} -% \end{macro} -% -% -% \subsection{Der Automatismus für den Punkt in der Nummerierung} -% -% Nach Duden 20.~Auflage, Regel~5 wird in der Gliederung kein Punkt -% gesetzt, wenn diese rein mit arabischen Zahlen erfolgt. Nach Regel~6 -% folgt jedoch ein Punkt, wenn die Gliederung auch römische Zahlen -% oder Großbuchstaben enthält. Aus Konsistenzgründen muss der Punkt in -% diesem Fall immer gesetzt werden. \KOMAScript{} bietet dafür einen -% Automatismus. -% -% \begin{macro}{\if@altsecnumformat} -% \changes{v2.3c}{1995/08/06}{neuer Schalter} -% \begin{macro}{\@altsecnumformattrue} -% \begin{macro}{\@altsecnumformatfalse} -% Dieses Schalter wird für die Umschaltung auf Duden-Regel~6 bei der -% Numerierung benötigt. -% \begin{macro}{\if@autodot} -% \changes{v2.8e}{2001/07/10}{neuer Schalter} -% \begin{macro}{\@autodottrue} -% \changes{v3.00}{2008/10/07}{arbeitet nun gobal} -% \begin{macro}{\@autodotfalse} -% \changes{v3.00}{2008/10/07}{arbeitet nun gobal} -% Damit die Umschaltung auch wieder zurück auf Regel~5 automatisch -% erfolgen kann, wird ein zweiter Schalter benötigt. -% \begin{macrocode} -\newif\if@altsecnumformat\@altsecnumformatfalse -\newif\if@autodot -\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue} -\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse} -\@autodotfalse -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\@maybeautodot} -% \changes{v2.8e}{2001/07/10}{neu (intern)} -% Ob der automatische Punkt aktiviert werden muss, wird aufgrund der -% Darstellung eines Zählers entschieden. Diese wird dem Makro als -% Argument übergeben (\cs{thepart}, \cs{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 (intern)} -% \changes{v3.00}{2008/10/07}{neuerdings überflüssige \cs{aftergroup} -% entfernt} -% Die expandierte Darstellung wird dann auf Darstellungsbefehle für -% Zähler gescannt. -% \begin{macrocode} -\newcommand*{\@@maybeautodot}[1]{% - \ifx #1\@stop\let\@@maybeautodot\relax - \else - \ifx #1\Alph \@autodottrue\fi - \ifx #1\alph \@autodottrue\fi - \ifx #1\Roman \@autodottrue\fi - \ifx #1\roman \@autodottrue\fi - \ifx #1\@Alph \@autodottrue\fi - \ifx #1\@alph \@autodottrue\fi - \ifx #1\@Roman \@autodottrue\fi - \ifx #1\@roman \@autodottrue\fi - \ifx #1\romannumeral \@autodottrue\fi - \fi - \@@maybeautodot -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\scr@sect} -% \changes{v3.10}{2011/08/30}{entfällt} -% \begin{macro}{\@sect} -% \changes{v3.10}{2011/08/30}{Vollständige Neudefinition zur Realisierung -% der Erweiterung für das optionale Argument} -% \changes{v3.10}{2011/08/30}{Verwendung von -% \cs{csname}\texttt{add\#1tocentry}\cs{endcsname} -% bzw. \cs{addtocentrydefault}} -% Damit auch alle mit \cs{@startsection} definierten Gliederungsebenen -% bei der Entscheidung berücksichtigt werden, muss ein internes Makro -% des \LaTeX-Kerns erweitert werden. Für die Ebenen \cs{part} und -% \cs{chapter} wird der Test direkt in der Definition der Befehle -% erledigt. -% \begin{macrocode} -\def\@tempa#1#2#3#4#5#6[#7]#8{% - \ifnum #2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{#1}% - \protected@edef\@svsec{\@seccntformat{#1}\relax}% - \fi - \@tempskipa #5\relax - \ifdim \@tempskipa>\z@ - \begingroup - #6{% - \@hangfrom{\hskip #3\relax\@svsec}% - \interlinepenalty \@M #8\@@par}% - \endgroup - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}% - \else - \def\@svsechd{% - #6{\hskip #3\relax - \@svsec #8}% - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}}% - \fi - \@xsect{#5}} -\ifx\@sect\@tempa\else - \ClassWarning{\KOMAClassName}{% - Unexpected definition of \string\@sect!\MessageBreak - Please send an information about this to\MessageBreak - the KOMA-Script maintainer!\MessageBreak - Maybe LaTeX will be broken by the redefinition\MessageBreak - of \string\@sect\space}% -\fi -%\ClassInfo{\KOMAClassName}{redefining LaTeX kernel macro \string\@sect} -\def\@sect#1#2#3#4#5#6[#7]#8{% - \ifnum \scr@osectarg=\z@ - \@scr@tempswafalse - \else - \scr@istest#7=\@nil - \fi - \if@scr@tempswa - \setkeys{KOMAarg.section}{tocentry={#8},head={#8},#7}% - \else - \ifcase \scr@osectarg\relax - \setkeys{KOMAarg.section}{tocentry={#7},head={#7}}% - \or - \setkeys{KOMAarg.section}{tocentry={#8},head={#7}}% - \or - \setkeys{KOMAarg.section}{tocentry={#7},head={#8}}% - \or - \setkeys{KOMAarg.section}{tocentry={#7},head={#7}}% - \fi - \fi - \ifnum #2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{#1}% - \expandafter\@maybeautodot\csname the#1\endcsname - \protected@edef\@svsec{\@seccntformat{#1}\relax}% - \fi - \@tempskipa #5\relax - \ifdim \@tempskipa>\z@ - \begingroup - #6{% - \@hangfrom{\hskip #3\relax\@svsec}% - \interlinepenalty \@M #8\@@par}% - \endgroup -% \ClassInfo{\KOMAClassName}{head=`\scr@ds@head'}% - \expandafter\csname #1mark\expandafter\endcsname\expandafter{\scr@ds@head}% -% \ClassInfo{\KOMAClassName}{tocentry=`\scr@ds@tocentry'}% - \ifx\scr@ds@tocentry\@empty\else - \scr@ifundefinedorrelax{add#1tocentry}{% - \expandafter\global\expandafter\def - \csname add#1tocentry\endcsname##1##2{% - \addtocentrydefault{#1}{##1}{##2}% - }% - }{}% - \ifnum #2>\c@secnumdepth - \csname add#1tocentry\endcsname{}{\scr@ds@tocentry}% - \else - \csname add#1tocentry\endcsname{\csname the#1\endcsname}{% - \scr@ds@tocentry}% - \fi - \fi - \else - \def\@svsechd{% - #6{\hskip #3\relax - \@svsec #8}% -% \ClassInfo{\KOMAClassName}{head=`\scr@ds@head'}% - \expandafter\csname #1mark\expandafter\endcsname\expandafter{% - \scr@ds@head}% -% \ClassInfo{\KOMAClassName}{tocentry=`\scr@ds@tocentry'}% - \ifx\scr@ds@tocentry\@empty\else - \scr@ifundefinedorrelax{add#1tocentry}{% - \expandafter\global\expandafter\def - \csname add#1tocentry\endcsname####1####2{% - \addtocentrydefault{#1}{####1}{####2}% - }% - }{}% - \ifnum #2>\c@secnumdepth - \csname add#1tocentry\endcsname{}{\scr@ds@tocentry}% - \else - \csname add#1tocentry\endcsname{\csname the#1\endcsname}{% - \scr@ds@tocentry}% - \fi - \fi - }% - \fi - \@xsect{#5}% -} -% \end{macrocode} -% \begin{macro}{\scr@ds@tocentry} -% \changes{v3.10}{2011/08/30}{neu (intern)} -% \begin{macro}{\scr@ds@head} -% \changes{v3.10}{2011/08/30}{neu (intern)} -% \begin{macro}{\if@scr@tempswa} -% \changes{v3.10}{2011/08/30}{neu (intern)} -% \begin{macro}{\scr@istest} -% \changes{v3.10}{2011/08/30}{neu (intern)} -% Für die Realisierung werden noch ein paar Key-Value-Definitionen und ein -% paar Hilfsmakros benötigt: -% \begin{macrocode} -\DefineFamily{KOMAarg} -\DefineFamilyMember[.section]{KOMAarg} -\DefineFamilyKey[.section]{KOMAarg}{tocentry}{\def\scr@ds@tocentry{#1}} -\DefineFamilyKey[.section]{KOMAarg}{head}{\def\scr@ds@head{#1}} -\newcommand*\scr@ds@tocentry{} -\newcommand*\scr@ds@head{} -\newcommand*{\scr@istest}{} -\def\scr@istest#1=#2\@nil{% - \ifx\relax#2\relax\@scr@tempswafalse\else\@scr@tempswatrue\fi -} -\newif\if@scr@tempswa -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% Dabei soll die Umstellung des Punktes 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} -% \changes{v2.95}{2004/01/15}{es wird erst unmittelbar vor dem Schließen -% der Haupt-aux-Datei in diese geschrieben} -% \changes{v2.96a}{2006/12/07}{es wird \cs{immediate} geschrieben} -% \begin{macrocode} -\BeforeClosingMainAux{% - \if@autodot\if@filesw\immediate\write\@mainaux{% - \string\global\string\@altsecnumformattrue}% - \fi\fi} -% \end{macrocode} -% -% \begin{macro}{\autodot} -% \changes{v2.7}{2001/01/03}{neu} -% Dieses Makro setzt dann den Punkt nach Bedarf. -% \begin{macrocode} -\newcommand*\autodot{\if@altsecnumformat.\fi} -% \end{macrocode} -% \end{macro} -% -% -% \subsection{Zähler für die Gliederungsebenen} -% -% \begin{Counter}{secnumdepth} -% Dieser Zähler gibt an, bis zu welcher Ebene die -% Gliederungsüberschriften nummeriert werden. -% \begin{macrocode} -%\setcounter{secnumdepth}{2} -%
\setcounter{secnumdepth}{3} -% \end{macrocode} -% \end{Counter} -% -% \begin{Counter}{part} -% \begin{macro}{\thepart} -% \begin{macro}{\partformat} -% \changes{v2.3c}{1995/08/06}{Duden Regel 6} -% \changes{v2.5f}{1999/02/14}{überflüssiges Leerzeichen am Ende -% entfernt} -% \changes{v2.7h}{2001/04/22}{verlorenen Backslash in \cs{autodot} -% wieder eingefügt} -% \begin{Counter}{chapter} -% \begin{macro}{\thechapter} -% \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ügt} -% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt -% \cs{chapappifprefix}} -% \changes{v2.96a}{2006/12/02}{\cs{mbox} eingefügt, um \cs{caps} zu -% ermöglichen} -% \begin{macro}{\chaptermarkformat} -% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer -% erhöht} -% \changes{v2.3c}{1995/08/06}{Duden Regel 6} -% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingefügt} -% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt -% \cs{chapappifprefix}} -% \changes{v3.03a}{2009/04/03}{Tilde durch \cs{nobreakspace} ersetzt, um die -% Kompatibilität mit Spanisch zu verbessern} -% \begin{Counter}{section} -% \begin{macro}{\thesection} -% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil} -% \changes{v3.03b}{2009/06/09}{\cs{relax} im Kompatibilitätstest durch ein -% Leerzeichen ersetzt, obwohl das die Wartbarkeit verschlechtert, aber -% \textsf{hyperref} hat mit dem \cs{relax} ein nicht dokumentieres Problem} -% \begin{macro}{\sectionmarkformat} -% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer -% erhöht} -% \changes{v2.3c}{1995/08/06}{Duden Regel 6} -% \begin{Counter}{subsection} -% \begin{macro}{\thesubsection} -% \begin{macro}{\subsectionmarkformat} -% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer -% erhöht} -% \changes{v2.3c}{1995/08/06}{Duden Regel 6} -% \begin{Counter}{subsubsection} -% \begin{macro}{\thesubsubsection} -% \begin{Counter}{paragraph} -% \begin{macro}{\theparagraph} -% \begin{Counter}{subparagraph} -% \begin{macro}{\thesubparagraph} -% Jede Gliederungsebene benötigt einen Zähler für die -% Gliederungsnummer und eine Darstellung des Zählers -% (\cs{the\dots}). Desweiteren wird eine Formatierung des Zählers in -% den Gliederungsüberschriften (\texttt{\bslash\dots format}) und eine -% Formatierung des Zählers in der Kopfzeile -% (\texttt{\bslash\dots markformat}) benötigt. -% \begin{macrocode} -\newcounter{part} -\renewcommand*{\thepart}{\@Roman\c@part} -\newcommand*{\partformat}{\partname~\thepart\autodot} -%<*book|report> -\newcounter{chapter} -\renewcommand*{\thechapter}{\@arabic\c@chapter} -\newcommand*{\chapterformat}{% - \mbox{\chapappifchapterprefix{\nobreakspace}\thechapter\autodot\enskip}% -} -\newcommand*\chaptermarkformat{\chapappifchapterprefix{\ }% - \thechapter\autodot\enskip} -\newcounter{section}[chapter] -\renewcommand*\thesection{% -%<*book> - \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d} % the space before this - % comment should be \relax but hyperref has a - % not documented problem with \relax - \if@mainmatter\thechapter.\fi - \else -% - \thechapter.% -% \fi - \@arabic\c@section -} -\newcommand*\sectionmarkformat{\thesection\autodot\enskip} -% -%<*article> -\newcounter{section} -\renewcommand*{\thesection}{\@arabic\c@section} -\newcommand*\sectionmarkformat{\thesection\autodot\enskip} -%
-\newcounter{subsection}[section] -\renewcommand*{\thesubsection}{\thesection.\@arabic\c@subsection} -%<*article> -\newcommand*\subsectionmarkformat{\thesubsection\autodot\enskip} -%
-\newcounter{subsubsection}[subsection] -\renewcommand*{\thesubsubsection}{% - \thesubsection.\@arabic\c@subsubsection -} -\newcounter{paragraph}[subsubsection] -\renewcommand*{\theparagraph}{\thesubsubsection.\@arabic\c@paragraph} -\newcounter{subparagraph}[paragraph] -\renewcommand*{\thesubparagraph}{% - \theparagraph.\@arabic\c@subparagraph -} -% \end{macrocode} -% \begin{macro}{\@seccntformat} -% \changes{v2.3c}{1995/08/06}{CJK erweitert} -% \changes{v2.9p}{2004/01/07}{\cs{protect} eingefügt} -% \changes{v2.97}{2007/01/24}{Workaround für das blöde \cs{protect}} -% \begin{macro}{\othersectionlevelsformat} -% \changes{v2.7}{2000/01/03}{neu} -% \changes{v2.7}{2000/01/03}{\cs{quad} durch \cs{enskip} ersetzt} -% \changes{v2.7i}{2001/05/17}{\cs{let} durch \cs{def} ersetzt} -% \changes{v2.97}{2007/01/24}{statt einem Argument jetzt drei} -% Bei den Ebenen ab \cs{section} erfolgt die Formatierung der -% Gliederungnummer in der Überschrift mit einer gemeinsamen -% Anweisung. Die interne Anweisung \cs{@seccntformat} wird dabei von -% \LaTeX-Kern verwendet und muss umdefiniert werden, um eine -% entsprechende Anweisung auf Anwenderebene verfügbar zu haben. -% Ab Version 2.9p wurde in \cs{@seccntformat} ein \cs{protect} vor -% \cs{othersectionlevelsformat} eingefügt. Damit wurde es für den Benutzer -% deutlich einfacher, die Anweisung \cs{othersectionlevelsformat} -% umzudefinieren. Dafür war dadurch aber \cs{the\dots} nicht mehr -% expandiert. Das wiederum gab Probleme, wenn \cs{@seccntformat} für den -% \cs{mark}-Mechanismus genutzt wurde. Deshalb hat -% \cs{othersectionlevelsformat} ab Version 2.97 drei Argumente statt nur -% eines. Das zweite Argument sollte vom Anwender ignoriert werden, es -% existiert nur, um die Kompatibitlität Umdefinitionen zu erhalten, bei denen -% \cs{othersectionlevelsformat} nur ein Argument besitzt. Das dritte Argument -% ist die \cs{the\dots}-Anweisung. Das zweite Argument funktioniert so, das es -% das dritte Argument frisst, falls \cs{othersectionlevelsformat} nur ein -% Argument liest. -% \begin{macrocode} -\newcommand*{\othersectionlevelsformat}[3]{#3\autodot\enskip} -\renewcommand*{\@seccntformat}[1]{% - \protect\othersectionlevelsformat{#1}{% - \expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{Counter} -% \end{macro} -% \end{Counter} -% \end{macro} -% \end{Counter} -% \end{macro} -% \end{macro} -% \end{Counter} -% \end{macro} -% \end{macro} -% \end{Counter} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{Counter} -% \end{macro} -% \end{macro} -% \end{Counter} -% -% -% \changes{v2.8e}{2001/07/10}{\cs{@thepart} entfernt} -% \changes{v2.8e}{2001/07/10}{\cs{@maybeasf} entfernt} -% -% -% \subsection{Namen für die Gliederung} -% -% \begin{macro}{\partname} -% \begin{macro}{\chaptername} -% \begin{macro}{\abstractname} -% Diese Makros enthalten die Namen der Gliederungsebenen \cs{part} und -% \cs{chapter}, sowie den Namen der Zusammenfassung: -% \begin{macrocode} -\newcommand*\partname{Part} -%\newcommand*\chaptername{Chapter} -%\newcommand*\abstractname{Abstract} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\appendixname} -% Der Name des Anhangs. -% \begin{macrocode} -\newcommand*\appendixname{Appendix} -% \end{macrocode} -% \end{macro} -% -% \iffalse -%<*book|report> -% \fi -% \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} -% Das in \cs{chapterformat} verwendete Makro -% \cs{chapappifchapterprefix} setzt abhängig von \cs{if@chapterprefix} -% noch das Makro \cs{chapapp} gefolgt vom obliatorischen Argument. -% \cs{chapapp} macht \cs{@chapapp} auf Anwenderebene verfügbar. Der -% Vorteil des neuen \cs{chapappifchapterprefix} gegenüber dem alten -% \cs{chapappifprefix} ist, dass nun beim Umdefinieren von -% \cs{chapterformat} und \cs{chaptermarkformat} wieder -% \cs{renewcommand} verwendet werden kann und beim Umschalten in den -% Anhang die Kopfzeile korrekt ist, weil das Makro nun nicht mehr -% geschützt ist, sondern direkt expandiert. -% \begin{macrocode} -\newcommand*{\chapappifprefix}[1][]{% - \ClassWarning{\KOMAClassName}{% - 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} -% \begin{macro}{\@chapapp} -% Dieses Makro enthält den Kapitelname (\cs{chaptername}), der sich im -% Anhang üblicherweise ändert (\cs{appendixname}). -% \begin{macrocode} -\newcommand*\@chapapp{\chaptername} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \iffalse -% -% \fi -% -% \subsection{Die Gliederungsbefehle} -% -% \changes{v2.3h}{1996/01/20}{Größenbefehle in den Überschriften -% variabilisiert} -% -% \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ömischer -% 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äambel über der Überschrift -% hinzugefügt} -% \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ür \textsf{scrartcl} \cs{markboth} -% zum Löschen der Kolumnentitel durch \cs{sectionmark} ersetzt} -% \changes{v2.5e}{1998/07/17}{\cs{numberline} verwendet, damit die -% reservierte Part-Nummern-Breite in \cs{l@part} auch wirklich -% verwendet wird} -% \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.95}{2002/08/13}{\cs{centering} und \cs{@parskipfalse}% -% \cs{@parskip@indent} vertauscht} -% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und } -% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} -% ersetzt} -% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addparttocentry}} -% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale -% Argument der Gliederungsbefehle} -% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird -% stattdessen \cs{@mkboth}{}{} aufgerufen.} -% \begin{macro}{\@spart} -% \changes{v2.4n}{1997/05/28}{in der Sternvariante \cs{chaptermark} -% bzw. \cs{sectionmark} eingefügt, um die Kolumnentitel zu -% löschen} -% \changes{v2.6a}{2000/01/20}{zum Löschen der Kolumnentitel wird -% nun \cs{@mkboth} verwendet} -% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} -% \changes{v2.95}{2002/08/13}{\cs{centering} und -% \cs{@parskipfalse}\cs{@parskip@indent} vertauscht} -% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} -% ersetzt} -% \begin{macro}{\@endpart} -% \changes{v2.3g}{1996/01/14}{\cs{@endpart} wird für -% \textsf{scrartcl} nicht mehr definiert} -% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten} -% \changes{v2.6c}{2000/06/10}{\cs{@endpart} fügt nur noch in -% beidseitigen Dokumenten bei Verwendung von openright eine -% Leerseite ein} -% \changes{v2.8p}{2001/09/27}{\cs{vbox} eingefügt} -% \changes{v2.8p}{2001/09/27}{\cs{use@preamble} ersetzt -% \cs{@part@preamble}} -% \changes{v3.02}{2009/01/01}{Verwendung des neuen \cs{partheademptypage}} -% Der Gliederungsfehl \cs{part} wird wie in den Standardklassen mit -% Hilfe mehrere Hilfsmakros definiert. Wesentliche Unterschiede zu den -% Standardklassen existieren nicht, jedoch sind Schriftgröße, -% Schriftart u.\,ä. flexibler gehalten. Außerdem gibt es die -% Möglichkeit von Präambeln. \emph{Achtung: Die Präambel vor der -% \cs{part}-Überschrift kann ohne Warnung über den oberen Rand -% hinaus reichen!} -% \begin{macro}{\partheadstartvskip} -% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit} -% \begin{macro}{\partheadmidvskip} -% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit} -% \begin{macro}{\partheadendvskip} -% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit} -% \begin{macro}{\parheademptypage} -% \changes{v3.02}{2009/01/01}{neue Konfigurationsmöglichkeit} -% Diese vier Makros werden verwendet, um den Abstand über in und unter der -% Überschrift eines Teils und die leere Rückseite zu definieren. Prinzipiell -% kann damit auch der Umbruch zwischen Nummer und Text entfernt werden. -% \begin{macrocode} -\newcommand*{\partheadstartvskip}{% -%
\addvspace{4ex}% -% \null\vfil -} -\newcommand*{\partheadmidvskip}{% - \par\nobreak -% \vskip 20\p@ -} -\newcommand*{\partheadendvskip}{% -%
\vskip 3ex -% \vfil\newpage -} -%<*report|book> -\newcommand*{\partheademptypage}{% - \if@twoside\if@openright - \null% - \thispagestyle{empty}% - \newpage - \fi\fi -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macrocode} -%<*article> -\newcommand\part{\par - \partheadstartvskip% - \@afterindentfalse - \secdef\@part\@spart -} -%
-%<*report|book> -\newcommand\part{\if@openright\cleardoublepage\else\clearpage\fi - \thispagestyle{\partpagestyle}% - \if@twocolumn - \onecolumn - \@tempswatrue - \else - \@tempswafalse - \fi - \partheadstartvskip - \vbox to\z@{\vss\use@preamble{part@o}\strut\par}% - \vskip-\baselineskip\nobreak% - \secdef\@part\@spart -} -%
-\newcommand*{\@part}{} -\def\@part[#1]#2{% - \ifnum \scr@osectarg=\z@ - \@scr@tempswafalse - \else - \scr@istest#1=\@nil - \fi - \if@scr@tempswa - \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% - \else - \ifcase \scr@osectarg\relax - \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% - \or - \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% - \or - \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% - \or - \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% - \fi - \fi -%
\ifnum \c@secnumdepth >\m@ne -% \ifnum \c@secnumdepth >-2\relax - \refstepcounter{part}% - \@maybeautodot\thepart% - \ifx\scr@ds@tocentry\@empty\else - \addparttocentry{\thepart}{\scr@ds@tocentry}% - \fi - \else - \ifx\scr@ds@tocentry\@empty\else - \addparttocentry{}{\scr@ds@tocentry}% - \fi - \fi - \begingroup - \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative - \raggedpart - \interlinepenalty \@M - \normalfont\sectfont\nobreak -%
\ifnum \c@secnumdepth >\m@ne -% \ifnum \c@secnumdepth >-2\relax - \size@partnumber{\partformat}% - \partheadmidvskip - \fi - \size@part{#2}\strut - \ifx\partmark\@gobble - \@mkboth{}{}\par - \else - \expandafter\partmark\expandafter{\scr@ds@head}\par - \fi - \endgroup -%<*article> - \nobreak - \partheadendvskip - \@afterheading -%
-% \@endpart -} -\newcommand*{\@spart}[1]{% - \begingroup - \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative - \raggedpart - \interlinepenalty \@M - \normalfont - \sectfont\nobreak\size@part{#1}\strut\@mkboth{}{}\par - \endgroup -%<*article> - \nobreak - \partheadendvskip - \@afterheading -%
-% \@endpart -} -%<*book|report> -\newcommand*{\@endpart}{\vbox to\z@{\use@preamble{part@u}\vss}% - \partheadendvskip - \partheademptypage - \if@tempswa - \twocolumn - \fi -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\addparttocentry} -% \changes{v3.08}{2010/11/01}{Neu} -% Seit Version~3.08 wird der Eintrag nicht direkt innerhalb von \cs{part} -% per \cs{addcontentsline} erzeugt, sondern indirekt über diese Anweisung. Das -% erste Argument ist dabei die (formatierte) Nummer bzw. bei nicht -% nummerierten Teilen leer. Das zweite Argument ist der Überschriftstext für -% das Verzeichnis. Durch diesen indirekten Weg, kann die Anweisung einfach -% umdefiniert werden. Verwendet wird hier die Standardanweisung für -% Inhaltsverzeichniseinträge, die in \texttt{scrkliof.dtx} definiert ist: -% \begin{macrocode} -\newcommand*{\addparttocentry}[2]{% - \addtocentrydefault{part}{#1}{#2}% -} -% \end{macrocode} -% \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}} -% \changes{v2.95a}{2006/07/10}{support of preamble added} -% \changes{v3.11b}{2012/07/29}{missing negativ \cs{vskip} added} -% \begin{macro}{\@addpart} -% \changes{v2.8c}{2001/06/29}{neu (intern)} -% \changes{v2.8l}{2001/08/17}{erst eintragen, dann ausgeben} -% \changes{v2.95}{2004/07/20}{kann Kolumnentitel erzeugen} -% \changes{v3.00}{2008/07/01}{Notlösung für \textsf{hyperref} eingefügt} -% \changes{v3.08}{2010/11/02}{Verwendung von \cs{addparttocentry}} -% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale -% Argument der Gliederungsbefehle} -% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird -% \cs{@mkboth}{}{} aufgerufen.} -% \begin{macro}{\@saddpart} -% \changes{v2.8c}{2001/06/29}{neu (intern)} -% \begin{macrocode} -\newcommand\addpart{% -%<*article> - \par - \partheadstartvskip - \@afterindentfalse -%
-%<*report|book> - \if@openright\cleardoublepage\else\clearpage\fi - \thispagestyle{\partpagestyle}% - \if@twocolumn - \onecolumn - \@tempswatrue - \else - \@tempswafalse - \fi - \partheadstartvskip - \vbox to\z@{\vss\use@preamble{part@o}\strut\par}% - \vskip-\baselineskip\nobreak% -%
- \secdef\@addpart\@saddpart -} -\newcommand*{\@addpart}{} -\def\@addpart[#1]#2{% - \ifnum \scr@osectarg=\z@ - \@scr@tempswafalse - \else - \scr@istest#1=\@nil - \fi - \if@scr@tempswa - \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% - \else - \ifcase \scr@osectarg\relax - \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% - \or - \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% - \or - \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% - \or - \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% - \fi - \fi -% \end{macrocode} -% Notlösung, damit \textsf{hyperref} halbwegs damit klar kommt. Das ist aber -% weit davon entfernt eine echte Lösung zu bringen. -% \changes{v3.10b}{2012/04/24}{missing \cs{fi} added} -% \begin{macrocode} - \csname phantomsection\endcsname - \ifx\scr@ds@tocentry\@empty\else - \expandafter\addparttocentry\expandafter{\expandafter}\expandafter{% - \scr@ds@tocentry}% - \fi - \@spart{#2}% - \ifx\partmark\@gobble - \@mkboth{}{}% - \else - \expandafter\@mkboth\expandafter{% - \expandafter\MakeMarkcase\expandafter{\scr@ds@head}}{}% - \fi -} -\newcommand*{\@saddpart}{\@spart} -% \end{macrocode} -% \begin{macro}{\partmark} -% \changes{v2.9r}{2004/07/20}{neu (für \textsf{scrpage2})} -% \begin{macrocode} -\newcommand*{\partmark}{} -\let\partmark\@gobble -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \iffalse -%<*report|book> -% \fi -% \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} -% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere -% float-Verzeichnisse mit hyperref} -% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}} -% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale -% Argument der Gliederungsbefehle} -% \begin{macro}{\@makechapterhead} -% \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit -% einer Präambel versehen werden} -% \changes{v2.8p}{2001/09/25}{es gibt verschiedene Arten von -% Präambeln} -% \begin{macro}{\@@makechapterhead} -% \changes{v2.8p}{2001/09/25}{neu (intern)} -% \changes{v2.8q}{2002/04/18}{\cs{raggedsection} wird bei Option -% \texttt{chapterprefix} auch auf den Präfix angewendet} -% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt} -% Der Gliederungsfehl \cs{chapter}, der nur in den Klassen -% \textsf{scrbook} und \textsf{scrreprt} vorhanden ist, wird wie in -% den Standardklassen mit Hilfe mehrere Hilfsmakros definiert. -% \begin{macro}{\if@at@twocolumn} -% \changes{v2.7b}{2001/01/05}{neu (intern)} -% \begin{macro}{\scr@topnewpage} -% \changes{v2.7b}{2001/01/05}{neu (intern)} -% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt} -% \begin{macro}{\@topnewpage} -% \changes{v2.7b}{2001/01/05}{neu (\LaTeX{} intern)} -% \changes{v2.7g}{2001/04/17}{vergessenes \cs{long} ergänzt} -% \changes{v3.01}{2008/11/13}{Verwendung von -% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})} -% Interessant ist dabei die Erweiterung, daß jedes Kapitel mit einer -% Präambel versehen werden kann. Diese wird im zweispaltigen Satz wie -% die Überschrift selbst einspaltig gesetzt. Intern wird dies für -% die Preambel des Index und der Bibliography verwendet. Dabei -% entsteht aber wiederum das Problem, dass der Indexkopf innerhalb von -% \cs{twocolumn} ausgegeben wird andererseits aber innerhalb von -% \cs{chapter} das Makro \cs{@topnewpage} verwendet wird. Damit würde -% dann also \cs{@topnewpage} innerhalb von \cs{@topnewpage} -% aufgerufen. Das ist jedoch nicht erlaubt. Als muss der Aufruf von -% \cs{@topnewpage} in \cs{@chapter} und \cs{@schapter} verhindert -% werden, wenn wir uns bereits in \cs{@topnewpage} befinden. Eine -% Möglichkeit dafür wäre, einen Schalter in den Index-Kopf -% einzubauen. Ich wähle hingegen die Methode, \cs{@topnewpage} -% entsprechend umzudefinieren. Damit kann dann auch der Anwender -% \cs{@chapter} innerhalb des optionalen Arguments von \cs{twocolumn} -% verwenden. Ein Schalter wird allerdings trotzdem gebraucht. -% \begin{macrocode} -\newif\if@at@twocolumn -\newcommand*\scr@topnewpage{} -\let\scr@topnewpage\@topnewpage -\long\def\@topnewpage[#1]{% - \@at@twocolumntrue\scr@topnewpage[{#1}]\@at@twocolumnfalse -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\use@chapter@o@preamble} -% Das Makro wird benötigt, weil das Setzen der oberen Präambel etwas -% mehr Aufwand bedeutet. Die Anweisung spart Platz, da sie zweimal -% verwendet wird. -% \begin{macrocode} -\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{\KOMAClassName}{% - 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% - } -} -% \end{macrocode} -% \end{macro} -% Zurück zur Kapiteldefinition: -% \begin{macrocode} -\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi - \thispagestyle{\chapterpagestyle}% - \global\@topnum\z@ - \@afterindentfalse - \secdef\@chapter\@schapter -} -% \end{macrocode} -% \changes{v3.06}{2010/06/02}{einschalten des \texttt{tocbasic}-Features -% \texttt{chapteratlist} in die Datei \texttt{scrkliof.dtx} verschoben} -% Die Variante ohne Stern: -% \begin{macrocode} -\newcommand*{\@chapter}{} -\def\@chapter[#1]#2{% - \ifnum \scr@osectarg=\z@ - \@scr@tempswafalse - \else - \scr@istest#1=\@nil - \fi - \if@scr@tempswa - \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% - \else - \ifcase \scr@osectarg\relax - \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% - \or - \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% - \or - \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% - \or - \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% - \fi - \fi - \ifnum \c@secnumdepth >\m@ne -% \if@mainmatter - \refstepcounter{chapter}% - \@maybeautodot\thechapter - \typeout{\@chapapp\space\thechapter.}% - \ifx\scr@ds@tocentry\@empty\else - \addchaptertocentry{\thechapter}{\scr@ds@tocentry}% - \if@chaptertolists - \doforeachtocfile{% - \iftocfeature{\@currext}{chapteratlist}{% - \addcontentsline{\@currext}{chapteratlist}{% - \protect\numberline{\thechapter}\scr@ds@tocentry}% - }{}% - }% - \@ifundefined{float@addtolists}{}{% - \scr@float@addtolists@warning - \scr@ifundefinedorrelax{@currentHref}{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{% - \protect\numberline{\thechapter}\scr@ds@tocentry}{\thepage}% - }% - }{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{% - \protect\numberline{\thechapter}\scr@ds@tocentry}{\thepage}{% - \@currentHref}% - }% - }% - }% - \fi - \fi -%<*book> - \else - \ifx\scr@ds@tocentry\@empty\else - \addchaptertocentry{}{#1}% - \if@chaptertolists - \doforeachtocfile{% - \iftocfeature{\@currext}{chapteratlist}{% - \addcontentsline{\@currext}{chapteratlist}{#1}% - }{}% - }% - \@ifundefined{float@addtolists}{}{% - \scr@float@addtolists@warning - \scr@ifundefinedorrelax{@currentHref}{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{#1}{\thepage}% - }% - }{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{#1}{\thepage}{% - \@currentHref}% - }% - }% - }% - \fi - \fi - \fi -% - \else - \ifx\scr@ds@tocentry\@empty\else - \addchaptertocentry{}{\scr@ds@tocentry}% - \if@chaptertolists - \doforeachtocfile{% - \iftocfeature{\@currext}{chapteratlist}{% - \addcontentsline{\@currext}{chapteratlist}{\scr@ds@tocentry}% - }{}% - }% - \@ifundefined{float@addtolists}{}{% - \scr@float@addtolists@warning - \scr@ifundefinedorrelax{@currentHref}{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{\scr@ds@tocentry}{\thepage}% - }% - }{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{\scr@ds@tocentry}{\thepage}{% - \@currentHref}% - }% - }% - }% - \fi - \fi - \fi - \expandafter\chaptermark\expandafter{\scr@ds@head}% - \ifdim \@chapterlistsgap>\z@ - \doforeachtocfile{% - \iftocfeature{\@currext}{chapteratlist}{% - \addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}% - }{}% - }% - \@ifundefined{float@addtolists}{}{% - \scr@float@addtolists@warning - \float@addtolists{\protect\addvspace{\@chapterlistsgap}}% - }% - \fi - \if@twocolumn - \if@at@twocolumn - \@makechapterhead{#2}% - \else - \@topnewpage[\@makechapterhead{#2}]% - \fi - \else - \@makechapterhead{#2}% - \@afterheading - \fi -} -\newcommand*{\@makechapterhead}[1]{% - \use@chapter@o@preamble - \@@makechapterhead{#1}% - \use@preamble{chapter@u}\nobreak -} -% \end{macrocode} -% \changes{v2.96a}{2006/12/02}{Abstand nach der Präfixzeile nur, wenn eines -% Präfixzeile ausgegeben wurde} -% \changes{v2.97b}{2007/03/09}{\cs{endgraf} korrigiert} -% \begin{macrocode} -\newcommand*{\@@makechapterhead}[1]{\chapterheadstartvskip - {% - \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}% - \normalfont\sectfont\nobreak\size@chapter{}% - \if@chapterprefix - \let\@tempa\raggedsection - \else - \let\@tempa\@hangfrom - \fi - \@tempa{\ifnum \c@secnumdepth >\m@ne% -% \if@mainmatter - \if@chapterprefix - \expandafter\size@chapterprefix - \else - \expandafter\size@chapter - \fi - {\chapterformat}% - \if@chapterprefix - \size@chapterprefix{}\endgraf\nobreak\vskip.5\baselineskip - \fi -% \fi - \fi - }% - {\raggedsection \interlinepenalty \@M \size@chapter{#1}\par}}% - \nobreak\chapterheadendvskip -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\addchaptertocentry} -% \changes{v3.08}{2010/11/01}{Neu} -% Seit Version~3.08 wird der Eintrag nicht direkt innerhalb von \cs{chapter} -% per \cs{addcontentsline} erzeugt, sondern indirekt über diese Anweisung. Das -% erste Argument ist dabei die (formatierte) Nummer bzw. bei nicht -% nummerierten Kapiteln leer. Das zweite Argument ist der Überschriftstext für -% das Verzeichnis. Durch diesen indirekten Weg, kann die Anweisung einfach -% umdefiniert werden. Verwendet wird hier die Standardanweisung für -% Inhaltsverzeichniseinträge, die in \texttt{scrkliof.dtx} definiert ist: -% \begin{macrocode} -\newcommand*{\addchaptertocentry}[2]{% - \addtocentrydefault{chapter}{#1}{#2}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@schapter} -% \begin{macro}{\@makeschapterhead} -% \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit -% einer Präambel versehen werden} -% \begin{macro}{\@@makeschapterhead} -% \changes{v2.8p}{2001/09/25}{neu (intern)} -% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt} -% \changes{v2.9q}{2004/03/24}{Klammerung an \cs{@@makechapterhead} -% angepasst} -% Die Sternvariante, die um Einiges einfacher ausfällt. -% \begin{macrocode} -\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\nobreak\size@chapter{}% - \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}% - \raggedsection \interlinepenalty \@M \size@chapter{#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} -% -% -% \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{@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 \textsf{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.8d}{2001/07/05}{\cs{chapterpagestyle} statt -% \texttt{plain}} -% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere -% float-Verzeichnisse mit hyperref} -% \changes{v3.01}{2008/11/13}{Verwendung von -% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})} -% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}} -% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale -% Argument der Gliederungsbefehle} -% \KOMAScript{} bietet in \textsf{scrbook} und \textsf{scrreprt} den -% zusätzlichen Gliederungsbefehl \cs{addchap}. Es handelt sich dabei -% um einen mit \cs{chapter*} vergleichbaren Befehl, bei dem jedoch der -% Kolumnentitel korrigiert wird und ein Eintrag ins Inhaltsverzeichnis -% erfolgt (nicht in der Stern-Variante). -% -% 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}\vspace{-\baselineskip} -% Dies führte jedoch zu Problemen im Zusammenhang mit -% \textsf{hyperref}, da hierbei keine korrekten Links erzeugt -% werden. Mit dem \texttt{hypertex}-Treiber von \textsf{hyperref} -% bis Version 6.71a werden auch in der neuen Implementierung keine -% korrekten Links erzeugt. Dies ist jedoch ein Bug in jenem -% Treiber. Mit neuen Versionen tritt das Problem nicht mehr auf. -% 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, dass 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{% - \ifnum \scr@osectarg=\z@ - \@scr@tempswafalse - \else - \scr@istest#1=\@nil - \fi - \if@scr@tempswa - \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% - \else - \ifcase \scr@osectarg\relax - \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% - \or - \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% - \or - \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% - \or - \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% - \fi - \fi - \@schapter{#2}% - \ifx\scr@ds@tocentry\@empty\else - \addchaptertocentry{}{\scr@ds@tocentry}% - \if@chaptertolists - \doforeachtocfile{% - \iftocfeature{\@currext}{chapteratlist}{% - \addcontentsline{\@currext}{chapteratlist}{\scr@ds@tocentry}% - }{}% - }% - \@ifundefined{float@addtolists}{}{% - \scr@float@addtolists@warning - \scr@ifundefinedorrelax{@currentHref}{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{\scr@ds@tocentry}{\thepage}% - }% - }{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{\scr@ds@tocentry}{\thepage}{% - \@currentHref}% - }% - }% - }% - \fi - \fi - \ifnum \@nameuse{scr@v@2.96}<\scr@compatibility\relax - \ifdim \@chapterlistsgap>\z@ - \doforeachtocfile{% - \iftocfeature{\@currext}{chapteratlist}{% - \addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}% - }{}% - }% - \@ifundefined{float@addtolists}{}{% - \scr@float@addtolists@warning - \float@addtolists{\protect\addvspace{\@chapterlistsgap}}% - }% - \fi - \fi - \if@twoside - \expandafter\@mkboth\expandafter{% - \expandafter\MakeMarkcase\expandafter{\scr@ds@head}}{}% - \else - \expandafter\@mkboth\expandafter{\expandafter}\expandafter{% - \expandafter\MakeMarkcase\expandafter{\scr@ds@head}}% - \fi -}% -\newcommand*{\@saddchap}[1]{\@schapter{#1}\@mkboth{}{}}% -% \end{macrocode} -% \iffalse -%<*book> -% \fi -% In \texttt{hyperref} bis Version 6.71a ist ein dicker Bug. In -% verschiedenen \texttt{def}-Dateien wird dort das \emph{interne} -% \KOMAScript-Makro \cs{@addchap} umdefiniert, ohne sicherzustellen, -% dass das Makro auch noch so aussieht, wie man das erwartet hat. Die -% sauberste Lösung wäre sicher gewesen dort \cs{@addchap} nur zu -% ergänzen, so wie man das auch bei \cs{@schapter} gemacht hatte. Ab -% Version 6.71b ist dieser Bug behoben. Damit ich nicht eines Fehlers -% verdächtigt werde, wird ggf. eine entsprechende Meldung ausgegeben. -% \changes{v2.7e}{2001/04/16}{fehlende, schließende Klammer -% ergänzt} -% \changes{v2.7f}{2001/04/17}{fehlendes Klammerpaar ergänzt} -% \changes{v2.8q}{2001/11/17}{\cs{AfterPackage} zur Überprüfung der -% \textsf{hyperref}-Version verwendet} -% \begin{macrocode} -\AfterPackage{hyperref}{% - \@ifpackagelater{hyperref}{2001/02/19}{}{% - \ClassWarningNoLine{\KOMAClassName}{% - 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} -% \iffalse -% -% \fi -% \end{macro} -% \end{macro} -% \end{macro} -% \iffalse -% -% \fi -% -% \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 \textsf{scrbook} und -% \textsf{scrreprt}} -% \changes{v2.4g}{1996/11/04}{\cs{section*} vorgezogen, damit -% dadurch provozierte Seitenumbrüche im Inhaltsverzeichnis -% berücksichtigt werden} -% \changes{v2.5d}{1998/01/03}{\cs{@mkboth} bedingt durch -% \cs{markright} ersetzt} -% \changes{v2.7a}{2001/01/04}{\cs{addsec} für eine bessere -% Unterstützung von \textsf{hyperref} geändert} -% \begin{macro}{\@addsec} -% \changes{v3.10}{2011/08/30}{Verwendung von \cs{addsectiontocentry}} -% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale -% Argument der Gliederungsbefehle} -% \begin{macro}{\@saddsec} -% \KOMAScript{} bietet in allen drei Hauptklassen den zusätzlichen -% Gliederungsbefehl \cs{addsec}. Es handelt sich dabei um einen mit -% \cs{section*} vergleichbaren Befehl, bei dem jedoch der -% Kolumnentitel korrigiert wird 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}% - \ifnum \scr@osectarg=\z@ - \@scr@tempswafalse - \else - \scr@istest#1=\@nil - \fi - \if@scr@tempswa - \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% - \else - \ifcase \scr@osectarg\relax - \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% - \or - \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% - \or - \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% - \or - \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% - \fi - \fi - \ifx\scr@ds@tocentry\@empty\else - \addsectiontocentry{}{\scr@ds@tocentry}% - \fi - \if@twoside -%<*article> - \expandafter\@mkboth\expandafter{% - \expandafter\MakeMarkcase\expandafter{\scr@ds@head}}{}% - \else - \expandafter\@mkboth\expandafter{\expandafter}\expandafter{% - \expandafter\MakeMarkcase\expandafter{\scr@ds@head}}% -%
-%<*report|book> - \ifx\@mkboth\markboth - \expandafter\markright\expandafter{% - \expandafter\MakeMarkcase{\scr@ds@head}}% - \fi -%
- \fi -} -\newcommand*{\@saddsec}[1]{\section*{#1}\@mkboth{}{}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\addsectiontocentry} -% \changes{v3.10}{2011/08/30}{Neu} -% Entsprechend \cs{addparttocentry} und \cs{addchaptertocentry}. -% \begin{macrocode} -\newcommand*{\addsectiontocentry}[2]{% - \addtocentrydefault{section}{#1}{#2}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\addsubsectiontocentry} -% \changes{v3.10}{2011/08/30}{Neu} -% Entsprechend \cs{addparttocentry} usw. -% \begin{macrocode} -\newcommand*{\addsubsectiontocentry}[2]{% - \addtocentrydefault{subsection}{#1}{#2}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\addparagraphtocentry} -% \changes{v3.10}{2011/08/30}{Neu} -% Entsprechend \cs{addparttocentry} usw. -% \begin{macrocode} -\newcommand*{\addparagraphtocentry}[2]{% - \addtocentrydefault{paragraph}{#1}{#2}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\addsubparagraphtocentry} -% \changes{v3.10}{2011/08/30}{Neu} -% Entsprechend \cs{addparttocentry} usw. -% \begin{macrocode} -\newcommand*{\addsubparagraphtocentry}[2]{% - \addtocentrydefault{subparagraph}{#1}{#2}% -} -% \end{macrocode} -% \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.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig -% von Option \texttt{version})} -% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} -% \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.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig -% von Option \texttt{version})} -% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} -% \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.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig -% von Option \texttt{version})} -% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} -% \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.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} -% \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.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} -% Die Standardgliederungsbefehle \cs{section} bis \cs{subparagraph} -% sind mit der im Kernel dafür vorgesehenen Schnittstelle -% definiert. Im Unterschied zu den Standardklassen erfolgt die -% Formatierung jedoch in \cs{raggedsection} und die Ausgabe in der -% Schriftart \cs{sectfont}. Außerdem sind die Größen veränderbar. In -% letzter Konsequenz sollten hier eigentlich auch die Abstände -% variabilisiert werden. Vielleicht in einer späteren Version. -% \begin{macrocode} -\newcommand\section{\@startsection{section}{1}{\z@}% - {-3.5ex \@plus -1ex \@minus -.2ex}% - {2.3ex \@plus.2ex}% - {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax - \setlength{\parfillskip}{\z@ plus 1fil}\fi - \raggedsection\normalfont\sectfont\nobreak\size@section}% -} -\newcommand\subsection{\@startsection{subsection}{2}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax - \setlength{\parfillskip}{\z@ plus 1fil}\fi - \raggedsection\normalfont\sectfont\nobreak\size@subsection - }% -} -\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax - \setlength{\parfillskip}{\z@ plus 1fil}\fi - \raggedsection\normalfont\sectfont\nobreak\size@subsubsection - }% -} -\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}% - {3.25ex \@plus1ex \@minus.2ex}% - {-1em}% - {\raggedsection\normalfont\sectfont\nobreak\size@paragraph}% -} -\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% - {3.25ex \@plus1ex \@minus .2ex}% - {-1em}% - {\raggedsection\normalfont\sectfont\nobreak\size@subparagraph}% -} -% \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} -% \changes{v2.9o}{2003/01/31}{\cs{nobreak} nach dem Gruppenende -% behebt einen Bug im color Paket} -% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig -% von Option \texttt{version})} -% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} -% \begin{KOMAfont}{minisec} -% \changes{v2.96a}{2006/12/03}{\texttt{minisec} ist ein eigenes -% Fontelement} -% In \KOMAScript{} gibt es diese zusätzliche Gliederungsebene, die -% immer ohne Nummer und ohne Eintrag ins Inhaltsverzeichnis erfolgt. -% \begin{macrocode} -\newkomafont{minisec}{} -\newcommand\minisec[1]{\@afterindentfalse \vskip 1.5ex - {\parindent \z@ - \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax - \setlength{\parfillskip}{\z@ plus 1fil}\fi - \raggedsection\normalfont\sectfont\nobreak - \usekomafont{minisec}#1\par\nobreak}\nobreak% - \@afterheading -} -% \end{macrocode} -% \end{KOMAfont} -% \end{macro} -% -% -% \subsection{Schrift und Formatierung} -% -% \begin{macro}{\raggedsection} -% \changes{v2.3h}{1996/01/20}{Überschriften werden -% \cs{raggedsection} gesetzt} -% \changes{v2.3h}{1996/01/20}{\cs{raggedsection} ist als -% \cs{raggedright} voreingestellt} -% Dieses Makro gibt an, wie die Überschriften formatiert -% werden. Voreingestellt ist linksbündig. -% \begin{macrocode} -\newcommand*{\raggedsection}{} -\let\raggedsection\raggedright -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\raggedpart} -% \changes{v2.95a}{2006/07/10}{neue Konfigurationsmöglichkeit} -% Die Ausrichtung der Überschrift von \cs{part} kann davon abweichend über -% \cs{raggedpart} konfiguriert werden. Die Voreinstellung ist von der -% Klasse abhängig. -% \begin{macrocode} -\newcommand*{\raggedpart}{} -%
\let\raggedpart\raggedsection -%\let\raggedpart\centering -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\sectfont} -% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} -% Dies Schriftart nicht nur für die Gliederungsbefehle. Dieses Makro -% ist als intern zu betrachten. Der Anwender sollte stattdessen das -% entsprtechende Fontelement verwenden. -% \begin{macrocode} -% -\newcommand*\sectfont{\normalcolor\sffamily\bfseries} -%<*class> -% \end{macrocode} -% \end{macro} -% -% \begin{KOMAfont}{partentry} -% \changes{v2.97c}{2007/06/21}{neues Font-Element} -% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch -% \texttt{disposition} ersetzt} -% Schrift für den \cs{part}-Eintrag im Inhaltsverzeichnis. -% \begin{macrocode} -\newkomafont{partentry}{\usekomafont{disposition}\large} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{partentrypagenumber} -% \changes{v2.97c}{2007/06/21}{neues Font-Element} -% Schrift für die Seitenzahl des \cs{part}-Eintrags im Inhaltsverzeichnis -% abweichend von \texttt{partentry}. -% \begin{macrocode} -\newkomafont{partentrypagenumber}{} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{chapterentry} -% \changes{v2.97c}{2007/06/21}{neues Font-Element} -% Schrift für den \cs{chapter}-Eintrag im Inhaltsverzeichnis. -% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch -% \texttt{disposition} ersetzt} -% \begin{macrocode} -%<*book|report> -\newkomafont{chapterentry}{\usekomafont{disposition}} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{chapterentrypagenumber} -% \changes{v2.97c}{2007/06/21}{neues Font-Element} -% Schrift für die Seitenzahl des \cs{chapter}-Eintrags im Inhaltsverzeichnis -% abweichend von \texttt{chapterentry}. -% \begin{macrocode} -\newkomafont{chapterentrypagenumber}{} -% -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{sectionentry} -% \changes{v2.97c}{2007/06/21}{neues Font-Element} -% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch -% \texttt{disposition} ersetzt} -% Schrift für den \cs{section}-Eintrag im Inhaltsverzeichnis. -% \begin{macrocode} -%<*article> -\newkomafont{sectionentry}{\usekomafont{disposition}} -% \end{macrocode} -% \end{KOMAfont} -% -% \begin{KOMAfont}{sectionentrypagenumber} -% \changes{v2.97c}{2007/06/21}{neues Font-Element} -% Schrift für die Seitenzahl des \cs{section}-Eintrags im Inhaltsverzeichnis -% abweichend von \texttt{sectionentry}. -% \begin{macrocode} -\newkomafont{sectionentrypagenumber}{} -%
-% \end{macrocode} -% \end{KOMAfont} -% -% \begin{macro}{\scr@fnt@disposition} -% \changes{v2.95b}{2006/07/30}{neues Element \texttt{disposition}} -% \begin{macro}{\scr@fnt@sectioning} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{sectioning}} -% \changes{v2.95b}{2006/07/30}{\texttt{sectioning} ist nun ein Alias für -% \texttt{disposition}} -% \begin{macro}{\scr@fnt@part} -% \changes{v2.8p}{2001/09/23}{neues Element \texttt{part}} -% \begin{macro}{\scr@fnt@partnumber} -% \changes{v2.8p}{2001/09/23}{neues Element \texttt{partnumber}} -% \begin{macro}{\scr@fnt@chapter} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{chapter}} -% \begin{macro}{\scr@fnt@chapterprefix} -% \changes{v2.96a}{2006/12/02}{neues Element \texttt{chapterprefix}} -% \begin{macro}{\scr@fnt@section} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{section}} -% \begin{macro}{\scr@fnt@subsection} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsection}} -% \begin{macro}{\scr@fnt@subsubsection} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsubsection}} -% \begin{macro}{\scr@fnt@paragraph} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{paragraph}} -% \begin{macro}{\scr@fnt@subparagraph} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subparagraph}} -% \begin{KOMAfont}{minisec} -% \changes{v2.8o}{2001/09/14}{neuer Ersatz für das Element -% \texttt{minisec}} -% \changes{v2.96a}{2007/01/08}{Alias für das Element \texttt{minisec} -% entfernt, da es nun ein eigenes Element ist} -% Definition der Elemente der Gliederung, deren Schrift geändert -% werden kann: -% \begin{macrocode} -% -\newcommand*{\scr@fnt@disposition}{\sectfont} -\aliaskomafont{sectioning}{disposition} -%<*class> -\newcommand*{\scr@fnt@part}{\size@part} -\newcommand*{\scr@fnt@partnumber}{\size@partnumber} -%\newcommand*{\scr@fnt@chapter}{\size@chapter} -%\newcommand*{\scr@fnt@chapterprefix}{\size@chapterprefix} -\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} -% \end{macrocode} -% \end{KOMAfont} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \subsection{Definitionen für Präambeln} -% -% \iffalse -%<*report|book> -% \fi -% Bei den \KOMAScript-Klassen \textsf{scrbook} und \textsf{scrreprt} -% können \cs{part} und \cs{chapter} mit Präambeln versehen werden. Es -% wird gleichzeitig eine Präambel über und unter der jeweiligen -% Überschrift unterstützt. -% -% \begin{macro}{\use@preamble} -% \changes{v2.8p}{2001/09/25}{neu (intern)} -% Dieses Makro dient allgemein zum Setzen einer Präambel (für -% Gliederungsüberschriften), wenn eine solche definiert ist. Als -% Argument wird der Name der Präambel übergeben, an den automatisch -% \texttt{@preamble} angehängt wird. Zum Schluss wird die gespeicherte -% Präambel gelöscht. -% \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 (intern)} -% Das Makro \cs{set@preamble} dient allgemein der Defintion einer -% Präambel (für Gliederungsüberschriften). Als Argument wird der -% Name der Gliederungsebene übergeben. Danach folgt ein optionales -% Argument, das die Position der Präambel angibt. Darauf folgt ein -% weiteres optionales Argument, das die Breite der Präambel -% angibt. Ist nur ein optionales Argument angegeben, so ist es die -% Position. Es folgt ein obligatorisches Argument mit dem Inhalt der -% Präambel. Die Definition der Präambel erfolgt global. -% \begin{macro}{\set@@preamble} -% \changes{v2.8p}{2001/09/25}{neu (intern)} -% \begin{macro}{\set@@@preamble} -% \changes{v2.8p}{2001/09/25}{neu (intern)} -% \begin{macro}{\set@@@@preamble} -% \changes{v2.8p}{2001/09/25}{neu (intern)} -% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt} -% Da mehrere optionale Argumente nach einem obligatorischen Argument -% auszuwerten sind, werden diverse Hilfsmakros benötigt. -% \begin{macrocode} -\newcommand*{\set@preamble}[1]{% -% \end{macrocode} -% Zunächst 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 -% \cs{long} definiert werden, da die Präambel auch aus mehreren -% Absätzen bestehen kann. -% -% Zunächst wird das Positionsargument ausgewertet. Dies geschieht mit -% lokalen Hilfsmakros und einer Schleife. Zur Funktion der Schleife -% siehe im dokumentierten \LaTeX-Kern. -% \begin{macrocode} - \begingroup - \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ür 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ängig davon -% entsprechende Päambelmakros definiert. -% \begin{macrocode} - \ifcase\prmbl@hpos -% \end{macrocode} -% Zunächst 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 - \endgroup -} -% \end{macrocode} -% Es folgt das Makro, mit dem die Definition tatsächlich -% stattfindet. Das erste Argument ist der Name der Präambel, das -% zweite die Positionsoption für 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ßlich 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 (intern)} -% Eines der Hilfsmakros dient dazu, die horizontale Position der -% Präambel einzustellen, falls dies nicht bereits erfolgt ist. Ist es -% bereits nicht über"-einstimmend erfolgt, 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{\KOMAClassName}{% - 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 (intern)} -% Das Hilfsmakro für 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{\KOMAClassName}{% - 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} -% \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 (intern)} -% \changes{v2.8p}{2001/09/25}{Ersatz für \cs{chapter@preamble}} -% \begin{macro}{\chapter@o@preamble} -% \changes{v2.8p}{2001/09/25}{neu (intern)} -% Diese Makros werden benötigt, um die Kapitel-Präambel zu setzen -% bzw. zu speichern. -% \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}{neu (intern)} -% \changes{v2.8p}{2001/09/27}{Ersatz für \cs{part@preamble}} -% \begin{macro}{\part@preamble@o} -% \changes{v2.8p}{2001/09/27}{neu (intern)} -% Analog zu den Kapitel gibt es Befehle für eine Teil-Präambel. -% \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} -% \iffalse -% -% \fi -% -% -% \subsection{Einträge ins Inhaltsverzeichnis} -% -% Die Gliederungsbefehle schreiben auch Einträge ins -% Inhaltsverzeichnis, die dort ebenfalls formatiert werden müssen. -% -% \begin{macro}{\l@part} -% \changes{v2.97c}{2007/06/21}{\cs{sectfont}\cs{large} durch Verwendung von -% Element \texttt{partentry} ersetzt} -% \changes{v2.97c}{2007/06/21}{Element \texttt{partentrypagenumber} wird -% verwendet} -% \changes{v3.05}{2009/11/11}{Da auch \textsf{article} die Ebene -2 -% verwendet, wird das nun für scrartcl übernommen.} -% Der Eintrag für \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änderte 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}{beinhaltet \cs{sectfont} eine -% Größenangabe, so wird diese überschrieben} -% \begin{macrocode} - \leavevmode - \advance\leftskip\@tempdima - \hskip -\leftskip - \usekomafont{partentry}{#1\nobreak - \usekomafont{partentrypagenumber}{\hfil\nobreak - \hb@xt@\@pnumwidth{\hss#2}}}\par -% \end{macrocode} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{part}-Eintrag im -% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} -% Aus unerfindlichen Gründen war es bis Version~2.96 erlaubt, dass zwischen -% der \cs{part}-Überschrift und der nachfolgenden Überschrift ein Umbruch -% stattfinden kann. Ab Version~2.96a gilt das nur noch, wenn die nachfolgende -% Überschrift wiederum eine \cs{part}-Überschrift ist. -% \begin{macrocode} - \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax - \endgroup - \penalty20010 - \else -%<*article> - \if@compatibility - \global\@nobreaktrue -% \end{macrocode} -% \changes{v2.3g}{1996/01/14}{fehlendes Kommentarzeichen ergänzt} -% \begin{macrocode} - \everypar{\global\@nobreakfalse\everypar{}}% - \else -%
- \penalty\@highpenalty -%
\fi - \endgroup - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\l@chapter} -% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im -% Inhaltsverzeichnis und übergeordneten Einträgen verhindern} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im -% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} -% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von -% Element \texttt{chapterentry} ersetzt} -% \changes{v2.97c}{2007/06/21}{Element \texttt{chapterentrypagenumber} wird -% verwendet} -% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige -% Einträge zu ermöglichen} -% \iffalse -%<*report|book> -% \fi -% Kapiteleinträge gibt es natürlich nicht bei \textsf{scrartcl}. -% \begin{macrocode} -\newcommand*\l@chapter[2]{% - \ifnum \c@tocdepth >\m@ne - \ifnum \lastpenalty<20010 - \addpenalty{-\@highpenalty}% - \fi - \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 - \raggedchapterentry - \parindent \z@ \advance\rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \interlinepenalty\@M - \leavevmode - \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip - \usekomafont{chapterentry}{#1\nobreak - \usekomafont{chapterentrypagenumber}{% -% \end{macrocode} -% Und dann könnte man noch folgendes machen: -% \begin{verbatim} -% \if@chapterentrywithdots -% \leaders\hbox{$\m@th -% \mkern \@dotsep mu\hbox{.}\mkern \@dotsep -% mu$}% -% \fi -% \end{verbatim} -% \begin{macrocode} - \hfill\nobreak - \hb@xt@\@pnumwidth{\hss#2}}}\par - \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax - \endgroup - \penalty20009 - \else - \penalty\@highpenalty - \endgroup - \fi - \fi -} -% \end{macrocode} -% \begin{macro}{\raggedchapterentry} -% \changes{v2.97c}{2007/06/21}{neue Anweisung} -% Ausrichtung des Textes der Kapiteleinträge im Inhaltsverzeichnis. -% \begin{macrocode} -\newcommand*{\raggedchapterentry}{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\l@chapteratlist} -% \changes{v2.96a}{2006/12/03}{neues Macro} -% Dieses Makro wird ggf. für die Kapiteleinträge in den Listen der -% Gleitumgebungen verwendet. Zunächst einmal wird hier dasselbe verwendet, wie -% für die Kapiteleinträge ins Inhaltsverzeichnis. -% \begin{macrocode} -\newcommand*{\l@chapteratlist}{\l@chapter} -% \end{macrocode} -% -% \end{macro} -% \iffalse -% -% \fi -% \end{macro} -% \begin{macro}{\l@section} -% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im -% Inhaltsverzeichnis und übergeordneten Einträgen verhindern} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im -% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} -% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von -% Element \texttt{sectionentry} ersetzt} -% \changes{v2.97c}{2007/06/21}{Element \texttt{sectionentrypagenumber} wird -% verwendet} -% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige -% Einträge zu ermöglichen} -% Bei der Artikel-Klasse folgt die Formatierung für -% \cs{section}-Einträge, an Stelle der Einträge für \cs{chapter} -% der Buch- oder der Bericht-Klasse. Bei diesen handelt es sich hier -% stattdessen um eine normale Ebene. -% \begin{macrocode} -%<*article> -\newcommand*\l@section[2]{% - \ifnum \c@tocdepth >\z@ - \ifnum \lastpenalty<20009 - \addpenalty{\@secpenalty}% - \fi - \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 - \raggedsectionentry - \parindent \z@ \advance\rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \interlinepenalty\@M - \leavevmode - \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip - \usekomafont{sectionentry}{#1\nobreak - \usekomafont{sectionentrypagenumber}{% -% \end{macrocode} -% Und dann könnte man noch folgendes machen: -% \begin{verbatim} -% \if@sectionentrywithdots -% \leaders\hbox{$\m@th -% \mkern \@dotsep mu\hbox{.}\mkern \@dotsep -% mu$}% -% \fi -% \end{verbatim} -% \begin{macrocode} - \hfill\nobreak - \hb@xt@\@pnumwidth{\hss#2}}}\par - \endgroup - \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax - \penalty20008 - \fi - \fi -} -% \end{macrocode} -% \begin{macro}{\raggedsectionentry} -% \changes{v2.97c}{2007/06/21}{neue Anweisung} -% Ausrichtung des Textes der Abschnittseinträge im Inhaltsverzeichnis. -% \begin{macrocode} -\newcommand*{\raggedsectionentry}{} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -%
-%<*report|book> -\newcommand*\l@section{\bprot@dottedtocline{1}{1.5em}{2.3em}} -% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\l@subsection} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsection}-Eintrag im -% Inhaltsverzeichnis und übergeordneten Einträgen verhindern} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsection}-Eintrag im -% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} -% \begin{macro}{\l@subsubsection} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsubsection}-Eintrag -% im Inhaltsverzeichnis und übergeordneten Einträgen verhindern} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsubsection}-Eintrag -% im Inhaltsverzeichnis und untergeordneten Einträgen verhindern} -% \begin{macro}{\l@paragraph} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{paragraph}-Eintrag im -% Inhaltsverzeichnis und übergeordneten Einträgen verhindern} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{paragraph}-Eintrag im -% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} -% \begin{macro}{\l@subparagraph} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subparagraph}-Eintrag -% im Inhaltsverzeichnis und übergeordneten Einträgen verhindern} -% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subparagraph}-Eintrag -% im Inhaltsverzeichnis und untergeordneten Einträgen verhindern} -% Die übrigen Ebenen werden normal behandelt. -% \begin{macrocode} -%<*article> -\newcommand*\l@subsection{\bprot@dottedtocline{2}{1.5em}{2.3em}} -\newcommand*\l@subsubsection{\bprot@dottedtocline{3}{3.8em}{3.2em}} -\newcommand*\l@paragraph{\bprot@dottedtocline{4}{7.0em}{4.1em}} -\newcommand*\l@subparagraph{\bprot@dottedtocline{5}{10em}{5em}} -%
-%<*report|book> -\newcommand*\l@subsection{\bprot@dottedtocline{2}{3.8em}{3.2em}} -\newcommand*\l@subsubsection{\bprot@dottedtocline{3}{7.0em}{4.1em}} -\newcommand*\l@paragraph{\bprot@dottedtocline{4}{10em}{5em}} -\newcommand*\l@subparagraph{\bprot@dottedtocline{5}{12em}{6em}} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\bprot@dottedtocline} -% \changes{v2.96a}{2006/11/30}{neu (intern)} -% Dieses Makro wird benötigt, um die Ebenen unterhalb von \cs{chapter} -% bzw. \cs{section} im Inhaltsverzeichnis ebenfalls vor unerwünschten -% Umbrüchen zwischen Eintrag und Unterebene zu schützen. -% \begin{macrocode} -\newcommand*{\bprot@dottedtocline}[5]{% - \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax - \ifnum #1>\c@tocdepth \else - \begingroup - \@tempcnta 20010 - \advance \@tempcnta by -#1 - \ifnum \@tempcnta>\lastpenalty - \endgroup - \addpenalty{\@lowpenalty}% - \else - \endgroup - \fi - \@dottedtocline{#1}{#2}{#3}{#4}{#5}% - \@tempcnta 20009 - \advance \@tempcnta by -#1 - \penalty\@tempcnta - \fi - \else - \@dottedtocline{#1}{#2}{#3}{#4}{#5}% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \iffalse -% -% -% \fi -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrksect.dtx' -%%% Local Variables: -%%% mode: doctex -%%% coding: iso-latin-1 -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrktare.dtx b/Master/texmf-dist/source/latex/koma-script/scrktare.dtx deleted file mode 100644 index adf12ac821a..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrktare.dtx +++ /dev/null @@ -1,2465 +0,0 @@ -% \CheckSum{2087} -% \iffalse meta-comment -% ====================================================================== -% scrktare.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrktare.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrktare.dtx -%<*driver> -% \fi -\ProvidesFile{scrktare.dtx}[2012/04/17 v3.11 KOMA-Script (type area)] -% \iffalse -% -%\ProvidesPackage{typearea}[% -% \KOMAScriptVersion\space package (type area)] -%<*driver> -\documentclass{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrktare.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/06/20}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% -% \section{Satzspiegel Makros} -% -% Dieser Abschnitt beinhaltet alle Makros, die für den Satzspiegel -% benötigt werden. Dies betrifft sowohl das Paket \textsf{typearea} -% als auch die Klassen. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% -% \subsection{Präambel} -% -% \iffalse -%<*class|package> -%<*package&identify> -% \fi -% -% Zuerst einmal zeigen, was das Paket 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-^^J% -} -% \end{macrocode} -% -% \iffalse -% -%<*option> -% \fi -% -% \subsection{Von den Optionen benötigte Befehle} -% -% Für das Paket -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% Zur Auswertung der Optionen werden einige Makros benötigt. Diese -% sind natürlich vor der Deklaration der Optionen bzw. vor der -% Auswertung der Optionen zu definieren. Ich mache das hier vor der -% Deklaration der Optionen. -% -% \begin{macro}{\SetDIVList} -% \changes{v2.1a}{1994/10/28}{neu} -% \changes{v2.6}{2000/01/04}{\cs{ta@divlist} enthält Werte für -% Schriftgrößen ab 1pt} -% Der Befehl \cs{SetDIVList} tut nichts weiter als die innere Variable -% für die schriftgrößenabhängige \emph{DIV}-Liste \cs{ta@divlist} neu -% zu definieren. Dabei können \emph{DIV}-Werte für Größen 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} -% Da mit \cs{SetDIVList} aus Kompatibilitätsgründen nur Werte für -% Größen ab 10\,pt gesetzt werden können, wird für Werte ab 1\,pt -% ein neuer Befehl benötigt. -% \begin{macrocode} -\newcommand*\SetXDIVList[1]{\def\ta@divlist{#1}} -% \end{macrocode} -% \end{macro} -% -% \begin{Length}{\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ür die Definition verwendet} -% Dimension für die Bindekorrektur reservieren. Diese wird implizit -% zu 0\,pt initialisiert. -% \begin{macrocode} -\newlength{\ta@bcor} -% \end{macrocode} -% \end{Length} -% -% \begin{macro}{\ta@div} -% \changes{v2.2a}{1995/01/25}{Definition wegen der Option -% \texttt{DIV} vorgezogen} -% Zähler für \emph{DIV} reservieren. Dieser wird implizit zu 0 -% initialisiert. -% \begin{macrocode} -\newcount\ta@div -% \end{macrocode} -% \end{macro} -% -% Ab hier nun Teile für Klassen und Paket: -% \begin{macrocode} -% -% \end{macrocode} -% -% \begin{macro}{\@BCOR} -% \begin{macro}{\@@BCOR} -% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch -% Mustererkennung ersetzt} -% Das Makro \cs{@BCOR} wird später benötigt, um die Option -% \texttt{BCOR\emph{BCOR}} zu erkennen. Die Option wird über 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 \texttt{BCOR}, so ist der erste -% Parameter leer. -% \begin{macrocode} - \ifstr{#1}{}{% -% \end{macrocode} -% Außerdem ist der dritte Parameter dann \texttt{BCOR}. -% \begin{macrocode} - \ifstr{#3}{BCOR}{% -% \end{macrocode} -% Der zweite Parameter sollte dann die Größe enthalten. Ist dies -% nicht der Fall, wird ein Fehler gemeldet (Fehlerzeile ist dann -% \cs{ProcessOptions}). -% \begin{macrocode} -% \PassOptionsToPackage{BCOR#2}{typearea}% -% \ifdimen{#2}{\setlength{\ta@bcor}{#2}}{\scr@pti@nerr@r}% -% \end{macrocode} -% In allen anderen Fällen ist es nicht diese Option, dann wird ein -% Fehler ausgegeben. Stattdessen könnte hier auch auf weitere Optionen -% getestet werden. -% \begin{macrocode} - }{\scr@pti@nerr@r}% - }{\scr@pti@nerr@r}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\@DIV} -% \begin{macro}{\@@DIV} -% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch -% Mustererkennung ersetzt} -% Die grundsätzliche Funktion ist die gleiche wie bei \cs{@BCOR}, -% \cs{@@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 -% \PassOptionsToPackage{DIV#2}{typearea}% -% \ifnumber{#2}{\ta@div=#2\relax}{\scr@pti@nerr@r}% - \else\scr@pti@nerr@r\fi -% \end{macrocode} -% Der Unterschied liegt darin, dass bei einem Fehlschlag der -% Mustererkennung kein Fehler vorliegt, sondern u.\,U. noch auf -% \texttt{BCOR} getestet werden muss. -% \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ür die Anzahl -% der Kopfzeilen} -% Das Macro \cs{@headlines} wird benötigt, 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 -% \PassOptionsToPackage{#1headlines}{typearea} -% \setlength{\@tempdima}{#1\baselineskip}% -% \def\ta@hh{#1\baselineskip}% - \else\@DIV\fi -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% Jetzt kommt ein Stück, das nur im Paket benötigt wird. -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \begin{macro}{\x@paper} -% \begin{macro}{\x@@paper} -% \changes{v2.5}{1997/06/17}{neue Mustererkennung für die -% Papiergröße} -% Diese Makros werden ebenfalls später benötigt, wenn die Papiergröße -% festgelegt wird. -% \begin{macro}{\isopaper} -% \changes{v2.5}{1997/06/17}{neu} -% \changes{v2.95}{2002/12/03}{es sind auch Großbuchstaben erlaubt} -% Da das Makro \cs{isopaper} zur Berechnung unterschiedlicher -% ISO/DIN-Papierformate in der Mustererkennung für die Papiergröße -% benötigt 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öße angibt. Die Angabe erfolgt über einen -% Buchstaben. Möglich sind -% \begin{description} -% \item[a] -- ISO/DIN-A-Format -% \item[b] -- ISO/DIN-B-Format -% \item[c] -- ISO/DIN-C-Format -% \item[d] -- ISO/DIN-D-Format -% \end{description} -% Der zweite Paremeter gibt dann die Skalierung an. -% -% Als Grundgröße wird jeweils die 0-Größe eingesetzt. -% \begin{macrocode} - \ifx a#1 - \setlength{\paperwidth}{841sp}% - \setlength{\paperheight}{1189sp}% - \else\ifx A#1 - \setlength{\paperwidth}{841sp}% - \setlength{\paperheight}{1189sp}% - \else\ifx b#1 - \setlength{\paperwidth}{1000sp}% - \setlength{\paperheight}{1414sp}% - \else\ifx B#1 - \setlength{\paperwidth}{1000sp}% - \setlength{\paperheight}{1414sp}% - \else\ifx c#1 - \setlength{\paperwidth}{917sp}% - \setlength{\paperheight}{1297sp}% - \else\ifx C#1 - \setlength{\paperwidth}{917sp}% - \setlength{\paperheight}{1297sp}% - \else\ifx d#1 - \setlength{\paperwidth}{771sp}% - \setlength{\paperheight}{1090sp}% - \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ählten Papiergröße -% entfernt} -% \begin{macrocode} - \else - \PackageError{typearea}{% - Unknown ISO/DIN-papersize-letter #1% - }{% - There are only four defined paper scalings:\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 - \fi - \fi - \fi - \fi -% \end{macrocode} -% Es dürfte aufgefallen sein, dass bei der Größenfestlegung statt -% der Einheit "`mm"' die Einheit "`sp"' geschrieben wurde. Die Maße -% sind also um ein Vielfaches zu klein und müssen später noch mit -% 186468 multiplitziert werden, um auf Millimeter zu kommen. Dieser -% Trick ist jedoch notwendig, weil die Norm vorschreibt, dass bei der -% nun folgenden $n$-fachen Halbierung der Seiten ($n = -% \mathrm{Skalierung} + 1$) jeweils auf ganze Millimeter abgerundet -% werden muss. -% \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ß muss 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 - \multiply\paperheight by186468 -% \end{macrocode} -% Jetzt noch die gewünschte Ausrichtung beachten. -% \changes{v2.97e}{2007/10/23}{gewünschte Papierausrichtung wird beachtet} -% \begin{macrocode} - \if@landscape - \setlength{\@tempdima}{\paperwidth}% - \setlength{\paperwidth}{\paperheight}% - \setlength{\paperheight}{\@tempdima}% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\iso@paper} -% \changes{v2.95}{2002/12/03}{neu (intern)} -% Ein ganz ähnlicher interner Befehl erhält den gesamten Namen des -% ISO-Papierformats als einziges Argument. -% \begin{macro}{\iso@@paper} -% \changes{v2.95}{2002/12/03}{neu (intern)} -% Dieses Argument wird dann über einen weiteren internen Befehl per -% Mustererkennung in den Kennbuchstaben und eine Zahl zerlegt. -% \begin{macrocode} -\newcommand*{\iso@paper}[1]{\expandafter\iso@@paper#1\@nil} -\newcommand*{\iso@@paper}{} -\def\iso@@paper#1#2\@nil{% - \@tempswafalse - \if #1a\@tempswatrue - \else\if #1A\@tempswatrue - \else\if #1b\@tempswatrue - \else\if #1B\@tempswatrue - \else\if #1c\@tempswatrue - \else\if #1C\@tempswatrue - \else\if #1d\@tempswatrue - \else\if #1D\@tempswatrue - \fi\fi\fi\fi\fi\fi\fi\fi - \if@tempswa - \ifnumber{#2}{\isopaper[#1]{#2}}{\@tempswafalse}% - \fi -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% Jetzt wird es wieder für alle interessant: -% \begin{macrocode} -% -% \end{macrocode} -% -% Zurück zur Mustererkennung. Diese ist tatsächlich etwas einfacher -% als die in den beiden Fällen zuvor. -% \changes{v2.97e}{2007/10/23}{Optionen werden nach der neuen Syntax an -% typearea weitergeleitet} -% \begin{macrocode} -\newcommand*{\x@paper}{% - \expandafter\x@@paper\CurrentOption paper\x@@paper% -} -\newcommand*{\x@@paper}{} -\def\x@@paper #1#2paper#3\x@@paper{% - \ifstr{#3}{paper}{% - \ifnumber{#2}{% - \ifstr{#1}{a}{% -% \PassOptionsToPackage{#3=#1#2}{typearea}% -% \isopaper[a]{#2}% - }{% - \ifstr{#1}{b}{% -% \PassOptionsToPackage{#3=#1#2}{typearea}% -% \isopaper[b]{#2}% - }{% - \ifstr{#1}{c}{% -% \PassOptionsToPackage{#3=#1#2}{typearea}% -% \isopaper[c]{#2}% - }{% - \ifstr{#1}{d}{% -% \PassOptionsToPackage{#3=#1#2}{typearea}% -% \isopaper[d]{#2}% - }{\scr@pti@nerr@r}% - }% - }% - }% - }{\scr@pti@nerr@r}% - }{% -% \@pt@scan -% \@headlines - }% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\scr@pti@nerr@r} -% \changes{v2.95}{2002/06/20}{\cs{OptionNotUsed} statt -% \cs{PackageError}} -% Falls die zuätzliche Option nicht \texttt{BCOR}, \texttt{DIV}, -% \texttt{headlines} oder eine bekannte Papiergröße ist, ist die -% Option nicht verwendet. -% \begin{macrocode} -\newcommand*{\scr@pti@nerr@r}{ -% \OptionNotUsed -% \@unknownoptionerror -} -% \end{macrocode} -% \end{macro} -% -% Jetzt wieder nur für Pakete: -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \subsection{Optionen mit \textsf{keyval}} -% -% \subsubsection{Kopf-, Fuß-, Rand- und Textbereich} -% -% \begin{option}{headlines} -% \changes{v2.95}{2002/12/06}{mit \textsf{keyval} neu implementiert} -% Neben der Auswertung der \meta{Wert}\texttt{headlines} Form über -% Pattern Matching wird hier auch noch eine \textsf{keyval}-Option -% definiert, die bevorzugt zu verwenden ist. -% \begin{macrocode} -\KOMA@key{headlines}{% - \begingroup - \setlength{\@tempdima}{#1\baselineskip}% - \endgroup - \def\ta@hh{#1\baselineskip}% -} -% \end{macrocode} -% \end{option} -% -% \begin{option}{headheight} -% \changes{v2.98c}{2008/04/06}{neue Option} -% Manchmal ist es nützlicher, wenn man die Höhe direkt setzen kann, statt sie -% über die Anzahl der Grundlinien zu setzen. In dem Fall nimmt man einfach -% diese Option. -% \begin{macrocode} -\KOMA@key{headheight}{% - \begingroup - \setlength{\@tempdima}{#1}% - \endgroup - \def\ta@hh{#1}% -} -% \end{macrocode} -% \end{option} -% -% \begin{option}{headinclude} -% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} -% \begin{option}{headexclude} -% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{deprecated} -% Diese Optionen bestimmen, ob der Seitenkopf bereits zum Textbereich -% gehört. -% \begin{macro}{\if@hincl} -% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} -% \changes{v2.97c}{2007/04/19}{direkte Initialisierung über \cs{if@hsl}, -% falls definiert} -% \begin{macro}{\@hincltrue} -% \begin{macro}{\@hinclfalse} -% Der Zustand selbst wird in einem Schalter gespeichert. -% \begin{macrocode} -\newif\if@hincl\@ifundefined{if@hsl}{}{\let\if@hincl\if@hsl} -\KOMA@ifkey{headinclude}{@hincl} -\KOMA@DeclareDeprecatedOption[typearea]{headexclude}{headinclude=false} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% \end{option} -% -% \begin{option}{footinclude} -% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} -% \begin{option}{footexclude} -% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{deprecated} -% Diese Optionen bestimmen, ob die Fußzeilen noch zum Textbereich -% gehören. -% \begin{macro}{\if@fincl} -% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} -% \changes{v2.97c}{2007/04/19}{direkte Initialisierung über \cs{if@fsl}, -% falls definiert} -% \begin{macro}{\@fincltrue} -% \begin{macro}{\@finclfalse} -% Der Zustand selbst wird in einem Schalter gespeichert. -% \begin{macrocode} -\newif\if@fincl\@ifundefined{if@fsl}{}{\let\if@fincl\if@fsl} -\KOMA@ifkey{footinclude}{@fincl} -\KOMA@DeclareDeprecatedOption[typearea]{footexclude}{footinclude=false} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% \end{option} -% -% \begin{option}{mpinclude} -% \changes{v2.8q}{2002/03/28}{neue Option} -% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} -% \begin{option}{mpexclude} -% \changes{v2.8q}{2002/03/28}{neue Option} -% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{deprecated} -% Es gibt Dokumente mit sehr ausführlichen 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} -% \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} -% \begin{macro}{\@mincltrue} -% \begin{macro}{\@minclfalse} -% Der Zustand wird in einem Schalter gespeichert. \textbf{Achtung:} -% Bei Verwendung dieser Option müssen größere DIV-Werte verwendet -% werden. Siehe dazu weiter unten. -% \begin{macrocode} -\KOMA@ifkey{mpinclude}{@mincl} -\KOMA@DeclareDeprecatedOption[typearea]{mpexclude}{mpinclude=false} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% \end{option} -% -% \begin{option}{BCOR} -% \changes{v2.2a}{1995/01/25}{neue Option} -% \changes{v2.95}{2002/12/04}{als \textsf{keyval}-Option -% implementiert} -% Der Wert wird einfach an die Länge \cs{ta@bcor} verfüttert, wobei -% symbolische Werte speziell behandelt werden, auch wenn sie beim -% Laden des Pakets absolut keinen Sinn ergeben! -% \begin{macrocode} -\KOMA@key{BCOR}{% - \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else - \setlength{\ta@bcor}{#1}% - \fi -} -% \end{macrocode} -% Wenn allerdings der Satzspiegel bereits berechnet ist, dann muss er -% hier stattdessen neu berechnet werden. -% \begin{macrocode} -\AtEndOfPackage{\KOMA@key{BCOR}{\typearea[{#1}]{last}}} -% \end{macrocode} -% \end{option} -% -% \begin{option}{DIV} -% \changes{v2.2a}{1995/01/25}{neue Option} -% \changes{v2.95}{2002/12/04}{als \textsf{keyval}-Option -% implementiert} -% Der Wert wird einfach an den Zähler \cs{ta@div} verfüttert, wobei -% symbolische Werte speziell behandelt werden. Dabei werden auch die -% Werte "`\texttt{last}"' und "`\texttt{current}"' ausgewertet, auch -% wenn diese beim Laden des Pakets absolut keinen Sinn ergeben! -% \begin{macrocode} -\KOMA@key{DIV}[calc]{% - \edef\@tempa{#1}% - \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 \else - \def\@tempb{calc}\ifx\@tempa\@tempb\ta@div=2 \else - \def\@tempb{classic}\ifx\@tempa\@tempb\ta@div=3 \else - \ta@div=\@tempa - \fi - \fi - \fi - \fi -} -% \end{macrocode} -% Wenn allerdings der Satzspiegel bereits berechnet ist, dann muss er -% hier stattdessen neu berechnet werden. -% \begin{macrocode} -\AtEndOfPackage{\KOMA@key{DIV}{\typearea[current]{#1}}} -% \end{macrocode} -% \end{option} -% -% \begin{option}{DIVcalc} -% \changes{v2.4g}{1996/11/04}{neue Option} -% \changes{v2.95}{2002/12/04}{über Option \texttt{DIV} reimplementiert} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{option}{DIVclassic} -% \changes{v2.4n}{1997/05/28}{neue Option} -% \changes{v2.95}{2002/12/04}{über Option \texttt{DIV} reimplementiert} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% Dann gibt es da noch zwei alte Sonderfälle. -% \begin{macrocode} -\KOMA@DeclareDeprecatedOption[typearea]{DIVcalc}{DIV=calc} -\KOMA@DeclareDeprecatedOption[typearea]{DIVclassic}{DIV=classic} -% \end{macrocode} -% \end{option} -% \end{option} -% -% -% \begin{option}{areasetadvanced} -% \changes{v3.11}{2012/04/17}{new internal option} -% Switch to advanced version of \cs{areaset}. This does calculate margins -% more like \cs{typearea}. Nevertheless, there's still a difference at the top -% margin, because \cs{typerea} doesn't balance differences in calculated -% height of margins and resulting height of margins but reduces only the -% bottom margin. -% \begin{macrocode} -\KOMA@ifkey{areasetadvanced}{@areasetadvanced} -% \end{macrocode} -% \end{option} -% -% -% \subsubsection{Sonstige Satzspiegel-Optionen} -% -% \begin{option}{oneside} -% \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die -% Option an das Paket weiter} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{option}{twoside} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die -% Option an das Paket weiter} -% \changes{v3.00}{2008/07/09}{die Option kennt zusätzlich den Wert -% \texttt{semi}} -% \begin{macro}{if@semitwoside} -% \changes{v3.00}{2008/07/09}{neuer Schalter (intern)} -% \begin{macro}{if@twoside} -% \changes{v3.00}{2008/07/09}{Schalter setzt auch \cs{if@semitwoside}} -% Einseitiger oder zweiseitiger Satzspiegel? -% \begin{macrocode} -\newif\if@semitwoside -\g@addto@macro\@twosidetrue\@semitwosidefalse -\g@addto@macro\@twosidefalse\@semitwosidefalse -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macrocode} -\KOMA@key{twoside}[true]{% -% \if@atdocument\else\PassOptionsToPackage{twoside=#1}{typearea}\fi% -%<*package> - \if@atdocument\if@twoside\cleardoublepage\else\clearpage\fi\fi - \ifstr{#1}{semi}{% - \@twosidetrue - \@semitwosidetrue - }{% - \def\FamilyElseValue{, `semi'}% - \KOMA@set@ifkey{twoside}{@twoside}{#1}% - }% - \if@twoside - \if@semitwoside - \@mparswitchfalse - \else - \@mparswitchtrue - \fi - \else - \@mparswitchfalse - \fi% - \csname recalctypearea\endcsname -% -} -\KOMA@DeclareStandardOption% -% [typearea]% - {oneside}{twoside=false} -%<*package> -% \end{macrocode} -% \end{option} -% \end{option} -% -% \begin{option}{onecolumn} -% \changes{v2.95}{2002/12/04}{Option in das \textsf{typearea}-Paket -% verlagert} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die -% Option an das Paket weiter} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{option}{twocolumn} -% \changes{v2.95}{2002/12/04}{Option in das \textsf{typearea}-Paket -% verlagert} -% \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die -% Option an das Paket weiter} -% \changes{v2.98a}{2007/01/08}{es wird die richtige Option an das Paket -% weitergereicht} -% Einspaltiger oder zweispaltiger Satz? -% \begin{macrocode} -% -\KOMA@key{twocolumn}[true]{% -% \if@atdocument\else\PassOptionsToPackage{twocolumn=#1}{typearea}\fi% -%<*package> - \if@atdocument\clearpage\fi - \KOMA@set@ifkey{twocolumn}{@twocolumn}{#1}% - \csname recalctypearea\endcsname -% -} -\KOMA@DeclareStandardOption% -% [typearea]% - {onecolumn}{twocolumn=false} -%<*package> -% \end{macrocode} -% \end{option} -% \end{option} -% -% -% \subsubsection{Ausgabeformat-Optionen} -% -% Diese Optionen arbeiten in Abhänigkeit des Ausgabeformats. -% -% \begin{option}{pagesize} -% \changes{v2.7g}{2001/04/17}{neue Option} -% \changes{v2.95}{2002/08/27}{neu implementiert} -% \changes{v3.02c}{2009/02/14}{neuer Wert \texttt{false}} -% \changes{v3.05a}{2010/03/18}{neuer Wert \texttt{dvipdfmx}} -% Diese Option ist nun das zentrale Element für die Übermittlung der -% Seitengröße an pdf\TeX, \texttt{dvips} oder V\TeX. Sie wird auch von -% den obsoleten Optionen verwendet. Die Werte und ihre Bedeutung: -% \begin{labeling}[~--]{\texttt{automedia}} -% \item[\texttt{auto}] Kombination aus den Optionen \texttt{pdftex} -% und \texttt{dvips}. -% \item[\texttt{automedia}] wie \texttt{auto} allerdings werden -% zusätzlich \cs{mediawidth} und \cs{mediaheight} gesetzt, falls -% sie definiert sind. -% \item[\texttt{dvips}] das \cs{special} für \texttt{dvips} wird -% ausgegeben, falls \texttt{dvi}-Ausgabe erwartet wird oder -% \cs{if@dvips} erfüllt ist. Führt zu einer Warnung, wenn sie mehr -% als einmal oder nach der Präambel verwendet wird. -% \item[\texttt{dvipdfmx}] das \cs{special} für \texttt{dvipdfmx} wird -% ausgegeben, falls \texttt{dvi}-Ausgabe erwartet wird. -% \item[\texttt{false}] die automatische Anpassung bei Änderungen innerhalb -% des Dokuments abschalten. -% \item[\texttt{pdftex}] \cs{pdfpagewidth} und \cs{pdfpageheight} -% werden gesetzt, falls sie definiert sind. -% \end{labeling} -% \begin{macrocode} -\KOMA@key{pagesize}[auto]{% - \begingroup - \KOMA@set@ncmdkey{pagesize}{@tempa}{% - {off}{-1},{no}{-1},{false}{-1},% - {auto}{0},{automedia}{1},{dvips}{2},{pdftex}{3},{dvipdfmx}{4}% - }{#1}% - \ifcase\number\@tempa\relax - \endgroup - \set@pdftexpagesize - \set@dvipspagesize - \or - \endgroup - \set@pdftexpagesize - \set@vtexpagesize - \set@dvipspagesize - \or - \endgroup - \set@dvipspagesize - \or - \endgroup - \set@pdftexpagesize - \or - \endgroup - \set@dvipdfmxpagesize - \fi - \edef\@pagesizelast{#1}% -} -% \end{macrocode} -% -% \begin{macro}{\set@pdftexpagesize} -% \changes{v2.95}{2002/08/27}{neu (intern)} -% \begin{macro}{\set@dvipspagesize} -% \changes{v2.95}{2002/08/27}{neu (intern)} -% \changes{v3.02c}{2009/02/13}{\texttt{seascape} wird beachtet} -% \changes{v3.02c}{2009/02/14}{funktioniert auch im Dokument} -% \begin{macro}{\setnot@dvipspagesize} -% \changes{v2.95}{2002/08/27}{neu (intern)} -% \begin{macro}{\set@dvipdfmxpagesize} -% \changes{v3.05a}{2010/03/18}{neu (intern)} -% \begin{macro}{\set@vtexpagesize} -% \changes{v2.95}{2002/08/27}{neu (intern)} -% \begin{macro}{\scr@updatedvipspagesize} -% \changes{v3.02c}{2009/02/14}{neu (intern)} -% Damit die Option \texttt{pagesize} überhaupt funktionieren kann, -% werden einige interne Makros benötigt. -% \begin{description} -% \item{Achtung:} die Definition dieser Makros ändert sich teilweise -% bei ihrem Aufruf und insgesamt bei -% \texttt{\cs{begin}\{document\}}. -% \end{description} -% \begin{macrocode} -\newcommand{\set@pdftexpagesize}{% - \AtBeginDocument{% - \ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}% - \ifnotundefined{pdfpageheight}{\pdfpageheight=\paperheight}{}% - }% - \let\set@pdftexpagesize=\@empty -} -\newcommand{\set@dvipspagesize}{% - \begingroup - \@tempswafalse - \scr@ifdvioutput{\@tempswatrue}{% - \ifnotundefined{if@dvips}{\let\if@tempswa\if@dvips}{}% - }% - \if@tempswa - \endgroup - \AtBeginDocument{\AtBeginDvi{% - \special{papersize=\the\paperwidth,\the\paperheight}% - \if@seascape\special{! TeXDict begin /landplus90{true}store end }\fi - }% - }% - \ifnum \scr@compatibility>\@nameuse{scr@v@3.02b}\relax - \let\set@dvipspagesize=\@empty - \else - \let\set@dvipspagesize=\setnot@dvipspagesize - \fi - \else - \endgroup - \fi -} -\newcommand{\setnot@dvipspagesize}{% - \scr@ifdvioutput{% - \PackageWarning{% - typearea% - }{% - With dvi output option `pagesize=auto',\MessageBreak - `pagesize=automedia' or `pagesize=dvips'\MessageBreak - may be used only once at preamble.\MessageBreak - Option ignored% - }% - }{}% -} -\newcommand*{\set@dvipdfmxpagesize}{% - \scr@ifdvioutput{% - \AtBeginDocument{\AtBeginDvi{% - \special{papersize=\the\paperwidth,\the\paperheight}% - }% - }% - }{}% -} -\newcommand{\set@vtexpagesize}{% - \AtBeginDocument{% - \ifnotundefined{mediawith}{\mediawidth=\paperwidth}{}% - \ifnotundefined{mediaheight}{\mediaheight=\paperheight}{}% - }% - \let\set@vtexpagesize=\@empty -} -\newcommand*{\scr@updatedvipspagesize}{% - \special{ps::\@percentchar\@percentchar - PageBoundingBox: 0 0 \the\numexpr\paperwidth/\dimexpr 1bp\relax\relax - \space \the\numexpr\paperheight/\dimexpr 1bp\relax\relax^^J% - \@percentchar\@percentchar BeginPageSetup^^J% - << /PageSize [\the\numexpr\paperwidth/\dimexpr 1bp\relax\relax\space - \the\numexpr\paperheight/\dimexpr 1bp\relax\relax] - >> setpagedevice^^J%<< - 0 0 bop^^J% - \@percentchar\@percentchar EndPageSetup}% -} -\AtBeginDocument{% - \renewcommand*{\set@pdftexpagesize}{% - \ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}% - \ifnotundefined{pdfpageheight}{\pdfpageheight=\paperheight}{}% - }% - \ifnum \scr@compatibility>\@nameuse{scr@v@3.02b}\relax - \renewcommand*{\set@dvipspagesize}{% - \scr@ifundefinedorrelax{AtNextShipout}{% - \scr@ifundefinedorrelax{AtBeginShipoutNext}{% - \begingroup - \protected@edef\reserved@a{\endgroup - \scr@updatedvipspagesize}\reserved@a - }{% -% \end{macrocode} -% Wenn \textsf{atbegshi} geladen wurde, bzw. \cs{AtBeginShipoutNext} zur -% Verfügung steht, dann soll dieser Code noch vor Code ausgeführt werden, der -% eventuell in \cs{shipout} eingeschleust wurde. Das funktioniert leider nicht -% wirklich zuverlässig. Sollte zwischen dem Aufruf von \cs{set@dvipspagesize} -% (also der Neuberechnung des Satzspiegels) und der Ausgabe der Seite doch -% noch etwas per \cs{AtBeginShipout} oder \cs{AtBeginShipoutNext} eingefügt -% werden, dann gehen diese Teile verloren! -% \begin{macrocode} - \begingroup - \protected@edef\reserved@a{\endgroup - \protect\AtBeginShipoutNext{% - \protect\bgroup - \protect\global\protect\setbox\AtBeginShipoutBox\protect\vbox{% - \scr@updatedvipspagesize - \protect\box\AtBeginShipoutBox - }% - \protect\egroup - }}\reserved@a - }% - }{% -% \end{macrocode} -% Wenn \textsf{everyshi} geladen wurde, bzw. \cs{AtNextShipout} zur -% Verfügung steht, dann soll dieser Code noch vor Code ausgeführt werden, der -% eventuell in \cs{shipout} eingeschleust wurde. Das funktioniert leider nicht -% wirklich zuverlässig. Sollte zwischen dem Aufruf von \cs{set@dvipspagesize} -% (also der Neuberechnung des Satzspiegels) und der Ausgabe der Seite doch -% noch etwas per \cs{AtNextShipout} oder \cs{EveryShipout} eingefügt -% werden, dann gehen diese Teile verloren! -% \begin{macrocode} - \begingroup - \protected@edef\reserved@a{\endgroup - \protect\AtNextShipout{% - \protect\bgroup - \protect\global\protect\setbox\protect\@cclv\protect\vbox{% - \scr@updatedvipspagesize - \protect\box\protect\@cclv - }% - \protect\egroup - }}\reserved@a - }% - }% - \else - \let\set@dvipspagesize=\setnot@dvipspagesize - \fi - \renewcommand*{\set@dvipdfmxpagesize}{% - \scr@ifdvioutput{% - \special{papersize=\the\paperwidth,\the\paperheight}% - }{}% - }% - \renewcommand*{\set@vtexpagesize}{% - \ifnotundefined{mediawith}{\mediawidth=\paperwidth}{}% - \ifnotundefined{mediaheight}{\mediaheight=\paperheight}{}% - }% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% -% -% \begin{option}{dvips} -% \changes{v2.7g}{2001/04/17}{neue Option} -% \changes{v2.95}{2002/08/27}{neu implementiert} -% \changes{v2.98c}{2008/04/09}{Ersatz geändert} -% \changes{v2.98c}{2008/04/09}{Info statt Warnung} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% Die Option ist obsolete und wird nun über die Option -% \texttt{pagesize} implementiert. Obwohl die Verwendung von -% \texttt{pagesize=automedia} zu einer Warnung führen kann, wird hier nur -% informiert. -% \begin{macrocode} -\KOMA@DeclareStandardOption[typearea]{dvips}{% - pagesize=automedia% -} -% \end{macrocode} -% \end{option} -% -% \begin{option}{pdftex} -% \changes{v2.7g}{2001/04/17}{neue Option} -% \changes{v2.95}{2002/08/27}{neu implementiert} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% Die Option ist obsolete und wird nun über die Option -% \texttt{pagesize} implementiert. -% \begin{macrocode} -\KOMA@DeclareStandardOption[typearea]{pdftex}{% - pagesize=pdftex% -} -% \end{macrocode} -% \end{option} -% -% -% \subsubsection{Papiergrößen-Optionen} -% -% Die folgende Option bestimmt die Papiergröße und -ausrichtung. Aus -% der Papiergröße wird später mit \cs{typearea} der Satzspiegel -% berechnet. Darüber hinaus wäre das eine passende Gelegenheit -% \cs{SetDIVList} anzuwenden, darauf wird aber verzichtet, da die -% Verwendung der Liste ohnehin als veraltete Methode betrachtet werden -% kann. -% -% \begin{option}{a4paper} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{option}{a5paper} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{option}{b5paper} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{option}{letterpaper} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{option}{legalpaper} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{option}{executivepaper} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{option}{landscape} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{option}{portrait} -% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% Die Formate, die auch bei den Standardklassen definiert sind, werden -% als Sonderfall explizit definiert. Dadurch ist ein Wechsel der -% Klasse bzw. die Verwendung von \textsf{typearea} mit den -% Standardklassen einfacher. Aus Kompatibilitätsgründen werden auch -% die übrigen Papiergrößenoptionen später noch per Mustererkennung -% verarbeitet. -% \begin{macrocode} -\KOMA@DeclareStandardOption[typearea]{a4paper}{paper=a4} -\KOMA@DeclareStandardOption[typearea]{a5paper}{paper=a5} -\KOMA@DeclareStandardOption[typearea]{b5paper}{paper=b5} -\KOMA@DeclareStandardOption[typearea]{letterpaper}{paper=letter} -\KOMA@DeclareStandardOption[typearea]{legalpaper}{paper=legal} -\KOMA@DeclareStandardOption[typearea]{executivepaper}{paper=executive} -\KOMA@DeclareStandardOption[typearea]{landscape}{paper=landscape} -\KOMA@DeclareStandardOption[typearea]{portrait}{paper=portrait} -% \end{macrocode} -% \end{option} -% \end{option} -% \end{option} -% \end{option} -% \end{option} -% \end{option} -% \end{option} -% \end{option} -% -% \begin{option}{paper} -% \changes{v2.95}{2002/12/03}{neu implementiert} -% \changes{v3.01b}{2008/12/09}{Höhe und Breite vertauscht} -% \changes{v3.02c}{2009/02/12}{neuer Wert \texttt{seascape}} -% Im Normalfall wird die Papiergröße jedoch über diese Option -% gesetzt. Dabei sind neben den Standard- und den ISO-Reihen A, B, C -% und D auch Wertepaare der Form -% "`\texttt{(\meta{Breite},\meta{Höhe})}"' und die Angaben -% "`\texttt{portrait}"' und "`\texttt{landscape}"' erlaubt. -% \begin{macrocode} -\KOMA@key{paper}{% - \ifstr{#1}{seascape}{% - \@seascapetrue - \if@landscape\else - \setlength{\@tempdima}{\paperwidth}% - \setlength{\paperwidth}{\paperheight}% - \setlength{\paperheight}{\@tempdima}% - \@landscapetrue - \fi - }{% - \ifstr{#1}{landscape}{% - \@seascapefalse - \if@landscape\else - \setlength{\@tempdima}{\paperwidth}% - \setlength{\paperwidth}{\paperheight}% - \setlength{\paperheight}{\@tempdima}% - \@landscapetrue - \fi - }{% - \ifstr{#1}{portrait}{% - \if@landscape - \setlength{\@tempdima}{\paperwidth}% - \setlength{\paperwidth}{\paperheight}% - \setlength{\paperheight}{\@tempdima}% - \@landscapefalse - \fi - }{% - \ifstr{#1}{letter}{% - \if@landscape - \setlength\paperheight{8.5in}% - \setlength\paperwidth {11in}% - \else - \setlength\paperheight{11in}% - \setlength\paperwidth {8.5in}% - \fi - }{% - \ifstr{#1}{legal}{% - \if@landscape - \setlength\paperheight{8.5in}% - \setlength\paperwidth {14in}% - \else - \setlength\paperheight{14in}% - \setlength\paperwidth {8.5in}% - \fi - }{% - \ifstr{#1}{executive}{% - \if@landscape - \setlength\paperheight{7.25in}% - \setlength\paperwidth {10.5in}% - \else - \setlength\paperheight{10.5in}% - \setlength\paperwidth {7.25in}% - \fi - }{% - \iso@paper{#1}% - \if@tempswa\else - \expandafter\maybe@pair#1::\@nil - \if@tempswa - \ifnum \scr@ta@compatibility<\@nameuse{scr@v@3.01b}\relax - \PackageWarningNoLine{typearea}{% - You may have to exchange height and width!\MessageBreak - Until KOMA-Script version 3.01b the semantic\MessageBreak - of option `paper' was `paper=height:width'\MessageBreak - instead of `paper=width:height'.\MessageBreak - I've switched back to that old interpretation\MessageBreak - because of the given compatiblity settings}% - \setlength\paperheight{\@tempa}% - \setlength\paperwidth{\@tempb}% - \else - \setlength\paperwidth{\@tempa}% - \setlength\paperheight{\@tempb}% - \fi - \else - \KOMA@unknown@keyval{paper}{#1}{% - `letter', `legal', `executive', `a', `b', - `c', `d',\MessageBreak - `:', `landscape' and `portrait'% - }% - \fi - \fi - }% - }% - }% - }% - }% - }% -} -% \end{macrocode} -% \begin{macro}{\if@seascape} -% \changes{v3.02c}{2009/02/12}{neu} -% \begin{macro}{\@seascapetrue} -% \changes{v3.02c}{2009/02/12}{neu} -% \begin{macro}{\@seascapefalse} -% \changes{v3.02c}{2009/02/12}{neu} -% In diesem Schalter wird nur gespeichert, ob Breitformat ggf. umgekehrt -% verwendet werden soll. Dies macht derzeit nur bei Verwendung von dvips einen -% Unterschied! -% \begin{macrocode} -\newif\if@seascape -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\if@landscape} -% \begin{macro}{\@landscapetrue} -% \begin{macro}{\@landscapefalse} -% In diesem Schalter wird gespeichert, ob Hoch- oder Breitformat -% verwendet wird. -% \begin{macrocode} -\newif\if@landscape -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\maybe@pair} -% \changes{v2.95}{2002/12/03}{neu (intern)} -% \changes{v2.97e}{2007/11/26}{funktioniert zum ersten Mal} -% Testet, ob der nachfolgende Parameter die Form -% "`\meta{erstes Argument}:\meta{zweites Argument}"' hat. -% Wenn ja, wird \cs{@tempa} mit dem ersten und \cs{@tempb} mit dem -% zweiten Argument definiert. -% \begin{macrocode} -\newcommand*{\maybe@pair}{} -\def\maybe@pair#1:#2:#3\@nil{% - \edef\@tempa{#1}\edef\@tempb{#2}% - \ifx\@tempa\@empty\@tempswafalse\else - \ifx\@tempb\@empty\@tempswafalse\else\@tempswatrue\fi - \fi -} -% \end{macrocode} -% \end{macro} -% \end{option} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% -% \subsubsection{Geparste Optionen} -% -% Die Behandlung für \texttt{BCOR\emph{Wert}}, \texttt{DIV\emph{Wert}} und -% \texttt{a\emph{Wert}paper}, \texttt{b\emph{Wert}paper}, -% \texttt{c\emph{Wert}paper} sowie \texttt{d\emph{Wert}paper} und -% \texttt{\emph{Wert}headlines}. -% \changes{v2.97c}{2007/09/12}{\cs{lco@test} bei den geparsten Optionen -% eingefügt} -% \begin{macrocode} -\DeclareOption*{% -% \lco@test - \x@paper} -% \end{macrocode} -% -% \iffalse -% Der Rest gehört nicht mehr zu den Optionen. -% -%<*body> -%<*package> -% \fi -% -% -% \subsubsection{Konfigurationsdatei} -% -% \changes{v2.0e}{1994/10/28}{Konfigurationsdatei -% \texttt{typearea.cfg} zur Definition weiterer Optionen -% bzw. Papiergrößen} -% Es ist möglich in einer Datei \texttt{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} -% -% -% \subsubsection{Standardoptionen} -% -% Als Standardoptionen sind \texttt{headinclude=false}, -% \texttt{footinclude=false} und die Papiergröße \texttt{paper=A4} -% eingestellt. Diese Optionen können selbstverständlich durch -% explizite Angaben überladen werden. -% \changes{v2.3h}{1995/01/19}{\cs{relax} nach \cs{ProcessOptions} -% ergänzt.} -% \changes{v2.96}{2006/08/18}{Optionen werden in Reihenfolge der Angabe statt -% in Reihenfolge der Deklaration abgearbeitet.} -% \changes{v2.97c}{2007/04/19}{Verwendung von \cs{KOMAExecuteOptions} an -% Stelle von \cs{KOMAoptions} und \cs{KOMAProcessOptions} an Stelle von -% \cs{ProcessOptions}} -% \changes{v2.97c}{2007/04/19}{Optionen, die der Voreinstellung ohnehin -% entsprechen, werden nicht explizit gesetzt} -% \changes{v2.97c}{2007/07/18}{Option \texttt{twoside} wird explizit passend -% gesetzt} -% \begin{macrocode} -\KOMAExecuteOptions{paper=A4} -\if@twoside - \if@semitwoside - \KOMAExecuteOptions{twoside=semi} - \else - \KOMAExecuteOptions{twoside} - \fi -\else - \KOMAExecuteOptions{twoside=false} -\fi -\KOMAProcessOptions\relax -% \end{macrocode} -% -% -% \subsection{Schriftgrößenabhängige Voreinstellungen für \emph{DIV}} -% -% \begin{macro}{\ta@divlist} -% \changes{v2.0e}{1994/10/28}{neu (intern)} -% \changes{v2.6}{2000/01/04}{die Liste umfasst nun Werte ab 1\,pt -% statt ab 10\,pt.} -% \begin{macro}{\ta@divlistelse} -% \changes{v2.6}{2000/01/04}{neu (intern)} -% An dieser Stelle muss noch für die Standardeinstellung der -% \textit{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} -% -% -% Das waren die Optionen für das Paket oder im ersten Durchlauf der -% Klassen. -% \begin{macrocode} -% -% \end{macrocode} -% -% -% \subsection{Laden des Pakets} -% -% Das Folgende wird nur in einem zweiten Durchlauf in die Klassen -% eingefügt und sorgt für das Laden des \textsf{typearea} Pakets. -% \begin{macrocode} -%<*class> -% \end{macrocode} -% Vor dem Laden müssen noch diverse Makros zurückgesetzt werden, damit -% sie überhaupt in \textsf{typearea} definiert werden können: -% \begin{macrocode} -\let\@BCOR =\relax -\let\@@BCOR =\relax -\let\@DIV =\relax -\let\@@DIV =\relax -\let\@headlines =\relax -\let\@@headlines =\relax -\let\x@paper =\relax -\let\x@@paper =\relax -\let\scr@pti@nerr@r =\relax -% \end{macrocode} -% Jetzt kann geladen werden: -% \changes{v2.95}{2002/06/22}{Beim Laden von \textsf{typearea} wird -% \cs{KOMAScriptVersion} verwendet} -% Die Überprüfung auf die korrekte \KOMAScript-Version geschieht in -% dem Paket (siehe dazu \texttt{scrkvers.dtx}). -% \begin{macrocode} -\RequirePackage{typearea}[\KOMAScriptVersion] -% \end{macrocode} -% Auf diese Art ist sichergestellt, dass immer die Version von -% \textsf{typearea} verlangt wird, die zur gleichen Release wie -% die Klassen gehört. Wobei die Warnungen je nach Zusammentreffen der -% Versionen unterschiedlich ausfallen können. -% -% \begin{macrocode} -% -% \end{macrocode} -% -% -% Ab hier ist alles nur noch für das Paket. -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \subsection{Einige interne Register} -% -% \begin{Length}{\ta@hblk} -% \begin{Length}{\ta@vblk} -% \begin{Length}{\ta@temp} -% Diese Größsenparameter und werden intern für verschiedene Befehle -% benötigt. (Die Zähler \cs{ta@bcor} und \cs{ta@div} werden bereits -% bei der Optionenauswertung benötigt 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 Satzspiegels} -% -% \begin{macro}{\typearea} -% Die Berechnung des Satzspiegels, wie sie in der Anleitung -% beschrieben ist, findet mit Hilfe des Befehls \cs{typearea} statt, -% der hier definiert wird. Die Berechnung selbst benötigt mehreren -% Stufen. -% -% \begin{macro}{\@typearea} -% \changes{v2.4n}{1997/05/28}{eigentliche Satzspiegelberechnung in -% \cs{@typearea} ausgegliedert} -% \changes{v2.95}{2002/08/20}{\cs{selectfont} eingefügt} -% Die eigentliche Satzspiegelberechnung geschieht über das Hilfsmakro -% \cs{@typearea}, das dann auch von \cs{typearea} genutzt wird. Dieses -% Hilfsmakro benötigt keine Parameter, da diese bereits zuvor von -% \cs{typearea} in die entsprechenden Variablen geschrieben wurden. -% \begin{macrocode} -\newcommand*\@typearea{% -% \end{macrocode} -% Bevor irgend etwas anderes gemacht wird, sogen wir dafür, dass die -% gewählte Schrift auch gesetzt wird. Dies ist notwendig, falls jemand -% vor \cs{typearea} einen Befehl wie \cs{linespread} verwendet. -% \begin{macrocode} - \selectfont -% \end{macrocode} -% Zunächst werden die horizontalen Maße berechnet. Dazu wird als -% erstes die Größe einer horizontalen Längeneinheit (\emph{HLE}) -% ermittelt: -% \begin{macrocode} - \ta@hblk=\paperwidth - \advance \ta@hblk by-\ta@bcor - \divide\ta@hblk by\ta@div -% \end{macrocode} -% Die Größe des Bereichs für die Randnotizen ist ebenfalls von der -% Streifenbreite abhängig. -% \changes{v2.8q}{2002/03/28}{Textbreite berücksichtigt Option -% \texttt{mpinclude}} -% \begin{macrocode} - \if@mincl - \marginparwidth=\ta@hblk - \advance\marginparwidth by-\marginparsep - \else - \if@twoside - \if@semitwoside - \marginparwidth=\ta@hblk - \else - \marginparwidth=1.5\ta@hblk - \fi - \else - \marginparwidth=\ta@hblk - \fi - \fi -% \end{macrocode} -% Der linke und rechte Rand wird relativ zur benutzbaren Seitenbreite -% berechnet. Dabei muss auch der Rand berücksichtigt werden, der vom -% Druckertreiber standardmäßig hinzugefügt wird. Außerdem ist der -% Rand abhängig davon, ob es sich um ein einseitiges oder beidseitiges -% Layout handelt. Bei Option \texttt{mpinclude} sind im beidseitigen -% Satz zusätzlich die Randnotizen zu beachten. -% \begin{macrocode} - \oddsidemargin=-1in - \evensidemargin=-1in - \if@twoside - \if@semitwoside - \advance\oddsidemargin by1.5\ta@hblk - \advance\oddsidemargin by\ta@bcor - \evensidemargin=\oddsidemargin - \else - \advance\oddsidemargin by\ta@hblk - \advance\oddsidemargin by\ta@bcor - \advance\evensidemargin by2\ta@hblk - \if@mincl - \advance\evensidemargin by\marginparwidth - \advance\evensidemargin by\marginparsep - \fi - \fi - \else - \advance\oddsidemargin by1.5\ta@hblk - \advance\oddsidemargin by\ta@bcor - \evensidemargin=\oddsidemargin - \fi -% \end{macrocode} -% Der Rest steht nun für den Textbereich zur Verfügung: -% \begin{macrocode} - \textwidth=\paperwidth - \advance\textwidth by-\ta@bcor - \advance\textwidth by-3\ta@hblk -% \end{macrocode} -% Falls die Randnotizen für die Satzspiegelberechnung zum Textbereich -% gehören, müssen sie zusammen mit ihrem Abstand vom Text nun von -% diesem abgezogen werden. Es wird dabei davon ausgegangen, dass die -% Randnotizen immer außen gesetzt werden. Sollte der Textbereich für -% 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 - }% - \@tempskipa=\marginparwidth - \marginparwidth=\textwidth - \textwidth=\@tempskipa - \fi - \fi -% \end{macrocode} -% Danach folgen die vertikalen Maße. Auch dafür wird zunächst die Höhe -% eines Streifens benötigt. -% \begin{macrocode} - \ta@vblk=\paperheight - \divide\ta@vblk by\ta@div -% \end{macrocode} -% Davon ausgehend kann der obere Rand berechnet werden, wobei zu -% berücksichtigen ist, dass {\TeX} diesen selbständig um ein Inch -% vergrößert. -% \begin{macrocode} - \topmargin=-1in - \advance\topmargin by\ta@vblk -% \end{macrocode} -% Außerdem ist zu berücksichtigen, ob der Kopf zum Textbereich oder -% zum Rand gehört. -% \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öhe die -% Ränder abzuziehen und es ist ebenfalls zu berücksichtigen, ob Kopf- -% und Fuß zu den Rändern oder zum Textbereich selbst gezählt 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, dass die Größse des -% Textbereichs nicht zu einer vertikalen Aufweitung führt. -% \changes{v2.96}{2006/09/12}{\cs{topskip} wird gesetzt} -% \changes{v2.97c}{2007/07/04}{\cs{maxdepth} wird gesetzt} -% \begin{macrocode} - \scr@ifundefinedorrelax{@ptsize}{% - \topskip=\f@size\p@ - }{% - \topskip=\@ptsize\p@ - \advance\topskip by 10\p@ - }% - \maxdepth=.5\topskip - \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ötigt. Es dividiert den -% ersten Parameter durch den zweiten und liefert das gerundete -% Ergebnis in \cs{ta@div} zurück. Für die Berechnung werden -% \cs{@tempdima} und \cs{@tempdimb} verwendet. -% \begin{macrocode} -\newcommand*\ta@modiv[2]{ - \setlength{\@tempdima}{#1} - \divide\@tempdima by#2 - \ta@div\@tempdima - \ifnum \ta@div<4 - \ta@div=4 - \else - \setlength{\@tempdimb}{#1}% - \divide\@tempdimb by\ta@div - \addtolength{\@tempdima}{\@tempdima}% - \addtolength{\@tempdima}{-\@tempdimb}% - \advance\ta@div by\@ne - \setlength{\@tempdimb}{#1}% - \divide\@tempdimb by\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 \cs{ta@temp} auf den Wert einer -% optimalen Zeilenbreite in der aktuellen Schrift. Voraussetzung für -% diese Berechnung ist, dass 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ßbuchstaben. -% \changes{v2.7i}{2001/05/17}{Berechnung ist robuster gegen -% arithmetischen Überlauf bei sehr großen Schriften} -% \changes{v2.8q}{2002/03/06}{\cs{normalfont} \cs{normalsize} -% hinzugefügt} -% \changes{v2.95a}{2006/07/20}{Berechnung für große Schriften korrigiert} -% \begin{macrocode} -\newcommand*\ta@temp@goodwidth{% - \settowidth{\ta@temp}{\normalfont\normalsize - abcdefghijklmnopqrstuvwxyz}% - \ifdim\ta@temp >200\p@ - \setlength{\ta@temp}{2.53846\ta@temp}% - \settowidth{\@tempdima}{\normalfont\normalsize - ABCDEFGHIJKLMNOPQRSTUVWXYZ}% - \setlength{\@tempdima}{.11538\@tempdima}% - \addtolength{\ta@temp}{\@tempdima}% - \else - \multiply\ta@temp by66 - \settowidth{\@tempdima}{\normalfont\normalsize - ABCDEFGHIJKLMNOPQRSTUVWXYZ}% - \multiply\@tempdima by3 - \addtolength{\ta@temp}{\@tempdima}% - \divide\ta@temp by26 - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\AfterCalculatingTypearea} -% \changes{v2.96a}{2006/11/29}{neu} -% Neuerdings besteht die Möglichkeit, auf Benutzerebene das Verhalten von -% \cs{typearea} zu beeinflussen. In der Sternvariante wird dabei lokal -% gearbeitet. -% \begin{macrocode} -\newcommand*{\AfterCalculatingTypearea}{% - \@ifstar \l@addto@macro \g@addto@macro \@typearea@end -} -% \end{macrocode} -% \begin{macro}{\@typearea@end} -% \changes{v2.96a}{2006/11/29}{wird wieder immer aber mit neuer Bedeutung -% definiert} -% Das Makro \cs{@typearea@end} dient als Hook, um am Ende von \cs{typearea} -% noch irgendwelche Änderungen vornehmen zu können. Dies geschieht ggf. noch -% vor der Aktivierung der Einstellungen innerhalb eines Dokuments. -% \begin{macrocode} -\newcommand*{\@typearea@end}{} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\AfterSettingArea} -% \changes{v3.11}{2012/04/17}{new} -% The user may influence the result of \cs{areaset}. The star version works -% local while the non-star version is global. -% \begin{macrocode} -\newcommand*{\AfterSettingArea}{% - \@ifstar \l@addto@macro \g@addto@macro \@areaset@end -} -% \end{macrocode} -% \begin{macro}{\@areaset@end} -% \changes{v3.11}{2012/04/17}{new} -% Macro \cs{@areaset@end} is a hook to make it possible to add some -% instructions to the end of the \cs{areaset} command. This will be executed -% before the activation of the settings inside a document. -% \begin{macrocode} -\newcommand*{\@areaset@end}{} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\activateareas} -% \changes{v2.96a}{Neuer Name für alte Anweisung} -% Dieses Makro wird verwendet, um mit einem gewaltigen Hack die Änderung des -% Satzspiegels innerhalb eines Dokuments zu ermöglichen. Es stellt selbst -% sicher, dass es nur innerhalb des Dokuments ausgeführt wird. -% \begin{macrocode} -\newcommand*{\activateareas}{% -% \end{macrocode} -% Als erstes wird getestet, ob wir überhaupt innerhalb des Dokuments sind und -% nur dann wird etwas getan. -% \begin{macrocode} - \if@atdocument -% \end{macrocode} -% Wenn dem so ist, wird jedoch eine Warnung ausgegeben, weil es wirklich sehr -% unsauber ist, so zu verfahren. Das ganze ist absolut abhängig 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} -% Dann können endlich die Dimensionen, die z.\,B. von der Ausgaberoutine -% benötigt werden, neu berechnet werden. -% \begin{macrocode} - \@colht=\textheight - \@colroom=\textheight - \vsize=\textheight - \columnwidth=\textwidth - \if@twocolumn - \advance\columnwidth by-\columnsep - \divide\columnwidth by\tw@ - \hsize=\columnwidth - \@firstcolumntrue - \fi - \hsize=\columnwidth - \linewidth\hsize - \scr@ifundefinedorrelax{@pagesizelast}{}{\KOMAoptions{pagesize=\@pagesizelast}}% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\storeareas} -% \changes{v3.10}{2011/09/13}{neue Anweisung}% -% Die aktuellen Einstellungen können in einem Makro gespeichert -% werden. Dieses Makro kann anschließend genutzt werden, um die -% Einstellungen wieder her zu stellen. -% \begin{macro}{\scr@grouplevel@test} -% \changes{v3.10}{2011/09/13}{neu (intern)} -% \begin{macrocode} -\newcommand*{\scr@grouplevel@test}[1]{% - \ifcase\currentgrouptype\else - \PackageWarning{typearea}{% - \string#1\space used at group level - \the\currentgrouplevel.\MessageBreak - Using \string#1\space inside any group, e.g.\MessageBreak - environments, math mode, boxes, etc. may result in\MessageBreak - many type setting problems.\MessageBreak - You should move the command \string#1\MessageBreak - outside all groups% - }% - \fi -} -\newcommand*{\storeareas}[1]{% - \edef\reserved@a{% - \noexpand\newcommand*{\unexpanded{#1}}{% - \noexpand\scr@grouplevel@test\unexpanded{#1}% - \noexpand\paperheight=\the\paperheight\space - \noexpand\paperwidth=\the\paperwidth\space - \noexpand\topmargin=\the\topmargin\space - \noexpand\headheight=\the\headheight\space - \noexpand\headsep=\the\headsep\space - \noexpand\textheight=\the\textheight\space - \noexpand\vsize=\the\vsize\space - \noexpand\footskip=\the\footskip\space - \noexpand\@colht=\the\@colht\space - \noexpand\@colroom=\the\@colroom\space - \noexpand\textwidth=\the\textwidth\space - \noexpand\columnwidth=\the\columnwidth\space - \noexpand\hsize=\the\hsize\space - \noexpand\oddsidemargin=\the\oddsidemargin\space - \noexpand\evensidemargin=\if@twoside - \the\evensidemargin - \else - \the\oddsidemargin - \fi\space - \noexpand\linewidth=\the\linewidth\space - \noexpand\maxdepth=\the\maxdepth\space - \scr@ifundefinedorrelax{@pagesizelast}{}{% - \noexpand\KOMAoptions{pagesize=\@pagesizelast}}% - \noexpand\ta@div=\the\ta@div\space - \noexpand\ta@bcor=\the\ta@bcor\space - \noexpand\def\noexpand\@lastdiv{\@lastdiv}% - \noexpand\marginparsep=\the\marginparsep\space - \noexpand\marginparwidth=\the\marginparwidth\space - }% - }% - \reserved@a -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\ta@divfor} -% Der Standardseitenspiegel ist abhängig von den mit \cs{SetDIVList} -% vorgegebenen Einstellungen. Dazu muss aus einer eventuell -% vorhandenen inneren Liste \cs{ta@divlist} der von der Schriftgröße -% abhängige \textit{DIV}-Wert ausgelesen werden. Dies geschieht mit -% Hilfe des \cs{ta@divfor}-Befehls, der sich wiederum einiger interner -% Befehle zur Listenbearbeitung bedient. -% \changes{v2.4g}{1996/11/04}{Satzspiegel wird nicht mehr direkt -% berechnet, sondern nur der \textit{DIV}-Wert aus der -% Defaultliste ermittelt} -% \changes{v2.6}{2000/01/04}{Berücksichtigung der erweiterten -% Liste} -% \changes{v2.8q}{2002/03/28}{Berücksichtigung der Option -% `mpinclude'} -% \changes{v2.96}{2006/08/11}{Schriftgröße muss nicht in ganzen pt sein} -% \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{}}% - \@tempdima=#1pt - \addtolength{\@tempdima}{.5\p@}% - \divide\@tempdima by\p@ - \setlength{\@tempdimb}{\@tempdima}% - \multiply\@tempdimb by\p@ - \ifdim \@tempdimb=#1pt - \ta@div=#1\relax - \@whilenum \ta@div >-9 \do {% - \ifx\@tempa\empty - \else \xdef\@tempa{\expandafter\@cdr\@tempa\@nil}\fi - \advance\ta@div by-1 - }% - \else - \let\@tempa\empty - \fi - \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} - \setlength{\@tempdima}{#1\p@}% - \addtolength{\@tempdima}{10\p@}% - \PackageWarningNoLine{typearea}{% - DIV for \the\@tempdima\space 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.4g}{1996/11/04}{überflüssigen Kommentar gelöscht} -% \changes{v2.7g}{2001/04/17}{die neuen Werte \texttt{current}, -% \texttt{default}, \texttt{calc}, \texttt{classic} werden -% verstanden} -% \changes{v2.8q}{2001/11/06}{der Wert \texttt{last} wird -% verstanden} -% \changes{v2.96}{2006/08/21}{Warnung, wenn \cs{typearea} innerhalb einer -% Gruppe verwendet wird} -% \changes{v3.10}{2011/09/13}{Verwendung von \cs{scr@grouplevel@test}} -% -% Die symbolischen Werte für das obligatorische Argument von -% \cs{typearea} haben folgende Bedeutung: -% \begin{center}\begin{tabular}{lll} -% Symbol & Wert & Bedeutung \\\hline\\[-2ex] -% \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 \\ -% \texttt{areaset} & --- & Satzspiegel beibehalten nur neu anordnen \\ -% \end{tabular}\end{center} -% Das optionale Argument kennt hingegen nur den symbolischen Wert -% \texttt{current}. -% \begin{macrocode} -\newcommand*\typearea[2][\z@]{% - \scr@grouplevel@test\typearea - \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 - \ifx\csname @tempa\endcsname\relax - \def\@tempa{current}% - \fi - \fi - \def\@tempb{areaset}\ifx\@tempa\@tempb - \areaset[current]{\textwidth}{\textheight}% - \else - \def\@tempb{current}\ifx\@tempa\@tempb\else - \def\@tempb{default}\ifx\@tempa\@tempb\ta@div=0 \else - \def\@tempb{calc}\ifx\@tempa\@tempb\ta@div=2 \else - \def\@tempb{classic}\ifx\@tempa\@tempb\ta@div=3 \else - \ta@div=\@tempa - \fi - \fi - \fi - \fi - \edef\@lastdiv{\the\ta@div}% -% \end{macrocode} -% Bevor nun irgendeine Berechnung durchgeführt wird, muss ggf. eine -% neue Seite begonnen werden. Außerdem wird sichergestellt, dass die aktuelle -% Schriftgröße die Grundschriftgröße ist und auch mit dem aktuellen -% Durchschuss gerechnet wird. -% \changes{v2.95a}{2006/07/20}{Grundschriftgröße einstellen} -% \begin{macrocode} - \if@atdocument\newpage\fi - \normalsize -% \end{macrocode} -% Nun muss festgestellt werden, ob die Höhe des Kopfbereichs bereits -% vorgegeben ist, oder ob diese selbst berechnet werden soll. Im Falle -% der Berechnung wird als Höhe für den Kopf das 1,25-Fache des -% Grundzeilenabstandes gewählt. Damit sollte auch noch genug Raum für die -% optionale Trennlinie vorhanden sein. -% \changes{v2.4n}{1997/05/28}{berechnete Kopfhöhe vom -% Grundzeilenabstand abhängig} -% \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 eingepasst wird. Der Abstand -% soll aber auch nicht zu groß, werden. Optimal ist angeblich ein Wert -% von einer Zeile. Dies führt jedoch zu einem klaren Konflikt bei -% unterstrichenen Kopfzeilen. Deshalb wird ein Kompromiss gebildet. -% \begin{macrocode} - \headsep=1.5\baselineskip -% \end{macrocode} -% Es folgen die restlichen von \textit{DIV} und \textit{BCOR} -% unabhängigen Werte. -% \begin{macrocode} - \footskip=3.5\baselineskip - \marginparsep=1cc - \marginparpush=0.45\baselineskip -% \end{macrocode} -% \changes{v2.4g}{1996/11/04}{\textit{DIV}=0 versucht den Wert aus -% der Default-Liste zu verwenden} -% Vor der eigentlichen Berechnung des Satzspiegels wird nun zunächst -% überprüft, ob der übergebene \textit{DIV}-Wert 0 ist. Da Werte von 0 -% bis 3 nicht möglich sind (Minimum sind drei Teile Rand und ein Teil -% Text), wird der Wert 0 dafür 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\p@ - \advance\@tempdima by.5pt - \ta@div=\@tempdima - \divide\ta@div by65536 - \advance\ta@div by-10 - \xdef\@ptsize{\the\ta@div}% - \PackageWarningNoLine{typearea}{% - \string\@ptsize\space not defined!\MessageBreak - Fontsize is \f@size pt.\MessageBreak - Defining \string\@ptsize\space to \@ptsize% - }% - }{}% - \ta@divfor{\@ptsize}% - \fi -% \end{macrocode} -% \changes{v2.4n}{1997/05/28}{optionale, klassische Kreisberechnung -% für \texttt{DIV}} -% Als zweiter Sonderfall wird für einen \textit{DIV}-Wert von 3 die -% \emph{Kreisberechnung} durchgeführt. Dabei wird versucht, den -% Textbereich genau so hoch zu wählen, wie das Papier breit ist. Ein -% solches Verhältnis 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ötigten Platzes, ist zu -% beachten, ob Kopf und Fuß zum Textbereich oder zu den Rändern -% gehören. -% \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ötigt, 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öhe -% 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öhe -% \begin{macrocode} - \divide\ta@temp by3 -% \end{macrocode} -% und schließlich erneut mit Hilfe der Papierhöhe der genaue -% \textit{DIV}-Wert berechnet. -% \begin{macrocode} - \ta@modiv{\paperheight}{\ta@temp}% - \fi -% \end{macrocode} -% An dieser Stelle muss \texttt{mpinclude} nicht berücksichtigt -% werden, da nicht die Breite des Textbereichs, sondern die Breite des -% Papiers als Kriterium verwendet wird. -% \begin{macrocode} - \fi -% \end{macrocode} -% Wurde bisher kein Wert gefunden oder ein \textit{DIV}-Wert von 1 bis -% 2 angegeben, so wird nun ein möglichst optimaler \textit{DIV}-Wert -% ermittelt. -% \changes{v2.4n}{1997/05/28}{optimale \textit{DIV}-Berechnung -% verbessert} -% \begin{macrocode} - \ifnum\ta@div <4 - \typeout{DIV calculation for typearea with good linewidth.}% -% \end{macrocode} -% Zunächst könnte 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üllung verwendet: -% \begin{macrocode} - \ta@temp@goodwidth -% \end{macrocode} -% Im Zweispaltenmodus besteht jede Zeile aus zwei solchen Spalten -% zuzüglich dem Spaltenabstand: -% \changes{v2.8q}{2001/12/13}{\texttt{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üheren Versionen erfolgte nun eine iterative Annäherung an den -% optimalen \textit{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ächst wie oben die -% Größe der horizontalen Ränder 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 by3 -% \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@ - \setlength{\ta@hblk}{5mm}% - \fi -% \end{macrocode} -% Nun kann wieder der \textit{DIV}-Wert ermittelt werden. -% \changes{v2.8q}{2002/03/28}{Berüchsichtigung von Option -% \texttt{mpinclude} bei der \textit{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ängeneinheiten, die für 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ängeneinheiten, sondern ein konkreter Wert für die Breite der -% Randnotizen verwendet wird. -% \begin{macrocode} - \if@mincl - \setlength{\ta@temp}{.75\ta@hblk}% - \else - \setlength{\ta@temp}{\ta@hblk}% - \fi - \ta@modiv{\paperwidth}{\ta@temp}% -% \end{macrocode} -% Als Erschwernis kommt jetzt jedoch hinzu, dass nun zwar der -% \textit{DIV}-Wert für die Breite optimal ist, jedoch u.\,U. zu einer -% zu großen Höhe führt. Deshalb wird zunächst ein Satzspiegel für -% diesen \textit{DIV}-Wert berechnet. -% \begin{macrocode} - \@typearea -% \end{macrocode} -% Nun wird überprüft, ob die vertikalen Ausmaße 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 1\,in zu berücksichtigen 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ür diesen ein neuer -% \textit{DIV}-Wert ermittelt. Dabei muss ebenfalls berücksichtigt -% werden, ob Kopf- und Fußbereich zum Text oder zum Rand gehören. -% \changes{v2.5b}{1997/06/29}{bei der Mindestrandbetrachtung -% \texttt{headinclude} und \texttt{footinclude} berücksichtigen} -% \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 - \ta@modiv{\paperheight}{\ta@temp}% - \fi -% \end{macrocode} -% Dieser Sonderfall ist somit abschließend behandelt. -% \begin{macrocode} - \fi -% \end{macrocode} -% Damit steht jetzt also der \textit{DIV}-Wert fest, und die -% eigentliche Berechnung kann folgen. -% \begin{macrocode} - \@typearea -% \end{macrocode} -% \changes{v2.0e}{1994/10/28}{Seitenaufteilung wird in die log-Datei -% geschrieben} -% \changes{v2.4i}{1996/11/11}{Seitenaufteilung wird etwas später in -% die log-Datei geschrieben} -% \changes{v2.4i}{1996/11/11}{am Ende von \cs{typearea} wird noch -% \cs{@typeare@end} ausgeführt} -% \changes{v2.4j}{1996/12/04}{bei der Seitenaufteilung wird -% \cs{textheight} nicht mehr doppelt, dafür zusätzlich -% \cs{baselineskip} ausgegeben} -% \changes{v2.5}{1997/06/17}{"`arithmetic overflow"' bei landscape -% behoben} -% \changes{v2.95}{2004/01/30}{Warnung im Zweispaltenmodus korrigiert} -% \changes{v3.00}{2008/10/08}{Layout-Infos werden per \cs{ta@layoutinfo} -% in die \texttt{log}-Datei geschrieben} -% \changes{v3.01b}{2008/12/09}{Warnungen vor ungünstigen Einstellungen -% geändert} -% Zum Schluss soll die Seitenaufteilung noch in die \texttt{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 by100 - \divide\ta@temp by\@tempdima - \@tempcnta=\ta@temp - \ifnum\@tempcnta <5 - \ifnum\@tempcnta >-5 - \@tempcnta=0 - \else - \advance\@tempcnta by4 - \fi - \else - \advance\@tempcnta by-4 - \fi - \ifnum\@tempcnta <-15 - \@tempcnta=-\@tempcnta - \PackageWarningNoLine{typearea}{% - Bad type area settings!\MessageBreak - The detected line width is about - \the\@tempcnta\@percentchar\MessageBreak - larger than the heuristically detected line width.\MessageBreak - You should e.g. decrease DIV, increase fontsize\MessageBreak - or change papersize% - }% - \@tempcnta=-\@tempcnta - \else - \ifnum\@tempcnta>15 - \PackageWarningNoLine{typearea}{% - Maybe no optimal type area settings!\MessageBreak - The maximum limit of line width is about - \the\@tempcnta\@percentchar\MessageBreak - larger than the heuristically detected line width.\MessageBreak - You may e.g. increase DIV, decrease fontsize\MessageBreak - or change the papersize% - } - \fi\fi - \ifnum\ta@div <6 - \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 e.g. increase DIV, increase fontsize or\MessageBreak - change papersize% - } - \fi - \ta@layoutinfo{\number\ta@div}{\the\@tempcnta}% - \@typearea@end - \activateareas - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ta@layoutinfo} -% \changes{v3.00}{2008/10/08}{neu (intern)} -% Schreibt die Layout-Information in die \texttt{log}-Datei. Dabei ist das -% erste Argument die Ausgabe für den DIV-Wert und das zweite Argument die -% DIV-Abweichung. Letztere wird nur ausgegeben, wenn das Argument nicht leer -% und nicht \cs{relax} ist. -% \begin{macrocode} -\newcommand*{\ta@layoutinfo}[2]{% - \PackageInfo{typearea}{% - These are the values describing the layout:\MessageBreak - DIV\space\space=\space#1\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 - \ifx\relax#2\relax\else - \space DIV departure\space\space\space=% - \space#2\@percentchar\MessageBreak - \fi - \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 - }% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\recalctypearea} -% \changes{v2.95}{2002/12/04}{Neu} -% Dieses Anweisung dient der Neuberechnung des Satzspiegels mit den -% zuletzt eingestellten Werten. Dieser Befehl existiert erst, nachdem -% das Paket geladen wurde. -% \begin{macrocode} -\AtEndOfPackage{\newcommand*{\recalctypearea}{\typearea[current]{last}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\areaset} -% \changes{v2.1b}{1994/12/31}{\cs{headheight} von \cs{@ptsize} -% abhängig gemacht} -% \changes{v2.6}{2000/01/04}{\cs{headheight} von \cs{f@size} statt -% von \cs{@ptsize} abhängig gemacht} -% \changes{v2.7g}{2001/04/17}{auch hier existiert der symbolische -% Wert \texttt{current} für BCOR} -% \changes{v2.95}{2002/12/05}{am Ende von \cs{areaset} wird noch -% \cs{@typeare@end} ausgeführt} -% Zur Berechnung eines Satzspiegels mit fester Breite und Höhe dient -% der Befehl \cs{areaset}. Der Algorithmus ist ähnlich dem vorherigen -% Verfahren, aber einfacher. Auch hier soll ein Wechsel innerhalb des -% Dokuments ermöglicht werden. -% \begin{macrocode} -\newcommand*\areaset[3][\z@]{% - \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else - \setlength{\ta@bcor}{#1}% - \fi -% \end{macrocode} -% Bevor nun irgendeine Berechnung durchgeführt wird, muss ggf. eine -% neue Seite begonnen werden. -% \begin{macrocode} - \if@atdocument\newpage\fi -% \end{macrocode} -% Erst dann folgt die eigentlich Berechnung: -% \changes{v2.96}{2006/09/12}{\cs{topskip} wird gesetzt} -% \changes{v3.00}{2008/10/08}{Layout-Infos werden per \cs{ta@layoutinfo} -% in die \texttt{log}-Datei geschrieben} -% \begin{macrocode} - \setlength{\textwidth}{#2}% - \setlength{\textheight}{#3}% - \def\@lastdiv{areaset}% - \ta@hblk=\paperwidth - \advance\ta@hblk by-\ta@bcor - \advance\ta@hblk by-\textwidth -% \end{macrocode} -% \changes{v3.11}{2012/04/17}{advanced version with different margin widths}% -% With version 3.11 we will have an advanced version of \cs{areaset}. This -% version takes care to option \texttt{mpinclude}. -% \begin{macrocode} - \if@areasetadvanced - \if@mincl - \divide\ta@hblk by4 - \else - \divide\ta@hblk by3 - \fi - \else - \divide\ta@hblk by3 - \fi - \oddsidemargin=-1in - \evensidemargin=-1in - \if@twoside - \if@semitwoside - \advance\oddsidemargin by1.5\ta@hblk - \advance\oddsidemargin by\ta@bcor - \evensidemargin\oddsidemargin - \else - \advance\oddsidemargin by\ta@hblk - \advance\oddsidemargin by\ta@bcor - \advance\evensidemargin by2\ta@hblk - \fi - \else - \advance\oddsidemargin by1.5\ta@hblk - \advance\oddsidemargin by\ta@bcor - \evensidemargin\oddsidemargin - \fi - \scr@ifundefinedorrelax{@ptsize}{% - \topskip=\f@size\p@ - }{% - \topskip=\@ptsize\p@ - \advance\topskip by 10\p@ - }% -% \end{macrocode} -% \changes{v3.11}{2012/04/17}{advanced version with different margin widths}% -% With version 3.11 we will have an advanced version of \cs{areaset}. This -% version uses the head height algorithm of \cs{typearea}. -% \begin{macrocode} - \if@areasetadvanced - \normalsize - \@ifundefined{ta@hh}{% - \headheight=1.25\baselineskip - }{% - \headheight=\ta@hh - }% - \else - \headheight=15\p@ - \advance\headheight by\f@size\p@ - \advance\headheight by-10\p@ - \fi - \headsep=1.5\baselineskip - \footskip=3.5\baselineskip - \ta@vblk=\paperheight - \advance\ta@vblk by-\textheight - \divide\ta@vblk by3 - \if@hincl - \advance\textheight by-\headheight - \advance\textheight by-\headsep - \fi - \if@fincl - \advance\textheight by-\footskip - \fi - \topmargin=-1in - \advance\topmargin by\ta@vblk - \if@hincl \else - \advance\topmargin by-\headheight - \advance\topmargin by-\headsep - \fi - \if@twoside - \if@semitwoside - \marginparwidth=\ta@hblk - \else - \marginparwidth=1.5\ta@hblk - \fi - \else - \marginparwidth=\ta@hblk - \fi - \marginparsep=1cc -% \end{macrocode} -% \changes{v3.11}{2012/04/17}{advanced version with different -% \cs{marginparwidth} and unchanged \cs{marginparsep}}% -% With version 3.11 we will have an advanced version of \cs{areaset}. This -% version supports \texttt{mpinclude} option like \cs{typearea}. -% \begin{macrocode} - \if@areasetadvanced - \if@mincl - \marginparwidth=\ta@hblk - \if@twoside\if@semitwoside\else - \advance\evensidemargin by\marginparwidth - \fi\fi - \advance\marginparwidth by-\marginparsep - \fi - \fi - \marginparpush=0.45\baselineskip - \ta@layoutinfo{areaset}{}% -% \end{macrocode} -% \changes{v3.11}{2012/04/17}{usage of \cs{@areaset@end}}% -% Since version~3.11 we also support \cs{AfterSettingArea} analogous to -% \cs{AfterCalculatingTypearea}: -% \begin{macrocode} - \@areaset@end - \activateareas -} -% \end{macrocode} -% \end{macro} -% -% -% \subsection{Berechnung des Standardsatzspiegels} -% -% \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 \textit{DIV}-Wert 0 für einen Wert aus der -% Default-Liste steht, bleibt die Kompatibilität zu älteren Versionen -% erhalten. Der aktuelle Wert für \textit{DIV} und \textit{BCOR} wurde -% über 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} -% -% \iffalse -% -% -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrktare.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrktitl.dtx b/Master/texmf-dist/source/latex/koma-script/scrktitl.dtx deleted file mode 100644 index 0cc459846e6..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrktitl.dtx +++ /dev/null @@ -1,702 +0,0 @@ -% \CheckSum{557} -% \iffalse meta-comment -% ====================================================================== -% scrktitl.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrktitl.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrktitl.dtx -%<*driver> -% \fi -\ProvidesFile{scrktitl.dtx}[2009/07/14 v3.04a KOMA-Script (title pages)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrktitl.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei - \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/06/26}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} -% -% \section{Die Titelei} -% -% Die Titelei ist gegenüber den Standardklassen erheblich -% erweitert. Trotzdem kann ein Titel einer Standardklasse unmittelbar -% mit einer \KOMAScript-Klasse gesetzt werden. Briefe besitzen allerdings -% keine Titelei im eigentlichen Sinne. -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*!letter> -% \fi -% -% \iffalse -%<*option> -% \fi -% -% -% \subsection{Optionen der Titelei} -% -% \begin{option}{titlepage} -% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option} -% \begin{option}{notitlepage} -% \changes{v2.95c}{2006/08/21}{Option ist obsolet} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% Es werden zei Arten von Titeln unterstützt. Da sind zum einen eigene -% Titelseiten, zum anderen sogenannte Titelköpfe, also Titel, die nicht eine -% eigene Seite erhalten, sondern am Anfang einer Seite stehen. Zwischen den -% beiden Arten wird mit einer Option umgeschaltet. -% \begin{macro}{\if@titlepage} -% \begin{macro}{\@titlepagetrue} -% \begin{macro}{\@titlepagefalse} -% Die gewählte Einstellung wird in einem Schalter gespeichert. -% \begin{macrocode} -%<*class> -\newif\if@titlepage -%
\@titlepagefalse -%\@titlepagetrue -% -% \end{macrocode} -% Im Falle von \textsf{scrextend} ist die Option Teil der Erweiterung. -% \begin{macrocode} -%<*package&extend> -\scr@ext@activateable{title}{% - \scr@ifundefinedorrelax{if@titlepage}{% - \expandafter\newif\csname if@titlepage\endcsname - \@titlepagefalse - }{} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macrocode} -%<*class|package> -\KOMA@ifkey{titlepage}{@titlepage}% -%<*extend> -% \end{macrocode} -% Diese Erweiterung soll dann auch tatsächlich sofort aktiviert werden: -% \begin{macrocode} - \def\scr@ext@immediate@title{% - \scr@ext@activate{title}% - \let\scr@ext@immediate@title\relax - }% -} -% -% -\KOMA@DeclareStandardOption% -% [scrextend]% - {notitlepage}{titlepage=false} -% \end{macrocode} -% \end{option} -% \end{option} -% -% \begin{option}{abstract} -% \changes{v2.95c}{2006/08/21}{neue \textsf{keyval}-Option} -% \begin{option}{abstracton} -% \changes{v2.95c}{2006/08/21}{Option ist obsolet} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% \begin{option}{abstractoff} -% \changes{v2.95c}{2006/08/21}{Option ist obsolet} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} -% Obwohl die Zusammenfassung nicht unbedingt auf einer Titelseite steht, -% gehört sie doch zur Titelei und wird daher hier mit behandelt. Die -% Zusammenfassung kann mit einem standardmäßigen Titel versehen werden. Der -% Titel kann aber auch unterdrückt werden. -% -% \iffalse -%<*class> -%<*article|report> -% \fi -% Bei Büchern gibt es keine Zusammenfassung als gesonderte Umgebung. Als -% Ersatz kann bei Büchern auf \cs{addchap*} zurückgegriffen werden. -% -% \begin{macro}{\if@abstrt} -% \begin{macro}{\@abstrttrue} -% \begin{macro}{\@abstrtfalse} -% Die Enscheidung, ob der Titel der Zusammenfassung gesetzt werden soll, wird -% in einem Schalter gespeichert. -% \begin{macrocode} -\newif\if@abstrt\@abstrtfalse -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macrocode} -\KOMA@ifkey{abstract}{@abstrt} -\KOMA@DeclareStandardOption{abstracton}{abstract=true} -\KOMA@DeclareStandardOption{abstractoff}{abstract=false} -% \end{macrocode} -% \end{option} -% \end{option} -% \end{option} -% \iffalse -% -% -% \fi -% -% -% \iffalse -% -%<*body> -% \fi -% -% -% \subsection{Definitionen der Titelei} -% -% \begin{macro}{\extratitle} -% \begin{macro}{\@extratitle} -% \begin{macro}{\titlehead} -% \begin{macro}{\@titlehead} -% \begin{macro}{\subject} -% \begin{macro}{\@subject} -% \begin{macro}{\subtitle} -% \changes{v2.97c}{2007/06/20}{neue Möglichkeit} -% \begin{macro}{\@subtitle} -% \changes{v2.97c}{2007/06/20}{neu (intern)} -% \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 \KOMAScript{} Paket wesentlich mehr Angaben erlaubt -% als bei den Standardklassen, gibt es natürlich auch einige Befehle, -% mit denen diese gesetzt werden können. Alle zusätzlichen Angaben -% sind optional und können auch weggelassen werden. In diesem Fall -% werden Leerfelder verwendet. Bis auf \cs{subject} sind alle -% Zusatzbefehle \cs{long} deklariert, können also ganze Absätze -% enthalten. -% \begin{macrocode} -%\scr@ext@addto@activateable{title}{% -\newcommand*{\@extratitle}{}% -\newcommand{\extratitle}[1]{\gdef\@extratitle{% -% ##1% -% #1% -}}% -\newcommand*{\@titlehead}{}% -\newcommand{\titlehead}[1]{\gdef\@titlehead{% -% ##1% -% #1% -}}% -\newcommand*{\@subject}{}% -\newcommand*{\subject}[1]{\gdef\@subject{% -% ##1% -% #1% -}}% -\newcommand*{\subtitle}[1]{\gdef\@subtitle{% -% ##1% -% #1% -}}% -\newcommand*{\@subtitle}{}% -\newcommand*{\@publishers}{}% -\newcommand{\publishers}[1]{\gdef\@publishers{% -% ##1% -% #1% -}}% -\newcommand*{\@uppertitleback}{}% -\newcommand{\uppertitleback}[1]{\gdef\@uppertitleback{% -% ##1% -% #1% -}}% -\newcommand*{\@lowertitleback}{}% -\newcommand{\lowertitleback}[1]{\gdef\@lowertitleback{% -% ##1% -% #1% -}}% -\newcommand*{\@dedication}{}% -\newcommand{\dedication}[1]{\gdef\@dedication{% -% ##1% -% #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} -% -% \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} -% Innerhalb eines Titels auf die nächste Seite umschalten. -% \begin{macrocode} -\newcommand*{\next@tpage}{\clearpage\thispagestyle{empty}}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\maketitle} -% Mit dieser Anweisung wird der Titel generiert, dessen Inhalt zuvor -% gesetzt wurde. Es muss unterschieden werden, ob der Titel auf einer -% eigenen Titelseite oder als Seitenkopf erstellt werden soll. Der -% \KOMAScript-Titel ist u.\,U. sehr groß. Im Fall dass diverse -% Zusatzelemente verwendet werden, sollte eigentlich immer eine -% Titelseite verwendet werden. -% \changes{v2.1a}{1994/10/29}{das Hilfskonstrukt \cs{@maketitle} -% wurde aus der Unterscheidung herausgenommen (für den Fall, dass -% \cs{maketitle} von einem Paket überladen 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öße neuerdings danach eingestellt wird} -% \changes{v2.4l}{1997/02/06}{symbolische Fußnoten und -% Fußnotensymbolbreiten von 0\,pt zur besseren Zentrierung des -% Autors sind auch bei Titelseiten angebracht} -% \changes{v2.8p}{2001/09/22}{\cs{titlefont} an Stelle von -% \cs{sectfont}} -% \changes{v2.95c}{2006/08/21}{Absatzgrundeinstellungen} -% \changes{v2.97c}{2007/08/31}{Vakatseiten in der Titelei immer im -% Seitenstil \texttt{empty}} -% \changes{v3.04a}{2009/07/14}{die Unterscheidung, ob Titelseite oder -% Titelkopf sollte erst in \cs{maketitle} und nicht schon bei dessen -% Definition erfolgen} -% \begin{macrocode} -%\let\maketitle\relax\let\@maketitle\relax -\newcommand*\maketitle[1][1]{% - \if@titlepage - \begin{titlepage} - \setcounter{page}{% -% ##1% -% #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\cleardoubleemptypage - \thispagestyle{empty}% - \fi -% \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative -% \parskip\z@ \parindent\z@ \parfillskip\z@\@plus 1fil - \ifx\@titlehead\@empty \else - \begin{minipage}[t]{\textwidth}% - \@titlehead - \end{minipage}\par - \fi - \null\vfill - \begin{center} - \ifx\@subject\@empty \else - {\subject@font \@subject \par}% - \vskip 3em - \fi - {\titlefont\huge \@title\par}% - \vskip 1em - {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}% - \vskip 2em - {\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 - \begin{minipage}[t]{\textwidth} - \@uppertitleback - \end{minipage}\par - \vfill - \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\cleardoubleemptypage \fi - \fi - \end{titlepage} -% \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ängig von math} -% \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änzt} -% \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} - \else - \par - \@tempcnta=% -% ##1% -% #1% - \relax\ifnum\@tempcnta=1\else -% \ClassWarning{\KOMAClassName}{% -% \PackageWarning{scrextend}{% - 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 - \fi - \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.\,ä. ebenfalls löschen, um Speicher zu sparen} -% \begin{macrocode} - \global\let\@thanks\@empty - \global\let\@author\@empty - \global\let\@date\@empty - \global\let\@title\@empty - \global\let\@subtitle\@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 -}% -% \end{macrocode} -% \begin{macro}{\@maketitle} -% \changes{v2.95c}{2006/08/21}{Absatzgrundeinstellungen} -% Damit wird im Fall des Titelkopfes die eigentliche Arbeit geleistet. -% \begin{macrocode} -\newcommand*{\@maketitle}{% - \clearpage - \let\footnote\thanks - \ifx\@extratitle\@empty \else - \noindent\@extratitle \next@tpage \if@twoside \null\next@tpage \fi - \fi -% \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative -% \parskip\z@ \parindent\z@ \parfillskip\z@\@plus 1fil - \ifx\@titlehead\@empty \else - \begin{minipage}[t]{\textwidth} - \@titlehead - \end{minipage}\par - \fi - \null - \vskip 2em% - \begin{center}% - \ifx\@subject\@empty \else - {\subject@font \@subject \par} - \vskip 1.5em - \fi - {\titlefont\huge \@title \par}% - \vskip .5em - {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}% - \vskip 1em - {\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{Umgebung für die Titelseite} -% -% \begin{environment}{titlepage} -% Die Titelseite bedarf ebenfalls einer gesonderter Umgebung. Beim -% zweispaltigen Layout soll die Titelseite z.\,B. einspaltig gedruckt -% werden. -% \begin{macrocode} -%\scr@ifundefinedorrelax{titlepage}{% -\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} -% -% Im Fall von \textsf{scrextend} muss jetzt das Kürzel \emph{title} beendet -% werden: -% \begin{macrocode} -%}\csname scr@ext@immediate@title\endcsname -% \end{macrocode} -% -% \subsection{Fonts für den Titel} -% -% \begin{macro}{\titlefont} -% \changes{v2.8p}{2001/09/22}{neu} -% Wie oben zu sehen ist, wird in der Titelei ein eigenes Schriftmakro -% verwendet. Dieses ist als internes Makro zu verstehen. Der Anwender -% sollte stattdessen auf das entsprechende Element zugreifen (siehe -% unten). -% \begin{macro}{\subject@font} -% \changes{v2.8q}{2002/01/14}{neu (intern)} -% \changes{v2.95}{2002/06/26}{jetzt auch bei \textsf{scrbook}, -% \textsf{scrreprt} und \textsf{scrartcl}} -% Ebenso verhält es sich mit den \emph{Subject} im Titel. Hier ist -% aber von vornherein ein internes Makro definiert. -% \begin{macrocode} -\newcommand*\titlefont{\sectfont}% -\newcommand*{\subject@font}{\normalfont\normalcolor\bfseries\Large}% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{KOMAfont}{subtitle} -% \changes{v2.97c}{2007/06/20}{neu (intern)} -% \begin{macrocode} -\newkomafont{subtitle}{\usekomafont{title}\large}% -% \end{macrocode} -% \end{KOMAfont} -% -% -% \begin{macro}{\scr@fnt@title} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{title}} -% \begin{macro}{\scr@fnt@subject} -% \changes{v2.8q}{2002/01/14}{neues Element \texttt{subject}} -% \changes{v2.95}{2002/06/26}{jetzt auch bei \textsf{scrbook}, -% \textsf{scrreprt} und \textsf{scrartcl}} -% Die beiden Elemente, deren Schrift geändert werden kann. -% \begin{macrocode} -\newcommand*{\scr@fnt@title}{\titlefont}% -\newcommand*{\scr@fnt@subject}{\subject@font}% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \subsection{Umgebung für die Zusammenfassung} -% -% \begin{environment}{abstract} -% \textsf{scrartcl} und \textsf{scrreprt} bieten die Möglichkeit einer -% Zusammenfassung, eines sogenannten \emph{Abstracts}. Wenn eine -% Titelseite verlangt wurde, wird auch die Zusammenfassung auf eine -% eigene Seite gesetzt. \textsf{scrbook} kennt keine Zusammenfassung -% dieser Art. In Büchern werden Zusammenfassungen üblicherweise mit -% Kapitelcharakter gesetzt. -% \iffalse -%<*class> -%<*article|report> -% \fi -% \changes{v2.3a}{1995/07/08}{\cs{@endparpenalty} zur Verhinderung -% eines Seitenumbruchs nach dem Abstract-Kopf eingefügt} -% \changes{v2.3g}{1996/01/14}{\cs{@beginparpenalty} zur -% Verhinderung eines Seitenumbruchs vor dem Abstract-Kopf -% eingefügt} -% \changes{v2.7a}{2001/01/04}{statt \cs{section*} wird nun -% \cs{addsec*} verwendet, damit die Kolumnentitel korrekt -% behandelt werden} -% \changes{v3.04a}{2009/07/14}{die Unterscheidung, ob Titelseite oder -% Titelkopf sollte erst in der Umgebung und nicht schon bei deren -% Definition erfolgen} -% \begin{macrocode} -\newenvironment{abstract}{% - \if@titlepage - \titlepage - \null\vfil - \@beginparpenalty\@lowpenalty - \if@abstrt - \begin{center} - \normalfont\sectfont\nobreak\abstractname - \@endparpenalty\@M - \end{center} - \fi - \else - \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 - \fi -}{% - \if@titlepage - \par\vfil\null\endtitlepage - \else - \if@twocolumn\else\endquotation\fi - \fi -} -% \end{macrocode} -% \iffalse -% -% -% \fi -% \end{environment} -% -% -% \iffalse -% -% \fi -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrktitl.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkvars.dtx b/Master/texmf-dist/source/latex/koma-script/scrkvars.dtx deleted file mode 100644 index 6511976676b..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkvars.dtx +++ /dev/null @@ -1,375 +0,0 @@ -% \CheckSum{157} -% \iffalse meta-comment -% ====================================================================== -% scrkvars.dtx -% Copyright (c) Markus Kohm, 2008-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkvars.dtx -% Copyright (c) Markus Kohm, 2008-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkvars.dtx -%<*driver> -% \fi -\ProvidesFile{scrkvars.dtx}[2011/03/31 v3.08b KOMA-Script (koma variables)] -% \iffalse -\documentclass{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkvars.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -% -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2006/03/20}{% -% erste Version aus der Aufteilung von \textsf{scrclass.dtx}} -% -% \section{\KOMAScript{}-Variablen} -% -% 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öglich alle diese Felder vorherzusehen. Daher wurde in der neuen -% Briefklasse ein neuer Mechanismus zur Definition solcher Felder geschaffen. -% -% \iffalse -%<*letter> -% \fi -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*option> -% \fi -% -% \subsection{Option} -% Der Mechanismus ist unabhängig von Optionen. -% -% -% \iffalse -% -%<*body> -% \fi -% -% \subsection{Anweisungen zum Anlegen und Verwenden von Variablen} -% -% \begin{macro}{\newkomavar} -% \changes{v2.8q}{2002/01/14}{Neu} -% Es wird -% zwischen zwei Arten von Feldern unterschieden: -% \begin{itemize} -% \item Felder für die Geschäftszeile -% \item Felder für sonstige Verwendung -% \end{itemize} -% Felder können aber auch nachträglich zur Geschäftszeile -% hinzugefügt werden. Die Sternvariante von \cs{newkomavar} führt -% dies jedoch automatisch durch. -% \begin{macro}{\@newkomavar} -% Da mit einer Sternvariante gearbeitet wird, wird ein Hilfsmakro -% benötigt. Das Makro erhält ein optionales und -% ein obligatorisches Argument. Das optionale Argument ist dabei die -% Voreinstellung für den \emph{Ausgabenamen} des Feldes, der -% ggf. ausgegeben werden soll. Das obligatorische Argument ist -% \emph{Name} des Feldes, über 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} -% \changes{v3.08}{2010/10/28}{\cs{scr@\emph{Name}@postsetname} -% und \cs{scr@\emph{Name}@postsetvar}} -% Natürlich wird auch ein Befehl benötigt, um die Feldvariablen -% zu setzen und ihnen ggf. einen neuen Namen für die Ausgabe zu -% geben. Der \emph{Name} der Feldvariable wird als obligatorisches -% erstes Argument übergeben. Zusätzlich zum Setzen von Ausgabename oder Wert -% werden ggf. auch die Hooks \cs{scr@\emph{Name}@postsetname} -% bzw. \cs{scr@\emph{Name}@postsetvar} ausgeführt. -% \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ötigt. -% \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 -% übergeben. Der \emph{Inhalt} wird als obligatorisches, drittes -% Argument übergeben. -% \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}% - \csname scr@#1@postsetname\endcsname - }% -} -\newcommand*{\@@setkomavar}{} -\long\def\@@setkomavar#1[#2]#3{% - \@ifundefined{scr@#1@var}{% - \@komavar@err{set}{#1}% - }{% - \@namedef{scr@#1@var}{#3}% - \csname scr@#1@postsetvar\endcsname - \begingroup - \def\@tempa{#2}\def\@tempb{\relax}% - \ifx\@tempa\@tempb\endgroup\else - \endgroup\@namedef{scr@#1@name}{#2}% - \csname scr@#1@postsetname\endcsname - \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ändlich wird auch ein Makro benötigt, um auf den -% Inhalt oder den Ausgabename einer Variablen zugreifen zu -% können. 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ötigt. -% \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}{\ifkomavar} -% \changes{v3.03}{2009/03/04}{Neu} -% Feststellen, ob eine \KOMAScript-Variable überhaupt definiert ist. -% \begin{macrocode} -\DeclareRobustCommand*{\ifkomavar}[1]{% - \scr@ifundefinedorrelax{scr@#1@var}{% - \expandafter\@secondoftwo - }{% - \expandafter\@firstoftwo - }% -} -% \end{macrocode} -% \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 \KOMAScript{} -% Variable oder deren Name leer ist. Die Sternvariante ist wieder für -% den Namen zuständig. -% \begin{macro}{\if@komavarempty} -% \changes{v2.8q}{2002/01/14}{Neu} -% \changes{v3.03}{2009/03/04}{die neue Anweisung \cs{ifkomavar} wird -% verwendet} -% \changes{v3.03}{2009/03/04}{die Argumente werden nicht mehr direkt gelesen} -% Da mit einer Sternvariante gearbeitet wird, wird wieder ein -% Hilfsmakro verwendet. -% \begin{macrocode} -\DeclareRobustCommand*{\ifkomavarempty}{% - \begingroup - \@ifstar {\@tempswatrue\@ifkomavarempty}% - {\@tempswafalse\@ifkomavarempty}% - } -\newcommand{\@ifkomavarempty}[1]{% - \ifkomavar{#1}{% - \if@tempswa - \@ifundefined{scr@#1@name}{% - \aftergroup\@firstoftwo - }{% - \expandafter\ifx\csname scr@#1@name\endcsname\@empty - \aftergroup\@firstoftwo - \else - \aftergroup\@secondoftwo - \fi - }% - \else - \expandafter\ifx\csname scr@#1@var\endcsname\@empty - \aftergroup\@firstoftwo - \else - \aftergroup\@secondoftwo - \fi - \fi - }{% - \@komavar@err{use}{#1}% - \aftergroup\@gobbletwo - }% - \endgroup -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \iffalse -% -% \fi -% -% \iffalse -% -% \fi -% -% \Finale -% -\endinput -% -% end of file `scrkvars.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrkvers.dtx b/Master/texmf-dist/source/latex/koma-script/scrkvers.dtx deleted file mode 100644 index 191f6296105..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrkvers.dtx +++ /dev/null @@ -1,182 +0,0 @@ -% \CheckSum{39} -% \iffalse meta-comment -% ====================================================================== -% scrkvers.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkvers.dtx -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From File: scrkvers.dtx -% \fi -% -% \iffalse -% Nicht verwirren lassen! In dieser Datei steht die Dokumentation und -% der Code vor dem Treiber. Das ist notwendig, weil der Code bereits -% am Anfang des Treibers selbst benötigt wird. -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.0e}{1994/07/07}{erste Version von \textsf{scrartcl}, -% \textsf{scrreprt} und \textsf{scrbook}} -% \changes{v2.95}{2002/06/25}{erste Version aus der Aufteilung von -% \texttt{scrclass.dtx}} -% -% \section{Version des \KOMAScript-Kerns} -% -% Dies ist die erste Datei in allen Dateien, Klassen und Paketen, die -% zum \KOMAScript-Kern gehören (Ausnahme: \texttt{scrlfile}). -% -% \StopEventually{\PrintIndex\PrintChanges} -% -% \begin{macro}{\KOMAScriptVersion} -% \changes{v2.95}{2002/06/25}{neu} -% Dieses Makro gibt an, zu welcher \KOMAScript-Version die Datei -% gehört. Die Klassen und Pakete des \KOMAScript-Kerns verwenden -% dieses Makro außerdem als eigene Versionsangabe. -% \begin{macro}{\@CheckKOMAScriptVersion} -% \changes{v2.95}{2002/06/25}{neu (intern)} -% Je nachdem, ob \cs{KOMAScriptVersion} bereits definiert ist nicht, -% wird die Definition überprüft oder eine globale Definition -% vorgenommen. Da das ganze auch bei der Erstellung der Doku -% geschieht, wird mit \cs{makeatletter} innerhalb einer Gruppe -% gearbeitet. -% \begin{macrocode} -\begingroup - \makeatletter - \ifx\KOMAScriptVersion\undefined - \newcommand*{\@CheckKOMAScriptVersion}[1]{% - \gdef\KOMAScriptVersion{#1}% - }% - \else - \newcommand*{\@CheckKOMAScriptVersion}[1]{% - \def\@tempa{#1}% - \ifx\KOMAScriptVersion\@tempa\else - \@latex@warning@no@line{% - \noexpand\KOMAScriptVersion\space is - `\KOMAScriptVersion',\MessageBreak - but `#1' was expected!\MessageBreak - You should not use classes, packages or files - from\MessageBreak - different KOMA-Script versions% - }% - \fi - } - \fi - \@CheckKOMAScriptVersion{2012/07/29 v3.11b KOMA-Script}% -\endgroup -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \iffalse -%<*driver> -% \fi -\ProvidesFile{scrkvers.dtx}[\KOMAScriptVersion (versions)] -% \iffalse -\documentclass[halfparskip-]{scrdoc} -\usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkvers.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - -\begin{document} - \maketitle - \DocInput{\filename} -\end{document} -% -% \fi -% -%<*class> -% \begin{macro}{\KOMAClassName} -% \changes{v2.95}{2004/11/04}{Neu} -% \begin{macro}{\ClassName} -% \changes{v2.95}{2004/11/04}{Neu} -% Für \KOMAScript-Klassen wird hier einmalig der Name der Klasse definiert und -% und die Klasse der Klasse angegeben. -% \begin{macrocode} -\newcommand*{\KOMAClassName}{% -%
scrartcl% -% scrreprt% -% scrbook% -% scrlttr2% -} -\newcommand*{\ClassName}{% -%
article% -% report% -% book% -% letter% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macrocode} -\ProvidesClass{\KOMAClassName}[% - \KOMAScriptVersion\space document class (\ClassName)% -] -% \end{macrocode} -% -% -% \Finale -% -\endinput -% -% end of file `scrkvers.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrlayer-notecolumn.dtx b/Master/texmf-dist/source/latex/koma-script/scrlayer-notecolumn.dtx new file mode 100644 index 00000000000..5c3434b8787 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrlayer-notecolumn.dtx @@ -0,0 +1,1927 @@ +% \CheckSum{1577} +% \iffalse^^A meta-comment +% ====================================================================== +% scrlayer-notecolumn.dtx +% Copyright (c) Markus Kohm, 2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrlayer-notecolumn.dtx +% Copyright (c) Markus Kohm, 2013 +% +% Diese Datei ist Teil der LaTeX2e KOMA-Script-Sammlung. +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \fi^^A meta-comment +% +% \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 \~} +% +% \iffalse^^A meta-comment +%%%% From File: $Id: scrlayer-notecolumn.dtx 1514 2013-11-15 08:23:09Z mjk $ (identify) +%%%% From File: $Id: scrlayer-notecolumn.dtx 1514 2013-11-15 08:23:09Z mjk $ (init) +%%%% From File: $Id: scrlayer-notecolumn.dtx 1514 2013-11-15 08:23:09Z mjk $ (options) +%%%% From File: $Id: scrlayer-notecolumn.dtx 1514 2013-11-15 08:23:09Z mjk $ (body) +%<*dtx> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\begingroup + \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#4/#3/#2}} + \filedate$Date: 2013-11-15 09:23:09 +0100 (Fr, 15. Nov 2013) $ + \def\filerevision$#1: #2 ${\gdef\filerevision{v0.1.#2}} + \filerevision$Revision: 1514 $ +\endgroup +\ProvidesFile{scrlayer-notecolumn.dtx}[\filedate\space\filerevision\space +% +%<*identify|doc> +%\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%\ProvidesPackage{scrlayer-notecolumn}[% +%\ProvidesFile{scrlayer-notecolumn.tex}[% +% Sometimes following will be replaced by !KOMASCRIPTVERSION: +%!SCRLAYERVERSION +% package +% +%<*dtx|identify|doc> + (end user interface for scrlayer)] +% +%<*dtx> +\ifx\documentclass\undefined + \input scrdocstrip.tex + \@@input scrkernel-version.dtx + \@@input scrstrip.inc +% Some time we will need: +% \KOMAdefVariable{COPYRIGHTFROM}{2013} + \KOMAdefVariable{SCRLAYERVERSION}{\space\space\filedate\space\filerevision}% + \expandafter\let\csname ifbetawas\expandafter\endcsname + \csname ifbeta\endcsname + \expandafter\let\csname ifbeta\expandafter\endcsname + \csname iftrue\endcsname + \generate{\usepreamble\defaultpreamble + \file{scrlayer-notecolumn.sty}{% + \from{scrlayer-notecolumn.dtx}{interface,trace,notecolumn,identify}% + \from{scrlayer.dtx}{interface,trace,notecolumn,init}% + \from{scrlayer-notecolumn.dtx}{interface,trace,notecolumn,init}% + \from{scrlayer.dtx}{interface,trace,notecolumn,options}% + \from{scrlayer-notecolumn.dtx}{interface,trace,notecolumn,options}% + \from{scrlayer.dtx}{interface,trace,notecolumn,body}% + \from{scrlayer-notecolumn.dtx}{interface,trace,notecolumn,body}% + \from{scrlayer-notecolumn.dtx}{interface,trace,notecolumn,final}% + \from{scrlogo.dtx}{logo}% + }% + \file{scrlayer-notecolumn.tex}{% + \from{scrlayer-notecolumn.dtx}{doc}% + }% + } + \expandafter\let\csname ifbeta\expandafter\endcsname + \csname ifbetawas\endcsname + \@@input scrstrop.inc +\else + \let\endbatchfile\relax +\fi +\endbatchfile +% +%<*driver> + \documentclass{scrdoc} + \addtolength{\textwidth}{-1em} + \addtolength{\marginparwidth}{2em} + \addtolength{\oddsidemargin}{2em} + \usepackage[ngerman,english]{babel} + \usepackage{url,babelbib}\bibliographystyle{babalpha-fl} + \usepackage{listings} + \usepackage{scrhack} + \usepackage{etoolbox} + \pretocmd\DescribeMacro{\ifhmode\else\bigskip\noindent\fi}{}{} + \pretocmd\DescribeEnv{\ifhmode\else\bigskip\noindent\fi}{}{} + \pretocmd\DescribeOption{\ifhmode\else\bigskip\noindent\fi}{}{} + + \CodelineIndex + \RecordChanges + \GetFileInfo{scrlayer-notecolumn.dtx} + \title{The \texttt{scrlayer} interface \texttt{scrlayer-notecolumn}% + \footnote{This is version \fileversion\ of file \texttt{\filename}.}} + \date{\filedate} + \author{Markus Kohm} + + \newenvironment{Explain}{\par}{\par} + \newcommand*{\length}{} + \let\length\Length + \let\endlength\endLength + \let\Macro\cs + \let\Length\Macro + \let\Package\textsf + \let\Class\Package + \let\File\texttt + \let\Option\texttt + \newcommand*{\KOption}[1]{\Option{#1}\texttt{=}} + \newcommand*{\OptionValue}[2]{\Option{#1}\texttt{=}\PValue{#2}} + \let\Counter\texttt + \let\Environment\texttt + \let\ShowOutput\quote + \let\endShowOutput\endquote + \let\Pagestyle\texttt + \newcommand*{\Parameter}[1]{\texttt{\marg{#1}}\linebreak[1]} + \newcommand*{\OParameter}[1]{\texttt{\oarg{#1}}\linebreak[1]} + \newcommand*{\MParameter}[2]{\texttt{(\meta{#1},\meta{#2})}\linebreak[1]} + \providecommand\PParameter[1]{\mbox{\texttt{\{#1\}}}\linebreak[1]} + \let\PName\meta + \let\PValue\texttt + \providecommand*{\autoref}[1]{\expandafter\AUTOREF#1:} + \providecommand*{\AUTOREF}{} + \makeatletter + \def\AUTOREF#1:#2:{% + \edef\@tempa{#1}% + \edef\@tempb{tab}\ifx\@tempa\@tempb table~\fi + \edef\@tempb{sec}\ifx\@tempa\@tempb section~\fi + \ref{#1:#2}% + } + \providecommand*{\IndexCmd}[2][]{} + \providecommand*{\textnote}[2][]{} + \providecommand*\eTeX{\leavevmode\hbox{$\varepsilon$}-\TeX} + \providecommand*\NTS{% + \leavevmode\hbox{$\cal N\kern-0.35em\lower0.5ex\hbox{$\cal T$}% + \kern-0.2emS$}} + + \lstnewenvironment{lstcode}{\lstset{language=[LaTeX]TeX}}{} + \makeatother + \sloppy% YOU SHOULD NOT DO THIS!!! + + \begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} + \PrintChanges + \PrintIndex + \end{document} +% +% \fi^^A meta-comment +% +% \selectlanguage{english} +% +% \changes{v0.0}{2013/04/26}{start of interface} +% \let\restorechapter\chapter +% \let\chapter\section +% \let\section\subsection +% \let\subsection\subsubsection +% \iffalse +%<*dtx|doc> +% \fi + +\chapter[{End User Interface \Package{scrlayer-notecolumn}}]{End User + Interface \Package{scrlayer-notecolumn}\footnote{This is not a translation + of the corresponding chapter of the German \KOMAScript{} manual but the + tentative and primary implementation manual of package + \Package{scrlayer-notecolumn}. As long as \Package{scrlayer-notecolumn} is + primary a proof of concept this doesn't matter. But nevertheless, a + German to English translator would still be welcome.}} +\label{sec:scrlayer.notecolumn} +%\iffalse +\labelbase{scrlayer-notecolumn} +%\fi + +Sometimes documents need an additional notes column beside the main text +column and maybe beside the marginal note column. Problematicly may be +having page breaks inside the notes column. This package provides a +solution based on the layer interface of \Package{scrlayer}. You may +define several notes columns, each of them with page breaks +inside. It supports automatic page break inside of notes and recognises +note collisions and solve them by moving notes. + +The idea of this package raised while an e-mail contact with Heiner +Richter from FH~Stralsund, who told me of a book project, and asked +whether or not such a functionality may be added to another package of +mine easily. It couldn't, but design and implementation of a first test +alpha of \Package{scrlayer-notecolumn} has been done in about three +hours. So maybe it was a really good idea to ask me the question. + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\DeclareNoteColumn} +% \DescribeMacro{\DeclareNewNoteColumn} +% \DescribeMacro{\ProvideNoteColumn} +% \DescribeMacro{\RedeclareNoteColumn} +% The command + \Macro{DeclareNoteColumn}% + \OParameter{option list}\Parameter{note column name}% +%\iffalse^^A meta-comment + \\ + \Macro{DeclareNewNoteColumn}% + \OParameter{option list}\Parameter{note column name}\\%^^A + \Macro{ProvideNoteColumn}% + \OParameter{option list}\Parameter{note column name}\\%^^A + \Macro{RedeclareNoteColumn}% + \OParameter{option list}\Parameter{note column name}% +\end{Declaration} +\BeginIndex{Cmd}{DeclareNoteColumn}% +\BeginIndex{Cmd}{DeclareNewNoteColumn}% +\BeginIndex{Cmd}{ProvideNoteColumn}% +\BeginIndex{Cmd}{RedeclareNoteColumn}% +Command \Macro{DeclareNoteColumn} +%\fi^^A meta-comment +may be used to declare a note column. Each note column is referenced by its +name, defined by the obligatory argument \PName{note column name}. A note +column vertically span the text area. + +By default its horizontal position is the current position of the marginal +note column. It also regards \Macro{reversemarginpar} and +\Macro{normalmarginpar}, while output of a note. Note that this is not the +same like making a margin note. The default width is +\Length{marginparwidth}. But you may use the optional argument \PName{option + list} to change this behaviour. + +The \PName{option list} is a comma-separated list of +\texttt{\PName{key}=\PName{value}} options. Currently the following +\PName{key}s are supported: +\begin{labeling}[\ --]{\KOption{position}\PName{horizontal offset}} +\item [\KOption{font}\PName{font declaration}] set the initial font attributes + to be used for the note column. Everything, that is allowed to be set by + \Macro{setkomafont} or \Macro{addtokomafont} can be used as + \PName{font declaration}. Note, that + \Macro{normalfont}\Macro{normalsize} will be used + before. So you don't need one of them at your own initialisation. +\item [\Option{marginpar}] set up \Option{position} and \Option{width} to use + the marginal note column of \Macro{marginpar}. +\item [\Option{normalmarginpar}] set up \Option{position} and \Option{width} + to use the normal marginal note column and ignore \Macro{reversemarginpar} + and \Macro{normalmarginpar}. +\item [\KOption{position}\PName{horizontal offset}] set up the horizontal + offset of the note column from the left edge of the paper. The + \PName{horizontal offset} can be either a \LaTeX{} length, a \TeX{} + dimension, a \TeX{} skip, a length value, or a dimensional expression using + \texttt{+}, \texttt{-}, \texttt{*}, \texttt{/} and parenthesis (see + \cite[section~3.5]{manual:eTeX} for more information about dimensional + expressions). The value will be calculated at usage time not at definition + time. So you may even use more complex constructs like: +\begin{lstcode} + \ifodd\value{page} + \oddsidemargin+1in + +\textwidth+\marginparsep + \else + \evensidemargin+1in + -\marginparsep + -\marginparwidth + \fi +\end{lstcode} +\item [\Option{reversemarginpar}] set up \Option{position} and \Option{width} + to use the reverse marginal note column and ignore \Macro{reversemarginpar} + and \Macro{normalmarginpar}. +\item [\KOption{width}\PName{size}] set up the horizontal size of the note + column. You can use the same values for \PName{size} like for + \PName{horizontal offset} of option \Option{position}. +\end{labeling} + +You may use as much note columns as \LaTeX{} provides free box registers, +because every note column needs one box register. You may use package +\Package{etex} to increase the normal amount of box registers from 256 to +32768. This should be enough to avoid the ``\texttt{no room for + \Macro{newbox}}'' error. + +The implementation of note columns uses foreground layers from package +\Package{scrlayer}. Every \Macro{DeclareNoteColumn} generates a layer and adds +this layer to the pseudo page style \Pagestyle{@everystyle@}. Theoretically +you may modify the generated layer, but it is recommended not to modify them. + +Overlapping of different note columns is allowed. There's one predefined note +column named ``\texttt{marginpar}''. + +% \iffalse^^A meta-comment +\BeginIndex{FontElement}{notecolumn.\PName{note column name}}% +% \fi^^A meta-comment +Note, that if you change the initial font using +\begin{quote} + \Macro{setkomafont}\linebreak[1]\PParameter{marginnote.\PName{note column + name}}\Parameter{font declaration} +\end{quote} +or +\begin{quote} + \Macro{addtokomafont}\linebreak[1]\PParameter{marginnote.\PName{note column + name}}\Parameter{font declaration} +\end{quote} +the font of all succeeding note column outputs would change. This could make it +hard to find out, which notes will be affected by the change. +% \iffalse^^A meta-comment +See \autoref{sec:maincls.textmarkup}, +\autopageref{desc:maincls.cmd.setkomafont} for more information about +\Macro{setkomafont} and \Macro{addtokomafont}.% +\EndIndex{FontElement}{notecolumn.\PName{note column name}}% +% \fi^^A meta-comment + +The difference between \Macro{DeclareNoteColumn} and the other commands is, +that \Macro{DeclareNoteColumn} defines the note column independent whether a +note column with the same name has already been defined or +not. \Macro{DeclareNewNoteColumn} defined only note columns which names are +not yet used for another note column. It's an error to use it with an already +used \PName{note column name}. \Macro{ProvideNoteColumn} is like +\Macro{DeclareNewNoteColumn}, but if the \PName{note column name} is already +used for a note column nothing happens. \Macro{RedeclareNoteColumn} may be +used to declare a note column with a name, that is already used. Using it with +a new name is an error. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{RedeclareNoteColumn}%^^A +\EndIndex{Cmd}{ProvideNoteColumn}%^^A +\EndIndex{Cmd}{DeclareNewNoteColumn}%^^A +\EndIndex{Cmd}{DeclareNoteColumn}%^^A +%\fi^^A meta-comment + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\makenote} +% The command + \Macro{makenote}% + \OParameter{note column name}\Parameter{note text} +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{makenote}% +This command +%\fi^^A meta-comment +may be used to make a new note. The note will be written to a helper file with +extension \File{.slnc} in this run. In the next run, it will be +typeset. Normally it will be typeset with the same vertical position, that +would be used for a \Macro{parbox[t]}, but horizontally moved to the note +column. Collisions at this position of this note column (but not of other note +columns) will be recognised. In such a case the note may be moved down and +even to another page. Automatic page breaks at the note columns are +supported. This is something different to \Macro{marginpar}, +\Macro{marginline} (\KOMAScript{} classes), or \Macro{marginnote} (package +\Package{marginnote}). + +Note, that after changing the document, at least two \LaTeX{} runs are needed +to move the note to its final position. + +Note, that fragile commands should be protected to avoid error messages while +writing or reading the helper file. + +Note, that \Package{scrlayer-notecolumn} needs only one helper file for all +note columns together. You should not edit or change that helper file, because +the syntax is fragile. It won't be read using \Macro{input} but +\Macro{read}. Because of this, line breaks, empty lines and \Macro{par} should +be avoided. + +Currently it is unknown where you may use \Macro{makenote} and where not. But +you must not use \Macro{makenote} inside of \Macro{makenote}! + +The default for the optional argument \PName{makenote} is \PValue{marginpar}, +that is the \PName{note column name} of the pre-defined note column. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{makenote} +%\fi^^A meta-comment + +%\iffalse^^A meta-comment +\begin{Declaration} + \KOption{autoclearnotecolumns}\PName{simple switch}\\ +%\fi^^A meta-comment +% \DescribeMacro{\clearnotecolumn} +% The commands + \Macro{clearnotecolumn}\OParameter{name of a note column}% +% \iffalse^^A meta-comment + \\ +% \fi^^A meta-comment +% and + \Macro{clearnotecolumns}\OParameter{list of note column names} +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{clearnotcolumn}% +\BeginIndex{Cmd}{clearnotcolumns}% +The commands +%\fi^^A meta-comment +may be used to output all hanging notes for either one or several note +columns. With \Macro{clearnotecolumn} only the notes of the note column with +the given \PName{name of a note column} will be output. If you omit the +optional argument (this is not the same like using an empty value!) note +column \PValue{marginnote} will be used. + +With \Macro{clearnotecolumns} the notes of all note columns of the comma +separated \PName{list of note column names} will be output. If you omit the +optional Argument or if the optional Argument is empty (or start with +\Macro{relax}) the notes of all note columns will be output. + +Macro \Macro{clearpage} will be used to output hanging notes and several +\LaTeX{} runs may be needed to terminate with the correct number of +\Macro{clearpage} for the whole document. You will get the message ``\LaTeX{} +Warning: Label(s) may have changed. Rerun to get cross-references right.'' as +long as the process hasn't been terminated. + +But normally you don't need to us \Macro{clearnotecolum} or +\Macro{clearnotecolumns} yourself. Because by default option +\Option{autoclearnotecolumns} is switched on, which means, that +\Macro{clearnotecolumns} will be done at every \Macro{clearpage}. You may +change this, switching off \Macro{autoclearnotecolumns} using one of the +values for simple switches. + +Note, that it is not allowed to use \Macro{clearnotecolumn} or +\Macro{clearnotecolumns} inside a note. You can use these commands only inside +the main text of the document.% +%\iffalse^^A meta-comment +\EndIndex{Cmd}{clearnotcolumns}% +\EndIndex{Cmd}{clearnotcolumn}% +%\fi^^A meta-comment + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\syncwithnotecolumn} +% The commands + \Macro{syncwithnotecolumn}\OParameter{name of a note column}% +% \iffalse^^A meta-comment + \\ +% \fi^^A meta-comment +% and + \Macro{syncwithnotecolumns}\OParameter{list of note column names}% +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{syncwithnotecolumn}% +\BeginIndex{Cmd}{syncwithnotecolumns}% +These commands +%\fi^^A meta-comment +may be used to synchronise the vertical position of the main text with one or +several note columns. If you use the optional argument of +\Macro{syncwithnotecolumn} it should be one \PName{name of a note column}. If +you omit it, \PValue{marginpar} will be used as the \PName{name of a note + column}. Usage of \Macro{syncwithnotecolumn} is exactly the same like usage +of \Macro{syncwithnotecolumns} with exactly one \PName{name of a note column}. + +The optional argument of \Macro{syncwithnotecolumns} is a comma-separated list +of names of note columns. If you omit this optional argument or if you use an +empty argument or if the argument starts with \Macro{relax} synchronisation +will be done with all declared note columns. + +Synchronisation with a note column means, that the current position of the +main text will be changed to be the current vertical position of the note +column after cleaning the note column. This differs in several point from +cleaning a note column: +\begin{itemize} +\item After cleaning a note column the text position would change to be at a + new page, even if the note column doesn't fill the whole page + before. Synchronisation will change the vertical position just after the + last vertical position of the note column. +\item Cleaning a note column needs less \LaTeX{} runs than synchronising a + note column. +\end{itemize} +Both, cleaning an synchronising a note column, uses the label mechanism of +\LaTeX{} without using \Macro{label}, \Macro{ref}, or \Macro{pageref} itself +(but \Macro{newlabel}). So you should have a look at \LaTeX{} rerun messages, +because of undefined or changed labels. + +Note, that it is not allowed to use \Macro{syncwithnotecolumn} or +\Macro{syncwithnotecolumns} inside a note. If you do so, you need endless +\LaTeX{} runs without reaching a final state. But synchronisation of several +note columns in the main text of a document will also synchronise the notes +columns with each others.% +%\iffalse^^A meta-comment +\EndIndex{Cmd}{syncwithnotecolumns} +\EndIndex{Cmd}{syncwithnotecolumn} +%\fi^^A meta-comment + + +%\iffalse +% +%\fi +% +% \StopEventually{} +% +% \chapter{Implementation of \Package{scrlayer-notecolumn}} +% +% This section if for developers only. +% +% \iffalse +%<*interface> +%<*identify> +% \fi +% +%\iffalse +% +%\fi +% +% +% \section{Initialising some Values before the Options} +% +% \iffalse^^A meta-comment +%<*init> +% \fi^^A meta-comment +% +% Initialisation before all options (even the options from +% \File{scrlayer.dtx}). +% +% Here we test the used pdf\TeX{} primitives. +% \begin{macrocode} +\@tempswatrue +\scr@ifundefinedorrelax{pdfsavepos}{% + \expandafter\@tempswafalse +}{% + \scr@ifundefinedorrelax{pdflastypos}{% + \expandafter\@tempswafalse + }{}% +} +\if@tempswa\else + \PackageError{scrlayer-notecolumn}{missing pdfTeX features}{% + This package needs \string\pdfsavepos\space and + \string\pdflastypos.\MessageBreak + This error is fatal, because usage of the package without these + features\MessageBreak + cannot work!\MessageBreak + You shouldn't continue, but if you'd try, I'll try to abort the LaTeX run + }% + \batchmode\csname @@end\endcsname\end +\fi +% \end{macrocode} +% +% \iffalse^^A meta-comment +% +% \fi^^A meta-comment +% +% \section{Making a Note Column} +% +% The package supports a various number of note columns. Each is referenced by +% a unique name. +% +% \begin{macro}{\DeclareNoteColumn} +% \begin{description} +% \item[\OParameter{option list}:] a comma-separated list of +% \texttt{\meta{key}=\meta{value}} pairs. +% \item[\Parameter{string}:] the name of the note column (must be fully +% expandable and expand to a string only). +% \end{description} +% That's the primary command for note columns. It defines everything, the note +% column needs. +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\DeclareNoteColumn{% + \newcommand*{\DeclareNoteColumn}[2][]{% +% \end{macrocode} +% First of all we need a box register. The contents of the note column will be +% build inside of this register. Since \eTeX{} registers shouldn't be a +% problem. User should use package \Package{etex}, if he or she runs out of +% registers. Note, that the registers will stay allocated, if the interface +% will be removed! Nevertheless, the name will be destroyed! +% \begin{macrocode} + \@ifundefined{slnc@#2@box}{% + \expandafter\newsavebox\csname slnc@#2@box\endcsname + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \expandafter\let\csname slnc@#2@box\endcsname\relax + }% + }{}% +% \end{macrocode} +% There's also a kind of item stack of unprocessed notes for each note column. +% \begin{macrocode} + \@ifundefined{slnc@#2@unprocessed}{% + \@namedef{slnc@#2@unprocessed}{}% + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \expandafter\let\csname slnc@#2@unprocessed\endcsname\relax + }% + }{}% +% \end{macrocode} +% Next we need a horizontal positions and a width for the note column. Neither +% the horizontal position nor the width are stretchable or shrinkable. The +% position should be variable depending on the page. So it's better to use a +% macro instead of a length. The width isn't more variable than, e.g., the +% text width. So we can use a macro too. Both will be initialised to the +% normal marginal note column. +% \begin{macrocode} + \@ifundefined{slnc@#2@pos}{% + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \expandafter\let\csname slnc@#2@pos\endcsname\relax + }% + }{}% + \@ifundefined{slnc@#2@width}{% + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \expandafter\let\csname slnc@#2@width\endcsname\relax + }% + }{}% +% \end{macrocode} +% If there isn't a font element for the (new) note column, we define a new one +% and add it to the auto-remove code: +% \begin{macrocode} + \@ifundefined{scr@fnt@notecolumn.#2}{% + \@ifundefined{@notecolumn.#2font}{% + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \expandafter\let\csname @notecolumn.#2font\endcsname\relax + }% + }{% + \PackageInfo{scrlayer-notecolumn}{using already defined + macro\MessageBreak + `\expandafter\string\csname @notecolumn.#2font\endcsname' for font + element\MessageBreak + `notecolumn.#2'% + }% + }% + \newkomafont{notecolumn.#2}{}% + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \expandafter\let\csname scr@fnt@notecolumn.#2\endcsname\relax + }% + }{% + \PackageInfo{scrlayer-notecolumn}{using already defined font + element\MessageBreak + `notecolumn.#2'% + }% + }% +% \end{macrocode} +% After the initialisation we process the options, that may change the initial +% values. +% \begin{macrocode} + \newcommand*{\slnc@name}{}% + \edef\slnc@name{#2}% + \FamilyExecuteOptions[.definenotecolumn]{KOMAarg}{marginpar,#1}% + \let\slnc@name\relax +% \end{macrocode} +% The values are set up, so they may be used to declare a layer. +% \begin{macrocode} + \DeclareLayer[% + foreground,% + align=tl,% + voffset=1in+\topmargin+\headheight+\headsep,% + height=\dimexpr\textheight+\topskip\relax,% + hoffset=\csname slnc@#2@pos\endcsname,% + width=\csname slnc@#2@width\endcsname,% + contents=\slnc@processnotes{#2}% + ]{notecolumn.#2} +% \end{macrocode} +% We need to add the layer to every page style. The easiest way to do this is +% to add it to the pseudo layer page style \Pagestyle{@everystyle@}. +% \begin{macrocode} + \AddLayersToPageStyle{@everystyle@}{notecolumn.#2}% +% \end{macrocode} +% On auto-removing the interface, the layer should be removed from +% \Pagestyle{@everystyle@} and should be destroyed. +% \begin{macrocode} + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \RemoveLayersFromPageStyle{@everystyle@}{notecolumn.#2}% + \DestroyLayer{notecolumn.#2}% + }% +% \end{macrocode} +% Last but not least, we add the new note column to the note column procession +% list. +% \begin{macrocode} + \@cons\slnc@processnotecolumns{{#2}}% + }% +} +% \end{macrocode} +% \begin{macro}{\slnc@processnotecolumns} +% This is a list of all declared note columns in \LaTeX{} syntax (using +% \Macro{@cons} and \Macro{@elt} etc.). +% \begin{macrocode} +\scrlayerAddToInterface\slnc@processnotecolumns{% + \newcommand*{\slnc@processnotecolumns}{}% +} +% \end{macrocode} +% \end{macro}^^A \slnc@processnotecolumns +% \begin{macrocode} +% +% \end{macrocode} +% One note column will be declared by default: +% \begin{macrocode} +%<*final> +\DeclareNoteColumn{marginpar} +% +%<*body> +% \end{macrocode} +% \begin{macro}{\slnc@testforpagestylewarning} +% Not all page styles are layer page styles, but only layer page styles can be +% extended by the note column layers. So we warn, if another page style has +% been selected. +% \begin{macrocode} +\scrlayerAddToInterface\slnc@testforpagestylewarning{% + \newcommand*{\slnc@testforpagestylewarning}{% + \IfLayerPageStyleExists{\currentpagestyle}{}{% + \PackageWarning{scrlayer-notecolumn}{% + output of note columns delayed,\MessageBreak + because with `\currentpagestyle'\MessageBreak + a page style has been selected, that\MessageBreak + isn't a layer page style,% + }% + }% + }% +} +\AfterSelectAnyPageStyle{\slnc@testforpagestylewarning} +% \end{macrocode} +% \end{macro}%^^A \slnc@testforpagestylewarning +% \begin{option}{position} +% \begin{option}{width} +% \begin{option}{font} +% \begin{option}{marginpar} +% \begin{option}{normalmarginpar} +% \begin{option}{reversemarginpar} +% Last but not least we have to define the options for the \PName{option +% list}. +% \begin{macrocode} +\DefineFamilyMember[.definenotecolumn]{KOMAarg} +\DefineFamilyKey[.definenotecolumn]{KOMAarg}{position}{% + \@namedef{slnc@\slnc@name @pos}{\dimexpr #1\relax}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@position} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@position@default} +\DefineFamilyKey[.definenotecolumn]{KOMAarg}{width}{% + \@namedef{slnc@\slnc@name @width}{\dimexpr #1\relax}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@width} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@width@default} +\DefineFamilyKey[.definenotecolumn]{KOMAarg}{font}{% + \setkomafont{notecolumn.\slnc@name}{#1}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@font} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@font@default} +\DefineFamilyKey[.definenotecolumn]{KOMAarg}{marginpar}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{marginpar}{#1}% + \edef\reserved@a{\noexpand\slnc@defpos{\slnc@name}}\reserved@a + \@namedef{slnc@\slnc@name @width}{\marginparwidth}% +} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@marginpar} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@marginpar@default} +% \end{macrocode} +% \begin{macro}{\slnc@defpos} +% Little helper for option \Option{marginpar}. The argument is the expanded +% name of the note column. +% \begin{macrocode} +\scrlayerAddToInterface\slnc@defpos{% + \newcommand*\slnc@defpos[1]{% + \@namedef{slnc@#1@pos}{% + \ifodd\value{page} + \if@reversemargin +% \end{macrocode} +% The reverse marginal note column on odd pages is at the left margin. +% \begin{macrocode} + \dimexpr \oddsidemargin+1in + -\marginparsep-\csname slnc@#1@width\endcsname\relax + \else +% \end{macrocode} +% The normal marginal note column on odd pages is the right margin. +% \begin{macrocode} + \dimexpr \oddsidemargin+1in + +\textwidth+\marginparsep\relax + \fi + \else + \if@twoside + \if@reversemargin +% \end{macrocode} +% The reverse marginal note column on even pages is the right margin. +% \begin{macrocode} + \dimexpr \evensidemargin+1in + +\textwidth+\marginparsep\relax + \else +% \end{macrocode} +% The normal marginal note column on even pages is at the left margin. +% \begin{macrocode} + \dimexpr \evensidemargin+1in + -\marginparsep-\csname slnc@#1@width\endcsname\relax + \fi + \else +% \end{macrocode} +% \begin{macrocode} +% If not in two-side mode, do the same already done for odd pages. + \if@reversemargin + \dimexpr \oddsidemargin+1in + -\marginparsep-\csname slnc@#1@width\endcsname\relax + \else + \dimexpr \oddsidemargin+1in + +\textwidth+\marginparsep\relax + \fi + \fi + \fi + }% + }% +}% +% \end{macrocode} +% \end{macro}%^^A \slnc@defpos +% \begin{macrocode} +\DefineFamilyKey[.definenotecolumn]{KOMAarg}{normalmarginpar}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{normalmarginpar}{#1}% + \edef\reserved@a{\noexpand\slnc@defnormalpos{\slnc@name}}\reserved@a + \@namedef{slnc@\slnc@name @width}{\marginparwidth}% +} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@normalmarginpar} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@normalmarginpar@default} +% \end{macrocode} +% \begin{macro}{\slnc@defnormalpos} +% Little helper for option \Option{normalmarginpar}. The argument is the +% expanded name of the note column. +% \begin{macrocode} +\scrlayerAddToInterface\slnc@defnormalpos{% + \newcommand*\slnc@defnormalpos[1]{% + \@namedef{slnc@#1@pos}{% + \ifodd\value{page} +% \end{macrocode} +% The normal marginal note column on odd pages is the right margin. +% \begin{macrocode} + \dimexpr \oddsidemargin+1in + +\textwidth+\marginparsep\relax + \else + \if@twoside +% \end{macrocode} +% The normal marginal note column on even pages is at the left margin. +% \begin{macrocode} + \dimexpr \evensidemargin+1in + -\marginparsep-\csname slnc@#1@width\endcsname\relax + \else +% \end{macrocode} +% \begin{macrocode} +% If not in two-side mode, do the same already done for odd pages. + \dimexpr \oddsidemargin+1in + +\textwidth+\marginparsep\relax + \fi + \fi + }% + }% +}% +% \end{macrocode} +% \end{macro}%^^A \slnc@defnormalpos +% \begin{macrocode} +\DefineFamilyKey[.definenotecolumn]{KOMAarg}{reversemarginpar}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{reversemarginpar}{#1}% + \edef\reserved@a{\noexpand\slnc@defreversepos{\slnc@name}}\reserved@a + \@namedef{slnc@\slnc@name @width}{\marginparwidth}% +} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@reversemarginpar} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@reversemarginpar@default} +% \end{macrocode} +% \begin{macro}{\slnc@defreversepos} +% Little helper for option \Option{reversemarginpar}. The argument is the +% expanded name of the note column. +% \begin{macrocode} +\scrlayerAddToInterface\slnc@defreversepos{% + \newcommand*\slnc@defreversepos[1]{% + \@namedef{slnc@#1@pos}{% + \ifodd\value{page} +% \end{macrocode} +% The reverse marginal note column on odd pages is at the left margin. +% \begin{macrocode} + \dimexpr \oddsidemargin+1in + -\marginparsep-\csname slnc@#1@width\endcsname\relax + \else + \if@twoside +% \end{macrocode} +% The reverse marginal note column on even pages is the right margin. +% \begin{macrocode} + \dimexpr \evensidemargin+1in + +\textwidth+\marginparsep\relax + \else +% \end{macrocode} +% \begin{macrocode} +% If not in two-side mode, do the same already done for odd pages. + \dimexpr \oddsidemargin+1in + -\marginparsep-\csname slnc@#1@width\endcsname\relax + \fi + \fi + }% + }% +}% +% \end{macrocode} +% \end{macro}%^^A \slnc@defreversepos +% \begin{macrocode} +% +% \end{macrocode} +% \end{option}%^^A reversemarginpar +% \end{option}%^^A normalmarginpar +% \end{option}%^^A marginpar +% \end{option}%^^A font +% \end{option}%^^A width +% \end{option}%^^A position +% \end{macro}%^^A \DeclareNoteColumn +% +% \begin{macro}{\DeclareNewNoteColumn} +% \begin{macro}{\ProvideNoteColumn} +% \begin{macro}{\RedeclareNoteColumn} +% Like \Macro{DeclareNoteColumn} but with restrictions, if the note column has +% (not) been declared already. +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\DeclareNewNoteColumn{% + \newcommand*{\DeclareNewNoteColumn}[2][]{% + \scr@ifundefinedorrelax{slnc@#2@box}{}{% + \PackageError{scrlayer-notecolumn}{note column `#2' already defined}{% + You may declare only note columns, that haven't been declared + previously using\MessageBreak + \string\DeclareNewNoteColumn. See also the alternatives + \string\RedeclareNoteColumn,\MessageBreak + \string\ProvideNoteColumn, and \string\DeclareNoteColumn.\MessageBreak + Nevertheless, if you'll continue, declaration will be done.% + }% + }% + \DeclareNoteColumn[{#1}]{#2}% + }% +} +\scrlayerAddToInterface\ProvideNoteColumn{% + \newcommand*{\ProvideNoteColumn}[2][]{% + \scr@ifundefinedorrelax{slnc@#2@box}{}{% + \PackageInfo{scrlayer-notecolumn}{\string\ProvideNoteColumn{#2} + ignored,\MessageBreak + because of already defined\MessageBreak + not column}% + }{% + \DeclareNoteColumn[{#1}]{#2}% + }% + }% +} +\scrlayerAddToInterface\RedeclareNoteColumn{% + \newcommand*{\RedeclareNoteColumn}[2][]{% + \scr@ifundefinedorrelax{slnc@#2@box}{% + \PackageError{scrlayer-notecolumn}{note column `#2' undefined}{% + You may declare only note columns, that have been declared + previously using\MessageBreak + \string\RedeclareNoteColumn. See also the alternatives + \string\DeclareNewNoteColumn,\MessageBreak + \string\ProvideNoteColumn, and \string\DeclareNoteColumn.\MessageBreak + Nevertheless, if you'll continue, declaration will be done.% + }% + }{}% + \DeclareNoteColumn[{#1}]{#2}% + }% +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \section{Setting a Note Column} +% +% We already have commands to declare note columns. But we also need a command +% to put contents into the note columns and to output the note columns. +% +% \begin{macro}{\tf@slnc} +% \begin{macro}{\slnc@initwrite} +% \begin{macro}{\slnc@openwrite} +% First of all we need a file to write the notes to. We use the +% \File{aux}-file to write into the file, because we need to read the file +% while the document will be typeset and the same time we need to write into +% the file. Note, that the file will be still reserved on auto-removing the +% interface! +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\tf@slnc{% + \newwrite\tf@slnc + \AtBeginDocument{% + \immediate\write\@auxout{% + \noexpand\csname slnc@initwrite\noexpand\endcsname + }% + }% + \AtEndDocument{\let\slnc@initwrite\slnc@openwrite}% +} +\scrlayerAddToInterface\slnc@initwrite{}% +\scrlayerAddToInterface\slnc@openwrite{% + \newcommand*{\slnc@openwrite}{% + \immediate\closeout\slnc@file +%<*trace> + \PackageInfo{scrlayer-notecolumn}{% + Opening `\jobname.slnc'\MessageBreak + for writing}% +% + \immediate\openout\tf@slnc\jobname.slnc + }% +} +\AfterReadingMainAux{% + \immediate\closeout\tf@slnc + \scr@ifundefinedorrelax{pdfmdfivesum}{% + \PackageWarningNoLine{scrlayer-notecolumn}{% + \string\pdfmdfivesum\space unavailable.\MessageBreak + The package needs \string\pdfmdfivesum\space to test\MessageBreak + whether or not one more LaTeX run will\MessageBreak + be needed to make the note columns\MessageBreak + right. If this command is unavailable\MessageBreak + you have to do the decision without\MessageBreak + this help of the package.% + }% + }{% + \begingroup + \edef\reserved@a{\pdfmdfivesum file {\jobname.slnc}}% + \ifx \slnc@mdfivesum\reserved@a +%<*trace> + \PackageInfo{scrlayer-notecolumn}{% + MD5 of current `\jobname.slnc':\MessageBreak + \reserved@a}% +% + \else +%<*trace> + \PackageWarningNoLine{scrlayer-notecolumn}{% + MD5 of slnc-file changed.\MessageBreak + Last: \slnc@mdfivesum\MessageBreak + New: \space \reserved@a\MessageBreak + At least one more LaTeX rerun need to\MessageBreak + make note columns right% + }% +% + \aftergroup\@tempswatrue + \fi + \endgroup + }% +} +% +% \end{macrocode} +% \end{macro}^^A \slnc@openwrite +% \end{macro}^^A \slnc@initwrite +% \end{macro}^^A \tf@slnc +% +% \begin{macro}{\makenote} +% \begin{description} +% \item[\OParameter{string}:] the name of the note column the note should be +% added to (must be fully expandable and expand to a string only). The +% default value is \PValue{marginpar}. +% \item[\Parameter{code}:] the code, that should become par of the note +% column. Note, that this will be written protected to a file. So you have +% to use \Macro{protect} if a macro shouldn't be expanded while writing or +% may break while writing. +% \end{description} +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\makenote{% + \newcommand{\makenote}[2][marginpar]{% + \@bsphack + \pdfsavepos + \addtocontents{slnc}{% + \string\slnc@note{#1}% + {\noexpand\number\value{slncpage}}% + {\noexpand\number\pdflastypos}% + {#2}% + }% + \@esphack + }% +} +% \end{macrocode} +%^^A \begin{counter}{slncpage} +% This counter should be increased once per page with note column. This may +% be done simply at a once per page executed hook of +% \Pagestyle{@everystyle@}. You should note, that auto-remove wouldn't +% remove the counter. +% \begin{macrocode} +\@ifundefined{c@slncpage}{% + \newcounter{slncpage}% + \AddToLayerPageStyleOptions{@everystyle@}{% + onbackground=\stepcounter{slncpage}% + }% +}{} +% +% \end{macrocode} +%^^A \end{counter}^^A slncpage +% \end{macro}^^A \makenote +% +% \begin{macro}{\slnc@processnotes} +% \begin{description} +% \item[\Parameter{string}:] the name of the note column (must be fully +% expandable an expand to a string only). +% \end{description} +% Each note column typesets the notes with this command. It works in following +% steps: +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\slnc@processnotes{% + \newcommand*{\slnc@processnotes}[1]{% +% \end{macrocode} +% Read as long notes from the notes file until the number at \#2 of +% \Macro{slnc@note} in the file is greater than \Counter{slncpage}. Put all +% these to the corresponding unprocessed list. +% \begin{macrocode} + \begingroup + \slnc@readnotes{\value{slncpage}}% +% \end{macrocode} +% Process the unprocessed list of the current note column +% \begin{macrocode} + \expandafter\let\expandafter\reserved@a + \csname slnc@#1@unprocessed\endcsname + \expandafter\global + \expandafter\let\csname slnc@#1@unprocessed\endcsname\@empty + \def\slnc@notesyncfonttest##1{% + \ifhmode + \PackageError{scrlayer-notecolumn}{% + illegal font setting for `notecolumn.##1'% + }{% + Current setting of font for `notecolumn.##1' switches + from\MessageBreak + vertical mode to horizontal mode. This is + illegal!\MessageBreak + You have to change the font setting to fix + this.\MessageBreak + If you'll continue vertical alignment of notes may fail% + }% + \par\vskip-\dimexpr \baselineskip+\parskip\relax + \fi + }% + \long\def\slnc@note##1##2##3##4{% + \let\PackageInfo\PackageWarning + \ifnum ##2>\value{slncpage}\relax + \expandafter\g@addto@macro\csname slnc@#1@unprocessed\endcsname{% + \slnc@note{##1}{##2}{##3}{##4}% + }% + \else + \ifnum ##2<\value{slncpage}\relax + \PackageWarning{scrlayer-notecolumn}{note of type `#1' delayed.}% + \fi + \boxmaxdepth\maxdepth + \expandafter\setbox\csname slnc@#1@box\endcsname\vbox{% + \expandafter\hsize\csname slnc@#1@width\endcsname + \normalfont\normalsize + {% +% \end{macrocode} +% Question: Why is it not allowed to set a colour here? +% \begin{macrocode} + \let\color\@gobble + \usekomafont{notecolumn.#1}{% + \slnc@notesyncfonttest{#1}% + \expandafter\ifvoid\csname slnc@#1@box\endcsname + \expandafter\setbox\csname slnc@#1@box\endcsname\vbox{% + \kern\dimexpr\topskip-\baselineskip\relax + }% + \fi + \scr@ifundefinedorrelax{pdfpageheight}{% + \@tempdima=\paperheight + }{% + \@tempdima=\pdfpageheight + }% + \@tempdima=\dimexpr \@tempdima-##3sp + -1in-\topmargin + -\headheight-\headsep + -\baselineskip + \relax + \@tempdimb=\dimexpr \expandafter\ht\csname slnc@#1@box\endcsname + +\expandafter\dp\csname slnc@#1@box\endcsname + \relax + \typeout{Soll: \the\@tempdima^^JIst: \space\the\@tempdimb}% + \ifdim\@tempdima<\@tempdimb +%<*trace> + \PackageInfo{scrlayer-notecolumn}{% + Note moved down from\MessageBreak + \the\@tempdima\space to \the\@tempdimb\MessageBreak + at note box `#1' + }% +% + \else + \ifdim\@tempdima>\@tempdimb +%<*trace> + \PackageInfo{scrlayer-notecolumn}{% + Adding vertical white space from\MessageBreak + \the\@tempdimb\space to \the\@tempdima\MessageBreak + into note box `#1' + }% +% + \expandafter\setbox\csname slnc@#1@box\endcsname + \vbox {% + \expandafter\unvbox\csname slnc@#1@box\endcsname + \kern\dimexpr\@tempdima-\@tempdimb\relax + }% + \fi + \fi + \expandafter\ifvoid\expandafter\csname slnc@#1@box\endcsname + \else + \@tempdima\dimexpr + \dp\strutbox + -\dp\csname slnc@#1@box\endcsname + \relax + \expandafter\unvbox\csname slnc@#1@box\endcsname + \ifdim\@tempdima>\z@ \kern\@tempdima\fi + \fi + \strut\ignorespaces ##4\par + }% + }% + }% + \fi + }% + \def\slnc@sync##1##2##3##4{% + \ifnum ##2>\value{slncpage}\relax + \expandafter\g@addto@macro\csname slnc@#1@unprocessed\endcsname{% + \slnc@sync{##1}{##2}{##3}{}% + }% + \else + \if@filesw + \expandafter\setbox\csname slnc@#1@box\endcsname\vbox{% + \expandafter\unvbox\csname slnc@#1@box\endcsname + \pdfsavepos + \protected@write\@auxout{}{% + \string\newlabel{notecolumn.##1.##3.syncnote.label}{% + {% + \noexpand\number\pdflastypos + }{\thepage}% + }% + }% + }% + \fi + \fi + }% + \reserved@a + \expandafter\ifvoid\csname slnc@#1@box\endcsname +%<*trace> + \PackageInfo{scrlayer-notecolumn}{Note box `#1' empty}% +% + \else + \ifdim \dimexpr \expandafter\ht\csname slnc@#1@box\endcsname + +\expandafter\dp\csname slnc@#1@box\endcsname + \relax >\textheight\relax +%<*trace> + \PackageInfo{scrlayer-notecolumn}{Split note box `#1'}% +% + \splittopskip\topskip + \splitmaxdepth\baselineskip +% \end{macrocode} +% Bring back the colours: +% \begin{macrocode} + \usekomafont{notecolumn.#1}{% + \expandafter\vsplit\csname slnc@#1@box\endcsname to + \textheight\relax + }% + \expandafter\ifvoid\csname slnc@#1@box\endcsname + \else + \expandafter\setbox\csname slnc@#1@box\endcsname\vbox{% + \expandafter\unvbox\csname slnc@#1@box\endcsname + }% + \fi + \else +%<*trace> + \PackageInfo{scrlayer-notecolumn}{Flush note box `#1'}% +% +% \end{macrocode} +% Bring back the colours: +% \begin{macrocode} + \usekomafont{notecolumn.#1}{% + \expandafter\box\csname slnc@#1@box\endcsname% + }% + \fi + \fi + \expandafter\global + \expandafter\setbox\csname slnc@#1@box\expandafter\endcsname + \expandafter\box\csname slnc@#1@box\endcsname + \endgroup + } +} +% \end{macrocode} +% \begin{macro}{\slnc@readnotes} +% Read as long notes from the notes file until the number at \#2 of +% \Macro{slnc@note} or \Macro{slnc@sync} in the file is greater than +% \Counter{slncpage}. Put all these to the corresponding unprocessed list. +% \begin{macrocode} +\scrlayerAddToInterface\slnc@readnotes{% + \newcommand*\slnc@readnotes[1]{% + \ifeof\slnc@file\else + \ifnum \number #1<\slnc@unprocessed\relax + \@tempswafalse + \else + \@tempswatrue + \fi + \@whilesw\if@tempswa\fi{% + \edef\reserved@a{% + \noexpand\makeatletter + \endlinechar\m@ne + \read\noexpand\slnc@file to\noexpand\reserved@a + \endlinechar\the\endlinechar\relax + \catcode`\noexpand\@=\the\catcode`\@\relax + }% + \reserved@a + \expandafter\slnc@iofv\expandafter\reserved@b\reserved@a + \@empty\@empty\@empty\@empty\@empty + \@tempswafalse + \@for\reserved@c :={\slnc@note },{\slnc@sync }\do{% + \ifx\reserved@b\reserved@c \@tempswatrue\fi + }% + \if@tempswa + \@tempswafalse + \expandafter\slnc@iiiofv\expandafter\reserved@b\reserved@a + \@empty\@empty\@empty\@empty\@empty + \ifx\reserved@b\@empty + \PackageError{scrlayer-notecolumn}{internal syntax error}{% + Unexpected syntax of file `\jobname.slnc'.\MessageBreak + Second argument should be a number.\MessageBreak + I don't know what to do with\MessageBreak + \expandafter\detokenize\expandafter{\reserved@a}% + }% + \@tempswatrue + \else + \global\let\slnc@unprocessed\reserved@b + \expandafter\slnc@iiofv\expandafter\reserved@b\reserved@a + \@empty\@empty\@empty\@empty\@empty + \@ifundefined{slnc@\reserved@b @unprocessed}{% + \PackageWarning{scrlayer-notecolumn}{% + column `\reserved@b' undefined.\MessageBreak + You should declare the column before the usage.\MessageBreak + Notes will be lost + }% + }{% + \expandafter\g@addto@macro + \csname slnc@\reserved@b @unprocessed\expandafter\endcsname + \expandafter{% + \reserved@a + }% + }% + \ifnum \number #1<\slnc@unprocessed\relax + \@tempswafalse + \else + \@tempswatrue + \fi + \fi + \else +%<*trace> + \PackageInfo{scrlayer-notecolumn}{% + Ignoring `\expandafter\detokenize\expandafter{\reserved@a}'}% +% + \@tempswatrue + \fi + \ifeof\slnc@file\@tempswafalse\fi + }% + \fi + }% +} +% \end{macrocode} +% \end{macro}^^A \slnc@readnotes +% \begin{macro}{\slnc@iofv} +% \begin{macro}{\slnc@iiofv} +% \begin{macro}{\slnc@iiiofv} +% \begin{macrocode} +\scrlayerAddToInterface\slnc@iofv{% + \newcommand\slnc@iofv[6]{\def#1{#2}}% +} +\scrlayerAddToInterface\slnc@iiofiv{% + \newcommand\slnc@iiofv[6]{\def#1{#3}}% +} +\scrlayerAddToInterface\slnc@iiiofiv{% + \newcommand\slnc@iiiofv[6]{\def#1{#4}}% +} +% \end{macrocode} +% \end{macro}^^A \slnc@iiiofv +% \end{macro}^^A \slnc@iiofv +% \end{macro}^^A \slnc@iofv +% \begin{macro}{\slnc@unprocessed} +% The \#2 of the last read note column from notes file. +% \begin{macrocode} +\scrlayerAddToInterface\slnc@unprocessed{% + \newcommand*{\slnc@unprocessed}{0}% +} +% +% \end{macrocode} +% \begin{macro}{\slnc@file} +% The input file with the unprocessed notes. +% \begin{macro}{\slnc@mdfivesum} +% The MD5 sum of the file before opening it for reading. +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\slnc@mdfivesum{% + \let\slnc@mdfivesum\@empty +} +\scrlayerAddToInterface\slnc@file{% + \scr@ifundefinedorrelax{pdfmdfivesum}{}{% + \xdef\slnc@mdfivesum{\pdfmdfivesum file {\jobname.slnc}}% +%<*trace> + \PackageInfo{scrlayer-notecolumn}{% + MD5 of last `\jobname.slnc':\MessageBreak + \slnc@mdfivesum}% +% + }% + \newread\slnc@file + \immediate\openin\slnc@file \jobname.slnc + \scrlayerOnAutoRemoveInterface{\immediate\closeout\slnc@file}% +} +% +% \end{macrocode} +% \end{macro}^^A \slnc@mdfivesum +% \end{macro}^^A \slnc@file +% \end{macro}^^A \slnc@unprocessed +% \end{macro}^^A \slnc@processnotes +% +% \begin{option}{autoclearnotecolumns} +% \begin{macrocode} +%<*options> +\KOMA@ifkey{autoclearnotecolumns}{slnc@autoclearnotecolumns}\slnc@autoclearnotecolumnstrue +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @autoclearnotecolumns} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @autoclearnotecolumns@default} +% +%<*final> +\let\reserved@a\clearpage +\def\clearpage{% + \ifslnc@autoclearnotecolumns\clearnotecolumns\relax\fi +}% +\expandafter\g@addto@macro\expandafter\clearpage\expandafter{\reserved@a} +% +% \end{macrocode} +% \end{option} +% +% \begin{macro}{\clearnotecolumn} +% \begin{description} +% \item[\OParameter{string}:] the name of the note column (must be fully +% expandable and expand to a string only). Default is \PValue{marginpar}. +% \end{description} +% Output as many (empty) pages as needed to output all unprocessed notes of +% one note column. Note, that the output of the first page may result in more +% unprocessed notes. But the output of the following (empty) pages shouldn't. +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\c@slnc@clearnote@label{% + \newcounter{slnc@clearnote@label}% +} +\scrlayerAddToInterface\clearnotecolumn{% + \newcommand*\clearnotecolumn[1][marginpar]{% + \begingroup + \slnc@autoclearnotecolumnsfalse +% \end{macrocode} +% First of all we need to know the note column page of this page. +% \begin{macrocode} + \stepcounter{slnc@clearnote@label}% + \if@filesw + \protected@write\@auxout{% + \let\theslncpage\relax + \let\slnc@voidtest\relax + }{% + \string\newlabel{notecolumn.\theslnc@clearnote@label}% + {{\theslncpage}{\slnc@voidtest{#1}}}% + }% + \fi + \scr@ifundefinedorrelax{r@notecolumn.\theslnc@clearnote@label}{% + \PackageInfo{scrlayer-notecolumn}{% + Using estimated to low value for clearing\MessageBreak + note colum `#1'% + } + \edef\slnc@cmp@value{\the\value{slncpage}}% + \let\reserved@a\z@ + }{% + \edef\reserved@a{% + \@nameuse{r@notecolumn.\theslnc@clearnote@label}\@empty\@empty + }% + \edef\slnc@cmp@value{\expandafter\slnc@firstof\reserved@a\@nil}% + \edef\reserved@a{\expandafter\slnc@secondof\reserved@a\@nil}% + }% + \ifnum \reserved@a=\z@ +% \end{macrocode} +% Next we read all notes until the end of the current page, but only +% if a \Macro{clearpage} wouldn't result in a new page. +% \begin{macrocode} + \ifvmode + \ifdim \pagetotal<\topskip + \else + \slnc@readnotes{\slnc@cmp@value}% + \fi + \else + \slnc@readnotes{\slnc@cmp@value}% + \fi + \begingroup + \aftergroup\@tempswafalse + \long\def\slnc@note##1##2##3##4{% + \ifnum ##2>\slnc@cmp@value\relax \else \aftergroup\@tempswatrue\fi + }% + \let\slnc@sync\slnc@note + \csname slnc@#1@unprocessed\endcsname + \endgroup + \else + \PackageInfo{scrlayer-notecolumn}{% + box of note column `#1'\MessageBreak + not empty after page of \string\clearnotecolumn}% + \@tempswatrue + \fi + \if@tempswa +% \end{macrocode} +% Yes, we have! +% \begin{macrocode} + \IfLayerPageStyleExists{\currentpagestyle}{}{% + \PackageWarning{scrlayer-notecolumn}{% + \string\clearnotecolumn\space while active non-layer page + style.\MessageBreak + Activate empty page style until note column\MessageBreak + has been cleared% + }% + \pagestyle{empty}% + }% + \@tempswatrue + \fi + \@whilesw\if@tempswa\fi{% +% \end{macrocode} +% Yes, we have (maybe again)! +% \begin{macrocode} + \clearpage + \expandafter\ifcase \slnc@voidtest{#1}% + \begingroup + \aftergroup\@tempswafalse + \long\def\slnc@note##1##2##3##4{% + \ifnum ##2>\slnc@cmp@value\relax \else \aftergroup\@tempswatrue\fi + }% + \let\slnc@sync\slnc@note + \csname slnc@#1@unprocessed\endcsname + \endgroup + \else + \@tempswatrue + \fi + \if@tempswa +% \end{macrocode} +% And we still have: So we have to output one more page. +% \begin{macrocode} + \null + \fi + }% + \endgroup + }% +} +% \end{macrocode} +% \begin{macro}{\slnc@firstof} +% \begin{macro}{\slnc@secondof} +% We need these little helpers, because some packages like +% \Package{hyperref} extend the label mechanism by additional arguments. +% \begin{macrocode} +\scrlayerAddToInterface{\slnc@firstof}{% + \def\slnc@firstof#1#2\@nil{#1}% +} +\scrlayerAddToInterface{slnc@secondof}{% + \def\slnc@secondof#1#2#3\@nil{#2}% +} +% \end{macrocode} +% \end{macro}^^A \slnc@firstof +% \end{macro}^^A \slnc@secondof +% \begin{macro}{\slnc@voidtest} +% \begin{description} +% \item[\Parameter{string}:] the name of a note column (must be fully +% expandable and expand to a string only). +% \end{description} +% If the box of the note column is empty/void it returns \Macro{z@} otherwise +% \Macro{@ne}. +% \begin{macrocode} +\scrlayerAddToInterface\slnc@voidtest{% + \newcommand*{\slnc@voidtest}[1]{% + \expandafter\ifvoid \csname slnc@#1@box\endcsname \z@\else \@ne\fi + }% +} +% +% \end{macrocode} +% \end{macro}^^A \slnc@voidtest +% \end{macro}^^A \clearnotecolumn +% +% \begin{macro}{\clearnotecolumns} +% \begin{description} +% \item[\OParameter{string list}:] comma separated list of note column names +% (must be fully expandable and each element must expand to a string only, +% that is the name of a note column); if omitted or empty all note columns +% will be used. +% \end{description} +% Output as many (empty) pages as needed to output all unprocessed notes of +% all (given) note columns. Note, that the output of the first page may +% result in more unprocessed notes. But the output of the following (empty) +% pages shouldn't. +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\clearnotecolumns{% + \newcommand*\clearnotecolumns[1][\relax]{% + \begingroup + \slnc@autoclearnotecolumnsfalse + \ifx\relax#1\relax\else + \let\slnc@processnotecolumns\@empty + \edef\reserved@a{#1}% + \expandafter\@for\expandafter\reserved@a\expandafter:\expandafter=% + \reserved@a\do {% + \ifx\reserved@a\@empty\else + \expandafter\l@addto@macro\expandafter\slnc@processnotecolumns + \expandafter{\expandafter\@elt\expandafter{\reserved@a}}% + \fi + }% + \fi +% \end{macrocode} +% First of all we need to know the note column page of this page. +% \begin{macrocode} + \stepcounter{slnc@clearnote@label}% + \if@filesw + \begingroup + \def\@elt##1{+\slnc@voidtest{##1}}% + \protected@write\@auxout{% + \let\theslncpage\relax + \let\slnc@voidtest\relax + }{% + \string\newlabel{notecolumn.\theslnc@clearnote@label}% + {{\theslncpage}{\numexpr \slnc@processnotecolumns\relax}}% + }% + \endgroup + \fi + \scr@ifundefinedorrelax{r@notecolumn.\theslnc@clearnote@label}{% + \begingroup + \def\@elt##1{, `##1'}% + \PackageInfo{scrlayer-notecolumn}{% + Using estimated to low value for\MessageBreak + clearing note colums\MessageBreak + \expandafter\@gobble\slnc@processnotecolumns + }% + \endgroup + \edef\slnc@cmp@value{\the\value{slncpage}}% + \let\reserved@a\z@ + }{% + \edef\reserved@a{% + \@nameuse{r@notecolumn.\theslnc@clearnote@label}\@empty\@empty + }% + \edef\slnc@cmp@value{\expandafter\slnc@firstof\reserved@a\@nil}% + \edef\reserved@a{\expandafter\slnc@secondof\reserved@a\@nil}% + }% + \ifcase \reserved@a\relax +% \end{macrocode} +% Next we read all notes until the end of the current page, but only +% if a \Macro{clearpage} wouldn't result in a new page. +% \begin{macrocode} + \ifvmode + \ifdim \pagetotal<\topskip + \else + \slnc@readnotes{\slnc@cmp@value}% + \fi + \else + \slnc@readnotes{\slnc@cmp@value}% + \fi + \begingroup + \aftergroup\@tempswafalse + \long\def\slnc@note##1##2##3##4{% + \ifnum ##2>\slnc@cmp@value\relax \else \aftergroup\@tempswatrue\fi + }% + \let\slnc@sync\slnc@note + \def\@elt##1{\csname slnc@##1@unprocessed\endcsname}% + \slnc@processnotecolumns + \endgroup + \else + \PackageInfo{scrlayer-notecolumn}{% + box of at least one note column\MessageBreak + not empty after page of \string\clearnotecolumns}% + \@tempswatrue + \fi + \if@tempswa +% \end{macrocode} +% Yes, we have! +% \begin{macrocode} + \IfLayerPageStyleExists{\currentpagestyle}{}{% + \PackageWarning{scrlayer-notecolumn}{% + \string\clearnotecolumns\space while active non-layer page + style.\MessageBreak + Activate empty page style until note column\MessageBreak + has been cleared% + }% + \pagestyle{empty}% + }% + \@tempswatrue + \fi + \@whilesw\if@tempswa\fi{% +% \end{macrocode} +% Yes, we have (maybe again)! +% \begin{macrocode} + \clearpage + \begingroup + \def\@elt##1{+\slnc@voidtest{##1}}% + \ifcase \numexpr \slnc@processnotecolumns\relax + \aftergroup\@tempswafalse + \long\def\slnc@note##1##2##3##4{% + \ifnum ##2>\slnc@cmp@value\relax \else \aftergroup\@tempswatrue\fi + }% + \let\slnc@sync\slnc@note + \def\@elt##1{\csname slnc@##1@unprocessed\endcsname}% + \slnc@processnotecolumns + \else + \aftergroup\@tempswatrue + \fi + \endgroup + \if@tempswa +% \end{macrocode} +% And we still have: So we have to output one more page. +% \begin{macrocode} + \null + \fi + }% + \endgroup + }% +} +% +% \end{macrocode} +% \end{macro}^^A \clearnotecolumns +% +% +% \section{Syncronisation of Text and Note} +% \label{sec:scrlayer-notecolumn.sync} +% +% Until yet we have the text and we have note columns. Normally note entries +% to a note column are in sync with the text position, that makes the +% note. But if there are collisions the sync may be lost. In this case the +% note may be later (but never earlier), so we need a mechanism to force +% synchronisation of the text with the note. +% +% \begin{macro}{\syncwithnotecolumn} +% \begin{description} +% \item[\OParameter{string}:] the name of the note column to sync with (this +% must be fully expandable and expand to the name of a note column). By +% default sync with note column \PValue{marginpar}. +% \end{description} +% Add at the \LaTeX{} run after the next \LaTeX{} run as much space to the +% text (not the note column!) as needed to reach the next position at the +% note column. This is not the same like \Macro{clearnotecolumn}, because it +% doesn't need to go to the next page, but it needs at least three \LaTeX{} +% runs to terminate. +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface{\c@slnc@syncpoint}{% + \newcounter{slnc@syncpoint}% +} +\scrlayerAddToInterface{\syncwithnotecolumn}{% + \newcommand*{\syncwithnotecolumn}[1][marginpar]{% + \begingroup + \edef\reserved@a{\endgroup\noexpand\syncwithnotecolumns[{#1}]}% + \reserved@a + }% +} +\scrlayerAddToInterface{\syncwithnotecolumns}{% + \newcommand*{\syncwithnotecolumns}[1][\relax]{% + \begingroup + \ifx\relax#1\relax\else + \let\slnc@processnotecolumns\@empty + \edef\reserved@a{#1}% + \expandafter\@for\expandafter\reserved@a\expandafter:\expandafter=% + \reserved@a\do {% + \ifx\reserved@a\@empty\else + \expandafter\l@addto@macro\expandafter\slnc@processnotecolumns + \expandafter{\expandafter\@elt\expandafter{\reserved@a}}% + \fi + }% + \fi + \stepcounter{slnc@syncpoint}% + \def\@elt##1{% + \addtocontents{slnc}{% + \string\slnc@sync{##1}% + {\noexpand\number\value{slncpage}}% + {\theslnc@syncpoint}% + {}% + }% + }% + \slnc@processnotecolumns + \ifvmode + \let\slnc@voffset\@empty% + \expandafter\@firstofone + \else + \PackageWarning{scrlayer-notecolumn}{% + \string\syncwithnotecolumn\space in hmode.\MessageBreak + Using \string\syncwithnotecolumn\space in horizontal\MessageBreak + mode may result in unwanted vertical\MessageBreak + space inside paragraphs and may lost\MessageBreak + colours of text of notes. \space So perhaps you\MessageBreak + should move \string\syncwithnotecolumn\space before\MessageBreak + or after the paragraph% + }% + \let\slnc@voffset\@empty%\def\slnc@voffset{-\number\baselineskip}% + \expandafter\slnc@vadjust + \fi + {% + \if@filesw + \pdfsavepos + \protected@write\@auxout{}{% + \string\newlabel{notecolumn.\theslnc@syncpoint.synctext.label}{% + {% + \noexpand\number + \numexpr \pdflastypos\slnc@voffset\relax + }{\thepage}% + }% + }% + \fi + \@ifundefined{r@notecolumn.\theslnc@syncpoint.synctext.label}{% + \PackageInfo{scrlayer-notecolumn}{% + No text label for \string\syncwithnotecolumn.\MessageBreak + Need rerun to sync position}% + }{% + \edef\reserved@a{% + \@nameuse{r@notecolumn.\theslnc@syncpoint.synctext.label}% + \@empty\@empty + }% + \edef\slnc@textpos{\expandafter\slnc@firstof\reserved@a\@nil}% + \edef\slnc@textpage{\expandafter\slnc@secondof\reserved@a\@nil}% + \let\slnc@notepos\slnc@textpos + \let\slnc@notepage\slnc@textpage + \def\@elt##1{% + \@ifundefined{r@notecolumn.##1.\theslnc@syncpoint.syncnote.label}{% + \PackageInfo{scrlayer-notecolumn}{% + No note label for sync with note column\MessageBreak + `##1'.\MessageBreak + Need rerun to sync position}% + \G@refundefinedtrue + }{% + \edef\reserved@a{% + \@nameuse{r@notecolumn.##1.\theslnc@syncpoint.syncnote.label}% + \@empty\@empty + }% + \edef\reserved@b{\expandafter\slnc@firstof\reserved@a\@nil}% + \edef\reserved@c{\expandafter\slnc@secondof\reserved@a\@nil}% + \ifnum \slnc@notepage<\reserved@c\relax + \let\slnc@notepos=\reserved@b + \let\slnc@notepage=\reserved@c + \else + \ifnum \slnc@notepage=\reserved@c\relax + \ifnum \slnc@notepos>\reserved@b + \let\slnc@notepos=\reserved@b + \let\slnc@notepage=\reserved@c + \fi + \fi + \fi + }% + }% + \slnc@processnotecolumns + \ifnum\slnc@textpage>\slnc@notepage\relax + \PackageInfo{scrlayer-notecolumn}{% + Last note page before last text page.\MessageBreak + Need rerun to sync position}% + \else + \ifnum\slnc@textpage<\slnc@notepage\relax + \@whilenum \slnc@textpage<\slnc@notepage\do {% + \newpage\null\vskip-\dimexpr \baselineskip+\parskip\relax + \edef\slnc@textpage{\the\numexpr\slnc@textpage+1\relax}% + }% + \scr@ifundefinedorrelax{pdfpageheight}{% + \@tempdima=\paperheight + }{% + \@tempdima=\pdfpageheight + }% + \@tempdima=\dimexpr \@tempdima + -\topmargin-1in + -\headheight-\headsep + -\topskip+\baselineskip + \relax + \edef\slnc@textpos{\number\@tempdima}% +%<*trace> + \PackageInfo{scrlayer-notecolumn}{% + Top position is \slnc@textpos% + }% +% + \fi + \ifnum\slnc@notepos>\slnc@textpos\relax + \PackageInfo{scrlayer-notecolumn}{% + Last note position before last text\MessageBreak + position.\MessageBreak + Need rerun to sync position% + }% + \else + \ifnum\slnc@notepos<\slnc@textpos\relax + \@tempdima=\numexpr \slnc@textpos-\slnc@notepos\relax sp + \PackageInfo{scrlayer-notecolumn}{% + skipping \the\@tempdima\space to sync% + }% + \vskip\@tempdima + \fi + \fi + \fi + }% + }% + \endgroup + }% +} +% \end{macrocode} +% \begin{macro}{\slnc@vadjust} +% \begin{macrocode} +\scrlayerAddToInterface\slnc@vadjust{% + \newcommand{\slnc@vadjust}[1]{% + \@bsphack + \vadjust{#1}% + \@esphack + }% +} +% +% \end{macrocode} +% \end{macro}^^A \slnc@vadjust +% \end{macro}^^A \syncwithnotecolumn +% +% +% \iffalse^^A meta-comment +% +% \fi^^A meta-comment +% +% \Finale +% \let\subsection\section +% \let\section\chapter +% \let\chapter\restorechapter +% +\endinput +% +% end of file `scrlayer-notecolumn.dtx' + +%%% Local Variables: +%%% mode: doctex +%%% mode: flyspell +%%% ispell-local-dictionary: "en_GB" +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrlayer-scrpage.dtx b/Master/texmf-dist/source/latex/koma-script/scrlayer-scrpage.dtx new file mode 100644 index 00000000000..6639164e997 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrlayer-scrpage.dtx @@ -0,0 +1,2915 @@ +% \CheckSum{2321} +% \iffalse^^A meta-comment +% ====================================================================== +% scrlayer-scrpage.dtx +% Copyright (c) Markus Kohm, 2012-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ---------------------------------------------------------------------- +% scrlayer-scrpage.dtx +% Copyright (c) Markus Kohm, 2012-2013 +% +% Diese Datei ist Teil der LaTeX2e KOMA-Script-Sammlung. +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \fi^^A meta-comment +% +% \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 \~} +% +% \iffalse^^A meta-comment +%%%% From File: $Id: scrlayer-scrpage.dtx 1548 2013-12-14 17:36:23Z mjk $ (identify) +%%%% From File: $Id: scrlayer-scrpage.dtx 1548 2013-12-14 17:36:23Z mjk $ (init) +%%%% From File: $Id: scrlayer-scrpage.dtx 1548 2013-12-14 17:36:23Z mjk $ (options) +%%%% From File: $Id: scrlayer-scrpage.dtx 1548 2013-12-14 17:36:23Z mjk $ (body) +%<*dtx> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\begingroup + \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#4/#3/#2}} + \filedate$Date: 2013-12-14 18:36:23 +0100 (Sa, 14 Dez 2013) $ + \def\filerevision$#1: #2 ${\gdef\filerevision{v0.9.#2}} + \filerevision$Revision: 1548 $ +\endgroup +\ProvidesFile{scrlayer-scrpage.dtx}[\filedate\space\filerevision\space +% +%<*identify> +%\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%\ProvidesPackage{scrlayer-scrpage}[% +% Some time following will be replaced by !KOMASCRIPTVERSION: +%!SCRLAYERVERSION +% package +% +%<*dtx|identify> + (end user interface for scrlayer)] +% +%<*dtx> +\ifx\documentclass\undefined + \input scrdocstrip.tex + \@@input scrkernel-version.dtx + \@@input scrstrip.inc + \KOMAdefVariable{COPYRIGHTFROM}{2012} + \KOMAdefVariable{SCRLAYERVERSION}{\space\space\filedate\space\filerevision}% + \generate{\usepreamble\defaultpreamble + \file{scrlayer-scrpage.sty}{% + \from{scrlayer-scrpage.dtx}{interface,trace,scrpage,identify}% + \from{scrlayer.dtx}{interface,trace,scrpage,init}% + \from{scrlayer-scrpage.dtx}{interface,trace,scrpage,init}% + \from{scrlayer.dtx}{interface,trace,scrpage,options}% + \from{scrlayer-scrpage.dtx}{interface,trace,scrpage,options}% + \from{scrlayer.dtx}{interface,trace,scrpage,body}% + \from{scrlayer-scrpage.dtx}{interface,trace,scrpage,body}% + \from{scrlogo.dtx}{logo}% + }% + } + \@@input scrstrop.inc +\else + \let\endbatchfile\relax +\fi +\endbatchfile +% +%<*driver> + \documentclass{scrdoc} + \addtolength{\textwidth}{-1em} + \addtolength{\marginparwidth}{2em} + \addtolength{\oddsidemargin}{2em} + \usepackage[ngerman,english]{babel} + \usepackage{url,babelbib}\bibliographystyle{babalpha-fl} + \usepackage{listings} + \usepackage{scrhack} + \usepackage{etoolbox} + \pretocmd\DescribeMacro{\ifhmode\else\bigskip\noindent\fi}{}{} + \pretocmd\DescribeEnv{\ifhmode\else\bigskip\noindent\fi}{}{} + \pretocmd\DescribeOption{\ifhmode\else\bigskip\noindent\fi}{}{} + + \CodelineIndex + \RecordChanges + \GetFileInfo{scrlayer-scrpage.dtx} + \title{The \texttt{scrlayer} interface \texttt{scrlayer-scrpage}% + \footnote{This is version \fileversion\ of file \texttt{\filename}.}} + \date{\filedate} + \author{Markus Kohm} + + \newenvironment{Explain}{\par}{\par} + \newcommand*{\length}{} + \let\length\Length + \let\endlength\endLength + \let\Macro\cs + \let\Length\Macro + \let\Package\textsf + \let\Class\Package + \let\File\texttt + \let\Option\texttt + \newcommand*{\KOption}[1]{\Option{#1}\texttt{=}} + \newcommand*{\OptionValue}[2]{\Option{#1}\texttt{=}\PValue{#2}} + \let\Counter\texttt + \let\Environment\texttt + \let\ShowOutput\quote + \let\endShowOutput\endquote + \let\Pagestyle\texttt + \newcommand*{\Parameter}[1]{\texttt{\marg{#1}}\linebreak[1]} + \newcommand*{\OParameter}[1]{\texttt{\oarg{#1}}\linebreak[1]} + \newcommand*{\MParameter}[2]{\texttt{(\meta{#1},\meta{#2})}\linebreak[1]} + \providecommand\PParameter[1]{\mbox{\texttt{\{#1\}}}\linebreak[1]} + \let\PName\meta + \let\PValue\texttt + \providecommand*{\autoref}[1]{\expandafter\AUTOREF#1:} + \providecommand*{\AUTOREF}{} + \makeatletter + \def\AUTOREF#1:#2:{% + \edef\@tempa{#1}% + \edef\@tempb{tab}\ifx\@tempa\@tempb table~\fi + \edef\@tempb{sec}\ifx\@tempa\@tempb section~\fi + \ref{#1:#2}% + } + \providecommand*{\IndexCmd}[2][]{} + \providecommand*{\textnote}[2][]{} + \providecommand*\eTeX{\leavevmode\hbox{$\varepsilon$}-\TeX} + \providecommand*\NTS{% + \leavevmode\hbox{$\cal N\kern-0.35em\lower0.5ex\hbox{$\cal T$}% + \kern-0.2emS$}} + + \lstnewenvironment{lstcode}{\lstset{language=[LaTeX]TeX}}{} + \makeatother + \sloppy% YOU SHOULD NOT DO THIS!!! + + \begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} + \PrintChanges + \PrintIndex + \end{document} +% +%<*dtx> +% \fi^^A meta-comment +% +% \selectlanguage{english} +% +% \changes{v0.0}{2012/01/01}{start of interface} +% \let\restorechapter\chapter +% \let\chapter\section +% \let\section\subsection +% \let\subsection\subsubsection +% +% \chapter{End User Interface \Package{scrlayer-scrpage}} +% \label{sec:scrlayer-scrpage} +% +% This interface is the implementation of the described features of +% \KOMAScript{} package \Package{scrpage2}. It is extended by some additional +% options and commands. Some features, that has been described for +% \Package{scrpage2} have been removed or declared to be deprecated. +% +% While this is mainly the implementation documentation, you may find only some +% additional information about differences to \Package{scrpage2}. See the +% \KOMAScript{} manual (\File{scrguien.pdf}) for more information. +% +% \section{Head and Foot Width and Offset} +% \label{sec:scrlayer.headfoot.width} +% +% From \Package{scrpage2} you already know commands \Macro{setheadwidth} and +% \Macro{setfootwidth}. Package \Package{scrlayer-scrpage} provides them too and +% they are still supported. +% +% \DescribeOption{headwidth} +% \DescribeOption{footwidth} +% Options +% \KOption{headwidth}\PName{width}\texttt{:}\PName{offset} +% and +% \KOption{footwidth}\PName{width}\texttt{:}\PName{offset} +% could be used to setup the width and the horizontal offset of the page head +% respectively the page foot. By default the \PName{width} is +% \Length{textwidth}, the width of the text area. The default of \PName{offset} +% is a little bit more complex. Normally the default of \PName{offset} in +% single-side mode is half of the difference of the text area width minus +% \PName{width}. In two-side mode it's only a third of that difference. But if +% \PName{width} is the width of the text area plus the marginal note column, the +% default of \PName{offset} is zero. +% +% An \PName{offset} of zero means, that the head respectively foot is aligned to +% the inner edge of the text area. In single-side mode this is the left edge of +% the text area. In double-side mode, this is the left edge of the text area of +% odd pages or the right edge of the text area of even pages. An positive +% \PName{offset} will move the head respectively the foot towards the outer +% margin respectively the right margin in single-side mode. +% +% You may omit the \PName{width} or the \PName{offset}. In this case also the +% defaults of the values will be used. If you omit both, you may also omit the +% colon. If you omit one value and the colon, the existent value is the +% \PName{width}. +% +% Instead of using lengths for \PName{width} or \PName{offset}, you may use also +% some symbolic values. These are +% \begin{description} +% \item[\PValue{foot}:] the current width of the page foot, +% \item[\PValue{footbotline}:] the current length of the horizontal line below +% the page foot, +% \item[\PValue{footsepline}:] the current length of the horizontal line above +% the page foot, +% \item[\PValue{head}:] the current width of the page head, +% \item[\PValue{headsepline}:] the current length of the horizontal line below +% the page head, +% \item[\PValue{headtopline}:] the current length of the horizontal line above +% the page head, +% \item[\PValue{marginpar}:] the width of the marginal note column plus the +% distance of that column to the text area, +% \item[\PValue{page}:] the paper width without binding correction, that has +% been set using package \Package{typearea}, +% \item[\PValue{paper}:] the whole paper width inclusive a binding correction +% if used, +% \item[\PValue{text}:] the width of the text area, +% \item[\PValue{textwidthmarginpar}:] the width of the text area plus the +% marginal note column (and the distance between them). +% \end{description} +% If none of the symbolic values has been used, you may alternatively use a +% dimensional expression. Those may contain basic arithmetic operations and +% round brackets. For more information about dimensional expressions see the +% \eTeX{} manual. +% +% +% \section{Horizontal Separation Lines above and below Page Head and Foot} +% \label{sec:scrlayer-headfoot.lines} +% +% From \Package{scrpage2} you already know options \Option{headtopline}, +% \Option{headsepline}, \Option{footsepline}, \Option{footbotline}, +% \Option{plainheadtopline}, \Option{plainheadsepline}, +% \Option{plainfootsepline}, and \Option{plainfootbotline}. These were +% implemented as \LaTeX{} package options and could be used to switch on the +% lines only. With \Package{scrlayer-scrpage} this has been changed. +% +% \DescribeOption{headtopline} +% \DescribeOption{headsepline} +% \DescribeOption{footsepline} +% \DescribeOption{footbotline} +% The option +% \KOption{headtopline}\PName{thickness}\texttt{:}\PName{length} +% May be used to activate a horizontal line above the page head and to configure +% it's \PName{thickness} and \PName{length}. You may omit both, the +% \PName{thickness} and \PName{length}. In this case you may also omit the +% colon. This would result in the default \PName{thickness} 0.4\,pt and the +% default \PName{length}, that is the current width of the page head. If you use +% only one value without colon, this will be interpreted as \PName{thickness} +% and \PName{width} will become also the default. For \PName{length} you may +% also use a symbolic value. Alternatively you may use a dimensional expression +% again. See option \Option{headwidth} for more information about valid symbolic +% values and dimensional expressions. +% +% Options \Option{headsepline}, \Option{footsepline}, and \Option{footbotline} +% are similar to \Option{headtopline}, but for a horizontal line below the page +% head, above the page foot, and below the page foot. The default \PName{length} +% of \Option{footsepline} and \Option{footbotline} is the width of the page foot +% instead of the page head. +% +% Instead of \PName{thickness}\texttt{:}\PName{length} you may alternatively use +% one of the values for \emph{simple switches}. Switching on a line, will also +% set \PName{thickness} and \PName{length} to their defaults. Switching off a +% line, will set both values to zero. This makes the lines invisible. +% +% All of them are also font elements, that may be configured using +% \Macro{setkomafont} or \Macro{addtokomafont}, but you should not change the +% font size. The elements are provided to make it easier to change the colour of +% the lines. See package \Package{color} or \Package{xcolor} for more +% information about colour with \LaTeX. +% +% \DescribeOption{plainheadtopline} +% \DescribeOption{plainheadsepline} +% \DescribeOption{plainfootsepline} +% \DescribeOption{plainfootbotline} +% The option +% \KOption{plainheadtopline}\PName{simple switch} +% may be used to switch on or off the horizontal line above the page head of +% \emph{plain} pages, defined using on of the commands from +% \autoref{sec:scrlayer.definepairs}. Page style \Pagestyle{scrplain} is one of +% those. You cannot give them another length or thickness than the lines of the +% \emph{headings} or \emph{main} page style. You may only switch them on or off +% and they will use the settings of the \emph{main} page style. By default they +% are switched off, because that's the usual style of chapter start pages. +% +% Options \Option{plainheadsepline}, \Option{plainfootsepline}, and +% \Option{plainfootbotline} are similar for the corresponding other horizontal +% lines below or above the page head or foot. +% +% \DescribeOption{ilines} +% \DescribeOption{clines} +% \DescribeOption{olines} +% You already know these options from \Package{scrpage2}. But now they are not +% only package options, but \KOMAScript{} options, that may be used anywhere at +% the document preamble or document body. Nevertheless, they don't expect any +% value. Maybe these options will become deprecated in a future release of +% \Package{scrlayer-scrpage} and will become a single option with (at least) +% three values. +% +% +% \section{Predefined Page Styles} +% \label{sec:scrlayer.predefined} +% +% Package \Package{scrlayer-scrpage} still defines page styles +% \Pagestyle{scrheadings} and \Pagestyle{scrplain}, but \Pagestyle{scrplain} +% is only an alias for \Pagestyle{plain.scrheadings} now. +% +% \DescribeOption{pagestyleset} +% \KOMAScript{} option +% \KOption{pagestyleset}\PName{name} +% may be used to configure the page styles \Pagestyle{scrheadings} and +% \Pagestyle{scrplain}. For \PName{name} currently one of \PValue{standard} or +% \PValue{KOMA-Script} is allowed. The first one selects settings for the +% elements of the page head and foot, that are compatible with the standard +% classes. The second one selects defaults compatible with the \KOMAScript{} +% classes. +% +% +% \section{Defining Pairs Like \Pagestyle{scrheadings} and +% \Pagestyle{plain.scrheadings}} +% \label{sec:scrlayer.definepairs} +% +% You already know the page style pair \Pagestyle{scrheadings} and +% \Pagestyle{scrplain} from package \Package{scrpage2}. As told above with +% \Package{scrlayer-scrpage} page style \Package{scrplain} is an alias of +% \Pagestyle{plain.scrheadings}. So page styles \Pagestyle{scrheadings} and +% \Pagestyle{plain.scrheadings} build the real pair of a \emph{headings} page +% style and a \emph{plain} page style. +% +% You should\,---\,at this point\,---\,also note, that the commands +% \Macro{ihead}, \Macro{chead}, \Macro{ohead}, \Macro{lehead}, \Macro{cehead}, +% \Macro{rehead}, \Macro{lohead}, \Macro{lohead}, \Macro{rohead}, +% \Macro{ifoot}, \Macro{cfoot}, \Macro{ofoot}, \Macro{lefoot}, \Macro{cefoot}, +% \Macro{refoot}, \Macro{lofoot}, \Macro{lofoot}, \Macro{rofoot}, +% \Macro{clearscrheadfoot}, \Macro{clearscrplain}, and \Macro{clearscrheadings} +% does not only configure \Pagestyle{scrplain} and \Pagestyle{scrheadings}, but +% the current pair of page styles. If the current page style is not a member of +% a pair of page styles, that last pair, that has been used, is the current +% one. Only if this is unknown too, the pair \Pagestyle{scrheadings} and +% \Pagestyle{plain.scrheadings}\footnote{\Pagestyle{plain.scrheadings} is the +% real name of the \emph{plain} page style to \Pagestyle{scrheadings}.} is +% current. +% +% \DescribeMacro{\defpairofpagestyles} +% \DescribeMacro{\newpairofpagestyles} +% \DescribeMacro{\renewpairofpagestyles} +% \DescribeMacro{\providepairofpagestyles} +% The command +% \Macro{defpairofpagestyles}% +% \OParameter{parent page style name}\Parameter{name}\Parameter{definition} +% may be used to define a pair of page styles like \PName{scrheadings} and +% \PName{plain.scrheadings}. \PName{name} is the name of the \emph{headings} +% page style of the pair. We also say \emph{main} page style alternatively to +% \emph{headings} page style. The \emph{plain} page style will become the name +% \PValue{plain.}\PName{name}. +% +% The \PName{definition} will be executed, whenever either the main or the plain +% page style will be selected. You may use here, e.g., commands like +% \Macro{ihead} or \Macro{clearpairofpagestyles} to configure the pair of page +% styles. But note, if you redefine things like \Macro{chaptermark} inside of +% \PName{definition}, this would also influence other page styles. So it's +% recommended to use only commands, that do not influence other page styles or +% other features of \Package{scrlayer} or other packages or classes! +% +% The difference between \Macro{newpairofpagestyles} and +% \Macro{defpairofpagestyles} is, that the first one would raise an error, if +% there has been a page style \PName{name} or \PValue{plain.}\PName{name} +% already before. In opposite to this \Macro{renewpairofpagestyles} would raise +% the error, if those page style hasn't been already before. Last but not least +% \Macro{providepairofpagestyles} won't raise an error, but it defines +% \PName{name} and \PValue{plain.}\PName{name} only, if they were not defined +% already before. +% +% \DescribeMacro{\clearmainofpairofpagestyles} +% \DescribeMacro{\clearplainofpairofpagestyles} +% \DescribeMacro{\clearpairofpagestyles} +% With \Package{scrlayer-scrpage} pairs of page styles are more general that +% with the single pair of \Package{scrpage2}. So command names like +% \Macro{clearscrheadings}, \Macro{clearscrplain} and even +% \Macro{clearscrheadfoot} are somehow to specific. Therefore +% \Macro{clearmainofpairofpagestyles} is the new name of +% \Macro{clearscrheadings} to set all fields of the main page style of the +% current pair of page styles to an empty value; +% \Macro{clearplainofpairofpagestyles} is the new name of \Macro{clearscrplain} +% to set all fields of the plain page style of the current pair of page styles +% to an empty value; \Macro{clearpariofpagestyles} is the new name of +% \Macro{clearscrheadfoot} to set all fields of the plain and the main page +% style if the current pair of page styles to an empty value. The old names are +% obsolete, but still valid for compatibility reason. But they have the new +% meanings, if \Pagestyle{scrheadings} and \Pagestyle{plain.scrheadings} are not +% the only existing pair of page styles. +% +% +% \section{Defining Page Styles With Expert Interface} +% \label{sec:scrlayer.expert} +% +% You already know \Macro{defpagestyle}, \Macro{newpagestyle}, +% \Macro{renewpagestyle}, and \Macro{providepagestyle} from package +% \Package{scrpage2}. Package \Package{scrlayer-scrpage} provides those +% too. Nevertheless there are some differences, e.g., \Package{scrpage2} didn't +% support a configurable height for the page foot, but supposed +% \Length{baselineskip} for the total height of the foot. Package +% \Package{scrlayer-scrpage} uses length \Length{footheight} provided by +% \Package{scrlayer} for the total height of the foot. +% +% \DescribeOption{hmode} +% The option +% \KOption{hmode}\PName{simple switch}% +% may be used to make \Package{scrlayer-scrpage} more compatible with +% \Package{scrpage2}. By default \Package{scrlayer-scrpage} sets the elements of +% the page head and page foot in vertical mode. But \Package{scrpage2} did the +% same job in horizontal mode. If the option has been switched on, +% \Package{scrlayer-scrpage} will also leave the vertical mode before setting a +% page head or foot element. +% +% +% \section{Removed or Deprecated Package Options} +% \label{sec:scrlayer.deprecated.options} +% +% Package \Package{scrpage2} never supported \KOMAScript{} options. Instead it +% only supports standard \LaTeX{} package options. Options \Option{headinclude}, +% \Option{headexclude}, \Option{footinclude}, and \Option{footexclude} became +% deprecated since 2008-12-08. Package \Package{scrlayer-scrpage} doesn't +% provide them any longer. Options \Option{mpinclude} and \Option{mpexclude} has +% never been official in \Package{scrpage2}. So it was an easy decision to not +% provide them by \Package{scrlayer-scrpage}. +% +% Options \Option{komastyle} and \Option{standardstyle} have been replaced by +% \Option{pagestyleset}. Nevertheless, they are still implemented as simple +% package options, but declared to be deprecated. You should not use them any +% longer, because they might be removed in a future release. +% +% Options \Option{markuppercase}, \Option{markusedcase}, and +% \Option{nouppercase} have been replaced by \Option{markcase}. Nevertheless, +% they are still implemented as simple package options, but declared to be +% deprecated. You should not use them any longer, because they might be removed +% in a future release. +% +% +% \section{Deprecated Commands} +% \label{sec:scrlayer.deprecated.commands} +% +% The commands \Macro{setheadtopline}, \Macro{setheadsepline}, +% \Macro{setfootsepline}, and \Macro{setfootbotline} of \Package{scrpage2} has +% been intended to configure the lines above and below the page head and +% foot. They \emph{never} has been intended to switch the lines on an +% off. Switching on the lines should have been done using the package options +% \Option{headtopline}, \Option{headsepline}, \Option{footsepline}, and +% \Option{footbotline}, and their plain equivalents \Option{plainheadtopline}, +% \Option{plainheadsepline}, \Option{plainfootsepline}, and +% \Option{plainfootbotline}. Nevertheless, a lot of users have used the commands +% also to switch on the lines. This commands became deprecated with +% \Package{scrlayer-scrpage}, but nevertheless are still +% implemented. Nevertheless, with \Package{scrlayer-scrpage} users should +% absolutely use the \KOMAScript{} options and the font elements not only for +% switching on the lines, but also for configuration of the lines. +% +% Commands \Macro{headfont} and \Macro{footfont} are deprecated, because +% \Package{scrlayer-scrpage} provides the font element interface of the +% \KOMAScript{} classes. You should use \Macro{setkomafont} and +% \Macro{addtokomafont} to configure fonts and colours of page head and foot. +% +% Package \Package{scrpage2} provided an additional user page style definition +% interface using command \Macro{deftripstyle}. This became obsolete with +% \Package{scrlayer-scrpage}, because the other interfaces are easier to +% understand and more powerful. Nevertheless additional commands +% \Macro{deftriplepagestyle}, \Macro{newtriplepagestyle}, +% \Macro{renewtriplepagestyle}, and \Macro{providetriplepagestyle} has been +% implemented to have a more consistent user interface. +% +%\iffalse +% +%\fi +% +% \StopEventually{} +% +% \chapter{Implementation of \Package{scrlayer-scrpage}} +% +% This section if for developers only. +% +% \iffalse +%<*interface> +%<*identify> +% \fi +% +%\iffalse +% +%\fi +% +% +% \section{Initialising some Values before the Options} +% +% \iffalse^^A meta-comment +%<*init> +% \fi^^A meta-comment +% +% Initialisation before all options (even the options from +% \File{scrlayer.dtx}). +% +% Currently nothing. +% +% \iffalse^^A meta-comment +% +% \fi^^A meta-comment +% +% \section{Options} +% +% \iffalse^^A meta-comment +%<*options> +% \fi +% +% Package \Package{scrpage2} doesn't support \KOMAScript{} options but only +% regular \LaTeX{} package options. The interface will also support those +% options, but uses \KOMAScript{} options for the implementation. This +% results in additional features of the interface. +% +% Note, that some options are already defined before this by the common option +% parts of \File{scrlayer.dtx}. All others will follow step by step in the +% main part. +% +% Options \Option{headinclude}, \Option{headexclude}, \Option{footinclude} and +% \Option{footexclude} of package \Package{scrpage2} are deprecated since +% package version 2.3, 2008-12-08. They won't be supported by the +% \Package{scrlayer-scrpage} interface. +% +% Additional initialisation may be done here, but currently this isn't +% needed. +% +% \iffalse^^A meta-comment +% +% \fi^^A meta-comment +% +% +% \section{Width of Header and Footer} +% +% \Package{scrpage2} provides to set the width of the page head or footer +% different from the width of the text area of the page using +% \Macro{setheadwidth} and \Macro{setfootwidth}. Optionally those commands +% allow to setup an horizontal offset for the head or footer. This interface +% provides the same feature but also allows to set up the widths and offsets +% with \KOMAScript{} options. Those options will become the primary interface. +% +% \begin{option}{headwidth} +% \begin{option}{footwidth} +% \begin{description} +% \item[\texttt{=\meta{special dimensional expression}:\meta{special +% dimensional expression}}:] see \Macro{sls@settowidthof} for information +% about the syntax of \meta{special dimensional expression}. The width of +% the page head or footer will be set to the result of the first on, the +% offset to the result of the second one. If the first one\,---\,the +% width\,---\,is omitted, the current width will be used. If the second +% one\,---\,the offset\,---\,is omitted and the width is the width of the +% text area plus the margin note column, the offset will be set to +% zero. If the second one is omitted and the width is not the width of the +% text area plus the margin note column, a special kind of centering will +% be used. +% \end{description} +% These options may be used to set up the widths of head and foot. +% \begin{macrocode} +%<*options> +\KOMA@key{headwidth}{% + \begingroup + \sls@split@at@colon#1::\@nil + \ifx\reserved@a\@empty \let\reserved@a\sls@headwidth\fi + \edef\reserved@a{% + \noexpand\endgroup + \noexpand\sls@set@hf@width{head}{\reserved@b}{\reserved@a}% + }% + \reserved@a + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@headwidth} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@headwidth@default} +\KOMA@key{footwidth}{% + \begingroup + \sls@split@at@colon#1::\@nil + \ifx\reserved@a\@empty \let\reserved@a\sls@footwidth\fi + \edef\reserved@a{% + \noexpand\endgroup + \noexpand\sls@set@hf@width{foot}{\reserved@b}{\reserved@a}% + }% + \reserved@a + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@footwidth} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@footwidth@default} +% \end{macrocode} +% \begin{macro}{\sls@split@at@colon} +% \begin{description} +% \item[\texttt{\meta{balanced}:^^A +% \meta{balanced}:^^A +% \meta{balanced}\Macro{@nil}}:] first \meta{balanced} will be stored into +% \Macro{reserved@a}, second into \Macro{reserved@b}, third will be eaten +% and warn about if it es neither empty and nor a colon. +% \end{description} +% This little helper is used, e.g., by options \Option{headwidth} and +% \Option{footwidth}. +% \begin{macrocode} +\scrlayerAddToInterface\sls@split@at@colon{% + \def\sls@split@at@colon#1:#2:#3\@nil{% + \ifstr{#3}{}{}{% + \ifstr{#3}{:}{}{% + \PackageWarning{scrlayer}{extra `:' found!\MessageBreak + You've used more than one colon at the argument\MessageBreak + of a two value option.\MessageBreak + The extra value(s) will be ignored% + }% + }% + }% + \def\reserved@a{#1}% + \def\reserved@b{#2}% + }% +} +% \end{macrocode} +% \end{macro}^^A \sls@split@at@colon +% \begin{macro}{\sls@set@hf@width} +% \begin{description} +% \item[\Parameter{head} or \Parameter{foot}:] to complete the macro names +% for page head or footer. +% \item[\Parameter{special dimensional expression}:] the offset +% \item[\Parameter{special dimensional expression}:] the width +% \end{description} +% This helper will generally set up width an offset of either head or footer. +% \begin{macrocode} +\scrlayerAddToInterface\sls@set@hf@width{% + \newcommand*{\sls@set@hf@width}[3]{% + \sls@settowidthof{\@tempdima}{#3}% + \ifdim\@tempdima>\paperwidth + \PackageWarning + {scrlayer-scrpage}% + {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 + {scrlayer-scrpage}% + {You've set width of #1 to negative value!\MessageBreak% + I'll set it to 0pt}% + \setlength{\@tempdima}{\z@}% + \fi + \fi + \expandafter\edef\csname sls@#1width\endcsname{\the\@tempdima}% + \setlength{\@tempdima}{\textwidth}% + \addtolength{\@tempdima}{-\csname sls@#1width\endcsname}% + \ifstr{#2}{}{% + \ifdim \csname sls@#1width\endcsname + = \dimexpr \textwidth+\marginparwidth+\marginparsep\relax + \setlength{\@tempdimb}{\z@} + \else + \if@twoside + \setlength{\@tempdimb}{.3333333333\@tempdima}% + \else + \setlength{\@tempdimb}{.5\@tempdima}% + \fi + \fi + }{% + \sls@settowidthof{\@tempdimb}{#2}% + } + \addtolength{\@tempdima}{-\@tempdimb}% + \ifdim\@tempdimb<\z@ + \setlength{\@tempdimb}{-\@tempdimb}% + \expandafter\edef\csname sls@odd#1shift\endcsname{-\the\@tempdimb}% + \else + \expandafter\edef\csname sls@odd#1shift\endcsname{\the\@tempdimb}% + \fi + \ifdim\@tempdima<\z@ + \setlength{\@tempdima}{-\@tempdima}% + \expandafter\edef\csname sls@even#1shift\endcsname{-\the\@tempdima}% + \else + \expandafter\edef\csname sls@even#1shift\endcsname{\the\@tempdima}% + \fi + }% +} +% \end{macrocode} +% \end{macro}^^A \sls@set@hf@width +% \begin{macro}{\sls@headwidth} +% \begin{macro}{\sls@oddheadshift} +% \begin{macro}{\sls@evenheadshift} +% \begin{macro}{\sls@footwidth} +% \begin{macro}{\sls@oddfootshift} +% \begin{macro}{\sls@evenfootshift} +% To store width and offset of page head an footer, we use macros. Those are +% also used by the options and therefore need to be initialised before option +% usage. +% \begin{macrocode} +\scrlayerAddToInterface\sls@headwidth{% + \scr@ifundefinedorrelax{@headwidth}{% + \newcommand*{\sls@headwidth}{\textwidth}% + }{% + \newcommand*{\sls@headwidth}{\@headwidth}% + }% +} +\scrlayerAddToInterface\sls@oddheadshift{\newcommand*{\sls@oddheadshift}{\z@}} +\scrlayerAddToInterface\sls@evenheadshift{\newcommand*{\sls@evenheadshift}{\z@}} +\scrlayerAddToInterface\sls@footwidth{% + \scr@ifundefinedorrelax{@footwidth}{% + \newcommand*{\sls@footwidth}{\textwidth}% + }{% + \newcommand*{\sls@footwidth}{\@footwidth}% + }% +} +\scrlayerAddToInterface\sls@oddfootshift{\newcommand*{\sls@oddfootshift}{\z@}} +\scrlayerAddToInterface\sls@evenfootshift{\newcommand*{\sls@evenfootshift}{\z@}} +% \end{macrocode} +% \end{macro}^^A \sls@headwidth +% \end{macro}^^A \sls@oddheadshift +% \end{macro}^^A \sls@evenheadshift +% \end{macro}^^A \sls@footwidth +% \end{macro}^^A \sls@oddfootshift +% \end{macro}^^A \sls@evenfootshift +% +% \begin{macro}{\sls@settowidthof} +% \begin{macro}{\sls@deftowidthof} +% the special dimensional expressions may be either one of the strings +% \texttt{paper}, \texttt{text}, \texttt{marginpar}, +% \texttt{textwithmarginpar}, \texttt{head}, \texttt{foot}, +% \texttt{headtopline}, \texttt{headsepline}, \texttt{footsepline}, +% \texttt{footbotline}, or \texttt{page} or a valid dimensional +% expression. But it cannot be both a dimensional expression using symbolic +% values! +% \begin{macrocode} +\scrlayerAddToInterface\sls@settotwidthof{% + \newcommand*{\sls@settowidthof}[2]{% + \ifstr{#2}{paper}{% + \setlength{#1}{\paperwidth}% + }{% + \ifstr{#2}{text}{% + \setlength{#1}{\textwidth}% + }{% + \ifstr{#2}{marginpar}{% + \setlength{#1}{\dimexpr \marginparwidth+\marginparsep\relax}% + }{% + \ifstr{#2}{textwithmarginpar}{% + \setlength{#1}{\dimexpr\textwidth + +\marginparwidth + +\marginparsep\relax}% + }{% + \ifstr{#2}{head}{% + \setlength{#1}{\sls@headwidth}% + }{% + \ifstr{#2}{foot}{% + \setlength{#1}{\sls@footwidth}% + }{% + \ifstr{#2}{headtopline}{% + \setlength{#1}{\sls@headabove@linelength}% + }{% + \ifstr{#2}{headsepline}{% + \setlength{#1}{\sls@headbelow@linelength}% + }{% + \ifstr{#2}{footsepline}{% + \setlength{#1}{\sls@footabove@linelength}% + }{% + \ifstr{#2}{footbotline}{% + \setlength{#1}{\sls@footbelow@linelength}% + }{% + \ifstr{#2}{page}{% + \setlength{#1}{\paperwidth}% + \begingroup + \expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname ta@bcor\endcsname\relax\else + \addtolength{#1}{-\ta@bcor}% + \fi + }{% + \setlength{#1}{\dimexpr #2\relax}% + }% + }% + }% + }% + }% + }% + }% + }% + }% + }% + }% + }% +} +\scrlayerAddToInterface\sls@deftowidthof{% + \newcommand*{\sls@deftowidthof}[2]{% + \ifstr{#2}{autohead}{% + \expandafter\def\csname #1\endcsname{\sls@headwidth}% + }{% + \ifstr{#2}{autofoot}{% + \expandafter\def\csname #1\endcsname{\sls@footwidth}% + }{% + \sls@settowidthof{\@tempdima}{#2}% + \expandafter\edef\csname #1\endcsname{\the\@tempdima}% + }% + }% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \sls@deftowidthof +% \end{macro}^^A \sls@settowidthof +% \end{option}^^A footwidth +% \end{option}^^A footheight +% +% \begin{macro}{\setheadwidth} +% \begin{macro}{\setfootwidth} +% For compatibility with \Package{scrpage2}, map the commands to the options: +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\setheadwidth{% + \newcommand*{\setheadwidth}[2][]{% + \KOMAoptions{headwidth=#2:#1}% + }% +} +\scrlayerAddToInterface\setfootwidth{% + \newcommand*{\setfootwidth}[2][]{% + \KOMAoptions{footwidth=#2:#1}% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \setheadwidth +% \end{macro}^^A \setfootwidth +% +% +% \section{Lines in Page Head and Footer} +% +% The interface implements the options \Option{headtopline}, +% \Option{headsepline}, \Option{footsepline}, \Option{footbotline}, +% \Option{plainheadtopline}, \Option{plainheadsepline}, +% \Option{plainfootsepline}, \Option{plainfootbotline}, \Option{ilines}, +% \Option{clines}, and \Option{olines}, the commands \Macro{setheadtopline}, +% \Macro{setheadsepline}, \Macro{setfootsepline}, and \Macro{setfootbotline}, +% and the corresponding \KOMAScript{} font elements of package +% \Package{scrpage2}. Some of the options are extended to understand +% values. +% +% \begin{option}{headtopline} +% \begin{option}{headsepline} +% \begin{option}{footsepline} +% \begin{option}{footbotline} +% \begin{description} +% \item[{\texttt{=\meta{dimensional expression}:\meta{dimensional +% expression}}:}] +% \end{description}\noindent +% Define thickness and length of the a default separation line between: +% \begin{description} +% \item[\Option{headtopline}:] the top margin of the page and the page head. +% \item[\Option{headsepline}:] the page head and the text area. +% \item[\Option{footsepline}:] the text area and the page footer. +% \item[\Option{footbotline}:] the page footer and the bottom margin. +% \end{description} +% Both values may be omitted. In that case thickness would be 0.4\,pt, and +% length would be the width of the page head or footer. If the second +% argument, the length, has been omitted the \texttt{:} may also be omitted. +% \begin{macrocode} +%<*options> +\KOMA@key{headtopline}[:]{\sls@set@values{head}{above}{#1}} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@headtopline} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@headtopline@default} +\KOMA@key{headsepline}[:]{\sls@set@values{head}{below}{#1}} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@headsepline} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@headsepline@default} +\KOMA@key{footsepline}[:]{\sls@set@values{foot}{above}{#1}} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@footsepline} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@footsepline@default} +\KOMA@key{footbotline}[:]{\sls@set@values{foot}{below}{#1}} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@footbotline} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@footbotline@default} +% \end{macrocode} +% \begin{macro}{\sls@set@values} +% \begin{description} +% \item[\Parameter{head or foot}:] either \texttt{head} or \texttt{foot} +% \item[\Parameter{above or below}:] either \texttt{above} or \texttt{below} +% \item[\Parameter{dimension expression}\texttt{:}\Parameter{dimension +% expression}] length an thickness of a line (both are optional) +% \end{description} +% Helper macros for the options to set two macros by two values of one +% option. The two values are separated by a colon. +% \begin{macrocode} +\scrlayerAddToInterface\sls@set@values{% + \newcommand*{\sls@set@values}[3]{% + \begingroup + \let\reserved@a\@empty + \let\reserved@b\@empty + \ifstr{#3}{true}{\def\reserved@a{.4pt}\def\reserved@b{sls@#1width}}{% + \ifstr{#3}{yes}{\def\reserved@a{.4pt}\def\reserved@b{sls@#1width}}{% + \ifstr{#3}{on}{\def\reserved@a{.4pt}\def\reserved@b{sls@#1width}}{% + \ifstr{#3}{false}{\def\reserved@a{\z@}\def\reserved@b{z@}}{% + \ifstr{#3}{no}{\def\reserved@a{\z@}\def\reserved@b{z@}}{% + \ifstr{#3}{off}{\def\reserved@a{\z@}\def\reserved@b{z@}}{% + }% + }% + }% + }% + }% + }% + \ifx\reserved@a\@empty + \sls@split@at@colon#3::\@nil + \ifx\reserved@a\@empty + \def\reserved@a{\endgroup\@namedef{sls@#1#2@linethickness}{.4pt}}% + \else + \setlength{\@tempdima}{\dimexpr\reserved@a\relax}% + \edef\reserved@a{% + \noexpand\endgroup + \noexpand\@namedef{sls@#1#2@linethickness}{\the\@tempdima}% + }% + \fi + \ifx\reserved@b\@empty + \def\reserved@b{% + \reserved@a + \@namedef{sls@#1#2@linelength}{\@nameuse{sls@#1width}}% + }% + \else + \edef\reserved@b{% + \noexpand\reserved@a + \noexpand\sls@deftowidthof{sls@#1#2@linelength}{\reserved@b}% + }% + \fi + \else + \edef\reserved@b{% + \noexpand\endgroup + \noexpand\@namedef{sls@#1#2@linethickness}{\reserved@a}% + \noexpand\@namedef{sls@#1#2@linelength}{% + \expandafter\noexpand\csname \reserved@b\endcsname + }% + }% + \fi + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \sls@set@values +% \begin{macro}{\sls@headabove@linelength} +% \begin{macro}{\sls@headabove@linethickness} +% \begin{macro}{\sls@headbelow@linelength} +% \begin{macro}{\sls@headbelow@linethickness} +% \begin{macro}{\sls@footabove@linelength} +% \begin{macro}{\sls@footabove@linethickness} +% \begin{macro}{\sls@footbelow@linelength} +% \begin{macro}{\sls@footbelow@linethickness} +% To store length and thickness of the lines at the page head an footer, we +% use macros. Those are also used by the options and therefore need to be +% initialised before option usage. +% \begin{macrocode} +\scrlayerAddToInterface\sls@headabove@linelength{% + \newcommand*{\sls@headabove@linelength}{\sls@headwidth}% +} +\scrlayerAddToInterface\sls@headabove{% + \newcommand*{\sls@headabove@linethickness}{\z@}% +} +\scrlayerAddToInterface\sls@headbelow@linelength{% + \newcommand*{\sls@headbelow@linelength}{\sls@headwidth}% +} +\scrlayerAddToInterface\sls@headbelow@linethickness{% + \newcommand*{\sls@headbelow@linethickness}{\z@}% +} +\scrlayerAddToInterface\sls@footabove@linelength{% + \newcommand*{\sls@footabove@linelength}{\sls@footwidth}% +} +\scrlayerAddToInterface\sls@footabove@linethickness{% + \newcommand*{\sls@footabove@linethickness}{\z@}% +} +\scrlayerAddToInterface\sls@footbelow@linelength{% + \newcommand*{\sls@footbelow@linelength}{\sls@footwidth}% +} +\scrlayerAddToInterface\sls@footbelow@linethickness{% + \newcommand*{\sls@footbelow@linethickness}{\z@}% +} +% +% \end{macrocode} +% \end{macro}^^A \sls@footbelow@linethickness +% \end{macro}^^A \sls@footbelow@linelength +% \end{macro}^^A \sls@footabove@linethickness +% \end{macro}^^A \sls@footabove@linelength +% \end{macro}^^A \sls@headbelow@linethickness +% \end{macro}^^A \sls@headbelow@linelength +% \end{macro}^^A \sls@headabove@linethickness +% \end{macro}^^A \sls@headabove@linelength +% \end{option}^^A footbotline +% \end{option}^^A footsepline +% \end{option}^^A headsepline +% \end{option}^^A headtopline +% +% \begin{option}{plainheadtopline} +% \begin{macro}{\ifsls@plain@head@above@line} +% \begin{option}{plainheadsepline} +% \begin{macro}{\ifsls@plain@head@below@line} +% \begin{option}{plainfootsepline} +% \begin{macro}{\ifsls@plain@foot@above@line} +% \begin{option}{plainfootbotline} +% \begin{macro}{\ifsls@plain@foot@below@line} +% \begin{description} +% \item[\texttt{=\meta{switch value}}:] +% \end{description}\noindent +% While these only switches the rule on or off, we need only some switches. +% \begin{macrocode} +%<*options> +\scrlayerAddCsToInterface{ifsls@plain@head@above@line}{% + \KOMA@ifkey{plainheadtopline}{sls@plain@head@above@line}% + \scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@plainheadtopline}% + \scrlayer@AddCsToInterface{% + KV@KOMA.scrlayer-scrpage.sty@plainheadtopline@default}% + \scrlayer@AddCsToInterface{sls@plain@head@above@linetrue} + \scrlayer@AddCsToInterface{sls@plain@head@above@linefalse} +} +\scrlayerAddCsToInterface{ifsls@plain@head@sbelow@line}{% + \KOMA@ifkey{plainheadsepline}{sls@plain@head@below@line}% + \scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@plainheadsepline}% + \scrlayer@AddCsToInterface{% + KV@KOMA.scrlayer-scrpage.sty@plainheadsepline@default}% + \scrlayer@AddCsToInterface{sls@plain@head@below@linetrue}% + \scrlayer@AddCsToInterface{sls@plain@head@below@linefalse}% +} +\scrlayerAddCsToInterface{ifsls@plain@foot@above@line}{% + \KOMA@ifkey{plainfootsepline}{sls@plain@foot@above@line}% + \scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@plainfootsepline}% + \scrlayer@AddCsToInterface{% + KV@KOMA.scrlayer-scrpage.sty@plainfootsepline@default}% + \scrlayer@AddCsToInterface{sls@plain@foot@above@linetrue}% + \scrlayer@AddCsToInterface{sls@plain@foot@above@linefalse}% +} +\scrlayerAddCsToInterface{ifsls@plain@foot@below@line}{% + \KOMA@ifkey{plainfootbotline}{sls@plain@foot@below@line}% + \scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@plainfootbotline}% + \scrlayer@AddCsToInterface{% + KV@KOMA.scrlayer-scrpage.sty@plainfootbotline@default}% + \scrlayer@AddCsToInterface{sls@plain@foot@below@linetrue}% + \scrlayer@AddCsToInterface{sls@plain@foot@below@linefalse}% +} +% +% \end{macrocode} +% \end{macro}^^A \ifsls@plain@foot@below@line +% \end{option}^^A plainfootbotline +% \end{macro}^^A \ifsls@plain@foot@above@line +% \end{option}^^A plainfootsepline +% \end{macro}^^A \ifsls@plain@head@below@line +% \end{option}^^A plainheadsepline +% \end{macro}^^A \ifsls@plain@head@above@line +% \end{option}^^A plainheadtopline +% +% \begin{option}{ilines} +% \begin{option}{clines} +% \begin{option}{olines} +% \begin{macro}{\sls@hfline@adjust} +% Maybe it would be more useful to be able to adjust each line on its own or +% at most to define an offset. But \Package{scrpage2} supports only these +% options. At least we can set the options inside a layer or page style. This +% may help. +% \begin{macrocode} +%<*options> +\scrlayerAddToInterface\sls@hfline@adjust{% + \newcommand*{\sls@hfline@adjust}{0}% +} +\KOMA@key{ilines}[]{% + \ifx\relax#1\relax + \renewcommand*{\sls@hfline@adjust}{0}% + \FamilyKeyStateProcessed + \else + \def\FamilyKeyStateProcessed{unexpected value}% + \fi +} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@ilines} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@ilines@default} +\KOMA@key{clines}[]{% + \ifx\relax#1\relax + \renewcommand*{\sls@hfline@adjust}{1}% + \FamilyKeyStateProcessed + \else + \def\FamilyKeyStateProcessed{unexpected value}% + \fi +} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@clines} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@clines@default} +\KOMA@key{olines}[]{% + \ifx\relax#1\relax + \renewcommand*{\sls@hfline@adjust}{2}% + \FamilyKeyStateProcessed + \else + \def\FamilyKeyStateProcessed{unexpected value}% + \fi +} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@olines} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@olines@default} +% +% \end{macrocode} +% \end{macro}^^A \sls@hfline@adjust +% \end{option}^^A olines +% \end{option}^^A clines +% \end{option}^^A ilines +% +% \begin{macro}{\setheadtopline} +% \begin{macro}{\setheadsepline} +% \begin{macro}{\setfootsepline} +% \begin{macro}{\setfootbotline} +% \begin{description} +% \item[\OParameter{extended dimensional expression}:] the length of the +% line; if omitted the length will use the width of the page head or +% footer while printing the line. +% \item[\Parameter{dimensional expression}:] the thickness of the line. +% \item[\OParameter{code}:] the font selection code for the line. You may +% use it for any kind of operation, that doesn't change the position, +% width, height, or depth, e.g., to change the colour of the line. +% \end{description} +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\setheadtopline{% + \newcommand*{\setheadtopline}{\sls@setline{head}{above}}% +} +\scrlayerAddToInterface\setheadsepline{% + \newcommand*{\setheadsepline}{\sls@setline{head}{below}}% +} +\scrlayerAddToInterface\setfootsepline{% + \newcommand*{\setfootsepline}{\sls@setline{foot}{above}}% +} +\scrlayerAddToInterface\setfootbotline{% + \newcommand*{\setfootbotline}{\sls@setline{foot}{below}}% +} +% \end{macrocode} +% \begin{macro}{\sls@setline} +% \begin{macro}{\sls@@setline} +% \begin{macro}{\sls@@@setline} +% \begin{macro}{\sls@@@@setline} +% Helper to set up the line attributes processing the parameters of the +% commands above. +% \begin{macrocode} +\scrlayerAddToInterface\sls@setline{% + \newcommand*\sls@setline[2]{% + \@ifnextchar[%] + {\sls@@setline{#1}{#2}}{\sls@@@setline{#1#2}}% + }% +} +\scrlayerAddToInterface\sls@@setline{% + \def\sls@@setline#1#2[#3]{% + \ifstr{#3}{auto}{% + \sls@deftowidthof{sls@#1#2@linelength}{#3#1}% + }{% + \sls@deftowidthof{sls@#1#2@linelength}{#3}% + }% + \sls@@@setline{#1#2}% + }% +} +\scrlayerAddToInterface\sls@@@setline{% + \def\sls@@@setline#1#2{% + \edef\@tempa{#2}\edef\@tempb{current} + \ifstr{#2}{}{}{% + \ifstr{#2}{current}{}{% + \setlength{\@tempdima}{#2}% + \expandafter\edef\csname sls@#1@linethickness\endcsname% + {\the\@tempdima}% + }% + }% + \PackageWarning{scrlayer-scrpage}{% + Command deprecated!\MessageBreak + Usage of `\string\setheadtopline', + `\string\setheadsepline',\MessageBreak + `\string\setfootsepline', and `\string\setfootbotline'\MessageBreak + became deprecated with scrlayer-scrpage.\MessageBreak + You should use KOMA-Script options\MessageBreak + `headsepline', `headtopline', `footsepline',\MessageBreak + or `footbotline' with values\MessageBreak + `:' to setup\MessageBreak + the line length and thickness, and\MessageBreak + `\string\setkomafont' or `\string\addtokomafont' to\MessageBreak + setup the colour% + }% + \@ifnextchar[%] + {% + \sls@@@@setline{#1}% + }{% + }% + }% +} +\scrlayerAddToInterface\sls@@@@setline{% + \def\sls@@@@setline#1[#2]{% + \ifstr{#1}{headabove}{\setkomafont{headtopline}{#2}}{% + \ifstr{#1}{headbelow}{\setkomafont{headsepline}{#2}}{% + \ifstr{#1}{footabove}{\setkomafont{footsepline}{#2}}{% + \setkomafont{footbotline}{#2}% + }% + }% + }% + }% +} +% \end{macrocode} +% \end{macro}^^A \sls@setline +% \end{macro}^^A \sls@@setline +% \end{macro}^^A \sls@@@setline +% \end{macro}^^A \sls@@@@setline +% \begin{KOMAfont}{headtopline} +% \begin{KOMAfont}{headsepline} +% \begin{KOMAfont}{footsepline} +% \begin{KOMAfont}{footbotline} +% These are the font elements used in \Macro{sls@hf@rule} to set the rules +% with, i.e., another colour. Note, that those may already be defined and +% become only part of the interface if they are not. +% \begin{macrocode} +\@ifundefined{scr@fnt@headtopline}{% + \@ifundefined{@headtoplinefont}{% + \scrlayer@AddCsToInterface{@headtoplinefont}% + }{}% + \newkomafont{headtopline}{}% + \scrlayer@AddCsToInterface{scr@fnt@headtopline}% +}{} +\@ifundefined{scr@fnt@headsepline}{% + \@ifundefined{@headseplinefont}{% + \scrlayer@AddCsToInterface{@headseplinefont}% + }{}% + \newkomafont{headsepline}{}% + \scrlayer@AddCsToInterface{scr@fnt@headsepline}% +}{} +\@ifundefined{scr@fnt@footsepline}{% + \@ifundefined{@footseplinefont}{% + \scrlayer@AddCsToInterface{@footseplinefont}% + }{}% + \newkomafont{footsepline}{}% + \scrlayer@AddCsToInterface{scr@fnt@footsepline}% +}{} +\@ifundefined{scr@fnt@footbotline}{% + \@ifundefined{@footbotlinefont}{% + \scrlayer@AddCsToInterface{@footbotlinefont}% + }{}% + \newkomafont{footbotline}{}% + \scrlayer@AddCsToInterface{scr@fnt@footbotline}% +}{} +% +% \end{macrocode} +% \end{KOMAfont}^^A footbotline +% \end{KOMAfont}^^A footsepline +% \end{KOMAfont}^^A headsepline +% \end{KOMAfont}^^A headtopline +% \end{macro}^^A \setfootbotline +% \end{macro}^^A \setfootsepline +% \end{macro}^^A \setheadsepline +% \end{macro}^^A \setheadtopline +% +% \begin{length}{\headheight} +% Some classes set \Length{headheight} to a very, very small value. We'll +% warn about that: +% \begin{macrocode} +%<*body> +\AtBeginDocument{% + \ifdim \headheight <\baselineskip + \PackageWarningNoLine{scrlayer-scrpage}{Very small head height + detected!\MessageBreak + Using scrlayer-scrpage the head height\MessageBreak + should be at least \string\baselineskip, which is\MessageBreak + \the\baselineskip\space currently.\MessageBreak + But head height is currently + \the\headheight\space only.\MessageBreak + You may use\MessageBreak + \@ifpackageloaded{geometry}{% + geometry option `head=\the\baselineskip'% + }{% + \@ifpackageloaded{typearea}{% + typearea option `headheight=\the\baselineskip'% + }{% + \string\setlength{\string\headheight}{\the\baselineskip}% + }% + }\MessageBreak + to avoid this warning% + }% + \fi +} +% +% \end{macrocode} +% \end{length} +% +% +% \section{Style of Running Heads} +% +% This implements not only options \Option{komastyle} and +% \Option{standardstyle} of \Package{scrpage2}, but also activates the default +% style at the end of the package and takes care for the correct overwrite +% behaviour of option \Option{markcase}. +% +% \begin{option}{pagestyleset} +% \begin{description} +% \item[\texttt{=\meta{string}}:] a valid name of a predefined +% style-set. Currently only \texttt{KOMA-Script} and \texttt{standard} are +% supported. Maybe more will follow. +% \end{description} +% Note, that the following automatic style activation must be before the +% first option usage: +% \begin{macrocode} +%<*init> +\AtEndOfPackage{% + \scr@ifundefinedorrelax{KOMAClassName}{% +% \PackageInfoNoLine{scrlayer-scrpage}{% +% auto-selection of `pagestyleset=standard'}% + \FamilyExecuteOptions[.scrlayer-scrpage.sty]{KOMA}{pagestyleset=standard}% + }{% +% \PackageInfoNoLine{scrlayer-scrpage}{% +% auto-selection of `pagestyleset=KOMA-Script'}% + \FamilyExecuteOptions[.scrlayer-scrpage.sty]{KOMA}% + {pagestyleset=KOMA-Script}% + }% +} +% +%<*options> +\KOMA@key{pagestyleset}{% + \scr@ifundefinedorrelax{sls@ps@style@#1}{% + \FamilyKeyStateUnknownValue + }{% + \@nameuse{sls@ps@style@#1}% + \FamilyKeyStateProcessed + }% +} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@pagestyleset} +% \end{macrocode} +% \begin{macro}{\sls@ps@style@standard} +% \begin{macro}{\sls@ps@style@KOMA-Script} +% These are the predefined page style sets. +% \begin{macrocode} +\scrlayerAddToInterface\sls@ps@style@standard{% + \newcommand*{\sls@ps@style@standard}{% + \let\MakeMarkcase\MakeUppercase + \scrlayer@AtEndOfPackage{% + \pagestyle{scrheadings}% + \clearpairofpagestyles + \ihead{\headmark}% + \ohead{\pagemark}% + \cfoot[\if@twoside\else\pagemark\fi]{}% + }% + }% +} +\scrlayerAddCsToInterface{sls@ps@style@KOMA-Script}{% + \@namedef{sls@ps@style@KOMA-Script}{% + \let\MakeMarkcase\@firstofone + \scrlayer@AtEndOfPackage{% + \pagestyle{scrheadings}% + \clearpairofpagestyles + \ohead{\if@twoside\headmark\fi}% + \chead{\if@twoside\else\headmark\fi}% + \ofoot[\if@twoside\pagemark\fi]{\if@twoside\pagemark\fi}% + \cfoot[\if@twoside\else\pagemark\fi]{\if@twoside\else\pagemark\fi}% + \scr@ifundefinedorrelax{KOMAClassName}{}{% + \ifstr{\KOMAClassName}{scrlttr2}{% +% \end{macrocode} +% We are using \Class{scrlttr2}, so we have to initialise the page style +% different: +% \begin{macrocode} + \clearpairofpagestyles + \lehead[\ifnum\@pageat\z@\pagemark\fi] + {\ifnum\@pageat\z@\pagemark\else\leftmark\fi}% + \lohead[\ifnum\@pageat\z@\pagemark\fi] + {\ifnum\@pageat\z@\pagemark\else\leftmark\fi}% + \chead[\ifnum\@pageat\@ne\pagemark\fi] + {\ifcase\@pageat \rightmark\or \pagemark\or \rightmark\fi}% + \rehead[\ifnum\@pageat\tw@\pagemark\fi] + {\ifcase\@pageat \leftmark\or \rightmark\or \pagemark + \else \rightmark\fi}% + \rohead[\ifnum\@pageat\tw@\pagemark\fi] + {\ifcase\@pageat \leftmark\or \rightmark\or \pagemark + \else \rightmark\fi}% + \lefoot[\ifnum\@pageat\thr@@\pagemark\fi] + {\ifnum\@pageat\thr@@\pagemark\fi}% + \cfoot[\ifnum\@pageat 4 \pagemark\fi] + {\ifnum\@pageat 4 \pagemark\fi}% + \refoot[\ifnum\@pageat 5 \pagemark\fi] + {\ifnum\@pageat 5 \pagemark\fi}% + }{}% + }% + }% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \sls@ps@style@KOMA-Script +% \end{macro}^^A \sls@ps@style@standard +% \end{option}^^A pagestyleset +% +% \begin{option}{komastyle} +% \begin{option}{standardstyle} +% These options are deprecated, but defined for compatibility with +% \Package{scrpage2}: +% \begin{macrocode} +%<*options> +\KOMA@DeclareDeprecatedOption[scrlayer-scrpage]{komastyle}{% + pagestyleset=KOMA-Script} +\KOMA@DeclareDeprecatedOption[scrlayer-scrpage]{standardstyle}{% + pagestyleset=standard} +% +% \end{macrocode} +% \end{option}^^A standardstyle +% \end{option}^^A komastyle +% +% +% \section{Extended Mark Mechanisms} +% +% Package options \Option{markuppercase}, \Option{markusedcase}, and +% \Option{nouppercase} of package \Package{scrpage2} will be mapped to +% \KOMAScript{} option \Option{markcase}. +% +% \begin{option}{markuppercase} +% \begin{option}{markusedcase} +% \begin{option}{nouppercase} +% For compatibility with \Package{scrpage2}. +% \begin{macrocode} +%<*options> +\KOMA@DeclareDeprecatedOption[scrlayer-scrpage]{markuppercase}{markcase=upper} +\KOMA@DeclareDeprecatedOption[scrlayer-scrpage]{markusedcase}{markcase=used} +\KOMA@DeclareDeprecatedOption[scrlayer-scrpage]{nouppercase}{% + markcase=ignoreuppercase% +} +% +% \end{macrocode} +% \end{option}^^A nouppercase +% \end{option}^^A markusedcase +% \end{option}^^A markuppercase +% +% +% \section{Expert Page Style Definition Interface} +% +% This is the low level interface of \Package{scrpage2} with +% \Macro{defpagestyle}, \Macro{newpagestyle}, \Macro{renewpagestyle}, and +% \Macro{providepagestyle}. We will also define is. In difference to +% \Package{scrpage2} layers are used. Following layers will be defined for +% each page style: +% \begin{description} +% \item[\texttt{\meta{page style name}.head.above.line}] line above the head +% \item[\texttt{\meta{page style name}.head.odd}] odd page head (only twoside) +% \item[\texttt{\meta{page style name}.head.even}] even page head (only +% twoside) +% \item[\texttt{\meta{page style name}.head.oneside}] single-side head (only +% oneside) +% \item[\texttt{\meta{page style name}.head.below}] line below the head +% \item[\texttt{\meta{page style name}.foot.above.line}] line above the footer +% \item[\texttt{\meta{page style name}.foot.odd}] odd page footer (only +% twoside) +% \item[\texttt{\meta{page style name}.foot.even}] even side footer (only +% twoside) +% \item[\texttt{\meta{page style name}.foot.oneside}] single-side footer (only +% oneside) +% \item[\texttt{\meta{page style name}.foot.below.line}] line below the footer +% (only oneside) +% \end{description} +% Note: \Package{scrpage2} also provides starred versions of the page style +% definition commands, doing the same like the starless versions. This has +% been done for compatibility reasons with deprecated \Package{scrpage2} and +% may be removed some times. The layer interface doesn't support this. +% +% \begin{macro}{\defpagestyle} +% \begin{description} +% \item[\Parameter{string}:] the name of the page style to be defined (must +% be fully expandable and expand to a string only). +% \item[\Parameter{head/foot definition}:] will be used to define the +% head (see \Macro{sls@defhead}). +% \item[\Parameter{head/foot definition}:] will be used to define the +% foot (see \Macro{sls@deffoot}). +% \end{description} +% See \Package{scrpage2} implementation. +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\defpagestyle{% + \newcommand*{\defpagestyle}[3]{% + \sls@defhead{#1}#2\@empty\@empty\@empty + \sls@deffoot{#1}#3\@empty\@empty\@empty + \DeclarePageStyleByLayers{#1}{% + #1.head.odd,#1.head.even,#1.head.oneside,% + #1.head.above.line,#1.head.below.line,% + #1.foot.odd,#1.foot.even,#1.foot.oneside,% + #1.foot.above.line,#1.foot.below.line% + }% + \edef\reserved@a{% + \noexpand\scrlayerOnAutoRemoveInterface[scrlayer-scrpage.sty]{% + \noexpand\DestroyLayer{#1.head.odd}% + \noexpand\DestroyLayer{#1.head.even}% + \noexpand\DestroyLayer{#1.head.oneside}% + \noexpand\DestroyLayer{#1.head.above.line}% + \noexpand\DestroyLayer{#1.head.below.line}% + \noexpand\DestroyLayer{#1.foot.odd}% + \noexpand\DestroyLayer{#1.foot.even}% + \noexpand\DestroyLayer{#1.foot.oneside}% + \noexpand\DestroyLayer{#1.foot.above.line}% + \noexpand\DestroyLayer{#1.foot.below.line}% + \noexpand\ifstr{\noexpand\currentpagestyle}{#1}{% + \noexpand\PackageWarning{scrlayer-scrpage}{% + page style `#1' not longer valid.\noexpand\MessageBreak + The page style has been defined using\noexpand\MessageBreak + interface `scrlayer-scrpage.sty', that\noexpand\MessageBreak + has been removed% + }% + }{}% + \noexpand\DestroyRealLayerPageStyle{#1}% + }% + }\reserved@a + }% +} +% \end{macrocode} +% \begin{macro}{\sls@defhead} +% \begin{macro}{\sls@@defhead} +% \begin{macro}{\sls@@@defhead} +% \begin{description} +% \item[\MParameter{dimensional expression}{dimensional expression}:] length +% and thickness of a line (ruler) above the page head. May be omitted and +% if so the values from option \Option{headtopline} will be used. +% \item[\Parameter{code}:] will be executed on even pages; used to define +% the contents of layer \texttt{\meta{page style name}.head.even}. +% \item[\Parameter{code}:] will be executed on odd pages within two-side +% layout; used to define the contents of layer \texttt{\meta{page style +% name}.head.odd}. +% \item[\Parameter{code}:] will be executed on single-side pages; used to +% define the contents of layer \texttt{\meta{page style +% name}.head.oneside}. +% \item[\MParameter{dimensional expression}{dimensional expression}:] length +% and thickness of a line (ruler) below the page head. May be omitted and +% if so the values from option \Option{headsepline} will be used. +% \end{description} +% Helper to define the head layers. +% \begin{macrocode} +\scrlayerAddToInterface\sls@defhead{% + \newcommand*\sls@defhead[1]{% + \@ifnextchar(%) + {\sls@@defhead{#1}}% + {\sls@@defhead{#1}(\sls@headabove@linelength,\sls@headabove@linethickness)}% + }% +} +\scrlayerAddToInterface\sls@@defhead{% + \def\sls@@defhead#1(#2,#3)#4#5#6{% + \@ifnextchar(%) + {\sls@@@defhead{#1}({#2},{#3}){#4}{#5}{#6}}% + {\sls@@@defhead{#1}% + ({#2},{#3})% + {#4}{#5}{#6}% + (\sls@headbelow@linelength,\sls@headbelow@linethickness)}% + }% +} +\scrlayerAddToInterface\sls@@@defhead{% + \def\sls@@@defhead#1(#2,#3)#4#5#6(#7,#8){% +% \end{macrocode} +% The lines: +% \begin{macrocode} + \DeclareLayer[% + background,% + hoffset=\sls@leftmargin{head},% + voffset=\sls@topmargin+\dp\strutbox,% + width=\sls@headwidth,% + height=0pt,% + align=bl,% + contents={% + {\normalfont\usekomafont{pageheadfoot}{\usekomafont{pagehead}{% + \sls@hf@rule{headtop}{#2}{#3}}}}% + }% + ]{#1.head.above.line}% + \DeclareLayer[% + background,% + hoffset=\sls@leftmargin{head},% + voffset=\sls@topmargin+\headheight-\ht\strutbox+#8,% + width=\sls@headwidth,% + height=0pt,% + align=tl,% + contents={% + {\normalfont\usekomafont{pageheadfoot}{\usekomafont{pagehead}{% + \sls@hf@rule{headsep}{#7}{#8}}}}% + }% + ]{#1.head.below.line}% +% \end{macrocode} +% The odd side, even side and one side: +% \begin{macrocode} + \DeclareLayer[% + background,evenpage,twoside,% + head,% + hoffset=\sls@leftmargin{head},% + width=\sls@headwidth,% + contents={% + \sls@secure@box\headheight{% + \normalfont\usekomafont{pageheadfoot}{\usekomafont{pagehead}{#4}}}}% + ]{#1.head.odd}% + \DeclareLayer[% + background,oddpage,twoside,% + head,% + hoffset=\sls@leftmargin{head},% + width=\sls@headwidth,% + contents={% + \sls@secure@box\headheight{% + \normalfont\usekomafont{pageheadfoot}{\usekomafont{pagehead}{#5}}}}% + ]{#1.head.even}% + \DeclareLayer[% + background,oddpage,oneside,% + head,% + hoffset=\sls@leftmargin{head},% + width=\sls@headwidth,% + contents={% + \sls@secure@box\headheight{% + \normalfont\usekomafont{pageheadfoot}{\usekomafont{pagehead}{#6}}}}% + ]{#1.head.oneside}% + }% +} +% \end{macrocode} +% \begin{macro}{\sls@deffoot} +% \begin{macro}{\sls@@deffoot} +% \begin{macro}{\sls@@@deffoot} +% \begin{description} +% \item[\MParameter{dimensional expression}{dimensional expression}:] length +% and thickness of a line (ruler) above the page footer. May be omitted +% and if so the values from option \Option{footsepline} will be used. +% \item[\Parameter{code}:] will be executed on even pages; used to define +% the contents of layer \texttt{\meta{page style name}.foot.even}. +% \item[\Parameter{code}:] will be executed on odd pages within two-side +% layout; used to define the contents of layer \texttt{\meta{page style +% name}.foot.odd}. +% \item[\Parameter{code}:] will be executed on single-side pages; used to +% define the contents of layer \texttt{\meta{page style +% name}.foot.oneside}. +% \item[\MParameter{dimensional expression}{dimensional expression}:] length +% and thickness of a line (ruler) below the page footer. May be omitted +% and if so the values from option \Option{footbotline} will be used. +% \end{description} +% Helper to define the foot layers. +% \begin{macrocode} +\scrlayerAddToInterface\sls@deffoot{% + \newcommand*\sls@deffoot[1]{% + \@ifnextchar(%) + {\sls@@deffoot{#1}}% + {\sls@@deffoot{#1}(\sls@footabove@linelength,\sls@footabove@linethickness)}% + }% +} +\scrlayerAddToInterface\sls@@deffoot{% + \def\sls@@deffoot#1(#2,#3)#4#5#6{% + \@ifnextchar(%) + {\sls@@@deffoot{#1}({#2},{#3}){#4}{#5}{#6}}% + {\sls@@@deffoot{#1}% + ({#2},{#3})% + {#4}{#5}{#6}% + (\sls@footbelow@linelength,\sls@footbelow@linethickness)}% + }% +} +\scrlayerAddToInterface\sls@@@deffoot{% + \def\sls@@@deffoot#1(#2,#3)#4#5#6(#7,#8){% +% \end{macrocode} +% The lines: +% \begin{macrocode} + \DeclareLayer[% + foreground,% + hoffset=\sls@leftmargin{foot},% + voffset=\sls@topmargin + +\headheight+\headsep + +\textheight + +\footskip-\footheight + +2\dp\strutbox,% + width=\sls@footwidth,% + height=0pt,% + align=bl,% + contents={% + {\normalfont\usekomafont{pageheadfoot}{\usekomafont{pagefoot}{% + \sls@hf@rule{footsep}{#2}{#3}}}}% + }% + ]{#1.foot.above.line}% + \DeclareLayer[% + foreground,% + hoffset=\sls@leftmargin{foot},% + voffset=\sls@topmargin + +\headheight+\headsep + +\textheight + +\footskip + +2\dp\strutbox + +#8,% + width=\sls@footwidth,% + height=0pt,% + align=bl,% + contents={% + {\normalfont\usekomafont{pageheadfoot}{\usekomafont{pagefoot}{% + \sls@hf@rule{footbot}{#7}{#8}}}}% + }% + ]{#1.foot.below.line}% +% \end{macrocode} +% The odd side, even side and one side: +% \begin{macrocode} + \DeclareLayer[% + foreground,evenpage,twoside,% + foot,% + hoffset=\sls@leftmargin{foot},% + width=\sls@footwidth,% + contents={% + \sls@secure@box\footheight{% + \normalfont\usekomafont{pageheadfoot}{\usekomafont{pagefoot}{#4}}}}% + ]{#1.foot.odd}% + \DeclareLayer[% + foreground,oddpage,twoside,% + foot,% + hoffset=\sls@leftmargin{foot},% + width=\sls@footwidth,% + contents={% + \sls@secure@box\footheight{% + \normalfont\usekomafont{pageheadfoot}{\usekomafont{pagefoot}{#5}}}}% + ]{#1.foot.even}% + \DeclareLayer[% + foreground,oddpage,oneside,% + foot,% + hoffset=\sls@leftmargin{foot},% + width=\sls@footwidth,% + contents={% + \sls@secure@box\footheight{% + \normalfont\usekomafont{pageheadfoot}{\usekomafont{pagefoot}{#6}}}}% + ]{#1.foot.oneside}% + }% +} +% \end{macrocode} +% \begin{macro}{\sls@secure@box} +% \begin{description} +% \item[\Parameter{length}:] a \LaTeX{} length, that gives the maximum +% height + depth of the \meta{content}. It has to be either +% \cs{headheight} or \cs{footheight}. +% \item[\Parameter{content}:] what should be output (inside the box). +% \end{description} +% Note, that several length may be changed, to fit. +% \begin{macrocode} +\scrlayerAddToInterface\sls@secure@box{% + \newcommand*{\sls@secure@box}[2]{% + \begingroup + \setbox\z@\vbox{% + \ifsls@leavevmode\leavevmode\expandafter\ignorespaces\fi + #2% + }% + \ifdim #1<\dimexpr \ht\z@+\dp\z@\relax + \PackageWarning{scrlayer-scrpage}{% + \string#1 to low.\MessageBreak + At least \the\dimexpr \ht\z@+\dp\z@\relax\space needed,\MessageBreak + but only \the#1 found.\MessageBreak + I'll enlarge \string#1, for further\MessageBreak + processing, but you should do this yourself,\MessageBreak + e.g., + \scr@ifundefinedorrelax{geometry}{% + \scr@ifundefinedorrelax{typearea}{% + using\MessageBreak + \space\space\string\setlength{\string#1}{% + \the\dimexpr \ht\z@+\dp\z@\relax}\MessageBreak + in your preamble% + }{% + setting typearea's option\MessageBreak + `\expandafter\@gobble\string#1=\the\dimexpr \ht\z@+\dp\z@\relax'% + }% + }{% + \ifx #1\headheight + setting geometry's option\MessageBreak + `head=\the\dimexpr \ht\z@+\dp\z@\relax'% + \else + using\MessageBreak + \space\space\string\setlength{\string#1}{% + \the\dimexpr \ht\z@+\dp\z@\relax}\MessageBreak + in your preamble% + \fi + }% + .\MessageBreak + I'll also + \ifx #1\headheight decrease \string\topmargin + \else increase \string\footskip\fi + }% + \@tempdima\dimexpr \ht\z@+\dp\z@\relax + \ifx #1\headheight + \global\advance\topmargin by \dimexpr #1-(\ht\z@+\dp\z@)\relax + \dp\z@\dimexpr \dp\z@+\ht\z@+\dp\z@-\headheight\relax + \else + \global\advance\footskip by \dimexpr \ht\z@+\dp\z@-#1\relax + \fi + \global#1\@tempdima + \fi + \usebox\z@ + \endgroup + }% +} +% +% \end{macrocode} +% \begin{option}{hmode} +% Switch automatically to the horizontal mode before setting a page head or +% page footer element +% \begin{macrocode} +%<*options> +\KOMA@ifkey{hmode}{sls@leavevmode} +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@hmode}% +\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@hmode@default}% +\scrlayer@AddCsToInterface{sls@leavevmode@linetrue} +\scrlayer@AddCsToInterface{sls@leavevmode@linefalse} +% +% \end{macrocode} +% \end{option} +% \end{macro}^^A \sls@secure@box +% \end{macro}^^A \sls@@@deffoot +% \end{macro}^^A \sls@@deffoot +% \end{macro}^^A \sls@deffoot +% \end{macro}^^A \sls@@@defhead +% \end{macro}^^A \sls@@defhead +% \end{macro}^^A \sls@defhead +% \begin{macro}{\headfont} +% \begin{macro}{\scr@fnt@pagehead} +% \begin{macro}{\scr@fnt@wrn@pagehead} +% \begin{macro}{\scr@fnt@pageheadfoot} +% The low level page head font command. It is deprecated to redefine or use +% this and it may already be defined. +% \begin{macrocode} +%<*body> +\@ifundefined{scr@fnt@pagehead}{% + \@ifundefined{@pageheadfont}{% + \newkomafont{pagehead}{}% + \scrlayer@AddCsToInterface{@pageheadfont}% + }{% + \newcommand*{\scr@fnt@pagehead}{\@pageheadfont}% + }% + \scrlayer@AddCsToInterface{scr@fnt@pagehead}% +}{} +\@ifundefined{scr@fnt@pageheadfoot}{% + \newcommand*{\scr@fnt@pageheadfoot}{\headfont}% + \scrlayer@AddCsToInterface{scr@fnt@pageheadfoot}% + \@ifundefined{headfont}{% + \newcommand*{\headfont}{\normalcolor\slshape}% + }{} +}{} +% \end{macrocode} +% \end{macro}^^A \scr@fnt@pageheadfoot +% \end{macro}^^A \scr@fnt@wrn@pagehead +% \end{macro}^^A \scr@fnt@pagehead +% \end{macro}^^A \headfont +% +% \begin{macro}{\footfont} +% \begin{macro}{\scr@fnt@pagefoot} +% \begin{macro}{\scr@fnt@wrn@pagefoot} +% The low level page footer font command. It is deprecated to redefine or use +% this and it may already be defined. +% \begin{macrocode} +\@ifundefined{scr@fnt@pagefoot}{% + \newcommand*{\scr@fnt@pagefoot}{\footfont}% + \scrlayer@AddCsToInterface{scr@fnt@pagefoot}% + \@ifundefined{footfont}{% + \newcommand*{\footfont}{}% + \scrlayer@AddCsToInterface{footfont}% + }{}% + \let\scr@fnt@wrn@pagefoot\relax +}{} +% \end{macrocode} +% \end{macro}^^A \scr@fnt@wrn@pagefoot +% \end{macro}^^A \scr@fnt@pagefoot +% \end{macro}^^A \footfont +% +% \begin{macro}{\sls@hf@rule} +% \begin{description} +% \item[\Parameter{rule name}:] one of \texttt{headtop}, \texttt{headsep}, +% \texttt{footsep}, or \texttt{footbot} +% \item[\Parameter{dimensional expression}:] the line length (width) +% \item[\Parameter{dimensional expression}:] the line thickness (height) +% \end{description} +% Helper to draw the line. +% \begin{macrocode} +\scrlayerAddToInterface\sls@hf@rule{% + \newcommand*\sls@hf@rule[3]{% + \begingroup + \normalfont\usekomafont{#1line}{% + \vbox to \z@{% + \kern -\dimexpr #3\relax + \ifnum \sls@hfline@adjust>\z@ \@tempswatrue \else \@tempswafalse\fi + \if@twoside\ifodd\value{page}\else + \ifnum \sls@hfline@adjust<\tw@ \@tempswatrue\else \@tempswafalse\fi + \fi\fi + \if@tempswa + \hskip \z@\@plus 1fill\@minus \paperwidth + \fi + \vrule \@width\dimexpr #2\relax \@height\dimexpr #3\relax \@depth\z@ + \ifnum \sls@hfline@adjust<\tw@ \@tempswatrue\else \@tempswafalse\fi + \if@twoside\ifodd\value{page}\else + \ifnum \sls@hfline@adjust>\z@ \@tempswatrue \else \@tempswafalse\fi + \fi\fi + \if@tempswa + \hskip \z@\@plus 1fill\@minus \paperwidth\null + \fi + }% + }% + \endgroup + }% +} +% \end{macrocode} +% \end{macro}^^A \sls@hf@rule +% \begin{macro}{\sls@topmargin} +% \begin{macro}{\sls@leftmargin} +% Two simple helper macros: +% \begin{macrocode} +\scrlayerAddToInterface\sls@topmargin{% + \newcommand*{\sls@topmargin}{\dimexpr\topmargin+1in\relax}% +} +\scrlayerAddToInterface\sls@leftmargin{% + \newcommand*{\sls@leftmargin}[1]{% + \dimexpr + \if@twoside + \ifodd\value{page} + \oddsidemargin+\csname sls@odd#1shift\endcsname + \else + \evensidemargin+\csname sls@even#1shift\endcsname + \fi + \else + \oddsidemargin+\csname sls@odd#1shift\endcsname + \fi + +1in\relax + }% +} +% +% \end{macrocode} +% \end{macro}^^A \sls@leftmargin +% \end{macro}^^A \sls@topmargin +% \end{macro}^^A \defpagestyle +% +% \begin{macro}{\newpagestyle} +% For the parameters see \Macro{defpagestyle}. +% Define only, if not already defined: +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\newpagestyle{% + \newcommand*\newpagestyle[3]{% + \@ifundefined{ps@#1}{\defpagestyle{#1}{#2}{#3}}{% + \PackageError{scrlayer-scrpage}{Page style `#1' already defined}{% + Only not yet defined page style may be defined using + \string\newpagestyle.\MessageBreak + You may use either \string\renewpagestyle, \string\providepagestyle, + or \string\defpagestyle\MessageBreak + with already defined page styles.\MessageBreak + If you'll continue, your command will be ignored.% + }% + }% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \newpagestyle +% +% \begin{macro}{\renewpagestyle} +% For the parameters see \Macro{defpagestyle}. +% Define only, if not already defined: +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\renewpagestyle{% + \newcommand*\renewpagestyle[3]{% + \@ifundefined{ps@#1}{% + \PackageError{scrlayer-scrpage}{Undefined page style `#1'}{% + Only already defined page style may be re-defined using + \string\renewpagestyle.\MessageBreak + You may use either \string\newpagestyle, \string\providepagestyle, + or \string\defpagestyle\MessageBreak + with not yet defined page styles.\MessageBreak + If you'll continue, your command will be ignored.% + }% + }{% + \defpagestyle{#1}{#2}{#3}% + }% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \renewpagestyle +% +% \begin{macro}{\providepagestyle} +% For the parameters see \Macro{defpagestyle}. +% Define only, if not already defined: +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\providepagestyle{% + \newcommand*\providepagestyle[3]{% + \@ifundefined{ps@#1}{% + \defpagestyle{#1}{#2}{#3}% + }{% +%<*trace> + \PackageInfo{scrlayer-scrpage}{% + page style `#1' already defined.\MessageBreak + New definition ignored% + }% +% + }% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \providepagestyle +% +% +% \section{User Page Style Definition Interface} +% +% This is the mid-level interface of \Package{scrpage2} with +% \Macro{deftripstyle}. As in \Package{scrpage2} we simply use the expert page +% style definition interface to define the new user interface commands. But +% here the useless starred versions will not longer be supported. So users of +% them have to remove the star (nothing else). +% +% \begin{macro}{\deftriplepagestyle} +% \begin{macro}{\newtriplepagestyle} +% \begin{macro}{\renewtriplepagestyle} +% \begin{macro}{\providetriplepagestyle} +% \begin{macro}{\deftripstyle} +% \begin{description} +% \item[\Parameter{string}:] the name of the page style to be defined (must +% be fully expandable and expand to a string only). +% \item[\OParameter{dimensional expression}:] thickness of a horizontal line +% above the page head and below the page foot (default: 0\,pt). +% \item[\OParameter{dimensional expression}:] thickness of a horizontal line +% below the page head and above the page foot (default: 0\,pt). +% \item[\Parameter{code}:] will be expanded left aligned at head of odd +% pages (with one-side layout all pages are odd) and right aligned at head +% of even pages. +% \item[\Parameter{code}:] will be expanded centered at head of odd +% and even pages. +% \item[\Parameter{code}:] will be expanded right aligned at head of odd +% pages (with one-side layout all pages are odd) and left aligned at head +% of even pages. +% \item[\Parameter{code}:] will be expanded left aligned at footer of odd +% pages (with one-side layout all pages are odd) and right aligned at +% footer of even pages. +% \item[\Parameter{code}:] will be expanded centered at footer of odd +% and even pages. +% \item[\Parameter{code}:] will be expanded right aligned at footer of odd +% pages (with one-side layout all pages are odd) and left aligned at +% footer of even pages. +% \end{description} +% See \Package{scrpage2}, but: +% While the starred version of \Macro{deftripstyle} is deprecated for several +% years and hasn't been described at the manual, it will not longer be +% defined. Additional commands have been added. +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface{\deftriplepagestyle}{% + \newcommand*{\deftriplepagestyle}[1]{% + \let\@tempa\defpagestyle + \scrlayer@triplestyle{#1}% + }% +} +\scrlayerAddToInterface{\newtriplepagestyle}{% + \newcommand*{\newtriplepagestyle}[1]{% + \let\@tempa\newpagestyle + \scrlayer@triplestyle{#1}% + }% +} +\scrlayerAddToInterface{\renewtriplepagestyle}{% + \newcommand*{\renewtriplepagestyle}[1]{% + \let\@tempa\renewpagestyle + \scrlayer@triplestyle{#1}% + }% +} +\scrlayerAddToInterface{\providetriplepagestyle}{% + \newcommand*{\providetriplepagestyle}[1]{% + \let\@tempa\providepagestyle + \scrlayer@triplestyle{#1}% + }% +} +% \end{macrocode} +% \begin{macro}{\scrlayer@triplestyle} +% \begin{macro}{\scrlayer@@triplestyle} +% \begin{macro}{\scrlayer@@@triplestyle} +% Helpers, that do the real work. Parameters are same, but \cs{reserved@a} has +% to be one of \Macro{defpagestyle}, \Macro{newpagestyle}, +% \Macro{renewpagestyle}, or \Macro{providepagestyle}. +% \begin{macrocode} +\scrlayerAddToInterface\scrlayer@triplestyle{% + \def\scrlayer@triplestyle#1{% + \@ifnextchar[%] + {\scrlayer@@triplestyle{#1}}% + {\scrlayer@@triplestyle{#1}[\z@]}% + } +} +\scrlayerAddToInterface\scrlayer@@triplestyle{% + \def\scrlayer@@triplestyle#1[#2]{% + \@ifnextchar[%] + {\scrlayer@@@triplestyle{#1}[#2]}% + {\scrlayer@@@triplestyle{#1}[\z@][#2]}% + }% +} +\scrlayerAddToInterface\scrlayer@@@triplestyle{% + \def\scrlayer@@@triplestyle#1[#2][#3]#4#5#6#7#8#9{% + \@tempa{#1}{% + (\sls@headwidth,#2)% + {% + \makebox[\z@][l]{#6}\hfill + \makebox[\z@][c]{#5}\hfill + \makebox[\z@][r]{#4}% + }{% + \makebox[\z@][l]{#4}\hfill + \makebox[\z@][c]{#5}\hfill + \makebox[\z@][r]{#6}% + }{% + \makebox[\z@][l]{#4}\hfill + \makebox[\z@][c]{#5}\hfill + \makebox[\z@][r]{#6}% + }% + (\sls@headwidth,#3)% + }{% + (\sls@footwidth,#3)% + {% + \makebox[\z@][l]{#9}\hfill + \makebox[\z@][c]{#8}\hfill + \makebox[\z@][r]{#7}% + }{% + \makebox[\z@][l]{#7}\hfill + \makebox[\z@][c]{#8}\hfill + \makebox[\z@][r]{#9}% + }{% + \makebox[\z@][l]{#7}\hfill + \makebox[\z@][c]{#8}\hfill + \makebox[\z@][r]{#9}% + }% + (\sls@footwidth,#2)% + }% + }% +} +% \end{macrocode} +% \end{macro}^^A \scrlayer@@@triplestyle +% \end{macro}^^A \scrlayer@@triplestyle +% \end{macro}^^A \scrlayer@triplestyle +% \begin{macrocode} +\scrlayerAddToInterface{\deftripstyle}{% + \newcommand*{\deftripstyle}{% + \PackageWarning{scrlayer-scrpage}{% + Command \string\deftripstyle\space is deprecate.\MessageBreak + You should replace it by \string\deftriplepagestyle,\MessageBreak + e.g.,% + }% + \let\deftripstyle\deftriplepagestyle + \deftripstyle + }% +} +% +% \end{macrocode} +% \end{macro}^^A \deftripstyle +% \end{macro}^^A \providetriplepagestyle +% \end{macro}^^A \renewtriplepagestyle +% \end{macro}^^A \newtriplepagestyle +% \end{macro}^^A \deftriplepagestyle +% +% +% \section{Pre-defined Page Styles Interface} +% +% This is the high-level interface of \Package{scrpage2} with the page style +% \Pagestyle{scrheadings}, \Pagestyle{scrplain}, and +% \Pagestyle{useheadings}. Those will work as expected but will also be +% extended to support definition of additional styles using the same +% interface. +% +% \begin{macro}{\defpairofpagestyles} +% \begin{description} +% \item[\OParameter{string}:] name of a parent page style, that will be used +% to initialise the new page style (must be fully expandable and expand to +% the name of a page style). +% \item[\Parameter{string}:] name the page style to be defined (must be +% fully expandable and expand to the name of a page style). +% \item[\Parameter{code}:] several commands of \Macro{ihead}, \Macro{chead}, +% \Macro{ohead}, \Macro{lehead}, \Macro{lohead}, \Macro{cohead}, +% \Macro{rehead}, \Macro{cehead}, \Macro{rohead}, \Macro{ifoot}, +% \Macro{cfoot}, \Macro{ofoot}, \Macro{lefoot}, \Macro{cefoot}, +% \Macro{lofoot}, \Macro{refoot}, \Macro{cofoot}, \Macro{rofoot}, +% \Macro{clearscrheadfoot}, \Macro{clearscrheadings}, +% \Macro{clearscrplain}. +% \end{description} +% Two page styles will be defined using \Macro{defpagestyle}, page style named +% with the second argument and page style with the same name but an additional +% prefix ``\texttt{plain.}''. This will be activated automatically to be the +% plain page style when the first page style will be used. If first argument +% is used this pair of page styles will be used to initialise the head and +% footer of the new. All the other commands are used to define the initial +% fields. Note, if one of those page styles is active, all further commands +% (see 3rd argument) depend on the active page style. If no one is active, +% they depend on page style \texttt{scrheadings}. +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\defpairofpagestyles{% + \newcommand*{\defpairofpagestyles}[3][]{% + \def\reserved@a##1##2##3##4##5##6##7\@nil{##1##2##3##4##5##6}% + \edef\reserved@a{\expandafter\reserved@a #2xxxxxx\@nil}% + \ifstr\reserved@a{plain.}{% + \PackageError{scrlayer-scrpage}{plain page style `#2' not allowed}{% + You may not define a plain page style using + \string\defpairofpagestyles, \string\newpairofpagestyles, + \string\renewpairofpagestyles, or\MessageBreak + \string\providepairofpagestyles. I'd suggest to simply define the + corresponding\MessageBreak + non-plain page style to also define the plain one.\MessageBreak + If you'll continue, your command will be ignored.}% + }{% + \sls@init@pair@page@style*{#2}% + \sls@init@pair@page@style*{plain.#2}% + \ifx\relax #1\relax\else + \scr@ifundefinedorrelax{sls@ps@#1@even@left@head}{% + \PackageError{scrlayer-scrpage}{`#1' not a pair page style}{% + Only pair page styles may be used to initialise new pairs of page + styles. So\MessageBreak + optional argument of \string\defpairofpagestyles, + \string\newpairofpagestyles,\MessageBreak + \string\renewpairofpagestyles, or \string\providepairofpagestyle has + to be a pair\MessageBreak + page style or should be unused.\MessageBreak + If you'll continue, the initialisation will be ignored.}% + }{% + \sls@init@pair@page@style{#2}{#1}% + \scr@ifundefinedorrelax{sls@ps@plain.#1@even@left@head}{% + \sls@init@pair@page@style{plain.#2}{#1}% + }{% + \sls@init@pair@page@style{plain.#2}{plain.#1}% + }% + }% + \fi + \edef\reserved@a{% + \noexpand\scrlayerOnAutoRemoveInterface[scrlayer-scrpage.sty]{% + \noexpand\sls@init@pair@page@style**{#2}% + \noexpand\sls@init@pair@page@style**{plain.#2}% + \noexpand\expandafter\noexpand\ifx\noexpand + \csname ps@plain.#2\noexpand\endcsname\noexpand\ps@plain + \noexpand\PackageWarning{scrlayer-scrpage}{% + page style `#2' not longer valid.\noexpand\MessageBreak + This was the current plain page style.\noexpand\MessageBreak + Making current plain page style empty.\noexpand\MessageBreak + The page style has been defined using\noexpand\MessageBreak + interface `scrlayer-scrpage.sty', that\noexpand\MessageBreak + has been removed% + }% + \noexpand\def\noexpand\ps@plain{% + \noexpand\def\noexpand\@oddhead{}\noexpand\def\noexpand\@evenhead{}% + \noexpand\def\noexpand\@oddhead{}\noexpand\def\noexpand\@evenhead{}% + }% + \noexpand\fi + }% + }\reserved@a + \sls@def@pair@page@style@member{#2}% + \AddToLayerPageStyleOptions{#2}{% + onselect={% + \expandafter\let\expandafter\ps@plain\csname ps@plain.#2\endcsname + \expandafter\let\expandafter\ps@headings\csname ps@#2\endcsname + \def\sls@currentheadings{#2}% + \def\sls@currentplain{plain.#2}% + #3% + }% + }% + \sls@def@pair@page@style@member{plain.#2}% + \AddToLayerPageStyleOptions{plain.#2}{% + onselect={% + \expandafter\let\expandafter\ps@plain\csname ps@plain.#2\endcsname + \expandafter\let\expandafter\ps@headings\csname ps@#2\endcsname + \def\sls@currentheadings{#2}% + \def\sls@currentplain{plain.#2}% + #3% + },% + oninit={% + \expandafter + \ifx\csname ifsls@plain@head@above@line\expandafter\endcsname + \csname iftrue\endcsname\else + \let\sls@headabove@linelength\z@ + \let\sls@headabove@linethickness\z@ + \fi + \expandafter + \ifx\csname ifsls@plain@head@below@line\expandafter\endcsname + \csname iftrue\endcsname\else + \let\sls@headbelow@linelength\z@ + \let\sls@headbelow@linethickness\z@ + \fi + \expandafter + \ifx\csname ifsls@plain@foot@above@line\expandafter\endcsname + \csname iftrue\endcsname\else + \let\sls@footabove@linelength\z@ + \let\sls@footabove@linethickness\z@ + \fi + \expandafter + \ifx\csname ifsls@plain@foot@below@line\expandafter\endcsname + \csname iftrue\endcsname\else + \let\sls@footbelow@linelength\z@ + \let\sls@footbelow@linethickness\z@ + \fi + }% + }% + }% + }% +} +% \end{macrocode} +% \begin{macro}{\sls@currentheadings} +% \begin{macro}{\sls@currentplain} +% These little helpers will be set up at selection of each pair page style and +% stores the last activated page style pair of the scope. +% \begin{macrocode} +\scrlayerAddToInterface\sls@currentheadings{% + \newcommand*\sls@currentheadings{scrheadings}% +} +\scrlayerAddToInterface\sls@currentplain{% + \newcommand*\sls@currentplain{plain.scrheadings}% +} +% \end{macrocode} +% \end{macro}^^A \sls@currentplain +% \end{macro}^^A \sls@currentheadings +% \begin{macro}{\sls@init@pair@page@style} +% \begin{macro}{\sls@init@@pair@page@style} +% \begin{description} +% \item[\Parameter{string}:] the name of the page style, that should be +% initialised to be one member of a page style pair. +% \item[\Parameter{string}:] the name of a member of a page style pair, that +% should be used to initialise one the member of a page style pair from +% first argument. +% \end{description} +% These are two little helpers for \Macro{defpairofpagestyles}. +% The first command has two starred versions. With one star the commands for +% the page style will be initialised to \Macro{@empty}, with two stars they +% will become \LaTeX-undefined (\Macro{relax}). +% +% Note also, that the second argument may either be the plain or the non-plain +% member of the page style pair. +% \begin{macrocode} +\scrlayerAddToInterface\sls@init@pair@page@style{% + \newcommand*{\sls@init@pair@page@style}{% + \@ifstar {% + \@ifstar {% + \sls@let@pair@page@style\relax + }{% + \sls@let@pair@page@style\@empty + } + }{% + \sls@init@@pair@page@style + }% + }% +} +\scrlayerAddToInterface\sls@init@@pair@page@style{% + \newcommand*{\sls@init@@pair@page@style}[2]{% + \expandafter\let\csname sls@ps@#1@even@left@head\expandafter\endcsname + \csname sls@ps@#2@even@left@head\endcsname + \expandafter\let\csname sls@ps@#1@even@middle@head\expandafter\endcsname + \csname sls@ps@#2@even@middle@head\endcsname + \expandafter\let\csname sls@ps@#1@even@right@head\expandafter\endcsname + \csname sls@ps@#2@even@right@head\endcsname + \expandafter\let\csname sls@ps@#1@odd@left@head\expandafter\endcsname + \csname sls@ps@#2@odd@left@head\endcsname + \expandafter\let\csname sls@ps@#1@odd@middle@head\expandafter\endcsname + \csname sls@ps@#2@odd@middle@head\endcsname + \expandafter\let\csname sls@ps@#1@odd@right@head\expandafter\endcsname + \csname sls@ps@#2@odd@right@head\endcsname + \expandafter\let\csname sls@ps@#1@even@left@foot\expandafter\endcsname + \csname sls@ps@#2@even@left@foot\endcsname + \expandafter\let\csname sls@ps@#1@even@middle@foot\expandafter\endcsname + \csname sls@ps@#2@even@middle@foot\endcsname + \expandafter\let\csname sls@ps@#1@even@right@foot\expandafter\endcsname + \csname sls@ps@#2@even@right@foot\endcsname + \expandafter\let\csname sls@ps@#1@odd@left@foot\expandafter\endcsname + \csname sls@ps@#2@odd@left@foot\endcsname + \expandafter\let\csname sls@ps@#1@odd@middle@foot\expandafter\endcsname + \csname sls@ps@#2@odd@middle@foot\endcsname + \expandafter\let\csname sls@ps@#1@odd@right@foot\expandafter\endcsname + \csname sls@ps@#2@odd@right@foot\endcsname + }% +} +% \end{macrocode} +% \end{macro}^^A \sls@init@@pair@page@style +% \begin{macro}{\sls@let@pair@page@style} +% \begin{description} +% \item[\Parameter{command}:] a single command used to initialise the +% commands of the page style commands. +% \item[\Parameter{string}:] the name of a member of a page style pair, that +% should be used to initialise one the member of a page style pair from +% first argument. +% \end{description} +% A little helper for \Macro{sls@init@pair@page@style}. +% \begin{macrocode} +\scrlayerAddToInterface\sls@let@pair@page@style{% + \newcommand*{\sls@let@pair@page@style}[2]{% + \expandafter\let\csname sls@ps@#2@even@left@head\endcsname #1% + \expandafter\let\csname sls@ps@#2@even@middle@head\endcsname #1% + \expandafter\let\csname sls@ps@#2@even@right@head\endcsname #1% + \expandafter\let\csname sls@ps@#2@odd@left@head\endcsname #1% + \expandafter\let\csname sls@ps@#2@odd@middle@head\endcsname #1% + \expandafter\let\csname sls@ps@#2@odd@right@head\endcsname #1% + \expandafter\let\csname sls@ps@#2@even@left@foot\endcsname #1% + \expandafter\let\csname sls@ps@#2@even@middle@foot\endcsname #1% + \expandafter\let\csname sls@ps@#2@even@right@foot\endcsname #1% + \expandafter\let\csname sls@ps@#2@odd@left@foot\endcsname #1% + \expandafter\let\csname sls@ps@#2@odd@middle@foot\endcsname #1% + \expandafter\let\csname sls@ps@#2@odd@right@foot\endcsname #1% + }% +} +% \end{macrocode} +% \end{macro}^^A \sls@let@pair@page@style +% \end{macro}^^A \sls@init@pair@page@style +% \begin{macro}{\sls@def@pair@page@style@member} +% \begin{description} +% \item[\Parameter{string}:] name of the page style to be defined. +% \end{description} +% A little helper for \Macro{defpairofpagestyles}. +% \begin{macrocode} +\scrlayerAddToInterface\sls@def@pair@page@style@member{% + \newcommand*{\sls@def@pair@page@style@member}[1]{% + \defpagestyle{#1}{% + {% + \makebox[0pt][l]{\parbox{\sls@headwidth}{\raggedright + \strut\@nameuse{sls@ps@#1@even@left@head}\strut}}% + \parbox{\sls@headwidth}{\centering + \strut\@nameuse{sls@ps@#1@even@middle@head}\strut}% + \makebox[0pt][r]{\parbox{\sls@headwidth}{\raggedleft + \strut\@nameuse{sls@ps@#1@even@right@head}\strut}}% + }{% + \makebox[0pt][l]{\parbox{\sls@headwidth}{\raggedright + \strut\@nameuse{sls@ps@#1@odd@left@head}\strut}}% + \parbox{\sls@headwidth}{\centering + \strut\@nameuse{sls@ps@#1@odd@middle@head}\strut}% + \makebox[0pt][r]{\parbox{\sls@headwidth}{\raggedleft + \strut\@nameuse{sls@ps@#1@odd@right@head}\strut}}% + }{% + \makebox[0pt][l]{\parbox{\sls@headwidth}{\raggedright + \strut\@nameuse{sls@ps@#1@odd@left@head}\strut}}% + \parbox{\sls@headwidth}{\centering + \strut\@nameuse{sls@ps@#1@odd@middle@head}\strut}% + \makebox[0pt][r]{\parbox{\sls@headwidth}{\raggedleft + \strut\@nameuse{sls@ps@#1@odd@right@head}\strut}}% + }% + }{% + {% + \makebox[0pt][l]{\parbox{\sls@footwidth}{\raggedright + \strut\@nameuse{sls@ps@#1@even@left@foot}\strut}}% + \parbox{\sls@footwidth}{\centering + \strut\@nameuse{sls@ps@#1@even@middle@foot}\strut}% + \makebox[0pt][r]{\parbox{\sls@footwidth}{\raggedleft + \strut\@nameuse{sls@ps@#1@even@right@foot}\strut}}% + }{% + \makebox[0pt][l]{\parbox{\sls@footwidth}{\raggedright + \strut\@nameuse{sls@ps@#1@odd@left@foot}\strut}}% + \parbox{\sls@footwidth}{\centering + \strut\@nameuse{sls@ps@#1@odd@middle@foot}\strut}% + \makebox[0pt][r]{\parbox{\sls@footwidth}{\raggedleft + \strut\@nameuse{sls@ps@#1@odd@right@foot}\strut}}% + }{% + \makebox[0pt][l]{\parbox{\sls@footwidth}{\raggedright + \strut\@nameuse{sls@ps@#1@odd@left@foot}\strut}}% + \parbox{\sls@footwidth}{\centering + \strut\@nameuse{sls@ps@#1@odd@middle@foot}\strut}% + \makebox[0pt][r]{\parbox{\sls@footwidth}{\raggedleft + \strut\@nameuse{sls@ps@#1@odd@right@foot}\strut}}% + }% + }% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \sls@def@pair@page@style@member +% \end{macro}^^A \defpairofpagestyles +% +% \begin{macro}{\newpairofpagestyles} +% \begin{macro}{\renewpairofpagestyles} +% \begin{macro}{\providepairofpagestyles} +% See \Macro{defpairofpagestyles} for the arguments. +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\newpairofpagestyles{% + \newcommand*{\newpairofpagestyles}[3][]{% + \scr@ifundefinedorrelax{ps@#2}{% + \@ifundefined{ps@plain.#2}{\defpairofpagestyles[#1]{#2}{#3}}{% + \PackageError{scrlayer-scrpage}{% + Plain page style of `#2' already defined}{% + You may only define a new pair of page styles, if neither the style + itself\MessageBreak + nor it's plain page style has already been defined.\MessageBreak + You may use only \string\defpairofpagestyles\space or + \string\providepairofpagestyles\space with partly\MessageBreak + already defined page styles.\MessageBreak + If you'll continue, your command will be ignored.% + }% + }% + }{% + \PackageError{scrlayer-scrpage}{% + Page style `#2' already defined}{% + You may only define a new pair of page styles, if neither the style + itself\MessageBreak + nor it's plain page style has already been defined.\MessageBreak + You may use either \string\renewpairsofpagestyles, + \string\defpairofpagestyles, or\MessageBreak + \string\providepairofpagestyles\space with already defined page + styles.\MessageBreak + If you'll continue, your command will be ignored.% + }% + }% + }% +} +\scrlayerAddToInterface\renewpairofpagestyles{% + \newcommand*{\renewpairofpagestyles}[3][]{% + \scr@ifundefinedorrelax{ps@#2}{% + \PackageError{scrlayer-scrpage}{% + Undefined page style `#2'}{% + You may only redefine existing pairs of page styles. You may use + either\MessageBreak + \string\newpairsofpagestyles, \string\defpairofpagestyles, or + \string\providepairofpagestyles\MessageBreak + with not yet defined page styles.\MessageBreak + If you'll continue, your command will be ignored.% + }% + }{% + \@ifundefined{ps@plain.#2}{% + \PackageError{scrlayer-scrpage}{% + Undefined plain page style of `#2'}{% + You may only redefine existing pairs of page styles. You may use + either\MessageBreak + \string\defpairofpagestyles\space or + \string\providepairofpagestyles\space with partly already + defined\MessageBreak + page styles.\MessageBreak + If you'll continue, your command will be ignored.% + }% + }{\defpairofpagestyles[#1]{#2}{#3}}% + }% + }% +} +\scrlayerAddToInterface\providepairofpagestyles{% + \newcommand*{\providepairofpagestyles}[3][]{% + \scr@ifundefinedorrelax{ps@#2}{% + \@ifundefined{ps@plain.#2}{\defpairofpagestyles[#1]{#2}{#3}}{% +%<*trace> + \PackageInfo{scrlayer-scrpage}{% + Plain page style of `#2' already\MessageBreak + defined. Definition ignored}% +% + }% + }{% +%<*trace> + \PackageInfo{scrlayer-scrpage}{% + Page style of `#2' already defined.\MessageBreak + Definition ignored}% +% + }% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \providepairofpagestyles +% \end{macro}^^A \renewpairofpagestyles +% \end{macro}^^A \newpairofpagestyles +% +% \begin{macro}{\ps@scrheadings} +% \begin{macro}{\ps@plain.scrheadings} +% We have one predefined pair: \texttt{scrheadings} with plain page style +% \texttt{plain.scrheadings}. +% \begin{macrocode} +%<*body> +\newpairofpagestyles{scrheadings}{}% +% \end{macrocode} +% \begin{macro}{\ps@scrplain} +% But with package \Package{scrpage2} the plain page style was +% \texttt{scrplain}. So we make a kind of alias: +% \begin{macrocode} +\DeclarePageStyleAlias{scrplain}{plain.scrheadings} +\scrlayerOnAutoRemoveInterface{\DestroyPageStyleAlias{scrplain}} +% +% \end{macrocode} +% \end{macro}^^A \ps@scrplain +% \end{macro}^^A \ps@plain.scrheadings +% \end{macro}^^A \ps@scrheadings +% +% +% \begin{macro}{\ihead} +% \begin{macro}{\ohead} +% \begin{macro}{\chead} +% \begin{macro}{\lehead} +% \begin{macro}{\lohead} +% \begin{macro}{\rehead} +% \begin{macro}{\rohead} +% \begin{macro}{\cehead} +% \begin{macro}{\cohead} +% \begin{macro}{\ifoot} +% \begin{macro}{\ofoot} +% \begin{macro}{\cfoot} +% \begin{macro}{\lefoot} +% \begin{macro}{\lofoot} +% \begin{macro}{\refoot} +% \begin{macro}{\rofoot} +% \begin{macro}{\cefoot} +% \begin{macro}{\cofoot} +% 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 +% headings page style member and optional of the plain page style +% member. +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\ihead{% + \newcommand*{\ihead}{\@ifnextchar[{\@@ihead}{\@ihead}}% +} +% \end{macrocode} +% \begin{macro}{\@ihead} +% \begin{macro}{\@@ihead} +% Two helpers for the previous one to double the command and it's arguments. +% \begin{macrocode} +\scrlayerAddToInterface\@ihead{% + \newcommand*{\@ihead}[1]{\rehead{#1}\lohead{#1}}% +} +\scrlayerAddToInterface\@@ihead{% + \newcommand*{\@@ihead}[2][]{\rehead[{#1}]{#2}\lohead[{#1}]{#2}}% +} +% \end{macrocode} +% \end{macro}^^A \@@ihead +% \end{macro}^^A \@ihead +% \begin{macrocode} +\scrlayerAddToInterface\ohead{% + \newcommand*{\ohead}{\@ifnextchar[{\@@ohead}{\@ohead}}% +} +% \end{macrocode} +% \begin{macro}{\@ohead} +% \begin{macro}{\@@ohead} +% Two helpers for the previous one to double the command and it's arguments. +% \begin{macrocode} +\scrlayerAddToInterface\@ohead{% + \newcommand*{\@ohead}[1]{\lehead{#1}\rohead{#1}}% +} +\scrlayerAddToInterface\@@ohead{% + \newcommand*{\@@ohead}[2][]{\lehead[{#1}]{#2}\rohead[{#1}]{#2}}% +} +% \end{macrocode} +% \end{macro}^^A \@@ohead +% \end{macro}^^A \@ohead +% \begin{macrocode} +\scrlayerAddToInterface\chead{% + \newcommand*{\chead}{\@ifnextchar[{\@@chead}{\@chead}}% +} +% \end{macrocode} +% \begin{macro}{\@chead} +% \begin{macro}{\@@chead} +% Two helpers for the previous one to double the command and it's arguments. +% \begin{macrocode} +\scrlayerAddToInterface\@chead{% + \newcommand*{\@chead}[1]{\cehead{#1}\cohead{#1}}% +} +\scrlayerAddToInterface\@@chead{% + \newcommand*{\@@chead}[2][]{\cehead[{#1}]{#2}\cohead[{#1}]{#2}}% +} +% \end{macrocode} +% \end{macro}^^A \@@chead +% \end{macro}^^A \@chead +% \begin{macrocode} +\scrlayerAddToInterface\lehead{% + \newcommand*{\lehead}{\sls@renewelement{even}{left}{head}}% +} +\scrlayerAddToInterface\lohead{% + \newcommand*{\lohead}{\sls@renewelement{odd}{left}{head}}% +} +\scrlayerAddToInterface\rehead{% + \newcommand*{\rehead}{\sls@renewelement{even}{right}{head}}% +} +\scrlayerAddToInterface\rohead{% + \newcommand*{\rohead}{\sls@renewelement{odd}{right}{head}}% +} +\scrlayerAddToInterface\cehead{% + \newcommand*{\cehead}{\sls@renewelement{even}{middle}{head}}% +} +\scrlayerAddToInterface\cohead{% + \newcommand*{\cohead}{\sls@renewelement{odd}{middle}{head}}% +} +\scrlayerAddToInterface\ifoot{% + \newcommand*{\ifoot}{\@ifnextchar[{\@@ifoot}{\@ifoot}}% +} +% \end{macrocode} +% \begin{macro}{\@ifoot} +% \begin{macro}{\@@ifoot} +% Two helpers for the previous one to double the command and it's arguments. +% \begin{macrocode} +\scrlayerAddToInterface\@ifoot{% + \newcommand*{\@ifoot}[1]{\refoot{#1}\lofoot{#1}}% +} +\scrlayerAddToInterface\@@ifoot{% + \newcommand*{\@@ifoot}[2][]{\refoot[{#1}]{#2}\lofoot[{#1}]{#2}}% +} +% \end{macrocode} +% \end{macro}^^A \@@ifoot +% \end{macro}^^A \@ifoot +% \begin{macrocode} +\scrlayerAddToInterface\ofoot{% + \newcommand*{\ofoot}{\@ifnextchar[{\@@ofoot}{\@ofoot}}% +} +% \end{macrocode} +% \begin{macro}{\@ofoot} +% \begin{macro}{\@@ofoot} +% Two helpers for the previous one to double the command and it's arguments. +% \begin{macrocode} +\scrlayerAddToInterface\@ofoot{% + \newcommand*{\@ofoot}[1]{\lefoot{#1}\rofoot{#1}}% +} +\scrlayerAddToInterface\@@ofoot{% + \newcommand*{\@@ofoot}[2][]{\lefoot[{#1}]{#2}\rofoot[{#1}]{#2}}% +} +% \end{macrocode} +% \end{macro}^^A \@@ofoot +% \end{macro}^^A \@ofoot +% \begin{macrocode} +\scrlayerAddToInterface\cfoot{% + \newcommand*{\cfoot}{\@ifnextchar[{\@@cfoot}{\@cfoot}}% +} +% \end{macrocode} +% \begin{macro}{\@cfoot} +% \begin{macro}{\@@cfoot} +% Two helpers for the previous one to double the command and it's arguments. +% \begin{macrocode} +\scrlayerAddToInterface\@cfoot{% + \newcommand*{\@cfoot}[1]{\cefoot{#1}\cofoot{#1}}% +} +\scrlayerAddToInterface\@@cfoot{% + \newcommand*{\@@cfoot}[2][]{\cefoot[{#1}]{#2}\cofoot[{#1}]{#2}}% +} +% \end{macrocode} +% \end{macro}^^A \@@cfoot +% \end{macro}^^A \@cfoot +% \begin{macrocode} +\scrlayerAddToInterface\lefoot{% + \newcommand*{\lefoot}{\sls@renewelement{even}{left}{foot}}% +} +\scrlayerAddToInterface\lofoot{% + \newcommand*{\lofoot}{\sls@renewelement{odd}{left}{foot}}% +} +\scrlayerAddToInterface\refoot{% + \newcommand*{\refoot}{\sls@renewelement{even}{right}{foot}}% +} +\scrlayerAddToInterface\rofoot{% + \newcommand*{\rofoot}{\sls@renewelement{odd}{right}{foot}}% +} +\scrlayerAddToInterface\cefoot{% + \newcommand*{\cefoot}{\sls@renewelement{even}{middle}{foot}}% +} +\scrlayerAddToInterface\cofoot{% + \newcommand*{\cofoot}{\sls@renewelement{odd}{middle}{foot}}% +} +% \end{macrocode} +% \begin{macro}{\sls@renewelement} +% \begin{macro}{\sls@@renewelement} +% \begin{macro}{\sls@@@renewelement} +% \begin{macro}{\sls@@renewplainelement} +% Little helper for several of the above commands. +% \begin{macrocode} +\scrlayerAddToInterface\sls@renewelement{% + \newcommand*{\sls@renewelement}[3]{% + \@ifnextchar[%] + {\sls@@@renewelement{#1}{#2}{#3}}% + {\sls@@renewelement{#1}{#2}{#3}}% + }% +} +\scrlayerAddToInterface\sls@@renewelement{% + \newcommand*{\sls@@renewelement}[4]{% + \scr@ifundefinedorrelax{sls@ps@\sls@currentheadings @#1@#2@#3}{% + \@namedef{sls@ps@scrheadings@#1@#2@#3}{#4}% + }{% + \@namedef{sls@ps@\sls@currentheadings @#1@#2@#3}{#4}% + }% + }% +} +\scrlayerAddToInterface\sls@@@renewelement{% + \def\sls@@@renewelement#1#2#3[#4]#5{% + \sls@@renewplainelement{#1}{#2}{#3}{#4}% + \sls@@renewelement{#1}{#2}{#3}{#5}% + }% +} +\scrlayerAddToInterface\sls@@renewplainelement{% + \newcommand*{\sls@@renewplainelement}[4]{% + \scr@ifundefinedorrelax{sls@ps@\sls@currentplain @#1@#2@#3}{% + \@namedef{sls@ps@plain.scrheadings@#1@#2@#3}{#4}% + }{% + \@namedef{sls@ps@\sls@currentplain @#1@#2@#3}{#4}% + }% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \sls@@renewplainelement +% \end{macro}^^A \sls@@@renewelement +% \end{macro}^^A \sls@@renewelement +% \end{macro}^^A \sls@renewelement +% \end{macro}^^A \cofoot +% \end{macro}^^A \cefoot +% \end{macro}^^A \rofoot +% \end{macro}^^A \refoot +% \end{macro}^^A \lofoot +% \end{macro}^^A \lefoot +% \end{macro}^^A \cfoot +% \end{macro}^^A \ofoot +% \end{macro}^^A \ifoot +% \end{macro}^^A \cohead +% \end{macro}^^A \cehead +% \end{macro}^^A \rohead +% \end{macro}^^A \rehead +% \end{macro}^^A \lohead +% \end{macro}^^A \lehead +% \end{macro}^^A \chead +% \end{macro}^^A \ohead +% \end{macro}^^A \ihead +% +% \begin{macro}{\clearmainofpairofpagestyles} +% \begin{macro}{\clearscrheadings} +% 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} +%<*body> +\scrlayerAddToInterface\clearmainofpairofpagestyles{% + \newcommand*{\clearmainofpairofpagestyles}{% + \ihead{}\chead{}\ohead{}\ifoot{}\cfoot{}\ofoot{}% + }% +} +\scrlayerAddToInterface\clearscrheadings{% + \let\clearscrheadings\clearmainofpairofpagestyles +} +% +% \end{macrocode} +% \end{macro}^^A \clearscrheadings +% \end{macro}^^A \clearmainofpairofpagestyles +% \begin{macro}{\clearplainofpairofpagestyles} +% \begin{macro}{\clearscrplain} +% Now, we use the not recommended feature to set up a plain style: +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\clearplainofpairofpagestyles{% + \newcommand*{\clearplainofpairofpagestyles}{% + \sls@@renewplainelement{odd}{left}{head}{}% + \sls@@renewplainelement{odd}{right}{head}{}% + \sls@@renewplainelement{odd}{middle}{head}{}% + \sls@@renewplainelement{even}{left}{head}{}% + \sls@@renewplainelement{even}{right}{head}{}% + \sls@@renewplainelement{even}{middle}{head}{}% + \sls@@renewplainelement{odd}{left}{foot}{}% + \sls@@renewplainelement{odd}{right}{foot}{}% + \sls@@renewplainelement{odd}{middle}{foot}{}% + \sls@@renewplainelement{even}{left}{foot}{}% + \sls@@renewplainelement{even}{right}{foot}{}% + \sls@@renewplainelement{even}{middle}{foot}{}% + }% +} +\scrlayerAddToInterface\clearscrplain{% + \let\clearscrplain\clearplainofpairofpagestyles +} +% +% \end{macrocode} +% \end{macro}^^A \clearscrplain +% \end{macro}^^A \clearplainofpairofpagestyles +% \begin{macro}{\clearpairofpagestyles} +% \begin{macro}{\clearscrheadfoot} +% Last but not least we clean up both, the main and the plain: +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\clearpairofpagestyles{% + \newcommand*{\clearpairofpagestyles}{% + \ihead[]{}\chead[]{}\ohead[]{}\ifoot[]{}\cfoot[]{}\ofoot[]{}% + }% +} +\scrlayerAddToInterface\clearscrheadfoot{% + \let\clearscrheadfoot\clearpairofpagestyles +} +% +% \end{macrocode} +% \end{macro}^^A \clearscrheadfoot +% \end{macro}^^A \clearpairofpagestyles +% +% \begin{macro}{\ps@useheadings} +% Not longer supported: +% \begin{macrocode} +%<*body> +\scrlayerAddToInterface\ps@useheadings{% + \newcommand*\ps@useheadings{% + \PackageWarning{scrlayer-scrpage}{incompatible page style!\MessageBreak + Page styles like `headings' and `plain'\MessageBreak + are incompatible with the page styles\MessageBreak + of scrlayer-scrpage. You shouldn't mix\MessageBreak + them up. Therefore page style\MessageBreak + `useheadings' is not longer provided.\MessageBreak + Usage is deprecated and will be replaced\MessageBreak + by `scrheadings'% + }% + \let\ps@useheadings\ps@scrheadings + \ps@useheadings + }% +} +\scrlayerAddCsToInterface{ps@plain.useheadings}{% + \@namedef{ps@plain.useheadings}{\@nameuse{ps@plain.scrheadings}}% +} +% +% \end{macrocode} +% \end{macro}^^A \ps@useheadings +% +% \iffalse^^A meta-comment +% +% \fi^^A meta-comment +% +% \Finale +% \let\subsection\section +% \let\section\chapter +% \let\chapter\restorechapter +% +\endinput +% +% end of file `scrlayer.dtx' + +%%% Local Variables: +%%% mode: doctex +%%% mode: flyspell +%%% ispell-local-dictionary: "en_GB" +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrlayer.dtx b/Master/texmf-dist/source/latex/koma-script/scrlayer.dtx new file mode 100644 index 00000000000..99ff0c5771d --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrlayer.dtx @@ -0,0 +1,4901 @@ +% \CheckSum{3307} +% \iffalse^^A meta-comment +% ====================================================================== +% scrlayer.dtx +% Copyright (c) Markus Kohm, 2012-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrlayer.dtx +% Copyright (c) Markus Kohm, 2012-2013 +% +% Diese Datei ist Teil der LaTeX2e KOMA-Script-Sammlung. +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \fi^^A meta-comment +% +% \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 \~} +% +% \iffalse^^A meta-comment +%%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (identify) +%%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (init) +%%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (options) +%%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (body) +%%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (final) +%<*dtx> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\begingroup + \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#4/#3/#2}} + \filedate$Date: 2013-10-31 11:00:02 +0100 (Do, 31. Okt 2013) $ + \def\filerevision$#1: #2 ${\gdef\filerevision{v0.9.#2}} + \filerevision$Revision: 1480 $ +\endgroup +\ProvidesFile{scrlayer.dtx}[\filedate\space\filerevision\space +% +%<*identify|doc> +%\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%\ProvidesPackage{scrlayer}[% +%\ProvidesFile{scrlayer.tex}[% +% Sometimes following will be replaced by !KOMASCRIPTVERSION: +%!SCRLAYERVERSION +% package +% +%<*dtx|identify|doc> + (defining layers and page styles)] +% +%<*dtx> +\ifx\documentclass\undefined + \input scrdocstrip.tex + \@@input scrkernel-version.dtx + \@@input scrstrip.inc + \KOMAdefVariable{COPYRIGHTFROM}{2012} + \KOMAdefVariable{SCRLAYERVERSION}{\space\space\filedate\space\filerevision}% + \generate{\usepreamble\defaultpreamble + \file{scrlayer.sty}{% + \from{scrlayer.dtx}{package,trace,scrlayer,identify}% + \from{scrlayer.dtx}{package,trace,scrlayer,init}% + \from{scrlayer.dtx}{package,trace,scrlayer,options}% + \from{scrlayer.dtx}{package,trace,scrlayer,body}% + \from{scrlayer.dtx}{package,trace,scrlayer,final}% + \from{scrlogo.dtx}{logo}% + }% + } + + \batchinput{scrlayer-scrpage.dtx} + \batchinput{scrlayer-notecolumn.dtx} + \@@input scrstrop.inc +\else + \let\endbatchfile\relax +\fi +\endbatchfile +% +%<*driver> + \documentclass{scrdoc} + \addtolength{\textwidth}{-1em} + \addtolength{\marginparwidth}{2em} + \addtolength{\oddsidemargin}{2em} + \usepackage[ngerman,english]{babel} + \usepackage{url,babelbib}\bibliographystyle{babalpha-fl} + \usepackage{listings} + \usepackage{scrhack} + \usepackage{etoolbox} + \pretocmd\DescribeMacro{\ifhmode\else\bigskip\noindent\fi}{}{} + \pretocmd\DescribeEnv{\ifhmode\else\bigskip\noindent\fi}{}{} + \pretocmd\DescribeOption{\ifhmode\else\bigskip\noindent\fi}{}{} + + \CodelineIndex + \RecordChanges + \GetFileInfo{scrlayer.dtx} + \title{The \KOMAScript{} package \texttt{scrlayer}% + \footnote{This is version \fileversion\ of file \texttt{\filename}.}} + \date{\filedate} + \author{Markus Kohm} + + \newenvironment{Explain}{\par}{\par} + \newcommand*{\length}{} + \let\length\Length + \let\endlength\endLength + \let\Macro\cs + \let\Length\Macro + \let\Package\textsf + \let\Class\Package + \let\File\texttt + \let\Option\texttt + \newcommand*{\KOption}[1]{\Option{#1}\texttt{=}} + \newcommand*{\OptionValue}[2]{\Option{#1}\texttt{=}\PValue{#2}} + \let\Counter\texttt + \let\Environment\texttt + \let\ShowOutput\quote + \let\endShowOutput\endquote + \let\Pagestyle\texttt + \newcommand*{\Parameter}[1]{\texttt{\marg{#1}}\linebreak[1]} + \newcommand*{\OParameter}[1]{\texttt{\oarg{#1}}\linebreak[1]} + \newcommand*{\MParameter}[2]{\texttt{(\meta{#1},\meta{#2})}\linebreak[1]} + \providecommand\PParameter[1]{\mbox{\texttt{\{#1\}}}\linebreak[1]} + \let\PName\meta + \let\PValue\texttt + \providecommand*{\autoref}[1]{\expandafter\AUTOREF#1:} + \providecommand*{\AUTOREF}{} + \makeatletter + \def\AUTOREF#1:#2:{% + \edef\@tempa{#1}% + \edef\@tempb{tab}\ifx\@tempa\@tempb table~\fi + \edef\@tempb{sec}\ifx\@tempa\@tempb section~\fi + \ref{#1:#2}% + } + \providecommand*{\IndexCmd}[2][]{} + \providecommand*{\textnote}[2][]{} + \providecommand*\eTeX{\leavevmode\hbox{$\varepsilon$}-\TeX} + \providecommand*\NTS{% + \leavevmode\hbox{$\cal N\kern-0.35em\lower0.5ex\hbox{$\cal T$}% + \kern-0.2emS$}} + + \lstnewenvironment{lstcode}{\lstset{language=[LaTeX]TeX}}{} + \makeatother + \sloppy% YOU SHOULD NOT DO THIS!!! + + \begin{document} + \maketitle + \DocInput{\filename} + \DocInput{scrlayer-scrpage.dtx} + \DocInput{scrlayer-notecolumn.dtx} + \bibliography{guide} + \PrintChanges + \PrintIndex + \end{document} +% +% \fi^^A meta-comment +% +% \selectlanguage{english} +% +% \changes{v0.0}{2012/01/01}{Start of new package} +% +%\iffalse^^A meta comment +%<*dtx|doc> +\chapter[{Defining Layers and Page Styles Using \Package{scrlayer}}]% +{Defining Layers and Page Styles Using \Package{scrlayer}% +%\footnote{This chapter has been generated from \File{scrlayer.dtx}.}% +} +\labelbase{scrlayer} + +\BeginIndex{Package}{scrlayer} + +%\fi^^A meta comment +% \begin{abstract} +\LaTeX{} itself doesn't know layers, but there are already packages +like \Package{eso-pic} or \Package{textpos}, that provide a kind of +background or foreground layer. \Package{scrlayer} is another package, +that provides such background and foreground layers, but in difference +to the other packages mentioned above these layers are part of the +page style definition. With this you may simply switch between usage +of layers by switching the page style. + +To do so, the package also supports a low level interface to define page +styles using a layer stack, to put layers onto a page style's layer stack, to +put layers at the lowest position of a page style's layer stack, to put layers +before or after a layer of a page style's layer stack, to remove a layer from +a page style's layer stack and to remove doublets of layers of a page style's +layer stack. In short words: The page style interface of \Package{scrlayer} +provides commands to define layer-stack-based page styles and to manage those +layer stacks. + +Nevertheless using the layers directly is recommended for advanced users only. +End user interfaces for beginners or average users are provided by additional +packages, that load \Package{scrlayer} on their own. +% \end{abstract} +% +% \tableofcontents +% + +\section{State of Development Note} +\label{sec:scrlayer.draft} + +Development of this package hasn't been finished yet. Because of this, +especially internal functionality may be changed in future. Most likely the +package will be extended. And because of the early state of development, you +should not expect any user documentation. In fact there's at least only some +developers documentation needed by the main developer himself. + +%\iffalse^^A meta-comment +\EndIndex{Package}{scrlayer} +%\fi^^A meta-comment + +\section{Early or Late Selection of Options} +\label{sec:scrlayer.options} + +Package \Package{scrlayer} uses the option interface of \KOMAScript. Therefore +you may set options either within the optional argument of +\Macro{documentclass} as global options, or within the optional argument of +\Macro{usepackage} as local options, or with \Macro{KOMAoptions} or +\Macro{KOMAoption} as \KOMAScript{} option. Several of these options expect a +value. See the \KOMAScript{} manual, \File{scrguide.pdf}, for more information +about this. + + +\section{Some Generic Information} +\label{sec:scrlayer.generic} + +The package needs some generic information about the class. Class authors may +help \Package{scrlayer} setting this information. Otherwise the package tries +to detect the information itself. This works, e.g., for the standard classes +and the \KOMAScript{} classes. But it may or may not fail with other classes. + +This section describes some of the information, that class authors may +provide. Generally users need not to care about this. + +%\iffalse^^A meta-comment +\begin{Declaration} + \Macro{if@chapter}\ \PName{then code} \Macro{else}\ \PName{else code} \Macro{fi}% +\end{Declaration} +\BeginIndex{Cmd}{if@chapter}% +%\fi^^A meta-comment +% \DescribeMacro{\if@chapter} +If \Macro{if@chapter} is defined and \Macro{iftrue}, \Package{scrlayer} will +work including the chapter level, e.g., at option \Option{automark}. If it is +defined, but not \Macro{iftrue}, it only handles part, section, subsection, +sub\dots subsection, paragraph, subparagraph, sub\dots subparagraph. If the +macro isn't defined, \Package{scrlayer} searches for \Macro{chapter}. If +\Macro{chapter} is defined and not \Macro{relax}, \Package{scrlayer} will +define \Macro{if@chapter} to \Macro{iftrue}, otherwise \Macro{if@chapter} will +become \Macro{iffalse}. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{if@chapter} +%\fi^^A meta-comment + +%\iffalse^^A meta-comment +\begin{Declaration} + \Macro{if@mainmatter}\ \PName{then code} \Macro{else}\ \PName{else code} \Macro{fi}% +\end{Declaration} +\BeginIndex{Cmd}{if@mainmatter}% +%\fi^^A meta-comment +% \DescribeMacro{\if@mainmatter} +Classes like \Class{book} define \Macro{frontmatter}, \Macro{mainmatter}, and +\Macro{backmatter}. They also use \Macro{if@mainmatter} to distinguish whether +or the current matter is the main matter. Classes like \Class{report} and +\Class{article} don't have \Macro{frontmatter}, \Macro{mainmatter}, or +\Macro{backmatter} and therefore also don't have \Macro{if@mainmatter}. + +For \Package{scrlayer} it's easier not to test always for the existence of the +matter commands, but to have \Macro{if@mainmatter} even with classes like +\Class{report} and \Class{article}, simply set to \Macro{iftrue}. So if +\Macro{if@mainmatter} is not defined, it will be defined to \Macro{iftrue}. + +Some classes have \Macro{frontmatter}, \Macro{mainmatter}, or +\Macro{backmatter} but not \Macro{if@mainmatter}. In this case +\Package{scrlayer} will also define \Macro{if@mainmatter} to be \Macro{iftrue} +and it'll extend definition of \Macro{frontmatter}, \Macro{mainmatter}, and +\Macro{backmatter} to set \Macro{if@mainmatter} properly. Other matter +commands are not known, not tested, and not extended. So if there other matter +commands \Package{scrlayer} needs help of the class author to get +\Macro{if@mainmatter} set correctly. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{if@mainmatter} +%\fi^^A meta-comment + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\DeclareSectionNumberDepth} +% The command + \Macro{DeclareSectionNumberDepth}%^^A + \Parameter{level name}\Parameter{level depth} +% maps +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{DeclareSectionNumberDepth}% +With this command you may map +%\fi^^A meta-comment +the name of a heading level to a section numbering depth. With standard class +book, e.g., the \PName{level name} could be \PValue{part}, \PValue{chapter}, +\PValue{section}, \PValue{subsection}, \PValue{subsubsection}, +\PValue{paragraph}, or \PValue{subparagraph} and the corresponding +\PName{level depth}s would be -1, 0, 1, 2, 3, 4, and 5. Package +\Package{scrlayer} tries to determine the levels on it's own while loading +and while \Macro{begin}\PParameter{document}. But, if it fails, you may set it +on yourself using this command. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{DeclareSectionNumberDepth} +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\footheight} +%\iffalse^^A meta-comment + \Length{footheight}% +\end{Declaration} +\BeginIndex{Length}{footheight}% +%\fi^^A meta-comment +While \LaTeX{} already provides \Length{headheight} to set up the height of +the page head, it doesn't provide a corresponding length for the page +footer. Nevertheless \Package{scrlayer} needs this in several cases. So if +\Length{footheight} doesn't already exist, \Package{scrlayer} will define +it and initialise it to -12345\,sp. If it's value is still this magic value +while \Macro{begin}\PParameter{document}, it will be set to +\Length{baselineskip} then. +%\iffalse^^A meta-comment +\EndIndex{Length}{footheight} +%\fi^^A meta-comment + + +\section{Declaration of Layers} +\label{sec:scrlayer.layers} + +A layer is a kind of logical sheet of transparent paper (in opposite to a +physical sheet of paper). One layer is stacked onto another layer and opaque +material on one layer may hide material on the layers below. The stack of all +layers together makes the physical page. Package \Package{scrlayer} +provides two such layer stacks for each page: a background layer stack and a +foreground layer stack. The background layer stack is behind the normal page +contents, the foreground layer stack is above the normal page contents. So the +normal contents is a kind of a separating layer. + +A layer has several attributes. The first attribute is, whether or not +the layer is part of the foreground or the background. Background +layers will be printed before the main contents of the page. Optically +they will be behind the main contents. Foreground layers will be +printed after the main contents of the page. Optically they will be in +front of the main contents. By default, a layer is both, a background +layer \emph{and} a foreground layer and therefore will be printed +twice. + +The second and third attributes are the horizontal and vertical position of +the layer. The forth and fifth attributes are the horizontal and vertical size +of the layer. As you can see, a layer may be smaller or larger than the +paper. + +But how are the horizontal an vertical positions measured? The answer +is the sixth attribute, the alignment. We can measure from the left edge of +the paper to the left edge of the layer, or from the left edge of the paper to +the middle of the layer, or from the left edge of the paper to the right edge +of the layer. We can measure from the top edge of the paper to the top edge of +the layer, or to the middle of the layer, or to the bottom edge of the layer. + +The seventh and eights attributes are, whether or not a layer should be +printed onto left or right pages. By default a layer will be printed at both, +left and right pages. Note, that \LaTeX{} names left pages as even pages and +right pages as odd pages and that there are no left or even pages in +single-sided mode. + +The ninth and tenth attributes are, whether or not a layer should be printed in +single-side mode or in two-side mode. By default a layer will be printed in +both, single-side mode and two-side mode. Nevertheless an even page layer will +never be printed in single-side mode and therefore isn't really a two-side +mode layer. + +The eleventh and twelveth attributes are, whether or not a layer should be +printed onto float pages or non-float pages. \LaTeX{} produces float pages for +float environment like tables or figures, if they are allowed to be printed on +a page without normal page contents (see option \PValue{p} for +\Environment{figure} or \Environment{table}). Non-float pages aren't pages +without floats, but pages, that aren't float pages. They may contain floats +inside the text, on the top of the page, or on the bottom of the page. Very +large floats may seem to be page floats, while in reality they are top floats. + +The thirteenth and last attribute is the contents of the layer. This is simply, +what should be printed, whenever the layer will be printed. + +So we have thirteen attributes yet. Below in this manual we will see additional +attributes, that may be build by these twelve attribute. Because of this, we +call these twelve attributes the primary attributes. + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\DeclareLayer} +% \DescribeMacro{\DeclareNewLayer} +% \DescribeMacro{\ProvideLayer} +% \DescribeMacro{\RedeclareLayer} +% \DescribeMacro{\ModifyLayer} +% The command: + \Macro{DeclareLayer}\OParameter{option list}\Parameter{layer name} +%\iffalse^^A meta-comment + \\\Macro{DeclareNewLayer}\OParameter{option list}\Parameter{layer name} + \\\Macro{ProvideLayer}\OParameter{option list}\Parameter{layer name} + \\\Macro{RedeclareLayer}\OParameter{option list}\Parameter{layer name} + \\\Macro{ModifyLayer}\OParameter{option list}\Parameter{layer name} +\end{Declaration} +\BeginIndex{Cmd}{DeclareLayer}% +\BeginIndex{Cmd}{DeclareNewLayer}% +\BeginIndex{Cmd}{ProvideLayer}% +\BeginIndex{Cmd}{RedeclareLayer}% +\BeginIndex{Cmd}{ModifyLayer}% +Command \Macro{DeclareLayer} +%\fi^^A meta-comment +declares or defines a layer with the name \PName{layer name}. It doesn't care +whether or not a layer with this name already exists. Argument \PName{layer + name} must be fully expandable and the expansion has to result in +letters. Some other characters will be tolerated, but only letters are +recommended. + +The \PName{option list} is a comma separated list of \PName{option}s. An +\PName{option} may be either a \PName{key} or a \PName{key} followed be an +equal sign followed by a \PName{value}. We call this a +\OptionValue{\PName{key}}{\PName{value}} option. Each \PName{key} is the +representation of a layer attribute. See \autoref{tab:scrlayer.layerkeys} for +more information about the names of the \PName{key}s and the corresponding +attributes. + +\begin{center} + \captionaboveof{table}{The \PName{key}s representing a layer attribute}% + \label{tab:scrlayer.layerkeys}% + \begin{description} + \item[\OptionValue{align}{\PName{alignment character}s} --] a description + of the wanted alignment. Each \PName{alignment character} influences + either, how the \PName{length} of \Option{hoffset} or \Option{voffset} + will be used. Several \PName{alignment character}s may be used together + (without comma or space). No macros should be used here! Valid + \PName{alignment character}s are: + \begin{description} + \item[\PValue{b} --] align the layer with its bottom edge to the given + \Option{length} of \Option{voffset} from the top edge of the paper. + \item[\PValue{c} --] align the layer with its centre to the given + \PValue{length} of \Option{hoffset} from the left edge and of + \Option{voffset} from the top edge of the paper. + \item[\PValue{l} --] align the layer with its left edge to the given + \PValue{length} of \Option{hoffset} from the left edge of the paper. + \item[\PValue{r} --] align the layer with its right edge to the given + \PValue{length} of \Option{hoffset} from the left edge of the paper. + \item[\PValue{t} --] align the layer with its top edge to the given + \Option{length} of \Option{voffset} from the top edge of the paper. + \end{description} + \item[\OptionValue{area}{%^^A + \Parameter{hoffset}\Parameter{voffset}%^^A + \Parameter{width}\Parameter{height}} --] composing option, that results + in \OptionValue{hoffset}{\PName{hoffset}}, + \OptionValue{voffset}{\PName{voffset}}, + \OptionValue{width}{\PName{width}}, \OptionValue{height}{\PName{height}}. + \item[\Option{background} --] print the layer only in the background, but not + in the foreground. This makes a background-only layer in opposite to the + default of layers which are both, background and foreground layers. The + option doesn't expect any value. By the default the attribute is not set. + \item[\Option{bottommargin} --] composing option, that sets + \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height}, and + \Option{align} to horizontally span the paper from the left edge to the + right and vertically span the area below the footer down to the bottom + edge of the paper. + \item[\OptionValue{clone}{\PName{layer name}} --] composing option, that + sets all primary attributes of the layer to the same values as the primary + attributes of the layer with the given \PName{layer name}. Note, that + \PName{layer name} has to be fully expandable and should expand to letters + only. Some additional characters will be tolerated, but they are not + recommended! + \item[\OptionValue{contents}{\PName{code}} --] the \PName{code} will be + expanded whenever the layer is printed. So the \PName{code} is what you + will see. No checks for valid code will be done. So errors in \PName{code} + may result in several failures on each page, that prints the layer. + \item[\Option{evenpage} --] print the layer on even pages only, but not on + odd pages. The option doesn't expect any value. By the default the + attribute is not set. Note, that this attribute includes \Option{twoside}. + \item[\Option{floatpage} --] print the layer on float pages only, but not on + other pages. The option doesn't expect any value. By the default the + attribute is not set. + \item[\Option{foot} --] composing option, that sets \Option{hoffset}, + \Option{voffset}, \Option{width}, \Option{height}, and \Option{align} to + horizontally span the text area and vertically span the page footer + defined by the new \LaTeX{} length \Length{footheight}. + \item[\Option{footskip} --] composing option, that sets \Option{hoffset}, + \Option{voffset}, \Option{width}, \Option{height}, and \Option{align} to + horizontally span the text area and vertically span the distance between + the text area and the page footer (note, that this is not the same like + \Length{footskip}). + \item[\Option{foreground} --] print the layer only in the foreground, but not + in the background. This makes a foreground-only layer in opposite to the + default of layers which are both, background and foreground layers. The + option doesn't expect any value. By the default the attribute is not set. + \item[\Option{head} --] composing option, that sets \Option{hoffset}, + \Option{voffset}, \Option{width}, \Option{height}, and \Option{align} to + horizontally span the text area and vertically span the page head defined + by usual\LaTeX{} length \Length{headheight}. + \item[\Option{headsep} --] composing option, that sets \Option{hoffset}, + \Option{voffset}, \Option{width}, \Option{height}, and \Option{align} to + horizontally span the text area and vertically span the distance between + the page head and the text area. + \item[\OptionValue{height}{\PName{length}} --] the height of the + layer. Note, that \PName{length} may either a \LaTeX{} length, declared + using \Macro{newlength}, or a \TeX{} length, declared using + \Macro{newdimen} or \Macro{newskip}, a length value like 10\,pt, or a + dimensional expression using +, -, /, *, (, and ). For more information + about valid dimensional expression see \cite[section~3.5]{manual:eTeX}. + \item[\OptionValue{hoffset}{\PName{length}} --] the offset of the layer + (depending on \Option{align} either left edge of the layer, middle of the + layer or right edge of the layer) from the left edge of the paper. See + \Option{height} for more information about valid content of + \PName{length}. + \item[\Option{innermargin} --] composing option, that sets \Option{hoffset}, + \Option{voffset}, \Option{width}, \Option{height}, and \Option{align} to + horizontally span the distance between the right edge of text area and the + right edge of the paper on even pages or the distance between the left + edge of the paper and the left edge of the text area on odd pages and + vertically span the whole paper from the top edge to the bottom edge. + \item[\Option{leftmargin} --] composing option, that sets \Option{hoffset}, + \Option{voffset}, \Option{width}, \Option{height}, and \Option{align} to + horizontally span the distance between the left edge of the paper and the + left edge of the text area and vertically span the whole paper from the + top edge to the bottom edge. + \item[\Option{nonfloatpage} --] don't print the layer on float pages, but on + other pages only. The option doesn't expect any value. By the default the + attribute is not set. + \item[\Option{oddpage} --] print the layer on odd pages only, but not on even + pages. The option doesn't expect any value. By the default the attribute + is not set. + \item[\Option{oneside} --] print the layer in single-side mode only, but not + in two-side mode. The option doesn't expect any value. By the default the + attribute is not set. + \item[\Option{outermargin} --] composing option, that sets \Option{hoffset}, + \Option{voffset}, \Option{width}, \Option{height}, and \Option{align} to + horizontally span the distance between the left edge of the paper and the + left edge of the text area on even pages or the distance between the right + edge of the text area and the right edge of the paper on odd pages and + vertically span the whole paper from the top edge to the bottom edge. + \item[\Option{page} --] composing option, that sets \Option{hoffset}, + \Option{voffset}, \Option{width}, \Option{height}, and \Option{align} to + horizontally and vertically span the whole paper from the left edge to the + right edge and the top edge to the bottom edge. + \item[\Option{rightmargin} --] composing option, that sets \Option{hoffset}, + \Option{voffset}, \Option{width}, \Option{height}, and \Option{align} to + horizontally span the distance between the right edge of text area and the + right edge of the paper and vertically span the whole paper from the top + edge to the bottom edge. + \item[\Option{textarea} --] composing option, that sets \Option{hoffset}, + \Option{voffset}, \Option{width}, \Option{height}, and \Option{align} to + horizontally and vertically span the whole text area from the left edge to + the right edge and the top edge to the bottom edge. + \item[\Option{topmargin} --] composing option, that sets \Option{hoffset}, + \Option{voffset}, \Option{width}, \Option{height}, and \Option{align} to + horizontally span the whole page from the left edge to the right edge and + vertically span the distance between the top edge of the paper and the + page head. + \item[\Option{twoside} --] print the layer in two-side mode only, but not in + single-side mode. The option doesn't expect any value. By the default the + attribute is not set. + \item[\OptionValue{voffset}{\PName{length}} --] the offset of the layer + (depending on \Option{align} either top edge of the layer, middle of the + layer or bottom edge of the layer) from the top edge of the paper. See + \Option{height} for more information about valid content of + \PName{length}. + \item[\OptionValue{width}{\PName{length}} --] the width of the layer. See + \Option{height} for more information about valid content of + \PName{length}. + \end{description} +\end{center} + +The difference between \Macro{DeclareLayer} and \Macro{DeclareNewLayer} is, +that using \Macro{DeclareNewLayer} would result in an error, if a layer with +the same \PName{layer name} already exists. So you may prevent yourself using +the same \PName{layer name} twice by mistake. + +The difference between \Macro{DeclareLayer} and \Macro{ProvideLayer} is, that +using \Macro{ProvideLayer} would be simply ignored, if a layer with the same +\PName{layer name} already exists. So it is something like: \emph{declare the + layer only, if is hasn't been declared already.} + +The difference between \Macro{DeclareLayer} and \Macro{RedeclareLayer} is, +that using \Macro{RedeclareLayer} would result in an error, if a layer with +the same \PName{layer name} doesn't exist already. So it may not be used to +define a new layer. + +The difference between \Macro{RedeclareLayer} and \Macro{ModifyLayer} is, that +\Macro{RedeclareLayer} resets the layer to the default, before declaring it +new. \Macro{ModifyLayer} doesn't reset it, so only the attributes, set by the +\PName{option list} will be changed. +% +%\iffalse^^A meta-comment +\EndIndex{Cmd}{ModifyLayer}% +\EndIndex{Cmd}{RedeclareLayer}% +\EndIndex{Cmd}{ProvideLayer}% +\EndIndex{Cmd}{DeclareNewLayer}% +\EndIndex{Cmd}{DeclareLayer}% +%\fi^^A meta-comment + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\IfLayerExists} +% The command + \Macro{IfLayerExists}%^^A + \Parameter{string}\Parameter{then-code}\Parameter{else-code} +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{IfLayerExists}% +This command +%\fi^^A meta-comment +may be used to execute code depending on whether or not a layer has been +defined already. If the layer exists \PName{then-code} will be executed, +otherwise \PName{else-code}. Note, that the command cannot really test whether +a layer exists. It uses a heuristic, that will never be false negative, but +may be false positive. Nevertheless, if it is false positive something went +wrong, either an incompatible package has been used or the user made something +he shouldn't do. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{IfLayerExists} +%\fi^^A meta-comment + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\DestroyLayer} +% The command + \Macro{DestroyLayer}%^^A + \Parameter{layer name} +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{DestroyLayer}% +This command +%\fi^^A meta-comment +sets all macros corresponding with the layer with given \PName{layer name} to +\Macro{relax}, if a layer with that name exists. After this the layer may not +be used any longer. But it doesn't matter, if the layer is still part of the +layer list of a page style, because such destroyed layers will be +ignored. Nevertheless destroyed layers may be defined new using +\Macro{DeclareNewLayer} or \Macro{ProvideLayer}, but couldn't be changed using +\Macro{RedeclareLayer} or \Macro{ModifyLayer} any longer. The command is +intended to be used inside \Macro{scrlayerOnAutoRemoveInterface} to remove +layers, that have been defined by an interface using removable macros of that +interface. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{DestroyLayer} +%\fi^^A meta-comment + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% The command +% \DescribeMacro{\layercontentsmeasure} +% \DescribeOption{draft} + \Macro{layercontentsmeasure}% +%\iffalse^^A meta-comment + \\\KOption{draft}{\PName{simple switch}}% +\end{Declaration} +\BeginIndex{Option}{draft~=\PName{simple switch}} +\BeginIndex{Cmd}{layercontentsmeasure}% +The command \Macro{layercontentsmeasure} +%\fi^^A meta-comment +is internally used, if option \Option{draft} has been set, so visualise +the layers. The visualisation will be done with a centimetre ruler at the top +and left edge of the layer and an inch ruler at the bottom and right edge of +the layer. The rulers will be drawn behind the content of the layer. If you +would you, could also use it as content of a layer. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{layercontentsmeasure} +\EndIndex{Option}{draft~=\PName{simple switch}} +%\fi^^A meta-comment + + +\section{Declaration and Management of Page Styles} +\label{sec:scrlayer.pagestyles} + +Until now we know layers, but we don't know how to use them. The +perhaps astonishing answer is: with page styles. In \LaTeX{}, page +styles usually define heads and foots of odd and even pages. + +The head and foot of odd pages will be printed on pages with odd +page number in two-side mode or on all pages in single-side mode. This is +something like the layer attributes \Option{oddpage} and \Option{evenpage}. + +The page head will be printed before the main contents of a page. The page +footer will be printed after the main contents of a page. So this is something +like the layer attributes \Option{background} and \Option{foreground}. + +So it's obvious to declare page styles to be a list of layers. But instead of +having only four attributes \Option{oddpage}, \Option{evenpage}, +\Option{background}, and \Option{foreground} all the attributes of layers +shown in \autoref{sec:scrlayer.layers} may be used. + +The outcome of this is, that one kind of page styles \Package{scrlayer} +provides are layer page styles. A layer page style consists of layers and +several \emph{hooks}. For description of layers see +\autoref{sec:scrlayer.layers}. The \emph{hooks} are points in the expansion +or execution of page styles and you may add additional code, that will be +expanded there. + +Another kind of page styles \Package{scrlayer} provides are alias page +style. An alias page style simply consists of one other page style. In +other words, the name of an alias page style is only an alias name of +another page style, the aliased or original page style. Because of +this, the manipulation of an alias page style results in the +manipulation of the original page style. If the original page style is +an alias page style too, the manipulation will result in the +manipulation of the aliased page style of that original page style and +so on until a real page style will be manipulated. You may not only +alias layer page styles made with \Package{scrlayer}, but all kind of +page styles. + + +% \DescribeMacro{\currentpagestyle} +%\iffalse^^A meta-comment +\begin{Declaration} + \Macro{currentpagestyle} +\end{Declaration} +\BeginIndex{Cmd}{currentpagestyle}% +%\fi^^A meta-comment +Package scrlayer patches \Macro{pagestyle} to set \Macro{currentpagestyle} to +the currently active page style. Note, that \Macro{thispagestyle} does not +change \Macro{currentpagestyle}. But if you use \Macro{thispagestyle} the +result of \Macro{currentpagestyle} may be changed while execution of the +\LaTeX{} output routine. This may be relevant only, if +\Macro{currentpagestyle} has been used protected until execution of the output +routine. + +Note, that the layer page styles described later in this section, won't need +the patch of \Macro{pagestyle} to set \Macro{currentpagestyle}. The patch has +been made for usage with other page styles. Note also, that +\Macro{currentpagestyle} is empty before the first \Macro{pagestyle} after +loading \Package{scrlayer}. So if you define an end user page style interface, +it may be useful to use an implicit \Macro{pagestyle} to set the current page +style to a default page style. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{currentpagestyle} +%\fi^^A meta-comment + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\BeforeSelectAnyPageStyle} +% \DescribeMacro{\AfterSelectAnyPageStyle} +% The command + \Macro{BeforeSelectAnyPageStyle}\Parameter{code}% +%\iffalse^^A meta-comment + \\\Macro{AfterSelectAnyPageStyle}\Parameter{code}%^^A +\end{Declaration} +\BeginIndex{Cmd}{BeforeSelectAnyPageStyle}% +\BeginIndex{Cmd}{AfterSelectAnyPageStyle}% +The command \Macro{BeforeSelectAnyPageStyle} +%\fi^^A meta-comment +adds \PName{code} to hook, that will be executed inside of \Macro{pagestyle} +just before the page style will be selected. You may use \texttt{\#1} as a +placeholder for the argument of \Macro{pagestyle}. + +The command \Macro{AfterSelectAnyPageStyle}%^^A +% \iffalse^^A meta-comment +\Parameter{code}%^^A +% \fi^^A meta-comment +\ is similar, but the \PName{code} will be executed just after the page style +has been selected and after \Macro{currentpagestyle} has been set to the name +of real page style. + +Note, that \PName{code} of both commands will be executed only, if a page +style will be selected using \Macro{pagestyle}, but not, e.\,g., if a page +style will be selected using \Macro{thispagestyle}. Note also, that you cannot +remove \PName{code} from the hook after adding it. But the \PName{code} will +be added locally, so you may use a group to limit the scope of +\PName{code}.%^^A +%\iffalse^^A meta-comment +\EndIndex{Cmd}{AfterSelectAnyPageStyle} +\EndIndex{Cmd}{BeforeSelectAnyPageStyle} +%\fi^^A meta-comment + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\DeclarePageStyleAlias} +% \DescribeMacro{\DeclareNewPageStyleAlias} +% \DescribeMacro{\ProvidePageStyleAlias} +% \DescribeMacro{\RedeclarePageStyleAlias} +% The command + \Macro{DeclarePageStyleAlias}%^^A + \Parameter{alias page style name}\Parameter{original page style name} +%\iffalse^^A meta-comment + \\\Macro{DeclareNewPageStyleAlias}% + \Parameter{alias page style name}\Parameter{original page style name} + \\\Macro{ProvidePageStyleAlias}% + \Parameter{alias page style name}\Parameter{original page style name} + \\\Macro{RedeclarePageStyleAlias}% + \Parameter{alias page style name}\Parameter{original page style name} +\end{Declaration} +\BeginIndex{Cmd}{DeclarePageStyleAlias}% +\BeginIndex{Cmd}{DeclareNewPageStyleAlias}% +\BeginIndex{Cmd}{ProvidePageStyleAlias}% +\BeginIndex{Cmd}{RedeclarePageStyleAlias}% +These Commands +%\fi^^A meta-comment +may be used to define a page style with name \PName{alias page style name}, +that is simply an alias for already existing page style with name +\PName{original page style name}. If there's already a page style \PName{alias + page style name} it will be destroyed before creating the alias using +\Macro{DeclarePageStyleAlias} or \Macro{RedeclarePageStyleAlias}. + +\Macro{DeclareNewPageStyleAlias} will throw an error message, if a page style +\PName{alias page style name} has already been defined before. It doesn't +matter if the already defined page style is a layer page style, an alias page +style or another page style. + +\Macro{ProvidePageStyleAlias} will define the alias only, if a page style +\PName{alias page style name} hasn't been defined before. If a page style +\PName{alias page style name} already exists nothing will be done. + +\Macro{RedeclarePageStyleAlias} expects, that a page style \PName{alias page + style name} already exists. In this case it will destroy it and define the +alias newly. In the other case you'll get an error. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{RedeclarePageStyleAlias}% +\EndIndex{Cmd}{ProvidePageStyleAlias}% +\EndIndex{Cmd}{DeclareNewPageStyleAlias}% +\EndIndex{Cmd}{DeclarePageStyleAlias} +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\DestroyPageStyleAlias} +% The command + \Macro{DestroyPageStyleAlias}\Parameter{page style name}% +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{DestroyPageStyleAlias}% +This command +%\fi^^A meta-comment +makes the page style with given \PName{page style name} \LaTeX-undefined, if +it is an alias for another page style. After this, the page style may be +defined newly with, e.g., \Macro{DeclareNewAliasPageStyle} or +\Macro{ProvideAliasPageStyle}. The command is intended to be used inside of +\Macro{scrlayerOnAutoRemoveInterface} to remove page styles, that have been +declared by an interface and uses removable macros of that interface. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{DestroyPageStyleAlias} +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\GetRealPageStyle} +% The command + \Macro{GetRealPageStyle}\Parameter{page style name}% +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{GetRealPageStyle}% +The command +%\fi^^A meta-comment +will result in the (recursive) real page name of the page style, if +the page style with given name \PName{page style name} is an alias of +another page style. In all other cases, even if there's no alias and no page +style named \PName{page style name}, the result would be simply \PName{page + style name}. The command is fully expandable and may be used, e.g., in the +second argument of \Macro{edef}. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{GetRealPageStyle} +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\DeclarePageStyleByLayers} +% \DescribeMacro{\DeclareNewPageStyleByLayers} +% \DescribeMacro{\ProvidePageStyleByLayers} +% \DescribeMacro{\RedeclarePageStyleByLayers} +% The command + \Macro{DeclarePageStyleByLayers}%^^A + \OParameter{option list}\Parameter{page style name}\Parameter{layer list}% +%\iffalse^^A meta-comment + \\\Macro{DeclareNewPageStyleByLayers}%^^A + \OParameter{option list}\Parameter{page style name}\Parameter{layer list}% + \\\Macro{ProvidePageStyleByLayers}%^^A + \OParameter{option list}\Parameter{page style name}\Parameter{layer list}% + \\\Macro{RedeclarePageStyleByLayers}%^^A + \OParameter{option list}\Parameter{page style name}\Parameter{layer list}% +\end{Declaration} +\BeginIndex{Cmd}{DeclarePageStyleByLayers}% +\BeginIndex{Cmd}{DeclareNewPageStyleByLayers}% +\BeginIndex{Cmd}{ProvidePageStyleByLayers}% +\BeginIndex{Cmd}{RedeclarePageStyleByLayers}% +These commands +%\fi^^A meta-comment +declares a page style with \PName{page style name}. The page style will +consist of the layers given in \PName{layer list}, a comma separated list of +layer names. Note, that the \PName{page style name} and the layer names at the +\PName{layer list} must be fully expandable and should expand to +letters. Several other characters will be tolerated, but nevertheless, they +aren't recommended. + +The \PName{option list} is a comma separated list of +\OptionValue{\PName{key}}{\PName{value}} options. These options may be used to +set additional features. Currently they are used to set the code, that should +be expanded or executed at several \emph{hooks}. See the introduction to this +section for more general information about \emph{hooks}. See +\autoref{tab:scrlayer.pagestyle.hooks} for more information about the hooks +and their purpose. + +\begin{center} + \parbox{\textwidth}{% + \captionaboveof{table}{The \emph{hook} options for page styles (in order of + execution)}\nobreak\vskip4\baselineskip}\vskip-5\baselineskip + \label{tab:scrlayer.pagestyle.hooks} + \begin{description} + \item[\texttt{\KOption{onselect}\PName{code}}:] Execute \PName{code} + whenever the page style will be selected using, e.g., + \Macro{pagestyle}. Note, that \Macro{thispagestyle} doesn't select the + page style immediately, but asynchronously inside \LaTeX's output routine. + \item[\texttt{\KOption{oninit}\PName{code}}:] Execute \PName{code} whenever + the output of the layers of a page style will be initialised. Note, that + this will be done twice for every page: once for background layers and + once for foreground layers. + \item[\texttt{\KOption{ononeside}\PName{code}}:] Execute \PName{code} + whenever the output of the layers of a page style in single-side mode will + initialised. Note, that this will be done twice for every page: once for + background layers and once for foreground layers. + \item[\texttt{\KOption{ontwoside}\PName{code}}:] Execute \PName{code} + whenever the output of the layers of a page style in two-side mode will + initialised. Note, that this will be done twice for every page: once for + background layers and once for foreground layers. + \item[\texttt{\KOption{onoddpage}\PName{code}}:] Execute \PName{code} + whenever the output of the layers of a page style on an odd page will + initialised. Note, that this will be done twice for every page: once for + background layers and once for foreground layers. Note also, that in + single-side mode all pages are odd pages, not only pages with odd page + numbers. + \item[\texttt{\KOption{onevenpage}\PName{code}}:] Execute \PName{code} + whenever the output of the layers of a page style on an even page will + initialised. Note, that this will be done twice for every page: once for + background layers and once for foreground layers. Note also, that there + aren't even pages in single-side mode, but all pages are odd pages, not + only pages with odd page numbers. + \item[\texttt{\KOption{onfloatpage}\PName{code}}:] Execute \PName{code} + whenever the output of the layers of a page style on a float page will + initialised. Note, that this will be done twice for every page: once for + background layers and once for foreground layers. Note also, that float + pages are only those pages with p-placed floating objects. + \item[\texttt{\KOption{onnonfloatpage}\PName{code}}:] Execute \PName{code} + whenever the output of the layers of a page style on a non-float page will + initialised. Note, that this will be done twice for every page: once for + background layers and once for foreground layers. Note also, that + non-float pages are all pages, that aren't float-pages. Those pages may + have t-placed, h-placed, b-placed, or no floating objects. + \item[\texttt{\KOption{onbackground}\PName{code}}:] Execute \PName{code} + whenever the output of the layers of a page style in the background of a + page will initialised. Note, that this will be done once for every page. + \item[\texttt{\KOption{onforeground}\PName{code}}:] Execute \PName{code} + whenever the output of the layers of a page style in the foreground of a + page will initialised. Note, that this will be done once for every page. + \end{description} +\end{center} + +The difference of \Macro{DeclarePageStyleByLayers} and +\Macro{DeclareNewPageStyleByLayers} is, that \Macro{DeclareNewPageStyleByLayers} +will result in an error, if a page style with name \PName{page style name} +already exists. Note, that declaring a page style, that is an alias of another +page style (see \Macro{DeclareAliasPageStyle} prior in this section), will not +re-declare the page style itself, but it's real page style (see +\Macro{GetRealPageStyle} prior in this section). + +The difference of \Macro{DeclarePageStyleByLayers} and +\Macro{ProvidePageStyleByLayers} is, that \Macro{ProvidePageStyleByLayers} +will simply do nothing, if there's already a page style with name \PName{page + style name}. In difference to \Macro{DeclareNewPageStyleByLayers} it won't +raise an error in this case. + +The difference of \Macro{DeclarePageStyleByLayers} and +\Macro{RedeclarePageStyleByLayers} is, that \Macro{RedeclarePageStyleByLayers} +may be used only, if the real page style of \PName{page style name} already +exists. Otherwise an error would occur. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{RedeclarePageStyleByLayers}% +\EndIndex{Cmd}{ProvidePageStyleByLayers}% +\EndIndex{Cmd}{DeclareNewPageStyleByLayers}% +\EndIndex{Cmd}{DeclarePageStyleByLayers}% +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} + \Pagestyle{@everystyle@}\\ + \Pagestyle{empty} +\end{Declaration} +\BeginIndex{Pagestyle}{@everysel@}% +\BeginIndex{Pagestyle}{empty}% +%\fi^^A meta-comment +There are two somehow special, default layer page styles. The first one is +\Pagestyle{@everystyle@}. This page style shouldn't be used normally, but the +layers of this page style will be used by all the other layer page styles. So +adding a layer to this page style would be similar to adding this layer to all +other layer page styles even the empty one. There's one difference: Layer +referencing commands of the page style interface like +\Macro{ForEachLayerOfPageStyle}, \Macro{AddLayerToPageStyleBeforeLayer}, or +\Macro{AddLayerToPageStyleAfterLayer} ignore the layers of +\Pagestyle{@everystyle@} if they are used for another layer page style. + +The other somehow special page style is \Pagestyle{empty}. Normally page style +\Pagestyle{empty} is defined by the \LaTeX{} kernel, to be a page style +without page head or page foot. Package{scrlayer} re-defines it to be a layer +page style without any layer. Nevertheless you may use it like every other +layer page style too. The main advantage above the \LaTeX{} kernel's empty +page style is, that it also executes the layers of special layer page style +\Pagestyle{@everysel@}. +%\iffalse^^A meta-comment +\EndIndex{Pagestyle}{empty}% +\EndIndex{Pagestyle}{@everysel@}% +%\fi^^A meta-comment + + +% \iffalse^^A meta-comment +\begin{Declaration} +% \fi^^A meta-comment +% \DescribeOption{onpsselect}% +% \DescribeOption{onpsinit}% +% \DeleteShortVerb{\|}% +% \DescribeOption{onps(one|two)side}% +% \DescribeOption{onps(odd|even)page}% +% \DescribeOption{onps(float|nonfloat)page}% +% \DescribeOption{onps(back|fore)ground}% +% \MakeShortVerb{\|}% +% \iffalse^^A meta-comment + \KOption{onpsselect}\PValue{code}\\ + \KOption{onpsinit}\PValue{code}\\ + \KOption{onpsoneside}\PValue{code}\\ + \KOption{onpstwoside}\PValue{code}\\ + \KOption{onpsoddpage}\PValue{code}\\ + \KOption{onpsevenpage}\PValue{code}\\ + \KOption{onpsfloatpage}\PValue{code}\\ + \KOption{onpsnonfloatpage}\PValue{code}\\ + \KOption{onpsbackground}\PValue{code}\\ + \KOption{onpsforeground}\PValue{code} +\end{Declaration} +\BeginIndex{Option}{onpsselect}% +\BeginIndex{Option}{onpsinit}% +\BeginIndex{Option}{onpsoneside}% +\BeginIndex{Option}{onpstwoside}% +\BeginIndex{Option}{onpsoddpage}% +\BeginIndex{Option}{onpsevenpage}% +\BeginIndex{Option}{onpsfloatpage}% +\BeginIndex{Option}{onpsnonfloatpage}% +\BeginIndex{Option}{onpsbackground}% +\BeginIndex{Option}{onpsforeground}% +% \fi^^A meta-comment +There's also a \KOMAScript{} option for each of those \texttt{hooks}. The +names of the \KOMAScript{} options are similar to the names of the page style +options, but with ``\texttt{ps}'' inserted behind ``\texttt{on}''. The value of +the \KOMAScript{} options are the initial defaults of the corresponding +\texttt{hooks}. This default will be extended by every usage of the page style +options at the \PName{option list}. You may remove the default, using +\Macro{ModifyLayerPageStyleOptions} described later in this section. +% \iffalse^^A meta-comment +\EndIndex{Option}{onpsforeground}% +\EndIndex{Option}{onpsbackground}% +\EndIndex{Option}{onpsnonfloatpage}% +\EndIndex{Option}{onpsfloatpage}% +\EndIndex{Option}{onpsevenpage}% +\EndIndex{Option}{onpsoddpage}% +\EndIndex{Option}{onpstwoside}% +\EndIndex{Option}{onpsoneside}% +\EndIndex{Option}{onpsinit}% +\EndIndex{Option}{onpsselect}% +% \fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} + \KOption{deactivatepagestylelayers}\PName{simple switch}\\ +%\fi^^A meta-comment +% \DescribeMacro{\ForEachLayerOfPageStyle} +% The command + \Macro{ForEachLayerOfPageStyle}%^^A + \Parameter{page style name}\Parameter{code} +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{ForEachLayerOfPageStyle}% +This command +%\fi^^A meta-comment +may be used to process \PName{code} for every layer, that is a member of the +layers list of a page style with given \PName{page style name}. Inside of +\PName{code} the place holder \PValue{\#1} may be used for the name of the +current layer. +%\iffalse^^A meta-comment +\begin{Example} +%\fi^^A meta-comment +% \par +If you want to output the names of all layers of page style +\PValue{scrheadings}, you may us: +\begin{lstcode} + \let\commaatlist\empty + \ForEachLayerOfPageStyle{scrheadings}{% + \commaatlist#1\gdef\commaatlist{, }} +\end{lstcode} +%\iffalse^^A meta-comment +\end{Example} +%\fi^^A meta-comment +\KOMAScript{} option \Option{deactivatepagestylelayers} may be used to +deactivate all layers within \Macro{ForEachLayerOfPageStyle}. If the options +has been switched on, \Macro{ForEachLayerOfPageStyle} will not longer process +\PName{code} for any layer. Several other commands of \Package{scrlayer} also +uses \Macro{ForEachLayerOfPageStyle} internally. So these also won't process +any layer. You may use this options, e.g., to hide all layers. + +Please note, that \PName{code} will be executed inside a group! +% \iffalse^^A meta-comment +\EndIndex{Cmd}{ForEachLayerOfPageStyle} +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\AddLayersToPageStyle} +% \DescribeMacro{\AddLayersAtBeginOfPageStyle} +% \DescribeMacro{\AddLayersAtEndOfageStyle} +% \DescribeMacro{\RemoveLayersFromPageStyle} +% The command + \Macro{AddLayersToPageStyle}%^^A + \Parameter{page style name}\Parameter{layer list}% +%\iffalse^^A meta-comment + \\\Macro{AddLayersAtBeginOfPageStyle}%^^A + \Parameter{page style name}\Parameter{layer list}% + \\\Macro{AddLayersAtEndOfPageStyle}%^^A + \Parameter{page style name}\Parameter{layer list}% + \\\Macro{RemoveLayersFromPageStyle}%^^A + \Parameter{page style name}\Parameter{layer list}% +\end{Declaration} +\BeginIndex{Cmd}{AddLayersToPageStyle}% +\BeginIndex{Cmd}{AddLayersAtBeginOfPageStyle}% +\BeginIndex{Cmd}{AddLayersAtEndOfPageStyle}% +\BeginIndex{Cmd}{RemoveLayersFromPageStyle}% +The first command +%\fi^^A meta-comment +adds all layers of the comma separated list of layers \PName{layer list} at +the end of the layer list of layer page style \PName{page style + name}. \Macro{AddLayersAtEndOfPageStyle} is an alias for the same. If you +want to add the new layers at the begin of the layer list of a layer page +style you may use \Macro{AddLayersAtBeginOfPageStyle}. Note, that the layers +will be added in the order of the \PName{layer list}. The first layer at +\PName{layer list} will be added first, the second layer will be added second +and so on. So with \Macro{AddLayersAtBeginOfPageStyle} the last layer at +\PName{layer list} will become the new first layer of the layer list of layer +page style \PName{page style name}. + +Command \Macro{RemoveLayersFromPageStyle} may be used to remove layers from +the layer list of layer page style \PName{page style name} instead of adding +them. Note, that layers, that are part of \PName{layer list} but not part of +the page style's layer list, will be ignored. + +Adding or removing layers from a page style, that is not a layer page style or +an alias of a layer page style would be an error and result in an error +message.% +%\iffalse^^A meta-comment +\EndIndex{Cmd}{RemoveLayersFromPageStyle}% +\EndIndex{Cmd}{AddLayersAtEndOfPageStyle}% +\EndIndex{Cmd}{AddLayersAtBeginOfPageStyle}% +\EndIndex{Cmd}{AddLayersToPageStyle} +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\AddLayersToPageStyleBeforeLayer} +% The commands + \Macro{AddLayersToPageStyleBeforeLayer}%^^A + \Parameter{page style name}\Parameter{layer list}%^^A + \Parameter{reference layer name} +% and + \\\Macro{AddLayersToPageStyleAfterLayer}%^^A + \Parameter{page style name}\Parameter{layer list}%^^A + \Parameter{reference layer name} +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{AddLayersToPageStyleBeforeLayer}% +\BeginIndex{Cmd}{AddLayersToPageStyleAfterLayer}% +These commands +%\fi^^A meta-comment +are similar to the commands described before, but they do not add the layers +at the begin or end of the layer list of a layer page style, but just before +or after a reference layer at the layer list of a layer page style. Note, that +in this case the order of the \PName{layer list} will be same in the layer +list of \PName{page style name} after adding. If the reference layer named +\PName{reference layer name} is not part of the layer list of the layer page +style, nothing happens. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{AddLayersToPageStyleAfterLayer} +\EndIndex{Cmd}{AddLayersToPageStyleBeforeLayer} +%\fi^^A meta-comment + + +% \DescribeMacro{\UnifyLayersAtPageStyle} +%\iffalse^^A meta-comment +\begin{Declaration} + \Macro{UnifyLayersAtPageStyle}\Parameter{page style name} +\end{Declaration} +\BeginIndex{Cmd}{UnifyLayersAtPageStyle}% +%\fi^^A meta-comment +With the commands described before in this section you may not only add +different layers to a page style, but even add the same layer several times to +a page style. In most cases it doesn't make sense to have one layer several +times at the layer list of a layer page style. So you may use +\Macro{UnifyLayersAtPageStyle}%^^A +%\Parameter{page style name}^^A +\ to remove all dupes of layers from the layer list of a layer page +style. Note that the order of layers may change! So if you want a special +order, you should remove all layers and add the layers in the order you want +instead of using \Macro{UnifyLayersAtPageStyle}. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{UnifyLayersAtPageStyle} +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\ModifyLayerPageStyleOptions} +% \DescribeMacro{\AddToLayerPageStyleOptions} +% The command + \Macro{ModifyLayerPageStyleOptions}%^^A + \Parameter{page style name}\Parameter{option list} +%\iffalse^^A meta-comment + \\\Macro{AddToLayerPageStyleOptions}%^^A + \Parameter{page style name}\Parameter{option list} +\end{Declaration} +\BeginIndex{Cmd}{ModifyLayerPageStyleOptions}% +\BeginIndex{Cmd}{AddToLayerPageStyleOptions}% +Command \Macro{ModifyLayerPageStyleOptions} +%\fi^^A meta-comment +may be used to modify the page style options of a layer page style. Only +options at the comma separated \PName{option list} will be set to the new +values given in \PName{option list} if the new value is not empty. Options, +that are not at \PName{option list}, will stay unchanged. If you want to set +an option to \emph{do nothing} you may use value \Macro{relax}. Note, that +setting an option to a new value using \Macro{ModifyLayerPageStyleOptions} +will remove the previous value including the global default value. + +\Macro{AddToLayerPageStyleOptions} differs from +\Macro{ModifyLayerPageStyleOptions} in that point. It will not overwrite the +previous values, but adds\,---\,or more precisely: concatenates\,---\, the new +values to the previous values of the options at \PName{option list}. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{AddToLayerPageStyleOptions} +\EndIndex{Cmd}{ModifyLayerPageStyleOptions} +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\IfLayerPageStyleExists} +% \DescribeMacro{\IfRealLayerPageStyleExists} +% The command + \Macro{IfLayerPageStyleExists}%^^A + \Parameter{page style name}\Parameter{then code}\Parameter{else code}% +%\iffalse^^A meta-comment + \\\Macro{IfRealLayerPageStyleExists}%^^A + \Parameter{page style name}\Parameter{then code}\Parameter{else code}% +\end{Declaration} +\BeginIndex{Cmd}{IfLayerPageStyleExists}% +\BeginIndex{Cmd}{IfRealLayerPageStyleExists}% +Command \Macro{IfLayerPageStyleExists} +%\fi^^A meta-comment +tests, whether or not the real page style of \PName{page style name} is a +layer page style. If the test is true, \PName{then code} will be executed. If +\PName{page style name} is neither a layer page style, nor an alias of a layer +page style, nor an alias of an alias of \dots\ a layer page style, \PName{else + code} will be executed. Internally this command is often used to throw an +error message if you use one of the layer page style commands with an +\PName{page style name} that doesn't correspond with a layer page style. + +Command \Macro{IfRealLayerPageStyleExists} is similar, but \PName{then code} +will only be executed, if \PName{page style name} itself is the name of a +layer page style. So \PName{else code} will even be executed, if \PName{page + style name} is an alias name of a layer page style or the alias name of an +alias name of \dots\ a layer page style. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{IfRealLayerPageStyleExists} +\EndIndex{Cmd}{IfLayerPageStyleExists} +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\IfLayerAtPageStyle} +% \DescribeMacro{\IfSomeLayersAtPageStyle} +% \DescribeMacro{\IfLayersAtPageStyle} +% The command + \Macro{IfLayerAtPageStyle}% + \Parameter{page style name}\Parameter{layer name}%^^A + \Parameter{then code}\Parameter{else code}% +%\iffalse^^A meta-comment + \\\Macro{IfSomeLayerAtPageStyle}% + \Parameter{page style name}\Parameter{layer list}%^^A + \Parameter{then code}\Parameter{else code}% + \\\Macro{IfLayerAtPageStyle}% + \Parameter{page style name}\Parameter{layer list}%^^A + \Parameter{then code}\Parameter{else code}% +\end{Declaration} +\BeginIndex{Cmd}{IfLayerAtPageStyle}% +\BeginIndex{Cmd}{IfSomeLayersAtPageStyle}% +\BeginIndex{Cmd}{IfLayersAtPageStyle}% +Command \PName{IfLayerAtPageStyle} +%\fi^^A meta-comment +may be used to test, whether or not a layer named \PName{layer name} is a +member of the layer list of a given page style. If the test is true, the +\PName{then code} will be executed. If the layer is not a member of the layer +list of \PName{page style name}, the \PName{else code} will be executed. + +Commands \Macro{IfSomeLayerAtPageStyle} and \Macro{IfLayersAtPageStyle} do not +only test one layer but several layers at a given, comma separated +\PName{layer list}. \Macro{IfSomeLayerAtPageStyle} will execute the +\PName{then code} if \emph{at least one} of the layers at \PName{layer list} +is a member of the layer list of \PName{page style name}. In difference +\Macro{IfLayersAtPageStyle} executes the \PName{then code} only, if \emph{all} +of the layers at \PName{layer list} are members of the layer list of +\PName{page style name}. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{IfLayersAtPageStyle} +\EndIndex{Cmd}{IfSomeLayersAtPageStyle} +\EndIndex{Cmd}{IfLayerAtPageStyle} +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\DestroyRealLayerPageStyle} +% The command + \Macro{DestroyRealLayerPageStyle}\Parameter{page style name} +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{DestroyRealLayerPageStyle}% +Command \Macro{DestroyRealLayerPageStyle} +%\fi^^A meta-comment +makes the page style named \PName{page style name} undefined, if and only if +it is a layer page style. Nothing will be happen if it is an alias name of a +layer page style, if it is another page style, or if it isn't a page style. If +\PName{page style name} is the name of the current page style the current page +style will become a kind of empty page style. If the special page +style\,---\,this may be set using \Macro{thispagestyle}\,---\,is \PName{page + style name}, this will be simply reset. + +Note, that the layers of the page style won't be destroyed automatically. If +you want to destroy the layers too, you may use +\begin{lstcode} + \ForEachLayerOfPageStyle{...}{\DestroyLayer{#1}} +\end{lstcode} +\emph{before} destroying the layer page style. + +The command is intended to be used inside the auto-remove code of an interface +See following \ref{sec:scrlayer.enduserinterfaces} for more information about +auto-remove code. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{DestroyRealLayerPageStyle} +%\fi^^A meta-comment + + +\section{End User Interfaces} +\label{sec:scrlayer.enduserinterfaces} + +Package \Package{scrlayer} provides an interface to define and manage +(concurrent) end user interfaces. Maybe future releases of \KOMAScript{} will +provide parts of this by package \Package{scrbase}, but currently package +\Package{scrlayer} provides its own interface definition commands. + +This section only describes the interface commands for defining end user +interfaces. This is not of interest for end users, but only for authors of end +user interfaces. End users will find information about the end user interfaces +in the sections about the particular end user interface, e.g., +\autoref{sec:scrlayer.scrpage}. + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\scrlayerInitInterface} +% The command + \Macro{scrlayerInitInterface}\OParameter{interface name} +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{scrlayerInitInterface}% +Command \Macro{scrlayerInitInterface} +%\fi^^A meta-comment +registers a new interface. The \PName{interface name} must be unique. If you +try to initialise an already initialised interface an error will occur. This +command is obligatory and mandatory for interfaces. It should be the first +interface command and therefore has been described first. If the optional +argument is omitted, \PValue{\Macro{@currname}.\Macro{@currext}} will be +used instead. For classes and packages this will be the file name of the class +or package while loading the class or package. But you may use any sequence of +characters with category letter or other. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{scrlayerInitInterface} +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} + \KOption{forceoverwrite}\PName{simple switch}\\ + \KOption{autoremoveinterfaces}\PName{simple switch}\\ +%\fi^^A meta-comment +% \DescribeMacro{\scrlayerAddToInterface} +% \DescribeMacro{\scrlayerAddCsToInterface} +%\iffalse^^A meta-comment + \Macro{scrlayerAddToInterface}% + \OParameter{interface name}\Parameter{command}\Parameter{code}\\ + \Macro{scrlayerAddCsToInterface}% + \OParameter{interface name}\Parameter{command sequence}\Parameter{code} +\end{Declaration} +\BeginIndex{Option}{forceoverwrite}% +\BeginIndex{Option}{autoremoveinterfaces}% +\BeginIndex{Cmd}{scrlayerAddToInterface}% +\BeginIndex{Cmd}{scrlayerAddCsToInterface}% +%\fi^^A meta-comment +One of the special features of end user interfaces is, that they should +register all interface dependent commands (also known as \emph{macros}). You +may do this using \Macro{scrlayerAddToInterface}%^^A +%\OParameter{interface name}\Parameter{command}\Parameter{code}%^^A +. If your interface generates macros not only at load time but also at run +time or if the interface name shouldn't be the class's or package's name, you +have to use the optional argument to add the command to a dedicated +interface. An error will occur, if the interface hasn't been initialised +before. + +The first mandatory argument is the \PName{command}\footnote{The + \PName{command} consists in the backslash followed by a \PName{command + sequence} consisting in characters with category code letter or one other + character, or \PName{command} consists in one active character (without + backslash).}, that should be added to the interface. If the command can be +added to the interface, it will be added to the interface, will be set to +\Macro{relax} and \PName{code} will be executed. You can use, e.g., +\Macro{newcommand}\PName{command} inside of \PName{code} to define +\PName{command}. + +But when can a command be defined? If a command is undefined or \Macro{relax} +it can be defined. If a command has already been defined and registered for +another interface \emph{and} if \KOMAScript{} option +\Option{autoremoveinterface} has been switched on, the other interface will be +removed automatically and the new command will be set to \Macro{relax} and +will be registered for the given interface. If a command +has already been defined but isn't part of another interface \emph{and} if +\KOMAScript{} option \Option{forceoverwrite} has been switched on, the command +will be set to \Macro{relax} and will be registered for the given interface. + +Command \Macro{scrlayerAddCsToInterface} is similar to +\Macro{scrlayerAddToInterface} but doesn't expect a command as first, +mandatory argument, but a command sequence\footnote{A command sequence may + consist of any characters with category code letter or other.}. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{scrlayerAddCsToInterface}% +\EndIndex{Cmd}{scrlayerAddToInterface} +\EndIndex{Option}{autoremoveinterfaces}% +\EndIndex{Option}{forceoverwrite}% +%\fi^^A meta-comment + + +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\scrlayerOnAutoRemoveInterface} +% The command + \Macro{scrlayerOnAutoRemoveInterface}%^^A + \OParameter{interface name}\Parameter{code} +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{scrlayerOnAutoRemoveInterface}% +Command \Macro{scrlayerOnAutoRemoveInterface} +%\fi^^A meta-comment +registers \PName{code} to be executed, if the interface will be automatically +removed (see \Option{autoremoveinterfaces} prior in this section). This may be +used, e.g., to automatically destroy layers or page styles (see +\Macro{DestroyLayer}, \Macro{DestroyAliasPageStyle}, and +\Macro{DestroyRealLayerPageStyle}). +%\iffalse^^A meta-comment +\EndIndex{Cmd}{scrlayerOnAutoRemoveInterface} +%\fi^^A meta-comment + + +%\iffalse +% +%\fi +% +% \StopEventually{} +% +% +% \section{Implementation of \Package{scrlayer}} +% +% This section if for developers only. +% Users may continue at \autoref{sec:scrlayer.scrpage} at +% page~\pageref{sec:scrlayer.scrpage}. +% +% \iffalse +%<*package> +%<*identify> +% \fi +% +%\iffalse^^A meta-comment +% +% +%<*package|interface> +%\fi^^A meta-comment +% +% \subsection{Initialising some Values before the Options} +% +% \iffalse^^A meta-comment +%<*init> +% \fi^^A meta-comment +% +% Initialisation before all options. +% +% While there are \KOMAScript{} options, we need \Package{scrkbase} to declare +% them, but the interfaces also needs \Package{scrlayer} which already +% includes \Package{scrkbase}. +% \begin{macrocode} +%\RequirePackage{scrkbase}[2013/03/05] +%\RequirePackage{scrlayer} +% \end{macrocode} +% +% +% \begin{macro}{\scrlayer@AtEndOfPackage} +% Initial \Macro{AtEndOfPackage}, but after end of package +% \Macro{@firstofone}. +% \begin{macrocode} +\scr@ifundefinedorrelax{scrlayer@AtEndOfPackage}{% + \AtEndOfPackage{\let\scrlayer@AtEndOfPackage\@firstofone}% +}{% + \ifx\scrlayer@AtEndOfPackage\@firstofone + \AtEndOfPackage{\let\scrlayer@AtEndOfPackage\@firstofone}% + \fi +} +\let\scrlayer@AtEndOfPackage\AtEndOfPackage +% \end{macrocode} +% \end{macro}^^A \sls@AtEndOfPackage +% +% \begin{macro}{\scrlayer@testunexpectedarg} +% We'll have several \KOMAScript{} options, that didn't expect an +% value. So we use this general helper to test the value and report an error +% if it is not empty (or \Macro{relax}). +% \begin{macrocode} +%<*package> +\newcommand*{\scrlayer@testunexpectedarg}[2]{% + \ifx\relax#2\relax\else + \PackageError{scrlayer}{unexpected value to `#1'}{% + Option `#1' doesn't expect any value.\MessageBreak + If you'll continue, the value `#2' will be ignored.% + }% + \fi +} +% +% \end{macrocode} +% \end{macro}^^A \scrlayer@testunexpectedarg +% +% \begin{macro}{\if@chapter} +% We need this later. But it is something general. So we initialise it as +% early as possible. +% \begin{macrocode} +%<*package> +\scr@ifundefinedorrelax{if@chapter}{% + \newif\if@chapter + \scr@ifundefinedorrelax{chapter}{\@chapterfalse}{\@chaptertrue}% +}{} +% \end{macrocode} +% \end{macro}^^A \if@chapter +% +% \begin{macro}{\if@mainmatter} +% Some classes define \Macro{frontmatter} or \Macro{mainmatter}, but do not +% define \Macro{if@mainmatter}. But we nee some information about the matter, +% so in that case, we add it. +% \begin{macrocode} +\scr@ifundefinedorrelax{if@mainmatter}{% + \scr@ifundefinedorrelax{mainmatter}{% + \newif\if@mainmatter\@mainmattertrue + }{% + \PackageWarningNoLine{scrlayer}{% + \string\mainmatter\space defined without + \string\if@mainmatter!\MessageBreak + Note, that several packages need + \string\if@mainmatter\space\MessageBreak + to detect whether or no the main matter has been\MessageBreak + entered. So does scrlayer. Because of this\MessageBreak + it will extend \string\mainmatter, now% + }% + \newif\if@mainmatter\@mainmattertrue + \expandafter\def\expandafter\mainmatter\expandafter{% + \expandafter\@mainmattertrue\mainmatter}% + \scr@ifundefinedorrelax{frontmatter}{}{% + \expandafter\def\expandafter\frontmatter\expandafter{% + \expandafter\@mainmatterfalse\frontmatter} + }% + \scr@ifundefinedorrelax{backmatter}{}{% + \expandafter\def\expandafter\backmatter{% + \expandafter\@mainmatterfalse\backmattter}% + }% + }% +}{} +% +% \end{macrocode} +% \end{macro}^^A \if@mainmatter +% +% \iffalse^^A meta-comment +% +% \fi^^A meta-comment +% +% +% \subsection{Process Options} +% +% \iffalse^^A meta-comment +%<*body> +% \fi^^A meta-comment +% +% The very first thing at the body is processing the options: +% \begin{macrocode} +\KOMAProcessOptions\relax +% \end{macrocode} +% +% \subsection{Body Initialisation} +% +% Currently not needed. +% +% \iffalse +% +% \fi +% +% +% \subsection{Extended Running Heads} +% +% Package \Package{scrpage2} changes and extends the running head mechanisms +% of \LaTeX{} and the classes. Most of this are basic features an therefore +% done already by \Package{scrlayer}. But not the deprecated options. +% +% \begin{option}{markcase} +% \begin{description} +% \item[\texttt{=\meta{setting}}] one of: \texttt{upper}, \texttt{lower}, +% \texttt{used}, or \texttt{ignoreuppercase}. +% \end{description}\noindent +% The two options \Option{markuppercase} and \Option{markusedcase} become +% deprecated and are replace be the single option \Option{markcase}. Note, +% that interface \Package{scrlayer-scrpage} has to delay this option to +% overload case setting of option \Option{pagestyleset}. +% \begin{macrocode} +%<*options> +\KOMA@key{markcase}{% +%\scrlayer@AtEndOfPackage{% + \begingroup + \KOMA@set@ncmdkey{markcase}{reserved@a}{% + {upper}{0},{lower}{1},{used}{2},% + {ignoreuppercase}{3},{nouppercase}{3},% + {ignoreupper}{3},{noupper}{3}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \aftergroup\FamilyKeyStateProcessed + \ifnum \reserved@a>\m@ne + \aftergroup\let\aftergroup\MakeMarkcase + \ifcase \reserved@a + \aftergroup\MakeUppercase + \aftergroup\scrlayer@forceignoreuppercasefalse + \or + \aftergroup\MakeLowercase + \aftergroup\scrlayer@forceignoreuppercasefalse + \or + \aftergroup\@firstofone + \aftergroup\scrlayer@forceignoreuppercasefalse + \else + \aftergroup\scrlayer@ignoreuppercase + \aftergroup\scrlayer@forceignoreuppercasetrue + \fi + \fi + \else + \aftergroup\FamilyKeyStateUnknownValue + \fi + \endgroup +%}% +} +%\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @markcase} +% \end{macrocode} +% \begin{macro}{\MakeMarkcase} +% We use this instead of, e.g., \Macro{MakeUppercase} for every layer! So the +% name seams to be wrong, but it is common, so we use it here. +% \begin{macrocode} +%<*package> +\providecommand*{\MakeMarkcase}[1]{#1} +% \end{macrocode} +% \begin{macro}{\scrlayer@ignoreuppercase} +% We span a group and set \Macro{uppercase} and \Macro{MakeUppercase} to +% \Macro{@firstofone}. +% \begin{macrocode} +\DeclareRobustCommand*{\scrlayer@ignoreuppercase}[1]{% + \begingroup + \let\uppercase\@firstofone + \let\MakeUppercase\@firstofone + \expandafter\let\csname MakeUppercase \endcsname\@firstofone + #1% + \endgroup +} +% \end{macrocode} +% This is almost enough, but standard classes still would show upper-case +% letters at table of contents, list of figures, list of tables, index and +% bibliography. So we need an additional workaround. +% \begin{macro}{\ifscrlayer@forceignoreuppercase} +% \begin{macrocode} +\newif\ifscrlayer@forceignoreuppercase +% +% +% \end{macrocode} +% \end{macro}^^A \ifscrlayer@forceignoreuppercase +% \end{macro}^^A \scrlayer@ignoreuppercase +% \end{macro}^^A \MakeMarkcase +% \end{option}^^A markcase +% +% +% \begin{macro}{\headmark} +% Inside a page style, this macro is either \Macro{rightmark} or +% \Macro{leftmark}. Outside its \LaTeX-undefined and therefore it's not an +% interface command, but has to be undefined: +% \begin{macrocode} +%<*package&body> +\@ifundefined{headmark}{}{% + \PackageWarningNoLine{scrlayer}{% + \string\headmark\space detected!\MessageBreak + \string\headmark\space will either be set to + \string\rightmark\MessageBreak + or \string\leftmark inside of page styles.\MessageBreak + This means, that \string\headmark\space will be overwritten\MessageBreak + at every page layer usage!\MessageBreak + Nevertheless it will stay unchanged outside\MessageBreak + of page layers.\MessageBreak + I hope, this won't break your document% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \headmark +% +% \begin{macro}{\pagemark} +% The page number together with its font setting. It's robust and will never +% be part of the interface. +% \begin{macrocode} +%<*package&body> +\@ifundefined{pagemark}{% + \DeclareRobustCommand\pagemark{{\pnumfont{\thepage}}}% +}{}% +% \end{macrocode} +% \begin{macro}{\pnumfont} +% \begin{macro}{\scr@fnt@pagenumber} +% The low-level page number font command. It is deprecated to redefine or use +% this and it may already be defined. These commands will not become part of +% the interface! +% \begin{macrocode} +\@ifundefined{pnumfont}{% + \newcommand{\pnumfont}{\normalfont}% +}{} +\@ifundefined{scr@fnt@pagenumber}{% + \newcommand{\scr@fnt@pagenumber}{\pnumfont}% +}{} +% +% \end{macrocode} +% \end{macro}^^A \scr@fnt@pagenumber +% \end{macro}^^A \pnumfont +% \end{macro}^^A \pagemark +% +% \begin{macro}{\partmarkformat} +% \begin{macro}{\chaptermarkformat} +% \begin{macro}{\sectionmarkformat} +% \begin{macro}{\GenericMarkFormat} +% All the \Macro{\dots markformat} macros of \KOMAScript{} are also +% supported by \Package{scrlayer} and it uses them actively. The generic +% definition has been moved from \Macro{@seccntmarkformat} to +% \Macro{GenericMarkFormat}. This is one more difference to +% \Package{scrpage2}. The defaults are compatible to the standard +% classes. These commands will not become part of the interface and other +% interfaces should redefine them only, if they are not already defined. +% \begin{macrocode} +%<*package&body> +\providecommand*{\partmarkformat}{\partname\ \thepart. \ }% +\if@chapter + \providecommand*{\@chapapp}{\chaptername}% + \providecommand*{\chaptermarkformat}{\@chapapp\ \thechapter. \ }% + \providecommand*{\sectionmarkformat}{\thesection. \ }% +\else + \providecommand*{\sectionmarkformat}{\GenericMarkFormat{section}}% +\fi +\scr@ifundefinedorrelax{@seccntmarkformat}{% + \providecommand*{\GenericMarkFormat}{\@seccntformat}% +}{% + \providecommand*{\GenericMarkFormat}[1]{\@seccntmarkformat{#1}}% +} +% +% \end{macrocode} +% Note, that the other \Macro{\dots markformat} will be defined by +% \Macro{scrlayer@level@init}. +% \end{macro}^^A \GenericMarkFormat +% \end{macro}^^A \sectionmarkformat +% \end{macro}^^A \chaptermarkformat +% \end{macro}^^A \partmarkformat +% +% \begin{macro}{\@mkleft} +% \begin{macro}{\@mkright} +% \begin{macro}{\@mkdouble} +% These are new in \Package{scrlayer}. They may be updated, whenever +% \Macro{@mkboth} will be updated. Otherwise they get a working default +% definition. These commands will not become part of the interface and other +% interfaces should redefine them only, if they are not already defined. +% \begin{macrocode} +%<*package&body> +\providecommand*{\@mkleft}{% + \begingroup + \ifx\@mkboth\markboth \aftergroup\markleft + \else + \ifx\@mkboth\@gobbletwo \aftergroup\@gobble + \else \def\@gobbletwo##1##2{}% + \ifx \@mkboth\@gobbletwo \aftergroup\@gobble + \else + \PackageWarning{scrlayer}{% + package incompatibility detected!\MessageBreak + \string\@mkboth it neither \string\markboth nor any\MessageBreak + kind of two arguments gobbling,\MessageBreak + e.g., \string\@gobbletwo.\MessageBreak + So I don't known, what to do\MessageBreak + with \string\@mkleft.\MessageBreak + Nevertheless, \string\markleft\space will be\MessageBreak + used% + }% + \aftergroup\markleft + \fi + \fi + \fi + \endgroup +}% +\providecommand*{\@mkright}{% + \begingroup + \ifx\@mkboth\markboth \aftergroup\markright + \else + \ifx\@mkboth\@gobbletwo \aftergroup\@gobble + \else \def\@gobbletwo##1##2{}% + \ifx \@mkboth\@gobbletwo \aftergroup\@gobble + \else + \PackageWarning{scrlayer}{% + package incompatibility detected!\MessageBreak + \string\@mkboth it neither \string\markboth nor any\MessageBreak + kind of two arguments gobbling,\MessageBreak + e.g., \string\@gobbletwo.\MessageBreak + So I don't known, what to do\MessageBreak + with \string\@mkright.\MessageBreak + Nevertheless, \string\markright\space will be\MessageBreak + used% + }% + \aftergroup\markright + \fi + \fi + \fi + \endgroup +}% +\providecommand*{\@mkdouble}[1]{% + \@mkboth{#1}{#1}% +} +% +% \end{macrocode} +% \end{macro}^^A \@mkdouble +% \end{macro}^^A \@mkright +% \end{macro}^^A \@mkleft +% +% \begin{macro}{\markleft} +% \begin{macro}{\@markleft} +% \LaTeX{} itself provides \Macro{markboth} and \Macro{markright} but not +% \Macro{markleft}. So we add it. +% \begin{macrocode} +%<*package&body> +\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}^^A \@markleft +% \end{macro}^^A \markleft +% +% +% \begin{option}{autooneside} +% \begin{macro}{\ifscrlayer@autooneside} +% Decide whether or not use the optional argument of \Macro{automark} in +% single-side layout. +% \begin{macrocode} +%<*options> +\KOMA@ifkey{autooneside}{scrlayer@autooneside}\scrlayer@autoonesidetrue +%\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @autooneside} +% +% \end{macrocode} +% \end{macro}^^A \ifscrlayer@autooneside +% \end{option}^^A autooneside +% +% +% \begin{option}{automark} +% \begin{option}{manualmark} +% Maybe we will extend these options later. Currently they do almost the +% same they do at \Package{scrpage2}. The difference is, that single-side or +% two-side doesn't matter here (but it does inside of the definitions of the +% marks itself). +% ToDo: Maybe \Option{manualmark} should become deprecated and +% \Option{automark} should have simple values or a new option, that also +% handles \Option{autooneside}? +% \begin{macrocode} +%<*options> +\KOMA@key{automark}[]{% + \scrlayer@testunexpectedarg{automark}{#1}% + \scrlayer@AtEndOfPackage{% + \if@chapter + \automark[section]{chapter}% + \else + \automark[subsection]{section}% + \fi + }% + \FamilyKeyStateProcessed +} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @automark} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @automark@default} +% +\KOMA@key{manualmark}[]{% + \scrlayer@testunexpectedarg{manualmark}{#1}% + \scrlayer@AtEndOfPackage{\manualmark}% + \FamilyKeyStateProcessed +} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @manualmark} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @manualmark@default} +% +% +% \end{macrocode} +% \end{option}^^A manualmark +% \end{option}^^A automark +% +% \begin{macro}{\manualmark} +% Switch to manual marks. This resets \Macro{@mkleft}, \Macro{@mkright}, +% \Macro{@mkdouble}, \Macro{@mkboth} and the \Macro{\dots mark} of all known +% levels. +% \begin{macrocode} +%<*package&body> +\newcommand*{\manualmark}{% + \begingroup + \def\@elt##1{% + \aftergroup\let\expandafter\aftergroup\csname ##1mark\endcsname + \aftergroup\@gobble + }% + \scrlayer@level@list + \endgroup + \let\@mkleft\@gobble + \let\@mkright\@gobble + \let\@mkdouble\@gobble + \let\@mkboth\@gobbletwo +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\automark} +% \begin{macro}{\@automark} +% This is the brain knot of the game! I'll try to explain, what I'm doing: +% First of all the new starred version of \Macro{automark} doesn't reset the +% mark commands. So it works cumulatively. This may be useful e.g. to have +% chapter marks as long as no section marks have been made etc. +% \begin{macrocode} +%<*package&body> +\newcommand*{\automark}{% + \@ifstar{\@automark}{\manualmark\@automark}% +} +\newcommand*{\@automark}[2][]{% + \ifstr{#2}{}{% + \ifstr{#1}{}{% +% \end{macrocode} +% \Macro{automark[]{}} or \Macro{automark{}} has been used. This will activate +% the low level mark commands, but doesn't change the high level commands. It +% may be useful or may not, the user should know what he does: +% \begin{macrocode} + \automark@basics + }{% +% \end{macrocode} +% \Macro{automark[\dots]{}} has been used. This will activate the higher level +% mark commands and also set up the right mark +% \begin{macrocode} + \automark@basics + \automark@righthigh{#1}% + }% + }{% + \ifstr{#1}{}{% +% \end{macrocode} +% \Macro{automark[]{\dots}} or \Macro{automark{\dots}} has been used. This +% will activate the low level mark commands and also set up either the left or +% both marks. +% \begin{macrocode} + \automark@basics + \automark@leftlow{#2}% + }{% +% \end{macrocode} +% \Macro{automark[\dots]{\dots}} has been used. This will activate the low +% level mark commands and also both high level marks. +% \begin{macrocode} + \automark@basics + \automark@both{#1}{#2}% + }% + }% +} +% \end{macrocode} +% \begin{macro}{\automark@basics} +% Activate all low level \Macro{@mk\dots} commands: +% \begin{macrocode} +\newcommand*{\automark@basics}{% + \let\@mkleft\markleft + \let\@mkright\markright + \let\@mkboth\markboth + \def\@mkdouble##1{\@mkboth{##1}{##1}}% +} +% \end{macrocode} +% \end{macro}^^A \automark@basics +% \begin{macro}{\automark@righthigh} +% Set up the right mark of a higher level, but in single-side layout only if +% \Option{autooneside} hasn't been used. Note, that with this definition no +% special handling for \KOMAScript's \Macro{addchap} and \Macro{addsec} is +% needed. +% \begin{macrocode} +\newcommand*{\automark@righthigh}[1]{% + \ifscrlayer@level@prepared{#1}{% + \expandafter\def\csname #1mark\endcsname##1{% + \begingroup + \@tempswafalse + \if@twoside\@tempswatrue + \else\ifscrlayer@autooneside\else\@tempswatrue\fi\fi + \expandafter\endgroup + \if@tempswa + \@mkright{% + \MakeMarkcase{% + \ifnum \c@secnumdepth<\numexpr \csname #1level\endcsname +0\relax + \else\if@mainmatter \csname #1markformat\endcsname\fi\fi + ##1% + }% + }% + \fi + }% + }{}% +} +% \end{macrocode} +% \end{macro}^^A \automark@righthigh +% \begin{macro}{\automark@leftlow} +% Set up the left mark of a low level, but in single-side layout the right +% mark has to be used. +% \begin{macrocode} +\newcommand*{\automark@leftlow}[1]{% + \ifscrlayer@level@prepared{#1}{% + \expandafter\def\csname #1mark\endcsname ##1{% + \if@twoside +% \end{macrocode} +% In two-side mode the left high mark has also to clear the right low +% mark. This would be unwanted, if the left mark is a low mark and the right +% mark is a high mark. But we cannot detect this if no right mark level has +% been given. So we simply use: +% \begin{macrocode} + \expandafter\@mkboth + \else +% \end{macrocode} +% In single-side mode there's no left high mark without a right low mark. So +% instead of only a left high mark, we set up both marks. +% \begin{macrocode} + \expandafter\@mkdouble + \fi + {% + \MakeMarkcase{% + \ifnum \c@secnumdepth<\numexpr \csname #1level\endcsname +0\relax + \else\if@mainmatter \csname #1markformat\endcsname\fi\fi + ##1% + }% + }\@empty + }% + }{}% +} +% \end{macrocode} +% \end{macro}^^A \automark@leftlow +% \begin{macro}{\automark@both} +% Set up both marks, but in single-side layout depending on +% \Option{autooneside}. +% \begin{macrocode} +\newcommand*{\automark@both}[2]{% + \ifscrlayer@level@prepared{#1}{% + \ifscrlayer@level@prepared{#2}{% + \ifnum \numexpr \csname #1level\endcsname +0\relax + > \numexpr \csname #2level\endcsname +0\relax +% \end{macrocode} +% Level of left mark is greater than level of right mark. e.g., section > +% chapter. This is unusual. Nevertheless we'll handle it. +% \begin{macrocode} + \automark@leftlow{#2}% + \automark@righthigh{#1}% + \else \ifnum \numexpr \csname #1level\endcsname +0\relax + = \numexpr \csname #2level\endcsname +0\relax +% \end{macrocode} +% Level of left mark is equal to level of right mark. This is +% nice and very easy to handle. +% \begin{macrocode} + \expandafter\def\csname #2mark\endcsname##1{% + \@mkdouble{% + \MakeMarkcase{% + \ifnum \c@secnumdepth<\numexpr + \csname #2level\endcsname +0\relax + \else + \if@mainmatter \csname #2markformat\endcsname\fi + \fi + ##1% + }% + }% + }% + \else +% \end{macrocode} +% Level of left mark is less than level of right mark. This is +% usual. +% \begin{macrocode} + \expandafter\def\csname #1mark\endcsname##1{% + \begingroup + \@tempswafalse + \if@twoside\@tempswatrue + \else\ifscrlayer@autooneside\else\@tempswatrue\fi\fi + \expandafter\endgroup + \if@tempswa + \@mkleft{% + \MakeMarkcase{% + \ifnum \c@secnumdepth + < \numexpr\csname #1level\endcsname +0\relax + \else + \if@mainmatter \csname #1markformat\endcsname\fi + \fi + ##1% + }% + }% + \fi + }% + \expandafter\def\csname #2mark\endcsname##1{% + \@mkboth{}{% + \MakeMarkcase{% + \ifnum \c@secnumdepth + < \numexpr \csname #2level\endcsname +0\relax + \else\if@mainmatter \csname #2markformat\endcsname\fi\fi + ##1% + }% + }% + }% + \fi + \fi + }{}% + }{}% +} +% \end{macrocode} +% \begin{macro}{\ifscrlayer@level@prepared} +% Test, whether or not this level has been prepared. +% \begin{macrocode} +\newcommand*{\ifscrlayer@level@prepared}[1]{% + \typeout{1: \detokenize{#1}}% + \scr@ifundefinedorrelax{#1level}{% + \PackageError{scrlayer}{numbering depth of `#1' unknown}{% + Someone told me to use a section mark for level `#1',\MessageBreak + but the numbering depth hasn't been declared before. You may solve this + using\MessageBreak + \string\DeclareSectionNumberDepth{#1}{NUMBER}.% + }% + \@secondoftwo + }{% + \@firstoftwo + }% +} +% +% \end{macrocode} +% \end{macro}^^A \ifscrlayer@level@prepared +% \end{macro}^^A \automark@both +% \end{macro}^^A \@automark +% \end{macro}^^A \automark +% +% \begin{macro}{\DeclareSectionNumberDepth} +% \begin{description} +% \item[\Parameter{string}:] the name of the section level, e.g., +% part, chapter, section etc. (must be fully +% expandable and expand to a string). +% \item[\Parameter{numeric expression}:] the section number depth of the +% level, e.g., -1 for part, 0 for chapter etc. +% \end{description} +% Note that levels part, chapter, section, subsection, sub\dots subsection, +% paragraph, subparagraph, sub\dots subparagraph, minisec, subminisec, +% sub\dots subminisec will be recognised either at load time or at +% \Macro{begin}\PParameter{document} automatically if they have the usual +% levels. +% \begin{macrocode} +%<*package&body> +\newcommand*{\DeclareSectionNumberDepth}[2]{% + \expandafter\edef\csname #1level\endcsname{\the\numexpr #2\relax}% + \@ifundefined{#1mark}{% + \expandafter\let\csname #1mark\endcsname\@gobble + }{}% + \@ifundefined{#1markformat}{% + \@namedef{#1markformat}{\GenericMarkFormat{#1}}% + }{}% + \begingroup + \@tempswatrue + \def\@elt##1{\ifstr{#1}{##1}{\@tempswafalse}{}}% + \scrlayer@level@list + \if@tempswa + \aftergroup\@firstofone + \else + \aftergroup\@gobble + \fi + \endgroup + {% + \l@addto@macro\scrlayer@level@list{\@elt{#1}}% + }% +} +% \end{macrocode} +% \begin{macro}{\scrlayer@level@list} +% \begin{macro}{\scrlayer@level@init} +% Stores all the existing levels. +% \begin{macrocode} +\newcommand*{\scrlayer@level@list}{} +% \end{macrocode} +% Usually all levels are known on loading this package, but if a package +% defines additional levels later we'll do an additional test at +% \Macro{begin}\PParameter{document}. But we do not redo the part and the +% chapter test. +% \begin{macrocode} +\scr@ifundefinedorrelax{part}{}{% + \DeclareSectionNumberDepth{part}{-1}% +} +\if@chapter + \DeclareSectionNumberDepth{chapter}{0}% +\fi +\newcommand*{\scrlayer@level@init}{% + \@tempcnta=1 + \def\reserved@b##1{% + \@tempswatrue + \def\reserved@a{##1}% + \@whilesw \if@tempswa \fi {% + \scr@ifundefinedorrelax{\reserved@a}{% + \@tempswafalse + }{% + \@ifundefined{\reserved@a level}{% + \expandafter\DeclareSectionNumberDepth + \expandafter{\reserved@a}{\@tempcnta}% + }{}% + \advance \@tempcnta by \@ne + \edef\reserved@a{sub\reserved@a}% + }% + }% + }% + \reserved@b{section}% + \reserved@b{paragraph}% + \reserved@b{minisec}% +} +\scrlayer@level@init +\AtBeginDocument{% + \scrlayer@level@init +} +% +% \end{macrocode} +% \end{macro}^^A \scrlayer@level@init +% \end{macro}^^A \scrlayer@level@list +% \end{macro}^^A DeclareSectionNumberDepth +% +% +% \subsection{Providing Layers} +% +% A layer is a virtual sheet of paper stacked behind or above the real sheet +% of paper. All the virtual and real sheets of one page may been seen +% simultanous, but material o one sheet may overlap material on sheets below. +% Layers provided by \Package{scrlayer} will not be stacked below or above +% real sheets unless they are used by a page style. +% +% While we use \meta{key}\texttt{=}\meta{value} arguments for several of the +% layer commands we define a new family with a new member: +% \begin{macrocode} +%<*package&body> +\DefineFamily{KOMAarg} +\DefineFamilyMember[.definelayer]{KOMAarg} +% +% \end{macrocode} +% +% \begin{macro}{\DeclareLayer} +% \begin{description} +% \item[\OParameter{option list}:] a comma separated list of +% \texttt{\meta{key}=\meta{value}} pairs. +% \item[\Parameter{string}:] the name of the layer (must be fully expandable +% and expand to a string only). +% \end{description} +% Layers are the basic elements of page styles. A layer has a name and several +% attributes. The attributes may be set as comma separated list at the first, +% optional argument of \cs{DeclareLayer}. The name must be set by the second, +% mandatory argument. +% \begin{macro}{\def@scr@l@pos} +% And a second helper macro to easily define $x, y, w, h$ of a layer. +% \begin{macrocode} +%<*package&body> +\newcommand*{\def@scr@l@pos}[4]{% + \@namedef{scr@l@\scr@current@layer @x}{#1}% + \@namedef{scr@l@\scr@current@layer @y}{#2}% + \@namedef{scr@l@\scr@current@layer @w}{#3}% + \@namedef{scr@l@\scr@current@layer @h}{#4}% +} +% \end{macrocode} +% \end{macro}^^A \def@scr@l@pos +% +% There are basic attributes and compounding attributes. The basic attributes +% are: +% \begin{description} +% \item[\texttt{hoffset=\meta{dimension expression}}:] offset from the left +% edge of the paper. +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{hoffset}{% + \@namedef{scr@l@\scr@current@layer @x}{\dimexpr #1\relax}% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \item[\texttt{voffset=\meta{dimension expression}}:] offset from the top +% edge of the paper. +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{voffset}{% + \@namedef{scr@l@\scr@current@layer @y}{\dimexpr #1\relax}% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \item[\texttt{width=\meta{dimension expression}}:] width of the layer. +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{width}{% + \@namedef{scr@l@\scr@current@layer @w}{\dimexpr #1\relax}% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \item[\texttt{height=\meta{dimension expression}}:] height of the layer. +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{height}{% + \@namedef{scr@l@\scr@current@layer @h}{\dimexpr #1\relax}% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \item[\texttt{align=\meta{specification}}:] horizontal and vertical +% alignment of the layer. The \meta{specification} will interpreted +% character by character with the following valid characters: +% \begin{itemize} +% \item[l] -- align the layer with its left edge to the given horizontal +% offset. This means, that the layer's width will span right from the +% given horizontal offset. +% \item[r] -- align the layer with its right edge to the given horizontal +% offset. This means, that the layer's width will span left from the given +% horizontal offset. +% \item[c] -- align the layer centered to the given horizontal and vertical +% offset. This means, that the given offsets are at the middle of the +% layer width and total height. +% \item[t] -- align the layer with its top edge to the given vertical +% offset. This means that the layer's contents will span below the given +% vertical offset. +% \item[b] -- align the layer with its bottom edge to the given vertical +% offset. This means, that the layer's contents will span above the given +% vertical offset. +% \end{itemize} +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{align}{% + \@namedef{scr@l@\scr@current@layer @align}{#1}% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \item[\texttt{contents=\meta{output}}:] whatever should be printed by the +% layer. +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{contents}{% + \@namedef{scr@l@\scr@current@layer @contents}{#1}% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \item[\texttt{background}:] restrict the layer to the page +% background. This means, that the main contents of the page may overprint +% the contents of the layer. Note, that this attribute has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{background}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{background}{#1}% + \csname @scr@l@\scr@current@layer @backgroundtrue\endcsname + \csname @scr@l@\scr@current@layer @foregroundfalse\endcsname +} +% \end{macrocode} +% \item[\texttt{foreground}:] restrict the layer to the page +% foreground. This means, that the layer's contents may overprint the main +% contents of the page. Note, that this attribute has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{foreground}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{foreground}{#1}% + \csname @scr@l@\scr@current@layer @backgroundfalse\endcsname + \csname @scr@l@\scr@current@layer @foregroundtrue\endcsname +} +% \end{macrocode} +% \item[\texttt{oddpage}:] restrict the layer to odd pages only. At +% two-sided layout only pages with odd page numbers are odd pages. At +% single-sided layout all pages are odd pages. Note, that this attribute has +% no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{oddpage}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{oddpage}{#1}% + \csname @scr@l@\scr@current@layer @oddtrue\endcsname + \csname @scr@l@\scr@current@layer @evenfalse\endcsname +} +% \end{macrocode} +% \item[\texttt{evenpage}:] restrict the layer to even pages only. At +% two-sided layout only pages with even page numbers are even pages. At +% single-sided layout there aren't even pages. Note, that this attribute has +% no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{evenpage}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{evenpage}{#1}% + \csname @scr@l@\scr@current@layer @oddfalse\endcsname + \csname @scr@l@\scr@current@layer @eventrue\endcsname +} +% \end{macrocode} +% \item[\Option{floatpage}:] restrict the layer to float pages. +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{floatpage}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{floatpage}{#1}% + \csname @scr@l@\scr@current@layer @nonfloatpagefalse\endcsname + \csname @scr@l@\scr@current@layer @floatpagetrue\endcsname +} +% \end{macrocode} +% \item[\Option{nonfloatpage}:] restrict the layer to pages, which aren't +% float pages. +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{nonfloatpage}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{twoside}{#1}% + \csname @scr@l@\scr@current@layer @nonfloatpagetrue\endcsname + \csname @scr@l@\scr@current@layer @floatpagefalse\endcsname +} +% \end{macrocode} +% \item[\Option{oneside}:] restrict the layer to pages on single-sided +% layouts. +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{oneside}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{oneside}{#1}% + \csname @scr@l@\scr@current@layer @twosidefalse\endcsname + \csname @scr@l@\scr@current@layer @onesidetrue\endcsname +} +% \end{macrocode} +% \item[\Option{twoside}:] restrict the layer to pages on two-sided +% layouts. +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{twoside}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{twoside}{#1}% + \csname @scr@l@\scr@current@layer @twosidetrue\endcsname + \csname @scr@l@\scr@current@layer @onesidefalse\endcsname +} +% \end{macrocode} +% \end{description} +% +% Compounding attributes are attributes, that set up several basic attributes +% with a single compounding attribute: +% \begin{description} +% \item[\texttt{page}:] set up \texttt{hoffset}, \texttt{voffset}, +% \texttt{width}, and \texttt{height} to values spanning the whole +% page aligned by the default alignment \texttt{tl}. Note, that this +% attribute has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{page}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{page}{#1}% + \def@scr@l@pos{\z@}{\z@}{\paperwidth}{\paperheight}% + \@namedef{scr@l@\scr@current@layer @align}{tl}% +} +% \end{macrocode} +% \item[\texttt{topmargin}:] set up \texttt{hoffset}, \texttt{voffset}, +% \texttt{width}, and \texttt{height} to values vertically spanning the top +% margin of the page and horizontally spanning the whole page aligned by the +% default alignment \texttt{tl}. Note, that this attribute has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{topmargin}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{topmargin}{#1}% + \def@scr@l@pos{\z@}{\z@}{\paperwidth}{\dimexpr \topmargin+1in\relax}% + \@namedef{scr@l@\scr@current@layer @align}{tl}% +} +% \end{macrocode} +% \item[\texttt{head}:] set up \texttt{hoffset}, \texttt{voffset}, +% \texttt{width}, and \texttt{height} to values vertically spanning the page +% head and horizontally spanning the text area aligned by usual head +% alignment \texttt{bl}. Note, that this attribute has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{head}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{head}{#1}% + \def@scr@l@pos{% + \dimexpr + \if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi + \else\oddsidemargin\fi + +1in + \relax + }{% + \dimexpr \topmargin+1in+\headheight\relax + }{\textwidth}{\headheight}% + \@namedef{scr@l@\scr@current@layer @align}{bl}% +} +% \end{macrocode} +% \item[\texttt{headsep}:] set up \texttt{hoffset}, \texttt{voffset}, +% \texttt{width}, and \texttt{height} to values vertically spanning the area +% between page head and text area and horizontally spanning the text area +% aligned by the default alignment \texttt{t}. Note, that this attribute +% has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{headsep}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{head}{#1}% + \def@scr@l@pos{% + \dimexpr + \if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi + \else\oddsidemargin\fi + +1in + \relax + }{% + \dimexpr \topmargin+1in+\headheight\relax + }{\textwidth}{\headsep}% + \@namedef{scr@l@\scr@current@layer @align}{tl}% +} +% \end{macrocode} +% \item[\texttt{textarea}:] set up \texttt{hoffset}, \texttt{voffset}, +% \texttt{width}, and \texttt{height} to values spanning the text area of +% the page aligned by the default alignment \texttt{t}. Note, that this +% attribute has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{textarea}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{textarea}{#1}% + \def@scr@l@pos{% + \dimexpr + \if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi + \else\oddsidemargin\fi + +1in + \relax + }{% + \dimexpr \topmargin+1in+\headheight+\headsep\relax + }{\textwidth}{\textheight}% + \@namedef{scr@l@\scr@current@layer @align}{tl}% +} +% \end{macrocode} +% \item[\texttt{foot}:] set up \texttt{hoffset}, \texttt{voffset}, +% \texttt{width}, and \texttt{height} to values vertically spanning the page +% footer and horizontally spanning the text area aligned by the usual footer +% alignment \texttt{t}. Note, that this attribute has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{foot}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{foot}{#1}% + \def@scr@l@pos{% + \dimexpr + \if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi + \else\oddsidemargin\fi + +1in + \relax + }{% + \dimexpr \topmargin+1in+\headheight+\headsep+\textheight + +\footskip+\dp\strutbox-\footheight\relax + }{\textwidth}{\footheight}% + \@namedef{scr@l@\scr@current@layer @align}{tl}% +} +% \end{macrocode} +% \item[\texttt{footskip}:] set up \texttt{hoffset}, \texttt{voffset}, +% \texttt{width}, and \texttt{height} to values vertically spanning the +% distance from the text area to the page +% footer and horizontally spanning the text area aligned by the usual footer +% alignment \texttt{t}. Note, that this attribute has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{footskip}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{foot}{#1}% + \def@scr@l@pos{% + \dimexpr + \if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi + \else\oddsidemargin\fi + +1in + \relax + }{% + \dimexpr \topmargin+1in+\headheight+\headsep+\textheight\relax + }{\textwidth}{\dimexpr\footskip+\dp\strutbox-\footheight\relax}% + \@namedef{scr@l@\scr@current@layer @align}{tl}% +} +% \end{macrocode} +% \item[\texttt{bottommargin}:] set up \texttt{hoffset}, \texttt{voffset}, +% \texttt{width}, and \texttt{height} to values vertically spanning the +% page's bottom margin below the footer and horizontally spanning the page +% by the default alignment \texttt{t}. Note, that this attribute has no +% value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{bottommargin}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{bottommargin}{#1}% + \def@scr@l@pos{\z@}{% + \dimexpr \topmargin+1in+\headheight+\headsep + +\textheight + +\footskip+\dp\strutbox\relax + }{\paperwidth}{\dimexpr\paperheight-\layeryoffset\relax}% + \@namedef{scr@l@\scr@current@layer @align}{tl}% +} +% \end{macrocode} +% \item[\texttt{leftmargin}:] set up \texttt{hoffset}, \texttt{voffset}, +% \texttt{width}, and \texttt{height} to values vertically spanning the page +% and horizontally spanning the left margin of the page by the default +% alignment \texttt{t}. Note, that this attribute has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{leftmargin}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{leftmargin}{#1}% + \def@scr@l@pos{\z@}{\z@}{% + \dimexpr + \if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi + \else\oddsidemargin\fi + +1in + \relax + }{\paperheight}% + \@namedef{scr@l@\scr@current@layer @align}{tl}% +} +% \end{macrocode} +% \item[\texttt{rightmargin}:] set up \texttt{hoffset}, \texttt{voffset}, +% \texttt{width}, and \texttt{height} to values vertically spanning the page +% and horizontally spanning the right margin of the page by the default +% alignment \texttt{t}. Note, that this attribute has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{rightmargin}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{rightmargin}{#1}% + \def@scr@l@pos{\paperwidth}{\z@}{% + \dimexpr \paperwidth-1in-\textwidth + -\if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi + \else\oddsidemargin\fi\relax + }{\paperheight}% + \@namedef{scr@l@\scr@current@layer @align}{tr}% +} +% \end{macrocode} +% \item[\texttt{innermargin}:] set up \texttt{hoffset}, \texttt{voffset}, +% \texttt{width}, and \texttt{height} to values vertically spanning the page +% and horizontally spanning the right margin of even pages and the left +% margin of odd pages by the default alignment \texttt{t}. See attributes +% \texttt{oddpage} and \texttt{evenpage} for more information about odd and +% even pages. Note, that this attribute has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{innermargin}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{innermargin}{#1}% + \def@scr@l@pos{% + \if@twoside + \ifodd\value{page} \z@ + \else \dimexpr \evensidemargin+1in+\textwidth\relax + \fi + \else \z@\fi + }{\z@}{% + \dimexpr + \if@twoside\ifodd\value{page} \oddsidemargin+1in + \else \paperwidth-\layerxoffset\fi + \else \oddsidemargin+1in\fi + \relax + }{\paperheight}% + \@namedef{scr@l@\scr@current@layer @align}{tl}% +} +% \end{macrocode} +% \item[\texttt{outermargin}:] set up \texttt{hoffset}, \texttt{voffset}, +% \texttt{width}, and \texttt{height} to values vertically spanning the page +% and horizontally spanning the left margin of even pages and the right +% margin of odd pages by the default alignment \texttt{t}. See attributes +% \texttt{oddpage} and \texttt{evenpage} for more information about odd and +% even pages. Note, that this attribute has no value! +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{outermargin}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{outermargin}{#1}% + \def@scr@l@pos{% + \dimexpr + \if@twoside\ifodd\value{page} \oddsidemargin+1in+\textwidth + \else \z@\fi + \else \oddsidemargin+1in+\textwidth\fi + \relax + }{\z@}{% + \dimexpr + \if@twoside\ifodd\value{page}\paperwidth-\layerxoffset + \else \evensidemargin+1in\fi + \else \paperwidth-\layerxoffset\fi + \relax + }{\paperheight}% + \@namedef{scr@l@\scr@current@layer @align}{tl}% +} +% \end{macrocode} +% \item[\texttt{area=\{\meta{hoffset}\}\{\meta{voffset}\}^^A +% \{\meta{width}\}\{\meta{height}\}}:] set up +% \texttt{hoffset}, \texttt{voffset}, \texttt{width}, and \texttt{height} to +% the given values. +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{area}{% + \def@scr@l@pos#1 + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \item[\texttt{clone=\meta{layer}}:] set up the new layer by the settings +% of the given \meta{layer}. +% \begin{macrocode} +\DefineFamilyKey[.definelayer]{KOMAarg}{clone}{% + \scr@ifundefinedorrelax{scr@l@#1@x}{% + \FamilyKeyStateUnknownValue + \PackageError{scrlayer}{layer `#1' undefined}{% + You can clone only already defined layers.\MessageBreak + If you'll continue, `clone=#1' will be ignored.% + }% + }{% + \FamilyKeyStateProcessed + \scrlayer@clone@attribute{\scr@current@layer}{#1}{x}% + \scrlayer@clone@attribute{\scr@current@layer}{#1}{y}% + \scrlayer@clone@attribute{\scr@current@layer}{#1}{w}% + \scrlayer@clone@attribute{\scr@current@layer}{#1}{h}% + \scrlayer@clone@attribute{\scr@current@layer}{#1}{align}% + \scrlayer@clone@attribute{\scr@current@layer}{#1}{contents}% + \scrlayer@clone@switch{\scr@current@layer}{#1}{background}% + \scrlayer@clone@switch{\scr@current@layer}{#1}{foreground}% + \scrlayer@clone@switch{\scr@current@layer}{#1}{odd}% + \scrlayer@clone@switch{\scr@current@layer}{#1}{even}% + \scrlayer@clone@switch{\scr@current@layer}{#1}{oneside}% + \scrlayer@clone@switch{\scr@current@layer}{#1}{twoside}% + \scrlayer@clone@switch{\scr@current@layer}{#1}{floatpage}% + \scrlayer@clone@switch{\scr@current@layer}{#1}{nonfloatpage}% + }% +} +% \end{macrocode} +% \begin{macro}{\scrlayer@clone@attribute} +% \begin{macro}{\scrlayer@clone@switch} +% Two helpers used to at option \texttt{clone} to clone either a macro-based +% attribute or a if-based attribute. +% \begin{macrocode} +\newcommand*{\scrlayer@clone@attribute}[3]{% + \expandafter\let\csname scr@l@#1@#3\expandafter\endcsname + \csname scr@l@#2@#3\expandafter\endcsname +} +\newcommand*{\scrlayer@clone@switch}[3]{% + \expandafter\let\csname if@scr@l@#1@#3\expandafter\endcsname + \csname if@scr@l@#2@#3\expandafter\endcsname +} +% \end{macrocode} +% \end{macro}^^A \scrlayer@clone@switch +% \end{macro}^^A \scrlayer@clone@attribute +% \end{description} +% +% \begin{macrocode} +\newcommand*{\DeclareLayer}[2][]{% + \def\scr@current@layer{#2}% + \@namedef{scr@l@#2@x}{\z@}% + \@namedef{scr@l@#2@y}{\z@}% + \@namedef{scr@l@#2@w}{\paperwidth}% + \@namedef{scr@l@#2@h}{\paperheight}% + \@namedef{scr@l@#2@align}{tl}% + \@namedef{scr@l@#2@contents}{}% + \expandafter\newif\csname if@scr@l@#2@background\endcsname + \csname @scr@l@#2@backgroundtrue\endcsname + \expandafter\newif\csname if@scr@l@#2@foreground\endcsname + \csname @scr@l@#2@foregroundtrue\endcsname + \expandafter\newif\csname if@scr@l@#2@odd\endcsname + \csname @scr@l@#2@oddtrue\endcsname + \expandafter\newif\csname if@scr@l@#2@even\endcsname + \csname @scr@l@#2@eventrue\endcsname + \expandafter\newif\csname if@scr@l@#2@oneside\endcsname + \csname @scr@l@#2@onesidetrue\endcsname + \expandafter\newif\csname if@scr@l@#2@twoside\endcsname + \csname @scr@l@#2@twosidetrue\endcsname + \expandafter\newif\csname if@scr@l@#2@floatpage\endcsname + \csname @scr@l@#2@floatpagetrue\endcsname + \expandafter\newif\csname if@scr@l@#2@nonfloatpage\endcsname + \csname @scr@l@#2@nonfloatpagetrue\endcsname + \FamilyExecuteOptions[.definelayer]{KOMAarg}{#1}% +} +% \end{macrocode} +% \begin{macro}{\scr@current@layer} +% Helper to hold the current layer and only valid in non recursive calls of +% \Macro{DeclareLayer}. +% \begin{macrocode} +\newcommand*{\scr@current@layer}{} +% +% \end{macrocode} +% \end{macro}^^A \scr@current@layer +% \end{macro}^^A \DeclareLayer +% +% \begin{macro}{\IfLayerExists} +% \begin{description} +% \item[\Parameter{string}:] the name of the layer (must be fully expandable +% and expand to a string only). +% \item[\Parameter{then code}:] will be executed, if the layer exists. +% \item[\Parameter{else code}:] will be executed, if the layer doesn't exist. +% \end{description} +% Note, that we don't known really whether or not a layer exists, but have a +% heuristic. +% \begin{macrocode} +%<*package&body> +\newcommand*{\IfLayerExists}[1]{% + \scr@ifundefinedorrelax{scr@l@#1@x}{% + \expandafter\@secondoftwo + }{% + \expandafter\@firstoftwo + }% +} +% +% \end{macrocode} +% \end{macro}%^^A \IfLayerExists +% +% \begin{macro}{\DeclareNewLayer} +% \begin{macro}{\ProvideLayer} +% \begin{macro}{\RedeclareLayer} +% \begin{macro}{\ModifyLayer} +% There are also two commands for declaration of layers, that haven't been +% declared before, with or without error message for already declared layers, +% and two commands for changing already declared layers, first one beginning +% again from scratch, second one for only setting up attributes, that should +% be changed. +% \begin{macrocode} +%<*package&body> +\newcommand*{\DeclareNewLayer}[2][]{% + \IfLayerExists{#2}{% + \PackageError{scrlayer}{layer `#2' already defined}{% + You may declare only layer, that haven't been declared previously + using\MessageBreak + \string\DeclareNewLayer. See also the alternatives + \string\RedeclareLayer,\MessageBreak + \string\ModifyLayer\space and \string\ProvideLayer.\MessageBreak + If you'll continue, declaration will be ignored.}% + }{\DeclareLayer[{#1}]{#2}}% +} +\newcommand*{\ProvideLayer}[2][]{% + \IfLayerExists{#2}{% +%<*trace> + \PackageInfo{scrlayer}{\string\ProvideLayer{#2} ignored,\MessageBreak + because of already defined layer}% +% + }{\DeclareNewLayer[{#1}]{#2}}% +} +\newcommand*{\RedeclareLayer}[2][]{% + \IfLayerExists{#2}{}{% + \PackageError{scrlayer}{layer `#2' not yet defined}{% + You may declare only already declared layers using + \string\RedeclareLayer.\MessageBreak + See also the alternatives + \string\DeclareLayer and \string\ProvideLayer.\MessageBreak + Nevertheless, if you'll continue, declaration will be done.}% + }% + \DeclareLayer[{#1}]{#2}% +} +\newcommand*{\ModifyLayer}[2][]{% + \IfLayerExists{#2}{% + \FamilyExecuteOptions[.definelayer]{KOMAarg}{#1}% + }{% + \PackageError{scrlayer}{layer `#2' not yet defined}{% + You may modify only already declared layers using + \string\ModifyLayer.\MessageBreak + See also the alternatives + \string\DeclareLayer and \string\ProvideLayer.\MessageBreak + Nevertheless, if you'll continue, declaration will be done.}% + \DeclareLayer[{#1}]{#2}% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \ModifyLayer +% \end{macro}^^A \RedeclareLayer +% \end{macro}^^A \ProvideLayer +% \end{macro}^^A \DeclareNewLayer +% +% +% \begin{macro}{\DestroyLayer} +% \begin{description} +% \item[\Parameter{string}:] the name of the layer, that should be +% destroyed +% \end{description} +% Note: Nothing will be done to remove the layer from a page style, but this +% shouldn't matter, because layers with, e.g., +% \Macro{if@scr@l@\dots@nonfloatpage}=\Macro{relax} and +% \Macro{if@scr@l@\dots@floatpage}=\Macro{relax} won't be output ever. This +% command may and should be used by interfaces via +% \Macro{scrlayerOnAutoRemoveInterface} to remove the generated +% layers. Therefore it only destroys existing layers and doesn't care for not +% existing. +% \begin{macrocode} +%<*package&body> +\newcommand*{\DestroyLayer}[1]{% + \IfLayerExists{#1}{% + \expandafter\let\csname scr@l@#1@x\endcsname\relax + \expandafter\let\csname scr@l@#1@y\endcsname\relax + \expandafter\let\csname scr@l@#1@w\endcsname\relax + \expandafter\let\csname scr@l@#1@h\endcsname\relax + \expandafter\let\csname scr@l@#1@align\endcsname\relax + \expandafter\let\csname scr@l@#1@contents\endcsname\relax + \expandafter\let\csname if@scr@l@#1@background\endcsname\relax + \expandafter\let\csname @scr@l@#1@backgroundfalse\endcsname\relax + \expandafter\let\csname @scr@l@#1@backgroundtrue\endcsname\relax + \expandafter\let\csname if@scr@l@#1@foreground\endcsname\relax + \expandafter\let\csname @scr@l@#1@foregroundfalse\endcsname\relax + \expandafter\let\csname @scr@l@#1@foregroundtrue\endcsname\relax + \expandafter\let\csname if@scr@l@#1@odd\endcsname\relax + \expandafter\let\csname @scr@l@#1@oddfalse\endcsname\relax + \expandafter\let\csname @scr@l@#1@oddtrue\endcsname\relax + \expandafter\let\csname if@scr@l@#1@even\endcsname\relax + \expandafter\let\csname @scr@l@#1@evenfalse\endcsname\relax + \expandafter\let\csname @scr@l@#1@eventrue\endcsname\relax + \expandafter\let\csname if@scr@l@#1@oneside\endcsname\relax + \expandafter\let\csname @scr@l@#1@onesidefalse\endcsname\relax + \expandafter\let\csname @scr@l@#1@onesidetrue\endcsname\relax + \expandafter\let\csname if@scr@l@#1@twoside\endcsname\relax + \expandafter\let\csname @scr@l@#1@twosidefalse\endcsname\relax + \expandafter\let\csname @scr@l@#1@twosidetrue\endcsname\relax + \expandafter\let\csname if@scr@l@#1@floatpage\endcsname\relax + \expandafter\let\csname @scr@l@#1@floatpagefalse\endcsname\relax + \expandafter\let\csname @scr@l@#1@floatpagetrue\endcsname\relax + \expandafter\let\csname if@scr@l@#1@nonfloatpage\endcsname\relax + \expandafter\let\csname @scr@l@#1@nonfloatpagefalse\endcsname\relax + \expandafter\let\csname @scr@l@#1@nonfloatpagetrue\endcsname\relax + }{% +%<*trace> + \PackageInfo{scrlayer}{\string\DestroyLayer{#1} ignored,\MessageBreak + because that layer doesn't exist\MessageBreak + (any longer)% + }% +% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \DestroyLayer +% +% +% \begin{macro}{\layercontentsmeasure} +% This may used by used as the only value of the layer option +% \texttt{contents} to show measure lines around the layer. The left and the +% top measure line will be in centimeter, the right and the bottom measure +% line in inch. With option \texttt{draft=true} this also be used +% automatically and additionally for every layer of a page style. +% \begin{macrocode} +%<*package&body> +\newcommand*{\layercontentsmeasure}{% + \smash{\begin{picture}(0,0) + (0,\if t\scr@l@valign -\ht\strutbox + \else + \if b\scr@l@valign -\dimexpr\layerheight-\dp\strutbox\relax + \else -.5\dimexpr \layerheight+\ht\strutbox-\dp\strutbox\relax + \fi + \fi\@gobble) +% \end{macrocode} +% 1st horizontal cm +% \begin{macrocode} + \put(0,0){\line(1,0){\layerwidth\@gobble}}% + \@tempcnta=\numexpr \dimexpr\layerwidth + .5mm\relax/\dimexpr 1mm\relax\relax + \multiput(0,0)(1mm\@gobble,0){\@tempcnta}{% + \line(0,-1){1mm\@gobble}% + }% + \@tempcnta=\numexpr \dimexpr\layerwidth + 2.5mm\relax/\dimexpr 5mm\relax\relax + \multiput(0,0)(5mm\@gobble,0){\@tempcnta}{% + \line(0,-1){2mm\@gobble}% + }% + \@tempcnta=\numexpr \dimexpr\layerwidth + .5cm\relax/\dimexpr 1cm\relax\relax + \multiput(0,0)(10mm\@gobble,0){\@tempcnta}{% + \put(0,0){\line(0,-1){3mm\@gobble}}% + \put(0,-3.5mm\@gobble){% + \makebox(0,0)[ct]{\the\numexpr\@tempcnta-\@multicnt\relax}}% + }% +% \end{macrocode} +% 2nd horizontal in: +% \begin{macrocode} + \put(0,-\layerheight\@gobble){\line(1,0){\layerwidth\@gobble}}% + \@tempcnta=\numexpr \dimexpr\layerwidth + .05in\relax/\dimexpr .1in\relax\relax + \multiput(0,-\layerheight\@gobble)(.1in\@gobble,0){\@tempcnta}{% + \line(0,1){1mm\@gobble}% + }% + \@tempcnta=\numexpr \dimexpr\layerwidth + .25in\relax/\dimexpr .5in\relax\relax + \multiput(0,-\layerheight\@gobble)(.5in\@gobble,0){\@tempcnta}{% + \line(0,1){2mm\@gobble}% + }% + \@tempcnta=\numexpr \dimexpr\layerwidth + .5in\relax/\dimexpr 1in\relax\relax + \multiput(0,-\layerheight\@gobble)(1in\@gobble,0){\@tempcnta}{% + \put(0,0){\line(0,1){3mm\@gobble}}% + \put(0,3.5mm\@gobble){% + \makebox(0,0)[cb]{\the\numexpr\@tempcnta-\@multicnt\relax}}% + }% +% \end{macrocode} +% 3rd vertical cm: +% \begin{macrocode} + \put(0,0){\line(0,-1){\layerheight\@gobble}}% + \@tempcnta\numexpr \dimexpr\layerheight + .5mm\relax/\dimexpr 1mm\relax\relax + \multiput(0,0)(0,-1mm\@gobble){\@tempcnta}{% + \line(1,0){1mm\@gobble}% + }% + \@tempcnta\numexpr \dimexpr\layerheight + 2.5mm\relax/\dimexpr 5mm\relax\relax + \multiput(0,0)(0,-5mm\@gobble){\@tempcnta}{% + \line(1,0){2mm\@gobble}% + }% + \@tempcnta\numexpr \dimexpr\layerheight + .5cm\relax/\dimexpr 1cm\relax\relax + \multiput(0,0)(0,-1cm\@gobble){\@tempcnta}{% + \put(0,0){\line(1,0){3mm\@gobble}}% + \put(3.5mm\@gobble,0){% + \makebox(0,0)[cl]{\the\numexpr\@tempcnta-\@multicnt\relax}}% + }% +% \end{macrocode} +% 4th vertical in: +% \begin{macrocode} + \put(\layerwidth\@gobble,0){\line(0,-1){\layerheight\@gobble}}% + \@tempcnta\numexpr \dimexpr\layerheight + .05in\relax/\dimexpr .1in\relax\relax + \multiput(\layerwidth\@gobble,0)(0,-.1in\@gobble){\@tempcnta}{% + \line(-1,0){1mm\@gobble}% + }% + \@tempcnta\numexpr \dimexpr\layerheight + .25in\relax/\dimexpr .5in\relax\relax + \multiput(\layerwidth\@gobble,0)(0,-.5in\@gobble){\@tempcnta}{% + \line(-1,0){2mm\@gobble}% + }% + \@tempcnta\numexpr \dimexpr\layerheight + .5in\relax/\dimexpr 1in\relax\relax + \multiput(\layerwidth\@gobble,0)(0,-1in\@gobble){\@tempcnta}{% + \put(0,0){\line(-1,0){3mm\@gobble}}% + \put(-3.5mm\@gobble,0){% + \makebox(0,0)[cr]{\the\numexpr\@tempcnta-\@multicnt\relax}}% + }% + \end{picture}}% +} +% +% \end{macrocode} +% \end{macro}^^A \layercontentsmeasure +% +% +% \subsection{Providing Page Styles} +% +% Page styles in \LaTeX{} consist of the elements: +% \begin{itemize} +% \item a header for odd pages, +% \item a header for even pages, +% \item a footer for odd pages, +% \item a footer for even pages, +% \end{itemize} +% and some optional additional commands, that will be expanded, whenever the +% page style will be activated. Note, that header and footer for even pages +% will be used only at two-sided mode. At one-sided mode the header and footer +% for odd pages will be used for all pages. +% +% With package \Package{scrlayer} layers will be linked to package styles and +% expanded at the four elements above. Background layers will expand only +% at the headers. Foreground layers will expand only at the +% footers. Layers, that haven't been restricted to background or foreground, +% will expand at both, page headers and page footers. +% +% Similar to the expansion of background and foreground layers, odd page +% layers will only expand in the headers or footers of odd pages and even page +% layers will only expand in the headers or footers of even pages. Layers, +% that haven't been restricted to odd or even pages, will expand in the +% headers or footers of odd pages and also in the headers or footers of even +% pages. +% +% One step more: Single-side layers will only expand in the headers or footers +% of pages in single-side layouts and two-side layers only in the headers or +% footers of pages in two-side layout. +% +% One more step: float page layers will only expand in the headers or footers +% of pages, that consists of page floats only, while non-float page layers +% will only expand in the headers of footers of pages, that doesn't have page +% floats. +% +% \begin{length}{\footheight} +% For the header \LaTeX{} already defines a length \Length{headheight} to be +% the maximum height of the header. But for footer it only defines the +% distance of the baseline of the footer from the last baseline of the text +% area. \Package{scrlayer} changes this and also defines a new length +% \Length{footheight}. This length will be initialised with magic value +% -12345\,sp. But if it is still that magic value at +% \Macro{begin}\PParameter{document} it will be reset to the value of +% \Length{baselineskip}. +% \begin{macrocode} +%<*package&init> +\@ifundefined{footheight}{% + \newlength{\footheight}% + \setlength{\footheight}{-12345sp}% +}{% +%<*trace> + \PackageInfo{scrlayer}{Using already defined \string\footheight\MessageBreak + hoping, that this is a length and\MessageBreak + not only a macro}% +% +} +\AtBeginDocument{% + \ifdim\footheight=-12345sp +%<*trace> + \PackageInfo{scrlayer}{Setting magic \string\footheight\space to + \string\baselineskip\space while\MessageBreak + \string\begin{document}}% +% + \setlength{\footheight}{\baselineskip} + \fi +} +% +% \end{macrocode} +% \end{length}^^A \footheight +% +% +% Several of the following commands use \meta{key}=\meta{value} arguments. So +% we define a family with a new member: +% \begin{macrocode} +%<*package&body> +\DefineFamily{KOMAarg} +\DefineFamilyMember[.definelayerpagestyle]{KOMAarg} +% +% \end{macrocode} +% +% \begin{macro}{\DeclarePageStyleByLayers} +% \begin{description} +% \item[\OParameter{option list}:] comma separated list of named page +% style options (see below). +% \item[\Parameter{string}:] the name of the page style to be declared (must +% be expandable and result in a string). +% \item[\Parameter{string list}:] comma separated list of layer names (must +% be expandable and result in strings); first in the list will be added +% first. +% \end{description} +% Page styles may be declared using this command. It has one optional and +% two mandatory arguments. The first mandatory one is the name of the page +% style and the second one is a list of layers to be used for this page +% style. The page style itself will expand all background layers for odd +% pages in \cs{@oddhead}, all background layers for even pages on +% \cs{@evenhead}, all foreground layers for odd pages in \cs{@oddfoot}, and +% all foreground layers for even pages in \cs{@evenfoot}. This may be +% restricted by additional attributes, e.g., \Option{oneside} and +% \Option{twoside}. +% +% The optional argument may be used to define hooks. There are six named +% optional arguments to set up six hooks. And there are also \KOMAScript{} +% options for these, to define global pre-definitions. Note, that you may +% remove the global pre-definitions by emptying the local hooks. The local +% argument are named similar, but without ``\texttt{ps}'' after +% ``\texttt{on}''. +% \begin{option}{onpsselect} +% \begin{macro}{\@ps@initialhook} +% \begin{description} +% \item[\texttt{=\meta{code}}:] executes \meta{code} whenever the +% page style will be selected, e.g. using \Macro{pagestyle} or +% \Macro{thispagestyle} or the low level command defining the page +% style itself. +% \end{description} +% \begin{macrocode} +%<*options> +\KOMA@key{onpsselect}{% + \l@addto@macro{\@ps@initialhook}{#1}% + \FamilyKeyStateProcessed +} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsselect} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsselect@default} +% +%\newcommand*{\@ps@initialhook}{} +% +%<*package&body> +\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onselect}{% + \expandafter\l@addto@macro + \csname @ps@\scrlayer@current@pagestyle @initialhook\endcsname + {#1}% + \FamilyKeyStateProcessed +} +% +% \end{macrocode} +% \end{macro}^^A \@ps@initialhook +% \end{option}^^A onpsselect +% \begin{option}{onpsinit} +% \begin{macro}{\@ps@hook} +% \begin{description} +% \item[\texttt{=\meta{code}}:] executes \meta{code} whenever the +% output of a layer stack is initialised. Note, that \meta{code} must not +% result in any page output. Otherwise the output of the layer stack will be +% broken! +% \end{description} +% \begin{macrocode} +%<*options> +\KOMA@key{onpsinit}{% + \l@addto@macro{\@ps@hook}{#1}% + \FamilyKeyStateProcessed +} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsinit} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsinit@default} +% +%\newcommand*{\@ps@hook}{} +% +%<*package&body> +\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{oninit}{% + \expandafter\l@addto@macro + \csname @ps@\scrlayer@current@pagestyle @hook\endcsname + {#1}% + \FamilyKeyStateProcessed +} +% +% \end{macrocode} +% \end{macro}^^A \@ps@hook +% \end{option}^^A onpsinit +% \begin{option}{onpsoneside} +% \begin{macro}{\@ps@onesidehook} +% \begin{description} +% \item[\Option{=\meta{code}}:] executes \meta{code} after +% \Option{oninit}'s \meta{code} whenever the output of a layer stack of a +% page in single-side layout is initialised. Note, that \meta{code} must not +% result in any page output. Otherwise the output of the layer stack will be +% broken! +% \end{description} +% \begin{macrocode} +%<*options> +\KOMA@key{onpsoneside}{% + \l@addto@macro{\@ps@onesidehook}{#1}% + \FamilyKeyStateProcessed +} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsoneside} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsoneside@default} +% +%\newcommand*{\@ps@onesidehook}{} +% +%<*package&body> +\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{ononeside}{% + \expandafter\l@addto@macro + \csname @ps@\scrlayer@current@pagestyle @onesidehook\endcsname + {#1}% + \FamilyKeyStateProcessed +} +% +% \end{macrocode} +% \end{macro}^^A \@ps@onesidehook +% \end{option}^^A onpsoneside +% \begin{option}{onpstwoside} +% \begin{macro}{\@ps@twosidehook} +% \begin{description} +% \item[\Option{=\meta{code}}:] executes \meta{code} after +% \Option{oninit}'s \meta{code} whenever the output of a layer stack of a +% page in two-side layout is initialised. Note, that \meta{code} must not +% result in any page output. Otherwise the output of the layer stack will be +% broken! +% \end{description} +% \begin{macrocode} +%<*options> +\KOMA@key{onpstwoside}{% + \l@addto@macro{\@ps@twosidehook}{#1}% + \FamilyKeyStateProcessed +} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpstwoside} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpstwoside@default} +% +%\newcommand*{\@ps@twosidehook}{} +% +%<*package&body> +\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{ontwoside}{% + \expandafter\l@addto@macro + \csname @ps@\scrlayer@current@pagestyle @twosidehook\endcsname + {#1}% + \FamilyKeyStateProcessed +} +% +% \end{macrocode} +% \end{macro}^^A \@ps@twosidehook +% \end{option}^^A onpstwoside +% \begin{option}{onpsoddpage} +% \begin{macro}{\@ps@oddpagehook} +% \begin{description} +% \item[\texttt{=\meta{code}}:] executes \meta{code} after +% \Option{ononeside}'s or \Option{ontwoside}'s \meta{code} whenever the +% output of a layer stack of an odd page is initialised. Note, that +% \meta{code} must not result in any page output. Otherwise the output of +% the layer stack will be broken! +% \end{description} +% \begin{macrocode} +%<*options> +\KOMA@key{onpsoddpage}{% + \l@addto@macro{\@ps@oddpagehook}{#1}% + \FamilyKeyStateProcessed +} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsoddpage} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsoddpage@default} +% +%\newcommand*{\@ps@oddpagehook}{} +% +%<*package&body> +\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onoddpage}{% + \expandafter\l@addto@macro + \csname @ps@\scrlayer@current@pagestyle @oddpagehook\endcsname + {#1}% + \FamilyKeyStateProcessed +} +% +% \end{macrocode} +% \end{macro}^^A \@ps@oddpagehook +% \end{option}^^A onpsoddpage +% \begin{option}{onpsevenpage} +% \begin{macro}{\@ps@evenpagehook} +% \begin{description} +% \item[\texttt{=\meta{code}}:] executes \meta{code} after +% \Option{ononeside}'s or \Option{ontwoside}'s \meta{code} whenever the +% output of a layer stack of an even page is initialised. Note, that +% \meta{code} must not result in any page output. Otherwise the output of +% the layer stack will be broken! +% \end{description} +% \begin{macrocode} +%<*options> +\KOMA@key{onpsevenpage}{% + \l@addto@macro{\@ps@evenpagehook}{#1}% + \FamilyKeyStateProcessed +} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsevenpage} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsevenpage@default} +% +%\newcommand*{\@ps@evenpagehook}{} +% +%<*package&body> +\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onevenpage}{% + \expandafter\l@addto@macro + \csname @ps@\scrlayer@current@pagestyle @evenpagehook\endcsname + {#1}% + \FamilyKeyStateProcessed +} +% +% \end{macrocode} +% \end{macro}^^A \@ps@evenpagehook +% \end{option}^^A onpsevenpage +% \begin{option}{onpsfloatpage} +% \begin{macro}{\@ps@floatpagehook} +% \begin{description} +% \item[\Option{=\meta{code}}:] executes \meta{code} after +% \Option{onoddpage}'s or \Option{onevenpage}'s \meta{code} whenever a float +% column has been made (usually those pages are float pages). +% \end{description} +% \begin{macrocode} +%<*options> +\KOMA@key{onpsfloatpage}{% + \l@addto@macro{\@ps@floatpagehook}{#1}% + \FamilyKeyStateProcessed +} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsfloatpage} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsfloatpage@default} +% +%\newcommand*{\@ps@floatpagehook}{} +% +%<*package&body> +\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onfloatpage}{% + \expandafter\l@addto@macro + \csname @ps@\scrlayer@current@pagestyle @floatpagehook\endcsname + {#1}% + \FamilyKeyStateProcessed +} +% +% \end{macrocode} +% \end{macro}^^A \@ps@floatpagehook +% \end{option}^^A onpsfloatpage +% \begin{option}{onpsnonfloatpage} +% \begin{macro}{\@ps@nonfloatpagehook} +% \begin{description} +% \item[\Option{=\meta{code}}:] executes \meta{code} after +% \Option{onoddpage}'s or \Option{onevenpage}'s \meta{code} whenever no +% float column has been made (usually those pages aren't float pages). +% \end{description} +% \begin{macrocode} +%<*options> +\KOMA@key{onpsnonfloatpage}{% + \l@addto@macro{\@ps@nonfloatpagehook}{#1}% + \FamilyKeyStateProcessed +} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsnonfloatpage} +\scrlayer@AddCsToInterface{% + KV@KOMA.\@currname.\@currext @onpsnonfloatpage@default} +% +%\newcommand*{\@ps@nonfloatpagehook}{} +% +%<*package&body> +\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onnonfloatpage}{% + \expandafter\l@addto@macro + \csname @ps@\scrlayer@current@pagestyle @nonfloatpagehook\endcsname + {#1}% + \FamilyKeyStateProcessed +} +% +% \end{macrocode} +% \end{macro}^^A \@ps@nonfloatpagehook +% \end{option}^^A onpsnonfloatpage +% \begin{option}{onpsbackground} +% \begin{macro}{\@ps@backgroundhook} +% \begin{description} +% \item[\texttt{=\meta{code}}:] executes \meta{code} after +% \Option{onfloatpage}'s or \Option{onnonfloatpage}'s \meta{code} whenever +% the output of a background layer stack is initialised. Note, that +% \meta{code} must not result in any page output. Otherwise the output of +% the layer stack will be broken! +% \end{description} +% \begin{macrocode} +%<*options> +\KOMA@key{onpsbackground}{% + \l@addto@macro{\@ps@backgroundhook}{#1}% + \FamilyKeyStateProcessed +} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsbackground} +\scrlayer@AddCsToInterface{% + KV@KOMA.\@currname.\@currext @onpsbackground@default} +% +%\newcommand*{\@ps@backgroundhook}{} +% +%<*package&body> +\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onbackground}{% + \expandafter\l@addto@macro + \csname @ps@\scrlayer@current@pagestyle @backgroundhook\endcsname + {#1}% + \FamilyKeyStateProcessed +} +% +% \end{macrocode} +% \end{macro}^^A \@ps@backgroundhook +% \end{option}^^A onbackground +% \begin{option}{onpsforeground} +% \begin{macro}{\@ps@foregroundhook} +% \begin{description} +% \item[\texttt{=\meta{code}}:] executes \meta{code} after +% \Option{onfloatpage}'s or \Option{onnonfloatpage}'s \meta{code} whenever +% the output of a foreground layer stack is initialised. Note, that +% \meta{code} must not result in any page output. Otherwise the output of +% the layer stack will be broken! +% \end{description} +% \begin{macrocode} +%<*options> +\KOMA@key{onpsforeground}{% + \l@addto@macro{\@ps@foregroundhook}{#1}% + \FamilyKeyStateProcessed +} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsforeground} +\scrlayer@AddCsToInterface{% + KV@KOMA.\@currname.\@currext @onpsforeground@default} +% +%\newcommand*{\@ps@foregroundhook}{} +% +%<*package&body> +\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onforeground}{% + \expandafter\l@addto@macro + \csname @ps@\scrlayer@current@pagestyle @foregroundhook\endcsname + {#1}% + \FamilyKeyStateProcessed +} +% +% \end{macrocode} +% \end{macro}^^A \@psforegroundhook +% \end{option}^^A onpsforeground +% \begin{macrocode} +%<*package&body> +\newcommand*{\DeclarePageStyleByLayers}[3][]{% + \edef\scrlayer@current@pagestyle{\GetRealPageStyle{#2}}% + \expandafter\scrlayer@declare@ps@by@layers\expandafter{% + \scrlayer@current@pagestyle + }{#1}{#3}% +} +% \end{macrocode} +% \begin{macro}{\scrlayer@declare@ps@by@layers} +% Needed, because of page style aliases. Same arguments like +% \cs{DeclarePageStyleByLayers} but, \#1 is the name of the page style, \#2 is +% the list of options and \#3 is still the list of layers. +% \begin{macrocode} +\newcommand*{\scrlayer@declare@ps@by@layers}[3]{% + \@namedef{@ps@#1@initialhook}{\@ps@initialhook}% + \@namedef{@ps@#1@hook}{\@ps@hook}% + \@namedef{@ps@#1@backgroundhook}{\@ps@backgroundhook}% + \@namedef{@ps@#1@foregroundhook}{\@ps@foregroundhook}% + \@namedef{@ps@#1@oddpagehook}{\@ps@oddpagehook}% + \@namedef{@ps@#1@evenpagehook}{\@ps@evenpagehook}% + \@namedef{@ps@#1@onesidehook}{\@ps@onesidehook}% + \@namedef{@ps@#1@twosidehook}{\@ps@twosidehook}% + \@namedef{@ps@#1@floatpagehook}{\@ps@floatpagehook}% + \@namedef{@ps@#1@nonfloatpagehook}{\@ps@nonfloatpagehook}% + \FamilyExecuteOptions[.definelayerpagestyle]{KOMAarg}{#2}% + \@namedef{ps@#1}{% + \renewcommand*{\currentpagestyle}{#1}% + \@nameuse{@ps@@everystyle@@initialhook}% + \@nameuse{@ps@#1@initialhook}% + \renewcommand*{\currentpagestyle}{#1}% + \renewcommand*{\@oddhead}{% + \begingroup + \let\headmark\rightmark + \@nameuse{@ps@@everystyle@@hook}% + \@nameuse{@ps@#1@hook}% + \@nameuse{@ps@@everystyle@@\if@twoside two\else one\fi sidehook}% + \@nameuse{@ps@#1@\if@twoside two\else one\fi sidehook}% + \@nameuse{@ps@@everystyle@@oddpagehook}% + \@nameuse{@ps@#1@oddpagehook}% + \@nameuse{@ps@@everystyle@@\if@fcolmade\else non\fi floatpagehook}% + \@nameuse{@ps@#1@\if@fcolmade\else non\fi floatpagehook}% + \@nameuse{@ps@@everystyle@@backgroundhook}% + \@nameuse{@ps@#1@backgroundhook}% + \parbox[t][\headheight][t]{\linewidth}{% + \vskip \dimexpr -\topmargin-1in + -\headheight + -\ht\strutbox\relax + \hskip \dimexpr -\oddsidemargin-1in\relax + \strut\makebox[\z@][l]{% + \ForEachLayerOfPageStyle{@everystyle@}{% + \scrlayer@do@page@style@element@layer{background}{odd}% + {########1}% + }% + \ForEachLayerOfPageStyle{#1}{% + \scrlayer@do@page@style@element@layer{background}{odd}% + {########1}% + }% + }% + }% + \endgroup + }% + \renewcommand*{\@evenhead}{% + \begingroup + \let\headmark\leftmark + \@nameuse{@ps@@everystyle@@hook}% + \@nameuse{@ps@#1@hook}% + \@nameuse{@ps@@everystyle@@twosidehook}% + \@nameuse{@ps@#1@twosidehook}% + \@nameuse{@ps@@everystyle@@evenpagehook}% + \@nameuse{@ps@#1@evenpagehook}% + \@nameuse{@ps@@everystyle@@\if@fcolmade\else non\fi floatpagehook}% + \@nameuse{@ps@#1@\if@fcolmade\else non\fi floatpagehook}% + \@nameuse{@ps@@everystyle@@backgroundhook}% + \@nameuse{@ps@#1@backgroundhook}% + \parbox[t][\headheight][t]{\linewidth}{% + \vskip \dimexpr -\topmargin-1in + -\headheight + -\ht\strutbox\relax + \hskip \dimexpr-\evensidemargin-1in\relax + \strut\makebox[\z@][l]{% + \ForEachLayerOfPageStyle{@everystyle@}{% + \scrlayer@do@page@style@element@layer{background}{even}% + {########1}% + }% + \ForEachLayerOfPageStyle{#1}{% + \scrlayer@do@page@style@element@layer{background}{even}% + {########1}% + }% + }% + }% + \endgroup + }% + \renewcommand*{\@oddfoot}{% + \begingroup + \let\headmark\rightmark + \@nameuse{@ps@@everystyle@@hook}% + \@nameuse{@ps@#1@hook}% + \@nameuse{@ps@@everystyle@@\if@twoside two\else one\fi sidehook}% + \@nameuse{@ps@#1@\if@twoside two\else one\fi sidehook}% + \@nameuse{@ps@@everystyle@@oddpagehook}% + \@nameuse{@ps@#1@oddpagehook}% + \@nameuse{@ps@@everystyle@@\if@fcolmade\else non\fi floatpagehook}% + \@nameuse{@ps@#1@\if@fcolmade\else non\fi floatpagehook}% + \@nameuse{@ps@@everystyle@@foregroundhook}% + \@nameuse{@ps@#1@foregroundhook}% + \parbox[t][\headheight][t]{\linewidth}{% + \vskip \dimexpr -\topmargin-1in + -\headheight + -\headsep + -\textheight + -\footskip + -\ht\strutbox\relax + \hskip \dimexpr -\oddsidemargin-1in\relax + \strut\makebox[\z@][l]{% + \ForEachLayerOfPageStyle{@everystyle@}{% + \scrlayer@do@page@style@element@layer{foreground}{odd}% + {########1}% + }% + \ForEachLayerOfPageStyle{#1}{% + \scrlayer@do@page@style@element@layer{foreground}{odd}% + {########1}% + }% + }% + }% + \endgroup + }% + \renewcommand*{\@evenfoot}{% + \begingroup + \let\headmark\leftmark + \@nameuse{@ps@@everystyle@@hook}% + \@nameuse{@ps@#1@hook}% + \@nameuse{@ps@@everystyle@@twosidehook}% + \@nameuse{@ps@#1@twosidehook}% + \@nameuse{@ps@@everystyle@@evenpagehook}% + \@nameuse{@ps@#1@evenpagehook}% + \@nameuse{@ps@@everystyle@@\if@fcolmade\else non\fi floatpagehook}% + \@nameuse{@ps@#1@\if@fcolmade\else non\fi floatpagehook}% + \@nameuse{@ps@@everystyle@@foregroundhook}% + \@nameuse{@ps@#1@foregroundhook}% + \parbox[t][\headheight][t]{\linewidth}{% + \vskip \dimexpr -\topmargin-1in + -\headheight + -\headsep + -\textheight + -\footskip + -\ht\strutbox\relax + \hskip \dimexpr-\evensidemargin-1in\relax + \strut\makebox[\z@][l]{% + \ForEachLayerOfPageStyle{@everystyle@}{% + \scrlayer@do@page@style@element@layer{foreground}{even}% + {########1}% + }% + \ForEachLayerOfPageStyle{#1}{% + \scrlayer@do@page@style@element@layer{foreground}{even}% + {########1}% + }% + }% + }% + \endgroup + }% + }% + \@namedef{@ps@#1@layers}{}% + \@for \reserved@a:=#3\do {% + \ifstr\reserved@a\@empty{}{% + \expandafter\@cons\csname @ps@#1@layers\endcsname{{\reserved@a}}% + }% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \scrlayer@declare@ps@by@layers +% +% \begin{macro}{\ForEachLayerOfPageStyle} +% \begin{description} +% \item[\Parameter{string}:] a valid page style (must be fully expandable +% and expand to the name of a existing page style); note, that currently +% no exists test will be done. +% \item[\Parameter{code}:] any macro definition body with usage of at most +% one argument (\texttt{\#1}), that will be replaced by the layer's name +% \end{description} +% Do the given \meta{code} for each layer of the page style +% \meta{string}. Note, that the expansion of \meta{code} will be done inside +% a group. +% \begin{macrocode} +%<*package&body> +\newcommand*{\ForEachLayerOfPageStyle}[2]{% + \begingroup + \edef\reserved@a{\GetRealPageStyle{#1}}% + \def\@elt##1{\ifscrlayer@deactivate@layers\else #2\fi}% + \@nameuse{@ps@\reserved@a @layers}% + \endgroup +} +% +% \end{macrocode} +% \begin{option}{deactivatepagestylelayers} +% \begin{macro}{\ifscrlayer@deactivate@layers} +% \begin{description} +% \item[\Parameter{simple switch}:] whether or not +% \Macro{ForEachLayerOfPageStyle} should ignore the layers. +% \end{description} +% This is a global \KOMAScript{} options. Several other definitions and at +% least the usage of the page style will ignore the layers if +% \Macro{ForEachLayerOfPageStyle} ignores them. So this is something like: +% hide the layers. It may also be useful inside the code for the hooks +% described above, because hooks may used to deactivate the layers with this +% option too. +% \begin{macrocode} +%<*options> +\KOMA@ifkey{deactivatepagestylelayers}{scrlayer@deactivate@layers} +%<*interface> +\scrlayer@AddCsToInterface{% + KV@KOMA.\@currname.\@currext @deactivatepagestylelayers} +\scrlayer@AddCsToInterface{% + KV@KOMA.\@currname.\@currext @deactivatepagestylelayers@default} +% +% +% \end{macrocode} +% \end{macro}^^A \ifscrlayer@deactivate@layers +% \end{option}^^A deactivatepagestylelayers +% \end{macro}^^A \ForEachLayerOfPageStyle +% +% \begin{macro}{\scrlayer@do@page@style@element@layer} +% Helper macro to show one layer. First argument is either ``background'' or +% ``foreground'', second argument is either ``odd'' or ``even'', and third +% argument is the name of the layer. Note, that in draft mode for every layer +% will be shown also a \cs{layercontentsmeasure}. +% \begin{macrocode} +%<*package&body> +\newcommand*{\scrlayer@do@page@style@element@layer}[3]{% + \begingroup + \expandafter\ifx\csname if@scr@l@#3@\if@fcolmade\else non\fi floatpage% + \expandafter\endcsname\csname iftrue\endcsname + \expandafter\ifx\csname if@scr@l@#3@\if@twoside two\else one\fi side% + \expandafter\endcsname\csname iftrue\endcsname + \expandafter + \ifx\csname if@scr@l@#3@#1\expandafter\endcsname + \csname iftrue\endcsname + \expandafter + \ifx\csname if@scr@l@#3@#2\expandafter\endcsname + \csname iftrue\endcsname + \ifscrlayer@draft + \scr@layerbox(\csname scr@l@#3@x\endcsname,% + \csname scr@l@#3@y\endcsname)% + (\csname scr@l@#3@w\endcsname,% + \csname scr@l@#3@h\endcsname)% + [\csname scr@l@#3@align\endcsname]% + {\layercontentsmeasure}% + \fi + \scr@layerbox(\csname scr@l@#3@x\endcsname,% + \csname scr@l@#3@y\endcsname)% + (\csname scr@l@#3@w\endcsname,% + \csname scr@l@#3@h\endcsname)% + [\csname scr@l@#3@align\endcsname]% + {\csname scr@l@#3@contents\endcsname}% + \fi + \fi + \fi + \fi + \endgroup +} +% \end{macrocode} +% \begin{macro}{\scr@layerbox} +% \begin{macro}{\scr@@layerbox} +% The layer box is used to output a layer in \cs{@oddhead}, \cs{@evenhead}, +% \cs{@oddfoot}, or \cs{@evenfoot}. Is has two pairs of arguments: ($x,y$) +% and ($w,h$), where $x$ is the distance from left paper edge, $y$ is the +% distance from the topmost edge of paper, $w$ is the width of the box and $h$ +% is the height of the box. The fifth argument is an optional vertical and +% horizontal alignment of the box. It may be a combination of the alignment +% characters described above. The sixth and last argument is the contents of +% the layer, to be placed into the last argument of the innermost +% \cs{parbox}. +% \begin{macrocode} +\def\scr@layerbox(#1,#2)(#3,#4){% + \@ifnextchar [%] + {\scr@@layerbox(#1,#2)(#3,#4)}{\scr@@layerbox(#1,#2)(#3,#4)[]}% +} +\def\scr@@layerbox(#1,#2)(#3,#4)[#5]#6{% + \begingroup + \edef\layerxoffset{#1}% + \edef\layeryoffset{#2}% + \edef\layerwidth{#3}% + \edef\layerheight{#4}% + \def\scr@l@valign{t}% + \def\scr@l@halign{l}% + \edef\reserved@b{#5}% + \expandafter\@tfor\expandafter\reserved@a\expandafter:\expandafter=% + \reserved@b\do{% + \if t\reserved@a + \def\scr@l@valign{t}% + \else + \if c\reserved@a + \def\scr@l@valign{c}% + \def\scr@l@halign{c}% + \else + \if b\reserved@a + \def\scr@l@valign{b}% + \else + \if l\reserved@a + \def\scr@l@halign{l}% + \else + \if r\reserved@a + \def\scr@l@halign{r}% + \else + \PackageWarning{scrlayer}{% + Unknown alignment `\reserved@a' ignored}% + \fi + \fi + \fi + \fi + \fi + }% + \parbox[t][\z@][t]{\z@}{% + \vskip\layeryoffset + \if b\scr@l@valign\vskip-\layerheight\fi + \if c\scr@l@valign\vskip-.5\dimexpr\layerheight\relax\fi + \makebox[\z@][l]{% + \hskip\layerxoffset + \makebox[\z@][\scr@l@halign]{% + \parbox[\scr@l@valign][\layerheight][\scr@l@valign]{\layerwidth}{% + \vskip\z@\strut{% + \ifscrlayer@forceignoreuppercase + \expandafter\let\csname MakeUppercase \endcsname\@firstofone + \let\MakeUppercase\@firstofone + \let\uppercase\@firstofone + \fi + #6% + }\strut\vskip\z@ + }% + }% + }% + }% + \endgroup +} +% +% \end{macrocode} +% \end{macro}^^A \scr@@layerbox +% \end{macro}^^A \scr@layerbox +% \begin{option}{draft} +% \begin{macro}{\ifscrlayer@draft} +% \begin{description} +% \item[\Parameter{simple switch}:] whether or not to use the draft mode, +% that, i.e., activates visualisation of the layers. +% \end{description} +% When option is set, every layer is shown twice: one time with it's own +% contents and one time with contents \Macro{layercontentsmeasure}. +% \begin{macrocode} +%<*options> +\KOMA@ifkey{draft}{scrlayer@draft} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @draft} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @draft@default} +% +% +% \end{macrocode} +% \end{macro}^^A \ifscrlayer@draft +% \end{option}^^A draft +% \end{macro}^^A \scrlayer@do@page@style@element@layer +% \end{macro}^^A \DeclarePageStyleByLayers +% +% +% \begin{macro}{\DeclareNewPageStyleByLayers} +% Arguments like \Macro{DeclarePageStyleByLayers}; results in error if the page +% style has been defined (or declared) already. +% \begin{macro}{\ProvidePageStyleByLayers} +% Arguments like \Macro{DeclarePageStyleByLayers}; doesn't define anything it +% the page style has been defined (or declared) already. +% \begin{macro}{\RedeclarePageStyleByLayers} +% Arguments like \Macro{DeclarePageStyleByLayers}; results in error if the page +% style hasn't been defined (or declared) already. +% \begin{macrocode} +%<*package&body> +\newcommand*{\DeclareNewPageStyleByLayers}[2][]{% + \@ifundefined{ps@#2}{}{% + \PackageError{scrlayer}{% + Page style `#2' already defined% + }{% + You may use \string\DeclareNewPageStyleByLayers\space to declare a new + page style only\MessageBreak + if that page style hasn't been declared or defined before.\MessageBreak + You may use either \string\ProvidePageStyleByLayers\space to declare the + page style only\MessageBreak + if it hasn't been declared or defined before, or + \string\RedeclarePageStyleByLayers\MessageBreak + to overwrite the former + declaration or definition of the page style% + \@ifundefined{@ps@#2@layers}{}{,\MessageBreak + or \string\AddLayersToPageStyle\space to add further layers to the + already declared\MessageBreak + page style, or \string\RemoveLayersFromPageStyle\space to remove + layers from the\MessageBreak + already declared page style}.\MessageBreak + Nevertheless, if you'll continue, the page style will be + overwritten\MessageBreak + by the new declaration.% + }% + }% + \DeclarePageStyleByLayers[{#1}]{#2}% +} +\newcommand*{\ProvidePageStyleByLayers}[3][]{% + \@ifundefined{ps@#2}{% + \DeclarePageStyleByLayers[{#1}]{#2}{#3}% + }{% +%<*trace> + \PackageInfo{scrlayer}{% + \string\ProvidePageStyleByLayers{#2}{#3} ignored,\MessageBreak + because page style `#2'\MessageBreak + already exists% + }% +% + }% +} +\newcommand*{\RedeclarePageStyleByLayers}[2][]{% + \@ifundefined{ps@#2}{% + \PackageError{scrlayer}{% + Page style `#2' not yet defined% + }{% + You may use \string\RedeclarePageStyleByLayers\space to declare a page + style only\MessageBreak + if that page style has already been declared or defined.\MessageBreak + You may use either \string\DeclareNewPageStyleByLayers, + \string\DeclarePageStyleByLayers,\MessageBreak + or \string\ProvidePageStyleByLayers\space to declare that not yet + defined page style.\MessageBreak + Nevertheless, if you'll continue, the page style will be declared.% + }% + }{}% + \DeclarePageStyleByLayers[{#1}]{#2}% +} +% +% \end{macrocode} +% \end{macro}^^A \RedeclarePageStyleByLayers +% \end{macro}^^A \ProvidePageStyleByLayers +% \end{macro}^^A \DeclareNewPageStyleByLayers +% +% We also declare page style \Pagestyle{@everystyle@} by default. You should +% not use this page style as an real page style (even not as the empty +% one). The layers of this page style will be used by every other layer page +% style. An we re-declare \Pagestyle{empty} to be a layer page style. +% \begin{macrocode} +%<*package&final> +\DeclareNewPageStyleByLayers{@everystyle@}{} +\RedeclarePageStyleByLayers{empty}{} +% +% \end{macrocode} +% +% \begin{macro}{\AddLayersToPageStyle} +% \begin{macro}{\AddLayersAtBeginOfPageStyle} +% \begin{macro}{\AddLayersAtEndOfPageStyle} +% \begin{macro}{\RemoveLayersFromPageStyle} +% \begin{description} +% \item[\Parameter{string}:] the name of the page style to be modified (must +% be expandable and result in a string). +% \item[\Parameter{string list}:] comma separated list of layer names (must +% be expandable and result in strings); first in the list will be added +% first. +% \end{description} +% Change the layer list of a given page style. The differences between the +% commands are: +% \begin{description} +% \item[\Macro{AddLayersToPageStyle}:] first in the \meta{string list} will +% be added first at the end. +% \item[\Macro{AddLayersAtBeginOfPageStyle}:] first in the \meta{string list} +% will be added first at the start. Note, that this will result in changing +% the order of the layers in \meta{string list}. +% \item[\Macro{AddLayerAtEndOfPageStyle}:] same like +% \Macro{AddLayerToPageStyle}. +% \item[\Macro{RemoveLayersFromPageStyle}:] remove the layers from the page +% style's layer list. +% \end{description} +% \begin{macrocode} +%<*package&body> +\newcommand*{\AddLayersToPageStyle}[2]{% + \edef\reserved@b{\GetRealPageStyle{#1}}% + \IfLayerPageStyleExists{\reserved@b}{% + \@for \reserved@a:=#2\do {% + \ifstr\reserved@a\@empty{}{% + \expandafter\@cons\csname @ps@\reserved@b @layers\endcsname + {{\reserved@a}}% + }% + }% + }{% + \scrlayer@lpm@error{#1}{adding layers}% + }% +} +\newcommand*{\AddLayersAtEndOfPageStyle}{% + \AddLayersToPageStyle +} +\newcommand*{\AddLayersAtBeginOfPageStyle}[2]{% + \begingroup + \let\@cons\@snoc + \AddLayersToPageStyle{#1}{#2}% + \endgroup +} +% \end{macrocode} +% \begin{macro}{\@snoc} +% \cs{@snoc} is a helper macro similar to \cs{@cons} from \LaTeX{} kernel, but +% it appends at the front instead of the end. +% \begin{macrocode} +\newcommand*{\@snoc}[2]{% + \begingroup\let\@elt\relax\xdef#1{\@elt #2#1}\endgroup +} +% \end{macrocode} +% \end{macro}^^A \@snoc +% \begin{macrocode} +\newcommand*{\RemoveLayersFromPageStyle}[2]{% + \edef\reserved@b{\GetRealPageStyle{#1}}% + \IfLayerPageStyleExists{#1}{% + \@for \reserved@a:=#2\do {% + \ifstr\reserved@a\@empty{}{% + \expandafter\remove@layer@from@page@style\expandafter{\reserved@a}% + {\reserved@b}% + }% + }% + }{% + \scrlayer@lpm@error{#1}{removing layers}% + }% +} +% \end{macrocode} +% \begin{macro}{\remove@layer@from@page@style} +% Helper macro to remove exactly one layer (arg 1) from a page style (arg 2). +% \begin{macrocode} +\newcommand*{\remove@layer@from@page@style}[2]{% + \begingroup + \expandafter\let\expandafter\reserved@a\csname @ps@#2@layers\endcsname + \@namedef{@ps@#2@layers}{}% + \def\@elt##1{% + \ifstr{#1}{##1}{}{% + \expandafter\@cons\csname @ps@#2@layers\endcsname{{##1}}% + }% + }\reserved@a + \endgroup +} +% \end{macrocode} +% \end{macro}^^A \remoce@layer@from@page@style +% \begin{macro}{\scrlayer@lpm@error} +% \begin{description} +% \item[\Parameter{string}:] the name of the page style to be modified (must +% be expandable and result in a string). +% \item[\Parameter{string}:] the kind of modification, that isn't allowed +% (must be expandable and result in a string). +% \end{description} +% Show an error because of page style it either not a defined or not a layer +% page style. +% \begin{macrocode} +\newcommand*{\scrlayer@lpm@error}[2]{% + \PackageError{scrlayer}{`#1' is not a layer page style}{% + \scr@ifundefinedorrelax{ps@#1}{% + Page style `#1' is not defined, + }{% + Page style `#1' is not a layer page style, + }% + but #2\MessageBreak + may be used only for layer page styles declared using\MessageBreak + \string\DeclarePageStyleByLayers, + \string\DeclareNewPageStyleByLayers,\MessageBreak + of \string\ProvidePageStyleByLayers.\MessageBreak + If you'll continue, your operation will be ignored.% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \scrlayer@lpm@error +% \end{macro}^^A \RemoveLayersFromPageStyle +% \end{macro}^^A \AddLayersAtEndOfPageStyle +% \end{macro}^^A \AddLayersAtBeginOfPageStyle +% \end{macro}^^A \AddLayersToPageStyle +% +% \begin{macro}{\AddLayersToPageStyleBeforeLayer} +% \begin{macro}{\AddLayersToPageStyleAfterLayer} +% \begin{description} +% \item[\Parameter{string}:] the name of the page style to be modified (must +% be expandable and result in a string). +% \item[\Parameter{string list}:] comma separated list of layer names (must +% be expandable and result in strings); first in the list will be added +% first. +% \item[\Parameter{string}:] the name of the layer before +% (\Macro{AddLayersToPageStyleBeforeLayer}) or after +% (\Macro{AddLayersToPageStyleAfterLayer}) that the layers of the list +% should be added. +% \end{description} +% Note: If the layer from third argument is not part of the page style's layer +% list, the new layers won't be added anywhere. +% \begin{macrocode} +%<*package&body> +\newcommand*{\AddLayersToPageStyleAfterLayer}[3]{% + \edef\reserved@b{\GetRealPageStyle{#1}}% + \IfLayerPageStyleExists{\reserved@b}{% + \begingroup + \expandafter\let\expandafter\reserved@a + \csname @ps@\reserved@b @layers\endcsname + \@namedef{@ps@\reserved@b @layers}{}% + \def\@elt##1{% + \ifstr{##1}\@empty{}{% + \expandafter\@cons\csname @ps@\reserved@b @layers\endcsname{{##1}}% + \ifstr{##1}{#3}{% + \@for \reserved@a:=#2\do {% + \ifstr\reserved@a\@empty{}{% + \expandafter\@cons\csname @ps@\reserved@b @layers\endcsname + {{\reserved@a}}% + }% + }% + }{}% + }% + }% + \reserved@a + \endgroup + }{% + \scrlayer@lpm@error{#1}{adding layers}% + }% +} +\newcommand*{\AddLayersToPageStyleBeforeLayer}[3]{% + \edef\reserved@b{\GetRealPageStyle{#1}}% + \IfLayerPageStyleExists{\reserved@b}{% + \begingroup + \expandafter\let\expandafter\reserved@a + \csname @ps@\reserved@b @layers\endcsname + \@namedef{@ps@\reserved@b @layers}{}% + \def\@elt##1{% + \ifstr{##1}\@empty{}{% + \ifstr{##1}{#3}{% + \@for \reserved@a:=#2\do {% + \ifstr\reserved@a\@empty{}{% + \expandafter\@cons\csname @ps@\reserved@b @layers\endcsname + {{\reserved@a}}% + }% + }% + }{}% + \expandafter\@cons\csname @ps@#1@layers\endcsname{{##1}}% + }% + }% + \reserved@a + \endgroup + }{% + \scrlayer@lpm@error{#1}{adding layers}% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \AddLayersToPageStyleAfterLayer +% \end{macro}^^A \AddLayersToPageStyleBeforeLayer +% +% +% \begin{macro}{\UnifyLayersAtPageStyle} +% \begin{description} +% \item[\Parameter{string}:] the name of the page style to be unified (must +% be expandable and result in a string). +% \end{description} +% Remove doublets of layers from a page style. +% \begin{macrocode} +%<*package&body> +\newcommand*{\UnifyLayersAtPageStyle}[1]{% + \edef\reserved@b{\GetRealPageStyle{#1}}% + \IfLayerPageStyleExists{\reserved@b}{% + \expandafter\let\expandafter\reserved@a + \csname @ps@\reserved@b @layers\endcsname + \@namedef{@ps@\reserved@b @layers}{}% + \begingroup + \def\@elt##1{% + \ifstr{##1}\@empty{}{% + \remove@layer@from@page@style{##1}{\reserved@b}% + \expandafter\@cons\csname @ps@\reserved@b @layers\endcsname{{##1}}% + }% + }% + \reserved@a + \endgroup + }{% + \scrlayer@lpm@error{#1}{unifying}% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \UnifyLayersAtPageStyle +% +% \begin{macro}{\ModifyLayerPageStyleOptions} +% \begin{macro}{\AddToLayerPageStyleOptions} +% \begin{description} +% \item[\Parameter{string}:] the name of the page style to be modified (must +% be expandable and result in a string). +% \item[\Parameter{option list}:] comma separated list of named page +% style options. You may use any of the options provided for +% \Macro{DeclarePageStyle}. +% \end{description} +% \Macro{ModifyLayerPageStyleOptions} replaces the options and only the +% options from the list by their new +% values. \Macro{AddToLayerPageStyleOptions} adds the new values to the +% already given. +% \begin{macrocode} +%<*package&body> +\newcommand*{\ModifyLayerPageStyleOptions}[2]{% + \edef\reserved@a{\GetRealPageStyle{#1}}% + \IfLayerPageStyleExists{#1}{% + \expandafter\scrlayer@modify@layer@ps@options\expandafter{% + \reserved@a + }{#2}% + }{% + \scrlayer@lpm@error{#1}{modifying}% + }% +} +% \end{macrocode} +% \begin{macro}{\scrlayer@modify@layer@ps@options} +% Helper needed because of alias page styles. Same parameters like +% \cs{ModifyLayerPageStyleOptions} +% \begin{macrocode} +\newcommand*{\scrlayer@modify@layer@ps@options}[2]{% + \begingroup + \def\scrlayer@current@pagestyle{#1}% + \@namedef{@ps@#1@initialhook}{}% + \@namedef{@ps@#1@hook}{}% + \@namedef{@ps@#1@backgroundhook}{}% + \@namedef{@ps@#1@foregroundhook}{}% + \@namedef{@ps@#1@oddpagehook}{}% + \@namedef{@ps@#1@evenpagehook}{}% + \@namedef{@ps@#1@onesidehook}{}% + \@namedef{@ps@#1@twosidehook}{}% + \@namedef{@ps@#1@floatpagehook}{}% + \@namedef{@ps@#1@nonfloatpagehook}{}% + \FamilyExecuteOptions[.definelayerpagestyle]{KOMAarg}{#2}% + \def\reserved@a{\endgroup}% + \def\@sls@##1{% + \expandafter\let\expandafter\reserved@b\csname @ps@#1@##1hook\endcsname + \ifx\reserved@b\@empty\else + \l@addto@macro\reserved@a{\@namedef{@ps@#1@##1hook}}% + \expandafter\l@addto@macro\expandafter\reserved@a\expandafter{% + \expandafter{% + \reserved@b + }% + }% + \fi + }% + \@sls@{initial}% + \@sls@{}% + \@sls@{background}% + \@sls@{foreground}% + \@sls@{oddpage}% + \@sls@{evenpage}% + \@sls@{oneside}% + \@sls@{twoside}% + \@sls@{floatpage}% + \@sls@{nonfloatpage}% + \reserved@a +} +% \end{macrocode} +% \end{macro}^^A \scrlayer@modify@layer@ps@options +% \begin{macrocode} +\newcommand*{\AddToLayerPageStyleOptions}[2]{% + \IfLayerPageStyleExists{#1}{% + \def\scrlayer@current@pagestyle{#1}% + \FamilyExecuteOptions[.definelayerpagestyle]{KOMAarg}{#2}% + }{% + \scrlayer@lpm@error{#1}{modifying}% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \AddToLayerPageStyleOptions +% \end{macro}^^A \ModifyLayerPageStyleOptions +% +% \begin{macro}{\DeclarePageStyleAlias} +% \begin{macro}{\DeclareNewPageStyleAlias} +% \begin{macro}{\ProvidePageStyleAlias} +% \begin{macro}{\RedeclarePageStyleAlias} +% \begin{description} +% \item[\Parameter{string}:] The name of the page style to be declared +% (must be expandable and result in a string). +% \item[\Parameter{string}:] The name of the existing page style +% (must be expandable and result in a string). +% \end{description} +% \begin{macrocode} +%<*package&body> +\newcommand*{\DeclarePageStyleAlias}[2]{% + \edef\reserved@a{\GetRealPageStyle{#2}}% + \scr@ifundefinedorrelax{ps@\reserved@a}{% + \PackageError{scrlayer}{unknown real page style `#2'}{% + You've tried to declare an alias for page style `#2',\MessageBreak + but the real page style of `#2' is undefined.\MessageBreak + You can define aliases, only if the real page style has been + defined.\MessageBreak + If you'll continue, the declaration will be ignored.% + }% + \DestroyRealLayerPageStyle{#1}% + \DestroyLayerAlias{#1}% + }{% + \@namedef{@ps@#1@alias}{#2}% + \@namedef{ps@#1}{\pagestyle{\@nameuse{@ps@#1@alias}}}% + }% +} +\newcommand*{\DeclareNewPageStyleAlias}[1]{% + \@ifundefined{ps@#1}{}{% + \PackageError{scrlayer}{% + Page style `#1' already defined% + }{% + You may use \string\DeclareNewPageStyleAlias\space to declare a new + page style only\MessageBreak + if that page style hasn't been declared or defined before.\MessageBreak + You may use either \string\ProvidePageStyleAlias\space to declare the + page style only\MessageBreak + if it hasn't been declared or defined before, or + \string\RedeclarePageStyleAlias\MessageBreak + to overwrite the former declaration or definition of the page + style\MessageBreak + Nevertheless, if you'll continue, the page style will be + overwritten\MessageBreak + by the new alias.% + }% + }% + \DeclarePageStyleAlias{#1}% +} +\newcommand*{\ProvidePageStyleAlias}[2]{% + \@ifundefined{ps@#1}{% + \DeclarePageStyleAlias{#1}{#2}% + }{% +%<*trace> + \PackageInfo{scrlayer}{% + \string\ProvidePageStyleAlias{#1}{#2} ignored,\MessageBreak + because page style `#1' already\MessageBreak + exists% + }% +% + }% +} +\newcommand*{\RedeclarePageStyleAlias}[1]{% + \@ifundefined{ps@#1}{% + \PackageError{scrlayer}{% + Page style `#1' not yet defined% + }{% + You may use \string\RedeclarePageStyleAlias\space to declare a page + style only\MessageBreak + if that page style has already been declared or defined.\MessageBreak + You may use either \string\DeclareNewPageStyleAlias, + \string\DeclarePageStyleAlias,\MessageBreak + or \string\ProvidePageStyleAlias\space to declare that not yet + defined page style.\MessageBreak + Nevertheless, if you'll continue, the page style will be declared.% + }% + }{}% + \DeclarePageStyleAlias{#1}% +} +% \end{macrocode} +% \end{macro}^^A \RedeclarePageStyleAlias +% \end{macro}^^A \ProvidePageStyleAlias +% \end{macro}^^A \DeclareNewPageStyleAlias +% \end{macro}^^A \DeclarePageStyleAlias +% +% \begin{macro}{\DestroyPageStyleAlias} +% \begin{description} +% \item[\Parameter{string}:] the name of a page style (must be +% expandable and result in a string). +% \end{description} +% \begin{macrocode} +\newcommand*{\DestroyPageStyleAlias}[1]{% + \scr@ifundefinedorrelax{@ps@#1@alias}{}{% + \expandafter\let\csname @ps@#1@alias\endcsname\relax + \expandafter\let\csname ps@#1\endcsname\relax + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\GetRealPageStyle} +% \begin{description} +% \item[\Parameter{string}:] the name of a page style (must be +% expandable and result in a string). +% \end{description} +% Get the real name of the page style. +% \begin{macrocode} +\newcommand*{\GetRealPageStyle}[1]{% + \scr@ifundefinedorrelax{@ps@#1@alias}{#1}{% + \expandafter\GetRealPageStyle\expandafter{% + \expandafter\csname @ps@#1@alias\expandafter\endcsname\expandafter}% + }% +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\IfLayerPageStyleExists} +% \begin{macro}{\IfRealLayerPageStyleExists} +% \begin{description} +% \item[\Parameter{string}:] the name of the page style to be tested (must +% be expandable and result in a string). +% \item[\Parameter{code}:] whatever code should be expanded, if the test +% result is true. +% \item[\Parameter{code}:] whatever code should be expanded, if the test +% result is false. +% \end{description} +% Test, whether or not the page style is a declared layer page style. +% \begin{macrocode} +%<*package&body> +\newcommand*{\IfLayerPageStyleExists}[1]{% + \scr@ifundefinedorrelax{ps@#1}{% + \expandafter\@secondoftwo + }{% + \scr@ifundefinedorrelax{@ps@#1@layers}{% + \scr@ifundefinedorrelax{@ps@#1@alias}{% + \expandafter\@secondoftwo + }{% + \expandafter\IfLayerPageStyleExists\expandafter{% + \expandafter\csname @ps@#1@alias\expandafter\endcsname\expandafter}% + }% + }{% + \expandafter\@firstoftwo + }% + }% +} +\newcommand*{\IfRealLayerPageStyleExists}[1]{% + \scr@ifundefinedorrelax{ps@#1}{% + \expandafter\@secondoftwo + }{% + \scr@ifundefinedorrelax{@ps@#1@layers}{% + \expandafter\@secondoftwo + }{% + \expandafter\@firstoftwo + }% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \IfRealLayerPageStyleExists +% \end{macro}^^A \IfLayerPageStyleExists +% +% \begin{macro}{\IfLayerAtPageStyle} +% \begin{macro}{\IfSomeLayersAtPageStyle} +% \begin{macro}{\IfLayersAtPageStyle} +% \begin{description} +% \item[\Parameter{string}:] the name of the page style to be tested (must +% be expandable and result in a string). +% \item[\Parameter{string}:] the name(s) of the layer(s) to be tested (must be +% expandable and result in a string). +% \item[\Parameter{code}:] whatever code should be expanded, if the test +% result is true. +% \item[\Parameter{code}:] whatever code should be expanded, if the test +% result is false. +% \end{description} +% Tests: +% \begin{description} +% \item[\Macro{IfLayerAtPageStyle}:] Test, whether or not the page style has a +% layer. The second argument is the name of one layer only! +% \item[\Macro{IfSomeLayersAtPageStyle}:] Test, whether or not the page style +% has at least one layer of a list of layers. The second argument is a comma +% separated list of layer names. +% \item[\Macro{IfLayersAtPageStyle}:] Test, whether or not the page style has +% every layer of a list of layers. The second argument is a comma separated +% list of layer names. +% \end{description} +% Note, that testing an page style, that is not a layer page style will result +% in an error and neither the third nor the fourth argument will be expanded. +% Note, that layers with empty name are only part of a layer page style +% without any layers. +% +% Note also, that with active \Option{deactivatepagestylelayers} layers are +% logically not longer part of the page styles. +% \begin{macrocode} +%<*package&body> +\newcommand*{\IfLayerAtPageStyle}[2]{% + \IfLayerPageStyleExists{#1}{% + \begingroup + \edef\reserved@a{\GetRealPageStyle{#1}}% + \@tempswafalse + \ifstr{#2}{}{% + \expandafter\ifx\csname @ps@\reserved@a @layers\endcsname\@empty + \@tempswatrue + \fi + }{% + \expandafter\ForEachLayerOfPageStyle\expandafter{% + \reserved@a}{\ifstr{##1}{#2}{\aftergroup\@tempswatrue}{}}% + }% + \if@tempswa \aftergroup\@firstoftwo \else \aftergroup\@secondoftwo \fi + \expandafter\endgroup + }{% + \scrlayer@lpm@error{#1}{testing for layers}% + \expandafter\@gobbletwo + }% +} +\newcommand*{\IfSomeLayersAtPageStyle}[2]{% + \IfLayerPageStyleExists{#1}{% + \begingroup + \@tempswafalse + \@for \reserved@a:=#2\do {% + \edef\reserved@a{\noexpand\IfLayerAtPageStyle{#1}{\reserved@a}}% + \reserved@a{\@tempswatrue}{}% + }% + \if@tempswa \aftergroup\@firstoftwo \else \aftergroup\@secondoftwo \fi + \expandafter\endgroup + }{% + \scrlayer@lpm@error{#1}{testing for layers}% + \expandafter\@gobbletwo + }% +} +\newcommand*{\IfLayersAtPageStyle}[2]{% + \IfLayerPageStyleExists{#1}{% + \begingroup + \@tempswatrue + \ifstr{#2}{}{% + \edef\reserved@a{\GetRealPageStyle{#1}}% + \expandafter\ifx\csname @scr@\reserved@a @layers\endcsname\@empty \else + \@tempswafalse + \fi + }{% + \@for \reserved@a:=#2\do {% + \edef\reserved@a{\noexpand\IfLayerAtPageStyle{#1}{\reserved@a}}% + \reserved@a{}{\@tempswafalse}% + }% + }% + \if@tempswa \aftergroup\@firstoftwo \else \aftergroup\@secondoftwo \fi + \expandafter\endgroup + }{% + \scrlayer@lpm@error{#1}{testing for layers}% + \expandafter\@gobbletwo + }% +} +% +% \end{macrocode} +% \end{macro}^^A \IfLayersAtPageStyle +% \end{macro}^^A \IfSomeLayersAtPageStyle +% \end{macro}^^A \IfLayerAtPageStyle +% +% +% \begin{macro}{\DestroyRealLayerPageStyle} +% \begin{description} +% \item[\Parameter{string}:] name of the layer page style to be destroyed. +% \end{description} +% Destroys the given layer page style but not the layers! If the page style is +% the current page style, the empty page style an empty page style will be +% activated. If the special page style is valid an the destroyed one, this +% will be removed. This command may be used, e.g., at +% \Macro{scrlayerOnAutoRemoveInterface} after destroying the layers. +% \begin{macrocode} +%<*package&body> +\newcommand*{\DestroyRealLayerPageStyle}[1]{% + \IfRealLayerPageStyleExists{#1}{% + \expandafter\let\csname @ps@#1@initialhook\endcsname\relax + \expandafter\let\csname @ps@#1@hook\endcsname\relax + \expandafter\let\csname @ps@#1@backgroundhook\endcsname\relax + \expandafter\let\csname @ps@#1@foregroundhook\endcsname\relax + \expandafter\let\csname @ps@#1@oddpagehook\endcsname\relax + \expandafter\let\csname @ps@#1@evenpagehook\endcsname\relax + \expandafter\let\csname @ps@#1@onesidehook\endcsname\relax + \expandafter\let\csname @ps@#1@twosidehook\endcsname\relax + \expandafter\let\csname @ps@#1@floatpagehook\endcsname\relax + \expandafter\let\csname @ps@#1@nonfloatpagehook\endcsname\relax + \expandafter\let\csname @ps@#1@layers\endcsname\relax + \expandafter\let\csname ps@#1\endcsname\relax + \ifstr{\currentpagestyle}{#1}{% + \def\currentpagestyle{scrlayer@empty}% + \let\@oddhead\@empty\let\@evenhead\@empty + \let\@oddfoot\@empty\let\@evenfoot\@empty + }{}% + \if@specialpage + \ifstr{\@specialstyle}{#1}{% + \global\let\@specialstyle\relax + \global\@specialpagefalse + }{}% + \fi + }{% +%<*trace> + \PackageInfo{scrlayer}{% + \string\DestroyRealLayerPageStyle{#1} ignored,\MessageBreak + because the layer page style isn't\MessageBreak + defined (any longer)% + }% +% + }% +} +% +% \end{macrocode} +% \end{macro}^^A \DestroyRealLayerPageStyle +% +% +% \subsection{Kernel Patches} +% +% This package as so many others need to patch the \LaTeX{} kernel. This will +% be done, because we need information about the current active package style. +% +% \begin{macro}{\pagestyle} +% \begin{macro}{\currentpagestyle} +% We save the current page style. Note, that this doesn't work for special +% page styles\footnote{Special page styles are set by +% \Macro{thispagestyle}.} that hasn't been defined using +% \Package{scrlayer}. As long as \Macro{currentpagestyle} is empty, the +% current page style is unknown. And we add two hooks into page style +% selection: one before an one after the selection. +% \begin{macrocode} +%<*package&body> +\newcommand*{\currentpagestyle}{} +\PackageInfo{scrlayer}{patching LaTeX kernel macro \string\pagestyle} +\def\reserved@a{\scrlayer@exec@before@pagestyle@hook{##1}} +\expandafter\expandafter\expandafter\renewcommand +\expandafter\expandafter\expandafter*% +\expandafter\expandafter\expandafter\pagestyle +\expandafter\expandafter\expandafter[% +\expandafter\expandafter\expandafter1% +\expandafter\expandafter\expandafter]% +\expandafter\expandafter\expandafter{% + \expandafter\reserved@a + \pagestyle{#1}% + \edef\currentpagestyle{\GetRealPageStyle{#1}}% + \scrlayer@exec@after@pagestyle@hook{#1}% +} +\AtBeginDocument{% + \begingroup + \let\scrlayer@exec@before@pagestyle@hook\@gobble + \let\scrlayer@exec@after@pagestyle@hook\@gobble + \def\ps@test{}% + \pagestyle{test}% + \ifstr{\currentpagestyle}{test}{}{% + \PackageError{scrlayer}{package incompatibility detected}{% + Another package redefines \string\pagestyle\space incompatible with + scrlayer.\MessageBreak + This disables setting of \string\currentpagestyle\space and may + be serious.\MessageBreak + Maybe you could prevent this loading package scrlayer + later.\MessageBreak + If not you should either not use scrlayer or not the other + package,\MessageBreak + that redefines \string\pagestyle.% + }% + }% + \endgroup +} +% +% \end{macrocode} +% \end{macro}^^A \currentpagestyle +% +% \begin{macro}{\BeforeSelectAnyPageStyle} +% \begin{macro}{\scrlayer@exec@before@pagestyle@hook} +% \begin{macro}{\AfterSelectAnyPageStyle} +% \begin{macro}{\scrlayer@exec@after@pagestyle@hook} +% We have two macros to locally add code to be executed whenever a page style +% changes using \Macro{pagestyle}. The first one executes the code before the +% page style will be changed, the second one after the page style has been +% changed. Note, that you may use \#1 as a placeholder of the argument of +% \Macro{pagestyle}. +% \begin{macrocode} +%<*package&body> +\newcommand*{\BeforeSelectAnyPageStyle}[1]{% + \expandafter\renewcommand\expandafter*% + \expandafter\scrlayer@exec@before@pagestyle@hook + \expandafter[\expandafter1\expandafter]\expandafter{% + \scrlayer@exec@before@pagestyle@hook{##1}#1}% +} +\newcommand*{\scrlayer@exec@before@pagestyle@hook}[1]{} +\newcommand*{\AfterSelectAnyPageStyle}[1]{% + \expandafter\renewcommand\expandafter*% + \expandafter\scrlayer@exec@after@pagestyle@hook + \expandafter[\expandafter1\expandafter]\expandafter{% + \scrlayer@exec@after@pagestyle@hook{##1}#1}% +} +\newcommand*{\scrlayer@exec@after@pagestyle@hook}[1]{} +% +% \end{macrocode} +% \end{macro}^^A \scrlayer@exec@after@pagestyle@hook +% \end{macro}^^A \AfterSelectAnyPageStyle +% \end{macro}^^A \scrlayer@exec@before@pagestyle@hook +% \end{macro}^^A \BeforeSelectAnyPageStyle +% \end{macro}^^A \pagestyle +% +% +% \subsection{Declaration of End User Interfaces} +% +% The package also supports an interface for loading end user interfaces. +% Maybe it would be a good idea to move this to \Package{scrbase}, but +% currently it is not needed. +% +% \begin{macro}{\scrlayerAddToInterface} +% \begin{macro}{\scrlayerAddCsToInterface} +% \begin{description} +% \item[\texttt{\{\meta{command}\textbar\meta{command sequence}\}}:] the +% command (with backslash) or the command sequence of the command (without +% backslash) of the command, that should be added to the interface. +% \item[\Parameter{code}:] will be executed, only if the command could be +% added to the interface. +% \end{description} +% Add either a command sequence or a command to the user interface. +% \begin{macrocode} +%<*package&body> +\newcommand*{\scrlayerAddToInterface}[2][\@currname.\@currext]{% + \begingroup + \edef\reserve@a{% + \noexpand\scrlayerAddCsToInterface[#1]{\expandafter\@gobble\string #2}% + }% + \expandafter\endgroup\reserve@a +} +\newcommand{\scrlayerAddCsToInterface}[3][\@currname.\@currext]{% + \@ifundefined{scrlayer@#1@commandlist}{% + \PackageError{scrlayer}{unkown interface `#1'}{% + I've been told to add a command sequence to an interface, that hasn't + been\MessageBreak + defined yet. Please initialise every interface using + \string\InitInterface\space before\MessageBreak + trying to add command sequences to it.\MessageBreak + If you'll continue, the command will be ignored.% + }% + }{% + \@ifundefined{#2}{% + \scrlayer@AddCsToInterface[#1]{#2}#3% + }{% + \@ifundefined{scrlayer@command@#2}{% + \ifscrlayer@forceoverwrite + \PackageWarning{scrlayer}{% + Overloading `\@backslashchar#2'!\MessageBreak + scrlayer detected, that the given command\MessageBreak + has been defined already, when\MessageBreak + `#1' tried to define it again.\MessageBreak + Nevertheless, while scrlayer is in force overwrite\MessageBreak + mode currently, the original definition will be\MessageBreak + removed% + }% + \expandafter\let\csname #2\endcsname\relax + \scrlayer@AddCsToInterface[#1]{#2}#3% + \else + \PackageError{scrlayer}{cannot define `\@backslashchar#2'}{% + scrlayer interface `#1' has tried to + define command\MessageBreak + `\@backslashchar#2', but this has already been defined\MessageBreak + and is not part of another interface. So it cannot be + defined.\MessageBreak + Before continuing you should solve this conflict.\MessageBreak + Nevertheless, you may use option `forceoverwrite' to get only a + warning instead\MessageBreak + of an error. But this wouldn't solve the problem at + all!\MessageBreak + This error is almost fatal, so you should abort the LaTeX + run.% + }% + \fi + }{% + \ifscrlayer@autoremoveinterfaces + \PackageInfo{scrlayer}{% + already define interface command\MessageBreak + `\@backslashchar#2' detected.\MessageBreak + Command has been defined by interface\MessageBreak + `\@nameuse{scrlayer@command@#2}'.\MessageBreak + To continue installation of interface\MessageBreak + `#1', interface\MessageBreak + `\@nameuse{scrlayer@command@#2}' will\MessageBreak + be removed% + }% + \@nameuse{scrlayer@\@nameuse{scrlayer@command@#2}@onremove}% + \begingroup + \def\@elt##1{% + \aftergroup\let\aftergroup##1\aftergroup\relax + }% + \@nameuse{scrlayer@\@nameuse{scrlayer@command@#2}@commandlist}% + \endgroup + \expandafter\let\csname + scrlayer@\@nameuse{scrlayer@command@#2}@commandlist\endcsname\relax + \expandafter\let\csname + scrlayer@\@nameuse{scrlayer@command@#2}@onremove\endcsname\relax + \expandafter\let\csname #2\endcsname\relax + \scrlayer@AddCsToInterface[#1]{#2}#3% + \else + \PackageError{scrlayer}{cannot define `\@backslashchar#2'}{% + Interface command `\@backslashchar#2' has already + been\MessageBreak + defined by interface + `\@nameuse{scrlayer@command@#2}'.\MessageBreak + So it cannot be defined again.\MessageBreak + You may try scrlayer option `autoremoveinterfaces' to + automatically remove\MessageBreak + older interfaces in such conflict situations.\MessageBreak + For now, it's recommended so solve the problem before you'll + continue.% + }% + \fi + }% + }% + }% +}% +% \end{macrocode} +% \begin{macro}{\scrlayer@AddCsToInterface} +% Little helper, to avoid repeating this \Macro{expandafter} orgy. +% \begin{description} +% \item[\OParameter{string}:] the interface name (must be expandable and +% expand to a string) +% \item[\Parameter{command sequence}] the command sequence of the command to +% be added. +% \end{description} +% \begin{macrocode} +\newcommand*\scrlayer@AddCsToInterface[2][\@currname.\@currext]{% + \expandafter\expandafter\expandafter\def\expandafter + \csname scrlayer@#1@commandlist\expandafter\expandafter\expandafter\endcsname + \expandafter\expandafter\expandafter{% + \csname scrlayer@#1@commandlist\expandafter\endcsname + \expandafter\@elt\csname #2\endcsname + }% + \@namedef{scrlayer@command@#2}{#1}% +} +% +% \end{macrocode} +% \begin{option}{forceoverwrite} +% \begin{macro}{\ifscrlayer@forceoverwrite} +% \begin{description} +% \item[\Parameter{simple switch}:] whether or not to overwrite already +% defined command. Note: If true, there will still be a warning. +% \end{description} +% \begin{macrocode} +%<*options> +\KOMA@ifkey{forceoverwrite}{scrlayer@forceoverwrite} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @forceoverwrite} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @forceoverwrite@default} +% +% +% \end{macrocode} +% \end{macro}^^A \ifscrlayer@forceoverwrite +% \end{option}^^A forceoverwrite +% +% \begin{option}{autoremoveinterfaces} +% \begin{macro}{\ifscrlayer@autoremoveinterfaces} +% \begin{description} +% \item[\Parameter{simple switch}:] whether or not older interfaces may be +% automatically removed in conflict cases. +% \end{description} +% \begin{macrocode} +%<*options> +\KOMA@ifkey{autoremoveinterfaces}{scrlayer@autoremoveinterfaces} +%<*interface> +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @autoremoveinterfaces} +\scrlayer@AddCsToInterface{% + KV@KOMA.\@currname.\@currext @autoremoveinterfaces@default} +% +% +% \end{macrocode} +% \end{macro}^^A \ifscrlayer@autoremoveinterfaces +% \end{option}^^A autoremoveinterfaces +% \end{macro}^^A \scrlayer@AddCsToInterface +% \end{macro}^^A \scrlayerAddCsToInterface +% \end{macro}^^A \scrlayerAddToInterface +% +% \begin{macro}{\scrlayerInitInterface} +% \begin{description} +% \item[\OParameter{string}:] the name of the interface. Generally this is +% the file name of the package or class, that defines the interface +% (default: \texttt{\Macro{@currname}.\Macro{@currext}}). +% \end{description} +% This registers a new user interface. +% \begin{macrocode} +%<*package&body> +\newcommand*{\scrlayerInitInterface}[1][\@currname.\@currext]{% + \@ifundefined{scrlayer@#1@commandlist}{% + \@namedef{scrlayer@#1@commandlist}{}% + }{% + \begingroup + \def\@elt##1{\space\space\string##1\MessageBreak}% + \PackageError{scrlayer}{interface `#1' already initialised}{% + You've tried to initialise scrlayer interface `#1',\MessageBreak + but an interface of this name has been initialised + already.\MessageBreak + Here's a list of all macros of the already initialised + interface:\MessageBreak + \@nameuse{scrlayer@#1@commandlist}.% + If you'll continue, this re-initialisation will be ignored.% + }% + \endgroup + }% +} +% +% \end{macrocode} +% The initialisation has to be done by each interface package: +% \begin{macrocode} +%\scrlayerInitInterface +% \end{macrocode} +% \end{macro}^^A \scrlayerInitInterface +% +% \begin{macro}{\scrlayerOnAutoRemoveInterface} +% \begin{description} +% \item[\OParameter{string}:] the name of the interface. Generally this is +% the file name of the package or class, that defines the interface +% (default: \texttt{\Macro{@currname}.\Macro{@currext}}). +% \item[\Parameter{code}:] will be executed if the interface will be removed +% automatically (see option \Option{autoremoveinterfaces}). +% \end{description} +% \begin{macrocode} +%<*package&body> +\newcommand*{\scrlayerOnAutoRemoveInterface}[2][\@currname.\@currext]{% + \@ifundefined{scrlayer@#1@onremove}{\@namedef{scrlayer@#1@onremove}{}}{}% + \expandafter\l@addto@macro\csname scrlayer@#1@onremove\endcsname{#2}% +} +% +% \end{macrocode} +% \end{macro}^^A \scrlayerOnAutoRemoveInterface +% +% +% \iffalse^^A meta-comment +% +% \fi^^A meta-comment +% +% +% \Finale +% +\endinput +% +% end of file `scrlayer.dtx' + +%%% Local Variables: +%%% mode: doctex +%%% mode: flyspell +%%% ispell-local-dictionary: "en_GB" +%%% 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 deleted file mode 100644 index 3ef7c6968aa..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrlettr.dtx +++ /dev/null @@ -1,2836 +0,0 @@ -% \CheckSum{1879} -% \iffalse meta-comment -% ====================================================================== -% scrlettr.dtx -% Copyright (c) Axel Kielhorn and Markus Kohm, 1995-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrlettr.dtx -% Copyright (c) Axel Kielhorn and Markus Kohm, 1995-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== -% \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 \~} -% -% \iffalse -%%% From: scrlettr.dtx -%<*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 -% -% 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} 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} -\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{v2.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{v2.2b}{1995/02/16}{{\cmd\fromsig} wird nicht mehr auf {\cmd\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} -% 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} -% \begin{macro}{\setpresigskip} -% \changes{v2.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} -% -% \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: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrlettr.ins b/Master/texmf-dist/source/latex/koma-script/scrlettr.ins deleted file mode 100644 index 6f587b8356c..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrlettr.ins +++ /dev/null @@ -1,72 +0,0 @@ -% ====================================================================== -% scrlettr.ins -% Copyright (c) Markus Kohm, 2006-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrlettr.ins -% Copyright (c) Markus Kohm, 2006-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== - -% ---------- start of docstrip process --------------------------------- -\def\batchfile{scrlettr.ins} - -% ---------- KOMA-Script default docstrip declarations ----------------- - -\input docstrip.tex -\@@input scrstrip.inc - -% ---------- File generation ------------------------------------------- - -\generate{\usepreamble\defaultpreamble - \file{scrlettr.cls}{% - \from{scrlettr.dtx}{scrlettr}% - \from{scrlogo.dtx}{logo}% - }% - \file{scrlettr.drv}{% - \from{scrlettr.dtx}{driver}% - }% -} - -% ---------- end of docstrip process ----------------------------------- - -\ifToplevel{% - \def\idocfiles{`scrlettr.drv'}% -} - -\@@input scrstrop.inc - -\endinput -% -% end of file `scrlettr.ins' -%%% Local Variables: -%%% mode: TeX -%%% TeX-master: "scrmain.ins" -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrlfile.dtx b/Master/texmf-dist/source/latex/koma-script/scrlfile.dtx index 01f99fd20b0..c0b5498135b 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrlfile.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrlfile.dtx @@ -1,8 +1,8 @@ -% \CheckSum{599} +% \CheckSum{781} % \iffalse meta-comment % ====================================================================== % scrlfile.dtx -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the work `scrlfile' which is part of the LaTeX2e % KOMA-Script bundle. @@ -18,11 +18,10 @@ % % The Current Maintainer and author of this work is Markus Kohm. % -% This work consists of files `scrlfile.dtx', `scrlfile.ins' and -% `scrlogo.dtx' at least. +% This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrlfile.dtx -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Diese Datei ist Teil des Werks `scrlfile', das wiederum Teil des % LaTeX2e KOMA-Script Pakets ist. @@ -39,8 +38,7 @@ % % Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. % -% Dieses Werk besteht mindestens aus den Dateien `scrlfile.dtx', -% `scrlfile.ins' und `scrlogo.dtx'. +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. % ====================================================================== % \fi % @@ -61,30 +59,36 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: scrlfile.dtx -%<*driver|scrlfile|load> -% \fi -\def\scrlfileversion{2012/06/15 v3.12} -% \iffalse -% +%%% From File: $Id: scrlfile.dtx 1525 2013-11-22 12:57:29Z mjk $ %<*driver> -% \fi +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{scrlfile.dtx}[% -% \iffalse % %<*driver|scrlfile> %\ProvidesPackage{scrlfile}[% -% \fi - \scrlfileversion\space KOMA-Script package (loading files)] -% \iffalse +%!KOMAScriptVersion + package (loading files)] % +%<*dtx> +\ifx\documentclass\undefined + \input scrdocstrip.tex + \@@input scrkernel-version.dtx + \@@input scrstrip.inc + \KOMAdefVariable{COPYRIGHTFROM}{2002} + \generate{\usepreamble\defaultpreamble + \file{scrlfile.sty}{% + \from{scrlfile.dtx}{scrlfile}% + \from{scrlogo.dtx}{logo}% + }% + } + \@@input scrstrop.inc +\else + \let\endbatchfile\relax +\fi +\endbatchfile +% %<*driver> -\IfFileExists{scrdoc.cls}{% - \documentclass[halfparskip-]{scrdoc} -}{% - \documentclass{ltxdoc} -} -\providecommand*{\KOMAScript}{\textsf{KOMA-Script}} +\documentclass[halfparskip-]{scrdoc} \usepackage[german,english]{babel} \CodelineIndex \RecordChanges @@ -144,7 +148,7 @@ % % \changes{v2.95}{2002/06/11}{% % First version split from hugh scrclass.dtx} -% +% \sloppy % % \section[Hook loading files, packages or classes]{% % Hooks loading files, packages or classes\footnote{You'll find a @@ -368,11 +372,21 @@ % Note: To replace classes you have to load \textsf{scrlfile} using % \cs{RequirePackage} before loading the class. % +% \DescribeMacro{\UnReplaceInput}%^^A +% \DescribeMacro{\UnReplacePackage}%^^A +% \DescribeMacro{\UnReplaceClass}%^^A +% After defining a replacement of a input file, package, or class (see the +% previously described commands for information about replacement definition), +% you may un-define this replacement. The commands expect one argument: the +% name of the input file, package, or class. +% % \DescribeMacro{\PreventPackageFromLoading} % \DescribeMacro{\PreventPackageFromLoading*} +% \DescribeMacro{\UnPreventPackageFromLoading} +% \DescribeMacro{\UnPreventPackageFromLoading*} % \DescribeMacro{\ResetPreventPackageFromLoading} % \DescribeMacro{\StorePreventPackageFromLoading} -% The command \cs{PreventPackageFromLoading}\marg{package list} +% The command \cs{PreventPackageFromLoading}\oarg{do instead}\marg{package list} % does not replace a package by another but prevents packages from beeing % loaded even if they should be loaded using \cs{RequirePackage} or % \cs{usepackage}. The \meta{package list} is a comma seperated list of @@ -386,7 +400,17 @@ % The normal version of \cs{PreventPackageFromLoading} with empty argument % results in a warning message. The star version % \cs{PreventPackageFromLoading*} writes only an info into the log-file, if -% the argument is empty. Both commands are not robust! +% the argument is empty. +% +% Both versions have an optional argument with code, that will be executed +% instead of loading the package. +% +% You may also remove packages from beeing prevented from beeing loaded using +% \cs{UnPreventPackageFromLoading}\marg{package list}. The star version also +% cleans the \meta{do instead} code. +% +% All these commands are not robust! +% % % \DescribeMacro{\BeforeClosingMainAux} % The command \cs{BeforeClosingMainAux}\marg{instructions} @@ -583,28 +607,61 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\ReplaceInput} -% \changes{v2.96}{2006/07/19}{new command} +% \begin{macro}{\ReplaceInput} +% \changes{v2.96}{2006/07/19}{new command} +% \changes{v3.12}{2013/11/15}{implemented} % Defining the replacement by definition of \cs{\#1-@alias}. % \begin{macrocode} -\newcommand*{\ReplaceFile}[2]{% +\newcommand*{\ReplaceInput}[2]{% \expandafter\edef\csname #1-@alias\endcsname{#2}% } % \end{macrocode} -% \end{macro} +% \begin{macro}{\ReplaceFile} +% \changes{v2.96}{2006/07/19}{new command} +% \changes{v3.12}{2013/11/15}{throw error} +% Sorry, but I've implemented the wrong command some time ago. +% \begin{macrocode} +\newcommand*{\ReplaceFile}{% + \PackageError{scrlfile}{% + usage of not documented command `\string\ReplaceFile'% + }{% + Command `\string\ReplaceFile' has been implemented accidentally in + KOMA-Script 2.96\MessageBreak + and replaced by `\string\ReplaceInput' in KOMA-Script 3.12.\MessageBreak + You should replace `\string\ReplaceFile' by `\string\ReplaceInput' to + avoid this error\MessageBreak + message% + }% + \ReplaceInput +} +% \end{macrocode} +% \end{macro} +% \end{macro} % -% \begin{macro}{\ReplacePackage} -% \changes{v2.96}{2006/07/19}{new command} -% \begin{macro}{\ReplaceClass} -% \changes{v2.96}{2006/07/19}{new command} -% \begin{macro}{\@replacefilewithext} -% \changes{v2.96}{2006/07/19}{new helper command} +% \begin{macro}{\UnReplaceInput} +% \changes{v3.12}{2013/11/15}{new command} +% Do not longer replace a file. +% \begin{macrocode} +\newcommand*{\UnReplaceInput}[1]{% + \ifcsname #1-@alias\endcsname + \expandafter\let\csname #1-@alias\endcsname\relax + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ReplacePackage} +% \changes{v2.96}{2006/07/19}{new command} +% \begin{macro}{\ReplaceClass} +% \changes{v2.96}{2006/07/19}{new command} +% \begin{macro}{\@replacefilewithext} +% \changes{v2.96}{2006/07/19}{new helper command}^^A % Note that replacing a package or class will not replace the input of the % file of the package or class but only the input of package or class. % \begin{macrocode} \newcommand*{\@replacefilewithext}[3]{% \expandafter\edef\csname #1.#3-@aliasname\endcsname{#2}% -} + } \newcommand*{\ReplacePackage}[2]{% \@replacefilewithext{#1}{#2}\@pkgextension } @@ -612,9 +669,34 @@ \@replacefilewithext{#1}{#2}\@clsextension } % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\UnReplacePackage} +% \changes{v3.12}{2013/11/15}{new command} +% \begin{macro}{\UnReplaceClass} +% \changes{v3.12}{2013/11/15}{new command} +% \begin{macro}{\@unreplacefilewithext} +% \changes{v3.12}{2013/11/15}{new helper command}^^A +% Do not nolonger replace a class or package. +% \begin{macrocode} +\newcommand*{\@unreplacefilewithext}[2]{% + \ifcsname #1.#2-@aliasname\endcsname + \expandafter\let\csname #1.#2-@aliasname\endcsname\relax + \fi +} +\newcommand*{\UnReplacePackage}[1]{% + \@unreplacefilewithext{#1}\@pkgextension +} +\newcommand*{\UnReplaceClass}[1]{% + \@unreplacefilewithext{#1}\@clsextension +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% % % \begin{macro}{\scr@replacefile@msg} % \changes{v2.96}{2006/07/19}{new helper command} @@ -791,11 +873,15 @@ % \changes{v3.12}{2012/06/15}{new star version allowes empty argument with % info instead of warning} % \begin{macro}{\@PreventPackageFromLoading} -% \changes{v3.12}{2012/06/15}{New (internal)} +% \changes{v3.12}{2012/06/15}{New (internal)}^^A +% \begin{macro}{\@@PreventPackageFromLoading} +% \changes{v3.12}{2013/11/22}{New (internal)}^^A +% \changes{v3.12}{2013/11/22}{\cs{usepackage} before \cs{documentclass} +% fixed}^^A % \begin{macro}{\scrlfile@excludedpackages} -% \changes{v3.08}{2010/11/04}{New (internal)} +% \changes{v3.08}{2010/11/04}{New (internal)}^^A % \begin{macro}{\scrlfile@saved@RequirePackage} -% \changes{v3.08}{2010/11/04}{New (internal)} +% \changes{v3.08}{2010/11/04}{New (internal)}^^A % \begin{macrocode} \newcommand*{\scrlfile@excludedpackages}{} \let\scrlfile@excludedpackages\@empty @@ -804,15 +890,20 @@ \@ifstar{\@PreventPackageFromLoading\PackageInfo}% {\@PreventPackageFromLoading\PackageWarning}% } -\newcommand*{\@PreventPackageFromLoading}[2]{% +\newcommand*{\@PreventPackageFromLoading}[1]{% + \@ifnextchar [%] + {\@@PreventPackageFromLoading#1}{\@@PreventPackageFromLoading#1[]}% +} +\newcommand*{\@@PreventPackageFromLoading}{} +\def\@@PreventPackageFromLoading#1[#2]#3{% % \end{macrocode} % We do nothing, if the argument was empty: % \begin{macrocode} - \edef\reserved@b{#2}% + \edef\reserved@b{\zap@space#3 \@empty}% \ifx \reserved@b\@empty #1{scrlfile}{% - \string\PreventPackageFromLoading\space with empty argument\MessageBreak - ignored% + \string\PreventPackageFromLoading\space with empty packages\MessageBreak + argument ignored% }% \else % \end{macrocode} @@ -822,7 +913,7 @@ \ifx\scrlfile@excludedpackages\@empty \let\scrlfile@saved@RequirePackage\RequirePackage \let\RequirePackage\scrlfile@RequirePackage - \def\reserved@a#2{% + \def\reserved@a##1##{% \@latex@error {\noexpand \usepackage before \string\documentclass}% {\noexpand \usepackage may only appear in the document @@ -844,12 +935,18 @@ % We have to test, if a package was already loaded. Only not yet loaded % packages will be added to the exclusion list. Empty arguments will be % ignored. -% \changes{v3.11a}{2012/06/11}{missing \cs{scrlfile@excludepackages} at -% redefinition of \cs{scrlfile@excludepackages} added} +% \changes{v3.11a}{2012/06/11}{missing \cs{scrlfile@excludedpackages} at +% redefinition of \cs{scrlfile@excludedpackages} added} % \begin{macrocode} \expandafter\@for \expandafter\reserved@a\expandafter:\expandafter=% \reserved@b\do {% - \ifx\reserved@a\@empty\else + \ifx\reserved@a\@empty + #1{scrlfile}{% + empty package argument for + \string\PreventPackageFromLoading\MessageBreak + ignored% + }% + \else \expandafter\@ifpackageloaded\expandafter{\reserved@a}{% #1{scrlfile}{% package `\reserved@a' already loaded.\MessageBreak @@ -858,6 +955,18 @@ }{% \edef\scrlfile@excludedpackages{\scrlfile@excludedpackages,% \reserved@a}% + \if\relax\detokenize{#2}\relax\else + \@ifundefined{scrlfile@exclude@package@\reserved@a @do}{% + \@namedef{scrlfile@exclude@package@\reserved@a @do}{}% + }{}% + \expandafter\def + \csname scrlfile@exclude@package@\reserved@a + @do\expandafter\expandafter\expandafter\endcsname + \expandafter\expandafter\expandafter{% + \csname scrlfile@exclude@package@\reserved@a @do\endcsname + #2% + }% + \fi }% \fi }% @@ -893,25 +1002,85 @@ } \@onlypreamble\StorePreventPackageFromLoading % \end{macrocode} +% \begin{macro}{\UnPreventPackageFromLoading} +% \changes{v3.12}{2013/11/22}{New}^^A +% \begin{macro}{\@UnPreventPackageFromLoading} +% \changes{v3.12}{2013/11/22}{New (internal)}^^A +% This removes packages from the prevent exclude list. The star variant also +% undefines the instead code. +% \begin{macrocode} +\newcommand*{\UnPreventPackageFromLoading}{% + \@ifstar {\@tempswatrue\@UnPreventPackageFromLoading}% + {\@tempswafalse\@UnPreventPackageFromLoading}% +} +\newcommand*{\@UnPreventPackageFromLoading}[1]{% + \edef\reserved@b{\zap@space#1 \@empty}% + \if@tempswa + \@for\reserved@a:=\reserved@b\do {% + \ifx\reserved@a\@empty \else + \ifcsname scrlfile@exclude@package@\reserved@a @do\endcsname + \expandafter\let + \csname scrlfile@exclude@package@\reserved@a @do\endcsname + \undefined + \fi + \fi + }% + \fi + \ifcsname scrlfile@excludedpackages\endcsname + \let\reserved@a\scrlfile@excludedpackages + \let\scrlfile@excludedpackages\@empty + \expandafter\@for\expandafter\reserved@c + \expandafter:\expandafter=\reserved@a + \do{% + \ifx\reserved@c\@empty\else + \@expandtwoargs\in@{,\reserved@c,}{,\reserved@b,}% + \ifin@ + \else + \edef\scrlfile@excludedpackages{% + \scrlfile@excludedpackages,\reserved@c + }% + \fi + \fi + }% + \ifx\scrlfile@excludedpackages\@empty\ResetPreventPackageFromLoading\fi + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} % \begin{macro}{\scrlfile@RequirePackage} % \changes{v3.08}{2010/11/04}{New (internal)} +% \changes{v3.12}{2013/11/22}{tolerate spaces} +% \changes{v3.12}{2013/11/22}{execute the optional argument of +% \cs{PreventPackageFromLoading}} % This macro will replace \cs{RequirePackage} whenever the exlude list is not % empty % \begin{macrocode} \newcommand*{\scrlfile@RequirePackage}[2][]{% \let\reserved@c\@empty - \@for\reserved@b:=#2\do {% + \let\reserved@d\@empty + \edef\reserved@b{\zap@space#2 \@empty}% + \expandafter\@for\expandafter\reserved@b\expandafter:\expandafter=\reserved@b + \do {% \begingroup \@tempswatrue \@for\reserved@a:=\scrlfile@excludedpackages\do {% \ifx\reserved@a\reserved@b - \PackageInfo{scrlfile}{Excluding package `\reserved@b'\MessageBreak - from loading}% \@tempswafalse \fi }% \if@tempswa \xdef\reserved@c{\reserved@c,\reserved@b}% + \else + \ifx\reserved@b\@empty\else + \PackageInfo{scrlfile}{Excluding package `\reserved@b'\MessageBreak + from loading}% + \@ifundefined{scrlfile@exclude@package@\reserved@b @do}{% + }{% + \expandafter\g@addto@macro\expandafter\reserved@d + \csname scrlfile@exclude@package@\reserved@b @do\endcsname + }% + \fi \fi \endgroup }% @@ -921,6 +1090,7 @@ \edef\reserved@a{\noexpand\scrlfile@saved@RequirePackage[#1]{% \expandafter\@gobble\reserved@c\@empty}}% \fi + \expandafter\reserved@d \reserved@a } % \end{macrocode} @@ -931,6 +1101,7 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\scr@gobbleopt} % \changes{v3.08}{2010/11/04}{New (internal)} @@ -1090,8 +1261,9 @@ %<*load> % Used at \KOMAScript{} classes. % \begin{macrocode} -\edef\@tempa{\noexpand\RequirePackage{scrlfile}[\scrlfileversion]} -\@tempa +\RequirePackage{scrlfile}[% +%!KOMAScriptVersion +] % \end{macrocode} % % \fi diff --git a/Master/texmf-dist/source/latex/koma-script/scrlfile.ins b/Master/texmf-dist/source/latex/koma-script/scrlfile.ins deleted file mode 100644 index cc07880d8fd..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrlfile.ins +++ /dev/null @@ -1,185 +0,0 @@ -% ====================================================================== -% scrlfile.ins -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the work `scrlfile' which is part of the LaTeX2e -% KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% In particular, NO PERMISSION is granted to modify the contents of this -% file since it contains the legal notices that are placed in the files -% it generates. -% -% This work consists of files `scrlfile.dtx', `scrlfile.ins' and -% `scrlogo.dtx' at least. -% ---------------------------------------------------------------------- -% scrlfile.ins -% Copyright (c) Markus Kohm, 2002-2012 -% -% Diese Datei ist Teil des Werks `scrlfile', das wiederum Teil des -% LaTeX2e KOMA-Script Pakets ist. -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Als Besonderheit: Es NICHT GESTATTET den Inhalt dieser Datei zu -% aendern, da sie rechtliche Hinweise enthaelt, die in die erzeugten -% Dateien eingefuegt werden. -% -% Dieses Werk besteht mindestens aus den Dateien `scrlfile.dtx', -% `scrlfile.ins' und `scrlogo.dtx'. -% ====================================================================== - -% ---------- start of docstrip process --------------------------------- -\def\batchfile{scrlfile.ins} - -\input docstrip.tex - -\let\ifbeta=\iffalse - -\ifToplevel{\ifx\generate\undefined - \Msg{************************************************************} - \Msg{*} - \Msg{* This installation requires docstrip version 2.3c or} - \Msg{* later, but an old version of docstrip has been input.} - \Msg{* You have to update docstrip and maybe LaTeX first!} - \Msg{*} - \Msg{************************************************************} - \errhelp{Install a new version of docstrip.} - \errmessage{Old docstrip in input path} - \batchmode - \csname @@end\endcsname - \fi - \Msg{************************************************************} - \Msg{*} - \Msg{* KOMA-Script} - \Msg{* a versatile LaTeX2e bundle} - \Msg{*} - \Msg{* This is `\batchfile', a batchfile to unpack some or all} - \Msg{* parts of KOMA-Script. See `liesmich.txt' (german) or} - \Msg{* `readme.txt' (english) for additional information.} - \Msg{*} - \Msg{* If some - maybe old - files of KOMA-Script are already} - \Msg{* installed, you will be ask, if it is allowed to overwrite} - \Msg{* them. Answering `yes' doesn't mean, that `\batchfile'} - \Msg{* WILL overwrite such files. It means only, that} - \Msg{* `\batchfile' or installation MAY overwrite them.} - \Msg{*} - \Msg{************************************************************} -} - -% ---------- some docstrip switchs ------------------------------------- - -\ifToplevel{% - \keepsilent - \askforoverwritetrue - \ifx\askonceonly\undefined\else\askonceonly\fi -} - -% ---------- defining preambles ---------------------------------------- - -\preamble - -Copyright (c) 1994-2007 -Markus Kohm and any individual authors listed elsewhere in this file. - -This file was generated from file(s) of the KOMA-Script bundle. ---------------------------------------------------------------- - -This work may be distributed and/or modified under the conditions of -the LaTeX Project Public License, version 1.3c of the license. -The latest version of this license is in - http://www.latex-project.org/lppl.txt -and version 1.3c or later is part of all distributions of LaTeX -version 2005/12/01 or later and of this work. - -This work has the LPPL maintenance status "author-maintained". - -The Current Maintainer and author of this work is Markus Kohm. - -This file may only be distributed together with the files -`scrlogo.dtx', `scrlfile.dtx' and `scrlfile.ins'. You may however -distribute the files `scrlogo.dtx', `scrlfile.dtx' and `scrlfile.ins' -without this file. See also `scrlfile.dtx' for additional information. - -If this file is a beta version, you are not allowed to distribute it. - -English and German manuals are part of KOMA-Script bundle. ----------------------------------------------------------- - -A short version of the english manual is at `scrlfile.dtx', too. - -The KOMA-Script bundle (but maybe not this file) was based upon the -LaTeX2.09 Script family created by Frank Neukam 1993 and the LaTeX2e -standard classes created by The LaTeX3 Project 1994-1996. - -\endpreamble - -% ---------- File generation ------------------------------------------- - -\generate{\usepreamble\defaultpreamble - \file{scrlfile.sty}{% - \ifbeta\from{scrbeta.dtx}{package,scrlfile}\fi - \from{scrlfile.dtx}{scrlfile}% - \from{scrlogo.dtx}{logo}% - }% -} - -% ---------- end of docstrip process ----------------------------------- - -\ifToplevel{% - \Msg{************************************************************} - \Msg{*} - \Msg{* KOMA-Script} - \Msg{* a versatile LaTeX2e bundle} - \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!} - \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{* from KOMA-Script bundle for additional information.} - \Msg{*} - \Msg{* You may also produce the implementation documentation} - \Msg{* including also a short version of the english manual.} - \Msg{* To produce it, do} - \Msg{* \space\space latex scrlfile.dtx} - \Msg{* \space\space mkindex scrlfile} - \Msg{* \space\space latex scrlfile.dtx} - \Msg{* after finishing the installation.} - \Msg{*} - \Msg{* Happy TeXing} - \fi - \Msg{*} - \Msg{************************************************************} -} - -\endinput -% -% end of file `scrlfile.ins' -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrlogo.dtx b/Master/texmf-dist/source/latex/koma-script/scrlogo.dtx index c6b2785892a..de99062ebd3 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrlogo.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrlogo.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % ====================================================================== % scrlogo.dtx -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This work may be distributed and/or modified under the conditions of % the LaTeX Project Public License, version 1.3c of the license. @@ -18,7 +18,7 @@ % This work consists of the file `scrlogo.dtx' at least. % ---------------------------------------------------------------------- % scrlogo.dtx -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -53,7 +53,7 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: scrlogo.dtx +%%% From File: $Id: scrlogo.dtx 1380 2013-10-01 15:31:55Z mjk $ %<*driver> % \fi \ProvidesFile{scrlogo.dtx}[2009/01/30 v3.02c KOMA-Script (Logo)] diff --git a/Master/texmf-dist/source/latex/koma-script/scrmain.ins b/Master/texmf-dist/source/latex/koma-script/scrmain.ins index b88ed4498c0..1e0ac181307 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrmain.ins +++ b/Master/texmf-dist/source/latex/koma-script/scrmain.ins @@ -1,6 +1,6 @@ % ====================================================================== % scrmain.ins -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrmain.ins -% Copyright (c) Markus Kohm, 2002-2012 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -35,463 +35,362 @@ % Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. % ====================================================================== -% ---------- start of docstrip process --------------------------------- -\def\batchfile{scrmain.ins} - % ---------- KOMA-Script default docstrip declarations ----------------- -\input docstrip.tex +\input scrdocstrip.tex +\@@input scrkernel-version.dtx \@@input scrstrip.inc % ---------- File generation ------------------------------------------- \generate{\usepreamble\defaultpreamble \file{scrextend.sty}{% - \ifbeta\from{scrbeta.dtx}{package,extend}\fi \from{scrextend.dtx}{package,extend,preidentify}% - \from{scrkvers.dtx}{package,extend}% + \from{scrkernel-version.dtx}{package,extend}% \from{scrextend.dtx}{package,extend,identify,prepare}% - \from{scrkbase.dtx}{load}% + \from{scrkernel-basics.dtx}{load}% \from{scrextend.dtx}{package,extend,option}% - \from{scrkcomp.dtx}{package,extend,option}% - \from{scrkmisc.dtx}{package,extend,option}% - \from{scrkfont.dtx}{package,extend,option}% -% \from{scrktare.dtx}{package,extend,option}% -% \from{scrkpar.dtx}{package,extend,option}% - \from{scrktitl.dtx}{package,extend,option}% - \from{scrksect.dtx}{package,extend,option}% - \from{scrkpage.dtx}{package,extend,option}% - \from{scrkfloa.dtx}{package,extend,option}% - \from{scrkftn.dtx}{package,extend,option}% -% \from{scrkliof.dtx}{package,extend,option}% -% \from{scrkbib.dtx}{package,extend,option}% -% \from{scrkidx.dtx}{package,extend,option}% - \from{scrklist.dtx}{package,extend,option}% - \from{scrkmisc.dtx}{package,extend,execoption}% - \from{scrkcomp.dtx}{package,extend,body}% - \from{scrkfont.dtx}{package,extend,body}% -% \from{scrktare.dtx}{package,extend,body}% -% \from{scrkpar.dtx}{package,extend,body}% - \from{scrktitl.dtx}{package,extend,body}% - \from{scrksect.dtx}{package,extend,body}% - \from{scrkmisc.dtx}{package,extend,body}% - \from{scrkpage.dtx}{package,extend,body}% - \from{scrkfloa.dtx}{package,extend,body}% - \from{scrkftn.dtx}{package,extend,body}% -% \from{scrkliof.dtx}{package,extend,body}% -% \from{scrkbib.dtx}{package,extend,body}% -% \from{scrkidx.dtx}{package,extend,body}% - \from{scrklist.dtx}{package,extend,body}% + \from{scrkernel-compatibility.dtx}{package,extend,option}% + \from{scrkernel-miscellaneous.dtx}{package,extend,option}% + \from{scrkernel-fonts.dtx}{package,extend,option}% +% \from{scrkernel-typearea.dtx}{package,extend,option}% +% \from{scrkernel-paragraphs.dtx}{package,extend,option}% + \from{scrkernel-title.dtx}{package,extend,option}% + \from{scrkernel-sections.dtx}{package,extend,option}% + \from{scrkernel-pagestyles.dtx}{package,extend,option}% + \from{scrkernel-floats.dtx}{package,extend,option}% + \from{scrkernel-footnotes.dtx}{package,extend,option}% +% \from{scrkernel-listsof.dtx}{package,extend,option}% +% \from{scrkernel-bibliography.dtx}{package,extend,option}% +% \from{scrkernel-index.dtx}{package,extend,option}% + \from{scrkernel-listsandtabulars.dtx}{package,extend,option}% + \from{scrkernel-miscellaneous.dtx}{package,extend,execoption}% + \from{scrkernel-compatibility.dtx}{package,extend,body}% + \from{scrkernel-fonts.dtx}{package,extend,body}% +% \from{scrkernel-typearea.dtx}{package,extend,body}% +% \from{scrkernel-paragraphs.dtx}{package,extend,body}% + \from{scrkernel-title.dtx}{package,extend,body}% + \from{scrkernel-sections.dtx}{package,extend,body}% + \from{scrkernel-miscellaneous.dtx}{package,extend,body}% + \from{scrkernel-pagestyles.dtx}{package,extend,body}% + \from{scrkernel-floats.dtx}{package,extend,body}% + \from{scrkernel-footnotes.dtx}{package,extend,body}% +% \from{scrkernel-listsof.dtx}{package,extend,body}% +% \from{scrkernel-bibliography.dtx}{package,extend,body}% +% \from{scrkernel-index.dtx}{package,extend,body}% + \from{scrkernel-listsandtabulars.dtx}{package,extend,body}% \from{scrlogo.dtx}{logo}% }% } \generate{\usepreamble\defaultpreamble \file{scrbook.cls}{% - \ifbeta\from{scrbeta.dtx}{class,book}\fi - \from{scrkvers.dtx}{class,book}% - \from{scrkbase.dtx}{load}% + \from{scrkernel-version.dtx}{class,book}% + \from{scrkernel-basics.dtx}{load}% \from{tocbasic.dtx}{class,load,chapter}% - \from{scrkcomp.dtx}{class,book,option}% - \from{scrkmisc.dtx}{class,book,option}% - \from{scrklang.dtx}{class,book,option}% - \from{scrkfont.dtx}{class,book,option}% - \from{scrktare.dtx}{class,book,option}% - \from{scrkpar.dtx}{class,book,option}% - \from{scrktitl.dtx}{class,book,option}% - \from{scrksect.dtx}{class,book,option}% - \from{scrkpage.dtx}{class,book,option}% - \from{scrkfloa.dtx}{class,book,option}% - \from{scrkftn.dtx}{class,book,option}% - \from{scrkliof.dtx}{class,book,option}% - \from{scrkbib.dtx}{class,book,option}% - \from{scrkidx.dtx}{class,book,option}% - \from{scrklist.dtx}{class,book,option}% - \from{scrkmisc.dtx}{class,book,execoption}% - \from{scrkcomp.dtx}{class,book,body}% - \from{scrkfont.dtx}{class,book,body}% - \from{scrklang.dtx}{class,book,body}% - \from{scrktare.dtx}{class,book,body}% - \from{scrkpar.dtx}{class,book,body}% - \from{scrktitl.dtx}{class,book,body}% - \from{scrksect.dtx}{class,book,body}% - \from{scrkmisc.dtx}{class,book,body}% - \from{scrkpage.dtx}{class,book,body}% - \from{scrkfloa.dtx}{class,book,body}% - \from{scrkftn.dtx}{class,book,body}% - \from{scrkliof.dtx}{class,book,body}% - \from{scrkbib.dtx}{class,book,body}% - \from{scrkidx.dtx}{class,book,body}% - \from{scrklist.dtx}{class,book,body}% + \from{scrkernel-compatibility.dtx}{class,book,option}% + \from{scrkernel-miscellaneous.dtx}{class,book,option}% + \from{scrkernel-language.dtx}{class,book,option}% + \from{scrkernel-fonts.dtx}{class,book,option}% + \from{scrkernel-typearea.dtx}{class,book,option}% + \from{scrkernel-paragraphs.dtx}{class,book,option}% + \from{scrkernel-title.dtx}{class,book,option}% + \from{scrkernel-sections.dtx}{class,book,option}% + \from{scrkernel-pagestyles.dtx}{class,book,option}% + \from{scrkernel-floats.dtx}{class,book,option}% + \from{scrkernel-footnotes.dtx}{class,book,option}% + \from{scrkernel-listsof.dtx}{class,book,option}% + \from{scrkernel-bibliography.dtx}{class,book,option}% + \from{scrkernel-index.dtx}{class,book,option}% + \from{scrkernel-listsandtabulars.dtx}{class,book,option}% + \from{scrkernel-miscellaneous.dtx}{class,book,execoption}% + \from{scrkernel-compatibility.dtx}{class,book,body}% + \from{scrkernel-fonts.dtx}{class,book,body}% + \from{scrkernel-language.dtx}{class,book,body}% + \from{scrkernel-typearea.dtx}{class,book,body}% + \from{scrkernel-paragraphs.dtx}{class,book,body}% + \from{scrkernel-title.dtx}{class,book,body}% + \from{scrkernel-sections.dtx}{class,book,body}% + \from{scrkernel-miscellaneous.dtx}{class,book,body}% + \from{scrkernel-pagestyles.dtx}{class,book,body}% + \from{scrkernel-floats.dtx}{class,book,body}% + \from{scrkernel-footnotes.dtx}{class,book,body}% + \from{scrkernel-listsof.dtx}{class,book,body}% + \from{scrkernel-bibliography.dtx}{class,book,body}% + \from{scrkernel-index.dtx}{class,book,body}% + \from{scrkernel-listsandtabulars.dtx}{class,book,body}% \from{scrlogo.dtx}{logo}% }% \file{scrreprt.cls}{% - \ifbeta\from{scrbeta.dtx}{class,report}\fi - \from{scrkvers.dtx}{class,report}% - \from{scrkbase.dtx}{load}% + \from{scrkernel-version.dtx}{class,report}% + \from{scrkernel-basics.dtx}{load}% \from{tocbasic.dtx}{class,load,chapter}% - \from{scrkcomp.dtx}{class,report,option}% - \from{scrkmisc.dtx}{class,report,option}% - \from{scrklang.dtx}{class,report,option}% - \from{scrkfont.dtx}{class,report,option}% - \from{scrktare.dtx}{class,report,option}% - \from{scrkpar.dtx}{class,report,option}% - \from{scrktitl.dtx}{class,report,option}% - \from{scrksect.dtx}{class,report,option}% - \from{scrkpage.dtx}{class,report,option}% - \from{scrkfloa.dtx}{class,report,option}% - \from{scrkftn.dtx}{class,report,option}% - \from{scrkliof.dtx}{class,report,option}% - \from{scrkbib.dtx}{class,report,option}% - \from{scrkidx.dtx}{class,report,option}% - \from{scrklist.dtx}{class,report,option}% - \from{scrkmisc.dtx}{class,report,execoption}% - \from{scrkcomp.dtx}{class,report,body}% - \from{scrkfont.dtx}{class,report,body}% - \from{scrklang.dtx}{class,report,body}% - \from{scrktare.dtx}{class,report,body}% - \from{scrkpar.dtx}{class,report,body}% - \from{scrktitl.dtx}{class,report,body}% - \from{scrksect.dtx}{class,report,body}% - \from{scrkmisc.dtx}{class,report,body}% - \from{scrkpage.dtx}{class,report,body}% - \from{scrkfloa.dtx}{class,report,body}% - \from{scrkftn.dtx}{class,report,body}% - \from{scrkliof.dtx}{class,report,body}% - \from{scrkbib.dtx}{class,report,body}% - \from{scrkidx.dtx}{class,report,body}% - \from{scrklist.dtx}{class,report,body}% + \from{scrkernel-compatibility.dtx}{class,report,option}% + \from{scrkernel-miscellaneous.dtx}{class,report,option}% + \from{scrkernel-language.dtx}{class,report,option}% + \from{scrkernel-fonts.dtx}{class,report,option}% + \from{scrkernel-typearea.dtx}{class,report,option}% + \from{scrkernel-paragraphs.dtx}{class,report,option}% + \from{scrkernel-title.dtx}{class,report,option}% + \from{scrkernel-sections.dtx}{class,report,option}% + \from{scrkernel-pagestyles.dtx}{class,report,option}% + \from{scrkernel-floats.dtx}{class,report,option}% + \from{scrkernel-footnotes.dtx}{class,report,option}% + \from{scrkernel-listsof.dtx}{class,report,option}% + \from{scrkernel-bibliography.dtx}{class,report,option}% + \from{scrkernel-index.dtx}{class,report,option}% + \from{scrkernel-listsandtabulars.dtx}{class,report,option}% + \from{scrkernel-miscellaneous.dtx}{class,report,execoption}% + \from{scrkernel-compatibility.dtx}{class,report,body}% + \from{scrkernel-fonts.dtx}{class,report,body}% + \from{scrkernel-language.dtx}{class,report,body}% + \from{scrkernel-typearea.dtx}{class,report,body}% + \from{scrkernel-paragraphs.dtx}{class,report,body}% + \from{scrkernel-title.dtx}{class,report,body}% + \from{scrkernel-sections.dtx}{class,report,body}% + \from{scrkernel-miscellaneous.dtx}{class,report,body}% + \from{scrkernel-pagestyles.dtx}{class,report,body}% + \from{scrkernel-floats.dtx}{class,report,body}% + \from{scrkernel-footnotes.dtx}{class,report,body}% + \from{scrkernel-listsof.dtx}{class,report,body}% + \from{scrkernel-bibliography.dtx}{class,report,body}% + \from{scrkernel-index.dtx}{class,report,body}% + \from{scrkernel-listsandtabulars.dtx}{class,report,body}% \from{scrlogo.dtx}{logo}% }% \file{scrartcl.cls}{% - \ifbeta\from{scrbeta.dtx}{class,article}\fi - \from{scrkvers.dtx}{class,article}% - \from{scrkbase.dtx}{load}% + \from{scrkernel-version.dtx}{class,article}% + \from{scrkernel-basics.dtx}{load}% \from{tocbasic.dtx}{class,load}% - \from{scrkcomp.dtx}{class,article,option}% - \from{scrkmisc.dtx}{class,article,option}% - \from{scrklang.dtx}{class,article,option}% - \from{scrkfont.dtx}{class,article,option}% - \from{scrktare.dtx}{class,article,option}% - \from{scrkpar.dtx}{class,article,option}% - \from{scrktitl.dtx}{class,article,option}% - \from{scrksect.dtx}{class,article,option}% - \from{scrkpage.dtx}{class,article,option}% - \from{scrkfloa.dtx}{class,article,option}% - \from{scrkftn.dtx}{class,article,option}% - \from{scrkliof.dtx}{class,article,option}% - \from{scrkbib.dtx}{class,article,option}% - \from{scrkidx.dtx}{class,article,option}% - \from{scrklist.dtx}{class,article,option}% - \from{scrkmisc.dtx}{class,article,execoption}% - \from{scrkcomp.dtx}{class,article,body}% - \from{scrkfont.dtx}{class,article,body}% - \from{scrklang.dtx}{class,article,body}% - \from{scrktare.dtx}{class,article,body}% - \from{scrkpar.dtx}{class,article,body}% - \from{scrktitl.dtx}{class,article,body}% - \from{scrksect.dtx}{class,article,body}% - \from{scrkmisc.dtx}{class,article,body}% - \from{scrkpage.dtx}{class,article,body}% - \from{scrkfloa.dtx}{class,article,body}% - \from{scrkftn.dtx}{class,article,body}% - \from{scrkliof.dtx}{class,article,body}% - \from{scrkbib.dtx}{class,article,body}% - \from{scrkidx.dtx}{class,article,body}% - \from{scrklist.dtx}{class,article,body}% + \from{scrkernel-compatibility.dtx}{class,article,option}% + \from{scrkernel-miscellaneous.dtx}{class,article,option}% + \from{scrkernel-language.dtx}{class,article,option}% + \from{scrkernel-fonts.dtx}{class,article,option}% + \from{scrkernel-typearea.dtx}{class,article,option}% + \from{scrkernel-paragraphs.dtx}{class,article,option}% + \from{scrkernel-title.dtx}{class,article,option}% + \from{scrkernel-sections.dtx}{class,article,option}% + \from{scrkernel-pagestyles.dtx}{class,article,option}% + \from{scrkernel-floats.dtx}{class,article,option}% + \from{scrkernel-footnotes.dtx}{class,article,option}% + \from{scrkernel-listsof.dtx}{class,article,option}% + \from{scrkernel-bibliography.dtx}{class,article,option}% + \from{scrkernel-index.dtx}{class,article,option}% + \from{scrkernel-listsandtabulars.dtx}{class,article,option}% + \from{scrkernel-miscellaneous.dtx}{class,article,execoption}% + \from{scrkernel-compatibility.dtx}{class,article,body}% + \from{scrkernel-fonts.dtx}{class,article,body}% + \from{scrkernel-language.dtx}{class,article,body}% + \from{scrkernel-typearea.dtx}{class,article,body}% + \from{scrkernel-paragraphs.dtx}{class,article,body}% + \from{scrkernel-title.dtx}{class,article,body}% + \from{scrkernel-sections.dtx}{class,article,body}% + \from{scrkernel-miscellaneous.dtx}{class,article,body}% + \from{scrkernel-pagestyles.dtx}{class,article,body}% + \from{scrkernel-floats.dtx}{class,article,body}% + \from{scrkernel-footnotes.dtx}{class,article,body}% + \from{scrkernel-listsof.dtx}{class,article,body}% + \from{scrkernel-bibliography.dtx}{class,article,body}% + \from{scrkernel-index.dtx}{class,article,body}% + \from{scrkernel-listsandtabulars.dtx}{class,article,body}% \from{scrlogo.dtx}{logo}% }% }% \generate{\usepreamble\defaultpreamble \file{scrsize10pt.clo}{% - \ifbeta\from{scrbeta.dtx}{clo,10pt}\fi - \from{scrkvers.dtx}{clo,10pt}% - \from{scrkfont.dtx}{clo,10pt}% - \from{scrkpar.dtx}{clo,10pt}% + \from{scrkernel-version.dtx}{clo,10pt}% + \from{scrkernel-fonts.dtx}{clo,10pt}% + \from{scrkernel-paragraphs.dtx}{clo,10pt}% }% \file{scrsize11pt.clo}{% - \ifbeta\from{scrbeta.dtx}{clo,11pt}\fi - \from{scrkvers.dtx}{clo,11pt}% - \from{scrkfont.dtx}{clo,11pt}% - \from{scrkpar.dtx}{clo,11pt}% + \from{scrkernel-version.dtx}{clo,11pt}% + \from{scrkernel-fonts.dtx}{clo,11pt}% + \from{scrkernel-paragraphs.dtx}{clo,11pt}% }% \file{scrsize12pt.clo}{% - \ifbeta\from{scrbeta.dtx}{clo,12pt}\fi - \from{scrkvers.dtx}{clo,12pt}% - \from{scrkfont.dtx}{clo,12pt}% - \from{scrkpar.dtx}{clo,12pt}% + \from{scrkernel-version.dtx}{clo,12pt}% + \from{scrkernel-fonts.dtx}{clo,12pt}% + \from{scrkernel-paragraphs.dtx}{clo,12pt}% }% }% \generate{\usepreamble\defaultpreamble \file{scrfontsizes.sty}{% - \ifbeta\from{scrbeta.dtx}{package,scrfontsizes}\fi - \from{scrkvers.dtx}{package}% - \from{scrkfont.dtx}{package,generator,identify}% - \from{scrkfont.dtx}{package,generator,option}% - \from{scrkfont.dtx}{package,generator,body}% + \from{scrkernel-version.dtx}{package}% + \from{scrkernel-fonts.dtx}{package,generator,identify}% + \from{scrkernel-fonts.dtx}{package,generator,option}% + \from{scrkernel-fonts.dtx}{package,generator,body}% \from{scrlogo.dtx}{logo}% }% }% \generate{\usepreamble\defaultpreamble \file{scrlttr2.cls}{% - \ifbeta\from{scrbeta.dtx}{class,letter}\fi - \from{scrkvers.dtx}{class,letter}% - \from{scrkbase.dtx}{load}% - \from{scrkcomp.dtx}{class,letter,option}% - \from{scrkmisc.dtx}{class,letter,option}% - \from{scrklco.dtx}{class,letter,option}% - \from{scrklang.dtx}{class,letter,option}% - \from{scrkfont.dtx}{class,letter,option}% - \from{scrkvars.dtx}{class,letter,option}% - \from{scrkplen.dtx}{class,letter,option}% - \from{scrktare.dtx}{class,letter,option}% - \from{scrkpar.dtx}{class,letter,option}% - \from{scrkpage.dtx}{class,letter,option}% - \from{scrkfloa.dtx}{class,letter,option}% - \from{scrkftn.dtx}{class,letter,option}% - \from{scrklist.dtx}{class,letter,option}% - \from{scrknpap.dtx}{class,letter,option}% - \from{scrkcile.dtx}{class,letter,option}% - \from{scrkmisc.dtx}{class,letter,execoption}% - \from{scrkcomp.dtx}{class,letter,body}% - \from{scrkfont.dtx}{class,letter,body}% - \from{scrkmisc.dtx}{class,letter,body}% - \from{scrklco.dtx}{class,letter,body}% - \from{scrklang.dtx}{class,letter,body}% - \from{scrkvars.dtx}{class,letter,body}% - \from{scrkplen.dtx}{class,letter,body}% - \from{scrktare.dtx}{class,letter,body}% - \from{scrkpar.dtx}{class,letter,body}% - \from{scrkpage.dtx}{class,letter,body}% - \from{scrkfloa.dtx}{class,letter,body}% - \from{scrkftn.dtx}{class,letter,body}% - \from{scrklist.dtx}{class,letter,body}% - \from{scrknpap.dtx}{class,letter,body}% - \from{scrkcile.dtx}{class,letter,body}% + \from{scrkernel-version.dtx}{class,letter}% + \from{scrkernel-basics.dtx}{load}% + \from{scrkernel-compatibility.dtx}{class,letter,option}% + \from{scrkernel-miscellaneous.dtx}{class,letter,option}% + \from{scrkernel-letterclassoptions.dtx}{class,letter,option}% + \from{scrkernel-language.dtx}{class,letter,option}% + \from{scrkernel-fonts.dtx}{class,letter,option}% + \from{scrkernel-variables.dtx}{class,letter,option}% + \from{scrkernel-pseudolengths.dtx}{class,letter,option}% + \from{scrkernel-typearea.dtx}{class,letter,option}% + \from{scrkernel-paragraphs.dtx}{class,letter,option}% + \from{scrkernel-pagestyles.dtx}{class,letter,option}% + \from{scrkernel-floats.dtx}{class,letter,option}% + \from{scrkernel-footnotes.dtx}{class,letter,option}% + \from{scrkernel-listsandtabulars.dtx}{class,letter,option}% + \from{scrkernel-notepaper.dtx}{class,letter,option}% + \from{scrkernel-circularletters.dtx}{class,letter,option}% + \from{scrkernel-miscellaneous.dtx}{class,letter,execoption}% + \from{scrkernel-compatibility.dtx}{class,letter,body}% + \from{scrkernel-fonts.dtx}{class,letter,body}% + \from{scrkernel-miscellaneous.dtx}{class,letter,body}% + \from{scrkernel-letterclassoptions.dtx}{class,letter,body}% + \from{scrkernel-language.dtx}{class,letter,body}% + \from{scrkernel-variables.dtx}{class,letter,body}% + \from{scrkernel-pseudolengths.dtx}{class,letter,body}% + \from{scrkernel-typearea.dtx}{class,letter,body}% + \from{scrkernel-paragraphs.dtx}{class,letter,body}% + \from{scrkernel-pagestyles.dtx}{class,letter,body}% + \from{scrkernel-floats.dtx}{class,letter,body}% + \from{scrkernel-footnotes.dtx}{class,letter,body}% + \from{scrkernel-listsandtabulars.dtx}{class,letter,body}% + \from{scrkernel-notepaper.dtx}{class,letter,body}% + \from{scrkernel-circularletters.dtx}{class,letter,body}% \from{scrlogo.dtx}{logo}% }% }% \generate{\usepreamble\defaultpreamble \file{visualize.lco}{% - \from{scrkvers.dtx}{trace}% - \from{scrklco.dtx}{lco,visualize,head}% - \ifbeta\from{scrbeta.dtx}{visualize,lco}\fi - \from{scrklco.dtx}{lco,visualize,body}% - \from{scrknpap.dtx}{lco,visualize,body}% + \from{scrkernel-version.dtx}{trace}% + \from{scrkernel-letterclassoptions.dtx}{lco,visualize,head}% + \from{scrkernel-letterclassoptions.dtx}{lco,visualize,body}% + \from{scrkernel-notepaper.dtx}{lco,visualize,body}% }% \file{KOMAold.lco}{% - \from{scrkvers.dtx}{trace}% - \from{scrklco.dtx}{lco,KOMAold,head}% - \ifbeta\from{scrbeta.dtx}{KOMAold,lco}\fi - \from{scrklco.dtx}{lco,KOMAold,body}% - \from{scrknpap.dtx}{lco,KOMAold,body}% + \from{scrkernel-version.dtx}{trace}% + \from{scrkernel-letterclassoptions.dtx}{lco,KOMAold,head}% + \from{scrkernel-letterclassoptions.dtx}{lco,KOMAold,body}% + \from{scrkernel-notepaper.dtx}{lco,KOMAold,body}% }% \file{DIN.lco}{% - \from{scrkvers.dtx}{trace}% - \from{scrklco.dtx}{lco,DIN,head}% - \ifbeta\from{scrbeta.dtx}{DIN,lco}\fi - \from{scrklco.dtx}{lco,DIN,body}% + \from{scrkernel-version.dtx}{trace}% + \from{scrkernel-letterclassoptions.dtx}{lco,DIN,head}% + \from{scrkernel-letterclassoptions.dtx}{lco,DIN,body}% }% \file{DINmtext.lco}{% - \from{scrkvers.dtx}{trace}% - \from{scrklco.dtx}{lco,DINmoretext,head}% - \ifbeta\from{scrbeta.dtx}{DINmoretext,lco}\fi - \from{scrklco.dtx}{lco,DINmoretext,body}% + \from{scrkernel-version.dtx}{trace}% + \from{scrkernel-letterclassoptions.dtx}{lco,DINmoretext,head}% + \from{scrkernel-letterclassoptions.dtx}{lco,DINmoretext,body}% }% \file{SN.lco}{% - \from{scrkvers.dtx}{trace}% - \from{scrklco.dtx}{lco,SN,head}% - \ifbeta\from{scrbeta.dtx}{SN,lco}\fi - \from{scrklco.dtx}{lco,SN,body}% + \from{scrkernel-version.dtx}{trace}% + \from{scrkernel-letterclassoptions.dtx}{lco,SN,head}% + \from{scrkernel-letterclassoptions.dtx}{lco,SN,body}% }% \file{SNleft.lco}{% - \from{scrkvers.dtx}{trace}% - \from{scrklco.dtx}{lco,SwissLeft,head}% - \ifbeta\from{scrbeta.dtx}{SwissLeft,lco}\fi - \from{scrklco.dtx}{lco,SwissLeft,body}% + \from{scrkernel-version.dtx}{trace}% + \from{scrkernel-letterclassoptions.dtx}{lco,SwissLeft,head}% + \from{scrkernel-letterclassoptions.dtx}{lco,SwissLeft,body}% }% \file{NF.lco}{% - \from{scrkvers.dtx}{trace}% - \from{scrklco.dtx}{lco,NF,head}% - \ifbeta\from{scrbeta.dtx}{NF,lco}\fi - \from{scrklco.dtx}{lco,NF,body}% + \from{scrkernel-version.dtx}{trace}% + \from{scrkernel-letterclassoptions.dtx}{lco,NF,head}% + \from{scrkernel-letterclassoptions.dtx}{lco,NF,body}% }% -}% - -\generate{\usepreamble\defaultpreamble -% \file{USletter2w.lco}{% -% \from{scrkvers.dtx}{trace}% -% \from{scrklco.dtx}{lco,USletter2w,head}% -% \ifbeta\from{scrbeta.dtx}{USletter2w,lco}\fi -% \from{scrklco.dtx}{lco,USletter2w,body}% -% }% \file{UScommercial9.lco}{% - \from{scrkvers.dtx}{trace}% - \from{scrklco.dtx}{lco,UScommercial9,head}% - \from{scrbeta.dtx}{UScommercial9,betarelease,lco}% It's still beta! - \from{scrklco.dtx}{lco,UScommercial9,body}% + \from{scrkernel-version.dtx}{trace}% + \from{scrkernel-letterclassoptions.dtx}{lco,UScommercial9,head}% + \from{scrkernel-letterclassoptions.dtx}{lco,UScommercial9,body}% }% \file{UScommercial9DW.lco}{% - \from{scrkvers.dtx}{trace}% - \from{scrklco.dtx}{lco,UScommercial9DW,head}% - \from{scrbeta.dtx}{UScommercial9DW,betarelease,lco}% It's still beta! - \from{scrklco.dtx}{lco,UScommercial9DW,body}% + \from{scrkernel-version.dtx}{trace}% + \from{scrkernel-letterclassoptions.dtx}{lco,UScommercial9DW,head}% + \from{scrkernel-letterclassoptions.dtx}{lco,UScommercial9DW,body}% }% -} +}% + +% \generate{\usepreamble\defaultpreamble +% \file{USletter2w.lco}{% +% \from{scrkernel-version.dtx}{trace}% +% \from{scrkernel-letterclassoptions.dtx}{lco,USletter2w,head}% +% \from{scrkernel-letterclassoptions.dtx}{lco,USletter2w,body}% +% }% +% } \generate{\usepreamble\defaultpreamble \file{NipponEL.lco}{% - \from{scrkvers.dtx}{trace}% + \from{scrkernel-version.dtx}{trace}% \from{japanlco.dtx}{lco,Ni,EARLY,LOW,head}% - \ifbeta\from{scrbeta.dtx}{KOMAold,lco}\fi \from{japanlco.dtx}{lco,Ni,EARLY,LOW,body}% }% \file{NipponEH.lco}{% - \from{scrkvers.dtx}{trace}% + \from{scrkernel-version.dtx}{trace}% \from{japanlco.dtx}{lco,Ni,EARLY,HIGH,head}% - \ifbeta\from{scrbeta.dtx}{KOMAold,lco}\fi \from{japanlco.dtx}{lco,Ni,EARLY,HIGH,body}% }% \file{NipponLL.lco}{% - \from{scrkvers.dtx}{trace}% + \from{scrkernel-version.dtx}{trace}% \from{japanlco.dtx}{lco,Ni,LATE,LOW,head}% - \ifbeta\from{scrbeta.dtx}{KOMAold,lco}\fi \from{japanlco.dtx}{lco,Ni,LATE,LOW,body}% }% \file{NipponLH.lco}{% - \from{scrkvers.dtx}{trace}% + \from{scrkernel-version.dtx}{trace}% \from{japanlco.dtx}{lco,Ni,LATE,HIGH,head}% - \ifbeta\from{scrbeta.dtx}{KOMAold,lco}\fi \from{japanlco.dtx}{lco,Ni,LATE,HIGH,body}% }% \file{NipponRL.lco}{% - \from{scrkvers.dtx}{trace}% + \from{scrkernel-version.dtx}{trace}% \from{japanlco.dtx}{lco,Ni,RIGHT,LOW,head}% - \ifbeta\from{scrbeta.dtx}{KOMAold,lco}\fi \from{japanlco.dtx}{lco,Ni,RIGHT,LOW,body}% }% \file{KakuLL.lco}{% - \from{scrkvers.dtx}{trace}% + \from{scrkernel-version.dtx}{trace}% \from{japanlco.dtx}{lco,Kaku,LATE,LOW,head}% - \ifbeta\from{scrbeta.dtx}{KOMAold,lco}\fi \from{japanlco.dtx}{lco,Kaku,LATE,LOW,body}% }% }% -\generate{\usepreamble\defaultpreamble - \file{typearea.sty}{% - \ifbeta\from{scrbeta.dtx}{package,typearea}\fi - \from{scrkvers.dtx}{package,typearea}% - \from{scrktare.dtx}{package,identify}% - \from{scrkbase.dtx}{load}% - \from{scrktare.dtx}{package,option}% - \from{scrkcomp.dtx}{package,typearea,option}% - \from{scrktare.dtx}{package,body}% - \from{scrkcomp.dtx}{package,typearea,body}% - \from{scrlogo.dtx}{logo}% - }% -} - %\generate{\usepreamble\defaultpreamble % \file{scrhack.tex}{% % \from{scrhack.dtx}{manual}% % }% %} -\generate{\usepreamble\defaultpreamble - \file{scrhack.sty}{% - \ifbeta\from{scrbeta.dtx}{package,scrhack}\fi - \from{scrkvers.dtx}{package,scrhack}% - \from{scrhack.dtx}{package,identify}% - \from{scrkbase.dtx}{load}% - \from{scrhack.dtx}{package,option}% - \from{scrhack.dtx}{package,body}% - \from{scrlogo.dtx}{logo}% - }% - \file{hyperref.hak}{% - \from{scrkvers.dtx}{file,hyperref.hak}% - \from{scrhack.dtx}{hack,hyperref,identify}% - \from{scrhack.dtx}{hack,hyperref,body}% - }% - \file{float.hak}{% - \from{scrkvers.dtx}{file,float.hak}% - \from{scrhack.dtx}{hack,float,identify}% - \from{scrhack.dtx}{hack,float,body}% - }% - \file{floatrow.hak}{% - \from{scrkvers.dtx}{file,floatrow.hak}% - \from{scrhack.dtx}{hack,floatrow,identify}% - \from{scrhack.dtx}{hack,floatrow,body}% - }% - \file{listings.hak}{% - \from{scrkvers.dtx}{file,listings.hak}% - \from{scrhack.dtx}{hack,listings,identify}% - \from{scrhack.dtx}{hack,listings,body}% - }% -} - -\generate{\usepreamble\defaultpreamble - \file{scrtime.sty}{% - \ifbeta\from{scrbeta.dtx}{package,scrtime}\fi - \from{scrkvers.dtx}{package,scrtime}% - \from{scrtime.dtx}{package,scrtime,identify}% - \from{scrkbase.dtx}{load}% - \from{scrtime.dtx}{package,scrtime,option}% - \from{scrtime.dtx}{package,scrtime,body}% - \from{scrlogo.dtx}{logo}% - } % - \file{scrdate.sty}{% - \ifbeta\from{scrbeta.dtx}{package,scrdate}\fi - \from{scrkvers.dtx}{package,scrdate}% - \from{scrtime.dtx}{package,scrdate,identify}% - \from{scrkbase.dtx}{load}% - \from{scrtime.dtx}{package,scrdate,option}% - \from{scrtime.dtx}{package,scrdate,body}% - \from{scrlogo.dtx}{logo}% - } % -} - -\generate{\usepreamble\defaultpreamble - \file{scrbase.sty}{% - \ifbeta\from{scrbeta.dtx}{package,scrbase}\fi - \from{scrkvers.dtx}{package,scrbase}% - \from{scrkbase.dtx}{package,option,base}% - \from{scrklang.dtx}{package,option,base}% - \from{scrlfile.dtx}{load}% - \from{scrkbase.dtx}{package,body,base}% - \from{scrklang.dtx}{package,body,base}% - \from{scrlogo.dtx}{logo}% - }% -} - \generate{\usepreamble\defaultpreamble \file{scrkbase.sty}{% - \ifbeta\from{scrbeta.dtx}{package,scrkbase}\fi - \from{scrkvers.dtx}{package,scrkbase}% - \from{scrkbase.dtx}{package,option,koma}% - \from{scrkfont.dtx}{package,option,scrkbase}% + \from{scrkernel-version.dtx}{package,scrkbase}% + \from{scrkernel-basics.dtx}{package,option,koma}% + \from{scrkernel-fonts.dtx}{package,option,scrkbase}% \from{scrlfile.dtx}{load}% - \from{scrkbase.dtx}{package,body,koma}% - \from{scrkfont.dtx}{package,body,scrkbase}% + \from{scrkernel-basics.dtx}{package,body,koma}% + \from{scrkernel-fonts.dtx}{package,body,scrkbase}% \from{scrlogo.dtx}{logo}% }% } -\batchinput{scrlfile.ins} -\batchinput{scraddr.ins} -\batchinput{scrpage.ins} -\batchinput{scrlettr.ins} +% --- additional package batches (maybe used with other classes, too) -- + +\batchinput{scrkernel-typearea.dtx}% typearea.sty +\batchinput{scrkernel-basics.dtx}% scrbase.sty +\batchinput{scrhack.dtx}% scrhack.sty and the hak files +\batchinput{scrtime.dtx}% scrtime.sty, scrdate.sty +\batchinput{scrlfile.dtx}% scrlfile.sty +\batchinput{scraddr.dtx}% scraddr.sty +\batchinput{scrpage.dtx}% scrpage2.sty +\batchinput{tocbasic.dtx}% tocbasic.sty +\batchinput{scrlayer.dtx}% scrlayer.sty, scrlayer-scrpage.sty ... % ---------- end of docstrip process ----------------------------------- -\def\idocfiles{`scrsource.tex'} \@@input scrstrop.inc -\endinput +\endbatchfile + % % end of file `scrmain.ins' %%% Local Variables: diff --git a/Master/texmf-dist/source/latex/koma-script/scrpage.dtx b/Master/texmf-dist/source/latex/koma-script/scrpage.dtx index 29bff3feefd..c74023d6c8b 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrpage.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrpage.dtx @@ -1,8 +1,8 @@ -% \CheckSum{2695} +% \CheckSum{2384} % \iffalse % ====================================================================== % scrpage.dtx -% Copyright (c) Markus Kohm, 1995-2012 +% Copyright (c) Markus Kohm, 1995-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrpage.dtx -% Copyright (c) Markus Kohm, 1995-2012 +% Copyright (c) Markus Kohm, 1995-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -55,281 +55,70 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: scrpage.dtx +%%% From File: $Id: scrpage.dtx 1547 2013-12-14 17:23:38Z mjk $ +%\NeedsTeXFormat{LaTeX2e}[1995/06/01] +%<*driver> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{scrpage.dtx}[% +% +%<*driver|scrpage> +%\ProvidesPackage{scrpage2}[% +%!KOMAScriptVersion + package (page head and foot)] +% %<*dtx> -\ProvidesFile{scrpage.dtx} +\ifx\documentclass\undefined + \input scrdocstrip.tex + \@@input scrkernel-version.dtx + \@@input scrstrip.inc + \KOMAdefVariable{COPYRIGHFROM}{1995} + \generate{\usepreamble\defaultpreamble + \file{scrpage2.sty}{% + \from{scrpage.dtx}{scrpage,v2}% + \from{scrlogo.dtx}{logo}% + }% + } + \@@input scrstrop.inc +\else + \let\endbatchfile\relax +\fi +\endbatchfile % -%\NeedsTeXFormat{LaTeX2e}[1995/06/01] -% \ProvidesFile{scrpage.drv} -%<*scrpage> -%\ProvidesPackage{scrpage}[2008/02/29 v1.3e KOMA-Script -%\ProvidesPackage{scrpage2} -%<*!v1> - [2010/04/22 v2.5 LaTeX2e KOMA-Script -% -% package] %<*driver> - driver] \documentclass{scrdoc} -\usepackage{scrpage2} \usepackage[german,english]{babel} \usepackage[latin1]{inputenc} \CodelineIndex \RecordChanges \GetFileInfo{scrpage.dtx} -\title{The \textsf{KOMA}-pagestyle-package\thanks{This file has +\title{\KOMAScript{} \partname\ \texttt{\filename}\thanks{This file has version number \fileversion, last revised \filedate.}} -\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} +\date{\filedate} +\author{Markus Kohm} \begin{document} \maketitle - \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{fancyhdr}. You may - use \texttt{scrpage} with standard classes, too. Note: Package - \texttt{scrpage} was replaced by package \texttt{scrpage2}. The manual for - package \texttt{scrpage2} is part of the \KOMAScript{} guide. - \end{abstract} \tableofcontents - \DocInput{scrpage.dtx} + \DocInput{\filename} \end{document} % % \fi % -% \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 page heads and foots. You may change it using -% |\renewcommand|, e.g. |\renewcommand\headfont{\normalfont\slshape}|. -% -% \DescribeMacro -% \footfont\\ -% This font is used to write page foots different from page heads. You may -% change it using |\renewcommand|, -% e.g. |\renewcommand\footfont{\normalfont\slshape}|. Only availabe at -% \texttt{scrpage2}. -% -% \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 -% \DescribeMacro\deftripstyle* -% The command \cs{deftripstyle}\marg{name}\oarg{olw}\oarg{ilw}% -% \marg{headleft}\marg{headmiddle}\marg{headright}% -% \marg{footleft}\marg{footmiddle}\marg{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){\nobreakspace}} -% \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){\nobreakspace}} -% \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){\nobreakspace}} -% \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){\nobreakspace}} -% \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){\nobreakspace}} -% \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){\nobreakspace}} -% \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:\\ -% \cs{deftripstyle*}\marg{name}\oarg{olw}\oarg{ilw}% -% \marg{headleft}\marg{headmiddle}\marg{headright}% -% \marg{footleft}\marg{footmiddle}\marg{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 -% Command -% \cs{defpagestyle}\marg{name}\marg{head-definition}\marg{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})\\% -% \marg{evenpagehead}\marg{oddpagehead}\marg{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 -% Command -% \cs{newpagestyle}\marg{name}\marg{head-definition}\marg{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 -% Command -% \cs{renewpagestyle}\marg{name}\marg{head-definition}\marg{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 -% Command -% \cs{providepagestyle}\marg{name}\marg{head-definition}\marg{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} +% \section{Page Layout Package} % +% This is the \KOMAScript{} package \textsf{scrpage2}. You may find the user +% documentation of this package in the English \KOMAScript{} guide, +% \texttt{scrguien.pdf}, and in the German \KOMAScript{} guide, +% \texttt{scrguide.pdf}. % % \StopEventually{\PrintIndex\PrintChanges} % % \section{Implementation} % +% Currently this package doesn't share any code but the \KOMAScript{} logo +% with other packages. So all the code of this package but the implementation +% of the \KOMAScript{} logo is at this file and their is nor more code at this +% file. +% % \begin{macrocode} %<*scrpage> % \end{macrocode} @@ -338,19 +127,17 @@ % % \subsection{Options} % \begin{option}{headinclude} -% \changes{v2.3}{2008/12/08}{obsolete} +% \changes{v2.3}{2008/12/08}{obsolete}% % \begin{option}{headexclude} -% \changes{v2.3}{2008/12/08}{obsolete} +% \changes{v2.3}{2008/12/08}{obsolete}% % \begin{option}{footinclude} -% \changes{v2.3}{2008/12/08}{obsolete} +% \changes{v2.3}{2008/12/08}{obsolete}% % \begin{option}{footexclude} -% \changes{v2.3}{2008/12/08}{obsolete} -% \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. -% +% \changes{v2.3}{2008/12/08}{obsolete}% +% \texttt{scrpage} has known some options. They are similar to the +% old \KOMAScript{} classes. To work with and without the \KOMAScript{} +% classes their definitions are not quite simple. % \begin{macrocode} -%<*v2> \newcommand*{\@Pass@Obsolete@Option@To@Typearea}[1]{% \@expandtwoargs\in@{,\CurrentOption,}{,\@curroptions,}% \ifin@ @@ -369,22 +156,17 @@ \fi \fi } -% \DeclareOption{headinclude}{% -% \PassOptionsToPackage{headinclude}{typearea}% -% \@Pass@Obsolete@Option@To@Typearea{headinclude}% + \@Pass@Obsolete@Option@To@Typearea{headinclude}% } \DeclareOption{headexclude}{% -% \PassOptionsToPackage{headexclude}{typearea}% -% \@Pass@Obsolete@Option@To@Typearea{headinclude=false}% + \@Pass@Obsolete@Option@To@Typearea{headinclude=false}% } \DeclareOption{footinclude}{% -% \PassOptionsToPackage{footinclude}{typearea}% -% \@Pass@Obsolete@Option@To@Typearea{footinclude}% + \@Pass@Obsolete@Option@To@Typearea{footinclude}% } \DeclareOption{footexclude}{% -% \PassOptionsToPackage{footexclude}{typearea}% -% \@Pass@Obsolete@Option@To@Typearea{footinclude=false}% + \@Pass@Obsolete@Option@To@Typearea{footinclude=false}% } % \end{macrocode} % We do so, because we want so set |headinclude|, |footinclude| by @@ -394,45 +176,41 @@ % \end{option} % \end{option} % -% 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} +% We have additional options designed for the additional interface. +% \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} -% \changes{v2.2g}{2008/11/19}{Test fixed} +% \begin{macro}{\if@mincl} +% \begin{macro}{\@mincltrue} +% \begin{macro}{\@minclfalse} +% \changes{v2.2g}{2008/11/19}{Test fixed} % \begin{macrocode} \@ifundefined{@mincltrue}{\newif\if@mincl}{} % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % \begin{macrocode} \DeclareOption{mpinclude}{\@mincltrue} \DeclareOption{mpexclude}{\@minclfalse} % \end{macrocode} -% \end{option} -% \end{option} +% \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} +% \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} @@ -441,22 +219,22 @@ \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} +% \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}. @@ -470,27 +248,27 @@ \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} +% \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}{% @@ -518,31 +296,31 @@ \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} +% \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} +% \changes{v2.0f}{2001/06/23}{New} % \begin{option}{ilines} -% \changes{v2.0f}{2001/06/23}{New} +% \changes{v2.0f}{2001/06/23}{New} % \begin{option}{clines} -% \changes{v2.0f}{2001/06/23}{New} +% \changes{v2.0f}{2001/06/23}{New} % \begin{option}{olines} -% \changes{v2.0f}{2001/06/23}{New} +% \changes{v2.0f}{2001/06/23}{New} % At Version 2 lines may be inner adjusted (0), centered (1) or outer % adjusted (2): % \begin{macrocode} @@ -556,13 +334,13 @@ % \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} +% \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. @@ -576,26 +354,26 @@ \fi}} \DeclareOption{manualmark}{\AtEndOfPackage{\manualmark}} % \end{macrocode} -% \end{option} -% \end{option} +% \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} +% \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} +% \end{macro} +% \end{option} % -% \begin{option}{markuppercase} -% \changes{v2.0c}{2001/06/07}{New} -% \begin{option}{markusedcase} -% \changes{v2.0c}{2001/06/07}{New} +% \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''. @@ -603,13 +381,13 @@ \DeclareOption{markuppercase}{\let\MakeMarkcase\MakeUppercase} \DeclareOption{markusedcase}{\let\MakeMarkcase\@empty} % \end{macrocode} -% \end{option} -% \end{option} +% \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} +% \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 @@ -629,8 +407,8 @@ \let\MakeMarkcase\@empty \fi} % \end{macrocode} -% \end{option} -% \end{macro} +% \end{option} +% \end{macro} % % \begin{option}{komastyle} % \begin{option}{standardstyle} @@ -648,15 +426,9 @@ % \end{option} % % +% We don't need default options. % \begin{macrocode} -% -% \end{macrocode} -% -% Set the default options. -% \begin{macrocode} -\ExecuteOptions{% -%headinclude,footinclude% -} +\ExecuteOptions{} % \end{macrocode} % But you may set other Options: % \begin{macrocode} @@ -669,8 +441,8 @@ % 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} +% \begin{macro}{\if@chapter} +% \changes{v2.1b}{2003/05/31}{more save test} % First distinguish between article and others. % \begin{macrocode} \newif\if@chapter @@ -681,21 +453,20 @@ \@chaptertrue \fi % \end{macrocode} -% \end{macro} +% \end{macro} % -% \begin{macro}{\if@mainmatter} -% \changes{v1.2}{1995/07/08}{Definition changed} -% \changes{v2.1b}{2003/05/31}{more save test} -% \changes{v2.2d}{2007/03/13}{additional \cs{if@mainmatter} test} -% \changes{v2.2g}{2008/11/19}{usage of \cs{if@mainmatter} at message -% removed} +% \begin{macro}{\if@mainmatter} +% \changes{v1.2}{1995/07/08}{Definition changed} +% \changes{v2.1b}{2003/05/31}{more save test} +% \changes{v2.2d}{2007/03/13}{additional \cs{if@mainmatter} test} +% \changes{v2.2g}{2008/11/19}{usage of \cs{if@mainmatter} at message +% removed} % 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 -%<*v2> \@ifundefined{@mainmattertrue}{% \PackageWarningNoLine{scrpage2}{% \string\mainmatter\space defined without @@ -705,32 +476,31 @@ back matter and will be defined now% }% }{% -% \let\@tempa\relax -% }% + }% \fi \@tempa % \end{macrocode} -% \end{macro} +% \end{macro} % % % \subsection{Predefinitions} % There are some commands, you can use at pagestyle-definition. % -% \begin{macro}{\headmark} +% \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} +% \end{macro} % -% \begin{macro}{\pagemark} +% \begin{macro}{\pagemark} % This macro is the number of the page at the pagenumberfont: % \begin{macrocode} \DeclareRobustCommand\pagemark{{\pnumfont\thepage}} % \end{macrocode} -% \end{macro} +% \end{macro} % % % \subsection{Expert-Pagestyle-Definition-Interface} @@ -738,18 +508,18 @@ % 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} +% \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 +\newif\if@automark\@automarkfalse % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\defpagestyle} % First we define the simple definition-interface. There's no test, if @@ -767,102 +537,26 @@ % \end{macrocode} % \begin{macro}{\@defpagestyle} % Now the we can define the head and the foot. -% \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{v1.3e}{2008/02/29}{usage of \cs{if@mainmatter} fixed} -% \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}} -% \changes{v2.2d}{2007/06/14}{Support of article-classes with -% \cs{if@mainmatter}} -% \changes{v2.5}{2010/04/22}{moved \cs{if@twoside} inside of definition} +% \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{v1.3e}{2008/02/29}{usage of \cs{if@mainmatter} fixed} +% \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}} +% \changes{v2.2d}{2007/06/14}{Support of article-classes with +% \cs{if@mainmatter}} +% \changes{v2.5}{2010/04/22}{moved \cs{if@twoside} inside of definition} % Before version 2.5 we have distinguished one- and two-side definitions while % loading the package and have had all the definitions of \cs{@mkboth}, % \cs{chaptermark}, \cs{sectionmark}, and \cs{subsectionmark} at the -% definition of the page style. This was a lot of code: -% \begin{macrocode} -%<*v1> -\if@twoside - \def\@defpagestyle[#1]#2#3#4{% - \expandafter\def\csname ps@#2\endcsname{% - \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@% - \if@mainmatter\sectionmarkformat\fi\fi ####1}{% - \ifnum \c@secnumdepth >\z@% - \if@mainmatter\sectionmarkformat\fi\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 - \def@twosidehead#3 - \def@twosidefoot#4 - } - } -\else - \def\@defpagestyle[#1]#2#3#4{% - \expandafter\def\csname ps@#2\endcsname{% - \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@% - \if@mainmatter\sectionmarkformat\fi\fi ####1}}% - \def\subsectionmark####1{}% - \fi - \else - \let\@mkboth\@gobbletwo - \if@chapter - \def\chaptermark####1{}% - \else - \def\subsectionmark####1{}% - \fi - \def\sectionmark####1{}% - \fi - \def@onesidehead#3 - \def@onesidefoot#4 - } - } -\fi -% -% \end{macrocode} +% definition of the page style. % Since version~2.5 the difference of one- and two-side is made at the % definition of the heads and foots themself and \cs{chaptermark}, % \cs{sectionmark}, and \cs{subsectionmark} are defined by \cs{automark} and % \cs{manualmark}. So the code is much easier. % \begin{macrocode} -%<*v2> \def\@defpagestyle[#1]#2#3#4{% \expandafter\def\csname ps@#2\endcsname{% \if@automark\let\@mkboth\markboth\else\let\@mkboth\@gobbletwo\fi @@ -870,119 +564,8 @@ \def@foot#4 }% } -% -% \end{macrocode} -% \begin{macro}{\def@twosidehead} -% \changes{v2.5}{2010/04/22}{replaced by \cs{\def@head}} -% \begin{macro}{\def@@twosidehead} -% \changes{v1.3}{2001/03/30}{Use of \cs{@headwidth} instead of -% \cs{textwidth}} -% \changes{v2.5}{2010/04/22}{replaced by \cs{\def@@head}} -% \begin{macrocode} -%<*v1> -\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}% - \vskip#2 - \vskip\baselineskip - \hb@xt@\@headwidth{{% - \headfont\strut #3}}% - \hf@rule{#6}{#7}{\@headwidth}% - }\hskip\@oddheadshift\hss}% - \def\@oddhead{\let\headmark\rightmark - \hss\hskip\@oddheadshift\vbox{\hsize=\@headwidth\relax - \hf@rule{#1}{#2}{\@headwidth}% - \vskip#2% - \vskip\baselineskip - \hb@xt@\@headwidth{{% - \headfont\strut #4}}% - \hf@rule{#6}{#7}{\@headwidth}% - }\hskip\@evenheadshift\hss}% -} -% -% \end{macro} -% \end{macro} -% \begin{macro}{\def@onesidehead} -% \changes{v1.3}{2001/03/30}{Use of \cmd\@headwidth instead of -% \cs{textwidth}} -% \changes{v2.5}{2010/04/22}{replaced by \cs{\def@head}} -% \begin{macro}{\def@@onesidehead} -% \changes{v2.5}{2010/04/22}{replaced by \cs{\def@@head}} -% \begin{macro}{\def@@@onesidehead} -% \changes{v2.5}{2010/04/22}{replaced by \cs{\def@@@head}} -% Next the onesided head: -% \begin{macrocode} -%<*v1> -\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}% - \vskip#2% - \vskip\baselineskip - \hb@xt@\@headwidth{{% - \headfont\strut #5}}% - \hf@rule{#6}{#7}{\@headwidth}% - }\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 -% \cs{textwidth}} -% \changes{v2.5}{2010/04/22}{replaced by \cs{\def@foot}} -% \begin{macro}{\def@@twosidefoot} -% \changes{v2.5}{2010/04/22}{replaced by \cs{\def@@foot}} -% \begin{macro}{\def@@@twosidefoot} -% \changes{v2.5}{2010/04/22}{replaced by \cs{\def@@@foot}} -% Next the twosided foot: -% \begin{macrocode} -%<*v1> -\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{{% - \headfont\footfont\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{{% - \headfont\footfont\strut #4}}% - \botfoot@rule{#6}{#7}}\hskip\@evenfootshift\hss}% -} -% -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\def@onesidefoot} -% \changes{v1.3}{2001/03/30}{Use of \cmd\@footwidth instead of -% \cs{textwidth}} -% \changes{v2.5}{2010/04/22}{replaced by \cs{\def@foot}} -% \begin{macro}{\def@@onesidefoot} -% \changes{v2.5}{2010/04/22}{replaced by \cs{\def@@foot}} -% \begin{macro}{\def@@@onesidefoot} -% \changes{v2.5}{2010/04/22}{replaced by \cs{\def@@@foot}} -% \begin{macrocode} -%<*v1> -\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{{% - \headfont\footfont\strut #5}} - \botfoot@rule{#6}{#7}}\hskip\@evenfootshift\hss}% -} -% % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} - +% % \begin{macro}{\def@head} % \changes{v2.5}{2010/04/22}{new (internal)} % \begin{macro}{\def@@head} @@ -993,7 +576,6 @@ % This was real simple, but we already have to do the real definition % of the heads and foots. First the head: % \begin{macrocode} -%<*v2> \def\def@head{% \@ifnextchar(%) {\def@@head}% @@ -1031,7 +613,6 @@ \hf@rule{#6}{#7}{\@headwidth}{headbelow}% }\hskip\@evenheadshift\hss}% } -% % \end{macrocode} % \end{macro} % \end{macro} @@ -1049,7 +630,6 @@ % \changes{v2.5}{2010/04/22}{new (internal)} % And last twosided and onesided foot: % \begin{macrocode} -%<*v2> \def\def@foot{% \@ifnextchar(%) {\def@@foot} @@ -1079,7 +659,6 @@ \headfont\footfont\strut \if@twoside #4\else #5\fi}}% \botfoot@rule{#6}{#7}}\hskip\@evenfootshift\hss}% } -% % \end{macrocode} % \end{macro} % \end{macro} @@ -1087,40 +666,36 @@ % \end{macro} % % We now define the rules used at head and foot. -% \begin{macro}{\topfoot@rule} +% \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\hf@rule{#1}{#2}{\@footwidth}{footabove}% \vskip-\@tempdima} % \end{macrocode} -% \end{macro} -% \begin{macro}{\botfoot@rule} +% \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}% + \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} -% \changes{v2.2b}{2005/08/31}{No even alignment at oneside} -% \begin{macrocode} -%\newcommand\hf@rule[3]{% -%\newcommand*{\hf@rule}[4]{% +% \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} +% \changes{v2.2b}{2005/08/31}{No even alignment at oneside} +% \begin{macrocode} +\newcommand*{\hf@rule}[4]{% \setlength{\@tempdimb}{#1} -%<*v2> \begingroup \csname scr@pre@#4@line\endcsname \if@twoside @@ -1134,42 +709,40 @@ \edef\@tempa{\hfline@adjust}% \fi \ifnum\@tempa=1 -% \setlength{\@tempdimb}{.5\@tempdimb}% -% \fi + \fi \hb@xt@#3{% -% \ifnum\@tempa>0 + \ifnum\@tempa>0 \hfill% \llap{\vrule\@depth#2\@height\z@\@width\@tempdimb}% -% \fi -% \ifnum\@tempa<2 + \fi + \ifnum\@tempa<2 \rlap{\vrule\@depth#2\@height\z@\@width\@tempdimb}% \hfill% -% \fi + \fi }% -% \endgroup + \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> +% \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} \newcommand*{\scr@pre@headabove@line}{} \newcommand*{\scr@fnt@headtopline}{\scr@pre@headabove@line} \newcommand*{\scr@pre@headbelow@line}{} @@ -1179,22 +752,22 @@ \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} +% \end{macrocode} +% \end{macro} +% \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} +% \begin{macro}{\newpagestyle} % First the simple star/starless-selection: % \begin{macrocode} \def\newpagestyle{% @@ -1205,7 +778,7 @@ {\@newpagestyle[-]}% {\@newpagestyle[+]}} % \end{macrocode} -% \begin{macro}{\@newpagestyle} +% \begin{macro}{\@newpagestyle} % There we have to distinguish, whether the pagestyle is already % defined or not. % \begin{macrocode} @@ -1217,8 +790,7 @@ \@defpagestyle[#1]{#2}{#3}{#4}% \else \PackageError -% {scrpage}% -% {scrpage2}% + {scrpage2}% {Your command was ignored}% {There is already a pagestyle named ``#1''.\MessageBreak% Use \protect\defpagestyle\space, \protect\renewpagestyle or @@ -1226,10 +798,10 @@ \fi } % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % -% \begin{macro}{\renewpagestyle} +% \begin{macro}{\renewpagestyle} % First the simple star/starless-selection: % \begin{macrocode} \def\renewpagestyle{% @@ -1240,9 +812,9 @@ {\@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).} +% \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} @@ -1250,8 +822,7 @@ \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname ps@#2\endcsname\relax \PackageError -% {scrpage}% -% {scrpage2}% + {scrpage2}% {Your command was ignored}% {There is no pagestyle named ``#1''.\MessageBreak% Use \protect\defpagestyle, \protect\newpagestyle or @@ -1264,10 +835,10 @@ \fi } % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % -% \begin{macro}{\providepagestyle} +% \begin{macro}{\providepagestyle} % First the simple star/starless-selection: % \begin{macrocode} \def\providepagestyle{% @@ -1278,7 +849,7 @@ {\@providepagestyle[-]}% {\@providepagestyle[+]}} % \end{macrocode} -% \begin{macro}{\@providepagestyle} +% \begin{macro}{\@providepagestyle} % There we have to distinguish, whether the pagestyle is already % defined or not. % \begin{macrocode} @@ -1290,21 +861,20 @@ \@defpagestyle[#1]{#2}{#3}{#4}% \else \PackageInfo -% {scrpage}% -% {scrpage2}% + {scrpage2}% {\protect\providepagestyle\protect{#1\protect} ignored.}% \fi } % \end{macrocode} -% \end{macro} -% \end{macro} +% \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{macro}{\deftripstyle} % \begin{macrocode} % \end{macrocode} % At version 1 we define the selection of star- or starless-version first: @@ -1314,18 +884,18 @@ {\@deftripstyle[-]}% {\@deftripstyle[+]}} % \end{macrocode} -% \end{macro} +% \end{macro} % Next we check, if there is an optional argument: -% \begin{macro}{\@deftripstyle} +% \begin{macro}{\@deftripstyle} % \begin{macrocode} \def\@deftripstyle[#1]#2{% \@ifnextchar[%] {\@@deftripstyle[#1]{#2}}% {\@@deftripstyle[#1]{#2}[\z@]}} % \end{macrocode} -% \end{macro} +% \end{macro} % or perhaps two optional arguments: -% \begin{macro}{\@@deftripstyle} +% \begin{macro}{\@@deftripstyle} % \begin{macrocode} \def\@@deftripstyle[#1]#2[#3]{% % \end{macrocode} @@ -1337,9 +907,9 @@ {\@@@deftripstyle#2[#3]}% {\@@@deftripstyle#2[\z@][#3]}} % \end{macrocode} -% \end{macro} +% \end{macro} % Now the main-definition: -% \begin{macro}{\@@@deftripstyle} +% \begin{macro}{\@@@deftripstyle} % \begin{macrocode} \def\@@@deftripstyle#1[#2][#3]#4#5#6#7#8#9{% \def\@tempb{+}% @@ -1370,32 +940,29 @@ \fi } % \end{macrocode} -% \end{macro} +% \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 is new since version 2. +% \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} +% \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. @@ -1423,11 +990,11 @@ \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}} +% \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 @@ -1510,12 +1077,12 @@ \let\@mkboth\markboth } % \end{macrocode} -% \end{macro} +% \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}} +% \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. @@ -1531,23 +1098,23 @@ \@automarkfalse } % \end{macrocode} -% \end{macro} -% -% \begin{macro}{\partlevel} -% \changes{v2.2}{2004/07/05}{New} -% \changes{v2.4}{2009/11/11}{part level is always -1} -% \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} +% \end{macro} +% +% \begin{macro}{\partlevel} +% \changes{v2.2}{2004/07/05}{New} +% \changes{v2.4}{2009/11/11}{part level is always -1} +% \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} @@ -1559,16 +1126,16 @@ \newcommand*{\paragraphlevel}{4} \newcommand*{\subparagraphlevel}{5} % \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}{\MakeMarkcase} -% \changes{v2.0m}{2002/02/05}{Klasse \texttt{scrlttr2} ist bekannt} +% \begin{macro}{\MakeMarkcase} +% \changes{v2.0m}{2002/02/05}{\texttt{scrlttr2} is a known class} % 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: @@ -1588,12 +1155,11 @@ are lower case without use of scrpage2}}}}% \let\MakeMarkcase\MakeUppercase}}}}}{} % \end{macrocode} -% \end{macro} +% \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 } +% \begin{macro}{\scrheadings@style} +% \changes{v2.0g}{2001/06/25}{New} +% \changes{v2.0m}{2002/02/05}{Take care of class \texttt{scrlttr2}} % 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} @@ -1604,35 +1170,31 @@ \@ifclassloaded{scrlttr2}{\def\scrheadings@style{koma}}{% \def\scrheadings@style{standard}}}}}}{} % \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -% -% \end{macrocode} +% \end{macro} % % % \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} +% \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 @@ -1706,8 +1268,7 @@ \settowidthof{\@tempdima}{#3}% \ifdim\@tempdima>\paperwidth \PackageWarning -% {scrpage}% -% {scrpage2}% + {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}% @@ -1715,8 +1276,7 @@ \else \ifdim\@tempdima<\z@ \PackageWarning -% {scrpage}% -% {scrpage2}% + {scrpage2}% {You've set width of #1 to negative value!\MessageBreak% I'll set it to 0pt}% \setlength{\@tempdima}{\z@}% @@ -1750,26 +1310,26 @@ \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} +% \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} @@ -1783,7 +1343,6 @@ % 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}{}% @@ -1796,86 +1355,76 @@ \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} % % % \subsection{Fonts} -% \begin{macro}{\pnumfont} +% \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} +% \end{macro} % -% \begin{macro}{\headfont} +% \begin{macro}{\headfont} % There is also a macro used by |\@evenhead|, |\@oddhead| and |\@evenfoot|, % |\@oddfoot|: % \begin{macrocode} -\providecommand*{\headfont}{\normalfont% -% \slshape% -} -%<*v2> +\providecommand*{\headfont}{\normalfont\slshape} \def\scr@fnt@wrn@pagehead#1{% `pagehead' is only an alias of `pageheadfoot'.\MessageBreak Font of page foot may also be changed% } -% % \end{macrocode} -% \end{macro} +% \end{macro} % -% \begin{macro}{\footfont} -% \changes{v2.2f}{2008/02/14}{New} -% \begin{macro}{\scr@fnt@pagefoot} -% \changes{v2.2f}{2008/02/14}{New (internal)} -% \begin{macro}{\scr@fnt@wrn@pagefoot} -% \changes{v2.2f}{2008/02/14}{deactivated} +% \begin{macro}{\footfont} +% \changes{v2.2f}{2008/02/14}{New} +% \begin{macro}{\scr@fnt@pagefoot} +% \changes{v2.2f}{2008/02/14}{New (internal)} +% \begin{macro}{\scr@fnt@wrn@pagefoot} +% \changes{v2.2f}{2008/02/14}{deactivated} % There is also a macro used by |\@evenfoot|, |\@oddfoot| after |\headfont|: % \begin{macrocode} -%<*v2> \providecommand*{\footfont}{\normalfont} \providecommand*{\scr@fnt@pagefoot}{\footfont} \let\scr@fnt@wrn@pagefoot\relax -% % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} +% \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 +% \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''} +% Since 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} @@ -1884,13 +1433,13 @@ \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} +% \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} @@ -1920,38 +1469,35 @@ \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} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \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} +% \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. @@ -1960,38 +1506,33 @@ \if@chapter \providecommand{\chaptermarkformat} {\@chapapp\ \thechapter. \ } \providecommand{\sectionmarkformat} {\thesection. \ } -% \providecommand{\subsectionmarkformat} {\@seccntmarkformat{subsection}} + \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} +% \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}} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0b}{2001/05/31}{use this instead 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 @@ -2008,17 +1549,17 @@ \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}} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0b}{2001/05/31}{use this instead 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}} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0b}{2001/05/31}{use this instead of +% \cs{ps@standardmyheadings}} % \begin{macro}{\ps@headings} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\ps@myheadings} -% \changes{v2.0}{2001/04/20}{New} +% \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 @@ -2090,34 +1631,34 @@ % % % \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} +% \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} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrplain@even@middle@head} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrplain@even@right@head} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrplain@odd@left@head} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrplain@odd@middle@head} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrplain@odd@right@head} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrplain@even@left@foot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrplain@even@middle@foot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrplain@even@right@foot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrplain@odd@left@foot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrplain@odd@middle@foot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrplain@odd@right@foot} -% \changes{v2.0}{2001/04/20}{New} +% \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} @@ -2211,34 +1752,33 @@ % \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} +% \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} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrheadings@even@middle@head} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrheadings@even@right@head} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrheadings@odd@left@head} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrheadings@odd@middle@head} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrheadings@odd@right@head} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrheadings@even@left@foot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrheadings@even@middle@foot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrheadings@even@right@foot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrheadings@odd@left@foot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrheadings@odd@middle@foot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\scrheadings@odd@right@foot} -% \changes{v2.0}{2001/04/20}{New} -% +% \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 @@ -2333,41 +1873,41 @@ % % % \begin{macro}{\ihead} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\ohead} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\chead} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\lehead} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\lohead} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\rehead} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\rohead} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\cehead} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\cohead} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\ifoot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\ofoot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\cfoot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\lefoot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\lofoot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\refoot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\rofoot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\cefoot} -% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0}{2001/04/20}{New} % \begin{macro}{\cofoot} -% \changes{v2.0}{2001/04/20}{New} +% \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. @@ -2471,11 +2011,11 @@ % \end{macro} % % \begin{macro}{\clearscrheadings} -% \changes{v2.0j}{2001/08/18}{New} +% \changes{v2.0j}{2001/08/18}{New} % \begin{macro}{\clearscrheadfoot} -% \changes{v2.0j}{2001/08/18}{New} +% \changes{v2.0j}{2001/08/18}{New} % \begin{macro}{\clearscrpain} -% \changes{v2.0j}{2001/08/18}{New} +% \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: @@ -2513,15 +2053,16 @@ % % % Let's do the default setting: -% \changes{v2.0m}{2002/02/05}{Neue Briefklasse \texttt{scrlttr2} -% wird aktiv unterst"utzt} +% \changes{v2.0m}{2002/02/05}{Active support for new letter class +% \texttt{scrlttr2}} +% \changes{v3.12}{2013/12/14}{fix \cs{rohead} if page number left at head} % \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}% + \rehead{\leftmark}\rohead{\leftmark}% \or \lehead{\leftmark}\lohead{\leftmark}% \chead[\pagemark]{\pagemark}% @@ -2568,18 +2109,30 @@ \begingroup\expandafter\expandafter\expandafter\endgroup\expandafter \ifx\csname sectionmark\endcsname\relax \ifx\@mkboth\markboth\@automarktrue\fi - \else - \ifx\sectionmark\@gobble\else\@automarktrue\fi + \else +% \end{macrocode} +% \changes{v2.5a}{2012/11/02}{\cs{@gobble} is long, but \cs{sectionmark} and +% \cs{chaptermark} may be short} +% \begin{macrocode} + \ifx\sectionmark\@gobble\else + \begingroup + \def\@gobble#1{}\ifx\sectionmark\@gobble\else + \aftergroup\@automarktrue + \fi + \endgroup + \fi \fi \else - \ifx\chaptermark\@gobble\else\@automarktrue\fi + \ifx\chaptermark\@gobble\else + \begingroup + \def\@gobble#1{}\ifx\chaptermark\@gobble\else + \aftergroup\@automarktrue + \fi + \endgroup + \fi \fi % \end{macrocode} % -% \begin{macrocode} -% -% \end{macrocode} -% % % \subsection{Configurationfile} % Not last and not least we include the local configuration-file @@ -2599,7 +2152,6 @@ % the moment. And the one is a check, if the \cs{headheight} should be % increased. % \begin{macrocode} -%<*v2> \AtBeginDocument{% \ifdim\headheight=12pt \PackageWarningNoLine{scrpage2}% @@ -2622,7 +2174,6 @@ into the preamble of your document.\MessageBreak A better solution would be to use typearea package}% \fi\fi} -% % \end{macrocode} % % \subsection{End} diff --git a/Master/texmf-dist/source/latex/koma-script/scrpage.ins b/Master/texmf-dist/source/latex/koma-script/scrpage.ins deleted file mode 100644 index c14fc42e805..00000000000 --- a/Master/texmf-dist/source/latex/koma-script/scrpage.ins +++ /dev/null @@ -1,75 +0,0 @@ -% ====================================================================== -% scrpage.ins -% Copyright (c) Markus Kohm, 2002-2012 -% -% This file is part of the LaTeX2e KOMA-Script bundle. -% -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% -% This work has the LPPL maintenance status "author-maintained". -% -% The Current Maintainer and author of this work is Markus Kohm. -% -% This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrpage.ins -% Copyright (c) Markus Kohm, 2002-2012 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. -% ====================================================================== - -% ---------- start of docstrip process --------------------------------- -\def\batchfile{scrpage.ins} - -% ---------- KOMA-Script default docstrip declarations ----------------- - -\input docstrip.tex -\@@input scrstrip.inc - -% ---------- File generation ------------------------------------------- - -\generate{\usepreamble\defaultpreamble - \file{scrpage.sty}{% - \ifbeta\from{scrbeta.dtx}{package,scrpage,v1}\fi - \from{scrpage.dtx}{scrpage,v1}% - \from{scrlogo.dtx}{logo}% - }% - \file{scrpage2.sty}{% - \ifbeta\from{scrbeta.dtx}{package,scrpage,v2}\fi - \from{scrpage.dtx}{scrpage,v2}% - \from{scrlogo.dtx}{logo}% - }% -} - -% ---------- end of docstrip process ----------------------------------- - -\ifToplevel{% - \def\idocfiles{`scrpage.dtx'}% -} - -\@@input scrstrop.inc - -\endinput -% -% end of file `scrpage.ins' -%%% Local Variables: -%%% mode: TeX -%%% TeX-master: "scrmain.ins" -%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrsource.tex b/Master/texmf-dist/source/latex/koma-script/scrsource.tex index d5e68fa47cb..42abd44e4e1 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrsource.tex +++ b/Master/texmf-dist/source/latex/koma-script/scrsource.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrsource.tex -% Copyright (c) Markus Kohm, 2002-2011 +% Copyright (c) Markus Kohm, 2002-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrsource.tex -% Copyright (c) Markus Kohm, 2002-2011 +% Copyright (c) Markus Kohm, 2002-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -35,10 +35,10 @@ % Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. % ====================================================================== -% Try to get the version of KOMA-Script from scrkvers.dtx. +% Try to get the version of KOMA-Script from scrkernel-version.dtx. \begingroup \def\ProvidesFile#1[#2]{\csname endinput\endcsname}% - \input scrkvers.dtx + \input scrkernel-version.dtx \newcommand*{\ParseKOMAScriptVersion}{} \def\ParseKOMAScriptVersion#1/#2/#3 v#4 #5\ParseKOMAScriptVersion{% \gdef\filedate{#1\kern1pt-\kern0pt#2\kern1pt-\kern0pt#3}% @@ -93,32 +93,32 @@ dokumentiert. Die Reihenfolge in der Dokumentation entspricht jedoch \emph{nicht} der Reihenfolge des Codes in den Klassen und Paketen. - \DocInclude{scrkvers} - \DocInclude{scrkbase} + \DocInclude{scrkernel-version} + \DocInclude{scrkernel-basics} % \DocInclude{tocbasic} - \DocInclude{scrkmisc} - \DocInclude{scrklang} - \DocInclude{scrkfont} - \DocInclude{scrktare} - \DocInclude{scrkfloa} - \DocInclude{scrkftn} - \DocInclude{scrkpage} - \DocInclude{scrkpar} - \DocInclude{scrktitl} - \DocInclude{scrksect} - \DocInclude{scrkliof} - \DocInclude{scrkbib} - \DocInclude{scrkidx} - \DocInclude{scrklist} + \DocInclude{scrkernel-miscellaneous} + \DocInclude{scrkernel-language} + \DocInclude{scrkernel-fonts} + \DocInclude{scrkernel-typearea} + \DocInclude{scrkernel-floats} + \DocInclude{scrkernel-footnotes} + \DocInclude{scrkernel-pagestyles} + \DocInclude{scrkernel-paragraphs} + \DocInclude{scrkernel-title} + \DocInclude{scrkernel-sections} + \DocInclude{scrkernel-listsof} + \DocInclude{scrkernel-bibliography} + \DocInclude{scrkernel-index} + \DocInclude{scrkernel-listsandtabulars} \DocInclude{scrlfile} \DocInclude{scrlogo} - \DocInclude{scrkcomp} - \DocInclude{scrknpap} - \DocInclude{scrkvars} - \DocInclude{scrkplen} - \DocInclude{scrklco} + \DocInclude{scrkernel-compatibility} + \DocInclude{scrkernel-notepaper} + \DocInclude{scrkernel-variables} + \DocInclude{scrkernel-pseudolengths} + \DocInclude{scrkernel-letterclassoptions} \DocInclude{japanlco} - \DocInclude{scrkcile} + \DocInclude{scrkernel-circularletters} \DocInclude{scrextend} \DocInclude{scrhack} diff --git a/Master/texmf-dist/source/latex/koma-script/scrstrip.inc b/Master/texmf-dist/source/latex/koma-script/scrstrip.inc index d47aab30640..733117753f0 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrstrip.inc +++ b/Master/texmf-dist/source/latex/koma-script/scrstrip.inc @@ -51,105 +51,34 @@ % ---------- start of docstrip ----------------------------------------- -\let\ifbeta=\iffalse - -\ifToplevel{\ifx\generate\undefined - \Msg{************************************************************} - \Msg{*} - \Msg{* This installation requires docstrip version 2.3c or} - \Msg{* later, but an old version of docstrip has been input.} - \Msg{* You have to update docstrip and maybe LaTeX first!} - \Msg{*} - \Msg{************************************************************} - \errhelp{Install a new version of docstrip.} - \errmessage{Old docstrip in input path} - \batchmode - \csname @@end\endcsname - \fi - \Msg{************************************************************} - \Msg{*} - \Msg{* KOMA-Script} - \Msg{* a versatile LaTeX2e bundle} - \Msg{*} - \Msg{* This is `\batchfile', a batchfile to unpack some or all} - \Msg{* parts of KOMA-Script. See `liesmich.txt' (german) or} - \Msg{* `readme.txt' (english) for additional information.} - \Msg{*} - \Msg{* If some - maybe old - files of KOMA-Script are already} - \Msg{* installed, you will be ask, if it is allowed to overwrite} - \Msg{* them. Answering `yes' doesn't mean, that `\batchfile'} - \Msg{* WILL overwrite such files. It means only, that} - \Msg{* `\batchfile' or installation MAY overwrite them.} - \Msg{*} - \Msg{************************************************************} -} +\KOMAdefVariable{AUTHOR}{Markus Kohm} +\KOMAdefVariable{EMAIL}{[komascript at gmx info]} +\KOMAdefVariable{COPYRIGHTFROM}{1994} +\KOMAdefVariable{COPYRIGHTTILL}{2013} -% ---------- some docstrip switchs ------------------------------------- +\let\ifbeta=\iffalse % with = will be replaced by release process \ifToplevel{% + \Msg{+======================================================================} + \Msg{| KOMA-Script} + \Msg{| a versatile LaTeX2e bundle} + \Msg{+----------------------------------------------------------------------} + \Msg{| This batchfile will unpack some or all parts of KOMA-Script.} + \Msg{| On errors press either `h' or ask an expert for help after reading} + \Msg{| `README'.} + \Msg{+----------------------------------------------------------------------} +% ---------- some docstrip switchs ------------------------------------- \keepsilent \askforoverwritefalse -% \askforoverwritetrue -% \ifx\askonceonly\undefined\else\askonceonly\fi -} - % ---------- validity -------------------------------------------------- -\ifToplevel{% - \let\manifest\inFile - \Msg{* Testing validity of KOMA-Script distribution:} - \def\readloop{% - \ifeof\manifest\else - \read\manifest to \manifestfile\relax - \ifx\manifestfile\empty - \else - \openin\inputcheck \manifestfile\relax - \ifeof\inputcheck - \@addto\missingfiles{\comma\manifestfile}% - \def\comma{,^^J\noexpand\spaces}% - \fi - \closein\inputcheck - \fi - \expandafter\readloop - \fi - }% - \begingroup - \endlinechar=256 - \let\missingfiles\empty - \let\comma\empty - \openin\manifest manifest.txt\relax - \readloop - \closein\manifest - \ifx\missingfiles\empty - \Msg{* KOMA-Script distribution seams to be valid.}% - \else - \edef\cmp{doc/scrguien.pdf\comma doc/scrguien.html\comma - doc/scrguide.pdf\comma doc/scrguide.html}% - \ifx\missingfiles\cmp - \Msg{* KOMA-Script distribution may be valid.}% - \Msg{* WARNING: Manuals not found but needed for a legal - distribution!}% - \else - \def\spaces{\space\space\space\space\space}% - \edef\spaces{* \spaces\spaces\spaces}% - \Msg{* Missing files: \missingfiles.}% - \Msg{* This seams not to be a valid KOMA-Script distribution.}% - \Msg{* You should not try to install this!}% - \errhelp{You should ask your distributor for a valid and legal - KOMA-Script distribution.}% - \errmessage{Validity test of KOMA-Script distribution failed}% - \batchmode - \csname @@end\endcsname - \fi - \fi - \endgroup + \KOMAvalidityTest{manifest.txt} } % ---------- defining preambles ---------------------------------------- \preamble -Copyright (c) 1994-2012 -Markus Kohm and any individual authors listed elsewhere in this file. +\noexpand\KOMAuseVariable{COPYRIGHT} This file was generated from file(s) of the KOMA-Script bundle. --------------------------------------------------------------- diff --git a/Master/texmf-dist/source/latex/koma-script/scrstrop.inc b/Master/texmf-dist/source/latex/koma-script/scrstrop.inc index 98e827eb129..715acaedaa2 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrstrop.inc +++ b/Master/texmf-dist/source/latex/koma-script/scrstrop.inc @@ -42,35 +42,22 @@ % ---------- end of docstrip ----------------------------------------- \ifToplevel{% - \Msg{************************************************************} - \Msg{*} - \Msg{* KOMA-Script} - \Msg{* a versatile LaTeX2e bundle} - \Msg{*} + \Msg{| Unpacking finished successfully.} + \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{| YOU SHOULD NOTE, THAT THIS IS NOT AN OFFICIAL RELEASE!} + \Msg{| THIS VERSION IS INTENDED TO BE USED FOR TESTING ONLY!} + \Msg{| USAGE FOR PURPOSES OTHER THAN INDENTED IS DANGEROUS!} + \Msg{| DON'T EXPECT ANY SUPPORT FOR THIS VERSION!} \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 additional information.} - \Msg{*} - \ifx\idocfiles\empty\else - \Msg{* You may also produce the implementation documentation,} - \Msg{* but you don't need. To produce it, run file(s)} - \Msg{* \idocfiles} - \Msg{* through LaTeX after finishing the installation.} - \Msg{*} - \fi - \Msg{* You will find the manual reading `README' (English),} - \Msg{* or `koma-script.pdf'.} - \Msg{*} - \Msg{* Happy TeXing} + \Msg{| To finish the installation you have to move some files into} + \Msg{| a directory searched by TeX, e.g., `tex/latex/koma-script/'} + \Msg{| of a local or personal TEXMF tree.} + \Msg{| See `INSTALL.txt' (English) or `INSTALLD.txt' (German)} + \Msg{| for additional information about the installation and} + \Msg{| the user manual.} \fi - \Msg{*} - \Msg{************************************************************} + \Msg{+======================================================================} } \endinput diff --git a/Master/texmf-dist/source/latex/koma-script/scrtime.dtx b/Master/texmf-dist/source/latex/koma-script/scrtime.dtx index d6e29f1dd90..11f6f750b2f 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrtime.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrtime.dtx @@ -2,7 +2,7 @@ % \iffalse % ====================================================================== % scrtime.dtx -% Copyright (c) Markus Kohm, 1995-2012 +% Copyright (c) Markus Kohm, 1995-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrtime.dtx -% Copyright (c) Markus Kohm, 1995-2012 +% Copyright (c) Markus Kohm, 1995-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -55,19 +55,54 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: scrtime.dtx +%%% From File: $Id: scrtime.dtx 1383 2013-10-01 15:44:28Z mjk $ +%\NeedsTeXFormat{LaTeX2e}[1995/06/01] %<*driver> -% \fi -\ProvidesFile{scrtime.dtx}[2011/03/31 v3.08b KOMA-Script - (packages scrtime and scrdate)] -% \iffalse +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{scrtime.dtx}[% % -%\NeedsTeXFormat{LaTeX2e}[1995/12/01] -%\ProvidesPackage{scrtime}[% -%\ProvidesPackage{scrdate}[% -% \KOMAScriptVersion\space package (% -% time of LaTeX run)] -% day of the week)] +%<*driver|package> +%\ProvidesPackage{scrtime}[% +%\ProvidesPackage{scrdate}[% +%<*driver|identify> + 2011/03/31 v3.08b KOMA-Script package +% +% (time of LaTeX run)% +% (day of the week)% +%<*driver|identify> +] +% +% +%<*dtx> +\ifx\documentclass\undefined + \input scrdocstrip.tex + \@@input scrkernel-version.dtx + \@@input scrstrip.inc + \KOMAdefVariable{COPYRIGHFROM}{1995} + \generate{\usepreamble\defaultpreamble + \file{scrtime.sty}{% + \from{scrkernel-version.dtx}{package,scrtime}% + \from{scrtime.dtx}{package,scrtime,identify}% + \from{scrkernel-basics.dtx}{load}% + \from{scrtime.dtx}{package,scrtime,option}% + \from{scrtime.dtx}{package,scrtime,body}% + \from{scrlogo.dtx}{logo}% + } % + \file{scrdate.sty}{% + \from{scrkernel-version.dtx}{package,scrdate}% + \from{scrtime.dtx}{package,scrdate,identify}% + \from{scrkernel-basics.dtx}{load}% + \from{scrtime.dtx}{package,scrdate,option}% + \from{scrtime.dtx}{package,scrdate,body}% + \from{scrlogo.dtx}{logo}% + } % + } + \@@input scrstrop.inc +\else + \let\endbatchfile\relax +\fi +\endbatchfile +% %<*driver> \documentclass{scrdoc} \usepackage[german,english]{babel} diff --git a/Master/texmf-dist/source/latex/koma-script/scrwfile.dtx b/Master/texmf-dist/source/latex/koma-script/scrwfile.dtx index f76af2b85f1..5db335bed1b 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrwfile.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrwfile.dtx @@ -1,8 +1,8 @@ -% \CheckSum{271} +% \CheckSum{306} % \iffalse meta-comment % ====================================================================== % scrwfile.dtx -% Copyright (c) Markus Kohm, 2010-2012 +% Copyright (c) Markus Kohm, 2010-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -29,7 +29,7 @@ % at least three times. % ---------------------------------------------------------------------- % scrwfile.dtx -% Copyright (c) Markus Kohm, 2010-2012 +% Copyright (c) Markus Kohm, 2010-2013 % % Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. % @@ -75,7 +75,7 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: scrwfile.dtx +%%% From File: $Id: scrwfile.dtx 1562 2013-12-19 07:51:16Z mjk $ %<*dtx> \def\LaTeXformat{LaTeX2e} \ifx\fmtname\LaTeXformat @@ -90,7 +90,7 @@ %\ProvidesFile{scrwfile.drv} %\ProvidesFile{scrwfile.tex} %<*dtx|(package&identify)|driver|doc> - [2012/03/05 v0.1d-alpha LaTeX2e KOMA-Script package (write and clone files)] + [2013/08/05 v0.1f-alpha LaTeX2e KOMA-Script package (write and clone files)] % %<*driver> \documentclass{scrdoc} @@ -121,6 +121,7 @@ \providecommand\PParameter[1]{\mbox{\texttt{\{#1\}}}} \let\PName\meta \let\PValue\texttt + \providecommand*{\important}[1]{} \providecommand*{\autoref}[1]{\expandafter\AUTOREF#1:} \providecommand*{\AUTOREF}{} \makeatletter @@ -144,7 +145,7 @@ % Now the installation driver: % %<*insfile> -\expandafter\let\expandafter\ifbeta\csname iffalse\endcsname +\let\ifbeta=\iffalse % with = will be replaced by release process \def\batchfile{scrwfile.dtx} \input docstrip.tex \ifToplevel{% @@ -164,7 +165,7 @@ \preamble -Copyright (c) 2010-2012 by Markus Kohm +Copyright (c) 2010-2013 by Markus Kohm This file was generated from file(s) of the KOMA-Script bundle. --------------------------------------------------------------- @@ -364,7 +365,7 @@ limited any longer. Sometimes it is useful to input a file not only once but several times. As \Macro{@starttoc} does not open files for writing any longer, this may be -done by simply using \Macro{\@starttoc} several times with the same +done by simply using \Macro{@starttoc} several times with the same extension. But sometimes you may have additional entries in only some of the content directories. Because of this, \Package{scrwfile} allows to copy all entries of a file to another file, too. We call this cloning. @@ -408,24 +409,54 @@ contents: \begin{lstcode} \usepackage{scrwfile} \TOCclone[Short \contentsname]{toc}{stoc} - \AtBeginDocument{% - % aux first opened at \begin{document}. So wait until this: - \addtocontents{toc}{% first toc entry: - \proctect\addcontentsline{stoc}{% write to Short Contents - \protect\tableofcontents% Contents - }% - }% +\end{lstcode} +This would create a new table of contents with the heading »Short +Contents«. The new table of contents uses a helper file with extension +\File{stoc}. All entries to the helper file with extension \File{toc} will +also be copied to this new helper file. + +The new short table of contents should only have the chapter entries. This may +be done using: +\begin{lstcode} + \addtocontents{stoc}{\protect\value{tocdepth}=0} +\end{lstcode} +Normally you cannot write into a helper file before +\Macro{begin}\PParameter{document}. But using \Package{scrwfile} changes +this. So the code above will be successful after loading \Package{scrwfile}. + +To show the new short contents of helper file extension \File{stoc} we will +use +\begin{lstcode}[moretexcs={listofsttoc}] + \listofstoc +\end{lstcode} +somewhere after \Macro{begin}\PParameter{document}. + +If we also want an entry for the table of contents at the short contents, we +cannot use +\begin{lstcode} + \addtocontents{toc}{% write to the Contents + \protect\addcontentslinedefault{stoc}% write to Short Contents + {chapter}% a chapter entry with + {\contentsname}% the Contents' name + } +\end{lstcode} +because the \Macro{addcontentsline} command would be copied to \File{stoc} +too. So we cannot add the command to the \File{toc}-file. Package +\Package{tocbasic}\important{\Package{tocbasic}} may be used to solve this: +\csname phantomsection\endcsname\label{example:scrwfile.AfterStartingTOC} +\begin{lstcode} + \AfterStartingTOC[toc]{% + \addcontentslinedefault{stoc}{chapter} + {\protect\contentsname}% } - \begin{document} - \setcounter{tocdepth}{1}% show chapters only - \listofstoc% Write short table of contents - \setcounter{tocdepth}{6}% show all levels - \tableofcontents% Write table of contents \end{lstcode} -You need at least three \LaTeX{} runs to get a short table of contents and a -detailed table of contents. The detailed one produces an entry at the short -one but this entry will not be part of the detailed table of contents. +But this needs, that the file with extension \File{toc} is under control of +package \Package{tocbasic}, which is indeed the case within all \KOMAScript{} +classes. %\iffalse^^A meta-comment +See \autoref{sec:tocbasic.toc} on +\autopageref{desc:tocbasic.cmd.AfterStartingTOC} for more information about +\Macro{AfterStartingTOC}.% \end{Example} \EndIndex{Cmd}{TOCclone} @@ -649,12 +680,55 @@ extension. So there's currently no user documentation for this. % \begin{macro}{\@starttoc} % We have to add the single handle feature to this. % \begin{macro}{\scrwfile@saved@starttoc} +% \changes{v0.1e}{2013/07/24}{take care for unfriendly \textsl{hyperref}} % This is the original definition, that will be used, if the file is not under -% \texttt{scrwfile}'s control. +% \texttt{scrwfile}'s control. Because of package \textsl{hyperref}, that does +% a hard redefinition without any care for changed definitions, we have to +% take care for that unfriendly package and cannot do a simple +% \begin{verbatim} +% \let\scrwfile@saved@starttoc\@starttoc +% \let\@starttoc\scrwfile@starttoc +% \end{verbatim} % \begin{macrocode} \newcommand*{\scrwfile@saved@starttoc}{} -\let\scrwfile@saved@starttoc\@starttoc -\let\@starttoc\scrwfile@starttoc +\AtBeginDocument{% + \begingroup + \@ifpackageloaded{hyperref}{% + \scr@ifundefinedorrelax{Hy@AtBeginDocument}{% + \PackageWarning{scrwfile}{% + Incompatible `hyperref` package detected!\MessageBreak + You are using a `hyperref` version, that\MessageBreak + doesn't provide `\string\Hy@AtBeginDocument`.\MessageBreak + This may or may not work.\MessageBreak + Using immediate redefinition% + }% + \aftergroup\@firstofone + }{% + \def\reserved@a{\AtBeginDocument}% + \ifx\Hy@AtBeginDocumentHook\@undefined + \PackageInfo{scrwfile}{% + Using immediate redefinition% + }% + \aftergroup\@firstofone + \else + \PackageInfo{scrwfile}{% + Using `\string\Hy@AtBeginDocument`% + }% + \aftergroup\Hy@AtBeginDocument + \fi + }% + }{% + \aftergroup\@firstofone + }% + \endgroup + {% + \PackageInfo{scrwfile}{% + Extending `\string\@starttoc` + }% + \let\scrwfile@saved@starttoc\@starttoc + \let\@starttoc\scrwfile@starttoc + }% +} % \end{macrocode} % \end{macro} % \end{macro} diff --git a/Master/texmf-dist/source/latex/koma-script/tocbasic.dtx b/Master/texmf-dist/source/latex/koma-script/tocbasic.dtx index c63f13673c2..d48a5a1481f 100644 --- a/Master/texmf-dist/source/latex/koma-script/tocbasic.dtx +++ b/Master/texmf-dist/source/latex/koma-script/tocbasic.dtx @@ -1,8 +1,8 @@ -% \CheckSum{1234} +% \CheckSum{1335} % \iffalse meta-comment % ====================================================================== % tocbasic.dtx -% Copyright (c) Markus Kohm, 2008-2012 +% Copyright (c) Markus Kohm, 2008-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -19,11 +19,10 @@ % % This work consists of files `tocbasic.dtx' and `scrlogo.dtx' at least. % -% To create `tocbasic.sty' run `tex tocbasic.dtx'. Using LaTeX instead -% of TeX would generate the implementation documentation. +% This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % tocbasic.dtx -% Copyright (c) Markus Kohm, 2008-2012 +% Copyright (c) Markus Kohm, 2008-2013 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -37,12 +36,7 @@ % % Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. % -% Dieses Werk besteht mindestens aus den Dateien `tocbasic.dtx' und -% `scrlogo.dtx'. -% -% `tocbasic.sty' kann durch den Aufruf `tex tocbasic.dtx' erzeugt -% werden. Bei Verwendung von LaTeX statt TeX wird hingegen die -% Implementierungsdokumentation erzeugt. +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. % ====================================================================== % \fi % @@ -63,49 +57,61 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: tocbasic.dtx -%<*dtx|package|driver|doc|load> -% \fi -\def\tocbasicversion{2012/04/04 v3.10b} -% \iffalse -% +%%% From File: $Id: tocbasic.dtx 1533 2013-12-10 18:06:14Z mjk $ %<*dtx> -\def\LaTeXformat{LaTeX2e} -\ifx\fmtname\LaTeXformat\def\MainBodyWork{% -\ProvidesFile{tocbasic.dtx} +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tocbasic.dtx}[% % -%\NeedsTeXFormat{LaTeX2e}[1995/06/01] -%\ProvidesFile{tocbasic.drv} -%\ProvidesFile{tocbasic.tex} -%\ProvidesPackage{tocbasic} +%\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%\ProvidesFile{tocbasic.tex}[% +%\ProvidesPackage{tocbasic}[% %<*dtx|package|driver|doc> - [\tocbasicversion\space KOMA-Script package +%!KOMAScriptVersion + package % -% (driver)% -% (handling toc-files)% -% (manual)% +% (driver)% +% (handling toc-files)% %<*dtx> - (dtx)% + (dtx)% % %<*dtx|package|driver|doc> - ] +] % -%<*dtx|driver> -\IfFileExists{scrdoc.cls}{% - \documentclass[halfparskip-]{scrdoc} -}{% - \documentclass{ltxdoc} - \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em% - M\kern.05em A\kern.1em-\kern.1em Script}} -} +%<*dtx> +\ifx\documentclass\undefined + \input scrdocstrip.tex + \@@input scrkernel-version.dtx + \@@input scrstrip.inc + \KOMAdefVariable{COPYRIGHTFROM}{2008} + \generate{\usepreamble\defaultpreamble + \useWarning\@gobbletwo + \file{tocbasic.tex}{% + \from{tocbasic.dtx}{doc}% + }% + } + \generate{\usepreamble\defaultpreamble + \file{tocbasic.sty}{% + \from{tocbasic.dtx}{package}% + \from{scrlogo.dtx}{logo}% + }% + }% + \@@input scrstrop.inc +\else + \let\endbatchfile\relax +\fi +\endbatchfile +% +%<*driver> +\documentclass[halfparskip-]{scrdoc} \usepackage[latin1]{inputenc} \usepackage[english]{babel} +\usepackage{array} \usepackage{listings} \lstset{breaklines,prebreak=\mbox{$\hookleftarrow$},language=[LaTeX]TeX, basicstyle=\small} \lstnewenvironment{lstcode}[1][]{% \lstset{breaklines,prebreak=\mbox{$\hookleftarrow$},language=[LaTeX]TeX, - basicstyle=\ttfamily\small,##1}% + basicstyle=\ttfamily\small,#1}% }{} \lstnewenvironment{lstoutput}[1][]{}{} \CodelineIndex @@ -114,139 +120,7 @@ \sloppy \DocInput{\filename} \end{document} -% -%<*dtx> -}% -\else - \let\MainBodyWork\relax -\fi - -\MainBodyWork - -\def\batchfile{tocbasic.dtx} -% -%\def\batchfile{tocbasic.ins} -%<*dtx|ins> -\input docstrip.tex - -\let\ifbeta=\iffalse - -\ifToplevel{\ifx\generate\undefined - \errhelp{Install a new version of docstrip.} - \errmessage{Old docstrip in input path} - \batchmode - \csname @@end\endcsname - \fi - \Msg{************************************************************} - \Msg{*} - \Msg{* KOMA-Script} - \Msg{* a versatile LaTeX2e bundle} - \Msg{*} - \Msg{* This is `\batchfile', a batchfile to unpack some or all} - \Msg{* parts of KOMA-Script. See `liesmich.txt' (german) or} - \Msg{* `readme.txt' (english) for additional information.} - \Msg{*} - \Msg{* Files of an old KOMA-Script installation may be} - \Msg{* overwritten without asking!} - \Msg{*} - \Msg{************************************************************} -} - -% ---------- some docstrip switchs ------------------------------------- - -\ifToplevel{% - \keepsilent - \askforoverwritefalse -} - -% ---------- defining preambles ---------------------------------------- - -\preamble - -Copyright (c) 2007-2012 -Markus Kohm and any individual authors listed elsewhere in this file. - -This file was generated from file(s) of the KOMA-Script bundle. ---------------------------------------------------------------- - -This work may be distributed and/or modified under the conditions of -the LaTeX Project Public License, version 1.3c of the license. -The latest version of this license is in - http://www.latex-project.org/lppl.txt -and version 1.3c or later is part of all distributions of LaTeX -version 2005/12/01 or later and of this work. - -This work has the LPPL maintenance status "author-maintained". - -The Current Maintainer and author of this work is Markus Kohm. - -This file may only be distributed together with the files -`scrlogo.dtx' and `tocbasic.dtx'. You may however distribute the files -`scrlogo.dtx' and `tocbasic.dtx' without this file. -See also `tocbasic.dtx' for additional information. - -If this file is a beta version, you are not allowed to distribute it. - -Currently there is only a short english manual at `tocbasic.dtx', that -should also be found as `tocbasic.pdf'. - -The KOMA-Script bundle (but maybe not this file) was based upon the -LaTeX2.09 Script family created by Frank Neukam 1993 and the LaTeX2e -standard classes created by The LaTeX3 Project 1994-1996. - -\endpreamble - -% ---------- File generation ------------------------------------------- - -\generate{\usepreamble\defaultpreamble - \file{tocbasic.ins}{% - \from{tocbasic.dtx}{ins}% - }% -% \file{tocbasic.drv}{% -% \from{tocbasic.dtx}{driver}% -% }% - \file{tocbasic.tex}{% - \from{tocbasic.dtx}{doc}% - }% -} - -\generate{\usepreamble\defaultpreamble - \file{tocbasic.sty}{% - \ifbeta\from{scrbeta.dtx}{package,tocbasic}\fi - \from{tocbasic.dtx}{package}% - \from{scrlogo.dtx}{logo}% - }% -}% - -% ---------- end of docstrip process ----------------------------------- - -\ifToplevel{% - \Msg{************************************************************} - \Msg{*} - \Msg{* KOMA-Script} - \Msg{* a versatile LaTeX2e bundle} - \Msg{*} - \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{* from KOMA-Script bundle for additional information.} - \Msg{*} - \Msg{* You may also produce the implementation documentation} - \Msg{* including also a short version of the english manual.} - \Msg{* To produce it, do} - \Msg{* \space\space pdflatex tocbasic.dtx} - \Msg{* \space\space mkindex tocbasic} - \Msg{* \space\space pdflatex tocbasic.dtx} - \Msg{* after finishing the installation.} - \Msg{*} - \Msg{* Happy TeXing} - \Msg{*} - \Msg{************************************************************} -} - -\bye -% -%<*dtx> +% % \fi % % \providecommand*{\DescribeCounter}{\DescribeMacro} @@ -304,7 +178,6 @@ standard classes created by The LaTeX3 Project 1994-1996. % \maketitle % \begin{abstract} % \iffalse -% %<*doc> \translator{Markus Kohm} @@ -333,7 +206,7 @@ packages some types of controll about these. For examples package \Package{tocbasic} delegates language control of all these tables and lists of contents to package \Package{babel}\IndexPackage{babel}%^^A %\iffalse^^A -(see \cite{package:babel})%^^A +\ (see \cite{package:babel})%^^A %\fi^^A . So automatic change of language will be provides inside all these tables and lists of contents. Using \Package{tocbasic} will @@ -733,55 +606,117 @@ Commands, that shouldn't be expanded while writing, should be prefixed by \EndIndex{Cmd}{addtoeachtocfile}% % \fi -% \iffalse + +%\iffalse^^A meta-comment \begin{Declaration} - \Macro{addcontentslinetoeachtocfile}\OParameter{owner}\Parameter{level}% - \Parameter{contentsline} +%\fi^^A meta-comment +% \DescribeMacro{\addxcontentsline} +% The command + \Macro{addxcontentsline}% + \Parameter{extension}\Parameter{level}\OParameter{number}%^^A + \Parameter{text} +%\iffalse^^A meta-comment \end{Declaration} -\BeginIndex{Cmd}{addcontentslinetoeachtocfile}% -This command -%<*dtx> +\BeginIndex{Cmd}{addxcontentsline}% +The command \Macro{addxcontentsline} +%\fi^^A meta-comment +adds an entry of given \PName{level} to toc-file with \PName{extension}. If +the \Parameter{number} is empty or omitted the entry won't have a number for +the entry with the given \PName{text}. Entries without number may be left +aligned to the number of the numbered entries of the same \PName{level} or +indented like the text of the numbered entries of the same \PName{level}, +depending on the \PValue{numberline} feature. + +\begin{Example} + Maybe you are not using a \KOMAScript{} class but need a not numbered + chapter with entry to the table of contents. This may be done using +\begin{lstcode} + \cleardoublepage + \csname phantomsection\endcsname + \addxcontentsline{toc}{chapter} + {Chapters without Numbers} + \chapter*{Chapters without Numbers} + \markboth{Chapters without Numbers}{} +\end{lstcode} + As you can see, you simply have to replace usual \Macro{addcontentsline} by + \Macro{addxcontentsline} to support the \Package{tocbasic} feature + \PValue{numberline}. +\end{Example} + +Note, that \Macro{addxcontentsline} uses +\Macro{add\PName{level}\PName{extension}entry} if such a macro exists and +\Macro{tocbasic@addxcontentsline} otherwise. Therefore you cannot define +a macro \Macro{add\PName{level}\PName{extension}entry} using +\Macro{addxcontentsline} but \Macro{tocbasic@addxcontentsline}. + +It is recommended to use \Macro{addxcontentsline} instead of +\Macro{addcontentsline} whenever possible.% +%\iffalse^^A meta-comment +\EndIndex{Cmd}{addxcontentsline} +%\fi^^A meta-comment + + +% \iffalse +\begin{Declaration} % \fi -\DescribeMacro{\addcontentslinetoeachfile} -Command \Macro{addcontentslinetoeachtocfile}\OParameter{owner}%^^A -\Parameter{level}\Parameter{contentsline} +% \DescribeMacro{\addcontentslinetoeachfile} +% \DescribeMacro{\addxcontentslinetoeachfile} +% The command + \Macro{addcontentslinetoeachtocfile}\OParameter{owner}\Parameter{level}%^^A + \Parameter{contentsline}\\ % \iffalse -% + \Macro{addxcontentslinetoeachtocfile}\OParameter{owner}%^^A + \Parameter{level}\OParameter{number}\Parameter{text} +\end{Declaration} +\BeginIndex{Cmd}{addcontentslinetoeachtocfile}% +\BeginIndex{Cmd}{addxcontentslinetoeachtocfile}% +The first command % \fi is something like \Macro{addcontentsline} from \LaTeX{} kernel. In difference to that it writes the \PName{contentsline} not only into one file, but into all files of all known file extensions or of all known file extensions of a given owner. + +The Command \Macro{addxcontentslinetoeachtocfile}%^^A +% \OParameter{owner}\Parameter{level}\OParameter{number}\Parameter{text}%^^A +\ is similar but uses +\Macro{addxcontentsline} instead of \Macro{addcontentsline} and +therefore supports \Package{tocbasic} feature \PValue{numberline}. \begin{Example} You are a class author and want to write the chapter entry not only to the table of contents toc-file but to all toc-files, while \texttt{\#1} is the title, that should be written to the files. \begin{lstcode} - \addcontentslinetoeachtocfile{chapter}{% - \protect\numberline{\thechapter}#1} + \addxcontentslinetoeachtocfile + {chapter}[\thechapter]{#1}% \end{lstcode} In this case the current chapter number should be expanded while writing into the file. So it isn't protected from expansion using \Macro{protect}. \end{Example} -While writing -\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} is the file -extension of the file into which \PName{contentsline} will be written. +While writing \Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} +is the file extension of the file into which \PName{contentsline} will be +written. + +It is recommended to use \Macro{addxcontentslinetoeachtocfile} instead +of \Macro{addcontentslinetoeachtocfile} whenever possible. % \iffalse +\EndIndex{Cmd}{addxcontentslinetoeachtocfile}% \EndIndex{Cmd}{addcontentslinetoeachtocfile}% % \fi + % \iffalse %<*dtx> % \fi -\DescribeMacro{\listoftoc} -\DescribeMacro{\listoftoc*} -\DescribeMacro{\listofeachtoc} +\DescribeMacro{\listoftoc}%^^A +\DescribeMacro{\listoftoc*}%^^A +\DescribeMacro{\listofeachtoc}%^^A Commands % \iffalse % \begin{Declaration} % \fi - \Macro{listoftoc}\OParameter{list of title}\Parameter{extension} + \Macro{listoftoc}\OParameter{list of title}\Parameter{extension}%^^A % \iffalse \\ %<*dtx> @@ -790,7 +725,7 @@ Commands % \iffalse % % \fi - \Macro{listoftoc*}\Parameter{extension} + \Macro{listoftoc*}\Parameter{extension}%^^A % \iffalse \\ %<*dtx> @@ -799,7 +734,7 @@ Commands % \iffalse % % \fi - \Macro{listofeachtoc}\OParameter{owner} + \Macro{listofeachtoc}\OParameter{owner}%^^A % \iffalse \\ %<*dtx> @@ -1128,6 +1063,11 @@ features. \Package{tocbasic} does know following features: \OptionValue{listof}{numbered}\important{\OptionValue{listof}{numbered}}% \IndexOption{listof~=\PValue{numbered}} for all file extensions of the owner \PValue{float}. +\item[\texttt{numberline}] \leavevmode\ChangedAt{v3.12}{\Package{tocbasic}}% + redefines \Macro{nonumberline} to use \Macro{numberline}. With this the not + numbered entries generated by \KOMAScript{} or using \Macro{nonumberline} at + the very beginning of the last argument of \Macro{addcontentline} will also + be indented like numbered entries of the same type. \item[\texttt{onecolumn}] \leavevmode\ChangedAt{v3.01}{\Package{tocbasic}}% typesets the corresponding table of contents or list of something with internal one column mode of @@ -1469,6 +1409,26 @@ be defined and used in \Macro{tocbasic@listhead} automatically. \EndIndex{Cmd}{tocbasic@listhead@\PName{extension}}% % \fi +%\iffalse^^A meta-comment +\begin{Declaration} +%\fi^^A meta-comment +% \DescribeMacro{\tocbasic@addxcontentsline} +% The command + \Macro{tocbasic@addxcontentsline}% + \Parameter{extension}\Parameter{level}\Parameter{number}\Parameter{text} +%\iffalse^^A meta-comment +\end{Declaration} +\BeginIndex{Cmd}{tocbasic@addxcontentsline}% +This command +%\fi^^A meta-comment +uses \Macro{addcontentsline} to either create a numbered or not numbered text +entry to toc-file with given \PName{extension}. Note, that all parameters of +\Macro{tocbasic@addxcontentsline} are mandatory. But you may use an +empty \PName{number} argument, if you don't want a number. +%\iffalse^^A meta-comment +\EndIndex{Cmd}{tocbasic@addxcontentsline} +%\fi^^A meta-comment + \section{A Complete Example} \label{sec:tocbasic.example} @@ -1799,6 +1759,81 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. additionally, then a non-floating environment \Environment{remarkbox-} will be also defined. You may use \Macro{caption}\IndexCmd{caption} inside of that non-floating environment as usual for floating environments. +%\iffalse + \hyperref[tab:tocbasic.comparison]{Figure~\ref*{tab:tocbasic.comparison}} + showes a comparison of the commands, counters and environments of the + example environment \Environment{remarkbox} and of the commands, counters + and environments for figures.% + \begin{table} + \centering + \caption{Comparison of example environment \Environment{remarkbox} + and environment \Environment{figure}} + \label{tab:tocbasic.comparison} + \begin{tabularx}{\textwidth}{ll>{\raggedright}p{6em}X} + \toprule + \Environment{remarkbox} & \Environment{figure} + & options of \Macro{DeclareNewTOC} & short description \\[1ex] + \midrule + \Environment{remarkbox} & \Environment{figure} + & \Option{type}, \Option{float} + & floating environments of the respective types\\[1ex] + \Environment{remarkbox*} & \Environment{figure*} + & \Option{type}, \Option{float} + & columns spanning floating environments of the respective types\\[1ex] + \Counter{remarkbox} & \Counter{figure} + & \Option{type}, \Option{float} + & counter used by \Macro{caption}\\[1ex] + \Macro{theremarkbox} & \Macro{thefigure} + & \Option{type}, \Option{float} + & output command to the respective counters\\[1ex] + \Macro{remarkboxformat} & \Macro{figureformat} + & \Option{type}, \Option{float} + & formating command to the respective counters used by + \Macro{caption}\\[1ex] + \Macro{remarkboxname} & \Macro{figurename} + & \Option{type}, \Option{float}, \Option{name} + & names used in the label of \Macro{caption}\\[1ex] + \Macro{listofremarkboxes} & \Macro{listoffigures} + & \Option{types}, \Option{float} + & command to show the list of the respective environments\\[1ex] + \Macro{listremarboxname} & \Macro{listfigurename} + & \Option{type}, \Option{float}, \Option{listname} + & heading text of the respective list \\[1ex] + \Macro{fps@remarkbox} & \Macro{fps@figure} + & \Option{type}, \Option{float}, \Option{floattype} + & numeric float type for order perputation\\[1ex] + \File{lor} & \File{lof} + & + & file extension of the helper file of the respective list \\ + \bottomrule + \end{tabularx} + \end{table} +%\fi + + And now a possible usage of the example environment: +\begin{lstcode} + \begin{remarkbox} + \centering + Equal should be typeset equally + and with equal formatting. + \caption{First theorem of typography} + \label{rem:typo1} + \end{remarkbox} +\end{lstcode} + A segment of an example page with this environment could be: + \begin{center}\footnotesize + \begin{tabular} + {|!{\hspace{.1\linewidth}}p{.55\linewidth}!{\hspace{.1\linewidth}}|} + \\ + \centering + Equal should be typeset equally + and with equal formatting.\\[\abovecaptionskip] + {% + \usekomafont{caption}\footnotesize{\usekomafont{captionlabel}% + Remark 1: }First theorem of typography + }\\ + \end{tabular}% + \end{center}% \end{Example} % \iffalse \EndIndex{Cmd}{DeclareNewTOC}% @@ -2142,6 +2177,11 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. % \end{macro} % \end{macro} % +% \subsection{Adding Entries into Toc-Files} +% +% We have a new general command to add entries to several toc-files at +% once. And we have some special commands for the table of contents. +% % \begin{macro}{\addcontentslinetoeachtocfile} % Something like a combination of \cs{addtoeachtocfile} and % \cs{addcontentsline}. @@ -2159,6 +2199,99 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. % \end{macrocode} % \end{macro} % +% \begin{macro}{\addxcontentsline} +% \changes{v3.12}{2013/09/24}{new} +% \changes{v3.12}{2013/09/24}{Take care of new feature \texttt{numberline}} +% \begin{macro}{\@addxcontentsline} +% \changes{v3.12}{2013/09/24}{new (internal)} +% This will be used instead of \cs{addcontentsline} to generate numbered or +% not numbered entries to a toc-file. First argument is the toc-file, second +% the entry type, e.g., \texttt{chapter}, the third is the entry number or +% empty and the fourth and last is the entry text. +% \begin{macrocode} +\newcommand*{\addxcontentsline}[2]{% + \@ifnextchar [%] + {\@addxcontentsline{#1}{#2}}% + {\@addxcontentsline{#1}{#2}[]}% +} +\newcommand*{\@addxcontentsline}{} +\def\@addxcontentsline#1#2[#3]#4{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname add#2#1entry\endcsname\relax + \tocbasic@addxcontentsline{#1}{#2}{#3}{#4}% + \else + \@nameuse{add#2#1entry}{#3}{#4}% + \fi +} +% \end{macrocode} +% \begin{macro}{\nonumberline} +% \changes{v3.12}{2013/09/24}{new} +% Either \cs{relax} or \cs{numberline} depending on the feature +% \texttt{numberline}. +% \begin{macrocode} +\newcommand*{\nonumberline}{}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\addxcontentsline} +% This may be used to either use a heading type command or the general default +% one. You are not allowed to use it in the definition of a heading type +% command like \cs{addchaptertocentry}! You may use +% \cs{tocbasic@addxcontentsline} at the definition of those commands. +% \begin{macrocode} +\newcommand*{\tocbasic@addxcontentsline}[4]{% + \if\relax\detokenize{#3}\relax + \addcontentsline{#1}{#2}{\protect\nonumberline#4}% + \else + \addcontentsline{#1}{#2}{\protect\numberline{#3}#4}% + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\addxcontentslinetoeachtocfile} +% \changes{v3.12}{2013/09/24}{new} +% \begin{macro}{\@addxcontentslinetoeachtocfile} +% \changes{v3.12}{2013/09/24}{new (internal)} +% \begin{macro}{\@@addxcontentslinetoeachtocfile} +% \changes{v3.12}{2013/09/24}{new (internal)} +% \begin{macro}{\@@@addxcontentslinetoeachtocfile} +% \changes{v3.12}{2013/09/24}{new (internal)} +% \begin{macro}{\@@@@addxcontentslinetoeachtocfile} +% \changes{v3.12}{2013/09/24}{new (internal)} +% Similar to \cs{addcontentslinetoeachtocfile} using +% \cs{addxcontentsline} instead of \cs{addcontentsline}. +% \begin{macrocode} +\newcommand{\addxcontentslinetoeachtocfile}{% + \@ifnextchar [%] + \@addxcontentslinetoeachtocfile\@@addxcontentslinetoeachtocfile +} +\newcommand{\@addxcontentslinetoeachtocfile}[2][]{% + \@ifnextchar [%] + {\@@@addxcontentslinetoeachtocfile[{#1}]{#2}}% + {\@@@addxcontentslinetoeachtocfile[{#1}]{#2}[]} +} +\newcommand*{\@@@addxcontentslinetoeachtocfile}{} +\def\@@@addxcontentslinetoeachtocfile[#1]#2[#3]#4{% + \doforeachtocfile[{#1}]{\addxcontentsline{\@currext}{#2}[#3]{#4}}% +} +\newcommand{\@@addxcontentslinetoeachtocfile}[1]{% + \@ifnextchar [%] + {\@@@@addxcontentslinetoeachtocfile{#1}}% + {\@@@@addxcontentslinetoeachtocfile{#1}[]}% +} +\newcommand*{\@@@@addxcontentslinetoeachtocfile}{} +\def\@@@@addxcontentslinetoeachtocfile#1[#2]#3{% + \doforeachtocfile{\addxcontentsline{\@currext}{#1}[{#2}]{#3}}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% % % \subsection{Show List of Toc-File} % \label{sec:showlistoftocfile} @@ -2277,6 +2410,7 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. \fi }% }{}% + \iftocfeature{\@currext}{numberline}{\def\nonumberline{\numberline{}}}{}% \tocbasic@listhead{#1}% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname microtypesetup\endcsname\relax @@ -2322,8 +2456,10 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. % \end{macro} % % \begin{macro}{\tocbasic@listhead} -% \changes{v3.02a}{2009/01/20}{no explicite marks if ``numbered''} -% \changes{v3.09a}{2011/04/12}{again no explicite marks if ``numbered''} +% \changes{v3.02a}{2009/01/20}{no explicite marks if ``numbered''}% +% \changes{v3.09a}{2011/04/12}{again no explicite marks if ``numbered''}% +% \changes{v3.12}{2013/09/24}{usage of new +% \cs{tocbasic@addxcontentsline}}% % Setting the headings of a list of something. The heading is the only % argument. % \begin{macrocode} @@ -2339,7 +2475,7 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. \subsection*{##1}% \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{##1}}\fi \iftocfeature{\@currext}{totoc}{% - \addcontentsline{toc}{subsection}{##1}% + \addxcontentsline{toc}{subsection}{##1}% }{}% }% }{% @@ -2349,7 +2485,7 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. \section*{##1}% \@mkboth{\MakeMarkcase{##1}}{\MakeMarkcase{##1}}% \iftocfeature{\@currext}{totoc}{% - \addcontentsline{toc}{section}{##1}% + \addxcontentsline{toc}{section}{##1}% }{}% }% }% @@ -2362,7 +2498,7 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. }{% \section*{##1}% \iftocfeature{\@currext}{totoc}{% - \addcontentsline{toc}{section}{##1}% + \addxcontentsline{toc}{section}{##1}% }{}% \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{##1}}\fi }% @@ -2373,7 +2509,7 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. \chapter*{##1}% \@mkboth{\MakeMarkcase{##1}}{\MakeMarkcase{##1}}% \iftocfeature{\@currext}{totoc}{% - \addcontentsline{toc}{chapter}{##1}% + \addxcontentsline{toc}{chapter}{##1}% }{}% }% }% @@ -2451,6 +2587,8 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. % \begin{description} % \item[\texttt{totoc}] writes the title of the list of to the table of % contents +% \item[\texttt{numberline}] redefines \cs{nonumberline} to use +% \cs{numberline} % \item[\texttt{numbered}] uses a numbered headings for the list of % \item[\texttt{leveldown}] uses not the top level heading (e.\,g., % \cs{chapter} with book) but the first sub level (e.\,g., \cs{section} with @@ -2521,10 +2659,14 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. % \changes{v1.0a}{2008/11/11}{use of \cs{addtotoclist} instead of internal}% % \changes{v3.07a}{2010/11/25}{fix: added missing % \cs{let}\cs{@starttoc}\cs{tocbasic@starttoc}}% -% \Package{tocbasic} can overtake \Macro{@starttoc} to automaticly add all -% used extensions to the list of known extensions and use -% \Macro{tocbasic@starttoc} instead of \Macro{@starttoc} from \LaTeX{} -% kernel. +% \Package{tocbasic} can overtake \Macro{@starttoc} to automaticly add all +% used extensions to the list of known extensions and use +% \Macro{tocbasic@starttoc} instead of \Macro{@starttoc} from \LaTeX{} +% kernel. Please note, that we don't need a fix for the unfriendly +% redefinition of \Macro{@starttoc} by \Package{hyperref}, because hyperref +% does it only at the first \LaTeX{} run. So this action of \Package{hyperref} +% may only result in the need of one more \LaTeX{} run, but not in a permanent +% mistake. % \begin{macrocode} \newcommand*{\tocbasicautomode}{% \let\tb@saved@starttoc\@starttoc @@ -2692,20 +2834,22 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. % \end{macrocode} % \end{macro} % \begin{macro}{\tb@nt@atbegin} -% \changes{v3.09}{new optional identifier \texttt{atbegin}} +% \changes{v3.09}{2011/03/01}{new optional identifier \texttt{atbegin}} +% \changes{v3.11c}{2013/02/01}{\texttt{atbegin} argument may be empty} % Additional code executed at the begin of a new defined environment. % \begin{macrocode} \define@key{tocbasic}{atbegin}{% - \tb@ifvalueisnotempty{atbegin}{#1}{\def\tb@nt@atbegin{#1}}% + \def\tb@nt@atbegin{#1}% } % \end{macrocode} % \end{macro} % \begin{macro}{\tb@nt@atend} -% \changes{v3.09}{new optional identifier \texttt{atbend}} +% \changes{v3.09}{2011/03/01}{new optional identifier \texttt{atbend}} +% \changes{v3.11c}{2013/02/01}{\texttt{atend} argument may be empty} % Additional code executed at the end of a new defined environment. % \begin{macrocode} \define@key{tocbasic}{atend}{% - \tb@ifvalueisnotempty{atend}{#1}{\def\tb@nt@atend{#1}}% + \def\tb@nt@atend{#1}% } % \end{macrocode} % \end{macro} @@ -2770,6 +2914,13 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. }% }\@tempa % \end{macrocode} +% \changes{v3.12}{2013/05/03}{fixed: definition of +% \cs{listof\meta{type}entryname} added as explained in the manual} +% \begin{macrocode} + \@ifundefined{listof\tb@nt@ext entryname}{% + \expandafter\let\csname listof\tb@nt@ext entryname\endcsname\tb@nt@name + }{}% +% \end{macrocode} % The setup command: % \begin{macrocode} \begingroup\edef\@tempa{\endgroup @@ -2781,20 +2932,24 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. % \end{macrocode} % The float environments: % \changes{v3.09a}{2011/05/30}{fixed: floats may have an optional argument} +% \changes{v3.12}{2013/12/10}{fixed: usage of default placement} % \begin{macrocode} \iftb@float \expandafter\newcommand\expandafter*\csname fps@\tb@nt@type\expandafter - \endcsname{\tb@nt@floatpos}% + \endcsname\expandafter{\tb@nt@floatpos}% \expandafter\newcommand\expandafter*\csname ftype@\tb@nt@type\expandafter - \endcsname{\tb@nt@floattype}% + \endcsname\expandafter{\tb@nt@floattype}% \begingroup \edef\@tempa{% \noexpand\endgroup \noexpand\newenvironment{\tb@nt@type}{% \noexpand\@ifnextchar[%] {\noexpand\tb@atbegin@after\noexpand\@float{\tb@nt@type}}% - {\noexpand\tb@atbegin@after\noexpand\@float{\tb@nt@type}% - [\expandafter\noexpand\csname fps@\tb@nt@type\endcsname]}% + {\noexpand\edef\noexpand\reserved@a{% + \noexpand\noexpand\noexpand\tb@atbegin@after + \noexpand\noexpand\noexpand\@float{\tb@nt@type}% + [\noexpand\csname fps@\tb@nt@type\noexpand\endcsname]}% + \noexpand\reserved@a}% }{% \noexpand\csname \tb@nt@type @atend\noexpand\endcsname \noexpand\end@float @@ -2802,8 +2957,11 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. \noexpand\newenvironment{\tb@nt@type*}{% \noexpand\@ifnextchar[%] {\noexpand\tb@atbegin@after\noexpand\@dblfloat{\tb@nt@type}}% - {\noexpand\tb@atbegin@after\noexpand\@dblfloat{\tb@nt@type}% - [\expandafter\noexpand\csname fps@\tb@nt@type\endcsname]}% + {\noexpand\edef\noexpand\reserved@a{% + \noexpand\noexpand\noexpand\tb@atbegin@after + \noexpand\noexpand\noexpand\@dblfloat{\tb@nt@type}% + [\noexpand\csname fps@\tb@nt@type\noexpand\endcsname]}% + \noexpand\reserved@a}% }{% \noexpand\csname \tb@nt@type @atend\noexpand\endcsname \noexpand\end@dblfloat @@ -2957,8 +3115,9 @@ may be found in \autoref{tab:tocbasic.DeclareNewTOC-options}. %<*load> % Used at \KOMAScript{} packages and classes to load the package. % \begin{macrocode} -\edef\@tempa{\noexpand\RequirePackage{tocbasic}[\tocbasicversion]} -\@tempa +\RequirePackage{tocbasic}[% +%!KOMAScriptVersion +] % \end{macrocode} % %<*class> diff --git a/Master/texmf-dist/source/latex/koma-script/tocstyle.dtx b/Master/texmf-dist/source/latex/koma-script/tocstyle.dtx index d5974d1863b..a47ca21191d 100644 --- a/Master/texmf-dist/source/latex/koma-script/tocstyle.dtx +++ b/Master/texmf-dist/source/latex/koma-script/tocstyle.dtx @@ -1,8 +1,8 @@ -% \CheckSum{1667} +% \CheckSum{1699} % \iffalse meta-comment % ====================================================================== % tocstyle.dtx -% Copyright (c) Markus Kohm, 2007-2012 +% Copyright (c) Markus Kohm, 2007-2013 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -29,7 +29,7 @@ % at least three times. % ---------------------------------------------------------------------- % tocstyle.dtx -% Copyright (c) Markus Kohm, 2007-2012 +% Copyright (c) Markus Kohm, 2007-2013 % % Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. % @@ -75,11 +75,11 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: tocstyle.dtx +%%% From File: $Id: tocstyle.dtx 1562 2013-12-19 07:51:16Z mjk $ %<*dtx> % \fi \def\LaTeXformat{LaTeX2e} -\let\ifbeta=\iffalse +\let\ifbeta=\iffalse % with = will be replaced by release process \ifx\fmtname\LaTeXformat\else % \iffalse % @@ -104,7 +104,7 @@ \preamble -Copyright (c) 2007-2012 by Markus Kohm +Copyright (c) 2007-2013 by Markus Kohm Copyright (c) 1994-2007 Markus Kohm and any individual authors listed elsewhere in this file. @@ -203,7 +203,7 @@ THERE IS NO SUPPORT, IF YOU USE THIS PACKAGE! %\ProvidesFile{tocstyle.drv} %\ProvidesFile{tocstyle.tex} %<*dtx|package|driver|doc> - [2009/11/09 v0.2d-alpha LaTeX2e KOMA-Script package (versatile toc styles)] + [2013/08/11 v0.2e-alpha LaTeX2e KOMA-Script package (versatile toc styles)] % %<*driver> \documentclass{scrdoc} @@ -1686,7 +1686,7 @@ usefull to define your own toc styles. % \end{macro} % \end{macro} % -% \begin{macro}{tocstyle@set@width} +% \begin{macro}{\tocstyle@set@width} % \changes{v3.05}{2009/11/11}{improve handling of standard classes} % Some classes do not use \cs{numberline}. This may result in negativ widths % (esp. negativ skips). Following special handling of negativ values improves @@ -2061,6 +2061,8 @@ usefull to define your own toc styles. % \end{macro} % % \subsubsection{Defining Some TOC Styles} +% \changes{v0.2e}{2013/08/11}{usage of new font elements of \KOMAScript\space +% at \texttt{KOMAlike}} % % \begin{macrocode} \newtocstyle{standard}{% @@ -2070,12 +2072,7 @@ usefull to define your own toc styles. \settocfeature[-1]{leaders}{\hfill}% \settocfeature[0]{entryvskip}{1em\@plus\p@}% \settocfeature[0]{leaders}{\hfill}% - \settocfeature[0]{entryhook}{% - \begingroup - \edef\@tempa{toc}% - \ifx\tocstyleAliasTOC\@tempa\aftergroup\bfseries\fi - \endgroup - }% + \settocfeature[0]{entryhook}{\bfseries} \iftochaschapter\else \settocfeature[1]{entryvskip}{1em\@plus\p@}% \settocfeature[1]{leaders}{\hfill}% @@ -2088,27 +2085,34 @@ usefull to define your own toc styles. \fi } \begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname sectfont\endcsname\relax +\expandafter\ifx\csname KOMAClassName\endcsname\relax \newtocstyle{KOMAlike}{% \settocfeature{dothook}{\normalfont}% \settocfeature[-1]{entryhook}{\sffamily\bfseries}% \settocfeature[-1]{entryvskip}{2.25em\@plus\p@}% \settocfeature[-1]{leaders}{\hfill}% + \settocfeature[-1]{pagenumberhook}{\sffamily\bfseries}% \settocfeature[0]{entryvskip}{1em\@plus\p@}% \settocfeature[0]{leaders}{\hfill}% - \settocfeature[0]{entryhook}{% - \begingroup - \edef\@tempa{toc}% - \ifx\tocstyleAliasTOC\@tempa\aftergroup\sffamily\bfseries\fi - \endgroup - }% + \settocfeature[0]{entryhook}{\sffamily\bfseries} + \settocfeature[0]{pagenumberhook}{\sffamily\bfseries}% \iftochaschapter\else \settocfeature[1]{entryvskip}{1em\@plus\p@}% \settocfeature[1]{leaders}{\hfill}% \settocfeature[1]{entryhook}{% \begingroup \edef\@tempa{toc}% - \ifx\tocstyleAliasTOC\@tempa\aftergroup\sffamily\bfseries\fi + \ifx\tocstyleAliasTOC\@tempa + \aftergroup\sffamily\aftergroup\bfseries + \fi + \endgroup + }% + \settocfeature[1]{pagenumberhook}{% + \begingroup + \edef\@tempa{toc}% + \ifx\tocstyleAliasTOC\@tempa + \aftergroup\sffamily\aftergroup\bfseries + \fi \endgroup }% \fi @@ -2116,31 +2120,47 @@ usefull to define your own toc styles. \else \newtocstyle{KOMAlike}{% \settocfeature{dothook}{\normalfont}% - \settocfeature[-1]{entryhook}{\sectfont}% + \settocfeature[-1]{entryhook}{\usekomafont{partentry}}% \settocfeature[-1]{entryvskip}{2.25em\@plus\p@}% \settocfeature[-1]{leaders}{\hfill}% + \settocfeature[-1]{pagenumberhook}{\usekomafont{partentrypagenumber}}% \settocfeature[0]{entryvskip}{1em\@plus\p@}% \settocfeature[0]{leaders}{\hfill}% - \settocfeature[0]{entryhook}{% - \begingroup - \edef\@tempa{toc}% - \ifx\tocstyleAliasTOC\@tempa\aftergroup\sectfont\fi - \endgroup - }% + \settocfeature[0]{entryhook}{\usekomafont{chapterentry}}% + \settocfeature[0]{pagenumberhook}{\usekomafont{chapterentrypagenumber}}% \iftochaschapter\else \settocfeature[1]{entryvskip}{1em\@plus\p@}% \settocfeature[1]{leaders}{\hfill}% \settocfeature[1]{entryhook}{% \begingroup \edef\@tempa{toc}% - \ifx\tocstyleAliasTOC\@tempa\aftergroup\sectfont\fi - \endgroup + \ifx\tocstyleAliasTOC\@tempa + \def\@tempa{\endgroup\usekomafont{sectionentry}}% + \else + \let\@tempa\endgroup + \fi + \@tempa + }% + \settocfeature[1]{pagenumberhook}{% + \begingroup + \edef\@tempa{toc}% + \ifx\tocstyleAliasTOC\@tempa + \def\@tempa{\endgroup\usekomafont{sectionentrypagenumber}}% + \else + \let\@tempa\endgroup + \fi + \@tempa }% \fi } \fi \newcommand*{\tocstyle@deprecated@style@KOMAScript}{KOMAlike}% \newtocstyle[KOMAlike]{classic}{% + \settocfeature[-1]{pagenumberhook}{\normalfont\normalcolor}% + \settocfeature[0]{pagenumberhook}{\normalfont\normalcolor}% + \iftochaschapter\else + \settocfeature[1]{pagenumberhook}{\normalfont\normalcolor}% + \fi \settocfeature{pagenumberhook}{\normalfont\normalcolor}% \settocfeature{raggedhook}{\raggedright}% } -- cgit v1.2.3