summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script')
-rw-r--r--macros/latex/contrib/koma-script/README514
-rw-r--r--macros/latex/contrib/koma-script/doc/INSTALL.txt151
-rw-r--r--macros/latex/contrib/koma-script/doc/INSTALLD.txt153
-rw-r--r--macros/latex/contrib/koma-script/doc/koma-script.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/komabug.tex1012
-rw-r--r--macros/latex/contrib/koma-script/doc/komascr.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/komascript.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/lppl-de.txt470
-rw-r--r--macros/latex/contrib/koma-script/doc/lppl.txt416
-rw-r--r--macros/latex/contrib/koma-script/doc/manifest.txt533
-rw-r--r--macros/latex/contrib/koma-script/doc/scraddr.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrartcl.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrbase.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrbook.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrdate.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrextend.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguide.html997
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguide.pdfbin0 -> 3150915 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguien.html994
-rw-r--r--macros/latex/contrib/koma-script/doc/scrguien.pdfbin0 -> 2999593 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrhack.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-fancyhdr.pdfbin0 -> 195411 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-scrpage.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrletter.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlfile.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlttr2.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrpage2.pdfbin0 -> 714231 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/scrreprt.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrtime.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/scrwfile.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/tocbasic.html60
-rw-r--r--macros/latex/contrib/koma-script/doc/tocstyle.pdfbin0 -> 254904 bytes
-rw-r--r--macros/latex/contrib/koma-script/doc/typearea.html60
-rw-r--r--macros/latex/contrib/koma-script/source-doc/Makefile227
-rw-r--r--macros/latex/contrib/koma-script/source-doc/Makefile.guide334
-rw-r--r--macros/latex/contrib/koma-script/source-doc/Makefile.latexinit68
-rwxr-xr-xmacros/latex/contrib/koma-script/source-doc/bin/genhtmlidx.pl197
-rwxr-xr-xmacros/latex/contrib/koma-script/source-doc/bin/genindex.pl204
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/Makefile55
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/adrconvnote.tex99
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/authorpart.tex80
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-compatibility.tex197
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-dictum.tex260
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-draftmode.tex129
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-fontsize.tex188
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-footnotes.tex626
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-headfootheight.tex163
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-interleafpage.tex338
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-lists.tex837
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-marginpar.tex144
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-oddorevenpage.tex132
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-options.tex231
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-pagestylemanipulation.tex1038
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-parmarkup.tex270
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-textmarkup.tex805
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-titles.tex679
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/common-typearea.tex88
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/expertpart.tex78
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/guide-english.tex522
l---------macros/latex/contrib/koma-script/source-doc/english/guide.tex1
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/htmlsetup65
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/introduction.tex352
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/japanlco.tex601
l---------macros/latex/contrib/koma-script/source-doc/english/linkalias.tex1
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/preface.tex125
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scraddr.tex261
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrbase.tex1659
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrbookreportarticle-experts.tex1786
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrbookreportarticle.tex4662
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrdatetime.tex443
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrextend.tex222
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrhack.tex264
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrjura.tex1165
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrjuraexample.tex143
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrlayer-notecolumn-example.tex121
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrlayer-notecolumn.tex702
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrlayer-scrpage-experts.tex393
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrlayer-scrpage.tex1190
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrlayer.tex1596
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrlfile.tex722
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrlttr2-experts.tex1897
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrlttr2.tex3463
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrlttr2examples.dtx347
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/scrwfile.tex288
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/tocbasic.tex2439
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/typearea-experts.tex269
-rw-r--r--macros/latex/contrib/koma-script/source-doc/english/typearea.tex1807
-rw-r--r--macros/latex/contrib/koma-script/source-doc/guide.bib861
-rw-r--r--macros/latex/contrib/koma-script/source-doc/guide.tex137
-rw-r--r--macros/latex/contrib/koma-script/source-doc/linkalias.tex121
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/Makefile50
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/adrconvnote.tex100
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/authorpart.tex83
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-compatibility.tex201
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-dictum.tex284
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-draftmode.tex130
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-fontsize.tex202
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-footnotes.tex713
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-headfootheight.tex176
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-interleafpage.tex361
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-lists.tex856
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-marginpar.tex153
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-oddorevenpage.tex139
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-options.tex248
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-pagestylemanipulation.tex1151
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-parmarkup.tex281
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-textmarkup.tex868
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-titles.tex723
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/common-typearea.tex88
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/expertpart.tex77
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/guide-ngerman.tex549
l---------macros/latex/contrib/koma-script/source-doc/ngerman/guide.tex1
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/htmlsetup65
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/introduction.tex424
l---------macros/latex/contrib/koma-script/source-doc/ngerman/linkalias.tex1
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/preface.tex124
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scraddr.tex282
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrbase.tex1937
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrbookreportarticle-experts.tex1968
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrbookreportarticle.tex5015
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrdatetime.tex459
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrextend.tex230
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrhack.tex285
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrjura.tex1261
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrjuraexample.tex152
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-notecolumn-example.tex131
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-notecolumn.tex792
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-scrpage-experts.tex433
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-scrpage.tex1344
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer.tex1805
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrlfile.tex779
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrlttr2-experts.tex2048
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrlttr2.tex3768
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrlttr2examples.dtx347
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/scrwfile.tex307
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/tocbasic.tex2663
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/typearea-experts.tex292
-rw-r--r--macros/latex/contrib/koma-script/source-doc/ngerman/typearea.tex2035
-rw-r--r--macros/latex/contrib/koma-script/source-doc/plength.dtx1325
-rw-r--r--macros/latex/contrib/koma-script/source-doc/scrguide.cls2782
-rw-r--r--macros/latex/contrib/koma-script/source-doc/scrguide.gst63
-rw-r--r--macros/latex/contrib/koma-script/source-doc/scrguide.ist52
-rw-r--r--macros/latex/contrib/koma-script/source-doc/scrpage2.tex2963
-rw-r--r--macros/latex/contrib/koma-script/source/ChangeLog16102
-rw-r--r--macros/latex/contrib/koma-script/source/ChangeLog.22383
-rw-r--r--macros/latex/contrib/koma-script/source/Makefile464
-rw-r--r--macros/latex/contrib/koma-script/source/Makefile.baseinit225
-rw-r--r--macros/latex/contrib/koma-script/source/Makefile.baserules144
-rw-r--r--macros/latex/contrib/koma-script/source/japanlco.dtx371
-rw-r--r--macros/latex/contrib/koma-script/source/scraddr.dtx386
-rw-r--r--macros/latex/contrib/koma-script/source/scrdoc.dtx373
-rw-r--r--macros/latex/contrib/koma-script/source/scrdocstrip.tex324
-rw-r--r--macros/latex/contrib/koma-script/source/scrextend.dtx245
-rw-r--r--macros/latex/contrib/koma-script/source/scrhack.dtx1314
-rw-r--r--macros/latex/contrib/koma-script/source/scrjura.dtx2063
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-basics.dtx4677
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx741
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-circularletters.dtx174
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-compatibility.dtx697
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-floats.dtx2062
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-fonts.dtx2251
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-footnotes.dtx695
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-index.dtx449
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-language.dtx1709
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-letterclassoptions.dtx1725
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-listsandtabulars.dtx542
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx1101
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-miscellaneous.dtx1223
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-notepaper.dtx4091
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx903
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-paragraphs.dtx771
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-pseudolengths.dtx349
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-sections.dtx6304
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-title.dtx1071
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-tocstyle.dtx2090
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-typearea.dtx3338
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-variables.dtx399
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-version.dtx236
-rw-r--r--macros/latex/contrib/koma-script/source/scrlayer-fancyhdr.dtx549
-rw-r--r--macros/latex/contrib/koma-script/source/scrlayer-notecolumn.dtx1787
-rw-r--r--macros/latex/contrib/koma-script/source/scrlayer-scrpage.dtx2968
-rw-r--r--macros/latex/contrib/koma-script/source/scrlayer.dtx4319
-rw-r--r--macros/latex/contrib/koma-script/source/scrlfile.dtx965
-rw-r--r--macros/latex/contrib/koma-script/source/scrlogo.dtx125
-rw-r--r--macros/latex/contrib/koma-script/source/scrmain.ins496
-rw-r--r--macros/latex/contrib/koma-script/source/scrpage.dtx2260
-rw-r--r--macros/latex/contrib/koma-script/source/scrsource.tex137
-rw-r--r--macros/latex/contrib/koma-script/source/scrstrip.inc119
-rw-r--r--macros/latex/contrib/koma-script/source/scrstrop.inc67
-rw-r--r--macros/latex/contrib/koma-script/source/scrtime.dtx785
-rw-r--r--macros/latex/contrib/koma-script/source/scrwfile.dtx515
-rw-r--r--macros/latex/contrib/koma-script/source/tocbasic.dtx1961
-rw-r--r--macros/latex/contrib/koma-script/source/tocstyle.dtx2327
195 files changed, 167530 insertions, 0 deletions
diff --git a/macros/latex/contrib/koma-script/README b/macros/latex/contrib/koma-script/README
new file mode 100644
index 0000000000..1d6382d64e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/README
@@ -0,0 +1,514 @@
+
+KOMA-Script 2019/02/01 v3.26b
+Copyright (c) Markus Kohm <komascript(at)gmx.info>, 1994-2019
+
+This material is subject to the LaTeX Project Public License. See
+lppl.txt (english) or lppl-de.txt (german) for the details of that
+license.
+
+--------------------------------------------------------------------
+
+KOMA-Script is a versatile bundle of LaTeX2e document classes and
+packages. It aims to be a replacement to the standard LaTeX2e
+classes. KOMA-Script does not stop with the features known from the
+standard classes, but it extends the possibilities in order to
+provide the user an almost complete working environment.
+
+--------------------------------------------------------------------
+
+For installation see INSTALL.txt (english) or INSTALLD.txt
+(german, UTF-8).
+
+--------------------------------------------------------------------
+
+Classes and Packages:
+
+==============================================================================
+scraddr - Package to provide data from scrlttr2's adr-files
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scraddr is a LaTeX package of the KOMA-Script bundle.
+ scrlttr2 uses adr-files to create form letters. The scraddr
+ package provides commands to read such files and to use the
+ data of the address entries not only with the scrlttr2 class
+ and not only for form letters.
+Requires:
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2013/09/30 v1.1c
+==============================================================================
+scrartcl - versatile class may be used as a drop-in replacement of article
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrartcl is a LaTeX class of the KOMA-Script bundle. It is
+ the KOMA-Script drop-in replacement for the standard LaTeX
+ article class. It provides all options, environments,
+ counters, lengths and commands of the standard LaTeX article
+ class, as well as several additional options, environments,
+ commands, etc. to make it much more versatile. The default
+ layout of scrartcl differs from article, with an emphasis on
+ good typography. Nevertheless, by changing the defaults, you
+ can achieve a layout very similar to that of the standard
+ class.
+Requires: scrkbase - internal KOMA-Script package
+ tocbasic - KOMA-Script package
+ typearea - KOMA-Script package
+Recommended: scrlayer-scrpage - KOMA-Script package
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrbase - basic features for KOMA-Script, e.g. conditionals and key=value
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrbase is a LaTeX package of the KOMA-Script bundle. It
+ provides some basic functions used by KOMA-Script that can
+ also be used by authors and users of other classes and
+ packages.
+
+ First, it provides extended handling of key=value pairs
+ that can be used for run-time options of classes and
+ packages. Several packages in a family can share options,
+ and all the options in a family can be changed with a
+ single command.
+
+ Additional conditions like \ifundefinedorrelax, \ifpdftex,
+ \ifVTeX, \ifpdfoutput, \ifstr etc. are provided. Most of
+ them can be prevented from being defined and have
+ additional internal representations that can be used by
+ package or class authors.
+
+ It also provides commands to easily define or change
+ language-dependent terms that work not only with babel but
+ with other packages like ngerman too.
+
+ It provides some commands for package and class authors
+ missing in the LaTeX kernel like \ClassInfoNoLine,
+ \PackageInfoNoLine or \l@addto@macro.
+
+ Last but not least, it provides commands for integer
+ division and integer modulo operation that can be used,
+ for example, inside \numexpr ...\relax or with \ifnum.
+Requires: keyval - key=value package from the graphics bundle
+ scrlfile - KOMA-Script package for file loading
+ manipulation
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrbook - versatile class may be used as a drop-in replacement of book
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrbook is a LaTeX class of the KOMA-Script bundle and a
+ drop-in replacement for the standard LaTeX book class. It
+ provides all options, environments, commands, etc. of the
+ standard LaTeX book class, as well as several additional
+ options, environments, commands, etc. to make it much more
+ versatile. The default layout of scrbook differs from book,
+ with an emphasis on good typography. Nevertheless, by changing
+ the defaults, you can achieve a layout very similar to that
+ of the standard class.
+Requires: scrkbase - internal KOMA-Script package
+ tocbasic - KOMA-Script package
+ typearea - KOMA-Script package
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrdate - calender date operations, e.g. calculation of the day of the week
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrdate is a LaTeX package of the KOMA-Script bundle. It
+ provides several operations with calender dates, e.g., show
+ the century or the decade of a year, calculate the day of
+ the week of a given calender date, show the current
+ calender date in ISO form. It has support for several
+ languages, including English, German, French, Italian,
+ Spanish, Croatian, Finnish, Norsk, Swedish, Danish, Polish,
+ Czech, and Slovak.
+Requires: scrkbase - KOMA-Script package for some basic features.
+ scrlfile - KOMA-Script package for file loading
+ manipulation
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrdoc - internal source documentation class of KOMA-Script
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrdoc is an internal LaTeX class of the KOMA-Script bundle.
+ It is an extension of ltxdoc. KOMA-Script uses scrdoc for
+ the implementation documentation and the documentation of
+ packages that aren't KOMA-Script core packages. Currently
+ there is no user manual for this class because the
+ only user is the KOMA-Script maintainer.
+Requires: ltxdoc - the LaTeX2e source documentation class
+ scrartcl - the KOMA-Script article class
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2016/04/12 v0.1e
+==============================================================================
+scrextend - make some features of the KOMA-Script classes available for others
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrextend is a LaTeX package of the KOMA-Script bundle. It
+ makes some features of the KOMA-Script classes available to
+ other classes, i.e., for the standard classes.
+Requires: scrkbase - internal package with some basics of KOMA-Script
+ etoolbox - tool-box for LaTeX programming using e-TeX
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrfontsizes - package to generate a KOMA-Script font size file
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrfontsizes is a LaTeX package of the KOMA-Script bundle.
+ It provides a simple interface to generate KOMA-Script
+ font-size files.
+Requires: scrextend - some KOMA-Script features for other classes
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrhack - patch some isues with other packages
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrhack is a LaTeX package of the KOMA-Script bundle. It
+ patches other packages to make them work better and adds new
+ features to improve their interaction with KOMA-Script. One
+ main feature is to make them work with tocbasic instead of
+ KOMA-Script's deprecated float list interface. Currently,
+ patches for float.sty, floatrow.sty, (old versions of)
+ hyperref, listings, and setspace are available.
+Requires: scrkbase - internal KOMA-Script package with basics
+ tocbasic - features for helper files and float environments
+ xpatch - extending etoolbox patching commands
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrjura - contract environment for advocates and scholary persons in law
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrjura is a LaTeX package of the KOMA-Script bundle. It
+ has been made in cooperation with a German lawyer to
+ provide environments for contracts, laws, acts or other
+ legal purposes. It supports automatic numbering of
+ paragraphs and semi-automatic numbering of sentences.
+ Currently German and English are supported.
+Requires: scrkbase - internal KOMA-Script package with basics
+ tocbasic - features for helper files and float environments
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrkbase - internal basic features for KOMA-Script classes and packages
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrkbase is an internal KOMA-Script packages that provides
+ some features that are common to several KOMA-Script
+ classes and packages. Users and class or package authors
+ should not use this package directly.
+Requires: scrbase - KOMA-Script package for some basic features.
+ scrlfile - KOMA-Script package for file loading
+ manipulation
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrlayer-notecolumn - control note columns parallel to the main text
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrlayer-notecolumn is a LaTeX package of the KOMA-Script
+ bundle. It provides an end-user interface to scrlayer to
+ define and manage note columns. Those note columns are
+ somewhat similar to marginal notes (see the LaTeX
+ command \marginpar or packages like notecolumn), but you
+ can use several of them. The package provides page breaks
+ inside note columns and synchronization points between the
+ main text and note columns.
+
+ Like most of the KOMA-Script packages, you can use this
+ package not only with KOMA-Script classes but also with
+ several other classes, e.g., the standard LaTeX classes.
+Requires: scrlayer.sty
+License: LPPL 1.3c or later
+State: Author maintained, proof of concept
+Version: 2018/08/29 v0.1.3011
+==============================================================================
+scrlayer-scrpage - controlling page headers and footers
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrlayer-scrpage is a LaTeX package of the KOMA-Script
+ bundle. It provides an end-user interface to scrlayer to
+ define and manage page styles. This end user interface is
+ sufficiently compatible to scrpage2 that users should easily
+ be able to switch from the old scrpage2 package to the new
+ one. Nevertheless, it provides several new features to control
+ headers and footers.
+
+ Like most of the KOMA-Script packages, you can use this
+ package not only with KOMA-Script classes but also with
+ several other classes, e.g., the standard LaTeX classes.
+Requires: scrlayer.sty
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrlayer - defining layers and controlling page headers and footers
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrlayer is a LaTeX package of the KOMA-Script bundle.
+ Users may already be familiar with a type of layer from
+ packages like eso-pic or textpos. scrlayer is another package
+ that provides background and foreground layers, but unlike
+ those other packages, these layers are part of the page-style
+ definition. With this package, you can easily switch between
+ the layers used by switching the page style.
+
+ In short, the page-style interface of scrlayer provides
+ commands to define page styles based on a stack of layers 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 scrlayer on their own, e.g., scrlayer-scrpage.
+Requires: scrkbase.sty
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrletter - letter extention to KOMA-Script classes
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrletter provides the features of the letter class scrlttr2
+ when using the KOMA-Script classes scrartcl, scrreprt, and
+ scrbook, or the standard classes article, report, and book.
+Requires: scrkbase - internal KOMA-Script package
+ typearea - KOMA-Script package
+ scrlayer-scrpage - KOMA-Script package
+Recommended: marvosym - package by Martin Vogel providing symbols
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrlfile - control of package dependencies
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrlfile is a LaTeX package of the KOMA-Script bundle. It
+ provides the ability to execute commands before or after
+ loading files, classes, or packages. It can even
+ automatically load one file, class, or package in place of
+ another or prevent a package from being loaded. It also
+ provides the ability to execute commands before or after
+ closing the main aux file during \end{document}. It has
+ been used by the KOMA-Script classes for more than a
+ decade.
+Requires:
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrlttr2 - versatile letter class with separation of text area and note paper
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrlttr2 is a letter class for LaTeX2e that allows
+ definition of several letterheads and text area settings
+ that are independent from the letterhead. So you can use
+ not only the KOMA-Script package typearea but even packages
+ like geometry to define the text area and the margins.
+
+ The positions of the elements of the letterhead can be
+ changed by so called pseudo-lengths. This makes it possible
+ to adjust scrlttr2 not only to local conventions and paper
+ sizes but also to a corporate brand identity.
+
+ Several predefined sets of parameters, called
+ letter-class-option or lco files are part of the
+ KOMA-Script bundle: two German letters, Swiss letters, US
+ letters, Japanese letters, and French letters. More can be
+ found on CTAN or the KOMA-Script homepage as separate
+ packages.
+
+ Additional lco-files for different letterheads can be found
+ on the KOMA-Script homepage, e.g., one demonstration file
+ for a letterhead similar to that of Washington State
+ University.
+Requires: scrkbase - internal KOMA-Script package
+ typearea - KOMA-Script package
+Recommended: marvosym - package by Martin Vogel providing symbols
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrpage2 - control of page headers and footers
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrpage2 is a LaTeX package of the KOMA-Script bundle. It
+ provides facilities for changing the contents of headers and
+ footers. You can configure a predefined pair of page styles
+ similar to headings and plain or myheadings and plain, use a
+ simple user interface to define completely new page styles, or
+ take advantage of a more complex expert interface to have more
+ effective degrees of freedom in defining new page styles.
+
+ scrpage2 also provides simple options and commands to
+ decide, e.g., whether or not the running heads should be
+ done automatically, which headings levels should generate
+ automatic running heads, whether or not there should be
+ horizontal lines above or below the headers and footers, what
+ colours or fonts should be used for the headers, footers, and
+ separation lines, and more.
+Requires:
+Successor: scrlayer-scrpage
+License: LPPL 1.3c or later
+State: Author maintained, obsolete
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrreprt - versatile class may be used as a drop-in replacement of report
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrreprt is the KOMA-Script drop-in replacement for the
+ standard LaTeX report class. It provides all options,
+ environments, counters, lengths, and commands of the standard
+ LaTeX report class, as well as several additional options,
+ environments, commands, etc., to make it much more versatile.
+ The default layout of scrreprt differs from that of report,
+ with an emphasis on good typography. Nevertheless, by changing
+ the defaults, you can achieve a layout very similar to that of
+ the standard class.
+Requires: scrkbase - internal KOMA-Script package
+ tocbasic - KOMA-Script package
+ typearea - KOMA-Script package
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrtime - show the time of the LaTeX run
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrtime is a LaTeX package of the KOMA-Script bundle. It
+ provides only some small features to show the time of the
+ LaTeX run.
+Requires: scrkbase - internal package with some basics of KOMA-Script
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+scrwfile - Spare write handles for helper files to avoid `No room' messages
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: scrwfile is a LaTeX package of the KOMA-Script bundle. TeX
+ makes only about 16 write handles available for \newwrite.
+ With LaTeX, each auxiliary file, not only the main aux file
+ but files such as the toc file, the lof file, the lot file,
+ and the raw indexes and glossaries need one of these
+ handles. scrwfile provides facilities to avoid using
+ handles for auxiliary files that use the main aux file for
+ intermediate writing. This means that the toc file, the lof
+ file, the lot file, and files of packages like listings no
+ longer need a write handle, so the user will have more write
+ handles for files like indexes or glossaries and can avoid
+ `No room for new \write' error messages.
+
+ scrwfile also provides facilities to clone auxiliary files,
+ e.g., to have two tables of contents with different tocdepth
+ settings.
+Requires: scrbase - some basic features for class and package
+ authors
+ tocbasic - basic features for helper files and lists of
+ floats
+ scrlfile - control of package dependencies
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2013/08/05 v0.1f-alpha
+==============================================================================
+tocbasic - Management of tables and lists of contents using helper files
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: tocbasic is a LaTeX package of the KOMA-Script bundle. The
+ main purpose of package tocbasic is to provide features for
+ authors of classes and packages to create their own tables or
+ lists of contents like the list of figures and the list of
+ tables, and thereby allow other classes or packages some
+ measure of control over these. For example, the tocbasic
+ package delegates control of the language for all these tables
+ and lists of contents to the babel package. Thus changes of
+ language will be automatically reflected inside all these
+ tables and lists of contents. Using tocbasic will free
+ authors of classes and packages from the burden of
+ implementing of such features.
+
+ KOMA-Script itself uses tocbasic not only for the table of
+ contents but also for the lists of figures and tables
+ mentioned previously.
+Requires: scrbase - KOMA-Script package for some basic features.
+License: LPPL 1.3c or later
+State: Author maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
+tocstyle - Control layout of table of contents, list of figures etc.
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: tocstyle is a LaTeX package of the KOMA-Script bundle.
+ When the main classes of the KOMA-Script bundle were created,
+ their author had several ideas for formatting the table of
+ contents and lists of floats, but almost none of them were
+ implemented. One reason was that the KOMA-Script author
+ didn't like to change the LaTeX kernel in a class, because
+ this could result in several problems with other packages.
+ The package tocstyle will fill the gap. If it conflicts
+ with another package, you can simply decide not to use it.
+
+ The current release is only a proof of concept.
+Requires:
+License: LPPL 1.3c or later
+State: Unstable
+Version: 2017/02/23 v0.2i-alpha
+==============================================================================
+typearea - Calculating typeing area and margins depending on typographic rules
+------------------------------------------------------------------------------
+Maintainer: Markus Kohm
+E-Mail: komascript at gmx info
+Abstract: Many LaTeX classes, including the standard classes, present
+ the user with the largely fixed configuration of margins
+ and type area. With the standard classes, the choice is
+ limited to selecting a font size. There are separate packages,
+ such as geometry, which give the user complete control over,
+ but also full responsibility for, setting the type area and
+ margins.
+
+ KOMA-Script takes a somewhat different approach with its
+ typearea package. Users are offered ways to adjust the design
+ and algorithms based on established typographic standards,
+ making it easier for them to make good choices.
+Requires: scrkbase - internal basic features for KOMA-Script packages
+License: LPPL 1.3c or later
+State: Autor maintained
+Version: 2019/02/01 v3.26b
+==============================================================================
diff --git a/macros/latex/contrib/koma-script/doc/INSTALL.txt b/macros/latex/contrib/koma-script/doc/INSTALL.txt
new file mode 100644
index 0000000000..a7d0aea8b3
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/INSTALL.txt
@@ -0,0 +1,151 @@
+KOMA Script
+a versatile LaTeX2e bundle
+----------------------------------------------------------------------------
+
+INSTALLATION DIRECTIONS
+-----------------------
+
+There are various ways that KOMA Script can be distributed. The primary
+distribution from the KOMA Script maintainers consists of a complete TEXMF
+tree (also known as the/a TDS tree). This TEXMF tree in its original form is
+provided as a ZIP archive. It may also be distributed in other archival
+formats. When the following text refers to an archive, it therefore does not
+necessarily refer to a ZIP archive. When creating a new archive,
+distributors are strongly encouraged to preserve the structure and contents
+of the TEXMF tree so that these instructions remain valid. Distributors are
+otherwise urged to provide their own instructions for installation.
+
+Distribution of the expanded TEXMF tree is also permitted. Should, as a
+result, the structure or the contents of the TEXMF tree be modified (within
+the framework of that which is permitted by the license) such that these
+installation instructions partially or entirely no longer apply, the
+distributor should provide new directions.
+
+The user should therefore first check to see whether the distributor has
+included further installation directions. Logically the name of these
+directions would also begin with `INSTALLD.', immediately followed by the
+distributor's name or acronym. A `README' file should likewise created.
+
+
+Easy installation using TeX Live repository or MiKTeX installation file
+-----------------------------------------------------------------------
+
+TeX Live users can easily install the current release of KOMA-Script from
+the KOMA repository for TeX Live. See <http://www.komascript.de/current>
+for more information. But if you want to install another release, you have
+to read the installation instructions below.
+
+MiKTeX users can easily install the current release of KOMA-Script using
+the self extracting archive for windows also known as MiKTeX installation
+file. See <http://www.komascript.de/current> for more information. But
+if you want to install another release, you have to read the installation
+instructions below.
+
+
+Installation from an archive
+----------------------------
+
+If you received the KOMA Script archive with a complete TEXMF tree, the
+installation is quite easy. First check to see whether the archive does in
+fact contain a complete TEXMF tree. Take a look at the contents of the
+archive; there should be three directories: `doc/latex/koma-script',
+`tex/latex/koma-script' and `source/latex/koma-script', the last with
+additional subdirectories. In each of these directories there are several
+files. A file `README' should be found at least at
+`doc/latex/koma-script/README'. It may be found outside the archive as well.
+
+When you unpack such an archive be sure to preserve the directory structure,
+but without creating a new directory, either in the local TEXMF tree or in a
+private TEXMF tree. More information about the local TEXMF tree and the
+question of a private TEXMF tree, as well as how one makes this known to the
+system can be found in the directions for your TEX system.
+
+Finally, update or `refresh' the filename database. With teTeX and
+teTeX-based systems this is done with the program `texconfig' or directly with
+`texhash' or `mktexlsr'. With MiKTeX you will find the corresponding button
+in the application `MiKTeX Options'. Depending on the permissions set for
+your installation directory, you may have to do this as administrator or
+root. For more information about this see the manual of your TeX system!
+
+
+Installation of an expanded TEXMF tree
+--------------------------------------
+
+If KOMA Script is already present as an expanded TEXMF tree, you can either
+register it in the system as a further TEXMF tree or you can copy the contents
+of this TEXMF tree -- while preserving the directory structure -- into a
+private or local TEXMF tree.
+
+Here too a refresh of the filename database is necessary. See the last
+paragraph of the previous section for more information.
+
+
+Installation from a minimal distribution
+----------------------------------------
+
+Installation from a minimal distribution, which only includes those files
+listed as minimally necessary in the `manifest.txt', is not as simple. For
+this Gnu-make and other UNIX tools are essential!
+
+With this in mind, the process is as follows:
+
+- Create a Makefile.cfg file.
+
+- Copy one of the lines that begins with `#INSTALLTEXMF' from the file
+ `Makefile.baseinit' into this new file.
+
+- Remove the hash symbol (#) from the beginning.
+
+- Edit this line so that the name of the directory where the TEXMF tree is to
+ be installed appears following the equal sign.
+ CAUTION: No forward slash (/) or backslash (\) at the end of the directory
+ name!
+
+- Run your `make' program.
+
+- After `make' has successfully been run with no errors, run `make install'.
+
+Finally, update or `refresh' the filename database. With teTeX and
+teTeX-based systems this is done with the program `texconfig' or directly with
+`texhash' or `mktexlsr'. With MiKTeX you will find the corresponding button
+in the application `MiKTeX Options'. Depending on the permissions set for
+your installation directory, you may have to do this as administrator or
+root. For more information about this see the manual of your TeX system!
+
+
+`Last resort' installation from a minimal distribution
+------------------------------------------------------
+
+Even if you do not have the necessary Gnu-make or other UNIX tools needed to
+install using `make', it is still possible to properly install the KOMA Script
+package from the minimal distribution. It just means doing more of the work
+yourself.
+
+- First create the following new directories in the TEXMF tree in which you
+ wish to install KOMA Script: `source/latex/koma-script',
+ `doc/latex/koma-script' and `tex/latex/koma-script'.
+
+- Copy all of the files from the KOMA Script distribution into the new
+ directory `source/latex/koma-script'.
+
+- Copy all files with filenames ending in `.pdf', `.html', or `.txt' and the
+ `README' file into the directory `doc/latex/koma-script'.
+
+- Change directory to 'source/latex/koma-script'.
+
+- Run the command `tex scrmain.ins'. Answer any possible questions with `y'
+ for `yes'.
+
+- Copy all newly created files whose filenames end in `.cls', `.sty', `.hak',
+ or `.lco' into the directory `tex/latex/koma-script'.
+
+Finally, update or `refresh' the filename database. With teTeX and
+teTeX-based systems this is done with the program `texconfig' or directly with
+`texhash' or `mktexlsr'. With MiKTeX you will find the corresponding button
+in the application `MiKTeX Options'. Depending on the permissions set for
+your installation directory, you may have to do this as administrator or
+root. For more information about this see the manual of your TeX system!
+
+--------------------------------------------------------
+German text by Markus Kohm, 2014/2016
+Translation by Kevin Pfeiffer and Markus Kohm, 2014/2016
diff --git a/macros/latex/contrib/koma-script/doc/INSTALLD.txt b/macros/latex/contrib/koma-script/doc/INSTALLD.txt
new file mode 100644
index 0000000000..dcb22af1c5
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/INSTALLD.txt
@@ -0,0 +1,153 @@
+KOMA-Script
+Eine Sammlung von Klassen und Paketen für LaTeX2e
+----------------------------------------------------------------------------
+
+INSTALLATIONSANLEITUNG
+----------------------
+
+Für KOMA-Script sind verschiedene Arten der Verteilung zulässig. Die primäre
+Verteilung des KOMA-Script-Betreuers besteht aus einem kompletten TEXMF-Baum
+(auch bekannt als TDS-Baum). Dieser TEXMF-Baum liegt originär als ZIP-Archiv
+vor. Eine Verpackung in andere Archivformate ist zulässig. Wenn im folgenden
+von einem Archiv die Rede ist, ist daher nicht ausschließlich das ZIP-Archiv
+gemeint. Distributoren wird jedoch empfohlen, Struktur und Inhalt des TEXMF-
+Baums beim Anlegen neuer Archive zu übernehmen, damit diese Anleitung gültig
+bleibt. Anderenfalls sind die Distributoren angehalten eine eigene Anleitung
+für die Installation zuzufügen.
+
+Die Verteilung eines ausgepackten TEXMF-Baums ist ebenfalls zulässig. Sollte
+dabei die Struktur oder der Inhalt des TEXMF-Baums im Rahmen dessen, was die
+Lizenz zulässt, verändert werden und somit diese Installationsanleitung ganz
+oder in Teilen nicht mehr zutreffen, so sollte der Distributor wiederum eine
+eigene Installationsanleitung hinzufügen.
+
+Der Anwender sollte daher nun kontrollieren, ob der Distributor eine weitere
+Installationsanleitung hinzugefügt hat. Sinnvollerweise wäre der Name dieser
+Anleitung dann auch "INSTALLD." und dem Namen oder Kürzel eines Distributors
+zusammengesetzt. Eventuell gibt es auch eine entsprechend aufgebaute README-
+Datei.
+
+
+Installation mit einem TeX Live repository oder MiKTeX Installationspaket
+-------------------------------------------------------------------------
+
+Anwender von TeX Live können die jeweils aktuelle Version von KOMA-Script
+einfach aus dem KOMA repository für TeX Live installieren. Sie finden die
+Installationsanleitung dafür unter <http://www.komascript.de/current>. Um
+jedoch eine andere Version zu installieren, sei auf die Instruktionen der
+nachfolgenden Abschnitte verwiesen.
+
+Anwender von MiKTeX können die jeweils aktuelle Version von KOMA-Script am
+einfachsten mit Hilfe eines selbstextrahierenden Archivs für Windows, also
+mit einer MiKTeX-Installations-Datei installieren. Eine Erklärung dazu mit
+einer Installationsanleitung gibt <http://www.komascript.de/current>. Soll
+jedoch eine andere Version installiert werden, so sind die Erklärungen der
+nachfolgenden Abschnitte relevant.
+
+
+Installation aus einem Archiv
+-----------------------------
+
+Wenn Sie KOMA-Script als Archiv mit einem vollständigen TEXMF-Baum erhalten
+haben, so ist die Installation denkbar einfach. Kontrollieren Sie zunächst,
+ob das Archiv vermutlich einen vollständigen TEXMF-Baum enthält. Lassen Sie
+sich hierzu den Inhalt des Archives anzeigen. Im TEXMF-Archiv befinden sich
+die drei Verzeichnisse "doc/latex/koma-script", "tex/latex/koma-script" und
+"source/latex/koma-script", letzteres enthält weiteren Unterverzeichnissen.
+In jedem der Verzeichnisse befinden sich mehrere Dateien. Eine Datei Namens
+"README" ist mindestens als "doc/latex/koma-script/README" zu finden. Diese
+Datei kann zusätzlich außerhalb des Verzeichnisses abgelegt sein.
+
+Entpacken Sie das TEXMF-Archiv unter Beibehaltung aller Unterverzeichnisse,
+ohne jedoch ein neues Verzeichnis anzulegen, entweder im lokalen TEXMF-Baum
+oder in Ihrem persönlichen TEXMF-Baum. Näheres zu lokalen oder persönlichen
+TEXMF-Bäumen ist der Anleitung Ihres TeX-Systems zu entnehmen.
+
+Zum Schluss führen Sie einen Refresh der Filename Database durch. Bei teTeX
+oder teTeX-basierten TeX-Systemen geschieht dies mit dem Programm texconfig
+oder direkt mit texhash oder mktexlsr. Bei Verwendung von MiKTeX findet man
+einen entsprechenden Knopf in der Applikation "MiKTeX Options". Je nach dem
+Verzeichnis der Installation ist der Refresh nur als Administrator oder als
+root möglich. Näheres entnehmen Sie bitte der Anleitung des TeX-Systems!
+
+
+Installation eines entpackten TEXMF-Baums
+-----------------------------------------
+
+Liegt KOMA-Script bereits als entpackter TEXMF-Baum vor, so können Sie diesen
+entweder als weiteren TEXMF-Baum anmelden oder Sie kopieren den Inhalt dieses
+TEXMF-Baums unter Beibehaltung der Verzeichnisstruktur in einen privaten oder
+lokalen TEXMF-Baum.
+
+Auch dann ist ein Refresh der Filename Database notwendig. Näheres hierzu ist
+dem letzten Absatz des vorherigen Abschnitts zu entnehmen.
+
+
+Installation aus einer Minimaldistribution
+------------------------------------------
+
+Die Installation aus einer Minimaldistibution, die nur die Dateien enthält,
+die in manifest.txt als Minimum aufgeführt sind, ist weniger einfach. Dafür
+werden zwingend Gnu-Make und diverse Unix-Werkzeuge benötigt!
+
+Unter dieser Voraussetzung gehen Sie dan wie folgt vor:
+
+- Legen Sie eine Datei Makefile.cfg an.
+
+- Kopieren Sie eine der mit "#INSTALLTEXMF" beginnenden Zeilen aus der Datei
+ Makefile.baseinit in diese Datei.
+
+- Entfernen Sie das "#" am Anfang.
+
+- Ändern Sie die Zeile so, dass nach dem Gleichheitszeichen das Verzeichnis
+ des gewünschten TEXMF-Baums für die Installation steht.
+ ACHTUNG: Am Ende des Verzeichnisses darf KEIN "/" stehen!
+
+- Rufen Sie das Programm "make" auf.
+
+- Wenn "make" ohne Fehler beendet wurde, rufen Sie "make install" auf.
+
+Zum Schluss führen Sie einen Refresh der Filename Database durch. Bei teTeX
+oder teTeX-basierten TeX-Systemen geschieht dies mit dem Programm texconfig
+oder direkt mit texhash oder mktexlsr. Bei Verwendung von MiKTeX findet man
+einen entsprechenden Knopf in der Applikation "MiKTeX Options". Je nach dem
+Verzeichnis der Installation ist der Refresh nur als Administrator oder als
+root möglich. Näheres entnehmen Sie bitte der Anleitung des TeX-Systems!
+
+
+Notinstallation aus einer Minimaldistribution
+---------------------------------------------
+
+Falls Sie nicht über Gnu-Make oder die sonstigen notwendigen Werkzeuge für
+die Installation über "make" verfügen, so können Sie das KOMA-Script-Paket
+trotzdem aus einer Minimaldistribution korrekt installieren. Dies ist dann
+nur mit etwas mehr Handarbeit verbunden.
+
+- Legen Sie zunächst in dem TEXMF-Baum, in den Sie KOMA-Script installieren
+ wollen, die Verzeichnisse source/latex/koma-script, doc/latex/koma-script
+ und tex/latex/koma-script an.
+
+- Kopieren Sie alle Dateien aus der KOMA-Script-Verteilung in das angelegte
+ Verzeichnis source/latex/koma-script.
+
+- Kopieren Sie alle Dateien mit der Endung ".pdf", ".html" oder ".txt" und
+ die Datei README in das Verzeichnis doc/latex/koma-script.
+
+- Wechseln Sie in das Verzeichnis source/latex/koma-script.
+
+- Rufen Sie
+ tex scrmain.ins
+ auf. Beantworten Sie alle eventuell gestellte Fragen mit "y" für "yes".
+
+- Kopieren Sie alle neu entstandenen Dateien mit der Endung ".cls", ".sty",
+ ".hak" oder ".lco" in das Verzeichnis tex/latex/koma-script.
+
+Zum Schluss führen Sie einen Refresh der Filename Database durch. Bei teTeX
+oder teTeX-basierten TeX-Systemen geschieht dies mit dem Programm texconfig
+oder direkt mit texhash oder mktexlsr. Bei Verwendung von MiKTeX findet man
+einen entsprechenden Knopf in der Applikation "MiKTeX Options". Je nach dem
+Verzeichnis der Installation ist der Refresh nur als Administrator oder als
+root möglich. Näheres entnehmen Sie bitte der Anleitung des TeX-Systems!
+
+----------------------
+Markus Kohm, 2014/2016
diff --git a/macros/latex/contrib/koma-script/doc/koma-script.html b/macros/latex/contrib/koma-script/doc/koma-script.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/koma-script.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/komabug.tex b/macros/latex/contrib/koma-script/doc/komabug.tex
new file mode 100644
index 0000000000..35d0db25cf
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/komabug.tex
@@ -0,0 +1,1012 @@
+% ======================================================================
+% komabug.tex
+% Copyright (c) Markus Kohm, 1995-2009
+%
+% 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.
+% ----------------------------------------------------------------------
+% komabug.tex
+% Copyright (c) Markus Kohm, 1995-2009
+%
+% 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.
+% ======================================================================
+%%
+%% @ is a letter
+%%
+\catcode`\@=11
+
+%%
+%% Grab the initex file list
+%%
+%% If this file is called via
+%% latex "\input{latexbug}" or some
+%% similar command sequence rather than
+%% latex latexbug
+%% then the debugging info in \reserved@a will already have been lost.
+%% This might not matter, but if it does we may ask the user to resubmit
+%% the report.
+\ifx\reserved@b\@undefined
+ \ifx\reserved@a\@gobble
+ \def\@inputfiles{NONE}
+ \else
+ \let\@inputfiles\reserved@a
+ \fi
+\else
+ \def\@inputfiles{LOST}
+\fi
+
+%%
+%% Output stream to produce the bug report template.
+%%
+\newif\ifinteractive\interactivetrue
+\newwrite\@msg
+\immediate\openout\@msg=\jobname.msg
+\immediate\write\@msg{%
+An fatal error occured before writing anything to the message file.^^J%
+You should have a look at \jobname.log to see the reason of the error.^^J%
+^^J%
+Maybe you didn't use an interactive terminal to run ``latex komabug''.^^J%
+At this case you should try an interactive terminal or add^^J%
+\space\space\space\space\string\interactivefalse^^J%
+to your local ``komabug.cnf'' to create an empty message.^^J%
+You have to edit that message file after creating the empty message.^^J%
+}
+\immediate\closeout\@msg\let\msg\m@ne
+
+%%
+%% We have no end line char (so we have no paragraphs)
+%%
+\endlinechar=-1
+
+%%
+%% Check that LaTeX2e is being used.
+%%
+\ifx\undefined\newcommand
+ \newlinechar`\^^J%
+ \immediate\write17{^^J%
+ You must use LaTeX2e to generate the bug report!^^J^^J%
+ Sie muessen LaTeX2e verwenden, um die Fehlermeldung zu erzeugen!}%
+
+ \let\relax\end
+\else
+ \def\@tempa{LaTeX2e}\ifx\@tempa\fmtname\else
+ \immediate\write17{^^J%
+ You must use LaTeX2e to generate the bug report!^^J^^J%
+ Aeltere Versionen von LaTeX werden nicht unterstuetzt.^^J%
+ Sie muessen LaTeX2e verwenden, um die Fehlermeldung zu erzeugen!}%
+ \let\relax\@@end
+\fi\fi
+
+%%
+%% \wmsg writes to the terminal, and the .msg file
+%% \wmsg* just writes to the .msg file
+%% \typeout just writes to the terminal
+%%
+
+\def\wmsg{%
+ \ifnum\msg<0\relax\let\msg\@msg\immediate\openout\msg=\jobname.msg\fi
+ \begingroup
+ \@ifstar {\interactivefalse\@wmsg}{\@wmsg}
+}
+
+\def\@wmsg#1{%
+ \ifinteractive\immediate\write17{#1}\fi%
+ \immediate\write\msg{#1}%
+ \endgroup
+}
+
+%%
+%% Prompt for an answer from the user, if the answer is not
+%% provided by the cfg file.
+%%
+
+\def\readifnotknown#1{%
+ \@ifundefined{#1}%
+ {{\message{#1> }%
+ \catcode`\^^I=12 \let\do\@makeother\dospecials
+ \global\read\m@ne t\expandafter o\csname#1\endcsname}}%
+ {\message{\csname#1\endcsname}}}
+
+%%
+%% Get number
+%% #1 = message
+%% #2 = max value
+%% --> \answer
+%%
+\def\scannumber#1{\@tempswatrue
+ \typeout{`#1'}%
+ \def\@tempa{\expandafter\@scannumber\expandafter0#1\@nil}%
+ \edef\@tempa{\@tempa}%
+ \count@\@tempa\relax
+ \if@tempswa\else\count@\z@\relax\fi
+}%
+\def\@scannumber#1{%
+ \ifx\@nil#1\else
+ \if 0#1#1\else
+ \ifnum 0<0#1 #1\else
+ \noexpand\@tempswafalse%
+ \fi
+ \fi
+ \expandafter\@scannumber
+ \fi
+}%
+\def\ReadNumber#1#2{%
+ \typeout{#1}%
+ \ifenglish
+ \message{Input the corresponding number between 1 and #2: }%
+ \else
+ \message{Geben Sie die betreffende Zahl zwischen 1 und #2 ein: }%
+ \fi
+ \count@=\z@\relax
+ \read\m@ne to \answer
+ \scannumber{\answer}%
+ \ifnum\count@>\number#2\relax
+ \count@=\z@\relax
+ \fi
+% \typeout{\the\count@ > 0?}%
+ \ifnum\count@>\z@\relax
+% \typeout{YES}%
+ \advance\count@ by \m@ne
+ \edef\answer{\the\count@}%
+ \message{^^J}%
+ \else
+% \typeout{NO}%
+ \ifenglish
+ \typeout{Value not valid!}%
+ \else
+ \typeout{Wert nicht im erlaubten Bereich!}%
+ \fi
+ \pause
+ \def\@tempa{\ReadNumber{#1}{#2}}%
+ \expandafter\@tempa
+ \fi
+}
+
+%%
+%% Get Yes or No
+%% #1 Question
+%% --> \if@tempswa (yes is true, no is false)
+%%
+\def\ReadYesNo#1{%
+ \typeout{#1}%
+ \ifenglish
+ \message{Answer `yes' or `no': }%
+ \read\m@ne to \answer
+ \else
+ \message{Antworten Sie bitte mit `ja' oder `nein': }%
+ \read\m@ne to \answer
+ \edef\answer{\uccode`\expandafter\@car\answer\@nil}
+ \ifnum \answer=`J \def\answer{\uccode`Y}\fi
+ \fi
+ \def\@tempa{\message{^^J}}%
+ \ifnum \answer=`Y \@tempswatrue
+ \else
+ \ifnum \answer=`N \@tempswafalse
+ \else
+ \ifenglish
+ \typeout{Answer not valid!}%
+ \else
+ \typeout{Antwort unverstaendlich!}%
+ \fi
+ \def\@tempa{\ReadYesNo{#1}}%
+ \fi
+ \fi
+ \@tempa
+}
+
+%%
+%% Pause so messages do not scroll off screen.
+%%
+\def\pause{%
+ \ifinteractive
+ \ifenglish
+ \message{Press <return> to continue. }%
+ \else
+ \message{Mit der <Return>-Taste geht es weiter. }%
+ \fi
+ \read\m@ne to \@tempa
+ \message{^^J}%
+ \fi
+}
+
+%%
+%% german or english report generator
+%%
+\newif\ifenglish\englishfalse
+
+%%
+%% Opening Banner.
+%%
+
+\InputIfFileExists{komabug.cfg}{%
+ \ifenglish
+ \typeout{** using komabug.cfg **}%
+ \else
+ \typeout{** komabug.cfg wird verwendet **}%
+ \fi
+}{}
+
+\ifenglish
+ \typeout{^^J%
+ ============================================================^^J%
+ ^^J%
+ KOMA bug report generator^^J%
+ =========================^^J%
+ Running this file through LaTeX generates a formular ``\jobname.msg''^^J%
+ containing a bug report to KOMA-Script bundle.^^J^^J%
+ * Please use german, if possible.^^J \space
+ If you're not able to use german, write the report in english.^^J%
+ * Please write a short report not a large one.^^J%
+ * Please tell me everything, which may be important.^^J}
+ \pause
+\else
+ \typeout{^^J%
+ ============================================================^^J%
+ ^^J%
+ KOMA-Script Fehlermeldungsgenerator^^J%
+ ===================================^^J%
+ Die Bearbeitung dieser Datei mit LaTeX erzeugt das Formular \jobname.msg,^^J%
+ um Fehlermeldungen zum KOMA-Script-Paket zu melden.^^J^^J%
+ * Schreiben Sie Ihre Meldung nach Moeglichkeit in Deutsch.^^J \space
+ Notfalls ist auch Englisch moeglich.^^J%
+ * Bitte fassen Sie sich kurz.^^J%
+ * Bitte halten Sie keine Information zurueck, die moeglicherweise^^J \space
+ wichtig sein koennte.^^J}%
+ \typeout{%
+ If you prefere english, you may write a file ``komabug.cfg'' with\space
+ contents:^^J\space
+ \string\englishtrue^^J%
+ at same folder as ``komabug.tex'' and restart ``latex komabug.tex''.^^J}%
+ \englishtrue\pause\englishfalse
+\fi
+
+%%
+%% if \interactivefalse just make a blank template.
+%%
+
+\ifinteractive
+ \ifenglish
+ \ReadYesNo{%
+ There are two kinds of using this generator.^^J%
+ At the interactive mode, you have to answer questions. At the other^^J%
+ mode an empty formular will be generated, you have to fill using^^J%
+ an editor.^^J^^J%
+ Do you want an interactive session?
+ }%
+ \else
+ \ReadYesNo{%
+ Dieser Generator kann auf zwei Arten verwendet werden.^^J%
+ Im interaktiven Betrieb, werden Ihnen Fragen zur direkten
+ Beantwortung^^J%
+ gestellt. Ansonsten wird ein leeres Formular erzeugt, das Sie dann
+ mit^^J%
+ einem Editor ausfuellen muessen.^^J^^J%
+ Wollen Sie eine interaktive Sitzung?
+ }%
+ \fi
+ \if@tempswa\interactivetrue\else\interactivefalse\fi
+\fi
+
+%%
+%% Fatal error
+%%
+\def\fatalerror#1{%
+ \ifenglish
+ \errhelp{This error is fatal! You cannot continue.^^J%
+ You should terminate using `x' and restart ``latex komabug''.}%
+ \errmessage{#1}%
+ \else
+ \errhelp{Dieser Fehler erlaubt keine Fortsetzung der Bearbeitung.^^J%
+ Sie sollten mit `x' abbrechen und ``latex komabug'' neu starten.}%
+ \errmessage{#1}%
+ \fi
+ \batchmode\csname @@end\endcsname
+ \fatalerror{#1}%
+}
+
+%%
+%% Try to get Version
+%%
+\def\GetFileVersionWithExtend#1#2{%
+ \def\ProvidesFile##1{\@ifnextchar [{\@P@F}{\@P@F[1996/10/31 ]}}%
+ \def\@P@F[##1 ##2]{\xdef\komaversion{##1}\csname endinput\endcsname}%
+ \let\ProvidesClass\ProvidesFile
+ \let\ProvidesPackage\ProvidesFile
+ \InputIfFileExists{#1#2}{}{%
+ \ifenglish
+ \def\noscrclass{%
+ ! File ``#1#2'' not found!^^J%
+ ! The file must be at the same folder like ``komabug.tex''^^J%
+ ! or must be readable by LaTeX to get the version information!}%
+ \else
+ \def\noscrclass{%
+ ! Die Datei ``#1#2'' konnte nicht gefunden werden!^^J%
+ ! Zur Bestimmung der aktuellen Version ist es unbedingt^^J%
+ ! erforderlich, dass diese Datei sich im selben Verzeichnis^^J%
+ ! wie ``komabug.tex'' befindet oder zumindest von LaTeX^^J%
+ ! gefunden werden kann!}%
+ \fi
+ \errmessage{\noscrclass}
+ \ifenglish
+ \errhelp{Terminate TeX using `x' and restart komabug}
+ \else
+ \errhelp{Beenden Sie TeX mit `x' und starten Sie komabug neu}
+ \fi
+ }%
+}
+\def\GetVersion#1{%
+ \GetFileVersionWithExtend{#1}\@empty
+}
+
+\ifinteractive
+ \ifenglish
+ \ReadNumber{%
+ There are several categories, related to several parts and files^^J%
+ of the KOMA-Script bundle:^^J^^J
+ 1) Installation of KOMA-Script^^J
+ 2) KOMA-Script manual^^J
+ 3) Basics (scrbook, scrreprt, scrartcl, scrlttr2, typearea, scrlfile)^^J
+ 4) Pagestyle definition (scrpage2)^^J
+ 5) Time or date (scrtime, scrdate)^^J
+ 6) Address file handling (scraddr)^^J
+ 7) Obsolete (scrlettr, scrpage)^^J%
+ }{7}%
+ \else
+ \ReadNumber{%
+ Verschiedene Bereiche werden von diesem Generator unterstuetzt, die^^J%
+ sich auf verschiedene Dateien im KOMA-Script-Paket beziehen:^^J^^J
+ 1) Auspacken und Installieren von KOMA-Script^^J
+ 2) KOMA-Script-Anleitung^^J
+ 3) Grundfunktion (scrbook, scrreprt, scrartcl, scrlttr2, typearea,
+ scrlfile)^^J
+ 4) Definition von Seitenstilen (scrpage2)^^J
+ 5) Zeit oder Datum (scrtime, scrdate)^^J
+ 6) Umgang mit Adressdateien (scraddr)^^J
+ 7) Obsoletes (scrlettr, scrpage)^^J%
+ }{7}%
+ \fi
+
+ \ifcase\expandafter\number\answer
+ % 1
+ \def\category{Installation}\GetVersion{scrkernel-version.dtx}
+ \let\categoryversion\komaversion
+ \or
+ % 2
+ \def\category{Manual}\GetVersion{scrartcl.cls}
+ \let\categoryversion\komaversion
+ \or
+ % 3
+ \def\category{Basics}\GetVersion{scrartcl.cls}
+ \let\categoryversion\komaversion
+ \or
+ % 4
+ \def\category{Addons, scrpage2}\GetVersion{scrpage2.sty}%
+ \let\categoryversion\komaversion\GetVersion{scrartcl.cls}
+ \or
+ % 5
+ \def\category{Addons, scrtime/date}\GetVersion{scrtime.sty}%
+ \let\categoryversion\komaversion\GetVersion{scrartcl.cls}
+ \or
+ % 6
+ \def\category{Addons, scraddr}\GetVersion{scraddr.sty}%
+ \let\categoryversion\komaversion\GetVersion{scrartcl.cls}
+ \or
+ % 7
+ \ifenglish
+ \typeout{These obsolete parts of KOMA-Script are unsupported!^^J%
+ You should use scrlttr2 instead of scrlettr and scrpage2 instead of
+ scrpage.}
+ \else
+ \typeout{Fuer diese obsoleten Teile von KOMA-Script gibt es keinen
+ Support mehr!^^J%
+ Sie sollten scrlttr2 an Stelle von scrlettr bzw. scrpage2 an Stelle
+ von^^J%
+ scrpage verwenden.}
+ \fi
+ \batchmode\csname @@end\endcsname
+ \fi
+\else% \ifinteractive
+ \ifenglish
+ \def\category{<PLEASE REPLACE BY ONE OF `Installation', `Manual',
+ `Basics', `Addons, scrpage2', `Addons, scrtime/date', `Addons,
+ scraddr'.>}
+ \def\categoryversion{<PLEASE REPLACE BY VERSION DATE FROM USED CLASS OR
+ PACKAGE.>}
+ \else
+ \def\category{<BITTE DURCH EINE DER ANGABEN `Installation', `Manual',
+ `Basics', `Addons, scrpage2', `Addons, scrtime/date', `Addons,
+ scraddr' ERSETZEN.>}
+ \def\categoryversion{<BITTE DURCH DAS VERSIONSDATUM AUS DER ENTSPRECHENDEN
+ KLASSE BZW. DEM ENTSPRECHENDEN PAKET ERSETZEN.>}
+ \fi
+ \GetVersion{scrartcl.cls}
+\fi
+
+\ifinteractive
+ \ifenglish
+ \typeout{^^J%
+ ===========================================================^^J%
+ ^^J%
+ Please give a one line description (< 50 chars) of your problem.%
+ ^^J^^J%
+ If your using email for sending the report, please use this^^J%
+ description as subject, too:%
+ ^^J \@spaces\@spaces\space
+ |<------------------------------------------------>|}
+ \else
+ \typeout{^^J%
+ ============================================================^^J%
+ ^^J%
+ Bitte eine einzeilige (< 50 Zeichen) Beschreibung des Problems.%
+ ^^J^^J%
+ Wenn Sie fuer die Meldung eMail verwenden, setzen Sie diese
+ Beschreibung^^J%
+ bitte auch als Betreff (`Subject') der eMail ein:%
+ ^^J \@spaces\@spaces\space
+ |<------------------------------------------------>|}
+ \fi
+ \loop
+ \let\synopsis\relax
+ \readifnotknown{synopsis}
+ \ifx\synopsis\@empty
+ \repeat
+\else%\ifinteractive
+ \ifenglish
+ \def\synopsis{<PLEASE REPLACE BY SHORT ONE-LINE DESCRIPTION.>}
+ \else
+ \def\synopsis{<BITTE DURCH EINE KURZE, EINZEILIGE BESCHREIBUNG ERSETZEN.>}
+ \fi
+\fi
+
+%%
+%% Header in the msg file.
+%%
+\ifenglish
+ \wmsg*{^^J%
+ KOMA bug report.^^J%
+ \ifinteractive Interactive \else Formular \fi
+ generated using komabug.tex at
+ \space\number\year-\two@digits\month-\two@digits\day.^^J%
+ ^^J
+ You may send this message to komascript@gmx.info.^^J%
+ If you do so, please use subject:^^J%
+ \space KOMA-BUG:\space\synopsis^^J%
+ ============================================================^^J
+ }
+\else
+ \wmsg*{^^J%
+ KOMA-Fehlermeldung.^^J%
+ \ifinteractive Interaktiv \else Formular \fi
+ erzeugt mit komabug.tex am
+ \space\number\year-\two@digits\month-\two@digits\day.^^J%
+ ^^J%
+ Die Meldung kann per E-Mail an komascript@gmx.info^^J%
+ verschickt werden.^^J%
+ Bitte verwenden Sie dabei als Betreff:^^J%
+ \space KOMA-BUG:\space\synopsis^^J%
+ ============================================================^^J
+ }
+\fi
+
+%%
+%% Category of bug, obtained earlier but put out now, after the header.
+%%
+\wmsg{>Bereich: \category}
+\wmsg{>Version: \categoryversion}
+
+%%
+%% synopsis of bug, obtained earlier but put out now, after the header.
+%%
+\wmsg{>Betreff: \synopsis}
+
+\begingroup
+ \global\let\format\@empty
+ \gdef\hyphenation{standard}
+ \def\immediate#1#{\xdef\hyphenation}
+ \def\typeout#1{\xdef\format{\format#1}}
+ \the\everyjob
+\endgroup
+
+\wmsg{>Format: \format}
+
+\wmsg{>KOMA-Script: \komaversion}
+
+\ifinteractive
+%%
+%% if interactive, \wread reads a line (verbatim) and write it to the
+%% .msg file, until a blank line is entered.
+%%
+ \def\wread{{%
+ \catcode`\^^I=12
+ \let\do\@makeother\dospecials
+ \let\lastanswer\answer
+ \message{=> }\read\m@ne to \answer
+ \ifx\lastanswer\@empty
+ \let\lastanswer\answer
+ \fi
+ \ifx\lastanswer\@empty
+ \else
+ \immediate\write\msg{\answer}
+ \expandafter\wread
+ \fi
+ }%
+ }
+\else
+%%
+%% If non-interactive, \wread just writes a blank line to the .msg file,
+%% and \wmsg does not write to the terminal.
+%%
+ \def\wread{\wmsg{}}
+\fi
+
+%%
+%% \copytomsg copies the contents of a file into the .msg file.
+%% (at least it does it as well as TeX can, so there may be
+%% transcription problems with 8-bit characters).
+%%
+%% It does a line count, and complains if the test file is
+%% too large.
+
+\chardef\inputfile=15
+
+\newcount\linecount
+
+\def\copytomsg#1{{%
+ \endlinechar=-1
+ \def\do##1{\catcode`##1=11}%
+ \dospecials
+ \global\linecount\z@
+ \openin\inputfile#1\relax
+ \def\thefile{#1}%
+ \@copytomsg
+ \closein\inputfile}}
+
+\def\@copytomsg{%
+ \ifeof\inputfile
+ \typeout{*** \thefile\space Zeilen = \the\linecount}
+ \else
+ \global\advance\linecount\@ne
+ \read\inputfile to \inputline
+ \ifx\inputline\@empty
+ \wmsg*{}
+ \else
+ \wmsg*{\inputline}
+ \fi
+ \expandafter\@copytomsg
+ \fi}
+
+
+%%
+%% Test the age of the current format.
+%%
+\def\getage#1/#2/#3\@nil{%
+ \count@\year
+ \advance\count@-#1\relax
+ \multiply\count@ by 12\relax
+ \advance\count@\month
+ \advance\count@-#2\relax}
+%
+\expandafter\getage\fmtversion\@nil
+%%
+%% \count@ should now be the age of the format in months.
+%%
+\ifnum\count@>24
+ \ifenglish
+ \def\oldformat{^^J%
+ ! Your LaTeX installation is older than two years.^^J%
+ ! Updating woul dbe a good idea before sending this report.^^J%
+ ! You should compare the date of the package with the date of^^J
+ ! the used LaTeX version. If LaTeX is more than two years older^^J
+ ! than KOMA-Script, this could be the reason of the problem.}
+ \errhelp{If you want to continue, press <return>.}
+ \else
+ \def\oldformat{^^J%
+ ! Ihre LaTeX-Installation ist ueber zwei Jahre alt.^^J%
+ ! Bitte denken Sie ueber ein Update nach, ehe Sie diese Meldung^^J%
+ ! abschicken.^^J%
+ ! Vergleichen Sie wenigstens das Datum des Paketes mit dem Datum^^J%
+ ! der LaTeX-Version. LaTeX sollte nicht mehr als zwei Jahre aelter^^J%
+ ! als KOMA-Script sein. Ansonsten koennte der Fehler in einer^^J%
+ ! Unvertraeglichkeit zwischen Format- und Paketversion liegen.}
+%%
+%% Put the message in a macro to improve the look of the error mesage.
+%%
+%
+ \errhelp{Wenn Sie dennoch fortfahren wollen, druecken Sie einfach <Return>.}
+ \fi
+ \errmessage{\oldformat}
+\fi
+%
+\expandafter\getage\komaversion\@nil
+\ifnum\count@>18
+ \ifenglish
+ \def\oldversion{^^J%
+ ! Your KOMA-Script installation is older than one year.^^J%
+ ! You should check for an update, bevor you're sending this message.^^J
+ ! You should compare the date of the package with the date of^^J
+ ! the used LaTeX version. If LaTeX is years younger than KOMA-Script,^^J
+ ! this could be the reason of the problem.}
+ \errhelp{If you want to continue, press <return>.}
+ \else
+ \def\oldversion{^^J%
+ ! Ihre KOMA-Script-Version ist ueber ein Jahr alt.^^J%
+ ! Bitte denken Sie ueber ein Update nach, ehe Sie diese Meldung^^J%
+ ! abschicken.^^J%
+ ! Vergleichen Sie wenigstens das Datum des Paketes mit dem Datum^^J%
+ ! der LaTeX-Version. LaTeX sollte nicht Jahre juenger als KOMA-Script sein.^^J%
+ ! Ansonsten koennte der Fehler in einer Unvertraeglichkeit zwischen^^J%
+ ! Format- und Paketversion liegen.}
+ \errhelp{Wenn Sie dennoch fortfahren wollen, druecken Sie einfach <Return>.}
+ \fi
+ \errmessage{\oldversion}
+\fi
+
+
+%%
+%% Now use \wmsg and \wread for each of the multi-line fields
+%% in the form. Currently one-line fields use \read directly.
+%%
+\ifinteractive
+ \ifenglish
+ \typeout{^^JYour name:}
+ \else
+ \typeout{^^JIhr Name:}
+ \fi
+ \readifnotknown{name}
+\else
+ \ifx\name\undefined
+ \ifenglish
+ \def\name{<REPLACE THIS BY YOUR NAME>}
+ \else
+ \def\name{<GEBEN SIE IHREN NAMEN EIN>}
+ \fi
+ \fi
+\fi
+
+
+\ifinteractive
+ \ifenglish
+ \typeout{^^JYour address (email if possible):}
+ \else
+ \typeout{^^JIhre Adresse (eMail bevorzugt):}
+ \fi
+ \readifnotknown{address}
+\else
+ \ifx\address\undefined
+ \ifenglish
+ \def\address{<PEPLACE THIS BE YOUR (EMAIL-)ADDRESS>}
+ \else
+ \def\address{<GEBEN SIE IHRE (EMAIL-)ADRESSE EIN>}
+ \fi
+ \fi
+\fi
+
+
+\ifinteractive
+ \ifenglish
+ \typeout{^^JYour computer system (z. B. Atari, Linux, Mac, Win98SE):}
+ \else
+ \typeout{^^JDas verwendete Computersystem (z. B. Atari, Linux, Mac, Win98SE):}
+ \fi
+ \readifnotknown{computersystem}
+\else
+ \ifx\computersystem\undefined
+ \ifenglish
+ \def\computersystem{<REPLACE THIS BY YOUR COMPUTERSYSTEM>}
+ \else
+ \def\computersystem{<GEBEN SIE IHR VERWENDETES COMPUTERSYSTEM EIN>}
+ \fi
+ \fi
+\fi
+
+
+\wmsg*{>Adresse: \name\space<\address>}
+
+%%
+%% >Organisation: is really a GNATS multiline field
+%% but we treat it as a one-line field.
+%%
+\wmsg*{>Organisation: \ifx\organisation\undefined
+ \ifx\organization\undefined\else
+ \organization
+ \fi
+ \else
+ \organisation
+ \fi}
+
+
+%%
+%% Test which format is being used. These fields are completed
+%% automatically even if the blank template is being produced.
+%%
+
+\wmsg*{>Voraussetzungen:}
+\wmsg*{ \string\@TeXversion: \meaning\@TeXversion
+ \ifx\@TeXversion\@@undefined
+ \space (Standardeinstellung fuer TeX3.141 und spaeter)\fi}
+\wmsg*{ \string\@currdir: \meaning\@currdir}
+\wmsg*{ \string\input@path: \meaning\input@path
+ \ifx\input@path\@@undefined
+ \space (Standardeinstellung)\fi}
+\wmsg*{ System: \computersystem}
+
+\wmsg*{>Beschreibung:}
+\ifinteractive
+ \ifenglish
+ \typeout{%
+ Description of your problem:^^J^^J%
+ \@spaces You can use multiple lines (each is askes by the prompt^^J%
+ \@spaces ``=>'').^^J%
+ \@spaces Use two blank lines to finish your answer.}
+ \else
+ \typeout{%
+ Beschreibung des Problems:^^J^^J%
+ \@spaces Die Beantwortung dieser Frage kann mehrere Zeilen^^J%
+ \@spaces einnehmen (jede wird durch die Eingabeaufforderung^^J%
+ \@spaces ``=>'' eingeleitet).^^J%
+ \@spaces Durch zwei aufeinanderfolgende Leerzeilen wird die^^J%
+ \@spaces Antwort beenden.}
+ \fi
+\else
+ \ifenglish
+ \wmsg{<REPLACE THIS BY YOUR DESCRIPTION OF THE PROBLEM>}
+ \else
+ \wmsg{<GEBEN SIE HIER IHRE PROBLEMBESCHREIBUNG EIN>}
+ \fi
+\fi
+\wread
+
+
+%%
+%% insertion of the test file
+%%
+\ifinteractive
+ \ifenglish
+ \typeout{^^J%
+ Name of a short self describing file, which shows the problem^^J%
+ (file should be as short as possible, not more than 60 lines):^^J^^J%
+ If the file is not at current directory please enter the hole^^J%
+ name (directory inclusive), so LaTeX may load it.^^J^^J%
+ If no testfile exists, because your not reporting a bug at a class^^J%
+ or package, simply press <return>.}
+ \else
+ \typeout{^^J%
+ Name einer KURZEN, SELBSTERKLAERENDEN Datei, bei der das Problem^^J%
+ auftritt (die Datei sollte wirklich so kurz wie moeglich sein,^^J%
+ nicht mehr als 60 Zeilen):^^J^^J%
+ Damit LaTeX diese Datei einlesen kann, geben Sie bitte den kompletten^^J%
+ Namen einschliesslich des Verzeichnisses an, falls die Datei nicht im^^J%
+ aktuellen Verzeichnis zu finden ist.^^J^^J%
+ Falls Sie keinen Fehler in einer der Klassen oder Pakete melden und^^J%
+ daher keine Testdatei existiert, druecken Sie einfach <Return>.}
+ \fi
+ \message{filename> }\read\m@ne to \filename
+\else
+ \let\filename\@empty
+\fi
+
+%%
+%% Try to find the .tex file and .log file
+%%
+
+
+\ifx\filename\@empty
+ \ifinteractive
+ \ifenglish
+ \ReadNumber{^^J^^JNo Testfile.^^J^^J%
+ Three kinds of reports are possible:^^J^^J%
+ 1) SW bug:^^J\@spaces
+ Software bug, you have to add a test file!^^J
+ 2) DOC bug:^^J\@spaces
+ Bug at manual or you do not understand the manual.^^J
+ 3) Ask for change:^^J\@spaces
+ Not a bug, but you'd like a change or simply help.^^J}{3}
+ \else
+ \ReadNumber{^^J^^JKeine Testdatei.^^J^^J%
+ Drei Arten von Meldungen werden unterstuetzt:^^J^^J%
+ 1) SW-Fehler:^^J\@spaces
+ Software-Fehler, unbedingt eine Testdatei beilegen!^^J
+ 2) DOC-Fehler:^^J\@spaces
+ Fehler in oder unverstaendliche Anleitung.^^J
+ 3) Aenderungswunsch:^^J\@spaces
+ Kein Fehler sondern eine Frage nach Aenderung oder Hilfe.^^J}{3}
+ \fi
+ \else
+ \def\answer{0}%
+ \fi
+\else
+ \def\answer{0}%
+ \filename@parse\filename
+
+ \IfFileExists{\filename}{\edef\samplefile{\filename}%
+ \IfFileExists{\filename@area\filename@base.log}{%
+ \edef\logfile{\filename@area\filename@base.log}%
+ }{%
+ \IfFileExists{\filename@area\filename@base.lis}{%
+ \edef\logfile{\filename@area\filename@base.lis}%
+ }{%
+ \ifenglish
+ \typeout{^^J%
+ Log file ``\filename@area\filename@base.log'' not found.^^J%
+ Please add the log file at ``\jobname.msg''.}%
+ \else
+ \typeout{^^J%
+ Logdatei ``\filename@area\filename@base.log'' nicht gefunden.^^J%
+ Bitte ergaenzen Sie das Beispiel in ``\jobname.msg''.}%
+ \fi
+ \pause
+ }%
+ }%
+ }{%
+ \ifenglish
+ \typeout{^^J%
+ Test file ``\filename'' not found.^^J%
+ Please add the test file at ``\jobname.msg''.}
+ \else
+ \typeout{^^J%
+ Beispieldatei ``\filename'' nicht gefunden.^^J%
+ Bitte ergaenzen Sie das Beispiel in ``\jobname.msg''.}
+ \fi
+ \pause
+ }%
+\fi
+
+\ifcase\expandafter\number\answer
+ \ifinteractive\wmsg{>Unterbereich: SW-Fehler}\fi
+ \wmsg*{%
+ Beispieldatei, die das Problem verdeutlicht:^^J%
+ ============================================}
+ \ifx\samplefile\undefinedcommand
+ \ifenglish
+ \typeout{^^J!
+ Please add test file and log file at your report message!}%
+ \else
+ \typeout{^^J!
+ Bitte ergaenzen Sie Beispiel- und LOG-Datei in der Meldung!}%
+ \fi
+ \pause
+ \ifenglish
+ \wmsg*{<REPLACE THIS BY YOUR TEST FILE>}
+ \else
+ \wmsg*{<HIER TESTDATEI EINFUEGEN>}
+ \fi
+ \else
+ %%
+ %% The example file goes here:
+ %%
+ \copytomsg{\samplefile}
+ \ifnum\linecount>60
+ \ifenglish
+ \typeout{%
+ ^^J%
+ !!! Your test file has \the\linecount\space lines.^^J%
+ !!! Large test files make it difficult to find the cause of the
+ problem:^^J%
+ !!! ^^J%
+ !!! Please decrease your test file as much as possible.^^J}
+ \else
+ \typeout{%
+ ^^J%
+ !!! Ihre Testdatei ist \the\linecount\space Zeilen lang.^^J%
+ !!! So grosse Testdateien erschweren die Ursachenfindung:^^J%
+ !!! ^^J%
+ !!! Bitte verkleinern Sie Ihre Testdatei, soweit das ueberhaupt^^J%
+ !!! moeglich ist, so dass das Problem gerade noch auftritt.^^J}
+ \fi
+ \pause
+ \fi
+ \fi
+ \wmsg*{^^J%
+ LOG-Datei vom LaTeX-Lauf der Beispieldatei:^^J%
+ ===========================================}
+ \ifx\logfile\undefinedcommand
+ \ifenglish
+ \typeout{^^J%
+ Log file of your test file not found.^^J%
+ Please add the log file of your test file at ``\jobname.msg''.}
+ \wmsg*{<REPLACE THIS BY THE LOG OF YOUR TEST FILE>}
+ \else
+ \typeout{^^J%
+ Log-Datei zur Testdatei nicht gefunden.^^J%
+ Bitte ergaenzen Sie die LOG-Datei in ``\jobname.msg''.}
+ \wmsg*{<HIER LOG ZUR TESTDATEI EINFUEGEN >}
+ \fi
+ \pause
+ \else
+ \copytomsg{\logfile}
+ \fi
+\or
+ \wmsg{>Unterbereich: DOC-Fehler}
+ \or
+ \wmsg{>Unterbereich: Aenderungswunsch}
+\fi
+
+%%
+%% Closing Banner.
+%%
+\typeout{^^J%
+============================================================}
+
+\ifinteractive
+ \ifenglish
+ \typeout{^^J%
+ You may edit file ``\jobname.msg'' for additional changes.}
+ \else
+ \typeout{^^J%
+ Weiteren Aenderungen koennen sie direkt in der Datei^^J%
+ ``\jobname.msg'' mit Hilfe eines Editors vornehmen.}
+ \fi
+\else
+ \ifenglish
+ \typeout{^^J%
+ The formular of the report will be saved to ``\jobname.msg''.^^J%
+ Please use an editor to replace all information fields, before^^J%
+ sending it.}
+ \else
+ \typeout{^^J%
+ Das Formular fuer die Erstellung der Meldung wurde in die^^J%
+ Datei ``\jobname.msg'' geschrieben, die Sie bitte mit Hilfe^^J%
+ eines Editors ergaenzen, bevor Sie sie abschicken.}
+ \fi
+\fi
+
+\let\ifinteractivetrue\iftrue
+\ifenglish
+ \typeout{^^J%
+ Please send ``\jobname.msg'' to komascript@gmx.info using subject:^^J%
+ \@spaces ``KOMA-BUG:\space\synopsis''^^J%
+ ^^J%
+ Thank you for spending time for a bug report.}
+\else
+ \typeout{^^J%
+ Wenn Sie ueber eMail verfuegen, so senden Sie ``\jobname.msg''^^J%
+ bitte an komascript@gmx.info.^^J%
+ Verwenden Sie dabei bitte als Betreff (Subject):^^J%
+ \@spaces ``KOMA-BUG:\space\synopsis''^^J%
+ ^^J%
+ Danke, dass Sie sich die Zeit genommen haben.}
+\fi
+\wmsg*{^^J%
+ ============================================================^^J
+ Ende der KOMA-Fehlermeldung.^^J%
+ ============================================================}
+
+%%
+%% Close the .msg output stream.
+%%
+\immediate\closeout\msg
+
+%%
+%% This is the TeX primitive \end command.
+%%
+\@@end
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/doc/komascr.html b/macros/latex/contrib/koma-script/doc/komascr.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/komascr.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/komascript.html b/macros/latex/contrib/koma-script/doc/komascript.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/komascript.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/lppl-de.txt b/macros/latex/contrib/koma-script/doc/lppl-de.txt
new file mode 100644
index 0000000000..68a3adcce9
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/lppl-de.txt
@@ -0,0 +1,470 @@
+Diese Uebersetzung wird mit der Absicht angeboten, das Verstaendnis der LaTeX
+Project Public License (LPPL) zu erleichtern. Es handelt sich jedoch nicht um
+eine offizielle oder im rechtlichen Sinne anerkannte Uebersetzung.
+
+Das LaTeX3 Project ist nicht der Herausgeber dieser Uebersetzung, und sie hat
+diese Uebersetzung auch nicht als rechtskraeftigen Ersatz fuer die
+Original-LPPL anerkannt. Da die Uebersetzung nicht sorgfaeltig von Anwaelten
+ueberprueft wurde, koennen die Uebersetzer nicht garantieren, dass die
+Uebersetzung die rechtlichen Aussagen der LPPL exakt wiedergibt. Wenn Sie
+sichergehen wollen, dass von Ihnen geplante Aktivitaeten im Sinne der LPPL
+gestattet sind, halten Sie sich bitte an die englischsprachige
+Originalversion.
+
+Das LaTeX3 Project moechte Sie darum bitten, diese Uebersetzung nicht als
+offizielle Lizenzbedingungen fuer von Ihnen geschriebene Programme zu
+verwenden. Bitte benutzen Sie hierfuer stattdessen die von dem LaTeX3 Project
+herausgegebene englischsprachige Originalversion.
+
+This is a translation of the LaTeX Project Public License (LPPL) into German.
+This translation is distributed in the hope that it will facilitate
+understanding, but it is not an official or legally approved translation.
+
+The LaTeX3 Project is not the publisher of this translation and has not
+approved it as a legal substitute for the authentic LaTeX Project Public
+License. The translation has not been reviewed carefully by lawyers, and
+therefore the translator cannot be sure that it exactly represents the legal
+meaning of the LaTeX Project Public License. If you wish to be sure whether
+your planned activities are permitted by the LaTeX Project Public License,
+please refer to the authentic English version.
+
+The LaTeX3 Project strongly urges you not to use this translation as the
+official distribution terms for your programs; instead, please use the
+authentic English version published by the LaTeX3 Project.
+
+-------------------------------------------------------------------------------
+
+Inhalt
+
+ • VORWORT
+ • DEFINITIONEN
+ • BEDINGUNGEN FUeR DIE VERTEILUNG UND VERAeNDERUNG
+ • KEINE GEWAeHRLEISTUNG
+ • BETREUUNG DES WERKES
+ • OB UND WIE EIN WERK UNTER DIESER LIZENZ VERTEILT WIRD
+
+Deutsche Uebersetzung der LPPL Version 1.3c 2006-05-20
+Uebersetzt durch Markus Kohm.
+
+Copyright 1999 2002-2009 LaTeX3 Project
+
+Jeder hat das Recht, die Lizenzurkunde und diese Uebersetzung zu
+vervielfaeltigen und unveraenderte Kopien zu verbreiten; Aenderungen sind
+jedoch nicht gestattet.
+
+Diese Uebersetzung ist kein rechtskraeftiger Ersatz fuer die englischsprachige
+Originalversion!
+
+
+VORWORT
+
+Die LaTeX Project Public License (LPPL) ist die Grundlizenz unter der der
+LaTeX Kern und die Standard LaTeX Pakete verteilt werden.
+
+Sie koennen diese Lizenz fuer jedes Werk verwenden, dessen Rechte-Inhaber Sie
+sind und das sie verteilen wollen. Diese Lizenz mag besonders nuetzlich sein,
+wenn Ihr Werk einen Bezug zu TeX hat (wie ein LaTeX Paket), aber Sie wurde auf
+eine Art und Weise geschrieben, dass sie sogar dann verwendet werden kann,
+wenn Ihr Werk keinen Bezug zu TeX hat.
+
+Der Abschnitt `OB UND WIE EIN WERK UNTER DIESER LIZENZ VERTEILT WIRD', unten,
+liefert Informationen, Beispiele und Empfehlungen fuer Autoren die erwaegen
+ihr Werk unter dieser Lizenz zu verteilen.
+
+Diese Lizenz legt Bedingungen fest, unter denen ein Werk verteilt und
+veraendert werden darf, ebenso wie Bedingungen unter denen eine veraenderte
+Version des Werks verteilt werden darf.
+
+Wir, das LaTeX3 Project, glauben, dass die unten genannten Bedingungen Ihnen
+die Freiheit bieten eine veraenderte Version Ihres Werks zu erstellen und zu
+verteilen, die jede gewuenschte technische Spezifikation erfuellt, waehrend
+die Verfuegbarkeit, Unversehrtheit und Zuverlaessigkeit dieses Werks bewahrt
+wird. Wenn Ihnen nicht klar ist, wie Sie ihr Ziel unter Einhaltung dieser
+Bedingungen erreichen koennen, koennen Sie dazu in den Dokumenten
+`cfgguide.tex' und `modguide.tex' in der Standard-LaTeX-Verteilung Vorschlaege
+nachlesen.
+
+
+DEFINITIONEN
+
+In diesem Lizenzdokument werden folgende Begriffe verwendet:
+
+`Werk'
+ Jegliches Werk, das unter dieser Lizenz verteilt wird.
+`Abgeleitetes Werk'
+ Jegliches Werk das nach geltendem Recht von dem Werk abgeleitet wurde.
+`Veraenderung'
+ Jeglicher Prozess, der nach geltendem Recht ein abgeleitetes Werk schafft,
+ – beispielsweise die Erstellung einer Datei, die eine mit dem Werk
+ verbundene Datei oder einen nennenswerten Teil einer solchen Datei
+ enthaelt, sei es unveraendert oder mit Veraenderungen und/oder
+ Uebersetzungen in eine andere Sprache. Das Ausfuehren eines Prozesses, der
+ nach geltendem Recht ein abgeleitetes Werk erzeugt.
+`Verteilung'
+ Kopien des Werkes im Ganzen oder in Teilen von einer Person fuer eine
+ andere verfuegbar machen. Verteilung schliesst die Bereitstellung
+ irgendeines elektronischen Teils des Werks ueber
+ Datei-Austausch-Protokolle wie FTP oder HTTP oder verteilte Dateisysteme
+ wie Suns Netzwerk-Datei-System (NFS) ein (ist jedoch nicht darauf
+ beschraenkt).
+`Kompiliertes Werk'
+ Eine Version des Werks die in eine Form ueberfuehrt wurde, in der es auf
+ einem Computer-System direkt verwendbar ist. Dieser Prozess der
+ Ueberfuehrung kann die Verwendung von Installations-Einrichtungen, die vom
+ Werk zur Verfuegung gestellt werden, Umwandlungen des Werks, das Kopieren
+ von Teilen des Werks und andere Aktivitaeten einschliessen. Beachten Sie,
+ dass Veraenderungen irgendeiner Installations-Einrichtung, die vom Werk zur
+ Verfuegung gestellt wird, Veraenderung des Werks selbst nach sich zieht.
+`Aktueller Betreuer'
+ Eine Person oder Personen, die im Werk als solche benannt ist oder benannt
+ sind. Wenn keine solche explizite Benennung vorhanden ist, so ist es der
+ Rechte-Inhaber nach geltendem Recht.
+`Standard-Interpreter'
+ Ein Programm oder Prozess, der normalerweise fuer die Ausfuehrung oder
+ Interpretierung eines Teils oder des ganzen Werks benoetigt wird.
+
+ Ein Standard-Interpreter kann von externen Teilen abhaengen, aber diese
+ sind nicht als Teil des Standard-Interpreters zu betrachten, solange jeder
+ externe Teil sich selbst bei interaktiver Nutzung deutlich identifiziert.
+ Solange bei der Anwendung der Lizenz auf das Werk nicht explizit anderes
+ erklaert ist, ist der einzige anwendbare Standard-Interpreter ein
+ `LaTeX-Format', bzw. im Falle von Dateien die zum `LaTeX-Format' selbst
+ gehoeren, ein Progamm welches die `TeX-Sprache' implementiert.
+
+
+BEDINGUNGEN FUER DIE VERTEILUNG UND VERAENDERUNG
+
+ 1. Andere Aktivitaeten als die Verteilung und/oder Veraenderung des Werks sind
+ nicht von dieser Lizenz betroffen; sie liegen ausserhalb ihres
+ Anwendungsbereiches. Insbesondere ist die Taetigkeit des Ausfuehrens des
+ Werks nicht beschraenkt und es sind keine Bedingungen geknuepft,
+ irgendwelche Hilfe fuer das Werk anzubieten.
+ 2. Sie duerfen eine vollstaendige, unveraenderte Kopie des Werkes, so wie Sie
+ es erhalten haben, verteilen. Verteilungen von Teilen des Werkes werden als
+ Veraenderungen des Werkes betrachtet, und es kann kein Recht zur Verteilung
+ eines solchen Abgeleiteten Werkes aus dieser Regel abgeleitet werden.
+ 3. Sie duerfen ein Kompiliertes Werk, das aus einer vollstaendigen,
+ unveraenderten Kopie des Werkes erzeugt wurde, nach vorstehender Regel 2
+ verteilen, solange das Kompilierte Werk in einer Art und Weise verteilt
+ wird, dass die Empfaenger das Abgeleitete Werk in genau der Weise
+ installieren koennen, in der sie es installieren wuerden, wenn sie selbst
+ das Abgeleitete Werk direkt aus dem Werk erzeugt haetten.
+ 4. Wenn Sie der Aktuelle Betreuer des Werks sind, koennen Sie, ohne
+ Beschraenkung das Werk veraendern und so ein Abgeleitetes Werk
+ schaffen. Sie duerften ebenso das Abgeleitete Werk ohne Einschraenkungen
+ verteilen, einschliesslich Kompilierter Werke, die aus Abgeleiteten Werken
+ geschaffen wurden. Abgeleitete Werke, die in dieser Weise vom Akuellen
+ Betreuer verteilt werden, sind als aktualisierte Versionen des Werks zu
+ verstehen.
+ 5. Wenn Sie nicht der Aktuelle Betreuer des Werkes sind, duerfen Sie Ihre
+ Kopie des Werkes veraendern und so ein Abgeleitetes Werk auf Grundlage des
+ Werkes schaffen, das Abgeleitete Werk kompilieren und so ein Kompiliertes
+ Werk auf Grundlage des Abgeleiteten Werkes schaffen.
+ 6. Wenn Sie nicht der Aktuelle Betreuer des Werkes sind, duerfen Sie ein
+ Abgeleitetes Werk verteilen, solange die folgenden Bedingungen fuer jeden
+ Teil des Werkes eingehalten werden, solange nicht fuer diesen Teil im
+ Rechte-Hinweis deutlich gemacht ist, dass dieser Teil von diesen
+ Bedingungen ausgenommen ist. Nur der Aktuelle Betreuer ist befugt solch
+ eine Ausnahmeregelung fuer einen Teil des Werkes zu erlassen.
+ 1. Wenn Teile des Abgeleiteten Werkes bei Nutzung mit dem
+ Standard-Interpreter eine direkte Ersetzung von Teilen des Werkes sein
+ koennen, dann muss der Ersetzungs-Teil aus dem Abgeleiteten Werk, wann
+ immer dieser Teil des Werks sich selbst gegenueber dem Anwender bei der
+ interaktiven Verwendung mit dem Standard-Interpreter identifiziert,
+ sich gegenueber dem Anwender klar und unmissverstaendlich selbst als
+ eine veraenderte Version dieses Teils identifizieren.
+ 2. Jeder Teil des Abgeleiteten Werks enthaelt einen deutliche Hinweis auf
+ die genaue Natur der Aenderungen an diesem Teil oder einen deutlichen
+ Verweis auf eine andere Datei, die als Teil des Abgeleiteten Werks
+ verteilt wird und eine vollstaendige und genaue Liste der Aenderungen
+ enthaelt.
+ 3. Das Abgeleitete Werk enthaelt keine Aussagen aus denen man schliessen
+ kann, dass irgendeine Person, einschliesslich (aber nicht beschraenkt
+ auf den) des Autors der Original-Version des Werkes, irgendwelche
+ Unterstuetzung, einschliesslich (aber nicht beschraenkt auf) Meldung
+ und Behandlung von Fehlern, gegenueber den Empfaengern des Abgeleiteten
+ Werkes leistet, solange diese Personen nicht ausdruecklich erklaert
+ haben, dass sie solch eine Unterstuetzung fuer das Abgeleitete Werk
+ leisten werden.
+ 4. Sie verteilen zusammen mit dem Abgeleiteten Werk mindestens eines der
+ folgenden:
+ 1. Eine vollstaendige, unveraenderte Kopie des Werks; wenn Ihre
+ Verteilung eines veraenderten Teils darin besteht, Zugang zum
+ Kopieren eines veraenderten Teils von einem bestimmten Ort
+ anzubieten, dann wird diese Bedingung erfuellt, wenn Sie
+ gleichwertigen Zugang zu einer Kopie des Werkes am gleichen oder
+ einem vergleichbaren Ort anbieten, selbst wenn Dritte so nicht
+ gezwungen sind, das Werk zusammen mit dem veraenderten Teil zu
+ kopieren.
+ 2. Informationen, die ausreichen, eine vollstaendige, unveraenderte
+ Kopie des Werks zu erhalten.
+ 7. Wenn Sie nicht der Aktuelle Betreuer des Werkes sind, duerfen Sie ein
+ Kompiliertes Werk, das aus einem Abgeleiteten Werk erzeugt wurde,
+ verteilen, solange das Abgeleitete Werk an alle Empfaenger des Kompilierten
+ Werkes verteilt wird und solange die Bedingungen aus vorstehender Regel 6
+ mit Blick auf das Abgeleitete Werk erfuellt sind.
+ 8. Die vorstehenden Bedingungen sind nicht dazu gedacht, Veraenderungen gleich
+ welcher Weise und welchen Teils zu verhindern, die dazu fuehren, dass
+ dieser Teil mit einer aktualisierten Version dieses Teiles, wie sie vom
+ Aktuellen Betreuer nach Regel 4 verteilt wird, identisch wird. Die
+ vorstehenden Bedingungen sind daher auf diesen Fall nicht anzuwenden.
+ 9. Verteilungen des Werkes und jedes Abgeleiteten Werkes in einem alternativen
+ Format, aus dem das Werk oder das abgeleitete Werk (im Ganzen oder in
+ Teilen) dann erzeugt wird, indem irgend ein Prozess auf das Format
+ angewendet wird, schwaecht keinen Abschnitt dieser Lizenz ab und hebt
+ keinen Abschnitt dieser Lizenz auf, da sie das Ergebnis der Anwendung
+ dieses Prozesses betreffen.
+10.
+ 1. Ein Abgeleitetes Werk darf unter einer anderen Lizenz verteilt werden,
+ solange sichergestellt ist, dass diese Lizenz selbst die Bedingungen
+ aus Regel 6 in Bezug auf das Werk beachtet, obgleich sie nicht die
+ restlichen Bedingungen dieser Lizenz zu beachten hat.
+ 2. Wenn ein Abgeleitetes Werk unter einer anderen Lizenz verteilt wird,
+ muss dieses Abgeleitete Werk genuegend Dokumentation als Teil von sich
+ selbst bieten, damit jeder Empfaenger dieses Abgeleiteten Werkes die
+ Bedingungen von vorstehender Regel 6, betreffend Aenderungen des Werks,
+ beachten kann.
+11. Diese Lizenz trifft keine Einschraenkungen fuer Werke, die in keiner
+ Beziehung zu dem Werk stehen, noch trifft diese Lizenz irgendwelche
+ Einschraenkungen betreffens das Zusammenpacken solcher Werke mit dem Werk
+ auf irgendeine Art.
+12. Nichts in dieser Lizenz ist dazu gedacht oder darf dazu verwendet werden
+ vollstaendige Einhaltung geltenden Rechts durch alle Beteiligten zu
+ verhindern.
+
+
+KEINE GEWAEHRLEISTUNG
+
+Es besteht keinerlei Gewaehrleistung fuer das Werk, soweit dies gesetzlich
+zulaessig ist. Sofern nicht anderweitig schriftlich bestaetigt, stellen die
+Rechte-Inhaber das Werk so zur Verfuegung, `wie es ist', ohne irgendeine
+Gewaehrleistung, weder ausdruecklich noch implizit, einschliesslich, aber
+nicht begrenzt auf, Marktreife oder Tauglichkeit fuer einen bestimmten
+Zweck. Das volle Risiko bezueglich Qualitaet und Leistungsfaehigkeit des
+Programms liegt bei Ihnen. Sollte sich das Programm als fehlerhaft
+herausstellen, liegen die Kosten fuer notwendigen Service, Reparatur oder
+Korrektur bei Ihnen.
+
+In keinem Fall, ausser wenn durch geltendes Recht gefordert oder schriftlich
+zugesichert, ist irgendein Rechte-Inhaber oder ein in einem Teil des Werkes
+namentlich genannter Autor oder irgendein anderer, der das Programm wie oben
+erlaubt modifiziert und/oder verbreitet hat, Ihnen gegenueber fuer
+irgendwelche Schaeden haftbar, einschliesslich jeglicher allgemeiner oder
+spezieller Schaeden, Schaeden durch Seiteneffekte (Nebenwirkungen) oder
+Folgeschaeden, die aus der Benutzung des Werkes oder der Unbenutzbarkeit des
+Werkes folgen (einschliesslich, aber nicht beschraenkt auf, Datenverluste,
+fehlerhafte Verarbeitung von Daten, Verluste, die von Ihnen oder anderen
+getragen werden muessen, oder dem Unvermoegen des Werkes, mit irgendeinem
+anderen Programm zusammenzuarbeiten), selbst wenn ein Rechte-Inhaber oder
+genannter Autor oder genannter Dritter ueber die Moeglichkeit solcher Schaeden
+unterrichtet worden war.
+
+
+BETREUUNG DES WERKES
+
+Das Werk hat den Status `author-maintained' (vom Autor betreut) wenn der
+Rechte-Inhaber ausdruecklich und deutlich in der Naehe des grundlegenden
+Rechtehinweises im Werk feststellt, dass das Werk nur vom Rechte-Inhaber
+betreut werden kann oder einfach, dass es `author-maintained' (vom Autor
+betreut) ist.
+
+Das Werk hat den Status `maintained' (betreut), wenn ein Aktueller Betreuer
+existiert, der im Werk angezeigt hat, dass er bereit ist, Fehlermeldungen das
+Werk betreffend zu erhalten (beispielsweise, indem er eine gueltige
+E-Mail-Adresse bekannt gibt). Es ist nicht erforderlich, dass der Aktuelle
+Betreuer diese Fehlermeldungen bestaetigt oder auf sie reagiert.
+
+Das Werk wechselt vom Status `maintained' (betreut) in den Status
+`unmaintained' (nicht betreut), wenn kein Aktueller Betreuer vorhanden ist
+oder die Person, die als Aktueller Betreuer des Werks festgelegt ist, fuer
+einen Zeitraum von sechs Monaten nicht auf dem bekannten Kommunikationsweg
+erreichbar ist, und keine anderen Anzeichen einer aktiven Betreuung zu
+erkennen sind.
+
+Wenn das Werk den Status `unmaintained' hat, koennen Sie durch die folgenden
+Schritte zum Aktuelle Betreuer des Werkes werden:
+
+ 1. Unternehmen Sie vertretbare Anstrengungen, um den Aktuellen Betreuer (und
+ den Rechte-Inhaber, falls dies zwei verschiedene Personen sind) durch
+ Nutzung des Internets und anderer Methoden ausfindig zu machen.
+ 2. Wenn diese Suche erfolgreich ist, dann erkundigen Sie sich, ob das Werk
+ noch immer betreut wird.
+ 1. Wenn es betreut wird, fragen Sie den Aktuellen Betreuer nach einer
+ Aktualisierung der Kommunikationsdaten innerhalb eines Monats.
+ 2. Wenn die Suche erfolglos ist oder vom Aktuellen Betreuer nichts
+ unternommen wird, um die aktive Betreuung fortzusetzen oder
+ wiederaufzunehmen, dann zeigen Sie in der zur Sache gehoerenden
+ Nutzergemeinschaft Ihren Willen zur Uebernahme der Betreuung an. (Wenn
+ das Werk ein LaTeX-Werk ist, kann dies beispielsweise durch eine
+ Mitteilung in comp.text.tex oder de.comp.text.tex erfolgen).
+ 3.
+ 1. Wenn der Aktuelle Betreuer erreichbar ist und der Uebergabe der
+ Betreuung an Sie zustimmt, dann hat dies sofortige Wirkung nach
+ Bekanntgabe.
+ 2. Wenn der Aktuelle Betreuer nicht erreichbar ist und der Rechte-Inhaber
+ einer Uebergabe der Betreuung an Sie zustimmt, dann hat sofortige
+ Wirkung nach Bekanntgabe.
+ 4. Wenn Sie eine Willens-Bekanntgabe wie oben in 2b beschrieben durchfuehren
+ und nach drei Monaten Ihr Wunsch weder vom Aktuellen Betreuer noch vom
+ Rechte-Inhaber noch von anderen Personen zurueckgewiesen wurde, dann
+ koennen Sie Verfuegungen fuer das Werk treffen, damit sie als (neuer)
+ Aktueller Betreuer bezeichnet werden.
+ 5. Wenn der zuvor unerreichbare Aktuelle Betreuer innerhalb weiterer drei
+ Monate nach einer erfolgten Aenderung gemaess den Bedingungen von 3b oder 4
+ erreichbar wird, dann muss dieser Aktuelle Betreuer auf seinen Wunsch
+ wieder der Aktuelle Betreuer werden, wenn er innerhalb eines Monats seine
+ Kommunikationsdaten aktualisiert.
+
+Ein Wechsel des Aktuellen Betreuers allein aendert nichts an der Tatsache, dass
+das Werk unter der LPPL verteilt wird.
+
+Wenn Sie der Aktuelle Betreuer des Werks werden, sollten Sie unverzueglich das
+Werk mit einer deutlichen und unmissverstaendlichen Feststellung ueber Ihren
+Status als Aktueller Betreuer versehen. Sie sollten ebenfalls Ihren neuen
+Status derselben Nutzergemeinschaft bekannt geben wie in oben in 2b.
+
+
+OB UND WIE EIN WERK UNTER DIESER LIZENZ VERTEILT WERDEN SOLLTE
+
+Dieser Abschnitt enthaelt wichtige Informationen, Beispiele und Empfehlungen
+fuer Autoren, die erwaegen Ihr Werk unter dieser Lizenz zu verteilen. Die
+Autoren sind in diesem Abschnitt mit `Sie' bezeichnet.
+
+
+Wahl dieser Lizenz oder einer anderen Lizenz
+
+Wenn Sie fuer irgend einen Teil Ihres Werkes Bedingungen fuer die Verteilung
+benoetigen oder wollen, die bedeutsam von dieser Lizenz abweichen, dann sollten
+Sie sich an keiner Stelle Ihres Werkes auf diese Lizenz beziehen, sondern
+stattdessen Ihr Werk unter einer anderen Lizenz verteilen. Sie koennen dann den
+Text dieser Lizenz als Modell fuer Ihre eigene Lizenz verwenden, aber Ihre
+Lizenz sollte sich nicht auf diese Lizenz beziehen, anderenfalls entsteht der
+Eindruck, dass Ihr Werk unter der LPPL verteilt wird.
+
+Das Dokument `modguide.tex' in der Standard-LaTeX-Verteilung erklaert die
+Motivation hinter den Bedingungen dieser Lizenz. Es erklaert beispielsweise,
+warum die Verteilung von LaTeX unter der GNU General Public License (GPL) als
+unpassend betrachtet wurde. Selbst wenn Ihr Werk nicht mit LaTeX zu tun hat,
+kann die Diskussion in `modguide.tex' immer noch relevant sein und Autoren, die
+beabsichtigen ihr Werk unter irgendeiner Lizenz zu verteilen wird empfohlen es
+zu lesen.
+
+
+Eine Empfehlung fuer Aenderungen ohne Verteilung
+
+Es ist klug niemals einen Teil des Werkes zu veraendern, auch nicht fuer die
+eigene persoenliche Verwendung, ohne alle obigen Regeln fuer die Verteilung
+des veraenderten Teils einzuhalten. Auch wenn Sie beabsichtigen, diesen
+veraenderten Teil niemals zu verteilen, geschieht dies des oefteren
+versehentlich – Sie koennten vergessen, dass Sie diesen Teil veraendert haben;
+oder es koennte Ihnen nicht bewusst sein, wenn Sie anderen den Zugang zu der
+veraenderten Version erlauben, dass Sie sie damit verteilen und Sie so gegen
+die Bedingungen dieser Lizenz in einer Weise verstossen, die rechtliche
+Implikationen haben und, schlimmer, Probleme in der Nutzergemeinschaft
+verursachen kann. Es ist daher ueblicherweise in Ihrem eigenen Interesse, Ihre
+eigene Kopie des Werkes identisch mit der oeffentlichen Version zu
+halten. Viele Werke unterstuetzen Wege, um das Verhalten des Werkes ohne
+Aenderung eines lizensierten Teils zu veraendern.
+
+
+Wie diese Lizenz zu nutzen ist
+
+Um diese Lizenz zu nutzen, fuegen Sie in jeden Teil Ihres Werkes einen
+expliziten Rechtehinweis sowohl mit Ihrem Namen als auch dem Jahr, in dem das
+Werk geschrieben und/oder wesentlich geaendert wurde, ein. Fuegen Sie
+ebenfalls eine Festlegung ein, dass die Verteilung und/oder Veraenderung
+dieses Teils nach durch die Bedingungen dieser Lizenz geregelt ist.
+
+Hier ist ein Beispiel fuer solch einen Hinweis und eine Festlegung:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+auf Deutsch (Sie sollten den Hinweis und die Festlegung jedoch unbedingt
+zumindest auch in englischer Sprache aufnehmen):
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
+ % entweder Version 1.3 oder (nach Ihrer Wahl) jede spaetere Version,
+ % verteilt und/oder veraendert werden.
+ % Die neuste Version dieser Lizenz ist
+ % http://www.latex-project.org/lppl.txt
+ % und Version 1.3 oder neuer ist Teil aller Verteilungen von LaTeX
+ % Version 2005/12/01 oder spaeter.
+ %
+ % Dieses Werk hat den LPPL-Betreuungs-Status "maintained" (betreut).
+ %
+ % Der Aktuelle Betreuer dieses Werkes ist M. Y. Name.
+ %
+ % Dieses Werk besteht aus den Dateien pig.dtx und pig.ins und der
+ % abgeleiteten Datei pig.sty.
+
+Mit solchem Hinweis und Festlegung in einer Datei, sind die Bedingungen dieses
+Lizenz-Dokuments anzuwenden, wobei das `Werk' sich auf die drei Dateien
+`pig.dtx', `pig,ins' und `pig.sty' bezieht (das letzte wird aus `pig.dtx'
+unter Verwendung von `pig.ins' erzeugt), der `Standard-Interpreter' bezieht
+sich auf jegliches `LaTeX-Format' und beide `Rechte-Inhaber' und `Aktueller
+Betreuer' beziehen sich auf die Person `M. Y. Name'.
+
+Wenn Sie nicht wollen, dass der Betreuer-Abschnitt der LPPL auf Ihr Werk
+anzuwenden ist, aendern Sie oben "maintained" in "author-maintained". Wir
+empfehlen die Verwendung von "maintained", da der Betreuungs-Abschnitt
+hinzugefuegt wurde um sicherzustellen, dass Ihr Werk fuer die
+Nutzergemeinschaft nuetzlich bleibt, selbst wenn Sie es nicht mehr selbst
+betreuen und aktualisieren koennen.
+
+
+Abgeleitete Werke, die keinen Ersatz darstellen
+
+Diverse Bedingungen der LPPL treffen Festlegungen, um die Benutzbarkeit und
+Stabilitaet fuer die Nutzergemeinschaft sicher zu stellen. Daher befassen sie
+sich mit dem Fall, dass ein abgeleitetes Werk (kompatibel oder auch nicht
+kompatibel) dazu gedacht ist, als Ersatz des Originalwerks verwendet zu
+werden. Falls das nicht der Fall ist (beispielsweise, wenn nur einige wenige
+Zeilen Quelltext in einem komplett anderen Zusammenhang wiederverwendet
+werden), dann finden die Bedingungen 6b und 6d keine Anwendung.
+
+
+Wichtige Empfehlungen
+
+Festlegen was das Werk ausmacht
+
+Die LPPL erfordert, dass die Verteilung des Werkes alle Dateien des Werkes
+beinhaltet. Es ist daher wichtig, dass Sie fuer den Lizenznehmer eine
+Moeglichkeit schaffen, festzustellen welche Dateien das Werk ausmachen. Dies
+kann beispielsweise erreicht werden, indem alle Dateien des Werks in der Naehe
+des Rechte-Hinweises in jeder Datei aufgefuehrt werde oder durch eine Zeile
+wie:
+
+ % This work consists of all files listed in manifest.txt.
+
+auf Deutsch (Sie sollten den Hinweis jedoch unbedingt zumindest auch in
+englischer Sprache aufnehmen):
+
+ % Dieses Werk besteht aus allen in manifest.txt aufgefuehrten Dateien
+
+an dieser Stelle. Bei Fehlen einer unzweideutigen Liste kann es fuer den
+Lizenznehmer unmoeglich sein herauszufinden woraus nach Ihrer Auffassung das
+Werk besteht, in diesem Fall waere der Lizenznehmer berechtigt sinnvolle
+Annahmen zu treffen, aus welchen Dateien das Werk besteht.
+
+-------------------------------------------------------------------------------
+Letzte Aenderung, 16. Januar 2006
+Letzte Aenderung der Uebersetzung, 13. Februar 2006
diff --git a/macros/latex/contrib/koma-script/doc/lppl.txt b/macros/latex/contrib/koma-script/doc/lppl.txt
new file mode 100644
index 0000000000..90e5e3ab79
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/lppl.txt
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2006-05-20
+
+Copyright 1999 2002-2006 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
diff --git a/macros/latex/contrib/koma-script/doc/manifest.txt b/macros/latex/contrib/koma-script/doc/manifest.txt
new file mode 100644
index 0000000000..94fe1e0007
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/manifest.txt
@@ -0,0 +1,533 @@
+% ======================================================================
+% manifest.txt
+% Copyright (c) Markus Kohm, 2005-2016
+%
+% 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.
+% ----------------------------------------------------------------------
+% manifest.txt
+% Copyright (c) Markus Kohm, 2005-2016
+%
+% 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.
+% ======================================================================
+%
+% CONTENTS OF THE KOMA-SCRIPT RELEASE 2019/02/01 v3.26b
+% ------------------------------------------------------
+%
+%
+% Documentation:
+% --------------
+%
+% README - The distribution guide. START BY READING THIS FILE!
+% Informationen zur Verteilung. DIESE DATEI ZUERST LESEN!
+% manifest.txt - This file
+%
+% INSTALL.txt - English installation guide
+% INSTALLD.txt - Deutsche Installationsanleitung
+%
+% lppl.txt - Licence informations
+% lppl-de.txt - Deutsche Uebersetzung der Lizenzbestimmungen. Diese ist
+% in allen Laendern oder Staaten mit Deutsch als
+% zulaessiger Amtssprache bindend.
+%
+% scrsource.tex - File to produce the KOMA-Script implementation
+% documentation
+%
+% komabug.tex - Interactive LaTeX document to generate bug reports
+%
+% doc/ - Directory with all the documentation
+% Makefile - Gnu make's makefile for the user guides
+% Makefile.guide - Used by Makefile
+% Makefile.latexinit
+% - Used by Makefile
+% guide.tex - Source main file of the user guides
+% guide.bib - Bibliography database of the user guides
+% plength.dtx - Source of Metapost figures used by the user guides
+% scrguide.cls - Class used by the user guides
+% scrguide.gst - MakeIndex style for the glossary of the user guides
+% scrguide.ist - MakeIndex style for the index of the user guides
+%
+% koma-script.html - Wrapper to the user guides
+% komascript.html - Wrapper to the user guides
+% komascr.html - Wrapper to the user guides
+% scraddr.html - Wrapper to the user guides
+% scrartcl.html - Wrapper to the user guides
+% scrbase.html - Wrapper to the user guides
+% scrbook.html - Wrapper to the user guides
+% scrdate.html - Wrapper to the user guides
+% scrlfile.html - Wrapper to the user guides
+% scrwfile.html - Wrapper to the user guides
+% scrlttr2.html - Wrapper to the user guides
+% scrletter.html - Wrapper to the user guides
+% scrreprt.html - Wrapper to the user guides
+% scrtime.html - Wrapper to the user guides
+% tocbasic.html - Wrapper to the user guides
+% typearea.html - Wrapper to the user guides
+%
+% scrpage2.tex - Source of the manual of obsolete package scrpage2
+% scrpage2.pdf - Manual of obsolete package scrpage2
+%
+% scrguien.pdf - English user guide
+% scrguien.html - HTML index of the English user guide
+%
+% scrguide.pdf - Deutsche Anleitung
+% scrguide.html - HTML-Index fuer die deutsche Anleitung
+%
+% linkalias.tex - alias definitions of links in the free manual
+%
+% bin/
+% genhtmlidx.pl - Perl script for HTML index generation
+% genindex.pl - Perl script to split the index
+%
+% english/ - Directory with the source of the English user guide
+% adrconvnote.tex - Source of the chapter about adrconv at the English
+% user guide
+% authorpart.tex - heading of part I
+% common-options.tex, common-compatibility.tex, common-draftmode.tex,
+% common-typearea.tex, common-fontsize.tex, common-textmarkup,
+% common-parmarkup, common-oddorevenpage.tex, common-interleafpage.tex,
+% common-footnotes.tex, common-lists.tex, common-marginpar.tex,
+% common-titles.tex, common-dictum.tex, common-headfootheight.tex,
+% common-pagestylemanipulation.tex
+% - used in several chapters
+% guide-english.tex
+% - Terms for the English user guide
+% expertpart.tex - heading of part II
+% htmlsetup - Terms for the html index of the English user guide
+% introduction.tex - Source of introduction chapter at the English user
+% guide
+% japanlco.tex - Source of the appendix about Japanese letters
+% preface.tex - preface to KOMA-Script 3
+% scraddr.tex - Source of the chapter about scraddr at the English
+% user guide
+% scrbase.tex - Source of the chapter about scrbase at the English
+% user guide
+% scrbookreportarticle.tex
+% - Source of the chapter about scrbook, scrreprt, and
+% scrartcl in part I of the English user guide
+% scrbookreportarticle-experts.tex
+% - Source of the chapter about scrbook, scrreprt, and
+% scrartcl in part II of the English user guide
+% scrdatetime.tex - Source of the chapter about scrdate and scrtime at
+% the English user guide
+% scrjura.tex - Source of the chapter about scrjura
+% scrjuraexample.tex
+% - Source of an example for scrjura
+% scrlfile.tex - Source of the chapter about scrlfile at the English
+% user guide
+% scrwfile.tex - Source of the chapter about scrwfile at the English
+% user guide
+% scrlttr2.tex - Source of the chapter about scrlttr2 in part I of
+% the English user guide
+% scrlttr2examples.dtx
+% - Source of the example letter
+% scrlttr2-experts.tex
+% - Source of the chapter about scrlttr2 in part II of
+% the English user guide
+% scrlayer-scrpage.tex
+% - Source of the chapter about scrlayer-scrpage at the
+% English user guide
+% scrlayer-scrpage-experts.tex
+% - Source of the chapter about scrlayer-scrpage at the
+% expert part of the English user guide
+% scrlayer.tex - Source of the chapter about scrlayer the
+% English user guide
+% scrlayer-notecolumn.tex
+% - Source of the chapter about scrlayer-notecolumn at the
+% English user guide
+% scrlayer-notecolumn-example.tex
+% - Source of the (German) example in the chapter about
+% scrlayer-notecolumn in the English manual.
+% tocbasic.tex - Source of the chapter about tocbasic at the English
+% user guide
+% typearea.tex - Source of the chapter about typearea in part I of
+% the English user guide
+% typearea-experts.tex
+% - Source of the chapter about typearea in part I of
+% the English user guide
+%
+% ngerman/ - Verzeichnis mit der deutschen Anleitung
+% adrconvnote.tex - Quellen des Kapitels ueber adrconv in der deutschen
+% Anleitung
+% authorpart.tex - Vorspann von Teil I
+% common-options.tex, common-compatibility.tex, common-draftmode.tex,
+% common-typearea.tex, common-fontsize.tex, common-textmarkup,
+% common-parmarkup, common-oddorevenpage.tex, common-interleafpage.tex,
+% common-footnotes.tex, common-lists.tex, common-marginpar.tex,
+% common-titles.tex, common-dictum.tex, common-headfootheight.tex,
+% common-pagestylemanipulation.tex
+% - Passagen, die in verschiedenen Kapiteln vorkommen
+% expertpart.tex - Vorspann von Teil II
+% guide-ngerman.tex
+% - Begriffe fuer die deutsche Anleitung
+% htmlsetup - Begriffe fuer den HTML-Index fuer die deutsche Anleitung
+% introduction.tex - Quellen des Einleitungskapitels der deutschen Anleitung
+% preface.tex - Vorwort zu KOMA-Script 3
+% scraddr.tex - Quellen des Kapitels ueber scraddr in der deutschen
+% Anleitung
+% scrbase.tex - Quellen des Kapitels ueber scrbase in der deutschen
+% Anleitung
+% scrbookreportarticle.tex
+% - Quellen des Kapitels ueber scrbook, scrreprt und
+% scrartcl in Teil I der deutschen Anleitung
+% scrbookreportarticle-experts.tex
+% - Quellen des Kapitels ueber scrbook, scrreprt und
+% scrartcl in Teil II der deutschen Anleitung
+% scrdatetime.tex - Quellen des Kapitels ueber scrdate und scrtime in der
+% deutschen Anleitung
+% scrextend.tex - Quellen des Kapitels ueber scrextend in der deutschen
+% Anleitung
+% scrhack.tex - Quellen des Kapitels ueber scrhack in der deutschen
+% Anleitung
+% scrjura.tex - Quellen des Kapitels ueber scrjura in der deutschen
+% Anleitung
+% scrjuraexample.tex
+% - Quellen eines Beispiels mit scrjura
+% scrlfile.tex - Quellen des Kapitels ueber scrlfile in der deutschen
+% Anleitung
+% scrwfile.tex - Quellen des Kapitels ueber scrwfile in der deutschen
+% Anleitung
+% scrlttr2examples.dtx
+% - Quellen der Beispielbriefe
+% scrlttr2.tex - Quellen des Kapitels ueber scrlttr2 in Teil I der
+% deutschen Anleitung
+% scrlttr2-experts.tex
+% - Quellen des Kapitels ueber scrlttr2 in Teil II der
+% deutschen Anleitung
+% scrlayer-scrpage.tex
+% - Quellen des Kapitels ueber scrlayer-scrpage in der
+% deutschen Anleitung
+% scrlayer-scrpage-experts.tex
+% - Quellen des Kapitels ueber scrlayer-scrpage im
+% Exptertenteil der deutschen Anleitung
+% scrlayer-notecolumn.tex
+% - Quellen des Kapitels ueber scrlayer-notecolumn in der
+% deutschen Anleitung
+% scrlayer-notecolumn-example.tex
+% - Quellen des Beispiels aus dem Kapitel ueber
+% scrlayer-notecolumn in der deutschen Anleitung
+% scrlayer.tex - Quellen des Kapitels ueber scrlayer in der
+% deutschen Anleitung
+% tocbasic.tex - Quellen des Kapitels ueber tocbasic in der deutschen
+% Anleitung
+% typearea.tex - Quellen des Kapitels ueber typearea in Teil I der
+% deutschen Anleitung
+% typearea-experts.tex
+% - Quellen des Kapitels ueber typearea in Teil II der
+% deutschen Anleitung
+%
+%
+% KOMA-Script Source Files:
+% -------------------------
+%
+% Makefile - Makefile for gnu make (needed by developers)
+% Makefile.baseinit - Used by Makefile and Makefiles at subdirectories
+% Makefile.baserules - Used by Makefile and Makefiles at subdirectories
+% Makefile.cfg - Optional configuration file for make
+%
+% scrdoc.dtx - Class used by the KOMA-Script dtx files
+% scrkernel-basics.dtx
+% - KOMA-Script kernel basics for all packages and classes
+% scrkernel-bibliography.dtx
+% - KOMA-Script bibliography part of the classes
+% scrkernel-floats.dtx
+% - KOMA-Script float part of the classes
+% scrkernel-fonts.dtx
+% - KOMA-Script font part of the classes and packages
+% scrkernel-footnotes.dtx
+% - KOMA-Script footnote part of the classes and packages
+% scrkernel-index.dtx
+% - KOMA-Script index part of the classes
+% scrkernel-language.dtx
+% - KOMA-Script language part of the classes and packages
+% scrkernel-listsof.dtx
+% - KOMA-Script list of ... part of the classes
+% scrkernel-listsandtabulars.dtx
+% - KOMA-Script lists part of the classes
+% scrkernel-miscellaneous.dtx
+% - KOMA-Script other parts of the classes or packages
+% scrkernel-pagestyles.dtx
+% - KOMA-Script pagestyle part of the classes
+% scrkernel-paragraphs.dtx
+% - KOMA-Script paragraph settings part of the classes
+% scrkernel-sections.dtx
+% - KOMA-Script sectioning part of the classes
+% scrkernel-title.dtx
+% - KOMA-Script title part of the classes
+% scrkernel-tocstyle.dtx
+% - KOMA-Script TOC file style part of classes and package
+% tocbasic
+% scrkernel-typearea.dtx
+% - KOMA-Script typearea part of the classes and package
+% scrkernel-version.dtx
+% - KOMA-Script version part of the classes and packages
+% scrkernel-circularletters.dtx
+% - KOMA-Script circular letter part
+% scrkernel-compatibility.dtx
+% - KOMA-Script compatibility modes of the classes
+% scrkernel-letterclassoptions.dtx
+% - KOMA-Script letter class option part
+% japanlco.dtx - KOMA-Script letter class options for Japanese letters
+% scrkernel-notepaper.dtx
+% - KOMA-Script note paper part of scrlttr2
+% scrkernel-pseudolengths.dtx
+% - KOMA-Script pseudo length part of scrlttr2
+% scrkernel-variables.dtx
+% - KOMA-Script variables part of scrlttr2
+% scrlogo.dtx - KOMA-Script logo for all classes and packages
+% scrhack.dtx - KOMA-Script hacking other packages
+%
+% scrextend.dtx - KOMA-Script extensions package
+%
+% tocbasic.dtx - KOMA-Script toc-file package
+%
+% scrpage.dtx - KOMA-Script page style packages
+%
+% scrlfile.dtx - KOMA-Script load file package
+%
+% scrwfile.dtx - KOMA-Script write file package
+%
+% scraddr.dtx - KOMA-Script scraddr package
+%
+% scrtime.dtx - KOMA-Script time and date package
+%
+% scrlayer.dtx - KOMA-Script layer package
+% scrlayer-scrpage.dtx
+% - KOMA-Script page style package using layers
+% scrlayer-notecolumn.dtx
+% - KOMA-Script note column package using layers
+%
+%
+% Installation scripts for the various parts:
+% -------------------------------------------
+%
+% scrdocstrip.tex - Extension of docstrip.tex
+% scrmain.ins - Installation script for the main classes and packages
+% scrstrip.inc - Include file at the begin of all installation scripts
+% scrstrop.inc - incldue file at the end of all installation scripts
+%
+% ============================================================================
+%
+% The following is a machine readable list of all needed files.
+% The directories of the files scrguien.pdf, scrguien.html, scrguide.pdf and
+% scrguide.html may be changed.
+%
+README
+manifest.txt
+INSTALL.txt
+INSTALLD.txt
+lppl.txt
+lppl-de.txt
+
+scrsource.tex
+
+komabug.tex
+
+doc/Makefile
+doc/Makefile.guide
+doc/Makefile.latexinit
+doc/guide.tex
+doc/guide.bib
+doc/plength.dtx
+doc/scrguide.cls
+doc/scrguide.gst
+doc/scrguide.ist
+doc/linkalias.tex
+
+doc/scrguien.pdf
+doc/scrguien.html
+
+doc/scrguide.pdf
+doc/scrguide.html
+
+doc/koma-script.html
+doc/komascript.html
+doc/komascr.html
+doc/scraddr.html
+doc/scrartcl.html
+doc/scrbook.html
+doc/scrdate.html
+doc/scrlfile.html
+doc/scrwfile.html
+doc/scrlttr2.html
+doc/scrletter.html
+doc/scrpage2.tex
+doc/scrpage2.pdf
+doc/scrreprt.html
+doc/scrtime.html
+doc/typearea.html
+doc/tocbasic.html
+doc/scrbase.html
+
+doc/bin/genhtmlidx.pl
+doc/bin/genindex.pl
+
+doc/english/adrconvnote.tex
+doc/english/authorpart.tex
+doc/english/common-options.tex
+doc/english/common-compatibility.tex
+doc/english/common-draftmode.tex
+doc/english/common-typearea.tex
+doc/english/common-fontsize.tex
+doc/english/common-textmarkup.tex
+doc/english/common-parmarkup.tex
+doc/english/common-oddorevenpage.tex
+doc/english/common-interleafpage.tex
+doc/english/common-footnotes.tex
+doc/english/common-lists.tex
+doc/english/common-marginpar.tex
+doc/english/common-titles.tex
+doc/english/common-dictum.tex
+doc/english/common-headfootheight.tex
+doc/english/common-pagestylemanipulation.tex
+doc/english/expertpart.tex
+doc/english/guide-english.tex
+doc/english/htmlsetup
+doc/english/introduction.tex
+doc/english/japanlco.tex
+doc/english/preface.tex
+doc/english/scraddr.tex
+doc/english/scrbase.tex
+doc/english/scrbookreportarticle.tex
+doc/english/scrbookreportarticle-experts.tex
+doc/english/scrdatetime.tex
+doc/english/scrhack.tex
+doc/english/scrlfile.tex
+doc/english/scrwfile.tex
+doc/english/scrlttr2.tex
+doc/english/scrlttr2-experts.tex
+doc/english/scrlttr2examples.dtx
+doc/english/scrlayer-scrpage.tex
+doc/english/scrlayer-scrpage-experts.tex
+doc/english/scrlayer.tex
+doc/english/scrlayer-notecolumn.tex
+doc/english/scrlayer-notecolumn-example.tex
+doc/english/tocbasic.tex
+doc/english/scrjura.tex
+doc/english/scrjuraexample.tex
+doc/english/typearea.tex
+doc/english/typearea-experts.tex
+
+doc/ngerman/adrconvnote.tex
+doc/ngerman/authorpart.tex
+doc/ngerman/common-options.tex
+doc/ngerman/common-compatibility.tex
+doc/ngerman/common-draftmode.tex
+doc/ngerman/common-typearea.tex
+doc/ngerman/common-fontsize.tex
+doc/ngerman/common-textmarkup.tex
+doc/ngerman/common-parmarkup.tex
+doc/ngerman/common-oddorevenpage.tex
+doc/ngerman/common-interleafpage.tex
+doc/ngerman/common-footnotes.tex
+doc/ngerman/common-lists.tex
+doc/ngerman/common-marginpar.tex
+doc/ngerman/common-titles.tex
+doc/ngerman/common-dictum.tex
+doc/ngerman/common-headfootheight.tex
+doc/ngerman/common-pagestylemanipulation.tex
+doc/ngerman/expertpart.tex
+doc/ngerman/guide-ngerman.tex
+doc/ngerman/htmlsetup
+doc/ngerman/introduction.tex
+doc/ngerman/preface.tex
+doc/ngerman/scraddr.tex
+doc/ngerman/scrbase.tex
+doc/ngerman/scrbookreportarticle.tex
+doc/ngerman/scrbookreportarticle-experts.tex
+doc/ngerman/scrdatetime.tex
+doc/ngerman/scrhack.tex
+doc/ngerman/scrlfile.tex
+doc/ngerman/scrwfile.tex
+doc/ngerman/scrlttr2.tex
+doc/ngerman/scrlttr2-experts.tex
+doc/ngerman/scrlttr2examples.dtx
+doc/ngerman/scrlayer-scrpage.tex
+doc/ngerman/scrlayer-scrpage-experts.tex
+doc/ngerman/scrlayer.tex
+doc/ngerman/scrlayer-notecolumn.tex
+doc/ngerman/scrlayer-notecolumn-example.tex
+doc/ngerman/tocbasic.tex
+doc/ngerman/scrjura.tex
+doc/ngerman/scrjuraexample.tex
+doc/ngerman/typearea.tex
+doc/ngerman/typearea-experts.tex
+
+Makefile
+Makefile.baseinit
+Makefile.baserules
+
+scrdoc.dtx
+scrkernel-basics.dtx
+scrkernel-bibliography.dtx
+scrkernel-floats.dtx
+scrkernel-fonts.dtx
+scrkernel-footnotes.dtx
+scrkernel-index.dtx
+scrkernel-language.dtx
+scrkernel-listsof.dtx
+scrkernel-listsandtabulars.dtx
+scrkernel-miscellaneous.dtx
+scrkernel-pagestyles.dtx
+scrkernel-paragraphs.dtx
+scrkernel-sections.dtx
+scrkernel-title.dtx
+scrkernel-tocstyle.dtx
+scrkernel-typearea.dtx
+scrkernel-version.dtx
+scrkernel-circularletters.dtx
+scrkernel-compatibility.dtx
+scrkernel-letterclassoptions.dtx
+japanlco.dtx
+scrkernel-notepaper.dtx
+scrkernel-pseudolengths.dtx
+scrkernel-variables.dtx
+scrlogo.dtx
+scrhack.dtx
+
+scrextend.dtx
+
+tocbasic.dtx
+
+scrpage.dtx
+
+scrlfile.dtx
+
+scrwfile.dtx
+
+scraddr.dtx
+
+scrtime.dtx
+
+scrlayer.dtx
+scrlayer-scrpage.dtx
+scrlayer-notecolumn.dtx
+
+scrdocstrip.tex
+scrmain.ins
+scrstrip.inc
+scrstrop.inc
diff --git a/macros/latex/contrib/koma-script/doc/scraddr.html b/macros/latex/contrib/koma-script/doc/scraddr.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scraddr.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrartcl.html b/macros/latex/contrib/koma-script/doc/scrartcl.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrartcl.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrbase.html b/macros/latex/contrib/koma-script/doc/scrbase.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrbase.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrbook.html b/macros/latex/contrib/koma-script/doc/scrbook.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrbook.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrdate.html b/macros/latex/contrib/koma-script/doc/scrdate.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrdate.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrextend.html b/macros/latex/contrib/koma-script/doc/scrextend.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrextend.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrguide.html b/macros/latex/contrib/koma-script/doc/scrguide.html
new file mode 100644
index 0000000000..d02b3755e1
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrguide.html
@@ -0,0 +1,997 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head><title>Index</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+</head>
+<body>
+<h1>Index der KOMA-Script-Anleitung</h1>
+<p>Dies ist ein Index der in KOMA-Script definierten Elemente. Dieser Index bezieht sich auf die <a href="scrguide.pdf">KOMA-Script-Anleitung</a>. Zur besseren Ãœbersicht ist der Index in mehrere Funktionsgruppen unterteilt:</p>
+<ul>
+<li><a href="#option">Optionen</a></li><li><a href="#macro">Anweisungen</a></li><li><a href="#environment">Umgebungen</a></li><li><a href="#length">Längen</a></li><li><a href="#plength">Pseudolängen</a></li><li><a href="#variable">Variablen</a></li><li><a href="#pagestyle">Seitenstile</a></li><li><a href="#counter">Zähler</a></li><li><a href="#floatstyle">Stile für das float-Paket</a></li></ul>
+<h2><a name="option">Optionen</a></h2>
+<ul>
+<li><a name="option.12h"></a><a href="#option.12h">12h</a> --&gt; <a href="scrguide.pdf#desc:scrtime.option.12h">287</a></li>
+<li><a name="option.BCOR"></a><a href="#option.BCOR">BCOR</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.BCOR">34</a></li>
+<li><a name="option.DIV"></a><a href="#option.DIV">DIV</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.DIV">35</a></li>
+<li><a name="option.abstract"></a><a href="#option.abstract">abstract</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.abstract">75</a></li>
+<li><a name="option.addrfield"></a><a href="#option.addrfield">addrfield</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.addrfield">208</a></li>
+<li><a name="option.adrFreeIVempty"></a><a href="#option.adrFreeIVempty">adrFreeIVempty</a> --&gt; <a href="scrguide.pdf#desc:scraddr.option.adrFreeIVempty">291</a></li>
+<li><a name="option.adrFreeIVshow"></a><a href="#option.adrFreeIVshow">adrFreeIVshow</a> --&gt; <a href="scrguide.pdf#desc:scraddr.option.adrFreeIVshow">291</a></li>
+<li><a name="option.adrFreeIVstop"></a><a href="#option.adrFreeIVstop">adrFreeIVstop</a> --&gt; <a href="scrguide.pdf#desc:scraddr.option.adrFreeIVstop">291</a></li>
+<li><a name="option.adrFreeIVwarn"></a><a href="#option.adrFreeIVwarn">adrFreeIVwarn</a> --&gt; <a href="scrguide.pdf#desc:scraddr.option.adrFreeIVwarn">291</a></li>
+<li><a name="option.appendixprefix"></a><a href="#option.appendixprefix">appendixprefix</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.appendixprefix">102</a></li>
+<li><a name="option.areasetadvanced"></a><a href="#option.areasetadvanced">areasetadvanced</a> --&gt; <a href="scrguide.pdf#desc:typearea-experts.option.areasetadvanced">490</a></li>
+<li><a name="option.autoclearnotecolumns"></a><a href="#option.autoclearnotecolumns">autoclearnotecolumns</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-notecolumn.option.autoclearnotecolumns">487</a></li>
+<li><a name="option.autoenlargeheadfoot"></a><a href="#option.autoenlargeheadfoot">autoenlargeheadfoot</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.autoenlargeheadfoot">254</a></li>
+<li><a name="option.automark"></a><a href="#option.automark">automark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.automark">271</a>, <a href="scrguide.pdf#desc:scrlayer.option.automark">455</a></li>
+<li><a name="option.autooneside"></a><a href="#option.autooneside">autooneside</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.autooneside">271</a>, <a href="scrguide.pdf#desc:scrlayer.option.autooneside">455</a></li>
+<li><a name="option.autoremoveinterfaces"></a><a href="#option.autoremoveinterfaces">autoremoveinterfaces</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.autoremoveinterfaces">462</a></li>
+<li><a name="option.backaddress"></a><a href="#option.backaddress">backaddress</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.backaddress">208</a></li>
+<li><a name="option.bibliography"></a><a href="#option.bibliography">bibliography</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.bibliography">159</a></li>
+<li><a name="option.captions"></a><a href="#option.captions">captions</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.captions">137</a></li>
+<li><a name="option.chapteratlists"></a><a href="#option.chapteratlists">chapteratlists</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.chapteratlists">106</a></li>
+<li><a name="option.chapterentrydots"></a><a href="#option.chapterentrydots">chapterentrydots</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.chapterentrydots">79</a></li>
+<li><a name="option.chapterprefix"></a><a href="#option.chapterprefix">chapterprefix</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.chapterprefix">102</a></li>
+<li><a name="option.clausemark"></a><a href="#option.clausemark">clausemark</a> --&gt; <a href="scrguide.pdf#desc:scrjura.option.clausemark">322</a></li>
+<li><a name="option.cleardoublepage"></a><a href="#option.cleardoublepage">cleardoublepage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.cleardoublepage">230</a>, <a href="scrguide.pdf#desc:scrextend.option.cleardoublepage">306</a>, <a href="scrguide.pdf#desc:maincls.option.cleardoublepage">92</a></li>
+<li><a name="option.clines"></a><a href="#option.clines">clines</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.clines">280</a></li>
+<li><a name="option.contract"></a><a href="#option.contract">contract</a> --&gt; <a href="scrguide.pdf#desc:scrjura.option.contract">320</a></li>
+<li><a name="option.deactivatepagestylelayers"></a><a href="#option.deactivatepagestylelayers">deactivatepagestylelayers</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.deactivatepagestylelayers">450</a></li>
+<li><a name="option.draft"></a><a href="#option.draft">draft</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.draft">173</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.option.draft">272</a>, <a href="scrguide.pdf#desc:scrextend.option.draft">296</a>, <a href="scrguide.pdf#desc:scrlayer.option.draft">456</a>, <a href="scrguide.pdf#desc:maincls.option.draft">59</a></li>
+<li><a name="option.enlargefirstpage"></a><a href="#option.enlargefirstpage">enlargefirstpage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.enlargefirstpage">194</a></li>
+<li><a name="option.extendedfeature"></a><a href="#option.extendedfeature">extendedfeature</a> --&gt; <a href="scrguide.pdf#desc:scrextend.option.extendedfeature">296</a></li>
+<li><a name="option.firstfoot"></a><a href="#option.firstfoot">firstfoot</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.firstfoot">221</a></li>
+<li><a name="option.firsthead"></a><a href="#option.firsthead">firsthead</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.firsthead">195</a></li>
+<li><a name="option.fleqn"></a><a href="#option.fleqn">fleqn</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.fleqn">136</a></li>
+<li><a name="option.foldmarks"></a><a href="#option.foldmarks">foldmarks</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.foldmarks">192</a></li>
+<li><a name="option.fontsize"></a><a href="#option.fontsize">fontsize</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.fontsize">184</a>, <a href="scrguide.pdf#desc:scrextend.option.fontsize">297</a>, <a href="scrguide.pdf#desc:maincls.option.fontsize">61</a></li>
+<li><a name="option.footbotline"></a><a href="#option.footbotline">footbotline</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.footbotline">278</a></li>
+<li><a name="option.footheight"></a><a href="#option.footheight">footheight</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.footheight">47</a></li>
+<li><a name="option.footinclude"></a><a href="#option.footinclude">footinclude</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.footinclude">43</a></li>
+<li><a name="option.footlines"></a><a href="#option.footlines">footlines</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.footlines">47</a></li>
+<li><a name="option.footnotes"></a><a href="#option.footnotes">footnotes</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.footnotes">231</a>, <a href="scrguide.pdf#desc:scrextend.option.footnotes">308</a>, <a href="scrguide.pdf#desc:maincls.option.footnotes">95</a></li>
+<li><a name="option.footsepline"></a><a href="#option.footsepline">footsepline</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.footsepline">225</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.option.footsepline">278</a>, <a href="scrguide.pdf#desc:maincls.option.footsepline">85</a></li>
+<li><a name="option.footwidth"></a><a href="#option.footwidth">footwidth</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.footwidth">277</a></li>
+<li><a name="option.forceoverwrite"></a><a href="#option.forceoverwrite">forceoverwrite</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.forceoverwrite">462</a></li>
+<li><a name="option.fromalign"></a><a href="#option.fromalign">fromalign</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.fromalign">195</a></li>
+<li><a name="option.fromemail"></a><a href="#option.fromemail">fromemail</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.fromemail">201</a></li>
+<li><a name="option.fromfax"></a><a href="#option.fromfax">fromfax</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.fromfax">201</a></li>
+<li><a name="option.fromlogo"></a><a href="#option.fromlogo">fromlogo</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.fromlogo">205</a></li>
+<li><a name="option.frommobilephone"></a><a href="#option.frommobilephone">frommobilephone</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.frommobilephone">201</a></li>
+<li><a name="option.fromphone"></a><a href="#option.fromphone">fromphone</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.fromphone">201</a></li>
+<li><a name="option.fromrule"></a><a href="#option.fromrule">fromrule</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.fromrule">196</a></li>
+<li><a name="option.fromurl"></a><a href="#option.fromurl">fromurl</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.fromurl">201</a></li>
+<li><a name="option.headheight"></a><a href="#option.headheight">headheight</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.headheight">46</a></li>
+<li><a name="option.headinclude"></a><a href="#option.headinclude">headinclude</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.headinclude">43</a></li>
+<li><a name="option.headings"></a><a href="#option.headings">headings</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.headings">102</a></li>
+<li><a name="option.headlines"></a><a href="#option.headlines">headlines</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.headlines">46</a></li>
+<li><a name="option.headsepline"></a><a href="#option.headsepline">headsepline</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.headsepline">225</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.option.headsepline">278</a>, <a href="scrguide.pdf#desc:maincls.option.headsepline">85</a></li>
+<li><a name="option.headtopline"></a><a href="#option.headtopline">headtopline</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.headtopline">278</a></li>
+<li><a name="option.headwidth"></a><a href="#option.headwidth">headwidth</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.headwidth">277</a></li>
+<li><a name="option.hmode"></a><a href="#option.hmode">hmode</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.option.hmode">472</a></li>
+<li><a name="option.ilines"></a><a href="#option.ilines">ilines</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.ilines">280</a></li>
+<li><a name="option.index"></a><a href="#option.index">index</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.index">162</a></li>
+<li><a name="option.internalonly"></a><a href="#option.internalonly">internalonly</a> --&gt; <a href="scrguide.pdf#desc:scrbase.option.internalonly">357</a></li>
+<li><a name="option.juratitlepagebreak"></a><a href="#option.juratitlepagebreak">juratitlepagebreak</a> --&gt; <a href="scrguide.pdf#desc:scrjura.option.juratitlepagebreak">322</a></li>
+<li><a name="option.juratocindent"></a><a href="#option.juratocindent">juratocindent</a> --&gt; <a href="scrguide.pdf#desc:scrjura.option.juratocindent">319</a></li>
+<li><a name="option.juratocnumberwidth"></a><a href="#option.juratocnumberwidth">juratocnumberwidth</a> --&gt; <a href="scrguide.pdf#desc:scrjura.option.juratocnumberwidth">319</a></li>
+<li><a name="option.juratotoc"></a><a href="#option.juratotoc">juratotoc</a> --&gt; <a href="scrguide.pdf#desc:scrjura.option.juratotoc">319</a></li>
+<li><a name="option.leqno"></a><a href="#option.leqno">leqno</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.leqno">136</a></li>
+<li><a name="option.listof"></a><a href="#option.listof">listof</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.listof">153</a></li>
+<li><a name="option.locfield"></a><a href="#option.locfield">locfield</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.locfield">211</a></li>
+<li><a name="option.manualmark"></a><a href="#option.manualmark">manualmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.manualmark">271</a>, <a href="scrguide.pdf#desc:scrlayer.option.manualmark">455</a></li>
+<li><a name="option.markcase"></a><a href="#option.markcase">markcase</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.markcase">272</a>, <a href="scrguide.pdf#desc:scrlayer.option.markcase">456</a></li>
+<li><a name="option.mpinclude"></a><a href="#option.mpinclude">mpinclude</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.mpinclude">45</a></li>
+<li><a name="option.numbers"></a><a href="#option.numbers">numbers</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.numbers">105</a></li>
+<li><a name="option.numericaldate"></a><a href="#option.numericaldate">numericaldate</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.numericaldate">213</a></li>
+<li><a name="option.olines"></a><a href="#option.olines">olines</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.olines">280</a></li>
+<li><a name="option.onpsbackground"></a><a href="#option.onpsbackground">onpsbackground</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.onpsbackground">449</a></li>
+<li><a name="option.onpsevenpage"></a><a href="#option.onpsevenpage">onpsevenpage</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.onpsevenpage">449</a></li>
+<li><a name="option.onpsfloatpage"></a><a href="#option.onpsfloatpage">onpsfloatpage</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.onpsfloatpage">449</a></li>
+<li><a name="option.onpsforeground"></a><a href="#option.onpsforeground">onpsforeground</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.onpsforeground">449</a></li>
+<li><a name="option.onpsinit"></a><a href="#option.onpsinit">onpsinit</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.onpsinit">449</a></li>
+<li><a name="option.onpsnonfloatpage"></a><a href="#option.onpsnonfloatpage">onpsnonfloatpage</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.onpsnonfloatpage">449</a></li>
+<li><a name="option.onpsoddpage"></a><a href="#option.onpsoddpage">onpsoddpage</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.onpsoddpage">449</a></li>
+<li><a name="option.onpsoneside"></a><a href="#option.onpsoneside">onpsoneside</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.onpsoneside">449</a></li>
+<li><a name="option.onpsselect"></a><a href="#option.onpsselect">onpsselect</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.onpsselect">449</a></li>
+<li><a name="option.onpstwoside"></a><a href="#option.onpstwoside">onpstwoside</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.onpstwoside">449</a></li>
+<li><a name="option.open"></a><a href="#option.open">open</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.open">101</a></li>
+<li><a name="option.origlongtable"></a><a href="#option.origlongtable">origlongtable</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.origlongtable">153</a></li>
+<li><a name="option.overfullrule"></a><a href="#option.overfullrule">overfullrule</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.overfullrule">173</a>, <a href="scrguide.pdf#desc:scrextend.option.overfullrule">296</a>, <a href="scrguide.pdf#desc:maincls.option.overfullrule">59</a></li>
+<li><a name="option.pagenumber"></a><a href="#option.pagenumber">pagenumber</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.pagenumber">226</a></li>
+<li><a name="option.pagesize"></a><a href="#option.pagesize">pagesize</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.pagesize">51</a></li>
+<li><a name="option.pagestyleset"></a><a href="#option.pagestyleset">pagestyleset</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.pagestyleset">267</a></li>
+<li><a name="option.paper"></a><a href="#option.paper">paper</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.paper">50</a></li>
+<li><a name="option.parnumber"></a><a href="#option.parnumber">parnumber</a> --&gt; <a href="scrguide.pdf#desc:scrjura.option.parnumber">323</a></li>
+<li><a name="option.parskip"></a><a href="#option.parskip">parskip</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.parskip">223</a>, <a href="scrguide.pdf#desc:maincls.option.parskip">82</a></li>
+<li><a name="option.plainfootbotline"></a><a href="#option.plainfootbotline">plainfootbotline</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.plainfootbotline">280</a></li>
+<li><a name="option.plainfootsepline"></a><a href="#option.plainfootsepline">plainfootsepline</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.plainfootsepline">280</a></li>
+<li><a name="option.plainheadsepline"></a><a href="#option.plainheadsepline">plainheadsepline</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.plainheadsepline">280</a></li>
+<li><a name="option.plainheadtopline"></a><a href="#option.plainheadtopline">plainheadtopline</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.option.plainheadtopline">280</a></li>
+<li><a name="option.priority"></a><a href="#option.priority">priority</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.priority">208</a></li>
+<li><a name="option.ref"></a><a href="#option.ref">ref</a> --&gt; <a href="scrguide.pdf#desc:scrjura.option.ref">329</a></li>
+<li><a name="option.refline"></a><a href="#option.refline">refline</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.refline">214</a></li>
+<li><a name="option.sectionentrydots"></a><a href="#option.sectionentrydots">sectionentrydots</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.sectionentrydots">79</a></li>
+<li><a name="option.singlespacing"></a><a href="#option.singlespacing">singlespacing</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.option.singlespacing">450</a></li>
+<li><a name="option.subject"></a><a href="#option.subject">subject</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.subject">218</a></li>
+<li><a name="option.symbolicnames"></a><a href="#option.symbolicnames">symbolicnames</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.symbolicnames">201</a></li>
+<li><a name="option.titlepage"></a><a href="#option.titlepage">titlepage</a> --&gt; <a href="scrguide.pdf#desc:scrextend.option.titlepage">300</a>, <a href="scrguide.pdf#desc:maincls.option.titlepage">68</a></li>
+<li><a name="option.toc"></a><a href="#option.toc">toc</a> --&gt; <a href="scrguide.pdf#desc:maincls.option.toc">76</a></li>
+<li><a name="option.twocolumn"></a><a href="#option.twocolumn">twocolumn</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.twocolumn">43</a></li>
+<li><a name="option.twoside"></a><a href="#option.twoside">twoside</a> --&gt; <a href="scrguide.pdf#desc:typearea.option.twoside">42</a></li>
+<li><a name="option.usegeometry"></a><a href="#option.usegeometry">usegeometry</a> --&gt; <a href="scrguide.pdf#desc:typearea-experts.option.usegeometry">489</a></li>
+<li><a name="option.version"></a><a href="#option.version">version</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.option.version">172</a>, <a href="scrguide.pdf#desc:scrextend.option.version">295</a>, <a href="scrguide.pdf#desc:typearea.option.version">33</a>, <a href="scrguide.pdf#desc:maincls.option.version">58</a></li>
+</ul>
+<h2><a name="macro">Anweisungen</a></h2>
+<ul>
+<li><a name="cmd.@fontsizefilebase"></a><a href="#cmd.@fontsizefilebase">\@fontsizefilebase</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.@fontsizefilebase">495</a></li>
+<li><a name="cmd.@mkboth"></a><a href="#cmd.@mkboth">\@mkboth</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.@mkboth">460</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.@mkboth">467</a></li>
+<li><a name="cmd.@mkdouble"></a><a href="#cmd.@mkdouble">\@mkdouble</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.@mkdouble">460</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.@mkdouble">467</a></li>
+<li><a name="cmd.@mkleft"></a><a href="#cmd.@mkleft">\@mkleft</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.@mkleft">460</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.@mkleft">467</a></li>
+<li><a name="cmd.@mkright"></a><a href="#cmd.@mkright">\@mkright</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.@mkright">460</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.@mkright">467</a></li>
+<li><a name="cmd.@openbib@code"></a><a href="#cmd.@openbib@code">\@openbib@code</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.@openbib@code">519</a></li>
+<li><a name="cmd.AddLayersAtBeginOfPageStyle"></a><a href="#cmd.AddLayersAtBeginOfPageStyle">\AddLayersAtBeginOfPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.AddLayersAtBeginOfPageStyle">451</a></li>
+<li><a name="cmd.AddLayersAtEndOfPageStyle"></a><a href="#cmd.AddLayersAtEndOfPageStyle">\AddLayersAtEndOfPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.AddLayersAtEndOfPageStyle">451</a></li>
+<li><a name="cmd.AddLayersToPageStyle"></a><a href="#cmd.AddLayersToPageStyle">\AddLayersToPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.AddLayersToPageStyle">451</a></li>
+<li><a name="cmd.AddLayersToPageStyleAfterLayer"></a><a href="#cmd.AddLayersToPageStyleAfterLayer">\AddLayersToPageStyleAfterLayer</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.AddLayersToPageStyleAfterLayer">451</a></li>
+<li><a name="cmd.AddLayersToPageStyleBeforeLayer"></a><a href="#cmd.AddLayersToPageStyleBeforeLayer">\AddLayersToPageStyleBeforeLayer</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.AddLayersToPageStyleBeforeLayer">451</a></li>
+<li><a name="cmd.AddToLayerPageStyleOptions"></a><a href="#cmd.AddToLayerPageStyleOptions">\AddToLayerPageStyleOptions</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.AddToLayerPageStyleOptions">452</a></li>
+<li><a name="cmd.Address"></a><a href="#cmd.Address">\Address</a> --&gt; <a href="scrguide.pdf#desc:scraddr.cmd.Address">289</a></li>
+<li><a name="cmd.AfterAtEndOfClass"></a><a href="#cmd.AfterAtEndOfClass">\AfterAtEndOfClass</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.AfterAtEndOfClass">370</a></li>
+<li><a name="cmd.AfterAtEndOfPackage"></a><a href="#cmd.AfterAtEndOfPackage">\AfterAtEndOfPackage</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.AfterAtEndOfPackage">370</a></li>
+<li><a name="cmd.AfterBibliographyPreamble"></a><a href="#cmd.AfterBibliographyPreamble">\AfterBibliographyPreamble</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.AfterBibliographyPreamble">161</a></li>
+<li><a name="cmd.AfterCalculatingTypearea*"></a><a href="#cmd.AfterCalculatingTypearea*">\AfterCalculatingTypearea*</a> --&gt; <a href="scrguide.pdf#desc:typearea-experts.cmd.AfterCalculatingTypearea*">492</a></li>
+<li><a name="cmd.AfterCalculatingTypearea"></a><a href="#cmd.AfterCalculatingTypearea">\AfterCalculatingTypearea</a> --&gt; <a href="scrguide.pdf#desc:typearea-experts.cmd.AfterCalculatingTypearea">492</a></li>
+<li><a name="cmd.AfterClass!"></a><a href="#cmd.AfterClass!">\AfterClass!</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.AfterClass!">370</a></li>
+<li><a name="cmd.AfterClass*"></a><a href="#cmd.AfterClass*">\AfterClass*</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.AfterClass*">370</a></li>
+<li><a name="cmd.AfterClass+"></a><a href="#cmd.AfterClass+">\AfterClass+</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.AfterClass+">370</a></li>
+<li><a name="cmd.AfterClass"></a><a href="#cmd.AfterClass">\AfterClass</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.AfterClass">370</a></li>
+<li><a name="cmd.AfterFile"></a><a href="#cmd.AfterFile">\AfterFile</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.AfterFile">369</a></li>
+<li><a name="cmd.AfterPackage!"></a><a href="#cmd.AfterPackage!">\AfterPackage!</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.AfterPackage!">370</a></li>
+<li><a name="cmd.AfterPackage*"></a><a href="#cmd.AfterPackage*">\AfterPackage*</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.AfterPackage*">370</a></li>
+<li><a name="cmd.AfterPackage+"></a><a href="#cmd.AfterPackage+">\AfterPackage+</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.AfterPackage+">370</a></li>
+<li><a name="cmd.AfterPackage"></a><a href="#cmd.AfterPackage">\AfterPackage</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.AfterPackage">370</a></li>
+<li><a name="cmd.AfterReadingMainAux"></a><a href="#cmd.AfterReadingMainAux">\AfterReadingMainAux</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.AfterReadingMainAux">372</a></li>
+<li><a name="cmd.AfterRestoreareas*"></a><a href="#cmd.AfterRestoreareas*">\AfterRestoreareas*</a> --&gt; <a href="scrguide.pdf#desc:typearea-experts.cmd.AfterRestoreareas*">491</a></li>
+<li><a name="cmd.AfterRestoreareas"></a><a href="#cmd.AfterRestoreareas">\AfterRestoreareas</a> --&gt; <a href="scrguide.pdf#desc:typearea-experts.cmd.AfterRestoreareas">491</a></li>
+<li><a name="cmd.AfterSelectAnyPageStyle"></a><a href="#cmd.AfterSelectAnyPageStyle">\AfterSelectAnyPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.AfterSelectAnyPageStyle">444</a></li>
+<li><a name="cmd.AfterSettingArea*"></a><a href="#cmd.AfterSettingArea*">\AfterSettingArea*</a> --&gt; <a href="scrguide.pdf#desc:typearea-experts.cmd.AfterSettingArea*">492</a></li>
+<li><a name="cmd.AfterSettingArea"></a><a href="#cmd.AfterSettingArea">\AfterSettingArea</a> --&gt; <a href="scrguide.pdf#desc:typearea-experts.cmd.AfterSettingArea">492</a></li>
+<li><a name="cmd.AfterStartingTOC"></a><a href="#cmd.AfterStartingTOC">\AfterStartingTOC</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.AfterStartingTOC">392</a></li>
+<li><a name="cmd.AfterTOCHead"></a><a href="#cmd.AfterTOCHead">\AfterTOCHead</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.AfterTOCHead">392</a></li>
+<li><a name="cmd.At@startsection"></a><a href="#cmd.At@startsection">\At@startsection</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.At@startsection">517</a></li>
+<li><a name="cmd.AtAddToTocList"></a><a href="#cmd.AtAddToTocList">\AtAddToTocList</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.AtAddToTocList">387</a></li>
+<li><a name="cmd.AtBeginLetter"></a><a href="#cmd.AtBeginLetter">\AtBeginLetter</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.AtBeginLetter">177</a></li>
+<li><a name="cmd.AtEndBibliography"></a><a href="#cmd.AtEndBibliography">\AtEndBibliography</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.AtEndBibliography">161</a></li>
+<li><a name="cmd.AtEndLetter"></a><a href="#cmd.AtEndLetter">\AtEndLetter</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.AtEndLetter">177</a></li>
+<li><a name="cmd.AtEndOfFamilyOptions*"></a><a href="#cmd.AtEndOfFamilyOptions*">\AtEndOfFamilyOptions*</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.AtEndOfFamilyOptions*">349</a></li>
+<li><a name="cmd.AtEndOfFamilyOptions"></a><a href="#cmd.AtEndOfFamilyOptions">\AtEndOfFamilyOptions</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.AtEndOfFamilyOptions">349</a></li>
+<li><a name="cmd.Before@sect"></a><a href="#cmd.Before@sect">\Before@sect</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.Before@sect">517</a></li>
+<li><a name="cmd.Before@ssect"></a><a href="#cmd.Before@ssect">\Before@ssect</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.Before@ssect">517</a></li>
+<li><a name="cmd.BeforeClass"></a><a href="#cmd.BeforeClass">\BeforeClass</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.BeforeClass">370</a></li>
+<li><a name="cmd.BeforeClosingMainAux"></a><a href="#cmd.BeforeClosingMainAux">\BeforeClosingMainAux</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.BeforeClosingMainAux">372</a></li>
+<li><a name="cmd.BeforeFamilyProcessOptions"></a><a href="#cmd.BeforeFamilyProcessOptions">\BeforeFamilyProcessOptions</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.BeforeFamilyProcessOptions">345</a></li>
+<li><a name="cmd.BeforeFile"></a><a href="#cmd.BeforeFile">\BeforeFile</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.BeforeFile">369</a></li>
+<li><a name="cmd.BeforePackage"></a><a href="#cmd.BeforePackage">\BeforePackage</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.BeforePackage">370</a></li>
+<li><a name="cmd.BeforeRestoreareas*"></a><a href="#cmd.BeforeRestoreareas*">\BeforeRestoreareas*</a> --&gt; <a href="scrguide.pdf#desc:typearea-experts.cmd.BeforeRestoreareas*">491</a></li>
+<li><a name="cmd.BeforeRestoreareas"></a><a href="#cmd.BeforeRestoreareas">\BeforeRestoreareas</a> --&gt; <a href="scrguide.pdf#desc:typearea-experts.cmd.BeforeRestoreareas">491</a></li>
+<li><a name="cmd.BeforeSelectAnyPageStyle"></a><a href="#cmd.BeforeSelectAnyPageStyle">\BeforeSelectAnyPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.BeforeSelectAnyPageStyle">444</a></li>
+<li><a name="cmd.BeforeStartingTOC"></a><a href="#cmd.BeforeStartingTOC">\BeforeStartingTOC</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.BeforeStartingTOC">392</a></li>
+<li><a name="cmd.BeforeTOCHead"></a><a href="#cmd.BeforeTOCHead">\BeforeTOCHead</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.BeforeTOCHead">392</a></li>
+<li><a name="cmd.BreakBibliography"></a><a href="#cmd.BreakBibliography">\BreakBibliography</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.BreakBibliography">161</a></li>
+<li><a name="cmd.CenturyPart"></a><a href="#cmd.CenturyPart">\CenturyPart</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.CenturyPart">281</a></li>
+<li><a name="cmd.ClassInfoNoLine"></a><a href="#cmd.ClassInfoNoLine">\ClassInfoNoLine</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ClassInfoNoLine">366</a></li>
+<li><a name="cmd.ClassName"></a><a href="#cmd.ClassName">\ClassName</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.ClassName">493</a></li>
+<li><a name="cmd.Clause"></a><a href="#cmd.Clause">\Clause</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.Clause">320</a></li>
+<li><a name="cmd.Clauseformat"></a><a href="#cmd.Clauseformat">\Clauseformat</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.Clauseformat">322</a></li>
+<li><a name="cmd.CloneTOCEntryStyle"></a><a href="#cmd.CloneTOCEntryStyle">\CloneTOCEntryStyle</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.CloneTOCEntryStyle">407</a></li>
+<li><a name="cmd.Comment"></a><a href="#cmd.Comment">\Comment</a> --&gt; <a href="scrguide.pdf#desc:scraddr.cmd.Comment">289</a></li>
+<li><a name="cmd.DayName"></a><a href="#cmd.DayName">\DayName</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.DayName">282</a></li>
+<li><a name="cmd.DayNameByNumber"></a><a href="#cmd.DayNameByNumber">\DayNameByNumber</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.DayNameByNumber">282</a></li>
+<li><a name="cmd.DayNumber"></a><a href="#cmd.DayNumber">\DayNumber</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.DayNumber">281</a></li>
+<li><a name="cmd.DecadePart"></a><a href="#cmd.DecadePart">\DecadePart</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.DecadePart">281</a></li>
+<li><a name="cmd.DeclareLayer"></a><a href="#cmd.DeclareLayer">\DeclareLayer</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.DeclareLayer">432</a></li>
+<li><a name="cmd.DeclareNewJuraEnvironment"></a><a href="#cmd.DeclareNewJuraEnvironment">\DeclareNewJuraEnvironment</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.DeclareNewJuraEnvironment">330</a></li>
+<li><a name="cmd.DeclareNewLayer"></a><a href="#cmd.DeclareNewLayer">\DeclareNewLayer</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.DeclareNewLayer">432</a></li>
+<li><a name="cmd.DeclareNewNoteColumn"></a><a href="#cmd.DeclareNewNoteColumn">\DeclareNewNoteColumn</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.DeclareNewNoteColumn">478</a></li>
+<li><a name="cmd.DeclareNewPageStyleAlias"></a><a href="#cmd.DeclareNewPageStyleAlias">\DeclareNewPageStyleAlias</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.DeclareNewPageStyleAlias">445</a></li>
+<li><a name="cmd.DeclareNewPageStyleByLayers"></a><a href="#cmd.DeclareNewPageStyleByLayers">\DeclareNewPageStyleByLayers</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.DeclareNewPageStyleByLayers">446</a></li>
+<li><a name="cmd.DeclareNewSectionCommand"></a><a href="#cmd.DeclareNewSectionCommand">\DeclareNewSectionCommand</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.DeclareNewSectionCommand">498</a></li>
+<li><a name="cmd.DeclareNewSectionCommands"></a><a href="#cmd.DeclareNewSectionCommands">\DeclareNewSectionCommands</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.DeclareNewSectionCommands">509</a></li>
+<li><a name="cmd.DeclareNewTOC"></a><a href="#cmd.DeclareNewTOC">\DeclareNewTOC</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.DeclareNewTOC">415</a></li>
+<li><a name="cmd.DeclareNoteColumn"></a><a href="#cmd.DeclareNoteColumn">\DeclareNoteColumn</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.DeclareNoteColumn">478</a></li>
+<li><a name="cmd.DeclarePageStyleAlias"></a><a href="#cmd.DeclarePageStyleAlias">\DeclarePageStyleAlias</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.DeclarePageStyleAlias">445</a></li>
+<li><a name="cmd.DeclarePageStyleByLayers"></a><a href="#cmd.DeclarePageStyleByLayers">\DeclarePageStyleByLayers</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.DeclarePageStyleByLayers">446</a></li>
+<li><a name="cmd.DeclareSectionCommand"></a><a href="#cmd.DeclareSectionCommand">\DeclareSectionCommand</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.DeclareSectionCommand">498</a></li>
+<li><a name="cmd.DeclareSectionCommands"></a><a href="#cmd.DeclareSectionCommands">\DeclareSectionCommands</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.DeclareSectionCommands">509</a></li>
+<li><a name="cmd.DeclareSectionNumberDepth"></a><a href="#cmd.DeclareSectionNumberDepth">\DeclareSectionNumberDepth</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.DeclareSectionNumberDepth">430</a></li>
+<li><a name="cmd.DeclareTOCEntryStyle"></a><a href="#cmd.DeclareTOCEntryStyle">\DeclareTOCEntryStyle</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.DeclareTOCEntryStyle">406</a></li>
+<li><a name="cmd.DeclareTOCStyleEntries"></a><a href="#cmd.DeclareTOCStyleEntries">\DeclareTOCStyleEntries</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.DeclareTOCStyleEntries">397</a></li>
+<li><a name="cmd.DeclareTOCStyleEntry"></a><a href="#cmd.DeclareTOCStyleEntry">\DeclareTOCStyleEntry</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.DeclareTOCStyleEntry">397</a></li>
+<li><a name="cmd.DefineFamily"></a><a href="#cmd.DefineFamily">\DefineFamily</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.DefineFamily">341</a></li>
+<li><a name="cmd.DefineFamilyKey"></a><a href="#cmd.DefineFamilyKey">\DefineFamilyKey</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.DefineFamilyKey">342</a></li>
+<li><a name="cmd.DefineFamilyMember"></a><a href="#cmd.DefineFamilyMember">\DefineFamilyMember</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.DefineFamilyMember">341</a></li>
+<li><a name="cmd.DefineTOCEntryBooleanOption"></a><a href="#cmd.DefineTOCEntryBooleanOption">\DefineTOCEntryBooleanOption</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.DefineTOCEntryBooleanOption">406</a></li>
+<li><a name="cmd.DefineTOCEntryCommandOption"></a><a href="#cmd.DefineTOCEntryCommandOption">\DefineTOCEntryCommandOption</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.DefineTOCEntryCommandOption">406</a></li>
+<li><a name="cmd.DefineTOCEntryIfOption"></a><a href="#cmd.DefineTOCEntryIfOption">\DefineTOCEntryIfOption</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.DefineTOCEntryIfOption">406</a></li>
+<li><a name="cmd.DefineTOCEntryLengthOption"></a><a href="#cmd.DefineTOCEntryLengthOption">\DefineTOCEntryLengthOption</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.DefineTOCEntryLengthOption">406</a></li>
+<li><a name="cmd.DefineTOCEntryNumberOption"></a><a href="#cmd.DefineTOCEntryNumberOption">\DefineTOCEntryNumberOption</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.DefineTOCEntryNumberOption">406</a></li>
+<li><a name="cmd.DefineTOCEntryOption"></a><a href="#cmd.DefineTOCEntryOption">\DefineTOCEntryOption</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.DefineTOCEntryOption">406</a></li>
+<li><a name="cmd.DestroyLayer"></a><a href="#cmd.DestroyLayer">\DestroyLayer</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.DestroyLayer">442</a></li>
+<li><a name="cmd.DestroyPageStyleAlias"></a><a href="#cmd.DestroyPageStyleAlias">\DestroyPageStyleAlias</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.DestroyPageStyleAlias">445</a></li>
+<li><a name="cmd.DestroyRealLayerPageStyle"></a><a href="#cmd.DestroyRealLayerPageStyle">\DestroyRealLayerPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.DestroyRealLayerPageStyle">453</a></li>
+<li><a name="cmd.FamilyBoolKey"></a><a href="#cmd.FamilyBoolKey">\FamilyBoolKey</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyBoolKey">349</a></li>
+<li><a name="cmd.FamilyCSKey"></a><a href="#cmd.FamilyCSKey">\FamilyCSKey</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyCSKey">354</a></li>
+<li><a name="cmd.FamilyCounterKey"></a><a href="#cmd.FamilyCounterKey">\FamilyCounterKey</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyCounterKey">353</a></li>
+<li><a name="cmd.FamilyCounterMacroKey"></a><a href="#cmd.FamilyCounterMacroKey">\FamilyCounterMacroKey</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyCounterMacroKey">353</a></li>
+<li><a name="cmd.FamilyElseValues"></a><a href="#cmd.FamilyElseValues">\FamilyElseValues</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyElseValues">356</a></li>
+<li><a name="cmd.FamilyExecuteOptions"></a><a href="#cmd.FamilyExecuteOptions">\FamilyExecuteOptions</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyExecuteOptions">346</a></li>
+<li><a name="cmd.FamilyKeyState"></a><a href="#cmd.FamilyKeyState">\FamilyKeyState</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyKeyState">342</a></li>
+<li><a name="cmd.FamilyKeyStateNeedValue"></a><a href="#cmd.FamilyKeyStateNeedValue">\FamilyKeyStateNeedValue</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyKeyStateNeedValue">342</a></li>
+<li><a name="cmd.FamilyKeyStateProcessed"></a><a href="#cmd.FamilyKeyStateProcessed">\FamilyKeyStateProcessed</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyKeyStateProcessed">342</a></li>
+<li><a name="cmd.FamilyKeyStateUnknown"></a><a href="#cmd.FamilyKeyStateUnknown">\FamilyKeyStateUnknown</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyKeyStateUnknown">342</a></li>
+<li><a name="cmd.FamilyKeyStateUnknownValue"></a><a href="#cmd.FamilyKeyStateUnknownValue">\FamilyKeyStateUnknownValue</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyKeyStateUnknownValue">342</a></li>
+<li><a name="cmd.FamilyLengthKey"></a><a href="#cmd.FamilyLengthKey">\FamilyLengthKey</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyLengthKey">353</a></li>
+<li><a name="cmd.FamilyLengthMacroKey"></a><a href="#cmd.FamilyLengthMacroKey">\FamilyLengthMacroKey</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyLengthMacroKey">353</a></li>
+<li><a name="cmd.FamilyNumericalKey"></a><a href="#cmd.FamilyNumericalKey">\FamilyNumericalKey</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyNumericalKey">351</a></li>
+<li><a name="cmd.FamilyOption"></a><a href="#cmd.FamilyOption">\FamilyOption</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyOption">348</a></li>
+<li><a name="cmd.FamilyOptions"></a><a href="#cmd.FamilyOptions">\FamilyOptions</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyOptions">347</a></li>
+<li><a name="cmd.FamilyProcessOptions"></a><a href="#cmd.FamilyProcessOptions">\FamilyProcessOptions</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyProcessOptions">344</a></li>
+<li><a name="cmd.FamilySetBool"></a><a href="#cmd.FamilySetBool">\FamilySetBool</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilySetBool">349</a></li>
+<li><a name="cmd.FamilySetCounter"></a><a href="#cmd.FamilySetCounter">\FamilySetCounter</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilySetCounter">353</a></li>
+<li><a name="cmd.FamilySetCounterMacro"></a><a href="#cmd.FamilySetCounterMacro">\FamilySetCounterMacro</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilySetCounterMacro">353</a></li>
+<li><a name="cmd.FamilySetLength"></a><a href="#cmd.FamilySetLength">\FamilySetLength</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilySetLength">353</a></li>
+<li><a name="cmd.FamilySetLengthMacro"></a><a href="#cmd.FamilySetLengthMacro">\FamilySetLengthMacro</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilySetLengthMacro">353</a></li>
+<li><a name="cmd.FamilySetNumerical"></a><a href="#cmd.FamilySetNumerical">\FamilySetNumerical</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilySetNumerical">351</a></li>
+<li><a name="cmd.FamilySetUseLengthMacro"></a><a href="#cmd.FamilySetUseLengthMacro">\FamilySetUseLengthMacro</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilySetUseLengthMacro">353</a></li>
+<li><a name="cmd.FamilyStringKey"></a><a href="#cmd.FamilyStringKey">\FamilyStringKey</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyStringKey">354</a></li>
+<li><a name="cmd.FamilyUnknownKeyValue"></a><a href="#cmd.FamilyUnknownKeyValue">\FamilyUnknownKeyValue</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyUnknownKeyValue">355</a></li>
+<li><a name="cmd.FamilyUseLengthMacroKey"></a><a href="#cmd.FamilyUseLengthMacroKey">\FamilyUseLengthMacroKey</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.FamilyUseLengthMacroKey">353</a></li>
+<li><a name="cmd.FirstName"></a><a href="#cmd.FirstName">\FirstName</a> --&gt; <a href="scrguide.pdf#desc:scraddr.cmd.FirstName">289</a></li>
+<li><a name="cmd.ForEachLayerOfPageStyle*"></a><a href="#cmd.ForEachLayerOfPageStyle*">\ForEachLayerOfPageStyle*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.ForEachLayerOfPageStyle*">450</a></li>
+<li><a name="cmd.ForEachLayerOfPageStyle"></a><a href="#cmd.ForEachLayerOfPageStyle">\ForEachLayerOfPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.ForEachLayerOfPageStyle">450</a></li>
+<li><a name="cmd.FreeI"></a><a href="#cmd.FreeI">\FreeI</a> --&gt; <a href="scrguide.pdf#desc:scraddr.cmd.FreeI">289</a></li>
+<li><a name="cmd.FreeII"></a><a href="#cmd.FreeII">\FreeII</a> --&gt; <a href="scrguide.pdf#desc:scraddr.cmd.FreeII">289</a></li>
+<li><a name="cmd.FreeIII"></a><a href="#cmd.FreeIII">\FreeIII</a> --&gt; <a href="scrguide.pdf#desc:scraddr.cmd.FreeIII">289</a></li>
+<li><a name="cmd.FreeIV"></a><a href="#cmd.FreeIV">\FreeIV</a> --&gt; <a href="scrguide.pdf#desc:scraddr.cmd.FreeIV">289</a></li>
+<li><a name="cmd.GenericMarkFormat"></a><a href="#cmd.GenericMarkFormat">\GenericMarkFormat</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.GenericMarkFormat">459</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.GenericMarkFormat">464</a></li>
+<li><a name="cmd.GetLayerContents"></a><a href="#cmd.GetLayerContents">\GetLayerContents</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.GetLayerContents">442</a></li>
+<li><a name="cmd.GetRealPageStyle"></a><a href="#cmd.GetRealPageStyle">\GetRealPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.GetRealPageStyle">446</a></li>
+<li><a name="cmd.ISODayName"></a><a href="#cmd.ISODayName">\ISODayName</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.ISODayName">282</a></li>
+<li><a name="cmd.ISODayNumber"></a><a href="#cmd.ISODayNumber">\ISODayNumber</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.ISODayNumber">281</a></li>
+<li><a name="cmd.ISOToday"></a><a href="#cmd.ISOToday">\ISOToday</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.ISOToday">283</a></li>
+<li><a name="cmd.IfChapterUsesPrefixLine"></a><a href="#cmd.IfChapterUsesPrefixLine">\IfChapterUsesPrefixLine</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.IfChapterUsesPrefixLine">102</a></li>
+<li><a name="cmd.IfExistskomafont"></a><a href="#cmd.IfExistskomafont">\IfExistskomafont</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.IfExistskomafont">497</a></li>
+<li><a name="cmd.IfIsAliaskomafont"></a><a href="#cmd.IfIsAliaskomafont">\IfIsAliaskomafont</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.IfIsAliaskomafont">497</a></li>
+<li><a name="cmd.IfLayerAtPageStyle"></a><a href="#cmd.IfLayerAtPageStyle">\IfLayerAtPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.IfLayerAtPageStyle">453</a></li>
+<li><a name="cmd.IfLayerExists"></a><a href="#cmd.IfLayerExists">\IfLayerExists</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.IfLayerExists">442</a></li>
+<li><a name="cmd.IfLayerPageStyleExists"></a><a href="#cmd.IfLayerPageStyleExists">\IfLayerPageStyleExists</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.IfLayerPageStyleExists">452</a></li>
+<li><a name="cmd.IfLayersAtPageStyle"></a><a href="#cmd.IfLayersAtPageStyle">\IfLayersAtPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.IfLayersAtPageStyle">453</a></li>
+<li><a name="cmd.IfRealLayerPageStyleExists"></a><a href="#cmd.IfRealLayerPageStyleExists">\IfRealLayerPageStyleExists</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.IfRealLayerPageStyleExists">452</a></li>
+<li><a name="cmd.IfSomeLayersAtPageStyle"></a><a href="#cmd.IfSomeLayersAtPageStyle">\IfSomeLayersAtPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.IfSomeLayersAtPageStyle">453</a></li>
+<li><a name="cmd.IfUsePrefixLine"></a><a href="#cmd.IfUsePrefixLine">\IfUsePrefixLine</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.IfUsePrefixLine">117</a></li>
+<li><a name="cmd.InputAddressFile"></a><a href="#cmd.InputAddressFile">\InputAddressFile</a> --&gt; <a href="scrguide.pdf#desc:scraddr.cmd.InputAddressFile">288</a></li>
+<li><a name="cmd.IsoToday"></a><a href="#cmd.IsoToday">\IsoToday</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.IsoToday">283</a></li>
+<li><a name="cmd.KOMAClassName"></a><a href="#cmd.KOMAClassName">\KOMAClassName</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.KOMAClassName">493</a></li>
+<li><a name="cmd.KOMAScript"></a><a href="#cmd.KOMAScript">\KOMAScript</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.KOMAScript">366</a></li>
+<li><a name="cmd.KOMAScriptVersion"></a><a href="#cmd.KOMAScriptVersion">\KOMAScriptVersion</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.KOMAScriptVersion">366</a></li>
+<li><a name="cmd.KOMAoption"></a><a href="#cmd.KOMAoption">\KOMAoption</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.KOMAoption">171</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.KOMAoption">253</a>, <a href="scrguide.pdf#desc:scrextend.cmd.KOMAoption">294</a>, <a href="scrguide.pdf#desc:scrjura.cmd.KOMAoption">316</a>, <a href="scrguide.pdf#desc:typearea.cmd.KOMAoption">32</a>, <a href="scrguide.pdf#desc:scrhack.cmd.KOMAoption">423</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.KOMAoption">428</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.KOMAoption">476</a>, <a href="scrguide.pdf#desc:maincls.cmd.KOMAoption">57</a></li>
+<li><a name="cmd.KOMAoptions"></a><a href="#cmd.KOMAoptions">\KOMAoptions</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.KOMAoptions">171</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.KOMAoptions">253</a>, <a href="scrguide.pdf#desc:scrextend.cmd.KOMAoptions">294</a>, <a href="scrguide.pdf#desc:scrjura.cmd.KOMAoptions">316</a>, <a href="scrguide.pdf#desc:typearea.cmd.KOMAoptions">32</a>, <a href="scrguide.pdf#desc:scrhack.cmd.KOMAoptions">423</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.KOMAoptions">428</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.KOMAoptions">476</a>, <a href="scrguide.pdf#desc:maincls.cmd.KOMAoptions">57</a></li>
+<li><a name="cmd.LastName"></a><a href="#cmd.LastName">\LastName</a> --&gt; <a href="scrguide.pdf#desc:scraddr.cmd.LastName">289</a></li>
+<li><a name="cmd.LastTOCLevelWasHigher"></a><a href="#cmd.LastTOCLevelWasHigher">\LastTOCLevelWasHigher</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.LastTOCLevelWasHigher">408</a></li>
+<li><a name="cmd.LastTOCLevelWasLower"></a><a href="#cmd.LastTOCLevelWasLower">\LastTOCLevelWasLower</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.LastTOCLevelWasLower">408</a></li>
+<li><a name="cmd.LastTOCLevelWasSame"></a><a href="#cmd.LastTOCLevelWasSame">\LastTOCLevelWasSame</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.LastTOCLevelWasSame">408</a></li>
+<li><a name="cmd.LenToUnit"></a><a href="#cmd.LenToUnit">\LenToUnit</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.LenToUnit">441</a></li>
+<li><a name="cmd.MakeMarkcase"></a><a href="#cmd.MakeMarkcase">\MakeMarkcase</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.MakeMarkcase">272</a>, <a href="scrguide.pdf#desc:tocbasic.cmd.MakeMarkcase">392</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.MakeMarkcase">456</a></li>
+<li><a name="cmd.ModifyLayer"></a><a href="#cmd.ModifyLayer">\ModifyLayer</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.ModifyLayer">432</a></li>
+<li><a name="cmd.ModifyLayerPageStyleOptions"></a><a href="#cmd.ModifyLayerPageStyleOptions">\ModifyLayerPageStyleOptions</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.ModifyLayerPageStyleOptions">452</a></li>
+<li><a name="cmd.Name"></a><a href="#cmd.Name">\Name</a> --&gt; <a href="scrguide.pdf#desc:scraddr.cmd.Name">289</a></li>
+<li><a name="cmd.PackageInfoNoLine"></a><a href="#cmd.PackageInfoNoLine">\PackageInfoNoLine</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.PackageInfoNoLine">366</a></li>
+<li><a name="cmd.PreventPackageFromLoading*"></a><a href="#cmd.PreventPackageFromLoading*">\PreventPackageFromLoading*</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.PreventPackageFromLoading*">377</a></li>
+<li><a name="cmd.PreventPackageFromLoading"></a><a href="#cmd.PreventPackageFromLoading">\PreventPackageFromLoading</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.PreventPackageFromLoading">377</a></li>
+<li><a name="cmd.ProvideLayer"></a><a href="#cmd.ProvideLayer">\ProvideLayer</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.ProvideLayer">432</a></li>
+<li><a name="cmd.ProvideNoteColumn"></a><a href="#cmd.ProvideNoteColumn">\ProvideNoteColumn</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.ProvideNoteColumn">478</a></li>
+<li><a name="cmd.ProvidePageStyleAlias"></a><a href="#cmd.ProvidePageStyleAlias">\ProvidePageStyleAlias</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.ProvidePageStyleAlias">445</a></li>
+<li><a name="cmd.ProvidePageStyleByLayers"></a><a href="#cmd.ProvidePageStyleByLayers">\ProvidePageStyleByLayers</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.ProvidePageStyleByLayers">446</a></li>
+<li><a name="cmd.ProvideSectionCommand"></a><a href="#cmd.ProvideSectionCommand">\ProvideSectionCommand</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.ProvideSectionCommand">498</a></li>
+<li><a name="cmd.ProvideSectionCommands"></a><a href="#cmd.ProvideSectionCommands">\ProvideSectionCommands</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.ProvideSectionCommands">509</a></li>
+<li><a name="cmd.RedeclareLayer"></a><a href="#cmd.RedeclareLayer">\RedeclareLayer</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.RedeclareLayer">432</a></li>
+<li><a name="cmd.RedeclareNoteColumn"></a><a href="#cmd.RedeclareNoteColumn">\RedeclareNoteColumn</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.RedeclareNoteColumn">478</a></li>
+<li><a name="cmd.RedeclarePageStyleAlias"></a><a href="#cmd.RedeclarePageStyleAlias">\RedeclarePageStyleAlias</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.RedeclarePageStyleAlias">445</a></li>
+<li><a name="cmd.RedeclarePageStyleByLayers"></a><a href="#cmd.RedeclarePageStyleByLayers">\RedeclarePageStyleByLayers</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.RedeclarePageStyleByLayers">446</a></li>
+<li><a name="cmd.RedeclareSectionCommand"></a><a href="#cmd.RedeclareSectionCommand">\RedeclareSectionCommand</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.RedeclareSectionCommand">498</a></li>
+<li><a name="cmd.RedeclareSectionCommands"></a><a href="#cmd.RedeclareSectionCommands">\RedeclareSectionCommands</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.RedeclareSectionCommands">509</a></li>
+<li><a name="cmd.RelaxFamilyKey"></a><a href="#cmd.RelaxFamilyKey">\RelaxFamilyKey</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.RelaxFamilyKey">344</a></li>
+<li><a name="cmd.RemoveLayersFromPageStyle"></a><a href="#cmd.RemoveLayersFromPageStyle">\RemoveLayersFromPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.RemoveLayersFromPageStyle">451</a></li>
+<li><a name="cmd.ReplaceClass"></a><a href="#cmd.ReplaceClass">\ReplaceClass</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.ReplaceClass">375</a></li>
+<li><a name="cmd.ReplaceInput"></a><a href="#cmd.ReplaceInput">\ReplaceInput</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.ReplaceInput">374</a></li>
+<li><a name="cmd.ReplacePackage"></a><a href="#cmd.ReplacePackage">\ReplacePackage</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.ReplacePackage">375</a></li>
+<li><a name="cmd.ResetPreventPackageFromLoading"></a><a href="#cmd.ResetPreventPackageFromLoading">\ResetPreventPackageFromLoading</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.ResetPreventPackageFromLoading">378</a></li>
+<li><a name="cmd.SecDef"></a><a href="#cmd.SecDef">\SecDef</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.SecDef">517</a></li>
+<li><a name="cmd.Sentence"></a><a href="#cmd.Sentence">\Sentence</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.Sentence">326</a></li>
+<li><a name="cmd.StorePreventPackageFromLoading"></a><a href="#cmd.StorePreventPackageFromLoading">\StorePreventPackageFromLoading</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.StorePreventPackageFromLoading">378</a></li>
+<li><a name="cmd.SubClause"></a><a href="#cmd.SubClause">\SubClause</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.SubClause">320</a></li>
+<li><a name="cmd.TOCEntryStyleInitCode"></a><a href="#cmd.TOCEntryStyleInitCode">\TOCEntryStyleInitCode</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.TOCEntryStyleInitCode">408</a></li>
+<li><a name="cmd.TOCEntryStyleStartInitCode"></a><a href="#cmd.TOCEntryStyleStartInitCode">\TOCEntryStyleStartInitCode</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.TOCEntryStyleStartInitCode">408</a></li>
+<li><a name="cmd.TOCLineLeaderFill"></a><a href="#cmd.TOCLineLeaderFill">\TOCLineLeaderFill</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.TOCLineLeaderFill">409</a></li>
+<li><a name="cmd.TOCclone"></a><a href="#cmd.TOCclone">\TOCclone</a> --&gt; <a href="scrguide.pdf#desc:scrwfile.cmd.TOCclone">382</a></li>
+<li><a name="cmd.Telephone"></a><a href="#cmd.Telephone">\Telephone</a> --&gt; <a href="scrguide.pdf#desc:scraddr.cmd.Telephone">289</a></li>
+<li><a name="cmd.UnPreventPackageFromLoading*"></a><a href="#cmd.UnPreventPackageFromLoading*">\UnPreventPackageFromLoading*</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.UnPreventPackageFromLoading*">379</a></li>
+<li><a name="cmd.UnPreventPackageFromLoading"></a><a href="#cmd.UnPreventPackageFromLoading">\UnPreventPackageFromLoading</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.UnPreventPackageFromLoading">379</a></li>
+<li><a name="cmd.UnReplaceClass"></a><a href="#cmd.UnReplaceClass">\UnReplaceClass</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.UnReplaceClass">377</a></li>
+<li><a name="cmd.UnReplaceInput"></a><a href="#cmd.UnReplaceInput">\UnReplaceInput</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.UnReplaceInput">377</a></li>
+<li><a name="cmd.UnReplacePackage"></a><a href="#cmd.UnReplacePackage">\UnReplacePackage</a> --&gt; <a href="scrguide.pdf#desc:scrlfile.cmd.UnReplacePackage">377</a></li>
+<li><a name="cmd.UnifyLayersAtPageStyle"></a><a href="#cmd.UnifyLayersAtPageStyle">\UnifyLayersAtPageStyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.UnifyLayersAtPageStyle">452</a></li>
+<li><a name="cmd.XdivY"></a><a href="#cmd.XdivY">\XdivY</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.XdivY">367</a></li>
+<li><a name="cmd.XmodY"></a><a href="#cmd.XmodY">\XmodY</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.XmodY">367</a></li>
+<li><a name="cmd.activateareas"></a><a href="#cmd.activateareas">\activateareas</a> --&gt; <a href="scrguide.pdf#desc:typearea-experts.cmd.activateareas">490</a></li>
+<li><a name="cmd.addchap*"></a><a href="#cmd.addchap*">\addchap*</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.addchap*">113</a></li>
+<li><a name="cmd.addchap"></a><a href="#cmd.addchap">\addchap</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.addchap">113</a></li>
+<li><a name="cmd.addchapmark"></a><a href="#cmd.addchapmark">\addchapmark</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.addchapmark">119</a></li>
+<li><a name="cmd.addchaptertocentry"></a><a href="#cmd.addchaptertocentry">\addchaptertocentry</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.addchaptertocentry">495</a></li>
+<li><a name="cmd.addcontentslinetoeachtocfile"></a><a href="#cmd.addcontentslinetoeachtocfile">\addcontentslinetoeachtocfile</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.addcontentslinetoeachtocfile">390</a></li>
+<li><a name="cmd.addparagraphtocentry"></a><a href="#cmd.addparagraphtocentry">\addparagraphtocentry</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.addparagraphtocentry">495</a></li>
+<li><a name="cmd.addpart*"></a><a href="#cmd.addpart*">\addpart*</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.addpart*">113</a></li>
+<li><a name="cmd.addpart"></a><a href="#cmd.addpart">\addpart</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.addpart">113</a></li>
+<li><a name="cmd.addparttocentry"></a><a href="#cmd.addparttocentry">\addparttocentry</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.addparttocentry">495</a></li>
+<li><a name="cmd.addrchar"></a><a href="#cmd.addrchar">\addrchar</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.addrchar">250</a>, <a href="scrguide.pdf#desc:scraddr.cmd.addrchar">288</a></li>
+<li><a name="cmd.addrentry"></a><a href="#cmd.addrentry">\addrentry</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.addrentry">249</a>, <a href="scrguide.pdf#desc:scraddr.cmd.addrentry">288</a></li>
+<li><a name="cmd.addsec*"></a><a href="#cmd.addsec*">\addsec*</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.addsec*">113</a></li>
+<li><a name="cmd.addsec"></a><a href="#cmd.addsec">\addsec</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.addsec">113</a></li>
+<li><a name="cmd.addsecmark"></a><a href="#cmd.addsecmark">\addsecmark</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.addsecmark">119</a></li>
+<li><a name="cmd.addsectiontocentry"></a><a href="#cmd.addsectiontocentry">\addsectiontocentry</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.addsectiontocentry">495</a></li>
+<li><a name="cmd.addsubparagraphtocentry"></a><a href="#cmd.addsubparagraphtocentry">\addsubparagraphtocentry</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.addsubparagraphtocentry">495</a></li>
+<li><a name="cmd.addsubsectiontocentry"></a><a href="#cmd.addsubsectiontocentry">\addsubsectiontocentry</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.addsubsectiontocentry">495</a></li>
+<li><a name="cmd.addsubsubsectiontocentry"></a><a href="#cmd.addsubsubsectiontocentry">\addsubsubsectiontocentry</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.addsubsubsectiontocentry">495</a></li>
+<li><a name="cmd.addtocentrydefault"></a><a href="#cmd.addtocentrydefault">\addtocentrydefault</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.addtocentrydefault">494</a></li>
+<li><a name="cmd.addtoeachtocfile"></a><a href="#cmd.addtoeachtocfile">\addtoeachtocfile</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.addtoeachtocfile">389</a></li>
+<li><a name="cmd.addtokomafont"></a><a href="#cmd.addtokomafont">\addtokomafont</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.addtokomafont">188</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.addtokomafont">255</a>, <a href="scrguide.pdf#desc:scrextend.cmd.addtokomafont">298</a>, <a href="scrguide.pdf#desc:scrjura.cmd.addtokomafont">317</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.addtokomafont">477</a>, <a href="scrguide.pdf#desc:maincls.cmd.addtokomafont">62</a></li>
+<li><a name="cmd.addtokomafontgobblelist"></a><a href="#cmd.addtokomafontgobblelist">\addtokomafontgobblelist</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.addtokomafontgobblelist">496</a></li>
+<li><a name="cmd.addtokomafontonearglist"></a><a href="#cmd.addtokomafontonearglist">\addtokomafontonearglist</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.addtokomafontonearglist">496</a></li>
+<li><a name="cmd.addtokomafontrelaxlist"></a><a href="#cmd.addtokomafontrelaxlist">\addtokomafontrelaxlist</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.addtokomafontrelaxlist">496</a></li>
+<li><a name="cmd.addtolengthplength"></a><a href="#cmd.addtolengthplength">\addtolengthplength</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.addtolengthplength">170</a></li>
+<li><a name="cmd.addtoplength"></a><a href="#cmd.addtoplength">\addtoplength</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.addtoplength">526</a></li>
+<li><a name="cmd.addtoreffields"></a><a href="#cmd.addtoreffields">\addtoreffields</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.addtoreffields">537</a></li>
+<li><a name="cmd.addtotoclist"></a><a href="#cmd.addtotoclist">\addtotoclist</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.addtotoclist">385</a></li>
+<li><a name="cmd.addxcontentsline"></a><a href="#cmd.addxcontentsline">\addxcontentsline</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.addxcontentsline">389</a></li>
+<li><a name="cmd.addxcontentslinetoeachtocfile"></a><a href="#cmd.addxcontentslinetoeachtocfile">\addxcontentslinetoeachtocfile</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.addxcontentslinetoeachtocfile">390</a></li>
+<li><a name="cmd.adrchar"></a><a href="#cmd.adrchar">\adrchar</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.adrchar">250</a>, <a href="scrguide.pdf#desc:scraddr.cmd.adrchar">288</a></li>
+<li><a name="cmd.adrentry"></a><a href="#cmd.adrentry">\adrentry</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.adrentry">248</a>, <a href="scrguide.pdf#desc:scraddr.cmd.adrentry">288</a></li>
+<li><a name="cmd.aliaskomafont"></a><a href="#cmd.aliaskomafont">\aliaskomafont</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.aliaskomafont">496</a></li>
+<li><a name="cmd.and"></a><a href="#cmd.and">\and</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.and">302</a>, <a href="scrguide.pdf#desc:maincls.cmd.and">71</a></li>
+<li><a name="cmd.appendix"></a><a href="#cmd.appendix">\appendix</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.appendix">158</a></li>
+<li><a name="cmd.appendixmore"></a><a href="#cmd.appendixmore">\appendixmore</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.appendixmore">518</a></li>
+<li><a name="cmd.areaset"></a><a href="#cmd.areaset">\areaset</a> --&gt; <a href="scrguide.pdf#desc:typearea.cmd.areaset">48</a>, <a href="scrguide.pdf#desc:typearea-experts.cmd.areaset">490</a></li>
+<li><a name="cmd.author"></a><a href="#cmd.author">\author</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.author">302</a>, <a href="scrguide.pdf#desc:maincls.cmd.author">71</a></li>
+<li><a name="cmd.autodot"></a><a href="#cmd.autodot">\autodot</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.autodot">117</a></li>
+<li><a name="cmd.automark*"></a><a href="#cmd.automark*">\automark*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.automark*">269</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.automark*">454</a></li>
+<li><a name="cmd.automark"></a><a href="#cmd.automark">\automark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.automark">269</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.automark">454</a></li>
+<li><a name="cmd.backmatter"></a><a href="#cmd.backmatter">\backmatter</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.backmatter">100</a></li>
+<li><a name="cmd.bankname"></a><a href="#cmd.bankname">\bankname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.bankname">544</a></li>
+<li><a name="cmd.bib@beginhook"></a><a href="#cmd.bib@beginhook">\bib@beginhook</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.bib@beginhook">519</a></li>
+<li><a name="cmd.bib@endhook"></a><a href="#cmd.bib@endhook">\bib@endhook</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.bib@endhook">519</a></li>
+<li><a name="cmd.caption"></a><a href="#cmd.caption">\caption</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.caption">140</a></li>
+<li><a name="cmd.captionabove"></a><a href="#cmd.captionabove">\captionabove</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.captionabove">140</a></li>
+<li><a name="cmd.captionaboveof"></a><a href="#cmd.captionaboveof">\captionaboveof</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.captionaboveof">142</a></li>
+<li><a name="cmd.captionbelow"></a><a href="#cmd.captionbelow">\captionbelow</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.captionbelow">140</a></li>
+<li><a name="cmd.captionbelowof"></a><a href="#cmd.captionbelowof">\captionbelowof</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.captionbelowof">142</a></li>
+<li><a name="cmd.captionformat"></a><a href="#cmd.captionformat">\captionformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.captionformat">147</a></li>
+<li><a name="cmd.captionof"></a><a href="#cmd.captionof">\captionof</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.captionof">142</a></li>
+<li><a name="cmd.captionsUKenglish"></a><a href="#cmd.captionsUKenglish">\captionsUKenglish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsUKenglish">545</a></li>
+<li><a name="cmd.captionsUSenglish"></a><a href="#cmd.captionsUSenglish">\captionsUSenglish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsUSenglish">545</a></li>
+<li><a name="cmd.captionsacadian"></a><a href="#cmd.captionsacadian">\captionsacadian</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsacadian">545</a></li>
+<li><a name="cmd.captionsamerican"></a><a href="#cmd.captionsamerican">\captionsamerican</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsamerican">545</a></li>
+<li><a name="cmd.captionsaustralien"></a><a href="#cmd.captionsaustralien">\captionsaustralien</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsaustralien">545</a></li>
+<li><a name="cmd.captionsaustrian"></a><a href="#cmd.captionsaustrian">\captionsaustrian</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsaustrian">545</a></li>
+<li><a name="cmd.captionsbritish"></a><a href="#cmd.captionsbritish">\captionsbritish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsbritish">545</a></li>
+<li><a name="cmd.captionscanadian"></a><a href="#cmd.captionscanadian">\captionscanadian</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionscanadian">545</a></li>
+<li><a name="cmd.captionscanadien"></a><a href="#cmd.captionscanadien">\captionscanadien</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionscanadien">545</a></li>
+<li><a name="cmd.captionscroatian"></a><a href="#cmd.captionscroatian">\captionscroatian</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionscroatian">545</a></li>
+<li><a name="cmd.captionsczech"></a><a href="#cmd.captionsczech">\captionsczech</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsczech">545</a></li>
+<li><a name="cmd.captionsdutch"></a><a href="#cmd.captionsdutch">\captionsdutch</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsdutch">545</a></li>
+<li><a name="cmd.captionsenglish"></a><a href="#cmd.captionsenglish">\captionsenglish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsenglish">545</a></li>
+<li><a name="cmd.captionsfinnish"></a><a href="#cmd.captionsfinnish">\captionsfinnish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsfinnish">545</a></li>
+<li><a name="cmd.captionsfrancais"></a><a href="#cmd.captionsfrancais">\captionsfrancais</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsfrancais">545</a></li>
+<li><a name="cmd.captionsfrench"></a><a href="#cmd.captionsfrench">\captionsfrench</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsfrench">545</a></li>
+<li><a name="cmd.captionsgerman"></a><a href="#cmd.captionsgerman">\captionsgerman</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsgerman">545</a></li>
+<li><a name="cmd.captionsitalian"></a><a href="#cmd.captionsitalian">\captionsitalian</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsitalian">545</a></li>
+<li><a name="cmd.captionsnaustrian"></a><a href="#cmd.captionsnaustrian">\captionsnaustrian</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsnaustrian">545</a></li>
+<li><a name="cmd.captionsnewzealand"></a><a href="#cmd.captionsnewzealand">\captionsnewzealand</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsnewzealand">545</a></li>
+<li><a name="cmd.captionsngerman"></a><a href="#cmd.captionsngerman">\captionsngerman</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsngerman">545</a></li>
+<li><a name="cmd.captionsnorsk"></a><a href="#cmd.captionsnorsk">\captionsnorsk</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsnorsk">545</a></li>
+<li><a name="cmd.captionsnswissgerman"></a><a href="#cmd.captionsnswissgerman">\captionsnswissgerman</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsnswissgerman">545</a></li>
+<li><a name="cmd.captionspolish"></a><a href="#cmd.captionspolish">\captionspolish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionspolish">545</a></li>
+<li><a name="cmd.captionsslovak"></a><a href="#cmd.captionsslovak">\captionsslovak</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsslovak">545</a></li>
+<li><a name="cmd.captionsspanish"></a><a href="#cmd.captionsspanish">\captionsspanish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsspanish">545</a></li>
+<li><a name="cmd.captionsswedish"></a><a href="#cmd.captionsswedish">\captionsswedish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsswedish">545</a></li>
+<li><a name="cmd.captionsswissgerman"></a><a href="#cmd.captionsswissgerman">\captionsswissgerman</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.captionsswissgerman">545</a></li>
+<li><a name="cmd.cc"></a><a href="#cmd.cc">\cc</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cc">182</a></li>
+<li><a name="cmd.ccname"></a><a href="#cmd.ccname">\ccname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.ccname">544</a></li>
+<li><a name="cmd.cefoot*"></a><a href="#cmd.cefoot*">\cefoot*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.cefoot*">265</a></li>
+<li><a name="cmd.cefoot"></a><a href="#cmd.cefoot">\cefoot</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.cefoot">262</a></li>
+<li><a name="cmd.cehead*"></a><a href="#cmd.cehead*">\cehead*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.cehead*">261</a></li>
+<li><a name="cmd.cehead"></a><a href="#cmd.cehead">\cehead</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.cehead">258</a></li>
+<li><a name="cmd.cfoot*"></a><a href="#cmd.cfoot*">\cfoot*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.cfoot*">267</a></li>
+<li><a name="cmd.cfoot"></a><a href="#cmd.cfoot">\cfoot</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.cfoot">266</a></li>
+<li><a name="cmd.changefontsizes"></a><a href="#cmd.changefontsizes">\changefontsizes</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.changefontsizes">495</a></li>
+<li><a name="cmd.chapapp"></a><a href="#cmd.chapapp">\chapapp</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.chapapp">119</a></li>
+<li><a name="cmd.chapappifchapterprefix"></a><a href="#cmd.chapappifchapterprefix">\chapappifchapterprefix</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.chapappifchapterprefix">119</a></li>
+<li><a name="cmd.chapter*"></a><a href="#cmd.chapter*">\chapter*</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.chapter*">112</a></li>
+<li><a name="cmd.chapter"></a><a href="#cmd.chapter">\chapter</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.chapter">107</a></li>
+<li><a name="cmd.chapterformat"></a><a href="#cmd.chapterformat">\chapterformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.chapterformat">117</a></li>
+<li><a name="cmd.chapterheadendvskip"></a><a href="#cmd.chapterheadendvskip">\chapterheadendvskip</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.chapterheadendvskip">510</a></li>
+<li><a name="cmd.chapterheadmidvskip"></a><a href="#cmd.chapterheadmidvskip">\chapterheadmidvskip</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.chapterheadmidvskip">510</a></li>
+<li><a name="cmd.chapterheadstartvskip"></a><a href="#cmd.chapterheadstartvskip">\chapterheadstartvskip</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.chapterheadstartvskip">510</a></li>
+<li><a name="cmd.chapterlinesformat"></a><a href="#cmd.chapterlinesformat">\chapterlinesformat</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.chapterlinesformat">513</a></li>
+<li><a name="cmd.chapterlineswithprefixformat"></a><a href="#cmd.chapterlineswithprefixformat">\chapterlineswithprefixformat</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.chapterlineswithprefixformat">513</a></li>
+<li><a name="cmd.chaptermark"></a><a href="#cmd.chaptermark">\chaptermark</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.chaptermark">119</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.chaptermark">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.chaptermark">458</a></li>
+<li><a name="cmd.chaptermarkformat"></a><a href="#cmd.chaptermarkformat">\chaptermarkformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.chaptermarkformat">119</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.chaptermarkformat">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.chaptermarkformat">457</a></li>
+<li><a name="cmd.chapternumdepth"></a><a href="#cmd.chapternumdepth">\chapternumdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.chapternumdepth">121</a></li>
+<li><a name="cmd.chapterpagestyle"></a><a href="#cmd.chapterpagestyle">\chapterpagestyle</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.chapterpagestyle">88</a></li>
+<li><a name="cmd.chead*"></a><a href="#cmd.chead*">\chead*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.chead*">267</a></li>
+<li><a name="cmd.chead"></a><a href="#cmd.chead">\chead</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.chead">266</a></li>
+<li><a name="cmd.cleardoubleemptypage"></a><a href="#cmd.cleardoubleemptypage">\cleardoubleemptypage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoubleemptypage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoubleemptypage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoubleemptypage">93</a></li>
+<li><a name="cmd.cleardoubleevenemptypage"></a><a href="#cmd.cleardoubleevenemptypage">\cleardoubleevenemptypage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoubleevenemptypage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoubleevenemptypage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoubleevenemptypage">93</a></li>
+<li><a name="cmd.cleardoubleevenpage"></a><a href="#cmd.cleardoubleevenpage">\cleardoubleevenpage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoubleevenpage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoubleevenpage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoubleevenpage">93</a></li>
+<li><a name="cmd.cleardoubleevenpageusingstyle"></a><a href="#cmd.cleardoubleevenpageusingstyle">\cleardoubleevenpageusingstyle</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoubleevenpageusingstyle">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoubleevenpageusingstyle">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoubleevenpageusingstyle">93</a></li>
+<li><a name="cmd.cleardoubleevenplainpage"></a><a href="#cmd.cleardoubleevenplainpage">\cleardoubleevenplainpage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoubleevenplainpage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoubleevenplainpage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoubleevenplainpage">93</a></li>
+<li><a name="cmd.cleardoubleevenstandardpage"></a><a href="#cmd.cleardoubleevenstandardpage">\cleardoubleevenstandardpage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoubleevenstandardpage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoubleevenstandardpage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoubleevenstandardpage">93</a></li>
+<li><a name="cmd.cleardoubleoddemptypage"></a><a href="#cmd.cleardoubleoddemptypage">\cleardoubleoddemptypage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoubleoddemptypage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoubleoddemptypage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoubleoddemptypage">93</a></li>
+<li><a name="cmd.cleardoubleoddpage"></a><a href="#cmd.cleardoubleoddpage">\cleardoubleoddpage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoubleoddpage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoubleoddpage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoubleoddpage">93</a></li>
+<li><a name="cmd.cleardoubleoddpageusingstyle"></a><a href="#cmd.cleardoubleoddpageusingstyle">\cleardoubleoddpageusingstyle</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoubleoddpageusingstyle">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoubleoddpageusingstyle">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoubleoddpageusingstyle">93</a></li>
+<li><a name="cmd.cleardoubleoddplainpage"></a><a href="#cmd.cleardoubleoddplainpage">\cleardoubleoddplainpage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoubleoddplainpage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoubleoddplainpage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoubleoddplainpage">93</a></li>
+<li><a name="cmd.cleardoubleoddstandardpage"></a><a href="#cmd.cleardoubleoddstandardpage">\cleardoubleoddstandardpage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoubleoddstandardpage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoubleoddstandardpage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoubleoddstandardpage">93</a></li>
+<li><a name="cmd.cleardoublepage"></a><a href="#cmd.cleardoublepage">\cleardoublepage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoublepage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoublepage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoublepage">93</a></li>
+<li><a name="cmd.cleardoublepageusingstyle"></a><a href="#cmd.cleardoublepageusingstyle">\cleardoublepageusingstyle</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoublepageusingstyle">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoublepageusingstyle">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoublepageusingstyle">93</a></li>
+<li><a name="cmd.cleardoubleplainpage"></a><a href="#cmd.cleardoubleplainpage">\cleardoubleplainpage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoubleplainpage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoubleplainpage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoubleplainpage">93</a></li>
+<li><a name="cmd.cleardoublestandardpage"></a><a href="#cmd.cleardoublestandardpage">\cleardoublestandardpage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.cleardoublestandardpage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.cleardoublestandardpage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.cleardoublestandardpage">93</a></li>
+<li><a name="cmd.clearmainofpairofpagestyles"></a><a href="#cmd.clearmainofpairofpagestyles">\clearmainofpairofpagestyles</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.clearmainofpairofpagestyles">469</a></li>
+<li><a name="cmd.clearnotecolumn"></a><a href="#cmd.clearnotecolumn">\clearnotecolumn</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.clearnotecolumn">486</a></li>
+<li><a name="cmd.clearnotecolumns"></a><a href="#cmd.clearnotecolumns">\clearnotecolumns</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.clearnotecolumns">487</a></li>
+<li><a name="cmd.clearpage"></a><a href="#cmd.clearpage">\clearpage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.clearpage">230</a>, <a href="scrguide.pdf#desc:scrextend.cmd.clearpage">307</a>, <a href="scrguide.pdf#desc:maincls.cmd.clearpage">93</a></li>
+<li><a name="cmd.clearpairofpagestyles"></a><a href="#cmd.clearpairofpagestyles">\clearpairofpagestyles</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.clearpairofpagestyles">469</a></li>
+<li><a name="cmd.clearplainofpairofpagestyles"></a><a href="#cmd.clearplainofpairofpagestyles">\clearplainofpairofpagestyles</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.clearplainofpairofpagestyles">469</a></li>
+<li><a name="cmd.closing"></a><a href="#cmd.closing">\closing</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.closing">180</a></li>
+<li><a name="cmd.cofoot*"></a><a href="#cmd.cofoot*">\cofoot*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.cofoot*">265</a></li>
+<li><a name="cmd.cofoot"></a><a href="#cmd.cofoot">\cofoot</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.cofoot">262</a></li>
+<li><a name="cmd.cohead*"></a><a href="#cmd.cohead*">\cohead*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.cohead*">261</a></li>
+<li><a name="cmd.cohead"></a><a href="#cmd.cohead">\cohead</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.cohead">258</a></li>
+<li><a name="cmd.coverpagebottommargin"></a><a href="#cmd.coverpagebottommargin">\coverpagebottommargin</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.coverpagebottommargin">300</a>, <a href="scrguide.pdf#desc:maincls.cmd.coverpagebottommargin">68</a></li>
+<li><a name="cmd.coverpageleftmargin"></a><a href="#cmd.coverpageleftmargin">\coverpageleftmargin</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.coverpageleftmargin">300</a>, <a href="scrguide.pdf#desc:maincls.cmd.coverpageleftmargin">68</a></li>
+<li><a name="cmd.coverpagerightmargin"></a><a href="#cmd.coverpagerightmargin">\coverpagerightmargin</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.coverpagerightmargin">300</a>, <a href="scrguide.pdf#desc:maincls.cmd.coverpagerightmargin">68</a></li>
+<li><a name="cmd.coverpagetopmargin"></a><a href="#cmd.coverpagetopmargin">\coverpagetopmargin</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.coverpagetopmargin">300</a>, <a href="scrguide.pdf#desc:maincls.cmd.coverpagetopmargin">68</a></li>
+<li><a name="cmd.currentpagestyle"></a><a href="#cmd.currentpagestyle">\currentpagestyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.currentpagestyle">444</a></li>
+<li><a name="cmd.customername"></a><a href="#cmd.customername">\customername</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.customername">544</a></li>
+<li><a name="cmd.date"></a><a href="#cmd.date">\date</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.date">302</a>, <a href="scrguide.pdf#desc:maincls.cmd.date">71</a></li>
+<li><a name="cmd.dateUKenglish"></a><a href="#cmd.dateUKenglish">\dateUKenglish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dateUKenglish">546</a></li>
+<li><a name="cmd.dateUSenglish"></a><a href="#cmd.dateUSenglish">\dateUSenglish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dateUSenglish">546</a></li>
+<li><a name="cmd.dateacadian"></a><a href="#cmd.dateacadian">\dateacadian</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dateacadian">546</a></li>
+<li><a name="cmd.dateamerican"></a><a href="#cmd.dateamerican">\dateamerican</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dateamerican">546</a></li>
+<li><a name="cmd.dateaustralien"></a><a href="#cmd.dateaustralien">\dateaustralien</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dateaustralien">546</a></li>
+<li><a name="cmd.dateaustrian"></a><a href="#cmd.dateaustrian">\dateaustrian</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dateaustrian">546</a></li>
+<li><a name="cmd.datebritish"></a><a href="#cmd.datebritish">\datebritish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datebritish">546</a></li>
+<li><a name="cmd.datecanadian"></a><a href="#cmd.datecanadian">\datecanadian</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datecanadian">546</a></li>
+<li><a name="cmd.datecanadien"></a><a href="#cmd.datecanadien">\datecanadien</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datecanadien">546</a></li>
+<li><a name="cmd.datecroatian"></a><a href="#cmd.datecroatian">\datecroatian</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datecroatian">546</a></li>
+<li><a name="cmd.dateczech"></a><a href="#cmd.dateczech">\dateczech</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dateczech">546</a></li>
+<li><a name="cmd.datedutch"></a><a href="#cmd.datedutch">\datedutch</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datedutch">546</a></li>
+<li><a name="cmd.dateenglish"></a><a href="#cmd.dateenglish">\dateenglish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dateenglish">546</a></li>
+<li><a name="cmd.datefinnish"></a><a href="#cmd.datefinnish">\datefinnish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datefinnish">546</a></li>
+<li><a name="cmd.datefrancais"></a><a href="#cmd.datefrancais">\datefrancais</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datefrancais">546</a></li>
+<li><a name="cmd.datefrench"></a><a href="#cmd.datefrench">\datefrench</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datefrench">546</a></li>
+<li><a name="cmd.dategerman"></a><a href="#cmd.dategerman">\dategerman</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dategerman">546</a></li>
+<li><a name="cmd.dateitalian"></a><a href="#cmd.dateitalian">\dateitalian</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dateitalian">546</a></li>
+<li><a name="cmd.datename"></a><a href="#cmd.datename">\datename</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datename">544</a></li>
+<li><a name="cmd.datenaustrian"></a><a href="#cmd.datenaustrian">\datenaustrian</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datenaustrian">546</a></li>
+<li><a name="cmd.datenewzealand"></a><a href="#cmd.datenewzealand">\datenewzealand</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datenewzealand">546</a></li>
+<li><a name="cmd.datengerman"></a><a href="#cmd.datengerman">\datengerman</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datengerman">546</a></li>
+<li><a name="cmd.datenorsk"></a><a href="#cmd.datenorsk">\datenorsk</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datenorsk">546</a></li>
+<li><a name="cmd.datenswissgerman"></a><a href="#cmd.datenswissgerman">\datenswissgerman</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datenswissgerman">546</a></li>
+<li><a name="cmd.datepolish"></a><a href="#cmd.datepolish">\datepolish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datepolish">546</a></li>
+<li><a name="cmd.dateslovak"></a><a href="#cmd.dateslovak">\dateslovak</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dateslovak">546</a></li>
+<li><a name="cmd.datespanish"></a><a href="#cmd.datespanish">\datespanish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.datespanish">546</a></li>
+<li><a name="cmd.dateswedish"></a><a href="#cmd.dateswedish">\dateswedish</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dateswedish">546</a></li>
+<li><a name="cmd.dateswissgerman"></a><a href="#cmd.dateswissgerman">\dateswissgerman</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.dateswissgerman">546</a></li>
+<li><a name="cmd.dedication"></a><a href="#cmd.dedication">\dedication</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.dedication">304</a>, <a href="scrguide.pdf#desc:maincls.cmd.dedication">74</a></li>
+<li><a name="cmd.defaultreffields"></a><a href="#cmd.defaultreffields">\defaultreffields</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.defaultreffields">537</a></li>
+<li><a name="cmd.defcaptionname*"></a><a href="#cmd.defcaptionname*">\defcaptionname*</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.defcaptionname*">362</a></li>
+<li><a name="cmd.defcaptionname"></a><a href="#cmd.defcaptionname">\defcaptionname</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.defcaptionname">362</a></li>
+<li><a name="cmd.deffootnote"></a><a href="#cmd.deffootnote">\deffootnote</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.deffootnote">233</a>, <a href="scrguide.pdf#desc:scrextend.cmd.deffootnote">310</a>, <a href="scrguide.pdf#desc:maincls.cmd.deffootnote">97</a></li>
+<li><a name="cmd.deffootnotemark"></a><a href="#cmd.deffootnotemark">\deffootnotemark</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.deffootnotemark">233</a>, <a href="scrguide.pdf#desc:scrextend.cmd.deffootnotemark">310</a>, <a href="scrguide.pdf#desc:maincls.cmd.deffootnotemark">97</a></li>
+<li><a name="cmd.defpagestyle"></a><a href="#cmd.defpagestyle">\defpagestyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.defpagestyle">470</a></li>
+<li><a name="cmd.defpairofpagestyles"></a><a href="#cmd.defpairofpagestyles">\defpairofpagestyles</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.defpairofpagestyles">468</a></li>
+<li><a name="cmd.deftocheading"></a><a href="#cmd.deftocheading">\deftocheading</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.deftocheading">393</a></li>
+<li><a name="cmd.dictum"></a><a href="#cmd.dictum">\dictum</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.dictum">124</a>, <a href="scrguide.pdf#desc:scrextend.cmd.dictum">311</a></li>
+<li><a name="cmd.dictumauthorformat"></a><a href="#cmd.dictumauthorformat">\dictumauthorformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.dictumauthorformat">124</a>, <a href="scrguide.pdf#desc:scrextend.cmd.dictumauthorformat">311</a></li>
+<li><a name="cmd.dictumrule"></a><a href="#cmd.dictumrule">\dictumrule</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.dictumrule">124</a>, <a href="scrguide.pdf#desc:scrextend.cmd.dictumrule">311</a></li>
+<li><a name="cmd.dictumwidth"></a><a href="#cmd.dictumwidth">\dictumwidth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.dictumwidth">124</a>, <a href="scrguide.pdf#desc:scrextend.cmd.dictumwidth">311</a></li>
+<li><a name="cmd.documentclass"></a><a href="#cmd.documentclass">\documentclass</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.documentclass">171</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.documentclass">253</a>, <a href="scrguide.pdf#desc:scrextend.cmd.documentclass">294</a>, <a href="scrguide.pdf#desc:scrjura.cmd.documentclass">315</a>, <a href="scrguide.pdf#desc:typearea.cmd.documentclass">32</a>, <a href="scrguide.pdf#desc:scrhack.cmd.documentclass">422</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.documentclass">427</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.documentclass">475</a>, <a href="scrguide.pdf#desc:maincls.cmd.documentclass">57</a></li>
+<li><a name="cmd.doforeachtocfile"></a><a href="#cmd.doforeachtocfile">\doforeachtocfile</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.doforeachtocfile">387</a></li>
+<li><a name="cmd.ellipsispar"></a><a href="#cmd.ellipsispar">\ellipsispar</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.ellipsispar">325</a></li>
+<li><a name="cmd.emailname"></a><a href="#cmd.emailname">\emailname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.emailname">544</a></li>
+<li><a name="cmd.encl"></a><a href="#cmd.encl">\encl</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.encl">183</a></li>
+<li><a name="cmd.enclname"></a><a href="#cmd.enclname">\enclname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.enclname">544</a></li>
+<li><a name="cmd.extratitle"></a><a href="#cmd.extratitle">\extratitle</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.extratitle">302</a>, <a href="scrguide.pdf#desc:maincls.cmd.extratitle">70</a></li>
+<li><a name="cmd.faxname"></a><a href="#cmd.faxname">\faxname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.faxname">544</a></li>
+<li><a name="cmd.figureformat"></a><a href="#cmd.figureformat">\figureformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.figureformat">148</a></li>
+<li><a name="cmd.flushbottom"></a><a href="#cmd.flushbottom">\flushbottom</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.flushbottom">60</a></li>
+<li><a name="cmd.footnote"></a><a href="#cmd.footnote">\footnote</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.footnote">232</a>, <a href="scrguide.pdf#desc:scrextend.cmd.footnote">309</a>, <a href="scrguide.pdf#desc:maincls.cmd.footnote">95</a></li>
+<li><a name="cmd.footnotemark"></a><a href="#cmd.footnotemark">\footnotemark</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.footnotemark">232</a>, <a href="scrguide.pdf#desc:scrextend.cmd.footnotemark">309</a>, <a href="scrguide.pdf#desc:maincls.cmd.footnotemark">95</a></li>
+<li><a name="cmd.footnotetext"></a><a href="#cmd.footnotetext">\footnotetext</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.footnotetext">232</a>, <a href="scrguide.pdf#desc:scrextend.cmd.footnotetext">309</a>, <a href="scrguide.pdf#desc:maincls.cmd.footnotetext">95</a></li>
+<li><a name="cmd.footref"></a><a href="#cmd.footref">\footref</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.footref">232</a>, <a href="scrguide.pdf#desc:scrextend.cmd.footref">309</a>, <a href="scrguide.pdf#desc:maincls.cmd.footref">97</a></li>
+<li><a name="cmd.frontispiece"></a><a href="#cmd.frontispiece">\frontispiece</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.frontispiece">302</a>, <a href="scrguide.pdf#desc:maincls.cmd.frontispiece">70</a></li>
+<li><a name="cmd.frontmatter"></a><a href="#cmd.frontmatter">\frontmatter</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.frontmatter">100</a></li>
+<li><a name="cmd.headfromname"></a><a href="#cmd.headfromname">\headfromname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.headfromname">544</a></li>
+<li><a name="cmd.headmark"></a><a href="#cmd.headmark">\headmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.headmark">273</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.headmark">457</a></li>
+<li><a name="cmd.headtoname"></a><a href="#cmd.headtoname">\headtoname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.headtoname">544</a></li>
+<li><a name="cmd.if@atdocument"></a><a href="#cmd.if@atdocument">\if@atdocument</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.if@atdocument">359</a></li>
+<li><a name="cmd.if@chapter"></a><a href="#cmd.if@chapter">\if@chapter</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.if@chapter">429</a></li>
+<li><a name="cmd.if@mainmatter"></a><a href="#cmd.if@mainmatter">\if@mainmatter</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.if@mainmatter">429</a></li>
+<li><a name="cmd.ifVTeX"></a><a href="#cmd.ifVTeX">\ifVTeX</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifVTeX">358</a></li>
+<li><a name="cmd.ifattoclist"></a><a href="#cmd.ifattoclist">\ifattoclist</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.ifattoclist">384</a></li>
+<li><a name="cmd.ifdimen"></a><a href="#cmd.ifdimen">\ifdimen</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifdimen">360</a></li>
+<li><a name="cmd.ifdvioutput"></a><a href="#cmd.ifdvioutput">\ifdvioutput</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifdvioutput">359</a></li>
+<li><a name="cmd.ifiscount"></a><a href="#cmd.ifiscount">\ifiscount</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifiscount">361</a></li>
+<li><a name="cmd.ifiscounter"></a><a href="#cmd.ifiscounter">\ifiscounter</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifiscounter">361</a></li>
+<li><a name="cmd.ifisdimen"></a><a href="#cmd.ifisdimen">\ifisdimen</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifisdimen">360</a></li>
+<li><a name="cmd.ifisdimension"></a><a href="#cmd.ifisdimension">\ifisdimension</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifisdimension">360</a></li>
+<li><a name="cmd.ifisdimexpr"></a><a href="#cmd.ifisdimexpr">\ifisdimexpr</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifisdimexpr">360</a></li>
+<li><a name="cmd.ifisglue"></a><a href="#cmd.ifisglue">\ifisglue</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifisglue">360</a></li>
+<li><a name="cmd.ifisglueexpr"></a><a href="#cmd.ifisglueexpr">\ifisglueexpr</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifisglueexpr">361</a></li>
+<li><a name="cmd.ifisinteger"></a><a href="#cmd.ifisinteger">\ifisinteger</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifisinteger">361</a></li>
+<li><a name="cmd.ifisnumexpr"></a><a href="#cmd.ifisnumexpr">\ifisnumexpr</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifisnumexpr">361</a></li>
+<li><a name="cmd.ifisskip"></a><a href="#cmd.ifisskip">\ifisskip</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifisskip">360</a></li>
+<li><a name="cmd.ifkomavar"></a><a href="#cmd.ifkomavar">\ifkomavar</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.ifkomavar">169</a></li>
+<li><a name="cmd.ifkomavarempty*"></a><a href="#cmd.ifkomavarempty*">\ifkomavarempty*</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.ifkomavarempty*">169</a>, <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.ifkomavarempty*">539</a></li>
+<li><a name="cmd.ifkomavarempty"></a><a href="#cmd.ifkomavarempty">\ifkomavarempty</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.ifkomavarempty">169</a>, <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.ifkomavarempty">539</a></li>
+<li><a name="cmd.ifnotundefined"></a><a href="#cmd.ifnotundefined">\ifnotundefined</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifnotundefined">358</a></li>
+<li><a name="cmd.ifnumber"></a><a href="#cmd.ifnumber">\ifnumber</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifnumber">361</a></li>
+<li><a name="cmd.ifnumbered"></a><a href="#cmd.ifnumbered">\ifnumbered</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.ifnumbered">121</a></li>
+<li><a name="cmd.ifoot*"></a><a href="#cmd.ifoot*">\ifoot*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.ifoot*">267</a></li>
+<li><a name="cmd.ifoot"></a><a href="#cmd.ifoot">\ifoot</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.ifoot">266</a></li>
+<li><a name="cmd.ifpdfoutput"></a><a href="#cmd.ifpdfoutput">\ifpdfoutput</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifpdfoutput">359</a></li>
+<li><a name="cmd.ifpdftex"></a><a href="#cmd.ifpdftex">\ifpdftex</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifpdftex">358</a></li>
+<li><a name="cmd.ifpsoutput"></a><a href="#cmd.ifpsoutput">\ifpsoutput</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifpsoutput">359</a></li>
+<li><a name="cmd.ifstr"></a><a href="#cmd.ifstr">\ifstr</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifstr">359</a></li>
+<li><a name="cmd.ifstrstart"></a><a href="#cmd.ifstrstart">\ifstrstart</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifstrstart">359</a></li>
+<li><a name="cmd.ifthispageodd"></a><a href="#cmd.ifthispageodd">\ifthispageodd</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.ifthispageodd">224</a>, <a href="scrguide.pdf#desc:scrextend.cmd.ifthispageodd">305</a>, <a href="scrguide.pdf#desc:maincls.cmd.ifthispageodd">84</a></li>
+<li><a name="cmd.iftocfeature"></a><a href="#cmd.iftocfeature">\iftocfeature</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.iftocfeature">396</a></li>
+<li><a name="cmd.ifundefinedorrelax"></a><a href="#cmd.ifundefinedorrelax">\ifundefinedorrelax</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.ifundefinedorrelax">358</a></li>
+<li><a name="cmd.ifunnumbered"></a><a href="#cmd.ifunnumbered">\ifunnumbered</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.ifunnumbered">121</a></li>
+<li><a name="cmd.ihead*"></a><a href="#cmd.ihead*">\ihead*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.ihead*">267</a></li>
+<li><a name="cmd.ihead"></a><a href="#cmd.ihead">\ihead</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.ihead">266</a></li>
+<li><a name="cmd.indexpagestyle"></a><a href="#cmd.indexpagestyle">\indexpagestyle</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.indexpagestyle">88</a></li>
+<li><a name="cmd.invoicename"></a><a href="#cmd.invoicename">\invoicename</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.invoicename">544</a></li>
+<li><a name="cmd.item"></a><a href="#cmd.item">\item</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.item">126</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.item">235</a></li>
+<li><a name="cmd.l@addto@macro"></a><a href="#cmd.l@addto@macro">\l@addto@macro</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.l@addto@macro">367</a></li>
+<li><a name="cmd.labelenumi"></a><a href="#cmd.labelenumi">\labelenumi</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.labelenumi">128</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.labelenumi">235</a></li>
+<li><a name="cmd.labelenumii"></a><a href="#cmd.labelenumii">\labelenumii</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.labelenumii">128</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.labelenumii">235</a></li>
+<li><a name="cmd.labelenumiii"></a><a href="#cmd.labelenumiii">\labelenumiii</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.labelenumiii">128</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.labelenumiii">235</a></li>
+<li><a name="cmd.labelenumiv"></a><a href="#cmd.labelenumiv">\labelenumiv</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.labelenumiv">128</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.labelenumiv">235</a></li>
+<li><a name="cmd.labelitemi"></a><a href="#cmd.labelitemi">\labelitemi</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.labelitemi">126</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.labelitemi">235</a></li>
+<li><a name="cmd.labelitemii"></a><a href="#cmd.labelitemii">\labelitemii</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.labelitemii">126</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.labelitemii">235</a></li>
+<li><a name="cmd.labelitemiii"></a><a href="#cmd.labelitemiii">\labelitemiii</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.labelitemiii">126</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.labelitemiii">235</a></li>
+<li><a name="cmd.labelitemiv"></a><a href="#cmd.labelitemiv">\labelitemiv</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.labelitemiv">126</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.labelitemiv">235</a></li>
+<li><a name="cmd.layercontentsmeasure"></a><a href="#cmd.layercontentsmeasure">\layercontentsmeasure</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.layercontentsmeasure">443</a></li>
+<li><a name="cmd.layerhalign"></a><a href="#cmd.layerhalign">\layerhalign</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.layerhalign">440</a></li>
+<li><a name="cmd.layerheight"></a><a href="#cmd.layerheight">\layerheight</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.layerheight">440</a></li>
+<li><a name="cmd.layervalign"></a><a href="#cmd.layervalign">\layervalign</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.layervalign">440</a></li>
+<li><a name="cmd.layerwidth"></a><a href="#cmd.layerwidth">\layerwidth</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.layerwidth">440</a></li>
+<li><a name="cmd.layerxoffset"></a><a href="#cmd.layerxoffset">\layerxoffset</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.layerxoffset">440</a></li>
+<li><a name="cmd.layeryoffset"></a><a href="#cmd.layeryoffset">\layeryoffset</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.layeryoffset">440</a></li>
+<li><a name="cmd.lefoot*"></a><a href="#cmd.lefoot*">\lefoot*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.lefoot*">265</a></li>
+<li><a name="cmd.lefoot"></a><a href="#cmd.lefoot">\lefoot</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.lefoot">262</a></li>
+<li><a name="cmd.leftbotmark"></a><a href="#cmd.leftbotmark">\leftbotmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.leftbotmark">459</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.leftbotmark">466</a></li>
+<li><a name="cmd.leftfirstmark"></a><a href="#cmd.leftfirstmark">\leftfirstmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.leftfirstmark">459</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.leftfirstmark">466</a></li>
+<li><a name="cmd.leftmark"></a><a href="#cmd.leftmark">\leftmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.leftmark">273</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.leftmark">457</a></li>
+<li><a name="cmd.lefttopmark"></a><a href="#cmd.lefttopmark">\lefttopmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.lefttopmark">459</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.lefttopmark">466</a></li>
+<li><a name="cmd.lehead*"></a><a href="#cmd.lehead*">\lehead*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.lehead*">261</a></li>
+<li><a name="cmd.lehead"></a><a href="#cmd.lehead">\lehead</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.lehead">258</a></li>
+<li><a name="cmd.letterlastpage"></a><a href="#cmd.letterlastpage">\letterlastpage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.letterlastpage">178</a></li>
+<li><a name="cmd.letterpagestyle"></a><a href="#cmd.letterpagestyle">\letterpagestyle</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.letterpagestyle">225</a></li>
+<li><a name="cmd.listof/Dateierweiterung/name"></a><a href="#cmd.listof/Dateierweiterung/name">\listof/Dateierweiterung/name</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.listof/Dateierweiterung/name">390</a></li>
+<li><a name="cmd.listof/Zielendung/"></a><a href="#cmd.listof/Zielendung/">\listof/Zielendung/</a> --&gt; <a href="scrguide.pdf#desc:scrwfile.cmd.listof/Zielendung/">382</a></li>
+<li><a name="cmd.listofeachtoc"></a><a href="#cmd.listofeachtoc">\listofeachtoc</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.listofeachtoc">390</a></li>
+<li><a name="cmd.listoffigures"></a><a href="#cmd.listoffigures">\listoffigures</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.listoffigures">156</a></li>
+<li><a name="cmd.listoftables"></a><a href="#cmd.listoftables">\listoftables</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.listoftables">156</a></li>
+<li><a name="cmd.listoftoc*"></a><a href="#cmd.listoftoc*">\listoftoc*</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.listoftoc*">390</a></li>
+<li><a name="cmd.listoftoc"></a><a href="#cmd.listoftoc">\listoftoc</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.listoftoc">390</a></li>
+<li><a name="cmd.lofoot*"></a><a href="#cmd.lofoot*">\lofoot*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.lofoot*">265</a></li>
+<li><a name="cmd.lofoot"></a><a href="#cmd.lofoot">\lofoot</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.lofoot">262</a></li>
+<li><a name="cmd.lohead*"></a><a href="#cmd.lohead*">\lohead*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.lohead*">261</a></li>
+<li><a name="cmd.lohead"></a><a href="#cmd.lohead">\lohead</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.lohead">258</a></li>
+<li><a name="cmd.lowertitleback"></a><a href="#cmd.lowertitleback">\lowertitleback</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.lowertitleback">304</a>, <a href="scrguide.pdf#desc:maincls.cmd.lowertitleback">74</a></li>
+<li><a name="cmd.mainmatter"></a><a href="#cmd.mainmatter">\mainmatter</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.mainmatter">100</a></li>
+<li><a name="cmd.makenote*"></a><a href="#cmd.makenote*">\makenote*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.makenote*">483</a></li>
+<li><a name="cmd.makenote"></a><a href="#cmd.makenote">\makenote</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.makenote">483</a></li>
+<li><a name="cmd.maketitle"></a><a href="#cmd.maketitle">\maketitle</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.maketitle">301</a>, <a href="scrguide.pdf#desc:maincls.cmd.maketitle">69</a></li>
+<li><a name="cmd.manualmark"></a><a href="#cmd.manualmark">\manualmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.manualmark">269</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.manualmark">454</a></li>
+<li><a name="cmd.marginline"></a><a href="#cmd.marginline">\marginline</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.marginline">157</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.marginline">238</a>, <a href="scrguide.pdf#desc:scrextend.cmd.marginline">314</a></li>
+<li><a name="cmd.marginpar"></a><a href="#cmd.marginpar">\marginpar</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.marginpar">157</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.marginpar">238</a>, <a href="scrguide.pdf#desc:scrextend.cmd.marginpar">314</a></li>
+<li><a name="cmd.markboth"></a><a href="#cmd.markboth">\markboth</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.markboth">229</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.markboth">276</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.markboth">458</a>, <a href="scrguide.pdf#desc:maincls.cmd.markboth">88</a></li>
+<li><a name="cmd.markleft"></a><a href="#cmd.markleft">\markleft</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.markleft">276</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.markleft">458</a></li>
+<li><a name="cmd.markright"></a><a href="#cmd.markright">\markright</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.markright">229</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.markright">276</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.markright">458</a>, <a href="scrguide.pdf#desc:maincls.cmd.markright">88</a></li>
+<li><a name="cmd.minisec"></a><a href="#cmd.minisec">\minisec</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.minisec">113</a></li>
+<li><a name="cmd.mobilephonename"></a><a href="#cmd.mobilephonename">\mobilephonename</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.mobilephonename">544</a></li>
+<li><a name="cmd.multfootsep"></a><a href="#cmd.multfootsep">\multfootsep</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.multfootsep">231</a>, <a href="scrguide.pdf#desc:scrextend.cmd.multfootsep">308</a>, <a href="scrguide.pdf#desc:maincls.cmd.multfootsep">95</a></li>
+<li><a name="cmd.multiplefootnoteseparator"></a><a href="#cmd.multiplefootnoteseparator">\multiplefootnoteseparator</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.multiplefootnoteseparator">232</a>, <a href="scrguide.pdf#desc:scrextend.cmd.multiplefootnoteseparator">309</a>, <a href="scrguide.pdf#desc:maincls.cmd.multiplefootnoteseparator">95</a></li>
+<li><a name="cmd.myrefname"></a><a href="#cmd.myrefname">\myrefname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.myrefname">544</a></li>
+<li><a name="cmd.nameday"></a><a href="#cmd.nameday">\nameday</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.nameday">284</a></li>
+<li><a name="cmd.newbibstyle"></a><a href="#cmd.newbibstyle">\newbibstyle</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.newbibstyle">519</a></li>
+<li><a name="cmd.newblock"></a><a href="#cmd.newblock">\newblock</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.newblock">519</a></li>
+<li><a name="cmd.newcaptionname*"></a><a href="#cmd.newcaptionname*">\newcaptionname*</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.newcaptionname*">362</a></li>
+<li><a name="cmd.newcaptionname"></a><a href="#cmd.newcaptionname">\newcaptionname</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.newcaptionname">362</a></li>
+<li><a name="cmd.newdaylanguage"></a><a href="#cmd.newdaylanguage">\newdaylanguage</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.newdaylanguage">284</a></li>
+<li><a name="cmd.newkomafont"></a><a href="#cmd.newkomafont">\newkomafont</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.newkomafont">496</a></li>
+<li><a name="cmd.newkomavar*"></a><a href="#cmd.newkomavar*">\newkomavar*</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.newkomavar*">537</a></li>
+<li><a name="cmd.newkomavar"></a><a href="#cmd.newkomavar">\newkomavar</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.newkomavar">537</a></li>
+<li><a name="cmd.newpagestyle"></a><a href="#cmd.newpagestyle">\newpagestyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.newpagestyle">470</a></li>
+<li><a name="cmd.newpairofpagestyles"></a><a href="#cmd.newpairofpagestyles">\newpairofpagestyles</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.newpairofpagestyles">468</a></li>
+<li><a name="cmd.newplength"></a><a href="#cmd.newplength">\newplength</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.newplength">526</a></li>
+<li><a name="cmd.nonumberline"></a><a href="#cmd.nonumberline">\nonumberline</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.nonumberline">411</a></li>
+<li><a name="cmd.numberline"></a><a href="#cmd.numberline">\numberline</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.numberline">397</a></li>
+<li><a name="cmd.ofoot*"></a><a href="#cmd.ofoot*">\ofoot*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.ofoot*">267</a></li>
+<li><a name="cmd.ofoot"></a><a href="#cmd.ofoot">\ofoot</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.ofoot">266</a></li>
+<li><a name="cmd.ohead*"></a><a href="#cmd.ohead*">\ohead*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.ohead*">267</a></li>
+<li><a name="cmd.ohead"></a><a href="#cmd.ohead">\ohead</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.ohead">266</a></li>
+<li><a name="cmd.opening"></a><a href="#cmd.opening">\opening</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.opening">178</a></li>
+<li><a name="cmd.othersectionlevelsformat"></a><a href="#cmd.othersectionlevelsformat">\othersectionlevelsformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.othersectionlevelsformat">117</a></li>
+<li><a name="cmd.pagemark"></a><a href="#cmd.pagemark">\pagemark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.pagemark">273</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.pagemark">457</a></li>
+<li><a name="cmd.pagename"></a><a href="#cmd.pagename">\pagename</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.pagename">544</a></li>
+<li><a name="cmd.pagenumbering"></a><a href="#cmd.pagenumbering">\pagenumbering</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.pagenumbering">90</a></li>
+<li><a name="cmd.pagestyle"></a><a href="#cmd.pagestyle">\pagestyle</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.pagestyle">226</a>, <a href="scrguide.pdf#desc:maincls.cmd.pagestyle">86</a></li>
+<li><a name="cmd.paragraph*"></a><a href="#cmd.paragraph*">\paragraph*</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.paragraph*">112</a></li>
+<li><a name="cmd.paragraph"></a><a href="#cmd.paragraph">\paragraph</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.paragraph">107</a></li>
+<li><a name="cmd.paragraphformat"></a><a href="#cmd.paragraphformat">\paragraphformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.paragraphformat">117</a></li>
+<li><a name="cmd.paragraphmark"></a><a href="#cmd.paragraphmark">\paragraphmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.paragraphmark">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.paragraphmark">458</a></li>
+<li><a name="cmd.paragraphmarkformat"></a><a href="#cmd.paragraphmarkformat">\paragraphmarkformat</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.paragraphmarkformat">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.paragraphmarkformat">457</a></li>
+<li><a name="cmd.paragraphnumdepth"></a><a href="#cmd.paragraphnumdepth">\paragraphnumdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.paragraphnumdepth">121</a></li>
+<li><a name="cmd.paragraphtocdepth"></a><a href="#cmd.paragraphtocdepth">\paragraphtocdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.paragraphtocdepth">81</a></li>
+<li><a name="cmd.parellipsis"></a><a href="#cmd.parellipsis">\parellipsis</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.parellipsis">325</a></li>
+<li><a name="cmd.parformat"></a><a href="#cmd.parformat">\parformat</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.parformat">324</a></li>
+<li><a name="cmd.parformatseparation"></a><a href="#cmd.parformatseparation">\parformatseparation</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.parformatseparation">324</a></li>
+<li><a name="cmd.parname"></a><a href="#cmd.parname">\parname</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.parname">332</a></li>
+<li><a name="cmd.parshortname"></a><a href="#cmd.parshortname">\parshortname</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.parshortname">332</a></li>
+<li><a name="cmd.part*"></a><a href="#cmd.part*">\part*</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.part*">112</a></li>
+<li><a name="cmd.part"></a><a href="#cmd.part">\part</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.part">107</a></li>
+<li><a name="cmd.partformat"></a><a href="#cmd.partformat">\partformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.partformat">117</a></li>
+<li><a name="cmd.partheademptypage"></a><a href="#cmd.partheademptypage">\partheademptypage</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.partheademptypage">510</a></li>
+<li><a name="cmd.partheadendvskip"></a><a href="#cmd.partheadendvskip">\partheadendvskip</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.partheadendvskip">510</a></li>
+<li><a name="cmd.partheadmidvskip"></a><a href="#cmd.partheadmidvskip">\partheadmidvskip</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.partheadmidvskip">510</a></li>
+<li><a name="cmd.partheadstartvskip"></a><a href="#cmd.partheadstartvskip">\partheadstartvskip</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.partheadstartvskip">510</a></li>
+<li><a name="cmd.partlineswithprefixformat"></a><a href="#cmd.partlineswithprefixformat">\partlineswithprefixformat</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.partlineswithprefixformat">512</a></li>
+<li><a name="cmd.partmark"></a><a href="#cmd.partmark">\partmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.partmark">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.partmark">458</a></li>
+<li><a name="cmd.partmarkformat"></a><a href="#cmd.partmarkformat">\partmarkformat</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.partmarkformat">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.partmarkformat">457</a></li>
+<li><a name="cmd.partnumdepth"></a><a href="#cmd.partnumdepth">\partnumdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.partnumdepth">121</a></li>
+<li><a name="cmd.partpagestyle"></a><a href="#cmd.partpagestyle">\partpagestyle</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.partpagestyle">88</a></li>
+<li><a name="cmd.parttocdepth"></a><a href="#cmd.parttocdepth">\parttocdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.parttocdepth">81</a></li>
+<li><a name="cmd.phonename"></a><a href="#cmd.phonename">\phonename</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.phonename">544</a></li>
+<li><a name="cmd.providecaptionname*"></a><a href="#cmd.providecaptionname*">\providecaptionname*</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.providecaptionname*">362</a></li>
+<li><a name="cmd.providecaptionname"></a><a href="#cmd.providecaptionname">\providecaptionname</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.providecaptionname">362</a></li>
+<li><a name="cmd.providepagestyle"></a><a href="#cmd.providepagestyle">\providepagestyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.providepagestyle">470</a></li>
+<li><a name="cmd.providepairofpagestyles"></a><a href="#cmd.providepairofpagestyles">\providepairofpagestyles</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.providepairofpagestyles">468</a></li>
+<li><a name="cmd.ps"></a><a href="#cmd.ps">\ps</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.ps">180</a></li>
+<li><a name="cmd.publishers"></a><a href="#cmd.publishers">\publishers</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.publishers">302</a>, <a href="scrguide.pdf#desc:maincls.cmd.publishers">71</a></li>
+<li><a name="cmd.putC"></a><a href="#cmd.putC">\putC</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.putC">441</a></li>
+<li><a name="cmd.putLL"></a><a href="#cmd.putLL">\putLL</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.putLL">441</a></li>
+<li><a name="cmd.putLR"></a><a href="#cmd.putLR">\putLR</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.putLR">441</a></li>
+<li><a name="cmd.putUL"></a><a href="#cmd.putUL">\putUL</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.putUL">441</a></li>
+<li><a name="cmd.putUR"></a><a href="#cmd.putUR">\putUR</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.putUR">441</a></li>
+<li><a name="cmd.raggedbottom"></a><a href="#cmd.raggedbottom">\raggedbottom</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.raggedbottom">60</a></li>
+<li><a name="cmd.raggedchapter"></a><a href="#cmd.raggedchapter">\raggedchapter</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.raggedchapter">115</a></li>
+<li><a name="cmd.raggedchapterentry"></a><a href="#cmd.raggedchapterentry">\raggedchapterentry</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.raggedchapterentry">495</a></li>
+<li><a name="cmd.raggeddictum"></a><a href="#cmd.raggeddictum">\raggeddictum</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.raggeddictum">124</a>, <a href="scrguide.pdf#desc:scrextend.cmd.raggeddictum">311</a></li>
+<li><a name="cmd.raggeddictumauthor"></a><a href="#cmd.raggeddictumauthor">\raggeddictumauthor</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.raggeddictumauthor">124</a>, <a href="scrguide.pdf#desc:scrextend.cmd.raggeddictumauthor">311</a></li>
+<li><a name="cmd.raggeddictumtext"></a><a href="#cmd.raggeddictumtext">\raggeddictumtext</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.raggeddictumtext">124</a>, <a href="scrguide.pdf#desc:scrextend.cmd.raggeddictumtext">311</a></li>
+<li><a name="cmd.raggedfootnote"></a><a href="#cmd.raggedfootnote">\raggedfootnote</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.raggedfootnote">234</a>, <a href="scrguide.pdf#desc:scrextend.cmd.raggedfootnote">311</a>, <a href="scrguide.pdf#desc:maincls.cmd.raggedfootnote">99</a></li>
+<li><a name="cmd.raggedpart"></a><a href="#cmd.raggedpart">\raggedpart</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.raggedpart">115</a></li>
+<li><a name="cmd.raggedsection"></a><a href="#cmd.raggedsection">\raggedsection</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.raggedsection">115</a></li>
+<li><a name="cmd.raggedsignature"></a><a href="#cmd.raggedsignature">\raggedsignature</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.raggedsignature">239</a></li>
+<li><a name="cmd.recalctypearea"></a><a href="#cmd.recalctypearea">\recalctypearea</a> --&gt; <a href="scrguide.pdf#desc:typearea.cmd.recalctypearea">41</a></li>
+<li><a name="cmd.ref"></a><a href="#cmd.ref">\ref</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.ref">327</a></li>
+<li><a name="cmd.refClause"></a><a href="#cmd.refClause">\refClause</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refClause">327</a></li>
+<li><a name="cmd.refClauseN"></a><a href="#cmd.refClauseN">\refClauseN</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refClauseN">327</a></li>
+<li><a name="cmd.refL"></a><a href="#cmd.refL">\refL</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refL">327</a></li>
+<li><a name="cmd.refN"></a><a href="#cmd.refN">\refN</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refN">327</a></li>
+<li><a name="cmd.refPar"></a><a href="#cmd.refPar">\refPar</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refPar">327</a></li>
+<li><a name="cmd.refParL"></a><a href="#cmd.refParL">\refParL</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refParL">327</a></li>
+<li><a name="cmd.refParN"></a><a href="#cmd.refParN">\refParN</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refParN">327</a></li>
+<li><a name="cmd.refParS"></a><a href="#cmd.refParS">\refParS</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refParS">327</a></li>
+<li><a name="cmd.refS"></a><a href="#cmd.refS">\refS</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refS">327</a></li>
+<li><a name="cmd.refSentence"></a><a href="#cmd.refSentence">\refSentence</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refSentence">327</a></li>
+<li><a name="cmd.refSentenceL"></a><a href="#cmd.refSentenceL">\refSentenceL</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refSentenceL">327</a></li>
+<li><a name="cmd.refSentenceN"></a><a href="#cmd.refSentenceN">\refSentenceN</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refSentenceN">327</a></li>
+<li><a name="cmd.refSentenceS"></a><a href="#cmd.refSentenceS">\refSentenceS</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.refSentenceS">327</a></li>
+<li><a name="cmd.refoot*"></a><a href="#cmd.refoot*">\refoot*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.refoot*">265</a></li>
+<li><a name="cmd.refoot"></a><a href="#cmd.refoot">\refoot</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.refoot">262</a></li>
+<li><a name="cmd.rehead*"></a><a href="#cmd.rehead*">\rehead*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.rehead*">261</a></li>
+<li><a name="cmd.rehead"></a><a href="#cmd.rehead">\rehead</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.rehead">258</a></li>
+<li><a name="cmd.removefromtoclist"></a><a href="#cmd.removefromtoclist">\removefromtoclist</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.removefromtoclist">387</a></li>
+<li><a name="cmd.removereffields"></a><a href="#cmd.removereffields">\removereffields</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.removereffields">537</a></li>
+<li><a name="cmd.renewcaptionname*"></a><a href="#cmd.renewcaptionname*">\renewcaptionname*</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.renewcaptionname*">362</a></li>
+<li><a name="cmd.renewcaptionname"></a><a href="#cmd.renewcaptionname">\renewcaptionname</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.renewcaptionname">362</a></li>
+<li><a name="cmd.renewpagestyle"></a><a href="#cmd.renewpagestyle">\renewpagestyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.renewpagestyle">470</a></li>
+<li><a name="cmd.renewpairofpagestyles"></a><a href="#cmd.renewpairofpagestyles">\renewpairofpagestyles</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.renewpairofpagestyles">468</a></li>
+<li><a name="cmd.rightbotmark"></a><a href="#cmd.rightbotmark">\rightbotmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.rightbotmark">459</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.rightbotmark">466</a></li>
+<li><a name="cmd.rightfirstmark"></a><a href="#cmd.rightfirstmark">\rightfirstmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.rightfirstmark">459</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.rightfirstmark">466</a></li>
+<li><a name="cmd.rightmark"></a><a href="#cmd.rightmark">\rightmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.rightmark">273</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.rightmark">457</a></li>
+<li><a name="cmd.righttopmark"></a><a href="#cmd.righttopmark">\righttopmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.righttopmark">459</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage-experts.cmd.righttopmark">466</a></li>
+<li><a name="cmd.rofoot*"></a><a href="#cmd.rofoot*">\rofoot*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.rofoot*">265</a></li>
+<li><a name="cmd.rofoot"></a><a href="#cmd.rofoot">\rofoot</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.rofoot">262</a></li>
+<li><a name="cmd.rohead*"></a><a href="#cmd.rohead*">\rohead*</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.rohead*">261</a></li>
+<li><a name="cmd.rohead"></a><a href="#cmd.rohead">\rohead</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.rohead">258</a></li>
+<li><a name="cmd.scr@ifVTeX"></a><a href="#cmd.scr@ifVTeX">\scr@ifVTeX</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.scr@ifVTeX">358</a></li>
+<li><a name="cmd.scr@ifdvioutput"></a><a href="#cmd.scr@ifdvioutput">\scr@ifdvioutput</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.scr@ifdvioutput">359</a></li>
+<li><a name="cmd.scr@ifluatex"></a><a href="#cmd.scr@ifluatex">\scr@ifluatex</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.scr@ifluatex">358</a></li>
+<li><a name="cmd.scr@ifpdfoutput"></a><a href="#cmd.scr@ifpdfoutput">\scr@ifpdfoutput</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.scr@ifpdfoutput">359</a></li>
+<li><a name="cmd.scr@ifpdftex"></a><a href="#cmd.scr@ifpdftex">\scr@ifpdftex</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.scr@ifpdftex">358</a></li>
+<li><a name="cmd.scr@ifpsoutput"></a><a href="#cmd.scr@ifpsoutput">\scr@ifpsoutput</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.scr@ifpsoutput">359</a></li>
+<li><a name="cmd.scr@ifundefinedorrelax"></a><a href="#cmd.scr@ifundefinedorrelax">\scr@ifundefinedorrelax</a> --&gt; <a href="scrguide.pdf#desc:scrbase.cmd.scr@ifundefinedorrelax">358</a></li>
+<li><a name="cmd.scr@startsection"></a><a href="#cmd.scr@startsection">\scr@startsection</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.scr@startsection">517</a></li>
+<li><a name="cmd.scrlayerAddCsToInterface"></a><a href="#cmd.scrlayerAddCsToInterface">\scrlayerAddCsToInterface</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.scrlayerAddCsToInterface">462</a></li>
+<li><a name="cmd.scrlayerAddToInterface"></a><a href="#cmd.scrlayerAddToInterface">\scrlayerAddToInterface</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.scrlayerAddToInterface">462</a></li>
+<li><a name="cmd.scrlayerInitInterface"></a><a href="#cmd.scrlayerInitInterface">\scrlayerInitInterface</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.scrlayerInitInterface">461</a></li>
+<li><a name="cmd.scrlayerOnAutoRemoveInterface"></a><a href="#cmd.scrlayerOnAutoRemoveInterface">\scrlayerOnAutoRemoveInterface</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.scrlayerOnAutoRemoveInterface">463</a></li>
+<li><a name="cmd.section*"></a><a href="#cmd.section*">\section*</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.section*">112</a></li>
+<li><a name="cmd.section"></a><a href="#cmd.section">\section</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.section">107</a></li>
+<li><a name="cmd.sectioncatchphraseformat"></a><a href="#cmd.sectioncatchphraseformat">\sectioncatchphraseformat</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.sectioncatchphraseformat">515</a></li>
+<li><a name="cmd.sectionformat"></a><a href="#cmd.sectionformat">\sectionformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.sectionformat">117</a></li>
+<li><a name="cmd.sectionlinesformat"></a><a href="#cmd.sectionlinesformat">\sectionlinesformat</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.sectionlinesformat">515</a></li>
+<li><a name="cmd.sectionmark"></a><a href="#cmd.sectionmark">\sectionmark</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.sectionmark">119</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.sectionmark">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.sectionmark">458</a></li>
+<li><a name="cmd.sectionmarkformat"></a><a href="#cmd.sectionmarkformat">\sectionmarkformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.sectionmarkformat">119</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.sectionmarkformat">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.sectionmarkformat">457</a></li>
+<li><a name="cmd.sectionnumdepth"></a><a href="#cmd.sectionnumdepth">\sectionnumdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.sectionnumdepth">121</a></li>
+<li><a name="cmd.sectiontocdepth"></a><a href="#cmd.sectiontocdepth">\sectiontocdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.sectiontocdepth">81</a></li>
+<li><a name="cmd.sentencename"></a><a href="#cmd.sentencename">\sentencename</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.sentencename">332</a></li>
+<li><a name="cmd.sentencenumberformat"></a><a href="#cmd.sentencenumberformat">\sentencenumberformat</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.sentencenumberformat">326</a></li>
+<li><a name="cmd.sentenceshortname"></a><a href="#cmd.sentenceshortname">\sentenceshortname</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.sentenceshortname">332</a></li>
+<li><a name="cmd.setbibpreamble"></a><a href="#cmd.setbibpreamble">\setbibpreamble</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.setbibpreamble">160</a></li>
+<li><a name="cmd.setcapdynwidth"></a><a href="#cmd.setcapdynwidth">\setcapdynwidth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.setcapdynwidth">150</a></li>
+<li><a name="cmd.setcaphanging"></a><a href="#cmd.setcaphanging">\setcaphanging</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.setcaphanging">149</a></li>
+<li><a name="cmd.setcapindent*"></a><a href="#cmd.setcapindent*">\setcapindent*</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.setcapindent*">149</a></li>
+<li><a name="cmd.setcapindent"></a><a href="#cmd.setcapindent">\setcapindent</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.setcapindent">149</a></li>
+<li><a name="cmd.setcapmargin*"></a><a href="#cmd.setcapmargin*">\setcapmargin*</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.setcapmargin*">150</a></li>
+<li><a name="cmd.setcapmargin"></a><a href="#cmd.setcapmargin">\setcapmargin</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.setcapmargin">150</a></li>
+<li><a name="cmd.setcaptionalignment"></a><a href="#cmd.setcaptionalignment">\setcaptionalignment</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.setcaptionalignment">151</a></li>
+<li><a name="cmd.setcapwidth"></a><a href="#cmd.setcapwidth">\setcapwidth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.setcapwidth">150</a></li>
+<li><a name="cmd.setchapterpreamble"></a><a href="#cmd.setchapterpreamble">\setchapterpreamble</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.setchapterpreamble">122</a></li>
+<li><a name="cmd.setfootnoterule"></a><a href="#cmd.setfootnoterule">\setfootnoterule</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.setfootnoterule">234</a>, <a href="scrguide.pdf#desc:maincls.cmd.setfootnoterule">99</a></li>
+<li><a name="cmd.setindexpreamble"></a><a href="#cmd.setindexpreamble">\setindexpreamble</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.setindexpreamble">162</a></li>
+<li><a name="cmd.setkomafont"></a><a href="#cmd.setkomafont">\setkomafont</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.setkomafont">188</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.setkomafont">255</a>, <a href="scrguide.pdf#desc:scrextend.cmd.setkomafont">298</a>, <a href="scrguide.pdf#desc:scrjura.cmd.setkomafont">317</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.setkomafont">477</a>, <a href="scrguide.pdf#desc:maincls.cmd.setkomafont">62</a></li>
+<li><a name="cmd.setkomavar*"></a><a href="#cmd.setkomavar*">\setkomavar*</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.setkomavar*">168</a></li>
+<li><a name="cmd.setkomavar"></a><a href="#cmd.setkomavar">\setkomavar</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.setkomavar">168</a></li>
+<li><a name="cmd.setlengthtoplength"></a><a href="#cmd.setlengthtoplength">\setlengthtoplength</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.setlengthtoplength">170</a></li>
+<li><a name="cmd.setparsizes"></a><a href="#cmd.setparsizes">\setparsizes</a> --&gt; <a href="scrguide.pdf#desc:maincls-experts.cmd.setparsizes">498</a></li>
+<li><a name="cmd.setpartpreamble"></a><a href="#cmd.setpartpreamble">\setpartpreamble</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.setpartpreamble">122</a></li>
+<li><a name="cmd.setplength"></a><a href="#cmd.setplength">\setplength</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.setplength">526</a></li>
+<li><a name="cmd.setplengthtodepth"></a><a href="#cmd.setplengthtodepth">\setplengthtodepth</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.setplengthtodepth">528</a></li>
+<li><a name="cmd.setplengthtoheight"></a><a href="#cmd.setplengthtoheight">\setplengthtoheight</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.setplengthtoheight">528</a></li>
+<li><a name="cmd.setplengthtototalheight"></a><a href="#cmd.setplengthtototalheight">\setplengthtototalheight</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.setplengthtototalheight">528</a></li>
+<li><a name="cmd.setplengthtowidth"></a><a href="#cmd.setplengthtowidth">\setplengthtowidth</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.setplengthtowidth">528</a></li>
+<li><a name="cmd.settime"></a><a href="#cmd.settime">\settime</a> --&gt; <a href="scrguide.pdf#desc:scrtime.cmd.settime">287</a></li>
+<li><a name="cmd.setuptoc"></a><a href="#cmd.setuptoc">\setuptoc</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.setuptoc">393</a></li>
+<li><a name="cmd.storeareas"></a><a href="#cmd.storeareas">\storeareas</a> --&gt; <a href="scrguide.pdf#desc:typearea-experts.cmd.storeareas">491</a></li>
+<li><a name="cmd.subject"></a><a href="#cmd.subject">\subject</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.subject">302</a>, <a href="scrguide.pdf#desc:maincls.cmd.subject">71</a></li>
+<li><a name="cmd.subjectname"></a><a href="#cmd.subjectname">\subjectname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.subjectname">544</a></li>
+<li><a name="cmd.subparagraph*"></a><a href="#cmd.subparagraph*">\subparagraph*</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subparagraph*">112</a></li>
+<li><a name="cmd.subparagraph"></a><a href="#cmd.subparagraph">\subparagraph</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subparagraph">107</a></li>
+<li><a name="cmd.subparagraphformat"></a><a href="#cmd.subparagraphformat">\subparagraphformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subparagraphformat">117</a></li>
+<li><a name="cmd.subparagraphmark"></a><a href="#cmd.subparagraphmark">\subparagraphmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.subparagraphmark">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.subparagraphmark">458</a></li>
+<li><a name="cmd.subparagraphmarkformat"></a><a href="#cmd.subparagraphmarkformat">\subparagraphmarkformat</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.subparagraphmarkformat">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.subparagraphmarkformat">457</a></li>
+<li><a name="cmd.subparagraphnumdepth"></a><a href="#cmd.subparagraphnumdepth">\subparagraphnumdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subparagraphnumdepth">121</a></li>
+<li><a name="cmd.subparagraphtocdepth"></a><a href="#cmd.subparagraphtocdepth">\subparagraphtocdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subparagraphtocdepth">81</a></li>
+<li><a name="cmd.subsection*"></a><a href="#cmd.subsection*">\subsection*</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subsection*">112</a></li>
+<li><a name="cmd.subsection"></a><a href="#cmd.subsection">\subsection</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subsection">107</a></li>
+<li><a name="cmd.subsectionformat"></a><a href="#cmd.subsectionformat">\subsectionformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subsectionformat">117</a></li>
+<li><a name="cmd.subsectionmark"></a><a href="#cmd.subsectionmark">\subsectionmark</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subsectionmark">119</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.subsectionmark">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.subsectionmark">458</a></li>
+<li><a name="cmd.subsectionmarkformat"></a><a href="#cmd.subsectionmarkformat">\subsectionmarkformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subsectionmarkformat">119</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.subsectionmarkformat">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.subsectionmarkformat">457</a></li>
+<li><a name="cmd.subsectionnumdepth"></a><a href="#cmd.subsectionnumdepth">\subsectionnumdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subsectionnumdepth">121</a></li>
+<li><a name="cmd.subsectiontocdepth"></a><a href="#cmd.subsectiontocdepth">\subsectiontocdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subsectiontocdepth">81</a></li>
+<li><a name="cmd.subsubsection*"></a><a href="#cmd.subsubsection*">\subsubsection*</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subsubsection*">112</a></li>
+<li><a name="cmd.subsubsection"></a><a href="#cmd.subsubsection">\subsubsection</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subsubsection">107</a></li>
+<li><a name="cmd.subsubsectionformat"></a><a href="#cmd.subsubsectionformat">\subsubsectionformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subsubsectionformat">117</a></li>
+<li><a name="cmd.subsubsectionmark"></a><a href="#cmd.subsubsectionmark">\subsubsectionmark</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.subsubsectionmark">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.subsubsectionmark">458</a></li>
+<li><a name="cmd.subsubsectionmarkformat"></a><a href="#cmd.subsubsectionmarkformat">\subsubsectionmarkformat</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.subsubsectionmarkformat">275</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.subsubsectionmarkformat">457</a></li>
+<li><a name="cmd.subsubsectionnumdepth"></a><a href="#cmd.subsubsectionnumdepth">\subsubsectionnumdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subsubsectionnumdepth">121</a></li>
+<li><a name="cmd.subsubsectiontocdepth"></a><a href="#cmd.subsubsectiontocdepth">\subsubsectiontocdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.subsubsectiontocdepth">81</a></li>
+<li><a name="cmd.subtitle"></a><a href="#cmd.subtitle">\subtitle</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.subtitle">302</a>, <a href="scrguide.pdf#desc:maincls.cmd.subtitle">71</a></li>
+<li><a name="cmd.syncwithnotecolumn"></a><a href="#cmd.syncwithnotecolumn">\syncwithnotecolumn</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.syncwithnotecolumn">484</a></li>
+<li><a name="cmd.syncwithnotecolumns"></a><a href="#cmd.syncwithnotecolumns">\syncwithnotecolumns</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.syncwithnotecolumns">486</a></li>
+<li><a name="cmd.tableformat"></a><a href="#cmd.tableformat">\tableformat</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.tableformat">148</a></li>
+<li><a name="cmd.tableofcontents"></a><a href="#cmd.tableofcontents">\tableofcontents</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.tableofcontents">80</a></li>
+<li><a name="cmd.tb@/Dateierweiterung/@after@hook"></a><a href="#cmd.tb@/Dateierweiterung/@after@hook">\tb@/Dateierweiterung/@after@hook</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.tb@/Dateierweiterung/@after@hook">411</a></li>
+<li><a name="cmd.tb@/Dateierweiterung/@before@hook"></a><a href="#cmd.tb@/Dateierweiterung/@before@hook">\tb@/Dateierweiterung/@before@hook</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.tb@/Dateierweiterung/@before@hook">411</a></li>
+<li><a name="cmd.textsubscript"></a><a href="#cmd.textsubscript">\textsubscript</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.textsubscript">188</a>, <a href="scrguide.pdf#desc:scrextend.cmd.textsubscript">298</a>, <a href="scrguide.pdf#desc:maincls.cmd.textsubscript">61</a></li>
+<li><a name="cmd.textsuperscript"></a><a href="#cmd.textsuperscript">\textsuperscript</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.textsuperscript">188</a>, <a href="scrguide.pdf#desc:scrextend.cmd.textsuperscript">298</a>, <a href="scrguide.pdf#desc:maincls.cmd.textsuperscript">61</a></li>
+<li><a name="cmd.thanks"></a><a href="#cmd.thanks">\thanks</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.thanks">302</a>, <a href="scrguide.pdf#desc:maincls.cmd.thanks">71</a></li>
+<li><a name="cmd.theenumi"></a><a href="#cmd.theenumi">\theenumi</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.theenumi">128</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.theenumi">235</a></li>
+<li><a name="cmd.theenumii"></a><a href="#cmd.theenumii">\theenumii</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.theenumii">128</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.theenumii">235</a></li>
+<li><a name="cmd.theenumiii"></a><a href="#cmd.theenumiii">\theenumiii</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.theenumiii">128</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.theenumiii">235</a></li>
+<li><a name="cmd.theenumiv"></a><a href="#cmd.theenumiv">\theenumiv</a> --&gt; <a href="scrguide.pdf#desc:maincls.cmd.theenumiv">128</a>, <a href="scrguide.pdf#desc:scrlttr2.cmd.theenumiv">235</a></li>
+<li><a name="cmd.thefootnotemark"></a><a href="#cmd.thefootnotemark">\thefootnotemark</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.thefootnotemark">233</a>, <a href="scrguide.pdf#desc:scrextend.cmd.thefootnotemark">310</a>, <a href="scrguide.pdf#desc:maincls.cmd.thefootnotemark">97</a></li>
+<li><a name="cmd.thepar"></a><a href="#cmd.thepar">\thepar</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.thepar">324</a></li>
+<li><a name="cmd.thesentence"></a><a href="#cmd.thesentence">\thesentence</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.thesentence">326</a></li>
+<li><a name="cmd.thisletter"></a><a href="#cmd.thisletter">\thisletter</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.thisletter">178</a></li>
+<li><a name="cmd.thispagestyle"></a><a href="#cmd.thispagestyle">\thispagestyle</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.thispagestyle">226</a>, <a href="scrguide.pdf#desc:maincls.cmd.thispagestyle">86</a></li>
+<li><a name="cmd.thistime*"></a><a href="#cmd.thistime*">\thistime*</a> --&gt; <a href="scrguide.pdf#desc:scrtime.cmd.thistime*">286</a></li>
+<li><a name="cmd.thistime"></a><a href="#cmd.thistime">\thistime</a> --&gt; <a href="scrguide.pdf#desc:scrtime.cmd.thistime">286</a></li>
+<li><a name="cmd.title"></a><a href="#cmd.title">\title</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.title">302</a>, <a href="scrguide.pdf#desc:maincls.cmd.title">71</a></li>
+<li><a name="cmd.titlehead"></a><a href="#cmd.titlehead">\titlehead</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.titlehead">302</a>, <a href="scrguide.pdf#desc:maincls.cmd.titlehead">71</a></li>
+<li><a name="cmd.titlepagestyle"></a><a href="#cmd.titlepagestyle">\titlepagestyle</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.titlepagestyle">305</a>, <a href="scrguide.pdf#desc:maincls.cmd.titlepagestyle">88</a></li>
+<li><a name="cmd.tocbasic@@after@hook"></a><a href="#cmd.tocbasic@@after@hook">\tocbasic@@after@hook</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.tocbasic@@after@hook">410</a></li>
+<li><a name="cmd.tocbasic@@before@hook"></a><a href="#cmd.tocbasic@@before@hook">\tocbasic@@before@hook</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.tocbasic@@before@hook">410</a></li>
+<li><a name="cmd.tocbasic@DependOnPenaltyAndTOCLevel"></a><a href="#cmd.tocbasic@DependOnPenaltyAndTOCLevel">\tocbasic@DependOnPenaltyAndTOCLevel</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.tocbasic@DependOnPenaltyAndTOCLevel">412</a></li>
+<li><a name="cmd.tocbasic@SetPenaltyByTOCLevel"></a><a href="#cmd.tocbasic@SetPenaltyByTOCLevel">\tocbasic@SetPenaltyByTOCLevel</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.tocbasic@SetPenaltyByTOCLevel">412</a></li>
+<li><a name="cmd.tocbasic@addxcontentsline"></a><a href="#cmd.tocbasic@addxcontentsline">\tocbasic@addxcontentsline</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.tocbasic@addxcontentsline">411</a></li>
+<li><a name="cmd.tocbasic@extend@babel"></a><a href="#cmd.tocbasic@extend@babel">\tocbasic@extend@babel</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.tocbasic@extend@babel">409</a></li>
+<li><a name="cmd.tocbasic@listhead"></a><a href="#cmd.tocbasic@listhead">\tocbasic@listhead</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.tocbasic@listhead">411</a></li>
+<li><a name="cmd.tocbasic@listhead@/Dateierweiterung/"></a><a href="#cmd.tocbasic@listhead@/Dateierweiterung/">\tocbasic@listhead@/Dateierweiterung/</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.tocbasic@listhead@/Dateierweiterung/">411</a></li>
+<li><a name="cmd.tocbasic@starttoc"></a><a href="#cmd.tocbasic@starttoc">\tocbasic@starttoc</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.tocbasic@starttoc">410</a></li>
+<li><a name="cmd.tocbasicautomode"></a><a href="#cmd.tocbasicautomode">\tocbasicautomode</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.tocbasicautomode">388</a></li>
+<li><a name="cmd.todaysname"></a><a href="#cmd.todaysname">\todaysname</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.todaysname">283</a></li>
+<li><a name="cmd.todaysnumber"></a><a href="#cmd.todaysnumber">\todaysnumber</a> --&gt; <a href="scrguide.pdf#desc:scrdate.cmd.todaysnumber">283</a></li>
+<li><a name="cmd.toplevelpagestyle"></a><a href="#cmd.toplevelpagestyle">\toplevelpagestyle</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.cmd.toplevelpagestyle">444</a></li>
+<li><a name="cmd.typearea"></a><a href="#cmd.typearea">\typearea</a> --&gt; <a href="scrguide.pdf#desc:typearea.cmd.typearea">41</a></li>
+<li><a name="cmd.unsettoc"></a><a href="#cmd.unsettoc">\unsettoc</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.unsettoc">393</a></li>
+<li><a name="cmd.uppertitleback"></a><a href="#cmd.uppertitleback">\uppertitleback</a> --&gt; <a href="scrguide.pdf#desc:scrextend.cmd.uppertitleback">304</a>, <a href="scrguide.pdf#desc:maincls.cmd.uppertitleback">74</a></li>
+<li><a name="cmd.useencodingofkomafont"></a><a href="#cmd.useencodingofkomafont">\useencodingofkomafont</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.useencodingofkomafont">191</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.useencodingofkomafont">257</a>, <a href="scrguide.pdf#desc:scrextend.cmd.useencodingofkomafont">299</a>, <a href="scrguide.pdf#desc:scrjura.cmd.useencodingofkomafont">317</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.useencodingofkomafont">477</a>, <a href="scrguide.pdf#desc:maincls.cmd.useencodingofkomafont">67</a></li>
+<li><a name="cmd.usefamilyofkomafont"></a><a href="#cmd.usefamilyofkomafont">\usefamilyofkomafont</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.usefamilyofkomafont">191</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.usefamilyofkomafont">257</a>, <a href="scrguide.pdf#desc:scrextend.cmd.usefamilyofkomafont">299</a>, <a href="scrguide.pdf#desc:scrjura.cmd.usefamilyofkomafont">317</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.usefamilyofkomafont">477</a>, <a href="scrguide.pdf#desc:maincls.cmd.usefamilyofkomafont">67</a></li>
+<li><a name="cmd.usefontofkomafont"></a><a href="#cmd.usefontofkomafont">\usefontofkomafont</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.usefontofkomafont">191</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.usefontofkomafont">257</a>, <a href="scrguide.pdf#desc:scrextend.cmd.usefontofkomafont">299</a>, <a href="scrguide.pdf#desc:scrjura.cmd.usefontofkomafont">317</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.usefontofkomafont">477</a>, <a href="scrguide.pdf#desc:maincls.cmd.usefontofkomafont">67</a></li>
+<li><a name="cmd.usekomafont"></a><a href="#cmd.usekomafont">\usekomafont</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.usekomafont">188</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.usekomafont">255</a>, <a href="scrguide.pdf#desc:scrextend.cmd.usekomafont">298</a>, <a href="scrguide.pdf#desc:scrjura.cmd.usekomafont">317</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.usekomafont">477</a>, <a href="scrguide.pdf#desc:maincls.cmd.usekomafont">62</a></li>
+<li><a name="cmd.usekomavar*"></a><a href="#cmd.usekomavar*">\usekomavar*</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.usekomavar*">169</a>, <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.usekomavar*">538</a></li>
+<li><a name="cmd.usekomavar"></a><a href="#cmd.usekomavar">\usekomavar</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.usekomavar">169</a>, <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.usekomavar">538</a></li>
+<li><a name="cmd.usepackage"></a><a href="#cmd.usepackage">\usepackage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.usepackage">171</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.usepackage">253</a>, <a href="scrguide.pdf#desc:scrextend.cmd.usepackage">294</a>, <a href="scrguide.pdf#desc:scrjura.cmd.usepackage">315</a>, <a href="scrguide.pdf#desc:typearea.cmd.usepackage">32</a>, <a href="scrguide.pdf#desc:scrhack.cmd.usepackage">422</a>, <a href="scrguide.pdf#desc:scrlayer.cmd.usepackage">427</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.usepackage">475</a>, <a href="scrguide.pdf#desc:maincls.cmd.usepackage">57</a></li>
+<li><a name="cmd.useplength"></a><a href="#cmd.useplength">\useplength</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.useplength">170</a></li>
+<li><a name="cmd.useseriesofkomafont"></a><a href="#cmd.useseriesofkomafont">\useseriesofkomafont</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.useseriesofkomafont">191</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.useseriesofkomafont">257</a>, <a href="scrguide.pdf#desc:scrextend.cmd.useseriesofkomafont">299</a>, <a href="scrguide.pdf#desc:scrjura.cmd.useseriesofkomafont">317</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.useseriesofkomafont">477</a>, <a href="scrguide.pdf#desc:maincls.cmd.useseriesofkomafont">67</a></li>
+<li><a name="cmd.useshapeofkomafont"></a><a href="#cmd.useshapeofkomafont">\useshapeofkomafont</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.useshapeofkomafont">191</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.useshapeofkomafont">257</a>, <a href="scrguide.pdf#desc:scrextend.cmd.useshapeofkomafont">299</a>, <a href="scrguide.pdf#desc:scrjura.cmd.useshapeofkomafont">317</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.useshapeofkomafont">477</a>, <a href="scrguide.pdf#desc:maincls.cmd.useshapeofkomafont">67</a></li>
+<li><a name="cmd.usesizeofkomafont"></a><a href="#cmd.usesizeofkomafont">\usesizeofkomafont</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.cmd.usesizeofkomafont">191</a>, <a href="scrguide.pdf#desc:scrlayer-scrpage.cmd.usesizeofkomafont">257</a>, <a href="scrguide.pdf#desc:scrextend.cmd.usesizeofkomafont">299</a>, <a href="scrguide.pdf#desc:scrjura.cmd.usesizeofkomafont">317</a>, <a href="scrguide.pdf#desc:scrlayer-notecolumn.cmd.usesizeofkomafont">477</a>, <a href="scrguide.pdf#desc:maincls.cmd.usesizeofkomafont">67</a></li>
+<li><a name="cmd.usetocbasicnumberline"></a><a href="#cmd.usetocbasicnumberline">\usetocbasicnumberline</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.cmd.usetocbasicnumberline">397</a></li>
+<li><a name="cmd.withoutparnumber"></a><a href="#cmd.withoutparnumber">\withoutparnumber</a> --&gt; <a href="scrguide.pdf#desc:scrjura.cmd.withoutparnumber">324</a></li>
+<li><a name="cmd.wwwname"></a><a href="#cmd.wwwname">\wwwname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.wwwname">544</a></li>
+<li><a name="cmd.yourmailname"></a><a href="#cmd.yourmailname">\yourmailname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.yourmailname">544</a></li>
+<li><a name="cmd.yourrefname"></a><a href="#cmd.yourrefname">\yourrefname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.cmd.yourrefname">544</a></li>
+</ul>
+<h2><a name="environment">Umgebungen</a></h2>
+<ul>
+<li><a name="env.abstract"></a><a href="#env.abstract">abstract</a> --&gt; <a href="scrguide.pdf#desc:maincls.env.abstract">75</a></li>
+<li><a name="env.addmargin*"></a><a href="#env.addmargin*">addmargin*</a> --&gt; <a href="scrguide.pdf#desc:maincls.env.addmargin*">134</a>, <a href="scrguide.pdf#desc:scrlttr2.env.addmargin*">237</a>, <a href="scrguide.pdf#desc:scrextend.env.addmargin*">313</a></li>
+<li><a name="env.addmargin"></a><a href="#env.addmargin">addmargin</a> --&gt; <a href="scrguide.pdf#desc:maincls.env.addmargin">134</a>, <a href="scrguide.pdf#desc:scrlttr2.env.addmargin">237</a>, <a href="scrguide.pdf#desc:scrextend.env.addmargin">313</a></li>
+<li><a name="env.captionbeside"></a><a href="#env.captionbeside">captionbeside</a> --&gt; <a href="scrguide.pdf#desc:maincls.env.captionbeside">144</a></li>
+<li><a name="env.captionofbeside"></a><a href="#env.captionofbeside">captionofbeside</a> --&gt; <a href="scrguide.pdf#desc:maincls.env.captionofbeside">147</a></li>
+<li><a name="env.contract"></a><a href="#env.contract">contract</a> --&gt; <a href="scrguide.pdf#desc:scrjura.env.contract">319</a></li>
+<li><a name="env.description"></a><a href="#env.description">description</a> --&gt; <a href="scrguide.pdf#desc:maincls.env.description">129</a>, <a href="scrguide.pdf#desc:scrlttr2.env.description">236</a></li>
+<li><a name="env.enumerate"></a><a href="#env.enumerate">enumerate</a> --&gt; <a href="scrguide.pdf#desc:maincls.env.enumerate">128</a>, <a href="scrguide.pdf#desc:scrlttr2.env.enumerate">235</a></li>
+<li><a name="env.itemize"></a><a href="#env.itemize">itemize</a> --&gt; <a href="scrguide.pdf#desc:maincls.env.itemize">126</a>, <a href="scrguide.pdf#desc:scrlttr2.env.itemize">235</a></li>
+<li><a name="env.labeling"></a><a href="#env.labeling">labeling</a> --&gt; <a href="scrguide.pdf#desc:maincls.env.labeling">130</a>, <a href="scrguide.pdf#desc:scrlttr2.env.labeling">236</a>, <a href="scrguide.pdf#desc:scrextend.env.labeling">312</a></li>
+<li><a name="env.letter"></a><a href="#env.letter">letter</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.env.letter">176</a></li>
+<li><a name="env.quotation"></a><a href="#env.quotation">quotation</a> --&gt; <a href="scrguide.pdf#desc:maincls.env.quotation">132</a>, <a href="scrguide.pdf#desc:scrlttr2.env.quotation">237</a></li>
+<li><a name="env.quote"></a><a href="#env.quote">quote</a> --&gt; <a href="scrguide.pdf#desc:maincls.env.quote">132</a>, <a href="scrguide.pdf#desc:scrlttr2.env.quote">237</a></li>
+<li><a name="env.titlepage"></a><a href="#env.titlepage">titlepage</a> --&gt; <a href="scrguide.pdf#desc:scrextend.env.titlepage">301</a>, <a href="scrguide.pdf#desc:maincls.env.titlepage">69</a></li>
+<li><a name="env.verse"></a><a href="#env.verse">verse</a> --&gt; <a href="scrguide.pdf#desc:maincls.env.verse">131</a>, <a href="scrguide.pdf#desc:scrlttr2.env.verse">236</a></li>
+</ul>
+<h2><a name="length">Längen</a></h2>
+<ul>
+<li><a name="length.footheight"></a><a href="#length.footheight">footheight</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.length.footheight">254</a>, <a href="scrguide.pdf#desc:scrlayer.length.footheight">454</a>, <a href="scrguide.pdf#desc:typearea.length.footheight">47</a></li>
+<li><a name="length.headheight"></a><a href="#length.headheight">headheight</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.length.headheight">254</a>, <a href="scrguide.pdf#desc:scrlayer.length.headheight">454</a></li>
+</ul>
+<h2><a name="plength">Pseudolängen</a></h2>
+<ul>
+<li><a name="plength.PPdatamatrixvskip"></a><a href="#plength.PPdatamatrixvskip">PPdatamatrixvskip</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.PPdatamatrixvskip">533</a></li>
+<li><a name="plength.PPheadheight"></a><a href="#plength.PPheadheight">PPheadheight</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.PPheadheight">533</a></li>
+<li><a name="plength.PPheadwidth"></a><a href="#plength.PPheadwidth">PPheadwidth</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.PPheadwidth">533</a></li>
+<li><a name="plength.backaddrheight"></a><a href="#plength.backaddrheight">backaddrheight</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.backaddrheight">532</a></li>
+<li><a name="plength.bfoldmarklength"></a><a href="#plength.bfoldmarklength">bfoldmarklength</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.bfoldmarklength">529</a></li>
+<li><a name="plength.bfoldmarkvpos"></a><a href="#plength.bfoldmarkvpos">bfoldmarkvpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.bfoldmarkvpos">528</a></li>
+<li><a name="plength.firstfoothpos"></a><a href="#plength.firstfoothpos">firstfoothpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.firstfoothpos">537</a></li>
+<li><a name="plength.firstfootvpos"></a><a href="#plength.firstfootvpos">firstfootvpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.firstfootvpos">536</a></li>
+<li><a name="plength.firstfootwidth"></a><a href="#plength.firstfootwidth">firstfootwidth</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.firstfootwidth">537</a></li>
+<li><a name="plength.firstheadhpos"></a><a href="#plength.firstheadhpos">firstheadhpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.firstheadhpos">530</a></li>
+<li><a name="plength.firstheadvpos"></a><a href="#plength.firstheadvpos">firstheadvpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.firstheadvpos">530</a></li>
+<li><a name="plength.firstheadwidth"></a><a href="#plength.firstheadwidth">firstheadwidth</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.firstheadwidth">531</a></li>
+<li><a name="plength.foldmarkhpos"></a><a href="#plength.foldmarkhpos">foldmarkhpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.foldmarkhpos">529</a></li>
+<li><a name="plength.foldmarkthickness"></a><a href="#plength.foldmarkthickness">foldmarkthickness</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.foldmarkthickness">530</a></li>
+<li><a name="plength.foldmarkvpos"></a><a href="#plength.foldmarkvpos">foldmarkvpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.foldmarkvpos">530</a></li>
+<li><a name="plength.fromrulethickness"></a><a href="#plength.fromrulethickness">fromrulethickness</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.fromrulethickness">531</a></li>
+<li><a name="plength.fromrulewidth"></a><a href="#plength.fromrulewidth">fromrulewidth</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.fromrulewidth">531</a></li>
+<li><a name="plength.lfoldmarkhpos"></a><a href="#plength.lfoldmarkhpos">lfoldmarkhpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.lfoldmarkhpos">529</a></li>
+<li><a name="plength.lfoldmarklength"></a><a href="#plength.lfoldmarklength">lfoldmarklength</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.lfoldmarklength">529</a></li>
+<li><a name="plength.locheight"></a><a href="#plength.locheight">locheight</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.locheight">534</a></li>
+<li><a name="plength.lochpos"></a><a href="#plength.lochpos">lochpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.lochpos">534</a></li>
+<li><a name="plength.locvpos"></a><a href="#plength.locvpos">locvpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.locvpos">534</a></li>
+<li><a name="plength.locwidth"></a><a href="#plength.locwidth">locwidth</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.locwidth">534</a></li>
+<li><a name="plength.mfoldmarklength"></a><a href="#plength.mfoldmarklength">mfoldmarklength</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.mfoldmarklength">529</a></li>
+<li><a name="plength.mfoldmarkvpos"></a><a href="#plength.mfoldmarkvpos">mfoldmarkvpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.mfoldmarkvpos">528</a></li>
+<li><a name="plength.pfoldmarklength"></a><a href="#plength.pfoldmarklength">pfoldmarklength</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.pfoldmarklength">529</a></li>
+<li><a name="plength.refaftervskip"></a><a href="#plength.refaftervskip">refaftervskip</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.refaftervskip">535</a></li>
+<li><a name="plength.refhpos"></a><a href="#plength.refhpos">refhpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.refhpos">534</a></li>
+<li><a name="plength.refvpos"></a><a href="#plength.refvpos">refvpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.refvpos">534</a></li>
+<li><a name="plength.refwidth"></a><a href="#plength.refwidth">refwidth</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.refwidth">534</a></li>
+<li><a name="plength.sigbeforevskip"></a><a href="#plength.sigbeforevskip">sigbeforevskip</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.sigbeforevskip">536</a></li>
+<li><a name="plength.sigindent"></a><a href="#plength.sigindent">sigindent</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.sigindent">536</a></li>
+<li><a name="plength.specialmailindent"></a><a href="#plength.specialmailindent">specialmailindent</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.specialmailindent">533</a></li>
+<li><a name="plength.specialmailrightindent"></a><a href="#plength.specialmailrightindent">specialmailrightindent</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.specialmailrightindent">533</a></li>
+<li><a name="plength.subjectaftervskip"></a><a href="#plength.subjectaftervskip">subjectaftervskip</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.subjectaftervskip">536</a></li>
+<li><a name="plength.subjectbeforevskip"></a><a href="#plength.subjectbeforevskip">subjectbeforevskip</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.subjectbeforevskip">536</a></li>
+<li><a name="plength.subjectvpos"></a><a href="#plength.subjectvpos">subjectvpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.subjectvpos">535</a></li>
+<li><a name="plength.tfoldmarklength"></a><a href="#plength.tfoldmarklength">tfoldmarklength</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.tfoldmarklength">529</a></li>
+<li><a name="plength.tfoldmarkvpos"></a><a href="#plength.tfoldmarkvpos">tfoldmarkvpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.tfoldmarkvpos">528</a></li>
+<li><a name="plength.toaddrheight"></a><a href="#plength.toaddrheight">toaddrheight</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.toaddrheight">531</a></li>
+<li><a name="plength.toaddrhpos"></a><a href="#plength.toaddrhpos">toaddrhpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.toaddrhpos">531</a></li>
+<li><a name="plength.toaddrindent"></a><a href="#plength.toaddrindent">toaddrindent</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.toaddrindent">532</a></li>
+<li><a name="plength.toaddrvpos"></a><a href="#plength.toaddrvpos">toaddrvpos</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.toaddrvpos">531</a></li>
+<li><a name="plength.toaddrwidth"></a><a href="#plength.toaddrwidth">toaddrwidth</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2-experts.plength.toaddrwidth">532</a></li>
+</ul>
+<h2><a name="variable">Variablen</a></h2>
+<ul>
+<li><a name="variable.PPcode"></a><a href="#variable.PPcode">PPcode</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.PPcode">208</a></li>
+<li><a name="variable.PPdatamatrix"></a><a href="#variable.PPdatamatrix">PPdatamatrix</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.PPdatamatrix">208</a></li>
+<li><a name="variable.addresseeimage"></a><a href="#variable.addresseeimage">addresseeimage</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.addresseeimage">208</a></li>
+<li><a name="variable.backaddress"></a><a href="#variable.backaddress">backaddress</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.backaddress">208</a></li>
+<li><a name="variable.backaddressseparator"></a><a href="#variable.backaddressseparator">backaddressseparator</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.backaddressseparator">208</a></li>
+<li><a name="variable.ccseparator"></a><a href="#variable.ccseparator">ccseparator</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.ccseparator">182</a></li>
+<li><a name="variable.customer"></a><a href="#variable.customer">customer</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.customer">215</a></li>
+<li><a name="variable.date"></a><a href="#variable.date">date</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.date">214</a></li>
+<li><a name="variable.emailseparator"></a><a href="#variable.emailseparator">emailseparator</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.emailseparator">201</a></li>
+<li><a name="variable.enclseparator"></a><a href="#variable.enclseparator">enclseparator</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.enclseparator">183</a></li>
+<li><a name="variable.faxseparator"></a><a href="#variable.faxseparator">faxseparator</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.faxseparator">201</a></li>
+<li><a name="variable.firstfoot"></a><a href="#variable.firstfoot">firstfoot</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.firstfoot">221</a></li>
+<li><a name="variable.firsthead"></a><a href="#variable.firsthead">firsthead</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.firsthead">206</a></li>
+<li><a name="variable.fromaddress"></a><a href="#variable.fromaddress">fromaddress</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.fromaddress">196</a></li>
+<li><a name="variable.frombank"></a><a href="#variable.frombank">frombank</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.frombank">222</a></li>
+<li><a name="variable.fromemail"></a><a href="#variable.fromemail">fromemail</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.fromemail">201</a></li>
+<li><a name="variable.fromfax"></a><a href="#variable.fromfax">fromfax</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.fromfax">201</a></li>
+<li><a name="variable.fromlogo"></a><a href="#variable.fromlogo">fromlogo</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.fromlogo">205</a></li>
+<li><a name="variable.frommobilephone"></a><a href="#variable.frommobilephone">frommobilephone</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.frommobilephone">201</a></li>
+<li><a name="variable.fromname"></a><a href="#variable.fromname">fromname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.fromname">196</a></li>
+<li><a name="variable.fromphone"></a><a href="#variable.fromphone">fromphone</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.fromphone">201</a></li>
+<li><a name="variable.fromurl"></a><a href="#variable.fromurl">fromurl</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.fromurl">201</a></li>
+<li><a name="variable.fromzipcode"></a><a href="#variable.fromzipcode">fromzipcode</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.fromzipcode">208</a></li>
+<li><a name="variable.invoice"></a><a href="#variable.invoice">invoice</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.invoice">215</a></li>
+<li><a name="variable.location"></a><a href="#variable.location">location</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.location">212</a></li>
+<li><a name="variable.mobilephoneseparator"></a><a href="#variable.mobilephoneseparator">mobilephoneseparator</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.mobilephoneseparator">201</a></li>
+<li><a name="variable.myref"></a><a href="#variable.myref">myref</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.myref">215</a></li>
+<li><a name="variable.nextfoot"></a><a href="#variable.nextfoot">nextfoot</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.nextfoot">229</a></li>
+<li><a name="variable.nexthead"></a><a href="#variable.nexthead">nexthead</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.nexthead">229</a></li>
+<li><a name="variable.phoneseparator"></a><a href="#variable.phoneseparator">phoneseparator</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.phoneseparator">201</a></li>
+<li><a name="variable.place"></a><a href="#variable.place">place</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.place">208</a></li>
+<li><a name="variable.placeseparator"></a><a href="#variable.placeseparator">placeseparator</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.placeseparator">215</a></li>
+<li><a name="variable.signature"></a><a href="#variable.signature">signature</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.signature">239</a></li>
+<li><a name="variable.specialmail"></a><a href="#variable.specialmail">specialmail</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.specialmail">208</a></li>
+<li><a name="variable.subject"></a><a href="#variable.subject">subject</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.subject">218</a></li>
+<li><a name="variable.subjectseparator"></a><a href="#variable.subjectseparator">subjectseparator</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.subjectseparator">218</a></li>
+<li><a name="variable.title"></a><a href="#variable.title">title</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.title">217</a></li>
+<li><a name="variable.toaddress"></a><a href="#variable.toaddress">toaddress</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.toaddress">208</a></li>
+<li><a name="variable.toname"></a><a href="#variable.toname">toname</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.toname">208</a></li>
+<li><a name="variable.urlseparator"></a><a href="#variable.urlseparator">urlseparator</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.urlseparator">201</a></li>
+<li><a name="variable.yourmail"></a><a href="#variable.yourmail">yourmail</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.yourmail">215</a></li>
+<li><a name="variable.yourref"></a><a href="#variable.yourref">yourref</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.yourref">215</a></li>
+<li><a name="variable.zipcodeseparator"></a><a href="#variable.zipcodeseparator">zipcodeseparator</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.variable.zipcodeseparator">208</a></li>
+</ul>
+<h2><a name="pagestyle">Seitenstile</a></h2>
+<ul>
+<li><a name="pagestyle.@everystyle@"></a><a href="#pagestyle.@everystyle@">@everystyle@</a> --&gt; <a href="scrguide.pdf#desc:scrlayer.pagestyle.@everystyle@">449</a></li>
+<li><a name="pagestyle.empty"></a><a href="#pagestyle.empty">empty</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.pagestyle.empty">226</a>, <a href="scrguide.pdf#desc:scrlayer.pagestyle.empty">449</a></li>
+<li><a name="pagestyle.headings"></a><a href="#pagestyle.headings">headings</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.pagestyle.headings">226</a></li>
+<li><a name="pagestyle.letter"></a><a href="#pagestyle.letter">letter</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.pagestyle.letter">227</a></li>
+<li><a name="pagestyle.myheadings"></a><a href="#pagestyle.myheadings">myheadings</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.pagestyle.myheadings">228</a></li>
+<li><a name="pagestyle.plain"></a><a href="#pagestyle.plain">plain</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.pagestyle.plain">228</a></li>
+<li><a name="pagestyle.scrheadings"></a><a href="#pagestyle.scrheadings">scrheadings</a> --&gt; <a href="scrguide.pdf#desc:scrlayer-scrpage.pagestyle.scrheadings">258</a></li>
+</ul>
+<h2><a name="counter">Zähler</a></h2>
+<ul>
+<li><a name="counter.letter"></a><a href="#counter.letter">letter</a> --&gt; <a href="scrguide.pdf#desc:scrlttr2.counter.letter">178</a></li>
+<li><a name="counter.par"></a><a href="#counter.par">par</a> --&gt; <a href="scrguide.pdf#desc:scrjura.counter.par">324</a></li>
+<li><a name="counter.secnumdepth"></a><a href="#counter.secnumdepth">secnumdepth</a> --&gt; <a href="scrguide.pdf#desc:maincls.counter.secnumdepth">121</a></li>
+<li><a name="counter.sentence"></a><a href="#counter.sentence">sentence</a> --&gt; <a href="scrguide.pdf#desc:scrjura.counter.sentence">326</a></li>
+<li><a name="counter.tocdepth"></a><a href="#counter.tocdepth">tocdepth</a> --&gt; <a href="scrguide.pdf#desc:tocbasic.counter.tocdepth">396</a>, <a href="scrguide.pdf#desc:maincls.counter.tocdepth">81</a></li>
+</ul>
+<h2><a name="floatstyle">Stile für das float-Paket</a></h2>
+<ul>
+<li><a name="floatstyle.komaabove"></a><a href="#floatstyle.komaabove">komaabove</a> --&gt; <a href="scrguide.pdf#desc:maincls.floatstyle.komaabove">147</a></li>
+<li><a name="floatstyle.komabelow"></a><a href="#floatstyle.komabelow">komabelow</a> --&gt; <a href="scrguide.pdf#desc:maincls.floatstyle.komabelow">147</a></li>
+</ul>
+<p>
+<a href="http://validator.w3.org/check?uri=referer"><img
+src="http://www.w3.org/Icons/valid-html40"
+alt="Valid HTML 4.0 Strict" height="31" width="88"></a>
+</p>
+</body></html> \ No newline at end of file
diff --git a/macros/latex/contrib/koma-script/doc/scrguide.pdf b/macros/latex/contrib/koma-script/doc/scrguide.pdf
new file mode 100644
index 0000000000..e7aab67dff
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrguien.html b/macros/latex/contrib/koma-script/doc/scrguien.html
new file mode 100644
index 0000000000..2de1528db4
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrguien.html
@@ -0,0 +1,994 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head><title>Index</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+</head>
+<body>
+<h1>Index of the KOMA-Script Guide</h1>
+<p>This is an index of the elements defined at KOMA-Script. This index is related to the <a href="scrguien.pdf">KOMA-Script guide</a>. To improve the survey this index has serveral functional sections:</p>
+<ul>
+<li><a href="#option">Options</a></li><li><a href="#macro">Commands</a></li><li><a href="#environment">Environments</a></li><li><a href="#length">Lengths</a></li><li><a href="#plength">Pseudolengths</a></li><li><a href="#variable">Variables</a></li><li><a href="#pagestyle">Page Styles</a></li><li><a href="#counter">Counter</a></li><li><a href="#floatstyle">Styles for the float Package</a></li></ul>
+<h2><a name="option">Options</a></h2>
+<ul>
+<li><a name="option.12h"></a><a href="#option.12h">12h</a> --&gt; <a href="scrguien.pdf#desc:scrtime.option.12h">269</a></li>
+<li><a name="option.BCOR"></a><a href="#option.BCOR">BCOR</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.BCOR">33</a></li>
+<li><a name="option.DIV"></a><a href="#option.DIV">DIV</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.DIV">34</a></li>
+<li><a name="option.abstract"></a><a href="#option.abstract">abstract</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.abstract">71</a></li>
+<li><a name="option.addrfield"></a><a href="#option.addrfield">addrfield</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.addrfield">193</a></li>
+<li><a name="option.adrFreeIVempty"></a><a href="#option.adrFreeIVempty">adrFreeIVempty</a> --&gt; <a href="scrguien.pdf#desc:scraddr.option.adrFreeIVempty">273</a></li>
+<li><a name="option.adrFreeIVshow"></a><a href="#option.adrFreeIVshow">adrFreeIVshow</a> --&gt; <a href="scrguien.pdf#desc:scraddr.option.adrFreeIVshow">273</a></li>
+<li><a name="option.adrFreeIVstop"></a><a href="#option.adrFreeIVstop">adrFreeIVstop</a> --&gt; <a href="scrguien.pdf#desc:scraddr.option.adrFreeIVstop">273</a></li>
+<li><a name="option.adrFreeIVwarn"></a><a href="#option.adrFreeIVwarn">adrFreeIVwarn</a> --&gt; <a href="scrguien.pdf#desc:scraddr.option.adrFreeIVwarn">273</a></li>
+<li><a name="option.appendixprefix"></a><a href="#option.appendixprefix">appendixprefix</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.appendixprefix">95</a></li>
+<li><a name="option.areasetadvanced"></a><a href="#option.areasetadvanced">areasetadvanced</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.option.areasetadvanced">451</a></li>
+<li><a name="option.autoclearnotecolumns"></a><a href="#option.autoclearnotecolumns">autoclearnotecolumns</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-notecolumn.option.autoclearnotecolumns">448</a></li>
+<li><a name="option.autoenlargeheadfoot"></a><a href="#option.autoenlargeheadfoot">autoenlargeheadfoot</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.autoenlargeheadfoot">239</a></li>
+<li><a name="option.automark"></a><a href="#option.automark">automark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.automark">254</a>, <a href="scrguien.pdf#desc:scrlayer.option.automark">420</a></li>
+<li><a name="option.autooneside"></a><a href="#option.autooneside">autooneside</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.autooneside">254</a>, <a href="scrguien.pdf#desc:scrlayer.option.autooneside">420</a></li>
+<li><a name="option.autoremoveinterfaces"></a><a href="#option.autoremoveinterfaces">autoremoveinterfaces</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.autoremoveinterfaces">426</a></li>
+<li><a name="option.backaddress"></a><a href="#option.backaddress">backaddress</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.backaddress">193</a></li>
+<li><a name="option.bibliography"></a><a href="#option.bibliography">bibliography</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.bibliography">147</a></li>
+<li><a name="option.captions"></a><a href="#option.captions">captions</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.captions">127</a></li>
+<li><a name="option.chapteratlists"></a><a href="#option.chapteratlists">chapteratlists</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.chapteratlists">100</a></li>
+<li><a name="option.chapterentrydots"></a><a href="#option.chapterentrydots">chapterentrydots</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.chapterentrydots">74</a></li>
+<li><a name="option.chapterprefix"></a><a href="#option.chapterprefix">chapterprefix</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.chapterprefix">95</a></li>
+<li><a name="option.clausemark"></a><a href="#option.clausemark">clausemark</a> --&gt; <a href="scrguien.pdf#desc:scrjura.option.clausemark">301</a></li>
+<li><a name="option.cleardoublepage"></a><a href="#option.cleardoublepage">cleardoublepage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.cleardoublepage">215</a>, <a href="scrguien.pdf#desc:scrextend.option.cleardoublepage">287</a>, <a href="scrguien.pdf#desc:maincls.option.cleardoublepage">86</a></li>
+<li><a name="option.clines"></a><a href="#option.clines">clines</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.clines">262</a></li>
+<li><a name="option.contract"></a><a href="#option.contract">contract</a> --&gt; <a href="scrguien.pdf#desc:scrjura.option.contract">299</a></li>
+<li><a name="option.deactivatepagestylelayers"></a><a href="#option.deactivatepagestylelayers">deactivatepagestylelayers</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.deactivatepagestylelayers">416</a></li>
+<li><a name="option.draft"></a><a href="#option.draft">draft</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.draft">161</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.option.draft">255</a>, <a href="scrguien.pdf#desc:scrextend.option.draft">278</a>, <a href="scrguien.pdf#desc:scrlayer.option.draft">421</a>, <a href="scrguien.pdf#desc:maincls.option.draft">56</a></li>
+<li><a name="option.enlargefirstpage"></a><a href="#option.enlargefirstpage">enlargefirstpage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.enlargefirstpage">182</a></li>
+<li><a name="option.extendedfeature"></a><a href="#option.extendedfeature">extendedfeature</a> --&gt; <a href="scrguien.pdf#desc:scrextend.option.extendedfeature">278</a></li>
+<li><a name="option.firstfoot"></a><a href="#option.firstfoot">firstfoot</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.firstfoot">207</a></li>
+<li><a name="option.firsthead"></a><a href="#option.firsthead">firsthead</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.firsthead">182</a></li>
+<li><a name="option.fleqn"></a><a href="#option.fleqn">fleqn</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.fleqn">127</a></li>
+<li><a name="option.foldmarks"></a><a href="#option.foldmarks">foldmarks</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.foldmarks">178</a></li>
+<li><a name="option.fontsize"></a><a href="#option.fontsize">fontsize</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.fontsize">172</a>, <a href="scrguien.pdf#desc:scrextend.option.fontsize">279</a>, <a href="scrguien.pdf#desc:maincls.option.fontsize">57</a></li>
+<li><a name="option.footbotline"></a><a href="#option.footbotline">footbotline</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.footbotline">260</a></li>
+<li><a name="option.footheight"></a><a href="#option.footheight">footheight</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.footheight">45</a></li>
+<li><a name="option.footinclude"></a><a href="#option.footinclude">footinclude</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.footinclude">42</a></li>
+<li><a name="option.footlines"></a><a href="#option.footlines">footlines</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.footlines">45</a></li>
+<li><a name="option.footnotes"></a><a href="#option.footnotes">footnotes</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.footnotes">217</a>, <a href="scrguien.pdf#desc:scrextend.option.footnotes">289</a>, <a href="scrguien.pdf#desc:maincls.option.footnotes">89</a></li>
+<li><a name="option.footsepline"></a><a href="#option.footsepline">footsepline</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.footsepline">211</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.option.footsepline">260</a>, <a href="scrguien.pdf#desc:maincls.option.footsepline">80</a></li>
+<li><a name="option.footwidth"></a><a href="#option.footwidth">footwidth</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.footwidth">260</a></li>
+<li><a name="option.forceoverwrite"></a><a href="#option.forceoverwrite">forceoverwrite</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.forceoverwrite">426</a></li>
+<li><a name="option.fromalign"></a><a href="#option.fromalign">fromalign</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.fromalign">182</a></li>
+<li><a name="option.fromemail"></a><a href="#option.fromemail">fromemail</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.fromemail">187</a></li>
+<li><a name="option.fromfax"></a><a href="#option.fromfax">fromfax</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.fromfax">187</a></li>
+<li><a name="option.fromlogo"></a><a href="#option.fromlogo">fromlogo</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.fromlogo">191</a></li>
+<li><a name="option.frommobilephone"></a><a href="#option.frommobilephone">frommobilephone</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.frommobilephone">187</a></li>
+<li><a name="option.fromphone"></a><a href="#option.fromphone">fromphone</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.fromphone">187</a></li>
+<li><a name="option.fromrule"></a><a href="#option.fromrule">fromrule</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.fromrule">182</a></li>
+<li><a name="option.fromurl"></a><a href="#option.fromurl">fromurl</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.fromurl">187</a></li>
+<li><a name="option.headheight"></a><a href="#option.headheight">headheight</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.headheight">44</a></li>
+<li><a name="option.headinclude"></a><a href="#option.headinclude">headinclude</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.headinclude">42</a></li>
+<li><a name="option.headings"></a><a href="#option.headings">headings</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.headings">96</a></li>
+<li><a name="option.headlines"></a><a href="#option.headlines">headlines</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.headlines">44</a></li>
+<li><a name="option.headsepline"></a><a href="#option.headsepline">headsepline</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.headsepline">211</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.option.headsepline">260</a>, <a href="scrguien.pdf#desc:maincls.option.headsepline">80</a></li>
+<li><a name="option.headtopline"></a><a href="#option.headtopline">headtopline</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.headtopline">260</a></li>
+<li><a name="option.headwidth"></a><a href="#option.headwidth">headwidth</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.headwidth">260</a></li>
+<li><a name="option.ilines"></a><a href="#option.ilines">ilines</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.ilines">262</a></li>
+<li><a name="option.index"></a><a href="#option.index">index</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.index">150</a></li>
+<li><a name="option.internalonly"></a><a href="#option.internalonly">internalonly</a> --&gt; <a href="scrguien.pdf#desc:scrbase.option.internalonly">332</a></li>
+<li><a name="option.juratitlepagebreak"></a><a href="#option.juratitlepagebreak">juratitlepagebreak</a> --&gt; <a href="scrguien.pdf#desc:scrjura.option.juratitlepagebreak">301</a></li>
+<li><a name="option.juratocindent"></a><a href="#option.juratocindent">juratocindent</a> --&gt; <a href="scrguien.pdf#desc:scrjura.option.juratocindent">298</a></li>
+<li><a name="option.juratocnumberwidth"></a><a href="#option.juratocnumberwidth">juratocnumberwidth</a> --&gt; <a href="scrguien.pdf#desc:scrjura.option.juratocnumberwidth">298</a></li>
+<li><a name="option.juratotoc"></a><a href="#option.juratotoc">juratotoc</a> --&gt; <a href="scrguien.pdf#desc:scrjura.option.juratotoc">298</a></li>
+<li><a name="option.leqno"></a><a href="#option.leqno">leqno</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.leqno">127</a></li>
+<li><a name="option.listof"></a><a href="#option.listof">listof</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.listof">142</a></li>
+<li><a name="option.locfield"></a><a href="#option.locfield">locfield</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.locfield">198</a></li>
+<li><a name="option.manualmark"></a><a href="#option.manualmark">manualmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.manualmark">254</a>, <a href="scrguien.pdf#desc:scrlayer.option.manualmark">420</a></li>
+<li><a name="option.markcase"></a><a href="#option.markcase">markcase</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.markcase">255</a>, <a href="scrguien.pdf#desc:scrlayer.option.markcase">421</a></li>
+<li><a name="option.mpinclude"></a><a href="#option.mpinclude">mpinclude</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.mpinclude">43</a></li>
+<li><a name="option.numbers"></a><a href="#option.numbers">numbers</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.numbers">99</a></li>
+<li><a name="option.numericaldate"></a><a href="#option.numericaldate">numericaldate</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.numericaldate">199</a></li>
+<li><a name="option.olines"></a><a href="#option.olines">olines</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.olines">262</a></li>
+<li><a name="option.onpsbackground"></a><a href="#option.onpsbackground">onpsbackground</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.onpsbackground">415</a></li>
+<li><a name="option.onpsevenpage"></a><a href="#option.onpsevenpage">onpsevenpage</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.onpsevenpage">415</a></li>
+<li><a name="option.onpsfloatpage"></a><a href="#option.onpsfloatpage">onpsfloatpage</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.onpsfloatpage">415</a></li>
+<li><a name="option.onpsforeground"></a><a href="#option.onpsforeground">onpsforeground</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.onpsforeground">415</a></li>
+<li><a name="option.onpsinit"></a><a href="#option.onpsinit">onpsinit</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.onpsinit">415</a></li>
+<li><a name="option.onpsnonfloatpage"></a><a href="#option.onpsnonfloatpage">onpsnonfloatpage</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.onpsnonfloatpage">415</a></li>
+<li><a name="option.onpsoddpage"></a><a href="#option.onpsoddpage">onpsoddpage</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.onpsoddpage">415</a></li>
+<li><a name="option.onpsoneside"></a><a href="#option.onpsoneside">onpsoneside</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.onpsoneside">415</a></li>
+<li><a name="option.onpsselect"></a><a href="#option.onpsselect">onpsselect</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.onpsselect">415</a></li>
+<li><a name="option.onpstwoside"></a><a href="#option.onpstwoside">onpstwoside</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.onpstwoside">415</a></li>
+<li><a name="option.open"></a><a href="#option.open">open</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.open">94</a></li>
+<li><a name="option.origlongtable"></a><a href="#option.origlongtable">origlongtable</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.origlongtable">142</a></li>
+<li><a name="option.overfullrule"></a><a href="#option.overfullrule">overfullrule</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.overfullrule">161</a>, <a href="scrguien.pdf#desc:scrextend.option.overfullrule">278</a>, <a href="scrguien.pdf#desc:maincls.option.overfullrule">56</a></li>
+<li><a name="option.pagenumber"></a><a href="#option.pagenumber">pagenumber</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.pagenumber">211</a></li>
+<li><a name="option.pagesize"></a><a href="#option.pagesize">pagesize</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.pagesize">49</a></li>
+<li><a name="option.pagestyleset"></a><a href="#option.pagestyleset">pagestyleset</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.pagestyleset">251</a></li>
+<li><a name="option.paper"></a><a href="#option.paper">paper</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.paper">48</a></li>
+<li><a name="option.parnumber"></a><a href="#option.parnumber">parnumber</a> --&gt; <a href="scrguien.pdf#desc:scrjura.option.parnumber">302</a></li>
+<li><a name="option.parskip"></a><a href="#option.parskip">parskip</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.parskip">209</a>, <a href="scrguien.pdf#desc:maincls.option.parskip">77</a></li>
+<li><a name="option.plainfootbotline"></a><a href="#option.plainfootbotline">plainfootbotline</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.plainfootbotline">262</a></li>
+<li><a name="option.plainfootsepline"></a><a href="#option.plainfootsepline">plainfootsepline</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.plainfootsepline">262</a></li>
+<li><a name="option.plainheadsepline"></a><a href="#option.plainheadsepline">plainheadsepline</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.plainheadsepline">262</a></li>
+<li><a name="option.plainheadtopline"></a><a href="#option.plainheadtopline">plainheadtopline</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.option.plainheadtopline">262</a></li>
+<li><a name="option.priority"></a><a href="#option.priority">priority</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.priority">193</a></li>
+<li><a name="option.ref"></a><a href="#option.ref">ref</a> --&gt; <a href="scrguien.pdf#desc:scrjura.option.ref">306</a></li>
+<li><a name="option.refline"></a><a href="#option.refline">refline</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.refline">200</a></li>
+<li><a name="option.sectionentrydots"></a><a href="#option.sectionentrydots">sectionentrydots</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.sectionentrydots">74</a></li>
+<li><a name="option.singlespacing"></a><a href="#option.singlespacing">singlespacing</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.option.singlespacing">415</a></li>
+<li><a name="option.subject"></a><a href="#option.subject">subject</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.subject">204</a></li>
+<li><a name="option.symbolicnames"></a><a href="#option.symbolicnames">symbolicnames</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.symbolicnames">187</a></li>
+<li><a name="option.titlepage"></a><a href="#option.titlepage">titlepage</a> --&gt; <a href="scrguien.pdf#desc:scrextend.option.titlepage">282</a>, <a href="scrguien.pdf#desc:maincls.option.titlepage">64</a></li>
+<li><a name="option.toc"></a><a href="#option.toc">toc</a> --&gt; <a href="scrguien.pdf#desc:maincls.option.toc">72</a></li>
+<li><a name="option.twocolumn"></a><a href="#option.twocolumn">twocolumn</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.twocolumn">41</a></li>
+<li><a name="option.twoside"></a><a href="#option.twoside">twoside</a> --&gt; <a href="scrguien.pdf#desc:typearea.option.twoside">41</a></li>
+<li><a name="option.usegeometry"></a><a href="#option.usegeometry">usegeometry</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.option.usegeometry">450</a></li>
+<li><a name="option.version"></a><a href="#option.version">version</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.option.version">160</a>, <a href="scrguien.pdf#desc:scrextend.option.version">277</a>, <a href="scrguien.pdf#desc:typearea.option.version">32</a>, <a href="scrguien.pdf#desc:maincls.option.version">55</a></li>
+</ul>
+<h2><a name="macro">Commands</a></h2>
+<ul>
+<li><a name="cmd.@fontsizefilebase"></a><a href="#cmd.@fontsizefilebase">\@fontsizefilebase</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.@fontsizefilebase">456</a></li>
+<li><a name="cmd.@mkboth"></a><a href="#cmd.@mkboth">\@mkboth</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.@mkboth">425</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.@mkboth">431</a></li>
+<li><a name="cmd.@mkdouble"></a><a href="#cmd.@mkdouble">\@mkdouble</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.@mkdouble">425</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.@mkdouble">431</a></li>
+<li><a name="cmd.@mkleft"></a><a href="#cmd.@mkleft">\@mkleft</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.@mkleft">425</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.@mkleft">431</a></li>
+<li><a name="cmd.@mkright"></a><a href="#cmd.@mkright">\@mkright</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.@mkright">425</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.@mkright">431</a></li>
+<li><a name="cmd.@openbib@code"></a><a href="#cmd.@openbib@code">\@openbib@code</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.@openbib@code">478</a></li>
+<li><a name="cmd.AddLayersAtBeginOfPageStyle"></a><a href="#cmd.AddLayersAtBeginOfPageStyle">\AddLayersAtBeginOfPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.AddLayersAtBeginOfPageStyle">416</a></li>
+<li><a name="cmd.AddLayersAtEndOfPageStyle"></a><a href="#cmd.AddLayersAtEndOfPageStyle">\AddLayersAtEndOfPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.AddLayersAtEndOfPageStyle">416</a></li>
+<li><a name="cmd.AddLayersToPageStyle"></a><a href="#cmd.AddLayersToPageStyle">\AddLayersToPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.AddLayersToPageStyle">416</a></li>
+<li><a name="cmd.AddLayersToPageStyleAfterLayer"></a><a href="#cmd.AddLayersToPageStyleAfterLayer">\AddLayersToPageStyleAfterLayer</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.AddLayersToPageStyleAfterLayer">417</a></li>
+<li><a name="cmd.AddLayersToPageStyleBeforeLayer"></a><a href="#cmd.AddLayersToPageStyleBeforeLayer">\AddLayersToPageStyleBeforeLayer</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.AddLayersToPageStyleBeforeLayer">417</a></li>
+<li><a name="cmd.AddToLayerPageStyleOptions"></a><a href="#cmd.AddToLayerPageStyleOptions">\AddToLayerPageStyleOptions</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.AddToLayerPageStyleOptions">417</a></li>
+<li><a name="cmd.Address"></a><a href="#cmd.Address">\Address</a> --&gt; <a href="scrguien.pdf#desc:scraddr.cmd.Address">271</a></li>
+<li><a name="cmd.AfterAtEndOfClass"></a><a href="#cmd.AfterAtEndOfClass">\AfterAtEndOfClass</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.AfterAtEndOfClass">344</a></li>
+<li><a name="cmd.AfterAtEndOfPackage"></a><a href="#cmd.AfterAtEndOfPackage">\AfterAtEndOfPackage</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.AfterAtEndOfPackage">344</a></li>
+<li><a name="cmd.AfterBibliographyPreamble"></a><a href="#cmd.AfterBibliographyPreamble">\AfterBibliographyPreamble</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.AfterBibliographyPreamble">149</a></li>
+<li><a name="cmd.AfterCalculatingTypearea*"></a><a href="#cmd.AfterCalculatingTypearea*">\AfterCalculatingTypearea*</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.cmd.AfterCalculatingTypearea*">452</a></li>
+<li><a name="cmd.AfterCalculatingTypearea"></a><a href="#cmd.AfterCalculatingTypearea">\AfterCalculatingTypearea</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.cmd.AfterCalculatingTypearea">452</a></li>
+<li><a name="cmd.AfterClass!"></a><a href="#cmd.AfterClass!">\AfterClass!</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.AfterClass!">344</a></li>
+<li><a name="cmd.AfterClass*"></a><a href="#cmd.AfterClass*">\AfterClass*</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.AfterClass*">344</a></li>
+<li><a name="cmd.AfterClass+"></a><a href="#cmd.AfterClass+">\AfterClass+</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.AfterClass+">344</a></li>
+<li><a name="cmd.AfterClass"></a><a href="#cmd.AfterClass">\AfterClass</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.AfterClass">344</a></li>
+<li><a name="cmd.AfterFile"></a><a href="#cmd.AfterFile">\AfterFile</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.AfterFile">343</a></li>
+<li><a name="cmd.AfterPackage!"></a><a href="#cmd.AfterPackage!">\AfterPackage!</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.AfterPackage!">344</a></li>
+<li><a name="cmd.AfterPackage*"></a><a href="#cmd.AfterPackage*">\AfterPackage*</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.AfterPackage*">344</a></li>
+<li><a name="cmd.AfterPackage+"></a><a href="#cmd.AfterPackage+">\AfterPackage+</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.AfterPackage+">344</a></li>
+<li><a name="cmd.AfterPackage"></a><a href="#cmd.AfterPackage">\AfterPackage</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.AfterPackage">344</a></li>
+<li><a name="cmd.AfterReadingMainAux"></a><a href="#cmd.AfterReadingMainAux">\AfterReadingMainAux</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.AfterReadingMainAux">346</a></li>
+<li><a name="cmd.AfterRestoreareas*"></a><a href="#cmd.AfterRestoreareas*">\AfterRestoreareas*</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.cmd.AfterRestoreareas*">451</a></li>
+<li><a name="cmd.AfterRestoreareas"></a><a href="#cmd.AfterRestoreareas">\AfterRestoreareas</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.cmd.AfterRestoreareas">451</a></li>
+<li><a name="cmd.AfterSelectAnyPageStyle"></a><a href="#cmd.AfterSelectAnyPageStyle">\AfterSelectAnyPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.AfterSelectAnyPageStyle">411</a></li>
+<li><a name="cmd.AfterSettingArea*"></a><a href="#cmd.AfterSettingArea*">\AfterSettingArea*</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.cmd.AfterSettingArea*">452</a></li>
+<li><a name="cmd.AfterSettingArea"></a><a href="#cmd.AfterSettingArea">\AfterSettingArea</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.cmd.AfterSettingArea">452</a></li>
+<li><a name="cmd.AfterStartingTOC"></a><a href="#cmd.AfterStartingTOC">\AfterStartingTOC</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.AfterStartingTOC">364</a></li>
+<li><a name="cmd.AfterTOCHead"></a><a href="#cmd.AfterTOCHead">\AfterTOCHead</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.AfterTOCHead">365</a></li>
+<li><a name="cmd.At@startsection"></a><a href="#cmd.At@startsection">\At@startsection</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.At@startsection">476</a></li>
+<li><a name="cmd.AtAddToTocList"></a><a href="#cmd.AtAddToTocList">\AtAddToTocList</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.AtAddToTocList">359</a></li>
+<li><a name="cmd.AtBeginLetter"></a><a href="#cmd.AtBeginLetter">\AtBeginLetter</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.AtBeginLetter">164</a></li>
+<li><a name="cmd.AtEndBibliography"></a><a href="#cmd.AtEndBibliography">\AtEndBibliography</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.AtEndBibliography">149</a></li>
+<li><a name="cmd.AtEndLetter"></a><a href="#cmd.AtEndLetter">\AtEndLetter</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.AtEndLetter">164</a></li>
+<li><a name="cmd.AtEndOfFamilyOptions*"></a><a href="#cmd.AtEndOfFamilyOptions*">\AtEndOfFamilyOptions*</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.AtEndOfFamilyOptions*">325</a></li>
+<li><a name="cmd.AtEndOfFamilyOptions"></a><a href="#cmd.AtEndOfFamilyOptions">\AtEndOfFamilyOptions</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.AtEndOfFamilyOptions">325</a></li>
+<li><a name="cmd.Before@sect"></a><a href="#cmd.Before@sect">\Before@sect</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.Before@sect">476</a></li>
+<li><a name="cmd.Before@ssect"></a><a href="#cmd.Before@ssect">\Before@ssect</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.Before@ssect">476</a></li>
+<li><a name="cmd.BeforeClass"></a><a href="#cmd.BeforeClass">\BeforeClass</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.BeforeClass">343</a></li>
+<li><a name="cmd.BeforeClosingMainAux"></a><a href="#cmd.BeforeClosingMainAux">\BeforeClosingMainAux</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.BeforeClosingMainAux">346</a></li>
+<li><a name="cmd.BeforeFamilyProcessOptions"></a><a href="#cmd.BeforeFamilyProcessOptions">\BeforeFamilyProcessOptions</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.BeforeFamilyProcessOptions">322</a></li>
+<li><a name="cmd.BeforeFile"></a><a href="#cmd.BeforeFile">\BeforeFile</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.BeforeFile">343</a></li>
+<li><a name="cmd.BeforePackage"></a><a href="#cmd.BeforePackage">\BeforePackage</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.BeforePackage">343</a></li>
+<li><a name="cmd.BeforeRestoreareas*"></a><a href="#cmd.BeforeRestoreareas*">\BeforeRestoreareas*</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.cmd.BeforeRestoreareas*">451</a></li>
+<li><a name="cmd.BeforeRestoreareas"></a><a href="#cmd.BeforeRestoreareas">\BeforeRestoreareas</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.cmd.BeforeRestoreareas">451</a></li>
+<li><a name="cmd.BeforeSelectAnyPageStyle"></a><a href="#cmd.BeforeSelectAnyPageStyle">\BeforeSelectAnyPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.BeforeSelectAnyPageStyle">411</a></li>
+<li><a name="cmd.BeforeStartingTOC"></a><a href="#cmd.BeforeStartingTOC">\BeforeStartingTOC</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.BeforeStartingTOC">364</a></li>
+<li><a name="cmd.BeforeTOCHead"></a><a href="#cmd.BeforeTOCHead">\BeforeTOCHead</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.BeforeTOCHead">365</a></li>
+<li><a name="cmd.BreakBibliography"></a><a href="#cmd.BreakBibliography">\BreakBibliography</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.BreakBibliography">149</a></li>
+<li><a name="cmd.CenturyPart"></a><a href="#cmd.CenturyPart">\CenturyPart</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.CenturyPart">263</a></li>
+<li><a name="cmd.ClassName"></a><a href="#cmd.ClassName">\ClassName</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.ClassName">454</a></li>
+<li><a name="cmd.Clause"></a><a href="#cmd.Clause">\Clause</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.Clause">299</a></li>
+<li><a name="cmd.Clauseformat"></a><a href="#cmd.Clauseformat">\Clauseformat</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.Clauseformat">301</a></li>
+<li><a name="cmd.CloneTOCEntryStyle"></a><a href="#cmd.CloneTOCEntryStyle">\CloneTOCEntryStyle</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.CloneTOCEntryStyle">379</a></li>
+<li><a name="cmd.Comment"></a><a href="#cmd.Comment">\Comment</a> --&gt; <a href="scrguien.pdf#desc:scraddr.cmd.Comment">271</a></li>
+<li><a name="cmd.DayName"></a><a href="#cmd.DayName">\DayName</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.DayName">264</a></li>
+<li><a name="cmd.DayNameByNumber"></a><a href="#cmd.DayNameByNumber">\DayNameByNumber</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.DayNameByNumber">264</a></li>
+<li><a name="cmd.DayNumber"></a><a href="#cmd.DayNumber">\DayNumber</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.DayNumber">263</a></li>
+<li><a name="cmd.DecadePart"></a><a href="#cmd.DecadePart">\DecadePart</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.DecadePart">263</a></li>
+<li><a name="cmd.DeclareLayer"></a><a href="#cmd.DeclareLayer">\DeclareLayer</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.DeclareLayer">400</a></li>
+<li><a name="cmd.DeclareNewJuraEnvironment"></a><a href="#cmd.DeclareNewJuraEnvironment">\DeclareNewJuraEnvironment</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.DeclareNewJuraEnvironment">306</a></li>
+<li><a name="cmd.DeclareNewLayer"></a><a href="#cmd.DeclareNewLayer">\DeclareNewLayer</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.DeclareNewLayer">400</a></li>
+<li><a name="cmd.DeclareNewNoteColumn"></a><a href="#cmd.DeclareNewNoteColumn">\DeclareNewNoteColumn</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.DeclareNewNoteColumn">441</a></li>
+<li><a name="cmd.DeclareNewPageStyleAlias"></a><a href="#cmd.DeclareNewPageStyleAlias">\DeclareNewPageStyleAlias</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.DeclareNewPageStyleAlias">411</a></li>
+<li><a name="cmd.DeclareNewPageStyleByLayers"></a><a href="#cmd.DeclareNewPageStyleByLayers">\DeclareNewPageStyleByLayers</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.DeclareNewPageStyleByLayers">412</a></li>
+<li><a name="cmd.DeclareNewSectionCommand"></a><a href="#cmd.DeclareNewSectionCommand">\DeclareNewSectionCommand</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.DeclareNewSectionCommand">459</a></li>
+<li><a name="cmd.DeclareNewSectionCommands"></a><a href="#cmd.DeclareNewSectionCommands">\DeclareNewSectionCommands</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.DeclareNewSectionCommands">469</a></li>
+<li><a name="cmd.DeclareNewTOC"></a><a href="#cmd.DeclareNewTOC">\DeclareNewTOC</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.DeclareNewTOC">385</a></li>
+<li><a name="cmd.DeclareNoteColumn"></a><a href="#cmd.DeclareNoteColumn">\DeclareNoteColumn</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.DeclareNoteColumn">441</a></li>
+<li><a name="cmd.DeclarePageStyleAlias"></a><a href="#cmd.DeclarePageStyleAlias">\DeclarePageStyleAlias</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.DeclarePageStyleAlias">411</a></li>
+<li><a name="cmd.DeclarePageStyleByLayers"></a><a href="#cmd.DeclarePageStyleByLayers">\DeclarePageStyleByLayers</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.DeclarePageStyleByLayers">412</a></li>
+<li><a name="cmd.DeclareSectionCommand"></a><a href="#cmd.DeclareSectionCommand">\DeclareSectionCommand</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.DeclareSectionCommand">459</a></li>
+<li><a name="cmd.DeclareSectionCommands"></a><a href="#cmd.DeclareSectionCommands">\DeclareSectionCommands</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.DeclareSectionCommands">469</a></li>
+<li><a name="cmd.DeclareSectionNumberDepth"></a><a href="#cmd.DeclareSectionNumberDepth">\DeclareSectionNumberDepth</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.DeclareSectionNumberDepth">398</a></li>
+<li><a name="cmd.DeclareTOCEntryStyle"></a><a href="#cmd.DeclareTOCEntryStyle">\DeclareTOCEntryStyle</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.DeclareTOCEntryStyle">377</a></li>
+<li><a name="cmd.DeclareTOCStyleEntries"></a><a href="#cmd.DeclareTOCStyleEntries">\DeclareTOCStyleEntries</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.DeclareTOCStyleEntries">369</a></li>
+<li><a name="cmd.DeclareTOCStyleEntry"></a><a href="#cmd.DeclareTOCStyleEntry">\DeclareTOCStyleEntry</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.DeclareTOCStyleEntry">369</a></li>
+<li><a name="cmd.DefineFamily"></a><a href="#cmd.DefineFamily">\DefineFamily</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.DefineFamily">318</a></li>
+<li><a name="cmd.DefineFamilyKey"></a><a href="#cmd.DefineFamilyKey">\DefineFamilyKey</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.DefineFamilyKey">319</a></li>
+<li><a name="cmd.DefineFamilyMember"></a><a href="#cmd.DefineFamilyMember">\DefineFamilyMember</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.DefineFamilyMember">318</a></li>
+<li><a name="cmd.DefineTOCEntryBooleanOption"></a><a href="#cmd.DefineTOCEntryBooleanOption">\DefineTOCEntryBooleanOption</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.DefineTOCEntryBooleanOption">377</a></li>
+<li><a name="cmd.DefineTOCEntryCommandOption"></a><a href="#cmd.DefineTOCEntryCommandOption">\DefineTOCEntryCommandOption</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.DefineTOCEntryCommandOption">377</a></li>
+<li><a name="cmd.DefineTOCEntryIfOption"></a><a href="#cmd.DefineTOCEntryIfOption">\DefineTOCEntryIfOption</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.DefineTOCEntryIfOption">377</a></li>
+<li><a name="cmd.DefineTOCEntryLengthOption"></a><a href="#cmd.DefineTOCEntryLengthOption">\DefineTOCEntryLengthOption</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.DefineTOCEntryLengthOption">377</a></li>
+<li><a name="cmd.DefineTOCEntryNumberOption"></a><a href="#cmd.DefineTOCEntryNumberOption">\DefineTOCEntryNumberOption</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.DefineTOCEntryNumberOption">377</a></li>
+<li><a name="cmd.DefineTOCEntryOption"></a><a href="#cmd.DefineTOCEntryOption">\DefineTOCEntryOption</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.DefineTOCEntryOption">377</a></li>
+<li><a name="cmd.DestroyLayer"></a><a href="#cmd.DestroyLayer">\DestroyLayer</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.DestroyLayer">409</a></li>
+<li><a name="cmd.DestroyPageStyleAlias"></a><a href="#cmd.DestroyPageStyleAlias">\DestroyPageStyleAlias</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.DestroyPageStyleAlias">412</a></li>
+<li><a name="cmd.DestroyRealLayerPageStyle"></a><a href="#cmd.DestroyRealLayerPageStyle">\DestroyRealLayerPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.DestroyRealLayerPageStyle">418</a></li>
+<li><a name="cmd.FamilyBoolKey"></a><a href="#cmd.FamilyBoolKey">\FamilyBoolKey</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyBoolKey">325</a></li>
+<li><a name="cmd.FamilyCSKey"></a><a href="#cmd.FamilyCSKey">\FamilyCSKey</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyCSKey">329</a></li>
+<li><a name="cmd.FamilyCounterKey"></a><a href="#cmd.FamilyCounterKey">\FamilyCounterKey</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyCounterKey">328</a></li>
+<li><a name="cmd.FamilyCounterMacroKey"></a><a href="#cmd.FamilyCounterMacroKey">\FamilyCounterMacroKey</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyCounterMacroKey">328</a></li>
+<li><a name="cmd.FamilyElseValues"></a><a href="#cmd.FamilyElseValues">\FamilyElseValues</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyElseValues">331</a></li>
+<li><a name="cmd.FamilyExecuteOptions"></a><a href="#cmd.FamilyExecuteOptions">\FamilyExecuteOptions</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyExecuteOptions">322</a></li>
+<li><a name="cmd.FamilyKeyState"></a><a href="#cmd.FamilyKeyState">\FamilyKeyState</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyKeyState">319</a></li>
+<li><a name="cmd.FamilyKeyStateNeedValue"></a><a href="#cmd.FamilyKeyStateNeedValue">\FamilyKeyStateNeedValue</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyKeyStateNeedValue">319</a></li>
+<li><a name="cmd.FamilyKeyStateProcessed"></a><a href="#cmd.FamilyKeyStateProcessed">\FamilyKeyStateProcessed</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyKeyStateProcessed">319</a></li>
+<li><a name="cmd.FamilyKeyStateUnknown"></a><a href="#cmd.FamilyKeyStateUnknown">\FamilyKeyStateUnknown</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyKeyStateUnknown">319</a></li>
+<li><a name="cmd.FamilyKeyStateUnknownValue"></a><a href="#cmd.FamilyKeyStateUnknownValue">\FamilyKeyStateUnknownValue</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyKeyStateUnknownValue">319</a></li>
+<li><a name="cmd.FamilyLengthKey"></a><a href="#cmd.FamilyLengthKey">\FamilyLengthKey</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyLengthKey">329</a></li>
+<li><a name="cmd.FamilyLengthMacroKey"></a><a href="#cmd.FamilyLengthMacroKey">\FamilyLengthMacroKey</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyLengthMacroKey">329</a></li>
+<li><a name="cmd.FamilyNumericalKey"></a><a href="#cmd.FamilyNumericalKey">\FamilyNumericalKey</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyNumericalKey">327</a></li>
+<li><a name="cmd.FamilyOption"></a><a href="#cmd.FamilyOption">\FamilyOption</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyOption">324</a></li>
+<li><a name="cmd.FamilyOptions"></a><a href="#cmd.FamilyOptions">\FamilyOptions</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyOptions">323</a></li>
+<li><a name="cmd.FamilyProcessOptions"></a><a href="#cmd.FamilyProcessOptions">\FamilyProcessOptions</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyProcessOptions">321</a></li>
+<li><a name="cmd.FamilySetBool"></a><a href="#cmd.FamilySetBool">\FamilySetBool</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilySetBool">325</a></li>
+<li><a name="cmd.FamilySetCounter"></a><a href="#cmd.FamilySetCounter">\FamilySetCounter</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilySetCounter">328</a></li>
+<li><a name="cmd.FamilySetCounterMacro"></a><a href="#cmd.FamilySetCounterMacro">\FamilySetCounterMacro</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilySetCounterMacro">328</a></li>
+<li><a name="cmd.FamilySetLength"></a><a href="#cmd.FamilySetLength">\FamilySetLength</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilySetLength">329</a></li>
+<li><a name="cmd.FamilySetLengthMacro"></a><a href="#cmd.FamilySetLengthMacro">\FamilySetLengthMacro</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilySetLengthMacro">329</a></li>
+<li><a name="cmd.FamilySetNumerical"></a><a href="#cmd.FamilySetNumerical">\FamilySetNumerical</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilySetNumerical">327</a></li>
+<li><a name="cmd.FamilySetUseLengthMacro"></a><a href="#cmd.FamilySetUseLengthMacro">\FamilySetUseLengthMacro</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilySetUseLengthMacro">329</a></li>
+<li><a name="cmd.FamilyStringKey"></a><a href="#cmd.FamilyStringKey">\FamilyStringKey</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyStringKey">329</a></li>
+<li><a name="cmd.FamilyUnknownKeyValue"></a><a href="#cmd.FamilyUnknownKeyValue">\FamilyUnknownKeyValue</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyUnknownKeyValue">330</a></li>
+<li><a name="cmd.FamilyUseLengthMacroKey"></a><a href="#cmd.FamilyUseLengthMacroKey">\FamilyUseLengthMacroKey</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.FamilyUseLengthMacroKey">329</a></li>
+<li><a name="cmd.FirstName"></a><a href="#cmd.FirstName">\FirstName</a> --&gt; <a href="scrguien.pdf#desc:scraddr.cmd.FirstName">271</a></li>
+<li><a name="cmd.ForEachLayerOfPageStyle*"></a><a href="#cmd.ForEachLayerOfPageStyle*">\ForEachLayerOfPageStyle*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.ForEachLayerOfPageStyle*">416</a></li>
+<li><a name="cmd.ForEachLayerOfPageStyle"></a><a href="#cmd.ForEachLayerOfPageStyle">\ForEachLayerOfPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.ForEachLayerOfPageStyle">416</a></li>
+<li><a name="cmd.FreeI"></a><a href="#cmd.FreeI">\FreeI</a> --&gt; <a href="scrguien.pdf#desc:scraddr.cmd.FreeI">271</a></li>
+<li><a name="cmd.FreeII"></a><a href="#cmd.FreeII">\FreeII</a> --&gt; <a href="scrguien.pdf#desc:scraddr.cmd.FreeII">271</a></li>
+<li><a name="cmd.FreeIII"></a><a href="#cmd.FreeIII">\FreeIII</a> --&gt; <a href="scrguien.pdf#desc:scraddr.cmd.FreeIII">271</a></li>
+<li><a name="cmd.FreeIV"></a><a href="#cmd.FreeIV">\FreeIV</a> --&gt; <a href="scrguien.pdf#desc:scraddr.cmd.FreeIV">271</a></li>
+<li><a name="cmd.GenericMarkFormat"></a><a href="#cmd.GenericMarkFormat">\GenericMarkFormat</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.GenericMarkFormat">424</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.GenericMarkFormat">428</a></li>
+<li><a name="cmd.GetLayerContents"></a><a href="#cmd.GetLayerContents">\GetLayerContents</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.GetLayerContents">409</a></li>
+<li><a name="cmd.GetRealPageStyle"></a><a href="#cmd.GetRealPageStyle">\GetRealPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.GetRealPageStyle">412</a></li>
+<li><a name="cmd.ISODayName"></a><a href="#cmd.ISODayName">\ISODayName</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.ISODayName">264</a></li>
+<li><a name="cmd.ISODayNumber"></a><a href="#cmd.ISODayNumber">\ISODayNumber</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.ISODayNumber">263</a></li>
+<li><a name="cmd.ISOToday"></a><a href="#cmd.ISOToday">\ISOToday</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.ISOToday">265</a></li>
+<li><a name="cmd.IfChapterUsesPrefixLine"></a><a href="#cmd.IfChapterUsesPrefixLine">\IfChapterUsesPrefixLine</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.IfChapterUsesPrefixLine">95</a></li>
+<li><a name="cmd.IfExistskomafont"></a><a href="#cmd.IfExistskomafont">\IfExistskomafont</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.IfExistskomafont">458</a></li>
+<li><a name="cmd.IfIsAliaskomafont"></a><a href="#cmd.IfIsAliaskomafont">\IfIsAliaskomafont</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.IfIsAliaskomafont">458</a></li>
+<li><a name="cmd.IfLayerAtPageStyle"></a><a href="#cmd.IfLayerAtPageStyle">\IfLayerAtPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.IfLayerAtPageStyle">418</a></li>
+<li><a name="cmd.IfLayerExists"></a><a href="#cmd.IfLayerExists">\IfLayerExists</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.IfLayerExists">409</a></li>
+<li><a name="cmd.IfLayerPageStyleExists"></a><a href="#cmd.IfLayerPageStyleExists">\IfLayerPageStyleExists</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.IfLayerPageStyleExists">418</a></li>
+<li><a name="cmd.IfLayersAtPageStyle"></a><a href="#cmd.IfLayersAtPageStyle">\IfLayersAtPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.IfLayersAtPageStyle">418</a></li>
+<li><a name="cmd.IfRealLayerPageStyleExists"></a><a href="#cmd.IfRealLayerPageStyleExists">\IfRealLayerPageStyleExists</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.IfRealLayerPageStyleExists">418</a></li>
+<li><a name="cmd.IfSomeLayerAtPageStyle"></a><a href="#cmd.IfSomeLayerAtPageStyle">\IfSomeLayerAtPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.IfSomeLayerAtPageStyle">418</a></li>
+<li><a name="cmd.IfUsePrefixLine"></a><a href="#cmd.IfUsePrefixLine">\IfUsePrefixLine</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.IfUsePrefixLine">109</a></li>
+<li><a name="cmd.InputAddressFile"></a><a href="#cmd.InputAddressFile">\InputAddressFile</a> --&gt; <a href="scrguien.pdf#desc:scraddr.cmd.InputAddressFile">270</a></li>
+<li><a name="cmd.IsoToday"></a><a href="#cmd.IsoToday">\IsoToday</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.IsoToday">265</a></li>
+<li><a name="cmd.KOMAClassName"></a><a href="#cmd.KOMAClassName">\KOMAClassName</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.KOMAClassName">454</a></li>
+<li><a name="cmd.KOMAScript"></a><a href="#cmd.KOMAScript">\KOMAScript</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.KOMAScript">340</a></li>
+<li><a name="cmd.KOMAScriptVersion"></a><a href="#cmd.KOMAScriptVersion">\KOMAScriptVersion</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.KOMAScriptVersion">340</a></li>
+<li><a name="cmd.KOMAoption"></a><a href="#cmd.KOMAoption">\KOMAoption</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.KOMAoption">159</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.KOMAoption">238</a>, <a href="scrguien.pdf#desc:scrextend.cmd.KOMAoption">276</a>, <a href="scrguien.pdf#desc:scrjura.cmd.KOMAoption">296</a>, <a href="scrguien.pdf#desc:typearea.cmd.KOMAoption">32</a>, <a href="scrguien.pdf#desc:scrhack.cmd.KOMAoption">393</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.KOMAoption">397</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.KOMAoption">438</a>, <a href="scrguien.pdf#desc:maincls.cmd.KOMAoption">54</a></li>
+<li><a name="cmd.KOMAoptions"></a><a href="#cmd.KOMAoptions">\KOMAoptions</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.KOMAoptions">159</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.KOMAoptions">238</a>, <a href="scrguien.pdf#desc:scrextend.cmd.KOMAoptions">276</a>, <a href="scrguien.pdf#desc:scrjura.cmd.KOMAoptions">296</a>, <a href="scrguien.pdf#desc:typearea.cmd.KOMAoptions">32</a>, <a href="scrguien.pdf#desc:scrhack.cmd.KOMAoptions">393</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.KOMAoptions">397</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.KOMAoptions">438</a>, <a href="scrguien.pdf#desc:maincls.cmd.KOMAoptions">54</a></li>
+<li><a name="cmd.LastName"></a><a href="#cmd.LastName">\LastName</a> --&gt; <a href="scrguien.pdf#desc:scraddr.cmd.LastName">271</a></li>
+<li><a name="cmd.LastTOCLevelWasHigher"></a><a href="#cmd.LastTOCLevelWasHigher">\LastTOCLevelWasHigher</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.LastTOCLevelWasHigher">380</a></li>
+<li><a name="cmd.LastTOCLevelWasLower"></a><a href="#cmd.LastTOCLevelWasLower">\LastTOCLevelWasLower</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.LastTOCLevelWasLower">380</a></li>
+<li><a name="cmd.LastTOCLevelWasSame"></a><a href="#cmd.LastTOCLevelWasSame">\LastTOCLevelWasSame</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.LastTOCLevelWasSame">380</a></li>
+<li><a name="cmd.LenToUnit"></a><a href="#cmd.LenToUnit">\LenToUnit</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.LenToUnit">408</a></li>
+<li><a name="cmd.LoadLetterOption"></a><a href="#cmd.LoadLetterOption">\LoadLetterOption</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.LoadLetterOption">227</a></li>
+<li><a name="cmd.LoadLetterOptions"></a><a href="#cmd.LoadLetterOptions">\LoadLetterOptions</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.LoadLetterOptions">227</a></li>
+<li><a name="cmd.MakeMarkcase"></a><a href="#cmd.MakeMarkcase">\MakeMarkcase</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.MakeMarkcase">255</a>, <a href="scrguien.pdf#desc:tocbasic.cmd.MakeMarkcase">365</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.MakeMarkcase">421</a></li>
+<li><a name="cmd.ModifyLayer"></a><a href="#cmd.ModifyLayer">\ModifyLayer</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.ModifyLayer">400</a></li>
+<li><a name="cmd.ModifyLayerPageStyleOptions"></a><a href="#cmd.ModifyLayerPageStyleOptions">\ModifyLayerPageStyleOptions</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.ModifyLayerPageStyleOptions">417</a></li>
+<li><a name="cmd.Name"></a><a href="#cmd.Name">\Name</a> --&gt; <a href="scrguien.pdf#desc:scraddr.cmd.Name">271</a></li>
+<li><a name="cmd.PreventPackageFromLoading*"></a><a href="#cmd.PreventPackageFromLoading*">\PreventPackageFromLoading*</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.PreventPackageFromLoading*">350</a></li>
+<li><a name="cmd.PreventPackageFromLoading"></a><a href="#cmd.PreventPackageFromLoading">\PreventPackageFromLoading</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.PreventPackageFromLoading">350</a></li>
+<li><a name="cmd.ProvideLayer"></a><a href="#cmd.ProvideLayer">\ProvideLayer</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.ProvideLayer">400</a></li>
+<li><a name="cmd.ProvideNoteColumn"></a><a href="#cmd.ProvideNoteColumn">\ProvideNoteColumn</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.ProvideNoteColumn">441</a></li>
+<li><a name="cmd.ProvidePageStyleAlias"></a><a href="#cmd.ProvidePageStyleAlias">\ProvidePageStyleAlias</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.ProvidePageStyleAlias">411</a></li>
+<li><a name="cmd.ProvidePageStyleByLayers"></a><a href="#cmd.ProvidePageStyleByLayers">\ProvidePageStyleByLayers</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.ProvidePageStyleByLayers">412</a></li>
+<li><a name="cmd.ProvideSectionCommand"></a><a href="#cmd.ProvideSectionCommand">\ProvideSectionCommand</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.ProvideSectionCommand">459</a></li>
+<li><a name="cmd.ProvideSectionCommands"></a><a href="#cmd.ProvideSectionCommands">\ProvideSectionCommands</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.ProvideSectionCommands">469</a></li>
+<li><a name="cmd.RedeclareLayer"></a><a href="#cmd.RedeclareLayer">\RedeclareLayer</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.RedeclareLayer">400</a></li>
+<li><a name="cmd.RedeclareNoteColumn"></a><a href="#cmd.RedeclareNoteColumn">\RedeclareNoteColumn</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.RedeclareNoteColumn">441</a></li>
+<li><a name="cmd.RedeclarePageStyleAlias"></a><a href="#cmd.RedeclarePageStyleAlias">\RedeclarePageStyleAlias</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.RedeclarePageStyleAlias">411</a></li>
+<li><a name="cmd.RedeclarePageStyleByLayers"></a><a href="#cmd.RedeclarePageStyleByLayers">\RedeclarePageStyleByLayers</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.RedeclarePageStyleByLayers">412</a></li>
+<li><a name="cmd.RedeclareSectionCommand"></a><a href="#cmd.RedeclareSectionCommand">\RedeclareSectionCommand</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.RedeclareSectionCommand">459</a></li>
+<li><a name="cmd.RedeclareSectionCommands"></a><a href="#cmd.RedeclareSectionCommands">\RedeclareSectionCommands</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.RedeclareSectionCommands">469</a></li>
+<li><a name="cmd.RelaxFamilyKey"></a><a href="#cmd.RelaxFamilyKey">\RelaxFamilyKey</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.RelaxFamilyKey">321</a></li>
+<li><a name="cmd.RemoveLayersFromPageStyle"></a><a href="#cmd.RemoveLayersFromPageStyle">\RemoveLayersFromPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.RemoveLayersFromPageStyle">416</a></li>
+<li><a name="cmd.ReplaceClass"></a><a href="#cmd.ReplaceClass">\ReplaceClass</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.ReplaceClass">348</a></li>
+<li><a name="cmd.ReplaceInput"></a><a href="#cmd.ReplaceInput">\ReplaceInput</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.ReplaceInput">347</a></li>
+<li><a name="cmd.ReplacePackage"></a><a href="#cmd.ReplacePackage">\ReplacePackage</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.ReplacePackage">348</a></li>
+<li><a name="cmd.ResetPreventPackageFromLoading"></a><a href="#cmd.ResetPreventPackageFromLoading">\ResetPreventPackageFromLoading</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.ResetPreventPackageFromLoading">351</a></li>
+<li><a name="cmd.SecDef"></a><a href="#cmd.SecDef">\SecDef</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.SecDef">476</a></li>
+<li><a name="cmd.Sentence"></a><a href="#cmd.Sentence">\Sentence</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.Sentence">304</a></li>
+<li><a name="cmd.StorePreventPackageFromLoading"></a><a href="#cmd.StorePreventPackageFromLoading">\StorePreventPackageFromLoading</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.StorePreventPackageFromLoading">351</a></li>
+<li><a name="cmd.SubClause"></a><a href="#cmd.SubClause">\SubClause</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.SubClause">299</a></li>
+<li><a name="cmd.TOCEntryStyleInitCode"></a><a href="#cmd.TOCEntryStyleInitCode">\TOCEntryStyleInitCode</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.TOCEntryStyleInitCode">379</a></li>
+<li><a name="cmd.TOCEntryStyleStartInitCode"></a><a href="#cmd.TOCEntryStyleStartInitCode">\TOCEntryStyleStartInitCode</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.TOCEntryStyleStartInitCode">379</a></li>
+<li><a name="cmd.TOCLineLeaderFill"></a><a href="#cmd.TOCLineLeaderFill">\TOCLineLeaderFill</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.TOCLineLeaderFill">380</a></li>
+<li><a name="cmd.TOCclone"></a><a href="#cmd.TOCclone">\TOCclone</a> --&gt; <a href="scrguien.pdf#desc:scrwfile.cmd.TOCclone">354</a></li>
+<li><a name="cmd.Telephone"></a><a href="#cmd.Telephone">\Telephone</a> --&gt; <a href="scrguien.pdf#desc:scraddr.cmd.Telephone">271</a></li>
+<li><a name="cmd.UnPreventPackageFromLoading*"></a><a href="#cmd.UnPreventPackageFromLoading*">\UnPreventPackageFromLoading*</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.UnPreventPackageFromLoading*">352</a></li>
+<li><a name="cmd.UnPreventPackageFromLoading"></a><a href="#cmd.UnPreventPackageFromLoading">\UnPreventPackageFromLoading</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.UnPreventPackageFromLoading">352</a></li>
+<li><a name="cmd.UnReplaceClass"></a><a href="#cmd.UnReplaceClass">\UnReplaceClass</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.UnReplaceClass">350</a></li>
+<li><a name="cmd.UnReplaceInput"></a><a href="#cmd.UnReplaceInput">\UnReplaceInput</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.UnReplaceInput">350</a></li>
+<li><a name="cmd.UnReplacePackage"></a><a href="#cmd.UnReplacePackage">\UnReplacePackage</a> --&gt; <a href="scrguien.pdf#desc:scrlfile.cmd.UnReplacePackage">350</a></li>
+<li><a name="cmd.UnifyLayersAtPageStyle"></a><a href="#cmd.UnifyLayersAtPageStyle">\UnifyLayersAtPageStyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.UnifyLayersAtPageStyle">417</a></li>
+<li><a name="cmd.XdivY"></a><a href="#cmd.XdivY">\XdivY</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.XdivY">341</a></li>
+<li><a name="cmd.XmodY"></a><a href="#cmd.XmodY">\XmodY</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.XmodY">341</a></li>
+<li><a name="cmd.activateareas"></a><a href="#cmd.activateareas">\activateareas</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.cmd.activateareas">451</a></li>
+<li><a name="cmd.addchap*"></a><a href="#cmd.addchap*">\addchap*</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.addchap*">106</a></li>
+<li><a name="cmd.addchap"></a><a href="#cmd.addchap">\addchap</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.addchap">106</a></li>
+<li><a name="cmd.addchapmark"></a><a href="#cmd.addchapmark">\addchapmark</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.addchapmark">112</a></li>
+<li><a name="cmd.addchaptertocentry"></a><a href="#cmd.addchaptertocentry">\addchaptertocentry</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.addchaptertocentry">456</a></li>
+<li><a name="cmd.addcontentslinetoeachtocfile"></a><a href="#cmd.addcontentslinetoeachtocfile">\addcontentslinetoeachtocfile</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.addcontentslinetoeachtocfile">362</a></li>
+<li><a name="cmd.addparagraphtocentry"></a><a href="#cmd.addparagraphtocentry">\addparagraphtocentry</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.addparagraphtocentry">456</a></li>
+<li><a name="cmd.addpart*"></a><a href="#cmd.addpart*">\addpart*</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.addpart*">106</a></li>
+<li><a name="cmd.addpart"></a><a href="#cmd.addpart">\addpart</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.addpart">106</a></li>
+<li><a name="cmd.addparttocentry"></a><a href="#cmd.addparttocentry">\addparttocentry</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.addparttocentry">456</a></li>
+<li><a name="cmd.addrchar"></a><a href="#cmd.addrchar">\addrchar</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.addrchar">235</a>, <a href="scrguien.pdf#desc:scraddr.cmd.addrchar">270</a></li>
+<li><a name="cmd.addrentry"></a><a href="#cmd.addrentry">\addrentry</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.addrentry">233</a>, <a href="scrguien.pdf#desc:scraddr.cmd.addrentry">270</a></li>
+<li><a name="cmd.addsec*"></a><a href="#cmd.addsec*">\addsec*</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.addsec*">106</a></li>
+<li><a name="cmd.addsec"></a><a href="#cmd.addsec">\addsec</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.addsec">106</a></li>
+<li><a name="cmd.addsecmark"></a><a href="#cmd.addsecmark">\addsecmark</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.addsecmark">112</a></li>
+<li><a name="cmd.addsectiontocentry"></a><a href="#cmd.addsectiontocentry">\addsectiontocentry</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.addsectiontocentry">456</a></li>
+<li><a name="cmd.addsubparagraphtocentry"></a><a href="#cmd.addsubparagraphtocentry">\addsubparagraphtocentry</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.addsubparagraphtocentry">456</a></li>
+<li><a name="cmd.addsubsectiontocentry"></a><a href="#cmd.addsubsectiontocentry">\addsubsectiontocentry</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.addsubsectiontocentry">456</a></li>
+<li><a name="cmd.addsubsubsectiontocentry"></a><a href="#cmd.addsubsubsectiontocentry">\addsubsubsectiontocentry</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.addsubsubsectiontocentry">456</a></li>
+<li><a name="cmd.addtocentrydefault"></a><a href="#cmd.addtocentrydefault">\addtocentrydefault</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.addtocentrydefault">455</a></li>
+<li><a name="cmd.addtoeachtocfile"></a><a href="#cmd.addtoeachtocfile">\addtoeachtocfile</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.addtoeachtocfile">361</a></li>
+<li><a name="cmd.addtokomafont"></a><a href="#cmd.addtokomafont">\addtokomafont</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.addtokomafont">175</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.addtokomafont">240</a>, <a href="scrguien.pdf#desc:scrextend.cmd.addtokomafont">280</a>, <a href="scrguien.pdf#desc:scrjura.cmd.addtokomafont">296</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.addtokomafont">439</a>, <a href="scrguien.pdf#desc:maincls.cmd.addtokomafont">59</a></li>
+<li><a name="cmd.addtokomafontgobblelist"></a><a href="#cmd.addtokomafontgobblelist">\addtokomafontgobblelist</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.addtokomafontgobblelist">457</a></li>
+<li><a name="cmd.addtokomafontonearglist"></a><a href="#cmd.addtokomafontonearglist">\addtokomafontonearglist</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.addtokomafontonearglist">457</a></li>
+<li><a name="cmd.addtokomafontrelaxlist"></a><a href="#cmd.addtokomafontrelaxlist">\addtokomafontrelaxlist</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.addtokomafontrelaxlist">457</a></li>
+<li><a name="cmd.addtolengthplength"></a><a href="#cmd.addtolengthplength">\addtolengthplength</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.addtolengthplength">158</a></li>
+<li><a name="cmd.addtoplength"></a><a href="#cmd.addtoplength">\addtoplength</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.addtoplength">485</a></li>
+<li><a name="cmd.addtoreffields"></a><a href="#cmd.addtoreffields">\addtoreffields</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.addtoreffields">496</a></li>
+<li><a name="cmd.addtotoclist"></a><a href="#cmd.addtotoclist">\addtotoclist</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.addtotoclist">358</a></li>
+<li><a name="cmd.addxcontentsline"></a><a href="#cmd.addxcontentsline">\addxcontentsline</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.addxcontentsline">362</a></li>
+<li><a name="cmd.addxcontentslinetoeachtocfile"></a><a href="#cmd.addxcontentslinetoeachtocfile">\addxcontentslinetoeachtocfile</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.addxcontentslinetoeachtocfile">362</a></li>
+<li><a name="cmd.adrchar"></a><a href="#cmd.adrchar">\adrchar</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.adrchar">235</a>, <a href="scrguien.pdf#desc:scraddr.cmd.adrchar">270</a></li>
+<li><a name="cmd.adrentry"></a><a href="#cmd.adrentry">\adrentry</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.adrentry">232</a>, <a href="scrguien.pdf#desc:scraddr.cmd.adrentry">270</a></li>
+<li><a name="cmd.aliaskomafont"></a><a href="#cmd.aliaskomafont">\aliaskomafont</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.aliaskomafont">457</a></li>
+<li><a name="cmd.and"></a><a href="#cmd.and">\and</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.and">284</a>, <a href="scrguien.pdf#desc:maincls.cmd.and">67</a></li>
+<li><a name="cmd.appendix"></a><a href="#cmd.appendix">\appendix</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.appendix">147</a></li>
+<li><a name="cmd.appendixmore"></a><a href="#cmd.appendixmore">\appendixmore</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.appendixmore">477</a></li>
+<li><a name="cmd.areaset"></a><a href="#cmd.areaset">\areaset</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.cmd.areaset">451</a>, <a href="scrguien.pdf#desc:typearea.cmd.areaset">46</a></li>
+<li><a name="cmd.author"></a><a href="#cmd.author">\author</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.author">284</a>, <a href="scrguien.pdf#desc:maincls.cmd.author">67</a></li>
+<li><a name="cmd.autodot"></a><a href="#cmd.autodot">\autodot</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.autodot">109</a></li>
+<li><a name="cmd.automark*"></a><a href="#cmd.automark*">\automark*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.automark*">252</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.automark*">420</a></li>
+<li><a name="cmd.automark"></a><a href="#cmd.automark">\automark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.automark">252</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.automark">420</a></li>
+<li><a name="cmd.backmatter"></a><a href="#cmd.backmatter">\backmatter</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.backmatter">93</a></li>
+<li><a name="cmd.bankname"></a><a href="#cmd.bankname">\bankname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.bankname">502</a></li>
+<li><a name="cmd.bib@beginhook"></a><a href="#cmd.bib@beginhook">\bib@beginhook</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.bib@beginhook">478</a></li>
+<li><a name="cmd.bib@endhook"></a><a href="#cmd.bib@endhook">\bib@endhook</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.bib@endhook">478</a></li>
+<li><a name="cmd.caption"></a><a href="#cmd.caption">\caption</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.caption">130</a></li>
+<li><a name="cmd.captionabove"></a><a href="#cmd.captionabove">\captionabove</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.captionabove">130</a></li>
+<li><a name="cmd.captionaboveof"></a><a href="#cmd.captionaboveof">\captionaboveof</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.captionaboveof">132</a></li>
+<li><a name="cmd.captionbelow"></a><a href="#cmd.captionbelow">\captionbelow</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.captionbelow">130</a></li>
+<li><a name="cmd.captionbelowof"></a><a href="#cmd.captionbelowof">\captionbelowof</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.captionbelowof">132</a></li>
+<li><a name="cmd.captionformat"></a><a href="#cmd.captionformat">\captionformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.captionformat">137</a></li>
+<li><a name="cmd.captionof"></a><a href="#cmd.captionof">\captionof</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.captionof">132</a></li>
+<li><a name="cmd.captionsUKenglish"></a><a href="#cmd.captionsUKenglish">\captionsUKenglish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsUKenglish">503</a></li>
+<li><a name="cmd.captionsUSenglish"></a><a href="#cmd.captionsUSenglish">\captionsUSenglish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsUSenglish">503</a></li>
+<li><a name="cmd.captionsacadian"></a><a href="#cmd.captionsacadian">\captionsacadian</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsacadian">503</a></li>
+<li><a name="cmd.captionsamerican"></a><a href="#cmd.captionsamerican">\captionsamerican</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsamerican">503</a></li>
+<li><a name="cmd.captionsaustralien"></a><a href="#cmd.captionsaustralien">\captionsaustralien</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsaustralien">503</a></li>
+<li><a name="cmd.captionsaustrian"></a><a href="#cmd.captionsaustrian">\captionsaustrian</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsaustrian">503</a></li>
+<li><a name="cmd.captionsbritish"></a><a href="#cmd.captionsbritish">\captionsbritish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsbritish">503</a></li>
+<li><a name="cmd.captionscanadian"></a><a href="#cmd.captionscanadian">\captionscanadian</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionscanadian">503</a></li>
+<li><a name="cmd.captionscanadien"></a><a href="#cmd.captionscanadien">\captionscanadien</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionscanadien">503</a></li>
+<li><a name="cmd.captionscroatian"></a><a href="#cmd.captionscroatian">\captionscroatian</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionscroatian">503</a></li>
+<li><a name="cmd.captionsczech"></a><a href="#cmd.captionsczech">\captionsczech</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsczech">503</a></li>
+<li><a name="cmd.captionsdutch"></a><a href="#cmd.captionsdutch">\captionsdutch</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsdutch">503</a></li>
+<li><a name="cmd.captionsenglish"></a><a href="#cmd.captionsenglish">\captionsenglish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsenglish">503</a></li>
+<li><a name="cmd.captionsfinnish"></a><a href="#cmd.captionsfinnish">\captionsfinnish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsfinnish">503</a></li>
+<li><a name="cmd.captionsfrancais"></a><a href="#cmd.captionsfrancais">\captionsfrancais</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsfrancais">503</a></li>
+<li><a name="cmd.captionsfrench"></a><a href="#cmd.captionsfrench">\captionsfrench</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsfrench">503</a></li>
+<li><a name="cmd.captionsgerman"></a><a href="#cmd.captionsgerman">\captionsgerman</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsgerman">503</a></li>
+<li><a name="cmd.captionsitalian"></a><a href="#cmd.captionsitalian">\captionsitalian</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsitalian">503</a></li>
+<li><a name="cmd.captionsnaustrian"></a><a href="#cmd.captionsnaustrian">\captionsnaustrian</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsnaustrian">503</a></li>
+<li><a name="cmd.captionsnewzealand"></a><a href="#cmd.captionsnewzealand">\captionsnewzealand</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsnewzealand">503</a></li>
+<li><a name="cmd.captionsngerman"></a><a href="#cmd.captionsngerman">\captionsngerman</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsngerman">503</a></li>
+<li><a name="cmd.captionsnorsk"></a><a href="#cmd.captionsnorsk">\captionsnorsk</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsnorsk">503</a></li>
+<li><a name="cmd.captionsnswissgerman"></a><a href="#cmd.captionsnswissgerman">\captionsnswissgerman</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsnswissgerman">503</a></li>
+<li><a name="cmd.captionspolish"></a><a href="#cmd.captionspolish">\captionspolish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionspolish">503</a></li>
+<li><a name="cmd.captionsslovak"></a><a href="#cmd.captionsslovak">\captionsslovak</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsslovak">503</a></li>
+<li><a name="cmd.captionsspanish"></a><a href="#cmd.captionsspanish">\captionsspanish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsspanish">503</a></li>
+<li><a name="cmd.captionsswedish"></a><a href="#cmd.captionsswedish">\captionsswedish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsswedish">503</a></li>
+<li><a name="cmd.captionsswissgerman"></a><a href="#cmd.captionsswissgerman">\captionsswissgerman</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.captionsswissgerman">503</a></li>
+<li><a name="cmd.cc"></a><a href="#cmd.cc">\cc</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cc">169</a></li>
+<li><a name="cmd.ccname"></a><a href="#cmd.ccname">\ccname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.ccname">502</a></li>
+<li><a name="cmd.cefoot*"></a><a href="#cmd.cefoot*">\cefoot*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.cefoot*">248</a></li>
+<li><a name="cmd.cefoot"></a><a href="#cmd.cefoot">\cefoot</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.cefoot">246</a></li>
+<li><a name="cmd.cehead*"></a><a href="#cmd.cehead*">\cehead*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.cehead*">245</a></li>
+<li><a name="cmd.cehead"></a><a href="#cmd.cehead">\cehead</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.cehead">243</a></li>
+<li><a name="cmd.cfoot*"></a><a href="#cmd.cfoot*">\cfoot*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.cfoot*">250</a></li>
+<li><a name="cmd.cfoot"></a><a href="#cmd.cfoot">\cfoot</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.cfoot">249</a></li>
+<li><a name="cmd.changefontsizes"></a><a href="#cmd.changefontsizes">\changefontsizes</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.changefontsizes">456</a></li>
+<li><a name="cmd.chapapp"></a><a href="#cmd.chapapp">\chapapp</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.chapapp">111</a></li>
+<li><a name="cmd.chapappifchapterprefix"></a><a href="#cmd.chapappifchapterprefix">\chapappifchapterprefix</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.chapappifchapterprefix">111</a></li>
+<li><a name="cmd.chapter*"></a><a href="#cmd.chapter*">\chapter*</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.chapter*">105</a></li>
+<li><a name="cmd.chapter"></a><a href="#cmd.chapter">\chapter</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.chapter">101</a></li>
+<li><a name="cmd.chapterformat"></a><a href="#cmd.chapterformat">\chapterformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.chapterformat">109</a></li>
+<li><a name="cmd.chapterheadendvskip"></a><a href="#cmd.chapterheadendvskip">\chapterheadendvskip</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.chapterheadendvskip">470</a></li>
+<li><a name="cmd.chapterheadmidvskip"></a><a href="#cmd.chapterheadmidvskip">\chapterheadmidvskip</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.chapterheadmidvskip">470</a></li>
+<li><a name="cmd.chapterheadstartvskip"></a><a href="#cmd.chapterheadstartvskip">\chapterheadstartvskip</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.chapterheadstartvskip">470</a></li>
+<li><a name="cmd.chapterlinesformat"></a><a href="#cmd.chapterlinesformat">\chapterlinesformat</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.chapterlinesformat">473</a></li>
+<li><a name="cmd.chapterlineswithprefixformat"></a><a href="#cmd.chapterlineswithprefixformat">\chapterlineswithprefixformat</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.chapterlineswithprefixformat">473</a></li>
+<li><a name="cmd.chaptermark"></a><a href="#cmd.chaptermark">\chaptermark</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.chaptermark">112</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.chaptermark">258</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.chaptermark">423</a></li>
+<li><a name="cmd.chaptermarkformat"></a><a href="#cmd.chaptermarkformat">\chaptermarkformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.chaptermarkformat">112</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.chaptermarkformat">257</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.chaptermarkformat">422</a></li>
+<li><a name="cmd.chapternumdepth"></a><a href="#cmd.chapternumdepth">\chapternumdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.chapternumdepth">113</a></li>
+<li><a name="cmd.chapterpagestyle"></a><a href="#cmd.chapterpagestyle">\chapterpagestyle</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.chapterpagestyle">83</a></li>
+<li><a name="cmd.chead*"></a><a href="#cmd.chead*">\chead*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.chead*">250</a></li>
+<li><a name="cmd.chead"></a><a href="#cmd.chead">\chead</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.chead">249</a></li>
+<li><a name="cmd.cleardoubleemptypage"></a><a href="#cmd.cleardoubleemptypage">\cleardoubleemptypage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoubleemptypage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoubleemptypage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoubleemptypage">87</a></li>
+<li><a name="cmd.cleardoubleevenemptypage"></a><a href="#cmd.cleardoubleevenemptypage">\cleardoubleevenemptypage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoubleevenemptypage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoubleevenemptypage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoubleevenemptypage">87</a></li>
+<li><a name="cmd.cleardoubleevenpage"></a><a href="#cmd.cleardoubleevenpage">\cleardoubleevenpage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoubleevenpage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoubleevenpage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoubleevenpage">87</a></li>
+<li><a name="cmd.cleardoubleevenpageusingstyle"></a><a href="#cmd.cleardoubleevenpageusingstyle">\cleardoubleevenpageusingstyle</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoubleevenpageusingstyle">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoubleevenpageusingstyle">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoubleevenpageusingstyle">87</a></li>
+<li><a name="cmd.cleardoubleevenplainpage"></a><a href="#cmd.cleardoubleevenplainpage">\cleardoubleevenplainpage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoubleevenplainpage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoubleevenplainpage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoubleevenplainpage">87</a></li>
+<li><a name="cmd.cleardoubleevenstandardpage"></a><a href="#cmd.cleardoubleevenstandardpage">\cleardoubleevenstandardpage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoubleevenstandardpage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoubleevenstandardpage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoubleevenstandardpage">87</a></li>
+<li><a name="cmd.cleardoubleoddemptypage"></a><a href="#cmd.cleardoubleoddemptypage">\cleardoubleoddemptypage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoubleoddemptypage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoubleoddemptypage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoubleoddemptypage">87</a></li>
+<li><a name="cmd.cleardoubleoddpage"></a><a href="#cmd.cleardoubleoddpage">\cleardoubleoddpage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoubleoddpage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoubleoddpage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoubleoddpage">87</a></li>
+<li><a name="cmd.cleardoubleoddpageusingstyle"></a><a href="#cmd.cleardoubleoddpageusingstyle">\cleardoubleoddpageusingstyle</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoubleoddpageusingstyle">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoubleoddpageusingstyle">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoubleoddpageusingstyle">87</a></li>
+<li><a name="cmd.cleardoubleoddplainpage"></a><a href="#cmd.cleardoubleoddplainpage">\cleardoubleoddplainpage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoubleoddplainpage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoubleoddplainpage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoubleoddplainpage">87</a></li>
+<li><a name="cmd.cleardoubleoddstandardpage"></a><a href="#cmd.cleardoubleoddstandardpage">\cleardoubleoddstandardpage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoubleoddstandardpage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoubleoddstandardpage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoubleoddstandardpage">87</a></li>
+<li><a name="cmd.cleardoublepage"></a><a href="#cmd.cleardoublepage">\cleardoublepage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoublepage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoublepage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoublepage">87</a></li>
+<li><a name="cmd.cleardoublepageusingstyle"></a><a href="#cmd.cleardoublepageusingstyle">\cleardoublepageusingstyle</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoublepageusingstyle">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoublepageusingstyle">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoublepageusingstyle">87</a></li>
+<li><a name="cmd.cleardoubleplainpage"></a><a href="#cmd.cleardoubleplainpage">\cleardoubleplainpage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoubleplainpage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoubleplainpage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoubleplainpage">87</a></li>
+<li><a name="cmd.cleardoublestandardpage"></a><a href="#cmd.cleardoublestandardpage">\cleardoublestandardpage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.cleardoublestandardpage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.cleardoublestandardpage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.cleardoublestandardpage">87</a></li>
+<li><a name="cmd.clearmainofpairofpagestyles"></a><a href="#cmd.clearmainofpairofpagestyles">\clearmainofpairofpagestyles</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.clearmainofpairofpagestyles">433</a></li>
+<li><a name="cmd.clearnotecolumn"></a><a href="#cmd.clearnotecolumn">\clearnotecolumn</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.clearnotecolumn">448</a></li>
+<li><a name="cmd.clearnotecolumns"></a><a href="#cmd.clearnotecolumns">\clearnotecolumns</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.clearnotecolumns">448</a></li>
+<li><a name="cmd.clearpage"></a><a href="#cmd.clearpage">\clearpage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.clearpage">216</a>, <a href="scrguien.pdf#desc:scrextend.cmd.clearpage">288</a>, <a href="scrguien.pdf#desc:maincls.cmd.clearpage">87</a></li>
+<li><a name="cmd.clearpairofpagestyles"></a><a href="#cmd.clearpairofpagestyles">\clearpairofpagestyles</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.clearpairofpagestyles">433</a></li>
+<li><a name="cmd.clearplainofpairofpagestyles"></a><a href="#cmd.clearplainofpairofpagestyles">\clearplainofpairofpagestyles</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.clearplainofpairofpagestyles">433</a></li>
+<li><a name="cmd.closing"></a><a href="#cmd.closing">\closing</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.closing">166</a></li>
+<li><a name="cmd.cofoot*"></a><a href="#cmd.cofoot*">\cofoot*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.cofoot*">248</a></li>
+<li><a name="cmd.cofoot"></a><a href="#cmd.cofoot">\cofoot</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.cofoot">246</a></li>
+<li><a name="cmd.cohead*"></a><a href="#cmd.cohead*">\cohead*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.cohead*">245</a></li>
+<li><a name="cmd.cohead"></a><a href="#cmd.cohead">\cohead</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.cohead">243</a></li>
+<li><a name="cmd.coverpagebottommargin"></a><a href="#cmd.coverpagebottommargin">\coverpagebottommargin</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.coverpagebottommargin">282</a>, <a href="scrguien.pdf#desc:maincls.cmd.coverpagebottommargin">64</a></li>
+<li><a name="cmd.coverpageleftmargin"></a><a href="#cmd.coverpageleftmargin">\coverpageleftmargin</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.coverpageleftmargin">282</a>, <a href="scrguien.pdf#desc:maincls.cmd.coverpageleftmargin">64</a></li>
+<li><a name="cmd.coverpagerightmargin"></a><a href="#cmd.coverpagerightmargin">\coverpagerightmargin</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.coverpagerightmargin">282</a>, <a href="scrguien.pdf#desc:maincls.cmd.coverpagerightmargin">64</a></li>
+<li><a name="cmd.coverpagetopmargin"></a><a href="#cmd.coverpagetopmargin">\coverpagetopmargin</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.coverpagetopmargin">282</a>, <a href="scrguien.pdf#desc:maincls.cmd.coverpagetopmargin">64</a></li>
+<li><a name="cmd.currentpagestyle"></a><a href="#cmd.currentpagestyle">\currentpagestyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.currentpagestyle">410</a></li>
+<li><a name="cmd.customername"></a><a href="#cmd.customername">\customername</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.customername">502</a></li>
+<li><a name="cmd.date"></a><a href="#cmd.date">\date</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.date">284</a>, <a href="scrguien.pdf#desc:maincls.cmd.date">67</a></li>
+<li><a name="cmd.dateUKenglish"></a><a href="#cmd.dateUKenglish">\dateUKenglish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dateUKenglish">504</a></li>
+<li><a name="cmd.dateUSenglish"></a><a href="#cmd.dateUSenglish">\dateUSenglish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dateUSenglish">504</a></li>
+<li><a name="cmd.dateacadian"></a><a href="#cmd.dateacadian">\dateacadian</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dateacadian">504</a></li>
+<li><a name="cmd.dateamerican"></a><a href="#cmd.dateamerican">\dateamerican</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dateamerican">504</a></li>
+<li><a name="cmd.dateaustralien"></a><a href="#cmd.dateaustralien">\dateaustralien</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dateaustralien">504</a></li>
+<li><a name="cmd.dateaustrian"></a><a href="#cmd.dateaustrian">\dateaustrian</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dateaustrian">504</a></li>
+<li><a name="cmd.datebritish"></a><a href="#cmd.datebritish">\datebritish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datebritish">504</a></li>
+<li><a name="cmd.datecanadian"></a><a href="#cmd.datecanadian">\datecanadian</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datecanadian">504</a></li>
+<li><a name="cmd.datecanadien"></a><a href="#cmd.datecanadien">\datecanadien</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datecanadien">504</a></li>
+<li><a name="cmd.datecroatian"></a><a href="#cmd.datecroatian">\datecroatian</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datecroatian">504</a></li>
+<li><a name="cmd.dateczech"></a><a href="#cmd.dateczech">\dateczech</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dateczech">504</a></li>
+<li><a name="cmd.datedutch"></a><a href="#cmd.datedutch">\datedutch</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datedutch">504</a></li>
+<li><a name="cmd.dateenglish"></a><a href="#cmd.dateenglish">\dateenglish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dateenglish">504</a></li>
+<li><a name="cmd.datefinnish"></a><a href="#cmd.datefinnish">\datefinnish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datefinnish">504</a></li>
+<li><a name="cmd.datefrancais"></a><a href="#cmd.datefrancais">\datefrancais</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datefrancais">504</a></li>
+<li><a name="cmd.datefrench"></a><a href="#cmd.datefrench">\datefrench</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datefrench">504</a></li>
+<li><a name="cmd.dategerman"></a><a href="#cmd.dategerman">\dategerman</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dategerman">504</a></li>
+<li><a name="cmd.dateitalian"></a><a href="#cmd.dateitalian">\dateitalian</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dateitalian">504</a></li>
+<li><a name="cmd.datename"></a><a href="#cmd.datename">\datename</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datename">502</a></li>
+<li><a name="cmd.datenaustrian"></a><a href="#cmd.datenaustrian">\datenaustrian</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datenaustrian">504</a></li>
+<li><a name="cmd.datenewzealand"></a><a href="#cmd.datenewzealand">\datenewzealand</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datenewzealand">504</a></li>
+<li><a name="cmd.datengerman"></a><a href="#cmd.datengerman">\datengerman</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datengerman">504</a></li>
+<li><a name="cmd.datenorsk"></a><a href="#cmd.datenorsk">\datenorsk</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datenorsk">504</a></li>
+<li><a name="cmd.datenswissgerman"></a><a href="#cmd.datenswissgerman">\datenswissgerman</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datenswissgerman">504</a></li>
+<li><a name="cmd.datepolish"></a><a href="#cmd.datepolish">\datepolish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datepolish">504</a></li>
+<li><a name="cmd.dateslovak"></a><a href="#cmd.dateslovak">\dateslovak</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dateslovak">504</a></li>
+<li><a name="cmd.datespanish"></a><a href="#cmd.datespanish">\datespanish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.datespanish">504</a></li>
+<li><a name="cmd.dateswedish"></a><a href="#cmd.dateswedish">\dateswedish</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dateswedish">504</a></li>
+<li><a name="cmd.dateswissgerman"></a><a href="#cmd.dateswissgerman">\dateswissgerman</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.dateswissgerman">504</a></li>
+<li><a name="cmd.dedication"></a><a href="#cmd.dedication">\dedication</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.dedication">286</a>, <a href="scrguien.pdf#desc:maincls.cmd.dedication">70</a></li>
+<li><a name="cmd.defaultreffields"></a><a href="#cmd.defaultreffields">\defaultreffields</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.defaultreffields">496</a></li>
+<li><a name="cmd.defcaptionname*"></a><a href="#cmd.defcaptionname*">\defcaptionname*</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.defcaptionname*">337</a></li>
+<li><a name="cmd.defcaptionname"></a><a href="#cmd.defcaptionname">\defcaptionname</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.defcaptionname">337</a></li>
+<li><a name="cmd.deffootnote"></a><a href="#cmd.deffootnote">\deffootnote</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.deffootnote">218</a>, <a href="scrguien.pdf#desc:scrextend.cmd.deffootnote">290</a>, <a href="scrguien.pdf#desc:maincls.cmd.deffootnote">91</a></li>
+<li><a name="cmd.deffootnotemark"></a><a href="#cmd.deffootnotemark">\deffootnotemark</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.deffootnotemark">218</a>, <a href="scrguien.pdf#desc:scrextend.cmd.deffootnotemark">290</a>, <a href="scrguien.pdf#desc:maincls.cmd.deffootnotemark">91</a></li>
+<li><a name="cmd.defpagestyle"></a><a href="#cmd.defpagestyle">\defpagestyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.defpagestyle">433</a></li>
+<li><a name="cmd.defpairofpagestyles"></a><a href="#cmd.defpairofpagestyles">\defpairofpagestyles</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.defpairofpagestyles">432</a></li>
+<li><a name="cmd.deftocheading"></a><a href="#cmd.deftocheading">\deftocheading</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.deftocheading">365</a></li>
+<li><a name="cmd.dictum"></a><a href="#cmd.dictum">\dictum</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.dictum">116</a>, <a href="scrguien.pdf#desc:scrextend.cmd.dictum">292</a></li>
+<li><a name="cmd.dictumauthorformat"></a><a href="#cmd.dictumauthorformat">\dictumauthorformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.dictumauthorformat">116</a>, <a href="scrguien.pdf#desc:scrextend.cmd.dictumauthorformat">292</a></li>
+<li><a name="cmd.dictumrule"></a><a href="#cmd.dictumrule">\dictumrule</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.dictumrule">116</a>, <a href="scrguien.pdf#desc:scrextend.cmd.dictumrule">292</a></li>
+<li><a name="cmd.dictumwidth"></a><a href="#cmd.dictumwidth">\dictumwidth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.dictumwidth">116</a>, <a href="scrguien.pdf#desc:scrextend.cmd.dictumwidth">292</a></li>
+<li><a name="cmd.documentclass"></a><a href="#cmd.documentclass">\documentclass</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.documentclass">158</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.documentclass">238</a>, <a href="scrguien.pdf#desc:scrextend.cmd.documentclass">276</a>, <a href="scrguien.pdf#desc:scrjura.cmd.documentclass">295</a>, <a href="scrguien.pdf#desc:typearea.cmd.documentclass">31</a>, <a href="scrguien.pdf#desc:scrhack.cmd.documentclass">392</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.documentclass">396</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.documentclass">438</a>, <a href="scrguien.pdf#desc:maincls.cmd.documentclass">54</a></li>
+<li><a name="cmd.doforeachtocfile"></a><a href="#cmd.doforeachtocfile">\doforeachtocfile</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.doforeachtocfile">360</a></li>
+<li><a name="cmd.ellipsispar"></a><a href="#cmd.ellipsispar">\ellipsispar</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.ellipsispar">303</a></li>
+<li><a name="cmd.emailname"></a><a href="#cmd.emailname">\emailname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.emailname">502</a></li>
+<li><a name="cmd.encl"></a><a href="#cmd.encl">\encl</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.encl">171</a></li>
+<li><a name="cmd.enclname"></a><a href="#cmd.enclname">\enclname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.enclname">502</a></li>
+<li><a name="cmd.extratitle"></a><a href="#cmd.extratitle">\extratitle</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.extratitle">283</a>, <a href="scrguien.pdf#desc:maincls.cmd.extratitle">66</a></li>
+<li><a name="cmd.faxname"></a><a href="#cmd.faxname">\faxname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.faxname">502</a></li>
+<li><a name="cmd.figureformat"></a><a href="#cmd.figureformat">\figureformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.figureformat">138</a></li>
+<li><a name="cmd.flushbottom"></a><a href="#cmd.flushbottom">\flushbottom</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.flushbottom">56</a></li>
+<li><a name="cmd.footnote"></a><a href="#cmd.footnote">\footnote</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.footnote">217</a>, <a href="scrguien.pdf#desc:scrextend.cmd.footnote">290</a>, <a href="scrguien.pdf#desc:maincls.cmd.footnote">89</a></li>
+<li><a name="cmd.footnotemark"></a><a href="#cmd.footnotemark">\footnotemark</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.footnotemark">217</a>, <a href="scrguien.pdf#desc:scrextend.cmd.footnotemark">290</a>, <a href="scrguien.pdf#desc:maincls.cmd.footnotemark">89</a></li>
+<li><a name="cmd.footnotetext"></a><a href="#cmd.footnotetext">\footnotetext</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.footnotetext">217</a>, <a href="scrguien.pdf#desc:scrextend.cmd.footnotetext">290</a>, <a href="scrguien.pdf#desc:maincls.cmd.footnotetext">89</a></li>
+<li><a name="cmd.footref"></a><a href="#cmd.footref">\footref</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.footref">218</a>, <a href="scrguien.pdf#desc:scrextend.cmd.footref">290</a>, <a href="scrguien.pdf#desc:maincls.cmd.footref">90</a></li>
+<li><a name="cmd.frontispiece"></a><a href="#cmd.frontispiece">\frontispiece</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.frontispiece">283</a>, <a href="scrguien.pdf#desc:maincls.cmd.frontispiece">66</a></li>
+<li><a name="cmd.frontmatter"></a><a href="#cmd.frontmatter">\frontmatter</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.frontmatter">93</a></li>
+<li><a name="cmd.headfromname"></a><a href="#cmd.headfromname">\headfromname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.headfromname">502</a></li>
+<li><a name="cmd.headmark"></a><a href="#cmd.headmark">\headmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.headmark">256</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.headmark">422</a></li>
+<li><a name="cmd.headtoname"></a><a href="#cmd.headtoname">\headtoname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.headtoname">502</a></li>
+<li><a name="cmd.if@atdocument"></a><a href="#cmd.if@atdocument">\if@atdocument</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.if@atdocument">334</a></li>
+<li><a name="cmd.if@chapter"></a><a href="#cmd.if@chapter">\if@chapter</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.if@chapter">397</a></li>
+<li><a name="cmd.if@mainmatter"></a><a href="#cmd.if@mainmatter">\if@mainmatter</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.if@mainmatter">398</a></li>
+<li><a name="cmd.ifVTeX"></a><a href="#cmd.ifVTeX">\ifVTeX</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifVTeX">333</a></li>
+<li><a name="cmd.ifattoclist"></a><a href="#cmd.ifattoclist">\ifattoclist</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.ifattoclist">357</a></li>
+<li><a name="cmd.ifdimen"></a><a href="#cmd.ifdimen">\ifdimen</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifdimen">335</a></li>
+<li><a name="cmd.ifdvioutput"></a><a href="#cmd.ifdvioutput">\ifdvioutput</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifdvioutput">334</a></li>
+<li><a name="cmd.ifiscount"></a><a href="#cmd.ifiscount">\ifiscount</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifiscount">336</a></li>
+<li><a name="cmd.ifiscounter"></a><a href="#cmd.ifiscounter">\ifiscounter</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifiscounter">335</a></li>
+<li><a name="cmd.ifisdimen"></a><a href="#cmd.ifisdimen">\ifisdimen</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifisdimen">334</a></li>
+<li><a name="cmd.ifisdimension"></a><a href="#cmd.ifisdimension">\ifisdimension</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifisdimension">334</a></li>
+<li><a name="cmd.ifisdimexpr"></a><a href="#cmd.ifisdimexpr">\ifisdimexpr</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifisdimexpr">335</a></li>
+<li><a name="cmd.ifisglue"></a><a href="#cmd.ifisglue">\ifisglue</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifisglue">335</a></li>
+<li><a name="cmd.ifisglueexpr"></a><a href="#cmd.ifisglueexpr">\ifisglueexpr</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifisglueexpr">335</a></li>
+<li><a name="cmd.ifisinteger"></a><a href="#cmd.ifisinteger">\ifisinteger</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifisinteger">336</a></li>
+<li><a name="cmd.ifisnumexpr"></a><a href="#cmd.ifisnumexpr">\ifisnumexpr</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifisnumexpr">336</a></li>
+<li><a name="cmd.ifisskip"></a><a href="#cmd.ifisskip">\ifisskip</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifisskip">335</a></li>
+<li><a name="cmd.ifkomavar"></a><a href="#cmd.ifkomavar">\ifkomavar</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.ifkomavar">157</a></li>
+<li><a name="cmd.ifkomavarempty*"></a><a href="#cmd.ifkomavarempty*">\ifkomavarempty*</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.ifkomavarempty*">157</a>, <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.ifkomavarempty*">497</a></li>
+<li><a name="cmd.ifkomavarempty"></a><a href="#cmd.ifkomavarempty">\ifkomavarempty</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.ifkomavarempty">157</a>, <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.ifkomavarempty">497</a></li>
+<li><a name="cmd.ifnotundefined"></a><a href="#cmd.ifnotundefined">\ifnotundefined</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifnotundefined">333</a></li>
+<li><a name="cmd.ifnumber"></a><a href="#cmd.ifnumber">\ifnumber</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifnumber">336</a></li>
+<li><a name="cmd.ifnumbered"></a><a href="#cmd.ifnumbered">\ifnumbered</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.ifnumbered">113</a></li>
+<li><a name="cmd.ifoot*"></a><a href="#cmd.ifoot*">\ifoot*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.ifoot*">250</a></li>
+<li><a name="cmd.ifoot"></a><a href="#cmd.ifoot">\ifoot</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.ifoot">249</a></li>
+<li><a name="cmd.ifpdfoutput"></a><a href="#cmd.ifpdfoutput">\ifpdfoutput</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifpdfoutput">333</a></li>
+<li><a name="cmd.ifpdftex"></a><a href="#cmd.ifpdftex">\ifpdftex</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifpdftex">333</a></li>
+<li><a name="cmd.ifpsoutput"></a><a href="#cmd.ifpsoutput">\ifpsoutput</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifpsoutput">333</a></li>
+<li><a name="cmd.ifstr"></a><a href="#cmd.ifstr">\ifstr</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifstr">334</a></li>
+<li><a name="cmd.ifstrstart"></a><a href="#cmd.ifstrstart">\ifstrstart</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifstrstart">334</a></li>
+<li><a name="cmd.ifthispageodd"></a><a href="#cmd.ifthispageodd">\ifthispageodd</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.ifthispageodd">210</a>, <a href="scrguien.pdf#desc:scrextend.cmd.ifthispageodd">286</a>, <a href="scrguien.pdf#desc:maincls.cmd.ifthispageodd">79</a></li>
+<li><a name="cmd.iftocfeature"></a><a href="#cmd.iftocfeature">\iftocfeature</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.iftocfeature">368</a></li>
+<li><a name="cmd.ifundefinedorrelax"></a><a href="#cmd.ifundefinedorrelax">\ifundefinedorrelax</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.ifundefinedorrelax">332</a></li>
+<li><a name="cmd.ifunnumbered"></a><a href="#cmd.ifunnumbered">\ifunnumbered</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.ifunnumbered">113</a></li>
+<li><a name="cmd.ihead*"></a><a href="#cmd.ihead*">\ihead*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.ihead*">250</a></li>
+<li><a name="cmd.ihead"></a><a href="#cmd.ihead">\ihead</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.ihead">249</a></li>
+<li><a name="cmd.indexpagestyle"></a><a href="#cmd.indexpagestyle">\indexpagestyle</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.indexpagestyle">83</a></li>
+<li><a name="cmd.invoicename"></a><a href="#cmd.invoicename">\invoicename</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.invoicename">502</a></li>
+<li><a name="cmd.item"></a><a href="#cmd.item">\item</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.item">118</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.item">220</a></li>
+<li><a name="cmd.labelenumi"></a><a href="#cmd.labelenumi">\labelenumi</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.labelenumi">119</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.labelenumi">221</a></li>
+<li><a name="cmd.labelenumii"></a><a href="#cmd.labelenumii">\labelenumii</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.labelenumii">119</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.labelenumii">221</a></li>
+<li><a name="cmd.labelenumiii"></a><a href="#cmd.labelenumiii">\labelenumiii</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.labelenumiii">119</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.labelenumiii">221</a></li>
+<li><a name="cmd.labelenumiv"></a><a href="#cmd.labelenumiv">\labelenumiv</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.labelenumiv">119</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.labelenumiv">221</a></li>
+<li><a name="cmd.labelitemi"></a><a href="#cmd.labelitemi">\labelitemi</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.labelitemi">118</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.labelitemi">220</a></li>
+<li><a name="cmd.labelitemii"></a><a href="#cmd.labelitemii">\labelitemii</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.labelitemii">118</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.labelitemii">220</a></li>
+<li><a name="cmd.labelitemiii"></a><a href="#cmd.labelitemiii">\labelitemiii</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.labelitemiii">118</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.labelitemiii">220</a></li>
+<li><a name="cmd.labelitemiv"></a><a href="#cmd.labelitemiv">\labelitemiv</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.labelitemiv">118</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.labelitemiv">220</a></li>
+<li><a name="cmd.layercontentsmeasure"></a><a href="#cmd.layercontentsmeasure">\layercontentsmeasure</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.layercontentsmeasure">409</a></li>
+<li><a name="cmd.layerhalign"></a><a href="#cmd.layerhalign">\layerhalign</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.layerhalign">407</a></li>
+<li><a name="cmd.layerheight"></a><a href="#cmd.layerheight">\layerheight</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.layerheight">407</a></li>
+<li><a name="cmd.layervalign"></a><a href="#cmd.layervalign">\layervalign</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.layervalign">407</a></li>
+<li><a name="cmd.layerwidth"></a><a href="#cmd.layerwidth">\layerwidth</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.layerwidth">407</a></li>
+<li><a name="cmd.layerxoffset"></a><a href="#cmd.layerxoffset">\layerxoffset</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.layerxoffset">407</a></li>
+<li><a name="cmd.layeryoffset"></a><a href="#cmd.layeryoffset">\layeryoffset</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.layeryoffset">407</a></li>
+<li><a name="cmd.lefoot*"></a><a href="#cmd.lefoot*">\lefoot*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.lefoot*">248</a></li>
+<li><a name="cmd.lefoot"></a><a href="#cmd.lefoot">\lefoot</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.lefoot">246</a></li>
+<li><a name="cmd.leftbotmark"></a><a href="#cmd.leftbotmark">\leftbotmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.leftbotmark">424</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.leftbotmark">430</a></li>
+<li><a name="cmd.leftfirstmark"></a><a href="#cmd.leftfirstmark">\leftfirstmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.leftfirstmark">424</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.leftfirstmark">430</a></li>
+<li><a name="cmd.leftmark"></a><a href="#cmd.leftmark">\leftmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.leftmark">256</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.leftmark">422</a></li>
+<li><a name="cmd.lefttopmark"></a><a href="#cmd.lefttopmark">\lefttopmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.lefttopmark">424</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.lefttopmark">430</a></li>
+<li><a name="cmd.lehead*"></a><a href="#cmd.lehead*">\lehead*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.lehead*">245</a></li>
+<li><a name="cmd.lehead"></a><a href="#cmd.lehead">\lehead</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.lehead">243</a></li>
+<li><a name="cmd.letterlastpage"></a><a href="#cmd.letterlastpage">\letterlastpage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.letterlastpage">165</a></li>
+<li><a name="cmd.letterpagestyle"></a><a href="#cmd.letterpagestyle">\letterpagestyle</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.letterpagestyle">210</a></li>
+<li><a name="cmd.listof/extension/name"></a><a href="#cmd.listof/extension/name">\listof/extension/name</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.listof/extension/name">363</a></li>
+<li><a name="cmd.listofeachtoc"></a><a href="#cmd.listofeachtoc">\listofeachtoc</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.listofeachtoc">363</a></li>
+<li><a name="cmd.listoffigures"></a><a href="#cmd.listoffigures">\listoffigures</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.listoffigures">145</a></li>
+<li><a name="cmd.listoftables"></a><a href="#cmd.listoftables">\listoftables</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.listoftables">145</a></li>
+<li><a name="cmd.listoftoc*"></a><a href="#cmd.listoftoc*">\listoftoc*</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.listoftoc*">363</a></li>
+<li><a name="cmd.listoftoc"></a><a href="#cmd.listoftoc">\listoftoc</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.listoftoc">363</a></li>
+<li><a name="cmd.lofoot*"></a><a href="#cmd.lofoot*">\lofoot*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.lofoot*">248</a></li>
+<li><a name="cmd.lofoot"></a><a href="#cmd.lofoot">\lofoot</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.lofoot">246</a></li>
+<li><a name="cmd.lohead*"></a><a href="#cmd.lohead*">\lohead*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.lohead*">245</a></li>
+<li><a name="cmd.lohead"></a><a href="#cmd.lohead">\lohead</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.lohead">243</a></li>
+<li><a name="cmd.lowertitleback"></a><a href="#cmd.lowertitleback">\lowertitleback</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.lowertitleback">285</a>, <a href="scrguien.pdf#desc:maincls.cmd.lowertitleback">70</a></li>
+<li><a name="cmd.mainmatter"></a><a href="#cmd.mainmatter">\mainmatter</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.mainmatter">93</a></li>
+<li><a name="cmd.makenote*"></a><a href="#cmd.makenote*">\makenote*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.makenote*">445</a></li>
+<li><a name="cmd.makenote"></a><a href="#cmd.makenote">\makenote</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.makenote">445</a></li>
+<li><a name="cmd.maketitle"></a><a href="#cmd.maketitle">\maketitle</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.maketitle">283</a>, <a href="scrguien.pdf#desc:maincls.cmd.maketitle">66</a></li>
+<li><a name="cmd.manualmark"></a><a href="#cmd.manualmark">\manualmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.manualmark">252</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.manualmark">420</a></li>
+<li><a name="cmd.marginline"></a><a href="#cmd.marginline">\marginline</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.marginline">146</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.marginline">224</a>, <a href="scrguien.pdf#desc:scrextend.cmd.marginline">294</a></li>
+<li><a name="cmd.marginpar"></a><a href="#cmd.marginpar">\marginpar</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.marginpar">146</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.marginpar">224</a>, <a href="scrguien.pdf#desc:scrextend.cmd.marginpar">294</a></li>
+<li><a name="cmd.markboth"></a><a href="#cmd.markboth">\markboth</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.markboth">214</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.markboth">258</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.markboth">423</a>, <a href="scrguien.pdf#desc:maincls.cmd.markboth">82</a></li>
+<li><a name="cmd.markleft"></a><a href="#cmd.markleft">\markleft</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.markleft">258</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.markleft">423</a></li>
+<li><a name="cmd.markright"></a><a href="#cmd.markright">\markright</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.markright">214</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.markright">258</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.markright">423</a>, <a href="scrguien.pdf#desc:maincls.cmd.markright">82</a></li>
+<li><a name="cmd.minisec"></a><a href="#cmd.minisec">\minisec</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.minisec">106</a></li>
+<li><a name="cmd.mobilephonename"></a><a href="#cmd.mobilephonename">\mobilephonename</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.mobilephonename">502</a></li>
+<li><a name="cmd.multfootsep"></a><a href="#cmd.multfootsep">\multfootsep</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.multfootsep">217</a>, <a href="scrguien.pdf#desc:scrextend.cmd.multfootsep">289</a>, <a href="scrguien.pdf#desc:maincls.cmd.multfootsep">89</a></li>
+<li><a name="cmd.multiplefootnoteseparator"></a><a href="#cmd.multiplefootnoteseparator">\multiplefootnoteseparator</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.multiplefootnoteseparator">217</a>, <a href="scrguien.pdf#desc:scrextend.cmd.multiplefootnoteseparator">290</a>, <a href="scrguien.pdf#desc:maincls.cmd.multiplefootnoteseparator">89</a></li>
+<li><a name="cmd.myrefname"></a><a href="#cmd.myrefname">\myrefname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.myrefname">502</a></li>
+<li><a name="cmd.nameday"></a><a href="#cmd.nameday">\nameday</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.nameday">266</a></li>
+<li><a name="cmd.newbibstyle"></a><a href="#cmd.newbibstyle">\newbibstyle</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.newbibstyle">478</a></li>
+<li><a name="cmd.newblock"></a><a href="#cmd.newblock">\newblock</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.newblock">478</a></li>
+<li><a name="cmd.newcaptionname*"></a><a href="#cmd.newcaptionname*">\newcaptionname*</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.newcaptionname*">337</a></li>
+<li><a name="cmd.newcaptionname"></a><a href="#cmd.newcaptionname">\newcaptionname</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.newcaptionname">337</a></li>
+<li><a name="cmd.newdaylanguage"></a><a href="#cmd.newdaylanguage">\newdaylanguage</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.newdaylanguage">266</a></li>
+<li><a name="cmd.newkomafont"></a><a href="#cmd.newkomafont">\newkomafont</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.newkomafont">457</a></li>
+<li><a name="cmd.newkomavar*"></a><a href="#cmd.newkomavar*">\newkomavar*</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.newkomavar*">496</a></li>
+<li><a name="cmd.newkomavar"></a><a href="#cmd.newkomavar">\newkomavar</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.newkomavar">496</a></li>
+<li><a name="cmd.newpagestyle"></a><a href="#cmd.newpagestyle">\newpagestyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.newpagestyle">433</a></li>
+<li><a name="cmd.newpairofpagestyles"></a><a href="#cmd.newpairofpagestyles">\newpairofpagestyles</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.newpairofpagestyles">432</a></li>
+<li><a name="cmd.newplength"></a><a href="#cmd.newplength">\newplength</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.newplength">485</a></li>
+<li><a name="cmd.nonumberline"></a><a href="#cmd.nonumberline">\nonumberline</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.nonumberline">382</a></li>
+<li><a name="cmd.numberline"></a><a href="#cmd.numberline">\numberline</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.numberline">369</a></li>
+<li><a name="cmd.ofoot*"></a><a href="#cmd.ofoot*">\ofoot*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.ofoot*">250</a></li>
+<li><a name="cmd.ofoot"></a><a href="#cmd.ofoot">\ofoot</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.ofoot">249</a></li>
+<li><a name="cmd.ohead*"></a><a href="#cmd.ohead*">\ohead*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.ohead*">250</a></li>
+<li><a name="cmd.ohead"></a><a href="#cmd.ohead">\ohead</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.ohead">249</a></li>
+<li><a name="cmd.opening"></a><a href="#cmd.opening">\opening</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.opening">166</a></li>
+<li><a name="cmd.othersectionlevelsformat"></a><a href="#cmd.othersectionlevelsformat">\othersectionlevelsformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.othersectionlevelsformat">109</a></li>
+<li><a name="cmd.pagemark"></a><a href="#cmd.pagemark">\pagemark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.pagemark">256</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.pagemark">422</a></li>
+<li><a name="cmd.pagename"></a><a href="#cmd.pagename">\pagename</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.pagename">502</a></li>
+<li><a name="cmd.pagenumbering"></a><a href="#cmd.pagenumbering">\pagenumbering</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.pagenumbering">84</a></li>
+<li><a name="cmd.pagestyle"></a><a href="#cmd.pagestyle">\pagestyle</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.pagestyle">212</a>, <a href="scrguien.pdf#desc:maincls.cmd.pagestyle">80</a></li>
+<li><a name="cmd.paragraph*"></a><a href="#cmd.paragraph*">\paragraph*</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.paragraph*">105</a></li>
+<li><a name="cmd.paragraph"></a><a href="#cmd.paragraph">\paragraph</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.paragraph">101</a></li>
+<li><a name="cmd.paragraphformat"></a><a href="#cmd.paragraphformat">\paragraphformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.paragraphformat">109</a></li>
+<li><a name="cmd.paragraphmark"></a><a href="#cmd.paragraphmark">\paragraphmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.paragraphmark">258</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.paragraphmark">423</a></li>
+<li><a name="cmd.paragraphmarkformat"></a><a href="#cmd.paragraphmarkformat">\paragraphmarkformat</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.paragraphmarkformat">257</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.paragraphmarkformat">422</a></li>
+<li><a name="cmd.paragraphnumdepth"></a><a href="#cmd.paragraphnumdepth">\paragraphnumdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.paragraphnumdepth">113</a></li>
+<li><a name="cmd.paragraphtocdepth"></a><a href="#cmd.paragraphtocdepth">\paragraphtocdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.paragraphtocdepth">76</a></li>
+<li><a name="cmd.parellipsis"></a><a href="#cmd.parellipsis">\parellipsis</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.parellipsis">303</a></li>
+<li><a name="cmd.parformat"></a><a href="#cmd.parformat">\parformat</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.parformat">303</a></li>
+<li><a name="cmd.parformatseparation"></a><a href="#cmd.parformatseparation">\parformatseparation</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.parformatseparation">303</a></li>
+<li><a name="cmd.parname"></a><a href="#cmd.parname">\parname</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.parname">310</a></li>
+<li><a name="cmd.parshortname"></a><a href="#cmd.parshortname">\parshortname</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.parshortname">310</a></li>
+<li><a name="cmd.part*"></a><a href="#cmd.part*">\part*</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.part*">105</a></li>
+<li><a name="cmd.part"></a><a href="#cmd.part">\part</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.part">101</a></li>
+<li><a name="cmd.partformat"></a><a href="#cmd.partformat">\partformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.partformat">109</a></li>
+<li><a name="cmd.partheademptypage"></a><a href="#cmd.partheademptypage">\partheademptypage</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.partheademptypage">470</a></li>
+<li><a name="cmd.partheadendvskip"></a><a href="#cmd.partheadendvskip">\partheadendvskip</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.partheadendvskip">470</a></li>
+<li><a name="cmd.partheadmidvskip"></a><a href="#cmd.partheadmidvskip">\partheadmidvskip</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.partheadmidvskip">470</a></li>
+<li><a name="cmd.partheadstartvskip"></a><a href="#cmd.partheadstartvskip">\partheadstartvskip</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.partheadstartvskip">470</a></li>
+<li><a name="cmd.partlineswithprefixformat"></a><a href="#cmd.partlineswithprefixformat">\partlineswithprefixformat</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.partlineswithprefixformat">471</a></li>
+<li><a name="cmd.partmark"></a><a href="#cmd.partmark">\partmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.partmark">258</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.partmark">423</a></li>
+<li><a name="cmd.partmarkformat"></a><a href="#cmd.partmarkformat">\partmarkformat</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.partmarkformat">257</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.partmarkformat">422</a></li>
+<li><a name="cmd.partnumdepth"></a><a href="#cmd.partnumdepth">\partnumdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.partnumdepth">113</a></li>
+<li><a name="cmd.partpagestyle"></a><a href="#cmd.partpagestyle">\partpagestyle</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.partpagestyle">83</a></li>
+<li><a name="cmd.parttocdepth"></a><a href="#cmd.parttocdepth">\parttocdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.parttocdepth">76</a></li>
+<li><a name="cmd.phonename"></a><a href="#cmd.phonename">\phonename</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.phonename">502</a></li>
+<li><a name="cmd.providecaptionname*"></a><a href="#cmd.providecaptionname*">\providecaptionname*</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.providecaptionname*">337</a></li>
+<li><a name="cmd.providecaptionname"></a><a href="#cmd.providecaptionname">\providecaptionname</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.providecaptionname">337</a></li>
+<li><a name="cmd.providepagestyle"></a><a href="#cmd.providepagestyle">\providepagestyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.providepagestyle">433</a></li>
+<li><a name="cmd.providepairofpagestyles"></a><a href="#cmd.providepairofpagestyles">\providepairofpagestyles</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.providepairofpagestyles">432</a></li>
+<li><a name="cmd.ps"></a><a href="#cmd.ps">\ps</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.ps">167</a></li>
+<li><a name="cmd.publishers"></a><a href="#cmd.publishers">\publishers</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.publishers">284</a>, <a href="scrguien.pdf#desc:maincls.cmd.publishers">67</a></li>
+<li><a name="cmd.putC"></a><a href="#cmd.putC">\putC</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.putC">408</a></li>
+<li><a name="cmd.putLL"></a><a href="#cmd.putLL">\putLL</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.putLL">408</a></li>
+<li><a name="cmd.putLR"></a><a href="#cmd.putLR">\putLR</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.putLR">408</a></li>
+<li><a name="cmd.putUL"></a><a href="#cmd.putUL">\putUL</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.putUL">408</a></li>
+<li><a name="cmd.putUR"></a><a href="#cmd.putUR">\putUR</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.putUR">408</a></li>
+<li><a name="cmd.raggedbottom"></a><a href="#cmd.raggedbottom">\raggedbottom</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.raggedbottom">56</a></li>
+<li><a name="cmd.raggedchapter"></a><a href="#cmd.raggedchapter">\raggedchapter</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.raggedchapter">108</a></li>
+<li><a name="cmd.raggedchapterentry"></a><a href="#cmd.raggedchapterentry">\raggedchapterentry</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.raggedchapterentry">456</a></li>
+<li><a name="cmd.raggeddictum"></a><a href="#cmd.raggeddictum">\raggeddictum</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.raggeddictum">116</a>, <a href="scrguien.pdf#desc:scrextend.cmd.raggeddictum">292</a></li>
+<li><a name="cmd.raggeddictumauthor"></a><a href="#cmd.raggeddictumauthor">\raggeddictumauthor</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.raggeddictumauthor">116</a>, <a href="scrguien.pdf#desc:scrextend.cmd.raggeddictumauthor">292</a></li>
+<li><a name="cmd.raggeddictumtext"></a><a href="#cmd.raggeddictumtext">\raggeddictumtext</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.raggeddictumtext">116</a>, <a href="scrguien.pdf#desc:scrextend.cmd.raggeddictumtext">292</a></li>
+<li><a name="cmd.raggedfootnote"></a><a href="#cmd.raggedfootnote">\raggedfootnote</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.raggedfootnote">219</a>, <a href="scrguien.pdf#desc:scrextend.cmd.raggedfootnote">291</a>, <a href="scrguien.pdf#desc:maincls.cmd.raggedfootnote">93</a></li>
+<li><a name="cmd.raggedpart"></a><a href="#cmd.raggedpart">\raggedpart</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.raggedpart">108</a></li>
+<li><a name="cmd.raggedsection"></a><a href="#cmd.raggedsection">\raggedsection</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.raggedsection">108</a></li>
+<li><a name="cmd.raggedsignature"></a><a href="#cmd.raggedsignature">\raggedsignature</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.raggedsignature">224</a></li>
+<li><a name="cmd.recalctypearea"></a><a href="#cmd.recalctypearea">\recalctypearea</a> --&gt; <a href="scrguien.pdf#desc:typearea.cmd.recalctypearea">40</a></li>
+<li><a name="cmd.ref"></a><a href="#cmd.ref">\ref</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.ref">305</a></li>
+<li><a name="cmd.refClause"></a><a href="#cmd.refClause">\refClause</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refClause">305</a></li>
+<li><a name="cmd.refClauseN"></a><a href="#cmd.refClauseN">\refClauseN</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refClauseN">305</a></li>
+<li><a name="cmd.refL"></a><a href="#cmd.refL">\refL</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refL">305</a></li>
+<li><a name="cmd.refN"></a><a href="#cmd.refN">\refN</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refN">305</a></li>
+<li><a name="cmd.refPar"></a><a href="#cmd.refPar">\refPar</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refPar">305</a></li>
+<li><a name="cmd.refParL"></a><a href="#cmd.refParL">\refParL</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refParL">305</a></li>
+<li><a name="cmd.refParN"></a><a href="#cmd.refParN">\refParN</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refParN">305</a></li>
+<li><a name="cmd.refParS"></a><a href="#cmd.refParS">\refParS</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refParS">305</a></li>
+<li><a name="cmd.refS"></a><a href="#cmd.refS">\refS</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refS">305</a></li>
+<li><a name="cmd.refSentence"></a><a href="#cmd.refSentence">\refSentence</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refSentence">306</a></li>
+<li><a name="cmd.refSentenceL"></a><a href="#cmd.refSentenceL">\refSentenceL</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refSentenceL">306</a></li>
+<li><a name="cmd.refSentenceN"></a><a href="#cmd.refSentenceN">\refSentenceN</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refSentenceN">306</a></li>
+<li><a name="cmd.refSentenceS"></a><a href="#cmd.refSentenceS">\refSentenceS</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.refSentenceS">306</a></li>
+<li><a name="cmd.refoot*"></a><a href="#cmd.refoot*">\refoot*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.refoot*">248</a></li>
+<li><a name="cmd.refoot"></a><a href="#cmd.refoot">\refoot</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.refoot">246</a></li>
+<li><a name="cmd.rehead*"></a><a href="#cmd.rehead*">\rehead*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.rehead*">245</a></li>
+<li><a name="cmd.rehead"></a><a href="#cmd.rehead">\rehead</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.rehead">243</a></li>
+<li><a name="cmd.removefromtoclist"></a><a href="#cmd.removefromtoclist">\removefromtoclist</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.removefromtoclist">360</a></li>
+<li><a name="cmd.removereffields"></a><a href="#cmd.removereffields">\removereffields</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.removereffields">496</a></li>
+<li><a name="cmd.renewcaptionname*"></a><a href="#cmd.renewcaptionname*">\renewcaptionname*</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.renewcaptionname*">337</a></li>
+<li><a name="cmd.renewcaptionname"></a><a href="#cmd.renewcaptionname">\renewcaptionname</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.renewcaptionname">337</a></li>
+<li><a name="cmd.renewpagestyle"></a><a href="#cmd.renewpagestyle">\renewpagestyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.renewpagestyle">433</a></li>
+<li><a name="cmd.renewpairofpagestyles"></a><a href="#cmd.renewpairofpagestyles">\renewpairofpagestyles</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.renewpairofpagestyles">432</a></li>
+<li><a name="cmd.rightbotmark"></a><a href="#cmd.rightbotmark">\rightbotmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.rightbotmark">424</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.rightbotmark">430</a></li>
+<li><a name="cmd.rightfirstmark"></a><a href="#cmd.rightfirstmark">\rightfirstmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.rightfirstmark">424</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.rightfirstmark">430</a></li>
+<li><a name="cmd.rightmark"></a><a href="#cmd.rightmark">\rightmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.rightmark">256</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.rightmark">422</a></li>
+<li><a name="cmd.righttopmark"></a><a href="#cmd.righttopmark">\righttopmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.righttopmark">424</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage-experts.cmd.righttopmark">430</a></li>
+<li><a name="cmd.rofoot*"></a><a href="#cmd.rofoot*">\rofoot*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.rofoot*">248</a></li>
+<li><a name="cmd.rofoot"></a><a href="#cmd.rofoot">\rofoot</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.rofoot">246</a></li>
+<li><a name="cmd.rohead*"></a><a href="#cmd.rohead*">\rohead*</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.rohead*">245</a></li>
+<li><a name="cmd.rohead"></a><a href="#cmd.rohead">\rohead</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.rohead">243</a></li>
+<li><a name="cmd.scr@ifVTeX"></a><a href="#cmd.scr@ifVTeX">\scr@ifVTeX</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.scr@ifVTeX">333</a></li>
+<li><a name="cmd.scr@ifdvioutput"></a><a href="#cmd.scr@ifdvioutput">\scr@ifdvioutput</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.scr@ifdvioutput">334</a></li>
+<li><a name="cmd.scr@ifluatex"></a><a href="#cmd.scr@ifluatex">\scr@ifluatex</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.scr@ifluatex">333</a></li>
+<li><a name="cmd.scr@ifpdfoutput"></a><a href="#cmd.scr@ifpdfoutput">\scr@ifpdfoutput</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.scr@ifpdfoutput">333</a></li>
+<li><a name="cmd.scr@ifpdftex"></a><a href="#cmd.scr@ifpdftex">\scr@ifpdftex</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.scr@ifpdftex">333</a></li>
+<li><a name="cmd.scr@ifpsoutput"></a><a href="#cmd.scr@ifpsoutput">\scr@ifpsoutput</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.scr@ifpsoutput">333</a></li>
+<li><a name="cmd.scr@ifundefinedorrelax"></a><a href="#cmd.scr@ifundefinedorrelax">\scr@ifundefinedorrelax</a> --&gt; <a href="scrguien.pdf#desc:scrbase.cmd.scr@ifundefinedorrelax">332</a></li>
+<li><a name="cmd.scr@startsection"></a><a href="#cmd.scr@startsection">\scr@startsection</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.scr@startsection">476</a></li>
+<li><a name="cmd.scrlayerAddCsToInterface"></a><a href="#cmd.scrlayerAddCsToInterface">\scrlayerAddCsToInterface</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.scrlayerAddCsToInterface">426</a></li>
+<li><a name="cmd.scrlayerAddToInterface"></a><a href="#cmd.scrlayerAddToInterface">\scrlayerAddToInterface</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.scrlayerAddToInterface">426</a></li>
+<li><a name="cmd.scrlayerInitInterface"></a><a href="#cmd.scrlayerInitInterface">\scrlayerInitInterface</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.scrlayerInitInterface">426</a></li>
+<li><a name="cmd.scrlayerOnAutoRemoveInterface"></a><a href="#cmd.scrlayerOnAutoRemoveInterface">\scrlayerOnAutoRemoveInterface</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.scrlayerOnAutoRemoveInterface">427</a></li>
+<li><a name="cmd.section*"></a><a href="#cmd.section*">\section*</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.section*">105</a></li>
+<li><a name="cmd.section"></a><a href="#cmd.section">\section</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.section">101</a></li>
+<li><a name="cmd.sectioncatchphraseformat"></a><a href="#cmd.sectioncatchphraseformat">\sectioncatchphraseformat</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.sectioncatchphraseformat">475</a></li>
+<li><a name="cmd.sectionformat"></a><a href="#cmd.sectionformat">\sectionformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.sectionformat">109</a></li>
+<li><a name="cmd.sectionlinesformat"></a><a href="#cmd.sectionlinesformat">\sectionlinesformat</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.sectionlinesformat">475</a></li>
+<li><a name="cmd.sectionmark"></a><a href="#cmd.sectionmark">\sectionmark</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.sectionmark">112</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.sectionmark">258</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.sectionmark">423</a></li>
+<li><a name="cmd.sectionmarkformat"></a><a href="#cmd.sectionmarkformat">\sectionmarkformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.sectionmarkformat">112</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.sectionmarkformat">257</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.sectionmarkformat">422</a></li>
+<li><a name="cmd.sectionnumdepth"></a><a href="#cmd.sectionnumdepth">\sectionnumdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.sectionnumdepth">113</a></li>
+<li><a name="cmd.sectiontocdepth"></a><a href="#cmd.sectiontocdepth">\sectiontocdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.sectiontocdepth">76</a></li>
+<li><a name="cmd.sentencename"></a><a href="#cmd.sentencename">\sentencename</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.sentencename">310</a></li>
+<li><a name="cmd.sentencenumberformat"></a><a href="#cmd.sentencenumberformat">\sentencenumberformat</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.sentencenumberformat">304</a></li>
+<li><a name="cmd.sentenceshortname"></a><a href="#cmd.sentenceshortname">\sentenceshortname</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.sentenceshortname">310</a></li>
+<li><a name="cmd.setbibpreamble"></a><a href="#cmd.setbibpreamble">\setbibpreamble</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.setbibpreamble">148</a></li>
+<li><a name="cmd.setcapdynwidth"></a><a href="#cmd.setcapdynwidth">\setcapdynwidth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.setcapdynwidth">140</a></li>
+<li><a name="cmd.setcaphanging"></a><a href="#cmd.setcaphanging">\setcaphanging</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.setcaphanging">138</a></li>
+<li><a name="cmd.setcapindent*"></a><a href="#cmd.setcapindent*">\setcapindent*</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.setcapindent*">138</a></li>
+<li><a name="cmd.setcapindent"></a><a href="#cmd.setcapindent">\setcapindent</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.setcapindent">138</a></li>
+<li><a name="cmd.setcapmargin*"></a><a href="#cmd.setcapmargin*">\setcapmargin*</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.setcapmargin*">140</a></li>
+<li><a name="cmd.setcapmargin"></a><a href="#cmd.setcapmargin">\setcapmargin</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.setcapmargin">140</a></li>
+<li><a name="cmd.setcaptionalignment"></a><a href="#cmd.setcaptionalignment">\setcaptionalignment</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.setcaptionalignment">141</a></li>
+<li><a name="cmd.setcapwidth"></a><a href="#cmd.setcapwidth">\setcapwidth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.setcapwidth">140</a></li>
+<li><a name="cmd.setchapterpreamble"></a><a href="#cmd.setchapterpreamble">\setchapterpreamble</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.setchapterpreamble">114</a></li>
+<li><a name="cmd.setfootnoterule"></a><a href="#cmd.setfootnoterule">\setfootnoterule</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.setfootnoterule">219</a>, <a href="scrguien.pdf#desc:maincls.cmd.setfootnoterule">92</a></li>
+<li><a name="cmd.setindexpreamble"></a><a href="#cmd.setindexpreamble">\setindexpreamble</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.setindexpreamble">150</a></li>
+<li><a name="cmd.setkomafont"></a><a href="#cmd.setkomafont">\setkomafont</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.setkomafont">175</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.setkomafont">240</a>, <a href="scrguien.pdf#desc:scrextend.cmd.setkomafont">280</a>, <a href="scrguien.pdf#desc:scrjura.cmd.setkomafont">296</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.setkomafont">439</a>, <a href="scrguien.pdf#desc:maincls.cmd.setkomafont">59</a></li>
+<li><a name="cmd.setkomavar*"></a><a href="#cmd.setkomavar*">\setkomavar*</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.setkomavar*">156</a></li>
+<li><a name="cmd.setkomavar"></a><a href="#cmd.setkomavar">\setkomavar</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.setkomavar">156</a></li>
+<li><a name="cmd.setlengthtoplength"></a><a href="#cmd.setlengthtoplength">\setlengthtoplength</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.setlengthtoplength">158</a></li>
+<li><a name="cmd.setparsizes"></a><a href="#cmd.setparsizes">\setparsizes</a> --&gt; <a href="scrguien.pdf#desc:maincls-experts.cmd.setparsizes">458</a></li>
+<li><a name="cmd.setpartpreamble"></a><a href="#cmd.setpartpreamble">\setpartpreamble</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.setpartpreamble">114</a></li>
+<li><a name="cmd.setplength"></a><a href="#cmd.setplength">\setplength</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.setplength">485</a></li>
+<li><a name="cmd.setplengthtodepth"></a><a href="#cmd.setplengthtodepth">\setplengthtodepth</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.setplengthtodepth">485</a></li>
+<li><a name="cmd.setplengthtoheight"></a><a href="#cmd.setplengthtoheight">\setplengthtoheight</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.setplengthtoheight">485</a></li>
+<li><a name="cmd.setplengthtototalheight"></a><a href="#cmd.setplengthtototalheight">\setplengthtototalheight</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.setplengthtototalheight">485</a></li>
+<li><a name="cmd.setplengthtowidth"></a><a href="#cmd.setplengthtowidth">\setplengthtowidth</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.setplengthtowidth">485</a></li>
+<li><a name="cmd.settime"></a><a href="#cmd.settime">\settime</a> --&gt; <a href="scrguien.pdf#desc:scrtime.cmd.settime">268</a></li>
+<li><a name="cmd.setuptoc"></a><a href="#cmd.setuptoc">\setuptoc</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.setuptoc">366</a></li>
+<li><a name="cmd.storeareas"></a><a href="#cmd.storeareas">\storeareas</a> --&gt; <a href="scrguien.pdf#desc:typearea-experts.cmd.storeareas">451</a></li>
+<li><a name="cmd.subject"></a><a href="#cmd.subject">\subject</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.subject">284</a>, <a href="scrguien.pdf#desc:maincls.cmd.subject">67</a></li>
+<li><a name="cmd.subjectname"></a><a href="#cmd.subjectname">\subjectname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.subjectname">502</a></li>
+<li><a name="cmd.subparagraph*"></a><a href="#cmd.subparagraph*">\subparagraph*</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subparagraph*">105</a></li>
+<li><a name="cmd.subparagraph"></a><a href="#cmd.subparagraph">\subparagraph</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subparagraph">101</a></li>
+<li><a name="cmd.subparagraphformat"></a><a href="#cmd.subparagraphformat">\subparagraphformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subparagraphformat">109</a></li>
+<li><a name="cmd.subparagraphmark"></a><a href="#cmd.subparagraphmark">\subparagraphmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.subparagraphmark">258</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.subparagraphmark">423</a></li>
+<li><a name="cmd.subparagraphmarkformat"></a><a href="#cmd.subparagraphmarkformat">\subparagraphmarkformat</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.subparagraphmarkformat">257</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.subparagraphmarkformat">422</a></li>
+<li><a name="cmd.subparagraphnumdepth"></a><a href="#cmd.subparagraphnumdepth">\subparagraphnumdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subparagraphnumdepth">113</a></li>
+<li><a name="cmd.subparagraphtocdepth"></a><a href="#cmd.subparagraphtocdepth">\subparagraphtocdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subparagraphtocdepth">76</a></li>
+<li><a name="cmd.subsection*"></a><a href="#cmd.subsection*">\subsection*</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subsection*">105</a></li>
+<li><a name="cmd.subsection"></a><a href="#cmd.subsection">\subsection</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subsection">101</a></li>
+<li><a name="cmd.subsectionformat"></a><a href="#cmd.subsectionformat">\subsectionformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subsectionformat">109</a></li>
+<li><a name="cmd.subsectionmark"></a><a href="#cmd.subsectionmark">\subsectionmark</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subsectionmark">112</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.subsectionmark">258</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.subsectionmark">423</a></li>
+<li><a name="cmd.subsectionmarkformat"></a><a href="#cmd.subsectionmarkformat">\subsectionmarkformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subsectionmarkformat">112</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.subsectionmarkformat">257</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.subsectionmarkformat">422</a></li>
+<li><a name="cmd.subsectionnumdepth"></a><a href="#cmd.subsectionnumdepth">\subsectionnumdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subsectionnumdepth">113</a></li>
+<li><a name="cmd.subsectiontocdepth"></a><a href="#cmd.subsectiontocdepth">\subsectiontocdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subsectiontocdepth">76</a></li>
+<li><a name="cmd.subsubsection*"></a><a href="#cmd.subsubsection*">\subsubsection*</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subsubsection*">105</a></li>
+<li><a name="cmd.subsubsection"></a><a href="#cmd.subsubsection">\subsubsection</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subsubsection">101</a></li>
+<li><a name="cmd.subsubsectionformat"></a><a href="#cmd.subsubsectionformat">\subsubsectionformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subsubsectionformat">109</a></li>
+<li><a name="cmd.subsubsectionmark"></a><a href="#cmd.subsubsectionmark">\subsubsectionmark</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.subsubsectionmark">258</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.subsubsectionmark">423</a></li>
+<li><a name="cmd.subsubsectionmarkformat"></a><a href="#cmd.subsubsectionmarkformat">\subsubsectionmarkformat</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.subsubsectionmarkformat">257</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.subsubsectionmarkformat">422</a></li>
+<li><a name="cmd.subsubsectionnumdepth"></a><a href="#cmd.subsubsectionnumdepth">\subsubsectionnumdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subsubsectionnumdepth">113</a></li>
+<li><a name="cmd.subsubsectiontocdepth"></a><a href="#cmd.subsubsectiontocdepth">\subsubsectiontocdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.subsubsectiontocdepth">76</a></li>
+<li><a name="cmd.subtitle"></a><a href="#cmd.subtitle">\subtitle</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.subtitle">284</a>, <a href="scrguien.pdf#desc:maincls.cmd.subtitle">67</a></li>
+<li><a name="cmd.syncwithnotecolumn"></a><a href="#cmd.syncwithnotecolumn">\syncwithnotecolumn</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.syncwithnotecolumn">446</a></li>
+<li><a name="cmd.syncwithnotecolumns"></a><a href="#cmd.syncwithnotecolumns">\syncwithnotecolumns</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.syncwithnotecolumns">447</a></li>
+<li><a name="cmd.tableformat"></a><a href="#cmd.tableformat">\tableformat</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.tableformat">138</a></li>
+<li><a name="cmd.tableofcontents"></a><a href="#cmd.tableofcontents">\tableofcontents</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.tableofcontents">75</a></li>
+<li><a name="cmd.textsubscript"></a><a href="#cmd.textsubscript">\textsubscript</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.textsubscript">175</a>, <a href="scrguien.pdf#desc:scrextend.cmd.textsubscript">279</a>, <a href="scrguien.pdf#desc:maincls.cmd.textsubscript">58</a></li>
+<li><a name="cmd.textsuperscript"></a><a href="#cmd.textsuperscript">\textsuperscript</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.textsuperscript">175</a>, <a href="scrguien.pdf#desc:scrextend.cmd.textsuperscript">279</a>, <a href="scrguien.pdf#desc:maincls.cmd.textsuperscript">58</a></li>
+<li><a name="cmd.thanks"></a><a href="#cmd.thanks">\thanks</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.thanks">284</a>, <a href="scrguien.pdf#desc:maincls.cmd.thanks">67</a></li>
+<li><a name="cmd.theenumi"></a><a href="#cmd.theenumi">\theenumi</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.theenumi">119</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.theenumi">221</a></li>
+<li><a name="cmd.theenumii"></a><a href="#cmd.theenumii">\theenumii</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.theenumii">119</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.theenumii">221</a></li>
+<li><a name="cmd.theenumiii"></a><a href="#cmd.theenumiii">\theenumiii</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.theenumiii">119</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.theenumiii">221</a></li>
+<li><a name="cmd.theenumiv"></a><a href="#cmd.theenumiv">\theenumiv</a> --&gt; <a href="scrguien.pdf#desc:maincls.cmd.theenumiv">119</a>, <a href="scrguien.pdf#desc:scrlttr2.cmd.theenumiv">221</a></li>
+<li><a name="cmd.thefootnotemark"></a><a href="#cmd.thefootnotemark">\thefootnotemark</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.thefootnotemark">218</a>, <a href="scrguien.pdf#desc:scrextend.cmd.thefootnotemark">290</a>, <a href="scrguien.pdf#desc:maincls.cmd.thefootnotemark">91</a></li>
+<li><a name="cmd.thepar"></a><a href="#cmd.thepar">\thepar</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.thepar">303</a></li>
+<li><a name="cmd.thesentence"></a><a href="#cmd.thesentence">\thesentence</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.thesentence">304</a></li>
+<li><a name="cmd.thisletter"></a><a href="#cmd.thisletter">\thisletter</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.thisletter">165</a></li>
+<li><a name="cmd.thispagestyle"></a><a href="#cmd.thispagestyle">\thispagestyle</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.thispagestyle">212</a>, <a href="scrguien.pdf#desc:maincls.cmd.thispagestyle">80</a></li>
+<li><a name="cmd.thistime*"></a><a href="#cmd.thistime*">\thistime*</a> --&gt; <a href="scrguien.pdf#desc:scrtime.cmd.thistime*">268</a></li>
+<li><a name="cmd.thistime"></a><a href="#cmd.thistime">\thistime</a> --&gt; <a href="scrguien.pdf#desc:scrtime.cmd.thistime">268</a></li>
+<li><a name="cmd.title"></a><a href="#cmd.title">\title</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.title">284</a>, <a href="scrguien.pdf#desc:maincls.cmd.title">67</a></li>
+<li><a name="cmd.titlehead"></a><a href="#cmd.titlehead">\titlehead</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.titlehead">284</a>, <a href="scrguien.pdf#desc:maincls.cmd.titlehead">67</a></li>
+<li><a name="cmd.titlepagestyle"></a><a href="#cmd.titlepagestyle">\titlepagestyle</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.titlepagestyle">287</a>, <a href="scrguien.pdf#desc:maincls.cmd.titlepagestyle">83</a></li>
+<li><a name="cmd.tocbasic@/extension/@after@hook"></a><a href="#cmd.tocbasic@/extension/@after@hook">\tocbasic@/extension/@after@hook</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.tocbasic@/extension/@after@hook">382</a></li>
+<li><a name="cmd.tocbasic@/extension/@before@hook"></a><a href="#cmd.tocbasic@/extension/@before@hook">\tocbasic@/extension/@before@hook</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.tocbasic@/extension/@before@hook">382</a></li>
+<li><a name="cmd.tocbasic@@after@hook"></a><a href="#cmd.tocbasic@@after@hook">\tocbasic@@after@hook</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.tocbasic@@after@hook">381</a></li>
+<li><a name="cmd.tocbasic@@before@hook"></a><a href="#cmd.tocbasic@@before@hook">\tocbasic@@before@hook</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.tocbasic@@before@hook">381</a></li>
+<li><a name="cmd.tocbasic@DependOnPenaltyAndTOCLevel"></a><a href="#cmd.tocbasic@DependOnPenaltyAndTOCLevel">\tocbasic@DependOnPenaltyAndTOCLevel</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.tocbasic@DependOnPenaltyAndTOCLevel">382</a></li>
+<li><a name="cmd.tocbasic@SetPenaltyByTOCLevel"></a><a href="#cmd.tocbasic@SetPenaltyByTOCLevel">\tocbasic@SetPenaltyByTOCLevel</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.tocbasic@SetPenaltyByTOCLevel">382</a></li>
+<li><a name="cmd.tocbasic@addxcontentsline"></a><a href="#cmd.tocbasic@addxcontentsline">\tocbasic@addxcontentsline</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.tocbasic@addxcontentsline">382</a></li>
+<li><a name="cmd.tocbasic@extend@babel"></a><a href="#cmd.tocbasic@extend@babel">\tocbasic@extend@babel</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.tocbasic@extend@babel">380</a></li>
+<li><a name="cmd.tocbasic@listhead"></a><a href="#cmd.tocbasic@listhead">\tocbasic@listhead</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.tocbasic@listhead">382</a></li>
+<li><a name="cmd.tocbasic@listhead@/extension/"></a><a href="#cmd.tocbasic@listhead@/extension/">\tocbasic@listhead@/extension/</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.tocbasic@listhead@/extension/">382</a></li>
+<li><a name="cmd.tocbasic@starttoc"></a><a href="#cmd.tocbasic@starttoc">\tocbasic@starttoc</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.tocbasic@starttoc">381</a></li>
+<li><a name="cmd.tocbasicautomode"></a><a href="#cmd.tocbasicautomode">\tocbasicautomode</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.tocbasicautomode">361</a></li>
+<li><a name="cmd.todaysname"></a><a href="#cmd.todaysname">\todaysname</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.todaysname">265</a></li>
+<li><a name="cmd.todaysnumber"></a><a href="#cmd.todaysnumber">\todaysnumber</a> --&gt; <a href="scrguien.pdf#desc:scrdate.cmd.todaysnumber">265</a></li>
+<li><a name="cmd.toplevelpagestyle"></a><a href="#cmd.toplevelpagestyle">\toplevelpagestyle</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.cmd.toplevelpagestyle">410</a></li>
+<li><a name="cmd.typearea"></a><a href="#cmd.typearea">\typearea</a> --&gt; <a href="scrguien.pdf#desc:typearea.cmd.typearea">40</a></li>
+<li><a name="cmd.unsettoc"></a><a href="#cmd.unsettoc">\unsettoc</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.unsettoc">366</a></li>
+<li><a name="cmd.uppertitleback"></a><a href="#cmd.uppertitleback">\uppertitleback</a> --&gt; <a href="scrguien.pdf#desc:scrextend.cmd.uppertitleback">285</a>, <a href="scrguien.pdf#desc:maincls.cmd.uppertitleback">70</a></li>
+<li><a name="cmd.useencodingofkomafont"></a><a href="#cmd.useencodingofkomafont">\useencodingofkomafont</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.useencodingofkomafont">178</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.useencodingofkomafont">242</a>, <a href="scrguien.pdf#desc:scrextend.cmd.useencodingofkomafont">281</a>, <a href="scrguien.pdf#desc:scrjura.cmd.useencodingofkomafont">298</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.useencodingofkomafont">440</a>, <a href="scrguien.pdf#desc:maincls.cmd.useencodingofkomafont">64</a></li>
+<li><a name="cmd.usefamilyofkomafont"></a><a href="#cmd.usefamilyofkomafont">\usefamilyofkomafont</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.usefamilyofkomafont">178</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.usefamilyofkomafont">242</a>, <a href="scrguien.pdf#desc:scrextend.cmd.usefamilyofkomafont">281</a>, <a href="scrguien.pdf#desc:scrjura.cmd.usefamilyofkomafont">298</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.usefamilyofkomafont">440</a>, <a href="scrguien.pdf#desc:maincls.cmd.usefamilyofkomafont">64</a></li>
+<li><a name="cmd.usefontofkomafont"></a><a href="#cmd.usefontofkomafont">\usefontofkomafont</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.usefontofkomafont">178</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.usefontofkomafont">242</a>, <a href="scrguien.pdf#desc:scrextend.cmd.usefontofkomafont">281</a>, <a href="scrguien.pdf#desc:scrjura.cmd.usefontofkomafont">298</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.usefontofkomafont">440</a>, <a href="scrguien.pdf#desc:maincls.cmd.usefontofkomafont">64</a></li>
+<li><a name="cmd.usekomafont"></a><a href="#cmd.usekomafont">\usekomafont</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.usekomafont">175</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.usekomafont">240</a>, <a href="scrguien.pdf#desc:scrextend.cmd.usekomafont">280</a>, <a href="scrguien.pdf#desc:scrjura.cmd.usekomafont">296</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.usekomafont">439</a>, <a href="scrguien.pdf#desc:maincls.cmd.usekomafont">59</a></li>
+<li><a name="cmd.usekomavar*"></a><a href="#cmd.usekomavar*">\usekomavar*</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.usekomavar*">157</a>, <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.usekomavar*">496</a></li>
+<li><a name="cmd.usekomavar"></a><a href="#cmd.usekomavar">\usekomavar</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.usekomavar">157</a>, <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.usekomavar">496</a></li>
+<li><a name="cmd.usepackage"></a><a href="#cmd.usepackage">\usepackage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.usepackage">158</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.usepackage">238</a>, <a href="scrguien.pdf#desc:scrextend.cmd.usepackage">276</a>, <a href="scrguien.pdf#desc:scrjura.cmd.usepackage">295</a>, <a href="scrguien.pdf#desc:typearea.cmd.usepackage">31</a>, <a href="scrguien.pdf#desc:scrhack.cmd.usepackage">392</a>, <a href="scrguien.pdf#desc:scrlayer.cmd.usepackage">396</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.usepackage">438</a>, <a href="scrguien.pdf#desc:maincls.cmd.usepackage">54</a></li>
+<li><a name="cmd.useplength"></a><a href="#cmd.useplength">\useplength</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.useplength">158</a></li>
+<li><a name="cmd.useseriesofkomafont"></a><a href="#cmd.useseriesofkomafont">\useseriesofkomafont</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.useseriesofkomafont">178</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.useseriesofkomafont">242</a>, <a href="scrguien.pdf#desc:scrextend.cmd.useseriesofkomafont">281</a>, <a href="scrguien.pdf#desc:scrjura.cmd.useseriesofkomafont">298</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.useseriesofkomafont">440</a>, <a href="scrguien.pdf#desc:maincls.cmd.useseriesofkomafont">64</a></li>
+<li><a name="cmd.useshapeofkomafont"></a><a href="#cmd.useshapeofkomafont">\useshapeofkomafont</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.useshapeofkomafont">178</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.useshapeofkomafont">242</a>, <a href="scrguien.pdf#desc:scrextend.cmd.useshapeofkomafont">281</a>, <a href="scrguien.pdf#desc:scrjura.cmd.useshapeofkomafont">298</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.useshapeofkomafont">440</a>, <a href="scrguien.pdf#desc:maincls.cmd.useshapeofkomafont">64</a></li>
+<li><a name="cmd.usesizeofkomafont"></a><a href="#cmd.usesizeofkomafont">\usesizeofkomafont</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.cmd.usesizeofkomafont">178</a>, <a href="scrguien.pdf#desc:scrlayer-scrpage.cmd.usesizeofkomafont">242</a>, <a href="scrguien.pdf#desc:scrextend.cmd.usesizeofkomafont">281</a>, <a href="scrguien.pdf#desc:scrjura.cmd.usesizeofkomafont">298</a>, <a href="scrguien.pdf#desc:scrlayer-notecolumn.cmd.usesizeofkomafont">440</a>, <a href="scrguien.pdf#desc:maincls.cmd.usesizeofkomafont">64</a></li>
+<li><a name="cmd.usetocbasicnumberline"></a><a href="#cmd.usetocbasicnumberline">\usetocbasicnumberline</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.cmd.usetocbasicnumberline">369</a></li>
+<li><a name="cmd.withoutparnumber"></a><a href="#cmd.withoutparnumber">\withoutparnumber</a> --&gt; <a href="scrguien.pdf#desc:scrjura.cmd.withoutparnumber">303</a></li>
+<li><a name="cmd.wwwname"></a><a href="#cmd.wwwname">\wwwname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.wwwname">502</a></li>
+<li><a name="cmd.yourmailname"></a><a href="#cmd.yourmailname">\yourmailname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.yourmailname">502</a></li>
+<li><a name="cmd.yourrefname"></a><a href="#cmd.yourrefname">\yourrefname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.cmd.yourrefname">502</a></li>
+</ul>
+<h2><a name="environment">Environments</a></h2>
+<ul>
+<li><a name="env.abstract"></a><a href="#env.abstract">abstract</a> --&gt; <a href="scrguien.pdf#desc:maincls.env.abstract">71</a></li>
+<li><a name="env.addmargin*"></a><a href="#env.addmargin*">addmargin*</a> --&gt; <a href="scrguien.pdf#desc:maincls.env.addmargin*">125</a>, <a href="scrguien.pdf#desc:scrlttr2.env.addmargin*">222</a>, <a href="scrguien.pdf#desc:scrextend.env.addmargin*">293</a></li>
+<li><a name="env.addmargin"></a><a href="#env.addmargin">addmargin</a> --&gt; <a href="scrguien.pdf#desc:maincls.env.addmargin">125</a>, <a href="scrguien.pdf#desc:scrlttr2.env.addmargin">222</a>, <a href="scrguien.pdf#desc:scrextend.env.addmargin">293</a></li>
+<li><a name="env.captionbeside"></a><a href="#env.captionbeside">captionbeside</a> --&gt; <a href="scrguien.pdf#desc:maincls.env.captionbeside">134</a></li>
+<li><a name="env.captionofbeside"></a><a href="#env.captionofbeside">captionofbeside</a> --&gt; <a href="scrguien.pdf#desc:maincls.env.captionofbeside">137</a></li>
+<li><a name="env.contract"></a><a href="#env.contract">contract</a> --&gt; <a href="scrguien.pdf#desc:scrjura.env.contract">299</a></li>
+<li><a name="env.description"></a><a href="#env.description">description</a> --&gt; <a href="scrguien.pdf#desc:maincls.env.description">120</a>, <a href="scrguien.pdf#desc:scrlttr2.env.description">221</a></li>
+<li><a name="env.enumerate"></a><a href="#env.enumerate">enumerate</a> --&gt; <a href="scrguien.pdf#desc:maincls.env.enumerate">119</a>, <a href="scrguien.pdf#desc:scrlttr2.env.enumerate">221</a></li>
+<li><a name="env.itemize"></a><a href="#env.itemize">itemize</a> --&gt; <a href="scrguien.pdf#desc:maincls.env.itemize">118</a>, <a href="scrguien.pdf#desc:scrlttr2.env.itemize">220</a></li>
+<li><a name="env.labeling"></a><a href="#env.labeling">labeling</a> --&gt; <a href="scrguien.pdf#desc:maincls.env.labeling">121</a>, <a href="scrguien.pdf#desc:scrlttr2.env.labeling">221</a>, <a href="scrguien.pdf#desc:scrextend.env.labeling">293</a></li>
+<li><a name="env.letter"></a><a href="#env.letter">letter</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.env.letter">163</a></li>
+<li><a name="env.quotation"></a><a href="#env.quotation">quotation</a> --&gt; <a href="scrguien.pdf#desc:maincls.env.quotation">124</a>, <a href="scrguien.pdf#desc:scrlttr2.env.quotation">222</a></li>
+<li><a name="env.quote"></a><a href="#env.quote">quote</a> --&gt; <a href="scrguien.pdf#desc:maincls.env.quote">124</a>, <a href="scrguien.pdf#desc:scrlttr2.env.quote">222</a></li>
+<li><a name="env.titlepage"></a><a href="#env.titlepage">titlepage</a> --&gt; <a href="scrguien.pdf#desc:scrextend.env.titlepage">282</a>, <a href="scrguien.pdf#desc:maincls.env.titlepage">65</a></li>
+<li><a name="env.verse"></a><a href="#env.verse">verse</a> --&gt; <a href="scrguien.pdf#desc:maincls.env.verse">122</a>, <a href="scrguien.pdf#desc:scrlttr2.env.verse">222</a></li>
+</ul>
+<h2><a name="length">Lengths</a></h2>
+<ul>
+<li><a name="length.footheight"></a><a href="#length.footheight">footheight</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.length.footheight">239</a>, <a href="scrguien.pdf#desc:scrlayer.length.footheight">419</a>, <a href="scrguien.pdf#desc:typearea.length.footheight">45</a></li>
+<li><a name="length.headheight"></a><a href="#length.headheight">headheight</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.length.headheight">239</a>, <a href="scrguien.pdf#desc:scrlayer.length.headheight">419</a></li>
+</ul>
+<h2><a name="plength">Pseudolengths</a></h2>
+<ul>
+<li><a name="plength.PPdatamatrixvskip"></a><a href="#plength.PPdatamatrixvskip">PPdatamatrixvskip</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.PPdatamatrixvskip">492</a></li>
+<li><a name="plength.PPheadheight"></a><a href="#plength.PPheadheight">PPheadheight</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.PPheadheight">491</a></li>
+<li><a name="plength.PPheadwidth"></a><a href="#plength.PPheadwidth">PPheadwidth</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.PPheadwidth">491</a></li>
+<li><a name="plength.backaddrheight"></a><a href="#plength.backaddrheight">backaddrheight</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.backaddrheight">491</a></li>
+<li><a name="plength.bfoldmarklength"></a><a href="#plength.bfoldmarklength">bfoldmarklength</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.bfoldmarklength">487</a></li>
+<li><a name="plength.bfoldmarkvpos"></a><a href="#plength.bfoldmarkvpos">bfoldmarkvpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.bfoldmarkvpos">487</a></li>
+<li><a name="plength.firstfoothpos"></a><a href="#plength.firstfoothpos">firstfoothpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.firstfoothpos">495</a></li>
+<li><a name="plength.firstfootvpos"></a><a href="#plength.firstfootvpos">firstfootvpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.firstfootvpos">495</a></li>
+<li><a name="plength.firstfootwidth"></a><a href="#plength.firstfootwidth">firstfootwidth</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.firstfootwidth">495</a></li>
+<li><a name="plength.firstheadhpos"></a><a href="#plength.firstheadhpos">firstheadhpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.firstheadhpos">489</a></li>
+<li><a name="plength.firstheadvpos"></a><a href="#plength.firstheadvpos">firstheadvpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.firstheadvpos">489</a></li>
+<li><a name="plength.firstheadwidth"></a><a href="#plength.firstheadwidth">firstheadwidth</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.firstheadwidth">489</a></li>
+<li><a name="plength.foldmarkhpos"></a><a href="#plength.foldmarkhpos">foldmarkhpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.foldmarkhpos">488</a></li>
+<li><a name="plength.foldmarkthickness"></a><a href="#plength.foldmarkthickness">foldmarkthickness</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.foldmarkthickness">488</a></li>
+<li><a name="plength.foldmarkvpos"></a><a href="#plength.foldmarkvpos">foldmarkvpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.foldmarkvpos">488</a></li>
+<li><a name="plength.fromrulethickness"></a><a href="#plength.fromrulethickness">fromrulethickness</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.fromrulethickness">489</a></li>
+<li><a name="plength.fromrulewidth"></a><a href="#plength.fromrulewidth">fromrulewidth</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.fromrulewidth">489</a></li>
+<li><a name="plength.lfoldmarkhpos"></a><a href="#plength.lfoldmarkhpos">lfoldmarkhpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.lfoldmarkhpos">488</a></li>
+<li><a name="plength.lfoldmarklength"></a><a href="#plength.lfoldmarklength">lfoldmarklength</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.lfoldmarklength">488</a></li>
+<li><a name="plength.locheight"></a><a href="#plength.locheight">locheight</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.locheight">492</a></li>
+<li><a name="plength.lochpos"></a><a href="#plength.lochpos">lochpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.lochpos">492</a></li>
+<li><a name="plength.locvpos"></a><a href="#plength.locvpos">locvpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.locvpos">492</a></li>
+<li><a name="plength.locwidth"></a><a href="#plength.locwidth">locwidth</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.locwidth">492</a></li>
+<li><a name="plength.mfoldmarklength"></a><a href="#plength.mfoldmarklength">mfoldmarklength</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.mfoldmarklength">487</a></li>
+<li><a name="plength.mfoldmarkvpos"></a><a href="#plength.mfoldmarkvpos">mfoldmarkvpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.mfoldmarkvpos">487</a></li>
+<li><a name="plength.pfoldmarklength"></a><a href="#plength.pfoldmarklength">pfoldmarklength</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.pfoldmarklength">487</a></li>
+<li><a name="plength.refaftervskip"></a><a href="#plength.refaftervskip">refaftervskip</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.refaftervskip">493</a></li>
+<li><a name="plength.refhpos"></a><a href="#plength.refhpos">refhpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.refhpos">493</a></li>
+<li><a name="plength.refvpos"></a><a href="#plength.refvpos">refvpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.refvpos">493</a></li>
+<li><a name="plength.refwidth"></a><a href="#plength.refwidth">refwidth</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.refwidth">493</a></li>
+<li><a name="plength.sigbeforevskip"></a><a href="#plength.sigbeforevskip">sigbeforevskip</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.sigbeforevskip">494</a></li>
+<li><a name="plength.sigindent"></a><a href="#plength.sigindent">sigindent</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.sigindent">494</a></li>
+<li><a name="plength.specialmailindent"></a><a href="#plength.specialmailindent">specialmailindent</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.specialmailindent">491</a></li>
+<li><a name="plength.specialmailrightindent"></a><a href="#plength.specialmailrightindent">specialmailrightindent</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.specialmailrightindent">491</a></li>
+<li><a name="plength.subjectaftervskip"></a><a href="#plength.subjectaftervskip">subjectaftervskip</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.subjectaftervskip">494</a></li>
+<li><a name="plength.subjectbeforevskip"></a><a href="#plength.subjectbeforevskip">subjectbeforevskip</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.subjectbeforevskip">494</a></li>
+<li><a name="plength.subjectvpos"></a><a href="#plength.subjectvpos">subjectvpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.subjectvpos">494</a></li>
+<li><a name="plength.tfoldmarklength"></a><a href="#plength.tfoldmarklength">tfoldmarklength</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.tfoldmarklength">487</a></li>
+<li><a name="plength.tfoldmarkvpos"></a><a href="#plength.tfoldmarkvpos">tfoldmarkvpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.tfoldmarkvpos">487</a></li>
+<li><a name="plength.toaddrheight"></a><a href="#plength.toaddrheight">toaddrheight</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.toaddrheight">490</a></li>
+<li><a name="plength.toaddrhpos"></a><a href="#plength.toaddrhpos">toaddrhpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.toaddrhpos">490</a></li>
+<li><a name="plength.toaddrindent"></a><a href="#plength.toaddrindent">toaddrindent</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.toaddrindent">491</a></li>
+<li><a name="plength.toaddrvpos"></a><a href="#plength.toaddrvpos">toaddrvpos</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.toaddrvpos">490</a></li>
+<li><a name="plength.toaddrwidth"></a><a href="#plength.toaddrwidth">toaddrwidth</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2-experts.plength.toaddrwidth">490</a></li>
+</ul>
+<h2><a name="variable">Variables</a></h2>
+<ul>
+<li><a name="variable.PPcode"></a><a href="#variable.PPcode">PPcode</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.PPcode">193</a></li>
+<li><a name="variable.PPdatamatrix"></a><a href="#variable.PPdatamatrix">PPdatamatrix</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.PPdatamatrix">193</a></li>
+<li><a name="variable.addresseeimage"></a><a href="#variable.addresseeimage">addresseeimage</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.addresseeimage">193</a></li>
+<li><a name="variable.backaddress"></a><a href="#variable.backaddress">backaddress</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.backaddress">193</a></li>
+<li><a name="variable.backaddressseparator"></a><a href="#variable.backaddressseparator">backaddressseparator</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.backaddressseparator">193</a></li>
+<li><a name="variable.ccseparator"></a><a href="#variable.ccseparator">ccseparator</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.ccseparator">169</a></li>
+<li><a name="variable.customer"></a><a href="#variable.customer">customer</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.customer">200</a></li>
+<li><a name="variable.date"></a><a href="#variable.date">date</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.date">199</a></li>
+<li><a name="variable.emailseparator"></a><a href="#variable.emailseparator">emailseparator</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.emailseparator">187</a></li>
+<li><a name="variable.enclseparator"></a><a href="#variable.enclseparator">enclseparator</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.enclseparator">171</a></li>
+<li><a name="variable.faxseparator"></a><a href="#variable.faxseparator">faxseparator</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.faxseparator">187</a></li>
+<li><a name="variable.firstfoot"></a><a href="#variable.firstfoot">firstfoot</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.firstfoot">207</a></li>
+<li><a name="variable.firsthead"></a><a href="#variable.firsthead">firsthead</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.firsthead">193</a></li>
+<li><a name="variable.fromaddress"></a><a href="#variable.fromaddress">fromaddress</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.fromaddress">182</a></li>
+<li><a name="variable.frombank"></a><a href="#variable.frombank">frombank</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.frombank">208</a></li>
+<li><a name="variable.fromemail"></a><a href="#variable.fromemail">fromemail</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.fromemail">187</a></li>
+<li><a name="variable.fromfax"></a><a href="#variable.fromfax">fromfax</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.fromfax">187</a></li>
+<li><a name="variable.fromlogo"></a><a href="#variable.fromlogo">fromlogo</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.fromlogo">191</a></li>
+<li><a name="variable.frommobilephone"></a><a href="#variable.frommobilephone">frommobilephone</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.frommobilephone">187</a></li>
+<li><a name="variable.fromname"></a><a href="#variable.fromname">fromname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.fromname">182</a></li>
+<li><a name="variable.fromphone"></a><a href="#variable.fromphone">fromphone</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.fromphone">187</a></li>
+<li><a name="variable.fromurl"></a><a href="#variable.fromurl">fromurl</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.fromurl">187</a></li>
+<li><a name="variable.fromzipcode"></a><a href="#variable.fromzipcode">fromzipcode</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.fromzipcode">193</a></li>
+<li><a name="variable.invoice"></a><a href="#variable.invoice">invoice</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.invoice">200</a></li>
+<li><a name="variable.location"></a><a href="#variable.location">location</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.location">198</a></li>
+<li><a name="variable.mobilephoneseparator"></a><a href="#variable.mobilephoneseparator">mobilephoneseparator</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.mobilephoneseparator">187</a></li>
+<li><a name="variable.myref"></a><a href="#variable.myref">myref</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.myref">200</a></li>
+<li><a name="variable.nextfoot"></a><a href="#variable.nextfoot">nextfoot</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.nextfoot">214</a></li>
+<li><a name="variable.nexthead"></a><a href="#variable.nexthead">nexthead</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.nexthead">214</a></li>
+<li><a name="variable.phoneseparator"></a><a href="#variable.phoneseparator">phoneseparator</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.phoneseparator">187</a></li>
+<li><a name="variable.place"></a><a href="#variable.place">place</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.place">193</a></li>
+<li><a name="variable.placeseparator"></a><a href="#variable.placeseparator">placeseparator</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.placeseparator">201</a></li>
+<li><a name="variable.signature"></a><a href="#variable.signature">signature</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.signature">224</a></li>
+<li><a name="variable.specialmail"></a><a href="#variable.specialmail">specialmail</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.specialmail">193</a></li>
+<li><a name="variable.subject"></a><a href="#variable.subject">subject</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.subject">204</a></li>
+<li><a name="variable.subjectseparator"></a><a href="#variable.subjectseparator">subjectseparator</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.subjectseparator">204</a></li>
+<li><a name="variable.title"></a><a href="#variable.title">title</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.title">203</a></li>
+<li><a name="variable.toaddress"></a><a href="#variable.toaddress">toaddress</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.toaddress">193</a></li>
+<li><a name="variable.toname"></a><a href="#variable.toname">toname</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.toname">193</a></li>
+<li><a name="variable.urlseparator"></a><a href="#variable.urlseparator">urlseparator</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.urlseparator">187</a></li>
+<li><a name="variable.yourmail"></a><a href="#variable.yourmail">yourmail</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.yourmail">200</a></li>
+<li><a name="variable.yourref"></a><a href="#variable.yourref">yourref</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.yourref">200</a></li>
+<li><a name="variable.zipcodeseparator"></a><a href="#variable.zipcodeseparator">zipcodeseparator</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.variable.zipcodeseparator">193</a></li>
+</ul>
+<h2><a name="pagestyle">Page Styles</a></h2>
+<ul>
+<li><a name="pagestyle.@everystyle@"></a><a href="#pagestyle.@everystyle@">@everystyle@</a> --&gt; <a href="scrguien.pdf#desc:scrlayer.pagestyle.@everystyle@">414</a></li>
+<li><a name="pagestyle.empty"></a><a href="#pagestyle.empty">empty</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.pagestyle.empty">212</a>, <a href="scrguien.pdf#desc:scrlayer.pagestyle.empty">414</a></li>
+<li><a name="pagestyle.headings"></a><a href="#pagestyle.headings">headings</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.pagestyle.headings">212</a></li>
+<li><a name="pagestyle.letter"></a><a href="#pagestyle.letter">letter</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.pagestyle.letter">212</a></li>
+<li><a name="pagestyle.myheadings"></a><a href="#pagestyle.myheadings">myheadings</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.pagestyle.myheadings">212</a></li>
+<li><a name="pagestyle.plain"></a><a href="#pagestyle.plain">plain</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.pagestyle.plain">212</a></li>
+<li><a name="pagestyle.scrheadings"></a><a href="#pagestyle.scrheadings">scrheadings</a> --&gt; <a href="scrguien.pdf#desc:scrlayer-scrpage.pagestyle.scrheadings">242</a></li>
+</ul>
+<h2><a name="counter">Counter</a></h2>
+<ul>
+<li><a name="counter.letter"></a><a href="#counter.letter">letter</a> --&gt; <a href="scrguien.pdf#desc:scrlttr2.counter.letter">165</a></li>
+<li><a name="counter.par"></a><a href="#counter.par">par</a> --&gt; <a href="scrguien.pdf#desc:scrjura.counter.par">303</a></li>
+<li><a name="counter.secnumdepth"></a><a href="#counter.secnumdepth">secnumdepth</a> --&gt; <a href="scrguien.pdf#desc:maincls.counter.secnumdepth">113</a></li>
+<li><a name="counter.sentence"></a><a href="#counter.sentence">sentence</a> --&gt; <a href="scrguien.pdf#desc:scrjura.counter.sentence">304</a></li>
+<li><a name="counter.tocdepth"></a><a href="#counter.tocdepth">tocdepth</a> --&gt; <a href="scrguien.pdf#desc:tocbasic.counter.tocdepth">368</a>, <a href="scrguien.pdf#desc:maincls.counter.tocdepth">76</a></li>
+</ul>
+<h2><a name="floatstyle">Styles for the float Package</a></h2>
+<ul>
+<li><a name="floatstyle.komaabove"></a><a href="#floatstyle.komaabove">komaabove</a> --&gt; <a href="scrguien.pdf#desc:maincls.floatstyle.komaabove">137</a></li>
+<li><a name="floatstyle.komabelow"></a><a href="#floatstyle.komabelow">komabelow</a> --&gt; <a href="scrguien.pdf#desc:maincls.floatstyle.komabelow">137</a></li>
+</ul>
+<p>
+<a href="http://validator.w3.org/check?uri=referer"><img
+src="http://www.w3.org/Icons/valid-html40"
+alt="Valid HTML 4.0 Strict" height="31" width="88"></a>
+</p>
+</body></html> \ No newline at end of file
diff --git a/macros/latex/contrib/koma-script/doc/scrguien.pdf b/macros/latex/contrib/koma-script/doc/scrguien.pdf
new file mode 100644
index 0000000000..14dcaaff0c
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrguien.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrhack.html b/macros/latex/contrib/koma-script/doc/scrhack.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrhack.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-fancyhdr.pdf b/macros/latex/contrib/koma-script/doc/scrlayer-fancyhdr.pdf
new file mode 100644
index 0000000000..26b59fc214
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-fancyhdr.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-scrpage.html b/macros/latex/contrib/koma-script/doc/scrlayer-scrpage.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-scrpage.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer.html b/macros/latex/contrib/koma-script/doc/scrlayer.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrlayer.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrletter.html b/macros/latex/contrib/koma-script/doc/scrletter.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrletter.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrlfile.html b/macros/latex/contrib/koma-script/doc/scrlfile.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrlfile.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrlttr2.html b/macros/latex/contrib/koma-script/doc/scrlttr2.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrlttr2.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrpage2.pdf b/macros/latex/contrib/koma-script/doc/scrpage2.pdf
new file mode 100644
index 0000000000..61d640eb25
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrpage2.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/scrreprt.html b/macros/latex/contrib/koma-script/doc/scrreprt.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrreprt.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrtime.html b/macros/latex/contrib/koma-script/doc/scrtime.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrtime.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/scrwfile.html b/macros/latex/contrib/koma-script/doc/scrwfile.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrwfile.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/tocbasic.html b/macros/latex/contrib/koma-script/doc/tocbasic.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/tocbasic.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/doc/tocstyle.pdf b/macros/latex/contrib/koma-script/doc/tocstyle.pdf
new file mode 100644
index 0000000000..1bece2a81e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/tocstyle.pdf
Binary files differ
diff --git a/macros/latex/contrib/koma-script/doc/typearea.html b/macros/latex/contrib/koma-script/doc/typearea.html
new file mode 100644
index 0000000000..b386b493a2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/typearea.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta name="keywords" content="KOMA-Script, scrbook, scrreprt, scrartcl,
+ scrlttr2, typearea, scrpage2, scrtime,
+ scrdate, scraddr, scrlfile" />
+ <meta name="DC.Title" content="The KOMA-Script Documentation Wrapper" />
+ <meta name="DC.Creator" content="Markus Kohm" />
+ <meta name="DC.Subject" content="KOMA-Script Documentation" />
+ <meta name="DC.Description" content="Where to find the KOMA-Script
+ documentation" />
+ <meta name="DC.Publisher" content="KOMA" />
+ <meta name="DC.Date" content="2010-01-31" />
+ <meta name="DC.Type" content="Text" />
+ <meta name="DC.Format" content="text/html" />
+ <meta name="DC.Identifier" content="koma-script.html" />
+ <meta name="DC.Language" content="en,de" />
+ <meta name="DC.Relation" content="Link to documentation" />
+ <meta name="DC.Coverage" content="Version since 3.00" />
+ <meta name="DC.Rights" content="LaTeX Public Private License 1.3c" />
+ <title>The KOMA-Script Documentation Wrapper</title>
+ <style type="text/css">
+ <!--
+ body {}
+ #en { position:absolute; left:10px; width:45%; }
+ #de { position:absolute; right:10px; width:45%; }
+ #fn { position:absolute; bottom:0px; width:50%;
+ border-top-width:1px; border-top-style:solid;
+ font-size:x-small; }
+ h1.right { text-align:right; }
+ -->
+ </style>
+ </head>
+ <body>
+ <h1>The KOMA-Script Documentation Wrapper</h1>
+ <h1 class="right">Der Weg zur KOMAScript-Anleitung</h1>
+ <div id="en">
+ I think you are searching for the KOMA-Script documentation. You
+ may find the Englisch documentation
+ at <a href="scrguien.pdf">scrguien.pdf</a> and an index of it
+ at <a href="scrguien.html">scrguien.html</a>.
+ </div>
+ <div id="de">
+ Ich nehme an, Sie suchen nach der KOMA-Script-Anleitung. Die deutsche
+ Anleitung k&ouml;nnen Sie in <a href="scrguide.pdf">scrguide.pdf</a>
+ finden. Einen Index dazu gibt es
+ in <a href="scrguide.html">scrguide.html</a>.
+ </div>
+ <div id="fn">
+ Markus Kohm, 2007-09-21
+ <p><a
+ href="http://validator.w3.org/check?uri=referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a></p>
+ </div>
+ </body>
+</html>
diff --git a/macros/latex/contrib/koma-script/source-doc/Makefile b/macros/latex/contrib/koma-script/source-doc/Makefile
new file mode 100644
index 0000000000..3695d148e8
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/Makefile
@@ -0,0 +1,227 @@
+# ======================================================================
+# Makefile
+# Copyright (c) Markus Kohm, 2002-2014
+#
+# 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.
+# ----------------------------------------------------------------------
+# Makefile
+# Copyright (c) Markus Kohm, 2002-2014
+#
+# 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.
+# ======================================================================
+
+# ----------------------------------------------------------------------
+# Directory with basics
+BASEDIR ?= $(PWD)/../
+export BASEDIR
+
+# ----------------------------------------------------------------------
+# All directories with Makefiles
+SUBDIRS = english ngerman
+
+# ----------------------------------------------------------------------
+# Default rules
+.PHONY: default clean default_local install_local \
+ uninstall_local clean_local dist_local \
+ distclean_local maintainclean_local
+
+# Recursive make function
+ifdef SUBDIRS
+define make_recursive
+ for dir in $(SUBDIRS); \
+ do \
+ $(MAKE) -C $$dir $@ || exit $$?; \
+ done
+endef
+else
+define make_recursive
+endef
+endif
+
+default: default_local
+
+clean: clean_local
+
+# Load variable definitions
+include $(BASEDIR)Makefile.baseinit
+include Makefile.latexinit
+
+# Temporary folder, used to create distribution.
+# Same folder with postfix "-maintain" will be used to create maintain-
+# distribution.
+ifdef DISTDIR
+export DISTDIR := $(DISTDIR)/doc
+endif
+ifdef MAINTAINDIR
+export MAINTAINDIR := $(MAINTAINDIR)/doc
+endif
+ifdef INSTALLSRCDIR
+export INSTALLSRCDIR := $(INSTALLSRCDIR)/doc
+endif
+
+# ----------------------------------------------------------------------
+
+# ----------------------------------------------------------------------
+# List of all Makefiles
+MAKE_FILES = Makefile Makefile.latexinit Makefile.guide
+
+# ----------------------------------------------------------------------
+MISC_SRC = $(MAKE_FILES)
+
+STATIC_DOC_SRC = koma-script.html
+
+STATIC_DOC_LINKS= komascript.html komascr.html \
+ scrbook.html scrreprt.html scrartcl.html scrlttr2.html \
+ scrletter.html \
+ scrextend.html \
+ typearea.html scraddr.html scrlfile.html \
+ scrwfile.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 \
+ linkalias.tex \
+ scrpage2.tex
+
+DOC_FILES = scrpage2.pdf
+
+DOC_DIR = doc
+
+STATIC_DOC = $(STATIC_DOC_SRC) $(STATIC_DOC_LINKS)
+
+DIST_SRC = $(MISC_SRC) $(DOC_SRC) $(STATIC_DOC_SRC)
+
+DIST_FILES = $(DIST_SRC) $(STATIC_DOC_LINKS) $(DOC_FILES)
+
+BIN_DIR = bin
+
+BIN_FILES = $(BIN_DIR)/genhtmlidx.pl $(BIN_DIR)/genindex.pl
+
+MAINTAIN_FILES = $(DIST_FILES)
+# ----------------------------------------------------------------------
+
+# ----------------------------------------------------------------------
+# local rules
+prepare_local: $(STATIC_DOC_LINKS)
+ $(make_recursive)
+
+default_local: $(STATIC_DOC) $(DOC_FILES)
+ $(make_recursive)
+
+scrpage2.pdf: $(DOC_SRC)
+ $(LATEX) $(NONSTOPMODE) $(PDFOUTPUT) scrpage2.tex
+ $(LATEX) $(NONSTOPMODE) $(PDFOUTPUT) scrpage2.tex
+ $(LATEX) $(NONSTOPMODE) $(PDFOUTPUT) scrpage2.tex
+
+$(STATIC_DOC_LINKS): $(STATIC_DOC_SRC)
+ $(SYMLINK) $< $@
+
+install_local: $(DIST_FILES)
+ @if ! $(MKDIR) $(INSTALLSRCDIR) || \
+ ! $(MKDIR) $(INSTALLSRCDIR)/$(BIN_DIR) || \
+ ! $(MKDIR) $(INSTALLDOCDIR) ; then \
+ echo '--------------------------------------------------'; \
+ echo '| Cannot install to' $(INSTALLSRCDIR) or $(INSTALLSRCDIR)/$(BIN_DIR) or $(INSTALLDOCDIR)!; \
+ echo '| You should try:'; \
+ echo '| sudo "make install"'; \
+ echo '--------------------------------------------------'; \
+ exit 1; \
+ fi
+ $(INSTALL) $(DIST_SRC) $(INSTALLSRCDIR)
+ $(foreach file,$(STATIC_DOC),$(SYMLINK) ../../../../doc/latex/koma-script/$(file) $(INSTALLSRCDIR)/$(file);)
+ $(INSTALLEXECUTABLE) $(BIN_FILES) $(INSTALLSRCDIR)/$(BIN_DIR)
+ $(INSTALL) $(STATIC_DOC) $(DOC_FILES) $(INSTALLDOCDIR)
+ $(make_recursive)
+ $(SECHO) ------------------------------------------------------------
+ $(SECHO) Installed files at $(INSTALLSRCDIR):
+ $(SECHO) $(DIST_SRC)
+ $(SECHO) ------------------------------------------------------------
+ $(SECHO) Installed files at $(INSTALLSRCDIR)/$(BIN_DIR):
+ $(SECHO) $(BIN_FILES)
+ $(SECHO) ------------------------------------------------------------
+ $(SECHO) Installed files at $(INSTALLDOCDIR):
+ $(SECHO) $(STATIC_DOC) $(DOC_FILES)
+ $(SECHO) ------------------------------------------------------------
+ $(SECHO) Links at $(INSTALLSRCDIR):
+ $(SECHO) $(SATIC_DOC)
+ $(SECHO) ------------------------------------------------------------
+
+
+uninstall_local:
+ @if [ -d $(INSTALLSRCDIR) ]; then \
+ $(RM) -v $(foreach file,$(DIST_SRC),$(INSTALLSRCDIR)/$(file)); \
+ if [ ls $(INSTALLSRCDIR) > /dev/null 2>&1; then \
+ $(RMDIR) -v $(INSTALLSRCDIR); \
+ else \
+ echo "$(INSTALLSRCDIR) not empty!"; \
+ fi; \
+ else \
+ echo "$(INSTALLSRCDIR) not found --> nothing to uninstall!"; \
+ fi
+ @if [ -d $(INSTALLDOCDIR) ]; then \
+ $(RM) -v $(foreach file,$(STATIC_DOC),$(INSTALLDOCDIR)/$(file)); \
+ else \
+ echo "$(INSTALLDOCDIR) not found --> nothing to uninstall!"; \
+ fi
+ $(make_recursive)
+
+clean_local:
+ $(SRM) *.aux *.glo *.idx *.lof *.log *.lot *.synctex.gz *.toc *.slnc
+ $(make_recursive)
+
+dist_local: $(DIST_FILES)
+ -$(RMDIR) $(DISTDIR)
+ $(MKDIR) $(DISTDIR)
+ $(MKDIR) $(DISTDIR)/$(BIN_DIR)
+ $(CP) $(DIST_FILES) $(DISTDIR)
+ $(CP) $(BIN_FILES) $(DISTDIR)/$(BIN_DIR)
+ $(CP) $(DOC_FILES) $(DISTDIR)/$(DOC_DIR)
+ $(make_recursive)
+
+maintain_local:
+ -$(RMDIR) $(MAINTAINDIR)
+ $(MKDIR) $(MAINTAINDIR)
+ $(MKDIR) $(MAINTAINDIR)/$(BIN_DIR)
+ $(CP) $(MAINTAIN_FILES) $(MAINTAINDIR)
+ $(CP) $(BIN_FILES) $(MAINTAINDIR)/$(BIN_DIR)
+ $(make_recursive)
+
+distclean_local:
+ $(SRM) scrpage2-ngerman.tex scrpage2-english.tex
+ $(make_recursive)
+
+maintainclean_local:
+ $(SRM) ChangeLog.svn ChangeLog.bak $(STATIC_DOC_LINKS) $(DOC_FILES) \
+ scrpage2-ngerman.tex scrpage2-english.tex
+ $(make_recursive)
+
+edit:
+ $(EDITOR) guide.tex
diff --git a/macros/latex/contrib/koma-script/source-doc/Makefile.guide b/macros/latex/contrib/koma-script/source-doc/Makefile.guide
new file mode 100644
index 0000000000..453e0286d2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/Makefile.guide
@@ -0,0 +1,334 @@
+# ======================================================================
+# Makefile.guide
+# Copyright (c) Markus Kohm, 2002-2018
+#
+# 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.
+# ----------------------------------------------------------------------
+# Makefile.guide
+# Copyright (c) Markus Kohm, 2002-2018
+#
+# 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.
+# ======================================================================
+
+# ----------------------------------------------------------------------
+# Load common rules
+include $(BASEDIR)Makefile.baserules
+# Load variable definitions
+include $(BASEDIR)Makefile.baseinit
+include $(DOCDIR)Makefile.latexinit
+# ----------------------------------------------------------------------
+# Temporary folder, used to create distribution.
+# Same folder with postfix "-maintain" will be used to create maintain-
+# distribution.
+ifdef DISTDIR
+export DISTDIR := $(DISTDIR)/$(LANGUAGE)
+endif
+ifdef MAINTAINDIR
+export MAINTAINDIR := $(MAINTAINDIR)/$(LANGUAGE)
+endif
+ifdef INSTALLSRCDIR
+export INSTALLSRCDIR := $(INSTALLSRCDIR)/$(LANGUAGE)
+endif
+
+# ----------------------------------------------------------------------
+# List of all Makefiles
+MAKE_FILES = Makefile
+
+# ----------------------------------------------------------------------
+GUIDENAME = scrgui$(LANGUAGESHORTCUT)
+
+ifeq ($(LANGUAGE),english)
+TEX_APPENDICES = japanlco.tex
+else
+TEX_APPENDICES =
+endif
+
+TEX_CHAPTERS = preface.tex introduction.tex \
+ authorpart.tex typearea.tex scrbookreportarticle.tex \
+ scrlttr2.tex scrlayer-scrpage.tex \
+ scrdatetime.tex scraddr.tex \
+ adrconvnote.tex scrextend.tex scrjura.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 = ../guide.tex ../linkalias.tex \
+ common-options.tex \
+ common-compatibility.tex \
+ common-draftmode.tex \
+ common-typearea.tex \
+ common-fontsize.tex \
+ common-textmarkup.tex \
+ common-parmarkup.tex \
+ common-oddorevenpage.tex \
+ common-interleafpage.tex \
+ common-footnotes.tex \
+ common-lists.tex \
+ common-marginpar.tex \
+ common-titles.tex \
+ common-dictum.tex \
+ common-headfootheight.tex \
+ common-pagestylemanipulation.tex
+
+EXAMPLE_LETTER_DTX = scrlttr2examples.dtx
+
+EXAMPLE_LETTER_LETTERS = $(foreach num,\
+ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 \
+ 20 21 22 23 nipponA nipponB,\
+ letter-$(num).tex)
+
+EXAMPLE_LETTER_DTX_RESULT = $(EXAMPLE_LETTER_LETTERS) musterlogo.eps ich.lco
+
+EXAMPLE_NOTECOLUMN_SRC = scrlayer-notecolumn-example.tex
+EXAMPLE_NOTECOLUMN_PDF = $(addsuffix .pdf,$(basename $(EXAMPLE_NOTECOLUMN_SRC)))
+
+EXAMPLE_JURA_SRC = scrjuraexample.tex
+
+EXAMPLE_JURA_PDF = $(addsuffix .pdf,$(basename $(EXAMPLE_JURA_SRC)))
+
+PLENGTH_DTX = $(DOCDIR)plength.dtx
+
+PLENGTH_DTX_RESULT = plength.drv plenDIN.mp varDIN.mp plinc.mp \
+ pltex-vars.mp pltex-terms.mp pllcoDIN.mp
+
+PLENGTH_PDF = plenDIN.pdf varDIN.pdf
+
+PDF_EPS_SRC = musterlogo.eps
+
+PDF_EPS = $(addsuffix .pdf,$(basename $(PDF_EPS_SRC)))
+
+EXAMPLE_LETTER_TEX_SRC = $(EXAMPLE_LETTER_LETTERS) ich.lco
+EXAMPLE_LETTER_SRC = $(EXAMPLE_LETTER_TEX_SRC) $(PDF_EPS)
+EXAMPLE_LETTER_PDF = $(addsuffix .pdf,$(basename $(EXAMPLE_LETTER_LETTERS)))
+
+GENERATED_SRC = $(EXAMPLE_LETTER_PDF) $(PLENGTH_PDF) \
+ $(EXAMPLE_NOTECOLUMN_PDF) $(EXAMPLE_JURA_PDF)
+
+GENERATED_CLEAN = $(GENERATED_SRC) \
+ $(EXAMPLE_LETTER_DTX_RESULT) letter-label.tex \
+ $(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) \
+ $(EXAMPLE_NOTECOLUMN_SRC) $(EXAMPLE_JURA_SRC)
+
+GUIDE_FILES = $(GUIDENAME).pdf $(GUIDENAME).html
+
+DIST_FILES = $(DIST_SRC) $(GUIDE_FILES)
+
+MAINTAIN_SRC = $(DIST_SRC)
+
+MAINTAIN_FILES = $(MAINTAIN_SRC)
+
+# ----------------------------------------------------------------------
+# local rules
+default_local: $(GUIDE_FILES)
+
+prepare_local:
+# $(ECHO) $(GENERATED_SRC)
+
+clean_local:
+ $(RM) *.aux *.bbl *.blg *.glo *.idx *.ilg *.ind *.lof *.log *.lot \
+ *.dvi *.tmp mpxerr.tex *.1 *.mp.keep *.mpo \
+ *.md5 *.toc *.mpx *.drv *.chn *.xref *.slnc
+
+distclean_local: clean_local
+ $(RM) $(GENERATED_CLEAN)
+
+maintainclean_local: distclean_local
+ $(RM) guide.pdf $(GUIDENAME).pdf $(GUIDENAME).html
+
+ifdef DISTDIR
+
+install_local: $(DIST_FILES)
+ @if ! $(MKDIR) $(INSTALLSRCDIR) || \
+ ! [ -d $(INSTALLDOCDIR) ]; then \
+ echo '--------------------------------------------------'; \
+ echo '| Cannot install to' $(INSTALLSRCDIR) or $(INSTALLDOCDIR)!; \
+ echo '| You should try:'; \
+ echo '| sudo "make install"'; \
+ echo '--------------------------------------------------'; \
+ exit 1; \
+ fi
+ $(INSTALL) $(DIST_SRC) $(INSTALLSRCDIR)
+ $(INSTALL) $(GUIDE_FILES) $(INSTALLDOCDIR)
+ $(foreach file,$(GUIDE_FILES),$(SYMLINK) ../../../../doc/latex/koma-script/$(file) $(INSTALLSRCDIR)/../$(file);)
+ $(SECHO) ------------------------------------------------------------
+ $(SECHO) Installed files at $(INSTALLSRCDIR):
+ $(SECHO) $(DIST_SRC)
+ $(SECHO) ------------------------------------------------------------
+ $(SECHO) Installed files at $(INSTALLDOCDIR):
+ $(SECHO) $(GUIDE_FILES)
+ $(SECHO) ------------------------------------------------------------
+ $(SECHO) Links at $(INSTALLSRCDIR)/..:
+ $(SECHO) $(GUIDE_FILES)
+ $(SECHO) ------------------------------------------------------------
+
+uninstall_local:
+ @if [ -d $(INSTALLSRCDIR) ]; then \
+ $(RM) -v $(foreach file,$(DIST_SRC),$(INSTALLSRCDIR)/$(file)); \
+ if [ ls $(INSTALLSRCDIR) > /dev/null 2>&1; then \
+ $(RMDIR) -v $(INSTALLSRCDIR); \
+ else \
+ echo "$(INSTALLSRCDIR) not empty!"; \
+ fi; \
+ else \
+ echo "$(INSTALLSRCDIR) not found --> nothing to uninstall!"; \
+ fi
+ @if [ -d $(INSTALLDOCDIR) ]; then \
+ $(RM) -v $(foreach file,$(GUIDE_FILES),$(INSTALLDOCDIR)/$(file)); \
+ else \
+ echo "$(INSTALLDOCDIR) not found --> nothing to uninstall!"; \
+ fi
+
+dist_local: $(DIST_FILES)
+ -$(RMDIR) $(DISTDIR)
+ $(MKDIR) $(DISTDIR)
+ $(CP) $(DIST_FILES) $(DISTDIR)
+
+maintain_local:
+ -$(RMDIR) $(MAINTAINDIR)
+ $(MKDIR) $(MAINTAINDIR)
+ $(CP) $(MAINTAIN_FILES) $(MAINTAINDIR)
+
+else
+
+install_local:
+ $(error install not supported at local make)
+
+uninstall_local:
+ $(error uninstall not supported at local make)
+
+dist_local:
+ $(error dist not supported at local make)
+
+maintain_prior:
+ $(error maintain not supported at local make)
+
+endif
+
+# ----------------------------------------------------------------------
+# usefull addons
+
+edit:
+ $(EDITOR) $(TEX_SRC)
+
+# ----------------------------------------------------------------------
+# file rules
+
+CKSUMFILES = $(BIBTEX_SRC) $(MAKEINDEXSTYLE) $(MAKECHANGESTYLE) \
+ guide.aux guide.ind guide.idx guide.bbl guide.toc guide.lot \
+ guide.chn guide.glo \
+ $(foreach file,$(TEX_CHAPTERS) $(TEX_NONFREECHAPTERS),$(basename $(file)).aux)
+
+define latex
+ $(SMV) $@ guide.pdf || exit 0
+ @while ! $(CKSUM) -c guide.md5; do \
+ $(CKSUM) $(CKSUMFILES) > guide.md5 \
+ && $(PDFLATEX) guide.tex \
+ && ( $(BIBTEX) guide || [ $$? -le $(BIBTEXNOERROR) ] || exit 1 ) \
+ && $(BIBTEXFIX) guide.bbl \
+ && $(MAKEINDEX) guide.ind guide.idx \
+ && $(INDEXPOSTOP) guide \
+ && $(MAKECHANGE) guide.chn guide.glo \
+ || exit 1;\
+ done
+ $(SMV) guide.pdf $@
+endef
+
+$(GUIDENAME).html: htmlsetup guide.aux \
+ $(foreach file,$(TEX_CHAPTERS) $(TEX_NONFREECHAPTERS),\
+ $(basename $(file)).aux)
+ $(GENHTMLINDEX) $(addsuffix .aux,\
+ $(basename $(TEX_CHAPTERS) $(TEX_NONFREECHAPTERS)))\
+ >$@
+
+$(GUIDENAME).pdf: $(DOCDIR)scrguide.cls $(DOCDIR)guide.tex $(GENERATED_SRC)\
+ guide.aux guide.bbl $(BIBTEX_SRC) \
+ $(MAKEINDEXSTYLE) guide.ind guide.idx \
+ $(MAKECHANGESTYLE) guide.chn guide.glo \
+ $(TEX_SRC) $(TEX_NONFREECHAPTERS) $(TEX_NONFREEMISC)
+ $(SRM) guide.md5
+ $(latex)
+
+$(PLENGTH_DTX_RESULT): $(PLENGTH_DTX)
+ $(PDFLATEX) $<
+
+$(PLENGTH_PDF): $(PLENGTH_DTX_RESULT)
+ $(MPOST) $(addsuffix .mp,$(basename $@))
+ $(MPTOPDF) $(addsuffix .mp,$(basename $@))
+ $(MV) $(addsuffix .pdf,$(basename $@)-1) $@
+
+$(PDF_EPS): $(PDF_EPS_SRC)
+ $(EPSTOPDF) $(addsuffix .eps,$(basename $@))
+
+$(EXAMPLE_LETTER_PDF): $(EXAMPLE_LETTER_SRC)
+ $(PDFLATEX) $(addsuffix .tex,$(basename $@))
+
+$(EXAMPLE_LETTER_DTX_RESULT): $(EXAMPLE_LETTER_DTX)
+ $(PDFLATEX) $<
+
+ifdef EXAMPLE_NOTECOLUMN_SRC
+$(EXAMPLE_NOTECOLUMN_PDF): $(EXAMPLE_NOTECOLUMN_SRC)
+ $(PDFLATEX) $<
+ $(PDFLATEX) $<
+ $(PDFLATEX) $<
+ $(PDFLATEX) $<
+endif
+
+ifdef EXAMPLE_JURA_SRC
+$(EXAMPLE_JURA_PDF): $(EXAMPLE_JURA_SRC)
+ $(PDFLATEX) $(addsuffix .tex,$(basename $@))
+ $(PDFLATEX) $(addsuffix .tex,$(basename $@))
+ $(PDFLATEX) $(addsuffix .tex,$(basename $@))
+endif
+
+guide.ind: guide.idx
+ $(MAKEINDEX) $@ $<
+ $(INDEXPOSTOP) guide
+
+guide.chn: guide.glo
+ $(MAKECHANGE) $@ $<
+
+guide.bbl: $(BIBTEX_SRC) guide.aux
+ $(BIBTEX) guide || test $$? -le $(BIBTEXNOERROR)
+ $(BIBTEXFIX) guide.bbl
+
+guide.glo guide.idx guide.aux: $(DOCDIR)guide.tex $(TEX_SRC) \
+ $(TEX_NONFREECHAPTERS) $(TEX_NONFREEMISC)
+ $(PDFLATEX) guide.tex
+
+# ----------------------------------------------------------------------
diff --git a/macros/latex/contrib/koma-script/source-doc/Makefile.latexinit b/macros/latex/contrib/koma-script/source-doc/Makefile.latexinit
new file mode 100644
index 0000000000..b8a2e70833
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/Makefile.latexinit
@@ -0,0 +1,68 @@
+# Makefile.latexinit
+# Copyright (c) Markus Kohm, 2002-2016
+#
+# 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.
+# ----------------------------------------------------------------------
+# Makefile.latexinit
+# Copyright (c) Markus Kohm, 2002-2016
+#
+# 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.
+# ======================================================================
+
+# Read input first from basedir and doc dir
+TEXINPUTS := ./:$(DOCDIR):$(BASEDIR):$(TEXINPUTS)
+
+BIBINPUTS = $(DOCDIR):$(shell kpsewhich -expand-var=\$$BIBINPUTS)
+BSTINPUTS = $(DOCDIR):$(shell kpsewhich -expand-var=\$$BSTINPUTS)
+BIBTEX_SRC = $(DOCDIR)guide.bib
+
+MAKEINDEXSTYLE = $(DOCDIR)scrguide.ist
+MAKEINDEXOPT = -r -s $(MAKEINDEXSTYLE) -o
+MAKEINDEX = makeindex $(MAKEINDEXOPT)
+
+MAKECHANGESTYLE = $(DOCDIR)scrguide.gst
+MAKECHANGEOPT = -r -s $(MAKECHANGESTYLE) -o
+MAKECHANGE = makeindex $(MAKECHANGEOPT)
+
+PDFLATEX = $(LATEX) $(NONSTOPMODE) \
+ '\def\languagename{'$(LANGUAGELONG)'}' \
+ $(PDFOUTPUT)
+INDEXPOSTOP = $(DOCDIR)bin/genindex.pl
+GENHTMLINDEX = $(DOCDIR)bin/genhtmlidx.pl
+#BIBTEX = bibtex8
+#BIBTEXNOERROR = 1 # BibTeX8 returns 1 after warnings
+BIBTEX = bibtex
+BIBTEXNOERROR = 0 # BibTeX returns 0 on ok
+BIBTEXFIX = sed -i -e 's/\\btxurlfont[[:space:]]*$$/\\expandafter&/'
+
+MPOST = mpost -tex=latex -interaction=batchmode
+MPTOPDF = mptopdf
+
+EPSTOPDF = epstopdf
+
+export TEXINPUTS BIBINPUTS BSTINPUTS
diff --git a/macros/latex/contrib/koma-script/source-doc/bin/genhtmlidx.pl b/macros/latex/contrib/koma-script/source-doc/bin/genhtmlidx.pl
new file mode 100755
index 0000000000..da8837f895
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/bin/genhtmlidx.pl
@@ -0,0 +1,197 @@
+#! /usr/bin/perl -w
+eval 'exec perl -S $0 ${1+"$@"}'
+ if 0; #$running_under_some_shell
+
+# ======================================================================
+# genhtmlidx.pl
+# Copyright (c) Markus Kohm, 2002-2016
+#
+# 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.
+# ----------------------------------------------------------------------
+# genhtmlidx.pl
+# Copyright (c) Markus Kohm, 2002-2016
+#
+# 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.
+# ======================================================================
+# This perl script generates a html file with an index using the
+# \newlabel entries at the aux files.
+#
+# Usage: genhtmlidx.pl <aux-file> ...
+# ----------------------------------------------------------------------
+# Dieses perl-Script erzeugt aus den \newlabel-Eintraegen der
+# aux-Dateien eine html-Datei mit einer Art Index.
+#
+# Verwendung: genhtmlidx.pl <aux-file> ...
+# ======================================================================
+
+use strict;
+
+my $auxfile;
+my @option;
+my @macro;
+my @environment;
+my @plength;
+my @variable;
+my @pagestyle;
+my @counter;
+my @floatstyle;
+my @fontelement;
+my @file;
+my @length;
+
+my $baselink;
+my $htmlhead;
+my $htmlend;
+my %titles;
+
+my $setup="";
+open SETUP,"<htmlsetup" || die "Cannot open htmlsetup!\n";
+while (<SETUP>) {
+ $setup .= $_;
+}
+close SETUP;
+eval $setup;
+
+while ( $auxfile=shift ) {
+ open AUX,"<$auxfile" or die "Cannot read $auxfile!\n";
+ while (<AUX>) {
+ my $line=$_;
+ if ( /^\\newlabel\{(desc:[^\}]+)\}\{(.*)\}$/ ) {
+ my $label=$1;
+ my $refargs=$2;
+ if ( $refargs =~ /^\{([^\{\}]*(\{((?:(?>[^\{\}]*)|(?1))*)\})*)\}\{([^\}]+)\}(.*)$/ ) {
+ my $ref=$1;
+ my $page=$4;
+ my $rest=$5;
+ if ( $rest =~ /^\{([^\{\}]*(\{((?:(?>[^\{\}]*)|(?1))*)\})*)\}\{([^\}]*)\}\{(.*)\}$/ ) {
+ my $title=$1;
+ my $anchor=$4;
+ my $ignore=$5;
+# print STDERR "ref=\"$ref\", page=\"$page\", title=\"$title\", anchor=\"$anchor\", ignore=\"$ignore\"\n";
+ my $entry;
+ if ( $anchor =~ /^desc:([^.]+)\.([^.]+)\.([^.]+)$/ ) {
+ $entry = "$3.$page.$1.$2";
+ if ( "$2" eq "option" ) {
+ my $i=$1;
+ if ( $3 =~ /^([^=]+)=(.+)$/ ) {
+ $entry = "$1.$page.$i.option";
+ }
+ push @option,$entry;
+ } elsif ( "$2" eq "cmd" ) {
+ push @macro,$entry;
+ } elsif ( "$2" eq "env" ) {
+ push @environment,$entry;
+ } elsif ( "$2" eq "plength" ) {
+ push @plength,$entry;
+ } elsif ( "$2" eq "variable" ) {
+ push @variable,$entry;
+ } elsif ( "$2" eq "pagestyle" ) {
+ push @pagestyle,$entry;
+ } elsif ( "$2" eq "counter" ) {
+ push @counter,$entry;
+ } elsif ( "$2" eq "floatstyle" ) {
+ push @floatstyle,$entry;
+ } elsif ( "$2" eq "fontelement" ) {
+ push @fontelement,$entry;
+ } elsif ( "$2" eq "package" ) {
+ push @file,$entry;
+ } elsif ( "$2" eq "length" ) {
+ push @length,$entry;
+ } else {
+ print STDERR "Unknown type $2!\n";
+ }
+ }
+ }
+ }
+ }
+ }
+ close AUX;
+}
+
+sub process {
+ my $group=shift;
+ my $prefix=shift;
+ my $arrayref=shift;
+ my @entries=sort { $a cmp $b } @$arrayref;
+ my $entry="";
+ my $lastpage="";
+ my $lastlink="";
+ my $pageprefix="";
+ if ( @entries > 0 ) {
+ print "<h2><a name=\"$group\">$titles{$group}</a></h2>\n";
+ print "<ul>\n";
+ map {
+ $_ =~ /^([^.]+)\.([^.]+)\.([^.]+)\.([^.]+)$/;
+ if ( $entry ne $1 ) {
+ print "</li>\n" if ( $entry ne "" );
+ $entry=$1;
+ $lastpage="";
+ $lastlink="";
+ $pageprefix="";
+ print "<li><a name=\"$4.$entry\"></a><a href=\"\#$4.$entry\">$prefix$entry</a> --&gt; ";
+ }
+ if ( ( $lastlink ne "$3.$4.$1" ) || ( $lastpage ne "$2" ) ) {
+ print "$pageprefix<a href=\"$baselink\#desc:$3.$4.$1\">$2</a>";
+ $lastlink="$3.$4.$1";
+ $lastpage="$2";
+ $pageprefix=", ";
+ }
+ } @entries;
+ print "</li>\n" if ( $entry ne "" );
+ print "</ul>\n";
+ }
+}
+
+print $htmlhead;
+
+print "<ul>\n";
+print "<li><a href=\"#option\">$titles{option}</a></li>" if ( @option );
+print "<li><a href=\"#macro\">$titles{macro}</a></li>" if ( @macro );
+print "<li><a href=\"#environment\">$titles{environment}</a></li>" if ( @environment );
+print "<li><a href=\"#length\">$titles{length}</a></li>" if ( @length );
+print "<li><a href=\"#plength\">$titles{plength}</a></li>" if ( @plength );
+print "<li><a href=\"#variable\">$titles{variable}</a></li>" if ( @variable );
+print "<li><a href=\"#pagestyle\">$titles{pagestyle}</a></li>" if ( @pagestyle );
+print "<li><a href=\"#counter\">$titles{counter}</a></li>" if ( @counter );
+print "<li><a href=\"#floatstyle\">$titles{floatstyle}</a></li>" if ( @floatstyle );
+#print "<li><a href=\"#fontelement\">$titles{fontelement}</a></li>" if ( @fontelement );
+#print "<li><a href=\"#file\">$titles{file}</a></li>" if ( @fontelement );
+print "</ul>\n";
+
+process "option","",\@option;
+process "macro","\\",\@macro;
+process "environment","",\@environment;
+process "length","",\@length;
+process "plength","",\@plength;
+process "variable","",\@variable;
+process "pagestyle","",\@pagestyle;
+process "counter","",\@counter;
+process "floatstyle","",\@floatstyle;
+#process "fontelement","",\@fontelement;
+#process "file","",\@file;
+print $htmlend;
diff --git a/macros/latex/contrib/koma-script/source-doc/bin/genindex.pl b/macros/latex/contrib/koma-script/source-doc/bin/genindex.pl
new file mode 100755
index 0000000000..879d259e35
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/bin/genindex.pl
@@ -0,0 +1,204 @@
+#! /usr/bin/perl -w
+eval 'exec perl -S $0 ${1+"$@"}'
+ if 0; #$running_under_some_shell
+
+# ======================================================================
+# genindex.pl
+# Copyright (c) Markus Kohm, 2002-2006
+#
+# 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.
+# ----------------------------------------------------------------------
+# genindex.pl
+# Copyright (c) Markus Kohm, 2002-2006
+#
+# 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.
+# ======================================================================
+# This perl scripts splits the index of scrguide or scrguien into
+# several files, each with one index section.
+#
+# Usage: genindex.pl <ind-file>
+#
+# If <ind-file> has no extension ``.ind'', this extension will be added.
+# ----------------------------------------------------------------------
+# Dieses perl Script spaltet den Index des scrguide in mehrere getrennte
+# Dateien auf, von denen jede jeweils einen Index-Abschnitt enthält.
+#
+# Verwendung: genindex.pl <ind-Datei>
+#
+# Wenn die <ind-Datei> ohne Endung ".ind" angegeben wird, so wird diese
+# Endung automatisch angehängt.
+# ======================================================================
+
+use strict;
+use Fcntl;
+
+my $indexinput = $ARGV[0];
+my $indexbase;
+my $line;
+my $entry = "";
+my %indfile;
+
+$indexinput = "$indexinput.ind" if ( ! ( $indexinput =~ /^.*\.ind\z/ ) );
+$indexbase = $1 if $indexinput =~ /^(.*)\.ind/;
+
+print "Generate multiindex for $indexinput\n";
+
+# pass 1: search for and open destination index files
+open (IDX, "<$indexinput") ||
+ die "Cannot open $indexinput for reading\n";
+print "Search for index:\n";
+while ( <IDX> ) {
+ if ( /\\UseIndex *\{([^\}]*)\}/ ) {
+ my $file;
+ if ( !$indfile{"$1"} ) {
+ print " Open new index $indexbase-$1.ind\n";
+ open ( $file, ">$indexbase-$1.ind" ) ||
+ die "Cannot open $indexbase-$1.ind for writing\n";
+ $indfile{"$1"} = $file;
+ }
+ }
+}
+# we must have a general index
+if ( !$indfile{"gen"} ) {
+ print " Open new index $indexbase-gen.ind\n" ;
+ open ( $indfile{"gen"}, ">$indexbase-gen.ind" ) ||
+ die "Cannot open $indexbase-gen.ind for writing\n";
+}
+
+# pass 2: copy to destination index files
+seek (IDX, 0, 0) ||
+ die "Cannot rewind $indexinput\n";
+print "Copy entries:\n";
+# step 1: copy to every index file until first \indexsectione
+while ( defined( ( $line = <IDX> ) )
+ && ( ! ( $line =~ /^( *\\indexsection *\{)/ ) ) ) {
+ printtoallind( "$line" );
+ $line = "";
+}
+# copy also \indexsection-line
+printtoallind( "$line" ) if ( $line );
+
+# step 2: read complete \indexsection, \indexspace, \item, \subitem or
+# \subsubitem and process it (= copy it to destination index files)
+while ( $line = <IDX> ) {
+ if ( $line =~ /^ *((\\indexsection|\\end) *\{|\\indexspace)/ ) {
+ processentry( "$entry" );
+ $entry = "";
+ printtoallind( "$line" );
+ } elsif ( $line =~ /^ *\\(sub(sub)?)?item +/ ) {
+ processentry( "$entry" );
+ $entry = $line;
+ } else {
+ $entry = "$entry$line";
+ }
+}
+
+close (IDX);
+closeallind ();
+
+# post optimization of all destination index files
+print "Optimize every index:\n";
+optimizeallind ();
+
+exit;
+
+# close all destination index files
+sub closeallind {
+ my $name;
+ my $file;
+ while (($name,$file) = each %indfile) {
+ print " Close $indexbase-$name.ind\n" ;
+ close ($file);
+ $indfile{"$name"}=0;
+ }
+}
+
+# optimize all destination index files
+sub optimizeallind {
+ my $name;
+ my $file;
+ while (($name,$file) = each %indfile) {
+ print " $indexbase-$name.ind\n";
+ optimizeind( "$name" );
+ }
+}
+
+# print arg 1 to all destination index files
+sub printtoallind {
+ my $line = shift;
+ my $name;
+ my $file;
+ while (($name,$file) = each %indfile) {
+ print ($file $line);
+ }
+}
+
+# process an index entry (copy it to valid destination index files)
+sub processentry {
+ my $line = shift;
+ my $file = $indfile{"gen"};
+ if ( $line =~ /\\UseIndex *\{([^\}]*)\} *(.*)/ ) {
+ $file = $indfile{"$1"};
+ print ($file $line);
+ } else {
+ print ($file $line);
+ }
+}
+
+# optimize an index files (remove \indexsection without \item)
+sub optimizeind {
+ my $idx = shift;
+ my $interstuff = "";
+ my $line;
+
+ open (IN, "<$indexbase-$idx.ind" ) ||
+ die "Cannot open $indexbase-$idx.ind for reading";
+ open (OUT, ">$indexbase-$idx.new" ) ||
+ die "Cannot open $indexbase-$idx.new for writing";
+
+ while ( $line=<IN> ) {
+ if ( $line =~ /^ *\\indexspace/ ) {
+ $interstuff = "\n$line";
+ } elsif ( ( $line =~ /^ *\\indexsection *\{/ ) ||
+ ( $line =~ /^$/ ) ) {
+ $interstuff = "$interstuff$line";
+ } else {
+ print (OUT $interstuff) if ( !( $interstuff =~ /^$/ )
+ && !( $line =~ /^ *\\end\{theindex\}/ ) );
+ $interstuff = "";
+ print (OUT $line);
+ }
+ }
+
+ close (OUT);
+ close (IN);
+ unlink "$indexbase-$idx.ind" ||
+ die "Cannot delete $indexbase-$idx.ind";
+ rename "$indexbase-$idx.new", "$indexbase-$idx.ind" ||
+ die "Cannot rename $indexbase-$idx.new to §indexbase-$idx.ind";
+}
diff --git a/macros/latex/contrib/koma-script/source-doc/english/Makefile b/macros/latex/contrib/koma-script/source-doc/english/Makefile
new file mode 100644
index 0000000000..b418a621f7
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/Makefile
@@ -0,0 +1,55 @@
+# ======================================================================
+# Makefile
+# Copyright (c) Markus Kohm, 2002-2015
+#
+# 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.
+# ----------------------------------------------------------------------
+# Makefile
+# Copyright (c) Markus Kohm, 2002-2015
+#
+# 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.
+# ======================================================================
+
+# ----------------------------------------------------------------------
+# Directory with basics
+BASEDIR ?= $(PWD)/../../
+DOCDIR = $(BASEDIR)doc/
+# language
+LANGUAGE = english
+LANGUAGESHORTCUT = en
+LANGUAGELONG = english
+
+include $(DOCDIR)Makefile.guide
+
+# ----------------------------------------------------------------------
+
+maintainclean_local: distclean_local
+ $(RM) guide.pdf $(GUIDENAME).pdf $(GUIDENAME).html
+ [ -L tocbasic.tex ] && $(RM) tocbasic.tex || true
+#
+# end of file `Makefile'
diff --git a/macros/latex/contrib/koma-script/source-doc/english/adrconvnote.tex b/macros/latex/contrib/koma-script/source-doc/english/adrconvnote.tex
new file mode 100644
index 0000000000..75b9b8f392
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/adrconvnote.tex
@@ -0,0 +1,99 @@
+% ======================================================================
+% adrconvnote.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% adrconvnote.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 adrconv of the KOMA-Script guide
+% Maintained by Jens-Uwe Morawski (with help from Markus Kohm)
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber adrconv in der KOMA-Script-Anleitung
+% Verwaltet von Jens-Uwe Morawski (mit Unterstuetzung von Markus Kohm)
+%
+% ======================================================================
+
+\KOMAProvidesFile{adrconvnote.tex}
+ [$Date: 2018-03-30 09:37:06 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (chapter: adrconv)]
+
+\translator{Jens-Uwe Morawski\and Gernot Hassenpflug\and Markus Kohm\and
+ Karl Hagen}
+
+% Date of the translated German file: 2018-01-29
+
+\chapter{Creating Address Files from an Address Database}%
+\labelbase{addrconv}%
+\Index{address>file}%
+\Index{address>database}%
+\IndexPackage{addrconv}
+
+In previous versions of \KOMAScript{}, the \Package{addrconv} package was an
+integral part of the \KOMAScript{} system. The main connection to
+\KOMAScript{} was that with the help of this package, it was possible to
+create address files compatible with the \KOMAScript{} letter class or with
+the \Package{scraddr} package from an address database in \BibTeX{} format.
+
+\begin{lstlisting}[morekeywords={@address}]
+ @address{HMUS,
+ name = {Carl McExample},
+ title = {Dr.},
+ city = {Anywhere},
+ zip = 01234,
+ country = {Great Britain},
+ street = {A long Road},
+ phone = {01234 / 5 67 89},
+ note = {always forget his birthday},
+ key = {HMUS},
+ }
+\end{lstlisting}
+
+From entries such as the one above, you can use \BibTeX{} and various
+{\BibTeX} styles to create address files. There are also some special \LaTeX{}
+files that make it possible to create various telephone and address lists from
+the address files.
+
+However, the \Package{addrconv} package was actually an independent package,
+including features beyond what is required for \KOMAScript{}. That is why
+\Package{addrconv} has not been included in \KOMAScript{} for some time. The
+\Package{adrconv} package, with a single \emph{d}, entirely replaces
+\Package{addrconv}. If it is not included in your \TeX{} distribution, you can
+download it from \cite{package:adrconv} and install it separately.
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/authorpart.tex b/macros/latex/contrib/koma-script/source-doc/english/authorpart.tex
new file mode 100644
index 0000000000..37b4d7bc8a
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/authorpart.tex
@@ -0,0 +1,80 @@
+% ======================================================================
+% authorpart.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% authorpart.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% First part: KOMA-Script for Authors
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Erster Teil: KOMA-Script fuer Autoren
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\ProvidesFile{authorpart.tex}[2012/04/02 Part KOMA-Script for Authors]
+\translator{Markus Kohm\and Krickette Murabayashi\and Karl Hagen}
+
+\setpartpreamble{%
+ \vspace*{2\baselineskip}%
+ \setlength{\parindent}{1em}%
+
+ \noindent This part provides information for writers of articles, reports,
+ books, and letters. The average user is probably less interested in how
+ things are implemented in \KOMAScript{} and what pitfalls exist. Also,
+ normal users aren't interested in obsolete options and instructions. They
+ want to know how to achieve things using current options and instructions,
+ and perhaps in some background information about typography.
+
+ The few passages in this part which contain extra information and
+ explanations that may be of less interest for the impatient reader are set
+ in a sans-serif typeface and can be skipped if desired. For those who are
+ interested in more information about the implementation, side-effects with
+ other packages, or obsolete options and instructions, please refer to
+ \autoref{part:forExperts} beginning on \autopageref{part:forExperts}. That
+ part of the \KOMAScript{} guide also describes all the features that were
+ created specially for authors of packages and classes.%
+}
+
+\part{\KOMAScript{} for Authors\label{part:forAuthors}}
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "guide.tex"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-compatibility.tex b/macros/latex/contrib/koma-script/source-doc/english/common-compatibility.tex
new file mode 100644
index 0000000000..bed043d8d3
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-compatibility.tex
@@ -0,0 +1,197 @@
+% ======================================================================
+% common-compatibility.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-compatibility.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-compatibility.tex}
+ [$Date: 2018-02-28 13:23:23 +0100 (Wed, 28 Feb 2018) $
+ KOMA-Script guide (common paragraphs)]
+\translator{Markus Kohm\and Krickette Murabayashi\and Karl Hagen}
+
+% Date of the translated German file: 2018-01-30
+
+\section{Compatibility with Earlier Versions of \KOMAScript}
+\seclabel{compatibilityOptions}
+\BeginIndexGroup
+\BeginIndex{}{Compatibility}
+
+\IfThisCommonFirstRun{}{%
+ The information in
+ \autoref{sec:\ThisCommonFirstLabelBase.compatibilityOptions} applies equally
+ to this chapter.
+ \IfThisCommonLabelBase{scrlttr2}{However, this feature has existed in
+ \Class{scrlttr2} since version~2.9t, whereas \Package{scrletter} does not
+ offer it. }{}%
+ So if you have already read and understood
+ \autoref{sec:\ThisCommonFirstLabelBase.compatibilityOptions} you can skip
+ ahead to \autopageref{sec:\ThisCommonLabelBase.compatibilityOptions.next},
+ \autopageref{sec:\ThisCommonLabelBase.compatibilityOptions.next}.%
+}
+
+\IfThisCommonLabelBaseOneOf{typearea,maincls,scrlttr2,scrextend}{%
+ Those who produce their documents from source code typically attach the
+ utmost importance to the fact that future \LaTeX{} runs will yield exactly
+ the same result. In some cases, however, improvements and bug fixes to the
+ \IfThisCommonLabelBaseOneOf{maincls,scrlttr2}{class}{package} will
+ result in changes of behaviour, especially to the layout. This, however,
+ may be undesirable.%
+}{%
+ % \IfThisCommonLabelBase{scrextend}{%
+ % In some cases, improvements and bug fixes to the package will result
+ % in changes of behaviour, especially to the layout. This, however,
+ % may be undesirable. Those who produce their documents from source code
+ % typically attach the utmost importance to the fact that future
+ % \LaTeX{} runs will yield exactly the same result.%
+ % }{%
+ \ThisCommonLabelBaseFailure
+ % \IfThisCommonLabelBase{scrlttr2}{%
+ % In some cases, improvements and bug fixes to the package will result
+ % in changes of behaviour, especially to the layout. This, however,
+ % may be undesirable.
+ % }{}%
+ % }%
+}%
+
+
+\begin{Declaration}
+ \OptionVName{version}{value}%
+ \OptionValue{version}{first}%
+ \OptionValue{version}{last}
+\end{Declaration}
+%\ChangedAt{v2.96a}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+%\ChangedAt{v2.9t}{\Class{scrlttr2}}%
+%\ChangedAt{v3.01b}{\Package{typearea}}%
+\IfThisCommonLabelBase{scrextend}{With \Package{scrextend}, you can}{Since
+ \IfThisCommonLabelBase{typearea}{%
+ Version~3.01b, \Package{typearea}\ChangedAt{v3.01b}{\Package{typearea}}}{%
+ \IfThisCommonLabelBase{maincls}{%
+ Version~2.96a, \KOMAScript{}\ChangedAt{v2.96a}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ Version~2.9t, \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}}%
+ \ChangedAt{v2.9t}{\Class{scrlttr2}}}{%
+ \InteralCommonFileUsageError}%
+ }%
+ }%
+\ has been able to }
+choose whether the source file should, as much as possible,
+continue to produce exactly the same result within a \LaTeX{} run or should
+be formatted according to the modifications of the latest version%
+\IfThisCommonLabelBaseOneOf{maincls,scrlttr2}{ of the class}{}. You
+can specify the version with which you want your file to be compatible by
+using the \Option{version} option. Compatibility with the oldest supported
+\KOMAScript{} version can be achieved with
+\OptionValue{version}{first}\important{\OptionValue{version}{first}} or
+\OptionValue{version}{2.9} or \OptionValue{version}{2.9t}. Setting
+\PName{value} to an unknown release number will result in a warning message
+and selects \OptionValue{version}{first} for safety.
+
+With \OptionValue{version}{last}\important{\OptionValue{version}{last}}%
+\textnote{default}, you can select the latest version. In this case, you give
+up backwards compatibility. If the option is used without a value,
+\PValue{last} is assumed. This\ChangedAt{v3.01a}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}\and
+ \Package{scrextend}} also corresponds to the default setting, as long as you
+do not use any deprecated options.
+
+\IfThisCommonLabelBase{scrextend}{% scrextend doesn't recognize obsolete options
+}{%
+ If\textnote{Attention!} you use a deprecated option of \KOMAScript~2,
+ \KOMAScript~3 will switch to \OptionValue{version}{first} automatically.
+ This will also result in a warning message that explains how to prevent
+ this switch. Alternatively, you can choose a different setting for
+ \Option{version} with the desired compatibility after the deprecated
+ option.%
+}
+
+Compatibility is primarily a question of line and page breaks (wrapping). If
+you choose compatibility with an older version, new options that do not affect
+wrapping are still available. The \Option{version} option does not affect any
+wrapping changes that are the result of fixing unambiguous errors.
+If\textnote{Hint!} you need unconditional wrapping compatibility even in the
+case of bugs, you should physically save the old \KOMAScript{} version you
+need together with your document.
+
+\IfThisCommonLabelBase{scrlttr2}{%
+ \begin{Example}
+ The example letters in this chapter should use all the features of the
+ latest version of \KOMAScript{}. For this, the we set the compatibility
+ correspondingly when loading the class:%
+ \lstinputcode[xleftmargin=1em,lastline=1]{letter-0.tex}%
+ In this case the symbolic value \PValue{last} has been used to select the
+ latest version.%
+ \iftrue% Umbruchkorrektur
+ Here, the latest version was simply chosen with the symbolic value
+ \PValue{last}.%
+ \else%
+ In order not to have to specify a new version number for each new version,
+ the symbolic value \PValue{last} was chosen here.%
+ \fi
+ \end{Example}}{}
+
+Note\textnote{Attention!} that you cannot change the \Option{version} option
+after loading the %
+\IfThisCommonLabelBaseOneOf{maincls,scrlttr2}{class}{%
+ \IfThisCommonLabelBase{typearea}{\Package{typearea}}{%
+ \IfThisCommonLabelBase{scrextend}{\Package{scrextend}}{%
+ \InternalCommonFileUsageError }%
+ }%
+\ package}. Setting this option with
+\DescRef{\ThisCommonLabelBase.cmd.KOMAoptions} or
+\DescRef{\ThisCommonLabelBase.cmd.KOMAoption} will
+therefore cause an error.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\phantomsection
+\label{sec:\ThisCommonLabelBase.compatibilityOptions.end}
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-dictum.tex b/macros/latex/contrib/koma-script/source-doc/english/common-dictum.tex
new file mode 100644
index 0000000000..5dff550ac7
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-dictum.tex
@@ -0,0 +1,260 @@
+% ======================================================================
+% common-dictum.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-dictum.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-dictum.tex}
+ [$Date: 2018-03-30 09:37:06 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (common paragraphs)]
+\translator{Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi\and
+ Karl Hagen}
+
+% Date of the translated German file: 2018-01-29
+
+\section{Dicta}
+\seclabel{dictum}%
+\BeginIndexGroup
+\BeginIndex{}{saying}%
+\BeginIndex{}{dictum}%
+\BeginIndex{}{epigraph}%
+
+\IfThisCommonFirstRun{}{%
+ The information in \autoref{sec:\ThisCommonFirstLabelBase.dictum} applies
+ equally to this chapter. %
+ \IfThisCommonLabelBase{scrextend}{%
+ However, \Package{scrextend} does not support the commands
+ \DescRef{maincls.cmd.setchapterpreamble} and
+ \DescRef{maincls.cmd.setpartpreamble}.
+ \iftrue% Umbruchvariante
+ Whether the class you are using offers an equivalent instruction
+ can be found in the documentation for the respective class .%
+ \fi%
+ }{}%
+ So if you have already read and understood
+ \autoref{sec:\ThisCommonFirstLabelBase.dictum}, you can skip ahead to
+ \autoref{sec:\ThisCommonLabelBase.dictum.next},
+ \autopageref{sec:\ThisCommonLabelBase.dictum.next}.%
+}{}%
+
+\IfThisCommonLabelBase{scrextend}{% Umbruchkorrekturvarianten
+ A common element in a document is an epigraph or quotation that is set above
+ or below a chapter or section heading, typically right-justified. The
+ epigraph and its source are usually specially formatted.%
+}{%
+ A common element in a document is an epigraph or quotation that is set above
+ or below a chapter or section heading, along with a reference to the source
+ and its own formatting.%
+} %
+\KOMAScript{} refers to such an epigraph as a \emph{dictum}.
+
+\begin{Declaration}
+ \Macro{dictum}\OParameter{author}\Parameter{text}%
+ \Macro{dictumwidth}%
+ \Macro{dictumauthorformat}\Parameter{author}%
+ \Macro{dictumrule}%
+ \Macro{raggeddictum}%
+ \Macro{raggeddictumtext}%
+ \Macro{raggeddictumauthor}
+\end{Declaration}%
+You can set such a saying with the help of the \Macro{dictum} command. %
+\IfThisCommonLabelBase{maincls}{%
+ This\textnote{Hint!} macro can be included in the mandatory argument of
+ either the \DescRef{maincls.cmd.setchapterpreamble} or the
+ \DescRef{maincls.cmd.setpartpreamble} command. However, this is not
+ obligatory.\par%
+}{}%
+The dictum, along with an optional \PName{author}, is inserted in a
+\Macro{parbox}\IndexCmd{parbox} (see \cite{latex:usrguide}) of width
+\Macro{dictumwidth}. However, \Macro{dictumwidth} is not a length which can be
+set with \Macro{setlength}. It is a macro that can be redefined using
+\Macro{renewcommand}. The default is \PValue{0.3333\Length{textwidth}}, which
+is one third of the text width. The box itself is aligned with the command
+\Macro{raggeddictum}. The default is \Macro{raggedleft}\IndexCmd{raggedleft},
+that is, right justified. \Macro{raggeddictum} can be redefined
+with \IfThisCommonLabelBase{scrextend}{% Umbruchoptimierung
+}{the help of }\Macro{renewcommand}.
+
+You can align the \PName{dictum} within the box using
+\Macro{raggeddictumtext}\important{\Macro{raggeddictumtext}}.
+The default is \Macro{raggedright}\IndexCmd{raggedright}, that is, left
+justified. You can also redefine this macro with \Macro{renewcommand}.%
+\BeginIndexGroup
+\BeginIndex{FontElement}{dictum}\LabelFontElement{dictum}%
+\LabelFontElement{dictumtext}%
+The output uses the default font setting for the element
+\FontElement{dictum}\important{\FontElement{dictum}}, which can be changed
+with the commands \DescRef{\ThisCommonLabelBase.cmd.setkomafont} and
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (see
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}). Default settings are
+listed in \autoref{tab:maincls.dictumfont}%
+\IfThisCommonFirstRun{.%
+ \begin{table}
+% \centering%
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}{Default settings for the elements of a dictum}
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Element & Default \\
+ \midrule
+ \DescRef{\LabelBase.fontelement.dictum} &
+ \Macro{normalfont}\Macro{normalcolor}\Macro{sffamily}\Macro{small}\\
+ \DescRef{\LabelBase.fontelement.dictumauthor} &
+ \Macro{itshape}\\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:\ThisCommonLabelBase.dictumfont}
+ \end{table}
+}{%
+ , \autopageref{tab:\ThisCommonFirstLabelBase.dictumfont}.%
+}
+\EndIndexGroup
+
+If an \PName{author} is defined, it is separated from the \PName{dictum} by
+a horizontal rule spanning the full width of the \Macro{parbox}. This%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.10}{\Package{scrextend}}%
+ }{\InternalCommonFileUsageError}%
+} %
+rule is defined in \Macro{dictumrule}\important{\Macro{dictumrule}} as a
+vertical object with
+\begin{lstcode}
+ \newcommand*{\dictumrule}{\vskip-1ex\hrulefill\par}
+\end{lstcode}
+
+The \Macro{raggeddictumauthor}\important{\Macro{raggeddictumauthor}} command
+defines the alignment for the rule and the \PName{author}. The default is
+\Macro{raggedleft}. This command can also be redefined using
+\Macro{renewcommand}. The format is defined with
+\Macro{dictumauthorformat}\important{\Macro{dictumauthorformat}}. This macro
+expects the \PName{author} text as its argument. By default
+\Macro{dictumauthorformat} is defined as
+\begin{lstcode}
+ \newcommand*{\dictumauthorformat}[1]{(#1)}
+\end{lstcode}
+Thus the \PName{author} is set enclosed in rounded parentheses.
+\BeginIndexGroup
+\BeginIndex{FontElement}{dictumauthor}\LabelFontElement{dictumauthor}%
+For the \FontElement{dictumauthor}\important{\FontElement{dictumauthor}}
+element, you can define a different font than that used for the
+\DescRef{\LabelBase.fontelement.dictum} element. The default settings are
+listed in \autoref{tab:maincls.dictumfont}. Changes can be made using the
+\DescRef{\ThisCommonLabelBase.cmd.setkomafont} and
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}).%
+\EndIndexGroup
+
+\IfThisCommonLabelBase{maincls}{%
+ If you use \Macro{dictum} within the
+ \DescRef{maincls.cmd.setchapterpreamble} or
+ \DescRef{maincls.cmd.setpartpreamble} macro, you must ensure that
+ the horizontal positioning is always done with
+ \Macro{raggeddictum}. Therefore, the optional argument for horizontal
+ positioning which is implemented for these two commands has no effect.
+ \Length{textwidth} is not the width of the whole text body but the
+ current text width. If \Macro{dictumwidth} is set to
+ \PValue{.5\Length{textwidth}} and \DescRef{maincls.cmd.setchapterpreamble}
+ has an optional width of \PValue{.5\Length{textwidth}} too, you will get a
+ box with a width one quarter of the text width. Therefore, if you use
+ \Macro{dictum} you should refrain from setting the optional width for
+ \DescRef{maincls.cmd.setchapterpreamble} or
+ \DescRef{maincls.cmd.setpartpreamble}.
+
+ If\textnote{Hint!} you have more than one dictum, one under another, you
+ should separate them by an additional vertical space, which is easily
+ accomplished using the \Macro{bigskip}\IndexCmd{bigskip} command.%
+ \iftrue%
+}{\csname iffalse\endcsname}
+
+ \begin{Example}
+ You are writing a chapter about modern marriage, and you want to place a
+ dictum in the preamble to the chapter heading. You write:
+\begin{lstcode}
+ \setchapterpreamble[u]{%
+ \dictum[Schiller]{So pause ye who would link your fates~\dots}}
+ \chapter{Modern Marriage}
+\end{lstcode}
+ The output would look as follows:
+ \begin{ShowOutput}
+ {\usekomafont{disposition}\usekomafont{chapter}%
+ 17\enskip Modern Marriage\par} \vspace{\baselineskip}
+ \dictum[Schiller]{So pause ye who would link
+ your fates~\dots}
+ \end{ShowOutput}
+
+ If you want the dictum to span only a quarter of the text width
+ rather than a third, you can redefine \Macro{dictumwidth} this way:
+\begin{lstcode}
+ \renewcommand*{\dictumwidth}{.25\textwidth}
+\end{lstcode}
+\end{Example}
+
+\IfThisCommonLabelBase{maincls}{}{% Umbruchkorrekturtext
+ At this point, note the \Package{ragged2e}\important{\Package{ragged2e}}%
+ \IndexPackage{ragged2e} package, with which you can produce unjustified text
+ that uses hyphenation (see \cite{package:ragged2e}).%
+}%
+\fi
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-draftmode.tex b/macros/latex/contrib/koma-script/source-doc/english/common-draftmode.tex
new file mode 100644
index 0000000000..383c9236c5
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-draftmode.tex
@@ -0,0 +1,129 @@
+% ======================================================================
+% common-draftmode.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-draftmode.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-draftmode.tex}
+ [$Date: 2018-02-28 13:23:23 +0100 (Wed, 28 Feb 2018) $
+ KOMA-Script guide (common paragraphs)]
+\translator{Markus Kohm\and Gernot Hassenpflug\and Krickette Murabayashi\and
+ Karl Hagen}
+
+% Date of the translated German file: 2018-01-30
+
+\section{Draft Mode}
+\seclabel{draft}%
+\BeginIndexGroup
+\BeginIndex{}{draft mode}%
+
+\IfThisCommonFirstRun{}{%
+ The information in \autoref{sec:\ThisCommonFirstLabelBase.draft} applies
+ equally to \IfThisCommonLabelBase{scrlttr2}{\Class{scrlttr2}%
+ \OnlyAt{\Class{scrlttr2}}}{this chapter}. So if you have already read
+ and understood \autoref{sec:\ThisCommonFirstLabelBase.draft}, you can skip
+ ahead to \autoref{sec:\ThisCommonLabelBase.draft.next} on
+ \autopageref{sec:\ThisCommonLabelBase.draft.next}.%
+ \IfThisCommonLabelBase{scrlttr2}{ The \Package{scrletter} package does not
+ provide a draft mode itself but relies upon the class you use.}{}%
+}
+
+Many classes and packages provide a draft mode in addition to the normal
+typesetting mode. The differences between these two are as diverse as
+the classes and packages that offer this distinction.%
+\IfThisCommonLabelBase{scrextend}{% Umbruchkorrekturtext
+ \ The draft mode of some packages also results in changes to the output
+ that affect the document's layout. This is not the case with
+ \Package{scrextend}.%
+}{}
+
+\begin{Declaration}
+ \OptionVName{draft}{simple switch}
+ \OptionVName{overfullrule}{simple switch}
+\end{Declaration}%
+The \Option{draft}\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrartcl}\and
+ \Class{scrreprt}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}\OnlyAt{\Class{scrlttr2}}%
+ }{}%
+} option distinguishes between documents being drafted and finished
+documents\Index{final version}. The \PName{simple switch} can be one of the
+standard values for simple switches from \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch}. If you activate this
+option\important{\OptionValue{draft}{true}}, small black boxes will be output
+at the end of overly long lines. These boxes make it easier for the untrained
+eye to locate the paragraphs that require manual post-processing. By contrast,
+the default, \OptionValue{draft}{false}, shows no such boxes. Incidentally,
+such lines often disappear when you use the
+\Package{microtype}\IndexPackage{microtype}\important{\Package{microtype}}
+package \cite{package:microtype}.
+
+Since\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.25}{\Class{scrbook}\and \Class{scrartcl}\and
+ \Class{scrreprt}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.25}{\Class{scrlttr2}}%
+ }{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.25}{\Package{scrextend}}%
+ }{}%
+ }%
+} the \Option{draft} option can lead to all sorts of unwanted effects with
+various packages, \KOMAScript{} allows you to control this marking of overly
+long lines separately with the
+\Option{overfullrule}\important{\OptionValue{overfullrule}{true}} option. If
+this option is enabled, the marker is again displayed.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-fontsize.tex b/macros/latex/contrib/koma-script/source-doc/english/common-fontsize.tex
new file mode 100644
index 0000000000..843f9482f2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-fontsize.tex
@@ -0,0 +1,188 @@
+% ======================================================================
+% common-fontsize.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-fontsize.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-fontsize.tex}
+ [$Date: 2018-03-30 09:37:06 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (common paragraphs: fontsize)]
+\translator{Markus Kohm\and Krickette Murabayashi\and Karl Hagen}
+
+% Date of the translated German file: 2017-12-13
+
+\section{Choosing the Document Font Size}
+\seclabel{fontOptions}%
+\BeginIndexGroup
+\BeginIndex{}{font>size}%
+
+\IfThisCommonFirstRun{%
+ The main font and its size are central elements in the design of a document.
+ As stated in \autoref{cha:typearea}, the division of the page into the text
+ area and the margins fundamentally depends on them. The main font is the one
+ that is used for most of the text in a document. All variations, whether in
+ shape, thickness, slant, or size, are related to the main font.%
+}{%
+ The information in \autoref{sec:\ThisCommonFirstLabelBase.fontOptions}
+ applies equally to
+ \IfThisCommonLabelBase{scrlttr2}{\Class{scrlttr2}\OnlyAt{scrlttr2}}%
+ {this chapter}. \IfThisCommonLabelBase{scrlttr2}{By contrast, the
+ \Package{scrletter} package by itself does not offer font-size selection
+ but depends completely on the class you use.}{} So if you have already
+ read and understood \autoref{sec:\ThisCommonFirstLabelBase.fontOptions}, you
+ can \IfThisCommonLabelBase{scrlttr2}{continue to
+ \autopageref{sec:\ThisCommonLabelBase.fontOptions.end} at the end of this
+ section. If you use \Package{scrletter}, you can }{}%
+ skip directly to \autoref{sec:\ThisCommonLabelBase.fontOptions.next},
+ \autopageref{sec:\ThisCommonLabelBase.fontOptions.next}.%
+}
+
+\begin{Declaration}
+ \OptionVName{fontsize}{size}
+\end{Declaration}
+While\IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{%
+ \textnote{\KOMAScript{} vs. standard classes}} the standard classes support
+only a very limited number of font sizes,
+\IfThisCommonLabelBase{scrlttr2}{\Class{scrlttr2}}{\KOMAScript} provides the
+ability to specify any \PName{size} for the main font. You can also use any
+known \TeX unit as a unit for the \PName{size}. If the \PName{size} is
+specified without a unit, it is assumed to be \PValue{pt}.\iffree{}{ The exact
+ procedure for setting the font size is documented for experts and interested
+ users in \autoref{sec:maincls-experts.addInfos},
+ \DescPageRef{maincls-experts.option.fontsize}.}
+
+If you set the option within the document, the main font size and the
+dependent font sizes of the commands \Macro{tiny}, \Macro{scriptsize},
+\Macro{footnotesize}, \Macro{small}, \Macro{normalsize}, \Macro{large},
+\Macro{Large}, \Macro{LARGE}, \Macro{huge} and \Macro{Huge} are changed. This
+can be useful, for example, if you want %
+\IfThisCommonLabelBase{scrlttr2}{another letter }{the appendix }%
+to be set in a smaller font size.
+
+Note\textnote{Attention!} that using this option after
+\IfThisCommonLabelBase{scrextend}{potentially loading
+ \hyperref[cha:typearea]{\Package{typearea}}\IndexPackage{typearea}%
+ \important{\hyperref[cha:typearea]{\Package{typearea}}}}{loading the class}
+does not automatically recalculate the type area and margins (see
+\DescRef{typearea.cmd.recalctypearea}\IndexCmd{recalctypearea},
+\autoref{sec:typearea.typearea},
+\DescPageRef{typearea.cmd.recalctypearea}). However, if this recalculation is
+performed, it will be based on the current main font size. The effects of
+changing the main font size upon other loaded packages or the class used
+depends on these packages and on the class. \IfThisCommonLabelBase{maincls}{%
+ This means that you can encounter errors which are not the fault of
+ \KOMAScript, and even the \KOMAScript{} classes themselves do not
+ recalculate all lengths if the main font size changes after loading the
+ class.%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ You can encounter errors which are not the fault of \KOMAScript{}, and
+ further, the \Class{scrlttr2} class itself does not recalculate all
+ lengths if the main font size changes after loading the class.%
+ }{%
+ This means that you can encounter errors which are not the fault of
+ \KOMAScript{}.%
+ }%
+}%
+
+This\textnote{Attention!} option should by no means be misinterpreted as a
+substitute for \Macro{fontsize} (see \cite{latex:fntguide}). Also, you should
+not use it in place of one of the font size commands that are relative to the
+main font, from \Macro{tiny} to \Macro{Huge}.
+\IfThisCommonLabelBase{scrlttr2}{%
+ For \Class{scrlttr2} the default is \OptionValue{fontsize}{12pt}.
+
+ \begin{Example}
+ \phantomsection\label{sec:\ThisCommonLabelBase.fontOptions.end}%
+ Suppose the organization in the sample letter is the \emph{``Friends of
+ Noxious Font Sizes''}, for which reason it should be set in 14\Unit{pt}
+ instead of 12\Unit{pt}. You can achieve this by making a small change to
+ the first line:%
+ \lstinputcode[xleftmargin=1em]{letter-6}%
+ Alternatively, the option could be set as an optional argument to
+ \DescRef{\LabelBase.env.letter}:
+ \lstinputcode[xleftmargin=1em]{letter-5}%
+ Since the text area is not recalculated in this late change of the font
+ size, the two results differ in \autoref{fig:scrlttr2.letter-5-6}.
+ \begin{figure}
+ \centering
+ \frame{\includegraphics[width=.4\textwidth]{letter-5}}\quad
+ \frame{\includegraphics[width=.4\textwidth]{letter-6}}
+ \caption[{Example: letter with address, salutation, text, closing phrase,
+ postscript, enclosures, distribution list, and noxiously large font
+ size}]
+ {result of a short letter with recipient, opening, text, closing,
+ postscript, enclosures, distribution list, and a noxiously large font
+ (the date is set by default): in the left-hand version, the font size
+ has been defined by the optional argument of
+ \DescRef{\LabelBase.env.letter}; in the right-hand one, the optional
+ argument of \DescRef{\LabelBase.cmd.documentclass} has been used}
+ \label{fig:scrlttr2.letter-5-6}
+ \end{figure}
+ \end{Example}
+}{%
+ \IfThisCommonLabelBase{maincls}{%
+ \par
+ \phantomsection\label{sec:\ThisCommonLabelBase.fontOptions.end}%
+ The default for \Class{scrbook}, \Class{scrreprt}, and \Class{scrartcl} is
+ \OptionValue{fontsize}{11pt}.\textnote{\KOMAScript{} vs. standard classes}
+ In contrast, the default size in the standard classes is \Option{10pt}.
+ You may need to account for this difference if you switch from a standard
+ class to a \KOMAScript{} class\iffree{}{ or when using the
+ \DescRef{maincls-experts.option.emulatestandardclasses}%
+ \IndexOption{emulatestandardclasses} option}.%
+ }{}%
+}%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-footnotes.tex b/macros/latex/contrib/koma-script/source-doc/english/common-footnotes.tex
new file mode 100644
index 0000000000..c08b203b29
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-footnotes.tex
@@ -0,0 +1,626 @@
+% ======================================================================
+% common-footnotes.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-footnotes.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-footnotes.tex}
+ [$Date: 2018-03-30 09:37:06 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (common paragraphs: Footnotes)]
+\translator{Markus Kohm\and Krickette Murabayashi\and Karl Hagen}
+
+% Date of the translated German file: 2018-01-29
+
+\section{Footnotes}
+\seclabel{footnotes}%
+\BeginIndexGroup
+\BeginIndex{}{footnotes}%
+
+\IfThisCommonFirstRun{}{%
+ The information in \autoref{sec:\ThisCommonFirstLabelBase.footnotes} applies
+ equally to this chapter. So if you have already read and understood
+ \autoref{sec:\ThisCommonFirstLabelBase.footnotes}, you can skip ahead to
+ \autopageref{sec:\ThisCommonLabelBase.footnotes.next},
+ \autopageref{sec:\ThisCommonLabelBase.footnotes.next}.%
+ \IfThisCommonLabelBase{scrlttr2}{ %
+ If you do not use a \KOMAScript{} class, \Package{scrletter}%
+ \OnlyAt{\Package{scrletter}} relies on the
+ \hyperref[cha:scrextend]{\Package{scrextend}}\IndexPackage{scrextend}%
+ \important{\hyperref[cha:scrextend]{\Package{scrextend}}} package.
+ Therefore, see also \autoref{sec:scrextend.footnotes},
+ \autopageref{sec:scrextend.footnotes} when using \Package{scrletter}.%
+ \iffalse% Umbruchkorrekturtext
+ \ Note in particular that in this case some typical \KOMAScript{}
+ extensions are not active by default\textnote{default}. Instead, the
+ footnotes make use of the class used, or the \LaTeX{} kernel.%
+ \fi%
+ }{}%
+}
+
+\IfThisCommonLabelBase{maincls}{%
+ Unlike\textnote{\KOMAScript{} vs. standard classes} the standard classes,
+ \KOMAScript{} offers the ability to configure the format of the footnote
+ block.%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ You can find the basic commands to set footnotes in any introduction to
+ \LaTeX, for example \cite{lshort}. \KOMAScript{}%
+ \textnote{\KOMAScript{} vs. standard classes} provides additional features
+ to change the format of the footnote block. %
+ \iffalse % Umbruchoptimierung
+
+ Whether footnotes should be allowed for letters depends very much on the
+ type of letter and its layout. For example, you should not allow
+ footnotes to overlap visually with the letterhead footer or be confused
+ with the courtesy-copy list. Doing so is the responsibility of the
+ user.%
+
+ Since footnotes are rarely used in letters, examples in this section have
+ been omitted. If you need examples, you can find them in
+ \autoref{sec:\ThisCommonFirstLabelBase.footnotes},
+ \autopageref{sec:\ThisCommonFirstLabelBase.footnotes}.%
+ \fi%
+ }{%
+ \IfThisCommonLabelBase{scrextend}{%
+ The footnote capabilities of the \KOMAScript{} classes are also
+ provided by \Package{scrextend}. By default, the formatting of
+ footnotes is left to the class used. This changes as soon as you
+ issue the \DescRef{\ThisCommonLabelBase.cmd.deffootnote} command,
+ which is explained in detail on
+ \DescPageRef{\ThisCommonLabelBase.cmd.deffootnote}.
+
+ The options for adjusting the dividing line above footnotes, however,
+ are not provided by \Package{scrextend}.%
+ }{\InternalCommonFileUsageError}%
+ }%
+}%
+
+\begin{Declaration}
+ \OptionVName{footnotes}{setting}
+ \Macro{multfootsep}
+\end{Declaration}
+\IfThisCommonLabelBase{scrextend}{Many classes mark footnotes }{%
+ Footnotes %
+ \IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ }{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}%
+ }{}%
+ }%
+ are marked %
+}%
+by default in the text with a small superscript number. If several footnotes
+appear in succession at the same point, it gives the impression that there is
+one footnote with a large number rather than multiple footnotes (e.\,g.
+footnote 12 instead of footnotes 1 and 2).
+With\important{\OptionValue{footnotes}{multiple}}
+\OptionValue{footnotes}{multiple}\IndexOption{footnotes=~multiple}, footnotes
+that follow each other directly are separated with a delimiter instead. The
+default delimiter in \Macro{multfootsep}\important{\Macro{multfootsep}} is
+defined as a comma without a space:
+\begin{lstcode}
+ \newcommand*{\multfootsep}{,}
+\end{lstcode}
+This can be redefined.
+
+The whole mechanism is compatible with the
+\Package{footmisc}\IndexPackage{footmisc}\important{\Package{footmisc}}
+package, version~5.3d to 5.5b (see \cite{package:footmisc}). It affects
+footnote markers placed using
+\DescRef{\ThisCommonLabelBase.cmd.footnote}\IndexCmd{footnote}, as well as
+those placed directly with
+\DescRef{\ThisCommonLabelBase.cmd.footnotemark}\IndexCmd{footnotemark}.
+
+You can switch back to the default
+\OptionValue{footnotes}{nomultiple} at any time using the
+\DescRef{\ThisCommonLabelBase.cmd.KOMAoptions} or
+\DescRef{\ThisCommonLabelBase.cmd.KOMAoption} command. However, if you
+encounter any problems using another package that alters the footnotes, you
+should not use this option, nor should you change the \PName{setting} anywhere
+inside the document.
+
+A summary of the available \PName{setting} values of \Option{footnotes} can
+be found in \autoref{tab:\ThisCommonFirstLabelBase.footnotes}%
+\IfThisCommonFirstRun{%
+ .
+ \begin{table}
+ \caption[{Available values for the \Option{footnotes} option}]
+ {Available values for the \Option{footnotes} option to configure footnotes}
+ \label{tab:\ThisCommonLabelBase.footnotes}
+ \begin{desctabular}
+ \pventry{multiple}{%
+ Consecutive footnote marks will be separated by
+ \DescRef{\ThisCommonLabelBase.cmd.multfootsep}\IndexCmd{multfootsep}.%
+ \IndexOption{footnotes~=\textKValue{multiple}}}%
+ \pventry{nomultiple}{%
+ Consecutive footnote marks will be handled like single footnotes
+ and not separated from each other.%
+ \IndexOption{footnotes~=\textKValue{nomultiple}}}%
+ \end{desctabular}
+ \end{table}%
+}{,
+ \autopageref{tab:\ThisCommonFirstLabelBase.footnotes}.%
+}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{footnote}\OParameter{number}\Parameter{text}%
+ \Macro{footnotemark}\OParameter{number}%
+ \Macro{footnotetext}\OParameter{number}\Parameter{text}%
+ \Macro{multiplefootnoteseparator}%
+\end{Declaration}%
+Footnotes in \KOMAScript{} are produced, as they are in the standard classes,
+with the \Macro{footnote} command, or alternatively the pair of commands
+\Macro{footnotemark} and \Macro{footnotetext}. As in the standard classes,
+it is possible for a page break to occur within a footnote. Normally this
+happens if the footnote mark is placed so near the bottom of a page as to
+leave \LaTeX{} no choice but to move the footnote to the next page.
+Unlike\textnote{\KOMAScript{} vs. standard classes}
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}%
+ }{}%
+} %
+the standard classes, \KOMAScript{} can recognize and separate consecutive
+footnotes automatically.
+See\important{\DescRef{\ThisCommonLabelBase.option.footnotes}} the previously
+documented option \DescRef{\ThisCommonLabelBase.option.footnotes}.
+
+If instead you want to place this delimiter manually, you can do so by calling
+\Macro{multiplefootnoteseparator}. However, users should not redefine this
+command, as it contains not only the delimiter but also the delimiter's
+formatting, for example the font size selection and the superscript. The
+delimiter itself is stored in the previously described
+\DescRef{\ThisCommonLabelBase.cmd.multfootsep}%
+\important{\DescRef{\ThisCommonLabelBase.cmd.multfootsep}}%
+\IndexCmd{multfootsep} command.
+
+\IfThisCommonFirstRun{\iftrue}{%
+ You can find examples and additional hints in
+ \autoref{sec:\ThisCommonFirstLabelBase.footnotes} from
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.footnote}.%
+ \csname iffalse\endcsname }%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.footnote}%
+ Suppose you want to put two footnotes after a single word. First you try
+\begin{lstcode}
+ Word\footnote{1st footnote}\footnote{2nd footnote}
+\end{lstcode}
+ Let's assume that the footnotes are numbered 1 and 2. Since the two
+ footnote numbers follow each other directly, it creates the impression
+ that the word has only one footnote numbered 12. You can change this
+ behaviour by using
+\begin{lstcode}
+ \KOMAoptions{footnotes=multiple}
+\end{lstcode}
+ to enable the automatic recognition of footnote sequences. Alternatively,
+ you can use
+\begin{lstcode}
+ word\footnote{Footnote 1}%
+ \multiplefootnoteseparator
+ \footnote{Footnote 2}
+\end{lstcode}
+ This should give you the desired result even if automatic detection
+ fails or cannot be used for some reason.
+
+ Now suppose you also want the footnote numbers to be separated not just by
+ a comma, but by a comma and a space. In this case, write
+\begin{lstcode}
+ \renewcommand*{\multfootsep}{,\nobreakspace}
+\end{lstcode}
+ in the preamble of your document.
+ \Macro{nobreakspace}\IndexCmd{nobreakspace} was used here instead of a
+ normal space to avoid paragraph or page breaks within the sequence of
+ footnotes.
+ \end{Example}%
+\fi%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{footref}\Parameter{reference}
+\end{Declaration}
+Sometimes\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}%
+ }{}} you have a footnote in a document to which there are several references
+in the text. An inconvenient way to typeset this would be to use
+\DescRef{\ThisCommonLabelBase.cmd.footnotemark} to set the number directly.
+The disadvantage of this method is that you need to know the number and
+manually set every \DescRef{\ThisCommonLabelBase.cmd.footnotemark} command.
+And if the number changes because you add or remove an earlier footnote, you
+will have to change each \DescRef{\ThisCommonLabelBase.cmd.footnotemark}.
+\KOMAScript{} thefore offers the \Macro{label}\IndexCmd{label}%
+\important{\Macro{label}} mechanism to handle such cases. After placing a
+\Macro{label} inside the footnote, you can use \Macro{footref} to set all the
+other marks for this footnote in the text.
+\IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.footref}%
+ You are writing a text in which you must create a footnote each time a
+ brand name occurs, indicating that it is a registered trademark. You can
+ write, for example,
+\begin{lstcode}
+ Company SplishSplash\footnote{This is a registered trade name.
+ All rights are reserved.\label{refnote}}
+ produces not only SplishPlump\footref{refnote}
+ but also SplishPlash\footref{refnote}.
+\end{lstcode}
+ This will produce the same footnote mark three times, but only one
+ footnote text. The first footnote mark is produced by
+ \DescRef{\ThisCommonLabelBase.cmd.footnote} itself, and the following two
+ footnote marks are produced by the additional \Macro{footref}
+ commands. The footnote text will be produced by
+ \DescRef{\ThisCommonLabelBase.cmd.footnote}.
+ \end{Example}
+ \fi When setting footnote marks with the \Macro{label} mechanism, any
+ changes to the footnote numbers will require at least two \LaTeX{} runs to
+ ensure correct numbers for all \Macro{footref} marks.%
+ \IfThisCommonLabelBaseOneOf{scrlttr2,scrextend}{\par%
+ You can find an example of how to use \Macro{footref} in
+ \autoref{sec:\ThisCommonFirstLabelBase.footnotes} on
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.footref}.%
+ }{} \IfThisCommonLabelBase{scrlttr2}{}{%
+ \par
+ Note\textnote{Attention!} that statements like \Macro{ref}\IndexCmd{ref}
+ or \Macro{pageref}\IndexCmd{pageref} are fragile and therefore you should
+ put \Macro{protect}\IndexCmd{protect} in front of them if they appear in
+ moving arguments such as headings.%
+ }%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{deffootnote}\OParameter{mark width}\Parameter{indent}%
+ \Parameter{parindent}\Parameter{definition}%
+ \Macro{deffootnotemark}\Parameter{definition}%
+ \Macro{thefootnotemark}
+\end{Declaration}%
+\IfThisCommonLabelBase{maincls}{The \KOMAScript{} classes set}{\KOMAScript{}
+ sets}\textnote{\KOMAScript{} vs. standard classes} footnotes slightly
+differently than the standard classes do. As in the standard classes, the
+footnote mark in the text is rendered with small, superscript numbers. The
+same formatting is used in the footnote itself. The mark in the footnote is
+typeset right-justified in a box with a width of \PName{mark width}. The first
+line of the footnote follows directly.
+
+All subsequent lines will be indented by the length of \PName{indent}. If the
+optional parameter \PName{mark width} is not specified, it defaults to
+\PName{indent}. If the footnote consists of more than one paragraph, the first
+line of each paragraph is indented by the value of \PName{parindent}.
+
+\autoref{fig:\ThisCommonFirstLabelBase.deffootnote} %
+\IfThisCommonFirstRun{}{on
+ \autopageref{fig:\ThisCommonFirstLabelBase.deffootnote} }{}%
+shows the different parameters%
+\IfThisCommonLabelBase{maincls}{ again}{}%
+. The default configuration of the \KOMAScript{} classes is as follows:
+\IfThisCommonLabelBase{scrextend}{\iftrue}{\csname iffalse\endcsname}%
+\begin{lstcode}
+ \deffootnote[1em]{1.5em}{1em}{%
+ \textsuperscript{\thefootnotemark}}
+\end{lstcode}
+\else
+\begin{lstcode}
+ \deffootnote[1em]{1.5em}{1em}{%
+ \textsuperscript{\thefootnotemark}%
+ }
+\end{lstcode}
+\fi%
+\DescRef{\ThisCommonLabelBase.cmd.textsuperscript} controls both the
+superscript and the smaller font size. The command \Macro{thefootnotemark}
+contains the current footnote mark without any formatting.%
+\IfThisCommonLabelBase{scrextend}{ %
+ The \Package{scrextend} package, by contrast, does not change the default
+ footnote settings of the class you are using. Simply loading the package,
+ therefore, should not lead to any changes in the formatting of footnote
+ marks or footnote text. To use the default settings of the \KOMAScript{}
+ classes with \Package{scrextend}, you must change the settings above
+ yourself. For example, you can insert the line of code above immediately
+ after loading the \Package{scrextend} package.%
+}{}%
+
+\IfThisCommonLabelBase{maincls}{%
+ \begin{figure}
+% \centering
+ \KOMAoption{captions}{bottombeside}
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [{Parameters that control the footnote layout}]%
+ {\label{fig:\ThisCommonLabelBase.deffootnote}\hspace{0pt plus 1ex}%
+ Parameters that control the footnote layout}%
+ [l]
+ \setlength{\unitlength}{1mm}
+ \begin{picture}(100,22)
+ \thinlines
+ % frame of following paragraph
+ \put(5,0){\line(1,0){90}}
+ \put(5,0){\line(0,1){5}}
+ \put(10,5){\line(0,1){5}}\put(5,5){\line(1,0){5}}
+ \put(95,0){\line(0,1){10}}
+ \put(10,10){\line(1,0){85}}
+ % frame of first paragraph
+ \put(5,11){\line(1,0){90}}
+ \put(5,11){\line(0,1){5}}
+ \put(15,16){\line(0,1){5}}\put(5,16){\line(1,0){10}}
+ \put(95,11){\line(0,1){10}}
+ \put(15,21){\line(1,0){80}}
+ % box of the footnote mark
+ \put(0,16.5){\framebox(14.5,4.5){\mbox{}}}
+ % description of paragraphs
+ \put(45,16){\makebox(0,0)[l]{\textsf{first paragraph of a footnote}}}
+ \put(45,5){\makebox(0,0)[l]{\textsf{next paragraph of a footnote}}}
+ % help lines
+ \thicklines
+ \multiput(0,0)(0,3){7}{\line(0,1){2}}
+ \multiput(5,0)(0,3){3}{\line(0,1){2}}
+ % parameters
+ \put(2,7){\vector(1,0){3}}
+ \put(5,7){\line(1,0){5}}
+ \put(15,7){\vector(-1,0){5}}
+ \put(15,7){\makebox(0,0)[l]{\small\PName{parindent}}}
+ %
+ \put(-3,13){\vector(1,0){3}}
+ \put(0,13){\line(1,0){5}}
+ \put(10,13){\vector(-1,0){5}}
+ \put(10,13){\makebox(0,0)[l]{\small\PName{indent}}}
+ %
+ \put(-3,19){\vector(1,0){3}}
+ \put(0,19){\line(1,0){14.5}}
+ \put(19.5,19){\vector(-1,0){5}}
+ \put(19.5,19){\makebox(0,0)[l]{\small\PName{mark width}}}
+ \end{picture}
+ \end{captionbeside}
+ \end{figure}}
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{footnote}\LabelFontElement{footnote}%
+\BeginIndex{FontElement}{footnotelabel}\LabelFontElement{footnotelabel}%
+The footnote\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}%
+}}{}, including the footnote mark, uses the font specified in the
+\FontElement{footnote}\important{\FontElement{footnote}} element. You can
+change the font of the footnote mark separately using the
+\DescRef{\ThisCommonLabelBase.cmd.setkomafont} and
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont})
+for the \FontElement{footnotelabel}\important{\FontElement{footnotelabel}}
+element. See also \autoref{tab:\ThisCommonLabelBase.fontelements},
+\autopageref{tab:\ThisCommonLabelBase.fontelements}.
+The default setting is no change to the font.%
+\IfThisCommonLabelBase{scrextend}{ %
+ However, with \Package{scrextend} these elements will only change the fonts
+ if footnotes are handled by the package, that is, after using
+ \Macro{deffootnote}.%
+}{} Please don't misuse this element for other purposes, for example to set
+the footnotes ragged right (see also \DescRef{\LabelBase.cmd.raggedfootnote},
+\DescPageRef{\LabelBase.cmd.raggedfootnote}).
+
+\BeginIndex{FontElement}{footnotereference}%
+\LabelFontElement{footnotereference}%
+The footnote mark in the text is defined separately from the mark in
+front of the actual footnote. This is done with
+\Macro{deffootnotemark}. The default setting is:
+\begin{lstcode}
+ \deffootnotemark{%
+ \textsuperscript{\thefootnotemark}}
+\end{lstcode}
+With\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{} this default, the font for the
+\FontElement{footnotereference}\important{\FontElement{footnotereference}}
+element is used (see \autoref{tab:\ThisCommonLabelBase.fontelements},
+\autopageref{tab:\ThisCommonLabelBase.fontelements}). Thus, the footnote marks
+in the text and in the footnote itself are identical. You can change the font
+with the commands \DescRef{\ThisCommonLabelBase.cmd.setkomafont} and
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (see
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont})%
+\IfThisCommonLabelBase{scrextend}{ after \Macro{deffootnotemark} is used}{}.
+
+\IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}%
+ \begin{Example}
+ \phantomsection
+ \xmpllabel{cmd.deffootnote}%
+ One\textnote{Hint!} feature that is often requested is footnote marks
+ which are neither in superscript nor in a smaller font. They should not
+ touch the footnote text but be separated by a small space. You can
+ accomplish this as follows:
+\begin{lstcode}
+ \deffootnote{1em}{1em}{\thefootnotemark\ }
+\end{lstcode}
+ This will set the footnote mark and subsequent space right-aligned in a
+ box of width 1\Unit{em}. The lines of the footnote text that follow are
+ also indented by 1\Unit{em} from the left margin.
+
+ Another\textnote{Hint!} layout that is often requested is footnote marks
+ that are left-aligned. You can obtain them with the following
+ definition:
+\begin{lstcode}
+ \deffootnote{1.5em}{1em}{%
+ \makebox[1.5em][l]{\thefootnotemark}}
+\end{lstcode}
+
+ If, however you want to change the font for all footnotes, for example
+ to sans serif, this can easily be done with the commands
+ \DescRef{\ThisCommonLabelBase.cmd.setkomafont} and
+ \DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (see
+ \autoref{sec:\ThisCommonLabelBase.textmarkup},
+ \DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}):
+\begin{lstcode}
+ \setkomafont{footnote}{\sffamily}
+\end{lstcode}
+ \end{Example}%
+ \IfThisCommonLabelBase{scrextend}{}{%
+ As the examples show, {\KOMAScript} allows a wide variety of different
+ footnote formats with this simple user interface.%
+ }%
+\fi%
+\IfThisCommonFirstRun{}{%
+ For examples, see \autoref{sec:\ThisCommonFirstLabelBase.footnotes},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.deffootnote}.%
+}{}%
+%
+\EndIndexGroup
+\EndIndexGroup
+
+\IfThisCommonLabelBase{scrextend}{\iffalse}{\csname iftrue\endcsname}
+\begin{Declaration}
+ \Macro{setfootnoterule}\OParameter{thickness}\Parameter{length}%
+\end{Declaration}%
+Generally,\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.06}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.06}{\Class{scrlttr2}}%
+ }{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.06}{\Package{scrextend}}%
+ }{}%
+ }%
+} a horizontal rule is set between the text area and the footnote area, but
+normally this rule does not extend the full width of the type area. With
+\Macro{setfootnoterule}, you can set the exact thickness and length of the
+rule. In this case, the parameters \PName{thickness} and \PName{length} are
+only evaluated when setting the rule itself. If the optional argument
+\PName{thickness} has been omitted, the thickness of the rule will not be
+changed. Empty arguments for \PName{thickness} or \PName{length} are also
+allowed and do not change the corresponding parameters. Using absurd values
+will result in warning messages both when setting and when using the
+parameters.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{footnoterule}\LabelFontElement{footnoterule}%
+You can%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.07}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.07}{\Class{scrlttr2}}%
+ }{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.07}{\Package{scrextend}}%
+ }{}%
+ }%
+} %
+change the colour of the rule with the
+\FontElement{footnoterule}\important{\FontElement{footnoterule}} element using
+the \DescRef{\ThisCommonLabelBase.cmd.setkomafont} and
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}). The default is no change
+of font or colour. In order to change the colour, you must also load a colour
+package like
+\Package{xcolor}\IndexPackage{xcolor}\important{\Package{xcolor}}.%
+\EndIndexGroup
+\EndIndexGroup
+\fi
+
+\begin{Declaration}
+ \Macro{raggedfootnote}
+\end{Declaration}
+By default%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.23}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.23}{\Class{scrlttr2}}%
+ }{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.23}{\Package{scrextend}}%
+ }{}%
+ }%
+} %
+\KOMAScript{} justifies footnotes just as in the standard classes.
+But\textnote{\KOMAScript{} vs. standard classes} you can also change the
+justification separately from the rest of the document by redefining
+\Macro{raggedfootnote}. Valid definitions are
+\Macro{raggedright}\IndexCmd{raggedright},
+\Macro{raggedleft}\IndexCmd{raggedleft},
+\Macro{centering}\IndexCmd{centering}, \Macro{relax}\IndexCmd{relax} or an
+empty definition, which is the default. The alignment commands of the
+\Package{ragged2e}\IndexPackage{ragged2e} package are also valid (see
+\cite{package:ragged2e}). \IfThisCommonLabelBase{scrextend}{%
+ You can find a suitable example in
+ \autoref{sec:\ThisCommonFirstLabelBase.footnotes},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.raggedfootnote}.%
+ \iffalse }{\csname iftrue\endcsname}%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.raggedfootnote}%
+ Suppose you are using footnotes only to provide references to very long
+ links, where line breaks would produce poor results if justified. You can
+ use
+\begin{lstcode}
+ \let\raggedfootnote\raggedright
+\end{lstcode}
+ in your document's preamble to switch to ragged-right footnotes.
+ \end{Example}%
+\fi
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-headfootheight.tex b/macros/latex/contrib/koma-script/source-doc/english/common-headfootheight.tex
new file mode 100644
index 0000000000..8f9fcbb946
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-headfootheight.tex
@@ -0,0 +1,163 @@
+% ======================================================================
+% common-headfootheight.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-headfootheight.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-headfootheight.tex}
+ [$Date: 2018-02-28 13:23:23 +0100 (Wed, 28 Feb 2018) $
+ KOMA-Script guide (common paragraph: Head and Foot Height)]
+\translator{Markus Kohm\and Jana Schubert\and Jens H\"uhne\and Karl Hagen}
+
+% Date of the translated German file: 2018-01-16
+
+\section{Header and Footer Height}
+\seclabel{height}
+\BeginIndexGroup
+\BeginIndex{}{header>height}%
+\BeginIndex{}{footer>height}%
+\IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \begin{Explain}%
+ The \LaTeX{} standard classes do not use the footer much, 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 footer height. Although the distance
+ between the last baseline of the text area and the baseline of the footer
+ is defined with \Length{footskip}\IndexLength[indexmain]{footskip}, 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
+ baseline of the footer.
+
+ Although the page header of the standard classes will also be put into a
+ horizontal box, and therefore is also a single text line, \LaTeX{} in fact
+ provides a length to set the height of the header. The reason for this may
+ be that this height is needed to determine the start of the text area.
+ \end{Explain}%
+}{%
+ The header and footer of a page are central elements not just of a page
+ style. They can also serve to restrict layers using the appropriate options
+ (see \autoref{tab:scrlayer.layerkeys},
+ \autopageref{tab:scrlayer.layerkeys}). Therefore the heights of these
+ elements must be defined.%
+}
+
+\IfThisCommonFirstRun{}{%
+ The information in \autoref{sec:\ThisCommonFirstLabelBase.height} applies
+ equally to this chapter. So if you have already read and understood
+ \autoref{sec:\ThisCommonFirstLabelBase.height}, you can skip ahead to
+ \autoref{sec:\ThisCommonLabelBase.height.next},
+ \autopageref{sec:\ThisCommonLabelBase.height.next}.%
+}
+
+\begin{Declaration}
+ \Length{footheight}
+ \Length{headheight}
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \OptionVName{autoenlargeheadfoot}{simple switch}%
+ }{}%
+\end{Declaration}
+The \Package{scrlayer} package introduces a new length, \Length{footheight},
+analogous to \Length{headheight}%
+\IfThisCommonLabelBase{scrlayer-scrpage}{}{of the \LaTeX{} kernel}.
+Additionally,
+\Package{scrlayer\IfThisCommonLabelBase{scrlayer-scrpage}{-scrpage}{}}
+interprets \Length{footskip} to be the distance from the last baseline of the
+text area to the first normal baseline of the footer. The
+\hyperref[cha:typearea]{\Package{typearea}}\IndexPackage{typearea}%
+\important{\hyperref[cha:typearea]{\Package{typearea}}} package interprets
+\Length{footheight} in the same way, so \Package{typearea}'s options for the
+footer height can also be used to set the values for the \Package{scrlayer}
+package. See the \DescRef{typearea.option.footheight} and
+\DescRef{typearea.option.footlines} options in
+\autoref{sec:typearea.typearea}, \DescPageRef{typearea.option.footheight})
+and option \DescRef{typearea.option.footinclude} on
+\DescPageRef{typearea.option.footinclude} of the same section.
+
+If you do not use the \hyperref[cha:typearea]{\Package{typearea}}%
+\important{\hyperref[cha:typearea]{\Package{typearea}}} package, you should
+adjust the header and footer heights using appropriate values for the lengths
+where necessary. For the header, at least, the \Package{geometry} package, for
+example, provides similar settings.
+\IfThisCommonLabelBase{scrlayer-scrpage}{\par%
+ If you choose a header or footer height that is too small for the actual
+ content, \Package{scrlayer-scrpage} tries by default to adjust the lengths
+ appropriately. At the same time, it will issue a warning containing
+ suggestions for suitable settings. These automatic changes take effect
+ immediately after the need for them has been detected and are not
+ automatically reversed, for example, when the content of the header or
+ footer becomes smaller afterwards.
+ However,\ChangedAt{v3.25}{\Package{scrlayer-scrpage}}, this behaviour can be
+ changed by using the \Option{autoenlargeheadfoot} option. This option
+ recognizes the values for simple switches in \autoref{tab:truefalseswitch},
+ \autopageref{tab:truefalseswitch}. The option is activated by default. If it
+ is deactivated, the header and footer are no longer enlarged
+ automatically. Only a warning with hints for suitable settings is issued.%
+}{%
+ \IfThisCommonLabelBase{scrlayer}{\par%
+ If you choose a header or footer height that is too small for the actual
+ content, \Package{scrlayer} usually accepts this without issuing an error
+ message or a warning. The header then expands according to its height,
+ usually upwards, with the footer moved down accordingly. Information about
+ this change is not obtained automatically. However, packages like
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ \important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}%
+ \IndexPackage{scrlayer-scrpage} that build upon \Package{scrlayer} may
+ contain their own tests which can lead to their own actions (see
+ \DescRef{scrlayer-scrpage.length.headheight} and
+ \DescRef{scrlayer-scrpage.length.footheight} on
+ \DescPageRef{scrlayer-scrpage.length.headheight}).%
+ }{}%
+}%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% 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/macros/latex/contrib/koma-script/source-doc/english/common-interleafpage.tex b/macros/latex/contrib/koma-script/source-doc/english/common-interleafpage.tex
new file mode 100644
index 0000000000..36f9fb4ae4
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-interleafpage.tex
@@ -0,0 +1,338 @@
+% ======================================================================
+% common-interleafpage.tex
+% Copyright (c) Markus Kohm, 2001-2017
+%
+% 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-interleafpage.tex
+% Copyright (c) Markus Kohm, 2001-2017
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-interleafpage.tex}%
+ [$Date: 2018-03-30 09:37:06 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (common paragraphs: Interleaf Pages)]
+\translator{Markus Kohm\and Gernot Hassenpflug\and Krickette Murabayashi\and
+ Karl Hagen}
+
+% Date of the translated German file: 2017-12-07
+
+\section{Interleaf Pages}
+\seclabel{emptypage}%
+\BeginIndexGroup
+\BeginIndex{}{interleaf page}%%
+\BeginIndex{}{page>style}%
+
+\IfThisCommonFirstRun{}{%
+ The information in \autoref{sec:\ThisCommonFirstLabelBase.emptypage} applies
+ equally to this chapter. So if you have already read and understood
+ \autoref{sec:\ThisCommonFirstLabelBase.emptypage}, you can skip ahead to
+ \autoref{sec:\ThisCommonLabelBase.emptypage.next},
+ \autopageref{sec:\ThisCommonLabelBase.emptypage.next}.%
+}
+
+Interleaf pages are pages that are inserted between parts of a document.
+Traditionally, these pages are completely blank. \LaTeX{}, however,
+sets them by default with the current page style. \KOMAScript{} provides
+several extensions to this functionality.
+
+Interleaf pages are mostly found in books. Because book chapters commonly
+start on the right (recto) page of a two-page spread, an empty left (verso)
+page must be inserted if the previous chapter ends on a recto page. For this
+reason, interleaf pages really only exist for two-sided printing.
+%
+\iffalse % Umbruchkorrektur
+ The blank versos in one-sided printing are not true interleaf pages,
+ although they may appear as such in counting the printed sheets.
+\fi%
+
+\IfThisCommonLabelBase{scrlttr2}{%
+ Interleaf pages are unusual in letters. This is not least because two-sided
+ letters are rare, as letters are usually not bound. Nevertheless,
+ \KOMAScript{} also supports interleaf pages for two-sided letters. However,
+ since the commands described here are seldom used in letters, you will not
+ find any examples here. If necessary, please refer to the examples in
+ \autoref{sec:maincls.emptypage}, starting on
+ \autopageref{sec:maincls.emptypage}.%
+}{}%
+
+\begin{Declaration}
+ \OptionVName{cleardoublepage}{page style}
+ \OptionValue{cleardoublepage}{current}
+\end{Declaration}%
+With this option,\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}%
+ }{}%
+} you can define the page style of the interleaf pages created by the commands
+\DescRef{\LabelBase.cmd.cleardoublepage},
+\DescRef{\LabelBase.cmd.cleardoubleoddpage}, or
+\DescRef{\LabelBase.cmd.cleardoubleevenpage} to advance to the desired page.
+You can use any previously defined \PName{page style} (see
+\autoref{sec:\ThisCommonLabelBase.pagestyle} from
+\autopageref{sec:\ThisCommonLabelBase.pagestyle} and
+\autoref{cha:scrlayer-scrpage} from \autopageref{cha:scrlayer-scrpage}).
+In addition, \OptionValue{cleardoublepage}{current} is also possible.
+This case corresponds to the default prior to \KOMAScript~2.98c and creates an
+interleaf page without changing the page style. Starting with
+\KOMAScript~3.00\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}%
+ }{}%
+}, the default\textnote{default} follows the recommendation of most
+typographers and creates interleaf pages with the
+\IfThisCommonLabelBase{scrextend}{%
+ \DescRef{maincls.pagestyle.empty}}{%
+ \DescRef{\ThisCommonLabelBase.pagestyle.empty}}\IndexPagestyle{empty}
+page style unless you switch compatibility to earlier \KOMAScript{} versions
+(see option \DescRef{\ThisCommonLabelBase.option.version}%
+\important{\OptionValueRef{\LabelBase}{version}{2.98c}},
+\autoref{sec:\ThisCommonLabelBase.compatibilityOptions},
+\DescPageRef{\ThisCommonLabelBase.option.version}).
+\IfThisCommonLabelBase{maincls}{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{option.cleardoublepage}%
+ Suppose you want interleaf pages that are empty except for the pagination%
+ \iffree{, so they are created with \IfThisCommonLabelBase{scrextend}{%
+ \DescRef{maincls.pagestyle.plain}}{%
+ \DescRef{\LabelBase.pagestyle.plain}}}{}. You can achieve this,
+ for example, with:
+\begin{lstcode}
+ \KOMAoptions{cleardoublepage=plain}
+\end{lstcode}
+ You can find more information about the
+ \IfThisCommonLabelBase{scrextend}{%
+ \DescRef{maincls.pagestyle.plain}}{\DescRef{\LabelBase.pagestyle.plain}}
+ page style in \IfThisCommonLabelBase{scrextend}{%
+ \autoref{sec:maincls.pagestyle}}{%
+ \autoref{sec:\LabelBase.pagestyle}},
+ \IfThisCommonLabelBase{scrextend}{%
+ \DescPageRef{maincls.pagestyle.plain}}{%
+ \DescPageRef{\LabelBase.pagestyle.plain}}.
+ \end{Example}
+\else
+ \IfThisCommonLabelBase{scrextend}{%
+ You can find an example for setting the page style of interleaf pages in
+ \autoref{sec:\ThisCommonFirstLabelBase.emptypage},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.option.cleardoublepage}.%
+ \iffalse% Umbruchvariante ohne Beispiel
+ }{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{option.cleardoublepage}%
+ Suppose you want interleaf pages that are empty except for the pagination,
+ so they are created with the \IfThisCommonLabelBase{scrextend}{%
+ \DescRef{maincls.pagestyle.plain}}{\DescRef{\LabelBase.pagestyle.plain}}
+ page style. You can achieve this with
+\begin{lstcode}
+ \KOMAoptions{cleardoublepage=plain}
+\end{lstcode}
+ You can find more information about the
+ \DescRef{maincls.pagestyle.plain} page style in
+ \autoref{sec:maincls.pagestyle}, \DescPageRef{maincls.pagestyle.plain}.
+ \end{Example}%
+ \fi%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{clearpage}%
+ \Macro{cleardoublepage}%
+ \Macro{cleardoublepageusingstyle}\Parameter{page style}%
+ \Macro{cleardoubleemptypage}%
+ \Macro{cleardoubleplainpage}%
+ \Macro{cleardoublestandardpage}%
+ \Macro{cleardoubleoddpage}%
+ \Macro{cleardoubleoddpageusingstyle}\Parameter{page style}%
+ \Macro{cleardoubleoddemptypage}%
+ \Macro{cleardoubleoddplainpage}%
+ \Macro{cleardoubleoddstandardpage}%
+ \Macro{cleardoubleevenpage}%
+ \Macro{cleardoubleevenpageusingstyle}\Parameter{page style}%
+ \Macro{cleardoubleevenemptypage}%
+ \Macro{cleardoubleevenplainpage}%
+ \Macro{cleardoubleevenstandardpage}
+\end{Declaration}%
+The\textnote{standard classes} {\LaTeX} kernel provides the \Macro{clearpage}
+command, which ensures that all pending floats are output and then starts a
+new page. There is also the \Macro{cleardoublepage} command, which works like
+\Macro{clearpage} but which starts a new right-hand page in two-sided printing
+(see the \Option{twoside} layout option in \autoref{sec:typearea.options},
+\DescPageRef{typearea.option.twoside}). An empty left-hand page in the current
+page style is output if necessary.
+
+With\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}%
+ }{}%
+} \Macro{cleardoubleoddstandardpage}, {\KOMAScript}\textnote{\KOMAScript}
+works as exactly in the way just described for the standard classess. The
+\Macro{cleardoubleoddplainpage}%
+\important{\IfThisCommonLabelBase{scrextend}{%
+ \DescRef{maincls.pagestyle.plain}}{\DescRef{\LabelBase.pagestyle.plain}}}
+command, on the other hand, additionally changes the page style of the empty
+left page to \IfThisCommonLabelBase{scrextend}{%
+ \DescRef{maincls.pagestyle.plain}}{\DescRef{\LabelBase.pagestyle.plain}}%
+\IndexPagestyle{plain} in order to suppress the
+\IfThisCommonLabelBase{scrlttr2}{page header}{running title}. Likewise, the
+\Macro{cleardoubleoddemptypage}\important{%
+ \IfThisCommonLabelBase{scrextend}{\DescRef{maincls.pagestyle.empty}}{%
+ \DescRef{\LabelBase.pagestyle.empty}}} command uses the
+\IfThisCommonLabelBase{scrextend}{\DescRef{maincls.pagestyle.empty}}{%
+ \DescRef{\LabelBase.pagestyle.empty}}\IndexPagestyle{empty} page style to
+suppress both \IfThisCommonLabelBase{scrlttr2}{page header and page footer}%
+{running title and page number} on the empty left-hand side. The page is thus
+completely empty. If you want to specify your own \PName{page style} for the
+interleaf page, this should be given as an argument of
+\Macro{cleardoubleoddusingpagestyle}. You can use any previously defined
+\PName{page style} (see \autoref{cha:scrlayer-scrpage}).
+
+\IfThisCommonLabelBase{scrlttr2}{}{%
+ Sometimes\textnote{odd-side interleaf pages} you want chapters to start not
+ on the right-hand but on the left-hand page. Although this layout contradicts
+ classic typography, it can be appropriate if the double-page spread at the
+ beginning of the chapter very specific contents. For this reason,
+ \KOMAScript{} provides the \Macro{cleardoubleevenstandardpage} command,
+ which is equivalent to the \Macro{cleardoubleoddstandardpage} command
+ except that the next page is a left page. The same applies to the
+ \Macro{cleardoubleevenplainpage}, \Macro{cleardoubleevenemptypage}, and
+ \Macro{cleardoubleevenpageusingstyle} commands%
+ \IfThisCommonLabelBase{maincls}{% Umbruchoptimierungsalternative
+ , the last of which expects an argument}{}.%
+}
+
+The \Macro{cleardoublestandardpage}, \Macro{cleardoubleemptypage}, and
+\Macro{cleardoubleplainpage} commands, and the single-argument
+\Macro{cleardoublepageusingstyle} command, as well as the standard
+\Macro{cleardoublepage} command, %
+\IfThisCommonLabelBase{maincls}{%
+ depend on the \DescRef{maincls.option.open}\IndexOption{open}%
+ \important{\DescRef{maincls.option.open}} option explained in
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.option.open} and,
+ depending on that setting, correspond to one of the commands explained in
+ the preceding paragraphs. }{%
+ correspond to the commands previously explained for the
+ \IfThisCommonLabelBase{scrlttr2}{\Class{scrlttr2} class}{%
+ \IfThisCommonLabelBase{scrextend}{\Package{scrextend} package}{%
+ \InternalCommonFileUsageError}%
+ }%
+ \IfThisCommonLabelBase{scrlttr2}{. %
+ The remaining commands are defined in \Class{scrlttr2} for completeness
+ only. You can find more information on them in
+ \autoref{sec:maincls.emptypage}, \DescPageRef{maincls.cmd.cleardoublepage}
+ if necessary%
+ }{%
+ \ to transition to the next odd page%
+ }.%
+}%
+\IfThisCommonLabelBaseOneOf{scrlttr2,scrextend}{\iffalse}{\csname
+ iftrue\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.cleardoublepage}%
+ Suppose you want to insert a double-page spread into your document with a
+ picture on the left-hand page and a new chapter starting on the right-hand
+ page. If the previous chapter ends with a left-hand page, an interleaf
+ page has to be added, which should be completely empty. The picture should
+ be the same size as the text area without any header or footer.
+\iffalse% Umbruchkorrekturtext
+ First of all,
+\begin{lstcode}
+ \KOMAoptions{cleardoublepage=empty}
+\end{lstcode}
+ ensures that interleaf pages use the
+ \IfThisCommonLabelBase{scrextend}{\DescRef{maincls.pagestyle.empty}}{%
+ \DescRef{\LabelBase.pagestyle.empty}} page style. You can put this
+ setting in the document preamble, or you can set it as an optional
+ argument of \DescRef{\ThisCommonLabelBase.cmd.documentclass}.
+\fi
+
+ At the relevant place in your document, write:
+\begin{lstcode}
+ \cleardoubleevenemptypage
+ \thispagestyle{empty}
+ \includegraphics[width=\textwidth,%
+ height=\textheight,%
+ keepaspectratio]%
+ {picture}
+ \chapter{Chapter Heading}
+\end{lstcode}
+ The first of these lines switches to the next left-hand page. If needed it
+ also adds a completely blank right-hand page. The second line makes sure
+ that the following left-hand page will also be set using the
+ \IfThisCommonLabelBase{scrextend}{\DescRef{maincls.pagestyle.empty}}{%
+ \DescRef{\LabelBase.pagestyle.empty}} page style. The third through
+ sixth lines load an image file named \File{picture} and scale it to the
+ desired size without distorting it. This command requires the
+ \Package{graphicx}\IndexPackage{graphicx} package (see
+ \cite{package:graphics}). The last line starts
+ a new chapter on the next page, which will be a right-hand one.
+ \end{Example}%
+\fi%
+
+In two-sided printing, \Macro{cleardoubleoddpage} always moves to the next
+left-hand page and \Macro{cleardoubleevenpage} to the next right-hand
+page. The style of the interleaf page to be inserted if necessary is defined
+with the \DescRef{\LabelBase.option.cleardoublepage} option.%
+\IfThisCommonLabelBase{scrextend}{\par%
+ For an example that uses \Macro{cleardoubleevenemptypage}, see
+ \autoref{sec:maincls.emptypage},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.cleardoublepage}.%
+}{}%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
+
+% LocalWords: mutatis mutandis Interleaf interleaf
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-lists.tex b/macros/latex/contrib/koma-script/source-doc/english/common-lists.tex
new file mode 100644
index 0000000000..79a0a697fd
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-lists.tex
@@ -0,0 +1,837 @@
+% ======================================================================
+% common-lists.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-lists.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-lists.tex}
+ [$Date: 2018-03-30 09:37:06 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (common paragraphs)]
+\translator{Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi\and
+ Karl Hagen}
+
+% Date of the translated German file: 2018-02-06
+
+\section{Lists}
+\seclabel{lists}%
+\BeginIndexGroup
+\BeginIndex{}{lists}%
+
+\IfThisCommonFirstRun{}{%
+ The information in \autoref{sec:\ThisCommonFirstLabelBase.lists} applies
+ equally to this chapter. So if you have already read and understood
+ \autoref{sec:\ThisCommonFirstLabelBase.lists}, you can skip ahead to
+ \autoref{sec:\ThisCommonLabelBase.lists.next},
+ \autopageref{sec:\ThisCommonLabelBase.lists.next}.%
+ \IfThisCommonLabelBaseOneOf{scrextend,scrlttr2}{ %
+ \IfThisCommonLabelBase{scrlttr2}{%
+ The \Package{scrletter}\OnlyAt{\Package{scrletter}} package does not
+ define any list environments itself but leaves them to the class
+ used. If this is not a \KOMAScript{} class, it will load
+ \hyperref[cha:scrextend]{\Package{scrextend}}\IndexPackage{scrextend}%
+ \important{\hyperref[cha:scrextend]{\Package{scrextend}}}.%
+ }{} %
+ However, the \Package{scrextend} package only defines the
+ \DescRef{\ThisCommonLabelBase.env.labeling},
+ \DescRef{\ThisCommonLabelBase.env.addmargin}, and
+ \DescRef{\ThisCommonLabelBase.env.addmargin*} environments. All other list
+ environments are left to the responsibility of the class used.%
+ }{}%
+}
+
+\IfThisCommonLabelBase{scrextend}{}{%
+ Both {\LaTeX} and the standard classes\textnote{\KOMAScript{} vs. standard
+ classes} offer different environments for lists. Naturally, {\KOMAScript}
+ also offers all these environments, though slightly modified or extended in
+ some cases. In general, all lists\,---\,even those of different
+ kinds\,---\,can be nested up to four levels deep. From a typographical view,
+ anything more would make no sense, as lists of more than three levels cannot
+ easily be apprehended. In such cases, I recommend\textnote{Hint!} that you
+ split a large list into several smaller ones.%
+}
+
+\IfThisCommonFirstRun{}{%
+ Because lists are standard elements of \LaTeX{}, examples have been omitted
+ in this section. Nevertheless, you can find examples either in
+ \autoref{sec:\ThisCommonFirstLabelBase.lists},
+ \autopageref{sec:\ThisCommonFirstLabelBase.lists} or in any \LaTeX{}
+ tutorial.%
+}
+
+\IfThisCommonLabelBase{scrextend}{\iffalse}{\csname iftrue\endcsname}
+ \begin{Declaration}
+ \begin{Environment}{itemize}
+ \begin{Body}
+ \Macro{item} \dots
+ \BodyDots
+ \end{Body}
+ \end{Environment}
+ \Macro{labelitemi}
+ \Macro{labelitemii}
+ \Macro{labelitemiii}
+ \Macro{labelitemiv}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}%
+ The simplest form of a list is the itemized list\textnote{itemized list},
+ \Environment{itemize}. %
+ \iffalse % Umbruckoptimierungstext
+ The users of a certain disliked word processing package often refer to this
+ form of a list as \emph{bullet points}. Presumably, they cannot imagine
+ that, depending on the level, a symbol other than a large dot could be used
+ to introduce each point. %
+ \fi%
+ Depending on the level, \KOMAScript{} classes use the following marks:
+ ``{\labelitemi}'', ``{\labelitemii}'', ``{\labelitemiii}'', and
+ ``{\labelitemiv}''. The definition of these symbols is specified in
+ the macros \Macro{labelitemi}, \Macro{labelitemii},
+ \Macro{labelitemiii}, and \Macro{labelitemiv}, all of which you can
+ redefine using \Macro{renewcommand}. Every item is introduced with
+ \Macro{item}.%
+ \IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.itemize}%
+ You have a simple list which is nested in several levels. You write,
+ for example:
+\begin{lstcode}
+ \minisec{Vehicles in the game}
+ \begin{itemize}
+ \item aeroplanes
+ \begin{itemize}
+ \item biplane
+ \item transport planes
+ \begin{itemize}
+ \item single-engine
+ \begin{itemize}
+ \item jet propelled
+ \item propeller driven
+ \end{itemize}
+ \item twin-engine
+ \begin{itemize}
+ \item jet propelled
+ \item propeller driven
+ \end{itemize}
+ \end{itemize}
+ \item helicopters
+ \end{itemize}
+ \item motorcycles
+ \item automobiles
+ \begin{itemize}
+ \item racing cars
+ \item passenger cars
+ \item lorries
+ \end{itemize}
+ \item bicycles
+ \end{itemize}
+\end{lstcode}
+ As output you get:
+ \begin{ShowOutput}[\baselineskip]
+ \minisec{Vehicles in the game}
+ \begin{itemize}
+ \item aeroplanes
+ \begin{itemize}
+ \item biplanes
+ \item transport planes
+ \begin{itemize}
+ \item single-engine
+ \begin{itemize}
+ \item jet-propelled
+ \item propeller-driven
+ \end{itemize}
+ \item twin-engine
+ \begin{itemize}
+ \item jet propelled
+ \item propeller driven
+ \end{itemize}
+ \end{itemize}
+ \item helicopters
+ \end{itemize}
+ \item motorcycles
+ % \begin{itemize}
+ % \item historically accurate
+ % \item futuristic, not real
+ % \end{itemize}
+ \item automobiles
+ \begin{itemize}
+ \item racing cars
+ \item passenger cars
+ \item lorries
+ \end{itemize}
+ \item bicycles
+ \end{itemize}
+ \end{ShowOutput}
+ \end{Example}
+ \fi
+ %
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \begin{Environment}{enumerate}\labelsuffix[enumerate]
+ \begin{Body}
+ \Macro{item} \dots
+ \BodyDots
+ \end{Body}
+ \end{Environment}
+ \Macro{theenumi}%
+ \Macro{theenumii}%
+ \Macro{theenumiii}%
+ \Macro{theenumiv}%
+ \Macro{labelenumi}%
+ \Macro{labelenumii}%
+ \Macro{labelenumiii}%
+ \Macro{labelenumiv}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}The numbered
+ list\textnote{numbered list} is also very common and already provided by the
+ {\LaTeX} kernel. The numbering\Index{numbering} differs according to the
+ level, with Arabic numbers, small letters, small Roman numerals, and capital
+ letters, respectively. The style of numbering is defined with the macros
+ \Macro{theenumi} down to \Macro{theenumiv}. The output format is determined
+ by the macros \Macro{labelenumi} to \Macro{labelenumiv}. While the small
+ letter of the second level is followed by a right parenthesis, the values of
+ all other levels are followed by a dot. Every item is introduced with
+ \Macro{item}.%
+ \IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.enumerate}%
+ Let's shorten the previous example, using an
+ \DescRef{\ThisCommonLabelBase.env.itemize} environment instead of the
+ \Environment{enumerate} environment:
+ \begin{ShowOutput}[\baselineskip]
+ \minisec{Vehicles in the game}
+ \begin{enumerate}
+ \item aeroplanes
+ \begin{enumerate}
+ \item biplanes
+ \item transport planes
+ \begin{enumerate}
+ \item single-engine
+ \begin{enumerate}
+ \item jet-propelled\label{xmp:maincls.jets}
+ \item propeller-driven
+ \end{enumerate}
+ \item twin-engine
+ \end{enumerate}
+ % \item helicopters
+ \end{enumerate}
+ \item motorcycles
+ \begin{enumerate}
+ \item historically accurate
+ \item futuristic, not real
+ \end{enumerate}
+ %\item automobiles
+ % \begin{enumerate}
+ % \item racing cars
+ % \item private cars
+ % \item lorries
+ % \end{enumerate}
+ %\item bicycles
+ \end{enumerate}
+ \end{ShowOutput}
+ Within the list, you can set labels in the normal way with
+ \Macro{label} and then reference then with \Macro{ref}.
+ In the example above, a label was set after the jet-propelled,
+ single-engine transport planes with
+ ``\Macro{label}\PParameter{xmp:jets}''. The \Macro{ref} value is then
+ ``\ref{xmp:maincls.jets}''.
+ \end{Example}
+ \fi%
+ %
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \begin{Environment}{description}\labelsuffix[description]
+ \begin{Body}
+ \Macro{item}\OParameter{keyword} \dots
+ \BodyDots
+ \end{Body}
+ \end{Environment}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Another list
+ form is the description list\textnote{description list}. It primarily serves
+ to describe individual items or keywords. The item itself is specified as an
+ optional parameter in \Macro{item}. %
+ \BeginIndex{FontElement}{descriptionlabel}%
+ \LabelFontElement{descriptionlabel}%
+ The font\Index{font>style}\ChangedAt{v2.8p}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+ \ used to format the keyword can be changed with the
+ \DescRef{\ThisCommonLabelBase.cmd.setkomafont} and
+ \DescRef{\ThisCommonLabelBase.cmd.addtokomafont} commands (see
+ \autoref{sec:\ThisCommonLabelBase.textmarkup},
+ \DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) for the
+ \FontElement{descriptionlabel}\important{\FontElement{descriptionlabel}}
+ element (see \autoref{tab:\ThisCommonLabelBase.fontelements},
+ \autopageref{tab:\ThisCommonLabelBase.fontelements}). The default is
+ \Macro{sffamily}\linebreak[1]\Macro{bfseries}.%
+ \IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.description}%
+ You want the keywords to be printed bold and in the normal font instead
+ of bold and sans serif. Using
+\begin{lstcode}
+ \setkomafont{descriptionlabel}{\normalfont\bfseries}
+\end{lstcode}
+ you redefine the font accordingly.
+
+ An example for a description list is the output of the page styles
+ listed in \autoref{sec:maincls.pagestyle}. The (abbreviated) source is:
+\begin{lstcode}
+ \begin{description}
+ \item[empty] is the page style without any header or footer.
+ \item[plain] is the page style without headings.
+ \item[headings] is the page style with running headings.
+ \item[myheadings] is the page style for manual headings.
+ \end{description}
+\end{lstcode}
+ This gives:
+ \begin{ShowOutput}
+ \begin{description}
+ \item[empty] is the page style without any header or footer.
+ \item[plain] is the page style without headings.
+ \item[headings] is the page style with running headings.
+ \item[myheadings] is the page style for manual headings.
+ \end{description}
+ \end{ShowOutput}
+ \end{Example}
+ \fi%
+ %
+ \EndIndexGroup%
+\fi
+
+\begin{Declaration}
+ \begin{Environment}{labeling}\OParameter{delimiter}
+ \Parameter{widest pattern}
+ \labelsuffix[labeling]
+ \begin{Body}
+ \Macro{item}\OParameter{keyword}\dots
+ \BodyDots
+ \end{Body}
+ \end{Environment}
+\end{Declaration}%
+Another form of description list\textnote{alternative description list} is
+only available in the {\KOMAScript} classes%
+\IfThisCommonLabelBase{scrextend}{ and \Package{scrextend} }{%
+ \IfThisCommonLabelBase{scrlttr2}{ and
+ \hyperref[cha:scrextend]{\Package{scrextend}}}{}%
+}%
+: the \Environment{labeling} environment. Unlike
+\IfThisCommonLabelBase{scrextend}{%
+ \DescRef{\ThisCommonFirstLabelBase.env.description}%
+}{%
+ the \DescRef{\ThisCommonLabelBase.env.description} described above%
+}, you can specify a pattern for \Environment{labeling} whose length
+determines the indentation of all items. Furthermore, you can put an optional
+\PName{delimiter} between the item and its description. %
+\BeginIndexGroup
+\BeginIndex{FontElement}{labelinglabel}\LabelFontElement{labelinglabel}%
+\BeginIndex{FontElement}{labelingseparator}%
+\LabelFontElement{labelingseparator}%
+The font\Index{font>style}%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.02}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.02}{\Class{scrlttr2}}%
+ }{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.02}{\Package{scrextend}}%
+ }{\InternalCommonFileUsageError}%
+ }%
+} used to format the item and the separator can be changed with the
+\DescRef{\ThisCommonLabelBase.cmd.setkomafont} and
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) for the element
+\FontElement{labelinglabel} and \FontElement{labelingseparator} (see
+\autoref{tab:\ThisCommonLabelBase.fontelements},
+\autopageref{tab:\ThisCommonLabelBase.fontelements}).
+\IfThisCommonFirstRun{\iftrue}{\par\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.labeling}%
+ \IfThisCommonLabelBase{scrextend}{%
+ A small example of a list like this can be written as follows:%
+ }{%
+ Slightly changing the example from the
+ \DescRef{\ThisCommonLabelBase.env.description} environment, we could
+ write the following:%
+ }%
+\begin{lstcode}
+ \setkomafont{labelinglabel}{\ttfamily}
+ \setkomafont{labelingseparator}{\normalfont}
+ \begin{labeling}[~--]{myheadings}
+ \item[empty]
+ Page style without header or footer
+ \item[plain]
+ Page style for chapter beginnings without headings
+ \item[headings]
+ Page style for running headings
+ \item[myheadings]
+ Page style for manual headings
+ \end{labeling}
+\end{lstcode}
+ The result is this:
+ \begin{ShowOutput}
+ \setkomafont{labelinglabel}{\ttfamily}
+ \setkomafont{labelingseparator}{\normalfont}
+ \begin{labeling}[~--]{myheadings}
+ \item[empty]
+ Page style without header or footer
+ \item[plain]
+ Page style for chapter beginnings without headings
+ \item[headings]
+ Page style for running headings
+ \item[myheadings]
+ Page style for manual headings
+ \end{labeling}
+ \end{ShowOutput}
+ As this example shows, you can set a font-changing command 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}
+\fi%
+\EndIndexGroup
+Originally, this environment was implemented for things like ``Premise,
+Evidence, Proof'', or ``Given, Find, Solution'' that are often used in
+lecture handouts. These days, however, the environment has very different
+applications. For example, the environment for examples in this guide was
+defined with the \Environment{labeling} environment.%
+%
+\EndIndexGroup
+
+
+\IfThisCommonLabelBase{scrextend}{\iffalse}{\csname iftrue\endcsname}
+ \begin{Declaration}
+ \begin{Environment}{verse}\end{Environment}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{} The
+ \Environment{verse} environment\textnote{verse} is not normally perceived
+ as a list environment because you do not work with \Macro{item} commands.
+ Instead, fixed line breaks are used within the \Environment{flushleft}
+ environment. Internally, however, both the standard classes as well as
+ {\KOMAScript} implement it as a list environment.
+
+ In general, the \Environment{verse} environment is used for
+ poetry\Index{poetry}. Lines are indented both left and right. Individual
+ lines of verse are ended by a fixed line break: \verb|\\|. Verses are set as
+ paragraphs, separated by an empty line. Often also
+ \Macro{medskip}\IndexCmd{medskip} or \Macro{bigskip}\IndexCmd{bigskip} is
+ used instead. To avoid a page break at the end of a line of verse you can,
+ as usual, insert \verb|\\*| instead of \verb|\\|.
+ \IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.verse}%
+ \iffalse
+ As an example, the first lines of ``Little Red Riding Hood and the
+ Wolf'' by Roald Dahl:
+\begin{lstcode}
+ \begin{verse}
+ As soon as Wolf began to feel\\*
+ that he would like a decent meal,\\*
+ He went and knocked on Grandma's door.\\*
+ When Grandma opened it, she saw\\*
+ The sharp white teeth, the horrid grin,\\*
+ And Wolfie said, `May I come in?'
+ \end{verse}
+\end{lstcode}
+ The result is as follows:
+ \begin{ShowOutput}
+ \begin{verse}
+ As soon as Wolf began to feel\\*
+ That he would like a decent meal,\\*
+ He went and knocked on Grandma's door.\\*
+ When Grandma opened it, she saw\\*
+ The sharp white teeth, the horrid grin,\\*
+ And Wolfie said, `May I come in?'
+ \end{verse}
+ \end{ShowOutput}
+ \else
+ As an example, Emma Lazarus's sonnet from the pedestal of Liberty
+ Enlightening the World\footnote{The lines from Roald Dahl's poem
+ ``Little Red Riding Hood and the Wolf'', which was used in former
+ releases, has been replaced, because in these times certain
+ politicians around the world really seem to need ``The New
+ Colossus'' as urgent reminder.}:
+\begin{lstcode}
+ \begin{verse}
+ Not like the brazen giant of Greek fame\\*
+ With conquering limbs astride from land to land\\*
+ Here at our sea-washed, sunset gates shall stand\\*
+ A mighty woman with a torch, whose flame\\*
+ Is the imprisoned lightning, and her name\\*
+ Mother of Exiles. From her beacon-hand\\*
+ Glows world-wide welcome; her mild eyes command\\*
+ The air-bridged harbor that twin cities frame.\\*
+ ``Keep, ancient lands, your storied pomp!'' cries she\\*
+ With silent lips. ``Give me your tired, your poor,\\*
+ Your huddled masses yearning to breathe free,\\*
+ The wretched refuse of your teeming shore.\\*
+ Send these, the homeless, tempest-tossed to me:\\*
+ I lift my lamp beside the golden door.''
+ \end{verse}
+\end{lstcode}
+ The result is as follows:
+ \begin{ShowOutput}
+ \begin{verse}
+ Not like the brazen giant of Greek fame\\*
+ With conquering limbs astride from land to land\\*
+ Here at our sea-washed, sunset gates shall stand\\*
+ A mighty woman with a torch, whose flame\\*
+ Is the imprisoned lightning, and her name\\*
+ Mother of Exiles. From her beacon-hand\\*
+ Glows world-wide welcome; her mild eyes command\\*
+ The air-bridged harbor that twin cities frame.\\*
+ ``Keep, ancient lands, your storied pomp!'' cries she\\*
+ With silent lips. ``Give me your tired, your poor,\\*
+ Your huddled masses yearning to breathe free,\\*
+ The wretched refuse of your teeming shore.\\*
+ Send these, the homeless, tempest-tossed to me:\\*
+ I lift my lamp beside the golden door.''
+ \end{verse}
+ \end{ShowOutput}
+ \fi
+ However, if you have very long lines of verse where a line
+ break occurs within a line of verse:
+\begin{lstcode}
+ \begin{verse}
+ Both the philosopher and the house-owner
+ always have something to repair.\\*
+ \bigskip
+ Don't trust a man, my son, who tells you
+ that he has never lied.
+ \end{verse}
+\end{lstcode}
+ \begin{ShowOutput}
+ \begin{verse}
+ Both the philosopher and the house-owner always have something to
+ repair.\\
+ \bigskip Don't trust a man, my son, who tells you that he has never
+ lied.
+ \end{verse}
+ \end{ShowOutput}
+ in this case \verb|\\*| can not prevent a page break occurring within a
+ verse at such a line break. To prevent such a page break, a
+ \Macro{nopagebreak}\IndexCmd{nopagebreak} would have to be inserted
+ somewhere in the first line:
+\begin{lstcode}
+ \begin{verse}
+ Both the philosopher and the house-owner\nopagebreak{}
+ always have something to repair.\\
+ \bigskip
+ Don't trust a man, my son, who tells you\nopagebreak{}
+ that he has never lied.
+ \end{verse}
+\end{lstcode}
+ \iftrue% Umbruchkorrekturtext
+ Here are two sayings that should always be considered when confronted
+ with seemingly strange questions about {\LaTeX} or its accompanying
+ explanations:
+\begin{lstcode}
+ \begin{verse}
+ A little learning is a dangerous thing.\\*
+ Drink deep, or taste not the Pierian Spring;\\
+ \bigskip
+ Our judgments, like our watches, none\\*
+ go just alike, yet each believes his own.
+ \end{verse}
+\end{lstcode}
+ \begin{ShowOutput}
+ \iffree{}{\vskip-.8\baselineskip}% Umbruchkorrektur
+ \begin{verse}
+ A little learning is a dangerous thing.\\*
+ Drink deep, or taste not the Pierian Spring;\\
+ \bigskip
+ Our judgments, like our watches, none\\*
+ go just alike, yet each believes his own.
+ \end{verse}
+ \end{ShowOutput}
+ \fi
+ Incidentally, \Macro{bigskip} was used in these examples to separate two
+ sayings.
+ \end{Example}
+ \fi
+ %
+ \EndIndexGroup
+
+ \iftrue% Umbruchkorrekturvarianten
+ \begin{Declaration}
+ \begin{Environment}{quote}\end{Environment}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}This is
+ internally also a list environment\textnote{block quote with paragraph
+ spacing} and can be found both in the standard classes and in
+ {\KOMAScript}. The content of the environment is set fully justified.
+ The environment is often used to format longer quotes\Index{quotes}.
+ Paragraphs within the environment are distinguished with vertical space.%
+ \EndIndexGroup
+
+ \begin{Declaration}
+ \begin{Environment}{quotation}\end{Environment}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}This
+ environment\textnote{block quote with paragraph indent} is comparable to
+ \DescRef{\ThisCommonLabelBase.env.quote}. While
+ \DescRef{\ThisCommonLabelBase.env.quote} paragraphs are indicated by
+ vertical spacing, \Environment{quotation} indents the first line of each
+ paragraph horizontally. This also applies to the first paragraph of a
+ \Environment{quotation} environment. If you want to prevent the
+ indentation there, you must precede it with the
+ \Macro{noindent}\IndexCmd{noindent} command.%
+ \else
+ \begin{Declaration}
+ \begin{Environment}{quote}\end{Environment}
+ \begin{Environment}{quotation}\end{Environment}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{} These two
+ environments\textnote{block quotes} are also set internally as list
+ environments and can be found in both the standard and the {\KOMAScript}
+ classes. Both environments use justified text which is indented on both
+ the left and the right side. Often they are used to separate longer
+ quotations\Index{quotations} from the main text. The difference between
+ the two lies in in the manner in which paragraphs are typeset. While
+ \Environment{quote} paragraphs are distinguished by vertical space, in
+ \Environment{quotation} paragraphs, the first line is indented. This also
+ applies to the first line of a \Environment{quotation}
+ environment% Umbruchkorrektur
+ \IfThisCommonLabelBase{maincls}{%
+ , unless it is preceded by \Macro{noindent}\IndexCmd{noindent}.%
+ }{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ . If you want to prevent the indentation there, you must precede it
+ with the \Macro{noindent} command\IndexCmd{noindent}.%
+ }{\InternalCommonFileUsageError}%
+ }%
+ \fi % Umbruchkorrekturvarianten
+ \IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.quote}%
+ You want to highlight a short anecdote. You write the following
+ \Environment{quotation} environment for this:%
+\begin{lstcode}
+ A small example for a short anecdote:
+ \begin{quotation}
+ The old year was turning brown; the West Wind was
+ calling;
+
+ Tom caught the beechen leaf in the forest falling.
+ ``I've caught the happy day blown me by the breezes!
+ Why wait till morrow-year? I'll take it when me pleases.
+ This I'll mend my boat and journey as it chances
+ west down the withy-stream, following my fancies!''
+
+ Little Bird sat on twig. ``Whillo, Tom! I heed you.
+ I've a guess, I've a guess where your fancies lead you.
+ Shall I go, shall I go, bring him word to meet you?''
+ \end{quotation}
+\end{lstcode}
+ The result is:
+ \begin{ShowOutput}
+ A small example for a short anecdote:
+ \begin{quotation}
+ The old year was turning brown; the West Wind was
+ calling;
+
+ Tom caught the beechen leaf in the forest falling.
+ ``I've caught the happy day blown me by the breezes!
+ Why wait till morrow-year? I'll take it when me pleases.
+ This I'll mend my boat and journey as it chances
+ west down the withy-stream, following my fancies!''
+
+ Little Bird sat on twig. ``Whillo, Tom! I heed you.
+ I've a guess, I've a guess where your fancies lead you.
+ Shall I go, shall I go, bring him word to meet you?''
+ \end{quotation}
+ \end{ShowOutput}
+ %
+ Using a \Environment{quote} environment instead you get:
+ %
+ \begin{ShowOutput}
+ A small example for a short anecdote:
+ \begin{quote}\setlength{\parskip}{4pt plus 2pt minus 2pt}
+ The old year was turning brown; the West Wind was
+ calling;
+
+ Tom caught the beechen leaf in the forest falling.
+ ``I've caught the happy day blown me by the breezes!
+ Why wait till morrow-year? I'll take it when me pleases.
+ This I'll mend my boat and journey as it chances
+ west down the withy-stream, following my fancies!''
+
+ Little Bird sat on twig. ``Whillo, Tom! I heed you.
+ I've a guess, I've a guess where your fancies lead you.
+ Shall I go, shall I go, bring him word to meet you?''
+ \end{quote}
+ \end{ShowOutput}
+ %
+ \end{Example}
+ \fi
+ %
+ \EndIndexGroup
+\fi
+
+\begin{Declaration}
+ \begin{Environment}{addmargin}
+ \OParameter{left indentation}\Parameter{indentation}
+ \end{Environment}
+ \begin{Environment}{addmargin*}
+ \OParameter{inner indentation}\Parameter{indentation}
+ \end{Environment}
+\end{Declaration}
+Like \IfThisCommonLabelBase{scrextend}{%
+ \DescRef{\ThisCommonFirstLabelBase.env.quote} and
+ \DescRef{\ThisCommonFirstLabelBase.env.quotation}, which are available in
+ the standard and the \KOMAScript{} classes}{%
+ \DescRef{\ThisCommonLabelBase.env.quote} and
+ \DescRef{\ThisCommonLabelBase.env.quotation}%
+}, the \Environment{addmargin} environment changes the margin\Index{margin}.
+However, unlike the first two environments, \Environment{addmargin} lets the
+user change the width of the indentation. Apart from this change, this
+environment does not change the indentation of the first line nor the vertical
+spacing between paragraphs.
+
+If only the obligatory argument \PName{indentation} is given, both the left
+and right margin are expanded by this value. If the optional argument
+\PName{left indentation} is given as well, then the value \PName{left
+ indentation} is used for the left margin instead of \PName{indentation}.
+
+The starred variant \Environment{addmargin*}%
+\important{\Environment{addmargin*}} differs from the normal version only in
+the two-sided mode. Furthermore, the difference only occurs if the optional
+argument \PName{inner indentation} is used. In this case, the value of
+\PName{inner indentation} is added to the normal inner indentation. For
+right-hand pages this is the left margin; for left-hand pages, the right
+margin. Then the value of \PName{indentation} determines the width of the
+opposite margin.
+
+Both versions of this environment allow negative values for all parameters.
+\IfThisCommonLabelBase{scrextend}{%
+ The environment then protrudes into the margin accordingly.%
+}{%
+ This can be done so that the environment protrudes into the margin.%
+}%
+\IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.addmargin}%
+\begin{lstcode}
+ \newenvironment{SourceCodeFrame}{%
+ \begin{addmargin*}[1em]{-1em}%
+ \begin{minipage}{\linewidth}%
+ \rule{\linewidth}{2pt}%
+ }{%
+ \rule[.25\baselineskip]{\linewidth}{2pt}%
+ \end{minipage}%
+ \end{addmargin*}%
+ }
+\end{lstcode}
+ If you now put your source code in such an environment, it will show
+ up as:
+ \begin{ShowOutput}
+ \newenvironment{SourceCodeFrame}{%
+ \begin{addmargin*}[1em]{-1em}%
+ \begin{minipage}{\linewidth}%
+ \rule{\linewidth}{2pt}%
+ }{%
+ \rule[.25\baselineskip]{\linewidth}{2pt}%
+ \end{minipage}%
+ \end{addmargin*}%
+ }
+ You define the following environment:
+ \begin{SourceCodeFrame}
+\begin{lstcode}
+\newenvironment{\SourceCodeFrame}{%
+ \begin{addmargin*}[1em]{-1em}%
+ \begin{minipage}{\linewidth}%
+ \rule{\linewidth}{2pt}%
+}{%
+ \rule[.25\baselineskip]{\linewidth}{2pt}%
+ \end{minipage}%
+ \end{addmargin*}%
+}
+\end{lstcode}
+ \end{SourceCodeFrame}
+ This may be feasible or not. In any case, it shows the usage of this
+ environment.
+ \end{ShowOutput}
+ The optional argument of the \Environment{addmargin*} environment
+ makes sure that the inner margin is extended by 1\Unit{em}. In turn
+ the outer margin is decreased by 1\Unit{em}. The result is a shift
+ by 1\Unit{em} to the outside. Instead of \PValue{1em}, you can of
+ course use a length, for example, \PValue{2\Macro{parindent}}.
+ \end{Example}
+\fi%
+
+Whether a page is going to be on the left or right side of the book cannot be
+determined reliably on the first {\LaTeX} run. For details please refer to
+the explanation of the commands
+\DescRef{\ThisCommonLabelBase.cmd.ifthispageodd}
+(\autoref{sec:\ThisCommonLabelBase.oddOrEven},
+\DescPageRef{\ThisCommonLabelBase.cmd.ifthispageodd}) and
+\iffree{\Macro{ifthispagewasodd}}{%
+ \DescRef{maincls-experts.cmd.ifthispagewasodd}}
+(\autoref{sec:maincls-experts.addInfos}\iffree{}{,
+\DescPageRef{maincls-experts.cmd.ifthispageodd}}).
+\IfThisCommonLabelBase{scrlttr2}{}{%
+\begin{Explain}
+ The interplay of environments such as lists and paragraphs gives rise to
+ frequent questions. Therefore, you can find further explanation in the
+ description of the \Option{parskip} option in
+ \autoref{sec:maincls-experts.addInfos}\iffree{}{,
+ \DescPageRef{maincls-experts.option.parskip}. Also in the expert section, in
+ \autoref{sec:maincls-experts.addInfos},
+ \DescPageRef{maincls-experts.env.addmargin*}, you can find additional
+ information about page breaks inside \Environment{addmargin*}}.%
+\end{Explain}}%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-marginpar.tex b/macros/latex/contrib/koma-script/source-doc/english/common-marginpar.tex
new file mode 100644
index 0000000000..05e2bdd1f3
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-marginpar.tex
@@ -0,0 +1,144 @@
+% ======================================================================
+% common-marginpar.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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-marginpar.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-marginpar.tex}
+ [$Date: 2019-01-15 08:29:44 +0100 (Tue, 15 Jan 2019) $
+ KOMA-Script guide (common paragraphs)]
+\translator{Gernot Hassenpflug\and Markus Kohm\and Karl Hagen}
+
+% Date of the translated German file: 2018-01-29
+
+\section{Marginal Notes}
+\seclabel{marginNotes}%
+\BeginIndexGroup
+\BeginIndex{}{marginal notes}%
+
+\IfThisCommonFirstRun{}{%
+ The information in \autoref{sec:\ThisCommonFirstLabelBase.marginNotes}
+ applies equally to this chapter. So if you have already read and understood
+ \autoref{sec:\ThisCommonFirstLabelBase.marginNotes}, you can skip ahead to
+ \autoref{sec:\ThisCommonLabelBase.marginNotes.next},
+ \autopageref{sec:\ThisCommonLabelBase.marginNotes.next}.%
+}
+
+In addition to the text area, which normally fills the type area, documents
+often contain a column for marginalia. You can set marginal notes in this
+area.
+\IfThisCommonLabelBase{scrlttr2}{%
+ In letters, however, marginal notes are unusual and should be used
+ sparingly.%
+}{%
+ This \iffree{guide}{book} makes frequent use of them.%
+}%
+
+
+\begin{Declaration}
+ \Macro{marginpar}\OParameter{margin note left}\Parameter{margin note}%
+ \Macro{marginline}\Parameter{margin note}
+\end{Declaration}%
+Marginal notes\Index[indexmain]{marginal notes} in {\LaTeX} are usually
+inserted with the \Macro{marginpar} command. They are placed in the outer
+margin. One-sided documents use the right border. Although you can specify a
+different marginal note for \Macro{marginpar} in case it winds up in the left
+margin, marginal notes are always fully justified. However, experience has
+shown that many users prefer left- or right-justified marginal notes
+instead. For this purpose, {\KOMAScript} offers the \Macro{marginline}
+command.
+
+\IfThisCommonFirstRun{%
+ \iftrue%
+}{%
+ For a detailed example, see
+ \autoref{sec:\ThisCommonFirstLabelBase.marginNotes} at
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.marginline}.%
+ \csname iffalse\endcsname%
+}%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.marginline}%
+ In some parts of this \iffree{guide}{book}, the class name
+ \Class{scrartcl} can be found in the margin. You can produce this with:%
+ \iftrue% Umbruchkorrekturtext
+ \footnote{Actually, instead of \Macro{texttt}, a semantic markup
+ was used. To avoid confusion, this has been replaced in the example.}%
+ \fi
+\begin{lstcode}
+ \marginline{\texttt{scrartcl}}
+\end{lstcode}
+
+ Instead of \Macro{marginline} you could have used \Macro{marginpar}. In fact
+ the first command is implemented internally as:
+\begin{lstcode}
+ \marginpar[\raggedleft\texttt{scrartcl}]
+ {\raggedright\texttt{scrartcl}}
+\end{lstcode}
+ Thus \Macro{marginline} is really just a shorthand notation for the
+ code above.%
+\end{Example}%
+\fi
+
+Advanced users\textnote{Attention!} will find notes about difficulties that
+can arise using \Macro{marginpar} in \autoref{sec:maincls-experts.addInfos}%
+\iffree{}{, on \DescPageRef{maincls-experts.cmd.marginpar}}. These remarks
+also apply to \Macro{marginline}. In addition,
+\autoref{cha:scrlayer-notecolumn} introduces a package that you can use to
+create note columns with their own page breaks.%
+\iftrue% Umbruchkorrektur
+ \ However, the
+ \hyperref[cha:scrlayer-notecolumn]{\Package{scrlayer-notecolumn}}%
+ \IndexPackage{scrlayer-notecolumn} package is more a proof of concept than a
+ finished package.%
+\fi%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-oddorevenpage.tex b/macros/latex/contrib/koma-script/source-doc/english/common-oddorevenpage.tex
new file mode 100644
index 0000000000..04ff2b91ac
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-oddorevenpage.tex
@@ -0,0 +1,132 @@
+% ======================================================================
+% common-oddorevenpage.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-oddorevenpage.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-oddorevenpage.tex}
+ [$Date: 2018-03-30 09:37:06 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (common paragraph: Detection of Odd and
+ Even Pages)]
+\translator{Markus Kohm\and Krickette Murabayashi\and Karl Hagen}
+
+% Date of the translated German file: 2018-01-30
+
+\section{Detecting Odd and Even Pages}
+\seclabel{oddOrEven}%
+\BeginIndexGroup%
+\BeginIndex{}{page>odd}%
+\BeginIndex{}{page>even}%
+
+\IfThisCommonFirstRun{}{%
+ The information in \autoref{sec:maincls.oddOrEven} applies equally to this
+ chapter. So if you have already read and understood
+ \autoref{sec:\ThisCommonFirstLabelBase.oddOrEven}, you can skip ahead to
+ \autopageref{sec:\ThisCommonLabelBase.oddOrEven.next},
+ \autopageref{sec:\ThisCommonLabelBase.oddOrEven.next}.%
+}
+
+In two-sided documents we distinguish left and right pages. Left pages always
+have an even page number, and right pages always have an odd page number. %
+\IfThisCommonLabelBase{maincls}{%
+ Identifying right and left pages is equivalent to identifying even- or
+ odd-numbered pages, and so we normally refer to them as even and odd pages
+ in this \iffree{guide}{book}.
+
+ % Umbruchkorrekturtext
+ \iftrue%
+ In one-sided documents, the distinction between left and right pages does
+ not exist. Nevertheless, there are still pages with even and odd page
+ numbers.%
+ \fi%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ As a rule, letters will be set one-sided. However, if you need to print
+ letters using both sides of the paper or, in exceptional cases, are
+ generating real two-sided letters, it may be useful to know whether you
+ are currently on an even or odd page.%
+ }{}%
+}
+
+
+\begin{Declaration}
+ \Macro{ifthispageodd}\Parameter{true part}\Parameter{false part}
+\end{Declaration}%
+If you want to determine whether text appears on an even or odd page,
+\KOMAScript{} provides the \Macro {ifthispageodd} command. The \PName{true
+ part} argument is executed only if you are currently on an odd page.
+Otherwise the \PName{false part} argument is executed.
+
+\begin{Example}
+ Suppose you simply want to show whether a text will be placed onto an
+ even or odd page. You may achieve that using
+\begin{lstcode}
+ This page has an \ifthispageodd{odd}{even}
+ page number.
+\end{lstcode}
+ This results in the output
+ \begin{quote}
+ This page has an \ifthispageodd{odd}{even} page number.
+ \end{quote}
+\end{Example}
+
+Because the \Macro{ifthispageodd} command uses a mechanism that is very
+similar to a label and a reference to it, at least two {\LaTeX} runs are
+required after each change to the text. Only then will the decision be
+correct. In the first run, a heuristic is used to make the initial choice.
+
+\iffree{}{In \autoref{sec:maincls-experts.addInfos},
+\DescPageRef{maincls-experts.cmd.ifthispageodd}, advanced users can find more
+information about the problems of detecting left and right pages, or even and
+odd page numbers.}%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-options.tex b/macros/latex/contrib/koma-script/source-doc/english/common-options.tex
new file mode 100644
index 0000000000..fff22502bb
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-options.tex
@@ -0,0 +1,231 @@
+% ======================================================================
+% common-options.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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-options.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-options.tex}
+ [$Date: 2017-12-07 23:10:55 -0800 (Thu, 07 Dec 2017) $
+ KOMA-Script guide (common paragraphs)]
+\translator{Gernot Hassenpflug\and Krickette Murabayashi\and Karl Hagen}
+
+% Date of the translated German file: 2018-10-23
+
+\section{Early or Late Selection of Options}
+\seclabel{options}
+\BeginIndexGroup
+\BeginIndex{}{options}%
+
+\IfThisCommonFirstRun{%
+ This section introduces a special feature of \KOMAScript{} which, in
+ addition to \IfThisCommonLabelBase{typearea}{\Package{typearea}}{%
+ \IfThisCommonLabelBase{maincls}{\Class{scrbook}, \Class{scrreprt}, and
+ \Class{scrartcl}}{%
+ \IfThisCommonLabelBase{scrlttr2}{the \Class{scrlttr2} class}{%
+ \IfThisCommonLabelBase{scrextend}{the classes and
+ \Package{scrextend}}{%
+ \IfThisCommonLabelBase{scrhack}{\Package{scrhack}}{%
+ \IfThisCommonLabelBase{scrjura}{\Package{scrjura}}{%
+ \IfThisCommonLabelBase{scrlayer}{\Package{scrlayer}}{%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage}}{%
+ \IfThisCommonLabelBase{scrlayer-notecolumn}{%
+ \Package{scrlayer-notecolumn}}{%
+ \InternalCommonFileUsageError}}}}}}}}}%
+ , is also relevant to other \KOMAScript{} packages and classes. %
+ \IfThisCommonLabelBase{scrlttr2}{So that each chapter may stand on its own,
+ this section appears in nearly identical form in several chapters, but if
+ you are studying all of \KOMAScript{}, you of course only need to read it
+ one time.%
+ }{This section appears in nearly identical form in several chapters, so you
+ can find all the information about a single package or class in the
+ relevant chapter. Users who are interested not just in a particular
+ package or class but in getting an overview of \KOMAScript{} as a whole
+ only need to read this section in one of the chapters and can
+ \IfThisCommonLabelBase{maincls}{skip the rest of the chapter.}{%
+ then skip it as they study the guide.}%
+ }%
+}{%
+ The information in \autoref{sec:\ThisCommonFirstLabelBase.options} applies
+ equally to this chapter. So if you have already read and understood
+ \autoref{sec:\ThisCommonFirstLabelBase.options}, you can skip ahead to
+ \autoref{sec:\ThisCommonLabelBase.options.next},
+ \autopageref{sec:\ThisCommonLabelBase.options.next}.%
+}
+
+
+
+\begin{Declaration}
+ \Macro{documentclass}\OParameter{option list}%
+ \Parameter{{\KOMAScript} class}
+ \Macro{usepackage}\OParameter{option list}%
+ \Parameter{package list}
+\end{Declaration}
+\LaTeX{} allows users to pass class options\textnote{class options} as a
+comma-separated list of keywords in the optional argument to
+\Macro{documentclass}. In addition to being passed to the class, these options
+are also passed on to all packages\textnote{global options} that can
+understand them. Users can also pass a similar comma-separated list of
+keywords in the optional argument of \Macro{usepackage}\textnote{packet
+ options}. \KOMAScript{} extends\ChangedAt{v3.00}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}\and \Package{scrextend}\and
+ \Package{typearea}} the option mechanism for
+\IfThisCommonLabelBaseOneOf{scrextend,scrjura}{}{the \KOMAScript{} classes and
+} some packages with further options. Thus most \KOMAScript{} options can also
+take a value, so an option does not necessarily take the form \PName{option},
+but can also take the form \PName{option}\texttt{=}\PName{value}%
+\important{\PName{option}\texttt{=}\PName{value}}. Except for this difference,
+\Macro{documentclass} and \Macro{usepackage} in \KOMAScript{} function as
+described in \cite{latex:usrguide} or any introduction to \LaTeX, for example
+\cite{lshort}.%
+%
+\iffree{}{\IfThisCommonLabelBase{scrlayer-scrpage}{\par
+ Incidentally, the \Package{scrpage2}\IndexPackage{scrpage2}%
+ \important{\Package{scrpage2}} package, which is considered obsolete, does
+ not have this extension. It therefore understands only simple options without
+ an assigned value.\par}{}}%
+
+\IfThisCommonLabelBaseNotOneOf{%
+ scrjura,scrhack,scrlayer,scrlayer-scrpage,scrlayer-notecolumn,scrextend%
+}{%
+ When using a \KOMAScript{} class\textnote{Attention!}, you should not
+ specify options when loading the \Package{typearea} or \Package{scrbase}
+ packages. The reason for this restriction is that the class already loads
+ these packages without options, and \LaTeX{} refuses to load a package
+ multiple times with different option settings.%
+ \IfThisCommonLabelBaseOneOf{maincls,scrlttr2}{ In general, it is not
+ necessary to load either one of these packages explicitly when using any
+ \KOMAScript{} class.}{}%
+ \par
+}{}
+
+% Umbruchoptimierung!!!
+\IfThisCommonLabelBase{typearea}{Setting the options with
+ \Macro{documentclass} has one\textnote{Attention!} major disadvantage: %
+}{%
+ Note that \Macro{documentclass} has one drawback when using the option
+ interface described bellow\textnote{Attention!}: %
+}%
+unlike the interface described below, the options in \Macro{documentclass} are
+not robust. So commands, lengths, counters, and such constructs may break
+inside the optional argument of this command. For example, with many
+non-\KOMAScript{} classes, using a \LaTeX{} length in the value of an option
+results in an error%
+\IfThisCommonLabelBaseNotOneOf{maincls,scrlttr2}{ before the value is passed
+ to a \KOMAScript{} package and it can take control of the option
+ execution}{}%
+. So if you want to use a \LaTeX{} length, counter, or command as part of the
+value of an option, you should use \DescRef{\LabelBase.cmd.KOMAoptions} or
+\DescRef{\LabelBase.cmd.KOMAoption}. These commands will be described next.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{KOMAoptions}\Parameter{option list}
+ \Macro{KOMAoption}\Parameter{option}\Parameter{value list}
+\end{Declaration}
+\KOMAScript{}\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}\and \Package{scrextend}\and \Package{typearea}} also
+provides the ability to change the values of most
+\IfThisCommonLabelBaseOneOf{scrextend,scrjura}{}{class and }package options
+even after loading the \IfThisCommonLabelBaseOneOf{scrextend,scrjura}{}{%
+ class or} package. You can use the \Macro{KOMAoptions} command to change the
+values of a list of options, as in
+\DescRef{\ThisCommonLabelBase.cmd.documentclass} or
+\DescRef{\ThisCommonLabelBase.cmd.usepackage}. Each option in the
+\PName{option list} has the form \PName{option}\texttt{=}\PName{value}%
+\important{\PName{option}\texttt{=}\PName{value},\dots}.
+
+Some options also have a default value. If you do not specify a value, that is
+if you give the option simply as \PName{option}, then this default value will
+be used.
+
+Some options can have several values simultaneously. For such options, it is
+possible, with the help of \Macro{KOMAoption}, to pass a list of values to a
+single \PName{option}. The individual values are given as a comma-separated
+\PName{value list}\important{\PName{value},\dots}.
+
+\begin{Explain}
+ \KOMAScript{} uses the commands \DescRef{scrbase.cmd.FamilyOptions} and
+ \DescRef{scrbase.cmd.FamilyOption} with the family ``\PValue{KOMA}'' to
+ implement this ability.
+ \IfThisCommonLabelBaseOneOf{typearea}{% Umbruchkorrektur
+ Advanced users will find more on these instructions in
+ \autoref{sec:scrbase.keyvalue}, \DescPageRef{scrbase.cmd.FamilyOptions}.
+ }{%
+ See \autoref{part:forExperts}, \autoref{sec:scrbase.keyvalue},
+ \DescPageRef{scrbase.cmd.FamilyOptions}. }%
+\end{Explain}
+
+Options set with \Macro{KOMAoptions} or \Macro{KOMAoption} will reach
+\IfThisCommonLabelBase{scrextend}{}{both the \KOMAScript{} class and }any
+previously loaded \KOMAScript{} packages that recognise these options. If an
+option or a value is unknown, \hyperref[cha:scrbase]{\Package{scrbase}}%
+\IndexPackage{scrbase}\important{\hyperref[cha:scrbase]{\Package{scrbase}}}
+will report it as an error.%
+%
+\iffalse% Umbruchkorrekturtext
+\iffree{}{\IfThisCommonLabelBase{scrlayer-scrpage}{\par
+ Incidentally, the \Package{scrpage2}\IndexPackage{scrpage2}%
+ \important{\Package{scrpage2}}, which is considered obsolete, does not have
+ this extension. Options can therefore only be set when the package is loaded
+ with the option explained previously.}{}}%
+\fi%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\phantomsection
+\label{sec:\ThisCommonLabelBase.options.end}
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-pagestylemanipulation.tex b/macros/latex/contrib/koma-script/source-doc/english/common-pagestylemanipulation.tex
new file mode 100644
index 0000000000..3a3933167d
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-pagestylemanipulation.tex
@@ -0,0 +1,1038 @@
+% ======================================================================
+% common-pagestylemanipulation.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-pagestylemanipulation.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-pagestylemanipulation.tex}
+ [$Date: 2018-02-05 01:50:56 -0800 (Mon, 05 Feb 2018) $
+ KOMA-Script guide (common paragraph:
+ Setting up defined page styles)]
+\translator{Markus Kohm\and Jana Schubert\and Karl Hagen}
+
+% Date version of the translated file: 2018-02-05
+
+\section{Manipulating Page Styles}
+\seclabel{pagestyle.content}
+\BeginIndexGroup
+\BeginIndex{}{page>style}
+
+\IfThisCommonLabelBase{scrlayer}{%
+ Although \Package{scrlayer} itself does not define concrete page styles with
+ content\,---\,the previously mentioned page styles
+ \DescRef{\LabelBase.pagestyle.@everystyle@} and \PageStyle{empty} are
+ initially defined without any layers, i.\,e., without content\,---\,, the
+ package provides some options and commands to manipulate their contents.%
+}{%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \autoref{sec:scrlayer-scrpage.predefined.pagestyles} explains how the page
+ styles \DescRef{\LabelBase.pagestyle.scrheadings} and
+ \DescRef{\LabelBase.pagestyle.plain.scrheadings} are defined and how these
+ defaults can be changed. But topics such as creating running headers,
+ changing the widths of the header and footer, and putting horizontal lines
+ above or below the header or footer have yet to be described. Although
+ these capabilities are actually part of the
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ \important{\hyperref[cha:scrlayer]{\Package{scrlayer}}} package, they will
+ be explained below because these basic features of
+ \hyperref[cha:scrlayer]{\Package{scrlayer}} make up an important part of
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\Package{scrlayer-scrpage}%
+ }{%
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ }.%
+ }{%
+ \IfThisCommonLabelBase{scrlayer-scrpage-experts}{%
+ This section is a supplement to
+ \autoref{sec:scrlayer.pagestyle.content}. It describes features that may
+ be too complicated for beginners.%
+ }{\InternalCommonFileUsageError}%
+ }%
+}
+
+\IfThisCommonLabelBase{scrlayer-scrpage-experts}{\iffalse}{%
+ \csname iftrue\endcsname}%
+ \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}
+ \end{Declaration}
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \begin{Explain}
+ In both the standard \LaTeX{} classes and the \KOMAScript{} classes, the
+ decision of whether to use automatic or static running
+ heads\Index{running heads>automatic}\Index{running heads>static} is made
+ by using the appropriate page style. Running heads repeat some
+ descriptive text, such as a title, that is appropriate to the page or
+ column, usually in the header, more rarely in the footer. As already
+ explained in
+ \autoref{sec:maincls.pagestyle}, you get automatic running heads with
+ \DescRef{maincls.pagestyle.headings}\IndexPagestyle{headings}%
+ \important{\DescRef{maincls.pagestyle.headings}}
+
+ In the article classes\OnlyAt{\Class{article}\and \Class{scrartcl}}
+ \Class{article} or \hyperref[cha:maincls]{\Class{scrartcl}}, the
+ \PageStyle{headings}\IndexPagestyle{headings} page style uses the
+ section heading, which is either the mandatory or the optional argument
+ of \DescRef{maincls.cmd.section}, for the running head%
+ \textnote{automatic running head} of one-sided documents. Two-sided
+ documents use this section heading as the \emph{left mark} and the
+ subsection heading as the \emph{right mark}. The left mark is printed,
+ as the name indicates, on left-hand (verso) pages. The right mark is
+ printed on right-hand (recto)\,---\,in one-sided printing this means on
+ all\,---\,pages. The classes by default also delete 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. Thus they use the chapter heading as the right mark in one-sided
+ printing. In two-sided printing, the chapter heading is the left mark
+ and the section heading is the right mark.
+
+ If you use \DescRef{maincls.pagestyle.myheadings}%
+ \IndexPagestyle{myheadings}%
+ \important{\DescRef{maincls.pagestyle.myheadings}}\textnote{manual
+ running head}, the marks in the page header still exist, and the page
+ numbers are placed in the same way, but section commands no longer set
+ the marks automatically. You can set them manually\important{%
+ \DescRef{\ThisCommonLabelBase.cmd.markright}\\
+ \DescRef{\ThisCommonLabelBase.cmd.markboth}} using the commands
+ \DescRef{\ThisCommonLabelBase.cmd.markright} and
+ \DescRef{\ThisCommonLabelBase.cmd.markboth}, which are described later
+ in this section.
+ \end{Explain}\par
+ }{%
+ \IfThisCommonLabelBase{scrlayer}{%
+ For most classes, the choice of a page style\,---\,generally
+ \PageStyle{headings} or \PageStyle{myheading}\,---\,determines whether
+ the running heads are created automatically or manually. %
+ }{\InternalCommonFileUsageError}%
+ }%
+ This distinction has been eliminated by %
+ \iffalse \Package{scrpage2} and now also by \fi%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}\IndexPackage{scrlayer}. Instead
+ of distinguishing between automatic\textnote{automatic and manual running
+ heads} and manual running heads by which page style is selected, there are
+ two new commands: \Macro{automark} and \Macro{manualmark}.
+
+ The \Macro{manualmark}\important{\Macro{manualmark}} command switches to
+ manual marks and deactivates the automatic filling of the marks. In contrast,
+ \Macro{automark}\important{\Macro{automark}} and \Macro{automark*} define
+ which section levels should be used to set the mark automatically. 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 should always be the name of a section level like
+ \PValue{part}, \PValue{chapter}, \PValue{section}, \PValue{subsection},
+ \PValue{subsubsection}, \PValue{paragraph}, or \PValue{subparagraph}.
+
+ Normally, 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 requirement,
+ but it makes sense.
+
+ Please note\textnote{Attention!} that not every class provides running heads
+ for every section level. For example, the standard classes\textnote{%
+ \KOMAScript{} vs. standard classes} never use \DescRef{maincls.cmd.part}
+ in the heading. The \KOMAScript{} classes, on the other hand, support all
+ levels.
+
+ The difference between \Macro{automark} and \Macro{automark*}%
+ \important{\Macro{automark*}} is that \Macro{automark} overrides all
+ previous commands to automatically set the mark, while \Macro{automark*}
+ changes only the behaviour of the section levels specified in its
+ arguments.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{}{ With this feature you can handle
+ relatively complex cases.}% Umbruchoptimierung
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\iftrue}{\csname
+ iffalse\endcsname}%
+ \iffalse% Umbruchkorrekturtext
+ \iffree{}{\par
+ The obsolete package
+ \Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}}
+ understands both \Macro{manualmark} and \Macro{automark}, but not
+ \Macro{automark*}. Therefore the following examples are not completely
+ transferable when using \Package{scrpage2}.%
+ }%
+ \fi
+ %
+ \begin{Example}
+ \phantomsection\xmpllabel{mark}%
+ Suppose you want chapter headings to be used as the running head of even
+ pages and the section heading to be the running head of odd pages, as
+ usual. But on odd pages you also want the chapter headings to be used as
+ the running head until the first section appears. To do so, you first
+ have to load \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage}%
+ }{%
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}
+ and select the \DescRef{\LabelBase.pagestyle.scrheadings} page style,
+ so the document starts with:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage{scrlayer-scrpage}
+ \pagestyle{scrheadings}
+\end{lstcode}
+ Next, ensure that the chapter headings set both the left and the right
+ marks:
+\begin{lstcode}
+ \automark[chapter]{chapter}
+\end{lstcode}
+ Then the section heading should also set right marks:
+\begin{lstcode}
+ \automark*[section]{}
+\end{lstcode}
+ Here the starred version is used, since the previous \Macro{automark}
+ command should remain in effect. Additionally, the mandatory argument
+ for the \PName{section level of the left mark} is empty because this
+ mark should remain unchanged.
+
+ All that's missing now is a bit of document content to show the result:
+\begin{lstcode}
+ \usepackage{lipsum}
+ \begin{document}
+ \chapter{Chapter Heading}
+ \lipsum[1-20]
+ \section{Section Heading}
+ \lipsum[21-40]
+ \end{document}
+\end{lstcode}
+ We use the extremely useful \Package{lipsum}\IndexPackage{lipsum}
+ package to generate some dummy text with command
+ \Macro{lipsum}\IndexCmd{lipsum}.
+
+ If you test the example, you will see that the first page of the chapter
+ appears, as usual, without a running head, since this page automatically
+ uses the \PageStyle{plain} page style
+ \DescRef{\LabelBase.pagestyle.plain.scrheadings} (see the
+ \DescRef{maincls.cmd.chapterpagestyle} on
+ \DescPageRef{maincls.cmd.chapterpagestyle}). 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 to this section heading. From
+ this page to the end, the running head alternates from page to page
+ between the chapter and section headings.%
+ \end{Example}
+ \fi
+
+ \begin{Declaration}
+ \Option{automark}
+ \OptionVName{autooneside}{simple switch}
+ \Option{manualmark}
+ \end{Declaration}
+ Instead of the commands described previously, you can also use the
+ \Option{manualmark}\important{\Option{manualmark}\\\Option{automark}} and
+ \Option{automark} options to switch between automatic and manual running
+ heads. \Option{automark} always uses the default\textnote{default}
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\iftrue}{\csname
+ iffalse\endcsname}%
+ \lstinline|\automark[section]{chapter}| for classes with
+ \DescRef{maincls.cmd.chapter} and
+ \lstinline|\automark[subsection]{section}| for other classes.
+ \else
+\begin{lstcode}
+ \automark[section]{chapter}
+\end{lstcode}
+ for classes with \DescRef{maincls.cmd.chapter} and
+\begin{lstcode}
+ \automark[subsection]{section}
+\end{lstcode}
+ for other classes.
+ \fi
+
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ In one-sided printing, you normally want only the higher section levels
+ to provide the running title.%
+ }{%
+ In one-sided printing, you normally do not want the lower section level
+ to influence the right mark. Instead, you want the higher section
+ level, which would appear in only the left mark in two-sided printing, to
+ be the running head of all pages.%
+ } The default option \Option{autooneside}\important{\Option{autooneside}}
+ corresponds to this behaviour. The option accepts the values for
+ simple switches listed in \autoref{tab:truefalseswitch},
+ \autopageref{tab:truefalseswitch}. If you deactivate this option, the
+ optional and mandatory arguments of \Macro{automark} and \Macro{automark*}
+ will again control the running head in one-sided printing.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\iftrue}{\csname
+ iffalse\endcsname}%
+ \begin{Example}
+ \phantomsection\xmpllabel{mark.oneside}%
+ Suppose you have a one-sided report but want running heads similar to
+ those in the previous book example. Specifically, the chapter headings
+ should be used as the running head until the first section appears.
+ From the then 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}
+ As you can see an \DescRef{\LabelBase.cmd.automark*} command is not
+ required in this case. You should try the example with
+ \Option{autooneside} set to \PValue{true}, or remove the option, for
+ comparison. You will notice a difference in the running head from
+ page~4 on.
+ \end{Example}
+ \fi
+
+ Note\textnote{Attention!} that merely loading the package does not have any
+ effect on whether automatic or manual running heads are used, or what kind
+ of sectioning headings fill the marks. Only by explicitly using the option
+ \Option{automark} or \Option{manualmark}, or the command
+ \DescRef{\LabelBase.cmd.automark} or \DescRef{\LabelBase.cmd.manualmark},
+ will the conditions here be initialized.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\par%
+ You can find additional background information and examples of how to use
+ these commands in the documentation for the \Package{scrlayer} package
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage}%
+ }{%
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ } in \autoref{sec:scrlayer-scrpage.pagestyle.content}, starting on
+ \DescPageRef{scrlayer-scrpage.cmd.manualmark}.%
+ }{}%
+ \EndIndexGroup
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \OptionVName{draft}{simple switch}
+ \end{Declaration}
+ This \KOMAScript{} option accepts the values for simple switches
+ listed in \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}.
+ If this option is active, all elements of the page styles will also show
+ rulers\index{ruler}%
+ \IfThisCommonLabelBase{scrlayer}{ for}{%
+ . This can sometimes be useful during}
+ the drafting process.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{ %
+ If this option has been set globally (see the optional argument
+ of \DescRef{\LabelBase.cmd.documentclass}) but you do not want the
+ rulers, you can deactivate them for this package alone by using
+ \OptionValue{draft}{false} as an optional argument of
+ \DescRef{\LabelBase.cmd.usepackage} while loading the package.%
+ }{}%
+ \EndIndexGroup
+
+ \begin{Declaration}
+ \Macro{MakeMarkcase}\Parameter{text}
+ \end{Declaration}
+ Automatic running heads, but not manual ones, use \Macro{MakeMarkcase} for
+ their output. If the command has not been defined, e.\,g., by the class
+ while loading \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ }, it is defined by default to output the argument \PName{text} without
+ changes. But the default can be changed either by redefining
+ \Macro{MakeMarkcase} or by using the \DescRef{\LabelBase.option.markcase}%
+ \IndexOption{markcase}\important{\DescRef{\LabelBase.option.markcase}}
+ option, which will be described next. Depending on the setting, the
+ argument can, e.\,g., be converted into upper or lower case.%
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \OptionVName{markcase}{value}
+ \end{Declaration}
+ As explained earlier, with \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } you can choose between manual and automatic running heads. Using automatic
+ running heads, the corresponding marks are set using the section heading
+ commands. In some cultures, in contrast to the typography of German-speaking
+ countries, it is common practice to set the running heads in upper-case
+ letters. The \LaTeX{} standard classes do so by default. The
+ \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } package also offers this as an option. To do so, use the
+ \OptionValue{markcase}{upper}\important{\OptionValue{markcase}{upper}}%
+ \IndexOption[indexmain]{markcase~=upper} option, which redefines
+ \DescRef{scrlayer.cmd.MakeMarkcase}\IndexCmd[indexmain]{MakeMarkcase}.
+
+ \IfThisCommonLabelBase{scrlayer}{%
+ Because of the poor typographical quality of the primitive capitalisation
+ routine (see the explanation of \DescRef{scrlayer-scrpage.option.markcase}
+ in \autoref{sec:scrlayer-scrpage.pagestyle.content},
+ \autopageref{expl:scrlayer-scrpage.MakeUppercase}) the author of
+ \KOMAScript recommends that you avoid upper-case typesetting for running
+ heads.%
+ }{%
+ Unfortunately,\phantomsection\label{expl:\ThisCommonLabelBase.MakeUppercase}
+ the \LaTeX{} command for converting text to upper case\Index{upper case},
+ \Macro{MakeUppercase}\IndexCmd{MakeUppercase}, does not produce good
+ results because it neither spaces characters nor balances lines
+ appropriately. This is certainly in part due to the fact that a
+ typographically correct upper-case conversion requires analysing the
+ glyphs to account for the different letter shapes \iffree{and their
+ combinations}{} while balancing the block. I therefore recommend that
+ you avoid upper-case typesetting for running heads.%
+ } This is usually possible with \OptionValue{markcase}{used}\important{%
+ \OptionValue{markcase}{used}}\IndexOption[indexmain]{markcase~=used}.
+ However, some classes insert \Macro{MarkUppercase}, or even the \TeX{}
+ command \Macro{uppercase}, into the running heads. For such cases, you can
+ use the option \OptionValue{markcase}{noupper}%
+ \important{\OptionValue{markcase}{noupper}}%
+ \IndexOption[indexmain]{markcase~=noupper}. 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}%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{}{,
+ \autopageref{tab:scrlayer-scrpage.markcase}}.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \begin{table}
+ \centering
+ \caption[Available values for the \Option{markcase} option]{Available
+ values for the \Option{markcase} option to select upper/lower case
+ typesetting in automatic running heads}%
+ \label{tab:\ThisCommonLabelBase.markcase}%
+ \begin{desctabular}
+ \pventry{lower}{\IndexOption[indexmain]{markcase~=lower}%
+ redefines \DescRef{\LabelBase.cmd.MakeMarkcase} to convert the
+ automatic running heads into lower-case letters using
+ \Macro{MakeLowercase} (lower case typesetting).%
+ }%
+ \pventry{upper}{\IndexOption[indexmain]{markcase~=upper}%
+ redefines \DescRef{\LabelBase.cmd.MakeMarkcase} to convert the
+ automatic running heads into upper-case letters using
+ \Macro{MakeUppercase} (upper case typesetting).%
+ }%
+ \pventry{used}{\IndexOption[indexmain]{markcase~=used}%
+ redefines \DescRef{\LabelBase.cmd.MakeMarkcase} to use automatic
+ running heads without any case changes.%
+ }%
+ \entry{\PValue{ignoreuppercase}, \PValue{nouppercase},
+ \PValue{ignoreupper},
+ \PValue{noupper}}{\IndexOption[indexmain]{markcase~=noupper}%
+ redefines not only \DescRef{\LabelBase.cmd.MakeMarkcase} but also
+ \Macro{MakeUppercase} and \Macro{uppercase} locally to the running
+ heads to leave the automatic running heads unchanged.%
+ }%
+ \end{desctabular}
+ \end{table}
+ }{}%
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \Macro{leftmark}
+ \Macro{rightmark}
+ \Macro{headmark}
+ \Macro{pagemark}
+ \end{Declaration}
+ If you want to depart from the predefined page styles, you typically need to
+ decide where to place the marks' contents. With
+ \Macro{leftmark}\important{\Macro{leftmark}} you can define what will
+ appear in the left mark when the page is output.
+
+ Similarly, you can use \Macro{rightmark}\important{\Macro{rightmark}} to
+ define the contents of the right mark.\iffree{}{ For information about some
+ subtleties when using these commands, see further
+ \DescRef{maincls-experts.cmd.rightmark} in
+ \autoref{sec:maincls-experts.addInfos},
+ \DescPageRef{maincls-experts.cmd.rightmark}.}
+
+ You can make life easier with \Macro{headmark}\important{\Macro{headmark}}.
+ This extension of \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } is a shorthand that resolves to either \Macro{leftmark} or
+ \Macro{rightmark} depending on whether the current page is even or odd.
+
+ The \Macro{pagemark}\important{\Macro{pagemark}} command has nothing to do
+ with \TeX's mark mechanism. It is serves to output a formatted page number.
+ \BeginIndex{FontElement}{pagenumber}\LabelFontElement{pagenumber}%
+ The font of element
+ \FontElement{pagenumber}\important{\FontElement{pagenumber}} will be used
+ for the output. This can be changed using the \Macro{setkomafont} or
+ \DescRef{maincls.cmd.addtokomafont} commands (see also
+ \autoref{sec:maincls.textmarkup}, \DescPageRef{maincls.cmd.setkomafont}).%
+ \EndIndex{FontElement}{pagenumber}%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\iftrue}{%
+ \par %
+ If you are interested in an example showing the usage of the
+ \Macro{headmark} and \Macro{pagemark} commands, see
+ \autoref{sec:scrlayer-scrpage.pagestyle.content},
+ \PageRefxmpl{scrlayer-scrpage.cmd.headmark}. Internally, the
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage}%
+ }{%
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ } package uses many such features of
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ }{%
+ \Package{scrlayer}%
+ }.%
+ \csname iffalse\endcsname}%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.headmark}%
+ Suppose you want the running head to be aligned to the left margin and
+ the page number to the right margin in one-sided printing. The following
+ minimal working example does just this:
+\begin{lstcode}
+ \documentclass{scrreprt}
+ \usepackage{blindtext}
+ \usepackage[automark]{scrlayer-scrpage}
+ \pagestyle{scrheadings}
+ \ihead{\headmark}
+ \ohead*{\pagemark}
+ \chead{}
+ \cfoot[]{}
+ \begin{document}
+ \blinddocument
+ \end{document}
+\end{lstcode}
+ The \Package{blindtext}\IndexPackage{blindtext} package and its
+ \Macro{blinddocument}\IndexCmd{blinddocument} command have been used
+ here to quickly generate sample document content for the example.
+
+ The \DescRef{scrlayer-scrpage.cmd.ihead}\IndexCmd{ihead} and
+ \DescRef{scrlayer-scrpage.cmd.ohead*}\IndexCmd{ohead*} commands
+ configure the desired marks. The starred variant
+ \DescRef{scrlayer-scrpage.cmd.ohead*} %
+ \iffalse% Umbruchvarianten
+ configures the page number mark not only on the pages set with the
+ \DescRef{\LabelBase.pagestyle.scrheadings}%
+ \IndexPagestyle{scrheadings} page style but also those set
+ with the \PageStyle{plain} %
+ \else%
+ also configures the page number with the %
+ \fi%
+ \DescRef{\LabelBase.pagestyle.plain.scrheadings}%
+ \IndexPagestyle{plain.scrheadings} page style used on the first page of
+ a chapter.%
+
+ Because these page styles have predefined marks in the centre of the
+ header and footer, those elements are cleared by using
+ \DescRef{scrlayer-scrpage.cmd.chead} and
+ \DescRef{scrlayer-scrpage.cmd.cfoot} with empty arguments. Alternatively
+ you could use
+ \DescRef{scrlayer-scrpage-experts.cmd.clearpairofpagestyles}
+ \IndexCmd{clearpairofpagestyles} \emph{before}
+ \DescRef{scrlayer-scrpage.cmd.ihead}. You will find this command
+ described in \autoref{sec:scrlayer-scrpage-experts.pagestyle.pairs}.
+ \end{Example}
+
+ Please note\textnote{Attention!} that the empty optional argument of
+ \DescRef{scrlayer-scrpage.cmd.cfoot} in the example above is not the same
+ as omitting the optional argument. You should try it yourself and have a
+ look at the difference in the footer of the first page.%
+ \fi
+
+ \IfThisCommonLabelBase{scrlayer-scrpage}{% Umbruchvarianten
+ Advanced users can find more mark-setting commands%
+ }{%
+ If the options for the marks described above are not sufficient,
+ additional commands for advanced users are documented%
+ } %
+ starting on \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \DescPageRef{scrlayer-scrpage-experts.cmd.righttopmark}}{%
+ \DescPageRef{\ThisCommonLabelBase.cmd.righttopmark}}.%
+ \iffalse% Umbruchkorrektur
+ \ For example, there you can find
+ \DescRef{scrlayer-scrpage-experts.cmd.leftfirstmark} and
+ \DescRef{scrlayer-scrpage-experts.cmd.rightbotmark}, which are quite useful
+ for documents like lexicons.%
+ \fi%
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \Macro{partmarkformat}%
+ \Macro{chaptermarkformat}%
+ \Macro{sectionmarkformat}%
+ \Macro{subsectionmarkformat}%
+ \Macro{subsubsectionmarkformat}%
+ \Macro{paragraphmarkformat}%
+ \Macro{subparagraphmarkformat}
+ \end{Declaration}
+ \KOMAScript{} classes and the \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } package typically use these commands internally to format the section
+ numbers. They also support the \DescRef{maincls.cmd.autodot} mechanism of
+ the \KOMAScript{} classes. If desired, these commands can be redefined to
+ achieve a different formatting of section numbers.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\iftrue}{%
+ \ See the example in \autoref{sec:scrlayer-scrpage.pagestyle.content},
+ \PageRefxmpl{scrlayer-scrpage.cmd.sectionmarkformat} for more
+ information.%
+ \csname iffalse\endcsname%
+ }%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.sectionmarkformat}%
+ \iftrue
+ For example, if you want to have running heads without a section
+ number, this is how you do it:
+ \else
+ Suppose you want section headings without the section number to appear
+ in the running head. This can be accomplished easily with the
+ following:
+ \fi
+\begin{lstcode}[belowskip=-\dp\strutbox]
+ \renewcommand*{\sectionmarkformat}{}
+\end{lstcode}
+ \end{Example}
+ \fi%
+ \EndIndexGroup
+
+
+ \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}
+ Most classes use these commands internally to set the marks according to the
+ sectioning commands. The argument should contain the text without the number
+ of the sectioning unit. The number is automatically determined using the
+ current section level if you use numbered headings.
+
+ However\textnote{Attention!}, not all classes use such a command for
+ every section level. The standard classes\textnote{\KOMAScript{} vs.
+ standard classes}, for example, do not call \Macro{partmark}
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ upon a \Macro{part} command}{%
+ , whereas the \KOMAScript{} classes naturally support \Macro{partmark} as
+ well}.
+
+ If you redefine these commands, be sure\textnote{Attention!} to check
+ whether the numbers will be output via the
+ \DescRef{maincls.counter.secnumdepth} before setting the number even if you
+ do not change the \DescRef{maincls.counter.secnumdepth} counter yourself,
+ because packages and classes may do so locally and rely on correct handling
+ of \DescRef{maincls.counter.secnumdepth}.
+
+ The \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } package also redefines these commands whenever you use
+ \DescRef{scrlayer.cmd.automark} or \DescRef{scrlayer.cmd.manualmark} or the
+ corresponding options, to activate or deactivate the desired running heads.%
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \Macro{markleft}\Parameter{left mark}%
+ \Macro{markright}\Parameter{right mark}%
+ \Macro{markboth}\Parameter{left mark}\Parameter{right mark}
+ \end{Declaration}
+ Regardless of whether you are working with manual or automatic running
+ heads, you can always change the contents of the \PName{left mark} or the
+ \PName{right mark} using these commands. Note that the left-hand mark
+ resulting from \Macro{leftmark}\IndexCmd{leftmark}%
+ \important{\Macro{leftmark}} will be the last mark placed on the
+ corresponding page, while the right-hand mark resulting from
+ \Macro{rightmark}\IndexCmd{rightmark}\important{\Macro{rightmark}} is the
+ first mark placed on the corresponding page. For more details, see
+ \iffree{}{the additional explanation of
+ \DescRef{maincls-experts.cmd.rightmark} in
+ \autoref{sec:maincls-experts.addInfos},
+ \DescPageRef{maincls-experts.cmd.rightmark} or} to
+ \DescRef{scrlayer.cmd.rightfirstmark}\IfThisCommonLabelBase{scrlayer}{}{ in
+ \autoref{sec:scrlayer.pagestyle.content}},
+ \DescPageRef{scrlayer.cmd.rightfirstmark}.
+
+ If you are using manual running heads\Index{running head>manual}, the marks
+ remain valid until they are explicitly replaced by reusing the corresponding
+ commands. However, if you are using automatic running heads, the marks can
+ become invalid with the next section heading, depending on the automatic
+ configuration.
+
+ You can also use these commands in conjunction with the starred versions of
+ the sectioning commands.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\iftrue}{%
+ \ You can find detailed examples illustrating usage of \Macro{markboth}
+ with the \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ }{%
+ \Package{scrlayer}%
+ }-derived package \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage}%
+ }{%
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ } in
+ \autoref{sec:scrlayer-scrpage.pagestyle.content},
+ \PageRefxmpl{scrlayer-scrpage.cmd.markboth}.%
+ \csname iffalse\endcsname%
+ }%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.markboth}%
+ Suppose you write a preface of several pages placed just before the
+ table of contents but not appearing in it. However, since you use
+ dividing lines in your header, you want 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}
+ At first glance, this seems to produce the desired result. Taking a
+ second look, however, you can see that the running title
+ ``\texttt{Preface}'' does not appear in upper-case letters, unlike the
+ other running heads. But that's easy to change:
+\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 \DescRef{\LabelBase.cmd.MakeMarkcase} results in getting
+ the same letter case as for automatic running heads.
+
+ Now, let's move the \DescRef{maincls.cmd.tableofcontents} in front
+ of the preface and remove the \Macro{markboth} command. You'll
+ discover that the preface now has the running head
+ ``\texttt{CONTENTS}''. This is due to a quirk of
+ \DescRef{maincls.cmd.chapter*} (see also \autoref{sec:maincls.structure}
+ on \DescPageRef{maincls.cmd.chapter*}). If you do not want a running
+ head here, you can easily accomplish this by passing two empty arguments
+ to \Macro{markboth}:
+\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}
+ \fi%
+ \EndIndexGroup
+\fi
+
+
+\IfThisCommonLabelBase{scrlayer-scrpage}{\iffalse}{\csname iftrue\endcsname}
+ \begin{Declaration}
+ \Macro{GenericMarkFormat}\Parameter{name of the section level}
+ \end{Declaration}
+ By default, this command is used to format all section numbers in running
+ heads below the subsection level, and for classes without
+ \DescRef{maincls.cmd.chapter}, also for the section and subsection levels,
+ unless the respective mark commands for those levels are defined before
+ loading \Package{scrlayer}. The command causes the package to use
+ \Macro{@seccntmarkformat}\IndexCmd{@seccntmarkformat}%
+ \important{\Macro{@seccntmarkformat}} if this internal command is defined,
+ as it is in the \KOMAScript{} classes. Otherwise \Macro{@seccntformat}%
+ \IndexCmd{@seccntformat}\important{\Macro{@seccntformat}} will be used,
+ which is provided by the \LaTeX{} kernel. The mandatory argument of the
+ command contains the name of a sectioning command, such as \PValue{chapter}
+ or \PValue{section} \emph{without} the backslash prefix.
+
+ By redefining this command, you can change the default number format for all
+ sectioning commands that use it. Classes can also change the default
+ formatting also by defining this command.%
+ \IfThisCommonLabelBase{scrlayer-scrpage-experts}{\iftrue}{%
+ \par %
+ A detailed example illustrating the interplay of the
+ \Macro{GenericMarkFormat} command with the
+ \DescPageRef{\ThisCommonLabelBase.cmd.chaptermark} command and
+ \DescRef{\ThisCommonLabelBase.cmd.sectionmarkformat} or
+ \DescRef{\ThisCommonLabelBase.cmd.subsectionmarkformat} when using
+ the \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ }-derived package \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage}%
+ }{%
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ } is shown in \autoref{sec:scrlayer-scrpage-experts.pagestyle.content},
+ \PageRefxmpl{scrlayer-scrpage-experts.cmd.GenericMarkFormat}.%
+ \csname iffalse\endcsname}%
+ \begin{Example}
+ \phantomsection
+ \xmpllabel{cmd.GenericMarkFormat}%
+ Suppose you want the section numbers of all levels in the running head
+ of an article to be printed in white within a black box. Since the
+ commands \Macro{sectionmarkformat} and \Macro{subsectionmarkformat} of
+ the \Package{scrlayer} package are defined with
+ \Macro{GenericMarkFormat} for articles using the standard \LaTeX{}
+ \Class{article} class, you need to redefine only this one 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 changed using the
+ \Package{xcolor}\IndexPackage{xcolor} package. More details can be found
+ in that package's manual (see \cite{package:xcolor}).
+
+ This example also uses an invisible strut. Any detailed \LaTeX{}
+ introduction should explain the related command \Macro{strut}.
+
+ A helper macro, \Macro{numberbox}, has been defined to format the number
+ within a box. This command is prefixed in the redefinition of
+ \Macro{GenericMarkFormat} by \Macro{protect} in order to protect it from
+ expansion. This is necessary because otherwise the upper-case letter
+ conversion of \Macro{MakeUppercase} for the running head, would result
+ in using the colours ``\texttt{BLACK}'' and ``\texttt{WHITE}'' instead
+ of ``\texttt{black}'' and ``\texttt{white}'', and those colours are
+ undefined. Alternatively, you could define \Macro{numberbox} using
+ \Macro{DeclareRobustCommand*} instead of \Macro{newcommand*} and omit
+ \Macro{protect} (see \cite{latex:clsguide}).
+
+ If you wanted to achieve the same effect with a \KOMAScript{} class or
+ with the standard \LaTeX{} classes \Class{book} or \Class{report}, you
+ would also have to redefine, respectively,
+ \DescRef{scrlayer.cmd.sectionmarkformat}\IndexCmd{sectionmarkformat}%
+ \important{\DescRef{scrlayer.cmd.sectionmarkformat}} and
+ \DescRef{scrlayer.cmd.subsectionmarkformat}%
+ \IndexCmd{subsectionmarkformat}%
+ \important{\DescRef{scrlayer.cmd.subsectionmarkformat}}, or
+ \DescRef{scrlayer.cmd.chaptermarkformat}%
+ \IndexCmd{chaptermarkformat}%
+ \important{\DescRef{scrlayer.cmd.chaptermarkformat}} and
+ \DescRef{scrlayer.cmd.sectionmarkformat}%
+ \IndexCmd{sectionmarkformat}%
+ \important{\DescRef{scrlayer.cmd.sectionmarkformat}}, because
+ these are not by default 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}
+ \fi%
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \Macro{righttopmark}%
+ \Macro{rightbotmark}%
+ \Macro{rightfirstmark}%
+ \Macro{lefttopmark}%
+ \Macro{leftbotmark}%
+ \Macro{leftfirstmark}
+ \end{Declaration}
+ \LaTeX\ChangedAt{v3.16}{\Package{scrlayer}} typically uses a two-part
+ \TeX{} mark for page styles. Running heads can access the left part of that
+ mark with \DescRef{scrlayer.cmd.leftmark}%
+ \important{\DescRef{scrlayer.cmd.leftmark}}\IndexCmd{leftmark} and the right
+ part with \DescRef{scrlayer.cmd.rightmark}%
+ \important{\DescRef{scrlayer.cmd.rightmark}}\IndexCmd{rightmark}. In fact,
+ it was probably intended to use \DescRef{scrlayer.cmd.leftmark} for the
+ running head of left (even) pages and \DescRef{scrlayer.cmd.rightmark} for
+ the running head of right (odd) pages of two-sided documents. In
+ one-sided printing, however, the standard classes do not even set the left
+ part of the mark.
+
+ \TeX{} itself knows three ways to access a mark. The \Macro{botmark}%
+ \IndexCmd{botmark}\important{\Macro{botmark}} is the last valid mark of the
+ most recent page that has been built. If no mark has been set on the page,
+ it corresponds to the last mark set on the pages that have already been
+ shipped out. The \LaTeX{} command \DescRef{scrlayer.cmd.leftmark} uses
+ precisely this mark, so it returns the left part of the last mark of the
+ page. This corresponds exactly to \Macro{leftbotmark}%
+ \important{\Macro{leftbotmark}}. By comparison, \Macro{rightbotmark}%
+ \important{\Macro{rightbotmark}} prints the right part of this mark.
+
+ \Macro{firstmark}\IndexCmd{firstmark}\important{\Macro{firstmark}} is the
+ first mark of the last page that has been built. This is the first mark that
+ has been set on the page. If no mark has been set on the page, it
+ corresponds to the last mark of the pages that have already been shipped
+ out. The \LaTeX{} command \DescRef{scrlayer.cmd.rightmark} uses precisely
+ this mark, so it returns the right part of the first mark of the page. This
+ corresponds exactly to \Macro{rightfirstmark}%
+ \important{\Macro{rightfirstmark}}. By comparison, \Macro{leftfirstmark}%
+ \important{\Macro{leftfirstmark}} prints the left part of this mark.
+
+ \Macro{topmark}\IndexCmd{topmark}\important{\Macro{topmark}} is the content
+ that \Macro{botmark} had before building the current page. \LaTeX{} itself
+ does not use it. Nevertheless, \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } provides \Macro{lefttopmark}\important{\Macro{lefttopmark}} to access the
+ left part of this mark and \Macro{righttopmark}%
+ \important{\Macro{righttopmark}} to access the right part.
+
+ Note\textnote{Attention!} that the left and right portions of the mark
+ can only be set together. Even if you use
+ \DescRef{scrlayer.cmd.markright}\IndexCmd{markright} to change only the
+ right part, the left part will set again (unchanged). Accordingly, in
+ two-sided printing, using the \PageStyle{headings}%
+ \important{\PageStyle{headings}}\IndexPagestyle{headings} page style,
+ the higher section levels always make both parts. For example,
+ \DescRef{scrlayer.cmd.chaptermark} uses \DescRef{scrlayer.cmd.markboth} with
+ an empty right argument in this case. This is the reason
+ \DescRef{scrlayer.cmd.rightmark} or \Macro{rightfirstmark} always shows an
+ empty value on pages which start a chapter, even if there was a
+ \DescRef{scrlayer.cmd.sectionmark} or \DescRef{maincls.cmd.section} on the
+ same page to make the right part of the mark.
+
+ Please note\textnote{Attention!} that using any of these commands to show
+ the left or right part of the mark as part of the page content may lead to
+ unexpected results. They are really meant for use in the header or footer
+ of a page style only. Therefore, they should always be part of the contents
+ of a layer when using \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ }. But it does not matter whether the layer is restricted to the background
+ or the foreground, since all layers are shipped out after building the
+ current page.
+
+ If you need more information about the mark mechanism
+ \iffree{of \TeX{}}{\unskip}, please have a look at
+ \cite[chapter~23]{knuth:texbook}. The topic is flagged there as an issue for
+ real experts. \IfThisCommonLabelBase{scrlayer}{% Umbruchkorrektur
+ So if the explanation above confused you, please don't worry about it.}{}%
+ \EndIndexGroup
+
+
+ \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}
+ Within classes and packages, you may only want to use running heads if
+ automatic running heads are active (see the
+ \DescRef{scrlayer.option.automark} option and the
+ \DescRef{scrlayer.cmd.automark} command on
+ \DescPageRef{scrlayer-scrpage.cmd.automark}). In the standard \LaTeX{}
+ classes, this only works with \Macro{@mkboth}. This command corresponds to
+ either \Macro{@gobbletwo}, which simply consumes both mandatory arguments,
+ or \DescRef{scrlayer.cmd.markboth}, which sets both the \PValue{left mark}
+ and the \PValue{right mark}. Packages like \Package{babel} also change
+ \Macro{\@mkboth}, e.\,g., to enable language switching in the running head.
+
+ However, if you want to change only the \PName{left mark} or the
+ \PName{right mark} without changing the other one, there is no corresponding
+ command. The \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } package itself needs such commands to implement automatic running heads.
+ So if \Macro{@mkleft}, for setting the left mark only, or \Macro{@mkright},
+ for setting the right mark only, or \Macro{@mkdouble}, for setting both
+ marks with the same content, is undefined when loading
+ \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ }, this package will define them. This definition uses the state of
+ \Macro{@mkboth} as an indication of whether to use automatic running heads.
+ The commands will set the marks only in the case of automatic running heads.
+
+ Class and package authors can also fall back on these commands as appropriate
+ if they want to set the left or right the marks only if automatic running
+ heads are activated.%
+ \EndIndexGroup%
+\fi%
+%
+\IfThisCommonLabelBase{scrlayer}{%
+ \par
+ For more information about manipulating the contents of page styles, see
+ also \autoref{sec:scrlayer-scrpage.pagestyle.content} starting at
+ \autopageref{sec:scrlayer-scrpage.pagestyle.content}.%
+}{}%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide.tex"
+%%% TeX-PDF-mode: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-parmarkup.tex b/macros/latex/contrib/koma-script/source-doc/english/common-parmarkup.tex
new file mode 100644
index 0000000000..647d09dde3
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-parmarkup.tex
@@ -0,0 +1,270 @@
+% ======================================================================
+% common-parmarkup.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-parmarkup.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-parmarkup.tex}
+ [$Date: 2018-03-30 09:37:06 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (common paragraph: Paragraph Markup)]
+\translator{Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi\and
+ Karl Hagen}
+
+% Date of the translated German file: 2018-01-31
+
+\section{Marking Paragraphs}
+\seclabel{parmarkup}%
+\BeginIndexGroup
+\BeginIndex{}{paragraph>marking}%
+
+\IfThisCommonLabelBase{maincls}{%
+ The\textnote{paragraph indent vs. paragraph spacing} standard classes
+ normally set paragraphs\Index[indexmain]{paragraph} indented and without any
+ vertical, inter-paragraph space. This is the best solution when using a
+ regular page layout like the ones produced with the \Package{typearea}
+ package. If neither indentation nor vertical space is used, only the length
+ of the last line would give the reader a guide to the paragraph break. In
+ extreme cases, it is very difficult to tell whether a line is full or not.
+ Furthermore, typographers find that a signal given at the paragraph's end is
+ easily forgotten by the start of the next line. A signal at the paragraph's
+ beginning is more easily remembered. Inter-paragraph spacing has the
+ drawback of disappearing in some contexts. For instance, after a displayed
+ formula it would be impossible to detect if the previous paragraph continues
+ or a new one begins. Also, at the top of a new page, it might be necessary
+ to look at the previous page to determine if a new paragraph has been
+ started or not. All these problems disappear when using indentation. A
+ combination of indentation and vertical inter-paragraph spacing is redundant
+ and therefore should be avoided. Indentation\Index[indexmain]{indentation}
+ alone is sufficient. The only drawback of indentation is that it shortens
+ the line length. The use of inter-paragraph spacing\Index{paragraph>spacing}
+ is therefore justified when using short lines, such as in a newspaper.%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ The preliminaries of \autoref{sec:maincls.parmarkup},
+ \autopageref{sec:maincls.parmarkup} explain why paragraph indentation is
+ preferred to paragraph spacing. But the elements to which this explanation
+ refers, for example figures, tables, lists, equations, and even new pages,
+ are rare in normal letters. Letters are usually not so long that an
+ unrecognised paragraph will have serious consequences to the readability
+ of the document. The arguments for indentation, therefore, are less
+ consequential for standard letters. This may be one reason that you often
+ find paragraphs in letters marked with vertical spacing. But two
+ advantages of paragraph indentation remain. One is that such a letter
+ stands out from the crowd. Another is that it maintains the \emph{brand
+ identity}, that is the uniform appearance, of all documents from a single
+ source.%
+ }{\InternalCommonFileUsageError}%
+} %
+\IfThisCommonFirstRun{}{%
+ Apart from these suggestions, the information described in
+ \autoref{sec:\ThisCommonFirstLabelBase.parmarkup} for the other
+ \KOMAScript{} classes is valid for letters too. So if you have already read
+ and understood \autoref{sec:\ThisCommonFirstLabelBase.parmarkup} you can
+ skip ahead to \autoref{sec:\ThisCommonLabelBase.parmarkup.next} on
+ \autopageref{sec:\ThisCommonLabelBase.parmarkup.next}.%
+ \IfThisCommonLabelBase{scrlttr2}{ %
+ This also applies if you work not with the
+ \Class{scrlttr2}\OnlyAt{scrlttr2} class but with the \Package{scrletter}
+ package. The package does not provide its own settings for paragraph
+ formatting but relies entirely on the class being used.%
+ }{}%
+}
+
+
+\begin{Declaration}
+ \OptionVName{parskip}{method}
+\end{Declaration}
+\IfThisCommonLabelBase{maincls}{%
+ Once in a while you may require a document layout with vertical
+ inter-paragraph spacing instead of indentation. The \KOMAScript{} classes
+ provide several ways to accomplish this with the
+ \Option{parskip}\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} option.%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ In letters, you often encounter paragraphs marked not by indentation of
+ the first line but by a vertical space between them. The \KOMAScript{}
+ class \Class{scrlttr2}\OnlyAt{scrlttr2} provides ways to accomplish this
+ with the \Option{parskip} option.%
+ }{\InternalCommonFileUsageError}%
+} %
+The \PName{method} consists of two elements. The first element is either
+\PValue{full}\important{\OptionValue{parskip}{full}\\
+ \OptionValue{parskip}{half}} or \PValue{half}, where \PValue{full} stands
+for a paragraph spacing of one line and \PValue{half} stands for a paragraph
+spacing of half a line. The second element consists of one of the characters
+``\PValue{*}'', ``\PValue{+}'', or ``\PValue{-}'' and can be omitted. Without
+the second element\important{\OptionVName{parskip}{distance}}, the final line
+of a paragraph will end with a white space of at least 1\Unit{em}. With the
+plus character as the second element%
+\important{\OptionValue{parskip}{\PName{distance}+}}, the white space will be
+at least one third\,---\,and with the
+asterisk\important{\OptionValue{parskip}{\PName{distance}*}} one
+fourth\,---\,the width of a normal line. With the minus variant%
+\important{\OptionValue{parskip}{\PName{Abstand}-}}, no provision is made for
+white space in the last line of a paragraph.
+
+You can change the setting at any time. If you change it inside the document,
+the \Macro{selectfont}\IndexCmd{selectfont}%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.08}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.08}{\Class{scrlttr2}}%
+ }{%
+ \InternalComonFileUsageError%
+ }%
+} %
+command will be called implicitly. Changes to paragraph spacing within a
+paragraph will not be visible until the end of the paragraph.
+
+In addition to the resulting eight combinations for \PName{method}, you can
+use the values for simple switches shown in \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch}. Activating the option%
+\important{\Option{parskip}\\\OptionValue{parskip}{true}} corresponds to using
+\PValue{full} with no second element and therefore results in inter-paragraph
+spacing of one line with at least 1\Unit{em} white space at the end of the
+last line of each paragraph. Deactivating%
+\important{\OptionValue{parskip}{false}} the option re-activates the default
+indentation of 1\Unit{em} at the first line of the paragraph instead of
+paragraph spacing. A summary of all possible values for \PName{method} are
+shown in \autoref{tab:\ThisCommonFirstLabelBase.parskip}%
+\IfThisCommonFirstRun{.%
+ \begin{desclist}
+ % Umbruchkorrektur
+ \vskip-\ht\strutbox
+ \renewcommand{\abovecaptionskipcorrection}{-\normalbaselineskip}%
+% \begin{table}
+ \desccaption
+% \caption
+ [{Available values of option \Option{parskip}}]{%
+ Available values of option \Option{parskip} to select
+ how paragraph are
+ distinguished\label{tab:\ThisCommonFirstLabelBase.parskip}%
+ }%
+ {%
+ Available values of option \Option{parskip} (\emph{continuation})%
+ }%
+ % \begin{desctabular}
+ \entry{\PValue{false}, \PValue{off}, \PValue{no}%
+ \IndexOption{parskip~=\textKValue{false}}}{%
+ paragraph indentation instead of vertical space; the last line of a
+ paragraph can be arbitrarily filled}%
+ \entry{\PValue{full}, \PValue{true}, \PValue{on}, \PValue{yes}%
+ \IndexOption{parskip~=\textKValue{full}}%
+ }{%
+ one line vertical space between paragraphs; there must be at least
+ 1\Unit{em} free space in the last line of a paragraph}%
+ \pventry{full-}{%
+ one line vertical space between paragraphs; the last line of a paragraph
+ can be arbitrarily filled\IndexOption{parskip~=\textKValue{full-}}}%
+ \pventry{full+}{%
+ one line vertical space between paragraphs; there must be at least a third
+ of a line of free space at the end of a
+ paragraph\IndexOption{parskip~=\textKValue{full+}}}%
+ \pventry{full*}{%
+ one line vertical space between paragraphs; there must be at least a
+ quarter of a line of free space at the end of a
+ paragraph\IndexOption{parskip~=\textKValue{full*}}}%
+ \pventry{half}{%
+ half a line vertical space between paragraphs; there must be at least
+ 1\Unit{em} free space in the last line of a
+ paragraph\IndexOption{parskip~=\textKValue{half}}}%
+ \pventry{half-}{%
+ one line vertical space between
+ paragraphs\IndexOption{parskip~=\textKValue{half-}}}%
+ \pventry{half+}{%
+ half a line vertical space between paragraphs; there must be at least a
+ third of a line of free space at the end of a
+ paragraph\IndexOption{parskip~=\textKValue{half+}}}%
+ \pventry{half*}{%
+ half a line vertical space between paragraphs; there must be at least a
+ quarter of a line of free space at the end of a
+ paragraph\IndexOption{parskip~=\textKValue{half*}}}%
+ \pventry{never}{%
+ there%
+ \IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.08}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ }{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.08}{\Class{scrlttr2}}%
+ }{}%
+ } %
+ will be no inter-paragraph spacing even if additional vertical spacing is
+ needed for the vertical adjustment with
+ \Macro{flushbottom}\IndexCmd{flushbottom}%
+ \IndexOption{parskip~=\textKValue{never}}}%
+% \end{desctabular}
+% \end{table}%
+ \end{desclist}%
+}{ at \autopageref{tab:\ThisCommonFirstLabelBase.parskip}.}
+
+All\textnote{Attention!} eight \PValue{full} and \PValue{half} option values
+also change the spacing before, after, and inside list environments. This
+prevents these environments or the paragraphs inside them from having
+a larger separation than that between the paragraphs of normal text.%
+\IfThisCommonLabelBase{maincls}{ %
+ Additionally, these options ensure that the table of contents and the lists
+ of figures and tables are set without any additional spacing.%
+}{ %
+ Several elements of the letterhead are always set without inter-paragraph
+ spacing.%
+}%
+
+The default\textnote{default} behaviour of \KOMAScript{} is
+\OptionValue{parskip}{false}. In this case, there is no spacing between
+paragraphs, only an indentation of the first line by 1\Unit{em}.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-textmarkup.tex b/macros/latex/contrib/koma-script/source-doc/english/common-textmarkup.tex
new file mode 100644
index 0000000000..49cbe456ed
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-textmarkup.tex
@@ -0,0 +1,805 @@
+% ======================================================================
+% common-textmarkup.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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-textmarkup.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-textmarkup.tex}
+ [$Date: 2019-01-15 08:29:44 +0100 (Tue, 15 Jan 2019) $
+ KOMA-Script guide (common paragraphs)]
+\translator{Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi\and
+ Karl Hagen}
+
+% Date of the translated German file: 2018-07-20
+
+\section{Text Markup}
+\seclabel{textmarkup}%
+\BeginIndexGroup%
+\BeginIndex{}{text>markup}%
+\BeginIndex{}{font}%
+
+\IfThisCommonFirstRun{}{%
+ The information in in \autoref{sec:\ThisCommonFirstLabelBase.textmarkup}
+ largely applies to this chapter. So if you have already read and understood
+ \autoref{sec:\ThisCommonFirstLabelBase.textmarkup}, you can
+ \IfThisCommonLabelBaseOneOf{scrextend,scrjura,scrlayer-notecolumn}{}{%
+ limit yourself to examining
+ \autoref{tab:\ThisCommonLabelBase.fontelements},
+ \autopageref{tab:\ThisCommonLabelBase.fontelements} and then }%
+ skip ahead to \autoref{sec:\ThisCommonLabelBase.textmarkup.next},
+ \autopageref{sec:\ThisCommonLabelBase.textmarkup.next}.%
+ \IfThisCommonLabelBase{scrextend}{\ In this case, however,
+ note\textnote{limitation} that \Package{scrextend} supports only the
+ elements for the document title, the dictum, the footnotes, and the
+ \DescRef{maincls.env.labeling} environment. from
+ \autoref{tab:maincls.fontelements},
+ \autopageref{tab:maincls.fontelements}. Although the
+ \DescRef{maincls.fontelement.disposition} element exists,
+ \Package{scrextend} uses it only for the document title.%
+ }{}%
+}
+
+% Umbruchkorrektur
+\IfThisCommonLabelBase{scrlayer-scrpage}{}{%
+ {\LaTeX} offers different possibilities for logical and direct
+ markup\Index{logical markup}\Index{markup} of text. %
+ \IfThisCommonLabelBaseOneOf{scrlttr2}{}{%
+ In addition to the choice of the font, this includes commands for choosing
+ the font size and orientation. %
+ } For more information about the standard font facilities, see
+ \cite{lshort}, \cite{latex:usrguide}, and \cite{latex:fntguide}.}
+
+\IfThisCommonLabelBaseOneOf{scrlayer-scrpage,scrjura,scrlayer-notecolumn}{%
+ \iffalse}{%
+ \csname iftrue\endcsname}%
+ \begin{Declaration}
+ \Macro{textsuperscript}\Parameter{text}%
+ \Macro{textsubscript}\Parameter{text}
+ \end{Declaration}
+ The \LaTeX{} kernel defines the command
+ \Macro{textsuperscript}\IndexCmd{textsuperscript} to put text in
+ superscript\Index{text>superscript}\Index{superscript}. Unfortunately,
+ \LaTeX{}\textnote{\Latex~2015/01/01} itself did not offer a command to
+ produce text in subscript\Index{text>subscript}\Index{subscript} until
+ release 2015/01/01. \KOMAScript{} defines \Macro{textsubscript} for this
+ purpose. %
+ \ifthiscommonfirst
+ \begin{Example}
+ \phantomsection
+ \xmpllabel{cmd.textsubscript}%
+ You are writing a text on human metabolism. From time to time you
+ have to give some simple chemical formulas in which the numbers are
+ in subscript. To allow for logical markup, you first define in the
+ document preamble or in a separate package:
+\begin{lstcode}
+ \newcommand*{\molec}[2]{#1\textsubscript{#2}}
+\end{lstcode}
+ \newcommand*{\molec}[2]{#1\textsubscript{#2}}
+ Using this you then write:
+\begin{lstcode}
+ The cell produces its energy partly from the reaction of \molec C6\molec
+ H{12}\molec O6 and \molec O2 to produce \molec H2\Molec O{} and
+ \molec C{}\molec O2. However, arsenic (\molec{As}{}) has quite a
+ detrimental effect on the metabolism.
+\end{lstcode}
+ The output looks as follows:
+ \begin{ShowOutput}
+ The cell produces its energy partly from the reaction of \molec C6\molec
+ H{12}\molec O6 and \molec O2 to produce \molec H2\molec O{} and
+ \molec C{}\molec O2. However, arsenic (\molec{As}{}) has quite a
+ detrimental effect on the metabolism.
+ \end{ShowOutput}
+
+ Some time later you decide that the chemical formulas should be
+ typeset in sans serif. Now you can see the advantages of using
+ logical markup. You only have the redefine the \Macro{molec}
+ command:
+\begin{lstcode}
+ \newcommand*{\molec}[2]{\textsf{#1\textsubscript{#2}}}
+\end{lstcode}
+ \renewcommand*{\molec}[2]{\textsf{#1\textsubscript{#2}}}
+ Now the output in the whole document changes to:
+ \begin{ShowOutput}
+ The cell produces its energy partly from the reaction of \molec
+ C6\molec H{12}\molec O6 and \molec O2 to produce \molec H2\molec
+ O{} and \molec C{}\molec O2. However, arsenic (\molec{As}{}) has
+ quite a detrimental effect on the metabolism.
+ \end{ShowOutput}
+ \end{Example}
+ \iftrue
+ \begin{Explain}
+ The example above uses the notation ``\verb|\molec C6|''.
+ This makes use of the fact that arguments consisting of only one
+ character do not have to be enclosed in parentheses. That is why
+ ``\verb|\molec C6|'' is similar to ``\verb|\molec{C}{6}|''. You
+ may already be familiar with this notation from indices or powers in
+ mathematical environments, such as ``\verb|$x^2$|'' instead of
+ ``\verb|$x^{2}$|''
+ for ``$x^2$''.
+ \end{Explain}
+ \else % maybe some time I've made an English book
+ Advanced users can find information about the reason the example above
+ does work unless you put all arguments of \Macro{molec} into braces in
+ \autoref{sec:experts.knowhow},
+ \DescPageRef{experts.macroargs}.%
+ \fi%
+ \else%
+ You can find an example that uses it in
+ \autoref{sec:\ThisCommonFirstLabelBase.textmarkup},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.textsubscript}.
+ \fi%
+ \EndIndexGroup%
+\fi
+
+
+\begin{Declaration}
+ \Macro{setkomafont}\Parameter{element}\Parameter{commands}%
+ \Macro{addtokomafont}\Parameter{element}\Parameter{commands}%
+ \Macro{usekomafont}\Parameter{element}
+\end{Declaration}%
+With%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{} the help of the \Macro{setkomafont} and \Macro{addtokomafont}
+commands, you can attach particular font styling \PName{commands} that change
+the appearance of a given \PName{element}. Theoretically, all statements,
+including literal text, can be used as \PName{commands}. You
+should\textnote{Attention!}, however, limit yourself to those statements that
+really change font attributes only. These are usually commands like
+\Macro{rmfamily}, \Macro{sffamily}, \Macro{ttfamily}, \Macro{upshape},
+\Macro{itshape}, \Macro{slshape}, \Macro{scshape}, \Macro{mdseries},
+\Macro{bfseries}, \Macro{normalfont}, 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}. You can find these commands explained in \cite{lshort},
+\cite{latex:usrguide}, or \cite{latex:fntguide}. Colour switching commands
+like \Macro{normalcolor} (see \cite{package:graphics} and
+\cite{package:xcolor}) are also acceptable.%
+\iffalse % Umbruchkorrekturtext
+ \ The behaviour when using other commands, especially those that lead to
+ redefinitions or generate output, is undefined. Strange behaviour is possible
+ and does not represent a bug.
+\else
+ \ The use of other commands, in particular those that redefine things or
+ or lead to output, is not supported. Strange behaviour is possible in these
+ cases and does not represent a bug.
+\fi
+
+The command \Macro{setkomafont} provides an element with a completely new
+definition of its font styling. In contrast, the \Macro{addtokomafont} command
+merely extends an existing definition. You should not use either command
+inside the document body but only in the preamble. For examples of their use,
+refer to the sections for the respective element.%
+\IfThisCommonLabelBase{scrlayer-notecolumn}{}{%
+ \ The name and meaning of each element
+ \IfThisCommonLabelBaseOneOf{scrlayer-scrpage,scrjura}{, as well as their
+ defaults,}{} are listed in \IfThisCommonLabelBase{scrextend}{%
+ \autoref{tab:maincls.fontelements}, \autopageref{tab:maincls.fontelements}
+ }{%
+ \autoref{tab:\ThisCommonLabelBase.fontelements} %
+ }.%
+ \IfThisCommonLabelBase{scrextend}{ %
+ However, in \Package{scrextend} only\textnote{limitation} the listed
+ elements for the document title, dictum, footnotes, and the
+ \DescRef{maincls.env.labeling} environment are supported. Although the
+ \DescRef{maincls.fontelement.disposition} element exists,
+ \Package{scrextend} uses it only for the document title.%
+ }{%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{ %
+ The specified defaults apply only if the corresponding element has not
+ already been defined before loading \Package{scrlayer-scrpage}. For
+ example, the \KOMAScript classes define
+ \DescRef{maincls.fontelement.pageheadfoot}, and then
+ \Package{scrlayer-scrpage} uses the setting it finds.%
+ }{%
+ \IfThisCommonLabelBase{scrjura}{}{ %
+ The default values can be found in the corresponding sections.%
+ }%
+ }%
+ }%
+}%
+
+\IfThisCommonLabelBaseOneOf{scrlttr2,scrextend}{% Umbruchvarianten
+ The \Macro{usekomafont} command can be used to switch the current font style
+ to the specified \PName{Element}.%
+}{%
+ With the \Macro{usekomafont} command, the current font style can be changed
+ to the one defined for the specified \PName{element}.%
+}
+
+\IfThisCommonLabelBase{maincls}{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.setkomafont}%
+ Suppose you want to use the same font specification for the element
+ \DescRef{\ThisCommonLabelBase.fontelement.captionlabel}
+ that is used with
+ \DescRef{\ThisCommonLabelBase.fontelement.descriptionlabel}. This can be
+ easily done with:
+\begin{lstcode}
+ \setkomafont{captionlabel}{%
+ \usekomafont{descriptionlabel}%
+ }
+\end{lstcode}
+ You can find other examples in the explanation of each element.
+ \end{Example}
+
+ \begin{desclist}
+ \desccaption{%
+ Elements whose font style can be changed in \Class{scrbook},
+ \Class{scrreprt} or \Class{scrartcl} with \Macro{setkomafont} and
+ \Macro{addtokomafont}%
+ \label{tab:maincls.fontelements}%
+ \label{tab:scrextend.fontelements}%
+ }{%
+ Elements whose font style can be changed (\emph{continued})%
+ }%
+ \feentry{author}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}\and \Package{scrextend}}%
+ author of the document in the title, i.\,e., the argument of
+ \DescRef{\ThisCommonLabelBase.cmd.author} when
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle} is used (see
+ \autoref{sec:maincls.titlepage}, \DescPageRef{maincls.cmd.author})}%
+ \feentry{caption}{text of a figure or table caption (see
+ \autoref{sec:maincls.floats}, \DescPageRef{maincls.cmd.caption})}%
+ \feentry{captionlabel}{label of a figure or table caption; applied in
+ addition to the \DescRef{\ThisCommonLabelBase.fontelement.caption}
+ element (see \autoref{sec:maincls.floats},
+ \DescPageRef{maincls.cmd.caption})}%
+ \feentry{chapter}{title of the sectioning command
+ \DescRef{\ThisCommonLabelBase.cmd.chapter} (see
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.cmd.chapter})}%
+ \feentry{chapterentry}{%
+ table of contents entry for the sectioning command
+ \DescRef{\ThisCommonLabelBase.cmd.chapter} (see
+ \autoref{sec:maincls.toc}, \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{chapterentrydots}{%
+ \ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}}%
+ optional points connecting table-of-content entries for the
+ \DescRef{\ThisCommonLabelBase.cmd.chapter} level, differing from the
+ \DescRef{\ThisCommonLabelBase.fontelement.chapterentrypagenumber}
+ element (see \autoref{sec:maincls.toc},
+ \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{chapterentrypagenumber}{%
+ page number of the table of contents entry for the sectioning command
+ \DescRef{\ThisCommonLabelBase.cmd.chapter}, differing from the element
+ \DescRef{\ThisCommonLabelBase.fontelement.chapterentry} (see
+ \autoref{sec:maincls.toc}, \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{chapterprefix}{%
+ label, e.\,g., ``Chapter'', appearing before the chapter number in both
+ \OptionValueRef{maincls}{chapterprefix}{true} and
+ \OptionValueRef{maincls}{appendixprefix}{true} (see
+ \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.option.chapterprefix})}%
+ \feentry{date}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}\and \Package{scrextend}}%
+ date of the document in the main title, i.\,e., the argument of
+ \DescRef{\ThisCommonLabelBase.cmd.date} when
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle} is used (see
+ \autoref{sec:maincls.titlepage}, \DescPageRef{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
+ \DescRef{\ThisCommonLabelBase.cmd.dedication} when
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle} is used (see
+ \autoref{sec:maincls.titlepage}, \DescPageRef{maincls.cmd.dedication})}%
+ \feentry{descriptionlabel}{labels, i.\,e., the optional argument of
+ \DescRef{\ThisCommonLabelBase.cmd.item.description} in the
+ \DescRef{\ThisCommonLabelBase.env.description} environment (see
+ \autoref{sec:maincls.lists}, \DescPageRef{maincls.env.description})}%
+ \feentry{dictum}{dictum or epigraph (see \autoref{sec:maincls.dictum},
+ \DescPageRef{maincls.cmd.dictum})}%
+ \feentry{dictumauthor}{author of a dictum or epigraph; applied in addition
+ to the element \DescRef{\ThisCommonLabelBase.fontelement.dictum} (see
+ \autoref{sec:maincls.dictum}, \DescPageRef{maincls.cmd.dictum})}%
+ \feentry{dictumtext}{alternative name for
+ \DescRef{\ThisCommonLabelBase.fontelement.dictum}}%
+ \feentry{disposition}{all sectioning command titles, i.\,e., the arguments
+ of \DescRef{\ThisCommonLabelBase.cmd.part} down to
+ \DescRef{\ThisCommonLabelBase.cmd.subparagraph} and
+ \DescRef{\ThisCommonLabelBase.cmd.minisec}, including the title of the
+ abstract; applied before the element of the respective unit (see
+ \autoref{sec:maincls.structure}, \autopageref{sec:maincls.structure})}%
+ \feentry{footnote}{footnote text and marker (see
+ \autoref{sec:maincls.footnotes}, \DescPageRef{maincls.cmd.footnote})}%
+ \feentry{footnotelabel}{marker for a footnote; applied in addition to the
+ element \DescRef{\ThisCommonLabelBase.fontelement.footnote} (see
+ \autoref{sec:maincls.footnotes}, \DescPageRef{maincls.cmd.footnote})}%
+ \feentry{footnotereference}{footnote reference in the text (see
+ \autoref{sec:maincls.footnotes}, \DescPageRef{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},
+ \DescPageRef{maincls.cmd.setfootnoterule})}%
+ \feentry{labelinglabel}{labels, i.\,e., the optional argument of
+ \DescRef{\ThisCommonLabelBase.cmd.item.labeling} in the
+ \DescRef{\ThisCommonLabelBase.env.labeling} environment (see
+ \autoref{sec:maincls.lists}, \DescPageRef{maincls.env.labeling})}%
+ \feentry{labelingseparator}{separator, i.\,e., the optional argument of
+ the \DescRef{\ThisCommonLabelBase.env.labeling} environment; applied in
+ addition to the element
+ \DescRef{\ThisCommonLabelBase.fontelement.labelinglabel} (see
+ \autoref{sec:maincls.lists}, \DescPageRef{maincls.env.labeling})}%
+ \feentry{minisec}{title of \DescRef{\ThisCommonLabelBase.cmd.minisec} (see
+ \autoref{sec:maincls.structure} ab \DescPageRef{maincls.cmd.minisec})}%
+ \feentry{pagefoot}{only used if package \Package{scrlayer-scrpage} has
+ been loaded (see \autoref{cha:scrlayer-scrpage},
+ \DescPageRef{scrlayer-scrpage.fontelement.pagefoot})}%
+ \feentry{pagehead}{alternative name for
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}}%
+ \feentry{pageheadfoot}{the header and footer of a page (see
+ \autoref{sec:maincls.pagestyle} from
+ \autopageref{sec:maincls.pagestyle})}%
+ \feentry{pagenumber}{page number in the header or footer (see
+ \autoref{sec:maincls.pagestyle})}%
+ \feentry{pagination}{alternative name for
+ \DescRef{\ThisCommonLabelBase.fontelement.pagenumber}}%
+ \feentry{paragraph}{title of the sectioning command
+ \DescRef{\ThisCommonLabelBase.cmd.paragraph} (see
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.cmd.paragraph})}%
+ \feentry{part}{title of the \DescRef{\ThisCommonLabelBase.cmd.part}
+ sectioning command, without the line containing the part number (see
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.cmd.part})}%
+ \feentry{partentry}{%
+ table of contents entry for the sectioning command
+ \DescRef{\ThisCommonLabelBase.cmd.part} (see \autoref{sec:maincls.toc},
+ \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{partentrypagenumber}{%
+ page number of the table of contents entry for the sectioning command
+ \DescRef{\ThisCommonLabelBase.cmd.part}; applied in addition to the
+ element \DescRef{\ThisCommonLabelBase.fontelement.partentry} (see
+ \autoref{sec:maincls.toc}, \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{partnumber}{line containing the part number in a title of the
+ sectioning command \DescRef{\ThisCommonLabelBase.cmd.part} (see
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.cmd.part})}%
+ \feentry{publishers}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}\and \Package{scrextend}}%
+ publishers of the document in the main title, i.\,e., the argument of
+ \DescRef{\ThisCommonLabelBase.cmd.publishers} when
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle} is used (see
+ \autoref{sec:maincls.titlepage}, \DescPageRef{maincls.cmd.publishers})}%
+ \feentry{section}{title of the sectioning command
+ \DescRef{\ThisCommonLabelBase.cmd.section} (see
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.cmd.section})}%
+ \feentry{sectionentry}{%
+ table of contents entry for sectioning command
+ \DescRef{\ThisCommonLabelBase.cmd.section} (only available in
+ \Class{scrartcl}, see \autoref{sec:maincls.toc},
+ \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{sectionentrypagenumber}{%
+ page number of the table of contents entry for the sectioning command
+ \DescRef{\ThisCommonLabelBase.cmd.section}; applied in addition to
+ element \DescRef{\ThisCommonLabelBase.fontelement.sectionentry} (only
+ available in \Class{scrartcl, see \autoref{sec:maincls.toc},
+ \DescPageRef{maincls.cmd.tableofcontents}})}%
+ \feentry{sectioning}{alternative name for
+ \DescRef{\ThisCommonLabelBase.fontelement.disposition}}%
+ \feentry{subject}{%
+ topic of the document, i.\,e., the argument of
+ \DescRef{\ThisCommonLabelBase.cmd.subject} on the main title page (see
+ \autoref{sec:maincls.titlepage}, \DescPageRef{maincls.cmd.subject})}%
+ \feentry{subparagraph}{title of the sectioning command
+ \DescRef{\ThisCommonLabelBase.cmd.subparagraph} (see
+ \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.cmd.subparagraph})}%
+ \feentry{subsection}{title of the sectioning command
+ \DescRef{\ThisCommonLabelBase.cmd.subsection} (see
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.cmd.subsection})}%
+ \feentry{subsubsection}{title of the sectioning command
+ \DescRef{\ThisCommonLabelBase.cmd.subsubsection} (see
+ \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.cmd.subsubsection})}%
+ \feentry{subtitle}{%
+ subtitle of the document, i.\,e., the argument of
+ \DescRef{\ThisCommonLabelBase.cmd.subtitle} on the main title page (see
+ \autoref{sec:maincls.titlepage}, \DescPageRef{maincls.cmd.title})}%
+ \feentry{title}{main title of the document, i.\,e., the argument of
+ \DescRef{\ThisCommonLabelBase.cmd.title} (for details about the title
+ size see the additional note in the text of
+ \autoref{sec:maincls.titlepage} from \DescPageRef{maincls.cmd.title})}%
+ \feentry{titlehead}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}\and \Package{scrextend}}%
+ heading above the main title of the document, i.\,e., the argument of
+ \DescRef{\ThisCommonLabelBase.cmd.titlehead} when
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle} is used (see
+ \autoref{sec:maincls.titlepage}, \DescPageRef{maincls.cmd.titlehead})}%
+ \end{desclist}
+\else
+ \IfThisCommonLabelBase{scrextend}{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ Suppose you want to print the document title in a red serif font.
+ You can do this using:
+\begin{lstcode}
+ \setkomafont{title}{\color{red}}
+\end{lstcode}
+ You will need the \Package{color} or the \Package{xcolor} package for
+ the \Macro{color}\PParameter{red} command. Using \Macro{normalfont} is
+ unnecessary in this case because it is already part of the definition of
+ the title itself. This\textnote{Attention!} example also needs the
+ \OptionValueRef{scrextend}{extendedfeature}{title} option (see
+ \autoref{sec:scrextend.optionalFeatures},
+ \DescPageRef{scrextend.option.extendedfeature}).
+ \end{Example}
+ \else
+ \IfThisCommonLabelBase{scrlttr2}{%
+ You can find a general example that uses both \Macro{setkomafont} and
+ \Macro{usekomafont} in \autoref{sec:maincls.textmarkup} on
+ \PageRefxmpl{maincls.cmd.setkomafont}.
+
+ \begin{desclist}
+ \desccaption{%
+ Elements whose font style can be changed in the \Class{scrlttr2}
+ class or the \Package{scrletter} package with the
+ \Macro{setkomafont} and \Macro{addtokomafont}
+ commands\label{tab:scrlttr2.fontelements}%
+ }{%
+ Elements whose font style can be changed (\emph{continued})%
+ }%
+ \feentry{addressee}{recipient's name and address in the address field
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.option.addrfield})}%
+ \feentry{backaddress}{%
+ return address for a window envelope
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.option.backaddress})}%
+ \feentry{descriptionlabel}{%
+ label, i.\,e. the optional argument of
+ \DescRef{\ThisCommonLabelBase.cmd.item.description}, in a
+ \DescRef{\ThisCommonLabelBase.env.description} environment
+ (\autoref{sec:scrlttr2.lists},
+ \DescPageRef{scrlttr2.env.description})}%
+ \feentry{foldmark}{%
+ fold mark on the letterhead page; allows change of line colour
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.option.foldmarks})}%
+ \feentry{footnote}{%
+ footnote text and marker (\autoref{sec:scrlttr2.footnotes},
+ \DescPageRef{scrlttr2.cmd.footnote})}%
+ \feentry{footnotelabel}{%
+ footnote marker; applied in addition to the
+ \DescRef{\ThisCommonLabelBase.fontelement.footnote} element
+ (\autoref{sec:scrlttr2.footnotes},
+ \DescPageRef{scrlttr2.cmd.footnote})}%
+ \feentry{footnotereference}{%
+ footnote reference in the text (\autoref{sec:scrlttr2.footnotes},
+ \DescPageRef{scrlttr2.cmd.footnote})}%
+ \feentry{footnoterule}{%
+ horizontal rule\ChangedAt{v3.07}{\Class{scrlttr2}} above the
+ footnotes at the end of the text area
+ (\autoref{sec:maincls.footnotes},
+ \DescPageRef{maincls.cmd.setfootnoterule})}%
+ \feentry{fromaddress}{%
+ sender's address in the letterhead
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.fromaddress})}%
+ \feentry{fromname}{%
+ sender's name in the letterhead, not including
+ \PValue{fromaddress} (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.fromname})}%
+ \feentry{fromrule}{%
+ horizontal rule in the letterhead; intended for
+ colour changes (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.option.fromrule})}%
+ \feentry{labelinglabel}{%
+ labels, i.\,e. the optional argument of
+ \DescRef{\ThisCommonLabelBase.cmd.item.labeling} in the
+ \DescRef{\ThisCommonLabelBase.env.labeling} environment %
+ (see \autoref{sec:scrlttr2.lists},
+ \DescPageRef{scrlttr2.env.labeling})}%
+ \feentry{labelingseparator}{%
+ separator, i.\,e. the optional argument of the
+ \DescRef{\ThisCommonLabelBase.env.labeling} environment; applied
+ in addition to the
+ \DescRef{\ThisCommonLabelBase.fontelement.labelinglabel} element
+ (see \autoref{sec:scrlttr2.lists},
+ \DescPageRef{scrlttr2.env.labeling})}%
+ \feentry{pagefoot}{%
+ used after the
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot} element for
+ the footer defined with the
+ \DescRef{scrlttr2.variable.nextfoot}\IndexVariable{nextfoot}
+ variable, or for the footer of the \Package{scrlayer-scrpage}
+ package (\autoref{cha:scrlayer-scrpage},
+ \DescPageRef{scrlayer-scrpage.fontelement.pagefoot})}%
+ \feentry{pagehead}{%
+ alternative name for
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}}%
+ \feentry{pageheadfoot}{%
+ the header and footer of a page for all page styles
+ that have been defined using \KOMAScript{}
+ (\autoref{sec:maincls.pagestyle},
+ \DescPageRef{\ThisCommonLabelBase.fontelement.pageheadfoot})}%
+ \feentry{pagenumber}{%
+ page number in the header or footer %
+ (\autoref{sec:maincls.pagestyle},
+ \DescPageRef{\ThisCommonLabelBase.fontelement.pagenumber})}%
+ \feentry{pagination}{%
+ alternative name for
+ \DescRef{\ThisCommonLabelBase.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},
+ \DescPageRef{scrlttr2.variable.placeseparator})}%
+ \feentry{refname}{%
+ description or title of the fields in the reference line %
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.yourref})}%
+ \feentry{refvalue}{%
+ content of the fields in the reference line %
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.yourref})}%
+ \feentry{specialmail}{%
+ delivery type in the address field %
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.specialmail})}%
+ \feentry{lettersubject}{%
+ \ChangedAt{v3.17}{\Class{scrlttr2}\and \Package{scrletter}}%
+ subject in the opening of the letter %
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.subject})}%
+ \feentry{lettertitle}{%
+ \ChangedAt{v3.17}{\Class{scrlttr2}\and \Package{scrletter}}%
+ title in the opening of the letter %
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.title})}%
+ \feentry{toaddress}{%
+ variation of the
+ \DescRef{\ThisCommonLabelBase.fontelement.addressee} element to
+ format the recipient's address, not including the name, in the
+ address field (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.toaddress})}%
+ \feentry{toname}{%
+ variation of the
+ \DescRef{\ThisCommonLabelBase.fontelement.addressee} element to
+ format the recipient's name in the address field
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.toname})}%
+ \end{desclist}
+ }{%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \begin{desclist}
+ \desccaption[{Elements of \Package{scrlayer-scrpage} whose font
+ styles can be changed with the \Macro{setkomafont} and
+ \Macro{addtokomafont} commands}]%
+ {Elements of \Package{scrlayer-scrpage} whose font styles can be
+ changed with the \Macro{setkomafont} and \Macro{addtokomafont}
+ commands, and their defaults, if they have not been defined
+ before loading \Package{scrlayer-scrpage}%
+ \label{tab:scrlayer-scrpage.fontelements}%
+ }%
+ {Elements whose font style can be changed (\emph{continued})}%
+ \feentry{footbotline}{%
+ horizontal line below the footer of a page style defined using
+ \Package{scrlayer-scrpage}. The font will be applied after
+ \Macro{normalfont}\IndexCmd{normalfont} and the fonts of elements
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}%
+ \IndexFontElement{pageheadfoot} and
+ \DescRef{\ThisCommonLabelBase.fontelement.pagefoot}%
+ \IndexFontElement{pagefoot}. It is recommended to use this element
+ for colour changes only.\par
+ \mbox{Default: \emph{empty}}%
+ }%
+ \feentry{footsepline}{%
+ horizontal line above the footer of a page style defined using
+ \Package{scrlayer-scrpage}. The font will be applied after
+ \Macro{normalfont}\IndexCmd{normalfont} and the fonts of elements
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}%
+ \IndexFontElement{pageheadfoot} and
+ \DescRef{\ThisCommonLabelBase.fontelement.pagefoot}%
+ \IndexFontElement{pagefoot}. It is recommended to use this element
+ for colour changes only.\par
+ \mbox{Default: \emph{empty}}%
+ }%
+ \feentry{headsepline}{%
+ horizontal line below the header of a page style defined using
+ \Package{scrlayer-scrpage}. The font will be applied after
+ \Macro{normalfont}\IndexCmd{normalfont} and the fonts of elements
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}%
+ \IndexFontElement{pageheadfoot} and
+ \DescRef{scrlayer-scrpage.fontelement.pagehead}%
+ \IndexFontElement{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 applied after
+ \Macro{normalfont}\IndexCmd{normalfont} and the fonts of elements
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}%
+ \IndexFontElement{pageheadfoot} and
+ \DescRef{scrlayer-scrpage.fontelement.pagehead}%
+ \IndexFontElement{pagehead}. It is recommended to use this element
+ for colour changes only.\par
+ \mbox{Default: \emph{empty}}%
+ }%
+ \feentry{pagefoot}{%
+ contents of the page footer of a page style defined using
+ \Package{scrlayer-scrpage}. The font will be applied after
+ \Macro{normalfont}\IndexCmd{normalfont} and the font of element
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}%
+ \IndexFontElement{pageheadfoot}.\par
+ \mbox{Default: \emph{empty}}%
+ }%
+ \feentry{pagehead}{%
+ contents of the page header of a page style defined using
+ \Package{scrlayer-scrpage}. The font will be applied after
+ \Macro{normalfont}\IndexCmd{normalfont} and the font of element
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}%
+ \IndexFontElement{pageheadfoot}.\par
+ \mbox{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 applied after
+ \Macro{normalfont}\IndexCmd{normalfont}.\par
+ \mbox{Default: \Macro{normalcolor}\Macro{slshape}}%
+ }%
+ \feentry{pagenumber}{%
+ pagination set with
+ \DescRef{\ThisCommonLabelBase.cmd.pagemark}. If you redefine
+ \DescRef{\ThisCommonLabelBase.cmd.pagemark}, you have to be sure
+ that your redefinition also uses
+ \Macro{usekomafont}\PParameter{pagenumber}!\par
+ \mbox{Default: \Macro{normalfont}}%
+ }%
+ \end{desclist}
+ }{%
+ \IfThisCommonLabelBase{scrjura}{%
+ \begin{table}
+ \caption{Elements whose \Package{scrjura} font styles can be
+ changed with \Macro{setkomafont} and \Macro{addtokomafont},
+ including their default settings}%
+ \label{tab:scrjura.fontelements}%
+ \begin{desctabular}
+ \feentry{Clause}{%
+ alias for \FontElement{\PName{environment name}.Clause}
+ within a contract environment, for example
+ \FontElement{contract.Clause} within
+ \DescRef{\ThisCommonLabelBase.env.contract}; if no
+ corresponding element is defined,
+ \FontElement{contract.Clause} is used%
+ }%
+ \feentry{contract.Clause}{%
+ heading of a paragraph within
+ \DescRef{\ThisCommonLabelBase.env.contract} (see
+ \autoref{sec:\ThisCommonLabelBase.contract},
+ \DescPageRef{\ThisCommonLabelBase.fontelement.contract.Clause});
+ \par
+ \mbox{Default: \Macro{sffamily}\Macro{bfseries}\Macro{large}}%
+ }%
+ \entry{\DescRef{\ThisCommonLabelBase.fontelement./Name/.Clause}}{%
+ \IndexFontElement[indexmain]{\PName{name}.Clause}%
+ heading of a paragraph within a \PName{name} environment
+ defined with
+ \DescRef{\ThisCommonLabelBase.cmd.DeclareNewJuraEnvironment}
+ as long as the setting was made with \Option{ClauseFont} or
+ the item was subsequently defined (see
+ \autoref{sec:\ThisCommonLabelBase.newenv},
+ \DescPageRef{\ThisCommonLabelBase.fontelement./Name/.Clause});
+ \par
+ \mbox{Default: \emph{none}}%
+ }%
+ \feentry{parnumber}{%
+ paragraph numbers within a contract environment (see
+ \autoref{sec:\ThisCommonLabelBase.par},
+ \DescPageRef{\ThisCommonLabelBase.fontelement.parnumber});\par
+ \mbox{Default: \emph{empty}}%
+ }%
+ \feentry{sentencenumber}{%
+ \ChangedAt{v3.26}{\Package{scrjura}}%
+ sentence number of \DescRef{\ThisCommonLabelBase.cmd.Sentence}
+ (see \autoref{sec:\ThisCommonLabelBase.sentence},
+ \DescPageRef{%
+ \ThisCommonLabelBase.fontelement.sentencenumber});\par
+ \mbox{Default: \emph{empty}}%
+ }%
+ \end{desctabular}
+ \end{table}
+ }{%
+ \IfThisCommonLabelBase{scrlayer-notecolumn}{}{%
+ \InternalCommonFileUsageError%
+ }%
+ }%
+ }%
+ }%
+ \fi%
+\fi
+\EndIndexGroup
+
+
+\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}
+Sometimes\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}\and \Package{scrextend}}, although this is not recommended,
+the font setting of an element is used for settings that are not actually
+related to the font. If you want to apply only the font setting of an element
+but not those other settings, you can use \Macro{usefontofkomafont} instead of
+\DescRef{\ThisCommonLabelBase.cmd.usekomafont}. 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 can also switch to a single one of those attributes using one of the other
+commands. Note that \Macro{usesizeofkomafont} uses both the font
+size and the baseline skip.%
+%
+\IfThisCommonLabelBase{scrextend}{% Umbruchvariante!
+}{%
+ \IfThisCommonLabelBase{scrjura}{%
+ \par%
+ However, the misuse of the font settings is strongly discouraged (see
+ \autoref{sec:maincls-experts.experts},
+ \DescPageRef{maincls-experts.cmd.addtokomafontrelaxlist})!%
+ }{%
+ \par%
+ However, you should not take these commands as legitimizing the insertion
+ of arbitrary commands in an element's font setting. To do so can lead
+ quickly to errors (see \autoref{sec:maincls-experts.experts},
+ \DescPageRef{maincls-experts.cmd.addtokomafontrelaxlist}).%
+ }%
+}%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-titles.tex b/macros/latex/contrib/koma-script/source-doc/english/common-titles.tex
new file mode 100644
index 0000000000..e061743806
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-titles.tex
@@ -0,0 +1,679 @@
+% ======================================================================
+% common-titles.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-titles.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-titles.tex}
+ [$Date: 2018-03-30 09:37:06 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (common paragraphs)]
+
+\translator{Gernot Hassenpflug\and Markus Kohm\and Krickette Murabayashi\and
+ Karl Hagen}
+
+% Date of the translated German file: 2018-01-30
+
+\section{Document Titles}
+\seclabel{titlepage}%
+\BeginIndexGroup
+\BeginIndex{}{title}%
+
+\IfThisCommonFirstRun{}{%
+ This information in \autoref{sec:\ThisCommonFirstLabelBase.titlepage}
+ largely applies to this chapter. So if you have already read and understood
+ \autoref{sec:\ThisCommonFirstLabelBase.titlepage}, you can skip to
+ \autoref{sec:\ThisCommonLabelBase.titlepage.next},
+ \autopageref{sec:\ThisCommonLabelBase.titlepage.next}.%
+}%
+\IfThisCommonLabelBase{scrextend}{\iftrue}{\csname iffalse\endcsname}%
+ \ However,\textnote{Attention!} the capabilities of \Package{scrextend}
+ for handling the document title are part of the optional, advanced
+ features. Therfore they are only available, if
+ \OptionValueRef{\ThisCommonLabelBase}{extendedfeature}{title} is
+ selected while loading the package (see
+ \autoref{sec:\ThisCommonLabelBase.optionalFeatures},
+ \DescRef{\ThisCommonLabelBase.option.extendedfeature}).
+
+ Furthermore, \Package{scrextend} cannot be used with a \KOMAScript{}
+ class. Because of this, you should replace
+\begin{lstcode}
+ \documentclass{scrbook}
+\end{lstcode}
+ with
+\begin{lstcode}
+ \documentclass{book}
+ \usepackage[extendedfeature=title]{scrextend}
+\end{lstcode}
+ for all examples from \autoref{sec:maincls.titlepage}, if you want to
+ try them with \Package{scrextend}.
+\fi
+
+In general, we distinguish two kinds of document titles. First, there are
+title pages. These include title of the document, together with additional
+information such as the author, on a separate page. In addition to the main
+title page, there may be several other title pages, such as the half-title or
+bastard title, publisher data, dedication, and so on. Second, there is the
+in-page title. This kind of title appears at the top of a new page, usually
+the first, and is specially emphasized. It too may be accompanied by
+additional information, but it will be followed by more material on the same
+page, for example by an abstract, the table of contents, or even a section.
+
+
+\begin{Declaration}
+ \OptionVName{titlepage}{simple switch}%
+ \OptionValue{titlepage}{firstiscover}
+ \Macro{coverpagetopmargin}
+ \Macro{coverpageleftmargin}
+ \Macro{coverpagerightmargin}
+ \Macro{coverpagebottommargin}
+\end{Declaration}%
+This option\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{} determines whether to use document title pages\Index{title>pages} or
+in-page titles\Index{title>in-page} when using
+\DescRef{\ThisCommonLabelBase.cmd.maketitle} (see
+\DescPageRef{\ThisCommonLabelBase.cmd.maketitle}). Any value from
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} can be used
+for \PName{simple switch}.
+
+With the \OptionValue{titlepage}{true}%
+\important{\OptionValue{titlepage}{true}}
+\IfThisCommonLabelBase{scrextend}{}{or \Option{titlepage}} option,
+invoking \DescRef{\ThisCommonLabelBase.cmd.maketitle} creates titles on
+separate pages. These pages are set inside a
+\DescRef{\ThisCommonLabelBase.env.titlepage} environment, and they
+normally have neither header nor footer. Compared to standard {\LaTeX},
+{\KOMAScript} significantly expands the handling of the titles. These
+additional elements can be found on the following pages.
+
+In contrast, with the
+\OptionValue{titlepage}{false}\important{\OptionValue{titlepage}{false}}
+option, invoking \DescRef{\ThisCommonLabelBase.cmd.maketitle} creates an
+\emph{in-page} title. This means that the title is specially emphasized, but
+it may be followed by more material on the same page, for instance an abstract
+or a section.%
+
+The third choice,%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.12}{\Package{scrextend}}%
+ }{\InternalCommonFileUseError}%
+} \OptionValue{titlepage}{firstiscover}%
+\important{\OptionValue{titlepage}{firstiscover}} not only activates title
+pages but also prints the first title page of
+\DescRef{\ThisCommonLabelBase.cmd.maketitle}\IndexCmd{maketitle}, i.\,e.
+either the half-title or the main title, as a cover\Index{cover} page. Any
+other setting of the \Option{titlepage} option will cancel this setting. The
+margins\important{\Macro{coverpage\dots margin}} of the cover page are given
+by \Macro{coverpagetopmargin}, \Macro{coverpageleftmargin},
+\Macro{coverpagerightmargin}, and \Macro{coverpagebottommargin}. The defaults
+of these depend on the lengths of \Length{topmargin}\IndexLength{topmargin}
+and \Length{evensidemargin}\IndexLength{evensidemargin} and can be changed
+with \Macro{renewcommand}.
+
+\IfThisCommonLabelBase{maincls}{%
+ The default of the \Class{scrbook} and \Class{scrreprt} classes is to use
+ title pages. The \Class{scrartcl} class, on the other hand, uses in-page
+ titles by default.%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ The default depends on the class used and \Package{scrextend} recognizes
+ it in a way that compatible with the standard class. If a class does not
+ set up a comparable default, it will be an in-page title.%
+ }{\InternalCommonFileUsageError}%
+}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \begin{Environment}{titlepage}\end{Environment}%
+\end{Declaration}%
+The standard classes and {\KOMAScript} set all title pages in a special
+environment: the \Environment{titlepage} environment. This environment always
+starts a new page\,---\,in two-sided printing a new right-hand page\,---\,and
+in single-column mode. For this page, the style is changed to
+\DescRef{maincls.cmd.thispagestyle}%
+\PParameter{\DescRef{maincls.pagestyle.empty}}, so that neither page number
+nor running head is output. At the end of the environment, the page is
+automatically shipped out. Should you not be able to use the automatic layout
+of the title pages provided by \DescRef{\ThisCommonLabelBase.cmd.maketitle},
+described next, you should design a new one with the help of this environment.
+
+\IfThisCommonFirstRun{\iftrue}{%
+ A simple example for a title page with \Environment{titlepage} is shown in
+ \autoref{sec:\ThisCommonFirstLabelBase.titlepage} on
+ \PageRefxmpl{\ThisCommonFirstLabelBase.env.titlepage}%
+ \csname iffalse\endcsname%
+}%
+ \begin{Example}
+ \phantomsection\xmpllabel{env.titlepage}
+ Suppose you want a title page on which only the word ``Me'' stands at
+ the top on the left, as large as possible and in bold\,---\,no
+ author, no date, nothing else. The following document creates just
+ that:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \begin{document}
+ \begin{titlepage}
+ \textbf{\Huge Me}
+ \end{titlepage}
+ \end{document}
+\end{lstcode}
+ It's simple, isn't it?
+ \end{Example}
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{maketitle}\OParameter{page number}
+\end{Declaration}%
+While\textnote{\KOMAScript{} vs. standard classes} the standard classes
+produce at most one title page that can have three items (title, author, and
+date), with \KOMAScript{} \Macro{maketitle} can produce up to six pages. In
+contrast to the standard classes, \Macro{maketitle} in {\KOMAScript} accepts
+an optional numeric argument. If it is used, this number is the page number of
+the first title page. This page number is not output, but it affects the
+subsequent numbering. You should definitely choose an odd number, because
+otherwise the whole count gets mixed up. In my opinion, there are only two
+useful applications for the optional argument. On the one hand, you could give
+the the logical page number -1 to the half-title\Index[indexmain]{half-title}
+in order to give the full title page the number 1. On the other hand, you
+could use it to start at a higher page number, for example, 3, 5, or 7, to
+accommodate other title pages added by the publishing house. The optional
+argument is ignored for \emph{in-page} titles. You can change the page style
+of such a title page by redefining the
+\DescRef{\ThisCommonLabelBase.cmd.titlepagestyle} macro (see
+\autoref{sec:maincls.pagestyle}, \DescPageRef{maincls.cmd.titlepagestyle}).
+
+The following commands do not lead immediately to the ship-out of the titles.
+The typesetting and ship-out of the title pages are always done by
+\Macro{maketitle}. Note also that \Macro{maketitle} should not be used inside
+a \DescRef{\ThisCommonLabelBase.env.titlepage} environment.
+As\textnote{Attention!} shown in the examples, you should use either
+\Macro{maketitle} or \DescRef{\ThisCommonLabelBase.env.titlepage}, but not
+both.
+
+The following commands only define the contents of the title. Therefore they
+must be used before \Macro{maketitle}. It is, however, not necessary and, when
+using the \Package{babel} package\IndexPackage{babel} not recommended, to
+include these in the preamble before \Macro{begin}\PParameter{document} (see
+\cite{package:babel}). You can find examples
+\IfThisCommonFirstRun{in the descriptions of the other commands in this
+ section}{in \autoref{sec:\ThisCommonFirstLabelBase.titlepage}, starting on
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.extratitle}}.
+
+
+\begin{Declaration}
+ \Macro{extratitle}\Parameter{half-title}
+ \Macro{frontispiece}\Parameter{frontispiece}
+\end{Declaration}%
+\begin{Explain}%
+ In earlier times the inner book was often not protected from dirt by a
+ cover. This function was then assumed by the first page of the book, which
+ usually had just a short title, known as the \emph{half-title}. Nowadays the
+ extra page often appears before the real main title and contains information
+ about the publisher, series number, and similar information.
+\end{Explain}
+With {\KOMAScript}, it is possible to include a page before the real title
+page. The \PName{half-title} can be arbitrary text\,---\,even several
+paragraphs. The contents of the \PName{half-title} are output by {\KOMAScript}
+without additional formatting. Their organisation is completely left to the
+user. The verso of the half-title\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.25}{\Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.25}{\Package{scrextend}}%
+ }{\ThisCommonLabelBaseFailure}%
+} is the frontispiece. The half-title is set on its own page even when in-page
+titles are used. The output of the half-title defined with \Macro{extratitle}
+takes place as part of the title produced by
+\DescRef{\ThisCommonLabelBase.cmd.maketitle}.
+
+\IfThisCommonFirstRun{\iftrue}{%
+ An example of a simple title page with half-title and main title is shown
+ in \autoref{sec:\ThisCommonFirstLabelBase.titlepage} on
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.extratitle}%
+ \csname iffalse\endcsname%
+}%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.extratitle}
+ Let's return to the previous example and suppose
+ that the Spartan ``Me'' is the half-title. The full title should
+ still follow the half-title. You can proceed as follows:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \begin{document}
+ \extratitle{\textbf{\Huge Me}}
+ \title{It's me}
+ \maketitle
+ \end{document}
+\end{lstcode}
+ You can centre the half-title horizontally and put it a little lower down
+ the page:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \begin{document}
+ \extratitle{\vspace*{4\baselineskip}
+ \begin{center}\textbf{\Huge Me}\end{center}}
+ \title{It's me}
+ \maketitle
+ \end{document}
+\end{lstcode}
+ The command\textnote{Attention!} \DescRef{\ThisCommonLabelBase.cmd.title}
+ is necessary in order to make the examples above work correctly. It is
+ explained next.
+ \end{Example}
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{titlehead}\Parameter{title head}%
+ \Macro{subject}\Parameter{subject}%
+ \Macro{title}\Parameter{title}%
+ \Macro{subtitle}\Parameter{subtitle}%
+ \Macro{author}\Parameter{author}%
+ \Macro{date}\Parameter{date}%
+ \Macro{publishers}\Parameter{publisher}%
+ \Macro{and}%
+ \Macro{thanks}\Parameter{footnote}
+\end{Declaration}%
+There are seven elements available for the content of the main title page. The
+main title page is output as part of the title pages created by
+\DescRef{\ThisCommonLabelBase.cmd.maketitle}, while the definitions given here
+only apply to the respective elements.
+
+\BeginIndexGroup\BeginIndex{FontElement}{titlehead}%
+\LabelFontElement{titlehead}%
+The\important{\Macro{titlehead}} \PName{title head}%
+\Index[indexmain]{title>head} is defined with the command
+\Macro{titlehead}. It occupies the entire text width, at the top of the page,
+in normal justification, and it can be freely designed by the user. It uses
+the font element\important{\FontElement{titlehead}} with same name (see
+\autoref{tab:\ThisCommonFirstLabelBase.mainTitle},
+\autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}).%
+\EndIndexGroup
+
+\BeginIndexGroup\BeginIndex{FontElement}{subject}\LabelFontElement{subject}%
+The\important{\Macro{subject}} \PName{subject}\Index[indexmain]{subject} is
+output with the font element\important{\FontElement{subject}} of the same name
+immediately above the \PName{title}.%
+\EndIndexGroup
+
+\BeginIndexGroup\BeginIndex{FontElement}{title}\LabelFontElement{title}%
+The\important{\Macro{title}} \PName{title} is set in a very large font size.
+Along\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}}{} with the font size, the font element
+\FontElement{title}\IndexFontElement[indexmain]{title}%
+\important{\FontElement{title}} is applied (see
+\autoref{tab:\ThisCommonFirstLabelBase.mainTitle},
+\autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}).%
+\EndIndexGroup
+
+\BeginIndexGroup\BeginIndex{FontElement}{subtitle}\LabelFontElement{subtitle}%
+The\important{\Macro{subtitle}}
+\PName{subtitle}\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v2.97c}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}}{} is set just below the title using the font
+element\important{\FontElement{subtitle}} of the same name (see
+\autoref{tab:\ThisCommonFirstLabelBase.mainTitle},
+\autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}).%
+\EndIndexGroup
+
+\BeginIndexGroup\BeginIndex{FontElement}{author}\LabelFontElement{author}%
+Below\important{\Macro{author}} the \PName{subtitle} appears the
+\PName{author}\Index[indexmain]{author}. Several authors can be specified in
+the argument of \Macro{author}. They should be separated by
+\Macro{and}\important{\Macro{and}}. The output uses the font
+element\important{\FontElement{author}} of the same name. (see
+\autoref{tab:\ThisCommonFirstLabelBase.mainTitle},
+\autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}).%
+\EndIndexGroup
+
+\BeginIndexGroup\BeginIndex{FontElement}{date}\LabelFontElement{date}%
+Below\important{\Macro{date}} the author or authors appears the
+date\Index{date} in the font of the element of the same name. The default
+value is the current date, as produced by \Macro{today}\IndexCmd{today}. The
+\Macro{date} command accepts arbitrary information\,---\,even an empty
+argument. The output uses the font element\important{\FontElement{date}} of
+the same name (see \autoref{tab:\ThisCommonFirstLabelBase.mainTitle},
+\autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}).%
+\EndIndexGroup
+
+\BeginIndexGroup\BeginIndex{FontElement}{publishers}%
+\LabelFontElement{publishers}%
+Finally\important{\Macro{publishers}} comes the
+\PName{publisher}\Index[indexmain]{publisher}. Of course this command can also
+be used for any other information of minor importance. If necessary, the
+\Macro{parbox} command can be used to typeset this information over the full
+page width like a regular paragraph instead of centring it. It should then be
+considered equivalent to the title head. Note, however, that this field is
+placed above any existing footnotes. The output uses the font
+element\important{\FontElement{publishers}} of the same name (see
+\autoref{tab:\ThisCommonFirstLabelBase.mainTitle},
+\autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}).%
+\EndIndexGroup
+
+Footnotes\important{\Macro{thanks}}\Index{footnotes} on the title page are
+produced not with \Macro{footnote}, but with \Macro{thanks}. They serve
+typically for notes associated with the authors. Symbols are used as footnote
+markers instead of numbers. Note\textnote{Attention!} that \Macro{thanks} has
+to be used inside the argument of another command, such as in the
+\PName{author} argument of the command \Macro{author}.
+\IfThisCommonLabelBase{scrextend}{%
+ However, in order for the \DescRef{\ThisCommonLabelBase.fontelement.footnote}
+ element to be aware of the \Package{scrextend} package, not only does the
+ title extension need to be enabled, it must also be set to use footnotes
+ with this package (see the introduction to
+ \autoref{sec:\ThisCommonLabelBase.footnotes},
+ \autopageref{sec:\ThisCommonLabelBase.footnotes}). Otherwise, the font
+ specified by the class or other packages used for the footnotes will be
+ used.%
+}{}%
+
+For%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.12}{\Package{scrextend}}%
+ }{\InternalCommonFileUsageError}%
+} the output of the title elements, the font\textnote{font} can be set using
+the \DescRef{\ThisCommonLabelBase.cmd.setkomafont} and
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} command (see
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}). The defaults are listed
+in \autoref{tab:\ThisCommonFirstLabelBase.titlefonts}%
+\IfThisCommonFirstRun{}{%
+ , \autopageref{tab:\ThisCommonFirstLabelBase.titlefonts}%
+}.%
+\IfThisCommonFirstRun{%
+ \begin{table}
+% \centering
+% \caption
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \addtokomafont{caption}{\raggedright}%
+ \begin{captionbeside}
+ [{Font defaults for the elements of the title}]
+ {\label{tab:\ThisCommonLabelBase.titlefonts}%
+ \hspace{0pt plus 1ex}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} &
+ \DescRef{\ThisCommonLabelBase.cmd.usekomafont}%
+ \PParameter{title}\Macro{large} \\
+ \FontElement{title} &
+ \DescRef{\ThisCommonLabelBase.cmd.usekomafont}%
+ \PParameter{disposition} \\
+ \FontElement{titlehead} & \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \end{table}%
+}{}%
+
+With the exception of \PName{title head} and any footnotes, all output is
+centred horizontally. %
+\iffree{%
+ \IfThisCommonLabelBase{scrextend}{The formatting of each element is}{These
+ details are} briefly summarized in
+ \autoref{tab:\ThisCommonFirstLabelBase.mainTitle}\IfThisCommonFirstRun{}{%
+ , \autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}}.%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ The alignment of individual elements can also be found in
+ \autoref{tab:\ThisCommonFirstLabelBase.mainTitle}\IfThisCommonFirstRun{}{%
+ , \autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}}.%
+ }{%
+ For a summary, see \autoref{tab:\ThisCommonFirstLabelBase.mainTitle}.%
+ }%
+}%
+\IfThisCommonFirstRun{%
+ \begin{table}
+ % \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ % \caption
+ \begin{captionbeside}[Main title]{%
+ \hspace{0pt plus 1ex}%
+ 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 \DescRef{\ThisCommonLabelBase.cmd.maketitle}}
+ [l]
+ \setlength{\tabcolsep}{.85\tabcolsep}% Umbruchoptimierung
+ \begin{tabular}[t]{llll}
+ \toprule
+ Element & Command & Font & Alignment \\
+ \midrule
+ Title head & \Macro{titlehead} & \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{titlehead} & justified \\
+ Subject & \Macro{subject} & \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{subject} & centred \\
+ Title & \Macro{title} & \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{title}\Macro{huge} & centred \\
+ Subtitle & \Macro{subtitle} & \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{subtitle} & centred \\
+ Authors & \Macro{author} & \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{author} & centred \\
+ Date & \Macro{date} & \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{date} & centred \\
+ Publishers & \Macro{publishers} & \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{publishers} & centred \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:maincls.mainTitle}
+ \end{table}
+}{}
+
+Note\textnote{Attention!} that for the main title, \Macro{huge} will be used
+after the font switching element
+\DescRef{\ThisCommonLabelBase.fontelement.title}\IndexFontElement{title}. So
+you cannot change the size of the main title using
+\DescRef{\ThisCommonLabelBase.cmd.setkomafont} or
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont}.%
+
+\IfThisCommonFirstRun{\iftrue}{%
+ An example for a title page using all the elements offered by \KOMAScript{}
+ is shown in \autoref{sec:\ThisCommonFirstLabelBase.titlepage} on
+ \PageRefxmpl{\ThisCommonFirstLabelBase.maintitle}.%
+ \csname iffalse\endcsname%
+}%
+ \begin{Example}
+ \phantomsection\xmpllabel{maintitle}%
+ Suppose you are writing a dissertation. The title page should have the
+ university's name and address at the top, flush left, and the semester,
+ flush right. As usual, a title including author and submission date
+ should be given. The adviser must also be indicated, together with the
+ fact that the document is a dissertation. You can do this as follows:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage[english]{babel}
+ \begin{document}
+ \titlehead{{\Large Unseen University
+ \hfill SS~2002\\}
+ Higher Analytical Institute\\
+ Mythological Rd\\
+ 34567 Etherworld}
+ \subject{Dissertation}
+ \title{Digital space simulation with the DSP\,56004}
+ \subtitle{Short but sweet?}
+ \author{Fuzzy George}
+ \date{30. February 2002}
+ \publishers{Adviser Prof. John Eccentric Doe}
+ \maketitle
+ \end{document}
+\end{lstcode}
+ \end{Example}%
+\fi
+
+\begin{Explain}
+ A common misconception concerns the function of the full title page. It is
+ often erroneously assumed to be the cover\Index{cover} or dust jacket.
+ Therefore, it is frequently expected that the title page will not follow the
+ normal layout for two-sided typesetting but will have equally large left and
+ right margins.
+
+ But if you pick up a book and open it, you will quickly find at least one
+ title page inside the cover, within the so-called book block. Precisely
+ these title pages are produced by
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle}.
+
+ As is the case with the half-title, the full title page belongs to the book
+ block, and therefore should have the same page layout as the rest of the
+ document. A cover is actually something that you should create in a
+ separate document. After all, it often has a very distinct format. It can
+ also be designed with the help of a graphics or DTP program. A separate
+ document should also be used because the cover will be printed on a
+ different medium, such as cardboard, and possibly with another printer.
+
+ Nevertheless, since \KOMAScript~3.12 the first title page issued by
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle} can be formatted as a cover
+ page with different margins. Changes to the margins on this page do not
+ affect the other margins. For more information about this option, see
+ \OptionValueRef{\ThisCommonLabelBase}{titlepage}{firstiscover}%
+ \IndexOption{titlepage~=\textKValue{firstiscover}} on
+ \DescPageRef{\ThisCommonLabelBase.option.titlepage}.
+\end{Explain}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{uppertitleback}\Parameter{titlebackhead}%
+ \Macro{lowertitleback}\Parameter{titlebackfoot}
+\end{Declaration}%
+In\textnote{\KOMAScript{} vs. standard classes} two-sided printing, the
+standard classes leave the back (verso) of the title page empty. However, with
+{\KOMAScript} the back of the full title page can be used for other
+information. There are exactly two elements which the user can freely format:
+\PName{titlebackhead}\Index{title>back}\Index{title>verso} and
+\PName{titlebackfoot}. The header can extend to the footer and vice versa.
+\iffree{Using this guide as an example, the legal disclaimer was set with the
+ help of the \Macro{uppertitleback} command.}{The publishers information of
+ this book, for example, could have been set either with
+ \Macro{uppertitleback} or \Macro{lowertitleback}.}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{dedication}\Parameter{dedication}
+\end{Declaration}%
+{\KOMAScript} offers its own dedication page. This
+dedication\Index{dedication} is centred and set by default with a slightly
+larger font\textnote{font}.
+\BeginIndexGroup\BeginIndex{FontElement}{dedication}%
+\LabelFontElement{dedication}
+The%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.12}{\Package{scrextend}}%
+ }{\InternalCommonFileUseError}%
+}\important{\FontElement{dedication}} exact font setting for the
+\FontElement{dedication} element, which is taken from
+\autoref{tab:\ThisCommonFirstLabelBase.titlefonts},
+\autopageref{tab:\ThisCommonFirstLabelBase.titlefonts}, can be changed with
+the \DescRef{\ThisCommonLabelBase.cmd.setkomafont} and
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}).%
+\EndIndexGroup
+
+\IfThisCommonFirstRun{\iftrue}{%
+ An example with all title pages provided by \KOMAScript{} is shown in
+ \autoref{sec:\ThisCommonFirstLabelBase.titlepage} on
+ \PageRefxmpl{\ThisCommonFirstLabelBase.fulltitle}.%
+ \csname iffalse\endcsname%
+}%
+ \begin{Example}
+ \phantomsection\xmpllabel{fulltitle}%
+ Suppose you have written a book of poetry and want to
+ dedicate it to your spouse. A solution would look like this:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage[english]{babel}
+ \begin{document}
+ \extratitle{\textbf{\Huge In Love}}
+ \title{In Love}
+ \author{Prince Ironheart}
+ \date{1412}
+ \lowertitleback{This poem book was set with%
+ the help of {\KOMAScript} and {\LaTeX}}
+ \uppertitleback{Self-mockery Publishers}
+ \dedication{To my treasured hazel-hen\\
+ in eternal love\\
+ from your dormouse.}
+ \maketitle
+ \end{document}
+\end{lstcode}
+ Please use your own favourite pet names to personalize it.
+ \end{Example}%
+\fi%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/common-typearea.tex b/macros/latex/contrib/koma-script/source-doc/english/common-typearea.tex
new file mode 100644
index 0000000000..30b89d0331
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/common-typearea.tex
@@ -0,0 +1,88 @@
+% ======================================================================
+% common-typearea.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-typearea.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absaetze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-typearea.tex}
+ [$Date: 2018-03-30 09:37:06 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (common paragraphs: typearea)]
+\translator{Markus Kohm\and Krickette Murabayashi\and Karl Hagen}
+
+% Date of the translated German file: 2018-02-01
+
+\section{Page Layout}
+\seclabel{typearea}
+\BeginIndexGroup
+\BeginIndex{}{page>layout}
+
+Each page of a document consists of different layout elements, such as the
+margins, the header, the footer, the text area, the marginal note column, and
+the distances between these elements. \KOMAScript{} additionally distinguishes
+the entire page, also known as the paper, and the visible page. Without doubt,
+the separation of the page into these different parts is one of the basic
+features of a class\IfThisCommonLabelBase{scrlttr2}{\OnlyAt{scrlttr2}}{}.
+\KOMAScript{} delegates this work to the package \Package{typearea}. This
+package can also be used with other classes. The \KOMAScript{} classes,
+however, load \Package{typearea} on their own. Therefore, it's neither
+necessary nor sensible to load the package explicitly with \Macro{usepackage}
+while using a \KOMAScript{} class. See also
+\autoref{sec:\ThisCommonLabelBase.options},
+\autopageref{sec:\ThisCommonLabelBase.options}.
+
+Some settings of \KOMAScript{} classes affect the page layout and vice versa.
+Those effects are documented at the corresponding settings.
+
+For more information about the choice of paper format, the division of the
+page into margins and type area, and the choice between one- and two-column
+typesetting, see the documentation for the \Package{typearea} package. You can
+find it in \autoref{cha:typearea}, starting on \autopageref{cha:typearea}.
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/expertpart.tex b/macros/latex/contrib/koma-script/source-doc/english/expertpart.tex
new file mode 100644
index 0000000000..60dd17e9b3
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/expertpart.tex
@@ -0,0 +1,78 @@
+% ======================================================================
+% expertpart.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% expertpart.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% First part: KOMA-Script for Authors
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Erster Teil: KOMA-Script fuer Autoren
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{expertpart.tex}
+ [$Date: 2018-02-28 13:23:23 +0100 (Wed, 28 Feb 2018) $
+ Part KOMA-Script for Experts]
+\translator{Markus Kohm\and Karl Hagen}
+
+\setpartpreamble{%
+ \vspace*{2\baselineskip}%
+ \setlength{\parindent}{1em}%
+
+ \noindent In this part, you can find information for the authors of LaTeX
+ packages and classes. This applies not only to commands that are useful for
+ implementing new packages and classes, but also to interfaces that allow
+ further alteration of \KOMAScript{}. Moreover, this part provides
+ information on obsolete options and instructions, as well as background
+ information on the implementation of \KOMAScript{}.
+
+ This part is intended to supplement the information for authors of articles,
+ reports, books and letters in \autoref{part:forAuthors}. More information
+ and examples for those users can be found in that part.
+}
+
+\part{\KOMAScript{} for Advanced Users and Experts}
+\label{part:forExperts}
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "guide.tex"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/guide-english.tex b/macros/latex/contrib/koma-script/source-doc/english/guide-english.tex
new file mode 100644
index 0000000000..edebaee2b9
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/guide-english.tex
@@ -0,0 +1,522 @@
+% ======================================================================
+% guide-english.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% guide-english.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% Language dependencies (english) of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Sprachabhaengigkeiten (english) der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+%
+\KOMAProvidesFile{guide-english.tex}
+ [$Date: 2018-03-21 10:37:34 +0100 (Wed, 21 Mar 2018) $
+ KOMA-Script guide language dependencies]
+%
+% \section{Extra Packages}
+%
+\RequirePackage[normal]{engord}
+%
+% \section{Title}
+%
+% \begin{macro}{\GuideSubject}
+% \begin{macro}{\GuideTitle}
+% \begin{macro}{\GuideSubTitle}
+% \begin{macro}{\GuideAuthorHeadline}
+% \begin{macro}{\GuideTranslatorHeadline}
+% \begin{macro}{\GuideWarrantyHeadline}
+% \begin{macro}{\GuideWarranty}
+% \begin{macro}{\GuideCopyright}
+% \begin{macro}{\GuideDedication}
+% Language dependencies of all the title pages.
+% \begin{macrocode}
+\newcommand*{\GuideSubject}{The Guide}%
+\newcommand*{\GuideTitle}{\KOMAScript}%
+\newcommand*{\GuideSubTitle}{a versatile {\LaTeXe} bundle%
+ % Ugly note
+ \vfill
+ \noindent Note: This document is a translation of the German \KOMAScript{}
+ 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:
+} \newcommand*{\GuideWarrantyHeadline}{Legal Notes:}%
+\newcommand*{\GuideWarranty}{There is no warranty for any part of the
+ documented software. The authors have taken care in the preparation of this
+ guide, but make no expressed or implied warranty of any kind and assume no
+ responsibility for errors or omissions. No liability is assumed for
+ incidental or consequential damages in connection with or arising out of the
+ use of the information or programs contained here.\par\medskip%
+ Many of the designations used by manufacturers and sellers to distinguish
+ their products are claimed as trademarks. Where those designations appear in
+ this book, and the authors were aware of a trademark claim, the designations
+ have been printed with initial capital letters or in all capitals.}%
+\newcommand*{\GuideCopyright}{Free screen version without any optimization of
+ paragraph and page breaks\par\medskip%
+ This guide is part of {\KOMAScript}, which is free under the terms and
+ conditions of {\LaTeX} Project Public License Version 1.3c. A version of
+ this license, which is valid for {\KOMAScript}, is part of {\KOMAScript} (see
+ \File{lppl.txt}). Distribution of this manual\,---\,even if it is
+ printed\,---\,is allowed provided that all parts of {\KOMAScript} are
+ distributed with it. Distribution without the other parts of {\KOMAScript}
+ requires an explicit, additional authorization by the authors.}%
+\newcommand*{\GuideDedication}{To all my friends all over the world!}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \section{CTAN Server to be Used}
+%
+% \begin{macro}{\GuideCTANserver}
+% Unused since 2015-09-30.
+% \begin{macrocode}
+%\newcommand*{\GuideCTANserver}{ftp.ctan.org}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Terms}
+%
+% Some terms, e.g. used at index notes.
+%
+% \begin{macro}{\GuideClass}
+% \begin{macro}{\GuideClassIndexCategory}
+% \begin{macro}{\GuideClassIndexCategoryExpanded}
+% The term ``class''.
+% \begin{macrocode}
+\newcommand*{\GuideClass}{class}
+\newcommand*{\GuideClassIndexCategory}{classes}
+\let\GuideClassIndexCategoryExpanded\GuideClassIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideCounter}
+% \begin{macro}{\GuideCounterIndexCategory}
+% \begin{macro}{\GuideCounterIndexCategoryExpanded}
+% The term ``counter''.
+% \begin{macrocode}
+\newcommand*{\GuideCounter}{counter}
+\newcommand*{\GuideCounterIndexCategory}{counters}
+\let\GuideCounterIndexCategoryExpanded\GuideCounterIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideEnvironment}
+% \begin{macro}{\GuideEnvIndexCategory}
+% \begin{macro}{\GuideEnvIndexCategoryExpanded}
+% The term ``environment''.
+% \begin{macrocode}
+\newcommand*{\GuideEnvironment}{environment}
+\newcommand*{\GuideEnvIndexCategory}{environments}
+\let\GuideEnvIndexCategoryExpanded\GuideEnvIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideExample}
+% The term ``Example'' used at a kind of heading, so it should be upper case.
+% \begin{macrocode}
+\newcommand*{\GuideExample}{Example}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GuideFile}
+% \begin{macro}{\GuideFileIndexCategory}
+% \begin{macro}{\GuideFileIndexCategoryExpanded}
+% The term ``file''.
+% \begin{macrocode}
+\newcommand*{\GuideFile}{file}
+\newcommand*{\GuideFileIndexCategory}{files}
+\let\GuideFileIndexCategoryExpanded\GuideFileIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideFloatstyle}
+% \begin{macro}{\GuideFloatstyleIndexCategory}
+% \begin{macro}{\GuideFloatstyleIndexCategoryExpanded}
+% The term ``\Package{float} style''.
+% \begin{macrocode}
+\newcommand*{\GuideFloatstyle}{\Package{float} style}
+\newcommand*{\GuideFloatstyleIndexCategory}{\Package{float} styles}
+\newcommand*{\GuideFloatstyleIndexCategoryExpanded}{float styles}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideFontElement}
+% \begin{macro}{\GuideFontElementIndexCategory}
+% \begin{macro}{\GuideFontElementIndexCategoryExpanded}
+% The term ``element''.
+% \begin{macrocode}
+\newcommand*{\GuideFontElement}{element}
+\newcommand*{\GuideFontElementIndexCategory}{elements}
+\let\GuideFontElementIndexCategoryExpanded\GuideFontElementIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideLength}
+% \begin{macro}{\GuideLengthIndexCategory}
+% \begin{macro}{\GuideLengthIndexCategoryExpanded}
+% The term ``length''.
+% \begin{macrocode}
+\newcommand*{\GuideLength}{length}
+\newcommand*{\GuideLengthIndexCategory}{lengths}
+\let\GuideLengthIndexCategoryExpanded\GuideLengthIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideMacro}
+% \begin{macro}{\GuideMacroIndexCategory}
+% \begin{macro}{\GuideMacroIndexCategoryExpanded}
+% \begin{macro}{\GuideCommand}
+% \begin{macro}{\GuideCommandIndexCategory}
+% \begin{macro}{\GuideCommandIndexCategoryExpanded}
+% The term ``command''.
+% \begin{macrocode}
+\newcommand*{\GuideMacro}{command}
+\let\GuideCommand\GuideMacro
+\newcommand*{\GuideMacroIndexCategory}{commands}
+\let\GuideCommandIndexCategory\GuideMacroIndexCategory
+\let\GuideMacroIndexCategoryExpanded\GuideMacroIndexCategory
+\let\GuideCommandIndexCategoryExpanded\GuideCommandIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideOption}
+% \begin{macro}{\GuideOptionIndexCategory}
+% \begin{macro}{\GuideOptionIndexCategoryExpanded}
+% The term ``option''.
+% \begin{macrocode}
+\newcommand*{\GuideOption}{option}
+\newcommand*{\GuideOptionIndexCategory}{options}
+\let\GuideOptionIndexCategoryExpanded\GuideOptionIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuidePackage}
+% \begin{macro}{\GuidePackageIndexCategory}
+% \begin{macro}{\GuidePackageIndexCategoryExpanded}
+% The term ``package''.
+% \begin{macrocode}
+\newcommand*{\GuidePackage}{package}
+\newcommand*{\GuidePackageIndexCategory}{packages}
+\let\GuidePackageIndexCategoryExpanded\GuidePackageIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuidePagestyle}
+% \begin{macro}{\GuidePagestyleIndexCategory}
+% \begin{macro}{\GuidePagestyleIndexCategoryExpanded}
+% The term ``page style''.
+% \begin{macrocode}
+\newcommand*{\GuidePagestyle}{page style}
+\newcommand*{\GuidePagestyleIndexCategory}{page styles}
+\let\GuidePagestyleIndexCategoryExpanded\GuidePagestyleIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuidePLength}
+% \begin{macro}{\GuidePLengthIndexCategory}
+% \begin{macro}{\GuidePLengthIndexCategoryExpanded}
+% \begin{macro}{\GuidePseudoPrefix}
+% The prefix ``pseudo'' at the term ``pseudo length'' and the term itself.
+% \begin{macrocode}
+\newcommand*{\GuidePseudoPrefix}{pseudo-}
+\newcommand*{\GuidePLength}{\GuidePseudoPrefix\GuideLength}
+\newcommand*{\GuidePLengthIndexCategory}{\GuidePseudoPrefix\GuideLengthIndexCategory}
+\let\GuidePLengthIndexCategoryExpanded\GuidePLengthIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideVariable}
+% \begin{macro}{\GuideVariableIndexCategory}
+% \begin{macro}{\GuideVariableIndexCategoryExpanded}
+% The termo ``variable''.
+% \begin{macrocode}
+\newcommand*{\GuideVariable}{variable}
+\newcommand*{\GuideVariableIndexCategory}{variables}
+\let\GuideVariableIndexCategoryExpanded\GuideVariableIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideAnd}
+% The ``and'' at a list of two.
+% \begin{macrocode}
+\newcommand*{\GuideAnd}{ and }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GuideListAnd}
+% The ``and'' at a list of more than two.
+% \begin{macrocode}
+\newcommand*{\GuideListAnd}{, and }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GuideLoadNonFree}
+% Note, that the non free manual contains more information.
+% \begin{macrocode}
+\newcommand*{\GuideLoadNonFree}{%
+ Currently, additional information on this topic can be found at the same
+ point in the German \KOMAScript{} book \cite{book:komascript} only.
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Index}
+%
+% \begin{macro}{\GuidegenIndex}
+% \begin{macro}{\GuidecmdIndex}
+% \begin{macro}{\GuidecmdIndexShort}
+% \begin{macro}{\GuidelenIndex}
+% \begin{macro}{\GuidelenIndexShort}
+% \begin{macro}{\GuideelmIndex}
+% \begin{macro}{\GuideelmIndexShort}
+% \begin{macro}{\GuidefilIndex}
+% \begin{macro}{\GuidefilIndexShort}
+% \begin{macro}{\GuideoptIndex}
+% \begin{macro}{\GuideoptIndexShort}
+% The titles and short titles of each single index.
+\newcommand*{\GuidegenIndex}{General Index}%
+\newcommand*{\GuidecmdIndex}{Index of Commands, Environments, and Variables}%
+\newcommand*{\GuidecmdIndexShort}{Index of Commands, etc.}%
+\newcommand*{\GuidelenIndex}{Index of Lengths and Counters}%
+\newcommand*{\GuidelenIndexShort}{Index of Lengths, etc.}%
+\newcommand*{\GuideelmIndex}{Index of Elements Capable of
+ Adjusting Fonts}%
+\newcommand*{\GuideelmIndexShort}{Index of Elements}%
+\newcommand*{\GuidefilIndex}{Index of Files, Classes, and Packages}%
+\newcommand*{\GuidefilIndexShort}{Index of Files, etc.}%
+\newcommand*{\GuideoptIndex}{Index of Class and Package Options}%
+\newcommand*{\GuideoptIndexShort}{Index of Options}%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideIndexPreamble}
+% The preamble text of the whole index.
+\newcommand*{\GuideIndexPreamble}{%
+ There are two kinds of page numbers in this index. The numbers in bold
+ show the pages where the topic is defined or explained. The numbers in
+ ordinary type show the pages of where the topic is mentioned.%
+}
+% \end{macro}
+%
+%
+% \begin{macro}{\GuideIndexSees}
+% These are all see index entries.
+\newcommand*{\GuideIndexSees}{%
+}
+% \end{macro}
+%
+% \begin{macro}{\GuideIndexSeeAlsos}
+% These are all see also index entries.
+\newcommand*{\GuideIndexSeeAlsos}{%
+}
+% \end{macro}
+%
+% \section{Bibliography}
+%
+% \begin{macro}{\GuideBibPreamble}
+% \begin{macrocode}
+\newcommand*{\GuideBibPreamble}{%
+ In the following, you will find many references. All of them are referenced
+ in the main text. In many cases the reference points to documents or
+ directories which can be accessed via the Internet. In these cases, the
+ reference includes a URL instead of a publisher. If the reference points to
+ a {\LaTeX} package then the URL is written in the form
+ ``\url{CTAN://}\emph{destination}''. The prefix ``\url{CTAN://}'' means the
+ \TeX{} archive on a CTAN server or mirror. For example, you can replace the
+ prefix with \url{http://mirror.ctan.org/}. For {\LaTeX} packages, it is also
+ important to mention that we have tried to give a version number appropriate
+ to the text that cites the reference. But for some packages is is very
+ difficult to find a consistent version number and release date.
+ Additionally, the given version is not always the current version. If you
+ want install new packages, be sure that the package is the most up-to-date
+ version and check first if the package is already available on your system.%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Change Log}
+%
+% \begin{macro}{\GuideChangeLogPreamble}
+% The preamble of the change log index.
+% \begin{macrocode}
+\newcommand*{\GuideChangeLogPreamble}{%
+ In this list of changes, you will find all significant changes to the user
+ interface of the {\KOMAScript} bundle at the last few versions. The list was
+ sorted by the names of the classes and packages and their version. The
+ numbers after the version are the pages where the changes are described. In
+ the margins of these pages, you will find corresponding version marks.%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Language Extensions}
+%
+% Some terms should be part of the captions of the language.
+% \begin{macro}{\GuideLanguageExtensions}
+% This macro has to be defined, because the class will add it to the language
+% at |\begin{document}| and it will also call it.
+% \begin{macrocode}
+\newcommand*{\GuideLanguageExtensions}{%
+% \end{macrocode}
+% \begin{macro}{\pageautorefname}
+% The term ``page'' that will be put before the reference of a page set by
+% |\autopageref|.
+% \begin{macrocode}
+ \def\pageautorefname{page}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\partautorefname}
+% \begin{macro}{\figureautorefname}
+% \begin{macro}{\tableautorefname}
+% \begin{macro}{\subsectionautorefname}
+% \begin{macro}{\subsubsectionautorefname}
+% \begin{macro}{\paragraphautorefname}
+% \begin{macro}{\subparagraphautorefname}
+% I'll call them all ``section''.
+% \begin{macrocode}
+ \def\partautorefname{part}%
+ \def\figureautorefname{figure}%
+ \def\tableautorefname{table}%
+ \def\appendixautorefname{appendix}%
+ \let\subsectionautorefname=\sectionautorefname
+ \let\subsubsectionautorefname=\sectionautorefname
+ \let\paragraphautorefname=\sectionrefname
+ \let\subparagraphautorefname=\sectionrefname
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\changelogname}
+% The name of the change log index.
+% \begin{macrocode}
+ \def\changelogname{Change Log}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\descriptionname}
+% \begin{macro}{\contentsname}
+% \begin{macrocode]
+ \def\descriptionname{description}%
+ \def\contentname{contents}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\lengthname}
+% \begin{macrocode}
+ \def\lengthname{length}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Hyphenation}
+%
+% This is not realy a good place to put them~-- but better late than never:
+% \begin{macrocode}
+\hyphenation{%
+}
+% \end{macrocode}
+%
+%
+%
+\endinput
+%%% Local Variables:
+%%% mode: doctex
+%%% coding: us-ascii
+%%% TeX-master: "guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/guide.tex b/macros/latex/contrib/koma-script/source-doc/english/guide.tex
new file mode 120000
index 0000000000..4e897d1e39
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/guide.tex
@@ -0,0 +1 @@
+../guide.tex \ No newline at end of file
diff --git a/macros/latex/contrib/koma-script/source-doc/english/htmlsetup b/macros/latex/contrib/koma-script/source-doc/english/htmlsetup
new file mode 100644
index 0000000000..8c30c6ed56
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/htmlsetup
@@ -0,0 +1,65 @@
+# ======================================================================
+# htmlsetup
+# 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.
+# ----------------------------------------------------------------------
+# htmlsetup
+# 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.
+# ======================================================================
+
+$baselink="scrguien.pdf";
+$htmlhead="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">
+<html>
+<head><title>Index</title>
+<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">
+</head>
+<body>
+<h1>Index of the KOMA-Script Guide</h1>
+<p>This is an index of the elements defined at KOMA-Script. This index is related to the <a href=\"scrguien.pdf\">KOMA-Script guide</a>. To improve the survey this index has serveral functional sections:</p>
+";
+$htmlend="<p>
+<a href=\"http://validator.w3.org/check?uri=referer\"><img
+src=\"http://www.w3.org/Icons/valid-html40\"
+alt=\"Valid HTML 4.0 Strict\" height=\"31\" width=\"88\"></a>
+</p>
+</body></html>";
+%titles=( "option" => "Options",
+ "macro" => "Commands",
+ "environment" => "Environments",
+ "length" => "Lengths",
+ "plength" => "Pseudolengths",
+ "variable" => "Variables",
+ "pagestyle" => "Page Styles",
+ "counter" => "Counter",
+ "floatstyle" => "Styles for the float Package",
+ "fontelement" => "Elements (Font May Be Changed)" );
+
+# end of file
diff --git a/macros/latex/contrib/koma-script/source-doc/english/introduction.tex b/macros/latex/contrib/koma-script/source-doc/english/introduction.tex
new file mode 100644
index 0000000000..9331720287
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/introduction.tex
@@ -0,0 +1,352 @@
+% ======================================================================
+% introduction.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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.
+% ----------------------------------------------------------------------
+% introduction.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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.
+% ======================================================================
+%
+% Introduction of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Einleitung der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{introduction.tex}
+ [$Date: 2019-01-15 08:39:58 +0100 (Tue, 15 Jan 2019) $
+ KOMA-Script guide introduction]
+\translator{Kevin Pfeiffer\and Gernot Hassenpflug\and
+ Krickette Murabayashi\and Markus Kohm\and Karl Hagen}
+
+% Date of the translated German file: 2018-02-05
+
+\chapter{Introduction}
+\labelbase{introduction}
+
+This chapter contains, among other things, important information about the
+structure of the manual and the history of {\KOMAScript}, which begins
+years before the first version. You will also find information on how to
+install {\KOMAScript} and what to do if you encounter errors.
+
+\section{Preface}\seclabel{preface}
+
+{\KOMAScript} is very complex. This is due to the fact that it consists of not
+just a single class or a single package but a bundle of many classes and
+packages. Although the classes are designed as counterparts to the standard
+classes, that does not mean they provide only the commands, environments, and
+settings of the standard classes, or that they imitate their appearance. The
+capabilities of {\KOMAScript} sometimes far surpass those of the standard
+classes. Some of them should be considered extensions to the basic
+capabilities of the \LaTeX{} kernel.
+
+The foregoing means that the documentation of {\KOMAScript} has to be
+extensive. In addition, {\KOMAScript} is not normally taught. That means there
+are no teachers who know their students and can therefore choose the teaching
+materials and adapt them accordingly. It would be easy to write documentation
+for a specific audience. The difficulty facing the author, however, is that
+the manual must serve all potential audiences. I have tried to create a guide
+that is equally suitable for the computer scientist and the fishmonger's
+secretary. I have tried, although this is actually an impossible task. The
+result is numerous compromises, and I would ask you to take this issue into
+account if you have any complaints or suggestions to help improve the current
+situation.
+
+Despite the length of this manual, I would ask you to consult the
+documentation first in case you have problems. You should start by referring
+to the multi-part index at the end of this document. In addition to this
+manual, documentation includes all the text documents that are part of the
+bundle. See \File{manifest.tex} for a complete list.
+
+\section{Structure of the Guide}\seclabel{structure}
+
+This manual is divided into several parts: There is a section for average
+users, one for advanced users and experts, and an appendix with further
+information and examples for those who want to understand {\KOMAScript}
+thoroughly.
+
+\autoref{part:forAuthors} is intended for all {\KOMAScript} users. This means
+that some information in this section is directed at newcomers to \LaTeX. In
+particular, this part contains many examples that are intended to clarify the
+explanations. Do not hesitate to try these examples yourself and discover how
+{\KOMAScript} works by modifying them. That said, the {\KOMAScript} user guide
+is not intended to be a {\LaTeX} primer. Those new to {\LaTeX} should look at
+\emph{The Not So Short Introduction to {\LaTeXe}} \cite{lshort} or
+\emph{{\LaTeXe} for Authors} \cite{latex:usrguide} or a {\LaTeX} reference
+book. You will also find useful information in the many {\LaTeX} FAQs,
+including the \emph{{\TeX} Frequently Asked Questions on the Web}
+\cite{UK:FAQ}. Although the length of the \emph{{\TeX} Frequently Asked
+ Questions on the Web} is considerable, you should get at least a rough
+overview of it and consult it in case you have problems, as well as this
+\iffree{guide}{book}.
+
+\autoref{part:forExperts} is intended for advanced {\KOMAScript} users, those
+who are already familiar with \LaTeX{} or who have been working with
+{\KOMAScript} for a while and want to understand more about how {\KOMAScript}
+works, how it interacts with other packages, and how to perform more
+specialized tasks with it. For this purpose, we return to some aspects of the
+class descriptions from \autoref{part:forAuthors} and explain them in more
+detail. In addition we document some commands that are particularly intended
+for advanced users and experts. This is supplemented by the documentation of
+packages that are normally hidden from the user, insofar as they do their work
+beneath the surface of the classes and user packages. These packages are
+specifically designed to be used by authors of classes and packages.
+
+The appendix\iffree{, which can only be found in the German book version,}{}
+contains information beyond that which is covered in \autoref{part:forAuthors}
+and \autoref{part:forExperts}. Advanced users will find background information
+on issues of typography to give them a basis for their own decisions. In
+addition, the appendix provides examples for aspiring package authors. These
+examples are not intended simply to be copied. Rather, they provide
+information about planning and implementing projects, as well as some basic
+\LaTeX{} commands for package authors.
+
+The guide's layout should help you read only those parts that are actually of
+interest. Each class and package typically has its own chapter.
+Cross-references to another chapter are thus usually also references to
+another part of the overall package. However, since the three main classes
+(\Class{scrbook}, \Class{scrrprt}, and \Class{scrartcl}) largely agree, they
+are introduced together in \autoref{cha:maincls}. Differences between the
+classes, e.\,g., for something that only affects the class
+\Class{scrartcl}\OnlyAt{\Class{scrartcl}}, are clearly highlighted in the
+margin, as shown here with \Class{scrartcl}.
+
+\begin{Explain}
+ The primary documentation for {\KOMAScript} is in German and has been
+ translated for your convenience; like most of the {\LaTeX} world, its
+ commands, environments, options, etc., are in English. In a few cases, the
+ name of a command may sound a little strange, but even so, we hope and
+ believe that with the help of this guide, {\KOMAScript} will be usable
+ and useful to you.
+\end{Explain}
+
+At this point you should know enough to understand the guide.
+It might, however, still be worth reading the rest of this chapter.
+
+\section{History of {\KOMAScript}}\seclabel{history}
+
+%\begin{Explain}
+In the early 1990s, Frank Neukam needed a method to publish an instructor's
+lecture notes. At that time {\LaTeX} was {\LaTeX}2.09 and there was no
+distinction between classes and packages\,---\,there were only \emph{styles}.
+Frank felt that the standard document styles were not good enough for his
+work; he wanted additional commands and environments. At the same time he was
+interested in typography and, after reading Tschichold's \emph{Ausgew\"ahlte
+ Aufs\"atze \"uber Fragen der Gestalt des Buches und der Typographie}
+(Selected Articles on the Problems of Book Design and Typography)
+\cite{JTsch87}, he decided to write his own document style\,---\,and not just
+a one-time solution to his lecture notes, but an entire style family, one
+specifically designed for European and German typography. Thus {\Script} was
+born.
+
+Markus Kohm, the developer of {\KOMAScript}, came across {\Script} in December
+1992 and added an option to use the A5 paper format. At that time neither the
+standard style nor {\Script} provided support for A5 paper. Therefore it did
+not take long until Markus made the first changes to {\Script}. This and other
+changes were then incorporated into {\ScriptII}, released by Frank in December
+1993.
+
+In mid-1994, {\LaTeXe} became available and brought with it many changes.
+Users of {\ScriptII} were faced with either limiting their usage to
+{\LaTeXe}'s compatibility mode or giving up {\Script} altogether. This
+situation led Markus to put together a new {\LaTeXe} package, released on
+7~July 1994 as {\KOMAScript}. A few months later, Frank declared {\KOMAScript}
+to be the official successor to {\Script}. {\KOMAScript} originally provided
+no \emph{letter} class, but this deficiency was soon remedied by Axel
+Kielhorn, and the result became part of {\KOMAScript} in December 1994. Axel
+also wrote the first true German-language user guide, which was followed by an
+English-language guide by Werner Lemberg.
+
+Since then much time has passed. {\LaTeX} has changed in only minor ways, but
+the {\LaTeX} landscape has changed a great deal; many new packages and classes
+are now available and {\KOMAScript} itself has grown far beyond what it was in
+1994. The initial goal was to provide good {\LaTeX} classes for
+German-language authors, but today its primary purpose is to provide
+more-flexible alternatives to the standard classes. {\KOMAScript}'s success
+has led to e-mail from users all over the world, and this has led to many new
+macros\,---\,all needing documentation; hence this ``small guide.''
+%\end{Explain}
+
+
+\section{Special Thanks}
+\seclabel{thanks}
+
+Acknowledgements in the introduction? No, the proper acknowledgements can be
+found in the addendum. My comments here are not intended for the authors of
+this guide\,---\,and those thanks should rightly come from you, the reader,
+anyhow. I, the author of {\KOMAScript}, would like to extend my personal
+thanks to Frank Neukam. Without his {\Script} family, {\KOMAScript} would not
+have come about. I am indebted to the many persons who have contributed to
+{\KOMAScript}, but with their indulgence, I would like to specifically mention
+Jens-Uwe Morawski and Torsten Kr\"uger. The English translation of the guide
+is, among many other things, due to Jens's untiring commitment. Torsten was
+the best beta-tester I ever had. His work has particularly enhanced the
+usability of \Class{scrlttr2} and \Class{scrpage2}. Many thanks to all who
+encouraged me to go on, to make things better and less error-prone, or to
+implement additional features.
+
+Special thanks go as well to the founders and members of DANTE,
+Deutschsprachige Anwendervereinigung {\TeX}~e.V\kern-.18em, (the
+German-Language {\TeX} User Group). Without the DANTE server, {\KOMAScript}
+could not have been released and distributed. Thanks as well to everybody on
+the {\TeX} newsgroups and mailing lists who answer questions and have helped
+me provide support for {\KOMAScript}.
+
+My thanks also go to all those who have always encouraged me to go further and
+to implement this or that feature better, with fewer flaws, or simply as an
+extension. I would also like to thank the very generous donor who has given me
+the most significant amount of money I have ever been paid for the work done
+so far on \KOMAScript{}.
+
+\section{Legal Notes}
+\seclabel{legal}
+
+{\KOMAScript} is released under the {\LaTeX} Project Public License. You will
+find it in the file \File{lppl.txt}. An unofficial German-language translation
+is also available in \File{lppl-de.txt} and is valid for all German-speaking
+countries.
+
+\iffree{This document and the {\KOMAScript} bundle are provided ``as is'' and
+ without warranty of any kind.}%
+{Please note: the printed version of this guide is not free under the
+ conditions of the {\LaTeX} Project Public Licence. If you need a free
+ version of this guide, use the version that is provided as part of the
+ {\KOMAScript} bundle.}
+
+
+\section{Installation}
+\seclabel{installation}
+
+The three most important \TeX{} distributions, Mac\TeX, MiK\TeX, and
+\TeX{}~Live, make {\KOMAScript} available through their package management
+software. You should install and update {\KOMAScript} using these tools, if
+possible. Manual installation without using the package managers is described
+in the file \File{INSTALL.txt}, which is part of every {\KOMAScript}
+distribution. You should also read the documentation that comes with the
+{\TeX} distribution you are using.
+
+
+\section{Bug Reports and Other Requests}
+\seclabel{errors}
+
+If you think you have found an error in the documentation or a bug in one of
+the {\KOMAScript} classes, packages, or another part of {\KOMAScript}, please
+do the following: First check on CTAN to see if a newer version of
+{\KOMAScript} has been released. If a newer version is available, install this
+new version and check if the problem persists.
+
+If the bug still occurs and your installation is fully up to date, please
+provide a short {\LaTeX} file that demonstrates the problem. Such a file is
+known as a minimal working example (MWE). You should include only minimal text
+and use only the packages and definitions essential to demonstrate the
+problem. Avoid using any unusual packages as much as possible.
+
+By preparing such an example it often becomes clear whether the problem is
+truly a {\KOMAScript} bug or caused by something else. To check if another
+package or class is actually causing the problem, you can also test your
+example with the corresponding standard class instead of a {\KOMAScript}
+class. If your problem still occurs, you should address your error report to
+the author of the appropriate package than to the author of {\KOMAScript}.
+Finally, you should carefully review the instructions for the appropriate
+package, classes, and {\KOMAScript} component. A solution to your problem may
+already exist, in which case an error report is unnecessary.
+
+If you think you have found a previously unreported error, or if for some
+other reason you need to contact the author of {\KOMAScript}, don't forget the
+following:
+
+\begin{itemize}
+\item Does the problem also occur if a standard class is used instead of a
+ {\KOMAScript} class? In this case, the error is most likely not with
+ {\KOMAScript}, and it makes more sense to ask your question in a public
+ forum, a mailing list, or Usenet.
+\item Which {\KOMAScript} version do you use? For related information, see the
+ \File{log} file of the \LaTeX{} run of any document that uses a
+ {\KOMAScript} class.
+\item Which operating system and which \TeX{} distribution do you use? This
+ information might seem rather superfluous for a system-independent package
+ like {\KOMAScript} or {\LaTeX}, but time and again they have certainly been
+ shown to play a role.
+\item What exactly is the problem or the error? Describe the problem. It's
+ better to be too detailed than too short. Often it makes sense to explain
+ the background.
+\item What does a minimal working example look like? You can easily create one
+ by commenting out content and packages from the document step by step. The
+ result is a document that only contains the packages and parts necessary to
+ reproduce the problem. In addition, all loaded images should be replaced by
+ \Macro{rule} statements of the appropriate size. Before sending your
+ MWE,remove the commented-out parts, insert the command \Macro{listfiles} in
+ the preamble, and perform another {\LaTeX} run. At the end of the \File{log}
+ file, you will see an overview of the packages used. Add the MWE and the log
+ file to the end of your description of the problem.
+\end{itemize}
+
+Do not send packages, PDF, PS, or DVI files. If the entire issue or bug
+description, including the minimal example and the \File{log} file is larger
+than a few tens of kilobytes, you're likely doing something wrong.
+
+If you've followed all these steps, please send your {\KOMAScript} (only) bug
+report to \href{mailto:komascript@gmx.info}{komascript@gmx.info}.
+
+If you want to ask your question in a Usenet group, mailing list, or Internet
+forum, you should follow the procedures mentioned above and include a minimal
+working example as part of your question, but usually you don't need to
+provide the \File{log}-file. Instead, just add the list of packages and
+package versions from the \File{log}-file and, if your MWE compiles with
+errors, you should quote those messages from the \File{log} file.
+
+Please note that default settings which are not typographically optimal do not
+represent errors. For reasons of compatibility, defaults are preserved
+whenever possible in new versions of {\KOMAScript}. Furthermore, typographical
+best practices are partly a matter of language and culture, and so the default
+settings of {\KOMAScript} are necessarily a compromise.
+
+\section{Additional Information}
+\seclabel{moreinfos}
+
+Once you become familiar with {\KOMAScript}, you may want examples that show
+how to accomplish more difficult tasks. Such examples go beyond the basic
+instructional scope of this manual and so are not included. However, you will
+find more examples on the website of the {\KOMAScript} Documentation Project
+\cite{homepage}. These examples are designed for advanced {\LaTeX} users and
+are not particularly suitable for beginners. The main language of the site
+is German, but English is also welcome.
+
+\endinput
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "../guide.tex"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/japanlco.tex b/macros/latex/contrib/koma-script/source-doc/english/japanlco.tex
new file mode 100644
index 0000000000..6503afae06
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/japanlco.tex
@@ -0,0 +1,601 @@
+% ======================================================================
+% japanlco.tex
+% Copyright (c) Gernot Hassenpflug and Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% japanlco.tex
+% Copyright (c) Gernot Hassenpflug und Markus Kohm, 2001-2018
+%
+% 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 Japanise paper size, envelopes and letters
+% Maintained by Gernot Hassenplug (with help from Markus Kohm)
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber japanische Papierformate, Umschläge und Briefe
+% Verwaltet von Gernot Hassenplug (mit Unterstuetzung von Markus Kohm)
+%
+% ======================================================================
+%
+% Special Note: Originally in English by Gernot Hassenpflug as part of
+% KOMA-Script bundle.
+%
+
+\KOMAProvidesFile{japanlco.tex}
+ [$Date: 2018-03-21 10:37:34 +0100 (Wed, 21 Mar 2018) $
+ KOMA-Script guide (appendix: japanlco)]
+
+\appendix
+
+\chapter[{Japanese Letter Support for \Class{scrlttr2}}]
+{Japanese Letter Support for \Class{scrlttr2}\footnote{This chapter was
+ originally written by Gernot Hassenpflug.}}
+\labelbase{japanlco}
+\Index{letter>Japanese}
+
+Since version~2.97e, \Class{scrlttr2} has provided support not only for
+European ISO~envelope sizes and window envelopes but also for Japanese
+envelopes, in the form of \File{lco} files which set the layout of the paper.
+This chapter documents this support and provides a few examples of using the
+provided \File{lco} files to print letters intended for Japanese envelopes.
+
+\section{Japanese standard paper and envelope sizes}
+\seclabel{PaperEnvelope}
+
+The Japan Industrial Standard (JIS) defines paper sizes and envelope sizes for
+national use, which both overlap with the ISO and US sizes and include some
+metricated traditional Japanese sizes. Envelope window size and position have
+not been defined internationally as yet; hence, there exists a plethora of
+envelopes with differing window sizes and positions. The following subsections
+give some background on Japanese paper sizes and envelopes.
+
+\subsection{Japanese paper sizes}
+\seclabel{Paper}
+
+The JIS defines two main series of paper sizes:
+\begin{enumerate}
+\item the JIS A-series, which is identical to the ISO A-series but
+ with slightly different tolerances; and
+\item the JIS B-series, which is not identical to the ISO/DIN
+ B-series. Instead, the JIS B-series paper has an area 1.5 times that
+ of the corresponding A-series paper, so that the length ratio is
+ approximately 1.22 times the length of the corresponding A-series
+ paper. The aspect ratio of the paper is the same as for A-series
+ paper.
+\end{enumerate}
+
+Both JIS A-series and B-series paper is widely available in Japan and most
+photocopiers and printers are loaded with at least A4 and B4 paper. The
+ISO/JIS~A-series and the different ISO and JIS~B-series sizes are listed in
+\autoref{tab:japanlco.jpapersizes1}.
+
+%% ISO/JIS standard comparison
+\begin{table}
+\begin{minipage}{\textwidth}\renewcommand*{\footnoterule}{}%
+\centering
+\caption[{ISO and JIS standard paper sizes}]
+{ISO and JIS standard paper sizes}%; trim sizes are given with width
+% preceding height, both in millimeters}
+\begin{tabular}{lr@{$\times$}llr@{$\times$}llr@{$\times$}l}\toprule
+ISO/JIS\,A & \multicolumn2l{W$\times$H in mm} & ISO\,B &
+\multicolumn2l{W$\times$H in mm} & JIS\,B & \multicolumn2l{W$\times$H
+ in mm} \\ \midrule
+A0 & 841 & 1189 & B0 & 1000 & 1414 & B0 & 1030 & 1456 \\
+A1 & 594 & 841 & B1 & 707 & 1000 & B1 & 728 & 1030 \\
+A2 & 420 & 594 & B2 & 500 & 707 & B2 & 515 & 728 \\
+A3 & 297 & 420 & B3 & 353 & 500 & B3 & 364 & 515 \\
+A4 & 210 & 297 & B4 & 250 & 353 & B4 & 257 & 364 \\
+A5 & 148 & 210 & B5 & 176 & 250 & B5 & 182 & 257 \\
+A6 & 105 & 148\footnotemark[1] & B6 & 125 & 176 & B6 & 128 & 182 \\
+A7 & 74 & 105 & B7 & 88 & 125 & B7 & 91 & 128 \\
+A8 & 52 & 74 & B8 & 62 & 88 & B8 & 64 & 91 \\
+A9 & 37 & 52 & B9 & 44 & 62 & B9 & 45 & 64 \\
+A10 & 26 & 37 & B10 & 31 & 44 & B10 & 32 & 45 \\
+A11 & 18 & 26 & & \multicolumn2l{} & B11 & 22 & 32 \\
+A12 & 13 & 18 & & \multicolumn2l{} & B12 & 16 & 22 \\
+\bottomrule
+\end{tabular}
+\label{tab:japanlco.jpapersizes1}
+\footnotetext[1]{Although Japan's official postcard size
+ appears to be A6, it is actually 100$\times$148\Unit{mm}, 5 millimetres
+ narrower than A6.}
+\end{minipage}
+\end{table}
+
+There are also a number of traditional paper sizes, which are now used
+mostly only by printers. The most common of these old series are the
+Shiroku-ban and the Kiku paper sizes. The difference of these types compared
+to the JIS~B-series are shown in \autoref{tab:japanlco.jpapersizes2}.
+Finally, there are some common stationery sizes, listed in
+\autoref{tab:japanlco.jpapersizes3}. You may come across these when buying
+stationery.
+
+%% JIS B-series variants
+\begin{table}
+\centering
+\caption[{Japanese B-series variants}]
+{Japanese B-series variants}%; trim sizes are given with width
+% preceding height, both in millimeters}
+\begin{tabular}{lr@{$\times$}lr@{$\times$}lr@{$\times$}l}\toprule
+Format & \multicolumn{2}{l}{JIS B-series} & \multicolumn{2}{l}{Shiroku-ban} &
+\multicolumn{2}{l}{Kiku} \\
+Size & \multicolumn{2}{l}{W$\times$H in mm} & \multicolumn{2}{l}{W$\times$H in mm} & \multicolumn{2}{l}{W$\times$H in mm} \\ \midrule
+4 & 257 & 364 & 264 & 379 & 227 & 306 \\
+5 & 182 & 257 & 189 & 262 & 151 & 227 \\
+6 & 128 & 182 & 189 & 262 & \multicolumn2l{} \\
+7 & 91 & 128 & 127 & 188 & \multicolumn2l{} \\
+\bottomrule
+\end{tabular}
+\label{tab:japanlco.jpapersizes2}
+\end{table}
+
+%% Japanese contemporary sizes
+\begin{table}
+\centering
+\caption[{Main Japanese contemporary stationery}]
+{Main Japanese contemporary stationery}%; trim sizes are given with width
+% preceding height, both in millimeters}
+\begin{tabular}{lr@{$\times$}ll}\toprule
+Name & \multicolumn{2}{l}{W$\times$H in mm} & Usage and Comments \\ \midrule
+Kokusai-ban & 216 & 280 & ``international size'' \\
+ & \multicolumn2l{} & i.\,e., US letter size \\
+Semi B5 or & 177 & 250 & ``standard size'' \\
+Hyoujun-gata & \multicolumn2l{} & (formerly called ``Hyoujun-gata''),\\
+ & \multicolumn2l{} & semi B5 is almost identical to ISO B5 \\
+Oo-gata & 177 & 230 & ``large size'' \\
+Chuu-gata & 162 & 210 & ``medium size'' \\
+Ko-gata & 148 & 210 & ``small size'' \\
+Ippitsu sen & 82 & 185 & ``note paper'' \\
+\bottomrule
+\end{tabular}
+\label{tab:japanlco.jpapersizes3}
+\end{table}
+
+The ISO~C-series is not a paper size as such but a standard developed for
+envelopes and intended for the corresponding A-series paper. It is discussed
+in the next subsection.
+
+%\clearpage
+\subsection{Japanese envelope sizes}
+\seclabel{envelope}
+
+ISO (International Organization for Standardization) envelope sizes are the
+official international metric envelope sizes; however, Japan uses also JIS and
+metricated traditional envelope sizes. Sizes identified as non-standard do not
+conform to Universal Postal Union requirements for correspondence envelopes.
+
+\subsubsection{ISO envelope sizes}
+The ISO C-series envelope sizes, and possibly B-series envelope sizes, are
+available in Japan. C-series envelopes can hold the corresponding A-series
+paper, while B-series envelopes can hold either the corresponding A-series
+paper or the corresponding C-series envelope. The ISO envelope sizes commonly
+for Japan are listed in \autoref{tab:japanlco.jenvsizes1}, with the
+corresponding paper they are intended for, and the folding required.
+
+%%%%%% JIS Japanese Envelopes
+
+%% ISO envelope sizes
+%{\onelinecaptionsfalse
+%\begin{longtable}{lr@{$\times$}ll}
+\begin{table}
+\begin{minipage}{\textwidth}\renewcommand*{\footnoterule}{}
+\caption[{Japanese ISO envelope sizes}]
+{Japanese ISO envelope sizes}%; trim sizes are given with width
+% preceding height, both in millimeters%
+\label{tab:japanlco.jenvsizes1}%
+%}\\
+\begin{tabular}{lr@{$\times$}ll}
+\toprule
+Name & \multicolumn2l{W$\times$H in mm} & Usage and Comments \\
+%\endfirsthead
+%\caption[]{Japanese envelope sizes (\emph{continued})}\\
+%\toprule
+%Name & \multicolumn2l{W$\times$H in mm} & Usage and Comments \\
+%\midrule
+%\endhead
+%\midrule
+%\multicolumn{4}{r@{}}{\dots}\\
+%\endfoot
+%\bottomrule
+%\endlastfoot
+\midrule
+C0 & 917 & 1297 & for flat A0 sheet; \\*
+ & \multicolumn2l{} & non-standard \\
+C1 & 648 & 917 & for flat A1 sheet; \\*
+ & \multicolumn2l{} & non-standard \\
+C2 & 458 & 648 & for flat A2 sheet, A1 sheet folded in half; \\*
+ & \multicolumn2l{} & non-standard \\
+C3 & 324 & 458 & for flat A3 sheet, A2 sheet folded in half; \\*
+ & \multicolumn2l{} & non-standard \\
+B4 & 250 & 353 & C4 envelope \\
+C4 & 229 & 324 & for flat A4 sheet, A3 sheet folded in half; \\*
+ & \multicolumn2l{} & very common; non-standard \\
+B5 & 176 & 250 & C5 envelope \\
+C5 & 162 & 229 & for flat A5 sheet, A4 sheet folded in half; \\*
+ & \multicolumn2l{} & very common; non-standard \\
+B6 & 125 & 176 & C6 envelope; A4 folded in quarters; \\*
+ & \multicolumn2l{} & very common \\
+C6 & 114 & 162 & for A5 sheet folded in half, \\*
+ & \multicolumn2l{} & A4 sheet folded in quarters; \\*
+ & \multicolumn2l{} & very common \\
+C6/C5 & 114 & 229 & A4 sheet folded in thirds; \\*
+ & \multicolumn2l{} & very common \\
+C7/6 & 81 & 162 & for A5 sheet folded in thirds; uncommon; \\*
+ & \multicolumn2l{} & non-standard \\
+C7 & 81 & 114 & for A5 sheet folded in quarters; uncommon; \\*
+ & \multicolumn2l{} & non-standard \\
+C8 & 57 & 81 & \\
+C9 & 40 & 57 & \\
+C10 & 28 & 40 & \\
+DL\footnotemark[1] & 110 & 220 & for A4 sheet folded in thirds, \\*
+ & \multicolumn2l{} & A5 sheet folded in half lengthwise; \\*
+ & \multicolumn2l{} & very common \\
+%\end{longtable}}\vspace{-\baselineskip}
+\bottomrule
+\end{tabular}
+%\noindent\begin{minipage}{\textwidth}
+%\renewcommand*{\footnoterule}{}
+\footnotetext[1]{Although DL is not part of the
+ ISO C-series, it is a very widely used standard size. DL, probably
+ at one time the abbreviation of DIN Lang (Deutsche Industrie Norm,
+ long), is now identified as ``Dimension Lengthwise'' by ISO 269.}
+\end{minipage}
+\end{table}
+
+\subsubsection{JIS and traditional envelope sizes}
+The JIS classifies envelopes into three categories based on the
+general shape of the envelope and where the flap is located:
+
+\begin{description}
+\item[You:] these envelopes are of the `commercial' type, rectangular,
+ and correspond largely to Western envelope sizes, and also have the
+ flap on the long dimension (`Open Side') in `commercial' or `square'
+ style. `You-kei' means Western-style.
+\item[Chou:] these are also `commercial' type envelopes, with the same
+ shape as the corresponding `You' type, but with the flap on the
+ short dimension (`Open End') in `wallet' style. `Chou-kei' means
+ long-style.
+\item[Kaku:] these envelopes are more square in appearance and are
+ made for special use, and correspond to `announcement'
+ envelopes. The flap is on the long side, in the `square' style. They
+ generally do not fall under the ordinary envelope postage
+ rates. `Kaku-kei' means square-style.
+\end{description}
+
+The main JIS and traditional envelope sizes, the corresponding paper, and
+its required folding are listed in \autoref{tab:japanlco.jenvsizes2}.
+
+%% JIS and other envelope sizes
+%\begin{table}
+%\begin{minipage}{\textwidth}\renewcommand*{\footnoterule}{}%
+%\centering
+{\onelinecaptionsfalse
+\begin{longtable}{llr@{$\times$}ll}
+\caption[{Japanese envelope sizes 3}]
+{Japanese JIS and other envelope sizes\label{tab:japanlco.jenvsizes2}}%
+%; trim sizes are given with width preceding height, both in millimeters}%
+\\
+%\begin{tabular}{llr@{$\times$}ll}
+\toprule
+JIS & Name & \multicolumn2l{W$\times$ in mm} & Usage and Comments \\
+\endfirsthead
+\caption[]{Japanese JIS and other envelope sizes (\emph{continued})}\\
+\toprule
+JIS & Name & \multicolumn2l{W$\times$ in mm} & Usage and Comments \\
+\midrule
+\endhead
+\midrule
+\multicolumn{5}{r@{}}{\dots}\\
+\endfoot
+\bottomrule
+\endlastfoot
+\midrule
+ & Chou 1 & 142 & 332 & for A4 folded in half lengthwise;\\*
+ & & \multicolumn2l{} & non-standard \\
+Yes & Chou 2 & 119 & 277 & for B5 folded in half lengthwise;\\*
+ & & \multicolumn2l{} & non-standard \\
+Yes & Chou 3 & 120 & 235 & for A4 folded in thirds;\\*
+ & & \multicolumn2l{} & very common \\
+ & Chou 31 & 105 & 235 & for A4 folded in thirds \\
+ & Chou 30 & 92 & 235 & for A4 folded in fourths\footnotemark[3] \\
+ & Chou 40 & 90 & 225 & for A4 folded in fourths\footnotemark[3] \\
+Yes & Chou 4 & 90 & 205 & for JIS B5 folded in fourths\footnotemark[3];\\*
+ & & \multicolumn2l{} & very common \\
+ & Kaku A3 & 320 & 440 & for A3 flat, A2 folded in half\\*
+ & & \multicolumn2l{} &; non-standard \\
+ & Kaku 0 & 287 & 382 & for B4 flat, B3 folded in half;\\*
+ & & \multicolumn2l{} & non-standard \\
+ & Kaku 1 & 270 & 382 & for B4 flat, B3 folded in half;\\*
+ & & \multicolumn2l{} & non-standard \\
+Yes & Kaku 2 & 240 & 332 & for A4 flat, A3 folded in half;\\*
+ & & \multicolumn2l{} & non-standard \\
+ & Kaku & 229 & 324 & for A4 flat, A3 folded in half;\\*
+ & Kokusai A4 & \multicolumn2l{} & same size as ISO C4;\\*
+ & & \multicolumn2l{} & non-standard \\
+Yes & Kaku 3 & 216 & 277 & for B5 flat, B4 folded in half;\\*
+ & & \multicolumn2l{} & non-standard \\
+Yes & Kaku 4 & 197 & 267 & for B5 flat, B4 folded in half;\\*
+ & & \multicolumn2l{} & non-standard \\
+Yes & Kaku 5 & 190 & 240 & for A5 flat, A4 folded in half\\*
+ & & \multicolumn2l{} &; non-standard \\
+Yes & Kaku 6 & 162 & 229 & for A5 flat, A4 folded in half;\\*
+ & & \multicolumn2l{} & same size as ISO C5;\\*
+ & & \multicolumn2l{} & non-standard \\
+Yes & Kaku 7 & 142 & 205 & for B6 flat, B5 folded in half;\\*
+ & & \multicolumn2l{} & non-standard \\
+Yes & Kaku 8 & 119 & 197 & pay envelope (for salaries, wages)\\*
+ & & \multicolumn2l{} &; common for direct mail \\
+Yes & You 0\footnotemark[1] & 235 & 120 & for A4 folded in thirds;\\*
+ & or Furusu 10 & \multicolumn2l{} & same size as Chou 3 but with \\*
+ & & \multicolumn2l{} & `Open Side' style flap \\
+ & You 0\footnotemark[1] & 197 & 136 & for kyabine\footnotemark[1] (cabinet) size photos \\*
+ & & \multicolumn2l{} & (165\Unit{mm}$\times$120\Unit{mm});\\*
+ & & \multicolumn2l{} & non-standard \\
+ & You 1\footnotemark[2] & 176 & 120 & for B5 folded in quarters \\
+ & You 1\footnotemark[2] & 173 & 118 & for B5 folded in quarters \\
+Yes & You 2 & 162 & 114 & for A5 folded in half,\\*
+ & & \multicolumn2l{} & A4 folded in quarters;\\*
+ & & \multicolumn2l{} & same size as ISO C6 \\
+Yes & You 3 & 148 & 98 & for B6 folded in half \\
+Yes & You 4 & 235 & 105 & for A4 folded in thirds \\
+Yes & You 5 & 217 & 95 & for A4 folded in fourths\footnotemark[3] \\
+Yes & You 6 & 190 & 98 & for B5 folded in thirds \\
+Yes & You 7 & 165 & 92 & for A4 folded in quarters,\\*
+ & & \multicolumn2l{} & B4 folded in quarters \\
+%\bottomrule
+%\end{tabular}%
+\end{longtable}}\vskip-\baselineskip
+\noindent\begin{minipage}{\textwidth}\renewcommand*{\footnoterule}{}%
+ \footnotetext[1]{Because two different sizes are called You~0, the
+ JIS You~0 is normally called Furusu~10; Furusu (`fools') derives
+ from `foolscap'; Kyabine is a metricated traditional Japanese
+ size.}%
+ \footnotetext[2]{Two slightly different sizes are sold as You~1; the
+ smaller size (173\Unit{mm}$\times$118\Unit{mm}) is the
+ paper-industry standard size.}%
+ \footnotetext[3]{Twice in the same direction.}%
+\end{minipage}
+%\end{table}
+
+
+\subsubsection{Window variants}
+There are a large number of window subtypes existing within the
+framework explained in the previous subsection. The most common window
+sizes and locations are listed in \autoref{tab:japanlco.jwinsizes1}.
+
+%% my table of windows
+\begin{table}
+\begin{minipage}{\textwidth}\renewcommand*{\footnoterule}{}
+\centering
+\caption[{Supported Japanese envelope types, window sizes, and
+ locations}] {Supported Japanese envelope types, window sizes, and
+ locations.}
+\begin{tabular}{lllll}
+\toprule
+Envelope type & Window name\footnotemark[1] & - size\footnotemark[2] & - location\footnotemark[3] & \File{lco} file\footnotemark[4] \\
+\midrule
+Chou 3 & A & 90$\times$45 & l 23, t 13 & \Option{NipponEL} \\
+Chou 3 & F & 90$\times$55 & l 23, t 13 & \Option{NipponEH} \\
+Chou 3 & Hisago & 90$\times$45 & l 23, t 12 & \Option{NipponEL} \\
+Chou 3 & Mutoh 1 & 90$\times$45 & l 20, t 11 & \Option{NipponEL} \\
+Chou 3 & Mutoh 101 & 90$\times$55 & l 20, t 11 & \Option{NipponEH} \\
+Chou 3 & Mutoh 2 & 80$\times$45 & l 20, t 11 & \Option{NipponEL} \\
+Chou 3 & Mutoh 3 & 90$\times$45 & l 25, t 11 & \Option{NipponLL} \\
+Chou 3 & Mutoh 301 & 90$\times$55 & l 25, t 11 & \Option{NipponLH} \\
+Chou 3 & Mutoh 6 & 100$\times$45 & l 20, t 11 & \Option{NipponEL} \\
+Chou 3 & v.2\footnotemark[5] & 90$\times$45 & l 24, t 12 & \Option{NipponLL} \\
+Chou 40 & A & 90$\times$45 & l 23, t 13 & \Option{NipponEL} \\
+Chou 4 & A & 90$\times$45 & l 23, t 13 & \Option{NipponEL} \\
+Chou 4 & B & 80$\times$45 & l 98, t 28 & \Option{NipponRL} \\
+Chou 4 & C & 80$\times$45 & l 21, t 13 & \Option{NipponEL} \\
+Chou 4 & K & 80$\times$45 & l 22, t 13 & \Option{NipponEL} \\
+Chou 4 & Mutoh 1 & 80$\times$45 & l 40, b 11 & --- \\
+Chou 4 & Mutoh 2 & 80$\times$45 & l 20, t 11 & \Option{NipponEL} \\
+Chou 4 & Mutoh 3 & 90$\times$45 & l 20, t 11 & \Option{NipponEL} \\
+Chou 4 & Mutoh 6 & 100$\times$45 & l 20, t 11 & \Option{NipponEL} \\
+Chou 4 & v.2\footnotemark[5] & 80$\times$45 & l 20, t 12 & \Option{NipponEL} \\
+Chou 4 & v.3\footnotemark[5] & 90$\times$45 & l 20, t 12 & \Option{NipponEL} \\
+Kaku A4 & v.1\footnotemark[6] & 95$\times$45 & l 20, t 24 & \Option{KakuLL} \\
+You 0 & Cruise 6 & 90$\times$45 & l 20, t 12 & \Option{NipponEL} \\
+You 0 & Cruise 601 & 90$\times$55 & l 20, t 12 & \Option{NipponEH} \\
+You 0 & Cruise 7 & 90$\times$45 & l 20, b 12 & \Option{NipponEL} \\
+You 0 & Cruise 8 & 90$\times$45 & l 24, t 12 & \Option{NipponLL} \\
+You 0 & v.2\footnotemark[5] & 90$\times$45 & l 24, t 12 & \Option{NipponEL} \\
+You 0 & v.3\footnotemark[5] & 90$\times$45 & l 23, t 13 & \Option{NipponEL} \\
+You 4 & A & 90$\times$45 & l 23, t 13 & \Option{NipponEL} \\
+\bottomrule
+\end{tabular}%
+\footnotetext[1]{Names (acting as subtype information) are taken from
+ the manufacturer catalogue.}%
+\footnotetext[2]{Given as width by height in millimetres.}%
+\footnotetext[3]{Given as offset from left (l) or right (r), followed by
+ offset from bottom (b) or top (t).}%
+\footnotetext[4]{The \File{lco} file, which provides support (see
+ \autoref{tab:japanlco.lcolist}).}%
+\footnotetext[5]{In the absence of any other information, a numerical
+ variation number for the subtype name is provided.}%
+\footnotetext[6]{Dimensions apply when envelope is held in portrait mode.}%
+\label{tab:japanlco.jwinsizes1}%
+\end{minipage}
+\end{table}
+
+\section{Provided \File{lco} files}
+In \Class{scrlttr2}, support is provided for Japanese envelope and
+window sizes through a number of \File{lco} files which customize the
+fold marks required for different envelope sizes and subvariants with
+different window positions and sizes.
+
+The \File{lco} files provided together with the envelope types that they
+support are listed at \autoref{tab:japanlco.lcolist}. See
+\autoref{tab:japanlco.jenvsizes1} for the full list of Japanese envelopes and
+the paper they take, and \autoref{tab:japanlco.jwinsizes1} for the common
+window sizes and locations. The rightmost column indicates which \File{lco}
+file provides the support.
+
+The tolerances for location is about 2\Unit{mm}, so it is possible to
+accommodate all the envelope and window variants of
+\autoref{tab:japanlco.jwinsizes1} with just a small number of \File{lco}
+files. The difference between Chou/You~3 and Chou/You~4 is determined
+by paper size.
+
+\begin{table}
+\begin{minipage}{\textwidth}\renewcommand*{\footnoterule}{}
+\centering
+\caption{\File{lco} files provided by \Class{scrlttr2} for Japanese window
+ envelopes}
+\begin{tabular}{llll}
+\toprule
+\File{lco} file & Supported & Window size\footnotemark[1] & Window
+location\footnotemark[1] \\
+\midrule
+\Option{NipponEL} & Chou/You 3 and 4 & 90$\times$45 & l 22, t 12 \\
+\Option{NipponEH} & Chou/You 3 and 4 & 90$\times$55 & l 22, t 12 \\
+\Option{NipponLL} & Chou/You 3 and 4 & 90$\times$45 & l 25, t 12 \\
+\Option{NipponLH} & Chou/You 3 and 4 & 90$\times$55 & l 25, t 12 \\
+\Option{NipponRL} & Chou/You 3 and 4 & 90$\times$45 & l 98, t 28 \\
+\Option{KakuLL} & Kaku A4 & 90$\times$45 & l 25, t 24 \\
+\bottomrule
+\end{tabular}%
+\label{tab:japanlco.lcolist}%
+\footnotetext[1]{Window size is given in width by height, location as
+ offset from left (l) or right (r), followed by offset from bottom (b) or top
+ (t). All Values in millimeters.}%
+\end{minipage}
+\end{table}
+
+\section{Examples of Japanese Letter Usage}
+Suppose you want to write a letter on A4 size paper and will post it in
+a Japanese envelope. If the envelope has no window, then it is enough
+to determine whether the envelope dimensions match a European
+one\,---\,the standard \File{DIN.lco} style may suffice for many such
+cases.
+
+If you wish to use a windowed envelope, please note that owing to the
+large variety, not all existing subvariants are currently
+supported. If you notice that the window dimensions and positions
+of your particular windowed envelope differ significantly (more than
+approximately 2\Unit{mm}) from those of any of the supported subvariants,
+please contact the author of {\KOMAScript} to obtain support as soon as
+possible, and in the meantime, create a customized \File{lco} file for your
+own use, using one of the existing ones as a template and reading the
+{\KOMAScript} documentation attentively.
+
+If your window envelope subvariant is supported, this is how you would
+go about using it: simply select the required \File{lco} file and
+activate the horizontal and vertical fold marks as required. Another,
+independent, mark is the hole-punch mark, which divides a sheet in two
+horizontally for easy punching and filing.
+
+\subsection{Example 1:}
+Your favourite envelope happens to be a You~3 with window subvariant
+Mutoh~3, left over from when the company had its previous name, and
+you do not wish them to go to waste. Thus, you write your letter with
+the following starting code placed before the letter environment:
+
+\begin{lstlisting}
+\LoadLetterOption{NipponLL}\setkomavar{myref}{NipponLL}
+\begin{letter}{Martina Muster\\Address}
+...
+\end{letter}
+\end{lstlisting}
+
+\subsection{Example 2:}
+You originally designed your letter for a You~3 envelope, but suddenly
+you get handed a used electrical company envelope with cute manga
+characters on it which you simply cannot pass up. Surprisingly, you
+find it conforms fairly closely to the Chou~4 size and C window
+subvariant, such that you realize you can alter the following in your
+document preamble:
+
+\begin{lstlisting}
+\LoadLetterOption{NipponEL}\setkomavar{myref}{NipponEL}
+\begin{letter}{Martina Muster\\Address}
+...
+\end{letter}
+\end{lstlisting}
+
+Now, \Class{scrlttr2} automatically reformats the letter for you to
+fit the required envelope.
+
+% \LoadLetterOption{NipponEL}\setkomavar{myref}{NipponEL}
+% \begin{letter}{Martina Muster\\at and\\there\\and one\\more}
+% \opening{Dear Martina,}
+% \lipsum[1-2]
+% \closing{Regards}
+% \ps{PS: Forgotten to say.}
+% \encl{Something}
+% \cc{Somebody\\Someone}
+% \end{letter}
+
+% \LoadLetterOption{NipponEH}\setkomavar{myref}{NipponEH}
+% \begin{letter}{Martina Muster\\at and\\there\\and one\\more}
+% \opening{Dear Martina,}
+% \lipsum[1-2]
+% \closing{Regards}
+% \end{letter}
+
+% \LoadLetterOption{NipponLL}\setkomavar{myref}{NipponLL}
+% \begin{letter}{Martina Muster\\at and\\there\\and one\\more}
+% \opening{Dear Martina,}
+% \lipsum[1-2]
+% \closing{Regards}
+% \end{letter}
+
+% \LoadLetterOption{NipponLH}\setkomavar{myref}{NipponLH}
+% \begin{letter}{Martina Muster\\at and\\there\\and one\\more}
+% \opening{Dear Martina,}
+% \lipsum[1-2]
+% \closing{Regards}
+% \end{letter}
+
+%% comparison of US common paper sizes, wider and shorter
+% Millimetres Inches Points
+% Height Width Height Width Height Width
+% Letter 279.4 215.9 11.00 8.50 792 612
+% Legal 355.6 215.9 14.00 8.50 1008 612
+% Ledger 431.8 279.4 17.00 11.00 1224 792
+% Tabloid 279.4 431.8 11.00 17.00 792 1224
+% Executive 266.7 184.1 10.55 7.25 756 522
+
+%% English foolscap is here for reference
+% Millimetres Inches Points
+% Height Width Height Width Height Width
+%Foolscap 419 336 16.50 13.25 1188 954
+%
+
+%% nice reference on envelope types and windows in the US
+%http://www.belightsoft.com/products/companion/paper/envelopes.php
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/linkalias.tex b/macros/latex/contrib/koma-script/source-doc/english/linkalias.tex
new file mode 120000
index 0000000000..dd3b49476e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/linkalias.tex
@@ -0,0 +1 @@
+../linkalias.tex \ No newline at end of file
diff --git a/macros/latex/contrib/koma-script/source-doc/english/preface.tex b/macros/latex/contrib/koma-script/source-doc/english/preface.tex
new file mode 100644
index 0000000000..873f303987
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/preface.tex
@@ -0,0 +1,125 @@
+% ======================================================================
+% preface.tex
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% preface.tex
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ======================================================================
+
+\KOMAProvidesFile{preface.tex}
+ [$Date: 2018-03-28 11:44:09 +0200 (Wed, 28 Mar 2018) $
+ Preface to version 3.25]
+\translator{Markus Kohm\and Karl Hagen}
+
+% Date of the translated German file: 2018-03-12
+
+\addchap{Preface to \KOMAScript~3.25}
+
+The \KOMAScript~3.25 manual,\---\,especially the German version\,---\,once
+again benefits from the fact that a new edition of the print version
+\cite{book:komascript} and the eBook version \cite{ebook:komascript} will be
+published at almost the same time as this version. This has led to many
+improvements which also affect the free manual, in both the German and the
+English version.
+
+One of these improvements is the linking to the explanations of commands,
+environments, options, etc., within the manual. To avoid the temptation to
+jump to the beginning of the explanation within the explanation itself, and
+so to avoid reading recursively, as it were, these links only take effect
+if they actually lead away from the current location.
+
+Another important improvement to the English guide has been accomplished by
+Karl Hagen, who has newly translated the entire manual. Many, many thanks to
+him! Additional editors or translators, however, would still be welcome!
+
+\iffree{Readers of this free, screen version, however, still have to live with
+ some restrictions. So some information\,---\,mainly intended for advanced
+ users or capable of turning an ordinary user into an advanced one\,---\,is
+ reserved for the printed book, which currently exists only in German. As a
+ result, some links in this manual lead to a page that simply mentions this
+ fact. In addition, the free version is scarcely suitable for making a
+ hard-copy. The focus, instead, is on using it on screen, in parallel with
+ the document you are working on. It still has no optimized wrapping but is
+ almost a first draft, in which both the paragraph and page breaks are in
+ some cases quite poor. Corresponding optimizations are reserved for the
+ German book editions.}{}
+
+It is not just about the manual that I now receive little criticism. For the
+classes and packages as well, there are hardly any requests for new features.
+For me, this means that my knowledge about user desires stagnates. So for a
+few years, I mostly implemented things that I thought could be useful.
+However, the feedback that I have received about these new possibilities was
+largely limited to complaints that old \emph{hacks} based on undocumented
+\KOMAScript{} features sometimes no longer work. Little was said about the
+happiness that such dirty workarounds were no longer necessary. Therefore, I
+have decided to limit extensions and improvements to \KOMAScript{} more and
+more to those things that are explicitly requested by users. Could it be that
+\KOMAScript{}, after only 25 years, has reached the level that it fulfils all
+desires?
+
+Unfortunately, the declining number of error reports is not purely gratifying.
+Over this period, I have often observed that those who discover a problem no
+longer report it directly to me but work around it with the help of some
+Internet forums. Often, there are more or less ingenious workarounds in these
+forums. Although this is generally helpful, it unfortunately, as a rule,
+causes the problem to remain unreported and therefore never really eliminated.
+It goes without saying that such workarounds can sometimes become a problem
+themselves, as mentioned in the previous paragraph.
+
+Thankfully, there are third parties who occasionally point out such issues.
+This applies to individual contributions in a very few forums. Direct contact
+with the person for whom the problem occurred is in this case usually not
+possible, although it would sometimes be desirable.
+
+Therefore, let me please ask again explicitly that you report all suspected
+bugs directly, either in German or in English. Linguistic perfection is less
+important. The message should be reasonably understandable and the problem
+comprehensible. A code example that is as short as possible is generally
+independent of the language used. With direct contact, I can ask further
+questions, if necessary. Please do not rely on anyone else to report the
+problem at some point. Assume that it will only be fixed if you report it
+yourself. More about error messages can be found in the first chapter of the
+manual.
+
+\bigskip\noindent
+Markus Kohm, Neckarhausen in the March rain, 2018.
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% ispell-local-dictionary: "english"
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
+
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scraddr.tex b/macros/latex/contrib/koma-script/source-doc/english/scraddr.tex
new file mode 100644
index 0000000000..ac5ef90a5e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scraddr.tex
@@ -0,0 +1,261 @@
+% ======================================================================
+% scraddr.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 scraddr of the KOMA-Script guide
+% Maintained by Jens-Uwe Morawski (with help from Markus Kohm)
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber scraddr in der KOMA-Script-Anleitung
+% Verwaltet von Jens-Uwe Morawski (mit Unterstuetzung von Markus Kohm)
+%
+% ======================================================================
+
+\KOMAProvidesFile{scraddr.tex}
+ [$Date: 2018-03-27 11:46:14 +0200 (Tue, 27 Mar 2018) $
+ KOMA-Script guide (chapter: scraddr)]
+\translator{Jens-Uwe Morawski\and Gernot Hassenpflug\and Markus Kohm\and Karl
+ Hagen}
+
+% Date of the translated German file: 2018-02-05
+
+\chapter{Accessing Address Files with \Package{scraddr}}%
+\labelbase{scraddr}%
+\BeginIndexGroup
+\BeginIndex{Package}{scraddr}
+
+The \Package{scraddr} package is a small extension to \KOMAScript{}'s letter
+class and letter package. Its goal is to make access to the data in address
+files easier and more flexible.
+
+\section{Overview}\seclabel{overview}
+Basically, the package provides a new loading mechanism for address files
+consisting of \DescRef{\LabelBase.cmd.adrentry} and the newer
+\DescRef{\LabelBase.cmd.addrentry} format entries, as described in
+\autoref{cha:scrlttr2} starting on \DescPageRef{scrlttr2.cmd.adrentry}.
+
+\begin{Declaration}
+\Macro{InputAddressFile}\Parameter{file name}
+\end{Declaration}%
+The \Macro{InputAddressFile} command is the main command of \Package{scraddr}.
+It reads the content of the address file\Index{address>file} given as its
+parameter. If the file is not found, an error message is issued.
+
+For each entry in this address file, the command generates a set of
+macros to access the data. For large address files, this will require
+a lot of \TeX{} memory.
+%
+\EndIndexGroup
+
+\begin{Declaration}%
+ \Macro{adrentry}\Parameter{Lastname}\Parameter{Firstname}%
+ \Parameter{Address}\Parameter{Phone}\Parameter{F1}\Parameter{F2}%
+ \Parameter{Comment}\Parameter{Key}%
+ %
+ \Macro{addrentry}\Parameter{Lastname}\Parameter{Firstname}%
+ \Parameter{Address}\Parameter{Phone}\Parameter{F1}\Parameter{F2}%
+ \Parameter{F3}\Parameter{F4}\Parameter{Key}%
+ %
+ \Macro{adrchar}\Parameter{initial}%
+ \Macro{addrchar}\Parameter{initial}%
+\end{Declaration}%
+The structure of the address entries in the address file was discussed in
+detail in \autoref{sec:scrlttr2.addressFile}, starting on
+\DescPageRef{scrlttr2.cmd.adrentry}. The subdivision of the address file with
+the help of \Macro{adrchar} or \Macro{addrchar}, also discussed there, has no
+meaning for \Package{scraddr} and is simply ignored by the package.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{Name}\Parameter{key}%
+ \Macro{FirstName}\Parameter{key}%
+ \Macro{LastName}\Parameter{key}%
+ \Macro{Address}\Parameter{key}%
+ \Macro{Telephone}\Parameter{key}%
+ \Macro{FreeI}\Parameter{key}%
+ \Macro{FreeII}\Parameter{key}%
+ \Macro{Comment}\Parameter{key}%
+ \Macro{FreeIII}\Parameter{key}%
+ \Macro{FreeIV}\Parameter{key}
+\end{Declaration}%
+These commands give access to data of your address file. The last parameter,
+that is, parameter 8 for the \DescRef{\LabelBase.cmd.adrentry} entry and
+parameter 9 for the \DescRef{\LabelBase.cmd.addrentry} entry, is the
+identifier of an entry, thus the \PName{key} has to be unique and non-empty.
+To guarantee safe functioning, you should use only ASCII letters in the
+\PName{key}.
+
+Furthermore, if the file contains more than one entry with the same
+\PName{key} name, the last occurrence will be used.%
+%
+\EndIndexGroup
+
+
+\section{Usage}\seclabel{usage}
+\BeginIndexGroup
+\BeginIndex[indexother]{Cmd}{addrentry}%
+\BeginIndex[indexother]{Cmd}{adrentry}%
+To use the package, we need a valid address file. For example, the file
+\File{lotr.adr} contains the following entries:
+\begin{lstcode}
+ \addrentry{Baggins}{Frodo}%
+ {The Hill\\ Bag End/Hobbiton in the Shire}{}%
+ {Bilbo Baggins}{pipe-weed}%
+ {the Ring-bearer}{Bilbo's heir}{FRODO}
+ \adrentry{Gamgee}{Samwise}%
+ {3 Bagshot Row\\Hobbiton in the Shire}{}%
+ {Rosie Cotton}{taters}%
+ {the Ring-bearer's faithful servant}{SAM}
+ \adrentry{Bombadil}{Tom}%
+ {The Old Forest}{}%
+ {Goldberry}{trill queer songs}%
+ {The Master of Wood, Water and Hill}{TOM}
+\end{lstcode}
+
+The fourth parameter, the telephone number, has been left blank, since there
+are no phones in Middle Earth. And as you can see, blank fields are possible.
+On the other hand, you cannot simply omit an argument altogether.
+
+\BeginIndexGroup
+\BeginIndex[indexother]{Cmd}{InputAddressFile}
+With the \Macro{InputAddressFile} command described above, we read the address
+file into our letter document:
+\begin{lstcode}
+ \InputAddressFile{lotr}
+\end{lstcode}
+\EndIndexGroup
+
+\BeginIndexGroup
+\BeginIndex[indexother]{Cmd}{Name}%
+\BeginIndex[indexother]{Cmd}{Address}%
+\BeginIndex[indexother]{Cmd}{FirstName}%
+\BeginIndex[indexother]{Cmd}{LastName}%
+\BeginIndex[indexother]{Cmd}{FreeI}%
+\BeginIndex[indexother]{Cmd}{FreeII}%
+\BeginIndex[indexother]{Cmd}{FreeIII}%
+\BeginIndex[indexother]{Cmd}{FreeIV}%
+\BeginIndex[indexother]{Cmd}{Comment}%
+With the help of the commands introduced in this chapter we can now write a
+letter to old \textsc{Tom Bombadil}, in which we ask him if he can remember
+two companions from olden times.
+\begin{lstcode}
+ \begin{letter}{\Name{TOM}\\\Address{TOM}}
+ \opening{Dear \FirstName{TOM} \LastName{TOM},}
+
+ Or \FreeIII{TOM}, as your beloved \FreeI{TOM} calls you. Do
+ you still remember Mr \LastName{FRODO}, or more precisely
+ \Name{FRODO}, since there was also Mr \FreeI{FRODO}. He was
+ \Comment{FRODO} in the Third Age and \FreeIV{FRODO}. \Name{SAM},
+ \Comment{SAM}, accompanied him.
+
+ Their passions were very worldly. \FirstName{FRODO} enjoyed
+ smoking \FreeII{FRODO}. His companion appreciated a good meal
+ with \FreeII{SAM}.
+
+ Do you remember? Certainly Mithrandir has told you much
+ about their deeds and adventures.
+ \closing{``O spring-time and summer-time
+ and spring again after!\\
+ O wind on the waterfall,
+ and the leaves' laughter!''}
+ \end{letter}
+\end{lstcode}
+You can also produce the combination of \Macro{FirstName}\Parameter{key} and
+\Macro{LastName}\Parameter{key} used in the \DescRef{scrlttr2.cmd.opening} of
+this letter with \Macro{Name}\PParameter{key}.
+
+You can use the fifth and sixth parameters of the
+\DescRef{\LabelBase.cmd.adrentry} or \DescRef{\LabelBase.cmd.adrentry} for any
+purpose you wish. You can access them with the \Macro{FreeI} and
+\Macro{FreeII} commands. In this example, the fifth parameter contains the
+name of the most important person in the life of the person in the entry. The
+sixth contains the person's favourite thing. The seventh parameter is a
+comment or in general also a free parameter. You can access it with the
+\Macro{Comment} or \Macro{FreeIII} commands. \Macro{FreeIV} is only valid for
+\DescRef{\LabelBase.cmd.addrentry} entries. For
+\DescRef{\LabelBase.cmd.adrentry} entries, it results in an error. You can
+find more details in the next section.
+%
+\EndIndexGroup
+\EndIndexGroup
+
+
+\section{Package Warning Options}
+
+As mentioned above, you cannot use the \Macro{FreeIV} command with
+\DescRef{\LabelBase.cmd.adrentry} entries. However, you can configure how
+\Package{scraddr} reacts in such a situation by package options.
+Note\textnote{Attention!} that this package does not support the extended
+options interface with \DescRef{maincls.cmd.KOMAoptions} and
+\DescRef{maincls.cmd.KOMAoption}. You should therefore specify the options
+either as global options in \DescRef{maincls.cmd.documentclass} or as local
+options in \DescRef{maincls.cmd.usepackage}
+
+
+\begin{Declaration}
+ \Option{adrFreeIVempty}%
+ \Option{adrFreeIVshow}%
+ \Option{adrFreeIVwarn}%
+ \Option{adrFreeIVstop}%
+\end{Declaration}%
+These four options let you choose from four different reactions, ranging
+from \emph{ignore} to \emph{abort}, if \Macro{FreeIV} is used
+within an \DescRef{\LabelBase.cmd.adrentry} entry.
+
+\begin{labeling}[~--]{\Option{adrFreeIVempty}}
+\item[\Option{adrFreeIVempty}]
+ the command \Macro{FreeIV} will be ignored
+\item[\Option{adrFreeIVshow}]
+ the warning ``(entry FreeIV undefined at \PName{key})'' will be
+ written in the text
+\item[\Option{adrFreeIVwarn}]
+ a warning is written in the logfile
+\item[\Option{adrFreeIVstop}]
+ the \LaTeX{} run will abort with an error message
+\end{labeling}
+The default setting is \Option{adrFreeIVshow}.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrbase.tex b/macros/latex/contrib/koma-script/source-doc/english/scrbase.tex
new file mode 100644
index 0000000000..80ed5b2b03
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrbase.tex
@@ -0,0 +1,1659 @@
+% ======================================================================
+% scrbase.tex
+% Copyright (c) Markus Kohm, 2002-2019
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrbase.tex
+% Copyright (c) Markus Kohm, 2002-2019
+%
+% 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.
+% ======================================================================
+%
+% Package scrbase for Package and Class Authors
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Paket scrbase fuer Paket- und Klassenautoren
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{scrbase.tex}
+ [$Date: 2019-01-15 08:29:44 +0100 (Tue, 15 Jan 2019) $
+ KOMA-Script package scrbase]
+\translator{Markus Kohm\and Melvin Hendrix\and Karl Hagen}
+
+% Date of the translated German file: 2018-08-27
+
+\chapter{Basic Functions in the \Package{scrbase} Package}
+\labelbase{scrbase}
+\BeginIndexGroup
+\BeginIndex{Package}{scrbase}%
+
+The \Package{scrbase} package provides basic features intended for use by
+authors of packages and classes. Its use is not limited merely to wrapper
+classes which in turn load a \KOMAScript{} class. Authors of classes that
+otherwise have nothing to do with \KOMAScript{} can also benefit from the
+functionality of \Package{scrbase}.
+
+\section{Loading the Package}
+\seclabel{loadit}
+
+Whereas users load packages with \Macro{usepackage}, authors of packages or
+classes should use \Macro{RequirePackage}\IndexCmd{RequirePackage}. Authors of
+wrapper packages can also use \Macro{RequirePackageWithOptions}. The
+\Macro{RequirePackage} command has the same optional argument for package
+options as \Macro{usepackage}. In contrast, \Macro{RequirePackageWithOptions}
+does not have an optional argument but passes to this package all the options
+that were previously given when loading the wrapper package or class. See
+\cite{latex:clsguide} for more information about these commands.
+
+The \Package{scrbase} package needs the functionality of the
+\Package{keyval}\IndexPackage{keyval} package internally. This can also be
+provided by the \Package{xkeyval} package. If needed, \Package{scrbase} itself
+loads \Package{keyval}.
+
+The \Package{keyval} package lets you define keys and assign values to them.
+The options provided by \Package{scrbase} also use \Package{keyval} syntax:
+\PName{key}\texttt{=}\PName{value}.
+
+
+\section{Keys as Attributes of Families and their Members}
+\seclabel{keyvalue}
+
+As already mentioned in \autoref{sec:scrbase.loadit}, \Package{scrbase} uses
+the \Package{keyval} package to set keys and their values. However,
+\Package{scrbase} extends this functionality. Whereas with \Package{keyval} a
+key belongs to only one family, \Package{scrbase} also recognizes family
+members. A key can therefore belong to both a family and one or more family
+members. Additionally, you can assign a value 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{member}\Parameter{family}%
+\end{Declaration}
+\Package{scrbase} needs to know the members of a family for various reasons.
+Therefore, you must first define a new family using \Macro{DefineFamily},
+which produces an empty member list. If the family has already been defined,
+nothing happens. Therefore an existing member list will not be overwritten.
+
+Next, you can add a new member to the family using \Macro{DefineFamilyMember}.
+If the family does not exist, this will result in an error message. If the
+member already exists, nothing happens. If the optional \PName{member} is
+omitted, the default value
+``\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}'' is used. While
+the class or package is being loaded, \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{member} argument. But this is the same as the family
+itself. You should use only letters and digits for the \PName{family} name,
+and the first character of \PName{member} should be something else, preferably
+a point. Otherwise, it could happen that the members of one family will clash
+with the members of other families.
+
+\Package{scrbase} assigns the family ``\PValue{KOMA}'' to itself and adds the
+member ``\PValue{.scrbase.sty}''. The values ``\PValue{KOMA}'' and
+``\PValue{KOMAarg}'' are reserved for \KOMAScript{}. If you are creating a
+bundle of packages, you should use the name of the bundle as \PName{family}
+and the name of each package as \PName{member} of that \PName{family}.
+%
+\begin{Example}
+ Suppose you are writing a bundle called ``master butcher''. Within that
+ bundle, you have the packages \File{salami.sty}, \File{mettwurst.sty},
+ and \File{kielbasa.sty}. Therefore, you decide to use family name
+ ``\PValue{butcher}'' and you add the lines
+\begin{lstcode}
+ \DefineFamily{butcher}
+ \DefineFamilyMember{butcher}
+\end{lstcode}
+ to each of the package files. When loading the three packages, this will
+ add the members ``\PValue{.salami.sty}'', ``\PValue{.mettwurst.sty}'',
+ and ``\PValue{.kielbasa.sty}'' to the family ``\PValue{butcher}''. After
+ loading all three packages, all three members will be defined.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DefineFamilyKey}\OParameter{member}\Parameter{family}%
+ \Parameter{key}%
+ \OParameter{default}\Parameter{action}%
+ \Macro{FamilyKeyState}%
+ \Macro{FamilyKeyStateUnknown}%
+ \Macro{FamilyKeyStateProcessed}%
+ \Macro{FamilyKeyStateUnknownValue}%
+ \Macro{FamilyKeyStateNeedValue}
+\end{Declaration}
+The \Macro{DefineFamilyKey} command defines a \PName{key}. If you specify a
+\PName{member}, the \PName{key} becomes an attribute of that member in the
+given \PName{family}. If you do not specify a \PName{member}, the member
+``\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}'' is assumed. If you
+later assign a value to the \PName{key}, the \PName{action} will be
+executed and the value made an argument of \PName{action}. Within
+\PName{action}, ``\lstinline{#1}'' stands for that value. If you omit the value,
+the \PName{default} is used instead. If you do not specify a \PName{default},
+the \PName{key} then always requires you to pass an explicit value.
+
+%\begin{Explain}
+ \phantomsection\label{explain:scrbase.macro.DefineFamilyKey}%
+ Ultimately,
+\begin{lstcode}[escapeinside=`']
+ \DefineFamilyKey[`\PName{member}']{`\PName{family}'}{`\PName{key}'}
+ [`\PName{default}']{`\PName{action}'}
+\end{lstcode}
+ results in a call to
+\begin{lstcode}[moretexcs={define@key},escapeinside=`']
+ \define@key{`\PName{family\,member}'}{`\PName{key}'}
+ [`\PName{default}']{`\PName{extended action}'}
+\end{lstcode}
+ where \Macro{define@key} is provided by the
+ \Package{keyval}\IndexPackage{keyval} package (see \cite{package:keyval}).
+ However, there are some additional precautions taken with the call to
+ \Macro{define@key}, and the \PName{action} will be extended to include these
+ precautions.
+%\end{Explain}
+
+Success\ChangedAt{v3.12}{\Package{scrbase}} or failure in executing the
+\PName{action} should be reported back to \Package{scrbase} through
+\Macro{FamilyKeyState} so that the package itself can take further action as
+needed. This could be, for example, an error message or merely warning of an
+unknown option. You should not report errors directly!
+
+The default state of \PName{action} before execution is
+\Macro{FamilyKeyStateUnknown}. This indicates that it is not known whether or
+not the key could be processed successfully. If this state remains unchanged
+after the \PName{action} has been executed, \Package{scrbase} writes a
+message to the \File{log} file and assumes the that state is
+\Macro{FamilyKeyStateProcessed}.
+
+The \Macro{FamilyKeyStateProcessed} state indicates that the key and the value
+assigned to it have been successfully processed and everything is OK. You can
+switch to this state by calling \Macro{FamilyKeyStateProcessed} itself.
+
+The \Macro{FamilyKeyStateUnknownValue} state indicates that the key has been
+processed but that the value passed to it was either unknown or not allowed.
+For example, \hyperref[cha:typearea]{\Package{typearea}} reports this
+condition if you try to set the \DescRef{typearea.option.twoside} option to
+\PValue{unknown}. You can set this state by simply calling
+\Macro{FamilyKeyStateUnknownValue}.
+
+The \Macro{FamilyKeyStateNeedValue} state indicates that the key could not be
+processed because it expects a value, but it was called without such a value.
+This state is set automatically if you use a key that does not have a
+\PName{default} value without assigning a value. Theoretically, you could
+set this state explicitly with \Macro{FamilyKeyStateNeedValue}, but you should
+not need to set it yourself.
+
+In addition, you can define additional error conditions by redefining
+\Macro{FamilyKeyState} with a short text message. Generally, however, the four
+predefined states should be sufficient.
+
+\begin{Example}
+ Suppose each of the three packages from the previous example should have a
+ key named \PValue{coldcuts}. When used, a switch should be set in each of
+ the packages. For the \Package{salami} package, for example, this could look
+ like this:
+\begin{lstcode}
+ \newif\if@salami@coldcuts
+ \DefineFamilyKey{butcher}%
+ {coldcuts}[true]{%
+ \expandafter\let\expandafter\if@salami@coldcuts
+ \csname if#1\endcsname
+ \FamilyKeyStateProcessed
+ }
+\end{lstcode}
+ When called, the value will therefore be either \PValue{true} or
+ \PValue{false}. This example does not test for illegal values. Instead,
+ it is always reported that the key was processed completely and correctly.
+ If the key is used later, one of the permitted values, or no value, must be
+ used. In the second case, the default \PName{true} value will be used.
+
+ The definitions for the other packages are similar. Only ``\texttt{salami}''
+ has to be replaced by the respective names.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{RelaxFamilyKey}\OParameter{member}\Parameter{family}%
+ \Parameter{key}
+\end{Declaration}
+If\ChangedAt{v3.15}{\Package{scrbase}} a \PName{key} has been previously
+defined as a \PName{member} of a \PName{family}, that definition will be
+cancelled. Afterwards the \PName{key} will no longer be defined for this
+\PName{member} of the \PName{family}. You can use \Macro{RelaxFamilyKey} for a
+\PName{key} that is not defined for this \PName{member} of the \PName{family}.
+
+If you do not specify a \PName{member}, then the member
+``\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}'' is assumed, just as
+with \DescRef{\LabelBase.cmd.DefineFamilyKey}. However, \Macro{RelaxFamilyKey}
+is only rarely used while loading a package rather than at runtime. Therefore
+the \PName{member} should usually be specified explicitly as well.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyProcessOptions}\OParameter{member}\Parameter{family}
+\end{Declaration}
+In essence, extending keys from families to both families and family members
+means that either keys or key-value pairs can be used as normal class or
+package options. The \Macro{FamilyProcessOptions} command is an extension of
+\Macro{ProcessOption*} from the \LaTeX{} kernel (see \cite{latex:clsguide},
+which processes not only options declared with \Macro{DeclareOption}, but also
+all keys of the given member. If you omit the optional argument
+\PName{member}, the member
+``\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}'' is used.
+
+One feature worth noting is that keys which are attached not to a family
+member but to a family have an empty family member. Such keys are set before
+the keys of the members.
+\begin{Example}
+ If, in the packages from the previous example, you add the line
+\begin{lstcode}
+ \FamilyProcessOptions{butcher}
+\end{lstcode}
+ after you define the key, you can specify the \Option{coldcuts} option when
+ loading the package. If you specify the option globally in
+ \Macro{documentclass}, the option will be passed automatically to all three
+ packages if they are loaded later.
+\end{Example}
+Note\textnote{Attention!} that packages always process global options
+before local options. While unknown global options result in an entry in the
+\File{log} file and the option being otherwise ignored, unknown local
+options result in an error message.
+
+You can think of \Macro{FamilyProcessOptions} as an extension of either
+\Macro{ProcessOption*} or the \PName{key=value} mechanism
+of \Package{keyval}. Ultimately, with the help of
+\Macro{FamilyProcessOptions}, \PName{key=value} pairs become options.%
+
+As with\textnote{Attention!} \Macro{ProcessOptions},
+\Macro{FamilyProcessOptions} must not be used while executing options code.
+In particular, you cannot load packages while processing options.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeFamilyProcessOptions}\OParameter{member}\Parameter{family}%
+ \Parameter{code}%
+\end{Declaration}
+Authors\ChangedAt{v3.18}{\Package{scrbase}} of wrapper classes in particular
+sometimes need a hook to execute \PName{code} before
+\DescRef{\LabelBase.cmd.FamilyProcessOptions}. The \Package{scrbase} package
+provides such a hook, and you can add \PName{code} to it with
+\Macro{BeforeFamilyProcessOptions}. The \PName{member} and \PName{family}
+parameters are same as those of \DescRef{\LabelBase.cmd.FamilyProcessOptions}.
+However, you can also add \PName{code} to the hook for families or members
+that have not yet been defined.
+
+Note that the hook of a family member is automatically deleted after it is
+executed. But if you use an empty \PName{member}, this hook\Index{hook} will
+be executed for every member of the \PName{family} and will not be deleted.
+
+\begin{Example}
+ You are writing a \Package{smokedsausage} package that loads
+ \Package{mettwurst}. But you do not want to be able to set the
+ \Option{coldcut} option with this package. So you use
+ \Macro{BeforeFamilyProcessOptions} to deactivate that option before you load
+ the package:
+\begin{lstcode}
+ \RequirePackage{scrbase}
+ \BeforeFamilyProcessOptions[.mettwurst.sty]{butcher}{%
+ \RelaxFamilyKey[.mettwurst.sty]{butcher}{coldcut}%
+ }
+ \RequirePackageWithOptions{mettwurst}
+\end{lstcode}
+ If a user tries to load your package with the \Option{coldcut} option, the
+ \Package{mettwurst} package will throw an undefined option error. If
+ \Option{coldcut} is used as a global option, the \Package{mettwurst}
+ package will ignore it. But default settings inside \Package{mettwurst},
+ for example using \DescRef{\LabelBase.cmd.FamilyExecuteOptions} before
+ \DescRef{\LabelBase.cmd.FamilyProcessOptions} are not affected. Of course,
+ you can also insert your own default for \Package{smokedsausage} via
+ \Macro{BeforeFamilyProcessOptions} in \Package{mettwurst}.
+\end{Example}
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyExecuteOptions}\OParameter{member}\Parameter{family}%
+ \Parameter{options list}
+\end{Declaration}
+This command is an extension of \Macro{ExecuteOptions} from the \LaTeX{}
+kernel (see \cite{latex:clsguide}). The command processes not only options
+defined with \Macro{DeclareOption} but also all keys of the given
+\PName{family}. If you omit the optional argument \Macro{member},
+``\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}'' is used.
+
+One feature worth noting is that keys which are attached not to a family
+member but to a family have an empty family member. Such keys are set before
+the keys of the members.
+\begin{Example}
+ Suppose the \Option{coldcuts} option should be set by default in the
+ previous examples. In this case only line
+\begin{lstcode}
+ \FamilyExecuteOptions{butcher}{coldcuts}
+\end{lstcode}
+ has to be added.
+\end{Example}
+
+If\ChangedAt{v3.20}{\Package{scrbase}} you call \Macro{FamilyExecuteOptions}
+with an unknown option inside the \PName{options list}, you will get an error.
+An exception to this rule occurs when the \PName{member} has an option called
+\Option{@else@}. In this case, the \Option{@else@} option will be used instead
+of the unknown option. \KOMAScript{} itself uses this feature, for example
+inside the definition of sectioning commands, to evaluate the style option
+before all other attributes.
+
+You can also use this command inside the code executed when processing the
+option.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyOptions}\Parameter{family}\Parameter{options list}%
+\end{Declaration}
+Unlike normal options defined with \Macro{DeclareOption}, the \PName{key}s can
+also be set after loading a class or package. To do this, you call
+\Macro{FamilyOptions}. The \PName{options list} has the form
+\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}
+after which the value assignment can be omitted for \PName{key}s that have a
+defined default.
+
+The statement sets the keys of all members of the specified family. If a
+\PName{key} also exists as an attribute of the family itself, then the family
+key is set first, followed by the member keys in the order in which they were
+defined. If a given \PName{key} does not exist, either for the family or for
+any member of the family, then \Macro{FamilyOptions} will throw an error. An
+error also occurs if a \PName{key} exists for some members but each of those
+members returns an error through \DescRef{\LabelBase.cmd.FamilyKeyState}.
+\begin{Example}
+ You extend your butcher project with a \Package{sausagesalad} package. If
+ this package has been loaded, all sausage packages should generate cold
+ cuts:
+\begin{lstcode}
+ \ProvidesPackage{sausagesalad}%
+ [2008/05/06 nonsense package]
+ \DefineFamily{butcher}
+ \DefineFamilyMember{butcher}
+ \FamilyProcessOptions{butcher}\relax
+ \FamilyOptions{butcher}{coldcuts}
+\end{lstcode}
+ If no sausage package has yet been loaded, the undefined option
+ \Option{coldcuts} leads to an error message. You can avoid this by defining
+ a corresponding key for the package before the last line of the code above:
+\begin{lstcode}
+ \DefineFamilyKey{butcher}%
+ {coldcuts}[true]{}%
+\end{lstcode}
+ However, sausage packages loaded after \Package{sausagesalad} still do not
+ produce cold cuts. You can correct this by replacing the previous command
+ with:
+\begin{lstcode}
+ \AtBeginDocument{%
+ \DefineFamiyKey[.sausagesalad.sty]%
+ {butcher}%
+ {coldcuts}[true]{}%
+ }
+ \DefineFamilyKey{butcher}%
+ {coldcuts}[true]{%
+ \AtBeginDocument{\FamilyOptions{butcher}%
+ {coldcuts=#1}}%
+ }%
+\end{lstcode}
+ Thus, the option is defined during \Macro{begin}\PParameter{document} so
+ that it no longer functions for the \Package{sausagesalad} package. Because
+ \Macro{@currname} and \Macro{@currext} no longer contain the file name of
+ the package, you must use the optional argument of
+ \DescRef{\LabelBase.cmd.DefineFamilyKey}.
+
+ But until this redefinition is performed, it uses a definition that executes
+ the option again for the family and all its members during
+ \Macro{begin}\PParameter{document}, thus setting it for other sausage
+ packages. The delay in executing \Macro{FamilyOptions} is crucial here. For
+ one thing, it includes only the packages loaded afterwards. For another, it
+ ensures that its own \Option{coldcuts} option has already been redefined.
+ This avoids endless recursion.
+\end{Example}
+%
+\EndIndexGroup
+\vskip-\ht\strutbox% Umbruchkorrektur wegen Beispiel am Ende
+
+
+\begin{Declaration}
+ \Macro{FamilyOption}\Parameter{family}%
+ \Parameter{option}\Parameter{value list}%
+\end{Declaration}
+In addition to options that have mutually exclusive values, there may be
+options that can take multiple values at the same time. To use
+\DescRef{\LabelBase.cmd.FamilyOptions} for that type of option, it would be
+necessary to invoke the same option several times with different value
+assignments. Instead, you can easily assign a whole list of values to a single
+\PName{option} using \Macro{FamilyOption}. The \PName{value 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}
+Note in this context that you can use a comma in a value by putting the value
+inside braces. This command's other functionality is the same previously
+described for \DescRef{\LabelBase.cmd.FamilyOptions}.
+\begin{Example}
+ The \Package{sausagesalad} package should have one more option to add
+ additional ingredients. Each of the ingredients sets a switch, as was done
+ previously for the cold cuts.
+\begin{lstcode}
+ \newif\if@saladwith@onions
+ \newif\if@saladwith@gherkins
+ \newif\if@saladwith@chillies
+ \DefineFamilyKey{butcher}{ingredient}{%
+ \csname @saladwith@#1true\endcsname
+ }
+\end{lstcode}
+ Here the three ingredients ``onions'', ``gherkins'', and ``chillies'' have
+ been defined. There is no error message for unknown ingredients.
+
+ For a salad with onions and gherkins, you can use
+\begin{lstcode}
+ \FamilyOptions{butcher}{%
+ ingredient=onions,ingredient=gherkins}
+\end{lstcode}
+ or simply
+\begin{lstcode}
+ \FamilyOption{butcher}
+ {ingredient}{onions,gherkins}
+\end{lstcode}
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AtEndOfFamilyOptions}\Parameter{action}%
+ \Macro{AtEndOfFamilyOptions*}\Parameter{action}%
+\end{Declaration}
+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
+\DescRef{\LabelBase.cmd.FamilyProcessOptions}\IndexCmd{FamilyProcessOptions},
+\DescRef{\LabelBase.cmd.FamilyExecuteOptions}\IndexCmd{FamilyExecuteOptions},
+\DescRef{\LabelBase.cmd.FamilyOptions}\IndexCmd{FamilyOptions}, or
+\DescRef{\LabelBase.cmd.FamilyOption}\IndexCmd{FamilyOptions} is finished.
+You can do this using \Macro{AtEndOfFamilyOptions} or its starred
+variant\ChangedAt{v3.23}{\Package{scrbase}} inside an option definition.
+However, reporting failure states of \PName{action} is not possible with this
+command, nor should it be used outside an option definition.
+
+The two variants differ in case there are nested option definitions, when
+executing an option requires further option calls. In this case all actions
+specified by \Macro{AtEndOfFamilyOptions} will be executed when the innermost
+option call returns. In contrast, the actions of \Macro{AtEndOfFamilyOptions*}
+are not executed until the outermost option call returns.
+However,\textnote{Attention!} the order of the actions of both commands is
+emphatically undefined! It is not guaranteed that the action requested first
+will be executed first, nor the converse.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyBoolKey}\OParameter{member}\Parameter{family}%
+ \Parameter{key}\Parameter{switch name}%
+ \Macro{FamilySetBool}\Parameter{family}%
+ \Parameter{key}\Parameter{switch name}\Parameter{value}
+\end{Declaration}
+Boolean switches have been used several times in the previous examples. In the
+example with \Option{coldcuts} option, the user had to assign either
+\PValue{true} or \PValue{false} as a value. There was no error message if the
+user provided the wrong value. Because boolean switches are a common use case,
+you can easily define them with \Package{scrbase} using \Macro{FamilyBoolKey}.
+The \PName{member}, \PName{family}, and \PName{key} arguments are the same as
+those used by \DescRef{\LabelBase.cmd.DefineFamilyKey} (see
+\DescPageRef{scrbase.cmd.DefineFamilyKey}). The \PName{switch name} is the
+name of the switch without the prefix \Macro{if}. If a switch with this name
+does not exist already, \Macro{FamilyBoolKey} will define it and initialize it
+to \PName{false}. Internally, \Macro{FamilyBooKey} uses \Macro{FamilySetBool}
+as the \PName{action} of \DescRef{\LabelBase.cmd.DefineFamilyKey}. The
+\PName{default} for such an option is always \PValue{true}.
+
+\Macro{FamilySetBool}, on the other hand, accepts \PValue{on} and
+\PValue{yes}, in addition to \PName{true}, to turn the switch on, and
+\PName{off} and \PName{no}, in addition to \PName{false}, to turn it off.
+Unknown values will result in a call to
+\DescRef{\LabelBase.cmd.FamilyUnknownKeyValue} with the arguments
+\PName{family}, \PName{key}, and \PName{value}, which sets
+\DescRef{\LabelBase.cmd.FamilyKeyState} accordingly. As a result, an error
+message about an unknown value assignment is printed if necessary (see also
+\DescPageRef{scrbase.cmd.FamilyUnknownKeyValue} and
+\DescPageRef{scrbase.cmd.FamilyKeyState}).
+\begin{Example}
+ The key \Option{coldcuts} should be defined more robustly in the sausage
+ packages. Additionally, all sausage packages should use the same key, so
+ that either all sausage packages will produce cold cuts or none will.
+\begin{lstcode}
+ \FamilyBoolKey{butcher}{coldcuts}%
+ {@coldcuts}
+\end{lstcode}
+ A test of whether to produce cold cuts would look like this:
+\begin{lstcode}
+ \if@coldcuts
+ ...
+ \else
+ ...
+ \fi
+\end{lstcode}
+ This would be the same in all three sausage packages, thereby
+ defining the attribute ``coldcuts'' as a family option:
+\begin{lstcode}[moretexcs={define@key}]
+ \@ifundefined{if@coldcuts}{%
+ \expandafter\newif\csname if@coldcuts\endcsname
+ }{}%
+ \DefineFamilyKey[]{butcher}{coldcuts}[true]{%
+ \FamilySetBool{butcher}{coldcuts}%
+ {@coldcuts}%
+ {#1}%
+ }
+\end{lstcode}
+ or shorter:
+\begin{lstcode}
+ \FamilyBoolKey[]{butcher}{coldcuts}%
+ {@coldcuts}
+\end{lstcode}
+ taking advantage of the treatment of empty family members as opposed to
+ omitting the optional argument explained on
+ \autopageref{explain:scrbase.macro.DefineFamilyKey}, which applies not only
+ to \DescRef{\LabelBase.cmd.DefineFamilyKey} but also for
+ \Macro{FamilyBoolKey}.
+
+ Since \DescRef{\LabelBase.cmd.FamilyKeyState} is already set by
+ \Macro{FamilySetBool}, you can check its status with the help of
+ \DescRef{\LabelBase.cmd.DefineFamilyKey}. For example, in the first case you
+ could add an equivalence test to \Macro{FamilySetBool} to perform additional
+ actions depending on whether \Macro{FamilySetBool} succeeded or not:
+ \begin{lstcode}
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ ...
+ \else
+ ...
+ \fi
+ \end{lstcode}
+ Note\textnote{Attention!} that it is essential to perform the test with
+ \Macro{ifx} at this point. Fully expanding tests like \Macro{ifstr} should
+ be avoided here. Depending on the current status and the comparison status,
+ they can lead to different error messages as well as incorrect results.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyNumericalKey}\OParameter{member}\Parameter{family}%
+ \Parameter{key}%
+ \OParameter{default}\Parameter{command}%
+ \Parameter{value list}%
+ \Macro{FamilySetNumerical}\Parameter{family}\Parameter{key}%
+ \Parameter{command}\Parameter{value list}%
+ \Parameter{value}
+\end{Declaration}
+While switches can accept only two values, there are also keys that recognize
+several values. For example an alignment can be not just left or not-left, but
+left, centred, or right. Internally, such differentiation is often made using
+\Macro{ifcase}. This \TeX{} command expects a numerical value. Therefore in
+\Package{scrbase} the command to define a macro by a \PName{key} has been
+named \Macro{FamilyNumericalKey}. The \PName{value list} has the form:
+%\begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l}
+ \Parameter{value}\Parameter{definition}\texttt{,}\linebreak[1]%
+ \Parameter{value}\Parameter{definition}\texttt{,}~\dots
+%\end{tabular}\vskip\dp\strutbox\end{flushleft}
+The \PName{value list} defines not just the values permitted for the
+\PName{key}. For each \PName{value}, the \PName{definition} of the macro
+\Macro{\PName{command}} also is given. Usually, the \PName{definition} is just
+a numerical value. Although other content is possible, there is currently a
+restriction that the \PName{definition} must be fully expandable, and it will
+be expanded during the assignment.
+\begin{Example}
+ The sausage for the sausage salad can be cut differently. For example, the
+ cold cuts could simply remain uncut or be cut into thick or thin slices.
+ This information should be stored in the command \Macro{cuthow}.
+\begin{lstcode}
+ \FamilyNumericalKey{butcher}%
+ {saladcut}{cuthow}{%
+ {none}{none},{no}{none},{not}{none}%
+ {thick}{thick},%
+ {thin}{thin}%
+ }
+\end{lstcode}
+ Not cutting anything can be selected by
+\begin{lstcode}
+ \FamilyOptions{butcher}{saladcut=none}
+\end{lstcode}
+ or
+\begin{lstcode}
+ \FamilyOptions{butcher}{saladcut=no}
+\end{lstcode}
+ or
+\begin{lstcode}
+ \FamilyOptions{butcher}{saladcut=not}
+\end{lstcode}
+ In all three cases \Macro{cuthow} would be defined with the content
+ \PValue{none}. It can be useful to provide several values for the same
+ result, as shown in this example.
+
+ Now it's very likely that the manner of cutting will not be printed but
+ should be evaluated later. In this case, a textual definition would be
+ rather impractical. If the key is defined like this:
+\begin{lstcode}
+ \FamilyNumericalKey{butcher}%
+ {saladcut}{cuthow}{%
+ {none}{0},{no}{0},{not}{0}%
+ {thick}{1},%
+ {thin}{2}%
+ }
+\end{lstcode}
+ then you can use a condition like the following:
+\begin{lstcode}
+ \ifcase\cuthow
+ % uncut
+ \or
+ % thickly cut
+ \else
+ % thinly cut
+ \fi
+\end{lstcode}
+\end{Example}
+Internally, \Macro{FamilyNumericalKey} uses \Macro{FamilySetNumerical} as the
+\PName{action} of \DescRef{\LabelBase.cmd.DefineFamilyKey}. If an unknown
+value is assigned to such a key, \Macro{FamilySetNumerical} will call
+\DescRef{\LabelBase.cmd.FamilyUnknownKeyValue} with the \PName{family},
+\PName{key} and \PName{value} arguments. This leads to an error signalled with
+the \DescRef{\LabelBase.cmd.FamilyKeyStateUnknownValue} status in
+\DescRef{\LabelBase.cmd.FamilyKeyState}. Similarly, when calling
+\Macro{FamilySetNumerical} the success is signalled via
+\DescRef{\LabelBase.cmd.FamilyKeyStateProcessed} in
+\DescRef{\LabelBase.cmd.FamilyKeyState}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyCounterKey}\OParameter{member}\Parameter{family}%
+ \Parameter{key}%
+ \OParameter{default}\Parameter{\LaTeX{} counter}%
+ \Macro{FamilySetCounter}\Parameter{family}%
+ \Parameter{key}\Parameter{\LaTeX{} counter}\Parameter{value}
+\end{Declaration}
+While\ChangedAt{v3.12}{\Package{scrbase}}
+\DescRef{\LabelBase.cmd.FamilyNumericalKey} defines a macro in which a numeric
+value corresponds to a symbolic value, there are, of course, circumstances
+when a \PName{key} directly represents a \PName{\LaTeX{} counter} to which a
+numeric value should be assigned immediately. For this case, you can use
+\Macro{FamilyCounterKey}, which calls \Macro{FamilySetCounter} internally.
+There are some basic tests of the \PName{value} argument to determine if the
+\PName{value} argument appears to be suitable for assignment to a counter. The
+assignment will only be made if these tests succeed. However, not all errors
+can be detected here, so an incorrect assignment can also lead to an error
+message from \TeX{} itself. Errors that are detected, however, are signalled
+by \DescRef{\LabelBase.cmd.FamilyKeyStateUnknownValue}.
+
+If\ChangedAt{v3.15}{\Package{scrbase}} the value is omitted, the
+\PName{default} is used instead. If there is no \PName{default}, the
+\PName{key} can be used only with an explicit value.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyCounterMacroKey}\OParameter{member}\Parameter{family}%
+ \Parameter{key}%
+ \OParameter{default}\Parameter{macro}%
+ \Macro{FamilySetCounterMacro}\Parameter{family}%
+ \Parameter{key}\Parameter{macro}\Parameter{value}%
+\end{Declaration}
+These\ChangedAt{v3.12}{\Package{scrbase}} two commands differ from the
+previously described \DescRef{\LabelBase.cmd.FamilyCounterKey} and
+\DescRef{\LabelBase.cmd.FamilySetCounter} only by the fact that they do not
+assign a \PName{value} to a \LaTeX{} counter, but define a \Macro{macro} with
+the \PName{value}. This \PName{value} is locally assigned to a counter and
+then its expanded value is used. Therefore, its value at the time the option
+is called applies.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyLengthKey}\OParameter{member}\Parameter{family}
+ \Parameter{key}
+ \OParameter{default}\Parameter{length}
+ \Macro{FamilySetLength}\Parameter{family}
+ \Parameter{key}\Parameter{length}\Parameter{value}
+ \Macro{FamilyLengthMacroKey}\OParameter{member}\Parameter{family}
+ \Parameter{key}
+ \OParameter{default}\Parameter{macro}
+ \Macro{FamilySetLengthMacro}\Parameter{family}
+ \Parameter{key}\Parameter{macro}
+ \Parameter{value}%
+ \Macro{FamilyUseLengthMacroKey}\OParameter{member}\Parameter{family}
+ \Parameter{key}
+ \OParameter{default}\Parameter{macro}
+ \Macro{FamilySetUseLengthMacro}\Parameter{family}
+ \Parameter{key}\Parameter{macro}
+ \Parameter{value}%
+\end{Declaration}
+With\ChangedAt{v3.12}{\Package{scrbase}} \Macro{FamilyLengthKey}, you can
+define a \PName{key} that represents a \PName{length}. It does not matter
+whether the \PName{length} is a \LaTeX{} length, a \TeX{} skip, or a \TeX{}
+dimension. Internally the \PName{length} will be set to the \PName{value}
+using \Macro{FamilySetLength}. There are some basic tests to decide whether
+this \PName{value} is valid to assign to \PName{length}. The assignment will
+only take place if these tests succeed. However, not all errors can be
+detected, so an inaccurate \PName{value} can still result in a \TeX{} error.
+Errors that are detected, however, are signalled by
+\DescRef{\LabelBase.cmd.FamilyKeyStateUnknownValue}.
+
+If\ChangedAt{v3.15}{\Package{scrbase}} the value is omitted, the
+\PName{default} is used instead. If there is no \PName{default}, the
+\PName{key} can be used only with an explicit value.
+
+When you use \Macro{FamilyLengthMacroKey} and \Macro{FamilySetLengthMacroKey},
+or \Macro{FamilySetLengthMacro} and \Macro{FamilySetUseLengthMacro}, the
+\PName{value} is stored not in a \PName{length} but in a
+\PName{macro}. \Macro{FamilyLengthMacroKey} and
+\Macro{FamilySetLengthMacroKey} define the \PName{macro} to be the
+\PName{value} as evaluated at the point of definition, similar to
+\Macro{setlength}. In contrast,
+\Macro{FamilyUseLengthMacroKey}\ChangedAt{v3.20}{\Package{scrbase}} and
+\Macro{FamilySetUseLengthMacroKey} store the \PName{value} directly, and
+so the \PName{value} is reevaluated each time the \PName{macro} is used.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyStringKey}\OParameter{member}\Parameter{family}%
+ \Parameter{key}%
+ \OParameter{default}\Parameter{command}
+ \Macro{FamilyCSKey}\OParameter{member}\Parameter{family}%
+ \Parameter{key}%
+ \OParameter{default}\Parameter{command name}
+\end{Declaration}
+This defines\ChangedAt{v3.08}{\Package{scrbase}} a \PName{key} that accepts
+any value. The value will be stored in the specified \Macro{command}. If there
+is no optional argument for the \PName{default}, \Macro{FamilyStringKey} is
+the same as:
+\begin{lstcode}[escapeinside=`']
+ \DefineFamilyKey[`\PName{member}']{`\PName{family}'}{`\PName{key}'}
+ {\def`\PName{command}'{#1}}
+\end{lstcode}
+If you use the optional argument \PName{default}, \Macro{FamilyStringKey}
+corresponds to:
+\begin{lstcode}[escapeinside=`']
+ \DefineFamilyKey[`\PName{member}']{`\PName{family}'}{`\PName{key}'}
+ [`\PName{default}']
+ {\def`\PName{command}'{#1}\FamilyKeyStateProcessed}
+\end{lstcode}
+
+\begin{Example}
+ By default 250\Unit{g} of sausage salad should be produced. However, the
+ amount should be configurable by an option. To do so, the quantity to be
+ created is stored in the macro \Macro{saladweight}. The option to change
+ the weight should also be called \PValue{saladweight}:
+\begin{lstcode}
+ \newcommand*{\saladweight}{250g}
+ \FamilyStringKey{butcher}%
+ {saladweight}[250g]{\saladweight}
+\end{lstcode}
+ To switch back to the default weight after changing it, you can simply
+ call the option without the weight:
+\begin{lstcode}
+ \FamilyOptions{butcher}{saladweight}
+\end{lstcode}
+ This is possible because the default quantity was also set as the default
+ value in the definition.
+\end{Example}
+In this case, there are no unknown values because all values are simply used
+for a macro definition. Note, however, that paragraph breaks are not allowed
+when assigning a value to the key.
+
+In contrast\ChangedAt{v3.25}{\Package{scrbase}} to \Macro{FamilyStringKey},
+the \Macro{FamilyCSKey} command expects for the final argument not a macro but
+only the name of a command, for example \PParameter{saladweight} instead of
+\PParameter{\Macro{saladweight}}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyUnknownKeyValue}\Parameter{family}\Parameter{key}%
+ \Parameter{value}\Parameter{value list}%
+\end{Declaration}
+The command \Macro{FamilyUnknownKeyValue} throws an error message due to an
+unknown or illegal values by means of \DescRef{\LabelBase.cmd.FamilyKeyState}.
+The \PName{value list} is a comma separated list of permissible 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}
+However\ChangedAt{v3.12}{\Package{scrbase}}, the \PName{value list} is
+currently not evaluated by \Package{scrbase}.
+\begin{Example}
+ The user should now also be able to select whether the cold cuts should be
+ cut thick or thin. Thick should be the default setting, which should be used
+ even if the user does not specify how to cut the coldcuts.
+\begin{lstcode}
+ \@ifundefined{if@thincut}{%
+ \expandafter
+ \newif\csname if@thincut\endcsname}{}%
+ \@ifundefined{if@coldcuts}{%
+ \expandafter
+ \newif\csname if@coldcuts\endcsname}{}
+ \DefineFamilyKey{butcher}%
+ {coldcuts}[true]{%
+ \FamilySetBool{butcher}{coldcuts}%
+ {@coldcuts}%
+ {#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \@thincutfalse
+ \else
+ \ifstr{#1}{thin}{%
+ \@coltcutstrue
+ \@finecuttrue
+ \FamilyKeyStateProcessed
+ }{%
+ \FamilyUnknownKeyValue{butcher}%
+ {coldcuts}%
+ {#1}{%
+ `true', `on', `yes',
+ `false`, `off`, `no',
+ `thin'%
+ }%
+ }%
+ \fi
+ }%
+\end{lstcode}
+ First we try to set the boolean coldcuts switch using
+ \DescRef{\LabelBase.cmd.FamilySetBool}. If this succeeds, i.\,e. if
+ \DescRef{\LabelBase.cmd.FamilyKeyState} corresponds to
+ \DescRef{\LabelBase.cmd.FamilyKeyStateProcessed}, thincut will be
+ deactivated. Otherwise, we check if the value is equal to \PValue{thin}
+ rather than one of the valid values for a boolean switch. In this case, both
+ coldcuts and thincut are activated and the state will be switched to
+ \DescRef{\LabelBase.cmd.FamilyKeyStateProcessed}. If the previous test
+ fails, the error state signalled by \DescRef{\LabelBase.cmd.FamilySetBool}
+ is reset to \DescRef{\LabelBase.cmd.FamilyKeyStateUnknownValue}. The list of
+ the permissible values will be added to it. However, since this list is no
+ longer used, it would have been easy to skip the call to
+ \Macro{FamilyUnknownKeyValue} in the example and thus assume the error
+ status of \DescRef{\LabelBase.cmd.FamilySetBool}.
+
+ The \Macro{ifstr} command used in the test is explained on
+ \DescPageRef{scrbase.cmd.ifstr} in \autoref{sec:scrbase.if}.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyElseValues}
+\end{Declaration}
+In\ChangedAt{v3.12}{\Package{scrbase}} previous\textnote{Obsolete!} versions
+of \Package{scrbase}, you could use the \Macro{FamilyElseValues} command to
+define additional values for processing by
+\DescRef{\LabelBase.cmd.FamilyUnknownKeyValue} 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}
+which were then output in an error message. Since version~3.12,
+\DescRef{\LabelBase.cmd.FamilyUnknownKeyValue} no longer issues error messages
+itself but signals them using \DescRef{\LabelBase.cmd.FamilyKeyState}.
+Therefore, \Macro{FamilyElseValues} is now deprecated. Nevertheless,
+\Package{scrbase} detects its use and issues a message requesting that you
+update the code accordingly.%
+\EndIndexGroup
+
+
+\section{Conditional Execution}
+\seclabel{if}
+
+The \Package{scrbase} package provides several commands for conditional
+execution. It does not rely on the \TeX{} syntax of conditionals such as
+\begin{lstcode}
+ \iftrue
+ ...
+ \else
+ ...
+ \fi
+\end{lstcode}
+but uses the \LaTeX{} syntax with arguments similar to those used by \LaTeX{}
+commands like \Macro{IfFileExists}, \Macro{@ifundefined},
+\Macro{@ifpackageloaded}, and many others. Some package authors, however,
+prefer to use the syntax of \TeX{} conditionals even for users working at the
+\LaTeX{} interface level. Since the \Package{scrbase} conditionals are fairly
+low-level instructions, it is possible that such packages could provide
+commands with the same names but a different syntax, leading to problems even
+if the underlying semantics were actually the same. Therefore,
+\Package{scrbase} plays it safe.
+
+\begin{Declaration}
+ \OptionVName{internalonly}{value}
+\end{Declaration}
+The \Package{scrbase} package provides some commands for conditional
+execution. It primarily uses names like
+\Macro{scr@\PName{name}}\textnote{package authors}, which are internal
+commands. \KOMAScript{} also uses these commands internally. Authors of
+packages and classes can also use these commands but should not redefine them.
+Because some of these commands may also be useful for users, they are provided
+as \Macro{\PName{name}}\textnote{users} normally. Since other packages may
+provide conflicting commands with the same name but different syntax or
+functionality, \Package{scrbase} can suppress the definition of
+\Macro{\PName{name}}. Using the \Option{internalonly} option without a
+\PName{value} will define only the internal commands and suppress definition
+of all the user commands for conditional execution. Alternatively, the user
+can list all the commands that should not be defined as the \PName{value},
+replacing ``\Macro{}'' with ``\texttt{/}''.
+
+Authors of packages and classes normally should not use this option. Users can
+specify it with or without the \PName{value} either as a global option with
+\DescRef{maincls.cmd.documentclass} or using
+\Macro{PassOptionsToPackage}\IndexCmd{PassOptionsToPackage}.
+\begin{Example}
+ The user does not want \Package{scrbase} to define the
+ \DescRef{\LabelBase.cmd.ifVTeX} and
+ \DescRef{\LabelBase.cmd.ifundefinedorrelax} commands. So to load the class,
+ the user writes:
+\begin{lstcode}
+ \documentclass%
+ [internalonly=/ifVTeX/ifundefinedorrelax]%
+ {foo}
+\end{lstcode}
+ The class name \Class{foo} is used here as a placeholder for any class. The
+ commands \DescRef{\LabelBase.cmd.ifVTeX} and
+ \DescRef{\LabelBase.cmd.ifundefinedorrelax} are explained later in this
+ section.
+\end{Example}
+
+Authors of packages and classes should use the same internal names as
+\KOMAScript{} itself. For completeness, the user commands are also given in
+the following explanations.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scr@ifundefinedorrelax}%
+ \Parameter{name}\Parameter{then code}\Parameter{else code}%
+ \Macro{ifundefinedorrelax}%
+ \Parameter{name}\Parameter{then code}\Parameter{else code}
+\end{Declaration}
+This command works like \Macro{@ifundefined} from the \LaTeX{} kernel (see
+\cite{latex:source2e}). So the \PName{then code} 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 code} will be executed. Unlike
+\Macro{@ifundefined}, no hash memory is allocated nor is \Macro{\PName{Name}}
+set to \Macro{relax} if \Macro{\PName{name}} was previously undefined.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{ifnotundefined}\Parameter{name}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If the command with the given name has already been defined, the \PName{then
+code} will be executed. Otherwise, the \PName{else code} will be executed.
+Since \eTeX{} already has a primitive \Macro{ifdefined}, this somewhat
+unwieldy name, unfortunately, had to be chosen. There is no corresponding
+internal command.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scr@ifluatex}
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If\ChangedAt{v3.21}{\Package{scrbase}} you use lua\TeX{}, the \PName{then
+code} will be executed. Otherwise, the \PName{else code} will be executed.
+\iftrue% Umbruchkorrekturtext
+This test is rarely useful. %
+\fi%
+As a rule, it is better to test directly for the command you want.
+There\textnote{Attention!} is no user equivalent for this instruction. Use the
+\Package{ifluatex}\important{\Package{ifluatex}} package instead (see
+\cite{package:ifluatex}).%
+\EndIndexGroup
+
+
+\iffalse% It makes no sense to document this instruction yet
+\begin{Declaration}
+ \Macro{scr@ifpdforluatex}
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+Until lua\TeX~0.85, it was mostly irrelevant whether you used pdf\TeX{} or
+lua\TeX{}. This command, which executes the \PName{then code} in both cases,
+derives from that fact. If neither pdf\TeX{} nor lua\TeX{} is used, the
+\PName{else code} will be executed. Since version~0.85, lua\TeX{} has given up
+compatibility with many of its commands. Therefore this distinction is no
+longer useful in practice and is no longer used by \KOMAScript{} itself. There
+is no user equivalent of this statement.%
+\EndIndexGroup
+\fi
+
+\begin{Declaration}
+ \Macro{scr@ifpdftex}%
+ \Parameter{then code}\Parameter{else code}%
+ \Macro{ifpdftex}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If you use pdf\TeX{}, the \PName{then code} will be executed. Otherwise, the
+\PName{else code} will be executed. It does not matter whether a PDF-file is
+actually generated or not. This test is rarely useful. As a rule, you should
+test directly for the command you want instead.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scr@ifVTeX}%
+ \Parameter{then code}\Parameter{else code}%
+ \Macro{ifVTeX}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If you use V\TeX{}, the \PName{then code} will be executed. Otherwise, the
+\PName{else code} will be executed. This test is seldom useful. As a rule,
+you should test directly for the command you want instead.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scr@ifpdfoutput}%
+ \Parameter{then code}\Parameter{else code}%
+ \Macro{ifpdfoutput}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If a PDF file is generated, the \PName{then code} will be executed. Otherwise,
+the \PName{else code} will be executed. It does not matter whether PDF file is
+created using lua\TeX{}, pdf\TeX{}, or V\TeX{}, or \XeTeX{}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scr@ifpsoutput}%
+ \Parameter{then code}\Parameter{else code}%
+ \Macro{ifpsoutput}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If a PostScript file is generated, the \PName{then code} will be executed.
+Otherwise, the \PName{else code} will be executed. V\TeX{} can generate
+PostScript directly, which is recognized here. However, if V\TeX{} is not used
+but the switch \Macro{if@dvips} has been defined, the decision depends on that
+switch. \KOMAScript{} provides \Macro{if@dvips} in
+\hyperref[cha:typearea]{\Package{typearea}}\IndexPackage{typearea}%
+\IndexCmd{if@dvips}.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scr@ifdvioutput}%
+ \Parameter{then code}\Parameter{else code}%
+ \Macro{ifdvioutput}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If a DVI-file is generated, the \PName{then code} will be executed. Otherwise,
+the \PName{else code} will be executed. A DVI file is always assumed to be
+generated if no direct output of a PDF file or a PostScript file can be
+detected.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{if@atdocument}\ \PName{then code}\ %
+ \textMacro{else}\ \PName{else code}\ \textMacro{fi}
+\end{Declaration}
+This conditional command intentionally exists only as an internal command. In
+the document preamble, \Macro{if@atdocument} corresponds to \Macro{iffalse}.
+After \Macro{begin}\PParameter{document}, it corresponds to \Macro{iftrue}.
+Authors of classes and packages may find this command useful if a command
+should behave differently depending on whether it is used in the preamble or
+inside document body. Note\textnote{Attention!} that this command is a
+condition using \TeX{} syntax and not \LaTeX{} syntax!
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifstr}\Parameter{string 1}\Parameter{string 2}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+Both \PName{string} arguments are expanded and then compared. If the
+expansions are the same, the \PName{then code} will be executed. Otherwise the
+\PName{else code} will be executed. There is no corresponding internal
+command.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifstrstart}\Parameter{string 1}\Parameter{string 2}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+Both\ChangedAt{v3.12}{\Package{scrbase}} \PName{string} arguments are expanded
+and then compared. If \PName{string 1}, apart from white space, begins with
+\PName{string 2}, the \PName{then code} will be executed. Otherwise, the
+\PName{else code} will be executed. There is no corresponding internal
+command.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisdimen}\Parameter{expression}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If\ChangedAt{v3.12}{\Package{scrbase}} \PName{expression} expands to a
+\Macro{dimen}, i.\,e. a \TeX{} length register, the \PName{then code} will be
+executed. Otherwise the \PName{else code} will be executed. The command is not
+completely expandable, and there is no corresponding internal command.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisdimension}\Parameter{expression}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If\ChangedAt{v3.12}{\Package{scrbase}} \PName{expression} expands to something
+syntactically equivalent to a length, the \PName{then code} will be executed.
+Otherwise the \PName{else code} will be executed. Note\textnote{Attention!}
+that unknown units will cause an error message. The command is not completely
+expandable, and there is no corresponding internal command.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifdimen}\Parameter{string}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+The \PName{then code} will be executed if the first-order expansion of
+\PName{string} consists of digits and a valid length unit. Otherwise, the
+\PName{else code} will be used. There is no corresponding internal command.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisdimexpr}\Parameter{expression}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If\ChangedAt{v3.12}{\Package{scrbase}} \PName{expression} expands to an \eTeX{}
+\Macro{dimexpr}\IndexCmd{dimexpr}, the \PName{then code} will be executed.
+Otherwise, the \PName{else code} will be executed. Note\textnote{Attention!}
+that illegal expressions will result in error messages. The command is not
+completely expandable, and there is no corresponding internal command.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisskip}\Parameter{expression}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If\ChangedAt{v3.12}{\Package{scrbase}} \PName{expression} expands to a
+\Macro{skip}, i.\,e. a \TeX{} distance, the \PName{then code} will be
+executed. Otherwise, the \PName{else code} will be executed. The command is not
+completely expandable, and there is no corresponding internal command.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisglue}\Parameter{expression}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If\ChangedAt{v3.12}{\Package{scrbase}} \PName{expression} expands to something
+syntactically equivalent of the value of a skip, the \PName{then code} will be
+executed. Otherwise, the \PName{else code} will be executed.
+Note\textnote{Attention!} that invalid units will result in an error message.
+The command is not completely expandable, and there is no corresponding
+internal command.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisglueexpr}\Parameter{expression}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If\ChangedAt{v3.12}{\Package{scrbase}} \PName{expression} expands to a
+\Macro{glueexpr}, i.\,e. an \eTeX{} distance expression, the \PName{then
+code} will be executed. Otherwise, the \PName{else code} will be executed.
+Note,\textnote{Attention!} that illegal expressions will result in error
+messages. The command is not completely expandable, and there is no
+corresponding internal command.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifiscounter}\Parameter{counter}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If\ChangedAt{v3.12}{\Package{scrbase}} \PName{counter} is defined as a
+\LaTeX{} counter, the \PName{then code} will be executed. Otherwise, the
+\PName{else code} will be executed. The command is not completely expandable,
+and there is no corresponding internal command.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifiscount}\Parameter{count}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If\ChangedAt{v3.12}{\Package{scrbase}} \PName{count} expands to a
+\Macro{count}, i.\,e. a \TeX{} counter, the \PName{then code} will be
+executed. Otherwise, the \PName{else code} will be executed. The command is
+not completely expandable, and there is no corresponding internal command. For
+tests of \LaTeX{} counters, see \DescRef{\LabelBase.cmd.ifiscounter}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisinteger}\Parameter{expression}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If\ChangedAt{v3.12}{\Package{scrbase}} \PName{expression} expands to something
+syntactically equivalent to of the value of a counter, i.\,e. a negative or
+positive integer, the \PName{then code} will be executed. Otherwise, the
+\PName{else code} will be executed. The command is not completely expandable,
+and there is no corresponding internal command.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifnumber}\Parameter{string}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+The \PName{then code} will be executed if the first-order expansion of
+\PName{string} consists only of digits. Otherwise, the \PName{else code} will
+be used. There is no corresponding internal command.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisnumexpr}\Parameter{expression}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+If\ChangedAt{v3.12}{\Package{scrbase}} \PName{expression} expands to a
+\Macro{numexpr}, i.\,e. an \eTeX{} number expression, the \PName{then code}
+will be executed. Otherwise, the \PName{else code} will be executed.
+Note\textnote{Attention!} that illegal expressions will result in error
+messages. The command is not completely expandable, and there is no
+corresponding internal command.%
+\EndIndexGroup
+
+
+\section{Defining Language-Dependent Terms}
+\seclabel{languageSupport}
+\BeginIndexGroup
+\BeginIndex{}{language>definition}
+\index{language>dependent terms|see{language definition}}
+\index{terms>language-dependent|see{language definition}}
+
+Beginners often find it difficult to change language-dependent terms
+\Macro{listfigurename}\IndexCmd{listfigurename}, by default usually ``List of
+Figures.'' For example, if these are simply redefined with
+\Macro{renewcommand} in the document preamble, they will not survive a later
+change of language. If you use \Package{babel}\IndexCmd{babel}, the
+redefinition in the preamble is overwritten with
+\Macro{begin}\PParameter{document}.
+
+To define or change language-dependent terms, you normally have to redefine
+commands like \Macro{captionsenglish} so that the new or redefined terms are
+defined in addition to the previous terms. 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 they are
+loaded. These definitions, unfortunately, occur in a way that undoes all the
+previous changes. For this reason, it makes sense to delay changes until
+\Macro{begin}\PParameter{document} by using \Macro{AtBeginDocument}, that is,
+after all packages have been loaded. A user can also use
+\Macro{AtBeginDocument} or redefine the language-dependent terms not in the
+preamble but after \Macro{begin}\PParameter{document}.
+
+Adding further to the difficulty, some packages define additional
+language-dependent terms in \Macro{captions\PName{language}}, while others use
+\Macro{extras\PName{language}}. So the user must understand the commands very
+well in order to use the correct one in the right way.
+
+The \Package{scrbase} package therefore provides additional commands to define
+or modify language-dependent terms, relieving the user of many of these
+problems. These commands also let you simultaneously define or change the
+language-dependent terms of several dialects or forms of a language.
+
+\begin{Declaration}
+ \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}%
+ \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}
+With these four commands and their starred variants, you can assign a
+\PName{definition} for a particular language to a \PName{term}. Several
+languages can be concatenated with comma in the \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 is already defined at
+the time the command is called.
+
+If a language is not defined, \Macro{providecaptionname} does nothing other
+than write a message to the log file. This happens only once for each
+language. If a language is defined but does not yet contain a corresponding
+\PName{term}, it will be defined using \PName{definition}. However, the
+\PName{term} will not be redefined if the language already has such a
+definition; instead, an appropriate message is written to the log file.
+
+On the other hand, if a language has not yet been defined,
+\Macro{newcaptionname} defines a new language command will be created. For the
+language \PValue{USenglish}, for example, this would be the language command
+\Macro{captionsUSenglish}. This definition will also be noted in the log file.
+If \PName{term} is not yet defined in this language, it will be defined using
+\PName{definition}. If the \PName{term} already exists in a language, an error
+message is issued.
+
+The \Macro{renewcaptionname} command behaves still differently. If a language
+is undefined, an error message is issued. If the \PName{term} is not defined
+in this language, an error message is also issued. If the \PName{term} is
+defined in the language, it will be redefined to \PName{definition}.
+
+The\ChangedAt{v3.12}{\Package{scrbase}} \Macro{defcaptionname} command always
+defines the \PName{term}, thus overwriting any previous definition. As with
+\Macro{providecaptionname}, the language specified need not be previously
+defined.
+
+\KOMAScript{} itself uses \Macro{providecaptionname} to define the commands in
+\autoref{sec:scrlttr2-experts.languages}.
+\DescPageRef{scrlttr2-experts.cmd.yourrefname}.
+
+\begin{Example}
+ If you prefer ``fig.'' instead of ``figure'' in \PValue{USenglish}, you can
+ 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 with
+ \PValue{american}, \PValue{australian}, \PValue{british}, \PValue{canadian},
+ and \PValue{newzealand}.
+\end{Example}
+
+Since \KOMAScript~3.12\ChangedAt{v3.12}{\Package{scrbase}}, you no longer need
+to delay the definition or redefinition until
+\Macro{begin}\PParameter{document} using \Macro{AtBeginDocument} because
+\Package{scrbase} does this itself if the commands are called in the
+document's preamble. Additionally, \Package{scrbase} now checks if a term
+should be redefined in \Macro{extras\PName{language}} instead of
+\Macro{captions\PName{language}}. The new starred variants of the commands
+always use \Macro{extras\PName{language}}. So redefining language-dependent
+terms for packages like \Package{hyperref} that use
+\Macro{extras\PName{language}} should work as expected.
+
+Language-dependent terms that are commonly defined by classes and language
+packages are described in \autoref{tab:scrbase.commonNames}.
+
+\begin{desclist}
+ \renewcommand*{\abovecaptionskipcorrection}{-\normalbaselineskip}%
+ \desccaption[{%
+ Overview of common language-dependent terms%
+ }]{%
+ Overview of language-dependent terms of typical language packages%
+ \label{tab:scrbase.commonNames}%
+ }{%
+ Overview of common language dependent terms
+ (\emph{continued})%
+ }%
+ \entry{\Macro{abstractname}}{%
+ heading of the abstract%
+ \IndexCmd{abstractname}%
+ }%
+ \entry{\Macro{alsoname}}{%
+ ``see also'' in additional cross references of the index%
+ \IndexCmd{alsoname}%
+ }%
+ \entry{\Macro{appendixname}}{%
+ ``appendix'' in the heading of an appendix chapter%
+ \IndexCmd{appendixname}%
+ }%
+ \entry{\Macro{bibname}}{%
+ heading of the bibliography%
+ \IndexCmd{bibname}%
+ }%
+ \entry{\Macro{ccname}}{%
+ prefix heading for the distribution list of a letter%
+ \IndexCmd{ccname}%
+ }%
+ \entry{\Macro{chaptername}}{%
+ ``chapter'' in the heading of a chapter%
+ \IndexCmd{chaptername}%
+ }%
+ \entry{\Macro{contentsname}}{%
+ heading of the table of contents%
+ \IndexCmd{contentsname}%
+ }%
+ \entry{\Macro{enclname}}{%
+ prefix heading for the enclosures of a letter%
+ \IndexCmd{enclname}%
+ }%
+ \entry{\Macro{figurename}}{%
+ prefix heading of figure captions%
+ \IndexCmd{figurename}%
+ }%
+ \entry{\Macro{glossaryname}}{%
+ heading of the glossary%
+ \IndexCmd{glossaryname}%
+ }%
+ \entry{\Macro{headtoname}}{%
+ ``to'' in header of letter pages%
+ \IndexCmd{headtoname}%
+ }%
+ \entry{\Macro{indexname}}{%
+ heading of the index%
+ \IndexCmd{indexname}%
+ }%
+ \entry{\Macro{listfigurename}}{%
+ heading of the list of figures%
+ \IndexCmd{listfigurename}%
+ }%
+ \entry{\Macro{listtablename}}{%
+ heading of the list of tables%
+ \IndexCmd{listtablename}%
+ }%
+ \entry{\Macro{pagename}}{%
+ ``page'' in the pagination of letters%
+ \IndexCmd{pagename}%
+ }%
+ \entry{\Macro{partname}}{%
+ ``part'' in the heading of a part%
+ \IndexCmd{partname}%
+ }%
+ \entry{\Macro{prefacename}}{%
+ heading of the preface%
+ \IndexCmd{prefacename}%
+ }%
+ \entry{\Macro{proofname}}{%
+ prefix heading of mathematical proofs%
+ \IndexCmd{proofname}%
+ }%
+ \entry{\Macro{refname}}{%
+ heading of the list of references%
+ \IndexCmd{refname}%
+ }%
+ \entry{\Macro{seename}}{%
+ ``see'' in cross references of the index%
+ \IndexCmd{seename}%
+ }%
+ \entry{\Macro{tablename}}{%
+ prefix heading at table captions%
+ \IndexCmd{tablename}%
+ }%
+\end{desclist}
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Identifying \KOMAScript}
+\seclabel{identify}
+
+Although\,---\,or especially because\,---\,\Package{scrbase} is generally
+designed as a package for authors of classes and packages, it is of course
+used by the \KOMAScript{} classes and most \KOMAScript{} packages. It
+therefore contains two commands that are present in all \KOMAScript{} classes
+and all basic \KOMAScript{} packages.
+
+\begin{Declaration}
+ \Macro{KOMAScript}
+\end{Declaration}
+This command simply sets the word ``\KOMAScript'' in sans-serif font and with
+a slight tracking for the capitals. By the way, all \KOMAScript{} classes and
+packages define this command as required. The definition is robust using
+\Macro{DeclareRobustCommand}. Since packages that do not belong to
+\KOMAScript{} can also define this command, its existence should not be
+interpreted as an indication that a \KOMAScript{} package is in use.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{KOMAScriptVersion}
+\end{Declaration}
+\KOMAScript{} defines the major version of \KOMAScript{} in this command. It
+has the form ``\PName{date} \PName{version} \texttt{KOMA-Script}''. This major
+version is same for all \KOMAScript{} classes and all \KOMAScript{} packages
+used by the classes. For this reason, it can be queried after you
+load \Package{scrbase}, too. For example, this guide was made using
+\KOMAScript{} version ``\KOMAScriptVersion''.
+%
+\EndIndexGroup
+
+
+\section{Extensions to the \LaTeX{} Kernel}
+\seclabel{latexkernel}
+
+Sometimes the \LaTeX{} kernel itself provides commands but lacks other very
+similar commands that would often be useful. A few such commands are provided
+by \Package{scrbase} for authors of packages and classes.
+
+\begin{Declaration}
+ \Macro{ClassInfoNoLine}\Parameter{class name}\Parameter{information}%
+ \Macro{PackageInfoNoLine}\Parameter{package name}\Parameter{information}%
+\end{Declaration}%
+The \LaTeX{} kernel already provides authors of classes and packages commands
+like \Macro{ClassInfo} and \Macro{PackageInfo} to write information, along
+with the current line number, to the log file. In addition to
+\Macro{PackageWarning} and \Macro{ClassWarning}, which throw warning messages
+with line numbers, it also provides \Macro{PackageWarningNoLine} and
+\Macro{ClassWarningNoLine} for warning messages without line numbers. However
+the obvious commands \Macro{ClassInfoNoLine} and \Macro{PackageInfoNoLine},
+for writing information without line numbers into the log file, are missing.
+The \Package{scrbase} package provides them.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{l@addto@macro}\Parameter{command}\Parameter{extension}%
+\end{Declaration}%
+The \LaTeX{} kernel provides an internal command \Macro{g@addto@macro} to
+extend the definition of macro \Macro{command} globally with
+\PName{extension}. This works in this form only for macros that have no
+arguments. However, sometimes you may need a command like this that works
+locally within the current group. The \Package{scrbase} package provides such
+a command with \Macro{l@addto@macro}. An alternative is to use the
+\Package{etoolbox}\IndexPackage{etoolbox} or
+\Package{xpatch}\IndexPackage{xpatch} package, which offers a whole range of
+such commands for different purposes (see \cite{package:etoolbox} or
+\cite{package:xpatch}).%
+\EndIndexGroup
+
+
+\section{Extensions to the Mathematical Features of \eTeX}
+\seclabel{etex}
+
+\eTeX{}, which is used by \LaTeX{} and loaded by \KOMAScript{}, has extended
+capabilities for calculating simple arithmetic with \TeX{} counters and
+integers using \Macro{numexpr}\IndexCmd{numexpr}. The four basic arithmetic
+operations and parentheses are supported. Division is rounded
+correctly. Sometimes additional operators would be useful.
+
+\begin{Declaration}
+ \Macro{XdivY}\Parameter{dividend}\Parameter{divisor}%
+ \Macro{XmodY}\Parameter{dividend}\Parameter{divisor}%
+\end{Declaration}%
+The command\ChangedAt{v3.05a}{\Package{scrbase}}
+\Macro{XdivY} returns the value of the integer quotient, with command
+\Macro{XmodY} giving the value of the remainder. This type of of division is
+defined by the equation
+\[
+\textit{dividend} = \textit{divisor} \cdot
+\textit{integer quotient} + \textit{remainder}
+\]
+where \textit{dividend}, \textit{divisor}, and \textit{remainder} are
+integers, \textit{remainder} is greater or equal to 0 and less than
+\textit{divisor}, and \textit{divisor} is a natural number greater than 0.
+
+You can assign the value to a counter or use it directly within an expression
+using \Macro{numexpr}. To output the value as an Arabic number, you must
+prefix it with \Macro{the}.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% ispell-local-dictionary: "en_GB"
+%%% coding: us-ascii
+%%% TeX-master: "../guide.tex"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrbookreportarticle-experts.tex b/macros/latex/contrib/koma-script/source-doc/english/scrbookreportarticle-experts.tex
new file mode 100644
index 0000000000..1629f29923
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrbookreportarticle-experts.tex
@@ -0,0 +1,1786 @@
+% ======================================================================
+% scrbookreportarticle-experts.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrbookreportarticle-experts.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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 scrbook, scrreprt, and scrartcl of the KOMA-Script guide
+% expert part
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber scrbook, scrreprt und scrartcl im Experten-Teil der
+% KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrbookreportarticle-experts.tex}
+ [$Date: 2019-01-15 08:29:44 +0100 (Tue, 15 Jan 2019) $
+ KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl for
+ experts)]
+
+\translator{Gernot Hassenpflug\and Markus Kohm\and Karl Hagen}
+
+% Date of the translated German file: 2018-10-14
+
+\chapter[{Additional Information about the Main Classes and
+ \Package{scrextend}}]{Additional Information about the Main Classes
+ \Class{scrbook},
+ \Class{scrreprt}, and \Class{scrartcl} as well as the Package
+ \Package{scrextend}}
+\labelbase{maincls-experts}
+\BeginIndexGroup
+\BeginIndex{Class}{scrartcl}%
+\BeginIndex{Class}{scrbook}%
+\BeginIndex{Class}{scrreprt}%
+\BeginIndex{Package}{scrextend}%
+This chapter provides additional information about the \KOMAScript{} classes
+\Class{scrbook}, \Class{scrreprt}, and \Class{scrartcl} and some commands that
+are also available in \Package{scrextend}. \iffree{Some parts of the chapter
+ are found only in the German \KOMAScript{} book \cite{book:komascript}. This
+ should not be a problem because the}{The} average user, who only wants to
+use the classes, will seldom need this information. Some of this information
+is addressed to users with non-standard requirements or who want to write
+their own classes based on a \KOMAScript{} class. Other parts describe
+features that exist only for the sake of compatibility with the standard
+classes or earlier versions of \KOMAScript{}. Portions that describe features
+that exist only for reasons of compatibility with earlier versions of
+\KOMAScript{} are printed in sans serif font. You should not use them any
+longer.
+
+\LoadNonFree{scrbookreportarticle-experts}{0}
+
+\section{Extensions to User Commands}
+\seclabel{addInfos}
+
+\LoadNonFree{scrbookreportarticle-experts}{1}
+
+
+\section{\KOMAScript's Interaction with Other Packages}
+\seclabel{coexistence}
+
+\LoadNonFree{scrbookreportarticle-experts}{2}
+
+
+\section{Expert Commands}
+\seclabel{experts}
+
+This sections describes commands that are of little or no interest to the
+average user. These commands offer additional features for experts. Because
+the information is addressed to experts, it is condensed.
+
+% \subsection{Identification}
+% \seclabel{identification}
+
+\begin{Declaration}
+ \Macro{KOMAClassName}%
+ \Macro{ClassName}
+\end{Declaration}
+\Macro{KOMAClassName} stores the name of the \KOMAScript{} class currently in
+use. So if you want to know if a \KOMAScript{} class is used, you can easily
+test for this command. In contrast, \Macro{ClassName} indicates which standard
+class has been replaced by this \KOMAScript{} class.
+
+Note\textnote{Attention!} in this context, however, that the existence of
+\DescRef{scrbase.cmd.KOMAScript}\IndexCmd{KOMAScript} cannot guarantee that a
+\KOMAScript{} class is in use. For one thing, all \KOMAScript{} packages
+define this command. For another, other packages may find it useful to define
+the \KOMAScript{} label using this name.%
+%
+\EndIndexGroup
+
+% \subsection{Entries to the Table of Contents}
+% \seclabel{toc}
+
+\begin{Declaration}
+ \Macro{addtocentrydefault}\Parameter{level}\Parameter{number}%
+ \Parameter{heading}
+\end{Declaration}
+The\ChangedAt{v3.08}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} \KOMAScript{} classes do not use
+\Macro{addcontentsline}\IndexCmd{addcontentsline}%
+\important{\Macro{addcontentsline}} directly to make entries in the table of
+contents. Instead, they call \Macro{addtocentrydefault} with similar
+arguments. The command can be used for both numbered and unnumbered entries.
+The \PName{level} is the sectioning level, that is \PValue{part},
+\PValue{chapter}, \PValue{section}, \PValue{subsection},
+\PValue{subsubsection}, \PValue{paragraph}, or \PValue{subparagraph}. The
+formatted sectioning number is given the second argument, \PName{number}. This
+argument can be empty. The text of the entry is given by the \PName{heading}
+argument. You should protect fragile commands inside this argument with
+\Macro{protect}\IndexCmd{protect}\important{\Macro{protect}}.
+
+One notable feature of the \PName{number} argument is that an empty argument
+indicates that an unnumbered entry should be generated. By default,
+\KOMAScript{} uses
+\begin{quote}
+ \Macro{addcontentsline}\PParameter{toc}\Parameter{level}%
+ \Parameter{heading}
+\end{quote}
+for this. If the argument is not empty, however, an entry with number
+will be created and \PName{number} is the formatted heading
+number. \KOMAScript{} uses
+\begin{quote}\raggedright
+ \Macro{addcontentsline}\PParameter{toc}\Parameter{level}%
+ \PParameter{\%\\
+ \quad\Macro{protect}\DescRef{tocbasic.cmd.numberline}\Parameter{number}%
+ \PName{heading}\%\\
+ }
+\end{quote}
+to create this entry.
+
+Package authors and authors of wrapper classes can redefine this command to
+alter the entries. For example\textnote{Example}, you could use
+\begin{lstcode}
+ \renewcommand{\addtocentrydefault}[3]{%
+ \ifstr{#3}{}{%
+ \ifstr{#2}{}{%
+ \addcontentsline{toc}{#1}{#3}%
+ }{%
+ \addcontentsline{toc}{#1}{\protect\numberline{#2}#3}%
+ }%
+ }%
+ }%
+\end{lstcode}
+to\IndexCmd{ifstr} omit entries with an empty \PName{heading}. In practice,
+such a change is not necessary because the \KOMAScript{} classes already use
+another method to suppress empty entries. See the description of the
+sectioning commands in \autoref{sec:maincls.structure}, starting on
+\DescPageRef{maincls.cmd.part} for this.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{addparttocentry}\Parameter{number}\Parameter{heading}
+ \Macro{addchaptertocentry}\Parameter{number}\Parameter{heading}
+ \Macro{addsectiontocentry}\Parameter{number}\Parameter{heading}
+ \Macro{addsubsectiontocentry}\Parameter{number}\Parameter{heading}
+ \Macro{addsubsubsectiontocentry}\Parameter{number}\Parameter{heading}
+ \Macro{addparagraphtocentry}\Parameter{number}\Parameter{heading}
+ \Macro{addsubparagraphtocentry}\Parameter{number}\Parameter{heading}
+\end{Declaration}%
+The\ChangedAt{v3.08}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} \KOMAScript{} classes call the previously described
+command
+\DescRef{\LabelBase.cmd.addtocentrydefault}\IndexCmd{addtocentrydefault}%
+\important{\DescRef{\LabelBase.cmd.addtocentrydefault}} directly only if no
+individual command for the \PName{level} has been defined or if that command
+is \Macro{relax}\IndexCmd{relax}\important{\Macro{relax}}. By default, all
+these commands simply pass their own \PName{level} and arguments directly to
+\DescRef{\LabelBase.cmd.addtocentrydefault}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{raggedchapterentry}
+\end{Declaration}
+In\ChangedAt{v3.21}{\Class{scrbook}\and \Class{scrreprt}} earlier versions of
+\KOMAScript{}, it was possible to define the \Macro{raggedchapterentry} macro
+as \Macro{raggedright} to print chapter entries in the table of contents
+left-aligned instead of fully justified. Officially, this feature has not
+existed in \KOMAScript{} since version~3.21.
+
+In fact, the \PValue{raggedentrytext} attribute for the \PValue{tocline}
+TOC-entry style of the \Package{tocbasic}\IndexPackage{tocbasic} package is
+implemented by setting the \Macro{ragged\PName{entry level}entry} macro to
+either \Macro{relax} or \Macro{raggedright}. This attribute is evaluated by
+checking whether the corresponding macro is defined as \Macro{raggedright}. If
+so, the text is printed left-aligned. With any other definition, no ragged
+margins are used.
+
+Since it was previously documented that \Macro{raggedchapterentry} should not
+be defined as anything other than \Macro{raggedright}, this behaviour is
+compatible with the documented behaviour of earlier versions. As noted in
+earlier releases, other definitions of \Macro{raggedchapterentry}\,---\,and
+now also of \Macro{raggedsectionentry} and similar macros for other entry
+levels\,---\,may lead to unexpected results.
+
+You should select the desired justification for the all table-of-contents
+entries using the \PValue{raggedentrytext} attribute of \PValue{tocline}
+rather than attempting to set the attribute for specific entry levels.%
+\EndIndexGroup
+
+
+% \subsection{Font Settings}
+% \seclabel{fonts}
+
+
+\begin{Declaration}
+ \Macro{@fontsizefilebase}%
+ \Macro{changefontsizes}\Parameter{font size}
+\end{Declaration}
+The \File{scrsize} prefix for file names of font-size files described
+in \autoref{sec:maincls-experts.addInfos}\iffree{}{ on
+\DescPageRef{maincls-experts.option.fontsize}} is just the default for the
+internal \Macro{@fontsizefilebase}\IndexCmd{@fontsizefilebase} macro. This
+default is used only when the macro is not yet defined when loading a
+\KOMAScript{} class or the \Package{scrextend} package. Authors of wrapper
+classes can redefine this macro to use completely different font-size files.
+Similarly\textnote{Hint!} authors of wrapper classes can change or deactivate
+the fallback solution for unknown font sizes by redefining the
+\Macro{changefontsizes}\important{\Macro{changefontsizes}} macro. This macro
+has exactly one argument: the desired \PName{font size}.
+However\textnote{Attention!}, the \Macro{changefontsizes} macro is not
+designed as an end-user instruction.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{newkomafont}\OParameter{warning}\Parameter{element}%
+ \Parameter{default}%
+ \Macro{aliaskomafont}\Parameter{alias}\Parameter{element}
+\end{Declaration}
+Experts can use \Macro{newkomafont} to define a \PName{default} for the font
+style of an \PName{element}. Subsequently, that default can be changed with
+the \DescRef{maincls.cmd.setkomafont} and \DescRef{maincls.cmd.addtokomafont}
+commands (see \autoref{sec:maincls.textmarkup},
+\DescPageRef{maincls.cmd.setkomafont}). Of course, merely defining the font
+style does not actually put it to use. You must make sure you include the
+\DescRef{maincls.cmd.usekomafont}%
+\important{\DescRef{maincls.cmd.usekomafont}}\IndexCmd{usekomafont} command
+(see \DescPageRef{maincls.cmd.usekomafont}) for this \PName{element} in your
+code at the appropriate places. Calling \Macro{newkomafont} for an existing
+element will result in error messages.
+
+The optional \PName{warning} argument defines a warning message. The
+\KOMAScript{} classes output it with \Macro{ClassWarning}, and the
+\Package{scrextend} package with \Macro{PackageWarning}, whenever the default
+font style of that \PName{element} is changed. The package \Package{scrkbase}
+is listed as the generator of the warning.
+
+The \Macro{aliaskomafont} command defines an \PName{alias} for a previously
+defined \PName{element}. \KOMAScript{} informs the user in the \File{log} file
+about the actual name of the element if it uses an \PName{alias}.
+You\textnote{Hint!} can use an \PName{alias}, for example, if you think of a
+better name for an element and the old name should remain usable for the sake
+of compatibility. It can also increase user-friendliness by creating aliases
+for all the terms that different users may intuitively choose. \KOMAScript{}
+itself makes use of this possibility.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{addtokomafontrelaxlist}\Parameter{macro}
+ \Macro{addtokomafontonearglist}\Parameter{macro}
+ \Macro{addtokomafontgobblelist}\Parameter{macro}
+\end{Declaration}
+As already mentioned in \autoref{part:forAuthors} of this manual, font
+settings of elements should consist only of commands to select the size,
+family, encoding, series, shape, or colour. Colour changes are not
+always transparent in \LaTeX{} and therefore can cause in unwanted side-effects
+if you use \DescRef{maincls.cmd.usekomafont} at an inappropriate place.
+
+Users tend to put very different, sometimes critical, things into the font
+setting of an element, such as \Macro{MakeUppercase} at the very end of the
+setting. As much as possible, the internal use of the font settings has been
+implemented so that many of these prohibited elements still do no harm, and it
+usually works even if the last command in a font setting expects an argument,
+for example using \Macro{textbf} instead of \Macro{bfseries}. But there is no
+guarantee for that.
+
+Internally, \KOMAScript{} must sometimes limit font changes to real font
+settings. This is accomplished, for example, by using
+\DescRef{maincls.cmd.usefontofkomafont}%
+\IndexCmd{usefontofkomafont}%
+\IndexCmd{usesizeofkomafont}\IndexCmd{useencodingofkomafont}%
+\IndexCmd{usefamilyofkomafont}\IndexCmd{useseriesofkomafont}%
+\IndexCmd{useshapeofkomafont} instead of \DescRef{maincls.cmd.usekomafont}
+(see \autoref{sec:maincls.textmarkup},
+\DescPageRef{maincls.cmd.usefontofkomafont}).
+
+Nevertheless, the \DescRef{maincls.cmd.usefontofkomafont} command and its
+siblings have their limitations. Therefore you must not use a command that
+always needs a fully expandable argument inside the font setting of an
+element. But this is exactly what \Macro{MakeUppercase} needs.
+Therefore\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
+\Class{scrartcl}} \KOMAScript{} maintains an internal list of macros that
+should become \Macro{relax} inside \DescRef{maincls.cmd.usefontofkomafont} and
+its siblings. Since \KOMAScript~3.24\ChangedAt{v3.24}{\Class{scrbook}\and
+\Class{scrreprt}\and \Class{scrartcl}} only \Macro{normalcolor} is added to
+this list by default.
+
+Note that the given \PName{macro} is actually just set to \Macro{relax}. So
+any arguments within the font setting will be executed locally, if applicable.
+Therefore you should never add commands like \Macro{setlength} to the list.
+You are responsible for all errors resulting caused by using
+\Macro{addtokomafontrelaxlist}. Also, do not take this command as license to
+add all sorts of commands to the font settings!
+
+For\ChangedAt{v3.24}{\Class{scrbook}\and \Class{scrreprt}\and
+\Class{scrartcl}} commands whose first argument should be executed without an
+additional group, there is \Macro{addtokomatfontonearglist}. The specified
+macro is set to \Macro{@firstofone}. By default \Macro{MakeUppercase} and
+\Macro{MakeLowercase} are added to this list.
+
+If\ChangedAt{v3.19}{\Class{scrbook}\and \Class{scrreprt}\and
+\Class{scrartcl}}, on the other hand, a \PName{macro} and its first argument
+should be ignored locally inside \DescRef{maincls.cmd.usefontofkomafont} and
+its siblings, you can use \Macro{addtokomafontgobblelist} instead of
+\Macro{addtokomafontrelaxlist}. An example of this is the command
+\Macro{color}, which must be ignored along with the colour name and therefore
+is a member of this list by default.
+
+Note the defaults of these three lists may change in future version. If you
+need a certain commands in one of the lists, you should should explicitly add
+them yourself.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{IfExistskomafont}\Parameter{element}\Parameter{then code}%
+ \Parameter{else code}
+ \Macro{IfIsAliaskomafont}\Parameter{element}\Parameter{then code}%
+ \Parameter{else code}
+\end{Declaration}
+Which\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}\and \Class{scrlttr2}} elements are defined depends on the
+version of \KOMAScript. So it sometimes makes sense to test in advance whether
+a specific \PName{element} even exists. The \Macro{IfExistskomafont} command
+executes the \PName{then code} if and only if an \PName{element} has been
+defined using \DescRef{\LabelBase.cmd.newkomafont} or
+\DescRef{\LabelBase.cmd.aliaskomafont} and therefore can also be changed using
+\DescRef{maincls.cmd.setkomafont} or \DescRef{maincls.cmd.addtokomafont} and
+can be used by one of the \Macro{use\dots komafont} commands. Otherwise it
+executes the \PName{else code}.%
+
+In contrast, \Macro{IfIsAliaskomafont}\ChangedAt{v3.25}{\Class{scrbook}\and
+\Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}} executes
+\PName{then code} only if \PName{element} has been defined with
+\DescRef{\LabelBase.cmd.aliaskomafont} as an alias of another element. For
+undefined elements as well as for elements defined with
+\DescRef{\LabelBase.cmd.newkomafont}, however, it executes the
+\PName{else code}.%
+\EndIndexGroup
+
+% \subsubsection{Paragraph Indention or Gap}
+% \seclabel{parskip}
+
+\begin{Declaration}
+ \Macro{setparsizes}\Parameter{indent}\Parameter{distance}
+ \Parameter{last-line end space}
+\end{Declaration}
+\KOMAScript{} provides the option to set the indent of the first line of a new
+paragraph, the distance between paragraphs, and the white space required at the
+end of the last line of each paragraph. You should use this command whenever
+the \OptionValueRef{maincls}{parskip}{relative} option should recognize these
+changes. \KOMAScript{}\textnote{example} itself uses this command, for
+example, in the form
+\begin{lstcode}
+ \setparsizes{0pt}{0pt}{0pt plus 1fil}
+\end{lstcode}
+to eliminate both the paragraph indentation and inter-paragraph spacing, as
+well as to allow any amount of white space at the end of the last line of the
+paragraph. Such values are useful if a paragraph consists of only a box that
+should be printed without vertical spacing and filling the whole column
+width. If, on the other hand, the box should only span the whole width but use
+the current settings for indentation and distance between paragraphs, then
+\begin{lstcode}
+ \setlength{\parfillskip}{0pt plus 1fil}
+\end{lstcode}
+is preferable.
+
+Starting with \KOMAScript~3.17\ChangedAt{v3.17}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}, recalculating or
+reactivating\IndexCmd{activateareas} the type area or the margins (see
+\autoref{cha:typearea}) also readjusts the values of \Macro{setparsizes} if
+they have not been changed in the meantime. This is one more reason not to
+change these values without using \KOMAScript. Setting compatibility to a
+\KOMAScript{} version prior to 3.17 (see
+\autoref{sec:maincls.compatibilityOptions},
+\DescPageRef{maincls.option.version}, option \DescRef{maincls.option.version}%
+\IndexOption{version}\important{\OptionValueRef{maincls}{version}{3.17}})
+disables this recalculation.%
+%
+\EndIndexGroup
+
+% \subsection{Counters}
+% \seclabel{counter}
+
+\LoadNonFree{scrbookreportarticle-experts}{3}
+
+% \subsubsection{Sections}
+% \seclabel{sections}
+
+\begin{Declaration}
+ \Macro{DeclareSectionCommand}\OParameter{attributes}\Parameter{name}%
+ \Macro{DeclareNewSectionCommand}\OParameter{attributes}\Parameter{name}%
+ \Macro{RedeclareSectionCommand}\OParameter{attributes}\Parameter{name}%
+ \Macro{ProvideSectionCommand}\OParameter{attributes}\Parameter{name}
+\end{Declaration}
+With\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} these commands you can either define a new sectioning
+command, \Macro{\PName{name}}, or modify an existing sectioning command,
+\Macro{\PName{name}}. To do so, you use the optional argument to set several
+\PName{attributes}. The \PName{attributes} are a comma-separated list of
+\PName{key}=\PName{value} assignments. In addition to the style-independent
+attributes shown in \autoref{tab:maincls-experts.declaresection.keys},
+\autopageref{tab:maincls-experts.declaresection.keys}, there are also
+attributes that depend on the style. Currently the following styles are
+available:
+\begin{description}\setkomafont{descriptionlabel}{}
+\item[\PValue{chapter}:] \ChangedAt{v3.18}{\Class{scrbook}\and
+ \Class{scrreprt}}The style for chapter headings. This style is used by
+ default for \DescRef{maincls.cmd.chapter}\IndexCmd{chapter} and indirectly
+ for \DescRef{maincls.cmd.addchap}\IndexCmd{addchap}. You can define new
+ sectioning commands using this style, but then they do not automatically
+ have an \Macro{add\dots} variant. To configure existing or new sectioning
+ commands, you can also use the attributes of
+ \autoref{tab:maincls-experts.declarechapterstyle.keys},
+ \autopageref{tab:maincls-experts.declarechapterstyle.keys}.
+ The\textnote{Attention!} \DescRef{maincls.cmd.addchap} command,
+ like the starred variants, is configured automatically with
+ \DescRef{maincls.cmd.chapter} and cannot be modified independently. Note
+ that \Class{scrartcl}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} does not
+ provide this style.
+\item[\PValue{part}:] \ChangedAt{v3.18}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}The style for part headings. This
+ style is used by default for \DescRef{maincls.cmd.part}\IndexCmd{part} and
+ indirectly for \DescRef{maincls.cmd.addpart}\IndexCmd{addpart}. You can
+ define new sectioning commands using this style, but then they do not
+ automatically have an \Macro{add\dots} variant. To configure existing or new
+ sectioning commands, you can also use the attributes of
+ \autoref{tab:maincls-experts.declarepartstyle.keys},
+ \autopageref{tab:maincls-experts.declarepartstyle.keys}.
+ Note\textnote{Attention!} that the \DescRef{maincls.cmd.addpart} command,
+ like the starred variants, is configured automatically with
+ \DescRef{maincls.cmd.part} and cannot be modified independently.
+\item[\PValue{section}:] The style for section headings. This style is currently
+ used for \DescRef{maincls.cmd.section}\IndexCmd{section},
+ \DescRef{maincls.cmd.subsection}\IndexCmd{subsection},
+ \DescRef{maincls.cmd.subsubsection}\IndexCmd{subsubsection},
+ \DescRef{maincls.cmd.paragraph}\IndexCmd{paragraph}, and
+ \DescRef{maincls.cmd.subparagraph}\IndexCmd{subparagraph}. You can define
+ new sectioning commands using this style. To configure existing or new
+ sectioning commands, you can also use the attributes of
+ \autoref{tab:maincls-experts.declaresectionstyle.keys},
+ \autopageref{tab:maincls-experts.declaresectionstyle.keys}. When redefining
+ a command, the \ChangedAt{v3.24}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} \PName{key}s
+ \PValue{style}, \PValue{afterskip}, \PValue{beforeskip}, and \PValue{level}
+ are mandatory. The keys
+ \PValue{afterindent}\ChangedAt{v3.26}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}},\PValue{font} and \PValue{indent}
+ are recommended. \PValue{tocindent} and
+ \PValue{tocnumwidth} may also be required depending on the command's
+ \PName{name}. This also applies if a command that was not previously a
+ sectioning command is redefined as a sectioning command using
+ \Macro{RedeclareSectionCommand}. Note\textnote{Attention!} that the
+ \Macro{addsec} command and its starred variants are configured automatically
+ with \DescRef{maincls.cmd.section} and cannot be changed independently.
+\end{description}
+Defining a sectioning command also creates an element with the same
+\PName{name}, if it does not already exist. For \PValue{chapter} and
+\PValue{part}, elements are also created for the prefix line. You can change
+its font settings using \DescRef{maincls.cmd.setkomafont} or
+\DescRef{maincls.cmd.addtokomafont} (see \autoref{sec:maincls.textmarkup},
+\DescPageRef{maincls.cmd.setkomafont}).
+
+\begin{table}
+ \caption[{Style-independent attributes for declaring sectioning
+ commands}]{Available \PName{key}s and \PName{value}s for
+ style-independent \PName{attributes} when declaring sectioning command}%
+ \label{tab:maincls-experts.declaresection.keys}%
+ \begin{tabularx}{\linewidth}{llX}
+ \toprule
+ \PName{key} & \PName{value} & Description \\
+ \midrule%
+ \PValue{counterwithin}
+ & \PName{counter name}
+ & The value of the counter of the heading should depend on \PName{counter
+ name}. Whenever \Macro{stepcounter} or \Macro{refstepcounter} increases
+ the value of \PName{counter name}, the value of the counter of this
+ heading is reset to 0. In addition, \Macro{the\PName{counter name}} is
+ prefixed with a dot when this counter is output.\\
+ \ChangedAt{v3.19}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ \PValue{counterwithout}
+ & \PName{counter name}
+ & Cancels a prior \PValue{counterwithin} setting. Therefore it makes sense
+ only if you redefine an existing sectioning command.\\
+ \PValue{expandtopt}
+ & \PName{switch}
+ & If the switch is on, all subsequent values for lengths will be
+ completely expanded, evaluated, and stored as \texttt{pt} values when
+ they are defined. This means lengths no longer depend on the current
+ font size. If the switch is off, all subsequent values for lengths will
+ be tentatively expanded and evaluated but stored for full evaluation at
+ application time. You can use any values from
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}.
+ The default is \PValue{false}.\\
+ \PValue{level}
+ & \PName{integer}
+ & The numerical value of the sectioning level (see the
+ \DescRef{maincls.counter.secnumdepth} counter,
+ \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.counter.secnumdepth}); the value should be unique
+ and is mandatory for new levels.\\
+ \PValue{style}
+ & \PName{name}
+ & Defines the style of the heading.\\
+ \ChangedAt{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ \PValue{tocstyle}
+ & \PName{name}
+ & Defines the style of the entries in the table of contents. You can use
+ every previously defined TOC-entry style (see
+ \autoref{sec:tocbasic.tocstyle}). An empty \PName{name} prevents a new
+ definition of the TOC-entry command \Macro{l@\dots}.\\
+ \ChangedAt{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ \PValue{toc\PName{option}}
+ & \PName{value}
+ & Additional options depending on the TOC-entry style selected with
+ \Option{tocstyle}. See \autoref{sec:tocbasic.tocstyle},
+ \autopageref{sec:tocbasic.tocstyle} for additional information about
+ TOC-entry styles. You can find the attributes that can be used as
+ \PName{option}s for the predefined TOC-entry styles of the
+ \Package{tocbasic} package in
+ \autoref{tab:tocbasic.tocstyle.attributes},
+ \autopageref{tab:tocbasic.tocstyle.attributes}.\\
+ % \PValue{tocindent}
+ % & \PName{length}
+ % & Total indentation from the left margin of the entry in the table of
+ % contents corresponding to this heading, if and only if such an
+ % entry will be made (see \DescRef{maincls.counter.tocdepth},
+ % \autoref{sec:maincls.toc}, \DescPageRef{maincls.counter.tocdepth}).\\
+ % \PValue{toclevel}
+ % & \PName{integer}
+ % & A number denoting the depth of the entry in the table of contents
+ % corresponding to this heading, if this should differ from
+ % \PValue{level} (see \DescRef{maincls.counter.tocdepth},
+ % \autoref{sec:maincls.toc}, \DescPageRef{maincls.counter.tocdepth}). \\
+ % \PValue{tocnumwidth}
+ % & \PName{length}
+ % & Width of the box for the number of the entry in the table of
+ % contents.\\
+ \bottomrule
+ \end{tabularx}
+\end{table}
+
+\begin{table}
+ \caption[{Attributes of the \PValue{section} style when declaring a
+ sectioning command}]{Additional \PName{key}s and \PName{value}s for
+ attributes when declaring a sectioning command with the \PValue{section}
+ style}%
+ \label{tab:maincls-experts.declaresectionstyle.keys}%
+ \begin{tabularx}{\linewidth}{llX}
+ \toprule
+ \PName{key} & \PName{value} & Description \\
+ \midrule
+ \PValue{afterindent}%
+ \ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ & \PName{switch}
+ & The \PName{switch} determines whether the current paragraph indent is
+ applied to the first line following a freestanding heading (see
+ \PValue{runin}). With the default, \PValue{bysign}, the sign of
+ \PValue{beforeskip} determines the behaviour. If the value of
+ \PValue{beforeskip} is negative, the indentation of the first paragraph
+ following the heading is suppressed. You can use any value from
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} to
+ explicitly enable or disable this indentation.\\
+ \PValue{afterskip}
+ & \PName{length}
+ & In the case of a run-in heading (see \PValue{runin}), the absolute value
+ of the \PName{length} is the horizontal space after the heading. That is,
+ a positive distance is always inserted. In the case of a freestanding
+ heading, the \PName{length} is the vertical skip below the heading. With
+ \OptionValue{runin}{bysign}, a positive value results in a freestanding
+ heading, while a negative value or zero results in a run-in heading.\\
+ \PValue{beforeskip}
+ & \PName{length}
+ & Specifies the vertical space before the heading. With
+ \OptionValue{afterindent}{bysign}, if the value is negative, a positive
+ distance\,---\,the amount of \PName{length}\,---\,is still inserted, but
+ in this case the indentation of the paragraph following the heading is
+ suppressed.\\
+ \PValue{font}
+ & \PName{font commands}
+ & The font settings that should be used for the heading in addition to
+ \DescRef{maincls.fontelement.disposition}. You can use all settings that
+ are allowed for \DescRef{maincls.cmd.setkomafont} and
+ \DescRef{maincls.cmd.addtokomafont} for the element of the heading.\\
+ \PValue{indent}
+ & \PName{length}
+ & The indentation of heading from the left margin.\\
+ \PValue{runin}
+ \ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ & \PName{switch}
+ & Defines whether to use a run-in or a freestanding heading. With
+ the default, \PValue{bysign}, the sign of \PValue{afterskip} determines
+ the behaviour. In this case, a positive value of \PValue{afterskip}
+ results in a freestanding heading. You can use any values from
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} to
+ explicitly enable or disable a run-in heading.\\
+ \bottomrule
+ \end{tabularx}
+\end{table}
+
+\begin{table}
+ \caption[{Attributes of the \PValue{chapter} style when declaring a
+ sectioning command}]{Additional \PName{keys} and \PName{value}s for
+ attributes when declaring a sectioning command with the \PValue{chapter}
+ style}%
+ \label{tab:maincls-experts.declarechapterstyle.keys}%
+ \begin{tabularx}{\linewidth}{llX}
+ \toprule
+ \PName{key} & \PName{value} & Description \\
+ \midrule
+ \PValue{afterindent}%
+ \ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ & \PName{switch}
+ & The \PName{switch} determines whether to apply the indentation of the
+ first paragraph following a heading. With the default, \PValue{bysign},
+ the sign of \PValue{beforeskip} defines the behaviour. If the value of
+ \PValue{beforeskip} is negative, the indentation of the paragraph
+ following the heading is suppressed. You can use any value from
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} to
+ explicitly enable or disable this indentation.\\
+ \PValue{afterskip}%
+ \ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ & \PName{length}
+ & The vertical skip below the heading.\\
+ \PValue{beforeskip}
+ & \PName{length}
+ & The vertical skip before the heading. With
+ \OptionValue{afterindent}{bysign}, if the value is negative, a positive
+ distance\,---\,the amount of \PName{length}\,---\,is still inserted, but
+ in this case the indentation of the first paragraph following the heading
+ is suppressed.\\
+ \PValue{font} & \PName{font commands} & The font setting to use for the
+ heading in addition to \DescRef{maincls.fontelement.disposition}. You
+ can use all settings, that are allowed for
+ \DescRef{maincls.cmd.setkomafont} and
+ \DescRef{maincls.cmd.addtokomafont} for this element.\\
+ \PValue{innerskip} & \PName{length} & The vertical skip between the prefix
+ line and the heading's text, if a prefix line is used.\\
+ \PValue{pagestyle} & \PName{page style name} & The name of the page style
+ to use automatically for pages with the heading. There is no check to
+ see if the \PName{page style name} is valid. Therefore, incorrect names
+ will result in error messages when the sectioning command is used.\\
+ \PValue{prefixfont} & \PName{font commands} & The font setting to use
+ for the prefix line of the heading, in addition to the
+ \DescRef{maincls.fontelement.disposition} and sectioning command
+ elements. You can use all settings that are allowed for
+ \DescRef{maincls.cmd.setkomafont} and
+ \DescRef{maincls.cmd.addtokomafont} for the element of the prefix
+ line.\\
+ \bottomrule
+ \end{tabularx}
+\end{table}
+
+\begin{table}
+ \caption[{Attributes of the \PValue{part} style when declaring a sectioning
+ command}]{Additional \PName{keys} and \PName{value}s for attributes
+ when declaring a sectioning command with the \PValue{part} style}%
+ \label{tab:maincls-experts.declarepartstyle.keys}%
+ \begin{tabularx}{\linewidth}{llX}
+ \toprule
+ \PName{key} & \PName{value} & Description \\
+ \midrule
+ \PValue{afterindent}%
+ \ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ & \PName{switch}
+ & The \PName{switch} determines whether to apply the indentation of the
+ first paragraph following a heading. With the value \PValue{bysign},
+ the sign of \PValue{beforeskip} determines the behaviour. If the value
+ of \PValue{beforeskip} is negative, the indentation of the first
+ paragraph following the heading is suppressed. You can use any value
+ from \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} to
+ explicitly enable or disable this indentation. For compatibility,
+ the default is \PValue{false} for \Class{scrartcl} and \PValue{true} for
+ \Class{scrbook} and \Class{scrreprt}.\\
+ \PValue{afterskip} & \PName{length} & The value is the vertical skip below
+ the heading.\\
+ \PValue{beforeskip}
+ & \PName{length}
+ & The vertical skip before the heading. With
+ \OptionValue{afterindent}{bysign}, if the value is negative, a positive
+ distance\,---\,the amount of \PName{length}\,---\,is still inserted, but
+ in this case the indentation of the first paragraph following the heading
+ is suppressed.\\
+ \PValue{font} & \PName{font commands} & The font setting to use for the
+ heading in addition to \DescRef{maincls.fontelement.disposition}. You
+ can use all settings that are allowed for
+ \DescRef{maincls.cmd.setkomafont} and
+ \DescRef{maincls.cmd.addtokomafont} for the element of the heading.\\
+ \PValue{innerskip} & \PName{length} & % \OnlyAt{\Class{scrbook}\and
+ % \Class{scrreprt}}%
+ The vertical skip between the prefix line and the heading text in
+ \Class{scrbook} and \Class{scrreprt}.\\
+ \PValue{pagestyle} & \PName{page style name} &
+ % \OnlyAt{\Class{scrbook}\and
+ % \Class{scrreprt}}%
+ The name of the page style to use automatically on pages with the
+ heading. There is no check to see if \PName{page style name} is valid.
+ Therefore, incorrect names will result in error messages when the
+ sectioning command is used. This feature only exists in \Class{scrbook}
+ and\Class{scrreprt}.\\
+ \PValue{prefixfont} & \PName{font commands} & The font setting to use for
+ the prefix line of the heading, in addition to the
+ \DescRef{maincls.fontelement.disposition} and sectioning command
+ elements. You can use all settings that are allowed for
+ \DescRef{maincls.cmd.setkomafont} and
+ \DescRef{maincls.cmd.addtokomafont} for the element of the prefix
+ line.\\
+ \bottomrule
+ \end{tabularx}
+\end{table}
+
+\Macro{DeclareNewSectionCommand} defines a new sectioning command. If the
+same \PName{name} is already used by \TeX{} for something else, the command
+will result in an error message and will not define anything.
+
+\Macro{ProvideSectionSommand} behaves similarly but does not issue an error
+message.
+
+\Macro{RedeclareSectionCommand}, on the other hand, can only change an
+existing command to a sectioning command with the specified
+\PName{attributes}. It does not check whether \Macro{\PName{name}} is already
+a sectioning command. It only needs to be a \PName{name} already a \TeX
+command.
+
+\Macro{DeclareSectionCommand} does not check whether or not \PName{name} is
+an existing \TeX{} command name. It just defines a sectioning
+command \Macro{\PName{name}} with the specified \PName{attributes}.
+
+Each sectioning command also has a corresponding counter with the same
+\PName{name} that is allocated with \Macro{newcounter} if necessary. The same
+naming rule applies to the corresponding output of the counter
+(\Macro{the\PName{name}}), the counter's format (\Macro{\PName{name}format}),
+the command to generate a running head (\Macro{\PName{name}mark}), the format
+of the counter in the running head (\Macro{\PName{name}markformat}), the font
+element (\FontElement{\PName{name}}), and the section-depth number
+(\Macro{\PName{name}numdepth}). The command for the running head,
+\Macro{\PName{name}mark}, is defined by default not to generate a running
+head. The default output of the counter \Macro{the\PName{name}} is an Arabic
+number. If the counter is defined as depending on another counter with the
+\PValue{counterwithin} \PName{key}, the output of this counter will be
+prefixed by a dot.
+
+In\ChangedAt[2016/03]{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} addition to the sectioning command itself, a command for
+corresponding entries to the table of contents is also defined. This is done
+using the \hyperref[cha:tocbasic]{\Package{tocbasic}}%
+\important{\hyperref[cha:tocbasic]{\Package{tocbasic}}}\IndexPackage{tocbasic}
+package. The \PName{tocstyle} attribute defines the style of those entries. If
+you set an empty \PName{name}, e.\,g. using \OptionValue{tocstyle}{} or
+\OptionValue{tocstyle}{\{\}}, the command for the TOC entry will not be
+changed. This is important, for example, if you use another package to modify
+the table of contents. If you do not set the \PValue{tocstyle} attribute, the
+previous style will be used again during the redefinition.
+
+The\ChangedAt[2016/03]{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} different TOC-entry styles also have different additional
+attributes. You can set them directly if you prefix them with \PValue{toc}.
+For example, you can set the level of the TOC entries, \PValue{level}, using
+\PValue{toclevel}, the indention, \PValue{indent}, using \PValue{tocindent},
+or the number width, \PValue{numwidth}, using \PValue{tocnumwidth}. For more
+TOC-entry style attributes see \autoref{sec:tocbasic.tocstyle},
+\autopageref{sec:tocbasic.tocstyle}.
+
+\begin{Example}
+ For some unknown reason, you want to redefine the
+ \DescRef{maincls.cmd.paragraph} headings so that they are no longer run-in
+ headings but are similar to \DescRef{maincls.cmd.subsubsection}. The
+ vertical skip above the heading should be 10\Unit{pt} and no additional
+ vertical skip below the heading. To do so, you can use:
+\begin{lstcode}
+ \RedeclareSectionCommand[%
+ beforeskip=-10pt,%
+ afterskip=1sp%
+ ]{paragraph}
+\end{lstcode}
+ The negative value of \PValue{beforeskip} creates a positive vertical skip
+ before the heading and simultaneously disables the paragraph indentation of
+ the following text. Even though the specification did not want any vertical
+ skip after the heading, a value of 1\Unit{sp} has been given here. This is
+ because \LaTeX{} doesn't recognize 0\Unit{pt} as positive value. So
+ 1\Unit{sp} is the smallest possible positive value.
+
+ Generally, it is better to have some tolerance for adjusting the vertical
+ spacing, the so-called \emph{glue}:
+\begin{lstcode}
+ \RedeclareSectionCommand[%
+ beforeskip=-10pt plus -2pt minus -1pt,%
+ afterskip=1sp plus -1sp minus 1sp%
+ ]{paragraph}
+\end{lstcode}
+ Note that the glue also switches the algebraic sign before becoming a skip,
+ if the value is negative. That is the reason for the negative glue values in
+ the example. Additionally we used the occasion to minimize the vertical skip
+ after the heading using glue too.
+\end{Example}
+
+In the example above, we only needed to define the keys \PValue{beforeskip}
+and \PValue{afterskip} because since v3.15 \KOMAScript{} has defined
+\DescRef{maincls.cmd.paragraph} internally using
+\Macro{DeclareSectionCommand}, and therefore the other settings can be adopted
+unchanged. The original definition of \DescRef{maincls.cmd.paragraph} in
+\Class{scrartcl} reads:
+\begin{lstcode}
+ \DeclareSectionCommand[%
+ level=4,
+ indent=0pt,
+ beforeskip=3.25ex plus 1ex minus .2ex,
+ afterskip=-1em,
+ font={},
+ tocindent=7em,
+ tocnumwidth=4.1em,
+ counterwithin=subsubsection
+ ]{paragraph}
+\end{lstcode}
+\Class{scrreprt} and \Class{scrbook} use slightly different values.
+
+Some settings of \DescRef{maincls.cmd.chapter} depend on the
+\DescRef{maincls.option.headings} option (see \autoref{sec:maincls.structure},
+\DescPageRef{maincls.option.headings}).
+\hyperref[tab:maincls.chapter.skips]{Table~\ref*{tab:maincls.chapter.skips}}
+shows the default values of these settings. An overview of all settings is
+shown in \autoref{tab:maincls.section.defaults}. For more
+information\ChangedAt[2016/03]{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
+\Class{scrartcl}} about the default of the TOC-entry styles see
+\autoref{sec:tocbasic.tocstyle}\important{\Package{tocbasic}},
+\autopageref{sec:tocbasic.tocstyle}. Note that \PValue{1ex} and
+\Length{baselineskip} depend on the default font size of the heading or the
+table of contents entry.%
+
+\begin{table}
+ \centering
+ \caption{Defaults for the chapter headings of \Class{scrbook}
+ and \Class{scrreprt} depending on the \DescRef{maincls.option.headings}
+ option}
+ \label{tab:maincls.chapter.skips}
+ \begin{tabular}{ll}
+ \multicolumn{2}{@{}l}{\bfseries
+ With \OptionValueRef{maincls}{headings}{big}:}\\
+ \toprule
+ Attribute & Default Value \\
+ \midrule
+ \PValue{afterskip}
+ & \PValue{1.725\Length{baselineskip} plus .115\Length{baselineskip}
+ minus .192\Length{baselineskip}} \\
+ \PValue{beforeskip}
+ & \PValue{-3.3\Length{baselineskip}-\Length{parskip}} \\
+ \PValue{font} & \Macro{huge} \\
+ \bottomrule\\
+ \multicolumn{2}{@{}l}{\bfseries
+ With \OptionValueRef{maincls}{headings}{normal}:}\\
+ \toprule
+ Attribute & Default Value \\
+ \midrule
+ \PValue{afterskip}
+ & \PValue{1.5\Length{baselineskip} plus .1\Length{baselineskip}
+ minus .167\Length{baselineskip}} \\
+ \PValue{beforeskip}
+ & \PValue{-3\Length{baselineskip}-\Length{parskip}} \\
+ \PValue{font} & \Macro{LARGE} \\
+ \bottomrule\\
+ \multicolumn{2}{@{}l}{\bfseries
+ With \OptionValueRef{maincls}{headings}{small}:}\\
+ \toprule
+ Attribute & Default Value \\
+ \midrule
+ \PValue{afterskip}
+ & \PValue{1.35\Length{baselineskip} plus .09\Length{baselineskip}
+ minus .15\Length{baselineskip}} \\
+ \PValue{beforeskip}
+ & \PValue{-2.8\Length{baselineskip}-\Length{parskip}} \\
+ \PValue{font} & \Macro{Large} \\
+ \bottomrule
+ \end{tabular}
+\end{table}
+
+%begin{table}
+% \centering
+ \begin{longtable}{@{}p{\columnwidth}@{}}
+ \caption{Defaults for the headings of \Class{scrbook} and
+ \Class{scrreprt}}%
+ \label{tab:maincls.section.defaults}\\
+ \endfirsthead
+ \caption[]{Default for the headings of \Class{scrbook} and
+ \Class{scrreprt} \emph{(continued)}}\\
+ \addlinespace[-\normalbaselineskip]
+ \endhead
+ \raggedleft\dots\\
+ \endfoot
+ \endlastfoot
+ \DescRef{maincls.cmd.part}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Attribute & Default Value \\
+ \midrule
+ \PValue{afterskip} & \PValue{0pt plus 1fil} \\
+ \PValue{beforeskip} & \PValue{0pt plus 1fil + \Length{baselineskip}} \\
+ \PValue{font} & see element \DescRef{maincls.fontelement.part},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{innerskip} & \PValue{20pt} \\
+ \PValue{level} & -1 \\
+ \PValue{prefixfont} & see element
+ \DescRef{maincls.fontelement.partnumber},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{tocindent} & \PValue{0pt} \\
+ \PValue{toclevel} & -1 \\
+ \PValue{tocnumwidth} & \PValue{2em} \\
+ \PValue{tocstyle} & \PValue{part} \\
+ \bottomrule
+ \end{tabularx} \\
+ \addlinespace[\normalbaselineskip]
+ \DescRef{maincls.cmd.chapter}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Attribute & Default Value \\
+ \midrule
+ \PValue{afterskip} & see \autoref{tab:maincls.chapter.skips} \\
+ \PValue{beforeskip} & see \autoref{tab:maincls.chapter.skips} \\
+ \PValue{font} & see element \DescRef{maincls.fontelement.chapter},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{innerskip} & \PValue{0.5\Length{baselineskip}} \\
+ \PValue{level} & 0 \\
+ \PValue{prefixfont} & see element
+ \DescRef{maincls.fontelement.chapterprefix},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{tocindent} & \PValue{0pt} \\
+ \PValue{toclevel} & 0 \\
+ \PValue{tocnumwidth} & \PValue{1.5em} \\
+ \PValue{tocstyle} & \PValue{chapter} \\
+ \bottomrule
+ \end{tabularx} \\
+ \addlinespace[\normalbaselineskip]
+ \DescRef{maincls.cmd.section}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Attribute & Default Value \\
+ \midrule
+ \PValue{afterskip} & \PValue{2.3ex plus .2ex} \\
+ \PValue{beforeskip} & \PValue{-3.5ex plus -1ex minus -.2ex} \\
+ \PValue{font} & see element \DescRef{maincls.fontelement.section},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{indent} & \PValue{0pt} \\
+ \PValue{level} & 1 \\
+ \PValue{tocindent} & \PValue{1.5em}\\
+ \PValue{toclevel} & 1 \\
+ \PValue{tocnumwidth} & \PValue{2.3em}\\
+ \PValue{tocstyle} & \PValue{section} \\
+ \bottomrule
+ \end{tabularx} \\
+ \addlinespace[\normalbaselineskip]
+ \DescRef{maincls.cmd.subsection}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Attribute & Default Value \\
+ \midrule\nopagebreak
+ \PValue{afterskip} & \PValue{1.5ex plus .2ex} \\
+ \PValue{beforeskip} & \PValue{-3.25ex plus -1ex minus -.2ex} \\
+ \PValue{font} & see element
+ \DescRef{maincls.fontelement.subsection},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{indent} & \PValue{0pt} \\
+ \PValue{level} & 2 \\
+ \PValue{tocindent} & \PValue{3.8em}\\
+ \PValue{toclevel} & 2 \\
+ \PValue{tocnumwidth} & \PValue{3.2em}\\
+ \PValue{tocstyle} & \PValue{section} \\
+ \bottomrule
+ \end{tabularx} \\
+ \addlinespace[\normalbaselineskip]
+ \DescRef{maincls.cmd.subsubsection}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Attribute & Default Value \\
+ \midrule\nopagebreak
+ \PValue{afterskip} & \PValue{1.5ex plus .2ex} \\
+ \PValue{beforeskip} & \PValue{-3.25ex plus -1ex minus -.2ex} \\
+ \PValue{font} & see element
+ \DescRef{maincls.fontelement.subsubsection},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{indent} & \PValue{0pt} \\
+ \PValue{level} & 3 \\
+ \PValue{tocindent} & \PValue{7.0em}\\
+ \PValue{tocnumwidth} & \PValue{4.1em}\\
+ \PValue{toclevel} & 3 \\
+ \PValue{tocstyle} & \PValue{section} \\
+ \bottomrule
+ \end{tabularx} \\
+ \addlinespace[\normalbaselineskip]
+ \DescRef{maincls.cmd.paragraph}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Attribute & Default Value \\
+ \midrule\nopagebreak
+ \PValue{afterskip} & \PValue{-1em} \\
+ \PValue{beforeskip} & \PValue{3.25ex plus 1ex minus .2ex} \\
+ \PValue{font} & see element \DescRef{maincls.fontelement.paragraph},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{indent} & \PValue{0pt} \\
+ \PValue{level} & 4 \\
+ \PValue{tocindent} & \PValue{10em}\\
+ \PValue{toclevel} & 4 \\
+ \PValue{tocnumwidth} & \PValue{5em}\\
+ \PValue{tocstyle} & \PValue{section} \\
+ \bottomrule
+ \end{tabularx} \\
+ \addlinespace[\normalbaselineskip]
+ \DescRef{maincls.cmd.subparagraph}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Attribute & Default Value \\
+ \midrule\nopagebreak
+ \PValue{afterskip} & \PValue{-1em} \\
+ \PValue{beforeskip} & \PValue{3.25ex plus 1ex minus .2ex} \\
+ \PValue{font} & see element
+ \DescRef{maincls.fontelement.subparagraph},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{indent} & \Macro{scr@parindent} \\
+ \PValue{level} & 5 \\
+ \PValue{tocindent} & \PValue{12em}\\
+ \PValue{toclevel} & 5 \\
+ \PValue{tocnumwidth} & \PValue{6em}\\
+ \PValue{tocstyle} & \PValue{section} \\
+ \bottomrule
+ \end{tabularx}
+ \end{longtable}
+%end{table}
+Incidentally, the internal macro \Macro{scr@parindent} used in the settings
+for \DescRef{maincls.cmd.subparagraph} is the paragraph indent set by the
+\DescRef{maincls.option.parskip} option or the
+\DescRef{maincls-experts.cmd.setparsizes} command.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DeclareSectionCommands}\OParameter{attributes}
+ \Parameter{list of names}%
+ \Macro{DeclareNewSectionCommands}\OParameter{attributes}
+ \Parameter{list of names}%
+ \Macro{RedeclareSectionCommands}\OParameter{attributes}
+ \Parameter{list of names}%
+ \Macro{ProvideSectionCommands}\OParameter{attributes}
+ \Parameter{list of names}
+\end{Declaration}
+These\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} commands can define or change a whole series of
+sectioning commands at once. The names of the sectioning commands are given by
+the comma-separated \PName{list of names}.
+
+These commands differ in two other ways from the previously described commands
+that only define or change a single sectioning command. First, in case of
+error\,---\,that is if a command already exists with
+\Macro{DeclareNewSectionCommands} or is undefined with
+\Macro{RedeclareSectionCommands}\,---\,the definition will be performed
+regardless. An appropriate an error message will, of course, be reported
+anyway.
+
+Second, there is another attribute,
+\important{\PValue{increaselevel}}\OptionVName{increaselevel}{integer}. This
+attribute changes the meaning of the attributes \PValue{level} and
+\PValue{toclevel} (see \autoref{tab:maincls-experts.declaresection.keys}) so
+that their values become starting values for the first sectioning command of
+the \PName{list of names}. For all other sectioning command in the \PName{list
+of names}, the values of \PValue{level} and \PValue{toclevel} are successively
+increased by the value of \PValue{increaselevel}. If the
+\PValue{increaselevel} attribute is used without assigning a value, 1 is
+assumed.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{chapterheadstartvskip}
+ \Macro{chapterheadmidvskip}
+ \Macro{chapterheadendvskip}
+ \Macro{partheadstartvskip}
+ \Macro{partheadmidvskip}
+ \Macro{partheadendvskip}
+ \Macro{partheademptypage}
+\end{Declaration}
+These\important[i]{\DescRef{maincls.cmd.chapter}\\
+ \DescRef{maincls.cmd.part}\\
+ \DescRef{maincls.cmd.addchap}\\
+ \DescRef{maincls.cmd.addpart}\\
+ \DescRef{maincls.cmd.chapter*}\\
+ \DescRef{maincls.cmd.part*}\\
+ \DescRef{maincls.cmd.addchap*}\\
+ \DescRef{maincls.cmd.addpart*}} commands are used inside the headings of the
+previously described \PValue{chapter} and \PValue{part} styles and thus for
+the definitions of \DescRef{maincls.cmd.chapter}\IndexCmd{chapter},
+\DescRef{maincls.cmd.part}\IndexCmd{part},
+\DescRef{maincls.cmd.addchap}\IndexCmd{addchap}, and
+\DescRef{maincls.cmd.addpart}\IndexCmd{addpart}, as well as their starred
+variants \DescRef{maincls.cmd.chapter*}\IndexCmd{chapter*},
+\DescRef{maincls.cmd.part*}\IndexCmd{part*},
+\DescRef{maincls.cmd.addchap*}\IndexCmd{addchap*}, and
+\DescRef{maincls.cmd.addpart*}\IndexCmd{addpart*}.
+The \Macro{chapterheadstartvskip} command is intended to insert a
+vertical skip before the chapter heading. Similarly,
+\Macro{chapterheadendvskip} is a command intended to insert a vertical
+skip after the chapter heading. If\ChangedAt{v3.15}{\Class{scrbook}\and
+ \Class{scrreprt}} the chapter heading has a prefix number line (see option
+\DescRef{maincls.option.chapterprefix} in \autoref{sec:maincls.structure},
+\DescPageRef{maincls.option.chapterprefix}), \Macro{chapterheadmidvskip}
+is also used between the number line and the heading text.
+
+The \Macro{partheadstartvskip} and \Macro{partheadendvskip} commands insert
+vertical skips above and below part headings. A page break is interpreted as
+part of the vertical distance. Such a page break is part of the default
+definitions of \Macro{partheadendvskip} in
+\Class{scrbook}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} and
+\Class{scrreprt}. The
+\Macro{partheademptypage}\ChangedAt{v3.02}{\Class{scrbook}\and
+\Class{scrreprt}} command produces an empty page after the part heading page
+of \Class{scrbook} and \Class{scrreprt}.
+
+Starting with \KOMAScript~3.15\ChangedAt{v3.15}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}, the defaults of these seven commands
+are independent from the \DescRef{maincls.option.headings} option (see
+\autoref{sec:maincls.structure},
+\DescPageRef{maincls.option.headings}). The default definitions for the
+chapter headings starting with
+\KOMAScript~3.17\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} correspond to:\IndexLength{@tempskipa}
+\begin{lstcode}
+ \newcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}
+ \newcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}
+ \newcommand*{\chapterheadendvskip}{\vskip\@tempskipa}
+\end{lstcode}
+These defaults are reactivated every time you use
+\OptionValueRef{maincls}{headings}{big}\IndexOption{headings},
+\OptionValueRef{maincls}{headings}{normal}, or
+\OptionValueRef{maincls}{headings}{small}. As a side effect, these options may
+affect not only chapter titles but all headings in the \PValue{chapter} style
+
+The \PValue{chapter} style automatically sets the internal length
+\Length{@tempskipa} to the value that results from the
+\DescRef{\LabelBase.cmd.DeclareSectionCommand}\IndexCmd{DeclareSectionCommand}
+attribute \PValue{beforeskip} before calling \Macro{chapterheadstartvskip}.
+Similarly, it sets this length to the value of the \PValue{afterskip}
+attribute before calling \Macro{chapterheadendvskip}, and to
+\PValue{innerskip} before calling \Macro{chapterheadmidvskip}.
+
+The default values of the distances of \DescRef{maincls.cmd.part} do not
+depend on the \DescRef{maincls.option.headings} option. So the corresponding
+commands will not be redefined by this option.
+Their\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
+\Class{scrartcl}} default definitions in \Class{scrbook} and \Class{scrreprt}
+correspond to:
+\begin{lstcode}
+ \newcommand*{\partheadstartvskip}{%
+ \null\vskip-\baselineskip\vskip\@tempskipa
+ }
+ \newcommand*{\partheadmidvskip}{%
+ \par\nobreak
+ \vskip\@tempskipa
+ }
+ \newcommand*{\partheadendvskip}{%
+ \vskip\@tempskipa\newpage
+ }
+\end{lstcode}
+and of \Class{scrartcl}:
+\begin{lstcode}
+ \newcommand*{\partheadstartvskip}{%
+ \addvspace{\@tempskipa}%
+ }
+ \newcommand*{\partheadmidvskip}{%
+ \par\nobreak
+ }
+ \newcommand*{\partheadendvskip}{%
+ \vskip\@tempskipa
+ }
+\end{lstcode}
+The \PValue{part} style once again sets the internal length
+\Length{@tempskipa}\IndexLength{@tempskipa} according to the settings of
+\DescRef{\LabelBase.cmd.DeclareSectionCommand}\IndexCmd{DeclareSectionCommand}
+before using the commands.
+
+If you redefine one of the commands used for the vertical skip in the original
+\Length{@tempskipa} but still want to be able to configure the lengths, for
+example with \DescRef{\LabelBase.cmd.RedeclareSectionCommand}, you should also
+use \Length{@tempskipa} in the new definition.
+Since\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} you can more easily configure the distances above, within,
+and below the headings using \DescRef{\LabelBase.cmd.RedeclareSectionCommand},
+you generally should not redefine the commands described here. Changing them
+should be reserved for more complex changes that cannot be accomplished with
+\DescRef{\LabelBase.cmd.RedeclareSectionCommand}. An\textnote{Example!}
+example that redefines \Macro{chapterheadstartvskip} and
+\Macro{chapterheadendvskip} to print extra rules above and below the chapter
+heading can be found at \cite{homepage} (in German).%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{partlineswithprefixformat}%
+ \Parameter{level}\Parameter{number}\Parameter{text}%
+\end{Declaration}
+This\ChangedAt{v3.25}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} command is used by headings with the \PValue{part} style to
+output the heading number and heading text. The \PName{number} and
+\PName{text} arguments are already formatted, including the font
+selections. Ultimately, this command controls the arrangement of the two parts
+of the heading. For unnumbered headings, \PName{number} is a completely empty
+argument, so it does not contain any formatting commands.
+
+The default definition is rather Spartan:
+\begin{lstcode}
+ \newcommand{\partlineswithprefixformat}[3]{%
+ #2#3%
+ }
+\end{lstcode}
+
+\begin{Example}
+ You want to have part headings in a light blue box with blue frame. The
+ box should occupy only about three quarters of full width of the text
+ area. So you try:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage{xcolor}
+ \renewcommand*{\partlineswithprefixformat}[3]{%
+ \fcolorbox{blue}{blue!25}{%
+ \parbox{.75\linewidth}{#2#3}%
+ }%
+ }
+ \begin{document}
+ \part{Framed Part}
+ \end{document}
+\end{lstcode}
+ But surprisingly the heading is not longer centred\,---\,neither the box
+ itself nor the text inside the box.
+
+ The reason for the missing centring of the box is that the end of the
+ paragraph is hidden in the third argument of the command. So it still
+ finishes the paragraph of the text inside the box but not the paragraph of
+ the \Macro{parbox} itself. To solve this you add a \Macro{par} at the end of
+ the definition.
+
+ The reason for the missing centring inside the box is that the alignment of
+ \DescRef{maincls.cmd.raggedpart} is valid outside the box but not
+ automatically inside a \Macro{parbox}. To solve this you add
+ \Macro{raggedpart} inside the box.
+
+ With
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage{xcolor}
+ \renewcommand*{\partlineswithprefixformat}[3]{%
+ \fcolorbox{blue}{blue!25}{%
+ \parbox{.75\linewidth}{\raggedpart #2#3}%
+ }%
+ }
+ \par
+ \begin{document}
+ \part{Framed Part}
+ \end{document}
+\end{lstcode}
+ you get the expected result.
+\end{Example}
+
+As the example shows, users who redefine this command must watch out for
+several side effects. In addition to preserving the text alignment, they also
+must prevent page breaks within the headings, for example if they insert extra
+paragraphs or space. The example above does not have this problem. Not only
+does the box prevent a page breaks anyway, but \KOMAScript{} itself also
+changes \Macro{interlinepenalty} as part of \PName{text} so to prevent page
+breaks there. It also finishes \PName{text} with an internal paragraph break
+using \Macro{@@par}.
+
+The default definition of \Macro{partlineswithprefixformat} does not use the
+first argument, \PName{level}, nor is it needed in the example above. It is of
+interest only if you want to define several commands with the \PValue{part}
+style and need to distinguish the different levels. The predefined commands
+\DescRef{maincls.cmd.part}, \DescRef{maincls.cmd.part*},
+\DescRef{maincls.cmd.addpart}, and \DescRef{maincls.cmd.addpart*} all share
+the same \PName{level} \PName{part}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{chapterlineswithprefixformat}%
+ \Parameter{level}\Parameter{number}\Parameter{text}%
+ \Macro{chapterlinesformat}%
+ \Parameter{level}\Parameter{number}\Parameter{text}
+\end{Declaration}
+These\ChangedAt{v3.19}{\Class{scrbook}\and \Class{scrreprt}} commands are used
+by headings with the \PValue{chapter} style to output the heading number and
+heading text, depending on the
+\DescRef{maincls.option.chapterprefix}\IndexOption{chapterprefix}%
+\textnote{\DescRef{maincls.option.chapterprefix}} option (see
+\autoref{sec:maincls.structure},
+\DescPageRef{maincls.option.chapterprefix}). If the option is \PValue{true},
+\Macro{chapterlineswithprefixformat} is used. Otherwise
+\Macro{chapterlinesformat} determines the ouput.
+
+The \PName{number} and \PName{text} arguments are already formatted, including
+the font selections. Ultimately, these commands thus control the arrangement
+of the two parts of the heading. For unnumbered headings, the \PName{number}
+argument is completely empty, so it does not contain any formatting commands.
+
+The\textnote{default} defaults for these commands are:
+\begin{lstcode}
+ \newcommand{\chapterlinesformat}[3]{%
+ \@hangfrom{#2}{#3}%
+ }
+ \newcommand{\chapterlineswithprefixformat}[3]{%
+ #2#3%
+ }
+\end{lstcode}
+
+\begin{Example}
+ You want to have chapter headings with yellow background. For the headings
+ without a prefix line, you use the following definition in the document
+ preamble:
+\begin{lstcode}
+ \makeatletter
+ \renewcommand{\chapterlinesformat}[3]{%
+ \colorbox{yellow}{%
+ \parbox{\dimexpr\linewidth-2\fboxrule-2\fboxsep}{%
+ \@hangfrom{#2}#3%
+ }%
+ }%
+ }
+ \makeatother
+\end{lstcode}
+ For chapter headings with prefix line, you use:
+\begin{lstcode}
+ \renewcommand{\chapterlineswithprefixformat}[3]{%
+ \colorbox{yellow}{%
+ \parbox{\dimexpr\linewidth-2\fboxrule-2\fboxsep}{%
+ #2#3%
+ }%
+ }%
+ }
+\end{lstcode}
+ Unfortunately, you discover that these redefinitions result in justified
+ text for the headings. The reason is the \Macro{parbox} command. To change
+ this, you can use the \DescRef{maincls.cmd.raggedchapter} command (see
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.cmd.raggedchapter})
+ inside the argument of \Macro{parbox}. Otherwise \Macro{raggedchapter} would
+ be used only before \Macro{chapterlineswithprefixformat} and
+ \Macro{chapterlinesformat}:
+\begin{lstcode}
+ \makeatletter
+ \renewcommand{\chapterlinesformat}[3]{%
+ \colorbox{yellow}{%
+ \parbox{\dimexpr\linewidth-2\fboxrule-2\fboxsep}{%
+ \raggedchapter
+ \@hangfrom{#2}#3%
+ }%
+ }%
+ }
+ \makeatother
+ \renewcommand{\chapterlineswithprefixformat}[3]{%
+ \colorbox{yellow}{%
+ \parbox{\dimexpr\linewidth-2\fboxrule-2\fboxsep}{%
+ \raggedchapter
+ #2#3%
+ }%
+ }%
+ }
+\end{lstcode}
+ Remember to use \Macro{makeatletter} and \Macro{makeatother} only in the
+ document preamble. Do not use it inside your own wrapper class or package.
+ They are only needed here because of \Macro{@hangfrom} in the definition of
+ \Macro{chapterlinesformat}.
+\end{Example}
+
+As the example shows, users who redefine this command must watch out for
+several side effects. In addition to preserving the text alignment, they also
+must prevent page breaks within the headings, for example if they insert extra
+paragraphs or space. The example above does not have this problem. Not only
+does the box prevent a page breaks anyway, but \KOMAScript{} itself also
+changes \Macro{interlinepenalty} as part of \PName{text} so to prevent page
+breaks there. It also finishes \PName{text} with an internal paragraph break
+using \Macro{@@par}.
+
+Incidentally, the \DescRef{maincls.cmd.raggedchapter} command is not part of
+\PName{text}, as otherwise using \Macro{MakeUppercase} inside redefined
+versions of these two commands would be much more difficult. Note, however,
+that typographic rules require individual adjustments of letter spacing in
+capitalised text. However the \LaTeX{} \Macro{MakeUppercase} command does not
+do this.
+
+The default definitions do not use the first argument, \PName{level}, nor is
+it needed in the example above. It is of interest only if you want to define
+several commands with the \PValue{chapter} style and need to distinguish the
+different levels. The predefined commands \DescRef{maincls.cmd.chapter},
+\DescRef{maincls.cmd.chapter*}, \DescRef{maincls.cmd.addchap}, and
+\DescRef{maincls.cmd.addchap*} all share the same \PName{level}
+\PName{chapter}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{sectionlinesformat}%
+ \Parameter{level}\Parameter{indent}\Parameter{number}\Parameter{text}%
+ \Macro{sectioncatchphraseformat}%
+ \Parameter{level}\Parameter{indent}\Parameter{number}\Parameter{text}%
+\end{Declaration}
+These\ChangedAt{v3.19}{\Class{scrbook}\and \Class{scrreprt}\and
+\Class{scrartcl}} commands are used by headings with the \PValue{section}
+style depending on whether the reading is run-in or on its own line.
+Free-standing headings use \Macro{sectionlinesformat} for their output, while
+run-in headings use \Macro{sectioncatchphraseformat}.
+
+In both cases \PName{indent} is the value of the horizontal indention of the
+heading relative to the text area. If the value is negative, the heading can
+protrude into the left margin.
+
+The arguments \PName{number} and \PName{text} are already formatted, including
+the font settings. Ultimately, these commands thus control the arrangement of
+the two parts of the heading. For unnumbered headings, the \PName{number}
+argument is completely empty, so it does not contain any formatting commands.
+
+The default definitions are:
+\begin{lstcode}
+\newcommand{\sectionlinesformat}[4]{%
+ \@hangfrom{\hskip #2#3}{#4}%
+}
+\newcommand{\sectioncatchphraseformat}[4]{%
+ \hskip #2#3#4%
+}
+\end{lstcode}
+
+If you redefine one of these commands, you are responsible for preventing page
+breaks inside heading. \KOMAScript{} itself only changes
+\Macro{interlinepenalty} to impede page breaks.
+
+\begin{Example}
+ As in the previous example with chapter headings, the free-standing headings
+ of the \PValue{section} \PName{level} should now be printed with a
+ background colour. Headings of lower levels should not be changed:
+\begin{lstcode}
+ \makeatletter
+ \renewcommand{\sectionlinesformat}[4]{%
+ \@tempswafalse
+ \ifstr{#1}{section}{%
+ \hspace*{#2}%
+ \colorbox{yellow}{%
+ \parbox{\dimexpr\linewidth-2\fboxrule-2\fboxsep-#2}{%
+ \raggedsection
+ \@hangfrom{#3}{#4}%
+ }%
+ }%
+ }{%
+ \@hangfrom{\hskip #2#3}{#4}%
+ }%
+ }
+ \makeatother
+\end{lstcode}
+ With this code, area of the indention is not coloured if the heading is
+ indented. If, however, the heading is placed in the left margin with
+ negative indention, this area of the margin is also highlighted. You can
+ move the \Macro{hspace*} command into the \Macro{colorbox} to change this
+ behaviour.
+
+ Again, remember to use \Macro{makeatletter} and \Macro{makeatother} only in
+ the document preamble. You should omit them inside your own wrapper class or
+ package. They are only needed because of \Macro{@hangfrom} in the definition
+ of \Macro{sectionlinesformat}.
+\end{Example}
+
+The first argument, \PName{level}, is not used by the default definition. The
+example shows how to use it to distinguish different heading levels of the
+same style \PValue{section}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{SecDef}\Parameter{star command}\Parameter{command}%
+ \Macro{scr@startsection}\Parameter{name}\Parameter{level}\Parameter{indent}%
+ \Parameter{beforeskip}\Parameter{afterskip}%
+ \Parameter{style commands}%
+ \OParameter{short version}\Parameter{heading}%
+ \labelsuffix[*]%
+ \Macro{scr@startsection}\Parameter{name}\Parameter{level}\Parameter{indent}%
+ \Parameter{beforeskip}\Parameter{afterskip}%
+ \Parameter{style commands}%
+ \PValue{*}\Parameter{heading}%
+ \labelsuffix%
+ \Macro{At@startsection}\Parameter{code}%
+ \Macro{Before@ssect}\Parameter{code}%
+ \Macro{Before@sect}\Parameter{code}
+\end{Declaration}
+As\ChangedAt[2014/09]{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+\Class{scrartcl}} already explained in \autoref{sec:maincls.structure} in the
+description of the sectioning commands beginning with
+\DescPageRef{maincls.cmd.chapter}, \KOMAScript{} provides additional features
+for the optional argument of those commands. To achieve this, it was necessary
+to replace some \LaTeX{} kernel commands, especially
+\Macro{secdef}\IndexCmd{secdef}\important{\Macro{secdef}} and
+\Macro{@startsection}\IndexCmd{@startsection}%
+\important{\Macro{@startsection}}. The meaning of the parameters of these
+commands can be found in the \LaTeX{} kernel manual \cite{latex:source2e}.
+
+However, these commands are often completely redefined by other packages in a
+way that clashes with the functionality of \KOMAScript. So \KOMAScript{} not
+only changes the definition of these commands but also defines the additional,
+alternative commands \Macro{SecDef} and \Macro{scr@startsection}. Package
+authors can use these commands as they would use the corresponding \LaTeX{}
+kernel commands and therefore gain access to the additional features of
+\KOMAScript. However, these commands should not be redefined, as they may
+changed at any time, and then this redefinition could compromise
+\KOMAScript{}'s functionality.
+
+\KOMAScript{} itself uses \Macro{SecDef} and \Macro{scr@startsection} instead
+of \Macro{secdef} and \Macro{@startsection}, for example to define sectioning
+commands with \DescRef{\LabelBase.cmd.DeclareSectionCommand}. So later
+redefinitions of \Macro{secdef} or \Macro{@startsection} will not influence
+the sectioning commands of \KOMAScript.
+
+As an alternative to redefining such commands, \KOMAScript{} offers the
+possibility to add additional \PName{code} at several points in
+\KOMAScript{}'s own replacements. The \PName{code} of all calls to
+\Macro{At@startsection}\important{\Macro{At@startsection}\\
+ \Macro{Before@sect}\\
+ \Macro{Before@sect}}, \Macro{Before@sect} and \Macro{Before@sect} is
+collected separately for each command. There is no provision for removing
+\PName{code} once it has been inserted.
+
+The \PName{code} of the \Macro{At@startsection}%
+ \important{\Macro{At@startsection}\\
+ \Macro{scr@startsection}} macro is used in the \Macro{scr@startsection}
+command immediately after evaluating \PName{beforeskip} and calculating the
+resulting \Length{@tempskipa} but before adding the vertical skip itself. So
+you can still change the value of \Length{@tempskipa}.
+
+The \PName{code} of \Macro{Before@sect} or \Macro{Before@ssect} is executed
+within \Macro{scr@startsection} just before calling \Macro{@sect} or
+\Macro{@ssect}, respectively. At this point, the vertical skip of
+\Length{@tempskipa} has already been added using \Macro{addvspace}.
+
+These three commands, \Macro{At@startsection}, \Macro{Before@sect}, and
+\Macro{Before@ssect}, are designed as an interface for package authors and
+released for them to use.%
+%
+\EndIndexGroup
+
+% \subsection{Appendix}
+% \seclabel{appendix}
+
+
+\begin{Declaration}
+ \Macro{appendixmore}
+\end{Declaration}%
+The \KOMAScript{} classes have an unusual feature within the
+\DescRef{maincls.cmd.appendix} command. If the \Macro{appendixmore} command
+is defined, \DescRef{maincls.cmd.appendix} will also execute this
+it. Internally, the \KOMAScript{} classes
+\Class{scrbook}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} and
+\Class{scrreprt} take advantage of this behaviour to implement the
+\DescRef{maincls.option.appendixprefix} layout option (see
+\autoref{sec:maincls.structure},
+\DescPageRef{maincls.option.appendixprefix}). You\textnote{Attention!} should
+take note of this in case you decide to define or redefine the
+\Macro{appendixmore} macro. If this option has been used, you will receive an
+error message when using \verb|\newcommand{\appendixmore}{|\dots\verb|}|. This
+behaviour is intended to prevent you from overriding the options without
+realising it.
+
+\begin{Example}
+ You do not want the chapters in the main part of the classes \Class{scrbook}
+ or \Class{scrreprt} to be introduced by a prefix line (see the
+ \DescRef{maincls.option.chapterprefix} layout option in
+ \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.option.chapterprefix}). For consistency, you also do
+ not want such a line in the appendix either. Instead, you would like to see
+ the word ``Chapter'' in the language of your choice written in front of the
+ chapter letter and, simultaneously, in the page headings. Instead of using
+ the \DescRef{maincls.option.appendixprefix} layout option, you define the
+ following in the document preamble:
+%
+\begin{lstcode}
+ \newcommand*{\appendixmore}{%
+ \renewcommand*{\chapterformat}{%
+ \appendixname~\thechapter\autodot\enskip}
+ \renewcommand*{\chaptermarkformat}{%
+ \appendixname~\thechapter\autodot\enskip}
+ }
+\end{lstcode}
+%
+ In case you subsequently change your mind and decide to use the option
+ \DescRef{maincls.option.appendixprefix} at a later stage, you will get an
+ error message because of the already defined \Macro{appendixmore} command.
+ This behaviour prevents the definition made above from invisibly changing
+ the settings intended with the option.
+
+ It is also possible to get a similar behaviour for the appendix of the class
+ \Class{scrartcl}. For example, you can write in the preamble of your
+ document:
+\begin{lstcode}[moretexcs={ifthenelse,equal}]
+ \newcommand*{\appendixmore}{%
+ \renewcommand*{\sectionformat}{%
+ \appendixname~\thesection\autodot\enskip}%
+ \renewcommand*{\sectionmarkformat}{%
+ \appendixname~\thesection\autodot\enskip}}
+\end{lstcode}
+
+ The redefined commands are explained in more detail in
+ \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.cmd.chapterformat} and
+ \DescPageRef{maincls.cmd.chaptermarkformat}.
+\end{Example}
+%
+\EndIndexGroup
+
+
+% \subsection{Literaturverzeichnis}
+% \seclabel{bibliography}
+
+\begin{Declaration}
+ \Macro{newbibstyle}\OParameter{parent style}\Parameter{name}%^^A
+ \Parameter{commands}%
+ \Macro{newblock}%
+ \Macro{@openbib@code}%
+ \Macro{bib@beginhook}%
+ \Macro{bib@endhook}
+\end{Declaration}
+The standard classes\textnote{standard classes} already provide the
+\Macro{newblock} command to structure bibliography entries. The exact purpose
+of this command depends on the class options. Using option
+\Option{openbib}\important{\Option{openbib}} redefines the commands
+\Macro{@openbib@code} and \Macro{newblock} itself at the end of the standard
+class. The standard classes execute the \Macro{@openbib@code} command when
+starting the bibliography list, or more precisely, when defining the
+parameters for the list. You can assume that many packages which redefine the
+bibliography will execute this command.
+
+The \KOMAScript{} classes\textnote{\KOMAScript} do something similar. However,
+they do not redefine \Macro{@openbib@code} at the end of the class. Instead,
+\Macro{newbibstyle} defines the \PValue{openstyle} bibliography style. The
+\PName{commands} given in the implementation contain the appropriate
+redefinition of \Macro{@openbib@code} and \Macro{newblock}. If you select this
+bibliography style using the
+\OptionValueRef{maincls}{bibliography}{openstyle}%
+\IndexOption{bibliography~=\PValue{openstyle}}%
+\important{\OptionValueRef{maincls}{bibliography}{openstyle}} option, the
+\PName{commands} will be executed immediately. This will redefine
+\Macro{@openbib@code} and \Macro{newblock}.
+
+In addition to \Macro{@openbib@code} and \Macro{newblock},
+\Macro{bib@beginhook} and \Macro{bib@endhook} can also be redefined by the
+\PName{commands} of the style. The \Macro{bib@beginhook} command is executed
+immediately after the heading and preamble of the bibliography but before the
+beginning of the list of bibliographic entries. The \Macro{bib@endhook}
+command will be executed immediately after this list, at the end of the
+bibliography. If \DescRef{maincls.cmd.BreakBibliography} (see
+\autoref{sec:maincls.bibliography},
+\DescPageRef{maincls.cmd.BreakBibliography}) is used to interrupt the
+bibliography, these commands will also executed at the beginning and end of
+each part of the bibliography, immediately before and after
+\DescRef{maincls.cmd.BreakBibliography}.
+
+The \Macro{newblock}, \Macro{@openbib@code}, \Macro{bib@beginhook}, and
+\Macro{bib@endhook} commands are initially defined to be empty when using a
+new bibliography style. After this, the \PName{commands} of the \PName{parent
+style} that was optionally specified when defining the style will be executed,
+followed by the \PName{commands} for the bibliography style itself. As a
+result, these commands must be defined, if necessary, with
+\Macro{renewcommand}\IndexCmd{renewcommand}\important{\Macro{renewcommand}},
+not \Macro{newcommand}, inside the \PName{instructions} argument.
+
+If you use the
+\DescRef{maincls.cmd.AtEndBibliography}\IndexCmd{AtEndBibliography} and
+\DescRef{maincls.cmd.AfterBibliographyPreamble}%
+\IndexCmd{AfterBibliographyPreamble} commands to declare additional
+\PName{commands} to be executed after the preamble or at the end of the
+bibliography, the \PName{commands} specified with
+\DescRef{maincls.cmd.AfterBibliographyPreamble} will only be executed once, at
+the beginning of the bibliography after the \Macro{bib@beginhook}
+\PName{commands}, and the \PName{commands} of
+\DescRef{maincls.cmd.AtEndBibliography} will be executed only once at the end
+of the bibliography, before \Macro{bib@endhook}.
+
+For\textnote{Example!} example, the
+\Package{multicol}\IndexPackage{multicol}\important{\Package{multicol}}
+package (see \cite{package:multicol}) could be used to define a bibliography
+style for printing the bibliography with two columns:
+% Umbruchkorrektur: listings korrigiert
+\begin{lstcode}
+ \newbibstyle{twocolumstyle}{%
+ \renewcommand*{\bib@beginhook}{\begin{multicols}{2}}%
+ \renewcommand*{\bib@endhook}{\end{multicols}}}%
+\end{lstcode}
+If you also want to define an open variation of this style, you can use
+the possibilities of inheritance here and specify a \PName{parent style}:
+% Umbruchkorrektur: listings korrigiert
+\begin{lstcode}
+ \newbibstyle{twocolumopenstyle}[openstyle]{%
+ \renewcommand*{\bib@beginhook}{\begin{multicols}{2}}%
+ \renewcommand*{\bib@endhook}{\end{multicols}}}%
+\end{lstcode}
+You can then select these newly defined styles with the
+\DescRef{maincls.option.bibliography} option as usual.
+
+Like\textnote{Achtung!} \DescRef{maincls.cmd.BreakBibliography}, these
+commands lose all or part of their effect when \Environment{thebibliography}
+is redefined, for example by using
+\Package{biblatex}\IndexPackage{biblatex}\important{\Package{biblatex}}.%
+\EndIndexGroup
+
+
+\section{More or Less Obsolete Options and Commands}
+\seclabel{obsolete}
+
+\LoadNonFree{scrbookreportarticle-experts}{4}
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% ispell-local-dictionary: "english"
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
+
+% LocalWords: Amongst legitimation
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrbookreportarticle.tex b/macros/latex/contrib/koma-script/source-doc/english/scrbookreportarticle.tex
new file mode 100644
index 0000000000..b20b18726b
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrbookreportarticle.tex
@@ -0,0 +1,4662 @@
+% ======================================================================
+% scrbookreportarticle.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrbookreportarticle.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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 scrbook, scrreprt, and scrartcl of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber scrbook, scrreprt und scrartcl in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrbookreportarticle.tex}
+ [$Date: 2019-01-14 14:29:39 +0100 (Mon, 14 Jan 2019) $
+ KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl)]
+
+\translator{Jens-Uwe Morawski\and Gernot Hassenpflug\and Markus Kohm\and
+ Krickette Murabayashi\and Jana Schubert\and Jens H\"uhne\and Karl Hagen}
+
+% Date of the translated German file: 2019-01-14
+
+\chapter{The Main Classes: \Class{scrbook}, \Class{scrreprt}, and
+ \Class{scrartcl}}
+\labelbase{maincls}%
+\BeginIndexGroup
+\BeginIndex{Class}{scrbook}%
+\BeginIndex{Class}{scrreprt}%
+\BeginIndex{Class}{scrartcl}%
+
+\AddSeeIndex{instruction}{gen}{\GuidecmdIndexShort}{cmd}%
+\AddSeeIndex{macro}{gen}{\GuidecmdIndexShort}{cmd}%
+The main classes of the {\KOMAScript} bundle are designed as counterparts to
+the standard {\LaTeX} classes. This means that the {\KOMAScript} bundle
+contains replacements for the three standard classes,
+\Class{book}\IndexClass{book}, \Class{report}\IndexClass{report}, and
+\Class{article}\IndexClass{article}. There is also a replacement for the
+standard \Class{letter}\IndexClass{letter} class. The document class for
+letters is described in a separate chapter because it is fundamentally
+different from the three main classes (see \autoref{cha:scrlttr2}).
+
+The simplest way to use a {\KOMAScript} class instead of a standard one is to
+substitute the class name in the \verb|\documentclass| command in accordance
+with \autoref{tab:\LabelBase.overview}. For example, you can replace
+\Macro{documentclass}\PParameter{book} with
+\Macro{documentclass}\PParameter{scrbook}. Normally, {\LaTeX} should process
+the document without errors, just as before the substitution. The layout,
+however, should be different. Additionally, the {\KOMAScript} classes provide
+new possibilities and options that are described in the following sections.
+
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}
+ [Class correspondence]{\label{tab:\LabelBase.overview}Correspondence between
+ standard classes and {\KOMAScript} classes}
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ standard class & \KOMAScript{} class \\%& \Script-Stil (\LaTeX2.09)\\
+ \midrule
+ \Class{article} & \Class{scrartcl} \\%& \File{script\textunderscore s} \\
+ \Class{report} & \Class{scrreprt} \\%& \File{script} \\
+ \Class{book} & \Class{scrbook} \\%& \File{script} \\
+ \Class{letter} & \Class{scrlttr2} \\%& \File{script\textunderscore l} \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+Let me say something before describing the classes. When beginning to write a
+document, you are often unsure which specific options to choose. Some
+settings, for instance the choice of paper size, may be fixed in advance. But
+even the question of the appropriate page layout could be difficult to answer
+initially. On the other hand, these settings should be nearly irrelevant, in
+the beginning, to the main business of an author: planning the document
+structure, writing the text, preparing figures, tables, lists, index, and
+other data. As an author, you should concentrate initially on the content.
+When that is done, you can take on the fine points of presentation. In
+addition to the choice of options, this includes correcting hyphenation,
+optimizing page breaks, and placing tables and figures.
+
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\LoadCommonFile{options}% \section{Early or Late Selection of Options}
+
+\LoadCommonFile{compatibility}% \section{Compatibility with Earlier Versions of KOMA-Script}
+
+\LoadCommonFile{draftmode}% \section{Draft Mode}
+
+\LoadCommonFile{typearea}% \section{Page Layout}
+
+\begin{Declaration}
+ \Macro{flushbottom}
+ \Macro{raggedbottom}
+\end{Declaration}
+\begin{Explain}
+ In two-sided documents especially, it is preferable to have the same visual
+ baseline not only for the first lines of each text area in a two-page spread
+ but also for the last lines. If a page consists only of text without
+ paragraphs or headings, this is generally the result. But a paragraph
+ spacing of half a line would be enough to prevent you from achieving this
+ goal if the number of paragraphs on each page of the two-page spread differs
+ by an odd number. In this case, at least some of the paragraph distances
+ need to be stretched or shrunk to reach the target again. \TeX{} defines
+ stretchable and shrinkable distances for this purpose, and \LaTeX{} lets you
+ perform this kind of \emph{vertical adjustment}\Index{adjustment}
+ automatically.
+\end{Explain}
+
+Using two-sided printing with the
+\Option{twoside}\IndexOption{twoside}\important{\Option{twoside}} option (see
+\autoref{sec:typearea.options}, \DescPageRef{typearea.option.twoside}) or
+two-column formatting with the
+\Option{twocolumn}\IndexOption{twocolumn}\important{\Option{twocolumn}} option
+(see \DescPageRef{typearea.option.twocolumn}) also activates this vertical
+adjustment. But\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} this does not apply with a compatibility setting for a
+\KOMAScript{} version prior to 3.17 (see
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}, option
+\DescRef{\LabelBase.option.version}\IndexOption{version}%
+\important{\OptionValueRef{\LabelBase}{version}{3.17}}) if you use
+\DescRef{\LabelBase.cmd.KOMAoption} or \DescRef{\LabelBase.cmd.KOMAoptions} to
+change the setting of these options.
+
+You can also explicitly request vertical adjustment at any time starting with
+the current page by using \Macro{flushbottom}. \Macro{raggedbottom} has the
+opposite effect, switching off vertical adjustment starting with the current
+page. This corresponds to the default for one-sided printing.
+
+By the way, \KOMAScript{} uses a slightly modified method for adjusting the
+vertical skip. This has been done to move footnotes to the bottom of the
+text area instead of having them close to the last text line used.
+\iffree{}{
+ You can find more information about this at
+ \autoref{sec:maincls-experts.addInfos},
+ \DescPageRef{maincls-experts.cmd.footnoterule}.}%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{fontsize}% \section{Choosing the Document Font Size}
+
+\LoadCommonFile{textmarkup}% \section{Text Markup}
+
+\LoadCommonFile{titles}% \section{Document Titles}
+
+\section{Abstract}
+\seclabel{abstract}
+\BeginIndexGroup
+\BeginIndex{}{abstract}%
+
+Particularly with articles, more rarely with reports, there is an abstract, or
+summary, directly beneath the title and before the table of contents. When
+using an in-page title, this abstract is normally a kind of left- and
+right-indented block. In comparison, the abstract appears as a chapter or
+section when using title pages.
+
+\begin{Declaration}
+ \OptionVName{abstract}{simple switch}
+\end{Declaration}%
+In\OnlyAt{\Class{scrreprt}\and\Class{scrartcl}} the standard
+classes\textnote{\KOMAScript{} vs. standard classes}, the
+\DescRef{\LabelBase.env.abstract} environment sets the text ``\abstractname''
+centred before the abstract text. This used to be the normal practice. Since
+then, reading newspapers has trained us to recognize a suitably highlighted
+text at the beginning of an article or report as the abstract. This is even
+more true when the text comes before the table of contents. It is also
+confusing if, of all things, this title appears small and centred.
+{\KOMAScript}\ChangedAt{v3.00}{\Class{scrreprt}\and \Class{scrartcl}} offers
+the option to include or exclude the abstract's title with the
+\Option{abstract} option. For \PName{simple switch}, you can use any value
+from \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}. The
+default for \KOMAScript{} is \PValue{false}.
+
+Books typically use a different kind of summary. There, you usually place an
+appropriate chapter at the beginning or the end of the work. This chapter is
+often combined with either the introduction or a description of a larger
+prospectus. Therefore, the \Class{scrbook} class has no
+\DescRef{\LabelBase.env.abstract} environment. A\textnote{Hint!} summary
+chapter is also recommended for reports in a wider sense, such as a Master's
+thesis or Ph.D. dissertation. See the commands
+\DescRef{\LabelBase.cmd.chapter*}\IndexCmd{chapter*},
+\DescRef{\LabelBase.cmd.addchap}\IndexCmd{addchap}, and
+\DescRef{\LabelBase.cmd.addchap*}\IndexCmd{addchap*} documented in
+\autoref{sec:maincls.structure}, from \DescPageRef{\LabelBase.cmd.chapter*}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \begin{Environment}{abstract}\end{Environment}
+\end{Declaration}%
+\OnlyAt{\Class{scrartcl}\and \Class{scrreprt}}%
+Some {\LaTeX} classes provide a special environment for this summary: the
+\Environment{abstract} environment. This is output directly, so it is not part
+of the title created with \DescRef{\LabelBase.cmd.maketitle}.
+Please\textnote{Attention!} note that \Environment{abstract} is an
+environment, not a command. Whether the abstract has a heading or not is
+determined by the \DescRef{\LabelBase.option.abstract} option (see above).
+
+For books, the abstract is usually part of the introduction or a separate
+chapter at the end of the document. Therefore \Class{scrbook} does not provide
+an \Environment{abstract} environment. When using the \Class{scrreprt} class,
+it is definitely worth considering whether to proceed in the same way. See the
+commands \DescRef{\LabelBase.cmd.chapter*}\IndexCmd{chapter*} and
+\DescRef{\LabelBase.cmd.addchap}\IndexCmd{addchap}, or
+\DescRef{\LabelBase.cmd.addchap*} in \autoref{sec:\LabelBase.structure}
+from \DescPageRef{\LabelBase.cmd.chapter*} for more on this.
+
+When using an in-page title\Index{title>in-page} (see option
+\DescRef{\LabelBase.option.titlepage}, \autoref{sec:\LabelBase.titlepage},
+\DescPageRef{\LabelBase.option.titlepage}), the abstract is set internally
+using the \DescRef{\LabelBase.env.quotation}\IndexEnv{quotation} environment
+(see \autoref{sec:\LabelBase.lists}, \DescPageRef{\LabelBase.env.quotation}).
+This way paragraphs will be set with the first line indented. If the first
+paragraph of the abstract should not be indented, you can suppress this indent
+by using \Macro{noindent}\IndexCmd{noindent}%
+\important{\Macro{noindent}} \iffree{just after
+ \Macro{begin}\PParameter{abstract}}{at the beginning of the environment}.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Table of Contents}
+\seclabel{toc}
+\BeginIndexGroup
+\BeginIndex{}{table of contents}
+
+The title and optional abstract are normally followed by a table of contents.
+Often you also find additional lists of the floating environments, such as
+tables and figures, after the table of contents (see
+\autoref{sec:\LabelBase.floats}).
+
+\iffalse%
+ Note that in addition to the options documented in this section, the
+ commands \DescRef{maincls-experts.cmd.DeclareSectionCommand},
+ \DescRef{maincls-experts.cmd.DeclareNewSectionCommand},
+ \DescRef{maincls-experts.cmd.RedeclareSectionCommand}, and
+ \DescRef{maincls-experts.cmd.ProvideSectionCommand} can also affect the
+ table of contents. See \autoref{sec:maincls-experts.experts},
+ \DescPageRef{maincls-experts.cmd.DeclareSectionCommand}.%
+\else%
+ In addition to the options documented in this section, the
+ \hyperref[cha:tocbasic]{\Package{tocbasic}}%
+ \important{\hyperref[cha:tocbasic]{\Package{tocbasic}}}%
+ \IndexPackage{tocbasic} package style selected and configured with
+ \DescRef{tocbasic.cmd.DeclareTOCStyleEntry}\IndexCmd{DeclareTOCStyleEntry}%
+ \important[O]{\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}} (see
+ \DescPageRef{tocbasic.cmd.DeclareTOCStyleEntry}) also has a significant
+ impact on the appearance of the table of contents. Similarly, the commands
+ \DescRef{maincls-experts.cmd.DeclareSectionCommand}%
+ \important[O]{\DescRef{maincls-experts.cmd.DeclareSectionCommand}}%
+ \IndexCmd{DeclareSectionCommand},
+ \DescRef{maincls-experts.cmd.ProvideSectionCommand}%
+ \IndexCmd{ProvideSectionCommand},
+ \DescRef{maincls-experts.cmd.DeclareNewSectionCommand}%
+ \IndexCmd{DeclareNewSectionCommand} and
+ \DescRef{maincls-experts.cmd.RedeclareSectionCommand}%
+ \IndexCmd{RedeclareSectionCommand} documented in
+ \autoref{sec:maincls-experts.experts},
+ \DescPageRef{maincls-experts.cmd.DeclareSectionCommand} can also affect the
+ table of contents.%
+\fi
+
+
+\begin{Declaration}
+ \OptionVName{toc}{setting}
+\end{Declaration}
+It is becoming increasingly common to to include lists of tables and figures,
+the bibliography, and sometimes even the index in the table of contents. This
+is surely related to the recent trend of putting lists of figures and tables
+at the end of the document. Both lists are similar to the table of contents in
+structure and intention. I'm therefore sceptical of this evolution.
+Since\important{\OptionValue{toc}{listof}} it makes no sense to include only
+the list of tables or that of figures in the table of contents without the
+other, there is only one \PName{setting}\ChangedAt{v3.00}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}
+\PValue{listof}\IndexOption{toc~=\textKValue{listof}}, which causes entries
+for both types of lists to be included. This also includes any lists produced
+with version~1.2e or later of the \Package{float} package\IndexPackage{float}
+from Version~1.2e (see \cite{package:float}) or \Package{floatrow} (see
+\cite{package:floatrow}). None\important{\OptionValue{toc}{listofnumbered}}
+of these lists are generally given a chapter number. If you want to ignore
+this principle, use the \PName{setting}
+\PValue{listofnumbered}\IndexOption{toc~=\textKValue{listofnumbered}}.
+
+\leavevmode\LabelOptionValue{toc}{index}\nobreak
+The\important{\OptionValue{toc}{index}}
+\OptionValue{toc}{index}\IndexOption{toc~=\textKValue{index}} option causes an
+entry for the index to be included in the table of contents. The index is
+unnumbered since it too only includes references to the contents of the other
+sectioning levels. Despite\ChangedAt{v3.18}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}
+\important{\OptionValue{toc}{indexnumbered}} the author's concerns,
+\KOMAScript{} does support deviating from this principle with
+\OptionValue{toc}{indexnumbered}\IndexOption{toc~=\textKValue{indexnumbered}}.
+
+\leavevmode\LabelOptionValue{toc}{bibliography}\nobreak The bibliography is a
+slightly different kind of listing. It does not list the contents of the
+present document but refers instead to external sources.
+For\important{\OptionValue{toc}{bibliographynumbered}} that reason, it could
+be argued that it qualifies as a chapter (or section) and, as such, should be
+numbered. The \OptionValue{toc}{bibliographynumbered}%
+\IndexOption{toc~=\textKValue{bibliographynumbered}} option has this effect,
+and puts the appropriate entry in the table of contents. However, I think that
+this reasoning would lead us to consider even a classic, annotated source list
+to be a separate chapter. Moreover, the bibliography is ultimately not
+something that you wrote yourself.
+Therefore\important{\OptionValue{toc}{bibliography}} the bibliography merits,
+at best, an unnumbered entry in the table of contents, and you can achieve
+this achieved with
+\OptionValue{toc}{bibliography}\IndexOption{toc~=\textKValue{bibliography}}.
+
+\leavevmode\LabelOptionValue{toc}{graduated}\nobreak
+The table of contents is normally\ChangedAt{v2.8q}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+\important{\OptionValue{toc}{graduated}} formatted so that different levels of
+sectioning commands have different indentations. The number for each level is
+set left-justified in a fixed-width field. This default set-up is selected
+with the\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}
+\OptionValue{toc}{graduated}\IndexOption{toc~=\textKValue{graduated}} option.
+
+\leavevmode\LabelOptionValue{toc}{flat}\nobreak
+If the sectioning level which appears in the table of contents is too deep, the
+number for that level can be so wide that the space reserved for the number is
+insufficient. The German FAQ \cite{DANTE:FAQ} suggests redefining the table of
+contents in such a case. \KOMAScript{}\important{\OptionValue{toc}{flat}}
+offers an alternative format that avoids the problem completely. If you use
+the \OptionValue{toc}{flat}\IndexOption{toc~=\textKValue{flat}} option, no
+graduated indentation is applied to the headings of the sectioning levels.
+Instead, a table-like organisation is used, where all sectioning numbers and
+headings are set in a left-justified column. The space necessary for the
+section numbers is thus determined automatically.
+
+You can find an overview of all available values for the \PName{setting} of
+\Option{toc}. in \autoref{tab:\LabelBase.toc}.
+
+\begin{desclist}
+ \desccaption[{Available values for the \Option{toc} option}]{%
+ Available values for the \Option{toc} option to set the format and contents
+ of the table of contents\label{tab:\LabelBase.toc}%
+ }{%
+ Available values for the \Option{toc} option (\emph{continued})%
+ }%
+ \entry{\PValue{bibliography}, \PValue{bib}}{%
+ The bibliography has an unnumbered entry in the table of contents.%
+ \IndexOption{toc~=\textKValue{bibliography}}}%
+ \entry{\PValue{bibliographynumbered}, \PValue{bibnumbered},
+ \PValue{numberedbibliography}, \PValue{numberedbib}}{%
+ The bibliography has a numbered entry in the table of contents.%
+ \IndexOption{toc~=\textKValue{bibliographynumbered}}}%
+ \entry{\PValue{chapterentrywithdots}, \PValue{chapterentrydotfill}}{%
+ \ChangedAt[2014/12]{v3.15}{\Class{scrbook}\and \Class{scrreprt}}%
+ The chapter entries for the \Class{scrbook} and \Class{scrreprt} classes
+ also use dots to separate the heading text from the page numbers.%
+ \IndexOption{toc~=\textKValue{chapterentrywithdots}}}%
+ \entry{\PValue{chapterentrywithoutdots}, \PValue{chapterentryfill}}{%
+ \ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}}%
+ The chapter entries of the \Class{scrbook} and \Class{scrreprt} classes
+ use white space to separate the heading text from the page numbers. This
+ corresponds to the default setting.%
+ \IndexOption{toc~=\textKValue{chapterentrywithoutdots}}}%
+ \entry{\PValue{flat}, \PValue{left}}{%
+ The table of contents is set in table form. The numbers of the headings
+ are in the first column, the heading text in the second column, and the
+ page number in the third column. The amount of space needed for the
+ numbers of the headings is determined by the required amount of space
+ detected during the previous \LaTeX{} run.%
+ \IndexOption{toc~=\textKValue{flat}}}%
+ \entry{\PValue{graduated}, \PValue{indent}, \PValue{indented}}{%
+ The table of contents is set in hierarchical form. The amount of space for
+ the heading numbers is limited. This corresponds to the default setting.%
+ \IndexOption{toc~=\textKValue{graduated}}}%
+ \entry{\PValue{indenttextentries}, \PValue{indentunnumbered},
+ \PValue{numberline}}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ The \PValue{numberline} property (see \autoref{sec:tocbasic.toc},
+ \DescPageRef{tocbasic.cmd.setuptoc}) is set for the table of contents. As
+ a result, unnumbered entries are left aligned with the text of numbered
+ entries of the same level.%
+ \IndexOption{toc~=\textKValue{numberline}}}%
+ \entry{\PValue{index}, \PValue{idx}}{%
+ The index has an unnumbered entry in the table of contents.%
+ \IndexOption{toc~=\textKValue{index}}}%
+ \entry{\PValue{indexnumbered}}{%
+ \ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ The index has a numbered entry in the table of contents.%
+ \IndexOption{toc~=\textKValue{index}}}%
+ \entry{\PValue{leftaligntextentries}, \PValue{leftalignunnumbered},
+ \PValue{nonumberline}}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ The \PValue{numberline} property (see \autoref{sec:tocbasic.toc},
+ \DescPageRef{tocbasic.cmd.setuptoc}) is deleted for the table of contents.
+ This places unnumbered entries left-aligned with the number of
+ numbered entries of the same level. This corresponds to the default
+ setting.%
+ \IndexOption{toc~=\textKValue{numberline}}}%
+ \pventry{listof}{%
+ The lists of floating environments, e.\,g. figures and tables, have
+ unnumbered entries in the table of contents.%
+ \IndexOption{toc~=\textKValue{listof}}}%
+ \entry{\PValue{listofnumbered}, \PValue{numberedlistof}}{%
+ The lists of floating environments, e.\,g. figures and tables, have
+ numbered entries in the table of contents.%
+ \IndexOption{toc~=\textKValue{listofnumbered}}}%
+ \entry{\PValue{nobibliography}, \PValue{nobib}}{%
+ The bibliography does not have an entry in the table of contents. This
+ corresponds to the default setting.%
+ \IndexOption{toc~=\textKValue{nobibliography}}}%
+ \entry{\PValue{noindex}, \PValue{noidx}}{%
+ The index does not have an entry in the table of contents. This
+ corresponds to the default setting.%
+ \IndexOption{toc~=\textKValue{noindex}}}%
+ \pventry{nolistof}{%
+ The lists of floating environments, e.\,g. figures and tables, do not
+ have entries in the table of contents. This corresponds to the default
+ setting.%
+ \IndexOption{toc~=\textKValue{nolistof}}}%
+ \entry{\PValue{sectionentrywithdots}, \PValue{sectionentrydotfill}}{%
+ \ChangedAt[2014/12]{v3.15}{\Class{scrartcl}}%
+ The section entries of the \Class{scrartcl} class also use dots to
+ separate the heading text from the page numbers.%
+ \IndexOption{toc~=\textKValue{sectionentrywithdots}}}%
+ \entry{\PValue{sectionentrywithoutdots}, \PValue{sectionentryfill}}{%
+ \ChangedAt{v3.15}{\Class{scrartcl}}%
+ The section entries of the \Class{scrartcl} class use white space to
+ separate the heading text from the page number. This corresponds to the
+ default setting.%
+ \IndexOption{toc~=\textKValue{sectionentrywithoutdots}}}%
+\end{desclist}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{chapterentrydots}{simple switch}\\
+ \OptionVName{sectionentrydots}{simple switch}
+\end{Declaration}
+These\ChangedAt[2014/12]{v3.15}{\Class{scrbook}\and \Class{scrreprt}} options
+configure a dotted connecting line between the text and page number of the
+chapter entries for the \Class{scrbook} and
+\Class{scrreprt}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} classes, or for
+the section entries of the \Class{scrartcl}\OnlyAt{\Class{scrartcl}} class, in
+the table of contents. For the \PName{simple switch}, you can use any value from
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}.
+The default is \PValue{false}. It selects an empty gap instead of dots.
+
+\BeginIndex{FontElement}{chapterentrydots}\LabelFontElement{chapterentrydots}%
+\BeginIndex{FontElement}{sectionentrydots}\LabelFontElement{sectionentrydots}%
+If a dotted line is used, you can change its font using the element
+\FontElement{chapterentrydots}%
+\important[i]{\FontElement{chapterentrydots}\\
+ \FontElement{sectionentrydots}} or \FontElement{sectionentrydots}. The font
+also depends on the element of the page number of the entry (see also
+\DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont}, \autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}, as well as
+\autoref{tab:maincls.fontelements},
+\autopageref{tab:maincls.fontelements}). The defaults of the elements are
+shown in \autoref{tab:maincls.tocelements}, from
+\autopageref{tab:maincls.tocelements}. Note\textnote{Attention!} that the dots
+of all entries will be equally spaced only if all dots use the same font.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tableofcontents}
+\end{Declaration}%
+The table of contents is output by the \Macro{tableofcontents} command. To get
+correct values in the table of contents requires at least two {\LaTeX} runs
+after every change. The \DescRef{\LabelBase.option.toc} option described above
+can also affect the extent and format of the table of contents. After changing
+the settings of this option, at least two \LaTeX{} runs are needed again.
+
+Entries for \DescRef{\LabelBase.cmd.chapter}\IndexCmd{chapter} with
+\Class{scrbook}\IndexClass{scrbook} and \Class{scrreprt}\IndexClass{scrreprt},
+or \DescRef{\LabelBase.cmd.section}\IndexCmd{section} with
+\Class{scrartcl}\IndexClass{scrartcl}, and the sectioning level
+\DescRef{\LabelBase.cmd.part}\IndexCmd{part} are not indented. Additionally,
+there are no dots between the text of this heading and the page number. The
+typographical logic for this behaviour is that the font is usually distinct
+and appropriate emphasis is desirable.
+However\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}, you can change this behaviour with the previously
+documented options. The table of contents of this \iffree{guide}{book} is
+created with the default settings and serves as an example.
+
+\BeginIndex{FontElement}{partentry}\LabelFontElement{partentry}%
+\BeginIndex{FontElement}{chapterentry}\LabelFontElement{chapterentry}%
+\BeginIndex{FontElement}{sectionentry}\LabelFontElement{sectionentry}%
+The\ChangedAt{v2.97c}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}\important{\FontElement{partentry}\\
+ \FontElement{chapterentry}\\
+ \FontElement{sectionentry}} font style of the top two levels in the table of
+contents is also affected by the settings for the \FontElement{partentry}
+element, as well as by the \FontElement{chapterentry} element for the
+\Class{scrbook} and \Class{scrreprt} classes, and by the
+\FontElement{sectionentry} element for the \Class{scrartcl} class.
+\BeginIndex{FontElement}{partentrypagenumber}%
+\LabelFontElement{partentrypagenumber}%
+\LabelFontElement{pagination}%
+\BeginIndex{FontElement}{chapterentrypagenumber}%
+\LabelFontElement{chapterentrypagenumber}%
+\BeginIndex{FontElement}{sectionentrypagenumber}%
+\LabelFontElement{sectionentrypagenumber}%
+You can set the font style of the page numbers separately from these elements
+using \FontElement{partentrypagenumber}%
+\important{\FontElement{partentrypagenumber}} and
+\FontElement{chapterentrypagenumber}%
+\important{\FontElement{chapterentrypagenumber}\\
+ \FontElement{sectionentrypagenumber}}\,---\,for \Class{scrbook} and
+\Class{scrreprt}\,---\,or \FontElement{sectionentrypagenumber}\,---\,for
+\Class{scrartcl}\,---\, (see \DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} in \autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}, or
+\autoref{tab:maincls.fontelements}, \autopageref{tab:maincls.fontelements}).
+If\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} you use dotted lines connecting the heading entries
+(chapter or section depending on the class) to the page numbers using the
+\DescRef{\LabelBase.option.toc}%
+\IndexOption{toc~=\textKValue{chapterentrywithdots}}%
+\IndexOption{toc~=\textKValue{sectionentrywithdots}}
+\DescRef{\LabelBase.option.chapterentrydots}%
+\IndexOption{chapterentrydots~=\PName{simple switch}} or
+\DescRef{\LabelBase.option.sectionentrydots}%
+\IndexOption{sectionentrydots~=\PName{simple switch}} option, you can change
+their font style using the \DescRef{\LabelBase.fontelement.chapterentrydots}%
+\IndexFontElement{chapterentrydots}%
+\important{\DescRef{\LabelBase.fontelement.chapterentrydots}\\
+ \DescRef{\LabelBase.fontelement.sectionentrydots}} and
+\DescRef{\LabelBase.fontelement.sectionentrydots}%
+\IndexFontElement{sectionentrydots} elements. The defaults for these
+elements are found in \autoref{tab:maincls.tocelements}.
+\begin{table}
+% \centering
+% \caption
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [Default font styles for the elements of the table of contents]
+ {\label{tab:maincls.tocelements}%
+ Default font styles for the elements of the table of contents}
+ [l]
+ \setlength{\tabcolsep}{.9\tabcolsep}% Umbruchoptimierung!
+ \begin{tabular}[t]{ll}
+ \toprule
+ Element & Default font style \\
+ \midrule
+ \FontElement{partentry} &
+ \DescRef{\LabelBase.cmd.usekomafont}\PParameter{disposition}\Macro{large} \\
+ \FontElement{partentrypagenumber} & \\
+ \FontElement{chapterentry} & \DescRef{\LabelBase.cmd.usekomafont}\PParameter{disposition}\\
+ \FontElement{chapterentrydots} & \Macro{normalfont} \\
+ \FontElement{chapterentrypagenumber} & \\
+ \FontElement{sectionentry} & \DescRef{\LabelBase.cmd.usekomafont}\PParameter{disposition} \\
+ \FontElement{sectionentrydots} & \Macro{normalfont} \\
+ \FontElement{sectionentrypagenumber} & \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Counter{tocdepth}
+ \Macro{parttocdepth}
+ \Macro{sectiontocdepth}
+ \Macro{subsectiontocdepth}
+ \Macro{subsubsectiontocdepth}
+ \Macro{paragraphtocdepth}
+ \Macro{subparagraphtocdepth}
+\end{Declaration}%
+Normally, the sectioning divisions included in the table of contents are all
+those from \DescRef{\LabelBase.cmd.part} to
+\DescRef{\LabelBase.cmd.subsection} for the \Class{scrbook} and
+\Class{scrreprt} classes, or from \DescRef{\LabelBase.cmd.part} to
+\DescRef{\LabelBase.cmd.subsubsection} for the \Class{scrartcl} class. Whether
+or not to include a sectioning level in the table of contents is controlled by
+the \Counter{tocdepth} counter. This has the value -1 for
+\DescRef{\LabelBase.cmd.part}, 0 for \DescRef{\LabelBase.cmd.chapter}, and so
+on. By incrementing or decrementing the counter, you can choose the lowest
+sectioning level to include in the table of contents. Incidentally, the
+standard classes work the same way.
+Unlike\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}\textnote{\KOMAScript{} vs. standard classes} with the
+standard classes, with \KOMAScript{} you do not need to remember these values.
+\KOMAScript{} defines a \Macro{\PName{level}tocdepth} command for each
+sectioning level with the appropriate value which you can use to set
+\Counter{tocdepth}.
+
+Please note\textnote{Attention!} that in
+\Class{scrartcl}\OnlyAt{\Class{scrartcl}}, the values of \Counter{tocdepth}
+and \DescRef{\LabelBase.counter.secnumdepth}\IndexCounter{secnumdepth} (see
+\autoref{sec:\LabelBase.structure},
+\DescPageRef{\LabelBase.counter.secnumdepth}) for
+\DescRef{\LabelBase.cmd.part} are not the same. This behaviour was copied from
+the standard \Class{article} class for compatibility. Thus, for example, you
+should not use \DescRef{\LabelBase.cmd.partnumdepth}\IndexCmd{partnumdepth} to
+set the value of \Counter{tocdepth}.%
+\begin{Example}
+ Suppose you are preparing an article that uses the sectioning level
+ \DescRef{\LabelBase.cmd.subsubsection}. However, you do not want this
+ sectioning level to appear in the table of contents. The preamble of your
+ document might contain the following:
+\begin{lstcode}
+ \documentclass{scrartcl}
+ \setcounter{tocdepth}{\subsectiontocdepth}
+\end{lstcode}
+ Thus you set the \Counter{tocdepth} counter to the value of the
+ \Macro{subsectiontocdepth} command. That value is normally 2, but this way,
+ you do not have to remember it.
+
+ If instead you simply want to include one less level in the table of
+ contents than you normally would, you can simply subtract one from the
+ default value of \Counter{tocdepth}:
+\begin{lstcode}
+ \documentclass{scrartcl}
+ \addtocounter{tocdepth}{-1}
+\end{lstcode}
+ The\textnote{Hint!} value that you need to add to or subtract from
+ \Counter{tocdepth} is listed in the table of contents after at least two
+ \LaTeX{} runs.
+\end{Example}%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{parmarkup}% \section{Paragraph Markup}
+
+\LoadCommonFile{oddorevenpage}% \section{Detecting Odd or Even Pages}
+
+
+\section{Headers and Footers Using Predefined Page Styles}
+\seclabel{pagestyle}
+
+\BeginIndexGroup
+\BeginIndex{}{page>style}%
+One of the general characteristics of a document is the page style. In
+\LaTeX{} this primarily consists of the contents of headers and footers.
+
+
+\begin{Declaration}
+ \OptionVName{headsepline}{simple switch}
+ \OptionVName{footsepline}{simple switch}
+\end{Declaration}%
+You\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} can use these options to specify whether a horizontal rule
+appears beneath the header or above the footer. You can use any of the values
+for simple switches shown in \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch}. Setting the \Option{headsepline} option to
+true or invoking it with no value results in a line beneath the header.
+Similarly, activating the \Option{footsepline} option results in a rule above
+the footer. Deactivating either option switches off the respective rule.
+
+The\textnote{Attention!} \Option{headsepline} option naturally has no effect
+with the \DescRef{\LabelBase.pagestyle.empty} and
+\DescRef{\LabelBase.pagestyle.plain} page styles, which are described below,
+because these styles explicitly dispense with a header\Index{page>header}.
+Typographically, such a line has the effect of making the header appear to be
+closer to the text. This does not mean that the header then needs to be moved
+farther away from the body of the text\Index{text>body}. Instead, the header
+should be considered as belonging to the text body for the purpose of
+calculating the type area. \KOMAScript{} takes this into account by passing
+the \Option{headsepline} option to the
+\hyperref[cha:typearea]{\Package{typearea}}%
+\important{\hyperref[cha:typearea]{\Package{typearea}}}\IndexPackage{typearea}
+package, which then automatically executes the package option
+\DescRef{typearea.option.headinclude}%
+\IndexOption{headinclude}\important{\DescRef{typearea.option.headinclude}}
+with the same value. The same applies to the footer separation line. Unlike
+\Option{headsepline}, the \Option{footsepline} option also affects the
+\PValue{plain} page style because \PValue{plain} prints a page number in the
+footer.
+
+The options themselves do not automatically recalculate the type area. To
+recalculate it, use the \DescRef{typearea.option.DIV} option with the values
+\hyperref[desc:typearea.option.DIV.last]{\PValue{last}} or
+\hyperref[desc:typearea.option.DIV.current]{\PValue{current}} (see
+\DescPageRef{typearea.option.DIV.last}) or the
+\DescRef{typearea.cmd.recalctypearea} command (see
+\DescPageRef{typearea.cmd.recalctypearea}) in \autoref{cha:typearea}.
+
+The \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}
+package (see \autoref{cha:scrlayer-scrpage}) offers further possibilities for
+adjusting lines in headers and footers.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{pagestyle}\Parameter{page style}
+ \Macro{thispagestyle}\Parameter{local page style}
+\end{Declaration}%
+There are usually four different page styles:
+\begin{description}
+\item[{\PageStyle{empty}%
+ \BeginIndex[indexmain]{Pagestyle}{empty}\LabelPageStyle{empty}}] is the
+ page style with completely empty headers and footers. In {\KOMAScript}
+ this is identical to the standard classes.%
+\item[{\PageStyle{headings}%
+ \BeginIndex[indexmain]{Pagestyle}{headings}\LabelPageStyle{headings}}] is
+ the page style with running heads in the header. In this style, headings are
+ automatically\Index[indexmain]{running heads>automatic} inserted into the
+ header. \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}%
+ With the classes \Class{scrbook}\IndexClass{scrbook} and
+ \Class{scrreprt}\IndexClass{scrreprt}, the headings of chapters and sections
+ are repeated in the header for two-sided printing\,---\,on the outer side
+ with {\KOMAScript}\textnote{\KOMAScript{} vs. standard classes}, on the
+ inner side with the standard classes. {\KOMAScript} puts the page number on
+ the outer side of the footer; the standard classes put it on the inner side
+ of the header. In one-sided printing, {\KOMAScript} uses only the chapter
+ headings, which are centred in the header, and puts the page numbers centred
+ in the footer.
+ \OnlyAt{\Class{scrartcl}}\Class{scrartcl}\IndexClass{scrartcl} behaves
+ similarly but starts one a level deeper in the sectioning hierarchy, with
+ sections and subsections, because the chapter level does not exist in this
+ case.
+
+ While the standard classes\textnote{\KOMAScript{} vs. standard classes}
+ automatically convert the running heads to upper-case letters,
+ {\KOMAScript} uses the capitalisation found in the headings. There are
+ several typographical reasons for this. Upper-case letters are actually far
+ too massive as a text decoration. If you use them anyway, they should be set
+ one point smaller and with slightly tighter spacing. The standard classes do
+ not take these points into consideration.
+
+ In addition, the {\KOMAScript} classes support rules below the header and
+ above the footer with the \DescRef{\LabelBase.option.headsepline} and
+ \DescRef{\LabelBase.option.footsepline} options (see
+ \DescPageRef{\LabelBase.option.headsepline}).%
+\item[{\PageStyle{myheadings}%
+ \BeginIndex[indexmain]{Pagestyle}{myheadings}\LabelPageStyle{myheadings}}]
+ mostly corresponds to the \PValue{headings} page style, but the running
+ heads are not generated automatically%
+ \Index[indexmain]{running heads>manual}\,---\,they have to be defined by the
+ user. You can use the \DescRef{\LabelBase.cmd.markboth}\IndexCmd{markboth}
+ and \DescRef{\LabelBase.cmd.markright}\IndexCmd{markright}\important{%
+ \DescRef{\LabelBase.cmd.markboth}\\
+ \DescRef{\LabelBase.cmd.markright}} commands for that purpose (see
+ \DescPageRef{\LabelBase.cmd.markright}).
+\item[{\PageStyle{plain}%
+ \BeginIndex[indexmain]{Pagestyle}{plain}\LabelPageStyle{plain}}] is the
+ page style with no running head\Index{running head} and only a page number%
+ \Index{page>number} in the footer. The\textnote{\KOMAScript{} vs. standard
+ classes} standard classes always centre this page number in the footer.
+ {\KOMAScript} puts the page number on the outer side of the footer in
+ two-sided\Index{two-sided} mode. {\KOMAScript} behaves like the
+ standard classes in one-sided printing.%
+\end{description}
+
+You\important{\Macro{pagestyle}} can set the page style at any time with the
+help of the \Macro{pagestyle} command, and this setting takes effect with the
+next page that is output. If\textnote{Hint!} you use \Macro{pagestyle} just
+before a command that results in an implicit page break and if the new page
+style should be used on the resulting new page, a
+\DescRef{\LabelBase.cmd.cleardoublepage} just before \Macro{pagestyle} will be
+useful. But usually you set the page style only once, at the beginning of the
+document or in the preamble.
+
+To\important{\Macro{thispagestyle}} change the page style of the current page
+only, use the \Macro{thispagestyle} command. This occurs automatically at some
+points in the document. For example, the
+\Macro{thispagestyle}\PParameter{\DescRef{\LabelBase.cmd.chapterpagestyle}}
+command is issued implicitly on the first page of a chapter.
+
+Note\textnote{Attention!} that when you use the
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}
+package, switching between automatic and manual running heads is no longer
+accomplished by changing the page styles but with special instructions. You
+should not use the \PValue{headings} and \PValue{myheadings} page styles with
+this package.
+
+\BeginIndexGroup \BeginIndex[indexother]{}{font>style}%
+\BeginIndex{FontElement}{pageheadfoot}\LabelFontElement{pageheadfoot}%
+\LabelFontElement{pagehead}%
+\BeginIndex{FontElement}{pagefoot}\LabelFontElement{pagefoot}%
+\BeginIndex{FontElement}{pagenumber}\LabelFontElement{pagenumber}%
+To change the font style used for the header, the footer, or the page
+number\ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}, use the \DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}). The same element,
+\FontElement{pageheadfoot}\IndexFontElement{pageheadfoot}%
+\important{\FontElement{pageheadfoot}}, is used for the header and the footer.
+The element for the page number within the header or footer is called
+\FontElement{pagenumber}\IndexFontElement{pagenumber}%
+\important{\FontElement{pagenumber}}. The
+\FontElement{pagefoot}\IndexFontElement{pagefoot}%
+\important{\FontElement{pagefoot}} element, which is also provided by the
+\KOMAScript{} classes, is used only if you define a page style with the
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage} package in which the footer contains text (see
+\autoref{cha:scrlayer-scrpage},
+\DescPageRef{scrlayer-scrpage.fontelement.pagefoot}).
+
+You can find the default settings in
+\autoref{tab:\LabelBase.defaultFontsHeadFoot}.
+%
+\begin{table}
+% \centering%
+% \caption
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \addtokomafont{caption}{\raggedright}%
+ \begin{captionbeside}
+ [{Default values for page style elements}]
+ {\label{tab:maincls.defaultFontsHeadFoot}%
+ \hspace{0pt plus 1ex}%
+ Default values for page style elements}
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Element & Default \\
+ \midrule
+ \FontElement{pagefoot}\IndexFontElement{pagefoot} &
+ \\
+ \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} &
+ \Macro{normalfont}\Macro{normalcolor}\Macro{slshape} \\
+ \FontElement{pagenumber}\IndexFontElement{pagenumber} &
+ \Macro{normalfont}\Macro{normalcolor}\\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+%
+\begin{Example}
+ \leavevmode\phantomsection\xmpllabel{cmd.pagestyle}%
+ Suppose you want to set header and footer in a smaller type size
+ and in italics. However, the page number should not be set in
+ italics but in bold. Apart from the fact that the result will look
+ horrible, you can do this as follows:
+\begin{lstcode}
+ \setkomafont{pageheadfoot}{%
+ \normalfont\normalcolor\itshape\small}
+ \setkomafont{pagenumber}{\normalfont\bfseries}
+\end{lstcode}
+ On the other hand, if you only want a smaller font to be used along with the
+ default slanted text, you can use the following:
+\begin{lstcode}
+ \addtokomafont{pagehead}{\small}
+\end{lstcode}
+ As you can see, the previous example uses the
+ \FontElement{pagehead}\important{\FontElement{pagehead}} element. You can
+ achieve the same result using \PValue{pageheadfoot} instead (see
+ \autoref{tab:\LabelBase.fontelements} on
+ \autopageref{tab:\LabelBase.fontelements}).
+\end{Example}
+It is not possible to use these methods to force upper-case letters to be used
+automatically for the running heads. Although you can redefine
+\DescRef{tocbasic.cmd.MakeMarkcase}\IndexCmd{MakeMarkcase}, in such cases you
+should instead use the
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} package (see
+\autoref{cha:scrlayer-scrpage},
+\DescPageRef{scrlayer-scrpage.option.markcase}).
+
+If\textnote{Hint!} you define your own page styles, the commands
+\DescRef{\LabelBase.cmd.usekomafont}\PParameter{pageheadfoot},
+\DescRef{\LabelBase.cmd.usekomafont}\PParameter{pagenumber}, and
+\DescRef{\LabelBase.cmd.usekomafont}\PParameter{pagefoot} can be useful. In
+particular, if you do not use the {\KOMAScript} package
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} (see
+\autoref{cha:scrlayer-scrpage}) but use, for example, the
+\Package{fancyhdr}\IndexPackage{fancyhdr}\important{\Package{fancyhdr}}
+package (see \cite{package:fancyhdr}), you can use these commands in your
+definitions. In this way you can maintain compatibility with {\KOMAScript} as
+much as possible. If you do not use these commands in your own definitions,
+changes such as those shown in the previous examples have no effect. The
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage} package tries to maintain maximum
+compatibility as long as, for example,
+\iffree{\Macro{thepage}}{\DescRef{\LabelBase-experts.cmd.thepage}}%
+\IndexCmd{thepage} is not used directly for the page number rather than the
+\iffree{\Macro{pagemark}}{\DescRef{\LabelBase-experts.cmd.pagemark}}%
+\IndexCmd{pagemark} which is provided for it.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{markboth}\Parameter{left mark}\Parameter{right mark}
+ \Macro{markright}\Parameter{right mark}
+\end{Declaration}
+The \DescRef{\LabelBase.pagestyle.myheadings}%
+\important{\DescRef{\LabelBase.pagestyle.myheadings}}%
+\IndexPagestyle{myheadings} page style does not set the running head. Instead,
+you set it with the help of the \Macro{markboth} and \Macro{markright}
+commands. This way the \PName{left mark} will normally be used in the header
+of even pages and \PName{right mark} in the header of odd pages. With
+one-sided printing, only the \PName{right mark} exists. With the
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}
+package, the \DescRef{scrlayer-scrpage.cmd.markleft}%
+\IndexCmd{markleft}\important{\DescRef{scrlayer-scrpage.cmd.markleft}} command
+is also available.
+
+You can use these commands with other page styles too. However, when combined
+with automatic running heads, for example with the
+\DescRef{\LabelBase.pagestyle.headings}\IndexPagestyle{headings} page style,
+the effect of the commands lasts only until the next time the respective marks
+are set automatically.%
+%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{titlepagestyle}
+ \Macro{partpagestyle}
+ \Macro{chapterpagestyle}
+ \Macro{indexpagestyle}
+\end{Declaration}%
+\Index{title>page style}%
+\Index{part>page style}%
+\Index{chapter>page style}%
+\Index{index>page style}%
+On some pages, a different page style is chosen automatically with the help of
+the \DescRef{\LabelBase.cmd.thispagestyle} command. Which page style this
+actually is, is defined by these four macros, of which \Macro{partpagestyle}
+and \Macro{chapterpagestyle}\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} are
+found only with classes \Class{scrbook} and \Class{scrreprt}, and not in
+\Class{scrartcl}. The default value for all four cases is
+\DescRef{\LabelBase.pagestyle.plain}\IndexPagestyle{plain}. You can find the
+meaning of these macros in \autoref{tab:specialpagestyles}.
+%
+\begin{table}
+ \centering
+ \caption{Macros to set up the page style of special pages}
+ \label{tab:specialpagestyles}
+ \begin{desctabular}
+ \mentry{titlepagestyle}{Page style for a title page when using
+ \emph{in-page} titles.}%
+ \mentry{partpagestyle}{Page style for pages with
+ \DescRef{\LabelBase.cmd.part} titles.}%
+ \mentry{chapterpagestyle}{Page style for the first page of a chapter.}%
+ \mentry{indexpagestyle}{Page style for the first page of the index.}%
+ \end{desctabular}
+\end{table}
+%
+You can redefine the page styles with the \Macro{renewcommand} macro.
+\begin{Example}
+ Suppose you do not want the pages with a \DescRef{\LabelBase.cmd.part}
+ heading to be numbered. You can use the following command in the preamble of
+ your document:
+\begin{lstcode}
+ \renewcommand*{\partpagestyle}{empty}
+\end{lstcode}
+ As mentioned previously on \DescPageRef{\LabelBase.pagestyle.empty},
+ the \PValue{empty} page style is exactly what is required in this
+ example. Of course, you can also use a user-defined page style.
+
+ Suppose you have defined your own page style for initial chapter pages with
+ the \hyperref[cha:scrlayer]{\Package{scrlayer}} (see \autoref{cha:scrlayer})
+ or the \hyperref[cha:scrlayer-scrpage-experts]{\Package{scrlayer-scrpage}}
+ package (see \autoref{cha:scrlayer-scrpage-experts}). You have given this
+ page style the fitting name of \PValue{chapter}. To actually use this style,
+ you must redefine \Macro{chapterpagestyle} in this way:
+\begin{lstcode}
+ \renewcommand*{\chapterpagestyle}{chapter}
+\end{lstcode}
+
+ Suppose you do not want the table of contents\Index{table of contents}%
+ \textnote{table of contents} of a book to have page numbers. Everything
+ after the table of contents, however, should use the \PValue{headings}
+ page style, including the \PValue{plain} page style for the first
+ page of every chapter. You can use the following:
+\begin{lstcode}
+ \clearpage
+ \pagestyle{empty}
+ \renewcommand*{\chapterpagestyle}{empty}
+ \tableofcontents
+ \clearpage
+ \pagestyle{headings}
+ \renewcommand*{\chapterpagestyle}{plain}
+\end{lstcode}
+ You can also keep the redefinition local by using a group. This method has
+ the advantage that you do not need to make any assumptions about the what
+ the previous page style was in order to restore it after your local change:
+\begin{lstcode}
+ \clearpage
+ \begingroup
+ \pagestyle{empty}
+ \renewcommand*{\chapterpagestyle}{empty}
+ \tableofcontents
+ \clearpage
+ \endgroup
+\end{lstcode}
+ Note,\important{Attention!} however, that you never should put a numbered
+ sectioning command into a group. Otherwise you may get unpredictable results
+ with commands like \Macro{label}.
+
+ On \DescPageRef{tocbasic.cmd.AfterTOCHead} in \autoref{sec:tocbasic.toc},
+ you will discover the \DescRef{tocbasic.cmd.AfterTOCHead} command, which
+ makes a solution even easier:
+\begin{lstcode}
+ \AfterTOCHead[toc]{%
+ \thispagestyle{empty}%
+ \pagestyle{empty}%
+ }
+\end{lstcode}%
+ This takes advantage of the fact that if there are several
+ \DescRef{\LabelBase.cmd.thispagestyle} commands on the same page, the last
+ one always wins.
+\end{Example}
+
+\begin{Explain}
+ You might think that you can put running heads on the first page of a
+ chapter simply by using the
+\begin{lstcode}
+ \renewcommand*{\chapterpagestyle}{headings}
+\end{lstcode}
+ command. Before you try this, you should read \iffree{}{more about the
+ background to \DescRef{maincls-experts.cmd.rightmark} in
+ \autoref{sec:maincls-experts.addInfos} on
+ \DescPageRef{maincls-experts.cmd.rightmark}. Also, }the remarks on
+ \DescRef{scrlayer-scrpage-experts.cmd.rightfirstmark} starting on page
+ \DescPageRef{scrlayer-scrpage-experts.cmd.rightfirstmark} in
+ \autoref{cha:scrlayer-scrpage-experts}, \autoref{part:forExperts}
+ \iffree{}{provide important information}.%
+\end{Explain}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{pagenumbering}\Parameter{numbering style}
+\end{Declaration}
+This command works the same way in {\KOMAScript} as in the standard classes.
+Strictly speaking, it is a feature of neither the standard classes nor the
+\KOMAScript{} classes but of the {\LaTeX} kernel. This command is used to
+change the \PName{numbering style} of page numbers.
+
+The changes take effect immediately, i.\,e., starting from the page that
+contains the command. If necessary, you should first close the current page
+with \DescRef{\LabelBase.cmd.clearpage} or better
+\DescRef{\LabelBase.cmd.cleardoubleoddpage}%
+\important{\DescRef{\LabelBase.cmd.cleardoubleoddpage}}%
+\IndexCmd{cleardoubleoddpage}. You can find the available settings for
+\PName{numbering style} in \autoref{tab:numberKind}.
+%
+\begin{table}
+ % \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ % \caption
+ \begin{captionbeside}
+ {\label{tab:numberKind}%
+ Available numbering styles of page numbers}
+ \begin{tabular}[t]{lll}
+ \toprule
+ numbering style & example & description \\
+ \midrule
+ \PValue{arabic} & 8 & Arabic numbers \\
+ \PValue{roman} & viii & lower-case Roman numbers \\
+ \PValue{Roman} & VIII & upper-case Roman numbers \\
+ \PValue{alph} & h & letters \\
+ \PValue{Alph} & H & capital letters \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+Calling\textnote{Attention!} \Macro{pagenumbering} always resets the page
+number\Index{page>number}. The current page becomes number 1 in the selected
+\PName{numbering style}. In order that two-sided documents produce the correct
+results on an even page, so that the left-hand page is not missing, you should
+always add \DescRef{\LabelBase.cmd.cleardoubleoddpage}%
+\important{\DescRef{\LabelBase.cmd.cleardoubleoddpage}}%
+\IndexCmd{cleardoubleoddpage} before \Macro{pagenumbering}. The next section
+provides more information about potentially inserted blank pages.
+
+\begin{Explain}
+ Let me say a word about a common mistake found in various templates
+ circulating on the Internet. If you encounter lines like the
+ following\,---\,without the initial comment naturally\,---\,this is an
+ unmistakable sign that the creator did not read or understand the
+ remark above:
+\begin{lstcode}
+ % Attention! This example contains errors!
+ % Please note the explanation in the text!
+ \tableofcontents
+ \pagenumbering{arabic}
+ \setcounter{page}{1}
+\end{lstcode}
+ Since \DescRef{\LabelBase.cmd.tableofcontents} outputs the table of contents
+ but does not automatically issue a page break at the end, the page numbering
+ is already changed on the last page of the table of contents. Because it
+ lacks a \DescRef{\LabelBase.cmd.cleardoubleoddpage} command before
+ \Macro{pagenumbering}, it receives a pagination of the Arabic number 1.
+ Additionally, the final line which sets the page numbering to 1 is
+ superfluous, since this is already done by \Macro{pagenumbering}.
+
+ Sometimes\,---\,without the initial comment, naturally\,---\, you find:
+\begin{lstcode}
+ % Attention! This example contains errors!
+ % Please note the explanation in the text!
+ \tableofcontents
+ \pagebreak
+ \pagenumbering{arabic}
+ \setcounter{page}{1}
+\end{lstcode}
+ Here the creator tried to solve the problem with the final page of the table
+ of contents with the help of \Macro{pagebreak}\IndexCmd{pagebreak}.
+
+ Unfortunately, this solution is not much better. Here there is a page break
+ after the last page of the table of contents. This may cause entries on the
+ last page of a two-sided document to have excess vertical spacing (see
+ \DescRef{\LabelBase.cmd.flushbottom},
+ \DescPageRef{\LabelBase.cmd.flushbottom}). \Macro{pagebreak} is clearly
+ the wrong command here.
+
+ Furthermore, \Macro{newpage}\IndexCmd{newpage} or
+ \DescRef{\LabelBase.cmd.clearpage} would not be sufficient for a two-sided
+ document. For example, if the last page of the table of contents had the
+ Roman numeral vii, the Arabic numbered right-side page 1 would immediately
+ follow the Roman numeral right-side page. A left-side page between the two
+ would be missing, which could cause serious problems with later printing.
+
+ My advice: Avoid using templates that contain errors with respect to such
+ simple things. Incidentally, the correct way would be:
+\begin{lstcode}
+ \tableofcontents
+ \cleardoubleoddpage
+ \pagenumbering{arabic}
+\end{lstcode}
+ This also applies if \Class{scrartcl}\OnlyAt{\Class{scrartcl}} uses a class
+ that usually does not start a new page after the table of contents. If you
+ switch the page numbering, a new right-hand page must be started. If you do
+ not want such a change, you should keep the numbering style of pages
+ consistent throughout the document without changing it in between.
+\iffalse% Umbruchkorrekturtext
+ For articles or other short documents, this is generally recommended.
+\fi
+
+ It is easier to change the numbering style when using
+ \Class{scrbook}\OnlyAt{\Class{scrbook}}. There you have the support of two
+ commands, \DescRef{\LabelBase.cmd.frontmatter}%
+ \important{\DescRef{\LabelBase.cmd.frontmatter}\\
+ \DescRef{\LabelBase.cmd.mainmatter}}%
+ \IndexCmd{fontmatter} and \DescRef{\LabelBase.cmd.mainmatter}%
+ \IndexCmd{mainmatter}, for the most commonly used switching. For more
+ information, please see
+ \autoref{sec:maincls.separation},
+ \DescPageRef{\LabelBase.cmd.mainmatter}.%
+\end{Explain}%
+\EndIndexGroup
+\EndIndexGroup
+
+
+\LoadCommonFile{interleafpage}% \section{Interleaf Pages}
+
+\LoadCommonFile{footnotes}% \section{Footnotes}
+
+\section[Book Structure]{Book Structure\protect\OnlyAt{\Class{scrbook}}}
+\seclabel{separation}
+
+Sometimes books are loosely divided into \emph{front matter}%
+\Index{front matter}, \emph{main matter}\Index{main matter}, and
+\emph{back matter}\Index{back matter}. \KOMAScript{} also provides this
+capability for \Class{scrbook}.
+
+
+\begin{Declaration}
+ \Macro{frontmatter}
+ \Macro{mainmatter}
+ \Macro{backmatter}
+\end{Declaration}%
+The front matter includes all the material which appears before the main
+text begins, including title pages, preface, and table of contents. It is
+initiated with
+\Macro{frontmatter}\important{\Macro{frontmatter}}. In the front matter,
+Roman numerals are used for the page numbers, and chapter headings in
+the header are not numbered. However, section headings are numbered
+consecutively, starting from chapter 0. This typically does not matter, as the
+front matter is used only for the title pages, table of contents%
+\Index{table of contents}, lists of figures\Index{list of>figures}%
+\Index{figures>list of} and tables\Index{tables>list of}, and a
+preface\Index{preface} or foreword\Index{foreword}. The preface can thus be
+created as a normal chapter. A preface should be as short as possible and
+never divided into sections. The preface thus does not require a deeper level
+of structure than the chapter.
+
+If you see things differently and want to use numbered
+sections\Index{section>number} in the chapters of the front matter, as of
+version~2.97e,\ChangedAt{v2.97e}{\Class{scrbook}}%
+\important{\OptionValueRef{\LabelBase}{version}{2.97e}} the section numbering
+no longer contains the chapter number. This change only takes effect when the
+compatibility option is set to at least version~2.97e (see option
+\DescRef{\LabelBase.option.version},
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}). It is explicitly noted that this
+creates confusion with chapter numbers! The use of
+\DescRef{\LabelBase.cmd.addsec} and \DescRef{\LabelBase.cmd.section*} (see
+\autoref{sec:\LabelBase.structure}, \DescPageRef{\LabelBase.cmd.section*} and
+\DescPageRef{\LabelBase.cmd.addsec}) are thus, in the author's opinion,
+greatly preferable.
+
+As of version~2.97e\ChangedAt{v2.97e}{\Class{scrbook}} the numbering of
+floating environments, such as tables\Index{table>number} and
+figures\Index{figure>number}, and equation numbers\Index{equation>number} in
+the front matter also contains no chapter-number part. To take effect, this
+too requires the corresponding compatibility setting (see the
+\DescRef{\LabelBase.option.version} option,
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}).
+
+The part of the book with the main text is introduced
+with \Macro{mainmatter}\important{\Macro{mainmatter}}. If there is no front
+matter, you can omit this command. The default page numbering in the main
+matter uses Arabic numerals and (re)starts the page count at 1 at the start of
+the main matter.
+
+The back matter is introduced with
+\Macro{backmatter}\important{\Macro{backmatter}}. Opinions differ as to what
+belongs in the back matter. So in some cases you will find only the
+bibliography\Index{bibliography}, in some cases only the index\Index{index},
+and in other cases both of these as well as the appendices. The chapters in
+the back matter are similar to the chapters in the front matter, but page
+numbering is not reset. If you do require separate page numbering, you can use
+the \DescRef{\LabelBase.cmd.pagenumbering}%
+\important{\DescRef{\LabelBase.cmd.pagenumbering}} command in
+\autoref{sec:\LabelBase.pagestyle},
+\DescPageRef{\LabelBase.cmd.pagenumbering}.%
+%
+\EndIndexGroup
+
+
+\section{Document Structure}
+\seclabel{structure}%
+\BeginIndexGroup
+\BeginIndex{}{document structure}
+
+The structure refers to dividing a document into parts, chapters, sections,
+and additional levels of structure.
+
+
+\begin{Declaration}
+ \OptionVName{open}{method}
+\end{Declaration}%
+The\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} \KOMAScript{} classes
+\Class{scrbook} and \Class{scrreprt} give you the choice of where to start a
+new chapter with two-sided printing. By default \Class{scrreprt} starts a new
+chapter\Index{chapter>start} on the next page. This is equivalent to
+\PName{method} \PValue{any}. However, \Class{scrbook} starts new chapters at
+the next right-hand page. This is equivalent to \PName{method} \PValue{right}
+and is usually used in books. But sometimes chapters should start on the
+left-hand page of a two-page spread. You can accomplish this with the
+\PName{method} \PValue{left}\ChangedAt{v3.00}{\Class{scrbook}\and
+ \Class{scrreprt}}. You can find a summary of the available values in
+\autoref{tab:\LabelBase.open}. The table also describes the effects of
+\DescRef{\LabelBase.cmd.cleardoublepage},
+\DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+\DescRef{\LabelBase.cmd.cleardoublestandardpage},
+\DescRef{\LabelBase.cmd.cleardoubleplainpage}, and
+\DescRef{\LabelBase.cmd.cleardoubleemptypage} (see
+\autoref{sec:\LabelBase.emptypage},
+\DescPageRef{\LabelBase.cmd.cleardoublepage}).
+
+\begin{table}
+ \caption[{Available values for the \Option{open} option}]{Available values
+ for the \Option{open} option to select page breaks with interleaf pages
+ using \Class{scrbook} or \Class{scrreprt}}
+ \begin{desctabular}
+ \pventry{any}{%
+ Parts, chapter, index, and back matter use
+ \DescRef{\LabelBase.cmd.clearpage}, not
+ \DescRef{\LabelBase.cmd.cleardoublepage};
+ \DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+ \DescRef{\LabelBase.cmd.cleardoublestandardpage},
+ \DescRef{\LabelBase.cmd.cleardoubleplainpage},
+ \DescRef{\LabelBase.cmd.cleardoubleemptypage}, and
+ \DescRef{\LabelBase.cmd.cleardoublepage} behave the same as using
+ \OptionValue{open}{right}.%
+ \IndexOption{open~=\textKValue{any}}}%
+ \pventry{left}{%
+ Part, chapter, index, and back matter use
+ \DescRef{\LabelBase.cmd.cleardoublepage}; the commands
+ \DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+ \DescRef{\LabelBase.cmd.cleardoublestandardpage},
+ \DescRef{\LabelBase.cmd.cleardoubleplainpage},
+ \DescRef{\LabelBase.cmd.cleardoubleemptypage}, and
+ \DescRef{\LabelBase.cmd.cleardoublepage} result in a page break and add
+ an interleaf page\Index{page>interleaf} if needed to reach the next
+ left-hand page.%
+ \IndexOption{open~=\textKValue{left}}}%
+ \pventry{right}{%
+ Part, chapter, index, and back matter use
+ \DescRef{\LabelBase.cmd.cleardoublepage}; the commands
+ \DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+ \DescRef{\LabelBase.cmd.cleardoublestandardpage},
+ \DescRef{\LabelBase.cmd.cleardoubleplainpage},
+ \DescRef{\LabelBase.cmd.cleardoubleemptypage}, and
+ \DescRef{\LabelBase.cmd.cleardoublepage} result in a page break and add
+ an interleaf page\Index{page>interleaf} if needed to reach the next
+ right-hand page.%
+ \IndexOption{open~=\textKValue{right}}}%
+ \end{desctabular}
+ \label{tab:\LabelBase.open}
+\end{table}
+
+Since \LaTeX{} does not differentiate between left-hand and right-hand pages
+in one-sided printing, the option has no effect in that case.
+
+In the \Class{scrartcl} class, the section is the first structural element
+below the part. For this reason, \Class{scrartcl} does not support this
+option.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{chapterprefix}{simple switch}
+ \OptionVName{appendixprefix}{simple switch}
+ \Macro{IfChapterUsesPrefixLine}\Parameter{then code}\Parameter{else code}
+\end{Declaration}%
+With\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} the standard classes
+\Class{book} and \Class{report}, a chapter
+heading\Index[indexmain]{chapter>heading} consists of a line with the word
+``Chapter''\footnote{When using another language the word ``Chapter'' is of
+course translated to the appropriate language.} followed by the chapter
+number. The heading itself is set left-justified on the following line. The
+same effect is obtained in {\KOMAScript} with the \Option{chapterprefix}
+option. You can use any value from \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch} as the \PName{simple switch}. The default,
+however, is \OptionValue{chapterprefix}{false}, the opposite
+behaviour\textnote{\KOMAScript{} vs. standard classes} of that of the standard
+classes, which corresponds to \OptionValue{chapterprefix}{true}. These options
+also affect the automatic running heads in the headers (see
+\autoref{sec:\LabelBase.pagestyle},
+\DescPageRef{\LabelBase.pagestyle.headings}).
+
+Sometimes you may want to use the simplified chapter headings produced by
+\OptionValue{chapterprefix}{false} but at the same time to have the heading of
+an appendix\Index{appendix} preceded by a line with ``Appendix'' followed by
+the appendix letter. This is achieved by using the \Option{appendixprefix}
+option (see \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}).
+Since this results in an inconsistent document layout, I advise against using
+this option. Ultimately, this option changes the \Option{chapterprefix} option
+automatically at the beginning of the \DescRef{\LabelBase.cmd.appendix}.
+
+You\ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}} can execute code
+depending on the current setting for the chapter preceding line using
+\Macro{IfChapterUsesPrefixLine}. If \Option{chapterprefix} is currently
+active, the \PName{then code} is executed; otherwise, the \PName{else code} is
+executed.
+
+\BeginIndex{FontElement}{chapterprefix}%
+You can change the font style of the chapter number line that uses
+\OptionValue{chapterprefix}{true} or \OptionValue{appendixprefix}{true}
+by using the
+\FontElement{chapterprefix}\ChangedAt{v2.96a}{\Class{scrbook}\and
+ \Class{scrreprt}} element with the \DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}). The default is to use the
+\DescRef{\LabelBase.fontelement.chapter}\IndexFontElement{chapter} element
+(see \DescPageRef{\LabelBase.cmd.chapter}, as well as
+\autoref{tab:\LabelBase.structureElementsFont},
+\autopageref{tab:\LabelBase.structureElementsFont}).
+
+You can find additional settings for chapter headings in the explanation for
+\DescRef{maincls-experts.cmd.RedeclareSectionCommand} and the commands
+\DescRef{maincls-experts.cmd.chapterlineswithprefixformat} and
+\DescRef{maincls-experts.cmd.chapterlinesformat} in
+\autoref{sec:maincls-experts.experts}, \autoref{part:forExperts}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{headings}{setting}
+\end{Declaration}
+Headings\index{heading}\index{document structure} of sectioning levels
+normally use a relatively large font size in both the standard classes and
+{\KOMAScript}. This choice does not appeal to everyone and is especially
+problematic for small paper sizes. Consequently, {\KOMAScript} provides, in
+addition to the large headings defined by the
+\OptionValue{headings}{big}\IndexOption{headings~=\textKValue{big}}%
+\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+\important{\OptionValue{headings}{big}\\
+ \OptionValue{headings}{normal}\\
+ \OptionValue{headings}{small}} option, the options
+\OptionValue{headings}{normal}\IndexOption{headings~=\textKValue{normal}} and
+\OptionValue{headings}{small}\IndexOption{headings~=\textKValue{small}}, which
+allow for smaller headings. The font sizes resulting from these options for
+\Class{scrbook} and \Class{scrreprt} are shown in
+\autoref{tab:\LabelBase.structureElementsFont},
+\autopageref{tab:\LabelBase.structureElementsFont}. Specifically, all three
+settings reset the elements \DescRef{\LabelBase.fontelement.chapter}%
+\IndexFontElement{chapter},
+\DescRef{\LabelBase.fontelement.section}\IndexFontElement{section},
+\DescRef{\LabelBase.fontelement.subsection}\IndexFontElement{subsection},
+\DescRef{\LabelBase.fontelement.subsubsection}%
+\IndexFontElement{subsubsection},
+\DescRef{\LabelBase.fontelement.paragraph}\IndexFontElement{paragraph}, and
+\DescRef{\LabelBase.fontelement.subparagraph}\IndexFontElement{subparagraph}
+to the corresponding defaults. \Class{scrartcl}\OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}} generally uses slightly smaller headings. The spacing
+before and after chapter headings is also reset by these options.
+
+\iffalse%
+ Chapter headings also have the \Option{headings} option with the
+ \PValue{twolinechapter} or \PValue{onelinechapter} settings, which are
+ equivalent to the
+ \OptionValueRef{\LabelBase}{chapterprefix}{true} and
+ \OptionValueRef{\LabelBase}{chapterprefix}{false} options. In the appendix
+ there are additional effects of the \PValue{onelineappendix} and
+ \PValue{twolineappendix} options upon the \Option{headings} option, which
+ corresponds to
+ \OptionValueRef{\LabelBase}{appendixprefix}{false} and
+ \OptionValueRef{\LabelBase}{appendixprefix}{true} (see also
+ above). %
+\else%
+ Chapter headings\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} also
+ have\important{%
+ \OptionValue{headings}{twolinechapter}\\
+ \OptionValue{headings}{onelinechapter}\\
+ \OptionValue{headings}{twolineappendix}\\
+ \OptionValue{headings}{onelineappendix}%
+ } the two options \OptionValue{headings}{twolinechapter} and
+ \OptionValue{headings}{onelinechapter}, which correspond to
+ \OptionValueRef{\LabelBase}{chapterprefix}{true} and
+ \OptionValueRef{\LabelBase}{chapterprefix}{false} explained above. For the
+ appendix,
+ \OptionValueRef{\LabelBase}{appendixprefix}{true} and
+ \OptionValueRef{\LabelBase}{appendixprefix}{false} serve as alternatives for
+ the \OptionValue{headings}{twolineappendix} and
+ \OptionValue{headings}{onelineappendix} options. %
+ \iffalse%
+ For the appendix, \OptionValue{headings}{twolineappendix} and
+ \OptionValue{headings}{onelineappendix} are available, which correspond to
+ the \OptionValueRef{\LabelBase}{appendixprefix}{true} and
+ \OptionValueRef{\LabelBase}{appendixprefix}{false} options (also see above).
+ \fi%
+ Of course, these options do not exist with \Class{scrartcl}%
+ \iffree{}{% Umbruchkorrekturtext
+ , since this class does not have chapters}%
+ .%
+\fi
+
+The\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} \OptionValue{headings}{standardclasses}%
+\important{\OptionValue{headings}{standardclasses}} option adjusts the font
+sizes of the headings to those of the standard classes. In addition, the font
+for the \DescRef{\LabelBase.fontelement.disposition}%
+\IndexFontElement{disposition} element is set to \Macro{bfseries}. It
+therefore no longer uses a sans-serif font for the headings. If you use
+\Class{scrbook}\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} or
+\Class{scrreprt}, \OptionValue{headings}{twolinechapter} is also set and the
+spacing between the chapter headings is adjusted to that of the standard
+classes.
+
+You\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} can set the method to specify
+the page on which new chapters begin with
+\OptionValue{headings}{openany}\important{%
+ \OptionValue{headings}{openany}\\
+ \OptionValue{headings}{openright}\\
+ \OptionValue{headings}{openleft}}, \OptionValue{headings}{openright}, and
+\OptionValue{headings}{openleft}, or alternatively with the
+\DescRef{\LabelBase.option.open} option, which takes the values \PValue{any},
+\PValue{right}, and \PValue{left} (see above).
+
+Another\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} special feature of \KOMAScript{} is the handling of the
+optional argument of the sectioning commands \DescRef{\LabelBase.cmd.part},
+\DescRef{\LabelBase.cmd.chapter}, etc. down to
+\DescRef{\LabelBase.cmd.subparagraph}. You can change its function and
+meaning\important{\OptionValue{headings}{optiontohead}\\
+ \OptionValue{headings}{optiontotoc}\\
+ \OptionValue{headings}{optiontoheadandtoc}} with the options
+\OptionValue{headings}{optiontohead}%
+\IndexOption{headings~=\textKValue{optiontohead}},
+\OptionValue{headings}{optiontotoc}%
+\IndexOption{headings~=\textKValue{optiontotoc}} and
+\OptionValue{headings}{optiontoheadandtoc}%
+\IndexOption{headings~=\textKValue{optiontoheadandtoc}}.
+
+See \autoref{tab:\LabelBase.headings} for a summary of all available settings
+for the \Option{headings} option. The explanations of the sectioning commands
+below contain examples using some of these settings.
+\begin{desclist}
+ \desccaption[{Available values for the \Option{headings} option}]{%
+ Available values for the \Option{headings} option to format
+ section headings%
+ \label{tab:\LabelBase.headings}%
+ }{%
+ Available values for the \Option{headings} option (\emph{continued})%
+ }%
+ \pventry{big}{%
+ Use large fonts in the headings for each of the default sectioning levels
+ with wide spacing above and below the titles.
+ \IndexOption{headings~=\textKValue{big}}}%
+ \pventry{normal}{%
+ Use medium-sized fonts in the headings with medium spacing above and below
+ the titles. \IndexOption{headings~=\textKValue{normal}}}%
+ \entry{\PValue{onelineappendix}, \PValue{noappendixprefix},
+ \PValue{appendixwithoutprefix}, \PValue{appendixwithoutprefixline}%
+ \IndexOption{headings~=\textKValue{onelineappendix}}}{%
+ Chapter headings in the appendix are set like other headings.%
+ }%
+ \entry{\PValue{onelinechapter}, \PValue{nochapterprefix},
+ \PValue{chapterwithoutprefix}, \PValue{chapterwithoutprefixline}%
+ \IndexOption{headings~=\textKValue{onelinechapter}}}{%
+ Chapter titles are set like other headings.%
+ }%
+ \pventry{openany}{%
+ The commands \DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+ \DescRef{\LabelBase.cmd.cleardoublestandardpage},
+ \DescRef{\LabelBase.cmd.cleardoubleplainpage},
+ \DescRef{\LabelBase.cmd.cleardoubleemptypage}, and
+ \DescRef{\LabelBase.cmd.cleardoublepage} generate a page break and insert
+ an interleaf page\Index{interleaf page} if needed to reach the next
+ right-hand page in two-sided printing, the same as in
+ \OptionValue{headings}{openright}. Parts, chapter, the index, and back
+ matter use \DescRef{\LabelBase.cmd.clearpage} instead of
+ \DescRef{\LabelBase.cmd.cleardoublepage}.%
+ \IndexOption{headings~=\textKValue{openany}}}%
+ \pventry{openleft}{%
+ The commands \DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+ \DescRef{\LabelBase.cmd.cleardoublestandardpage},
+ \DescRef{\LabelBase.cmd.cleardoubleplainpage},
+ \DescRef{\LabelBase.cmd.cleardoubleemptypage}, and
+ \DescRef{\LabelBase.cmd.cleardoublepage} generate a page break and insert
+ an interleaf page if needed to reach the next left-hand page in two-sided
+ printing. Part, chapter, index and back matter use
+ \DescRef{\LabelBase.cmd.cleardoublepage}.%
+ \IndexOption{headings~=\textKValue{openleft}}}%
+ \pventry{openright}{%
+ The commands \DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+ \DescRef{\LabelBase.cmd.cleardoublestandardpage},
+ \DescRef{\LabelBase.cmd.cleardoubleplainpage},
+ \DescRef{\LabelBase.cmd.cleardoubleemptypage}, and
+ \DescRef{\LabelBase.cmd.cleardoublepage} generate a page break and insert
+ an interleaf page if needed to reach the next right-hand page in two-sided
+ printing. Part, chapter, index and back matter use
+ \DescRef{\LabelBase.cmd.cleardoublepage}.%
+ \IndexOption{headings~=\textKValue{openright}}}%
+ \pventry{optiontohead}{%
+ The\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} advanced functionality of the optional argument of the
+ sectioning commands \DescRef{\LabelBase.cmd.part} down to
+ \DescRef{\LabelBase.cmd.subparagraph} is activated. By default, the
+ optional argument is used only for the running head.%
+ \IndexOption{headings~=\textKValue{optiontohead}}%
+ }%
+ \entry{\PValue{optiontoheadandtoc}, \PValue{optiontotocandhead}%
+ \IndexOption{headings~=\textKValue{optiontoheadandtoc}}}{%
+ The\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} advanced functionality of the optional argument of the
+ sectioning commands \DescRef{\LabelBase.cmd.part} down to
+ \DescRef{\LabelBase.cmd.subparagraph} is activated. By default, the
+ optional argument is used for the running head and the table of contents.%
+ }%
+ \pventry{optiontotoc}{%
+ The\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} advanced functionality of the optional argument of the
+ sectioning commands \DescRef{\LabelBase.cmd.part} down to
+ \DescRef{\LabelBase.cmd.subparagraph} is activated. By default, the
+ optional argument is used only for the table of contents.%
+ \IndexOption{headings~=\textKValue{optiontohead}}%
+ }%
+ \pventry{small}{%
+ Use small fonts in the headings with small spacing above and below the
+ titles.%
+ \IndexOption{headings~=\textKValue{small}}}%
+ \pventry{standardclasses}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}%
+ Reset the font settings for each of the standard sectioning levels and use
+ headings with the sizes of the standard classes. For chapter headings,
+ \Class{scrbook} und \Class{scrreprt} set
+ \OptionValue{headings}{twolinechapter}.%
+ }%
+ \entry{\PValue{twolineappendix}, \PValue{appendixprefix},
+ \PValue{appendixwithprefix}, \PValue{appendixwithprefixline}%
+ \IndexOption{headings~=\textKValue{twolineappendix}}}{%
+ Chapter titles in the appendix are set with a number line whose format is
+ determined by
+ \DescRef{\LabelBase.cmd.chapterformat}\IndexCmd{chapterformat}.%
+ }%
+ \entry{\PValue{twolinechapter}, \PValue{chapterprefix},
+ \PValue{chapterwithprefix}, \PValue{chapterwithprefixline}%
+ \IndexOption{headings~=\textKValue{twolinechapter}}}{%
+ Chapter titles are set with a number line whose format is determined by
+ \DescRef{\LabelBase.cmd.chapterformat}\IndexCmd{chapterformat}.%
+ }%
+\end{desclist}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{numbers}{setting}
+\end{Declaration}%
+According to {\small DUDEN}, if only Arabic numerals are used to number
+section headings\Index{headings}, the German practice is to have no point at
+the end (see \cite[R\,3]{DUDEN}). On the other hand, if Roman numerals or
+letters appear in the numbering, then a point should appear at the end of the
+numbering (see \cite[R\,4]{DUDEN}). {\KOMAScript} has a mechanism that tries
+to automate this somewhat complex rule. The result is that normally after
+the sectioning commands \DescRef{\LabelBase.cmd.part} and
+\DescRef{\LabelBase.cmd.appendix} the numbering switches to using a final
+point. This information is saved in the \File{aux} file and takes effect on
+the next {\LaTeX} run.
+
+Sometimes the mechanism for placing or omitting the final point may fail.
+Sometimes other languages have different rules. Therefore you can force the
+use of the final point with the option
+\OptionValue{numbers}{endperiod}\IndexOption{numbers~=\textKValue{endperiod}}%
+\important{\OptionValue{numbers}{endperiod}\\
+\OptionValue{numbers}{noendperiod}} or to prohibit it with
+\OptionValue{numbers}{noendperiod}.
+
+Note\textnote{Attention!} that this mechanism only takes effect on the
+next {\LaTeX} run. Therefore, before you try to use these options to force
+the correct numbering format, you should always perform another \LaTeX{} run
+without modifying the document.
+
+You can find a summary of the available values for the \PName{setting} of
+\PName{numbers} in \autoref{tab:\LabelBase.numbers}. Unlike most other
+settings, this option can only be set in the document preamble, i.\,e. before
+\Macro{begin}\PParameter{document}.
+
+\begin{table}
+ \caption[{Available values for the \Option{numbers} option}]{Available values
+ of the \Option{numbers} option to configure the final points of the
+ numbers for section headings}
+ \label{tab:\LabelBase.numbers}
+ \begin{desctabular}
+ \entry{\PValue{autoendperiod}, \PValue{autoenddot}, \PValue{auto}}{%
+ \KOMAScript{} decides whether to set the point at the end of sectioning
+ command numbers. If there are only Arabic numerals, the point will
+ be omitted. If a letter or Roman numeral is found, the
+ point is set. However, references to these numbers are set without
+ a final point.%
+ \IndexOption{numbers~=\textKValue{autoendperiod}}}%
+ \entry{\PValue{endperiod}, \PValue{withendperiod}, \PValue{periodatend},
+ \PValue{enddot}, \PValue{withenddot}, \PValue{dotatend}}{%
+ All numbers of sectioning commands and their subordinate numbers are set
+ with a final point. Only references will be set without the final
+ point.%
+ \IndexOption{numbers~=\textKValue{endperiod}}}%
+ \entry{\PValue{noendperiod}, \PValue{noperiodatend},
+ \PValue{noenddot}, \PValue{nodotatend}}{%
+ All numbers of sectioning commands are set without a final point.%
+ \IndexOption{numbers~=\textKValue{noendperiod}}}%
+ \end{desctabular}
+\end{table}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{chapteratlists}%
+ \OptionVName{chapteratlists}{value}
+\end{Declaration}%
+As mentioned in \autoref{sec:\LabelBase.floats},
+\DescPageRef{\LabelBase.option.listof}\OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}}, every chapter that is created with
+\DescRef{\LabelBase.cmd.chapter} normally inserts a vertical space in the
+lists of floating environments (e.\,g., tables and figures).
+Since version~2.96a,\important{\OptionValueRef{\LabelBase}{version}{2.96a}}%
+\ChangedAt{v2.96a}{\Class{scrbook}\and \Class{scrreprt}} this also applies to
+the \DescRef{\LabelBase.cmd.addchap} command unless you choose a compatibility
+setting for an earlier version (see the \DescRef{\LabelBase.option.version}
+option in \autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}).
+
+In addition, you can use the \Option{chapteratlists} option to change the
+vertical spacing by specifying the desired distance as the \PName{value}.
+The default with \OptionValueRef{\LabelBase}{listof}{chaptergapsmall}%
+\IndexOption{listof~=\textKValue{chaptergapsmall}} %
+is 10\Unit{pt} (see the\DescRef{\LabelBase.option.version} option in
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}).
+
+If you use \OptionValue{chapteratlists}{entry}%
+\IndexOption{chapteratlists~=\textKValue{entry}}%
+\important{\OptionValue{chapteratlists}{entry}} or \Option{chapteratlists}
+without specifying a value, instead of a vertical space, the chapter entry
+itself will be entered into the lists. Note that such an entry occurs even if
+the chapter does not contain a floating environment. A method where only
+chapters with floating environments are displayed in the respective list can
+be found in the German-language \KOMAScript{} forum at
+\cite{https://komascript.de/comment/5070}.
+
+Please\textnote{Attention!} note that changes to this option only takes
+effect after two additional {\LaTeX} runs.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{part}\OParameter{short version}\Parameter{heading}%
+ \Macro{chapter}\OParameter{short version}\Parameter{heading}%
+ \Macro{section}\OParameter{short version}\Parameter{heading}%
+ \Macro{subsection}\OParameter{short version}\Parameter{heading}%
+ \Macro{subsubsection}\OParameter{short version}\Parameter{heading}%
+ \Macro{paragraph}\OParameter{short version}\Parameter{heading}%
+ \Macro{subparagraph}\OParameter{short version}\Parameter{heading}
+\end{Declaration}%
+\Index[indexmain]{part}%
+\Index[indexmain]{chapter}%
+\Index[indexmain]{section}%
+The standard sectioning commands in {\KOMAScript} work the same way as those
+in the standard classes. Thus, you can specify an alternative text for the
+table of contents and running heads as an optional argument to the sectioning
+commands.
+
+However, with\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}\textnote{\KOMAScript{} vs. standard classes} the
+\important{\DescRef{\LabelBase.option.headings}}
+\OptionValueRef{\LabelBase}{headings}{optiontohead}%
+\IndexOption[indexmain]{headings~=\textKValue{optiontohead}} option,
+\KOMAScript{} only uses the optional argument \PName{short version} in the
+running head, not the table of contents. Of course, this text will only appear
+if you use a page style\Index{page>style} that puts the corresponding
+sectioning level in the running head. See \autoref{sec:\LabelBase.pagestyle}
+and \autoref{cha:scrlayer-scrpage}. With the
+\OptionValueRef{\LabelBase}{headings}{optiontotoc}%
+\IndexOption[indexmain]{headings~=\textKValue{optiontotoc}} option,
+\KOMAScript{} uses the optional argument \PName{short version} exclusively for
+the table of contents and not the running head. However, the entry will be
+shown only if the \DescRef{\LabelBase.counter.tocdepth} counter is great
+enough (see \autoref{sec:\LabelBase.toc},
+\DescPageRef{\LabelBase.counter.tocdepth}). With the
+\OptionValueRef{\LabelBase}{headings}{optiontoheadandtoc}%
+\IndexOption[indexmain]{headings~=\textKValue{optiontoheadandtoc}} option,
+\KOMAScript{} uses the optional argument \PName{short version} in both the
+table of contents and the running head. These three options all activate the
+extended interpretation of the optional argument \PName{short version}, which
+is not active by default.
+
+The \ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} extended interpretation of the optional argument
+checks to see if there is an equals sign in \PName{short version}. If so,
+the optional argument will be interpreted as an \PName{option list}.
+Three options\,---\,\OptionVName{head}{running head}\important{\Option{head}\\
+ \Option{tocentry}\\
+ \Option{reference}}, \OptionVName{tocentry}{table of contents entry}, and
+\OptionVName{reference}{reference title}%
+\ChangedAt{v3.22}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+\,---\,are supported with this format. To use commas or equals signs
+within the values of those options, you must enclose them in braces.
+
+Please\textnote{Attention!} note that this mechanism only works as long as
+\KOMAScript{} controls the sectioning commands. If you use package that
+redefines the \KOMAScript{}'s or the internal \LaTeX{} kernel's sectioning
+commands, \KOMAScript{} can no longer provide this extended mechanism. This
+also applies to a \KOMAScript{} that is always active: sectioning commands
+with no heading text\textnote{empty headings} do not create entries in the
+table of contents. If you really want an entry with empty heading text, you
+can use an invisible entry like \lstinline|\mbox{}|.
+
+\begin{Example}
+ Suppose you have a document with very long chapter headings. These headings
+ should appear in the table of contents, but you want to limit the running
+ head to short, single-line headings. You can do this with the optional
+ argument of \Macro{chapter}.
+\begin{lstcode}
+ \chapter[short version of chapter heading]
+ {The Sectioning Command for Chapters
+ Supports not only the Heading Text
+ Itself but also a Short Version Whose
+ Use can be Controlled}
+\end{lstcode}
+
+ A little later you realize that the line breaks for this long heading are
+ very inappropriate. You therefore want to choose the breaks
+ yourself. Nevertheless, you still want automatic line breaking in the table
+ of contents. With
+\begin{lstcode}
+ \chapter[head={short version of chapter heading},
+ tocentry={The Sectioning
+ Command for Chapters Supports not
+ only the Heading Text Itself but
+ also a Short Version Whose Use
+ can be Controlled}]
+ {The Sectioning\\
+ Command for Chapters\\
+ Supports not only\\
+ the Heading Text Itself\\
+ but also\\
+ a Short Version Whose\\
+ Use can be Controlled}
+\end{lstcode}
+ you create separate entries for the table of contents, running head, and
+ chapter heading itself. The arguments of the options \Option{head} and
+ \Option{tocentry} have been enclosed in braces so their contents
+ can be arbitrary.
+
+ The need for braces in the example above is best illustrated by another
+ example. Suppose you chose the
+ \OptionValueRef{\LabelBase}{headings}{optiontotoc} option and set the title
+ this way:
+\begin{lstcode}
+ \section[head=\emph{value}]
+ {Option head=\emph{value}}
+\end{lstcode}
+ This results in the entry ``Option head=\emph{value}'' in the table of
+ contents but ``\emph{value}'' in the running head. But surely you wanted the
+ entry ``head=\emph{value}'' in the table of contents and the complete
+ heading text in the running head. You can do this using braces:
+\begin{lstcode}
+ \section[head{=}\emph{value}]
+ {Option head=\emph{value}}
+\end{lstcode}
+
+ A similar case concerns the comma. Using the same
+ \DescRef{\LabelBase.option.headings} option as before
+\begin{lstcode}
+ \section[head=0, 1, 2, 3, \dots]
+ {Natural Numbers Including the Zero}
+\end{lstcode}
+ results in an error because the comma is interpreted as the
+ separator between the individual options of the option list %
+ ``\lstinline|0, 1, 2, 3, \dots|''. But writing
+\begin{lstcode}
+ \section[head={0, 1, 2, 3, \dots}]
+ {Natural Numbers Including the Zero}
+\end{lstcode}
+ makes ``\lstinline|0, 1, 2, 3, \dots|'' the argument of
+ the \Option{head} option.
+\end{Example}
+
+Like\ChangedAt{v3.22}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} setting the title of a running head with the \Option{head}
+option, or setting the title of a table-of-contents entry with the
+\Option{tocentry} option, you can set the title of a reference with the
+\Package{nameref}\IndexPackage{nameref}\important{\Package{nameref}\\
+ \Package{titleref}\\
+ \Package{zref-titleref}} or
+\Package{titleref}\IndexPackage{titleref} packages, or with the
+\Package{titleref}\IndexPackage{zref-titleref} module of the
+\Package{zref}\IndexPackage{zref} package, using the \Option{reference}%
+\important{\Option{reference}} option. Note that the support for the
+\Package{titleref} package is rather rudimentary, since that package's
+performance is poor compared to the other two, and it is not fully compatible
+with \Package{hyperref}\IndexPackage{hyperref}\important{\Package{hyperref}}.
+
+The part-level title\important{\Macro{part}} (\Macro{part}) differs from other
+sectioning levels by being numbered independently. This means that the chapter
+level (in \Class{scrbook} or \Class{scrreprt}), or the section level (in
+\Class{scrartcl}) is numbered consecutively over all parts. Furthermore, for
+the \Class{scrbook}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} and
+\Class{scrreprt} classes, the title of the part level together with the
+corresponding preamble (see \DescRef{\LabelBase.cmd.setpartpreamble},
+\DescPageRef{\LabelBase.cmd.setpartpreamble}) is set on a separate page.
+
+The \Macro{chapter}\important{\Macro{chapter}}\OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}} command only exists in the book and report classes, that
+is, in \Class{book}, \Class{scrbook}, \Class{report} and \Class{scrreport},
+but not in the article classes \Class{article} and \Class{scrartcl}.
+Furthermore, the \Macro{chapter}\textnote{\KOMAScript{} vs. standard classes}
+command in {\KOMAScript} differs substantially from the version in the
+standard classes. In the standard classes, the chapter number is used together
+with the prefix ``Chapter'', or the corresponding word in the appropriate
+language, on a separate line above the actual chapter title text.
+\KOMAScript{} replaces this
+overpowering\important{\DescRef{\LabelBase.option.chapterprefix}\\
+ \DescRef{\LabelBase.option.appendixprefix}} style with a simple chapter
+number before the chapter title, but you can restore the original behaviour
+with the \DescRef{\LabelBase.option.chapterprefix} option (see
+\DescPageRef{\LabelBase.option.chapterprefix}).
+
+Please\textnote{Attention!} note that \Macro{part} and \Macro{chapter} in the
+\Class{scrbook} and \Class{scrreprt}
+\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} classes change the page style for
+one page. The page style applied in {\KOMAScript} is defined in the macros
+\DescRef{\LabelBase.cmd.partpagestyle} and
+\DescRef{\LabelBase.cmd.chapterpagestyle} (see
+\autoref{sec:\LabelBase.pagestyle},
+\DescPageRef{\LabelBase.cmd.titlepagestyle}).
+
+\BeginIndexGroup
+\BeginIndex[indexother]{}{font}%
+\BeginIndex[indexother]{}{font>style}%
+\BeginIndex[indexother]{}{font>size}%
+\BeginIndex{FontElement}{part}\LabelFontElement{part}%
+\BeginIndex{FontElement}{partnumber}\LabelFontElement{partnumber}%
+\BeginIndex{FontElement}{chapter}\LabelFontElement{chapter}%
+\BeginIndex{FontElement}{chapterprefix}\LabelFontElement{chapterprefix}%
+\BeginIndex{FontElement}{section}\LabelFontElement{section}%
+\BeginIndex{FontElement}{subsection}\LabelFontElement{subsection}%
+\BeginIndex{FontElement}{subsubsection}\LabelFontElement{subsubsection}%
+\BeginIndex{FontElement}{paragraph}\LabelFontElement{paragraph}%
+\BeginIndex{FontElement}{subparagraph}\LabelFontElement{subparagraph}%
+\BeginIndex{FontElement}{disposition}\LabelFontElement{disposition}%
+You\ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} can change the font style for all headings with the
+\DescRef{\LabelBase.cmd.setkomafont}\IndexCmd{setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont}\IndexCmd{addtokomafont} commands (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}). In doing so, the element
+\FontElement{disposition}\important{\FontElement{disposition}} is applied
+first, followed by the specific element\important{%
+ \FontElement{part}\\
+ \FontElement{chapter}\\
+ \FontElement{section}\\
+ \FontElement{subsection}\\
+ \FontElement{paragraph}\\
+ \FontElement{subparagraph}} for each sectioning level (see
+\autoref{tab:\LabelBase.fontelements},
+\autopageref{tab:\LabelBase.fontelements}). There is a separate elements,
+\FontElement{partnumber}, for the number of the part heading, and
+\FontElement{chapterprefix}, for the optional prefix line of chapter headings.
+The initial definition for the \FontElement{disposition} element is
+\Macro{normalcolor}\linebreak[2]\Macro{sffamily}\linebreak[2]\Macro{bfseries}.
+The default font sizes for the specific elements depends on the options
+\OptionValueRef{\LabelBase}{headings}{big},
+\OptionValueRef{\LabelBase}{headings}{normal}, and
+\OptionValueRef{\LabelBase}{headings}{small} (see
+\DescPageRef{\LabelBase.option.headings}). They are listed in
+\autoref{tab:\LabelBase.structureElementsFont}.
+% Umbruchkorrektur: Tabelle verschoben
+\begin{table}
+% \centering%
+% \caption
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Default font sizes for different levels of document
+ sectioning}]{%
+ \label{tab:\LabelBase.structureElementsFont}%
+ Default font sizes for different levels of document sectioning in
+ \Class{scrbook} and \Class{scrreprt}}[l]
+ \begin{tabular}[t]{lll}
+ \toprule
+ Class Option & Element & Default\\
+ \midrule
+ \OptionValueRef{\LabelBase}{headings}{big}
+ & \DescRef{\LabelBase.fontelement.part}\IndexFontElement{part}
+ & \Macro{Huge} \\
+ & \DescRef{\LabelBase.fontelement.partnumber}%
+ \IndexFontElement{partnumber}
+ & \Macro{huge} \\
+ & \DescRef{\LabelBase.fontelement.chapter}\IndexFontElement{chapter}
+ & \Macro{huge} \\
+ & \DescRef{\LabelBase.fontelement.chapterprefix}%
+ \IndexFontElement{chapterprefix}
+ & \DescRef{\LabelBase.cmd.usekomafont}\PParameter{chapter} \\
+ & \DescRef{\LabelBase.fontelement.section}\IndexFontElement{section}
+ & \Macro{Large} \\
+ & \DescRef{\LabelBase.fontelement.subsection}%
+ \IndexFontElement{subsection}
+ & \Macro{large} \\
+ & \DescRef{\LabelBase.fontelement.subsubsection}%
+ \IndexFontElement{subsubsection}
+ & \Macro{normalsize} \\
+ & \DescRef{\LabelBase.fontelement.paragraph}\IndexFontElement{paragraph}
+ & \Macro{normalsize} \\
+ & \DescRef{\LabelBase.fontelement.subparagraph}%
+ \IndexFontElement{subparagraph}
+ & \Macro{normalsize} \\[1ex]
+ \OptionValueRef{\LabelBase}{headings}{normal}
+ & \DescRef{\LabelBase.fontelement.part} & \Macro{huge} \\
+ & \DescRef{\LabelBase.fontelement.partnumber} & \Macro{huge} \\
+ & \DescRef{\LabelBase.fontelement.chapter} & \Macro{LARGE} \\
+ & \FontElement{chapterprefix}\IndexFontElement{chapterprefix}
+ & \DescRef{\LabelBase.cmd.usekomafont}\PParameter{chapter} \\
+ & \DescRef{\LabelBase.fontelement.section} & \Macro{Large} \\
+ & \DescRef{\LabelBase.fontelement.subsection} & \Macro{large} \\
+ & \DescRef{\LabelBase.fontelement.subsubsection} & \Macro{normalsize} \\
+ & \DescRef{\LabelBase.fontelement.paragraph} & \Macro{normalsize} \\
+ & \DescRef{\LabelBase.fontelement.subparagraph} & \Macro{normalsize} \\[1ex]
+ \OptionValueRef{\LabelBase}{headings}{small}
+ & \DescRef{\LabelBase.fontelement.part} & \Macro{LARGE} \\
+ & \DescRef{\LabelBase.fontelement.partnumber} & \Macro{LARGE} \\
+ & \DescRef{\LabelBase.fontelement.chapter} & \Macro{Large} \\
+ & \FontElement{chapterprefix}\IndexFontElement{chapterprefix}
+ & \DescRef{\LabelBase.cmd.usekomafont}\PParameter{chapter} \\
+ & \DescRef{\LabelBase.fontelement.section} & \Macro{large} \\
+ & \DescRef{\LabelBase.fontelement.subsection} & \Macro{normalsize} \\
+ & \DescRef{\LabelBase.fontelement.subsubsection} & \Macro{normalsize} \\
+ & \DescRef{\LabelBase.fontelement.paragraph} & \Macro{normalsize} \\
+ & \DescRef{\LabelBase.fontelement.subparagraph} & \Macro{normalsize}\\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+%
+\begin{Example}
+ Suppose you use the \OptionValueRef{\LabelBase}{headings}{big} class option
+ and notice that the very large headings of the document parts are too bold.
+ You could change this as follows:
+\begin{lstcode}
+ \setkomafont{disposition}{\normalcolor\sffamily}
+ \part{Appendices}
+ \addtokomafont{disposition}{\bfseries}
+\end{lstcode}
+Using the command above you only switch off the font attribute
+\textbf{bold} for a heading ``Appendices''. A much more convenient
+and elegant solution is to change all \Macro{part} headings at once.
+This is done either by:
+\begin{lstcode}
+ \addtokomafont{part}{\normalfont\sffamily}
+ \addtokomafont{partnumber}{\normalfont\sffamily}
+\end{lstcode}
+ or simply:
+\begin{lstcode}
+ \addtokomafont{part}{\mdseries}
+ \addtokomafont{partnumber}{\mdseries}
+\end{lstcode}
+The second version is preferred because it gives you the correct result
+even if you change the \DescRef{\LabelBase.fontelement.disposition}
+element\IndexFontElement{disposition}, for instance:
+\begin{lstcode}
+ \setkomafont{disposition}{\normalcolor\bfseries}
+\end{lstcode}
+ With this change, it is possible to set all section levels at once to no
+ longer use sans serif fonts.
+\end{Example}
+
+I strongly advise against using the ability to switch fonts in order to mix
+fonts, font sizes, and font attributes wildly. Picking the right font for the
+job is a matter for experts and has almost nothing to do with the personal
+tastes of non-experts. See the citation at the end of
+\autoref{sec:typearea.tips}, \autopageref{sec:typearea.tips.cite} and to the
+following explanation.
+
+\begin{Explain}
+ It is possible to use different font types for different sectioning
+ levels in {\KOMAScript}. Non-experts in typography should absolutely avoid
+ doing so for excellent typographical reasons.
+
+ A rule of typography states that you should mix as few fonts as possible.
+ Using sans serif for headings already seems to violate this rule. However,
+ you should realize that large, bold, serif letters are much too heavy for
+ headings. Strictly speaking, you should then use a normal instead of a bold
+ or semi-bold font. However, in deeper levels of the sectioning, a normal
+ font may then appear too light. On the other hand, sans serif fonts have a
+ very pleasant appearance in headings, and almost solely in headings. There
+ is, therefore, good reason why sans serif is the default in {\KOMAScript}.
+
+ Greater variety should, however, be avoided. Font mixing is something for
+ professionals. For this reason, if you want to use fonts other than the
+ standard {\TeX} fonts\,---\,regardless of whether these are CM\Index{CM
+ fonts}, EC\Index{EC fonts}, or LM fonts\Index{LM fonts}\,---\,you should
+ consult an expert about the compatibility of the sans serif and serif fonts,
+ or redefine the element
+ \DescRef{\LabelBase.fontelement.disposition}\IndexFontElement{disposition}
+ as a precautionary measure. The author considers the commonly encountered
+ combinations of Times and Helvetica or Palatino with Helvetica to be
+ awkward.
+\end{Explain}
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{part*}\Parameter{heading}%
+ \Macro{chapter*}\Parameter{heading}%
+ \Macro{section*}\Parameter{heading}%
+ \Macro{subsection*}\Parameter{heading}%
+ \Macro{subsubsection*}\Parameter{heading}%
+ \Macro{paragraph*}\Parameter{heading}%
+ \Macro{subparagraph*}\Parameter{heading}
+\end{Declaration}%
+The starred variants of all sectioning commands produce
+unnumbered\Index{numbering} headings which do not appear in the table of
+contents\Index{table>of contents}\Index{contents>table of} or in the running
+head\Index{running head}. The absence of a running head often has an unwanted
+side effect. If, for example, a chapter set using \Macro{chapter*} spans
+several pages, then the running head of the previous chapter suddenly
+reappears. {\KOMAScript} offers a solution for this problem, described below.
+\Macro{chapter*}\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} only exists in
+book and report classes, that is, \Class{book}, \Class{scrbook},
+\Class{report} and \Class{scrreport}, not in the article classes
+\Class{article} and \Class{scrartcl}.
+
+Please\textnote{Attention!} note that \DescRef{\LabelBase.cmd.part} and
+\DescRef{\LabelBase.cmd.chapter} change the page style for one page. While the
+standard classes use the \PageStyle{plain} page style, {\KOMAScript} applies
+the style defined in the \DescRef{\LabelBase.cmd.partpagestyle} and
+\DescRef{\LabelBase.cmd.chapterpagestyle} macros (see
+\autoref{sec:\LabelBase.pagestyle},
+\DescPageRef{\LabelBase.cmd.titlepagestyle}).
+
+The possibilities for switching fonts\ChangedAt{v2.8p}{%
+ \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} %
+described above for the unstarred variants apply without change. The elements
+use the same names since they do not indicate variants but structuring
+levels.%
+%
+\EndIndexGroup
+
+
+\iffalse% Umbruchkorrekturtext
+ In the standard classes\textnote{\KOMAScript{} vs. standard classes} there
+ are no further structuring commands. In particular, there are no commands
+ which can produce unnumbered chapters or sections which show up in the table
+ of contents and in the running heading.%
+\fi
+
+
+\begin{Declaration}
+ \Macro{addpart}\OParameter{short version}\Parameter{heading}%
+ \Macro{addpart*}\Parameter{heading}%
+ \Macro{addchap}\OParameter{short version}\Parameter{heading}%
+ \Macro{addchap*}\Parameter{heading}%
+ \Macro{addsec}\OParameter{short version}\Parameter{heading}%
+ \Macro{addsec*}\Parameter{heading}
+ \textnote[n]{\KOMAScript{} vs. standard classes}
+\end{Declaration}%
+In addition to the commands of the standard classes, {\KOMAScript} offers the
+new commands \Macro{addpart}, \Macro{addsec} and \Macro{addchap}. They are
+similar to the standard commands \DescRef{\LabelBase.cmd.part}\IndexCmd{part}%
+\important{\DescRef{\LabelBase.cmd.part}, \DescRef{\LabelBase.cmd.chapter},
+ \DescRef{\LabelBase.cmd.section}},
+\DescRef{\LabelBase.cmd.chapter}\IndexCmd{chapter} and
+\DescRef{\LabelBase.cmd.section}\IndexCmd{section} except that they are
+unnumbered. They thus produce both a running head and an entry in the table of
+contents.
+
+The starred variants \Macro{addchap*} and \Macro{addsec*} are similar to the
+standard commands \DescRef{\LabelBase.cmd.chapter*} and
+\DescRef{\LabelBase.cmd.section*} except for a small but important difference:
+the running heads are deleted. This eliminates the side effect of obsolete
+headers mentioned above. Instead, the running heads on subsequent pages remain
+empty. \OnlyAt{\Class{book}\and \Class{scrreprt}}\Macro{addchap} and
+\Macro{addchap*} only exist, of course, in book and report classes, namely
+\Class{book}, \Class{scrbook}, \Class{report} and \Class{scrreport}, not in
+the article classes \Class{article} and \Class{scrartcl}.
+
+The \Macro{addpart} command produces an unnumbered document part with an
+entry in the table of contents. Since the running heads are already deleted
+by \DescRef{\LabelBase.cmd.part} and \DescRef{\LabelBase.cmd.part*} the
+previously mentioned problem with obsolete headers does not exist. The starred
+version \Macro{addpart*} is thus identical to \DescRef{\LabelBase.cmd.part*}
+and is only defined for reasons of consistency.
+
+Please note\textnote{Attention!} that \Macro{addpart} and \Macro{addchap} and
+their starred variants change the page style for one page. The particular page
+style is defined in the macros \DescRef{\LabelBase.cmd.partpagestyle} and
+\DescRef{\LabelBase.cmd.chapterpagestyle} (see
+\autoref{sec:\LabelBase.pagestyle},
+\DescPageRef{\LabelBase.cmd.titlepagestyle}).
+\iffree{\iffalse}{\csname iftrue\endcsname}% Umbruchkorrekturbeispiel
+ \begin{Example}
+ You write a book with a long afterword that spans several pages. This
+ should receive neither a running head nor an entry in the table of
+ contents. Therefore, you first use \DescRef{\LabelBase.cmd.chapter*}:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage{blindtext}
+ \begin{document}
+ \tableofcontents
+ \blinddocument
+ \chapter*{Afterword}
+ \Blindtext[10]
+ \end{document}
+\end{lstcode}
+ However, you discover that the running head of the previous chapter
+ reappears on the second and third pages of the afterword. Naturally, you do
+ not want that. Therefore, you use \Macro{addchap*}:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage{blindtext}
+ \begin{document}
+ \tableofcontents
+ \blinddocument
+ \addchap*{Afterword}
+ \Blindtext[10]
+ \end{document}
+\end{lstcode}
+ The complete postscript is now without a running head, if that is what you
+ want. But even that does not quite meet your expectations. A running head
+ would be nice. With
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage{blindtext}
+ \begin{document}
+ \tableofcontents
+ \blinddocument
+ \addchap{Afterword}
+ \Blindtext[10]
+ \end{document}
+\end{lstcode}
+ you now get both ``Afterword'' as the running head on the even pages and an
+ entry in the table of contents. But this entry bothers your publisher. He
+ insists that the afterword have no entry in the table of contents. Even if
+ that seems strange to you, you want to satisfy the publisher, so with
+ \OptionValueRef{\LabelBase}{headings}{optiontotocandhead} you first
+ activate the extended function for the optional argument and then
+ explicitly set an empty argument for the table of contents:
+\begin{lstcode}
+ \documentclass[headings=optiontotocandhead]
+ {scrbook}
+ \usepackage{blindtext}
+ \begin{document}
+ \tableofcontents
+ \blinddocument
+ \addchap[tocentry={}]{Afterword}
+ \Blindtext[10]
+ \end{document}
+\end{lstcode}
+ The running head is not changed by \OptionValue{tocentry}{\{\}}. Since
+ \Class{scrbook} automatically omits empty entries in the table of contents,
+ the publisher is now satisfied.
+ \end{Example}%
+\fi
+
+The possibilities for switching fonts\ChangedAt{v2.8p}{%
+ \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} %
+described above for the unstarred variant of the sectioning commands apply
+without change. The elements have the same names since they do not designate
+variants but sectioning levels.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{minisec}\Parameter{heading}
+\end{Declaration}%
+Sometimes you want a heading\Index{heading} that is highlighted but also
+closely linked to the following text. Such a heading should not be separated
+by a large vertical skip.
+
+The \Macro{minisec} command is designed for this situation. This heading is
+not associated with any sectioning level\textnote{no sectioning level}. Such a
+\emph{mini-section} does not produce an entry in the table of contents, nor
+does it receive any numbering.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{minisec}\LabelFontElement{minisec}%
+You can change the font of the \Macro{minisec} command using the
+\DescRef{\LabelBase.fontelement.disposition}%
+\important{\DescRef{\LabelBase.fontelement.disposition}\\
+\FontElement{minisec}} and \FontElement{minisec}\ChangedAt{v2.96a}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} element (see
+\autoref{tab:maincls.fontelements}, \autopageref{tab:maincls.fontelements}).
+The default of the \FontElement{minisec} element is empty, so by default only
+the \DescRef{\LabelBase.fontelement.disposition} element is used.%
+\EndIndexGroup
+
+\begin{Example}
+ You have developed a kit for building a mouse trap and want the
+ documentation separated into a list of necessary items and an
+ assembly description. You could write the following:
+\begin{lstcode}
+ \documentclass{scrartcl}
+
+ \begin{document}
+
+ \title{DIY Projects}
+ \author{Two Left Thumbs}
+ \date{\today}
+ \maketitle
+
+ \section{Mousetrap}
+
+ The first project is suitable for beginners and only requires
+ a few components that should be found in every household.
+
+ \minisec{Material Required}
+
+ \begin{flushleft}
+ 1 board ($100\times 50 \times 12$)\\
+ 1 swing-top cap of a beer-bottle\\
+ 1 ballpoint pen\\
+ 1 push pin\\
+ 2 screws\\
+ 1 hammer\\
+ 1 knife
+ \end{flushleft}
+
+ \minisec{Assembly}
+ First, find the mouse hole and put the push pin directly behind
+ the hole so that the mouse cannot escape during the following
+ actions.
+
+ Next tap the swing-top cap into the mouse hole with the hammer.
+ If the cap is not big enough to block the hole completely and
+ permanently, take the board instead and screw it to the front
+ of the mouse hole using the two screws and the knife. Of
+ course, you can use a screwdriver instead of a knife. The
+ ballpoint pen has fallen victim to animal welfare.
+ \end{document}
+\end{lstcode}
+ The main part, starting with the heading ``Material Required'' will look
+ like this:
+ \begin{ShowOutput}[\baselineskip]\setlength{\parindent}{1em}
+ \minisec{Material Required}
+
+ \begin{flushleft}
+ 1 board ($100\times 50 \times 12$)\\
+ 1 swing-top cap of a beer-bottle\\
+ 1 ballpoint pen\\
+ 1 push pin\\
+ 2 screws\\
+ 1 hammer\\
+ 1 knife
+ \end{flushleft}
+
+ \minisec{Assembly}
+ First, find the mouse hole and put the push pin directly behind the hole
+ so that the mouse cannot escape during the following actions.
+
+ Next tap the swing-top cap into the mouse hole with the hammer. If the cap
+ is not big enough to block the hole completely and permanently, take the
+ board instead and screw it to the front of the mouse hole using the two
+ screws and the knife. Of course, you can use a screwdriver instead of a
+ knife. The ballpoint pen has fallen victim to animal welfare.
+ \end{ShowOutput}
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{raggedsection}%
+ \Macro{raggedchapter}%
+ \Macro{raggedpart}
+\end{Declaration}%
+In the standard classes\textnote{\KOMAScript{} vs. standard classes}, headings
+are set as justified text. That means that hyphenated words can occur and
+multi-line headings are stretched up to the text width. This approach is
+rather uncommon in typography. {\KOMAScript} therefore sets the
+headings left aligned with hanging indentation using \Macro{raggedsection}
+with the default:
+\begin{lstcode}
+ \newcommand*{\raggedsection}{\raggedright}
+\end{lstcode}
+You can redefine this command with \Macro{renewcommand}.
+\begin{Example}
+ You prefer justified headings, so you write in the preamble of your document:
+\begin{lstcode}
+ \renewcommand*{\raggedsection}{}
+\end{lstcode}
+ or more compactly:
+\begin{lstcode}
+ \let\raggedsection\relax
+\end{lstcode}
+ You will get heading formatting which is very close to that of the standard
+ classes. It will become even closer when you combine this change with the
+ change to the
+ \DescRef{\LabelBase.fontelement.disposition}\IndexFontElement{disposition}
+ element mentioned above.
+\end{Example}
+
+Because\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}} some users want
+a different alignment for the \DescRef{\LabelBase.cmd.chapter} level than for
+the other sectioning levels, you can change the
+\DescRef{\LabelBase.cmd.chapter} justification separately by redefining
+\Macro{raggedchapter}. By default, however, this command simply uses
+\Macro{raggedsection}, so changing \Macro{raggedsection} indirectly affects
+\Macro{raggedchapter}.
+
+By default, part headings (\DescRef{\LabelBase.cmd.part}) are set horizontally
+centred rather than ragged right. This formatting is performed by the
+\Macro{raggedpart} statement, which has the default definition
+\begin{lstcode}
+ \let\raggedpart\centering
+\end{lstcode}
+You can also redefine this command using \Macro{renewcommand}.
+\begin{Example}
+ You want the headings for \DescRef{\LabelBase.cmd.part} to be formatted the
+ same as any other sectioning command. To do so, put
+\begin{lstcode}
+ \renewcommand*{\raggedpart}{\raggedsection}
+\end{lstcode}
+ in the preamble of your document. In\textnote{Hint!} this case, and unlike
+ in the example above, we did not use \Macro{let} because \Macro{let} would
+ set \Macro{raggedpart} to the underlying value of \Macro{raggedsection}.
+ Subsequent changes to \Macro{raggedsection} would then not change the
+ behaviour of \Macro{raggedpart}. By redefining with \Macro{renewcommand},
+ \Macro{raggedpart} will use the current meaning of \Macro{raggedsection} at
+ the time it is used rather than when it was redefined.
+\end{Example}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{partformat}
+ \Macro{chapterformat}
+ \Macro{sectionformat}
+ \Macro{subsectionformat}
+ \Macro{subsubsectionformat}
+ \Macro{paragraphformat}
+ \Macro{subparagraphformat}
+ \Macro{othersectionlevelsformat}\Parameter{sectioning name}\Parameter{}
+ \Parameter{counter output}
+ \Macro{IfUsePrefixLine}\Parameter{then code}\Parameter{else code}
+ \Macro{autodot}
+\end{Declaration}%
+{\KOMAScript} adds another logical layer above \Macro{the\PName{sectioning
+ name}} to format the sectioning numbers. The counters for each heading are
+not merely output. They are formatted using the commands \Macro{partformat},
+\Macro{chapterformat}, down to
+\Macro{subparagraphformat}\ChangedAt{v3.17}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}. Of course the \Macro{chapterformat}
+command, like \Macro{thechapter}, does not exist in the \Class{scrartcl}
+class, but only in the \Class{scrbook} and \Class{scrreprt}
+classes.\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}
+
+As already explained for the \DescRef{\LabelBase.option.numbers}%
+\important{\DescRef{\LabelBase.option.numbers}} option at the beginning of
+this section (see \DescPageRef{\LabelBase.option.numbers}), {\KOMAScript}'s
+handling of points in section numbers implements the rules given in
+\cite{DUDEN}, which are standard in German-language typography, in the
+\Macro{autodot} command. In all levels except for
+\DescRef{\LabelBase.cmd.part}, a point is followed by a further
+\Macro{enskip}. This corresponds to a horizontal skip of 0.5\Unit{em}.
+
+Since \KOMAScript~3.17\ChangedAt{v3.17}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}, the command
+\Macro{othersectionlevelsformat} is used only in rare circumstances, i.\,e.,
+if the corresponding format command to a section command does not exist or is
+\Macro{relax}. This should not happen for any section commands defined by
+\KOMAScript{} itself. Therefore the command is no longer officially
+documented. Nevertheless, if you select a compatibility level prior to
+3.17\important{\OptionValueRef{\LabelBase}{version}{3.17}} (see option
+\DescRef{\LabelBase.option.version},
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}), commands \Macro{sectionformat} down
+to \Macro{subparagraphformat} are ignored by \KOMAScript{}. Instead, these
+layers will continue to use \Macro{othersectionlevelsformat}.
+
+You can redefine the formatting commands using \Macro{renewcommand} to fit
+them to your personal needs. The following default definitions are used by the
+{\KOMAScript} classes:
+\begin{lstcode}
+ \newcommand*{\partformat}{\partname~\thepart\autodot}
+ \newcommand*{\chapterformat}{%
+ \mbox{\chapappifchapterprefix{\nobreakspace}\thechapter
+ \autodot\IfUsePrefixLine{}{\enskip}}}
+ \newcommand*{\sectionformat}{\thesection\autodot\enskip}
+ \newcommand*{\subsectionformat}{%
+ \thesubsection\autodot\enskip}
+ \newcommand*{\subsubsectionformat}{%
+ \thesubsubsection\autodot\enskip}
+ \newcommand*{\paragraphformat}{\theparagraph\autodot\enskip}
+ \newcommand*{\subparagraphformat}{%
+ \thesubparagraph\autodot\enskip}
+ \newcommand*{\othersectionlevelsformat}[3]{%
+ #3\autodot\enskip}
+\end{lstcode}
+
+Because\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}} it uses
+\Macro{IfUsePrefixLine}, \Macro{chapterformat} should not be used outside of
+\DescRef{\LabelBase.cmd.chapter}. \Macro{IfUsePrefixLine} is only valid inside
+\KOMAScript{} sectioning commands. Within those commands, it executes the
+\PName{then code} if a prefix line for the number is used and the \PName{else
+code} otherwise.
+
+Please also remember\textnote{Attention!} to replace \Macro{newcommand} with
+\Macro{renewcommand} if you want to redefine one of the commands above.
+
+\begin{Example}
+ Suppose you do not want the word ``Part'' written in front of the part
+ number when you use \DescRef{\LabelBase.cmd.part}. You can put the
+ following command in the preamble of your document:
+\begin{lstcode}
+ \renewcommand*{\partformat}{\thepart\autodot}
+\end{lstcode}
+ In fact, you could do without \Macro{autodot} here and insert a fixed point
+ instead. Since \DescRef{\LabelBase.cmd.part} is numbered with Roman numerals,
+ it must be followed by a point according to \cite{DUDEN}. However, by using
+ \Macro{autodot} you retain the ability to use the
+ \DescRef{\LabelBase.option.numbers}%
+ \important{\DescRef{\LabelBase.option.numbers}} option
+ \OptionValueRef{\LabelBase}{numbers}{endperiod} and thus deviate from
+ the rule. You can find more details concerning class options on
+ \DescPageRef{\LabelBase.option.numbers}.
+
+ Another possibility is to place the section numbers in the left margin in
+ such a way that the heading text is left aligned with the surrounding text.
+ You can accomplish this with:
+\begin{lstcode}
+ \renewcommand*{\sectionformat}{%
+ \makebox[0pt][r]{\thesection\autodot\enskip}}
+ \renewcommand*{\subsectionformat}{%
+ \makebox[0pt][r]{\thesubsection\autodot\enskip}}
+ \renewcommand*{\subsubsectionformat}{%
+ \makebox[0pt][r]{%
+ \thesubsubsection\autodot\enskip}}
+ \renewcommand*{\paragraphformat}{%
+ \makebox[0pt][r]{\theparagraph\autodot\enskip}}
+ \renewcommand*{\paragraphformat}{%
+ \makebox[0pt][r]{%
+ \thesubparagraph\autodot\enskip}}
+\end{lstcode}
+ The optional arguments of the \Macro{makebox} command require \LaTeX{} to
+ create a zero-width box with right-justified content. As a result, the
+ contents of the box are output to the left of the current position.%
+ \iffree{}{ %Umbruchkorrekturtext
+ This popular trick avoids the need first to measure the width of the
+ number and the spacing, and then to change the current position
+ appropriately with \Macro{hspace}.}
+ You can find more about the optional arguments of \Macro{makebox} in
+ \cite{latex:usrguide}.
+\end{Example}
+
+For formatting changes in the headings that go beyond merely formatting the
+unit number, please refer to
+\DescRef{maincls-experts.cmd.partlineswithprefixformat}%
+\IndexCmd{partlineswithprefixformat},
+\DescRef{maincls-experts.cmd.chapterlineswithprefixformat}%
+\IndexCmd{chapterlineswithprefixformat} and
+\DescRef{maincls-experts.cmd.chapterlinesformat}\IndexCmd{chapterlinesformat},
+as well as
+\DescRef{maincls-experts.cmd.sectionlinesformat}\IndexCmd{sectionlinesformat}
+and its \DescRef{maincls-experts.cmd.sectioncatchphraseformat}%
+\IndexCmd{sectioncatchphraseformat} format in
+\autoref{sec:maincls-experts.experts}, starting from
+\DescPageRef{maincls-experts.cmd.partlineswithprefixformat}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{chapappifchapterprefix}\Parameter{additional text}%
+ \Macro{chapapp}
+\end{Declaration}%
+These\ChangedAt{v2.8o}{\Class{scrbook}\and\Class{scrreprt}} two commands are
+used internally by {\KOMAScript} and also made available to the user. Later,
+you will see how to use them, for example to redefine other commands.%
+\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}
+
+If you use the layout option \OptionValueRef{\LabelBase}{chapterprefix}{true}%
+\important{\DescRef{\LabelBase.option.chapterprefix}} (see
+\DescPageRef{\LabelBase.option.chapterprefix}), \Macro{chapappifchapterprefix}
+outputs the word ``Chapter''\Index{chapter>heading} in the body of the text in
+the current language, followed by \PName{additional text}. In the
+appendix\Index{appendix}, the word ``Appendix'' in the current language is
+output instead, followed by \PName{additional text}. If the option
+\OptionValue{\LabelBase}{chapterprefix}{false} is set, then nothing is output.
+
+The \Macro{chapapp} command always outputs the word ``Chapter'' or
+``Appendix'', regardless of the setting of the
+\DescRef{\LabelBase.option.chapterprefix} option.
+
+Since chapters only exist in the classes \Class{scrbook} and \Class{scrreprt},
+these commands only exist in these classes.%
+%
+\EndIndexGroup
+
+
+\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}%
+\begin{Explain}%
+ As mentioned in \autoref{sec:\LabelBase.pagestyle}, the
+ \DescRef{\LabelBase.pagestyle.headings}\IndexPagestyle{headings}%
+ \important{\DescRef{\LabelBase.pagestyle.headings}} page style works with
+ automatic running heads\Index{running heads>automatic}. For this, the
+ commands \Macro{chaptermark} and \Macro{sectionmark}, or \Macro{sectionmark}
+ and \Macro{subsectionmark}, are defined accordingly. Every sectioning
+ command (\DescRef{\LabelBase.cmd.chapter}, \DescRef{\LabelBase.cmd.section},
+ etc.) automatically executes the corresponding \Macro{\dots mark} command.
+ The parameter passed contains the text of the section heading%
+ \Index{heading}. The corresponding section number is added automatically in
+ the \Macro{\dots mark} command. The formatting is done according to the
+ sectioning level with one of the three commands \Macro{chaptermarkformat},
+ \Macro{sectionmarkformat}, or \Macro{subsectionmarkformat}.
+
+ Note\textnote{Attention!} that the running heads of
+ \DescRef{\LabelBase.cmd.addchap}\IndexCmd{addchap} and
+ \DescRef{\LabelBase.cmd.addsec}\IndexCmd{addsec} are also based on
+ \Macro{chaptermark} and \Macro{sectionmark}. However, the
+ \DescRef{\LabelBase.counter.secnumdepth} counter is set locally to a value
+ that switches off the numbering of chapters or sections. You should consider
+ this, for example, if you redefine \Macro{chaptermark} or
+ \Macro{sectionmark} (see \Macro{ifnumbered} on
+ \DescPageRef{\LabelBase.cmd.ifnumbered}). The starred variants
+ \DescRef{\LabelBase.cmd.addchap*} and \DescRef{\LabelBase.cmd.addsec*} use
+ additional commands \Macro{addchapmark} and \Macro{addsecmark} that are also
+ defined based on \Macro{chaptermark} and \Macro{sectionmark} with local
+ changes of \DescRef{\LabelBase.counter.secnumdepth}.
+
+ Although\OnlyAt{\Class{scrartcl}} there is no \Macro{chaptermark} or
+ \Macro{chaptermarkformat} command in \Class{scrartcl}, there are two
+ commands, \Macro{subsectionmark} and \Macro{subsectionmarkformat}, which
+ exist only in \Class{scrartcl}. However using the
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ \IndexPackage{scrlayer-scrpage} package changes this (see
+ \autoref{cha:scrlayer-scrpage}).
+\end{Explain}
+Just as numbers in the sectioning-command headers are formatted with
+\DescRef{\LabelBase.cmd.partformat} down to
+\DescRef{\LabelBase.cmd.subparagraphformat}, \Macro{chaptermarkformat},
+\Macro{sectionmarkformat}, and \Macro{subsectionmarkformat} define the
+formatting of the sectioning numbers in the automatic running heads. They can
+be adapted to your personal needs with \Macro{renewcommand}. The original
+definitions for the {\KOMAScript} classes are:
+\begin{lstcode}
+ \newcommand*{\chaptermarkformat}{%
+ \chapappifchapterprefix{\ }\thechapter\autodot\enskip}
+ \newcommand*{\sectionmarkformat}{%
+ \thesection\autodot\enskip}
+ \newcommand*{\subsectionmarkformat}{%
+ \thesubsection\autodot\enskip}
+\end{lstcode}
+\begin{Example}
+ Suppose you want the word ``Chapter'' to precede the chapter number in the
+ running head. You could put the following definition in the preamble of your
+ document:
+\begin{lstcode}
+ \renewcommand*{\chaptermarkformat}{%
+ \chapapp~\thechapter\autodot\enskip}
+\end{lstcode}
+\end{Example}
+As you can see, both \DescRef{\LabelBase.cmd.chapapp} and
+\DescRef{\LabelBase.cmd.chapappifchapterprefix}, explained above, are used
+here.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Counter{secnumdepth}
+ \Macro{partnumdepth}
+ \Macro{chapternumdepth}
+ \Macro{sectionnumdepth}
+ \Macro{subsectionnumdepth}
+ \Macro{subsubsectionnumdepth}
+ \Macro{paragraphnumdepth}
+ \Macro{subparagraphnumdepth}
+\end{Declaration}%
+\BeginIndex{}{Nummerierung}%
+Normally, the \Class{scrbook}\IndexClass{scrbook} and
+\Class{scrreport}\IndexClass{scrreprt} classes number the section headings
+from \DescRef{\LabelBase.cmd.part}\IndexCmd{part}\IndexCmd{chapter}%
+\IndexCmd{section} down to
+\DescRef{\LabelBase.cmd.subsection}\IndexCmd{subsection} and the
+\Class{scrartcl}\IndexClass{scrartcl} class numbers them from
+\DescRef{\LabelBase.cmd.part} down to
+\DescRef{\LabelBase.cmd.subsubsection}\IndexCmd{subsubsection}. The actual
+depth to which headings are numbered is controlled by the \LaTeX{} counter
+\Counter{secnumdepth}.
+
+To\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}
+save users the trouble of having to remember abstract numbers, the commands
+\Macro{partnumdepth} to \Macro{subparagraphnumdepth} return the appropriate
+number for the section level in their name.
+
+\begin{Example}
+ For a book project, you want the section levels from part down to section
+ to be numbered. To achieve this, you have to set counter
+ \Counter{secnumdepth} to the value represented by \Macro{sectionnumdepth} in
+ the preamble of your document:
+\begin{lstcode}
+ \setcounter{secnumdepth}{\sectionnumdepth}
+\end{lstcode}
+\end{Example}
+No provision is made for redefining these commands. Doing so could lead to
+unexpected results, not only with \KOMAScript{} but also with third party
+packages. Thus, you should never redefine them.
+
+Do\textnote{Attention!} not confuse the \Counter{secnumdepth} and
+\DescRef{\LabelBase.counter.tocdepth} counters (see
+\autoref{sec:\LabelBase.toc}, \DescPageRef{\LabelBase.counter.tocdepth}).
+Depending on the class you are using, the meaning of the values of the
+\Counter{secnumdepth} and \DescRef{\LabelBase.counter.tocdepth} counters may
+differ for the same section level.%
+%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{ifnumbered}\Parameter{section level}%
+ \Parameter{then code}\Parameter{else code}%
+ \Macro{ifunnumbered}\Parameter{section level}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+The\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} commands \Macro{ifnumbered} and \Macro{ifunnumbered}
+determine which section-level headings are numbered, using the technique
+described above, and execute code depending on whether a \PName{section level}
+is numbered or not. If a \PName{section level} is numbered with the current
+settings, \Macro{ifnumbered} executes the \PName{then code}. If the section
+level is unnumbered, the \PName{else code} is executed. The
+\Macro{ifunnumbered} command behaves in exactly the opposite manner, executing
+the \PName{then code} if the current level is unnumbered and the \PName{else
+ code} if it is. The \PName{section level} parameter is simply the \LaTeX{}
+name of a section like \PValue{part}, \PValue{chapter}, \PValue{section},
+\PValue{subsection}, \PValue{subsubsection}, \PValue{paragraph} oder
+\PValue{subparagraph}.\PValue{part}, \PValue{chapter}, \PValue{section},
+\PValue{subsection}, \PValue{subsubsection}, \PValue{paragraph}, or
+\PValue{subparagraph}.
+
+\KOMAScript{} itself uses these tests, for example, in the definition of
+\DescRef{\LabelBase.cmd.chaptermark}\IndexCmd{chaptermark} in the
+\DescRef{\LabelBase.pagestyle.headings}\IndexPagestyle{headings} page style.
+This indirectly ensures that headings inserted by
+\DescRef{\LabelBase.cmd.addchap} do not set a number inside the running head
+(see also \DescRef{\LabelBase.cmd.addchapmark},
+\DescPageRef{\LabelBase.cmd.addchapmark}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setpartpreamble}%
+ \OParameter{position}\OParameter{width}\Parameter{preamble}
+ \Macro{setchapterpreamble}%
+ \OParameter{position}\OParameter{width}\Parameter{preamble}
+\end{Declaration}%
+Parts\OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}}\Index{part>preamble}\Index{chapter>preamble} and chapters
+in {\KOMAScript} can be given a \PName{preamble}. This is particularly useful
+when you are using a two-column format with the class option
+\Option{twocolumn}\IndexOption{twocolumn}, since the heading and the
+\PName{preamble} are always set in a one-column layout. The \PName{preamble}
+can contain more than one paragraph. The command to set the \PName{preamble}
+must come before the respective \DescRef{\LabelBase.cmd.part},
+\DescRef{\LabelBase.cmd.addpart}, \DescRef{\LabelBase.cmd.chapter}, or
+\DescRef{\LabelBase.cmd.addchap} command.
+\begin{Example}
+ You are writing a report about the condition of a company. You organize the
+ report in such a way that every department gets its own partial report.
+ Each of these parts should be introduced by an abstract on the corresponding
+ title page. You could write the following:
+\begin{lstcode}
+ \setpartpreamble{%
+ \begin{abstract}
+ This is a filler text. It serves merely to demonstrate the
+ capabilities of {\KOMAScript}. If you read this text, you will
+ get no information.
+ \end{abstract}
+ }
+ \part{Department for Word Processing}
+\end{lstcode}
+ Depending on the settings for the heading font size\Index{heading}
+ (see \DescPageRef{\LabelBase.option.headings}) and the options for
+ the \DescRef{\LabelBase.env.abstract} environment\IndexEnv{abstract} (see
+ \autoref{sec:\LabelBase.abstract},
+ \DescPageRef{\LabelBase.option.abstract}), the result will look something
+ like this:
+ \begin{ShowOutput}\centering
+ {\LARGE\usekomafont{disposition} Part III.\par\vspace{14pt}}
+ {\LARGE\usekomafont{disposition} Department for Word Processing\strut\par}
+ \begin{quote}\small
+ \vspace{4ex}
+ \begin{center}
+ \usekomafont{disposition}\abstractname
+ \end{center}
+ \vspace{2ex}
+ This is a filler text. It serves merely to demonstrate the
+ capabilities of {\KOMAScript}. If you read this text, you will
+ get no information.
+ \end{quote}
+ \end{ShowOutput}
+\end{Example}
+Please\textnote{Attention!} note that \emph{you} are responsible for the
+spacing between the heading, preamble, and the following text. Note also that
+there is no \DescRef{\LabelBase.env.abstract} environment in the
+\Class{scrbook} class (see \autoref{sec:\LabelBase.abstract},
+\DescPageRef{\LabelBase.env.abstract}).
+
+The\ChangedAt{v2.8p}{\Class{scrbook}\and\Class{scrreprt}} first optional
+argument, \PName{position}, determines the position at which the preamble
+is placed with the help of one or two letters. For vertical placement
+there are two possibilities at present:
+\begin{labeling}[~--]{\quad\PValue{o}}\itemsep=0pt
+\item [\quad\texttt{o}] above the heading
+\item [\quad\texttt{u}] below the heading
+\end{labeling}
+You can therefore put one preamble above and another below a heading. For
+horizontal placement you have three options:
+\begin{labeling}[~--]{\quad\PValue{o}}\itemsep=0pt
+\item [\quad\texttt{l}] left-aligned
+\item [\quad\texttt{r}] right-aligned
+\item [\quad\texttt{c}] centred
+\end{labeling}
+This setting does not affect the alignment of the text in the
+\PName{preamble}. Instead, it aligns the box that contains the preamble. The
+width of this box is determined by the second optional argument,
+\PName{width}. If you omit this second argument, the box uses the full text
+width. In that case, the option for horizontal positioning has no effect. You
+can combine exactly one letter from the vertical with one letter from the
+horizontal positioning.
+
+A typical use for \Macro{setchapterpreamble} would be something like an
+epigraph, a wise saying, or a dictum. The
+\DescRef{\LabelBase.cmd.dictum}\IndexCmd{dictum} command, which you can use
+for this purpose, is described in the next section. You will also find an
+example there.
+
+Please note\textnote{Attention!} that a \PName{preamble} placed above the
+heading is set within the existing vertical space above the heading. The
+heading will not be moved down. You are therefore responsible for ensuring
+that the \PName{preamble} is not too large and that the space above the
+heading is sufficient. See also the \Option{beforeskip} setting for
+\DescRef{maincls-experts.cmd.RedeclareSectionCommand} in
+\autoref{sec:maincls-experts.experts},
+\autoref{tab:maincls-experts.declarechapterstyle.keys},
+\autopageref{tab:maincls-experts.declarechapterstyle.keys}.
+%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{dictum}% \section{Dicta}
+
+\LoadCommonFile{lists}% \section{Lists}
+
+\section{Mathematics}
+\seclabel{math}%
+\BeginIndexGroup
+\BeginIndex{}{equations}%
+\BeginIndex{}{formulas}%
+\BeginIndex{}{mathematics}%
+
+\KOMAScript{} classes do not provide their own environments for formulas,
+systems of equations, or similar mathematical elements. Instead, \KOMAScript{}
+relies fully on the maths features of the \LaTeX{} kernel. This also applies to
+the the options \DescRef{\LabelBase.option.leqno} and
+\DescRef{\LabelBase.option.fleqn}.
+
+You will not find a description of the maths environments of the \LaTeX{}
+kernel here. If you want to use
+\Environment{displaymath}\IndexEnv{displaymath},
+\Environment{equation}\IndexEnv{equation}, or
+\Environment{eqnarray}\IndexEnv{eqnarray} you should read an introduction to
+\LaTeX{} like \cite{lshort}. But\textnote{Hint!} if you want more than very
+simple mathematics, you should use the \Package{amsmath} package (see
+\cite{package:amsmath}).
+
+\begin{Declaration}
+ \Option{leqno}
+\end{Declaration}%
+Equations are normally numbered\Index{equation>number} on the right. The
+\Option{leqno} option loads the standard option file \File{leqno.clo}. The
+equations are then numbered on the left. You\textnote{Attention!} must use
+this option as an optional argument of \DescRef{\LabelBase.cmd.documentclass}.
+Using it as an argument of \DescRef{\LabelBase.cmd.KOMAoptions} or
+\DescRef{\LabelBase.cmd.KOMAoption} is not supported. The latter
+would not make sense because the recommended maths package \Package{amsmath}
+can only respond to this option at load time and does not react to run-time
+changes of the option.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{fleqn}
+\end{Declaration}%
+Displayed equations\Index{equation>alignment} are normally centred. The
+standard option \Option{fleqn} loads the standard option file
+\File{fleqn.clo}. Displayed equations are then left-justified.
+You\textnote{Attention!} must use this option as an optional argument of
+\DescRef{\LabelBase.cmd.documentclass}. Using it as an argument of
+\DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption} is
+not supported. The latter would not make sense because the recommended maths
+package \Package{amsmath} can only respond to this option at load time and
+does not react to run-time changes of the option.
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Floating Environments for Tables and Figures}
+\seclabel{floats}
+\BeginIndexGroup
+\BeginIndex{}{floats}%
+\BeginIndex{}{tables}%
+\BeginIndex{}{figures}%
+
+With the floating environments, {\LaTeX} offers a powerful and convenient
+mechanism to arrange figures\Index{figure} and tables\Index{table}
+automatically.
+% Im Deutschen ist hier ein Absatz, den wir nicht uebernehmen!
+Frequently,\textnote{Attention!} beginners do not properly understand these
+floating environments\Index[indexmain]{floating environments}. They often ask
+to specify the exact position of a table or figure within the text. However,
+this is usually unnecessary, since the text will contain references to these
+floating environments. It is also not sensible because such an object can only
+be set on the page if there is enough space left for it. If this is not the
+case, the object would have to be shifted onto the next page, possibly leaving
+a huge empty space on the previous page.
+
+Often\textnote{Attention!} a document will use the same optional argument to
+position every floating object. This also makes no sense. In such cases, you
+should instead change the default value globally. For more details, see
+\cite{DANTE:FAQ}.
+
+One\textnote{Attention!} final, important note before starting this section:
+most of mechanisms described here, which extend the capabilities of the
+standard classes, no longer work correctly when used with packages that modify
+the appearance of figure and table captions. This should be self-evident, but
+it is often overlooked.
+
+
+\begin{Declaration}
+ \OptionVName{captions}{setting}
+\end{Declaration}
+In the standard classes, the titles of floating environments, which are
+formatted with the \DescRef{\LabelBase.cmd.caption}\IndexCmd{caption} command
+(see below), are set off from the float with vertical spacing appropriate for
+putting the caption beneath the float, like a signature. They also distinguish
+between one-line and multi-line captions. One-line captions are centred while
+multi-line captions are left-justified.
+
+\leavevmode\LabelOptionValue{captions}{tableheading}\nobreak%
+For tables, however, you want the caption%
+\important{\Option{captions}{tableheading}} to appear as a heading instead of
+a signature. That's because tables can span multiple pages. With such tables,
+the reader wants to know the purpose of the table on the first page.
+Furthermore, tables are usually read row by row, from top to bottom. So there
+are normally at least two good reasons to provide all tables with headings.
+\KOMAScript{} therefore offers the \OptionValue{captions}{tableheading}%
+\IndexOption{captions~=\textKValue{tableheading}} option, which changes the
+formatting of table captions for use above the table.
+
+Note\textnote{Attention!} that multi-page tabulars cannot use a floating
+environment. To have an automatic page break in a tabular you need an
+additional package like \Package{longtable}\IndexPackage{longtable} (see
+\cite{package:longtable}) or \Package{supertabular}\IndexPackage{supertabular}
+(see \cite{package:supertabular}).
+
+You\important{\OptionValue{captions}{tablesignature}} can switch back to the
+default caption formatting using \OptionValue{captions}{tablesignature}%
+\IndexOption{captions~=\textKValue{tablesignature}}. Note\textnote{Attention!}
+that these options change only the formatting, not the actual position of the
+caption. Whether the caption is placed above or below a float depends solely
+upon where you use the \DescRef{\LabelBase.cmd.caption} command inside float
+environment. However, this can change when using the \Package{float}%
+\IndexPackage{float} package with the \Macro{restylefloats} command (see
+\cite{package:float}).
+
+Of course\important{\OptionValue{captions}{figureheading}\\
+ \OptionValue{captions}{figuresignature}}, corresponding functions
+exist\ChangedAt{v3.09}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} for figures using the options
+\OptionValue{captions}{figureheading}%
+\IndexOption{captions~=\textKValue{figureheading}} and
+\OptionValue{captions}{figuresignature}%
+\IndexOption{captions~=\textKValue{figuresignature}}. However, figures such as
+photos tend to be viewed as a whole, and a diagram or graph will mostly be
+examined starting from the lower left. Therefore, it only rarely makes sense
+to change the caption format for figures alone from signatures to headings.
+
+Sometimes, however, all floating environments should use headings. Therefore
+\KOMAScript{} provides\ChangedAt{v3.09}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}
+options\important{\OptionValue{captions}{heading}\\
+ \OptionValue{captions}{signature}}
+\OptionValue{captions}{heading}\IndexOption{captions~=\textKValue{heading}}
+and \OptionValue{captions}{signature}%
+\IndexOption{captions~=\textKValue{signature}} to switch the format of every
+floating environment. These options can also be used inside a floating
+environment.
+
+Please note\textnote{Achtung!}\OnlyAt{\Package{float}}\IndexPackage{float}
+when using the \Package{float} package that the settings for signatures or
+headings will no longer work once \Macro{restylefloat} is applied to tables or
+figures. For details about the \Package{float} package and
+\Macro{restylefloat}, please refer to \cite{package:float}. This also applies
+to \DescRef{\LabelBase.cmd.caption} within new floating environments defined
+with \Package{float}. You can find additional support which \KOMAScript{}
+provides when using the \Package{float} package in the explanation of
+\PValue{komaabove} (see \DescPageRef{\LabelBase.floatstyle.komaabove}). As an
+alternative to \Package{float}, you can also consult
+\DescRef{\LabelBase.cmd.captionof} (see
+\DescPageRef{\LabelBase.cmd.captionof}) and
+\DescRef{tocbasic.cmd.DeclareNewTOC} (see
+\DescPageRef{tocbasic.cmd.DeclareNewTOC}). Additionally, when using
+\Package{float}, the
+\hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
+\important{\hyperref[cha:scrhack]{\Package{scrhack}}} package is
+expressly recommended (see \autoref{cha:scrhack} from
+\autopageref{cha:scrhack} in \autoref{part:forExperts}).
+
+\leavevmode
+\LabelOptionValue{captions}{nooneline}\nobreak
+\LabelOptionValue{captions}{oneline}\nobreak
+Furthermore\important{\OptionValue{captions}{nooneline}}, \KOMAScript{} offers
+the option to disable the distinction between one-line and multi-line captions
+using the \OptionValue{captions}{nooneline}%
+\IndexOption{captions~=\textKValue{nooneline}}%
+\important{\OptionValue{captions}{nooneline}} option. This can be useful, for
+example, if you do not want one-line captions to be centred. The default,
+where one-line captions are centred, corresponds to
+\OptionValue{captions}{oneline}.
+
+Another special feature of \KOMAScript{} is the ability to put the caption
+beside the floating object rather than above or below it. For this, you need
+the environment\important{\DescRef{\LabelBase.env.captionbeside}}
+\DescRef{\LabelBase.env.captionbeside}\IndexEnv{captionbeside}, which is
+explained starting on \DescPageRef{\LabelBase.env.captionbeside}. The settings
+for this environment can also be changed with the \Option{caption} option. You
+can find the available values for the corresponding \PName{settings} in
+\autoref{tab:\LabelBase.captions}.
+%
+\begin{desclist}
+ \desccaption[{Available values for the \Option{captions}} option]{%
+ Available values for the \Option{captions} option for setting formatting of
+ captions as headings or signatures in floating environments%
+ \label{tab:\LabelBase.captions}%
+ }{%
+ Available values for the \Option{captions} option (\emph{continued})%
+ }%
+ \entry{\PValue{bottombeside}, \PValue{besidebottom}}{%
+ Captions for the \DescRef{\LabelBase.env.captionbeside} environment (see
+ \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) are vertically aligned with
+ the bottommost baseline of the contents of the floating environment.%
+ \IndexOption{captions~=\textKValue{bottombeside}}}%
+ \entry{\PValue{centeredbeside}, \PValue{besidecentered},
+ \PValue{middlebeside}, \PValue{besidemiddle}}{%
+ Captions for the \DescRef{\LabelBase.env.captionbeside} environment (see
+ \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) are vertically aligned with
+ the center of the contents of the floating environment.%
+ \IndexOption{captions~=\textKValue{centeredbeside}}}%
+ \entry{\PValue{figureheading}, \PValue{figureabove}, \PValue{abovefigure},
+ \PValue{topatfigure}%
+ \IndexOption{captions~=\textKValue{figureheading}}}{%
+ \ChangedAt{v3.09}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Captions for figures use heading format\,---\,possibly deviating from
+ \OptionValue{captions}{signature}.%
+ }%
+ \entry{\PValue{figuresignature}, \PValue{belowfigure},
+ \PValue{bottomatfiggure}%
+ \IndexOption{captions~=\textKValue{figuresignature}}}{%
+ \ChangedAt{v3.09}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Captions for figures use signature format\,---\,possibly deviating
+ from \OptionValue{captions}{headings}.%
+ }%
+ \entry{\PValue{heading}, \PValue{above}, \PValue{top}%
+ \IndexOption{captions~=\textKValue{heading}}}{%
+ \ChangedAt{v3.09}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} Captions for floating environments use formatting
+ suitable for use in a heading. This setting does not control whether they
+ are placed at the top or the bottom of the object. This option also
+ implies \OptionValue{captions}{tableheading} and
+ \OptionValue{captions}{figureheading}.%
+ }%
+ \entry{\PValue{innerbeside},
+ \PValue{besideinner}\IndexOption{captions~=\textKValue{innerbeside}}}{%
+ Captions for the \DescRef{\LabelBase.env.captionbeside} environment (see
+ \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) are placed inside of and next
+ to the contents of the environment in two-sided printing. In one-sided
+ printing, \OptionValue{captions}{leftbeside} is used.%
+ }%
+ \entry{\PValue{leftbeside},
+ \PValue{besideleft}\IndexOption{captions~=\textKValue{leftbeside}}}{%
+ Captions for the \DescRef{\LabelBase.env.captionbeside} environment (see
+ \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) are placed to the left of
+ the contents of the floating environment.%
+ }%
+ \pventry{nooneline}{%
+ Single-line captions are handled the same as multi-line captions.%
+ \IndexOption{captions~=\textKValue{nooneline}}}%
+ \pventry{oneline}{%
+ Single-line captions are centred horizontally.%
+ \IndexOption{captions~=\textKValue{oneline}}}%
+ \entry{\PValue{outerbeside}, \PValue{besideouter}%
+ \IndexOption{captions~=\textKValue{outerbeside}}}{%
+ Captions for the \DescRef{\LabelBase.env.captionbeside} environment (see
+ \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) are placed outside of and
+ next to the contents of the environment in two-sided printing. In
+ one-sided printing, \OptionValue{captions}{rightbeside} is used.%
+ }%
+ \entry{\PValue{rightbeside}, \PValue{besideright}%
+ \IndexOption{captions~=\textKValue{rightbeside}}}{%
+ Captions for the \DescRef{\LabelBase.env.captionbeside} environment (see
+ \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) are placed to the right of the
+ contents of the floating environment.%
+ }%
+ \entry{\PValue{signature}, \PValue{below}, \PValue{bot}, \PValue{bottom}%
+ \IndexOption{captions~=\textKValue{signature}}}{%
+ \ChangedAt{v3.09}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Captions for floating environments use signature format. This setting
+ does not control whether they are placed at the top or the bottom of the
+ object. This options also implies \OptionValue{captions}{tablesignature}
+ and \OptionValue{captions}{figuresignature}.%
+ }%
+ \entry{\PValue{tableheading}, \PValue{tableabove}, \PValue{abovetable},
+ \PValue{abovetabular}, \PValue{topattable}%
+ \IndexOption{captions~=\textKValue{tableheading}}}{%
+ Captions for tables use heading format\,---\,possibly deviating from
+ \OptionValue{captions}{signature}.%
+ }%
+ \entry{\PValue{tablesignature}, \PValue{belowtable}, \PValue{belowtabular},
+ \PValue{bottomattable}%
+ \IndexOption{captions~=\textKValue{tablesignature}}}{%
+ Captions for tables use signature format\,---\,possibly deviating
+ from \OptionValue{captions}{heading}.%
+ }%
+ \entry{\PValue{topbeside}, \PValue{besidetop}}{%
+ Captions for the \DescRef{\LabelBase.env.captionbeside} environment (see
+ \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) are vertically aligned to the
+ baseline at the top of the floating environment.%
+ \IndexOption{captions~=\textKValue{topbeside}}}%
+\end{desclist}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{caption}\OParameter{entry}\Parameter{title}
+ \Macro{captionbelow}\OParameter{entry}\Parameter{title}
+ \Macro{captionabove}\OParameter{entry}\Parameter{title}
+\end{Declaration}%
+In the standard classes, tables and figures are given captions with the
+\Macro{caption} command placed below the table or figure. For figures, this is
+generally correct. For tables, opinions differ as to whether captions should
+be placed above the table or, consistent with captions of
+figures\Index{caption>of figure}, below it\Index{caption>of table}. Therefore
+{\KOMAScript}\textnote{\KOMAScript{} vs. standard classes},
+unlike the standard classes, offers \Macro{captionbelow} for captions
+below and \Macro{captionabove} for captions above tables or
+figures.
+
+For tables and figures, or in general for all floating environments, you can
+control the behaviour of \Macro{caption} with the
+\DescRef{\LabelBase.option.captions}\IndexOption{captions} option described at
+the beginning of this section. For compatibility reasons, the default
+behaviour of \Macro{caption} for all floating environments is like
+\Macro{captionbelow}. However, you\textnote{Hint!} should use the
+\OptionValueRef{\LabelBase}{captions}{tableheading} option, which switches the
+behaviour of \Macro{caption} inside table environments to
+\Macro{captionabove}. Alternatively, you can use \Macro{captionabove} instead
+of \Macro{caption} inside every \Environment{table} environment.
+%
+\begin{Example}
+ Instead of using captions below a table, you want to place your
+ captions above it\Index{table>caption}, because you have tables
+ which span more then one page. In the standard classes you could
+ only write:
+\begin{lstcode}
+ \begin{table}
+ \caption{This is an example table}
+ \begin{tabular}{llll}
+ This & is & an & example.\\\hline
+ This & is & an & example.\\
+ This & is & an & example.
+ \end{tabular}
+ \end{table}
+\end{lstcode}
+ Then you would get this unsatisfying result:
+ \begin{ShowOutput}\centering
+ {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:}
+ This is an example table.}\\
+ \begin{tabular}{llll}
+ This & is & an & example.\\\hline
+ This & is & an & example.\\
+ This & is & an & example.
+ \end{tabular}
+\end{ShowOutput}
+ Using {\KOMAScript} you write instead:
+\begin{lstcode}
+ \begin{table}
+ \captionabove{This is just an example table}
+ \begin{tabular}{llll}
+ This & is & an & example.\\\hline
+ This & is & an & example.\\
+ This & is & an & example.
+ \end{tabular}
+ \end{table}
+\end{lstcode}
+ Then you get:
+ \begin{ShowOutput}\centering
+ {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:}
+ This is just an example table}\\\vskip\abovecaptionskip
+ \begin{tabular}{llll}
+ This & is & an & example.\\\hline
+ This & is & an & example.\\
+ This & is & an & example.
+ \end{tabular}
+ \end{ShowOutput}
+ Since you want all your tables typeset with captions above, you could
+ of course use the \OptionValueRef{\LabelBase}{captions}{tableheading} option
+ instead (see \DescPageRef{\LabelBase.option.captions.tableheading}). Then
+ you can use \Macro{caption} as you would in the standard classes. You will
+ get the same result as with \Macro{captionabove}.
+\end{Example}
+
+\BeginIndex[indexother]{}{font>style}%
+\BeginIndex{FontElement}{caption}\LabelFontElement{caption}%
+\BeginIndex{FontElement}{captionlabel}\LabelFontElement{captionlabel}%
+The font style\ChangedAt{v2.8p}{%
+ \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} for the description
+and the label\,---\,``Figure'' or ``Table'', followed by the number and the
+delimiter\,---\,can be changed with the commands
+\DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}). The respective elements for this
+are \FontElement{caption}\important[i]{\FontElement{caption}\\
+ \FontElement{captionlabel}} and \FontElement{captionlabel} (see
+\autoref{tab:\LabelBase.fontelements},
+\autopageref{tab:\LabelBase.fontelements}). The font style for the element
+\FontElement{caption} is applied to the element \FontElement{captionlabel}
+before the font style of \FontElement{captionlabel} itself is applied. The
+default settings are listed in \autoref{tab:\LabelBase.captionFont}.
+%
+\begin{table}
+% \centering%
+% \caption
+ \begin{captionbeside}
+ {Font defaults for the elements of figure or table captions}
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ element & default \\
+ \midrule
+ \DescRef{\LabelBase.fontelement.caption} & \Macro{normalfont} \\
+ \DescRef{\LabelBase.fontelement.captionlabel} & \Macro{normalfont}\\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:\LabelBase.captionFont}
+\end{table}
+%
+\begin{Example}
+ You want the table and figure descriptions typeset in a smaller font
+ size. Thus you could write the following in the preamble of your
+ document:
+\begin{lstcode}
+ \addtokomafont{caption}{\small}
+\end{lstcode}
+ Furthermore, you would like the labels to be printed in sans serif and
+ bold. You add:
+\begin{lstcode}
+ \setkomafont{captionlabel}{\sffamily\bfseries}
+\end{lstcode}
+ As you can see, simple extensions of the default definitions are
+ possible.
+\end{Example}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{captionof}\Parameter{float type}\OParameter{entry}%
+ \Parameter{title}%
+ \Macro{captionbelowof}\Parameter{float type}\OParameter{entry}%
+ \Parameter{title}%
+ \Macro{captionaboveof}\Parameter{float type}\OParameter{entry}%
+ \Parameter{title}
+\end{Declaration}%
+Like\ChangedAt{v3.05}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} the \Package{caption}\IndexPackage{caption} and
+\Package{capt-of}\IndexPackage{capt-of} packages, \KOMAScript{} offers the
+\Macro{captionof} command, with which you can put a caption for a floating
+environment, together with an entry in the corresponding environment list,
+outside of the floating environment or even in a different floating
+environment. Unlike \DescRef{\LabelBase.cmd.caption}, the type of floating
+environment must be specified as the first parameter.
+
+In addition, \KOMAScript{} also provides the commands
+\Macro{captionaboveof}\ChangedAt{v3.09}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} and \Macro{captionbelowof}. These are
+like \DescRef{\LabelBase.cmd.captionabove} and
+\DescRef{\LabelBase.cmd.captionbelow} but with the additional features and
+parameter of \Macro{captionof}.
+
+Of course\ChangedAt{v3.09a}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} \Macro{captionof} takes into account the \PValue{heading}
+and \PValue{signature} settings of the \DescRef{\LabelBase.option.captions}
+option. But this feature may be lost if you load the
+\Package{capt-of}\IndexPackage{capt-of} or
+\Package{caption}\IndexPackage{caption} packages. When using
+\Package{caption}, you must follow the instructions for that package (see
+\cite{package:caption})!
+\begin{Example}
+ Suppose you want to create a floating object with a table and a figure next
+ to each other. Since there are no mixed floating environments, you primarily
+ use a \Environment{figure} environment:
+\begin{lstcode}
+ \begin{figure}
+ \begin{minipage}{.5\linewidth}
+ \centering
+ \rule{4cm}{5cm}
+ \caption{A rectangle}\label{fig:rechteck}
+ \end{minipage}%
+ \begin{minipage}{.5\linewidth}
+ \centering
+ \captionaboveof{table}
+ [Measure of the rectangle in
+ figure~\ref{fig:rechteck}]%
+ {Measure of the rectangle}
+ \label{tab:rechteck}
+ \begin{tabular}{ll}
+ Width: & 4\,cm\\
+ Height: & 5\,cm
+ \end{tabular}
+ \end{minipage}
+ \end{figure}
+\end{lstcode}
+ Two \Environment{minipage} environments were used to place the figure
+ and the table side by side. The\textnote{Attention!} percent sign after the
+ end of the first \Environment{minipage} is important. Without it, an
+ additional space would appear between the \Environment{minipage}
+ environments.
+
+ The figure caption was created with \DescRef{\LabelBase.cmd.caption}. The
+ table caption was created with \Macro{captionaboveof} with \PValue{table}
+ as the first argument. Because of this, \KOMAScript{} knows that this is a
+ table caption even though it is inside the \Environment{figure} environment.
+
+ The optional argument of \Macro{captionaboveof} creates an entry in the
+ list of tables. Without the optional argument, the caption specified in the
+ final mandatory argument would have been used for the list of tables too.
+ Although this caption text is sufficient for the environment itself, it
+ would not be very meaningful in the list of tables. Therefore, a different
+ title is used for the list of tables using the optional argument.
+ \autoref{fig:\LabelBase.captionaboveof} shows the result of the example code.%
+\begin{figure}
+% \centering
+% \caption
+ \KOMAoptions{captions=bottombeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [{Example: Using \Macro{captionaboveof} inside another floating
+ environment}]
+ {Example: Using \Macro{captionaboveof} inside another floating
+ environment\label{fig:\LabelBase.captionaboveof}}
+ [l]
+ \begin{minipage}[b]{.66\linewidth}%
+ \raisebox{\depth}{\fbox{\KOMAoptions{captions=oneline}%
+ \begin{minipage}{.5\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
+ \centering
+ \rule{4cm}{5cm}
+ \caption[Example: A rectangle]{A rectangle}\label{fig:\LabelBase.rechteck}
+ \end{minipage}%
+ \begin{minipage}{.5\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
+ \centering
+ \captionaboveof{table}[Example: Measure of the rectangle in
+ figure~\ref{fig:\LabelBase.rechteck}]{Rectangle size}
+ \label{tab:\LabelBase.rechteck}
+ \begin{tabular}{ll}
+ Width: & 4\,cm\\
+ Height: & 5\,cm
+ \end{tabular}
+ \end{minipage}}}%
+ \end{minipage}%
+ \end{captionbeside}%
+\end{figure}%
+\end{Example}%
+You can produce a non-floating table with a caption in the same way as the
+table inside a figure environment in the example above. In such a case, a
+\Environment{minipage} environment should also be used to avoid page breaks
+between the caption and the table. In addition, you should embed the
+\Environment{minipage} environment in a \Environment{flushleft} environment
+both to achieve a pleasing separation between the surrounding text and to
+avoid the paragraph indentation of the \Environment{minipage} environment.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \begin{Environment}{captionbeside}
+ \OParameter{short title}
+ \Parameter{caption text}
+ \OParameter{placement}
+ \OParameter{width}
+ \OParameter{offset}
+ \end{Environment}
+ \labelsuffix[*]%
+ \begin{Environment}{captionbeside}
+ \OParameter{short title}
+ \Parameter{caption text}
+ \OParameter{placement}
+ \OParameter{width}
+ \OParameter{offset}\PValue{*}%
+ \end{Environment}
+\end{Declaration}
+In addition\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} to captions above and below the figure, you will often
+find captions, in particular for small figures, which are placed beside the
+figure. The bottom edge of the caption is normally aligned with the bottom of
+the figure. Of course, you can achieve the same thing in the standard classes
+with some fiddling and the use of two \Macro{parbox} commands. However,
+\KOMAScript{} offers a special environment for this which you can use within
+the floating environments. The first optional parameter,
+\PName{short title}\important{\PName{short title}\\\PName{caption text}}, and
+the required parameter \PName{caption text} have the same meaning as the
+corresponding parameters of \DescRef{\LabelBase.cmd.caption},
+\DescRef{\LabelBase.cmd.captionabove} or
+\DescRef{\LabelBase.cmd.captionbelow}. The \PName{caption text} is
+placed beside the content of the environment in this case.
+
+The \PName{placement}\important{\PName{placement}} parameter can determine
+whether the \PName{caption text} is placed on the left or the right. Exactly
+one of the following letters is allowed:
+\begin{labeling}[~--]{\quad\PValue{o}}\setlength{\itemsep}{-1\parsep plus 1ex}%
+ \item[\PValue{l}] left
+ \item[\PValue{r}] right
+ \item[\PValue{i}] inner margin in two-sided printing
+ \item[\PValue{o}] outer margin in two-sided printing
+\end{labeling}
+The default placement is to the right of the content of the environment. You
+can change this default\ChangedAt{v3.00}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} using the
+\DescRef{\LabelBase.option.captions}\IndexOption{captions}%
+\important{\DescRef{\LabelBase.option.captions}} option (see
+\DescPageRef{\LabelBase.option.captions}) with values like
+\PValue{innerbeside}\IndexOption[indexmain]{captions~=\textKValue{innerbeside}},
+\PValue{leftbeside}\IndexOption[indexmain]{captions~=\textKValue{leftbeside}},
+\PValue{outerbeside}\IndexOption[indexmain]{captions~=\textKValue{outerbeside}},
+and
+\PValue{rightbeside}\IndexOption[indexmain]{captions~=\textKValue{rightbeside}}.
+If either \PValue{o} or \PValue{i} are used you may need to run {\LaTeX} twice
+to obtain the correct placement.
+
+Normally\important{\PName{width}}, the content of the environment and the
+\PName{caption text} fill the entire available text width. However, you can
+specify a different width using the optional parameter \PName{width}. This can
+be greater than the current text width.
+
+When specifying a \PName{width}\important{\PName{width}\\\PName{offset}}, the
+width used is usually centred with respect to the body text. Using the
+optional parameter \PName{offset}, you can shift the environment relative to
+the left margin. A positive value corresponds to a shift to the right, whereas
+a negative value corresponds to a shift to the left. An \PName{offset} of
+0\Unit{pt} gives you a left-aligned output.
+
+If\important{\PValue{*}} you add a star to the optional \PName{offset}
+parameter, the value represents a shift relative to the right margin on
+left-hand pages in a two-sided layout. A positive value corresponds to a shift
+towards the outer margin, whereas a negative value corresponds to a shift
+towards the inner margin. An \PName{offset} of 0\Unit{pt} means alignment with
+the inner margin. This variant may require two {\LaTeX} runs to achieve the
+correct offset.
+
+The default vertical alignment is bottom. This means that the bottommost base
+lines of the contents of the environment and of the caption are aligned.
+You\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} can change this setting using the
+\DescRef{\LabelBase.option.captions}\IndexOption{captions}%
+\important{\DescRef{\LabelBase.option.captions}} option (see
+\DescPageRef{\LabelBase.option.captions}) with the value
+\PValue{topbeside}\IndexOption[indexmain]{captions~=\textKValue{topbeside}},
+\PValue{centeredbeside}%
+\IndexOption[indexmain]{captions~=\textKValue{centeredbeside}}, or
+\PValue{bottombeside}%
+\IndexOption[indexmain]{captions~=\textKValue{bottombeside}}.
+With the setting \PValue{topbeside}, the topmost base lines of the environment
+contents and caption will be aligned. With \PValue{centeredbeside}, they will
+be centred vertically. In this context, note that the base line of a figure is
+usually the bottom of the figure. You can change this using, for example,
+\Macro{raisebox}\IndexCmd{raisebox}.
+
+\begin{Example}
+ You can find an example using the \Environment{captionbeside} environment in
+ \autoref{fig:\LabelBase.captionbeside}. This figure was typeset with:
+\begin{lstcode}
+ \begin{figure}
+ \begin{captionbeside}[Example: Figure beside description]%
+ {A figure description which is neither above nor
+ below, but beside the figure}[i][\linewidth][%
+ [i][\linewidth][%
+ \dimexpr\marginparwidth+\marginparsep\relax]*
+ \fbox{%
+ \parbox[b][5\baselineskip][c]{.25\textwidth}
+ {%
+ \hspace*{\fill}\KOMAScript
+ \hspace*{\fill}\par
+ }%
+ }
+ \end{captionbeside}
+ \label{fig:\LabelBase.captionbeside}
+ \end{figure}
+\end{lstcode}
+ \begin{figure}
+ \begin{captionbeside}[Example: Figure beside description]%
+ {A figure description which is neither above nor
+ below, but beside the figure}[i][\linewidth][2em]*
+ \fbox{%
+ \parbox[b][5\baselineskip][c]{.25\textwidth}{%
+ \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.captionbeside}
+ \end{figure}
+ The total width is thus the currently available width of
+ \PValue{\Macro{linewidth}}. However, this width is shifted
+ $\Length{marginparwidth} + \Length{marginparsep}$ to the outside. The
+ caption text or description is placed on the inner side beside the figure.
+ The figure itself is shifted 2\Unit{em} into the outer margin.
+
+\iffalse% Umbruchkorrekturtext
+ The \Macro{dimexp} macro is an \eTeX{} command. This should not be a
+ problem at all because \KOMAScript{} itself requires \eTeX{} and every almost
+ up-to-date \LaTeX{} distribution uses \eTeX already.
+\fi
+
+ \hyperref[fig:\LabelBase.captionbesidecentered]%
+ {Figure~\ref*{fig:\LabelBase.captionbesidecentered}}
+ shows a centred caption with:
+\begin{lstcode}
+ \KOMAoption{captions}{centeredbeside}
+\end{lstcode}
+\iffalse % Umbruchalternativen
+ Even a typographical novice will immediately realize that you should
+ usually avoid this alignment.
+\else
+ This is certainly not a recommended solution.
+\fi
+
+ \begin{figure}
+ \begin{captionbeside}[Example: Description centered beside figure]%
+ {A figure description which is neither above nor
+ below, but centred beside the figure}[i][\linewidth][2em]*
+ \fbox{%
+ \parbox[b][5\baselineskip][c]{.25\textwidth}{%
+ \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.captionbesidecentered}
+ \end{figure}
+
+ In contrast, you can use the top-aligned format seen in
+ \autoref{fig:\LabelBase.captionbesidetop}. To illustrate how to shift the
+ baseline using \Macro{raisebox}, here is a complete example. You can apply
+ this not only to a substitute figure, as previously shown, but also, for
+ example, to \Macro{includegraphics} (see \cite{package:graphics}).
+\begin{lstcode}
+ \documentclass[captions=topbeside]{scrbook}
+ \usepackage[english]{babel}
+ \usepackage{graphics}
+ \begin{document}
+ \chapter{An Example}
+ \begin{figure}
+ \begin{captionbeside}%
+ [Example: Figure title top beside]%
+ {A figure description which is neither above nor
+ below, but top beside the figure}%
+ [i][\linewidth][%
+ \dimexpr\marginparwidth+\marginparsep\relax
+ ]*
+ \raisebox{%
+ \dimexpr\baselineskip-\totalheight\relax
+ }{%
+ \includegraphics{examplepicture}%
+ }%
+ \end{captionbeside}
+ \label{fig:\LabelBase.captionbesidetop}
+ \end{figure}
+ \end{document}
+\end{lstcode}
+ \begin{figure}
+ \KOMAoption{captions}{topbeside}
+ \begin{captionbeside}[Example: Figure title top beside]%
+ {A figure description which is neither above nor
+ below, but top beside the figure}%
+ [i][\linewidth]
+ \raisebox{\dimexpr\baselineskip-\totalheight}{%
+ \fbox{%
+ \parbox[b][5\baselineskip][c]{.25\textwidth}{%
+ \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}}%
+ }%
+ \end{captionbeside}
+ \label{fig:\LabelBase.captionbesidetop}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \begin{Environment}{captionofbeside}
+ \Parameter{float type}
+ \OParameter{short title}
+ \Parameter{caption text}
+ \OParameter{placement}
+ \OParameter{width}
+ \OParameter{offset}
+ \begin{Body}\BodyDots\end{Body}
+ \end{Environment}
+ \labelsuffix[*]%
+ \begin{Environment}{captionofbeside}
+ \Parameter{float type}
+ \OParameter{short title}
+ \Parameter{caption text}
+ \OParameter{placement}
+ \OParameter{width}
+ \OParameter{offset}\PValue{*}%
+ \begin{Body}\BodyDots\end{Body}
+ \end{Environment}
+\end{Declaration}
+As\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} is the case for \DescRef{\LabelBase.cmd.caption}, there is
+a variant for \DescRef{\LabelBase.cmd.captionof} where the \PName{float type}
+is not defined by using it within a floating environment of this type, so you
+can specify a suitable environment for \DescRef{\LabelBase.env.captionbeside}
+with \Environment{captionofbeside}. In contrast to
+\DescRef{\LabelBase.env.captionbeside}, the \PName{float type} must be
+specified as an additional, first argument.%
+%
+\EndIndexGroup
+
+\begin{Declaration}
+ \FloatStyle{komaabove}%
+ \FloatStyle{komabelow}
+\end{Declaration}%
+If you use\OnlyAt{\Package{float}} the \Package{float}\IndexPackage{float}
+package, the appearance of the float environments is solely defined by the
+\emph{float} style. This includes whether captions appear above or below. In
+the \Package{float} package, there is no predefined style which gives you the
+same output and offers the same setting options (see below) as \KOMAScript{}.
+Therefore \KOMAScript{} defines the two additional styles, \PValue{komaabove}
+and \PValue{komabelow}. When using the \Package{float} package, you can
+activate these styles just like the styles
+\PValue{plain}\IndexFloatstyle{plain}, \PValue{boxed}\IndexFloatstyle{boxed},
+or \PValue{ruled}\IndexFloatstyle{ruled} defined in \Package{float}. For
+details refer to \cite{package:float}. The style \PValue{komaabove} inserts
+\DescRef{\LabelBase.cmd.caption}, \DescRef{\LabelBase.cmd.captionabove}, and
+\DescRef{\LabelBase.cmd.captionbelow} above, whereas \PValue{komabelow}
+inserts them below the float content.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{captionformat}
+\end{Declaration}%
+In {\KOMAScript} there are various ways to change the formatting of
+the caption text. The definition of different font styles has already
+been explained above. The delimiter or delimiters between the label and
+actual caption text is specified by the macro \Macro{captionformat}.
+In contrast to all other \Macro{\dots}format commands, this is not the counter
+but only the items which follow it. The original definition is:
+\begin{lstcode}
+ \newcommand*{\captionformat}{:\ }
+\end{lstcode}
+You can change this too with \Macro{renewcommand}.
+\begin{Example}
+ For some inexplicable reason, you want a dash surrounded by spaces
+ instead of a colon followed by a space as a label delimiter. You
+ therefore define:
+\begin{lstcode}
+ \renewcommand*{\captionformat}{~--~}
+\end{lstcode}
+This definition should be put in the preamble of your document.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{figureformat}%
+ \Macro{tableformat}
+\end{Declaration}%
+It has already been mentioned that \DescRef{\LabelBase.cmd.captionformat} does
+not contain formatting for the label itself. You should not alter this by
+redefining the commands for the output of the \Macro{thefigure} or
+\Macro{thetable} counters. Such a redefinition would have unwanted side
+effects on the output of \Macro{ref}, the table of contents, the list of
+figures, and the list of tables. Instead, {\KOMAScript} offers two
+\Macro{\dots format} commands. These have the following defaults:
+\begin{lstcode}
+ \newcommand*{\figureformat}{\figurename~\thefigure\autodot}
+ \newcommand*{\tableformat}{\tablename~\thetable\autodot}
+\end{lstcode}
+They can also be customised to your requirements with \Macro{renewcommand}.
+\begin{Example}
+ From time to time, it is required to have captions without labels or
+ delimiters. With {\KOMAScript} the following definitions suffice to
+ achieve this:
+\begin{lstcode}
+ \renewcommand*{\figureformat}{}
+ \renewcommand*{\tableformat}{}
+ \renewcommand*{\captionformat}{}
+\end{lstcode}
+ It should be noted, however, that although no numbering is output, the
+ internal counters are nevertheless incremented. This becomes especially
+ important if this redefinition is applied only to selected
+ \Environment{figure} or \Environment{table} environments.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setcapindent}\Parameter{indent}%
+ \Macro{setcapindent*}\Parameter{xindent}%
+ \Macro{setcaphanging}
+\end{Declaration}%
+As mentioned previously, in the standard classes the captions are set in a
+non-hanging style. In other words, in multi-line captions the second and
+subsequent lines start directly beneath the label. The standard classes
+provide no direct mechanism to change this behaviour. In {\KOMAScript}, on the
+contrary, beginning at the second line all lines are indented by the width of
+the label so that the caption text is aligned.
+
+You can change this behaviour, which corresponds to using
+\Macro{setcaphanging}, at any time with the \Macro{setcapindent} or
+\Macro{setcapindent*} command. Here the parameter \PName{indent} determines
+the indentation of the second and subsequent lines. If you want a line break
+after the label and before the caption text, then you can define the
+indentation \PName{xindent} of the caption text with the starred version of
+the command instead: \Macro{setcapindent*}.
+
+A negative value of \PName{indent}, on the other hand, results in a line break
+before the caption text, and only the first line of the caption text, not
+subsequent lines, is indented by the absolute value of \PName{indent}.
+
+Whether one-line captions are set the same way as multi-line captions or are
+treated separately is specified with the option
+\DescRef{\LabelBase.option.captions}. For details please refer to the
+explanations of these option on
+\DescPageRef{\LabelBase.option.captions.oneline}.
+
+\begin{Example}
+ The illustrations~\ref{fig:\LabelBase.caption.first} to
+ \ref{fig:\LabelBase.caption.last} show the effects of different settings. As
+ you can see, using a fully hanging indentation with a narrow column width is
+ awkward. To illustrate, the source code for the second figure is given here
+ with a modified caption text:
+\begin{lstcode}
+ \begin{figure}
+ \setcapindent{1em}
+ \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}}
+ \caption{Example with partially indented caption
+ starting from the second line}
+ \end{figure}
+\end{lstcode}
+ As you can see, the formatting can also be changed locally within the
+ \Environment{figure} environment\IndexEnv{figure}. The change then affects
+ only the current figure. Subsequent figures once again use the default
+ settings or global settings that you set, for example, in the preamble. This
+ also, of course, applies to tables.
+ \begin{figure}
+ \typeout{^^J--- Ignore underfull and overfull \string\hbox:}
+ \addtokomafont{caption}{\small}
+ \addtokomafont{captionlabel}{\bfseries}
+ \centering%
+ \begin{minipage}{.9\linewidth}
+ \begin{minipage}[t]{.48\linewidth}\sloppy
+ \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}}
+ \caption[Example: Default caption]%
+ {\sloppy With the default setting, like using
+ \Macro{setcaphanging}}
+ \label{fig:\LabelBase.caption.first}
+ \end{minipage}
+ \hspace{.02\linewidth}
+ \begin{minipage}[t]{.48\linewidth}\sloppy
+ \setcapindent{1em}
+ \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}}
+ \caption[Example: Caption with partially hanging indention]%
+ {With partially hanging indentation starting from the second line
+ by using \Macro{setcapindent}\PParameter{1em}}
+ \end{minipage}
+ \end{minipage}
+
+ \vspace*{2ex}\noindent%
+ \begin{minipage}{.9\linewidth}
+ \begin{minipage}[t]{.48\linewidth}\sloppy
+ \setcapindent*{1em}
+ \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}}
+ \caption[Example: Caption with hanging indention and line break]%
+ {With hanging indentation starting from the second line and line
+ break before the description using
+ \Macro{setcapindent*}\PParameter{1em}}
+ \end{minipage}
+ \hspace{.02\linewidth}
+ \begin{minipage}[t]{.48\linewidth}\sloppy
+ \setcapindent{-1em}
+ \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}}
+ \caption[Example: Caption with indention in the second line]%
+ {With indentation only in the second line and a line break
+ before the description using
+ \Macro{setcapindent}\PParameter{-1em}}
+ \label{fig:\LabelBase.caption.last}
+ \end{minipage}
+ \end{minipage}
+ \typeout{^^J--- Don't ignore underfull and overfull
+ \string\hbox:^^J}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setcapwidth}\OParameter{justification}\Parameter{width}%
+ \Macro{setcapdynwidth}\OParameter{justification}\Parameter{width}%
+ \Macro{setcapmargin}\OParameter{left margin}\Parameter{margin}%
+ \Macro{setcapmargin*}\OParameter{inside margin}\Parameter{margin}
+\end{Declaration}
+Using\ChangedAt{v2.8q}{%
+ \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} these three
+commands, you can specify the width and justification of the caption
+text. Normally, the entire text or column width is available for the caption.
+
+With\important{\Macro{setcapwidth}} the \Macro{setcapwidth} command, you can
+decrease this \PName{width}. The mandatory argument determines the maximum
+\PName{width} of the caption. As an optional argument, you can supply exactly
+one letter which specifies the horizontal justification. The possible
+justifications are given in the following list:
+\begin{labeling}[~--]{\quad\PValue{o}}%
+ \itemsep=.5\topsep plus .5\topsep minus .5\topsep
+ \rightskip=1em
+\item[\PValue{l}] left-justified
+\item[\PValue{c}] centred
+\item[\PValue{r}] right-aligned
+\item[\PValue{i}] aligned to the inner margin in two-sided printing
+\item[\PValue{o}] aligned to the outer margin in two-sided printing
+\end{labeling}
+Inside and outside justification corresponds to left-aligned and right-aligned
+justification, respectively, in one-sided printing.
+Within\textnote{Attention!} \Package{longtable}\IndexPackage{longtable}%
+\important{\Package{longtable}} tables, inside and outside justification does
+not work correctly. In particular, the captions on subsequent pages of such
+tables are aligned according to the format of the caption on the first page of
+the table. This is a conceptual problem in the implementation of the
+\Package{longtable} package.
+
+Note\ChangedAt{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}\textnote{Attention!} that \Macro{setcapwidth} immediately
+sets the width to the value of the \PName{width} parameter at the time of the
+assignment, as \Macro{setlength} does. If\important{\Macro{setcapdynwidth}}
+you instead want to use the current value of \PName{width} when the caption is
+set, you should use \Macro{setcapdynwidth}. There can be significant
+differences in the result if, for example, you use lengths like
+\Length{linewidth} or other commands as \PName{width} arguments.
+
+With\important{\Macro{setcapmargin}} the \Macro{setcapmargin} command, instead
+of specifying the width of the caption text, you can specify a \PName{margin}
+to be set next to the caption text in addition to the normal text margin. If
+you want margins with different widths on the left and right sides, you can
+use the optional argument to specify a \PName{left margin} that differs from
+\PName{margin}. Instead of a \PName{left margin}, the starred version
+\Macro{setcapmargin*} defines an \PName{inside margin} in a two-sided layout.
+The same problem arises here with with inside and outside justification inside
+\Package{longtable}\IndexPackage{longtable}\important{\Package{longtable}}
+tables that occurs with \Macro{setcapwidth}. Furthermore, using
+\Macro{setcapmargin} or \Macro{setcapmargin*} activates the
+\OptionValueRef{\LabelBase}{captions}{nooneline} option (see
+\DescPageRef{\LabelBase.option.captions.nooneline}) for captions which are
+typeset with this margin setting.
+
+You\textnote{Hint!} can also specify negative values for \PName{margin} and
+\PName{left margin} or \PName{inside margin}. This has the effect of making
+the caption protrude into the margin.%
+\iffalse\par% Anhang wurde entfernt.
+Experts\textnote{Hint!} and advanced users can find a a somewhat tricky
+application of \Macro{setcapwidth} in
+\iffree{\cite{book:komascript}}{\autoref{cha:floattricks},
+ \autopageref{cha:floattricks}}.%
+\fi%
+%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{setcaptionalignment}\OParameter{float type}\Parameter{alignment}
+\end{Declaration}
+Normally\ChangedAt{v3.25}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}, multi-line\textnote{alignment of multi-line captions}
+captions are fully justified. This corresponds to
+\Macro{setcaptionalignment}\PParameter{j}. Sometimes, however, you want a
+different alignment, for example ragged right. An appropriate change is
+possible at any time with \Macro{setcaptionalignment}. You can specify exactly
+one of the letters listed in \autoref{tab:maincls.captionalignment} for the
+\PName{alignment}. If you specify an unknown \PName{alignment}, you will
+receive an error message.
+%
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [{Alignments for multi-line captions of floating environments}]
+ {\label{tab:maincls.captionalignment}%
+ Alignments for multi-line captions of floating environments}
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ c & centred \\
+ j & fully justified \\
+ l & left justified \\
+ r & right justified \\
+ C & centred with \Package{ragged2e} \\
+ J & fully justified with \Package{ragged2e} \\
+ L & left justified with \Package{ragged2e} \\
+ R & right justified with \Package{ragged2e} \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+The four possibilities with the
+\Package{ragged2e}\important{\Package{ragged2e}}\IndexPackage{ragged2e}
+package are only available if that package was loaded before you use
+\Macro{setcaptionalignment}. Otherwise, they are converted to the
+corresponding options without \Package{ragged2e}. For safety reasons, a
+warning is issued in this case.
+
+When using this command without\textnote{without optional parameter} the
+optional parameter, the result depends on whether the call occurs inside our
+outside of a floating environment. Within a floating environment, the
+alignment is then set for this floating environment. Outside, on the other
+hand, the optional parameter is assumed to be empty.
+
+Using this command with an empty\textnote{empty optional parameter} optional
+parameter, or outside a floating environment and also without any optional
+parameter, sets the general alignment. This is used whenever the current
+floating environment type does not define an alignment.
+
+If you only want to set the alignment of a particular type of floating
+environment\textnote{with \PName{float type}} without changing the
+\PName{alignment} for other types of floating environments, then the type of
+floating environment, e.\,g., \PValue{figure} or \PValue{table}, is given as
+the optional parameter \PName{float type}.
+%
+\begin{Example}
+ You want captions to be centred under the images even if they are
+ multi-line. To text this for a single image, use\textnote{in the
+ floating environment}:
+\begin{lstcode}
+ \begin{figure}
+ \centering
+ \setcaptionalignment{c}
+ \includegraphics{example-image}
+ \caption{\blindtext}
+ \end{figure}
+\end{lstcode}
+ Since you are satisfied with the result, you move the\textnote{in the
+ preamble}
+\begin{lstcode}
+ \setcaptionalignment{c}
+\end{lstcode}
+ command to the document preamble. Thereafter, however, you decide you do not
+ like this change for table captions at all. Therefore, you use\textnote{only
+ for figures}
+\begin{lstcode}
+ \setcaptionalignment[figure]{c}
+\end{lstcode}
+ to limit the centring to figures.
+
+ A little later, you realize that the centring is not so suitable. Instead,
+ you now prefer to have ragged right alignment. So you change the alignment
+ again:
+\begin{lstcode}
+ \setcaptionalignment[figure]{l}
+\end{lstcode}
+ However, you do not like the fact that the lines are very different in
+ length. This is caused by the lack of hyphenation, causing long words to
+ wrap completely onto the next line, leaving large gaps. You want to allow
+ hyphenation as needed. This is easy to achieve with the help of the
+ \Package{ragged2e}\important{\Package{ragged2e}}\IndexPackage{ragged2e}
+ package. However, it is not enough to use
+\begin{lstcode}
+ \usepackage{ragged2e}
+\end{lstcode}
+ to load the package. Using the \Option{newcommands} option when loading the
+ package does not help. Instead, the \PName{alignment} must also be changed:
+\begin{lstcode}
+ \usepackage{ragged2e}
+ \setcaptionalignment[figure]{L}
+\end{lstcode}
+ Note\textnote{Attention!} the upper-case letter for the \PName{alignment}.
+\end{Example}
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{origlongtable}
+\end{Declaration}%
+\BeginIndex{Package}{longtable}%
+If you do not want the table captions produced by the \Package{longtable}
+package (see \cite{package:longtable}) to be redefined by the {\KOMAScript}
+classes, activate the \Option{origlongtable} option. This\textnote{Attention!}
+option must be used in the optional argument of
+\DescRef{\LabelBase.cmd.documentclass}. It cannot be used as a setting of
+\DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoptions}.
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{listof}{setting}
+\end{Declaration}
+Normally\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} lists of floating environments\,---\,like
+tables\Index{tables>list of} or figures\Index{figures>list of}\,---\,are
+neither numbered nor included in the table of contents. You can find more
+information about this behaviour in \autoref{sec:\LabelBase.toc}. As an
+alternative to the settings \OptionValueRef{\LabelBase}{toc}{nolistof}%
+\IndexOption{toc~=\textKValue{nolistof}},
+\OptionValueRef{\LabelBase}{toc}{listof}\IndexOption{toc~=\textKValue{listof}},
+and \OptionValueRef{\LabelBase}{toc}{listofnumbered}%
+\IndexOption{toc~=\textKValue{listofnumbered}} mentioned there, you can also
+look at this behaviour from perspective of the lists themselves. Therefore
+you can achieve the same results with the settings
+\OptionValue{listof}{notoc}, \OptionValue{listof}{totoc}, and
+\OptionValue{listof}{numbered}.
+
+By default, the headings in the lists of floating environments use the topmost
+level below \DescRef{\LabelBase.cmd.part}. This is the chapter level in
+\Class{scrbook} and \Class{scrreprt} and the section level in
+\Class{scrartcl}. By contrast,\ChangedAt{v3.06}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}
+\OptionValue{listof}{leveldown}\important{\OptionValue{listof}{leveldown}}
+uses the next lower level to be used instead.
+\important{\OptionValue{listof}{standardlevel}}%
+\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+\OptionValue{listof}{standardlevel} switches back to the default sectioning
+level, if necessary.
+\begin{Example}
+ In a book, you want to put the list of figures and the list of tables as
+ sub-lists into a common list named ``Figures and Tables''. Simply use:
+\begin{lstcode}
+ \KOMAoption{listof}{leveldown}
+\end{lstcode}
+ to use the section instead of the chapter level for both lists, and put the
+ following at the appropriate place in your document:
+\begin{lstcode}
+ \addchap*{Figures and Tables}
+ \listoffigures
+ \listoftables
+\end{lstcode}
+ You can find more information about the \DescRef{\LabelBase.cmd.addchap*}
+ command in \autoref{sec:\LabelBase.structure} on
+ \DescPageRef{\LabelBase.cmd.addchap*}.
+\end{Example}
+
+Normally\ChangedAt{v2.8q}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} the lists of
+floating environments use a fixed-width space for the caption number of the
+entries. At the same time, all entries are somewhat indented. This behaviour
+corresponds to the
+\OptionValue{listof}{graduated}\IndexOption{listof~=\textKValue{graduated}}
+setting.
+
+If the numbers become very wide, for example because you have many tables or
+figures, the space provided may at some point no longer be sufficient.
+\KOMAScript{} offers the setting \OptionValue{listof}{flat}%
+\important{\OptionValue{listof}{flat}}\IndexOption{listof~=\textKValue{flat}}
+for lists of floating environments, comparable to
+\OptionValueRef{\LabelBase}{toc}{flat}\IndexOption{toc~=\textKValue{flat}} for
+the table of contents. The width required to print the number is
+determined automatically and the space is adjusted accordingly. See the
+\OptionValueRef{\LabelBase}{toc}{flat} option, \autoref{sec:\LabelBase.toc},
+\DescPageRef{\LabelBase.option.toc.flat} for more information about side
+effects and how it works. Note\textnote{Attention!} again that you need more
+than one \LaTeX{} run before the lists of floating environments reach
+their final state.
+
+The \OptionValue{listof}{entryprefix}\ChangedAt{v3.06}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} setting automatically activates
+\OptionValue{listof}{flat} too.
+Normally\important{\OptionValue{listof}{entryprefix}}, it does not make sense
+to add a prefix such as ``figure'' or ``table'' to each entry in the lists of
+floating environments because, of course, only figures are included in the
+list of figures and only tables are included in the list of tables. Such a
+prefix provides no additional information and is thus omitted by default.
+However, you can add such prefixes using the
+\OptionValue{listof}{entryprefix} option. With this, all entries in the same
+list will get the same prefix. The prefix depends on the file extension of the
+auxiliary file that is used for the corresponding list. For the list of
+figures, the file extension is ``\File{lof}'' and therefore
+\Macro{listoflofentryname} is used. For the list of tables, the file extension
+is ``\File{lot}'' and \Macro{listoflotentryname} is used.
+
+For the \Class{scrbook} and \Class{scrreprt}\OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}} classes, \KOMAScript{} adds a vertical space to the lists
+of floating environments whenever a new chapter starts. This behaviour, which
+also exists in the standard classes, groups the lists by chapters. In
+\KOMAScript{}, it corresponds to setting \ChangedAt{v3.00}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}%
+\OptionValue{listof}{chaptergapsmall}%
+\LabelOptionValue{listof}{chaptergapsmall}%
+\important{\OptionValue{listof}{chaptergapsmall}}%
+\IndexOption{listof~=\textKValue{chaptergapsmall}}. In this case, is uses a
+fixed vertical space of 10\Unit{pt}.
+With\important{\OptionValue{listof}{chaptergapline}} the
+\OptionValue{listof}{chaptergapline}%
+\IndexOption{listof~=\textKValue{chaptergapline}} option, you instead get a
+vertical space the height of one standard text line. With
+\OptionValue{listof}{nochaptergap}%
+\IndexOption{listof~=\textKValue{nochaptergap}}%
+\important{\OptionValue{listof}{nochaptergap}}, you can completely remove the
+vertical space. The\important{\OptionValue{listof}{chapterentry}}
+\OptionValue{listof}{chapterentry}%
+\IndexOption{listof~=\textKValue{chapterentry}} option is a special feature.
+Instead of a vertical space, the table of contents entry for the chapter is
+inserted into the lists of floating environments. Note\textnote{Attention!}
+that this happens even if the chapter does not contain a floating environment.
+You can find a method where only chapters containing floating environments
+appear in the respective lists at \cite{https://komascript.de/comment/5070}.
+You can achieve a more direct control over what appears in the lists of
+floating environments with the \DescRef{\LabelBase.option.chapteratlists}
+option, which is explained in \autoref{sec:\LabelBase.structure}, on
+\DescPageRef{\LabelBase.option.chapteratlists}.
+
+You can find an overview of all settings for the \Option{listof} option in
+\autoref{tab:\LabelBase.listof}.
+
+\begin{desclist}
+ \desccaption[{Available values for the \Option{listof} option}]{%
+ Available values for the \Option{listof} option for modifying the format
+ and contents of the lists of floating
+ environments\label{tab:\LabelBase.listof}%
+ }{%
+ Available values for the \Option{listof} option (\emph{continued})%
+ }%
+ \entry{\PValue{chapterentry}, \PValue{withchapterentry}}{%
+ Indicates the beginning of chapters in the lists of floating environments
+ with copies of their table-of-contents entries.%
+ \IndexOption{listof~=\textKValue{chapterentry}}}%
+ \entry{\PValue{chaptergapline}, \PValue{onelinechaptergap}}{%
+ Indicates the beginning of chapters in the lists of floating environments
+ with a vertical space the height of one standard text line.%
+ \IndexOption{listof~=\textKValue{chaptergapline}}}%
+ \entry{\PValue{chaptergapsmall}, \PValue{smallchaptergap}}{%
+ Indicates the beginning of chapters in the lists of floating environments
+ with a small vertical space.%
+ \IndexOption{listof~=\textKValue{chaptergapsmall}}}%
+ \entry{\PValue{entryprefix}}{%
+ \ChangedAt{v3.06}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Adds a prefix before the number of each floating-environment list entry.
+ The prefix is usually language-dependent, e.\,g., in English ``Figure'' is
+ used for the list of figures and ``Table'' for the list of tables, each
+ followed by a white space.%
+ \IndexOption{listof~=\textKValue{entryprefix}}}%
+ \entry{\PValue{flat}, \PValue{left}}{%
+ Prints the lists of floating environments in tabular form. The caption
+ numbers are the first column, the caption texts the second column, and the
+ page numbers the third column. The space reserved for the caption numbers
+ depends on the previous \LaTeX{} run.%
+ \IndexOption{listof~=\textKValue{flat}}}%
+ \entry{\PValue{graduated}, \PValue{indent}, \PValue{indented}}{%
+ Prints the lists of floating environments in a hierarchical form. The
+ space reserved for the caption numbers is limited.%
+ \IndexOption{listof~=\textKValue{graduated}}}%
+ \entry{\PValue{leveldown}}{%
+ Uses headings that are one level lower in the sectioning hierarchy than
+ the default for lists of floating environments.%
+ \IndexOption{listof~=\textKValue{leveldown}}}%
+ \entry{\PValue{indenttextentries}, \PValue{indentunnumbered},
+ \PValue{numberline}}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ The \PValue{numberline} property (see \autoref{sec:tocbasic.toc},
+ \DescPageRef{tocbasic.cmd.setuptoc}) is set for the lists of floating
+ environments such as figures and tables. As a result, unnumbered entries
+ are left-aligned with the text of numbered entries of the same level.
+ However, the \KOMAScript{} classes themselves do not put unnumbered
+ entries in these lists. This option therefore affects only entries that
+ are generated not by the \KOMAScript{} classes themselves but with the
+ help of \DescRef{tocbasic.cmd.addxcontentsline} (see
+ \autoref{sec:tocbasic.toc}, \DescPageRef{tocbasic.cmd.addxcontentsline}).%
+ \IndexOption{toc~=\textKValue{numberline}}}%
+ \entry{\PValue{leftaligntextentries}, \PValue{leftalignunnumbered},
+ \PValue{nonumberline}}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ The \PValue{nonumberline} property (see \autoref{sec:tocbasic.toc},
+ \DescPageRef{tocbasic.cmd.setuptoc}) is set for the lists of floating
+ environments. This will place unnumbered entries left-aligned with the
+ number of numbered entries. However, the \KOMAScript{} classes themselves
+ do not put unnumbered entries in these lists. This option therefore
+ affects only entries that are generated not by the \KOMAScript{} classes
+ themselves but with the help of \DescRef{tocbasic.cmd.addxcontentsline}
+ (see \autoref{sec:tocbasic.toc},
+ \DescPageRef{tocbasic.cmd.addxcontentsline}).%
+ \IndexOption{toc~=\textKValue{nonumberline}}}%
+ \entry{\PValue{nochaptergap}, \PValue{ignorechapter}}{%
+ The beginnings of chapters are not marked in the lists of floating
+ environments.%
+ \IndexOption{listof~=\textKValue{nochaptergap}}}%
+ \entry{\PValue{notoc}, \PValue{nottotoc}, \PValue{plainheading}}{%
+ The lists of floating environments do not generate entries in the table of
+ contents.%
+ \IndexOption{listof~=\textKValue{nottotoc}}}%
+ \entry{\PValue{numbered}, \PValue{totocnumbered}, \PValue{tocnumbered},
+ \PValue{numberedtoc}, \PValue{numberedtotoc}}{%
+ The lists of floating environments receive numbered entries in the table
+ of contents.%
+ \IndexOption{listof~=\textKValue{numbered}}}%
+ \entry{\PValue{standardlevel}}{%
+ The lists use the normal sectioning level.%
+ \IndexOption{listof~=\textKValue{standardlevel}}}%
+ \entry{\PValue{totoc}, \PValue{toc}, \PValue{notnumbered}}{%
+ The lists of floating environment generate entries in the table of
+ contents, but their headings are unnumbered.%
+ \IndexOption{listof~=\textKValue{totoc}}}%
+\end{desclist}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{listoftables}%
+ \Macro{listoffigures}
+\end{Declaration}
+These commands generate a list of tables or figures. Changes affecting these
+lists will require two \LaTeX{} runs to take effect. The layout of the lists
+can be influenced by the \DescRef{\LabelBase.option.listof}%
+\important{\DescRef{\LabelBase.option.listof}} option with the values
+\PValue{graduated} or \PValue{flat} (see
+\DescPageRef{\LabelBase.option.listof}). In addition, the \PValue{listof} and
+\PValue{listofnumbered} values of the \DescRef{\LabelBase.option.toc}%
+\important{\DescRef{\LabelBase.option.toc}} option (see
+\autoref{sec:\LabelBase.toc}), as well as the \PValue{totoc} and
+\PValue{numbered} values of the \DescRef{\LabelBase.option.listof} option
+described above indirectly affect these lists.
+
+As\textnote{Hint!} a rule, you will find the lists of the floating
+environments immediately after the table of contents. In some documents, they
+go into the appendix. However, the author of this guide prefers them
+immediately after the table of contents.%
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{marginpar}% \section{Marginal Notes}
+
+
+\section{Appendix}
+\seclabel{appendix}
+\BeginIndexGroup
+\BeginIndex{}{Appendix}
+
+The appendix of a document mostly consists of supplements to the document.
+Typical parts of an appendix include a bibliography, an index, and a glossary.
+However you should not start an appendix for these parts alone because their
+format already distinguishes them from the main document. But if there are
+additional elements in the appendix, such as quoted third-party documents,
+endnotes, figures, or tabulars, the standard elements such as the bibliography
+should also be part of the appendix.
+
+
+\begin{Declaration}
+ \Macro{appendix}
+\end{Declaration}%
+The appendix is started in the standard as well as the {\KOMAScript} classes
+with \Macro{appendix}. Among other things, this command changes the chapter
+numbering to upper-case letters while ensuring that the rules according to
+\cite{DUDEN} for numbering the sectioning levels are followed (for
+German-speaking regions). These rules are explained in more detail in the
+description of the \DescRef{\LabelBase.option.numbers} option in
+\autoref{sec:\LabelBase.structure}, \DescPageRef{\LabelBase.option.numbers}.
+
+The format of the chapter headings\OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}} in the appendix is influenced by the
+\DescRef{\LabelBase.option.chapterprefix}%
+\important{\DescRef{\LabelBase.option.chapterprefix}\\
+ \DescRef{\LabelBase.option.appendixprefix}} and
+\DescRef{\LabelBase.option.appendixprefix} options. See
+\autoref{sec:\LabelBase.structure},
+\DescPageRef{\LabelBase.option.appendixprefix} for more information.
+
+Please\textnote{Attention!} note that \Macro{appendix} is a command,
+\emph{not} an environment! This command does not expect an argument. Chapters
+and sections in the appendix use \DescRef{\LabelBase.cmd.chapter} and
+\DescRef{\LabelBase.cmd.section}, just as in the main text.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Bibliography}
+\seclabel{bibliography}
+\BeginIndexGroup
+\BeginIndex{}{bibliography}
+
+The bibliography makes external sources accessible. As a rule, the
+bibliography is created from an external file with a database-like structure
+using the \BibTeX{} program. You can use the \BibTeX{} style to change both
+the format of the entries and their sorting. If you use an additional
+bibliography package like \Package{natbib}\IndexPackage{natbib},
+\Package{babelbib}\IndexPackage{babelbib}, or
+\Package{biblatex}\IndexPackage{biblatex}, \KOMAScript{}'s influence over the
+bibliography disappears. In such cases, you must follow the manual of the
+relevant bibliography package. You can find general information about
+bibliographies in \cite{lshort}.
+
+
+\begin{Declaration}
+ \OptionVName{bibliography}{setting}
+\end{Declaration}
+For a start,\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} you can select any predefined bibliography style in
+\PName{setting}. There are two such bibliography styles predefined in
+\KOMAScript{}. You should not confuse them with the styles used by
+\BibTeX\Index{BibTeX=\BibTeX}, which you select with
+\Macro{bibstyle}. While \BibTeX{} determines both the sorting and the
+contents of the bibliography, \KOMAScript{} influences only some basic
+features of the bibliography and few properties of the entry format.
+
+The\important{\OptionValue{bibliography}{oldstyle}}
+\OptionValue{bibliography}{oldstyle}%
+\IndexOption{bibliography~=\textKValue{oldstyle}} option selects a compact
+format for bibliography entries. In this case, using the
+\DescRef{maincls-experts.cmd.newblock}\IndexCmd{newblock} command results in
+only a small glue between the entries. The name comes from the fact that this
+is the most common classic form of a bibliography.
+In\important{\OptionValue{bibliography}{openstyle}} contrast, the
+\OptionValue{bibliography}{openstyle}%
+\IndexOption{bibliography~=\textKValue{openstyle}} setting selects a more
+modern and open kind of bibliography. The name comes from the fact that the
+\DescRef{maincls-experts.cmd.newblock} command inserts a paragraph break. The
+bibliography entries appear more structured. They are less compact and seem
+more relaxed or open. Information about defining new bibliography styles can
+be found in the description of the \DescRef{maincls-experts.cmd.newbibstyle}
+command in \autoref{sec:maincls-experts.experts},
+\DescPageRef{maincls-experts.cmd.newbibstyle}.
+
+In addition to the formatting style, you can select one more feature using
+\PName{setting}. The bibliography is a kind of list of contents. But instead
+of listing the contents of the document itself, it references external works.
+With this reasoning, you could argue that the bibliography is a separate
+chapter or section and therefore deserves a chapter or section number. The
+\OptionValue{bibliography}{numbered}%
+\important{\OptionValue{bibliography}{numbered}}%
+\IndexOption{bibliography~=\textKValue{numbered}} setting does exactly that,
+including creating an entry in the table of contents. In my opinion, a
+traditional, annotated source list should by this reasoning be a separate
+chapter too. Moreover, the bibliography is ultimately nothing you've written
+yourself and so merits at most an unnumbered entry in the table of contents,
+which is achieved with the \OptionValue{bibliography}{totoc}%
+\IndexOption{bibliography~=\textKValue{totoc}} option. The default setting,
+where the bibliography is produced as an unnumbered chapter and does not
+receive an entry in the table of contents corresponds to
+\OptionValue{bibliography}{nottotoc}%
+\IndexOption{bibliography~=\textKValue{nottotoc}}. For more information, see
+the \DescRef{\LabelBase.option.toc} option in \autoref{sec:\LabelBase.toc},
+especially the \PValue{bibliographynumbered}, \PValue{bibliography},
+and\PValue{nobibliography} values for this option on
+\DescPageRef{\LabelBase.option.toc.bibliography}.
+
+Sometimes\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} a document made using \Class{scrbook} or \Class{scrreprt}
+will have a bibliography for every chapter rather than one bibliography for
+the whole document. In that case, it makes sense for the bibliography
+itself\important{\OptionValue{bibliography=leveldown}} to be not a chapter but
+a section. You can achieve this using the
+\OptionValue{bibliography}{leveldown}%
+\IndexOption{bibliography~=\textKValue{leveldown}} option. You can also use
+this if you want the bibliography to appear with other lists under a common
+heading, therefore this option is also available with \Class{scrartcl}.
+
+You can find a summary of available values for the \Option{bibliography}
+option in \autoref{tab:\LabelBase.bibliography}. Note, however, that you can
+define new values with
+\DescRef{maincls-experts.cmd.newbibstyle}\IndexCmd{newbibstyle}.
+
+\begin{table}
+ \caption[{Available values for the \Option{bibliography} option}]{%
+ Predefined values for the \Option{bibliography} option for setting the
+ bibliography format}
+ \label{tab:\LabelBase.bibliography}
+ \begin{desctabular}
+ \pventry{leveldown}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ The bibliography uses a sectioning command one level lower than
+ the default.%
+ \IndexOption{bibliography~=\textKValue{leveldown}}}%
+ \entry{\PValue{notoc}, \PValue{nottotoc}, \PValue{plainheading}}{%
+ The bibliography receives neither an entry in the table of contents nor
+ a number.%
+ \IndexOption{bibliography~=\textKValue{nottotoc}}}%
+ \entry{\PValue{numbered}, \PValue{tocnumbered}, \PValue{totocnumbered},
+ \PValue{numberedtoc}, \PValue{numberedtotoc}}{%
+ The bibliography receives an entry in the table of contents and a
+ number.%
+ \IndexOption{bibliography~=\textKValue{numbered}}}%
+ \pventry{oldstyle}{%
+ The bibliography uses the classic, compact formation, where
+ \DescRef{maincls-experts.cmd.newblock}\IndexCmd{newblock} generates only
+ a horizontal glue.%
+ \IndexOption{bibliography~=\textKValue{oldstyle}}}%
+ \pventry{openstyle}{%
+ The bibliography uses the structured, open format where
+ \DescRef{maincls-experts.cmd.newblock}\IndexCmd{newblock} generates a
+ paragraph break.%
+ \IndexOption{bibliography~=\textKValue{openstyle}}}%
+ \pventry{standardlevel}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ The bibliography uses the standard sectioning command level.%
+ \IndexOption{bibliography~=\textKValue{standardlevel}}}%
+ \entry{\PValue{toc}, \PValue{totoc}, \PValue{notnumbered}}{%
+ The bibliography receives an entry in the table of contents but no
+ number.%
+ \IndexOption{bibliography~=\textKValue{totoc}}}%
+ \end{desctabular}
+\end{table}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setbibpreamble}\Parameter{preamble}
+\end{Declaration}%
+You can use the \Macro{setbibpreamble} command to set a preamble for the
+bibliography\Index{bibliography}. This preamble must be placed 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. Like\textnote{Attention!} the
+\OptionValueRef{\LabelBase}{bibliography}{totoc} and
+\OptionValueRef{\LabelBase}{bibliography}{totocnumbered} options, this command
+only works if you have not loaded a package which prevents this from happening
+by redefining the \Environment{thebibliography} environment. Although the
+\Package{natbib} package\IndexPackage{natbib} uses undocumented, internal
+{\KOMAScript} macros, \Macro{setbibpreamble} could still work with the current
+version of \Package{natbib} (see \cite{package:natbib}).
+\begin{Example}
+ You want to point out that the bibliographical references are sorted
+ alphabetically by the names of the authors. You therefore use the following
+ command:
+\begin{lstcode}
+ \setbibpreamble{References are in alphabetical order.
+ References with more than one author are sorted
+ according to the first author.\par\bigskip}
+\end{lstcode}
+ The \Macro{bigskip}\IndexCmd{bigskip} command ensures that the
+ preamble and the first reference are separated by a large vertical
+ space.%
+\end{Example}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BreakBibliography}\Parameter{interruption code}
+\end{Declaration}
+This\textnote{Attention!}\ChangedAt{v3.00}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} command exists only if the
+environment \Environment{thebibliography} has not been redefined by another
+package. With this instruction, you can insert a break into the
+bibliography. The \PName{interruption code} will be expanded inside a
+group. Such a break may be, for example, a heading using
+\DescRef{\LabelBase.cmd.minisec}. Unfortunately there is currently no way to
+have this command automatically generated, for example by using a special
+entry in the \BibTeX{} database. Therefore, it can currently only be used by
+users who edit the bibliography directly. For this reason, its usefulness is
+very limited.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AfterBibliographyPreamble}\Parameter{code}%
+ \Macro{AtEndBibliography}\Parameter{code}
+\end{Declaration}
+In\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}
+some cases, it may be useful to add some \PName{code} after the bibliography
+preamble or just before the end of the bibliography. This is possible with the
+help of these two instructions.
+\begin{Example}
+ You want to set the bibliography not justified but ragged right. You can
+ achieve this with:
+\begin{lstcode}
+ \AfterBibliographyPreamble{\raggedright}
+\end{lstcode}
+ You can put this instruction anywhere before the bibliography. However, it is
+ recommended to do so in the preamble of the document or a separate package.
+\end{Example}
+The\textnote{Attention!} functionality of this instruction depends on
+cooperation with packages modifying the bibliography, if you use such a
+package\iffree{}{(see \autoref{sec:maincls-experts.coexistence},
+\DescPageRef{maincls-experts.cmd.AfterBibliographyPreamble})}.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Index}
+\seclabel{index}
+\BeginIndexGroup
+
+For general information about making a keyword index, see \cite{lshort},
+\cite{makeindex}, and \cite{xindy}. Using a package that redefines
+commands or environments for the index \KOMAScript{}'s ability to influence
+the index may disappear. This applies, for example, when using the
+\Package{index}\IndexPackage{index} package, but not when using the
+\Package{splitidx}\IndexPackage{splitidx} package (see
+\cite{package:splitindex}).
+
+\begin{Declaration}
+ \OptionVName{index}{setting}%
+\end{Declaration}
+\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+By default or with \OptionValue{index}{default}%
+\IndexOption{index~=\textKValue{default}}, the index is an unnumbered chapter
+(\Class{scrbook} or \Class{scrreprt}) or section (\Class{scrartcl}) without an
+entry in the table of contents. Since\important{\OptionValue{index}{totoc}}
+the index usually comes last in a book or similar document, it does not
+actually need an entry in the table of contents. Nevertheless, if you want to
+do this, for example because you are working with a multi-index keyword
+dictionary such as the one that appears in this \iffree{guide}{book}, you can
+create this with the
+\OptionValue{index}{totoc}\IndexOption{index~=\textKValue{totoc}} option.
+You\ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} can even number the index using the
+\OptionValue{index}{numbered}\IndexOption{index~=\textKValue{numbered}}
+setting. See also the \DescRef{\LabelBase.option.toc} option with the
+\PValue{index} or \PValue{indexnumbered} values in
+\autoref{sec:\LabelBase.toc} starting at
+\DescPageRef{\LabelBase.option.toc.index}.
+
+For example, if you create multiple indexes with
+\Package{splitidx}\IndexPackage{splitidx} (see \cite{package:splitindex}),
+it may be useful to group them under a common heading. To make this possible,
+\OptionValue{index}{leveldown}%
+\ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}\important{\OptionValue{index}{leveldown}} places the index
+one sectioning level deeper than usual. In \Class{scrbook} and
+\Class{scrreprt}, it is no longer a chapter but a section; with
+\Class{scrartcl}, a subsection. The \OptionValue{index}{standardlevel}%
+\ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}\important{\OptionValue{index}{standardlevel}} option is
+the counterpart to this and cancels any instance of
+\OptionValue{index}{leveldown} used previously.
+
+You can find a summary of the available values for the \PName{setting} of
+\Option{index} in \autoref{tab:maincls.index}.
+
+\begin{table}
+ \caption{Available values for the \Option{index} option}
+ \label{tab:maincls.index}
+ \begin{desctabular}
+ \pventry{leveldown}{%
+ \ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ The index is moved down by one sectioning level.%
+ \IndexOption{index~=\textKValue{leveldown}}%
+ }%
+ \entry{\PValue{notoc}, \PValue{nottotoc}, \PValue{plainheading}}{%
+ The index does not receive an entry in the table of contents.%
+ \IndexOption{index~=\textKValue{nottotoc}}}%
+ \entry{\PValue{numbered}, \PValue{tocnumbered}, \PValue{totocnumbered},
+ \PValue{numberedtoc}, \PValue{numberedtotoc}}{%
+ \ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ The index receives an entry in the table of contents and is numbered.%
+ \IndexOption{index~=\textKValue{numbered}}}%
+ \pventry{standardlevel}{%
+ \ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ The index is at the usual sectioning level.%
+ \IndexOption{index~=\textKValue{standardlevel}}%
+ }%
+ \entry{\PValue{toc}, \PValue{totoc}, \PValue{notnumbered}}{%
+ The index receives an entry in the table of contents without being
+ numbered.%
+ \IndexOption{index~=\textKValue{totoc}}}%
+ \end{desctabular}
+\end{table}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setindexpreamble}\Parameter{preamble}
+\end{Declaration}%
+As with the bibliography, you can also provide a preamble to the
+index. This is often the case if you have more than one index or if
+you mark different kinds of references by highlighting the page
+numbers in different ways.
+\begin{Example}
+ You have a document in which terms are both defined and used. The
+ page numbers of definitions are in bold. Of course you want to make
+ your reader aware of this fact. Thus you insert a preamble for the
+ index:
+\begin{lstcode}
+ \setindexpreamble{All page numbers printed in \textbf{bold}
+ refer to definitions of terms. Page numbers printed
+ normally refer to pages where the term is used.\par\bigskip}
+\end{lstcode}
+\end{Example}
+
+Note\textnote{Attention!} that the page style is changed for the first page
+of the index. The page style that is applied is defined in the macro
+\DescRef{\LabelBase.cmd.indexpagestyle} (see
+\autoref{sec:\LabelBase.pagestyle},
+\DescPageRef{\LabelBase.cmd.indexpagestyle}).
+
+The usual \LaTeX{} packages and additional programs are responsible for
+creating, sorting, and outputting the index.%
+\iftrue % Umbruchoptimierung
+ \iffree{}{ %
+ For example, the \Package{imakeidx}\IndexPackage{imakeidx} package
+ (see \cite{package:imakeidx}), which among other things automates the
+ invocation of the \File{makeindex} or \File{xindy} program, is highly
+ recommended. This eliminates a common source of error, particularly for
+ \LaTeX{} beginners.%
+ }
+ {\KOMAScript}, like the standard classes, provides only the basic macros
+ and environments for them.%
+\fi
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "english"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrdatetime.tex b/macros/latex/contrib/koma-script/source-doc/english/scrdatetime.tex
new file mode 100644
index 0000000000..7acd9f2bf7
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrdatetime.tex
@@ -0,0 +1,443 @@
+% ======================================================================
+% scrdatetime.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrdatetime.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 scrpage2 of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber scrpage2 in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrdatetime.tex}
+ [$Date: 2018-03-30 11:57:25 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (chapter: scrdate, scrtime)]
+\translator{Markus Kohm\and Gernot Hassenpflug\and Karl Hagen}
+
+% Date of the translated German file: 2018-02-05
+
+\chapter{The Day of the Week with \Package{scrdate}}
+\labelbase{scrdate}
+\BeginIndexGroup
+\BeginIndex{Package}{scrdate}
+
+Originally, the \Package{scrdate} package could only give the day of the week
+for the current date. Nowadays, it offers this and more for any date in the
+Gregorian calendar.
+
+\begin{Declaration}
+ \Macro{CenturyPart}\Parameter{year}\\%
+ \Macro{DecadePart}\Parameter{year}%
+\end{Declaration}%
+The\ChangedAt{v3.05a}{\Package{scrdate}} \Macro{CenturyPart} command returns
+the value of the century digits\,---\,thousands and hundreds\,---\,of a
+\PName{year}. The \Macro{DecadePart} command, on the other hand, gives the
+value of the remaining digits, i.\,e. the tens and the units. The
+\PName{year} can have any number of digits. You can assign the value directly
+to a counter or use it for calculations with
+\Macro{numexpr}\IndexCmd{numexpr}. To output\textnote{Attention!} it as an
+Arabic number, you should prefix it with \Macro{the}\IndexCmd{the}.
+
+\begin{Example}
+ You want to calculate and print the century of the current year.
+\begin{lstcode}
+ The year \the\year\ is year \the\DecadePart{\year}
+ of the \engord{\numexpr\CenturyPart{\year}+1\relax} century.
+\end{lstcode}
+ The result would be:
+ \begin{quote}
+ The year \the\year\ is year \the\DecadePart{\year}
+ of the \engordnumber{\numexpr\CenturyPart{\year}+1\relax} century.
+ \end{quote}
+ This example uses the \Package{engord}\IndexPackage{engord} package.
+ See \cite{package:engord} for more information.
+\end{Example}
+
+Note\textnote{Attention!} that the counting method used here treats the year
+2000 as year~0\,---\,and therefore the first year\,---\,of the 21st~century.
+If necessary, however, you can make a correction with \Macro{numexpr}, as
+shown for the ordinal number in the example.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DayNumber}\Parameter{year}\Parameter{month}\Parameter{day}\\%
+ \Macro{ISODayNumber}\Parameter{ISO-date}%
+\end{Declaration}%
+These\ChangedAt{v3.05a}{\Package{scrdate}} two commands return the value of
+the day-of-the-week\Index{day>of the week} number for any date. They differ
+only in the method of specifying the date. While the \Macro{DayNumber} command
+requires the \PName{year}, \PName{month}, and \PName{day} as separate
+parameters, the \Macro{ISODayNumber} command expects an \PName{ISO-date} as a
+single argument, \PName{ISO-date}, using the ISO notation
+\PName{year}\texttt{-}\PName{month}\texttt{-}\PName{day}. It does not matter
+if the \PName{month} or \PName{day} have one or two digits. You can use the
+result of both commands to assign directly to a counter or for calculations
+using \Macro{numexpr}\IndexCmd{numexpr}. To print\textnote{Attention!} it as
+an Arabic number, you should prefix it with \Macro{the}\IndexCmd{the}.
+
+\begin{Example}
+ You want to know the number of the day of the week of the 1st~May~2027.
+\begin{lstcode}
+ The 1st~May~2027 has \the\ISODayNumber{2027-5-1}
+ as the number of the day of the week.
+\end{lstcode}
+ The result will be:
+ \begin{quote}
+ The 1st~May~2027 has \the\ISODayNumber{2027-5-1}
+ as the number of the day of the week.
+ \end{quote}
+\end{Example}
+
+It is particularly worth noting that you can even step a specified number of
+days into the future or or the past from a given date.
+\begin{Example}
+ You want to know the number of the day of the week 12~days from now
+ and 24~days before the 24th~December~2027.
+\begin{lstcode}
+ In 12~days, the number of the day of the week
+ will be \the\DayNumber{\year}{\month}{\day+12}, and
+ 24~days before the 24th~December~2027 it will be
+ \the\ISODayNumber{2027-12-24-24}.
+\end{lstcode}
+ The result could be, for example:
+ \begin{quote}
+ In 12~days, the number of the day of the week
+ will be \the\DayNumber{\year}{\month}{\day+12}, and
+ 24~days before the 24th~December~2027 it will be
+ \the\ISODayNumber{2027-12-24-24}.
+ \end{quote}
+\end{Example}
+
+The days of the week are numbered as follows: Sunday\,=\,0, Monday\,=\,1,
+Tuesday\,=\,2, Wednesday\,=\,3, Thursday\,=\,4, Friday\,=\,5, and
+Saturday\,=\,6.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DayNameByNumber}\Parameter{number of the day of the week}\\%
+ \Macro{DayName}\Parameter{year}\Parameter{month}\Parameter{day}\\%
+ \Macro{ISODayName}\Parameter{ISO-date}%
+\end{Declaration}%
+Usually\ChangedAt{v3.05a}{\Package{scrdate}} you are less interested in the
+number of the day of the week than in its name. Therefore, the
+\Macro{DayNameByNumber} command returns the name of the day of the week
+corresponding to a day-of-the-week number. This number can be the result, for
+example, of \Macro{DayNumber} or \Macro{ISODayNumber}. The two commands
+\Macro{DayName} and \Macro{ISODayName} directly return the name of the day of
+the week of a given date.
+
+\begin{Example}
+ You want to know the name of the day of the week of the 24th~December~2027.
+\begin{lstcode}
+ Please pay by \ISODayName{2027-12-24},
+ 24th~December~2027 the amount of \dots.
+\end{lstcode}
+ The result will be:
+ \begin{quote}
+ Please pay by \ISODayName{2027-12-24},
+ 24th~December~2027 the amount of \dots.
+ \end{quote}
+\end{Example}
+
+Once again, it is particularly worth noting that you can perform calculations,
+to a certain extent:
+\begin{Example}
+ You want to know the names of the day of the week 12~days from now
+ and 24~days before the 24th~December~2027.
+\begin{lstcode}
+ In 12~days, the name of the day of the week
+ will be \DayName{\year}{\month}{\day+12}, and
+ 24~days before the 24th~December~2027 it will be
+ \ISODayName{2027-12-24-24}, while two weeks
+ and three days after a Wednesday will be a
+ \DayNameByNumber{3+2*7+3}.
+\end{lstcode}
+ The result could be, for example:
+ \begin{quote}
+ In 12~days, the name of the day of the week
+ will be \DayName{\year}{\month}{\day+12}, and
+ 24~days before the 24th~December~2027 it will be
+ \ISODayName{2027-12-24-24}, while two weeks
+ and three days after a Wednesday will be a
+ \DayNameByNumber{3+2*7+3}.
+ \end{quote}
+\end{Example}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ISOToday}%
+ \Macro{IsoToday}%
+ \Macro{todaysname}%
+ \Macro{todaysnumber}%
+\end{Declaration}%
+In the previous examples, the current date was always specified cumbersomely
+using the \TeX{} registers \Macro{year}\IndexCmd{year},
+\Macro{month}\IndexCmd{month}, and \Macro{day}\IndexCmd{day}. The
+\Macro{ISOToday}\ChangedAt{v3.05a}{\Package{scrdate}} and \Macro{IsoToday}
+commands directly return the current date in ISO-notation. These commands
+differ only in the fact that \Macro{ISOToday} always outputs a two-digit month
+and day, while \Macro{IsoToday} outputs single-digit numbers for values less
+than 10. The \Macro{todaysname} command directly returns the name of the
+current day of the week, while \Macro{todaysnumber} returns the number of the
+current day of the week. You can find more information about using this value
+in the explanations of \DescRef{scrdate.cmd.DayNumber} and
+\DescRef{scrdate.cmd.ISODayNumber}.
+
+\begin{Example}
+ I want to show you on what day of the week this document was typeset:
+\begin{lstlisting}
+ This document was created on a \todaysname.
+\end{lstlisting}
+ This will result, for example, in:
+ \begin{quote}
+ This document was created on a \todaysname.
+ \end{quote}
+\end{Example}
+
+For languages that have a case system for nouns, note that the package cannot
+decline words. The terms are given in the form appropriate for displaying a
+date in a letter, which is the nominative singular for the currently supported
+languages. Given this limitation, the example above will not work correctly if
+translated directly into some other languages.
+
+\begin{Explain}
+ The\textnote{Hint!} names of the weekdays in \Package{scrdate} all have
+ initial capital letters. If you need the names completely in lower case, for
+ example because that is the convention in the relevant language, simply wrap
+ the command with the \LaTeX{} \Macro{MakeLowercase}\IndexCmd{MakeLowercase}%
+ \important{\Macro{MakeLowercase}} command:
+ % Umbruchkorrektur: listings
+\begin{lstcode}
+ \MakeLowercase{\todaysname}
+\end{lstcode}
+ This converts the whole argument into lower-case letters. Of course, you can
+ also do this for
+ \DescRef{scrdate.cmd.DayNameByNumber}\IndexCmd{DayNameByNumber},
+ \DescRef{scrdate.cmd.DayName}\IndexCmd{DayName}, and
+ \DescRef{scrdate.cmd.ISODayName}\IndexCmd{ISODayName} commands described
+ above.%
+\end{Explain}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{nameday}\Parameter{name}
+\end{Declaration}%
+Just as you can directly modify the output of \Macro{today} with
+\DescRef{maincls.cmd.date}\IndexCmd{date}, so you can change the output of
+\DescRef{scrdate.cmd.todaysname} to \PName{name} with \Macro{nameday}.
+\begin{Example}
+ You change the current date to a fixed value using
+ \DescRef{maincls.cmd.date}. You are not interested in the actual name of the
+ day, but want only to show that it is a workday. So you write:
+\begin{lstlisting}
+ \nameday{workday}
+\end{lstlisting}
+ After this, the previous example will result in:
+ \begin{quote}\nameday{workday}
+ This document was created on a \todaysname.
+ \end{quote}
+\end{Example}
+There's no corresponding command to change the result of
+\DescRef{scrdate.cmd.ISOToday}\IndexCmd{ISOToday} or
+\DescRef{scrdate.cmd.IsoToday}\IndexCmd{IsoToday}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{newdaylanguage}\Parameter{language}%
+ \Parameter{Monday}\Parameter{Tuesday}%
+ \Parameter{Wednesday}\Parameter{Thursday}%
+ \Parameter{Friday}\Parameter{Saturday}
+ \Parameter{Sunday}%
+\end{Declaration}
+Currently the \Package{scrdate} package recognizes the following languages:
+\begin{itemize}\setlength{\itemsep}{.5\itemsep}
+\item Croatian (\PValue{croatian}),
+\item Czech (\PValue{czech}\ChangedAt{v3.13}{\Package{scrdate}}),
+\item Danish (\PValue{danish}),
+\item Dutch (\PValue{dutch}),
+\item English (\PValue{american}\ChangedAt{v3.13}{\Package{scrdate}},
+ \PValue{australian}, \PValue{british}, \PValue{canadian}, \PValue{english},
+ \PValue{UKenglish}, and USenglish),
+\item Finnish (\PValue{finnish}),
+\item French (\PValue{acadian}, \PValue{canadien},
+ \PValue{francais}\ChangedAt{v3.13}{\Package{scrdate}}, and \PValue{french}),
+\item German (\PValue{austrian}\ChangedAt{v3.08b}{\Package{scrdate}},
+ \PValue{german}, \PValue{naustrian}, \PValue{ngerman},
+ \PValue{nswissgerman}, and
+ \PValue{swissgerman}\ChangedAt{v3.13}{\Package{scrdate}}),
+\item Italian (\PValue{italian}),
+\item Norwegian (\PValue{norsk}),
+\item Polish (\PValue{polish}\ChangedAt{v3.13}{\Package{scrdate}}),
+\item Slovak (\PValue{slovak}),
+\item Spanish (\PValue{spanish}),
+\item Swedish (\PValue{swedish}).
+\end{itemize}
+You can also configure it for additional languages. To do so, the first
+argument of \Macro{newdaylanguage} is the name of the language, and the other
+arguments are the names of the corresponding days of the week.
+
+In the current implementation, it does not matter whether you load
+\Package{scrdate} before or after \Package{ngerman}\IndexPackage{ngerman},
+\Package{babel}\IndexPackage{babel}, or similar packages. In each case the
+correct language will be used provided it is supported.
+
+\begin{Explain}
+ To be more precise, as long as you select a language in a way that is
+ compatible with \Package{babel}\IndexPackage{babel}, \Package{scrdate} will
+ use the correct language. If this is not the case, you will get (US) English
+ names.
+\end{Explain}
+
+Of course, if you create definitions for a language that was previously
+unsupported, please mail them to the author of \KOMAScript{}. There is a good
+chance that future versions of \KOMAScript{} will add support for that
+language.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\chapter{The Current Time with \Package{scrtime}}
+\labelbase{scrtime}
+\BeginIndexGroup
+\BeginIndex{Package}{scrtime}
+
+This package lets you find the current time. Starting with version~3.05, the
+package also supports the option interface already familiar from the
+\KOMAScript{} classes and various other \KOMAScript{} packages. See, for
+example, \autoref{sec:typearea.options} for more information.
+
+\begin{Declaration}%
+ \Macro{thistime}\OParameter{delimiter}%
+ \Macro{thistime*}\OParameter{delimiter}
+\end{Declaration}%
+\Macro{thistime} returns the current time\Index{time} in hours and minutes.
+The delimiter between the values of hour, minutes and seconds can be given in
+the optional argument. The default is the character ``\PValue{:}''.
+
+\Macro{thistime*} works in almost the same way as \Macro{thistime}. The only
+difference is that, unlike \Macro{thistime}, \Macro{thistime*} does not add a
+leading zero to the minute field when its value is less than 10. Thus, with
+\Macro{thistime} the minute field has always two places.
+\begin{Example}
+ The line
+\begin{lstlisting}
+ Your train departs at \thistime.
+\end{lstlisting}
+ results, for example, in:
+ \begin{quote}
+ Your train departs at \thistime.
+ \end{quote}
+ or:
+ \begin{quote}
+ Your train departs at 23:09.
+ \end{quote}
+ \bigskip
+ In contrast to the previous example a line like:
+\begin{lstlisting}
+ This day is already \thistime*[\ hours and\ ] minutes old.
+\end{lstlisting}
+ results in:
+ \begin{quote}
+ This day is already \thistime*[\ hours and\ ] minutes old.
+ \end{quote}
+ or:
+ \begin{quote}
+ This day is already 12 hours and 25 minutes old.
+ \end{quote}
+\end{Example}
+\EndIndexGroup
+
+
+\begin{Declaration}%
+ \Macro{settime}\Parameter{time}
+\end{Declaration}%
+\Macro{settime} sets the output of \DescRef{scrtime.cmd.thistime} and
+\DescRef{scrtime.cmd.thistime*} to a fixed value. In this case, the optional
+parameter of \DescRef{scrtime.cmd.thistime} or \DescRef{scrtime.cmd.thistime*}
+is ignored, since the complete string returned by
+\DescRef{scrtime.cmd.thistime} or \DescRef{scrtime.cmd.thistime*} has been
+explicitly defined. \Macro{settime}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{12h}{simple switch}%
+\end{Declaration}%
+\BeginIndex{Option}{24h}%
+With the \Option{12h}\ChangedAt{v3.05a}{\Package{scrtime}} option, you can
+select whether to print the time given by \DescRef{scrtime.cmd.thistime} and
+\DescRef{scrtime.cmd.thistime*} in 12- or 24-hour format. The option accepts
+the values for simple switches listed in \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch}. Using the option without a value is
+equivalent to \OptionValue{12h}{true}, and therefore activates the
+12-hour-format. The default, however, is \Option{24h}.
+
+You can set this option globally in the optional argument of
+\DescRef{typearea.cmd.documentclass}, as a package option in the optional
+argument of \DescRef{typearea.cmd.usepackage}, or even after loading the
+package using \DescRef{typearea.cmd.KOMAoptions} or
+\DescRef{typearea.cmd.KOMAoption} (see, e.\,g. \autoref{sec:typearea.options},
+\DescPageRef{typearea.cmd.KOMAoptions}). However the option no longer has any
+effect on the if you call \DescRef{scrtime.cmd.settime}. After invoking this
+command, the time is output only with the value and in the format specified
+there.
+
+For\textnote{Attention!} the sake of compatibility with earlier versions of
+\Package{scrtime}, the option \Option{24h} will switch to 24-hour format if
+used in the optional argument of \Macro{documentclass} or \Macro{usepackage}.
+However, you should not use this option any longer.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrextend.tex b/macros/latex/contrib/koma-script/source-doc/english/scrextend.tex
new file mode 100644
index 0000000000..5504ee4b0d
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrextend.tex
@@ -0,0 +1,222 @@
+% ======================================================================
+% scrextend.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrextend.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% Package scrextend for Document Writers
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Paket scrextend fuer Dokument-Autoren
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{scrextend.tex}
+ [$Date: 2018-04-09 10:14:11 +0200 (Mon, 09 Apr 2018) $
+ KOMA-Script package scrextend]
+\translator{Markus Kohm\and Karl Hagen}
+
+% Date of the translated German file: 2018-01-24
+
+\chapter[{\KOMAScript{} Features for Other Classes with \Package{scrextend}}]
+ {Using Basic Features of the \KOMAScript{} Classes in Other Classes with the
+ \Package{scrextend} Package}
+\labelbase{scrextend}
+\BeginIndexGroup%
+\BeginIndex{Package}{scrextend}%
+
+There are some features that are common to all \KOMAScript{} classes. This
+applies not only to the \Class{scrbook}, \Class{scrreprt}, and
+\Class{scrartcl} classes, which are intended to replace the standard classes
+\Class{book}, \Class{report}, and \Class{article}, but also to a large extend
+the \KOMAScript{} class \Class{scrlttr2}, the successor to \Class{scrlettr},
+which is intended for letters. These basic features, which can be found in the
+classes mentioned above, are also provided by package \Package{scrextend} from
+\KOMAScript{} version~3.00 onward. This\textnote{Attention!} package should
+not be used with \KOMAScript{} classes. It is intended for use with other
+classes only. If you attempt to load the package with a \KOMAScript{} class,
+\Package{scrextend} will detect this and reject loading it with a warning
+message.
+
+The fact that \hyperref[cha:scrlttr2]{\Package{scrletter}}%
+\IndexPackage{scrletter} can be used not only with \KOMAScript{} classes but
+also with the standard classes is partly due to \Package{scrextend}. If
+\hyperref[cha:scrlttr2]{\Package{scrletter}} detects that it is not being used
+with a \KOMAScript class, it automatically loads \Package{scrextend}. Doing
+so makes all required \KOMAScript{} classes available.
+
+Of course, there is no guarantee that \Package{scrextend} will work with all
+classes. The package has been designed primarily to extend the standard
+classes and those derived from them. In any case, before you use
+\Package{scrextend}, you should first make sure that the class you are using
+does not already provide the feature you need.
+
+In addition to the features described in this chapter, there are a few more
+that are primarily intended for authors of classes and packages. These can be
+found in \autoref{cha:scrbase}, starting on \autopageref{cha:scrbase}. The
+\hyperref[cha:scrbase]{\Package{scrbase}}%
+\important{\hyperref[cha:scrbase]{\Package{scrbase}}}\IndexPackage{scrbase}
+package documented there is used by all \KOMAScript{} classes and the
+\Package{scrextend} package.
+
+All \KOMAScript{} classes and the \Package{scrextend} package also load the
+\hyperref[cha:scrlfile]{\Package{scrlfile}}%
+\important{\hyperref[cha:scrlfile]{\Package{scrlfile}}}\IndexPackage{scrlfile}
+package described in \autoref{cha:scrlfile} starting on
+\autopageref{cha:scrlfile}. Therefore the features of this package are also
+available when using \Package{scrextend}.
+
+\iftrue % Umbruchkorrekturtext
+In contrast, only the \KOMAScript{} classes \Class{scrbook}, \Class{scrreprt},
+and \Class{scrartcl} load the \hyperref[cha:tocbasic]{\Package{tocbasic}}
+package (see \autoref{cha:tocbasic} starting on \autopageref{cha:tocbasic}),
+which is designed for authors of classes and packages. For this reason, the
+features defined there are found only in those classes and not in
+\Package{scrextend}. Of course you can still use
+\hyperref[cha:tocbasic]{\Package{tocbasic}} together with
+\Package{scrextend}.%
+\fi
+
+\LoadCommonFile{options}% \section{Early or late Selection of Options}
+
+\LoadCommonFile{compatibility}% \section{Compatibility with Earlier Versions of \KOMAScript}
+
+
+\section{Optional, Extended Features}
+\seclabel{optionalFeatures}
+
+The \Package{scrextend} package provides some optional, extended features.
+These features are not available by default but can be activated. These
+features are optional because, for example, they may conflict with features of
+the standard classes of other commonly used packages.
+
+\begin{Declaration}
+ \OptionVName{extendedfeature}{feature}
+\end{Declaration}
+With this option, you can activate an extended \PName{feature} of
+\Package{scrextend}. This option is available only while loading
+\Package{scrextend}. You must therefore specify this option in the optional
+argument of \DescRef{\LabelBase.cmd.usepackage}\PParameter{scrextend}. %
+\iffree{%
+ An overview of all available features is shown in
+ \autoref{tab:scrextend.optionalFeatures}.
+
+ \begin{table}
+ \caption[{Available extended features of
+ \Package{scrextend}}]{Overview of the optional extended
+ features of \Package{scrextend}}
+ \label{tab:scrextend.optionalFeatures}
+ \begin{desctabular}
+ \entry{\PName{title}}{%
+ title pages have the additional features of the \KOMAScript{} classes;
+ this applies not only to the commands for the title page but also to
+ the \DescRef{\LabelBase.option.titlepage} option (see
+ \autoref{sec:scrextend.titlepage}, from
+ \autopageref{sec:scrextend.titlepage})%
+ }%
+ \end{desctabular}
+ \end{table}
+}{%
+ \par%
+ Currently the only available extended \PName{feature} is
+ \PValue{title}\IndexOption[indexmain]{extendedfeature~=\textKValue{title}}%
+ \important{\OptionValue{extendedfeature}{title}}.
+ This \PName{feature} gives title pages the features of the \KOMAScript{}
+ classes, as described in \autoref{sec:scrextend.titlepage} starting on
+ \autopageref{sec:scrextend.titlepage}.%
+}%
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{draftmode}% \section{Draft Mode}
+
+\LoadCommonFile{fontsize}%
+
+\LoadCommonFile{textmarkup}% \section{Text Markup}
+
+\LoadCommonFile{titles}% \section{Document Title Pages}
+
+\LoadCommonFile{oddorevenpage}% \section{Detection of Odd and Even Pages}
+
+\section{Choosing a Predefined Page Style}
+\seclabel{pagestyle}
+
+One of the basic features of a document is the page
+style\Index[indexmain]{page>style}. In \LaTeX{}, the page style primarily
+determines the content of headers and footers. The \Package{scrextend} package
+does not define any page styles itself. Instead it uses the page styles of the
+\LaTeX{} kernel.
+
+
+\begin{Declaration}
+ \Macro{titlepagestyle}
+\end{Declaration}%
+\Index{title>page style}%
+On some pages \DescRef{maincls.cmd.thispagestyle}\IndexCmd{thispagestyle}
+automatically selects a different page style. Currently, \Package{scrextend}
+only does this for title pages, and only if
+\OptionValueRef{\LabelBase}{extendedfeature}{title} has been used (see
+\autoref{sec:scrextend.optionalFeatures},
+\DescPageRef{scrextend.option.extendedfeature}). In this case the page style
+specified in \DescRef{maincls.cmd.thispagestyle} will be used. The default for
+\DescRef{maincls.cmd.thispagestyle} is
+\PageStyle{plain}\IndexPagestyle{plain}. This page style is defined by the
+\LaTeX{} kernel, so it should always be available.%
+\EndIndexGroup
+
+\LoadCommonFile{interleafpage}% \section{Interleaf Pages}
+
+\LoadCommonFile{footnotes}% \section{Footnotes}
+
+\LoadCommonFile{dictum}% \section{Dicta}
+
+\LoadCommonFile{lists}% \section{Lists}
+
+\LoadCommonFile{marginpar}% \section{Margin Notes}
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% ispell-local-dictionary: "english"
+%%% coding: us-ascii
+%%% TeX-master: "../guide.tex"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrhack.tex b/macros/latex/contrib/koma-script/source-doc/english/scrhack.tex
new file mode 100644
index 0000000000..a7dfac605c
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrhack.tex
@@ -0,0 +1,264 @@
+% ======================================================================
+% scrhack.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrhack.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 scrhack of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------------
+%
+% Kapitel ueber scrhack in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrhack.tex}
+ [$Date: 2018-03-27 11:46:14 +0200 (Tue, 27 Mar 2018) $
+ KOMA-Script guide (chapter: scrhack)]
+\translator{Markus Kohm\and Karl Hagen}
+
+% Date of the translated German file: 2018-02-05
+\chapter{Improving Third-Party Packages with \Package{scrhack}}
+\labelbase{scrhack}
+
+\BeginIndexGroup
+\BeginIndex{Package}{scrhack}
+Some packages from other authors do not work well with \KOMAScript{}. It is
+often very tedious for the author of \KOMAScript{} to convince the authors of
+these packages to make specific improvements. This also applies to packages
+whose development has been discontinued. That's why the \Package{scrhack} was
+created. This package alters the commands and definitions of other to work
+better with \KOMAScript{}. Some changes are also useful when using other
+classes.
+
+\section{Development Status}
+\label{scr:scrhack.draft}
+
+Although this package has been part of \KOMAScript{} for long time and is used
+by many users, there's one problem with it. Redefining macros from third-party
+packages depends on knowing the exact definition and use of those macros. This
+also means that it depends on specific versions of those packages. If you use
+a unknown version of such a package, \Package{scrhack} may not be able to
+execute the required patch. In extreme cases, patching an unknown version can
+lead to an error.
+
+Because \Package{scrhack} must be continuously modified to accommodate new
+releases of third-party packages, it can never be considered complete.
+Therefore \Package{scrhack} will remain permanently in a beta version.
+Although its use will generally be a benefit, its correct functioning cannot
+be permanently guaranteed.
+
+\LoadCommonFile{options}% \section{Early or late Selection of Options}
+
+\section{Using \Package{tocbasic}}
+\seclabel{improvement}
+
+In the early days of \KOMAScript{}, users wanted to handle lists of floating
+environments created with the
+\Package{float}\IndexPackage{float}\important{\Package{float}} package in the
+same way as the list of figures and list of tables created by \KOMAScript{}
+itself. At that time the author of \KOMAScript{} contacted the author of
+\Package{float} to propose an interface to support such an extension. A
+somewhat modified form of that interface was implemented with the
+\Macro{float@listhead}\IndexCmd[indexmain]{float@listhead} and
+\Macro{float@addtolists}\IndexCmd[indexmain]{float@addtolists} commands.
+
+Later it became apparent that these two commands were not flexible enough to
+fully support all of \KOMAScript's capabilities. Unfortunately, the author of
+\Package{float} had already ceased development by that point, so further
+changes to this package cannot be expected.
+
+Other package authors have also adopted these two commands, and it became
+apparent that the implementation in some packages, including \Package{float},
+means that all these packages can only be loaded in a specific order, even
+though they are otherwise unrelated to each other.
+
+To overcome all these disadvantages and problems, \KOMAScript{} no longer
+officially supports this old interface. Instead, \KOMAScript{} warns if the
+old interface is used. At the same time, the
+\Package{tocbasic}\IndexPackage{tocbasic}\important{\Package{tocbasic}}
+package (see \autoref{cha:tocbasic}) has been designed and implemented as a
+central interface for managing of table of contents and similar content lists.
+This package provides many more advantages and features than the two old
+commands.
+
+Although the effort to use this package is very small, so far the authors of
+most of the packages that use the old interface have not made any adjustments.
+Therefore \Package{scrhack} contains appropriate modifications of the
+\Package{float}\IndexPackage{float}\important{\Package{float},
+\Package{floatrow}, \Package{listings}},
+\Package{floatrow}\IndexPackage{floatrow}, and
+\Package{listings}\IndexPackage{listings} packages. Merely loading
+\Package{scrhack} is sufficient to make these packages recognize not only the
+setting of the \KOMAScript{} option
+\DescRef{maincls.option.listof}\IndexOption{listof~=\PName{setting}}, but also
+to react to the language switching features of the
+\Package{babel}\IndexPackage{babel} package. You can find more information
+about the features available by switching packages to \Package{tocbasic} in
+\autoref{sec:tocbasic.toc}.
+
+If you do not want this modification for any of the packages, or if it causes
+problems, you can deactivate it selectively with the
+\OptionValue{float}{false}\IndexOption[indexmain]{float~=\textKValue{false}},
+\OptionValue{floatrow}{false}\IndexOption[indexmain]{floatrow~=\textKValue{false}},
+or
+\OptionValue{listings}{false}\IndexOption[indexmain]{listings~=\textKValue{false}}
+option. Note\textnote{Attention!} that changing these options after loading
+the associated package has no effect!
+
+
+\section{Incorrect Assumptions about \Macro{@ptsize}}
+\seclabel{ptsize}
+
+Some packages assume that the class-internal macro
+\Macro{@ptsize}\IndexCmd{@ptsize} both is defined and expands to an integer.
+For compatibility, \KOMAScript{} defines \Macro{@ptsize} even if the basic
+font size is something other than 10\Unit{pt}, 11\Unit{pt}, or 12\Unit{pt}.
+\KOMAScript{} also allows non-integer font sizes. So \Macro{@ptsize} can, of
+course, also expand to a non-integer number.
+
+One\ChangedAt{v3.17}{\Package{scrhack}} of the packages that cannot cope with
+a non-integer \Macro{@ptsize} is
+\Package{setspace}\IndexPackage[indexmain]{setspace}. Additionally, the values
+set by this package are always dependent on the basic font size, even if the
+setting is made in the context of another font size. The \Package{scrhack}
+package solves both problems by redefining \Macro{onehalfspacing} and
+\Macro{doublespacing} to set the spacing relative to the actual font size.
+
+If you do not want this modification for the package, or if it causes
+problems, you can deactivate it selectively with the
+\OptionValue{setspace}{false}\IndexOption[indexmain]{setspace~=\textKValue{false}}
+option. Note\textnote{Attention!} that changing this option after loading
+\Package{setspace} has no effect! Likewise, if you use \Package{setspace} with
+either the \Option{onehalfspacing} or \Option{doublespacing} option, you must
+load \Package{scrhack} first.
+
+
+\section{Older Versions of \Package{hyperref}}
+\seclabel{hyperref}
+
+Versions of \Package{hyperref} before 6.79h set the link
+anchors after the heading of the starred versions of commands like
+\DescRef{maincls.cmd.part*}, \DescRef{maincls.cmd.chapter*}, etc. instead of
+before them. Since then, this problem has been resolved at the suggestion of
+\KOMAScript{}'s author. But because the change took more than a year, a patch
+was added to \Package{scrhack}. Although this can also be deactivated with
+\OptionValue{hyperref}{false}, you should instead use the current
+\Package{hyperref} release. In this case \Package{scrhack} automatically
+deactivates this unnecessary patch.%
+
+
+\section{Inconsistent Handling of \Length{textwidth} and \Length{textheight}}
+\seclabel{lscape}
+
+The\ChangedAt{v3.18}{\Package{scrhack}}
+\Package{lscape}\IndexPackage[indexmain]{lscape} package defines a
+\Environment{landscape}\IndexEnv{landscape} environment to set the page
+contents, but not the header or footer in landscape mode. Inside this
+environment, \Length{textheight}\IndexLength{textheight} is set to the value
+of \Length{textwidth}, but \Length{textwidth} is not set to the former value
+of \Length{textheight}. This is inconsistent. As far as I know,
+\Length{textwidth} is left unchanged because setting it to \Length{textheight}
+could interfere with other packages or user commands. But changing
+\Length{textheight} also has this potential, and indeed it breaks, for
+example, \Package{showframe}\IndexPackage{showframe} and
+\Package{scrlayer}\IndexPackage{scrlayer}. Thus it would be best if
+\Length{textheight} too remained unchanged. \Package{scrhack} uses the
+\Package{xpatch} package (see \cite{package:xpatch}) to modify the
+\Macro{landscape} environment's start macro appropriately.
+
+If you do not want this modification, or if it causes problems, you can
+deactivate it with the
+\OptionValue{lscape}{false}\IndexOption[indexmain]{lscape~=\textKValue{false}}
+option. Note\textnote{Attention!} that changing \Option{lscape} subsequently
+with \DescRef{\LabelBase.cmd.KOMAoption}\IndexCmd{KOMAoption} or
+\DescRef{\LabelBase.cmd.KOMAoptions}\IndexCmd{KOMAoptions} has an effect only
+if it was not \PValue{false} while loading \Package{lscape}.
+
+Incidentally, the \Package{pdflscape}\IndexPackage[indexmain]{pdflscape}
+package also uses \Package{lscape}, so \Package{scrhack} affects the
+functioning of this package too.%
+
+
+\section{Special Case \Package{nomencl}}
+\label{sec:nomencl}
+
+The\ChangedAt{v3.23}{\Package{scrhack}} hack for the
+\Package{nomencl}\IndexPackage[indexmain]{nomencl} represents a somewhat
+special case. First, it ensures that the optional table of contents entry for
+the nomenclature observes the \OptionValueRef{maincls}{toc}{indentunnumbered}
+option. Somewhat incidentally, it also reserves the file extensions \File{nlo}
+and \File{nls} for the owner \PValue{nomencl} (see
+\DescRef{tocbasic.cmd.addtotoclist}, \autoref{sec:tocbasic.basics},
+\DescPageRef{tocbasic.cmd.addtotoclist}).
+
+It also changes the \Environment{thenomenclature}\IndexEnv{thenomenclature}
+environment to use
+\DescRef{tocbasic.cmd.tocbasic@listhead}\IndexCmd{tocbasic@listhead} for the
+heading (see \autoref{sec:tocbasic.internals},
+\DescPageRef{tocbasic.cmd.tocbasic@listhead}). In this way, the hack lets you
+set various attribute for the \File{nls} extension using
+\DescRef{tocbasic.cmd.setuptoc}\IndexCmd{setuptoc}%
+\important{\DescRef{tocbasic.cmd.setuptoc}}. For example, not only can you
+enter the nomenclature in the table of contents with
+\DescRef{tocbasic.cmd.setuptoc}\PParameter{nls}\PParameter{numbered}, but you
+can also number it immediately. You can find more about
+\DescRef{tocbasic.cmd.setuptoc} and its available settings in
+\autoref{sec:tocbasic.toc}, starting on \DescPageRef{tocbasic.cmd.setuptoc}.
+As a small but important side effect, this patch also gives the nomenclature
+also matching running head, if automatic running heads are activated, for
+example by using the \DescRef{maincls.pagestyle.headings} page style.
+
+This rather simple patch is an example of how packages that do not define
+floating environments can still benefit from \Package{tocbasic}. However, you
+do not want this change, or if it causes problems, you can deactivate it with
+the \OptionValue{nomencl}{false}%
+\IndexOption[indexmain]{nomencl~=\textKValue{false}} option.
+The\textnote{Achtung!} setting of the option when \Package{nomencl} is loaded
+is crucial! Later changes to the option with
+\DescRef{\LabelBase.cmd.KOMAoption} or \DescRef{\LabelBase.cmd.KOMAoptions}
+have no influence and will lead to a corresponding warning.%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% ispell-local-dictionary: "english"
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrjura.tex b/macros/latex/contrib/koma-script/source-doc/english/scrjura.tex
new file mode 100644
index 0000000000..fb782ca3dc
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrjura.tex
@@ -0,0 +1,1165 @@
+% ======================================================================
+% scrjura.tex
+% Copyright (c) Markus Kohm, 2011-2019
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrjura.tex
+% Copyright (c) Markus Kohm, 2011-2019
+%
+% 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 scrjura of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber scrjura in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{scrjura.tex}%
+ [$Date: 2019-01-15 08:29:44 +0100 (Tue, 15 Jan 2019) $
+ KOMA-Script guide (chapter: scrjura)]
+
+\translator{Alexander Willand\and Markus Kohm\and Karl Hagen}
+
+% Date of the translated German file: 2018-07-20
+
+\chapter{Support for the Law Office with \Package{scrjura}}
+\labelbase{scrjura}
+\BeginIndexGroup
+\BeginIndex{Package}{scrjura}
+
+If you want to write a contract\Index{contract}, the articles of association
+for a company or an association, a law, or a legal commentary, the package
+\Package{scrjura} will provide typographical support. Although
+\Package{scrjura} is intended to provide general help for legal documents, the
+contract is the central element of the package. Particular attention is paid
+to clauses, titles, and numbered provisions\,---\,if there are several of
+them in a clause\,---, numbered sentences, entries in the table of
+contents, and cross references according to German standards.
+
+The package has been developed in cooperation with Dr Alexander Willand of
+Karlsruhe. Many of its features go back to constructive inquiries from Prof
+Heiner Richter of the Hochschule Stralsund University of Applied Sciences.
+
+Note\textnote{Attention!} that the package works with
+\Package{hyperref}\IndexPackage{hyperref}. Nevertheless, \Package{hyperref}
+has to be loaded after \Package{scrjura} as usual.
+
+\LoadCommonFile{options}% \section{Early or late Selection of Options}
+
+\LoadCommonFile{textmarkup}% \section{Text Markup}
+
+\section{Table of Contents}
+\label{sec:scrjura.toc}
+
+The headings of clauses can also be added automatically to the table of
+contents, if desired.
+
+\begin{Declaration}
+ \OptionVName{juratotoc}{simple switch}%
+ \OptionVName{juratotoc}{level number}
+\end{Declaration}
+Clauses\Index{clause} are shown in the table of contents only if their
+\PName{level number} is less than or equal to the
+\DescRef{maincls.counter.tocdepth}%
+\important{\DescRef{maincls.counter.tocdepth}}\IndexCounter{tocdepth} counter
+(see \autoref{sec:maincls.toc}, \DescPageRef{maincls.counter.tocdepth}). By
+default, the \PName{level number} is 10000, which is also used if the option
+is switched off with the \PName{simple
+switch}\important{\OptionValue{juratotoc}{false}} (see
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}). Because the
+\DescRef{maincls.counter.tocdepth} counter usually has a one-digit value,
+clause entries are therefore not normally displayed in the table of contents.
+
+If you switch on the option using the \PName{simple switch}%
+\important{\OptionValue{juratotoc}{true}}, the \PName{level number} 2 is used
+so that clauses are shown in the table of contents on the same level as
+subsections. For the default setting of \DescRef{maincls.counter.tocdepth},
+clauses are then shown in all \KOMAScript{} classes.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{juratocindent}{indent}%
+ \OptionVName{juratocnumberwidth}{number width}
+\end{Declaration}
+These two options can be used to determine the indentation for the clause
+entries in the table of contents as well as the space reserved for the numbers
+there. The defaults are the same as for subsection entries in
+\Class{scrartcl}.%
+\EndIndexGroup
+
+
+\section{Environment for Contracts}
+\label{sec:scrjura.contract}
+
+\BeginIndexGroup
+\BeginIndex{}{contract}
+The essential mechanisms of \Package{scrjura} are available only inside the
+contract environment.
+
+\begin{Declaration}
+ \begin{Environment}{contract}\end{Environment}
+\end{Declaration}
+Currently, this is the one and only environment for \Package{scrjura}. Using
+it activates automatic numbering of paragraphs and the
+\DescRef{\LabelBase.cmd.Clause} and \DescRef{\LabelBase.cmd.SubClause}
+commands, which will be documented below, are given concrete form.
+
+The\textnote{Attention!} \DescRef{\LabelBase.env.contract} environment must
+not be nested within itself. Within a document, however, you can use the
+environment several times. The clauses within these environments are treated
+as if they were within a single environment. As a result, ending the
+environment really only temporarily interrupts it, and the old environment is
+continued by the beginning of a new environment. However, you cannot end the
+environment within a clause.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{contract}
+\end{Declaration}
+The whole document becomes a contract if you use this option while loading the
+package with \DescRef{\LabelBase.cmd.usepackage}%
+\important{\DescRef{\LabelBase.cmd.usepackage}} or as a global option with
+\DescRef{\LabelBase.cmd.documentclass}%
+\important{\DescRef{\LabelBase.cmd.documentclass}}. The document then behaves
+exactly as if it contained one \DescRef{\LabelBase.env.contract} environment.
+
+Note\textnote{Attention!} that you cannot set the \Option{contract} option
+with \DescRef{\LabelBase.cmd.KOMAoption} or
+\DescRef{\LabelBase.cmd.KOMAoptions}. Thus you cannot switch the option off
+again. Instead, you should use a \DescRef{\LabelBase.env.contract} environment
+directly.%
+\EndIndexGroup
+
+
+\subsection{Clauses}
+\label{sec:scrjura.clause}
+\index{section|seealso{clause}}
+
+Clauses\footnote{%
+ In English, a ``clause'' in a legal document is a section, paragraph, or
+ phrase that relates to a particular point. Although it is common in English
+ to also use the terms ``article'' or ``section'' for what we here call a
+ ``clause'', we use the latter term throughout to avoid confusion with the
+ \Class{article} class and the \DescRef{maincls.cmd.section} and
+ \DescRef{maincls.cmd.paragraph} sectioning divisions of most document
+ classes.} in a legal sense are defined in \Package{scrjura} only within
+contracts, that is inside the \DescRef{\LabelBase.env.contract} environment or
+other environments declared with
+\DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment} (see
+\autoref{sec:\LabelBase.newenv},
+\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}).
+
+\begin{Declaration}
+ \Macro{Clause}\OParameter{options}%
+ \Macro{SubClause}\OParameter{options}
+\end{Declaration}
+These are the most important commands inside of a contract. Without using any
+additional \PName{options}, \Macro{Clause} creates the heading of a clause,
+which consists of the sign »\S«, followed by its number. In contrast,
+\Macro{SubClause} creates the heading of a clause with the last number used by
+\Macro{Clause} and adds a lower-case letter. \Macro{SubClause} is mainly
+intended for cases where an act or a contract is amended and not only are
+clauses changed or deleted but new clauses are inserted between existing ones
+without completely changing the numbering.
+
+Both commands accept a a comma-separated list of \PName{options}. An overview
+of the available properties is shown in \autoref{tab:scrjura.Clause.options}.
+The most important of them will be discussed in more detail.
+
+\begin{table}
+ \caption{Available properties for the optional argument of \Macro{Clause} and
+ \Macro{SubClause}}
+ \label{tab:scrjura.Clause.options}
+ \begin{desctabular}
+ \entry{\Option{dummy}}{%
+ The heading will not be printed but is counted in the automatic
+ numbering.%
+ }%
+ \entry{\OptionVName{head}{running head}}{%
+ If running heads are active, this \PName{running head} is used instead of
+ the clause \PName{title}.%
+ }%
+ \entry{\Option{nohead}}{%
+ The running head stays unchanged.%
+ }%
+ \entry{\Option{notocentry}}{%
+ Does not make an entry into the table of contents.%
+ }%
+ \entry{\OptionVName{number}{number}}{%
+ Uses \PName{number} for the output of the clause number.%
+ }%
+ \entry{\OptionVName{preskip}{skip}}{%
+ Changes the vertical \PName{skip} before the clause heading.%
+ }%
+ \entry{\OptionVName{postskip}{skip}}{%
+ Changes the vertical \PName{skip} after the clause heading.%
+ }%
+ \entry{\OptionVName{title}{title}}{%
+ The clause \PName{title} will be printed in addition to the clause
+ number. This is also used as the default for the \PName{running head}
+ and the \PName{entry} in the table of contents.%
+ }%
+ \entry{\OptionVName{tocentry}{entry}}{%
+ Regardless of the clause \PName{title}, an \PName{entry} into the
+ table of contents will be made, if such entries are activated.%
+ }%
+ \end{desctabular}
+\end{table}
+
+By default, a skip of two lines is inserted before the heading and a skip of
+one line afterwards. You can change the size of these skips with the
+\Option{preskip}\important[i]{\Option{preskip}, \Option{postskip}} and
+\Option{postskip} options. The new values apply not only to the current
+clause but from the current clause until the end of the current contract
+environment. You can also make the appropriate settings in advance with
+\begin{flushleft}\quad\small
+ \textbf{\Macro{setkeys}}\PParameter{contract}%
+ \PParameter{preskip=\PName{skip},\\
+ \normalsize\quad\small
+ \hspace{11.5em}postskip=\PName{skip}}
+\end{flushleft}
+regardless of the specific clause and outside of a contract environment. You
+can also set these options inside the preamble after loading
+\Package{scrjura}, but you cannot set them while loading the package or by
+using \DescRef{\LabelBase.cmd.KOMAoptions} or
+\DescRef{\LabelBase.cmd.KOMAoption}.
+
+\BeginIndex{FontElement}{contract.Clause}\LabelFontElement{contract.Clause}%
+\BeginIndex{FontElement}{Clause}\LabelFontElement{Clause}%
+By default, clause headings use the font style
+\Macro{sffamily}\Macro{bfseries}\Macro{large}. You can change this font style
+at any time using the
+\FontElement{contract.Clause}\important{\FontElement{contract.Clause}} element
+with \DescRef{\LabelBase.cmd.setkomafont}%
+\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
+\DescRef{\LabelBase.cmd.addtokomafont}} and
+\DescRef{\LabelBase.cmd.addtokomafont} (see \autoref{sec:maincls.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}). Inside the
+\DescRef{\LabelBase.env.contract} environment, you can also use
+\FontElement{Clause}\important{\FontElement{Clause}} instead of
+\FontElement{contract.Clause}.%
+\EndIndex{FontElement}{Clause}%
+\EndIndex{FontElement}{contract.Clause}
+
+With the \Option{title}\important[i]{\Option{title}, \Option{head},
+ \Option{tocentry}}, \Option{head}, and \Option{tocentry} options, you can
+title a clause in addition to the number. You\textnote{Attention!} should put
+the value of each options inside curly brackets. Otherwise, for example,
+commas which are meant to be part of the value will be confused with the
+delimiters between different options. Empty values for \Option{head} and
+\Option{tocentry} cause empty entries. If you want to avoid an entry, use the
+\Option{nohead}\important[i]{\Option{nohead}, \Option{notocentry}} and
+\Option{notocentry} options.
+
+Instead of consecutive numbers, you can also set a clause number manually with
+the \Option{number}\important{\Option{number}} option. However, this does not
+affect the numbers of the subsequent clauses. Empty numbers are not possible.
+Fragile commands inside \PName{number} have to be protected with
+\Macro{protect}. You\textnote{Attention!} should use only numbers and letters
+as a \Option{number}.
+
+With the \Option{dummy}\important{\Option{dummy}} option, you can suppress the
+output of the whole heading of a clause. The automatic numbering, however,
+will still count this clause. In this way, you can skip an automatically
+numbered clause with\textnote{Example}
+\begin{lstcode}
+ \Clause{dummy}
+\end{lstcode}
+in case the clause corresponding clause has been deleted in a later version of
+a contract.
+
+Note\textnote{Attention!} that the \Option{dummy} option only accepts the
+values \PValue{true} and \PValue{false}. All other values are usually ignored,
+but can lead to an error message in the worst case scenario.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{Clauseformat}\Parameter{number}
+\end{Declaration}
+As already mentioned, clauses and subclauses are normally numbered. The number
+is formatted with the help of the \Macro{Clauseformat} command, which expects
+the number as the only argument. The default is the following:
+\begin{lstcode}
+ \newcommand*{\Clauseformat}[1]{\S~#1}
+\end{lstcode}
+This produces the section mark, \Macro{S}\IndexCmd{S} (\S), followed by a
+non-breaking space and the number. If you redefine this command, be sure it
+remains expandable.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{juratitlepagebreak}{simple switch}
+\end{Declaration}%
+Usually, page breaks are prohibited within heading of all kinds. However, some
+lawyers require page breaks within clause headings. You can allow such a break
+by using \Option{juratitlepagebreak}\important{\Option{juratitlepagebreak}}.
+You can find the available values for \PName{simple switch} in
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \OptionVName{clausemark}{value}
+\end{Declaration}%
+Since clauses are a subordinate structure with independent numbering, they do
+not produce running heads by default. You can, however, create running heads
+with various settings. You can find the available \PName{values} and their
+meanings in \autoref{tab:scrjura.clausemark}.%
+%
+\begin{table}
+ \caption{Available values for the \Option{clausemark} option to activate
+ running heads}%
+ \label{tab:scrjura.clausemark}%
+ \begin{desctabular}
+ \entry{\PValue{both}}{%
+ Clauses generate left and right marks for running heads, if the document
+ provides automatic running heads.%
+ \IndexOption{clausemark~=\textKValue{both}}%
+ }%
+ \entry{\PValue{false}, \PValue{off}, \PValue{no}}{%
+ Clauses do not generate marks for running heads and therefore do not
+ change running heads.%
+ \IndexOption{clausemark~=\textKValue{false}}%
+ }%
+ \entry{\PValue{forceboth}}{%
+ Clauses use \DescRef{maincls.cmd.markboth} to generate left and right
+ marks for running heads even if the document does not provide automatic
+ running heads for the current page style.%
+ \IndexOption{clausemark~=\textKValue{forceboth}}%
+ }%
+ \entry{\PValue{forceright}}{%
+ Clauses use \DescRef{maincls.cmd.markright} to generate right marks for
+ running heads even if the document does not provide automatic running
+ heads for the current page style.%
+ \IndexOption{clausemark~=\textKValue{forceright}}%
+ }%
+ \entry{\PValue{right}}{%
+ Clauses generate right marks for running heads, if the document provides
+ automatic running heads.%
+ \IndexOption{clausemark~=\textKValue{right}}%
+ }%
+ \end{desctabular}
+\end{table}
+%
+\EndIndexGroup
+
+
+\subsection{Paragraphs}
+\label{sec:scrjura.par}
+\BeginIndexGroup
+\BeginIndex{}{paragraph>numbering}%
+Within clauses, \Package{scrjura} usually numbers paragraphs automatically.
+With this, the paragraphs provide a powerful structuring element, similar to
+\DescRef{maincls.cmd.paragraph} or \DescRef{maincls.cmd.subparagraph} in
+normal documents. For this reason, contracts usually use a vertical skip
+between paragraphs. The \Package{scrjura} package does not provide its own
+mechanism for this. Instead, it uses the \DescRef{maincls.option.parskip}%
+\IndexOption{parskip}\important{\DescRef{maincls.option.parskip}} option of
+the \KOMAScript{} classes (see \autoref{sec:maincls.parmarkup},
+\DescPageRef{maincls.option.parskip}).
+
+
+\begin{Declaration}
+ \OptionVName{parnumber}{value}
+\end{Declaration}
+The default numbering of paragraphs is \OptionValue{parnumber}{auto} and
+\OptionValue{parnumber}{true}. Sometimes you may need to disable the automatic
+numbering. You can do this with \OptionValue{parnumber}{false}%
+\important{\OptionValue{parnumber}{false}}%
+\IndexOption{parnumber~=\textKValue{false}}. In this case, only the sentence
+numbering is reset.
+
+To implement this option, it has been necessary to hook into the
+paragraph-building mechanism of \LaTeX. In some rare cases, this can have a
+negative effect. If so, you can undo the change with
+\OptionValue{parnumber}{manual}%
+\important{\OptionValue{parnumber}{manual}}%
+\IndexOption{parnumber~=\textKValue{manual}}. On the other hand, \LaTeX{}
+itself sometimes undoes the change. In those cases you can activate it again
+with \OptionValue{parnumber}{auto}%
+\important{\OptionValue{parnumber}{auto}}%
+\IndexOption{parnumber~=\textKValue{auto}}.
+
+Clauses that consist of a single paragraph do not automatically receive a
+paragraph number. For this to work, there must not be two clauses with an
+identical number in a document. However should you ever need such numbering,
+you should switch to another contract environment (see
+\DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment},
+\autoref{sec:\LabelBase.newenv},
+\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}).
+Note\textnote{Attention!} that the number of paragraphs in a clause is not
+available before the end of the clause. Therefore you need a least two
+\LaTeX{} runs before the automatic paragraph numbering is correct.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Counter{par}%
+ \Macro{thepar}%
+ \Macro{parformat}%
+ \Macro{parformatseparation}
+\end{Declaration}%
+For numbering the paragraphs inside a clause we use the \Counter{par} counter.
+The output of \Macro{thepar} will display an Arabic number, because the
+default is \Macro{arabic}\PParameter{par}. \Macro{parformat} provides the
+format, which is \Macro{thepar} in rounded brackets. When numbering a
+paragraph manually, you should also use \Macro{parformat}. It makes sense to
+call \Macro{parformat} with a subsequent \Macro{parformatseparation}, or at
+least a \Macro{nobreakspace} or tilde.
+
+With\ChangedAt{v0.7}{\Package{scrjura}} automatic numbering, \Macro{parformat}
+is followed by \Macro{parformatseparation}, which currently consists of
+\Macro{nonbreakspace}, the non-breakable space.
+
+\BeginIndex{FontElement}{parnumber}\LabelFontElement{parnumber}%
+The paragraph number is usually printed using the currently active font.
+However, you can change this default for the \FontElement{parnumber} element
+at any time with \DescRef{\LabelBase.cmd.setkomafont}%
+\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
+\DescRef{\LabelBase.cmd.addtokomafont}} and
+\DescRef{\LabelBase.cmd.addtokomafont} (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}).%
+\EndIndex{FontElement}{parnumber}%
+
+Note\textnote{Attention!} that \Package{scrjura} assumes internally that
+\Macro{thepar} is an Arabic number. Therefore you should definitely not
+redefine it!%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{withoutparnumber}
+\end{Declaration}
+If the paragraph number is not printed, \Package{scrjura} executes the
+\Macro{withoutparnumber} command at the beginning of the new paragraph. The
+initial definition of this command is empty. This means it is a kind of dummy
+command that does nothing. It has been implemented because of a user request.
+Most users can ignore this command.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ellipsispar}\OParameter{number}%
+ \Macro{parellipsis}
+\end{Declaration}
+Sometimes\ChangedAt{v0.7}{\Package{scrjura}}\,---\,particularly in comparative
+commentaries\,---\,it is desirable to omit paragraphs but to mark the
+omission. Those omitted paragraphs\Index{paragraph>omission} should be taken
+into account by the paragraph counter. The package \Package{scrjura} provides
+the command \Macro{ellipsispar} to do this.
+
+By default, \Macro{ellipsispar} omits precisely one paragraph. Using the
+optional argument, you can omit multiple paragraphs. In any case, the output
+shows just one unnumbered paragraph, which consists only of the ellipsis
+defined by \Macro{parellipsis}. The automatic numbering of paragraphs takes
+the \PName{number} of omitted paragraphs into account.
+\begin{Example}
+ Suppose you are writing a comment on the German\footnote{Please remember,
+ this translation does not refer to an existing law but is only an example
+ of how you might realise such a commentary with \Package{scrjura}.} penal
+ code, but only on paragraph 3 of \S~2. Nevertheless, you'd like to indicate
+ the omission indirectly. You can do this with:
+\begin{lstcode}
+ \documentclass[parskip=half]{scrartcl}
+ \usepackage{scrjura}
+ \begin{document}
+ \begin{contract}
+ \Clause{title={Temporal application},number=2}
+ \ellipsispar[2]
+
+ If the law that applies at the time the criminal act is
+ committed is changed before the verdict, then the most
+ lenient law shall be applicable.
+
+ \ellipsispar[3]
+ \end{contract}
+ \end{document}
+\end{lstcode}
+ To see the result, just give it a try.
+\end{Example}
+
+The ellipsis is by default \Macro{textellipsis}\IndexCmd{textellipsis}, if
+such a command is defined. If not, \Macro{dots} is used. You can redefine
+\Macro{parellipsis} at any time with \Macro{renewcommand}.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Sentences}
+\label{sec:scrjura.sentence}
+
+\BeginIndexGroup%
+\BeginIndex{}{sentence>number}%
+Paragraphs in contracts consist of one or more sentences, some of which may
+also be numbered. However, as automatic numbering is cumbersome and
+error-prone, it has not yet been implemented in
+\Package{scrjura}. Semi-automatic numbering, however, is supported.
+
+\begin{Declaration}
+ \Counter{sentence}
+ \Macro{thesentence}
+ \Macro{sentencenumberformat}
+ \Macro{Sentence}
+\end{Declaration}
+Manual numbering of sentences is done with the \Macro{Sentence} command. It
+adds one to the \Counter{sentence} counter. By default,
+\Macro{sentencenumberformat}\ChangedAt{v3.26}{\Package{scrjura}} prints
+\Macro{thesentence} as an Arabic number in superscript.
+
+\BeginIndex{FontElement}{sentencenumber}\LabelFontElement{sentencenumber}%
+The\ChangedAt{v3.26}{\Package{scrjura}} sentence number is usually printed
+using the currently active font. However, you can change this default for the
+\FontElement{parnumber} element at any time with
+\DescRef{\LabelBase.cmd.setkomafont}%
+\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
+ \DescRef{\LabelBase.cmd.addtokomafont}} and
+\DescRef{\LabelBase.cmd.addtokomafont} (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}).%
+\EndIndex{FontElement}{sentencenumber}%
+
+Using\textnote{Hint!} \Package{babel}\IndexPackage{babel} offers an easy way
+to define a shorthand for \Macro{Sentence}:%
+\phantomsection\label{sec:scrjura.shorthandexample}%
+\begin{lstcode}[moretexcs={useshorthands,defineshorthand}]
+ \useshorthands{'}
+ \defineshorthand{'S}{\Sentence\ignorespaces}
+\end{lstcode}
+With this definition, any space after \lstinline|'S| will be ignored. You can
+even use the dot as an abbreviation for a dot and a new sentence number:
+\begin{lstcode}[moretexcs={useshorthands,defineshorthand}]
+ \defineshorthand{'.}{. \Sentence\ignorespaces}
+\end{lstcode}
+For details regarding \Macro{useshorthands} and \Macro{defineshorthands},
+please consult the manual of the \Package{babel} package (see
+\cite{package:babel}). You can find an example of their application in
+\autoref{sec:scrjura.example}, \autopageref{sec:scrjura.example}.%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Cross-References}
+\label{sec:scrjura.ref}
+
+The conventional mechanism to set cross-references using
+\Macro{label}\IndexCmd{label}\important{\Macro{label}}, \Macro{ref}, and
+\Macro{pageref} does not suffice for clauses, paragraphs, and sentences.
+Therefore \Package{scrjura} provides additional commands.
+
+\begin{Declaration}
+ \Macro{ref}\Parameter{label}%
+ \Macro{refL}\Parameter{label}%
+ \Macro{refS}\Parameter{label}%
+ \Macro{refN}\Parameter{label}
+\end{Declaration}
+The commands \Macro{refL}, \Macro{refS}, and \Macro{refN} give a full
+reference to clause, paragraph and sentence. \Macro{refL} is a long text,
+\Macro{refS} a short text, and \Macro{refN} an abbreviated, numeric form.
+\Macro{ref} defaults to \Macro{refL}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{refClause}\Parameter{label}%
+ \Macro{refClauseN}\Parameter{label}
+\end{Declaration}
+These commands reference a clause without displaying the paragraph or
+sentences. \Macro{refClause} puts a section mark (\S) in front of the
+reference, while \Macro{refClauseN} does not.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{refPar}\Parameter{label}%
+ \Macro{refParL}\Parameter{label}%
+ \Macro{refParS}\Parameter{label}%
+ \Macro{refParN}\OParameter{number format}\Parameter{label}
+\end{Declaration}
+You can reference just a paragraph with \Macro{refParL}, \Macro{refParS} and
+\Macro{refParN}. The differences between the forms correspond to the
+differences between \DescRef{\LabelBase.cmd.refL},
+\DescRef{\LabelBase.cmd.refN} and \DescRef{\LabelBase.cmd.refS}. A feature
+worth noting is the optional argument of \Macro{refParN}. Usually the numeric
+reference to a paragraph uses a Roman number. You can, however, specify a
+different \PName{number format} in the optional argument. This option
+primarily makes sense to use Arabic numbers. By default, \Macro{refPar} is
+\Macro{refParL}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{refSentence}\Parameter{label}%
+ \Macro{refSentenceL}\Parameter{label}%
+ \Macro{refSentenceS}\Parameter{label}%
+ \Macro{refSentenceN}\Parameter{label}
+\end{Declaration}
+You can reference a sentence with \Macro{refSentenceL}, \Macro{refSentenceS},
+or \Macro{refSentenceN}. Again, there is a long text form, a short text form,
+and a numerical form. By default, \Macro{refSentence} is
+\Macro{refSentenceL}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{ref}{value}
+\end{Declaration}
+The results of \DescRef{\LabelBase.cmd.ref}, \DescRef{\LabelBase.cmd.refPar},
+and \DescRef{\LabelBase.cmd.refSentence} depend on the \PName{value} of the
+\Option{ref} option. The defaults are \DescRef{\LabelBase.cmd.refL},
+\DescRef{\LabelBase.cmd.refParL} and \DescRef{\LabelBase.cmd.refSentenceL}.
+You can find the available values and their meaning in
+\autoref{tab:scrjura.ref}.%
+%
+\begin{table}
+%\begin{desclist}
+% \desccaption
+ \caption[{%
+ Available values for the \Option{ref} option to configure the
+ cross-reference format%
+ }]{%
+ Available values for the \Option{ref} option to configure the
+ cross-reference format of \DescRef{\LabelBase.cmd.ref},
+ \DescRef{\LabelBase.cmd.refPar}, and \DescRef{\LabelBase.cmd.refSentence}%
+ \label{tab:scrjura.ref}%
+ }%
+ \begin{desctabular}
+ \entry{\PValue{long}}{%
+ A combination of \PValue{parlong} and \PValue{sentencelong}.%
+ \IndexOption{ref~=\textKValue{long}}%
+ }%
+ \entry{\PValue{numeric}}{%
+ A combination of \PValue{parnumeric} and \PValue{sentencenumeric}.%
+ \IndexOption{ref~=\textKValue{numeric}}%
+ }%
+ \entry{\PValue{clauseonly}, \PValue{onlyclause}, \PValue{ClauseOnly},
+ \PValue{OnlyClause}}{%
+ A combination of \PValue{paroff} and \PValue{sentenceoff}. Note that
+ \DescRef{\LabelBase.cmd.refPar} and \DescRef{\LabelBase.cmd.refSentence}
+ produce empty results!%
+ \IndexOption{ref~=\textKValue{long}}%
+ }%
+ \entry{\PValue{parlong}, \PValue{longpar}, \PValue{ParL}}{%
+ Paragraphs are referenced in long textual form.%
+ \IndexOption{ref~=\textKValue{parlong}}%
+ }%
+ \entry{\PValue{parnumeric}, \PValue{numericpar}, \PValue{ParN}}{%
+ Paragraphs are referenced in simple numerical form.%
+ \IndexOption{ref~=\textKValue{parnumeric}}%
+ }%
+ \entry{\PValue{paroff}, \PValue{nopar}}{%
+ Paragraphs have no reference. Note that \DescRef{\LabelBase.cmd.refPar}
+ produces an empty result!%
+ \IndexOption{ref~=\textKValue{paroff}}%
+ }%
+ \entry{\PValue{parshort}, \PValue{shortpar}, \PValue{ParS}}{%
+ Paragraphs are referenced in short textual form.%
+ \IndexOption{ref~=\textKValue{parshort}}%
+ }%
+ \entry{\PValue{sentencelong}, \PValue{longsentence}, \PValue{SentenceL}}{%
+ Sentences are referenced in long textual form.%
+ \IndexOption{ref~=\textKValue{parlong}}%
+ }%
+ \entry{\PValue{sentencenumeric}, \PValue{numericsentence},
+ \PValue{SentenceN}}{%
+ Sentences are referenced in simple numeric form.%
+ \IndexOption{ref~=\textKValue{sentencenumeric}}%
+ }%
+ \entry{\PValue{sentenceoff}, \PValue{nosentence}}{%
+ Sentences have no reference. Note that
+ \DescRef{\LabelBase.cmd.refSentence} produces an empty result!%
+ \IndexOption{ref~=\textKValue{sentenceoff}}%
+ }%
+ \entry{\PValue{sentenceshort}, \PValue{shortsentence},
+ \PValue{SentenceS}}{%
+ Sentences are referenced in short textual form.%
+ \IndexOption{ref~=\textKValue{sentenceshort}}%
+ }%
+ \entry{\PValue{short}}{%
+ A combination of \PValue{parshort} and \PValue{sentenceshort}.%
+ \IndexOption{ref~=\textKValue{value}}%
+ }%
+\end{desctabular}
+\end{table}
+
+\begin{Example}
+ Suppose you always want to reference paragraphs in the form ``paragraph 1
+ in clause 1''. As there is no predefined command for this, you have
+ to create your own definition from the available options. You can achieve
+ this easily with:%
+\begin{lstcode}
+ \newcommand*{\refParM}[1]{%
+ paragraph~\refParN[arabic]{#1}
+ in clause~\refClauseN{#1}%
+ }
+\end{lstcode}
+ This new command can be used in the same way as
+ \DescRef{\LabelBase.cmd.refParL}.%
+\end{Example}%
+
+You can find examples of results of the basic commands in
+\autoref{tab:scrjura.refexamples}.%
+%
+\begin{table}
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}{Example outputs of the \Option{ref}-independent
+ cross-reference commands}[l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Command & Example output \\
+ \midrule
+ \DescRef{\LabelBase.cmd.refL}\Parameter{label} & § 1 paragraph 1 sentence 1 \\
+ \DescRef{\LabelBase.cmd.refS}\Parameter{label} & § 1 par. 1 sent. 1 \\
+ \DescRef{\LabelBase.cmd.refN}\Parameter{label} & § 1 I 1. \\
+ \DescRef{\LabelBase.cmd.refClause}\Parameter{label} & § 1 \\
+ \DescRef{\LabelBase.cmd.refClauseN}\Parameter{label} & 1 \\
+ \DescRef{\LabelBase.cmd.refParL}\Parameter{label} & paragraph 1 \\
+ \DescRef{\LabelBase.cmd.refParS}\Parameter{label} & par. 1 \\
+ \DescRef{\LabelBase.cmd.refParN}\Parameter{label} & I \\
+ \DescRef{\LabelBase.cmd.refParN}\POParameter{arabic}\Parameter{label} & 1 \\
+ \DescRef{\LabelBase.cmd.refParN}\POParameter{roman}\Parameter{label} & i \\
+ \DescRef{\LabelBase.cmd.refSentenceL}\Parameter{label} & sentence 1 \\
+ \DescRef{\LabelBase.cmd.refSentenceS}\Parameter{label} & sent. 1 \\
+ \DescRef{\LabelBase.cmd.refSentenceN}\Parameter{label} & 1. \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:scrjura.refexamples}
+\end{table}
+\EndIndexGroup
+
+
+\section{Additional Environments}
+\label{sec:scrjura.newenv}
+
+Some users do not use \Package{scrjura} to draft contracts or commentaries on
+individual laws but to examine different types of laws, which may not
+necessarily use the section prefix (\S) before the title of each clause but
+perhaps something like ``Art.'' or ``IAS'', and so forth. An independent
+counter is also required for each of these different clause types.
+
+\begin{Declaration}
+ \Macro{DeclareNewJuraEnvironment}\Parameter{name}\OParameter{options}%
+ \Parameter{start commands}\Parameter{end commands}
+\end{Declaration}
+You\ChangedAt{v0.9}{\Package{scrjura}} can use this command to define new and
+independent environments for contracts or other legal texts. The argument
+\PName{name} is the name of the new environment, of course. The \PName{start
+commands} are commands which will be executed at the beginning of the
+environment, as if they were added directly after
+\Macro{begin}\Parameter{name}. Correspondingly \PName{end commands} will be
+executed at the end of the environment, as if added directly before
+\Macro{end}\Parameter{name}. Without any \PName{options} the new environment
+behaves like the \DescRef{\LabelBase.env.contract} environment, but with its
+own counters. It is possible to set \PName{options} in a comma-separated list.
+See \autoref{tab:\LabelBase.DeclareNewJuraEnvironment} for the currently
+supported \PName{options}.
+
+\begin{desclist}
+ \desccaption{Options provided by \Macro{DeclareNewJuraEnvironment} for new
+ contract environments\label{tab:\LabelBase.DeclareNewJuraEnvironment}}%
+ {Options of \Macro{DeclareNewJuraEnvironment} (\emph{continued})}%
+ \entry{\OptionVName{Clause}{command}}{%
+ Defines the \PName{command} to which the \DescRef{\LabelBase.cmd.Clause}
+ command is mapped within the environment. This \PName{command}, like the
+ one documented for \DescRef{\LabelBase.env.contract}, expects exactly one
+ argument. To use it correctly requires advanced knowledge of the
+ \Package{scrjura}'s internal functioning. Furthermore, the requirements
+ for the \PName{command} may change in future versions. Therefore it is
+ recommended not to use this option!%
+ }%
+ \entry{\OptionVName{ClauseFont}{commands}}{%
+ \leavevmode\BeginIndex{FontElement}{\PName{Name}.Clause}%
+ \LabelFontElement{\PName{Name}.Clause}%
+ If this option is used, a new
+ \FontElement{\PName{Name}.Clause}\IndexFontElement{\PName{Name}.Clause}
+ element is defined using
+ \DescRef{maincls-experts.cmd.newkomafont}\IndexCmd{newkomafont}, with the
+ \PName{commands} used as its default setting. If the element was
+ previously defined as an alias (see
+ \DescRef{maincls-experts.cmd.aliaskomafont} in
+ \autoref{sec:maincls-experts.experts},
+ \DescPageRef{maincls-experts.cmd.aliaskomafont}), it will become an
+ independent element instead. If it has already been defined as an
+ independent element, \DescRef{\LabelBase.cmd.setkomafont} is used to set
+ the \PName{commands} a new font settings. Please note the limitations for
+ font settings in \autoref{sec:\LabelBase.textmarkup},
+ \DescPageRef{\LabelBase.cmd.setkomafont}.
+ \EndIndex{FontElement}{\PName{Name}.Clause}%
+ }%
+ \entry{\OptionVName{SubClause}{command}}{%
+ Defines the \PName{command} to which the
+ \DescRef{\LabelBase.cmd.SubClause} command is mapped within the
+ environment. This \PName{command}, like the one documented for
+ \DescRef{\LabelBase.env.contract}, expects exactly one argument. To use it
+ correctly requires advanced knowledge of the \Package{scrjura}'s internal
+ functioning. Furthermore, the requirements for the \PName{command} may
+ change in future versions. Therefore it is recommended not to use this
+ option!%
+ }%
+ \entry{\OptionVName{Sentence}{command}}{%
+ Defines the \PName{command} to which the
+ \DescRef{\LabelBase.cmd.Sentence} is mapped within the environment. This
+ \PName{command} must not have an argument. Typically it should add one to
+ the \Counter{sentence}\IndexCounter{sentence} (using
+ \Macro{refstepcounter}\IndexCmd{refstepcounter}) counter and display it
+ appropriately. It is particularly important to avoid adding unwanted
+ spaces.%
+ }%
+ \entry{\OptionVName{ClauseNumberFormat}{command}}{%
+ Formats the numbers of clauses within the environment. The \PName{command}
+ should expect exactly one argument: the number of the clause. If the
+ \PName{command} implements a series of commands and the number is the last
+ argument of a that series, you can directly use the series of commands as
+ \PName{command}.%
+ }
+\end{desclist}
+\begin{Example}
+ To define the environment for articles we mentioned in the preface of this
+ section, it is sufficient to write:
+\begin{lstcode}
+ \DeclareNewJuraEnvironment{Article}[ClauseNumberFormat=Art.]{}{}
+\end{lstcode}
+ If we are using a \KOMAScript{} class and want to separate the paragraphs in
+ this environment with space instead of using paragraph indentation, we can
+ use:
+\begin{lstcode}
+ \DeclareNewJuraEnvironment{Article}[ClauseNumberFormat=Art.~]
+ {\KOMAoptions{parskip}}{}
+\end{lstcode}
+ In cross-references, ``Art.'' will of course be used instead of ``\S''.%
+
+ The new environment is used like \DescRef{\LabelBase.env.contract}:
+\begin{lstcode}
+ \begin{Article}
+ \Clause
+ Human dignity is inviolable. To respect and protect people is a
+ duty of all state authority.
+ \end{Article}
+\end{lstcode}
+\end{Example}%
+\EndIndexGroup
+
+
+\section{Support for Different Languages}
+\label{sec:scrjura.babel}
+
+The \Package{scrjura} package has been developed in cooperation with a German
+lawyer. Therefore it initially supported only the languages \PValue{german},
+\PValue{ngerman}, \PValue{austrian}, and \PValue{naustrian}. Nevertheless, it
+has been designed to support common language packages like
+\Package{babel}\important{\Package{babel}}\IndexPackage{babel}. Users can
+easily make changes by using \DescRef{scrbase.cmd.providecaptionname} (see
+\autoref{sec:scrbase.languageSupport},
+\DescPageRef{scrbase.cmd.providecaptionname}). If you have definitive
+information about the correct legal terms and conventions of a language,
+please contact the \KOMAScript{} author. Support for English has been added in
+this way, and so \Package{scrjura} now also provides terms for the languages
+\PValue{english}, \PValue{american}, \PValue{british}, \PValue{canadian},
+\PValue{USenglish}, and \PValue{UKenglish}.
+
+\begin{Declaration}
+ \Macro{parname}%
+ \Macro{parshortname}%
+ \Macro{sentencename}%
+ \Macro{sentenceshortname}
+\end{Declaration}
+These are the language-dependent terms used by \Package{scrjura}. The meaning
+of the terms and their English defaults are shown in
+\autoref{tab:scrjura.captionnames}. The package itself defines them by using
+\DescRef{scrbase.cmd.providecaptionname} inside
+\Macro{begin}\PParameter{document} only if other requirements have not already
+been met. If you use \Package{scrjura} with an unsupported language, the
+package will throw an error.%
+%
+\begin{table}
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [{%
+ Meanings and English defaults of language-dependent terms%
+ }]{%
+ Meanings and English defaults of language-dependent terms, if not
+ already defined%
+ } [l]
+ \begin{tabular}[t]{lll}
+ \toprule
+ Command & Meaning & Default \\
+ \midrule
+ \Macro{parname} & long form ``paragraph'' & paragraph \\
+ \Macro{parshortname} & short form ``paragraph'' & par. \\
+ \Macro{sentencename} & long form ``sentence'' & sentence \\
+ \Macro{sentenceshortname} & short form ``sentence'' & sent. \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:scrjura.captionnames}
+\end{table}
+%
+\EndIndexGroup
+
+
+\section{A Detailed Example}
+\label{sec:scrjura.example}
+
+You may remember the letter from \autoref{cha:scrlttr2}, in which a club
+member wanted to remind the board about an overdue meeting that was prescribed
+by the club's by-laws. Such club by-laws are a kind of contract, and you can
+create them using \Package{scrjura}.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=1-2}]{scrjuraexample.tex}%
+We use class \Class{scrartcl}. Because paragraph distance instead of paragraph
+indentation is usual in club by-laws, we load the class with option
+\OptionValueRef{maincls}{parskip}{half} (see \autoref{sec:maincls.parmarkup},
+\DescPageRef{maincls.option.parskip}).
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=4-4}]{scrjuraexample.tex}%
+The club rules are in British English. Therefore we load the \Package{babel}
+package with the \Option{british} option too.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange={6-7,9-9}}]{scrjuraexample.tex}%
+We make some default font settings and load the \Package{textcomp} package
+because it provides an improved section mark (\S) and\,---\,something that may
+be useful in other circumstances\,---\,a usable Euro symbol for some fonts.
+
+%\lstinputcode[{moretexcs=SelectInputMappings,xleftmargin=2em,%
+% linerange=11-15}]{scrjuraexample.tex}%
+Although it is not relevant for English, if we were writing an another
+language, we would want to input non-ASCII characters directly. To do so, we
+could let \LaTeX{} detect the input encoding with the \Package{selinput} or
+set it with the \Package{inputenc} packages.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=11-11}]{scrjuraexample.tex}%
+Later in the document, we want lists numbered not with Arabic numbers but with
+lower-case letters. We can do this easily with the \Package{enumerate} package.
+
+\lstinputcode[{moretexcs={useshorthands,defineshorthand},%
+ xleftmargin=2em,%
+ linerange=13-21}]{scrjuraexample.tex}%
+Now it is time for \Package{scrjura}. The
+\OptionValueRef{\LabelBase}{clausemark}{forceboth} option forces clauses to
+create left and right marks for the running head. On the other hand, we do not
+want \DescRef{maincls.cmd.section} to change the marks for the running head.
+Therefore we use the \PageStyle{myheadings} page style. This page style
+generally does not provide automatic running heads.
+
+Later, we also want a table of contents with the clauses. This can be achieved
+with the \DescRef{\LabelBase.option.juratotoc} option. Doing so we will see
+that the default width for these numbers is insufficient for the clause
+numbers in the table of contents. With
+\OptionValueRef{\LabelBase}{juratocnumberwidth}{2.5em}, we reserve more space.
+
+The definition of shorthands has already been explained in
+\autoref{sec:scrjura.shorthandexample}. In this example we do the same thing
+to simplify the input.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=23-23}]{scrjuraexample.tex}%
+It is time to begin the actual document.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=25-29}]{scrjuraexample.tex}%
+Like other documents, the by-laws have a title. We created it with the usual
+\KOMAScript{} commands (see \autoref{sec:maincls.titlepage}, starting on
+\autopageref{sec:maincls.titlepage}).
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=31-31}]{scrjuraexample.tex}%
+As already mentioned, we want to create a table of contents.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=33-37}]{scrjuraexample.tex}%
+Preambles are not unusual in club by-laws. Here we use
+\DescRef{maincls.cmd.addsec} to create one because we want it to have an entry
+in the table of contents.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=39-39}]{scrjuraexample.tex}%
+Here we use a small trick. The articles of the club by-laws should be numbered
+with upper-case letters instead of Arabic numbers, just as
+the appendix sections of an article using \Class{scrartcl} are.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=41-43}]{scrjuraexample.tex}%
+We begin the contract with the first article.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=44-54}]{scrjuraexample.tex}%
+The first clause has a number and a title. We will do the same with all
+following clauses.
+
+The first paragraph of the clause contains nothing unusual. Because it is not
+the only paragraph, every paragraph will be automatically preceded by a
+paragraph number. Note that the numbering the first paragraph requires at
+least two \LaTeX{} runs. Since this is the case for the table of contents as
+well, this does not create any additional problems.
+
+In the second paragraph we have two sentences. Here we can see the shorthands
+\texttt{'S} and \texttt{'.} in action. The first one only generates the
+sentence number. The second one generates not only the full stop but also the
+sentence number. With this, both sentences are numbered.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=55-70}]{scrjuraexample.tex}%
+The second clause: again this contains several paragraphs, some of which
+include several sentences. The second paragraph also has a numbered list. In
+the last paragraph, we set a label, because we want to reference it later.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=72-78}]{scrjuraexample.tex}%
+The third clause contains something special: a cross-reference. Here we use
+the long form with clause, paragraph, and sentence. If we decided later that
+sentences should not be included in the reference, we could use the
+\OptionValueRef{\LabelBase}{ref}{nosentence} option to set this globally.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=80-81}]{scrjuraexample.tex}%
+Here we have a special kind of clause. In earlier versions of the club by-laws,
+this was a real clause, but it was later removed. However, the
+numbering of the following clauses should not be changed by removing this
+one. Therefore the \DescRef{\LabelBase.cmd.Clause} statement has not been
+removed but supplemented by option \Option{dummy}. With this, we also can set
+a label even though the clause will not be printed.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=82-86}]{scrjuraexample.tex}%
+Another article begins. To avoid problems with the paragraph numbering, we
+interrupt the \DescRef{\LabelBase.env.contract} environment.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=87-87}]{scrjuraexample.tex}%
+The first clause of the next article also has been deleted.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=89-98}]{scrjuraexample.tex}%
+Here we have a real clause again. We cross-reference one of the deleted
+clauses and also set a label.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=100-104}]{scrjuraexample.tex}%
+Once more, this is a special kind of clause. This time we have not removed a
+clause but added one without renumbering the following clauses. To do so,
+we use \DescRef{\LabelBase.cmd.SubClause}. Therefore the clause number is the
+same like the previous one but with an appended ``a''.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=106-126}]{scrjuraexample.tex}%
+The other clauses of this article are very usual. You already know all the
+features used for them.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=128-141}]{scrjuraexample.tex}%
+There follows another article no special features.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=143-143}]{scrjuraexample.tex}%
+Then the \LaTeX{} document ends. You can see first three pages in
+\autoref{fig:scrjura.example}.%
+%
+\begin{figure}
+ \setcapindent{0pt}%
+ \iffree{%
+ {\hfill
+ \frame{\includegraphics[page=1,width=.482\textwidth,%
+ height=.49\textheight,keepaspectratio]{scrjuraexample}}\enskip
+ \frame{\includegraphics[page=2,width=.482\textwidth,%
+ height=.49\textheight,keepaspectratio]{scrjuraexample}}\par
+ \smallskip}
+ \begin{captionbeside}[{%
+ Example: First three pages of the example club by-laws of
+ \protect\autoref{sec:scrjura.example}%
+ }]{%
+ First three pages of the example club by-laws of
+ \protect\autoref{sec:scrjura.example}%
+ }%
+ [l]
+ \frame{\includegraphics[page=3,width=.482\textwidth,%
+ height=.49\textheight,keepaspectratio]{scrjuraexample}}\enskip
+ \end{captionbeside}
+ }{%
+ {\hfill
+ \frame{\includegraphics[page=1,width=.482\textwidth]{scrjuraexample}}%
+ \enskip
+ \frame{\includegraphics[page=2,width=.482\textwidth]{scrjuraexample}}\par
+ \smallskip}
+ \begin{captionbeside}[{%
+ Example: First three pages of the example club by-laws of
+ \protect\autoref{sec:scrjura.example}%
+ }]{%
+ First three pages of the example club by-laws of
+ \protect\autoref{sec:scrjura.example}%
+ }%
+ [l]
+ \frame{\includegraphics[page=3,width=.482\textwidth]{scrjuraexample}}%
+ \enskip
+ \end{captionbeside}
+ }%
+ \label{fig:scrjura.example}
+\end{figure}
+
+\section{State of Development}
+\label{sec:scrjura.draft}
+
+Since \KOMAScript~3.24, the \Package{scrjura} package has shared the version
+number of the classes and other important packages of \KOMAScript.
+Nevertheless, you should note that so far, the interaction of the
+\DescRef{\LabelBase.env.contract} environment with the many different settings
+possible with other \LaTeX{} environments, packages, or classes has not been
+tested. The main reason for this is that \Package{scrjura} is very specialised
+and far beyond the author's ordinary practice. So the author mostly relies on
+detailed user feedback.%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-PDF-mode: t
+%%% TeX-master: "guide.tex"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrjuraexample.tex b/macros/latex/contrib/koma-script/source-doc/english/scrjuraexample.tex
new file mode 100644
index 0000000000..013d1b60bc
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrjuraexample.tex
@@ -0,0 +1,143 @@
+\documentclass[fontsize=12pt,pagesize,parskip=half]
+ {scrartcl}
+
+\usepackage[british]{babel}
+
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage{charter,helvet}
+\usepackage{textcomp}
+
+\usepackage{enumerate}
+
+\usepackage[clausemark=forceboth,
+ juratotoc,
+ juratocnumberwidth=2.5em]
+ {scrjura}
+\useshorthands{'}
+\defineshorthand{'S}{\Sentence\ignorespaces}
+\defineshorthand{'.}{. \Sentence\ignorespaces}
+
+\pagestyle{myheadings}
+
+\begin{document}
+
+\subject{By-Laws}
+\title{CfCH}
+\subtitle{Club for Club Hoppers}
+\date{11.\,11.\,2011}
+\maketitle
+
+\tableofcontents
+
+\addsec{Preamble}
+
+The club landscape in England is diverse. But we have
+unfortunately been forced to conclude that it often
+suffers seriously when dealing with seriousness.
+
+\appendix
+
+\section{Overview}
+
+\begin{contract}
+\Clause{title={Name, Legal Form, Headquarters}}
+
+The name of this club shall be the ``Club for Club
+Hoppers'' and is not registered in any club register.
+
+'S The club is a non-economic, useless club'. It has no
+headquarters because its members heads are in their
+hindquarters.
+
+The fiscal year is from March 31st through April 1st.
+
+\Clause{title={Purpose of the Club}}
+
+'S The club is pointless but not useless'. Rather,
+it should put the serious handling of seriousness on a
+sound footing.
+
+For this purpose, the club members can
+\begin{enumerate}[\qquad a)]
+\item pick their noses,
+\item crack nuts,
+\item such their thumbs.
+\end{enumerate}
+
+The club is selfish and stands by it.
+
+The club has no financial means.\label{a:mittel}
+
+\Clause{title={Club Officers}}
+
+The club officers hold honorary positions.
+
+'S If the club had resources (see \ref{a:mittel}), it
+could afford a full-time manager'. Without the necessary
+funds, this is not possible.
+
+\Clause{title={Club Hopper},dummy}
+\label{p.maier}
+\end{contract}
+
+\section{Membership}
+
+\begin{contract}
+\Clause{title={Types of Members},dummy}
+
+\Clause{title={Becoming a Member}}
+
+Everyone can purchase a membership from one of the
+associations listed in \refClause{p.maier}.\label{a.preis}
+
+'S To become a member, an informal application is
+required'. This application should be submitted in green
+ink on pink paper.
+
+Membership applications cannot be rejected.
+
+\SubClause{title={Amendment to the Previous Clause}}
+
+'S With the repeal of \refClause{p.maier},
+\ref{a.preis} has become impractical'. In its place,
+memberships can be inherited.
+
+\Clause{title={Termination of Membership}}
+
+'S Membership ends with one's life'. For non-living
+members, membership does not end.
+
+\Clause{title={General Meeting}}
+
+A general meeting shall take place twice per year.
+
+The interval between two general meetings shall be
+no more than 6~months, 1~week, and 2~days.
+
+The invitation to the next general meeting shall be sent
+no earlier than 6~months from the previous general
+meeting.
+
+\SubClause{title={Amendment to the General Meeting}}
+
+The general meeting may be held at the earliest 2~weeks after
+the invitation is received.
+\end{contract}
+
+\section{Validity}
+
+\begin{contract}
+\Clause{title={Effective Date}}
+
+These articles will enter into force on 11.\,11.\,2011 at
+11:11~am.
+
+'S If any provision of these by-laws is in conflict with
+any other, the by-laws will be repealed on
+11.\,11.\,2011 at 11:11~am and 11~seconds'. The club is
+considered to be dissolved in this case.
+
+\end{contract}
+
+\end{document}
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrlayer-notecolumn-example.tex b/macros/latex/contrib/koma-script/source-doc/english/scrlayer-notecolumn-example.tex
new file mode 100644
index 0000000000..164c646e1f
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrlayer-notecolumn-example.tex
@@ -0,0 +1,121 @@
+% ======================================================================
+% scrlayer-notecolumn-example.tex
+% Copyright (c) Markus Kohm, 2018
+%
+% 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, 2018
+%
+% 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{lmodern}
+\usepackage{xcolor}
+
+\usepackage{scrjura}
+\setkomafont{contract.Clause}{\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{Commentary on the SCRACH}
+\author{Professor R. O. Tenase}
+\date{11/11/2011}
+\maketitle
+\tableofcontents
+
+\section{Preamble}
+The SCRACH is without doubt the most important law on the manners of humour
+that has been passed in the last thousand years. The first reading took place
+on 11/11/1111 in the Supreme Manic Fun Congress, but the law was rejected by
+the Vizier of Fun. Only after the ludicrous, Manic Fun monarchy was
+transformed into a representative, witty monarchy by W. Itzbold, on 9/9/1999
+was the way finally clear for this law.
+
+\section{Analysis}
+
+\begin{addmargin}[0pt]{.333\textwidth}
+ \makenote[paragraphs]{%
+ \protect\begin{contract}
+ \protect\Clause{title={No Joke without an Audience}}
+ A joke can only be funny if is has an audience.
+ \protect\end{contract}
+ }
+ This is one of the most central statements of the law. It is so fundamental
+ that it is quite appropriate to bow to the wisdom of the authors.
+
+ \syncwithnotecolumn[paragraphs]\bigskip
+ \makenote[paragraphs]{%
+ \protect\begin{contract}
+ \protect\Clause{title={Humor of a Culture}}
+ \setcounter{par}{0}The humour of a joke can be determined by the
+ cultural environment in which it is told.
+
+ The humour of a joke can be determined by the cultural environment in
+ which it acts.
+ \protect\end{contract}
+ }
+ The cultural component of a joke is, in fact, not negligible. Although the
+ political correctness of using the cultural environment can easily be
+ disputed, nonetheless the accuracy of such comedy in the appropriate
+ environment is striking. On the other hand, a supposed joke in the wrong
+ cultural environment can also be a real danger for the joke teller.
+\end{addmargin}
+
+\end{document}
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrlayer-notecolumn.tex b/macros/latex/contrib/koma-script/source-doc/english/scrlayer-notecolumn.tex
new file mode 100644
index 0000000000..47cc29a8aa
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrlayer-notecolumn.tex
@@ -0,0 +1,702 @@
+% ======================================================================
+% scrlayer-notecolumn.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-2018
+%
+% 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 ueber scrlayer-notecolumn in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrlayer-notecolumn.tex}
+ [$Date: 2018-02-05 01:50:56 -0800 (Mon, 05 Feb 2018) $
+ KOMA-Script guide (chapter:scrlayer-notecolumn)]
+
+\translator{Markus Kohm\and Arndt Schubert\and Karl Hagen}
+
+% Date of the translated German file: 2018-02-05
+
+\chapter{Note Columns with \Package{scrlayer-notecolumn}}
+\labelbase{scrlayer-notecolumn}
+
+\BeginIndexGroup
+\BeginIndex{Package}{scrlayer-notecolumn}%
+Through version~3.11b, \KOMAScript{} supported note columns only in the form
+of marginal notes that get their contents from \DescRef{maincls.cmd.marginpar}
+and \DescRef{maincls.cmd.marginline} (see \autoref{sec:maincls.marginNotes},
+\DescPageRef{maincls.cmd.marginline}). This kind of note column has several
+disadvantages:
+\begin{itemize}
+\item Marginal notes must be set completely on a single page. Page
+ breaks\textnote{page break} inside marginal notes are not possible. This
+ sometimes causes the marginal notes to protrude into the lower margin.
+\item Marginal notes near page breaks sometimes float to the next page and
+ then, in the case of two-sided printing, cause alternate marginal columns to
+ appear in the wrong margin.\textnote{assignment to the correct margin}. This
+ problem can be solved with the additional package
+ \Package{mparhack}\IndexPackage{mparhack} or by using \Macro{marginnote}
+ from the \Package{marginnote}\IndexPackage{marginnote} package (see
+ \cite{package:marginnote}).
+\item Marginal notes inside floating environments\textnote{floating
+ environments} or footnotes\textnote{footnotes} are not possible. This
+ problem can also be solved with \Macro{marginnote} of the
+ \Package{marginnote}\IndexPackage{marginnote} package.
+\item There is only one marginal note column\textnote{several note columns},
+ or at most two if you use \Macro{reversemarginpar} and
+ \Macro{normalmarginpar}. Note that \Macro{reversemarginpar} is of less
+ utility with two-sided documents.
+\end{itemize}
+Using \Package{marginnote}\IndexPackage{marginnote} leads to one more problem.
+Because the package does not have any collision detection, marginal notes that
+are set near to each other can partially or totally overlap. Moreover,
+depending on the settings used, \Macro{marginnote} sometimes changes the
+baseline distance of the normal text.
+
+The \Package{scrlayer-notecolumn} package should solve all these problems. To
+do so, it relies on the basic functionality of
+\hyperref[cha:scrlayer]{\Package{scrlayer}}\IndexPackage{scrlayer}%
+\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}}. However, using this
+package has a drawback:\textnote{Attention!} you can only output notes on
+pages that use a page style based on
+\hyperref[cha:scrlayer]{\Package{scrlayer}}. This disadvantage, however, can
+easily be resolved, or even turned into an advantage, with the help of
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}%
+\IndexPackage{scrlayer-scrpage}.
+
+\section{Note about the State of Development}
+\seclabel{draft}
+
+This package was originally developed as a so-called \emph{proof of
+ concept}\textnote{proof of concept} to demonstrate the potential of
+\hyperref[cha:scrlayer]{\Package{scrlayer}}%
+\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}}. Although it is still
+in its early stages of development, most of its stability is less a question
+of \Package{scrlayer-notecolumn} than of
+\hyperref[cha:scrlayer]{\Package{scrlayer}}. Nevertheless, you can assume that
+there are still bugs in \Package{scrlayer-notecolumn}. Please report such bugs
+whenever you find them. Some of the package's shortcomings are caused by the
+attempt to minimise complexity. For example, although note columns can break
+across several pages, there is no new paragraph break. \TeX{} itself does not
+provide this.
+
+Because the package is rather experimental\textnote{experimental}, its
+instructions are found here in the second part of \iffree{the \KOMAScript{}
+manual}{this book}. Accordingly, it is primarily directed towards experienced
+users. If you are a beginner or a user on the way to become an
+expert\textnote{for experts}, some of the following explanations may be
+unclear or even incomprehensible.
+\iffree{Please understand that I want to keep the effort spent on the manual
+ to something halfway bearable when it comes to experimental packages.}{%
+ However, this should be enough to solve simple tasks with
+ \Package{scrlayer-notecolumn}. At the same time, developers will hopefully
+ find useful stimulus for their own ideas.}
+
+\iffalse% Umbruchoptimierung
+Note also\textnote{Attention!} that the author of \KOMAScript{} does not
+guarantee the further development of this package and offers only limited
+support for it. This is the nature of a package written solely for the
+purposes of demonstration.%
+\fi
+
+\LoadCommonFile{options}% \section{Early or late Selection of Options}
+
+\LoadCommonFile{textmarkup}% \section{Text Markup}
+
+\section{Declaring New Note Columns}
+\seclabel{declaration}
+
+Loading the package automatically declares a note column named
+\PValue{marginpar}. As the name implies, this note column is placed in the
+area of the normal marginal column used by \DescRef{maincls.cmd.marginpar} and
+\DescRef{maincls.cmd.marginline}. The \Macro{reversemarginpar} and
+\Macro{normalmarginpar} settings are also taken into account, but only for all
+the notes on a page instead of note by note. The relevant setting is the one
+that applies at the end of the page, namely during the output of the note
+column. If you want to have notes in both the left and right margin of the
+same page, you should define a second note column.
+
+The default settings for all newly declared note columns are the same as the
+defaults for \PValue{marginpar}. %
+\iftrue% Umbruchoptimierung
+But you can easily change them during their initialisation.%
+\fi
+
+Note\textnote{Attention!} that note columns can be output only on pages that
+use a page style based on the
+\hyperref[cha:scrlayer]{\Package{scrlayer}}\IndexPackage{scrlayer}%
+\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}} package. The
+\Package{scrlayer-notecolumn} package automatically loads
+\hyperref[cha:scrlayer]{\Package{scrlayer}}, which by default provides only
+\PageStyle{empty}\IndexPagestyle{empty} page style. If you need additional
+page styles, \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} is
+recommended.
+
+\begin{Declaration}
+ \Macro{DeclareNoteColumn}%
+ \OParameter{option~list}\Parameter{note~column~name}%
+ \Macro{DeclareNewNoteColumn}%
+ \OParameter{option~list}\Parameter{note~column~name}%
+ \Macro{ProvideNoteColumn}%
+ \OParameter{option~list}\Parameter{note~column~name}%
+ \Macro{RedeclareNoteColumn}%
+ \OParameter{option~list}\Parameter{note~column~name}%
+\end{Declaration}
+You can use these commands to create note columns. \Macro{DeclareNoteColumn}
+creates the note column regardless of whether it already exists.
+\Macro{DeclareNewNoteColumn} throws an error if the \PName{note column name}
+has already been used for another note column. \Macro{ProvideNoteColumn}
+simply does nothing in that case. You can use \Macro{RedeclareNoteColumn} only
+to reconfigure an existing note column.
+
+By the way, when reconfiguring existing note columns with
+\Macro{DeclareNoteColumn} or \Macro{RedeclareNoteColumn}, the notes that have
+already been generated for this column are retained.
+
+\BeginIndex{FontElement}{notecolumn.\PName{note column name}}%
+\BeginIndex{FontElement}{notecolumn.marginpar}%
+Declaring a new note column always defines a new element for changing its font
+attributes with \DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont}, if such an element does not yet exist.
+The name of the element is \PValue{notecolumn.}\PName{note column name}. For
+this reason, the default note column \PValue{marginnote} has the
+element\textnote{element name} \FontElement{notecolumn.marginpar}. You can
+directly specify the initial setting of the element's font when declaring a
+note column by using the \Option{font} option within the \PName{option list}.%
+\EndIndex{FontElement}{notecolumn.marginpar}%
+\EndIndex{FontElement}{notecolumn.\PName{note column name}}%
+
+The \PName{option list} is a comma-separated list of keys with or without
+values, also known as options. The available options are listed in
+\autoref{tab:scrlayer-notecolumn.note.column.options},
+\autopageref{tab:scrlayer-notecolumn.note.column.options}.
+The\textnote{default: option \Option{marginpar}} \Option{marginpar} option is
+set by default, but you can overwrite this default with your individual
+settings.
+
+Because note columns are implemented using \Package{scrlayer}, a
+layer\Index{layer} is created for each note column. The layer
+name\textnote{layer name} is the same as the name of the element,
+\PValue{notecolumn.}\PName{note column name}. For more information about
+layers see \autoref{sec:scrlayer.layers}, starting on
+\autopageref{sec:scrlayer.layers}.
+%
+\begin{Example}
+ Suppose you are a professor of comedy law and want to write a treatise on
+ the new ``Statute Concerning the Riotous Airing of Common Humour'', SCRACH
+ for short. The better part of the work will consist of commentary on
+ individual paragraphs of the statute. You decide on a two-column layout,
+ with the comments in the main column and the paragraphs placed in a smaller
+ note column on the right of the main column using a font that is
+ smaller\iffree{ and in a different colour}{}.
+\begin{lstcode}
+ \documentclass{scrartcl}
+ \usepackage{lmodern}
+ \usepackage{xcolor}
+
+ \usepackage{scrjura}
+ \setkomafont{contract.Clause}{\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}
+ The treatise should be a one-sided article. The font is Latin Modern, and
+ the colour selection uses the \Package{xcolor}\IndexPackage{xcolor} package.
+
+ For formatting legal texts\textnote{legal texts with
+ \hyperref[cha:scrjura]{\Package{scrjura}}} with the
+ \hyperref[cha:scrjura]{\Package{scrjura}}\IndexPackage{scrjura} package, see
+ \autoref{cha:scrjura}.
+
+ Since this document uses a page style\textnote{page style with
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} with a
+ page number, the
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ \IndexPackage{scrlayer-scrpage} package is loaded. Thus, note columns can be
+ output on all pages.
+
+ Next, the \Package{scrlayer-notecolumn}\textnote{note columns with
+ \Package{scrlayer-notecolumn}} package is loaded. The required width of the
+ note column is calculated with
+ \DescRef{typearea-experts.cmd.AfterCalculatingTypearea}%
+ \IndexPackage{typearea}\IndexCmd{AfterCalculatingTypearea} after any
+ recalculation\textnote{type area with
+ \hyperref[cha:typearea]{\Package{typearea}}}%
+ \IndexPackage{typearea} of the type area. It should be one third of the type
+ area minus the distance between the main text and the note column. %
+
+ With this information, we define the new note column. For the positions, we
+ use a simple dimension expression. Note that \Length{oddsidemargin} is not
+ the total left margin but for historical reasons the left margin minus
+ 1\Unit{inch}. So we have to add this value.
+
+ This concludes the definition. Note that the note column would currently be
+ placed inside the type area. This means that the note column would overwrite
+ the text.
+
+\begin{lstcode}
+ \begin{document}
+
+ \title{Commentary on the SCRACH}
+ \author{Professor R. O. Tenase}
+ \date{11/11/2011}
+ \maketitle
+ \tableofcontents
+
+ \section{Preamble}
+ The SCRACH is without doubt the most important law
+ on the manners of humour that has been passed in
+ the last thousand years. The first reading took
+ place on 11/11/1111 in the Supreme Manic Fun
+ Congress, but the law was rejected by the Vizier
+ of Fun. Only after the ludicrous, Manic Fun
+ monarchy was transformed into a representative,
+ witty monarchy by W. Itzbold, on 9/9/1999 was
+ the way finally clear for this law.
+\end{lstcode}
+ Because\textnote{Attention!} the text area was not reduced, the preamble is
+ output extending over the whole width of the type area. To test this, you
+ can temporarily add:
+\begin{lstcode}
+ \end{document}
+\end{lstcode}
+\end{Example}
+%
+In the example, the question of how the text for the commentary can be set in
+a narrower column remains unresolved. You will discover how to do this by
+continuing the example below.%
+%
+%\begin{table}% Umbruchoptimierung: Tabelle hinter das Beispiel verschoben
+\begin{desclist}
+ \desccaption{%
+% \caption[Available settings for declaring note columns]{%
+ Available settings for declaring note columns%
+% }%
+ \label{tab:scrlayer-notecolumn.note.column.options}%
+ }{%
+ Available settings for declaring note columns
+ (\emph{continued})%
+ }%
+% \begin{desctabular}
+ \entry{\OptionVName{font}{font attribute}}{%
+ The font attributes of the note column set with
+ \DescRef{\LabelBase.cmd.setkomafont}. For possible values, refer to
+ \autoref{sec:maincls.textmarkup},
+ \DescPageRef{maincls.cmd.setkomafont}.\par%
+ Default: \emph{empty}%
+ }%
+ \entry{\Option{marginpar}}{%
+ Sets \Option{position} and \Option{width} to correspond to the marginal
+ note column of \DescRef{maincls.cmd.marginpar}. Switching between
+ \Macro{reversemarginpar}\IndexCmd{reversemarginpar} and
+ \Macro{normalmarginpar}\IndexCmd{normalmarginpar} is only considered at
+ the end of the page when the note column is output. Note that this
+ option does not expect or allow any value.\par%
+ Default: \emph{yes}%
+ }%
+ \entry{\Option{normalmarginpar}}{%
+ Sets \Option{position} and \Option{width} to use the normal marginal
+ note column and ignore \Macro{reversemarginpar} and
+ \Macro{normalmarginpar}. Note that this option does not expect or allow
+ a value.\par%
+ Default: \emph{no}%
+ }%
+ \entry{\OptionVName{position}{offset}}{%
+ Sets the horizontal offset of the note column from the left edge of the
+ paper. The \PName{offset} can be a complex expression as long as it is
+ fully expandable and expands to a length or a dimensional expression at
+ the time the note column is output. See \cite[section~3.5]{manual:eTeX}
+ for more information about dimensional expressions.\par%
+ Default: \emph{through the \Option{marginpar} option}%
+ }%
+ \entry{\Option{reversemarginpar}}{%
+ Sets \Option{position} and \Option{width} to use the reverse marginal
+ note column of \DescRef{maincls.cmd.marginpar} with the
+ \Macro{reversemarginpar} setting. Note that this option does not expect
+ or allow a value.\par%
+ Default: \emph{no}%
+ }%
+ \entry{\OptionVName{width}{length}}{%
+ Sets the width of the note column. The \PName{length} can be a complex
+ expression as long as it is fully expandable and expands to a length or
+ a dimensional expression at the time the note column is output. See
+ \cite[section~3.5]{manual:eTeX} for more information about dimensional
+ expressions.\par%
+ Default: \emph{through the \Option{marginpar} option}%
+ }%
+% \end{desctabular}
+%\end{table}
+\end{desclist}
+\EndIndexGroup
+
+
+\section{Making a Note}
+\seclabel{makenote}
+
+After you declare a note column, you can create notes for this column. But
+these notes are not be output immediately. Initially, they are written to an
+auxiliary file with extension ``\File{.slnc}''. Specifically, they are first
+written to the \File{aux}-file and, when the \File{aux}-file is read inside
+\Macro{end}\PParameter{document}, they are copied to the \File{slnc}-file. If
+necessary, the \Macro{nofiles}\IndexCmd{nofiles} setting is also taken into
+account. At the next \LaTeX{} run, this auxiliary file will be read piece by
+piece, according to the progress of the document, and at the end of the page
+the notes for that page will be output.
+
+Note\textnote{Attention!}, however, that note columns are output only on pages
+whose page style is based on the \Package{scrlayer}\IndexPackage{scrlayer}
+package. This package is loaded automatically by \Package{scrlayer-notecolumn}
+and by default provides only the \PageStyle{empty}\IndexPagestyle{empty} page
+style. If you need additional page styles, the
+\Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage} package is
+recommended.
+
+\begin{Declaration}
+ \Macro{makenote}\OParameter{note-column name}\Parameter{note}\\
+ \Macro{makenote*}\OParameter{note-column name}\Parameter{note}\\
+\end{Declaration}
+You can use this command to make a new \PName{note}. The current vertical
+position is used as the vertical position for the start of the \PName{note}.
+The horizontal position for the note results from the defined position of the
+note column. To work correctly, the package relies on
+\Macro{pdfsavepos}\IndexCmd{pdfsavepos},
+\Macro{pdflastypos}\IndexCmd{pdflastypos}, and
+\Macro{pdfpageheight}\IndexLength{pdfpageheight} or their equivalent in newer
+Lua\TeX{} versions. Without these commands, \Package{scrlayer-notecolumn} will
+not work. The primitives should act exactly as they would using pdf\TeX.
+
+However, if the package detects a collision\textnote{collision avoidance} with
+a previous \PName{note} in the same note column, the new \PName{note} is moved
+below that earlier \PName{note}. If the \PName{note} does not fit on the
+page\textnote{page break}\Index{page>break}, it will be moved completely or
+partially to the next page.
+
+The optional argument \PName{note column name} determines which note column
+should be used for the \PName{note}. If the optional argument is omitted, the
+default note column \PValue{marginpar} is used.%
+\begin{Example}
+ Let's add a commented paragraph to the example of the previous section. The
+ paragraph itself should be placed in the newly defined note column:
+\begin{lstcode}
+ \section{Analysis}
+ \begin{addmargin}[0pt]{.333\textwidth}
+ \makenote[paragraphs]{%
+ \protect\begin{contract}
+ \protect\Clause{%
+ title={No Joke without an Audience}%
+ }
+ A joke can only be funny if is has an
+ audience.
+ \protect\end{contract}%
+ }
+ This is one of the most central statements of
+ the law. It is so fundamental that it is quite
+ appropriate to bow to the wisdom of the authors.
+\end{lstcode}
+ The \DescRef{maincls.env.addmargin}\IndexEnv{addmargin}%
+ \textnote{column width with \DescRef{maincls.env.addmargin}} environment,
+ which is described in \autoref{sec:maincls.lists},
+ \DescPageRef{maincls.env.addmargin}, is used to reduce the width of the main
+ text by the width of the column for the paragraphs.
+
+ Here you can see one of the few problems of using \Macro{makenote}. Because
+ the mandatory argument is written to an auxiliary file,
+ commands\textnote{fragile commands} inside this argument can, unfortunately,
+ \emph{break}. To avoid this, you should use \Macro{protect} in front of all
+ commands that should not expand when written to the auxiliary file.
+ Otherwise, using a command inside this argument could result in error
+ messages.
+
+ In principle you could now finish this example with
+\begin{lstcode}
+ \end{addmargin}
+ \end{document}
+\end{lstcode}
+ to see a preliminary result.
+\end{Example}
+If you test this example, you will see that the column for the legal text is
+longer than that of the commentary. If\textnote{Attention!} you add another
+section with another paragraph, you may encounter the problem that the
+commentary will not continue below the legal text but immediately after the
+previous comment. Next you will find a solution to this problem.
+
+The\ChangedAt{v0.1.2583}{\Package{scrlayer-notecolumn}} problem with fragile
+commands mentioned in the example above does not occur with the starred
+variant\important{\Macro{makenote*}}. It uses \Macro{detokenize} to prevent
+the expansion of commands. But this also means that you should not use
+commands in the \PName{note} that change their definition within the
+document.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{syncwithnotecolumn}\OParameter{note column name}
+\end{Declaration}
+This command adds a
+synchronisation\textnote{synchronisation}\Index{synchronisation} point in a
+note column and in the main text of the document. Whenever a synchronisation
+point is reached during the output of a note column or the main text, a mark
+will be generated that consists of the current page and the current vertical
+position.
+
+In parallel with the generation of synchronisation points,
+\Package{scrlayer-notecolumn} determines whether a mark has been set in the
+note column or the main text during the previous \LaTeX{} run. If so, it
+compares their values. If the mark of the note column is lower on the current
+page or on a later page, the main text will be moved down to the position of
+the mark.
+
+As a rule,\textnote{Hint!} you should not place synchronisation points within
+paragraphs of the main text but only between them. If you nonetheless use
+\Macro{syncwithnotecolumn} inside a paragraph, the synchronisation point will
+be delayed until the current line has been output. This behaviour is similar
+to that of, e.\,g., \Macro{vspace}\IndexCmd{vspace} in this respect.
+
+Because synchronisation points are not recognized until the next \LaTeX{}
+run\textnote{several \LaTeX{} runs}, this mechanism requires at least three
+\LaTeX{} runs. Any new synchronisation may also result in shifts of later
+synchronisation points, which in turn will require additional \LaTeX{} runs.
+Such shifts are usually indicated by the message: ``\LaTeX{} Warning: Label(s)
+may have changed. Rerun to get cross-references right.'' But reports about
+undefined labels may also indicate the need for another \LaTeX{} run.
+
+If you omit the optional argument, the default note column \PValue{marginpar}
+will be used. Note\textnote{Attention!} that an empty optional argument is not
+the same as omitting the optional argument!
+
+You cannot use\textnote{Attention!} \Macro{syncwithnotecolumn} inside a note
+itself, that is, inside the mandatory argument of
+\Macro{makenote}\IndexCmd{makenote}! Currently the package cannot recognise
+such a mistake, and it causes new shifts of the synchronisation point with
+each \LaTeX{} run, so the process will never terminate. To synchronise two or
+more note columns, you have to synchronise each of them with the main text.
+The recommended command for this is described below.%
+%
+\begin{Example}
+ Let's extend the example above by first adding a synchronisation point
+ and then another paragraph with a comment:
+\begin{lstcode}
+ \syncwithnotecolumn[paragraphs]\bigskip
+ \makenote[paragraphs]{%
+ \protect\begin{contract}
+ \protect\Clause{title={Humor of a Culture}}
+ \setcounter{par}{0}%
+ The humour of a joke can be determined by the
+ cultural environment in which it is told.
+
+ The humour of a joke can be determined by the
+ cultural environment in which it acts.
+ \protect\end{contract}
+ }
+ The cultural component of a joke is, in fact, not
+ negligible. Although the political correctness of
+ using the cultural environment can easily be
+ disputed, nonetheless the accuracy of such comedy
+ in the appropriate environment is striking. On
+ the other hand, a supposed joke in the wrong
+ cultural environment can also be a real danger
+ for the joke teller.
+\end{lstcode}
+ In addition to the synchronisation point, a vertical skip has been added
+ with \Macro{bigskip} to better distinguish each paragraph and the
+ corresponding comments.
+
+ Further\textnote{Attention}, this example illustrates another potential
+ problem. Because the note columns uses boxes that are assembled and
+ disassembled, counters\textnote{counter in note column} inside note columns
+ can sometimes jitter. In the example, therefore, the first paragraph would
+ be numbered 2 instead of 1. This, however, can easily be fixed by a direct
+ reset of the corresponding counter.
+
+ The example is almost complete. You just have to close the environments:
+\begin{lstcode}
+ \end{addmargin}
+ \end{document}
+\end{lstcode}
+ In reality, of course, all the remaining section of the law should also be
+ commented. But let us focus on the main purpose.
+\end{Example}
+But stop! What if, in this example, the \PName{paragraphs} would no longer fit
+on the page? Would it be printed on the next page? We will answer this
+question in the next section.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{syncwithnotecolumns}\OParameter{list of note column names}
+\end{Declaration}
+This command synchronises the main text with all note columns of the
+comma-separated \PName{list of note column names}. The main text
+will be synchronised with the note column whose mark is closest to the
+end of the document. As a side effect, the note columns will be synchronised
+with each other.
+
+If the optional argument is omitted or empty (or begins with \Macro{relax}),
+synchronisation will be done with all currently declared note columns.%
+\EndIndexGroup
+
+
+\section{Forced Output of Note Columns}
+\seclabel{clearnotes}
+
+In addition to the normal output of note columns described in the previous
+section, you may sometimes need to output all collected notes that have
+not yet been output. This is especially useful when large notes cause more and
+more notes to be moved down to new pages. A good time to force the
+output\textnote{force output} is, for example, the end of a chapter or the end
+of the document.
+
+\begin{Declaration}
+ \Macro{clearnotecolumn}\OParameter{note column name}
+\end{Declaration}
+This command prints all notes\textnote{pending notes} of a particular note
+column that have not yet been output by the end of the current page but which
+were created on that or a previous page. Blank pages are generated as needed
+to output these pending notes. During the output of the pending notes of this
+note column, notes of other note columns may also be output, but only as
+necessary to output the pending notes of the specified note column.
+
+During the output of the pending notes, notes created in the previous \LaTeX{}
+run on the pages that are now replaced by the inserted blank pages may be
+output by mistake. This will be corrected automatically in one of the
+subsequent \LaTeX{} runs. Such shifts are usually indicated by the message:
+``\LaTeX{} Warning: Label(s) may have changed. Rerun to get cross-references
+right.''
+
+The note column whose pending notes are to be output is indicated by the
+optional argument \PName{note column name}. If this argument is omitted, the
+notes of the default note column \PValue{marginpar} will be output.
+
+The attentive reader\textnote{forced output vs. synchronisation} will have
+noticed that the forced output of a note column is not unlike synchronisation.
+But if the forced output actually results in an output, it will be at the
+start of a new page and not just below the previous output. Nonetheless, a
+forced output usually results in fewer \LaTeX{} runs.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{clearnotecolumns}\OParameter{list of note column names}
+\end{Declaration}
+This command is similar to \DescRef{\LabelBase.cmd.clearnotecolumn}, but the
+the optional argument here can be not only the name of one note column but a
+comma-separated \PName{list of note column names}. The pending notes of all
+these note columns are then ouput.
+
+If you omit the optional argument or leave it empty, all pending notes of all
+note columns will be output.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{autoclearnotecolumns}{simple switch}
+\end{Declaration}
+As a rule, pending notes will always be output if a document
+implicitly\,---\,e.\,g. because of a \DescRef{maincls.cmd.chapter}
+command\,---\,or explicitly executes \DescRef{maincls.cmd.clearpage}. This is
+also the case at the end of the document within
+\Macro{end}\PParameter{document}. The \Option{autoclearnotecolumns} option can
+be used to control whether \DescRef{\LabelBase.cmd.clearnotecolumns} should be
+executed automatically without arguments when running
+\DescRef{maincls.cmd.clearpage}.
+
+Since this is generally the desired behaviour, the option is active by
+default. But you can change this with the appropriate value for a simple
+switch (see \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch})
+at any time.
+
+Note\textnote{Attention!} that disabling the automatic output of pending notes
+can result in lost notes at the end of the document. So in this case you
+should insert \DescRef{\LabelBase.cmd.clearnotecolumns} before
+\Macro{end}\PParameter{document} fore safety's sake.
+
+The question from the end of the last section should now be answered. If the
+paragraph is to be completely output, it had to be wrapped to the next page.
+This is, of course, the default setting. However, since this would happen
+after the end of the \DescRef{maincls.env.addmargin} environment, the forced
+output could still overlap with subsequent text. So in the example it would
+make sense to add another synchronisation point after the
+\DescRef{maincls.env.addmargin} environment.
+
+The result of the example is shown in
+\autoref{fig:scrlayer-notecolumn.example}.\iffree{}{ Only the colour has been
+changed from blue to grey.}
+
+\begin{figure}
+ \KOMAoptions{captions=bottombeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{A sample page for the example in
+ \autoref{cha:scrlayer-notecolumn}}]{A sample page for the example in
+ this chapter\label{fig:scrlayer-notecolumn.example}}[l]
+ \frame{\includegraphics[width=.5\textwidth,keepaspectratio]%
+ {scrlayer-notecolumn-example}}
+ \end{captionbeside}
+\end{figure}
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrlayer-scrpage-experts.tex b/macros/latex/contrib/koma-script/source-doc/english/scrlayer-scrpage-experts.tex
new file mode 100644
index 0000000000..c9cdc98c8a
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrlayer-scrpage-experts.tex
@@ -0,0 +1,393 @@
+% ======================================================================
+% scrlayer-scrpage-experts.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-2018
+%
+% 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: 2018-03-30 11:57:25 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (chapter: scrlayer-scrpage-experts)]
+\translator{Markus Kohm\and Karl Hagen}
+
+% Date version of the translated file: 2018-01-31
+
+\chapter[{Additional Features of \Package{scrlayer-scrpage}}]
+ {Additional Features\ChangedAt{v3.12}{\Package{scrlayer-scrpage}} with
+ the \Package{scrlayer-scrpage} package}
+\labelbase{scrlayer-scrpage-experts}
+%
+\BeginIndexGroup
+\BeginIndex{Package}{scrlayer-scrpage}%
+The \Package{scrlayer-scrpage} package offers many features beyond what has
+been described in \autoref{cha:scrlayer-scrpage} of \autoref{part:forAuthors}
+of this \iffree{guide}{book}. However, the average user will not normally need
+these extensions, and some of them are only provided for compatibility with
+\Package{scrpage2}. The documentation here in \autoref{part:forExperts} serves
+to deepen and broaded your knowledge, and its mastery goes beyond basic
+skills.
+
+\LoadCommonFile{pagestylemanipulation}% \section{Manipulating Defined Page Styles}
+
+\section{Defining New Pairs of Page Styles}
+\seclabel{pagestyle.pairs}
+
+The two page styles \PageStyle{scrheadings} and \PageStyle{plain.scrheadings}
+were described in \autoref{sec:scrlayer-scrpage.predefined.pagestyles}. You
+can view them as a kind of pair, with \PageStyle{scrheadings} intended as the
+main page style for a running head and \PageStyle{plain.scrheadings} the
+corresponding \PageStyle{plain} page style without a running head but
+generally with pagination. In addition to configuring this predefined pair,
+\Package{scrlayer-scrpage} also lets you define additional pairs of page
+styles. The name of the main page style, for example \PageStyle{scrheadings},
+also serves as the name of the page-style pair.
+
+\iffree{
+ The vast majority of users will not need more than the one predefined
+ page-style pair, \PageStyle{scrheadings}. So the commands documented in this
+ section are therefore extensions for special cases. Since I have not come
+ across any suitable applications while writing this manual, there are no
+ detailed examples. Should I ever run across a particularly nice application
+ while providing support, I will happily include it in future versions. At
+ the same time, however, I'm virtually certain 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}
+You can use these commands to define pairs of page styles similar to
+\PageStyle{scrheadings} and \PageStyle{plain.scrheadings}, where \PName{name}
+is the name of the main page style corresponding to \PageStyle{scrheadings}.
+The name of the equivalent \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 you provide the optional \PName{parent pair} argument, this is the name of
+a page-style pair whose settings are used to initialise the new page-style
+pair. So the new pair inherits the configuration of the \PName{parent pair}.
+
+Although \autoref{sec:scrlayer-scrpage.predefined.pagestyles} might have
+created the impression that the commands described there apply only to
+\PageStyle{scrheadings} and \PageStyle{plain.scrheadings} only, this is true
+only so long as those two page styles are the only defined page-style pair. As
+soon as there are multiple page-style pairs,
+\DescRef{scrlayer-scrpage.cmd.lehead}, \DescRef{scrlayer-scrpage.cmd.cehead},
+\DescRef{scrlayer-scrpage.cmd.rehead}, \DescRef{scrlayer-scrpage.cmd.lohead},
+\DescRef{scrlayer-scrpage.cmd.cohead}, \DescRef{scrlayer-scrpage.cmd.rohead},
+\DescRef{scrlayer-scrpage.cmd.lefoot}, \DescRef{scrlayer-scrpage.cmd.cefoot},
+\DescRef{scrlayer-scrpage.cmd.refoot}, \DescRef{scrlayer-scrpage.cmd.lofoot},
+\DescRef{scrlayer-scrpage.cmd.cofoot}, \DescRef{scrlayer-scrpage.cmd.rofoot},
+\DescRef{scrlayer-scrpage.cmd.ihead}, \DescRef{scrlayer-scrpage.cmd.chead},
+\DescRef{scrlayer-scrpage.cmd.ohead}, \DescRef{scrlayer-scrpage.cmd.ifoot},
+\DescRef{scrlayer-scrpage.cmd.cfoot}, and \DescRef{scrlayer-scrpage.cmd.ofoot}
+all refer to page-style pair that was most recently activated.
+
+In addition to those eighteen commands mentioned above, the three commands
+described below, \DescRef{\LabelBase.cmd.clearmainofpairofpagestyles},
+\DescRef{\LabelBase.cmd.clearplainofpairofpagestyles}, and
+\DescRef{\LabelBase.cmd.clearpairofpagestyles}, are designed to be used inside
+the \PName{definition} argument. In this case, they represent a kind of
+default configuration of the page-style pair that is executed each time the
+pair is activated. You activate a page-style pair by activating either one two
+page styles in the pair. Typically, you do so with
+\DescRef{maincls.cmd.pagestyle}\IndexCmd{pagestyle}.
+
+Note that the commands of \autoref{sec:scrlayer-scrpage.pagestyle.content} on
+\autopageref{sec:scrlayer-scrpage.pagestyle.content} are general in nature and
+apply to all page styles defined with \Package{scrlayer-scrpage}.
+
+Although \Macro{defpairofpagestyles} defines a page-style pair regardless of
+whether the corresponding page styles already exist,
+\Macro{newpairofpagestyles} and \Macro{providepairofpagestyles} do so 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, whereas using \Macro{newpairofpagestyles} results in an error
+message. To redefine existing page-style pairs, you can use
+\Macro{renewpairofpagestyles}. With this an is thrown if either one of the two
+page styles of the pair does not already exist.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{clearmainofpairofpagestyles}%
+ \Macro{clearplainofpairofpagestyles}%
+ \Macro{clearpairofpagestyles}
+\end{Declaration}
+The \Macro{clearmainofpairofpagestyles} command sets the main page style of
+the most recently activated page-style pair to be empty. In contrast, the
+\Macro{clearplainofpairofpagestyles} command sets the \PageStyle{plain} page
+style of the active page-style pair to be empty. Finally,
+\Macro{clearpairofpagestyle} sets both page styles of the activate pair to be
+empty.
+
+But note\textnote{Attention!} that none of these commands removes the
+definitions of the \PName{definition} argument that was specified when
+defining the page-style pair (see above). So if you activate the pair of page
+styles again, those definitions will be used again!
+
+You can use these commands inside the \PName{definition} of the page-style
+pair explained above. But you can also use them outside this definition. In
+this case, they refer to the most recently activated page-style pair.%
+\EndIndexGroup
+
+
+\section{Defining Complex Page Styles}
+\seclabel{pagestyle.experts}
+
+In addition to the predefined page styles, \Package{scrlayer-scrpage} also
+provides a more basic interface for defining new page styles. The page-style
+definitions discussed so far use this interface internally, as do the obsolete
+commands in \autoref{sec:\LabelBase.pagestyle.triple}.
+\Package{scrlayer-scrpage}. Because of its complexity, however, only advanced
+users should try to use it directly. Less experienced users can already
+achieve almost everything possible with this low-level interface by using the
+possibilities described previously.
+
+\begin{Declaration}
+ \Macro{defpagestyle}%
+ \Parameter{name}\Parameter{header specification}\Parameter{footer specification}%
+ \Macro{newpagestyle}%
+ \Parameter{name}\Parameter{header specification}\Parameter{footer specification}%
+ \Macro{providepagestyle}%
+ \Parameter{name}\Parameter{header specification}\Parameter{footer specification}%
+ \Macro{renewpagestyle}%
+ \Parameter{name}\Parameter{header specification}\Parameter{footer specification}%
+\end{Declaration}
+You can use these commands to define a single page style with maximum
+flexibility, where \PName{name} is the name of the page style that you want to
+define.
+
+The parameters \PName{header specification} and \PName{footer specification}
+have identical structure:
+\begin{quote}\raggedright
+ \texttt{%
+ (\PName{length of the line above},\PName{thickness of the line above})\%\\
+ \Parameter{specification for the left page in two-side layout}\%\\
+ \Parameter{specification for the right page in two-side layout}\%\\
+ \Parameter{specification for all pages in one-side laypout}\%\\
+ (\PName{length of the line below},\PName{thickness of the line below})%
+ }
+\end{quote}
+The arguments in the round brackets are optional. That is, you can omit them
+together with the brackets. In that case, the length and thickness of the
+corresponding horizontal rules are based on the \KOMAScript{} options
+\DescRef{scrlayer-scrpage.option.headtopline},
+\DescRef{scrlayer-scrpage.option.headsepline},
+\DescRef{scrlayer-scrpage.option.footsepline}, and
+\DescRef{scrlayer-scrpage.option.footbotline} (see
+\autoref{sec:scrlayer-scrpage.pagestyle.content},
+\DescPageRef{scrlayer-scrpage.option.headtopline}).
+
+All three arguments in curly brackets are mandatory and are used depending on
+the page and the layout settings. Their content can be anything you want. For
+page styles with running heads, however, you should use
+\DescRef{scrlayer-scrpage.cmd.headmark},
+\DescRef{scrlayer-scrpage.cmd.leftmark}, or
+\DescRef{scrlayer-scrpage.cmd.rightmark} inside the specification. Under no
+circumstances should you directly put the number or text of a sectioning
+command here. Because of the \LaTeX{}'s asynchronous page construction, the
+wrong numbers or text can appear in the header or footer if you do so.
+
+The \Macro{defpagestyle} command defines the page style regardless of whether
+it already exists or not. In contrast, \Macro{newpagestyle} throws an error if
+a page style of the same \PName{name} already exists. On the other hand,
+\Macro{providepagestyle} simply ignores the definition if the \PName{name} has
+already been used for a page style. Conversely, \Macro{renewpagestyle} can
+only redefine an existing page style. For a new \PName{name}, it throws an
+error.
+
+All four commands are based on the
+\DescRef{scrlayer.cmd.DeclarePageStyleByLayers}%
+\IndexCmd{DeclarePageStyleByLayers} command of the
+\hyperref[cha:scrlayer]{\Package{scrlayer}}\IndexPackage{scrlayer} package.
+You can find the layers that are defined for a page style \PName{name} in
+\autoref{tab:scrlayer-scrpage-experts.layersperstyle}, and more information
+about layers and layer-page in \autoref{cha:scrlayer}, starting on
+\autopageref{cha:scrlayer}.%
+
+\begin{table}
+% \KOMAoptions{captions=topbeside}
+% \setcapindent{0pt}
+% \begin{captionbeside}
+ \caption
+ [{The layers \Package{scrlayer-scrpage} defines for a page style}]
+ {The layers \Package{scrlayer-scrpage} defines for a \PName{name} page
+ style\label{tab:scrlayer-scrpage-experts.layersperstyle}}
+% [l]
+ \begin{tabular}{ll}
+ \toprule
+ Name of the layer & Meaning of the layer \\
+ \midrule
+ \PName{name}\PValue{.head.above.line}
+ & horizontal line above the header\\
+ \PName{name}\PValue{.head.odd}
+ & header of odd pages in two-sided printing\\
+ \PName{name}\PValue{.head.even}
+ & header of even pages in two-sided printing\\
+ \PName{name}\PValue{.head.oneside}
+ & header in one-sided printing\\
+ \PName{name}\PValue{.head.below.line}
+ & horizontal line below the header\\
+ \PName{name}\PValue{.foot.above.line}
+ & horizontal line above the footer\\
+ \PName{name}\PValue{.foot.odd}
+ & footer of odd pages in two-sided printing\\
+ \PName{name}\PValue{.foot.even}
+ & footer of even pages in two-sided printing\\
+ \PName{name}\PValue{.foot.oneside}
+ & footer in one-sided printing\\
+ \PName{name}\PValue{.foot.below.line}
+ & horizontal line below the footer\\
+ \bottomrule
+ \end{tabular}
+% \end{captionbeside}
+\end{table}
+
+\begin{Example}
+ Suppose you want to set a background colour for the header of the
+ \PageStyle{scrheadings} page style. From the introduction to this chapter
+ and \autoref{tab:scrlayer-scrpage-experts.layersperstyle}, you know that
+ \PageStyle{scrheadings} is a layer page style that includes the layers
+ \PValue{scrheadings.head.even}, \PValue{scrheadings.head.odd}, and
+ \PValue{scrheadings.head.oneside}. You now define three more layers for
+ their backgrounds and add them at the 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 that the position and size
+ of the background layers could simply be copied from the corresponding
+ header layer using the \Option{clone} option. This is easier than using only
+ one background layer and dynamically calculating its position each time.
+
+ The coloured background itself was created using a \Macro{rule} command. The
+ size arguments of this \Macro{rule} are given by
+ \DescRef{scrlayer.cmd.layerwidth} and \DescRef{scrlayer.cmd.layerheight}
+ which contain the current width and height of the layer itself. The optional
+ argument of \Macro{rule} is used to move the rule down by the height of a
+ descender.
+\end{Example}
+%
+Instead of using new layers to colour the background in the example above,
+\Macro{colorbox} and \DescRef{scrlayer-scrpage.cmd.chead} could have been
+used. You can work out a solution using this method as an exercise. Likewise,
+you could have added the background layers individually just before the
+corresponding content layer. You can implement this as an exercise too.%
+\EndIndexGroup
+
+\section{Defining Simple Page Styles with a Tripartite Header and Footer}
+\seclabel{pagestyle.triple}
+
+\LoadNonFree{scrlayer-scrpage-experts}{1}
+
+\section{Legacy Features of \Package{scrpage2}}
+\seclabel{obsolete}
+
+\begin{Explain}
+ The \Package{scrlayer-scrpage} package contains some legacy features that
+ derive from \Package{scrpage2} and exist only to be as compatible as possible
+ with that package. Users only need to understand these features if they want
+ to edit an old document based on \Package{scrpage2}. You\textnote{Attention!}
+ should not use the items documented here in new documents!
+\end{Explain}
+
+\begin{Declaration}
+ \KOption{hmode}\PValue{simple switch}
+\end{Declaration}
+The \Package{scrpage2} package always outputs headers and footers in
+horizontal mode. In contrast, \Package{scrlayer-scrpage} in the default
+setting only switches into horizontal mode when horizontal material is output.
+However, if you activate the \Option{hmode} option, \Package{scrlayer-scrpage}
+will behave like \Package{scrpage2} and switch to horizontal mode before any
+output. This can affect both the processing of white space at the beginning of
+the output and vertical alignment.
+
+The options recognizes the standard values for simple switches listed in
+\autoref{tab:truefalseswitch} on \autopageref{tab:truefalseswitch}. The option
+is deactivated by default.%
+\EndIndexGroup
+
+\LoadNonFree{scrlayer-scrpage-experts}{0}
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrlayer-scrpage.tex b/macros/latex/contrib/koma-script/source-doc/english/scrlayer-scrpage.tex
new file mode 100644
index 0000000000..d3c50bfef0
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrlayer-scrpage.tex
@@ -0,0 +1,1190 @@
+% ======================================================================
+% scrlayer-scrpage.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-2018
+%
+% 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: 2018-03-30 11:57:25 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (chapter: scrlayer-scrpage)]
+\translator{Markus Kohm\and Jana Schubert\and Jens H\"uhne\and Karl Hagen}
+
+% Date version of the translated file: 2018-02-13
+
+\chapter[{Headers and Footers with \Package{scrlayer-scrpage}}]
+ {Headers\ChangedAt{v3.12}{\Package{scrlayer-scrpage}} and
+ Footers with \Package{scrlayer-scrpage}}
+\labelbase{scrlayer-scrpage}
+%
+\BeginIndexGroup
+\BeginIndex{Package}{scrlayer-scrpage}%
+\begin{Explain}
+ Until version 3.11b of \KOMAScript, the \Package{scrpage2}%
+ \IndexPackage[indexmain]{scrpage2}\important{\Package{scrpage2}} package was
+ the recommended way to customise headers and footers beyond the options
+ provided by the \PageStyle{headings}, \PageStyle{myheadings},
+ \PageStyle{plain}, and \PageStyle{empty} page styles of the \KOMAScript{}
+ classes.
+ \iffalse%
+ The still older \Package{scrpage}\IndexPackage{scrpage} package was marked
+ obsolete in 2001 and removed from the regular \KOMAScript{} distribution in
+ 2013.\par
+ \fi%
+ Since 2013, the \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ \important{\hyperref[cha:scrlayer]{\Package{scrlayer}}}%
+ \IndexPackage{scrlayer} package has been included as a basic module of
+ \KOMAScript. This package provides a layer model and a new page-style model
+ based upon it. However, the package's interface is almost too flexible and
+ consequently not easy for the average user to comprehend. For more
+ information about this interface, see \autoref{cha:scrlayer} in
+ \autoref{part:forExperts}. However, a few of the options that are actually
+ part of \Package{scrlayer}, and which are therefore taken up again in that
+ chapter, are also documented here because they are required to use
+ \Package{scrlayer-scrpage}.
+
+ Many users are already familiar with the commands from \Package{scrpage2}.
+ For this reason, \Package{scrlayer-scrpage} provides a method for
+ manipulating headers and footers which is based on \Package{scrlayer}, is
+ largely compatible with \Package{scrpage2}, and at the same time greatly
+ expands the user interface. If you are already familiar with
+ \Package{scrpage2} and refrain from direct calls to its internal commands,
+ you can usually use \Package{scrlayer-scrpage} as a drop-in replacement.
+ This also applies to most examples using \Package{scrpage2} found in
+ \LaTeX{} books or on the Internet.%
+ \iffalse%
+ \iffree{}{\par With the release of this book, \Package{scrlayer-scrpage}
+ for \KOMAScript{} is recommended as the tool of choice when it comes to
+ changing the predefined page styles. Using the obsolete package
+ \Package{scrpage2}\IndexPackage[indexmain]{scrpage2}%
+ \important{\Package{scrpage2}} is now deprecated. Therefore, the
+ commands for this outdated package are no longer part of this book. If
+ you encounter older documents that still use \Package{scrpage2},
+ consider switching to \Package{scrlayer-scrpage}. Notwithstanding, this
+ chapter does contain some hints for using \Package{scrpage2}.}%
+ \fi
+\end{Explain}
+
+In addition to \Package{scrlayer-scrpage}\iffree{ or \Package{scrpage2}}{},
+you could also use \Package{fancyhdr}\IndexPackage{fancyhdr} (see
+\cite{package:fancyhdr}) to configure the headers and footers of pages.
+However, this package has no support for several \KOMAScript{} features,
+for example the element scheme (see \DescRef{\LabelBase.cmd.setkomafont},
+\DescRef{\LabelBase.cmd.addtokomafont}, and
+\DescRef{\LabelBase.cmd.usekomafont} in \autoref{sec:maincls.textmarkup},
+\DescPageRef{maincls.cmd.setkomafont}) or the configurable numbering format
+for dynamic headers (see the \DescRef{maincls.option.numbers} option and,
+for example, \DescRef{\LabelBase.cmd.chaptermarkformat} in
+\autoref{sec:maincls.structure}, \DescPageRef{maincls.option.numbers} and
+\DescPageRef{maincls.cmd.chaptermarkformat}). Hence, if you are using a
+\KOMAScript{} class, you should use the new \Package{scrlayer-scrpage}
+package. \iffree{If you have problems, you can still use
+\Package{scrpage2}.}{\ignorespaces} Of course, you can also use
+\Package{scrlayer-scrpage} with other classes, such as the standard \LaTeX{}
+ones.
+
+Apart from the features described in this chapter, \Package{scrlayer-scrpage}
+provides several more functions that are likely only of interest to a very
+small number of users and therefore are described in
+\autoref{cha:scrlayer-scrpage-experts} of \autoref{part:forExperts}, starting
+at \autopageref{cha:scrlayer-scrpage-experts}. Nevertheless, if the options
+described in \autoref{part:forAuthors} are insufficient for your purposes, you
+should examine \autoref{cha:scrlayer-scrpage-experts}.
+
+\LoadCommonFile{options} % \section{Early or late Selection of Options}
+
+\LoadCommonFile{headfootheight} % \section{Header and Footer Height}
+
+\LoadCommonFile{textmarkup} % \section{Text Markup}
+
+\section{Using Predefined Page Styles}
+\seclabel{predefined.pagestyles}
+
+The easiest way to create custom headers and footers with
+\Package{scrlayer-scrpage} is to use one of the predefined page styles.
+%
+\iffalse % Umbruchoptimierung
+ This section introduces the page styles defined by the
+ \Package{scrlayer-scrpage} package as it loads. It also explains the
+ commands that you can use to create basic settings for these page
+ styles. You can find further options, commands, and background information
+ in the following sections and in
+ \autoref{sec:scrlayer-scrpage-experts.pagestyle.pairs} in
+ \autoref{part:forExperts}.%
+\fi
+
+\begin{Declaration}
+ \PageStyle{scrheadings}%
+ \PageStyle{plain.scrheadings}
+\end{Declaration}
+The \Package{scrlayer-scrpage} package provides two page styles that you can
+reconfigure to your liking. The first page style is
+\PageStyle{scrheadings}\important{\PageStyle{scrheadings}}, which is intended
+as a page style with running heads. Its defaults are similar to the page style
+\PageStyle{headings}\IndexPagestyle{headings} of the standard \LaTeX{} or
+\KOMAScript{} classes. You can configure exactly what appears in the header or
+footer with the commands and options described below.
+
+The second page style is \PageStyle{plain.scrheadings}%
+\important{\PageStyle{plain.scrheadings}}, which is intended to be a style
+with no running head. Its defaults resemble those of the
+\PageStyle{plain}\IndexPagestyle{plain} page style of the standard or
+\KOMAScript{} classes. You can configure exactly what appears in the header or
+footer with the commands and options described below.
+
+You could, of course, configure \PageStyle{scrheadings} to be a page style
+without a running head and \PageStyle{plain.scrheadings} to be a page style
+with a running head. It is, however, advisable to adhere to the conventions
+mentioned above. The two page styles mutually influence one another. Once you
+apply one of these page styles, \PageStyle{scrheadings} will become accessible
+as \PageStyle{headings}\important{\PageStyle{headings}}%
+\IndexPagestyle{headings} and the page style \PageStyle{plain.scrheadings}
+will become accessible as \PageStyle{plain}\important{\PageStyle{plain}}%
+\IndexPagestyle{plain}. Thus, if you use a class or package that automatically
+switches between \PageStyle{headings} and \PageStyle{plain}, you only need to
+select \PageStyle{scrheadings} or \PageStyle{plain.scrheadings} once. Direct
+patches to the corresponding classes or packages are not necessary. This pair
+of page styles can thus serve as a drop-in replacement for
+\PageStyle{headings} and \PageStyle{plain}. If you need more such pairs,
+please refer to \autoref{sec:scrlayer-scrpage-experts.pagestyle.pairs} in
+\autoref{part:forExperts}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{lehead}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{cehead}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{rehead}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{lohead}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{cohead}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{rohead}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}
+\end{Declaration}
+You can set the contents of the header for the
+\DescRef{\LabelBase.pagestyle.plain.scrheadings} and
+\DescRef{\LabelBase.pagestyle.scrheadings} page styles with these commands.
+The optional argument sets the content of an element of the
+\DescRef{\LabelBase.pagestyle.plain.scrheadings} page style, while the
+mandatory argument sets the content of the corresponding element of the
+\DescRef{\LabelBase.pagestyle.scrheadings} page style.
+
+The contents of even\,---\,or left-hand\,---\,pages\textnote{left-hand pages}
+can be set with \Macro{lehead}, \Macro{cehead}, and \Macro{rehead}. The
+``\texttt{e}'' appearing as the second letter of the commands' names stands
+for ``\emph{even}''.
+
+The contents of odd\,---\,or right-hand\,---\,pages\textnote{right-hand pages}
+can be set with \Macro{lohead}, \Macro{cohead}, and \Macro{rohead}. The
+``\texttt{o}'' appearing as the second letter of the commands' names stands
+for ``\emph{odd}''.
+
+Note\textnote{Attention!} that in one-sided printing, only right-hand pages
+exist, and \LaTeX{} designates these as odd pages regardless of their page
+number.
+
+Each header consists of a left-aligned\textnote{left aligned} element that can
+be set with \Macro{lehead} or \Macro{lohead}. The ``\texttt{l}'' appearing as
+the first letter of the commands' names stands for ``\emph{left aligned}''.
+
+Similarly, each header has a centred\textnote{centred} element that can be set
+with \Macro{cehead} or \Macro{cohead}. The ``\texttt{c}'' appearing as the
+first letter of the command' names stands for ``\emph{centred}''.
+
+Likewise, each header has a right-aligned\textnote{right aligned} element that
+can be set with \Macro{rehead} or \Macro{rohead}. The ``\texttt{r}'' appearing
+as the first letter of the commands' names stands for ``\emph{right
+aligned}''.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{pagehead}\LabelFontElement{pagehead}%
+\BeginIndex{FontElement}{pageheadfoot}\LabelFontElement{pageheadfoot}%
+These elements do not have individual font attributes that you can
+change using the commands \DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} (see \autoref{sec:maincls.textmarkup},
+\DescPageRef{maincls.cmd.setkomafont}). Instead, they use an element named
+\FontElement{pagehead}. Before this element is applied, the
+\FontElement{pageheadfoot} element will also be applied. See
+\autoref{tab:scrlayer-scrpage.fontelements} for the defaults of these
+elements.%
+\EndIndexGroup
+
+The meaning of each command for headers in two-sided printing is illustrated
+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){%
+ \color{ImageRed}%
+ \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){%
+ \color{ImageBlue}%
+ \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){%
+ \color{ImageGreen}%
+ \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){%
+ \color{ImageBlue}%
+ \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){%
+ \color{ImageRed}%
+ \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){%
+ \color{ImageGreen}%
+ \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
+ \color{ImageBlue}%
+ \put(.5\textwidth,0){\makebox(0,\baselineskip)[c]{\Macro{ihead}}}%
+ \color{ImageGreen}%
+ \put(.5\textwidth,-5mm){\makebox(0,\baselineskip)[c]{\Macro{chead}}}
+ \color{ImageRed}%
+ \put(.5\textwidth,-10mm){\makebox(0,\baselineskip)[c]{\Macro{ohead}}}
+ \put(\dimexpr.5\textwidth-2em,.5\baselineskip){%
+ \color{ImageBlue}%
+ \put(0,0){\line(-1,0){1.5em}}%
+ \put(-1.5em,0){\vector(0,1){5mm}}%
+ \color{ImageGreen}%
+ \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}}
+ \color{ImageRed}%
+ \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){%
+ \color{ImageBlue}%
+ \put(0,0){\line(1,0){1.5em}}%
+ \put(1.5em,0){\vector(0,1){5mm}}%
+ \color{ImageGreen}%
+ \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}}
+ \color{ImageRed}%
+ \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 for setting the page header]%
+ {The meaning of the commands for setting the contents of page headers
+ shown on a two-page schematic}
+ \label{fig:scrlayer-scrpage.head}
+\end{figure}
+%
+\begin{Example}
+ Suppose you're writing a short article and you want the author's name to
+ appear on the left side of the page and the article's title to appear
+ right. You can write, for example:
+\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 in the
+ footer, while the header remains empty!
+
+ The explanation is simple: The \Class{scrartcl} class, like the default
+ \Class{article} class, switches to the \PageStyle{plain} page style for the
+ page which contains the title. After the command
+ \DescRef{maincls.cmd.pagestyle}\PParameter{scrheadings} in the preamble of
+ our example, this actually refers to the
+ \DescRef{\LabelBase.pagestyle.plain.scrheadings} page style. The default for
+ this page style when using a \KOMAScript{} class is an empty page header and
+ a page number in the footer. In the example, the optional arguments of
+ \Macro{lohead} and \Macro{rohead} are omitted, so the
+ \DescRef{\LabelBase.pagestyle.plain.scrheadings} page style remains
+ unchanged and the result for the first page is actually correct.
+
+ Now add enough text to the example after \DescRef{maincls.cmd.maketitle}
+ so that a second page is printed. You can simply add
+ \Macro{usepackage}\PParameter{lipsum}\IndexPackage{lipsum} to the document
+ preamble and \Macro{lipsum}\IndexCmd{lipsum} below
+ \DescRef{maincls.cmd.maketitle}. You will see that the header of the second
+ page now contains the author and the document title as we wanted.
+
+ For comparison, you should also add the optional argument to
+ \Macro{lohead} and \Macro{rohead}. Change the example as follows:
+\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 have a header on the first page just above the title itself.
+ That is because you have reconfigured page style
+ \DescRef{\LabelBase.pagestyle.plain.scrheadings} with the two optional
+ arguments. As you probably appreciate, it would be better to leave this page
+ style unchanged, as a running head above the document title is rather
+ annoying.
+
+ By the way, as an alternative to configuring
+ \DescRef{\LabelBase.pagestyle.plain.scrheadings} you could, if you were
+ using a \KOMAScript{} class, have changed the page style for pages that
+ contain title headers. See \DescRef{maincls.cmd.titlepagestyle}%
+ \important{\DescRef{maincls.cmd.titlepagestyle}}%
+ \IndexCmd{titlepagestyle} in \autoref{sec:maincls.pagestyle},
+ \DescPageRef{maincls.cmd.titlepagestyle}.
+\end{Example}
+
+Note\textnote{Attention!} that you should never put a section
+heading or section number directly into the header using one of these
+commands. Because of the asynchronous way that \TeX{} lays out and outputs
+pages, doing so can easily result in the wrong number or heading text in the
+running head. Instead you should use the mark mechanism, ideally in
+conjunction with the procedures explained in the next section.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{lehead*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{cehead*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{rehead*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{lohead*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{cohead*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{rohead*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}
+\end{Declaration}
+The starred versions\ChangedAt{v3.14}{\Package{scrlayer-scrpage}} of the
+previously described commands differ from the ordinary versions only if you
+omit the optional argument \PName{plain.scrheadings content}. In this case,
+the version without the star does not change the contents of
+\DescRef{\LabelBase.pagestyle.plain.scrheadings}. The starred version, on the
+other hand, uses the mandatory argument \PName{scrheading content}
+for \DescRef{\LabelBase.pagestyle.plain.scrheadings} as well. So if both
+arguments should be the same, you can simply use the starred version with only
+the mandatory argument.%
+
+\begin{Example}
+ You can shorten the previous example using the starred versions of
+ \DescRef{\LabelBase.cmd.lohead} and \DescRef{\LabelBase.cmd.rohead}:
+\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}%
+\end{Example}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{lefoot}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{cefoot}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{refoot}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{lofoot}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{cofoot}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{rofoot}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}
+\end{Declaration}
+You can define the contents of the footer for
+\DescRef{\LabelBase.pagestyle.scrheadings} and
+\DescRef{\LabelBase.pagestyle.plain.scrheadings} with these commands. The
+optional argument defines the content of an element of
+\DescRef{\LabelBase.pagestyle.plain.scrheadings}, while the mandatory argument
+sets the content of the corresponding element of
+\DescRef{\LabelBase.pagestyle.scrheadings}.
+
+The contents of even\,---\,or left-hand\,---\,pages\textnote{left-hand page}
+are set with \Macro{lefoot}, \Macro{cefoot}, and \Macro{refoot}. The
+``\texttt{e}'' appearing as the second letter of the commands' names stands
+for ``\emph{even}''.
+
+The contents of odd\,---\,or right-hand\,---\,pages\textnote{right-hand page}
+are set with \Macro{lofoot}, \Macro{cofoot}, and \Macro{rofoot}. The
+``\texttt{o}'' appearing as the second letter of the commands' names stands
+for ``\emph{odd}''.
+
+Note\textnote{Attention!} that in one-sided printing, only right-hand pages
+exist, and \LaTeX{} designates these as odd pages regardless of their page
+number.
+
+Each footer consists of a left-aligned\textnote{left aligned} element that can
+be set with \Macro{lefoot} or \Macro{lofoot}. The ``\texttt{l}'' appearing as
+the first letter of the commands' names stands for ``\emph{left aligned}''.
+
+Similarly, each footer has a centred\textnote{centred} element that can be set
+with \Macro{cefoot} or \Macro{cofoot}. The ``\texttt{c}'' in the first letter
+of the command' names stands for ``\emph{centred}''.
+
+Likewise, each footer has a right-aligned\textnote{right aligned} element that
+can be set with \Macro{refoot} or \Macro{rofoot}. The ``\texttt{r}'' in the
+first letter of the commands' names stands for ``\emph{right aligned}''.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{pagefoot}\LabelFontElement{pagefoot}%
+\BeginIndex{FontElement}{pageheadfoot}\LabelFontElement[foot]{pageheadfoot}%
+However, these elements do not have individual font attributes that can be
+changed with the \DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:maincls.textmarkup}, \DescPageRef{maincls.cmd.setkomafont}).
+Instead, they use an element named
+\FontElement{pagefoot}\important{\FontElement{pagefoot}}. Before this element
+is applied, the font element
+\FontElement{pageheadfoot}\important{\FontElement{pageheadfoot}} is also
+applied. See \autoref{tab:scrlayer-scrpage.fontelements} for the defaults of
+the fonts of these elements.%
+\EndIndexGroup
+
+The meaning of each command for footers in two-sided printing is illustrated
+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){%
+ \color{ImageRed}%
+ \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){%
+ \color{ImageBlue}%
+ \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){%
+ \color{ImageGreen}%
+ \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){%
+ \color{ImageBlue}%
+ \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){%
+ \color{ImageRed}%
+ \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){%
+ \color{ImageGreen}%
+ \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
+ \color{ImageBlue}%
+ \put(.5\textwidth,15mm){\makebox(0,\baselineskip)[c]{\Macro{ifoot}}}%
+ \color{ImageGreen}%
+ \put(.5\textwidth,20mm){\makebox(0,\baselineskip)[c]{\Macro{cfoot}}}
+ \color{ImageRed}%
+ \put(.5\textwidth,25mm){\makebox(0,\baselineskip)[c]{\Macro{ofoot}}}
+ \put(\dimexpr.5\textwidth-2em,.5\baselineskip){%
+ \color{ImageBlue}%
+ \put(0,15mm){\line(-1,0){1.5em}}%
+ \put(-1.5em,15mm){\vector(0,-1){5mm}}%
+ \color{ImageGreen}%
+ \put(0,20mm){\line(-1,0){\dimexpr .25\textwidth-2em\relax}}%
+ \put(-\dimexpr .25\textwidth-2em\relax,20mm){\vector(0,-1){10mm}}%
+ \color{ImageRed}%
+ \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){%
+ \color{ImageBlue}%
+ \put(0,15mm){\line(1,0){1.5em}}%
+ \put(1.5em,15mm){\vector(0,-1){5mm}}%
+ \color{ImageGreen}%
+ \put(0,20mm){\line(1,0){\dimexpr .25\textwidth-2em\relax}}%
+ \put(\dimexpr .25\textwidth-2em\relax,20mm){\vector(0,-1){10mm}}%
+ \color{ImageRed}%
+ \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 for setting the page footer]%
+ {The meaning of the commands for setting the contents of page
+ footers shown on a two-page schematic}%
+ \label{fig:scrlayer-scrpage.foot}
+\end{figure}
+%
+\begin{Example}
+ Let's return to the example of the short article. Let's say you want to
+ specify the publisher in the left side of the footer. You would change the
+ example above to:
+\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.
+ The reason is the same as in the example with
+ \DescRef{\LabelBase.cmd.lohead} above. And the solution for getting the
+ publisher on the first page is similar:
+\begin{lstcode}
+ \lofoot[Smart Alec Publishing]
+ {Smart Alec Publishing}
+\end{lstcode}
+ Now you decide\textnote{font change}\important{\FontElement{pageheadfoot}}%
+ \IndexFontElement{pageheadfoot} that the header and footer should use an
+ upright but smaller font in place of the default slanted font:
+\begin{lstcode}
+ \setkomafont{pageheadfoot}{\small}
+\end{lstcode}
+ In addition, the header, but not the footer, should be bold:
+\begin{lstcode}
+ \setkomafont{pagehead}{\bfseries}
+\end{lstcode}
+ It is important\textnote{Attention!} that this command does not occur until
+ after \Package{scrpage-scrlayer} has been loaded because the \KOMAScript{}
+ class defines \DescRef{\LabelBase.fontelement.pagehead} as an alias for
+ \DescRef{\LabelBase.fontelement.pageheadfoot}. Only by loading
+ \Package{scrpage-scrlayer} will \DescRef{\LabelBase.fontelement.pagehead}
+ become an element independent of
+ \DescRef{\LabelBase.fontelement.pageheadfoot}.
+
+ Now add one more \Macro{lipsum} and the
+ \Option{twoside}\IndexOption{twoside}\important{\Option{twoside}} option
+ when loading \Class{scrartcl}. First of all, you will see the page number
+ moves from the centre to the outer margin of the page footer, due to the
+ changed defaults of \DescRef{\LabelBase.pagestyle.scrheadings} and
+ \DescRef{\LabelBase.pagestyle.plain.scrheadings} for two-sided printing with
+ a \KOMAScript{} class.
+
+ Simultaneously, the author, document title, and publisher will vanish from
+ page~2. They only appear on page~3. That's because we've only used
+ commands for odd pages. You can recognise this by the ``\texttt{o}'' in the
+ second position of the command names.
+
+ Now, we could simply copy those commands and replace the ``\texttt{o}'' with
+ an ``\texttt{e}'' to define the contents of \emph{even} pages. But with
+ two-sided printing, it makes more sense to use mirror-inverted elements,
+ i.\,e. the left element of an even page should become the right element of
+ the odd page and visa versa. To achieve this, we also replace the first
+ letter ``\texttt{l}'' with ``\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}
+%
+Since it is a bit cumbersome to define left and right pages separately in
+cases such as the previous example, a simpler solution for this common case is
+introduced below.
+
+Allow me once again an important note:\textnote{Attention!} you should
+never put a section heading or section number directly into the footer using
+one of these commands. Because of the asynchronous way that \TeX{} lays out and
+outputs pages, doing so can easily result in the wrong number or heading text
+in the running head. Instead you should use the mark mechanism, ideally in
+conjunction with the procedures explained in the next section.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{lefoot*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{cefoot*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{refoot*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{lofoot*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{cofoot*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{rofoot*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}
+\end{Declaration}
+The starred versions\ChangedAt{v3.14}{\Package{scrlayer-scrpage}} of the
+previously described commands differ only if you omit the optional argument
+\OParameter{plain.scrheadings content}. In this case, the version without the
+star does not change the contents of
+\DescRef{\LabelBase.pagestyle.plain.scrheadings}. The starred version, on the
+other hand, uses the mandatory argument \PName{scrheading content} for
+\DescRef{\LabelBase.pagestyle.plain.scrheadings} as well. So if both arguments
+should be the same, you can simply use the starred version with just the
+mandatory argument.%
+
+\begin{Example}
+ You can shorten the previous example using the star versions of
+ \DescRef{\LabelBase.cmd.lofoot} and \DescRef{\LabelBase.cmd.refoot}:
+\begin{lstcode}
+ \documentclass[twoside]{scrartcl}
+ \usepackage{scrlayer-scrpage}
+ \lohead{John Doe}
+ \rohead{Page style with \KOMAScript}
+ \lofoot*{Smart Alec Publishing}
+ \rehead{John Doe}
+ \lohead{Page style with \KOMAScript}
+ \refoot*{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}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ohead}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{chead}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{ihead}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{ofoot}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{cfoot}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{ifoot}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}
+\end{Declaration}
+To configure the headers and footers for two-sided printing with the
+previously described commands, you would have to configure the left and right
+sides separately from one another. In most cases, however, the left and right
+sides are more or less symmetrical. An item that appears on the left of an
+even page should appear on the right of an odd page and vice versa. Centred
+elements are usually centred on both sides.
+
+To simplify the definition of such symmetric page styles,
+\Package{scrlayer-scrpage} has shortcuts. The \Macro{ohead} command
+corresponds to a call to both \DescRef{\LabelBase.cmd.lehead} and
+\DescRef{\LabelBase.cmd.rohead}. The \Macro{chead} command corresponds to a
+call to both \DescRef{\LabelBase.cmd.cehead} and
+\DescRef{\LabelBase.cmd.cohead}. And the \Macro{ihead} command corresponds to
+a call to both \DescRef{\LabelBase.cmd.rehead} and
+\DescRef{\LabelBase.cmd.lohead}. The same applies to the equivalent commands
+for the page footer. An outline of these relationships can also be found in
+\autoref{fig:scrlayer-scrpage.head} on \autopageref{fig:scrlayer-scrpage.head}
+and \autoref{fig:scrlayer-scrpage.foot} on
+\autopageref{fig:scrlayer-scrpage.foot}.
+%
+\begin{Example}
+ You can simplify the previous example 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}
+\iffalse%
+ As you can see, you can use half the number of commands but get the same
+ result. %
+\fi%
+\end{Example}%
+Because one-sided printing treats all pages as odd pages, these commands are
+synonymous with the corresponding right-side commands when in one-sided mode.
+Therefore in most cases you will only need these six commands instead of the
+twelve described before.
+
+Allow me once again an important note:\textnote{Attention!} you should never
+put a section heading or section number directly into the footer using one of
+these commands. Because of the asynchronous way that \TeX{} lays out and
+outputs pages, doing so can easily result in the wrong number or heading text
+in the running head. Instead you should use the mark mechanism, ideally in
+conjunction with the procedures explained in the next section.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ohead*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{chead*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{ihead*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{ofoot*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{cfoot*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}%
+ \Macro{ifoot*}\OParameter{plain.scrheadings content}%
+ \Parameter{scrheadings content}
+\end{Declaration}
+The previously described commands also have starred
+versions\ChangedAt{v3.14}{\Package{scrlayer-scrpage}} that differ only if you
+omit the optional argument \OParameter{plain.scrheadings content}. In this
+case, the version without a star does not change the content of
+\DescRef{\LabelBase.pagestyle.plain.scrheadings}. The version with the star,
+on the other hand, also uses the mandatory argument \PName{scrheadings
+content} for \DescRef{\LabelBase.pagestyle.plain.scrheadings}. So if both
+arguments should be the same, you can simply use the starred version with only
+the mandatory argument.%
+
+\begin{Example}
+ You can shorten the previous example using the star version of
+ \DescRef{\LabelBase.cmd.ifoot}:
+\begin{lstcode}
+ \documentclass[twoside]{scrartcl}
+ \usepackage{scrlayer-scrpage}
+ \ihead{John Doe}
+ \ohead{Page style with \KOMAScript}
+ \ifoot*{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}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{pagestyleset}{setting}
+\end{Declaration}
+\BeginIndex{Option}{pagestyleset~=KOMA-Script}%
+\BeginIndex{Option}{pagestyleset~=standard}%
+The examples above refer several times to the default settings of the page
+styles \DescRef{\LabelBase.pagestyle.scrheadings}\IndexPagestyle{scrheadings}
+and \DescRef{\LabelBase.pagestyle.plain.scrheadings}%
+\IndexPagestyle{plain.scrheadings}. In fact, \Package{scrlayer-scrpage}
+currently provides two different defaults for these page styles. You can
+select them manually with the \Option{pagestyleset} option.
+
+The
+\PValue{KOMA-Script}\important{\OptionValue{pagestyleset}{KOMA-Script}}
+\PName{setting} selects the defaults, which are also set automatically if the
+option is not specified and a \KOMAScript{} class is detected. In two-sided
+printing, \DescRef{\LabelBase.pagestyle.scrheadings} uses outer-aligned
+running heads in the header and outer-aligned page numbers in the footer.
+In one-sided printing, the running head will be printed in the
+middle of the header and the page number in the middle of the footer. Upper-
+and lower-case letters are used in the automatic running heads as they
+actually appear in the sectioning headings. This corresponds to the
+\OptionValueRef{\LabelBase}{markcase}{used}\IndexOption{markcase~=used}%
+\important{\OptionValueRef{\LabelBase}{markcase}{used}} option. The
+\DescRef{\LabelBase.pagestyle.plain.scrheadings} page style has no running
+heads, but the page numbers are printed in the same manner.
+
+However, if the \hyperref[cha:scrlttr2]{\Class{scrlttr2}}%
+\important{\hyperref[cha:scrlttr2]{\Class{scrlttr2}}}%
+\IndexClass{scrlttr2} class is detected, the default settings are based on the
+page styles of that class. See \autoref{sec:scrlttr2.pagestyle},
+\autopageref{sec:scrlttr2.pagestyle}.
+
+The
+\PValue{standard}\important{\OptionValue{pagestyleset}{standard}}
+\PName{setting} selects defaults that match the page styles of the standard
+classes. This is also activated automatically if the option has not been
+specified and no \KOMAScript{} class is detected. In this case, for two-sided
+printing \DescRef{\LabelBase.pagestyle.scrheadings} uses running heads
+inner-aligned in the header, and the page numbers will be printed\,---\,also
+in the header\,---\,outer-aligned. One-sided printing uses the same settings,
+but since only right-hand pages exist in this mode, the running head will
+always be left-aligned and the page number right-aligned. The automatic
+running heads\,---\,despite considerable typographic objections\,---\,are
+converted to capital letters, as they would be with
+\OptionValueRef{\LabelBase}{markcase}{upper}\IndexOption{markcase~=upper}%
+\important{\OptionValueRef{\LabelBase}{markcase}{upper}}. In one-sided
+printing, the \DescRef{\LabelBase.pagestyle.plain.scrheadings} page style
+differs considerably from \DescRef{\LabelBase.pagestyle.scrheadings} because
+the page number is printed in the middle of the footer.
+Unlike\textnote{\KOMAScript{} vs. standard classes} the \PageStyle{plain} page
+style in the standard classes,
+\DescRef{\LabelBase.pagestyle.plain.scrheadings} omits the page number in
+two-sided printing. The standard classes print the page number in the middle
+of the footer, which does not match the rest of the page styles in two-sided
+printing.
+\iffalse % Umbruchkorrekturtext
+ If you want the page number back
+\begin{lstcode}
+ \cfoot[\pagemark]{}
+\end{lstcode}
+ will restore it. %
+\fi%
+The running head is omitted in \DescRef{\LabelBase.pagestyle.plain.scrheadings}.
+
+Note\textnote{Attention!} that using this option activates the
+\DescRef{\LabelBase.pagestyle.scrheadings}\IndexPagestyle{scrheadings}%
+\important{\DescRef{\LabelBase.pagestyle.scrheadings}} page style.
+\iffalse% Umbruchkorrektur
+ This also applies if you use the option within the document.%
+\fi
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{pagestylemanipulation} % \section{Manipulating Defined Page Styles}
+
+\begin{Declaration}
+ \OptionVName{headwidth}{width\textup{:}offset\textup{:}offset}%
+ \OptionVName{footwidth}{width\textup{:}offset\textup{:}offset}
+\end{Declaration}
+By default the header\Index{header>width} and footer\Index{footer>width} are
+as wide as the type area. However, you can change this using these
+\KOMAScript{} options. The value \PName{width} is the desired width of the
+header or footer. The \PName{offset} defines how far the header or footer
+should be moved towards the outer\,---\,in one-sided printing to the
+right\,---\,margin. All three\ChangedAt{v3.14}{\Package{scrlayer-scrpage}}
+values are optional and can be omitted. If you omit a value, you can also omit
+the associated colon to the left of it. If only one \PName{offset} is
+specified, it is used for both odd and even pages. Otherwise, the first
+\PName{offset} is used for odd and the second \PName{offset} for even pages in
+two-sided mode. If you only use one value without a colon, this will be the
+\PName{width}.
+
+For both the \PName{width} and the \PName{offset} you can use any valid length
+value, \LaTeX{} length, \TeX{} dimension, or \TeX{} skip. In addition, you can
+use an \eTeX{} dimension expression with the basic arithmetic operations
+\texttt{+}, \texttt{-}, \texttt{*}, \texttt{/}, and parentheses. See
+\cite[section~3.5]{manual:eTeX} for more information on such expressions. See
+\autoref{sec:scrlayer-scrpage.options} for more information on using a
+\LaTeX{} length as an option value. The \PName{width} can also be one of the
+symbolic values shown in \autoref{tab:scrlayer-scrpage.symbolic.values}.
+
+By default the header and the footer are the width of the text area. The
+default \PName{offset} depends on the selected \PName{width}. One-sided
+printing typically uses half the difference between \PName{width} and the
+width of the text area. This centres the header horizontally above the text
+area. Two-sided printing, on the other hand, uses only a third of the
+difference between \PName{width} and the width of the text area. However, if
+\PName{width} is the width of the whole text area and the marginal note
+column, the default \PName{offset} will be zero. If this is too complicated
+for you, you should simply specify the desired \PName{offset} yourself.
+%
+\begin{table}
+ \centering
+ \caption[Symbolic values for the \Option{headwidth} and \Option{footwidth}
+ options]{Available symbolic values for the \PName{width} value of options
+ \Option{headwidth} and \Option{footwidth}}
+ \label{tab:scrlayer-scrpage.symbolic.values}
+ \begin{desctabular}
+ \entry{\PValue{foot}}{%
+ the current width of the footer%
+ }%
+ \entry{\PValue{footbotline}}{%
+ the current length of the horizontal line below the footer%
+ }%
+ \entry{\PValue{footsepline}}{%
+ the current length of the horizontal line above the footer%
+ } \entry{\PValue{head}}{%
+ the current width of the header%
+ }%
+ \entry{\PValue{headsepline}}{%
+ the current length of the horizontal line below the header%
+ }%
+ \entry{\PValue{headtopline}}{%
+ the current length of the horizontal line above the header%
+ }%
+ \entry{\PValue{marginpar}}{%
+ the width of the marginal note column including the distance
+ between the text area and the marginal note column%
+ }%
+ \entry{\PValue{page}}{%
+ the width of the page taking into account any binding correction defined
+ with the help of the \Package{typearea} package (see the
+ \DescRef{typearea.option.BCOR} option in
+ \autoref{sec:typearea.typearea}, \DescPageRef{typearea.option.BCOR})%
+ }%
+ \entry{\PValue{paper}}{%
+ the width of the paper without considering any binding correction%
+ }%
+ \entry{\PValue{text}}{%
+ the width of the text area%
+ }%
+ \entry{\PValue{textwithmarginpar}}{%
+ the width of the text area including the marginal note column and
+ the distance between the two (Note: only in this case is
+ the default for \PName{offset} zero)%
+ }%
+ \end{desctabular}
+\end{table}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{headtopline}{thickness\textup{:}length}%
+ \OptionVName{headsepline}{thickness\textup{:}length}%
+ \OptionVName{footsepline}{thickness\textup{:}length}%
+ \OptionVName{footbotline}{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 one separation line below the header
+and another above the footer, and you can only switch these lines on or off.
+But the \Package{scrlayer-scrpage} package also lets you place lines above the
+header and below the footer. And for all four lines, you can not only switch
+them on an off but also configure their \PName{length} and \PName{thickness}.
+
+Both values are optional. If you omit the \PName{thickness}, a default value
+of 0.4\Unit{pt} is used, producing a so-called \emph{hairline}. If you omit
+the \PName{length}, the width of the header or footer will be used. If you
+omit both, you can also omit the colon. If you use only one value without
+colon, this is the \PName{thickness}.
+
+Of course, the \PName{length} can be not just shorter than the current width
+of the header or footer but also longer. See also the options
+\DescRef{\LabelBase.option.ilines}\IndexOption{ilines}%
+\important{\DescRef{\LabelBase.option.ilines},
+\DescRef{\LabelBase.option.clines}, \DescRef{\LabelBase.option.olines}},
+\DescRef{\LabelBase.option.clines}\IndexOption{clines} and
+\DescRef{\LabelBase.option.olines}\IndexOption{olines} later in this section.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{headtopline}\LabelFontElement{headtopline}%
+\BeginIndex{FontElement}{headsepline}\LabelFontElement{headsepline}%
+\BeginIndex{FontElement}{footsepline}\LabelFontElement{footsepline}%
+\BeginIndex{FontElement}{footbotline}\LabelFontElement{footbotline}%
+In addition to the length and thickness, you can also change the colour of the
+lines. Initially the colour depends on the colour of the header or footer. In
+addition to this, however, the settings of the corresponding elements
+\important[i]{\FontElement{headtopline}\\
+ \FontElement{headsepline}\\
+ \FontElement{footsepline}\\
+ \FontElement{footbotline}} \FontElement{headtopline},
+\FontElement{headsepline}, \FontElement{footsepline} and
+\FontElement{footbotline} are applied. You can
+change these using the \DescRef{\LabelBase.cmd.setkomafont} or
+\DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:maincls.textmarkup}, \DescPageRef{maincls.cmd.setkomafont}).
+By default these elements are empty, so they do not change the current font or
+colour. Font changes at this point, unlike colour changes, make little sense
+anyway and are therefore not recommended for these elements.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{plainheadtopline}{simple switch}%
+ \OptionVName{plainheadsepline}{simple switch}%
+ \OptionVName{plainfootsepline}{simple switch}%
+ \OptionVName{plainfootbotline}{simple switch}
+\end{Declaration}
+You can use these options to apply the settings for the lines to the
+\PageStyle{plain} page style. You can find the available values for
+\PName{simple switch} in \autoref{tab:truefalseswitch} on
+\autopageref{tab:truefalseswitch}. If one of these options 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.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{ilines}%
+ \Option{clines}%
+ \Option{olines}
+\end{Declaration}
+As previously explained, dividing lines for the header or footer can be longer
+or shorter than the width of the header or footer respectively. But the
+question remains how these lines are aligned. By default, all lines are
+aligned to the left margin in one-sided printing and to the inner margin in
+two-sided printing. This corresponds to using the \Option{ilines} option.
+Alternatively, you can use the \Option{clines} option to centre the lines with
+respect to the width of the header or footer, or the \Option{olines} option to
+align them to the outer (or right) margin.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrlayer.tex b/macros/latex/contrib/koma-script/source-doc/english/scrlayer.tex
new file mode 100644
index 0000000000..5488fe2cb0
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrlayer.tex
@@ -0,0 +1,1596 @@
+% ======================================================================
+% scrlayer.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-2018
+%
+% 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: 2018-12-15 15:01:34 +0100 (Sat, 15 Dec 2018) $
+ KOMA-Script guide (chapter:scrlayer)]
+
+\translator{Markus Kohm\and Karl Hagen}
+
+% Date of the translated German file: 2018-12-15
+
+\chapter[{Defining Layers and Page Styles with \Package{scrlayer}}]
+ {Defining\ChangedAt{v3.12}{\Package{scrlayer}} Layers and Page Styles with
+ \Package{scrlayer}}
+\labelbase{scrlayer}
+
+\BeginIndexGroup
+\BeginIndex{Package}{scrlayer}%
+\BeginIndex{}{layer}%
+Most users of graphics software are already familiar with the layer model for
+a page. Such a model is rather alien to \LaTeX{} itself, but some packages,
+like \Package{eso-pic} or \Package{textpos}, provide a kind of
+background or foreground layer. \Package{scrlayer} is another package that
+provides such background and foreground layers, but unlike the packages
+mentioned above, these layers are part of the page style. As a result, you can
+switch between different layers simply by switching the page style.
+
+To do so, the package also supports a low-level interface for defining page
+styles that are based on a stack or list of layers, for adding layers to such
+a layer stack, either at the top or the bottom, or before or after a specific
+layer, and for removing individual layers and duplicates from a stack. In a
+nutshell, the page style interface of \Package{scrlayer} provides commands to
+define page styles based on a stack of layers and to manage those stacks.
+
+Nevertheless, using the layers directly is recommended for advanced users
+only. Interfaces for beginners and average users are provided by additional
+packages that in turn load \Package{scrlayer}. See
+\autoref{cha:scrlayer-scrpage} in \autoref{part:forAuthors} of this
+\iffree{manual}{book}.
+
+
+\LoadCommonFile{options} % \section{Early or Late Selection of Options}
+
+\section{Generic Information}
+\seclabel{generic.information}
+
+The package needs some generic information about the class being used. Class
+authors can help \Package{scrlayer} by providing the appropriate information.
+Otherwise the package will try to determine this information for itself. This
+works, for example, for the standard and the \KOMAScript{} classes. It may
+work with other classes, or it may fail in whole or in part.
+
+This section describes some of the information that class authors can provide.
+Normally, users should not have to worry about it.
+
+\begin{Declaration}
+ \Macro{if@chapter}\ \PName{then code}\ \textMacro{else}\ %
+ \PName{else code}\ \textMacro{fi}%
+\end{Declaration}
+If \Macro{if@chapter} is defined and corresponds to
+\Macro{iftrue}\IndexCmd{iftrue}, \Package{scrlayer} takes the chapter level
+into account when, for example, processing the
+\DescRef{\LabelBase.option.automark} option. If it is defined but is not
+\Macro{iftrue}, \Package{scrlayer} handles only the
+\DescRef{maincls.cmd.part}, \DescRef{maincls.cmd.section},
+\DescRef{maincls.cmd.subsection}, \Macro{sub\dots subsection},
+\DescRef{maincls.cmd.paragraph}, \DescRef{maincls.cmd.subparagraph},
+\Macro{sub\dots subparagraph} sectioning units. If the macro is undefined,
+\Package{scrlayer} searches for \DescRef{maincls.cmd.chapter}. If
+\DescRef{maincls.cmd.chapter} is defined and does not correspond to
+\Macro{relax}, \Package{scrlayer} defines \Macro{if@chapter} to
+\Macro{iftrue}. Otherwise \Macro{if@chapter} becomes
+\Macro{iffalse}\IndexCmd{iffalse}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{if@mainmatter}\ \PName{then code}\ %
+ \textMacro{else}\ \PName{else code}\ \textMacro{fi}%
+\end{Declaration}
+Classes like \Class{book} or \Class{scrbook} provide
+\DescRef{maincls.cmd.frontmatter}\IndexCmd{frontmatter},
+\DescRef{maincls.cmd.mainmatter}\IndexCmd{mainmatter}, and
+\DescRef{maincls.cmd.backmatter}\IndexCmd{backmatter} to switch between the
+front, main, and end parts of a book. Typically, these classes also use
+\Macro{if@mainmatter} internally to decide whether the current text is part of
+the main body of the document or not. Classes like \Class{report} and
+\Class{article} have no \DescRef{maincls.cmd.frontmatter},
+\DescRef{maincls.cmd.mainmatter}, or \DescRef{maincls.cmd.backmatter} and
+therefore also lack \Macro{if@mainmatter}.
+
+It is easier for \Package{scrlayer} to avoid constantly testing for the
+existence of these commands to decide whether to work in the main matter or
+not, and instead to use \Macro{if@mainmatter}\IndexCmd{iftrue} with classes
+like \Class{report} and \Class{article}. So if \Macro{if@mainmatter} is not
+defined, \Package{scrlayer} defines it as a synonym for \Macro{iftrue}.
+
+Some classes, however, define \DescRef{maincls.cmd.frontmatter},
+\DescRef{maincls.cmd.mainmatter}, or \DescRef{maincls.cmd.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
+\DescRef{maincls.cmd.frontmatter}, \DescRef{maincls.cmd.mainmatter}, and
+\DescRef{maincls.cmd.backmatter} to set \Macro{if@mainmatter} properly.
+However, if there are other, comparable commands for switching between
+different document parts. \Package{scrlayer} will not recognize them, does not
+test for them, and therefore cannot extend them appropriately. In this case,
+\Package{scrlayer} needs help of the class author to set \Macro{if@mainmatter}
+correctly.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DeclareSectionNumberDepth}\Parameter{level name}%
+ \Parameter{level depth}
+\end{Declaration}
+Generally each section level is assigned an integer number indicating its
+depth in the document structure. \LaTeX{} needs this to manage the hierarchy
+of the section levels. But normally these values are known only to the
+particular class that defines the section commands. This class then uses the
+appropriate numbers inside the corresponding commands.
+
+The \Package{scrlayer} package also needs information about the section
+hierarchy. With the help of \Macro{DeclareSectionNumberDepth}, you can map the
+name of a heading level to a corresponding \PName{level depth}. For example,
+for the standard \Class{book} class, the \PName{level name}s would be
+\PValue{part}, \PValue{chapter}, \PValue{section}, \PValue{subsection},
+\PValue{subsubsection}, \PValue{paragraph}, and \PValue{subparagraph}, and the
+corresponding \PName{level depth}s would be -1, 0, 1, 2, 3, 4, and 5.
+
+The \Package{scrlayer} package tries to determine the \PName{level depth}s on
+its own while loading and again during \Macro{begin}\PParameter{document}. But
+if this fails, for example because you use completely different sectioning
+commands, you can define the relationship explicitly with
+\Macro{DeclareSectionNumberDepth}.%
+\EndIndexGroup
+
+
+\section{Declaring Layers}
+\seclabel{layers}
+
+A layer is an abstract model of a page. Unlike a real, physical sheet of
+paper, this page is completely transparent. Typically, multiple layers are
+stacked atop one another and opaque material on one layer hides material on
+the layers below. The stack of layers is then merged to form the physical
+page. The \Package{scrlayer} package provides two such stacks for each page: a
+background stack and a foreground stack. The background stack is printed
+beneath the normal page content, while the foreground stack is printed above
+it. The normal page content is therefore a kind of a dividing layer between
+the two layer stacks.
+
+A layer has several attributes that can be understood as answers to some basic
+questions:
+\iffree{\begin{description}}{%
+ \begingroup
+ \RedeclareSectionCommand[beforeskip=.5\baselineskip plus .25\baselineskip
+ minus .1\baselineskip]{paragraph}%
+ \renewcommand*\item[4][]{\paragraph*{#3{#4}#1}}%
+ }%
+\item[Does the layer belong to the foreground or the background?]%
+ \leavevmode\textnote{foreground or background}\hskip 0pt
+ Background layers are output before the normal content of the page.
+ Therefore they appear behind or beneath the normal content of the page.
+ Foreground layers are then output after the normal content. Therefore they
+ appear on top of the normal content of the page. By default, a layer is both
+ a background layer \emph{and} a foreground layer and therefore is printed
+ twice. Usually it makes sense to limit the layer explicitly to either the
+ foreground or the background.
+\item[What is the position of the layer?]%
+ \leavevmode\textnote{horizontal and vertical position}\hskip 0pt
+ To answer this question, there are attributes to define the layer's
+ horizontal and vertical position.
+\item[How big is the layer?\textnote{horizontal and vertical size}]%
+ As with the position, there are also attributes to define the width and
+ height of a layer. Thus a layer can be smaller or larger than the paper
+ and it can be placed at different positions on the paper.
+\item[How are the horizontal and vertical positions measured?]%
+ \leavevmode\textnote{alignment}\hskip 0pt
+ This question is answered by the alignment attribute. The horizontal
+ position can be measured from the left edge of the paper to the left edge of
+ the layer, to the centre of the layer, to the right edge of the layer.
+ Similarly, the vertical position can be measured from the top edge of the
+ paper to the top edge of the layer, the centre of the layer, or the bottom
+ edge of the layer.
+\item[Is the layer intended for text or picture output?]%
+ \leavevmode\textnote{text or picture}\hskip 0pt
+ This question is closely related to the position. For example, users often
+ expect the origin for a picture to be at the lower left corner of the layer.
+ But this would not be suitable for text output. Therefore the origin of a
+ text layer is the height of a standard text line below the top left corner
+ of the layer. Picture layers, on the other hand, create a
+ \Environment{picture}\IndexEnv{picture} environment in which additional
+ positioning commands are available.
+\item[Should the layer be printed on left or right pages?]%
+ \leavevmode\textnote{left or right page}\hskip 0pt
+ By default a layer will be printed on all pages. Note that \LaTeX{} treats
+ even pages as left-side pages and odd pages as right-side pages, but in
+ one-sided printing, only right-hand pages exist regardless of the page
+ number.
+\item[Should the layer be printed in one-sided or two-sided mode?]%
+ \leavevmode\textnote{one-sided or two-sided}\hskip 0pt
+ By default a layer will be printed in both one-sided and two-sided
+ printing. Nonetheless, a layer that is restricted to even pages will never
+ be printed in one-sided printing and therefore is not a one-sided layer.
+\item[Should the layer be printed on float pages or normal pages?]%
+ \leavevmode\textnote{float page or normal page}\hskip 0pt
+ \LaTeX{} produces float pages for objects from environments like tables or
+ figures if they are allowed to appear on a page without normal page contents
+ (see option \PValue{p} for \Environment{figure} or \Environment{table}). In
+ effect, the entire page is allowed to float within the document. Normal
+ pages in this sense are all pages that are not float pages. Normal pages can
+ also contain floats at the top, in the middle, or at the bottom of the page.
+ Very large floats can give the impression of being page floats, while in
+ reality they are floating environments placed at the top of a normal page.
+\item[What are the contents of the layer?]%
+ \leavevmode\textnote{contents}\hskip 0pt
+ The corresponding attribute simply contains what should be printed whenever
+ the layer is output.
+\iffree{\end{description}}{%
+ \endgroup\par\bigskip\noindent\ignorespaces
+}%
+These eight questions immediately give rise to a number of attributes. Later
+\iffree{in this guide}, we will describe additional attributes. However, they
+are only defined for convenience and can be expressed by a combination of
+these 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}
+These commands can be used to define layers. The \PName{layer name} must be
+fully expandable and should expand to ASCII letters only. Some additional
+characters are accepted, but their use is only recommended for advanced users.
+
+The \Macro{DeclareLayer} command 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 attributes specified in the \PName{option list}. An
+\PName{option} can be either a key or a key followed by an equal sign and
+a value. Multiple options are separated by commas. To use a comma or a white
+space within the value of an option, you must put the value inside curly
+brackets. See \autoref{tab:scrlayer.layerkeys} for more information on keys,
+values, and the corresponding attributes.
+
+Unlike \Macro{DeclareLayer}, \Macro{DeclareNewLayer} reports an error if a
+layer with the same \PName{layer name} already exists. This prevents the user
+from accidentally using the same \PName{layer name} more than once. This
+is especially useful when classes or packages also define layers internally.
+
+In contrast, \Macro{ProvideLayer} only defines a layer if there is no layer
+with the same name already. If the name is in use for another layer, the new
+definition is ignored. Therefore this command has the meaning, \emph{define
+ the layer only if it does not already exist.}
+
+If you want to redefine an existing layer, you can use \Macro{RedeclareLayer}
+or \Macro{ModifyLayer}. With \Macro{RedeclareLayer}, the layer is first reset
+to the default settings and then completely redefined via the specified
+options list. In contrast, \Macro{ModifyLayer} does not reset the layer.
+Only those attributes which are explicitly set in the \PName{option list} will
+be changed. Applying either command to a previously undefined \PName{layer
+ name} results in an error.
+
+\begin{desclist}
+ \desccaption{%
+ Options for defining page layers and the meaning of the
+ corresponding layer attribute\label{tab:scrlayer.layerkeys}%
+ }{%
+ Options for defining layers (\emph{continued})%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addcontents}{Code}}{%
+ The specified \PName{code} will be appended to the current value of the
+ \Option{contents} attribute, so the new content will appear at the end of
+ the existing content. For more information about the handling of
+ \PName{code} see the \Option{contents} option.%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addheight}{additional height}}{%
+ The current value of the \Option{height} attribute will be increased by
+ the value of this option. You can use the same kind of values as for
+ \Option{height}.%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addhoffset}{additional horizontal offset}}{%
+ The current value of the \Option{hoffset} attribute will be increased by
+ the value of this option. You can use the same kind of values as for
+ \Option{hoffset}.%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addvoffset}{additional vertical offset}}{%
+ The current value of the \Option{voffset} attribute will be increased by
+ the value of this option. You can use the same kind of values as for
+ \Option{voffset}.%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addwidth}{additional width}}{%
+ The current value of the \Option{width} attribute will be increased by
+ the value of this option. You can use the same kind of values as for
+ \Option{width}.%
+ }%
+ \nentry{\KOption{align}{\PName{alignment characters}}}{%
+ The \PName{alignment characters} define the desired alignment of the
+ layer. Each \PName{alignment character} determines how the \PName{length}
+ of either the \Option{hoffset} or the \Option{voffset} option is
+ interpreted. Multiple \PName{alignment character}s can be used together
+ (without spaces or commas) and are evaluated in the order they occur.
+ Macros are not permitted in the value of the option. Valid
+ \PName{alignment character}s are:
+ \begin{description}
+ \item[\PValue{b} --] align the layer at its bottom edge; the value of
+ \Option{voffset} is the distance from the top edge of the paper to the
+ bottom 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}%
+ }%
+ \entry{\KOption{area}{%
+ \Parameter{hoffset}\Parameter{voffset}%
+ \Parameter{width}\Parameter{height}}}{%
+ This composite option sets the primary attributes
+ \OptionValue{hoffset}{horizontal offset}, \OptionValue{voffset}{vertical
+ offset}, \OptionValue{width}{width}, \OptionValue{height}{height}.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{backandforeground}}{%
+ This option removes the restriction of a layer to the foreground or the
+ background. In general, this option makes little sense, but it is provided
+ for the sake of a complete user interface. This option does not expect or
+ allow a value.%
+ }%
+ \entry{\Option{background}}{%
+ This option displays the layer in the background only. The default is to
+ display layers in both the background and the foreground. This option does
+ not expect or allow a value.%
+ }%
+ \entry{\Option{bottommargin}}{%
+ This composite option sets the primary attributes \Option{hoffset},
+ \Option{voffset}, \Option{width}, \Option{height}, and \Option{align} so
+ that the layer spans the paper horizontally from the left edge to the
+ right and vertically from immediately beneath the footer to the bottom
+ edge of the paper.%
+ }%
+ \entry{\KOption{clone}{\PName{layer name}}}{%
+ This composite 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}. See the notes on the \PName{layer name} at the beginning of the
+ explanation for \Macro{DeclareLayer}. The layer to be cloned must also
+ already exist.%
+ }%
+ \entry{\KOption{contents}{\PName{code}}}{%
+ The specified \PName{code} will be expanded whenever the layer is printed.
+ This \PName{code} defines what you see for the layer. No tests are made to
+ see if the code is valid. Errors in the \PName{code} can therefore lead to
+ multiple error messages on each page that prints the layer.%
+ }%
+ \entry{\Option{evenpage}}{%
+ This option causes the layer to appear on even pages only, unlike the
+ default, where a layer will appear on both even and odd pages. Since even
+ pages only appear in two-sided printing, this option implies
+ \Option{twoside}. This option does not expect or allow a value.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{everypage}}{%
+ This option is a combination of \Option{oddorevenpage} and
+ \Option{floatornonfloatpage}. This option does not expect or allow a
+ value.%
+ }%
+ \entry{\Option{everyside}}{%
+ This option removes any restriction of the layer to one-sided or two-sided
+ printing. This is the default setting. This option does not expect or
+ allow a value.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{floatornonfloatpage}}{%
+ This option removes any restriction of the layer to float or non-float
+ pages and restores the default setting. This option does not expect or
+ allow a value.%
+ }%
+ \entry{\Option{floatpage}}{%
+ This option restricts the layer to appearing on float pages only. The
+ default setting is for layers to appear on both float and non-float pages.
+ This option does not expect or allow a value.%
+ }%
+ \entry{\Option{foot}}{%
+ This composite option sets \Option{hoffset}, \Option{voffset},
+ \Option{width}, \Option{height}, and \Option{align} so that the layer
+ spans the page footer over the width of the text area. This option does
+ not expect or allow a value.%
+ }%
+ \entry{\Option{footskip}}{%
+ This composite option sets \Option{hoffset}, \Option{voffset},
+ \Option{width}, \Option{height}, and \Option{align} so that the layer
+ spans the vertical distance between the text area and the page footer over
+ the width of the text area. Note, however, that although the height of
+ this area depends on \Length{footskip}, it is not the same. This option
+ does not expect or allow a value.%
+ }%
+ \entry{\Option{foreground}}{%
+ This option displays the layer in the foreground only. The default is to
+ display layers in both the background and the foreground. The option does
+ not expect or allow a value.%
+ }%
+ \entry{\Option{head}}{%
+ This composite option sets \Option{hoffset}, \Option{voffset},
+ \Option{width}, \Option{height}, and \Option{align} so that the layer
+ spans the vertical area of the page header for the width of the text area.
+ The height corresponds to the length \Length{headheight}. This option does
+ not expect or allow a value.%
+ }%
+ \entry{\Option{headsep}}{%
+ This composite option sets \Option{hoffset}, \Option{voffset},
+ \Option{width}, \Option{height}, and \Option{align} so that the layer
+ spans the vertical distance between the page header and the text area for
+ the width of the text area. The height corresponds to the length
+ \Length{headsep}. This option does not expect or allow a value.%
+ }%
+ \entry{\KOption{height}{\PName{length}}}{%
+ Sets the height of the layer. Note that the \PName{length} can be a
+ \LaTeX{} length declared with \Macro{newlength}, a \TeX{} length declared
+ with \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}.%
+ }%
+ \entry{\KOption{hoffset}{\PName{length}}}{%
+ Sets the distance of the layer from the left edge of the paper. How the
+ distance is measured depends on the \Option{align} option. See the
+ \Option{height} option for more information about valid expressions for
+ \PName{length}.%
+ }%
+ \entry{\Option{innermargin}}{%
+ This composite option sets \Option{hoffset}, \Option{voffset},
+ \Option{width}, \Option{height}, and \Option{align} so that the layer
+ spans the inner margin, from the edge of the page to the edge of the text
+ area and from the top to the bottom of the page. In one-sided printing,
+ the inner margin corresponds to the left margin. This option does not
+ expect or allow a value.%
+ }%
+ \entry{\Option{leftmargin}}{%
+ This composite option sets \Option{hoffset}, \Option{voffset},
+ \Option{width}, \Option{height}, and \Option{align} so that the layer
+ spans the left margin, from the left edge of the paper to the left edge of
+ the text area and from the top of the paper to the bottom. This option
+ does not expect or allow a value.%
+ }%
+ \entry{\ChangedAt{v3.19}{\Package{scrlayer}}%
+ \OptionVName{mode}{mode}}{%
+ This primary option defines the \PName{mode} in which the layer's content
+ is output. The default is \OptionValue{mode}{text}. The baseline of the
+ first text line is placed the height of one standard text line below the
+ top edge of the layer, so the text is usually neatly aligned with the top
+ of the layer. In \PValue{picture} \PName{mode}, on the other hand, the
+ layer spans a \Environment{picture} environment with the origin at the
+ bottom left corner of the layer. The \PValue{raw} \PName{mode} is also
+ also defined. By default it corresponds to \PValue{text} \PName{mode}.
+ Changing\textnote{Attention!} the \PName{mode} of a layer usually results
+ the contents shifting. Furthermore, the \PValue{picture} \PName{mode}
+ provides additional commands that result in errors with another
+ \PName{mode}. Therefore it usually makes no sense to change the
+ \PName{mode} of a layer after its initial declaration!%
+ }%
+ \entry{\Option{nonfloatpage}}{%
+ This option restricts the layer to pages that are not float pages. The
+ default is for the layer to appear on both float and non-float pages. This
+ option does not expect or allow a value.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{oddorevenpage}}{%
+ This option removes any restriction of the layer to odd or even pages,
+ restoring the default behaviour that the layer should appear on both odd
+ and even pages. The option does not expect or allow a value.%
+ }%
+ \entry{\Option{oddpage}}{%
+ This option restricts the layer to odd pages only. The default is for
+ layers to appear on both odd pages and on even pages. Note that in
+ one-sided printing, all pages are odd, regardless of the page number. This
+ option does not expect or allow a value.%
+ }%
+ \entry{\Option{oneside}}{%
+ This option restricts the layer to one-sided printing only. The default is
+ for layers to appear in both one-sided and two-sided printing. This option
+ does not expect or allow a value.%
+ }%
+ \entry{\Option{outermargin}}{%
+ The composite option sets \Option{hoffset}, \Option{voffset},
+ \Option{width}, \Option{height}, and \Option{align} so that the layer
+ spans the outer margin of the page, from the top to the bottom of the
+ paper. The outer margin corresponds to the right margin in one-sided
+ printing. This option does not expect or allow a value.%
+ }%
+ \entry{\Option{page}}{%
+ This composite option sets \Option{hoffset}, \Option{voffset},
+ \Option{width}, \Option{height}, and \Option{align} so that the layer
+ spans the the whole paper. This option does not expect or allow a value.%
+ }%
+ \entry{\ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{pretocontents}{code}}{%
+ The value of \PName{code} is prefixed the current value of the
+ \Option{contents} attribute, so the new content will appear before the
+ existing content. For more information about the handling of \PName{code},
+ see the \Option{contents} option.%
+ }%
+ \entry{\Option{rightmargin}}{%
+ This composite option sets \Option{hoffset}, \Option{voffset},
+ \Option{width}, \Option{height}, and \Option{align} so that the layer
+ spans the right margin, from the right edge of the text area to the right
+ edge of the paper and from the top to the bottom edge of the paper. This
+ option does not expect or allow a value.%
+ }%
+ \entry{\Option{textarea}}{%
+ This composite option sets \Option{hoffset}, \Option{voffset},
+ \Option{width}, \Option{height}, and \Option{align} so that the layer
+ spans the entire text area. This option does not expect or allow a value.%
+ }%
+ \entry{\Option{topmargin}}{%
+ This composite option sets \Option{hoffset}, \Option{voffset},
+ \Option{width}, \Option{height}, and \Option{align} so that the layer
+ spans the vertical distance between the top edge of the paper to the
+ header for the entire width of the paper. This option does not expect or
+ allow a value.%
+ }%
+ \entry{\Option{twoside}}{%
+ This option restricts the layer to two-sided printing. The default is for
+ layers to appear in both one-sided and two-sided printing. This option
+ does not expect or allow a value.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{unrestricted}}{%
+ This option removes all output restrictions. It is a combination of
+ \Option{backandforeground}, \Option{everyside}, and
+ \Option{floatornonfloatpage}. This option does not expect or allow a
+ value.%
+ }%
+ \entry{\KOption{voffset}{\PName{length}}}{%
+ Sets the distance of the layer from the top of the paper. How the distance
+ is measured depends on the \Option{align} option. See the \Option{height}
+ option for more information about valid expressions for \PName{length}.%
+ }%
+ \entry{\KOption{width}{\PName{length}}}{%
+ Sets the width of the layer. See the \Option{height} option for more
+ information about valid expressions for \PName{length}.%
+ }%
+\end{desclist}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{layerhalign}%
+ \Macro{layervalign}%
+ \Macro{layerxoffset}%
+ \Macro{layeryoffset}%
+ \Macro{layerwidth}%
+ \Macro{layerheight}%
+\end{Declaration}
+These commands are only valid in the \PName{code} specified with
+\Option{contents}, \Option{addcontents}, or \Option{pretocontents}. In this
+case, they contain the layer's actual alignment, position, and dimensions that
+will be used for the output. However, this is not necessarily the actual
+dimensions of the layer's contents, e.\,g., if the contents are oversized or
+do not fill the layer completely.
+
+The primary layer attribute \PValue{align} is mapped to
+\Macro{layerhalign}\ChangedAt{v3.19}{\Package{scrlayer}} and
+\Macro{layervalign}. The horizontal values \PValue{l} and \PValue{r} are
+copied to \Macro{layerhalign}. The vertical values \PValue{t} and \PValue{b}
+are copied to \Macro{layervalign}. The value \PValue{c}, which is both
+horizontal and vertical, is copied to both commands. If there are several
+conflicting values for \PValue{align}, only the last one is copied. Thus the
+resulting \Macro{layerhalign} is either \PValue{l}, \PValue{c}, or \PValue{r},
+and the resulting \Macro{layervalign} is either \PValue{t}, \PValue{c}, or
+\PValue{b}.
+
+Redefining\textnote{Attention!} these instructions to change the values stored
+in them is not permitted, as it would lead to unpredictable results.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{LenToUnit}\Parameter{length}
+\end{Declaration}
+This\ChangedAt{v3.19}{\Package{scrlayer}} command originally came from
+\Package{eso-pic}\IndexPackage{eso-pic}~2.0f. It converts lengths into
+multiples of \Length{unit length} and can therefore be used everywhere \LaTeX{}
+expects \Environment{picture} coordinates or \Length{unit length}-dependent
+values. For more information, see \cite{package:eso-pic} and the descriptions
+of \Macro{putUR}, \Macro{putLL}, and \Macro{putLR} below. If the command is
+already defined, e.\,g., by loading \Package{eso-pic} before
+\Package{scrlayer}, the package does not define it again.%
+\iffalse% Umbruchkorrekturtext
+\par
+It should be noted at this point that using package
+\Package{picture}\IndexPackage{picture}\textnote{\Package{picture}} (see
+\cite{package:picture}) supersedes \Macro{LenToUnit} more or less. The package
+extends environment \Environment{picture} and the picture commands so that you
+can use \LaTeX{} lengths directly for coordinates.%
+\fi
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{putUL}\Parameter{content}%
+ \Macro{putUR}\Parameter{content}%
+ \Macro{putLL}\Parameter{content}%
+ \Macro{putLR}\Parameter{content}%
+ \Macro{putC}\Parameter{content}
+\end{Declaration}
+You\ChangedAt{v3.19}{\Package{scrlayer}} can use these commands inside the
+value of \PValue{contents} layer option if the layer is declared with
+\OptionValue{mode}{picture}. In this case, \Macro{putUL} places the
+\PName{content} relative to the upper left corner of the layer and therefore
+is the same as
+\lstinline[breaklines=false]|\put(0,\LenToUnit{\layerheight})|. \Macro{putUR}
+places the \PName{content} relative to the upper right corner of the layer and
+therefore is the same as
+\lstinline[breaklines=false]
+|\put(\LenToUnit{\layerwidth},\LenToUnit{\layerheight})|.
+\Macro{putLL} places the \PName{content} relative to the lower left corner of
+the layer and therefore is the same as
+\lstinline[breaklines=false]|\put(0,0)|. \Macro{putLR} places the
+\PName{content} relative to the lower right corner and therefore is the same
+as \lstinline[breaklines=false]|\put(\LenToUnit{\layerwidth},0)|. Last but
+not least, \Macro{putC} places the \PName{content} relative to the centre of
+the layer.%
+\begin{Example}
+ You want to determine exactly how accurately
+ \OptionValueRef{typearea}{DIV}{classic} sets the height of the text area to
+ the width of the page size. You declare a layer that both borders the text
+ area and places a circle with a diameter of the paper width in the centre of
+ the text area:
+\begin{lstcode}
+ \documentclass[DIV=classic]{scrartcl}
+ \usepackage{pict2e}
+ \usepackage{scrlayer}
+ \DeclareNewLayer[%
+ textarea,background,mode=picture,
+ contents={%
+ \putLL{\line(1,0){\LenToUnit{\layerwidth}}}%
+ \putLR{\line(0,1){\LenToUnit{\layerheight}}}%
+ \putUR{\line(-1,0){\LenToUnit{\layerwidth}}}%
+ \putUL{\line(0,-1){\LenToUnit{\layerheight}}}%
+ \putC{\circle{\LenToUnit{\paperwidth}}}%
+ }
+ ]{showtextarea}
+ \DeclareNewPageStyleByLayers{test}{showtextarea}
+ \pagestyle{test}
+ \begin{document}
+ \null
+ \end{document}
+\end{lstcode}
+ You will notice that \Package{typearea}'s mapping to an integer \PName{DIV}
+ value is very accurate in this example.
+\end{Example}
+Incidentally, you will find more information about late medieval book-page
+canon sketched in the example in \autoref{sec:typearea.circleConstruction},
+\autopageref{sec:typearea.circleConstruction}.
+
+The \Macro{DeclareNewPageStyleByLayers}\IndexCmd{DeclareNewPageStyleByLayers}
+command just used in the example defines a new page style using the newly
+declared layer. It will be explained in \autoref{sec:scrlayer.pagestyles},
+\DescPageRef{scrlayer.cmd.DeclareNewPageStyleByLayers}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{GetLayerContents}\Parameter{layer~name}
+\end{Declaration}
+This\ChangedAt{v3.16}{\Package{scrlayer}} command returns the whole contents
+of a layer. It is important to note\textnote{Attention!} that using this
+command inside the \PName{code} of the layer attributes \Option{contents},
+\Option{addcontents}, or \Option{pretocontents} can result in
+infinite recursion when referencing the contents of the current layer. You
+are responsible for avoiding such situations!%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{IfLayerExists}\Parameter{layer~name}
+ \Parameter{then-code}\Parameter{else-code}
+\end{Declaration}
+This command can be used to execute code depending on whether or not a layer
+with the specified \PName{layer name} exists. If the layer exists, the
+\PName{then-code} will be executed; otherwise, the \PName{else-code} will be
+executed. Note that the command cannot really test whether a layer exists.
+Instead it uses a heuristic which will never yield a false negative but which,
+in extreme cases, could yield a false positive.
+\iffalse% Umbruchvarianten
+Nevertheless, if the test yields a false positive, something has gone wrong.
+For example, this could indicate an incompatible package or that the user is
+doing something he or she should not.%
+\else
+False positives indicate a problem, such as the use of an incompatible package
+or a bad choice of internal macro names by the user.
+\fi
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DestroyLayer}\Parameter{layer~name}
+\end{Declaration}
+If a layer with the given \PName{layer name} exists, all macros belonging to
+it will be set to \Macro{relax}. In page styles already defined with
+\Package{scrlayer}, such destroyed layers are ignored. Destroyed layers can be
+redefined using \DescRef{\LabelBase.cmd.DeclareNewLayer} or
+\DescRef{\LabelBase.cmd.ProvideLayer}, but they can no longer be changed using
+\DescRef{\LabelBase.cmd.RedeclareLayer} or
+\DescRef{\LabelBase.cmd.ModifyLayer}.
+
+The command is intended to be used inside
+\DescRef{\LabelBase.cmd.scrlayerOnAutoRemoveInterface} (see
+\autoref{sec:scrlayer.enduserinterfaces},
+\DescPageRef{scrlayer.cmd.scrlayerOnAutoRemoveInterface})
+to remove layers defined using removable macros of an interface along with
+that interface.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{layercontentsmeasure}%
+\end{Declaration}
+The \Macro{layercontentsmeasure} command prints a ruler at each layer edge, of
+which the top and left one is labelled in centimetres and the right and bottom
+one in inches. This command is used internally if the
+\DescRef{\LabelBase.option.draft}\IndexOption{draft} option is enabled. The
+rulers are drawn behind the content of each layer. This command can also be
+used as exclusive content of a layer.%
+\EndIndexGroup
+
+
+\section{Declaring and Managing Page Styles}
+\seclabel{pagestyles}
+
+\BeginIndexGroup
+\BeginIndex{}{page>style}%
+We now understand how to define and manage layers, but so far we do not know
+how they are used. The possibly surprising answer is, with page styles. In
+\LaTeX{}, page styles usually define headers and footers of the page.
+
+The header and footer of odd or right-hand pages\textnote{even or odd page}
+are printed on pages with odd page numbers in two-sided printing or on all
+pages in one-sided printing. This is directly comparable to the layer
+options\important[i]{\Option{evenpage}\\\Option{oddpage}} \Option{oddpage} and
+\Option{evenpage}.
+
+The page header\textnote{header or footer} is output before the main page
+contents. The page footer is output after the main page contents. This
+corresponds directly to the layer
+options\important[i]{\Option{background}\\\Option{foreground}}
+\Option{background} and \Option{foreground}.
+
+Therefore it makes sense to define page styles as lists of layers. But instead
+of just the four options mentioned above, you can use all the properties
+explained in \autoref{sec:scrlayer.layers}, \autoref{tab:scrlayer.layerkeys},
+on \autopageref{tab:scrlayer.layerkeys}.
+
+As a result of these considerations, layer page
+styles\textnote{layer page style}\Index{page style>layer}%
+\Index{layer>page style}\Index{page>style} are one type of page style that
+\Package{scrlayer} provides. A layer page style consists of layers as well as
+several hooks. The layers have already been described in
+\autoref{sec:scrlayer.layers}. The hooks\Index[indexmain]{hooks}%
+\textnote{hooks} are points in the expansion or execution of page styles to
+which you can add code. Experienced users already know this concept from
+commands like \Macro{AtBeginDocument} (see \cite{latex:usrguide}) or
+\DescRef{scrlfile.cmd.BeforeClosingMainAux} (see
+\DescPageRef{scrlfile.cmd.BeforeClosingMainAux}).
+
+Page-style aliases are another type of page style which \Package{scrlayer}
+provides. A page-style alias is actually a different page style. In other
+words, the name of a page-style alias is an alternative name for another
+page-style alias or for a page style. As a result, manipulating a page-style
+alias results in manipulating the original page style. If the original page
+style is itself an alias, its manipulation again results in the manipulation
+of the alias's original page style, and so on until a real page style is
+finally changed. The term \emph{real page style}\textnote{real page style} is
+used to distinguish it from a page-style alias. All page styles that are not
+page-style aliases are real page styles. Aliases can be defined for all page
+styles, not just those defined with \Package{scrlayer}.
+
+\begin{Declaration}
+ \Macro{currentpagestyle}
+ \Macro{toplevelpagestyle}
+\end{Declaration}
+The \Package{scrlayer} package patches the \DescRef{maincls.cmd.pagestyle}
+command so that it sets \Macro{currentpagestyle} to the currently active page
+style. Note that \DescRef{maincls.cmd.thispagestyle} does not change
+\Macro{currentpagestyle}. If you use \DescRef{maincls.cmd.thispagestyle},
+however, \Macro{currentpagestyle} can change within the \LaTeX{} output
+routine. However, this change will only occur if \Macro{currentpagestyle} has
+been actively protected from expansion until the execution of the output
+routine.
+
+Note that the layer page styles described later in this section do not rely on
+this \DescRef{maincls.cmd.pagestyle} extension because they redefine
+\Macro{currentpagestyle} themselves. This patch was made so that other,
+non-\Package{scrlayer} page styles can use \Macro{currentpagestyle}.
+Additionally, \Macro{currentpagestyle} is empty after loading
+\Package{scrlayer} and before using \DescRef{maincls.cmd.pagestyle} for the
+first time. Therefore, when defining an end-user interface, you may find it
+useful to set the current page style to a default with an implicit
+\DescRef{maincls.cmd.pagestyle} statement.
+
+% Todo: New translation by Markus Kohm (please fix it!)
+For page-style aliases activated using \DescRef{maincls.cmd.pagestyle}
+\Macro{currentpagestyle} does not show the alternative name but the name of
+the real page style. You\ChangedAt{v3.16}{\Package{scrlayer}} can get the
+alternative name using \Macro{toplevelpagestyle}. However, it is not
+recommended to define page styles, that have different results depending on
+\Macro{toplevelpagestyle}, e.\,g., using \DescRef{scrbase.cmd.ifstr}. If you
+would activate such a page style using \DescRef{maincls.cmd.thispagestyle} you
+could get the wrong result.%
+% End of new translation.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeSelectAnyPageStyle}\Parameter{code}%
+ \Macro{AfterSelectAnyPageStyle}\Parameter{code}%
+\end{Declaration}
+The \Macro{BeforeSelectAnyPageStyle} command adds \PName{code} to the hook%
+\textnote{hook} that will be executed inside \DescRef{maincls.cmd.pagestyle},
+just before the page style is selected. Within the \PName{code}, you can use
+\texttt{\#1} as a place-holder for the argument of
+\DescRef{maincls.cmd.pagestyle}.
+
+The \Macro{AfterSelectAnyPageStyle} command works similarly, but the
+\PName{code} will be executed just after the page style has been selected and
+after \DescRef{\LabelBase.cmd.currentpagestyle} has been set to the name of
+the real page style.
+
+Note\textnote{Attention!} that the \PName{code} of both commands is executed
+only if a page style is selected with \DescRef{maincls.cmd.pagestyle} and not
+if it is chosen in a different way, e.\,g., using
+\DescRef{maincls.cmd.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 can use a group to limit the scope of the \PName{code}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DeclarePageStyleAlias}\Parameter{page~style~alias~name}
+ \Parameter{original~page~style~name}
+ \Macro{DeclareNewPageStyleAlias}\Parameter{page~style~alias~name}
+ \Parameter{original~page~style~name}
+ \Macro{ProvidePageStyleAlias}\Parameter{page~style~alias~name}
+ \Parameter{original~page~style~name}
+ \Macro{RedeclarePageStyleAlias}\Parameter{page~style~alias~name}
+ \Parameter{original page style name}
+\end{Declaration}
+\BeginIndex{}{page style>alias}%
+\BeginIndex{}{alias>page style}%
+These commands can be used to define a page style with name \PName{page style
+ alias name} that is simply an alias for an existing page style with the
+name \PName{original page style name}. If there is already a page style
+\PName{page style alias name}, using \Macro{DeclarePageStyleAlias} or
+\Macro{RedeclarePageStyleAlias} will destroy the alias before recreating it.
+
+\Macro{DeclareNewPageStyleAlias} will throw an error message if a page style
+\PName{page style alias name} has already been defined. It does not matter if
+the previously defined page style is a layer-page style, a page style alias,
+or another page style.
+
+\Macro{ProvidePageStyleAlias} will define the alias only if the
+\PName{page style alias name} page style has not been defined before. If the
+\PName{page style alias name} page style already exists, nothing will be done.
+
+\Macro{RedeclarePageStyleAlias} expects an existing
+\PName{page style alias name} page style. It will destroy that page style and
+afterwards define the alias. If the \PName{page style alias name} page style
+does not exist, you will get an error.%
+\iffree{\csname @tempswafalse\endcsname}{\csname @tempswatrue\endcsname}%
+\csname if@tempswa\endcsname% Umbruchkorrekturtext
+ \begin{Example}
+ Suppose you write a class and use the \PageStyle{chapter} page style for the
+ first page of each chapter. By default, this page style should match the
+ \PageStyle{plain} page style. Therefore, you can use the \Package{scrlayer}
+ package and use
+\begin{lstcode}
+ \DeclareNewPageStyleAlias{chapter}{plain}
+\end{lstcode}
+ to define the \PageStyle{chapter} page style as an alias for the
+ \PageStyle{plain} page style. If, on the other hand, you later decide that
+ the \PageStyle{chapter} plage style should correspond to the
+ \PageStyle{empty} page style, you can achieve this with:
+\begin{lstcode}
+ \RedeclarePageStyleAlias{chapter}{empty}
+\end{lstcode}%
+ \end{Example}%
+\fi
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DestroyPageStyleAlias}\Parameter{page~style~name}%
+\end{Declaration}
+\BeginIndex{}{page style>alias}%
+\BeginIndex{}{alias>page style}%
+This command renders the page style named \PName{page style name} undefined
+for \LaTeX{} if it is an alias for another page style. Afterwards, the page
+style can be newly defined with
+\DescRef{\LabelBase.cmd.DeclareNewPageStyleAlias} or
+\DescRef{\LabelBase.cmd.ProvidePageStyleAlias}.
+
+This command is intended to be used inside the argument code of
+\DescRef{\LabelBase.cmd.scrlayerOnAutoRemoveInterface} to remove page styles
+that have been declared as part of an end-user interface when removing this
+interface automatically.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{GetRealPageStyle}\Parameter{page~style~name}%
+\end{Declaration}
+\BeginIndex{}{page style>alias}%
+\BeginIndex{}{alias>page style}%
+This command will result in the (recursive) real page name of the page style
+if \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 is simply \PName{page style name}. The command is fully
+expandable and may be used, e.g., in the second argument of \Macro{edef}.%
+\EndIndexGroup
+
+
+\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{}{page style>layers}%
+\BeginIndex{}{layers>page style}%
+These commands declare a page style named \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\textnote{Attention!} that the \PName{page
+ style name} and the layer names in the \PName{layer list} must be fully
+expandable and should expand to letters. Several other characters are also
+accepted, but their use is recommended only for experienced users.
+
+The \PName{option list} is a comma-separated list of options in the form
+\texttt{\PName{key}=\PName{value}}. 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 hooks\Index{hooks}. See the introduction to
+this section for more general information about hooks. See
+\autoref{tab:scrlayer.pagestyle.hooks} for detailed information on specific
+hooks.
+
+\begin{desclist}
+ \desccaption{%
+ Hook options for page styles (in order of
+ execution)\label{tab:scrlayer.pagestyle.hooks}%
+ }{%
+ Hook options for page styles (\emph{continued})%
+ }%
+ \entry{\OptionVName{onselect}{code}}{%
+ The \PName{code} of this hook\Index{hook} is executed whenever the page
+ style is selected, for example with \DescRef{maincls.cmd.pagestyle}. Note
+ that \DescRef{maincls.cmd.thispagestyle} itself does not directly select a
+ page style. In this case, the page style is only activated within \LaTeX's
+ output routine.%
+ }%
+ \entry{\OptionVName{oninit}{code}}{%
+ The \PName{code} of this hook\Index{hook} is executed whenever the output
+ of the page style's layers is initialised. Note that this happens twice
+ for each page: once for background layers and once for foreground layers.%
+ }%
+ \entry{\OptionVName{ononeside}{code}}{%
+ The \PName{code} of this hook\Index{hook} is executed whenever the output
+ of the page style's layers in one-sided printing is initialised. Note that
+ this happens twice for each page: once for background layers and once for
+ foreground layers.%
+ }%
+ \entry{\OptionVName{ontwoside}{code}}{%
+ The \PName{code} of this hook\Index{hook} is executed whenever the output
+ of the page style's layers in two-sided printing is initialised. Note that
+ this happens twice for each page: once for background layers and once for
+ foreground layers.%
+ }%
+ \entry{\OptionVName{onoddpage}{code}}{%
+ The \PName{code} of this hook\Index{hook} is executed whenever the output
+ of the page style's layers on an odd page is initialised. Note that this
+ happens twice for each page: once for background layers and once for
+ foreground layers. Note also that in one-sided printing all pages are odd
+ pages, not just those with odd page numbers.%
+ }%
+ \entry{\OptionVName{onevenpage}{code}}{%
+ The \PName{code} of this hook\Index{hook} is executed whenever the output
+ of the page style's layers on an even page is initialised. Note that this
+ happens twice for each page: once for background layers and once for
+ foreground layers. Note also that in one-sided printing there are no even
+ pages. Instead, all pages are treated as odd pages, not just those with
+ odd page numbers.%
+ }%
+ \entry{\OptionVName{onfloatpage}{code}}{%
+ The \PName{code} of this hook\Index{hook} is executed whenever the output
+ of the page style's layers on a float page is initialised. Note that this
+ happens twice for each page: once for background layers and once for
+ foreground layers. Note also that float pages are only those pages with
+ one or more p-placed floating environments.%
+ }%
+ \entry{\OptionVName{onnonfloatpage}{code}}{%
+ The \PName{code} of this hook\Index{hook} is executed whenever the output
+ of the page style's layers on a non-float page is initialised. Note that
+ this happens twice for each page: once for background layers and once for
+ foreground layers. Note also that float pages are only the pages on which
+ one or more p-placed floating environments are output. Other pages may
+ well have t-, h-, or b-placed floating environments.%
+ }%
+ \entry{\OptionVName{onbackground}{code}}{%
+ The \PName{code} of this hook\Index{hook} is executed whenever the output
+ of the page style's background layers is initialised. Note that this
+ happens once each page.%
+ }%
+ \entry{\OptionVName{onforeground}{code}}{%
+ The \PName{code} of this hook\Index{hook} is executed whenever the output
+ of the page style's foreground layers is initialised. Note that this
+ happens once each page.%
+ }%
+\end{desclist}
+
+\iffalse% Umbruchvarianten
+ While the \Macro{DeclarePageStyleByLayers} command always defines the page
+ style, \Macro{DeclareNewPageStyleByLayers} generates an error message if a
+ page style with the same name already exists. Note\textnote{Attention!} that
+ the declaration of a page style that is already an alias for another page
+ style (see, for example, \Macro{DeclareAliasPageStyle} earlier in this
+ section) will redefine not the specified page style alias but the real page
+ style (see \DescRef{\LabelBase.cmd.GetRealPageStyle} earlier in this
+ section).%
+\else%
+ The \Macro{DeclarePageStyleByLayers} command defines the page style
+ regardless of whether a page style of \PName{page style name} already
+ exists. If necessary, the existing page style is completely
+ redefined. However, if a page style alias \PName{page style name} already
+ exists, the associated real page style, not the page style alias itself, is
+ redefined (see \DescRef{\LabelBase.cmd.GetRealPageStyle} earlier in this
+ section).
+
+ The \Macro{DeclareNewPageStyleByLayers} command differs if a page style of
+ the same name already exists. Regardless of whether it is a real or an alias
+ page style, an error will be reported in this case.
+\fi
+
+In contrast, \Macro{ProvidePageStyleByLayers} preserves the page style
+unchanged if a page style with name \PName{page style name} already exists. If
+no such page style exists, it is defined as in
+\Macro{DeclarePageStyleByLayers}.
+
+The \Macro{RedeclarePageStyleByLayers} in turn expects that a page style of
+of the name \PName{page style name} already exists and then redefines its real
+page style. However, if no page style of the specified name exists, an error
+message results.
+
+Also note the remarks below about the pseudo-page style
+\PageStyle{@everystyle@}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PageStyle{@everystyle@}%
+ \PageStyle{empty}
+\end{Declaration}
+\BeginIndex{}{page style>layers}%
+\BeginIndex{}{layers>page style}%
+The \Package{scrlayer} package defines two specific page styles worth noting.
+The first of these is \PageStyle{@everystyle@}%
+\important{\PageStyle{@everystyle@}}. This page style should never be used
+like a normal page style, for example with \DescRef{maincls.cmd.pagestyle} or
+\DescRef{maincls.cmd.thispagestyle}, or as the target of a page-style alias.
+Instead, the layers and hooks\Index{hooks} of this page style are used by all
+other layer page styles. The hooks of \PageStyle{@everystyle@} are placed in
+front of their respective hooks, and the layers in front of the respective
+layers, of the active page style.
+
+Thus adding a layer to the pseudo-page style \PageStyle{@everystyle@} or code
+to a hook of this page style is like adding a layer or hook code to all layer
+page styles, even the empty one. There's one crucial difference: commands that
+reference the layers of a page style which include
+\DescRef{\LabelBase.cmd.ForEachLayerOfPageStyle}, e.\,g., the commands
+\DescRef{\LabelBase.cmd.AddLayersToPageStyleBeforeLayer} or
+\DescRef{\LabelBase.cmd.AddLayersToPageStyleAfterLayer}, disregard the layers
+of the page style \PageStyle{@everystyle@} when applied to a different layer
+page style.
+
+The second, slightly different page style is \PageStyle{empty}. Normally the
+\LaTeX{} kernel defines the \PageStyle{empty} page style to have an empty
+header and footer. The \Package{scrlayer} package redefines this page style as
+a layerless page style. Nonetheless, you can use it like any other layer page
+style. The main advantage of the layer page style over the original page
+style from the \LaTeX{} kernel is that it also executes the hooks and layers
+of the psuedo-layer page style \PageStyle{@everystyle@}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{onpsselect}{code}%
+ \OptionVName{onpsinit}{code}%
+ \OptionVName{onpsoneside}{code}%
+ \OptionVName{onpstwoside}{code}%
+ \OptionVName{onpsoddpage}{code}%
+ \OptionVName{onpsevenpage}{code}%
+ \OptionVName{onpsfloatpage}{code}%
+ \OptionVName{onpsnonfloatpage}{code}%
+ \OptionVName{onpsbackground}{code}%
+ \OptionVName{onpsforeground}{code}
+\end{Declaration}
+\BeginIndex{}{page style>layers}%
+\BeginIndex{}{layers>page style}%
+There is also a \KOMAScript{} option for each of the hooks\Index{hooks} in
+\autoref{tab:scrlayer.pagestyle.hooks}%
+\iftrue
+. The names of the \KOMAScript{} options are similar to those for declaring
+page style layers, except that a ``\texttt{ps}'' is inserted after
+``\texttt{on}'' at the beginning of the name
+\else
+, into the names of which a ``\texttt{ps}'' is inserted
+\fi
+. The values of these \KOMAScript{} options are used as the initial values for
+the corresponding hooks. These initial values are then extended by all the
+values assigned to the corresponding hooks in the \PName{option list} of the
+declaration commands. You can remove the default with
+\DescRef{\LabelBase.cmd.ModifyLayerPageStyleOptions}, which is explained later
+in this section.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{singlespacing}{simple switch}
+\end{Declaration}
+If\ChangedAt{v3.24}{\Package{scrlayer}\and \Package{scrlayer-scrpage}} a
+document is printed with increased line spacing, e.\,g., using the
+\Package{setspace}\IndexPackage{setspace}\important{\Package{setspace}}
+package, it is often undesirable for the header and footer to be printed with
+this increased spacing. This is particularly true if the header and footer
+consist of only a single line. In this case you can use \KOMAScript{} option
+\Option{singlespacing}. However, the default\textnote{default} is
+\OptionValue{singlespacing}{false}! The option generally applies to all layer
+page styles. If you want single-spacing for only some page styles, use
+\OptionValue{oninit}{\Macro{linespread}\PParameter{1}\Macro{selectfont}} for
+those page styles.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{deactivatepagestylelayers}{simple switch}%
+ \Macro{ForEachLayerOfPageStyle}\Parameter{page style name}\Parameter{code}%
+ \Macro{ForEachLayerOfPageStyle*}\Parameter{page style name}\Parameter{code}
+\end{Declaration}
+\BeginIndex{}{page style>layers}%
+\BeginIndex{}{layers>page style}%
+As long as the \KOMAScript{} option \Option{deactivatepagestylelayers} is not
+enabled, the \Macro{ForEachLayerOfPageStyle} command can execute arbitrary
+\PName{code} for each layer of the page style named \PName{page style name}.
+Inside of \PName{code}, the place holder \PValue{\#1} serves as a
+reference to the name of the current layer.
+\begin{Example}
+ If you want to print the names of all layers of the \PValue{scrheadings}
+ page style as a comma-separated list, you can use:
+\begin{lstcode}
+ \let\commaatlist\empty
+ \ForEachLayerOfPageStyle{scrheadings}{%
+ \commaatlist#1\gdef\commaatlist{, }}
+\end{lstcode}
+\end{Example}
+In\textnote{Attention!} the example above, we had to use \Macro{gdef} instead
+of \Macro{def} because \Macro{ForEachLayerOfPageStyle} executes the
+\PName{code} inside a group to minimise side effects. However, \Macro{gdef}
+redefines \Macro{commaatlist} globally so the change will persist when the
+\PName{code} for the next layer is executed.
+
+Alternatively,\ChangedAt{v3.18}{\Package{scrlayer}} you can use \Macro{def}
+with the starred variant \Macro{ForEachLayerOfPageStyle*}. This form dispenses
+with the extra group when executing \PName{code}. However, the user then has
+to take make sure that the \PName{code} has no unwanted side effects. In
+particular, deactivating all layers using
+\OptionValue{deactivatepagestylelayers}{true} within \PName{code} would
+persist beyond the call to \Macro{ForEachLayerOfPageStyle*}.
+
+Various \Package{scrlayer} commands also use \Macro{ForEachLayerOfPageStyle}
+internally. Their behaviour can therefore also be changed using the
+\KOMAScript{} option \Option{deactivatepagestylelayers}. With this option,
+you can temporarily disable and thus hide all layers of all layer page
+styles.%
+\EndIndexGroup
+
+
+\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{}{page style>layers}%
+\BeginIndex{}{layers>page style}%
+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 is referenced by its
+\PName{page style name}. The layers are given by a comma-separated
+\PName{layer list}.
+
+Both the \Macro{AddLayersToPageStyle} and the
+\Macro{AddLayersAtEndOfPageStyle}\textnote{add at the end} commands insert the
+new layers at the bottom of the page style's layer list. Logically, the newly
+added layers lie above or in front of the old layers. Background layers, of
+course, still are logically behind the text layer and thus behind all
+foreground layers.
+
+In contrast, the \Macro{AddLayersAtBeginOfPageStyle}\textnote{add at the
+ beginning} command inserts the new layers at the top of the page style's
+layer list. The layers are separately inserted to the top of the list in the
+same order they appear in the \PName{layer list} parameter. This means that
+the last layer in the \PName{layer list} parameter will become the first, and
+thus the lowest, layer of the page style.
+
+\iffalse% Umbruchkorrekturtext (beim Aktiveren muss unten \textnote{remove}
+% entfernt werden!)
+The \Macro{RemoveLayersFromPageStyle} command is exactly the opposite. It
+removes\textnote{remove} the specified page-style levels.%
+\fi
+
+The \Macro{RemoveLayersFromPageStyle}\textnote{remove} command removes layers
+from the layer list of the page style named \PName{page style name}.
+Attempting to remove layers which are not part of the page style's layer list
+will be ignored. But attempting to add layers to or remove layers from a page
+style that is neither a layer page style nor a page-style alias is an error
+and will be reported as such.%
+\EndIndexGroup
+
+
+\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{}{page style>layers}%
+\BeginIndex{}{layers>page style}%
+\iffalse% Umbruchvarianten
+These two commands are similar to the previous ones, but they take an
+additional parameter, \Parameter{reference layer name}. The layer list of
+the page style named in \Parameter{page style name} is searched for this
+reference layer. %
+\else%
+These commands are similar to the previous ones. The existing layers of the
+page style, however, are searched for the \PName{reference layer name}. %
+\fi%
+The layers in the \Parameter{layer list} parameter are then inserted
+before\textnote{add before/after layer} or after this reference layer%
+\iffalse% Umbruchkorrekturtext
+in the layers of the page style%
+\fi%
+. The order of the layers in the \PName{layer list} is retained.
+
+If the reference layer named \PName{reference layer name} is not part of the
+given page style, nothing is inserted. On the other hand, if the page style is
+neither a layer page style nor a page-style alias, an error will be reported.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{UnifyLayersAtPageStyle}\Parameter{page style name}
+\end{Declaration}
+\BeginIndex{}{page style>layers}%
+\BeginIndex{}{layers>page style}%
+The commands for defining page styles or adding layers to a page style do not
+care how many times a layer appears in a page style, so it is quite
+permissible for a layer to appear multiple times. In most cases, however, it
+does not make sense to use the same layer several times in one page style.
+Therefore, you can use \Macro{UnifyLayersAtPageStyle} to remove all layer
+duplicates from the layer page style of the specified \Parameter{page style
+ name}.
+
+Note\textnote{Attention!} that this function can change the order of layers.
+So if you need a specific order, you should remove all layers and add the
+layers in the order you want instead of using \Macro{UnifyLayersAtPageStyle}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ModifyLayerPageStyleOptions}%
+ \Parameter{page style name}\Parameter{option list}%
+ \Macro{AddToLayerPageStyleOptions}%
+ \Parameter{page style name}\Parameter{option list}
+\end{Declaration}
+\BeginIndex{}{page style>layers}%
+\BeginIndex{}{layers>page style}%
+These two commands can be used to modify the options, and thus the
+hooks\Index{hooks}, of a layer page style. With
+\Macro{ModifyLayerPageStyleOptions}\textnote{change page-style options}, only
+the options in the comma-separated \PName{option list} will be set to the new
+values given there. The previous values are lost. All options from
+\autoref{tab:scrlayer.pagestyle.hooks},
+\autopageref{tab:scrlayer.pagestyle.hooks} are allowed. Options or hooks that
+are not specified in the \PName{option list} will remain unchanged. If you
+want to set an option to do nothing you can set it to the value \Macro{relax}.
+Setting an option to a new value using \Macro{ModifyLayerPageStyleOptions}
+will remove the previous value, including the global default value. This
+statement is the only way to remove the global defaults of the \KOMAScript{}
+options from a page style.
+
+\Macro{AddToLayerPageStyleOptions}\textnote{extend page-style options}, on the
+other hand, does not overwrite the previous values. Instead it adds\,---\,or,
+more precisely, concatenates\,---\, the new values to old ones.%
+\EndIndexGroup
+
+
+\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{}{page style>layers}%
+\BeginIndex{}{layers>page style}%
+With these commands, you can execute code depending on whether a page style is
+a layer page style or not. The \Macro{IfLayerPageStyleExists} command executes
+the \PName{then code} if \PName{page style name} is the name of a layer page
+style or a page-style alias that results in a layer page style. Otherwise, the
+command executes the \PName{else code}. 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 to a layer page style.
+
+The \Macro{IfRealLayerPageStyleExists} command goes one step further and
+executes the \PName{then code} only if the page style specified by \PName{page
+ style name} is itself a layer page style. So if \PName{page style name} is a
+page-style alias, this command executes the \PName{else code} even if the
+alias resolves to a real layer page style.%
+\EndIndexGroup
+
+
+\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{IfLayersAtPageStyle}%
+ \Parameter{page style name}\Parameter{layer list}%
+ \Parameter{then code}\Parameter{else code}%
+\end{Declaration}
+\BeginIndex{}{page style>layers}%
+\BeginIndex{}{layers>page style}%
+These commands can be used to test whether one or more layers are part of a
+page style. The \Macro{IfLayerAtPageStyle} command expects exactly one
+\PName{layer name}\textnote{exactly one layer} as the second argument. If this
+layer is part of the page style specified in \PName{page style name}, the
+\PName{then code} will be executed. Otherwise, the \PName{else code} will be
+executed.
+
+The \Macro{IfSomeLayerAtPageStyle} and \Macro{IfLayersAtPageStyle} commands
+allow a comma-separated \PName{layer list}. \Macro{IfSomeLayerAtPageStyle}
+will execute the \PName{then code} if \emph{at least one} of the layers in the
+\PName{layer list} parameter is part of the layer list of \PName{page style
+ name}. In contrast, \Macro{IfLayersAtPageStyle} executes the \PName{then
+ code} only if \emph{all} the layers in the \PName{layer list} parameter are
+part of the page style. If the condition is not met, the \PName{else code}
+will be executed.
+
+With suitable nesting of these commands, you can construct complex conditions.
+If you use only one \PName{layer name} in the \PName{layer list}, all three
+statements are synonymous.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DestroyRealLayerPageStyle}\Parameter{page style name}
+\end{Declaration}
+\BeginIndex{}{page style>layers}%
+\BeginIndex{}{layers>page style}%
+\iftrue
+This statement makes a layer page style undefined. If a page-style alias or
+ordinary page style is specified, the command is ignored.
+\else
+With this command you can remove a the definition of a layer page style.
+However, this only occurs if a layer page style named \PName{page style name}
+exists. If, instead, it is a page-style alias, a different (non-layer) page
+style, or not a page style at all, nothing happens; the command is ignored.%
+\fi
+
+If \PName{page style name} is the name of the current page style, the current
+page style will becomes a kind of empty page style. If the page style set with
+\DescRef{maincls.cmd.thispagestyle} is \PName{page style name}, it will simply
+be reset. The previous \DescRef{maincls.cmd.thispagestyle} command loses its
+current effect.
+
+Note\textnote{Attention!} that the layers of the page style are not destroyed
+automatically. If you want to destroy the layers too, you can do this with:
+\begin{lstcode}
+ \ForEachLayerOfPageStyle{...}{\DestroyLayer{#1}}
+\end{lstcode}
+before destroying the layer page style itself.
+
+The command is intended to be used within the \PName{code} argument of
+\DescRef{\LabelBase.cmd.scrlayerOnAutoRemoveInterface} to remove page styles
+that are defined as part of an end-user interface. See
+\autoref{sec:scrlayer.enduserinterfaces} below for more information about
+auto-removal code.%
+\EndIndexGroup
+\EndIndexGroup
+
+\LoadCommonFile{headfootheight}% \section{Height of Page Head and Foot}
+
+\LoadCommonFile{pagestylemanipulation}% \section{Manipulation of Defined Page Styles}
+
+\section{Defining and Managing Interfaces for End Users}
+\seclabel{enduserinterfaces}
+
+The \Package{scrlayer} package provides an experimental interface to define
+and manage (concurrent) interfaces for end users. \iffree{In the long run,
+ this interface may disappear from \Package{scrlayer} and be taken over by
+ \Package{scrbase} instead.}{} Currently, this interface is highly
+experimental%
+\iffree{ and therefore \Package{scrlayer} provides these interface commands
+ only for the use of subpackages of \Package{scrlayer}}{}%
+. Given the current state of development, you should not depend on automatic
+removal of a concurrent interface to work. Instead, you should avoid using
+concurrent end-user interfaces.
+
+This section only describes the interface commands for defining an end-user
+interface. For end users themselves, it is of little interest. Rather, this
+section is intended for authors of packages and classes that build on
+\Package{scrlayer}. End users will find information about specific end-user
+interfaces in \autoref{cha:scrlayer-scrpage},
+\autoref{cha:scrlayer-scrpage-experts}, and \autoref{cha:scrlayer-notecolumn}.
+
+\begin{Declaration}
+ \Macro{scrlayerInitInterface}\OParameter{interface name}
+\end{Declaration}
+The \Macro{scrlayerInitInterface} command registers a new interface named
+\PName{interface name}. The \PName{interface name} must be unique. If an
+interface with the same name has already been registered, an error will occur.
+
+This command should always appear as the first command when defining an
+end-user interface and therefore is described here first. If the optional
+argument\,---\,including the square brackets\,---\,is omitted,
+\PValue{\Macro{@currname}.\Macro{@currext}} will be used instead. For classes
+and packages, this is the file name of the class or package. But of course you
+can use any other sequence of characters with a category of \emph{letter} or
+\emph{other}. This is useful, for example, when a class or package defines
+multiple end-user interfaces%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{forceoverwrite}{simple switch}%
+ \OptionVName{autoremoveinterfaces}{simple switch}%
+ \Macro{scrlayerAddToInterface}%
+ \OParameter{interface name}\Parameter{command}\Parameter{code}%
+ \Macro{scrlayerAddCsToInterface}%
+ \OParameter{interface name}\Parameter{command sequence}\Parameter{code}
+\end{Declaration}
+One of the special features of \Package{scrlayer}'s end user interfaces is
+that they should register all interface-dependent commands (also known as
+\emph{macros}). You can do this using \Macro{scrlayerAddToInterface}. The
+optional argument \PName{interface name} must be an interface name previously
+registered with \DescRef{\LabelBase.cmd.scrlayerInitInterface}. An error will
+occur if the interface has not been initialised.
+
+If\textnote{Attention!} your interface defines macros not just when the class
+or package is being loaded but also at runtime, you must provide the interface
+name in the optional argument even if it corresponds to the file name of the
+class or package, since the values of \Macro{@currname} and \Macro{@currext}
+are only valid while the class or package is being loaded.
+
+The first mandatory argument is the \PName{command}\footnote{The
+ \PName{command} consists of a backslash followed by a \PName{command
+ sequence} that consists of characters of the category code \emph{letter},
+ or of exactly one character of the category \emph{other}, or of a character
+ of the category \emph{active} (without the backslash).} to be added to the
+interface. If the command can be defined, this will be done. In addition, it
+will set to \Macro{relax} and \PName{code} will be executed. Within
+\PName{code}, you can then define \PName{command}, e.\,g., using
+\Macro{newcommand}.
+
+But when can a command be defined? If a command is undefined or \Macro{relax},
+it can always be defined. If a command has already been defined \emph{and}
+registered for another interface \emph{and} if the \KOMAScript{} option
+\Option{autoremoveinterfaces} has been activated, the other interface will be
+removed automatically, and the \PName{command} will be set to \Macro{relax}
+and registered for the new interface specified. If a \PName{command} is
+already defined but is \emph{not} part of another interface, \emph{and} if the
+\KOMAScript{} option \Option{forceoverwrite} has been activated, the
+\PName{command} is also set to \Macro{relax} and registered for the specified
+interface. In all other cases, however, the command is not definable, in
+particular if it is already defined and the \KOMAScript{} options
+\Option{autoremoveinterfaces} and \Option{forceoverwrite} are deactivated.
+
+The \Macro{scrlayerAddCsToInterface} command is similar to
+\Macro{scrlayerAddToInterface} but it expects the first argument to be not a
+\PName{command} but a command sequence\footnote{A command sequence must be
+ fully expandable and its expansion must result in characters of the category
+ code \emph{letter}, \emph{other}, or \emph{space}.}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scrlayerOnAutoRemoveInterface}%
+ \OParameter{interface name}\Parameter{code}
+\end{Declaration}
+The \Macro{scrlayerOnAutoRemoveInterface} command registers \PName{code} to be
+executed in the event that the end-user interface with the specified
+\PName{interface name} is automatically removed (see
+\DescRef{\LabelBase.option.autoremoveinterfaces} earlier in this section).
+This can be used, for example, to automatically destroy layers or page styles
+that rely on commands from the end-user interface (see
+\DescRef{\LabelBase.cmd.DestroyLayer},
+\DescRef{\LabelBase.cmd.DestroyPageStyleAlias}, and
+\DescRef{\LabelBase.cmd.DestroyRealLayerPageStyle}). Regarding the default for
+the optional argument, please refer to the explanation for
+\DescRef{\LabelBase.cmd.scrlayerInitInterface}.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
+
+
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrlfile.tex b/macros/latex/contrib/koma-script/source-doc/english/scrlfile.tex
new file mode 100644
index 0000000000..a01a4a0035
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrlfile.tex
@@ -0,0 +1,722 @@
+% ======================================================================
+% scrlfile.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrlfile.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 scrlfile of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------------
+%
+% Kapitel ueber scrlfile in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrlfile.tex}
+ [$Date: 2018-03-30 11:57:25 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (chapter: scrlfile)]
+\translator{Gernot Hassenpflug\and Markus Kohm\and Karl Hagen}
+
+% Date of the translated German file: 2018-02-15
+
+\chapter{Controlling Package Dependencies with \Package{scrlfile}}
+\labelbase{scrlfile}
+\BeginIndexGroup
+\BeginIndex{Package}{scrlfile}
+
+The introduction of \LaTeXe{} in 1994 brought many changes in the handling of
+\LaTeX{} extensions. The package author today has a whole series of macros
+available to determine if another package or class has been loaded and whether
+specific options are being used. The package author can even load other
+packages or specify certain options in case the package is loaded later. This
+has led to the expectation that the order in which package are loaded would
+not be important. Sadly, this hope has not been fulfilled.
+
+\section{About Package Dependencies}
+\seclabel{dependency}
+%\begin{Explain}
+More and more often, different packages either newly define or redefine the
+same macro. In such a case, the order in which a package is loaded becomes
+very important. Sometimes, users find it very difficult to understand the
+resulting behaviour. Sometimes it is necessary to react in a specific way when
+another package is loaded.
+
+As a simple example, consider loading the \Package{longtable} package with a
+\KOMAScript{} document class. The \Package{longtable} package defines its own
+table captions. These are perfectly suited to the standard classes, but they
+do not match the default settings for \KOMAScript{} captions, nor do they
+react to the relevant configuration options. To solve this problem, the
+\Package{longtable} package commands which are responsible for the table
+captions need to be redefined. However, by the time the \Package{longtable}
+package is loaded, the \KOMAScript{} class has already been processed.
+
+Previously, the only way to solve this problem was to delay the redefinition
+until the beginning of the document using \Macro{AtBeginDocument}. However, if
+users want to change the relevant commands themselves, they should do so in
+the preamble of the document. But this is impossible because \KOMAScript{}
+will overwrite the users' definitions at \Macro{begin}\PParameter{document}.
+They would also need to perform the redefinition with \Macro{AtBeginDocument}.
+
+But \KOMAScript{} does not actually need to wait for
+\Macro{begin}\PParameter{document} to redefine the macros. It would be
+sufficient to postpone the redefinition until after the \Package{longtable}
+package has been loaded. Unfortunately, the \LaTeX{} kernel does not define
+necessary commands. The \Package{scrlfile} package provides a remedy for this
+problem.
+
+It is also conceivable that you would like to save the definition of a macro
+in a temporary macro before a package is loaded and restore it after the
+package has been loaded. The \Package{scrlfile} package allows this, too.
+
+The use of \Package{scrlfile} is not limited to package dependencies.
+Dependencies can also be considered for any other file. For example, you can
+ensure that loading the not unimportant file \File{french.ldf} automatically
+leads to a warning.
+
+Although the package is particularly of interest for package authors, there
+are also applications for normal \LaTeX{} users. Therefore, this chapter
+gives examples for both groups.
+%\end{Explain}
+
+
+\section{Actions Before and After Loading}
+\seclabel{macros}
+
+The \Package{scrlfile} package can execute actions both before and after
+loading files. The commands used to do so distinguish between ordinary files,
+classes, and packages.
+
+\begin{Declaration}
+ \Macro{BeforeFile}\Parameter{file}\Parameter{commands}%
+ \Macro{AfterFile}\Parameter{file}\Parameter{commands}
+\end{Declaration}%
+\Macro{BeforeFile} ensures that the \PName{commands} are executed before the
+next time \PName{file} is loaded. \Macro{AfterFile} works in a similar
+fashion, and the \PName{commands} will be executed after the \PName{file} has
+been loaded. Of course, if \PName{file} is never loaded, the \PName{commands}
+will never be executed. For \PName{file}, you should specify any extensions as
+part of the file name, as you would with \Macro{input}.
+
+To implement those features, \Package{scrlfile} redefines the well-known
+\LaTeX{} command \Macro{InputIfFileExists}. If this command does not have the
+expected definition, \Package{scrlfile} issues a warning. This occurs in case
+the command is changed in future \LaTeX{} versions or has already been
+redefined by another package.
+
+\LaTeX{} uses the \Macro{InputIfFileExists} command every time it loads a
+file. This occurs regardless of whether the file is loaded with
+\Macro{include}, \Macro{LoadClass}, \Macro{documentclass}, \Macro{usepackage},
+\Macro{RequirePackage}, or similar commands. Only
+\begin{lstcode}
+ \input foo
+\end{lstcode}
+loads the file \texttt{foo} without using
+\Macro{InputIfFileExists}. You should therefore always use
+\begin{lstcode}
+ \input{foo}
+\end{lstcode}
+instead. Notice the parentheses surrounding the file name!%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeClass}\Parameter{class}\Parameter{commands}%
+ \Macro{BeforePackage}\Parameter{package}\Parameter{commands}
+\end{Declaration}%
+These two commands work the same way as \DescRef{\LabelBase.cmd.BeforeFile}.
+The only difference is that the \PName{class} or \PName{package} is specified
+with its class or package name and not with its file name. That means you
+should omit the file extensions \File{.cls} or \File{.sty}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AfterClass}\Parameter{class}\Parameter{commands}%
+ \Macro{AfterClass*}\Parameter{class}\Parameter{commands}%
+ \Macro{AfterClass+}\Parameter{class}\Parameter{commands}%
+ \Macro{AfterClass!}\Parameter{class}\Parameter{commands}%
+ \Macro{AfterAtEndOfClass}\Parameter{class}\Parameter{commands}%
+ \Macro{AfterPackage}\Parameter{package}\Parameter{commands}%
+ \Macro{AfterPackage*}\Parameter{package}\Parameter{commands}%
+ \Macro{AfterPackage+}\Parameter{package}\Parameter{commands}%
+ \Macro{AfterPackage!}\Parameter{package}\Parameter{commands}%
+ \Macro{AfterAtEndOfPackage}\Parameter{package}\Parameter{commands}
+\end{Declaration}%
+The \Macro{AfterClass} and \Macro{AfterPackage} commands work much like
+\DescRef{\LabelBase.cmd.AfterFile}. The only difference is that the
+\PName{class} or \PName{package} is specified with its class or package name
+and not with its file name. That means you should omit the file extensions
+\File{.cls} or \File{.sty}.
+
+The\important[i]{\Macro{AfterClass*}\\\Macro{AfterPackage*}} starred versions
+function somewhat differently. If the class or package has already been
+loaded, they execute the \PName{commands} immediately rather than waiting
+until the next time the class or package is loaded.
+
+The\important[i]{\Macro{AfterClass+}\\\Macro{AfterPackage+}}
+plus\ChangedAt{v3.09}{\Package{scrlfile}} version executes the
+\PName{commands} after the class or package has been completely loaded. This
+behaviour differs from that of the starred version only if you use the command
+when the class or package has begun loading but has not yet finished. If the
+class or package has not finished loading, the \PName{commands} will always be
+executed before the commands in \Macro{AtEndOfClass} or
+\Macro{AtEndOfPackage}.
+
+If\important[i]{\Macro{AfterClass!}\\\Macro{AfterPackage!}} a class uses
+\Macro{AtEndOfClass} or a package uses \Macro{AtEndOfPackage} to execute
+commands after the class of package file has been loaded completely, and
+if you want to execute \PName{commands} after these deferred
+commands have been executed, you can use the exclamation-mark versions
+\Macro{AfterClass!}\ChangedAt{v3.09}{\Package{scrlfile}} or
+\Macro{AfterPackage!}.
+
+If\important[i]{\Macro{AfterAtEndOfClass}\\\Macro{AfterAtEndOfPackage}} you
+want to execute the \PName{commands} only when the class or package is loaded
+later and outside the context of that class or package, you can use
+\Macro{AfterAtEndOfClass}\ChangedAt{v3.09}{\Package{scrlfile}} for classes and
+\Macro{AfterAtEndOfPackage} for packages.
+
+\begin{Example}
+ The following example for class and package authors shows how \KOMAScript{}
+ itself makes use of the new commands. The class \Class{scrbook} contains the
+ following:
+% CORRECTED MESSAGE:
+% You are using an old version of the hyperref
+% package!\MessageBreak%
+% This version has a buggy hack in many
+% drivers,\MessageBreak%
+% causing \string\addchap\space to behave
+% strangely.\MessageBreak%
+% Please update hyperref to at least version
+% 6.71b}%
+\begin{lstcode}
+ \AfterPackage{hyperref}{%
+ \@ifpackagelater{hyperref}{2001/02/19}{}{%
+ \ClassWarningNoLine{scrbook}{%
+ You are using an old version of hyperref package!%
+ \MessageBreak%
+ This version has a buggy hack at many drivers%
+ \MessageBreak%
+ causing \string\addchap\space to behave strange.%
+ \MessageBreak%
+ Please update hyperref to at least version
+ 6.71b}}}
+\end{lstcode}
+ Old versions of the \Package{hyperref} package redefine a macro of the
+ \Class{scrbook} class in a way that is incompatible with newer \KOMAScript{}
+ versions. Newer versions of \Package{hyperref} refrain from making this
+ change if a newer version of \KOMAScript{} is detected. In case
+ \Package{hyperref} is loaded at a later stage, \Class{scrbook} ensures that
+ a check for an acceptable version of \Package{hyperref} is performed
+ immediately after the package is loaded. If this is not the case, a warning
+ is issued.
+
+ Elsewhere in three of the \KOMAScript{} classes, you can find the following:
+\begin{lstcode}
+ \AfterPackage{caption2}{%
+ \renewcommand*{\setcapindent}{%
+\end{lstcode}
+ After loading \Package{caption2}, and only if it has been loaded,
+ \KOMAScript{} redefines its own \DescRef{maincls.cmd.setcapindent} command.
+ The exact code of the redefinition is irrelevant. The important thing to
+ note is that \Package{caption2} takes control of the
+ \DescRef{maincls.cmd.caption} macro and that therefore the normal definition
+ of the \DescRef{maincls.cmd.setcapindent} command would have no effect. The
+ redefinition thus improves interoperability with \Package{caption2}.
+
+ There are also, however, instances where these commands are useful to normal
+ \LaTeX{} users. For example, suppose you create a document from which you
+ want to generate both a PostScript file, using \LaTeX{} and dvips, and a PDF
+ file, using \mbox{pdf{\LaTeX}}. The document should also contain hyperlinks.
+ In the table of contents, you have entries that span several lines. This is
+ not a problem for the \mbox{pdf{\LaTeX}} method, since here hyperlinks can
+ be broken across multiple lines. However, this is not possible with the
+ \Package{hyperref} driver for dvips or \mbox{hyper{\TeX}}. In this case, you
+ would like \Package{hyperref} to use the \Option{linktocpage} option. The
+ decision as to which driver is loaded is made automatically by
+ \File{hyperref}.
+
+ Everything else can now be left to \DescRef{\LabelBase.cmd.AfterFile}:
+\begin{lstcode}
+ \documentclass{article}
+ \usepackage{scrlfile}
+ \AfterFile{hdvips.def}{\hypersetup{linktocpage}}
+ \AfterFile{hypertex.def}{\hypersetup{linktocpage}}
+ \usepackage{hyperref}
+ \begin{document}
+ \listoffigures
+ \clearpage
+ \begin{figure}
+ \caption{This is an example of a fairly long figure caption, but
+ one that does not use the optional caption argument that would
+ allow you to write a short caption in the list of figures.}
+ \end{figure}
+ \end{document}
+\end{lstcode}
+ If either of the \Package{hyperref} drivers \Option{hypertex} or
+ \Option{dvips} is used, the useful \Package{hyperref} option
+ \Option{linktocpage} will be set. However, if you create a PDF file
+ with \mbox{pdf{\LaTeX}}, the option
+ will not be set because then the \Package{hyperref} driver
+ \File{hpdftex.def} will be used. This means that neither \File{hdvips.def}
+ nor \File{hypertex.def} will be loaded.
+\end{Example}
+\iffalse% Umbruchkorrekturtext (der besser nicht mehr verwendet wird!)
+ Furthermore\textnote{Hint!}, you can also load \Package{scrlfile} and the
+ \DescRef{\LabelBase.cmd.AfterFile} command into a private
+ \File{hyperref.cfg}. In this case, however, you should use
+ \Macro{RequirePackage} instead of \Macro{usepackage} to load the package
+ (see \cite{latex:clsguide}). In the example above, the new lines have to be
+ inserted directly after the \Macro{ProvidesFile} line, that is, immediately
+ before the \Option{dvips} or \Option{pdftex} options are executed.%
+\fi
+Incidentally\textnote{Hint!}, you can also load \Package{scrlfile} before
+\DescRef{maincls.cmd.documentclass}\IndexCmd{documentclass}. In this case,
+however, you should use \Macro{RequirePackage}\IndexCmd{RequirePackage}
+instead of \DescRef{maincls.cmd.usepackage} (see \cite{latex:clsguide}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeClosingMainAux}\Parameter{commands}%
+ \Macro{AfterReadingMainAux}\Parameter{commands}%
+\end{Declaration}%
+These commands differ in one detail from the commands explained previously.
+Those commands enable actions before or after loading files. That is not the
+case here. Package authors often want to write something to the \File{aux}
+file after the last document page has been shipped out. To do so, ignoring the
+resulting problems they create, they often use code such as the following:
+\begin{lstcode}
+ \AtEndDocument{%
+ \if@filesw
+ \write\@auxout{%
+ \protect\writethistoaux%
+ }%
+ \fi
+ }
+\end{lstcode}
+However, this does not really solve the problem. If the last page of the
+document has already been shipped out before \Macro{end}\PParameter{document},
+the code above will not result in any output to the \File{aux} file. If you
+try to fix this new problem using \Macro{immediate} just before \Macro{write},
+you would have the opposite problem: if the last page has not yet been shipped
+out before \Macro{end}\PParameter{document}, \Macro{writethistoaux} would be
+written to the \File{aux} file too early. Therefore you often see solutions
+like:
+\begin{lstcode}
+ \AtEndDocument{%
+ \if@filesw
+ \clearpage
+ \immediate\write\@auxout{%
+ \protect\writethistoaux%
+ }%
+ \fi
+ }
+\end{lstcode}
+However, this solution has the disadvantage that it forces the last page to be
+shipped out. A command such as
+\begin{lstcode}
+ \AtEndDocument{%
+ \par\vspace*{\fill}%
+ Note at the end of the document.\par
+ }
+\end{lstcode}
+will no longer cause the note to appear beneath the text of the last real page
+of the document but at the end of one additional page. Furthermore,
+\Macro{writethistoaux} will again be written to the \File{aux} file one page
+too early.
+
+The best solution for this problem would be if you could write directly to the
+\File{aux} file immediately after the final \DescRef{maincls.cmd.clearpage}
+that is part of \Macro{end}\PParameter{document} but before closing the
+\File{aux} file. This is the purpose of \Macro{BeforeClosingMainAux}:
+\begin{lstcode}
+ \BeforeClosingMainAux{%
+ \if@filesw
+ \immediate\write\@auxout{%
+ \protect\writethistoaux%
+ }%
+ \fi
+ }
+\end{lstcode}
+This will be successful even if the final \DescRef{maincls.cmd.clearpage}
+inside of \Macro{end}\PParameter{document} does not actually ship out any page
+or if \DescRef{maincls.cmd.clearpage} is used within an \Macro{AtEndDocument}
+command.
+
+However, there one important limitation using \Macro{BeforeClosingMainAux}:
+you should not use any typesetting commands inside the \PName{commands} of
+\Macro{BeforeClosingMainAux}! If you ignore this restriction, the result is
+just as unpredictable as the results of the problematic suggestions above that
+use \Macro{AtEndDocument}.
+
+The \Macro{AfterReadingMainAux}\ChangedAt{v3.03}{\Package{scrlfile}} command
+actually executes the \PName{commands} after closing and reading the
+\File{aux} file inside \Macro{end}\PParameter{document}. This is only useful
+in a few very rare cases, for example to write statistical information to the
+\File{log} file which is valid only after reading the \File{aux} file, or to
+implement additional \emph{rerun} requests. Typesetting commands are even more
+dangerous inside these \PName{commands} than inside the argument of
+\Macro{BeforeClosingMainAux}.%
+%
+\EndIndexGroup
+
+
+\section{Replacing Files at Input}
+\seclabel{replace}
+
+The previous sections in this chapter have explained commands to perform
+actions before or after loading a particular file, package, or class. You can
+also use \Package{scrlfile} to input a completely different file than the one
+that was requested.
+
+
+\begin{Declaration}
+ \Macro{ReplaceInput}\Parameter{original file}%
+ \Parameter{replacement file}%
+\end{Declaration}%
+This\ChangedAt{v2.96}{\Package{scrlfile}} command defines a replacement for
+the file specified in the first argument, \PName{original file}. If \LaTeX{}
+is instructed to load this file, the \PName{replacement file} will be loaded
+instead. The replacement-file definition affects all files loaded using
+\Macro{InputIfFileExists}, whether they are loaded by the user or internally
+by \LaTeX{}. To do so, \Package{scrlfile} redefines \Macro{InputIfFileExists}.
+
+\begin{Example}
+ You want to input the \File{\Macro{jobname}.xua} file instead of the
+ \File{\Macro{jobname.aux}} file. To do this, you use
+\begin{lstcode}
+ \ReplaceInput{\jobname.aux}{\jobname.xua}
+\end{lstcode}
+ If additionally you replace \File{\Macro{jobname}.xua} by
+ \File{\Macro{jobname}.uxa} using
+\begin{lstcode}
+ \ReplaceInput{\jobname.xua}{\jobname.uxa}
+\end{lstcode}
+ then \File{\Macro{jobname}.aux} will also be replaced by
+ \File{\Macro{jobname}.uxa}. In this way, you can process the whole
+ replacement chain.
+
+ However, a replacement that results in a loop such as
+\begin{lstcode}
+ \ReplaceInput{\jobname.aux}{\jobname.xua}
+ \ReplaceInput{\jobname.xua}{\jobname.aux}
+\end{lstcode}
+ will cause a \emph{stack size error}. So it is not possible to replace
+ a file that has already been replaced once by itself again.
+\end{Example}
+
+In theory, it would also be possible to use this command to replace one
+package or class with another. But \LaTeX{} would recognize that the requested
+file name does not match the name of the package or class. You can find a
+solution for this problem below.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ReplaceClass}\Parameter{original class}%
+ \Parameter{replacement class}%
+ \Macro{ReplacePackage}\Parameter{original package}%
+ \Parameter{replacement package}%
+\end{Declaration}%
+You\ChangedAt{v2.96}{\Package{scrlfile}}\textnote{Attention!} should never
+replace a class or package using the \DescRef{\LabelBase.cmd.ReplaceInput}
+command described above. Doing so would result in a \LaTeX{} warning about
+mismatched class or package names. Real errors are also possible if a class or
+package is loaded under an incorrect file name.
+\begin{Example}
+ You replace the \Package{scrpage2} package with its official successor,
+ \Package{scrlayer-scrpage}, by using
+\begin{lstcode}[escapechar=\$]
+ \ReplaceInput{scrpage2.sty}{scrlayer-scrpage.sty}$\textnote{Do not try this!}$
+\end{lstcode}
+ Loading \Package{scrpage2} will then lead to the following warning:
+\begin{lstcode}
+ LaTeX warning: You have requested `scrpage2',
+ but the package provides `scrlayer-scrpage'.
+\end{lstcode}
+ Users may be greatly confused by such a warning because they requested not
+ \Package{scrlayer-scrpage} but \Package{scrpage2}, which was replaced by
+ \Package{scrlayer-scrpage}.
+\end{Example}
+One solution to this problem is to use \Macro{ReplaceClass} or
+\Macro{ReplacePackage} instead of \DescRef{\LabelBase.cmd.ReplaceInput}. Note
+that in this case, as with \Macro{documentclass} and \Macro{usepackage}, you
+should give the name of the class or package and not the complete file name.
+
+The replacement class works for all classes loaded with
+\Macro{documentclass}, \Macro{LoadClassWithOptions}, or \Macro{LoadClass}. The
+replacement package works for all packages loaded with
+\Macro{usepackage}, \Macro{RequirePackageWithOptions}, or
+\Macro{RequirePackage}.
+
+Please\textnote{Attention!} note that the \PName{replacement class} or the
+\PName{replacement package} will be loaded with the same options that would
+have been passed to the \PName{original class} or \PName{original package}. If
+you replace a class or package with one that does not support a requested
+option, you will receive the usual warnings and errors. However, you can
+declare such missing options using \DescRef{\LabelBase.cmd.BeforeClass} or
+\DescRef{\LabelBase.cmd.BeforePackage}.
+
+\begin{Example}
+ Suppose you want to replace the \Package{oldfoo} package with the
+ \Package{newfoo} package when the former package is loaded. You can do this with
+\begin{lstcode}
+ \ReplacePackage{oldfoo}{newfoo}
+\end{lstcode}
+ Suppose the old package provides an \Option{oldopt} option, but the new
+ package does not. With
+\begin{lstcode}
+ \BeforePackage{newfoo}{%
+ \DeclareOption{oldopt}{%
+ \PackageInfo{newfoo}%
+ {option `oldopt' not supported}%
+ }}%
+\end{lstcode}
+ you can declare this missing option for the \Package{newfoo} package. This
+ avoids an error message when the \Package{oldfoo} package is loaded with the
+ option that is unsupported by \Package{newfoo}.
+
+ If, on the other hand, the \Package{newfoo} package supports a
+ \Option{newopt} option that should be used instead of the \Option{oldopt}
+ option, you can also achieved this:
+\begin{lstcode}
+ \BeforePackage{newfoo}{%
+ \DeclareOption{oldopt}{%
+ \ExecuteOptions{newopt}%
+ }}%
+\end{lstcode}
+ You can even specify different default options that apply when loading the
+ new package:
+\begin{lstcode}
+ \BeforePackage{newfoo}{%
+ \DeclareOption{oldopt}{%
+ \ExecuteOptions{newopt}%
+ }%
+ \PassOptionsToPackage{newdefoptA,newdefoptB}%
+ {newfoo}%
+ }
+\end{lstcode}
+ or directly:
+\begin{lstcode}
+ \BeforePackage{newfoo}{%
+ \DeclareOption{oldopt}{%
+ \ExecuteOptions{newopt}%
+ }%
+ }%
+ \PassOptionsToPackage{newdefoptA,newdefoptB}%
+ {newfoo}%
+\end{lstcode}
+ Note that in the last example, the call to \Macro{PassOptionsToPackage}
+ occurs not within but after \Macro{BeforePackage}
+\end{Example}
+
+Of course, to replace classes, you must load \Package{scrlfile} before the
+class using \Macro{RequirePackage} instead of \Macro{usepackage}.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{UnReplaceInput}\Parameter{file name}%
+ \Macro{UnReplacePackage}\Parameter{package}%
+ \Macro{UnReplaceClass}\Parameter{class}%
+\end{Declaration}
+You\ChangedAt{v3.12}{\Package{scrlfile}} can also remove a replacement. You
+should remove the replacement definition for an input file using
+\Macro{UnReplaceInput}, for a package using \Macro{UnReplacePackage}, and for
+a class using \Macro{UnReplaceClass}.%
+\EndIndexGroup
+
+
+\section{Preventing File Loading}
+\seclabel{prevent}
+
+Classes\ChangedAt{v3.08}{\Package{scrlfile}} and packages written for use
+within companies or academic institutions often load many packages only
+because users need them frequently, not because they are required by the class
+or package itself. If a problem occurs with one of these automatically loaded
+packages, you somehow have to keep the problematic package from being loaded.
+Once again, \Package{scrlfile} provides a simple solution.
+
+\begin{Declaration}
+ \Macro{PreventPackageFromLoading}\OParameter{alternate code}%
+ \Parameter{package list}%
+ \Macro{PreventPackageFromLoading*}\OParameter{alternate code}%
+ \Parameter{package list}
+\end{Declaration}
+Calling this command\ChangedAt{v3.08}{\Package{scrlfile}} before loading a
+package with \Macro{usepackage}\IndexCmd{usepackage},
+\Macro{RequirePackage}\IndexCmd{RequirePackage}, or
+\Macro{RequirePackageWithOptions}\IndexCmd{RequirePackageWithOptions}
+effectively prevents the package from being loaded if it is found in the the
+\PName{package list}.
+%
+\begin{Example}
+ Suppose you work at a company where all documents are created using Latin
+ Modern. The company class, \Class{compycls}, therefore contains these lines:
+\begin{lstcode}
+ \RequirePackage[T1]{fontenc}
+ \RequirePackage{lmodern}
+\end{lstcode}
+ But now, for the first time, you want to use \XeLaTeX{} or Lua\LaTeX{}.
+ Since the recommended \Package{fontspec} package uses Latin Modern as the
+ default font anyway, and loading \Package{fontenc} would not be a good idea,
+ you want to prevent both packages from being loaded. Therefore, you load the
+ class in your own document as follows:
+\begin{lstcode}
+ \RequirePackage{scrlfile}
+ \PreventPackageFromLoading{fontenc,lmodern}
+ \documentclass{firmenci}
+\end{lstcode}
+\end{Example}
+The example above also shows that you can load \Package{scrlfile} before the
+class. In this case, you must use
+\Macro{RequirePackage}\IndexCmd{RequirePackage} because \Macro{usepackage}
+before \Macro{documentclass} is not permitted.
+
+If you specify an empty \PName{package list} or if it contains a package that
+has already been loaded, \Macro{PreventPackageFromLoading} issues a warning,
+while\ChangedAt{v3.12}{\Package{scrlfile}} \Macro{PreventPackageFromLoading*}
+merely writes a note to the log file only.
+
+You\ChangedAt{v3.12}{\Package{scrlfile}} can use the optional argument to
+execute code instead of loading the package. But you cannot load any other
+packages or files inside \PName{alternate code}. To load another package, see
+\DescRef{\LabelBase.cmd.ReplacePackage} in \autoref{sec:scrlfile.macros} on
+\DescPageRef{\LabelBase.cmd.ReplacePackage}. Note also that the
+\PName{alternate code} will be executed several times if you try to load the
+package more than once!%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{StorePreventPackageFromLoading}\Parameter{\textMacro{command}}%
+ \Macro{ResetPreventPackageFromLoading}
+\end{Declaration}
+\Macro{StorePreventPackageFromLoad}\ChangedAt{v3.08}{\Package{scrlfile}}
+defines \Macro{command} to be the current list of packages that should not be
+loaded. In contrast,
+\Macro{ResetPreventPackageFromLoading}\ChangedAt{v3.08}{\Package{scrlfile}}
+resets the list of packages that should not be loaded. After
+\Macro{ResetPreventPackageFromLoading}, you can load all packages again.
+\begin{Example}
+ Suppose you need to load a package inside another package and you do not
+ want the user to be able to prevent that package from being loaded with
+ \DescRef{\LabelBase.cmd.PreventPackageFromLoading}%
+ \IndexCmd{PreventPackageFromLoading}. So you reset the do-not-load list
+ before you load this package:
+\begin{lstcode}
+ \ResetPreventPackageFromLoading
+ \RequirePackage{foo}
+\end{lstcode}
+ Unfortunately, from this point on the user's entire do-not-load list would
+ be lost. To avoid this, you first store the list and then restore it later:
+\begin{lstcode}
+ \newcommand*{\Users@PreventList}{}%
+ \StorePreventPackageFromLoading\Users@PreventList
+ \ResetPreventPackageFromLoading
+ \RequirePackage{foo}
+ \PreventPackageFromLoading{\Users@PreventList}
+\end{lstcode}
+ Note\textnote{Attention!} that \Macro{StorePreventPackageFromLoading}
+ defines the \Macro{Users@PreventList} macro even if it has already been
+ defined. In other words, calling \Macro{StorePreventPackageFromLoading}
+ overwrites existing \Macro{command} definitions without checking. Therefore
+ this example uses \Macro{newcommand*} to get an error message if
+ \Macro{Users@PreventList} has already been defined.
+\end{Example}
+Note that when you manipulate the list stored by
+\Macro{StorePreventPackageFromLoading}, you are responsible for making sure it
+can be restored. For example, the list elements must be separated by comma,
+must not contain white space or group braces, and must be fully expandable.
+
+Also note\textnote{Attention!}, that \Macro{ResetPreventPackageFromLoading}
+does not clear the \PName{alternate code} for a package. But this code
+will not be executed so long as the package is not added again to the
+do-not-load list.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{UnPreventPackageFromLoading}\Parameter{package list}%
+ \Macro{UnPreventPackageFromLoading*}\Parameter{package list}
+\end{Declaration}
+Instead\ChangedAt{v3.12}{\Package{scrlfile}} of completely resetting the list
+of packages that should not be loaded, you can also specify individual
+packages to remove from the list. The starred version of the command also
+deletes the \PName{alternate code}. For example, restoring packages to the
+do-not-load list from a stored list will not reactivate their \PName{alternate
+code} in this case.%
+%
+\begin{Example}
+ Suppose you want to prevent a \Package{foo} package from being loaded, but
+ you do not want to execute any outdated \PName{alternate code} that may
+ exist. Instead, only your new \PName{alternate code} should be executed. You
+ can do this as follows:
+\begin{lstcode}
+ \UnPreventPackageFromLoading*{foo}
+ \PreventPackageFromLoading[\typeout{alternate code}]{foo}
+\end{lstcode}
+ For the \Macro{UnPreventPackageFromLoading} command, it does not matter
+ whether or not the package has been prevented from being loaded before.
+
+ Of course you can also use the command to indirectly delete the
+ \PName{alternate code} of all packages:
+\begin{lstcode}
+ \StorePreventPackageFromLoading\TheWholePreventList
+ \UnPreventPackageFromLoading*{\TheWholePreventList}
+ \PreventPackageFromLoading{\TheWholePreventList}
+\end{lstcode}
+ In this case the packages that have been prevented from being loaded are
+ still prevented from being loaded, but their \PName{alternate code} has been
+ deleted and will no longer be executed.%
+\end{Example}%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% ispell-local-dictionary: "english"
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrlttr2-experts.tex b/macros/latex/contrib/koma-script/source-doc/english/scrlttr2-experts.tex
new file mode 100644
index 0000000000..ffb397b6d2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrlttr2-experts.tex
@@ -0,0 +1,1897 @@
+% ======================================================================
+% scrlttr2-experts.tex
+% Copyright (c) Markus Kohm, 2002-2019
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrlttr2-experts.tex
+% Copyright (c) Markus Kohm, 2002-2019
+%
+% 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 scrlttr2 of the KOMA-Script guide expert part
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber scrlttr2 im Experten-Teil der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrlttr2-experts.tex}
+ [$Date: 2019-01-15 08:29:44 +0100 (Tue, 15 Jan 2019) $
+ 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\and
+ Karl Hagen}
+
+% Date of the translated German file: 2018-07-20
+
+\chapter{Additional Information about the \Class{scrlttr2} Class and the
+ \Package{scrletter} Package}
+\labelbase{scrlttr2-experts}
+
+\BeginIndexGroup
+\BeginIndex{Class}{scrlttr2}
+This chapter provides additional information about the \KOMAScript{} class
+\Class{scrlttr2}. \iffree{Some parts of the chapter are found only in the
+ German \KOMAScript{} book \cite{book:komascript}. This should not be a
+ problem, because the}{The} average user, who only wants to use the class
+or package, will not normally need this information. Part of this information
+is addressed to users for whom the default options are insufficient. Thus,
+for example, the first section describes in detail the pseudo-lengths that
+specify the letterhead page and which can be used be used to modify the its
+layout.%
+\iffalse% Es wird Zeit das komplett rauszuwerfen!
+ In addition, this chapter also describes features that exist only to
+ provide compatibility with the deprecated \Class{scrlettr} class. It also
+ explains in detail how to convert a document from this obsolete class
+ to the current class.
+\fi
+
+\BeginIndex{Package}{scrletter}%
+Starting with \KOMAScript~3.15\ChangedAt[2014/11]{v3.15}{\Package{scrletter}},
+you can use the \Package{scrletter} package with one of the \KOMAScript{}
+classes \Class{scrartcl}, \Class{scrreprt}, or \Class{scrbook}. It provides
+nearly all the features of \Class{scrlttr2} for those classes. There are,
+however, a few differences described later in this chapter.%
+
+
+\section{Pseudo-Lengths for Experienced Users}
+\seclabel{pseudoLengths}
+\BeginIndexGroup
+\BeginIndex{}{pseudo-lengths}
+
+\TeX{} works with a fixed number of registers. There are registers for tokens,
+for boxes, for counters, for skips, and for dimensions. Overall there are 256
+registers for each of these categories. For \LaTeX{} lengths, which are
+defined with \Macro{newlength}, skip registers are used. Once all these
+registers are in use, you can not define any more lengths. Both
+\Class{scrlttr2} and \Package{scrletter} would normally use more than 20 of
+these registers for the first page alone. \LaTeX{} itself already uses 40 of
+these registers. The \hyperref[cha:typearea]{\Package{typearea}}%
+\IndexPackage{typearea} package needs some of them too; thus, approximately a
+quarter of these precious registers would already be in use. For this reason,
+\KOMAScript{} stores letter-specific lengths in macros instead of lengths. The
+drawback of this approach is that computations with macros are somewhat more
+complicated than with real lengths.
+
+Note\textnote{Attention!} that 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 written without the initial
+backslash, like the names of \LaTeX{} counters and unlike macros or \LaTeX{}
+lengths.
+
+Anyone who wants to argue that the recommended \LaTeX{} installation with
+\eTeX{}, which is required for \KOMAScript{} anyway, no longer suffers from
+the above-mentioned limitation would be right. However, that improvement came
+too late for \Class{scrlttr2}. With \Package{scrletter}, the concept of
+psuedo-lengths was adopted for reasons of compatibility.
+
+The pseudo-lengths defined and uses by \KOMAScript{} are listed in
+\autoref{tab:scrlttr2-experts.pseudoLength}, which also provides cross
+references to the detailed descriptions of each pseudo-lengths in the
+following sub-sections.
+
+A schematic display of the most important distances of the letterhead page is
+shown in \autoref{fig:scrlttr2-experts.pseudoLength} on
+\autopageref{fig:scrlttr2-experts.pseudoLength}. In addition to the
+pseudo-lengths for the configurable distances, some non-configurable lengths
+are also shown in light gray. For the sake of clarity, however, some rarely
+required pseudo-lengths have been omitted.
+%
+\begin{desclist}
+ \renewcommand{\abovecaptionskipcorrection}{-\normalbaselineskip}%
+ \desccaption{%
+ Pseudo-lengths provided by \Class{scrlttr2} and \Package{scrletter}%
+ \label{tab:scrlttr2-experts.pseudoLength}%
+ }{%
+ Pseudo-lengths provided by \Class{scrlttr2} and \Package{scrletter}
+ (\emph{continued})%
+ }%
+ \pentry{backaddrheight}{%
+ the height of the return address at the upper edge of the address field
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.backaddrheight})%
+ }%
+ \pentry{bfoldmarklength}{%
+ the length of the bottommost fold mark
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.bfoldmarkvpos})%
+ }%
+ \pentry{bfoldmarkvpos}{%
+ the vertical distance of the bottommost fold mark from the top edge of the
+ paper (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.bfoldmarkvpos})%
+ }%
+ \pentry{firstfoothpos}{%
+ the horizontal distance of the letterhead page footer from the left edge
+ of the paper; values greater than the width of the paper or less than the
+ negative value of the width of the paper activate special handling %
+ (\autoref{sec:scrlttr2-experts.firstFoot},
+ \DescPageRef{scrlttr2-experts.plength.firstfoothpos})%
+ }%
+ \pentry{firstfootvpos}{%
+ the vertical distance of letterhead page footer from the top edge of the
+ paper (\autoref{sec:scrlttr2-experts.firstFoot},
+ \DescPageRef{scrlttr2-experts.plength.firstfootvpos})%
+ }%
+ \pentry{firstfootwidth}{%
+ the width of the letterhead page footer
+ (\autoref{sec:scrlttr2-experts.firstFoot},
+ \DescPageRef{scrlttr2-experts.plength.firstfootwidth})%
+ }%
+ \pentry{firstheadhpos}{%
+ the horizontal distance of the letterhead from the left edge of the paper;
+ values greater than the width of the paper or less than the negative value
+ of the width of the paper activate special handling
+ (\autoref{sec:scrlttr2-experts.firstHead},
+ \DescPageRef{scrlttr2-experts.plength.firstheadhpos})%
+ }%
+ \pentry{firstheadvpos}{%
+ the vertical distance of the letterhead from the top edge of the paper
+ (\autoref{sec:scrlttr2-experts.firstHead},
+ \DescPageRef{scrlttr2-experts.plength.firstheadvpos})%
+ }%
+ \pentry{firstheadwidth}{%
+ the width of the letterhead (\autoref{sec:scrlttr2-experts.firstHead},
+ \DescPageRef{scrlttr2-experts.plength.firstheadwidth})%
+ }%
+ \pentry{foldmarkhpos}{%
+ the horizontal distance of the horizontal fold marks from the left edge of
+ the paper (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.foldmarkhpos})%
+ }%
+ \pentry{foldmarkvpos}{%
+ the vertical distance of the vertical fold marks from the top edge of the
+ paper (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.foldmarkvpos})%
+ }%
+ \pentry{fromrulethickness}{%
+ the thickness of an optional horizontal rule in the letterhead
+ (\autoref{sec:scrlttr2-experts.firstHead},
+ \DescPageRef{scrlttr2-experts.plength.fromrulethickness})%
+ }%
+ \pentry{fromrulewidth}{%
+ the length of an optional horizontal rule in the letterhead
+ (\autoref{sec:scrlttr2-experts.firstHead},
+ \DescPageRef{scrlttr2-experts.plength.fromrulewidth})%
+ }%
+ \pentry{lfoldmarkhpos}{%
+ the horizontal distance of the vertical fold mark from the left edge of
+ the paper (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.lfoldmarkhpos})%
+ }%
+ \pentry{lfoldmarklength}{%
+ the length of the vertical fold mark
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.lfoldmarklength})%
+ }%
+ \pentry{locheight}{%
+ the height of the field containing the additional sender information if
+ the value is not 0; if it is 0, \PLength{toaddrheight} is used instead
+ (\autoref{sec:scrlttr2-experts.locationField},
+ \DescPageRef{scrlttr2-experts.plength.locheight})%
+ }%
+ \pentry{lochpos}{%
+ the horizontal distance of the field containing the additional sender
+ information; if the value is positive, the distance is measured from the
+ right paper edge; if negative, from the left paper edge; if 0, the
+ negative value of \PLength{toaddrhpos} is used instead
+ (\autoref{sec:scrlttr2-experts.locationField},
+ \DescPageRef{scrlttr2-experts.plength.lochpos})%
+ }%
+ \pentry{locvpos}{%
+ the vertical distance of the field containing the additional sender
+ information from the top edge of the paper if the value is not 0; if it is
+ 0, \PLength{toaddrvpos} is used instead
+ (\autoref{sec:scrlttr2-experts.locationField},
+ \DescPageRef{scrlttr2-experts.plength.locvpos})%
+ }%
+ \pentry{locwidth}{%
+ the width of the field containing the additional sender information; if it
+ is 0, the width is calculated automatically based on the
+ \DescRef{scrlttr2.option.locfield} option described in
+ \autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.locfield} %
+ (\autoref{sec:scrlttr2-experts.locationField},
+ \DescPageRef{scrlttr2-experts.plength.locwidth})%
+ }%
+ \pentry{mfoldmarklength}{%
+ the length of the middle horizontal fold mark
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.mfoldmarklength})%
+ }%
+ \pentry{mfoldmarkvpos}{%
+ the vertical distance of the middle horizontal fold mark from the top edge
+ of the paper (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.mfoldmarkvpos})%
+ }%
+ \pentry{pfoldmarklength}{%
+ the length of the hole-punch mark
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.pfoldmarklength})%
+ }%
+ \pentry{PPdatamatrixvskip}{%
+ the vertical distance between the postpaid header and the data array with
+ \OptionValueRef{scrlttr2}{addrfield}{PP}
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.PPdatamatrixvskip})%
+ }%
+ \pentry{PPheadheight}{%
+ the height of the postpaid header
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.PPheadheight})%
+ }%
+ \pentry{PPheadwidth}{%
+ the width of the left postpaid field with
+ \OptionValueRef{scrlttr2}{addrfield}{PP}
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.PPheadwidth})%
+ }%
+ \pentry{refaftervskip}{%
+ vertical skip below reference-field line %
+ (\autoref{sec:scrlttr2-experts.refLine},
+ \DescPageRef{scrlttr2-experts.plength.refaftervskip})%
+ }%
+ \pentry{refhpos}{%
+ the horizontal distance of reference-field line from the left
+ edge of the paper; if the value is 0, the reference-field line is centred
+ horizontally on the letterhead page
+ (\autoref{sec:scrlttr2-experts.refLine},
+ \DescPageRef{scrlttr2-experts.plength.refhpos})%
+ }%
+ \pentry{refvpos}{%
+ the vertical distance of reference-field line from the top
+ edge of the paper (\autoref{sec:scrlttr2-experts.refLine},
+ \DescPageRef{scrlttr2-experts.plength.refvpos})%
+ }%
+ \pentry{refwidth}{%
+ the width of the reference-field line
+ (\autoref{sec:scrlttr2-experts.refLine},
+ \DescPageRef{scrlttr2-experts.plength.refwidth})%
+ }%
+ \pentry{sigbeforevskip}{%
+ the vertical skip between the closing and the signature
+ (\autoref{sec:scrlttr2-experts.closing},
+ \DescPageRef{scrlttr2-experts.plength.sigbeforevskip})%
+ }%
+ \pentry{sigindent}{%
+ the indentation of the signature with respect to the text body
+ (\autoref{sec:scrlttr2-experts.closing},
+ \DescPageRef{scrlttr2-experts.plength.sigindent})%
+ }%
+ \pentry{specialmailindent}{%
+ the left indentation of the delivery method within the address field
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.specialmailindent})%
+ }%
+ \pentry{specialmailrightindent}{%
+ the right indentation of the delivery method within the address field
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.specialmailrightindent})%
+ }%
+ \pentry{subjectaftervskip}{%
+ the vertical skip after the subject
+ (\autoref{sec:scrlttr2-experts.subject},
+ \DescPageRef{scrlttr2-experts.plength.subjectaftervskip})%
+ }%
+ \pentry{subjectbeforevskip}{%
+ additional vertical skip before the subject
+ (\autoref{sec:scrlttr2-experts.subject},
+ \DescPageRef{scrlttr2-experts.plength.subjectbeforevskip})%
+ }%
+ \pentry{subjectvpos}{%
+ the vertical distance of the subject from the top edge of the paper; if it
+ is 0, the position is calculated based on the
+ \DescRef{scrlttr2.option.subject} option
+ (\autoref{sec:scrlttr2-experts.subject},
+ \DescPageRef{scrlttr2-experts.plength.subjectaftervskip})%
+ }%
+ \pentry{tfoldmarklength}{%
+ the length of the topmost horizontal fold mark
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.tfoldmarklength})%
+ }%
+ \pentry{tfoldmarkvpos}{%
+ the vertical distance of the topmost horizontal folding mark from the top
+ edge of the paper (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.tfoldmarkvpos})%
+ }%
+ \pentry{toaddrheight}{%
+ the height of the address field (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.toaddrheight})%
+ }%
+ \pentry{toaddrhpos}{%
+ the horizontal distance of the address field from left edge of the paper,
+ if the value is positive; if it is negative, the negative horizontal
+ distance of the address field from the right edge of the paper
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.toaddrhpos})%
+ }%
+ \pentry{toaddrindent}{%
+ the left and right indentation of the address within the address field
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.toaddrindent})%
+ }%
+ \pentry{toaddrvpos}{%
+ the vertical distance of the address field from the the top edge of the
+ paper (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.toaddrvpos})%
+ }%
+ \pentry{toaddrwidth}{%
+ the width of the address field %
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.toaddrwidth})%
+ }%
+\end{desclist}
+
+\begin{figure}
+ \centering
+ \includegraphics{plenDIN}
+ \caption{Schematic of the pseudo-lengths for a letter}
+ \label{fig:scrlttr2-experts.pseudoLength}
+\end{figure}
+
+
+\begin{Declaration}
+ \Macro{newplength}\Parameter{name}
+\end{Declaration}
+This\ChangedAt{v3.26}{\Class{scrlttr2}\and \Package{scrletter}} command
+defines a new pseudo-length. The new pseudo-length is uniquely identified by
+its \PName{name}. Each name can therefore be assigned only once. If you
+attempt to redefine an existing pseudo-length, the commands exits with an
+error message.
+
+\BeginIndex{Cmd}{@newplength}%
+Since the ordinary user does not normally need to define pseudo-lengths, this
+command was not a user instruction until \KOMAScript~3.26. Before then,
+\Macro{@newplength} existed with the same functionality. This instruction still
+exists for package authors.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setplength}%
+ \OParameter{factor}\Parameter{pseudo-length}\Parameter{value}%
+ \Macro{addtoplength}%
+ \OParameter{factor}\Parameter{pseudo-length}\Parameter{value}
+\end{Declaration}
+Using \Macro{setplength}, you can assign the multiple of a
+\PName{value} to a \PName{pseudo-length}. The \PName{factor} is given as an
+optional argument (see also \DescRef{scrlttr2.cmd.setlengthtoplength},
+\autoref{sec:scrlttr2.pseudoLength},
+\DescPageRef{scrlttr2.cmd.setlengthtoplength}).
+
+With \Macro{addtoplength} you can add the multiple of a \PName{value} to a
+\PName{pseudo-length}. Again, you can pass a \PName{factor} as an optional
+argument.
+
+To assign or to add the multiple of one \PName{pseudo-length} to another
+pseudo-length, use the \Macro{useplength} command (see
+\autoref{sec:scrlttr2.pseudoLength}, \DescPageRef{scrlttr2.cmd.useplength})
+within the \PName{value}. To subtract the value of one \PName{pseudo-length}
+from another \PName{pseudo-length}, you use should use at the same time a
+minus sign or \PValue{-1} as the \PName{factor}.
+
+\BeginIndex{Cmd}{@setplength}%
+\BeginIndex{Cmd}{@addtoplength}%
+Since the ordinary user does not normally need to define pseudo-lengths, these
+commands were not user instructions until \KOMAScript~3.26. Before then,
+\Macro{@setplength} and \Macro{@addtoplength} existed with the
+same functionality. These commands still exist for the use of package authors.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{setplengthtowidth}
+ \OParameter{factor}\Parameter{pseudo-length}\Parameter{content}%
+ \Macro{setplengthtoheight}
+ \OParameter{factor}\Parameter{pseudo-length}\Parameter{content}%
+ \Macro{setplengthtodepth}
+ \OParameter{factor}\Parameter{pseudo-length}\Parameter{content}%
+ \Macro{setplengthtototalheight}
+ \OParameter{factor}\Parameter{pseudo-length}\Parameter{content}%
+\end{Declaration}
+The\ChangedAt{v3.26}{\Class{scrlttr2}\and \Package{scrletter}} first three
+commands essentially correspond with \Macro{settowidth},
+\Macro{settoheight}, and \Macro{settodepth} from the \LaTeX{} kernel, but set
+\PName{pseudo-length}s instead of lengths. Like
+\DescRef{\LabelBase.cmd.setplength}, these commands extend their \LaTeX{}
+kernel equivalents with an optional \PName{factor}. They set a
+\PName{pseudo-length} to the natural width, height or depth of the given
+\PName{content}, multiplied by the optional \PName{factor}. The additional
+command \Macro{setplengthtototalheight} sets the \PName{pseudo-length} to the
+sum of the height and depth of \PName{content} multiplied by the optional
+\PName{factor}.%
+\EndIndexGroup
+
+
+\subsection{Fold Marks}
+\seclabel{foldmarks}
+\BeginIndexGroup
+\BeginIndex{}{fold marks}%
+\index{marks>folding|see{fold marks}}
+
+Fold marks, or folding marks, are short horizontal lines at the left edge, and
+short vertical lines at the upper edge of the paper. \KOMAScript{} currently
+supports three configurable horizontal and one configurable vertical fold
+marks. In addition, there is support for a hole-punch mark, or centre mark,
+which cannot be shifted vertically.
+
+\begin{Declaration}
+ \PLength{tfoldmarkvpos}%
+ \PLength{mfoldmarkvpos}%
+ \PLength{bfoldmarkvpos}
+\end{Declaration}
+\KOMAScript{} recognises a total of three fold marks whose vertical position
+can be configured. The distance of the top fold mark from the upper edge of
+the paper is determined by the \PLength{tfoldmarkvpos} pseudo-length; the
+distance of the middle fold mark, by the
+\PLength{mfoldmarkvpos}\ChangedAt{v2.97e}{\Class{scrlttr2}} pseudo-length; the
+distance of the bottommost fold mark, by \PLength{bfoldmarkvpos}
+pseudo-length. With the addition of the hole-punch\Index{hole-punch mark} or
+centre\Index{centre mark|see{hole-punch mark}} mark, there is yet a fourth
+horizontal mark. This one is however always placed at the vertical centre of
+the paper.
+\iftrue% Umbruchkorrekturtext
+There is no pseudo-length for this last mark because its vertical position is
+not configurable.
+\fi
+
+The\textnote{Attention!} top and bottom fold marks do not serve to divide the
+paper exactly into equal thirds. Instead, the paper should be folded with
+their help such that the address field can be seen in a window envelope. The
+settings are therefore different depending on the \File{lco} file chosen.
+Several such files are available offering predefined formats. One format
+particularly worth noting is \Option{DINmtext}. This format assumes an
+envelope format of C6/5 (also known as ``C6 long''). Letters written with this
+option are typically not suited for C5 or C4 envelopes.
+
+The middle fold mark is not normally required for Western letters. In Japan,
+however, a larger number of envelope formats exists, requiring one more fold
+mark (see the Japanese \File{lco} files). Note that the terms ``top'',
+``middle'', and ``bottom'' fold marks only represent a naming convention. In
+fact, it is not required that \PLength{tfoldmarkvpos} must be smaller than
+\PLength{mfoldmarkvpos}, which in turn must be smaller than
+\PLength{bfoldmarkvpos}. If, though, one of the pseudo-lengths is zero, then
+the corresponding fold mark will not be set even if the
+\DescRef{scrlttr2.option.foldmarks}\IndexOption{foldmarks~=\PName{setting}}%
+\important{\DescRef{scrlttr2.option.foldmarks}} option (see
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.foldmarks}) is
+explicitly activated.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{tfoldmarklength}%
+ \PLength{mfoldmarklength}%
+ \PLength{bfoldmarklength}%
+ \PLength{pfoldmarklength}
+\end{Declaration}
+These\ChangedAt{v2.97e}{\Class{scrlttr2}} four pseudo-lengths determine the
+lengths of the four horizontal fold marks. One\textnote{Attention!} feature is
+particularly worth noting. If the length is given as zero, then the three
+vertically configurable pseudo-lengths \PLength{tfoldmarklength},
+\PLength{mfoldmarklength} and \PLength{bfoldmarklength} are set to 2\Unit{mm}.
+The length of the hole-punch mark, \PLength{pfoldmarklength}, however, is set
+to 4\Unit{mm}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{foldmarkhpos}
+\end{Declaration}
+This pseudo-length gives the distance of all horizontal fold marks from the
+left edge of the paper. Normally, this is 3.5\Unit{mm}. You\textnote{Hint!}
+can change this value in your own \File{lco} file if you are using a printer
+that has a wider unprintable left margin. Whether the fold marks are typeset
+at all depends on the option \DescRef{scrlttr2.option.foldmarks}%
+\important{\DescRef{scrlttr2.option.foldmarks}}%
+\IndexOption{foldmarks~=\PName{setting}} (see
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.foldmarks}).
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{lfoldmarkhpos}
+\end{Declaration}
+In\ChangedAt{v2.97e}{\Class{scrlttr2}} addition to the horizontal fold marks,
+there is also a vertical fold mark. Its distance from the left margin is set
+via the \PLength{lfoldmarkhpos} pseudo-length. This fold mark is used, for
+example, in Japanese Chou- or You-format envelopes if you want to use them
+with A4 paper. It can also be useful for envelopes in C6 format.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{lfoldmarklength}
+\end{Declaration}
+The\ChangedAt{v2.97e}{\Class{scrlttr2}} \PLength{lfoldmarklength}
+pseudo-length determines the length of the vertical fold mark. Once again, a
+feature worth noting is that if the length is given as zero, a length of
+4\Unit{mm} is actually used.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{foldmarkvpos}
+\end{Declaration}
+This\ChangedAt{v2.97e}{\Class{scrlttr2}} pseudo-length determines the distance of
+all vertical fold marks from the upper edge of the paper. Normally this is
+3.5\Unit{mm}, but\textnote{Hint!} you can change the value in your own
+\File{lco} file in case your printer has a wider unprintable
+top margin. Whether or not the foldmarks are actually typeset depends on the
+\DescRef{scrlttr2.option.foldmarks}%
+\important{\DescRef{scrlttr2.option.foldmarks}}%
+\IndexOption{foldmarks~=\PName{setting}} option (see
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.foldmarks}).
+\iffree{At present there is only one vertical fold mark, called the left
+ vertical fold mark.}{}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{foldmarkthickness}
+\end{Declaration}
+This\ChangedAt{v2.97c}{\Class{scrlttr2}} pseudo-length determines the
+thickness of all fold marks. The default is 0.2\Unit{pt}, in other words a
+very thin hairline. In\textnote{Hint!} particular, if the colour of the fold
+marks is changed, this may not be enough.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Letterhead}
+\seclabel{firstHead}
+\BeginIndexGroup
+\BeginIndex{}{letterhead}%
+
+The term letterhead refers here to all of the information concerning the
+sender that appears above the recipient's address. Normally you would expect
+that this information would be set through the page-style settings. In fact,
+this was the case with the old letter class, \Class{scrlettr}.
+But\textnote{Attention!} \Class{scrlttr2} and \Package{scrletter} output the
+letterhead independently of the page style by means of the
+\DescRef{scrlttr2.cmd.opening}\IndexCmd{opening} command.
+% Fuellmaterial
+\iftrue%
+ The letterhead is positioned absolutely, so that it is independent of the
+ type area. In fact, the first page of a letter, the page that holds the
+ letterhead, is set using the page style
+ \DescRef{scrlttr2.pagestyle.empty}\IndexPagestyle{empty}.%
+\fi
+% Ende des Fuellmaterials
+
+
+\begin{Declaration}
+ \PLength{firstheadvpos}
+\end{Declaration}
+The \PLength{firstheadvpos} pseudo-length gives the distance between the top
+edge of the paper and the start of the letterhead. This value is set
+differently in the various predefined
+\File{lco} files\textnote{\File{lco} file}\Index{lco file=\File{lco} file}. A
+typical value is 8\Unit{mm}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{firstheadhpos}
+\end{Declaration}
+A positive value of the
+\PLength{firstheadhpos}\ChangedAt{v3.05}{\Class{scrlttr2}} pseudo-length gives
+the distance between the left edge of the paper and the start of the
+letterhead. If\textnote{Attention!} the value is actually greater than or
+equal to the paper width,
+\Length{paperwidth}\important{\Length{paperwidth}}\IndexLength{paperwidth},
+the letterhead will be centred horizontally on the letterhead paper. A
+negative value gives the distance between the right edge of the paper and the
+right edge of the letterhead. If the value actually less than or equal to the
+negative value of the width of the paper, the letterhead is placed flush with
+the left edge of the type area.
+
+The default\textnote{Attention!} value is typically
+\Length{maxdimen}\IndexLength{maxdimen}, which is the maximum allowed value of
+a length. This results in horizontal centring.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{firstheadwidth}
+\end{Declaration}
+The \PLength{firstheadwidth} pseudo-length gives the width of the letterhead.
+This value is set differently in the various predefined \File{lco}
+files\textnote{\File{lco} file}\Index{lco file=\File{lco} file}. While this
+value usually depends on the paper width and the distance between the left
+edge of the paper and the recipient's address field, it was the width of the
+type area in \Option{KOMAold} and has a fixed value of 170\Unit{mm} in
+\Option{NF}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{fromrulethickness}%
+ \PLength{fromrulewidth}
+\end{Declaration}
+As mentioned in the explanation of the
+\DescRef{scrlttr2.option.fromrule}\IndexOption{fromrule} option in
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.fromrule}, you
+can put a horizontal rule within or below the sender's address in the
+predefined letterheads. If\textnote{Attention!} the \PLength{fromrulewidth}
+pseudo-length has a value of 0\Unit{pt}, which is the default in the
+predefined \File{lco} files, the length of this rule is calculated
+automatically taking into account, for example, letterhead width or an
+optional logo. You can adjust rule length manually in your own \File{lco}
+files by setting this pseudo-length to positive values using
+\Macro{setplength} (see \DescPageRef{scrlttr2-experts.cmd.setplength}). The
+default thickness of the line\ChangedAt{v2.97c}{\Class{scrlttr2}},
+\PLength{fromrulethickness}, is 0.4\Unit{pt}.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Addressee}
+\seclabel{addressee}%
+\BeginIndexGroup
+\BeginIndex{}{addressee}
+\index{recipient|seealso{addressee}}
+
+The term \emph{addressee} normally refers only to the recipient's name and
+address, which are output in an address field. Additional information,
+however, can be placed within this address field, including the delivery
+method, for example registered mail or special delivery. For window envelopes,
+the return address also counts as part of the address field, as it will be
+displayed in the address window. The address field directly follows the
+letterhead.
+
+\begin{Declaration}
+ \PLength{toaddrvpos}%
+ \PLength{toaddrhpos}
+\end{Declaration}
+These pseudo-lengths define the vertical and horizontal distance of the
+address field from the top-left corner of the paper. Values are set
+differently in the various predefined \File{lco} files\textnote{\File{lco}
+file}\Index{lco file=\File{lco} file}, according to standard envelope window
+measures. For \PLength{toaddrhpos}, one property worth noting is that with
+negative values, the offset is the distance from the right edge of the address
+field to the right edge of the paper. You will find this, for instance, in
+\Option{SN} or \Option{NF}. The smallest value of \PLength{toaddrvpos} is
+found with \Option{DINmtext}. With this setting, the letterhead can easily
+protrude into the address window. Whether the address field is output or not
+depends on the \Option{addrfield} option (see
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.addrfield}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{toaddrheight}
+\end{Declaration}
+This pseudo-length defines the height of the address field, including the
+delivery method. Whether the name and address of the recipient are vertically
+centred in the address field, taking into account the presence or absence of
+the delivery method, depends on the \DescRef{scrlttr2.option.addrfield}
+option.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{toaddrwidth}
+\end{Declaration}
+This pseudo-length defines the width of the address field. The various
+predefined \File{lco} files\textnote{\File{lco} files}\Index{lco
+file=\File{lco} files} use different settings according to the different
+standards for window envelopes. Typical values are between 70\Unit{mm} and
+100\Unit{mm}.
+\begin{Example}
+ Suppose your printer has very wide, non-printable left and right margins of 15\Unit{mm}.
+ This means that the letterhead, the additional sender information, and the address field cannot
+ be completely printed if you use the \Option{SN} option. You therefore
+ create a new \File{lco} file with the following content:
+\begin{lstcode}
+ \ProvidesFile{SNmmarg.lco}
+ [2002/06/04 v0.1 my lco]
+ \LoadLetterOption{SN}
+ \addtoplength{toaddrwidth}{%
+ -\useplength{toaddrhpos}}
+ \setplength{toaddrhpos}{-15mm}
+ \addtoplength{toaddrwidth}{%
+ \useplength{toaddrhpos}}
+ \endinput
+\end{lstcode}
+ Then, until you can obtain a printer with smaller page margins, you
+ simply use the option \Option{SNmmarg} instead of \Option{SN}.%
+\end{Example}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{toaddrindent}
+\end{Declaration}
+Sometimes you do not want the address field to extend the full width of the
+address window but to be indented a bit. You can set the amount of this
+indentation with the \PLength{toaddrindent} pseudo-length. Typically, the
+default value is 0\Unit{pt}.
+
+For\textnote{Attention!} the\ChangedAt{v3.03}{\Class{scrlttr2}}
+\OptionValueRef{scrlttr2}{addrfield}{PP}\important{%
+ \OptionValueRef{scrlttr2}{addrfield}{PP}\\
+ \OptionValueRef{scrlttr2}{addrfield}{image}\\
+ \OptionValueRef{scrlttr2}{addrfield}{backgroundimage}
+}\IndexOption{addrfield~=\textKValue{PP}},
+\OptionValueRef{scrlttr2}{addrfield}{image}%
+\IndexOption{addrfield~=\textKValue{image}}, and
+\OptionValueRef{scrlttr2}{addrfield}{backgroundimage}%
+\IndexOption{addrfield~=\textKValue{backgroundimage}} settings (see
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.addrfield}) a
+value of 0\Unit{pt} will be replaced by a value of 8\Unit{mm}. If you really
+do not want any indentation, you can use a value of 1\Unit{sp} to set a
+negligibly small indentation. Furthermore, \PLength{toaddrindent} is also used
+for the distance to the right edge of the address window with the these
+\Option{addrfield} settings.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{backaddrheight}
+\end{Declaration}
+For window envelopes, the sender is often printed in a small font on one line
+above the addressee. This sender information is called the return
+address\textnote{return address}\Index{return address}, because it is visible
+in the address window and will be used by the post office to return an
+undeliverable letter to the sender. This return address, therefore, requires
+only the information necessary for that purpose.
+
+The height reserved for the return address within the address window is given
+by the \PLength{backaddrheight} pseudo-length. This value is typically
+5\Unit{mm} in the predefined \File{lco} files\textnote{\File{lco}
+file}\Index{}{lco file=\File{lco} file}. Whether to print the return address
+at all depends on the \Option{addrfield} (see
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.addrfield}) and
+\DescRef{scrlttr2.option.backaddress} options (see
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.backaddress}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{specialmailindent}%
+ \PLength{specialmailrightindent}
+\end{Declaration}
+You can print an optional delivery method between the return address and the
+recipient's address. This field is printed only if the
+\DescRef{scrlttr2.variable.specialmail} variable has non-empty contents. Its
+alignment is determined by the \PLength{specialmailindent} and
+\PLength{specialmailrightindent} pseudo-lengths, which specify the left and
+right indentation, respectively. In the predefined \File{lco}
+files\textnote{\File{lco} file}\Index{lco file=\File{lco} file},
+\PLength{specialmailindent} is set to rubber length \Macro{fill}, while
+\PLength{specialmailrightindent} is set to 1\Unit{em}. Thus the delivery
+method is set 1\Unit{em} from the address field's right margin.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{PPheadheight}%
+ \PLength{PPheadwidth}
+\end{Declaration}
+The \PLength{PPheadheight}\ChangedAt{v3.03}{\Class{scrlttr2}} pseudo-length
+specifies the height reserved for the postpaid header at the start of the
+address field for the two options
+\OptionValueRef{scrlttr2}{addrfield}{PP}\important{%
+ \OptionValueRef{scrlttr2}{addrfield}{PP}\\
+ \OptionValueRef{scrlttr2}{addrfield}{backgroundimage}}%
+\IndexOption{addrfield~=\textKValue{PP}} and
+\OptionValueRef{scrlttr2}{addrfield}{backgroundimage}%
+\IndexOption{addrfield~=\textKValue{backgroundimage}}. The
+\PLength{PPheadwidth} pseudo-length is used only with
+\OptionValueRef{scrlttr2}{addrfield}{PP} (see
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.addrfield}) and
+gives the width of the left-hand field within the postpaid header, which
+contains the postpaid logo, the postal code, and the location. The width of
+the right-hand field containing the sender's code and the priority is the
+remaining width.
+
+\KOMAScript{}\textnote{Attention!} automatically changes the default value of
+0\Unit{mm} for the \PLength{PPheadheight} pseudo-length to 20.74\Unit{pt}, and
+\PLength{PPheadwidth}'s default from 0\Unit{mm} to 42\Unit{mm}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{PPdatamatrixvskip}
+\end{Declaration}
+This\ChangedAt{v3.03}{\Class{scrlttr2}} pseudo-length specifies the vertical
+distance between the postpaid header and the data array used with
+\OptionValueRef{scrlttr2}{addrfield}{PP}%
+\important{\OptionValueRef{scrlttr2}{addrfield}{PP}}%
+\IndexOption{addrfield~=\PValue{PP}} (see \autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.addrfield}). \KOMAScript{}\textnote{Attention!}
+automatically changes the default value of 0\Unit{mm} to 9\Unit{mm}. The data
+matrix is flush right within the postpaid header.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Extra Sender Information}
+\seclabel{locationField}
+\BeginIndexGroup
+\BeginIndex{}{extra sender information}
+\index{sender>extra information|see{extra sender information}}
+
+Often, especially with business letters, there is not enough space in the
+letterhead and footer to accommodate all the information about the sender that
+you want to include. For such additional information, you can use the space
+next to the addressee. In this manual, this field is called the
+\emph{extra sender information}. In earlier versions of this manual, it
+was called the \emph{sender's extension} or the \emph{location field}.
+
+\begin{Declaration}
+ \PLength{locheight}%
+ \PLength{lochpos}%
+ \PLength{locvpos}%
+ \PLength{locwidth}
+\end{Declaration}
+The \PLength{locwidth} and
+\PLength{locheight}\ChangedAt{v2.97d}{\Class{scrlttr2}} pseudo-lengths set the
+width and height of the extra-sender-information field. The \PLength{lochpos}
+and \PLength{locvpos} pseudo-lengths determine the distances from the
+top-right edge of the paper. These values are typically set to 0\Unit{pt} in
+the predefined \File{lco} files. These\textnote{Attention!} zero-length values
+have a special meaning. They result in the actual values being set within
+\DescRef{scrlttr2.cmd.opening} based on the paper width, the address-window
+width, the address window's distance from the top-left edge of the paper, and
+the \DescRef{scrlttr2.option.locfield} option (see
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.locfield}). As
+is the case for \PLength{toaddrhpos}, negative values of \PLength{lochpos}
+also take on a special meaning. Instead of referring to the distance from the
+right edge of the paper, \PLength{lochpos} then refers to the distance from
+the left edge of the paper. The meaning is thus the opposite of that of
+\PLength{toaddrhpos} (see \autoref{sec:scrlttr2-experts.addressee},
+\DescPageRef{scrlttr2-experts.plength.toaddrhpos}).%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Reference Line}
+\seclabel{refLine}%
+\BeginIndexGroup
+\BeginIndex{}{reference line}
+\index{business line|see{reference line}}
+
+The reference line can actually be longer than just one line. It is printed
+only if at least one of variables for the reference line is not empty. Only
+non-empty fields will be printed. To\textnote{Hint!} set a seemingly empty
+field, you can provide content for the variable that appears empty, such as
+\Macro{mbox}\Parameter{}. If the reference line is omitted, the description
+and contents of the \DescRef{scrlttr2.variable.date} variable are printed in
+its place. You can find information about adding variables to or removing them
+from the reference line in \autoref{sec:scrlttr2-experts.variables},
+\DescPageRef{scrlttr2-experts.cmd.removereffields}.
+
+
+\begin{Declaration}
+ \PLength{refvpos}
+\end{Declaration}
+This pseudo-length specifies the distance from the upper edge of the paper to
+the reference line. Its value is set differently in the various predefined
+\File{lco} files\textnote{\File{lco} file}\Index{lco file=\File{lco} file}.
+Typical values are between 80.5\Unit{mm} and 98.5\Unit{mm}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{refwidth}%
+ \PLength{refhpos}
+\end{Declaration}
+The \PLength{refwidth} pseudo-length specifies the width available for the
+reference line. Its value is typically set to 0\Unit{pt} in the predefined
+\File{lco} files\textnote{\File{lco} file}\Index{lco file=\File{lco} file}.
+This\textnote{Attention!} value has a special meaning. In no way does it
+indicate that there is no available width for the reference line. Instead, it
+indicates that the width will be calculated within the
+\DescRef{scrlttr2.cmd.opening}\IndexCmd{opening} command. This calculated
+width then depends on the value of the \DescRef{scrlttr2.option.refline}%
+\important{\DescRef{scrlttr2.option.refline}}%
+\IndexOption{refline~=\PName{setting}} options (see
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.refline}). At
+the same time, \PLength{refhpos} will also be set according to this option.
+With \OptionValueRef{scrlttr2}{refline}{wide}%
+\IndexOption{refline~=\textKValue{wide}}, the reference fields line is
+centred, while with \OptionValueRef{scrlttr2}{refline}{narrow}%
+\IndexOption{refline~=\textKValue{narrow}} it is aligned flush left with the
+type area.
+
+If \PLength{refwidth} is not zero, the width of the reference line is not
+determined by the \DescRef{scrlttr2.option.refline} option, and so
+\PLength{refhpos} specifies the distance of the reference line from the left
+edge of the paper. If\textnote{Attention!} this distance is zero, the the
+reference line is placed so that the ratio between its distances from the left
+and right edges of the paper corresponds to the ratio of distance of the type
+area from the left and right edges of the paper. Thus, for a type area
+horizontally centred on the paper, the reference line will also be centred.
+
+As a rule, these special cases are likely of little interest to the normal
+user. The\textnote{Attention!} simplest rule is as follows: either
+\PLength{refhpos} remains zero, and so the width and alignment of the
+reference line are determined with the \DescRef{scrlttr2.option.refline}
+option, or the user sets both \PLength{refwidth} and \PLength{refhpos}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{refaftervskip}
+\end{Declaration}
+This pseudo-length specifies the vertical skip to be inserted beneath the
+reference line. The value is set in the predefined \File{lco}
+files\textnote{\File{lco} file}\Index{lco file=\File{lco} file}. It directly
+affects the height of the text area on the first page. A typical value is
+between one and two lines.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Subject}
+\seclabel{subject}%
+\BeginIndexGroup
+\BeginIndex{}{subject}
+
+Different countries have different conventions for placing the subject line of
+a letter. Some place it before the opening phrase; others place it after. Some
+professional groups even want it before the reference line.
+
+\begin{Declaration}
+ \PLength{subjectvpos}
+\end{Declaration}
+\ChangedAt{v3.01}{\Class{scrlttr2}}%
+If\textnote{Attention!} the value of this pseudo-length is 0\Unit{pt}, the
+\DescRef{scrlttr2.option.subject}\important{\DescRef{scrlttr2.option.subject}}%
+\IndexOption{subject~=\PName{Einstellung}} option (see
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.subject})
+determines the position of the subject. Any other value defines the distance
+between the top edge of the paper and the subject. In this
+case\textnote{Hint!}, you should ensure that there is enough space available
+that overlapping with other elements is unlikely.
+\begin{Example}
+ A few professionals prefer to have the subject above the reference line. For
+ this, you can specify the position as follows, which also changes the
+ position of the reference line itself:
+\begin{lstcode}
+ \ProvidesFile{lawsubj.lco}
+ [2008/11/03 lawyers lco file]
+ \setplength{subjectvpos}{\useplength{refvpos}}
+ \addtoplength{refvpos}{3\baselineskip}
+ \endinput
+\end{lstcode}
+ If you want to leave at least one empty line between the subject and the
+ reference, you have space for a maximum of two lines.
+\end{Example}
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{subjectbeforevskip}%
+ \PLength{subjectaftervskip}
+\end{Declaration}
+\ChangedAt{v3.01}{\Class{scrlttr2}}%
+If the subject is placed not absolutely but before or after the salutation,
+you can insert additional vertical space before and after the subject. The
+space before the subject may interfere with other distances, such as the
+automatic distance of one line after the title. Therefore the default is to
+use no additional space here. The default of the class and the package for the
+space after the subject is two lines.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Closing}
+\seclabel{closing}
+\BeginIndexGroup
+\BeginIndex{}{closing}
+
+The closing of a letter consists of three parts: In addition to the closing
+phrase, there is a hand-written signature and a printed text such as a name,
+which acts as a kind of explanation of the hand-written signature.
+
+\begin{Declaration}
+ \PLength{sigindent}%
+ \PLength{sigbeforevskip}
+\end{Declaration}
+The closing phrase\Index{closing>phrase}\Index{signature} and signature
+explanation are typeset in a box whose width is determined by the length of
+the longest line of the closing phrase or explanation.
+
+The box will be indented by the distance specified in the \PLength{sigindent}
+pseudo-length. In the predefined \File{lco} files\textnote{\File{lco}
+file}\Index{lco file=\File{lco} file}, this length is set to 0\Unit{mm}.
+
+Between the closing phrase and the signature explanation, a vertical skip is
+inserted whose height is defined in the \PLength{sigbeforevskip}
+pseudo-length. In the predefined \File{lco} files\textnote{\File{lco}
+file}\Index{lco file=\File{lco} file} this value is set to two lines. In this
+space you can then write your signature.%
+\iffalse% Umbruchkorrekturtext
+\ If you decide to include a facsimile of your signature in the
+\DescRef{scrlttr2.variable.signature}\IndexVariable{signature}%
+\important{\DescRef{scrlttr2.variable.signature}} with the
+\Package{graphicx}\IndexPackage{graphicx} package, it would be useful
+to reduce the value of \PLength{sigbeforevskip} and thus the gap between
+the closing phrase and the signature.%
+\fi%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Letterhead Page Footer}
+\seclabel{firstFoot}%
+\BeginIndexGroup
+\BeginIndex{}{letterhead page>footer}%
+
+The first page of a letter, the letterhead page, contains not just its own
+header, the letterhead, but also its own footer\Index{footer>letterhead
+page}\Index{footer}. Just like the letterhead, it will be set not by the page
+style but directly within \DescRef{scrlttr2.cmd.opening}\IndexCmd{opening}%
+\important{\DescRef{scrlttr2.cmd.opening}}.
+
+\begin{Declaration}
+ \PLength{firstfootvpos}
+\end{Declaration}
+This pseudo-length gives the distance from the top of the paper to the footer
+of the letterhead page. It also ensures that the text area does not protrude
+into the footer. To do so, the height of the text area on the first page will
+be decreased, if necessary, using
+\Macro{enlargethispage}\IndexCmd{enlargethispage}%
+\important{\Macro{enlargethispage}}. The
+\DescRef{scrlttr2.option.enlargefirstpage}%
+\important{\DescRef{scrlttr2.option.enlargefirstpage}} option (see
+\autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.enlargefirstpage}) can also ensure that the
+height of the text area is increased, if necessary. Thus, the distance between
+text area and the letterhead page footer can be reduced to the value of the
+\Length{footskip}\IndexLength{footskip}\important{\Length{footskip}} length.
+
+With\textnote{Attention!} the compatibility option
+set\ChangedAt{v2.9t}{\Class{scrlttr2}} to versions up to
+2.9t\IndexOption{version~=\PValue{2.9t}} (see
+\DescRef{scrlttr2.option.version} in
+\autoref{sec:scrlttr2.compatibilityOptions},
+\DescPageRef{scrlttr2.option.version}) the footer is set independently of the
+type area in all predefined \File{lco} files\textnote{\File{lco}
+file}\Index{lco file=\File{lco} file} (see \autoref{sec:scrlttr2.lcoFile})
+except for \Option{KOMAold} and \Option{NF}. Thus the
+\DescRef{scrlttr2.option.enlargefirstpage}%
+\important{\DescRef{scrlttr2.option.enlargefirstpage}} option has no effect.
+From version 2.9u on, the footer is placed at the bottom edge of the paper.
+Thus, the height of the letterhead page's type area may also depend on the
+\DescRef{scrlttr2.option.enlargefirstpage} option.
+
+If the letter footer is deactivated with the
+\OptionValueRef{scrlttr2}{firstfoot}{false}%
+\important{\OptionValueRef{scrlttr2}{firstfoot}{false}}%
+\IndexOption{firstfoot~=\PValue{false}}\ChangedAt{v2.97e}{\Class{scrlttr2}}
+option (see \autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.firstfoot}), the setting of
+\PLength{firstfootvpos} is ignored, and instead
+\Length{paperheight}\IndexLength{paperheight} is applied. There remains then a
+minimum bottom margin of length \Length{footskip}\IndexLength{footskip}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{firstfoothpos}
+\end{Declaration}
+\ChangedAt{v3.05}{\Class{scrlttr2}}%
+A\textnote{Attention!} positive value of the \PLength{firstfoothpos}
+pseudo-length specifies the distance from the left edge of the paper to the
+letterhead page footer. If the value is greater than or equal to the paper
+width, \Length{paperwidth}\IndexLength{paperwidth}, the footer is centred
+horizontally on the letterhead page. But if the value is less than or equal to
+the negative width of the paper, the footer is placed flush with the left edge
+of the typing area.
+
+The typical default for this value is \Length{maxdimen}\IndexLength{maxdimen},
+which is the maximum possible value for a length. This results in horizontal
+centring.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{firstfootwidth}
+\end{Declaration}
+This pseudo-length specifies the width of the footer of the first page of the
+letter, that is the letterhead page. The value in the predefined \File{lco}
+files\textnote{\File{lco} file}\Index{lco file=\File{lco} file} matches
+\PLength{firstheadwidth}\important{\PLength{firstheadwidth}}%
+\IndexPLength{firstheadwidth}.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Variables for Experienced Users}
+\seclabel{variables}
+\BeginIndexGroup
+\BeginIndex{}{variables}
+
+\KOMAScript{} provides commands not only to use predefined variables but also
+to define new variables or to change their automatic use within the reference
+line\Index{reference line}.
+
+\begin{Declaration}
+ \Macro{newkomavar}\OParameter{description}\Parameter{name}%
+ \Macro{newkomavar*}\OParameter{description}\Parameter{name}%
+ \Macro{removereffields}%
+ \Macro{defaultreffields}%
+ \Macro{addtoreffields}\Parameter{name}
+\end{Declaration}
+\Macro{newkomavar} defines a new variable. This variable is referenced as
+\PName{name}. Optionally, you can define a \PName{description} for the
+\PName{name} variable. Unlike the \PName{name}, the \PName{description} is not
+used to reference a variable. Instead, the \PName{description} acts as a
+supplement to the content of a variable that can be printed as a label along
+with its content.
+
+You can use the \Macro{addtoreffields} command to add the \PName{name}
+variable to the reference line\Index{reference line} (see
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.refline}). The
+\PName{description} and the content of the variable are added to the end of
+the reference line. The starred version \Macro{newkomavar*} is similar to the
+unstarred version but also calls the \Macro{addtoreffields} command. Thus, the
+starred version automatically adds the variable to the reference line.
+\begin{Example}
+ Suppose you need an additional field for a telephone extension in the
+ reference line. You can define this field with
+\begin{lstcode}
+ \newkomavar[Extension]{myphone}
+ \addtoreffields{myphone}
+\end{lstcode}
+ or more concisely with
+\begin{lstcode}
+ \newkomavar*[Extension]{myphone}
+\end{lstcode}
+\end{Example}
+When\textnote{Attention!} you define a variable for the reference line, you
+should always give it a description.
+
+You can use the \Macro{removereffields} command to remove all variables from
+the reference field. This includes the predefined variables of the class. The
+reference line is then empty. This can be useful, for example, if you wish to
+change the order of the variables in the reference fields line.
+
+The \Macro{defaultreffields} command resets the reference fields line to its
+predefined format. In doing so, all custom-defined variables are removed from
+the reference fields line.
+
+You\textnote{Attention!} should not add the date to the reference line with
+the \Macro{addtoreffields} command. Instead you should use the
+\DescRef{scrlttr2.option.refline}%
+\important{\OptionValueRef{scrlttr2}{refline}{dateleft}\\
+\OptionValueRef{scrlttr2}{refline}{dateright}\\
+\OptionValueRef{scrlttr2}{refline}{nodate}}%
+\IndexOption{refline~=\textKValue{dateleft}}%
+\IndexOption{refline~=\textKValue{dateright}}%
+\IndexOption{refline~=\textKValue{nodate}} option to select whether the date
+should appear on the left or right side of the reference line, or not at all.
+These settings also affect the position of the date when no reference line is
+used.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{usekomavar}\OParameter{command}\Parameter{name}%
+ \Macro{usekomavar*}\OParameter{command}\Parameter{name}
+\end{Declaration}
+The \DescRef{scrlttr2.cmd.usekomavar} and \DescRef{scrlttr2.cmd.usekomavar*}
+commands are, like all commands where a starred version exists or which can
+take an optional argument, not fully expandable. Nevertheless, if you use them
+within \DescRef{scrlttr2.cmd.markboth}\IndexCmd{markboth},
+\DescRef{scrlttr2.cmd.markright}\IndexCmd{markright} or similar commands, you
+need not insert \Macro{protect}\IndexCmd{protect} beforehand. Of course
+this is also true for
+\DescRef{scrlayer-scrpage.cmd.markleft}\IndexCmd{markleft} if you use the
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage} package. These\textnote{Attention!} commands
+cannot be used within commands that directly affect their argument, such as
+\Macro{MakeUppercase}\important{\Macro{MakeUppercase}}%
+\IndexCmd{MakeUppercase}. To avoid this problem you can use commands like
+\Macro{MakeUppercase} as an optional argument to \Macro{usekomavar} or
+\Macro{usekomavar*}. Then you will get the upper-case content of a variable
+with
+\begin{lstcode}[escapeinside=`']
+ \usekomavar[\MakeUppercase]{`\PName{Name}'}
+\end{lstcode}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifkomavarempty}\Parameter{name}\Parameter{true}\Parameter{false}%
+ \Macro{ifkomavarempty*}\Parameter{name}\Parameter{true}\Parameter{false}
+\end{Declaration}
+It is important to know that the content of the variable will be expanded as
+far as this is possible with \Macro{edef}. If this results in spaces or
+unexpandable macros like \Macro{relax}, the result will be not empty even
+where the use of the variable would not result in any visible output.
+
+Once\textnote{Attention!} again, this command cannot be used as the argument
+of \Macro{MakeUppercase}\IndexCmd{MakeUppercase} or similar commands However,
+it is robust enough to be used as the argument of
+\DescRef{scrlttr2.cmd.markboth} or \DescRef{scrlttr2.cmd.footnote}, for
+example.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Additional Information about Page Styles}
+\seclabel{pagestyleatscrletter}
+\BeginIndexGroup
+\BeginIndex{}{page>style}
+
+\LoadNonFree{scrlttr2-experts}{0}%
+\EndIndexGroup
+
+\iffalse% Wurde bereits in Kapitel 4.21 behandelt
+\section{Differences in How \Package{scrletter} Handles \File{lco} Files}
+\seclabel{lcoatscrletter}
+\BeginIndexGroup
+\BeginIndex{File}{lco}
+\BeginIndex{}{lco file=\File{lco} file}
+
+As\ChangedAt{v3.15}{\Package{scrletter}} explained in
+\autoref{sec:scrlttr2.lcoFile}, \Class{scrlttr2} can load \File{lco} files via
+the optional argument of \Macro{documentclass}. The \Package{scrletter} package
+does not support this.
+
+\begin{Declaration}
+ \Macro{LoadLetterOption}\Parameter{name}%
+ \Macro{LoadLetterOptions}\Parameter{list of names}
+\end{Declaration}
+For \Class{scrlttr2}, load \File{lco} files with
+\DescRef{scrlttr2.cmd.LoadLetterOption} or
+\DescRef{scrlttr2.cmd.LoadLetterOptions} is only a recommendation. For
+\Package{scrletter}, it is mandatory. Of course, you can only load the
+\File{lco} files after you load \Package{scrletter}.
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+\fi
+
+
+\section{\File{lco} Files for Experienced Users}
+\seclabel{lcoFile}
+\BeginIndexGroup
+\BeginIndex{File}{lco}
+\BeginIndex{}{lco file=\File{lco} file}
+
+\BeginIndexGroup%
+\BeginIndex{}{paper>format}%
+Although you can use any paper size that the
+\hyperref[cha:typearea]{\Package{typearea}}%
+\IndexPackage{typearea} package can configure, the output of the letterhead
+page may produce undesirable results with some formats. Unfortunately, there
+are no general rules to calculate the position of the address fields and the
+like for every available paper size. Instead, different parameter sets are
+needed for different paper sizes.%
+
+%\subsection{Verifying the Paper Size}
+%\seclabel{papersize}
+
+At present parameter sets and \File{lco} files exist only for A4-sized and
+letter-sized paper. Theoretically, however, the \Class{scrlttr2} class can
+support many more paper sizes. Therefore, it's necessary to verify that the
+correct paper size is used. This is even more true if you use
+\Package{scrletter}, since the paper size depends on the class you use.
+
+\begin{Declaration}
+ \Macro{LetterOptionNeedsPapersize}%
+ \Parameter{option name}\Parameter{paper size}
+\end{Declaration}
+To provide at least a warning when another \PName{paper size} is used, you can
+find a \Macro{LetterOptionNeedsPapersize} command in every \File{lco} file
+distributed with {\KOMAScript}. The first argument is the name of the
+\File{lco} file without the ``\File{.lco}'' suffix. The second argument is the
+paper size for which the \File{lco} file is designed.
+
+If several \File{lco} files are loaded in succession, a
+\Macro{LetterOptionNeedsPapersize} command can be contained in each of them,
+but the \DescRef{scrlttr2.cmd.opening} command will only check the last given
+\PName{paper size}. As the following example shows, an experienced user can
+thus easily write \File{lco} files with parameter sets for other paper sizes.
+\iffalse% Umbruchoptimierung
+If you do not plan to set up such \File{lco} files yourself, you can just
+forget about this option and skip the example.%
+\fi
+\begin{Example}
+ Suppose you use A5-sized paper in normal, that is upright or portrait,
+ orientation for your letters. Let's assume that you want to put them into
+ standard C6 window envelopes. In that case, the position of the address
+ field would be the same as for a standard letter on A4-sized paper. The main
+ difference is that A5 paper needs only one fold. So you want to disable the
+ top and bottom fold marks. You can do this, for example, by placing the
+ marks outside the paper area.
+\begin{lstcode}
+ \ProvidesFile{a5.lco}
+ [2002/05/02 letter class option]
+ \LetterOptionNeedsPapersize{a5}{a5}
+ \setplength{tfoldmarkvpos}{\paperheight}
+ \setplength{bfoldmarkvpos}{\paperheight}
+\end{lstcode}
+ Of course, it would be more elegant to deactivate the marks with the
+ \DescRef{scrlttr2.option.foldmarks} option. In addition, you must adjust the
+ position of the footer, that is, the \PLength{firstfootvpos} pseudo-length.
+ I leave it to the reader to find an appropriate value. When using such an
+ \File{lco} file, you must declare other \File{lco} file options like
+ \File{SN} before you load ``\File{a5.lco}''.
+\end{Example}
+%
+\EndIndexGroup%
+\EndIndexGroup%
+\vskip-\ht\strutbox% Wegen Beispiel am Ende der Erklaerung
+
+
+%\subsection{Visualizing Positions}
+%\seclabel{visualize}
+%\BeginIndexGroup
+\begin{Declaration}
+ \File{visualize.lco}
+\end{Declaration}
+\BeginIndex{Option}{visualize}%
+If you develop your own \File{lco} file, for example to modify the positions
+of various fields on the letterhead page because your own desires or
+requirements, it is helpful if you can make at least some elements directly
+visible. The \File{lco} file
+\File{visualize.lco}\ChangedAt{v3.04}{\Class{scrlttr2}} exists for this
+purpose. You can load this file as you would any other \File{lco} file. But
+this \emph{letter class options} file must be loaded in the document preamble,
+and its effects cannot be deactivated. The \File{lco} file uses the
+\Package{eso-pic}\IndexPackage{eso-pic}%
+\important[i]{\Package{eso-pic}\\\Package{graphicx}} and
+\Package{graphicx}\IndexPackage{graphicx} packages, which are not part of
+\KOMAScript.
+
+
+\begin{Declaration}
+ \Macro{showfields}\Parameter{field list}
+\end{Declaration}
+This command makes the space occupied by the fields on the letterhead page
+visible. The \PName{field list} argument is a comma-separated list of fields
+to be shown. The following fields are supported:
+\begin{labeling}[~--]{\PValue{location}}
+\item[\PValue{test}] is a 10\Unit{cm} by 15\Unit{cm} test field, 1\Unit{cm}
+ from the top and left edges of the paper. This field exists for debugging.
+ You can use it as a benchmark to check whether the measurements have been
+ distorted during the creation of the document.
+\item[\PValue{head}] is the header area of the letterhead page. This field
+ is open at the bottom.
+\item[\PValue{foot}] is the footer area of the letterhead page. This field is
+ open at the top.
+\item[\PValue{address}] is the address window area used by window envelopes.
+\item[\PValue{location}] is the field for the extra sender information.
+\item[\PValue{refline}] is the reference line. This field is open at the
+ bottom.
+\end{labeling}%
+\BeginIndex{FontElement}{field}\LabelFontElement{field}%
+You can change the colour of the visualisation with
+the\DescRef{scrlttr2.cmd.setkomafont} and \DescRef{scrlttr2.cmd.addtokomafont}
+(see \autoref{sec:scrlttr2.textmarkup},
+\DescPageRef{scrlttr2.cmd.setkomafont}) commands using the
+\FontElement{field}\important{\FontElement{field}} element. The default is
+\Macro{normalcolor}.%
+\EndIndex{FontElement}{field}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setshowstyle}\Parameter{style}%
+ \Macro{edgesize}
+\end{Declaration}
+By default, \File{visualize.lco} indicates the individual areas with
+frames\important{\PValue{frame}}, which corresponds to the \PName{style}
+\PValue{frame}. Areas open at top or bottom are not completely framed but have
+an open edge with with small arrows pointing up or down.
+Alternatively\important{\PValue{rule}}, you can use the \PName{style}
+\PValue{rule}. In this case, the area is highlighted by a background colour.
+It isnot possible to distinguish open and closed areas. Instead a minimal
+height will be used for open areas. The third\important{\PValue{edges}}
+available \PName{style} is \PValue{edges}, which shows 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{edgesize} macro
+with a default of 1\Unit{ex}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{showenvelope}\AParameter{width\textup{,}height}%
+ \AParameter{h-offset\textup{,}v-offset}%
+ \OParameter{instructions}%
+ \Macro{showISOenvelope}\Parameter{format}\OParameter{instructions}%
+ \Macro{showUScommercial}\Parameter{format}\OParameter{instructions}%
+ \Macro{showUScheck}\OParameter{instructions}%
+ \Macro{unitfactor}
+\end{Declaration}
+If you have loaded \File{visualize.lco}, you can use these commands to output
+a page with a drawing of an envelope. The envelope drawing is always rotated
+by 90\textdegree{} on a separate page and printed in 1:1~scale. The addressee
+window is generated automatically from the current data for the address
+position of the letterhead page: \PLength{toaddrvpos}, \PLength{toaddrheight},
+\PLength{toaddrwidth}, and \PLength{toaddrhpos}. To do so requires knowing how
+much smaller the folded letter pages are than the width and height of the
+envelope. If you do not specify these two values, \PName{h-offset} and
+\PName{v-offset}, when calling \Macro{showenvelope}, they are calculated from
+the fold marks and the paper size itself.
+
+The \Macro{showISOenvelope}, \Macro{showUScommercial}, and \Macro{showUScheck}
+commands are based on \Macro{showenvelope}. With \Macro{showISOenvelope}, you
+can create ISO-envelopes in C4, C5, C5/6, DL (also known as C5/6) or C6
+\PName{format}. With \Macro{showUScommercial}, you can create a US commercial
+envelope in the 9 or 10 \PName{format}. You can use \Macro{showUScheck} for
+envelopes in US check format.
+
+\BeginIndex{FontElement}{letter}\LabelFontElement{letter}%
+The position of the letterhead page inside the envelope is indicated with
+dashed lines. You can change the colour of these lines with the
+\DescRef{scrlttr2.cmd.setkomafont} and \DescRef{scrlttr2.cmd.addtokomafont}
+(see \autoref{sec:scrlttr2.textmarkup},
+\DescPageRef{scrlttr2.cmd.setkomafont}) using the
+\FontElement{letter}\important{\FontElement{letter}} element. The default is
+\Macro{normalcolor}.%
+\EndIndex{FontElement}{letter}%
+
+\BeginIndex{FontElement}{measure}\LabelFontElement{measure}%
+The envelope drawing will be provided with dimensions automatically. You can
+change the colour of these dimension labels with the commands
+\DescRef{scrlttr2.cmd.setkomafont} and \DescRef{scrlttr2.cmd.addtokomafont}
+(see \autoref{sec:scrlttr2.textmarkup},
+\DescPageRef{scrlttr2.cmd.setkomafont}) using the
+\FontElement{measure}\important{\FontElement{measure}} element. The default is
+\Macro{normalcolor}. The dimensions are given in multiples of
+\Length{unitlength}, with an accuracy of $1/\Macro{unitfactor}$, where the
+accuracy of \TeX{} arithmetic is the actual limits. The default is 1. You can
+redefine \Macro{unitfactor} using \Macro{renewcommand}.%
+\EndIndex{FontElement}{measure}%
+
+\begin{Example}
+ You are generating a sample letter using the ISO-A4 format. The supported
+ fields should be marked with yellow borders to check their position.
+ Furthermore, the position of the window for a DL-size envelope should be
+ checked with drawing. The dimension lines in this drawing should be red, and
+ the numbers should use a smaller font, with the dimensions printed in cm
+ with an accuracy of 1\Unit{mm}. The dashed letterhead page in the envelope
+ should be coloured green.
+\begin{lstcode}
+ \documentclass[visualize]{scrlttr2}
+ \usepackage{xcolor}
+ \setkomafont{field}{\color{yellow}}
+ \setkomafont{measure}{\color{red}\small}
+ \setkomafont{letter}{\color{green}}
+ \showfields{head,address,location,refline,foot}
+ \usepackage[british]{babel}
+ \usepackage{lipsum}
+ \begin{document}
+ \setkomavar{fromname}{Joe Public}
+ \setkomavar{fromaddress}{2 Valley\\
+ SAMPLEBY\\
+ ZY32 1XW}
+ \begin{letter}{%
+ 1 Hillside\\
+ SAMPLESTEAD\\
+ WX12 3YZ%
+ }
+ \opening{Hello,}
+ \lipsum[1]
+ \closing{Good bye}
+ \end{letter}
+ \setlength{\unitlength}{1cm}
+ \renewcommand*{\unitfactor}{10}
+ \showISOenvelope{DL}
+ \end{document}
+\end{lstcode}
+ This will show the letterhead page as the first page and the drawing of the
+ envelope on the second page.
+\end{Example}
+
+Note that poorly chosen combinations of \Length{unitlength} and
+\Macro{unitfactor} can quickly lead to a \TeX{} \emph{arithmetic overflow}
+error. The dimension numbers shown may also differ slightly from the actual
+values. Neither are errors in \Option{visualize} but merely implementation
+limitations of \TeX.
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Language Support}
+\seclabel{languages}%
+\BeginIndexGroup
+\BeginIndex{}{languages}%
+
+The \Class{scrlttr2} class and the \Package{scrletter} package support many
+languages. These include German\Index{language>German} (\PValue{german} for
+the old German orthography, \PValue{ngerman} for the new orthography;
+\PValue{austrian} for Austrian with the old German orthography,
+\PValue{naustrian}\ChangedAt{v3.09}{\Class{scrlttr2}} for Austrian with the
+new orthography; and \PValue{nswissgerman}\ChangedAt{v3.13}{\Class{scrlttr2}}
+for Swiss German with the new orthogrphy, \PValue{swissgerman} for Swiss
+German with the old orthography), English\Index{language>English} (among
+others, \PValue{english} without specification as to whether American or
+British should be used, \PValue{american} and \PValue{USenglish} for American
+English, and \PValue{british} and \PValue{UKenglish} for British English),
+French\Index{language>French}, Italian\Index{language>Italian},
+Spanish\Index{language>Spanish}, Dutch\Index{language>Dutch},
+Croatian\Index{language>Croatian}, Finnish\Index{language>Finnish},
+Norwegian\Index{language>Norwegian}\ChangedAt{v3.02}{\Class{scrlttr2}},
+Swedish\Index{language>Swedish}\ChangedAt{v3.08}{\Class{scrlttr2}},
+Polish\ChangedAt{v3.13}{\Class{scrlttr2}},
+Czech\ChangedAt{v3.13}{\Class{scrlttr2}}, and Slovak.
+
+You can switch languages using the \Package{babel}\IndexPackage{babel} package
+(see \cite{package:babel}) with the \Macro{selectlanguage}\Parameter{language}
+command. Other packages like \Package{german}\IndexPackage{german} (see
+\cite{package:german}) and \Package{ngerman}\IndexPackage{ngerman} (see
+\cite{package:ngerman}) also define this command. As a rule though, the
+language selection occurs immediately as a direct consequence of loading such
+a package.
+\iffalse% Umbruchkorrekturtext
+For details, please refer to the documentation of the relevant packages.
+\fi
+
+There\textnote{Attention!} is one more point to note about language-switching
+packages. The
+\Package{french}\IndexPackage{french}\important{\Package{french}} package (see
+\cite{package:french}) makes changes well beyond redefining the terms in
+\autoref{tab:scrlttr2-experts.languageTerms}. For instance, it redefines the
+\DescRef{scrlttr2.cmd.opening} command, since the package simply assumes that
+\DescRef{scrlttr2.cmd.opening} is always defined as it is in the standard
+\Class{letter} class. This, however, is not the case with \KOMAScript{}. The
+\Package{french} package thus overwrites the definition and does not work
+correctly with \KOMAScript. I regard this as a fault in the \Package{french}
+package which, although reported decades ago, was unfortunately never
+eliminated.
+
+If you use the \Package{babel}\IndexPackage{babel} package to switch to
+\PValue{french}, problems can occasionally occur. With \Package{babel},
+however, you can usually deactivate changes to a language in a targeted
+manner.%
+\iffalse% This is actually outdated!
+\ If the package \Package{french} is not installed, the problem with
+ \Package{babel} does not arise. Similarly, the problem usually does not
+ exist when you use \Package{babel} with other varieties of French such as
+ \PValue{acadian}, \PValue{canadien}, \PValue{francais} or \PValue{frenchb}
+ instead of \PValue{french}.
+\fi
+
+\iffalse% This is also outdated!
+ However, with \Package{babel} version 3.7j and above, this problem only occurs
+ if the option explicitly indicates that \Package{babel} should use the
+ \Package{french} package.
+%
+\iftrue
+ If you cannot be sure you are not using an old version of \Package{babel}, I
+ recommend you use
+\begin{lstcode}
+ \usepackage[...,frenchb,...]{babel}
+\end{lstcode}
+ to select French.
+ \iffalse %
+ If necessary, you can still switch to French with
+ \Macro{selectlanguage}\PParameter{french}.%
+ \fi%
+\fi
+\fi
+
+\iftrue
+ It cannot be ruled out that similar problems will not occur with other
+ languages or packages. For German and English, however, there are currently
+ no known problems with the \Package{babel} package.
+\fi
+
+
+\begin{Declaration}
+ \Macro{yourrefname}%
+ \Macro{yourmailname}%
+ \Macro{myrefname}%
+ \Macro{customername}%
+ \Macro{invoicename}%
+ \Macro{subjectname}%
+ \Macro{ccname}%
+ \Macro{enclname}%
+ \Macro{headtoname}%
+ \Macro{headfromname}%
+ \Macro{datename}%
+ \Macro{pagename}%
+ \Macro{mobilephonename}%
+ \Macro{phonename}%
+ \Macro{faxname}%
+ \Macro{emailname}%
+ \Macro{wwwname}%
+ \Macro{bankname}
+\end{Declaration}
+These commands contain the language-dependent terms. These\important[i]{%
+ \DescRef{scrbase.cmd.newcaptionname}\\
+ \DescRef{scrbase.cmd.renewcaptionname}\\
+ \DescRef{scrbase.cmd.providecaptionname}} definitions can be
+modified to support a new language or for your private customization, as
+described in
+\autoref{sec:scrbase.languageSupport}. \KOMAScript{} sets these terms only in
+\Macro{begin}\PParameter{document}. Therefore they are not available in the
+preamble and cannot be redefined there. The default settings for
+\Option{english} and \Option{ngerman} are listed in
+\autoref{tab:scrlttr2-experts.languageTerms}.%
+\EndIndexGroup
+%\iffree{}{\clearpage}% Siehe Kommentar zur Tabelle
+
+\begin{Declaration}
+ \Macro{captionsacadian}
+ \Macro{captionsamerican}
+ \Macro{captionsaustralien}
+ \Macro{captionsaustrian}
+ \Macro{captionsbritish}
+ \Macro{captionscanadian}
+ \Macro{captionscanadien}
+ \Macro{captionscroatian}
+ \Macro{captionsczech}
+ \Macro{captionsdutch}
+ \Macro{captionsenglish}
+ \Macro{captionsfinnish}
+ \Macro{captionsfrancais}
+ \Macro{captionsfrench}
+ \Macro{captionsgerman}
+ \Macro{captionsitalian}
+ \Macro{captionsnaustrian}
+ \Macro{captionsnewzealand}
+ \Macro{captionsngerman}
+ \Macro{captionsnorsk}
+ \Macro{captionsnswissgerman}
+ \Macro{captionspolish}
+ \Macro{captionsslovak}
+ \Macro{captionsspanish}
+ \Macro{captionsswedish}
+ \Macro{captionsswissgerman}
+ \Macro{captionsUKenglish}
+ \Macro{captionsUSenglish}
+\end{Declaration}
+If you change the language of a letter, the language-dependent terms listed in
+\autoref{tab:scrlttr2-experts.languageTerms},
+\autopageref{tab:scrlttr2-experts.languageTerms} are redefined using these
+commands. If your language-switching package does not support this, you can
+also use the above commands directly.
+%
+\begin{table}
+ \begin{minipage}{\textwidth}
+ \centering
+% \KOMAoptions{captions=topbeside}%
+% \setcapindent{0pt}%
+ \caption[{%
+ Defaults for language-dependent terms
+ }]{%
+ Defaults for language-dependent terms for the languages
+ \Option{english} and \Option{ngerman}, if they are not already defined
+ by the packages used for language switching%
+ \label{tab:scrlttr2-experts.languageTerms}%
+ }[l]
+ \begin{tabular}[t]{lll}
+ \toprule
+ Command & \Option{english} & \Option{ngerman} \\
+ \midrule
+ \Macro{bankname} & Bank account & Bankverbindung \\
+ \Macro{ccname}\footnotemark[1] & cc & Kopien an \\
+ \Macro{customername} & Customer no. & Kundennummer \\
+ \Macro{datename} & Date & Datum \\
+ \Macro{emailname} & Email & E-Mail \\
+ \Macro{enclname}\footnotemark[1] & encl & Anlagen \\
+ \Macro{faxname} & Fax & Fax \\
+ \Macro{headfromname} & From & Von \\
+ \Macro{headtoname}\footnotemark[1] & To & An \\
+ \Macro{invoicename} & Invoice no. & Rechnungsnummer \\
+ \Macro{myrefname} & Our ref. & Unser Zeichen \\
+ \Macro{pagename}\footnotemark[1] & Page & Seite \\
+ \Macro{mobilephonename} & Mobile phone & Mobiltelefon \\
+ \Macro{phonename} & Phone & Telefon \\
+ \Macro{subjectname} & Subject & Betrifft \\
+ \Macro{wwwname} & Url & URL \\
+ \Macro{yourmailname} & Your letter of & Ihr Schreiben vom\\
+ \Macro{yourrefname} & Your ref. & Ihr Zeichen \\
+ \bottomrule
+ \end{tabular}
+ \deffootnote{1em}{1em}{1\ }% brutal aber effektiv
+ \footnotetext[1000]{Normally these terms are defined by language
+ packages like \Package{babel}. In this case, \KOMAScript{} does not
+ redefine them. The actual wording may therefore differ and can
+ be found in the documentation for the language package used.}
+% \end{captionbeside}
+ \end{minipage}
+\end{table}
+%
+\EndIndexGroup
+\iffree{}{\clearpage}% Umbruchkorrektur
+
+\begin{Declaration}
+ \Macro{dateacadian}
+ \Macro{dateamerican}
+ \Macro{dateaustralien}
+ \Macro{dateaustrian}
+ \Macro{datebritish}
+ \Macro{datecanadian}
+ \Macro{datecanadien}
+ \Macro{datecroatian}
+ \Macro{dateczech}
+ \Macro{datedutch}
+ \Macro{dateenglish}
+ \Macro{datefinnish}
+ \Macro{datefrancais}
+ \Macro{datefrench}
+ \Macro{dategerman}
+ \Macro{dateitalian}
+ \Macro{datenaustrian}
+ \Macro{datenewzealand}
+ \Macro{datengerman}
+ \Macro{datenorsk}
+ \Macro{datenswissgerman}
+ \Macro{datepolish}
+ \Macro{dateslovak}
+ \Macro{datespanish}
+ \Macro{dateswedish}
+ \Macro{dateswissgerman}
+ \Macro{dateUKenglish}
+ \Macro{dateUSenglish}
+\end{Declaration}
+Depending on the language used, the numerical representation of the date\Index{date} (see option
+\DescRef{scrlttr2.option.numericaldate} in \autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.numericaldate}) is formatted in various ways.
+The exact format can be found in \autoref{tab:date}.%
+\EndIndexGroup
+%
+\EndIndexGroup
+\iffree{}{\clearpage}% Umbruchkorrektur zwecks Ausgabe der Tabellen
+
+\begin{table}[!tp]% Umbruchoptimierung
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}{Language-dependent forms of the date}[l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Command & Date Example \\
+ \midrule
+ \Macro{dateacadian} & 24.\,12.\,1993\\
+ \Macro{dateamerican} & 12/24/1993\\
+ \Macro{dateaustralien}& 24/12/1993\\
+ \Macro{dateaustrian} & 24.\,12.\,1993\\
+ \Macro{datebritish} & 24/12/1993\\
+ \Macro{datecanadian} & 1993/12/24\\
+ \Macro{datecanadien} & 1993/12/24\\
+ \Macro{datecroatian} & 24.\,12.\,1993.\\
+ \Macro{dateczech} & 24.\,12.\,1993\\
+ \Macro{datedutch} & 24.\,12.\,1993\\
+ \Macro{dateenglish} & 24/12/1993\\
+ \Macro{datefinnish } & 24.12.1993.\\
+ \Macro{datefrancais} & 24.\,12.\,1993\\
+ \Macro{datefrench} & 24.\,12.\,1993\\
+ \Macro{dategerman} & 24.\,12.\,1993\\
+ \Macro{dateitalian} & 24.\,12.\,1993\\
+ \Macro{datenaustrian} & 24.\,12.\,1993\\
+ \Macro{datenewzealand}& 24/12/1993\\
+ \Macro{datengerman} & 24.\,12.\,1993\\
+ \Macro{datenorsk} & 24.12.1993\\
+ \Macro{datenswissgerman} & 24.\,12.\,1993\\
+ \Macro{datepolish} & 24.\,12.\,1993\\
+ \Macro{dateslovak} & 24.\,12.\,1993\\
+ \Macro{datespanish} & 24.\,12.\,1993\\
+ \Macro{dateswedish} & 24/12 1993\\
+ \Macro{dateswissgerman} & 24.\,12.\,1993\\
+ \Macro{dateUKenglish} & 24/12/1993\\
+ \Macro{dateUSenglish} & 12/24/1993\\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:date}
+\end{table}
+%
+\section{Obsolete Commands in \Class{scrlttr2}}
+\seclabel{obsolete}
+\BeginIndexGroup
+
+\LoadNonFree{scrlttr2-experts}{1}
+\EndIndexGroup
+%
+\iffalse% Es wird Zeit das komplett rauszuwerfen!
+\section{From Obsolete \Class{scrlettr} to Current \Class{scrlttr2}}
+\seclabel{fromscrlettr}
+
+With\textnote{Attention!} the 2002 release of \Class{scrlttr2} (see
+\autoref{cha:scrlttr2}), the old letter class, \Class{scrlettr}, became
+obsolete, and it is no longer part of \KOMAScript. If you still need the class
+or information about it, you will find it in
+\cite{package:koma-script-obsolete}.
+
+To facilitate the transition to the new class, there is the compatibility
+option \Option{KOMAold}. Basically, all the older functionality still
+exists in the new class. Without \Option{KOMAold}, however, the user
+interface and the defaults are different. More details on
+this option are provided in \autoref{sec:scrlttr2.lcoFile},
+\autoref{tab:lcoFiles}.
+
+\LoadNonFree{scrlttr2-experts}{2}
+%
+\EndIndexGroup
+\fi
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% ispell-local-dictionary: "english"
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrlttr2.tex b/macros/latex/contrib/koma-script/source-doc/english/scrlttr2.tex
new file mode 100644
index 0000000000..e63f59c2ab
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrlttr2.tex
@@ -0,0 +1,3463 @@
+% ======================================================================
+% scrlttr2.tex
+% Copyright (c) Markus Kohm, 2002-2019
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrlttr2.tex
+% Copyright (c) Markus Kohm, 2002-2019
+%
+% 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 scrlttr2 of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber scrlttr2 in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrlttr2.tex}%
+ [$Date: 2019-01-15 08:39:58 +0100 (Tue, 15 Jan 2019) $
+ 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\and
+ Karl Hagen}
+
+% Date of the translated German file: 2018-04-26
+
+\chapter{Letters with the \Class{scrlttr2} Class or the \Package{scrletter}
+ Package}
+\labelbase{scrlttr2}
+
+\BeginIndexGroup
+\BeginIndex{Class}{scrlttr2}\BeginIndex{Package}{scrletter}%
+\BeginIndex{}{letters}%
+Letters are quite different in many ways from articles, reports, books, and
+the like. That alone justifies a separate chapter on letters. But there are
+other reasons for a separate chapter on \Class{scrlttr2} and
+\Package{scrletter}.
+
+The \Class{scrlttr2}\important{\Class{scrlttr2}} class was developed from
+scratch in 2002. It provides a completely new user interface, different from
+every other class I know. This new user interface may be unusual, but it
+offers benefits to both new and experienced {\KOMAScript} users.
+
+The \Package{scrletter}\important{\Package{scrletter}}%
+\ChangedAt{v3.15}{\Package{scrletter}} package has supplemented \KOMAScript{}
+since Version~3.15. It also provides all the letter-based functionality of
+\Class{scrlttr2} to the other classes. I recommend you use one of the
+\KOMAScript{} classes\,---\,\Class{scrbook}, \Class{scrreprt} or
+\Class{scrartcl}\,---\, which are explained in the previous chapter. With
+minor limitations, \Package{scrletter} also works well with the standard
+classes.
+
+The starting point for developing \Package{scrletter} was, on the one hand,
+requests from users who also wanted to have elements such as
+section\textnote{headings, floating environments, indexes} headings, floating
+environments, or a bibliography in letters. On the other hand, there were also
+requests to use \Class{scrlttr2} variables in the remaining \KOMAScript{}
+classes. You can achieve both by combining the desired \KOMAScript{} class
+with \Package{scrletter}.
+
+Compared to the letter class, the letter package has a few small changes that
+were necessary to avoid conflicts with other classes. These changes mainly
+affect the page styles and are explicitly documented (see
+\autoref{sec:\LabelBase.pagestyle}, starting at
+\autopageref{sec:\LabelBase.pagestyle}). Where \Package{scrletter} is not
+explicitly mentioned, everything that is documented for \Class{scrlttr2}
+applies without change.
+
+
+\section{Variables}
+\seclabel{variables}%
+\BeginIndexGroup
+\BeginIndex{}{variables}
+
+In addition to options, commands, environments, counters, and lengths,
+\autoref{cha:maincls} introduced the concept of additional elements for
+\KOMAScript{}. A typical property of an element is its font style and the
+ability to change it (see \autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}). In this section we introduce
+variables. Variables can have a label used to identify them when they are
+output in the document as well as their actual content. To avoid confusion
+with labels used for cross-references, this guide refers to such labels as the
+``description'' of the variable. The content of a variable can be set
+independently of the time and place it is used the same way that the content
+of a command can be defined separately from its use. The main difference
+between a command and a variable is that a command usually triggers an action,
+whereas a variable usually consists of plain text which is then output by a
+command. In addition, a variable can also have a description which can be
+customised and output.
+
+This section deliberately confines itself to introducing the concept of
+variables. The examples below have no special meaning. More detailed
+examples can be found in the explanation of predefined variables used in the
+class and the package. An overview of all defined variables is given in
+\autoref{tab:\LabelBase.variables}.
+%
+\begin{desclist}
+ %\renewcommand*{\abovecaptionskipcorrection}{-\normalbaselineskip}%
+ \desccaption{Supported variables in \Class{scrlttr2} and
+ \Package{scrletter}\label{tab:\LabelBase.variables}}%
+ {Supported variables in \Class{scrlttr2} and \Package{scrletter}
+ (\emph{continued})}%
+ \ventry{addresseeimage}{%
+ commands used to print the postpaid postmark for the
+ \OptionValueRef{\LabelBase}{addrfield}{backgroundimage} option or the
+ postpaid address for the \OptionValueRef{\LabelBase}{addrfield}{image}
+ option (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.addresseeimage})}%
+ \ventry{backaddress}{%
+ return address for window envelopes %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.backaddress})}%
+ \ventry{%
+ backaddressseparator}{separator within the return address %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.backaddressseparator})}%
+ \ventry{ccseparator}{%
+ separator between title of additional addresses (cc list)
+ and additional addresses %
+ (\autoref{sec:\LabelBase.document},
+ \DescPageRef{\LabelBase.variable.ccseparator})}%
+ \ventry{customer}{%
+ customer number %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.customer})}%
+ \ventry{date}{%
+ date %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.date})}%
+ \ventry{emailseparator}{%
+ separator between email name and email address %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.emailseparator})}%
+ \ventry{enclseparator}{%
+ separator between title of enclosure and enclosures %
+ (\autoref{sec:\LabelBase.document},
+ \DescPageRef{\LabelBase.variable.enclseparator})}%
+ \ventry{faxseparator}{%
+ separator between title of fax and fax number %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.faxseparator})}%
+ \ventry{firstfoot}{%
+ footer\ChangedAt{v3.08}{\Class{scrlttr2}} of the letterhead page %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.firstfoot})}%
+ \ventry{firsthead}{%
+ header\ChangedAt{v3.08}{\Class{scrlttr2}} of the letterhead page %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.firsthead})}%
+ \ventry{fromaddress}{%
+ sender's address without sender name %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromaddress})}%
+ \ventry{frombank}{%
+ sender's bank details %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.frombank})}%
+ \ventry{fromemail}{%
+ sender's e-mail %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromemail})}%
+ \ventry{fromfax}{%
+ sender's fax number %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromfax})}%
+ \ventry{fromlogo}{%
+ commands for inserting the sender's logo %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromlogo})}%
+ \ventry{frommobilephone}{%
+ \ChangedAt{v3.12}{\Class{scrlttr2}}%
+ sender's mobile telephone number %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.frommobilephone})}%
+ \ventry{fromname}{%
+ complete name of sender %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromname})}%
+ \ventry{fromphone}{%
+ sender's telephone number %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromphone})}%
+ \ventry{fromurl}{%
+ URL of the sender, e.\,g. of the sender's homepage %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromurl})}%
+ \ventry{fromzipcode}{%
+ ZIP code (postal code) of the sender for the postpaid postmark of the
+ \OptionValueRef{\LabelBase}{addrfield}{PP} option %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromzipcode})}%
+ \ventry{invoice}{%
+ invoice number %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.invoice})}%
+ \ventry{location}{%
+ extra details of the sender %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.location})}%
+ \ventry{myref}{%
+ sender's reference %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.myref})}%
+ \ventry{nextfoot}{%
+ footer\ChangedAt{v3.08}{\Class{scrlttr2}} using page style
+ \PageStyle{headings}\IndexPagestyle{headings} or
+ \PageStyle{myheadings}\IndexPagestyle{myheadings} %
+ (\autoref{sec:\LabelBase.pagestyle},
+ \DescPageRef{\LabelBase.variable.nextfoot})}%
+ \ventry{nexthead}{%
+ header\ChangedAt{v3.08}{\Class{scrlttr2}} using page style
+ \PageStyle{headings}\IndexPagestyle{headings} or
+ \PageStyle{myheadings}\IndexPagestyle{myheadings} %
+ (\autoref{sec:\LabelBase.pagestyle},
+ \DescPageRef{\LabelBase.variable.nexthead})}%
+ \ventry{phoneseparator}{%
+ separator between title of telephone and telephone number %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.phoneseparator})}%
+ \ventry{place}{%
+ sender's location; used next to date %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.place})}%
+ \ventry{placeseparator}{%
+ separator between location and date %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.placeseparator})}%
+ \ventry{PPdatamatrix}{%
+ command to print the data array for the
+ \OptionValueRef{\LabelBase}{addrfield}{PP} option %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.PPdatamatrix})}%
+ \ventry{PPcode}{%
+ commands for the sender's identification code for the
+ \OptionValueRef{\LabelBase}{addrfield}{PP} option %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.PPcode})}%
+ \ventry{signature}{%
+ signature annotation beneath the closing text of the letter %
+ (\autoref{sec:\LabelBase.closing},
+ \DescPageRef{\LabelBase.variable.signature})}%
+ \ventry{specialmail}{%
+ delivery method %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.specialmail})}%
+ \ventry{subject}{%
+ letter's subject %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.subject})}%
+ \ventry{subjectseparator}{%
+ separator between subject title and subject %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.subjectseparator})}%
+ \ventry{title}{%
+ letter title %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.title})}%
+ \ventry{toaddress}{%
+ address of recipient without recipient name %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.toaddress})}%
+ \ventry{toname}{%
+ complete name of recipient %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.toname})}%
+ \ventry{yourmail}{%
+ date of recipient's referenced mail %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.yourmail})}%
+ \ventry{yourref}{%
+ recipient's reference %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.yourref})}%
+ \ventry{zipcodeseparator}{%
+ separator between the title of ZIP code (postal code) and the code itself %
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.zipcodeseparator})}%
+\end{desclist}
+
+\begin{Declaration}
+ \Macro{setkomavar}%
+ \Parameter{name}\OParameter{description}\Parameter{content}%
+ \Macro{setkomavar*}\Parameter{name}\Parameter{description}
+\end{Declaration}
+The \Macro{setkomavar} command sets the \PName{content} of the \PName{name}
+variable. Using the optional argument, you can change the \PName{description}
+of the variable at the same time. In contrast, \Macro{setkomavar*} sets only
+the \PName{description} of the \PName{name} variable.
+\begin{Example}
+ It is customary for letters to indicate the sender in the letterhead.
+ First, \KOMAScript{} must know the name of the sender. For
+ ``Joe Public'' that would be done with:
+\begin{lstcode}
+ \setkomavar{fromname}{Joe Public}
+\end{lstcode}
+ The default for the description of the sender is ``From''. Assuming,
+ however, that Mr Public wants to have ``Sender'' in the places where
+ \KOMAScript{} outputs his name, he would have to add
+\begin{lstcode}
+ \setkomavar*{fromname}{Sender}
+\end{lstcode}
+ or combine the two commands into one:
+\begin{lstcode}
+ \setkomavar{fromname}[Sender]{Joe Public}
+\end{lstcode}
+ He thus kills two birds with one stone, so to speak.
+\end{Example}
+By the way, you can delete the content of the variable by providing an empty
+\PName{content} argument. Of course, you can delete the \PName{description} of
+the variable in the same way, with an empty argument for the description.
+\begin{Example}
+ Suppose Mr Public wants to have no label for the name of the sender. He can
+ either delete it for himself with
+\begin{lstcode}
+ \setkomavar*{fromname}{}
+\end{lstcode}
+ or he could again kill two birds with one stone and use
+\begin{lstcode}
+ \setkomavar{fromname}[]{Joe Public}
+\end{lstcode}
+ This will simultaneously set the contents of the variable and delete its
+ description.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{usekomavar}\OParameter{command}\Parameter{name}%
+ \Macro{usekomavar*}\OParameter{command}\Parameter{name}
+\end{Declaration}
+In\ChangedAt{v2.9i}{\Class{scrlttr2}} some cases, it is necessary to access
+the content or description of a variable and not to leave this solely to the
+class. This is especially important if you have defined a variable which is
+not added to the reference fields line. Using the command \Macro{usekomavar}
+you have access to the content of the \PName{name} variable, whereas the
+starred version \Macro{usekomavar*} allows you to access the description or
+title. In \autoref{sec:scrlttr2-experts.variables},
+\DescPageRef{scrlttr2-experts.cmd.newkomavar} you can find more information
+about defining your own variables.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifkomavar}\Parameter{name}\Parameter{then code}\Parameter{else code}
+\end{Declaration}
+With\ChangedAt{v3.03}{\Class{scrlttr2}} this command, you can determine if a
+variable has already been defined. The \PName{then code} will be executed only
+if the variable already exists. The variable's contents will not be examined
+and so can be empty. The \PName{else code} will be executed if the variable
+does not exist. Such tests can be useful, for example, if your own variables
+are defined in one \File{lco} file\Index{lco file=\File{lco} file} (see
+\autoref{sec:\LabelBase.lcoFile} starting at
+\autopageref{sec:\LabelBase.lcoFile}) but used in another \File{lco} file only
+if they exist.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifkomavarempty}\Parameter{name}\Parameter{then code}%
+ \Parameter{else code}%
+ \Macro{ifkomavarempty*}\Parameter{name}\Parameter{then code}%
+ \Parameter{else code}
+\end{Declaration}
+With\ChangedAt{v2.9i}{\Class{scrlttr2}} these commands, you can determine
+whether either the content or the description of a variable is empty. The
+\PName{then code} will be executed if the expanded content or the expanded
+description of the \PName{name} variable is empty. Otherwise, the \PName{else
+code} will be executed. The starred variant tests the variable's description,
+while the normal variant tests its contents.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Pseudo-lengths}
+\seclabel{pseudoLength}
+\BeginIndexGroup
+\BeginIndex{}{pseudo-lengths}
+
+\LaTeX{} processes lengths with three commands:
+\Macro{newlength}\IndexCmd{newlength}, \Macro{setlength}\IndexCmd{setlength}
+and \Macro{addtolength}\IndexCmd{addtolength}. Many packages also use macros,
+which are commands, to store lengths. \KOMAScript{} extends this method with
+the ability to process such lengths stored in macros with commands similar to
+those used to handle real lengths. \KOMAScript{} calls lengths that are
+actually stored in macros \emph{pseudo-lengths}.
+
+You can find a list of all pseudo-lengths defined by \Class{scrlttr2} in
+\autoref{tab:scrlttr2-experts.pseudoLength},
+\autopageref{tab:scrlttr2-experts.pseudoLength}. A graphical representation of
+the main pseudo-lengths for the letterhead page is given in
+\autoref{fig:scrlttr2-experts.pseudoLength}. The dimensions used in the figure
+correspond to the default settings of \Class{scrlttr2}. More detailed
+descriptions of the individual pseudo-lengths are found in the individual
+sections of this chapter.
+
+Since users will usually not need to define their own pseudo-lengths, the
+method for defining them is described in the part for experts, in
+\autoref{sec:scrlttr2-experts.pseudoLengths},
+\DescPageRef{scrlttr2-experts.cmd.newplength}. Setting pseudo-lengths to new
+values should also be a matter for advanced users, so this is also described
+in the part for experts, on \DescPageRef{scrlttr2-experts.cmd.setplength}.
+
+Note\textnote{Attention!} that although these pseudo-lengths are internally
+implemented as macros, the commands to use pseudo-lengths expect only the the
+pseudo-length names. These are written without backslashes, like the names of
+\LaTeX{} counters and unlike macros or real lengths.
+
+\begin{Declaration}
+ \Macro{useplength}\Parameter{name}
+\end{Declaration}
+Using this command you can access the value of the pseudo-length of
+the given \PName{name}. This is one of the few user commands in
+connection with pseudo-lengths. Of course this command can also be
+used with an \File{lco} file\Index{lco file=\File{lco} file} (see
+\autoref{sec:\LabelBase.lcoFile} ab \autopageref{sec:\LabelBase.lcoFile}).%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setlengthtoplength}%
+ \OParameter{factor}\Parameter{length}\Parameter{pseudo-length}%
+ \Macro{addtolengthplength}%
+ \OParameter{factor}\Parameter{length}\Parameter{pseudo-length}
+\end{Declaration}
+With the \Macro{setlengthtoplength} command, you can assign a multiple of a
+\PName{pseudo-length} to a real \PName{length}. The \PName{factor} is given
+as an optional argument instead of directly preceding the
+\PName{pseudo-length}. You should also use this command when you want to
+assign the negative of a \PName{pseudo-length} to a \PName{length}. In this
+case, you can use either a minus sign or \PValue{-1} as the \PName{factor}.
+The \Macro{addtolengthplength} command works very similarly. It adds the
+\PName{pseudo-length} multiplied by the \PName{factor} to the \PName{length}.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\LoadCommonFile{options} % \section{Early or Late Selection of Options}
+
+\LoadCommonFile{compatibility} % \section{Compatibility with Earlier Versions of
+ % \KOMAScript{}}
+
+\LoadCommonFile{draftmode} % \section{Draft-Mode}
+
+\LoadCommonFile{typearea} % \section{Page Layout}
+
+For letters, it is normally not useful to distinguish one-sided and two-sided
+printing. Since letters are not usually bound, each page of a letter will be
+viewed on its own. This is also true even if both the letter is printed on
+both sides of the paper. Vertical adjustment usually does not matter for
+letters either. If you nevertheless need it, or want to understand what it is,
+please refer to the commands \Macro{raggedbottom} and \Macro{flushbottom}
+explained in \autoref{sec:maincls.typearea} on
+\DescPageRef{maincls.cmd.flushbottom}.%
+%
+\EndIndexGroup
+
+
+\section{General Structure of Letter Documents}
+\seclabel{document}
+\BeginIndexGroup
+\BeginIndex{}{letter>structure}
+
+The general structure of a letter document differs somewhat from the structure
+of a normal document. Whereas a book document usually contains only one book,
+a letter document can contain several letters. As illustrated in
+\autoref{fig:\LabelBase.document}, a letter document consists of a preamble,
+the individual letters, and the closing.
+
+\begin{figure}
+ \KOMAoptions{captions=bottombeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{%
+ General structure of a letter document containing several individual letters%
+ }]{%
+ General structure of a letter document containing several individual letters
+ (the structure of a single letter is shown in
+ \autoref{fig:\LabelBase.letter})%
+ \label{fig:\LabelBase.document}%
+ }[l]
+ \begin{minipage}[b]{.667\linewidth}
+ \centering\small\setlength{\fboxsep}{1.5ex}%
+ \addtolength{\linewidth}{-\dimexpr2\fboxrule+2\fboxsep\relax}%
+ \fbox{\parbox{\linewidth}{\raggedright%
+ \Macro{documentclass}\OParameter{\dots}\PParameter{scrlttr2}\\
+ \dots\\
+ {\centering\emph{settings for all letters}\\}
+ \dots\\
+ \Macro{begin}\PParameter{document}\\
+ \dots\\
+ {\centering\emph{settings for all letters}\\}
+ \dots\\
+ }}\\
+ \fbox{\parbox{\linewidth}{\raggedright%
+ \Macro{begin}\PParameter{letter}\Parameter{recipient}\\
+ \dots\\
+ {\centering\emph{content of the individual letter}\\}
+ \dots\\
+ \Macro{end}\PParameter{letter}\\
+ }}\\[2pt]
+ \parbox{\linewidth}{\raggedright\vspace{-.5ex}\vdots\vspace{1ex}}\\
+ \fbox{\parbox{\linewidth}{\raggedright%
+ \Macro{end}\PParameter{document}\\
+ }}\\[\dimexpr\fboxsep+\fboxrule\relax]
+ \end{minipage}
+ \end{captionbeside}
+\end{figure}
+
+The preamble contains all the settings that apply generally to all letters.
+Most of them can also be overwritten in the settings of the individual
+letters. The only setting which cannot currently be changed within a single
+letter is the version of \Class{scrlttr2} for which compatibility is required
+(see the \DescRef{\LabelBase.option.version} option in
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}).
+
+If you use \Package{scrletter}\important{scrletter}, the only difference is
+that another class is loaded, with
+\DescRef{\LabelBase.cmd.usepackage}\PParameter{scrletter} added before the
+settings for all letters. For setting options with \Package{scrletter}, see
+\autoref{sec:\LabelBase.options}, on \autopageref{sec:\LabelBase.options}.
+
+I recommended that you place only general settings such as loading packages
+and setting options before \Macro{begin}\PParameter{document}. You should
+initialise all variables or other textual features after
+\Macro{begin}\PParameter{document}, particularly when you use the
+\Package{babel} package\IndexPackage{babel} (see \cite{package:babel}) or
+change language-dependent variables of \Class{scrlttr2}.
+
+The closing usually consists only of \Macro{end}\PParameter{document}. Of
+course you can also add additional comments at this point.
+
+\begin{figure}
+ \KOMAoptions{captions=bottombeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{%
+ General structure of a single letter within a letter document%
+ }]{%
+ General structure of a single letter within a letter document (see also
+ \autoref{fig:\LabelBase.document})%
+ \label{fig:\LabelBase.letter}}[l]
+ \begin{minipage}[b]{.667\linewidth}%
+ \centering\small\setlength{\fboxsep}{1.5ex}%
+ \addtolength{\linewidth}{-\dimexpr2\fboxrule+2\fboxsep\relax}%
+ \fbox{\parbox{\linewidth}{\raggedright%
+ \Macro{begin}\PParameter{letter}%
+ \OParameter{options}\Parameter{recipient}\\
+ \dots\\[\dp\strutbox]
+ {\centering\emph{settings for this letter}\\}
+ \dots\\
+ \DescRef{\LabelBase.cmd.opening}\Parameter{salutation}\\
+ }}\\[1pt]
+ \fbox{\parbox{\linewidth}{\raggedright%
+ \dots\\[\dp\strutbox]
+ {\centering\emph{letter text}\\}
+ \dots\\
+ }}\\[1pt]
+ \fbox{\parbox{\linewidth}{\raggedright%
+ \DescRef{\LabelBase.cmd.closing}\Parameter{concluding text}\\
+ \DescRef{\LabelBase.cmd.ps}\\
+ \dots\\[\dp\strutbox]
+ {\centering\emph{postscript}\\}
+ \dots\\
+ \DescRef{\LabelBase.cmd.encl}\Parameter{enclosures}\\
+ \DescRef{\LabelBase.cmd.cc}\Parameter{additional recipients}\\
+ \Macro{end}\PParameter{letter}\\
+ }}\\[\dimexpr\fboxsep+\fboxrule\relax]
+ \end{minipage}
+ \end{captionbeside}
+\end{figure}
+
+As detailed in \autoref{fig:\LabelBase.letter}, individual letters each
+consist of an introduction, the body of the letter, and the closing. In the
+introduction, all settings pertaining to the current letter alone are defined.
+It is important that this introduction always ends with
+\DescRef{\LabelBase.cmd.opening}\IndexCmd{opening}. Similarly, the closing
+always starts with \DescRef{\LabelBase.cmd.closing}\IndexCmd{closing}. The
+\PName{opening} and \PName{closing} arguments of the two commands can be left
+empty, but both commands must be used and must have an argument.
+
+Note that you can change additional settings between the individual letters.
+Such changes then apply to all subsequent letters. However, to keep your
+letter documents clear and maintainable, you should think carefully before
+actually placing further general settings of limited scope between the
+letters. I cannot recommend this practice. However, if you use
+\Package{scrletter2}, there is nothing wrong with inserting additional parts
+of the document between or after letters that should not be in the same scope.
+For example, you can combine a cover letter and a CV in one document.
+
+\begin{Declaration}
+ \begin{Environment}{letter}\OParameter{options}\Parameter{recipient}
+ \end{Environment}
+\end{Declaration}
+\BeginIndex{}{address}%
+The \Environment{letter} environment is one of the key environments of the
+letter class. A noteworthy\textnote{\KOMAScript{} vs. standard classes}
+feature of \Class{scrlttr2} and \Package{scrletter} is that they can provide
+additional \PName{options} for the \Environment{letter} environment. These
+\PName{options} are executed internally using the
+\DescRef{\LabelBase.cmd.KOMAoptions} command.
+
+The \PName{recipient}, or addressee, is a mandatory argument passed to the
+\Environment{letter} environment and includes both the name and the address of
+the recipient of the letter. Double\textnote{Attention!} backslashes serve to
+separate the individual parts of the address. These parts are output on
+individual lines in the address field. Nevertheless, you should not interpret
+the double backslash as a mandatory line break. Vertical material such as new
+paragraphs or vertical space is not permitted within the address. They can
+lead to unexpected results and error messages. Incidentally, this is the same
+for the standard letter class.
+
+\begin{Example}
+ \phantomsection\label{desc:\LabelBase.env.letter.example}%
+ Suppose you want to write a letter to Joanna Public. A minimalist
+ letter document would look like this:
+\begin{lstcode}
+ \documentclass[version=last]{scrlttr2}
+ \usepackage[british]{babel}
+ \begin{document}
+ \begin{letter}{Joanna Public\\
+ 1 Hillside\\
+ SAMPLESTEAD\\
+ WX12 3YZ}
+ \end{letter}
+ \end{document}
+\end{lstcode}
+ However, this would not result in any output. It would not even print the
+ recipient on the letterhead page. Why this is the case is explained in the
+ description of the \DescRef{\LabelBase.cmd.opening} command on
+ \DescPageRef{\LabelBase.cmd.opening}.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AtBeginLetter}\Parameter{code}%
+ \Macro{AtEndLetter}\Parameter{code}
+\end{Declaration}
+As mentioned in \cite{latex:clsguide}, \LaTeX{} lets the user declare
+additional \PName{code} to be executed at certain points in a \LaTeX{} run.
+For this purpose, the \LaTeX{} kernel provides, for example,
+\Macro{AtBeginDocument}\IndexCmd{AtBeginDocument} and
+\Macro{AtEndOfClass}\IndexCmd{AtEndOfClass}. Such points are called
+\emph{hooks}\Index{hook}. The \Class{scrlttr2} class and the
+\Package{scrletter} package provide two additional hooks. You can declare the
+\PName{code} for these using \Macro{AtBeginLetter} and
+\Macro{AtEndLetter}\ChangedAt{v2.95}{\Class{scrlttr2}}. Originally, hooks were
+intended for package and class authors, so they are documented only in
+\cite{latex:clsguide} and not in \cite{latex:usrguide}. However, with letters
+there are useful applications at the user level for both new hooks, as the
+following example illustrates.
+%
+\begin{Example}
+ Suppose you have several letters in a document that use their own commands
+ to insert a questionnaire in the letters. The questions are numbered
+ automatically using a counter. Since \KOMAScript{} is unaware of this
+ counter, it would not be reset at the start of each new letter, unlike the
+ page number. If each questionnaire contains ten questions, the first
+ question in the fifth letter would get the number~41. You can solve this
+ problem by telling \KOMAScript{} to reset this counter at the beginning of
+ each letter:
+\begin{lstlisting}
+ \newcounter{Question}
+ \newcommand{\Question}[1]{%
+ \refstepcounter{Question}\par
+ \noindent\begin{tabularx}{\textwidth}{l@{}X}
+ \theQuestion:~ & #1\\
+ \end{tabularx}%
+ }%
+ \AtBeginLetter{\setcounter{Question}{0}}
+\end{lstlisting}
+ This way first question remains question~1, even in the 1001st letter. Of
+ course the definition in this example requires the
+ \Package{tabularx}\IndexPackage{tabularx} package (see
+ \cite{package:tabularx}).
+\end{Example}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Counter{letter}%
+ \Macro{thisletter}%
+ \Macro{letterlastpage}
+\end{Declaration}
+If\ChangedAt{v3.19}{\Class{scrlttr2}\and \Package{scrletter}} you have more
+than one letter in a document, it is useful to have a letter number. For this
+purpose, \KOMAScript{} has provided the \Counter{letter} counter, which
+is incremented by one at each \Macro{begin}\PParameter{letter}, since
+version~3.19.
+\begin{Example}
+ Let's return to the \DescRef{\LabelBase.cmd.AtBeginLetter}
+ example. Instead of resetting the counter explicitly at
+ \Macro{begin}\PParameter{letter}, we can do so implicitly by defining
+ counter \Counter{Question} to depend on counter \Counter{letter}:
+\begin{lstlisting}
+ \newcounter{Question}[letter]
+ \newcommand{\Question}[1]{%
+ \refstepcounter{Question}\par
+ \noindent\begin{tabularx}{\textwidth}{l@{}X}
+ \theQuestion:~ & #1\\
+ \end{tabularx}%
+ }%
+\end{lstlisting}
+ Now the new counter will be reset at every start of each letter so that
+ the first question in each letter will be number one.
+\end{Example}
+
+If you want to display the current value of \Counter{letter}, this is
+possible, as usual, with \Macro{theletter}. The counter can also be used for
+cross-references. So you can use \Macro{label}\Parameter{name} to generate a
+label immediately after \Macro{begin}\PParameter{letter} and reference it
+somewhere in the document using \Macro{ref}\Parameter{name}. Inside the same
+letter you can get the same result by simply using \Macro{thisletter} without
+creating a label.
+
+For labels in form letters, it is necessary to give them a unique name across
+all letters. Once again, you can use \Macro{thisletter} for this purpose.
+\KOMAScript{} also uses \Macro{thisletter} internally to put a label on the
+last page of each letter. This makes it possible to use
+\Macro{letterlastpage}\IndexCmd{label}\IndexCmd{pageref} to reference the
+number of the last page of the current letter at any point within the letter.
+Since \Macro{letterlastpage} uses \Macro{label} and \Macro{pageref}, it is
+only valid after several \LaTeX{} runs\,---\,usually two or three. If you use
+\Macro{letterlastpage}, pay attention to the \emph{Rerun} messages in the
+terminal output or \File{log} file messages about labels that have been
+changed.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{opening}\Parameter{salutation}
+\end{Declaration}
+This is one of the most important commands for letters. On the surface, it may
+seem that only the \PName{salutation}\Index{letter>salutation}, for example
+``Dear Mrs~\dots'', is printed. Actually\textnote{Attention!}, this command
+also prints the fold marks\Index{fold marks}, the
+letterhead\Index{letterhead}, the address\Index{address}, the extra sender
+information, the reference line\Index{reference line}, the title\Index{title},
+the subject\Index{subject}, and the footer\Index{page>footer}. In short,
+without \Macro{opening} there is no letter. If, in fact, you want to print a
+letter without a salutation, you have to use an \Macro{opening} command with
+an empty argument.
+
+\begin{Example}
+ Let's return to the example of
+ \DescPageRef{\LabelBase.env.letter.example} and add a salutation:
+ \lstinputcode[xleftmargin=1em]{letter-0.tex}
+ This will result in the letterhead shown in
+ \autoref{fig:\LabelBase.letter-0}.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Example: letter with recipient and salutation}]{%
+ result of a minimalist letter with recipient and salutation only
+ (the date is set by default)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-0}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-0}
+ \end{figure}
+\end{Example}
+\iffalse% Umbruchkorrekturtext
+\begin{Explain}
+ In the early days of computer-generated letters, a salutation was normally
+ omitted, since individualised form letters were hardly possible. Today
+ personalised greetings are common in in mass mailings.%
+\end{Explain}
+\fi
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{closing}\Parameter{concluding text}
+\end{Declaration}
+The main purpose of the command \Macro{closing} is to typeset the
+\PName{concluding text}\Index{closing}. This can even consist of multiple
+lines. In that case, the individual lines should be separated by a double
+backslash. Paragraph breaks inside the \PName{concluding text} are not
+allowed.
+
+In addition, this command also prints the content of the
+\DescRef{\LabelBase.variable.signature} variable. You can find more
+information about the signature and its configuration in
+\autoref{sec:\LabelBase.closing} on
+\DescPageRef{\LabelBase.variable.signature}.
+
+\begin{Example}
+ Let's extend the our example with a few lines of text and a closing phrase:
+ \lstinputcode[xleftmargin=1em]{letter-1.tex}
+ This will result in a the letter shown in \autoref{fig:\LabelBase.letter-1}.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Example: letter with recipient, opening, text, and
+ closing}]{%
+ result of a short letter with recipient, opening, text, and closing
+ % The refernce to DIN-letters in the German guide isn't relevant for
+ % English-language letters
+ (the date is set by default)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-1}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-1}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{ps}
+\end{Declaration}%
+This instruction merely switches to the postscript. To do so, a new paragraph
+begins, and a vertical gap\,---\,usually below the signature\,---\,is
+inserted. The \Macro{ps} text can be followed by any text. If you want the
+postscript to be introduced with the acronym ``PS:'', which in most current
+usage is written without full stops, you have to type this yourself. This
+abbreviation is printed neither automatically nor optionally by the
+\Class{scrlttr2} class.
+
+\begin{Example}
+ The sample letter with the addition of a postscript
+ \lstinputcode[xleftmargin=1em]{letter-2.tex}
+ results in \autoref{fig:\LabelBase.letter-2}.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Example: letter with recipient, opening, text,
+ closing, and postscript}]{%
+ result of a short letter with recipient, opening, text, closing, and
+ postscript (the date is set by default)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-2}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-2}
+ \end{figure}
+\end{Example}
+
+\begin{Explain}
+ When letters were written still by hand, it was quite common to use a
+ postscript because this was the only way to add information which had been
+ forgotten in the main part of the letter. For letters written with \LaTeX{},
+ of course, you can easily insert additional lines. Nevertheless, postscripts
+ remain popular. They can be useful to emphasize important points once more,
+ or even to mention the less important matters.
+\end{Explain}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{cc}\Parameter{distribution list}%
+ \Variable{ccseparator}%
+\end{Declaration}
+You can print a \PName{distribution list}\Index{recipient>additional}%
+\Index{distribution list}\Index{carbon copy} with the \Macro{cc} command. The
+command takes the \PName{distribution list} as its argument. If the content of
+the variable \Variable{ccseparator}\Index{separator}\Index{delimiter} is not
+empty, the name and content of this variable are inserted before the
+\PName{distribution list}. In this case, the \PName{distribution list} will be
+indented appropriately. It's a good idea\textnote{Hint!} to set the
+\PName{distribution list} \Macro{raggedright}\IndexCmd{raggedright} and to
+separate the individual entries with a double backslash.
+\begin{Example}
+ This time, the sample letter should go not only to the chairman but also to
+ all club members:
+ \lstinputcode[xleftmargin=1em]{letter-3.tex}%
+ The result is shown in \autoref{fig:\LabelBase.letter-3}.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Example: letter with recipient, opening, text,
+ closing, postscript, and distribution list}]{%
+ result of a short letter with recipient, opening, text, closing,
+ postscript, and distribution list (the date is set by default)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-3}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-3}
+ \end{figure}
+\end{Example}
+A vertical gap is inserted automatically before the distribution list.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{encl}\Parameter{enclosures}%
+ \Variable{enclseparator}%
+\end{Declaration}
+The \PName{enclosures} have the same structure as the distribution list. The
+only difference is that the list of enclosures begins with the name and
+content of the \Variable{enclseparator}\Index{separator}\Index{delimiter}
+variable.
+\begin{Example}
+ To the sample letter we will attach an excerpt from the club's articles of
+ association. These will be added as an enclosure. Because there is only one
+ enclosure, we change the description title accordingly:
+ \lstinputcode[xleftmargin=1em]{letter-4.tex}
+ This will result in \autoref{fig:\LabelBase.letter-4}.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Example: letter with recipient, opening, text,
+ closing, postscript, distribution list, and enclosure}]{%
+ result of a short letter with recipient, opening, text, closing,
+ postscript, distribution list, and enclosure (the date is set by
+ default)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-4}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-4}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{fontsize} % \section{Choosing the Document Font Size}
+
+\LoadCommonFile{textmarkup} % \section{Text Markup}
+
+\section{Letterhead Page}
+\seclabel{firstpage}
+\BeginIndexGroup
+\BeginIndex{}{letterhead page}%
+
+The letterhead page is the first page of, and therefore the signpost for, each
+letter. In a business context, the paper for this page is often preprinted
+stationery containing elements such as a header with the sender's information
+and logo. This header itself is also known as a letterhead. \KOMAScript{} lets
+you position these elements freely, and so you can not only replicate the
+letterhead page directly but also fill in the required fields instantaneously.
+This free positioning is achieved with pseudo-lengths (see
+\autoref{sec:\LabelBase.pseudoLength} starting on
+\autopageref{sec:\LabelBase.pseudoLength}). You can find a schematic
+representation of the letterhead page and the variables used for it in
+\autoref{fig:\LabelBase.variables}. The names of the variables are printed in
+bold to better distinguish the commands from their arguments.
+
+Subsequent pages\Index{page>subsequent}\Index{subsequent pages} should be
+distinguished from the letterhead page. For the purposes of this manual,
+subsequent pages are all pages of a letter except the first one.
+
+
+\begin{figure}
+ \centering
+ \includegraphics[scale=0.99]{varDIN}
+ \caption{schematic display of the letterhead page outlining the most
+ important commands and variables}
+ \label{fig:\LabelBase.variables}
+\end{figure}
+
+
+\begin{Declaration}
+ \OptionVName{foldmarks}{setting}
+\end{Declaration}
+Fold marks\Index{fold mark}, or folding marks, are small horizontal rules in
+the left margin and small vertical rules in the top margin. \KOMAScript{}
+currently provides three configurable horizontal fold marks and one
+configurable vertical fold mark. Additionally it provides a horizontal
+hole-punch or page-centre mark. This additional mark cannot be moved
+vertically.
+
+The \Option{foldmarks} option activates or deactivates fold marks for two,
+three, or four vertical divisions and one horizontal division. The individual
+parts do not have to be of equal size. The positions of three of the four
+horizontal marks and the single vertical mark are configurable via
+pseudo-lengths (see \autoref{sec:scrlttr2-experts.foldmarks} starting on
+\DescPageRef{scrlttr2-experts.plength.foldmarkvpos}).
+
+With the \Option{foldmarks} option, you can either use the default values for
+simple switches described in \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch} in order to activate or deactivate all
+configured fold marks on the left and upper edges of the paper at once,
+or\ChangedAt{v2.97e}{\Class{scrlttr2}} you can configure the individual fold
+marks independently by specifying one or more letters, as listed in
+\autoref{tab:\LabelBase.foldmark}. In the latter case, the fold marks are only
+shown if they have not been deactivated globally with \PValue{false},
+\PValue{off}, or \PValue{no}. The exact position of the fold marks is depends
+on the user settings or the \File{lco} files (see
+\autoref{sec:\LabelBase.lcoFile} starting on
+\autopageref{sec:\LabelBase.lcoFile}). The default values are \PValue{true}
+and \PValue{TBMPL}.\textnote{default}
+%
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}{%
+ Combinable values for configuring fold marks with the
+ \Option{foldmarks} option%
+ }[l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ \PValue{B} & activate bottom horizontal fold mark on left paper edge\\%
+ \PValue{b} & deactivate bottom horizontal fold mark on left paper edge\\%
+ \PValue{H} & activate all horizontal fold marks on left paper edge\\%
+ \PValue{h} & deactivate all horizontal fold marks on left paper edge\\%
+ \PValue{L} & activate left vertical fold mark on upper paper edge\\%
+ \PValue{l} & deactivate left vertical fold mark on upper paper edge\\%
+ \PValue{M} & activate middle horizontal fold mark on left paper edge\\%
+ \PValue{m} & deactivate middle horizontal fold mark on left paper edge\\%
+ \PValue{P} & activate hole-punch or centre mark on left paper edge\\%
+ \PValue{p} & deactivate hole-punch or centre mark on left paper edge\\%
+ \PValue{T} & activate top horizontal fold mark on left paper edge\\%
+ \PValue{t} & deactivate top horizontal fold mark on left paper edge\\%
+ \PValue{V} & activate all vertical fold marks on upper paper edge\\%
+ \PValue{v} & deactivate all vertical fold marks on upper paper edge\\%
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:\LabelBase.foldmark}
+\end{table}
+%
+\begin{Example}
+ Suppose you want to deactivate all fold marks except the hole-punch mark. If
+ the default has not already been changed, you can deactivate it as follows:
+\begin{lstlisting}
+ \KOMAoptions{foldmarks=blmt}
+\end{lstlisting}
+ If there is a chance that the default has already been changed, you should
+ use a safer method. This changes our example a little bit:
+ \lstinputcode[xleftmargin=1em]{letter-7}%
+ The result is shown in \autoref{fig:\LabelBase.letter-7}.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Example: letter with recipient, opening, text,
+ closing, postscript, distribution list, enclosure, and hole-punch
+ mark}]{%
+ result of a short letter with recipient, opening, text, closing,
+ postscript, distribution list, enclosure, and hole-punch mark
+ (the date is set by default)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-7}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-7}
+ \end{figure}
+\end{Example}
+\BeginIndex{FontElement}{foldmark}\LabelFontElement{foldmark}%
+You\ChangedAt{v2.97c}{\Class{scrlttr2}} can change the colour of the fold mark
+with the \DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
+with the \FontElement{foldmark} element. The default is no change.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{enlargefirstpage}{simple switch}
+\end{Declaration}
+\begin{Explain}
+ The first page of a letter always uses a different page layout because of
+ the many predefined elements such as the letterhead or the address. The
+ \Class{scrlttr2} class provides a mechanism to calculate height and vertical
+ alignment of header and footer of the first page independently of the
+ subsequent pages. If, as a result, the footer of the first page would
+ protrude into the text area, this text area of the first page is
+ automatically reduced using
+ \Macro{enlargethispage}\IndexCmd{enlargethispage}.
+\end{Explain}
+If the text area should become larger, assuming the footer on the first page
+permits this, you can use this option. At best, a little more text will then
+fit on the first page. See also the description of the \PLength{firstfootvpos}
+pseudo-length on \DescPageRef{scrlttr2-experts.plength.firstfootvpos}. This
+option takes the standard values for simple switches, as listed in
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}. The default
+is \PValue{false}.\textnote{default}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{firsthead}{simple switch}
+\end{Declaration}
+\BeginIndex{}{letterhead}%
+\BeginIndex{}{letter>header}%
+The\ChangedAt{v2.97e}{\Class{scrlttr2}} letterhead is usually the topmost
+element of the letterhead page. With the \Option{firsthead} option, you can
+choose whether the letterhead will be typeset at all. The option accepts the
+standard values for simple switches given in \autoref{tab:truefalseswitch} on
+\autopageref{tab:truefalseswitch}. The default is to typeset the letterhead.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{fromalign}{method}
+\end{Declaration}
+\BeginIndex{}{letterhead}%
+\BeginIndex{}{letter>head}%
+The\important{\Option{fromalign}} \Option{fromalign} option determines where
+the sender information should be placed on the first page. In addition to the
+various placement options in the letterhead, you also have the
+ability\ChangedAt{v2.97e}{\Class{scrlttr2}} to accommodate extra sender
+information\Index{extra sender information}. At the same
+time\textnote{Attention!}, this option serves as a central switch to activate
+or deactivate letterhead extensions. If these extensions are deactivated, some
+other options will have no effect. This will be noted in the explanations of
+the respective options. Available values for \Option{fromalign} are shown in
+\autoref{tab:\LabelBase.fromalign}. The default value is \PValue{left}.%
+%
+\begin{table}
+ \caption[{Available values for the \Option{fromalign} option with
+ \Class{scrlttr2}}]{Available values for the \Option{fromalign} option to
+ define the position of the from address in the letterhead with
+ \Class{scrlttr2}}
+ \label{tab:\LabelBase.fromalign}
+ \begin{desctabular}
+ \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{%
+ Sender information is centred inside the letterhead; a logo is
+ placed at the beginning of the extra sender information, if
+ applicable; letterhead extensions are activated.}%
+ \entry{\PValue{false}, \PValue{no}, \PValue{off}}{%
+ The default design will be used for the sender information; the
+ letterhead extensions are deactivated.}%
+ \entry{\PValue{left}}{%
+ Sender information is left-aligned in the letterhead; a logo is
+ placed right-aligned, if applicable; letterhead extensions are
+ activated.}%
+ \entry{\PValue{locationleft}, \PValue{leftlocation}}{%
+ Sender information is left-justified and uses the extra sender
+ information; a logo is placed at the top of it, if applicable; the
+ letterhead is automatically deactivated but can be reactivated using the
+ \DescRef{\LabelBase.option.firsthead} option.}%
+ \entry{\PValue{locationright}, \PValue{rightlocation},
+ \PValue{location}}{%
+ Sender information is right-justified and uses the extra sender
+ information; a logo is placed at the top of it, if applicable; the
+ letterhead is automatically deactivated but can be reactivated using the
+ \DescRef{\LabelBase.option.firsthead} option.}%
+ \entry{\PValue{right}}{%
+ Sender information is right-justified; a logo is placed left-justified,
+ if applicable; letterhead extensions are activated}%
+ \end{desctabular}
+\end{table}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{fromrule}{position}%
+ \Variable{fromname}%
+ \Variable{fromaddress}%
+\end{Declaration}
+\BeginIndex{}{letterhead}%
+\BeginIndex{}{letter>head}%
+The\important{\Variable{fromname}} sender's name is determined by the
+\Variable{fromname} variable. Its \PName{description} (see also
+\autoref{tab:\LabelBase.fromTerm}, \autopageref{tab:\LabelBase.fromTerm}) is
+not used in the default letterheads.
+
+In\important{\OptionValue{fromrule}{aftername}} the extended letterhead, you
+can create a horizontal rule below the sender's name with
+\OptionValue{fromrule}{aftername}.
+Alternatively\important{\OptionValue{fromrule}{afteraddress}} you can place
+this rule below the complete sender information with
+\OptionValue{fromrule}{afteraddress}. A summary of all available settings for
+the rule position is shown in \autoref{tab:\LabelBase.fromrule}. The length of
+this rule is determined by the
+\PLength{fromrulewidth}\IndexPLength[indexmain]{fromrulewidth} pseudo-length.
+
+\begin{table}
+ \caption[{Available values for the \Option{fromrule} option with
+ \Class{scrlttr2}}]{Available values for the \Option{fromrule} option for the
+ position of the rule in the sender information with
+ \Class{scrlttr2}}
+ \label{tab:\LabelBase.fromrule}
+ \begin{desctabular}
+ \entry{\PValue{afteraddress}, \PValue{below}, \PValue{on}, \PValue{true},
+ \PValue{yes}}{%
+ rule below the sender's address}%
+ \entry{\PValue{aftername}}{%
+ rule directly below the sender's name}%
+ \entry{\PValue{false}, \PValue{no}, \PValue{off}}{%
+ no rule}%
+ \end{desctabular}
+\end{table}
+
+The default\textnote{default} for the rule with the extended letterhead is
+\PValue{false}. But in the standard letterhead, the rule will always be placed
+below the sender's name.
+
+The\important{\Variable{fromaddress}} sender's address follows below the name.
+The \PName{content} of variable \Variable{fromaddress} determines this
+address. The address \PName{description} (see also
+\autoref{tab:\LabelBase.fromTerm}) is not used in the default letterheads
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{fromaddress}\LabelFontElement{fromaddress}%
+\BeginIndex{FontElement}{fromname}\LabelFontElement{fromname}%
+\BeginIndex{FontElement}{fromrule}\LabelFontElement{fromrule}%
+You can set the font used for the complete sender information with the
+\FontElement{fromaddress}\IndexFontElement{fromaddress}%
+\important{\FontElement{fromaddress}} element. You can define modifications to
+this with the \FontElement{fromname}\IndexFontElement{fromname}%
+\important{\FontElement{fromname}} element for the sender's name, and with the
+\FontElement{fromrule}\IndexFontElement{fromrule}%
+\important{\FontElement{fromrule}} element for the rule created with the
+\Option{fromrule} option. The default setting does not change the font. For
+the rule, font switching is mainly intended to change the colour of the rule,
+for example to use grey instead of black. See \cite{package:xcolor} for
+information about colours.%
+%
+\EndIndexGroup
+
+\begin{Example}
+ Now let's give the sender of our sample letter a name:
+ \lstinputcode[xleftmargin=1em]{letter-8.tex}
+ \begin{figure}
+ \centering
+ \frame{\includegraphics[width=.4\textwidth]{letter-8}}\quad
+ \frame{\includegraphics[width=.4\textwidth]{letter-9}}
+ \caption[{Example: letter with sender, recipient, opening, text, closing,
+ postscript, distribution list, and enclosure}]
+ {result of a short letter with sender, recipient, opening, text, closing,
+ postscript, distribution list, and enclosure (the date is set by
+ default): on the left, the standard letterhead using
+ \OptionValueRef{\LabelBase}{fromalign}{false}; on the right, the
+ extended letterhead using \OptionValueRef{\LabelBase}{fromalign}{center}}
+ \label{fig:\LabelBase.letter-8-9}
+ \end{figure}
+ Initially, the standard rather than the extended letterhead is used. The
+ result can be seen in \autoref{fig:\LabelBase.letter-8-9} on the left. For
+ comparison, the same example is shown on the right with
+ \OptionValueRef{\LabelBase}{fromalign}{center} (that is, with the extended
+ letterhead). You can see that this variation initially has no rule.
+
+ For the first time, \autoref{fig:\LabelBase.letter-8-9} also shows a
+ signature below the closing phrase. This is generated automatically from the
+ sender's name. You can find more information about how to configure the
+ signature in \autoref{sec:\LabelBase.closing}, starting on
+ \autopageref{sec:\LabelBase.closing}.
+
+ Next, the letter with the extended letterhead should use the
+ \Option{fromrule} option to print a rule below the sender's name:%
+ \lstinputcode[xleftmargin=1em]{letter-11.tex}%
+ You can see the result on the right in
+ \autoref{fig:\LabelBase.letter-10-11}. By comparison, the same example on
+ the left uses the standard letterhead, which ignores the additional options.
+ %
+ \begin{figure}
+ \centering
+ \frame{\includegraphics[width=.4\textwidth]{letter-10}}\quad
+ \frame{\includegraphics[width=.4\textwidth]{letter-11}}
+ \caption[{Example: letter with sender, rule, recipient,
+ opening, text, closing, signature, postscript, distribution list,
+ enclosure, and hole-punch mark}]
+ {result of a short letter with sender, rule, recipient,
+ opening, text, closing, signature, postscript, distribution list,
+ enclosure and hole-punch mark (the date is set by default):
+ at left one the standard letterhead using
+ \OptionValueRef{\LabelBase}{fromalign}{false}, at right one the extended letterhead
+ using \OptionValueRef{\LabelBase}{fromalign}{center}}
+ \label{fig:\LabelBase.letter-10-11}
+ \end{figure}
+\end{Example}
+
+An\textnote{Attention!} important note concerns the sender's address: within
+the sender's address, individual parts such as house number and street, city
+and postal code, etc., are separated with a double backslash. This double
+backslash is interpreted differently depending on how the sender's address is
+used and therefore is not necessarily a line break. Paragraphs, vertical
+spacing, and the like are usually not allowed within the sender's information.
+You have to know \KOMAScript{} very well to put such things into the sender
+information, if necessary. In addition, note that if you do so, you should
+definitely set the variables for return address (see
+\DescRef{\LabelBase.variable.backaddress},
+\DescPageRef{\LabelBase.variable.backaddress}) and signature (see
+\DescRef{\LabelBase.variable.signature},
+\DescPageRef{\LabelBase.variable.signature}) yourself.%
+%
+\EndIndexGroup
+
+\begin{Declaration}
+ \OptionVName{symbolicnames}{simple switch}%
+ \OptionVName{fromphone}{simple switch}%
+ \OptionVName{frommobilephone}{simple switch}%
+ \OptionVName{fromfax}{simple switch}%
+ \OptionVName{fromemail}{simple switch}%
+ \OptionVName{fromurl}{simple switch}%
+ \Variable{fromphone}%
+ \Variable{frommobilephone}%
+ \Variable{fromfax}%
+ \Variable{fromemail}%
+ \Variable{fromurl}%
+ \Variable{phoneseparator}%
+ \Variable{mobilephoneseparator}%
+ \Variable{faxseparator}%
+ \Variable{emailseparator}%
+ \Variable{urlseparator}%
+\end{Declaration}
+\BeginIndex{}{letterhead}%
+\BeginIndex{}{letter>header}
+You can use the five options \Option{fromphone}, \Option{frommobilephone}\ChangedAt{v3.12}{\Class{scrlttr2}}, \Option{fromfax},
+\Option{fromemail}, and \Option{fromurl} to specify whether to include the
+phone number\Index{telephone}\Index{phone},
+mobile\ChangedAt{v3.12}{\Class{scrlttr2}} phone number\Index{mobile
+phone}\Index{cell phone}\Index{cellphone}, fax number\Index{fax}, e-mail
+address\Index{e-mail}, or URL should be as part of the sender's
+information. You can assign any standard value for simple switches from
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} to these
+options. The default for all of them is \PValue{false}. The \PName{contents}
+themselves are determined by the variables of the same name. You can find the
+defaults for the \PName{description} or title of each variable in
+\autoref{tab:\LabelBase.fromTerm}. You can find the separators that will be
+inserted between the \PName{description} and the \PName{content} in
+\autoref{tab:\LabelBase.fromSeparator}.
+
+You can\ChangedAt{v3.12}{\Class{scrlttr2}}\important{\Option{symbolicnames}}
+change the defaults for describing the variables all at once with the
+\Option{symbolicnames} option. This option understands the values for simple
+switches found in \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch}. Activating the option replaces the
+descriptions from the language-dependant labels of
+\DescRef{scrlttr2-experts.cmd.emailname},
+\DescRef{scrlttr2-experts.cmd.faxname},
+\DescRef{scrlttr2-experts.cmd.mobilephonename}, and
+\DescRef{scrlttr2-experts.cmd.phonename} with symbols from the
+\Package{marvosym}\IndexPackage{marvosym} package. At the same time, the colon
+is omitted when defining the separators. In this case, both the description
+and the content of the URL separator will be empty. Note\textnote{Attention!}
+that you have to load the \Package{marvosym} package on your own if you activate
+\Option{symbolicnames} for the first time after
+\Macro{begin}\PParameter{document}.
+
+\begin{table}
+ \centering
+ \caption[{Default descriptions of the letterhead variables}]{Default
+ descriptions of the letterhead variables (you can find the description and
+ contents of the separator variables in
+ \autoref{tab:\LabelBase.fromSeparator}}
+ \begin{desctabular}[1.8em]
+ \ventry{fromemail}{\DescRef{\LabelBase.cmd.usekomavar*}\PParameter{emailseparator}%
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{emailseparator}}%
+ \ventry{fromfax}{\DescRef{\LabelBase.cmd.usekomavar*}\PParameter{faxseparator}%
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{faxseparator}}%
+ \ventry{frommobilephone}{%
+ \ChangedAt{v3.12}{\Class{scrlttr2}}%
+ \DescRef{\LabelBase.cmd.usekomavar*}\PParameter{mobilephoneseparator}%
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{mobilephoneseparator}}%
+ \ventry{fromname}{\DescRef{scrlttr2-experts.cmd.headfromname}}%
+ \ventry{fromphone}{\DescRef{\LabelBase.cmd.usekomavar*}\PParameter{phoneseparator}%
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{phoneseparator}}%
+ \ventry{fromurl}{\DescRef{\LabelBase.cmd.usekomavar*}\PParameter{urlseparator}%
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{urlseparator}}%
+ \end{desctabular}
+ \label{tab:\LabelBase.fromTerm}
+\end{table}
+
+\begin{table}[tp]
+ \centering
+% \KOMAoptions{captions=topbeside}%
+% \setcapindent{0pt}%
+ \caption{Default descriptions and contents of the letterhead
+ separators without the \Option{symbolicnames} option}
+% [l]
+ \begin{tabular}[t]{lll}
+ \toprule
+ variable name & description & content \\
+ \midrule
+ \Variable{emailseparator} & \DescRef{scrlttr2-experts.cmd.emailname} & \texttt{:\~} \\
+ \Variable{faxseparator} & \DescRef{scrlttr2-experts.cmd.faxname} & \texttt{:\~} \\
+ \Variable{mobilephoneseparator} & \DescRef{scrlttr2-experts.cmd.mobilephonename} & \Macro{usekomavaer}\PParameter{phoneseparator} \\
+ \Variable{phoneseparator} & \DescRef{scrlttr2-experts.cmd.phonename} & \texttt{:\~} \\
+ \Variable{urlseparator} & \DescRef{scrlttr2-experts.cmd.wwwname} & \texttt{:\~} \\
+ \bottomrule
+ \end{tabular}
+% \end{captionbeside}
+ \label{tab:\LabelBase.fromSeparator}
+\end{table}
+
+\begin{Example}
+ Mr Public from our sample letter has a telephone and an e-mail address. He
+ also wants to show these in the letterhead. At the same time, the separation
+ rule should now be placed after the letterhead. So he uses the appropriate
+ options and also sets the required variables:%
+ \lstinputcode[xleftmargin=1em]{letter-12.tex}%
+ The results on the left side of \autoref{fig:\LabelBase.letter-12-13},
+ however, are confounding: the options are ignored. That's because the
+ additional variables and options are only used in the extended letterhead.
+ So the \DescRef{\LabelBase.option.fromalign} option must be used, as it is
+ in the right side of
+ \autoref{fig:\LabelBase.letter-12-13}.
+ \begin{figure}
+ \centering
+ \frame{\includegraphics[width=.4\textwidth]{letter-12}}\quad
+ \frame{\includegraphics[width=.4\textwidth]{letter-13}}
+ \caption[{Example: letter with extra sender information, rule,
+ recipient, opening, text, closing, signature, postscript, distribution
+ list, enclosure, and hole-punch mark; standard vs. extended letterhead}]
+ {result of a short letter with sender, rule, recipient, opening, text,
+ closing, signature, postscript, distribution list, enclosure and
+ hole-punch mark (the date is set by default): the left one uses the
+ standard letterhead with
+ \OptionValueRef{\LabelBase}{fromalign}{false}; the right one uses the
+ extended letterhead with \OptionValueRef{\LabelBase}{fromalign}{center}}
+ \label{fig:\LabelBase.letter-12-13}
+ \end{figure}
+ \lstinputcode[xleftmargin=1em]{letter-13.tex}
+
+ You can compare two other alternatives with left-aligned sender information using
+ \OptionValueRef{\LabelBase}{fromalign}{left} and right-aligned sender information
+ using \OptionValueRef{\LabelBase}{fromalign}{right} in
+ \autoref{fig:\LabelBase.letter-14-15}.
+ \begin{figure}
+ \centering
+ \frame{\includegraphics[width=.4\textwidth]{letter-14}}\quad
+ \frame{\includegraphics[width=.4\textwidth]{letter-15}}
+ \caption[{Example: letter with extra sender information, rule,
+ recipient, opening, text, closing, signature, postscript, distribution
+ list, enclosure, and hole-punch mark; left- vs. right-aligned
+ letterhead}]
+ {result of a short letter with extra sender information, rule,
+ recipient, opening, text, closing, signature, postscript, distribution
+ list, enclosure and hole-punch mark (the date is set by default):
+ the left one uses a left-aligned letterhead with
+ \OptionValueRef{\LabelBase}{fromalign}{left}; the right one uses a
+ right-aligned letterhead using
+ \OptionValueRef{\LabelBase}{fromalign}{right}}
+ \label{fig:\LabelBase.letter-14-15}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{fromlogo}{simple switch}%
+ \Variable{fromlogo}%
+\end{Declaration}
+\BeginIndex{}{letterhead}%
+\BeginIndex{}{letter>head}%
+You can use the \Option{fromlogo} to configure whether to put a
+logo\Index{Logo} in the letterhead. You can use any of the default values from
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} for the
+\PName{simple switch}. The default is \PValue{false}, which means no logo. The
+logo itself is defined by the \PName{content} of the \Variable{fromlogo}
+variable. The \PName{description} of the logo is empty by default and
+\KOMAScript{} does not use it in the default letterhead pages (see also
+\autoref{tab:\LabelBase.fromTerm}).%
+\begin{Example}
+ Mr Public finds it particularly stylish when he provides his letterhead with
+ a logo. He has saved his logo as a graphics file, which he would like to
+ load using \Macro{includegraphics}. To do this, he loads the
+ \Package{graphics}\IndexPackage{graphics} package (see
+ \cite{package:graphics}).%
+ \lstinputcode[xleftmargin=1em]{letter-16}%
+ You can see the result in the top left of
+ \autoref{fig:\LabelBase.letter-16-18}. The other two images in this figure
+ show the results with right-aligned and centred sender information.
+ \begin{figure}
+ \setcapindent{0pt}%
+ {\hfill
+ \frame{\includegraphics[width=.4\textwidth]{letter-16}}\quad
+ \frame{\includegraphics[width=.4\textwidth]{letter-17}}\par\bigskip}
+ \begin{captionbeside}[{Example: letter with extra sender information,
+ logo, rule, recipient, opening, text, closing, signature, postscript,
+ distribution list, enclosure, and hole-punch mark; left-aligned vs.
+ right-aligned vs. centred sender information}]
+ {result of a short letter with extra sender information, logo, rule,
+ recipient, opening, text, closing, signature, postscript, distribution
+ list, enclosure and hole-punch mark (the date is set by default):
+ at top left the sender is left-aligned, at top right the sender is
+ centred, and at bottom right the sender is right-aligned
+ sender}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-18}}\quad
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-16-18}
+ \end{figure}
+\end{Example}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Variable{firsthead}%
+\end{Declaration}
+In many cases, the capabilities that \Class{scrlttr2} offers with the
+foregoing options and variables will be sufficient to design a letterhead. In
+some cases, however, you may want even more flexibility. In those situations,
+you will have to do without the possibilities offered by the predefined
+letterhead, which you can select via the options described above. Instead, you
+must create your own letterhead from scratch. To do so, you must specify the
+desired structure as the \PName{contents} of the \Variable{firsthead}
+variable. For example, you can set several boxes side by side or one beneath
+the other using the \Macro{parbox} command (see \cite{latex:usrguide}).
+Experienced users should thus be able to create their own a letterheads. Of
+course you can and should use other variables with
+\DescRef{\LabelBase.cmd.usekomavar}. \KOMAScript{} does not use the
+\PName{description} of variable \Variable{firsthead}. \iffree{}{You can find
+ a detailed example of a letterhead definition in
+ \autoref{cha:modernletters}.}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{addrfield}{format}%
+ \OptionVName{backaddress}{value}%
+ \OptionVName{priority}{priority}%
+ \Variable{toname}%
+ \Variable{toaddress}%
+ \Variable{backaddress}%
+ \Variable{backaddressseparator}%
+ \Variable{specialmail}%
+ \Variable{fromzipcode}%
+ \Variable{zipcodeseparator}%
+ \Variable{place}%
+ \Variable{PPcode}%
+ \Variable{PPdatamatrix}%
+ \Variable{addresseeimage}%
+\end{Declaration}%
+\BeginIndex{}{address}%
+The \Option{addrfield} option determines whether or not to print an address
+field. The default\textnote{default} is to include an address field. The
+option recognizes the formats described in
+\autoref{tab:\LabelBase.addrfield}\ChangedAt{v3.03}{\Class{scrlttr2}}. With
+the values \PValue{true},
+\PValue{topaligned}\ChangedAt{v3.17}{\Class{scrlttr2}\and
+\Package{scrletter}}, \PValue{PP}, and \PValue{backgroundimage}, the name and
+address of the recipient are determined by the mandatory argument of the
+\DescRef{\LabelBase.env.letter} environment (see
+\autoref{sec:\LabelBase.document}, \DescPageRef{\LabelBase.env.letter}). This
+information is also copied into the variables \Variable{toname} and
+\Variable{toaddress}.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{addressee}\LabelFontElement{addressee}%
+\BeginIndex{FontElement}{toname}\LabelFontElement{toname}%
+\BeginIndex{FontElement}{toaddress}\LabelFontElement{toaddress}%
+You can change the default font styles\ChangedAt{v2.97c}{\Class{scrlttr2}}
+with the \DescRef{\LabelBase.cmd.setkomafont} or
+\DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}). There are three elements. First,
+the \FontElement{addressee}\important{\FontElement{addressee}} element is
+responsible for the overall style of the recipient's name and address. The
+elements \FontElement{toname}\important{\FontElement{toname}} and
+\FontElement{toaddress}\important{\FontElement{toaddress}} are responsible
+only for the name and the address of the recipient, respectively. You can use
+\FontElement{toname} and \FontElement{toaddress} to define modifications from
+the basic \FontElement{addressee} configuration.%
+\EndIndexGroup
+%
+\begin{table}
+ \caption[{Available values for the \Option{addrfield} option with
+ \Class{scrlttr2}}]{Available values for the \Option{addrfield} option to
+ change the recipient format of \Class{scrlttr2}}%
+ \label{tab:\LabelBase.addrfield}%
+ \begin{desctabular}
+ \entry{\PValue{backgroundimage}, \PValue{PPbackgroundimage},
+ \PValue{PPBackgroundImage}, \PValue{PPBackGroundImage},
+ \PValue{ppbackgroundimage}, \PValue{ppBackgroundImage},
+ \PValue{ppBackGroundImage}}{%
+ Prints an address with a background image stored in the
+ \Variable{addresseimage} variable as the postpaid postmark, but without
+ a return address or delivery type.}%
+ \entry{\PValue{false}, \PValue{off}, \PValue{no}}{%
+ Does not print an address.}%
+ \entry{\PValue{image}, \PValue{Image}, \PValue{PPimage}, \PValue{PPImage},
+ \PValue{ppimage}, \PValue{ppImage}}{%
+ Prints an image stored in the \Variable{addresseeimage} variable as an
+ address with a postpaid postmark. Recipient information, return address,
+ and delivery type or priority are ignored.}%
+ \entry{\PValue{PP}, \PValue{pp}, \PValue{PPexplicite},
+ \PValue{PPExplicite}, \PValue{ppexplicite}, \PValue{ppExplicite}}{%
+ Prints an address with a postage print impression (pospaid) header
+ filled in with the variables \Variable{fromzipcode}, \Variable{place},
+ and \Variable{PPcode}, and when applicable with a priority and a data
+ array defined by \Variable{PPdatamatrix}, but without a return address
+ or delivery type.}%
+ \entry{\PValue{topaligned}, \PValue{alignedtop}%
+ \ChangedAt{v3.17}{\Class{scrlttr2}\and \Package{scrletter}}}{%
+ Prints an address including a return address and a delivery type
+ or priority. The address is not centred vertically beneath the delivery
+ type.}%
+ \entry{\PValue{true}, \PValue{on}, \PValue{yes}}{%
+ Prints an address field including a return address and delivery type
+ or priority.}%
+ \end{desctabular}
+\end{table}%
+
+The default \OptionValue{addrfield}{true} also prints an underlined return
+address in the address field. The \Option{backaddress} option defines if and
+in what form a return address will be printed for window envelopes. On the one
+hand, this option\important{\OptionValue{backaddress}{false}} accepts the
+standard values for simple switches listed in \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch}. These values do not change style of the
+return address. On the other hand, when\ChangedAt{v2.96}{\Class{scrlttr2}} the
+return address is enabled, you can select its format at the same time. For
+example, the \PValue{underlined} option value enables an underlined return
+address, while \PValue{plain}\important{\OptionValue{backaddress}{plain}}
+selects a style without underlining. The default is \PValue{underlined} and
+thus prints an underlined return address.
+
+The return address itself is defined by the \PName{content} of the
+\Variable{backaddress} variable. The default is the name specified in
+\DescRef{\LabelBase.variable.fromname} and the address specified in
+\DescRef{\LabelBase.variable.fromaddress}. The double backslash is also
+replaced with the \PName{content} of the \Variable{backaddressseparator}
+variable. The default separator is a comma followed by a non-breaking space.
+\KOMAScript{} does not use the \PName{description} of the
+\Variable{backaddress} variable.
+\BeginIndexGroup\BeginIndex{FontElement}{backaddress}%
+\LabelFontElement{backaddress}%
+You can configure the font style of the return address via the
+\FontElement{backaddress}\important{\FontElement{backaddress}} element. The
+default is \Macro{sffamily} (see \autoref{tab:\LabelBase.AddresseeElements}).
+Before applying the element's font style \KOMAScript{} switches to
+\Macro{scriptsize}.%
+\EndIndexGroup
+
+The default \OptionValue{addrfield}{true}, centres the address vertically
+within the space available for the address.
+In\ChangedAt{v3.17}{\Class{scrlttr2}\and \Package{scrletter}} contrast,
+\OptionValue{addrfield}{topaligned}%
+\important{\OptionValue{addrfield}{topaligned}} will not centre the address
+but place it flush with the top of the available space.%
+
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}{%
+ Default font styles for the elements of the address field.%
+ }%
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ element & font style \\
+ \midrule
+ \DescRef{\LabelBase.fontelement.addressee}\IndexFontElement{addressee} &
+ \\
+ \DescRef{\LabelBase.fontelement.backaddress}\IndexFontElement{backaddress} &
+ \Macro{sffamily}%
+ \\
+ \DescRef{\LabelBase.fontelement.PPdata}\IndexFontElement{PPdata} &
+ \Macro{sffamily}%
+ \\
+ \DescRef{\LabelBase.fontelement.PPlogo}\IndexFontElement{PPlogo} &
+ \Macro{sffamily}\Macro{bfseries}%
+ \\
+ \DescRef{\LabelBase.fontelement.priority}\IndexFontElement{priority} &
+ \Macro{fontsize}\PParameter{10pt}\PParameter{10pt}%
+ \Macro{sffamily}\Macro{bfseries}%
+ \\
+ \DescRef{\LabelBase.fontelement.prioritykey}\IndexFontElement{prioritykey} &
+ \Macro{fontsize}\PParameter{24.88pt}\PParameter{24.88pt}%
+ \Macro{selectfont}%
+ \\
+ \DescRef{\LabelBase.fontelement.specialmail}\IndexFontElement{specialmail} &
+ \\
+ \DescRef{\LabelBase.fontelement.toaddress}\IndexFontElement{toaddress} &
+ \\
+ \DescRef{\LabelBase.fontelement.toname}\IndexFontElement{toname} &
+ \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:\LabelBase.AddresseeElements}%
+\end{table}
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{specialmail}\LabelFontElement{specialmail}
+With the default \OptionValue{addrfield}{true} setting, you can output an
+optional delivery type\Index{delivery type} between the return address and the
+recipient address. This will be output only if the \Variable{specialmail}
+variable has non-empty content and
+\OptionValue{priority}{manual}\ChangedAt{v3.03}{\Class{scrlttr2}} has been
+selected, which is the default. The \Class{scrlttr2} class itself does not use
+the \PName{description} of the \Variable{specialmail} variable. The alignment
+is defined by the \PLength{specialmailindent} and
+\PLength{specialmailrightindent} pseudo-lengths (see
+\DescPageRef{scrlttr2-experts.plength.specialmailindent}). You can change the
+default font style of the\ChangedAt{v2.97c}{\Class{scrlttr2}}
+\FontElement{specialmail}\important{\FontElement{specialmail}} element, which
+is listed in \autoref{tab:\LabelBase.AddresseeElements}, with the
+\DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}).%
+\EndIndexGroup
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{priority}\LabelFontElement{priority}%
+\BeginIndex{FontElement}{prioritykey}\LabelFontElement{prioritykey}%
+However\ChangedAt{v3.03}{\Class{scrlttr2}}\important{\normalcolor
+ \OptionValue{priority}{A}\\
+ \normalcolor\OptionValue{priority}{B}}, selecting an international priority
+with \OptionValue{priority}{A} or \OptionValue{priority}{B} (see
+\autoref{tab:\LabelBase.priority}) together with
+\OptionValue{addrfield}{true}, prints the priority as the delivery type. Using
+it together with
+\OptionValue{addrfield}{PP}\important{\OptionValue{addrfield}{PP}} prints the
+priority at the corresponding position in the postpaid postmark (also known as
+the postage print impression or \emph{port pay\'e}). The \FontElement{priority}
+element defines the basic font style, and \FontElement{prioritykey} defines
+the modification of the basic font style for the priority keys ``A'' or ``B''.
+You can find the default font styles listed in
+\autoref{tab:\LabelBase.AddresseeElements} and can change then using the
+\DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}).%
+\EndIndexGroup
+
+\begin{table}
+ \caption[{Available values for the \Option{priority} option in
+ \Class{scrlttr2}}]{Available values for the \Option{priority} option to
+ select the international priority in the address field of\Class{scrlttr2}}
+ \label{tab:\LabelBase.priority}
+ \begin{desctabular}
+ \entry{\PValue{false}, \PValue{off}, \PValue{no}, \PValue{manual}}{%
+ Priority will not be printed.}%
+ \entry{\PValue{B}, \PValue{b}, \PValue{economy}, \PValue{Economy},
+ \PValue{ECONOMY}, \PValue{B-ECONOMY}, \PValue{B-Economy},
+ \PValue{b-economy}}{%
+ Use international priority B-Economy. With
+ \OptionValue{addrfield}{true}, this is printed instead of the delivery
+ type.}%
+ \entry{\PValue{A}, \PValue{a}, \PValue{priority}, \PValue{Priority},
+ \PValue{PRIORITY}, \PValue{A-PRIORITY}, \PValue{A-Priority},
+ \PValue{a-priority}}{%
+ Use international priority A-Priority. With
+ \OptionValue{addrfield}{true}, this is printed instead of the delivery
+ type.}%
+ \end{desctabular}
+\end{table}
+
+With\ChangedAt{v3.03}{\Class{scrlttr2}}\important{\OptionValue{addrfield}{PP}}
+\OptionValue{addrfield}{PP}, the postal code in the \Variable{fromzipcode}
+variable and the location from the \Variable{place} pariable will be output in
+the postpaid postmark. The postal code (that is, the \PName{content} of
+\Variable{fromzipcode}) is preceded by the \PName{description} of the
+\Variable{fromzipcode} variable and the \PName{content} of
+\Variable{zipcodeseparator}. The default for the \PName{description} depends
+on the \File{lco} file used (see \autoref{sec:\LabelBase.lcoFile} starting on
+\autopageref{sec:\LabelBase.lcoFile}). On the other hand, the default
+\PName{content} of the \Variable{zipcodeseparator} variable is a thin space
+followed by an en rule followed by another thin space
+(\Macro{,}\texttt{-{}-}\Macro{,}).
+
+With\ChangedAt{v3.03}{\Class{scrlttr2}}
+\OptionValue{addrfield}{PP}\important{\OptionValue{addrfield}{PP}}, a code is
+placed in the postpaid postmark that uniquely identifies the sender. This is
+stored in the \Variable{PPcode} variable. You can also print an additional
+data array to the right of the address, which is stored in the
+\Variable{PPdatamatrix} variable.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{PPdata}\LabelFontElement{PPdata}
+The ZIP code\ChangedAt{v3.03}{\Class{scrlttr2}} (postal code), place, and
+sender code will be printed by default in an 8\Unit{pt} font. The the font
+style of the \FontElement{PPdata}\important{\FontElement{PPdata}} is used to
+do so. The default is listed in \autoref{tab:\LabelBase.AddresseeElements} and
+can be changed with the \DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}).%
+\EndIndexGroup
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{PPlogo}\LabelFontElement{PPlogo} For the postpaid
+logo ``P.P.'', however, the font style of the
+\FontElement{PPlogo}\important{\FontElement{PPlogo}} element is used. Its
+default can also be found in \autoref{tab:\LabelBase.AddresseeElements}.%
+\EndIndexGroup
+
+With\important{\OptionValue{addrfield}{backgroundimage}\\
+ \OptionValue{addrfield}{image}} the two settings
+\OptionValue{addrfield}{backgroundimage}\ChangedAt{v3.03}{\Class{scrlttr2}}
+and \OptionValue{addrfield}{image}, an image is print inside the address
+window. This image is stored in the \PName{content} of variable
+\Variable{addresseeimage}. \KOMAScript{} does not use the \PName{description}
+of this variable. Although only the image is printed with the
+\OptionValue{addrfield}{image} option, the recipient's name and address from
+the mandatory argument of the \DescRef{\LabelBase.env.letter} environment will
+be printed with the \OptionValue{addrfield}{backgroundimage} option.
+
+The position of the postpaid postmark and that of the
+postpaid address is defined by the \PLength{toaddrindent} pseudo-length (see
+\DescPageRef{scrlttr2-experts.plength.toaddrindent}) as well as
+\PLength{PPheadwidth} and \PLength{PPheadheight} (see
+\DescPageRef{scrlttr2-experts.plength.PPheadheight}). The position of
+the data array is defined by the \PLength{PPdatamatrixvskip} pseudo-length
+(see \DescPageRef{scrlttr2-experts.plength.PPdatamatrixvskip}).
+
+Note\textnote{Attention!} that \KOMAScript{} cannot print any external
+graphics or pictures by itself. So if you want to put external picture files
+into variables like \Variable{addresseeimage} or \Variable{PPdatamatrix}, you
+must load an additional graphics package like
+\Package{graphics}\IndexPackage{graphics} or
+\Package{graphicx}\IndexPackage{graphicx} and use, for instance, the
+\Macro{includegraphics} command in the \PName{content} of the variables.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{locfield}{setting}
+\end{Declaration}
+\BeginIndex{}{extra sender information}%
+In addition to the address field, \Class{scrlttr2} can print a field with
+extra sender attributes next to the address field. Its content can be
+anything you want, for example a location, a bank-account number, or other
+information. Depending\important{%
+ \OptionValueRef{\LabelBase}{fromalign}{locationleft}\\
+ \OptionValueRef{\LabelBase}{fromalign}{center}\\
+ \OptionValueRef{\LabelBase}{fromalign}{locationright}} on the
+\DescRef{\LabelBase.option.fromalign} option, it will also be used for the
+sender's logo. The width of this field can be specified in an \File{lco} file
+(see \autoref{sec:\LabelBase.lcoFile}). If the width is set to zero there, the
+\Option{locfield} option can toggle between two defaults for the field width.
+This is the case for most of the \File{lco} files that come with
+\KOMAScript{}. See also the explanation on the \PLength{locwidth}
+pseudo-length in \autoref{sec:scrlttr2-experts.locationField},
+\DescPageRef{scrlttr2-experts.plength.locwidth}. Available values for this
+option are shown in \autoref{tab:\LabelBase.locfield}. The default is
+\PValue{narrow}.%
+%
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}
+ [{Available values for the \Option{locfield} option with
+ \Class{scrlttr2}}]{Available values for the \Option{locfield} option to
+ set the width of the field for extra sender information with
+ \Class{scrlttr2}%
+ \label{tab:\LabelBase.locfield}}%
+ [l]
+ \begin{minipage}[t]{.45\linewidth}
+ \begin{desctabular}[t]
+ \pventry{narrow}{narrow extra sender information field}%
+ \pventry{wide}{wide extra sender information field}%
+ \end{desctabular}
+ \end{minipage}
+ \end{captionbeside}
+\end{table}
+
+\begin{Declaration}
+ \Variable{location}%
+\end{Declaration}
+The contents of the extra sender information field, unless it contains
+the logo or the basic sender information itself, are specified by the
+\Variable{location} variable. You can use formatting commands like
+\Macro{raggedright} within this variable's \PName{content}. \KOMAScript{} does
+not use the \PName{description} of this variable.
+
+\begin{Example}
+ Mr Public would like to provide some additional information about his
+ membership. Therefore he uses the \Variable{location} variable:%
+ \lstinputcode[xleftmargin=1em]{letter-19.tex}%
+ This will place the corresponding field beside the recipient's address, as
+ shown in \autoref{fig:\LabelBase.letter-19}.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Example: letter with extended sender, logo,
+ recipient, extra sender information, opening, text, closing,
+ signature, postscript, distribution list, enclosure, and hole-punch
+ mark}]
+ {result of a short letter with extended sender, logo, recipient,
+ extra sender information, opening, text, closing, signature,
+ postscript, distribution list, enclosure, and hole-punch mark (the
+ date is set by default)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-19}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-19}
+ \end{figure}
+\end{Example}
+\EndIndexGroup
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{numericaldate}{simple switch}
+\end{Declaration}
+This option toggles between the standard, language-dependent
+date\Index{date}\Index{reference line} presentation, and a short, numerical
+one. \KOMAScript{} does not provide the standard date format. It should be
+defined by a package such as \Package{ngerman}\IndexPackage{ngerman},
+\Package{babel}\IndexPackage{babel}, or
+\Package{isodate}\IndexPackage{isodate}.
+The\important{\OptionValue{numericaldate}{true}} short, numerical
+representation, however, is produced by \Class{scrlttr2} itself. The option
+recognizes the standard values for simple switches as listed in
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}. The default
+is \PValue{false}, which results in standard date format.
+
+\begin{Declaration}
+ \Variable{date}%
+\end{Declaration}
+The date in the selected format is stored as \PName{content} of the
+\Variable{date} variable. Setting the
+\DescRef{\LabelBase.option.numericaldate} option has no effect if this
+variable is overridden. The date is usually output as part of the reference
+line. If all other elements of the reference line are empty, a date line
+consisting of the location and the date is printed instead. However in this
+case, the settings of the \DescRef{\LabelBase.option.refline} option described
+below also affect the date line. See the description of variable
+\DescRef{\LabelBase.variable.place} on
+\DescPageRef{\LabelBase.variable.placeseparator} for more information about
+the location.
+%
+\EndIndexGroup
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{refline}{selection}
+\end{Declaration}
+\BeginIndex{}{reference line}%
+\index{business line|see{reference line}}%
+Business letters in particular often contain an area with information such as
+an identification code\Index{identification code}, phone
+extension\Index{phone>extension}, customer number\Index{customer number},
+invoice number\Index{invoice number}, or references to previous letters. This
+guide calls this area the \emph{reference-field line}\textnote{reference-field
+ line}, or simply the \emph{reference line}.
+
+With \Class{scrlttr2} and \Package{scrletter}, the header, footer, address,
+and extra sender information can extend left and right beyond the normal
+type area. The
+\OptionValue{refline}{wide}\important{\OptionValue{refline}{wide}} option
+specifies that this should also apply to the reference-field line. Normally,
+the reference-field line contains at least the date, but it can hold
+additional data. Available values for this option are shown in
+\autoref{tab:\LabelBase.refline}. The default is \PValue{narrow} and
+\PValue{dateright}\ChangedAt{v3.09}{\Class{scrlttr2}}.%
+%
+\begin{table}
+ \caption[{Available values for the \Option{refline} option with
+ \Class{scrlttr2}}]{Available values for the \Option{refline} option to set
+ the width of the reference line with \Class{scrlttr2}}
+ \label{tab:\LabelBase.refline}
+ \begin{desctabular}
+ \pventry{dateleft}{\ChangedAt{v3.09}{\Class{scrlttr2}}%
+ The date is placed leftmost in the reference line.}%
+ \pventry{dateright}{\ChangedAt{v3.09}{\Class{scrlttr2}}%
+ The date is placed rightmost in the reference line.}%
+ \pventry{narrow}{The reference line is restricted to the type area.}%
+ \pventry{nodate}{\ChangedAt{v3.09}{\Class{scrlttr2}}%
+ The date is not placed automatically into the reference line.}%
+ \pventry{wide}{The width of the reference line depends on the positions of
+ the address and extra sender information.}%
+ \end{desctabular}
+\end{table}
+
+\begin{Declaration}
+ \Variable{yourref}%
+ \Variable{yourmail}%
+ \Variable{myref}%
+ \Variable{customer}%
+ \Variable{invoice}%
+\end{Declaration}
+You can manage the typical contents of the reference-field line with five
+variables: \Variable{yourref}, \Variable{yourmail}, \Variable{myref},
+\Variable{customer} and \Variable{invoice}. Their meanings are listed in
+\autoref{tab:\LabelBase.variables} on \autopageref{tab:\LabelBase.variables}.
+Each variable has also a predefined \PName{description}, shown in
+\autoref{tab:\LabelBase.reflineTerm}. How to add more variables to the
+reference-field line is explained in \autoref{sec:scrlttr2-experts.variables}
+starting on \DescPageRef{scrlttr2-experts.cmd.newkomavar}.%
+%
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}[{Default descriptions of variables in the
+ reference line}]{Default descriptions of typical variables in the
+ reference line using language-dependent commands}%
+ [l]
+ \begin{tabular}[t]{lll}
+ \toprule
+ name & description & English default text\\
+ \midrule
+ \Variable{yourref} & \DescRef{scrlttr2-experts.cmd.yourrefname} & Your reference \\
+ \Variable{yourmail} & \DescRef{scrlttr2-experts.cmd.yourmailname} & Your letter from \\
+ \Variable{myref} & \DescRef{scrlttr2-experts.cmd.myrefname} & Our reference \\
+ \Variable{customer} & \DescRef{scrlttr2-experts.cmd.customername} & Customer No.: \\
+ \Variable{invoice} & \DescRef{scrlttr2-experts.cmd.invoicename} & Invoice No.: \\
+ \DescRef{\LabelBase.variable.date} & \DescRef{scrlttr2-experts.cmd.datename} & date \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:\LabelBase.reflineTerm}
+\end{table}
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{refname}\LabelFontElement{refname}%
+\BeginIndex{FontElement}{refvalue}\LabelFontElement{refvalue}%
+You\ChangedAt{v2.97c}{\Class{scrlttr2}} can change the font style and colour
+of the \PName{description} and \PName{content} of the fields in the reference
+line with the \FontElement{refname}%
+\important[i]{\FontElement{refname}\\\FontElement{refvalue}} and
+\FontElement{refvalue} elements using the \DescRef{\LabelBase.cmd.setkomafont}
+and \DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}). The defaults for both elements are
+listed in \autoref{tab:\LabelBase.refnamerefvalue}.%
+\begin{table}[tp]
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}
+ [{Default font styles for elements in the reference line}]{Default font
+ style settings for the elements in the reference line%
+ \label{tab:\LabelBase.refnamerefvalue}}
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ element & default configuration \\
+ \midrule
+ \DescRef{\LabelBase.fontelement.refname} & \Macro{sffamily}\Macro{scriptsize} \\
+ \DescRef{\LabelBase.fontelement.refvalue} & \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Variable{placeseparator}%
+\end{Declaration}%
+\BeginIndex{Variable}{place}%
+If all variables in the reference-field line, with the exception of
+\DescRef{\LabelBase.variable.date}%
+\important{\DescRef{\LabelBase.variable.date}}\IndexVariable{date}, are empty,
+no actual reference line is output. Instead, a date line consisting only of a
+location\Index{location} and a date\Index{date} is output. The \PName{content}
+of the \DescRef{\LabelBase.variable.place} variable contains the location. The
+delimiter, which in this case is placed after the location, is specified by
+the \PName{content} of the \Variable{placeseparator} variable. The
+default\textnote{default} \PName{content} of the delimiter is a comma followed
+by a non-breaking space. If the location is empty, the delimiter is not
+output. The default \PName{content} of \DescRef{\LabelBase.variable.date} is
+\Macro{today}\IndexCmd{today} and depends on the setting of the
+\DescRef{\LabelBase.option.numericaldate} option (see
+\DescPageRef{\LabelBase.option.numericaldate}).
+
+Starting with version~3.09\ChangedAt{v3.09}{\Class{scrlttr2}}, the location
+and date are no longer required to be right-aligned. Instead, when a date
+line is used, its alignment is specified by the date setting of the
+\DescRef{\LabelBase.option.refline} option, as listed in
+\autoref{tab:\LabelBase.refline}.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{placeanddate}\LabelFontElement{placeanddate}%
+If\ChangedAt{v3.12}{\Class{scrlttr2}} such a date line is output with a
+location rather than a reference-field line, the font setting of the
+\DescRef{\LabelBase.fontelement.refvalue} element does not apply. In this
+case, the \FontElement{placeanddate}\important{\FontElement{placeanddate}}
+element is used. You can change the empty default of this font element as
+usual with the \DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}).%
+\EndIndexGroup
+
+\begin{Example}
+ Now Mr Public also sets the variable for the location:%
+ \lstinputcode[xleftmargin=1em]{letter-20.tex}%
+ As seen in \autoref{fig:\LabelBase.letter-20}, the location appears
+ in front of the date, followed by the automatic delimiter. This date has
+ been defined explicitly so that the original date is maintained in any later
+ \LaTeX{} run rather than using the date of the \LaTeX{} run.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Example: letter with extended sender, logo,
+ recipient, extra sender information, location, date, opening,
+ text, closing, signature, postscript, distribution list, enclosure,
+ and hole-punch mark}]
+ {result of a short letter with extended sender, logo, recipient,
+ extra sender information, location, date, opening, text, closing,
+ signature, postscript, distribution list, enclosure and hole-punch
+ mark}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-20}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-20}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+\EndIndexGroup
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Variable{title}%
+\end{Declaration}
+With \KOMAScript{}, you can also give a letter a title\Index{title}. The title
+is centred, using the \Macro{LARGE} font size, and placed directly beneath the
+reference-field line.
+
+\BeginIndex{FontElement}{lettertitle}\LabelFontElement{lettertitle}%
+\BeginIndex{FontElement}{title}\LabelFontElement{title}%
+You can change the font style for the
+\FontElement{lettertitle}\important{\FontElement{lettertitle}} element with
+the \DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}). Font size declarations are
+allowed. The \Macro{LARGE} font size always precedes the font selection in
+\KOMAScript{}, and is therefore not part of the default setting
+\Macro{normalcolor}\Macro{sffamily}\Macro{bfseries}. With \Class{scrlttr2},
+you can also use \FontElement{title}\important{\FontElement{title}} as an
+alias for \FontElement{lettertitle}. This is not possible when using
+\Package{scrletter} with a \KOMAScript{} class because these classes already
+define a \FontElement{title} element for the document title with different
+setting.%
+\EndIndex{FontElement}{title}%
+\EndIndex{FontElement}{lettertitle}%
+\begin{Example}
+ Suppose you are writing a reminder letter. You set a corresponding title:
+\begin{lstlisting}
+ \setkomavar{title}{Reminder}
+\end{lstlisting}
+ This way the recipient should recognize the reminder as such.
+\end{Example}
+As shown in the example, the \PName{content} of the variable defines the
+title. \KOMAScript{} does not use the \PName{description}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{subject}{selection}%
+ \Variable{subject}%
+ \Variable{subjectseparator}%
+\end{Declaration}
+\BeginIndex{}{subject}%
+To include a subject, define the \PName{content} of the \Variable{subject}
+variable accordingly. First of all, you can use the
+\OptionValue{subject}{true}\important{\OptionValue{subject}{titled}} option,
+to choose whether the subject should be preceded with a \PName{description} or
+not. If you use the \PName{description} the \PName{content} of the
+\Variable{subjectseparator}\Index{separator} variable is output between the
+\PName{description} and the \PName{content} of the \Variable{subject}
+variable. The default \PName{content} of \PName{subjectseparator} consists of
+a colon followed by a space.
+
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}{Default descriptions of variables for the subject}
+ [l]
+ \begin{tabular}[t]{lll}
+ \toprule
+ variable name & description \\
+ \midrule
+ \Variable{subject} & \DescRef{\LabelBase.cmd.usekomavar*}\PParameter{subjectseparator}%
+ \texttt{\%} \\
+ & \texttt{\quad}%
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{subjectseparator} \\
+ \Variable{subjectseparator} & \DescRef{scrlttr2-experts.cmd.subjectname} \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:\LabelBase.subjectTerm}
+\end{table}
+
+Additionally, you can use \OptionValue{subject}{afteropening}%
+\important{\OptionValue{subject}{afteropening}\\
+ \OptionValue{subject}{beforeopening}} to place the subject after the letter
+opening instead of the default \OptionValue{subject}{beforeopening}. You can
+also specify other formatting\important{\OptionValue{subject}{underlined}\\
+ \OptionValue{subject}{centered}\\
+ \OptionValue{subject}{right}} for the subject with
+\OptionValue{subject}{underlined}, \OptionValue{subject}{centered}, or
+\OptionValue{subject}{right}\ChangedAt{v2.97c}{\Class{scrlttr2}}. The
+available values are listed in \autoref{tab:\LabelBase.subject}.
+Note\textnote{Attention!} that with the \OptionValue{subject}{underlined}
+option, the whole subject must fit onto one line. The defaults are
+\OptionValue{subject}{left}, \OptionValue{subject}{beforeopening}, and
+\OptionValue{subject}{untitled}.%
+%
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}
+ [{Available values for the \Option{subject} option with \Class{scrlttr2}}]
+ {Available values for the \Option{subject} option for the position and
+ formatting of the subject with
+ \Class{scrlttr2}\label{tab:\LabelBase.subject}}%
+ [l]
+ \begin{minipage}[t]{.6\linewidth}
+ \begin{desctabular}[t]
+ \pventry{afteropening}{subject after opening}%
+ \pventry{beforeopening}{subject before opening}%
+ \pventry{centered}{subject centred}%
+ \pventry{left}{subject left-justified}%
+ \pventry{right}{subject right-justified}%
+ \pventry{titled}{add title/description to subject}%
+ \pventry{underlined}{set subject underlined (see note in text)}%
+ \pventry{untitled}{do not add title/description to subject}%
+ \end{desctabular}
+ \end{minipage}
+ \end{captionbeside}
+\end{table}
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{lettersubject}\LabelFontElement{lettersubject}%
+\BeginIndex{FontElement}{subject}\LabelFontElement{subject}%
+The subject line is set in a separate font\Index{font>style}. To change this,
+use the \DescRef{\LabelBase.cmd.setkomafont} and
+\DescRef{\LabelBase.cmd.addtokomafont} commands (see
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}). For the
+\FontElement{lettersubject}\important{\FontElement{lettersubject}} element,
+the default font is \Macro{normalcolor}\Macro{bfseries}. With the
+\Class{scrlttr2} class, you can also use
+\FontElement{subject}\important{\FontElement{subject}} as an alias of
+\FontElement{lettersubject}. This is not possible with the \Package{scrletter}
+package when using a \KOMAScript{} class, because these classes already define
+a \FontElement{subject} element for the document title with different
+settings.%
+\EndIndexGroup
+
+\begin{Example}
+ Mr Public now includes a subject. As a traditionalist, he also wants the
+ subject to be labelled accordingly and therefore sets the corresponding
+ option:%
+ \lstinputcode[xleftmargin=1em]{letter-21.tex}%
+ The result is shown in \autoref{fig:\LabelBase.letter-21}.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Example: letter with extended sender, logo,
+ recipient, extra sender information, place, date, subject,
+ opening, text, closing, signature, postscript, distribution list,
+ enclosure, and hole-punch mark}]
+ {result of a short letter with extended sender, logo, recipient,
+ extra sender information, place, date, subject, opening, text,
+ closing, signature, postscript, distribution list, enclosure and
+ hole-punch mark}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-21}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-21}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{firstfoot}{simple switch}
+\end{Declaration}
+\BeginIndex{}{letterhead page>footer}%
+This\ChangedAt{v2.97e}{\Class{scrlttr2}} option determines whether the footer
+for the letterhead page is output. Switching off the letterhead page footer
+with \OptionValue{firstfoot}{false}\important{\OptionValue{firstfoot}{false}},
+has an effect when the \DescRef{\LabelBase.option.enlargefirstpage} option
+(see \DescPageRef{\LabelBase.option.enlargefirstpage}) is used at the same
+time, as this will logically extend the page downwards. In this case, the
+distance that is ordinarily between type area and the footer becomes the
+distance between the end of the type area and the bottom of the page.
+
+The option recognizes the standard values for simple switches listed in
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}. The default
+is to include the letterhead page footer.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Variable{firstfoot}%
+\end{Declaration}%
+\BeginIndex{}{letterhead page>footer}%
+The footer of the first page is empty by default.
+However\ChangedAt{v3.08}{\Class{scrlttr2}}, you can specify a new footer
+in the \PName{content} of the \Variable{firstfoot} variable. \KOMAScript{}
+does not use the \PName{description} of the variable.
+
+\BeginIndex{Variable}{frombank}%
+\begin{Example}
+ You want to put the \PName{content} of the \Variable{frombank} variable
+ (i.\,e. the bank account details) in the footer of the first page. The
+ double backslash should be replaced with a comma:
+\begin{lstcode}
+ \setkomavar{firstfoot}{%
+ \parbox[b]{\linewidth}{%
+ \centering\def\\{, }\usekomavar{frombank}%
+ }%
+ }
+\end{lstcode}
+ You can also define your own variable for the separator. I leave
+ this as an exercise for the reader.
+
+ If you want to create a footer in order to counterbalance the letterhead, you
+ can do so, for example, as follows:
+\begin{lstcode}
+ \setkomavar{firstfoot}{%
+ \parbox[t]{\textwidth}{\footnotesize
+ \begin{tabular}[t]{l@{}}%
+ \multicolumn{1}{@{}l@{}}{Partners:}\\
+ Jim Smith\\
+ Russ Mayer
+ \end{tabular}%
+ \hfill
+ \begin{tabular}[t]{l@{}}%
+ \multicolumn{1}{@{}l@{}}{Managing Director:}\\
+ Lisa Mayer\\[1ex]
+ \multicolumn{1}{@{}l@{}}{Court Jurisdiction:}\\
+ Great Plains
+ \end{tabular}%
+ \ifkomavarempty{frombank}{}{%
+ \hfill
+ \begin{tabular}[t]{l@{}}%
+ \multicolumn{1}{@{}l@{}}{\usekomavar*{frombank}:}\\
+ \usekomavar{frombank}
+ \end{tabular}%
+ }%
+ }%
+ }
+\end{lstcode}
+ This example originally came from Torsten Kr\"uger. You should
+ consider placing a definition intended for multiple use in different
+ documents in a separate \File{lco} file\Index{lco file=\File{lco} file}.
+\begin{lstcode}
+ \setkomavar{frombank}{Account No. 12345678\\
+ Buffoon Bank\\
+ Bank Code: 65-43-21}
+\end{lstcode}
+ can then be used to set the bank details in the document.
+% However depending on your settings, there may not be sufficient space
+% for such a large footer, and it may therefore be placed too low on the
+% page. In such a case, you can adjust its vertical position with the
+% pseudo-length \PLength{firstfootvpos}\IndexPLength{firstfootvpos}.
+\end{Example}
+
+The previous example uses a multi-line footer. With a compatibility setting
+of version 2.9u (see \DescRef{\LabelBase.option.version} in
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}) the space is generally insufficient.
+In this case, you should reduce \PLength{firstfootvpos} (see
+\DescPageRef{scrlttr2-experts.plength.firstfootvpos}) appropriately.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Variable{frombank}
+\end{Declaration}%
+\BeginIndex{}{letterhead page>footer}%
+The \Variable{frombank} variable used in the previous example
+occupies a special position. It is not currently used internally. However, you
+can use it to put the bank information\Index{bank information} in the
+extra sender information field or in the footer, as in the example (see
+the variable \DescRef{\LabelBase.variable.location},
+\DescPageRef{\LabelBase.variable.location}).%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\LoadCommonFile{parmarkup} % \section{Paragraph Markup}
+
+\LoadCommonFile{oddorevenpage} % \section{Detection of Odd and Even Pages}
+
+
+\section{Headers and Footers with the Default Page Style}
+\seclabel{pagestyle}
+\BeginIndexGroup
+\BeginIndex{}{page>style}%
+\BeginIndex{}{page>header}%
+\BeginIndex{}{page>footer}%
+
+One of the general properties of a document is its page style. In \LaTeX{}
+this mostly consists of the contents of headers and footers.
+As\textnote{Attention!} already mentioned in
+\autoref{sec:\LabelBase.firstpage}, the header and footer of the letterhead
+page are treated as elements of the letterhead page. Therefore they do not
+depend on the settings of the page style. So this section describes the page
+styles of the subsequent pages of a letter after the letterhead page. For
+one-sided letters, this is the page style of the second sheet. For two-sided
+letters, this is also the page style of all verso pages.
+
+
+\begin{Declaration}
+ \Macro{letterpagestyle}
+\end{Declaration}
+The\ChangedAt{v3.19}{\Class{scrlttr2}\and \Package{scrletter}} default page
+style for letters is specified by the contents of the \Macro{letterpagestyle}
+command. By default\textnote{default},
+\Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} leaves this command empty. This
+means that the page style of letters is the same as in the rest of the
+document. This is useful because \Class{scrlttr2} is intended for letter-only
+documents, and it is easier to define the page style for all letters globally,
+using \DescRef{\LabelBase.cmd.pagestyle} as usual.
+
+Since both the \DescRef{\LabelBase.pagestyle.plain} and the
+\DescRef{\LabelBase.pagestyle.headings} page styles of other classes differs
+from the page style necessary for letters, the
+\Package{scrletter}\OnlyAt{\Package{scrletter}}\textnote{default} package
+defines \Macro{letterpagestyle} with to be
+\DescRef{\LabelBase.pagestyle.plain.letter}\IndexPagestyle{plain.letter}%
+\important{\DescRef{\LabelBase.pagestyle.plain.letter}}. This causes all
+letters to use the
+\hyperref[desc:\LabelBase.pagestyle.plain.letter]{\PageStyle{plain}} style of
+the \DescRef{\LabelBase.pagestyle.letter}\IndexPagestyle{letter} page style
+pair, regardless of the page style of the rest of the document. See
+\autoref{sec:scrlttr2-experts.pagestyleatscrletter} for more information about
+the characteristics of the page style of the \Package{scrletter} package.
+\begin{Example}
+ You are using the \Package{scrletter} package and want letters to use the
+ same page style that was set for the rest of the document with
+ \DescRef{\LabelBase.cmd.pagestyle}. To do this, put the command
+\begin{lstcode}
+ \renewcommand*{\letterpagestyle}{}
+\end{lstcode}
+ in your document preamble. Notice the star in \Macro{renewcommand*}.
+\end{Example}
+Of course, if you use \DescRef{\LabelBase.cmd.pagestyle} or
+\DescRef{\LabelBase.cmd.thispagestyle} inside a letter, this will take
+precedence over the page style set in \Macro{begin}\PParameter{letter} with
+\Macro{letterpagestyle}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{headsepline}{simple switch}%
+ \OptionVName{footsepline}{simple switch}
+\end{Declaration}
+With these options \Class{scrlttr2}\OnlyAt{scrlttr2} can select whether to put
+a separator rule\Index{line>separator}\Index{rule>separator} below the header
+or above the footer, respectively, on subsequent pages. This option acccepts
+the standard values for simple switches listed in
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}.
+Activating\important{\OptionValue{headsepline}{true}} the \Option{headsepline}
+option enables a rule below the header.
+Activating\important{\OptionValue{footsepline}{true}} the \Option{footsepline}
+option enables a rule above the footer. Deactivating the options disables the
+corresponding rules.
+
+Of course, the \Option{headsepline} and \Option{footsepline} options have no
+effect on the \DescRef{\LabelBase.pagestyle.empty}%
+\important{\DescRef{\LabelBase.pagestyle.empty}} page style (see later in this
+section). This page style explicitly does not use headers or footers.
+
+Typographically\important{\DescRef{\LabelBase.pagestyle.headings}\\
+ \DescRef{\LabelBase.pagestyle.myheadings}\\
+ \DescRef{\LabelBase.pagestyle.plain}} speaking, such a rule creates an
+optical effect of making the header or footer appear to be closer to the text
+area. This does not mean that the distance between the header or footer and
+the text should be increased. Instead, they should be seen as part of the text
+body\Index{text>body} when calculating the type area. To achieve this
+\Class{scrlttr2} uses the \Option{headsepline} class option to automatically
+pass the \DescRef{typearea.option.headinclude}%
+\important{\DescRef{typearea.option.headinclude}} package option to the
+\hyperref[cha:typearea]{\Package{typearea}} package. The same applies to
+\DescRef{\LabelBase.option.footsepline} for
+\DescRef{typearea.option.footinclude}%
+\important{\DescRef{typearea.option.footinclude}}.
+
+The options themselves do not automatically recalculate the type area. To
+recalculate the type area, see the \DescRef{typearea.option.DIV} option with
+the \PValue{last} or \PValue{current} values (see
+\DescPageRef{typearea.option.DIV.last}), or the
+\DescRef{typearea.cmd.recalctypearea} command (see
+\DescPageRef{typearea.cmd.recalctypearea}) in \autoref{cha:typearea}.
+
+The \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}
+package (see \autoref{cha:scrlayer-scrpage}) provides further control over
+header and footer rules and you can also combine it with \Class{scrlttr2}. The
+\Package{scrletter} package automatically uses
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} to
+define the \DescRef{\LabelBase.pagestyle.letter} and
+\DescRef{\LabelBase.pagestyle.plain.letter} page styles.
+
+The\OnlyAt{\Package{scrletter}} \DescRef{\LabelBase.pagestyle.letter} and
+\DescRef{\LabelBase.pagestyle.plain.letter} page styles defined by
+\Package{scrletter} follow the rules of
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}. This particularly
+applies to setting the header and footer rules of the \PageStyle{plain} page
+style \DescRef{\LabelBase.pagestyle.plain.letter}. See in
+\autoref{sec:scrlayer-scrpage.pagestyle.content},
+\DescPageRef{scrlayer-scrpage.option.headsepline} and
+\DescPageRef{scrlayer-scrpage.option.plainheadsepline} the options
+\DescRef{scrlayer-scrpage.option.headsepline} and
+\DescRef{scrlayer-scrpage.option.plainheadsepline}. Also, settings like
+\DescRef{scrlayer-scrpage.option.automark} are of some importance for the
+\DescRef{\LabelBase.pagestyle.letter} page style.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{pagenumber}{position}
+\end{Declaration}
+With this option you can select if and where a page number should be placed on
+subsequent pages. In \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} this option
+affects the page styles\important{\DescRef{\LabelBase.pagestyle.headings}\\
+ \DescRef{\LabelBase.pagestyle.myheadings}\\
+ \DescRef{\LabelBase.pagestyle.plain}}
+\DescRef{\LabelBase.pagestyle.headings},
+\DescRef{\LabelBase.pagestyle.myheadings} and
+\DescRef{\LabelBase.pagestyle.plain}; in
+\Package{scrletter}\OnlyAt{\Package{scrletter}}, it affects the
+\DescRef{\LabelBase.pagestyle.letter} and
+\DescRef{\LabelBase.pagestyle.plain.letter} page styles. It also affects the
+default page styles of the
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}%
+\IndexPackage{scrlayer-scrpage} package, as long as it is set before that
+package is loaded (see \autoref{cha:scrlayer-scrpage}). It accepts values that
+influence only the horizontal position, only the vertical position, or both
+positions simultaneously. Available values are listed in
+\autoref{tab:\LabelBase.pagenumber}. The default is \PValue{botcenter}.
+
+\begin{table}
+ \caption[{Available values for the \Option{pagenumber} option with
+ \Class{scrlttr2}}]{Available values for the \Option{pagenumber} option to
+ position the page number in the \PageStyle{headings},
+ \PageStyle{myheadings}, and \PValue{plain} page styles with
+ \Class{scrlttr2}}
+ \label{tab:\LabelBase.pagenumber}
+ \begin{desctabular}
+ \entry{\PValue{bot}, \PValue{foot}}{%
+ page number in footer, horizontal position unchanged}%
+ \entry{\PValue{botcenter}, \PValue{botcentered}, \PValue{botmittle},
+ \PValue{footcenter}, \PValue{footcentered}, \PValue{footmiddle}}{%
+ page number in footer, centred}%
+ \entry{\PValue{botleft}, \PValue{footleft}}{%
+ page number in footer, left-justified}%
+ \entry{\PValue{botright}, \PValue{footright}}{%
+ page number in footer, right-justified}%
+ \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{%
+ page number centred horizontally, vertical position unchanged}%
+ \entry{\PValue{false}, \PValue{no}, \PValue{off}}{%
+ no page number}%
+ \entry{\PValue{head}, \PValue{top}}{%
+ page number in header, horizontal position unchanged}%
+ \entry{\PValue{headcenter}, \PValue{headcentered}, \PValue{headmiddle},
+ \PValue{topcenter}, \PValue{topcentered}, \PValue{topmiddle}}{%
+ page number in header, centred}%
+ \entry{\PValue{headleft}, \PValue{topleft}}{%
+ page number in header, left-justified}%
+ \entry{\PValue{headright}, \PValue{topright}}{%
+ page number in header, right-justified}%
+ \entry{\PValue{left}}{%
+ page number left, vertical position unchanged}%
+ \entry{\PValue{right}}{%
+ page number right, vertical position unchanged}%
+ \end{desctabular}
+\end{table}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{pagestyle}\Parameter{page style}%
+ \Macro{thispagestyle}\Parameter{local page style}
+\end{Declaration}%
+\BeginIndex{Pagestyle}{empty}%
+\BeginIndex{Pagestyle}{plain}%
+\BeginIndex{Pagestyle}{headings}%
+\BeginIndex{Pagestyle}{myheadings}%
+Letters written with \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} have four
+different page styles available. In contrast,
+\Package{scrletter}\OnlyAt{\Package{scrletter}} defines only two of its own
+page styles.
+\begin{description}\setkomafont{descriptionlabel}{}
+\item[{\PageStyle{empty}}]
+ \LabelPageStyle{empty} is the page style where the headers and footers of
+ subsequent pages are completely empty. This page style is also automatically
+ used for the first page of the letter because the header and footer of this
+ page are set by other means, using
+ \DescRef{\LabelBase.cmd.opening}\IndexCmd{opening} (see
+ \autoref{sec:\LabelBase.firstpage}, \DescPageRef{\LabelBase.cmd.opening}).
+\item[{\PageStyle{headings}}]
+ \LabelPageStyle{headings} is, for \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}},
+ the page style for automatic running heads on subsequent pages. The sender's
+ name from the \DescRef{\LabelBase.variable.fromname}\IndexVariable{fromname}
+ variable and the subject from the
+ \DescRef{\LabelBase.variable.subject}\IndexVariable{subject} variable are
+ used to set the marks (see \autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromname} and
+ \DescPageRef{\LabelBase.variable.subject}). Where exactly these marks and
+ page numbers are placed depends on the
+ \DescRef{\LabelBase.option.pagenumber} described above and the
+ \PName{content} of the
+ \DescRef{\LabelBase.variable.nexthead}\IndexVariable{nexthead} and
+ \DescRef{\LabelBase.variable.nextfoot}\IndexVariable{nextfoot} variables. An
+ author can also change these marks manually after the
+ \DescRef{\LabelBase.cmd.opening} command. As usual, the
+ \DescRef{\LabelBase.cmd.markboth} and \DescRef{\LabelBase.cmd.markright}
+ commands are available, as is \DescRef{scrlayer-scrpage.cmd.markleft} if you
+ use \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ \IndexPackage{scrlayer-scrpage}%
+ \important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}
+ (see \autoref{sec:scrlayer-scrpage.pagestyle.content},
+ \DescPageRef{scrlayer-scrpage.cmd.automark}).
+
+ Since \Package{scrletter}\OnlyAt{scrletter} uses
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} internally, any
+ page style \DescRef{maincls.pagestyle.headings} provided by the class are
+ redefined as an alias of \DescRef{scrlayer-scrpage.pagestyle.scrheadings}.
+ You can find more about this page style in \autoref{cha:scrlayer-scrpage} on
+ \DescPageRef{scrlayer-scrpage.pagestyle.scrheadings}.
+\item[{\PageStyle{letter}}]
+ \LabelPageStyle{letter}%
+ Since the \PageStyle{headings} page style is generally already in use by
+ the classes, the \Package{scrletter}\OnlyAt{scrletter} package instead
+ defines the \PageStyle{letter} page style. This is accomplished with the
+ help of \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} in
+ \autoref{cha:scrlayer-scrpage}, \autopageref{cha:scrlayer-scrpage}. With the
+ \OptionValueRef{scrlayer-scrpage}{automark}{true}%
+ \important{\OptionValueRef{scrlayer-scrpage}{automark}{true}}%
+ \IndexOption{automark} setting enabled, \PageStyle{letter} then assumes the
+ role played by \PageStyle{headings} in \Class{scrlttr2}. With
+ \OptionValueRef{scrlayer-scrpage}{automark}{false}%
+ \important{\OptionValueRef{scrlayer-scrpage}{automark}{false}}%
+ \IndexOption{automark} set, \PageStyle{letter} assumes the role of
+ \PageStyle{myheadings}.
+
+ When\textnote{Attention!} you use
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} with
+ \Package{scrletter}, you cannot use the obsolete
+ \Package{scrpage2}\IndexPackage{scrpage2} package or the
+ \Package{fancyhdr}\IndexPackage{fancyhdr} package, which is incompatible
+ with \KOMAScript{}.
+\item[{\PageStyle{myheadings}}]
+ \LabelPageStyle{myheadings}%
+ in \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} is the page style for manual
+ running heads on subsequent pages. Unlike \PValue{headings}, you must set
+ the marks yourself with the
+ \DescRef{\LabelBase.cmd.markboth}\IndexCmd{markboth} and
+ \DescRef{\LabelBase.cmd.markright}\IndexCmd{markright} commands. When you
+ use \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}},
+ \DescRef{scrlayer-scrpage.cmd.markleft}\IndexCmd{markleft} is also
+ available.
+
+ With the \Package{scrletter}\OnlyAt{\Package{scrletter}} package, the
+ \PageStyle{letter} page style also assumes the role of
+ \PageStyle{myheadings}.
+\item[{\PageStyle{plain}}]
+ \LabelPageStyle{plain}%
+ is the default page style for \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}},
+ which does not use any headers on subsequent pages and only outputs
+ a single page number. Where this is placed depends on the
+ \DescRef{\LabelBase.option.pagenumber} option explained above.
+
+ Since \Package{scrletter}\OnlyAt{scrletter} uses
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} internally, the
+ \DescRef{maincls.pagestyle.plain} page style is redefined as an alias of
+ \DescRef{scrlayer-scrpage.pagestyle.plain.scrheadings}. You can find more
+ about this page style in \autoref{cha:scrlayer-scrpage} on
+ \DescPageRef{scrlayer-scrpage.pagestyle.scrheadings}.
+\item[{\PageStyle{plain.letter}}]
+ \LabelPageStyle{plain.letter}%
+ Since the \PageStyle{plain} page style is generally already in use by the
+ classes, the \Package{scrletter}\OnlyAt{scrletter} defines a
+ \PageStyle{plain.letter} page style instead. This is accomplished with the
+ help of \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}.
+ When\textnote{Attention!} you use
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} with
+ \Package{scrletter}, you cannot use the obsolete
+ \Package{scrpage2}\IndexPackage{scrpage2} package or the
+ \Package{fancyhdr}\IndexPackage{fancyhdr} package, which is incompatible
+ with \KOMAScript{}.
+\end{description}
+
+The appearance of the page styles is also influenced by
+the\important{\DescRef{\LabelBase.option.headsepline}\\
+ \DescRef{\LabelBase.option.footsepline}}
+\DescRef{\LabelBase.option.headsepline}\IndexOption{headsepline} and
+\DescRef{\LabelBase.option.footsepline}\IndexOption{footsepline} options
+described above. The page style beginning with the current page is changed
+using \Macro{pagestyle}. In contrast, \Macro{thispagestyle} changes only the
+page style of the current page. The\textnote{Attention!} letter class itself
+uses \Macro{thispagestyle}\PParameter{empty} within
+\DescRef{\LabelBase.cmd.opening}\IndexCmd{opening} for the first page of the
+letter.
+
+\BeginIndexGroup
+\BeginIndex[indexother]{}{font>style}%
+\BeginIndex{FontElement}{pageheadfoot}\LabelFontElement{pageheadfoot}%
+\BeginIndex{FontElement}{pagefoot}\LabelFontElement{pagefoot}%
+\BeginIndex{FontElement}{pagenumber}\LabelFontElement{pagenumber}%
+To changing the font style of headers or footers, you should use the user
+interface described in \autoref{sec:maincls.textmarkup}. The header and footer
+use the same element, which you can refer to by either
+\FontElement{pageheadfoot}\important{\FontElement{pagehead}} or
+\FontElement{pagehead}. The\ChangedAt{v3.00}{\Class{scrlttr2}}
+\FontElement{pagefoot}\important{\FontElement{pagefoot}} element
+additionally controls the formatting of the footer. This element is applied
+after \FontElement{pageheadfoot} in the
+\DescRef{\LabelBase.variable.nextfoot}\IndexVariable{nextfoot} variable or
+when \Package{scrlayer-scrpage}\IndexPackage{scrlayer-scrpage} page styles are
+used (see \autoref{cha:scrlayer-scrpage},
+\DescPageRef{scrlayer-scrpage.fontelement.pagefoot}). The element for the page
+number within the header or footer is called
+\FontElement{pagenumber}\important{\FontElement{pagenumber}}. The default
+settings are listed in \autoref{tab:maincls.defaultFontsHeadFoot},
+\autopageref{tab:maincls.defaultFontsHeadFoot}. Please also note the example
+from \autoref{sec:maincls.pagestyle}, \PageRefxmpl{maincls.cmd.pagestyle}.
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{markboth}\Parameter{left mark}\Parameter{right mark}%
+ \Macro{markright}\Parameter{right mark}
+\end{Declaration}
+In most cases, \KOMAScript{}'s options and variables should be quite adequate
+for creating headers\Index{header} and footers\Index{footer} for the
+subsequent pages, all the more so because, in addition to \Macro{markboth} and
+\Macro{markright}, you can change the sender information that \Class{scrlttr2}
+or \Package{scrletter} puts in the header. You can, in particular, use the
+\Macro{markboth}\IndexCmd{markboth} and \Macro{markright}\IndexCmd{markright}
+commands with the \PageStyle{myheadings}\IndexPagestyle{myheadings}%
+\important{\PageStyle{myheadings}} pagestyle. Of course, if you use the
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}
+package, this is also valid for the
+\PValue{scrheadings}\IndexPagestyle{scrheadings} page style. In that case, the
+\DescRef{scrlayer-scrpage.cmd.markleft}\IndexCmd{markleft} command is also
+available.
+
+\begin{Declaration}
+ \Variable{nexthead}%
+ \Variable{nextfoot}%
+\end{Declaration}
+At times, however, you may want to the header or the footer of subsequent pages
+to more closely resemble the letterhead page. In these cases, you must dispense
+with the predefined options that can be selected with the
+\DescRef{\LabelBase.option.pagenumber}\IndexOption{pagenumber} option described above.
+Instead, you can customise the header and footer of subsequent pages using the
+\DescRef{\LabelBase.pagestyle.headings}\IndexPagestyle{headings}%
+\important{\DescRef{\LabelBase.pagestyle.headings},
+ \DescRef{\LabelBase.pagestyle.myheadings}} or
+\DescRef{\LabelBase.pagestyle.myheadings}\IndexPagestyle{myheadings} page styles with \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}},
+and the \DescRef{\LabelBase.pagestyle.letter}%
+\IndexPagestyle{letter}\important{\DescRef{\LabelBase.pagestyle.letter}} page style
+with \Package{scrletter}\OnlyAt{\Package{scrletter}}. To do so, you create the
+structure you want in the \PName{content} of
+the\ChangedAt{v3.08}{\Class{scrlttr2}} \Variable{nexthead} or
+\Variable{nextfoot} variables. Within the \PName{content} of
+\Variable{nexthead} and \Variable{nextfoot} you can, for example, use the \Macro{parbox}
+command to place several boxes next to or beneath each other (see \cite{latex:usrguide}). More advanced users should
+be able to create their own headers and footers. Of course, you can
+and should also make use of additional variables using
+\DescRef{\LabelBase.cmd.usekomavar}. \KOMAScript{} does not use the
+\PName{description} for either variable.
+%
+%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 should not use
+%those.%
+%
+\EndIndexGroup
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{interleafpage}% \section{Interleaf Pages}
+
+\LoadCommonFile{footnotes}% \section{Footnotes}
+
+\LoadCommonFile{lists}% \section{Lists}
+
+
+\section{Mathematics}
+\seclabel{math}%
+\BeginIndexGroup
+\BeginIndex{}{equations}%
+\BeginIndex{}{formulas}%
+\BeginIndex{}{mathematics}%
+
+The \KOMAScript{} classes do not provide their own maths environments.
+Instead, \KOMAScript{} relies completely on the maths features of the \LaTeX{}
+kernel. However\textnote{Attention!}, since numbered equations and formulas
+are very unusual in letters, \KOMAScript{} does not actively support them.
+Therefore, the \DescRef{maincls.option.leqno} and
+\DescRef{maincls.option.fleqn} options for \Class{scrbook}, \Class{scrreprt},
+and \Class{scrartcl}, documented in \autoref{sec:maincls.math}, are not
+available with \Class{scrlttr2}.
+
+You will not find a description here of the maths environments of the \LaTeX{}
+kernel, that is \Environment{displaymath}\IndexEnv{displaymath},
+\Environment{equation}\IndexEnv{equation}, and
+\Environment{eqnarray}\IndexEnv{eqnarray}. If you want to use them, consult an
+introduction to \LaTeX{} like \cite{lshort}. But\textnote{Hint!} if you want
+more than very simple mathematics, you should use the \Package{amsmath}
+package (see \cite{package:amsmath}).%
+%
+\EndIndexGroup
+
+
+\section{Floating Environments for Tables and Figures}
+\seclabel{floats}
+
+Floating environments for tables or figures are very unusual in letters.
+Therefore\textnote{Attention!} \Class{scrlttr2} does not provide them. If you
+still believe you need them, this often indicates a misuse of the letter
+class. In such cases, it is advisable to combine one of the \KOMAScript{}
+classes from \autoref{cha:maincls} with the
+\Package{scrletter}\important{\Package{scrletter}} package instead. In this
+case you, the floating environments documented for the class can also be used
+in letters. You could also define your own floating environments with help of
+\Package{tocbasic}\important{\Package{tocbasic}} (see \autoref{cha:tocbasic}).
+
+\LoadCommonFile{marginpar} % \section{Margin Notes}
+
+
+\section{Closing}
+\seclabel{closing}
+\BeginIndexGroup%
+\BeginIndex{}{closing}%
+\BeginIndex{}{letter>closing}%
+\BeginIndex{}{signature}%
+\BeginIndex{}{letter>signature}%
+
+It has already been mentioned in \autoref{sec:\LabelBase.document},
+\DescPageRef{\LabelBase.cmd.closing} that the letter's closing text is
+provided by \DescRef{\LabelBase.cmd.closing}\IndexCmd{closing}. Beneath the
+closing text, there is often a space for a handwritten signature, beneath
+which there can be a printed name, which serves as a kind of annotation to the
+actual signature.
+
+\begin{Declaration}
+ \Variable{signature}%
+\end{Declaration}
+The \Variable{signature} variable contains the printed name or annotation for
+the handwritten signature. Its default \PName{content} is the
+\DescRef{\LabelBase.cmd.usekomavar}\PParameter{fromname}. This annotation can
+consist of multiple lines. In that case, you should separate the individual
+lines with double backslashes. Paragraph\textnote{Attention!} breaks in the
+signature annotation, however, are not permitted.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{raggedsignature}
+\end{Declaration}
+The closing phrase and the signature will be typeset in a box. The width of
+the box is determined by the length of the longest line in the closing
+phrase or signature.
+
+The \PLength{sigindent}\IndexPLength{sigindent} and
+\PLength{sigbeforevskip}\IndexPLength{sigbeforevskip} pseudo-lengths determine
+exactly where this box is placed (see \autoref{sec:scrlttr2-experts.closing},
+\DescPageRef{scrlttr2-experts.plength.sigindent}). The \Macro{raggedsignature}
+command defines the alignment inside the box. In the default \File{lco} files,
+the command is either defined as \Macro{centering} (all besides
+\Option{KOMAold}) or \Macro{raggedright} (\Option{KOMAold}). In order to
+obtain flush-right or flush-left alignment inside the box, you can redefine
+the command in the same way as \DescRef{maincls.cmd.raggedsection} (see the
+example in \autoref{sec:maincls.structure},
+\DescPageRef{maincls.cmd.raggedsection}).
+
+\begin{Example}
+ Now Mr Public wants to make himself seem really important, and therefore he uses the
+ signature to show once again that he was formerly a chairman himself. So
+ he changes \PName{contents} of the
+ \DescRef{\LabelBase.variable.signature} variable. He also wants the signature
+ be aligned flush-left and so he also redefines \Macro{raggedsignature}:%
+ \lstinputcode[xleftmargin=1em]{letter-22}%
+ See \autoref{fig:\LabelBase.letter-22} for the result.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Example: letter with extended sender, logo,
+ recipient, extra sender information, place, date, subject,
+ opening, text, closing, modified signature, postscript, distribution
+ list, enclosure, and hole-punch mark}]
+ {result of a short letter with extended sender, logo, recipient,
+ extra sender information, place, date, subject opening, text,
+ closing, modified signature, postscript, distribution list, enclosure
+ and hole-punch mark}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-22}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-22}
+ \end{figure}
+\end{Example}
+
+\iftrue% Umbruchkorrekturtext
+ The preceding example shows the most important, although not all possible,
+ elements of a letter. It can, however, serve quite well as a general
+ template.%
+\fi
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Letter Class Option Files}
+\seclabel{lcoFile}%
+\BeginIndexGroup
+\BeginIndex{}{lco file=\File{lco} file}%
+\BeginIndex{}{letter class option}%
+
+Normally, you would not redefine selections like the sender's information
+every time you write a letter. Instead, you would reuse a whole set of
+parameters for certain occasions. The same applies to the letterhead
+and footer used on the first page. Therefore it makes sense to save these
+settings in a separate file. For this purpose, \KOMAScript{} offers
+\File{lco} files. The \File{lco} suffix is an abbreviation for
+\emph{\emph{l}etter \emph{c}lass \emph{o}ption}.
+
+In an \File{lco} file, you can use all commands available to the document at
+the time the \File{lco} file is loaded. You can also use internal commands
+available to package writers. For \Class{scrlttr2} and \Package{scrletter},
+these are, in particular, the commands
+\DescRef{scrlttr2-experts.cmd.newplength}\IndexCmd{newplength},
+\DescRef{scrlttr2-experts.cmd.setplength}\IndexCmd{setplength}, and
+\DescRef{scrlttr2-experts.cmd.addtoplength}\IndexCmd{addtoplength} (see
+\autoref{sec:scrlttr2-experts.pseudoLengths}).
+
+\KOMAScript{} comes provided with some \File{lco} files. The \File{DIN.lco},
+\File{DINmtext.lco}, \File{SNleft.lco}, \File{SN.lco}, \File{UScommercial9},
+\File{UScommercial9DW}, and \File{NF.lco}\ChangedAt{v3.04}{\Class{scrlttr2}}
+files serve to adapt \Class{scrlttr2} and \Package{scrletter} to different
+standards. They are well suited as templates for your own parameter sets as
+you become a \KOMAScript{} expert. The \File{KOMAold.lco} file, on the other
+hand, serves to improve compatibility with the old letter class
+\Class{scrlettr}. This class was removed from \KOMAScript{} over fifteen years
+ago. It is therefore not discussed in any detail. Since this file also
+contains internal commands that are not released for package writers, you
+should not use this as a template for your own \File{lco} files. You can find
+a list of predefined \File{lco} files in \autoref{tab:lcoFiles},
+\autopageref{tab:lcoFiles}.
+
+If you have defined a parameter set for a letter standard that is not yet
+supported by \KOMAScript{}, you are explicitly requested to send this
+parameter set to the \KOMAScript{} support address. Please also provide
+permission for distribution under the \KOMAScript{} license (see the
+\File{lppl.txt} file). If you have the necessary measurements for an
+unsupported letter standard but are unable to write a corresponding \File{lco}
+file yourself, you can also contact the \KOMAScript{} author, Markus Kohm,
+directly. you can find further examples of \File{lco} files, some very
+complex, at \cite{homepage} or in \cite{DANTE:TK0203:MJK}. Both sites are
+mainly in German.
+
+
+\begin{Declaration}
+ \Macro{LoadLetterOption}\Parameter{name}%
+ \Macro{LoadLetterOptions}\Parameter{list of names}
+\end{Declaration}
+With \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} you can load \File{lco} files
+with the \Macro{documentclass} command. To do so, give the name of the
+\File{lco} file without the extension as an option\Index{option}. The
+\File{lco} file is then loaded directly after the class. The
+\Package{scrletter}\textnote{Attention!} package does not offer this option.
+To load \File{lco} files, you must use \Macro{LoadLetterOption} or
+\Macro{LoadLetterOptions}\ChangedAt{v3.14}{\Class{scrlttr2}}.
+This\textnote{Recommendation!} is also recommended for \Class{scrlttr2}.
+
+You can also use \Macro{LoadLetterOption} and \Macro{LoadLetterOptions} after
+\Macro{begin}\PParameter{document}, or even from within another \File{lco}
+file. Both commands take the \PName{name} of the \File{lco} file without the
+extension. While the argument of \Macro{LoadLetterOption} should be exactly
+one \File{lco} file, \Macro{LoadLetterOptions} accepts a comma-separated
+\PName{list of names}. The corresponding \File{lco} files with those names are
+loaded in the order given by the list.
+\begin{Example}
+ Joe Public also writes a document containing several letters. For most of
+ them, the default format, which follows the format of the German Institute
+ for Standardisation, or \emph{Deutsches Institut f\"{u}r Normung} (DIN), is
+ sufficient. So he starts with:
+\begin{lstcode}
+ \documentclass{scrlttr2}
+\end{lstcode}
+ However, he wants to send one letter in a C6/5 envelope, and so he
+ uses the \File{DINmtext} variant, in which the
+ address field appears higher on the page, so that more text
+ fits on the first page. The fold marks are adjusted so that the
+ address field still fits the address window in a C6/5 envelope.
+ He achieves this as follows:
+\begin{lstcode}
+ \begin{letter}{%
+ Joanna Public\\
+ 1 Hillside\\
+ SAMPLESTEAD\\
+ WX12 3YZ}
+ \LoadLetterOption{DINmtext}
+ \opening{Hello,}
+\end{lstcode}
+ Since construction of the first page only really begins with the
+ \DescRef{\LabelBase.cmd.opening}\IndexCmd{opening} command, you only need to
+ load the \File{lco} file before this point. In particular, you do not need
+ to load it before \Macro{begin}\PParameter{letter}. That way the changes
+ made by loading the \File{lco} file are local to the corresponding letter.
+\end{Example}
+
+If\ChangedAt{v2.97}{\Class{scrlttr2}} an \File{lco} file is loaded via
+\Macro{documentclass}, then it must not have the same name as an option.
+
+\begin{Example}
+ Since Mr Public often writes letters with the same options and parameters,
+ he finds it quite annoying to copy this information to each new letter. To
+ simplify the effort of writing a new letter, he therefore creates an
+ \File{lco} file:%
+ \lstinputcode[xleftmargin=1em]{ich.lco}%
+ With this, the size of his letter from the previous example shrinks
+ considerably: \lstinputcode[xleftmargin=1em]{letter-23.tex}%
+ Nevertheless, the result does not change, as shown in
+ \autoref{fig:\LabelBase.letter-23}.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Example: letter with extended sender, logo,
+ recipient, extra sender information, place, date, subject,
+ opening, text, closing, modified signature, postscript, distribution
+ list, enclosure, and hole-punch mark using an \File{lco} file}]
+ {result of a short letter with extended sender, logo, recipient,
+ extra sender information, place, date, subject opening, text,
+ closing, modified signature, postscript, distribution list, enclosure
+ and hole-punch mark using an \File{lco} file}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-23}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-23}
+ \end{figure}
+\end{Example}
+
+Note\textnote{Attention!} that immediately after loading the document class,
+normally neither a package for the input encoding nor a language package has
+been loaded. Because of this, you should use \TeX's 7-bit encoding for all
+non-ASCII characters. For example, use ``\Macro{ss}'' to produce a German
+``\ss''.
+
+In \autoref{tab:lcoFiles}, \autopageref{tab:lcoFiles} you can find a list of
+all predefined \File{lco} files. If\textnote{Attention!} you use a printer
+that has large unprintable areas on the left or right side, you might have
+problems with the \Option{SN}\IndexOption{SN} option. Since the Swiss standard
+SN~101\,130 stipulates that the address field should be placed 8\Unit{mm} from
+the right edge of the paper, the headline and the sender attributes are also
+placed at a correspondingly small distance from the paper edge. This also
+applies to the reference line when using the
+\DescRef{\LabelBase.option.refline}\PValue{=wide} option (see
+\autoref{sec:\LabelBase.firstpage}, \DescPageRef{\LabelBase.option.refline}).
+If\textnote{Hint!} you have this kind of problem, create your own \File{lco}
+file that loads \Option{SN} first and then changes
+\PLength{toaddrhpos}\IndexPLength{toaddrhpos} (see
+\autoref{sec:scrlttr2-experts.addressee},
+\DescPageRef{scrlttr2-experts.plength.toaddrvpos}) to a smaller value. In
+addition, you should also reduce \PLength{toaddrwidth} accordingly.%
+
+By\textnote{Hint!} the way, the \File{DIN} \File{lco} file is always loaded
+automatically as the first \File{lco} file. This ensures that all
+pseudo-lengths will have more or less reasonable default values. Therefore you
+do not need to load this default file on your own.
+
+%Please\textnote{Attention!} note that it is not possible to use
+%\Macro{PassOptionsToPackage} to pass options to packages from within an
+%\File{lco} file that have already been loaded by the class. Normally, this
+%only applies to the \Package{typearea}, \Package{scrlfile}, \Package{scrbase},
+%and \Package{keyval} packages.%
+
+\begin{desclist}
+ \renewcommand*{\abovecaptionskipcorrection}{-\normalbaselineskip}%
+ \desccaption{%
+ Predefined \File{lco} files\label{tab:lcoFiles}%
+ }{%
+ Predefined \File{lco} files (\emph{continued})%
+ }%
+ \oentry{DIN}{%
+ \leavevmode%
+ \IndexOption[indexmain]{DIN}\IndexFile[indexmain]{DIN.lco}%
+ parameters for letters on A4 paper, complying with German standard
+ DIN~676; suitable for window envelopes in the sizes C4, C5, C6, and C6/5
+ (C6 long).}%
+ \oentry{DINmtext}{%
+ \leavevmode%
+ \IndexOption[indexmain]{DINmtext}\IndexFile[indexmain]{DINmtext.lco}%
+ parameters for letters on A4 paper, complying with DIN~676 but using an
+ alternate layout with more text on the first page; only suitable for
+ window envelopes in the sizes C6 and C6/5 (C6 long).}%
+ \oentry{KakuLL}{%
+ \leavevmode%
+ \IndexOption[indexmain]{KakuLL}\IndexFile[indexmain]{KakuLL.lco}%
+ parameters for Japanese letters on A4 paper; suitable for Japanese
+ window envelopes of type Kaku A4, in which the window is approximately
+ 90\Unit{mm} wide by 45\Unit{mm} high, and positioned 25\Unit{mm} from the
+ left and 24\Unit{mm} from the top edge (see \autoref{cha:japanlco}).}%
+ \oentry{KOMAold}{%
+ \leavevmode%
+ \IndexOption[indexmain]{KOMAold}\IndexFile[indexmain]{KOMAold.lco}%
+ parameters for letters on A4 paper using a layout close to that of the
+ obsolete \Class{scrlettr} letter class; suitable for window envelopes in
+ the sizes C4, C5, C6, and C6/5 (C6 long); some additional commands to
+ improve compatibility with obsolete \Class{scrlettr} commands are defined;
+ \Class{scrlttr2} may behave slightly differently with this \File{lco} file
+ than with the other \File{lco} files.}%
+ \oentry{NF}{%
+ \leavevmode%
+ \IndexOption[indexmain]{NF}\IndexFile[indexmain]{NF.lco}%
+ parameters for French letters, complying with NF~Z~11-001; suitable for
+ window envelopes of type DL (110\Unit{mm} by 220\Unit{mm}) with a window
+ 45\Unit{mm} wide by 100\Unit{mm} high placed about 20\Unit{mm} from the
+ lower right edge; this file was originally developed by Jean-Marie
+ Pacquet, who also provides LyX integration in addition to extensions at
+ \cite{www:NF.lco}.}%
+ \oentry{NipponEH}{%
+ \leavevmode%
+ \IndexOption[indexmain]{NipponEH}\IndexFile[indexmain]{NipponEH.lco}%
+ parameters for Japanese letters on A4 paper; suitable for Japanese
+ window envelopes of types Chou or You 3 or 4, in which the window is
+ approximately 90\Unit{mm} wide by 55\Unit{mm} high, and positioned
+ 22\Unit{mm} from the left and 12\Unit{mm} from the top edge (see
+ \autoref{cha:japanlco}).}%
+ \oentry{NipponEL}{%
+ \leavevmode%
+ \IndexOption[indexmain]{NipponEL}\IndexFile[indexmain]{NipponEL.lco}%
+ parameters for Japanese letters on A4 paper; suitable for Japanese
+ window envelopes of types Chou or You 3 or 4, in which the window is
+ approximately 90\Unit{mm} wide by 45\Unit{mm} high, and positioned
+ 22\Unit{mm} from the left and 12\Unit{mm} from the top edge (see
+ \autoref{cha:japanlco}).}%
+ \oentry{NipponLH}{%
+ \leavevmode%
+ \IndexOption[indexmain]{NipponLH}\IndexFile[indexmain]{NipponLH.lco}%
+ parameters for Japanese letters on A4 paper; suitable for Japanese
+ window envelopes of types Chou or You 3 or 4, in which the window is
+ approximately 90\Unit{mm} wide by 55\Unit{mm} high, and positioned
+ 25\Unit{mm} from the left and 12\Unit{mm} from the top edge (see
+ \autoref{cha:japanlco}).}%
+ \oentry{NipponLL}{%
+ \leavevmode%
+ \IndexOption[indexmain]{NipponLL}\IndexFile[indexmain]{NipponLL.lco}%
+ parameters for Japanese letters on A4 paper; suitable for Japanese
+ window envelopes of types Chou or You 3 or 4, in which the window is
+ approximately 90\Unit{mm} wide by 45\Unit{mm} high, and positioned
+ 25\Unit{mm} from the left and 12\Unit{mm} from the top edge (see
+ \autoref{cha:japanlco}).}%
+ \oentry{NipponRL}{%
+ \leavevmode%
+ \IndexOption[indexmain]{NipponRL}\IndexFile[indexmain]{NipponRL.lco}%
+ parameters for Japanese letters on A4 paper; suitable for Japanese
+ window envelopes of types Chou or You 3 or 4, in which the window is
+ approximately 90\Unit{mm} wide by 45\Unit{mm} high, and positioned
+ 25\Unit{mm} from the left and 24\Unit{mm} from the top edge (see
+ \autoref{cha:japanlco}).}%
+ \oentry{SN}{%
+ \leavevmode%
+ \IndexOption[indexmain]{SN}\IndexFile[indexmain]{SN.lco}%
+ parameters for Swiss letters with the address field on the right side,
+ according to SN~010\,130; suitable for Swiss window envelopes in the sizes
+ C4, C5, C6, and C6/5 (C6 long).}%
+ \oentry{SNleft}{%
+ \leavevmode%
+ \IndexOption[indexmain]{SNleft}\IndexFile[indexmain]{SNleft.lco}%
+ parameters for Swiss letters with the address field on the left side;
+ suitable for Swiss window envelopes with the window on the left side in
+ the sizes C4, C5, C6, and C6/5 (C6 long).}%
+ \oentry{UScommercial9}{%
+ \leavevmode%
+ \IndexOption[indexmain]{UScommercial9}%
+ \IndexFile[indexmain]{UScommercial9.lco}%
+ parameters for US letters on American letter paper; suitable for
+ \emph{commercial~No.\,9} US window envelopes with a window 4\,1/2\Unit{in}
+ wide by 1\,1/8\Unit{in} high, positioned 7/8\Unit{in} from the left and
+ 1/2\Unit{in} from the bottom, without the return address inside the
+ window; when folded first at the middle mark then at the top fold mark,
+ legal paper can also be used but results in a paper-size warning}%
+ \oentry{UScommercial9DW}{%
+ \leavevmode%
+ \IndexOption[indexmain]{UScommercial9DW}%
+ \IndexFile[indexmain]{UScommercial9DW.lco}%
+ parameters for US letters on American letter paper; suitable for
+ \emph{commercial~No.\,9} US window envelopes with an recipient-address
+ window 3\,5/8\Unit{in} wide by 1\,1/8\Unit{in} high, positioned
+ 3/4\Unit{in} from the left and 1/2\Unit{in} from the bottom, and with a
+ return-address window 3\,1/2\Unit{in} wide by 7/8\Unit{in} high,
+ positioned 5/16\Unit{in} from the left and 2\,1/2\Unit{in} from the
+ bottom; when folded first at the middle mark and then at the top fold
+ mark, legal paper can also be used but results in a paper-size warning}%
+\end{desclist}
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Address Files and Form Letters}
+\seclabel{addressFile}%
+\BeginIndexGroup
+\BeginIndex{}{address>file}%
+\BeginIndex{}{form letters}%
+\index{serial letters|see form letters}%
+\index{circular letters|see form letters}%
+
+One of the most annoying things about creating form letters is typing up
+the different addresses. \KOMAScript{} provides basic support for this task%
+\iffalse% Umbruchkorrekturtext
+, as did its predecessor \Class{scrlettr}%
+\fi%
+.%
+\iffalse% Umbruchkorrekturtext
+\ Currently there are plans for greatly enhanced support.%
+\fi
+
+\begin{Declaration}
+ \Macro{adrentry}\Parameter{last~name}\Parameter{first~name}%
+ \Parameter{address}\Parameter{phone}\Parameter{F1}\Parameter{F2}%
+ \Parameter{comment}\Parameter{key}
+\end{Declaration}%
+\Class{scrlttr2} and \Package{scrletter} can evaluate address files.
+This can be very useful for form letters. An address file must have the
+extension \File{.adr} and consists of a number \Macro{adrentry} entries.
+An individual entry consists of eight parameters and may look, for example,
+like this:
+\begin{lstcode}
+ \adrentry{McEnvy}
+ {Flann}
+ {1 High Street\\ Glasgow}
+ {0141 123 4567}
+ {builder}
+ {}
+ {buys everything}
+ {FLANN}
+\end{lstcode}
+You can use the fifth and sixth elements, \PValue{F1} and \PValue{F2}, for
+anything you want. Gender, academic grade, birth date, or the date the person
+joined a society are all possibilities. The last parameter, \PName{key},
+should consist of more than one letter and be upper-case only so as not to
+interfere with existing \TeX{} or \LaTeX{} commands.
+
+\begin{Example}
+ Mr McEnvy is one of your most important business partners. Since you
+ maintain a frequent correspondence with him, it is too tedious to
+ enter all his data again and again. \KOMAScript{} will do this work for you.
+ For example, if you have saved your customer contacts in the
+ \File{partners.adr} address file and you would like to write a letter to
+ Mr~McEnvy, you can save a great deal of effort by typing:
+ \begin{lstcode}
+ \input{partners.adr}
+ \begin{letter}{\FLANN}
+ Your correspondence of today \dots
+ \end{letter}
+ \end{lstcode}
+ Please make sure that your {\TeX} system can access your address file.
+ Otherwise the \Macro{input} command results in an error message. You can
+ either put your address file in the same directory as your letter or
+ configure your \TeX{} system to look for a dedicated address directory.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{addrentry}\Parameter{last-name}\Parameter{first-name}%
+ \Parameter{address}\Parameter{phone}\Parameter{F1}\Parameter{F2}%
+ \Parameter{F3}\Parameter{F4}\Parameter{key}
+\end{Declaration}%
+Before you object that a total of two free parameters is too few,
+\KOMAScript{} alternatively offers the \Macro{addrentry} command\,---\,note
+the additional ``d''\,---\,which adds two more freely definable parameters but
+omits the comment parameter. Otherwise, you can use this command in exactly
+the same way as \DescRef{\LabelBase.cmd.adrentry}.
+
+Both \DescRef{\LabelBase.cmd.adrentry} and \Macro{addrentry} commands can be
+freely mixed in the \File{adr} files. I should note, however, that other
+packages, such as \Package{adrconv}\IndexPackage{adrconv} by Axel Kielhorn,
+may not be designed to use \Macro{addrentry}. If necessary, you have to create
+the appropriate extensions yourself.%
+%
+\EndIndexGroup
+
+In addition to simplifying access to addresses, you can also use the
+\File{adr} files to create circulars or form letters. Thus you can create such
+mass mailings without a complicated connection to a database system.
+%
+\begin{Example}
+ You want to sent a form letter to all members of your fishing club to invite
+ them to the next general meeting.
+\begin{lstcode}
+ \documentclass{scrlttr2}
+ \begin{document}
+ \renewcommand*{\adrentry}[8]{
+ \begin{letter}{#2 #1\\#3}
+ \opening{Dear members,}
+ Our next general meeting will be on
+ Monday, 12 August 2002.
+
+ The following topics are \dots
+ \closing{Regards,}
+ \end{letter}
+ }
+ \input{members.adr}
+ \end{document}
+\end{lstcode}
+ If the address file also contains \DescRef{\LabelBase.cmd.addrentry}
+ commands, you must add a corresponding definition before loading the address
+ file:
+\begin{lstcode}
+ \renewcommand*{\addrentry}[9]{%
+ \adrentry{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#9}%
+ }
+\end{lstcode}
+ In this example, the extra freely-definable parameter is not used, and
+ therefore \DescRef{\LabelBase.cmd.addrentry} is defined using
+ \DescRef{\LabelBase.cmd.adrentry}.
+\end{Example}
+
+Of course, the letter's contents can also be adapted to the characteristics of
+the address data. You can use the free parameters of the
+\DescRef{\LabelBase.cmd.adrentry} and \DescRef{\LabelBase.cmd.addrentry}
+commands for this.
+\begin{Example}
+ Suppose you use the fifth parameter of the \DescRef{\LabelBase.cmd.adrentry}
+ command to indicate the gender of a club member (\PValue{m/f}), and the
+ sixth parameter to indicate the amount of membership dues that is unpaid.
+ If you would like to write a reminder to each such member and address them
+ personally, the next example will help you:
+\begin{lstcode}
+ \renewcommand*{\adrentry}[8]{
+ \ifdim #6pt>0pt\relax
+ % #6 is an amount (floating-point number) greater than 0.
+ % Thus, this selects all members owing dues.
+ \begin{letter}{#2 #1\\#3}
+ \if #5m \opening{Dear Mr #2,} \fi
+ \if #5f \opening{Dear Ms #2,} \fi
+
+ Unfortunately, we have noticed that you are in arrears
+ with the payment of your membership fees.
+
+ Please remit the outstanding balance of \pounds #6 to the club
+ account.
+ \closing{Regards,}
+ \end{letter}
+ \fi
+ }
+\end{lstcode}
+\end{Example}
+It is therefore possible to tailor the text of the letter to the specific
+characteristics of the recipient and create the impression of a personal
+letter. The extent of the customisation is only limited by the maximum number
+of two free \DescRef{\LabelBase.cmd.adrentry} parameters and four free
+\DescRef{\LabelBase.cmd.addrentry} parameters.
+
+
+\begin{Declaration}
+ \Macro{adrchar}\Parameter{initial letter}%
+ \Macro{addrchar}\Parameter{initial letter}
+\end{Declaration}
+\Index[indexmain]{address>list}\Index[indexmain]{telephone directory}%
+It is possible to create address lists and telephone directories using
+\File{adr} files. You also need the \Package{adrconv}\IndexPackage{adrconv}
+package by Axel Kielhorn (see \cite{package:adrconv}). This package contains
+interactive \LaTeX{} documents which make it easy to create such lists.
+
+The address files have to be sorted already in order to obtain sorted lists.
+It is advisable to insert an \Macro{adrchar} or \Macro{addrchar} command
+containing the initial letter of the \PName{last name} before the point in the
+list where this letter changes. \Class{scrlettr2} and \Package{scrletter} will
+ignore these commands.
+%
+\begin{Example}
+ Suppose you have the following, rather tiny address file from which you
+ want to create an address book:
+\begin{lstlisting}
+ \adrchar{A}
+ \adrentry{Angel}{Gabriel}
+ {Cloud 3\\12345 Heaven's Realm}
+ {000\,01\,02\,03}{}{}{archangel}{GABRIEL}
+ \adrentry{Angel}{Michael}
+ {Cloud 3a\\12345 Heaven's Realm}
+ {000\,01\,02\,04}{}{}{archangel}{MICHAEL}
+ \adrchar{K}
+ \adrentry{Kohm}{Markus}
+ {Freiherr-von-Drais-Stra\ss e 66\\68535 Edingen-Neckarhausen}
+ {+49~62\,03~1\,??\,??}{}{}{no angel at all}
+ {KOMA}
+\end{lstlisting}
+ You can now process these entries using the \File{adrdir.tex} document from
+ \cite{package:adrconv}. One potential problem with this is that
+ \File{adrdir.tex} up to and including Version~1.3 uses both the obsolete
+ \Package{scrpage} package and obsolete font commands which \KOMAScript{} has
+ not supported for some time. If you receive an error message and cannot
+ install a newer version, you can find a listing of \File{adrdir.tex} which
+ indicates the changes necessary to avoid these errors at
+ \cite{https://komascript.de/node/2154} (in German).
+
+ The result looks something like this:
+ \begin{center}
+ \setlength{\unitlength}{1mm}
+ \begin{picture}(80,57)
+ \put(0,57){\line(1,0){80}}
+ \put(0,3){\line(0,1){54}}
+ \put(80,3){\line(0,1){54}}
+ \thicklines
+ \put(10,42){\line(1,0){60}}
+ \put(70,45){\makebox(0,0)[r]{\textsf{\textbf{A}}}}
+ \put(10,23){\makebox(0,20)[l]{\parbox{5cm}{\raggedright
+ \textsc{Angel}, Gabriel\\\quad\small Cloud 3\\
+ \quad 12345 Heaven's Realm\\
+ \quad (archangel)}}}
+ \put(70,23){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\
+ \small~\\\textsc{gabriel}\\000\,01\,02\,03}}}
+ \put(10,4){\makebox(0,20)[l]{\parbox{5cm}{\raggedright
+ \textsc{Angel}, Michael\\\quad\small Cloud 3a\\
+ \quad 12345 Heaven's Realm\\
+ \quad (archangel)}}}
+ \put(70,4){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\
+ \small~\\\textsc{michael}\\000\,01\,02\,04}}}
+ \qbezier(0,3)(10,6)(40,3)\qbezier(40,3)(60,0)(80,3)
+ \end{picture}
+ \end{center}
+ The letter in the header is generated by answering ``no'' to the
+ question ``Names in the header?'' See explanation in \File{adrdir.tex}.
+\end{Example}
+You can find more about the \Package{adrconv}\IndexPackage{adrconv} package in
+its documentation. There you should also find information about whether the
+current version of \Package{adrconv} supports the
+\DescRef{\LabelBase.cmd.addrentry} and \Macro{addrchar} commands. Previous
+versions only recognised the \DescRef{\LabelBase.cmd.adrentry} and
+\Macro{adrchar} commands.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrlttr2examples.dtx b/macros/latex/contrib/koma-script/source-doc/english/scrlttr2examples.dtx
new file mode 100644
index 0000000000..18286886b3
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrlttr2examples.dtx
@@ -0,0 +1,347 @@
+% \CheckSum{0}
+% \iffalse
+% ======================================================================
+% scrlttr2examples.dtx
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrlttr2examples.dtx
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ======================================================================
+%
+% Generation of letter example files for scrlttr2 chapter.
+%
+% ---------------------------------------------------------------------------
+%
+% Erzeugung der Brief-Beispiele für das scrlttr2-Kapitel.
+%
+% ============================================================================
+%<*ins>
+\def\batchfile{scrlttr2examples.dtx}
+\input docstrip.tex
+
+\keepsilent
+\askforoverwritefalse
+
+\generate{%
+ \nopreamble\nopostamble
+ \file{musterlogo.eps}{\from{scrlttr2examples.dtx}{logo}}%
+}
+
+\generate{%
+ \nopreamble\nopostamble
+ \file{ich.lco}{\from{scrlttr2examples.dtx}{lco,23,\languagename}}%
+}
+
+\generate{%
+ \nopreamble\nopostamble
+ \file{letter-0.tex}{\from{scrlttr2examples.dtx}{example,0,\languagename}}%
+ \file{letter-1.tex}{\from{scrlttr2examples.dtx}{example,1,\languagename}}%
+ \file{letter-2.tex}{\from{scrlttr2examples.dtx}{example,2,\languagename}}%
+ \file{letter-3.tex}{\from{scrlttr2examples.dtx}{example,3,\languagename}}%
+ \file{letter-4.tex}{\from{scrlttr2examples.dtx}{example,4,\languagename}}%
+ \file{letter-5.tex}{\from{scrlttr2examples.dtx}{example,5,\languagename}}%
+ \file{letter-6.tex}{\from{scrlttr2examples.dtx}{example,6,\languagename}}%
+ \file{letter-7.tex}{\from{scrlttr2examples.dtx}{example,7,\languagename}}%
+ \file{letter-8.tex}{\from{scrlttr2examples.dtx}{example,8,\languagename}}%
+ \file{letter-9.tex}{\from{scrlttr2examples.dtx}{example,9,\languagename}}%
+ \file{letter-10.tex}{\from{scrlttr2examples.dtx}{example,10,\languagename}}%
+ \file{letter-11.tex}{\from{scrlttr2examples.dtx}{example,11,\languagename}}%
+ \file{letter-12.tex}{\from{scrlttr2examples.dtx}{example,12,\languagename}}%
+ \file{letter-13.tex}{\from{scrlttr2examples.dtx}{example,13,\languagename}}%
+ \file{letter-14.tex}{\from{scrlttr2examples.dtx}{example,14,\languagename}}%
+ \file{letter-15.tex}{\from{scrlttr2examples.dtx}{example,15,\languagename}}%
+ \file{letter-16.tex}{\from{scrlttr2examples.dtx}{example,16,\languagename}}%
+ \file{letter-17.tex}{\from{scrlttr2examples.dtx}{example,17,\languagename}}%
+ \file{letter-18.tex}{\from{scrlttr2examples.dtx}{example,18,\languagename}}%
+ \file{letter-19.tex}{\from{scrlttr2examples.dtx}{example,19,\languagename}}%
+ \file{letter-20.tex}{\from{scrlttr2examples.dtx}{example,20,\languagename}}%
+ \file{letter-21.tex}{\from{scrlttr2examples.dtx}{example,21,\languagename}}%
+ \file{letter-22.tex}{\from{scrlttr2examples.dtx}{example,22,\languagename}}%
+ \file{letter-23.tex}{\from{scrlttr2examples.dtx}{example,23,\languagename}}%
+ \file{letter-label.tex}{\from{scrlttr2examples.dtx}{%
+ example,label,\languagename}}%
+ \file{letter-nipponA.tex}{\from{scrlttr2examples.dtx}{%
+ example,22,nipponA,\languagename}}%
+ \file{letter-nipponB.tex}{\from{scrlttr2examples.dtx}{%
+ example,22,nipponB,\languagename}}%
+}
+
+\csname endinput\endcsname
+%</ins>
+%
+% \begin{macrocode}
+%<*lco&23>
+\ProvidesFile{ich.lco}[2008/06/11 lco
+%<english> (Joe Public)]
+%<ngerman> (Peter Musterfrau)]
+\KOMAoptions{foldmarks=true,foldmarks=blmtP,
+ fromphone,fromemail,fromlogo,subject=titled}
+%<*english>
+\setkomavar{fromname}{Joe Public}
+\setkomavar{signature}{Joe Public\\
+ (former chairman)}
+%</english>
+%<*ngerman>
+\setkomavar{fromname}{Peter Musterfrau}
+\setkomavar{signature}{Peter Musterfrau\\
+ (ehemaliger Vorsitzender)}
+%</ngerman>
+\renewcommand*{\raggedsignature}{\raggedright}
+%<*english>
+\setkomavar{fromaddress}{2 Valley\\
+ SAMPLEBY\\
+ ZY32 1XW}
+%</english>
+%<*ngerman>
+\setkomavar{fromaddress}{Hinter dem Tal 2\\
+ 54321 Musterheim}
+%</ngerman>
+\setkomavar{fromphone}{0\,12\,34~56\,78}
+%<english>\setkomavar{fromemail}{joe@public.invalid}
+%<ngerman>\setkomavar{fromemail}{Peter@Musterfrau.invalid}
+\setkomavar{fromlogo}{%
+ \includegraphics{musterlogo}}
+\setkomavar{location}{\raggedright
+%<*english>
+ Club member no.~4711\\
+ since 11.09.2001\\
+ chairman 2003--2005}
+\setkomavar{place}{Sampleby}
+\setkomavar{frombank}{Bank of Friendly Greetings}
+%</english>
+%<*ngerman>
+ Mitglied Nr.~4711\\
+ seit dem 11.09.2001\\
+ Vorsitzender in den Jahren 2003--2005}
+\setkomavar{place}{Musterheim}
+\setkomavar{frombank}{Bank freundlichen Gru\ss es}
+%</ngerman>
+%</lco&23>
+%<*example>
+%<*label>
+\AtBeginDocument{%
+ \usepackage{xcolor,eso-pic}%
+ \BeforeClosingMainAux{%
+ \AddToShipoutPicture*{%
+ \thinlines\color{gray!50}%
+ \AtPageLowerLeft{%
+ \put(0,\LenToUnit{8mm}){%
+ \line(0,1){\LenToUnit{180mm}}%
+ }%
+ \multiput(\LenToUnit{70mm},\LenToUnit{8mm})(\LenToUnit{70mm},0){3}{%
+ \line(0,1){\LenToUnit{216mm}}%
+ }%
+ \multiput(0,\LenToUnit{8mm})(0,\LenToUnit{36mm}){6}{%
+ \line(1,0){\LenToUnit{210mm}}%
+ }%
+ \put(\LenToUnit{70mm},\LenToUnit{224mm}){%
+ \line(1,0){\LenToUnit{140mm}}%
+ }%
+ }\color{black}%
+ }%
+ }%
+}
+%</label>
+%<0|1|2|3|4|5>\documentclass[version=last]{scrlttr2}
+%<6>\documentclass[version=last,fontsize=14pt]{scrlttr2}
+%<!0&!1&!2&!3&!4&!5&!6&!23&!label&!nipponA&!nipponB>\documentclass[foldmarks=true,foldmarks=blmtP,
+%<nipponA|nipponB>\documentclass[foldmarks=true,locfield=wide,
+%<8> fromalign=false,
+%<9> fromalign=center,
+%<10> fromalign=false,fromrule=aftername,
+%<11> fromalign=center,fromrule=aftername,
+%<12> fromalign=false,fromrule=afteraddress,
+%<13|17> fromalign=center,fromrule=afteraddress,
+%<14|16> fromrule=afteraddress,
+%<15|18> fromalign=right,fromrule=afteraddress,
+%<12|13|14|15> fromphone,fromemail,
+%<16|17|18|19|20|21|22> fromphone,fromemail,fromlogo,
+%<nipponA|nipponB> fromphone=false,fromemail=false,
+%<21|22> subject=titled,
+%<!0&!1&!2&!3&!4&!5&!6&!23&!label> version=last]{scrlttr2}
+%<23>\documentclass[version=last,ich]{scrlttr2}
+%<nipponA>\LoadLetterOption{NipponLL}
+%<nipponB>\LoadLetterOption{NipponEL}
+%<label>\documentclass[version=last,ich,settleford600label]{scrlttr2}
+%<ngerman>\usepackage[ngerman]{babel}
+%<english>\usepackage[british]{babel}
+%<16|17|18|19|20|21|22|23|label>\usepackage{graphics}
+\begin{document}
+%<*!0&!1&!2&!3&!4&!5&!6&!7&!23&!label>
+%<english>\setkomavar{fromname}{Joe Public}
+%<ngerman>\setkomavar{fromname}{Peter Musterfrau}
+%<*22>
+%<*english>
+\setkomavar{signature}{Joe Public\\
+ (former chairman)}
+%</english>
+%<*ngerman>
+\setkomavar{signature}{Peter Musterfrau\\
+ (ehemaliger Vorsitzender)}
+%</ngerman>
+\renewcommand*{\raggedsignature}{\raggedright}
+%</22>
+%<*english>
+\setkomavar{fromaddress}{2 Valley\\
+ SAMPLEBY\\
+ ZY32 1XW}
+%</english>
+%<*ngerman>
+\setkomavar{fromaddress}{Hinter dem Tal 2\\
+ 54321 Musterheim}
+%</ngerman>
+%<*!9&!10&!11>
+\setkomavar{fromphone}{0\,12\,34~56\,78}
+%<english>\setkomavar{fromemail}{joe@public.invalid}
+%<ngerman>\setkomavar{fromemail}{Peter@Musterfrau.invalid}
+%<*!12&!13&!14&!15>
+\setkomavar{fromlogo}{\includegraphics{musterlogo}}
+%</!12&!13&!14&!15>
+%</!9&!10&!11>
+%</!0&!1&!2&!3&!4&!5&!6&!7&!23&!label>
+%<*19|20|21|22|23|label>
+%<*!23&!label&!nipponA&!nipponB>
+\setkomavar{location}{\raggedright
+%<*english>
+ Club member no.~4711\\
+ since 11.09.2001\\
+ chairman 2003--2005}
+%</english>
+%<*ngerman>
+ Mitglied Nr.~4711\\
+ seit dem 11.09.2001\\
+ Vorsitzender in den Jahren 2003--2005}
+%</ngerman>
+%</!23&!label&!nipponA&!nipponB>
+%<*20|21|22|23|label>
+%<english>\setkomavar{date}{29th February 2011}
+%<ngerman>\setkomavar{date}{29. Februar 2011}
+%<*!23&!label>
+%<english>\setkomavar{place}{Sampleby}
+%<ngerman>\setkomavar{place}{Musterheim}
+%</!23&!label>
+%<*21|22|23|label>
+%<english>\setkomavar{subject}{Missing general meeting}
+%<ngerman>\setkomavar{subject}{Mitgliederversammlung vermisst}
+%</21|22|23|label>
+%</20|21|22|23|label>
+%</19|20|21|22|23|label>
+%<!5>\begin{letter}{%
+%<5>\begin{letter}[fontsize=14pt]{%
+%<*english>
+ Joanna Public\\
+ 1 Hillside\\
+ SAMPLESTEAD\\
+ WX12 3YZ%
+%</english>
+%<*ngerman>
+ Petra Mustermann\\
+ Vor dem Berg 1\\
+ 12345 Musterhausen%
+%</ngerman>
+ }
+%<label>\savelabel{3}{2}
+%<english>\opening{Dear Madam Chair,}
+%<ngerman>\opening{Liebe Vereinsvorsitzende,}
+%<*!0>
+%<*english>
+The last general meeting was more than a year ago.
+I would like to remind you that the articles of our
+club stipulate that one should be held every
+six months. For this reason, I call on the executive
+board to arrange such a meeting immediately.
+\closing{Anticipating an invitation}
+%</english>
+%<*ngerman>
+seit einem Jahr gab es keine Mitgliederversammlung
+mehr. Ich erinnere daran, dass unsere Satzung eine
+solche jedes halbe Jahr vorsieht. Ich fordere den
+Vorstand daher auf, umgehend eine solche in
+Angriff zu nehmen.
+\closing{In Erwartung einer Einladung}
+%</ngerman>
+%<*!1>
+%<*english>
+\ps PS: I hope you do not take this request amiss.
+%</english>
+%<*ngerman>
+\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.
+%</ngerman>
+%<*!2>
+%<*!3>
+%<*english>
+\setkomavar*{enclseparator}{Enclosure}
+\encl{Excerpt from the articles governing general
+ meetings}
+%</english>
+%<*ngerman>
+\setkomavar*{enclseparator}{Anlage}
+\encl{Auszug aus der Satzung, in dem die
+ Mitgliederversammlungen geregelt sind}
+%</ngerman>
+%</!3>
+%<*english>
+\cc{executive board\\all members}
+%</english>
+%<*ngerman>
+\cc{Die Vereinsvorsitzende\\Alle Mitglieder}
+%</ngerman>
+%</!2>
+%</!1>
+%</!0>
+\end{letter}
+\end{document}
+%</example>
+%<*logo>
+%%!
+%%BoundingBox: 0 0 72 72
+0 0 moveto
+72 72 rlineto
+72 neg 0 rlineto
+72 72 neg rlineto
+stroke
+0 0 moveto
+/Bitstream-Charter findfont
+72 scalefont
+setfont
+(M) show
+showpage
+%</logo>
+% \end{macrocode}
+%
+% \iffalse
+\endinput
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
+% \fi
diff --git a/macros/latex/contrib/koma-script/source-doc/english/scrwfile.tex b/macros/latex/contrib/koma-script/source-doc/english/scrwfile.tex
new file mode 100644
index 0000000000..78253e34e0
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/scrwfile.tex
@@ -0,0 +1,288 @@
+% ======================================================================
+% scrwfile.tex
+% Copyright (c) Markus Kohm, 2010-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrwfile.tex
+% Copyright (c) Markus Kohm, 2010-2018
+%
+% 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 scrwfile of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber scrwfile in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrwfile.tex}%
+ [$Date: 2018-03-27 11:46:14 +0200 (Tue, 27 Mar 2018) $
+ KOMA-Script guide (chapter: scrwfile)]
+
+% Date of the translated German file: 2018-02-15
+
+\translator{Markus Kohm\and Jana Schubert\and Karl Hagen}
+
+\chapter{Economising and Replacing Files with \Package{scrwfile}}
+\labelbase{scrwfile}
+\BeginIndexGroup
+\BeginIndex{Package}{scrwfile}
+
+One of the problems not solved by the introduction of \eTeX{} is the fact that
+\TeX{} can support only 18 open write handles. This number seems quite large
+at first, but many of these handles are already reserved. \TeX{} itself uses
+handle 0 for the log file. \LaTeX{} needs handle 1 for \Macro{@mainaux},
+handle 2 for \Macro{@partaux}, one handle for \Macro{tableofcontents}, one
+handle for \Macro{listoffigures}, one handle for \Macro{listoftables}, and one
+handle for \Macro{makeindex}. Every other such list generates another handle,
+and packages like \Package{hyperref} or \Package{minitoc} require write
+handles too.
+
+The bottom line is that eventually you may get the following error message:
+\begin{lstcode}
+ ! No room for a new \write .
+ \ch@ck ...\else \errmessage {No room for a new #3}
+ \fi
+\end{lstcode}
+
+For some time, the simplest solution to this problem has been to use
+\mbox{Lua\LaTeX} instead of \mbox{pdf\LaTeX} or \XeLaTeX. This eliminates the
+restriction, and the maximum number of files you can have open for writing is
+then limited only by the operating system. In reality, you usually so not need
+to worry about it any more.
+
+The fact that \LaTeX{} always opens a new file for writing every table of
+contents, list of figures, list of tables, etc. has another disadvantage. Such
+lists are not only output by their respective commands, they also could not be
+output a second time because the associated auxiliary file\footnote{The term
+ \emph{auxiliary file} here refers not to the main \File{aux} file but to the
+ other internal files used indirectly via the \File{aux} file, e.\,g. the
+ \File{toc} file, the \File{lof} file, or the \File{lot} file.} is empty
+after the respective command until the end of the document.
+
+The \Package{scrwfile} package makes a fundamental change to the \LaTeX{}
+kernel, which can solve both problems not only for \mbox{Lua\LaTeX} but also
+for \mbox{pdf\LaTeX} or \XeLaTeX.
+
+\section{Fundamental Changes to the \LaTeX{} Kernel}
+\seclabel{kernelpatches}
+
+\LaTeX{} classes use the \LaTeX{} kernel command
+\Macro{@starttoc}\IndexCmd{@starttoc} to allocate a new file handle, such as
+for \Macro{tableofcontents} or \Macro{listoffigures}. This command not only
+loads the associated auxiliary file but also reopens it for writing. If
+entries to these lists are added using \Macro{addcontentsline}, however, the
+system does not write directly to these auxiliary files. Instead, \LaTeX{}
+writes \Macro{@writefile}\IndexCmd{@writefile} commands to the \File{aux}
+file. Only while reading the \File{aux} file at the end of the document do
+those \Macro{@writefile} commands become actual write operations in the
+auxiliary files. Additionally, \LaTeX{} does not close the auxiliary files
+explicitly. Instead it relies on \TeX{} to close all open files at the end.
+
+This procedure ensures that the auxiliary files are only written to within
+\Macro{end}\PParameter{document}, but they remain open throughout the entire
+\LaTeX{} run. \Package{scrwfile} takes is starting point here, by redefining
+\Macro{@starttoc} and \Macro{@writefile}.
+
+Of course\textnote{Attention!} changes to the \LaTeX{} kernel always have the
+potential to cause incompatibilities with other packages. Those primarily
+affected may be those which also redefine \Macro{@starttoc} or
+\Macro{@writefile}. In some cases, it may help to change the order the
+packages are loaded. If you encounter such a problem, please contact the
+\KOMAScript{} author.
+
+\section{The Single-File Method}
+\seclabel{singlefilefeature}
+
+As soon as the package is loaded with
+\begin{lstcode}
+ \usepackage{scrwfile}
+\end{lstcode}
+\Package{scrwfile} redefines \Macro{@starttoc}\IndexCmd{@starttoc} so that it
+no longer allocates a write handle or opens a file for writing.
+\Macro{@writefile} is redefined so that immediately before closing the
+\File{aux} file in \Macro{end}\PParameter{document}, it writes not to the
+usual auxiliary files but to a single new file with extension \File{wrt}.
+After reading the \File{aux} file, this \File{wrt} file will be processed once
+for each of the auxiliary files that \Macro{@writefile} writes information to.
+However these auxiliary files do not all have to be open at the same time.
+Instead, only one is open at a time and is explicitly closed afterwards. Since
+\LaTeX{} reuses an internal write file, \Package{scrwfile} doesn't need its
+own write handle for this type of table of contents or list of floating
+environments.
+
+Because of this behaviour, even if you have only one table of contents, once
+you load \Package{scrwfile} you will have access to a write file handle for
+bibliographies, indexes, glossaries, and similar lists that do not use
+\Macro{@starttoc}. Additionally, you can create any number of tables of
+contents and other lists that use \Macro{@starttoc}\IndexCmd{@starttoc}.
+
+\section{The File Cloning Method}
+\seclabel{clonefilefeature}
+
+Since \Macro{@writefile}\IndexCmd{@writefile} has already been modified for
+the single-file method described in the previous system so that it no longer
+writes directly to the corresponding auxiliary file, a further possibility
+suggests itself. When copying the \Macro{@writefile} statements into the
+\File{wrt} file, you can also copy them to other destinations.
+
+\begin{Declaration}
+ \Macro{TOCclone}%
+ \OParameter{list heading}\Parameter{source extension}%
+ \Parameter{destination extension}
+\end{Declaration}
+This cloning of file entries copies entire tables of contents or other lists.
+For this, you only need to specify the extension of the auxiliary file whose
+entries should be copied and the extension of a destination file. The entries
+are then copied there. Of course, you can also write additional entries to
+this cloned file.
+
+You can manage the \PName{destination extention} using
+\hyperref[cha:tocbasic]{\Package{tocbasic}}%
+\important{\hyperref[cha:tocbasic]{\Package{tocbasic}}} (see
+\autoref{cha:tocbasic}). If such a file is already under the control of
+\hyperref[cha:tocbasic]{\Package{tocbasic}}, a warning will be issued.
+Otherwise, a new list for this extension will be created using
+\hyperref[cha:tocbasic]{\Package{tocbasic}}. You can set the heading for this
+list with the optional argument \PName{list heading}.
+
+You can then output this new content list, for example, with the command
+\Macro{listof\PName{destination extension}}. The content-list
+attributes\important{\hyperref[cha:tocbasic]{\Package{tocbasic}}}
+\PValue{leveldown}, \PValue{numbered}, \PValue{onecolumn}, and \PValue{totoc}
+(see \DescRef{tocbasic.cmd.setuptoc} in \autoref{sec:tocbasic.toc},
+\DescPageRef{tocbasic.cmd.setuptoc}) are automatically copied to the
+destination list if they were already set in the source list. The
+\PValue{nobabel} attribute is always set for cloned content lists, because the
+language-selection commands in the source content list are already copied
+anyway.
+
+\begin{Example}
+ Suppose you want a short table of contents with only the chapter level in
+ addition to the normal the table of contents:
+\begin{lstcode}
+ \usepackage{scrwfile}
+ \TOCclone[Summary Contents]{toc}{stoc}
+\end{lstcode}
+ This creates a new table of contents with the heading ``Summary Contents''.
+ The new table of contents uses an auxiliary file with the extension
+ \File{stoc}. All entries to the auxiliary file with extension \File{toc}
+ will also be copied to this new auxiliary file.
+
+ In order to have the new short table of contents display only the chapter
+ entries, we use:
+\begin{lstcode}
+ \addtocontents{stoc}{\protect\value{tocdepth}=0}
+\end{lstcode}
+ Although\textnote{Attention!} normally you cannot write to an auxiliary file
+ before \Macro{begin}\PParameter{document}, the code above works in the
+ preamble after loading \Package{scrwfile}. Owing to the unconventional way
+ of changing the \DescRef{maincls.counter.tocdepth} counter within the TOC
+ file, this change only applies to this content list.
+
+ Later in the document, we then output the content list with the file
+ extension \File{stoc} with:
+\begin{lstcode}[moretexcs={listofsttoc}]
+ \listofstoc
+\end{lstcode}
+ and this shows only the parts and chapters of the document.
+
+ Things become a bit more difficult if the summary contents are to be
+ listed in the table of contents. This would seem to be possible with
+\begin{lstcode}
+ \addtocontents{toc}{%
+ \protect\addxcontentsline
+ {stoc}{chapter}{\protect\contentsname}%
+ }
+\end{lstcode}
+However, since all entries in \File{toc} are also copied to \File{stoc}, this
+entry would also be copied from the summary contents. So we cannot generate
+the entry from the content list. Because we use the
+\Package{tocbasic}\important{\Package{tocbasic}} package, we can use the
+following:
+\phantomsection\xmpllabel{cmd.BeforeStartingTOC}
+\begin{lstcode}
+ \BeforeStartingTOC[toc]{%
+ \addcontentslinedefault{stoc}{chapter}
+ {\protect\contentsname}%
+ }
+\end{lstcode}
+Of course, this assumes that the \File{toc} file is under the control
+of the \Package{tocbasic} package, which is indeed the case for all
+\KOMAScript{} classes. See \autoref{sec:tocbasic.toc} on
+\DescPageRef{tocbasic.cmd.BeforeStartingTOC} for more information about
+\DescRef{tocbasic.cmd.BeforeStartingTOC}.%
+\end{Example}
+Incidentally, the \DescRef{tocbasic.cmd.addxcontentsline} command used in the
+examples is also documented in \autoref{cha:tocbasic},
+\DescPageRef{tocbasic.cmd.addxcontentsline}.%
+\EndIndexGroup
+
+
+\section{Note on the State of Development}
+\seclabel{draft}
+
+Although this package has already been tested by many users and is often in
+production use, its development is still ongoing. Therefore, it is
+theoretically possible that there might be changes, especially to the internal
+functionality. It is likely that the package will be extended in the future.
+Some code for such extensions is already in the package. However, as there are
+no user commands that make use of these features, they are currently
+undocumented.
+
+\section{Known Package Incompatibilities}
+\seclabel{incompatible}
+
+As mentioned in \autoref{sec:scrwfile.kernelpatches}, \Package{scrwfile}
+redefines some commands of the \LaTeX{} kernel. This happens not only while
+loading the package, but indeed at various times while the document is
+processed, for example just before reading the \File{aux} file.
+This\textnote{Attention!} results in incompatibility with packages that also
+redefine these commands at run time.
+
+The \Package{titletoc}\important{Package{titletoc}}\IndexPackage{titletoc}
+package is an example for such an incompatibility. That package redefines
+\Macro{@writefile} under some conditions at run time. If you use both
+\Package{scrwfile} and \Package{titletoc}, there is no warranty for the
+correct behaviour of either one. This is neither an error of
+\Package{titletoc} nor of \Package{scrwfile}.%
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/tocbasic.tex b/macros/latex/contrib/koma-script/source-doc/english/tocbasic.tex
new file mode 100644
index 0000000000..36681ff609
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/tocbasic.tex
@@ -0,0 +1,2439 @@
+% ======================================================================
+% tocbasic.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% tocbasic.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% Package tocbasic for Package and Class Authors
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Paket tocbasic fuer Paket- und Klassenautoren
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{tocbasic.tex}
+ [$Date: 2018-08-31 09:11:20 +0200 (Fri, 31 Aug 2018) $
+ KOMA-Script guide (package tocbasic)]
+
+% Date of the translated German file: 2018-08-31
+
+\translator{Markus Kohm\and Arndt Schubert\and Karl Hagen}
+
+\chapter{Managing Content Lists with \Package{tocbasic}}
+\labelbase{tocbasic}
+\BeginIndexGroup%
+\BeginIndex{Package}{tocbasic}%
+\BeginIndex{}{table of contents}%
+\BeginIndex{}{content list}%
+\BeginIndex{}{file>extension}%
+The main purpose of the \Package{tocbasic} package is to give authors of
+packages and classes the ability to create their own tables or lists of
+content, content lists for short, similar to the list of figures and the list
+of tables, allowing classes and other packages some control over these lists.
+The \Package{tocbasic} package also delegates control of the
+language-dependent parts of these content lists to the
+\Package{babel}\IndexPackage{babel} package (see \cite{package:babel}). Using
+\Package{tocbasic} relieves package and class authors from the burden of
+implementing such features themselves.
+
+As a minor side effect, the package can also be used to define new floating
+environments, or floating environments like non-floating environments for
+reference objects. For more details, after you read about the basic commands
+in the next four sections, see the example in \autoref{sec:tocbasic.example},
+which is compactly summarized in \autoref{sec:tocbasic.declarenewtoc}.
+
+\KOMAScript{} itself uses \Package{tocbasic} not only for the table of
+contents but also for the already mentioned lists of figures and tables.
+
+\section{Basic Commands}
+\label{sec:tocbasic.basics}
+
+The basic commands are primarily used to handle a list of all known file
+extensions\textnote{file extension, content lists} that
+represent a table or list of contents. We call these auxiliary
+files\Index{auxiliary file}\footnote{The term \emph{auxiliary file} here
+ refers not to the main \File{aux} file but to the other internal files used
+ indirectly via the \File{aux} file, e.\,g. the \File{toc} file, the
+ \File{lof} file, or the \File{lot} file.} TOC files\textnote{TOC
+ file}\Index[indexmain]{TOC file} regardless of the file extension that is
+actually used. Entries to such files are typically written using
+\Macro{addtocontents}\important{\Macro{addtocontents},
+\DescRef{\LabelBase.cmd.addxcontentsline}}, or
+\DescRef{\LabelBase.cmd.addxcontentsline}. There are also commands to perform
+actions on all of these file extensions. Additionally, there are commands to
+set or unset features for the file associated with a given extension.
+Typically an file extension also has an owner\textnote{file owner}. This owner
+may be a class or package, or an identifier that the author of the class or
+package using \Package{tocbasic} has chosen independently. For example,
+\KOMAScript{} uses the owner \texttt{float} for the \File{lof} and \File{lot}
+file extensions that are associated with the list of figures and list of
+tables, respectively. For the table of contents, \KOMAScript{} uses the file
+name of the class.
+
+\begin{Declaration}
+ \Macro{ifattoclist}\Parameter{extension}\Parameter{then code}%
+ \Parameter{else code}
+\end{Declaration}
+This command tests whether or not the \PName{extension} already exists in the
+list of known file extensions. If the \PName{extension} is already known, the
+\PName{then code} will be executed. Otherwise, the \PName{else code} will be
+executed.
+\begin{Example}
+ Suppose you want to know if the file name extension ``\File{foo}'' is
+ already in use in order to report an error because it cannot be used:
+\begin{lstcode}
+ \ifattoclist{foo}{%
+ \PackageError{bar}{%
+ extension `foo' already in use%
+ }{%
+ Each extension may be used only
+ once.\MessageBreak
+ The class or another package already
+ uses extension `foo'.\MessageBreak
+ This error is fatal!\MessageBreak
+ You should not continue!}%
+ }{%
+ \PackageInfo{bar}{using extension `foo'}%
+ }
+\end{lstcode}
+\end{Example}
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{addtotoclist}\OParameter{owner}\Parameter{extension}
+\end{Declaration}
+This command adds the \PName{extension} to the list of known extensions. But
+if the \PName{extension} is known already, an error is reported to prevent
+duplicate use of the same \PName{extension}.
+
+If you specify the optional \OParameter{owner} argument, the given
+\PName{owner} for this file extension is also saved. If you omit the optional
+argument, \Package{tocbasic} tries to determine the file name of the class or
+package currently being processed and saves it as the owner.
+This\textnote{Attention!} procedure only works if you call
+\Macro{addtotoclist} while loading a class or package. It will fail if a user
+calls \Macro{addtotoclist} afterwards. In this case, the owner is set to
+``\PValue{.}''.
+
+Note\textnote{Attention!} that passing an empty \PName{owner} argument is not
+the same as completely omitting the optional argument, including the square
+brackets. An empty argument would also result in an empty owner.
+\begin{Example}
+ Suppose you want to add the extension ``\File{foo}'' to the list of known
+ file extensions while loading your package with the file name
+ ``\File{bar.sty}'':
+\begin{lstcode}
+ \addtotoclist{foo}
+\end{lstcode}%
+ This will add the extension ``\PValue{foo}'' with the owner
+ ``\PValue{bar.sty}'' to the list of known extensions if this extension was
+ not already in the list. If the class or another package has already added
+ the extension, you will get the error:
+\begin{lstoutput}
+ Package tocbasic Error: file extension `foo' cannot be used twice
+
+ See the tocbasic package documentation for explanation.
+ Type H <return> for immediate help.
+\end{lstoutput}
+ If you press the ``\texttt{h}'' key followed by return, you will get the
+ following help:
+\begin{lstoutput}
+ File extension `foo' is already used by a toc-file, while bar.sty
+ tried to use it again for a toc-file.
+ This may be either an incompatibility of packages, an error at a package,
+ or a mistake by the user.
+\end{lstoutput}
+
+ Perhaps your package also provides a command that dynamically generates a
+ content list. In this case, you should use the optional argument of
+ \Macro{addtotoclist} to specify the owner.
+\begin{lstcode}
+ \newcommand*{\createnewlistofsomething}[1]{%
+ \addtotoclist[bar.sty]{#1}%
+ % Do something more to make this content list available
+ }
+\end{lstcode}
+ Now if the user calls this command, for example with
+\begin{lstcode}
+ \createnewlistofsomething{foo}
+\end{lstcode}
+ this will add the extension ``\PValue{foo}'' with the owner
+ ``\PValue{bar.sty}'' to the list of known extension or report an error, if
+ the extension is already in use.
+\end{Example}
+You can specify any \PName{owner} you want, but it must be unique. For
+example, if you were the author of the \Package{float} package, you could
+specify ``\PValue{float}'' instead of ``\PValue{float.sty}'' as the
+\PName{owner}. In this case, the \KOMAScript{}
+options\important{\DescRef{maincls.option.listof}}%
+\IndexOption{listof~=\PName{setting}} for the list of figures and the list of
+tables would also affect your content lists because these lists are already
+added to the list of known file extensions at the time the option is set, and
+\KOMAScript{} associates the file extensions ``\PValue{lof}'' for the list of
+figures and ``\PValue{lot}'' for the list of tables with the owner
+``\PValue{float}'' and sets the options for this owner.
+
+By the way, the \hyperref[cha:scrhack]{\Package{scrhack}}%
+\IndexPackage{scrhack}\important{\hyperref[cha:scrhack]{\Package{scrhack}}}
+package contains patches for several packages, such as \Package{float} or
+\Package{listings}, which provide their own content lists. If you use
+\hyperref[cha:scrhack]{\Package{scrhack}}, among other things, the respective
+file extensions will be added to the list of known file extensions. Their
+\PName{owner} is also ``\PValue{float}''. This is the basic building block, so
+to speak, allowing you to use the features of \Package{tocbasic} and the
+\KOMAScript{} classes with these content lists as well.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AtAddToTocList}\OParameter{owner}\Parameter{commands}
+\end{Declaration}
+This command adds the \PName{commands} to an internal list of commands that
+will be processed whenever a file extension with the specified \PName{owner}
+is added to the list of known extensions with
+\DescRef{\LabelBase.cmd.addtotoclist}. The optional argument is handled in the
+same way as in the \DescRef{\LabelBase.cmd.addtotoclist} command. If you leave
+the optional argument blank, the commands will always be executed, regardless
+of the owner, every time a new file extension is added to the list of known
+file extensions. Furthermore, while processing the \PValue{commands},
+\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} is set to the
+extension of the extension currently being added.
+\begin{Example}
+ \Package{tocbasic} itself uses
+\begin{lstcode}
+ \AtAddToTocList[]{%
+ \expandafter\tocbasic@extend@babel
+ \expandafter{\@currext}%
+ }
+\end{lstcode}
+ to add every file extension to the existing \Package{tocbasic} integration
+ with the \Package{babel} package.
+\end{Example}
+
+The two \Macro{expandafter} commands in the example are needed because the
+argument of \DescRef{\LabelBase.cmd.tocbasic@extend@babel} has to be expanded.
+See the description of \DescRef{\LabelBase.cmd.tocbasic@extend@babel} in
+\autoref{sec:tocbasic.internals},
+\DescPageRef{\LabelBase.cmd.tocbasic@extend@babel} for more information.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{removefromtoclist}\OParameter{owner}\Parameter{extension}
+\end{Declaration}
+This command removes the \PName{extension} from the list of known extensions.
+If the optional argument, \OParameter{owner}, is given, the \PName{extension}
+will only be removed if it was added by this \PName{owner}. See
+\DescRef{\LabelBase.cmd.addtotoclist} for an explanation of how the list owner
+is determined if the optional argument is omitted. If you specify an empty
+\PName{owner}, the owner is not tested and the \PName{extension} is removed
+regardless of the owner.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{doforeachtocfile}\OParameter{owner}\Parameter{commands}
+\end{Declaration}
+To this point, we've introduced commands provide additional security for class
+and package authors, but also more overhead. With \Macro{doforeachtocfile},
+you can reap the first benefit for this. This command lets you execute the
+specified \PName{commands} for each file extension associated with an
+\PName{owner}. While processing the \PName{commands}, \Macro{@currext} is the
+extension of the current file. If you omit the optional \OParameter{owner}
+argument, all file extensions are processed regardless of the owner. If the
+optional argument is empty, on the other hand, only extensions with an empty
+owner will be processed.
+\begin{Example}
+ If you want to output a list of all known file extensions to the terminal
+ and to the \File{log} file, you can easily accomplish this:
+\begin{lstcode}
+ \doforeachtocfile{\typeout{\@currext}}
+\end{lstcode}
+ If, on the other hand, you only want to output the extensions owned by
+ ``\PValue{foo}'', this too is easy:
+\begin{lstcode}
+ \doforeachtocfile[foo]{\typeout{\@currext}}
+\end{lstcode}
+\end{Example}
+The \KOMAScript{} classes \Class{scrbook} and \Class{scrreprt} use this
+command to optionally put a vertical skip or the chapter heading in content
+lists using the \PValue{chapteratlist} feature. You can learn how to set this
+feature in \autoref{sec:tocbasic.toc} on
+\DescPageRef{\LabelBase.cmd.setuptoc}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasicautomode}
+\end{Declaration}
+This command redefines \LaTeX{} kernel macro \Macro{@starttoc} for class and
+package authors so that every time \Macro{@starttoc} is called, the specified
+file extension is added to the list of known extensions, if it has not already
+been added. It also uses \DescRef{\LabelBase.cmd.tocbasic@starttoc} instead of
+\Macro{@starttoc}. See \autoref{sec:tocbasic.internals},
+\DescPageRef{\LabelBase.cmd.tocbasic@starttoc} for more information about
+\DescRef{\LabelBase.cmd.tocbasic@starttoc} and \Macro{@starttoc}.
+
+After you use \Macro{tocbasicautomode}, every content list created with
+\Macro{@starttoc} is automatically put under the control of
+\Package{tocbasic}. Whether or not this leads to the desired result, however,
+depends very much on the individual content list. The \Package{babel} package
+extensions, at least, will work for all those content lists. Nevertheless, it
+is preferable for the class or package authors to use \Package{tocbasic}
+explicitly. That way they can also take advantage of the other features of
+\Package{tocbasic}, which are described in the following sections.%
+\EndIndexGroup
+
+
+\section{Creating a Content List}
+\label{sec:tocbasic.toc}
+
+In the previous section, you learned how to maintain a list of known file
+extensions and how to automatically execute commands when adding new
+extensions to this list. You also saw a command that can be used to execute
+instructions for all known extensions or all extensions belonging to one
+owner. In this section, you will learn commands that apply to the files
+associated with these file extensions.
+
+\begin{Declaration}
+ \Macro{addtoeachtocfile}\OParameter{owner}\Parameter{content}
+\end{Declaration}
+The \Macro{addtoeachtocfile} command uses the \LaTeX{} kernel command
+\Macro{addtocontents} to write the \PName{content} to every TOC file\Index{TOC
+file} in the list of known file extensions that has the specified
+\PName{owner}. If you omit the optional argument, the \PName{content} is
+written to each file in the list of known file extensions. Incidentally, the
+actual file name is constructed from \Macro{jobname} and the file extension.
+While writing the \PName{content},
+\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} is the
+extension of the file currently being processed.
+\begin{Example}
+ You want to add a vertical space of one line to all TOC files.
+\begin{lstcode}
+ \addtoeachtocfile{%
+ \protect\addvspace{\protect\baselineskip}%
+ }
+\end{lstcode}
+ If, on the other hand, you want to do this only for the files that have the
+ owner ``\PValue{foo}'', use:
+\begin{lstcode}
+ \addtoeachtocfile[foo]{%
+ \protect\addvspace{\protect\baselineskip}%
+ }
+\end{lstcode}
+\end{Example}
+You should protect commands that should not be expanded when they are written
+by prefixing them with \Macro{protect}, in the same way as you would in
+\Macro{addtocontents}.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{addxcontentsline}%
+ \Parameter{extension}\Parameter{level}\OParameter{section number}%
+ \Parameter{text}
+\end{Declaration}
+This command is very similar to
+\Macro{addcontentsline}\IndexCmd{addcontentsline} from the \LaTeX{} kernel.
+However, it has an additional optional argument for the \PName{section number}
+of the entry, whereas for \Macro{addcontentsline}, it is specified in the
+\PName{text} argument. It is used to include numbered or unnumbered entries in
+the content list specified by the file \PName{extension}, where \PName{level}
+is the sectioning level and \PName{text} is the content of the corresponding
+entry. The page number is determined automatically.
+
+In contrast to \Macro{addcontentsline}, \Macro{addxcontentsline} first tests
+whether the \Macro{add\PName{level}\PName{extension}entry} command is defined.
+If so, it will be used for the entry, passing the \PName{section number} as an
+optional argument and \PName{text} as a mandatory argument. You can find an
+example of such a command provided by the \KOMAScript{} classes in
+\DescRef{maincls-experts.cmd.addparttocentry} (see
+\autoref{sec:maincls-experts.experts},
+\DescPageRef{maincls-experts.cmd.addparttocentry}). If the corresponding
+command is undefined, the internal command
+\DescRef{\LabelBase.cmd.tocbasic@addxcontentsline} is used instead. This takes
+all four arguments as mandatory arguments and then uses
+\Macro{addcontentsline} to create the desired entry. You can find more about
+\DescRef{\LabelBase.cmd.tocbasic@addxcontentsline} in
+\autoref{sec:tocbasic.internals},
+\DescPageRef{\LabelBase.cmd.tocbasic@addxcontentsline}.
+
+One advantage of using \Macro{addxcontentsline} rather than
+\Macro{addcontentsline} is that the \PValue{numberline} feature is respected
+(see \DescPageRef{\LabelBase.cmd.setuptoc}). Furthermore, you can configure
+the form of the entries by defining the appropriate commands specific to the
+\PName{level} and file \PName{extension}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{addxcontentslinetoeachtocfile}\OParameter{owner}
+ \Parameter{level}
+ \OParameter{section number}%
+ \Parameter{text}
+ \Macro{addcontentslinetoeachtocfile}\OParameter{owner}
+ \Parameter{level}\Parameter{text}%
+\end{Declaration}
+These two commands are directly related to
+\DescRef{\LabelBase.cmd.addxcontentsline}\ChangedAt{v3.12}{\Package{tocbasic}}
+explained above, or to \Macro{addcontentsline} from the \LaTeX kernel. The
+difference is that these statements write \PName{text} not just to a single
+file but to all the files of a given \PName{owner} and, if the first optional
+argument is omitted, to all files in the list of known file extensions.
+\begin{Example}
+ Suppose you are a class author and you want to write the chapter entry not
+ just in the table of contents but in all content-list files. Suppose further
+ that \PValue{\#1} currently contains the text to be written.
+\begin{lstcode}
+ \addxcontentslinetoeachtocfile{chapter}%
+ [\thechapter]{#1}
+\end{lstcode}
+ In this case, of course, the current chapter number should be expanded
+ directly when writing to the TOC file, which is why it was not protected
+ from expansion with \Macro{protect}.
+\end{Example}
+While writing the \PName{content},
+\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} here is also
+the extension of the file being written to, as it is with
+\DescRef{\LabelBase.cmd.addtoeachtocfile}.%
+
+Whenever\ChangedAt{v3.12}{\Package{tocbasic}} possible, the
+\Macro{addxcontentslinetoeachtocfile} command is preferable to
+\Macro{addcontentslinetoeachtocfile} because only the former offers the
+enhancements of \DescRef{\LabelBase.cmd.addxcontentsline}. You can find more
+about these enhancements and benefits in the explanation of
+\DescRef{\LabelBase.cmd.addxcontentsline} above.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{listoftoc}\OParameter{list-of title}\Parameter{extension}%
+ \Macro{listoftoc*}\Parameter{extension}%
+ \Macro{listofeachtoc}\OParameter{owner}%
+ \Macro{listof\PName{extension}name}
+\end{Declaration}
+You can use these commands to print the content lists.
+The\important{\Macro{listoftoc*}} stared version \Macro{listoftoc*} needs only
+one argument, the \PName{extension} of the file. The command first initializes
+the vertical and horizontal spacing of paragraphs, calls the hook to execute
+commands before reading the file, then reads the file, and finally executes
+the hook to execute commands after reading the file. Thus you can think of
+\Macro{listoftoc*} as a direct replacement for the \LaTeX{} kernel macro
+\Macro{@starttoc}\IndexCmd{@starttoc}\important{\Macro{@starttoc}}.
+
+The\important{\Macro{listoftoc}} version of \Macro{listoftoc} without the star
+prints the complete content list and also creates an optional entry in the
+table of contents and the running heads. If you provide the optional
+\OParameter{list-of title} argument, it is used both as the title for the list
+and as an optional entry in the table of contents and the running head.
+If\textnote{Attention!} the \OParameter{list-of title} argument is empty, the
+title will be empty too. If, on the other hand, you completely omit the
+optional argument, including the square brackets, the
+\Macro{listof\PName{extension}name} command will be used if it is defined. If
+it is undefined, a default replacement name is used and a warning is issued.
+
+The\important{\Macro{listofeachtoc}} \Macro{listofeachtoc} command outputs all
+content lists associated with the given \PName{owner}, or of all known file
+extensions if the optional argument is omitted. To\textnote{Attention!} output
+the correct titles, \Macro{listof\PName{extension}name} should be defined.
+
+You\textnote{Hint!} should define \Macro{listof\PName{extension}name}
+appropriately for all file extensions because users may use \Macro{listoftoc}
+without the optional argument, or \Macro{listofeachtoc}, themselves.
+\begin{Example}
+ Suppose you have a new ``list of algorithms'' with the file extension
+ \PValue{loa} and want to output it. The command
+\begin{lstcode}
+ \listoftoc[List of Algorithms]{loa}
+\end{lstcode}
+ will do it for you. If, however, you want to output this list without a
+ title, you could use
+\begin{lstcode}
+ \listof*{loa}
+\end{lstcode}
+ In the second case, of course, there will be no entry in the table of
+ contents. For more information about creating entries in the table of
+ contents, see the \DescRef{\LabelBase.cmd.setuptoc} command on
+ \DescPageRef{\LabelBase.cmd.setuptoc}.
+
+ If you have defined
+\begin{lstcode}
+ \newcommand*{\listofloaname}{%
+ List of Algorithms%
+ }
+\end{lstcode}
+ already, then
+\begin{lstcode}
+ \listoftoc{loa}
+\end{lstcode}
+ will suffice to print the content list with the desired heading. It may be
+ easier for users to remember if you also define a simple list-of command:
+\begin{lstcode}
+ \newcommand*{\listofalgorithms}{\listoftoc{loa}}
+\end{lstcode}
+\end{Example}
+
+Because\textnote{Attention!} \LaTeX{} normally opens a new file for each of
+these content lists, calling each of these commands may
+result in an error like:
+\begin{lstoutput}
+ ! No room for a new \write .
+ \ch@ck ...\else \errmessage {No room for a new #3}
+ \fi
+\end{lstoutput}
+if there are no more write handles left. Loading the
+\Package{scrwfile}\important{\Package{scrwfile}}\IndexPackage{scrwfile}
+package (see \autoref{cha:scrwfile}) can solve this problem.
+
+Also, the \hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
+\important{\hyperref[cha:scrhack]{\Package{scrhack}}} package contains patches
+for several packages, such as \Package{float} or \Package{listings}, so that
+their content-list commands can use \Macro{listoftoc}. As a result, many
+features of \Package{tocbasic} and the \KOMAScript{} classes are also
+available for their content lists.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeStartingTOC}\OParameter{extension}\Parameter{commands}%
+ \Macro{AfterStartingTOC}\OParameter{extension}\Parameter{commands}
+\end{Declaration}
+Sometimes it's useful to be able to execute \PName{commands} immediately
+before reading the auxiliary TOC file. With \Macro{BeforeStartingTOC} you can
+do so either for a single file \PName{extension} or for all files that are
+read using \DescRef{\LabelBase.cmd.listoftoc*},
+\DescRef{\LabelBase.cmd.listoftoc}, or \DescRef{\LabelBase.cmd.listofeachtoc}.
+You can also execute \PName{commands} after reading the file if you define
+them with \Macro{AfterStartingTOC}. If you omit the optional argument (or set
+an empty one) a general hook will be set and the commands will be applied to
+all content lists. The general before-hook is called before the individual
+one, and the general after-hook is called after the individual one. While
+executing the commands in these hooks,
+\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} is the
+extension of the TOC file which is about to be or has just been read.
+
+You can find an example\textnote{Example} using \Macro{BeforeStartingTOC} in
+\autoref{sec:scrwfile.clonefilefeature} on
+\PageRefxmpl{scrwfile.cmd.BeforeStartingTOC}.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeTOCHead}\OParameter{extension}\Parameter{commands}%
+ \Macro{AfterTOCHead}\OParameter{extension}\Parameter{commands}
+\end{Declaration}
+You can also define \PName{commands} that will be executed immediately before
+or after setting the title of a content list using
+\DescRef{\LabelBase.cmd.listoftoc*} or \DescRef{\LabelBase.cmd.listoftoc}. The
+treatment of the optional parameter and the meaning of
+\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} is the same as
+described for \DescRef{\LabelBase.cmd.BeforeStartingTOC} and
+\DescRef{\LabelBase.cmd.AfterStartingTOC}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{MakeMarkcase}\Parameter{text}
+\end{Declaration}
+Whenever \Package{tocbasic} sets a mark for a running head, The text of the
+mark will be an argument of \Macro{MakeMarkcase}. You can use this command to
+change the case of the running head if necessary. The \KOMAScript{} classes
+use \Macro{@firstofone}\IndexCmd{@firstofone}\important{\Macro{@firstofone}}
+by default. This means the text of the running head will be set without
+changing the capitalisation. If you use a different class,
+\Macro{MakeMarkcase} will be set to
+\Macro{MakeUppercase}\IndexCmd{MakeUppercase}%
+\important{\Macro{MakeUppercase}}. However, \Package{tocbasic} only defines
+this command if it is not already defined. It can therefore be predefined by
+another class or package and \Package{tocbasic} will use that definition
+rather than overwriting it.
+\begin{Example}
+ For some strange reason, you want to set the running heads entirely in
+ lower-case letters. To apply this change automatically for all running heads
+ set by \Package{tocbasic}, you define:
+\begin{lstcode}
+ \let\MakeMarkcase\MakeLowercase
+\end{lstcode}
+\end{Example}
+Let\textnote{Hint!} me give you some advice about
+\Macro{MakeUppercase}\IndexCmd{MakeUppercase}. First of all, this command is
+not fully expandable. This means that it can cause problems interacting with
+other commands. Beyond that, typographers agree that whenever you set whole
+words or phrases in capital letters, additional spacing is absolutely
+necessary. However, adding a fixed spacing between all letters is not an
+adequate solution. Different pairs of letters require different spaces between
+them. Additionally, some letters already create gaps in the text that must be
+taken into account. Packages like \Package{ulem} or \Package{soul} can
+scarcely achieve this, nor can \Macro{MakeUppercase}. The automatic letter
+spacing using the \Package{microtype} package is in this respect only an
+approximate solution, because it does not take into account the concrete,
+font-dependent glyphs. Because\textnote{Attention!} typesetting all-capital
+text is expert work and almost always requires manual adjustment, ordinary
+users are recommended avoid using it, or to use it only sparingly and not in
+such an exposed place as the running head.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{deftocheading}\Parameter{extension}\Parameter{definition}
+\end{Declaration}
+The \Package{tocbasic} package contains a default definition for typesetting
+the titles of content lists. You can configure this default definition through
+various features discussed in the \DescRef{\LabelBase.cmd.setuptoc} comand
+below. If those features are not enough, you can use \Macro{deftocheading}
+to define your own title for the content list with the given file
+\PName{extension}. The \PName{definition} of the title can use a single
+parameter, \PValue{\#1}. When the command is called inside
+\DescRef{\LabelBase.cmd.listoftoc} or \DescRef{\LabelBase.cmd.listofeachtoc},
+that \PValue{\#1} will be replaced by the title of this content list.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setuptoc}\Parameter{extension}\Parameter{feature list}%
+ \Macro{unsettoc}\Parameter{extension}\Parameter{feature list}
+\end{Declaration}
+You can use these two commands to set and clear features for a TOC file
+\PName{extension} or the content list associated with it. The \PName{feature
+list} is a comma-separated list of features. The \Package{tocbasic} package
+recognizes following features:
+\begin{description}
+\item[\texttt{leveldown}] means that the content list's heading is created not
+ with the highest sectioning level below
+ \DescRef{maincls.cmd.part}\,---\,\DescRef{maincls.cmd.chapter} if available,
+ \DescRef{maincls.cmd.section} otherwise\,---\,but with a heading of the next
+ level below that. This feature is evaluated by the internal heading command.
+ On the other hand, if a user-defined heading command has been created with
+ \DescRef{\LabelBase.cmd.deftocheading}, the person defining that command is
+ responsible for evaluating the feature. The \KOMAScript{} classes set this
+ feature using the \OptionValueRef{maincls}{listof}{leveldown}%
+ important{\OptionValueRef{maincls}{listof}{leveldown}}%
+ \IndexOption{listof~=\textKValue{leveldown}} option for all file extensions
+ with the owner \PValue{float}.
+\item[\texttt{nobabel}] prevents using the language-switching features of
+ \Package{babel}\IndexPackage{babel} for the TOC file associated with the
+ this file \PName{extension}. This feature should be used only for content
+ lists that are created in a fixed language, which means that changes of the
+ language inside of the document will no longer affect the content list. The
+ \Package{scrwfile}\important{\Package{scrwfile}}\IndexPackage{scrwfile}
+ package also uses this feature for cloned destinations, as because those
+ files already inherit any language changes from the cloning source.
+
+ Note\textnote{Attention!} that you must set this feature before you add a
+ file extension to the list of known extensions. Changing the feature
+ afterwards will have no effect.
+\item[\texttt{noparskipfake}] prevents\ChangedAt{v3.17}{\Package{tocbasic}}
+ the insertion of a final \Length{parskip} before switched off paragraph
+ spacing for content lists. In general, this will cause documents that use
+ spacing between paragraphs to have less vertical space between the list
+ heading and first entry than between normal headings and normal text.
+ Normally, therefore, you will obtain a more uniform formatting without this
+ feature.
+\item[\texttt{noprotrusion}] prevents\ChangedAt{v3.10}{\Package{tocbasic}}
+ character protrusion, which allows optical margin alignment, from being
+ disabled in the content lists. By default, character protrusion is disabled
+ when the \Package{microtype}\IndexPackage{microtype} package, or another
+ package that supports \Macro{microtypesetup}\IndexCmd{microtypesetup}, is
+ loaded. So if you want optical margin alignment in the content lists, you
+ must set this feature. Note\textnote{Attention!}, however, that character
+ protrusion in content lists often results in incorrect results. This is a
+ known issue with character protrusion.
+\item[\texttt{numbered}] means that the heading for the content list should
+ be numbered and included in the table of contents. This feature is evaluated
+ by the internal heading command. However, if a user-defined heading command
+ has been created with \DescRef{\LabelBase.cmd.deftocheading}, the person
+ creating that definition is responsible evaluating the feature. The
+ \KOMAScript{} classes set this feature using the
+ \OptionValueRef{maincls}{listof}{numbered}%
+ \important{\OptionValueRef{maincls}{listof}{numbered}}%
+ \IndexOption{listof~=\textKValue{numbered}} option for all file extensions
+ with the owner \PValue{float}.
+\item[\texttt{numberline}] \leavevmode\ChangedAt{v3.12}{\Package{tocbasic}}%
+ means that any entries made using \DescRef{\LabelBase.cmd.addxcontentsline}
+ or \DescRef{\LabelBase.cmd.addxcontentslinetoeachtocfile}, where the
+ optional argument for the number is missing or empty, will be provided with
+ an empty \DescRef{\LabelBase.cmd.numberline} command. This usually results
+ in these entries being left-aligned not with the number but with the text of
+ the numbered entries of the same level.
+ Using\ChangedAt{v3.20}{\Package{tocbasic}} the \PValue{tocline} entry style
+ can have additional side effects. See the style attribute
+ \Option{breakafternumber} and \Option{entrynumberformat} in
+ \autoref{tab:tocbasic.tocstyle.attributes} starting on
+ \autopageref{tab:tocbasic.tocstyle.attributes}.
+
+ \KOMAScript{} classes set this feature for the file extensions with the
+ owner \PValue{float} if you use the
+ \OptionValueRef{maincls}{listof}{numberline}%
+ \important{\OptionValueRef{maincls}{listof}{numberline}}%
+ \IndexOption{listof~=\textKValue{numberline}} option and for the file
+ extension \PValue{toc} if you use the
+ \OptionValueRef{maincls}{toc}{numberline}%
+ \important{\OptionValueRef{maincls}{toc}{numberline}}%
+ \IndexOption{toc~=\textKValue{numberline}} option. Similarly, this feature
+ is reset if you use \OptionValueRef{maincls}{listof}{nonumberline}%
+ \important{\OptionValueRef{maincls}{listof}{nonumberline}}%
+ \IndexOption{listof~=\textKValue{nonumberline}} or
+ \OptionValueRef{maincls}{toc}{nonumberline}%
+ \important{\OptionValueRef{maincls}{toc}{nonumberline}}%
+ \IndexOption{toc~=\textKValue{nonumberline}}.
+\item[\texttt{onecolumn}] \leavevmode\ChangedAt{v3.01}{\Package{tocbasic}}%
+ means that this content list will automatically use \LaTeX's internal
+ one-column mode with \Macro{onecolumn}\IndexCmd{onecolumn}.
+ However\textnote{Attention!}, this applies only if this content list does
+ not use the \PValue{leveldown}\important{\PValue{leveldown}} feature. The
+ \KOMAScript{} classes \Class{scrbook} and \Class{scrreprt} activate this
+ feature with \DescRef{\LabelBase.cmd.AtAddToTocList} (see
+ \autoref{sec:tocbasic.basics}, \DescPageRef{\LabelBase.cmd.AtAddToTocList})
+ for all content lists with the owner \PValue{float} or with themselves as
+ owner. Thus, for example, the table of contents, the list of figures, and
+ the list of tables are automatically printed in a single column for both
+ these classes. The multicolumn mode of the
+ \Package{multicol}\IndexPackage{multicol} package is expressly unaffected by
+ this option.
+\item[\texttt{totoc}] means that the title of content list should be included
+ in the table of contents. This feature will be evaluated by the internal
+ heading command. However, if an user-defined heading command has been
+ created with \DescRef{\LabelBase.cmd.deftocheading}, the person defining
+ that command is responsible for evaluating this feature. The \KOMAScript{}
+ classes set this feature using the \OptionValueRef{maincls}{listof}{totoc}%
+ \important{\OptionValueRef{maincls}{listof}{totoc}}%
+ \IndexOption{listof~=\textKValue{totoc}} option for all file extensions with
+ the owner \PValue{float}.
+\end{description}
+The \KOMAScript{} classes recognize an additional feature:
+\begin{description}
+\item[\texttt{chapteratlist}] ensures that an optional subdivision is added
+ to the content list for each new chapter. By default, this subdivision is a
+ vertical space. See \DescRef{maincls.option.listof}%
+ \IndexOption{listof}\important{\DescRef{maincls.option.listof}} in
+ \autoref{sec:maincls.floats}, \DescPageRef{maincls.option.listof} for more
+ information about this option.
+\end{description}
+\begin{Example}
+ Because \KOMAScript{} classes use \Package{tocbasic} for the list of figures
+ and list of tables, there is another way to prevent chapter subdivisions in
+ these lists:
+\begin{lstcode}
+ \unsettoc{lof}{chapteratlist}
+ \unsettoc{lot}{chapteratlist}
+\end{lstcode}
+
+ If you want the chapter subdivisions for your own list that you have defined
+ with the file \PName{extension} ``\PValue{loa}'' to use the same subdivision
+ format used by the \KOMAScript{} classes, you can use
+\begin{lstcode}
+ \setuptoc{loa}{chapteratlist}
+\end{lstcode}
+ And if you also want classes that use \DescRef{maincls.cmd.chapter} as the
+ top-level structure to use the one-column mode automatically, you can
+ use
+\begin{lstcode}
+ \ifundefinedorrelax{chapter}{}{%
+ \setuptoc{loa}{onecolumn}%
+ }
+\end{lstcode}
+ Using \DescRef{scrbase.cmd.ifundefinedorrelax} requires the
+ \Package{scrbase} package (see \autoref{sec:scrbase.if},
+ \DescPageRef{scrbase.cmd.ifundefinedorrelax}).
+
+ Even\textnote{Hint!} if your package will be used with another class, it
+ does not hurt to set these features. To the contrary, if another class also
+ evaluates these features, then your package would automatically use the
+ features of that class.
+\end{Example}
+As you can see, packages that use \Package{tocbasic} already support a wide
+range of options for content lists that would otherwise require a great deal
+of effort to implement and which are therefore missing in many packages.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{iftocfeature}\Parameter{extension}\Parameter{feature}%
+ \Parameter{then code}\Parameter{else code}
+\end{Declaration}
+You can use this command to test if a \PName{feature} was set for the given
+file \PName{extension}. If so the \PName{then code} will be executed,
+otherwise the \PName{else code} will be. This can be useful, for example, if
+you define your own heading command using
+\DescRef{\LabelBase.cmd.deftocheading} but want to support the features
+\PValue{totoc}, \PValue{numbered} or \PValue{leveldown}.%
+\EndIndexGroup
+
+
+\section{Configuring Content-List Entries}
+\seclabel{tocstyle}%
+\BeginIndexGroup
+\BeginIndex{}{table of contents>entry}%
+\Index{list of contents|\see{table of contents}}
+
+Since\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} version~3.20, the
+\Package{tocbasic} package has been able not only to configure the tables or
+lists of contents and their auxiliary files but also to influence their
+entries. To do so, you can define new styles or you can use and configure one
+of the predefined styles. In the medium term, \Package{tocbasic} will replace
+the experimental \Package{tocstyle} package that never became an official part
+of the \KOMAScript{} bundle. The \KOMAScript{} classes themselves have relied
+completely on the \Package{tocbasic} entry styles since version~3.20.
+
+\begin{Declaration}
+ \Counter{tocdepth}
+\end{Declaration}
+Entries to content lists are usually hierarchical. For this purpose, each
+entry level has a numerical value. The higher this value, the lower in the
+hierarchy is this level. In the standard classes, for example, parts have the
+level -1 and chapters have the value 0. The \LaTeX{} counter
+\Counter{tocdepth} determines the deepest level that should be shown in the
+table of contents and other content lists.
+
+For example, the \Class{book} class sets \Counter{tocdepth} to 2, so entries
+of the levels \PValue{part}, \PValue{chapter}, \PValue{section}, and
+\PValue{subsection} are printed. Deeper levels like \PValue{subsubsection},
+which has the numerical value 3, are not printed. Nevertheless the entries are
+part of the auxiliary file for the table of contents.
+
+Note that most \Package{tocbasic} entry styles, with the exception of
+\PValue{gobble} (see \DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}\iffree{}{,
+later in this section}) observe \Counter{tocdepth}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{numberline}\Parameter{entry number}%
+ \Macro{usetocbasicnumberline}\OParameter{code}
+\end{Declaration}
+Although\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} the \LaTeX{} kernel
+already defines a \Macro{numberline} command, the definition is not sufficient
+for \Package{tocbasic}. Therefore \Package{tocbasic} defines its own commands
+and sets \Macro{numberline} as needed using \Macro{usetocbasicnumberline} for
+each content-list entry. Redefining \Macro{numberline}, therefore, is often
+ineffective and may result in warnings if you use \Package{tocbasic}.
+
+You can use the definition of \Package{tocbasic} by putting
+\Macro{usetocbasicnumberline} into your document's preamble. The command first
+checks if the current definition of \Macro{numberline}
+uses certain important, internal commands of \Package{tocbasic}. If this is not
+the case, \Macro{usetocbasicnumberline} redefines \Macro{numberline} and
+executes \PName{code}. If you omit the optional argument, it issues
+a message about the redefinition with \Macro{PackageInfo}. If
+you just do not want such a message, use an empty optional argument.
+
+Note\textnote{Attention!} that \Macro{usetocbasicnumberline} can change the
+internal switch \Macro{@tempswa} globally!%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DeclareTOCStyleEntry}\OParameter{option list}\Parameter{style}%
+ \Parameter{entry level}
+ \Macro{DeclareTOCStyleEntries}\OParameter{option list}\Parameter{style}%
+ \Parameter{entry level list}
+\end{Declaration}
+These\ChangedAt{v3.20}{\Package{tocbasic}} commands define or configure the
+content-list entries of a given \PName{entry level}. The \PName{entry level}
+argument is a symbolic name, e.\,g. \PValue{section}, for the entry to the
+table of contents of the section level with the same name or \PValue{figure}
+for an entry of a figure to the list of figures. A \PName{style} is assigned
+to each \PName{entry level}. The \PName{style} has to be defined before using
+it as an argument of \Macro{DeclareTOCStyleEntry} or
+\Macro{DeclareTOCStyleEntries}. You can use the \PName{option list} to
+configure the various, usually \PName{style}-dependent, attributes of the
+entries.
+
+Currently, \Package{tocbasic} defines the following entry styles:
+\begin{description}
+\item[\PValue{default}] defaults to a clone of the \PValue{dottedtocline}
+ style. Class authors who use \Package{tocbasic} are encouraged to change
+ this style to the default content-list style of the class using
+ \Macro{CloneTOCStyle}. For example the \KOMAScript{} classes change
+ \PValue{default} into a clone of \PValue{tocline}.
+\item[\PValue{dottedtocline}] is similar to the style used by the standard
+ classes \Class{book} and \Class{report} for the \PValue{section} down to
+ \PValue{subparagraph} entry levels of the table of contents and for the
+ entries at the list of figures or list of tables. It supports the attributes
+ \PValue{level}, \PValue{indent}, and \PValue{numwidth}. The entries are
+ indented by the value of \PValue{indent} from the left. The width of the
+ entry number is given by the value of \PValue{numwidth}. For multi-line
+ entries, the indent will be increased by the value of \PValue{numwidth} for
+ the second and following lines. The page number is printed using
+ \Macro{normalfont}\IndexCmd{normalfont}. The entry text and the page number
+ are connected by a dotted line. \hyperref[fig:tocbasic.dottedtocline]%
+ {Figure~\ref*{fig:tocbasic.dottedtocline}} illustrates the attributes of
+ this style.
+ \begin{figure}
+ \centering
+ \resizebox{.8\linewidth}{!}{%
+ \begin{tikzpicture}
+ \draw[color=lightgray] (0,2\baselineskip) -- (0,-2.5\baselineskip);
+ \draw[color=lightgray] (\linewidth,2\baselineskip) --
+ (\linewidth,-2.5\baselineskip);
+ \node (dottedtocline) at (0,0) [anchor=west,inner sep=0,outer sep=0]
+ {%
+ \hspace*{7em}%
+ \parbox[t]{\dimexpr\linewidth-9.55em}{%
+ \setlength{\parindent}{-3.2em}%
+ \addtolength{\parfillskip}{-2.55em}%
+ \makebox[3.2em][l]{1.1.10}%
+ Text of an entry in the table of contents with the
+ \PValue{dottedtocline} style and more than one line%
+ \leaders\hbox{$\csname m@th\endcsname
+ \mkern 4.5mu\hbox{.}\mkern 4.5mu$}\hfill\nobreak
+ \makebox[1.55em][r]{12}%
+ }%
+ };
+ \draw[|-|,color=gray,overlay] (0,0) --
+ node [anchor=north,font=\small] {
+ \PValue{indent}
+ }
+ (3.8em,0);
+ \draw[|-|,color=gray,overlay] (3.8em,\baselineskip) --
+ node [anchor=south,font=\small] {
+ \PValue{numwidth}
+ }
+ (7em,\baselineskip);
+ \draw[|-|,color=gray,overlay] (\linewidth,\ht\strutbox) --
+ node [anchor=south,font=\small] {
+ \Macro{@tocrmarg}
+ }
+ (\linewidth-2.55em,\ht\strutbox);
+ \draw[|-|,color=gray,overlay] (\linewidth,-\baselineskip) --
+ node [anchor=north,font=\small] {
+ \Macro{@pnumwidth}
+ }
+ (\linewidth-1.55em,-\baselineskip);
+ \end{tikzpicture}%
+ }
+ \caption{Illustrations of some attributes of a TOC entry with the
+ \PValue{dottedtocline} style}
+ \label{fig:tocbasic.dottedtocline}
+ \end{figure}
+\item[\PValue{gobble}] is the simplest possible style. Entries in this style,
+ regardless of the setting of \DescRef{\LabelBase.counter.tocdepth}%
+ \IndexCounter{tocdepth}\important{\DescRef{\LabelBase.counter.tocdepth}},
+ will never be printed. The style simply gobbles the
+ entries, so to speak. It has the default \PValue{level} attribute, but
+ it is never evaluated.
+\item[\PValue{largetocline}] is similar to the style used by the standard
+ classes for the \PValue{part} level. It supports the \PValue{level} and
+ \PValue{indent} attributes only. The latter deviates from the standard
+ classes, which do not support an indent of the \PValue{part} entries.
+
+ A penalty is set to permit page breaks before an entry of an appropriate
+ level. The entries will be indented by the value of \PValue{indent} from the
+ left and printed with the font style \Macro{large}\Macro{bfseries}. If
+ \DescRef{\LabelBase.cmd.numberline} is used, the number width is 3\Unit{em}.
+ \DescRef{\LabelBase.cmd.numberline} is not redefined. The standard classes
+ do not use \DescRef{\LabelBase.cmd.numberline} for \PName{part} entries. The
+ value of \PName{indent} also has no effect on the indentation from the
+ second line and after in a multi-line entry.
+
+ \hyperref[fig:tocbasic.largetocline]%
+ {Figure~\ref*{fig:tocbasic.largetocline}} illustrates the characteristics of
+ this style. You will also notice that the style has adopted some
+ inconsistencies present in the standard classes, e.\,g. the missing indent
+ of the second and following lines of an entry or the different values of
+ \Macro{@pnumwidth} that results from the font-size dependency. This can
+ result, in extreme cases, in the entry text coming too close. Note that the
+ width of the entry number shown in the figure is only valid if
+ \DescRef{\LabelBase.cmd.numberline} has been used. The standard classes,
+ however, use a distance of 1\Unit{em} after the number.
+ \begin{figure}
+ \centering
+ \resizebox{.8\linewidth}{!}{%
+ \begin{tikzpicture}
+ \draw[color=lightgray] (0,2\baselineskip) -- (0,-2.5\baselineskip);
+ \draw[color=lightgray] (\linewidth,2\baselineskip) --
+ (\linewidth,-2.5\baselineskip);
+ \node (largetocline) at (0,0) [anchor=west,inner sep=0,outer sep=0] {%
+ \parbox[t]{\dimexpr \linewidth-1.55em\relax}{%
+ \makebox[3em][l]{\large\bfseries I}%
+ \large\bfseries
+ Text of an entry to the table of contents with the
+ \PValue{largetocline} style and more than one line%
+ \hfill
+ \makebox[0pt][l]{\normalsize\normalfont
+ \makebox[1.55em][r]{\large\bfseries 1}}%
+ }%
+ };
+ \draw[|-|,color=gray] (0,\baselineskip) --
+ node [anchor=south] { 3\,em }
+ (3em,\baselineskip);
+ \draw[|-|,color=gray,overlay] (\linewidth,\ht\strutbox) --
+ node [anchor=south] { \Macro{@pnumwidth} }
+ (\linewidth-1.55em,\ht\strutbox);
+ \large\bfseries
+ \draw[|-|,color=gray,overlay] (\linewidth,-\baselineskip) --
+ node [anchor=north,font=\normalfont\normalsize] {
+ \Macro{large}\Macro{@pnumwidth}
+ }
+ (\linewidth-1.55em,-\baselineskip);
+ \end{tikzpicture}%
+ }
+ \caption{Illustrations of some attributes of a TOC entry with style
+ \PValue{largetocline}}
+ \label{fig:tocbasic.largetocline}
+ \end{figure}
+\item[\PValue{tocline}] is a flexible style. The \KOMAScript{} classes use
+ this style by default for all kinds of entries. Likewise, these classes
+ define the clones \PValue{part}, \PValue{chapter}, and \PValue{section}, or
+ \PValue{section} and \PValue{subsection} using this style, but add extra
+ \PName{initial code} to the clones to change their defaults.
+
+ The style supports 16\important{\PValue{level}, \PValue{beforeskip},
+ \PValue{breakafternumber}, \PValue{dynnumwidth}, \PValue{entryformat},
+ \PValue{entrynumberformat}, \PValue{indent}, \PValue{linefill},
+ \PValue{numsep}, \PValue{numwidth}, \PValue{onstarthigherlevel},
+ \PValue{onstartlowerlevel}, \PValue{onstartsamelevel},
+ \PValue{pagenumberbox}, \PValue{pagenumberformat},
+ \PValue{raggedentrytext}, \PValue{raggedpagenumber}} additional attributes
+ in addition to the default \PValue{level} attribute. The defaults of all
+ these attributes depend on the name of the \PName{entry level} and
+ correspond to the results of the standard classes. So after loading
+ \Package{tocbasic}, you can change the style of the entries in the table of
+ contents of the standard classes into \PValue{tocline} using
+ \DescRef{\LabelBase.cmd.DeclareTOCEntryStyle} without this leading directly
+ to major changes in their appearance. Thus you can precisely change only
+ those attributes that are necessary for the desired changes. The same
+ applies to the list of figures and the list of tables for the standard
+ classes.
+
+ Because its great flexibility, this style can in principle replace the
+ \PValue{dottedtocline}, \PValue{undottedtocline}, and \PValue{largetocline}
+ styles, but this requires more effort to configure.
+
+ \hyperref[fig:tocbasic.tocline]%
+ {Figure~\ref*{fig:tocbasic.tocline}} illustrates some of the length
+ attributes of this style. The others are explained in
+ \autoref{tab:tocbasic.tocstyle.attributes} starting on
+ \autopageref{tab:tocbasic.tocstyle.attributes}.
+ \begin{figure}
+ \centering
+ \resizebox{.8\linewidth}{!}{%
+ \begin{tikzpicture}
+ \coordinate (subsection) at (0,0);
+ \coordinate (section) at ($(subsection)+(0,2\baselineskip)$);
+ \coordinate (chapter) at ($(section)+(0,2\baselineskip)$);
+ \coordinate (part) at ($(chapter)+(0,2.4\baselineskip+1em)$);
+
+ \draw[color=lightgray]
+ ($(part)+(0,2\baselineskip)$) --
+ (0,-2.5\baselineskip);
+ \draw[color=lightgray]
+ ($(part)+(\linewidth,2\baselineskip)$) --
+ (\linewidth,-2.5\baselineskip);
+
+ \coordinate (subsection) at (0,0);
+
+ \node at (part) [anchor=west,inner sep=0,outer sep=0]
+ {%
+ \hspace*{3em}%
+ \parbox[t]{\dimexpr\linewidth-5.55em}{%
+ \setlength{\parindent}{-3em}%
+ \addtolength{\parfillskip}{-2.55em}%
+ \makebox[3em][l]{\large\bfseries I.}%
+ \textbf{\large Text of a part entry with the
+ \PValue{tocline} style and at least two lines of text}%
+ \hfill
+ \makebox[1.55em][r]{\bfseries 12}\large
+ }%
+ };
+ \draw[|-|,color=gray,overlay]
+ (part) --
+ ($(part)+(3em,0)$)
+ node [anchor=north east,font=\small] {
+ \PValue{numwidth}
+ };
+ \draw[|-|,color=gray,overlay]
+ ($(part)+(\linewidth,\ht\strutbox)$)
+ node [anchor=north,font=\small] {
+ \Macro{@tocrmarg}
+ } --
+ ($(part)+(\linewidth-2.55em,\ht\strutbox)$);
+ \draw[|-|,color=gray,overlay]
+ ($(part)+(\linewidth,-\baselineskip)$) --
+ node [anchor=north,font=\small] {
+ \Macro{@pnumwidth}
+ }
+ ($(part)+(\linewidth-1.55em,-\baselineskip)$);
+ \node at (chapter) [anchor=west,inner sep=0,outer sep=0]
+ {%
+ \hspace*{1.5em}%
+ \parbox[t]{\dimexpr\linewidth-4.05em}{%
+ \setlength{\parindent}{-1.5em}%
+ \addtolength{\parfillskip}{-2.55em}%
+ \makebox[1.5em][l]{\bfseries 1.}%
+ \textbf{Text of a chapter entry with the
+ \PValue{tocline} style and more than one line of text
+ for demonstration purposes}%
+ \hfill
+ \makebox[1.55em][r]{\bfseries 12}%
+ }%
+ };
+ \draw[|-|,color=gray,overlay]
+ ($(chapter)+(3em,\baselineskip)$) --
+ node [anchor=west,font=\small] {
+ \PValue{beforeskip}
+ }
+ ($(part)+(3em,-\baselineskip)$);
+ \draw[|-|,color=gray,overlay]
+ (chapter) --
+ ($(chapter)+(1.5em,0)$)
+ node [anchor=north east,font=\small] {
+ \PValue{numwidth}
+ };
+ \draw[|-|,color=gray,overlay]
+ ($(chapter)+(\linewidth,\ht\strutbox)$)
+ node [anchor=north,font=\small] {
+ \Macro{@tocrmarg}
+ } --
+ ($(chapter)+(\linewidth-2.55em,\ht\strutbox)$);
+ \draw[|-|,color=gray,overlay]
+ ($(chapter)+(\linewidth,-\baselineskip)$)
+ node [anchor=north,font=\small] {
+ \Macro{@pnumwidth}
+ } --
+ ($(chapter)+(\linewidth-1.55em,-\baselineskip)$);
+ \node at (section) [anchor=west,inner sep=0,outer sep=0]
+ {
+ \hspace*{3.8em}%
+ \parbox[t]{\dimexpr\linewidth-6.35em}{%
+ \setlength{\parindent}{-2.3em}%
+ \addtolength{\parfillskip}{-2.55em}%
+ \makebox[2.3em][l]{1.1.}%
+ Text of a section entry with the \PValue{tocline}
+ style and more than one line of text for
+ demonstration purposes%
+ \leaders\hbox{$\csname m@th\endcsname
+ \mkern 4.5mu\hbox{.}\mkern 4.5mu$}\hfill\nobreak
+ \makebox[1.55em][r]{3}%
+ }%
+ };
+ \node at (subsection) [anchor=west,inner sep=0,outer sep=0]
+ {%
+ \hspace*{7em}%
+ \parbox[t]{\dimexpr\linewidth-9.55em}{%
+ \setlength{\parindent}{-3.2em}%
+ \addtolength{\parfillskip}{-2.55em}%
+ \makebox[3.2em][l]{1.1.10.}%
+ Text of a subsection entry with the \PValue{tocline}
+ and more than one line of text for demonstration
+ purposes%
+ \leaders\hbox{$\csname m@th\endcsname
+ \mkern 4.5mu\hbox{.}\mkern 4.5mu$}\hfill\nobreak
+ \makebox[1.55em][r]{12}%
+ }%
+ };
+ \draw[|-|,color=gray,overlay]
+ ($(subsection)+(0,\ht\strutbox)$) --
+ node [anchor=north,font=\small] {
+ \PValue{indent}
+ }
+ ($(subsection)+(3.8em,\ht\strutbox)$);
+ \draw[|-|,color=gray,overlay]
+ ($(subsection)+(3.8em,0)$) --
+ ($(subsection)+(7em,0)$)
+ node [anchor=north east,font=\small] {
+ \PValue{numwidth}
+ };
+ \draw[|-|,color=gray,overlay]
+ ($(subsection)+(\linewidth,\ht\strutbox)$)
+ node [anchor=north,font=\small] {
+ \Macro{@tocrmarg}
+ } --
+ ($(subsection)+(\linewidth-2.55em,\ht\strutbox)$);
+ \draw[|-|,color=gray,overlay]
+ ($(subsection)+(\linewidth,-\baselineskip)$) --
+ node [anchor=north,font=\small] {
+ \Macro{@pnumwidth}
+ }
+ ($(subsection)+(\linewidth-1.55em,-\baselineskip)$);
+ \end{tikzpicture}%
+ }
+ \caption{Illustrations of some attributes of a TOC entry with the
+ \PValue{tocline} style}
+ \label{fig:tocbasic.tocline}
+ \end{figure}
+\item[\PValue{undottedtocline}] is similar to the style used by the standard
+ \Class{book} and \Class{report} classes for the \PValue{chapter} entry
+ level, or by \Class{article} for the \PValue{section} entry level in the
+ table of contents. It supports\important{\PValue{level}, \PValue{indent},
+ \PValue{numwidth}} only three attributes. A penalty is inserted permitting
+ an appropriate page break before the entry, as is a vertical skip. The
+ entries are printed with an indentation of \PValue{indent} from the left and
+ in \Macro{bfseries}. This is a departure from the standard classes, which do
+ not support the indentation of these entry levels.
+ \DescRef{\LabelBase.cmd.numberline} is used unchanged. The width of the
+ entry number is determined by \PValue{numwidth}. For multi-line entries the
+ indent will be increased by the value of \PValue{numwidth} for the second
+ and following lines. \hyperref[fig:tocbasic.undottedtocline]%
+ {Figure~\ref*{fig:tocbasic.undottedtocline}} illustrates the attributes of
+ this style.
+ \begin{figure}
+ \centering
+ \resizebox{.8\linewidth}{!}{%
+ \begin{tikzpicture}
+ \draw[color=lightgray] (0,2\baselineskip) -- (0,-2.5\baselineskip);
+ \draw[color=lightgray] (\linewidth,2\baselineskip) --
+ (\linewidth,-2.5\baselineskip);
+ \node (undottedtocline) at (0,0) [anchor=west,inner sep=0,outer sep=0]
+ {%
+ \makebox[1.5em][l]{\bfseries 1}%
+ \parbox[t]{\dimexpr \linewidth-4.05em\relax}{%
+ \bfseries
+ Text of an entry to the table of contents with the
+ \PValue{undottedtocline} style and more than one line%
+ }%
+ \raisebox{-\baselineskip}{\makebox[2.55em][r]{\bfseries 3}}%
+ };
+ \draw[|-|,color=gray,overlay] (0,\baselineskip) --
+ node [anchor=south,font=\small] {
+ \PValue{numwidth}
+ }
+ (1.5em,\baselineskip);
+ \draw[|-|,color=gray,overlay] (\linewidth,\ht\strutbox) --
+ node [anchor=south,font=\small] {
+ \Macro{@tocrmarg}
+ }
+ (\linewidth-2.55em,\ht\strutbox);
+ \draw[|-|,color=gray,overlay] (\linewidth,-\baselineskip) --
+ node [anchor=north,font=\small] {
+ \Macro{@pnumwidth}
+ }
+ (\linewidth-1.55em,-\baselineskip);
+ \end{tikzpicture}%
+ }
+ \caption{Illustration of some attributes of the \PValue{undottedtocline}
+ style with the example of a chapter title}%
+ \label{fig:tocbasic.undottedtocline}
+ \end{figure}
+\end{description}
+You can find an explanation of the attributes of all styles that
+\Package{tocbasic} defines in \autoref{tab:tocbasic.tocstyle.attributes}.
+If\ChangedAt{v3.21}{\Package{tocbasic}} you use these attributes as
+options to \DescRef{\LabelBase.cmd.DeclareNewTOC} (see
+\DescPageRef{\LabelBase.cmd.DeclareNewTOC}), you must prefix the names of the
+attribute by \PValue{tocentry}, e\,g. \PValue{level} becomes
+\Option{tocentrylevel}. If\ChangedAt{v3.20}{\Package{tocbasic}} use
+these attributes as options for
+\DescRef{maincls-experts.cmd.DeclareSectionCommand}%
+\IndexCmd{DeclareSectionCommand}\IndexCmd{DeclareNewSectionCommand}%
+\IndexCmd{RedeclareSectionCommand}\IndexCmd{ProvideSectionCommand} (see
+\DescPageRef{maincls-experts.cmd.DeclareSectionCommand}) and similar commands,
+you must prefix the names of the attributes with \PValue{toc}, e\,g.
+\PValue{level} becomes \Option{toclevel}.
+
+Finally, using \Macro{DeclareTOCStyleEntry} will define the internal command
+\Macro{l@\PName{entry level}}.
+
+\begin{desclist}
+ \desccaption{%
+ Attributes of the predefined TOC-entry styles of \Package{tocbasic}%
+ \label{tab:tocbasic.tocstyle.attributes}%
+ }{%
+ Attributes of the TOC-entry styles (\emph{continued})%
+ }%
+ \entry{\OptionVName{beforeskip}{length}}{%
+ The vertical distance inserted before an entry of this level in the
+ \PValue{tocline} style (see \autoref{fig:tocbasic.tocline}). The distance
+ is made using either \Macro{vskip} or \Macro{addvspace} depending on the
+ \PName{entry level}, to maintain compatibility as far as possible with the
+ standard classes and earlier versions of \KOMAScript.
+
+ For the \PValue{part} \PName{entry level}, the attribute will be
+ initialised with \texttt{2.25em plus 1pt}; for \PValue{chapter}, with
+ \texttt{1em plus 1pt}. If the \PName{chapter} \PName{entry level} is
+ undefined, \PValue{section} is initialised with \texttt{1em plus 1pt}
+ instead. The initial value for all other levels is \texttt{0pt plus
+ .2pt}.%
+ }%
+ \entry{\OptionVName{breakafternumber}{switch}}{%
+ \PName{switch} is one of the values for simple switches from
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}. If the
+ switch is active in the \PValue{tocline} style, there will be a line break
+ after the number set with
+ \DescRef{\LabelBase.cmd.numberline}\IndexCmd{numberline}. The line after
+ the entry number again starts flush left with the number. The default is
+ false for the \PValue{tocline} style.
+
+ If\textnote{Attention!} the \Option{numberline} feature has been activated
+ for a content list (see \DescRef{\LabelBase.cmd.setuptoc},
+ \autoref{sec:tocbasic.toc}, \DescPageRef{\LabelBase.cmd.setuptoc}), as is
+ the case with the \KOMAScript{} classes when the
+ \OptionValueRef{maincls}{toc}{numberline}%
+ \IndexOption{toc~=\textKValue{numberline}} option is used, then the
+ unnumbered entries will nevertheless have a (by default empty) number line
+ using the formatting of \Option{entrynumberformat}.%
+ }%
+ \entry{\OptionVName{dynnumwidth}{switch}}{%
+ \PName{switch} is one of the values for simple switches from
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}. If the
+ switch is active with the \PValue{tocline} style, the \PValue{numwidth}
+ attribute specifies a minimum value. If a previous \LaTeX{} run has
+ determined that the maximum width of the entry numbers of the same level
+ plus the value of \PValue{numsep} is greater than this minimum, the
+ calculated value will be used instead.%
+ }%
+ \entry{\OptionVName{entryformat}{command}}{%
+ You can use this attributes to change the format of the entry. The value
+ should be a \PName{command} with exactly one argument. This argument is
+ not necessarily fully expandable. You should not use commands like
+ \Macro{MakeUppercase}, which expects a fully expandable argument. Font
+ changes are relative to \Macro{normalfont}\Macro{normalsize}. Note that
+ the output of \Option{linefill} and the page number are independent of
+ \Option{entryformat}. See also the \Option{pagenumberformat} attribute .
+
+ The initial value of the attribute for the \PValue{part} \PName{entry
+ level} is \Macro{large}\Macro{bfseries}, and for \PValue{chapter}, it is
+ \Macro{bfseries}. If the \PValue{chapter} level is not defined,
+ \PValue{section} uses \Macro{bfseries}. All other levels print the
+ argument unchanged.%
+ }%
+ \entry{\OptionVName{entrynumberformat}{command}}{%
+ You can use this attribute to format the entry number within
+ \DescRef{\LabelBase.cmd.numberline}. The value should be a \PName{command}
+ with exactly one argument. Font changes are relative to the one of
+ attribute \Option{entryformat}.
+
+ The initial \PName{command} prints the argument unchanged. This means the
+ entry number will be printed as it is.
+
+ If\textnote{Attention!} the \Option{numberline} feature for a content list
+ has been activated (see \DescRef{\LabelBase.cmd.setuptoc},
+ \autoref{sec:tocbasic.toc}, \DescPageRef{\LabelBase.cmd.setuptoc}), as is
+ the case with the \KOMAScript{} classes using the
+ \OptionValueRef{maincls}{toc}{numberline}%
+ \IndexOption{toc~=\textKValue{numberline}} option, the unnumbered entries
+ will execute the \PName{command} as well.%
+ }%
+ \entry{\OptionVName{indent}{length}}{%
+ The horizontal distance of the entry from the left margin (see
+ \autoref{fig:tocbasic.dottedtocline} and \autoref{fig:tocbasic.tocline}).
+
+ For the \PValue{tocline} style, all entry levels whose names start with
+ ``\texttt{sub}'' are initialised with the
+ \PValue{indent}+\PValue{numwidth} of the entry level of the same name
+ without this prefix. For the \PValue{dottedtocline},
+ \PValue{undottedtocline}, and \PValue{tocline} styles, the initial values
+ of levels \PValue{part} down to \PValue{subparagraph} and the levels
+ \PValue{figure} and \PValue{table} are compatible with the standard
+ classes. All other levels do not have an initial value. Therefore you have
+ to set an explicit value for such levels when they are defined first
+ time.%
+ }%
+ \entry{\OptionVName{level}{integer}}{%
+ The numerical value of the \PName{entry level}. Only those entries whose
+ numerical value is less than or equal to the
+ \DescRef{\LabelBase.counter.tocdepth}%
+ \important{\DescRef{\LabelBase.counter.tocdepth}}\IndexCounter{tocdepth}
+ counter are printed.
+
+ This attribute is mandatory for all styles and will be defined
+ automatically when the style is declared.
+
+ For the \PValue{tocline} style, all entry levels whose name starts with
+ ``\texttt{sub}'' are initialised with the value of the entry level of the
+ same name without this prefix plus one. For the \PValue{dottedtocline},
+ \PValue{largetocline}, \PValue{tocline}, and \PValue{undottedtocline}
+ styles, the entry levels from \PValue{part} to \PValue{subparagraph}, as
+ well as \PValue{figure} and \PValue{table}, are initialised to be
+ compatible with the standard classes. For all other levels, the
+ initialisation is done with the value of \Macro{\PName{entry
+ level}numdepth}, if this is defined.%
+ }%
+ \entry{\OptionVName{linefill}{code}}{%
+ With the \PValue{tocline} style, you can change what is used to fill the
+ space between the end of the entry text and the page number. The
+ \PName{linefill} attribute contains the \PName{code} that prints this
+ filler. For the \PValue{part} and \PValue{chapter} \PName{entry level}s,
+ the attribute is initialised with \Macro{hfill}. If no \PValue{chapter}
+ \PName{entry level} has been defined, \PValue{section} also uses
+ \Macro{hfill}. All other entry levels are initialised with
+ \DescRef{\LabelBase.cmd.TOCLineLeaderFill} (see
+ \DescPageRef{\LabelBase.cmd.TOCLineLeaderFill}).
+
+ Incidentally, if the \PName{code} specified does not automatically fill
+ the gap, you should also activate the \PValue{raggedpagenumber} attribute
+ to avoid ``\texttt{underfull \Macro{hbox}}'' messages.%
+ }%
+ \entry{\OptionVName{numsep}{length}}{%
+ The \PValue{tocline} style tries to ensure a minimum distance of
+ \PName{length} between the entry number and the entry text. If
+ \PValue{dynnumwidth} is active, it will correct the number width to achieve
+ this. Otherwise it simply throws a warning, if the condition is not met.
+
+ The initial \PName{length} is 0.4\Unit{em}.%
+ }%
+ \entry{\OptionVName{numwidth}{length}}{%
+ The width reserved for the entry number (see
+ \autoref{fig:tocbasic.dottedtocline} to
+ \autoref{fig:tocbasic.undottedtocline}). With the \PValue{dottedtocline},
+ \PValue{tocline}, and \PValue{undottedtocline} styles, this \PName{length}
+ is added to the \PName{length} of attribute \PValue{indent} for the second
+ and following lines of the entry text.
+
+ With the \PValue{tocline} style, the initial \PName{length} of all entries
+ whose name starts with ``\texttt{sub}'' is the value of the level without
+ this prefix plus 0.9\Unit{em}, if such a level with corresponding
+ attributes exists. With the \PValue{dottedtocline},
+ \PValue{undottedtocline}, and \PValue{tocline} styles, the initial
+ \PName{length}s of levels from \PValue{part} to \PValue{subparagraph}, as
+ well as \PName{figure} and \PName{table}, are compatible with those of the
+ standard classes. All other levels do not have an initial value. Therefore
+ you must set \PValue{numwidth} explicitly when the entry level is first
+ used.%
+ }%
+ \entry{\OptionVName{onstarthigherlevel}{code}}{%
+ The \PValue{tocline} style can execute \PName{code} at the start of an
+ entry, depending on whether the previous entry had numerical level greater
+ than, the same as, or less than the current entry. The \PName{code}
+ specified by this attribute will be executed if the current entry has a
+ greater numerical value, i.\,e. it is lower in the entry hierarchy, than
+ the previous one.
+
+ Note that detecting the level of the previous entry only works so long as
+ \Macro{lastpenalty} has not changed since the previous entry.
+
+ The initial \PName{code} is \DescRef{\LabelBase.cmd.LastTOCLevelWasLower}
+ (see \DescPageRef{\LabelBase.cmd.LastTOCLevelWasLower}).%
+ }%
+ \entry{\OptionVName{onstartlowerlevel}{code}}{%
+ The \PValue{tocline} style can execute \PName{code} at the start of an
+ entry, depending on whether the previous entry had numerical level greater
+ than, the same as, or less than the current entry. The \PName{code}
+ specified by this attribute will be executed if the current entry has a
+ lower numerical value, i.\,e. it is higher in the entry hierarchy, than
+ the previous one.
+
+ Note that detecting the level of the previous entry only works so long as
+ \Macro{lastpenalty} has not changed since the previous entry.
+
+ The initial \PName{code} is \DescRef{\LabelBase.cmd.LastTOCLevelWasHigher}
+ (see \DescPageRef{\LabelBase.cmd.LastTOCLevelWasHigher}), which usually
+ favours a page break before the entry.%
+ }%
+ \entry{\OptionVName{onstartsamelevel}{code}}{%
+ The \PValue{tocline} style can execute \PName{code} at the start of an
+ entry, depending on whether the previous entry had numerical level greater
+ than, the same as, or less than the current entry. The \PName{code}
+ specified by this attribute will be executed if the current entry has the
+ same numerical value, i.\,e. it is on the same level in the entry
+ hierarchy, as the previous one.
+
+ Note that detecting the level of the previous entry only works so long as
+ \Macro{lastpenalty} has not changed since the previous entry.
+
+ The initial \PName{code} is \DescRef{\LabelBase.cmd.LastTOCLevelWasSame}
+ (see \DescPageRef{\LabelBase.cmd.LastTOCLevelWasSame}), which usually
+ favours a page break before the entry.%
+ }%
+ \entry{\OptionVName{pagenumberbox}{command}}{%
+ By default the page number of an entry is printed flush right in a box
+ of width \Macro{@pnumwidth}. In the \PValue{tocline} style, you can
+ change the \PName{command} to print the number using this attribute. The
+ \PName{command} should expect exactly one argument, the page number.
+
+ This attribute is initialised with the box already mentioned.%
+ }%
+ \entry{\OptionVName{pagenumberformat}{command}}{%
+ You can use this attribute to change the format of the page number of an
+ entry. The \PName{command} should expect exactly one argument, the page
+ number. Font changes are relative to the font of \Option{entryformat}
+ followed by \Macro{normalfont}\Macro{normalsize}.
+
+ The initial \PName{command} of entry level \PValue{part} prints the
+ argument in \Macro{large}\Macro{bfseries}. The initial \PName{command} of
+ all other levels prints the argument in
+ \Macro{normalfont}\Macro{normalcolor}.%
+ }%
+ \entry{\OptionVName{raggedentrytext}{switch}}{%
+ The\ChangedAt{v3.21}{\Package{tocbasic}} \PName{switch} is one of the
+ values for simple switches from \autoref{tab:truefalseswitch},
+ \autopageref{tab:truefalseswitch}. If the switch is active, the
+ \PValue{tocline} style prints the text of an entry ragged right instead of
+ fully justified, and only words that are longer than a text line are
+ automatically hyphenated.
+
+ This \PName{switch} is false by default.%
+ }%
+ \entry{\OptionVName{raggedpagenumber}{switch}}{%
+ The \PName{switch} is one of the values for simple switches from
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}. If the
+ switch is active, the \PValue{tocline} style does not force the page
+ number to be right justified.
+
+ Depending on the value of \PValue{linefill}, setting this attribute could
+ affect only whether a warning message appears, or the formatting of the
+ page number as well. So it is important to set both attributes so that
+ they correspond.
+
+ By default the \PName{switch} is not activated and therefore corresponds
+ with an initial value of \Macro{hfill} or
+ \DescRef{\LabelBase.cmd.TOCLineLeaderFill} for the \PValue{linefill}
+ attribute.%
+ }%
+\end{desclist}
+
+% New translation by Markus Kohm (please fix it!):
+\Macro{DeclareTOCStyleEntries}\ChangedAt{v3.26}{\Package{tocbasic}} uses
+\Macro{DeclareTOCStyleEntry} to define not only one \PName{entry level} but
+several entry levels. Each of the entry levels, given by the comma-separated
+\PName{entry level list}, is defined with the same \PName{style} and the
+settings of the given \PName{option list}.%
+% End of new translation.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DeclareTOCEntryStyle}\Parameter{style}%
+ \OParameter{initial code}%
+ \Parameter{command code}%
+ \Macro{DefineTOCEntryOption}\Parameter{option}\OParameter{default value}%
+ \Parameter{code}%
+ \Macro{DefineTOCEntryBooleanOption}\Parameter{option}%
+ \OParameter{default value}%
+ \Parameter{prefix}%
+ \Parameter{postfix}%
+ \Parameter{description}%%
+ %\OParameter{initial code}%
+ \Macro{DefineTOCEntryCommandOption}\Parameter{option}%
+ \OParameter{default value}%
+ \Parameter{prefix}%
+ \Parameter{postfix}%
+ \Parameter{description}%%
+ %\OParameter{initial code}%
+ \Macro{DefineTOCEntryIfOption}\Parameter{option}%
+ \OParameter{default value}%
+ \Parameter{prefix}%
+ \Parameter{postfix}%
+ \Parameter{description}%%
+ %\OParameter{initial code}%
+ \Macro{DefineTOCEntryLengthOption}\Parameter{option}%
+ \OParameter{default value}%
+ \Parameter{prefix}%
+ \Parameter{postfix}%
+ \Parameter{description}%%
+ %\OParameter{initial code}%
+ \Macro{DefineTOCEntryNumberOption}\Parameter{option}%
+ \OParameter{default value}%
+ \Parameter{prefix}%
+ \Parameter{postfix}%
+ \Parameter{description}%
+ %\OParameter{initial code}%
+\end{Declaration}
+\Macro{DeclareTOCEntryStyle}\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} is
+one of the most complex commands in \KOMAScript. It is therefore explicitly
+intended for \LaTeX{} developers and not for ordinary \LaTeX{} users. It lets
+you define new a \PName{style} for content-list entries. Usually, entries to
+content lists are made using
+\Macro{addcontentsline}\IndexCmd{addcontentsline}, or preferably, if you use
+\Package{tocbasic}, with
+\DescRef{\LabelBase.cmd.addxcontentsline}\IndexCmd{addxcontentsline} (see
+\autoref{sec:tocbasic.basics}, \DescPageRef{\LabelBase.cmd.addxcontentsline}).
+In both cases \LaTeX{} writes a corresponding
+\Macro{contentsline}\IndexCmd{contentsline} to the appropriate auxiliary file.
+When reading this auxiliary file, \LaTeX{} then executes a
+\Macro{l@\PName{entry level}} command for each \Macro{contentsline}.
+
+If you later assign a \PName{style} to an entry level using
+\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}, the \PName{initial code} is
+executed first, if provided, and then the \PName{command code} for the
+definition of \Macro{l@\PName{entry level}}. The \PName{command code} is the
+code that will be expanded and executed by \Macro{l@\PName{entry level}}.
+Inside \PName{command code} \texttt{\#1} is the name of the TOC entry level
+and \texttt{\#\#1} and \texttt{\#\#2} are the arguments of
+\Macro{l@\PName{entry level}}.
+
+The \PName{initial code} serves first to initialise all attributes of the
+\PName{style}. Developers should make sure that all attributes are provided
+with values here. Only then does \DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}
+work without errors if an \PName{option list} is not specified. The second
+task of the \PName{initial code} is to define all the options that this
+\PName{style} recognises. The \Option{level} option is always defined
+automatically. The value of the \Option{level} can be queried within the
+\PName{command code} with \Macro{@nameuse}\PParameter{\#1tocdepth}%
+\important{\Macro{\PName{entry level}tocdepth}}, for example, to compare it
+with the \DescRef{\LabelBase.counter.tocdepth}\IndexCounter{tocdepth} counter.
+
+To define options for the attributes of the
+\PName{style} inside the \PName{initial code}, you can use the commands \Macro{DefineTOCEntryBooleanOption},
+\Macro{DefineTOCEntryCommandOption}, \Macro{DefineTOCEntryIfOption},
+\Macro{DefineTOCEntryLengthOption}, and \Macro{DefineTOCEntryNumberOption}.
+These commands each define an \PName{option} that, when called,
+defines a macro named \Macro{\PName{prefix}\PName{entry
+ level}\PName{postfix}} set to the given value or to the
+\PName{default value} of the option. The
+\Macro{DefineTOCEntryIfOption} command is a somewhat special case. It defines \Macro{\PName{prefix}\PName{entry
+ level}\PName{postfix}} as a command with two arguments. If the value passed to
+the option is one of the activation (true) values from \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch}, the command expands to the first
+argument. If the value to the option is a deactivation (false) value, the command
+expands to the second argument.
+
+The \PName{description} should be a brief message that describes the sense
+of the option with some keywords. The \Package{tocbasic} package uses this text
+in error messages, warnings, and information output on the terminal and to the
+\File{log} file.
+
+The simplest style of \Package{tocbasic}, \PValue{gobble}, is defined
+using:
+\begin{lstcode}
+ \DeclareTOCEntryStyle{gobble}{}%
+\end{lstcode}
+If you now define an entry level \PValue{dummy} in this style using:
+\begin{lstcode}
+ \DeclareTOCStyleEntry[level=1]{gobble}{dummy}
+\end{lstcode}
+this would correspond, among other things, to:
+\begin{lstcode}
+ \def\dummytocdepth{1}
+ \def\l@dummy#1#2{}
+\end{lstcode}
+
+For example, within the \PValue{tocline} style,
+\begin{lstcode}
+ \DefineTOCEntryCommandOption{linefill}[\TOCLineLeaderFill]%
+ {scr@tso@}{@linefill}{filling between text and page number}%
+\end{lstcode}
+is used to define the \Option{linefill} option. By specifying
+\DescRef{\LabelBase.cmd.TOCLineLeaderFill} as the \PName{default value},
+a call such as
+\begin{lstcode}
+ \DeclareTOCStyleEntry[linefill]{tocline}{part}
+\end{lstcode}
+would, among other things, create the definition
+\begin{lstcode}
+ \def\scr@tso@part@linefill{\TOCLineLeaderFill}
+\end{lstcode}
+
+If you want to define your own styles, you should first study the definition
+of the \PValue{dottedtocline} style. After you understand this definition, you
+can find many hints as to how to use the commands effectively in the much more
+complex definition of the \PValue{tocline} style.
+
+However, in many cases it will be sufficient to clone an existing style using
+\DescRef{\LabelBase.cmd.CloneTOCEntryStyle} and to change the initial code of
+the new style using \DescRef{\LabelBase.cmd.TOCEntryStyleInitCode} or
+\DescRef{\LabelBase.cmd.TOCEntryStyleStartInitCode}.
+
+\Macro{DefineTOCEntryOption} is merely used to define the other commands and
+you should not use it directly. Normally, there is no need for it. It is
+mentioned here only for the sake of completeness.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{CloneTOCEntryStyle}\Parameter{style}\Parameter{new style}%
+\end{Declaration}
+With\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} this command you can clone
+an existing \PName{style}. It defines a \PName{new style} with the same
+attributes and settings as the existing \PName{style}. The package itself uses
+\Macro{CloneTOCEntryStyle} to declare the \PValue{default} style as a clone of
+\PValue{dottedtocline}. The \KOMAScript{} classes use the command to declare
+the styles \PValue{part}, \PValue{section}, and \PValue{chapter} or
+\PValue{subsection} as clones of \PValue{tocline} and then modify them with
+\DescRef{\LabelBase.cmd.TOCEntryStyleInitCode} and
+\DescRef{\LabelBase.cmd.TOCEntryStyleStartInitCode}. The \Class{scrbook} and
+\Class{scrreprt} classes newly declare the \PValue{default} style as a clone
+of \PValue{section}, and \Class{scrartcl} declares it as a clone of
+\PValue{subsection}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{TOCEntryStyleInitCode}\Parameter{style}%
+ \Parameter{initial code}%
+ \Macro{TOCEntryStyleStartInitCode}\Parameter{style}%
+ \Parameter{initial code}
+\end{Declaration}
+Every\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} TOC-entry style has an
+initialisation code. This is used whenever a \PName{style} is assigned to an
+TOC entry using \DescRef{\LabelBase.cmd.DeclareTOCEntryStyle}. This
+\PName{initial code} should not have global side effects, because it is also
+used for local initialisation inside other commands like
+\DescRef{\LabelBase.cmd.DeclareNewTOC}\IndexCmd{DeclareNewTOC}. The
+\PName{initial code} not only defines all attributes of a \PName{style}, but
+it also sets the defaults for those attributes.
+
+You can use \Macro{TOCEntryStyleStartInitCode} and
+\Macro{TOCEntryStyleInitCode} to extend previously existing initialisation
+code with further \PName{initial code}. \Macro{TOCEntryStyleStartInitCode}
+adds \PName{initial code} in front of the existing code.
+\Macro{TOCEntryStyleInitCode} adds the \PName{initial code} at the end of the
+existing initialisation code. The \KOMAScript{} classes, for example, use
+\Macro{TOCEntryStyleStartInitCode} to properly initialise the fill, fonts, and
+vertical spacing of the \PValue{part} style cloned from \PValue{tocline}. For
+example, the \Class{scrbook} and \Class{scrreprt} classes use
+\begin{lstcode}
+ \CloneTOCEntryStyle{tocline}{section}
+ \TOCEntryStyleStartInitCode{section}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@linefill\endcsname
+ {\TOCLineLeaderFill\relax}%
+ }
+\end{lstcode}
+to define \PValue{section} as a modified clone of \PValue{tocline}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{LastTOCLevelWasHigher}%
+ \Macro{LastTOCLevelWasSame}%
+ \Macro{LastTOCLevelWasLower}
+\end{Declaration}
+At\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} the beginning of entries
+using the \PValue{tocline} style, \Package{tocbasic} executes one of these
+three commands depending on \Macro{lastpenalty}. \Macro{LastTOCLevelWasHigher}
+and \Macro{LastTOCLevelWasSame} used in vertical mode add
+\Macro{addpenalty}\PParameter{\Macro{@lowpenalty}} and therefore permit a page
+break before an entry with the same or higher hierarchical position.
+\Macro{LastTOCLevelWasLower} is empty, so a page break between an entry and
+its first sub-entry is not permitted.
+
+Users should not redefine these commands. Instead, you should change the
+behaviour of single entry levels using the \PValue{onstartlowerlevel},
+\PValue{onstartsamelevel}, and \PValue{onstarthigherlevel} attributes.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{TOCLineLeaderFill}\OParameter{leader}
+\end{Declaration}
+This\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} command is intended to be
+used as a value for the \Option{linefill} option of the \PName{tocline}
+TOC-entry style. It creates a connection between the end of the entry text and
+the entry's page number. You can specify the \PName{leader}, which is repeated
+at regular intervals, as an optional argument. The default is a dot.
+
+As the name suggests, the command uses \Macro{leaders} to output the
+\PName{leader}. The spacing used is defined analogously to the \LaTeX{} kernel
+command \Macro{@dottedtocline} by
+\Macro{mkern}\Macro{@dotsep}\Unit{\texttt{mu}}.%
+\EndIndexGroup
+\EndIndexGroup
+
+
+\section{Internal Commands for Class and Package Authors}
+\seclabel{internals}
+
+The \Package{tocbasic} package provides some internal commands for the use of
+class and package authors. These commands all begin with the prefix
+\Macro{tocbasic@}. But\textnote{Attention!} even class or package authors
+should not redefine them! Their inner functioning may be changed or extended
+at any time, so redefining these commands could significantly damage the
+\Package{tocbasic}'s operation.
+
+\begin{Declaration}
+ \Macro{tocbasic@extend@babel}\Parameter{extension}
+\end{Declaration}
+At every change of the current language, either at the beginning of the
+document or inside the document, the \Package{babel}\IndexPackage{babel}
+package (see \cite{package:babel}), or rather a \LaTeX{} kernel enhanced by
+\Package{babel}'s language management, writes language-switching commands to
+the files with the \File{toc}, \File{lof}, and \File{lot} extensions. The
+\Package{tocbasic} package extends this mechanism with
+\Macro{tocbasic@extend@babel} so that it also works for other file extensions.
+The \PName{extension} argument must be completely expanded! Otherwise the
+there is a risk that, for example, the meaning of the argument has already
+change at the time it is actually evaluated.
+
+This command is typically invoked by default for every file \PName{extension}
+added to the list of known extensions with
+\DescRef{\LabelBase.cmd.addtotoclist}. You can suppress this with the
+\PValue{nobabel}\important{\PValue{nobabel}} feature (see
+\DescRef{\LabelBase.cmd.setuptoc}, \autoref{sec:tocbasic.toc},
+\DescPageRef{\LabelBase.cmd.setuptoc}). \Package{tocbasic} does this
+automatically for the extensions \File{toc}, \File{lof}, and \File{lot} to
+avoid switching languages twice in the corresponding files.
+
+There is usually no reason to call this command yourself. However, there could
+conceivably be content lists that are not under the control of
+\Package{tocbasic} and so are not in \Package{tocbasic}'s list of known file
+extensions, but which nevertheless should use \Package{babel}'s language
+switching mechanism. You can call the command explicitly for those files.
+But\textnote{Attention!} please note that this should be done only once per
+file extension!%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@starttoc}\Parameter{extension}
+\end{Declaration}
+This command is the actual replacement for the
+\Macro{@starttoc}\IndexCmd{@starttoc}\important{\Macro{@starttoc}} command
+from the \LaTeX{} kernel. It is the command behind
+\DescRef{\LabelBase.cmd.listoftoc*} (see \autoref{sec:tocbasic.toc},
+\DescPageRef{\LabelBase.cmd.listoftoc*}). Class or package authors who want to
+take advantage of \Package{tocbasic} should at least use this command, or even
+better, \DescRef{\LabelBase.cmd.listoftoc}. The command uses
+\Macro{\@starttoc} internally, but sets
+\Length{parskip}\IndexLength{parskip}\important{\Length{parskip}\\
+\Length{parindent}\\ \Length{parfillskip}},
+\Length{parindent}\IndexLength{parindent} to 0, and \Length{parfillskip} to 0
+to infinity. Moreover,
+\Macro{@currext}\important{\Macro{@currext}}\IndexCmd{@currext} is set to the
+file extension of the current TOC file, so it can be evaluated during the
+subsequent execution of the hooks. You can find an explanation of these hooks
+below.
+
+Because\textnote{Attention!} \LaTeX{} opens a new content-list file for
+writing after reading that file, calling this command may result in an error
+message of the type
+\begin{lstoutput}
+ ! No room for a new \write .
+ \ch@ck ...\else \errmessage {No room for a new #3}
+ \fi
+\end{lstoutput}
+if no more write handles are available. You can solve this problem by loading
+the \Package{scrwfile}\important{\Package{scrwfile}}\IndexPackage{scrwfile}
+package described in \autoref{cha:scrwfile}, or by using Lua\LaTeX{}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@@before@hook}%
+ \Macro{tocbasic@@after@hook}
+\end{Declaration}
+The \Macro{tocbasic@@before@hook} hook is executed immediately before reading
+an auxiliary file for a content list, before executing the commands defined
+with \DescRef{\LabelBase.cmd.BeforeStartingTOC} command. You can extend this
+hook using \Macro{g@addto@macro}\IndexCmd{g@addto@macro}.
+
+Similarly, \Macro{tocbasic@@after@hook} is executed immediately after reading
+such an auxiliary file and before executing the commands defined with
+\DescRef{\LabelBase.cmd.AfterStartingTOC}. You can extend this hook using
+\Macro{g@addto@macro}\IndexCmd{g@addto@macro}.
+
+\KOMAScript{} uses these hooks to dynamically adjust content lists to the
+width of the heading numbers. Only classes and packages should use these
+hooks. Users\textnote{Attention!} should really use
+\DescRef{\LabelBase.cmd.BeforeStartingTOC} and
+\DescRef{\LabelBase.cmd.AfterStartingTOC} instead. Authors of packages should
+also prefer these commands. These hooks should not be used to generate any
+output!
+
+If neither\textnote{Attention!} \DescRef{\LabelBase.cmd.listofeachtoc} nor
+\DescRef{\LabelBase.cmd.listoftoc} nor \DescRef{\LabelBase.cmd.listoftoc*} are
+used to output the content list, the hooks should be executed explicitly.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@\PName{extension}@before@hook}%
+ \Macro{tocbasic@\PName{extension}@after@hook}
+\end{Declaration}
+These hooks are executed directly after
+\DescRef{\LabelBase.cmd.tocbasic@@before@hook} or before
+\DescRef{\LabelBase.cmd.tocbasic@@after@hook} for the TOC file with the
+corresponding file \PName{extension}. Class\textnote{Attention!} and package
+authors should never change them under any circumstances! If
+neither\textnote{Attention!} \DescRef{\LabelBase.cmd.listofeachtoc} nor
+\DescRef{\LabelBase.cmd.listoftoc} nor \DescRef{\LabelBase.cmd.listoftoc*} are
+used to output a content list, the hooks should nevertheless be called, if
+they are defined. These commands can be undefined. For an appropriate test,
+see \DescRef{scrbase.cmd.scr@ifundefinedorrelax}%
+\IndexCmd{scr@ifundefinedorrelax} in \autoref{sec:scrbase.if},
+\DescPageRef{scrbase.cmd.scr@ifundefinedorrelax}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@listhead}\Parameter{title}
+\end{Declaration}
+This command is used by \DescRef{\LabelBase.cmd.listoftoc} and
+\DescRef{\LabelBase.cmd.listofeachtoc} to set the heading of the content list.
+This can be either the default heading of the \Package{tocbasic} package or a
+custom definition. If you define your own command for the heading, you can
+also use \Macro{tocbasic@listhead}. In this case, you should define
+\Macro{@currext}\important{\Macro{@currext}}\IndexCmd{@currext} to be the file
+extension of the corresponding TOC file before using
+\Macro{tocbasic@listhead}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@listhead@\PName{extension}}\Parameter{title}
+\end{Declaration}
+This command is used in \DescRef{\LabelBase.cmd.tocbasic@listhead} to set the
+individual headings, optional table of contents entry, and running head, if it
+is defined. Otherwise, \DescRef{\LabelBase.cmd.tocbasic@listhead} defines them
+before their use.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@addxcontentsline}%
+ \Parameter{extension}\Parameter{level}\Parameter{number}\Parameter{text}%
+ \Macro{nonumberline}
+\end{Declaration}
+The\ChangedAt{v3.12}{\Package{tocbasic}} \Macro{tocbasic@addxcontentsline}
+command creates entry of the specified level in the TOC file with the given
+\PName{extension}. Whether the entry is numbered or not depends on whether or
+not the \PName{number} argument is empty. In this case the \PName{text} will
+be prefixed by \Macro{nonumberline} without any argument. Otherwise,
+\DescRef{\LabelBase.cmd.numberline} with the \PName{number} argument will used
+as usual.
+
+The \Macro{nonumberline} command is redefined inside
+\DescRef{\LabelBase.cmd.listoftoc} (see \autoref{sec:tocbasic.toc},
+\DescPageRef{\LabelBase.cmd.listoftoc}) depending on the \PValue{numberline}
+feature (see \autoref{sec:tocbasic.toc},
+\DescPageRef{\LabelBase.cmd.setuptoc}). As a result, changing this feature
+results in changes of the corresponding TOC immediately at the next \LaTeX{}
+run.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@DependOnPenaltyAndTOCLevel}\Parameter{entry level}%
+ \Macro{tocbasic@SetPenaltyByTOCLevel}\Parameter{entry level}
+\end{Declaration}
+The\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} \PValue{tocline}
+content-list style (see \autoref{sec:tocbasic.tocstyle}) sets a
+\Macro{penalty} at the end of each entry via
+\Macro{tocbasic@SetPenaltyByTOCLevel} so that no page break can occur after an
+entry. The exact value chosen depends on the \PName{entry level}.
+
+At the beginning of an entry, \Macro{tocbasic@DependOnPenaltyAndTOCLevel} is
+used to execute the value of the \Option{onstartlowerlevel}, the
+\Option{onstartsamelevel}, or the \Option{onstarthigherlevel} style option,
+depending on \Macro{lastpenalty} and the current \PName{entry level}. By
+default, the first two permit a page break when executed in vertical mode.
+
+Developers of \PValue{tocline}-compatible styles should copy this behaviour.
+To do so, they can fall back on these internal macros.%
+\EndIndexGroup
+
+
+\section{A Complete Example}
+\seclabel{example}
+
+This section provides a complete example of how to define your own floating
+environment including an associated content list and \KOMAScript{} integration
+using \Package{tocbasic}. This example uses internal commands, that is, they
+have a ``\texttt{@}'' in their name. This means\textnote{Attention}, that you
+must either put the code into a package or class or placed it between
+\Macro{makeatletter}\important[i]{\Macro{makeatletter}\\\Macro{makeatother}}%
+\IndexCmd{makeatletter} and \Macro{makeatother}\IndexCmd{makeatother}.
+
+First\textnote{environment}, we need a new floating environment.
+That's easy with the following:
+\begin{lstcode}
+ \newenvironment{remarkbox}{%
+ \@float{remarkbox}%
+ }{%
+ \end@float
+ }
+\end{lstcode}
+The new environment is named \Environment{remarkbox}.
+
+Each\textnote{placement} floating environment has a default placement. It
+consists of one or more of the well-known placement options: \PValue{b},
+ \PValue{h}, \PValue{p} and \PValue{t}.
+\begin{lstcode}
+ \newcommand*{\fps@remarkbox}{tbp}
+\end{lstcode}
+The new floating environment should be placed by default only either at
+the top of a page, at the bottom of a page, or on a separate page.
+
+Floating\textnote{type} environments also have a numerical floating
+type between 1 and 31. Environments with the same active bit at the floating type cannot change
+their order. Figures and tables normally use type~1 and 2. So a figure that
+comes later in the source code than a table may be output earlier than the
+table and vice versa.
+\begin{lstcode}
+ \newcommand*{\ftype@remarkbox}{4}
+\end{lstcode}
+The new environment has floating type~4, so it may pass figures and floats and
+may be passed by those.
+
+The\textnote{number} captions of floating environment also have numbers.
+\begin{lstcode}
+ \newcounter{remarkbox}
+ \newcommand*{\remarkboxformat}{%
+ Remark~\theremarkbox\csname autodot\endcsname}
+ \newcommand*{\fnum@remarkbox}{\remarkboxformat}
+\end{lstcode}
+Here, a new counter is defined first, which is independent of the chapters
+or the counters of other structural levels. \LaTeX{} itself also defines
+\Macro{theremarkbox} with the default output as an Arabic number.
+This is then used to define the formatted output of the
+counter. The formatted output is again defined as a floating-point
+number for use in the \DescRef{maincls.cmd.caption} command.
+
+Floating\textnote{file name extension} environments have their own content lists
+and those need an auxiliary file named \Macro{jobname} and a file
+extension:
+\begin{lstcode}
+ \newcommand*{\ext@remarkbox}{lor}
+\end{lstcode}
+As the file extension, we use ``\File{lor}''.
+
+With this, the floating environment works. But the content list of
+is still missing. So that we do not have to implement it ourselves, we
+use the \Package{tocbasic} package. This is loaded with
+\begin{lstcode}
+ \usepackage{tocbasic}
+\end{lstcode}
+inside of document preambles. Class or package authors would use
+\begin{lstcode}
+ \RequirePackage{tocbasic}
+\end{lstcode}
+instead.
+
+Now\textnote{extension} we register the file name extension with the
+\Package{tocbasic} package:
+\begin{lstcode}
+ \addtotoclist[float]{lor}
+\end{lstcode}
+We use \PValue{float} as the owner so that all subsequent \KOMAScript{}
+options that relate to lists of floating environments also apply to the new
+content list.
+
+Next\textnote{title} we define a title or heading for this content list:
+\begin{lstcode}
+ \newcommand*{\listoflorname}{List of Remarks}
+\end{lstcode}
+When working with multiple languages, the normal practice is to define an
+English title first and then, for example with the help of the
+\Package{scrbase} package, to add titles for all the other languages you want
+to support. See \autoref{sec:scrbase.languageSupport}, starting on
+\autopageref{sec:scrbase.languageSupport}.
+
+Now\textnote{entry} all we have to do is define what a single entry in the
+content list should look like:
+\begin{lstcode}
+ \newcommand*{\l@remarkbox}{\l@figure}
+\end{lstcode}
+This specifies that entries in the list of remarks should look exactly like the
+entries in the list of figures. This would be the easiest solution. A more
+explicit definition would be something like:
+\begin{lstcode}
+ \DeclareTOCStyleEntry[level=1,indent=1em,numwidth=1.5em]%
+ {tocline}{remarkbox}
+\end{lstcode}
+
+You\textnote{chapter entry} also want chapter entries to affect the content
+list.
+\begin{lstcode}
+ \setuptoc{lor}{chapteratlist}
+\end{lstcode}
+Setting this property allows this when you use a \KOMAScript{} class, and other class
+that supports this property. Unfortunately, the standard classes do not.
+
+This\textnote{list of remarks} should be enough. Users can now
+select different kinds of headings using the corresponding options of
+the \KOMAScript{} classes or \DescRef{\LabelBase.cmd.setuptoc}, (e.\,g. with
+or without an entry in the table of contents, with or without numbering). But
+with a simple
+\begin{lstcode}
+ \newcommand*{\listofremarkboxes}{\listoftoc{lor}}
+\end{lstcode}
+you can simplify the usage even more.
+
+As you've seen, just five one-line commands, of which only three or four are
+really necessary, refer to the content list. Nevertheless, the new list of
+remarks already provides the ability to place both numbered and unnumbered
+entries into the table of contents.You can use a lower sectioning level for
+the headings. Running heads are set for the \KOMAScript{} classes, the
+standard classes, and all classes that explicitly support \Package{tocbasic}.
+Supporting classes even pay attention to this new list of remarks at each new
+\DescRef{maincls.cmd.chapter}. Even changes to the current language made with
+\Package{babel} are included in the list of remarks.
+
+Of course\textnote{additional features}, package authors can add more
+features. For example, they could explicitly offer options to hide
+\DescRef{\LabelBase.cmd.setuptoc} from users. Or they can refer to the
+\Package{tocbasic} manual when explaining the appropriate features. The
+advantage of this is that users automatically benefit from any future
+extensions to \Package{tocbasic}. However, if you do not want to burden the
+user with the fact that the file extension \File{lor} is used for the key
+terms, then
+\begin{lstcode}
+ \newcommand*{\setupremarkboxes}{\setuptoc{lor}}
+\end{lstcode}
+is sufficient to set a list of features passed as an argument to
+\Macro{setupremarkboxes} as a list of features for the file extension
+\File{lor}.
+
+\section{Everything with Only One Command}
+\label{sec:tocbasic.declarenewtoc}
+
+The example in the previous section has shows that \Package{tocbasic} makes it
+easy to define your own floating environments with their own content lists.
+This section shows how it can be even easier.
+
+\begin{Declaration}
+ \Macro{DeclareNewTOC}\OParameter{options}\Parameter{extension}
+\end{Declaration}
+This command declares\ChangedAt{v3.06}{\Package{tocbasic}} a new content list,
+its heading, and the description of the entries controlled by
+\Package{tocbasic} all in a single step. Optionally, you can also define
+floating and non-floating environments at the same time. Inside of both such
+environments, \DescRef{maincls.cmd.caption}%
+\important{\DescRef{maincls.cmd.caption}}\IndexCmd{caption} creates entries
+for this new content list. You can also use the \KOMAScript{} extensions
+\DescRef{maincls.cmd.captionabove}\important[i]{%
+ \DescRef{maincls.cmd.captionabove}\\
+ \DescRef{maincls.cmd.captionbelow}}, \DescRef{maincls.cmd.captionbelow}, and
+\DescRef{maincls.env.captionbeside} (see \autoref{sec:maincls.floats}).
+
+The \PName{extension} argument is the file extension of the TOC file that
+represents the content list, as explained in \autoref{sec:tocbasic.basics}.
+This argument is mandatory and must not be empty!
+
+The \PName{options} argument is a comma-separated list, of the same type as,
+for example, \DescRef{maincls.cmd.KOMAoptions} (see
+\autoref{sec:typearea.options}). However\textnote{Attention!}, those options
+cannot be set using \DescRef{maincls.cmd.KOMAoptions}\IndexCmd{KOMAoptions}!
+You can find an overview of all available options in
+\autoref{tab:tocbasic.DeclareNewTOC-options}.
+
+If\ChangedAt[2015/12]{v3.20}{\Package{tocbasic}} the \Option{tocentrystyle}
+option is not used, the \PValue{default} style will be used if required. For
+information about this style, see \autoref{sec:tocbasic.tocstyle}. If you do
+not want to define a command for entries to the content list, you can use an
+empty argument, i.\,e. \OptionValue{tocentrystyle}{} or
+\OptionValue{tocentrystyle}{\PParameter{}}.
+
+Depending\ChangedAt[2015/12]{v3.20}{\Package{tocbasic}}%
+\ChangedAt[2016/06]{v3.21}{\Package{tocbasic}} on the style of the entries to
+the content list, you can set all valid attributes of the selected style as
+part of the \PName{options}. To do so, you must add the prefix
+\PValue{tocentry} to the names of the attributes given in
+\autoref{tab:tocbasic.tocstyle.attributes}, starting on
+\autopageref{tab:tocbasic.tocstyle.attributes}. You can make later changes to
+the style of the entries at any time using
+\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}%
+\IndexCmd{DeclareTOCStyleEntry}%
+\important{\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}}. See
+\autoref{sec:tocbasic.tocstyle},
+\DescPageRef{\LabelBase.cmd.DeclareTOCStyleEntry} for more information about
+the styles.%
+%
+\begin{desclist}
+ \renewcommand*{\abovecaptionskipcorrection}{-\normalbaselineskip}%
+ \desccaption[{Options for command \Macro{DeclareNewTOC}}]{%
+ Options for the
+ \Macro{DeclareNewTOC}\ChangedAt{v3.06}{\Package{tocbasic}} command%
+ \label{tab:tocbasic.DeclareNewTOC-options}%
+ }{%
+ Options for the \Macro{DeclareNewTOC} command (\emph{continued})%
+ }%
+ \entry{\OptionVName{atbegin}{commands}%
+ \ChangedAt{v3.09}{\Package{tocbasic}}}{%
+ The \PName{commands} will be executed at the begin of the floating or
+ non-floating environment.%
+ }%
+ \entry{\OptionVName{atend}{commands}%
+ \ChangedAt{v3.09}{\Package{tocbasic}}}{%
+ The \PName{commands} will be executed at the end of the floating or
+ non-floating environment.%
+ }%
+ \entry{\OptionVName{counterwithin}{\LaTeX{} counter}}{%
+ If you define a new floating or non-floating environment, a new counter
+ \Counter{\PName{type}} will be created as well (see option
+ \Option{type}). You can make this counter depenent another \LaTeX{}
+ counter in the same way, for example, that the \Counter{figure} counter in
+ the \Class{book} classes is dependent on the \Counter{chapter} counter.%
+ }%
+ \entry{\Option{float}}{%
+ If set, defines a new content list and a floating environment, both named
+ \PName{type}, and an environment for double-column floats named
+ \PName{type*}.%
+ }%
+ \entry{\OptionVName{floatpos}{float positions}}{%
+ Each floating environment has default \PName{float positions} that can be
+ changed through the optional argument of the floating environment. The
+ syntax and semantics are identical to those of the standard floating
+ environments. If the option is not used, the default \PName{float
+ positions} are ``\texttt{tbp}'', that is \emph{top}, \emph{bottom},
+ \emph{page}.%
+ }%
+ \entry{\OptionVName{floattype}{number}}{%
+ Each floating environment has a \PName{number}. Floating environments
+ where only different bits are set can be moved past each other. The
+ floating environments \Environment{figure} and \Environment{table} usually
+ have the types 1 and 2, so they can move past each other. The numerical
+ float type can be between 1 and 31. If common bits are set, the float
+ types cannot be reordred. If no float type is given, the greatest possible
+ one-bit type, 16, will be used.%
+ }%
+ \entry{\Option{forcenames}}{%
+ If set, the names will be defined even if they were already defined
+ before.%
+ }%
+ \entry{\OptionVName{hang}{length}}{%
+ \ChangedAt[2015/12]{v3.20}{\Package{tocbasic}}%
+ \ChangedAt[2015/12]{v3.21}{\Package{tocbasic}}%
+ This option has been deprecated since \KOMAScript~3.20. Instead, the
+ amount of the hanging indent of entries to the content list\index{content
+ list>entry} depends on attributes of the TOC-entry style given by the
+ \Option{tocentrystyle} option. The \KOMAScript{} styles provide the
+ \PValue{numwidth} attribute. If the style used has such an attribute,
+ \Macro{DeclareNewTOC} will initialise it with a default of 1.5\Unit{em}.
+ You can easily change the \PName{value} using
+ \OptionVName{tocentrynumwidth}{value}. The \KOMAScript{} classes, for
+ example, use \OptionValue{tocentrynumwidth}{2.3em}.%
+ }%
+ \entry{\OptionVName{indent}{length}}{%
+ \ChangedAt[2015/12]{v3.20}{\Package{tocbasic}}%
+ \ChangedAt[2015/12]{v3.21}{\Package{tocbasic}}%
+ This option has been deprecated since \KOMAScript~3.20. Instead, the
+ amount that entries to the content list\index{content list>entry} are
+ indented depends on attributes of the TOC-entry style given by the
+ \Option{tocentrystyle} option. The \KOMAScript{} styles provide the
+ \PValue{indent} attribute. If the style used has such an attribute,
+ \Macro{DeclareNewTOC} will initialise it with a default of 1\Unit{em}. You
+ can easily change the \PName{value} using
+ \OptionVName{tocentryindent}{value}. The \KOMAScript{} classes for example
+ use \OptionValue{tocentrynumwidth}{1.5em}.%
+ }%
+ \entry{\OptionVName{level}{number}}{%
+ \ChangedAt[2015/12]{v3.20}{\Package{tocbasic}}%
+ \ChangedAt[2015/12]{v3.21}{\Package{tocbasic}}%
+ This option has been deprecated since \KOMAScript~3.20. Instead, the level
+ of the entries to the content list\index{content list>entry} depends on
+ attributes of the TOC-entry style given by the \Option{tocentrystyle}
+ option. Nevertheless, all styles have the \PValue{level} attrobite, and
+ \Macro{DeclareNewTOC} initialises it with a default value of 1. You can
+ easily change the \PName{value} using \OptionVName{tocentrylevel}{value}.%
+ }%
+ \entry{\OptionVName{listname}{title}}{%
+ Each content list has a heading, or title, that you can specify with this
+ option. If the option is not specified, the title will be ``List of
+ \PName{entry type}'' (see the \Option{types} option), with the first
+ character of the \PName{entry type} changed to upper case. It also defines
+ the \Macro{list\PName{entry type}name} macro with this value, which you
+ can change at any time. This macro, however, is only defined if it is not
+ already defined or if the \Option{forcenames} option is also set.%
+ }%
+ \entry{\OptionVName{name}{entry name}}{%
+ Both the optional prefix for entries in the content list and the labels in
+ floating or non-floating environments (see the \Option{float} and
+ \Option{nonfloat} options) require an \PName{entry name} for an entry to
+ the content list. If no \PName{entry name} is given, the value of the
+ \PValue{type} (see the \Option{type} option) with the first character
+ changed to upper case will be used. It also defines a \Macro{\PName{entry
+ type}name} macro with this value, which you can change at any time. This
+ macro, however, is only defined if it is not already defined or if the
+ \Option{forcenames} option is also set.%
+ }%
+ \entry{\Option{nonfloat}}{%
+ If set, defines not only a content list but also a non-floating environment,
+ \Environment{\PName{entry type}-} (see the \Option{type} option), which can
+ be used similarly to a floating environment, but which does not move from
+ the place where it is used.%
+ }%
+ \entry{\OptionVName{owner}{string}}{%
+ Every new content list has an owner in \Package{tocbasic} (see
+ \autoref{sec:tocbasic.basics}). You can specify this here. If no owner is
+ specified, the owner ``\PValue{float}'' is used. The \KOMAScript{} classes
+ use this owner for the list of figures and the list of tables.%
+ }%
+ \entry{\OptionVName{setup}{list of attributes}}{%
+ \ChangedAt{v3.25}{\Package{tocbasic}}%
+ The \PName{list of attributes} is set with
+ \DescRef{\LabelBase.cmd.setuptoc}. Note that to specify multiple
+ attributes in a comma-separated list, you must put this list between
+ braces.%
+ }%
+ \entry{\OptionVName{tocentrystyle}{TOC-entry style}}{%
+ \ChangedAt{v3.20}{\Package{tocbasic}}%
+ \PName{TOC-entry style} specifies the style that should be used for all
+ entries to the content list corresponding to the \PName{extension}. The
+ name of the entry level is given by the \Option{type} option. In addition
+ to the options in this table, all attributes of the \PName{TOC-entry
+ style} can be used as options. To do so, you have to prefix the name of
+ such an attribute with \PValue{toc}. For example, you can change the
+ numerical level of the entries using the \Option{tocentrylevel} option.
+ For more information about the styles and their attributes see
+ \autoref{sec:tocbasic.tocstyle}, starting on
+ \autopageref{sec:tocbasic.tocstyle}.%
+ }%
+ \entry{\OptionVName{tocentry\PName{style-option}}{value}}{%
+ \ChangedAt[2015/12]{v3.20}{\Package{tocbasic}}%
+ Additional options depending on the \PName{TOC-entry style} given by
+ \Option{tocentrystyle}. See \autoref{sec:tocbasic.tocstyle},
+ \autopageref{sec:tocbasic.tocstyle} for additional information about
+ TOC-entry styles. See \autoref{tab:tocbasic.tocstyle.attributes},
+ \autopageref{tab:tocbasic.tocstyle.attributes} for information about the
+ attributes of the predefined TOC-entry styles of package
+ \Package{tocbasic} that can be used as \PName{style-option}.%
+ }%
+ \entry{\OptionVName{type}{entry type}}{%
+ Sets the type of the newly declared content list. The \PName{entry type}
+ is also used as a base name for various macros and possibly environments
+ and counters. It should therefore consist only of letters. If this option
+ is not used, the file \PName{extension} from the mandatory argument will
+ be used as the \PName{entry type}.%
+ }%
+ \entry{\OptionVName{types}{string}}{%
+ In several places, the plural form of the \PName{entry type} is required.
+ If no plural is given, the value of the \PValue{entry type} with an ``s''
+ appended will be used.%
+ }%
+ \entry{\OptionVName{unset}{list of attributes}}{%
+ \ChangedAt{v3.25}{\Package{tocbasic}}%
+ The \PName{list of attributes} is unset with
+ \DescRef{\LabelBase.cmd.unsettoc}. Note that to specify a comma-separated
+ list of attributes, you must put this list between braces.%
+ }%
+\end{desclist}
+
+\begin{Example}
+ Using \Macro{DeclareNewTOC} significantly shortens the example from
+ \autoref{sec:tocbasic.example}:
+\begin{lstcode}
+ \DeclareNewTOC[%
+ type=remarkbox,%
+ types=remarkboxes,%
+ float,% define a floating environment
+ floattype=4,%
+ name=Remark,%
+ listname={List of Remarks}%
+ ]{lor}
+ \setuptoc{lor}{chapteratlist}
+\end{lstcode}
+ In addition to the \Environment{remarkbox} and \Environment{remarkbox*} environments,
+ this also defines the \Counter{remarkbox} counter; the commands \Macro{theremarkbox},
+ \Macro{remarkboxname}, and \Macro{remarkboxformat} that are used for
+ captions; the commands \Macro{listremarkboxnames} and
+ \Macro{listofremarkboxes} that are used in the list of remarks; and some
+ internal commands that depend on the file name extension \File{lor}.
+ If the package should use a default for the floating type, the
+ Option{floattype} option can be omitted. If the \Option{nonfloat} option is specified,
+ a non-floating environment, \Environment{remarkbox-}, will
+ also be defined, inside which you can use \DescRef{maincls.cmd.caption}\IndexCmd{caption}.
+ \hyperref[tab:tocbasic.comparison]{Figure~\ref*{tab:tocbasic.comparison}}
+ compares the commands, counters, and environments of the
+ example \Environment{remarkbox} environment to the commands, counters,
+ and environments of figures.%
+ \begin{table}
+ \centering
+ \caption{Comparing the example \Environment{remarkbox} environment
+ with the \Environment{figure} environment}
+ \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 \DescRef{maincls.cmd.caption}\\[1ex]
+ \Macro{theremarkbox} & \Macro{thefigure}
+ & \Option{type}, \Option{float}
+ & output command to the respective counters\\[1ex]
+ \Macro{remarkboxformat} & \DescRef{maincls.cmd.figureformat}
+ & \Option{type}, \Option{float}
+ & formatting command to the respective counters used by
+ \DescRef{maincls.cmd.caption}\\[1ex]
+ \Macro{remarkboxname} & \Macro{figurename}
+ & \Option{type}, \Option{float}, \Option{name}
+ & names used in the label of \DescRef{maincls.cmd.caption}\\[1ex]
+ \Macro{listofremarkboxes} & \DescRef{maincls.cmd.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 perpetuation\\[1ex]
+ \File{lor} & \File{lof}
+ &
+ & file name extension of the TOC file of the respective list \\
+ \bottomrule
+ \end{tabularx}
+ \end{table}
+
+ And here is a possible use of the example environment:
+\begin{lstcode}
+ \begin{remarkbox}
+ \centering
+ The same thing should always be typeset in the same way
+ and with the same appearance.
+ \caption{First Law of Typography}
+ \label{rem:typo1}
+ \end{remarkbox}
+\end{lstcode}
+ A snippet of a sample page with this environment might look like this:
+ \begin{center}\footnotesize
+ \begin{tabular}
+ {|!{\hspace{.1\linewidth}}p{.55\linewidth}!{\hspace{.1\linewidth}}|}
+ \\
+ \centering
+ The same thing should always be typeset in the same way
+ and with the same appearance.\\[\abovecaptionskip]
+ {%
+ \usekomafont{caption}\footnotesize{\usekomafont{captionlabel}%
+ Remark 1: }First Law of Typography
+ }\\
+ \end{tabular}%
+ \end{center}%
+\end{Example}
+
+Users of \Package{hyperref} should always use the \Option{listname} option.
+Otherwise they may get an error message because \Package{hyperref} usually has
+a problem with the \Macro{MakeUppercase}\IndexCmd{MakeUppercase} command that
+is needed to convert the first letter of \Option{types} to upper case.%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
+
+
+% LocalWords: Multiline multiline
diff --git a/macros/latex/contrib/koma-script/source-doc/english/typearea-experts.tex b/macros/latex/contrib/koma-script/source-doc/english/typearea-experts.tex
new file mode 100644
index 0000000000..da2679cc7d
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/typearea-experts.tex
@@ -0,0 +1,269 @@
+% ======================================================================
+% typearea-experts.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% typearea-experts.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 typearea for experts of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber typearea fuer Experten in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{typearea-experts.tex}
+ [$Date: 2018-03-30 11:57:25 +0200 (Fri, 30 Mar 2018) $
+ KOMA-Script guide (chapter: typearea)]
+\translator{Markus Kohm\and Gernot Hassenpflug\and Karl Hagen}
+
+% Date of the translated German file: 2018-01-31
+
+\chapter{Additional Information about the \Package{typearea} package}
+\labelbase{typearea-experts}
+\BeginIndexGroup
+\BeginIndex{Package}{typearea}
+
+This chapter provides additional information about the \Package{typearea}
+package. \iffree{Some parts of the chapter are found only in the German
+ \KOMAScript{} book \cite{book:komascript}. This should not be a problem,
+ because the}{The} average user, who only wants to use the package, will not
+normally need this information. Part of this material is intended for users
+who want to solve unusual problems or write their own packages using
+\Package{typearea}. Another part covers \Package{typearea} features that exist
+only for compatibility with earlier versions of \KOMAScript{} or with the
+standard classes. The features that exist only for compatibility with earlier
+versions of \KOMAScript{} are printed in a sans serif font. You should not use
+them any longer.
+
+
+\section{Experimental Features}
+\seclabel{experimental}
+
+This section describes experimental features. Experimental, in this context,
+means that correct functioning cannot be guaranteed. There can be two reasons
+for designating something experimental. First, the final function is not yet
+defined or its implementation is not yet finalised. Second, a feature may
+depend on internal functions of other packages and therefore the feature can
+not be guaranteed, if the other packages change.
+
+\begin{Declaration}
+ \OptionVName{usegeometry}{simple switch}
+\end{Declaration}
+Usually \Package{typearea} does not care much if you use it with the
+\Package{geometry}\IndexPackage{geometry} package (see
+\cite{package:geometry}) in any configuration. In particular, this means that
+\Package{geometry} does not recognise any changes to the page parameters done
+with \Package{typearea}, for example when it changes the paper size\,---\,a
+feature not provided by \Package{geometry} itself.
+
+Once\ChangedAt{v3.17}{\Package{typearea}} you set option \Option{usegeometry},
+\Package{typearea} tries to translate all of its options into options of
+\Package{geometry}. If you activate new parameters inside the document,
+\Package{typearea} even calls \Macro{newgeometry} (see
+\DescRef{\LabelBase.cmd.activateareas} in the following section). Since
+\Package{geometry} does not support changes of paper size or page orientation
+with \Macro{newgeometry}, \Package{typearea} uses internal commands and
+\Package{geometry} lengths to provide such changes as needed. This has been
+tested with \Package{geometry}~5.3 through 5.6.
+
+Note that using \Package{geometry} and changing page size or orientation with
+\Package{typearea} does not mean that \Package{geometry} will automatically
+use the new paper size in an expected manner. For convenience,
+\Package{geometry} provides far more options to adjust the page than are
+required to determine the type area, margins, header, footer, etc.\,---\,this
+is called \emph{overdetermination}\,---\, and at the same time
+\Macro{newgeometry} derives missing information from the known
+values\,---\,known as \emph{value preservation}\,---\,so you often must
+explicitly specify all new values completely when you call \Macro{newgeometry}
+on your own. Nevertheless, when \Package{typearea} takes \Package{geometry}
+into consideration, it opens up additional possibilities.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{areasetadvanced}{simple switch}
+ \Macro{areaset}\OParameter{BCOR}\Parameter{width}\Parameter{height}
+\end{Declaration}
+Usually, \DescRef{typearea.cmd.areaset} does not handle options to define the
+height of the header or footer, or whether margin elements should count as
+part of the type area in the same way as \DescRef{typearea.cmd.typearea}. With
+the \Option{areasetadvanced}\ChangedAt{v3.11}{\Package{typearea}} option, you
+can make \DescRef{typearea.cmd.areaset} behave more like
+\DescRef{typearea.cmd.typearea} in this regard. Nevertheless, settings for the
+two commands that result in type areas of equal size still can differ because
+\DescRef{typearea.cmd.typearea} always adjusts the type area so that it
+contains an integer number of lines, potentially making the bottom margin up
+to one line smaller, whereas \DescRef{typearea.cmd.areaset} always sets the
+ratio between the top and bottom margins at 1:2. The type area can therefore
+be slightly shifted vertically depending on which command was used.%
+\EndIndexGroup
+
+
+\section{Expert Commands}
+\seclabel{experts}
+
+This section describes commands that are of little or no interest to average
+users. These commands give experts additional possibilities. Because this
+information is addressed to experts, it appears in condensed form.
+
+\begin{Declaration}
+ \Macro{activateareas}
+\end{Declaration}%
+The \Package{typearea} package uses this command convert the settings for the
+type area and margins to internal \LaTeX{} lengths whenever the type area has
+been recalculated inside of the document, that is after
+\Macro{begin}\PParameter{document}. If the \DescRef{typearea.option.pagesize}
+option has been used, it will be executed again with the same value. Thus, for
+example, the page size may actually vary within PDF documents.
+
+Experts can also use this command if they have manually changed lengths like
+\Length{textwidth} or \Length{textheight} inside a document for any reason. If
+you do so, however, you are responsible for any necessary page breaks before
+or after you call \Macro{activateareas}. Moreover, all changes made by
+\Macro{activateareas} are local.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{storeareas}\Parameter{\textMacro{command}}%
+ \Macro{BeforeRestoreareas}\Parameter{code}%
+ \Macro{BeforeRestoreareas*}\Parameter{code}%
+ \Macro{AfterRestoreareas}\Parameter{code}%
+ \Macro{AfterRestoreareas*}\Parameter{code}
+\end{Declaration}
+\Macro{storeareas} defines a \PName{\Macro{command}} which you can use to
+restore all current type-area settings. So you can save the current settings,
+change them, and then restore the previous settings afterwards.
+
+\begin{Example}
+ You want a landscape page inside a document with portrait format. That's
+ no problem using \Macro{storeareas}:
+\begin{lstcode}
+ \documentclass[pagesize]{scrartcl}
+
+ \begin{document}
+ \noindent\rule{\textwidth}{\textheight}
+
+ \storeareas\MySavedValues
+ \KOMAoptions{paper=landscape,DIV=current}
+ \noindent\rule{\textwidth}{\textheight}
+
+ \clearpage
+ \MySavedValues
+ \noindent\rule{\textwidth}{\textheight}
+ \end{document}
+\end{lstcode}
+ It's\textnote{Attention} important to call \DescRef{maincls.cmd.clearpage}
+ before \Macro{MySavedValues} so that the saved values are restored on the
+ next page. With two-sided documents, changes to the paper format should even
+ use \DescRef{maincls.cmd.cleardoubleoddpage}\IndexCmd{cleardoubleoddpage}
+ or\,---\,if you are not using a \KOMAScript{}
+ class\,---\,\DescRef{maincls.cmd.cleardoublepage}%
+ \IndexCmd{cleardoublepage}.%
+ \iffree{\par In addition, \Macro{noindent} is used to avoid paragraph
+ indents of the black boxes. Otherwise, you would not produce a correct
+ image of the type area.}{}%
+\end{Example}
+
+Note\textnote{Attention!} that neither \Macro{storeareas} nor the defined
+\PName{\Macro{command}} defined with it should be used inside a group.
+Internally,
+\Macro{newcommand}\IndexCmd{newcommand*}\important{\Macro{newcommand*}} is
+used to define the \PName{\Macro{command}}. So reusing a
+\PName{\Macro{command}} to store settings again would result in a
+corresponding error message.
+
+Often\ChangedAt{v3.18}{\Package{typearea}}, it is useful to automatically
+execute commands like \DescRef{maincls.cmd.cleardoubleoddpage} before
+restoring the settings of a \Macro{command} generated by \Macro{storeareas}.
+You can do so using \Macro{BeforeRestoreareas} or \Macro{BeforeRestoreareas*}.
+Similarly, you can use \Macro{AfterRestoreareas} or \Macro{AfterRestoreareas*}
+to automatically execute \PName{code} after restoring the settings. The
+variants with and without the star differ in that the starred variant only
+applies the \PName{code} to future \PName{command}s generated by
+\Macro{storeareas}, whereas the regular variant also adds the \PName{code} to
+previously defined \PName{command}s.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AfterCalculatingTypearea}\Parameter{code}%
+ \Macro{AfterCalculatingTypearea*}\Parameter{code}%
+ \Macro{AfterSettingArea}\Parameter{cod}%
+ \Macro{AfterSettingArea*}\Parameter{code}
+\end{Declaration}%
+These commands serve to manage two hooks\Index{hook}. The first two,
+\Macro{AfterCalculatingTypearea} and its starred variant let experts execute
+\PName{code} each time \Package{typearea} recalculates the type area and
+margins, that is after every implicitly or explicit invocation of
+\DescRef{typearea.cmd.typearea}. Similarly,
+\Macro{AfterSettingArea}\ChangedAt{v3.11}{\Package{typearea}} and its starred
+variant allow for executing \PName{code} every time
+\DescRef{typearea.cmd.areaset} has been used. The normal versions have a
+global scope, while changes made in the starred versions are only local. The
+\PName{code} is executed immediately before \Macro{activateareas}.\iffree{}{
+ In \autoref{cha:modernletters}, The letter-class-option file
+ \File{asymTypB.lco} uses it to change the distribution of the margins.}%
+%
+\EndIndexGroup
+
+
+\section{Local Settings with the \File{typearea.cfg} File}
+\seclabel{cfg}
+\BeginIndexGroup
+\BeginIndex{File}{typearea.cfg}
+
+\LoadNonFree{typearea-experts}{0}
+%
+\EndIndexGroup
+
+\section{More or Less Obsolete Options and Commands}
+\seclabel{obsolete}
+\LoadNonFree{typearea-experts}{1}
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% ispell-local-dictionary: "english"
+%%% coding: us-ascii
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/english/typearea.tex b/macros/latex/contrib/koma-script/source-doc/english/typearea.tex
new file mode 100644
index 0000000000..1985498be3
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/english/typearea.tex
@@ -0,0 +1,1807 @@
+% ======================================================================
+% typearea.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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.
+% ----------------------------------------------------------------------
+% typearea.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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 typearea of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber typearea in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{typearea.tex}%
+ [$Date: 2019-01-15 08:29:44 +0100 (Tue, 15 Jan 2019) $
+ KOMA-Script guide (chapter: typearea)]
+\translator{Markus Kohm\and Gernot Hassenpflug\and Krickette Murabayashi\and
+ Karl Hagen}
+
+% Date of the translated German file: 2018-01-31
+
+\chapter{Calculating the Page Layout with \Package{typearea}}
+\labelbase{typearea}
+
+\BeginIndexGroup%
+\BeginIndex{Package}{typearea}%
+Many {\LaTeX} classes\iffree{, including the standard classes,}{} present the
+user with a largely fixed configuration of margins and page layout. In the
+standard classes, the choice is limited to selecting a font size.
+There are separate packages, such as \Package{geometry}\IndexPackage{geometry}
+(see \cite{package:geometry}), which give the user complete control over, but
+also full responsibility for, setting the type area and margins.
+
+\KOMAScript{} takes a somewhat different approach with the \Package{typearea}
+package. Users are offered ways to adjust the design and algorithms based on
+established typographic standards, making it easier for them to make good
+choices.
+
+\iffalse% Umbruchoptimierung!!!
+ Note that the \Package{typearea} package makes use of the \Package{scrbase}
+ package. The latter is explained in the expert section of this
+ \iffree{guide}{book} in \autoref{cha:scrbase} on \autopageref{cha:scrbase}.
+ However, most of the features documented there are directed not to users but
+ to class and package authors.
+\fi
+
+\section{Fundamentals of Page Layout}
+\seclabel{basics}
+
+\begin{Explain}
+ At first glance, a single page of a book or other printed material
+ consists of the margins,
+ \iffalse% Umbruchkorrekturtext
+ \footnote{The author and the editor have considered the question as to
+ whether, since a page has only one periphery, the term should be
+ ``the margin.'' However, since \LaTeX{} logically divides this one
+ margin into several margins, which are determined separately, we
+ use the term ``the margins'' here.}%
+ \fi%
+ a header, a body of text, and a footer. More precisely, there
+ is also a space between the header area and the text
+ body, as well as between the body and the footer. The text body is
+ called, in the jargon of typographers and typesetters, the \emph{type area}.
+ The division of these areas, as well as their relations to each other and
+ to the paper, is called the \emph{page layout}.\Index[indexmain]{page layout}
+
+ Various algorithms and heuristic methods for constructing an appropriate
+ type area have been discussed in the literature%
+ \iffree{ \cite{DANTE:TK0402:MJK}}{. A short introduction to the basics may
+ be found at \autoref{cha:typeareaconstruction}}.
+ These rules are known as the ``canons of page construction.'' One approach
+ often mentioned involves diagonals and their intersections. The result is
+ that the aspect ratio of the type area corresponds to the proportions of the
+ \emph{page}. In a one-sided document,\Index{one-sided} the left and right
+ margins should have equal widths, while the ratio of the top and bottom
+ margins should be 1:2. In a two-sided document\Index{two-sided} (e.\,g. a
+ book), however, the entire inner margin (the margin at the spine) should be
+ the same size as each of the two outer margins; in other words, a single
+ page contributes only half of the inner margin.
+
+ In the previous paragraph, we mentioned and emphasised \emph{the page}. It
+ is often mistakenly thought that the format of the page is the same as the
+ format of the paper.\Index[indexmain]{page>format}%
+ \Index[indexmain]{paper>format} However, if you look at
+ a bound document, you can see that part of the paper disappears in the
+ binding\Index[indexmain]{binding} and is no longer part of the visible page.
+ For the type area, however, it is not the format of the paper which is
+ important; it is the impression of the visible page to the reader. Thus, it
+ is clear that the calculation of the type area must account for the ``lost''
+ paper in the binding and add this amount to the width of the inner margin.
+ This is called the \emph{binding correction}.\Index[indexmain]{binding
+ correction} The binding correction is therefore calculated as part of the
+ \emph{gutter}\Index[indexmain]{gutter} but not the visible inner margin.
+
+ The binding correction depends on the production process and cannot be
+ defined in general terms. It is therefore a parameter that must be redefined
+ for each project. In professional printing, this value plays only a minor
+ role, since printing is done on larger sheets of paper and then cropped to
+ the right size. The cropping is done so that the above relations for the
+ visible, two-sided page are maintained.
+
+ So now we know how the individual parts of a page relate to each other.
+ However, we do not yet know how wide and high the type area is. Once we know
+ one of these two dimensions, we can calculate all the other dimensions from
+ the paper format and the page format or the binding correction.
+ \begin{align*}
+ \Var{type~area~height}\Index{type area} : \Var{type~area~width} &=
+ \Var{page~height}\Index{page} : \Var{page~width}\\
+ \Var{top~margin}\Index{margin} : \Var{footer~margin} &=
+ \text{1} : \text{2} \\
+%
+ \Var{left~margin} : \Var{right~margin} &= \text{1} : \text{1} \\
+%
+ \Var{half~inner~margin} : \Var{outer~margin} &= \text{1} : \text{2} \\
+%
+ \Var{page~width} &=
+ \Var{paper~width}\Index{paper} -
+ \Var{binding~correction}\Index{binding correction}\\
+%
+ \Var{top~margin} + \Var{bottom~margin} &=
+ \Var{page~height} - \Var{type~area~height} \\
+%
+ \Var{left~margin} + \Var{right~margin} &=
+ \Var{page~width} - \Var{type~area~width} \\
+%
+ \Var{half~inner~margin} + \Var{outer~margin} &=
+ \Var{page~width} - \Var{type~area~width} \\
+%
+ \Var{half~inner~margin} + \Var{binding~correction} &=
+ \Var{gutter}\Index{gutter}
+ \end{align*}
+ \Index[indexmain]{margin}%
+ The values \Var{left~margin} and \Var{right~margin} only exist in a
+ one-sided document while \Var{half~inner~margin} and \Var{outer~margin} only
+ exist in a two-sided document. We use \Var{half~inner~margin} in these
+ equations, since the full inner margin is an element of the whole two-page
+ spread. Thus, only half of the inner margin, \Var{half~inner~margin},
+ belongs to a single page.
+
+ The question of the width of the type area is also discussed in the
+ literature. The optimum width depends on several factors:
+ \begin{itemize}
+ \item the size, width, and type of font used,
+ \item the line spacing,
+ \item the word length,
+ \item the available space.
+ \end{itemize}
+ The importance of the font becomes clear once you realize what serifs are
+ for. Serifs\Index[indexmain]{serifs} are small strokes that finish off the
+ lines of letters. Letters with vertical lines touching the text baseline
+ disturb the flow rather than keeping the eye on the line. It is precisely
+ with these letters that the serifs lie horizontally on the baseline and thus
+ enhance the horizontal effect of the font. The eye can better follow the
+ line of text, not only when reading the words but also when jumping back to
+ the beginning of the next line. Thus, the line length can actually be
+ slightly longer for a serif font than for a sans serif font.
+
+ Leading\Index[indexmain]{leading}\textnote{leading} refers to the vertical
+ distance between individual lines of text. In \LaTeX{}, the leading is set
+ at about 20\% of the font size. With commands like
+ \Macro{linespread}\IndexCmd{linespread}, or better, packages like
+ \Package{setspace}\IndexPackage{setspace} (see \cite{package:setspace}), you
+ can change the leading. A wider leading makes it easy for the eye to follow
+ the line. A very wide leading, however, disturbs reading because the eye has
+ to travel long distances between the lines. In addition, the reader becomes
+ uncomfortable because of the visible striped effect. The uniform grey value
+ of the page is thereby spoiled. Nevertheless, the lines can be longer with a
+ wider leading.
+
+ The literature gives different values for good line
+ lengths\Index[indexmain]{line length}, depending on the author. To some
+ extent, this is related to the author's native language. Since the eye
+ usually jumps from word to word, short words make this task easier. Across
+ all languages and fonts, a line length of 60 to 70 characters, including
+ spaces and punctuation, forms a usable compromise. This requires well-chosen
+ leading, but {\LaTeX}'s default is usually good enough. Longer line lengths
+ should only be considered for highly-developed readers who spend many hours
+ a day reading. But even then, line lengths beyond 80 characters are
+ unacceptable. In each case, the leading must be appropriately chosen. An
+ extra 5\% to 10\% is recommended as a good rule of thumb. For typefaces like
+ Palatino, which require more than 5\% leading for normal line lengths, even
+ more can be required.
+
+ Before looking at the actual construction of the page layout, there are a
+ few minor points you should know. {\LaTeX} does not start the first line in
+ the text area of a page at the upper edge of the text area but sets the
+ baseline at a defined distance from the top of the text area. Also, {\LaTeX}
+ recognizes the commands
+ \DescRef{maincls.cmd.raggedbottom}\IndexCmd{raggedbottom} and
+ \DescRef{maincls.cmd.flushbottom}\IndexCmd{flushbottom}.
+ \DescRef{maincls.cmd.raggedbottom} specifies that the last line of a page
+ should be positioned wherever it was calculated. This means that the
+ position of this line can be different on each page, up to the height of one
+ line\,---\, even more when the end of the page coincides with headings,
+ figures, tables, or the like. In two-sided documents that is usually
+ undesirable. The second command, \DescRef{maincls.cmd.flushbottom}, makes
+ sure that the last line is always at the lower edge of the text area. To
+ achieve this vertical compensation, {\LaTeX} may have to stretch vertical
+ glue beyond what is normally allowed. Paragraph skip is such a stretchable,
+ vertical glue, even when set to zero. To avoid stretching on normal pages
+ where paragraph spacing is the only stretchable glue, the height of the text
+ area should be a multiple of the height of the text line, including the
+ distance of the first line from the top of the text area.
+
+\iffalse% Umbruchkorrektur
+ This explains all the basics of the type area calculation that play a role
+ in {\KOMAScript}.
+\else
+ This concludes the fundamentals.
+\fi
+\iffalse% Umbruchkorrektur
+ Below are two methods of construction offered by \KOMAScript{}.
+\else
+\iffalse% Umbruchkorrektur
+ Now, we can begin with the actual construction.
+\else
+ In the following two sections, the methods of construction offered by
+ {\KOMAScript} are presented in detail.
+\fi
+\fi
+\end{Explain}
+
+
+\section{Constructing the Type Area by Division}
+\seclabel{divConstruction}
+
+\begin{Explain}
+ The easiest way to make sure that the text area has the same ratio as the
+ page is as follows:
+ \begin{itemize}
+ \item First, subtract the \Var{BCOR} required for the binding
+ correction\Index{binding correction} from the inner edge of the paper, and
+ divide the rest of the page vertically into \Var{DIV} rows of equal
+ height.
+ \item Next, divide the page horizontally into the same number (\Var{DIV}) of
+ columns of equal width.
+ \item Then, take the uppermost row as the upper margin and the two lowermost
+ rows as the lower margin. If you are printing two-sided, you similarly
+ take the innermost column as the inner margin and the two outermost
+ columns as the outer margin.
+ \item Then add the binding correction \Var{BCOR} to the inner margin.
+ \end{itemize}
+ What remains within the page is the text area.\Index{text area} The width
+ and height of the text area and margins result automatically from the
+ number of rows and columns, \Var{DIV}. Since the margins always need three
+ stripes, \Var{DIV} must be greater than three. In order that the
+ text area occupy at least twice as much space as the margins, \Var{DIV}
+ should really be at least nine. With this value, the design
+ is also known as the \emph{classical nine-part division} (see
+ \autoref{fig:typearea.nineparts}).
+
+ \begin{figure}
+% \centering
+ \KOMAoption{captions}{bottombeside}%
+ \setcapindent{0pt}%
+ \setlength{\columnsep}{.6em}%
+ \begin{captionbeside}[{%
+ Two-sided layout with the box construction of the classical
+ nine-part division, after subtracting a binding correction%
+ }]{%
+ \label{fig:typearea.nineparts}%
+ \hspace{0pt plus 1ex}%
+ Two-sided layout with the box construction of the classical
+ nine-part division, after subtracting a binding correction%
+ }
+ [l]
+ \setlength{\unitlength}{.25mm}%
+ \definecolor{komalight}{gray}{.75}%
+ \definecolor{komamed}{gray}{.6}%
+ \definecolor{komadark}{gray}{.3}%
+ \begin{picture}(420,297)
+ % BCOR
+ \put(198,0){\color{komalight}\rule{24\unitlength}{297\unitlength}}
+ \multiput(198,2)(0,20){15}{\thinlines\line(0,1){10}}
+ \multiput(222,2)(0,20){15}{\thinlines\line(0,1){10}}
+ % the paper
+ \put(0,0){\thicklines\framebox(420,297){}}
+% \put(210,0){\thicklines\framebox(210,297){}}
+ % the page layout
+ \put(44,66){\color{komamed}\rule{132\unitlength}{198\unitlength}}
+ \put(244,66){\color{komamed}\rule{132\unitlength}{198\unitlength}}
+ % helper lines
+ \multiput(0,33)(0,33){8}{\thinlines\line(1,0){198}}
+ \multiput(222,33)(0,33){8}{\thinlines\line(1,0){198}}
+ \multiput(22,0)(22,0){8}{\thinlines\line(0,1){297}}
+ \multiput(244,0)(22,0){8}{\thinlines\line(0,1){297}}
+ % annotations
+ \put(198,0){\color{white}\makebox(24,297)[c]{%
+ \rotatebox[origin=c]{-90}{binding correction}}}
+ \put(44,66){\color{white}\makebox(132,198)[c]{page layout left}}
+ \put(244,66){\color{white}\makebox(132,198)[c]{page layout right}}
+ % box numbers
+ \makeatletter
+ \multiput(1,27)(0,33){9}{\footnotesize\makebox(0,0)[l]{\the\@multicnt}}
+ \multiput(177,291)(-22,0){9}{%
+ \footnotesize\makebox(0,0)[l]{\the\@multicnt}}
+ \multiput(419,27)(0,33){9}{%
+ \footnotesize\makebox(0,0)[r]{\the\@multicnt}}
+ \multiput(243,291)(22,0){8}{%
+ \footnotesize\makebox(0,0)[r]{\the\numexpr\@multicnt+1\relax}}
+ \makeatother
+ \end{picture}
+ \end{captionbeside}
+% \caption{Two-sided layout with the box construction of the classical
+% nine-part division, after subtracting a binding correction}
+% \label{fig:typearea.nineparts}
+ \end{figure}
+
+ In {\KOMAScript}, this kind of design is implemented with the
+ \Package{typearea} package, where the bottom margin may drop any fractions
+ of a line in order to comply with the constraint for the height of the type
+ area mentioned in the previous paragraph and thereby reduce the problem
+ mentioned with \Macro{flushbottom}. For A4 paper, \Var{DIV} is predefined
+ according to the font size (see \autoref{tab:typearea.div},
+ \autopageref{tab:typearea.div}). If there is no binding correction
+ (\(\Var{BCOR} = 0\Unit{pt}\)), the results roughly match the values of
+ \autoref{tab:typearea.typearea}, \autopageref{tab:typearea.typearea}.
+
+ In addition to the predefined values, you can specify \Var{BCOR} and
+ \Var{DIV} as options when loading the package (see
+ \autoref{sec:typearea.options}, starting on
+ \autopageref{sec:typearea.typearea}). There is also a command to calculate
+ the type area explicitly by providing these values as parameters (see also
+ \autoref{sec:typearea.options}, \DescPageRef{typearea.cmd.typearea}).
+
+ The \Package{typearea} package can automatically determine the optimal value
+ of \Var{DIV} for the font and leading used. Again, see
+ \autoref{sec:typearea.options}, \DescPageRef{typearea.option.DIV.calc}.
+\end{Explain}
+
+
+\section{Constructing the Type Area by Describing a Circle}
+\seclabel{circleConstruction}
+
+\begin{Explain}
+ In addition to the construction method for the type area\Index{type area}
+ described above, there is an even more traditional, or even medieval, method
+ found in the literature. The aim of this method is not just to have the same
+ ratios between page size and type area; it is considered optimal when the
+ height of the text area corresponds to the width of the page. This means
+ that a circle can be drawn that will touch both the sides of the page and
+ the top and bottom of the text area. The exact procedure can be found in
+ \cite{JTsch87}.
+
+ A disadvantage of this late-medieval canon of page construction is that the
+ width of the text area no longer depends on the font. One no longer chooses
+ the text area to match the font. Instead, the author or typesetter must
+ choose the appropriate font for the text area.
+%
+\iftrue
+% Umbruchkorrekturtext
+ This should be considered mandatory.
+\fi
+
+ In the \Package{typearea} package, this construction is modified to
+ determine the \Var{DIV} value by selecting a special (normally meaningless)
+ \Var{DIV} value or a special, symbolic indication of the \Var{DIV} value so
+ that the resulting type area comes as close as possible to the late-medieval
+ page canon. Hence it relies in turn on the method of constructing the type
+ area by division.
+%
+\iffalse
+% Umbruchkorrekturtext
+ If you choose a good font, the result often coincides with the search for
+ the optimal \Var{DIV} value. See also \autoref{sec:typearea.options},
+ \DescPageRef{typearea.option.DIV.calc}.
+%
+\fi
+\end{Explain}
+
+\LoadCommonFile{options}% \section{Early or late Selection of Options}
+
+\LoadCommonFile{compatibility}% \section{Compatibility with Earlier Versions of \KOMAScript}
+
+\section{Adjusting the Type Area and Page Layout}
+\seclabel{typearea}
+
+The \Package{typearea} package offers two different user interfaces to
+influence the construction of the type area. The most important method is to
+specify options when loading the package. For information on how to load
+packages and pass options to packages, please refer to the {\LaTeX}
+literature, for example \cite{lshort} and \cite{latex:usrguide}, or the
+examples given here. Since the \Package{typearea} package is loaded
+automatically when using the main {\KOMAScript} classes, the package options
+can be given as class options (see \autoref{sec:maincls.options}).
+
+In\textnote{Note!} this section the classes used in the examples are not
+existing {\KOMAScript} classes but hypothetical ones. This
+\iffree{guide}{book} assumes that ideally an appropriate class is available
+for each task.
+
+\begin{Declaration}
+ \OptionVName{BCOR}{correction}
+\end{Declaration}%
+Use the \OptionVName{BCOR}{correction}\ChangedAt{v3.00}{\Package{typearea}}
+option to specify the absolute value of the binding correction\Index{binding
+ correction}\textnote{binding correction}, i.\,e. the width of the area lost
+from the paper during the binding process. This value is then automatically
+taken into account when constructing the page layout and is added back to the
+inner (or left) margin during output. In the value of the \PName{correction},
+you can specify any measurement unit understood by \TeX{}.
+
+\begin{Example}
+ Suppose you create a financial report. The whole thing should be printed out
+ one-sided on A4 paper and then stapled in a binder folder. The clip of the
+ folder covers 7.5\Unit{mm}. The stack of pages is very thin, so at most
+ another 0.75\Unit{mm} will be lost from bending and the sheets themselves.
+ Therefore, you can write:
+\begin{lstcode}
+ \documentclass[a4paper]{report}
+ \usepackage[BCOR=8.25mm]{typearea}
+\end{lstcode}
+ with \OptionValue{BCOR}{8.25mm} as an option to \Package{typearea} or
+\begin{lstcode}
+ \documentclass[a4paper,BCOR=8.25mm]{report}
+ \usepackage{typearea}
+\end{lstcode}
+ when using \OptionValue{BCOR}{8.25mm} as a global option.
+
+ When using a {\KOMAScript} class, you do not need to load the
+ \Package{typearea} package explicitly:
+\begin{lstcode}
+ \documentclass[BCOR=8.25mm]{scrreprt}
+\end{lstcode}
+ You can omit the \Option{a4paper} option with \Class{scrreprt}, since this
+ is the default for all {\KOMAScript} classes.
+
+ If you want to set the option to a new value later, you can, for example,
+ use the following:
+\begin{lstcode}
+ \documentclass{scrreprt}
+ \KOMAoptions{BCOR=8.25mm}
+\end{lstcode}
+ Defaults are initialized when the \Class{scrreprt} class is loaded.
+ Changing a setting with the \DescRef{\LabelBase.cmd.KOMAoptions} or
+ \DescRef{\LabelBase.cmd.KOMAoption} commands will automatically calculate a
+ new type area with new margins.
+\end{Example}
+
+Note\textnote{Attention!} you must pass this option as a class option when
+loading one of the {\KOMAScript} classes, as in the example above, or via
+\DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}
+after loading the class. When you use a {\KOMAScript} class, you should not
+load the \Package{typearea} package explicitly with
+\DescRef{\LabelBase.cmd.usepackage}, nor should you specify it as an optional
+argument when loading the package if you are using another class. If the
+option is changed with \DescRef{\LabelBase.cmd.KOMAoptions} or
+\DescRef{\LabelBase.cmd.KOMAoption} after loading the package, the type area
+and margins are automatically recalculated.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{DIV}{factor}
+\end{Declaration}%
+The \OptionVName{DIV}{factor}\ChangedAt{v3.00}{\Package{typearea}} option
+specifies the number of strips into which the page is divided horizontally and
+vertically during the construction of the type area. The exact construction
+method is found in \autoref{sec:typearea.divConstruction}. It's important to
+realise that the 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}. Note, however, that large values can cause violations in the
+constraints on the margins of the type area, depending on how you set other
+options. In extreme cases, the header may fall outside of the page. When you
+use the \OptionVName{DIV}{factor} option, you are responsible for complying
+with the margin constraints and for choosing a typographically pleasing line
+length.
+
+In \autoref{tab:typearea.typearea}, you will find the sizes of the type areas
+for several \Var{DIV} factors for the A4 page with no binding correction. In
+this case, the other constraints that are dependent on the font size are not
+taken into account.
+
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+% \caption
+ [{Type area dimensions dependent on \Var{DIV} for A4}]
+ {\label{tab:typearea.typearea}Type area dimensions dependent on \Var{DIV}
+ for A4 regardless of \Length{topskip} or \Var{BCOR}}
+ [l]
+ \begin{tabular}[t]{ccccc}
+ \toprule
+ &
+ \multicolumn{2}{c}{Type area} & \multicolumn{2}{c}{Margins}\\
+ %\raisebox{1.5ex}[0pt]{
+ \Var{DIV}
+ %}
+ & width & height & top & inner \\
+ \midrule
+ 6 & 105.00 & 148.50 & 49.50 & 35.00 \\
+ 7 & 120.00 & 169.71 & 42.43 & 30.00 \\
+ 8 & 131.25 & 185.63 & 37.13 & 26.25 \\
+ 9 & 140.00 & 198.00 & 33.00 & 23.33 \\
+ 10 & 147.00 & 207.90 & 29.70 & 21.00 \\
+ 11 & 152.73 & 216.00 & 27.00 & 19.09 \\
+ 12 & 157.50 & 222.75 & 24.75 & 17.50 \\
+ 13 & 161.54 & 228.46 & 22.85 & 16.15 \\
+ 14 & 165.00 & 233.36 & 21.21 & 15.00 \\
+ 15 & 168.00 & 237.60 & 19.80 & 14.00 \\
+ \bottomrule
+ \multicolumn{5}{r}{\small (all lengths in mm)}
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+
+\begin{Example}
+ Suppose you are writing up the minutes of a meeting using the
+ \Class{minutes} class. The whole thing should be two-sided. Your company
+ uses 12\Unit{pt} Bookman font. This font, which is one of the standard
+ PostScript fonts, is enabled in {\LaTeX} with the command
+ \verb|\usepackage{bookman}|. Bookman is a very wide font, meaning that the
+ individual characters are relatively wide compared to their height.
+ Therefore, the default setting for \Var{DIV} in \Package{typearea} is too
+ small. After thoroughly studying this entire chapter, you conclude that a
+ value of 15, instead of 12, is most suitable. The minutes will not be bound
+ but punched and kept in a folder, and thus no binding correction is
+ necessary. So you write:
+\begin{lstcode}
+ \documentclass[a4paper,twoside]{minutes}
+ \usepackage{bookman}
+ \usepackage[DIV=15]{typearea}
+\end{lstcode}
+ When you're done, you become aware that the minutes will from now on be
+ collected and bound together as a book at the end of the quarter. The
+ binding is to be a simple glue binding because this is only being done to
+ conform to ISO\,9000 and nobody is actually going to read them. The binding,
+ including space lost in folding the pages, requires an average of
+ 12\Unit{mm} You change the options of the \Package{typearea} package
+ accordingly and use the class for minutes that conform to ISO\,9000
+ regulations:
+\begin{lstcode}
+ \documentclass[a4paper,twoside]{iso9000p}
+ \usepackage{bookman}
+ \usepackage[DIV=15,BCOR=12mm]{typearea}
+\end{lstcode}
+ Of course, it is equally possible to use a {\KOMAScript} class here:
+\begin{lstcode}
+ \documentclass[twoside,DIV=15,BCOR=12mm]{scrartcl}
+ \usepackage{bookman}
+\end{lstcode}
+ The \Option{a4paper} option can be left out when using the
+ \Class{scrartcl} class, as it is predefined in all {\KOMAScript}
+ classes.
+\end{Example}
+
+Note\textnote{Attention!} that when using this option with one of the
+{\KOMAScript} classes, as in the example above, it must be passed either as a
+class option, or via \DescRef{\LabelBase.cmd.KOMAoptions} or
+\DescRef{\LabelBase.cmd.KOMAoption} after loading the class. When using a
+{\KOMAScript} class, the \Package{typearea} package should not be loaded
+explicitly with \DescRef{\LabelBase.cmd.usepackage}, nor should the option be
+given as an optional argument thereto. If the option is changed via
+\DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}
+after loading the package, the type area and margins are automatically
+recalculated.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \OptionValue{DIV}{calc}%
+ \OptionValue{DIV}{classic}
+\end{Declaration}%
+As\ChangedAt{v3.00}{\Package{typearea}} already mentioned in
+\autoref{sec:typearea.divConstruction}, there are fixed defaults for
+\Var{DIV} when using A4 paper. These can be found in \autoref{tab:typearea.div}.
+However, such fixed values have the disadvantage that they do not take into
+account the letter spacing of the font used. With A4 and fairly narrow fonts,
+this can quickly lead to an unpleasantly high number of characters per line.
+See the considerations in \autoref{sec:typearea.basics}. If you choose a
+different paper size, \Package{typearea} will calculate an appropriate
+\Var{DIV} value for you. Of course, you can also apply this same calculation
+to A4. To do so, simply use \OptionValue{DIV}{calc}%
+\important{\OptionValue{DIV}{calc}} in place of
+\OptionVNameRef{\LabelBase}{DIV}{factor}. Of course, you can also specify this
+option explicitly for all other paper sizes. If you want automatic
+calculation, this specification is useful, as it is possible to set different
+preferences in a configuration file (see \autoref{sec:typearea-experts.cfg}).
+Explicitly specifying the \OptionValue{DIV}{calc} option overrides such
+configuration settings.
+
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ %\caption
+ [{\PName{DIV} defaults for A4}]
+ {\label{tab:typearea.div}\PName{DIV} defaults for A4}
+ [l]
+ \begin{tabular}[t]{lccc}
+ \toprule
+ base font size: & 10\Unit{pt} & 11\Unit{pt} & 12\Unit{pt} \\
+ \Var{DIV}: & 8 & 10 & 12 \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+You can also select the traditional page layout mentioned in
+\autoref{sec:typearea.circleConstruction}, the medieval page canon. Instead of
+the \OptionVName{\DescRef{\LabelBase.option.DIV}}{factor} or
+\OptionValue{DIV}{calc} option, simply use the \OptionValue{DIV}{classic}
+option. A \Var{DIV} value which is as close as possible to the medieval page
+canon is then chosen.
+
+\begin{Example}
+ In the example using the Bookman font and the
+ \OptionVNameRef{\LabelBase}{DIV}{factor} option, the problem was to select a
+ \Var{DIV} value that better matched the font. Modifying that example, you
+ can simply leave the calculation of this value to \Package{typearea}:
+\begin{lstcode}
+ \documentclass[a4paper,twoside]{protocol}
+ \usepackage{bookman}
+ \usepackage[DIV=calc]{typearea}
+\end{lstcode}
+\end{Example}
+\iffree{\par%
+ Note\textnote{Attention!} that when using this option with one of the
+ \KOMAScript{} classes%
+ \iftrue , as in the example above, \fi%
+ it must be passed either as a class option, or via
+ \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}
+ after loading the class. When using a {\KOMAScript} class, the
+ \Package{typearea} package should not be loaded explicitly with
+ \DescRef{\LabelBase.cmd.usepackage}, nor should the option be given as an
+ optional argument. If the option is changed via
+ \DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}
+ after loading the package, the type area and margins are automatically
+ recalculated.%
+}{%
+\vskip-\dp\strutbox% Wegen Code im Beispiel am Ende
+}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionValue{DIV}{current}
+ \OptionValue{DIV}{last}
+\end{Declaration}%
+If\ChangedAt{v3.00}{\Package{typearea}} you've been following the
+examples closely, you already know how to calculate a \Var{DIV} value
+based on the font you chose when using a {\KOMAScript} class together
+with a font package.
+
+\begin{Explain}
+ The difficulty with doing so is that the {\KOMAScript} class already loads
+ the \Package{typearea} package itself. Thus, it is not possible to pass
+ options as optional arguments to \DescRef{\LabelBase.cmd.usepackage}. It
+ would also be pointless to specify the \OptionValueRef{\LabelBase}{DIV}{calc}
+ option as an optional argument to \DescRef{\LabelBase.cmd.documentclass}.
+ This option would be evaluated immediately on loading the \Package{typearea}
+ package and as a result the type area and margins would be calculated for the
+ standard {\LaTeX} font and not for the font loaded later.
+
+ However, it is possible to recalculate the type area and margins after
+ loading the font with the aid of \DescRef{\LabelBase.cmd.KOMAoptions}%
+ \PParameter{\OptionValueRef{\LabelBase}{DIV}{calc}} or
+ \DescRef{\LabelBase.cmd.KOMAoption}%
+ \PParameter{\DescRef{\LabelBase.option.DIV}}\PParameter{calc}. The option
+ \PValue{calc} will then request a \Var{DIV} value for an appropriate line
+ length.
+
+ As it is often more convenient to set the \Option{DIV} option not after
+ loading the font but at a more noticeable point, such as when loading the
+ class, the \Package{typearea} package offers two further symbolic values for
+ this option.
+\end{Explain}
+
+The option \OptionVName{DIV}{current}\ChangedAt{v3.00}{\Package{typearea}}
+recalculates the type area and margins using the current \Var{DIV} value.
+This is less important for recalculating the type area after loading a
+different font. Instead, it is useful if, for example, you change the
+leading while keeping \Var{DIV} the same and want to ensure the
+margin constraint that \Length{textheight} minus \Length{topskip} is a
+multiple of \Length{baselineskip}.
+
+The option \OptionVName{DIV}{last}\ChangedAt{v3.00}{\Package{typearea}} will
+recalculate the type area and margins using exactly the same settings as the
+last calculation.
+
+\begin{Example}
+ Let's suppose again that we need to calculate an appropriate line length for
+ a type area using the Bookman font. At the same time, a {\KOMAScript} class
+ is used. This is very easy with the symbolic value \PValue{last} and the
+ command \DescRef{\LabelBase.cmd.KOMAoptions}:
+\begin{lstcode}
+ \documentclass[BCOR=12mm,DIV=calc,twoside]{scrartcl}
+ \usepackage{bookman}
+ \KOMAoptions{DIV=last}
+\end{lstcode}
+If you decide later that you need a different \Var{DIV} value, just change the
+setting of the optional argument to \DescRef{\LabelBase.cmd.documentclass}.
+\end{Example}
+
+For a summary of all possible symbolic values for the \Option{DIV} option, see
+\autoref{tab:symbolicDIV}. Note that the use of the
+\Package{fontenc}\IndexPackage{fontenc} package may also cause \LaTeX{} to
+load a different font.
+
+\begin{table}
+ \caption[{%
+ Symbolic values for the \DescRef{typearea.option.DIV} option and the
+ \PName{DIV} argument to \DescRef{\LabelBase.cmd.typearea}%
+ }]{%
+ Available symbolic values for the \DescRef{typearea.option.DIV} option or
+ the \PName{DIV} argument to
+ \DescRef{typearea.cmd.typearea}\OParameter{BCOR}\Parameter{DIV}%
+ }
+ \label{tab:symbolicDIV}
+ \begin{desctabular}
+ \pventry{areaset}{Recalculate page
+ layout.\IndexOption{DIV~=\textKValue{areaset}}}%
+ \pventry{calc}{Recalculate type area including choice of appropriate
+ \Var{DIV} value.\IndexOption{DIV~=\textKValue{calc}}}%
+ \pventry{classic}{Recalculate type area using medieval book design canon
+ (circle-based calculation).\IndexOption{DIV~=\textKValue{classic}}}%
+ \pventry{current}{Recalculate type area using current \Var{DIV}
+ value.\IndexOption{DIV~=\textKValue{current}}}%
+ \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~=\textKValue{default}}}%
+ \pventry{last}{Recalculate type area using the same \PName{DIV} argument
+ as was used in the last call.\IndexOption{DIV~=\textKValue{last}}}%
+ \end{desctabular}
+\end{table}
+
+Frequently\textnote{Attention!}, the type area must be recalculated in
+combination with a change in the line spacing (\emph{leading})\Index{leading}.
+Since the type area should be calculated in such a way that a whole number of
+lines fits in the text block, a change in the leading normally requires a
+recalculation of the type area.
+
+\begin{Example}
+ Suppose that you require a 10\Unit{pt} font and a spacing of 1.5 lines for a
+ dissertation. By default, {\LaTeX} sets the leading for 10\Unit{pt} fonts at
+ 2\Unit{pt}, in other words 1.2 lines. Therefore, you must use an additional
+ stretch factor of 1.25. Suppose also that you need a binding correction of
+ \(12\Unit{mm}\). Then the solution to the problem might look like this:
+\begin{lstcode}
+ \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt}
+ \linespread{1.25}
+ \KOMAoptions{DIV=last}
+\end{lstcode}\IndexCmd{linespread}
+ Since \Package{typearea} always executes the \Macro{normalsize} command
+ itself when calculating a new type area, it is not strictly necessary to
+ set the chosen leading with \Macro{selectfont} after \Macro{linespread},
+ since this will already be done in the recalculation.
+
+ When using the \Package{setspace}\IndexPackage{setspace}%
+ \important{\Package{setspace}} package (see \cite{package:setspace}), the
+ same example would appear as follows:
+\begin{lstcode}
+ \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt}
+ \usepackage[onehalfspacing]{setspace}
+ \KOMAoptions{DIV=last}
+\end{lstcode}
+\end{Example}
+
+As\textnote{Hint!} you can see from the example, the \Package{setspace}
+package saves you from needing to know the correct stretch value. However,
+this only applies to the standard font sizes 10\Unit{pt}, 11\Unit{pt}, and
+12\Unit{pt}. For all other font sizes, the package uses an approximate value.
+
+At\textnote{Attention!} this point, note that the line spacing for the title
+page should be reset to the normal value, and the indexes should be set with
+the normal line spacing as well.
+\begin{Example}
+ Here\IndexPackage{setspace} is a complete example:
+\begin{lstcode}
+ \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
+ \end{spacing}
+ \tableofcontents
+ \chapter{Ok}
+ \end{document}
+\end{lstcode}
+ Also see the notes in \autoref{sec:typearea.tips}. The
+ \DescRef{tocbasic.cmd.AfterTOCHead}\IndexCmd{AfterTOCHead} command is
+ described in \autoref{cha:tocbasic} of \autoref{part:forExperts} on
+ \DescPageRef{tocbasic.cmd.AfterTOCHead}.
+\end{Example}
+Note also that changing the line spacing can also affect the page's header and
+footer. For example, if you are using the \Package{scrlayer-scrpage} package,
+you have to decide for yourself whether you prefer to have the normal or the
+changed leading. See the \DescRef{scrlayer.option.singlespacing} option in
+\autoref{cha:scrlayer}\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}}%
+\IndexPackage{scrlayer}\IndexOption{singlespacing},
+\DescPageRef{scrlayer.option.singlespacing}.
+
+Note\textnote{Attention!} that when using this option with one of the
+{\KOMAScript} classes, as in the example above, it must be passed either as a
+class option, or via \DescRef{\LabelBase.cmd.KOMAoptions} or
+\DescRef{\LabelBase.cmd.KOMAoption} after loading the class. When using a
+{\KOMAScript} class, the \Package{typearea} package should not be loaded
+explicitly with \DescRef{\LabelBase.cmd.usepackage}, nor should the option be
+given as an optional argument thereto. If the option is changed via
+\DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}
+after loading the package, the type area and margins are automatically
+recalculated.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}%
+ \Macro{recalctypearea}
+\end{Declaration}%
+\begin{Explain}
+ If the \DescRef{\LabelBase.option.DIV} option or the
+ \DescRef{\LabelBase.option.BCOR} option is set after loading the
+ \Package{typearea} package, the \Macro{typearea} command will be called
+ internally. When setting the \DescRef{\LabelBase.option.DIV} option, the
+ symbolic value \PValue{current} is used internally for \PName{BCOR}, which
+ for reasons of completeness is also found in \autoref{tab:symbolicBCOR}.
+ When setting the \DescRef{\LabelBase.option.BCOR} option, the symbolic value
+ \PValue{last} is used internally for \PName{DIV}. If instead you want the
+ type area and margins to be recalculated using the symbolic value
+ \PValue{current} for \PName{DIV}, you can use
+ \Macro{typearea}\POParameter{current}\PParameter{current} directly.
+\end{Explain}
+
+\begin{table}
+ \caption[{%
+ Symbolic \PName{BCOR} arguments for \DescRef{typearea.cmd.typearea}%
+ }]{%
+ Available symbolic \PName{BCOR} arguments for
+ \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}%
+ }
+ \label{tab:symbolicBCOR}
+ \begin{desctabular}
+ \pventry{current}{Recalculate type area with the currently valid
+ \Var{BCOR} value.\IndexOption{BCOR~=\textKValue{current}}}
+ \end{desctabular}
+\end{table}
+
+If you change both \PName{BCOR} and \PName{DIV}, you should use
+\Macro{typearea}, since then the type area and margins are recalculated only
+once. With \DescRef{\LabelBase.cmd.KOMAoptions}%
+\PParameter{\OptionVNameRef{\LabelBase}{DIV}{factor},%
+ \OptionVNameRef{\LabelBase}{BCOR}{correction}} the type area and margins are
+recalculated once for the change to \DescRef{\LabelBase.option.DIV} and again
+for the change to \DescRef{\LabelBase.option.BCOR}.
+
+\begin{Explain}
+ The command \Macro{typearea} is currently defined so as to make it possible
+ to change the type area in the middle of a document. However, several
+ assumptions about the structure of the {\LaTeX} kernel are made, and
+ internal definitions and sizes of the kernel are changed. Since changes are
+ only made to the {\LaTeX} kernel to fix bugs, there is a high likelihood,
+ though no guarantee, that this will still work in future versions of
+ \LaTeXe{}. When used within the document, a page break will result.
+\end{Explain}
+
+Since\important{\Macro{recalctypearea}} \DescRef{\LabelBase.cmd.KOMAoption}%
+\PParameter{\hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}}}%
+\PParameter{\hyperref[desc:\LabelBase.option.DIV.last]{last}},
+\DescRef{\LabelBase.cmd.KOMAoptions}%
+\PParameter{\OptionValueRef{\LabelBase}{DIV}{last}}, or
+\Macro{typearea}\POParameter{current}\PParameter{last} is frequently needed
+to recalculate the type area and margins, there is a convenience command,
+\Macro{recalctypearea}\ChangedAt{v3.00}{\Package{typearea}}.
+\begin{Example}
+ If you find the notation
+\begin{lstcode}
+ \KOMAoptions{DIV=last}
+\end{lstcode}
+ or
+\begin{lstcode}
+ \typearea[current]{last}
+\end{lstcode}
+ too cumbersome for recalculating text area and margins because of
+ the many special characters, you can simply use
+\begin{lstcode}
+ \recalctypearea
+\end{lstcode}
+\end{Example}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{twoside}{simple switch}%
+ \OptionValue{twoside}{semi}
+\end{Declaration}%
+As explained in \autoref{sec:typearea.basics}, the distribution of the margins
+depends on whether the document is to be printed one-sided or two-sided. For
+one-sided printing, the left and right margins are the same width, whereas for
+two-sided printing the inner margin of one page is only half as wide as the
+corresponding outer margin. To invoke two-sided printing, you must give the
+\Package{typearea} package the \Option{twoside} option. For the
+\PName{simple switch}, you can use any of the standard values for
+simple switches in \autoref{tab:truefalseswitch}. If the option is passed
+without a value, the value \PValue{true} is assumed, so two-sided printing is
+enabled. Deactivating the option leads to one-sided printing.
+
+\begin{table}
+ \centering
+ \caption{Standard values for simple switches in \KOMAScript}
+ \begin{tabular}{ll}
+ \toprule
+ Value & Description \\
+ \midrule
+ \PValue{true} & activates the option \\
+ \PValue{on} & activates the option \\
+ \PValue{yes} & activates the option \\
+ \PValue{false}& deactivates the option \\
+ \PValue{off} & deactivates the option \\
+ \PValue{no} & deactivates the option \\
+ \bottomrule
+ \end{tabular}
+ \label{tab:truefalseswitch}
+\end{table}
+
+In addition to the values in \autoref{tab:truefalseswitch}, you can also use
+the value \PValue{semi}\ChangedAt{v3.00}{\Package{typearea}}. This value
+results in two-sided printing with one-sided margins and one-sided, that is
+non-alternating, marginal notes.
+Beginning\ChangedAt{v3.12}{\Package{typearea}} with \KOMAScript{} version
+3.12, binding corrections (see \DescRef{\LabelBase.option.BCOR},
+\DescPageRef{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 switch on
+compatibility with a prior
+version\important{\OptionValueRef{\LabelBase}{version}{3.12}} of \KOMAScript{}
+(see \autoref{sec:typearea.compatibilityOptions},
+\autopageref{sec:typearea.compatibilityOptions}), the 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
+\DescRef{\LabelBase.cmd.documentclass}, as a package option with
+\DescRef{\LabelBase.cmd.usepackage}, or even after loading
+\Package{typearea} with \DescRef{\LabelBase.cmd.KOMAoptions} or
+\DescRef{\LabelBase.cmd.KOMAoption}. Using this option after loading
+\Package{typearea} automatically\textnote{automatic recalculation} results in
+the recalculation of the type area using
+\DescRef{\LabelBase.cmd.recalctypearea} (see
+\DescPageRef{typearea.cmd.recalctypearea}). If the two-sided mode was active
+before the option was set, a page break is made to the next odd page before
+the recalculation.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{twocolumn}{simple switch}
+\end{Declaration}
+To compute an appropriate type area with the help of
+\OptionValueRef{\LabelBase}{DIV}{calc}, it is useful to know in advance if the
+document is to be typeset in one or two columns. Since the considerations
+about line length in \autoref{sec:typearea.basics} apply to each column, the
+type area in two-column documents can be up to twice as wide as in one-column
+documents.
+
+To make this distinction, you must tell \Package{typearea} if the document is
+to be set with two columns using the \Option{twocolumn} option. Since this is
+a \PName{simple switch}, any of the standard values for simple switches
+from \autoref{tab:truefalseswitch} are valid. If the option is passed without
+a value, the value \PValue{true}\important{\OptionValue{twocolumn}{true}} is
+used, i.\,e. the two-column setting. Deactivating the option returns you to
+the default one-column setting.
+
+The option can also be passed as a class option in
+\DescRef{\LabelBase.cmd.documentclass}, as a package option to
+\DescRef{\LabelBase.cmd.usepackage}, or even after loading \Package{typearea}
+with \DescRef{\LabelBase.cmd.KOMAoptions} or
+\DescRef{\LabelBase.cmd.KOMAoption}. Using this option after loading
+\Package{typearea} will\textnote{automatic recalculation} automatically
+recalculate the type area using \DescRef{\LabelBase.cmd.recalctypearea} (see
+\DescPageRef{typearea.cmd.recalctypearea}).%
+%
+\EndIndexGroup
+
+\begin{Declaration}
+ \OptionVName{headinclude}{simple switch}%
+ \OptionVName{footinclude}{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 margins\Index{margins} to one another and
+ between margins and body of the text. But one important question has not
+ been answered: What exactly are \emph{the margins}?
+
+ At first glance the question appears trivial: Margins are those parts on the
+ right, left, top, and bottom of the page which remain empty. But this is
+ only half the story. Margins are not always empty. Sometimes there can be
+ marginal notes, for example (see the \DescRef{maincls.cmd.marginpar} command
+ in \cite{lshort} or \autoref{sec:maincls.marginNotes}).
+
+ For the top and bottom margins, the question becomes how to handle
+ headers\Index{page header} and footers\Index{page footer}. Do these two
+ belong to the text body or to their respective margins? This question is not
+ easy to answer. Clearly an empty footer or header belongs to the margins,
+ since it cannot be distinguished from the rest of the margins. A footer that
+ contains only the
+ pagination\Index[indexmain]{pagination}\textnote{pagination} %
+ \iffalse %
+ \unskip\footnote{Pagination refers to the indication of the page number,
+ either inside or outside the type area, and usually appears in either the
+ header or the footer of the page.} %
+ \fi %
+ looks more like a margin and should therefore be counted as such. It is
+ irrelevant for the visual effect whether headers or footers are easily
+ recognized as such when reading or skimming. The decisive factor is how a
+ well-filled page appears when viewed \emph{out of focus}. For this purpose,
+ you could, for example, steal the glasses of a far-sighted grandparent and
+ hold the page about half a meter from the tip of your nose. If you lack an
+ available grandparent, you can also adjust your vision to infinity and look
+ at the page with one eye only. Those who wear glasses have a clear advantage
+ here. If the footer contains not only the pagination but also other material
+ like a copyright notice, it looks more like a slightly detached part of the
+ body of the text. This needs to be taken into account when calculating the
+ type area.
+
+ For the header, this is even more complicated. The header often contains
+ running heads\Index[indexmain]{running heads}\textnote{running heads}. %
+ \iffalse%
+ \unskip\footnote{Running heads refer to the repetition of a title, in
+ titling font, which usually appears in the page header, or rarely in the
+ page footer.} %
+ \fi If you use the current chapter and section titles in your running head
+ and these titles are long, the header itself will necessarily be very
+ long. In this case, the header again acts like a detached part of the text
+ body and less like an empty margin. This effect is reinforced if the header
+ contains not only the chapter or section title but also the pagination. With
+ material on the right and left side, the header no longer appears as an
+ empty margin. It is more difficult if the pagination is in the footer and
+ the length of the running titles varies, so that the header may look like
+ part of the margin on one page and part of the text body on another. Under
+ no circumstances should you treat the pages differently. That would lead to
+ vertically jumping headers, which is not suitable even for a flip book. In
+ this case it is probably best to count the header as part of the text body.
+
+ The decision is easy when the header or footer is separated from the actual
+ text body by a line. This will give a ``closed'' appearance and the header
+ or footer should be calculated as part of the text body. Remember: It is
+ irrelevant that the line improves the optical separation of text and header
+ or footer; only the appearance when viewed out of focus is important.
+\end{Explain}
+
+The \Package{typearea} package cannot determine on its own whether
+to count headers and footers\important{\OptionValue{headinclude}{true}
+ \OptionValue{headinclude}{false} \OptionValue{footinclude}{true}
+ \OptionValue{footinclude}{false}} as part of the text body or the
+margin. The \Option{headinclude} and \Option{footinclude} options cause
+the header or footer to be counted as part of the text. These
+options, being \PName{simple switch}es\ChangedAt{v3.00}{\Package{typearea}},
+accept the standard values for simple switches in
+\autoref{tab:truefalseswitch}. You can use the options without
+specifying a value, in which case the value \PValue{true} is used for
+the \PName{simple}, i.\,e. the header or footer is counted as part of
+the text.
+
+If you are unsure what the correct setting should be, reread the explanations
+above. The default is usually \OptionValue{headinclude}{false} and
+\OptionValue{footinclude}{false}, but this can change in the {\KOMAScript}
+classes or in other {\KOMAScript} packages depending on the options used (see
+\autoref{sec:maincls.options} and \autoref{cha:scrlayer-scrpage}).
+
+Note\textnote{Attention!} that these options must be passed as class options
+when using one of the {\KOMAScript} classes, or after loading the class with
+\DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}.
+Changing these options after loading the \Package{typearea} package does not
+automatically recalculate the type area. Instead, the changes only take effect
+the next time the type area is recalculated. For recalculation of the type
+area, see the \hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} option
+with the values \hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} or
+\hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (see
+\DescPageRef{typearea.option.DIV.last}) or the
+\DescRef{\LabelBase.cmd.recalctypearea} command (see
+\DescPageRef{typearea.cmd.recalctypearea}).%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{mpinclude}{simple switch}
+\end{Declaration}
+In addition to\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} documents where the header and footer are more likely to
+be part of the text body than the margins, there are also documents where
+marginal notes should be considered part of the text body as well. The option
+\Option{mpinclude} does exactly this. The option, as a \PName{simple
+ switch}\ChangedAt{v3.00}{\Package{typearea}}, accepts the standard values
+for simple switches in \autoref{tab:truefalseswitch}. You can also pass this
+option without specifying a value, in which case \PValue{true} is assumed.
+
+The effect of \OptionValue{mpinclude}{true}%
+\important{\OptionValue{mpinclude}{true}} is that a width-unit is removed from
+the main text body and used as the area for marginal notes. With the
+\OptionValue{mpinclude}{false} option, which is the default setting, part of
+the normal margin is used for marginal notes. The width of that area is one or
+one-and-a-half width units, depending on whether you have chosen one-sided or
+two-sided printing. The \OptionValue{mpinclude}{true} option is mainly for
+experts and so is not recommended.
+
+\begin{Explain}
+ In most cases where the option \Option{mpinclude} makes sense, you also
+ require a wider area for marginal notes. Often, however, only a part of the
+ marginal note's width should be part of the text area, not the whole width,
+ for example if the margin is used for quotations. Such quotations are
+ usually set as unjustified text, with the flush edge against the text area.
+ Since the unjustified text gives no homogeneous optical impression, these
+ lines can protrude partially into the margin. You can accomplish that by
+ using the option \Option{mpinclude} and by increasing the length
+ \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 increased depends on the individual situation and it requires a
+ certain amount of sensitivity. This is another reason the \Option{mpinclude}
+ option is primarily intended for experts. Of course you can specify, for
+ example, that the marginal notes should project a third of the way into the
+ normal margin by using the following:
+\begin{lstcode}
+ \setlength{\marginparwidth}{1.5\marginparwidth}
+\end{lstcode}
+
+Currently there is no option to enlarge the space for marginal notes within
+the text area. There is only one way to accomplish this: first, either omit
+the \Option{mpinclude} option or set it to \PValue{false}, and then, after the
+type area has been calculated, reduce \Length{textwidth} (the width of the
+text body) and increase \Length{marginparwidth} (the width of the marginal
+notes) by the same amount. Unfortunately, this procedure cannot be combined
+with automatic calculation of the \PName{DIV} value. In contrast,
+\Option{mpinclude} is taken into account with
+\OptionValueRef{\LabelBase}{DIV}{calc}\IndexOption{DIV~=calc} (see
+\DescPageRef{typearea.option.DIV.calc}).
+\end{Explain}
+
+Note\textnote{Attention!} that these options must be passed as class options
+when using one of the {\KOMAScript} classes, or after loading the class with
+\DescRef{\LabelBase.cmd.KOMAoptions} or \DescRef{\LabelBase.cmd.KOMAoption}.
+Changing these options after loading the \Package{typearea} package does not
+automatically recalculate the type area. Instead, the changes only take effect
+the next time the type area is recalculated. For recalculation of the type
+area, see the \hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} option
+with the values \hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} or
+\hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (see
+\DescPageRef{typearea.option.DIV.last}) or the
+\DescRef{\LabelBase.cmd.recalctypearea} command (see
+\DescPageRef{typearea.cmd.recalctypearea}).%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{headlines}{number of lines}
+ \OptionVName{headheight}{height}
+\end{Declaration}%
+\BeginIndex{}{header>height}%
+We have seen how to calculate the type area using the \Package{typearea}
+package and how to specify whether the header and footer are part of the text
+or the margins. However, especially for the header, we still have to specify
+the height. This is achieved with the options \Option{headlines} and
+\Option{headheight}\ChangedAt{v3.00}{\Package{typearea}}.
+
+The \Option{headlines}\important{\Option{headlines}} option specifies the
+number of lines of text in the header. The \Package{typearea} package uses a
+default of 1.25. This is a compromise: large enough for underlined headers
+(see \autoref{sec:maincls.pagestyle}) and small enough that the relative
+weight of the top margin is not affected too much when the header is not
+underlined. Thus the default value will usually be adequate. In special cases,
+however, you may need to adjust the header height more precisely to your
+actual requirements.
+
+\begin{Example}
+ Suppose you want to create a two-line header. Normally this would result in
+ {\LaTeX} issuing the warning ``\texttt{overfull} \Macro{vbox}'' for each
+ page. To prevent this from happening, you tell the \Package{typearea}
+ package to calculate an appropriate type area:
+\begin{lstcode}
+ \documentclass[a4paper]{article}
+ \usepackage[headlines=2.1]{typearea}
+\end{lstcode}
+ If you use a {\KOMAScript} class, you should pass this option directly to
+ the class:
+\begin{lstcode}
+ \documentclass[a4paper,headlines=2.1]{scrartcl}
+\end{lstcode}
+ Commands that can be used to define the contents of a two-line header
+ can be found in \autoref{cha:scrlayer-scrpage}.
+\end{Example}
+
+In some cases it is useful to be able to specify the header height not in
+lines but directly as a length. This is accomplished with the alternative
+option \Option{headheight}\important{\Option{headheight}}. All lengths and
+sizes that \LaTeX{} understands are valid for \PName{height}.
+Note\textnote{Attention!}, however, that if you use a \LaTeX{} length such as
+\Length{baselineskip}, its value is not fixed at the time the option is set.
+The value that will be used will be the one current at the time the type area
+and margins are calculated. Also\textnote{Attention!}, \LaTeX{} lengths like
+\Length{baselineskip} should never be used in the optional argument of
+\DescRef{\LabelBase.cmd.documentclass} or \DescRef{\LabelBase.cmd.usepackage}.
+
+Please be sure to note\textnote{Attention!} that these options must be passed
+as class options when using one of the {\KOMAScript} classes, or after loading
+the class with \DescRef{\LabelBase.cmd.KOMAoptions} or
+\DescRef{\LabelBase.cmd.KOMAoption}. Changing these options after loading the
+\Package{typearea} package does not\textnote{no automatic recalculation}
+automatically recalculate the type area. Instead, the changes only take effect
+the next time the type area is recalculated. For recalculation of the type
+area, see the \hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} option
+with the values \hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} or
+\hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (see
+\DescPageRef{typearea.option.DIV.last}) or the
+\DescRef{\LabelBase.cmd.recalctypearea} command (see
+\DescPageRef{typearea.cmd.recalctypearea}).%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{footlines}{number of lines}%
+ \OptionVName{footheight}{height}%
+ \Length{footheight}%
+\end{Declaration}
+\BeginIndex{}{footer>height}%
+Like\ChangedAt{v3.12}{\Package{typearea}} the header, the footer also requires
+an indication of how high it should be. But unlike the height of the header,
+the \LaTeX{} kernel does not provide a length for the height of the footer. So
+\Package{typearea} defines a new length,
+\Length{footheight}\IndexLength[indexmain]{footheight}, if it does not already
+exist. Whether this length will be used by classes or packages to design the
+headers and footers depends on the individual classes and packages. The
+\KOMAScript{} package
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}%
+\IndexPackage{scrlayer-scrpage} incorporates
+\Length{footheight} and actively cooperates with \Package{typearea}. The
+\KOMAScript{} classes, on the other hand, do not recognize \Length{footheight}
+because without the help of packages they offer only page styles with
+single-line page footers.
+
+You can use \Option{footlines}\important{\Option{footlines}} to set the number
+of lines in the footer, similar to \DescRef{\LabelBase.option.headlines} for
+the number of lines in the header. By default the \Package{typearea} package
+uses 1.25 footer lines. This value is a compromise: large enough to
+accommodate an overlined or underlined footer (see
+\autoref{sec:maincls.pagestyle}), and small enough that the relative weight of
+the bottom margin is not affected too much when the footer lacks a dividing
+line. Thus the default value will usually be adequate. In special cases,
+however, you may need to adjust the footer height more precisely to your
+actual requirements.
+
+\begin{Example}
+ Suppose you need to place a two-line copyright notice in the footer.
+ Although there is no test in \LaTeX{} itself to check the space available
+ for the footer, exceeding the designated height will likely result in
+ unbalanced distribution of type area and margins. Moreover, a package such
+ as \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ \important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}%
+ \IndexPackage{scrlayer-scrpage}, which can be used to define such a footer,
+ performs the appropriate test and will report any overruns. So it makes
+ sense to specify the required footer height when calculating of the type
+ area:
+\begin{lstcode}
+ \documentclass[a4paper]{article}
+ \usepackage[footlines=2.1]{typearea}
+\end{lstcode}
+ Again, if you use a \KOMAScript{} class, you should pass this
+ option directly to the class:
+\begin{lstcode}
+ \documentclass[footlines=2.1]{scrartcl}
+\end{lstcode}
+ Commands that can be used to define the contents of a two-line footer
+ 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. This is accomplished with the alternative
+option \Option{footheight}\important{\Option{footheight}}. All lengths and
+sizes that \LaTeX{} understands are valid for \PName{height}. Note, however,
+that if you use a \LaTeX{} length such as \Length{baselineskip}, its value is
+not fixed at the time the option is set. The value that will be used will be
+the one current at the time the type area and margins are calculated.
+Also\textnote{Attention!}, \LaTeX{} lengths like \Length{baselineskip} should
+never be used in the optional argument of
+\DescRef{\LabelBase.cmd.documentclass} or \DescRef{\LabelBase.cmd.usepackage}.
+
+Please be sure to note\textnote{Attention!} that these options must be passed
+as class options when using one of the {\KOMAScript} classes, or after loading
+the class with \DescRef{\LabelBase.cmd.KOMAoptions} or
+\DescRef{\LabelBase.cmd.KOMAoption}. Changing these options after loading
+\Package{typearea} does not\textnote{no automatic recalculation} automatically
+recalculate the type area. Instead, the changes only take effect the next time
+the type area is recalculated. For recalculation of the type area, see the
+\hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} option with the
+values \hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} or
+\hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (see
+\DescPageRef{typearea.option.DIV.last}) or the
+\DescRef{\LabelBase.cmd.recalctypearea} command (see
+\DescPageRef{typearea.cmd.recalctypearea}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{areaset}\OParameter{BCOR}\Parameter{width}\Parameter{height}
+\end{Declaration}%
+So far, we have seen how to create a nice type area\Index{type area} for
+standard situations and how the \Package{typearea} package makes it easier to
+accomplish this while still giving the freedom to adapt the layout. However,
+there are cases where the text body has to adhere precisely to specific
+dimensions. At the same time, the margins should be distributed as nicely as
+possible and, if necessary, a binding correction should be taken into account.
+The \Package{typearea} package offers the command \Macro{areaset} for this
+purpose. This command takes as parameters the width and height of the text
+body, as well as the binding correction as an optional parameter. The width
+and position of the margins are then calculated automatically, taking account
+of the options \DescRef{\LabelBase.option.headinclude},
+\OptionValueRef{\LabelBase}{headinclude}{false},
+\DescRef{\LabelBase.option.footinclude} and
+\OptionValueRef{\LabelBase}{footinclude}{false} where needed. On the other
+hand, the options
+\DescRef{\LabelBase.option.headlines}\IndexOption{headlines},
+\DescRef{\LabelBase.option.headheight}\IndexOption{headheight},
+\DescRef{\LabelBase.option.footlines}\IndexOption{footlines}, and
+\DescRef{\LabelBase.option.footheight}\IndexOption{footheight} are ignored!
+For more information, see \DescRef{typearea-experts.cmd.areaset} on
+\DescPageRef{typearea-experts.cmd.areaset} of
+\autoref{sec:typearea-experts.experimental}.
+
+The default for \PName{BCOR} is 0\Unit{pt}. If you want to preserve the
+current binding correction, for example the value set by option
+\DescRef{\LabelBase.option.BCOR}\IndexOption{BCOR}, you can use the symbolic
+value \PValue{current} at an optional argument.
+
+\begin{Example}
+ Suppose a text on A4 paper needs a width of exactly 60 characters in a
+ typewriter font and a height of exactly 30 lines per page. You can
+ accomplish this with the following preamble:
+\begin{lstcode}
+ \documentclass[a4paper,11pt]{article}
+ \usepackage{typearea}
+ \newlength{\CharsLX}% Width of 60 characters
+ \newlength{\LinesXXX}% Height of 30 lines
+ \settowidth{\CharsLX}{\texttt{1234567890}}
+ \setlength{\CharsLX}{6\CharsLX}
+ \setlength{\LinesXXX}{\topskip}
+ \addtolength{\LinesXXX}{29\baselineskip}
+ \areaset{\CharsLX}{\LinesXXX}
+\end{lstcode}
+ The factor is 29 rather than 30 because the baseline of the topmost line of
+ text 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}. So we don't
+ need to add any height for the first line. The descenders of characters on
+ the lowermost line, on the other hand, protrude below the dimensions of the
+ type area.
+
+\iffalse % Umbruchkorrekturtext
+ If instead you want to set a book of poetry in which the text area is
+ exactly square with a side length of 15\Unit{cm}, with a binding correction
+ of 1\Unit{cm} taken into account, you can achieve this as follows:%
+\else%
+ To set a book of poetry with a square text area with a side length of
+ 15\Unit{cm} and a binding correction of 1\Unit{cm}, the following is
+ possible:%
+\fi
+\begin{lstcode}
+ \documentclass{poetry}
+ \usepackage{typearea}
+ \areaset[1cm]{15cm}{15cm}
+\end{lstcode}
+\end{Example}
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionValue{DIV}{areaset}
+\end{Declaration}%
+In\ChangedAt{v3.00}{\Package{typearea}} rare cases it is useful to be able to
+realign the current type area. This is possible with the option
+\OptionValue{DIV}{areaset}, where
+\DescRef{\LabelBase.cmd.KOMAoptions}\PParameter{\OptionValue{DIV}{areaset}}
+corresponds to the
+\begin{lstcode}
+ \areaset[current]{\textwidth}{\textheight}
+\end{lstcode}
+command. The same result is obtained if you use
+\OptionValueRef{\LabelBase}{DIV}{last} and the typearea was last set with
+\DescRef{\LabelBase.cmd.areaset}.%
+%
+\EndIndexGroup
+
+\iftrue% Umbruchkorrekturtext: Alternativen
+ If you have concrete specifications for the margins, \Package{typearea} is
+ not suitable. In this case, you should use the
+ \Package{geometry}\IndexPackage{geometry}%
+ \important{\Package{geometry}} package (see \cite{package:geometry}).%
+\fi%
+\iffalse%
+ The \Package{typearea} package is not designed to set up predefined margins.
+ If you have to do so, the \Package{geometry}\IndexPackage{geometry} package
+ (see \cite{package:geometry}) is recommended.%
+\fi
+
+
+\section{Selecting the Paper Size}
+\seclabel{paperTypes}%
+\BeginIndexGroup
+
+The paper size is a key feature of a document. As already mentioned in the
+description of the supported page layout constructions (see
+\autoref{sec:typearea.basics} to \autoref{sec:typearea.circleConstruction}
+starting on \autopageref{sec:typearea.basics}), the layout of the page, and
+hence the entire document, depends on the paper size. Whereas the {\LaTeX}
+standard classes are limited to a few formats, {\KOMAScript} supports even
+unusual paper sizes in conjunction with the \Package{typearea} package.
+
+
+\begin{Declaration}
+ \OptionVName{paper}{size}
+ \OptionVName{paper}{orientation}
+\end{Declaration}%
+The \Option{paper}\ChangedAt{v3.00}{\Package{typearea}} option is the central
+element for paper-size selection\important[i]{%
+ \begin{tabular}[t]{@{}l@{}l@{}}
+ \KOption{paper} & \PValue{letter}, \\
+ & \PValue{legal}, \\
+ & \PValue{executive}, \\
+ & \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}} %
+in \KOMAScript. \PName{Size} supports the American formats \Option{letter},
+\Option{legal}, and \Option{executive}. In addition, it supports the ISO
+formats of the series A, B, C, and D, for example \PValue{A4} or\,---\,written
+in lower case\,---\,\PValue{a4}.
+
+Landscape orientations\important{%
+ \begin{tabular}[t]{@{}l@{}l@{}}
+ \KOption{paper} & \PValue{landscape}, \\
+ & \PValue{seascape}
+ \end{tabular}%
+} are supported by specifying the option one more time
+with the value \PValue{landscape}\Index{paper>orientation} or
+\PValue{seascape}\ChangedAt{v3.02c}{\Package{typearea}}. The only difference
+between \PValue{landscape} and \PValue{seascape} is that that the application
+\File{dvips} rotates \PValue{landscape} pages by -90\Unit{\textdegree}, while
+it rotates \PValue{seascape} pages by +90\Unit{\textdegree}. Thus
+\PValue{seascape} is particularly useful whenever a PostScript viewer shows
+landscape pages upside-down. In order for the difference to have an effect,
+you must not deactivate the \DescRef{\LabelBase.option.pagesize}%
+\IndexOption{pagesize}\important{\DescRef{\LabelBase.option.pagesize}} option
+described below.
+
+Additionally, the \PName{size} can also be specified either in the form
+\PName{width}\texttt{:}\PName{height}\ChangedAt{v3.01b}{\Package{typearea}}%
+\important{\OptionVName{paper}{width\textup{:}height}} or in the form
+\PName{height}\texttt{:}\PName{width}\ChangedAt{v3.22}{\Package{typearea}}%
+\important{\OptionVName{paper}{height\textup{:}width}}. Which value is taken
+as the \PName{height} and which as the \PName{width} depends on the
+orientation of the paper. With \OptionValue{paper}{landscape} or
+\OptionValue{paper}{seascape}, the smaller value is the \PName{height} and the
+larger one is the \PName{width}. With
+\OptionValue{paper}{portrait}\important{\OptionValue{paper}{portrait}}, the
+smaller value is the \PName{width} and the larger one is the \PName{height}.
+
+Note\textnote{Attention!} that until version~3.01a the first value was always
+the \PName{height} and the second one the \PName{width}. From version~3.01b
+through version~3.21, the first value was always the \PName{width} and the
+second one the \PName{height}. This is important if you use compatibility
+settings (see option \DescRef{\LabelBase.option.version}%
+\IndexOption{version}\important{\DescRef{\LabelBase.option.version}},
+\autoref{sec:typearea.compatibilityOptions},
+\DescPageRef{typearea.option.version}).
+
+\begin{Example}
+ Suppose you want to print an ISO-A8 index card in landscape orientation. The
+ margins should be very small and no header or footer will be used.
+\begin{lstcode}
+ \documentclass{article}
+ \usepackage[headinclude=false,footinclude=false,
+ paper=A8,landscape]{typearea}
+ \areaset{7cm}{5cm}
+ \pagestyle{empty}
+ \begin{document}
+ \section*{Supported Paper Sizes}
+ letter, legal, executive, a0, a1 \dots\ %
+ b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots
+ \end{document}
+\end{lstcode}
+ If the file cards have the special format (height:width)
+ 5\Unit{cm}\,:\,3\Unit{cm}, this can be achieved using the following:
+\begin{lstcode}
+ \documentclass{article}
+ \usepackage[headinclude=false,footinclude=false,%
+ paper=landscape,paper=5cm:3cm]{typearea}
+ \areaset{4cm}{2.4cm}
+ \pagestyle{empty}
+ \begin{document}
+ \section*{Supported Paper Sizes}
+ letter, legal, executive, a0, a1 \dots\ %
+ b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots
+ \end{document}
+\end{lstcode}
+\end{Example}
+
+By default, {\KOMAScript} uses A4 paper in portrait orientation. This is in
+contrast\textnote{\KOMAScript{} vs. standard classes} to the standard classes,
+which by default use the American letter paper format.
+
+Please note\textnote{Attention!} that these options must be passed as class
+options when using one of the {\KOMAScript} classes, or after loading the
+class with \DescRef{\LabelBase.cmd.KOMAoptions} or
+\DescRef{\LabelBase.cmd.KOMAoption}. Changing the paper size or orientation
+with \DescRef{\LabelBase.cmd.KOMAoptions} or
+\DescRef{\LabelBase.cmd.KOMAoption} does not\textnote{no automatic
+recalculation} automatically recalculate the type area. Instead, the changes
+only take effect the next time the type area is recalculated. For
+recalculation of the type area, see the
+\hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} option with the
+values \hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} or
+\hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (see
+\DescPageRef{typearea.option.DIV.last}) or the
+\DescRef{\LabelBase.cmd.recalctypearea} command (see
+\DescPageRef{typearea.cmd.recalctypearea}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{pagesize}{output driver}
+\end{Declaration}%
+\begin{Explain}%
+ The above-mentioned mechanisms for choosing the paper format only affect the
+ output insofar as internal {\LaTeX} lengths are set. The \Package{typearea}
+ package then uses them in dividing the page into type area and margins.
+ The specification of the DVI formats\Index{DVI}, however, does not include
+ any indication of paper size. %
+ \iffree{%
+ When outputting directly from the DVI format to a low-level printer
+ language such as PCL%
+ \iftrue% Umbruchkorrektur
+ \footnote{PCL is a family of printer languages that HP uses for its
+ inkjet and laser printers.}%
+ \fi \ or ESC/P2%
+ \iftrue% Umbruchkorrektur
+ \footnote{ESC/P2 is the printer language that EPSON uses for its
+ dot-matrix, and older inkjet or laser printers.}%
+ \fi \ or ESC/P-R%
+ \iftrue% Umbruchkorrektur
+ \footnote{ESC/P-R is the printer language that EPSON currently uses for
+ inkjet and laser printers.}%
+ \fi, this is usually not an issue%
+ }{%
+ In the past, when DVI was printed directly into a low-level printer
+ language, it did not matter%
+ }, since with these formats the reference zero-position is at the top left,
+ as in DVI. But nowadays, the output is normally translated into languages
+ such as PostScript\Index{PostScript} or PDF\Index{PDF}, in which the
+ zero-position is at a different point, and in which the paper format should
+ be specified in the output file, which is missing this information. To solve
+ this problem, the corresponding driver uses a default paper size, which the
+ user can change either by an option or by specifying it in the {\TeX} source
+ file. When using the DVI driver \File{dvips} or \File{dvipdfm}, the
+ information can be given in the form of a \Macro{special} command. When
+ using {pdf\TeX}, {lua\TeX}, {\XeTeX} or {V\TeX} their paper-size lengths are
+ set appropriately.
+\end{Explain}
+With the \Option{pagesize} option, you can select an output driver for writing
+the paper size into the destination document. Supported output drivers are
+listed at \autoref{tab:typearea.outputdriver}\iffalse%
+, \autopageref{tab:typearea.outputdriver}\fi. The
+default\ChangedAt{v3.17}{\Package{typearea}} is \Option{pagesize}. Using this
+option without providing a value is equivalent to \OptionValue{pagesize}{auto}.
+%
+\begin{table}
+ \caption{Output driver for option \OptionVName{pagesize}{output driver}}
+ \begin{desctabular}
+ \pventry{auto}{Uses output driver \PValue{pdftex} if the pdf\TeX-specific
+ lengths \Macro{pdfpagewidth}\IndexLength{pdfpagewidth} and
+ \Macro{pdfpageheight}\IndexLength{pdfpageheight} or the lua\TeX-specific
+ lengths \Macro{pagewidth}\IndexLength{pagewidth} and
+ \Macro{pageheight}\IndexLength{pageheight} are defined. In addition, the
+ output driver \PValue{dvips} will also be used. This setting is in
+ principle also suitable for \XeTeX{}.%
+ \IndexOption{pagesize~=\textKValue{auto}}}%
+ \pventry{automedia}{Almost the same as \PValue{auto} but if the
+ \mbox{V\TeX}-specific lengths
+ \Macro{mediawidth}\IndexLength{mediawidth} and
+ \Macro{mediaheight}\IndexLength{mediaheight} are defined, they will be
+ set as well.\IndexOption{pagesize~=\textKValue{automedia}}}%
+ \entry{\PValue{false}, \PValue{no}, \PValue{off}}{%
+ Does not set any output driver and does not send page size information to
+ the output driver.\IndexOption{pagesize~=\textKValue{false}}}%
+ \pventry{dvipdfmx}{\ChangedAt{v3.05a}{\Package{typearea}} Writes the paper
+ size into DVI files using
+ \Macro{special}\PParameter{pagesize=\PName{width},\PName{height}}. The
+ name of the output driver is \PValue{dvipdfmx} because the application
+ \File{dvipdfmx} handles such specials not just in the preamble but
+ in the document body too.\IndexOption{pagesize~=\textKValue{dvipdfmx}}}%
+ \pventry{dvips}{Using this option in the preamble sets the paper size
+ using
+ \Macro{special}\PParameter{pagesize=\PName{width},\PName{height}}. Since
+ the \File{dvips} driver cannot handle changes of paper size in the
+ inner document pages, a hack is required to achieve such changes. Use
+ changes of paper size after \Macro{begin}\PParameter{document} at your
+ own risk, if you are using
+ \PValue{dvips}!\IndexOption{pagesize~=\textKValue{dvips}}}%
+ \entry{\PValue{pdftex}, \PValue{luatex}}{%
+ \ChangedAt{v3.20}{\Package{typearea}}Sets paper size using the
+ pdf\TeX-specific lengths
+ \Macro{pdfpagewidth}\IndexLength{pdfpagewidth} and
+ \Macro{pdfpageheight}\IndexLength{pdfpageheight} or the
+ lua\TeX-specific lengths \Macro{pagewidth}\IndexLength{pagewidth}
+ and \Macro{pageheight}\IndexLength{pageheight}. You can do this at any
+ time in your document.%
+ \IndexOption{pagesize~=\textKValue{pdftex}}%
+ \IndexOption{pagesize~=\textKValue{luatex}}}%
+ \end{desctabular}
+ \label{tab:typearea.outputdriver}
+\end{table}
+
+\begin{Example}
+ Suppose a document should be available both as a DVI data file
+ and in PDF format for on-line viewing. The preamble might begin
+ as follows:
+\begin{lstcode}[%
+ aboveskip=.5\baselineskip plus .1\baselineskip minus .1\baselineskip,%
+ belowskip=.4\baselineskip plus .1\baselineskip minus .1\baselineskip]
+ \documentclass{article}
+ \usepackage[paper=A4,pagesize]{typearea}
+\end{lstcode}
+ If the {pdf\TeX} engine is used \emph{and} PDF output is enabled, the
+ lengths \Macro{pdfpagewidth} and \Macro{pdfpageheight} are set
+ appropriately. If, however, a DVI data file is created\,---\, whether by
+ {\LaTeX} or by {pdf\LaTeX}\,---\,then a \Macro{special} is written at the
+ start of this data file.
+\end{Example}%
+\iffree{% The recommendation is actually outdated. Those who use such old
+ % versions of typearea are the ones at fault.
+ If you use an older version of \Package{typearea}, you
+ should\textnote{Attention!} always specify the \Option{pagesize} option,
+ because older versions of \Package{typearea} did not set them by default. As
+ a rule, the method without an \PName{output driver} or with \PValue{auto} or
+ \PValue{automedia} is convenient.%
+}{%
+ \vskip-1\ht\strutbox plus
+ .75\ht\strutbox% Wegen Beispiel am Ende der Erklaerung
+}%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Tips}
+\seclabel{tips}
+
+For theses and dissertations, many rules exist that violate even the most
+elementary rules of typography.\textnote{formatting rules vs. good typography}
+The reasons for such rules include the typographical incompetence of those who
+issue them, but also the fact that they were originally meant for mechanical
+typewriters. With a typewriter or a primitive text processor from the early
+1980s, it was not possible to produce typographically correct output without
+extreme effort. So rules were created that appeared to be easy to follow and
+were still accommodating to a proofreader. These include margins that lead to
+usable line lengths for one-sided printing with a typewriter. To avoid
+extremely short lines, which are made worse by unjustified text, the margins
+were kept narrow and the leading was increased to 1.5 lines to allow space for
+corrections. Before the advent of modern text processing systems, single
+spacing would have been the only alternative\,---\,except with \TeX. In such a
+single-spaced document, even correction signs would have been difficult to
+add. When computers became more widely available for text processing, some
+students showed their playful side and tried to spice up their work by using
+an ornamental font to make their work look better than it really was. They did
+not consider that such fonts are often more difficult to read and therefore
+unsuitable for this purpose. Thus, two font families found their way
+into the regulations which are neither compatible nor particularly suitable
+for the job in the case of Times. Times is a relatively narrow typeface
+designed at the beginning of the 20th century for the narrow columns of
+British newspapers. Modern versions usually are somewhat improved. But still
+the Times font, which is often required, does not really fit the prescribed
+margins.
+
+{\LaTeX} already uses adequate line spacing, and the margins are wide enough
+for corrections. Thus a page will look spacious, even when quite full of text.
+
+Often these typographically questionable rules are difficult to implement in
+{\LaTeX}. A fixed number of characters per line can be achieved only when a
+non-proportional font is used. There are very few good non-proportional fonts
+available. Hardly any text typeset in this way looks really good. In many
+cases font designers try to increase the serifs on the `i' or `l' to
+compensate for the different character widths. This does not work and results
+in a fragmented and agitated-looking text. If you use {\LaTeX} for your
+thesis, some of these rules have to be either ignored or at least interpreted
+generously. For example, ``60 characters per line'' can be interpreted not as
+a fixed but as an average or maximum value.%
+
+As implemented, typesetting rules are usually intended to obtain a useful
+result even if the author does not know what needs to be considered.
+\emph{Useful} frequently means readable and correctable. In my opinion the
+type area of a text set with {\LaTeX} and the \Package{typearea} package meets
+these criteria well from the outset. So if you are confronted with regulations
+which deviate substantially from it, I recommend that you present a sample of
+the text to your advisor and ask whether you can submit the work despite
+deviations in the format. If necessary the type area can be adapted somewhat
+by changing the \DescRef{\LabelBase.option.DIV}%
+\important{\DescRef{\LabelBase.option.DIV}} option. I advise against
+using \DescRef{\LabelBase.cmd.areaset} for this purpose, however. In the
+worst case, use the \Package{geometry} package%
+\important{\Package{geometry}}\IndexPackage{geometry} (see
+\cite{package:geometry}), which is not part of \KOMAScript, or change the page
+layout parameters of \LaTeX{} yourself. You can find the values as determined
+by \Package{typearea} in the \File{log} file of your document. The
+\DescRef{typearea-experts.option.usegeometry}%
+\important{\DescRef{typearea-experts.option.usegeometry}} option, which you
+can find in \autoref{part:forExperts}, can also improve the interactions
+between \Package{typearea} and \Package{geometry}. This should allow modest
+adjustments. However, make sure that the proportions of the text area match
+those of the page, taking the binding correction into account.
+
+If it is absolutely necessary to set the text with a line spacing of 1.5, do
+not under any circumstances redefine \Macro{baselinestretch}. Although this
+procedure is recommended all too frequently, it has been obsolete since the
+introduction of {\LaTeXe} in 1994. In the worst case, use the
+\Macro{linespread} command. I recommend the package
+\Package{setspace}\important{\Package{setspace}}\IndexPackage{setspace} (see
+\cite{package:setspace}), which is not part of \KOMAScript. You should also
+let \Package{typearea} recalculate a new type area after changing the line
+spacing. However, you should switch back to the normal line spacing for the
+title, and preferably for the table of contents and various lists\,---\,as
+well as the bibliography and the index. For details, see the explanation of
+\OptionValueRef{\LabelBase}{DIV}{current}%
+\important{\OptionValueRef{\LabelBase}{DIV}{current}}.
+
+The \Package{typearea} package, even with option
+\OptionValueRef{\LabelBase}{DIV}{calc}%
+\important{\OptionValueRef{\LabelBase}{DIV}{calc}}, calculates a very generous
+text area. Many conservative typographers will find that the resulting line
+length is still excessive. The calculated \Var{DIV} value may be found in the
+\File{log} file for each document. So you can easily choose a smaller value
+after the first {\LaTeX} run.
+
+Not\textnote{What is better?} infrequently I am asked why I dwell on type area
+calculations for an entire chapter, when it would be much easier just to
+provide a package with which you can adjust the margins as in a word
+processor. Often it is said that such a package would be a better solution in
+any case, since everyone knows how to choose appropriate margins, and that the
+margins calculated by {\KOMAScript} are not that good anyway. I would like to
+quote Hans Peter Willberg and Friedrich Forssmann, two of the most respected
+contemporary typographers \cite{TYPO:ErsteHilfe}. (You can find the original
+German in the German guide.)
+\begin{quote}
+ \phantomsection\seclabel{tips.cite}%
+ \textit{The\textnote{Quote!} practice of doing things oneself has long been
+ widespread, but the results are often dubious because amateur typographers
+ do not see what is wrong and cannot know what is important. This is how
+ you get used to to incorrect and poor typography.} [\dots] \textit{Now the
+ objection could be made that typography is a matter of taste. When it
+ comes to decoration, one could perhaps accept that argument, but since
+ typography is primarily about information, not only can mistakes irritate,
+ but they may even cause damage.}
+\end{quote}
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: us-ascii
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/guide.bib b/macros/latex/contrib/koma-script/source-doc/guide.bib
new file mode 100644
index 0000000000..03e8e4eec4
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/guide.bib
@@ -0,0 +1,861 @@
+% ======================================================================
+% guide.bib
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% guide.bib
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% Bibliography of scrguien
+% ----------------------------------------------------------------------
+% Bibliographie fuer den scrguide
+%
+% ======================================================================
+
+@Article{ DANTE:TK0203:MJK,
+ language= {ngerman},
+ author = {Markus Kohm},
+ title = {Moderne Briefe mit {\KOMAScript}},
+ journal = {Die {\TeX}nische Komödie},
+ volume = {2},
+ year = 2003,
+ pages = {32--51},
+ note = {{DANTE} e.\,V.}
+}
+
+@Article{ DANTE:TK0297:MJK1,
+ language= {ngerman},
+ author = {Markus Kohm},
+ title = {{\KOMAScript} -- Eine Alternative zu den
+ Standardklassen?},
+ journal = {Die {\TeX}nische Komödie},
+ year = 1996,
+ volume = {2},
+ pages = {14--33},
+ note = {{DANTE} e.\,V.}
+}
+
+@Article{ DANTE:TK0402:MJK,
+ language= {ngerman},
+ author = {Markus Kohm},
+ title = {Satzspiegelkonstruktionen im Vergleich},
+ journal = {Die {\TeX}nische Komödie},
+ volume = {4},
+ year = 2002,
+ pages = {28--48},
+ note = {{DANTE} e.\,V.}
+}
+
+@Book{ DUDEN,
+ language= {ngerman},
+ author = {DUDEN},
+ title = {Die deutsche Rechtschreibung},
+ publisher = {DUDENVERLAG},
+ year = 1996,
+ address = {Mannheim},
+ edition = 21
+}
+
+@Book{ TYPO:ErsteHilfe,
+ language= {ngerman},
+ author = {Hans Peter Willberg and Friedrich Forssman},
+ title = {Erste Hilfe in Typografie},
+ subtitle = {Ratgeber für Gestaltung mit Schrift},
+ publisher = {Verlag Hermann Schmidt},
+ year = 2000,
+ address = {Mainz}
+}
+
+@Book{ JTsch87,
+ language= {ngerman},
+ author = {Jan Tschichold},
+ title = {Ausgewählte Aufsätze über Fragen der Gestalt des Buches und der Typographie},
+ publisher = {Birkhäuser Verlag},
+ year = 1987,
+ address = {Basel},
+ edition = 2
+}
+
+@Book{ JTschErfreulich,
+ language = {ngerman},
+ author = {Jan Tschichold},
+ title = {Erfreuliche Drucksachen durch gute Typographie},
+ publisher = {Ravensburger Buchverlag Otto Maier GmbH},
+ year = 1960,
+ note = {Nachdruck bei: MaroVerlag, Augsburg, 2001},
+ isbn = {3-87512-413-8}
+}
+
+@Book{ book:komascript,
+ language= {ngerman},
+ author = {Kohm, Markus},
+ title = {{\KOMAScript}},
+ subtitle= {Eine Sammlung von Klassen und Paketen für {\LaTeXe}},
+ year = 2018,
+ edition = 6,
+ publisher={Lehmanns Media},
+ address = {Berlin},
+ series = {Edition DANTE},
+ isbn = {978-3-86541-951-4},
+ note = {Print-Ausgabe}
+}
+
+@Book{ ebook:komascript,
+ language= {ngerman},
+ author = {Kohm, Markus},
+ title = {{\KOMAScript}},
+ subtitle= {Eine Sammlung von Klassen und Paketen für {\LaTeXe}},
+ year = 2018,
+ edition = 6,
+ publisher={Lehmanns Media},
+ address = {Berlin},
+ series = {Edition DANTE},
+ isbn = {978-3-86541-952-1},
+ note = {eBook-Ausgabe}
+}
+
+@Book{ latexbook,
+ language = {ngerman},
+ author = {Leslie Lamport},
+ title = {Das {\LaTeX}-Handbuch},
+ publisher = {Addison-Wesley Publishing Company},
+ address = {Bonn, Paris {u.\,a.}},
+ year = 1995
+}
+
+@Book{ knuth:mfbook,
+ language= {english},
+ author = {Donald E. Knuth},
+ title = {The {\MF book}},
+ publisher = {Addison-Wesley Publishing Company},
+ year = 1991,
+ address = {Reading, Mass.},
+ edition = 6,
+ volume = {C},
+ series = {Computers and Typesetting}
+}
+
+@Book{ knuth:texbook,
+ language= {english},
+ author = {Donald E. Knuth},
+ title = {The {\TeX book}},
+ publisher = {Addison-Wesley Publishing Company},
+ address = {Reading, Mass.},
+ year = 1990,
+ edition = {19},
+ volume = {A},
+ series = {Computers and Typesetting}
+}
+
+@Book{ TYPO:Werkstattbuch,
+ language = {ngerman},
+ author = {Indra Kupferschmid},
+ editor = {},
+ title = {Buchstaben kommen selten allein: Ein typografisches Werkstattbuch},
+ publisher = {Universitätsverlag Weimar},
+ year = {2000},
+ note = {{ISBN} 3-86068-140-0}
+}
+
+@InCollection{ JTschMass,
+ language= {ngerman},
+ author = {Jan Tschichold},
+ title = {Willkürfreie Maßverhältnisse der Buchseite und des Satzspiegels},
+ booktitle = {Schriften 1925-1974},
+ year = 1992,
+ publisher = {Brinkmann \& Bose},
+ address = {Berlin}
+}
+
+@InCollection{ zeitung,
+ language = {ngerman},
+ author = {Martin Z. Schröder},
+ title = {Die Anmut des Unscheinbaren},
+ booktitle = {Berliner Zeitung},
+ year = 1998,
+ month = {10. Oktober},
+ url = {http://www.berliner-zeitung.de/archiv}
+}
+
+@Manual{ btxdoc,
+ language= {english},
+ author = {Oren Patashnik},
+ title = {{Bib\TeX ing}},
+ year = 1988,
+ month = feb,
+ url = {CTAN://biblio/bibtex/distribs/doc/btxdoc.tex}
+}
+
+@Manual{ btxhak,
+ language= {english},
+ author = {Oren Patashnik},
+ title = {Designing {Bib\TeX} Styles},
+ year = 1988,
+ month = feb,
+ url = {CTAN://biblio/bibtex/base/btxhak.pdf}
+}
+
+@Manual{ latex:cfgguide,
+ language= {english},
+ author = {{\LaTeX3} Project Team},
+ title = {Configuration options for {\LaTeXe}},
+ year = 2004,
+ month = feb,
+ url = {CTAN://macros/latex/doc/cfgguide.pdf}
+}
+
+@Manual{ latex:clsguide,
+ language= {english},
+ author = {{\LaTeX3} Project Team},
+ title = {{\LaTeXe} for class and package writers},
+ year = 2006,
+ month = feb,
+ url = {CTAN://macros/latex/doc/clsguide.pdf}
+}
+
+@Manual{ latex:fntguide,
+ language= {english},
+ author = {{\LaTeX3} Project Team},
+ title = {{\LaTeXe} font selection},
+ year = 2005,
+ month = nov,
+ url = {CTAN://macros/latex/doc/fntguide.pdf}
+}
+
+@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{ l2kurz,
+ language = {ngerman},
+ author = {Marco Daniel and Patrick Gundlach and Walter Schmidt and Jörg Knappen and Hubert Partl and Irene Hyna},
+ title = {{\LaTeXe}-Kurzbeschreibung},
+ year = 2012,
+ month = jul,
+ version = {3.0},
+ url = {CTAN://info/lshort/german/}
+}
+
+@Manual{ lshort,
+ language= {english},
+ author = {Tobias Oetker and Hubert Partl and Irene Hyna and Elisabeth
+Schlegl},
+ title = {The Not So Short Introduction to {\LaTeXe}},
+ year = 2011,
+ month = apr,
+ version = {5.01},
+ url = {CTAN://info/lshort/english/}
+}
+
+@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},
+ title = {The {\LaTeX2e} Source},
+ year = 2005,
+ month = 12
+}
+
+@Manual{ latex:usrguide,
+ language= {english},
+ author = {{\LaTeX3} Project Team},
+ title = {{\LaTeXe} for authors},
+ year = 2005,
+ month = nov,
+ url = {CTAN://macros/latex/doc/usrguide.pdf}
+}
+
+@Manual{ xindy,
+ language= {english},
+ author = {Roger Kehr},
+ title = {XINDY, A Flexible Indexing System},
+ year = 1997},
+ month = mar,
+ edition = {1.1},
+ url = {http://www.xindy.org/doc/tutorial.html}
+}
+
+@Misc{ package:adrconv,
+ language= {ngerman},
+ author = {Axel Kielhorn},
+ title = {adrconv},
+ year = 2010,
+ month = apr,
+ edition = {1.3},
+ url = {CTAN://macros/latex/contrib/adrconv/}
+}
+
+@Misc{ package:amsmath,
+ language = {english},
+ author = {{American Mathematical Society}},
+ title = {User's Guide for the {\Package{amsmath}} Package},
+ year = 2002,
+ month = feb,
+ edition = {2.0},
+ url = {CTAN://macros/latex/required/amslatex/math/}
+}
+
+@Misc{ package:babel,
+ language= {english},
+ author = {Johannes Braams and Javier Bezos},
+ title = {Babel},
+ year = 2013,
+ month = dec,
+ edition = {3.9h},
+ url = {CTAN://macros/latex/required/babel/}
+}
+
+@Misc{ package:caption,
+ language = {ngerman},
+ author = {Axel Sommerfeldt},
+ title = {Anpassen der Abbildungs- und Tabellenbeschriftungen mit Hilfe des {\Package{caption}}-Paketes},
+ year = 2013,
+ month = may,
+ edition = {3.3},
+ url = {CTAN://macros/latex/contrib/caption/}
+}
+
+@Misc{ package:caption.engl,
+ language = {english},
+ author = {Axel Sommerfeldt},
+ title = {Customizing captions of floating environments using the {\Package{caption}} package},
+ year = 2013,
+ month = may,
+ edition = {3.3},
+ url = {CTAN://macros/latex/contrib/caption/}
+}
+
+@Misc{ package:CJK,
+ language= {english},
+ author = {Werner Lemberg},
+ title = {{\Package{CJK}}},
+ year = 2012,
+ month = may,
+ edition = {4.8.3},
+ url = {CTAN://languages/chinese/CJK/}
+}
+
+@Misc{ latex:classes,
+ language= {english},
+ author = {Leslie Lamport and Frank Mittelbach and Johannes Braams},
+ title = {Standard Document Classes for {\LaTeX} version 2e},
+ year = 2007,
+ month = oct,
+ edition = {1.4h},
+ url = {CTAN://macros/latex/base/classes.dtx}
+}
+
+@Misc{ package:engord,
+ language= {english},
+ author = {Heiko Oberdiek},
+ title = {The {\Package{engord}} package},
+ year = 2010,
+ month = mar,
+ edition = {1.8},
+ url = {CTAN://macros/latex/contrib/oberdiek/}
+}
+
+@Misc{ package:envlab,
+ language= {english},
+ author = {Boris Veytsman},
+ title = {Printing Envelopes and Labels in {\LaTeXe}: {\Package{EnvLab}} Package},
+ year = 1997,
+ month = jul,
+ edition = {1.2},
+ url = {CTAN://macros/latex/contrib/envlab/}
+}
+
+@Misc{ package:eso-pic,
+ language = {english},
+ author = {Rolf Niepraschk},
+ title = {The {\Package{eso-pic}} package},
+ month = jul,
+ year = 2015,
+ edition = {2.0g},
+ url = {CTAN://macros/latex/contrib/eso-pic/}
+}
+
+@Misc{ package:etoolbox,
+ language= {english},
+ author = {Philipp Lehman},
+ title = {The {\Package{etoolbox}} Package},
+ year = 2011,
+ month = jan,
+ edition = {2.1},
+ url = {CTAN://macros/latex/contrib/etoolbox/}
+}
+
+@Misc{ package:etoolbox-de,
+ language= {ngerman},
+ author = {Philipp Lehman\and Tim Enderling},
+ title = {Das Paket {\Package{etoolbox}}},
+ year = 2011,
+ month = jan,
+ edition = {2.1},
+ url = {CTAN://macros/latex/contrib/etoolbox/}
+}
+
+@Misc{ package:extsizes,
+ language= {english},
+ author = {James Kilfiger},
+ title = {{\Package{extsizes}}, a non standard {\LaTeX}-package},
+ year = 1999,
+ month = nov,
+ edition = {1.4a},
+ url = {CTAN://macros/latex/contrib/extsizes/}
+}
+
+@Misc{ package:fancyhdr,
+ language= {english},
+ author = {Piet van Oostrum},
+ title = {Page layout in {\LaTeX}},
+ year = 2004,
+ month = mar,
+ edition = {3.1},
+ url = {CTAN://macros/latex/contrib/fancyhdr/}
+}
+
+@Misc{ package:float,
+ language= {english},
+ author = {Anselm Lingnau},
+ title = {An Improved Environment for Floats},
+ year = 2001,
+ month = nov,
+ edition = {1.3d},
+ url = {CTAN://macros/latex/contrib/float/}
+}
+
+@Misc{ package:floatrow,
+ language = {english},
+ author = {Olga Lapko},
+ title = {The {\Package{floatrow}} package},
+ year = 2008,
+ month = aug,
+ edition = {0.3b},
+ url = {CTAN://macros/latex/contrib/floatrow/}
+}
+
+@Misc{ package:footmisc,
+ language= {english},
+ author = {Robin Fairbairns},
+ title = {{\Package{footmisc}} --- a portmanteau package for customising footnotes in {\LaTeX}},
+ year = 2011,
+ month = jun,
+ edition = {5.5b},
+ url = {CTAN://macros/latex/contrib/footmisc/}
+}
+
+% I don't want the french changes!
+@Misc{ package:french,
+ language= {english},
+ author = {Bernard Gaulle},
+ title = {Les distributions de fichiers de francisation pour LaTeX},
+ year = 2007,
+ month = may,
+ edition = {5,9993},
+ url = {CTAN://language/french/}
+}
+
+@Misc{ package:geometry,
+ language= {english},
+ author = {Hideo Umeki},
+ title = {The {\Package{geometry}} package},
+ year = 2010,
+ month = sep,
+ edition = {5.6},
+ url = {CTAN://macros/latex/contrib/geometry/}
+}
+
+@Misc{ package:german,
+ language = {english},
+ author = {Bernd Raichle},
+ title = {{\Package{german}} package},
+ year = 1998,
+ month = jul,
+ edition = {2.5e},
+ url = {CTAN://language/german/}
+}
+
+@Misc{ package:graphics,
+ language= {english},
+ author = {David P. Carlisle},
+ title = {Packages in the `graphics' bundle},
+ year = 2017,
+ month = jun,
+ url = {CTAN://macros/latex/required/graphics/}
+}
+
+@Misc{ package:hyperref,
+ language= {english},
+ author = {Sebastian Rahtz and Heiko Oberdiek},
+ title = {Hypertext marks in {\LaTeX}: the {\Package{hyperref}} package},
+ year = 2012,
+ month = nov,
+ edition = {6.83m},
+ url = {CTAN://macros/latex/contrib/hyperref/}
+}
+
+@Misc{ package:ifluatex,
+ language= {english},
+ author = {Heiko Oberdiek},
+ title = {The {\Package{ifluatex}} package},
+ year = 2016,
+ month = apr,
+ edition = {1.4},
+ url = {CTAN://macros/latex/contrib/oberdiek/}
+}
+
+@Misc{ package:ifthen,
+ language= {english},
+ author = {David Carlisle},
+ title = {The {\Package{ifthen}} package},
+ year = 2001,
+ month = may,
+ edition = {1.1c},
+ url = {CTAN://macros/latex/base/}
+}
+
+@Misc{ package:imakeidx,
+ language= {english},
+ author = {Enrico Gregorio},
+ title = {The package {\Package{imakeidx}}},
+ year = 2016,
+ month = oct,
+ edition = {1.3e},
+ url = {CTAN://macros/latex/contrib/imakeidx}
+}
+
+@Misc{ package:keyval,
+ language = {english},
+ author = {David Carlisle},
+ title = {The {\Package{keyval}} package},
+ year = 1999,
+ month = mar,
+ edition = {1.13},
+ url = {CTAN://macros/latex/required/graphics/}
+}
+
+@Misc{ package:koma-script-obsolete,
+ language = {english},
+ author = {Markus Kohm},
+ title = {Deprecated Packages from {\KOMAScript}},
+ year = 2013,
+ month = dec,
+ url = {CTAN://obsolete/macros/latex/contrib/koma-script-obsolete}
+}
+
+@Misc{ package:longtable,
+ language = {english},
+ author = {David Carlisle},
+ title = {The {\Package{longtable}} package},
+ year = 2004,
+ month = feb,
+ edition = {4.11},
+ url = {CTAN://macros/latex/required/tools/}
+}
+
+@Misc{ makeindex,
+ language= {english},
+ author = {Leslie Lamport},
+ title = {{\Package{MakeIndex}}: An Index Processor For {\LaTeX}},
+ year = 1987,
+ month = feb,
+ url = {CTAN://indexing/makeindex/doc/makeindex.pdf}
+}
+
+@Misc{ package:marginnote,
+ language= {english},
+ author = {Markus Kohm},
+ title = {Non-Floating Margin Notes with {\Package{marginnote}}},
+ year = 2012,
+ month = mar,
+ edition = {1.1i},
+ url = {CTAN://macros/latex/contrib/marginnote/}
+}
+
+@Misc{ package:microtype,
+ language= {english},
+ author = {R Schlicht},
+ title = {The {\Package{microtype}} package: An interface to the micro-typographic extensions of pdf{\TeX}},
+ year = 2013,
+ month = may,
+ edition = {2.5a},
+ url = {CTAN://macros/latex/contrib/microtype/}
+}
+
+@Misc{ package:mparhack,
+ language= {english},
+ author = {Tom Sgouros and Stefan Ulrich},
+ title = {The {\Package{mparhack}} package},
+ year = 2005,
+ month = apr,
+ edition = {1.4},
+ url = {CTAN://macros/latex/contrib/mparhack/}
+}
+
+@Misc{ package:multicol,
+ language= {english},
+ author = {Frank Mittelbach},
+ title = {An environment for multicolumn output},
+ year = 2011,
+ month = jun,
+ edition = {1.7a},
+ url = {CTAN://macros/latex/required/tools/}
+}
+
+@Misc{ package:natbib,
+ language= {english},
+ author = {Patrick W. Daly},
+ title = {Natural Sciences Citations and References},
+ year = 2010,
+ month = sep,
+ edition = {8.31b},
+ url = {CTAN://macros/latex/contrib/natbib/}
+}
+
+@Misc{ package:ngerman,
+ language = {english},
+ author = {Bernd Raichle},
+ title = {{\Package{ngerman}} package},
+ year = 1998,
+ month = jul,
+ edition = {2.5e},
+ url = {CTAN://language/german/}
+}
+
+@Misc{ package:picture,
+ language = {english},
+ author = {Heiko Oberdiek},
+ title = {The {\Package{picture}} package},
+ year = 2016,
+ month = may,
+ edition = {1.4},
+ url = {CTAN://macros/latex/contrib/oberdiek/}
+}
+
+@Misc{ package:ragged2e,
+ language = {english},
+ author = {Martin Schröder},
+ title = {The {\Package{Ragged2e}} package},
+ year = 2009,
+ month = jun,
+ edition = {2.1},
+ url = {CTAN://macros/latex/contrib/ms/}
+}
+
+@Misc{ package:selinput,
+ language= {english},
+ author = {Heiko Oberdiek},
+ title = {The {\Package{selinput}} package},
+ year = 2016,
+ month = may,
+ edition = {1.4},
+ url = {CTAN://macros/latex/contrib/oberdiek/}
+}
+
+@Misc{ package:setspace,
+ language= {english},
+ author = {Geoffrey Tobin and Robin Fairbairns},
+ title = {{\Package{setspace}} {\LaTeX} package},
+ year = 2011,
+ month = dec,
+ edition = {6.7a},
+ url = {CTAN://macros/latex/contrib/setspace/}
+}
+
+@Misc{ package:splitindex,
+ language= {english},
+ author = {Markus Kohm},
+ title = {Creating More Than One Index Using {\Package{splitidx}} And {\Package{SplitIndex}}},
+ year = 2014,
+ month = apr,
+ edition = {1.2a},
+ url = {CTAN://macros/latex/contrib/splitindex/}
+}
+
+@Misc{ package:supertabular,
+ language= {english},
+ author = {Braams, Johannes L. and Jurriens, Theo},
+ title = {The {\Package{supertabular}} environment},
+ year = 2004,
+ month = feb,
+ edition = {4.1e},
+ url = {CTAN://macros/latex/contrib/supertabular}
+}
+
+@Misc{ package:tabu,
+ language = {english},
+ author = {Florent Chervet},
+ title = {tabu and longtabu},
+ year = 2011,
+ month = feb,
+ edition = {2.8},
+ url = {CTAN://macros/latex/contrib/tabu/}
+}
+
+@Misc{ package:topcapt,
+ language= {english},
+ author = {Robin Fairbairns},
+ title = {topcapt.sty},
+ year = 2004,
+ month = dec,
+ edition = {1.2},
+ url = {CTAN://macros/latex/contrib/misc/topcapt.sty}
+}
+
+@Misc{ package:tabularx,
+ language= {english},
+ author = {David Carlisle},
+ title = {The {\Package{tabularx}} package},
+ year = 1999,
+ month = jan,
+ edition = {2.07},
+ url = {CTAN://macros/latex/required/tools/}
+}
+
+@Misc{ package:tocstyle,
+ language= {english},
+ author = {Markus Kohm},
+ title = {The {\KOMAScript} package {\Package{tocstyle}}},
+ year = 2013,
+ month = aug,
+ edition = {0.2e},
+ note = {\KOMAScript}
+}
+
+@Misc{ package:xcolor,
+ language = {english},
+ author = {Dr. Uwe Kern},
+ title = {Extending {\LaTeX}'s color facilities: the {\Package{xcolor}} package},
+ year = 2007,
+ month = jan,
+ edition = {2.11},
+ url = {CTAN://macros/latex/contrib/xcolor/}
+}
+
+@Misc{ package:xpatch,
+ language= {english},
+ author = {Enrico Gregorio},
+ title = {The {\Package{xpatch}} package, Extending {\Package{etoolbox}} patching commands},
+ year = 2012,
+ month = oct,
+ edition = {0.3},
+ url = {CTAN://macros/latex/contrib/xpatch/}
+}
+
+@Misc{ homepage,
+ language = {ngerman},
+ key = {KDP},
+ title = {{\KOMAScript{}} Homepage},
+ url = {http://www.komascript.de}
+}
+
+@Misc{ https://komascript.de/comment/5070,
+ language= {ngerman},
+ author= {Markus Kohm},
+ title= {{\OptionValue{chapteratlists}{entry}} automatisch nur für Kapitel mit Einträgen},
+ year= 2015,
+ month= jul,
+ url= {https://komascript.de/comment/5070#comment-5070},
+}
+
+@Misc{ https://komascript.de/node/2154,
+ language= {ngerman},
+ author = {Felix999},
+ title = {Paket {\Package{adrconf}} verlangt nicht vorhandene Datei {\File{scrpage.sty}}},
+ year = 2017,
+ month = dec,
+ url = {https://komascript.de/node/2154},
+}
+
+@Misc{ www:NF.lco,
+ language = {english},
+ author = {Jean-Marie Pacquet},
+ title = {{KomaLetter2}; {E}xample by {J}ean-{M}arie {P}acquet ({F}rench style)},
+ institution = {wiki.lyx.org},
+ howpublished = {Wiki},
+ url = {http://wiki.lyx.org/Examples/KomaLetter2#toc6}
+}
+
+@Misc{ www:blaettery,
+ language = {ngerman},
+ author = {Jürgen F. Schopp},
+ address = {mailto: \url{jurgen.schapp@uta.fi}},
+ title = {Blätter (und Tipps) zur Typografie},
+ institution = {Institut für Sprach- und Translationswissenschaften},
+ organization = {Universität Tampere, Finnland},
+ year = 2002,
+ month = sep,
+ edition = {2},
+ url = {http://www.uta.fi/~trjusc/typoblatt.htm}
+}
+
+@Misc{ www:gutetypo,
+ language = {ngerman},
+ author = {Hermann Rotermund},
+ title = {Gute Typographie auf Papier und im Web},
+ url = {http://www.weisses-rauschen.de/hero/Typographie.htm}
+}
+
+@Misc{ www:typoclass,
+ language = {ngerman},
+ author = {Axel Reichert},
+ title = {Typografie -- Gestaltung einer Beispielklasse},
+ howpublished = {Tutorium auf der Tagung DANTE'99},
+ year = 1999,
+ month = feb,
+ url = {CTAN://info/german/typografie/}
+}
+
+@Misc{ DANTE:FAQ,
+ language = {ngerman},
+ author = {Wiki},
+ title = {Deutsche {\TeX}-FAQ},
+ url = {http://projekte.dante.de/DanteFAQ/WebHome}
+}
+
+@Misc{ UK:FAQ,
+ language= {english},
+ key = {FAQ},
+ editor = {Robin Fairbairns},
+ title = {TeX Frequently Asked Questions on the Web},
+ year = 2013,
+ month = jun,
+ edition = {3.27},
+ url = {http://www.tex.ac.uk/faq}
+}
+
+% end of file `scrguide.bib'
diff --git a/macros/latex/contrib/koma-script/source-doc/guide.tex b/macros/latex/contrib/koma-script/source-doc/guide.tex
new file mode 100644
index 0000000000..1699a73c40
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/guide.tex
@@ -0,0 +1,137 @@
+% ======================================================================
+% guide.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% guide.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% Main TeX file of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Hauptdatei der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\documentclass{scrguide}
+
+\KOMAProvidesFile{guide.tex}
+ [$Date: 2018-12-22 17:30:41 +0100 (Sat, 22 Dec 2018) $
+ KOMA-Script (guide main file)]
+
+\begin{document}
+
+\csname ListTypeArea\endcsname
+
+\extratitle{\sffamily{\bfseries\Huge\GuideTitle\strut\\}
+ \large\GuideSubTitle\strut\\}
+\title{\GuideTitle}
+\subject{\GuideSubject}
+\author{Markus Kohm}
+\publishers{\small\GuideAuthorHeadline:
+ Frank Neukam, Markus Kohm, Axel Kielhorn}
+\uppertitleback{%
+ \GuideWarrantyHeadline\\[.5\baselineskip]
+ \GuideWarranty}
+\lowertitleback{%
+ \settranslator{\GuideTranslatorHeadline}{.\par\bigskip}%
+ \GuideCopyright}
+\dedication{\GuideDedication}
+
+\pdfbookmark[-1]{\KOMAScript}{title}
+\iffree{\bookmark[level=0,gotor=scrguide.pdf]{Deutsch}
+\bookmark[level=0,gotor=scrguien.pdf]{English}}{}
+\bookmarksetup{startatroot}
+
+\maketitle
+
+\cleardoublepage\csname GeneralTypeArea\endcsname
+\include{preface}
+
+\cleardoublepage\csname ListTypeArea\endcsname
+\cleardoublepage\pdfbookmark{\contentsname}{toc}\tableofcontents
+
+\cleardoublepage\pdfbookmark{\listfigurename}{lof}\listoffigures
+
+\cleardoublepage\pdfbookmark{\listtablename}{lot}\listoftables
+
+\cleardoublepage\csname GeneralTypeArea\endcsname
+
+\include{introduction}
+
+\include{authorpart}
+\include{typearea}
+\include{scrbookreportarticle}
+\include{scrlttr2}
+\include{scrlayer-scrpage}
+\include{scrdatetime}
+\include{scraddr}
+\include{adrconvnote}
+\include{scrextend}
+\include{scrjura}
+
+\include{expertpart}
+\include{scrbase}
+\include{scrlfile}
+\include{scrwfile}
+\include{tocbasic}
+\include{scrhack}
+\include{scrlayer}
+\include{scrlayer-scrpage-experts}
+\include{scrlayer-notecolumn}
+\include{typearea-experts}
+\include{scrbookreportarticle-experts}
+\include{scrlttr2-experts}
+
+\include{japanlco}% appendix at the english manual only
+
+\makeatletter
+\let\toclevel@section\toclevel@chapter
+\let\toclevel@chapter\toclevel@part
+\makeatother
+\printchangelog
+\bibliography{\jobname}
+
+\GuideIndexSeeAlsos
+
+\printindex
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: us-ascii
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/linkalias.tex b/macros/latex/contrib/koma-script/source-doc/linkalias.tex
new file mode 100644
index 0000000000..0f1720cfab
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/linkalias.tex
@@ -0,0 +1,121 @@
+% ======================================================================
+% linkalias.tex
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% linkalias.tex
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ======================================================================
+%
+% Link Aliase, die für die freie Version der Anleitung benötigt werden.
+%
+
+\KOMAProvidesFile{linkalias.tex}
+ [$Date: 2018-07-18 13:58:44 +0200 (Wed, 18 Jul 2018) $
+ link aliases for the free version]
+
+\makeatletter
+\newcommand*{\lalias}[3][]{%
+ \scr@ifundefinedorrelax{r@#3}{%
+ \ClassWarning{scrguide}{%
+ Label alias `#2'\MessageBreak
+ to `#3' ignored,\MessageBreak
+ because `#3' undefined%
+ }%
+ }{%
+ \scr@ifundefinedorrelax{r@#2}{%
+ \IfArgIsEmpty{#1}{%
+ \expandafter\let\csname r@#2\expandafter\endcsname
+ \csname r@#3\endcsname
+ }{%
+ \expandafter\let\expandafter\reserved@a\csname r@#3\endcsname
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter\reserved@a
+ \expandafter\expandafter\expandafter{\expandafter\@gobble\reserved@a}%
+ \expandafter\edef\csname r@#2\endcsname{%
+ {\unexpanded{#1}}\unexpanded\expandafter{\reserved@a}%
+ }%
+ }%
+ }{%
+ \ClassWarning{scrguide}{%
+ Label alias `#2'\MessageBreak
+ to `#3' ignored,\MessageBreak
+ because of multiply definition%
+ }%
+ \gdef \@multiplelabels {%
+ \@latex@warning@no@line{There were multiply-defined labels}}%
+ }%
+ }%
+}
+\makeatother
+
+\lalias[\Macro{ifthispageodd}]
+ {desc:maincls-experts.cmd.ifthispageodd}
+ {sec:maincls-experts.addInfos}
+\lalias[\Macro{rightmark}]
+ {desc:maincls-experts.cmd.rightmark}
+ {sec:maincls-experts.addInfos}
+\lalias[\Macro{the}]
+ {desc:maincls-experts.cmd.the}
+ {sec:maincls-experts.experts}
+\lalias[\Option{parskip}]
+ {desc:maincls-experts.option.parskip}
+ {sec:maincls-experts.addInfos}
+\lalias[\Environment{addmargin*}]
+ {desc:maincls-experts.env.addmargin*}
+ {sec:maincls-experts.addInfos}
+\lalias[\Macro{marginpar}]
+ {desc:maincls-experts.cmd.marginpar}
+ {sec:maincls-experts.addInfos}
+\lalias[\Macro{AfterBibliographyPreamble}]
+ {desc:maincls-experts.cmd.AfterBibliographyPreamble}
+ {sec:maincls-experts.addInfos}
+\lalias[\Option{fontsize}]
+ {desc:maincls-experts.option.fontsize}
+ {sec:maincls-experts.addInfos}
+\lalias[\Macro{raggedsection}]
+ {desc:maincls-experts.cmd.raggedsection}
+ {sec:maincls-experts.coexistence}
+\lalias[\Macro{thepage}]
+ {desc:maincls-experts.cmd.thepage}
+ {sec:maincls-experts.addInfos}
+\lalias[\Macro{pagemark}]
+ {desc:maincls-experts.cmd.pagemark}
+ {sec:maincls-experts.addInfos}
+\lalias[\Macro{the\PName{Zähler}}]
+ {desc:maincls-experts.cmd.the/Zaehler/}
+ {sec:maincls-experts.addInfos}
+\lalias[\Macro{the\PName{Counter}}]
+ {desc:maincls-experts.cmd.the/Counter/}
+ {sec:maincls-experts.addInfos}
+\lalias[\OptionValue{parskip}{relative}]
+ {desc:maincls-experts.option.parskip.relative}
+ {sec:maincls-experts.addInfos}
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/Makefile b/macros/latex/contrib/koma-script/source-doc/ngerman/Makefile
new file mode 100644
index 0000000000..cef604fbc6
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/Makefile
@@ -0,0 +1,50 @@
+# ======================================================================
+# Makefile
+# 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.
+# ----------------------------------------------------------------------
+# Makefile
+# 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.
+# ======================================================================
+
+# ----------------------------------------------------------------------
+# Directory with basics
+BASEDIR ?= $(PWD)/../../
+DOCDIR = $(BASEDIR)doc/
+# language
+LANGUAGE = ngerman
+LANGUAGESHORTCUT = de
+LANGUAGELONG = ngerman
+
+include $(DOCDIR)/Makefile.guide
+
+#
+# end of file `Makefile'
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/adrconvnote.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/adrconvnote.tex
new file mode 100644
index 0000000000..ddec394b53
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/adrconvnote.tex
@@ -0,0 +1,100 @@
+% ======================================================================
+% adrconvnote.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% adrconvnote.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 adrconv of the KOMA-Script guide
+% Maintained by Jens-Uwe Morawski (with help from Markus Kohm)
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel über adrconv in der KOMA-Script-Anleitung
+% Verwaltet von Jens-Uwe Morawski (mit Unterstützung von Markus Kohm)
+%
+% ======================================================================
+
+\KOMAProvidesFile{adrconvnote.tex}
+ [$Date: 2018-01-29 14:12:59 +0100 (Mon, 29 Jan 2018) $
+ KOMA-Script guide (chapter: adrconv)]
+
+\chapter{Adressdateien aus Adressdatenbanken}%
+\labelbase{addrconv}%
+\index{Adressdatei}%
+\index{Adressdatenbank}%
+\IndexPackage{addrconv}
+
+In früheren Versionen von \KOMAScript{} war das Paket
+\Package{addrconv} ein fester Bestandteil des
+\KOMAScript{}-Systems.
+Die hauptsächliche Verflechtung mit \KOMAScript{}
+bestand darin, dass mit Hilfe dieses Pakets aus
+Adressdatenbanken im \BibTeX-Format Adressdateien
+für die \KOMAScript-Briefklasse oder für das
+\Package{scraddr}-Paket erstellt werden konnten.
+
+\begin{lstlisting}[morekeywords={@address}]
+ @address{HMUS,
+ name = {Hans Mustermann},
+ title = {Mag. art.},
+ city = {Heimstatt},
+ zip = 01234,
+ country = {Germany},
+ street = {Mauerstra{\ss}e 1},
+ phone = {01234 / 5 67 89},
+ note = {Alles nur Erfindung},
+ key = {HMUS},
+ }
+\end{lstlisting}
+
+Aus Einträgen wie dem oben stehenden können mit Hilfe
+von \BibTeX{} und verschiedenen \BibTeX-Stilen die
+Adressdateien erstellt werden.
+Weiterhin gibt es spezielle \LaTeX-Dateien, die es ermöglichen,
+aus den Adressdateien Telefon- und Adressverzeichnisse
+zu erstellen.
+
+Das Paket \Package{addrconv} war aber eigentlich ein eigenständiger Teil, der
+auch noch über die Belange von \KOMAScript{} hinaus Möglichkeiten bietet.
+Deshalb ist \Package{addrconv} bereits seit einiger Zeit nicht mehr in
+\KOMAScript{} enthalten. Das Paket \Package{adrconv}, nur ein »\Package{d}«,
+ersetzt \Package{addrconv} vollständig. Es muss, falls nicht bereits in Ihrer
+\TeX-Distribution enthalten, von \cite{package:adrconv} separat bezogen und
+installiert werden.
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/authorpart.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/authorpart.tex
new file mode 100644
index 0000000000..c0207de5f9
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/authorpart.tex
@@ -0,0 +1,83 @@
+% ======================================================================
+% authorpart.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% authorpart.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% First part: KOMA-Script for Authors
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Erster Teil: KOMA-Script für Autoren
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\ProvidesFile{authorpart.tex}[2008/05/06 Part KOMA-Script for Authors]
+
+\setpartpreamble{%
+ \vspace*{2\baselineskip}%
+ \setlength{\parindent}{1em}%
+
+ \noindent In diesem Teil sind die Informationen für die Autoren von
+ Artikeln, Berichten, Büchern und Briefen zu finden. Dabei wird davon
+ ausgegangen, dass der normale Anwender sich weniger dafür interessiert, wie
+ in \KOMAScript{} die Dinge implementiert sind und wo die Schwierigkeiten
+ dabei liegen. Auch ist es für den normalen Anwender wenig interessant,
+ welche obsoleten Optionen und Anweisungen noch enthalten sind. Er will
+ wissen, wie er aktuell etwas erreichen kann. Eventuell ist er noch an
+ typografischen Hintergrundinformationen interessiert.
+
+ Die wenigen Passagen, die weiterführende Informationen und Begründungen
+ enthalten und deshalb für ungeduldige Leser weniger von Interesse sind,
+ wurden in diesem Teil in serifenloser Schrift gesetzt und können bei Bedarf
+ übersprungen werden. Wer hingegen noch mehr Informationen zu Hintergründen
+ der Implementierung, Nebenwirkungen bei Verwendung anderer Pakete und
+ zu obsoleten Optionen oder Anweisungen sucht, sei auf
+ \autoref{part:forExperts} ab \autopageref{part:forExperts}
+ verwiesen. Darüber hinaus beschäftigt sich jener Teil von \KOMAScript{} auch
+ mit all den Möglichkeiten, die speziell für Autoren von Paketen und Klassen
+ geschaffen wurden.
+}
+
+\part{\KOMAScript{} für Autoren\label{part:forAuthors}}
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "guide.tex"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-compatibility.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-compatibility.tex
new file mode 100644
index 0000000000..f52b3e00e0
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-compatibility.tex
@@ -0,0 +1,201 @@
+% ======================================================================
+% common-compatibility.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-compatibility.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-compatibility.tex}
+ [$Date: 2018-01-30 09:32:50 +0100 (Tue, 30 Jan 2018) $
+ KOMA-Script guide (common paragraphs)]
+
+\section{Kompatibilität zu früheren Versionen von \KOMAScript}
+\seclabel{compatibilityOptions}
+\BeginIndexGroup
+\BeginIndex{}{Kompatibilität}
+
+\IfThisCommonFirstRun{}{%
+ Es gilt sinngemäß, was in
+ \autoref{sec:\ThisCommonFirstLabelBase.compatibilityOptions} geschrieben
+ wurde.\IfThisCommonLabelBase{scrlttr2}{ Allerdings existiert diese
+ Möglichkeit bei \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} bereits seit
+ Version~2.9t, während \Package{scrletter} sie nicht bietet, sondern
+ sozusagen immer von \OptionValue{version}{last} ausgeht.}{} Falls Sie also
+ \autoref{sec:\ThisCommonFirstLabelBase.compatibilityOptions} bereits gelesen
+ und verstanden haben, können Sie in
+ \autoref{sec:\ThisCommonLabelBase.compatibilityOptions.next} auf
+ \autopageref{sec:\ThisCommonLabelBase.compatibilityOptions.next}
+ fortfahren.%
+}
+
+\IfThisCommonLabelBaseOneOf{typearea,maincls,scrlttr2,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 führen aber Verbesserungen
+ und Korrekturen \IfThisCommonLabelBaseOneOf{maincls,scrlttr2}{an der
+ Klasse}{am Paket} zu Änderungen im Verhalten, inbesondere beim
+ Umbruch. Dies ist jedoch manchmal eher unerwünscht.%
+}{%
+% \IfThisCommonLabelBase{scrextend}{%
+% In einigen Fällen ist es so, dass Verbesserungen und Korrekturen am Paket
+% zu Änderungen im Verhalten, inbesondere beim Umbruch, führen. Dies ist
+% jedoch nicht immer erwünscht.%
+% 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.%
+% }{%
+ \ThisCommonLabelBaseFailure
+% \IfThisCommonLabelBase{scrlttr2}{%
+% In einigen Fällen ist es so, dass Verbesserungen und Korrekturen an der
+% Klasse zu Änderungen im Verhalten, inbesondere beim Umbruch,
+% führen. Dies ist jedoch nicht immer erwünscht.%
+% }{}%
+% }%
+}%
+
+
+\begin{Declaration}
+ \OptionVName{version}{Wert}
+ \OptionValue{version}{first}
+ \OptionValue{version}{last}
+\end{Declaration}
+\IfThisCommonLabelBase{scrextend}{Bei }{Seit }%
+\ChangedAt{v2.96a}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+\ChangedAt{v2.9t}{\Class{scrlttr2}}%
+\ChangedAt{v3.01b}{\Package{typearea}}%
+\IfThisCommonLabelBase{typearea}{%
+ Version~3.01b besteht bei \Package{typearea} }{%
+ \IfThisCommonLabelBase{maincls}{%
+ Version~2.96a besteht bei \KOMAScript{} }{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ Version~2.9t besteht bei \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} }{%
+ \IfThisCommonLabelBase{scrextend}{\Package{scrextend} besteht }{%
+ \InteralCommonFileUsageError }%
+ }%
+ }%
+}%
+die Wahl, ob eine Quelldatei, soweit irgend möglich, auch zukünftig bei einem
+\LaTeX{}-Lauf zu exakt demselben Ergebnis führen soll oder ob er jeweils
+entsprechend der Anpassungen der neusten
+Version\IfThisCommonLabelBaseOneOf{maincls,scrlttr2}{ der Klasse}{} zu setzen
+ist. Zu welcher Version Kompatibilität herzustellen ist, wird dabei über die
+Option \Option{version} festgelegt. Kompatibilität zur ältesten unterstützten
+\KOMAScript-Version kann mit
+\OptionValue{version}{first}\important{\OptionValue{version}{first}} oder
+\OptionValue{version}{2.9} oder \OptionValue{version}{2.9t} erreicht
+werden. Bei Angabe einer unbekannten Version als \PName{Wert} wird eine
+Warnung ausgegeben und sicherheitshalber \OptionValue{version}{first}
+angenommen.
+
+Mit \OptionValue{version}{last}\important{\OptionValue{version}{last}}%
+\textnote{Voreinstellung} kann die jeweils neuste Version ausgewählt
+werden. In diesem Fall wird also auf rückwirkende Kompatibilität
+verzichtet. Wird die Option ohne Wertangabe verwendet, so wird ebenfalls
+\PValue{last} angenommen. \ChangedAt{v3.01a}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}\and
+ \Package{scrextend}}Dies entspricht auch der Voreinstellung, solange keine
+obsolete Option verwendet wird.
+
+\IfThisCommonLabelBase{scrextend}{% scrextend kennt keine obsoleten Optionen
+}{%
+ Bei\textnote{Achtung!} der Verwendung einer obsoleten Option von
+ \KOMAScript~2 setzt \KOMAScript~3 automatisch
+ \OptionValue{version}{first}. In der dabei ausgegebenen Warnung wird
+ erklärt, wie man diese Kompatibilitätsumschaltung verhindern
+ kann. Alternativ kann man auch nach der obsoleten Option selbst eine
+ abweichende Einstellung für Option \Option{version} wählen.%
+}
+
+Die Frage der Kompatibilität betrifft in erster Linie Fragen des
+Umbruchs. Neue Möglichkeiten, die sich nicht auf den Umbruch auswirken, sind
+auch dann verfügbar, wenn man per Option die Kompatibilität zu einer älteren
+Version ausgewählt hat. Die Option hat keine Auswirkungen auf
+Umbruchänderungen, die bei Verwendung einer neueren Version durch Beseitigung
+eindeutiger Fehler entstehen. Wer\textnote{Tipp!} auch im Fehlerfall
+unbedingte Umbruchkompatibilität benötigt, sollte stattdessen mit dem Dokument
+auch die verwendete \KOMAScript-Version archivieren.
+
+\IfThisCommonLabelBase{scrlttr2}{\begin{Example}
+ Die Beispielbriefe dieses Kapitels sollen alle Möglichkeiten nutzen, die in
+ der neusten Version von \KOMAScript{} zur Verfügung stehen. Dazu muss beim
+ Laden der Klasse die Kompatibilität entsprechend gesetzt werden:%
+ \lstinputcode[xleftmargin=1em,lastline=1]{letter-0.tex}%
+ \iftrue% Umbruchkorrektur
+ Hier wurde einfach mit dem symbolischen Wert \PValue{last} die neuste
+ Version gewählt.%
+ \else%
+ Um nicht bei jeder neuen Version eine neue Versionsnummer angeben zu
+ müssen, wurde hier die Möglichkeit des symbolischen Wertes \PValue{last}
+ gewählt.%
+ \fi
+\end{Example}}{}
+
+Es\textnote{Achtung!} ist zu beachten, dass die Option \Option{version} nach
+dem Laden %
+\IfThisCommonLabelBaseOneOf{maincls,scrlttr2}{der Klasse}{%
+ des Pakets \IfThisCommonLabelBase{typearea}{\Package{typearea}}{%
+ \IfThisCommonLabelBase{scrextend}{\Package{scrextend}}{%
+ \InternalCommonFileUsageError }%
+ }%
+} nicht mehr verändert werden kann. Das Setzen mit
+\DescRef{\ThisCommonLabelBase.cmd.KOMAoptions} oder
+\DescRef{\ThisCommonLabelBase.cmd.KOMAoption} ist
+% Umbruchkorrektur!!!!
+\IfThisCommonLabelBaseNotOneOf{maincls,scrlttr2,typearea}{für diese Option }{}%
+daher nicht vorgesehen.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\phantomsection
+\label{sec:\ThisCommonLabelBase.compatibilityOptions.end}
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-dictum.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-dictum.tex
new file mode 100644
index 0000000000..22299b0e5d
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-dictum.tex
@@ -0,0 +1,284 @@
+% ======================================================================
+% common-dictum.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-dictum.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-dictum.tex}
+ [$Date: 2018-01-29 14:12:59 +0100 (Mon, 29 Jan 2018) $
+ KOMA-Script guide (common paragraphs)]
+
+
+
+
+\section{Schlauer Spruch}
+\seclabel{dictum}%
+\BeginIndexGroup
+\BeginIndex{}{Spruch}%
+\BeginIndex{}{Zitat}%
+\BeginIndex{}{Redewendung}%
+
+\IfThisCommonFirstRun{}{%
+ Es gilt sinngemäß, was in \autoref{sec:\ThisCommonFirstLabelBase.dictum}
+ geschrieben wurde. %
+ \IfThisCommonLabelBase{scrextend}{%
+ Allerdings werden von \Package{scrextend} die Anweisungen
+ \DescRef{maincls.cmd.setchapterpreamble} und
+ \DescRef{maincls.cmd.setpartpreamble} nicht definiert. %
+ \iftrue% Umbruchvariante
+ Ob die verwendete Klasse eine entsprechende Anweisung bietet, ist der
+ Anleitung zur jeweiligen Klasse zu entnehmen. %
+ \fi%
+ }{}%
+ Falls Sie also \autoref{sec:\ThisCommonFirstLabelBase.dictum} bereits
+ gelesen und verstanden haben, können Sie nach dem Ende dieses Abschnitts auf
+ \autopageref{sec:\ThisCommonLabelBase.dictum.next} mit
+ \autoref{sec:\ThisCommonLabelBase.dictum.next} fortfahren.%
+}
+
+\IfThisCommonLabelBase{scrextend}{% Umbruchkorrekturvarianten
+ Ein häufiger anzutreffendes Element ist eine Redewendung oder Zitat, das
+ rechtsbündig unter oder über einer Überschrift gesetzt wird. Dabei werden
+ der Spruch selbst und der Quellennachweis in der Regel speziell formatiert.%
+}{%
+ Ein häufiger anzutreffendes Element sind Zitate oder eine Redewendungen, die
+ mit Quellenangabe und eigener Formatierung unter oder über einer Überschrift
+ gesetzt werden.%
+}
+
+\begin{Declaration}
+ \Macro{dictum}\OParameter{Urheber}\Parameter{Spruch}
+ \Macro{dictumwidth}
+ \Macro{dictumauthorformat}\Parameter{Urheber}
+ \Macro{dictumrule}
+ \Macro{raggeddictum}
+ \Macro{raggeddictumtext}
+ \Macro{raggeddictumauthor}
+\end{Declaration}%
+Ein solcher Spruch kann mit Hilfe der Anweisung \Macro{dictum} gesetzt werden.
+\IfThisCommonLabelBase{maincls}{%
+ Bei\textnote{Tipp!} \KOMAScript-Klassen wird für Kapitel oder Teile
+ empfohlen, \Macro{dictum} als obligatorisches Argument der Anweisung
+ \DescRef{maincls.cmd.setchapterpreamble} beziehungsweise
+ \DescRef{maincls.cmd.setpartpreamble} (siehe
+ \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.cmd.setchapterpreamble}) zu verwenden. Dies ist jedoch
+ nicht zwingend.\par%
+}{}%
+Der Spruch wird\IfThisCommonLabelBase{scrextend}{ hierzu}{} zusammen mit einem
+optional anzugebenden \PName{Urheber} in einer \Macro{parbox}\IndexCmd{parbox}
+(siehe \cite{latex:usrguide}) der Breite
+\Macro{dictumwidth}\important{\Macro{dictumwidth}} gesetzt. Dabei ist
+\Macro{dictumwidth} keine Länge, die mit \Macro{setlength} gesetzt wird. Es
+handelt sich um ein Makro, das mit \Macro{renewcommand} umdefiniert werden
+kann. Vordefiniert ist \PValue{0.3333\Length{textwidth}}, also ein Drittel der
+jeweiligen Textbreite. Die Box selbst wird mit der Anweisung
+\Macro{raggeddictum}\important{\Macro{raggeddictum}}
+ausgerichtet. Voreingestellt ist dabei
+\Macro{raggedleft}\IndexCmd{raggedleft}, also rechtsbündig.
+\Macro{raggeddictum} kann mit
+\IfThisCommonLabelBase{scrextend}{% Umbruchoptimierung
+}{Hilfe von }\Macro{renewcommand} umdefiniert werden.
+
+Innerhalb der Box wird der \PName{Spruch} mit
+\Macro{raggeddictumtext}\important{\Macro{raggeddictumtext}}
+angeordnet. Voreingestellt ist hier \Macro{raggedright}\IndexCmd{raggedright},
+also linksbündig. Eine Umdefinierung ist auch hier mit \Macro{renewcommand}
+möglich. %
+\BeginIndexGroup
+\BeginIndex{FontElement}{dictum}\LabelFontElement{dictum}%
+\LabelFontElement{dictumtext}%
+Die Ausgabe erfolgt in der für Element
+\FontElement{dictum}\important{\FontElement{dictum}} eingestellten
+Schriftart, die mit den Anweisungen
+\DescRef{\ThisCommonLabelBase.cmd.setkomafont} und
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) geändert werden kann. Die
+Voreinstellung entnehmen Sie bitte
+\autoref{tab:\ThisCommonFirstLabelBase.dictumfont}%
+\IfThisCommonFirstRun{.%
+ \begin{table}
+% \centering%
+% \caption
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [{Schriftvoreinstellungen für die Elemente des
+ Spruchs}]
+ {\label{tab:\ThisCommonLabelBase.dictumfont}\hspace{0pt plus 1ex}%
+ Voreinstel\-lungen der Schrift für die Elemente des Spruchs}
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Element & Voreinstellung \\
+ \midrule
+ \DescRef{\ThisCommonLabelBase.fontelement.dictum} &
+ \Macro{normalfont}\Macro{normalcolor}\Macro{sffamily}\Macro{small}\\
+ \DescRef{\ThisCommonLabelBase.fontelement.dictumauthor} &
+ \Macro{itshape}\\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \end{table}
+}{%
+ , \autopageref{tab:\ThisCommonFirstLabelBase.dictumfont}.%
+}%
+\EndIndexGroup
+
+Ist ein \PName{Urheber} angegeben, so wird dieser mit einer Linie über die
+gesamte Breite der \Macro{parbox} vom \PName{Spruch} abgetrennt. Diese%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.10}{\Package{scrextend}}%
+ }{\InternalCommonFileUsageError}%
+} %
+Linie ist in \Macro{dictumrule}\important{\Macro{dictumrule}} definiert. Es
+handelt sich dabei um ein vertikales Objekt, das mit
+\begin{lstcode}
+ \newcommand*{\dictumrule}{\vskip-1ex\hrulefill\par}
+\end{lstcode}
+vordefiniert ist.
+
+Mit \Macro{raggeddictumauthor}\important{\Macro{raggeddictumauthor}} wird die
+Ausrichtung für die Linie und den Urheber vorgenommen. Voreingestellt ist
+\Macro{raggedleft}. Auch diese Anweisung kann mit \Macro{renewcommand}
+umdefiniert werden. Die Ausgabe erfolgt in der Form, die mit
+\Macro{dictumauthorformat}\important{\Macro{dictumauthorformat}} festgelegt
+ist. Das Makro erwartet schlicht den \PName{Urheber} als Argument. In der
+Voreinstellung ist \Macro{dictumauthorformat} mit
+\begin{lstcode}
+ \newcommand*{\dictumauthorformat}[1]{(#1)}
+\end{lstcode}
+definiert. Der \PName{Urheber} wird also in runde Klammern gesetzt. %
+\BeginIndexGroup
+\BeginIndex{FontElement}{dictumauthor}\LabelFontElement{dictumauthor}%
+Für das Element
+\FontElement{dictumauthor}\important{\FontElement{dictumauthor}} kann dabei
+eine Abweichung der Schrift von der des Elementes
+\FontElement{dictum}%
+\IndexFontElement{dictum}%
+\important{\FontElement{dictum}} definiert
+werden. Die Voreinstellung entnehmen Sie bitte
+\autoref{tab:maincls.dictumfont}. Eine Änderung ist mit Hilfe der Anweisungen
+\DescRef{\ThisCommonLabelBase.cmd.setkomafont} und
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) möglich.%
+\EndIndexGroup
+
+\IfThisCommonLabelBase{maincls}{%
+ Wird \Macro{dictum} innerhalb der Anweisung
+ \DescRef{maincls.cmd.setchapterpreamble} oder
+ \DescRef{maincls.cmd.setpartpreamble} (siehe
+ \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.cmd.setchapterpreamble}) verwendet, so ist Folgendes zu
+ beachten:\textnote{Achtung!} Die horizontale Anordnung erfolgt immer mit
+ \Macro{raggeddictum}. Das optionale Argument zur horizontalen Anordnung, das
+ die beiden Anweisungen vorsehen, bleibt daher ohne
+ Wirkung. \Length{textwidth} ist nicht die Breite des gesamten Textkörpers,
+ sondern wie bei \Environment{minipage} die aktuelle Textbreite. Ist also die
+ Breite \Macro{dictumwidth} als \PValue{.5\Length{textwidth}} definiert und
+ bei \DescRef{maincls.cmd.setchapterpreamble} wird als optionales Argument
+ für die Breite ebenfalls \PValue{.5\Length{textwidth}} angegeben, so erfolgt
+ die Ausgabe in einer Box, deren Breite ein Viertel der Breite des
+ Textkörpers ist. Es wird empfohlen\textnote{Tipp!}, bei Verwendung von
+ \Macro{dictum} auf die optionale Angabe einer Breite bei
+ \DescRef{maincls.cmd.setchapterpreamble} oder
+ \DescRef{maincls.cmd.setpartpreamble} zu verzichten.
+
+ Sollen\textnote{Tipp!} mehrere schlaue Sprüche untereinander gesetzt werden,
+ so sollten diese durch einen zusätzlichen Abstand vertikal voneinander
+ abgesetzt werden. Ein solcher kann leicht mit der Anweisung
+ \Macro{bigskip}\IndexCmd{bigskip} gesetzt werden.%
+ \iftrue%
+}{\csname iffalse\endcsname}
+
+ \begin{Example}
+ Sie schreiben ein Kapitel über die moderne Ehe. Dabei wollen Sie in der
+ Präambel zur Kapitelüberschrift einen schlauen Spruch setzen. Dieser soll
+ unter der Überschrift erscheinen. Also schreiben Sie:
+\begin{lstcode}
+ \setchapterpreamble[u]{%
+ \dictum[Schiller]{Drum prüfe,
+ wer sich ewig bindet \dots}}
+ \chapter{Die moderne Ehe}
+\end{lstcode}
+ Die Ausgabe erfolgt dann in der Form:
+ \begin{ShowOutput}
+ {\usekomafont{disposition}\usekomafont{chapter}\Large
+ 17\enskip Die moderne Ehe\raggedright\par}
+ \vspace{\baselineskip}
+ \dictum[Schiller]{Drum prüfe, wer sich ewig bindet~\dots}
+ \end{ShowOutput}
+
+ Wenn Sie wollen, dass nicht ein Drittel, sondern nur ein Viertel der
+ verfügbaren Textbreite für den Spruch verwendet wird, so definieren Sie
+ \Macro{dictumwidth} wie folgt um:
+\begin{lstcode}
+ \renewcommand*{\dictumwidth}{.25\textwidth}
+\end{lstcode}
+ \end{Example}
+
+\IfThisCommonLabelBase{maincls}{}{% Umbruchkorrekturtext
+ An dieser Stelle sei noch auf das Paket~\Package{ragged2e}%
+ \important{\Package{ragged2e}}\IndexPackage{ragged2e} hingewiesen, mit dem
+ man Flattersatz mit Trennung erreichen kann (siehe
+ \cite{package:ragged2e}).%
+}%
+\fi
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-draftmode.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-draftmode.tex
new file mode 100644
index 0000000000..77287f36cf
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-draftmode.tex
@@ -0,0 +1,130 @@
+% ======================================================================
+% common-draftmode.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-draftmode.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-draftmode.tex}
+ [$Date: 2018-01-30 13:37:05 +0100 (Tue, 30 Jan 2018) $
+ KOMA-Script guide (common paragraphs: draft)]
+
+\section{Entwurfsmodus}
+\seclabel{draft}%
+\BeginIndexGroup
+\BeginIndex{}{Entwurf}%
+
+\IfThisCommonFirstRun{}{%
+ \IfThisCommonLabelBase{scrlttr2}{Für
+ \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}}}{Es} gilt sinngemäß, was in
+ \autoref{sec:\ThisCommonFirstLabelBase.draft} geschrieben wurde. Falls Sie
+ also \autoref{sec:\ThisCommonFirstLabelBase.draft} bereits gelesen und
+ verstanden haben, können Sie nach dem Ende dieses Abschnitts auf
+ \autopageref{sec:\ThisCommonLabelBase.draft.next} mit
+ \autoref{sec:\ThisCommonLabelBase.draft.next}
+ fortfahren.\IfThisCommonLabelBase{scrlttr2}{ Das Paket \Package{scrletter}
+ bietet selbst keinen Entwurfsmodus, sondern verlässt sich diesbezüglich
+ auf die verwendete Klasse.}{}%
+}
+
+Viele Klassen und viele Pakete kennen neben dem normalen Satzmodus auch
+einen Entwurfsmodus. Die Unterschiede zwischen diesen beiden sind so
+vielfältig wie die Klassen und Pakete, die diese Unterscheidung anbieten.%
+\IfThisCommonLabelBase{scrextend}{% Umbruchkorrekturtext
+ \ So führt der Entwurfsmodus einiger Pakete auch zu Änderungen der Ausgabe,
+ die sich auf den Umbruch des Dokuments auswirken. Das ist bei
+ \Package{scrextend} jedoch nicht der Fall.%
+}{}
+
+\begin{Declaration}
+ \OptionVName{draft}{Ein-Aus-Wert}
+ \OptionVName{overfullrule}{Ein-Aus-Wert}
+\end{Declaration}%
+Mit Option \Option{draft}\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrartcl}\and
+ \Class{scrreprt}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}\OnlyAt{\Class{scrlttr2}}%
+ }{}%
+} wird zwischen Dokumenten im Entwurfsstadium und fertigen
+Dokumenten\Index{Endfassung} unterschieden. Als \PName{Ein-Aus-Wert} kann
+einer der Standardwerte für einfache Schalter aus
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} verwendet
+werden. Bei Aktivierung der Option\important{\OptionValue{draft}{true}} werden
+im Falle überlanger Zeilen am Zeilenende kleine, schwarze Kästchen
+ausgegeben. Diese Kästchen erleichtern dem ungeübten Auge, Absätze ausfindig
+zu machen, die manueller Nachbearbeitung bedürfen. Demgegenüber erscheinen in
+der Standardeinstellung \OptionValue{draft}{false} keine solchen
+Kästchen. Solche Zeilen verschwinden übrigens häufig durch Verwendung des
+Pakets
+\Package{microtype}\IndexPackage{microtype}\important{\Package{microtype}}
+\cite{package:microtype}.
+
+Da\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.25}{\Class{scrbook}\and \Class{scrartcl}\and
+ \Class{scrreprt}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.25}{\Class{scrlttr2}}%
+ }{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.25}{\Package{scrextend}}%
+ }{}%
+ }%
+} Option \Option{draft} bei verschiedenen Paketen zu allerlei unerwünschten
+Effekten führen kann, bietet \KOMAScript{} die Möglichkeit, die Markierung für
+überlange Zeilen auch über Option
+\Option{overfullrule}\important{\OptionValue{overfullrule}{true}} zu
+steuern. Auch hier gilt, dass bei aktivierter Option die Markierung angezeigt
+wird.
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-fontsize.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-fontsize.tex
new file mode 100644
index 0000000000..325e6c4f0e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-fontsize.tex
@@ -0,0 +1,202 @@
+% ======================================================================
+% common-fontsize.tex
+% Copyright (c) Markus Kohm, 2001-2017
+%
+% 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-fontsize.tex
+% Copyright (c) Markus Kohm, 2001-2017
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-fontsize.tex}
+ [$Date: 2017-12-13 10:05:13 +0100 (Wed, 13 Dec 2017) $
+ KOMA-Script guide (common paragraphs: fontsize)]
+
+\section{Wahl der Schriftgröße für das Dokument}
+\seclabel{fontOptions}
+\BeginIndexGroup
+\BeginIndex{}{Schrift>Groesse=Größe}
+
+\IfThisCommonFirstRun{%
+ Die Grundschrift und deren Größe sind zentrale Elemente der Gestaltung eines
+ Dokuments. Wie in \autoref{cha:typearea} ausgeführt wurde, hängt die
+ Auf"|teilung zwischen Satzspiegel und Rändern wesentlich davon ab. Die
+ Grundschrift ist dabei die Schrift, die für die Masse des Textes eines
+ Dokuments verwendet wird. Alle davon abweichenden Einstellungen, sei es in
+ der Form, der Dicke, der Neigung oder der Größe, stehen in einer Beziehung
+ zur Grundschrift.%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{Für \Class{scrlttr2}\OnlyAt{scrlttr2}}{Es}
+ gilt sinngemäß, was in \autoref{sec:\ThisCommonFirstLabelBase.fontOptions}
+ geschrieben wurde. \IfThisCommonLabelBase{scrlttr2}{Paket
+ \Package{scrletter} bietet selbst hingegen keine Schriftgrößenauswahl,
+ sondern verlässt sich diesbezüglich vollständig auf die verwendete
+ Klasse.}{} Falls Sie also
+ \autoref{sec:\ThisCommonFirstLabelBase.fontOptions} bereits gelesen und
+ verstanden haben, können Sie \IfThisCommonLabelBase{scrlttr2}{beim Beispiel
+ am Ende dieses Abschnitts auf
+ \autopageref{sec:\ThisCommonLabelBase.fontOptions.end} fortfahren. Wenn
+ Sie dagegen \Package{scrletter} verwenden, können Sie auch }{}%
+ direkt zu \autoref{sec:\ThisCommonLabelBase.fontOptions.next} auf
+ \autopageref{sec:\ThisCommonLabelBase.fontOptions.next} springen.%
+}
+
+\begin{Declaration}
+ \OptionVName{fontsize}{Größe}
+\end{Declaration}
+Während\IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{%
+ \textnote{\KOMAScript{} vs. Standardklassen}} von den Standardklassen und
+den meisten anderen Klassen nur eine sehr beschränkte Anzahl an Schriftgrößen
+unterstützt wird, bietet
+\IfThisCommonLabelBase{scrlttr2}{\Class{scrlttr2}}{\KOMAScript} die
+Möglichkeit, jede beliebige \PName{Größe} für die Grundschrift
+anzugeben. Dabei kann als Einheit für die \PName{Größe} auch jede bekannte
+\TeX-Einheit verwendet werden. Wird die \PName{Größe} ohne Einheit angegeben,
+so wird \PValue{pt} als Einheit angenommen. \iffree{}{Das genaue Verfahren,
+ nach dem die Schriftgröße dann eingestellt wird, ist für Experten und
+ interessierte Anwender in \autoref{sec:maincls-experts.addInfos},
+ \DescPageRef{maincls-experts.option.fontsize} dokumentiert.}
+
+Wird die Option innerhalb des Dokuments gesetzt, so werden ab diesem Punkt die
+Grundschriftgröße und die davon abhängigen Schriftgrößen der Befehle
+\Macro{tiny}, \Macro{scriptsize}, \Macro{footnotesize}, \Macro{small},
+\Macro{normalsize}, \Macro{large}, \Macro{Large}, \Macro{LARGE}, \Macro{huge}
+und \Macro{Huge} geändert. Das kann beispielsweise dann nützlich sein, wenn %
+\IfThisCommonLabelBase{scrlttr2}{ein weiterer Brief }{der Anhang }%
+insgesamt in einer kleineren Schriftgröße gesetzt werden soll.
+
+Es wird darauf\textnote{Achtung!} hingewiesen, dass bei Verwendung nach
+\IfThisCommonLabelBase{scrextend}{einem eventuellen Laden von
+ \hyperref[cha:typearea]{\Package{typearea}}\IndexPackage{typearea}%
+ \important{\hyperref[cha:typearea]{\Package{typearea}}}}{dem Laden der
+ Klasse} die Auf"|teilung zwischen Satzspiegel und Rändern nicht automatisch
+neu berechnet wird (siehe
+\DescRef{typearea.cmd.recalctypearea}\IndexCmd{recalctypearea},
+\autoref{sec:typearea.typearea},
+\DescPageRef{typearea.cmd.recalctypearea}). Wird diese Neuberechnung jedoch
+vorgenommen, so erfolgt sie auf Basis der jeweils gültigen
+Grundschriftgröße. Die Auswirkungen des Wechsels der Grundschriftgröße auf
+zusätzlich geladene Pakete oder die verwendete Klasse sind von diesen Paketen
+und der Klasse abhängig. %
+\IfThisCommonLabelBase{maincls}{%
+ Es können also Fehler auf"|treten, die nicht als Fehler von \KOMAScript{}
+ angesehen werden, und auch die \KOMAScript-Klassen selbst passen nicht alle
+ Längen an eine nach dem Laden der Klasse vorgenommene Änderung der
+ Grundschriftgröße an.%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ Dabei sind Fehler möglich, die nicht als Fehler von \KOMAScript{}
+ betrachtet werden, und auch die Klasse \Class{scrlttr2} selbst passt nicht
+ alle Längen an eine nach dem Laden der Klasse vorgenommene Änderung der
+ Grundschriftgröße an.%
+ }{%
+ Es können also Fehler auf"|treten, die nicht als Fehler von \KOMAScript{}
+ angesehen werden.%
+ }%
+}%
+
+Diese\textnote{Achtung!} Option sollte keinesfalls als Ersatz für
+\Macro{fontsize} (siehe \cite{latex:fntguide}) missverstanden werden. Sie
+sollte auch nicht anstelle einer der von der Grundschrift abhängigen
+Schriftgrößenanweisungen, \Macro{tiny} bis \Macro{Huge}, verwendet werden!
+\IfThisCommonLabelBase{scrlttr2}{%
+ Bei \Class{scrlttr2} ist \OptionValue{fontsize}{12pt} voreingestellt.
+
+ \begin{Example}
+ \phantomsection\label{sec:\ThisCommonLabelBase.fontOptions.end}%
+ Angenommen, bei dem Verein aus dem Beispielbrief handelt es sich um die
+ \emph{»Freunde ungesunder Schriftgrößen«}, weshalb er in 14\Unit{pt} statt
+ in 12\Unit{pt} gesetzt werden soll. Dies kann durch eine kleine Änderung
+ der ersten Zeile erreicht werden:%
+ \lstinputcode[xleftmargin=1em]{letter-6}%
+ Alternativ könnte die Option auch als optionales Argument von
+ \DescRef{\LabelBase.env.letter} gesetzt werden:
+ \lstinputcode[xleftmargin=1em]{letter-5}%
+ Da bei dieser späten Änderung der Schriftgröße der Satzspiegel nicht
+ geändert wird, unterscheiden sich die beiden Ergebnisse in
+ \autoref{fig:scrlttr2.letter-5-6}.
+ \begin{figure}
+ \centering
+% \setcapindent{0pt}
+% \begin{captionbeside}[{Beispiel: Brief mit Anschrift, Anrede, Text,
+% Grußfloskel, Postskriptum, Anlagen, Verteiler und ungesund großer
+% Schrift}]{Ergebnis eines kleinen Briefes mit Anschrift, Anrede, Text,
+% Grußfloskel, Postskriptum, Anlagen, Verteiler und ungesund großer
+% Schrift (Datum und Faltmarken entstammen den Voreinstellungen für
+% DIN-Briefe); links wurde die Schriftgröße als optionales Argument von
+% \DescRef{\LabelBase.env.letter} gesetzt, rechts als optionales Argument von
+% \Macro{documentclass}}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-5}}\quad
+ \frame{\includegraphics[width=.4\textwidth]{letter-6}}
+% \end{captionbeside}
+ \caption[{Beispiel: Brief mit Anschrift, Anrede, Text,
+ Grußfloskel, Postskriptum, Anlagen, Verteiler und ungesund
+ großer Schrift}]
+ {Ergebnis eines kleinen Briefes mit Anschrift, Anrede, Text,
+ Grußfloskel, Postskriptum, Anlagen, Verteiler und ungesund großer
+ Schrift (Datum und Faltmarken entstammen den Voreinstellungen für
+ DIN-Briefe); links wurde die Schriftgröße als optionales Argument von
+ \DescRef{\LabelBase.env.letter} gesetzt, rechts als optionales
+ Argument von \DescRef{\LabelBase.cmd.documentclass}}
+ \label{fig:scrlttr2.letter-5-6}
+ \end{figure}
+ \end{Example}%
+}{%
+ \IfThisCommonLabelBase{maincls}{%
+ \par
+ \phantomsection\label{sec:\ThisCommonLabelBase.fontOptions.end}%
+ Voreingestellt ist bei \Class{scrbook}, \Class{scrreprt} und
+ \Class{scrartcl} \OptionValue{fontsize}{11pt}.\textnote{\KOMAScript{}
+ vs. Standardklassen} Demgegenüber ist übrigens bei den Standardklassen
+ \Option{10pt} voreingestellt. Dies ist bei einem Wechsel von den
+ Standardklassen zu den \KOMAScript-Klassen\iffree{}{ oder bei Verwendung
+ von Option \DescRef{maincls-experts.option.emulatestandardclasses}%
+ \IndexOption{emulatestandardclasses}} gegebenenfalls zu beachten.%
+ }{}%
+}%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-footnotes.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-footnotes.tex
new file mode 100644
index 0000000000..0b0335d39c
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-footnotes.tex
@@ -0,0 +1,713 @@
+% ======================================================================
+% common-footnotes.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-footnotes.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-footnotes.tex}%
+ [$Date: 2018-01-29 14:12:59 +0100 (Mon, 29 Jan 2018) $
+ KOMA-Script guide (common paragraphs)]
+
+\section{Fußnoten}
+\seclabel{footnotes}%
+\BeginIndexGroup
+\BeginIndex{}{Fussnoten=Fußnoten}%
+
+\IfThisCommonFirstRun{}{%
+ Es gilt sinngemäß, was in \autoref{sec:\ThisCommonFirstLabelBase.footnotes}
+ geschrieben wurde. Falls Sie also
+ \autoref{sec:\ThisCommonFirstLabelBase.footnotes} bereits gelesen und
+ verstanden haben, können Sie auf
+ \autopageref{sec:\ThisCommonLabelBase.footnotes.next} mit
+ \autopageref{sec:\ThisCommonLabelBase.footnotes.next} fortfahren.%
+ \IfThisCommonLabelBase{scrlttr2}{ %
+ Wird keine \KOMAScript-Klasse verwendet, stützt sich
+ \Package{scrletter}\OnlyAt{\Package{scrletter}} auf das Paket
+ \hyperref[cha:scrextend]{\Package{scrextend}}\IndexPackage{scrextend}%
+ \important{\hyperref[cha:scrextend]{\Package{scrextend}}}. Siehe daher bei
+ Verwendung von \Package{scrletter} ebenfalls
+ \autoref{sec:scrextend.footnotes} ab
+ \autopageref{sec:scrextend.footnotes}.%
+ \iffalse% Umbruchkorrekturtext
+ \ Beachten Sie insbesondere, dass in
+ diesem Fall einige \KOMAScript-typische Erweiterungen in der
+ Voreinstellung\textnote{Voreinstellung} nicht aktiv sind. Stattdessen
+ gelten in der Voreinstellung die Fußnotenmöglichkeiten der verwendeten
+ Klasse oder des \LaTeX-Kerns.%
+ \fi%
+ }{}%
+}
+
+\IfThisCommonLabelBase{maincls}{%
+ Im\textnote{\KOMAScript{} vs. Standardklassen} Unterschied zu den
+ Standardklassen bietet \KOMAScript{} die Möglichkeit, die Form von Fußnoten
+ in vielfältiger Weise zu konfigurieren.%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ Die Anweisungen zum Setzen von Fußnoten sind in jeder \LaTeX-Einführung,
+ beispielsweise \cite{l2kurz}, zu
+ finden. \KOMAScript{}\textnote{\KOMAScript{} vs. Standardklassen} bietet
+ darüber hinaus aber auch noch die Möglichkeit, die Form der Fußnoten zu
+ verändern. %
+ \iffalse % Umbruchoptimierung
+
+ Ob Fußnoten bei Briefen überhaupt zulässig sind, hängt sehr stark von
+ der Art des Briefs und dessen Layout ab. So sind beispielsweise optische
+ Kollisionen mit dem Fuß des Briefbogens oder Verwechslungen mit der
+ Auf"|listung von Verteilern oder ähnlichen typischen Elementen von
+ Briefen zu vermeiden. Dies liegt in der Verantwortung des Anwenders.%
+
+ Da Fußnoten in Briefen eher selten verwendet werden, wurde auf Beispiele
+ in diesem Abschnitt verzichtet. Sollten Sie Beispiele benötigen, können
+ Sie solche in \autoref{sec:\ThisCommonFirstLabelBase.footnotes} ab
+ \autopageref{sec:\ThisCommonFirstLabelBase.footnotes} finden.%
+ \fi%
+ }{%
+ \IfThisCommonLabelBase{scrextend}{%
+ Die Fußnoten-Möglichkeiten der \KOMAScript-Klassen werden von
+ \Package{scrextend} ebenfalls bereitgestellt. In der Voreinstellung wird
+ die Formatierung der Fußnoten jedoch der verwendeten Klasse
+ überlassen. Dies ändert sich, sobald die Anweisung
+ \DescRef{\ThisCommonLabelBase.cmd.deffootnote} verwendet wird, die auf
+ \DescPageRef{\ThisCommonLabelBase.cmd.deffootnote} näher erläutert
+ wird.
+
+ Die Einstellmöglichkeiten für die Trennlinie über den Fußnoten werden
+ hingegen von \Package{scrextend} nicht bereitgestellt.%
+ }{\InternalCommonFileUsageError}%
+ }%
+}%
+
+
+\begin{Declaration}
+ \OptionVName{footnotes}{Einstellung}
+ \Macro{multfootsep}
+\end{Declaration}
+\IfThisCommonLabelBase{scrextend}{Bei vielen Klassen werden Fußnoten }{%
+ Fußnoten %
+ \IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ }{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}%
+ }{}%
+ } %
+ werden %
+}%
+im Text in der Voreinstellung\textnote{Voreinstellung} mit kleinen,
+hochgestellten Ziffern markiert. Werden in der
+Voreinstellung\important{\OptionValue{footnotes}{nomultiple}}
+\OptionValue{footnotes}{nomultiple} zu einer Textstelle mehrere Fußnoten
+hintereinander gesetzt, so entsteht der Eindruck, dass es sich nicht um zwei
+einzelne Fußnoten, sondern um eine einzige Fußnote mit hoher Nummer handele.
+
+Mit\important{\OptionValue{footnotes}{multiple}}
+\OptionValue{footnotes}{multiple}\IndexOption{footnotes=~multiple} werden
+Fußnoten, die unmittelbar aufeinander folgen, stattdessen mit einem
+Trennzeichen aneinander gereiht. Das in
+\Macro{multfootsep}\important{\Macro{multfootsep}} definierte Trennzeichen ist
+als
+\begin{lstcode}
+ \newcommand*{\multfootsep}{,}
+\end{lstcode}
+definiert. Es ist also mit einem Komma vorbelegt. Dieses kann umdefiniert
+werden.
+
+Der gesamte Mechanismus ist kompatibel zu
+\Package{footmisc}\IndexPackage{footmisc}\important{\Package{footmisc}},
+Version~5.3d bis 5.5b (siehe \cite{package:footmisc}) implementiert. Er wirkt
+sich sowohl auf Fußnotenmarkierungen aus, die mit
+\DescRef{\ThisCommonLabelBase.cmd.footnote}\IndexCmd{footnote} gesetzt wurden,
+als auch auf solche, die direkt mit
+\DescRef{\ThisCommonLabelBase.cmd.footnotemark}\IndexCmd{footnotemark}
+ausgegeben werden.
+
+Es ist jederzeit möglich, mit \DescRef{\ThisCommonLabelBase.cmd.KOMAoptions}
+oder \DescRef{\ThisCommonLabelBase.cmd.KOMAoption} auf die Voreinstellung
+\OptionValue{footnotes}{nomultiple} zurückzuschalten. Bei Problemen mit
+anderen Paketen, die Einfluss auf die Fußnoten nehmen, sollte die Option
+jedoch nicht verwendet und die Einstellung auch nicht innerhalb des Dokuments
+umgeschaltet werden.
+
+Eine Zusammenfassung möglicher Werte für die \PName{Einstellung} von
+\Option{footnotes} bietet
+\autoref{tab:\ThisCommonFirstLabelBase.footnotes}%
+\IfThisCommonFirstRun{%
+ .
+ \begin{table}
+ \caption[{Mögliche Werte für Option \Option{footnotes}}]{Mögliche Werte für
+ Option \Option{footnotes} zur Einstellung der Fußnoten}
+ \label{tab:\ThisCommonLabelBase.footnotes}
+ \begin{desctabular}
+ \pventry{multiple}{%
+ Unmittelbar aufeinander folgende Fußnotenmarkierungen werden durch
+ \DescRef{\ThisCommonLabelBase.cmd.multfootsep}\IndexCmd{multfootsep}
+ voneinander getrennt ausgegeben.%
+ \IndexOption{footnotes~=\textKValue{multiple}}}%
+ \pventry{nomultiple}{%
+ Unmittelbar aufeinander folgende Fußnotenmarkierungen werden auch
+ unmittelbar aufeinander folgend ausgegeben.%
+ \IndexOption{footnotes~=\textKValue{nomultiple}}}%
+ \end{desctabular}
+ \end{table}%
+}{,
+ \autopageref{tab:\ThisCommonFirstLabelBase.footnotes}.%
+}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{footnote}\OParameter{Nummer}\Parameter{Text}
+ \Macro{footnotemark}\OParameter{Nummer}
+ \Macro{footnotetext}\OParameter{Nummer}\Parameter{Text}
+ \Macro{multiplefootnoteseparator}
+\end{Declaration}%
+Fußnoten werden bei {\KOMAScript} genau wie bei den Standardklassen mit der
+Anweisung \Macro{footnote} oder den paarweise zu verwendenden Anweisungen
+\Macro{footnotemark} und \Macro{footnotetext} erzeugt. Genau wie bei den
+Standardklassen ist es möglich, dass innerhalb einer Fußnote ein
+Seiten"-umbruch erfolgt. Dies geschieht in der Regel dann, wenn die zugehörige
+Fußnotenmarkierung so weit unten auf der Seite gesetzt wird, dass keine andere
+Wahl bleibt, als die Fußnote auf die nächste Seite zu umbrechen. Im
+Unterschied\textnote{\KOMAScript{} vs. Standardklassen}%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}%
+ }{}%
+} %
+zu den Standardklassen bietet \KOMAScript{} aber zusätzlich die Möglichkeit,
+Fußnoten, die unmittelbar aufeinander folgen, automatisch zu erkennen und
+durch ein Trennzeichen auseinander zu
+rücken. Siehe\important{\DescRef{\ThisCommonLabelBase.option.footnotes}} hierzu
+die zuvor dokumentierte Option
+\DescRef{\ThisCommonLabelBase.option.footnotes}.
+
+Will man dieses Trennzeichen stattdessen von Hand setzen, so erhält man es
+durch Aufruf von \Macro{multiplefootnoteseparator}. Diese Anweisung sollten
+Anwender jedoch nicht umdefinieren, da sie neben dem Trennzeichen auch die
+Formatierung des Trennzeichen, beispielsweise die Wahl der Schriftgröße und
+das Hochstellen, enthält. Das Trennzeichen selbst ist in der zuvor erklärten
+Anweisung \DescRef{\ThisCommonLabelBase.cmd.multfootsep}%
+\important{\DescRef{\ThisCommonLabelBase.cmd.multfootsep}}%
+\IndexCmd{multfootsep} gespeichert.
+
+\IfThisCommonFirstRun{\iftrue}{%
+ Beispiele und ergänzende Hinweise sind
+ \autoref{sec:\ThisCommonFirstLabelBase.footnotes} ab
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.footnote} zu entnehmen.%
+ \csname iffalse\endcsname
+}%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.footnote}%
+ Angenommen, Sie wollen zu einem Wort zwei Fußnoten setzen. Im ersten
+ Ansatz schreiben Sie dafür
+\begin{lstcode}
+ Wort\footnote{Fußnote 1}\footnote{Fußnote 2}.
+\end{lstcode}
+ Nehmen wir weiter an, dass die Fußnoten mit 1 und 2 nummeriert werden. Da
+ die beiden Fußnotennummern direkt aufeinander folgen, entsteht jedoch der
+ Eindruck, dass das Wort nur eine Fußnote mit der Nummer 12 besitzt. Sie
+ könnten dies nun dadurch ändern, dass Sie mit
+\begin{lstcode}
+ \KOMAoptions{footnotes=multiple}
+\end{lstcode}
+ die automatische Erkennung von Fußnotenhäufungen aktivieren. Stattdessen
+ können Sie aber auch
+\begin{lstcode}
+ Wort\footnote{Fußnote 1}%
+ \multiplefootnoteseparator
+ \footnote{Fußnote 2}
+\end{lstcode}
+ verwenden. Das sollte auch dann noch funktionieren, wenn die automatische
+ Erkennung aus irgendwelchen Gründen versagt oder nicht verwendet werden
+ kann.
+
+ Nehmen wir nun an, Sie wollen außerdem, dass die Fußnotennummern
+ nicht nur durch ein Komma, sondern durch ein Komma, gefolgt von einem
+ Leerzeichen getrennt werden sollen. In diesem Fall schreiben Sie
+\begin{lstcode}
+ \renewcommand*{\multfootsep}{,\nobreakspace}
+\end{lstcode}
+ in Ihre Dokumentpräambel. \Macro{nobreakspace}\IndexCmd{nobreakspace} wurde
+ hier anstelle eines normalen Leerzeichens gewählt, damit innerhalb der
+ Reihung der Fußnotenzeichen kein Absatz- oder Seitenumbruch erfolgen kann.
+ \end{Example}%
+\fi%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{footref}\Parameter{Referenz}
+\end{Declaration}
+Manchmal%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}%
+ }{}%
+} %
+hat man in einem Dokument eine Fußnote, zu der es im Text mehrere Verweise
+geben soll. Die ungünstige Lösung dafür wäre die Verwendung von
+\DescRef{\ThisCommonLabelBase.cmd.footnotemark} unter Angabe der gewünschten
+Nummer. Ungünstig an dieser Lösung ist, dass man die Nummer kennen muss und
+sich diese jederzeit ändern kann. \KOMAScript{} bietet deshalb die
+Möglichkeit, den
+\Macro{label}-Mechanismus\IndexCmd{label}\important{\Macro{label}} auch für
+Verweise auf Fußnoten zu verwenden. Man setzt dabei in der entsprechenden
+Fußnote eine \Macro{label}-Anweisung und kann dann mit \Macro{footref} alle
+weiteren Fußnotenmarken für diese Fußnote im Text setzen.
+\IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}%
+ % Umbruchkorrektur über diverse Varianten!!!
+ \begin{Example}
+ \phantomsection
+ \xmpllabel{cmd.footref}%
+ Sie schreiben einen Text, in dem sie bei jedem Auf"|treten eines
+ Markennamens eine Fußnote setzen müssen, die darauf hinweist, dass es sich
+ um einen geschützten Markennamen handelt. Sie schreiben beispielsweise:%
+ \IfThisCommonLabelBase{maincls}{\iftrue}{\csname iffalse\endcsname}%
+\begin{lstcode}
+ Die Firma SplischSplasch\footnote{Bei diesem
+ Namen handelt es sich um eine registrierte
+ Marke. Alle Rechte daran sind dem
+ Markeninhaber vorbehalten.\label{refnote}}
+ stellt neben SplischPlumps\footref{refnote}
+ auch noch die verbesserte Version
+ SplischPlatsch\footref{refnote} her.
+\end{lstcode}
+ Es wird dann dreimal eine Marke auf dieselbe Fußnote gesetzt, einmal mit
+ \DescRef{\ThisCommonLabelBase.cmd.footnote} direkt und zweimal mit
+ \Macro{footref}.
+ \else\iftrue
+\begin{lstcode}
+ Die Firma SplischSplasch\footnote{Bei diesem
+ Namen handelt es sich um eine registrierte
+ Marke. Alle Rechte daran sind dem
+ Markeninhaber vorbehalten.\label{refnote}}
+ stellt neben SplischPlumps\footref{refnote}
+ auch noch die verbesserte Version
+ SplischPlatsch\footref{refnote} her.
+\end{lstcode}
+ Es wird dann dreimal eine Marke auf dieselbe Fußnote gesetzt, einmal
+ mit \DescRef{\ThisCommonLabelBase.cmd.footnote} direkt und zweimal mit
+ \Macro{footref}.
+ \else
+\begin{lstcode}
+ Die Firma SplischSplasch\footnote{Bei diesem
+ Namen handelt es sich um eine registrierte
+ Marke. Alle Rechte daran sind dem
+ Markeninhaber, der Firma SplischSplasch,
+ vorbehalten.\label{refnote}}
+ stellt neben SplischPlumps\footref{refnote}
+ auch noch die verbesserte Version
+ SplischPlatsch\footref{refnote} und das sehr
+ beliebte
+ SplischSplaschPlumps\footref{refnote} her.
+\end{lstcode}
+ Es wird dann vier Mal eine Marke auf dieselbe Fußnote gesetzt, einmal
+ mit \DescRef{\ThisCommonLabelBase.cmd.footnote} direkt und drei Mal
+ mit \Macro{footref}.
+ \fi%
+ \fi
+ \end{Example}
+\fi
+Da die Fußnotenmarken mit Hilfe des \Macro{label}-Mechanismus gesetzt werden,
+werden nach Änderungen, die sich auf die Fußnotennummerierung auswirken,
+gegebenenfalls zwei \LaTeX-Durchläufe benötigt, bis die mit \Macro{footref}
+gesetzten Marken korrekt sind.%
+\IfThisCommonLabelBaseOneOf{scrlttr2,scrextend}{\par%
+ Ein Beispiel zur Verwendung von \Macro{footref} finden Sie in
+ \autoref{sec:\ThisCommonFirstLabelBase.footnotes} auf
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.footref}.%
+}{}
+\IfThisCommonLabelBase{scrlttr2}{}{%
+ \par
+ Es\textnote{Achtung!} sei darauf hingewiesen, dass die Anweisung genau wie
+ \Macro{ref}\IndexCmd{ref} oder \Macro{pageref}\IndexCmd{pageref} zerbrechlich
+ ist und deshalb in beweglichen Argumenten wie Überschriften
+ \Macro{protect}\IndexCmd{protect} davor gestellt werden sollte.%
+}%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{deffootnote}\OParameter{Markenbreite}\Parameter{Einzug}%
+ \Parameter{Absatzeinzug}%
+ \Parameter{Markendefinition}
+ \Macro{deffootnotemark}\Parameter{Markendefinition}
+ \Macro{thefootnotemark}
+\end{Declaration}%
+\IfThisCommonLabelBase{maincls}{Die \KOMAScript-Klassen setzen}{\KOMAScript{}
+ setzt}\textnote{\KOMAScript{} vs. Standardklassen}
+Fußnoten etwas anders als die Standardklassen.
+Die Fußnotenmarkierung im Text, also die Referenzierung der Fußnote, erfolgt
+wie bei den Standardklassen durch kleine hochgestellte Zahlen. Genauso werden
+die Markierungen auch in der Fußnote selbst wiedergegeben. Sie werden dabei
+rechtsbündig in einem Feld der Breite \PName{Markenbreite} gesetzt. Die erste
+Zeile der Fußnote schließt direkt an das Feld der Markierung an.
+
+Alle weiteren Zeilen werden um den Betrag von \PName{Einzug} eingezogen
+ausgegeben. Wird der optionale Parameter \PName{Markenbreite} nicht angegeben,
+dann entspricht er dem Wert von \PName{Einzug}. Sollte die Fußnote aus
+mehreren Absätzen bestehen, dann wird die erste Zeile eines Absatzes
+zusätzlich mit dem Einzug der Größe \PName{Absatzeinzug} versehen.
+
+\autoref{fig:\ThisCommonFirstLabelBase.deffootnote} %
+\IfThisCommonFirstRun{}{auf
+ \autopageref{fig:\ThisCommonFirstLabelBase.deffootnote} }{}%
+veranschaulicht die verschiedenen Parameter%
+\IfThisCommonLabelBase{maincls}{ nochmals}{}%
+. Die Voreinstellung in den \KOMAScript-Klassen entspricht folgender
+Definition: \IfThisCommonLabelBase{scrextend}{\iftrue}{\csname
+ iffalse\endcsname}%
+\begin{lstcode}
+ \deffootnote[1em]{1.5em}{1em}{%
+ \textsuperscript{\thefootnotemark}}
+\end{lstcode}
+\else
+\begin{lstcode}
+ \deffootnote[1em]{1.5em}{1em}{%
+ \textsuperscript{\thefootnotemark}%
+ }
+\end{lstcode}
+\fi%
+Dabei wird mit Hilfe von \DescRef{\ThisCommonLabelBase.cmd.textsuperscript}
+sowohl die Hochstellung als auch die Wahl einer kleineren Schrift
+erreicht. Die Anweisung \Macro{thefootnotemark} liefert die aktuelle
+Fußnotenmarke ohne jegliche Formatierung.%
+\IfThisCommonLabelBase{scrextend}{ %
+ Das Paket \Package{scrextend} überlässt hingegen in der Voreinstellung das
+ Setzen der Fußnoten der verwendeten Klasse. Das Laden des Pakets allein
+ sollte daher noch zu keinerlei Änderungen bei der Formatierung der Fußnoten
+ oder der Fußnotenmarken führen. Zur Übernahme der Voreinstellungen der
+ \KOMAScript-Klassen muss man vielmehr obige Einstellung selbst
+ vornehmen. Dazu können obige Code-Zeilen beispielsweise unmittelbar nach dem
+ Laden von \Package{scrextend} eingefügt werden.%
+}{}%
+
+\IfThisCommonLabelBase{maincls}{%
+ \begin{figure}
+% \centering
+ \KOMAoption{captions}{bottombeside}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Parameter für die Darstellung der
+ Fußnoten}]%
+ {\label{fig:\ThisCommonLabelBase.deffootnote}\hspace{0pt plus 1ex}%
+ \mbox{Parameter} für die Darstellung der Fußnoten}%
+ [l]
+ \setlength{\unitlength}{1.02mm}
+ \begin{picture}(95,22)
+ \thinlines
+ % frame of following paragraph
+ \put(5,0){\line(1,0){90}}
+ \put(5,0){\line(0,1){5}}
+ \put(10,5){\line(0,1){5}}\put(5,5){\line(1,0){5}}
+ \put(95,0){\line(0,1){10}}
+ \put(10,10){\line(1,0){85}}
+ % frame of first paragraph
+ \put(5,11){\line(1,0){90}}
+ \put(5,11){\line(0,1){5}}
+ \put(15,16){\line(0,1){5}}\put(5,16){\line(1,0){10}}
+ \put(95,11){\line(0,1){10}}
+ \put(15,21){\line(1,0){80}}
+ % box of the footnote mark
+ \put(0,16.5){\framebox(14.5,4.5){\mbox{}}}
+ % description of paragraphs
+ \put(45,16){\makebox(0,0)[l]{%
+ \small\textsf{erster Absatz einer Fußnote}}}
+ \put(45,5){\makebox(0,0)[l]{%
+ \small\textsf{folgender Absatz einer Fußnote}}}
+ % help lines
+ \thicklines
+ \multiput(0,0)(0,3){7}{\line(0,1){2}}
+ \multiput(5,0)(0,3){3}{\line(0,1){2}}
+ % parameters
+ \put(2,7){\vector(1,0){3}}
+ \put(5,7){\line(1,0){5}}
+ \put(15,7){\vector(-1,0){5}}
+ \put(15,7){\makebox(0,0)[l]{\small\PName{Absatzeinzug}}}
+ %
+ \put(-3,13){\vector(1,0){3}}
+ \put(0,13){\line(1,0){5}}
+ \put(10,13){\vector(-1,0){5}}
+ \put(10,13){\makebox(0,0)[l]{\small\PName{Einzug}}}
+ %
+ \put(-3,19){\vector(1,0){3}}
+ \put(0,19){\line(1,0){14.5}}
+ \put(19.5,19){\vector(-1,0){5}}
+ \put(19.5,19){\makebox(0,0)[l]{\small\PName{Markenbreite}}}
+ \end{picture}
+ \end{captionbeside}
+ \end{figure}%
+}{}
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{footnote}\LabelFontElement{footnote}%
+\BeginIndex{FontElement}{footnotelabel}\LabelFontElement{footnotelabel}%
+Auf%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{} die Fußnote einschließlich der Markierung findet außerdem die für das
+Element \FontElement{footnote}\important{\FontElement{footnote}} eingestellte
+Schriftart Anwendung. Die % Umbruchkorrekturvarianten
+%\IfThisCommonLabelBase{maincls}{davon abweichende }{}%
+Schriftart der Markierung kann %
+\IfThisCommonLabelBase{maincls}{}{jedoch }%
+mit Hilfe der Anweisungen \DescRef{\ThisCommonLabelBase.cmd.setkomafont} und
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) für das Element
+\FontElement{footnotelabel}\important{\FontElement{footnotelabel}} davon
+abweichend eingestellt werden. Siehe hierzu auch
+\autoref{tab:\ThisCommonFirstLabelBase.fontelements},
+\autopageref{tab:\ThisCommonFirstLabelBase.fontelements}. Voreingestellt ist
+jeweils keine Umschaltung der Schrift.%
+\IfThisCommonLabelBase{scrextend}{ %
+ Die Elemente finden bei scrextend jedoch nur dann Anwendung, wenn die
+ Fußnoten mit diesem Paket gesetzt werden, also \Macro{deffootnote} verwendet
+ wurde.%
+}{} Bitte\textnote{Achtung!} missbrauchen Sie das Element nicht für andere
+Zwecke, beispielsweise zur Verwendung von Flattersatz in den Fußnoten (siehe
+dazu auch \DescRef{\LabelBase.cmd.raggedfootnote},
+\DescPageRef{\LabelBase.cmd.raggedfootnote}).
+
+\BeginIndex{FontElement}{footnotereference}%
+\LabelFontElement{footnotereference}%
+Die Fußnotenmarkierung im Text wird getrennt von der Markierung vor der
+Fußnote definiert. Dies geschieht mit der Anweisung
+\Macro{deffootnotemark}. Voreingestellt ist hier:
+\begin{lstcode}
+ \deffootnotemark{\textsuperscript{\thefootnotemark}}
+\end{lstcode}
+Dabei findet%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{} die Schriftart für das Element
+\FontElement{footnotereference}\IndexFontElement{footnotereference}%
+\important{\FontElement{footnotereference}} Anwendung (siehe %
+\autoref{tab:\ThisCommonLabelBase.fontelements},
+\autopageref{tab:\ThisCommonLabelBase.fontelements}). Die Markierungen im Text
+und in der Fußnote selbst sind also identisch. Die Schriftart kann mit den
+Anweisungen \DescRef{\ThisCommonLabelBase.cmd.setkomafont} und
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) jedoch geändert werden%
+\IfThisCommonLabelBase{scrextend}{, sobald die Anweisung
+ \DescRef{\ThisCommonLabelBase.cmd.deffootnotemark} verwendet wird}{}.
+
+\IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}%
+ \begin{Example}
+ \phantomsection
+ \xmpllabel{cmd.deffootnote}%
+ Relativ\textnote{Tipp!} häufig wird gewünscht, dass die Markierung in der
+ Fußnote selbst weder hochgestellt noch kleiner gesetzt wird. Dabei soll
+ sie aber nicht direkt am Text kleben, sondern geringfügig davor
+ stehen. Dies kann zum einen wie folgt erreicht werden:
+\begin{lstcode}
+ \deffootnote{1em}{1em}{\thefootnotemark\ }
+\end{lstcode}
+ Die Fußnotenmarkierung und das folgende Leerzeichen wird also rechtsbündig
+ in eine Box der Breite 1\Unit{em} gesetzt. Die folgenden Zeilen der
+ Fußnote werden gegenüber dem linken Rand ebenfalls um 1\Unit{em}
+ eingezogen.
+
+ Eine\textnote{Tipp!} weitere, oft gefragte Formatierung sind linksbündige
+ Fußnotenmarkierungen in der Fußnote. Diese können mit folgender Definition
+ erhalten werden:
+\begin{lstcode}
+ \deffootnote{1.5em}{1em}{%
+ \makebox[1.5em][l]{\thefootnotemark}%
+ }
+\end{lstcode}
+
+ Sollen jedoch die Fußnoten insgesamt lediglich in einer anderen
+ Schriftart, beispielsweise serifenlos gesetzt werden, so ist dies ganz
+ einfach mit Hilfe der Anweisungen
+ \DescRef{\ThisCommonLabelBase.cmd.setkomafont} und
+ \DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (siehe
+ \autoref{sec:\ThisCommonLabelBase.textmarkup},
+ \DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) zu lösen:
+\begin{lstcode}
+ \setkomafont{footnote}{\sffamily}
+\end{lstcode}%
+ \end{Example}%
+ \IfThisCommonLabelBase{scrextend}{}{%
+ Wie die Beispiele zeigen, ermöglicht {\KOMAScript} mit dieser einfachen
+ Benutzerschnittstelle eine große Vielfalt unterschiedlicher
+ Fußnotenformatierungen.%
+ }%
+\fi%
+\IfThisCommonFirstRun{}{%
+ Beispiele finden Sie in
+ \autoref{sec:\ThisCommonFirstLabelBase.footnotes},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.deffootnote}.%
+}{}%
+%
+\EndIndexGroup
+\EndIndexGroup
+
+\IfThisCommonLabelBase{scrextend}{\iffalse}{\csname iftrue\endcsname}
+\begin{Declaration}
+ \Macro{setfootnoterule}\OParameter{Höhe}\Parameter{Länge}%
+\end{Declaration}%
+Üblicherweise%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.06}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.06}{\Class{scrlttr2}}%
+ }{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.06}{\Package{scrextend}}%
+ }{}%
+ }%
+} %
+wird zwischen dem Textbereich und dem Fußnotenapparat eine Trennlinie gesetzt,
+die jedoch normalerweise nicht über die gesamte Breite des Satzspiegels
+geht. Mit Hilfe dieser Anweisung kann die genaue Länge und die Höhe oder Dicke
+der Linie bestimmt werden. Dabei werden \PName{Höhe} und \PName{Länge} erst
+beim Setzen der Linie selbst abhängig von \Macro{normalsize} ausgewertet. Der
+optionale Parameter \PName{Höhe} kann komplett entfallen und wird dann nicht
+geändert. Ist das Argument \PName{Höhe} oder \PName{Länge} leer, so wird die
+jeweilige Größe ebenfalls nicht geändert. Es gibt sowohl beim Setzen als auch
+bei Verwendung der Größen für unplausible Werte eine Warnung.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{footnoterule}\LabelFontElement{footnoterule}%
+Die Farbe%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.07}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.07}{\Class{scrlttr2}}%
+ }{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.07}{\Package{scrextend}}%
+ }{}%
+ }%
+} %
+der Linie kann über das Element
+\FontElement{footnoterule}\important{\FontElement{footnoterule}} mit Hilfe der
+Anweisungen \DescRef{\ThisCommonLabelBase.cmd.setkomafont} und
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) eingestellt
+werden. Voreingestellt ist hierbei keinerlei Änderung von Schrift oder
+Farbe. Um die Farbe ändern zu können, muss außerdem ein Farbpaket wie
+\Package{xcolor}\IndexPackage{xcolor}\important{\Package{xcolor}} geladen
+sein.%
+\EndIndexGroup
+\EndIndexGroup
+\fi
+
+\begin{Declaration}
+ \Macro{raggedfootnote}
+\end{Declaration}
+In%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.23}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.23}{\Class{scrlttr2}}%
+ }{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.23}{\Package{scrextend}}%
+ }{}%
+ }%
+} %
+der Voreinstellung werden die Fußnoten bei \KOMAScript{} genau wie bei den
+Standardklassen im Blocksatz gesetzt. Es\textnote{\KOMAScript{}
+ vs. Standardklassen} ist aber auch möglich die Formatierung abweichend vom
+restlichen Dokument zu ändern. Dazu ist \Macro{raggedfootnote}
+umzudefinieren. Gültige Definitionen wären
+\Macro{raggedright}\IndexCmd{raggedright},
+\Macro{raggedleft}\IndexCmd{raggedleft},
+\Macro{centering}\IndexCmd{centering}, \Macro{relax}\IndexCmd{relax} oder
+entsprechend der Voreinstellung eine leere Definition. Auch die
+Ausrichtungsbefehle des Pakets \Package{ragged2e}\IndexPackage{ragged2e} sind
+zulässig (siehe \cite{package:ragged2e}).
+\IfThisCommonLabelBase{scrextend}{%
+ Ein passendes Beispiel ist in
+ \autoref{sec:\ThisCommonFirstLabelBase.footnotes},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.raggedfootnote} zu finden.%
+ \iffalse
+}{\csname iftrue\endcsname}%
+\begin{Example}
+ \phantomsection\xmpllabel{cmd.raggedfootnote}%
+ Angenommen Sie verwenden Fußnoten ausschließlich, um Hinweise auf sehr lange
+ Links anzugeben, deren Umbruch im Blocksatz zu schlechten Ergebnissen
+ führen. Dann könnten Sie in der Dokumentpräambel mit
+\begin{lstcode}
+ \let\raggedfootnote\raggedright
+\end{lstcode}
+ für die Fußnoten einfach auf linksbündigen Flattersatz umschalten.
+\end{Example}%
+\fi
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide"
+%%% End:
+
+% LocalWords: Fußnotennummern Fußnotenmarkierung Satzspiegels
+% LocalWords: Standardklassen Fußnotenformatierungen Dokumentpräambel
+% LocalWords: Fußnotenmöglichkeiten
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-headfootheight.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-headfootheight.tex
new file mode 100644
index 0000000000..75c18a8250
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-headfootheight.tex
@@ -0,0 +1,176 @@
+% ======================================================================
+% common-headfootheight.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-headfootheight.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-headfootheight.tex}
+ [$Date: 2018-01-16 11:41:41 +0100 (Tue, 16 Jan 2018) $
+ KOMA-Script guide (common paragraph: Head and Foot Height)]
+
+
+
+
+\section{Höhe von Kopf und Fuß}
+\seclabel{height}
+
+\BeginIndexGroup
+\BeginIndex{}{Kopf>Hoehe=Höhe}%
+\BeginIndex{}{Fuss=Fuß>Hoehe=Höhe}%
+\IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \begin{Explain}%
+ 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}%
+}{%
+ \iffree{Der }{}Kopf und \iffree{der }{}Fuß einer Seite sind zentrale
+ Elemente nicht nur des Seitenstils. \iffree{Auch eine Ebene kann bei der
+ Definition über entsprechende Optionen genau darauf beschränkt werden
+ (siehe \autoref{tab:scrlayer.layerkeys} ab
+ \autopageref{tab:scrlayer.layerkeys}). }{}Deshalb muss die Höhe beider
+ Elemente bekannt sein.%
+}
+
+\IfThisCommonFirstRun{}{%
+ Es gilt sinngemäß, was in
+ \autoref{sec:\ThisCommonFirstLabelBase.height} geschrieben
+ wurde. Falls Sie also \autoref{sec:\ThisCommonFirstLabelBase.height}
+ bereits gelesen und verstanden haben, können Sie auf
+ \autopageref{sec:\ThisCommonLabelBase.height.next} mit
+ \autoref{sec:\ThisCommonLabelBase.height.next} fortfahren.%
+}
+
+
+\begin{Declaration}
+ \Length{footheight}
+ \Length{headheight}
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \OptionVName{autoenlargeheadfoot}{Ein-Aus-Wert}%
+ }{}%
+\end{Declaration}
+Das Paket \Package{scrlayer} führt als neue Länge \Length{footheight} analog
+zur Höhe \Length{headheight}\IfThisCommonLabelBase{scrlayer-scrpage}{}{ des
+ \LaTeX-Kerns} ein. Gleichzeitig interpretiert
+\Package{scrlayer\IfThisCommonLabelBase{scrlayer-scrpage}{-scrpage}{}}
+\Length{footskip} so, dass es den Abstand der letzten Grundlinie des
+Textbereichs von der ersten Standard-Grundlinie des Fußes darstellt. Das Paket
+\hyperref[cha:typearea]{\Package{typearea}}\IndexPackage{typearea}%
+\important{\hyperref[cha:typearea]{\Package{typearea}}} betrachtet dies in
+gleicher Weise, so dass die dortigen Optionen zum Setzen der Höhe des Fußes
+(siehe die Optionen \DescRef{typearea.option.footheight} und
+\DescRef{typearea.option.footlines} in \autoref{sec:typearea.typearea},
+\DescPageRef{typearea.option.footheight}) und zur Berücksichtigung des Fußes
+bei der Berechnung des Satzspiegels (siehe Option
+\DescRef{typearea.option.footinclude} in demselben Abschnitt,
+\DescPageRef{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 \hyperref[cha:typearea]{\Package{typearea}}%
+\important{\hyperref[cha:typearea]{\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} Einstellmöglichkeiten.%
+\IfThisCommonLabelBase{scrlayer-scrpage}{\par%
+ Wurde der Kopf oder der Fuß für den tatsächlich verwendeten Inhalt zu klein
+ gewählt, so versucht \Package{scrlayer-scrpage} in der
+ Voreinstellung\textnote{Voreinstellung} 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. Über
+ Option\ChangedAt{v3.25}{\Package{scrlayer-scrpage}}
+ \Option{autoenlargeheadfoot} kann dieses Verhalten jedoch geändert
+ werden. Die Option versteht die Werte für einfache Schalter aus
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}. In der
+ Voreinstellung ist die Option aktiviert. Wird sie deaktiviert, so werden
+ Kopf und Fuß nicht mehr automatisch vergrößert, sondern nur noch eine
+ Warnung mit Hinweisen für passende Einstellungen ausgegeben.%
+}{%
+ \IfThisCommonLabelBase{scrlayer}{\par%
+ Wurde der Kopf oder Fuß für den tatsächlich verwendeten Inhalt zu klein
+ gewählt, so toleriert \Package{scrlayer} dies in der Regel ohne
+ Fehlermeldung oder Warnung. Der Kopf dehnt sich dann entsprechend seiner
+ Höhe in der Regel weiter nach oben, der Fuß entsprechend weiter nach unten
+ aus. Informationen darüber erhält man jedoch nicht automatisch. Pakete wie
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ \important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}%
+ \IndexPackage{scrlayer-scrpage}, die auf \Package{scrlayer} aufbauen,
+ enthalten dagegen gegebenenfalls eigene Tests, die auch zu eigenen
+ Aktionen führen können (siehe \DescRef{scrlayer-scrpage.length.headheight}
+ und \DescRef{scrlayer-scrpage.length.footheight} auf
+ \DescPageRef{scrlayer-scrpage.length.headheight}).%
+ }{}%
+}%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "scrguide.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/macros/latex/contrib/koma-script/source-doc/ngerman/common-interleafpage.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-interleafpage.tex
new file mode 100644
index 0000000000..4e4803e936
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-interleafpage.tex
@@ -0,0 +1,361 @@
+% ======================================================================
+% common-interleafpage.tex
+% Copyright (c) Markus Kohm, 2001-2017
+%
+% 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-interleafpage.tex
+% Copyright (c) Markus Kohm, 2001-2017
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-interleafpage.tex}
+ [$Date: 2017-12-07 11:43:47 +0100 (Thu, 07 Dec 2017) $
+ KOMA-Script guide (common paragraphs)]
+
+\section{Vakatseiten}
+\seclabel{emptypage}%
+\BeginIndexGroup
+\BeginIndex{}{Vakatseite}%
+\BeginIndex{}{Seiten>Stil}%
+
+\IfThisCommonFirstRun{}{%
+ Es gilt sinngemäß, was in
+ \autoref{sec:\ThisCommonFirstLabelBase.emptypage} geschrieben
+ wurde. Falls Sie also \autoref{sec:\ThisCommonFirstLabelBase.emptypage}
+ bereits gelesen und verstanden haben, können Sie auf
+ \autopageref{sec:\ThisCommonLabelBase.emptypage.next} mit
+ \autoref{sec:\ThisCommonLabelBase.emptypage.next} fortfahren.%
+}
+
+Vakatseiten sind Seiten, die beim Satz eines Dokuments 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
+vorherige 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.
+%
+\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.%
+\fi%
+
+\IfThisCommonLabelBase{scrlttr2}{%
+ Vakatseiten sind bei Briefen eher unüblich. Das liegt nicht zuletzt daran,
+ dass wahrhaft doppelseitige Briefe recht selten sind, da Briefe
+ normalerweise nicht gebunden werden. Trotzdem unterstützt \KOMAScript{} auch
+ für den Fall von doppelseitigen Briefen Einstellungen für
+ Vakatseiten. Da die hier vorgestellten Anweisungen aber in Briefen kaum
+ Verwendung finden, finden Sie hier keine Beispiele. Bei Bedarf orientieren
+ Sie sich bitte an den Beispielen in \autoref{sec:maincls.emptypage} ab
+ \autopageref{sec:maincls.emptypage}.%
+}{}%
+
+\begin{Declaration}
+ \OptionVName{cleardoublepage}{Seitenstil}%
+ \OptionValue{cleardoublepage}{current}
+\end{Declaration}%
+Mit Hilfe dieser Option%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}%
+ }{}%
+} %
+kann man den \PName{Seitenstil} der Vakatseite bestimmen, die bei Bedarf von
+den Anweisungen \DescRef{\LabelBase.cmd.cleardoublepage},
+\DescRef{\LabelBase.cmd.cleardoubleoddpage} oder
+\DescRef{\LabelBase.cmd.cleardoubleevenpage} eingefügt wird, um bis zur
+gewünschten Seite zu umbrechen. Als \PName{Seitenstil} sind dabei alle bereits
+definierten Seitenstile (siehe \autoref{sec:\ThisCommonLabelBase.pagestyle} ab
+\autopageref{sec:\ThisCommonLabelBase.pagestyle} und
+\autoref{cha:scrlayer-scrpage} ab \autopageref{cha:scrlayer-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%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}%
+ }{}%
+} %
+werden in der Voreinstellung\textnote{Voreinstellung} entsprechend der
+typografischen Gepflogenheiten Vakatseiten mit dem Seitenstil
+\IfThisCommonLabelBase{scrextend}{\DescRef{maincls.pagestyle.empty}}{%
+ \DescRef{\ThisCommonLabelBase.pagestyle.empty}}\IndexPagestyle{empty}
+erzeugt, wenn man nicht Kompatibilität zu früheren \KOMAScript-Versionen
+eingestellt hat (siehe Option \DescRef{\ThisCommonLabelBase.option.version}%
+\important{\OptionValueRef{\LabelBase}{version}{2.98c}},
+\autoref{sec:\ThisCommonLabelBase.compatibilityOptions},
+\DescPageRef{\ThisCommonLabelBase.option.version}).
+\IfThisCommonLabelBase{maincls}{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{option.cleardoublepage}%
+ Angenommen, Sie wollen, dass die Vakatseiten bis auf die Paginierung leer
+ sind\iffree{, also mit Seitenstil \IfThisCommonLabelBase{scrextend}{%
+ \DescRef{maincls.pagestyle.plain}}{\DescRef{\LabelBase.pagestyle.plain}}
+ erzeugt werden}{}. Dies erreichen Sie \iffree{beispielsweise }{}mit:
+\begin{lstcode}
+ \KOMAoptions{cleardoublepage=plain}
+\end{lstcode}
+ Näheres zum Seitenstil \IfThisCommonLabelBase{scrextend}{%
+ \DescRef{maincls.pagestyle.plain}}{\DescRef{\LabelBase.pagestyle.plain}}
+ ist in
+ \IfThisCommonLabelBase{scrextend}{%
+ \autoref{sec:maincls.pagestyle}}{%
+ \autoref{sec:\LabelBase.pagestyle}},
+ \IfThisCommonLabelBase{scrextend}{%
+ \DescPageRef{maincls.pagestyle.plain}}{%
+ \DescPageRef{\LabelBase.pagestyle.plain}} zu finden.
+ \end{Example}
+\else
+ \IfThisCommonLabelBase{scrextend}{%
+ Ein Beispiel für die Bestimmung des Seitenstils von Vakatseiten finden Sie
+ in \autoref{sec:\ThisCommonFirstLabelBase.emptypage},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.option.cleardoublepage}.%
+ \iffalse% Umbruchvariante ohne Beispiel
+ }{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{option.cleardoublepage}%
+ Angenommen, Sie wollen, dass die Vakatseiten bis auf die Paginierung
+ leer sind, also mit Seitenstil \IfThisCommonLabelBase{scrextend}{%
+ \DescRef{maincls.pagestyle.plain}}{\DescRef{\LabelBase.pagestyle.plain}}
+ erzeugt werden. Dies erreichen Sie beispielsweise mit
+\begin{lstcode}
+ \KOMAoptions{cleardoublepage=plain}
+\end{lstcode}
+ Näheres zum Seitenstil \DescRef{maincls.pagestyle.plain} ist in
+ \autoref{sec:maincls.pagestyle},
+ \DescPageRef{maincls.pagestyle.plain}
+ zu finden.
+ \end{Example}%
+ \fi%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{clearpage}%
+ \Macro{cleardoublepage}%
+ \Macro{cleardoublepageusingstyle}\Parameter{Seitenstil}%
+ \Macro{cleardoubleemptypage}%
+ \Macro{cleardoubleplainpage}%
+ \Macro{cleardoublestandardpage}%
+ \Macro{cleardoubleoddpage}%
+ \Macro{cleardoubleoddpageusingstyle}\Parameter{Seitenstil}%
+ \Macro{cleardoubleoddemptypage}%
+ \Macro{cleardoubleoddplainpage}%
+ \Macro{cleardoubleoddstandardpage}%
+ \Macro{cleardoubleevenpage}%
+ \Macro{cleardoubleevenpageusingstyle}\Parameter{Seitenstil}%
+ \Macro{cleardoubleevenemptypage}%
+ \Macro{cleardoubleevenplainpage}%
+ \Macro{cleardoubleevenstandardpage}
+\end{Declaration}%
+Im\textnote{Standardklassen} \LaTeX-Kern existiert die Anweisung
+\Macro{clearpage}, die dafür sorgt, dass alle noch nicht ausgegebenen
+Gleitumgebungen ausgegeben werden und anschließend eine neue Seite begonnen
+wird. Außerdem existiert die Anweisung \Macro{cleardoublepage}, die wie
+\Macro{clearpage} arbeitet, durch die aber im doppelseitigen Layout (siehe
+Option \DescRef{typearea.option.twoside} in \autoref{sec:typearea.typearea},
+\DescPageRef{typearea.option.twoside}) eine neue rechte Seite begonnen
+wird. Dazu wird gegebenenfalls eine linke Vakatseite im aktuellen Seitenstil
+ausgegeben.
+
+Bei {\KOMAScript}\textnote{\KOMAScript} arbeitet
+\Macro{cleardoubleoddstandardpage}%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.00}{\Class{scrlttr2}}%
+ }{}%
+} %
+genau in der soeben für die Standardklassen beschriebenen Art und Weise. Die
+Anweisung \Macro{cleardoubleoddplainpage}%
+\important{\IfThisCommonLabelBase{scrextend}{%
+ \DescRef{maincls.pagestyle.plain}}{\DescRef{\LabelBase.pagestyle.plain}}}
+ändert demgegenüber den Seitenstil der leeren linken Seite zusätzlich auf
+\IfThisCommonLabelBase{scrextend}{%
+ \DescRef{maincls.pagestyle.plain}}{\DescRef{\LabelBase.pagestyle.plain}}%
+\IndexPagestyle{plain}, um den
+\IfThisCommonLabelBase{scrlttr2}{Seitenkopf}{Kolumnentitel} zu
+unterdrücken. Analog dazu wird bei der Anweisung
+\Macro{cleardoubleoddemptypage}%
+\important{%
+ \IfThisCommonLabelBase{scrextend}{\DescRef{maincls.pagestyle.empty}}{%
+ \DescRef{\LabelBase.pagestyle.empty}}} der Seitenstil
+\IfThisCommonLabelBase{scrextend}{\DescRef{maincls.pagestyle.empty}}{%
+ \DescRef{\LabelBase.pagestyle.empty}}\IndexPagestyle{empty} verwendet, um
+sowohl \IfThisCommonLabelBase{scrlttr2}{Seitenkopf als auch
+ Seitenfuß}{Kolumnentitel als auch Seitenzahl} auf der leeren linken Seite zu
+unterdrücken. Die Seite ist damit vollständig leer. Will man für die
+Vakatseite einen eigenen \PName{Seitenstil} vorgeben, so ist dieser als
+Argument von \Macro{cleardoubleoddpageusingstyle} anzugeben. Dabei kann jeder
+bereits definierte Seitenstil (siehe auch \autoref{cha:scrlayer-scrpage})
+verwendet werden.
+
+\IfThisCommonLabelBase{scrlttr2}{}{%
+ Manchmal\textnote{ungerade Vakatseiten} möchte man nicht, dass Kapitel mit
+ neuen rechten Seiten, sondern links auf einer Doppelseite beginnen. Dies
+ widerspricht zwar dem klassischen Buchdruck, kann jedoch seine Berechtigung
+ haben, wenn die Doppelseite am Kapitelanfang einen ganz speziellen Inhalt
+ hat. Bei \KOMAScript{} ist deshalb die Anweisung
+ \Macro{cleardoubleevenstandardpage} als Äquivalent zur Anweisung
+ \Macro{cleardoubleoddstandardpage} definiert, jedoch mit dem Unterschied,
+ dass die nächste Seite eine linke Seite ist. Entsprechendes gilt für die
+ Anweisungen \Macro{cleardoubleevenplainpage},
+ \Macro{cleardoubleevenemptypage}%
+ \IfThisCommonLabelBase{maincls}{% Umbruchoptimierungsalternative
+ \ und für die ein Argument erwartende Anweisung}{,}
+ \Macro{cleardoubleevenpageusingstyle}.%
+}
+
+Die Arbeitsweise der Anweisungen \Macro{cleardoublestandardpage},
+\Macro{cleardoubleemptypage}, \Macro{cleardoubleplainpage} und der ein
+Argument erwartenden Anweisung \Macro{cleardoublepageusingstyle} %
+\IfThisCommonLabelBase{maincls}{%
+ ist ebenso wie die Standard-Anweisung \Macro{cleardoublepage} von der in
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.option.open} erklärten
+ Option \DescRef{maincls.option.open}%
+ \IndexOption{open}\important{\DescRef{maincls.option.open}} abhängig und
+ entspricht je nach Einstellung einer der in den vorherigen Absätzen
+ erläuterten Anweisungen.
+
+}{%
+ entspricht \IfThisCommonLabelBase{scrlttr2}{bei der Klasse
+ \Class{scrlttr2}}{%
+ \IfThisCommonLabelBase{scrextend}{beim Paket \Package{scrextend}}{%
+ \InternalCommonFileUsageError}%
+ } ebenso wie die Standard-Anweisung \Macro{cleardoublepage} den
+ entsprechenden, zuvor erklärten Anweisungen%
+ \IfThisCommonLabelBase{scrlttr2}{. %
+ Die übrigen Anweisungen sind bei \Class{scrlttr2} nur aus Gründen der
+ Vollständigkeit definiert. Näheres zu diesen ist bei Bedarf
+ \autoref{sec:maincls.emptypage}, \DescPageRef{maincls.cmd.cleardoublepage}
+ zu entnehmen%
+ }{%
+ \ für den Umbruch zur nächsten ungeraden Seite%
+ }.%
+}%
+\IfThisCommonLabelBaseOneOf{scrlttr2,scrextend}{\iffalse}{\csname
+ iftrue\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.cleardoublepage}%
+ Angenommen, Sie wollen innerhalb eines Dokuments als nächstes eine
+ Doppelseite setzen, bei der auf der linken Seite eine Abbildung in Größe
+ des Satzspiegels platziert wird und rechts ein neues Kapitel
+ beginnt. Falls das vorherige Kapitel mit einer linken Seite endet, muss
+ also eine Vakatseite eingefügt werden. Diese soll komplett leer
+ sein. Ebenso soll die linke Bildseite weder Kopf noch Fußzeile
+ besitzen.
+\iffalse% Umbruchkorrekturtext
+ Zunächst wird mit
+\begin{lstcode}
+ \KOMAoptions{cleardoublepage=empty}
+\end{lstcode}
+ dafür gesorgt, dass Vakatseiten mit dem Seitenstil
+ \IfThisCommonLabelBase{scrextend}{\DescRef{maincls.pagestyle.empty}}{%
+ \DescRef{\LabelBase.pagestyle.empty}}, also ohne Kopf- und Fußzeile
+ gesetzt
+ werden. Diese Einstellung können Sie bereits in der Dokumentpräambel
+ vornehmen. Die Optionen können alternativ auch als optionale Argumente von
+ \DescRef{\ThisCommonLabelBase.cmd.documentclass} angegeben werden.
+\fi
+
+ An der gewünschten Stelle
+% \IfThisCommonLabelBase{scrextend}{}{im Dokument }% Umbruchoptimierung!!!
+ schreiben Sie daher:% mit dem Umbruchkorrekturtext oben statt daher nun:
+\begin{lstcode}
+ \cleardoubleevenemptypage
+ \thispagestyle{empty}
+ \includegraphics[width=\textwidth,%
+ height=\textheight,%
+ keepaspectratio]%
+ {bild}
+ \chapter{Kapitelüberschrift}
+\end{lstcode}
+ Die erste Zeile wechselt auf die nächste linke Seite und fügt zu diesem
+ Zweck bei Bedarf eine komplett leere rechte Seite ein. Die zweite Zeile
+ sorgt dafür, dass diese linke Seite ebenfalls mit dem Seitenstil
+ \IfThisCommonLabelBase{scrextend}{\DescRef{maincls.pagestyle.empty}}{%
+ \DescRef{\LabelBase.pagestyle.empty}} gesetzt wird. Die dritte bis
+ sechste Zeile lädt die Bilddatei mit dem Namen \File{bild} und bringt sie
+ auf die gewünschte Größe, ohne sie dabei zu verzerren. Hierfür wird das
+ Paket \Package{graphicx}\IndexPackage{graphicx} benötigt (siehe
+ \cite{package:graphics}). Die letzte Zeile beginnt auf der nächsten --
+ dann rechten -- Seite ein neues Kapitel.
+ \end{Example}%
+\fi
+
+Im doppelseitigen Satz führt \Macro{cleardoubleoddpage} immer zur nächsten
+linken Seite, \Macro{cleardoubleevenpage} zur nächsten
+rechten Seite. Eine gegebenenfalls einzufügenden Vakatseite wird mit dem
+über Option \DescRef{\LabelBase.option.cleardoublepage} festgelegten
+Seitenstil ausgegeben.%
+\IfThisCommonLabelBase{scrextend}{\par%
+ Ein Beispiel für die Verwendung von \Macro{cleardoubleevenemptypage} finden
+ Sie in \autoref{sec:maincls.emptypage},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.cleardoublepage}.%
+}{}%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide"
+%%% End:
+
+% LocalWords: Gleitumgebungen Seitenkopf Kolumnentitel Seitenfuß Bilddatei
+% LocalWords: Satzspiegels Bildseite Dokumentpräambel Vakatseiten
+% LocalWords: Vakatseite
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-lists.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-lists.tex
new file mode 100644
index 0000000000..c907a664b7
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-lists.tex
@@ -0,0 +1,856 @@
+% ======================================================================
+% common-lists.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-lists.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-lists.tex}%
+ [$Date: 2018-02-06 09:20:05 +0100 (Tue, 06 Feb 2018) $
+ KOMA-Script guide (common paragraphs)]
+
+\section{Listen}
+\seclabel{lists}%
+\BeginIndexGroup
+\BeginIndex{}{Listen}%
+
+\IfThisCommonFirstRun{}{%
+ Es gilt sinngemäß, was in \autoref{sec:\ThisCommonFirstLabelBase.lists}
+ geschrieben wurde. Falls Sie also
+ \autoref{sec:\ThisCommonFirstLabelBase.lists} bereits gelesen und verstanden
+ haben, können Sie auf \autopageref{sec:\ThisCommonLabelBase.lists.next} mit
+ \autoref{sec:\ThisCommonLabelBase.lists.next} fortfahren.%
+ \IfThisCommonLabelBaseOneOf{scrextend,scrlttr2}{ %
+ \IfThisCommonLabelBase{scrlttr2}{%
+ Das Paket \Package{scrletter}\OnlyAt{\Package{scrletter}} definiert
+ selbst keine Listenumgebungen, sondern überlässt diese der verwendeten
+ Klasse. Ist dies keine \KOMAScript-Klasse, so lädt es
+ \hyperref[cha:scrextend]{\Package{scrextend}}\IndexPackage{scrextend}%
+ \important{\hyperref[cha:scrextend]{\Package{scrextend}}}.%
+ }{} %
+ Allerdings werden vom Paket \Package{scrextend} nur die Umgebungen
+ \DescRef{\ThisCommonLabelBase.env.labeling},
+ \DescRef{\ThisCommonLabelBase.env.addmargin} und
+ \DescRef{\ThisCommonLabelBase.env.addmargin*} definiert. Alle anderen
+ Listenumgebungen bleiben der Verantwortung % und Kontrolle
+ der verwendeten Klasse überlassen.%
+ }{}%
+}
+
+\IfThisCommonLabelBase{scrextend}{}{%
+ {\LaTeX} und die Standardklassen\textnote{\KOMAScript{} vs. Standardklassen}
+ bieten verschiedene Umgebungen für Listen. All diese Umgebungen bietet
+ {\KOMAScript} selbstverständlich auch, teilweise jedoch mit leichten
+ Abwandlungen oder Erweiterungen. Grundsätzlich gilt, dass Listen -- auch
+ unterschiedlicher Art -- bis zu einer Tiefe von vier Listen geschachtelt
+ werden können. Eine tiefere Schachtelung wäre auch aus typografischen
+ Gründen kaum sinnvoll, da genau genommen schon mehr als drei Ebenen nicht
+ mehr überblickt werden können. Ich empfehle\textnote{Tipp!} in solchen
+ Fällen, die eine große Liste in mehrere kleinere Listen aufzuteilen.%
+}
+
+\IfThisCommonFirstRun{}{%
+ Da Listen zu den Standardelementen von \LaTeX{} gehören, wurde in diesem
+ Abschnitt auf Beispiele verzichtet. Sie finden solche in
+ \autoref{sec:\ThisCommonFirstLabelBase.lists} ab
+ \autopageref{sec:\ThisCommonFirstLabelBase.lists} oder in jeder
+ \LaTeX-Einführung.%
+}
+
+
+\IfThisCommonLabelBase{scrextend}{\iffalse}{\csname iftrue\endcsname}
+ \begin{Declaration}
+ \begin{Environment}{itemize}
+ \begin{Body}
+ \Macro{item} \dots
+ \BodyDots
+ \end{Body}
+ \end{Environment}
+ \Macro{labelitemi}
+ \Macro{labelitemii}
+ \Macro{labelitemiii}
+ \Macro{labelitemiv}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Die einfachste
+ Form einer Liste ist die Stichpunkt-\textnote{Stichpunktliste} oder
+ \Environment{itemize}-Liste. %
+ \iffalse % Umbruchoptimierungstext
+ Die Benutzer einer unbeliebten Textverarbeitung nennen diese Form der Liste
+ auch gerne \emph{Bulletpoints}. Vermutlich können sie sich nicht vorstellen,
+ dass je nach Ebene auch ein anderes Zeichen als ein fetter Punkt zur
+ Einleitung eines Stichpunkts verwendet werden kann. %
+ \fi%
+ Bei den \KOMAScript-Klassen werden je nach Ebene folgende Aufzählungszeichen
+ zur Einleitung eines Listenelements verwendet: »{\labelitemi}«,
+ »{\labelitemii}«, »{\labelitemiii}« und »{\labelitemiv}«. Die Definition der
+ Zeichen für die einzelnen Ebenen sind in den Makros \Macro{labelitemi},
+ \Macro{labelitemii}, \Macro{labelitemiii} und \Macro{labelitemiv}
+ abgelegt. Sie können diese leicht mit \Macro{renewcommand} umdefinieren. Die
+ einzelnen Stichpunkte werden mit \Macro{item} eingeleitet.%
+ \IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.itemize}%
+ Sie haben eine einfache Aufzählung, die in mehreren Ebenen geschachtelt
+ ist. Sie schreiben beispielsweise:
+\begin{lstcode}
+ \minisec{Die Fahrzeuge im Spiel}
+ \begin{itemize}
+ \item Flugzeuge
+ \begin{itemize}
+ \item Doppeldecker
+ \item Transportmaschinen
+ \begin{itemize}
+ \item einmotorig
+ \begin{itemize}
+ \item{düsengetrieben}
+ \item{propellergetrieben}
+ \end{itemize}
+ \item zweimotorig
+ \begin{itemize}
+ \item{düsengetrieben}
+ \item{propellergetrieben}
+ \end{itemize}
+ \end{itemize}
+ \item Drehflügler
+ \end{itemize}
+ \item Motorräder
+ \item Automobile
+ \begin{itemize}
+ \item Rennwagen
+ \item Personenwagen
+ \item Lastwagen
+ \end{itemize}
+ \item Fahrräder
+ \end{itemize}
+ \end{itemize}
+\end{lstcode}
+ Anschließend erhalten Sie:
+ \begin{ShowOutput}[\baselineskip]
+ \minisec{Die Fahrzeuge im Spiel}
+ \begin{itemize}
+ \item Flugzeuge
+ \begin{itemize}
+ \item Doppeldecker
+ % \item Jets
+ \item Transportmaschinen
+ \begin{itemize}
+ \item einmotorig
+ \begin{itemize}
+ \item{düsengetrieben}
+ \item{propellergetrieben}
+ \end{itemize}
+ \item zweimotorig
+ \begin{itemize}
+ \item{düsengetrieben}
+ \item{propellergetrieben}
+ \end{itemize}
+ \end{itemize}
+ \item Drehflügler
+ \end{itemize}
+ \item Motorräder
+ % \begin{itemize}
+ % \item historisch korrekt
+ % \item futurisch nicht real
+ % \end{itemize}
+ \item Automobile
+ \begin{itemize}
+ \item Rennwagen
+ \item Personenwagen
+ \item Lastwagen
+ \end{itemize}
+ \item Fahrräder
+ \end{itemize}
+ \end{ShowOutput}
+ \end{Example}%
+ \fi
+ %
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \begin{Environment}{enumerate}\labelsuffix[enumerate]
+ \begin{Body}
+ \Macro{item} \dots
+ \BodyDots
+ \end{Body}
+ \end{Environment}
+ \Macro{theenumi}
+ \Macro{theenumii}
+ \Macro{theenumiii}
+ \Macro{theenumiv}
+ \Macro{labelenumi}
+ \Macro{labelenumii}
+ \Macro{labelenumiii}
+ \Macro{labelenumiv}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Die nummerierte
+ Liste\textnote{nummerierte Liste} ist ebenfalls sehr häufig zu finden und
+ bereits vom {\LaTeX}-Kern vorgesehen. Die Nummerierung\Index{Nummerierung}
+ erfolgt je nach Ebene in unterschiedlicher Art: mit arabischen Zahlen, mit
+ Kleinbuchstaben, mit kleinen römischen Zahlen und mit Großbuchstaben. Die
+ Art der Nummerierung wird dabei über die Makros \Macro{theenumi} bis
+ \Macro{theenumiv} festgelegt. Das Format der Ausgabe wird von den Makros
+ \Macro{labelenumi} bis \Macro{labelenumiv} bestimmt. Dabei folgt auf den
+ Wert der zweiten Ebene, der in Kleinbuchstaben ausgegeben wird, eine runde
+ Klammer, während die Werte aller anderen Ebenen von einem Punkt gefolgt
+ werden. Die einzelnen Stichpunkte werden wieder mit \Macro{item}
+ eingeleitet.%
+ \IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.enumerate}%
+ Verkürzen wir das vorherige Beispiel und verwenden statt der
+ \DescRef{\ThisCommonLabelBase.env.itemize}- eine
+ \Environment{enumerate}-Umgebung:
+ % Übernehmen wir das Beispiel der
+ % \DescRef{\LabelBase.env.itemize}-Umgebung,
+ % wobei wir jede \DescRef{\LabelBase.env.itemize}-Umgebung durch eine
+ % \Environment{enumerate}-Umgebung ersetzen. Das Ergebnis wäre dann:
+ \begin{ShowOutput}[\baselineskip]
+ \minisec{Die Fahrzeuge im Spiel}
+ \begin{enumerate}
+ \item Flugzeuge
+ \begin{enumerate}
+ \item Doppeldecker
+ % \item Jets
+ \item Transportmaschinen
+ \begin{enumerate}
+ \item einmotorig
+ \begin{enumerate}
+ \item{düsengetrieben}\label{xmp:maincls.jets}
+ \item{propellergetrieben}
+ \end{enumerate}
+ \item mehrmotorig
+ \end{enumerate}
+ % \item Drehflügler
+ \end{enumerate}
+ \item Motorräder
+ \begin{enumerate}
+ \item historisch korrekt
+ \item futurisch nicht real
+ \end{enumerate}
+ % \item Automobile
+ % \begin{enumerate}
+ % \item Rennwagen
+ % \item Personenwagen
+ % \item Lastwagen
+ % \end{enumerate}
+ % \item Fahrräder
+ \end{enumerate}
+ \end{ShowOutput}
+ Innerhalb der Aufzählung können ganz normal mit \Macro{label} Marken
+ gesetzt werden, auf die dann mit \Macro{ref} zugegriffen werden
+ kann. So wurde oben hinter den düsengetriebenen, einmotorigen
+ Flugzeugen mit »\Macro{label}\PParameter{bsp:duesen}« ein Label
+ gesetzt. Der \Macro{ref}-Wert ist dann »\ref{xmp:maincls.jets}«.
+ \end{Example}%
+ \fi
+ %
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \begin{Environment}{description}\labelsuffix[description]
+ \begin{Body}
+ \Macro{item}\OParameter{Stichwort} \dots
+ \BodyDots
+ \end{Body}
+ \end{Environment}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Eine weitere
+ Listenform ist die Stichwortliste\textnote{Stichwortliste}. Sie dient in
+ erster Linie der Beschreibung einzelner Begriffe. Diese werden als optionale
+ Parameter bei \Macro{item} angegeben. %
+ \BeginIndex{FontElement}{descriptionlabel}%
+ \LabelFontElement{descriptionlabel}%
+ Die Schriftart\Index{Schrift>Art}\ChangedAt{v2.8p}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}, die für die Hervorhebung des
+ Stichworts verwendet wird, kann außerdem bei den \KOMAScript-Klassen mit
+ Hilfe der Anweisungen \DescRef{\ThisCommonLabelBase.cmd.setkomafont} und
+ \DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (siehe
+ \autoref{sec:\ThisCommonLabelBase.textmarkup},
+ \DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) für das Element
+ \FontElement{descriptionlabel}\important{\FontElement{descriptionlabel}}
+ (siehe \autoref{tab:\ThisCommonLabelBase.fontelements},
+ \autopageref{tab:\ThisCommonLabelBase.fontelements}) geändert werden. In der
+ Voreinstellung wird \Macro{sffamily}""\Macro{bfseries} verwendet.%
+ \IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.description}%
+ Sie wollen, dass die Stichworte statt serifenlos und fett lediglich
+ fett, aber in der Standardschriftart ausgegeben werden. Mit
+\begin{lstcode}
+ \setkomafont{descriptionlabel}{\normalfont
+ \bfseries}
+\end{lstcode}
+ definieren Sie daher die Schrift entsprechend um.
+
+ Ein Beispiel für die Ausgabe einer Stichwortliste ist eine Aufzählung
+ der Seitenstile. Der Quelltext dazu lautet beispielsweise:
+\begin{lstcode}
+ \begin{description}
+ \item[empty] ist der Seitenstil, bei dem Kopf-
+ und Fußzeile vollständig leer bleiben.
+ \item[plain] ist der Seitenstil, bei dem
+ keinerlei Kolumnentitel verwendet wird.
+ \item[headings] ist der Seitenstil für
+ automatische Kolumnentitel.
+ \item[myheadings] ist der Seitenstil für
+ manuelle Kolumnentitel.
+ \end{description}
+\end{lstcode}
+ Diese ergibt:
+ \begin{ShowOutput}
+ \begin{description}
+ \item[empty] ist der Seitenstil, bei dem Kopf- und
+ Fußzeile vollständig leer bleiben.
+ \item[plain] ist der Seitenstil, bei dem keinerlei
+ Kolumnentitel verwendet wird.
+ \item[headings] ist der Seitenstil für automatische
+ Kolumnentitel.
+ \item[myheadings] ist der Seitenstil für manuelle
+ Kolumnentitel.
+ \end{description}
+ \end{ShowOutput}
+ \end{Example}%
+ \fi
+ %
+ \EndIndexGroup%
+\fi
+
+\begin{Declaration}
+ \begin{Environment}{labeling}\OParameter{Trennzeichen}
+ \Parameter{längstes Schlüsselwort}
+ \labelsuffix[labeling]
+ \begin{Body}
+ \Macro{item}\OParameter{Stichwort} \dots
+ \BodyDots
+ \end{Body}
+ \end{Environment}
+\end{Declaration}%
+Eine andere Form der %
+\IfThisCommonLabelBase{scrextend}{%
+ in vielen Klassen als
+ \DescRef{\ThisCommonFirstLabelBase.env.description}-Umgebung vorhandenen %
+}{}%
+Stichwortliste\textnote{alternative Stichwortliste} ist nur bei den
+{\KOMAScript}-Klassen %
+\IfThisCommonLabelBase{scrextend}{ und \Package{scrextend} }{%
+ \IfThisCommonLabelBase{scrlttr2}{ und
+ \hyperref[cha:scrextend]{\Package{scrextend}} }{}%
+}%
+vorhanden: die \Environment{labeling}-Umgebung. Im Unterschied
+\IfThisCommonLabelBase{scrextend}{zu}{zur zuvor vorgestellten Umgebung} %
+\IfThisCommonLabelBase{scrextend}{%
+ \DescRef{\ThisCommonFirstLabelBase.env.description}%
+}{%
+ \DescRef{\ThisCommonLabelBase.env.description}%
+} kann bei \Environment{labeling} ein Muster angegeben werden, dessen Länge
+die Einrücktiefe bei allen Stichpunkten ergibt. Darüber hinaus kann zwischen
+Stichpunkt und Beschreibungstext ein optionales \PName{Trennzeichen}
+festgelegt werden. %
+\BeginIndexGroup
+\BeginIndex{FontElement}{labelinglabel}\LabelFontElement{labelinglabel}%
+\BeginIndex{FontElement}{labelingseparator}%
+\LabelFontElement{labelingseparator}%
+Die Schriftart\Index{Schrift>Art}%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.02}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.02}{\Class{scrlttr2}}%
+ }{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.02}{\Package{scrextend}}%
+ }{\InternalCommonFileUsageError}%
+ }%
+}%
+, die für die Hervorhebung des Schlüsselworts verwendet wird, kann mit Hilfe
+der Anweisungen \DescRef{\ThisCommonLabelBase.cmd.setkomafont} und
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) für das Element
+\FontElement{labelinglabel}\IndexFontElement{labelinglabel} (siehe
+\autoref{tab:\ThisCommonLabelBase.fontelements},
+\autopageref{tab:\ThisCommonLabelBase.fontelements}) geändert werden. Für die
+davon abweichende Schriftart der Trennzeichen ist das Element
+\FontElement{labelingseparator}\IndexFontElement{labelingseparator} (siehe
+ebenfalls \autoref{tab:\ThisCommonLabelBase.fontelements},
+\autopageref{tab:\ThisCommonLabelBase.fontelements}) zuständig.
+\IfThisCommonFirstRun{\iftrue}{\par\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.labeling}%
+ \IfThisCommonLabelBase{scrextend}{%
+ Eine einfache Liste könnte beispielsweise wie folgt definiert werden:%
+ }{%
+ Wir schreiben das Beispiel der
+ \DescRef{\ThisCommonLabelBase.env.description}-Umgebung etwas um:%
+ }%
+\begin{lstcode}
+ \setkomafont{labelinglabel}{\ttfamily}
+ \setkomafont{labelingseparator}{\normalfont}
+ \begin{labeling}[~--]{myheadings}
+ \item[empty]
+ Seitenstil für leere Seiten ohne Kopf und Fuß
+ \item[plain]
+ Seitenstil für Kapitelanfänge ganz ohne
+ Kolumnentitel
+ \item[headings]
+ Seitenstil für automatische Kolumnentitel
+ \item[myheadings]
+ Seitenstil für manuelle Kolumnentitel
+ \end{labeling}
+\end{lstcode}
+ Als Ergebnis erhalten wir dann:
+ \begin{ShowOutput}
+ \setkomafont{labelinglabel}{\ttfamily}
+ \setkomafont{labelingseparator}{\normalfont}
+ \begin{labeling}[~--]{myheadings}
+ \item[empty]
+ Seitenstil für leere Seiten ohne Kopf und Fuß
+ \item[plain]
+ Seitenstil für Kapitelanfänge ganz ohne
+ Kolumnentitel
+ \item[headings]
+ Seitenstil für automatische Kolumnentitel
+ \item[myheadings]
+ Seitenstil für manuelle Kolumnentitel
+ \end{labeling}
+ \end{ShowOutput}
+ Wie in diesem Beispiel zu sehen ist, kann eine eventuell geforderte
+ Schriftumschaltung in bei \KOMAScript{} gewohnter Weise erreicht
+ werden. Da sich die Schriftumschaltung für das Schlüsselwort aber auch auf
+ die Trennzeichen auswirkt, kann es eventuell erforderlich sein, die
+ Schriftumschaltung dafür explizit aufzuheben.
+ \end{Example}
+\fi
+\EndIndexGroup
+Gedacht war die Umgebung ursprünglich für Strukturen wie »Voraussetzung,
+Aussage, Beweis« oder »Gegeben, Gesucht, Lösung«, wie man sie in
+Vorlesungsskripten häufiger findet. Inzwischen findet die Umgebung aber ganz
+unterschiedliche Anwendungen. So wurde die Umgebung für Beispiele in dieser
+Anleitung mit Hilfe der \Environment{labeling}-Umgebung definiert.%
+\EndIndexGroup
+
+
+\IfThisCommonLabelBase{scrextend}{\iffalse}{\csname iftrue\endcsname}
+ \begin{Declaration}
+ \begin{Environment}{verse}\end{Environment}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Die
+ \Environment{verse}-Umgebung\textnote{Versform} wird normalerweise nicht als
+ Listenumgebung wahrgenommen, da hier nicht mit \Macro{item} gearbeitet
+ wird. Stattdessen wird wie innerhalb der \Environment{flushleft}-Umgebung
+ mit festen Zeilenumbrüchen gearbeitet. Intern handelt es sich jedoch sowohl
+ bei den Standardklassen als auch bei {\KOMAScript} durchaus um eine
+ Listenumgebung.
+
+ Die \Environment{verse}-Umgebung findet hauptsächlich für
+ Gedichte\Index{Gedichte} Anwendung. Dabei werden die Zeilen links und rechts
+ eingezogen. Einzelne Verse werden mit einem festen Zeilenumbruch, also mit
+ \verb|\\|\IndexCmd{\textbackslash} beendet. Strophen werden ganz normal als
+ Absatz gesetzt, also durch eine Leerzeile getrennt. Häufig findet
+ stattdessen auch \Macro{medskip}\IndexCmd{medskip} oder
+ \Macro{bigskip}\IndexCmd{bigskip} Verwendung. Will man verhindern, dass am
+ Ende eines Verses ein Seitenumbruch\textnote{Seitenumbruch} erfolgt, so
+ verwendet man ganz normal \verb|\\*|\IndexCmd{\textbackslash*} anstelle von
+ \verb|\\|.%
+ \IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.verse}%
+ Als Beispiel ein kurzes Gedicht von Wilhelm Busch:
+\begin{lstcode}
+ \begin{verse}
+ Wenn einer, der mit Mühe kaum\\*
+ Gekrochen ist auf einen Baum,\\*
+ Schon meint, dass er ein Vogel wär,\\*
+ So irrt sich der.
+ \end{verse}
+\end{lstcode}
+ Mit dem Resultat:
+ \begin{ShowOutput}
+ \iffree{}{\vskip-.8\baselineskip}% Umbruchkorrektur
+ \begin{verse}
+ Wenn einer, der mit Mühe kaum\\*
+ Gekrochen ist auf einen Baum,\\*
+ Schon meint, dass er ein Vogel wär,\\*
+ So irrt sich der.
+ \end{verse}
+ \end{ShowOutput}
+ Bei einem sehr langen Vers wie:
+\begin{lstcode}
+ \begin{verse}
+ Der Philosoph wie der Hausbesitzer hat
+ immer Reparaturen.\\*
+ \bigskip
+ Wer dir sagt, er hätte noch nie gelogen,
+ dem traue nicht, mein Sohn.
+ \end{verse}
+\end{lstcode}
+ bei dem ein Zeilenumbruch innerhalb des Verses erfolgt:
+ \begin{ShowOutput}
+ \iffree{}{\vskip-.8\baselineskip}% Umbruchkorrektur
+ \begin{verse}
+ Der Philosoph wie der Hausbesitzer hat immer Reparaturen.\\
+ \bigskip
+ Wer dir sagt, er hätte noch nie gelogen, dem traue nicht, mein
+ Sohn.
+ \end{verse}
+ \end{ShowOutput}
+ kann mit \verb|\\*| allerdings nicht verhindert werden, dass am
+ Zeilenumbruch auch ein Seitenumbruch erfolgt. Um dies zu erreichen,
+ müsste innerhalb der ersten Zeile zusätzlich ein
+ \Macro{nopagebreak}\IndexCmd{nopagebreak} eingefügt werden:
+\begin{lstcode}
+ \begin{verse}
+ Der Philosoph wie der Hausbesitzer\nopagebreak{}
+ hat immer Reparaturen.\\
+ \bigskip
+ Wer dir sagt, er hätte noch nie\nopagebreak{}
+ gelogen, dem traue nicht, mein Sohn.
+ \end{verse}
+\end{lstcode}
+ \iftrue% Umbruchkorrekturtext
+ Hier noch zwei Sprüche, die man immer bedenken sollte, wenn man mit
+ scheinbar seltsamen Fragen zu {\LaTeX} oder den dazugehörigen Antworten
+ konfrontiert ist:
+\begin{lstcode}
+ \begin{verse}
+ Wir mögen's keinem gerne gönnen,\\*
+ Dass er was kann, was wir nicht können.\\
+ \bigskip
+ Wie klein ist das, was einer ist,\\*
+ Wenn man's mit seinem Dünkel misst.
+ \end{verse}
+\end{lstcode}
+ \begin{ShowOutput}
+ \iffree{}{\vskip-.8\baselineskip}% Umbruchkorrektur
+ \begin{verse}
+ Wir mögen's keinem gerne gönnen,\\*
+ Dass er was kann, was wir nicht können.\\
+ \bigskip
+ Wie klein ist das, was einer ist,\\*
+ Wenn man's mit seinem Dünkel misst.
+ \end{verse}
+ \end{ShowOutput}
+ \fi
+ In diesen Beispielen wurde übrigens jeweils \Macro{bigskip} verwendet,
+ um zwei Sprüche voneinander zu trennen.
+ \end{Example}%
+ \fi
+ %
+ \EndIndexGroup
+
+
+ \iftrue% Umbruchkorrekturvarianten
+ \begin{Declaration}
+ \begin{Environment}{quote}\end{Environment}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Dies ist
+ intern ebenfalls eine Listenumgebung\textnote{Blockzitat mit
+ Absatzabstand} und sowohl bei den Standardklassen als auch bei
+ {\KOMAScript} zu finden. Der Inhalt der Umgebung wird im Blocksatz mit
+ beidseitigem Einzug gesetzt. Die Umgebung wird häufig verwendet, um
+ längere Zitate\Index{Zitat} abzusetzen. Dabei werden Absätze innerhalb der
+ Umgebung durch einen vertikalen Abstand gekennzeichnet.%
+ \EndIndexGroup
+
+ \begin{Declaration}
+ \begin{Environment}{quotation}\end{Environment}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Diese
+ Umgebung\textnote{Blockzitat mit Absatzeinzug} ist mit
+ \DescRef{\ThisCommonLabelBase.env.quote} vergleichbar. Während bei
+ \DescRef{\ThisCommonLabelBase.env.quote} Absätze durch vertikalen Abstand
+ gekennzeichnet werden, wird bei \Environment{quotation} mit horizontalem
+ Einzug der ersten Zeile eines Absatzes gearbeitet. Dies gilt auch für den
+ ersten Absatz einer \Environment{quotation}-Umgebung. Wollen Sie dort den
+ Einzug verhindern, müssen Sie die
+ \Macro{noindent}-Anweisung\IndexCmd{noindent} voranstellen.%
+ \else
+ \begin{Declaration}
+ \begin{Environment}{quote}\end{Environment}
+ \begin{Environment}{quotation}\end{Environment}
+ \end{Declaration}%
+ \IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Diese beiden
+ Umgebungen\textnote{Blockzitate} sind intern ebenfalls Listenumgebungen
+ und sowohl bei den Standardklassen als auch bei {\KOMAScript} zu finden.
+ Beide Umgebungen setzen Blocksatz, der rechts und links eingezogen
+ ist. Verwendet werden die Umgebungen häufig, um längere
+ Zitate\Index{Zitat} abzusetzen. Der Unterschied zwischen beiden liegt in
+ der Art und Weise, wie Absätze abgesetzt werden. Während bei
+ \Environment{quote} Absätze durch vertikalen Abstand gekennzeichnet
+ werden, wird bei \Environment{quotation} mit horizontalem Einzug der
+ ersten Zeile eines Absatzes gearbeitet. Dies gilt auch für den ersten
+ Absatz einer \Environment{quotation}-Umgebung% Umbruchkorrektur
+ \IfThisCommonLabelBase{maincls}{%
+ , außer es wird \Macro{noindent}\IndexCmd{noindent} vorangestellt.%
+ }{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ . Wollen Sie dort den Einzug verhindern, müssen Sie die
+ \Macro{noindent}-Anweisung\IndexCmd{noindent} voranstellen.%
+ }{\InternalCommonFileUsageError}%
+ }%
+ \fi % Umbruchkorrekturvarianten
+ \IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.quote}%
+ Sie wollen eine kleine Anekdote hervorheben. Also schreiben Sie
+ 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}
+ Es klingelt an der Tür eines Pfarrhauses in
+ Stuttgart. Als die Haushälterin öffnet, steht
+ ein unrasierter Mann in reichlich schäbigem
+ Mantel vor der Tür und hält seine Strickmütze
+ in der Hand.
+
+ "`Gute Frau,"' verkündet der Mann in gequältem
+ Ton, doch bestem Hochdeutsch,
+ "`ich habe seit drei Tagen nichts mehr
+ gegessen."'
+
+ Die Frau schüttelt mitleidig den Kopf und
+ entgegnet im Brustton vollster Überzeugung:
+
+ "`Guda Moh, Sie missat sich halt zwinga!"'
+ \end{quotation}
+ \end{document}
+\end{lstcode}
+ Das Ergebnis könnte dann so aussehen:
+ \begin{ShowOutput}
+ \iftrue% Umbruchkorrekturtext
+ Ein kleines Beispiel für eine Anekdote, die sich einst
+ in Schwaben zugetragen haben soll:
+ \fi
+ \begin{quotation}
+ Es klingelt an der Tür eines Pfarrhauses in
+ Stuttgart. Als die Haushälterin öffnet, steht ein
+ unrasierter Mann in reichlich schäbigem
+ Mantel vor der Tür und hält seine Strickmütze in
+ der Hand.
+
+ "`Gute Frau,"' verkündet der Mann in gequältem Ton,
+ doch bestem Hochdeutsch,
+ \iffalse% Umbruchkorrekturtext
+ während er verlegen von einem Bein auf das andere wechselt,
+ \fi
+ "`ich habe
+ seit drei Tagen nichts mehr gegessen."'
+
+ Die Frau schüttelt mitleidig den Kopf und entgegnet
+ im Brustton vollster Überzeugung:
+
+ "`Guda Moh, Sie missat sich halt zwinga!"'
+ \end{quotation}
+ \end{ShowOutput}%
+ \iffree{}{\IfThisCommonLabelBase{maincls}{\clearpage}{}}% Umbruchkorrektur!!!!
+ Zum Vergleich sei das Ganze anstelle von \Environment{quotation} auch
+ noch mit einer \DescRef{\LabelBase.env.quote}-Umgebung gezeigt:%
+ \begin{ShowOutput}
+ \iftrue% Umbruchkorrekturtext
+ Ein kleines Beispiel für eine Anekdote, die sich einst
+ in Schwaben zugetragen haben soll:
+ \fi
+ \begin{quote}\setlength{\parskip}{4pt plus 2pt minus 2pt}
+ Es klingelt an der Tür eines Pfarrhauses in Stuttgart. Als die
+ Haushälterin öffnet, steht ein unrasierter Mann in reichlich
+ schäbigem Mantel vor der Tür und hält seine Strickmütze in der Hand.
+
+ "`Gute Frau,"' verkündet der Mann in gequältem Ton, doch bestem
+ Hochdeutsch,
+ \iffalse% Umbruchkorrekturtext
+ während er verlegen von einem Bein auf das andere wechselt,
+ \fi
+ "`ich habe seit drei Tagen nichts mehr gegessen."'
+
+ Die Frau schüttelt mitleidig den Kopf und entgegnet im Brustton
+ vollster Überzeugung:
+
+ "`Guda Moh, Sie missat sich halt zwinga!"'
+ \end{quote}
+ \end{ShowOutput}
+ %
+ \end{Example}%
+ \fi
+ %
+ \EndIndexGroup
+\fi
+
+\begin{Declaration}
+ \begin{Environment}{addmargin}\OParameter{linker Einzug}\Parameter{Einzug}
+ \end{Environment}
+ \begin{Environment}{addmargin*}\OParameter{innerer Einzug}\Parameter{Einzug}
+ \end{Environment}
+\end{Declaration}
+Wie bei %
+\IfThisCommonLabelBase{scrextend}{%
+ den in den Standardklassen und den \KOMAScript-Klassen vorhandenen
+ Umgebungen \DescRef{\ThisCommonFirstLabelBase.env.quote} und
+ \DescRef{\ThisCommonFirstLabelBase.env.quotation}%
+}{%
+ \DescRef{\ThisCommonLabelBase.env.quote} und
+ \DescRef{\ThisCommonLabelBase.env.quotation}%
+} %
+handelt\textnote{allgemeine Einzugsumgebung} es sich bei
+\Environment{addmargin} um eine Umgebung, die den Rand\Index{Rand}
+verändert. Im Unterschied zu den beiden erstgenannten Umgebungen kann der
+Anwender jedoch bei \Environment{addmargin} wählen, um welchen Wert der Rand
+verändert werden soll. Des Weiteren verändert die Umgebung den Absatzeinzug
+und den Absatzabstand nicht. Es wird auch kein zusätzlicher vertikaler Abstand
+vor und nach der Umgebung eingefügt.
+
+Ist nur das obligatorische Argument \PName{Einzug} angegeben, so wird der
+Inhalt der Umgebung rechts und links um diesen Wert eingezogen. Ist das
+optionale Argument \PName{linker Einzug} hingegen angegeben, so wird links
+abweichend von \PName{Einzug} der Wert \PName{linker Einzug} zum Rand addiert.
+
+Die Sternvariante \Environment{addmargin*}\important{\Environment{addmargin*}}
+unterscheidet sich nur im doppelseitigen Satz von der Variante ohne Stern,
+wobei der Unterschied auch nur dann auf"|tritt, wenn das optionale Argument
+\PName{innerer Einzug} verwendet wird. Dabei wird dann der Wert von
+\PName{innerer Einzug} zum inneren Randanteil der Seite addiert. Dies ist bei
+rechten Seiten der linke Rand der Seite, bei linken Seiten jedoch der rechte
+Rand der Seite. \PName{Einzug} gilt dann für den jeweils anderen Rand.
+
+Bei beiden Varianten der Umgebung sind für alle Parameter auch negative Werte
+erlaubt. % Umbruchkorrektur
+\IfThisCommonLabelBase{scrextend}{%
+ Die Umgebung ragt dann entsprechend in den Rand hinein.%
+}{%
+ Damit kann man erreichen, dass die Umgebung in den Rand hineinragt.%
+}%
+\IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{env.addmargin}%
+ Angenommen, Sie schreiben eine Anleitung mit kurzen
+ Quellcode-Beispielen. Um diese sehr stark hervorzuheben, sollen sie mit
+ horizontalen Linien vom Text abgesetzt und leicht in den äußeren Rand
+ verschoben werden. Sie definieren sich dafür zunächst eine Umgebung:
+\begin{lstcode}
+ \newenvironment{QuellcodeRahmen}{%
+ \begin{addmargin*}[1em]{-1em}%
+ \begin{minipage}{\linewidth}%
+ \rule{\linewidth}{2pt}%
+ }{%
+ \rule[.25\baselineskip]{\linewidth}{2pt}%
+ \end{minipage}%
+ \end{addmargin*}%
+ }
+\end{lstcode}
+ \begin{ShowOutput}
+ \newenvironment{QuellcodeRahmen}{%
+ \begin{addmargin*}[1em]{-1em}%
+ \begin{minipage}{\linewidth}%
+ \rule{\linewidth}{2pt}%
+ }{%
+ \rule[.25\baselineskip]{\linewidth}{2pt}%
+ \end{minipage}%
+ \end{addmargin*}%
+ }
+ Zur Demonstration sei die Definition der Umgebung in der Umgebung selbst
+ gesetzt:
+ \begin{QuellcodeRahmen}
+\begin{lstcode}
+\newenvironment{\QuellcodeRahmen}{%
+ \begin{addmargin*}[1em]{-1em}%
+ \begin{minipage}{\linewidth}%
+ \rule{\linewidth}{2pt}%
+}{%
+ \rule[.25\baselineskip]{\linewidth}{2pt}%
+ \end{minipage}%
+ \end{addmargin*}%
+}
+\end{lstcode}
+ \end{QuellcodeRahmen}
+ Nicht zwingend schön, aber es zeigt den Nutzen.
+ \end{ShowOutput}
+ Das optionale Argument der \Environment{addmargin*}-Umgebung sorgt dafür,
+ dass der innere Rand um den Wert 1\Unit{em} vergrößert wird. Dafür wird
+ der äußere Rand um den negativen Wert vergrößert, also in Wirklichkeit um
+ 1\Unit{em} verkleinert. Dies resultiert in einer Verschiebung um
+ 1\Unit{em} nach außen. Selbstverständlich kann statt \PValue{1em} auch
+ eine Länge, beispielsweise \PValue{2\Macro{parindent}}, verwendet werden.
+ \end{Example}
+\fi%
+
+Ob eine Seite eine linke oder eine rechte Seite ist, kann übrigens beim ersten
+\LaTeX-Durchlauf nicht zuverlässig festgestellt werden. Siehe dazu die
+Erklärungen zu den Anweisungen
+\DescRef{\ThisCommonLabelBase.cmd.ifthispageodd}
+(\autoref{sec:\ThisCommonLabelBase.oddOrEven},
+\DescPageRef{\ThisCommonLabelBase.cmd.ifthispageodd}) und
+\iffree{\Macro{ifthispagewasodd}}{%
+ \DescRef{maincls-experts.cmd.ifthispagewasodd}}
+(\autoref{sec:maincls-experts.addInfos},
+\DescPageRef{maincls-experts.cmd.ifthispageodd}).%
+\IfThisCommonLabelBase{scrlttr2}{}{%
+\begin{Explain}
+ Im Zusammenspiel von % Umgebungen wie
+ Listen mit Absätzen ergeben sich für
+ Laien häufiger Fragen. Daher widmet sich die weiterführende Erklärung zu
+ Option \DescRef{maincls-experts.option.parskip} in
+ \autoref{sec:maincls-experts.addInfos},
+ \DescPageRef{maincls-experts.option.parskip} auch diesem
+ Thema. Ebenfalls im Expertenteil in \autoref{sec:maincls-experts.addInfos},
+ \DescPageRef{maincls-experts.env.addmargin*} wird die Problematik von
+ mehrseitigen \Environment{addmargin*}-Umgebungen behandelt.
+\end{Explain}}%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-marginpar.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-marginpar.tex
new file mode 100644
index 0000000000..ee80633693
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-marginpar.tex
@@ -0,0 +1,153 @@
+% ======================================================================
+% common-marginpar.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-marginpar.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-marginpar.tex}
+ [$Date: 2018-01-29 14:12:59 +0100 (Mon, 29 Jan 2018) $
+ KOMA-Script guide (common paragraphs)]
+
+
+
+
+\section{Randnotizen}
+\seclabel{marginNotes}%
+\BeginIndexGroup
+\BeginIndex{}{Randnotizen}%
+
+\IfThisCommonFirstRun{}{%
+ Es gilt sinngemäß, was in
+ \autoref{sec:\ThisCommonFirstLabelBase.marginNotes} geschrieben wurde. Falls
+ Sie also \autoref{sec:\ThisCommonFirstLabelBase.marginNotes} bereits gelesen
+ und verstanden haben, können Sie auf
+ \autopageref{sec:\ThisCommonLabelBase.marginNotes.next} mit
+ \autoref{sec:\ThisCommonLabelBase.marginNotes.next} fortfahren.%
+}
+
+Außer dem eigentlichen Textbereich, der normalerweise den Satzspiegel
+ausfüllt, existiert in Dokumenten noch die sogenannte Marginalienspalte. In
+dieser können Randnotizen gesetzt werden. %
+\IfThisCommonLabelBase{scrlttr2}{%
+ Bei Briefen sind Randnotizen allerdings eher unüblich und sollten äußerst
+ sparsam eingesetzt werden.%
+}{%
+ In diesem \iffree{Dokument}{Buch} wird davon ebenfalls Gebrauch gemacht.%
+}%
+
+
+\begin{Declaration}
+ \Macro{marginpar}\OParameter{Randnotiz links}\Parameter{Randnotiz}
+ \Macro{marginline}\Parameter{Randnotiz}
+\end{Declaration}%
+Für Randnotizen\Index[indexmain]{Randnotizen} ist bei {\LaTeX} normalerweise
+Anweisung \Macro{marginpar} vorgesehen. Die \PName{Randnotiz} wird dabei im
+äußeren Rand gesetzt. Bei einseitigen Dokumenten wird der rechte Rand
+verwendet. Zwar kann bei \Macro{marginpar} optional eine abweichende Randnotiz
+angegeben werden, falls die Randnotiz im linken Rand landet, jedoch werden
+Randnotizen immer im Blocksatz ausgegeben. Die Erfahrung zeigt, dass bei
+Randnotizen statt des Blocksatzes oft je nach Rand linksbündiger oder
+rechtsbündiger Flattersatz zu bevorzugen ist. {\KOMAScript} bietet hierfür
+die Anweisung \Macro{marginline}.
+
+\IfThisCommonFirstRun{%
+ \iftrue%
+}{%
+ Ein ausführliches Beispiel hierzu finden Sie in
+ \autoref{sec:\ThisCommonFirstLabelBase.marginNotes},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.marginline}.%
+ \csname iffalse\endcsname%
+}%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.marginline}%
+ In diesem \iffree{Dokument}{Buch} ist an einigen Stellen die
+ Klassenangabe \Class{scrartcl}
+ im Rand zu finden. Diese kann mit:
+\begin{lstcode}
+ \marginline{\texttt{scrartcl}}
+\end{lstcode}
+ erreicht werden.%
+ \iftrue % Umbruchkorrekturtext
+ \footnote{Tatsächlich wurde nicht \Macro{texttt},
+ sondern eine semantische Auszeichnung verwendet. Um nicht unnötig
+ zu verwirren, wurde diese im Beispiel ersetzt.}%
+ \fi
+
+ Statt der Anweisung \Macro{marginline} wäre auch die Verwendung von
+ \Macro{marginpar} möglich gewesen. Tatsächlich wird bei obiger Verwendung
+ von \Macro{marginline} intern nichts anders gemacht als:
+\begin{lstcode}
+ \marginpar[\raggedleft\texttt{scrartcl}]
+ {\raggedright\texttt{scrartcl}}
+\end{lstcode}
+ Damit ist \Macro{marginline} also nur eine abkürzende Schreibweise.%
+ \end{Example}%
+\fi
+
+Für\textnote{Achtung!} Experten sind in
+\autoref{sec:maincls-experts.addInfos},
+\DescPageRef{maincls-experts.cmd.marginpar} Probleme bei der Verwendung von
+\Macro{marginpar} dokumentiert. Diese gelten ebenso für \Macro{marginline}.
+Darüber hinaus wird in \autoref{cha:scrlayer-notecolumn} ein Paket
+vorgestellt, mit dem sich auch Notizspalten mit eigenem Seitenumbruch
+realisieren lassen.%
+\iftrue% Umbruchkorrektur
+ \ Allerdings ist das Paket
+ \hyperref[cha:scrlayer-notecolumn]{\Package{scrlayer-notecolumn}}%
+ \IndexPackage{scrlayer-notecolumn} eher als
+ eine Konzeptstudie und weniger als fertiges Paket zu verstehen.%
+\fi%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-oddorevenpage.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-oddorevenpage.tex
new file mode 100644
index 0000000000..71dc74663e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-oddorevenpage.tex
@@ -0,0 +1,139 @@
+% ======================================================================
+% common-oddorevenpage.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-oddorevenpage.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-oddorevenpage.tex}
+ [$Date: 2018-01-30 09:32:50 +0100 (Tue, 30 Jan 2018) $
+ KOMA-Script guide (common paragraphs)]
+
+\section{Erkennung von rechten und linken Seiten}
+\seclabel{oddOrEven}%
+\BeginIndexGroup
+\BeginIndex{}{Seiten>gerade}%
+\BeginIndex{}{Seiten>ungerade}%
+
+\IfThisCommonFirstRun{}{%
+ Es gilt sinngemäß, was in
+ \autoref{sec:\ThisCommonFirstLabelBase.oddOrEven} geschrieben
+ wurde. Falls Sie also \autoref{sec:\ThisCommonFirstLabelBase.oddOrEven}
+ bereits gelesen und verstanden haben, können Sie in
+ \autoref{sec:\ThisCommonLabelBase.oddOrEven.next} auf
+ \autopageref{sec:\ThisCommonLabelBase.oddOrEven.next} fortfahren.%
+}
+
+Bei doppelseitigen Dokumenten wird zwischen linken und rechten Seiten
+unterschieden. Dabei hat eine linke Seite immer eine gerade Nummer und eine
+rechte Seite immer eine ungerade Nummer. %
+\IfThisCommonLabelBase{maincls}{%
+ Die Erkennung von rechten und linken Seiten ist damit
+ gleichbedeutend mit der Erkennung von Seiten mit gerader oder ungerader
+ Nummer. In \iffree{dieser Anleitung}{diesem Buch} ist vereinfachend von
+ ungeraden und geraden Seiten die Rede.%
+
+ % Umbruchkorrekturtext
+ \iftrue%
+ Bei einseitigen Dokumenten existiert die Unterscheidung zwischen linken
+ und rechten Seiten nicht. Dennoch gibt es natürlich auch bei einseitigen
+ Dokumenten sowohl Seiten mit gerader als auch Seiten mit ungerader
+ Nummer.%
+ \fi%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ In der Regel werden Briefe einseitig gesetzt. Sollen Briefe mit
+ einseitigem Layout jedoch auf Vorder- und Rückseite gedruckt oder
+ ausnahmsweise tatsächlich doppelseitige Briefe erstellt werden, kann unter
+ Umständen das Wissen, ob man sich auf einer Vorder- oder einer Rückseite
+ befindet, nützlich sein.%
+ }{}%
+}
+
+\begin{Declaration}
+ \Macro{ifthispageodd}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}%
+Will man bei \KOMAScript{} feststellen, ob ein Text auf einer geraden oder
+einer ungeraden Seite ausgegeben wird, so verwendet man die Anweisung
+\Macro{ifthispageodd}. Dabei wird das Argument \PName{Dann-Teil} nur dann
+ausgeführt, wenn man sich aktuell auf einer ungeraden Seite
+befindet. Anderenfalls kommt das Argument \PName{Sonst-Teil} zur Anwendung.
+
+\begin{Example}
+ Angenommen, Sie wollen einfach nur ausgeben, ob ein Text auf einer geraden
+ oder ungeraden Seite ausgegeben wird. Sie könnten dann beispielsweise mit
+ der Eingabe
+\begin{lstcode}
+ Dies ist eine Seite mit
+ \ifthispageodd{un}{}gerader Seitenzahl.
+\end{lstcode}
+ \iffree{}{mit leerem \PName{Sonst-Teil} }% Umbruchkorrekturtext!!!
+ die Ausgabe
+ \begin{quote}
+ Dies ist eine Seite mit \ifthispageodd{un}{}gerader Seitenzahl.
+ \end{quote}
+ erhalten.\iffree{ Beachten Sie, dass in diesem Beispiel das Argument
+ \PName{Sonst-Teil} leer geblieben ist.}{}% Umbruchkorrekturtext!!!
+\end{Example}
+
+Da die Anweisung \Macro{ifthispageodd} mit einem Mechanismus arbeitet, der
+einem Label und einer Referenz darauf sehr ähnlich ist, werden nach jeder
+Textänderung mindestens zwei \LaTeX-Durchläufe benötigt. Erst dann ist die
+Entscheidung korrekt. Im ersten Durchlauf wird für die
+Entscheidung eine Heuristik verwendet.
+
+Näheres zur Problematik der Erkennung von linken und rechten Seiten oder
+geraden und ungeraden Seitennummern ist für Experten in
+\autoref{sec:maincls-experts.addInfos},
+\DescPageRef{maincls-experts.cmd.ifthispageodd} zu finden.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-options.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-options.tex
new file mode 100644
index 0000000000..433dfb2e67
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-options.tex
@@ -0,0 +1,248 @@
+% ======================================================================
+% common-options.tex
+% Copyright (c) Markus Kohm, 2001-2017
+%
+% 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-options.tex
+% Copyright (c) Markus Kohm, 2001-2017
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-options.tex}
+ [$Date: 2018-10-23 08:59:49 +0200 (Tue, 23 Oct 2018) $
+ KOMA-Script guide (common paragraphs)]
+
+\section{Frühe oder späte Optionenwahl}
+\seclabel{options}
+\BeginIndexGroup
+\BeginIndex{}{Optionen}%
+
+\IfThisCommonFirstRun{%
+ In diesem Abschnitt wird eine Besonderheit von \KOMAScript{} vorgestellt, die
+ neben %
+ \IfThisCommonLabelBase{typearea}{\Package{typearea} auch andere
+ \KOMAScript-Pakete und "~Klassen }{%
+ \IfThisCommonLabelBase{maincls}{den Klassen \Class{scrbook},
+ \Class{scrreprt} und \Class{scrartcl} auch andere \KOMAScript-Klassen und
+ "~Pakete }{%
+ \IfThisCommonLabelBase{scrlttr2}{der Klasse \Class{scrlttr2} auch andere
+ \KOMAScript-Klassen und "~Pakete }{%
+ \IfThisCommonLabelBase{scrextend}{den Klassen und \Package{scrextend}
+ auch einige andere \KOMAScript-Pakete }{%
+ \IfThisCommonLabelBase{scrhack}{\Package{scrhack} auch andere
+ \KOMAScript-Pakete und "~Klassen }{%
+ \IfThisCommonLabelBase{scrjura}{\Package{scrjura} auch andere
+ \KOMAScript-Pakete und "~Klassen }{%
+ \IfThisCommonLabelBase{scrlayer}{\Package{scrlayer} auch andere
+ \KOMAScript-Pakete und "-Klassen }{%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage} auch andere \KOMAScript-Pakete und
+ "-Klassen }{%
+ \IfThisCommonLabelBase{scrlayer-notecolumn}{%
+ \Package{scrlayer-notecolumn} auch andere \KOMAScript-Pakete
+ und "-Klassen }{%
+ \InternalCommonFileUsageError}}}}}}}}}%%
+ betrifft. %
+ % Umbruchvarianten:
+ \IfThisCommonLabelBase{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.%
+ }{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
+ \IfThisCommonLabelBase{maincls}{bei den weiteren Kapitel
+ überspringen.}{beim weiteren Studium der Anleitung dann überspringen.}%
+ }%
+}{%
+ Es gilt sinngemäß, was in \autoref{sec:\ThisCommonFirstLabelBase.options}
+ geschrieben wurde. Falls Sie also
+ \autoref{sec:\ThisCommonFirstLabelBase.options} bereits gelesen und
+ verstanden haben, können Sie auf
+ \autopageref{sec:\ThisCommonLabelBase.options.next} mit
+ \autoref{sec:\ThisCommonLabelBase.options.next} fortfahren.%
+}
+
+
+\begin{Declaration}
+ \Macro{documentclass}\OParameter{Optionenliste}%
+ \Parameter{\KOMAScript-Klasse}%
+ \Macro{usepackage}\OParameter{Optionenliste}%
+ \Parameter{Paket-Liste}
+\end{Declaration}
+Bei \LaTeX{} ist vorgesehen, dass Anwender
+Klassenoptionen\textnote{Klassenoptionen} in Form einer durch Komma getrennten
+Liste einfacher Schlüsselwörter als optionales Argument von
+\Macro{documentclass} angeben. Außer an die Klasse werden diese Optionen auch
+an alle Pakete\textnote{globale Optionen} weitergereicht, die diese Optionen
+verstehen. Ebenso ist vorgesehen, dass Anwender
+Paketoptionen\textnote{Paketoptionen} in Form einer durch Komma getrennten
+Liste einfacher Schlüsselwörter als optionales Argument von \Macro{usepackage}
+angeben. \KOMAScript{} erweitert\ChangedAt{v3.00}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}\and \Package{typearea}} den
+Mechanismus der Optionen für
+\IfThisCommonLabelBaseOneOf{scrextend,scrjura}{}{die \KOMAScript-Klassen und
+}einige Pakete um weitere Möglichkeiten. So haben die meisten Optionen bei
+\KOMAScript{} zusätzlich einen Wert. Eine Option hat also nicht unbedingt nur
+die Form \PName{Option}, sondern kann auch die Form
+\PName{Option}\texttt{=}\PName{Wert}%
+\important{\PName{Option}\texttt{=}\PName{Wert}} haben. Bis auf diesen
+Unterschied arbeiten \Macro{documentclass} und \Macro{usepackage} bei
+\KOMAScript{} wie in \cite{latex:usrguide} oder jeder \LaTeX-Einführung,
+beispielsweise \cite{l2kurz}, beschrieben.%
+%
+\iffree{}{\IfThisCommonLabelBase{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}{}}%
+
+\IfThisCommonLabelBaseNotOneOf{%
+ scrjura,scrhack,scrlayer,scrlayer-scrpage,scrlayer-notecolumn,scrextend%
+}{%
+ Bei Verwendung einer \KOMAScript-Klasse\textnote{Achtung!} sollten im
+ Übrigen beim 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.%
+ \IfThisCommonLabelBase{scrlttr2}{ Überhaupt ist es bei Verwendung einer
+ \KOMAScript-Klasse nicht notwendig, eines dieser Pakete auch noch explizit
+ zu laden.}{}%
+ \par
+}{}
+
+% Umbruchoptimierung!!!
+\IfThisCommonLabelBase{typearea}{Das Setzen der Optionen mit
+ \Macro{documentclass} hat übrigens einen\textnote{Achtung!} entscheidenden
+ Nachteil: %
+}{%
+ Gegenüber der nachfolgend vorgestellten Schnittstelle zu Einstellungen von
+ Optionen hat \Macro{documentclass} 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 dieser
+Anweisung bei vielen Nicht-\KOMAScript-Klassen zu einer Fehlermeldung%
+\IfThisCommonLabelBaseNotOneOf{maincls,scrlttr2}{, noch bevor der Wert an ein
+ \KOMAScript-Paket ü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}, sondern mit den nachfolgend dokumentierten Anweisungen
+\DescRef{\LabelBase.cmd.KOMAoptions} oder \DescRef{\LabelBase.cmd.KOMAoption}
+vorgenommen werden. \EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{KOMAoptions}\Parameter{Optionenliste}\\
+ \Macro{KOMAoption}\Parameter{Option}\Parameter{Werteliste}
+\end{Declaration}
+\KOMAScript{}\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}\and \Package{typearea}} bietet bei den meisten
+\IfThisCommonLabelBaseOneOf{scrextend,scrjura}{}{Klassen- und }Paketoptionen
+auch die Möglichkeit, den Wert der Optionen noch nach dem Laden
+\IfThisCommonLabelBaseOneOf{scrextend,scrjura}{}{der Klasse beziehungsweise
+}des Pakets zu ändern. Mit der Anweisung \Macro{KOMAoptions} kann man wie bei
+\DescRef{\ThisCommonLabelBase.cmd.documentclass} oder
+\DescRef{\ThisCommonLabelBase.cmd.usepackage} die Werte einer Reihe von
+Optionen ändern. Jede Option der \PName{Optionenliste} hat dabei die Form
+\PName{Option}\texttt{=}\PName{Wert}%
+\important{\PName{Option}\texttt{=}\PName{Wert},\dots}.
+
+Einige Optionen besitzen auch einen Säumniswert (engl. \emph{default
+ value}). Versäumt man die Angabe eines Wertes, verwendet man die Option also
+einfach in der Form \PName{Option}, so wird automatisch dieser Säumniswert
+angenommen.
+
+Manche Optionen können gleichzeitig mehrere Werte besitzen. Für solche
+Optionen besteht die Möglichkeit, mit \Macro{KOMAoption} der einen
+\PName{Option} nacheinander eine Reihe von Werten zuzuweisen. Die einzelnen
+Werte sind dabei in der
+\PName{Werteliste}\important{\PName{Wert},\dots} durch Komma
+voneinander getrennt.
+
+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 \DescRef{scrbase.cmd.FamilyOptions} und
+ \DescRef{scrbase.cmd.FamilyOption} mit der Familie »\PValue{KOMA}«.
+ \IfThisCommonLabelBaseOneOf{typearea}{% Umbruchkorrektur
+ Näheres zu diesen Anweisungen finden fortgeschrittene Anwender in
+ \autoref{sec:scrbase.keyvalue} ab \DescPageRef{scrbase.cmd.FamilyOptions}.
+ }{%
+ Siehe dazu \autoref{part:forExperts}, \autoref{sec:scrbase.keyvalue},
+ ab \DescPageRef{scrbase.cmd.FamilyOptions}.
+ }%
+\end{Explain}
+
+Mit \Macro{KOMAoptions} oder \Macro{KOMAoption} gesetzte Optionen erreichen
+\IfThisCommonLabelBase{scrextend}{}{sowohl die \KOMAScript-Klasse als }auch
+alle bereits geladenen \KOMAScript-Pakete, die diese Optionen kennen. Ist eine
+Option oder ein Wert insgesamt unbekannt, so wird die Option einschließlich
+des Wertes von
+\hyperref[cha:scrbase]{\Package{scrbase}}\IndexPackage{scrbase}%
+\important{\hyperref[cha:scrbase]{\Package{scrbase}}} als fehlerhaft
+gemeldet.%
+%
+\iffalse% Umbruchkorrekturtext
+\iffree{}{\IfThisCommonLabelBase{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.}{}}%
+\fi%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\phantomsection
+\label{sec:\ThisCommonLabelBase.options.end}
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-pagestylemanipulation.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-pagestylemanipulation.tex
new file mode 100644
index 0000000000..f4814b7283
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-pagestylemanipulation.tex
@@ -0,0 +1,1151 @@
+% ======================================================================
+% common-pagestylemanipulation.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-pagestylemanipulation.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-pagestylemanipulation.tex}
+ [$Date: 2018-02-05 10:50:56 +0100 (Mon, 05 Feb 2018) $
+ KOMA-Script guide (common paragraph:
+ Setting up defined page styles)]
+
+\section{Beeinflussung von Seitenstilen}
+\seclabel{pagestyle.content}
+\BeginIndexGroup
+\BeginIndex{}{Seiten>Stil}
+
+\IfThisCommonLabelBase{scrlayer}{%
+ Obwohl \Package{scrlayer} selbst keine konkreten Seitenstile mit Inhalt
+ definiert -- die erwähnten Seitenstile
+ \DescRef{\LabelBase.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.%
+}{%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ In \autoref{sec:scrlayer-scrpage.predefined.pagestyles} wurde erklärt, wie
+ die Seitenstile \DescRef{\LabelBase.pagestyle.scrheadings} und
+ \DescRef{\LabelBase.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
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ \important{\hyperref[cha:scrlayer]{\Package{scrlayer}}}
+ sind, werden sie nachfolgend
+ erläutert, da diese grundlegenden Eigenschaften von
+ \hyperref[cha:scrlayer]{\Package{scrlayer}} einen wichtigen Teil der
+ Möglichkeiten von \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage}%
+ }{%
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ } ausmachen.%
+ }{%
+ \IfThisCommonLabelBase{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.%
+ }{\InternalCommonFileUsageError}%
+ }%
+}
+
+\IfThisCommonLabelBase{scrlayer-scrpage-experts}{\iffalse}{%
+ \csname iftrue\endcsname}%
+ \begin{Declaration}
+ \Macro{automark}\OParameter{Gliederungsebene der rechten Marke}
+ \Parameter{\mbox{Gliederungsebene der linken Marke}}
+ \Macro{automark*}\OParameter{Gliederungsebene der rechten Marke}
+ \Parameter{Gliederungsebene der linken Marke}
+ \Macro{manualmark}
+ \end{Declaration}
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \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
+ \DescRef{maincls.pagestyle.headings}\IndexPagestyle{headings}%
+ \important{\DescRef{maincls.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 \hyperref[cha:maincls]{\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 \DescRef{maincls.cmd.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
+ \DescRef{maincls.pagestyle.myheadings}\IndexPagestyle{myheadings}%
+ \important{\DescRef{maincls.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{%
+ \DescRef{\ThisCommonLabelBase.cmd.markright}\\
+ \DescRef{\ThisCommonLabelBase.cmd.markboth}}
+ über die später in diesem Abschnitt dokumentierten Anweisungen
+ \DescRef{\ThisCommonLabelBase.cmd.markright} und
+ \DescRef{\ThisCommonLabelBase.cmd.markboth} befüllen.
+ \end{Explain}\par%
+ }{%
+ \IfThisCommonLabelBase{scrlayer}{%
+ Bei den meisten Klassen bestimmt die Wahl des Seitenstils, meist
+ \PageStyle{headings} und \PageStyle{myheadings}, darüber, ob die
+ Kolumnentitel automatisch oder manuell erzeugt werden. %
+ }{\InternalCommonFileUsageError}%
+ }%
+ Genau diese Unterscheidung wurde bei %
+ \iffalse \Package{scrpage2} und nun auch bei \fi%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}\IndexPackage{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.
+
+ Es ist zu beachten\textnote{Achtung!}, dass nicht alle Klassen Kolumnentitel
+ für alle Ebenen ermöglichen. So setzen die
+ Standardklassen\textnote{\KOMAScript{} vs. Standardklassen} beispielsweise
+ nie Kolumnentitel für \DescRef{maincls.cmd.part}. Die \KOMAScript-Klassen
+ unterstützen hingegen alle Ebenen.
+
+ 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.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{}{ Man kann so auch relativ
+ komplexe Fälle abdecken.}% Umbruchoptimierung
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\iftrue}{\csname
+ iffalse\endcsname}%
+ \iffalse% Umbruchkorrekturtext
+ \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.%
+ }%
+ \fi
+ %
+ \begin{Example}
+ \phantomsection\xmpllabel{mark}%
+ 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 auf"|taucht. Dazu wird zuerst
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage}%
+ }{%
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ } geladen und der Seitenstil \DescRef{\LabelBase.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
+ \DescRef{\LabelBase.pagestyle.plain.scrheadings} gesetzt wird (siehe
+ dazu Anweisung \DescRef{maincls.cmd.chapterpagestyle} auf
+ \DescPageRef{maincls.cmd.chapterpagestyle}). 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}
+ \fi
+
+ \begin{Declaration}
+ \Option{automark}
+ \OptionVName{autooneside}{Ein-Aus-Wert}
+ \Option{manualmark}
+ \end{Declaration}
+ Außer mit den zuvor erklärten 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
+ \DescRef{maincls.cmd.chapter}-Anweisung immer die
+ Voreinstellung\textnote{Voreinstellung}
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\iftrue}{\csname
+ iffalse\endcsname}%
+ \lstinline|\automark[section]{chapter}| und bei anderen Klassen
+ \lstinline|\automark[subsection]{section}|.
+ \else
+\begin{lstcode}
+ \automark[section]{chapter}
+\end{lstcode}
+ und bei anderen Klassen:
+\begin{lstcode}
+ \automark[subsection]{section}
+\end{lstcode}
+ \fi
+
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ Im einseitigen Modus\textnote{einseitiger Satz} will man in der Regel,
+ dass nur die höheren Ebenen den Kolumnentitel vorgeben.%
+ }{%
+ 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.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\iftrue}{\csname
+ iffalse\endcsname}%
+ \begin{Example}
+ \phantomsection\xmpllabel{mark.oneside}%
+ 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
+ \DescRef{\LabelBase.cmd.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}
+ \fi
+
+ 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
+ \DescRef{\LabelBase.cmd.automark} oder \DescRef{\LabelBase.cmd.manualmark}
+ schafft hier klare Verhältnisse.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\par%
+ Bei Bedarf finden Sie weitere Hintergründe und Beispiele zur Verwendung
+ dieser Befehle und Optionen mit dem auf \Package{scrlayer} basierenden
+ Paket \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage}%
+ }{%
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ } in
+ \autoref{sec:scrlayer-scrpage.pagestyle.content}, ab
+ \DescPageRef{scrlayer-scrpage.cmd.manualmark}.%
+ }{}%
+ \EndIndexGroup
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \OptionVName{draft}{Ein-Aus-Wert}
+ \end{Declaration}
+ 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
+ \IfThisCommonLabelBase{scrlayer}{für die Entwurfsphase}{\unskip} alle
+ Elemente der Seitenstile zusätzlich mit
+ Maßlinien\Index{Masslinien=Maßlinien}
+ versehen. \IfThisCommonLabelBase{scrlayer}{\unskip}{Dies kann während der
+ Entwurfsphase manchmal nützlich sein.}%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{ %
+ 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
+ \DescRef{\LabelBase.cmd.usepackage} beim Laden des Pakets angibt.%
+ }{}%
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \Macro{MakeMarkcase}\Parameter{Text}
+ \end{Declaration}
+ Die automatischen, nicht jedoch die manuellen Kolumnentitel verwenden
+ \Macro{MakeMarkcase} für ihre Ausgabe. Ist die Anweisung beim Laden von
+ \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } nicht\textnote{bedingte Voreinstellung} 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 nachfolgend
+ dokumentierte Option \DescRef{\LabelBase.option.markcase}%
+ \IndexOption{markcase}\important{\DescRef{\LabelBase.option.markcase}}
+ geändert werden. Je nach Einstellung wird das Argument dann beispielsweise
+ in Groß- oder Kleinbuchstaben umgewandelt.
+ %
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \OptionVName{markcase}{Wert}
+ \end{Declaration}
+ Wie bereits früher erläutert, kann man bei
+ \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\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 \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\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
+ \DescRef{\ThisCommonLabelBase.cmd.MakeMarkcase}%
+ \IndexCmd[indexmain]{MakeMarkcase}.
+
+ \IfThisCommonLabelBase{scrlayer}{%
+ Aufgrund der mangelnden typografischen Qualität der primitiven Umwandlung
+ in Großbuchstaben (siehe die Erklärung zu
+ \DescRef{scrlayer-scrpage.option.markcase} in
+ \autoref{sec:scrlayer-scrpage.pagestyle.content} auf
+ \autopageref{expl:scrlayer-scrpage.MakeUppercase}) empfiehlt der
+ \KOMAScript-Autor den Verzicht auf Versalsatz.%
+ }{%
+ Leider\phantomsection\label{expl:\ThisCommonLabelBase.MakeUppercase}
+ führt die von \LaTeX{} für Versalsatz\Index{Versalsatz} vorgesehene
+ Anweisung \Macro{MakeUppercase}\IndexCmd{MakeUppercase} zu keinem guten
+ Ergebnis, 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\iffree{
+ 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:scrlayer-scrpage.markcase}%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{}{,
+ \autopageref{tab:scrlayer-scrpage.markcase}} zusammengefasst.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \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:\ThisCommonLabelBase.markcase}%
+ \begin{desctabular}
+ \pventry{lower}{\IndexOption[indexmain]{markcase~=lower}%
+ definiert \DescRef{\LabelBase.cmd.MakeMarkcase} so um, dass
+ automatische Kolumnentitel mit Hilfe von \Macro{MakeLowercase} in
+ Kleinbuchstaben gewandelt werden (Minuskelsatz).%
+ }%
+ \pventry{upper}{\IndexOption[indexmain]{markcase~=upper}%
+ definiert \DescRef{\LabelBase.cmd.MakeMarkcase} so um, dass
+ automatische Kolumnentitel mit Hilfe von \Macro{MakeUppercase} in
+ Großbuchstaben gewandelt werden (Versalsatz).%
+ }%
+ \pventry{used}{\IndexOption[indexmain]{markcase~=used}%
+ definiert \DescRef{\LabelBase.cmd.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[indexmain]{markcase~=noupper}%
+ definiert nicht nur \DescRef{\LabelBase.cmd.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}
+ }{}%
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \Macro{leftmark}
+ \Macro{rightmark}
+ \Macro{headmark}
+ \Macro{pagemark}
+ \end{Declaration}
+ 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
+ \DescRef{maincls-experts.cmd.rightmark} in
+ \autoref{sec:maincls-experts.addInfos},
+ \DescPageRef{maincls-experts.cmd.rightmark} verwiesen.
+
+ Mit \Macro{headmark}\important{\Macro{headmark}} kann man sich das Leben
+ erleichtern. Diese Erweiterung von
+ \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\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}\LabelFontElement{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
+ \DescRef{maincls.cmd.setkomafont} und \DescRef{maincls.cmd.addtokomafont}
+ verändert werden (siehe auch \autoref{sec:maincls.textmarkup},
+ \DescPageRef{maincls.cmd.setkomafont}).%
+ \EndIndex{FontElement}{pagenumber}%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\iftrue}{%
+ \par%
+ Bei Bedarf finden Sie ein Beispiel zur Verwendung der Anweisungen
+ \Macro{headmark} und \Macro{pagemark} mit dem auf
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ }{%
+ \Package{scrlayer}%
+ } basierenden Paket \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage}%
+ }{%
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ } in
+ \autoref{sec:scrlayer-scrpage.pagestyle.content}, ab
+ \PageRefxmpl{scrlayer-scrpage.headmark}.%
+ \csname iffalse\endcsname}%
+ \begin{Example}
+ \phantomsection\xmpllabel{headmark}%
+ 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}
+ \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 \DescRef{scrlayer-scrpage.cmd.ihead}\IndexCmd{ihead}
+ und \DescRef{scrlayer-scrpage.cmd.ohead*}\IndexCmd{ohead*} werden die
+ gewünschten Marken platziert. Dabei wird die
+ Seitenzahl\iffalse-Marke\fi{} durch die Sternform
+ \DescRef{scrlayer-scrpage.cmd.ohead*} %
+ \iffalse% Umbruchvarianten
+ nicht nur auf den mit
+ \DescRef{\LabelBase.pagestyle.scrheadings}\IndexPagestyle{scrheadings}
+ gesetzten Seiten, sondern auch für den auf Kapitelanfangsseiten
+ automatisch verwendeten \PageStyle{plain}-Seitenstil %
+ \else%
+ auch für den auf Kapitelanfangsseiten verwendeten Seitenstil %
+ \fi%
+ \DescRef{\LabelBase.pagestyle.plain.scrheadings}%
+ \IndexPagestyle{plain.scrheadings} konfiguriert.%
+
+ Da die Seitenstile bereits mit Marken in der Mitte von Kopf oder
+ Fuß vordefiniert sind, werden diese beiden Elemente mit
+ \DescRef{scrlayer-scrpage.cmd.chead} und
+ \DescRef{scrlayer-scrpage.cmd.cfoot} gelöscht. Hierzu werden leere
+ Argumente verwendet. Alternativ dazu hätte man auch
+ \DescRef{scrlayer-scrpage-experts.cmd.clearpairofpagestyles}
+ \IndexCmd{clearpairofpagestyles}
+ \emph{vor} \DescRef{scrlayer-scrpage.cmd.ihead} verwenden können. Diese
+ Anweisung wird jedoch erst in
+ \autoref{sec:scrlayer-scrpage-experts.pagestyle.pairs} auf
+ \DescPageRef{scrlayer-scrpage-experts.cmd.clearpairofpagestyles}
+ erklärt werden.
+ \end{Example}%
+
+ Bitte beachten Sie, dass das leere optionale Argument bei
+ \DescRef{scrlayer-scrpage.cmd.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.%
+ \fi
+
+ \IfThisCommonLabelBase{scrlayer-scrpage}{% Umbruchvarianten
+ Fortgeschrittene Anwender finden ab
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \DescPageRef{scrlayer-scrpage-experts.cmd.righttopmark}}{%
+ \DescPageRef{\ThisCommonLabelBase.cmd.righttopmark}} weitere
+ Marken-Anweisungen.%
+ }{%
+ Sollten die hier vorgestellten Möglichkeiten für Marken einmal nicht
+ ausreichen, so sind für fortgeschrittene Anwender ab
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \DescPageRef{scrlayer-scrpage-experts.cmd.righttopmark}}{%
+ \DescPageRef{\ThisCommonLabelBase.cmd.righttopmark}} weitere Anweisungen
+ dokumentiert.%
+ }%
+ \iffalse% Umbruchkorrektur
+ \ Beispielsweise ist für lexikonartige Dokumente das dort erklärte
+ \DescRef{scrlayer-scrpage-experts.cmd.leftfirstmark} und
+ \DescRef{scrlayer-scrpage-experts.cmd.rightbotmark} recht nützlich.%
+ \fi \EndIndexGroup
+
+
+ \begin{Declaration}
+ \Macro{partmarkformat}
+ \Macro{chaptermarkformat}
+ \Macro{sectionmarkformat}
+ \Macro{subsectionmarkformat}
+ \Macro{subsubsectionmarkformat}
+ \Macro{paragraphmarkformat}
+ \Macro{subparagraphmarkformat}
+ \end{Declaration}
+ Diese Anweisungen werden von den \KOMAScript-Klassen und auch von
+ \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } intern üblicherweise verwendet, um die Gliederungsnummern der
+ automatischen Kolumnentitel zu formatieren. Dabei wird auch der
+ \DescRef{maincls.cmd.autodot}-Mechanismus der \KOMAScript-Klassen
+ unterstützt. Bei Bedarf können diese Anweisungen umdefiniert werden, um eine
+ andere Formatierung der Nummern zu erreichen.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\iftrue}{%
+ \ Siehe dazu gegebenenfalls das Beispiel in
+ \autoref{sec:scrlayer-scrpage.pagestyle.content}, auf
+ \PageRefxmpl{scrlayer-scrpage.cmd.sectionmarkformat}.%
+ \csname iffalse\endcsname%
+ }%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.sectionmarkformat}%
+ \iftrue
+ Wollen Sie auf Abschnittsebene Kolumnentitel ohne Gliederungsnummer,
+ geht das beispielsweise so:
+ \else
+ Angenommen, Sie wollen, dass Abschnittsüberschriften im Kolumnentitel
+ ohne Gliederungsnummer gesetzt werden, \iffree{so}{dann} ist das ganz
+ einfach \iffree{mit:}{so zu erreichen:}
+ \fi
+\begin{lstcode}[belowskip=-\dp\strutbox]
+ \renewcommand*{\sectionmarkformat}{}
+\end{lstcode}
+ \iffree{zu erreichen.}{}%
+ \end{Example}%
+ \fi
+ %
+ \EndIndexGroup
+
+
+ \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}
+ 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.
+
+ Allerdings\textnote{Achtung!} verwenden nicht alle Klassen in allen
+ Gliederungsebenen eine solche Anweisung. %
+ \IfThisCommonLabelBase{scrlayer-scrpage}{% Umbruchvarianten
+ Beispielsweise rufen die Standardklassen\textnote{\KOMAScript{}
+ vs. Standardklassen} \Macro{partmark} bei \Macro{part} nicht auf.%
+ }{%
+ So wird beispielsweise \Macro{partmark} von den
+ Standardklassen\textnote{\KOMAScript{} vs. Standardklassen} nie
+ aufgerufen, während die \KOMAScript-Klassen selbstverständlich auch
+ \Macro{partmark} unterstützen.%
+ }
+
+ Falls diese Anweisungen vom Anwender umdefiniert werden, sollte
+ er\textnote{Achtung!} unbedingt darauf achten, vor dem Setzen der Nummer
+ ebenfalls über \DescRef{maincls.counter.secnumdepth} zu prüfen, ob die
+ Nummern auszugeben sind. Dies gilt auch, wenn der Anwender
+ \DescRef{maincls.counter.secnumdepth} selbst nicht verändert, weil Pakete
+ und Klassen sich eventuell auf die Wirkung von
+ \DescRef{maincls.counter.secnumdepth} verlassen!
+
+ Das Paket \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } definiert diese Anweisungen außerdem bei jedem Aufruf von
+ \DescRef{scrlayer.cmd.automark} oder \DescRef{scrlayer.cmd.manualmark} oder
+ den entsprechenden Optionen teilweise neu, um so die gewünschten
+ automatischen oder manuellen Kolumnentitel zu erreichen.%
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \Macro{markleft}\Parameter{linke Marke}
+ \Macro{markright}\Parameter{rechte Marke}
+ \Macro{markboth}\Parameter{linke Marke}\Parameter{rechte Marke}
+ \end{Declaration}
+ 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 \DescRef{maincls-experts.cmd.rightmark} in
+ \autoref{sec:maincls-experts.addInfos},
+ \DescPageRef{maincls-experts.cmd.rightmark} oder zu
+ \DescRef{scrlayer.cmd.rightfirstmark}\IfThisCommonLabelBase{scrlayer}{}{ in
+ \autoref{sec:scrlayer.pagestyle.content}},
+ \DescPageRef{scrlayer.cmd.rightfirstmark} 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.%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{\iftrue}{%
+ \ Ausführliche Beispiele für die Verwendung von \Macro{markboth} mit dem
+ von \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ }{%
+ \Package{scrlayer}%
+ } abgeleiteten Paket \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage}%
+ }{%
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ } sind in \autoref{sec:scrlayer-scrpage.pagestyle.content}, ab
+ \PageRefxmpl{scrlayer-scrpage.cmd.markboth} zu finden.%
+ \csname iffalse\endcsname%
+ }%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.markboth}%
+ Angenommen, Sie schreiben noch vor dem Inhaltsverzeichnis ein Vorwort
+ über mehrere Seiten, das jedoch im Inhaltsverzeichnis nicht auf"|tauchen
+ soll. Da Sie aber Trennlinien im Kopf verwenden, soll der Kolumnentitel
+ das Vorwort dennoch zeigen:
+\begin{lstcode}
+ \documentclass[headsepline]{book}
+ \usepackage[automark]{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äß. Vielleicht erst 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[automark]{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 \DescRef{scrlayer.cmd.MakeMarkcase}%
+ \IndexCmd{MakeMarkcase}\important{\DescRef{scrlayer.cmd.MakeMarkcase}}
+ verwendet, um auch den manuell korrigierten Kolumnentitel des Vorworts
+ entsprechend der automatischen Kolumnentitel des restlichen Dokuments
+ anzupassen.
+
+ Verschieben Sie nun einmal \DescRef{maincls.cmd.tableofcontents}%
+ \Index{Inhaltsverzeichnis}\IndexCmd{tableofcontents}%
+ \important{\DescRef{maincls.cmd.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 \DescRef{maincls.cmd.chapter*}%
+ \IndexCmd{chapter*}\important{\DescRef{maincls.cmd.chapter*}} (siehe
+ auch in \autoref{sec:maincls.structure} auf
+ \DescPageRef{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[automark]{scrlayer-scrpage}
+ \pagestyle{scrheadings}
+ \usepackage{blindtext}
+ \begin{document}
+ \tableofcontents
+ \chapter*{Vorwort}
+ \markboth{}{}
+ \blindtext[20]
+ \blinddocument
+ \end{document}
+\end{lstcode}
+ \end{Example}
+ \fi%
+ %
+ \EndIndexGroup
+\fi
+
+
+\IfThisCommonLabelBase{scrlayer-scrpage}{\iffalse}{\csname iftrue\endcsname}
+ \begin{Declaration}
+ \Macro{GenericMarkFormat}\Parameter{Gliederungsname}
+ \end{Declaration}
+ Diese Anweisung wird in der Voreinstellung zur Formatierung aller
+ Gliederungsnummern in automatischen Kolumnentiteln unterhalb der
+ Unterabschnitte und bei Klassen ohne \DescRef{maincls.cmd.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 und von \KOMAScript{} etwas modifiziert 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.%
+ \IfThisCommonLabelBase{scrlayer-scrpage-experts}{\iftrue}{%
+ \par %
+ Ein ausführliches Beispiel für das Zusammenspiel der Anweisung
+ \Macro{GenericMarkFormat} mit den auf
+ \DescPageRef{\ThisCommonLabelBase.cmd.chaptermark} erklärten Anweisungen
+ \DescRef{\ThisCommonLabelBase.cmd.sectionmarkformat} und
+ \DescRef{\ThisCommonLabelBase.cmd.subsectionmarkformat} beziehungsweise
+ \DescRef{\ThisCommonLabelBase.cmd.chaptermarkformat} bei Verwendung des
+ von \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } abgeleiteten Pakets \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \Package{scrlayer-scrpage}%
+ }{%
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ } ist in \autoref{sec:scrlayer-scrpage-experts.pagestyle.content}, ab
+ \PageRefxmpl{scrlayer-scrpage-experts.cmd.GenericMarkFormat} zu finden.%
+ \csname iffalse\endcsname}%
+ \begin{Example}
+ \phantomsection
+ \xmpllabel{cmd.GenericMarkFormat}%
+ 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 \DescRef{scrlayer.cmd.sectionmarkformat}%
+ \IndexCmd{sectionmarkformat}%
+ \important{%
+ \DescRef{scrlayer.cmd.sectionmarkformat}\\
+ \DescRef{scrlayer.cmd.subsectionmarkformat}} und
+ \DescRef{scrlayer.cmd.subsectionmarkformat}%
+ \IndexCmd{subsectionmarkformat} von \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\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 würden, 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
+ \DescRef{scrlayer.cmd.sectionmarkformat}%
+ \IndexCmd{sectionmarkformat}%
+ \important{\DescRef{scrlayer.cmd.sectionmarkformat}} und --
+ je nach Klasse --
+ \DescRef{scrlayer.cmd.subsectionmarkformat}%
+ \IndexCmd{subsectionmarkformat}%
+ \important{\DescRef{scrlayer.cmd.subsectionmarkformat}}
+ beziehungsweise \DescRef{scrlayer.cmd.chaptermarkformat}%
+ \IndexCmd{chaptermarkformat}%
+ \important{\DescRef{scrlayer.cmd.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}
+ \fi%
+ \EndIndexGroup
+
+
+ \begin{Declaration}
+ \Macro{righttopmark}
+ \Macro{rightbotmark}
+ \Macro{rightfirstmark}
+ \Macro{lefttopmark}
+ \Macro{leftbotmark}
+ \Macro{leftfirstmark}
+ \end{Declaration}
+ \LaTeX\ChangedAt{v3.16}{\Package{scrlayer}} verwendet für die Seitenstile
+ normalerweise eine zweiteilige \TeX-Marke. Im Kolumnentitel kann auf den
+ linken Teil der Marke mit \DescRef{scrlayer.cmd.leftmark}%
+ \important{\DescRef{scrlayer.cmd.leftmark}}\IndexCmd{leftmark} zugegriffen
+ werden, während der rechte Teil der Marke über
+ \DescRef{scrlayer.cmd.rightmark}%
+ \important{\DescRef{scrlayer.cmd.rightmark}}\IndexCmd{rightmark} verfügbar
+ ist. Tatsächlich ist es wohl auch so gedacht, dass
+ \DescRef{scrlayer.cmd.leftmark} für linke Seiten und
+ \DescRef{scrlayer.cmd.rightmark} für rechte Seiten im doppelseitigen Druck
+ verwendet wird. Im einseitigen Layout setzen die Gliederungsbefehle der
+ Standardklassen den linken Teil der Marke hingegen gar nicht erst.
+
+ \TeX{} selbst kennt drei Möglichkeiten, auf eine Marke zuzugreifen. Die
+ \Macro{botmark}\IndexCmd{botmark}\important{\Macro{botmark}} ist die auf der
+ zuletzt zusammengestellten Seite zuletzt gültige Marke. Das entspricht der
+ zuletzt gesetzten Marke der Seite. Wurde auf der Seite keine Marke gesetzt,
+ so entspricht es der zuletzt gesetzten Marke auf den bereits ausgegebenen
+ Seiten. Die \LaTeX-Anweisung \DescRef{scrlayer.cmd.leftmark} verwendet genau
+ diese Marke, gibt also den linken Teil der letzten Marke der Seite aus. Dies
+ entspricht auch genau \Macro{leftbotmark}\important{\Macro{leftbotmark}}. Im
+ Vergleich dazu gibt \Macro{rightbotmark}\important{\Macro{rightbotmark}} den
+ rechten Teil dieser Marke aus.
+
+ \Macro{firstmark}\IndexCmd{firstmark}\important{\Macro{firstmark}} ist die
+ erste Marke der zuletzt zusammengestellten Seite. Das entspricht der ersten
+ Marke, die auf der Seite gesetzt wurde. Wurde auf der Seite keine Marke
+ gesetzt, so entspricht es der zuletzt gesetzten Marke auf den bereits
+ ausgegebenen Seiten. Die \LaTeX-Anweisung \DescRef{scrlayer.cmd.rightmark}
+ verwendet genau diese Marke, gibt also den rechten Teil der ersten Marke der
+ Seite aus. Dies entspricht auch genau
+ \Macro{rightfirstmark}\important{\Macro{rightfirstmark}}. Im Vergleich dazu
+ gibt \Macro{leftfirstmark}\important{\Macro{leftfirstmark}} den linken Teil
+ dieser Marke aus.
+
+ \Macro{topmark}\IndexCmd{topmark}\important{\Macro{topmark}} ist der Inhalt,
+ den \Macro{botmark} hatte, bevor die aktuelle Seite zusammengestellt
+ wurde. \LaTeX{} verwendet dies selbst nie. Trotzdem bietet
+ \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } die Möglichkeit mit \Macro{lefttopmark}\important{\Macro{lefttopmark}} auf
+ den linken Teil dieser Marke und mit
+ \Macro{righttopmark}\important{\Macro{righttopmark}} auf den rechten Teil
+ zuzugreifen.
+
+ Es\textnote{Achtung!} ist zu beachten, dass der linke und rechte Teil der
+ Marke immer nur gemeinsam gesetzt werden kann. Selbst wenn man mit
+ \DescRef{scrlayer.cmd.markright}\IndexCmd{markright} nur den rechten Teil
+ verändert, wird der linke Teil (unverändert) mit gesetzt. Entsprechend
+ setzen im doppelseitigen Layout die höheren Gliederungsebenen beim
+ Seitenstil
+ \PageStyle{headings}\important{\PageStyle{headings}}\IndexPagestyle{headings}
+ immer beide Teile. Beispielsweise verwendet
+ \DescRef{scrlayer.cmd.chaptermark} dann
+ \DescRef{scrlayer.cmd.markboth} mit einem leeren rechten Argument. Das ist
+ auch der Grund, warum \DescRef{scrlayer.cmd.rightmark} beziehungsweise
+ \Macro{rightfirstmark} auf der Seite einer Kapitelüberschrift immer einen
+ leeren Wert zurück gibt, selbst wenn danach beispielsweise über
+ \DescRef{scrlayer.cmd.sectionmark} oder indirekt über
+ \DescRef{maincls.cmd.section} ein neuer rechter Teil
+ \IfThisCommonLabelBase{scrlayer-scrpage}{der Marke}{\unskip} gesetzt
+ wurde.
+
+ Bitte\textnote{Achtung!} beachten Sie, dass die Verwendung einer der hier
+ erklärten Anweisungen zur Ausgabe des linken oder rechten Teils der Marke
+ innerhalb einer Seite zu unerwarteten Ergebnissen führen kann. Sie sind
+ wirklich nur zur Verwendung im Kopf oder Fuß eines Seitenstils
+ gedacht. Daher sollten sie bei \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ } immer Teil des Inhalts
+ einer Ebene sein. Dagegen spielt es keine Rolle, ob sie auf den Hintergrund
+ oder den Vordergrund beschränkt werden, da alle Ebenen erst nach der
+ Zusammenstellung der aktuellen Seite ausgegeben werden.
+
+ Näheres zum Mark-Mechanismus \iffree{von \TeX{}}{\unskip} ist beispielsweise
+ \cite[Kapitel~23]{knuth:texbook} zu entnehmen. Das Thema ist dort als
+ absolutes Expertenwissen markiert.\IfThisCommonLabelBase{scrlayer}{
+ % Umbruchkorrektur
+ Sollte Sie obige Erklärung also eher
+ verwirrt haben, machen Sie sich bitte nichts daraus.}{}%
+ \EndIndexGroup
+
+
+ \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}
+ Innerhalb der Klassen und Pakete kommt es vor, dass Kolumnentitel nur dann
+ gesetzt werden sollen, wenn automatische Kolumnentitel (siehe Option
+ \DescRef{scrlayer.option.automark} und Anweisung
+ \DescRef{scrlayer.cmd.automark} auf
+ \DescPageRef{scrlayer.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 \DescRef{scrlayer.cmd.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 \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\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
+ \IfThisCommonLabelBase{scrlayer}{%
+ \Package{scrlayer}%
+ }{%
+ \hyperref[cha:scrlayer]{\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 die passende der vier
+ Anweisungen zurückgreifen, wenn sie linke oder rechte Marken setzen und
+ dies auf den Fall beschränken wollen, dass mit automatischen Kolumnentiteln
+ gearbeitet wird.%
+ \EndIndexGroup \fi
+
+\IfThisCommonLabelBase{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}.%
+}{}%
+\EndIndexGroup
+
+%%% 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 content Expertenwissen Gliederungsebenen
+% LocalWords: Gliederungsüberschriften Kapitelüberschriften Kolumnentitel
+% LocalWords: Abschnittsüberschriften Gliederungsnummer Kapitelanfangsseite
+% LocalWords: Kolumnentiteln Abschnittsebene Paketautoren
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-parmarkup.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-parmarkup.tex
new file mode 100644
index 0000000000..951953fb82
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-parmarkup.tex
@@ -0,0 +1,281 @@
+% ======================================================================
+% common-parmarkup.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-parmarkup.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-parmarkup.tex}
+ [$Date: 2018-01-31 13:56:21 +0100 (Wed, 31 Jan 2018) $
+ KOMA-Script guide (common paragraphs)]
+
+\section{Absatzauszeichnung}
+\seclabel{parmarkup}%
+\BeginIndexGroup
+\BeginIndex{}{Absatz>Auszeichnung}%
+
+\IfThisCommonLabelBase{maincls}{%
+ Die\textnote{Absatzeinzug vs. Absatzabstand} Standardklassen setzen
+ Absätze\Index[indexmain]{Absatz} normalerweise mit Absatzeinzug und ohne
+ Absatzabstand. Bei Verwendung eines normalen Satzspiegels, wie ihn
+ \Package{typearea} bietet, ist dies die vorteilhafteste
+ Absatzauszeichnung. Würde man ohne Einzug und Abstand arbeiten, hätte der
+ Leser als Anhaltspunkt nur die Länge der letzten Zeile. Im Extremfall kann
+ es sehr schwer sein zu erkennen, ob eine Zeile voll ist oder nicht. Des
+ Weiteren stellt der Typograf fest, dass die Auszeichnung des Absatzendes am
+ Anfang der nächsten Zeile leicht vergessen ist. Demgegenüber ist eine
+ Auszeichnung am Absatzanfang einprägsamer. Der Absatzabstand hat den
+ Nachteil, dass er in verschiedenem Zusammenhang leicht verloren geht. So
+ wäre nach einer abgesetzten Formel nicht mehr festzustellen, ob der Absatz
+ fortgesetzt wird oder ein neuer beginnt. Auch am Seitenanfang müsste
+ zurückgeblättert werden, um feststellen zu können, ob mit der Seite auch ein
+ neuer Absatz beginnt. All diese Probleme sind beim Absatzeinzug nicht
+ gegeben. Eine Kombination von Absatzeinzug und Absatzabstand ist wegen der
+ übertriebenen Redundanz abzulehnen. Der Einzug\Index[indexmain]{Einzug}
+ alleine ist deutlich genug. Der einzige Nachteil des Absatzeinzugs liegt in
+ der Verkürzung der Zeile. Damit gewinnt der
+ Absatzabstand\Index{Absatz>Abstand} bei ohnehin kurzen Zeilen, etwa im
+ Zeitungssatz, seine Berechtigung.%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ In der Einleitung zu \autoref{sec:maincls.parmarkup} ab
+ \autopageref{sec:maincls.parmarkup} wird dargelegt, warum der Absatzeinzug
+ gegenüber dem Absatzabstand vorzuziehen ist. Die Elemente, auf die sich
+ diese Argumente beziehen, beispielsweise Abbildungen, Tabellen, Listen,
+ abgesetzte Formeln und auch neue Seiten, sind in Standardbriefen eher
+ selten. Auch sind Briefe normalerweise nicht so umfänglich, dass ein nicht
+ erkannter Absatz sich schwerwiegend auf die Lesbarkeit auswirkt. Die
+ Argumente sind daher bei Standardbriefen eher schwach. Dies dürfte ein
+ Grund dafür sein, dass der Absatzabstand bei Briefen eher gebräuchlich
+ ist. Es bleiben damit für Standardbriefe im Wesentlichen zwei Vorteile des
+ Absatzeinzugs. Zum einen hebt sich ein solcher Brief aus der Masse hervor
+ und zum anderen durchbricht man damit nicht nur für Briefe das
+ einheitliche Erscheinungsbild aller Dokumente aus einer Quelle, die so
+ genannte \emph{Corporate Identity}.%
+ }{\InternalCommonFileUsageError}%
+} %
+\IfThisCommonFirstRun{}{%
+ Über diese Überlegungen hinaus gilt sinngemäß, was in
+ \autoref{sec:\ThisCommonFirstLabelBase.parmarkup} geschrieben wurde.
+ Falls Sie also \autoref{sec:\ThisCommonFirstLabelBase.parmarkup} bereits
+ gelesen und verstanden haben, können Sie nach dem Ende dieses Abschnitts auf
+ \autopageref{sec:\ThisCommonLabelBase.parmarkup.next} mit
+ \autoref{sec:\ThisCommonLabelBase.parmarkup.next} fortfahren.%
+ \IfThisCommonLabelBase{scrlttr2}{ %
+ Dies gilt ebenso, wenn Sie nicht mit Klasse
+ \Class{scrlttr2}\OnlyAt{scrlttr2}, sondern mit Paket \Package{scrletter}
+ arbeiten. Das Paket bietet keine eigenen Einstellungen für die
+ Absatzauszeichnung, sondern verlässt sich dabei ganz auf die verwendete
+ Klasse.%
+ }{}%
+}
+
+
+\begin{Declaration}
+ \OptionVName{parskip}{Methode}
+\end{Declaration}
+\IfThisCommonLabelBase{maincls}{%
+ Hin und wieder wird ein Layout mit Absatzabstand anstelle des
+ voreingestellten Absatzeinzugs gefordert. Die \KOMAScript-Klassen bieten mit
+ der Option \Option{parskip}\ChangedAt{v3.00}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} %
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ Bei Briefen findet man häufiger ein Layout mit Absatzabstand anstelle des
+ voreingestellten Absatzeinzugs. Die \KOMAScript-Klasse
+ \Class{scrlttr2}\OnlyAt{scrlttr2}
+ bietet mit der Option \Option{parskip} %
+ }{\InternalCommonFileUsageError}%
+}%
+eine Reihe von Möglichkeiten, um dies zu erreichen. Die \PName{Methode} setzt
+sich dabei aus zwei Teilen zusammen. Der erste Teil ist entweder
+\PValue{full}\important{\OptionValue{parskip}{full}\\
+ \OptionValue{parskip}{half}} oder \PValue{half}, wobei \PValue{full} für
+einen Absatzabstand von einer Zeile und \PValue{half} für einen Absatzabstand
+von einer halben Zeile steht. Der zweite Teil ist eines der Zeichen
+»\PValue{*}«, »\PValue{+}«, »\PValue{-}« und kann auch entfallen. Lässt man
+das Zeichen\important{\OptionVName{parskip}{Abstand}} weg, so wird in der
+letzten Zeile des Absatzes am Ende mindestens ein Geviert, das ist 1\Unit{em},
+frei gelassen. Mit dem
+Pluszeichen\important{\OptionValue{parskip}{\PName{Abstand}+}} wird am
+Zeilenende mindestens ein Drittel und mit dem
+Stern\important{\OptionValue{parskip}{\PName{Abstand}*}} mindestens ein
+Viertel einer normalen Zeile frei gelassen. Mit der
+Minus-Variante\important{\OptionValue{parskip}{\PName{Abstand}-}} werden keine
+Vorkehrungen für die letzte Zeile eines Absatzes getroffen.
+
+Die Einstellung kann jederzeit geändert werden. Wird sie innerhalb des
+Dokuments geändert, so wird implizit die Anweisung
+\Macro{selectfont}\IndexCmd{selectfont}%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.08}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrlttr2}{%
+ \ChangedAt{v3.08}{\Class{scrlttr2}}%
+ }{%
+ \InternalComonFileUsageError%
+ }%
+} %
+ausgeführt. Änderungen der Absatzauszeichnung innerhalb eines Absatzes
+werden erst am Ende des Absatzes sichtbar.
+
+Neben den sich so ergebenden acht Kombinationen ist es noch möglich, als
+\PName{Methode} die Werte für einfache Schalter aus
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} zu
+verwenden. Das Einschalten der
+Option\important{\Option{parskip}\\\OptionValue{parskip}{true}} entspricht
+dabei \PValue{full} ohne angehängtes Zeichen für den Freiraum der letzten
+Absatzzeile, also mit mindestens einem Geviert Freiraum am Ende des
+Absatzes. Das Ausschalten\important{\OptionValue{parskip}{false}} der Option
+schaltet hingegen wieder auf Absatzeinzug von einem Geviert um. Dabei darf die
+letzte Zeile eines Absatzes auch bis zum rechten Rand reichen. Einen Überblick
+über alle möglichen Werte für \PName{Methode} bietet
+\autoref{tab:\ThisCommonFirstLabelBase.parskip}%
+\IfThisCommonFirstRun{.%
+ \begin{desclist}
+ % Umbruchkorrektur
+ \vskip-\ht\strutbox
+ \renewcommand{\abovecaptionskipcorrection}{-\normalbaselineskip}%
+% \begin{table}
+ \desccaption
+% \caption
+ [{Mögliche Werte für Option \Option{parskip}}]{%
+ Mögliche Werte für Option \Option{parskip} zur Auswahl der Kennzeichnung
+ von Absätzen\label{tab:\ThisCommonFirstLabelBase.parskip}%
+ }%
+ {%
+ Mögliche Werte für Option \Option{parskip} (\emph{Fortsetzung})%
+ }%
+% \begin{desctabular}
+ \entry{\PValue{false}, \PValue{off}, \PValue{no}%
+ \IndexOption{parskip~=\textKValue{false}}}{%
+ Absätze werden durch einen Einzug der ersten Zeilen von einem Geviert
+ (1\Unit{em}) gekennzeichnet. Der erste Absatz eines Abschnitts wird nicht
+ eingezogen.}%
+ \entry{\PValue{full}, \PValue{true}, \PValue{on}, \PValue{yes}%
+ \IndexOption{parskip~=\textKValue{full}}%
+ }{%
+ Absätze werden durch einen vertikalen Abstand von einer Zeile
+ gekennzeichnet, Absatzenden durch einen Leerraum von mind. einem Geviert
+ (1\Unit{em}) der Grundschrift am Ende der letzten Zeile.}%
+ \pventry{full-}{%
+ Absätze werden durch einen vertikalen Abstand von einer Zeile
+ gekennzeichnet. Absatzenden werden nicht
+ gekennzeichnet.\IndexOption{parskip~=\textKValue{full-}}}%
+ \pventry{full+}{%
+ \looseness=-1 Absätze werden durch einen vertikalen Abstand von einer
+ Zeile gekennzeichnet. Absatzenden werden durch einen Leerraum von
+ mind. einem Drittel einer normalen Zeile
+ gekennzeichnet.\IndexOption{parskip~=\textKValue{full+}}}%
+ \pventry{full*}{%
+ Absätze werden durch einen vertikalen Abstand von einer Zeile
+ gekennzeichnet. Absatzenden werden durch einen Leerraum von mind. einem
+ Viertel einer normalen Zeile
+ gekennzeichnet.\IndexOption{parskip~=\textKValue{full*}}}%
+ \pventry{half}{%
+ Absätze werden durch einen vertikalen Abstand von einer halben Zeile
+ gekennzeichnet. Absatzenden durch einen Leerraum von mind. einem Geviert
+ (1\Unit{em}) der normalen Schrift am Ende
+ gekennzeichnet.\IndexOption{parskip~=\textKValue{half}}}%
+ \pventry{half-}{%
+ Absätze werden durch einen vertikalen Abstand von einer halben Zeile
+ gekennzeichnet. Absatzenden werden nicht
+ gekennzeichnet.\IndexOption{parskip~=half-}}%
+ \pventry{half+}{%
+ Absätze werden durch einen vertikalen Abstand von einer halben Zeile
+ gekennzeichnet. Absatzenden werden durch einen Leerraum von mind. einem
+ Drittel einer normalen Zeile
+ gekennzeichnet.\IndexOption{parskip~=\textKValue{half+}}}%
+ \pventry{half*}{%
+ Absätze werden durch einen vertikalen Abstand von einer Zeile
+ gekennzeichnet. Absatzenden werden durch einen Leerraum von mind. einem
+ Viertel einer normalen Zeile
+ gekennzeichnet.\IndexOption{parskip~=\textKValue{half*}}}%
+ \pventry{never}{%
+ Es %
+ \IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.08}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ }{%
+ \IfThisCommonLabelBase{scrlttr2}{\ChangedAt{v3.08}{\Class{scrlttr2}}}{}%
+ }%
+ wird auch dann kein Abstand zwischen Absätzen eingefügt, wenn für den
+ vertikalen Ausgleich der Einstellung
+ \DescRef{maincls.cmd.flushbottom}\IndexCmd{flushbottom} zusätzlicher
+ vertikaler Abstand verteilt werden
+ muss.\IndexOption{parskip~=\textKValue{never}}}%
+% \end{desctabular}
+% \end{table}%
+ \end{desclist}%
+}{ auf \autopageref{tab:\ThisCommonFirstLabelBase.parskip}.}
+
+Wird\textnote{Achtung!} ein Absatzabstand verwendet, so verändert sich auch
+der Abstand vor, nach und innerhalb von Listenumgebungen. Dadurch wird
+verhindert, dass diese Umgebungen oder Absätze innerhalb dieser Umgebungen
+stärker vom Text abgesetzt werden als die Absätze des normalen Textes
+voneinander.%
+\IfThisCommonLabelBase{maincls}{ %
+ Inhalts"~, Abbildungs"~ und Tabellenverzeichnis werden immer ohne
+ zusätzlichen Absatzabstand gesetzt.%
+}{%
+ \iffalse%
+ \ Verschiedene Elemente des Briefbogens werden immer ohne Absatzabstand
+ gesetzt.%
+ \fi%
+}%
+
+Voreingestellt\textnote{Voreinstellung} ist bei \KOMAScript{}
+\OptionValue{parskip}{false}. Hierbei gibt es keinen Absatzabstand, sondern
+einen Absatzeinzug von 1\Unit{em}.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-textmarkup.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-textmarkup.tex
new file mode 100644
index 0000000000..25d7649217
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-textmarkup.tex
@@ -0,0 +1,868 @@
+% ======================================================================
+% common-textmarkup.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-textmarkup.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-textmarkup.tex}
+ [$Date: 2018-07-20 09:52:01 +0200 (Fri, 20 Jul 2018) $
+ KOMA-Script guide (common paragraphs)]
+
+\section{Textauszeichnungen}
+\seclabel{textmarkup}%
+\BeginIndexGroup
+\BeginIndex{}{Text>Auszeichnung}%
+\BeginIndex{}{Schrift>Art}%
+
+\IfThisCommonFirstRun{}{%
+ Es gilt sinngemäß, was in \autoref{sec:\ThisCommonFirstLabelBase.textmarkup}
+ geschrieben wurde. Falls Sie also
+ \autoref{sec:\ThisCommonFirstLabelBase.textmarkup} bereits gelesen und
+ verstanden haben, können Sie
+ \IfThisCommonLabelBaseOneOf{scrextend,scrjura,scrlayer-notecolumn}{}{%
+ sich auf \autoref{tab:\ThisCommonLabelBase.fontelements},
+ \autopageref{tab:\ThisCommonLabelBase.fontelements} beschränken und
+ ansonsten }%
+ auf \autopageref{sec:\ThisCommonLabelBase.textmarkup.next} mit
+ \autoref{sec:\ThisCommonLabelBase.textmarkup.next} fortfahren.%
+ \IfThisCommonLabelBase{scrextend}{\ Für diesen Fall sei jedoch darauf
+ hingewiesen\textnote{Einschränkung} dass von \Package{scrextend} aus
+ \autoref{tab:maincls.fontelements}, \autopageref{tab:maincls.fontelements}
+ nur die Elemente für den Dokumenttitel, den schlauen Spruch, die Fußnoten
+ und die \DescRef{maincls.env.labeling}-Umgebung unterstützt werden. Das
+ Element \DescRef{maincls.fontelement.disposition} ist zwar auch vorhanden,
+ wird jedoch von \Package{scrextend} ebenfalls nur für den Dokumenttitel
+ verwendet.%
+ }{}%
+}
+
+% Umbruchkorrektur
+\IfThisCommonLabelBase{scrlayer-scrpage}{}{%
+ \LaTeX{} verfügt über eine ganze Reihe von Anweisungen zur
+ Textauszeichnung. %
+ \IfThisCommonLabelBaseOneOf{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.}%
+
+\IfThisCommonLabelBaseOneOf{scrlayer-scrpage,scrjura,scrlayer-notecolumn}{%
+ \iffalse%
+}{%
+ \csname iftrue\endcsname}%
+ \begin{Declaration}
+ \Macro{textsuperscript}\Parameter{Text}
+ \Macro{textsubscript}\Parameter{Text}
+ \end{Declaration}
+ Im \LaTeX-Kern ist bereits die Anweisung
+ \Macro{textsuperscript}\IndexCmd{textsuperscript} definiert, mit der
+ \PName{Text} höher gestellt werden kann. Eine
+ entsprechende Anweisung, um Text tief\Index{Tiefstellung} statt
+ hoch\Index{Hochstellung} zu stellen, bietet
+ \LaTeX{}\textnote{\LaTeX~2015/01/01} erst seit Version
+ 2015/01/01. Für ältere \LaTeX-Versionen definiert \KOMAScript{} daher
+ \Macro{textsubscript}. %
+ \ifthiscommonfirst
+ \begin{Example}
+ \phantomsection
+ \xmpllabel{cmd.textsubscript}%
+ Sie schreiben einen Text über den menschlichen Stoffwechsel. Darin
+ kommen hin und wieder einfache chemische Summenformeln vor. Dabei sind
+ einzelne Ziffern tief zu stellen. Im Sinne des logischen Markups
+ definieren Sie zunächst in der Dokumentpräambel oder einem eigenen
+ Paket:
+\begin{lstcode}
+ \newcommand*{\Molek}[2]{#1\textsubscript{#2}}
+\end{lstcode}
+ \newcommand*{\Molek}[2]{#1\textsubscript{#2}}%
+ Damit schreiben Sie dann:
+\begin{lstcode}
+ Die Zelle bezieht ihre Energie unter anderem aus
+ der Reaktion von \Molek C6\Molek H{12}\Molek O6
+ und \Molek O2 zu \Molek H2\Molek O{} und
+ \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt
+ sich auf den Stoffwechsel sehr nachteilig aus.
+\end{lstcode}
+ Das Ergebnis sieht daraufhin so aus:
+ \begin{ShowOutput}
+ Die Zelle bezieht ihre Energie unter anderem
+ aus der Reaktion von
+ \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu
+ \Molek H2\Molek O{} und \Molek C{}\Molek O2.
+ Arsen (\Molek{As}{}) wirkt sich auf
+ den Stoffwechsel sehr nachteilig aus.
+ \end{ShowOutput}
+
+ Etwas später entscheiden Sie, dass Summenformeln grundsätzlich
+ serifenlos geschrieben werden sollen. Nun zeigt sich, wie gut die
+ Entscheidung für konsequentes logisches Markup war. Sie müssen nur die
+ \Macro{Molek}-Anweisung umdefinieren:
+\begin{lstcode}
+ \newcommand*{\Molek}[2]{%
+ \textsf{#1\textsubscript{#2}}%
+ }
+\end{lstcode}
+ \renewcommand*{\Molek}[2]{\textsf{#1\textsubscript{#2}}}%
+ Schon ändert sich die Ausgabe im gesamten Dokument:
+ \begin{ShowOutput}
+ Die Zelle bezieht ihr Energie unter anderem aus der Reaktion von
+ \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu \Molek H2\Molek
+ O{} und \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich
+ auf den Stoffwechsel sehr nachteilig aus.
+ \end{ShowOutput}
+ \end{Example}
+ \iffalse % vielleicht in einer späteren Auf-lage
+ Für Experten ist in \autoref{sec:experts.knowhow},
+ \DescPageRef{experts.macroargs} dokumentiert, warum das Beispiel
+ funktioniert, obwohl teilweise die Argumente von \Macro{Molek} nicht in
+ geschweifte Klammern gesetzt wurden.%
+ \fi%
+ \else%
+ Ein Anwendungsbeispiel finden Sie in
+ \autoref{sec:\ThisCommonFirstLabelBase.textmarkup},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.textsubscript}.%
+ \fi%
+ \EndIndexGroup%
+\fi
+
+
+\begin{Declaration}
+ \Macro{setkomafont}\Parameter{Element}\Parameter{Befehle}%
+ \Macro{addtokomafont}\Parameter{Element}\Parameter{Befehle}%
+ \Macro{usekomafont}\Parameter{Element}
+\end{Declaration}%
+Mit%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{} Hilfe der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} ist es
+möglich, die \PName{Befehle} festzulegen, mit denen die Schrift eines
+bestimmten \PName{Element}s umgeschaltet wird. Theoretisch könnten als
+\PName{Befehle} alle möglichen Anweisungen einschließlich Textausgaben
+verwendet werden. Sie\textnote{Achtung!} sollten sich jedoch unbedingt auf
+solche Anweisungen beschränken, mit denen wirklich nur Schriftattribute
+umgeschaltet werden. In der Regel werden dies Befehle wie \Macro{rmfamily},
+\Macro{sffamily}, \Macro{ttfamily}, \Macro{upshape}, \Macro{itshape},
+\Macro{slshape}, \Macro{scshape}, \Macro{mdseries}, \Macro{bfseries},
+\Macro{normalfont} oder einer der Befehle \Macro{Huge}, \Macro{huge},
+\Macro{LARGE}, \Macro{Large}, \Macro{large}, \Macro{normalsize},
+\Macro{small}, \Macro{footnotesize}, \Macro{scriptsize} und \Macro{tiny}
+sein. Die Erklärung zu diesen Befehlen entnehmen Sie bitte \cite{l2kurz},
+\cite{latex:usrguide} oder \cite{latex:fntguide}. Auch Farbumschaltungen wie
+\Macro{normalcolor} sind möglich (siehe \cite{package:graphics} 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
+
+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.%
+\IfThisCommonLabelBase{scrlayer-notecolumn}{}{%
+ \ Namen und Bedeutung der einzelnen Elemente
+ \IfThisCommonLabelBaseOneOf{scrlayer-scrpage,scrjura}{und deren
+ Voreinstellungen }{}%
+ sind in %
+ \IfThisCommonLabelBase{scrextend}{%
+ \autoref{tab:maincls.fontelements}, \autopageref{tab:maincls.fontelements}
+ }{%
+ \autoref{tab:\ThisCommonLabelBase.fontelements} %
+ }%
+ aufgelistet.%
+ \IfThisCommonLabelBase{scrextend}{ %
+ Allerdings werden davon in \Package{scrextend} nur\textnote{Einschränkung}
+ die Elemente für den Dokumenttitel, den schlauen Spruch, die Fußnoten und
+ die \DescRef{maincls.env.labeling}-Umgebung behandelt. Das Element
+ \DescRef{maincls.fontelement.disposition} ist zwar auch verfügbar, wird
+ jedoch von \Package{scrextend} ebenfalls nur für den Dokumenttitel
+ verwendet.%
+ }{%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{ %
+ Die angegebenen Voreinstellungen gelten nur, wenn das jeweilige Element
+ beim Laden von \Package{scrlayer-scrpage} nicht bereits definiert
+ ist. Beispielsweise definieren die \KOMAScript-Klassen
+ \DescRef{maincls.fontelement.pageheadfoot} und es gilt dann die von
+ \Package{scrlayer-scrpage} vorgefundene Einstellung.%
+ }{%
+ \IfThisCommonLabelBase{scrjura}{}{ %
+ Die Voreinstellungen sind den jeweiligen Abschnitten zu entnehmen.%
+ }%
+ }%
+ }%
+}%
+
+\IfThisCommonLabelBaseOneOf{scrlttr2,scrextend}{% Umbruchvarianten
+ Mit der Anweisung \Macro{usekomafont} kann die aktuelle Schriftart auf die
+ für das angegebene \PName{Element} umgeschaltet werden.%
+}{%
+ Mit der Anweisung \Macro{usekomafont} kann die aktuelle Schriftart auf
+ diejenige umgeschaltet werden, die für das angegebene \PName{Element}
+ definiert ist.%
+}
+\IfThisCommonLabelBase{maincls}{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.setkomafont}%
+ Angenommen, für das Element
+ \DescRef{\ThisCommonLabelBase.fontelement.captionlabel} soll dieselbe
+ Schriftart wie für
+ \DescRef{\ThisCommonLabelBase.fontelement.descriptionlabel} verwendet
+ werden. 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.fontelements}%
+ \label{tab:scrextend.fontelements}%
+ }{%
+ 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
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle}, also das Argument von
+ \DescRef{\ThisCommonLabelBase.cmd.author} (siehe
+ \autoref{sec:maincls.titlepage}, \DescPageRef{maincls.cmd.author})}%
+ \feentry{caption}{Text einer Abbildungs- oder Tabellenunter- oder
+ "~überschrift (siehe \autoref{sec:maincls.floats},
+ \DescPageRef{maincls.cmd.caption})}%
+ \feentry{captionlabel}{%
+ Label einer Abbildungs- oder Tabellenunter- oder "~überschrift;
+ Anwendung erfolgt nach dem Element
+ \DescRef{\ThisCommonLabelBase.fontelement.caption} (siehe
+ \autoref{sec:maincls.floats}, \DescPageRef{maincls.cmd.caption})}%
+ \feentry{chapter}{%
+ Überschrift der Ebene \DescRef{\ThisCommonLabelBase.cmd.chapter} (siehe
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.cmd.chapter})}%
+ \feentry{chapterentry}{%
+ Inhaltsverzeichniseintrag der Ebene
+ \DescRef{\ThisCommonLabelBase.cmd.chapter} (siehe
+ \autoref{sec:maincls.toc}, \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{chapterentrydots}{%
+ \ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}}%
+ Optionale Verbindungspunkte in Inhaltsverzeichniseinträgen der Ebene
+ \DescRef{\ThisCommonLabelBase.cmd.chapter} abweichend vom Element
+ \DescRef{\ThisCommonLabelBase.fontelement.chapterentrypagenumber} (siehe
+ \autoref{sec:maincls.toc}, \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{chapterentrypagenumber}{%
+ Seitenzahl des Inhaltsverzeichniseintrags der Ebene
+ \DescRef{\ThisCommonLabelBase.cmd.chapter} abweichend vom Element
+ \DescRef{\ThisCommonLabelBase.fontelement.chapterentry} (siehe
+ \autoref{sec:maincls.toc}, \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{chapterprefix}{%
+ Kapitelnummernzeile sowohl bei Einstellung
+ \OptionValueRef{maincls}{chapterprefix}{true} als auch
+ \OptionValueRef{maincls}{appendixprefix}{true} (siehe
+ \autoref{sec:maincls.structure},
+ \DescPageRef{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
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle}, also das Argument von
+ \DescRef{\ThisCommonLabelBase.cmd.date} (siehe
+ \autoref{sec:maincls.titlepage}, \DescPageRef{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
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle}, also das Argument von
+ \DescRef{\ThisCommonLabelBase.cmd.dedication} (siehe
+ \autoref{sec:maincls.titlepage}, \DescPageRef{maincls.cmd.dedication})}%
+ \feentry{descriptionlabel}{%
+ Label, also das optionale Argument der
+ \DescRef{\ThisCommonLabelBase.cmd.item.description}-Anweisung, in einer
+ \DescRef{\ThisCommonLabelBase.env.description}-Umgebung (siehe
+ \autoref{sec:maincls.lists}, \DescPageRef{maincls.env.description})}%
+ \feentry{dictum}{%
+ mit \DescRef{\ThisCommonLabelBase.cmd.dictum} gesetzter schlauer Spruch
+ (siehe \autoref{sec:maincls.dictum}, \DescPageRef{maincls.cmd.dictum})}%
+ \feentry{dictumauthor}{%
+ Urheber eines schlauen Spruchs; Anwendung erfolgt nach dem Element
+ \DescRef{\ThisCommonLabelBase.fontelement.dictum} (siehe
+ \autoref{sec:maincls.dictum}, \DescPageRef{maincls.cmd.dictum})}%
+ \feentry{dictumtext}{%
+ alternative Bezeichnung für
+ \DescRef{\ThisCommonLabelBase.fontelement.dictum}}%
+ \feentry{disposition}{%
+ alle Gliederungsüberschriften, also die Argumente von
+ \DescRef{\ThisCommonLabelBase.cmd.part} bis
+ \DescRef{\ThisCommonLabelBase.cmd.subparagraph} und
+ \DescRef{\ThisCommonLabelBase.cmd.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},
+ \DescPageRef{maincls.cmd.footnote})}%
+ \feentry{footnotelabel}{%
+ Marke einer Fußnote; Anwendung erfolgt nach dem Element
+ \DescRef{\ThisCommonLabelBase.fontelement.footnote} (siehe
+ \autoref{sec:maincls.footnotes}, \DescPageRef{maincls.cmd.footnote})}%
+ \feentry{footnotereference}{%
+ Referenzierung der Fußnotenmarke im Text (siehe
+ \autoref{sec:maincls.footnotes}, \DescPageRef{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},
+ \DescPageRef{maincls.cmd.setfootnoterule})}%
+ \feentry{labelinglabel}{%
+ Label, also das optionale Argument der
+ \DescRef{\ThisCommonLabelBase.cmd.item.labeling}-Anweisung, und
+ Trennzeichen, also das optionale Argument der
+ \DescRef{\ThisCommonLabelBase.env.labeling}-Umgebung, in einer
+ \DescRef{\ThisCommonLabelBase.env.labeling}-Umgebung (siehe
+ \autoref{sec:maincls.lists}, \DescPageRef{maincls.env.labeling})}%
+ \feentry{labelingseparator}{%
+ Trennzeichen, also das optionale Argument der
+ \DescRef{\ThisCommonLabelBase.env.labeling}-Umgebung, in einer
+ \DescRef{\ThisCommonLabelBase.env.labeling}-Umgebung; Anwendung erfolgt
+ nach dem Element
+ \DescRef{\ThisCommonLabelBase.fontelement.labelinglabel} (siehe
+ \autoref{sec:maincls.lists}, \DescPageRef{maincls.env.labeling})}%
+ \feentry{minisec}{%
+ mit \DescRef{\ThisCommonLabelBase.cmd.minisec} gesetzte Überschrift
+ (siehe \autoref{sec:maincls.structure} ab
+ \DescPageRef{maincls.cmd.minisec})}%
+ \feentry{pagefoot}{%
+ wird nur verwendet, wenn das Paket \Package{scrlayer-scrpage} geladen
+ ist (siehe \autoref{cha:scrlayer-scrpage},
+ \DescPageRef{scrlayer-scrpage.fontelement.pagefoot})}%
+ \feentry{pagehead}{%
+ alternative Bezeichnung für
+ \DescRef{\ThisCommonLabelBase.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
+ \DescRef{\ThisCommonLabelBase.fontelement.pagenumber}}%
+ \feentry{paragraph}{%
+ Überschrift der Ebene \DescRef{\ThisCommonLabelBase.cmd.paragraph}
+ (siehe \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.cmd.paragraph})}%
+ \feentry{part}{%
+ Überschrift der Ebene \DescRef{\ThisCommonLabelBase.cmd.part}, jedoch
+ ohne die Zeile mit der Nummer des Teils (siehe
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.cmd.part})}%
+ \feentry{partentry}{%
+ Inhaltsverzeichniseintrag der Ebene
+ \DescRef{\ThisCommonLabelBase.cmd.part} (siehe
+ \autoref{sec:maincls.toc}, \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{partentrypagenumber}{%
+ Seitenzahl des Inhaltsverzeichniseintrags der Ebene
+ \DescRef{\ThisCommonLabelBase.cmd.part} abweichend vom Element
+ \DescRef{\ThisCommonLabelBase.fontelement.partentry} (siehe
+ \autoref{sec:maincls.toc}, \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{partnumber}{%
+ Zeile mit der Nummer des Teils in Überschrift der Ebene
+ \DescRef{\ThisCommonLabelBase.cmd.part} (siehe
+ \autoref{sec:maincls.structure}, \DescPageRef{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
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle}, also das Argument von
+ \DescRef{\ThisCommonLabelBase.cmd.publishers} (siehe
+ \autoref{sec:maincls.titlepage}, \DescPageRef{maincls.cmd.publishers})}%
+ \feentry{section}{%
+ Überschrift der Ebene \DescRef{\ThisCommonLabelBase.cmd.section} (siehe
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.cmd.section})}%
+ \feentry{sectionentry}{%
+ Inhaltsverzeichniseintrag der Ebene
+ \DescRef{\ThisCommonLabelBase.cmd.section} (nur bei \Class{scrartcl}
+ verfügbar, siehe \autoref{sec:maincls.toc},
+ \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{sectionentrydots}{%
+ \ChangedAt{v3.15}{\Class{scrartcl}}%
+ Optionale Verbindungspunkte in Inhaltsverzeichniseinträgen der Ebene
+ \DescRef{\ThisCommonLabelBase.cmd.section} abweichend vom Element
+ \DescRef{\ThisCommonLabelBase.fontelement.sectionentrypagenumber} (nur
+ bei \Class{scrartcl} verfügbar, siehe \autoref{sec:maincls.toc},
+ \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{sectionentrypagenumber}{%
+ Seitenzahl des Inhaltsverzeichniseintrags der Ebene
+ \DescRef{\ThisCommonLabelBase.cmd.section} abweichend vom Element
+ \DescRef{\ThisCommonLabelBase.fontelement.sectionentry} (nur bei
+ \Class{scrartcl} verfügbar, siehe \autoref{sec:maincls.toc},
+ \DescPageRef{maincls.cmd.tableofcontents})}%
+ \feentry{sectioning}{%
+ alternative Bezeichnung für
+ \DescRef{\ThisCommonLabelBase.fontelement.disposition}}%
+ \feentry{subject}{%
+ Typisierung des Dokuments, also das Argument von
+ \DescRef{\ThisCommonLabelBase.cmd.subject} auf der Haupttitelseite mit
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle} (siehe
+ \autoref{sec:maincls.titlepage}, \DescPageRef{maincls.cmd.subject})}%
+ \feentry{subparagraph}{%
+ Überschrift der Ebene \DescRef{\ThisCommonLabelBase.cmd.subparagraph}
+ (siehe \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.cmd.subparagraph})}%
+ \feentry{subsection}{%
+ Überschrift der Ebene \DescRef{\ThisCommonLabelBase.cmd.subsection}
+ (siehe \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.cmd.subsection})}%
+ \feentry{subsubsection}{%
+ Überschrift der Ebene \DescRef{\ThisCommonLabelBase.cmd.subsubsection}
+ (siehe \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.cmd.subsubsection})}%
+ \feentry{subtitle}{%
+ Untertitel des Dokuments, also das Argument von
+ \DescRef{\ThisCommonLabelBase.cmd.subtitle} auf der Haupttitelseite mit
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle} (siehe
+ \autoref{sec:maincls.titlepage}, \DescPageRef{maincls.cmd.title})}%
+ \feentry{title}{%
+ Haupttitel des Dokuments, also das Argument von
+ \DescRef{\ThisCommonLabelBase.cmd.title} bei Verwendung von
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle} (bezüglich der Größe des
+ Haupttitels siehe die ergänzenden Bemerkungen im Text von
+ \autoref{sec:maincls.titlepage} ab \DescPageRef{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
+ \DescRef{\ThisCommonLabelBase.cmd.titlehead} mit
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle} (siehe
+ \autoref{sec:maincls.titlepage}, \DescPageRef{maincls.cmd.titlehead})}%
+ \end{desclist}
+\else
+ \IfThisCommonLabelBase{scrextend}{\iftrue}{\csname iffalse\endcsname}
+ \begin{Example}
+ Angenommen, Sie wollen, dass der Titel in Serifenschrift und rot gesetzt
+ wird. Das erreichen Sie einfach mit:
+\begin{lstcode}[moretexcs=color]
+ \setkomafont{title}{%
+ \color{red}%
+ }
+\end{lstcode}
+ Für die Anweisung \Macro{color}\PParameter{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
+ \OptionValueRef{scrextend}{extendedfeature}{title} gesetzt ist
+ (siehe \autoref{sec:scrextend.optionalFeatures},
+ \DescPageRef{scrextend.option.extendedfeature}).
+ \end{Example}
+ \else
+ \IfThisCommonLabelBase{scrlttr2}{%
+ Ein allgemeines Beispiel für die Anwendung sowohl von
+ \Macro{setkomafont} als auch
+ \Macro{usekomafont} finden Sie in \autoref{sec:maincls.textmarkup},
+ \PageRefxmpl{maincls.cmd.setkomafont}.
+
+ \begin{desclist}
+ \desccaption{%
+ Elemente, deren Schrift bei der Klasse \Class{scrlttr2} oder
+ dem Paket \Package{scrletter} mit \Macro{setkomafont} und
+ \Macro{addtokomafont} verändert werden
+ kann\label{tab:scrlttr2.fontelements}%
+ }{%
+ Elemente, deren Schrift verändert werden kann (\emph{Fortsetzung})%
+ }%
+ \feentry{addressee}{Name und Anschrift im Anschriftfenster
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.option.addrfield})}%
+ \feentry{backaddress}{Rücksendeadresse für einen Fensterbriefumschlag
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.option.backaddress})}%
+ \feentry{descriptionlabel}{Label, also das optionale Argument von
+ \DescRef{\ThisCommonLabelBase.cmd.item.description}, in einer
+ \DescRef{\ThisCommonLabelBase.env.description}-Umgebung
+ (\autoref{sec:scrlttr2.lists},
+ \DescPageRef{scrlttr2.env.description})}%
+ \feentry{foldmark}{Faltmarke auf dem Briefpapier; ermöglicht Änderung
+ der Linienfarbe (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.option.foldmarks})}%
+ \feentry{footnote}{%
+ Marke und Text einer Fußnote (\autoref{sec:scrlttr2.footnotes},
+ \DescPageRef{scrlttr2.cmd.footnote})}%
+ \feentry{footnotelabel}{%
+ Marke einer Fußnote; Anwendung erfolgt nach dem Element
+ \DescRef{\ThisCommonLabelBase.fontelement.footnote}
+ (\autoref{sec:scrlttr2.footnotes},
+ \DescPageRef{scrlttr2.cmd.footnote})}%
+ \feentry{footnotereference}{%
+ Referenzierung der Fußnotenmarke im Text
+ (\autoref{sec:scrlttr2.footnotes},
+ \DescPageRef{scrlttr2.cmd.footnote})}%
+ \feentry{footnoterule}{%
+ Linie\ChangedAt{v3.07}{\Class{scrlttr2}} über dem Fußnotenapparat
+ (\autoref{sec:scrlttr2.footnotes},
+ \DescPageRef{scrlttr2.cmd.setfootnoterule})}%
+ \feentry{fromaddress}{Absenderadresse im Briefkopf
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.fromaddress})}%
+ \feentry{fromname}{Name des Absenders im Briefkopf abweichend von
+ \PValue{fromaddress} (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.fromname})}%
+ \feentry{fromrule}{Linie im Absender im Briefkopf; gedacht für
+ Farbänderungen (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.option.fromrule})}%
+ \feentry{labelinglabel}{%
+ Label, also das optionale Argument der
+ \DescRef{\ThisCommonLabelBase.cmd.item.labeling}-Anweisung, und
+ Trennzeichen, also das optionale Argument der
+ \DescRef{\ThisCommonLabelBase.env.labeling}-Umgebung, in einer
+ \DescRef{\ThisCommonLabelBase.env.labeling}-Umgebung (siehe
+ \autoref{sec:scrlttr2.lists}, \DescPageRef{scrlttr2.env.labeling})}%
+ \feentry{labelingseparator}{%
+ Trennzeichen, also das optionale Argument der
+ \DescRef{\ThisCommonLabelBase.env.labeling}-Umgebung, in einer
+ \DescRef{\ThisCommonLabelBase.env.labeling}-Umgebung; Anwendung
+ erfolgt nach dem Element
+ \DescRef{\ThisCommonLabelBase.fontelement.labelinglabel} (siehe
+ \autoref{sec:scrlttr2.lists}, \DescPageRef{scrlttr2.env.labeling})}%
+ \feentry{pagefoot}{%
+ wird nach dem Element
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}
+ für den mit Variable
+ \DescRef{scrlttr2.variable.nextfoot}\IndexVariable{nextfoot}
+ definierten Seitenfuß verwendet oder wenn das Paket
+ \Package{scrlayer-scrpage} geladen ist
+ (\autoref{cha:scrlayer-scrpage},
+ \DescPageRef{scrlayer-scrpage.fontelement.pagefoot})}%
+ \feentry{pagehead}{%
+ alternative Bezeichnung für
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}}%
+ \feentry{pageheadfoot}{%
+ Seitenkopf und Seitenfuß bei allen von \KOMAScript{} definierten
+ Seitenstilen (\autoref{sec:maincls.pagestyle},
+ \DescPageRef{\ThisCommonLabelBase.fontelement.pageheadfoot})}%
+ \feentry{pagenumber}{%
+ Seitenzahl im Kopf oder Fuß der Seite
+ (\autoref{sec:maincls.pagestyle},
+ \DescPageRef{\ThisCommonLabelBase.fontelement.pagenumber})}%
+ \feentry{pagination}{%
+ alternative Bezeichnung für
+ \DescRef{\ThisCommonLabelBase.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},
+ \DescPageRef{scrlttr2.variable.placeseparator})}%
+ \feentry{refname}{%
+ Bezeichnung der Felder in der Geschäftszeile
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.yourref})}%
+ \feentry{refvalue}{%
+ Werte der Felder in der Geschäftszeile
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.yourref})}%
+ \feentry{specialmail}{Versandart im Anschriftfenster
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.specialmail})}%
+ \feentry{lettersubject}{%
+ \ChangedAt{v3.17}{\Class{scrlttr2}\and \Package{scrletter}}%
+ Betreff in der Brieferöffnung (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.subject})}%
+ \feentry{lettertitle}{%
+ \ChangedAt{v3.17}{\Class{scrlttr2}\and \Package{scrletter}}%
+ Titel in der Brieferöffnung (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.title})}%
+ \feentry{toaddress}{Abweichung vom Element
+ \DescRef{\ThisCommonLabelBase.fontelement.addressee} für die
+ Anschrift (ohne Name) des Empfängers im Anschriftfeld
+ (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.toaddress})}%
+ \feentry{toname}{Abweichung vom Element
+ \DescRef{\ThisCommonLabelBase.fontelement.addressee} für den Namen
+ des Empfängers im Anschriftfeld (\autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.variable.toname})}%
+ \end{desclist}
+ }{%
+ \IfThisCommonLabelBase{scrlayer-scrpage}{%
+ \begin{desclist}
+ \desccaption[{Elemente, deren Schrift bei \Package{scrlayer-scrpage}
+ mit \Macro{setkomafont} und \Macro{addtokomafont} verändert werden
+ kann, einschließlich der jeweiligen Voreinstellung}]%
+ {Elemente, deren Schrift bei \Package{scrlayer-scrpage} mit
+ \Macro{setkomafont} und \Macro{addtokomafont} verändert werden
+ kann, einschließlich der jeweiligen 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},
+ \DescPageRef{scrlayer-scrpage.fontelement.footbotline}). Das
+ Element wird nach \Macro{normalfont}\IndexCmd{normalfont} und nach
+ den Elementen
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}%
+ \IndexFontElement{pageheadfoot} und
+ \DescRef{\ThisCommonLabelBase.fontelement.pagefoot}%
+ \IndexFontElement{pagefoot} angewandt. Es wird empfohlen, dieses
+ Element lediglich für Farbänderungen zu verwenden.\par
+ \mbox{Voreinstellung: \emph{leer}}%
+ }%
+ \feentry{footsepline}{%
+ Linie über dem Fuß eines mit \Package{scrlayer-scrpage}
+ definierten Seitenstils (siehe
+ \autoref{sec:scrlayer-scrpage.pagestyle.content},
+ \DescPageRef{scrlayer-scrpage.fontelement.footsepline}). Das
+ Element wird nach \Macro{normalfont}\IndexCmd{normalfont} und nach
+ den Elementen
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}%
+ \IndexFontElement{pageheadfoot} und
+ \DescRef{\ThisCommonLabelBase.fontelement.pagefoot}%
+ \IndexFontElement{pagefoot} angewandt. Es wird empfohlen, dieses
+ Element lediglich für Farbänderungen zu verwenden.\par
+ \mbox{Voreinstellung: \emph{leer}}%
+ }%
+ \feentry{headsepline}{%
+ Linie unter dem Kopf eines mit \Package{scrlayer-scrpage}
+ definierten Seitenstils (siehe
+ \autoref{sec:scrlayer-scrpage.pagestyle.content},
+ \DescPageRef{scrlayer-scrpage.fontelement.headsepline}). Das
+ Element wird nach \Macro{normalfont}\IndexCmd{normalfont} und nach
+ den Elementen
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}%
+ \IndexFontElement{pageheadfoot} und
+ \DescRef{scrlayer-scrpage.fontelement.pagehead}%
+ \IndexFontElement{pagehead} angewandt. Es wird empfohlen, dieses
+ Element lediglich für Farbänderungen zu verwenden.\par
+ \mbox{Voreinstellung: \emph{leer}}%
+ }%
+ \feentry{headtopline}{%
+ Linie über dem Kopf eines mit \Package{scrlayer-scrpage}
+ definierten Seitenstils (siehe
+ \autoref{sec:scrlayer-scrpage.pagestyle.content},
+ \DescPageRef{scrlayer-scrpage.fontelement.headtopline}). Das
+ Element wird nach \Macro{normalfont}\IndexCmd{normalfont} und nach
+ den Elementen
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}%
+ \IndexFontElement{pageheadfoot} und
+ \DescRef{scrlayer-scrpage.fontelement.pagehead}%
+ \IndexFontElement{pagehead} angewandt. Es wird empfohlen, dieses
+ Element lediglich für Farbänderungen zu verwenden.\par
+ \mbox{Voreinstellung: \emph{leer}}%
+ }%
+ \feentry{pagefoot}{%
+ Inhalt eines Fußes eines mit \Package{scrlayer-scrpage}
+ definierten Seitenstils (siehe
+ \autoref{sec:scrlayer-scrpage.predefined.pagestyles},
+ \DescPageRef{scrlayer-scrpage.fontelement.pagefoot}). Das Element
+ wird nach \Macro{normalfont}\IndexCmd{normalfont} und nach dem
+ Element \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}%
+ \IndexFontElement{pageheadfoot} angewandt.\par
+ \mbox{Voreinstellung: \emph{leer}}%
+ }%
+ \feentry{pagehead}{%
+ Inhalt eines Kopfes eines mit \Package{scrlayer-scrpage}
+ definierten Seitenstils (siehe
+ \autoref{sec:scrlayer-scrpage.predefined.pagestyles},
+ \DescPageRef{scrlayer-scrpage.fontelement.pagehead}). Das Element
+ wird nach \Macro{normalfont}\IndexCmd{normalfont} und nach Element
+ \DescRef{\ThisCommonLabelBase.fontelement.pageheadfoot}%
+ \IndexFontElement{pageheadfoot} angewandt.\par
+ \mbox{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},
+ \DescPageRef{scrlayer-scrpage.fontelement.pageheadfoot}). Das
+ Element wird nach \Macro{normalfont}\IndexCmd{normalfont}
+ angewandt.\par
+ \mbox{Voreinstellung:
+ \Macro{normalcolor}\Macro{slshape}}%
+ }%
+ \feentry{pagenumber}{%
+ Die mit \DescRef{\ThisCommonLabelBase.cmd.pagemark} gesetzte
+ Paginierung (siehe
+ \autoref{sec:scrlayer-scrpage.predefined.pagestyles},
+ \DescPageRef{scrlayer-scrpage.fontelement.pagenumber}). Bei einer
+ etwaigen Umdefinierung von
+ \DescRef{\ThisCommonLabelBase.cmd.pagemark} ist dafür zu sorgen,
+ dass die Umdefinierung auch ein
+ \Macro{usekomafont}\PParameter{pagenumber} enthält!\par
+ \mbox{Voreinstellung: \Macro{normalfont}}%
+ }%
+ \end{desclist}
+ }{%
+ \IfThisCommonLabelBase{scrjura}{%
+ \begin{table}
+ \caption{Elemente, deren Schrift bei \Package{scrjura} mit
+ \Macro{setkomafont} und \Macro{addtokomafont} verändert werden
+ kann, einschließlich der jeweiligen Voreinstellung}%
+ \label{tab:scrjura.fontelements}%
+ \begin{desctabular}
+ \feentry{Clause}{%
+ Alias für \FontElement{\PName{Umgebungsname}.Clause}
+ innerhalb einer Vertragsumgebung, beispielsweise
+ \FontElement{contract.Clause} innerhalb von
+ \DescRef{\ThisCommonLabelBase.env.contract}; ist kein
+ entsprechendes Element definiert, so wird auf
+ \FontElement{contract.Clause} zurückgegriffen%
+ }%
+ \feentry{contract.Clause}{%
+ Überschrift eines Paragraphen innerhalb von
+ \DescRef{\ThisCommonLabelBase.env.contract} (siehe
+ \autoref{sec:\ThisCommonLabelBase.contract},
+ \DescPageRef{\ThisCommonLabelBase.fontelement.contract.Clause});
+ \par
+ \mbox{Voreinstellung:
+ \Macro{sffamily}\Macro{bfseries}\Macro{large}}%
+ }%
+ \entry{\DescRef{\ThisCommonLabelBase.fontelement./Name/.Clause}}{%
+ \IndexFontElement[indexmain]{\PName{Name}.Clause}%
+ Überschrift eines Paragraphen innerhalb einer Umgebung
+ \PName{Name}, die mit
+ \DescRef{\ThisCommonLabelBase.cmd.DeclareNewJuraEnvironment}
+ definiert wurde, soweit bei der Definition mit
+ \Option{ClauseFont} eine Einstellung vorgenommen wurde oder
+ das Element nachträglich definiert wurde (siehe
+ \autoref{sec:\ThisCommonLabelBase.newenv},
+ \DescPageRef{\ThisCommonLabelBase.fontelement./Name/.Clause});
+ \par
+ \mbox{Voreinstellung: \emph{keine}}%
+ }%
+ \feentry{parnumber}{%
+ Absatznummern innerhalb einer Vertragsumgebung (siehe
+ \autoref{sec:\ThisCommonLabelBase.par},
+ \DescPageRef{\ThisCommonLabelBase.fontelement.parnumber});\par
+ \mbox{Voreinstellung: \emph{leer}}%
+ }%
+ \feentry{sentencenumber}{%
+ \ChangedAt{v3.26}{\Package{scrjura}}%
+ Satznummer der Anweisung
+ \DescRef{\ThisCommonLabelBase.cmd.Sentence} (siehe
+ \autoref{sec:\ThisCommonLabelBase.sentence}, \DescPageRef{%
+ \ThisCommonLabelBase.fontelement.sentencenumber});\par
+ \mbox{Voreinstellung: \emph{leer}}%
+ }%
+ \end{desctabular}
+ \end{table}
+ }{%
+ \IfThisCommonLabelBase{scrlayer-notecolumn}{}{%
+ \InternalCommonFileUsageError%
+ }%
+ }%
+ }%
+ }%
+ \fi%
+\fi
+\EndIndexGroup
+
+
+\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}
+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
+\DescRef{\ThisCommonLabelBase.cmd.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.%
+%
+\IfThisCommonLabelBase{scrextend}{% Umbruchvariante!
+}{%
+ \IfThisCommonLabelBase{scrjura}{%
+ \par%
+ Vor dem Missbrauch der Schrifteinstellungen wird dennoch dringend gewarnt
+ (siehe \autoref{sec:maincls-experts.experts},
+ \DescPageRef{maincls-experts.cmd.addtokomafontrelaxlist})!%
+ }{%
+ \par%
+ Diese Befehle sollten jedoch nicht als Legitimation dafür verstanden
+ werden, in die Schrifteinstellungen der Elemente beliebige Anweisungen
+ einzufügen. Das kann nämlich sehr schnell zu Fehlern führen (siehe
+ \autoref{sec:maincls-experts.experts},
+ \DescPageRef{maincls-experts.cmd.addtokomafontrelaxlist}).%
+ }%
+}%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-titles.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-titles.tex
new file mode 100644
index 0000000000..2086df85c4
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-titles.tex
@@ -0,0 +1,723 @@
+% ======================================================================
+% common-titles.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-titles.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-titles.tex}
+ [$Date: 2018-01-30 13:37:05 +0100 (Tue, 30 Jan 2018) $
+ KOMA-Script guide (common paragraphs)]
+
+
+
+
+
+\section{Dokumenttitel}
+\seclabel{titlepage}%
+\BeginIndexGroup
+\BeginIndex{}{Titel}%
+
+\IfThisCommonFirstRun{}{%
+ Es gilt sinngemäß, was in \autoref{sec:\ThisCommonFirstLabelBase.titlepage}
+ geschrieben wurde. Falls Sie also
+ \autoref{sec:\ThisCommonFirstLabelBase.titlepage} bereits gelesen und
+ verstanden haben, können Sie auf
+ \autopageref{sec:\ThisCommonLabelBase.titlepage.next} mit
+ \autoref{sec:\ThisCommonLabelBase.titlepage.next} fortfahren.%
+}%
+\IfThisCommonLabelBase{scrextend}{\iftrue}{\csname iffalse\endcsname}%
+ \ Die\textnote{Achtung!} Möglichkeiten von \Package{scrextend} zum
+ Dokumenttitel gehören jedoch zu den optionalen, erweiterten Möglichkeiten
+ und stehen daher nur zur Verfügung, wenn beim Laden des Pakets
+ \OptionValueRef{\ThisCommonLabelBase}{extendedfeature}{title} gewählt
+ wurde (siehe \autoref{sec:\ThisCommonLabelBase.optionalFeatures},
+ \DescPageRef{\ThisCommonLabelBase.option.extendedfeature}).
+
+ Darüber hinaus kann \Package{scrextend} nicht mit einer \KOMAScript-Klasse
+ zusammen verwendet werden. In allen Beispielen aus
+ \autoref{sec:maincls.titlepage} muss daher bei Verwendung von
+ \Package{scrextend}
+\begin{lstcode}
+ \documentclass{scrbook}
+\end{lstcode}
+durch
+\begin{lstcode}
+ \documentclass{book}
+ \usepackage[extendedfeature=title]{scrextend}
+\end{lstcode}
+ ersetzt werden.
+\fi
+
+Bei Dokumenten wird zwischen zwei Arten von Titeln
+\IfThisCommonLabelBase{scrextend}{}{für das gesamte Dokument
+}unterschieden. Zum einen gibt es die Titelseiten. Hierbei steht der
+Dokumenttitel zusammen mit einigen zusätzlichen Informationen wie dem Autor
+auf einer eigenen Seite. Neben der Haupttitelseite kann es weitere
+Titelseiten, etwa Schmutztitel, Verlagsinformationen, Widmung oder ähnliche,
+geben. Zum anderen gibt es den Titelkopf. Dabei erscheint der Titel lediglich
+am Anfang einer neuen \IfThisCommonLabelBase{scrextend}{}{-- in der Regel der
+ ersten -- }Seite. Unterhalb dieser Titelzeilen\Index{Titel>Zeilen} wird
+\IfThisCommonLabelBase{scrextend}{}{das Dokument }beispielsweise mit der
+Zusammenfassung, einem Vorwort oder dem Inhaltsverzeichnis
+\IfThisCommonLabelBase{scrextend}{fortgefahren}{fortgesetzt}.
+
+
+\begin{Declaration}
+ \OptionVName{titlepage}{Ein-Aus-Wert}
+ \OptionValue{titlepage}{firstiscover}
+ \Macro{coverpagetopmargin}
+ \Macro{coverpageleftmargin}
+ \Macro{coverpagerightmargin}
+ \Macro{coverpagebottommargin}
+\end{Declaration}%
+Mit dieser Option%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{} wird ausgewählt, ob für die mit
+\DescRef{\ThisCommonLabelBase.cmd.maketitle} (siehe
+\DescPageRef{\ThisCommonLabelBase.cmd.maketitle}) gesetzte Titelei eigene
+Seiten\Index{Titel>Seite} verwendet werden oder stattdessen die Titelei von
+\DescRef{\ThisCommonLabelBase.cmd.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}}
+\IfThisCommonLabelBase{scrextend}{}{oder \Option{titlepage} }wird die Titelei
+in Form von Titelseiten ausgewählt. Die Anweisung
+\DescRef{\ThisCommonLabelBase.cmd.maketitle} verwendet
+\IfThisCommonLabelBase{scrextend}{dabei
+}{}\DescRef{\ThisCommonLabelBase.env.titlepage}-Umgebungen zum Setzen dieser
+Seiten, die somit normalerweise weder Seitenkopf noch Seitenfuß erhalten. Bei
+{\KOMAScript} wurde die Titelei gegenüber den Standardklassen stark
+erweitert. Die zusätzlichen Elemente finden sie auf den nachfolgenden Seiten.
+
+Demgegenüber wird mit
+\important{\OptionValue{titlepage}{false}}\OptionValue{titlepage}{false}
+erreicht, dass ein Titelkopf (engl.: \emph{in-page title}) gesetzt wird. Das
+heißt, die Titelei wird lediglich speziell hervorgehoben. Auf der Seite mit
+dem Titel kann aber nachfolgend weiteres Material, beispielsweise eine
+Zusammenfassung oder ein Abschnitt, gesetzt werden.
+
+Mit%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.12}{\Package{scrextend}}%
+ }{\InternalCommonFileUseError}%
+} 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
+\DescRef{\LabelBase.cmd.maketitle}\IndexCmd{maketitle} ausgegebene Titelseite,
+also entweder der Schmutztitel oder der Haupttitel, als
+Umschlagseite\Index{Umschlag} ausgegeben wird. Jede andere Einstellung für die
+Option \Option{titlepage} hebt diese Einstellung wieder auf. Die
+Ränder\important{\Macro{coverpage\dots margin}} dieser Umschlagseite werden
+über \Macro{coverpagetopmargin} (oberer Rand), \Macro{coverpageleftmargin}
+(linker Rand), \Macro{coverpagerightmargin} (rechter Rand) und natürlich
+\Macro{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.
+
+\IfThisCommonLabelBase{maincls}{%
+ Bei den Klassen \Class{scrbook} und \Class{scrreprt} sind Titelseiten
+ voreingestellt. Demgegenüber verwendet \Class{scrartcl} in der
+ Voreinstellung einen Titelkopf.%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ Die Voreinstellung ist von der verwendeten Klasse abhängig und wird von
+ \Package{scrextend} kompatibel zu den Standardklassen erkannt. Setzt eine
+ Klasse keine entsprechende Voreinstellung, so ist der Titelkopf
+ voreingestellt.%
+ }{\InternalCommonFileUsageError}%
+}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \begin{Environment}{titlepage}\end{Environment}
+\end{Declaration}%
+\BeginIndex{Env}{titlepage}%
+Grundsätzlich werden bei den Standardklassen und bei {\KOMAScript} alle
+Titelseiten in einer speziellen Umgebung, der
+\Environment{titlepage}-Umgebung, gesetzt. Diese Umgebung startet immer mit
+einer neuen Seite -- im zweiseitigen Layout sogar mit einer neuen rechten
+Seite~-- im einspaltigen Modus. Für eine Seite wird der Seitenstil mit
+\DescRef{maincls.cmd.thispagestyle}%
+\PParameter{\DescRef{maincls.pagestyle.empty}}
+geändert, so dass weder Seitenzahl noch Kolumnentitel ausgegeben werden. Am
+Ende der Umgebung wird die Seite automatisch beendet. Sollten Sie nicht das
+automatische Layout der Titelei, wie es das nachfolgend beschriebene
+\DescRef{\ThisCommonLabelBase.cmd.maketitle} bietet, verwenden können, ist zu
+empfehlen, eine eigene Titelei mit Hilfe dieser Umgebung zu entwerfen.
+
+\IfThisCommonFirstRun{\iftrue}{%
+ Ein Beispiel für eine einfache Titelseite mit \Environment{titlepage} finden
+ Sie in \autoref{sec:\ThisCommonFirstLabelBase.titlepage},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.env.titlepage}.%
+ \csname iffalse\endcsname%
+}%
+ \begin{Example}
+ \phantomsection\xmpllabel{env.titlepage}%
+ Angenommen, Sie wollen eine Titelseite, auf der lediglich oben links
+ möglichst groß und fett das Wort »Me« steht -- kein Autor, kein Datum,
+ nichts weiter. Folgendes Dokument ermöglicht das:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \begin{document}
+ \begin{titlepage}
+ \textbf{\Huge Me}
+ \end{titlepage}
+ \end{document}
+\end{lstcode}
+ \end{Example}
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{maketitle}\OParameter{Seitenzahl}
+\end{Declaration}%
+Während\textnote{\KOMAScript{} vs. Standardklassen} bei den Standardklassen
+nur maximal eine Titelseite mit den \IfThisCommonLabelBase{scrextend}{}{drei
+}Angaben Titel, Autor und Datum existiert, können bei {\KOMAScript} mit
+\Macro{maketitle} bis zu sechs Titelseiten gesetzt werden. Im Gegensatz zu
+den Standardklassen kennt \Macro{maketitle} bei {\KOMAScript} außerdem noch
+ein optionales nummerisches Argument. Findet es Verwendung, so wird die
+Nummer als Seitenzahl der ersten Titelseite benutzt. Diese Seitenzahl wird
+jedoch nicht ausgegeben, sondern beeinflusst lediglich die Zählung. Sie
+sollten hier unbedingt eine ungerade Zahl wählen, da sonst die gesamte Zählung
+durcheinander gerät. Meiner Auf"|fassung nach gibt es nur zwei sinnvolle
+Anwendungen für das optionale Argument. Zum einen könnte man dem
+Schmutztitel\Index[indexmain]{Schmutztitel} die logische Seitenzahl -1
+geben, um so die Seitenzählung erst ab der Haupttitelseite mit 1 zu
+beginnen. Zum anderen könnte man mit einer höheren Seitenzahl beginnen,
+beispielsweise 3, 5 oder 7, um so weitere Titelseiten zu berücksichtigen, die
+erst vom Verlag hinzugefügt werden. Wird ein Titelkopf verwendet, wird das
+optionale Argument ignoriert. Dafür kann der Seitenstil einer solchen Titelei
+durch Umdefinierung des Makros
+\DescRef{\ThisCommonLabelBase.cmd.titlepagestyle}%
+\important{\DescRef{\ThisCommonLabelBase.cmd.titlepagestyle}} (siehe
+\autoref{sec:maincls.pagestyle}, \DescPageRef{maincls.cmd.titlepagestyle})
+verändert werden.
+
+Die folgenden Anweisungen führen nicht unmittelbar zum Setzen der Titelei. Das
+Setzen der Titelei erfolgt immer mit \Macro{maketitle}. Es sei an dieser
+Stelle auch darauf hingewiesen, dass \Macro{maketitle} nicht innerhalb einer
+\DescRef{\ThisCommonLabelBase.env.titlepage}-Umgebung zu verwenden
+ist. Wie\textnote{Achtung!} in den Beispielen angegeben, sollte man nur
+entweder \Macro{maketitle} oder \DescRef{\ThisCommonLabelBase.env.titlepage}
+verwenden.
+
+Mit den nachfolgend erklärten Anweisungen werden lediglich die Inhalte der
+Titelei festgelegt. Sie müssen daher auch unbedingt vor \Macro{maketitle}
+verwendet werden. Es ist jedoch nicht notwendig und bei Verwendung des
+\Package{babel}-Pakets\IndexPackage{babel} (siehe \cite{package:babel}) auch
+nicht empfehlenswert, diese Anweisungen in der Dokumentpräambel vor
+\Macro{begin}\PParameter{document} zu verwenden. Beispieldokumente finden Sie
+\IfThisCommonFirstRun{bei den weiteren Befehlen dieses Abschnitts}{in
+ \autoref{sec:\ThisCommonFirstLabelBase.titlepage} ab
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.extratitle}}.
+
+
+\begin{Declaration}
+ \Macro{extratitle}\Parameter{Schmutztitel}
+ \Macro{frontispiece}\Parameter{Frontispiz}
+\end{Declaration}%
+\begin{Explain}%
+ Früher war der Buchblock oftmals nicht durch einen Buchdeckel vor
+ Verschmutzung geschützt. Diese Aufgabe übernahm dann die erste Seite des
+ Buches, die meist einen Kurztitel, eben den \emph{Schmutztitel}, trug. Auch
+ heute noch wird diese Extraseite vor dem eigentlichen Haupttitel gerne
+ verwendet und enthält dann Verlagsangaben, Buchreihennummer und ähnliche
+ Angaben.
+\end{Explain}
+Bei {\KOMAScript} ist es möglich, vor der eigentlichen Titelseite eine weitere
+Seite zu setzen. Als \PName{Schmutztitel}\Index{Schmutztitel} kann dabei
+beliebiger Text -- auch mehrere Absätze -- gesetzt werden. Der Inhalt von
+\PName{Schmutztitel} wird von {\KOMAScript} ohne zusätzliche Beeinflussung der
+Formatierung ausgegeben. Dadurch ist dessen Gestaltung völlig dem Anwender
+überlassen. Die Rückseite%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.25}{\Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.25}{\Package{scrextend}}%
+ }{\ThisCommonLabelBaseFailure}%
+}
+des Schmutztitels ist das \PName{Frontispiz}. Der Schmutztitel
+ergibt auch dann eine eigene Titelseite, wenn mit Titelköpfen gearbeitet
+wird. Die Ausgabe des mit \Macro{extratitle} definierten Schmutztitels erfolgt
+als Bestandteil der Titelei mit \DescRef{\ThisCommonLabelBase.cmd.maketitle}.
+
+\IfThisCommonFirstRun{\iftrue}{%
+ Ein Beispiel für eine einfache Titelseite mit Schmutztitel und Haupttitel
+ finden Sie in \autoref{sec:\ThisCommonFirstLabelBase.titlepage},
+ \PageRefxmpl{\ThisCommonFirstLabelBase.cmd.extratitle}.%
+ \csname iffalse\endcsname%
+}%
+ \begin{Example}
+ \phantomsection\xmpllabel{cmd.extratitle}%
+ Kommen wir auf das Beispiel von oben zurück und gehen davon aus, dass das
+ spartanische »Me« nur den Schmutztitel darstellt. Nach dem Schmutztitel
+ soll noch der Haupttitel folgen. Dann kann wie folgt verfahren werden:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \begin{document}
+ \extratitle{\textbf{\Huge Me}}
+ \title{It's me}
+ \maketitle
+ \end{document}
+\end{lstcode}
+ Sie können den Schmutztitel aber auch horizontal zentriert und etwas
+ tiefer setzen:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \begin{document}
+ \extratitle{\vspace*{4\baselineskip}
+ \begin{center}\textbf{\Huge Me}\end{center}}
+ \title{It's me}
+ \maketitle
+ \end{document}
+\end{lstcode}
+ Die\textnote{Achtung!} Anweisung \DescRef{\ThisCommonLabelBase.cmd.title}
+ ist beim Setzen der Titelei mit Hilfe von
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle} grundsätzlich notwendig,
+ damit die Beispiele fehlerfrei sind. Sie wird nachfolgend erklärt.
+ \end{Example}
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{titlehead}\Parameter{Kopf}
+ \Macro{subject}\Parameter{Typisierung}
+ \Macro{title}\Parameter{Titel}
+ \Macro{subtitle}\Parameter{Untertitel}
+ \Macro{author}\Parameter{Autor}
+ \Macro{date}\Parameter{Datum}
+ \Macro{publishers}\Parameter{Verlag}
+ \Macro{and}
+ \Macro{thanks}\Parameter{Fußnote}
+\end{Declaration}%
+Für den Inhalt der Haupttitelseite stehen sieben Elemente zur Verfügung. Die
+Ausgabe der Haupttitelseite erfolgt als Bestandteil der Titelei mit
+\DescRef{\ThisCommonLabelBase.cmd.maketitle}, während die hier aufgeführten
+Anweisungen lediglich der Definition der entsprechenden Elemente dienen.
+
+\BeginIndexGroup\BeginIndex{FontElement}{titlehead}%
+\LabelFontElement{titlehead}%
+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. Für die Ausgabe wird die
+Schrift\important{\FontElement{titlehead}} des gleichnamigen Elements
+verwendet (siehe \autoref{tab:\ThisCommonFirstLabelBase.mainTitle},
+\autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}).%
+\EndIndexGroup
+
+\BeginIndexGroup\BeginIndex{FontElement}{subject}\LabelFontElement{subject}%
+Die\important{\Macro{subject}}
+\PName{Typisierung}\Index[indexmain]{Typisierung} wird unmittelbar über dem
+\PName{Titel} in der Schrift\important{\FontElement{subject}} des
+gleichnamigen Elements ausgegeben.%
+\EndIndexGroup
+
+\BeginIndexGroup\BeginIndex{FontElement}{title}\LabelFontElement{title}%
+Der\important{\Macro{title}} \PName{Titel} wird in einer sehr großen Schrift
+gesetzt. Dabei\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}}{} finden \IfThisCommonLabelBase{scrextend}{}{abgesehen
+ von der Größe }% Umbruchkorrektur
+Schriftumschaltungen für das Element
+\FontElement{title}\IndexFontElement[indexmain]{title}%
+\important{\FontElement{title}} Anwendung (siehe
+\autoref{tab:\ThisCommonFirstLabelBase.mainTitle},
+\autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}).%
+\EndIndexGroup
+
+\BeginIndexGroup\BeginIndex{FontElement}{subtitle}\LabelFontElement{subtitle}%
+Der\important{\Macro{subtitle}}
+\PName{Untertitel}\ChangedAt{v2.97c}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} steht knapp unter dem Titel in der
+Schrift\important{\FontElement{subtitle}} des gleichnamigen Elements (siehe
+\autoref{tab:\ThisCommonFirstLabelBase.mainTitle},
+\autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}).%
+\EndIndexGroup
+
+\BeginIndexGroup\BeginIndex{FontElement}{author}\LabelFontElement{author}%
+Unter\important{\Macro{author}} dem \PName{Untertitel} folgt der
+\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}\important{\Macro{and}} voneinander zu trennen. Die
+Ausgabe erfolgt in der Schrift\important{\FontElement{author}} des
+gleichnamigen Elements (siehe
+\autoref{tab:\ThisCommonFirstLabelBase.mainTitle},
+\autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}).%
+\EndIndexGroup
+
+\BeginIndexGroup\BeginIndex{FontElement}{date}\LabelFontElement{date}%
+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. Die Ausgabe
+erfolgt in der Schrift\important{\FontElement{date}} des gleichnamigen
+Elements (siehe \autoref{tab:\ThisCommonFirstLabelBase.mainTitle},
+\autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}).%
+\EndIndexGroup
+
+\BeginIndexGroup\BeginIndex{FontElement}{publishers}%
+\LabelFontElement{publishers}%
+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. Die Ausgabe erfolgt in der
+Schrift\important{\FontElement{publishers}} des gleichnamigen Elements (siehe
+\autoref{tab:\ThisCommonFirstLabelBase.mainTitle},
+\autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}).%
+\EndIndexGroup
+
+Fußnoten\important{\Macro{thanks}}\Index{Fussnoten=Fußnoten} werden auf der
+Titelseite nicht mit \DescRef{\ThisCommonLabelBase.cmd.footnote}, sondern mit
+der Anweisung \Macro{thanks} erzeugt. Sie dienen in der Regel für Anmerkungen
+bei den Autoren. Als Fußnotenzeichen werden dabei Symbole statt Zahlen
+verwendet. Es\textnote{Achtung!} ist zu beachten, dass \Macro{thanks}
+innerhalb des Arguments einer der übrigen Anweisungen, beispielsweise im
+Argument \PName{Autor} der Anweisung \Macro{author}, zu verwenden ist. %
+\IfThisCommonLabelBase{scrextend}{%
+ Damit die Schrifteinstellung für das Element
+ \DescRef{\ThisCommonLabelBase.fontelement.footnote} beim Paket
+ \Package{scrextend} Beachtung findet muss allerdings nicht nur die
+ Titelerweiterung aktiviert sein, es muss auch dafür gesorgt sein, dass die
+ Fußnoten mit diesem Paket gesetzt werden (siehe Einleitung von
+ \autoref{sec:\ThisCommonLabelBase.footnotes},
+ \autopageref{sec:\ThisCommonLabelBase.footnotes}). Trifft dies nicht zu, so
+ wird die Schrift verwendet, die von der Klasse oder anderen für die Fußnoten
+ verwendeten Paketen vorgegeben ist.%
+}{}%
+
+Für%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.12}{\Package{scrextend}}%
+ }{\InternalCommonFileUsageError}%
+} die Ausgabe der Titelelemente kann die Schrift\textnote{Schrift}
+mit Hilfe der Befehle \DescRef{\ThisCommonLabelBase.cmd.setkomafont} und
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) eingestellt werden. Die
+Voreinstellungen sind \autoref{tab:\ThisCommonFirstLabelBase.titlefonts}%
+\IfThisCommonFirstRun{}{%
+ , \autopageref{tab:\ThisCommonFirstLabelBase.titlefonts}%
+} %
+zu entnehmen.%
+\IfThisCommonFirstRun{%
+ \begin{table}
+% \centering
+% \caption
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \addtokomafont{caption}{\raggedright}%
+ \begin{captionbeside}
+ [{Schriftvoreinstellungen für die Elemente des Titels}]
+ {\label{tab:\ThisCommonLabelBase.titlefonts}%
+ \hspace{0pt plus 1ex}Voreinstellungen der Schrift für die Elemente des Titels}
+ [l]
+ \begin{tabular}[t]{ll}
+ \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{subtitle} &
+ \DescRef{\ThisCommonLabelBase.cmd.usekomafont}%
+ \PParameter{title}\Macro{large} \\
+ \FontElement{title} &
+ \DescRef{\ThisCommonLabelBase.cmd.usekomafont}%
+ \PParameter{disposition} \\
+ \FontElement{titlehead} & \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \end{table}%
+}{}%
+
+Bis auf den \PName{Kopf} und eventuelle Fußnoten werden alle Ausgaben
+horizontal zentriert. %
+\iffree{%
+ \IfThisCommonLabelBase{scrextend}{Die Formatierungen der einzelnen
+ Elemente}{Diese Angaben} sind noch einmal kurz zusammengefasst in
+ \autoref{tab:\ThisCommonFirstLabelBase.mainTitle}\IfThisCommonFirstRun{}{%
+ , \autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}} zu finden.%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ Die Ausrichtungen der einzelnen Elemente sind ebenfalls in
+ \autoref{tab:\ThisCommonFirstLabelBase.mainTitle}\IfThisCommonFirstRun{}{%
+ , \autopageref{tab:\ThisCommonFirstLabelBase.mainTitle}} zu finden.%
+ }{%
+ Eine Zusammenfassung dazu bietet
+ \autoref{tab:\ThisCommonFirstLabelBase.mainTitle}.%
+ }%
+}%
+\IfThisCommonFirstRun{%
+ \begin{table}
+ % \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ % \caption
+ \begin{captionbeside}[Der Haupttitel]{%
+ \hspace{0pt plus 1ex}%
+ Schrift\-größe und
+ Ausrichtung der Elemente der Haupttitelseite bei Verwendung von
+ \DescRef{\LabelBase.cmd.maketitle}}
+ [l]
+ \setlength{\tabcolsep}{.7\tabcolsep}% Umbruchoptimierung
+ \begin{tabular}[t]{llll}
+ \toprule
+ Element & Anweisung & Schrift & Satz \\
+ \midrule
+ Seitenkopf & \Macro{titlehead} & \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{titlehead} & Block- \\
+ Typisierung & \Macro{subject} & \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{subject}
+ & zentriert \\
+ Titel & \Macro{title} &
+ \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{title}\Macro{huge} & zentriert \\
+ Untertitel & \Macro{subtitle} &
+ \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{subtitle} & zentriert \\
+ Autoren & \Macro{author} & \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{author} & zentriert \\
+ Datum & \Macro{date} & \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{date} & zentriert \\
+ Verlag & \Macro{publishers} & \DescRef{\ThisCommonLabelBase.cmd.usekomafont}\PParameter{publishers} & zentriert \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:maincls.mainTitle}
+ \end{table}%
+}{}
+
+\IfThisCommonFirstRun{\iftrue}{%
+ Ein Beispiel mit allen von \KOMAScript{} angebotenen Elementen für die
+ Haupttitelseite finden Sie in
+ \autoref{sec:\ThisCommonFirstLabelBase.titlepage} auf
+ \PageRefxmpl{\ThisCommonFirstLabelBase.maintitle}.%
+ \csname iffalse\endcsname%
+}%
+ \begin{Example}
+ \phantomsection\xmpllabel{maintitle}%
+ Nehmen wir nun einmal an, Sie schreiben eine Diplomarbeit. Dabei sei
+ vorgegeben, dass die Titelseite oben linksbündig das Institut
+ einschließlich Adresse und rechtsbündig das Semester wiedergibt. Wie
+ üblich ist ein Titel einschließlich Autor und Abgabedatum zu setzen.
+ Außerdem soll der Betreuer angegeben und zu erkennen sein, dass es
+ sich um eine Diplomarbeit handelt. Sie könnten das wie folgt
+ erreichen:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage[ngerman]{babel}
+ \begin{document}
+ \titlehead{{\Large Universit"at Schlauenheim
+ \hfill SS~2001\\}
+ Institut f"ur Raumkr"ummung\\
+ Hochschulstra"se~12\\
+ 34567 Schlauenheim}
+ \subject{Diplomarbeit}
+ \title{Digitale Raumsimulation mit dem
+ DSP\,56004}
+ \subtitle{Klein aber fein?}
+ \author{cand. stup. Uli Ungenau}
+ \date{30. Februar 2001}
+ \publishers{Betreut durch
+ Prof. Dr. rer. stup. Naseweis}
+ \maketitle
+ \end{document}
+\end{lstcode}
+ \end{Example}%
+\fi
+
+\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}\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 sogenannten Buchblocks. Genau diese
+ Titelseiten werden mit \DescRef{\ThisCommonLabelBase.cmd.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, 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
+ \DescRef{\ThisCommonLabelBase.cmd.maketitle} ausgegebene Titelseite
+ alternativ aber auch als Umschlagseite formatieren lassen. Dabei ändern sich
+ nur die für diese Seite verwendeten Ränder (siehe Option
+ \OptionValueRef{\ThisCommonLabelBase}{titlepage}{firstiscover}%
+ \IndexOption{titlepage~=\textKValue{firstiscover}} auf
+ \DescPageRef{\ThisCommonLabelBase.option.titlepage}).
+\end{Explain}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{uppertitleback}\Parameter{Titelrückseitenkopf}
+ \Macro{lowertitleback}\Parameter{Titelrückseitenfuß}
+\end{Declaration}%
+Im\textnote{\KOMAScript{} vs. Standardklassen} doppelseitigen Druck bleibt bei
+den Standardklassen die Rückseite des Blatts mit der Titelseite leer. Bei
+{\KOMAScript} lässt sich die Rückseite der Haupttitelseite hingegen für
+weitere Angaben nutzen. Dabei wird zwischen genau zwei Elementen
+unterschieden, die der Anwender frei gestalten kann: dem
+\PName{Titelrückseitenkopf}\Index{Titel>Rueckseite=Rückseite} und dem
+\PName{Titelrückseitenfuß}. Dabei kann der Kopf bis zum Fuß reichen und
+umgekehrt. \iffree{Nimmt man diese Anleitung als Beispiel, so wurde der
+ Haftungsausschluss mit Hilfe von \Macro{uppertitleback}
+ gesetzt.}{Beispielsweise hätte man die Verlagsinformationen zu diesem Buch
+ wahlweise mit \Macro{uppertitleback} oder \Macro{lowertitleback} setzen
+ können.}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{dedication}\Parameter{Widmung}
+\end{Declaration}%
+{\KOMAScript} bietet eine eigene Widmungsseite. Diese Widmung\Index{Widmung}
+wird zentriert und in der Voreinstellung mit etwas größerer
+Schrift\textnote{Schrift} gesetzt.
+\BeginIndexGroup\BeginIndex{FontElement}{dedication}%
+\LabelFontElement{dedication}
+Die%
+\IfThisCommonLabelBase{maincls}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+}{%
+ \IfThisCommonLabelBase{scrextend}{%
+ \ChangedAt{v3.12}{\Package{scrextend}}%
+ }{\InternalCommonFileUseError}%
+}\important{\FontElement{dedication}} genaue Schrifteinstellung für das
+Element \FontElement{dedication}, die
+\autoref{tab:\ThisCommonFirstLabelBase.titlefonts},
+\autopageref{tab:\ThisCommonFirstLabelBase.titlefonts} zu entnehmen ist, kann
+über die Anweisungen \DescRef{\ThisCommonLabelBase.cmd.setkomafont} und
+\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\ThisCommonLabelBase.textmarkup},
+\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) verändert werden.%
+\EndIndexGroup
+
+Die Rückseite ist grundsätzlich leer. Die Widmungsseite wird zusammen mit der
+restlichen Titelei mit \DescRef{\ThisCommonLabelBase.cmd.maketitle} ausgegeben
+und muss daher vor dieser Anweisung definiert sein.
+
+\IfThisCommonFirstRun{\iftrue}{%
+ Ein Beispiel mit allen von \KOMAScript{} angebotenen Titelseiten finden Sie
+ in \autoref{sec:\ThisCommonFirstLabelBase.titlepage} auf
+ \PageRefxmpl{\ThisCommonFirstLabelBase.fulltitle}.%
+ \csname iffalse\endcsname%
+}%
+ \begin{Example}
+ \phantomsection\xmpllabel{fulltitle}
+ Nehmen wir dieses Mal an, dass Sie einen Gedichtband schreiben, den
+ Sie Ihrer Partnerin oder Ihrem Partner widmen wollen. Das könnte wie folgt
+ aussehen:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage[ngerman]{babel}
+ \begin{document}
+ \extratitle{\textbf{\Huge In Liebe}}
+ \title{In Liebe}
+ \author{Prinz Eisenherz}
+ \date{1412}
+ \lowertitleback{%
+ Dieser Gedichtband wurde mit Hilfe von
+ {\KOMAScript} und {\LaTeX} gesetzt.}
+ \uppertitleback{%
+ Selbstverlach\par
+ Auf"|lage: 1 Exemplar}
+ \dedication{%
+ Meinem Schnuckelchen\\
+ in ewiger Liebe\\
+ von Deinem Hasenboppelchen.}
+ \maketitle
+ \end{document}
+\end{lstcode}
+ Ich bitte, die Kosenamen nach eigenen Vorlieben zu ersetzen und zu
+ personalisieren.
+ \end{Example}%
+\fi%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/common-typearea.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/common-typearea.tex
new file mode 100644
index 0000000000..87b1c4e29e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/common-typearea.tex
@@ -0,0 +1,88 @@
+% ======================================================================
+% common-typearea.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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-typearea.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Paragraphs that are common for several chapters of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{common-typearea.tex}
+ [$Date: 2018-02-01 12:55:46 +0100 (Thu, 01 Feb 2018) $
+ KOMA-Script guide (common paragraphs: typearea)]
+
+
+\section{\texorpdfstring{Seitenauf"|teilung}{Seitenaufteilung}}
+\seclabel{typearea}
+\BeginIndexGroup
+\BeginIndex{}{Seiten>Aufteilung=Auf\/teilung}
+
+Eine Dokumentseite besteht aus unterschiedlichen Teilen, wie den Rändern, dem
+Kopf, dem Fuß, dem Textbereich, einer Marginalienspalte und den Abständen
+zwischen diesen Elementen. \KOMAScript{} unterscheidet dabei auch noch
+zwischen der Gesamtseite oder dem Papier und der sichtbaren Seite. Ohne
+Zweifel gehört die Auf"|teilung der Seite in diese unterschiedlichen Teile zu
+den Grundfähigkeiten einer
+Klasse\IfThisCommonLabelBase{scrlttr2}{\OnlyAt{scrlttr2}}{}. Bei \KOMAScript{}
+wird diese Arbeit an das Paket \Package{typearea} delegiert. Dieses Paket kann
+auch zusammen mit anderen Klassen verwendet werden. Die \KOMAScript-Klassen
+laden \Package{typearea} jedoch selbstständig. Es ist daher weder notwendig
+noch sinnvoll, das Paket bei Verwendung einer \KOMAScript-Klasse auch noch
+explizit per \Macro{usepackage} zu laden. Siehe hierzu auch
+\autoref{sec:\ThisCommonLabelBase.options}, ab
+\autopageref{sec:\ThisCommonLabelBase.options}.
+
+Einige Einstellungen der \KOMAScript{}-Klassen haben Auswirkungen auf die
+Seitenauf"|teilung und umgekehrt. Diese Auswirkungen werden bei den
+entsprechenden Einstellungen dokumentiert.
+
+Für die weitere Erklärung zur Wahl des Papierformats, der Auf"|teilung der Seite
+in Ränder und Satzspiegel und die Wahl von ein- oder zweispaltigem Satz sei
+auf die Anleitung des Pakets \Package{typearea} verwiesen. Diese ist in
+\autoref{cha:typearea} ab \autopageref{cha:typearea} zu finden.
+
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/expertpart.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/expertpart.tex
new file mode 100644
index 0000000000..30b3608c14
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/expertpart.tex
@@ -0,0 +1,77 @@
+% ======================================================================
+% expertpart.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% expertpart.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% First part: KOMA-Script for Authors
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Erster Teil: KOMA-Script für Autoren
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\ProvidesFile{expertpart.tex}[2008/07/22 Part KOMA-Script for Experts]
+
+\setpartpreamble{%
+ \vspace*{2\baselineskip}%
+ \setlength{\parindent}{1em}%
+
+ \noindent In diesem Teil sind die Informationen für die Autoren von
+ \LaTeX-Paketen und "~Klassen zu finden. Dies betrifft nicht nur
+ Anweisungen, die bei der Implementierung neuer Pakete und Klassen nützlich
+ sind, sondern auch Schnittstellen, die weitere Eingriffe in \KOMAScript{}
+ erlauben. Darüber hinaus sind in diesem Teil auch obsolete Optionen und
+ Anweisungen ebenso wie Hintergründe zur Implementierung von \KOMAScript{} zu
+ finden.
+
+ Dieser Teil ist als Ergänzung zu den Informationen für Autoren von
+ Artikeln, Berichten, Büchern und Briefen in \autoref{part:forAuthors}
+ gedacht. Nähere Informationen und Beispiele für diese Anwender sind
+ jenem Teil zu entnehmen.
+}
+
+\part{\KOMAScript{} für fortgeschrittene Anwender
+ und Experten\label{part:forExperts}}
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "guide.tex"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/guide-ngerman.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/guide-ngerman.tex
new file mode 100644
index 0000000000..504ee20268
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/guide-ngerman.tex
@@ -0,0 +1,549 @@
+% ======================================================================
+% guide-ngerman.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% guide-ngerman.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% Language dependencies (ngerman) of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Sprachabhaengigkeiten (ngerman) der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+%
+\KOMAProvidesFile{guide-ngerman.tex}
+ [$Date: 2018-04-13 07:41:27 +0200 (Fri, 13 Apr 2018) $
+ KOMA-Script guide language dependencies]
+%
+% \section{Title}
+%
+% \begin{macro}{\GuideSubject}
+% \begin{macro}{\GuideTitle}
+% \begin{macro}{\GuideSubTitle}
+% \begin{macro}{\GuideAuthorHeadline}
+% \begin{macro}{\GuideTranslatorHeadline}
+% \begin{macro}{\GuideWarrantyHeadline}
+% \begin{macro}{\GuideWarranty}
+% \begin{macro}{\GuideCopyright}
+% \begin{macro}{\GuideDedication}
+% Language dependencies of all the title pages.
+% \begin{macrocode}
+\newcommand*{\GuideSubject}{Die Anleitung}
+\newcommand*{\GuideTitle}{\KOMAScript}%
+\newcommand*{\GuideSubTitle}{ein wandelbares \LaTeXe-Paket}%
+\newcommand*{\GuideAuthorHeadline}{Autoren des \KOMAScript-Pakets}%
+\newcommand*{\GuideTranslatorHeadline}{An der deutschen \"Ubersetzung dieser
+ Anleitung haben mitgewirkt: }
+\newcommand*{\GuideWarrantyHeadline}{Rechtliche Hinweise:}%
+\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 gro\ss er Sorgfalt
+ vorgegangen. Trotzdem k\"onnen Fehler nicht vollst\"andig ausgeschlossen
+ werden.\par\medskip%
+ 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\"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\"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
+ \"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}).}%
+\newcommand*{\GuideDedication}{F\"ur meine Frau ohne deren tagt\"agliche
+ Arbeit ich mir meine ehrenamtlichen Taten nicht leisten k\"onnte!}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \section{CTAN Server to be Used}
+%
+% \begin{macro}{\GuideCTANserver}
+% Unused since 2015-09-30.
+% \begin{macrocode}
+%\newcommand*{\GuideCTANserver}{mirror.ctan.org}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Terms}
+%
+% Some terms, e.g. used at index notes.
+%
+% \begin{macro}{\GuideClass}
+% \begin{macro}{\GuideClassIndexCategory}
+% \begin{macro}{\GuideClassIndexCategoryExpanded}
+% The term ``class''.
+% \begin{macrocode}
+\newcommand*{\GuideClass}{Klasse}
+\newcommand*{\GuideClassIndexCategory}{Klassen}
+\let\GuideClassIndexCategoryExpanded\GuideClassIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideCounter}
+% \begin{macro}{\GuideCounterIndexCategory}
+% \begin{macro}{\GuideCounterIndexCategoryExpanded}
+% The term ``counter''.
+% \begin{macrocode}
+\newcommand*{\GuideCounter}{Z\"ahler}
+\newcommand*{\GuideCounterIndexCategory}{Z\"ahler}
+\let\GuideCounterIndexCategoryExpanded\GuideCounterIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideEnvironment}
+% \begin{macro}{\GuideEnvIndexCategory}
+% \begin{macro}{\GuideEnvIndexCategoryExpanded}
+% The term ``environment''.
+% \begin{macrocode}
+\newcommand*{\GuideEnvironment}{Umgebung}
+\newcommand*{\GuideEnvIndexCategory}{Umgebungen}
+\let\GuideEnvIndexCategoryExpanded\GuideEnvIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideExample}
+% The term ``Example'' used at a kind of heading, so it should be upper case.
+% \begin{macrocode}
+\newcommand*{\GuideExample}{Beispiel}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GuideFile}
+% \begin{macro}{\GuideFileIndexCategory}
+% \begin{macro}{\GuideFileIndexCategoryExpanded}
+% The term ``file''.
+% \begin{macrocode}
+\newcommand*{\GuideFile}{Datei}
+\newcommand*{\GuideFileIndexCategory}{Dateien}
+\let\GuideFileIndexCategoryExpanded\GuideFileIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideFloatstyle}
+% \begin{macro}{\GuideFloatstyleIndexCategory}
+% \begin{macro}{\GuideFloatstyleIndexCategoryExpanded}
+% The term ``\Package{float} style''.
+% \begin{macrocode}
+\newcommand*{\GuideFloatstyle}{\Package{float}-Stil}
+\newcommand*{\GuideFloatstyleIndexCategory}{\Package{float}-Stile}
+\newcommand*{\GuideFloatstyleIndexCategoryExpanded}{float-Stile}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideFontElement}
+% \begin{macro}{\GuideFontElementIndexCategory}
+% \begin{macro}{\GuideFontElementIndexCategoryExpanded}
+% The term ``element''.
+% \begin{macrocode}
+\newcommand*{\GuideFontElement}{Element}
+\newcommand*{\GuideFontElementIndexCategory}{Elemente}
+\let\GuideFontElementIndexCategoryExpanded\GuideFontElementIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideLength}
+% \begin{macro}{\GuideLengthIndexCategory}
+% \begin{macro}{\GuideLengthIndexCategoryExpanded}
+% The term ``length''.
+% \begin{macrocode}
+\newcommand*{\GuideLength}{L\"ange}
+\newcommand*{\GuideLengthIndexCategory}{L\"angen}
+\let\GuideLengthIndexCategoryExpanded\GuideLengthIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideMacro}
+% \begin{macro}{\GuideMacroIndexCategory}
+% \begin{macro}{\GuideMacroIndexCategoryExpanded}
+% \begin{macro}{\GuideCommand}
+% \begin{macro}{\GuideCommandIndexCategory}
+% \begin{macro}{\GuideCommandIndexCategoryExpanded}
+% The term ``command''.
+% \begin{macrocode}
+\newcommand*{\GuideMacro}{Befehl}
+\let\GuideCommand\GuideMacro
+\newcommand*{\GuideMacroIndexCategory}{Befehle}
+\let\GuideCommandIndexCategory\GuideMacroIndexCategory
+\let\GuideMacroIndexCategoryExpanded\GuideMacroIndexCategory
+\let\GuideCommandIndexCategoryExpanded\GuideCommandIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideOption}
+% \begin{macro}{\GuideOptionIndexCategory}
+% \begin{macro}{\GuideOptionIndexCategoryExpanded}
+% The term ``option''.
+% \begin{macrocode}
+\newcommand*{\GuideOption}{Option}
+\newcommand*{\GuideOptionIndexCategory}{Optionen}
+\let\GuideOptionIndexCategoryExpanded\GuideOptionIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuidePackage}
+% \begin{macro}{\GuidePackageIndexCategory}
+% \begin{macro}{\GuidePackageIndexCategoryExpanded}
+% The term ``package''.
+% \begin{macrocode}
+\newcommand*{\GuidePackage}{Paket}
+\newcommand*{\GuidePackageIndexCategory}{Pakete}
+\let\GuidePackageIndexCategoryExpanded\GuidePackageIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuidePagestyle}
+% \begin{macro}{\GuidePagestyleIndexCategory}
+% \begin{macro}{\GuidePagestyleIndexCategoryExpanded}
+% The term ``page style''.
+% \begin{macrocode}
+\newcommand*{\GuidePagestyle}{Seitenstil}
+\newcommand*{\GuidePagestyleIndexCategory}{Seitenstile}
+\let\GuidePagestyleIndexCategoryExpanded\GuidePagestyleIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuidePLength}
+% \begin{macro}{\GuidePLengthIndexCategory}
+% \begin{macro}{\GuidePLengthIndexCategoryExpanded}
+% \begin{macro}{\GuidePseudoPrefix}
+% The prefix ``pseudo'' at the term ``pseudo length'' and the term itself.
+% \begin{macrocode}
+\newcommand*{\GuidePseudoPrefix}{Pseudo-}
+\newcommand*{\GuidePLength}{Pseudol\"ange}
+\newcommand*{\GuidePLengthIndexCategory}{Pseudol\"angen}
+\let\GuidePLengthIndexCategoryExpanded\GuidePLengthIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideVariable}
+% \begin{macro}{\GuideVariableIndexCategory}
+% \begin{macro}{\GuideVariableIndexCategoryExpanded}
+% The term ``variable''.
+% \begin{macrocode}
+\newcommand*{\GuideVariable}{Variable}
+\newcommand*{\GuideVariableIndexCategory}{Variablen}
+\let\GuideVariableIndexCategoryExpanded\GuideVariableIndexCategory
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideAnd}
+% The ``and'' at a list of two.
+% \begin{macrocode}
+\newcommand*{\GuideAnd}{ und }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GuideListAnd}
+% The ``and'' at a list of more than two.
+% \begin{macrocode}
+\newcommand*{\GuideListAnd}{ und }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GuideLoadNonFree}
+% Note, that the non free manual contains more information.
+% \begin{macrocode}
+\newcommand*{\GuideLoadNonFree}{%
+ Im \KOMAScript-Buch \cite{book:komascript} finden sich an dieser Stelle
+ weitere Informationen.
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Index}
+%
+% \begin{macro}{\GuidegenIndex}
+% \begin{macro}{\GuidecmdIndex}
+% \begin{macro}{\GuidecmdIndexShort}
+% \begin{macro}{\GuidelenIndex}
+% \begin{macro}{\GuidelenIndexShort}
+% \begin{macro}{\GuideelmIndex}
+% \begin{macro}{\GuideelmIndexShort}
+% \begin{macro}{\GuidefilIndex}
+% \begin{macro}{\GuidefilIndexShort}
+% \begin{macro}{\GuideoptIndex}
+% \begin{macro}{\GuideoptIndexShort}
+% The titles and short titles of each single index.
+\newcommand*{\GuidegenIndex}{Allgemeiner Index}
+\newcommand*{\GuidecmdIndex}{Befehle, Umgebungen und
+ Variablen}
+\newcommand*{\GuidecmdIndexShort}{Index der Befehle etc.}
+\newcommand*{\GuidelenIndex}{L\"angen und Z\"ahler}
+\newcommand*{\GuidelenIndexShort}{Index der L\"angen etc.}
+\newcommand*{\GuideelmIndex}{Elemente mit
+ der M\"oglichkeit zur Schriftumschaltung}
+\newcommand*{\GuideelmIndexShort}{Index der Elemente}
+\newcommand*{\GuidefilIndex}{Dateien, Klassen und Pakete}
+\newcommand*{\GuidefilIndexShort}{Index der Dateien etc.}
+\newcommand*{\GuideoptIndex}{Klassen- und
+ Paketoptionen}
+\newcommand*{\GuideoptIndexShort}{Index der Optionen}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GuideIndexPreamble}
+% The preamble text of the whole index.
+\newcommand*{\GuideIndexPreamble}{%
+ Fett hervorgehobene Zahlen geben die Seiten der Erkl\"arung zu einem
+ Stichwort wieder. Normal gedruckte Zahlen verweisen hingegen auf
+ Seiten mit zus\"atzlichen Informationen zum jeweiligen Stichwort.%
+}
+% \end{macro}
+%
+% \begin{macro}{\GuideIndexSees}
+% These are all see index entries.
+\newcommand*{\GuideIndexSees}{%
+ \Index{Seitenmittenmarke|see{Lochermarke}}%
+ \Index{Falzmarke|see{Faltmarke}}%
+ \Index{in-page-Titel=\emph{in-page}-Titel|see{Titelkopf}}%
+ \Index{Index|see{Stichwortverzeichnis}}%
+ \Index{Register|see{Stichwortverzeichnis}}%
+}
+% \end{macro}
+%
+% \begin{macro}{\GuideIndexSeeAlsos}
+% These are all see also index entries.
+\newcommand*{\GuideIndexSeeAlsos}{%
+ \Index{Ueberschriften=Überschriften|seealso{Abschnitt, Gliederung, Kapitel}}%
+ \Index{Gliederung|seealso{Abschnitt, Kapitel, Überschriften}}%
+ \Index{Bindeanteil|seealso{Bindekorrektur}}%
+ \Index{Bindung|seealso{Bindekorrektur}}%
+}
+% \end{macro}
+%
+%
+% \section{Bibliography}
+%
+% \begin{macro}{\GuideBibPreamble}
+% \begin{macrocode}
+\newcommand*{\GuideBibPreamble}{%
+ Sie finden im Folgenden eine ganze Reihe von Literaturangaben. Auf
+ all diese wird im Text verwiesen. In vielen F\"allen handelt es sich
+ um Dokumente oder ganze Verzeichnisse, die im Internet verf\"ugbar
+ sind. In diesen F\"allen ist statt eines Verlages eine URL angegeben.
+ Wird auf ein \LaTeX-Paket verwiesen, so findet der Verweis in der
+ Regel in der Form \glqq \url{CTAN://}\emph{Verweis}\grqq{} statt.
+ Der Pr\"afix \glqq \url{CTAN://}\grqq{} steht dabei f\"ur das
+ \TeX-Archiv eines jeden CTAN-Servers oder -Spiegels. Sie k\"onnen
+ den Pr\"afix beispielsweise durch
+ \url{http://mirror.ctan.org/} ersetzen. Bei
+ \LaTeX-Paketen ist au\ss erdem zu beachten, dass versucht wurde,
+ die Version anzugeben, auf die im Text Bezug genommen wurde. Bei
+ einigen Paketen war es mehr ein Ratespiel, eine einheitliche
+ Versionsnummer und ein Erscheinungsdatum zu finden. Auch muss die
+ angegebene Version nicht immer die neuste verf\"ugbare Version sein.
+ Wenn Sie sich ein Paket neu besorgen und installieren, sollten Sie
+ jedoch zun\"achst immer die aktuelle Version ausprobieren. Bevor Sie
+ ein Dokument oder Paket von einem Server herunterladen, sollten Sie
+ au\ss erdem \"uberpr\"ufen, ob es sich nicht bereits auf Ihrem
+ Rechner befindet.
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Change Log}
+%
+% \begin{macro}{\GuideChangeLogPreamble}
+% The preamble of the change log index.
+% \begin{macrocode}
+\newcommand*{\GuideChangeLogPreamble}{%
+ Sie finden im folgenden eine Auf\/listung aller wesentlichen \"Anderungen
+ der Benutzerschnittstelle im \KOMAScript-Paket der neueren Zeit. Die Liste
+ ist sowohl nach Versionen als auch nach Paket- und Klassennamen sortiert. Zu
+ jeder Version, jedem Paket und jeder Klasse ist jeweils angegeben, auf
+ welchen Seiten dieser Dokumentation die \"Anderungen zu finden sind. Auf den
+ entsprechenden Seiten finden Sie dazu passende Randmarkierungen.%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Language Extensions}
+%
+% Some terms should be part of the captions of the language.
+% \begin{macro}{\GuideLanguageExtensions}
+% This macro has to be defined, because the class will add it to the language
+% at |\begin{document}| and it will also call it.
+% \begin{macrocode}
+\newcommand*{\GuideLanguageExtensions}{%
+% \end{macrocode}
+% \begin{macro}{\pageautorefname}
+% The term ``page'' that will be put before the reference of a page set by
+% |\autopageref|.
+% \begin{macrocode}
+ \let\pageautorefname\pagename
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\subsectionautorefname}
+% \begin{macro}{\subsubsectionautorefname}
+% \begin{macro}{\paragraphautorefname}
+% \begin{macro}{\subparagraphautorefname}
+% I'll call them all ``section''.
+% \begin{macrocode}
+ \let\subsectionautorefname=\sectionautorefname
+ \let\subsubsectionautorefname=\sectionautorefname
+ \let\paragraphautorefname=\sectionrefname
+ \let\subparagraphautorefname=\sectionrefname
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\changelogname}
+% The name of the change log index.
+% \begin{macrocode}
+ \def\changelogname{\"Anderungsliste}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\descriptionname}
+% \begin{macro}{\contentsname}
+% \begin{macrocode]
+ \def\descriptionname{Bezeichnung}%
+ \def\contentname{Inhalt}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\lengthname}
+% \begin{macrocode}
+ \def\lengthname{L\"ange}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Hyphenation}
+%
+% This is not realy a good place to put them~-- but better late than never:
+% \begin{macrocode}
+\hyphenation{%
+ Ab-schnitts-ebe-ne
+ Back-slash
+ Brief-um-ge-bung Brief-um-ge-bun-gen
+ Da-tei-na-me Da-tei-na-men Da-tei-na-mens
+ Da-tei-na-men-er-wei-te-rung Da-tei-na-men-er-wei-te-rung-en
+ Ein-trags-ebe-ne Ein-trags-ebe-nen
+ Gleich-zei-tig
+ Hin-ter-grund-ebe-ne Hin-ter-grund-ebe-nen
+ In-halts-ver-zeich-nis-ein-trag In-halts-ver-zeich-nis-ein-trä-ge
+ Ka-pi-tel-ebe-ne Ka-pi-tel-ebe-nen
+ Pa-ket-au-to-ren
+ Pa-pier-rand Pa-pier-ran-des
+ Rand-ein-stel-lung Rand-ein-stel-lung-en
+ Schrift-ein-stel-lung Schrift-ein-stel-lung-en
+ Sei-ten-um-bruch Schrift-um-schal-tung Schrift-um-schal-tun-gen
+ Stan-dard-an-wei-sung Stan-dard-an-wei-sun-gen
+ Stan-dard-ein-stel-lung Stan-dard-ein-stel-lun-gen
+ Text-ebe-ne Text-ebe-nen
+ Unix
+ Zei-len-um-bruch Zei-len-um-bruchs Zei-len-um-brü-che Zei-len-um-brü-chen
+ }
+% \end{macrocode}
+%
+%
+%
+\endinput
+%%% Local Variables:
+%%% mode: doctex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide.tex"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/guide.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/guide.tex
new file mode 120000
index 0000000000..4e897d1e39
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/guide.tex
@@ -0,0 +1 @@
+../guide.tex \ No newline at end of file
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/htmlsetup b/macros/latex/contrib/koma-script/source-doc/ngerman/htmlsetup
new file mode 100644
index 0000000000..92dd812ff4
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/htmlsetup
@@ -0,0 +1,65 @@
+# ======================================================================
+# htmlsetup
+# 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.
+# ----------------------------------------------------------------------
+# htmlsetup
+# 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.
+# ======================================================================
+
+$baselink="scrguide.pdf";
+$htmlhead="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">
+<html>
+<head><title>Index</title>
+<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">
+</head>
+<body>
+<h1>Index der KOMA-Script-Anleitung</h1>
+<p>Dies ist ein Index der in KOMA-Script definierten Elemente. Dieser Index bezieht sich auf die <a href=\"scrguide.pdf\">KOMA-Script-Anleitung</a>. Zur besseren Ãœbersicht ist der Index in mehrere Funktionsgruppen unterteilt:</p>
+";
+$htmlend="<p>
+<a href=\"http://validator.w3.org/check?uri=referer\"><img
+src=\"http://www.w3.org/Icons/valid-html40\"
+alt=\"Valid HTML 4.0 Strict\" height=\"31\" width=\"88\"></a>
+</p>
+</body></html>";
+%titles=( "option" => "Optionen",
+ "macro" => "Anweisungen",
+ "environment" => "Umgebungen",
+ "length" => "Längen",
+ "plength" => "Pseudolängen",
+ "variable" => "Variablen",
+ "pagestyle" => "Seitenstile",
+ "counter" => "Zähler",
+ "floatstyle" => "Stile für das float-Paket",
+ "fontelement" => "Elemente deren Schrift geändert werden kann" );
+
+# end of file
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/introduction.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/introduction.tex
new file mode 100644
index 0000000000..b5cd43b836
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/introduction.tex
@@ -0,0 +1,424 @@
+% ======================================================================
+% introduction.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% introduction.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ======================================================================
+%
+% Introduction of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Einleitung der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{introduction.tex}
+ [$Date: 2018-02-05 10:50:56 +0100 (Mon, 05 Feb 2018) $
+ KOMA-Script guide introduction]
+
+\chapter{Einleitung}
+\labelbase{introduction}
+
+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 %
+\iffalse % Umbruchkorreturauslassung
+ \KOMAScript{} noch nicht installiert haben, oder %
+\fi%
+auf Fehler stoßen.
+
+\iffree{%
+\section{Vorwort}
+\seclabel{preface}
+
+{\KOMAScript} ist ein sehr komplexes Paket (engl. \emph{bundle}). Dies
+ist schon allein darin begründet, dass es nicht nur aus einer einzigen
+Klasse (engl. \emph{class}) oder einem einzigen Paket (engl.
+\emph{package}), sondern einer Vielzahl derer besteht. Zwar sind die
+Klassen als Gegenstücke zu den Standardklassen konzipiert (siehe
+\autoref{cha:maincls}), das heißt jedoch insbesondere nicht,
+dass sie nur über die Befehle, Umgebungen und Einstellmöglichkeiten
+der Standardklassen verfügen oder deren Aussehen als
+Standardeinstellung übernehmen.
+Die Fähigkeiten von {\KOMAScript} reichen
+teilweise weit über die Fähigkeiten der Standardklassen hinaus.
+Manche davon sind auch als Ergänzung zu den Grundfähigkeiten des
+\LaTeX-Kerns zu betrachten.
+
+Allein aus dem Vorgenannten ergibt sich schon zwangsläufig, dass die
+Dokumentation zu {\KOMAScript} sehr umfangreich ausfällt. Hinzu kommt,
+dass {\KOMAScript} in der Regel nicht gelehrt wird. Das heißt, es gibt
+keinen Lehrer, der seine Schüler kennt und damit den Unterricht und
+das Unterrichtsmaterial entsprechend wählen und anpassen kann. Es wäre
+ein Leichtes, die Dokumentation für irgendeine Zielgruppe zu
+verfassen. Die Schwierigkeit, der sich der Autor gegenüber sieht,
+besteht jedoch darin, dass eine Anleitung für alle möglichen
+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. Ich habe mich bemüht, obwohl es sich
+dabei eigentlich um ein unmögliches Unterfangen handelt. Ergebnis sind
+zahlreiche Kompromisse. Ich bitte jedoch, die Problematik bei
+eventuellen Beschwerden zu berücksichtigen und bei der Verbesserung
+der derzeitigen Lösung zu helfen.
+
+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
+ alle Text-Dokumente, die Bestandteil des Pakets sind. Sie sind in
+ \File{manifest.txt} vollständig aufgeführt}{}
+}{}
+
+\section{Dokumentaufbau}
+\seclabel{structure}
+
+Diese Anleitung ist in mehrere Teile untergliedert. Es gibt einen Teil für
+Anwender, einen für fortgeschrittene Anwender und Experten und einen Anhang
+mit weiterführenden Informationen und Beispielen für diejenigen, die es ganz
+genau wissen wollen.
+
+\autoref{part:forAuthors} richtet sich dabei an alle \KOMAScript-Anwender. Das
+bedeutet, dass hier auch einige Informationen für \LaTeX-Neulinge zu finden
+sind. Insbesondere ist dieser Teil mit vielen Beispielen angereichert, die dem
+reinen Anwender zur Verdeutlichung der Erklärungen dienen sollen. Scheuen Sie
+sich nicht, diese Beispiele selbst auszuprobieren und durch Abwandlung
+herauszufinden, wie \KOMAScript{} funktioniert. Trotz allem ist diese
+Anleitung jedoch keine Einführung in \LaTeX. \LaTeX-Neulingen seien daher
+Dokumente wie \cite{l2kurz} nahegelegt. Wiedereinsteigern aus der Zeit von
+\LaTeX~2.09 sei zumindest \cite{latex:usrguide} empfohlen. Auch das Studium des
+einen oder anderen Buches zu \LaTeX{} wird empfohlen. Literaturempfehlungen
+finden sich beispielsweise in \cite{DANTE:FAQ}. Der Umfang von
+\cite{DANTE:FAQ} ist ebenfalls erheblich. Dennoch wird darum gebeten, sich
+einen groben Überblick darüber zu verschaffen und es bei Problemen ebenso wie
+\iffree{diese Anleitung}{dieses Buch} zu konsultieren.
+
+\autoref{part:forExperts} richtet sich an fortgeschrittene
+\KOMAScript-Anwender. Das sind all diejenigen, die sich bereits mit \LaTeX{}
+auskennen oder schon einige Zeit mit \KOMAScript{} gearbeitet haben und jetzt
+etwas besser verstehen wollen, wie \KOMAScript{} funktioniert, wie es mit
+anderen Paketen interagiert und wie man speziellere Aufgaben mit \KOMAScript{}
+lösen kann. Dazu werden die Klassenbeschreibungen aus
+\autoref{part:forAuthors} in einigen Aspekten nochmals aufgegriffen und näher
+erläutert. Dazu kommt die Dokumentation von Anweisungen, die speziell für
+fortgeschrittene Anwender und Experten vorgesehen sind. Ergänzt wird dies
+durch die Dokumentation von Paketen, die für den Anwender normalerweise insofern
+verborgen sind, als sie unter der Oberfläche der Klassen und Anwenderpakete
+ihre Arbeit verrichten. Diese Pakete sind ausdrücklich auch für die Verwendung
+durch andere Klassen- und Paketautoren vorgesehen.
+
+Der Anhang\iffree{, der nur in der Buchfassung zu finden ist,}{} richtet sich
+an diejenigen, denen all diese Informationen nicht genügen. Es gibt dort zum
+einen Hintergrundwissen zu Fragen der Typografie, mit denen dem
+fortgeschrittenen Anwender eine Grundlage für fundierte eigene Entscheidungen
+vermittelt werden soll. Darüber hinaus sind dort Beispiele für angehende
+Paketautoren zu finden. Diese Beispiele sind weniger dazu gedacht, einfach
+übernommen zu werden. Vielmehr sollen sie Wissen um Planung und Durchführung
+von \LaTeX-Projekten sowie einige grundlegende \LaTeX-Anweisungen für
+Paketautoren vermitteln.
+
+Die Kapitel-Einteilung der Anleitung soll ebenfalls dabei
+helfen, nur die Teile lesen zu müssen, die tatsächlich von Interesse sind. Um
+dies zu erreichen, sind die Informationen zu den einzelnen Klassen und Paketen
+nicht über das gesamte Dokument verteilt, sondern jeweils in einem Kapitel
+konzentriert. Querverweise in ein anderes Kapitel sind damit in der Regel auch
+Verweise auf einen anderen Teil des Gesamtpakets. Da die drei Hauptklassen in
+weiten Teilen übereinstimmen, sind sie in einem gemeinsamen Kapitel
+zusammengefasst. Die Unterschiede werden deutlich hervorgehoben, soweit
+sinnvoll auch durch eine entsprechende Randnotiz. Dies geschieht
+beispielsweise wie hier, wenn etwas nur die Klasse
+\Class{scrartcl}\OnlyAt{\Class{scrartcl}} betrifft. Nachteil dieses Vorgehens
+ist, dass diejenigen, die \KOMAScript{} insgesamt kennenlernen wollen, in
+einigen Kapiteln auf bereits Bekanntes stoßen werden. Vielleicht nutzen Sie
+die Gelegenheit, um Ihr Wissen zu vertiefen.
+
+Unterschiedliche Schriftarten werden auch zur Hervorhebung unterschiedlicher
+Dinge verwendet. So werden die Namen von \Package{Paketen} und \Class{Klassen}
+anders angezeigt als \File{Dateinamen}. \Option{Optionen}, \Macro{Anweisungen},
+\Environment{Umgebungen}, \Variable{Variablen} und
+\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{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{Umgebung}
+der Anweisung \Macro{begin}.
+
+\iffalse% Umbruchkorrekturtext
+Damit sollten Sie nun alles wissen, um diese Anleitung lesen und verstehen zu
+können. Trotzdem könnte es sich lohnen, den Rest dieses Kapitels gelegentlich
+auch zu lesen.
+\fi
+
+
+\section{Die Geschichte von \KOMAScript}
+\seclabel{history}
+
+%\begin{Explain}
+ Anfang der 1990er~Jahre wurde Frank Neukam damit beauf"|tragt, ein
+ Vorlesungsskript zu setzen. Damals war noch \LaTeX~2.09 aktuell und
+ es gab keine Unterscheidung nach Klassen und Paketen, sondern alles
+ waren Stile (engl. \emph{styles}). Die Standarddokumentstile
+ erschienen ihm für ein Vorlesungsskript nicht optimal und boten auch
+ nicht alle Befehle und Umgebungen, die er benötigte.
+
+ Zur selben Zeit beschäftigte sich Frank auch mit Fragen der
+ Typografie, insbesondere mit \cite{JTsch87}. Damit stand für ihn
+ fest, nicht nur irgendeinen Dokumentstil für Skripten zu erstellen,
+ sondern allgemein eine Stilfamilie, die den Regeln der europäischen
+ Typografie folgt. {\Script} war geboren.
+
+ Der \KOMAScript-Autor traf auf {\Script} ungefähr zum Jahreswechsel
+ 1992/""1993. Im Gegensatz zu Frank Neukam hatte er häufig mit Dokumenten im
+ A5-Format zu tun. Zu jenem Zeitpunkt wurde A5 weder von den Standardstilen
+ noch von {\Script} unterstützt. Daher dauerte es nicht lange, bis er erste
+ Veränderungen an {\Script} vornahm. Diese fanden sich auch in {\ScriptII}
+ wieder, das im Dezember~1993 von Frank veröffentlicht wurde.
+
+ Mitte 1994 erschien dann \LaTeXe. Die damit einhergehenden Änderungen waren
+ tiefgreifend. Daher blieb dem Anwender von {\ScriptII} nur die Entscheidung,
+ sich entweder auf den Kompatibilitätsmodus von \LaTeX{} zu beschränken oder
+ auf {\Script} zu verzichten. Wie viele andere wollte ich beides nicht. Also
+ machte der \KOMAScript-Autor sich daran, einen \Script-Nachfolger für
+ {\LaTeXe} zu entwickeln, der am 7.~Juli~1994 unter dem Namen {\KOMAScript}
+ erschienen ist. Ich will hier nicht näher auf die Wirren eingehen, die es um
+ die offizielle Nachfolge von {\Script} gab und warum dieser neue Name
+ gewählt wurde. Tatsache ist, dass auch aus Franks Sicht {\KOMAScript} der
+ Nachfolger von {\ScriptII} ist. Zu erwähnen ist noch, dass {\KOMAScript}
+ ursprünglich ohne Briefklasse erschienen war. Diese wurde im Dezember~1994
+ von Axel Kielhorn beigesteuert. Noch etwas später erstellte Axel Sommerfeldt
+ den ersten richtigen scrguide zu {\KOMAScript}.
+
+ Seither ist einige Zeit vergangen. {\LaTeX} hat sich kaum verändert, die
+ \LaTeX-Landschaft erheblich. {\KOMAScript} wurde weiterentwickelt. Es findet
+ nicht mehr allein im deutschsprachigen Raum Anwender, sondern in ganz
+ Europa, Nordamerika, Australien und Asien. Diese Anwender suchen bei
+ {\KOMAScript} nicht allein nach einem typografisch ansprechenden
+ Ergebnis. Zu beobachten ist vielmehr, dass bei {\KOMAScript} ein neuer
+ Schwerpunkt entstanden ist: Flexibilisierung durch Variabilisierung. Unter
+ diesem Schlagwort verstehe ich die Möglichkeit, in das Erscheinungsbild an
+ vielen Stellen eingreifen zu können. Dies führte zu vielen neuen Makros, die
+ mehr schlecht als recht in die ursprüngliche Dokumentation integriert wurden.
+ Irgendwann wurde es damit auch Zeit für eine komplett überarbeitete
+ Anleitung.
+%\end{Explain}
+
+
+\iffree{%
+\section{Danksagung}
+\seclabel{thanks}
+
+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}
+\seclabel{legal}
+
+{\KOMAScript} steht unter der {\LaTeX} Project Public Licence. Eine nicht
+offizielle deutsche Übersetzung ist Bestandteil des \KOMAScript-Pakets. In
+allen Zweifelsfällen gilt im deutschsprachigen Raum der Text
+\File{lppl-de.txt}, während in allen anderen Ländern der Text \File{lppl.txt}
+anzuwenden ist.
+
+\iffree{Für die Korrektheit der Anleitung, Teile der Anleitung oder einer
+ anderen in diesem Paket enthaltenen Dokumentation wird keine Gewähr
+ übernommen.}%
+{Diese gedruckte Ausgabe der Anleitung ist davon und von den in den Dateien
+ \File{lppl.txt} und \File{lppl-de.txt} des \KOMAScript-Pakets
+ festgeschriebenden rechtlichen Bedingungen ausdrücklich ausgenommen.}
+}{}
+
+\section{Installation}
+\seclabel{installation}
+
+Die drei wichtigsten \TeX-Distributionen, Mac\TeX, MiK\TeX{} und \TeX~Live,
+stellen \KOMAScript{} über ihre jeweiligen Paketverwaltungen bereit. Es wird
+empfohlen, die Installation und Aktualisierung von \KOMAScript{} darüber
+vorzunehmen. Die manuelle Installation von {\KOMAScript} ohne Verwendung der
+jeweiligen Paketverwaltung wird in der Datei \File{INSTALLD.txt}, die
+Bestandteil jeder \KOMAScript-Verteilung ist, beschrieben. Beachten Sie dazu
+auch die jeweilige Dokumentation zur installierten \TeX-Distribution.
+
+Daneben gibt es auf \cite{homepage} seit einiger Zeit Installationspakete von
+Zwischenversionen von \KOMAScript{} für die wichtigsten Distributionen. Für
+deren Installation ist die dortige Anleitung zu beachten.
+
+
+\section{Fehlermeldungen, Fragen, Probleme}
+\seclabel{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.%
+}{%
+ 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 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}
+\seclabel{moreinfos}
+
+Sobald Sie im Umgang mit \KOMAScript{} geübt sind, werden Sie sich
+möglicherweise Beispiele zu schwierigeren Aufgaben wünschen. Solche Beispiele
+gehen über die Vermittlung von Grundwissen hinaus und sind daher\iffree{}{
+ außer im Angang} nicht Bestandteil dieser Anleitung. Auf den Internetseiten
+des \KOMAScript{} Documentation Projects \cite{homepage} finden Sie jedoch
+weiterführende Beispiele. Diese sind für fortgeschrittene \LaTeX-Anwender
+konzipiert. Für Anfänger sind sie wenig oder nicht geeignet.
+}{}
+
+\endinput
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide.tex"
+%%% End:
+
+% LocalWords: Installationspakete Zwischenversionen Wiedereinsteigern
+% LocalWords: Kompatibilitätsmodus
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/linkalias.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/linkalias.tex
new file mode 120000
index 0000000000..dd3b49476e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/linkalias.tex
@@ -0,0 +1 @@
+../linkalias.tex \ No newline at end of file
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/preface.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/preface.tex
new file mode 100644
index 0000000000..8143c645f8
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/preface.tex
@@ -0,0 +1,124 @@
+% ======================================================================
+% preface.tex
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% preface.tex
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ======================================================================
+
+\KOMAProvidesFile{typearea.tex}
+ [$Date: 2018-03-12 09:45:33 +0100 (Mon, 12 Mar 2018) $
+ Vorwort zu Version 3.25]
+
+\addchap{Vorwort zu \KOMAScript~3.25}
+
+Die Anleitung zu \KOMAScript~3.25 profitiert wieder einmal davon, dass nahezu
+zeitgleich mit dieser Version auch eine überarbeitete Neuauflage der
+Print-Ausgabe \cite{book:komascript} und der eBook-Ausgabe
+\cite{ebook:komascript} erscheinen wird. Das führte zu vielen Verbesserungen,
+die sich auch auf die freie Anleitung auswirken.
+
+Eine dieser Verbesserungen ist die Verlinkung von Befehlen, Umgebungen,
+Optionen etc. jeweils auf die entsprechende Erklärung innerhalb dieser
+Anleitung. Um innerhalb der Erklärung selbst nicht dazu verleitet zu werden,
+erneut an den Anfang der Erklärung zu springen, und so quasi Leserekursionen
+zu vermeiden, wurde die Verlinkung allerdings nur dann durchgeführt, wenn sie
+tatsächlich von der aktuellen Stelle weg führt.
+
+Viele der Verbesserungen gehen auch auf die fleißigen, freiwilligen
+Korrekturleser zurück. Ihnen sei an dieser Stelle ausdrücklich gedankt.
+
+\iffree{Leser dieser freien Bildschirm-Version müssen allerdings weiterhin mit
+ gewissen Einschränkungen leben. So sind einige Informationen --
+ hauptsächliche solche für fortgeschrittene Anwender oder die dazu geeignet
+ sind, aus einem Anwender einen fortgeschrittenen Anwender zu machen -- der
+ Buchfassung vorbehalten. Das führt auch dazu, dass weiterhin einige Links in
+ dieser Anleitung lediglich zu einer Seite führen, auf der genau diese
+ Tatsache erwähnt ist. Darüber hinaus ist die freie Version nur eingeschränkt
+ zum Ausdruck geeignet. Der Fokus liegt vielmehr auf der Verwendung am
+ Bildschirm parallel zur Arbeit an einem Dokument. Sie hat auch weiterhin
+ keinen optimierten Umbruch, sondern ist quasi ein erster Entwurf, bei dem
+ sowohl der Absatz- als auch der Seitenumbruch in einigen Fällen durchaus
+ dürftig ist. Entsprechende Optimierungen sind den Buchausgaben
+ vorbehalten.}{}
+
+Nicht nur zur Anleitung erfahre ich inzwischen eher wenig Kritik. Auch zu den
+Klassen und Paketen gibt es kaum noch Nachfragen nach neuen Möglichkeiten. Für
+mich selbst bedeutet das, dass das Wissen um die Wünsche der Anwender
+stagniert. Schon seit einigen Jahren habe ich daher hauptsächlich Dinge
+implementiert, von denen ich annahm, dass sie nützlich sein könnten. Die
+Rückmeldungen, die ich zu diesen neuen Möglichkeiten erhalten habe,
+beschränken sich aber überwiegend auf Kritik daran, dass uralte \emph{Hacks},
+die sich auf undokumentierte Eigenschaften von \KOMAScript{} stützen, in
+einigen Fällen nicht mehr funktionieren. Freude darüber, dass derart unsaubere
+Notlösungen nicht mehr notwendig sind, wurde hingegen kaum geäußert. Daher
+habe ich beschlossen, Erweiterungen und Verbesserungen an \KOMAScript{} mehr
+und mehr auf solche Dinge zu beschränken, die von Anwendern explizit
+nachgefragt werden. Oder sollte es gar sein, dass \KOMAScript{} nach bald
+25~Jahren schlicht einen Stand erreicht hat, in dem es alle Wünsche erfüllt?
+
+Die rückläufige Entwicklung bei Fehlermeldungen ist leider ebenfalls nicht nur
+erfreulich. Inzwischen ist häufig zu beobachten, dass diejenigen, die ein
+Problem entdecken, dieses nicht mehr unmittelbar an mich melden, sondern sich
+lediglich in irgendwelchen Internet-Foren darüber auslassen. Oftmals finden
+sich in diesen Foren dann mehr oder weniger geschickte Notlösungen. Das ist
+zwar grundsätzlich erfreulich, führt aber leider in der Regel dazu, dass das
+Problem nie gemeldet und daher auch nie wirklich beseitigt wird. Dass solche
+Notlösungen irgendwann selbst zu einem Problem werden können, versteht sich
+von selbst und wurde bereits im vorherigen Absatz erwähnt.
+
+Vereinzelt finden sich dankenswerter Weise Dritte, die mich auf solche Themen
+hinweisen. Dies betrifft aber nur einzelne Beiträge in sehr wenigen Foren. Ein
+direkter Kontakt zu demjenigen, bei dem das Problem aufgetreten ist, ist dann
+meist nicht möglich, obwohl er teilweise wünschenswert wäre.
+
+Daher sei noch einmal ausdrücklich darum gebeten, mir vermeintliche Bugs
+wahlweise in Deutsch oder Englisch unmittelbar zu melden. Dabei ist
+sprachliche Perfektion weniger wichtig. Die Meldung sollte halbwegs
+verständlich und das Problem nachvollziehbar sein. Ein möglichst kurzes
+Code-Beispiel ist in der Regel unabhängig von der darin verwendeten Sprache zu
+verstehen. Im direkten Kontakt sind mir bei Bedarf auch Rückfragen
+möglich. Bitte verlassen Sie sich nicht darauf, dass irgendwer das Problem
+schon irgendwann melden wird. Gehen Sie davon aus, dass es nur behoben wird,
+wenn Sie es selbst melden. Näheres zu Fehlermeldungen ist im ersten Kapitel
+\iffree{der Anleitung}{des Buches} zu finden.
+
+\bigskip\noindent
+Markus Kohm, Neckarhausen bei Regen im März 2018
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide.tex"
+%%% End:
+
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scraddr.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scraddr.tex
new file mode 100644
index 0000000000..9b74b665e6
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scraddr.tex
@@ -0,0 +1,282 @@
+% ======================================================================
+% scraddr.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 scraddr of the KOMA-Script guide
+% Maintained by Jens-Uwe Morawski (with help from Markus Kohm)
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel über scraddr in der KOMA-Script-Anleitung
+% Verwaltet von Jens-Uwe Morawski (mit Unterstützung von Markus Kohm)
+%
+% ======================================================================
+
+\KOMAProvidesFile{scraddr.tex}
+ [$Date: 2018-02-05 10:50:56 +0100 (Mon, 05 Feb 2018) $
+ KOMA-Script guide (chapter: scraddr)]
+
+\chapter{Adressdateien mit \Package{scraddr} erschließen}%
+\labelbase{scraddr}%
+\BeginIndexGroup
+\BeginIndex{Package}{scraddr}
+
+Das Paket \Package{scraddr} ist eine kleine Beigabe zur Briefklasse und zum
+Briefpaket von \KOMAScript. Ziel ist, die Benutzung von Adressdateien zu
+vereinfachen und ihre Anwendung flexibler zu gestalten.
+
+\section{Befehle}
+\seclabel{overview}
+
+Im Grunde stellt das Paket nur einen Lademechanismus für Adressdateien bereit,
+die aus \DescRef{\LabelBase.cmd.adrentry}- und neueren
+\DescRef{\LabelBase.cmd.addrentry}-Einträgen bestehen, wie sie in
+\autoref{cha:scrlttr2} ab \DescPageRef{scrlttr2.cmd.adrentry} beschrieben
+sind.
+
+
+\begin{Declaration}
+\Macro{InputAddressFile}\Parameter{Dateiname}
+\end{Declaration}%
+Der Befehl \Macro{InputAddressFile} ist der zentrale Ladebefehl
+von \Package{scraddr}.
+Er erwartet als obligatorisches Argument den
+Namen der einzulesenden Adressdatei.\Index{Adressdatei}
+Wird diese Datei nicht gefunden, wird ein Fehler ausgegeben.
+
+Für jeden Eintrag dieser Adressdatei wird eine Reihe von Makros generiert,
+die es ermöglichen, auf die Daten der Adressdatei zuzugreifen. Es soll an
+dieser Stelle nicht verschwiegen werden, dass dies bei großen Adressdateien
+sehr viel \TeX-Speicher kostet.
+%
+\EndIndexGroup
+
+\begin{Declaration}%
+ \Macro{adrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}
+ \Parameter{Tel.}\Parameter{F1}\Parameter{F2}
+ \Parameter{Kommentar}\Parameter{Kürzel}
+ \Macro{addrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}
+ \Parameter{Tel.}\Parameter{F1}\Parameter{F2}
+ \Parameter{F3}\Parameter{F4}
+ \Parameter{Kürzel}
+ \Macro{adrchar}\Parameter{Anfangsbuchstaben}
+ \Macro{addrchar}\Parameter{Anfangsbuchstaben}
+\end{Declaration}%
+Der Aufbau der Adresseinträge in der Adressdatei wurde in
+\autoref{sec:scrlttr2.addressFile} ab
+\DescPageRef{scrlttr2.cmd.adrentry} ausführlich besprochen. Die
+ebenfalls dort erwähnte Unterteilung der Adressdatei mit Hilfe von
+\Macro{adrchar} oder \Macro{addrchar} hat für \Package{scraddr} keine
+Bedeutung und wird vom Paket ignoriert.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{Name}\Parameter{Kürzel}
+ \Macro{FirstName}\Parameter{Kürzel}
+ \Macro{LastName}\Parameter{Kürzel}
+ \Macro{Address}\Parameter{Kürzel}
+ \Macro{Telephone}\Parameter{Kürzel}
+ \Macro{FreeI}\Parameter{Kürzel}
+ \Macro{FreeII}\Parameter{Kürzel}
+ \Macro{Comment}\Parameter{Kürzel}
+ \Macro{FreeIII}\Parameter{Kürzel}
+ \Macro{FreeIV}\Parameter{Kürzel}
+\end{Declaration}%
+Die englischen Namen der Zugriffsbefehle folgen den Bezeichnungen der
+Argumente von \DescRef{\LabelBase.cmd.adrentry} und
+\DescRef{\LabelBase.cmd.addrentry}. Die Auswahl des Adresseintrags erfolgt
+anhand des Kürzels im letzten Argument eines Eintrags, das heißt Argument
+Nummer 8 für \DescRef{\LabelBase.cmd.adrentry}-Einträge beziehungsweise
+Argument Nummer 9 für \DescRef{\LabelBase.cmd.addrentry}-Einträge. Das
+bedeutet auch, dass dieses Argument nicht leer sein darf. Um eine sichere
+Funktionsweise zu garantieren, empfiehlt es sich, das Kürzel nur als Folge von
+Buchstaben aufzubauen, wobei jedoch keine Umlaute benutzt werden dürfen.
+
+Weiterhin ist zu beachten, dass bei mehrmaligem Auf"|treten
+eines Kürzels in den Einträgen die Angaben beim
+letzten Auf"|treten die gültigen sind.%
+%
+\EndIndexGroup
+
+
+\section{Anwendung}\seclabel{usage}
+
+\BeginIndexGroup
+\BeginIndex[indexother]{Cmd}{addrentry}%
+\BeginIndex[indexother]{Cmd}{adrentry}%
+Um das Paket benutzen zu können, ist eine gültige
+Adressdatei zu erstellen.
+Diese, hier \File{lotr.adr} genannt, könnte beispielsweise
+folgendermaßen aussehen:
+\begin{lstcode}
+ \addrentry{Beutlin}{Frodo}%
+ {Der Bühl\\ Beutelsend/Hobbingen im Auenland}{}%
+ {Bilbo Beutlin}{Rauchen von Pfeifenkraut}%
+ {der Ringträger}{Bilbos Erbe}{FRODO}
+ \adrentry{Gamdschie}{Samweis}%
+ {Beutelhaldenweg 3\\Hobbingen im Auenland}{}%
+ {Rosie Kattun}{Knullen}%
+ {des Ringträgers treuester Gefährte}{SAM}
+ \adrentry{Bombadil}{Tom}%
+ {Im Alten Wald}{}%
+ {Goldbeere}{trällern von Nonsensliedern}%
+ {Meister von Wald, Wasser und Berg}{TOM}
+\end{lstcode}
+
+Das vierte Argument, die Telefonnummer, wurde hier leer gelassen,
+da es in Auenland keine Telefone gibt. Wie zu sehen ist, sind also auch leere
+Angaben möglich. Dagegen ist es nicht erlaubt, ein Argument einfach komplett
+weg zu lassen.
+
+\BeginIndexGroup
+\BeginIndex[indexother]{Cmd}{InputAddressFile}
+Mit dem oben beschriebenen Ladebefehl lesen wir die Adressdatei
+in unser Briefdokument ein:
+\begin{lstcode}
+ \InputAddressFile{lotr}
+\end{lstcode}
+\EndIndexGroup
+
+\BeginIndexGroup
+\BeginIndex[indexother]{Cmd}{Name}%
+\BeginIndex[indexother]{Cmd}{Address}%
+\BeginIndex[indexother]{Cmd}{FirstName}%
+\BeginIndex[indexother]{Cmd}{LastName}%
+\BeginIndex[indexother]{Cmd}{FreeI}%
+\BeginIndex[indexother]{Cmd}{FreeII}%
+\BeginIndex[indexother]{Cmd}{FreeIII}%
+\BeginIndex[indexother]{Cmd}{FreeIV}%
+\BeginIndex[indexother]{Cmd}{Comment}%
+Mit Hilfe der vorgestellten Makros können wir dann einen Brief
+an den alten \textsc{Tom Bombadil} schreiben, in dem wir ihn
+fragen, ob er sich noch an zwei Gefährten aus alter Zeit
+erinnern kann.
+\begin{lstcode}
+ \begin{letter}{\Name{TOM}\\\Address{TOM}}
+ \opening{Lieber \FirstName{TOM} \LastName{TOM},}
+
+ oder \FreeIII{TOM}, wie Dich Deine geliebte \FreeI{TOM}
+ nennt. Kannst Du Dich noch an einen Herrn
+ \LastName{FRODO}, genauer gesagt \Name{FRODO}, denn es gab
+ ja auch noch den Herrn \FreeI{FRODO}, erinnern. Er war
+ \Comment{FRODO} im dritten Zeitalter und \FreeIV{FRODO}.
+ Begleitet wurde er von \Name{SAM}, \Comment{SAM}.
+
+ Beider Vorlieben waren sehr weltlich. Der
+ \FirstName{FRODO} genoss das \FreeII{FRODO}, sein Gefährte
+ schätzte eine gute Mahlzeit mit \FreeII{SAM}.
+
+ Weißt du noch? Mithrandir hat Dir bestimmt viel von ihnen
+ erzählt.
+ \closing{"`O Frühling und Sommerzeit
+ und danach wieder Frühling!\\
+ O Wind auf dem Wasserfall
+ und Lachen des Laubes!"'}
+ \end{letter}
+\end{lstcode}
+Die in diesem Beispiel in \DescRef{scrlttr2.cmd.opening} verwendete
+Zusammensetzung aus \Macro{FirstName}\Parameter{Kürzel} und
+\Macro{LastName}\Parameter{Kürzel} kann auch direkt mittels
+\Macro{Name}\Parameter{Kürzel} erhalten werden.
+
+Das fünf"|te und sechste Argument von \DescRef{\LabelBase.cmd.adrentry} und
+\DescRef{\LabelBase.cmd.addrentry} steht zur freien Verfügung. Mit den Makros
+\Macro{FreeI} und \Macro{FreeII} kann auf diese Inhalte zugegriffen werden. Im
+vorliegenden Fall wurde das fünf"|te Argument für die Person benutzt, die der
+Person des Eintrags am nächsten steht. Das sechste Argument enthält im
+Beispiel die besondere Vorliebe der jeweiligen Person. Das siebente Argument
+ist ebenfalls ein freier Eintrag. Der Zugriff erfolgt per \Macro{Comment} oder
+\Macro{FreeIII}. Der Zugriff auf das vierte freie Argument mittels
+\Macro{FreeIV} ist nur für \DescRef{\LabelBase.cmd.addrentry}-Einträge gültig.
+Bei \DescRef{\LabelBase.cmd.adrentry}-Einträgen ist seine Verwendung nicht
+zulässig. Näheres hierzu findet sich im nächsten Abschnitt.
+%
+\EndIndexGroup
+\EndIndexGroup
+
+
+\section{Paketoptionen für Warnungen}
+
+Wie im vorherigen Abschnitt erwähnt, ist die Benutzung des Zugriffsbefehls
+\Macro{FreeIV} bei \DescRef{\LabelBase.cmd.adrentry}-Einträgen nicht
+zulässig. Wie \Package{scraddr} darauf reagiert, ist allerdings durch
+Paketoptionen konfigurierbar. Bitte beachten Sie\textnote{Achtung!}, dass
+dieses Paket die erweiterte Optionenschnittstelle mit
+\DescRef{maincls.cmd.KOMAoptions} und \DescRef{maincls.cmd.KOMAoption} nicht
+unterstützt. Die Optionen sind also entweder als globale Optionen bei
+\DescRef{maincls.cmd.documentclass} oder als lokale Optionen bei
+\DescRef{maincls.cmd.usepackage} anzugeben.
+
+
+\begin{Declaration}
+\Option{adrFreeIVempty}
+\Option{adrFreeIVshow}
+\Option{adrFreeIVwarn}
+\Option{adrFreeIVstop}
+\end{Declaration}
+Diese vier Optionen erlauben die Auswahl aus vier verschiedenen Reaktionen
+zwischen \emph{Ignorieren} bis \emph{Abbruch} falls bei einem
+\DescRef{\LabelBase.cmd.adrentry}-Eintrag der Zugriffsbefehl \Macro{FreeIV}
+verwendet wird:
+%
+\begin{labeling}[~--]{\Option{adrFreeIVempty}}
+\item[\Option{adrFreeIVempty}]
+ Der Befehl \Macro{FreeIV} wird einfach ignoriert.
+\item[\Option{adrFreeIVshow}]
+ Es wird die Warnung: »(entry FreeIV undefined at \PName{Kürzel})«,
+ in den Text geschrieben.
+\item[\Option{adrFreeIVwarn}]
+ In der Log-Datei erscheint eine Warnung.
+\item[\Option{adrFreeIVstop}]
+ Der \LaTeX{}-Lauf wird mit einer Fehlermeldung unterbrochen.
+\end{labeling}
+Wird für das Paket keine Option angegeben, so ist \Option{adrFreeIVshow}
+voreingestellt.%
+\EndIndexGroup
+%
+\EndIndexGroup
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide"
+%%% End:
+
+% LocalWords: Zugriffsbefehle Briefpaket Briefklasse Adresseintrags
+% LocalWords: Ladebefehl Auenland
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrbase.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrbase.tex
new file mode 100644
index 0000000000..f6fb67659e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrbase.tex
@@ -0,0 +1,1937 @@
+% ======================================================================
+% scrbase.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrbase.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% Package scrbase for Package and Class Authors
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Paket scrbase für Paket- und Klassenautoren
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{scrbase.tex}
+ [$Date: 2018-08-27 08:53:35 +0200 (Mon, 27 Aug 2018) $
+ KOMA-Script package scrbase]
+
+\chapter{Grundlegende Funktionen im Paket \Package{scrbase}}
+\labelbase{scrbase}
+\BeginIndexGroup
+\BeginIndex{Package}{scrbase}%
+
+Das Paket \Package{scrbase} stellt einige grundlegende Funktionen bereit, die
+sich an Autoren von Paketen und Klassen richten. Dabei kann es nicht nur für
+Wrapper-Klassen genutzt werden, die ihrerseits eine \KOMAScript-Klasse
+laden. Auch Autoren von Klassen, die ansonsten nichts mit \KOMAScript{} zu tun
+haben, können von der Funktionalität von \Package{scrbase} profitieren.
+
+\section{Laden des Pakets}
+\seclabel{loadit}
+
+Während Anwender ein Paket mit Hilfe von \Macro{usepackage} laden, verwenden
+Paket- und Klassenautoren
+\Macro{RequirePackage}\IndexCmd{RequirePackage}. Autoren von Wrapper-Paketen
+nutzen auch
+\Macro{RequirePackageWithOptions}\IndexCmd{RequirePackageWithOptions}. Bei
+Verwendung von \Macro{RequirePackage} können wie bei
+\Macro{usepackage}\IndexCmd{usepackage} Optionen angegeben
+werden. Demgegenüber erhält das Paket bei \Macro{RequirePackageWithOptions}
+alle Optionen, mit denen zuvor das Wrapper-Paket geladen wurde. Näheres zu
+diesen Anweisungen ist \cite{latex:clsguide} zu entnehmen.
+
+Das Paket \Package{scrbase} benötigt intern die Funktionalität des Pakets
+\Package{keyval}\IndexPackage{keyval}\important{\Package{keyval}}. Diese kann
+auch vom Paket \Package{xkeyval} zur Verfügung gestellt werden. Bei Bedarf
+lädt \Package{scrbase} selbst \Package{keyval}.
+
+Das Paket \Package{keyval} erlaubt es, Schlüssel zu definieren und diesen
+Werten zuzuweisen. Auch die Optionen, die \Package{scrbase} bereitstellt,
+verwenden die \Package{keyval}-Syntax: \OptionVName{\PName{Schlüssel}}{Wert}%
+\important{\OptionVName{\PName{Schlüssel}}{Wert}}.
+
+
+\section{Schlüssel als Eigenschaften von Familien und deren Mitgliedern}
+\seclabel{keyvalue}
+
+Wie bereits in \autoref{sec:scrbase.loadit} erwähnt, setzt \Package{scrbase}
+bei Schlüsseln und deren Werten auf das Paket \Package{keyval}. Allerdings
+erweitert es dessen Funktionalität. Während bei \Package{keyval} ein Schlüssel
+einer Familie gehört, kennt \Package{scrbase} zu jeder Familie auch noch
+Familienmitglieder. Ein Schlüssel kann dann sowohl einer Familie als auch
+einem oder mehreren Familienmitgliedern gehören. Außerdem kann ein Wert einem
+Schlüssel eines Familienmitglieds, einem Schlüssel einer Familie oder einem
+Schlüssel aller Familienmitglieder zugewiesen werden.
+
+\begin{Declaration}
+ \Macro{DefineFamily}\Parameter{Familienname}
+ \Macro{DefineFamilyMember}\OParameter{Mitglied}\Parameter{Familienname}
+\end{Declaration}
+\Package{scrbase} muss aus verschiedenen Gründen die Mitglieder einer Familie
+kennen. Daher ist es notwendig, eine neue Familie zunächst mit
+\Macro{DefineFamily} zu definieren und so eine leere Mitgliederliste zu
+erzeugen. Ist die Familie bereits definiert, so geschieht schlicht nichts. Es
+wird also auch nicht eine bereits existierende Mitgliederliste überschrieben.
+
+Ein neues Mitglied wird der Familie dann mit der Anweisung
+\Macro{DefineFamilyMember} bekannt gegeben. Existiert die Familie nicht, so
+führt dies zu einer Fehlermeldung. Existiert das Mitglied bereits, so
+geschieht nichts. Wird kein Mitglied angegeben, so bleibt das Mitglied nicht
+etwa leer, sondern es wird
+»\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}« angenommen. Während
+des Ladens einer Klasse oder eines Pakets sind \Macro{@currname} und
+\Macro{@currext} zusammen der Dateiname.
+
+Theoretisch wäre es möglich, mit einem leeren optionalen Argument
+\PName{Mitglied} auch ein Mitglied ohne Name zu definieren. Dies würde jedoch
+der Familie selbst entsprechen. Es wird empfohlen, als \PName{Familienname} nur
+Buchstaben und Ziffern zu verwenden und das \PName{Mitglied} immer mit einem
+anderen Zeichen, vorzugsweise einem Punkt, zu beginnen. Anderenfalls könnte
+es passieren, dass sich Mitglieder einer Familie mit Mitgliedern anderer
+Familien überdecken.
+
+\Package{scrbase} definiert selbst bereits die Familie »\PValue{KOMA}« und
+fügt ihr das Mitglied »\PValue{.scrbase.sty}« hinzu. Grundsätzlich sind die
+Familien »\PValue{KOMA}« und »\PValue{KOMAarg}« \KOMAScript{} vorbehalten. Es
+wird empfohlen, für eigene Pakete den Namen des Gesamtpakets als Familie und
+den Namen einzelner Pakete im Gesamtpaket als Mitglied zu verwenden.
+%
+\begin{Example}
+ Angenommen, Sie schreiben ein neues Gesamtpaket »Fleischermeister«. Darin
+ befinden sich die Pakete \File{Salami.sty}, \File{Mettwurst.sty} und
+ \File{Krakauer.sty}. Daher entscheiden Sie sich für den Familienname
+ »\PValue{Fleischermeister}« und fügen in jedem der Pakete die Zeilen
+% Umbruchoptimierung: listings
+\begin{lstcode}[aboveskip=0pt plus \dp\strutbox]
+ \DefineFamily{Fleischermeister}
+ \DefineFamilyMember{Fleischermeister}
+\end{lstcode}
+ ein. Dadurch wird beim Laden der drei genannten Pakete der Familie
+ »\PValue{Fleischermeister}« je nach Paket eines der drei Mitglieder
+ »\PValue{.Salami.sty}«, »\PValue{.Mettwurst.sty}« und
+ »\PValue{.Krakauer.sty}« zugefügt. Am Ende sind dann alle drei Mitglieder
+ definiert.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DefineFamilyKey}\OParameter{Mitglied}\Parameter{Familie}%
+ \Parameter{Schlüssel}
+ \OParameter{Säumniswert}\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
+dieses Mitglieds der angegebenen \PName{Familie}. Ist\textnote{Hinweis}
+\OParameter{Mitglied} nicht angegeben, so wird wieder das Mitglied
+»\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}« angenommen. Ist das
+\PName{Mitglied} hingegen leer, so wird ein Familienschlüssel anstelle eines
+Mitgliederschlüssels definiert.
+
+Wird später dem \PName{Schlüssel} ein Wert zugewiesen, so wird \PName{Aktion}
+ausgeführt, wobei der Wert als Parameter übergeben wird. Innerhalb von
+\PName{Aktion} steht also »\lstinline{#1}« für den übergebenen Wert. Wurde
+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
+\begin{lstcode}[escapeinside=»«]
+ \DefineFamilyKey[»\PName{Mitglied}«]{»\PName{Familie}«}{»\PName{Schlüssel}«}
+ [»\PName{Säumniswert}«]{»\PName{Aktion}«}
+\end{lstcode}
+ zu dem Aufruf
+\begin{lstcode}[moretexcs={define@key},escapeinside=»«]
+ \define@key{»\PName{Familie\,Mitglied}«}{»\PName{Schlüssel}«}
+ [»\PName{Säumniswert}«]{»\PName{erweiterte Aktion}«}
+\end{lstcode}
+ wobei \Macro{define@key} im \Package{keyval}-Paket\IndexPackage{keyval}
+ 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} %\important{\Macro{FamilyKeyState}} % einige davon sind
+ % schlicht zu breit!
+an \Package{scrbase} zurückgemeldet, damit dieses je nach Bedarf und
+Verwendung des Schlüssels weitere Maßnahmen ergreifen kann. Dies kann
+beispielsweise eine Fehlermeldung aber auch nur die Signalisierung einer
+unbekannten Option sein.
+
+Der Zustand \Macro{FamilyKeyState} ist in der Voreinstellung identisch mit dem
+Zustand \Macro{FamilyKeyStateUnknown}. Das bedeutet, dass es nicht sicher ist,
+ob der Schlüssel 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} %\important{\Macro{FamilyKeyStateProcessed}}
+signalisiert, dass der Schlüssel und die Wertzuweisung an den Schlüssel
+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} %\important{\Macro{FamilyKeyStateUnknownValue}}
+signalisiert, dass der Schlüssel zwar verarbeitet wurde, ihm jedoch ein Wert
+zugewiesen werden sollte, der nicht erlaubt ist. Diesen Zustand meldet
+beispielsweise \hyperref[cha:typearea]{\Package{typearea}}, wenn versucht
+wird, an Option \DescRef{typearea.option.twoside} den Wert \PValue{unbekannt}
+zuzuweisen. Die Umschaltung auf den Zustand erfolgt einfach durch Aufruf von
+\Macro{FamilyKeyStateUnknownValue} selbst.
+
+Der Zustand
+\Macro{FamilyKeyStateNeedValue} %\important{\Macro{FamilyKeyStateNeedValue}}
+signalisiert, dass der Schlüssel nicht verarbeitet werden konnte, weil er
+zwingend einen Wert erwartet, er aber ohne Wertzuweisung aufgerufen
+wurde. Dieser Zustand wird automatisch gesetzt, wenn ein Schlüssel, der 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.
+
+Des Weiteren 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
+ jedem der Pakete entsprechend dem Aufrufwert ein Schalter gesetzt
+ werden. Für das Paket \Package{Salami} könnte das beispielsweise so
+ aussehen:
+\begin{lstcode}
+ \newif\if@Salami@Aufschnitt
+ \DefineFamilyKey{Fleischermeister}%
+ {Aufschnitt}[true]{%
+ \expandafter\let
+ \expandafter\if@Salami@Aufschnitt
+ \csname if#1\endcsname
+ \FamilyKeyStateProcessed
+ }
+\end{lstcode}
+ Als Wert ist daher beim Aufruf \PValue{true} oder \PValue{false}
+ erlaubt. Ein Test auf unerlaubte Werte existiert in diesem Beispiel
+ nicht. Stattdessen wird immer zurückgemeldet, dass der Schlüssel vollständig
+ und korrekt verarbeitet wurde. 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 kommt der Säumniswert
+ \PName{true} zum Einsatz.
+
+ Für die anderen beiden Pakete kann das fast identisch definiert
+ werden. Lediglich die Zeichenfolge »\texttt{Salami}« ist jeweils zu
+ ersetzen.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{RelaxFamilyKey}\OParameter{Mitglied}\Parameter{Familie}
+ \Parameter{Schlüssel}
+\end{Declaration}
+Wurde\ChangedAt{v3.15}{\Package{scrbase}} \PName{Schlüssel} zuvor als
+\PName{Mitglied} der \PName{Familie} definiert, so wird diese Definition
+quasi aufgehoben. Der \PName{Schlüssel} ist dann für dieses \PName{Mitglied}
+der \PName{Familie} nicht mehr definiert. Die Verwendung für einen
+\PName{Schlüssel}, der für dieses \PName{Mitglied} der \PName{Familie} gar
+nicht definiert ist, ist ebenfalls zulässig.
+
+Ist kein \PName{Mitglied} angegeben, so wird genau wie bei Anweisung
+\DescRef{\LabelBase.cmd.DefineFamilyKey} wieder das Mitglied
+»\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}« angenommen. Allerdings
+wird \Macro{RelaxFamilyKey} selten während des Ladens eines Pakets,
+sondern häufiger zur Laufzeit verwendet. Daher ist \PName{Mitglied} in der
+Regel auch explizit anzugeben.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyProcessOptions}\OParameter{Mitglied}\Parameter{Familie}
+\end{Declaration}
+Grundsätzlich ist die Erweiterung der Schlüssel von Familien auf Familien und
+Familienmitglieder dazu gedacht, dass Schlüssel beziehungsweise die
+Wertzuweisung an Schlüssel als ganz normale Klassen- oder Paketoptionen
+verwendet werden können. Diese Anweisung stellt daher eine Erweiterung von
+\Macro{ProcessOptions*}\IndexCmd{ProcessOptions*}%
+\important{\Macro{ProcessOption*}} aus dem \LaTeX-Kern dar (siehe
+\cite{latex:clsguide}). Dabei verarbeitet die Anweisung nicht nur Optionen,
+die mit \Macro{DeclareOption}\IndexCmd{DeclareOption}%
+\important{\Macro{DeclareOption}} definiert wurden. Es werden auch alle
+Schlüssel eines angegebenen Familienmitglieds abgearbeitet. Wird das optionale
+Argument \PName{Mitglied} nicht angegeben, so wird wieder das Mitglied
+»\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}« verwendet.
+
+Eine Besonderheit sind Schlüssel, die nicht einem Familienmitglied, sondern
+der Familie selbst zugeordnet sind, bei der also das Mitglied leer geblieben
+ist. Diese werden ebenfalls gesetzt und zwar noch bevor der Schlüssel des
+Mitglieds gesetzt wird.
+\begin{Example}
+ Wenn in den Paketen aus den zurückliegenden Beispielen nach der Definition
+ der Schlüssel die Zeile
+\begin{lstcode}
+ \FamilyProcessOptions{Fleischermeister}
+\end{lstcode}
+ ergänzt wird, so kann der Anwender bereits beim Laden der Pakete mit
+ \Macro{usepackage} die Eigenschaft \Option{Aufschnitt} als Option
+ angeben. Wird die Option global, also bei \Macro{documentclass}, angegeben,
+ so wird die Eigenschaft automatisch bei allen drei Paketen gesetzt, wenn
+ alle drei Pakete einzeln geladen werden.
+\end{Example}
+Es\textnote{Achtung!} wird darauf hingewiesen, dass bei Paketen globale
+Optionen vor den lokal dem Paket zugewiesenen Optionen ausgeführt
+werden. Während bei der Abarbeitung der globalen Optionen unbekannte Werte für
+Optionen dazu führen, dass darüber lediglich in der \File{log}-Datei
+informiert und die Option ansonsten ignoriert wird, führt dies bei lokalen
+Optionen zu einer Fehlermeldung.
+
+Man kann \Macro{FamilyProcessOptions} wahlweise als Erweiterung von
+\Macro{ProcessOption*} oder als Erweiterung des
+\PName{Schlüssel=Wert}-Mechanismus von \Package{keyval} verstehen. Letztlich
+werden mit Hilfe von \Macro{FamilyProcessOptions} aus
+\PName{Schlüssel=Wert}-Paaren Optionen.
+
+Wie\textnote{Achtung!} auch \Macro{ProcessOptions} darf
+\Macro{FamilyProcessOptions} nicht während der Ausführung von Optionen
+verwendet werden. Es ist also insbesondere auch nicht erlaubt, innerhalb der
+Ausführung von Optionen Pakete zu laden.%, die selbst
+%\Macro{FamilyProcessOptions} verwenden.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeFamilyProcessOptions}\OParameter{Mitglied}\Parameter{Familie}%
+ \Parameter{Code}%
+\end{Declaration}
+Insbesondere\ChangedAt{v3.18}{\Package{scrbase}} Autoren von Wrapper-Klassen
+wünschen manchmal, in ein Paket oder eine Klasse noch vor der Verarbeitung der
+Optionen eines zukünftig geladenen Pakets oder einer zukünftig geladenen
+Klasse mit \DescRef{\LabelBase.cmd.FamilyProcessOptions} eingreifen zu
+können. Dies ist mit \Macro{BeforeFamilyProcessOptions} möglich. Das Paket
+\Package{scrbase} bietet dafür einen sogenannten Haken\Index{Haken}
+(engl. \emph{hook}). Diesem kann man mit \Macro{BeforeFamilyProcessOptions}
+neuen \PName{Code} hinzufügen. Die Parameter \PName{Mitglied} und
+\PName{Familie} entsprechen dabei denen von
+\Macro{FammilyProcessOptions}. Allerdings kann man auch den Haken von
+Familien-Mitgliedern \PName{Code} hinzufügen, wenn bisher die \PName{Familie}
+oder das \PName{Mitglied} noch gar nicht definiert ist.
+
+Der Haken eines Familien-Mitglieds wird übrigens nach dessen Ausführung
+automatisch gelöscht. Verwendet man hingegen ein leeres \PName{Mitglied}, so
+wird dieser Haken\Index{Haken} für alle Mitglieder der \PName{Familie}
+ausgeführt und bleibt auch über die Ausführung hinaus erhalten.
+
+\begin{Example}
+ Sie schreiben ein Paket \Package{Rauchwurst}, das selbst \Package{Mettwurst}
+ lädt. Allerdings wollen Sie nicht, dass für dieses Paket die Option
+ \Option{Aufschnitt} gesetzt werden kann. Daher deaktivieren sie die Option
+ vor dem Laden des Pakets über \Macro{BeforeFamilyProcessOptions}.
+\begin{lstcode}
+ \RequirePackage{scrbase}
+ \BeforeFamilyProcessOptions[.Mettwurst.sty]%
+ {Fleischermeister}{%
+ \RelaxFamilyKey[.Mettwurst.sty]%
+ {Fleischermeister}{Aufschnitt}%
+ }
+ \RequirePackageWithOptions{Mettwurst}
+\end{lstcode}
+ Versucht nun jemand Ihr Paket mit Option
+ \Option{Aufschnitt} zu laden, so meldet das Paket \Package{Mettwurst}, dass
+ diese Option nicht bekannt ist. Wird die Option \Option{Aufschnitt} als
+ globale Option angegeben, so ignoriert Paket \Package{Mettwurst}
+ diese. Voreinstellungen innerhalb des Pakets \Package{Mettwurst}, die
+ beispielsweise mit \DescRef{\LabelBase.cmd.FamilyExecuteOptions} noch vor
+ \DescRef{\LabelBase.cmd.FamilyProcessOptions} erfolgen könnten, wären
+ allerdings davon unabhängig. Aber natürlich kann man eigene
+ Voreinstellungen von \Package{Rauchwurst} aus ebenfalls per
+ \Macro{BeforeFamilyProcessOptions} in \Package{Mettwurst} einschleusen.%
+\end{Example}
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyExecuteOptions}\OParameter{Mitglied}\Parameter{Familie}%
+ \Parameter{Optionenliste}
+\end{Declaration}
+Diese Anweisung stellt eine Erweiterung von
+\Macro{ExecuteOptions} aus dem \LaTeX-Kern dar (siehe
+\cite{latex:clsguide}). Dabei verarbeitet die Anweisung nicht nur Optionen,
+die mit \Macro{DeclareOption} definiert wurden. Es werden auch alle Schlüssel
+eines angegebenen Familienmitglieds abgearbeitet. Wird das optionale Argument
+\PName{Mitglied} nicht angegeben, so wird wieder das Mitglied
+»\texttt{.}\Macro{@currname}\texttt{.}\Macro{@currext}« verwendet.
+
+Eine Besonderheit sind Schlüssel, die nicht einem Familienmitglied, sondern
+der Familie selbst zugeordnet sind, bei der also das Mitglied leer geblieben
+ist. Diese werden ebenfalls gesetzt, und zwar noch bevor der Schlüssel des
+Mitglieds gesetzt wird.
+\begin{Example}
+ Angenommen, die Option \Option{Aufschnitt} soll in den zurückliegenden
+ Beispielen bereits als Voreinstellung gesetzt werden, so müssen die Pakete
+ nur um den Aufruf
+\begin{lstcode}
+ \FamilyExecuteOptions{Fleischermeister}
+ {Aufschnitt}
+\end{lstcode}
+ ergänzt werden.
+\end{Example}
+
+Wird\ChangedAt{v3.20}{\Package{scrbase}} \Macro{FamilyExecuteOptions} mit
+einer nicht definierten Option in der \PName{Optionenliste} aufgerufen, so
+wird normalerweise ein Fehler ausgegeben. Eine Ausnahme von dieser Regel ist,
+wenn für das \PName{Mitglied} eine Option namens
+\Option{@else@}\important{\Option{@else@}} definiert wurde. In diesem Fall
+wird statt der unbekannten Option eben diese Option \Option{@else@}
+verwendet. Innerhalb von \KOMAScript{} wird das beispielsweise genutzt, um
+die Stil-Option bei der Definition von Gliederungsbefehlen vor allen anderen
+auszuwerten.
+
+Diese Anweisung darf auch innerhalb der Ausführung von Optionen verwendet
+werden.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyOptions}\Parameter{Familie}\Parameter{Optionenliste}%
+\end{Declaration}
+Im Gegensatz zu normalen Optionen, die mit \Macro{DeclareOption} definiert
+wurden, können die \PName{Schlüssel} auch noch nach dem Laden der Klasse oder
+des Pakets gesetzt werden. Dazu verwendet der Anwender
+\Macro{FamilyOptions}. Die \PName{Optionenliste} hat dabei die Form:
+%\begin{flushleft}\begin{tabular}{l}
+ \PName{Schlüssel}\texttt{=}\PName{Wert}\texttt{,}\linebreak[1]%
+ \PName{Schlüssel}\texttt{=}\PName{Wert} \dots{}
+%\end{tabular}\vskip\dp\strutbox\end{flushleft}
+wobei für \PName{Schlüssel}, für die ein Säumniswert definiert ist, die
+Wertzuweisung natürlich auch entfallen kann.
+
+Durch die Anweisung werden die \PName{Schlüssel} aller Mitglieder der
+angegebenen \PName{Familie} gesetzt. Existiert ein \PName{Schlüssel} auch als
+Eigenschaft der Familie selbst, so wird dieser Familien-Schlüssel zuerst
+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. Dies geschieht ebenfalls, wenn
+zwar für einige Mitglieder ein Schlüssel existiert, jedoch jedes dieser
+Mitglieder über \DescRef{\LabelBase.cmd.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
+ Wurstpakete zunächst einmal Aufschnitt produzieren:
+\begin{lstcode}
+ \ProvidesPackage{Wurstsalat}%
+ [2008/05/06 nonsense package]
+ \RequirePackage{scrbase}
+ \DefineFamily{Fleischermeister}
+ \DefineFamilyMember{Fleischermeister}
+ \FamilyProcessOptions{Fleischermeister}\relax
+ \FamilyOptions{Fleischermeister}{Aufschnitt}
+\end{lstcode}
+ Sollte noch kein Wurstpaket geladen sein, so würde nun eine Fehlermeldung
+ wegen der nicht definierten Option »\Option{Aufschnitt}« ausgegeben. Das
+ kann vermieden werden, indem vor der letzten Zeile für das Paket selbst
+ ebenfalls ein entsprechender Schlüssel definiert wird:
+\begin{lstcode}
+ \DefineFamilyKey{Fleischermeister}%
+ {Aufschnitt}[true]{}%
+\end{lstcode}
+ Allerdings produzieren so Wurstpakete, die nach Paket
+ \Package{Wurstsalat} geladen werden, keinen Aufschnitt. Dies kann man
+ ebenfalls ändern:
+\begin{lstcode}
+ \AtBeginDocument{%
+ \DefineFamilyKey[.Wurstsalat.sty]%
+ {Fleischermeister}%
+ {Aufschnitt}[true]{}%
+ }
+ \DefineFamilyKey{Fleischermeister}%
+ {Aufschnitt}[true]{%
+ \AtBeginDocument{%
+ \FamilyOptions{Fleischermeister}%
+ {Aufschnitt=#1}%
+ }%
+ }%
+\end{lstcode}
+ Somit wird zunächst während \Macro{begin}\PParameter{document} die Option so
+ definiert, dass sie für das Paket \Package{Wurstsalat} keine Funktion mehr
+ ausübt. Da nach dem Laden von \Package{Wurstsalat}, innerhalb von
+ \Macro{begin}\PParameter{document} die beiden Anweisungen \Macro{@currname}
+ und \Macro{@currext} nicht mehr den Dateinamen des Pakets enthalten, muss
+ zwingend das optionale Argument von \DescRef{\LabelBase.cmd.DefineFamilyKey}
+ verwendet werden.
+
+ Bis zu dieser Umdefinierung der Option wird jedoch eine Definition
+ verwendet, die während \Macro{begin}\PParameter{document} die Option erneut
+ für die Familie und all ihre Mitglieder ausführt und damit auch für andere
+ Wurstpakete setzt. Die Verzögerung der Ausführung von \Macro{FamilyOptions}
+ ist hier entscheidend. Zum einen werden nur so später geladene Wurstpakete
+ erfasst. Zum anderen wird dadurch sichergestellt, dass die eigene Option
+ \Option{Aufschnitt} bereits umdefiniert wurde. Dadurch wird eine endlose
+ Rekursion vermieden.%
+\end{Example}%
+%
+\EndIndexGroup
+\vskip-\ht\strutbox% Umbruchkorrektur wegen Beispiel am Ende
+
+
+\begin{Declaration}
+ \Macro{FamilyOption}\Parameter{Familie}%
+ \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
+wäre es bei Verwendung von \DescRef{\LabelBase.cmd.FamilyOptions} notwendig,
+der Option mehrfach einen Wert zuzuweisen und dabei die Option selbst mehrfach
+anzugeben. Stattdessen kann man einfach mit \Macro{FamilyOption} einer
+einzigen \PName{Option} eine ganze \PName{Werteliste} zuweisen. Die
+\PName{Werteliste} ist dabei eine durch Komma separierte Liste von Werten:
+%\begin{flushleft}\begin{tabular}{l}
+ \PName{Wert}\texttt{,}\PName{Wert} \dots{}
+%\end{tabular}\end{flushleft}
+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 weitere Funktionsweise ist der vorhergehenden Erklärung zu
+\DescRef{\LabelBase.cmd.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
+ Schalter gesetzt.
+\begin{lstcode}
+ \newif\if@salatmit@Zwiebeln
+ \newif\if@salatmit@Gurken
+ \newif\if@salatmit@Peperoni
+ \DefineFamilyKey{Fleischermeister}{SalatZusatz}{%
+ \csname @salatmit@#1true\endcsname
+ }
+\end{lstcode}
+ Es wurden hier die drei Zutaten »Zwiebeln«, »Gurken« und »Peperoni«
+ definiert. Eine Fehlerbehandlung für den Fall, dass der Anwender unbekannte
+ Zutaten fordert, existiert nicht.
+
+ Für einen Salat mit Zwiebeln und Gurken kann der Anwender
+\begin{lstcode}
+ \FamilyOptions{Fleischermeister}{%
+ SalatZusatz=Zwiebeln,SalatZusatz=Gurken}
+\end{lstcode}
+ oder einfach
+\begin{lstcode}
+ \FamilyOption{Fleischermeister}%
+ {SalatZusatz}{Zwiebeln,Gurken}
+\end{lstcode}
+ verwenden.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AtEndOfFamilyOptions}\Parameter{Aktion}%
+ \Macro{AtEndOfFamilyOptions*}\Parameter{Aktion}%
+\end{Declaration}
+Manchmal\ChangedAt{v3.12}{\Package{scrbase}} ist es vorteilhafter, wenn nicht
+jede Wertzuweisung an eine Option unmittelbar eine \PName{Aktion} auslöst,
+sondern dies erst geschieht, wenn alle Wertzuweisungen innerhalb eines Aufrufs
+von
+\DescRef{\LabelBase.cmd.FamilyProcessOptions}\IndexCmd{FamilyProcessOptions}
+oder
+\DescRef{\LabelBase.cmd.FamilyExecuteOptions}\IndexCmd{FamilyExecuteOptions}
+beziehungsweise \DescRef{\LabelBase.cmd.FamilyOptions}\IndexCmd{FamilyOptions}
+oder \DescRef{\LabelBase.cmd.FamilyOption}\IndexCmd{FamilyOptions}
+abgeschlossen sind. Genau das ist mit Hilfe von \Macro{AtEndOfFamilyOptions}
+und dessen Sternvariante\ChangedAt{v3.23}{\Package{scrbase}} 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.
+
+Die beiden Variante unterscheiden sich im Falle von verschachtelt definierten
+Optionen, wenn also die Ausführung einer Option den Aufruf einer oder mehrerer
+anderen Option bedingt. In diesem Fall werden alle per
+\Macro{AtEndOfFamilyOptions} festgelegten Aktionen ausgeführt, sobald der
+innerste Optionenaufruf endet. Dagegen werden die per
+\Macro{AtEndOfFamilyOptions*} festgelegten Aktionen erst mit dem Ende des
+äußersten Optionenaufrufs ausgeführt. Die Reihenfolge\textnote{Achtung!} der
+Aktionen ist dabei jedoch ausdrücklich unbestimmt! Weder ist sichergestellt,
+dass zuerst angeforderte Aktionen auch zuerst ausgeführt werden, noch die
+umgekehrte Reihenfolge.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyBoolKey}\OParameter{Mitglied}\Parameter{Familie}
+ \Parameter{Schlüssel}\Parameter{Schaltername}
+ \Macro{FamilySetBool}\Parameter{Familie}
+ \Parameter{Schlüssel}\Parameter{Schaltername}
+ \Parameter{Wert}
+\end{Declaration}
+In den vorherigen Beispielen wurden schon mehrfach Schalter gesetzt. Im
+Beispiel der Option \Option{Aufschnitt} war es dabei notwendig, dass der
+Anwender als Wert \PValue{true} oder \PValue{false} angibt. Es existierte
+keine Fehlerbehandlung, falls der Anwender einen falschen Wert verwendet. Da
+solche booleschen Schalter ein häufiger Anwendungsfall sind, kann man sie bei
+\Package{scrbase} einfach mit \Macro{FamilyBoolKey} definieren. Dabei sind die
+Argumente \PName{Mitglied}, \PName{Familie} und \PName{Schlüssel} die gleichen
+wie bei \DescRef{\LabelBase.cmd.DefineFamilyKey} (siehe
+\DescPageRef{scrbase.cmd.DefineFamilyKey}). Das Argument \PName{Schaltername}
+ist der Name eines Schalter ohne den Präfix \Macro{if}. Existiert dieser
+Schalter noch nicht, so wird er automatisch definiert und mit \PName{false}
+voreingestellt. Intern verwendet \Macro{FamilyBoolKey} dann
+\Macro{FamilySetBool} als \PName{Aktion} für
+\DescRef{\LabelBase.cmd.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
+Ausschalten. Wird ein unbekannter Wert übergeben, so wird die Anweisung
+\DescRef{\LabelBase.cmd.FamilyUnknownKeyValue} mit den Argumenten
+\PName{Familie}, \PName{Schlüssel} und \PName{Wert} aufgerufen und so
+\DescRef{\LabelBase.cmd.FamilyKeyState} entsprechend gesetzt. Dadurch wird
+dann gegebenenfalls eine Meldung über eine unbekannte Wertzuweisung ausgegeben
+(siehe auch \DescPageRef{\LabelBase.cmd.FamilyUnknownKeyValue} und
+\DescPageRef{\LabelBase.cmd.FamilyKeyState}).
+\begin{Example}
+ Der Schlüssel \Option{Aufschnitt} soll in den Wurstpaketen etwas robuster
+ definiert werden. Außerdem sollen alle Wurstpakete denselben Schalter
+ verwenden, so dass entweder alle Wurstpakete Aufschnitt produzieren oder
+ keines.
+\begin{lstcode}
+ \FamilyBoolKey{Fleischermeister}{Aufschnitt}%
+ {@Aufschnitt}
+\end{lstcode}
+ Ein Test, ob Aufschnitt produziert wird, sähe dann so aus:
+\begin{lstcode}
+ \if@Aufschnitt
+ ...
+ \else
+ ...
+ \fi
+\end{lstcode}
+ Dies wäre in allen drei Wurstpaketen identisch. Damit könnte man
+ prinzipiell die Eigenschaft »Aufschnitt« auch als Eigenschaft der Familie
+ definieren:
+\begin{lstcode}[moretexcs={define@key}]
+ \@ifundefined{if@Aufschnitt}{%
+ \expandafter\newif
+ \csname if@Aufschnitt\endcsname
+ }{}%
+ \DefineFamilyKey[]{Fleischermeister}%
+ {Aufschnitt}[true]{%
+ \FamilySetBool{Fleischermeister}%
+ {Aufschnitt}%
+ {@Aufschnitt}%
+ {#1}%
+ }
+\end{lstcode}
+ oder einfacher
+\begin{lstcode}
+ \FamilyBoolKey[]{Fleischermeister}%
+ {Aufschnitt}%
+ {@Aufschnitt}
+\end{lstcode}
+ unter Ausnutzung des Hinweises bezüglich leerer Mitglieder
+ \iftrue% Umbruchkorrekturtext
+ im Gegensatz zum Weglassen des optionalen Arguments
+ \fi%
+ auf \autopageref{explain:scrbase.macro.DefineFamilyKey}, der nicht nur für
+ \DescRef{\LabelBase.cmd.DefineFamilyKey}, sondern entsprechend auch für
+ \Macro{FamilyBoolKey} gilt.
+
+ Da \DescRef{\LabelBase.cmd.FamilyKeyState} bereits von \Macro{FamilySetBool}
+ gesetzt wird, kann innerhalb der Definition der Option mit Hilfe von
+ \DescRef{\LabelBase.cmd.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}
+ ergänzen, um zusätzliche Aktionen in Abhängigkeit davon, ob
+ \Macro{FamilySetBool} erfolgreich war oder nicht,
+ auszuführen. Es\textnote{Achtung!} 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. Sie können abhängig vom
+ aktuellen Status und dem Vergleichszustand zu unterschiedlichen
+ Fehlermeldungen und auch zu falschen Ergebnissen führen.%
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyNumericalKey}\OParameter{Mitglied}\Parameter{Familie}
+ \Parameter{Schlüssel}
+ \OParameter{Säumniswert}\Parameter{Makroname}%
+ \Parameter{Werteliste}
+ \Macro{FamilySetNumerical}\Parameter{Familie}\Parameter{Schlüssel}
+ \Parameter{Makroname}\Parameter{Werteliste}%
+ \Parameter{Wert}
+\end{Declaration}
+Während Schalter nur zwei Werte annehmen können, gibt es auch Schlüssel, die
+mehrere Werte kennen. So kann beispielsweise eine Ausrichtung nicht nur
+entweder links oder nicht links, sondern auch links, mittig oder rechts
+sein. Intern unterscheidet man solche Einstellungen dann gerne mit Hilfe von
+\Macro{ifcase}\IndexCmd{ifcase}. Diese \TeX-Anweisung erwartet wiederum einen
+nummerischen Wert. Daher heißt bei \Package{scrbase} die Anweisung, mit der
+man via \PName{Schlüssel} einem Makro eine Definition zuweisen kann,
+entsprechend \Macro{FamilyNumericalKey}.
+
+Die \PName{Werteliste} hat dabei die Form:
+%\begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l}
+ \Parameter{Wert}\Parameter{Definition}\texttt{,}\linebreak[1]%
+ \Parameter{Wert}\Parameter{Definition}~\dots{}
+%\end{tabular}\vskip\dp\strutbox\end{flushleft}
+Über diese \PName{Werteliste} werden so nicht nur die erlaubten Werte für den
+\PName{Schlüssel} angegeben. Für jeden erlaubten \PName{Wert} wird auch
+gleich angegeben, wie bei Verwendung desselben das Makro
+\Macro{\PName{Makroname}} definiert werden soll. Üblicherweise werden als
+\PName{Definition} schlicht Zahlenwerte angegeben. Es sind zwar auch andere
+Angaben möglich, derzeit gibt es aber die Einschränkung, dass
+\PName{Definition} voll expandierbar sein muss und bei der Zuweisung auch
+expandiert wird.
+\begin{Example}
+ Die Wurst für den Wurstsalat kann unterschiedlich geschnitten werden. So
+ wäre es denkbar, dass der Aufschnitt einfach ungeschnitten bleibt oder in
+ grobe oder feine Streifen geschnitten werden soll. Diese Information soll in
+ der Anweisung \Macro{Schnitt} gespeichert werden.
+\begin{lstcode}
+ \FamilyNumericalKey{Fleischermeister}%
+ {SalatSchnitt}{Schnitt}{%
+ {Kein}{Kein},{Nein}{Kein},%
+ {Grob}{Grob},%
+ {Fein}{Fein}%
+ }
+\end{lstcode}
+ Dass nicht geschnitten werden soll, kann in diesem Fall vom Anwender sowohl
+ mit
+\begin{lstcode}
+ \FamilyOptions{Fleischermeister}{SalatSchnitt=Kein}
+\end{lstcode}
+ als auch mit
+\begin{lstcode}
+ \FamilyOptions{Fleischermeister}{SalatSchnitt=Nein}
+\end{lstcode}
+ angegeben werden. In beiden Fällen würde \Macro{Schnitt} mit dem Inhalt
+ \PValue{Kein} definiert. Es kann durchaus sinnvoll sein, dem Anwender wie in
+ diesem Beispiel mehrere Werte für denselben Zweck anzubieten.
+
+ Nun ist es sehr wahrscheinlich, dass die Schnittart nicht ausgegeben,
+ sondern später ausgewertet werden soll. In diesem Fall sind die textuellen
+ Definitionen aber eher unpraktisch. Definiert man den Schlüssel hingegen als
+\begin{lstcode}
+ \FamilyNumericalKey{Fleischermeister}%
+ {SalatSchnitt}{Schnitt}{%
+ {Kein}{0},{Nein}{0},%
+ {Grob}{1},%
+ {Fein}{2}%
+ }
+\end{lstcode}
+ so kann später einfach in der Form
+\begin{lstcode}
+ \ifcase\Schnitt
+ % ungeschnitten
+ \or
+ % grob geschnitten
+ \else
+ % fein geschnitten
+ \fi
+\end{lstcode}
+ unterschieden werden.
+\end{Example}
+
+Intern wird von \Macro{FamilyNumericalKey} dann
+\DescRef{\LabelBase.cmd.DefineFamilyKey} mit der Anweisung
+\Macro{FamilySetNumerical} verwendet. Wird an einen solchen Schlüssel ein
+unbekannter Wert übergeben, so wird von \Macro{FamilySetNumerical} Anweisung
+\DescRef{\LabelBase.cmd.FamilyUnknownKeyValue} mit den Argumenten
+\PName{Familie}, \PName{Schlüssel} und \PName{Wert} aufgerufen. Dies führt zu
+einer Fehlersignalisierung in \DescRef{\LabelBase.cmd.FamilyKeyState} mit
+Hilfe des Status \DescRef{\LabelBase.cmd.FamilyKeyStateUnknownValue} und
+beispielsweise bei der Verwendung als lokale Option zu einer
+Fehlermeldung. Ebenso wird beim Aufruf von \Macro{FamilySetNumerical} auch der
+Erfolg via \DescRef{\LabelBase.cmd.FamilyKeyStateProcessed} in
+\DescRef{\LabelBase.cmd.FamilyKeyState} signalisiert.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyCounterKey}\OParameter{Mitglied}\Parameter{Familie}
+ \Parameter{Schlüssel}
+ \OParameter{Säumniswert}\Parameter{\LaTeX-Zähler}
+ \Macro{FamilySetCounter}\Parameter{Familie}
+ \Parameter{Schlüssel}\Parameter{\LaTeX-Zähler}
+ \Parameter{Wert}
+\end{Declaration}
+Während\ChangedAt{v3.12}{\Package{scrbase}} bei
+\DescRef{\LabelBase.cmd.FamilyNumericalKey} ein Makro aufgrund eines
+symbolischen Wertes auf einen korrespondierenden nummerischen Wert
+gesetzt wurde, gibt es natürlich auch Fälle, in denen ein \PName{Schlüssel}
+direkt einen \PName{\LaTeX-Zähler} repräsentiert, dem unmittelbar ein
+nummerischer \PName{Wert} zugewiesen werden soll. Dazu dient die Anweisung
+\Macro{FamilyCounterKey}, von der intern dann \Macro{FamilySetCounter}
+aufgerufen wird. Dabei finden einige grundlegende Prüfungen des
+\PName{Wert}-Arguments statt um festzustellen, ob dieses Argument für eine
+Zuweisung an einen Zähler in Frage kommt. Die Zuweisung findet nur statt, wenn
+diese Prüfungen gelingen. Allerdings können hier nicht alle Fehler erkannt
+werden, so dass eine falsche Zuweisung auch zu einer Fehlermeldung von \TeX{}
+selbst führen kann. Erkannte Fehler werden hingegen über
+\DescRef{\LabelBase.cmd.FamilyKeyStateUnknownValue} signalisiert.
+
+Wurde\ChangedAt{v3.15}{\Package{scrbase}} 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.%
+\iffalse% Umbruchkorrekturtext
+\ Anderenfalls wir mit
+\DescRef{\LabelBase.cmd.FamilyKeyStateNeedValue} ein entsprechender Fehler
+signalisiert und beispielsweise innerhalb \Macro{FamilyOptions} auch als
+solcher gemeldet.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyCounterMacroKey}\OParameter{Mitglied}\Parameter{Familie}
+ \Parameter{Schlüssel}
+ \OParameter{Säumniswert}\Parameter{Makro}
+ \Macro{FamilySetCounterMacro}\Parameter{Familie}
+ \Parameter{Schlüssel}\Parameter{Makro}
+ \Parameter{Wert}
+\end{Declaration}
+Diese\ChangedAt{v3.12}{\Package{scrbase}} beiden Anweisungen unterscheiden
+sich von den zuvor erklärten \DescRef{\LabelBase.cmd.FamilyCounterKey} und
+\DescRef{\LabelBase.cmd.FamilySetCounter} nur dadurch, dass nicht ein
+\LaTeX-Zähler auf einen Wert gesetzt wird, sondern ein \PName{Makro} mit
+diesem Wert definiert wird. Auch dabei wird \PName{Wert} lokal einem Zähler
+zugewiesen und dann dessen expandierter Wert verwendet. Es gilt daher der Wert
+zum Zeitpunkt des Aufrufs der Option.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyLengthKey}\OParameter{Mitglied}\Parameter{Familie}
+ \Parameter{Schlüssel}
+ \OParameter{Säumniswert}\Parameter{Länge}
+ \Macro{FamilySetLength}\Parameter{Familie}
+ \Parameter{Schlüssel}\Parameter{Länge}
+ \Parameter{Wert}
+ \Macro{FamilyLengthMacroKey}\OParameter{Mitglied}\Parameter{Familie}
+ \Parameter{Schlüssel}
+ \OParameter{Säumniswert}\Parameter{Makro}
+ \Macro{FamilySetLengthMacro}\Parameter{Familie}
+ \Parameter{Schlüssel}\Parameter{Makro}
+ \Parameter{Wert}
+ \Macro{FamilyUseLengthMacroKey}\OParameter{Mitglied}\Parameter{Familie}
+ \Parameter{Schlüssel}
+ \OParameter{Säumniswert}\Parameter{Makro}
+ \Macro{FamilySetUseLengthMacro}\Parameter{Familie}
+ \Parameter{Schlüssel}\Parameter{Makro}
+ \Parameter{Wert}
+\end{Declaration}
+Über\ChangedAt{v3.12}{\Package{scrbase}} \Macro{FamilyLengthKey} kann ein
+\PName{Schlüssel} definiert werden, der eine \PName{Länge}
+repräsentiert. Dabei spielt es keine Rolle, ob eine \LaTeX-Länge, ein
+\TeX-Abstand oder eine \TeX-Ausdehnung als \PName{Länge} verwendet
+wird. Intern wird die \PName{Länge} über \Macro{FamilySetLength} gesetzt.
+Dabei finden einige grundlegende Prüfungen des \PName{Wert}-Arguments statt um
+festzustellen, ob dieses Argument für eine Zuweisung an eine \PName{Länge} in
+Frage kommt. Die Zuweisung findet nur statt, wenn diese Prüfungen
+gelingen. Allerdings können hier nicht alle Fehler erkannt werden, so dass
+eine falsche Zuweisung auch zu einer Fehlermeldung von \TeX{} selbst führen
+kann. Erkannte Fehler werden hingegen über
+\DescRef{\LabelBase.cmd.FamilyKeyStateUnknownValue} signalisiert.
+
+Wurde\ChangedAt{v3.15}{\Package{scrbase}} 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.
+
+Bei Verwendung der Anweisungen \Macro{FamilyLengthMacroKey} und
+\Macro{FamilyUseLengthMacroKey} beziehungsweise \Macro{FamilySetLengthMacro}
+und \Macro{FamilySetUseLengthMacro} findet die Speicherung des Wertes nicht in
+einer \PName{Länge}, sondern in einem \PName{Makro} statt. Dabei wird bei
+\Macro{FamilyLengthMacroKey} und \Macro{FamilySetLengthMacro} vergleichbar zu
+\Macro{setlength} der aktuelle \PName{Wert} zum Zeitpunkt des Aufrufs der
+beiden Anweisungen in \PName{Makro} gespeichert. Dagegen wird bei
+\Macro{FamilyUseLengthMacroKey}\ChangedAt{v3.20}{\Package{scrbase}} und
+\Macro{FamilySetUseLengthMacro} \PName{Wert} selbst gespeichert. Damit wird
+\PName{Wert} dann bei jeder Verwendung von \PName{Makro} neu ausgewertet.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyStringKey}\OParameter{Mitglied}\Parameter{Familie}
+ \Parameter{Schlüssel}
+ \OParameter{Säumniswert}\Parameter{Makro}
+ \Macro{FamilyCSKey}\OParameter{Mitglied}\Parameter{Familie}
+ \Parameter{Schlüssel}
+ \OParameter{Säumniswert}\Parameter{Makronamen}
+\end{Declaration}
+Hier wird nun\ChangedAt{v3.08}{\Package{scrbase}} ein Schlüssel definiert, der
+jeden beliebigen Wert annehmen kann. Der Wert wird in dem angegebenen
+\PName{Makro} gespeichert. Wird das optionale Argument für den
+\PName{Säumniswert} weggelassen, so entspricht \Macro{FamilyStringKey}:
+\begin{lstcode}[escapeinside=»«]
+ \DefineFamilyKey[»\PName{Mitglied}«]{»\PName{Familie}«}{»\PName{Schlüssel}«}
+ {\def»\PName{Makro}«{#1}}
+\end{lstcode}
+Existiert
+das optionale Argument für den \PName{Säumniswert} so entspricht die Anweisung:
+\begin{lstcode}[escapeinside=»«]
+ \DefineFamilyKey[»\PName{Mitglied}«]{»\PName{Familie}«}{»\PName{Schlüssel}«}
+ [»\PName{Säumniswert}«]
+ {\def»\PName{Makro}«{#1}\FamilyKeyStateProcessed}
+\end{lstcode}
+
+\begin{Example}
+ In der Voreinstellung sollen 250\,g Wurstsalat erzeugt werden. Die Menge
+ soll jedoch einfach per Option geändert werden können. Dazu wird die zu
+ erstellende Menge im Makro \Macro{Salatgewicht} gespeichert. Die Option,
+ über die das Gewicht geändert werden kann, soll ebenfalls
+ \PValue{Salatgewicht} heißen:
+\begin{lstcode}
+ \newcommand*{\Salatgewicht}{250g}
+ \FamilyStringKey{Fleischermeister}%
+ {Salatgewicht}[250g]%
+ {\Salatgewicht}
+\end{lstcode}
+ Soll nach einer Änderung
+ \iffalse% Umbruchkorrekturtext
+ wie
+\begin{lstcode}
+ \FamilyOptions{Fleichermeister}{Salatgewicht=100g}
+\end{lstcode}
+ \fi%
+ wieder die Standardmenge hergestellt
+ werden, so kann der Anwender die Option einfach ohne Gewichtsangabe
+ aufrufen:
+\begin{lstcode}
+ \FamilyOptions{Fleischermeister}{Salatgewicht}
+\end{lstcode}
+ Das ist möglich, weil die Standardmenge bei der Definition auch als
+ Säumniswert angegeben wurde.
+\end{Example}
+In diesem Fall existieren keine unbekannten Werte, da alle Werte schlicht für
+eine Makrodefinition verwendet werden. Es ist jedoch zu beachten, dass in der
+Wertzuweisung an den Schlüssel keine Absätze enthalten sein dürfen.
+
+Im\ChangedAt{v3.25}{\Package{scrbase}} Unterschied zu \Macro{FamilyStringKey}
+erwartet \Macro{FamilyCSKey} kein Makro als letztes Argument, sondern
+lediglich den Namen eines Makros, also beispielsweise nicht
+\PParameter{\Macro{Salatgewicht}}, sondern \PParameter{Salatgewicht}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyUnknownKeyValue}\Parameter{Familie}\Parameter{Schlüssel}
+ \Parameter{Wert}\Parameter{Werteliste}
+\end{Declaration}
+Diese Anweisung signalisiert über \DescRef{\LabelBase.cmd.FamilyKeyState}
+einen Fehler aufgrund eines unbekannten oder unerlaubten Wertes. Dabei wird
+als \PName{Werteliste} 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. 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
+ dann verwendet werden soll, wenn nicht angegeben wird, wie der Aufschnitt zu
+ schneiden ist.
+\begin{lstcode}
+ \@ifundefined{if@Feinschnitt}{%
+ \expandafter
+ \newif\csname if@Feinschnitt\endcsname}{}%
+ \@ifundefined{if@Aufschnitt}{%
+ \expandafter
+ \newif\csname if@Aufschnitt\endcsname}{}
+ \DefineFamilyKey{Fleischermeister}%
+ {Aufschnitt}[true]{%
+ \FamilySetBool{Fleischermeister}{Aufschnitt}%
+ {@Aufschnitt}%
+ {#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \@Feinschnittfalse
+ \else
+ \ifstr{#1}{fein}{%
+ \@Aufschnitttrue
+ \@Feinschnittrue
+ \FamilyKeyStateProcessed
+ }{%
+ \FamilyUnknownKeyValue{Fleichermeister}%
+ {Aufschnitt}%
+ {#1}{%
+ `true', `on', `yes',
+ `false`, `off`, `no',
+ `fein'%
+ }%
+ }%
+ \fi
+ }%
+\end{lstcode}
+ Zunächst wird versucht, den booleschen Schalter für Aufschnitt über
+ \DescRef{\LabelBase.cmd.FamilySetBool} zu setzen. Gelingt dies, wurde also
+ \DescRef{\LabelBase.cmd.FamilyKeyState} zu
+ \DescRef{\LabelBase.cmd.FamilyKeyStateProcessed} definiert, wird
+ der Feinschnitt abgeschaltet. Anderenfalls wird überprüft, ob anstelle
+ eines gültigen Wertes für einen booleschen Schalter %der Wert
+ \PValue{fein} übergeben wurde. In diesem Fall wird sowohl der Feinschnitt,
+ als auch Aufschnitt aktiviert und mit Hilfe von
+ \DescRef{\LabelBase.cmd.FamilyKeyStateProcessed} der Erfolgs-Status
+ gesetzt. Ist auch das nicht der Fall, wird der von
+ \DescRef{\LabelBase.cmd.FamilySetBool} signalisierte Fehler-Zustand
+ neu auf \DescRef{\LabelBase.cmd.FamilyKeyStateUnknownValue} gesetzt. Die
+ Liste der üblichen erlaubten Werte von
+ \DescRef{\LabelBase.cmd.FamilySetBool} wird dabei um \PValue{fein}
+ ergänzt. Da diese Liste jedoch inzwischen nicht mehr verwendet wird, hätte
+ man auf den Aufruf von \Macro{FamilyUnknownKeyValue} im Beispiel auch
+ einfach verzichten und damit den Fehlerstatus von
+ \DescRef{\LabelBase.cmd.FamilySetBool} übernehmen können.
+
+ Die bei den Tests verwendete Anweisung \Macro{ifstr}\IndexCmd{ifstr} ist auf
+ \DescPageRef{scrbase.cmd.ifstr} in \autoref{sec:scrbase.if} erklärt.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{FamilyElseValues}
+\end{Declaration}
+In\ChangedAt{v3.12}{\Package{scrbase}} früheren\textnote{Veraltet!} Versionen
+von \Package{scrbase} konnte man über die Anweisung \Macro{FamilyElseValues}
+weitere erlaubte Werte für die Bearbeitung durch
+\DescRef{\LabelBase.cmd.FamilyUnknownKeyValue}
+\iffalse% Umbruchkorrekturtext
+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}
+\fi%
+ablegen, die dann ebenfalls in einer Fehlermeldung mit ausgegeben wurden. Seit
+Version~3.12 gibt \DescRef{\LabelBase.cmd.FamilyUnknownKeyValue} keine
+Fehlermeldungen mehr aus, sondern setzt nur noch
+\DescRef{\LabelBase.cmd.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.%
+\EndIndexGroup
+
+
+\section{Verzweigungen}
+\seclabel{if}
+
+Das Paket \Package{scrbase} stellt eine ganze Reihe von
+Verzweigungsanweisungen zur Verfügung. Dabei wird nicht auf die \TeX-Syntax
+von Verzweigungen wie beispielsweise
+\begin{lstcode}
+ \iftrue
+ ...
+ \else
+ ...
+ \fi
+\end{lstcode}
+gebaut, sondern es wird die \LaTeX-Syntax mit Argumenten eingesetzt, wie man
+sie auch von \LaTeX-Anweisungen wie \Macro{IfFileExists},
+\Macro{@ifundefined}, \Macro{@ifpackageloaded} und vielen weiteren
+kennt. Einige Paketautoren ziehen es allerdings vor, die \TeX-Syntax auch für
+Anwender in die \LaTeX-Ebene zu bringen. Da es sich bei den Verzweigungen von
+\Package{scrbase} um recht grundlegende Möglichkeiten handelt, ist die
+Wahrscheinlichkeit gegeben, dass dabei gleichnamige Anwenderanweisungen
+verwendet würden. Dies könnte selbst bei eigentlich gleicher Semantik
+zu einem Problem aufgrund unterschiedlichen Syntax
+führen. \Package{scrbase} geht daher auf Nummer sicher.
+
+\begin{Declaration}
+ \OptionVName{internalonly}{Wert}
+\end{Declaration}
+Von \Package{scrbase} werden einige Verzweigungsanweisungen
+bereitgestellt. Dabei verwendet es primär die Bezeichnungen
+\Macro{scr@\PName{Name}}\textnote{Paketautoren}. Es handelt sich somit
+um interne Anweisungen. Diese werden auch intern von \KOMAScript{}
+verwendet. Paket- und Klassenautoren können diese Anweisungen ebenfalls
+verwenden, sollten sie aber nicht umdefinieren. Da einige dieser Anweisungen
+auch für Benutzer nützlich sein können, werden die gleichen Anweisungen
+normalerweise auch als \Macro{\PName{Name}}\textnote{Anwender}
+bereitgestellt. Da eventuell andere Pakete gleichnamige Anweisungen mit
+anderer Syntax bereitstellen könnten und es so zu Konflikten kommen könnte,
+kann der Anwender die Definition von \Macro{\PName{Name}} verhindern. Dazu
+gibt er entweder die Option ohne Wertangabe an. In diesem Fall werden nur die
+internen Verzweigungsanweisungen definiert. Oder er gibt genau die
+Anweisungen, die nicht definiert werden sollen, als Wert an, wobei er
+»\Macro{}« durch »\texttt{/}« ersetzt.
+
+Paket- und Klassenautoren sollten diese Option normalerweise nicht verwenden.
+Anwender können sie mit oder ohne Wertangabe entweder als globale Option bei
+\DescRef{maincls.cmd.documentclass} oder per
+\Macro{PassOptionsToPackage}\IndexCmd{PassOptionsToPackage} angeben.
+\begin{Example}
+ Der Anwender will nicht, dass die Anweisungen
+ \DescRef{\LabelBase.cmd.ifVTeX} und
+ \DescRef{\LabelBase.cmd.ifundefinedorrelax} von \Package{scrbase} definiert
+ werden. Also verwendet er beim Laden der Klasse:
+\begin{lstcode}
+ \documentclass[%
+ internalonly=/ifVTeX/ifundefinedorrelax%
+ ]{foo}
+\end{lstcode}
+ Der Klassenname \Class{foo} wird hier als Platzhalter für irgendeine Klasse
+ verwendet. Die Anweisungen \DescRef{\LabelBase.cmd.ifVTeX}
+ und \DescRef{\LabelBase.cmd.ifundefinedorrelax} werden im weiteren Verlauf
+ dieses Abschnittes erklärt.%
+\end{Example}
+
+Paket- und Klassenautoren sollten wie \KOMAScript{} selbst auch die internen
+Namen verwenden. Zur Vollständigkeit sind in den nachfolgenden Erklärungen
+aber auch die Anwenderanweisungen angegeben.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scr@ifundefinedorrelax}
+ \Parameter{Name}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+ \Macro{ifundefinedorrelax}
+ \Parameter{Name}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Diese Anweisung funktioniert prinzipiell wie \Macro{@ifundefined} aus dem
+\LaTeX-Kern (siehe \cite{latex:source2e}). Es wird also der \PName{Dann-Teil}
+ausgeführt, wenn \PName{Name} der Name einer undefinierten Anweisung oder
+\Macro{\PName{Name}} derzeit \Macro{relax} ist. Im Unterschied zu
+\Macro{@ifundefined} wird %
+\iftrue% Umbruchvarianten
+weder Hash-Speicher belegt noch \Macro{\PName{Name}} %
+\else%
+\Macro{\PName{Name}} nicht %
+\fi%
+zu \Macro{relax}, wenn \Macro{\PName{Name}} zuvor undefiniert war.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifnotundefined}\Parameter{Name}%
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Ist die Anweisung mit dem angegebenen Namen bereits definiert wird der
+\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Da es bei
+\eTeX{} bereits ein Primitiv \Macro{ifdefined} gibt, musste leider diese
+etwas unhandliche Bezeichnung gewählt werden. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scr@ifluatex}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Wird\ChangedAt{v3.21}{\Package{scrbase}} mit lua\TeX{} gearbeitet, wird der
+\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}.
+\iftrue% Umbruchkorrekturtext
+Diese Unterscheidung ist nur sehr selten wirklich von Nutzen. %
+\fi%
+In der Regel sollte man besser auf die gewünschte Anweisung
+testen. Von\textnote{Achtung!} dieser Anweisung gibt es kein
+Benutzeräquivalent. Verwenden Sie stattdessen bei Bedarf das Paket
+\Package{ifluatex}\important{\Package{ifluatex}} (siehe
+\cite{package:ifluatex}).%
+\EndIndexGroup
+
+
+\iffalse% Es ergibt keinen Sinn, diese Anweisung noch zu dokumentieren
+\begin{Declaration}
+ \Macro{scr@ifpdforluatex}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Bis lua\TeX~0.85 war es meist unerheblich, ob mit pdf\TeX{} oder lua\TeX{}
+gearbeitet wurde. Von daher stammt diese Anweisung, die in beiden Fällen den
+\PName{Dann-Teil} ausführt. Wird weder mit pdf\TeX{} noch mit lua\TeX{}
+gearbeitet, so wird der \PName{Sonst-Teil} ausgeführt.
+Seit Version 0.85 wurde bei lua\TeX{} die Kompatibilität bei vielen der
+zusätzlichen Befehle jedoch aufgegeben. Daher ist diese Unterscheidung in der
+Praxis nicht mehr von Nutzen und wird von \KOMAScript{} selbst auch nicht mehr
+verwendet. Von dieser Anweisung gibt es auch kein Benutzeräquivalent.%
+\EndIndexGroup
+\fi
+
+
+\begin{Declaration}
+ \Macro{scr@ifpdftex}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+ \Macro{ifpdftex}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Wird mit pdf\TeX{} gearbeitet, wird der \PName{Dann-Teil} ausgeführt,
+anderenfalls der \PName{Sonst-Teil}. Dabei ist es unerheblich, ob tatsächlich
+eine PDF-Datei ausgegeben werden soll oder nicht.
+\iftrue% Umbruchkorrekturtext
+Diese Unterscheidung ist nur sehr selten wirklich von Nutzen. %
+\fi%
+In der Regel sollte man besser auf die gewünschte Anweisung testen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scr@ifVTeX}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+ \Macro{ifVTeX}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Wird mit V\TeX{} gearbeitet, wird der \PName{Dann-Teil} ausgeführt,
+anderenfalls der \PName{Sonst-Teil}.
+\iftrue% Umbruchkorrekturtext
+Diese Unterscheidung ist nur sehr selten wirklich von Nutzen. %
+\fi%
+In der Regel sollte man besser auf die gewünschte Anweisung testen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scr@ifpdfoutput}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+ \Macro{ifpdfoutput}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Wird eine PDF-Datei erzeugt, wird der \PName{Dann-Teil} ausgeführt,
+anderenfalls der \PName{Sonst-Teil}. Dabei ist es unerheblich, ob die
+PDF-Datei mit Hilfe von lua\TeX{}, pdf\TeX{}, V\TeX{} oder \XeTeX{} erzeugt
+wird.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scr@ifpsoutput}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+ \Macro{ifpsoutput}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Wird eine PostScript-Datei erzeugt, wird der \PName{Dann-Teil} ausgeführt,
+anderenfalls der \PName{Sonst-Teil}. V\TeX{} kann PostScript direkt erzeugen,
+was hier erkannt wird. Wird hingegen kein V\TeX{} verwendet, ist aber ein
+Schalter \Macro{if@dvips} definiert, so wird die Entscheidung darüber
+getroffen. \KOMAScript{} stellt \Macro{if@dvips} in
+\hyperref[cha:typearea]{\Package{typearea}}\IndexPackage{typearea}%
+\IndexCmd{if@dvips} bereit.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scr@ifdvioutput}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+ \Macro{ifdvioutput}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Wird eine DVI-Datei erzeugt, so wird der \PName{Dann-Teil} ausgeführt,
+anderenfalls der \PName{Sonst-Teil}. Es wird immer dann davon ausgegangen,
+dass eine DVI-Datei erzeugt wird, wenn keine direkte Ausgabe einer PDF- oder
+Postscript-Datei erkannt werden kann.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{if@atdocument}\ \PName{Dann-Teil}\ %
+ \textMacro{else}\ \PName{Sonst-Teil} \textMacro{fi}
+\end{Declaration}
+Diese Verzweigung existiert ganz bewusst nur als interne Anweisung. Dabei
+entspricht \Macro{if@atdocument} in der Dokumentpräambel \Macro{iffalse}, nach
+\Macro{begin}\PParameter{document} entspricht \Macro{if@atdocument} hingegen
+\Macro{iftrue}. Klassen und Paketautoren können dieses Anweisung manchmal
+sinnvoll nutzen, wenn sich Anweisungen in der Dokumentpräambel anders
+verhalten sollen als innerhalb des Dokuments. Es\textnote{Achtung!} ist zu
+beachten, dass es sich bei dieser Anweisung um eine Verzweigung in \TeX-Syntax
+und nicht in \LaTeX-Syntax handelt!
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifstr}\Parameter{Zeichenfolge}\Parameter{Zeichenfolge}%
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Die beiden Argumente \PName{Zeichenfolge} werden expandiert und dann
+verglichen. Sind sie dabei gleich, so wird der \PName{Dann-Teil} ausgeführt,
+anderenfalls der \PName{Sonst-Teil}. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifstrstart}\Parameter{Zeichenfolge}\Parameter{Zeichenfolge}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+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}. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisdimen}\Parameter{Code}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+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. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisdimension}\Parameter{Code}%
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+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. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifdimen}\Parameter{Zeichenfolge}%
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Der \PName{Dann-Teil} wird ausgeführt, wenn die einfache Expansion der
+\PName{Zeichenfolge} eine gültige Länge mit einer gültigen Längeneinheit
+ist. Anderenfalls wird der \PName{Sonst-Teil} verwendet. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisdimexpr}\Parameter{Code}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in
+einer \Macro{dimexpr}\IndexCmd{dimexpr}, also einem \eTeX-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. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisskip}\Parameter{Code}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+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. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisglue}\Parameter{Code}%
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+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. %
+\iffalse% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisglueexpr}\Parameter{Code}%
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in
+einer \Macro{glueexpr}\IndexCmd{glueexpr}, also einem
+\mbox{\eTeX}-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. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifiscounter}\Parameter{Zähler}%
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+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. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifiscount}\Parameter{Code}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+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 \DescRef{\LabelBase.cmd.ifiscounter}. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisinteger}\Parameter{Code}%
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+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. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifnumber}\Parameter{Zeichenfolge}%
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Der \PName{Dann-Teil} wird ausgeführt, wenn die einfache Expansion der
+\PName{Zeichenfolge} nur aus Ziffern besteht. In allen anderen Fällen wird der
+\PName{Sonst-Teil} verwendet. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifisnumexpr}\Parameter{Code}%
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in
+einer \Macro{numexpr}\IndexCmd{numexpr}, also einem \eTeX-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. %
+\iftrue% Umbruchvaritanten
+Von dieser Anweisung gibt es keine interne Variante.%
+\else%
+Es gibt keine interne Variante.%
+\fi%
+\EndIndexGroup
+
+
+\section{Definition sprachabhängiger Bezeichner}
+\seclabel{languageSupport}
+\BeginIndexGroup
+\BeginIndex{}{Sprachdefinition}
+
+\iftrue
+Anfänger haben häufig Probleme damit, sprachabhängige Begriffe wie
+\Macro{listfigurename}\IndexCmd{listfigurename}, in der Voreinstellung meist
+»List of Figures« beziehungsweise in Deutsch: »Abbildungsverzeichnis«, zu
+ändern. Werden diese beispielsweise einfach mit \Macro{renewcommand} in der
+Dokumentpräambel umdefiniert, so überleben sie eine spätere Umschaltung der
+Sprache nicht. Bei Verwendung von \Package{babel}\IndexCmd{babel} wird die
+Umdefinierung in der Dokumentpräambel bereits von
+\Macro{begin}\PParameter{document} wieder überschrieben.
+\fi
+
+Normalerweise muss man zur Definition oder zur Änderung sprachabhängiger
+Begriffe Anweisungen wie \Macro{captionsngerman} so umdefinieren, dass
+zusätzlich zu den bisherigen Begriffen auch die neuen oder geänderten
+definiert werden. Erschwert wird dieses Vorhaben dadurch, dass beim Laden
+eines Pakets wie \Package{german}\IndexPackage{german} oder
+\Package{ngerman}\IndexPackage{ngerman} diese Anweisungen von den Paketen
+erneut definiert werden. Bei den genannten Paketen geschieht dies leider in
+einer Form, die alle zuvor gemachten Änderungen zunichte macht. Aus diesem
+Grund ist es sinnvoll, die Änderungen mit Hilfe von \Macro{AtBeginDocument} bis
+\Macro{begin}\PParameter{document}, also bis nach dem Laden aller Pakete, zu
+verzögern.
+\iftrue
+Auch der Anwender muss entweder von \Macro{AtBeginDocument}
+Gebrauch machen oder aber seine Änderungen nicht in die Dokumentpräambel,
+sondern hinter \Macro{begin}\PParameter{document} einfügen.
+\fi
+
+Darüber hinaus kommt erschwerend hinzu, dass einige Pakete zusätzliche,
+sprachabhängige Begriffe in \Macro{captions\PName{Sprache}} definieren,
+während andere dafür \Macro{extras\PName{Sprache}} verwenden. So muss der
+Anwender sich schon sehr genau auskennen, um die richtige Anweisung auf die
+richtige Weise zu ergänzen.
+
+Das Paket \Package{scrbase} bietet dem Anwender daher für die Definition und
+Änderung selbst einige zusätzliche Anweisungen, die ihn von vielen dieser
+Überlegungen entlasten. Gleichzeitig erlauben diese Befehle, die
+sprachabhängigen Begriffe mehrerer Dialekte oder Ausprägungen einer Sprache
+gleichzeitig zu definieren oder zu ändern.
+
+\begin{Declaration}
+ \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}
+ \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 vier Anweisungen und ihrer Sternvarianten ist es möglich,
+einem \PName{Begriff} in 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.
+
+Der \PName{Begriff} ist immer ein Makro. Die Arbeitsweise der Anweisungen
+unterscheidet sich je nachdem, ob eine Sprache und ein \PName{Begriff}
+innerhalb der 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 Sprache bereits definiert,
+so wird er nicht umdefiniert, sondern ebenfalls ein entsprechender Hinweis in
+die \File{log}-Datei geschrieben.
+
+Ist dagegen bei \Macro{newcaptionname}
+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 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 Sprache bereits vorhanden, so wird eine
+Fehlermeldung ausgegeben.
+
+Die Anweisung \Macro{renewcaptionname} verhält sich noch einmal anders. Ist
+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.
+
+Die\ChangedAt{v3.12}{\Package{scrbase}} Anweisung \Macro{defcaptionname}
+definiert einen \PName{Begriff} immer, überschreibt also eventuell vorhandene
+Definitionen. Wie bei \Macro{providecaptionname} braucht eine angegebene
+Sprache nicht definiert zu sein.
+
+\KOMAScript{} selbst verwendet \Macro{providecaptionname} um die Begriffe aus
+\autoref{sec:scrlttr2-experts.languages},
+\DescPageRef{scrlttr2-experts.cmd.yourrefname} zu definieren.
+
+\begin{Example}
+ Möchten Sie »Abb.« statt »Abbildung« in den Abbildungsunterschriften, so
+ erreichen Sie dies mit:
+\begin{lstcode}
+ \renewcaptionname{ngerman}{\figurename}{Abb.}
+\end{lstcode}
+
+ Soll dieselbe Änderung nicht nur für \PValue{ngerman}, sondern
+ auch für die Sprachen \PValue{naustrian} und \PValue{nswissgerman}, also für
+ Österreichisch und Schweizer Deutsch gelten, so ist
+ es nicht notwendig zwei weitere Anweisungen:
+\begin{lstcode}
+ \renewcaptionname{naustrian}{\figurename}{Abb.}
+ \renewcaptionname{nswissgerman}{\figurename}{Abb.}
+\end{lstcode}
+ hinzuzufügen. Stattdessen kann einfach, die \PName{Sprachliste} erweitert
+ werden:
+\begin{lstcode}
+ \renewcaptionname{ngerman,naustrian,nswissgerman}%
+ {\figurename}{Abb.}
+\end{lstcode}
+ In gleicher Weise können auch \PValue{german}, \PValue{austrian} und
+ \PValue{swissgerman}, also Deutsch, Österreichisch und Schweizer Deutsch
+ nach der veralteten Rechtschreibung, hinzugefügt werden.
+\end{Example}
+\begin{Explain}
+ Die Sprachen \PValue{swissgerman} und \PValue{nswissgerman} werden übrigens
+ von älteren Versionen von \Package{babel} noch nicht unterstützt. Sie sind
+ erst seit Dezember~2013 Bestandteil des deutschen Sprachpakets für
+ \Package{babel}. Für die Anweisungen \Macro{defcaptionname},
+ \Macro{newcaptionname} und \Macro{providecaptionname} spielt dies kaum eine
+ Rolle, da diese auch Begriffe für nicht existierende Sprachen definieren
+ können. Da mit \Macro{renewcaptionname} jedoch nur existierende Begriffe von
+ existierenden Sprachen umdefiniert werden können, resultiert die
+ Umdefinierung für \Option{nswissgerman} und \Option{swissgerman} bei
+ Verwendung einer älteren Version von \Package{babel} in einer entsprechenden
+ Fehlermeldung.
+\end{Explain}
+
+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{extras\PName{Sprache}}, da dessen Definitionen in der Regel nach
+\Macro{captions\PName{Sprache}} Anwendung finden. 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
+finden.\iffree{}{ \KOMAScript{} selbst definiert noch einige weitere
+ Begriffe. Siehe dazu \autoref{sec:scrlttr2-experts.languages} ab
+ \DescPageRef{scrlttr2-experts.cmd.yourrefname}.}
+
+\begin{desclist}
+ \renewcommand*{\abovecaptionskipcorrection}{-\normalbaselineskip}%
+ \desccaption[{%
+ Überblick über übliche sprachabhängige Begriffe%
+ }]{%
+ Überblick über sprachabhängige Begriffe in den üblichen
+ Sprachpaketen\label{tab:scrbase.commonNames}%
+ }{%
+ Überblick über übliche sprachabhängige Begriffe
+ (\emph{Fortsetzung})%
+ }%
+ \entry{\Macro{abstractname}}{%
+ Überschrift für die Zusammenfassung%
+ \IndexCmd{abstractname}%
+ }%
+ \entry{\Macro{alsoname}}{%
+ »Siehe auch« bei ergänzenden Verweisen im Stichwortverzeichnis%
+ \IndexCmd{alsoname}%
+ }%
+ \entry{\Macro{appendixname}}{%
+ »Anhang« in der Kapitelüberschrift eines Anhangs%
+ \IndexCmd{appendixname}%
+ }%
+ \entry{\Macro{bibname}}{%
+ Überschrift für das Literaturverzeichnis%
+ \IndexCmd{bibname}%
+ }%
+ \entry{\Macro{ccname}}{%
+ Spitzmarke für den Verteiler in Briefen%
+ \IndexCmd{ccname}%
+ }%
+ \entry{\Macro{chaptername}}{%
+ »Kapitel« in der Kapitelüberschrift%
+ \IndexCmd{chaptername}%
+ }%
+ \entry{\Macro{contentsname}}{%
+ Überschrift für das Inhaltsverzeichnis%
+ \IndexCmd{contentsname}%
+ }%
+ \entry{\Macro{enclname}}{%
+ Spitzmarke für die Anlagen bei Briefen%
+ \IndexCmd{enclname}%
+ }%
+ \entry{\Macro{figurename}}{%
+ Spitzmarke in der Abbildungsunterschrift%
+ \IndexCmd{figurename}%
+ }%
+ \entry{\Macro{glossaryname}}{%
+ Überschrift für das Glossar%
+ \IndexCmd{glossaryname}%
+ }%
+ \entry{\Macro{headtoname}}{%
+ »An« im Briefkopf%
+ \IndexCmd{headtoname}%
+ }%
+ \entry{\Macro{indexname}}{%
+ Überschrift für das Stichwortverzeichnis%
+ \IndexCmd{indexname}%
+ }%
+ \entry{\Macro{listfigurename}}{%
+ Überschrift für das Abbildungsverzeichnis%
+ \IndexCmd{listfigurename}%
+ }%
+ \entry{\Macro{listtablename}}{%
+ Überschrift für das Tabellenverzeichnis%
+ \IndexCmd{listtablename}%
+ }%
+ \entry{\Macro{pagename}}{%
+ »Seite« in der Seitennummer von Briefen%
+ \IndexCmd{pagename}%
+ }%
+ \entry{\Macro{partname}}{%
+ »Teil« in der Teileüberschrift%
+ \IndexCmd{partname}%
+ }%
+ \entry{\Macro{prefacename}}{%
+ Überschrift für das Vorwort%
+ \IndexCmd{prefacename}%
+ }%
+ \entry{\Macro{proofname}}{%
+ Spitzmarke bei Beweisen%
+ \IndexCmd{proofname}%
+ }%
+ \entry{\Macro{refname}}{%
+ Überschrift für das Quellenverzeichnis%
+ \IndexCmd{refname}%
+ }%
+ \entry{\Macro{seename}}{%
+ »Siehe« bei Verweisen im Stichwortverzeichnis%
+ \IndexCmd{seename}%
+ }%
+ \entry{\Macro{tablename}}{%
+ Spitzmarke in der Tabellenunter- bzw. "~überschrift%
+ \IndexCmd{tablename}%
+ }%
+\end{desclist}
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Identifikation von \KOMAScript}
+\seclabel{identify}
+
+Obwohl -- oder gerade weil -- \Package{scrbase} ganz allgemein als Paket für
+Klassen- und Paketautoren konzipiert ist, wird es natürlich von den
+\KOMAScript-Klassen und den meisten \KOMAScript-Paketen verwendet. Es enthält
+daher auch zwei Anweisungen, die in allen \KOMAScript-Klassen und allen
+grundlegenden \KOMAScript-Paketen vorhanden sind.
+
+
+\begin{Declaration}
+ \Macro{KOMAScript}
+\end{Declaration}
+Diese Anweisung setzt schlicht die Wortmarke »\KOMAScript« in serifenloser
+Schrift und mit leichter Sperrung des in Versalien gesetzten
+Teils. \Macro{KOMAScript} wird übrigens bei Bedarf von allen
+\KOMAScript-Klassen und "~Paketen definiert. Die Definition erfolgt mit
+\Macro{DeclareRobustCommand}. Da auch Pakete, die nicht zu \KOMAScript{}
+gehören, diese Wortmarke definieren können, sollte man die Anweisung jedoch
+nicht als Indiz für die Verwendung eines \KOMAScript-Pakets verstehen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{KOMAScriptVersion}
+\end{Declaration}
+Bei \KOMAScript{} ist in dieser Anweisung die Hauptversion von \KOMAScript{}
+in der Form »\PName{Datum} \PName{Version} \texttt{KOMA-Script}«
+abgelegt. Diese Hauptversion ist für alle \KOMAScript-Klassen und alle
+\KOMAScript-Pakete, die von den Klassen verwendet werden, gleich. Daher kann
+sie auch nach dem Laden von \Package{scrbase} abgefragt werden. Diese
+Anleitung wurde beispielsweise mit der \KOMAScript-Version
+»\KOMAScriptVersion« erstellt. Das Vorhandensein dieser Anweisung ist ein
+starkes Indiz dafür, dass zumindest ein \KOMAScript-Paket verwendet wird.%
+\EndIndexGroup
+
+
+\section{Erweiterungen des \LaTeX-Kerns}
+\seclabel{latexkernel}
+
+In einigen Fällen stellt der \LaTeX-Kern selbst Anweisungen zur Verfügung,
+lässt aber ganz ähnliche Anweisungen, die ebenfalls häufiger benötigt werden
+oder eigentlich nahe liegen, vermissen. Einige wenige solcher Anweisungen
+für Klassen- und Paketautoren stellt \Package{scrbase} zur Verfügung.
+
+\begin{Declaration}
+ \Macro{ClassInfoNoLine}\Parameter{Klassenname}\Parameter{Information}
+ \Macro{PackageInfoNoLine}\Parameter{Paketname}\Parameter{Information}
+\end{Declaration}%
+Der \LaTeX-Kern bietet dem Klassen- und Paketautor zwar Anweisungen wie
+\Macro{PackageInfo} und \Macro{ClassInfo}, um Informationen mit aktueller
+Zeilennummer in die Log-Datei zu schreiben. Er bietet neben
+\Macro{PackageWarning} und \Macro{ClassWarning}, die Warnungen mit aktueller
+Zeilennummer ausgeben, auch die beiden Anweisungen
+\Macro{PackageWarningNoLine} und \Macro{ClassWarningNoLine}, um Warnungen ohne
+Zeilennummer auszugeben. Die naheliegenden Anweisungen
+\Macro{ClassInfoNoLine} und \Macro{PackageInfoNoLine}, um auch Informationen
+ohne Zeilennummer in die Log-Datei zu schreiben, fehlen jedoch. Diese werden
+von \Package{scrbase} bereit gestellt.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{l@addto@macro}\Parameter{Anweisung}\Parameter{Erweiterung}%
+\end{Declaration}%
+Der \LaTeX-Kern bietet mit \Macro{g@addto@macro} eine interne Anweisung, um
+die Definition eines Makro \PName{Anweisung} global um den Code
+\PName{Erweiterung} zu erweitern. Das funktioniert in dieser Form nur für
+Makros ohne Argumente. Dennoch könnte man diese Anweisung in einigen Fällen
+auch in einer Form benötigen, die lokal zur aktuellen Gruppe arbeitet. Diese
+wird mit \Macro{l@addto@macro} von \Package{scrbase} bereit gestellt. Eine
+Alternative stellt hier die Verwendung des Pakets
+\Package{etoolbox}\IndexPackage{etoolbox} oder
+\Package{xpatch}\IndexPackage{xpatch} dar, das eine ganze Reihe solcher
+Anweisungen für unterschiedliche Zwecke bietet (siehe
+\cite{package:etoolbox} beziehungsweise \cite{package:xpatch}).
+%
+\EndIndexGroup
+
+
+\section{Erweiterungen der mathematischen Fähigkeiten von \eTeX}
+\seclabel{etex}
+
+Das für \LaTeX{} inzwischen verwendete und von \KOMAScript{} vorausgesetzte
+\eTeX{} besitzt mit \Macro{numexpr}\IndexCmd{numexpr} erweiterte Möglichkeiten
+zur Berechnung einfacher Ausdrücke mit \TeX-Zählern und ganzen Zahlen. Als
+Operationen werden dabei die vier Grundrechenarten und Klammern
+unterstützt. Bei der Division wird korrekt gerundet. Manchmal sind weitere
+Operationen nützlich.
+
+\begin{Declaration}
+ \Macro{XdivY}\Parameter{Dividend}\Parameter{Divisor}
+ \Macro{XmodY}\Parameter{Dividend}\Parameter{Divisor}
+\end{Declaration}%
+\BeginIndex{Cmd}{XdivY}%
+\BeginIndex{Cmd}{XmodY}%
+Die\ChangedAt{v3.05a}{\Package{scrbase}} Anweisung \Macro{XdivY} liefert den
+Wert des ganzzahligen Quotienten, die Anweisung \Macro{XmodY} den Wert des
+Rests der Division mit Rest. Diese Art der Division ist nach der Gleichung
+\[
+\textit{Dividend} = \textit{Divisor} \cdot
+\textit{Quotient} + \textit{Rest}
+\]
+%
+definiert, wobei \textit{Dividend}, \textit{Divisor} und \textit{Rest} ganze
+Zahlen und \textit{Rest} außerdem größer oder gleich 0 und kleiner als
+\textit{Divisor} ist. Der \textit{Divisor} ist eine natürliche Zahl (ohne die
+0).
+
+Der Wert kann jeweils zur Zuweisung an einen Zähler oder direkt innerhalb
+eines Ausdrucks mit \Macro{numexpr}\IndexCmd{numexpr} verwendet werden. Zur
+Ausgabe als arabische Zahl ist \Macro{the} voranzustellen.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide.tex"
+%%% End:
+
+% LocalWords: Paketoptionen Familienmitglieder Familienmitglieds Säumniswert
+% LocalWords: Fleischermeister FamilyProcessOptions ProcessOption keyval Cmd
+% LocalWords: documentclass ProcessOptions FamilyExecuteOptions currname
+% LocalWords: Optionenliste ExecuteOptions DeclareOption currext Wurstsalat
+% LocalWords: FamilyOptions FamilyKeyState Wurstpakete nonsense package true
+% LocalWords: Wurstpaket FamilyOption salatmit SalatZusatz scrbase false
+% LocalWords: AtEndOfFamilyOptions FamilyBoolKey FamilySetBool Schaltername
+% LocalWords: FamilyLengthKey FamilySetLength FamilyLengthMacroKey
+% LocalWords: FamilySetLengthMacro Wertübergabe Gliederungsbefehlen
+% LocalWords: Sternvariante Anwenderanweisungen Signalisierung Paketautoren
+% LocalWords: Familienschlüssel Mitgliederschlüssels Vergleichszustand
+% LocalWords: Benutzeräquivalent Dokumentpräambel voranzustellen
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrbookreportarticle-experts.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrbookreportarticle-experts.tex
new file mode 100644
index 0000000000..410c320f04
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrbookreportarticle-experts.tex
@@ -0,0 +1,1968 @@
+% ======================================================================
+% scrbookreportarticle-experts.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrbookreportarticle-experts.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 scrbook, scrreprt, and scrartcl of the KOMA-Script guide
+% expert part
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel über scrbook, scrreprt und scrartcl im Experten-Teil der
+% KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrbookreportarticle-experts.tex}%
+ [$Date: 2018-10-14 20:31:51 +0200 (Sun, 14 Oct 2018) $
+ KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl for
+ experts)]
+
+\chapter[{Zusätzliche Informationen zu den Hauptklassen und
+ \Package{scrextend}}]{Zusätzliche
+ Informationen zu den Hauptklassen
+ \Class{scrbook}, \Class{scrreprt} und
+ \Class{scrartcl} sowie dem
+ Paket \Package{scrextend}}
+\labelbase{maincls-experts}
+
+\BeginIndexGroup \BeginIndex{Class}{scrartcl} \BeginIndex{Class}{scrbook}
+\BeginIndex{Class}{scrreprt} \BeginIndex{Package}{scrextend} In diesem Kapitel
+finden Sie zusätzliche Informationen zu den \KOMAScript-Klassen
+\Class{scrbook}, \Class{scrreprt} und \Class{scrartcl} und einigen
+Anweisungen, die auch in \Package{scrextend} vorhanden sind. \iffree{Einige
+ Teile des Kapitels sind dabei dem \KOMAScript-Buch \cite{book:komascript}
+ vorbehalten. Dies sollte kein Problem sein, denn der}{Der} normale Anwender,
+der die Klassen einfach nur verwenden will, wird diese Informationen eher
+selten benötigen. Ein Teil der Informationen richtet sich an Anwender, die
+ausgefallene Aufgaben lösen oder eigene Klassen schreiben wollen, die auf
+einer \KOMAScript-Klasse basieren. Anderes existiert nur aus Gründen der
+Kompatibilität zu den Standardklassen\iffree{ oder früheren Versionen von
+ \KOMAScript}{}.\iffree{}{ Teile, die nur aus Gründen der
+ Kompatibilität zu früheren Versionen von \KOMAScript{} existieren, sind in
+ serifenloser Schrift gesetzt und sollten nicht mehr verwendet werden.}
+
+\LoadNonFree{scrbookreportarticle-experts}{0}
+
+\section{Ergänzungen zu Benutzeranweisungen}
+\seclabel{addInfos}
+
+\LoadNonFree{scrbookreportarticle-experts}{1}
+
+
+\section{Zusammenspiel von \KOMAScript{} und anderen Paketen}
+\seclabel{coexistence}
+
+\LoadNonFree{scrbookreportarticle-experts}{2}
+
+
+\section{Anweisungen für Experten}
+\seclabel{experts}
+
+In diesem Abschnitt werden Anweisungen beschrieben, die für den normalen
+Anwender kaum oder gar nicht von Interesse sind. Experten bieten diese
+Anweisungen zusätzliche Möglichkeiten. Da die Beschreibungen für Experten
+gedacht sind, sind sie kürzer gefasst.
+
+
+% \subsection{Identifikation}
+% \seclabel{identification}
+
+\begin{Declaration}
+ \Macro{KOMAClassName}
+ \Macro{ClassName}
+\end{Declaration}
+In \Macro{KOMAClassName} ist der Name der aktuell verwendeten
+\KOMAScript-Klasse abgelegt. Will man also wissen, ob eine oder welche
+\KOMAScript-Klasse verwendet wird, so kann man einfach auf diese Anweisung
+testen. Demgegenüber gibt \Macro{ClassName} Auskunft, welche Standardklasse
+durch diese \KOMAScript-Klasse ersetzt wird.
+
+Es\textnote{Achtung!} sei in diesem Zusammenhang darauf hingewiesen, dass
+dagegen die Existenz von
+\DescRef{scrbase.cmd.KOMAScript}\IndexCmd{KOMAScript} nicht als Indiz für die
+Verwendung einer \KOMAScript-Klasse dienen kann. Zum einen definieren alle
+\KOMAScript-Pakete diese Anweisung, zum anderen können auch andere Pakete es
+für sinnvoll erachten, das \KOMAScript-Piktogramm unter diesem Namen zu
+definieren.%
+\EndIndexGroup
+
+
+% \subsection{Einträge ins Inhaltsverzeichnis}
+% \seclabel{toc}
+
+\begin{Declaration}
+ \Macro{addtocentrydefault}\Parameter{Ebene}\Parameter{Nummer}%
+ \Parameter{Überschrift}
+\end{Declaration}
+Die\ChangedAt{v3.08}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} \KOMAScript-Klassen verwenden
+\Macro{addcontentsline}\IndexCmd{addcontentsline}%
+\important{\Macro{addcontentsline}} nicht direkt, um Einträge ins
+Inhaltsverzeichnis vorzunehmen. Stattdessen wird \Macro{addtocentrydefault}
+mit ganz ähnlichen Argumenten aufgerufen. Die Anweisung kann sowohl für
+nummerierte als auch für nicht nummerierte Einträge verwendet werden. Dabei
+gibt \PName{Ebene} die Gliederungsebene in Textform an, also \PValue{part},
+\PValue{chapter}, \PValue{section}, \PValue{subsection},
+\PValue{subsubsection}, \PValue{paragraph} oder \PValue{subparagraph}. Die
+formatierte Gliederungsnummer wird über das zweite Argument \PName{Nummer}
+übergeben. Dieses Argument darf auch leer sein. Der Text des Eintrags wird mit
+\PName{Überschrift} angegeben. Zerbrechliche Befehle in
+diesem Argument sind mit
+\Macro{protect}\IndexCmd{protect}\important{\Macro{protect}} zu schützen.
+
+Für das Argument \PName{Nummer} gilt noch eine Besonderheit. Ist das Argument
+leer, so signalisiert dies, dass ein nicht nummerierter Eintrag erzeugt werden
+soll. In der Voreinstellung wird dies mit
+\begin{quote}\small\raggedright
+ \Macro{addcontentsline}\PParameter{toc}\Parameter{Ebene}%
+ \PParameter{\%\\
+ \quad\Macro{protect}\DescRef{tocbasic.cmd.nonumberline}
+ \PName{Überschrift}\%\\
+ }
+\end{quote}
+erreicht. Ist das Argument jedoch nicht leer, so soll ein nummerierter Eintrag
+erzeugt werden und \PName{Nummer} ist die vorformatierte Gliederungsnummer. In
+der Voreinstellung verwendet \KOMAScript{} dann:
+\begin{quote}\small\raggedright
+ \Macro{addcontentsline}\PParameter{toc}\Parameter{Ebene}%
+ \PParameter{\%\\
+ \quad\Macro{protect}\DescRef{tocbasic.cmd.numberline}\Parameter{Nummer}%
+ \PName{Überschrift}\%\\
+ }
+\end{quote}
+\iffalse zur Erzeugung dieses Eintrags.\fi
+
+Paketautoren und Autoren von Wrapper-Klassen können diese Anweisung
+umdefinieren, um Einfluss auf die Einträge zu nehmen. So\textnote{Beispiel}
+wäre beispielsweise denkbar, mit
+\begin{lstcode}
+ \renewcommand{\addtocentrydefault}[3]{%
+ \ifstr{#3}{}{%
+ }{%
+ \ifstr{#2}{}{%
+ \addcontentsline{toc}{#1}{\protect\nonumberline#3}%
+ }{%
+ \addcontentsline{toc}{#1}{\protect\numberline{#2}#3}%
+ }%
+ }%
+ }%
+\end{lstcode}
+dafür\IndexCmd{ifstr} zu sorgen, dass Einträge mit leerer \PName{Überschrift}
+erst gar nicht vorgenommen werden. Eine solche Änderung ist in der Praxis
+jedoch nicht notwendig, da die Unterdrückung leerer Einträge bereits auf
+andere Weise in die \KOMAScript-Klassen eingebaut ist. Siehe hierzu auch die
+Erklärung zu den Gliederungsbefehlen in \autoref{sec:maincls.structure} ab
+\DescPageRef{maincls.cmd.part}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{addparttocentry}\Parameter{Nummer}\Parameter{Überschrift}
+ \Macro{addchaptertocentry}\Parameter{Nummer}\Parameter{Überschrift}
+ \Macro{addsectiontocentry}\Parameter{Nummer}\Parameter{Überschrift}
+ \Macro{addsubsectiontocentry}\Parameter{Nummer}\Parameter{Überschrift}
+ \Macro{addsubsubsectiontocentry}\Parameter{Nummer}\Parameter{Überschrift}
+ \Macro{addparagraphtocentry}\Parameter{Nummer}\Parameter{Überschrift}
+ \Macro{addsubparagraphtocentry}\Parameter{Nummer}\Parameter{Überschrift}
+\end{Declaration}%
+Auch \ChangedAt{v3.08}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} die oben dokumentierte Anweisung
+\DescRef{\LabelBase.cmd.addtocentrydefault}\IndexCmd{addtocentrydefault}%
+\important{\DescRef{\LabelBase.cmd.addtocentrydefault}} wird von den
+\KOMAScript-Klassen nur dann direkt aufgerufen, wenn für die angegebene
+\PName{Ebene} keine direkte Anweisung definiert oder diese
+\Macro{relax}\IndexCmd{relax}\important{\Macro{relax}} ist. In der
+Voreinstellung sind die angegebenen Anweisungen alle so definiert, dass sie
+ihre \PName{Ebene} und die Argumente direkt an
+\DescRef{\LabelBase.cmd.addtocentrydefault} weitergeben.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{raggedchapterentry}
+\end{Declaration}
+Bei früheren\ChangedAt{v3.21}{\Class{scrbook}\and \Class{scrreprt}} Version
+von \KOMAScript{} gab es die Möglichkeit, das Makro \Macro{raggedchapterentry}
+als \Macro{raggedright} zu definieren, um den Text der Kapiteleinträge ins
+Inhaltsverzeichnis im linksbündigen Flattersatz zu setzen. Offiziell existiert
+diese Möglichkeit seit \KOMAScript-Version~3.21 nicht mehr.
+
+Tatsächlich ist aber die Eigenschaft \PValue{raggedentrytext} für den
+Eintrags-Stil \PValue{tocline} im Paket
+\hyperref[cha:tocbasic]{\Package{tocbasic}}\IndexPackage{tocbasic} so
+implementiert, dass sie das Makro \Macro{ragged\PName{Eintragsebene}entry}
+entweder auf \Macro{relax} oder auf \Macro{raggedright} setzt. Bei der
+Auswertung der Eigenschaft wird dann getestet, ob das entsprechende Makro
+entweder \Macro{raggedright} ist oder als \Macro{raggedright} definiert
+ist. In beiden Fällen wird Flattersatz verwendet. In allen anderen Fällen wird
+kein Flattersatz verwendet.
+
+Da schon früher dokumentiert war, dass \Macro{raggedchapterentry} nicht
+als etwas anderes als \Macro{raggedright} definiert werden sollte, ist damit
+Kompatibilität zum dokumentierten Verhalten früherer Versionen erreicht. Wie
+in früheren Versionen gewarnt, führen andere Definitionen von
+\Macro{raggedchapterentry} -- nun aber auch von \Macro{raggedsectionentry} und
+entsprechend für die anderen Eintragsebenen -- möglicherweise zu unerwarteten
+Ergebnissen.
+
+Empfohlen wird, eventuell gewünschten Flattersatz für Verzeichniseinträge
+stattdessen über die genannte Eigenschaft des Verzeichniseintragsstils
+\PValue{tocline} zu wählen.%
+\EndIndexGroup
+
+
+% \subsection{Schrifteinstellungen}
+% \seclabel{fonts}
+
+\begin{Declaration}
+ \Macro{@fontsizefilebase}
+ \Macro{changefontsizes}\Parameter{Schriftgröße}
+\end{Declaration}
+Der\iffree{ in \autoref{sec:maincls-experts.addInfos}}{} auf
+\DescPageRef{maincls-experts.option.fontsize} für die Schriftgrößendateien
+angegebene Präfix \File{scrsize}, ist lediglich die Voreinstellung für das
+interne Makro \Macro{@fontsizefilebase}\IndexCmd{@fontsizefilebase}, die
+verwendet wird, wenn das Makro beim Laden der Klasse oder des Pakets
+\Package{scrextend} noch nicht definiert ist. Autoren von Wrapper-Klassen
+können dieses Makro abweichend definieren, um andere Schriftgrößendateien zu
+verwenden. Ebenso\textnote{Tipp!} können Autoren von Wrapper-Klassen die
+\emph{fallback}-Lösung der berechneten Schriftgrößen dadurch ändern oder
+abschalten, dass sie das Makro
+\Macro{changefontsizes}\important{\Macro{changefontsizes}}, das als Argument
+die gewünschte \PName{Schriftgröße} erwartet, umdefinieren. Das
+Makro\textnote{Achtung!} \Macro{changefontsizes} ist jedoch nicht als
+Anweisung für den Aufruf durch Anwender konzipiert.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{newkomafont}\OParameter{Warnung}\Parameter{Element}
+ \Parameter{Voreinstellung}
+ \Macro{aliaskomafont}\Parameter{Aliasname}\Parameter{Element}
+\end{Declaration}
+Experten können mit \Macro{newkomafont} eine \PName{Voreinstellung} für die
+Schrift eines \PName{Element}s definieren. Anschließend kann diese
+Voreinstellung mit den Anweisungen \DescRef{maincls.cmd.setkomafont} und
+\DescRef{maincls.cmd.addtokomafont} (siehe \autoref{sec:maincls.textmarkup},
+\DescPageRef{maincls.cmd.setkomafont}) verändert werden. Natürlich wird diese
+Schrift damit noch lange nicht verwendet. Der Experte muss selbst Sorge dafür
+tragen, dass er an den entsprechenden Stellen die Anweisung
+\DescRef{maincls.cmd.usekomafont}%
+\important{\DescRef{maincls.cmd.usekomafont}}\IndexCmd{usekomafont} (siehe
+\DescPageRef{maincls.cmd.usekomafont}) für dieses Element in seinen
+Definitionen einbaut. Der Aufruf von \Macro{newkomafont} für ein bereits
+existierendes Element führt zu Fehlermeldungen.
+
+Das optionale Argument \PName{Warnung} definiert eine Warnmeldung. Diese wird
+bei den \KOMAScript-Klassen per \Macro{ClassWarning} oder beim Paket
+\Package{scrextend} per \Macro{PackageWarning} immer dann ausgegeben, wenn die
+Voreinstellung für das Element verändert wird. Als Urheber der
+Warnung wird das Paket
+\Package{scrkbase}\IndexPackage{scrkbase}\important{\Package{scrkbase}}
+angegeben.
+
+Mit \Macro{aliaskomafont} kann für ein bereits existierendes \PName{Element}
+ein \PName{Aliasname} definiert werden. \KOMAScript{} informiert den Benutzer
+in der \File{log}-Datei über den Namen des tatsächlichen Elements, wenn dieser
+den \PName{Aliasname} verwendet. \PName{Aliasname}n\textnote{Tipp!} können
+beispielsweise dann eingesetzt werden, wenn der Entwickler sich später einen
+besseren Namen für ein Element überlegt und der alte Name aus
+Kompatibilitätsgründen weiter verwendbar bleiben soll. Außerdem kann damit die
+Benutzerfreundlichkeit erhöht werden, indem einem Element all die Namen als
+Alias zugeordnet werden, die unterschiedliche Benutzer intuitiv wählen
+würden. \KOMAScript{} selbst macht von dieser Möglichkeit regen Gebrauch.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{addtokomafontrelaxlist}\Parameter{Makro}
+ \Macro{addtokomafontonearglist}\Parameter{Makro}
+ \Macro{addtokomafontgobblelist}\Parameter{Makro}
+\end{Declaration}
+Wie bereits in \autoref{part:forAuthors} der Anleitung erklärt, dürfen in den
+Schrifteinstellungen der Elemente nur Befehle zur Wahl der Größe, Familie,
+Codierung, Strichstärke, Form und Farbe enthalten sein. Dabei erfolgt schon
+die Änderung der Farbe bei \LaTeX{} nicht transparent und kann damit
+unerwünschte Effekte hervorrufen, wenn man \DescRef{maincls.cmd.usekomafont}
+an ungünstiger Stelle verwendet.
+
+Nun neigen Anwender dazu, in die Schrifteinstellungen auch ganz andere,
+teilweise sehr kritische Dinge zu packen, beispielsweise ein
+\Macro{MakeUppercase} ganz am Ende der Einstellung. Bei der internen
+Verwendung der Schrifteinstellungen wurde daher möglichst so vorgegangen, dass
+viele dieser eigentlich verbotenen Einstellungen trotzdem keinen Schaden
+anrichten und es meist sogar funktioniert, wenn der letzte Befehl in der
+Schrifteinstellung ein Argument erwartet, also beispielsweise \Macro{textbf}
+anstelle von \Macro{bfseries} verwendet wird. Eine Garantie gibt es dafür
+jedoch nicht.
+
+In Einzelfällen war es innerhalb von \KOMAScript{} notwendig, die Umschaltung
+wirklich auf Schrifteinstellungen zu beschränken. Dies erfolgt dann
+beispielsweise mit
+\DescRef{maincls.cmd.usefontofkomafont}\IndexCmd{usefontofkomafont}%
+\IndexCmd{usesizeofkomafont}\IndexCmd{useencodingofkomafont}%
+\IndexCmd{usefamilyofkomafont}\IndexCmd{useseriesofkomafont}%
+\IndexCmd{useshapeofkomafont} statt \DescRef{maincls.cmd.usekomafont} (siehe
+\autoref{sec:maincls.textmarkup},
+\DescPageRef{maincls.cmd.usefontofkomafont}).
+
+Die Anweisung \DescRef{maincls.cmd.usefontofkomafont} und ihre Geschwister
+haben allerdings ihre Grenzen. Daher darf die vermeintliche Schrifteinstellung
+eines Elements keinesfalls ein voll expandierbares Argument erwarten. Genau
+das ist aber beispielsweise bei \Macro{MakeUppercase} der
+Fall. Daher\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} verwaltet \KOMAScript{} eine interne Liste von Makros, die
+innerhalb von \DescRef{maincls.cmd.usefontofkomafont} und ihren Geschwistern
+zu \Macro{relax} werden sollen. In der Voreinstellung ist das seit
+\KOMAScript~3.24\ChangedAt{v3.24}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} nur noch \Macro{normalcolor}.
+
+Es ist zu beachten, dass das angegebene \PName{Makro} wirklich stur auf
+\Macro{relax} gesetzt wird. Irgendwelche Argumente innerhalb der
+Schrifteinstellung werden also gegebenenfalls lokal ausgeführt. Daher dürfen
+Anweisungen wie \Macro{setlength} keinesfalls zu dieser Liste hinzugefügt
+werden. Für alle Fehler, die durch die Verwendung von
+\Macro{addtokomafontrelaxlist} entstehen, ist der Anwender selbst
+verantwortlich. Außerdem sollte diese Möglichkeit nicht als Legitimation dafür
+missverstanden werden, den Schrifteinstellungen alle möglichen Anweisungen
+hinzuzufügen!
+
+Für\ChangedAt{v3.24}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} Befehle, deren erstes Argument noch ohne zusätzliche
+Gruppe ausgeführt werden soll, gibt es
+\Macro{addtokomafontonearglist}. Das angegebene \PName{Makro} wird dabei auf
+\Macro{@firstofone} gesetzt. In der Voreinstellung wird dies für
+\Macro{MakeUppercase} und \Macro{MakeLowercase} verwendet.
+
+Soll\ChangedAt{v3.19}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} hingegen ein \PName{Makro} innerhalb von
+\DescRef{maincls.cmd.usefontofkomafont} und ihren Geschwistern zusammen mit
+seinem ersten Argument ignoriert werden, so ist stattdessen
+\Macro{addtokomafontgobblelist} zu verwenden. Ein Beispiel dafür ist die
+Anweisung \Macro{color}, die einschließlich des Namens der Farbe ignoriert
+werden muss und deshalb bereits in der Voreinstellung Teil dieser Liste ist.
+
+Es ist zu beachten, dass sich die hier genannten Voreinstellungen in
+zukünftigen Versionen ändern können. Wenn Sie bestimmte Befehle in einer der
+Liste zwingend benötigen, sollte Sie diese also selbst explizit hinzufügen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{IfExistskomafont}\Parameter{Element}\Parameter{Dann-Code}%
+ \Parameter{Sonst-Code}
+ \Macro{IfIsAliaskomafont}\Parameter{Element}\Parameter{Dann-Code}%
+ \Parameter{Sonst-Code}
+\end{Declaration}
+Da\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}\and \Class{scrlttr2}} die Schrift mancher Elemente erst ab
+bestimmten Versionen von \KOMAScript{} geändert werden kann, ist es manchmal
+sinnvoll, vorher testen zu können, ob ein \PName{Element} mit dieser
+Möglichkeit überhaupt existiert. Die Anweisung \Macro{IfExistskomafont} führt
+den \PName{Dann-Code} genau dann aus, wenn das \PName{Element} über
+\DescRef{\LabelBase.cmd.newkomafont} oder
+\DescRef{\LabelBase.cmd.aliaskomafont} definiert wurde und daher auch mit
+\DescRef{maincls.cmd.setkomafont} oder \DescRef{maincls.cmd.addtokomafont}
+geändert und mit den \Macro{use\dots komafont}-Anweisungen abgefragt werden
+kann. Anderenfalls wird der \PName{Sonst-Code} ausgeführt.
+
+Im Unterschied dazu führt
+\Macro{IfIsAliaskomafont}\ChangedAt{v3.25}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}} den
+\PName{Dann-Code} nur aus, wenn \PName{Element} über
+\DescRef{\LabelBase.cmd.aliaskomafont} als Alias für ein anderes Element
+definiert wurde. Sowohl für nicht definierte Elemente als auch für mit
+\DescRef{\LabelBase.cmd.newkomafont} definierte Elemente wird hingegen der
+\PName{Sonst-Code} ausgeführt.%
+\EndIndexGroup
+
+
+% \subsection{Absatzmarkierung}
+% \seclabel{parskip}
+
+\begin{Declaration}
+ \Macro{setparsizes}\Parameter{Einzug}\Parameter{Abstand}
+ \Parameter{Endzeilenleerraum}
+\end{Declaration}
+\KOMAScript{} bietet mit dieser Anweisung die Möglichkeit, sowohl den
+Absatzeinzug als auch den Absatzabstand und den Freiraum am Ende der letzten
+Zeile des Absatzes einzustellen. Diese Anweisung ist immer dann zu verwenden,
+wenn die Änderungen auch bei Einstellung
+\OptionValueRef{\LabelBase}{parskip}{relative} beachtet werden
+sollen. \KOMAScript{}\textnote{Beispiel} selbst verwendet sie beispielsweise
+in der Form
+\begin{lstcode}
+ \setparsizes{0pt}{0pt}{0pt plus 1fil}
+\end{lstcode}
+um sowohl den Einzug als auch den Abstand abzuschalten und am Ende des
+Absatzes beliebigen Freiraum zu erlauben. Eine solche Maßnahme ist sinnvoll,
+wenn ein Absatz nur aus einer Box besteht, die ohne Abstand nach oben oder
+unten gesetzt werden soll und die gesamte Spaltenbreite einnimmt. Soll
+demgegenüber die Box nur die gesamte Breite einnehmen, jedoch mit der
+aktuellen Einstellung bezüglich des Absatzabstandes gesetzt werden, so ist
+\begin{lstcode}
+ \setlength{\parfillskip}{0pt plus 1fil}
+\end{lstcode}
+vorzuziehen.
+
+Eine\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} Neuberechnung\IndexCmd{activateareas} oder Reaktivierung
+der Einstellungen für den Satzspiegel und die Ränder (siehe
+\autoref{cha:typearea}) führt seit \KOMAScript~3.17 übrigens immer auch zu
+einer Neueinstellung der via \Macro{setparsizes} gesetzten Werte, falls die
+Werte nicht zwischenzeitlich geändert wurden. Dies sollte ein Grund mehr sein,
+nicht an \KOMAScript{} vorbei die Einstellungen zu ändern. Die Neuberechnung
+wird bei einer Kompatibilitätseinstellung zu einer früheren Version (siehe
+\autoref{sec:maincls.compatibilityOptions},
+\DescPageRef{maincls.option.version}, Option
+\DescRef{maincls.option.version}%
+\IndexOption{version}\important{\OptionValueRef{maincls}{version}{3.17}})
+deaktiviert.%
+%
+\EndIndexGroup
+
+% \subsection{Zähler}
+% \seclabel{counter}
+
+\LoadNonFree{scrbookreportarticle-experts}{3}
+
+% \subsection{Gliederung}
+% \seclabel{sections}
+
+\begin{Declaration}
+ \Macro{DeclareSectionCommand}\OParameter{Einstellungen}\Parameter{Name}
+ \Macro{DeclareNewSectionCommand}\OParameter{Einstellungen}\Parameter{Name}
+ \Macro{RedeclareSectionCommand}\OParameter{Einstellungen}\Parameter{Name}
+ \Macro{ProvideSectionCommand}\OParameter{Einstellungen}\Parameter{Name}
+\end{Declaration}
+Diese\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} Anweisungen dienen dazu, einen neuen Gliederungsbefehl
+\Macro{\PName{Name}} zu definieren beziehungsweise einen vorhandenen
+Gliederungsbefehl \Macro{\PName{Name}} zu verändern. Dazu werden über das
+optionale Argument \PName{Einstellungen} vorgenommen. Die
+\PName{Einstellungen} sind dabei eine durch Komma separierte Liste von
+\PName{Schlüssel}=\PName{Wert}-Zuweisungen. Neben den vom Stil der Überschrift
+unabhängigen Eigenschaften, die
+\autoref{tab:maincls-experts.declaresection.keys},
+\autopageref{tab:maincls-experts.declaresection.keys} zu entnehmen sind, gibt
+es auch Eigenschaften, die vom jeweiligen Stil abhängig sind. Derzeit stehen
+die folgenden Stile zur Verfügung:
+\begin{description}\setkomafont{descriptionlabel}{}
+\item[\PValue{chapter}] \ChangedAt{v3.18}{\Class{scrbook}\and
+ \Class{scrreprt}}ist der Stil\textnote{Gliederungsstil
+ \PValue{chapter}}\Index{Gliederung>Stil>~\PValue{chapter}} für
+ Kapitelüberschriften. Dieser Stil wird in der Voreinstellung für
+ \DescRef{maincls.cmd.chapter}\IndexCmd{chapter} und indirekt für
+ \DescRef{maincls.cmd.addchap}\IndexCmd{addchap} verwendet. Neue
+ Überschriften in diesem Stil können definiert werden, haben dann aber nicht
+ automatisch auch eine \Macro{add\dots}-Variante. Für die Konfiguration der
+ vorhandenen oder neuer Überschriften stehen zusätzlich die Eigenschaften aus
+ \autoref{tab:maincls-experts.declarechapterstyle.keys},
+ \autopageref{tab:maincls-experts.declarechapterstyle.keys} zur
+ Verfügung. Die\textnote{Achtung!} Anweisung \DescRef{maincls.cmd.addchap}
+ wird ebenso wie die Sternformen automatisch zusammen mit
+ \DescRef{maincls.cmd.chapter} umkonfiguriert und kann nicht unabhängig davon
+ verändert werden. Es ist zu beachten, dass dieser Stil von
+ \Class{scrartcl}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} nicht
+ bereitgestellt wird.
+\item[\PValue{part}] \ChangedAt{v3.18}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}ist der
+ Stil\textnote{Gliederungsstil
+ \PValue{part}}\Index{Gliederung>Stil>~\PValue{part}} für
+ Teileüberschriften. Dieser Stil wird in der Voreinstellung für
+ \DescRef{maincls.cmd.part}\IndexCmd{part} und indirekt für
+ \DescRef{maincls.cmd.addpart}\IndexCmd{addpart} verwendet. Neue
+ Überschriften in diesem Stil können definiert werden, haben dann aber nicht
+ automatisch auch eine \Macro{add\dots}-Variante. Für die Konfiguration der
+ vorhandenen oder neuer Überschriften stehen zusätzlich die Eigenschaften aus
+ \autoref{tab:maincls-experts.declarepartstyle.keys},
+ \autopageref{tab:maincls-experts.declarepartstyle.keys} zur
+ Verfügung. Die\textnote{Achtung!} Anweisung \DescRef{maincls.cmd.addpart}
+ wird ebenso wie die Sternformen automatisch zusammen mit
+ \DescRef{maincls.cmd.part} umkonfiguriert und kann nicht unabhängig davon
+ verändert werden.
+\item[\PValue{section}] ist der Stil\textnote{Gliederungsstil
+ \PValue{section}}\Index{Gliederung>Stil>~\PValue{section}} für
+ Abschnittsüberschriften und tieferer Ebenen. Dieser Stil wird derzeit sowohl
+ für \DescRef{maincls.cmd.section}\IndexCmd{section},
+ \DescRef{maincls.cmd.subsection}\IndexCmd{subsection},
+ \DescRef{maincls.cmd.subsubsection}\IndexCmd{subsubsection} als auch
+ \DescRef{maincls.cmd.paragraph}\IndexCmd{paragraph} und
+ \DescRef{maincls.cmd.subparagraph}\IndexCmd{subparagraph} verwendet. Neue
+ Überschriften in diesem Stil können definiert werden. Für die Konfiguration
+ der vorhandenen oder neuer Überschriften stehen zusätzlich die Eigenschaften
+ aus \autoref{tab:maincls-experts.declaresectionstyle.keys},
+ \autopageref{tab:maincls-experts.declaresectionstyle.keys} zur
+ Verfügung. Bei\ChangedAt{v3.24}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} der Neudefinition sind die \PName{Schlüssel}
+ \PValue{style}, \PValue{afterskip}, \PValue{beforeskip} und \PValue{level}
+ zwingend. Die \PName{Schlüssel}
+ \PValue{afterindent}\ChangedAt{v3.26}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}, \PValue{font}, \PValue{indent} und
+ \PValue{runin} sind empfohlen. \PValue{tocindent} und \PValue{tocnumwidth}
+ können abhängig vom Namen der Gliederungsebene ebenfalls zwingend sein. Das
+ gilt auch, falls ein Befehl, der bisher kein Gliederungsbefehl war, mit
+ \Macro{RedeclareSectionCommand} zu einem Gliederungsbefehl umdefiniert
+ wird. Die\textnote{Achtung!} Anweisung \Macro{addsec} wird ebenso wie die
+ Sternformen zusammen mit \DescRef{maincls.cmd.section} umkonfiguriert und
+ kann nicht unabhängig davon verändert werden.
+\end{description}
+Bei der Definition eines Gliederungsbefehls wird ein gleichnamiges Element
+angelegt, falls es noch nicht existiert. Bei \PValue{chapter} und
+\PValue{part} werden ebenso Elemente für die Präfixzeile erzeugt. Die
+Schrifteinstellung der Elemente kann mit \DescRef{maincls.cmd.setkomafont} und
+\DescRef{maincls.cmd.addtokomafont} (siehe \autoref{sec:maincls.textmarkup},
+\DescPageRef{maincls.cmd.setkomafont}) geändert werden.
+
+\begin{table}
+ \caption[{Stil unabhängige Eigenschaften bei der Deklaration von
+ Gliederungsbefehlen}]{Mögliche vom Stil der Überschrift unabhängige
+ \PName{Schlüssel} und \PName{Werte} für die \PName{Eigenschaften} bei der
+ Deklaration von Gliederungsbefehlen}%
+ \label{tab:maincls-experts.declaresection.keys}%
+ \begin{tabularx}{\linewidth}{llX}
+ \toprule
+ \PName{Schlüssel}
+ & \PName{Wert}
+ & Bedeutung \\
+ \midrule
+ \PValue{counterwithin}
+ & \PName{Zählername}
+ & Der zur Gliederungsebene gehörende Zähler soll vom als Wert angegebenen
+ Zähler abhängig sein. Wird \PName{Zählername} über \Macro{stepcounter}
+ oder \Macro{refstepcounter} erhöht, so wird der zur Gliederungsebene
+ gehörende Zähler auf 0 zurückgesetzt. Darüber hinaus wird
+ \Macro{the\PName{Zählername}}, gefolgt von einem Punkt in der Ausgabe
+ des zur Gliederungsebene gehörenden Zählers vorangestellt.\\
+ \PValue{counterwithout}%
+ \ChangedAt{v3.19}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ & \PName{Zählername}
+ & Hebt eine früher vorgenommene \PValue{counterwithin}-Einstellung auf und
+ ist daher nur bei Änderung vorhandener Gliederungsbefehle sinnvoll.\\
+ \PValue{expandtopt}
+ & \PName{Schalter}
+ & Ist dieser Schalter aktiv, so werden alle in den \PName{Einstellungen}
+ nachfolgend angegebenen Werte für Längen vollständig expandiert,
+ ausgewertet und in \texttt{pt} umgerechnet gespeichert. Ist der
+ Schalter nicht aktiv, so werden alle nachfolgend angegebenen
+ Werte für Längen nur testweise expandiert und ausgewertet, aber
+ lediglich expandiert gespeichert. Es werden die Werte für einfache
+ Schalter aus \autoref{tab:truefalseswitch},
+ \autopageref{tab:truefalseswitch} verstanden.\\
+ \PValue{level}
+ & \PName{Ganzzahl}
+ & Nummerischer Wert der Gliederungsebene (siehe Zähler
+ \DescRef{maincls.counter.secnumdepth}, \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.counter.secnumdepth}); der Wert sollte eindeutig
+ sein und ist für neue Ebenen zwingend.\\
+ \PValue{style}
+ & \PName{Name}
+ & Legt den Stil der Überschrift fest und ist für neue Ebenen zwingend.\\
+ \PValue{tocstyle}%
+ \ChangedAt{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ & \PName{Name}
+ & Legt den Stil des zur Überschrift gehörenden Verzeichniseintrags fest.
+ Es können alle bisher definierten Verzeichniseintragsstile (siehe
+ \autoref{sec:tocbasic.tocstyle}) verwendet werden. Ein leerer
+ \PName{Name} verhindert die Umdefinierung des Befehls
+ \Macro{l@\dots} für die Verzeichniseinträge.\\
+ \PValue{toc\PName{Option}}%
+ \ChangedAt{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ & \PName{Wert}
+ & Weitere Optionen in Abhängigkeit vom via \Option{tocstyle} gewählten
+ Verzeichniseintragsstil. Siehe dazu \autoref{sec:tocbasic.tocstyle} ab
+ \autopageref{sec:tocbasic.tocstyle}. Für die von
+ \hyperref[cha:tocbasic]{\Package{tocbasic}} vordefinierten
+ Verzeichniseintragsstile finden sich die als \PName{Option} verwendbaren
+ Attribute in \autoref{tab:tocbasic.tocstyle.attributes}, ab
+ \autopageref{tab:tocbasic.tocstyle.attributes}.\\
+ % \PValue{tocindent}
+ % & \PName{Länge}
+ % & Der horizontale Einzug des zum Gliederungsbefehls gehörenden
+ % Eintrags ins Inhaltsverzeichnis, falls ein solcher abhängig von
+ % \DescRef{maincls.counter.tocdepth} (siehe \autoref{sec:maincls.toc},
+ % \DescPageRef{maincls.counter.tocdepth}) erzeugt wird.\\
+ % \PValue{toclevel}
+ % & \PName{Ganzzahl}
+ % & Die Ebene des zum Gliederungsbefehl gehörenden Eintrags ins
+ % Inhaltsverzeichnis, falls diese von \PValue{level} abweichen soll
+ % (siehe auch \DescRef{maincls.counter.tocdepth} in
+ % \autoref{sec:maincls.toc}, \DescPageRef{maincls.counter.tocdepth}). \\
+ % PValue{tocnumwidth}
+ % & \PName{Länge}
+ % & Die Breite, die für die Gliederungsnummer im zum Gliederungsbefehl
+ % gehörenden Eintrag ins Inhaltsverzeichnis reserviert wird.\\
+ \bottomrule
+ \end{tabularx}
+\end{table}
+
+\begin{table}
+ \caption[{Eigenschaften des Stils \PValue{section} bei der Deklaration von
+ Gliederungsbefehlen}]{Zusätzliche \PName{Schlüssel} und \PName{Werte} für
+ die \PName{Eigenschaften} bei der Deklaration von Gliederungsbefehlen des
+ Stils \PValue{section}\Index{Gliederung>Stil>~\PValue{section}}}%
+ \label{tab:maincls-experts.declaresectionstyle.keys}%
+ \begin{tabularx}{\linewidth}{llX}
+ \toprule
+ \PName{Schlüssel} & \PName{Wert} & Bedeutung \\
+ \midrule
+ \PValue{afterindent}%
+ \ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ & \PName{Schalter}
+ & Es wird bestimmt, ob auf die erste Zeile nach einer freistehenden
+ Überschrift (siehe \PValue{runin}) der aktuelle Absatzeinzug angewendet
+ wird. Bei der Voreinstellung \PValue{bysign} bestimmt das Vorzeichen von
+ \PValue{beforeskip} das Verhalten. Ein negativer Wert für
+ \PValue{beforeskip} bewirkt dann, dass der Absatzeinzug entfällt. Mit
+ den Werten für einfache Schalter (siehe \autoref{tab:truefalseswitch},
+ \autopageref{tab:truefalseswitch}) kann die Anwendung des aktuellen
+ Absatzeinzugs explizit aktiviert oder deaktiviert werden.\\
+ \PValue{afterskip}
+ & \PName{Länge}
+ & Im Fall einer Spitzmarke (siehe \PValue{runin}) ist der Betrag der
+ \PName{Länge} der horizontale Abstand nach der Überschrift. Es
+ wird in diesem Fall also immer ein positiver Abstand eingefügt. Im Fall
+ einer freistehenden Überschrift ist \PName{Länge} der vertikale Abstand
+ nach der Überschrift. Ist \OptionValue{runin}{bysign}, so
+ führt ein positiver Wert zu einer freistehenden Überschrift, während
+ ein negativer Wert oder Null zu einer Spitzmarke führt.\\
+ \PValue{beforeskip}
+ & \PName{Länge}
+ & Gibt den vertikalen Abstand vor der Überschrift an. Ist
+ \OptionValue{afterindent}{bysign}, so wird für den Abstand der Betrag
+ von \PName{Länge} verwendet, es wird also trotzdem ein positiver
+ Abstand eingefügt. Negative Werte bedeuten in diesem Fall, dass ein
+ Absatzeinzug nach der Überschrift entfällt.\\
+ \PValue{font}
+ & \PName{Befehle}
+ & Die Schrifteinstellungen, die zusätzlich zum Element
+ \DescRef{maincls.fontelement.disposition} bei der Ausgabe der
+ Überschrift verwendet werden sollen. Hier sind alle \PName{Befehle}
+ erlaubt, die auch über \DescRef{maincls.cmd.setkomafont} und
+ \DescRef{maincls.cmd.addtokomafont} für das Element des
+ Gliederungsbefehls erlaubt sind.\\
+ \PValue{indent}
+ & \PName{Länge}
+ & Einzug vom linken Rand vor der Ausgabe der Nummer und des Textes
+ der Überschrift.\\
+ \PValue{runin}%
+ \ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ & \PName{Schalter}
+ & Es wird bestimmt, ob die Überschrift als Spitzmarke\iffree{ (am
+ Zeilenanfang)}{} oder freistehend gesetzt wird. \iffree{}{Bei einer
+ Spitzmarke schließt sich der nachfolgende Text direkt an die
+ Überschrift an, während bei einer freistehenden Überschrift erst noch
+ ein Absatz und ein vertikaler Abstand (siehe \PValue{afterskip})
+ folgt. }%
+ Bei der Voreinstellung \PValue{bysign} bestimmt das Vorzeichen von
+ \PValue{afterskip} das Verhalten. Ein positiver Wert für
+ \PValue{afterskip} bewirkt dann eine freistehende Überschrift.
+ Darüber hinaus kann mit den Werten für einfache Schalter (siehe
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch})
+ eine Spitzmarke explizit aktiviert oder deaktiviert werden.\\
+ \bottomrule
+ \end{tabularx}
+\end{table}
+
+\begin{table}
+ \caption[{Eigenschaften des Stils \PValue{chapter} bei der Konfiguration von
+ Gliederungsbefehlen}]{Zusätzliche \PName{Schlüssel} und \PName{Werte} für
+ die \PName{Eigenschaften} bei der Konfiguration von Gliederungsbefehlen des
+ Stils \PValue{chapter}\Index{Gliederung>Stil>~\PValue{chapter}}}%
+ \label{tab:maincls-experts.declarechapterstyle.keys}%
+ \begin{tabularx}{\linewidth}{llX}
+ \toprule
+ \PName{Schlüssel} & \PName{Wert} & Bedeutung \\
+ \midrule
+ \PValue{afterindent}%
+ \ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}}%
+ & \PName{Schalter}
+ & Es wird bestimmt, ob auf die erste Zeile nach der Überschrift der
+ aktuelle Absatzeinzug angewendet wird. Bei der Voreinstellung
+ \PValue{bysign} bestimmt das Vorzeichen von \PValue{beforeskip} das
+ Verhalten. Ein negativer Wert für \PValue{beforeskip} bewirkt dann, dass
+ der Absatzeinzug entfällt. Mit den Werten für einfache Schalter (siehe
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}) kann
+ die Anwendung des aktuellen Absatzeinzugs explizit aktiviert oder
+ deaktiviert werden.\\
+ \PValue{afterskip}%
+ \ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}}%
+ & \PName{Länge}
+ & Gibt den vertikalen Abstand nach der Überschrift an.\\
+ \PValue{beforeskip}
+ & \PName{Länge}
+ & Gibt den vertikalen Abstand vor der Überschrift an. Ist
+ \OptionValue{afterindent}{bysign}, so wird für den Abstand der Betrag
+ von \PName{Länge} verwendet, es wird also trotzdem ein positiver
+ Abstand eingefügt. Negative Werte bedeuten in diesem Fall, dass ein
+ Absatzeinzug nach der Überschrift entfällt.\\
+ \PValue{font}
+ & \PName{Befehle}
+ & Die Schrifteinstellungen, die zusätzlich zum Element
+ \DescRef{maincls.fontelement.disposition} bei der Ausgabe der
+ Überschrift verwendet werden sollen. Hier sind alle \PName{Befehle}
+ erlaubt, die auch über \DescRef{maincls.cmd.setkomafont} und
+ \DescRef{maincls.cmd.addtokomafont} für das Element des
+ Gliederungsbefehls erlaubt sind.\\
+ \PValue{innerskip}
+ & \PName{Länge}
+ & Der vertikale Abstand zwischen Präfixzeile und Text der
+ Überschrift, falls eine Präfixzeile verwendet wird.\\
+ \PValue{pagestyle}
+ & \PName{Seitenstil}
+ & Der Name des Seitenstils, der für die Seite mit der Überschrift
+ verwendet werden soll. Es findet keine Überprüfung statt, ob der
+ angegebene \PName{Seitenstil} gültig ist. Fehlerhafte Angaben führen
+ daher zu Fehlermeldungen bei Verwendung des Gliederungsbefehls.\\
+ \PValue{prefixfont}
+ & \PName{Befehle}
+ & Die Schrifteinstellungen, die zusätzlich zum Element
+ \DescRef{maincls.fontelement.disposition} und dem Element des
+ Gliederungsbefehls bei der Ausgabe einer Präfixzeile in der Überschrift
+ verwendet werden sollen. Hier sind alle \PName{Befehle} erlaubt, die
+ auch über \DescRef{maincls.cmd.setkomafont} und
+ \DescRef{maincls.cmd.addtokomafont}für das Element der Präfixzeile des
+ Gliederungsbefehls erlaubt sind.\\
+ \bottomrule
+ \end{tabularx}
+\end{table}
+
+\begin{table}
+ \caption[{Eigenschaften des Stils \PValue{part} bei der Konfiguration von
+ Gliederungsbefehlen}]{Zusätzliche \PName{Schlüssel} und \PName{Werte} für
+ die \PName{Eigenschaften} bei der Konfiguration von Gliederungsbefehlen des
+ Stils \PValue{part}\Index{Gliederung>Stil>~\PValue{part}}}%
+ \label{tab:maincls-experts.declarepartstyle.keys}%
+ \begin{tabularx}{\linewidth}{llX}
+ \toprule
+ \PName{Schlüssel}
+ & \PName{Wert}
+ & Bedeutung \\
+ \midrule
+ \PValue{afterindent}%
+ \ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ & \PName{Schalter}
+ & Es wird bestimmt, ob auf die erste Zeile nach der
+ Überschrift der aktuelle Absatzeinzug angewendet
+ wird. Bei der Einstellung \PValue{bysign} bestimmt das Vorzeichen von
+ \PValue{beforeskip} das Verhalten. Ein negativer Wert für
+ \PValue{beforeskip} bewirkt dann, dass der Absatzeinzug entfällt. Mit
+ den Werten für einfache Schalter (siehe \autoref{tab:truefalseswitch},
+ \autopageref{tab:truefalseswitch}) kann die Anwendung des aktuellen
+ Absatzeinzugs explizit aktiviert oder deaktiviert werden. Aus
+ Kompatibilitätsgründen ist die Voreinstellung
+ für \Class{scrartcl} \PValue{false}, für \Class{scrbook} und
+ \Class{scrreprt} \PValue{true}.\\
+ \PValue{afterskip}
+ & \PName{Länge}
+ & Der Betrag gibt den vertikalen Abstand nach der Überschrift an.\\
+ \PValue{beforeskip}
+ & \PName{Länge}
+ & Gibt den vertikalen Abstand vor der Überschrift an. Ist
+ \OptionValue{afterindent}{bysign}, so wird für den Abstand der Betrag
+ von \PName{Länge} verwendet, es wird also trotzdem ein positiver
+ Abstand eingefügt. Negative Werte bedeuten in diesem Fall, dass ein
+ Absatzeinzug nach der Überschrift entfällt.\\
+ \PValue{font}
+ & \PName{Befehle}
+ & Die Schrifteinstellungen, die zusätzlich zum Element
+ \DescRef{maincls.fontelement.disposition} bei der Ausgabe der
+ Überschrift verwendet werden sollen. Hier sind alle \PName{Befehle}
+ erlaubt, die auch über \DescRef{maincls.cmd.setkomafont} und
+ \DescRef{maincls.cmd.addtokomafont} für das Element des
+ Gliederungsbefehls erlaubt sind.\\
+ \PValue{innerskip}
+ & \PName{Länge}
+ & %\OnlyAt{\Class{scrbook}\and \Class{scrreprt}}%
+ Der vertikale Abstand zwischen Präfixzeile und Text der Überschrift bei
+ \Class{scrbook} und \Class{scrreprt}.\\
+ \PValue{pagestyle}
+ & \PName{Seitenstil}
+ & %\OnlyAt{\Class{scrbook}\and \Class{scrreprt}}%
+ Der Name des Seitenstils, der für die Seite mit der Überschrift
+ verwendet werden soll. Es findet keine Überprüfung statt, ob der
+ angegebene \PName{Seitenstil} gültig ist. Fehlerhafte Angaben führen
+ daher zu Fehlermeldungen bei Verwendung des Gliederungsbefehls. Diese
+ Möglichkeit existiert nur bei \Class{scrbook} und \Class{scrreprt}. \\
+ \PValue{prefixfont}
+ & \PName{Befehle}
+ & Die Schrifteinstellungen, die zusätzlich zum Element
+ \DescRef{maincls.fontelement.disposition} und dem Element des
+ Gliederungsbefehls bei der Ausgabe einer Präfixzeile in der Überschrift
+ verwendet werden sollen. Hier sind alle \PName{Befehle} erlaubt, die
+ auch über \DescRef{maincls.cmd.setkomafont} und
+ \DescRef{maincls.cmd.addtokomafont} für das Element der Präfixzeile des
+ Gliederungsbefehls erlaubt sind.\\
+ \bottomrule
+ \end{tabularx}
+\end{table}
+
+\Macro{DeclareNewSectionCommand} dient der Definition eines neuen
+Gliederungsbefehls. Ist derselbe \PName{Name} von \TeX{} bereits anderweitig
+belegt, so wird ein Fehler ausgegeben und es findet keine Umdefinierung
+statt.
+
+\Macro{ProvideSectionSommand} verhält sich ähnlich, gibt aber keine
+Fehlermeldung aus.
+
+\Macro{RedeclareSectionCommand} kann hingegen nur verwendet werden, um eine
+existierende Anweisung zu einem Gliederungsbefehl mit den angegebenen
+\PName{Eigenschaften} zu ändern. Dabei wird nicht überprüft, ob
+\Macro{\PName{Name}} bereits zuvor ein Gliederungsbefehl war. Es muss nur ein
+von \TeX{} bereits belegter \PName{Name} sein.
+
+Bei \Macro{DeclareSectionCommand} findet keinerlei Überprüfung statt, ob
+\PName{Name} von \TeX{} bereits anderweitig belegt ist. Stattdessen wird der
+Gliederungsbefehl \Macro{\PName{Name}} unbedingt entsprechend der angegebenen
+\PName{Eigenschaften} definiert.
+
+Zu jeder Gliederungsanweisung gehört außerdem ein Zähler: \PName{Name}, der
+bei Bedarf von allen vier Befehlen mit \Macro{newcounter} neu angelegt
+wird. Dasselbe gilt für die Ausgabe des Zählers: \Macro{the\PName{Name}}, die
+Formatierung des Zählers: \Macro{\PName{Name}format}, die Anweisung zur
+Erstellung eines Kolumnentitels: \Macro{\PName{Name}mark}, die dabei
+verwendete Formatierung des Zählers: \Macro{\PName{Name}markformat}, die oben
+erwähnten Elemente: \FontElement{\PName{Name}} und gegebenenfalls
+\FontElement{\PName{Name}prefix}, die nummerische Gliederungsebene:
+\Macro{\PName{Name}numdepth}. Die Anweisung \Macro{\PName{Name}mark} wird
+gegebenenfalls so vordefiniert, dass kein Kolumnentitel erzeugt wird. Die
+Ausgabe des Zählers, \Macro{\PName{the}mark}, wird als arabische Zahl
+vordefiniert. Wird über den \PName{Schlüssel} \PValue{counterwithin} der
+Zähler als von einem anderen Zähler abhängig definiert, so wird in der Ausgabe
+dieser andere Zähler mit einem Punkt getrennt vorangestellt.
+
+Neben\ChangedAt[2016/03]{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} dem Gliederungsbefehl selbst wird auch ein Befehl für
+einen Eintrag ins Inhaltsverzeichnis definiert. Dafür wird auf das Paket
+\hyperref[cha:tocbasic]{\Package{tocbasic}}%
+\important{\hyperref[cha:tocbasic]{\Package{tocbasic}}}\IndexPackage{tocbasic}
+zurückgegriffen. Der Stil des Verzeichniseintrags wird über die Eigenschaft
+\PValue{tocstyle} festgelegt. Wird hier mit \OptionValue{tocstyle}{} oder
+\OptionValue{tocstyle}{\{\}} ein leerer \PName{Name} angegeben, so erfolgt
+keine Umdefinierung des Befehls für den Verzeichniseintrag. Das ist
+beispielsweise dann wichtig, wenn Sie ein zusätzliches Paket zur Modifikation
+des Inhaltsverzeichnisses verwenden. Fehlt die Eigenschaft \PValue{tocstyle},
+so wird bei der Umdefinierung der bisherige Stil erneut verwendet.
+
+Unterschiedliche\ChangedAt[2016/03]{v3.20}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} Stile für Verzeichniseinträge haben
+unterschiedliche zusätzliche Eigenschaften. Diese können, mit dem Präfix
+\PValue{toc} versehen, direkt mit angegeben werden. So kann beispielsweise die
+Ebene des Verzeichniseintrags, die bei allen von den \KOMAScript-Klassen und
+\hyperref[cha:tocbasic]{\Package{tocbasic}} definierten Stilen als Eigenschaft
+\PValue{level} bekannt ist, mit \PValue{toclevel} gesetzt werden, der Einzug
+des Eintrags, \PValue{indent}, über \PValue{tocindent} und die für die Nummer
+reservierte Breite, \PValue{numwidth}, mit \PValue{tocnumwidth}. Für weitere
+Eigenschaften der Verzeichniseinträge siehe \autoref{sec:tocbasic.tocstyle} ab
+Seite \autopageref{sec:tocbasic.tocstyle}.
+
+\begin{Example}
+ Aus unerfindlichen Gründen sollen die Überschriften von
+ \DescRef{maincls.cmd.paragraph} nicht mehr als Spitzmarken, sondern als
+ Überschriften ähnlich \DescRef{maincls.cmd.subsubsection} umdefiniert
+ werden. Dabei soll über der Überschrift ein kleiner Abstand von 10\,pt und
+ unter der Überschrift kein zusätzlicher Abstand eingefügt werden. Das wäre
+ bereits mit
+\begin{lstcode}
+ \RedeclareSectionCommand[%
+ beforeskip=-10pt,%
+ afterskip=1sp%
+ ]{paragraph}
+\end{lstcode}
+ möglich. Durch den negativen Wert bei \PValue{beforeskip} wird der vertikale
+ Abstand über der Überschrift erzeugt und gleichzeitig der Einzug des ersten
+ Abschnitts nach der Überschrift abgeschaltet. Obwohl eigentlich nach der
+ Überschrift kein vertikaler Abstand gewünscht wird, wurde als Wert hier
+ 1\,sp angegeben. Der Grund ist einfach: Einen Wert von 0\,pt betrachtet
+ \LaTeX{} an dieser Stelle nicht als positiven Wert und erzeugt damit eine
+ Überschrift in der Form einer Spitzmarke. Der kleinste positive Wert ist
+ 1\,sp.
+
+ In der Regel ist es für den vertikalen Ausgleich (siehe
+ \DescRef{maincls.cmd.flushbottom}, \autoref{sec:maincls.typearea},
+ \DescPageRef{maincls.cmd.flushbottom}) besser, wenn man die Abstände
+ mit etwas Spielraum, dem sogenannten Leim, versieht:
+\begin{lstcode}
+ \RedeclareSectionCommand[%
+ beforeskip=-10pt plus -2pt minus -1pt,%
+ afterskip=1sp plus -1sp minus 1sp%
+ ]{paragraph}
+\end{lstcode}
+ Dabei ist zu beachten, dass natürlich auch der Leim bei der Anwendung als
+ vertikaler Abstand das Vorzeichen wechselt, also bei \PValue{beforeskip} im
+ Beispiel negativ angegeben wird. Gleichzeitig wurde die Gelegenheit genutzt,
+ über den Leim bei \PValue{afterskip} dafür zu sorgen, dass der Abstand dort
+ gegebenenfalls tatsächlich bis auf 0 schrumpft.
+\end{Example}
+
+Dass im Beispiel nur die Schlüssel \PValue{beforeskip} und \PValue{afterskip}
+verwendet werden mussten, liegt daran, dass seit \KOMAScript{} 3.15
+\DescRef{maincls.cmd.paragraph} intern bereits mit
+\Macro{DeclareSectionCommand} definiert wird und daher die übrigen
+Einstellungen unverändert übernommen werden können. Die Originaldefinition von
+\DescRef{maincls.cmd.paragraph} entspricht bei \Class{scrartcl}:
+\begin{lstcode}
+ \DeclareSectionCommand[%
+ level=4,
+ indent=0pt,
+ beforeskip=3.25ex plus 1ex minus .2ex,
+ afterskip=-1em,
+ font={},
+ tocindent=7em,
+ tocnumwidth=4.1em,
+ counterwithin=subsubsection
+ ]{paragraph}
+\end{lstcode}
+Bei \Class{scrreprt} und \Class{scrbook} werden teilweise abweichende Werte
+verwendet.
+
+Für \DescRef{maincls.cmd.chapter} sind einige Einstellungen für die
+Überschriften von Option \DescRef{maincls.option.headings} (siehe
+\autoref{sec:maincls.structure}, \DescPageRef{maincls.option.headings})
+abhängig. Diese abhängigen Einstellungen sind in
+\autoref{tab:maincls.chapter.skips} zu finden. Eine Übersicht über alle
+Voreinstellungen bietet \autoref{tab:maincls.section.defaults}. Es ist zu
+beachten, dass dabei \PValue{1ex} und \Length{baselineskip} von der
+voreingestellten Größe der Überschrift beziehungsweise des
+Inhaltsverzeichniseintrags abhängig sind. Weitere
+Voreinstellungen\ChangedAt[2016/03]{v3.20}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} für die Stile der Verzeichniseinträge
+sind \autoref{sec:tocbasic.tocstyle}%
+\important{\hyperref[cha:tocbasic]{\Package{tocbasic}}} ab
+\autopageref{sec:tocbasic.tocstyle} zu entnehmen.
+
+\begin{table}
+ %\centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ % \caption
+ \begin{captionbeside}
+ [{Voreinstellungen für die Kapitelüberschriften von \Class{scrbook}
+ und \Class{scrreprt} in Abhängigkeit von Option
+ \DescRef{maincls.option.headings}}]
+ {\hskip 0pt plus .5em
+ Voreinstellungen für die Kapitelüberschriften von \Class{scrbook}
+ und \Class{scrreprt} in Abhängigkeit von Option
+ \DescRef{maincls.option.headings}%
+ \label{tab:maincls.chapter.skips}}
+ [l]
+ \begin{tabular}[t]{ll}
+ \multicolumn{2}{@{}l}{\bfseries Mit \OptionValueRef{maincls}{headings}{big}:}\\
+ \toprule
+ Einstellung & voreingestellter Wert \\
+ \midrule
+ \PValue{afterskip}
+ & \PValue{1.725\Length{baselineskip} plus .115\Length{baselineskip}} \\
+ & \PValue{\phantom{1.725\Length{baselineskip}}
+ minus .192\Length{baselineskip}} \\
+ \PValue{beforeskip}
+ & \PValue{-3.3\Length{baselineskip}-\Length{parskip}} \\
+ \PValue{font} & \Macro{huge} \\
+ \bottomrule\\
+ \multicolumn{2}{@{}l}{\bfseries Mit \OptionValueRef{maincls}{headings}{normal}:}\\
+ \toprule
+ Einstellung & voreingestellter Wert \\
+ \midrule
+ \PValue{afterskip}
+ & \PValue{1.5\Length{baselineskip} plus .1\Length{baselineskip}} \\
+ & \PValue{\phantom{1.5\Length{baselineskip}}
+ minus .167\Length{baselineskip}} \\
+ \PValue{beforeskip}
+ & \PValue{-3\Length{baselineskip}-\Length{parskip}} \\
+ \PValue{font} & \Macro{LARGE} \\
+ \bottomrule\\
+ \multicolumn{2}{@{}l}{\bfseries Mit \OptionValueRef{maincls}{headings}{small}:}\\
+ \toprule
+ Einstellung & voreingestellter Wert \\
+ \midrule
+ \PValue{afterskip}
+ & \PValue{1.35\Length{baselineskip} plus .09\Length{baselineskip}} \\
+ & \PValue{\phantom{1.35\Length{baselineskip}}
+ minus .15\Length{baselineskip}} \\
+ \PValue{beforeskip}
+ & \PValue{-2.8\Length{baselineskip}-\Length{parskip}} \\
+ \PValue{font} & \Macro{Large} \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+%begin{table}
+% \centering
+ \begin{longtable}{@{}p{\columnwidth}@{}}
+ \caption{Voreinstellungen für die Formatierung der Überschriften von
+ \Class{scrbook} und \Class{scrreprt}}%
+ \label{tab:maincls.section.defaults}\\
+ \endfirsthead
+ \caption[]{Voreinstellungen für die Formatierung der Überschriften von
+ \Class{scrbook} und
+ \Class{scrreprt} \emph{(Fortsetzung)}}\\
+ \addlinespace[-\normalbaselineskip] \endhead
+ \raggedleft\dots\\
+ \endfoot \endlastfoot
+ \DescRef{maincls.cmd.part}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Einstellung & voreingestellter Wert \\
+ \midrule
+ \PValue{afterskip} & \PValue{0pt plus 1fil} \\
+ \PValue{beforeskip} & \PValue{0pt plus 1fil + \Length{baselineskip}} \\
+ \PValue{font} & siehe \DescRef{maincls.fontelement.part},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{innerskip} & \PValue{20pt} \\
+ \PValue{level} & -1 \\
+ \PValue{prefixfont} & siehe
+ \DescRef{maincls.fontelement.partnumber},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{tocindent} & \PValue{0pt} \\
+ \PValue{toclevel} & -1 \\
+ \PValue{tocnumwidth} & \PValue{2em} \\
+ \PValue{tocstyle} & \PValue{part} \\
+ \bottomrule
+ \end{tabularx} \\
+ \addlinespace[\normalbaselineskip]
+ \DescRef{maincls.cmd.chapter}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Einstellung & voreingestellter Wert \\
+ \midrule
+ \PValue{afterskip} & siehe \autoref{tab:maincls.chapter.skips} \\
+ \PValue{beforeskip} & siehe \autoref{tab:maincls.chapter.skips} \\
+ \PValue{font} & siehe \DescRef{maincls.fontelement.chapter},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{innerskip} & \PValue{0.5\Length{baselineskip}} \\
+ \PValue{level} & 0 \\
+ \PValue{prefixfont} & siehe
+ \DescRef{maincls.fontelement.chapterprefix},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{tocindent} & \PValue{0pt} \\
+ \PValue{toclevel} & 0 \\
+ \PValue{tocnumwidth} & \PValue{1.5em} \\
+ \PValue{tocstyle} & \PValue{chapter} \\
+ \bottomrule
+ \end{tabularx} \\
+ \addlinespace[\normalbaselineskip]
+ \DescRef{maincls.cmd.section}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Einstellung & voreingestellter Wert \\
+ \midrule
+ \PValue{afterskip} & \PValue{2.3ex plus .2ex} \\
+ \PValue{beforeskip} & \PValue{-3.5ex plus -1ex minus -.2ex} \\
+ \PValue{font} & siehe \DescRef{maincls.fontelement.section},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{indent} & \PValue{0pt} \\
+ \PValue{level} & 1 \\
+ \PValue{tocindent} & \PValue{1.5em}\\
+ \PValue{toclevel} & 1 \\
+ \PValue{tocnumwidth} & \PValue{2.3em}\\
+ \PValue{tocstyle} & \PValue{section} \\
+ \bottomrule
+ \end{tabularx} \\
+ \addlinespace[\normalbaselineskip]
+ \DescRef{maincls.cmd.subsection}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Einstellung & voreingestellter Wert \\
+ \midrule\nopagebreak
+ \PValue{afterskip} & \PValue{1.5ex plus .2ex} \\
+ \PValue{beforeskip} & \PValue{-3.25ex plus -1ex minus -.2ex} \\
+ \PValue{font} & siehe
+ \DescRef{maincls.fontelement.subsection},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{indent} & \PValue{0pt} \\
+ \PValue{level} & 2 \\
+ \PValue{tocindent} & \PValue{3.8em}\\
+ \PValue{toclevel} & 2 \\
+ \PValue{tocnumwidth} & \PValue{3.2em}\\
+ \PValue{tocstyle} & \PValue{section} \\
+ \bottomrule
+ \end{tabularx} \\
+ \addlinespace[\normalbaselineskip]
+ \DescRef{maincls.cmd.subsubsection}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Einstellung & voreingestellter Wert \\
+ \midrule\nopagebreak
+ \PValue{afterskip} & \PValue{1.5ex plus .2ex} \\
+ \PValue{beforeskip} & \PValue{-3.25ex plus -1ex minus -.2ex} \\
+ \PValue{font} & siehe
+ \DescRef{maincls.fontelement.subsubsection},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{indent} & \PValue{0pt} \\
+ \PValue{level} & 3 \\
+ \PValue{tocindent} & \PValue{7.0em}\\
+ \PValue{toclevel} & 3 \\
+ \PValue{tocnumwidth} & \PValue{4.1em}\\
+ \PValue{tocstyle} & \PValue{section} \\
+ \bottomrule
+ \end{tabularx} \\
+ \addlinespace[\normalbaselineskip]
+ \DescRef{maincls.cmd.paragraph}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Einstellung & voreingestellter Wert \\
+ \midrule\nopagebreak
+ \PValue{afterskip} & \PValue{-1em} \\
+ \PValue{beforeskip} & \PValue{3.25ex plus 1ex minus .2ex} \\
+ \PValue{font} & siehe
+ \DescRef{maincls.fontelement.paragraph},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{indent} & \PValue{0pt} \\
+ \PValue{level} & 4 \\
+ \PValue{tocindent} & \PValue{10em}\\
+ \PValue{toclevel} & 4 \\
+ \PValue{tocnumwidth} & \PValue{5em}\\
+ \PValue{tocstyle} & \PValue{section} \\
+ \bottomrule
+ \end{tabularx} \\
+ \addlinespace[\normalbaselineskip]
+ \DescRef{maincls.cmd.subparagraph}: \\*
+ \begin{tabularx}{\linewidth}{ll}
+ \toprule
+ Einstellung & voreingestellter Wert \\
+ \midrule\nopagebreak
+ \PValue{afterskip} & \PValue{-1em} \\
+ \PValue{beforeskip} & \PValue{3.25ex plus 1ex minus .2ex} \\
+ \PValue{font} & siehe
+ \DescRef{maincls.fontelement.subparagraph},
+ \autoref{tab:maincls.structureElementsFont},
+ \autopageref{tab:maincls.structureElementsFont} \\
+ \PValue{indent} & \Macro{scr@parindent} \\
+ \PValue{level} & 5 \\
+ \PValue{tocindent} & \PValue{12em}\\
+ \PValue{toclevel} & 5 \\
+ \PValue{tocnumwidth} & \PValue{6em}\\
+ \PValue{tocstyle} & \PValue{section} \\
+ \bottomrule
+ \end{tabularx}
+ \end{longtable}
+%end{table}
+Das in den Einstellungen für \DescRef{maincls.cmd.subparagraph} verwendete
+interne Makro \Macro{scr@parindent} ist übrigens, der per Option
+\DescRef{maincls.option.parskip} oder Befehl
+\DescRef{maincls-experts.cmd.setparsizes} eingestellte Absatzeinzug.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DeclareSectionCommands}\OParameter{Einstellungen}%
+ \Parameter{Namensliste}
+ \Macro{DeclareNewSectionCommands}\OParameter{Einstellungen}%
+ \Parameter{Namensliste}
+ \Macro{RedeclareSectionCommands}\OParameter{Einstellungen}%
+ \Parameter{Namensliste}
+ \Macro{ProvideSectionCommands}\OParameter{Einstellungen}%
+ \Parameter{Namensliste}
+\end{Declaration}
+Diese\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} Anweisungen können gleich eine ganze Reihe von
+Gliederungsbefehlen definieren oder ändern. Dabei ist \PName{Namensliste} eine
+durch Komma separierte Liste von Namen der Gliederungsbefehle.
+
+Diese Anweisungen unterscheiden sich in zwei weiteren Punkten von den zuvor
+erklärten Anweisungen zur Definition oder Änderung eines einzelnen
+Gliederungsbefehls. Zum einen wird im Fehlerfall, also wenn eine Anweisung bei
+\Macro{DeclareNewSectionCommands} bereits zuvor existierte oder bei
+\Macro{RedeclareSectionCommands} noch nicht existierte, die Definition dennoch
+vorgenommen. Ein entsprechender Fehler wird natürlich trotzdem gemeldet.
+
+Zum anderen gibt es eine weitere Einstellung,
+\important{\PValue{increaselevel}}\OptionVName{increaselevel}{Ganzzahl}.
+Damit ändert sich die Bedeutung von \PValue{level} und \PValue{toclevel}
+(siehe \autoref{tab:maincls-experts.declaresection.keys},
+\autopageref{tab:maincls-experts.declaresection.keys}) dahingehend, dass deren
+Werte lediglich als \PName{Einstellungen} des ersten Gliederungsbefehls aus
+der \PName{Namensliste} dienen. Für alle weiteren Gliederungsbefehle werden die
+Werte von \PValue{level} und \PValue{toclevel} um den Wert von
+\PValue{increaselevel} erhöht. Wurde die Einstellung \PValue{increaselevel}
+ohne Wertzuweisung verwendet, so wird der Wert 1 angenommen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{chapterheadstartvskip}
+ \Macro{chapterheadmidvskip}
+ \Macro{chapterheadendvskip}
+ \Macro{partheadstartvskip}
+ \Macro{partheadmidvskip}
+ \Macro{partheadendvskip}
+ \Macro{partheademptypage}
+\end{Declaration}
+Diese\important[i]{\DescRef{maincls.cmd.chapter}\\
+ \DescRef{maincls.cmd.part}\\
+ \DescRef{maincls.cmd.addchap}\\
+ \DescRef{maincls.cmd.addpart}\\
+ \DescRef{maincls.cmd.chapter*}\\
+ \DescRef{maincls.cmd.part*}\\
+ \DescRef{maincls.cmd.addchap*}\\
+ \DescRef{maincls.cmd.addpart*}} Anweisungen werden innerhalb von
+Überschriften der zuvor erklärten Stile \PValue{chapter} und \PValue{part} und
+damit für die Definition der Überschriften
+\DescRef{maincls.cmd.chapter}\IndexCmd{chapter},
+\DescRef{maincls.cmd.part}\IndexCmd{part},
+\DescRef{maincls.cmd.addchap}\IndexCmd{addchap},
+\DescRef{maincls.cmd.addpart}\IndexCmd{addpart} und deren Sternvarianten
+\DescRef{maincls.cmd.chapter*}\IndexCmd{chapter*},
+\DescRef{maincls.cmd.part*}\IndexCmd{part*},
+\DescRef{maincls.cmd.addchap*}\IndexCmd{addchap*},
+\DescRef{maincls.cmd.addpart*}\IndexCmd{addpart*} verwendet. Dabei ist
+\Macro{chapterheadstartvskip} eine Anweisung, die dafür vorgesehen ist, vor
+der Kapitelüberschrift einen vertikalen Abstand einzufügen. Entsprechend ist
+\Macro{chapterheadendvskip} eine Anweisung, die dafür vorgesehen ist, nach der
+Kapitelüberschrift einen vertikalen Abstand
+einzufügen. Bei\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}}
+Kapitelüberschriften mit eigener Nummernzeile (siehe Option
+\DescRef{maincls.option.chapterprefix} in \autoref{sec:maincls.structure},
+\DescPageRef{maincls.option.chapterprefix}) wird zwischen der Nummernzeile und
+der eigentlichen Überschrift außerdem \Macro{chapterheadmidvskip} ausgeführt.
+
+Für das Einfügen der vertikalen Abstände über und unter Teile-Überschriften
+sind die Anweisungen \Macro{partheadstartvskip} und \Macro{partheadendvskip}
+vorgesehen. Dabei wird ein Seitenumbruch als Teil des vertikalen Abstandes
+interpretiert. Ein solcher Seitenumbruch ist in der Voreinstellung sowohl bei
+\Class{scrbook}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} als auch
+\Class{scrreprt} in der Definition von \Macro{partheadendvskip} enthalten. Die
+Anweisung \Macro{partheadmidvskip} ist für den Abstand zwischen der
+Teile-Nummer und dem Text der Teile-Überschrift vorgesehen. Die Anweisung
+\Macro{partheademptypage}\ChangedAt{v3.02}{\Class{scrbook}\and
+ \Class{scrreprt}} wird bei \Class{scrbook} und \Class{scrreprt}
+gegebenenfalls für die leere Seite nach der Überschrift verwendet.
+
+Die Voreinstellungen der sieben Anweisungen sind seit
+\KOMAScript~3.15\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} von der Einstellung von Option
+\DescRef{maincls.option.headings} (siehe \autoref{sec:maincls.structure},
+\DescPageRef{maincls.option.headings}) unabhängig. Die Original-Definitionen
+für die Kapitelüberschriften ab
+\KOMAScript~3.17\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} entsprechen:\IndexLength{@tempskipa}
+\begin{lstcode}
+ \newcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}
+ \newcommand*{\chapterheadmidvskip}{\par\nobreak
+ \vskip\@tempskipa}
+ \newcommand*{\chapterheadendvskip}{\vskip\@tempskipa}
+\end{lstcode}
+Diese werden auch bei jeder Verwendung von Option
+\OptionValueRef{maincls}{headings}{big}\IndexOption{headings},
+\OptionValueRef{maincls}{headings}{normal} oder
+\OptionValueRef{maincls}{headings}{small} reaktiviert. Als Seiteneffekt haben
+diese Optionen also gegebenenfalls nicht nur Auswirkungen auf
+Kapitelüberschriften, sondern auf alle Überschriften im Stil \PValue{chapter}.
+
+Der Stil \PValue{chapter} setzt die interne Länge
+\Length{@tempskipa}\IndexLength{@tempskipa} vor Aufruf von
+\Macro{chapterheadstartvskip} automatisch auf den Wert, der sich aus der
+\DescRef{\LabelBase.cmd.DeclareSectionCommand}-Einstellung%
+\IndexCmd{DeclareSectionCommand} \PValue{beforeskip} ergibt. Vor dem Aufruf
+von \Macro{chapterheadendvskip} geschieht entsprechendes mit dem Wert, der
+sich aus der Einstellung
+\PValue{afterskip} ergibt, und vor dem Aufruf von \Macro{chapterheadmidvskip}
+mit dem Wert, der sich aus der Einstellung \PValue{innerskip}
+ergibt.
+
+Da die Voreinstellungen für die Abstände von \DescRef{maincls.cmd.part} nicht
+von Option \DescRef{maincls.option.headings} abhängen, werden auch die
+zugehörigen Anweisungen von dieser Option nicht neu
+definiert. Ihre\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} Original-Definitionen entsprechen bei \Class{scrbook} und
+\Class{scrreprt}:
+\begin{lstcode}
+ \newcommand*{\partheadstartvskip}{%
+ \null\vskip-\baselineskip\vskip\@tempskipa
+ }
+ \newcommand*{\partheadmidvskip}{%
+ \par\nobreak
+ \vskip\@tempskipa
+ }
+ \newcommand*{\partheadendvskip}{%
+ \vskip\@tempskipa\newpage
+ }
+\end{lstcode}
+und bei \Class{scrartcl}:
+\begin{lstcode}
+ \newcommand*{\partheadstartvskip}{%
+ \addvspace{\@tempskipa}%
+ }
+ \newcommand*{\partheadmidvskip}{%
+ \par\nobreak
+ }
+ \newcommand*{\partheadendvskip}{%
+ \vskip\@tempskipa
+ }
+\end{lstcode}
+Auch hier wird vom Stil \PValue{part} die interne Länge
+\Length{@tempskipa}\IndexLength{@tempskipa}\IndexLength{@tempskipa} vor der
+Verwendung der Befehle entsprechend der Einstellungen von
+\DescRef{\LabelBase.cmd.DeclareSectionCommand}\IndexCmd{DeclareSectionCommand}
+gesetzt.
+
+Wird eine der Anweisungen, die im Original \Length{@tempskipa} für den
+vertikalen Abstand verwendet, umdefiniert und sollen die Abstände weiterhin
+beispielsweise mit \DescRef{\LabelBase.cmd.RedeclareSectionCommand}
+konfigurierbar sein, so sollte man in der neuen Definition ebenfalls
+\Length{@tempskipa} verwenden. Da\ChangedAt{v3.17}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} die Abstände über, innerhalb und
+unter den Überschriften einfacher mit
+\DescRef{\LabelBase.cmd.RedeclareSectionCommand} eingestellt werden können,
+wird generell nicht empfohlen, zu diesem Zweck stattdessen die hier
+beschriebenen Anweisungen umzudefinieren. Sie sollten für tiefgreifendere
+Änderungen reserviert bleiben, die nicht über
+\DescRef{\LabelBase.cmd.RedeclareSectionCommand} zu erreichen sind.
+Auf\textnote{Beispiel!} \cite{homepage} findet sich dazu ein Beispiel, bei
+dem durch Umdefinierung von \Macro{chapterheadstartvskip} und
+\Macro{chapterheadendvskip} Linien über und unter der Kapitelüberschrift
+gesetzt werden.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{partlineswithprefixformat}%
+ \Parameter{Ebene}\Parameter{Nummer}\Parameter{Text}
+\end{Declaration}
+Diese\ChangedAt{v3.25}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} Anweisung wird von Überschriften des Stils
+\PValue{part}\textnote{Gliederungsstil
+ \PValue{part}}\Index{Gliederung>Stil>~\PValue{part}} verwendet. Die beiden
+Argumente \PName{Nummer} und \PName{Text} sind dabei einschließlich
+Einstellung der Fonts für sich bereits fertig formatiert. Letztlich regelt die
+Anweisung also die Anordnung der beiden Teile der Überschrift. Bei nicht
+nummerierten Überschriften ist \PName{Nummer} ein komplett leeres Argument,
+enthält also auch keine Formatierungsanweisungen.
+
+Vordefiniert ist die Anweisung mit:
+\begin{lstcode}
+ \newcommand{\partlineswithprefixformat}[3]{%
+ #2#3%
+ }
+\end{lstcode}
+bisher eher spartanisch.
+
+\begin{Example}
+ Sie wollen die Teile-Überschriften in eine hellblaue Box mit blauer
+ Umrandung stellen, die nur etwa drei Viertel der Breite des Textbereichs
+ einnimmt. Hierzu verwenden Sie
+\begin{lstcode}[moretexcs={fcolorbox}]
+ \documentclass{scrbook}
+ \usepackage{xcolor}
+ \renewcommand*{\partlineswithprefixformat}[3]{%
+ \fcolorbox{blue}{blue!25}{%
+ \parbox{.75\linewidth}{#2#3}%
+ }%
+ }
+ \begin{document}
+ \part{Umrahmte Teile}
+ \end{document}
+\end{lstcode}
+ Allerdings fällt Ihnen auf, dass die Überschrift dabei nicht wie sonst
+ für Teile üblich zentriert wird -- weder die Box selbst noch der Text
+ innerhalb der Box.
+
+ Die Ursache für die fehlende Zentrierung der Box liegt
+ darin, dass aufgrund der Änderung das in Argument 3 versteckte Absatzende
+ nur noch den Absatz innerhalb der Box beendet, aber nicht mehr den Absatz mit
+ der \Macro{parbox}. Also ergänzen Sie ein \Macro{par} am Ende der Definition.
+
+ Die Ursache der fehlenden Zentrierung innerhalb der Box ist, dass in der
+ \Macro{parbox}-Anweisung die Ausrichtung von
+ \DescRef{maincls.cmd.raggedpart} nicht automatisch gültig ist. Daher
+ ergänzen Sie diese Anweisung innerhalb der Box.
+
+ Mit
+\begin{lstcode}[moretexcs={fcolorbox}]
+ \documentclass{scrbook}
+ \usepackage{xcolor}
+ \renewcommand*{\partlineswithprefixformat}[3]{%
+ \fcolorbox{blue}{blue!25}{%
+ \parbox{.75\linewidth}{\raggedpart #2#3}%
+ }%
+ \par
+ }
+ \begin{document}
+ \part{Umrahmte Teile}
+ \end{document}
+\end{lstcode}
+ erhalten Sie die gewünschte Formatierung.
+\end{Example}
+
+Wie im Beispiel gezeigt, ist der Anwender bei der Umdefinierung der Anweisung
+für einige Dinge selbst verantwortlich. Dazu gehört neben dem Erhalt der
+voreingestellten Ausrichtung auch, dass innerhalb der Überschrift kein
+Seitenumbruch, beispielsweise an zusätzlich eingefügten Absätzen oder
+Abständen, erfolgen kann. Das gezeigte Beispiel ist diesbezüglich
+unproblematisch. Nicht nur, dass die beiden Boxen ohnehin keinen Seitenumbruch
+erlauben. \KOMAScript{} verändert außerdem \Macro{interlinepenalty} als Teil
+von \PName{Text} so, dass darin kein Seitenumbruch stattfinden
+darf. Gleichzeitig endet \PName{Text} immer mit einem internen Absatz,
+\Macro{@@par}.
+
+Das Argument \PName{Ebene} wird von
+\Macro{partlineswithprefixformat} in der Voreinstellung nicht verwendet und
+ist auch im Beispiel nicht erforderlich. Erst wenn der Anwender mehrere
+Anweisungen im Stil \PValue{part} definiert und man innerhalb der Definition
+nach den Anweisungen unterscheiden will, kann dies über \PName{Ebene}
+erfolgen. Dabei ist \PName{Ebene} der vom Namen der Anweisung abgeleitete Name
+der Gliederungsebene. Bei \DescRef{maincls.cmd.part},
+\DescRef{maincls.cmd.part*}, \DescRef{maincls.cmd.addpart} und
+\DescRef{maincls.cmd.addpart*} ist \PName{Ebene} daher einheitlich
+\PValue{part}.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{chapterlineswithprefixformat}%
+ \Parameter{Ebene}\Parameter{Nummer}\Parameter{Text}
+ \Macro{chapterlinesformat}%
+ \Parameter{Ebene}\Parameter{Nummer}\Parameter{Text}
+\end{Declaration}
+Diese\ChangedAt{v3.19}{\Class{scrbook}\and \Class{scrreprt}} Anweisungen
+werden von Überschriften des Stils \PValue{chapter}\textnote{Gliederungsstil
+ \PValue{chapter}}\Index{Gliederung>Stil>~\PValue{chapter}} in Abhängigkeit
+von Option \DescRef{maincls.option.chapterprefix}\IndexOption{chapterprefix}%
+\textnote{\DescRef{maincls.option.chapterprefix}} (siehe
+\autoref{sec:maincls.structure}, \DescPageRef{maincls.option.chapterprefix})
+verwendet. Dabei gibt \Macro{chapterlineswithprefixformat} die Ausgabe bei
+aktivierter Option vor. Bei deaktivierter Option
+bestimmt dagegen \Macro{chapterlinesformat} die Ausgabe.
+
+Die beiden Argumente \PName{Nummer} und \PName{Text} sind dabei
+einschließlich Einstellung der Fonts für sich bereits fertig
+formatiert. Letztlich regeln die Anweisungen also die Anordnung der beiden
+Teile der Überschrift. Bei nicht nummerierten Überschriften ist \PName{Nummer}
+ein komplett leeres Argument, enthält also auch keine
+Formatierungsanweisungen.
+
+Vordefiniert\textnote{Voreinstellung} sind die beiden Anweisungen mit:
+% Umbruchkorrektur bei Aufeinanderfolgen von Code und Beispiel
+\begin{lstcode}[belowskip=-1\dp\strutbox plus \dp\strutbox]
+ \newcommand{\chapterlinesformat}[3]{%
+ \@hangfrom{#2}{#3}%
+ }
+ \newcommand{\chapterlineswithprefixformat}[3]{%
+ #2#3%
+ }
+\end{lstcode}
+%bisher eher spartanisch.
+
+\begin{Example}
+ Sie wollen Überschriften im Kapitelstil gelb hinterlegen. Für
+ Überschriften ohne Präfixzeile definieren Sie daher in der Präambel des
+ Dokument:
+\begin{lstcode}[moretexcs={colorbox}]
+ \makeatletter
+ \renewcommand{\chapterlinesformat}[3]{%
+ \colorbox{yellow}{%
+ \parbox{\dimexpr\linewidth
+ -2\fboxrule-2\fboxsep}{%
+ \@hangfrom{#2}#3%
+ }%
+ }%
+ }
+ \makeatother
+\end{lstcode}
+ und für Überschriften mit Präfixzeile:
+\begin{lstcode}[moretexcs={colorbox}]
+ \renewcommand{\chapterlineswithprefixformat}[3]{%
+ \colorbox{yellow}{%
+ \parbox{\dimexpr\linewidth
+ -2\fboxrule-2\fboxsep}{%
+ #2#3%
+ }%
+ }%
+ }
+\end{lstcode}
+ Allerdings fällt Ihnen nach einiger Zeit auf, dass mit dieser Umdefinierung
+ die Überschriften wieder im Blocksatz gesetzt werden. Das liegt daran, dass
+ \Macro{parbox} sein Argument so setzt. Um dies zu korrigieren, fügen Sie die
+ Anweisung \DescRef{maincls.cmd.raggedchapter} (siehe
+ \autoref{sec:maincls.structure}, \DescPageRef{maincls.cmd.raggedchapter}),
+ die automatisch bereits vor \Macro{chapterlinesformat} und
+ \Macro{chapterlineswithprefixformat} aufgerufen wird, in die Definitionen
+ ein:
+\begin{lstcode}[moretexcs={colorbox}]
+ \makeatletter
+ \renewcommand{\chapterlinesformat}[3]{%
+ \colorbox{yellow}{%
+ \parbox{\dimexpr\linewidth
+ -2\fboxrule-2\fboxsep}{%
+ \raggedchapter
+ \@hangfrom{#2}#3%
+ }%
+ }%
+ }
+ \makeatother
+ \renewcommand{\chapterlineswithprefixformat}[3]{%
+ \colorbox{yellow}{%
+ \parbox{\dimexpr\linewidth
+ -2\fboxrule-2\fboxsep}{%
+ \raggedchapter
+ #2#3%
+ }%
+ }%
+ }
+\end{lstcode}
+ Es sei daran erinnert, dass die Klammerung mit den Anweisungen
+ \Macro{makeatletter} und \Macro{makeatother} nur in der Dokumentpräambel zu
+ verwenden ist. In einer eigenen Wrapper-Klasse oder einem Paket haben sie zu
+ entfallen. Sie werden auch nur wegen \Macro{@hangfrom} in der Definition von
+ \Macro{chapterlinesformat} benötigt.%
+\end{Example}
+
+Wie im Beispiel gezeigt, ist der Anwender bei der Umdefinierung der
+Anweisungen für einige Dinge selbst verantwortlich. Dazu gehört neben dem
+Erhalt der voreingestellten Ausrichtung auch, dass innerhalb der Überschrift
+kein Seitenumbruch, beispielsweise an zusätzlich eingefügten Absätzen oder
+Abständen, erfolgen kann. Das gezeigte Beispiel ist diesbezüglich
+unproblematisch. Nicht nur, dass die beiden Boxen ohnehin keinen Seitenumbruch
+erlauben. \KOMAScript{} verändert außerdem \Macro{interlinepenalty} als Teil
+von \PName{Text} so, dass darin kein Seitenumbruch stattfinden
+darf. Gleichzeitig endet \PName{Text} immer mit einem internen Absatz,
+\Macro{@@par}.
+
+Die Anweisung \DescRef{maincls.cmd.raggedchapter} ist übrigens nicht
+Bestandteil von \PName{Text}, weil anderenfalls beispielsweise die Verwendung
+von \Macro{MakeUppercase} innerhalb der Umdefinierung der beiden Anweisungen
+erheblich erschwert wäre. Dennoch sei darauf hingewiesen, dass typografischen
+Regeln zufolge Versalsatz mit gängigen Fonts immer der Sperrung und des
+Ausgleichs bedarf. Die \LaTeX-Anweisung \Macro{MakeUppercase} leistet dies
+jedoch nicht.
+
+Das erste Argument, \PName{Ebene}, wird von den Anweisungen in der
+Voreinstellung nicht verwendet und ist auch im Beispiel nicht
+erforderlich. Erst wenn der Anwender mehrere Anweisungen im Stil
+\PValue{chapter} definiert und man innerhalb der Definition nach den
+Anweisungen unterscheiden will, kann dies über \PName{Ebene} erfolgen. Dabei
+ist \PName{Ebene} der vom Namen der Anweisung abgeleitete Name der
+Gliederungsebene. Bei \DescRef{maincls.cmd.chapter},
+\DescRef{maincls.cmd.chapter*}, \DescRef{maincls.cmd.addchap} und
+\DescRef{maincls.cmd.addchap*} ist \PName{Ebene} daher einheitlich
+\PValue{chapter}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{sectionlinesformat}%
+ \Parameter{Ebene}\Parameter{Einzug}\Parameter{Nummer}\Parameter{Text}
+ \Macro{sectioncatchphraseformat}%
+ \Parameter{Ebene}\Parameter{Einzug}\Parameter{Nummer}\Parameter{Text}
+\end{Declaration}
+Diese\ChangedAt{v3.19}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} Anweisungen werden von Überschriften des Stils
+\PValue{section}\textnote{Gliederungsstil
+ \PValue{section}}\Index{Gliederung>Stil>~\PValue{section}} in Abhängigkeit
+davon verwendet, ob die jeweilige Überschrift eine Spitzmarke erzeugt oder
+eine frei stehende Überschrift. Frei stehende Überschriften werden dabei per
+\Macro{sectionlinesformat} ausgegeben, während
+\Macro{sectioncatchphraseformat} für Spitzmarken zuständig ist.
+
+In beiden Fällen gibt \PName{Einzug} den Wert eines horizontalen Einzugs
+der Überschrift gegenüber dem Textbereich an. Durch Angabe eines negativen
+Wertes soll es auch möglich sein, die Überschrift in den linken Rand zu
+rücken.
+
+Die beiden Argumente \PName{Nummer} und \PName{Text} sind einschließlich
+Einstellung der Fonts für sich bereits fertig formatiert. Letztlich regeln die
+Anweisungen also die Anordnung der beiden Teile der Überschrift. Bei nicht
+nummerierten Überschriften ist \PName{Nummer} ein komplett leeres Argument,
+enthält also auch keine Formatierungsanweisungen.
+
+Vordefiniert sind die beiden Anweisungen als:
+\begin{lstcode}
+\newcommand{\sectionlinesformat}[4]{%
+ \@hangfrom{\hskip #2#3}{#4}%
+}
+\newcommand{\sectioncatchphraseformat}[4]{%
+ \hskip #2#3#4%
+}
+\end{lstcode}
+
+Bei Umdefinierung einer der beiden Anweisungen ist wiederum der Anwender
+selbst dafür verantwortlich, Seitenumbrüche innerhalb der Ausgabe zu
+verhindern. \KOMAScript{} hilft hier lediglich mit entsprechend gesetztem
+\Macro{interlinepenalty}.
+
+\begin{Example}
+ Wie schon im Beispiel der Kapitelüberschriften sollen nun die frei stehenden
+ Überschriften der Ebenen \PValue{section} mit einer Farbe hinterlegt
+ werden. Die frei stehenden Überschriften tieferer Ebenen sollen nicht
+ verändert werden:
+\begin{lstcode}[moretexcs={colorbox}]
+ \makeatletter
+ \renewcommand{\sectionlinesformat}[4]{%
+ \ifstr{#1}{section}{%
+ \hspace*{#2}%
+ \colorbox{yellow}{%
+ \parbox{\dimexpr\linewidth
+ -2\fboxrule-2\fboxsep-#2}{%
+ \raggedsection
+ \@hangfrom{#3}{#4}%
+ }%
+ }%
+ }{%
+ \@hangfrom{\hskip #2#3}{#4}%
+ }%
+ }
+ \makeatother
+\end{lstcode}
+ Mit dem gezeigten Code wird im Falle eines Einzugs der Überschrift der
+ Bereich des Einzugs nicht mit gefärbt. Wird hingegen die Überschrift in den
+ linken Rand gestellt, so wird dieser Bereich des Randes ebenfalls farbig
+ hinterlegt. Durch Verschiebung der \Macro{hspace*}-Anweisung in die
+ \Macro{colorbox} kann dieses Verhalten verändert werden.%
+ \iffalse Umbruchkorrekturtext
+
+ Erneut sei daran erinnert, dass \Macro{makeatletter} und \Macro{makeatother}
+ nur in der Dokumentpräambel zu verwenden sind. In einer eigenen
+ Wrapper-Klasse oder einem Paket haben sie zu entfallen. Sie werden auch nur
+ wegen \Macro{@hangfrom} in der Definition von \Macro{sectionlinesformat}
+ benötigt.%
+ \else%
+
+ \Macro{makeatletter} und \Macro{makeatother} werden in der Dokumentpräambel
+ erneut wegen \Macro{@hangfrom} benötigt.%
+ \fi%
+\end{Example}
+
+Das erste Argument, \PName{Ebene}, wird von den Anweisungen in der
+Voreinstellung nicht verwendet. Wie das Beispiel zeigt, kann es aber sehr gut
+dazu verwendet werden, nach unterschiedlichen Gliederungsebenen im gemeinsamen
+Stil \PValue{section} zu unterscheiden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{SecDef}\Parameter{Sternanweisung}\Parameter{Normalanweisung}
+ \Macro{scr@startsection}\Parameter{Name}\Parameter{Ebene}%
+ \Parameter{Einzug}\Parameter{Abstand~davor}\Parameter{Abstand~danach}
+ \Parameter{Stilanweisungen}%
+ \OParameter{Kurzform}\Parameter{Überschrift}
+ \labelsuffix[*]%
+ \Macro{scr@startsection}\Parameter{Name}\Parameter{Ebene}%
+ \Parameter{Einzug}\Parameter{Abstand~davor}
+ \Parameter{Abstand~danach}
+ \Parameter{Stilanweisungen}%
+ \nobreak\texttt{*}\Parameter{Überschrift}
+ \labelsuffix
+ \Macro{At@startsection}\Parameter{Code}
+ \Macro{Before@ssect}\Parameter{Code}
+ \Macro{Before@sect}\Parameter{Code}
+\end{Declaration}
+Wie\ChangedAt[2014/09]{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} bereits in \autoref{sec:maincls.structure} bei der
+Beschreibung zu den Gliederungsbefehlen ab
+\DescPageRef{maincls.cmd.chapter} erklärt, verfügt \KOMAScript{}
+bezüglich des optionalen Arguments der Gliederungsbefehle über erweiterte
+Möglichkeiten. Um dies zu erreichen, war es notwendig, einige Anweisungen
+des \LaTeX-Kerns zu ersetzen. Dazu gehören auch die Anweisungen
+\Macro{secdef}\IndexCmd{secdef}\important{\Macro{secdef}} und
+\Macro{@startsection}\IndexCmd{@startsection}%
+\important{\Macro{@startsection}}. Die Bedeutung der Parameter dieser
+Anweisungen ist der Anleitung zum \LaTeX-Kern \cite{latex:source2e} zu
+entnehmen.
+
+Da diese Anweisungen jedoch auch häufig von Paketen komplett neu definiert
+werden und dadurch die Funktion von \KOMAScript{} teilweise stark
+beeinträchtigt werden kann, wurden die genannten \LaTeX-Kern-Anweisungen nicht
+einfach nur umdefiniert, sondern es wurden zusätzlich die alternativen
+Anweisungen \Macro{SecDef} und \Macro{scr@startsection} definiert. Diese
+können von Paketautoren genau wie die \LaTeX-Kern-Anweisungen verwendet
+werden, bieten dann aber automatisch die erweiterte Funktionalität von
+\KOMAScript{}. Die beiden Anweisungen sollten jedoch nicht umdefiniert werden,
+da sie sich jederzeit ändern können und dann die Funktionalität von
+\KOMAScript{} durch diese Umdefinierung erneut beeinträchtigt werden
+könnte.
+
+\KOMAScript{} selbst verwendet intern die Anweisungen
+\Macro{SecDef}\important{\Macro{SecDef}\\\Macro{scr@startsection}} und
+\Macro{scr@startsection} anstelle von \Macro{secdef} und \Macro{@startsection}
+beispielsweise bei den mit \DescRef{\LabelBase.cmd.DeclareSectionCommand}
+definierten Gliederungsbefehlen. Eine nachträgliche Umdefinierung von
+\Macro{secdef} und \Macro{@startsection} hat daher keine Auswirkungen auf
+diese Gliederungsbefehle.
+
+Als Ersatz für die Umdefinierung der Anweisungen bietet \KOMAScript{} die
+Möglichkeit, zusätzlichen \PName{Code} in die Ausführung der
+\KOMAScript-eigenen Erweiterungen einzufügen. Der \PName{Code} aller Aufrufe
+der Anweisungen \Macro{At@startsection}\important{\Macro{At@startsection}\\
+ \Macro{Before@sect}\\
+ \Macro{Before@@sect}}, \Macro{Before@sect} und
+\Macro{Before@@sect} wird für die einzelnen Anweisungen getrennt aufgesammelt.
+Es ist nicht vorgesehen, einmal eingefügten Code wieder zu entfernen.
+
+Der \PName{Code} von Makro
+\Macro{At@startsection}\important{\Macro{At@startsection}\\
+ \Macro{scr@startsection}} wird dabei in Anweisung \Macro{scr@startsection}
+unmittelbar nach der Auswertung von Parameter \PName{Abstand davor} und der
+zugehörigen Berechnung des resultierenden \Length{@tempskipa} aber noch vor
+Einfügen des Abstandes angewendet. Es ist damit also noch möglich, diesen
+Abstand über \Length{@tempskipa} zu verändern.
+
+Der \PName{Code} von \Macro{Before@sect}\important{\Macro{Before@sect}\\
+ \Macro{@sect}} beziehungsweise
+\Macro{Before@ssect}\important{\Macro{Before@ssect}\\
+ \Macro{@ssect}} wird unmittelbar vor dem Aufruf von \Macro{@sect} respektive
+\Macro{@ssect} innerhalb von
+\Macro{scr@startsection}\important{\Macro{scr@startsection}} ausgeführt. Zu
+diesem Zeitpunkt ist gegebenenfalls der vertikale Abstand vor der Überschrift
+bereits über \Macro{addvspace} eingefügt.
+
+Die drei Anweisungen \Macro{At@startsection}\important{\Macro{At@startsection}\\
+ \Macro{Before@sect}\\
+ \Macro{Before@ssect}}, \Macro{Before@sect} und \Macro{Before@ssect} sind als
+Schnittstelle für Paketautoren entworfen und für diese zur Verwendung
+freigegeben.%
+\EndIndexGroup
+
+% \subsection{Anhang}
+% \seclabel{appendix}
+
+\begin{Declaration}
+ \Macro{appendixmore}
+\end{Declaration}%
+Bei den {\KOMAScript}-Klassen gibt es innerhalb der Anweisung
+\DescRef{maincls.cmd.appendix}%
+\IndexCmd{appendix}\important{\DescRef{maincls.cmd.appendix}} eine
+Besonderheit. Ist \Macro{appendixmore} definiert, so wird diese Anweisung von
+\DescRef{maincls.cmd.appendix} ebenfalls ausgeführt. Intern wird das von den
+{\KOMAScript}-Klassen \Class{scrbook}\OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}} und \Class{scrreprt} für die Realisierung der Layoutoption
+\DescRef{maincls.option.appendixprefix} genutzt (siehe
+\autoref{sec:maincls.structure},
+\DescPageRef{maincls.option.appendixprefix}). Dies\textnote{Achtung!} sollten
+Sie unbedingt beachten, falls Sie selbst das Makro \Macro{appendixmore}
+definieren oder umdefinieren wollen. Ist diese Option bereits verwendet, so
+erhalten Sie bei \verb|\newcommand{\appendixmore}{|\dots\verb|}| eine
+Fehlermeldung. Dadurch wird verhindert, dass Sie die Optionen außer
+Kraft setzen, ohne es zu merken.
+
+\begin{Example}
+ Sie wollen nicht, dass bei Verwendung der Klasse \Class{scrbook} oder
+ \Class{scrreprt} im Hauptteil die Kapitel mit einer Präfixzeile versehen
+ werden (siehe Layoutoption \DescRef{maincls.option.chapterprefix}
+ in \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.option.chapterprefix}). Damit die Konsistenz
+ gewahrt bleibt, wollen Sie auch nicht, dass eine solche Zeile im Anhang
+ verwendet wird. Stattdessen soll in den Anhängen direkt vor dem
+ Kapitelbuchstaben das Wort »Anhang« in der jeweiligen Sprache stehen. Dies
+ soll auch für die Kolumnentitel gelten. Also verwenden Sie nicht die
+ Layoutoption \DescRef{maincls.option.appendixprefix}, sondern
+ definieren in der Dokumentpräambel:
+\begin{lstcode}
+ \newcommand*{\appendixmore}{%
+ \renewcommand*{\chapterformat}{%
+ \appendixname~\thechapter\autodot\enskip}%
+ \renewcommand*{\chaptermarkformat}{%
+ \appendixname~\thechapter\autodot\enskip}}
+\end{lstcode}
+ Sollten Sie doch noch entscheiden, dass Sie die Option
+ \DescRef{maincls.option.appendixprefix} bei
+ \DescRef{maincls.cmd.documentclass} setzen wollen, so erhalten Sie aufgrund
+ der dann bereits definierten Anweisung \Macro{appendixmore} eine
+ Fehlermeldung. Damit wird verhindert, dass obige Definition unbemerkt die
+ Einstellungen überschreibt, die Sie per Option getroffen haben.
+
+ Wenn Sie ein vergleichbares Verhalten des Anhangs für die Klasse
+ \Class{scrartcl} erreichen wollen, so ist dies ebenfalls möglich. Schreiben
+ Sie dazu beispielsweise Folgendes in die Präambel Ihres Dokuments:
+\begin{lstcode}[moretexcs={ifthenelse,equal}]
+ \newcommand*{\appendixmore}{%
+ \renewcommand*{\sectionformat}{%
+ \appendixname~\thesection\autodot\enskip}%
+ \renewcommand*{\sectionmarkformat}{%
+ \appendixname~\thesection\autodot\enskip}}
+\end{lstcode}
+
+ Die Erklärungen zu den in diesem Beispiel umdefinierten Anweisungen finden
+ Sie in \autoref{sec:maincls.structure},
+ \DescPageRef{maincls.cmd.chapterformat} und
+ \DescPageRef{maincls.cmd.chaptermarkformat}.
+\end{Example}%
+%
+\EndIndexGroup
+
+% \subsection{Literaturverzeichnis}
+% \seclabel{bibliography}
+
+\begin{Declaration}
+ \Macro{newbibstyle}\OParameter{Elternstil}\Parameter{Name}%
+ \Parameter{Anweisungen}
+ \Macro{newblock}
+ \Macro{@openbib@code}
+ \Macro{bib@beginhook}
+ \Macro{bib@endhook}
+\end{Declaration}
+Schon die Standardklassen\textnote{Standardklassen} kennen zur Unterteilung
+der Einträge in das Literaturverzeichnis die Anweisung \Macro{newblock}. Was
+diese Anweisung genau macht, hängt dabei von den Klassenoptionen ab. Wird die
+Option \Option{openbib}\important{\Option{openbib}} verwendet, so werden am
+Ende der Standardklasse die Anweisungen \Macro{@openbib@code} und
+\Macro{newblock} selbst umdefiniert. Von den Standardklassen wird die
+Anweisung \Macro{@openbib@code} beim Start der Liste für das
+Literaturverzeichnis --~genauer: bei der Festlegung der Parameter für diese
+Liste~-- ausgeführt. Es darf davon ausgegangen werden, dass auch viele Pakete,
+die das Literaturverzeichnis umdefinieren, diese Anweisung entsprechend
+abarbeiten.
+
+Bei den \KOMAScript-Klassen\textnote{\KOMAScript} geschieht etwas
+ähnliches. Allerdings wird \Macro{@openbib@code} nicht am Ende der Klasse
+umdefiniert. Stattdessen wird mit \Macro{newbibstyle} der Stil
+\PValue{openstyle} für das Literaturverzeichnis definiert. Die
+\PName{Anweisungen}, die dabei in der Implementierung angegeben wurden,
+beinhalten die gewünschten Umdefinierung von \Macro{@openbib@code} und von
+\Macro{newblock}. Wird nun mit Hilfe der Option
+\OptionValueRef{maincls}{bibliography}{openstyle}%
+\IndexOption{bibliography~=\textKValue{openstyle}}%
+\important{\OptionValueRef{maincls}{bibliography}{openstyle}} dieser
+Literaturverzeichnisstil gewählt, so werden die \PName{Anweisungen}
+unmittelbar ausgeführt, also \Macro{@openbib@code} und \Macro{newblock}
+umdefiniert.
+
+Neben \Macro{@openbib@code} und \Macro{newblock} können in \PName{Anweisungen}
+auch noch \Macro{bib@beginhook} und \Macro{bib@endhook} umdefiniert
+werden. Die Anweisung \Macro{bib@beginhook} wird unmittelbar nach der
+Überschrift und der Präambel des Literaturverzeichnisses, aber noch vor der
+Liste mit den Literatureinträgen ausgeführt. Die Anweisung \Macro{bib@endhook}
+wird direkt nach dieser Liste am Ende des Literaturverzeichnisses
+ausgeführt. Im Falle eines mit \DescRef{maincls.cmd.BreakBibliography} (siehe
+\autoref{sec:maincls.bibliography},
+\DescPageRef{maincls.cmd.BreakBibliography}) unterbrochenen
+Literaturverzeichnisses werden diese Anweisungen außerdem am Anfang und Ende
+jedes Teils, also unmittelbar vor und nach
+\DescRef{maincls.cmd.BreakBibliography} ausgeführt.
+
+Die Anweisungen \Macro{newblock}, \Macro{@openbib@code},
+\Macro{bib@beginhook} und \Macro{bib@endhook} werden bei der Verwendung eines
+neuen Literaturverzeichnisstils zunächst als leer definiert. Danach werden die
+\PName{Anweisungen} des bei der Definition des Stils optional angegebenen
+Elternstils ausgeführt und dann erst die \PName{Anweisungen}, die bei
+Definition des neuen Stils angegeben wurden. Daraus ergibt sich auch, dass
+jede der vier Anweisungen innerhalb von \PName{Anweisung} bei Bedarf
+keinesfalls mit \Macro{newcommand}, sondern mit
+\Macro{renewcommand}\IndexCmd{renewcommand}\important{\Macro{renewcommand}}
+definiert werden sollte.
+
+Setzt der Anwender mit den Anweisungen
+\DescRef{maincls.cmd.AtEndBibliography}%\important[i]{\DescRef{maincls.cmd.AtEndBibliography}\\
+% \DescRef{maincls.cmd.AfterBibliographyPreamble}}% Passt blöder Weise nicht!
+\IndexCmd{AtEndBibliography} und
+\DescRef{maincls.cmd.AfterBibliographyPreamble}%
+\IndexCmd{AfterBibliographyPreamble} weitere \PName{Anweisungen} für die
+Ausführung nach der Präambel und am Ende des Literaturverzeichnisses, so
+werden die mit \DescRef{maincls.cmd.AfterBibliographyPreamble} festgelegten
+\PName{Anweisungen} einmalig am Anfang des Literaturverzeichnisses nach
+\Macro{bib@beginhook} und die mit \DescRef{maincls.cmd.AtEndBibliography}
+festgelegten \PName{Anweisungen} einmalig am Ende des Literaturverzeichnisses
+vor \Macro{bib@endhook} ausgeführt.
+
+Mit\textnote{Beispiel!} Hilfe des Pakets
+\Package{multicol}\IndexPackage{multicol}\important{\Package{multicol}} (siehe
+\cite{package:multicol}) könnte man beispielsweise einen Literaturstil für ein
+zweispaltiges Literaturverzeichnis definieren:
+% Umbruchkorrektur: listings korrigiert
+\begin{lstcode}
+ \newbibstyle{twocolumstyle}{%
+ \renewcommand*{\bib@beginhook}{\begin{multicols}{2}}%
+ \renewcommand*{\bib@endhook}{\end{multicols}}}%
+\end{lstcode}
+Soll es außerdem eine \emph{open}-Variante davon geben, kann man hier die
+Möglichkeiten der Vererbung verwenden und bei der Definition einen Elternstil
+mit angeben:
+% Umbruchkorrektur: listings korrigiert
+\begin{lstcode}
+ \newbibstyle[openstyle]{twocolumopenstyle}{%
+ \renewcommand*{\bib@beginhook}{\begin{multicols}{2}}%
+ \renewcommand*{\bib@endhook}{\end{multicols}}}%
+\end{lstcode}
+Die Auswahl eines dieser neuen Stile erfolgt dann einfach wieder über die
+Option \DescRef{maincls.option.bibliography}.
+
+Wie\textnote{Achtung!} schon \DescRef{maincls.cmd.BreakBibliography} verlieren
+auch diese Anweisungen ganz oder teilweise ihre Wirkung, wenn
+\Environment{thebibliography} beispielsweise durch Verwendung von
+\Package{biblatex}\IndexPackage{biblatex}\important{\Package{biblatex}}
+umdefiniert wird.%
+\EndIndexGroup
+
+
+\section{Mehr oder weniger obsolete Optionen und Anweisungen}
+\seclabel{obsolete}
+
+\LoadNonFree{scrbookreportarticle-experts}{4}
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "guide.tex"
+%%% End:
+
+% LocalWords: Sternvarianten Kapitelüberschrift Standardklassen Paketautoren
+% LocalWords: Klassenoptionen Gliederungsbefehlen Namensliste umzudefinieren
+% LocalWords: Inhaltsverzeichniseintrags Abstandsanweisungen Sternformen
+% LocalWords: Teilüberschriften Benutzerfreundlichkeit Absatzmarkierung
+% LocalWords: umkonfiguriert Teileüberschrift Abschnittsüberschrift
+% LocalWords: Absolutwert Gliederungsbefehls Präfixzeile Schrifteinstellung
+% LocalWords: Zählername Spitzmarke Kolumnentitels Schrifteinstellungen
+% LocalWords: Strichstärke expandierbar expandierbaren expandierbares
+% LocalWords: spartanisch Kapitelstil Spitzmarken Formatierungsanweisungen
+% LocalWords: Kapitelüberschriften Gliederungsebenen Verzeichniseinträge
+% LocalWords: Verzeichniseintragsstile Gliederungsbefehl Verzeichniseintrag
+% LocalWords: Verzeichniseintrags Verzeichniseintragsstilen Gliederungsstil
+% LocalWords: Gliederungsebene Eintragsebenen Absatzeinzug Dokumentpräambel
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrbookreportarticle.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrbookreportarticle.tex
new file mode 100644
index 0000000000..58b51a63fa
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrbookreportarticle.tex
@@ -0,0 +1,5015 @@
+% ======================================================================
+% scrbookreportarticle.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrbookreportarticle.tex
+% Copyright (c) Markus Kohm, 2001-2019
+%
+% 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 scrbook, scrreprt, and scrartcl of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel über scrbook, scrreprt und scrartcl in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrbookreportarticle.tex}
+ [$Date: 2019-01-14 14:29:39 +0100 (Mon, 14 Jan 2019) $
+ KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl)]
+
+\chapter{Die Hauptklassen \Class{scrbook}, \Class{scrreprt}, \Class{scrartcl}}
+\labelbase{maincls}%
+\BeginIndexGroup
+\BeginIndex{Class}{scrbook}%
+\BeginIndex{Class}{scrreprt}%
+\BeginIndex{Class}{scrartcl}%
+
+\AddSeeIndex{Anweisung}{gen}{\GuidecmdIndexShort}{cmd}%
+\AddSeeIndex{Makro}{gen}{\GuidecmdIndexShort}{cmd}%
+Die Hauptklassen des \KOMAScript-Pakets sind als Äquivalent zu den
+\LaTeX-Standard"-klassen angelegt. Das bedeutet, dass zu den drei
+Standardklassen \Class{book}\IndexClass{book}, \Class{report}%
+\IndexClass{report} und \Class{article}\IndexClass{article} im
+\KOMAScript-Paket Entsprechungen zu finden sind. Daneben ist auch für die
+Standardklasse \Class{letter}\IndexClass{letter} eine Entsprechung vorhanden.
+Der Briefklasse in {\KOMAScript} ist jedoch ein eigenes Kapitel gewidmet, da
+sie sich von den drei Hauptklassen grundsätzlich unterscheidet (siehe
+\autoref{cha:scrlttr2}).
+
+Die einfachste Möglichkeit, anstelle einer Standardklasse eine
+\KOMAScript-Klasse zu verwenden, ist das Ersetzen des Klassennamens in der
+Anweisung \verb|\documentclass| entsprechend
+\autoref{tab:maincls.overview}. Man tauscht
+also beispielsweise \Macro{documentclass}\PParameter{book} gegen
+\Macro{documentclass}\PParameter{scrbook}. Der anschließende \LaTeX-Lauf
+sollte lediglich einige Layoutänderungen mit sich bringen. Ein großer Teil der
+in den nachfolgenden Abschnitten beschriebenen vielfältigen Möglichkeiten und
+Optionen werden von den \KOMAScript-Klassen zusätzlich geboten.
+
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}
+ [Klassengegenüberstellung]{\label{tab:maincls.overview}Gegenüberstellung der
+ Standardklassen und der \KOMAScript-Klassen}
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Standard-Klasse & \KOMAScript-Klasse \\%& \Script-Stil (\LaTeX2.09)\\
+ \midrule
+ \Class{article} & \Class{scrartcl} \\%& \File{script\textunderscore s} \\
+ \Class{report} & \Class{scrreprt} \\%& \File{script} \\
+ \Class{book} & \Class{scrbook} \\%& \File{script} \\
+ \Class{letter} & \Class{scrlttr2} \\%& \File{script\textunderscore l} \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+Lassen Sie mich der Erläuterung der Klassen noch eine Bemerkung
+vorausschicken. Oft ist man sich am Anfang eines Dokuments unsicher, welche
+Einstellungen konkret zu wählen sind. Bei einigen Einstellungen, wie der
+Auswahl des Papierformats, mögen sie bereits vorab feststehen. Aber schon die
+Frage nach der Seitenauf"|teilung könnte im Voraus schwer zu beantworten sein.
+Andererseits sollten diese Angaben für die Haupttätigkeiten des Autors --
+Entwurf der Gliederung, Schreiben des Textes, Zusammenstellen von Abbildungen,
+Tabellen und Verzeichnissen -- zunächst auch unerheblich sein. Konzentrieren
+Sie sich als Autor erst einmal auf den Inhalt. Wenn der dann steht, können Sie
+sich um die Feinheiten der Form kümmern. Neben der Auswahl der Optionen
+gehören dazu dann auch Dinge wie die Korrektur der Trennung und möglicherweise
+dezente Eingriffe in den Seitenumbruch oder die Verteilung von Abbildungen und
+Tabellen.
+
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\LoadCommonFile{options} % \section{Frühe oder späte Optionenwahl}
+
+%\iffree{}{\clearpage}% Umbruchkorrektur!!!
+
+\LoadCommonFile{compatibility} % \section{Kompatibilität zu früheren Versionen von \KOMAScript}
+
+\LoadCommonFile{draftmode} % \section{Entwurfsmodus}
+
+\LoadCommonFile{typearea} % \section{Seitenauf"|teilung}
+
+\begin{Declaration}
+ \Macro{flushbottom}
+ \Macro{raggedbottom}
+\end{Declaration}
+\begin{Explain}
+ Insbesondere bei doppelseitigen Dokumenten ist es wünschenswert, wenn nicht
+ 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, 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
+ notwendig, dass man zumindest einige der vertikalen Abstände etwas dehnt
+ oder staucht, um das Ziel wieder zu erreichen. \TeX{} kennt zu diesem Zweck
+ dehn- und stauchbare Abstände und \LaTeX{} bietet die Möglichkeit,
+ diesen \emph{vertikalen Ausgleich}\Index{Ausgleich} automatisch
+ durchzuführen.
+\end{Explain}
+
+Wird über die Option
+\Option{twoside}\IndexOption{twoside}\important{\Option{twoside}} (siehe
+\autoref{sec:typearea.typearea}, \DescPageRef{typearea.option.twoside})
+doppelseitiger oder über Option
+\Option{twocolumn}\IndexOption{twocolumn}\important{\Option{twocolumn}} (siehe
+\DescPageRef{typearea.option.twocolumn}) zweispaltiger Satz angefordert, so
+wird der vertikale Ausgleich ebenfalls
+eingeschaltet. Das\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} gilt jedoch bei einer Kompatibilitätseinstellung zu einer
+\KOMAScript-Version vor 3.17 (siehe
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}, Option
+\DescRef{\LabelBase.option.version}%
+\IndexOption{version}\important{\OptionValueRef{\LabelBase}{version}{3.17}})
+nicht, wenn die Option über \DescRef{\LabelBase.cmd.KOMAoption} oder
+\DescRef{\LabelBase.cmd.KOMAoptions} geändert wird.
+
+Man kann den vertikalen Ausgleich auch mit \Macro{flushbottom} jederzeit
+ab der aktuellen Seite explizit fordern. Umgekehrt ist es möglich, mit
+\Macro{raggedbottom} den vertikalen Ausgleich ab der aktuellen Seite explizit
+abzuschalten. Dies entspricht der Voreinstellung bei einseitigem Satz.
+
+{\KOMAScript} verwendet übrigens einen leicht modifizierten Verzicht auf den
+vertikalen Ausgleich. \iffree{}{Näheres dazu ist in
+ \autoref{sec:maincls-experts.addInfos},
+ \DescPageRef{maincls-experts.cmd.footnoterule} zu erfahren.}%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{fontsize} % \section{Wahl der Schriftgröße für das Dokument}
+
+\LoadCommonFile{textmarkup} % \section{Textauszeichnungen}
+
+\LoadCommonFile{titles}% \section{Dokumenttitel}
+
+\section{Zusammenfassung}
+\seclabel{abstract}
+\BeginIndexGroup
+\BeginIndex{}{Zusammenfassung}%
+
+Insbesondere bei Artikeln, seltener bei Berichten findet man unmittelbar unter
+der Titelei und noch vor dem Inhaltsverzeichnis eine Zusammenfassung. Bei
+Verwendung eines Titelkopfes ist die Zusammenfassung in der Regel ein rechts
+und links eingezogener Block. Im Vergleich dazu wird bei Verwendung von
+Titelseiten die Zusammenfassung eher als Kapitel oder Abschnitt gesetzt.
+
+\begin{Declaration}
+ \OptionVName{abstract}{Ein-Aus-Wert}
+\end{Declaration}%
+Bei\ChangedAt{v3.00}{\Class{scrreprt}\and \Class{scrartcl}}%
+\OnlyAt{\Class{scrreprt}\and \Class{scrartcl}} den
+Standardklassen\textnote{\KOMAScript{} vs. Standardklassen} setzt die
+\DescRef{\LabelBase.env.abstract}-Umgebung noch den zentrierten Titel
+»\abstractname« vor die Zusammenfassung. Früher war dies durchaus
+üblich. Inzwischen sind wir durch das Zeitunglesen darin geübt, einen
+entsprechend hervorgehobenen Text am Anfang eines Artikels oder Berichts als
+Zusammenfassung zu erkennen. Dies gilt umso mehr, wenn dieser Text noch vor
+dem Inhaltsverzeichnis steht. Zudem verwundert es, wenn ausgerechnet diese
+Überschrift klein und zentriert ist. {\KOMAScript} bietet mit der Option
+\Option{abstract} die Möglichkeit, die Überschrift über der Zusammenfassung
+ein- oder auszuschalten. Als \PName{Ein-Aus-Wert} kann einer der
+Standardwerte für einfache Schalter aus \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch} verwendet werden. Voreingestellt ist bei
+\KOMAScript{} \PValue{false}.
+
+Bei Büchern wird in der Regel eine andere Art der Zusammenfassung
+verwendet. Dort setzt man ein entsprechendes Kapitel an den Anfang oder das
+Ende des Werks. Oft wird diese Zusammenfassung entweder mit der Einleitung
+oder einem weiteren Ausblick verknüpft. Daher gibt es bei \Class{scrbook}
+überhaupt keine \DescRef{\LabelBase.env.abstract}-Umgebung.
+Bei\textnote{Tipp!} Berichten im weiteren Sinne, etwa einer Studien- oder
+Diplomarbeit, ist ebenfalls eine Zusammenfassung in dieser Form zu
+empfehlen. Siehe dazu die in \autoref{sec:maincls.structure}, ab
+\DescPageRef{\LabelBase.cmd.chapter*} dokumentierten Befehle
+\DescRef{\LabelBase.cmd.chapter*}\IndexCmd{chapter*}.
+\DescRef{\LabelBase.cmd.addchap}\IndexCmd{addchap} und
+\DescRef{\LabelBase.cmd.addchap*}\IndexCmd{addchap*}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \begin{Environment}{abstract}\end{Environment}
+\end{Declaration}%
+\OnlyAt{\Class{scrartcl}\and \Class{scrreprt}}%
+Einige \LaTeX-Klassen bieten eine spezielle Umgebung für die
+Zusammenfassung: die \Environment{abstract}-Umgebung. Diese wird unmittelbar
+ausgegeben, ist also nicht Bestandteil der mit
+\DescRef{\LabelBase.cmd.maketitle} gesetzten Titelei. Bitte\textnote{Achtung!}
+beachten Sie unbedingt, dass es sich bei \Environment{abstract} um eine
+Umgebung und nicht um eine Anweisung handelt. Ob die Zusammenfassung mit einer
+Überschrift versehen wird oder nicht, wird über die Option
+\DescRef{\LabelBase.option.abstract} gesteuert (siehe oben).
+
+Bei Büchern ist die Zusammenfassung häufig Bestandteil der Einleitung oder
+eines gesonderten Kapitels am Ende des Dokuments. Daher gibt es bei
+\Class{scrbook} keine \Environment{abstract}-Umgebung. Bei Verwendung der
+Klasse \Class{scrreprt} ist es sicher eine Überlegung wert, ob man nicht
+genauso verfahren sollte. Siehe hierzu in \autoref{sec:\LabelBase.structure}
+ab \DescPageRef{\LabelBase.cmd.chapter*}
+die Anweisungen \DescRef{\LabelBase.cmd.chapter*}\IndexCmd{chapter*} und
+\DescRef{\LabelBase.cmd.addchap}\IndexCmd{addchap} oder
+\DescRef{\LabelBase.cmd.addchap*}.% (\DescPageRef{\LabelBase.cmd.addchap}).
+
+Wird ein Titelkopf\Index{Titel>Kopf} (siehe Option
+\DescRef{\LabelBase.option.titlepage}, \autoref{sec:\LabelBase.titlepage},
+\DescPageRef{\LabelBase.option.titlepage}) verwendet, so wird die
+Zusammenfassung intern mit Hilfe einer
+\DescRef{\LabelBase.env.quotation}-Umgebung\IndexEnv{quotation} (siehe
+\autoref{sec:\LabelBase.lists}, \DescPageRef{\LabelBase.env.quotation})
+gesetzt. Dabei werden Absatzanfänge normalerweise mit Einzug gesetzt. Soll der
+erste Absatz nicht eingezogen werden, so kann dieser Einzug mit
+\Macro{noindent}\IndexCmd{noindent}\important{\Macro{noindent}}
+\iffree{unmittelbar nach \Macro{begin}\PParameter{abstract}}{am Anfang der
+ Umgebung} unterdrückt werden.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Inhaltsverzeichnis}
+\seclabel{toc}
+\BeginIndexGroup
+\BeginIndex{}{Inhaltsverzeichnis}
+
+Auf die Titelei und eine eventuell vorhandene Zusammenfassung folgt
+normalerweise das Inhaltsverzeichnis. Häufig findet
+man nach dem Inhaltsverzeichnis auch noch die Verzeichnisse der
+Gleitumgebungen, beispielsweise von Tabellen und Abbildungen (siehe
+\autoref{sec:\LabelBase.floats}).
+
+\iffalse%
+Es ist zu beachten, dass neben den in diesem Abschnitt dokumentierten
+Möglichkeiten auch noch die Anweisungen
+\DescRef{maincls-experts.cmd.DeclareSectionCommand},
+\DescRef{maincls-experts.cmd.DeclareNewSectionCommand},
+\DescRef{maincls-experts.cmd.RedeclareSectionCommand} und
+\DescRef{maincls-experts.cmd.ProvideSectionCommand} Auswirkungen auf das
+Inhaltsverzeichnis haben können. Siehe \autoref{sec:maincls-experts.experts},
+\DescPageRef{maincls-experts.cmd.DeclareSectionCommand}.%
+\else%
+Neben den in diesem Abschnitt dokumentierten Möglichkeiten hat auch der mit
+\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}\IndexCmd{DeclareTOCStyleEntry}%
+\important[O]{\DescRef{tocbasic.cmd.DeclareTOCStyleEntry}}
+gewählte und
+konfigurierte Eintragsstil des Pakets
+\hyperref[cha:tocbasic]{\Package{tocbasic}}%
+\important{\hyperref[cha:tocbasic]{\Package{tocbasic}}}%
+\IndexPackage{tocbasic} (siehe
+\DescPageRef{tocbasic.cmd.DeclareTOCStyleEntry}) maßgeblichen Einfluss auf die
+Darstellung des Inhaltsverzeichnisses. Entsprechend können sich auch die in
+\autoref{sec:maincls-experts.experts} ab
+\DescPageRef{maincls-experts.cmd.DeclareSectionCommand} dokumentierten
+Befehle
+\DescRef{maincls-experts.cmd.DeclareSectionCommand}%
+\important[O]{\DescRef{maincls-experts.cmd.DeclareSectionCommand}}%
+\IndexCmd{DeclareSectionCommand},
+\DescRef{maincls-experts.cmd.ProvideSectionCommand}%
+\IndexCmd{ProvideSectionCommand},
+\DescRef{maincls-experts.cmd.DeclareNewSectionCommand}%
+\IndexCmd{DeclareNewSectionCommand} und
+\DescRef{maincls-experts.cmd.RedeclareSectionCommand}%
+\IndexCmd{RedeclareSectionCommand} auf das Inhaltsverzeichnis auswirken.%
+\fi
+
+
+\begin{Declaration}
+ \OptionVName{toc}{Einstellung}
+\end{Declaration}
+Neuerdings ist es fast schon üblich geworden Tabellen- und
+Abbildungsverzeichnis sowie das Literaturverzeichnis, seltener das
+Stichwortverzeichnis, ins Inhaltsverzeichnis aufzunehmen. Dies hat sicher auch
+mit der neuen Mode zu tun, Abbildungs- und Tabellenverzeichnis ans Buchende zu
+stellen. Beide Verzeichnisse haben von Aufbau und Intention eine deutliche
+Ähnlichkeit mit dem Inhaltsverzeichnis. Daher betrachte ich die Entwicklung
+skeptisch. Da\important{\OptionValue{toc}{listof}} es keinen Sinn hat, nur das
+Tabellen- oder nur das Abbildungsverzeichnis ohne das jeweils andere ins
+Inhaltsverzeichnis aufzunehmen, werden mit der
+\PName{Einstellung}\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} \PValue{listof}\IndexOption{toc~=\textKValue{listof}} beide
+Verzeichnisse gemeinsam ins Inhaltsverzeichnis aufgenommen. Dabei werden auch
+Verzeichnisse berücksichtigt, die mit Hilfe des
+\Package{float}-Pakets\IndexPackage{float} ab Version~1.2e (siehe
+\cite{package:float}) oder \Package{floatrow} (siehe \cite{package:floatrow})
+erstellt werden. Als\important{\OptionValue{toc}{listofnumbered}}
+Verzeichnisse, die den Inhalt anderer Abschnitte des Werks auf"|führen,
+erhalten Tabellen"~, Abbildungs- und die mit den genannten Paketen erzeugten
+Verzeichnisse grundsätzlich keine Kapitelnummer. Wer diesen Grundsatz
+ignorieren will, bedient sich der \PName{Einstellung}
+\PValue{listofnumbered}\IndexOption{toc~=\textKValue{listofnumbered}}.
+
+\leavevmode\LabelOptionValue{toc}{index}\nobreak
+Das\important{\OptionValue{toc}{index}} Stichwortverzeichnis erhält mit
+\OptionValue{toc}{index}\IndexOption{toc~=\textKValue{index}} einen Eintrag im
+Inhaltsverzeichnis. Da das Stichwortverzeichnis ebenfalls nur Verweise auf den
+Inhalt anderer Abschnitte enthält, wird auch dieser Eintrag grundsätzlich
+nicht nummeriert. Eine\ChangedAt{v3.18}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}}
+Abweichung\important{\OptionValue{toc}{indexnumbered}} von diesem Grundsatz
+wird von \KOMAScript{} trotz Bedenken des Autors mit
+\OptionValue{toc}{indexnumbered}\IndexOption{toc~=\textKValue{indexnumbered}}
+ebenfalls unterstützt.
+
+\leavevmode\LabelOptionValue{toc}{bibliography}\nobreak Das
+Literaturverzeichnis stellt eine etwas andere Art von Verzeichnis dar. Hier
+wird nicht der Inhalt des vorliegenden Werks aufgelistet, sondern auf externe
+Inhalte verwiesen. Mit\important{\OptionValue{toc}{bibliographynumbered}}
+dieser Begründung könnte man argumentieren, dass das Literaturverzeichnis ein
+eigenes Kapitel bzw. einen eigenen Abschnitt darstelle und somit eine Nummer
+verdiene. Die Option \OptionValue{toc}{bibliographynumbered}%
+\IndexOption{toc~=\textKValue{bibliographynumbered}} führt genau dazu,
+einschließlich des dann fälligen Eintrags im Inhaltsverzeichnis. Ich selbst
+bin allerdings 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{toc}{bibliography}} erscheint
+mir allenfalls ein nicht nummerierter Eintrag im Inhaltsverzeichnis
+angemessen, was mit der Einstellung
+\OptionValue{toc}{bibliography}\IndexOption{toc~=\textKValue{bibliography}}
+erreicht wird.
+
+\leavevmode\LabelOptionValue{toc}{graduated}\nobreak
+Normalerweise\ChangedAt{v2.8q}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+\important{\OptionValue{toc}{graduated}} wird das Inhaltsverzeichnis so
+formatiert, dass die Gliederungsebenen unterschiedlich weit eingezogen
+werden. Dabei wird für die Gliederungsnummer jeder Ebene ein Raum fester
+Breite vorgesehen, in dem die Nummer linksbündig gesetzt wird. Dies entspricht
+der Einstellung\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}
+\OptionValue{toc}{graduated}\IndexOption{toc~=\textKValue{graduated}}.
+
+\leavevmode\LabelOptionValue{toc}{flat}\nobreak
+Werden sehr viele Gliederungspunkte verwendet, so werden die
+Gliederungsnummern sehr breit. Damit reicht der vorgesehene Platz nicht
+aus. In \cite{DANTE:FAQ} wird für solche Fälle vorgeschlagen, die Erzeugung
+des Inhaltsverzeichnisses
+umzudefinieren. \KOMAScript{}\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~=\textKValue{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
+Platz wird dabei automatisch ermittelt.
+
+Einen Überblick über alle möglichen Werte für die \PName{Einstellung} von
+\Option{toc} ist in \autoref{tab:maincls.toc} zu finden.
+
+\begin{desclist}
+ \desccaption[{Mögliche Werte für Option \Option{toc}}]{%
+ Mögliche Werte für Option \Option{toc} zur Einstellung von Form und Inhalt
+ des Inhaltsverzeichnisses\label{tab:maincls.toc}%
+ }{%
+ Mögliche Werte für Option \Option{toc} (\emph{Fortsetzung})%
+ }%
+ \entry{\PValue{bibliography}, \PValue{bib}}{%
+ Das Literaturverzeichnis erhält einen Eintrag im Inhaltsverzeichnis, ohne
+ dass es nummeriert wird.%
+ \IndexOption{toc~=\textKValue{bibliography}}}%
+ \entry{\PValue{bibliographynumbered}, \PValue{bibnumbered},
+ \PValue{numberedbibliography}, \PValue{numberedbib}}{%
+ Das Literaturverzeichnis erhält einen Eintrag im Inhaltsverzeichnis und
+ wird nummeriert.%
+ \IndexOption{toc~=\textKValue{bibliographynumbered}}}%
+ \entry{\PValue{chapterentrywithdots}, \PValue{chapterentrydotfill}}{%
+ \ChangedAt[2014/12]{v3.15}{\Class{scrbook}\and \Class{scrreprt}}%
+ Bei den Kapiteleinträgen der Klassen \Class{scrbook} und \Class{scrreprt}
+ werden Text und Seitenzahl ebenfalls durch eine punktierte Linie
+ miteinander verbunden.%
+ \IndexOption{toc~=\textKValue{chapterentrywithdots}}}%
+ \entry{\PValue{chapterentrywithoutdots}, \PValue{chapterentryfill}}{%
+ \ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}}%
+ Bei den Kapiteleinträgen der Klassen \Class{scrbook} und \Class{scrreprt}
+ werden Text und Seitenzahl nicht durch eine punktierte Linie miteinander
+ verbunden. Dies entspricht der Voreinstellung.%
+ \IndexOption{toc~=\textKValue{chapterentrywithoutdots}}}%
+ \entry{\PValue{flat}, \PValue{left}}{%
+ Das Inhaltsverzeichnis erhält eine tabellarische Form. Die
+ Gliederungsnummern sind dabei die erste Spalte, die Überschriften die
+ zweite Spalte, die Seitenzahlen die dritte Spalte. Der Platz, der für die
+ Gliederungsnummern reserviert wird, richtet sich nach dem benötigten Platz
+ des vorherigen \LaTeX-Laufs.%
+ \IndexOption{toc~=\textKValue{flat}}}%
+ \entry{\PValue{graduated}, \PValue{indent}, \PValue{indented}}{%
+ Das Inhaltsverzeichnis erhält eine hierarchische Form. Es steht nur ein
+ begrenzter Platz für die Gliederungsnummern zur Verfügung. Dies entspricht
+ der Voreinstellung.%
+ \IndexOption{toc~=\textKValue{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},
+ \DescPageRef{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~=\textKValue{numberline}}}%
+ \entry{\PValue{index}, \PValue{idx}}{%
+ Das Stichwortverzeichnis erhält einen Eintrag im Inhaltsverzeichnis, ohne
+ dass es nummeriert wird.%
+ \IndexOption{toc~=\textKValue{index}}}%
+ \entry{\PValue{indexnumbered}}{%
+ \ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Das Stichwortverzeichnis erhält einen Eintrag im Inhaltsverzeichnis und
+ wird nummeriert.%
+ \IndexOption{toc~=\textKValue{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},
+ \DescPageRef{tocbasic.cmd.setuptoc}) wird für das Inhaltsverzeichnis
+ gelöscht. Dadurch werden nicht nummerierte Einträge linksbündig mit der
+ Nummer von nummerierten Einträgen gleicher Ebene gesetzt. Dies entspricht
+ der Voreinstellung.%
+ \IndexOption{toc~=\textKValue{numberline}}}%
+ \pventry{listof}{%
+ Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und
+ das Tabellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis,
+ ohne dass sie nummeriert werden.%
+ \IndexOption{toc~=\textKValue{listof}}}%
+ \entry{\PValue{listofnumbered}, \PValue{numberedlistof}}{%
+ Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und
+ das Tabellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis und
+ werden nummeriert.%
+ \IndexOption{toc~=\textKValue{listofnumbered}}}%
+ \entry{\PValue{nobibliography}, \PValue{nobib}}{%
+ Das Literaturverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis. Dies
+ entspricht der Voreinstellung.%
+ \IndexOption{toc~=\textKValue{nobibliography}}}%
+ \entry{\PValue{noindex}, \PValue{noidx}}{%
+ Das Stichwortverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis. Dies
+ entspricht der Voreinstellung.%
+ \IndexOption{toc~=\textKValue{noindex}}}%
+ \pventry{nolistof}{%
+ Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und
+ das Tabellenverzeichnis, erhalten keinen Eintrag im
+ Inhaltsverzeichnis. Dies entspricht der Voreinstellung.%
+ \IndexOption{toc~=\textKValue{nolistof}}}%
+ \entry{\PValue{sectionentrywithdots}, \PValue{sectionentrydotfill}}{%
+ \ChangedAt[2014/12]{v3.15}{\Class{scrartcl}}%
+ Bei den Abschnittseinträgen der Klasse \Class{scrartcl} werden Text und
+ Seitenzahl ebenfalls durch eine punktierte Linie miteinander verbunden.%
+ \IndexOption{toc~=\textKValue{sectionentrywithdots}}}%
+ \entry{\PValue{sectionentrywithoutdots}, \PValue{sectionentryfill}}{%
+ \ChangedAt{v3.15}{\Class{scrartcl}}%
+ Bei den Abschnittseinträgen der Klasse \Class{scrartcl} werden Text und
+ Seitenzahl nicht durch eine punktierte Linie miteinander verbunden. Dies
+ entspricht der Voreinstellung.%
+ \IndexOption{toc~=\textKValue{sectionentrywithoutdots}}}%
+\end{desclist}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{chapterentrydots}{Ein-Aus-Wert}\\
+ \OptionVName{sectionentrydots}{Ein-Aus-Wert}
+\end{Declaration}
+Diese\ChangedAt[2014/12]{v3.15}{\Class{scrbook}\and \Class{scrreprt}} Optionen
+legen fest, ob im Inhaltsverzeichnis bei den Klassen \Class{scrbook} und
+\Class{scrreprt}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} für die
+Kapitelebene beziehungsweise bei der Klasse
+\Class{scrartcl}\OnlyAt{\Class{scrartcl}} für die Abschnittsebene wie bei den
+tieferen Ebenen auch eine punktierte Verbindungslinie zwischen dem Text des
+Eintrags und der zugehörigen Seitenzahl verwendet werden soll. Als
+\PName{Ein-Aus-Wert} kann einer der Standardwerte für einfache Schalter aus
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} verwendet
+werden. Voreingestellt ist für beide Optionen \PValue{false}, wodurch statt
+einer punktierten Linie lediglich ein Abstand verwendet wird.
+
+\BeginIndex{FontElement}{chapterentrydots}\LabelFontElement{chapterentrydots}%
+\BeginIndex{FontElement}{sectionentrydots}\LabelFontElement{sectionentrydots}%
+Wird die punktierte Linie verwendet, so kann deren Schrift über die Elemente
+\FontElement{chapterentrydots}%
+\important{\FontElement{chapterentrydots}\\
+ \FontElement{sectionentrydots}} und \FontElement{sectionentrydots} gegenüber
+den Einstellungen für die Seitenzahlen in den Einträgen verändert werden
+(siehe auch \DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont}, \autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}, sowie
+\autoref{tab:maincls.fontelements},
+\autopageref{tab:maincls.fontelements}). Die Voreinstellungen der Elemente
+sind \autoref{tab:maincls.tocelements} auf
+\autopageref{tab:maincls.tocelements} zu entnehmen. Es ist zu
+beachten\textnote{Achtung!}, dass die Pünktchen nur sauber untereinander
+stehen, wenn die Schrift aller Pünktchen identisch ist.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tableofcontents}
+\end{Declaration}%
+Die Ausgabe des Inhaltsverzeichnisses wird mit \Macro{tableofcontents}
+erreicht. Um ein korrektes Inhaltsverzeichnis zu erhalten, sind nach jeder
+Änderung mindestens zwei \LaTeX-Läufe notwendig. Mit der oben erläuterten
+Option \DescRef{\LabelBase.option.toc} kann der Umfang und die Form des
+Inhaltsverzeichnisses beeinflusst werden. Nach einer Umschaltung der Option
+sind ebenfalls mindestens zwei weitere \LaTeX-Läufe notwendig.
+
+Der Eintrag für \DescRef{\LabelBase.cmd.chapter}\IndexCmd{chapter} bei
+\Class{scrbook}\IndexClass{scrbook} und \Class{scrreprt}\IndexClass{scrreprt}
+beziehungsweise \DescRef{\LabelBase.cmd.section}\IndexCmd{section} bei
+\Class{scrartcl}\IndexClass{scrartcl} sowie der Gliederungsebene
+\DescRef{\LabelBase.cmd.part}\IndexCmd{part} wird nicht
+eingerückt. Gleichzeitig befinden sich zwischen dem Text der Gliederungsebene
+und der Seitenzahl in der Voreinstellung keine Pünktchen. Die typografischen
+Gründe dafür liegen in der normalerweise anderen Schriftart sowie der
+erwünschten Hervorhebung. Dies\ChangedAt{v3.15}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} kann jedoch mit den zuvor
+dokumentierten Optionen geändert werden. Das Inhaltsverzeichnis \iffree{dieser
+ Anleitung}{dieses Buches} ist mit den Voreinstellungen gesetzt und dient als
+Beispiel.
+
+\BeginIndex{FontElement}{partentry}\LabelFontElement{partentry}%
+\BeginIndex{FontElement}{chapterentry}\LabelFontElement{chapterentry}%
+\BeginIndex{FontElement}{sectionentry}\LabelFontElement{sectionentry}%
+Die\ChangedAt{v2.97c}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}\important{\FontElement{partentry}\\
+ \FontElement{chapterentry}\\
+ \FontElement{sectionentry}} Schrift der oberen
+Inhaltsverzeichniseinträge ist über die Elemente
+\FontElement{partentry} und für \Class{scrbook}
+und \Class{scrreprt} über
+\FontElement{chapterentry} beziehungsweise
+\FontElement{sectionentry} für \Class{scrartcl}
+einstellbar.
+\BeginIndex{FontElement}{partentrypagenumber}%
+\LabelFontElement{partentrypagenumber}%
+\LabelFontElement{pagination}%
+\BeginIndex{FontElement}{chapterentrypagenumber}%
+\LabelFontElement{chapterentrypagenumber}%
+\BeginIndex{FontElement}{sectionentrypagenumber}%
+\LabelFontElement{sectionentrypagenumber}%
+Die Schrift der Seitenzahlen kann jeweils davon abweichend über die Elemente
+\FontElement{partentrypagenumber}%
+\important{\FontElement{partentrypagenumber}} und
+\FontElement{chapterentrypagenumber}%
+\important{\FontElement{chapterentrypagenumber}\\
+ \FontElement{sectionentrypagenumber}} (\Class{scrbook} und \Class{scrreprt})
+beziehungsweise \FontElement{sectionentrypagenumber} (\Class{scrartcl})
+eingestellt werden (siehe auch \DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} in \autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}, sowie
+\autoref{tab:maincls.fontelements}, \autopageref{tab:maincls.fontelements}).
+Werden\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} je nach Klasse für die Kapitel- beziehungsweise
+Abschnittseinträge ebenfalls punktierte Verbindungslinien zu den Seitenzahlen
+über Option \DescRef{\LabelBase.option.toc}%
+\IndexOption{toc~=\textKValue{chapterentrywithdots}}%
+\IndexOption{toc~=\textKValue{sectionentrywithdots}},
+\DescRef{\LabelBase.option.chapterentrydots}%
+\IndexOption{chapterentrydots~=\PName{Ein-Aus-Wert}} oder
+\DescRef{\LabelBase.option.sectionentrydots}%
+\IndexOption{sectionentrydots~=\PName{Ein-Aus-Wert}} verwendet, so kann deren
+Schrift über die Elemente \DescRef{\LabelBase.fontelement.chapterentrydots}%
+\IndexFontElement{chapterentrydots}%
+\important{\DescRef{\LabelBase.fontelement.chapterentrydots}\\
+ \DescRef{\LabelBase.fontelement.sectionentrydots}} und
+\DescRef{\LabelBase.fontelement.sectionentrydots}%
+\IndexFontElement{sectionentrydots} gegenüber den Einstellungen für die
+Seitenzahlen verändert werden. Die Voreinstellungen der Elemente sind
+\autoref{tab:maincls.tocelements} zu entnehmen.
+\begin{table}
+% \centering
+% \caption
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [Schriftvoreinstellungen für die Elemente
+ des Inhaltsverzeichnisses]
+ {\label{tab:maincls.tocelements}%
+ \hspace{0pt plus 1ex}Vorein\-stel\-lung\-en der Schrift für die Elemente
+ des In\-halts\-ver\-zeich\-nis\-ses}
+ [l]
+ \setlength{\tabcolsep}{.9\tabcolsep}% Umbruchoptimierung!
+ \begin{tabular}[t]{ll}
+ \toprule
+ Element & Voreinstellung \\
+ \midrule
+ \FontElement{partentry} &
+ \DescRef{\LabelBase.cmd.usekomafont}\PParameter{disposition}\Macro{large} \\
+ \FontElement{partentrypagenumber} & \\
+ \FontElement{chapterentry} & \DescRef{\LabelBase.cmd.usekomafont}\PParameter{disposition}\\
+ \FontElement{chapterentrydots} & \Macro{normalfont} \\
+ \FontElement{chapterentrypagenumber} & \\
+ \FontElement{sectionentry} & \DescRef{\LabelBase.cmd.usekomafont}\PParameter{disposition} \\
+ \FontElement{sectionentrydots} & \Macro{normalfont} \\
+ \FontElement{sectionentrypagenumber} & \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Counter{tocdepth}
+ \Macro{parttocdepth}
+ \Macro{sectiontocdepth}
+ \Macro{subsectiontocdepth}
+ \Macro{subsubsectiontocdepth}
+ \Macro{paragraphtocdepth}
+ \Macro{subparagraphtocdepth}
+\end{Declaration}%
+Normalerweise werden bei den Klassen \Class{scrbook} und \Class{scrreprt} die
+Gliederungsebenen \DescRef{\LabelBase.cmd.part} bis
+\DescRef{\LabelBase.cmd.subsection} und bei der Klasse \Class{scrartcl} die
+Ebenen \DescRef{\LabelBase.cmd.part} bis
+\DescRef{\LabelBase.cmd.subsubsection} in das Inhaltsverzeichnis
+aufgenommen. Dies wird über den Zähler \Counter{tocdepth} gesteuert. Dabei
+steht der Wert -1 für \DescRef{\LabelBase.cmd.part}, 0 für
+\DescRef{\LabelBase.cmd.chapter} und so weiter. Durch Setzen oder Erhöhen
+oder Verringern des Zählers kann bestimmt werden, bis zu welcher
+Gliederungsebene Einträge in das Inhaltsverzeichnis erfolgen sollen. Dies ist
+übrigens bei den Standardklassen ganz
+genauso. Im\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} Unterschied\textnote{\KOMAScript{} vs. Standardklassen} zu
+den Standardklassen muss sich bei \KOMAScript{} aber niemand diese Zuordnung
+merken. \KOMAScript{} definiert für jede Gliederungsebene eine Anweisung
+\Macro{\PName{Ebene}tocdepth} mit dem entsprechenden Wert, die für Zuweisungen
+an \Counter{tocdepth} verwendet werden kann.
+
+Bitten beachten Sie\textnote{Achtung!}, dass die Werte für \Counter{tocdepth}
+und \DescRef{\LabelBase.counter.secnumdepth}\IndexCounter{secnumdepth} (siehe
+\autoref{sec:\LabelBase.structure},
+\DescPageRef{\LabelBase.counter.secnumdepth}) bei
+\Class{scrartcl}\OnlyAt{\Class{scrartcl}} für \DescRef{\LabelBase.cmd.part}
+nicht übereinstimmen. Dies wurde aus Gründen der Kompatibilität von der
+Standardklasse \Class{article} übernommen. Daher sollte beispielsweise die
+Anweisung \DescRef{\LabelBase.cmd.partnumdepth}\IndexCmd{partnumdepth} auch
+nicht zum Setzen von \Counter{tocdepth} verwendet werden.%
+\begin{Example}
+ Angenommen, Sie setzen einen Artikel, bei dem die Gliederungsebene
+ \DescRef{\LabelBase.cmd.subsubsection} verwendet wird. Gehen wir weiter
+ davon aus, dass Sie diese Gliederungsebene aber nicht im Inhaltsverzeichnis
+ haben wollen. Dann könnte die Präambel Ihres Dokuments wie folgt
+ aussehen:
+\begin{lstcode}
+ \documentclass{scrartcl}
+ \setcounter{tocdepth}{\subsectiontocdepth}
+\end{lstcode}
+ Sie setzen den Zähler \Counter{tocdepth} daher auf den in Anweisung
+ \Macro{subsectiontocdepth} gespeicherten Wert. Dass dies normalerweise der
+ Wert 2 ist, müssen Sie sich also gar nicht merken.
+
+ Wollen Sie stattdessen nur, dass eine Ebene weniger in das
+ Inhaltsverzeichnis eingetragen wird als normalerweise, können Sie auch
+ einfach vom voreingestellten Wert des Zählers \Counter{tocdepth} eins
+ abziehen:
+\begin{lstcode}
+ \documentclass{scrartcl}
+ \addtocounter{tocdepth}{-1}
+\end{lstcode}
+ 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}%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{parmarkup}% \section{Absatzauszeichnung}
+
+\LoadCommonFile{oddorevenpage}% \section{Erkennung von rechten und linken Seiten}
+
+
+\section{Kopf und Fuß bei vordefinierten Seitenstilen}
+\seclabel{pagestyle}
+
+\BeginIndexGroup
+\BeginIndex{}{Seiten>Stil}%
+Eine der allgemeinen Eigenschaften eines Dokuments ist der Seitenstil. Bei
+{\LaTeX} versteht man unter dem Seitenstil in erster Linie den Inhalt der
+Kopf- und Fußzeilen.
+
+
+\begin{Declaration}
+ \OptionVName{headsepline}{Ein-Aus-Wert}
+ \OptionVName{footsepline}{Ein-Aus-Wert}
+\end{Declaration}%
+Mit diesen Optionen kann eingestellt werden,
+ob\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}
+unter Kolumnentiteln oder über dem Fuß eine horizontale Linie\Index{Trennlinie}
+gewünscht wird. Als \PName{Ein-Aus-Wert} kann
+einer der Standardwerte für einfache Schalter aus
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} verwendet
+werden. Ein Aktivieren der Option \Option{headsepline} oder die Verwendung
+der Option ohne Wertübergabe schaltet die Linie unter den Kolumnentiteln
+ein. Ein Aktivieren der Option \Option{footsepline} oder die Verwendung der
+Option ohne Wertübergabe schaltet die Linie über der Fußzeile ein. Die
+Deaktivierung der Optionen schaltet die jeweilige Linie aus.
+
+Bei\textnote{Achtung!} den weiter unten erklärten Seitenstilen
+\DescRef{\LabelBase.pagestyle.empty} und \DescRef{\LabelBase.pagestyle.plain}
+hat die Option \Option{headsepline} selbstverständlich keine Auswirkung, da
+hier auf einen Seitenkopf\Index{Seiten>Kopf} ausdrücklich verzichtet werden
+soll. Typografisch betrachtet, hat eine solche Linie immer die Auswirkung,
+dass der Kopf optisch näher an den Text heranrückt. Dies bedeutet nun nicht,
+dass der Kopf räumlich weiter vom Textkörper\Index{Text>Bereich} weggerückt
+werden müsste. Stattdessen sollte der Kopf dann bei der Berechnung des
+Satzspiegels als zum Textkörper gehörend betrachtet werden. Dies wird bei
+\KOMAScript{} dadurch erreicht, dass Paket
+\hyperref[cha:typearea]{\Package{typearea}}%
+\important{\hyperref[cha:typearea]{\Package{typearea}}}\IndexPackage{typearea}
+ebenfalls auf \Option{headsepline} reagiert und automatisch die Paketoption
+\DescRef{typearea.option.headinclude}%
+\IndexOption{headinclude}\important{\DescRef{typearea.option.headinclude}} mit
+gleichem Wert ausführt. Entsprechendes gilt auch für die Fußlinie. 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.
+
+Die Optionen führen selbst keine automatische Neuberechnung des Satzspiegels
+aus. Zur Neuberechnung des Satzspiegels siehe Option
+\DescRef{typearea.option.DIV} mit den Werten
+\hyperref[desc:typearea.option.DIV.last]{\PValue{last}} oder
+\hyperref[desc:typearea.option.DIV.current]{\PValue{current}} (siehe
+\DescPageRef{typearea.option.DIV.last}) oder die Anweisung
+\DescRef{typearea.cmd.recalctypearea} (siehe
+\DescPageRef{typearea.cmd.recalctypearea}) in \autoref{cha:typearea}.
+
+Das Paket \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} (siehe
+\autoref{cha:scrlayer-scrpage}) bietet weitere Einflussmöglichkeiten für
+Linien im Kopf und Fuß.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{pagestyle}\Parameter{Seitenstil}
+ \Macro{thispagestyle}\Parameter{lokaler Seitenstil}
+\end{Declaration}%
+Üblicherweise wird zwischen vier verschiedenen Seitenstilen unterschieden:
+\begin{description}
+\item[{\PageStyle{empty}%
+ \BeginIndex[indexmain]{Pagestyle}{empty}\LabelPageStyle{empty}}] ist der
+ Seitenstil, bei dem Kopf- und Fußzeile vollständig leer bleiben. Dies ist
+ bei {\KOMAScript} vollkommen identisch zu den Standardklassen.%
+\item[{\PageStyle{headings}%
+ \BeginIndex[indexmain]{Pagestyle}{headings}\LabelPageStyle{headings}}] ist
+ der Seitenstil für lebende Kolumnentitel. Das sind Kolumnentitel, bei denen
+ Überschriften automatisch\Index[indexmain]{Kolumnentitel>automatisch} in den
+ Seitenkopf übernommen werden. Im Internet oder in Beschreibungen zu
+ \LaTeX-Paketen findet man auch häufig die englische Bezeichnung
+ »\emph{running headline}«. \OnlyAt{\Class{scrbook}\and \Class{scrreprt}}%
+ Bei den Klassen \Class{scrbook}\IndexClass{scrbook} und
+ \Class{scrreprt}\IndexClass{scrreprt} werden dabei im doppelseitigen Layout
+ die Überschriften der Kapitel und der Abschnitte in der Kopfzeile wiederholt
+ -- bei {\KOMAScript}\textnote{\KOMAScript{} vs. Standardklassen} jeweils
+ außen, bei den Standardklassen innen. Die Seitenzahl wird bei {\KOMAScript}
+ im Fuß außen, bei den Standardklassen im Kopf außen gesetzt. Im einseitigen
+ Layout werden nur die Überschriften der Kapitel verwendet und bei
+ {\KOMAScript} zentriert im Kopf ausgegeben. Die Seitenzahlen werden bei
+ {\KOMAScript} dann zentriert im Fuß gesetzt. \OnlyAt{\Class{scrartcl}}Bei
+ \Class{scrartcl}\IndexClass{scrartcl} wird entsprechend verfahren, jedoch
+ eine Ebene tiefer bei Abschnitt und Unterabschnitt angesetzt, da die
+ Gliederungsebene Kapitel hier nicht existiert.
+
+ Während die Standardklassen\textnote{\KOMAScript{} vs. Standardklassen}
+ automatische Kolumnentitel immer in Versalien -- also Großbuchstaben --
+ setzen, verwendet {\KOMAScript} die Schreibweise, die in der Überschrift
+ vorgefunden wurde. Dies hat verschiedene typografische Gründe. So sind
+ Versalien als Auszeichnung eigentlich viel zu mächtig. Verwendet man sie
+ trotzdem, sollten sie um einen Punkt kleiner gesetzt und leicht gesperrt
+ werden (siehe hierzu beispielsweise \cite{JTschErfreulich}). All dies findet
+ bei den Standardklassen keine Beachtung.
+
+ Darüber hinaus können bei den \KOMAScript-Klassen mit den Optionen
+ \DescRef{\LabelBase.option.headsepline} und
+ \DescRef{\LabelBase.option.footsepline} (siehe
+ \DescPageRef{\LabelBase.option.headsepline}) Linien unter dem Kopf und über
+ dem Fuß gesetzt werden.%
+\item[{\PageStyle{myheadings}%
+ \BeginIndex[indexmain]{Pagestyle}{myheadings}\LabelPageStyle{myheadings}}]
+ entspricht weitgehend dem Seitenstil \PageStyle{headings}, allerdings werden
+ die Kolumnentitel nicht automatisch\Index[indexmain]{Kolumnentitel>manuell}
+ erzeugt, sondern liegen in der Verantwortung des Anwenders. Er verwendet
+ dazu die Anweisungen \DescRef{\LabelBase.cmd.markboth}\IndexCmd{markboth}
+ und \DescRef{\LabelBase.cmd.markright}\IndexCmd{markright}\important{%
+ \DescRef{\LabelBase.cmd.markboth}\\
+ \DescRef{\LabelBase.cmd.markright}} (siehe
+ \DescPageRef{\LabelBase.cmd.markright}).
+\item[{\PageStyle{plain}%
+ \BeginIndex[indexmain]{Pagestyle}{plain}\LabelPageStyle{plain}}]
+ ist der Seitenstil, bei dem keinerlei Kolumnentitel\Index{Kolumnentitel}
+ verwendet, sondern nur eine Seitenzahl\Index{Seiten>Zahl}\Index{Paginierung}
+ ausgegeben wird. Bei\textnote{\KOMAScript{} vs. Standardklassen} den
+ Standardklassen wird diese Seitenzahl immer mittig im Fuß ausgegeben. Bei
+ {\KOMAScript} erfolgt die Ausgabe im doppelseitigen\Index{doppelseitig}
+ Layout stattdessen außen im Fuß. Der einseitige Seitenstil entspricht bei
+ {\KOMAScript} dem der Standardklassen.%
+\end{description}
+
+\iftrue% Umbruchoptimierung!!!!
+Der\important{\Macro{pagestyle}} Seitenstil kann jederzeit mit Hilfe der
+\Macro{pagestyle}-Anweisung %
+\else %
+Mit \Macro{pagestyle} kann der Seitenstil jederzeit %
+\fi %
+gesetzt werden. Verwendet\textnote{Tipp!} man \Macro{pagestyle} vor
+Anweisungen, die einen Seitenumbruch mit Einfügen einer
+Vakatseite\Index{Vakatseite}\textnote{Vakatseite} herbeiführen können, und
+soll die Änderung erst ab der neuen Seite gelten, so ist ein
+\DescRef{\LabelBase.cmd.cleardoublepage} davor 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
+\Macro{thispagestyle}. Dies geschieht auch an einigen Stellen im Dokument
+automatisch. Beispielsweise wird bei allen Kapitelanfangsseiten implizit die
+Anweisung
+\Macro{thispagestyle}\PParameter{\DescRef{\LabelBase.cmd.chapterpagestyle}}
+ausgeführt.
+
+Bitte\textnote{Achtung!} beachten Sie, dass die Umschaltung zwischen
+automatischen und manuellen Kolumnentiteln bei Verwendung von
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\important{\hyperref[cha:scrlayer-scrpage]{\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 diesem Paket verwendet werden.
+
+\BeginIndexGroup \BeginIndex[indexother]{}{Schrift>Art}%
+\BeginIndex{FontElement}{pageheadfoot}\LabelFontElement{pageheadfoot}%
+\LabelFontElement{pagehead}%
+\BeginIndex{FontElement}{pagefoot}\LabelFontElement{pagefoot}%
+\BeginIndex{FontElement}{pagenumber}\LabelFontElement{pagenumber}%
+Um die Schriftarten von Kopf und Fuß der Seite oder der Seitenzahl zu
+ändern\ChangedAt{v2.8p}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}, %
+verwenden Sie die Anweisungen \DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}). Für den Kopf und den Fuß ist dabei
+das gleiche Element \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot}%
+\important{\FontElement{pageheadfoot}} zuständig. Das Element für die
+Seitenzahl innerhalb des Kopfes oder Fußes heißt
+\FontElement{pagenumber}\IndexFontElement{pagenumber}%
+\important{\FontElement{pagenumber}}. Das ebenfalls in den \KOMAScript-Klassen
+bereitgestellte Element \FontElement{pagefoot}\IndexFontElement{pagefoot}%
+\important{\FontElement{pagefoot}} wird nur verwendet, wenn man mit dem Paket
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage} (siehe \autoref{cha:scrlayer-scrpage},
+\DescPageRef{scrlayer-scrpage.fontelement.pagefoot}) einen Seitenstil
+definiert, bei dem auch der Fuß Text enthält.
+
+Die Voreinstellungen sind in \autoref{tab:maincls.defaultFontsHeadFoot} zu
+finden.
+%
+\begin{table}
+% \centering%
+% \caption
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \addtokomafont{caption}{\raggedright}%
+ \begin{captionbeside}
+ [{Schriftvoreinstellungen für die Elemente des Seitenstils}]
+ {\label{tab:maincls.defaultFontsHeadFoot}%
+ \hspace{0pt plus 1ex}%
+ Vorein\-stellungen der Schrift für die Elemente des Seitenstils}
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Element & Voreinstellung \\
+ \midrule
+ \FontElement{pagefoot}\IndexFontElement{pagefoot} &
+ \\
+ \FontElement{pageheadfoot}\IndexFontElement{pageheadfoot} &
+ \Macro{normalfont}\Macro{normalcolor}\Macro{slshape} \\
+ \FontElement{pagenumber}\IndexFontElement{pagenumber} &
+ \Macro{normalfont}\Macro{normalcolor}\\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+%
+\begin{Example}
+ \leavevmode\phantomsection\xmpllabel{cmd.pagestyle}%
+ Angenommen, Sie wollen Kopf und Fuß einen Schriftgrad kleiner und kursiv
+ setzen. Die Seitenzahl soll jedoch nicht kursiv, sondern fett gesetzt
+ werden. Davon abgesehen, dass das Ergebnis grauenvoll aussehen wird, können
+ Sie dies wie folgt erreichen:
+\begin{lstcode}
+ \setkomafont{pageheadfoot}{%
+ \normalfont\normalcolor\itshape\small}
+ \setkomafont{pagenumber}{\normalfont\bfseries}
+\end{lstcode}
+ Wollen Sie hingegen lediglich, dass zusätzlich zur bereits voreingestellten
+ schrägen Variante ebenfalls eine kleinere Schrift verwendet wird, so genügt:
+\begin{lstcode}
+ \addtokomafont{pagehead}{\small}
+\end{lstcode}
+ Wie Sie sehen, wurde im letzten Beispiel das Element
+ \FontElement{pagehead}\important{\FontElement{pagehead}} verwendet. Das
+ gleiche Ergebnis erhalten Sie auch, wenn Sie stattdessen
+ \FontElement{pageheadfoot} verwenden (siehe
+ \autoref{tab:maincls.fontelements},
+ \autopageref{tab:maincls.fontelements}).
+\end{Example}
+Es ist an dieser Stelle nicht möglich, Versalien für die automatischen
+Kolumnentitel zu erzwingen. Wenn Sie dies wünschen, müssen Sie beispielsweise
+\DescRef{tocbasic.cmd.MakeMarkcase}\IndexCmd{MakeMarkcase} entsprechend
+umdefinieren. Es wird jedoch empfohlen, in solchen Fällen das Paket
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} zu verwenden
+(siehe \autoref{cha:scrlayer-scrpage},
+\DescPageRef{scrlayer-scrpage.option.markcase}).
+
+Werden\textnote{Tipp!} eigene Seitenstile definiert, sind eventuell die
+Befehle \DescRef{\LabelBase.cmd.usekomafont}\PParameter{pageheadfoot},
+\DescRef{\LabelBase.cmd.usekomafont}\PParameter{pagenumber} sowie
+\DescRef{\LabelBase.cmd.usekomafont}\PParameter{pagefoot}
+nützlich. Insbesondere falls Sie dafür nicht das \KOMAScript-Paket
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} (siehe
+\autoref{cha:scrlayer-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
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage} sorgt selbst für maximale
+Kompatibilität. Solange beispielsweise für die Seitenzahl nicht direkt
+\DescRef{\LabelBase-experts.cmd.thepage}\IndexCmd{thepage}, sondern
+das dafür vorgesehene
+\DescRef{\LabelBase-experts.cmd.pagemark}\IndexCmd{pagemark} verwendet
+wird.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{markboth}\Parameter{linke Marke}\Parameter{rechte Marke}
+ \Macro{markright}\Parameter{rechte Marke}
+\end{Declaration}
+Beim Seitenstil \DescRef{\LabelBase.pagestyle.myheadings}%
+\important{\DescRef{\LabelBase.pagestyle.myheadings}}%
+\IndexPagestyle{myheadings} wird der Kolumnentitel nicht automatisch
+gesetzt. Stattdessen setzt man ihn mit Hilfe der Anweisungen \Macro{markboth}
+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 Pakets \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} steht
+außerdem die Anweisung \DescRef{scrlayer-scrpage.cmd.markleft}%
+\IndexCmd{markleft}\important{\DescRef{scrlayer-scrpage.cmd.markleft}} zur
+Verfügung.
+
+Die Anweisungen können auch zusammen mit anderen Seitenstilen verwendet
+werden. Bei Kombination mit automatischen Kolumnentiteln, etwa dem Seitenstil
+\DescRef{\LabelBase.pagestyle.headings}\IndexPagestyle{headings}, ist der
+Wirkungsbereich allerdings bis zum nächsten automatischen Setzen der
+entsprechenden Marke begrenzt.%
+%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{titlepagestyle}
+ \Macro{partpagestyle}
+ \Macro{chapterpagestyle}
+ \Macro{indexpagestyle}
+\end{Declaration}%
+\Index{Titel>Seitenstil}%
+\Index{Teil>Seitenstil}%
+\Index{Kapitel>Seitenstil}%
+\Index{Stichwortverzeichnis>Seitenstil}%
+Auf einigen Seiten wird mit Hilfe von \DescRef{\LabelBase.cmd.thispagestyle}
+automatisch ein anderer Seitenstil gewählt. Welcher Seitenstil dies ist, wird
+diesen vier Makros entnommen, wobei \Macro{partpagestyle} und
+\Macro{chapterpagestyle}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} nur bei
+den Klassen \Class{scrbook} und \Class{scrreprt} nicht jedoch bei
+\Class{scrartcl} existieren. In der Voreinstellung ist der Seitenstil in allen
+vier Fällen \DescRef{\LabelBase.pagestyle.plain}\IndexPagestyle{plain}. Die
+Bedeutung der einzelnen Makros entnehmen Sie bitte
+\autoref{tab:specialpagestyles}.
+%
+\begin{table}
+ \centering
+ \caption{Makros zur Festlegung des Seitenstils besonderer Seiten}
+ \label{tab:specialpagestyles}
+ \begin{desctabular}
+ \mentry{titlepagestyle}{Seitenstil der Seite mit der Titelei bei
+ Titelköpfen (siehe \autoref{sec:\LabelBase.titlepage})}%
+ \mentry{partpagestyle}{Seitenstil der Seiten mit \DescRef{\LabelBase.cmd.part}-Titeln
+ (siehe \autoref{sec:\LabelBase.structure})}%
+ \mentry{chapterpagestyle}{Seitenstil auf Kapitelanfangsseiten (siehe
+ \autoref{sec:\LabelBase.structure})}%
+ \mentry{indexpagestyle}{Seitenstil der ersten Stichwortverzeichnisseite
+ (siehe \autoref{sec:\LabelBase.index})}%
+ \end{desctabular}
+\end{table}
+%
+Die Seitenstile können mit Hilfe von \Macro{renewcommand} umdefiniert
+werden.
+\begin{Example}
+ Angenommen, Sie wollen nicht, dass die Seiten mit der
+ \DescRef{\LabelBase.cmd.part}-Überschrift mit einer Nummer versehen
+ werden. Dann setzen Sie folgende Anweisung beispielsweise in der Präambel
+ Ihres Dokuments:
+\begin{lstcode}
+ \renewcommand*{\partpagestyle}{empty}
+\end{lstcode}
+ Wie Sie auf \DescPageRef{\LabelBase.pagestyle.empty} erfahren haben, ist
+ der Seitenstil \DescRef{\LabelBase.pagestyle.empty}\IndexPagestyle{empty}
+ genau das, was in diesem Beispiel verlangt wird. Natürlich können Sie auch
+ einen selbst definierten Seitenstil verwenden.
+
+ Angenommen, Sie haben mit dem Paket
+ \hyperref[cha:scrlayer]{\Package{scrlayer}} (siehe \autoref{cha:scrlayer})
+ oder Paket \hyperref[cha:scrlayer-scrpage]{\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 ihn auch tatsächlich zu
+ verwenden, definieren Sie \Macro{chapterpagestyle} entsprechend um:
+\begin{lstcode}
+ \renewcommand*{\chapterpagestyle}{chapter}
+\end{lstcode}
+
+ Angenommen, Sie wollen das
+ Inhaltsverzeichnis\Index{Inhaltsverzeichnis}\textnote{Inhaltsverzeichnis}
+ eines Buches insgesamt nicht mit Seitenzahlen versehen. Danach soll aber
+ wieder mit dem Seitenstil \PageStyle{headings} gearbeitet werden sowie mit
+ \PageStyle{plain} auf den Kapitelanfangsseiten. Dann verwenden Sie
+ beispielsweise:
+\begin{lstcode}
+ \clearpage
+ \pagestyle{empty}
+ \renewcommand*{\chapterpagestyle}{empty}
+ \tableofcontents
+ \clearpage
+ \pagestyle{headings}
+ \renewcommand*{\chapterpagestyle}{plain}
+\end{lstcode}
+ Sie können die Umdefinierung des Seitenstils für Kapitelanfangsseiten aber
+ auch lokal halten. Das hat den Vorteil, dass Sie dann keine Annahmen über
+ die vor der Änderung gültige Einstellung treffen müssen. Die Änderung
+ des Seitenstils selbst können Sie gleichermaßen lokal halten:
+\begin{lstcode}
+ \clearpage
+ \begingroup
+ \pagestyle{empty}
+ \renewcommand*{\chapterpagestyle}{empty}
+ \tableofcontents
+ \clearpage
+ \endgroup
+\end{lstcode}
+ Beachten\textnote{Achtung!} Sie jedoch, dass Sie niemals eine nummerierte
+ Gliederungsüberschrift in eine Gruppe packen sollten. Anderenfalls können
+ Anweisungen wie \Macro{label} rasch zu unvorhergesehenen Ergebnissen
+ führen.
+
+ Auf \DescPageRef{tocbasic.cmd.AfterTOCHead} in \autoref{sec:tocbasic.toc}
+ werden Sie die Anweisung \DescRef{tocbasic.cmd.AfterTOCHead} kennenlernen,
+ mit der eine Lösung noch einfacher ist:
+\begin{lstcode}
+ \AfterTOCHead[toc]{%
+ \thispagestyle{empty}%
+ \pagestyle{empty}%
+ }
+\end{lstcode}%
+ Hierbei wird die Tatsache ausgenutzt. dass bei mehreren
+ \DescRef{\LabelBase.cmd.thispagestyle}-Anweisungen auf derselben Seite immer
+ die letzte gewinnt.
+\end{Example}
+
+\begin{Explain}
+ Wer nun glaubt, er könne auf Kapitelanfangsseiten ebenfalls mit
+ lebenden Kolumnentiteln arbeiten, indem er einfach
+\begin{lstcode}
+ \renewcommand*{\chapterpagestyle}{headings}
+\end{lstcode}
+ verwendet, sollte in \autoref{sec:maincls-experts.addInfos} auf
+ \DescPageRef{maincls-experts.cmd.rightmark} Näheres über die
+ Hintergründe zu \DescRef{maincls-experts.cmd.rightmark} nachlesen. Auch die
+ Ausführungen zu \DescRef{scrlayer-scrpage-experts.cmd.rightfirstmark} ab
+ Seite \DescPageRef{scrlayer-scrpage-experts.cmd.rightfirstmark} in
+ \autoref{cha:scrlayer-scrpage-experts}, \autoref{part:forExperts} können
+ hierzu wichtige Informationen liefern.%
+\end{Explain}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{pagenumbering}\Parameter{Nummerierungsstil}
+\end{Declaration}
+Diese Anweisung funktioniert bei \KOMAScript{} in der gleichen Weise wie
+bei den Standardklassen. Genau genommen handelt es sich dabei weder um eine
+Fähigkeit der Standardklassen noch der \KOMAScript-Klassen, sondern um eine
+Anweisung des \LaTeX-Kerns. Sie wird verwendet, um den
+\PName{Nummerierungsstil} für die Seitenzahlen umzuschalten.
+
+Die Umschaltung gilt ab sofort, also ab der Seite, auf der diese Anweisung
+aufgerufen wird. Gegebenenfalls sollte also zuvor mit
+\DescRef{\LabelBase.cmd.clearpage} oder besser
+\DescRef{\LabelBase.cmd.cleardoubleoddpage}%
+\important{\DescRef{\LabelBase.cmd.cleardoubleoddpage}}%
+\IndexCmd{cleardoubleoddpage} diese Seite erst beendet werden. Mögliche
+Angaben für den \PName{Nummerierungsstil} sind \autoref{tab:numberKind} zu
+entnehmen.
+%
+\begin{table}
+% \centering
+% \caption
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \addtokomafont{caption}{\raggedright}%
+ \begin{captionbeside}
+ {\label{tab:numberKind}%
+ \hspace{0pt plus 1ex}%
+ Verfügbare Nummerierungsstile für Seitenzahlen}
+ \begin{tabular}[t]{lll}
+ \toprule
+ Nummerierungsstil & Beispiel & Bedeutung \\
+ \midrule
+ \PValue{arabic} & 8 & arabische Zahlen \\
+ \PValue{roman} & viii & kleine römische Zahlen \\
+ \PValue{Roman} & VIII & große römische Zahlen \\
+ \PValue{alph} & h & Kleinbuchstaben \\
+ \PValue{Alph} & H & Großbuchstaben \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+Der\textnote{Achtung!} Aufruf von \Macro{pagenumbering} setzt immer die
+Seitenzahl\Index{Seiten>Zahl} zurück. Die aktuelle Seite bekommt also die
+Nummer 1 im gewählten \PName{Nummerierungsstil}. Damit bei doppelseitigen
+Dokumenten diese neue Seite auch wirklich auf eine gerade Seite folgt, die
+linke Seite also nicht etwa fehlt, sollte man daher vor \Macro{pagenumbering}
+immer \DescRef{\LabelBase.cmd.cleardoubleoddpage}%
+\important{\DescRef{\LabelBase.cmd.cleardoubleoddpage}}%
+\IndexCmd{cleardoubleoddpage} einfügen. Näheres zu einer dabei gegebenenfalls
+eingefügten Vakatseite erfahren Sie im nächsten Abschnitt.
+
+\begin{Explain}
+ Lassen Sie mich noch ein Wort zu einem häufigen Fehler verlieren, den man in
+ diversen Vorlagen findet, die im Internet kursieren. Wenn Sie -- natürlich
+ ohne den Eingangskommentar -- auf Zeilen wie:
+\begin{lstcode}
+ % Achtung dieses Beispiel enthält Fehler!
+ % Beachten Sie bitte die Erklärungen im Text!
+ \tableofcontents
+ \pagenumbering{arabic}
+ \setcounter{page}{1}
+\end{lstcode}
+ stoßen, so ist das ein untrügliches Zeichen dafür, dass der Ersteller dieser
+ Vorlage obige Ausführungen nicht gelesen oder nicht verstanden hat. Da
+ \DescRef{\LabelBase.cmd.tableofcontents} das Inhaltsverzeichnis zwar
+ ausgibt, aber die letzte Seite nicht automatisch beendet, wird bereits für
+ diese letzte Seite des Inhaltsverzeichnisses die Seitennummerierung
+ umgeschaltet. Sie erhält damit die arabische Seitenzahl 1. Es fehlt also
+ \DescRef{\LabelBase.cmd.cleardoubleoddpage} vor
+ \Macro{pagenumbering}. Ebenso ist die letzte Zeile mit dem Setzen der
+ Seitennummerierung auf 1 überflüssig, da dies bereits von
+ \Macro{pagenumbering} erledigt wird.
+
+ Teilweise findet man -- natürlich ohne den Eingangskommentar -- auch:
+\begin{lstcode}
+ % Achtung dieses Beispiel enthält Fehler!
+ % Beachten Sie bitte die Erklärungen im Text!
+ \tableofcontents
+ \pagebreak
+ \pagenumbering{arabic}
+ \setcounter{page}{1}
+\end{lstcode}
+ Hier hat der Ersteller versucht, das Problem mit der letzten Seite des
+ Inhaltsverzeichnisses mit Hilfe von \Macro{pagebreak}\IndexCmd{pagebreak} zu
+ lösen.
+
+ Diese Lösung ist aber leider auch nicht viel besser. Hier wird die letzte
+ Seite des Inhaltsverzeichnisses auf die nächste Seite umbrochen. Damit
+ werden bei einem doppelseitigen Dokument unter Umständen die Einträge auf
+ der letzten Seite mit einem erhöhten vertikalen Abstand gesetzt (siehe
+ \DescRef{\LabelBase.cmd.flushbottom} auf
+ \DescPageRef{\LabelBase.cmd.flushbottom}). \Macro{pagebreak} ist hier
+ eindeutig die falsche Anweisung.
+
+ Aber auch \Macro{newpage}\IndexCmd{newpage} oder
+ \DescRef{\LabelBase.cmd.clearpage} würden bei einem doppelseitigen Dokument
+ nicht genügen. Hätte die letzte Seite des Inhaltsverzeichnisses
+ beispielsweise die römische Nummer vii, so würde auf die römisch nummerierte
+ rechte Seite nun unmittelbar die arabisch nummerierte rechte Seite 1
+ folgen. Eine linke Seite zwischen diesen beiden Seiten würde im Dokument
+ fehlen, was beim späteren Druck erhebliche Probleme bereiten könnte.
+
+ Mein Rat: Vermeiden Sie die Verwendung von Vorlagen, die bereits in solch
+ einfachen Dingen Fehler enthalten. Korrekt wäre übrigens:
+\begin{lstcode}
+ \tableofcontents
+ \cleardoubleoddpage
+ \pagenumbering{arabic}
+\end{lstcode}
+ Das gilt auch, wenn mit \Class{scrartcl}\OnlyAt{\Class{scrartcl}} eine
+ Klasse verwendet wird, bei der üblicherweise nach dem Inhaltsverzeichnis
+ keine neue Seite begonnen wird. Schaltet man die Seitennummerierung um, so
+ muss eine neue rechte Seite begonnen werden. Wollen Sie eine solche
+ Umschaltung nicht, so sollten Sie den Nummerierungsstil der Seiten über das
+ gesamte Dokument konsequent durchhalten, ohne ihn zwischendurch zu
+ ändern.
+\iffalse% Umbruchkorrekturtext
+ Bei Artikeln oder anderen kurzen Dokumenten ist das generell zu
+ empfehlen.
+\fi
+
+ Einfacher wird die Änderung des Nummerierungsstils bei Verwendung von
+ \Class{scrbook}\OnlyAt{\Class{scrbook}}. Dort werden Sie durch
+ die beiden Anweisungen \DescRef{\LabelBase.cmd.frontmatter}%
+ \important{\DescRef{\LabelBase.cmd.frontmatter}\\
+ \DescRef{\LabelBase.cmd.mainmatter}}%
+ \IndexCmd{fontmatter} und \DescRef{\LabelBase.cmd.mainmatter}%
+ \IndexCmd{mainmatter} bei der am häufigsten verwendeten Umschaltung
+ unterstützt. Nähere Informationen entnehmen Sie bitte
+ \autoref{sec:maincls.separation}, ab
+ \DescPageRef{\LabelBase.cmd.mainmatter}.%
+\end{Explain}%
+\EndIndexGroup
+\EndIndexGroup
+
+
+\LoadCommonFile{interleafpage}% \section{Vakatseiten}
+
+\LoadCommonFile{footnotes}% \section{Fußnoten}
+
+\section[Abgrenzung]{Abgrenzung\protect\OnlyAt{\Class{scrbook}}}
+\seclabel{separation}
+
+Bei Büchern gibt es teilweise die Grobauf"|teilung in
+\emph{Vorspann}\Index{Vorspann}, \emph{Hauptteil}\Index{Hauptteil} und
+\emph{Nachspann}\Index{Nachspann}. Auch \KOMAScript{} bietet für
+\Class{scrbook} diese Möglichkeit.
+
+
+\begin{Declaration}
+ \Macro{frontmatter}
+ \Macro{mainmatter}
+ \Macro{backmatter}
+\end{Declaration}%
+Mit \Macro{frontmatter}\important{\Macro{frontmatter}} wird der Vorspann
+eingeleitet. Im Vorspann werden die nummerierten Seiten mit römischen
+Seitenzahlen versehen. Kapitelüberschriften sind im Vorspann nicht
+nummeriert. Abschnittsüberschriften wären jedoch nummeriert, gingen von
+Kapitelnummer~0 aus und wären außerdem über Kapitelgrenzen hinweg durchgehend
+nummeriert. Dies spielt jedoch keine Rolle, da der Vorspann allenfalls für die
+Titelei, das Inhalts-\Index{Inhaltsverzeichnis},
+Abbildungs-\Index{Abbildungen>Verzeichnis} und
+Tabellenverzeichnis\Index{Tabellen>Verzeichnis} und ein
+Vorwort\Index{Vorwort} verwendet wird. Das Vorwort kann also als normales
+Kapitel gesetzt werden. Ein Vorwort sollte niemals in Abschnitte unterteilt,
+sondern möglichst kurz gefasst werden. Im Vorwort wird also keine tiefere
+Gliederungsebene als Kapitel benötigt.
+
+Für den Fall, dass der Anwender dies anders sieht und nummerierte
+Abschnitte\Index{Abschnitt>Nummer} in den Kapiteln des Vorspanns haben will,
+enthält ab Version~2.97e\ChangedAt{v2.97e}{\Class{scrbook}}%
+\important{\OptionValueRef{\LabelBase}{version}{2.97e}} die Nummerierung der
+Abschnitte keine Kapitelnummer. Diese Änderung gibt es nur, wenn eine
+Kompatibilität ab Version~2.97e eingestellt ist (siehe Option
+\DescRef{\LabelBase.option.version},
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}). Es wird ausdrücklich darauf
+hingewiesen, dass dadurch bezüglich der Nummern eine Verwechslung mit
+Kapitelnummern gegeben ist! Die Verwendung von \DescRef{\LabelBase.cmd.addsec} und
+\DescRef{\LabelBase.cmd.section*} (siehe \autoref{sec:\LabelBase.structure},
+\DescPageRef{\LabelBase.cmd.section*} und \DescPageRef{\LabelBase.cmd.addsec})
+sind aus Sicht des Autors im Vorspann deshalb unbedingt vorzuziehen!
+
+Ab Version~2.97e\ChangedAt{v2.97e}{\Class{scrbook}}%
+\important{\OptionValueRef{\LabelBase}{version}{2.97e}} enthalten auch die
+Nummern für Gleitumgebungen wie Tabellen\Index{Tabellen>Nummern} und
+Abbildungen\Index{Abbildungen>Nummern} und die
+Gleichungsnummern\Index{Gleichungen>Nummern} im Vorspann keinen
+Kapitelanteil. Auch dies erfordert eine entsprechende
+Kompatibilitätseinstellung (siehe Option \DescRef{\LabelBase.option.version},
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}).
+
+Mit \Macro{mainmatter}\important{\Macro{mainmatter}} wird der Hauptteil
+eingeleitet. Existiert kein Vorspann, so kann diese Anweisung auch
+entfallen. Im Hauptteil sind arabische Seitenzahlen voreingestellt. Die
+Seitenzählung beginnt im Hauptteil neu mit der 1.
+
+Mit \Macro{backmatter}\important{\Macro{backmatter}} wird der Nachspann
+eingeleitet. Was zum Nachspann gehört, ist unterschiedlich. Manchmal wird im
+Nachspann nur das Literaturverzeichnis\Index{Literaturverzeichnis}, manchmal
+nur das Stichwortverzeichnis\Index{Stichwortverzeichnis} gesetzt. Manchmal
+erscheint der gesamte Anhang im Nachspann. Der Nachspann gleicht bezüglich der
+Gliederungsüberschriften dem Vorspann. Eine getrennte Seitennummerierung ist
+jedoch nicht vorgesehen. Falls Sie dies ebenfalls benötigen, bedienen Sie sich
+bitte der Anweisung \DescRef{\LabelBase.cmd.pagenumbering}%
+\important{\DescRef{\LabelBase.cmd.pagenumbering}} aus
+\autoref{sec:\LabelBase.pagestyle},
+\DescPageRef{\LabelBase.cmd.pagenumbering}.%
+%
+\EndIndexGroup
+
+
+\section{Gliederung}
+\seclabel{structure}%
+\BeginIndexGroup
+\BeginIndex{}{Gliederung}
+
+Unter der Gliederung versteht man die Einteilung eines Dokuments in
+Teile, Kapitel, Abschnitte und weitere Gliederungsebenen.
+
+
+\begin{Declaration}
+ \OptionVName{open}{Methode}
+\end{Declaration}%
+Bei\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} den \KOMAScript-Klassen
+\Class{scrbook} und \Class{scrreprt} kann gewählt werden, wo im doppelseitigen
+Satz neue Kapitel beginnen. In der Voreinstellung beginnen bei
+\Class{scrreprt} neue Kapitel\Index{Kapitel>Anfang} auf der nächsten neuen
+Seite. Dies entspricht der \PName{Methode} \PValue{any}. Demgegenüber beginnen
+bei \Class{scrbook} neue Kapitel auf der nächsten rechten Seite. Dies
+entspricht der \PName{Methode} \PValue{right} und ist bei den meisten Büchern
+üblich. In einigen Fällen sollen neue Kapitel jedoch auf der linken Seite
+einer kompletten Doppelseite beginnen. Dies entspricht der \PName{Methode}
+\PValue{left}\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}}.
+Eine Zusammenfassung der möglichen Werte findet sich in
+\autoref{tab:maincls.open}. Dabei sind auch die Auswirkungen auf
+\DescRef{\LabelBase.cmd.cleardoublepage} sowie
+% die vier \KOMAScript"=Anweisungen
+\DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+\DescRef{\LabelBase.cmd.cleardoublestandardpage},
+\DescRef{\LabelBase.cmd.cleardoubleplainpage} und die letzte der betroffenen
+Anweisungen, \DescRef{\LabelBase.cmd.cleardoubleemptypage}, (siehe
+\autoref{sec:\LabelBase.emptypage},
+\DescPageRef{\LabelBase.cmd.cleardoublepage}) angegeben.
+
+\begin{table}
+ \caption[{Mögliche Werte für Option \Option{open}}]{Mögliche Werte für
+ Option \Option{open} zur Auswahl von Umbrüchen mit Vakatseiten bei
+ \Class{scrbook} und \Class{scrreprt}}
+ \begin{desctabular}
+ \pventry{any}{%
+ Teile, Kapitel, Index und Nachspann verwenden
+ \DescRef{\LabelBase.cmd.clearpage}, aber nicht
+ \DescRef{\LabelBase.cmd.cleardoublepage};\newline die Anweisungen
+ \DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+ \DescRef{\LabelBase.cmd.cleardoublestandardpage},
+ \DescRef{\LabelBase.cmd.cleardoubleplainpage},
+ \DescRef{\LabelBase.cmd.cleardoubleemptypage} und
+ \DescRef{\LabelBase.cmd.cleardoublepage} verhalten sich wie bei
+ \OptionValue{open}{right}.%
+ }%
+ \pventry{left}{%
+ Teile, Kapitel, Index und Nachspann verwenden
+ \DescRef{\LabelBase.cmd.cleardoublepage};\newline die Anweisungen
+ \DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+ \DescRef{\LabelBase.cmd.cleardoublestandardpage},
+ \DescRef{\LabelBase.cmd.cleardoubleplainpage},
+ \DescRef{\LabelBase.cmd.cleardoubleemptypage} und
+ \DescRef{\LabelBase.cmd.cleardoublepage} erzeugen einen Seitenumbruch
+ und fügen gegebenenfalls eine Vakatseite\Index{Vakatseite} ein, um im
+ doppelseitigen Satz auf die nächste linke Seite zu gelangen.%
+ \IndexOption{open~=\textKValue{left}}}%
+ \pventry{right}{%
+ Teile, Kapitel, Index und Nachspann verwenden
+ \DescRef{\LabelBase.cmd.cleardoublepage};\newline die Anweisungen
+ \DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+ \DescRef{\LabelBase.cmd.cleardoublestandardpage},
+ \DescRef{\LabelBase.cmd.cleardoubleplainpage},
+ \DescRef{\LabelBase.cmd.cleardoubleemptypage} und
+ \DescRef{\LabelBase.cmd.cleardoublepage} erzeugen einen Seitenumbruch
+ und fügen gegebenenfalls eine Vakatseite ein, um im doppelseitigen Satz
+ auf die nächste rechte Seite zu gelangen.%
+ \IndexOption{open~=\textKValue{right}}}%
+ \end{desctabular}
+ \label{tab:maincls.open}
+\end{table}
+
+Da im einseitigen Satz nicht zwischen linken und rechten Seiten unterschieden
+wird, hat die Option dort keine Wirkung.
+
+Bei der Klasse \Class{scrartcl} ist die oberste Gliederungsebene unter dem
+Teil der Abschnitt. Daher unterstützt \Class{scrartcl} diese Option nicht.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{chapterprefix}{Ein-Aus-Wert}
+ \OptionVName{appendixprefix}{Ein-Aus-Wert}
+ \Macro{IfChapterUsesPrefixLine}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}%
+Bei\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} den Standardklassen
+\Class{book} und \Class{report} werden Kapitelüberschriften%
+\Index{Kapitel>Ueberschrift=Überschrift} in der Form ausgegeben, dass zunächst
+in einer Zeile »Kapitel«\iffree{\footnote{Bei Verwendung einer anderen Sprache
+ als Deutsch wird »Kapitel« selbstverständlich in der jeweiligen Sprache
+ gesetzt.}}{\footnote{Die Ausgabe erfolgt tatsächlich in der aktuell
+ aktiven Sprache.}}, %
+gefolgt von der Kapitelnummer steht. Erst ab der nächsten Zeile wird dann die
+Überschrift in linksbündigem Flattersatz ausgegeben. Bei {\KOMAScript} kann
+dieses Verhalten mit der Klassenoption \Option{chapterprefix} ebenfalls
+erreicht werden. Als \PName{Ein-Aus-Wert} kann einer der Standardwerte für
+einfache Schalter aus \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch} verwendet werden.
+Voreingestellt\textnote{\KOMAScript{} vs. Standardklassen} ist
+\OptionValue{chapterprefix}{false}, während das
+Verhalten\important{\Option{chapterprefix}} der Standardklassen
+\OptionValue{chapterprefix}{true} entspricht. Die Optionen wirken sich
+außerdem auf das Aussehen der automatischen Kolumnentitel für Kapitel aus
+(siehe \autoref{sec:\LabelBase.pagestyle},
+\DescPageRef{\LabelBase.pagestyle.headings}).
+
+Zuweilen kommt es vor, dass man die Kapitelüberschriften im Hauptteil durchaus
+in der einfachen Form von \OptionValue{chapterprefix}{false} setzen
+möchte. Gleichzeitig\important{\Option{appendixprefix}} sollen die
+Überschriften im Anhang\Index{Anhang} jedoch davon abweichend mit einer
+Präfixzeile --~»Anhang«, gefolgt vom Buchstaben des Anhangs~-- versehen
+werden. Dies ist mit der Einstellung \OptionValue{appendixprefix}{true}
+möglich. Da sich jedoch dadurch ein inkonsistentes Layout ergibt, rate ich von
+der Verwendung ab. Letztlich führt die Option dazu, dass
+\Option{chapterprefix} zu Beginn des Anhangs automatisch geändert wird.
+
+Mit der Anweisung
+\Macro{IfChapterUsesPrefixLine}\ChangedAt{v3.18}{\Class{scrbook}\and
+ \Class{scrreprt}} kann man Code in Abhängigkeit der aktuellen Einstellung
+für die Präfixzeile ausführen. Ist \Option{chapterprefix} aktiv, so wird der
+\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}.
+
+\BeginIndex{FontElement}{chapterprefix}%
+Die Schriftart der Kapitelnummernzeile bei \OptionValue{chapterprefix}{true}
+oder \OptionValue{appendixprefix}{true} kann mit den beiden Anweisungen
+\DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
+für das Element \FontElement{chapterprefix}%
+\ChangedAt{v2.96a}{\Class{scrbook}\and \Class{scrreprt}} geändert
+werden. Voreingestellt ist die Verwendung des Elements
+\DescRef{\LabelBase.fontelement.chapter}\IndexFontElement{chapter} (siehe
+\DescPageRef{\LabelBase.cmd.chapter}, sowie
+\autoref{tab:maincls.structureElementsFont},
+\autopageref{tab:maincls.structureElementsFont}).
+
+Weitere Einstellmöglichkeiten für Kapitelüberschriften sind den Erklärungen
+zu \DescRef{maincls-experts.cmd.RedeclareSectionCommand} sowie den Anweisungen
+\DescRef{maincls-experts.cmd.chapterlineswithprefixformat} und
+\DescRef{maincls-experts.cmd.chapterlinesformat} in
+\autoref{sec:maincls-experts.experts}, \autoref{part:forExperts} zu entnehmen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{headings}{Einstellung}
+\end{Declaration}
+Die Überschriften\index{Ueberschriften=Überschriften} werden sowohl bei den
+Standardklassen als auch bei {\KOMAScript} normalerweise recht groß
+gesetzt. Dies gefällt nicht jedem und wirkt insbesondere bei kleinen
+Papiergrößen oft störend. Daher stehen bei {\KOMAScript} neben den mit der
+Option \OptionValue{headings}{big}\IndexOption{headings~=\textKValue{big}}%
+\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+\important{\OptionValue{headings}{big}\\
+ \OptionValue{headings}{normal}\\
+ \OptionValue{headings}{small}} sehr groß voreingestellten Überschriften die
+beiden Möglichkeiten
+\OptionValue{headings}{normal}\IndexOption{headings~=\textKValue{normal}} und
+\OptionValue{headings}{small}\IndexOption{headings~=\textKValue{small}} zur
+Verfügung, mit denen man insgesamt kleinere Überschriften erhält. Die aus den
+Optionen resultierenden Schriftgrößen sind für die Überschriften der Klassen
+\Class{scrbook} und \Class{scrreprt}
+\autoref{tab:maincls.structureElementsFont},
+\autopageref{tab:maincls.structureElementsFont} zu entnehmen. Konkret setzen
+alle drei Einstellungen die Schrift für die Elemente
+\DescRef{\LabelBase.fontelement.chapter}\IndexFontElement{chapter},
+\DescRef{\LabelBase.fontelement.section}\IndexFontElement{section},
+\DescRef{\LabelBase.fontelement.subsection}\IndexFontElement{subsection},
+\DescRef{\LabelBase.fontelement.subsubsection}\IndexFontElement{subsubsection},
+\DescRef{\LabelBase.fontelement.paragraph}\IndexFontElement{paragraph} und
+\DescRef{\LabelBase.fontelement.subparagraph}\IndexFontElement{subparagraph}
+auf entsprechende Voreinstellungen zurück. Bei \Class{scrartcl} werden
+generell etwas kleinere Überschriften verwendet. \OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}}Die Abstände vor und nach Kapitelüberschriften werden von
+diesen Optionen ebenfalls neu definiert.
+
+\iffalse%
+Auf Kapitelüberschriften wirkt sich außerdem die Option \Option{headings} mit
+den Einstellungen \PValue{twolinechapter} oder \PValue{onelinechapter} aus,
+die den oben erklärten Optionen
+\OptionValueRef{\LabelBase}{chapterprefix}{true} und
+\OptionValueRef{\LabelBase}{chapterprefix}{false} entsprechen. Im Anhang gibt
+es zusätzlich Auswirkungen durch die Einstellungen \PValue{onelineappendix}
+und \PValue{twolineappendix} für Option \Option{headings}, was dann
+\OptionValueRef{\LabelBase}{appendixprefix}{false} und
+\OptionValueRef{\LabelBase}{appendixprefix}{true} entspricht (siehe ebenfalls
+oben). \else%
+Auf Kapitelüberschriften\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} wirken
+sich\important{%
+ \OptionValue{headings}{twolinechapter}\\
+ \OptionValue{headings}{onelinechapter}\\
+ \OptionValue{headings}{twolineappendix}\\
+ \OptionValue{headings}{onelineappendix}%
+} außerdem die beiden Optionen \OptionValue{headings}{twolinechapter} und
+\OptionValue{headings}{onelinechapter}, die den oben erklärten
+\OptionValueRef{\LabelBase}{chapterprefix}{true} und
+\OptionValueRef{\LabelBase}{chapterprefix}{false} entsprechen, aus. Für den
+Anhang stehen als Alternativen zu
+\OptionValueRef{\LabelBase}{appendixprefix}{true} und
+\OptionValueRef{\LabelBase}{appendixprefix}{false} die Optionen
+\OptionValue{headings}{twolineappendix} und
+\OptionValue{headings}{onelineappendix} zur Verfügung. \iffalse Für den
+Anhang stehen \OptionValue{headings}{twolineappendix} und
+\OptionValue{headings}{onelineappendix} zur Verfügung, die den Optionen
+\OptionValueRef{\LabelBase}{appendixprefix}{true} und
+\OptionValueRef{\LabelBase}{appendixprefix}{false} entsprechen (siehe
+ebenfalls oben). \fi Diese existieren natürlich nicht bei \Class{scrartcl}%
+\iffree{}{% Umbruchkorrekturtext
+ , da diese Klasse nicht über Kapitel verfügt}%
+.%
+\fi
+
+Option\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} \OptionValue{headings}{standardclasses}%
+\important{\OptionValue{headings}{standardclasses}} passt zum Einen die
+Schriftgrößen der Überschriften an die der Standardklassen an. Des Weiteren
+wird die Schrift für Element
+\DescRef{\LabelBase.fontelement.disposition}\IndexFontElement{disposition} auf
+\Macro{bfseries} gesetzt. Es wird also für Überschriften nicht mehr auf einen
+serifenlosen Font umgeschaltet. Bei Verwendung von
+\Class{scrbook}\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} oder
+\Class{scrreprt} wird außerdem \OptionValue{headings}{twolinechapter} gesetzt
+und die Abstände bei den Kapitelüberschriften werden denen der Standardklassen
+angepasst.
+
+Für\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} Kapitel kann mit
+\OptionValue{headings}{openany}\important{%
+ \OptionValue{headings}{openany}\\
+ \OptionValue{headings}{openright}\\
+ \OptionValue{headings}{openleft}}, \OptionValue{headings}{openright} und
+\OptionValue{headings}{openleft} die Methode für Kapitelanfänge alternativ zur
+Verwendung der Option \DescRef{\LabelBase.option.open} mit den Werten
+\PValue{any}, \PValue{right} und \PValue{left} (siehe oben) gesetzt werden.
+
+Eine\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} weitere Besonderheit von \KOMAScript{} betrifft die
+Behandlung des optionalen
+Arguments der Gliederungsbefehle. Sowohl dessen
+Funktion%
+\important{\OptionValue{headings}{optiontohead}\\
+ \OptionValue{headings}{optiontotoc}\\
+ \OptionValue{headings}{optiontoheadandtoc}} als
+auch dessen Bedeutung kann durch die Einstellungen
+\OptionValue{headings}{optiontohead}%
+\IndexOption{headings~=\textKValue{optiontohead}},
+\OptionValue{headings}{optiontotoc}\IndexOption{headings~=\textKValue{optiontotoc}}
+und \OptionValue{headings}{optiontoheadandtoc}%
+\IndexOption{headings~=\textKValue{optiontoheadandtoc}}
+beeinflusst werden.
+
+Eine Zusammenfassung der möglichen Einstellungen für Option \Option{headings}
+finden Sie in \autoref{tab:maincls.headings}. Beispiele zur Verwendung einiger
+der möglichen Einstellungen sind in den nachfolgenden Beschreibungen
+der Gliederungsbefehle enthalten.
+\begin{desclist}
+ \desccaption[{Mögliche Werte für Option \Option{headings}}]{%
+ Mögliche Werte für Option \Option{headings} zur Einstellung der
+ Überschriften%
+ \label{tab:maincls.headings}%
+ }{%
+ Mögliche Werte für Option \Option{headings} (\emph{Fortsetzung})%
+ }%
+ \pventry{big}{%
+ Setzt die Schrifteinstellung für die einzelnen Standard-Gliederungsebenen
+ zurück und verwendet große Überschriften mit großen Abständen darüber und
+ darunter.%
+ \IndexOption{headings~=\textKValue{big}}}%
+ \pventry{normal}{%
+ Setzt die Schrifteinstellung für die einzelnen Standard-Gliederungsebenen
+ zurück und verwendet mittelgroße Überschriften mit mittelgroßen Abständen
+ darüber und darunter.%
+ \IndexOption{headings~=\textKValue{normal}}}%
+ \entry{\PValue{onelineappendix}, \PValue{noappendixprefix},
+ \PValue{appendixwithoutprefix}, \PValue{appendixwithoutprefixline}%
+ \IndexOption{headings~=\textKValue{onelineappendix}}}{%
+ Kapitelüberschriften im Anhang werden wie andere Überschriften auch
+ gesetzt.}%
+ \entry{\PValue{onelinechapter}, \PValue{nochapterprefix},
+ \PValue{chapterwithoutprefix}, \PValue{chapterwithoutprefixline}%
+ \IndexOption{headings~=\textKValue{onelinechapter}}}{%
+ Kapitelüberschriften werden wie andere Überschriften auch gesetzt.}%
+ \pventry{openany}{%
+ Die Anweisungen \DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+ \DescRef{\LabelBase.cmd.cleardoublestandardpage},
+ \DescRef{\LabelBase.cmd.cleardoubleplainpage},
+ \DescRef{\LabelBase.cmd.cleardoubleemptypage} und
+ \DescRef{\LabelBase.cmd.cleardoublepage} erzeugen einen Seitenumbruch und
+ fügen gegebenenfalls eine Vakatseite\Index{Vakatseite} ein, um im
+ doppelseitigen Satz wie bei \OptionValue{headings}{openright} auf die
+ nächste rechte Seite zu gelangen. Teile, Kapitel, Index und Nachspann
+ verwenden \DescRef{\LabelBase.cmd.clearpage}, aber nicht
+ \DescRef{\LabelBase.cmd.cleardoublepage}.%
+ \IndexOption{headings~=\textKValue{openany}}}%
+ \pventry{openleft}{%
+ Die Anweisungen \DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+ \DescRef{\LabelBase.cmd.cleardoublestandardpage},
+ \DescRef{\LabelBase.cmd.cleardoubleplainpage},
+ \DescRef{\LabelBase.cmd.cleardoubleemptypage} und
+ \DescRef{\LabelBase.cmd.cleardoublepage} erzeugen einen Seitenumbruch und
+ fügen gegebenenfalls eine Vakatseite\Index{Vakatseite} ein, um im doppelseitigen
+ Satz auf die nächste linke Seite zu gelangen. Teile, Kapitel, Index und
+ Nachspann verwenden \DescRef{\LabelBase.cmd.cleardoublepage}.%
+ \IndexOption{headings~=\textKValue{openleft}}}%
+ \pventry{openright}{%
+ Die Anweisungen \DescRef{\LabelBase.cmd.cleardoublepageusingstyle},
+ \DescRef{\LabelBase.cmd.cleardoublestandardpage},
+ \DescRef{\LabelBase.cmd.cleardoubleplainpage},
+ \DescRef{\LabelBase.cmd.cleardoubleemptypage} und
+ \DescRef{\LabelBase.cmd.cleardoublepage} erzeugen einen Seitenumbruch und
+ fügen gegebenenfalls eine Vakatseite\Index{Vakatseite} ein, um im doppelseitigen
+ Satz auf die nächste rechte Seite zu gelangen. Teile, Kapitel, Index und
+ Nachspann verwenden \DescRef{\LabelBase.cmd.cleardoublepage}.%
+ \IndexOption{headings~=\textKValue{openright}}}%
+ \pventry{optiontohead}{%
+ Die\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \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~=\textKValue{optiontohead}}%
+ }%
+ \entry{\PValue{optiontoheadandtoc}, \PValue{optiontotocandhead}%
+ \IndexOption{headings~=\textKValue{optiontoheadandtoc}}}{%
+ Die\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \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 Arguments der
+ Gliederungsbefehle wird aktiviert. In der Voreinstellung wird das
+ optionale Argument ausschließlich für den Eintrag ins Inhaltsverzeichnis
+ verwendet.%
+ \IndexOption{headings~=\textKValue{optiontohead}}%
+ }%
+ \pventry{small}{%
+ Setzt die Schrifteinstellung für die einzelnen Standard-Gliederungsebenen
+ zurück und verwendet kleine Überschriften mit kleinen Abständen darüber
+ und darunter.%
+ \IndexOption{headings~=\textKValue{small}}}%
+ \pventry{standardclasses}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}%
+ Setzt die Schrifteinstellung für die einzelnen Standard-Gliederungsebenen
+ zurück und verwendet Überschriften in den Größen der Standardklassen. Für
+ Kapitelüberschriften wird bei \Class{scrbook} und \Class{scrreprt}
+ \OptionValue{headings}{twolinechapter} gesetzt.%
+ }%
+ \entry{\PValue{twolineappendix}, \PValue{appendixprefix},
+ \PValue{appendixwithprefix}, \PValue{appendixwithprefixline}%
+ \IndexOption{headings~=\textKValue{twolineappendix}}}{%
+ Kapitelüberschriften im Anhang werden mit einer Vorsatzzeile gesetzt,
+ deren Inhalt von
+ \DescRef{\LabelBase.cmd.chapterformat}\IndexCmd{chapterformat} bestimmt
+ wird.}%
+ \entry{\PValue{twolinechapter}, \PValue{chapterprefix},
+ \PValue{chapterwithprefix}, \PValue{chapterwithprefixline}%
+ \IndexOption{headings~=\textKValue{twolinechapter}}}{%
+ Kapitelüberschriften werden mit einer Vorsatzzeile gesetzt, deren Inhalt
+ von \DescRef{\LabelBase.cmd.chapterformat}\IndexCmd{chapterformat}
+ bestimmt wird.}%
+\end{desclist}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{numbers}{Einstellung}
+\end{Declaration}%
+Nach {\small DUDEN} steht in Gliederungen\Index{Gliederung}, in denen
+ausschließlich arabische Ziffern für die Nummerierung\Index{Nummerierung}
+verwendet werden, am Ende der Gliederungsnummern kein abschließender Punkt
+(siehe \cite[R\,3]{DUDEN}). Wird hingegen innerhalb der Gliederung auch mit
+römischen Zahlen oder Groß- oder Kleinbuchstaben gearbeitet, so steht am Ende
+aller Gliederungsnummern ein abschließender Punkt (siehe
+\cite[R\,4]{DUDEN}). In {\KOMAScript} ist ein Automatismus eingebaut, der
+diese etwas komplexe Regel zu erfüllen versucht. Der Automatismus wirkt sich
+so aus, dass normalerweise bei Verwendung des Gliederungsbefehls \DescRef{\LabelBase.cmd.part}
+oder eines Anhangs (\DescRef{\LabelBase.cmd.appendix}) auf Gliederungsnummer mit abschließendem
+Punkt umgeschaltet wird. Diese Information wird in der \File{aux}-Datei
+gespeichert und wirkt sich dann beim nächsten \LaTeX-Lauf auf das gesamte
+Dokument aus.
+
+Manchmal versagt der mit \OptionValue{numbers}{autoendperiod}%
+\IndexOption{numbers~=\textKValue{autoendperiod}} voreingestellte Automatismus zum
+Setzen oder Weglassen des abschließenden Punktes in der
+Gliederungsnummer. Teilweise sehen andere Sprachen auch andere Regeln
+vor. Deshalb ist es beispielsweise mit der Einstellung
+\OptionValue{numbers}{endperiod}\IndexOption{numbers~=\textKValue{endperiod}}%
+\important{\OptionValue{numbers}{endperiod}\\
+ \OptionValue{numbers}{noendperiod}} möglich, den Punkt manuell
+vorzuschreiben oder mit \OptionValue{numbers}{noendperiod} zu verbieten.
+
+Es ist zu beachten\textnote{Achtung!}, dass der Automatismus immer erst für
+den nächsten \LaTeX-Lauf die Verwendung des abschließenden Punktes ein- oder
+ausschaltet. Bevor also versucht wird, die korrekte Darstellung über
+Verwendung einer der Optionen zu erzwingen, sollte grundsätzlich ein weiterer
+\LaTeX-Lauf ohne Dokumentänderung durchgeführt werden.
+
+Eine Zusammenfassung der möglichen Werte für die \PName{Einstellung} von
+\PName{numbers} bietet \autoref{tab:maincls.numbers}. Im Unterschied zu den
+meisten anderen Einstellungen, kann diese Option nur in der Dokumentpräambel,
+also vor \Macro{begin}\PParameter{document} vorgenommen werden.
+
+\begin{table}
+ \caption[{Mögliche Werte für Option \Option{numbers}}]{Mögliche Werte für
+ Option \Option{numbers} zur Konfigurierung des Abschlusspunktes in
+ Gliederungsnummern}
+ \label{tab:maincls.numbers}
+ \begin{desctabular}
+ \entry{\PValue{autoendperiod}, \PValue{autoenddot}, \PValue{auto}}{%
+ \KOMAScript{} trifft die Entscheidung, ob am Ende von Gliederungsnummern
+ und allen von Gliederungsnummern abhängigen Nummern ein Punkt gesetzt
+ wird, selbst. Kommen in sämtlichen Gliederungsnummern nur arabische
+ Ziffern vor, so wird kein Punkt gesetzt. Wird in einer Gliederungsnummer
+ ein Buchstabe oder eine römische Zahl entdeckt, so wird der Punkt bei
+ allen Nummern gesetzt. Referenzen auf diese Nummern werden jedoch ohne
+ abschließenden Punkt gesetzt.%
+ \IndexOption{numbers~=\textKValue{autoendperiod}}}%
+ \entry{\PValue{endperiod}, \PValue{withendperiod}, \PValue{periodatend},
+ \PValue{enddot}, \PValue{withenddot}, \PValue{dotatend}}{%
+ Bei sämtlichen Gliederungsnummern und davon abhängigen Nummern wird am
+ Ende ein Punkt gesetzt, der bei der Referenzierung entfällt.%
+ \IndexOption{numbers~=\textKValue{endperiod}}}%
+ \entry{\PValue{noendperiod}, \PValue{noperiodatend},
+ \PValue{noenddot}, \PValue{nodotatend}}{%
+ Gliederungsnummern und davon abhängige Nummern werden ohne
+ abschließenden Punkt gesetzt.%
+ \IndexOption{numbers~=\textKValue{noendperiod}}}%
+ \end{desctabular}
+\end{table}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{chapteratlists}
+ \OptionVName{chapteratlists}{Wert}
+\end{Declaration}%
+Wie\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} auch bei der Option
+\DescRef{\LabelBase.option.listof} in \autoref{sec:\LabelBase.floats},
+\DescPageRef{\LabelBase.option.listof} erwähnt wird, fügt
+normalerweise\ChangedAt{v2.96a}{\Class{scrbook}\and \Class{scrreprt}} jeder
+mit \DescRef{\LabelBase.cmd.chapter} erzeugte Kapiteleintrag einen vertikalen
+Abstand in die Verzeichnisse der Gleitumgebungen ein. Seit
+Version~2.96a\important{\OptionValueRef{\LabelBase}{version}{2.96a}} gilt dies
+auch für die Anweisung \DescRef{\LabelBase.cmd.addchap}, wenn nicht eine
+Kompatibilitätseinstellung zu einer früheren Version gewählt wurde (siehe
+Option \DescRef{\LabelBase.option.version} in
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}).
+
+Außerdem kann mit der Option \Option{chapteratlists} der Abstand verändert
+werden. Dazu gibt man als \PName{Wert} den gewünschten Abstand an. Bei der
+Voreinstellung \OptionValueRef{\LabelBase}{listof}{chaptergapsmall}%
+\IndexOption{listof~=\textKValue{chaptergapsmall}} (siehe
+\DescPageRef{\LabelBase.option.listof.chaptergapsmall}) sind dies
+10\Unit{pt}.
+
+Mit der Einstellung \OptionValue{chapteratlists}{entry}%
+\IndexOption{chapteratlists~=\textKValue{entry}}%
+\important{\OptionValue{chapteratlists}{entry}} oder bei Verwendung der Form
+\Option{chapteratlists} ohne Angabe eines Wertes wird statt des Abstandes der
+Kapiteleintrag selbst in die Verzeichnisse eingetragen. Es wird darauf
+hingewiesen, dass ein solcher Eintrag auch dann erfolgt, wenn das Kapitel
+keine Gleitumgebung enthält. Eine Lösung, bei der nur Kapitel mit
+Gleitumgebungen im jeweiligen Verzeichnis angezeigt werden, finden Sie unter
+\cite{https://komascript.de/comment/5070}.
+
+Es ist zu beachten\textnote{Achtung!}, dass sich eine Änderung der
+Einstellung je nach Art der Änderung erst nach zwei weiteren \LaTeX-Läufen im
+Verzeichnis auswirkt.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{part}\OParameter{Kurzform}\Parameter{Überschrift}
+ \Macro{chapter}\OParameter{Kurzform}\Parameter{Überschrift}
+ \Macro{section}\OParameter{Kurzform}\Parameter{Überschrift}
+ \Macro{subsection}\OParameter{Kurzform}\Parameter{Überschrift}
+ \Macro{subsubsection}\OParameter{Kurzform}\Parameter{Überschrift}
+ \Macro{paragraph}\OParameter{Kurzform}\Parameter{Überschrift}
+ \Macro{subparagraph}\OParameter{Kurzform}\Parameter{Überschrift}
+\end{Declaration}%
+\Index[indexmain]{Teil}%
+\Index[indexmain]{Kapitel}%
+\Index[indexmain]{Abschnitt}%
+Die Standardgliederungsbefehle funktionieren bei {\KOMAScript} im Grundsatz
+wie bei den Standardklassen. So kann in der Voreinstellung ganz normal über
+ein optionales Argument ein abweichender Text für den Kolumnentitel und das
+Inhaltsverzeichnis vorgegeben werden.
+
+Mit\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}\textnote{\KOMAScript{} vs. Standardklassen} der
+Einstellung\important{\DescRef{\LabelBase.option.headings}}
+\OptionValueRef{\LabelBase}{headings}{optiontohead}%
+\IndexOption[indexmain]{headings~=\textKValue{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 wird. Siehe hierzu
+\autoref{sec:\LabelBase.pagestyle} sowie \autoref{cha:scrlayer-scrpage}. Mit
+der Einstellung \OptionValueRef{\LabelBase}{headings}{optiontotoc}%
+\IndexOption[indexmain]{headings~=\textKValue{optiontotoc}} wird das optionale
+Argument hingegen ausschließlich für den Eintrag ins Inhaltsverzeichnis
+verwendet. Auch dies selbstverständlich nur, wenn die Einstellung für den
+Zähler \DescRef{\LabelBase.counter.tocdepth} (siehe
+\autoref{sec:\LabelBase.toc}, \DescPageRef{\LabelBase.counter.tocdepth}) einen
+Eintrag der entsprechenden Ebene überhaupt vorsieht. Mit der Einstellung
+\OptionValueRef{\LabelBase}{headings}{optiontoheadandtoc}%
+\IndexOption[indexmain]{headings~=\textKValue{optiontoheadandtoc}} findet
+schließlich das optionale Argument wieder sowohl für den Kolumnentitel als
+auch den Eintrag ins Inhaltsverzeichnis Verwendung. Allen drei Einstellungen
+ist gemeinsam, dass sie im Gegensatz zur Voreinstellung die erweiterte
+Interpretation des optionalen Arguments aktivieren.
+
+Bei\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} der erweiterten Interpretation des optionalen Arguments
+wird geprüft, ob sich ein Gleichheitszeichen in \PName{Kurzform} befindet. Ist
+dies der Fall, so wird das optionale Argument der Gliederungsbefehle selbst
+statt als \PName{Kurzform} als \PName{Optionenliste} interpretiert. Dabei
+werden die drei Optionen
+\OptionVName{head}{Kolumnentitel}\important{\Option{head}\\
+ \Option{tocentry}\\
+ \Option{reference}}, \OptionVName{tocentry}{Inhaltsverzeichniseintrag} und
+\OptionVName{reference}{Querverweistitel}%
+\ChangedAt{v3.22}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}
+akzeptiert. Um ein Gleichheitszeichen oder ein Komma in einem der beiden Werte
+dieser Optionen unterzubringen, 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
+besitzt. Wird hingegen ein Paket verwendet, dass die Gliederungsbefehle oder
+die internen \LaTeX-Kern-Anweisungen für Gliederungsbefehle umdefiniert, so
+kann \KOMAScript{} diese erweiterte Funktionalität nicht mehr zur Verfügung
+stellen. Dies gilt auch für die immer aktive Erweiterung, dass
+leere\textnote{leere Inhalts\-verzeichnis\-einträge}
+Inhaltsverzeichniseinträge nicht zu einem Eintrag ohne Text führen, sondern
+gänzlich unterbleiben. Soll tatsächlich einmal ein leerer Eintrag ins
+Inhaltsverzeichnis erfolgen, so kann dies mit einem unsichtbaren Eintrag
+wie \lstinline|\mbox{}| erreicht werden.
+
+\begin{Example}
+ Angenommen, Sie haben ein Dokument mit teilweise sehr langen
+ Kapitelüberschriften. Diese langen Kapitelüberschriften sollen auch im
+ Inhaltsverzeichnis ausgegeben werden. Die Kolumnentitel wollen Sie jedoch
+ auf einzeilige Kurztexte beschränken. Dazu stellen Sie mit
+\begin{lstcode}
+ \documentclass[headings=optiontohead]{scrbook}
+\end{lstcode}
+ bereits beim Laden der Klasse ein, dass das optionale Argument der
+ Gliederungsbefehle nur für die Kolumnentitel verwendet werden soll. Im
+ Dokument nehmen Sie dann einen entsprechenden Eintrag über das optionale
+ Argument von \Macro{chapter} vor.
+\begin{lstcode}
+ \chapter[Kurzformen für Kapitel]
+ {Der Gliederungsbefehl für
+ Kapitelüberschriften erlaubt neben dem
+ Text für die eigentliche
+ Kapitelüberschrift auch eine Kurzform
+ mit steuerbarer Verwendung}
+\end{lstcode}
+
+ Etwas später wird Ihnen bewusst, dass diese lange Überschrift sehr ungünstig
+ umbrochen wird. Sie wollen deshalb die Umbrüche für diese Überschrift selbst
+ bestimmen. Im Inhaltsverzeichnis soll allerdings weiterhin automatisch
+ umbrochen werden. Mit
+\begin{lstcode}
+ \chapter[head={Kurzformen für Kapitel},
+ tocentry={Der Gliederungsbefehl für
+ Kapitelüberschriften erlaubt neben
+ dem Text für die eigentliche
+ Kapitelüberschrift auch eine Kurzform
+ mit steuerbarer Verwendung}]
+ {Der Gliederungsbefehl für
+ Kapitelüberschriften\\
+ erlaubt neben dem\\
+ Text für die eigentliche
+ Kapitelüberschrift\\
+ auch eine Kurzform\\
+ mit steuerbarer Verwendung}
+\end{lstcode}
+ setzen Sie daher die Einträge für den Kolumnentitel und das
+ Inhaltsverzeichnis unabhängig voneinander und von der Überschrift selbst.
+ Die Argumente der beiden Optionen \Option{head} und \Option{tocentry} wurden
+ dabei in geschweifte Klammern gesetzt, damit der Inhalt der Argumente
+ beliebig sein kann.
+
+ Die Notwendigkeit der geschweiften Klammern im vorherigen Beispiel lässt
+ sich am besten an einem weiteren Beispiel verdeutlichen. Angenommen, Sie
+ haben als Option \OptionValueRef{\LabelBase}{headings}{optiontotoc} gewählt
+ und setzen nun die Überschrift:
+\begin{lstcode}
+ \section[head=\emph{Wert}]
+ {Die Option head=\emph{Wert}}
+\end{lstcode}
+ Dies führt dazu, dass im Inhaltsverzeichnis der Eintrag »Die Option
+ head=\emph{Wert}« und im Kolumnentitel der Eintrag »\emph{Wert}« verwendet
+ wird. In Wirklichkeit wollten Sie aber, dass im Inhaltsverzeichnis der
+ Eintrag »head=\emph{Wert}« lautet und im Kolumnentitel der Text der
+ Überschrift übernommen wird. Dies ist dadurch zu erreichen, dass das
+ Gleichheitszeichen in geschweifte Klammern gesetzt wird:
+\begin{lstcode}
+ \section[head{=}\emph{Wert}]
+ {Die Option head=\emph{Wert}}
+\end{lstcode}
+
+ Ein ähnlicher Fall betrifft das Komma. Bei gleicher Voreinstellung der
+ Optionen würde
+\begin{lstcode}
+ \section[head=0, 1, 2, 3, \dots]
+ {Die natürlichen Zahlen mit der Null}
+\end{lstcode}
+ zu einer Fehlermeldung führen, weil die Kommata als Trennzeichen zwischen
+ den einzelnen Optionen der Optionenliste »\lstinline|head=0, 1, 2, 3, \dots|«
+ interpretiert würden. Schreibt man hingegen
+\begin{lstcode}
+ \section[head={0, 1, 2, 3, \dots}]
+ {Die natürlichen Zahlen mit der Null}
+\end{lstcode}
+ so ist »\lstinline|0, 1, 2, 3, \dots|« das Argument der Option
+ \Option{head}.
+\end{Example}
+
+So\ChangedAt{v3.22}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}
+wie im Beispiel Option \Option{head} den Titel für den lebenden Kolumnentitel
+und Option \Option{tocentry} den Titel für den Verzeichniseintrag bestimmt,
+kann mit \Option{reference}\important{\Option{reference}} der Titel für einen
+Querverweise durch die Pakete
+\Package{nameref}\IndexPackage{nameref}\important{\Package{nameref}\\
+ \Package{titleref}\\
+ \Package{zref-titleref}}, \Package{titleref}\IndexPackage{titleref} oder das
+\Package{titleref}\IndexPackage{zref-titleref}-Modul von
+\Package{zref}\IndexPackage{zref} explizit vorgegeben werden. Die
+Unterstützung für \Package{titleref} ist dabei eher rudimentär, da das Paket
+mit der Leistungsfähigkeit der anderen beiden nur schlecht mithalten kann und
+auch nicht mit
+\Package{hyperref}\IndexPackage{hyperref}\important{\Package{hyperref}}
+kompatibel ist.
+
+Die\important{\Macro{part}} Überschrift der Teile-Ebene (\Macro{part})
+unterscheidet sich von den anderen Gliederungsebenen dadurch, dass sie
+unabhängig von den übrigen Ebenen nummeriert wird. Das bedeutet, dass die
+Kapitel-Ebene (bei \Class{scrbook} oder \Class{scrreprt}) bzw. die
+Abschnitt-Ebene (bei \Class{scrartcl}) über alle Teile hinweg durchgehend
+nummeriert wird. Darüber hinaus steht bei den Klassen \Class{scrbook} und
+\Class{scrreprt}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} die Überschrift
+dieser Ebene zusammen mit ihrer Präambel (siehe Anweisung
+\DescRef{\LabelBase.cmd.setpartpreamble},
+\DescPageRef{\LabelBase.cmd.setpartpreamble}) alleine auf einer Seite.
+
+\Macro{chapter}\important{\Macro{chapter}}\OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}} existiert nur bei Buch- und Berichtklassen, also bei
+\Class{book}, \Class{scrbook}, \Class{report} und \Class{scrreprt}, nicht
+jedoch bei den Artikelklassen \Class{article} und
+\Class{scrartcl}. \Macro{chapter}\textnote{\KOMAScript{}
+ vs. Standardklassen} unterscheidet sich bei {\KOMAScript} außerdem
+gravierend von der Version der Standardklassen. Bei den Standardklassen wird
+die Kapitelnummer mit dem Präfix »Kapitel« beziehungsweise dem Kapitelnamen in
+der gewählten Sprache in einer Zeile vor dem eigentlichen Text der Überschrift
+ausgegeben. Diese\important{\DescRef{\LabelBase.option.chapterprefix}\\
+ \DescRef{\LabelBase.option.appendixprefix}} sehr mächtige Form
+wird bei {\KOMAScript} durch eine einfache Nummer vor dem Text abgelöst, lässt
+sich aber durch die Optionen \DescRef{\LabelBase.option.chapterprefix} und
+\DescRef{\LabelBase.option.appendixprefix} einstellen (siehe
+\DescPageRef{\LabelBase.option.chapterprefix}).
+
+Bitte beachten\textnote{Achtung!} Sie, dass \Macro{part} und \Macro{chapter}
+bei \Class{scrbook} und \Class{scrreprt}\OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}} den Seitenstil für eine Seite umschalten. Der jeweilige
+Seitenstil ist bei \KOMAScript{} in den Makros
+\DescRef{\LabelBase.cmd.partpagestyle} und
+\DescRef{\LabelBase.cmd.chapterpagestyle} abgelegt (siehe
+\autoref{sec:\LabelBase.pagestyle}, \DescPageRef{\LabelBase.cmd.partpagestyle}).
+
+\BeginIndexGroup
+\BeginIndex[indexother]{}{Schrift>Art}%
+\BeginIndex[indexother]{}{Schrift>Groesse=Größe}%
+\BeginIndex{FontElement}{disposition}\LabelFontElement{disposition}%
+\BeginIndex{FontElement}{part}\LabelFontElement{part}%
+\BeginIndex{FontElement}{parnumber}\LabelFontElement{partnumber}%
+\BeginIndex{FontElement}{chapter}\LabelFontElement{chapter}%
+\BeginIndex{FontElement}{chapterprefix}\LabelFontElement{chapterprefix}%
+\BeginIndex{FontElement}{section}\LabelFontElement{section}%
+\BeginIndex{FontElement}{subsection}\LabelFontElement{subsection}%
+\BeginIndex{FontElement}{subsubsection}\LabelFontElement{subsubsection}%
+\BeginIndex{FontElement}{paragraph}\LabelFontElement{paragraph}%
+\BeginIndex{FontElement}{subparagraph}\LabelFontElement{subparagraph}%
+Die\ChangedAt{v2.8p}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} Schriftart aller
+sieben Gliederungsebenen kann mit den Anweisungen
+\DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
+bestimmt werden. Dabei wird zunächst generell das Element
+\FontElement{disposition}\important{\FontElement{disposition}} und
+anschließend zusätzlich je Gliederungsebene ein spezifisches
+Element\important{%
+ \FontElement{part}\\
+ \FontElement{partnumber}\\
+ \FontElement{chapter}\\
+ \FontElement{chapterprefix}\\
+ \FontElement{section}\\
+ \FontElement{subsection}\\
+ \FontElement{paragraph}\\
+ \FontElement{subparagraph}} verwendet (siehe
+\autoref{tab:maincls.fontelements},
+\autopageref{tab:maincls.fontelements}). Für den Nummernteil der
+Teile-Überschrift wird zusätzlich das Element \FontElement{partnumber}
+verwendet, für die optionale Präfixzeile der Kapitelüberschriften das Element
+\FontElement{chapterprefix}. Die Schriftart für das Element
+\FontElement{disposition} ist als
+\Macro{normalcolor}""\Macro{sffamily}""\Macro{bfseries} vordefiniert. Die
+Voreinstellungen für die spezifischen Elemente sind mit einer Schriftgröße
+vorbelegt und daher von den Einstellungen \PValue{big}, \PValue{normal} und
+\PValue{small} für die Option
+\DescRef{\LabelBase.option.headings}\IndexOption{headings} abhängig (siehe
+\DescPageRef{\LabelBase.option.headings}). Sie finden die Voreinstellungen in
+\autoref{tab:maincls.structureElementsFont}.
+% Umbruchkorrektur: Tabelle verschoben
+\begin{table}
+% \centering%
+% \caption
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Schriftvoreinstellungen für die Elemente der Gliederung
+ bei\newline \Class{scrbook} und \Class{scrreprt}}]{%
+ \label{tab:maincls.structureElementsFont}%
+ \hspace{0pt plus .5em}Voreinstellungen der Schrift
+ für die Elemente der Gliederung bei \Class{scrbook} und \Class{scrreprt}}
+ [l]
+ \begin{tabular}[t]{lll}
+ \toprule
+ Klassenoption & Element & Voreinstellung \\
+ \midrule
+ \OptionValueRef{\LabelBase}{headings}{big}
+ & \FontElement{part}\IndexFontElement{part}
+ & \Macro{Huge} \\
+ & \FontElement{partnumber}\IndexFontElement{partnumber}
+ & \Macro{huge} \\
+ & \FontElement{chapter}\IndexFontElement{chapter}
+ & \Macro{huge} \\
+ & \FontElement{chapterprefix}\IndexFontElement{chapterprefix}
+ & \DescRef{\LabelBase.cmd.usekomafont}\PParameter{chapter} \\
+ & \FontElement{section}\IndexFontElement{section}
+ & \Macro{Large} \\
+ & \FontElement{subsection}\IndexFontElement{subsection}
+ & \Macro{large} \\
+ & \FontElement{subsubsection}\IndexFontElement{subsubsection}
+ & \Macro{normalsize} \\
+ & \FontElement{paragraph}\IndexFontElement{paragraph=}
+ & \Macro{normalsize} \\
+ & \FontElement{subparagraph}\IndexFontElement{subparagraph}
+ & \Macro{normalsize} \\[1ex]
+ \OptionValueRef{\LabelBase}{headings}{normal}
+ & \FontElement{part} & \Macro{huge} \\
+ & \FontElement{partnumber} & \Macro{huge} \\
+ & \FontElement{chapter} & \Macro{LARGE} \\
+ & \FontElement{chapterprefix}\IndexFontElement{chapterprefix}
+ & \DescRef{\LabelBase.cmd.usekomafont}\PParameter{chapter} \\
+ & \FontElement{section} & \Macro{Large} \\
+ & \FontElement{subsection} & \Macro{large} \\
+ & \FontElement{subsubsection} & \Macro{normalsize} \\
+ & \FontElement{paragraph} & \Macro{normalsize} \\
+ & \FontElement{subparagraph} & \Macro{normalsize} \\[1ex]
+ \OptionValueRef{\LabelBase}{headings}{small}
+ & \FontElement{part} & \Macro{LARGE} \\
+ & \FontElement{partnumber} & \Macro{LARGE} \\
+ & \FontElement{chapter} & \Macro{Large} \\
+ & \FontElement{chapterprefix}\IndexFontElement{chapterprefix}
+ & \DescRef{\LabelBase.cmd.usekomafont}\PParameter{chapter} \\
+ & \FontElement{section} & \Macro{large} \\
+ & \FontElement{subsection} & \Macro{normalsize} \\
+ & \FontElement{subsubsection} & \Macro{normalsize} \\
+ & \FontElement{paragraph} & \Macro{normalsize} \\
+ & \FontElement{subparagraph} & \Macro{normalsize} \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+%
+\begin{Example}
+ Angenommen, Sie stellen bei Verwendung der Klassenoption
+ \OptionValueRef{\LabelBase}{headings}{big} fest, dass die sehr großen
+ Überschriften von Teildokumenten (\Macro{part} oder \DescRef{\LabelBase.cmd.addpart}) zu fett
+ wirken. Nun könnten Sie natürlich wie folgt %
+ \iftrue % Umbruchoptimierung!!!!
+ verfahren:%
+ \else %
+ für Abhilfe sorgen:%
+ \fi
+\begin{lstcode}
+ \setkomafont{disposition}{\normalcolor\sffamily}
+ \part{\appendixname}
+ \addtokomafont{disposition}{\bfseries}
+\end{lstcode}
+ Auf diese Weise würden Sie nur für die eine Überschrift »Anhang«
+ das Schriftattribut \textbf{Fett} abschalten. Sehr viel komfortabler
+ und eleganter ist es aber, stattdessen generell für
+ \Macro{part}-Überschriften eine entsprechende Änderung vorzunehmen.
+ Das ist wahlweise mit:
+\begin{lstcode}
+ \addtokomafont{part}{\normalfont\sffamily}
+ \addtokomafont{partnumber}{\normalfont\sffamily}
+\end{lstcode}
+ oder einfach mit:
+\begin{lstcode}
+ \addtokomafont{part}{\mdseries}
+ \addtokomafont{partnumber}{\mdseries}
+\end{lstcode}
+ möglich. Die Verwendung von \DescRef{\LabelBase.cmd.setkomafont} wäre zwar grundsätzlich
+ möglich, müsste aber auch die Auswahl der Schriftgröße enthalten und würde
+ damit die Größenänderung über die Option \DescRef{\LabelBase.option.headings} verhindern.
+
+ Die zweite Version mit \Macro{mdseries} ist vorzuziehen, da diese auch dann
+ noch zum gewünschten Ergebnis führt, wenn Sie später das Element
+ \FontElement{disposition}\IndexFontElement{disposition} wie folgt ändern:
+\begin{lstcode}
+ \setkomafont{disposition}{\normalcolor\bfseries}
+\end{lstcode}
+ Mit dieser Änderung verzichten Sie darauf, für alle
+ Gliederungsebenen serifenlose Schrift voreinzustellen.
+\end{Example}
+
+Ich möchte eindringlich davon abraten, die Möglichkeit zur
+Schriftumschaltung zu missbrauchen, um wild Schriften, Schriftgrößen und
+Schriftattribute miteinander zu mischen. Die Auswahl der richtigen Schrift für
+die richtige Aufgabe ist eine Sache für Experten und hat sehr, sehr wenig mit
+dem persönlichem Geschmack eines Laien zu tun. Siehe hierzu auch das Zitat am
+Ende von \autoref{sec:typearea.tips}, \autopageref{sec:typearea.tips.cite} und
+die folgende Erklärung.
+
+\begin{Explain}
+ Unterschiedliche Schriften für unterschiedliche Gliederungsebenen sind mit
+ {\KOMAScript}-Mitteln möglich. Der Laie sollte sie aber meiden wie der
+ Teufel das Weihwasser. Dies hat typografische Gründe.
+
+ Eine Regel der Typografie besagt, dass man möglichst wenig Schriften
+ miteinander mischen soll. Serifenlose für die Überschriften scheinen bereits
+ ein Verstoß gegen diese Regel zu sein. Allerdings muss man wissen, dass
+ fette, große, serifenbehaftete Buchstaben oft viel zu mächtig für eine
+ Überschrift sind. Man müsste dann strenggenommen zumindest auf eine normale
+ statt eine fette oder halbfette Schrift ausweichen. In tiefen
+ Gliederungsebenen kann das aber wieder zu schwach sein. Andererseits haben
+ Serifenlose in Überschriften eine sehr angenehme Wirkung und fast nur für
+ Überschriften eine Berechtigung. Daher wurde diese Voreinstellung für
+ {\KOMAScript} mit gutem Grund gewählt.
+
+ Größere Vielfalt sollte aber vermieden werden. Schriftenmischung ist etwas
+ für Profis. Aus den genannten Gründen sollten Sie bei Verwendung anderer als
+ der Standard-\TeX-Fonts -- egal ob CM"~\Index{CM-Fonts},
+ EC"~\Index{EC-Fonts} oder LM-Fonts\Index{LM-Fonts} -- bezüglich der
+ Verträglichkeit der serifenlosen und serifenbehafteten Schrift einen
+ Experten zu Rate ziehen oder die Schrift für das Element
+ \FontElement{disposition}\IndexFontElement{disposition} vorsichtshalber wie
+ in obigem Beispiel umdefinieren. Die häufig anzutreffenden Kombinationen
+ Times mit Helvetica oder Palatino mit Helvetica werden vom Autor als
+ ungünstig betrachtet.
+\end{Explain}
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{part*}\Parameter{Überschrift}
+ \Macro{chapter*}\Parameter{Überschrift}
+ \Macro{section*}\Parameter{Überschrift}
+ \Macro{subsection*}\Parameter{Überschrift}
+ \Macro{subsubsection*}\Parameter{Überschrift}
+ \Macro{paragraph*}\Parameter{Überschrift}
+ \Macro{subparagraph*}\Parameter{Überschrift}
+\end{Declaration}%
+Bei den Sternvarianten der Gliederungsbefehle erfolgt keine
+Nummerierung\Index{Nummerierung}, wird kein
+Kolumnentitel\Index{Kolumnentitel>automatisch} gesetzt und kein Eintrag im
+Inhaltsverzeichnis\Index{Inhaltsverzeichnis} vorgenommen. Der Verzicht auf
+den Kolumnentitel hat übrigens einen oftmals unerwünschten Effekt. Geht
+beispielsweise ein mit \Macro{chapter*} gesetztes Kapitel über mehrere Seiten,
+so taucht plötzlich der Kolumnentitel des letzten Kapitels wieder auf.
+{\KOMAScript} bietet dafür aber eine Lösung, die im Anschluss beschrieben
+wird. \OnlyAt{\Class{scrbook}\and \Class{scrreprt}}\Macro{chapter*} existiert
+selbstverständlich nur bei Buch- und Berichtklassen, also bei \Class{book},
+\Class{scrbook}, \Class{report} und \Class{scrreprt}, nicht jedoch bei den
+Artikelklassen \Class{article} und \Class{scrartcl}.
+
+Bitte\textnote{Achtung!} beachten Sie, dass \Macro{part*} und \Macro{chapter*}
+den Seitenstil für eine Seite umschalten. Während die
+Standardklassen\textnote{\KOMAScript{} vs. Standardklassen} dabei den
+Seitenstil \PageStyle{plain} verwenden, ist bei \KOMAScript{} der zu
+verwendende Seitenstil in den Makros \DescRef{\LabelBase.cmd.partpagestyle}
+und \DescRef{\LabelBase.cmd.chapterpagestyle} abgelegt (siehe
+\autoref{sec:\LabelBase.pagestyle},
+\DescPageRef{\LabelBase.cmd.titlepagestyle}).
+
+Bezüglich der Möglichkeiten der Schriftumschaltung\ChangedAt{v2.8p}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} %
+gilt das Gleiche, wie zuvor in der Erklärung zu den sternlosen
+Varianten geschrieben. Die Elemente tragen die gleichen Namen, da sie
+nicht Varianten, sondern Gliederungsebenen bezeichnen.%
+%
+\EndIndexGroup
+
+
+\iffalse% Umbruchkorrekturtext
+Bei den Standardklassen\textnote{\KOMAScript{} vs. Standardklassen} gibt
+es keine weiteren Gliederungsbefehle. Es existieren also insbesondere keine
+Anweisungen, mit denen man nicht nummerierte Kapitel oder nicht nummerierte
+Abschnitte erzeugen kann, die ins Inhaltsverzeichnis aufgenommen werden und
+bei denen ein automatischer Kolumnentitel erzeugt wird.
+\fi
+
+
+\begin{Declaration}
+ \Macro{addpart}\OParameter{Kurzform}\Parameter{Überschrift}
+ \Macro{addpart*}\Parameter{Überschrift}
+ \Macro{addchap}\OParameter{Kurzform}\Parameter{Überschrift}
+ \Macro{addchap*}\Parameter{Überschrift}
+ \Macro{addsec}\OParameter{Kurzform}\Parameter{Überschrift}
+ \Macro{addsec*}\Parameter{Überschrift}
+ \textnote[n]{\KOMAScript{} vs. Standardklassen}
+\end{Declaration}%
+{\KOMAScript} bietet über die Gliederungsbefehle der Standardklassen hinaus
+die Anweisungen \Macro{addpart}, \Macro{addchap} und \Macro{addsec}. Diese
+ähneln bis auf die fehlende Nummerierung sehr den Standardanweisungen
+\DescRef{\LabelBase.cmd.part}\IndexCmd{part}%
+\important{\DescRef{\LabelBase.cmd.part}, \DescRef{\LabelBase.cmd.chapter},
+ \DescRef{\LabelBase.cmd.section}},
+\DescRef{\LabelBase.cmd.chapter}\IndexCmd{chapter} und
+\DescRef{\LabelBase.cmd.section}\IndexCmd{section}. Sie erzeugen sowohl
+einen automatischen Kolumnentitel als auch einen Eintrag im
+Inhaltsverzeichnis, wobei auch die Einstellungen von Option
+\DescRef{\LabelBase.option.headings}%
+\important{\DescRef{\LabelBase.option.headings}} beachtet werden,
+insbesondere auch die entsprechende Erweiterung des optionalen Arguments
+verfügbar ist.
+
+Die Sternvarianten \Macro{addchap*} und \Macro{addsec*} gleichen hingegen den
+Standardanweisungen \DescRef{\LabelBase.cmd.chapter*} und
+\DescRef{\LabelBase.cmd.section*} mit einem winzigen, aber wichtigen
+Unterschied: Die Kolumnentitel werden gelöscht. Dadurch wird der oben erwähnte
+Effekt veralteter Kolumnentitel ausgeschlossen. Stattdessen bleibt der
+Kolumnentitel auf Folgeseiten leer. \OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}}\Macro{addchap} und \Macro{addchap*} existieren
+\iffree{%
+ selbstverständlich nur bei Buch- und Berichtklassen, also bei
+ \Class{scrbook} und \Class{scrreprt}, nicht jedoch bei der Artikelklasse
+ \Class{scrartcl}.%
+}{%
+ nur bei \Class{scrbook} und \Class{scrreprt}, nicht jedoch bei
+ \Class{scrartcl}.%
+}
+
+Die Anweisung \Macro{addpart} erstellt entsprechend einen nicht nummerierten
+Dokumentteil mit einem Eintrag im Inhaltsverzeichnis. Da bereits
+\DescRef{\LabelBase.cmd.part} und \DescRef{\LabelBase.cmd.part*} den
+Kolumnentitel löschen, ergibt sich hier nicht das oben genannte Problem mit
+veralteten Kolumnentiteln. Die Sternvariante \Macro{addpart*} ist daher
+identisch mit der Sternvariante \DescRef{\LabelBase.cmd.part*} und wurde nur
+aus Konsistenzgründen definiert.
+
+Bitte\textnote{Achtung!} beachten Sie, dass \Macro{addpart} und
+\Macro{addchap} und deren Sternvarianten den Seitenstil für eine Seite
+umschalten. Der jeweilige Seitenstil ist in den Makros
+\DescRef{\LabelBase.cmd.partpagestyle} und
+\DescRef{\LabelBase.cmd.chapterpagestyle} abgelegt (siehe
+\autoref{sec:\LabelBase.pagestyle},
+\DescPageRef{\LabelBase.cmd.titlepagestyle}).
+\iffree{\iffalse}{\csname iftrue\endcsname}% Umbruchkorrekturbeispiel
+\begin{Example}
+ Sie schreiben ein Buch mit einem ausladenden Nachwort über mehrere
+ Seiten. Dieses soll weder einen Kolumnentitel noch einen Eintrag ins
+ Inhaltsverzeichnis erhalten. Daher verwenden Sie zunächst
+ \DescRef{\LabelBase.cmd.chapter*}:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage[ngerman]{babel}
+ \usepackage{blindtext}
+ \begin{document}
+ \tableofcontents
+ \blinddocument
+ \chapter*{Nachwort}
+ \Blindtext[10]
+ \end{document}
+\end{lstcode}
+ Allerdings entdecken Sie, dass auf der zweiten und dritten Seite des
+ Nachworts der Kolumnentitel des vorherigen Kapitels wieder auftaucht. Das
+ wollen Sie natürlich nicht. Deshalb verwenden Sie nun \Macro{addchap*}:
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage[ngerman]{babel}
+ \usepackage{blindtext}
+ \begin{document}
+ \tableofcontents
+ \blinddocument
+ \addchap*{Nachwort}
+ \Blindtext[10]
+ \end{document}
+\end{lstcode}
+ Wunschgemäß ist das komplette Nachwort nun ohne Kolumnentitel. Doch auch das
+ entspricht nicht ganz Ihren Vorstellungen. Ein Kolumnentitel wäre doch
+ schön. Mit
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage[ngerman]{babel}
+ \usepackage{blindtext}
+ \begin{document}
+ \tableofcontents
+ \blinddocument
+ \addchap{Nachwort}
+ \Blindtext[10]
+ \end{document}
+\end{lstcode}
+ erhalten Sie nun sowohl »Nachwort« als Kolumnentitel der geraden Seiten, als
+ auch einen Inhaltsverzeichniseintrag. Genau an diesem Eintrag stört sich
+ dann aber der Verlag. Er besteht darauf, dass das Nachwort keinen Eintrag
+ ins Inhaltsverzeichnis zu erhalten hat. Auch wenn Ihnen das seltsam
+ erscheint, wollen Sie den Verlag zufriedenstellen. Also aktivieren Sie mit
+ \OptionValueRef{\LabelBase}{headings}{optiontotocandhead} zunächst die
+ erweiterte Funktion für das optionale Argument und setzen dann für das
+ Inhaltsverzeichnis explizit ein leeres Argument:
+\begin{lstcode}
+ \documentclass[headings=optiontotocandhead]
+ {scrbook}
+ \usepackage[ngerman]{babel}
+ \usepackage{blindtext}
+ \begin{document}
+ \tableofcontents
+ \blinddocument
+ \addchap[tocentry={}]{Nachwort}
+ \Blindtext[10]
+ \end{document}
+\end{lstcode}
+ Der Kolumnentitel wird von \OptionValue{tocentry}{\{\}} nicht verändert.
+ Da \Class{scrbook} leere Einträge ins Inhaltsverzeichnis automatisch
+ unterdrückt, ist nun auch der Verlag zufriedengestellt.
+\end{Example}%
+\fi
+
+Bezüglich der Möglichkeiten der Schriftumschaltung\ChangedAt{v2.8p}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} %
+gilt das Gleiche, wie zuvor in der Erklärung zu \DescRef{\LabelBase.cmd.part*},
+\DescRef{\LabelBase.cmd.chapter*} und \DescRef{\LabelBase.cmd.section*}
+geschrieben. Die Elemente tragen die gleichen Namen, da sie nicht Varianten,
+sondern Gliederungsebenen bezeichnen.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{minisec}\Parameter{Überschrift}
+\end{Declaration}%
+Manchmal ist eine Art Überschrift\Index{Ueberschriften=Überschriften}
+wünschenswert, die zwar hervorgehoben wird, ansonsten aber eng mit dem
+nachfolgenden Text zusammenhängt. Eine solche Überschrift soll dann ohne große
+Abstände gesetzt werden.
+
+Der Befehl \Macro{minisec} bewirkt genau eine derartige Überschrift. Diese
+Überschrift ist keiner Gliederungsebene\textnote{ohne Gliederungsebene}
+zugeordnet. Eine solche \emph{Mini-Section} wird nicht in das
+Inhaltsverzeichnis aufgenommen und erhält auch keine Nummerierung.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{minisec}\LabelFontElement{minisec}%
+Die Schriftart des Gliederungsbefehls \Macro{minisec} kann über die Elemente
+\DescRef{\LabelBase.fontelement.disposition}%
+\important{\DescRef{\LabelBase.fontelement.disposition}\\
+ \FontElement{minisec}} und \FontElement{minisec}\ChangedAt{v2.96a}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} beeinflusst
+werden (siehe \autoref{tab:maincls.fontelements},
+\autopageref{tab:maincls.fontelements}). Die Voreinstellung für das Element
+\FontElement{minisec} ist leer, so dass in der Voreinstellung nur das Element
+\DescRef{\LabelBase.fontelement.disposition} wirkt.%
+\EndIndexGroup
+
+\begin{Example}
+ Sie haben einen Bausatz für eine Mausefalle entwickelt und wollen
+ diesen getrennt nach den benötigten Materialien und der Anleitung für
+ die Montage beschreiben. Das könnte so gemacht werden:
+\begin{lstcode}
+ \documentclass{scrartcl}
+ \usepackage[ngerman]{babel}
+ \usepackage{selinput}
+ \SelectInputMappings{
+ adieresis={ä},
+ germandbls={ß}
+ }
+
+ \begin{document}
+
+ \title{Selbstbauprojekte}
+ \author{Zwei Linke Daumen}
+ \date{\today}
+ \maketitle
+
+ \section{Mausefalle}
+ Das erste Projekt ist auch für Anfänger geeignet
+ und benötigt lediglich einige wenige Bauteile,
+ die in jedem Haushalt zu finden sein sollten.
+
+ \minisec{Bauteile}
+
+ \begin{flushleft}
+ 1 Brett ($100\times 50 \times 12$)\\
+ 1 Bierflaschenschnappverschluss\\
+ 1 Kugelschreiberfeder\\
+ 1 Reißzwecke\\
+ 2 Schrauben\\
+ 1 Hammer\\
+ 1 Messer
+ \end{flushleft}
+
+ \minisec{Montage}
+
+ Zunächst suche man das Mauseloch. Dann lege man
+ die Reißzwecke innen unmittelbar hinter das Loch,
+ damit bei den folgenden Aktionen die Maus nicht
+ entschlüpfen kann.
+ Anschließend klopfe man mit dem Hammer den
+ Bierflaschenschnappverschluss in das Mauseloch.
+ Sollte der Verschluss nicht groß genug sein, um
+ das Loch vollständig und dauerhaft zu
+ verschließen, nehme man stattdessen das Brett
+ und schraube es unter Zuhilfenahme der beiden
+ Schrauben und des Messers vor das Loch. Statt
+ des Messers kann selbstverständlich auch ein
+ Schraubendreher verwendet werden.
+ Die Kugelschreiberfeder ist dem Tierschutz zum
+ Opfer gefallen.
+ \end{document}
+\end{lstcode}
+ Der wesentliche Teil ab der Überschrift »Bauteile« sieht anschließend wie
+ folgt aus:
+ \begin{ShowOutput}[\baselineskip]\setlength{\parindent}{1em}
+ \minisec{Bauteile}
+
+ \begin{flushleft}
+ 1 Brett ($100\times 50 \times 12$)\\
+ 1 Bierflaschenschnappverschluss\\
+ 1 Kugelschreiberfeder\\
+ 1 Reißzwecke\\
+ 2 Schrauben\\
+ 1 Hammer\\
+ 1 Messer
+ \end{flushleft}
+
+ \minisec{Montage}
+
+ Zunächst suche man das Mauseloch. Dann lege man die
+ Reißzwecke innen unmittelbar hinter das Loch, damit
+ bei den folgenden Aktionen die Maus nicht
+ entschlüpfen kann.
+ Anschließend klopfe man mit dem Hammer den
+ Bierflaschenschnappverschluss in das Mauseloch.
+ Sollte der Verschluss nicht groß genug sein, um das
+ Loch vollständig und dauerhaft zu verschließen,
+ nehme man stattdessen das Brett und schraube es
+ unter Zuhilfenahme der beiden Schrauben und des
+ Messers vor das Loch. Statt des Messers kann
+ selbstverständlich auch ein Schraubendreher
+ verwendet werden.
+ Die Kugelschreiberfeder ist dem Tierschutz zum
+ Opfer gefallen.
+% Mit der Kugelschreiberfeder hat es eine besondere
+% Bewandtnis. Sie stammt noch aus dem Selbstbauprojekt
+% »Mauseschnappfalle«, das dem Tierschutz zum Opfer gefallen ist.
+ \end{ShowOutput}
+ Zum Verständnis der Verwendung des Pakets
+ \Package{selinput}\IndexPackage{selinput}\important{\Package{selinput}} und
+ %
+ \iffalse % Umbruchkorrektur
+ der darin definierten Anweisung %
+ \else %
+ von %
+ \fi %
+ \Macro{SelectInputMappings} sei auf \cite{package:selinput}
+ verwiesen.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{raggedsection}
+ \Macro{raggedchapter}
+ \Macro{raggedpart}
+\end{Declaration}%
+Bei den Standardklassen\textnote{\KOMAScript{} vs. Standardklassen} werden die
+Überschriften ganz normal im Blocksatz ausgegeben. Dadurch können in den
+Überschriften Trennungen auf"|treten und mehrzeilige Überschriften werden auf
+Textbreite gedehnt. Dieses Vorgehen ist in der Typografie eher
+unüblich. {\KOMAScript} setzt Überschriften von
+\DescRef{\LabelBase.cmd.chapter} bis \DescRef{\LabelBase.cmd.subparagraph}
+daher in linksbündigem Flattersatz mit hängendem Einzug. Verantwortlich ist
+dafür die Anweisung \Macro{raggedsection}, die vordefiniert ist als:
+\begin{lstcode}
+ \let\raggedsection\raggedright
+\end{lstcode}
+Die Anweisung \Macro{raggedsection} kann mit \Macro{renewcommand} umdefiniert
+werden.
+\begin{Example}
+ Sie wollen auch für Überschriften Blocksatz. Dazu schreiben Sie in
+ die Präambel Ihres Dokuments:
+\begin{lstcode}
+ \renewcommand*{\raggedsection}{}
+\end{lstcode}
+ oder kürzer:
+\begin{lstcode}
+ \let\raggedsection\relax
+\end{lstcode}
+ Sie erreichen somit eine ähnliche Formatierung der Überschriften wie
+ bei den Standardklassen. Noch ähnlicher wird es, wenn Sie diese
+ Änderung mit der oben vorgestellten Änderung für das Element
+ \DescRef{\LabelBase.fontelement.disposition}\IndexFontElement{disposition}
+ kombinieren.
+\end{Example}
+
+Da\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}} manche Anwender für
+die Kapitelebene eine andere Ausrichtung wünschen als für alle anderen Ebenen,
+kann diese über \Macro{raggedchapter} auch getrennt verändert werden. In der
+Voreinstellung verwendet die Anweisung jedoch einfach \Macro{raggedsection},
+so dass eine Änderung von \Macro{raggedsection} sich indirekt auch auf
+\Macro{raggedchapter} auswirkt.
+
+Die Überschriften von Teilen (\DescRef{\LabelBase.cmd.part}) werden in der Voreinstellung als
+einzige nicht in linksbündigem Flattersatz, sondern zentriert gesetzt. Dafür
+ist die Anweisung \Macro{raggedpart} verantwortlich, die als:
+\begin{lstcode}
+ \let\raggedpart\centering
+\end{lstcode}
+vordefiniert ist. Auch diese Anweisung kann mit \Macro{renewcommand}
+umdefiniert werden.
+\begin{Example}
+ Sie wollen, dass Überschriften mit \DescRef{\LabelBase.cmd.part} in der
+ gleichen Weise formatiert werden wie alle anderen Ebenen. Dazu schreiben
+ Sie
+\begin{lstcode}
+ \renewcommand*{\raggedpart}{\raggedsection}
+\end{lstcode}
+ in die Präambel Ihres Dokuments. An\textnote{Tipp!} dieser Stelle wurde im
+ Gegensatz zu oben absichtlich nicht \Macro{let} verwendet, da mit
+ \Macro{let} der Anweisung \Macro{raggedpart} die aktuelle Bedeutung von
+ \Macro{raggedsection} zugewiesen würde. Spätere Änderungen von
+ \Macro{raggedsection} blieben also bei \Macro{raggedpart}
+ unberücksichtigt. Bei der Umdefinierung mit \Macro{renewcommand} erhält
+ \Macro{raggedpart} dagegen nicht die Bedeutung von \Macro{raggedsection} zum
+ Zeitpunkt dieser Umdefinierung, sondern zum Zeitpunkt der Verwendung von
+ \Macro{raggedpart}.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{partformat}
+ \Macro{chapterformat}
+ \Macro{sectionformat}
+ \Macro{subsectionformat}
+ \Macro{subsubsectionformat}
+ \Macro{paragraphformat}
+ \Macro{subparagraphformat}
+ \Macro{othersectionlevelsformat}\Parameter{Gliederungsname}\Parameter{}
+ \Parameter{Zählerausgabe}
+ \Macro{IfUsePrefixLine}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+ \Macro{autodot}
+\end{Declaration}%
+\KOMAScript{} fügt der Ausgabe der Gliederungsnummern oberhalb von
+\Macro{the\PName{Gliederungsname}} (siehe \Macro{the\PName{Zähler}},
+\DescPageRef{maincls-experts.cmd.the/Zaehler/}) eine weitere logische Ebene
+hinzu. Die Zähler werden für die jeweilige Überschrift nicht einfach nur
+ausgegeben. Sie werden mit Hilfe der parameterlosen Anweisungen
+\Macro{partformat}, \Macro{chapterformat} bis
+\Macro{subparagraphformat}\ChangedAt{v3.17}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} formatiert.
+\OnlyAt{\Class{scrbook}\and \Class{scrreprt}}Die Anweisung
+\Macro{chapterformat} existiert, wie bereits \Macro{thechapter},
+selbstverständlich nicht in der Klasse \Class{scrartcl}, sondern nur in den
+Klassen \Class{scrbook} und \Class{scrreprt}.
+
+Wie bereits bei Option \DescRef{\LabelBase.option.numbers}%
+\important{\DescRef{\LabelBase.option.numbers}} am Anfang dieses Abschnitts
+(siehe \DescPageRef{\LabelBase.option.numbers}) erläutert wurde, müssen gemäß
+\cite{DUDEN} die Gliederungsnummern je nach Gliederung mit einem nachfolgenden
+Punkt versehen werden oder dieser hat zu entfallen. Die Anweisung
+\Macro{autodot} ist bei {\KOMAScript} für die Einhaltung dieser Regel
+verantwortlich. Auf den Punkt folgt bei allen Gliederungsebenen außer
+\DescRef{\LabelBase.cmd.part} noch ein \Macro{enskip}. Dies entspricht einem
+Leerraum von 0,5\Unit{em}, also einem Halbgeviert.
+
+Die Anweisung
+\Macro{othersectionlevelsformat}\ChangedAt{v3.17}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} wird seit \KOMAScript~3.17 nur noch
+in Ausnahmefällen verwendet, wenn für eine Gliederungsebene keine
+Format-Anweisung definiert oder diese \Macro{relax} ist, was jedoch in der
+Voreinstellung für die Gliederungsebenen von KOMA-Script nicht zutrifft. Daher
+wird sie auch nicht mehr offiziell dokumentiert. Bei einer
+Kompatibilitätseinstellung zu Versionen vor
+3.17\important{\OptionValueRef{\LabelBase}{version}{3.17}} (siehe Option
+\DescRef{\LabelBase.option.version},
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}) haben hingegen die Anweisungen
+\Macro{sectionformat} bis \Macro{subparagraphformat} keine interne
+Funktion. Stattdessen wird für diese Ebenen dann weiterhin
+\Macro{othersectionlevelsformat} verwendet.
+
+Mit Hilfe von \Macro{renewcommand} kann jede der
+Formatierungsanweisungen umdefiniert werden, um sie eigenen Anforderungen
+anzupassen. Nachfolgend finden Sie einige Definitionen, die denen aus den
+{\KOMAScript}-Klassen entsprechen:
+\begin{lstcode}
+ \newcommand*{\partformat}{\partname~\thepart\autodot}
+ \newcommand*{\chapterformat}{%
+ \mbox{\chapappifchapterprefix{\nobreakspace}\thechapter
+ \autodot\IfUsePrefixLine{}{\enskip}}}
+ \newcommand*{\sectionformat}{\thesection\autodot\enskip}
+ \newcommand*{\subsectionformat}{%
+ \thesubsection\autodot\enskip}
+ \newcommand*{\subsubsectionformat}{%
+ \thesubsubsection\autodot\enskip}
+ \newcommand*{\paragraphformat}{\theparagraph\autodot\enskip}
+ \newcommand*{\subparagraphformat}{%
+ \thesubparagraph\autodot\enskip}
+ \newcommand*{\othersectionlevelsformat}[3]{%
+ #3\autodot\enskip}
+\end{lstcode}
+
+Wegen\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}} der Verwendung
+von \Macro{IfUsePrefixLine} sollte die Anweisung \Macro{chapterformat} nicht
+außerhalb von \DescRef{\LabelBase.cmd.chapter} verwendet
+werden. \Macro{IfUsePrefixLine} ist nur innerhalb der Gliederungsbefehle von
+\KOMAScript{} wohldefiniert. Dort wird dann im Falle der Verwendung einer
+Präfixzeile für die Nummer der Überschrift der \PName{Dann-Teil} ausgeführt,
+während im anderen Fall der \PName{Sonst-Teil} zur Ausführung kommt.
+
+Bitte\textnote{Achtung!} beachten Sie außerdem, dass bei der Umdefinierung
+selbstverständlich \Macro{newcommand} durch \Macro{renewcommand} zu ersetzen
+ist.
+
+\begin{Example}
+ Angenommen, Sie wollen, dass bei \DescRef{\LabelBase.cmd.part} das Wort
+ »Teil« vor der Nummer nicht ausgegeben wird. Dann können Sie beispielsweise
+ folgende Anweisung in die Präambel Ihres Dokuments schreiben:
+\begin{lstcode}
+ \renewcommand*{\partformat}{\thepart\autodot}
+\end{lstcode}
+ Genau genommen könnten Sie an dieser Stelle auch auf \Macro{autodot}
+ verzichten und stattdessen einen festen Punkt setzen. Da
+ \DescRef{\LabelBase.cmd.part} mit römischen Zahlen nummeriert wird, muss der
+ Punkt laut \cite{DUDEN} folgen. Allerdings bringen Sie sich dann um die
+ Möglichkeit, die Option \DescRef{\LabelBase.option.numbers}%
+ \important{\DescRef{\LabelBase.option.numbers}} einzusetzen und so von der
+ Regel abzuweichen. Näheres zu der Option siehe
+ \DescPageRef{\LabelBase.option.numbers}.
+
+ Eine weitere Möglichkeit besteht darin, die Nummerierung der Abschnitte
+ so in den Rand zu platzieren, dass der Überschriftentext
+ links mit dem umgebenden Text abschließt. Dies erreicht man
+ mit:
+\begin{lstcode}
+ \renewcommand*{\sectionformat}{%
+ \makebox[0pt][r]{\thesection\autodot\enskip}}
+ \renewcommand*{\subsectionformat}{%
+ \makebox[0pt][r]{\thesubsection\autodot\enskip}}
+ \renewcommand*{\subsubsectionformat}{%
+ \makebox[0pt][r]{%
+ \thesubsubsection\autodot\enskip}}
+ \renewcommand*{\paragraphformat}{%
+ \makebox[0pt][r]{\theparagraph\autodot\enskip}}
+ \renewcommand*{\paragraphformat}{%
+ \makebox[0pt][r]{%
+ \thesubparagraph\autodot\enskip}}
+\end{lstcode}
+ Die optionalen Argumente der \Macro{makebox}-Anweisungen fordern von
+ \LaTeX{} dabei eine Box der Breite Null, deren Inhalt rechtsbündig
+ angeordnet ist. Im Ergebnis wird der Inhalt der Box links von der aktuellen
+ Position ausgegeben.\iffree{}{ %Umbruchkorrekturtext
+ Mit diesem beliebten Trick wird vermieden, dass zunächst die Breite von
+ Nummer und Abstand ausgemessen werden muss, um dann die aktuelle Position
+ entsprechend mit \Macro{hspace} zu verändern.}
+ Näheres zu den optionalen Argumenten von \Macro{makebox} ist
+ \cite{latex:usrguide} zu entnehmen.
+\end{Example}
+
+Für Formatierungsänderungen bei den Überschriften, die über die reine Ausgabe
+der Nummer hinaus gehen, sei ausdrücklich auf
+\DescRef{maincls-experts.cmd.partlineswithprefixformat}%
+\IndexCmd{partlineswithprefixformat},
+\DescRef{maincls-experts.cmd.chapterlineswithprefixformat}%
+\IndexCmd{chapterlineswithprefixformat} und
+\DescRef{maincls-experts.cmd.chapterlinesformat}\IndexCmd{chapterlinesformat}
+sowie
+\DescRef{maincls-experts.cmd.sectionlinesformat}\IndexCmd{sectionlinesformat}
+und das zugehörige \DescRef{maincls-experts.cmd.sectioncatchphraseformat}%
+\IndexCmd{sectioncatchphraseformat} in \autoref{sec:maincls-experts.experts},
+ab \DescPageRef{maincls-experts.cmd.partlineswithprefixformat} verwiesen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{chapappifchapterprefix}\Parameter{Zusatztext}
+ \Macro{chapapp}
+\end{Declaration}%
+Diese \OnlyAt{\Class{scrbook}\and \Class{scrreprt}}%
+\ChangedAt{v2.8o}{\Class{scrbook}\and \Class{scrreprt}}%
+beiden Anweisungen werden nicht nur intern von {\KOMAScript} verwendet,
+sondern stehen auch dem Anwender zur Verfügung. Nachfolgend werden sie
+beispielsweise für die Umdefinierung anderer Anweisungen verwendet.
+
+Bei Verwendung von Option \OptionValueRef{\LabelBase}{chapterprefix}{true}%
+\important{\DescRef{\LabelBase.option.chapterprefix}} (siehe
+\DescPageRef{\LabelBase.option.chapterprefix}) setzt
+\Macro{chapappifchapterprefix} im Hauptteil des Dokuments das Wort
+»Kapitel«\Index{Kapitel>Ueberschrift=Überschrift} in der aktuellen Sprache,
+gefolgt vom \PName{Zusatztext}. Im Anhang\Index{Anhang} wird stattdessen das
+Wort »Anhang« in der aktuellen Sprache, ebenfalls gefolgt vom
+\PName{Zusatztext}, ausgegeben. Bei der Einstellung
+\OptionValueRef{\LabelBase}{chapterprefix}{false} wird hingegen nichts
+ausgegeben.
+
+Die Anweisung \Macro{chapapp} setzt immer das Wort »Kapitel«
+beziehungsweise »Anhang«. Dabei spielt die Einstellung der Option
+\DescRef{\LabelBase.option.chapterprefix} keine Rolle.
+
+Da es Kapitel nur bei den Klassen \Class{scrbook} und \Class{scrreprt}
+gibt, existieren die beiden Anweisungen auch nur bei diesen Klassen.%
+%
+\EndIndexGroup
+
+
+\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}%
+\begin{Explain}
+ Wie bereits in \autoref{sec:\LabelBase.pagestyle} erwähnt, arbeitet der
+ Seitenstil \DescRef{\LabelBase.pagestyle.headings}\IndexPagestyle{headings}%
+ \important{\DescRef{\LabelBase.pagestyle.headings}} mit automatischen
+ Kolumnentiteln\Index{Kolumnentitel>automatisch}. Dazu werden die
+ Anweisungen \Macro{chaptermark} und \Macro{sectionmark} beziehungsweise
+ \Macro{sectionmark} und \Macro{subsectionmark} entsprechend definiert.
+ Gliederungsbefehle (\DescRef{\LabelBase.cmd.chapter},
+ \DescRef{\LabelBase.cmd.section}~\dots) führen automatisch eine
+ entsprechende \Macro{\dots mark}-Anweisung aus. Der dabei übergebene
+ Parameter beinhaltet den Text der
+ Gliederungsüberschrift\Index{Ueberschriften=Überschriften}. Die zugehörige
+ Gliederungsnummer wird automatisch in der \Macro{\dots mark}-Anweisung
+ hinzugefügt. Die Formatierung erfolgt je nach Gliederungsebene mit einer der
+ drei Anweisungen \Macro{chaptermarkformat}, \Macro{sectionmarkformat} und
+ \Macro{subsectionmarkformat}.
+
+ Es ist zu beachten\textnote{Achtung!}, dass die Kolumnentitel von
+ \DescRef{\LabelBase.cmd.addchap}\IndexCmd{addchap} und
+ \DescRef{\LabelBase.cmd.addsec}\IndexCmd{addsec} ebenfalls auf
+ \Macro{chaptermark} und \Macro{sectionmark} basieren. Dabei wird aber lokal
+ der Zähler \DescRef{\LabelBase.counter.secnumdepth} auf einen Wert gesetzt,
+ mit dem die Nummerierung von Kapiteln beziehungsweise Abschnitten
+ abgeschaltet wird. Dies sollte man beispielsweise bei der Umdefinierung von
+ \Macro{chaptermark} und \Macro{sectionmark} berücksichtigen (siehe
+ \Macro{ifnumbered} auf \DescPageRef{\LabelBase.cmd.ifnumbered}). Für die
+ Sternformen \DescRef{\LabelBase.cmd.addchap*} und
+ \DescRef{\LabelBase.cmd.addsec*} existieren außerdem die Anweisungen
+ \Macro{addchapmark} und \Macro{addsecmark}, die in der Voreinstellung
+ ebenfalls in der genannten Weise definiert sind.
+
+ 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}. Bei Verwendung des
+ Pakets \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ \IndexPackage{scrlayer-scrpage} ändert sich dies jedoch (siehe
+ \autoref{cha:scrlayer-scrpage}).
+\end{Explain}
+So wie mit \DescRef{\LabelBase.cmd.partformat} bis
+\DescRef{\LabelBase.cmd.subparagraphformat} die Nummern der
+Gliederungsüberschriften formatiert ausgegeben werden, werden entsprechend mit
+\Macro{chaptermarkformat}, \Macro{sectionmarkformat} und
+\Macro{subsectionmarkformat} die Nummern der Gliederungsebenen in den
+automatischen Kolumnentiteln formatiert ausgegeben. Mit \Macro{renewcommand}
+können sie eigenen Anforderungen angepasst werden. Die Originaldefinitionen
+aus den {\KOMAScript}-Klassen sind:
+\begin{lstcode}
+ \newcommand*{\chaptermarkformat}{%
+ \chapappifchapterprefix{\ }\thechapter\autodot\enskip}
+ \newcommand*{\sectionmarkformat}{%
+ \thesection\autodot\enskip}
+ \newcommand*{\subsectionmarkformat}{%
+ \thesubsection\autodot\enskip}
+\end{lstcode}
+\begin{Example}
+ Angenommen, Sie wollen, dass der Kapitelnummer in den Kolumnentiteln
+ das Wort »Kapitel« vorangestellt wird. Dann setzen Sie
+ beispielsweise diese Definition in die Präambel Ihres Dokuments:
+\begin{lstcode}
+ \renewcommand*{\chaptermarkformat}{%
+ \chapapp~\thechapter\autodot\enskip}
+\end{lstcode}
+\end{Example}
+Wie Sie sehen, finden hier die beiden Anweisungen
+\DescRef{\LabelBase.cmd.chapapp} und
+\DescRef{\LabelBase.cmd.chapappifchapterprefix} Verwendung, die weiter oben
+erklärt wurden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Counter{secnumdepth}
+ \Macro{partnumdepth}
+ \Macro{chapternumdepth}
+ \Macro{sectionnumdepth}
+ \Macro{subsectionnumdepth}
+ \Macro{subsubsectionnumdepth}
+ \Macro{paragraphnumdepth}
+ \Macro{subparagraphnumdepth}
+\end{Declaration}%
+\BeginIndex{}{Nummerierung}%
+Normalerweise werden bei den Klassen \Class{scrbook}\IndexClass{scrbook} und
+\Class{scrreprt}\IndexClass{scrreprt} die Gliederungsebenen
+\DescRef{\LabelBase.cmd.part}\IndexCmd{part}\IndexCmd{chapter}%
+\IndexCmd{section} bis
+\DescRef{\LabelBase.cmd.subsection}\IndexCmd{subsection} und bei der Klasse
+\Class{scrartcl}\IndexClass{scrartcl} die Ebenen \DescRef{\LabelBase.cmd.part}
+bis \DescRef{\LabelBase.cmd.subsubsection}\IndexCmd{subsubsection}
+nummeriert. Gesteuert wird dies ü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\textnote{Achtung!} Zähler \Counter{secnumdepth} ist nicht zu verwechseln
+mit dem Zähler \DescRef{\LabelBase.counter.tocdepth} (siehe
+\autoref{sec:\LabelBase.toc}, \DescPageRef{\LabelBase.counter.tocdepth}). Auch
+sind die Werte je nach Klasse nicht eins zu eins übertragbar.%
+%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{ifnumbered}\Parameter{Gliederungsebene}%
+ \Parameter{Dann-Teil}\Parameter{Else-Teil}
+ \Macro{ifunnumbered}\Parameter{Gliederungsebene}%
+ \Parameter{Dann-Teil}\Parameter{Else-Teil}
+\end{Declaration}
+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 \DescRef{\LabelBase.cmd.chaptermark}\IndexCmd{chaptermark} beim Seitenstil
+\DescRef{\LabelBase.pagestyle.headings}\IndexPagestyle{headings}. Dadurch wird
+indirekt auch sichergestellt, dass Überschriften mit
+\DescRef{\LabelBase.cmd.addchap} den Kolumnentitel nicht mit einer Nummer
+versehen (siehe auch \DescRef{\LabelBase.cmd.addchapmark},
+\DescPageRef{\LabelBase.cmd.addchapmark}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setpartpreamble}%
+ \OParameter{Position}\OParameter{Breite}\Parameter{Präambel}
+ \Macro{setchapterpreamble}%
+ \OParameter{Position}\OParameter{Breite}\Parameter{Präambel}
+\end{Declaration}%
+\OnlyAt{\Class{scrbook}\and
+ \Class{scrreprt}}Teile\Index{Teil>Praeambel=Präambel} und
+Kapitel\Index{Kapitel>Praeambel=Präambel} können bei {\KOMAScript} mit einer
+\PName{Präambel} versehen werden. Dies ist insbesondere im zweispaltigen
+Layout mit der Klassenoption \Option{twocolumn}\IndexOption{twocolumn}
+nützlich, da die \PName{Präambel} zusammen mit der Überschrift einspaltig
+gesetzt wird. Die \PName{Präambel} kann auch mehrere Absätze beinhalten. Die
+Anweisung zum Setzen der \PName{Präambel} muss vor der jeweiligen
+\DescRef{\LabelBase.cmd.part}- oder \DescRef{\LabelBase.cmd.addpart}-
+bzw. \DescRef{\LabelBase.cmd.chapter}- oder
+\DescRef{\LabelBase.cmd.addchap}-Anweisung stehen.
+\begin{Example}
+ Sie schreiben einen Bericht über den Zustand einer Firma. Dabei
+ organisieren Sie den Bericht so, dass jeder Abteilung ein eigener
+ Teilbericht spendiert wird. Jedem dieser Teile soll außerdem eine
+ Zusammenfassung vorangestellt werden. Diese Zusammenfassung soll auf
+ der Titelseite jedes Teils stehen. Das ist wie folgt möglich:
+\begin{lstcode}
+ \setpartpreamble{%
+ \begin{abstract}
+ Dies ist ein Blindtext zur Demonstration.
+ \end{abstract}}
+ \part{Abteilung Grünschnitt}
+\end{lstcode}
+ Je nach Einstellung der Optionen für die
+ Überschriftengröße\Index{Ueberschriften=Überschriften} (siehe
+ \DescPageRef{\LabelBase.option.headings}) und der Optionen für die Form
+ der \DescRef{\LabelBase.env.abstract}-Umgebung\IndexEnv{abstract} (siehe
+ \autoref{sec:\LabelBase.abstract}, \DescPageRef{\LabelBase.option.abstract}),
+ sieht das Ergebnis ungefähr wie folgt aus:
+ \begin{ShowOutput}\centering
+ {\LARGE\usekomafont{disposition} Teil III.\par\vspace{14pt}}
+ {\LARGE\usekomafont{disposition} Abteilung Grünschnitt\strut\par}
+ \begin{quote}\small
+ \vspace{4ex}
+ \begin{center}
+ \usekomafont{disposition}\abstractname
+ \end{center}
+ \vspace{2ex}
+ Dies ist ein Blindtext zur Demonstration.
+ \end{quote}
+ \end{ShowOutput}
+\end{Example}
+Bitte\textnote{Achtung!} beachten Sie, dass Sie für die Abstände der Präambel
+zur Teilüberschrift bzw. zum Kapiteltext selbst verantwortlich sind. Bitte
+beachten Sie auch, dass die \DescRef{\LabelBase.env.abstract}-Umgebung bei der
+Klasse \Class{scrbook} nicht existiert (siehe \autoref{sec:\LabelBase.abstract},
+\DescPageRef{\LabelBase.env.abstract}).
+
+Das\ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}} erste
+optionale Argument \PName{Position} bestimmt über ein bis zwei
+Buchstaben die Position, an der die Präambel ausgegeben wird. Für die
+vertikale Position existieren derzeit zwei Möglichkeiten:
+%\iffree{}{\pagebreak}% Umbruchoptimierung
+\begin{labeling}[~--]{\quad\PValue{o}}\itemsep=-\parsep
+\item [\quad\PValue{o}] über der Überschrift
+\item [\quad\PValue{u}] unter der Überschrift
+\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
+\end{labeling}
+Dabei wird allerdings nicht der Text der \PName{Präambel} entsprechend
+angeordnet, sondern eine Box, deren Breite durch das zweite optionale
+Argument \PName{Breite} bestimmt wird. Wird auf das zweite optionale
+Argument verzichtet, so wird stattdessen die gesamte Textbreite
+verwendet. Damit bleibt die Option zur horizontalen Positionierung in
+diesem Fall wirkungslos. Es kann jeweils ein Buchstabe für die
+vertikale mit einem Buchstaben für die horizontale Anordnung
+kombiniert werden.
+
+Eine häufigere Anwendung von \Macro{setchapterpreamble} dürfte ein Spruch oder
+Zitat zu einer Überschrift sein. Die dazu verwendbare Anweisung
+\DescRef{\LabelBase.cmd.dictum}\IndexCmd{dictum} ist im nachfolgenden
+Abschnitt erläutert. Dort findet sich auch ein entsprechendes Beispiel.
+
+Bitte\textnote{Achtung!} beachten Sie, dass \PName{Präambel} bei der
+Platzierung über der Überschrift in den dort vorhandenen freien Platz gesetzt
+wird. Die Überschrift wird dabei nicht nach unten verschoben. Der Anwender ist
+also selbst dafür verantwortlich dass \PName{Präambel} nicht zu groß ist und
+der vorhandene freie Platz über der Überschrift genügt. Siehe dazu auch
+Einstellung \Option{beforeskip} für
+\DescRef{maincls-experts.cmd.RedeclareSectionCommand} in
+\autoref{sec:maincls-experts.experts},
+\autoref{tab:maincls-experts.declarechapterstyle.keys},
+\autopageref{tab:maincls-experts.declarechapterstyle.keys}.
+%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{dictum}% \section{Schlauer Spruch}
+
+\LoadCommonFile{lists}% \section{Listen}
+
+\section{Mathematik}
+\seclabel{math}%
+\BeginIndexGroup
+\BeginIndex{}{Mathematik}%
+\BeginIndex{}{Formeln}%
+\BeginIndex{}{Gleichungen}%
+
+Die \KOMAScript-Klassen stellen keine eigenen Umgebungen für mathematische
+Formeln, Gleichungssysteme oder ähnliche Elemente der Mathematik
+bereit. Stattdessen stützt sich \KOMAScript{} im Bereich der Mathematik voll
+und ganz auf den \LaTeX-Kern. Dies gilt auch für die Realisierung der beiden
+Optionen \DescRef{\LabelBase.option.leqno} und
+\DescRef{\LabelBase.option.fleqn}.
+
+Auf eine Beschreibung der Mathematikumgebungen des \LaTeX-Kerns, also
+\Environment{displaymath}\IndexEnv{displaymath},
+\Environment{equation}\IndexEnv{equation} und
+\Environment{eqnarray}\IndexEnv{eqnarray}, wird an dieser Stelle
+verzichtet. Wer diese verwenden möchte, sei auf \cite{l2kurz} verwiesen. Für
+mehr als nur einfachste mathematische Formeln und Gleichungen sei jedoch
+die Verwendung von Paket \Package{amsmath}\textnote{Tipp!} empfohlen (siehe
+\cite{package:amsmath}).%
+
+\begin{Declaration}
+ \Option{leqno}
+\end{Declaration}%
+Gleichungen\Index{Gleichungen>Nummern} werden normalerweise auf der rechten
+Seite nummeriert. Mit Hilfe der Standardoption \Option{leqno} wird die
+Standardoptionsdatei \File{leqno.clo} geladen. Dadurch erfolgt die
+Nummerierung von Gleichungen links. Diese Option ist als optionales
+Argument\textnote{Achtung!} von \DescRef{\LabelBase.cmd.documentclass} zu
+verwenden. Eine Einstellung per \DescRef{\LabelBase.cmd.KOMAoptions} oder
+\DescRef{\LabelBase.cmd.KOMAoption} wird nicht unterstützt. Dies wäre auch
+deshalb nicht sinnvoll, weil das für den Mathematiksatz empfohlene Paket
+\Package{amsmath} ebenfalls nur beim Laden, nicht aber zur Laufzeit auf diese
+Option reagieren kann.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{fleqn}
+\end{Declaration}%
+Gleichungen\Index{Gleichungen>Ausrichtung} werden normalerweise horizontal
+zentriert ausgegeben. Mit Hilfe der Standardoption \Option{fleqn} wird die
+Standardoptionsdatei \File{fleqn.clo} geladen. Dadurch erfolgt die Ausgabe von
+Gleichungen linksbündig. Diese Option ist als optionales
+Argument\textnote{Achtung!} von \DescRef{\LabelBase.cmd.documentclass} zu
+verwenden. Eine Einstellung per \DescRef{\LabelBase.cmd.KOMAoptions} oder
+\DescRef{\LabelBase.cmd.KOMAoption} wird nicht unterstützt. Dies wäre auch
+deshalb nicht sinnvoll, weil das für den Mathematiksatz empfohlene Paket
+\Package{amsmath} ebenfalls nur beim Laden, nicht aber zur Laufzeit auf diese
+Option reagieren kann.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Gleitumgebungen für Tabellen und Abbildungen}
+\seclabel{floats}
+\BeginIndexGroup
+\BeginIndex{}{Gleitumgebungen}
+\BeginIndex{}{Tabellen}
+\BeginIndex{}{Abbildungen}
+
+{\LaTeX} bietet mit den Gleitumgebungen einen sehr leistungsfähigen und
+komfortablen Mechanismus für die automatische Anordnung von Abbildungen und
+Tabellen. Genau genommen sollte von »Tafeln«\Index{Tafeln} statt von
+»Tabellen« die Rede sein. Dies wäre auch zur Unterscheidung der Umgebungen
+\Environment{table}\IndexEnv{table} und
+\Environment{tabular}\IndexEnv{tabular} von Vorteil. Es hat sich im Deutschen
+aber für beides die Bezeichnung »Tabelle« eingebürgert. Das kommt vermutlich
+daher, dass man in \Environment{table}-Umgebungen üblicherweise
+\Environment{tabular}-Umgebungen setzt, auch wenn dies keineswegs zwingend
+ist.
+
+Häufig\textnote{Achtung!} werden die Gleitumgebungen von Anfängern nicht
+richtig verstanden. So wird oft die Forderung aufgestellt, eine Tabelle oder
+Abbildung genau an einer bestimmten Position im Text zu setzen. Dies ist
+jedoch nicht erforderlich, da auf Gleitumgebungen im Text über eine Referenz
+verwiesen wird. Es ist auch nicht sinnvoll, da ein solches Objekt an einer
+Stelle nur dann gesetzt werden kann, wenn auf der Seite noch genügend Platz
+für das Objekt vorhanden ist. Ist dies nicht der Fall, müsste das Objekt auf
+die nächste Seite umbrochen werden und auf der aktuellen Seite würde ein
+möglicherweise sehr großer leerer Raum bleiben.
+
+Häufig\textnote{Achtung!} findet sich in einem Dokument auch bei jedem
+Gleitobjekt das gleiche optionale Argument zur Platzierung des Objekts. Auch
+dies ist nicht sinnvoll. In solchen Fällen sollte man besser den Standardwert
+global ändern. Näheres dazu ist \cite{DANTE:FAQ} zu entnehmen.
+
+\iffree{}{\pagebreak[3]}% Umbruchoptimierung!!!
+Ein\textnote{Achtung!} wichtiger Hinweis sei diesem Abschnitt noch
+vorangestellt: Die meisten Mechanismen, die hier vorgestellt werden und über
+die Fähigkeiten der Standardklassen hinaus gehen, funktionieren nicht mehr,
+wenn Sie ein Paket verwenden, das in die Generierung von Tabellen- und
+Abbildungstiteln eingreift und deren Aussehen verändert. Dies sollte
+selbstverständlich sein, wird aber leider häufig nicht bedacht.
+
+
+\begin{Declaration}
+ \OptionVName{captions}{Einstellung}
+\end{Declaration}
+Bei den Standardklassen werden die Titel von Gleitumgebungen, die mit der
+Anweisung \DescRef{\LabelBase.cmd.caption}\IndexCmd{caption} (siehe unten)
+gesetzt werden, als Unterschrift formatiert. Darüber hinaus wird zwischen
+ein"~ und mehrzeiligen Unterschriften unterschieden, wobei einzeilige
+Unterschriften horizontal zentriert werden.
+
+\leavevmode\LabelOptionValue{captions}{tableheading}\nobreak%
+Tabellen werden jedoch häufig mit
+Überschriften\important{\OptionValue{captions}{tableheading}} 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 auf der ersten Seite wissen, worum es sich handelt. Darüber
+hinaus werden 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{} bietet daher mit der Einstellung
+\OptionValue{captions}{tableheading}%
+\IndexOption{captions~=\textKValue{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
+automatischen Seitenumbruch von Tabellen werden außerdem Zusatzpakete wie
+\Package{longtable}\IndexPackage{longtable} (siehe \cite{package:longtable})
+oder \Package{supertabular}\IndexPackage{supertabular} (siehe
+\cite{package:supertabular}) benötigt.
+
+Mit\important{\OptionValue{captions}{tablesignature}}
+der Einstellung
+\OptionValue{captions}{tablesignature}%
+\IndexOption{captions~=\textKValue{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"~
+oder Unterschrift gesetzt wird, hängt bei den Gleitumgebungen von
+\KOMAScript{} allein vom Ort ab, an dem die Anweisung
+\DescRef{\LabelBase.cmd.caption} verwendet wird. Dies ändert sich jedoch bei
+Verwendung des Pakets \Package{float}\IndexPackage{float} mit der Anweisung
+\Macro{restylefloat}\IndexCmd{restylefloat}\important{\Macro{restylefloat}}
+(siehe \cite{package:float}).
+
+Natürlich\important{\OptionValue{captions}{figureheading}\\
+ \OptionValue{captions}{figuresignature}}
+existiert\ChangedAt{v3.09}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} mit den Optionen \OptionValue{captions}{figureheading}%
+\IndexOption{captions~=\textKValue{figureheading}} und
+\OptionValue{captions}{figuresignature}%
+\IndexOption{captions~=\textKValue{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 Fällen dürfte es daher
+sinnvoll sein, nur bei Abbildungen die Formatierung von Unterschriften in
+Überschriften zu ändern.
+
+Manchmal wird jedoch gewünscht, alle Gleitumgebungen mit Überschriften zu
+versehen. Daher gibt es bei \KOMAScript{} die Einstellungen\important{%
+ \OptionValue{captions}{heading}\\
+ \OptionValue{captions}{signature}} \OptionValue{captions}{heading}%
+\IndexOption{captions~=\textKValue{heading}} und
+\OptionValue{captions}{signature}\IndexOption{captions~=\textKValue{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
+Unterschriften oder Überschriften nicht mehr funktionieren, sobald Sie
+\Macro{restylefloat} auf Tabellen oder Abbildungen anwenden. Näheres zum
+\Package{float}-Paket und \Macro{restylefloat} entnehmen Sie bitte
+\cite{package:float}. Dies gilt ebenso für \DescRef{\LabelBase.cmd.caption}
+innerhalb von neuen Gleitumgebungen, die mit \Package{float} definiert
+wurden. Zusätzliche Unterstützung, die \KOMAScript{} bei Verwendung des
+\Package{float}-Pakets bietet, finden Sie bei der Erklärung zu
+\PValue{komaabove} (siehe \DescPageRef{\LabelBase.floatstyle.komaabove}). Als
+Alternative zu \Package{float} sei auch die Verwendung von
+\DescRef{\LabelBase.cmd.captionof} (siehe
+\DescPageRef{\LabelBase.cmd.captionof}) und
+\DescRef{tocbasic.cmd.DeclareNewTOC} (siehe
+\DescPageRef{tocbasic.cmd.DeclareNewTOC}) erwähnt. Darüber hinaus sei bei
+Verwendung von \Package{float} ausdrücklich Paket
+\hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
+\important{\hyperref[cha:scrhack]{\Package{scrhack}}} (siehe
+\autoref{cha:scrhack} ab \autopageref{cha:scrhack} in
+\autoref{part:forExperts}) empfohlen.
+
+\leavevmode\LabelOptionValue{captions}{nooneline}\nobreak
+Bei\important{\OptionValue{captions}{nooneline}} \KOMAScript{} besteht darüber
+hinaus auch die Möglichkeit, mit der Einstellung
+\OptionValue{captions}{nooneline}\IndexOption{captions~=\textKValue{nooneline}}
+die Unterscheidung zwischen ein"~ und mehrzeiligen Über"~ bzw. Unterschriften
+abzuschalten. Dies ist beispielsweise dann wichtig, wenn man keine Zentrierung
+wünscht. Die\important{\OptionValue{captions}{oneline}}%
+\LabelOptionValue{captions}{oneline}
+Voreinstellung\textnote{Voreinstellung}, bei der einzeilige Über"~ und
+Unterschriften automatisch horizontal zentriert werden, entspricht der
+Einstellung \OptionValue{captions}{oneline}.
+
+Als Besonderheit bietet \KOMAScript{} innerhalb von Gleitumgebungen die
+Möglichkeit, den Titel statt als Über"~ oder Unterschrift neben den
+eigentlichen Inhalt zu
+setzen. Die\important{\DescRef{\LabelBase.env.captionbeside}} dazu notwendige
+Umgebung \DescRef{\LabelBase.env.captionbeside}\IndexEnv{captionbeside} ist ab
+\DescPageRef{\LabelBase.env.captionbeside} erklärt. Die Einstellungen für
+diese Umgebung können ebenfalls mit der Option \Option{captions} geändert
+werden. Die dabei möglichen Werte für die jeweilige \PName{Einstellung} sind
+\autoref{tab:maincls.captions} zu entnehmen.
+%
+\iffree{}{% Umbruchoptimierung!!!!
+ \enlargethispage*{\dp\strutbox}}%
+\begin{desclist}
+ \desccaption[{Mögliche Werte für Option \Option{captions}}]{M%
+ ögliche Werte für Option \Option{captions} zur Einstellung der
+ Formatierung von Über"~ und Unterschriften in
+ Gleitumgebungen\label{tab:maincls.captions}%
+ }{%
+ Mögliche Werte für Option \Option{captions} (\emph{Fortsetzung})%
+ }%
+ \entry{\PValue{bottombeside}, \PValue{besidebottom}}{%
+ Gleitumgebungstitel der Umgebung \DescRef{\LabelBase.env.captionbeside}
+ (siehe \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) werden mit der untersten
+ Grundlinie auf Höhe der untersten Grundlinie des Inhalts der Gleitumgebung
+ ausgerichtet.%
+ \IndexOption{captions~=\textKValue{bottombeside}}}%
+ \entry{\PValue{centeredbeside}, \PValue{besidecentered},
+ \PValue{middlebeside}, \PValue{besidemiddle}}{%
+ Gleitumgebungstitel der Umgebung \DescRef{\LabelBase.env.captionbeside}
+ (siehe \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) werden zum Inhalt der
+ Gleitumgebung vertikal zentriert ausgerichtet.%
+ \IndexOption{captions~=\textKValue{centeredbeside}}}%
+ \entry{\PValue{figureheading}, \PValue{figureabove}, \PValue{abovefigure},
+ \PValue{topatfigure}%
+ \IndexOption{captions~=\textKValue{figureheading}}}{%
+ \ChangedAt{v3.09}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Bei Abbildungen wird (gegebenenfalls abweichend von
+ \OptionValue{captions}{signature}) die Formatierung als Überschrift
+ gewählt.}%
+ \entry{\PValue{figuresignature}, \PValue{figurebelow}, \PValue{belowfigure},
+ \PValue{bottomatfigure}%
+ \IndexOption{captions~=\textKValue{figuresignature}}}{%
+ \ChangedAt{v3.09}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Bei Abbildungen wird (gegebenenfalls abweichend von
+ \OptionValue{captions}{heading}) die Formatierung als Unterschrift
+ gewählt.}%
+ \entry{\PValue{heading}, \PValue{above}, \PValue{top}%
+ \IndexOption{captions~=\textKValue{heading}}}{%
+ Gleitumgebungstitel\ChangedAt{v3.09}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} werden als Überschriften
+ formatiert. Dies hat jedoch keinen Einfluss darauf, ob sie über oder unter
+ der Gleitumgebung platziert werden. Die Option impliziert auch
+ \OptionValue{captions}{tableheading} und
+ \OptionValue{captions}{figureheading}.}%
+ \entry{\PValue{innerbeside},
+ \PValue{besideinner}\IndexOption{captions~=\textKValue{innerbeside}}}{%
+ Gleitumgebungstitel der Umgebung \DescRef{\LabelBase.env.captionbeside}
+ (siehe \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) werden bei doppelseitigem Satz
+ in der Voreinstellung innen neben dem Inhalt der Gleitumgebung
+ gesetzt. Dies entspricht im einseitigen Satz
+ \OptionValue{captions}{leftbeside}.}%
+ \entry{\PValue{leftbeside},
+ \PValue{besideleft}\IndexOption{captions~=\textKValue{leftbeside}}}{%
+ Gleitumgebungstitel der Umgebung \DescRef{\LabelBase.env.captionbeside}
+ (siehe \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) werden in der Voreinstellung
+ links neben dem Inhalt der Gleitumgebung gesetzt.}%
+ \pventry{nooneline}{%
+ Einzeilige Über"~ und Unterschriften von Gleitumgebungen werden nicht
+ gesondert, sondern genau wie mehrzeilige behandelt.%
+ \IndexOption{captions~=\textKValue{nooneline}}}%
+ \pventry{oneline}{%
+ Einzeilige Über"~ und Unterschriften von Gleitumgebungen werden gesondert
+ behandelt, um sie horizontal zu zentrieren.%
+ \IndexOption{captions~=\textKValue{oneline}}}%
+ \entry{\PValue{outerbeside}, \PValue{besideouter}%
+ \IndexOption{captions~=\textKValue{outerbeside}}}{%
+ Gleitumgebungstitel der Umgebung \DescRef{\LabelBase.env.captionbeside}
+ (siehe \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) werden bei doppelseitigem Satz
+ in der Voreinstellung außen neben dem Inhalt der Gleitumgebung
+ gesetzt. Dies entspricht im einseitigen Satz
+ \OptionValue{captions}{rightbeside}.}%
+ \entry{\PValue{rightbeside}, \PValue{besideright}%
+ \IndexOption{captions~=\textKValue{rightbeside}}}{%
+ Gleitumgebungstitel der Umgebung \DescRef{\LabelBase.env.captionbeside}
+ (siehe \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) werden in der Voreinstellung
+ rechts neben dem Inhalt der Gleitumgebung gesetzt.}%
+ \entry{\PValue{signature}, \PValue{below}, \PValue{bot}, \PValue{bottom}%
+ \IndexOption{captions~=\textKValue{signature}}}{%
+ \ChangedAt{v3.09}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Gleitumgebungstitel werden als Unterschriften formatiert. Dies hat jedoch
+ keinen Einfluss darauf, ob sie über oder unter der Gleitumgebung platziert
+ werden. Die Option impliziert auch \OptionValue{captions}{tablesignature}
+ und \OptionValue{captions}{figuresignature}.}%
+ \entry{\PValue{tableheading}, \PValue{tableabove}, \PValue{abovetable},
+ \PValue{abovetabular}, \PValue{topattable}%
+ \IndexOption{captions~=\textKValue{tableheading}}}{%
+ Bei Tabellen wird (gegebenenfalls abweichend von
+ \OptionValue{captions}{signature}) die Formatierung als Überschrift
+ gewählt.}%
+ \entry{\PValue{tablesignature}, \PValue{belowtable}, \PValue{belowtabular},
+ \PValue{bottomattable}%
+ \IndexOption{captions~=\textKValue{tablesignature}}}{%
+ Bei Tabellen wird (gegebenenfalls abweichend von
+ \OptionValue{captions}{heading}) die Formatierung als Unterschrift
+ gewählt.}%
+ \entry{\PValue{topbeside}, \PValue{besidetop}}{%
+ Gleitumgebungstitel der Umgebung \DescRef{\LabelBase.env.captionbeside}
+ (siehe \autoref{sec:\LabelBase.floats},
+ \DescPageRef{\LabelBase.env.captionbeside}) werden mit der obersten
+ Grundlinie auf Höhe der obersten Grundlinie des Inhalts der Gleitumgebung
+ ausgerichtet.%
+ \IndexOption{captions~=\textKValue{topbeside}}}%
+\end{desclist}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{caption}\OParameter{Verzeichniseintrag}\Parameter{Titel}
+ \Macro{captionbelow}\OParameter{Verzeichniseintrag}\Parameter{Titel}
+ \Macro{captionabove}\OParameter{Verzeichniseintrag}\Parameter{Titel}
+\end{Declaration}%
+Tabellen und Abbildungen werden bei den Standardklassen mit Hilfe der
+Anweisung \Macro{caption} mit einem \PName{Titel} in Form einer
+Unterschrift\Index{Tabellen>Unterschrift} versehen. Bei Abbildungen ist dies
+grundsätzlich korrekt. Bei Tabellen wird gestritten, ob der \PName{Titel} als
+Überschrift über oder konsistent mit der
+Bildunterschrift\Index{Bildunterschrift} unter die Tabelle gehört. Daher
+bietet \KOMAScript{}\textnote{\KOMAScript{} vs. Standardklassen} im
+Gegensatz zu den Standardklassen die Anweisungen \Macro{captionbelow} für
+\PName{Titel} in Form von Unterschriften und \Macro{captionabove} für
+\PName{Titel} in Form von Überschriften.
+
+Sowohl bei Tabellen als auch bei Abbildungen oder generell für alle
+Gleitumgebungen lässt sich das Verhalten von \Macro{caption} mit der Option
+\DescRef{\LabelBase.option.captions}\IndexOption{captions} steuern, die am
+Anfang dieses Abschnitts zu finden ist. Aus Gründen der Kompatibilität ist
+voreingestellt, dass sich \Macro{caption} bei allen Gleitumgebungen wie
+\Macro{captionbelow} verhält. Es wird jedoch empfohlen\textnote{Tipp!},
+Tabellenüberschriften zu verwenden und auf die Formatierung mit
+\OptionValueRef{\LabelBase}{captions}{tableheading} entsprechend umzustellen
+oder bei Tabellen auf \Macro{captionabove} zurück zu greifen.
+%
+\begin{Example}
+ Sie wollen mit
+ Tabellenüberschriften\Index{Tabellen>Ueberschrift=Überschrift} statt mit
+ Tabellenunterschriften arbeiten, weil Sie teilweise Tabellen haben, die über
+ mehr als eine Seite gehen. Mit den Standardklassen bliebe Ihnen nur die
+ Möglichkeit:
+\begin{lstcode}
+ \begin{table}
+ \caption{Dies ist nur eine Beispieltabelle}
+ \begin{tabular}{llll}
+ Dies & ist & ein & Beispiel.\\\hline
+ Bitte & lassen & Sie & den \\
+ Inhalt & dieser & Tabelle & unbeachtet.
+ \end{tabular}
+ \end{table}
+\end{lstcode}
+ Damit hätten Sie das unschöne Ergebnis:
+ \begin{ShowOutput}\centering
+ {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:}
+ Dies ist nur eine
+ Beispieltabelle}\\
+ \begin{tabular}{llll}
+ Dies & ist & ein & Beispiel.\\\hline
+ Bitte & lassen & Sie & den \\
+ Inhalt & dieser & Tabelle & unbeachtet.
+ \end{tabular}
+ \end{ShowOutput}
+ Bei \KOMAScript{} schreiben Sie hingegen:
+\begin{lstcode}
+ \begin{table}
+ \captionabove{Dies ist nur eine Beispieltabelle}
+ \begin{tabular}{llll}
+ Dies & ist & ein & Beispiel.\\\hline
+ Bitte & lassen & Sie & den \\
+ Inhalt & dieser & Tabelle & unbeachtet.
+ \end{tabular}
+ \end{table}
+\end{lstcode}
+ Sie erhalten dann das gewünschte Ergebnis:
+ \begin{ShowOutput}\centering
+ {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:}
+ Dies ist nur eine
+ Beispieltabelle}\\\vskip\abovecaptionskip
+ \begin{tabular}{llll}
+ Dies & ist & ein & Beispiel.\\\hline
+ Bitte & lassen & Sie & den \\
+ Inhalt & dieser & Tabelle & unbeachtet.
+ \end{tabular}
+ \end{ShowOutput}
+ Da Sie konsequent nicht nur eine, sondern alle Tabellen mit Überschriften
+ versehen, können Sie stattdessen auch die Option
+ \OptionValueRef{\LabelBase}{captions}{tableheading} setzen (siehe
+ \DescPageRef{\LabelBase.option.captions.tableheading}). Dann genügt es,
+ wenn Sie wie bei den Standardklassen \Macro{caption} verwenden. Sie
+ erhalten trotzdem das Ergebnis von \Macro{captionabove}.
+\end{Example}
+
+\BeginIndex[indexother]{}{Schrift>Art}%
+\BeginIndex{FontElement}{caption}\LabelFontElement{caption}%
+\BeginIndex{FontElement}{captionlabel}\LabelFontElement{captionlabel}%
+Die Schriftart\ChangedAt{v2.8p}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} für die
+Beschreibung und das Label~-- »Abbildung« oder »Tabelle«, gefolgt von der
+Nummer und einem Trennzeichen -- kann über die Anweisungen
+\DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
+verändert werden. Zuständig sind hier die Elemente \FontElement{caption}%
+\important[i]{\FontElement{caption}\\\FontElement{captionlabel}} und
+\FontElement{captionlabel} (siehe \autoref{tab:maincls.fontelements},
+\autopageref{tab:maincls.fontelements}). Dabei wird die Schriftart für das
+Element \FontElement{caption} zunächst auch auf das Element
+\FontElement{captionlabel} angewandt, bevor dessen spezifische Schriftart
+Anwendung findet. Die Vorbelegungen sind \autoref{tab:maincls.captionFont} zu
+entnehmen.
+%
+\begin{table}
+% \centering%
+% \caption
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}
+ \begin{captionbeside}
+ [{Schriftvoreinstellungen für die Elemente der Tabellen-
+ oder\newline Abbildungsunterschrift
+ bzw. "~überschrift}]
+ {\label{tab:maincls.captionFont}%
+ Voreinstellungen der Schrift für die Elemente der Tabellen-
+ oder Abbildungsunterschrift bzw. "~überschrift}
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Element & Voreinstellung \\
+ \midrule
+ \FontElement{caption} & \Macro{normalfont} \\
+ \FontElement{captionlabel} & \Macro{normalfont} \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+%
+\begin{Example}
+ Sie wollen, dass Tabellen- und Abbildungsbeschreibungen in einer
+ kleineren Schriftart gesetzt werden. Also setzen Sie
+ beispielsweise in der Präambel Ihres Dokuments:
+\begin{lstcode}
+ \addtokomafont{caption}{\small}
+\end{lstcode}
+ Außerdem hätten Sie gerne, dass das Label serifenlos und fett
+ gedruckt wird. Sie setzen also außerdem:
+\begin{lstcode}
+ \setkomafont{captionlabel}{\sffamily\bfseries}
+\end{lstcode}
+ Das Ergebnis wäre bei Verwendung von \DescRef{\LabelBase.cmd.addtokomafont}
+ in diesem Fall übrigens gleich.
+\end{Example}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{captionof}\Parameter{Objekttyp}\OParameter{Verzeichniseintrag}
+ \Parameter{Titel}
+ \Macro{captionaboveof}\Parameter{Objekttyp}\OParameter{Verzeichniseintrag}
+ \Parameter{Titel}
+ \Macro{captionbelowof}\Parameter{Objekttyp}\OParameter{Verzeichniseintrag}
+ \Parameter{Titel}
+\end{Declaration}
+Ähnlich wie die Pakete \Package{caption}\IndexPackage{caption} und
+\Package{capt-of}\IndexPackage{capt-of} bietet auch \KOMAScript{} die
+Anweisung \Macro{captionof}\ChangedAt{v3.05}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} mit der man auch außerhalb einer
+Gleitumgebung oder in einer fremden Gleitumgebung einen entsprechenden Titel
+mit Eintrag in das jeweilige Verzeichnis setzen kann. Dabei muss im Gegensatz
+zu \DescRef{\LabelBase.cmd.caption} die Art des Gleitobjekts als zusätzliches
+erstes Argument angegeben werden.
+
+Darüber hinaus bietet \KOMAScript{} zusätzlich auch die Anweisungen
+\Macro{captionaboveof}\ChangedAt{v3.09}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} und \Macro{captionbelowof}. Diese
+dienen als Gegenstücke zu \DescRef{\LabelBase.cmd.captionabove} und
+\DescRef{\LabelBase.cmd.captionbelow}.
+
+Selbstverständlich berücksichtigt\ChangedAt{v3.09a}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} \Macro{captionof} auch die
+Einstellungen von Option \DescRef{\LabelBase.option.captions} bezüglich der
+Formatierung des Titels als Über- oder Unterschrift. Diese Fähigkeit geht
+jedoch eventuell durch das Laden von Paketen wie
+\Package{capt-of}\IndexPackage{capt-of} oder
+\Package{caption}\IndexPackage{caption} verloren. Bei Verwendung von
+\Package{caption} ist die Anleitung zu diesem Paket zu beachten (siehe
+\cite{package:caption})!%
+\begin{Example}
+ Angenommen, Sie wollen ein Gleitobjekt erstellen, bei dem eine Tabelle und
+ eine Abbildung nebeneinander stehen. Da es keine gemischten Gleitobjekte gibt,
+ verwenden Sie primär eine \Environment{figure}-Umgebung:
+\begin{lstcode}
+ \begin{figure}
+ \begin{minipage}{.5\linewidth}
+ \centering
+ \rule{4cm}{5cm}
+ \caption{Ein Rechteck}\label{fig:rechteck}
+ \end{minipage}%
+ \begin{minipage}{.5\linewidth}
+ \centering
+ \captionaboveof{table}
+ [Maße des Rechtecks aus
+ Abbildung~\ref{fig:rechteck}]%
+ {Rechtecksmaße}
+ \label{tab:rechteck}
+ \begin{tabular}{ll}
+ Breite: & 4\,cm\\
+ Höhe: & 5\,cm
+ \end{tabular}
+ \end{minipage}
+ \end{figure}
+\end{lstcode}
+ Um Abbildung und Tabelle nebeneinander zu setzen, wurden zwei
+ \Environment{minipage}-Umgebungen verwendet. Wichtig\textnote{Achtung!} ist
+ hier das Prozentzeichen nach der ersten \Environment{minipage}, ohne das ein
+ zusätzlicher Wortabstand zwischen die beiden
+ \Environment{minipage}-Umgebungen gesetzt würde.
+
+ Die Abbildungsunterschrift wurde mit \DescRef{\LabelBase.cmd.caption}
+ gesetzt. Für die Tabellenüberschrift wurde \Macro{captionaboveof}
+ verwendet. Als erstes Argument wurde \PValue{table} angegeben. Dadurch weiß
+ \KOMAScript{}, dass es sich trotz \Environment{figure}-Umgebung um eine
+ Tabellenüberschrift handelt.
+
+ Das optionale Argument von \Macro{captionaboveof} setzt den Eintrag in das
+ Tabellenverzeichnis. Ohne das optionale Argument würde der als letztes
+ Argument angegebene Titel ebenfalls in das Tabellenverzeichnis
+ geschrieben. Während dieser Titel im Gleitobjekt selbst völlig ausreichend
+ ist, wäre er jedoch im Tabellenverzeichnis wenig aussagekräftig. Daher wird
+ hier für das Verzeichnis ein abweichender Titel über das optionale Argument
+ verwendet. Das Ergebnis der Bemühungen zeigt
+ \autoref{fig:maincls.captionaboveof}.%
+%
+\begin{figure}
+% \centering
+% \caption
+ \KOMAoptions{captions=bottombeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [{Beispiel: Verwendung von \Macro{captionaboveof} innerhalb einer
+ fremden Gleitumgebung}]
+ {\hspace{0pt plus 1ex}Verwendung von \Macro{captionaboveof} innerhalb einer
+ fremden Gleitumgebung\label{fig:maincls.captionaboveof}}
+ [l]
+ \begin{minipage}[b]{.66\linewidth}%
+ \raisebox{\depth}{\fbox{\KOMAoptions{captions=oneline}%
+ \begin{minipage}{.5\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
+ \centering
+ \rule{4cm}{5cm}
+ \caption[Beispiel: Ein Rechteck]{Ein Rechteck}\label{fig:maincls.rechteck}
+ \end{minipage}%
+ \begin{minipage}{.5\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
+ \centering
+ \captionaboveof{table}[Beispiel: Maße des Rechtecks aus
+ Abbildung~\ref{fig:maincls.rechteck}]{Rechteckmaße}
+ \label{tab:maincls.rechteck}
+ \begin{tabular}{ll}
+ Breite: & 4\,cm\\
+ Höhe: & 5\,cm
+ \end{tabular}
+ \end{minipage}}}%
+ \end{minipage}%
+ \end{captionbeside}%
+\end{figure}%
+\end{Example}%
+In gleicher Weise, wie in obigem Beispiel eine Tabelle innerhalb einer
+Abbildungsumgebung gesetzt und mit einem Titel versehen wird, könnte man auch
+eine nicht gleitende Tabelle außerhalb jeder Gleitumgebung setzen. Auch dabei
+sollte in der Regel eine \Environment{minipage} verwendet werden, um zu
+verhindern, dass zwischen Überschrift und Tabelle ein Seitenumbruch erfolgen
+kann. Zusätzlich sollte man die \Environment{minipage} dann noch in eine
+\Environment{flushleft}-Umgebung einbetten, um einerseits einen gefälligen
+Abstand zum Text davor und dahinter zu erreichen und andererseits den
+Absatzeinzug vor der \Environment{minipage} zu verhindern.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \begin{Environment}{captionbeside}
+ \OParameter{Verzeichnistitel}
+ \Parameter{Titel}
+ \OParameter{Anordnung}
+ \OParameter{Breite}
+ \OParameter{Offset}
+ \begin{Body}\BodyDots\end{Body}
+ \end{Environment}
+ \labelsuffix[*]
+ \begin{Environment}{captionbeside}
+ \OParameter{Verzeichnistitel}
+ \Parameter{Titel}
+ \OParameter{Anordnung}
+ \OParameter{Breite}
+ \OParameter{Offset}\PValue{*}
+ \begin{Body}\BodyDots\end{Body}
+ \end{Environment}
+\end{Declaration}
+Neben \ChangedAt{v2.8q}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+den Unter- und Überschriften findet man insbesondere bei kleineren Abbildungen
+häufiger Beschreibungen, die neben der Abbildung gesetzt werden. Dabei
+schließt normalerweise die Unterkante der Beschreibung mit der Unterkante der
+Abbildung ab. Natürlich kann man mit etwas Geschick und beispielsweise zwei
+\Macro{parbox}-Anweisungen dergleichen auch in den Standardklassen
+erreichen. \KOMAScript{} bietet jedoch eine spezielle Umgebung. Diese Umgebung
+kann innerhalb der Gleitumgebungen verwendet werden. Der erste optionale
+Parameter \PName{Verzeichnistitel}%
+\important{\PName{Verzeichnistitel}\\\PName{Titel}} und der obligatorische
+Parameter \PName{Titel} entsprechen genau den gleichnamigen Parametern von
+\DescRef{\LabelBase.cmd.caption}, \DescRef{\LabelBase.cmd.captionabove} oder
+\DescRef{\LabelBase.cmd.captionbelow}. Der \PName{Titel} wird neben den Inhalt
+der Umgebung gesetzt.
+
+Ob\important{\PName{Anordnung}} 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}{-1\parsep plus 1ex}%
+\item[\quad\PValue{l}] links
+\item[\quad\PValue{r}] rechts
+\item[\quad\PValue{i}] innen: auf rechten Seiten links, auf
+ linken Seiten rechts
+\item[\quad\PValue{o}] außen: auf rechten Seiten rechts, auf
+ linken Seiten links
+\end{labeling}
+Voreingestellt ist rechts neben dem Inhalt der Umgebung. Diese
+Voreinstellung\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} kann jedoch mit der Option
+\DescRef{\LabelBase.option.captions}\IndexOption{captions}%
+\important{\DescRef{\LabelBase.option.captions}} (siehe
+\DescPageRef{\LabelBase.option.captions}) und deren Werte
+\PValue{innerbeside}\IndexOption[indexmain]{captions~=\textKValue{innerbeside}},
+\PValue{leftbeside}\IndexOption[indexmain]{captions~=\textKValue{leftbeside}},
+\PValue{outerbeside}\IndexOption[indexmain]{captions~=\textKValue{outerbeside}}
+und
+\PValue{rightbeside}\IndexOption[indexmain]{captions~=\textKValue{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\important{\PName{Breite}} nehmen der Inhalt der Umgebung und der
+\PName{Titel} die gesamte verfügbare Breite ein. Es besteht jedoch die
+Möglichkeit, mit dem optionalen Parameter \PName{Breite} eine andere Breite
+anzugeben. Diese kann auch größer als die Breite des Textkörpers sein.
+
+Bei Angabe einer \PName{Breite}\important{\PName{Breite}\\\PName{Offset}} wird
+die genutzte Breite normalerweise bezüglich der Breite des Textkörpers
+zentriert. Mit dem optionalen Argument \PName{Offset} kann stattdessen eine
+Verschiebung relativ zum linken Rand angegeben werden. Ein positiver Wert
+entspricht einer Verschiebung nach rechts, ein negativer Wert einer
+Verschiebung nach links. Mit einem \PName{Offset} von 0\Unit{pt} erfolgt die
+Ausgabe linksbündig.
+
+Wird\important{\PValue{*}} hinter den optionalen Parameter \PName{Offset} noch
+ein Stern gesetzt, so stellt der \PName{Offset} im doppelseitigen Druck auf
+linken Seiten eine Verschiebung relativ zum rechten Rand dar. Ein positiver
+Wert entspricht dann einer Verschiebung nach außen, während ein negativer Wert
+für eine Verschiebung nach innen steht. Ein \PName{Offset} von 0\Unit{pt} wäre
+dann also bündig zum inneren Rand. Diese Variante benötigt unter Umständen
+zwei \LaTeX-Durchläufe, um die korrekte Verschiebung zu erreichen.
+
+Vertikal erfolgt die Ausrichtung in der Voreinstellung unten. Das bedeutet,
+dass die untere Grundlinie des Inhalts des Gleitobjekts und die untere
+Grundlinie von \PName{Titel} auf einer Höhe liegen. Diese
+Einstellung\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} kann mit der Option
+\DescRef{\LabelBase.option.captions}\IndexOption{captions}%
+\important{\DescRef{\LabelBase.option.captions}} (siehe
+\DescPageRef{\LabelBase.option.captions}) und deren Werte
+\PValue{topbeside}\IndexOption[indexmain]{captions~=\textKValue{topbeside}},
+\PValue{centeredbeside}%
+\IndexOption[indexmain]{captions~=\textKValue{centeredbeside}} und
+\PValue{bottombeside}\IndexOption[indexmain]{captions~=\textKValue{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
+ \Environment{captionbeside}-""Umgebung ist in
+ \autoref{fig:maincls.captionbeside} zu finden. Gesetzt wurde
+ diese Abbildung mit:
+\begin{lstcode}
+ \begin{figure}
+ \begin{captionbeside}%
+ [Beispiel: Bildbeschreibung daneben, unten]%
+ {Eine Bildbeschreibung weder über noch unter
+ der Abbildung, sondern unten daneben}%
+ [i][\linewidth][%
+ \dimexpr\marginparwidth+\marginparsep\relax]*
+ \fbox{%
+ \parbox[b][5\baselineskip][c]{.25\textwidth}
+ {%
+ \hspace*{\fill}\KOMAScript
+ \hspace*{\fill}\par
+ }%
+ }
+ \end{captionbeside}
+ \label{fig:maincls.captionbeside}
+ \end{figure}
+\end{lstcode}
+ \begin{figure}
+ \begin{captionbeside}[Beispiel: Bildbeschreibung daneben, unten]%
+ {Eine Bildbeschreibung weder über noch unter der Abbildung,
+ sondern unten daneben}[i][\linewidth]
+ \fbox{\parbox[b][5\baselineskip][c]{.25\textwidth}{%
+ \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}}
+ \end{captionbeside}
+ \label{fig:maincls.captionbeside}
+ \end{figure}
+ Die Gesamtbreite ist also die aktuell verfügbare Breite
+ \PValue{\Macro{linewidth}}. Diese wird jedoch um $\Length{marginparwidth}
+ + \Length{marginparsep}$ nach
+ außen verschoben. Der Titel oder die Beschreibung steht innen neben
+ 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.%
+\fi
+
+ Die Zentrierung der Bildbeschreibung mit
+\begin{lstcode}
+ \KOMAoption{captions}{centeredbeside}
+\end{lstcode}
+ 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}
+ \begin{captionbeside}[Beispiel: Bildbeschreibung daneben, mittig]%
+ {Eine Bildbeschreibung weder über noch unter der Abbildung,
+ sondern mittig daneben}[i][\linewidth]
+ \fbox{\parbox[b][5\baselineskip][c]{.25\textwidth}{%
+ \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}}
+ \end{captionbeside}
+ \label{fig:maincls.captionbesidecentered}
+ \end{figure}
+
+ Demgegenüber kann die Ausrichtung oben, die bei
+ \autoref{fig:maincls.captionbesidetop} zu sehen ist, durchaus verwendet
+ werden. Zur Verdeutlichung, wie man \Macro{raisebox} zur Verschiebung der
+ Grundlinie nutzen kann, sei hier ein komplettes Beispiel angegeben. Eine
+ solche Verschiebung kann man nicht nur bei einer Ersatzgrafik wie zuvor
+ angegeben, sondern auch beispielsweise auf \Macro{includegraphics} (siehe
+ \cite{package:graphics}) anwenden:
+\begin{lstcode}
+ \documentclass[captions=topbeside]{scrbook}
+ \usepackage[ngerman]{babel}
+ \usepackage{graphics}
+ \begin{document}
+ \chapter{Ein Beispiel}
+ \begin{figure}
+ \begin{captionbeside}%
+ [Beispiel: Bildbeschreibung daneben, oben]%
+ {Eine Bildbeschreibung oben, neben einem
+ Beispielbild aus Paket \texttt{mwe}}%
+ [i][\linewidth][%
+ \dimexpr\marginparwidth+\marginparsep\relax
+ ]*
+ \raisebox{%
+ \dimexpr\baselineskip-\totalheight\relax
+ }{%
+ \includegraphics{example-image-1x1}%
+ }%
+ \end{captionbeside}
+ \label{fig:maincls.captionbesidetop}
+ \end{figure}
+ \end{document}
+\end{lstcode}
+ \begin{figure}
+ \KOMAoption{captions}{topbeside}
+ \begin{captionbeside}[Beispiel: Bildbeschreibung daneben, oben]%
+ {Eine Bildbeschreibung weder über noch unter der Abbildung,
+ sondern oben daneben}[i][\linewidth]
+ \raisebox{\dimexpr\baselineskip-\totalheight}{%
+ \fbox{%
+ \parbox[b][5\baselineskip][c]{.25\textwidth}{%
+ \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}}%
+ }%
+ \end{captionbeside}
+ \label{fig:maincls.captionbesidetop}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \begin{Environment}{captionofbeside}
+ \Parameter{Objekttyp}
+ \OParameter{Verzeichnistitel}
+ \Parameter{Titel}
+ \OParameter{Anordnung}
+ \OParameter{Breite}
+ \OParameter{Offset}
+ \begin{Body}\BodyDots\end{Body}
+ \end{Environment}
+ \labelsuffix[*]
+ \begin{Environment}{captionofbeside}
+ \Parameter{Objekttyp}
+ \OParameter{Verzeichnistitel}
+ \Parameter{Titel}
+ \OParameter{Anordnung}
+ \OParameter{Breite}
+ \OParameter{Offset}\PValue{*}
+ \begin{Body}\BodyDots\end{Body}
+ \end{Environment}
+\end{Declaration}
+Wie\ChangedAt{v3.10}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} zu \DescRef{\LabelBase.cmd.caption} mit
+\DescRef{\LabelBase.cmd.captionof} eine Variante existiert, bei der der
+\PName{Objekttyp} nicht durch die Verwendung innerhalb einer Gleitumgebung
+dieses Typs bestimmt wird, so gibt es passend zur Umgebung
+\DescRef{\LabelBase.env.captionbeside} mit \Environment{captionofbeside} auch
+eine entsprechende Umgebung. Im Unterschied zu
+\DescRef{\LabelBase.env.captionbeside} ist auch hier der \PName{Objekttyp} als
+zusätzliches, erstes Argument anzugeben.%
+%
+\EndIndexGroup
+
+\begin{Declaration}
+ \FloatStyle{komaabove}
+ \FloatStyle{komabelow}
+\end{Declaration}%
+Bei\OnlyAt{\Package{float}} Verwendung des
+\Package{float}-Pakets\IndexPackage{float} wird das Aussehen der damit
+definierten Gleitumgebungen allein vom \emph{float}-Stil bestimmt. Dies
+schließt auch die Frage ein, ob mit Überschriften oder Unterschriften
+gearbeitet wird. Im \Package{float}-Paket gibt es keinen vordefinierten Stil,
+der im Aussehen dem von \KOMAScript{} entspricht und dieselben
+Einstellmöglichkeiten (siehe unten) bietet. \KOMAScript{} definiert deshalb
+zusätzlich die beiden Stile \PValue{komaabove} und \PValue{komabelow}. Diese
+können bei Verwendung des \Package{float}-Pakets wie die dort definierten
+Stile \PValue{plain}\IndexFloatstyle{plain},
+\PValue{boxed}\IndexFloatstyle{boxed} oder
+\PValue{ruled}\IndexFloatstyle{ruled} aktiviert werden. Siehe dazu
+\cite{package:float}. Beim Stil \PValue{komaabove} werden \DescRef{\LabelBase.cmd.caption},
+\DescRef{\LabelBase.cmd.captionabove} und \DescRef{\LabelBase.cmd.captionbelow} als Überschrift, beim Stil
+\PValue{komabelow} als Unterschrift gesetzt.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{captionformat}
+\end{Declaration}%
+Bei {\KOMAScript} gibt es verschiedene Eingriffsmöglichkeiten, um die
+Formatierung der Beschreibung zu ändern. Die Änderung der Schriftart
+wurde bereits erläutert. Das oder die Trennzeichen zwischen dem Label
+und dem eigentlichen Beschreibungstext sind im Makro
+\Macro{captionformat} abgelegt. Abweichend von allen anderen
+\Macro{\dots}format-Anweisungen ist hier also nicht der Zähler,
+sondern nur die auf den Zähler folgenden Angaben enthalten. Die
+Originaldefinition lautet:
+\begin{lstcode}
+ \newcommand*{\captionformat}{:\ }
+\end{lstcode}
+Auch diese kann mit \Macro{renewcommand} geändert werden.
+\begin{Example}
+ Aus mir unerfindlichen Gründen wollen Sie als Trennzeichen
+ keinen Doppelpunkt, gefolgt von einem Leerzeichen, sondern einen
+ Gedankenstrich einschließlich der notwendigen Leerzeichen.
+ Daher definieren Sie:
+\begin{lstcode}
+ \renewcommand*{\captionformat}{~--~}
+\end{lstcode}
+ Diese Definition sollten Sie beispielsweise in die Präambel Ihres
+ Dokuments stellen.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{figureformat}
+ \Macro{tableformat}
+\end{Declaration}%
+Es wurde schon darauf hingewiesen, dass \DescRef{\LabelBase.cmd.captionformat}
+keine Formatierung für das Label selbst enthält. Dieses sollte nun keineswegs
+über Umdefinierung der Anweisungen für die Zählerausgabe, \Macro{thefigure}
+oder \Macro{thetable}, verändert werden. Eine solche Umdefinierung hätte
+nämlich auch Auswirkungen auf die Ausgabe von \Macro{ref} oder der
+Verzeichnisse. Stattdessen bietet {\KOMAScript} auch hier zwei \Macro{\dots
+ format}-Anweisungen. Diese sind wie folgt vordefiniert:
+% Umbruchkorrektur: listings
+\begin{lstcode}
+ \newcommand*{\figureformat}{\figurename~\thefigure\autodot}
+ \newcommand*{\tableformat}{\tablename~\thetable\autodot}
+\end{lstcode}
+Sie können ebenfalls mit \Macro{renewcommand} eigenen Anforderungen
+angepasst werden.
+\begin{Example}
+ Hin und wieder wird gewünscht, dass die Beschreibungstexte ganz ohne
+ Label und natürlich auch ohne Trennzeichen ausgegeben werden. Bei
+ {\KOMAScript} genügen folgende Definitionen, um dies zu erreichen:
+\begin{lstcode}
+ \renewcommand*{\figureformat}{}
+ \renewcommand*{\tableformat}{}
+ \renewcommand*{\captionformat}{}
+\end{lstcode}
+ Dabei ist jedoch zu beachten, dass die Nummerierung damit zwar nicht
+ ausgegeben, aber dennoch fortgezählt wird. Dies ist insbesondere dann
+ von Bedeutung, wenn die Umdefinierungen nur auf einzelne
+ \Environment{figure}- oder \Environment{table}-Umgebungen angewendet
+ werden.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setcapindent}\Parameter{Einzug}
+ \Macro{setcapindent*}\Parameter{XEinzug}
+ \Macro{setcaphanging}
+\end{Declaration}%
+Wie bereits erwähnt wurde, werden in den
+Standardklassen\textnote{\KOMAScript{} vs. Standardklassen} die
+Beschreibungen nicht hängend gesetzt. Das heißt: In mehrzeiligen
+Beschreibungen beginnt die zweite Zeile direkt unter dem Labeltext.
+Es gibt bei den Standardklassen auch keinen Mechanismus, dies direkt
+zu beeinflussen. Bei {\KOMAScript} werden hingegen alle Zeilen ab der
+zweiten so weit eingerückt, dass diese nicht mehr unter dem Label,
+»Abbildung~\dots:« oder »Tabelle~\dots:«, sondern unter dem
+eigentlichen Text der ersten Zeile beginnen.
+
+Dieses Verhalten, das der Verwendung von \Macro{setcaphanging}
+entspricht, kann bei {\KOMAScript} jederzeit durch Verwendung der Anweisung
+\Macro{setcapindent} oder \Macro{setcapindent*} geändert werden. Dabei gibt
+der Parameter \PName{Einzug} an, wie weit ab der zweiten Zeile eingerückt
+werden soll. Soll nach dem Label und vor dem Beschreibungstext noch ein
+Zeilenumbruch erfolgen, so definieren Sie die Einrücktiefe \PName{XEinzug} der
+Beschreibung stattdessen mit der Sternvariante der Anweisung:
+\Macro{setcapindent*}.
+Mit einem negativen \PName{Einzug} erreicht man hingegen, dass vor der
+Beschreibung ebenfalls ein Umbruch erfolgt und nur die erste Zeile der
+Beschreibung, nicht jedoch die folgenden, um den Betrag von \PName{Einzug}
+eingerückt werden.
+
+Ob einzeilige Beschreibungen wie mehrzeilige Beschreibungen gesetzt werden
+oder eine Sonderbehandlung erfahren, wird über die Option
+\DescRef{\LabelBase.option.captions} gewählt. Siehe hierzu die Erklärung zu
+den Werten \PValue{oneline} und \PValue{nooneline} dieser Option auf
+\DescPageRef{\LabelBase.option.captions.oneline}.
+
+\begin{Example}
+ Die Abbildungen~\ref{fig:maincls.caption.first} bis
+ \ref{fig:maincls.caption.last} zeigen die Auswirkungen unterschiedlicher
+ Einstellungen. Dabei wird deutlich, dass bei geringer Spaltenbreite der
+ komplett hängende Einzug unvorteilhaft ist. Der Quelltext der zweiten
+ Abbildung sei hier mit abgewandelter Unterschrift beispielhaft
+ wiedergegeben:
+\begin{lstcode}
+ \begin{figure}
+ \setcapindent{1em}
+ \fbox{\parbox{.95\linewidth}{%
+ \centering\KOMAScript}}
+ \caption{Beispiel mit teilweise hängendem Einzug
+ ab der zweiten Zeile}
+ \end{figure}
+\end{lstcode}
+ Wie zu sehen ist, kann die Formatierung also auch lokal innerhalb
+ der \Environment{figure}-Umgebung\IndexEnv{figure} geändert werden. Die
+ Änderung gilt dann nur für die eine Abbildung. Nachfolgende Abbildungen
+ werden wieder mit den Grundeinstellungen oder den globalen Einstellungen,
+ die Sie beispielsweise in der Dokumentpräambel vorgenommen haben,
+ gesetzt. Das gilt für Tabellen natürlich genauso.
+ \begin{figure}
+ \typeout{^^J--- Ignore underfull and overfull \string\hbox:}
+ \addtokomafont{caption}{\small}
+ \addtokomafont{captionlabel}{\bfseries}
+ \centering%
+ \begin{minipage}{.92\linewidth}
+ \begin{minipage}[t]{.48\linewidth}\sloppy
+ \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}}
+ \caption[Beispiel: Bildunterschrift mit Voreinstellung]%
+ {Mit der Stan\-dard\-ein\-stel\-lung, also wie bei
+ Verwendung von \Macro{setcaphanging}}
+ \label{fig:maincls.caption.first}
+ \end{minipage}
+ \hspace{.02\linewidth}
+ \begin{minipage}[t]{.48\linewidth}\sloppy
+ \setcapindent{1em}
+ \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}}
+ \caption[Beispiel: Bildunterschrift mit teilweise hängendem Einzug]%
+ {Mit teilweise häng"-endem Einzug ab der zweiten Zeile durch
+ Verwendung von \Macro{setcapindent}\PParameter{1em}}
+ \end{minipage}
+ \end{minipage}
+
+ \vspace*{2ex}\noindent%
+ \begin{minipage}{.9\linewidth}
+ \begin{minipage}[t]{.48\linewidth}\sloppy
+ \setcapindent*{1em}
+ \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}}
+ \caption[Beispiel: Bildunterschrift mit hängendem Einzug und Umbruch]%
+ {Mit hängendem Einzug ab der zweiten Zeile und Umbruch vor
+ der Beschreibung durch Verwendung von
+ \Macro{setcapindent*}\PParameter{1em}}
+ \end{minipage}
+ \hspace{.02\linewidth}
+ \begin{minipage}[t]{.48\linewidth}\sloppy
+ \setcapindent{-1em}
+ \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}}
+ \caption[Beispiel: Bildunterschrift mit Einzug in der zweiten Zeile]%
+ {Mit Einzug lediglich in der zweiten Zeile und einem Umbruch
+ vor der Beschreibung durch Verwendung von
+ \Macro{setcapindent}\PParameter{-1em}}
+ \label{fig:maincls.caption.last}
+ \end{minipage}
+ \end{minipage}
+ \typeout{^^J--- Don't ignore underfull and overfull
+ \string\hbox:^^J}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setcapwidth}\OParameter{Ausrichtung}\Parameter{Breite}
+ \Macro{setcapdynwidth}\OParameter{Ausrichtung}\Parameter{Breite}
+ \Macro{setcapmargin}\OParameter{Rand \kern-.25em links}\Parameter{Rand}
+ \Macro{setcapmargin*}\OParameter{Rand \kern-.25em innen}\Parameter{Rand}
+\end{Declaration}
+Mit \ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} Hilfe dieser drei Befehle kann die Breite und Anordnung
+der Beschreibung beeinflusst werden. Normalerweise steht die gesamte Text-
+oder Spaltenbreite für den Text der Beschreibung zur Verfügung.
+
+Mit\important{\Macro{setcapwidth}} der Anweisung \Macro{setcapwidth} kann
+diese \PName{Breite} reduziert werden. Dabei gibt das obligatorische Argument
+die maximale für die Beschreibung verwendete \PName{Breite} an. Als optionales
+Argument kann genau ein Buchstabe übergeben werden, der die horizontale
+Ausrichtung der Beschreibung angibt. Die möglichen Ausrichtungen finden Sie in
+der folgenden Liste.
+\begin{labeling}[~--]{\quad\PValue{o}}%
+ \itemsep=.5\topsep plus .5\topsep minus .5\topsep
+ \rightskip=1em
+\item[\quad\PValue{l}] linksbündig
+\item[\quad\PValue{c}] zentriert
+\item[\quad\PValue{r}] rechtsbündig
+\item[\quad\PValue{i}] innen: auf rechten Seiten linksbündig, auf
+ linken Seiten rechtsbündig
+\item[\quad\PValue{o}] außen: auf rechten Seiten rechtsbündig, auf
+ linken Seiten linksbündig
+\end{labeling}
+Die Ausrichtung innen und außen entspricht im einseitigen Satz linksbündig und
+rechtsbündig. Innerhalb\textnote{Achtung!} von
+\Package{longtable}\IndexPackage{longtable}-Tabellen%
+\important{\Package{longtable}} funktioniert die Ausrichtung innen und außen
+nicht korrekt. Insbesondere werden Beschreibungen von Folgeseiten bei diesen
+Tabellen immer nach den Beschreibungen der ersten Teiltabelle
+ausgerichtet. Dies ist ein konzeptionelles Problem des Pakets
+\Package{longtable}.
+
+Zu\ChangedAt{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}\textnote{Achtung!} beachten ist, dass die an
+\Macro{setcapwidth} übergebene \PName{Breite} wie bei \Macro{setlength} zum
+Zeitpunkt der Zuweisung ausgewertet
+wird. Will\important{\Macro{setcapdynwidth}} man hingegen, dass \PName{Breite}
+erst bei der Verwendung ausgewertet wird, dann sollte man stattdessen
+\Macro{setcapdynwidth} verwenden. Entscheidende Unterschiede gibt es
+beispielsweise, wenn Längen wie \Length{linewidth} oder andere Anweisungen als
+Argument verwendet werden.
+
+Mit\important{\Macro{setcapmargin}} der Anweisung \Macro{setcapmargin} kann
+statt der Breite der Beschreibung ein \PName{Rand} angegeben werden, der neben
+der Beschreibung zusätzlich zum normalen Textrand eingehalten werden soll.
+Sollen der Rand rechts und links nicht identisch gewählt werden, kann mit dem
+optionalen Argument ein von \PName{Rand} abweichender \PName{Rand \kern-.25em
+ links} von der Beschreibung eingestellt
+werden. Bei\important{\Macro{setcapmargin*}} der Sternvariante
+\Macro{setcapmargin*} wird statt \PName{Rand \kern-.25em links} im
+doppelseitigen Satz \PName{Rand \kern-.25em innen} abweichend definiert.
+Hier\textnote{Achtung!} ergibt sich bei
+\Package{longtable}\IndexPackage{longtable}-Tabellen%
+\important{\Package{longtable}} das gleiche Problem wie bei der Ausrichtung
+außen oder innen bei der Anweisung \Macro{setcapwidth}. Die Verwendung von
+\Macro{setcapmargin} oder \Macro{setcapmargin*} aktiviert außerdem
+\OptionValueRef{\LabelBase}{captions}{nooneline} (siehe
+\DescPageRef{\LabelBase.option.captions.nooneline}) für die Beschreibungen,
+die mit dieser Randeinstellung gesetzt werden.
+
+Man\textnote{Tipp!} kann übrigens auch negative Werte für \PName{Rand} und
+\PName{Rand \kern-.25em rechts} oder \PName{Rand \kern-.25em außen}
+angeben. Dadurch erreicht man, dass die Beschreibung in den entsprechenden
+Rand hineinragt.%
+\iffalse\par% Anhang wurde entfernt.
+Für\textnote{Tipp!} Experten und versierte Anwender ist eine etwas
+trickreiche Anwendung für \Macro{setcapwidth} in
+\iffree{\cite{book:komascript}}{\autoref{cha:floattricks},
+ \autopageref{cha:floattricks}} zu finden.%
+\fi%
+%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{setcaptionalignment}\OParameter{Gleitumgebung}\Parameter{Ausrichtung}
+\end{Declaration}
+Normalerweise\ChangedAt{v3.25}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} werden mehrzeilige\textnote{Ausrichtung mehrzeiliger
+ Beschreibungen} Beschreibungen im Blocksatz gesetzt. Dies entspricht
+\Macro{setcaptionalignment}\PParameter{j}. Manchmal wird allerdings eine davon
+abweichende Ausrichtung gewünscht, beispielsweise linksbündiger
+Flattersatz. Eine entsprechende Änderung ist mit \Macro{setcaptionalignment}
+jederzeit möglich. Für \PName{Ausrichtung} kann dabei genau einer der
+Buchstaben aus \autoref{tab:maincls.captionalignment} angegeben werden. Wird
+eine unbekannte \PName{Ausrichtung} angegeben, so resultiert dies in einer
+Fehlermeldung.
+%
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [{Ausrichtungen für mehrzeilige Beschreibungen von Gleitumgebungen}]
+ {\label{tab:maincls.captionalignment}%
+ Ausrichtungen für mehrzeilige Beschreibungen von Gleitumgebungen}
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ c & zentriert \\
+ j & Blocksatz \\
+ l & linksbündig \\
+ r & rechtsbündig \\
+ C & zentriert mit \Package{ragged2e} \\
+ J & Blocksatz mit \Package{ragged2e} \\
+ L & linksbündig mit \Package{ragged2e} \\
+ R & rechtsbündig mit \Package{ragged2e} \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+Die vier Möglichkeiten mit Paket
+\Package{ragged2e}\important{\Package{ragged2e}}\IndexPackage{ragged2e} stehen
+nur zur Verfügung, wenn das Paket vor Verwendung von
+\Macro{setcaptionalignment} geladen wurde. Anderenfalls werden sie auf die
+entsprechenden Möglichkeiten ohne \Package{ragged2e} abgebildet. Zur
+Sicherheit wird in diesem Fall eine Warnung ausgegeben.
+
+Verwendet man den Befehl ohne\textnote{kein optionaler Parameter} den
+optionalen Parameter, so hängt das Ergebnis davon ab, ob der Aufruf innerhalb
+oder außerhalb einer Gleitumgebung stattfindet. Innerhalb einer Gleitumgebung
+wird dann die Ausrichtung für diese Gleitumgebung gesetzt. Außerhalb wird
+hingegen ein leerer optionaler Parameter angenommen.
+
+Beim Aufruf mit einem leeren\textnote{leerer optionaler Parameter} optionalen
+Parameter oder außerhalb einer Gleitumgebung auch komplett ohne optionalen
+Parameter wird die allgemeine Ausrichtung festgelegt. Diese wird immer dann
+verwendet, wenn keine Ausrichtung für den aktuellen Gleitumgebungstyp
+definiert ist.
+
+Will man nur die Ausrichtung eines bestimmen Typs\textnote{mit
+ \PName{Gleitumgebung}} von Gleitumgebungen festlegen, ohne
+\PName{Ausrichtung} auch für andere Arten von Gleitumgebungen zu verändern, so
+gibt man den Typ der Gleitumgebung, beispielsweise \PValue{figure} oder
+\PValue{table}, als optionalen Parameter \PName{Gleitumgebung} an.
+%
+\begin{Example}
+ Sie wollen, dass Bildunterschriften auch dann vollständig zentriert unter
+ den Bildern stehen, wenn sie mehrzeilig sind. Um das zunächst einmal nur für
+ eine einzige Abbildung zu testen, verwenden Sie\textnote{in der
+ Gleitumgebung}:
+\begin{lstcode}
+ \begin{figure}
+ \centering
+ \setcaptionalignment{c}
+ \includegraphics{example-image}
+ \caption{\blindtext}
+ \end{figure}
+\end{lstcode}
+ Da Sie mit dem Ergebnis zufrieden sind, verschieben Sie die
+ Anweisung\textnote{in der Dokumentpräambel}
+\begin{lstcode}
+ \setcaptionalignment{c}
+\end{lstcode}
+ in die Dokumentpräambel. Daraufhin bemerken Sie allerdings, dass Ihnen
+ diese Änderung für Tabellenüberschriften überhaupt nicht gefällt. Daher
+ beschränken Sie mit\textnote{nur für Abbildungen}
+\begin{lstcode}
+ \setcaptionalignment[figure]{c}
+\end{lstcode}
+ die Zentrierung auf Abbildungen.
+
+ Etwas später stellen Sie fest, dass die Zentrierung doch nicht so günstig
+ ist. Stattdessen wollen Sie nun lieber eine linksbündige Ausrichtung im
+ Flattersatz haben. Also ändern Sie die Anweisung erneut zu:
+\begin{lstcode}
+ \setcaptionalignment[figure]{l}
+\end{lstcode}
+ Allerdings gefällt Ihnen nun nicht, dass die Zeilen sehr unterschiedlich
+ lang werden. Als Ursache machen Sie die fehlende Trennung aus, wodurch lange
+ Wörter komplett in die nächste Zeile rutschen und so große Lücken
+ hinterlassen. Also wollen Sie zusätzlich Trennung nach Bedarf
+ ermöglichen. Dies ist mit Hilfe des Pakets
+ \Package{ragged2e}\important{\Package{ragged2e}}\IndexPackage{ragged2e}
+ leicht möglich. Dabei genügt es allerdings nicht, das Paket mit
+\begin{lstcode}
+ \usepackage{ragged2e}
+\end{lstcode}
+ zu laden. Auch Option \Option{newcommands} beim Laden des Pakets bringt
+ keine Abhilfe. Stattdessen muss zusätzlich die \PName{Ausrichtung} geändert
+ werden:
+\begin{lstcode}
+ \usepackage{ragged2e}
+ \setcaptionalignment[figure]{L}
+\end{lstcode}
+ Beachten\textnote{Achtung!} Sie den Großbuchstabe für \PName{Ausrichtung}.
+\end{Example}
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{origlongtable}
+\end{Declaration}%
+\BeginIndex{Package}{longtable}%
+Falls die Tabellenüberschriften des \Package{longtable}-Pakets (siehe
+\cite{package:longtable}) von den \KOMAScript-Klassen nicht umdefiniert werden
+sollen, kann die Option \Option{origlongtable} gesetzt werden. Diese
+Option\textnote{Achtung!} ist als optionales Argument von
+\DescRef{\LabelBase.cmd.documentclass} zu verwenden. Eine Einstellung per
+\DescRef{\LabelBase.cmd.KOMAoptions} oder \DescRef{\LabelBase.cmd.KOMAoption}
+wird nicht unterstützt.
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{listof}{Einstellung}
+\end{Declaration}
+Normalerweise\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} werden Verzeichnisse von Gleitumgebungen --~wie das
+Tabellen"~\Index{Tabellen>Verzeichnis} und das
+Abbildungsverzeichnis\Index{Abbildungen>Verzeichnis}~-- nicht nummeriert oder
+in das Inhaltsverzeichnis aufgenommen. In \autoref{sec:\LabelBase.toc} wurde
+dies bereits näher ausgeführt. Alternativ zu den dort erwähnten Einstellungen
+\OptionValueRef{\LabelBase}{toc}{nolistof}%
+\IndexOption{toc~=\textKValue{nolistof}},
+\OptionValueRef{\LabelBase}{toc}{listof}\IndexOption{toc~=\textKValue{listof}}
+und \OptionValueRef{\LabelBase}{toc}{listofnumbered}%
+\IndexOption{toc~=\textKValue{listofnumbered}}, kann dieses Verhalten auch aus
+Sicht der Verzeichnisse selbst gesehen werden. Daher kann man die gleichen
+Ergebnisse auch mit den Einstellungen \OptionValue{listof}{notoc},
+\OptionValue{listof}{totoc} und \OptionValue{listof}{numbered} erreichen.
+
+Dabei werden in der Voreinstellung für die Überschriften der Verzeichnisse die
+oberste verfügbare Gliederungsebene unterhalb von
+\DescRef{\LabelBase.cmd.part} verwendet. Bei \Class{scrbook} und
+\Class{scrreprt} ist das die Kapitelebene, bei \Class{scrartcl} die
+Abschnittsebene. Mit\important{\OptionValue{listof}{leveldown}}%
+\ChangedAt{v3.06}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}
+Hilfe der Einstellung \OptionValue{listof}{leveldown} kann hingegen die nächst
+tiefere Gliederungsebene verwendet
+werden. \important{\OptionValue{listof}{standardlevel}}%
+\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+\OptionValue{listof}{standardlevel} schaltet bei Bedarf wieder zurück auf die
+voreingestellte Gliederungsebene.
+\begin{Example}
+ Sie wollen in einem Buch das Abbildungs- und das Tabellenverzeichnis als
+ Unterverzeichnisse eines gemeinsamen Verzeichnisses »Abbildungen und
+ Tabellen« setzen. Dazu verwenden Sie einfach:
+\begin{lstcode}
+ \KOMAoption{listof}{leveldown}
+\end{lstcode}
+ und dann an entsprechender Stelle Ihres Dokuments:
+\begin{lstcode}
+ \addchap*{Abbildungs- und Tabellenverzeichnis}
+ \listoffigures
+ \listoftables
+\end{lstcode}
+ Näheres zur Anweisung \DescRef{\LabelBase.cmd.addchap*} ist
+ \autoref{sec:\LabelBase.structure}, \DescPageRef{\LabelBase.cmd.addchap*} zu
+ entnehmen.
+\end{Example}
+
+Normalerweise\ChangedAt{v2.8q}{%
+ \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} werden die
+Verzeichnisse\Index{Abbildungen>Verzeichnis}\Index{Tabellen>Verzeichnis}
+der Gleitumgebungen so formatiert, dass für die Nummer ein Raum fester Breite
+verwendet wird. Gleichzeitig werden alle Einträge leicht eingezogen. Dies
+entspricht der Verwendung der Einstellung
+\OptionValue{listof}{graduated}\IndexOption{listof~=\textKValue{graduated}}.
+
+Werden die Nummern sehr breit, weil beispielsweise sehr viele Tabellen
+verwendet werden, so reicht der vorgesehene Platz irgendwann nicht mehr aus.
+Vergleichbar\important{\OptionValue{listof}{flat}} zur Einstellung
+\OptionValueRef{\LabelBase}{toc}{flat}\IndexOption{toc~=\textKValue{flat}} für das
+Inhaltsverzeichnis bietet \KOMAScript{} daher die Einstellung
+\OptionValue{listof}{flat}\IndexOption{listof~=\textKValue{flat}} für die
+Verzeichnisse der Gleitumgebungen. Dabei wird die Breite der Nummern
+automatisch ermittelt und der Platz entsprechend angepasst. Bezüglich der
+Nebenwirkungen und Funktionsweise gilt, was in \autoref{sec:\LabelBase.toc},
+\DescPageRef{\LabelBase.option.toc.flat} für die Einstellung
+\OptionValueRef{\LabelBase}{toc}{flat} erklärt wurde. Es sei an dieser Stelle
+jedoch nochmals darauf hingewiesen, dass mit der Einstellung
+\OptionValue{listof}{flat} mehrere \LaTeX-Durchläufe benötigt werden, bis die
+Verzeichnisse ihre endgültige Form erhalten haben.
+
+Die Einstellung \OptionValue{listof}{flat} wird automatisch aktiviert, falls
+die Einstellung
+\OptionValue{listof}{entryprefix}\ChangedAt{v3.06}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} verwendet
+wird. Normalerweise\important{\OptionValue{listof}{entryprefix}} ist es nicht
+sinnvoll jeden Eintrag in eines der Verzeichnisse der Gleitumgebungen mit
+einem Präfix wie »Abbildung« oder »Tabelle« zu versenden, da natürlich im
+Abbildungsverzeichnis nur Abbildungen und im Tabellenverzeichnis nur Tabellen
+zu finden sind. Damit hat ein solcher Präfix keinen zusätzlichen
+Informationswert und wird in der Voreinstellung auch weggelassen. Mit der
+Einstellung \OptionValue{listof}{entryprefix} wird ein solcher Präfix jedoch
+gesetzt. Dabei erhalten alle Einträge eines Verzeichnisses denselben
+Präfix. Dieser richtet sich nach dem Dateianhang der Hilfsdatei, die für das
+Verzeichnis verwendet wird. Für das Abbildungsverzeichnis, das den Dateianhang
+»\File{lof}« besitzt, wird beispielsweise \Macro{listoflofentryname} verwendet,
+während für das Tabellenverzeichnis, das den Dateianhang »\File{lot}« besitzt,
+\Macro{listoflotentryname} verwendet wird.
+
+Bei den Klassen \Class{scrbook} und
+\Class{scrreprt}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} fügt
+\KOMAScript{} in der Voreinstellung bei jedem Kapitelanfang einen vertikalen
+Abstand in die Verzeichnisse der Gleitumgebungen ein. Dieses Verhalten, das es
+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}%
+\LabelOptionValue{listof}{chaptergapsmall}%
+\important{\OptionValue{listof}{chaptergapsmall}}%
+\IndexOption{listof~=\textKValue{chaptergapsmall}}. Dabei wird ein fester
+vertikaler Abstand von 10\Unit{pt}
+verwendet. Mit\important{\OptionValue{listof}{chaptergapline}} der Einstellung
+\OptionValue{listof}{chaptergapline}%
+\IndexOption{listof~=\textKValue{chaptergapline}} kann man stattdessen einen
+vertikalen Abstand von einer Zeile
+erreichen. Mit\important{\OptionValue{listof}{nochaptergap}}
+\OptionValue{listof}{nochaptergap}\IndexOption{listof~=\textKValue{nochaptergap}}
+kann man den vertikalen Abstand komplett
+abschalten. Eine\important{\OptionValue{listof}{chapterentry}} Besonderheit
+stellt die Einstellung
+\OptionValue{listof}{chapterentry}\IndexOption{listof~=\textKValue{chapterentry}}
+dar. Dabei wird statt des Abstandes der Inhaltsverzeichniseintrag für das
+Kapitel in das Verzeichnis der Gleitumgebungen
+eingefügt. Es\textnote{Achtung!} wird darauf hingewiesen, dass ein solcher
+Eintrag auch dann erfolgt, wenn das Kapitel keine Gleitumgebung enthält. Eine
+Lösung, bei der nur Kapitel mit Gleitumgebungen im jeweiligen Verzeichnis
+angezeigt werden, finden Sie unter
+\cite{https://komascript.de/comment/5070}. Eine noch direktere Beeinflussung,
+was in den Verzeichnissen der Gleitumgebungen bei neuen Kapiteln geschehen
+soll, ist mit der Option \DescRef{\LabelBase.option.chapteratlists} zu
+erreichen, die in \autoref{sec:\LabelBase.structure} auf
+\DescPageRef{\LabelBase.option.chapteratlists} erläutert wird.
+
+Einen Überblick über alle möglichen Werte für die \PName{Einstellung} von
+\Option{listof} ist in \autoref{tab:maincls.listof} zu finden.
+
+\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} (\emph{Fortsetzung})%
+ }%
+ \entry{\PValue{chapterentry}, \PValue{withchapterentry}}{%
+ Kapitelanfänge werden in den Verzeichnissen der Gleitumgebungen durch
+ einen Inhaltsverzeichniseintrag des Kapitels markiert.%
+ \IndexOption{listof~=\textKValue{chapterentry}}}%
+ \entry{\PValue{chaptergapline}, \PValue{onelinechaptergap}}{%
+ Kapitelanfänge werden in den Verzeichnissen der Gleitumgebungen durch
+ einen Abstand von einer Zeile markiert.%
+ \IndexOption{listof~=\textKValue{chaptergapline}}}%
+ \entry{\PValue{chaptergapsmall}, \PValue{smallchaptergap}}{%
+ Kapitelanfänge werden in den Verzeichnissen der Gleitumgebungen durch
+ einen kleinen Abstand markiert.%
+ \IndexOption{listof~=\textKValue{chaptergapsmall}}}%
+ \entry{\PValue{entryprefix}}{%
+ \ChangedAt{v3.06}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Jeder Verzeichniseintrag wird mit einem vom Verzeichnis abhängenden Präfix
+ vor der Nummer versehen. Der Präfix ist normalerweise sprachabhängig,
+ beispielsweise bei deutschen Spracheinstellungen »Abbildung« für das
+ Abbildungsverzeichnis und »Tabelle« für das Tabellenverzeichnis, jeweils
+ gefolgt von einem Leerzeichen.%
+ \IndexOption{listof~=\textKValue{entryprefix}}}%
+ \entry{\PValue{flat}, \PValue{left}}{%
+ Die Verzeichnisse der Gleitumgebungen erhalten eine tabellarische
+ Form. Die Gleitumgebungsnummern sind dabei die erste Spalte, der Titel die
+ zweite Spalte, die Seitenzahlen die dritte Spalte. Der Platz, der für die
+ Gleitumgebungsnummern reserviert wird, richtet sich nach dem benötigten
+ Platz des vorherigen \LaTeX-Laufs.%
+ \IndexOption{listof~=\textKValue{flat}}}%
+ \entry{\PValue{graduated}, \PValue{indent}, \PValue{indented}}{%
+ Die Verzeichnisse der Gleitumgebungen erhalten eine hierarchische Form. Es
+ steht nur ein begrenzter Platz für die Gleitumgebungsnummern zur
+ Verfügung.%
+ \IndexOption{listof~=\textKValue{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},
+ \DescPageRef{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 \DescRef{tocbasic.cmd.addxcontentsline} (siehe
+ \autoref{sec:tocbasic.toc}, \DescPageRef{tocbasic.cmd.addxcontentsline})
+ erzeugt werden.%
+ \IndexOption{toc~=\textKValue{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},
+ \DescPageRef{tocbasic.cmd.setuptoc}) wird für die Verzeichnisse der
+ Gleitumgebungen, beispielsweise das Abbildungs"~ und das
+ Tabellenverzeichnis, gelöscht. 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 \DescRef{tocbasic.cmd.addxcontentsline} (siehe
+ \autoref{sec:tocbasic.toc}, \DescPageRef{tocbasic.cmd.addxcontentsline})
+ erzeugt werden.%
+ \IndexOption{toc~=\textKValue{numberline}}}%
+ \entry{\PValue{leveldown}}{%
+ Die Verzeichnisse werden um eine Gliederungsebene nach unten verschoben.%
+ \IndexOption{listof~=\textKValue{leveldown}}}%
+ \entry{\PValue{nochaptergap}, \PValue{ignorechapter}}{%
+ Kapitelanfänge werden in den Verzeichnissen der Gleitumgebungen nicht
+ markiert.%
+ \IndexOption{listof~=\textKValue{nochaptergap}}}%
+ \entry{\PValue{notoc}, \PValue{nottotoc}, \PValue{plainheading}}{%
+ Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und
+ das Tabellenverzeichnis, erhalten keinen Eintrag im Inhaltsverzeichnis.%
+ \IndexOption{listof~=\textKValue{nottotoc}}}%
+ \entry{\PValue{numbered}, \PValue{totocnumbered}, \PValue{tocnumbered},
+ \PValue{numberedtoc}, \PValue{numberedtotoc}}{%
+ Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und
+ das Tabellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis und
+ werden nummeriert.%
+ \IndexOption{listof~=\textKValue{numbered}}}%
+ \entry{\PValue{standardlevel}}{%
+ Die Verzeichnisse liegen auf der üblichen Gliederungsebene.%
+ \IndexOption{listof~=\textKValue{standardlevel}}}%
+ \entry{\PValue{toc}, \PValue{totoc}, \PValue{notnumbered}}{%
+ Die Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs"~ und
+ das Tabellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis,
+ ohne dass sie nummeriert werden.%
+ \IndexOption{listof~=\textKValue{totoc}}}%
+\end{desclist}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{listoftables}
+ \Macro{listoffigures}
+\end{Declaration}%
+Mit diesen Anweisungen kann ein Verzeichnis der Tabellen beziehungsweise der
+Abbildungen ausgegeben werden. Änderungen, die Auswirkungen auf diese
+Verzeichnisse haben, werden erst nach zwei \LaTeX{}-Läufen sichtbar. Die Form
+der Verzeichnisse kann durch die Option
+\DescRef{\LabelBase.option.listof}\important{\DescRef{\LabelBase.option.listof}}
+mit den Werten \PValue{graduated} und \PValue{flat} beeinflusst werden (siehe
+\DescPageRef{\LabelBase.option.listof}). Darüber hinaus wirken sich indirekt
+die Werte \PValue{listof} und \PValue{listofnumbered} für die Option
+\DescRef{\LabelBase.option.toc}\important{\DescRef{\LabelBase.option.toc}}
+(siehe \autoref{sec:\LabelBase.toc}, \DescPageRef{\LabelBase.option.toc}),
+sowie die Werte \PValue{totoc} und \PValue{numbered} der oben erläuterten
+Option \DescRef{\LabelBase.option.listof} auf die Verzeichnisse aus.
+
+In\textnote{Tipp!} der Regel findet man die Verzeichnisse der
+Gleitumgebungen\Index{Gleitumgebungen}, also das
+\index{Tabellen>Verzeichnis}Tabellen- und das
+Abbildungsverzeichnis\index{Abbildungen>Verzeichnis}, unmittelbar nach dem
+Inhaltsverzeichnis. In einigen Dokumenten wandern diese auch in den
+Anhang. Der Autor bevorzugt jedoch die Platzierung unmittelbar nach dem
+Inhaltsverzeichnis.%
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{marginpar}% \section{Randnotizen}
+
+
+\section{Anhang}
+\seclabel{appendix}
+\BeginIndexGroup
+\BeginIndex{}{Anhang}
+
+Der Anhang eines Dokuments besteht im Wesentlichen aus den Anlagen zu einem
+Dokument. Typische Teile eines Anhangs sind Literaturverzeichnis,
+Stichwortverzeichnis und Begriffsverzeichnis. Alleine für diese Teile würde
+man jedoch keinen Anhang beginnen, da diese Teile normalerweise schon von sich
+aus eine Auszeichnung besitzen, die sie als Anhang erkennbar macht. Enthält
+der Anhang aber weitere Teile wie beispielsweise zitierte Fremddokumente,
+Endnoten oder Tafeln, so werden die zuvor genannten Teile ebenfalls im Anhang
+gesetzt.
+
+
+\begin{Declaration}
+ \Macro{appendix}
+\end{Declaration}%
+Der Anhang wird in den Standardklassen und den {\KOMAScript}-Klassen mit der
+Anweisung \Macro{appendix} eingeleitet. Diese Anweisung schaltet unter anderem
+die Kapitelnummerierung auf Großbuchstaben um und sorgt gleichzeitig dafür,
+dass die Regeln für die Nummerierung der Gliederungsebenen nach \cite{DUDEN}
+eingehalten werden. Diese Regeln sind in der Beschreibung der Option
+\DescRef{\LabelBase.option.numbers} in \autoref{sec:\LabelBase.structure},
+\DescPageRef{\LabelBase.option.numbers} näher erläutert.
+
+Die Form der Kapitelüberschriften\OnlyAt{\Class{scrbook}\and \Class{scrreprt}}
+im Anhang wird durch die Optionen \DescRef{\LabelBase.option.chapterprefix}%
+\important{\DescRef{\LabelBase.option.chapterprefix}\\
+ \DescRef{\LabelBase.option.appendixprefix}} und
+\DescRef{\LabelBase.option.appendixprefix} bestimmt. Näheres dazu ist
+\autoref{sec:\LabelBase.structure},
+\DescPageRef{\LabelBase.option.appendixprefix} zu entnehmen.
+
+Bitte\textnote{Achtung!} beachten Sie, dass es sich bei \Macro{appendix} um
+eine Anweisung und \emph{nicht} um eine Umgebung handelt! Die Anweisung
+erwartet auch nicht etwa ein Argument. Die Kapitel beziehungsweise Abschnitte
+des Anhangs werden ganz normal mit \DescRef{\LabelBase.cmd.chapter} und
+\DescRef{\LabelBase.cmd.section} gesetzt.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Literaturverzeichnis}
+\seclabel{bibliography}
+\BeginIndexGroup
+\BeginIndex{}{Literaturverzeichnis}
+
+Das Literaturverzeichnis erschließt externe Quellen. In der Regel wird das
+Literaturverzeichnis mit Hilfe des Programms \BibTeX{} aus einer Datei mit
+datenbankähnlicher Struktur erzeugt. Dabei kann über den \BibTeX-Stil sowohl
+die Form der Einträge als auch deren Sortierung verändert werden. Wird
+zusätzlich ein Literaturpaket, beispielsweise
+\Package{natbib}\IndexPackage{natbib},
+\Package{babelbib}\IndexPackage{babelbib} oder
+\Package{biblatex}\IndexPackage{biblatex} verwendet, so schwindet der Einfluss
+von \KOMAScript{} auf das Literaturverzeichnis. In diesen Fällen ist unbedingt
+die Anleitung des verwendeten Pakets zu beachten! Zur generellen Verwendung
+eines Literaturverzeichnisses sei auf \cite{l2kurz} verwiesen.
+
+
+\begin{Declaration}
+ \OptionVName{bibliography}{Einstellung}
+\end{Declaration}
+Als \PName{Einstellung}\ChangedAt{v3.00}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} kann zunächst einmal jeder definierte
+Formatierungsstil gewählt werden. Vordefiniert sind bei \KOMAScript{} zwei
+solche Formatierungsstile für das Literaturverzeichnis. Diese sind jedoch
+nicht zu verwechseln mit den unterschiedlichen Stilen für
+\BibTeX\Index{BibTeX=\BibTeX}, die man mit \Macro{bibstyle} auswählt. Während
+\BibTeX{} sowohl die Art der Sortierung als auch den Inhalt des
+Literaturverzeichnisses bestimmt, können über die Einstellungen von
+\KOMAScript{} nur grundlegende Eigenschaften des Literaturverzeichnisses oder
+einige wenige Eigenschaften der Formatierung der Einträge beeinflusst werden.
+
+Mit\important{\OptionValue{bibliography}{oldstyle}}
+\OptionValue{bibliography}{oldstyle}%
+\IndexOption{bibliography~=\textKValue{oldstyle}} wird die kompakte Formatierung
+gewählt. Dabei führt die Anweisung
+\DescRef{maincls-experts.cmd.newblock}\IndexCmd{newblock} in den einzelnen
+Einträgen lediglich zu einem dehnbaren horizontalen Abstand. Der Name kommt
+daher, dass dies die häufigste klassische Form eines Literaturverzeichnisses
+ist. Demgegenüber\important{\OptionValue{bibliography}{openstyle}} erreicht
+man die etwas modernere, offene Form mit der Einstellung
+\OptionValue{bibliography}{openstyle}%
+\IndexOption{bibliography~=\textKValue{openstyle}}. Der Name kommt daher, dass
+hier die Anweisung \DescRef{maincls-experts.cmd.newblock} einen Absatz
+einfügt. Die Einträge im Literaturverzeichnis werden so stärker
+gegliedert. Sie sind weniger kompakt und deutlich aufgelockerter oder
+geöffnet. Bezüglich der Möglichkeit, neue Formatierungsstile zu definieren,
+sei auf \DescRef{maincls-experts.cmd.newbibstyle},
+\autoref{sec:maincls-experts.experts},
+\DescPageRef{maincls-experts.cmd.newbibstyle} verwiesen.
+
+Neben dem Formatierungsstil gibt es eine weitere Eigenschaft, die über
+\PName{Einstellung} verändert werden kann. Das Literaturverzeichnis stellt
+eine Art von Verzeichnis dar, bei der nicht der Inhalt des vorliegenden Werks
+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 verdiene. Die
+Einstellung \OptionValue{bibliography}{numbered}%
+\important{\OptionValue{bibliography}{numbered}}%
+\IndexOption{bibliography~=\textKValue{numbered}} 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~=\textKValue{totoc}}
+erreicht wird. Die Voreinstellung, bei der das Literaturverzeichnis als nicht
+nummeriertes Kapitel ohne eigenen Inhaltsverzeichniseintrag gesetzt wird,
+entspricht \OptionValue{bibliography}{nottotoc}%
+\important{\OptionValue{bibliography}{nottotoc}}%
+\IndexOption{bibliography~=\textKValue{nottotoc}}. Siehe hierzu auch Option
+\DescRef{\LabelBase.option.toc} in \autoref{sec:\LabelBase.toc}, insbesondere
+die Werte \PValue{bibliographynumbered}, \PValue{bibliography} und
+\PValue{nobibliography} ab \DescPageRef{\LabelBase.option.toc.bibliography}.
+
+In\ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}
+einigen Fällen wird nicht das gesamte Dokument 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~=\textKValue{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 \DescRef{maincls-experts.cmd.newbibstyle}\IndexCmd{newbibstyle}
+weitere Werte definiert werden können.
+
+\begin{table}
+ \caption[{Mögliche Werte für Option \Option{bibliography}}]{Vordefinierte
+ Werte für Option \Option{bibliography} zur Einstellung der Form des
+ 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~=\textKValue{leveldown}}}%
+ \entry{\PValue{notoc}, \PValue{nottotoc}, \PValue{plainheading}}{%
+ Das Literaturverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis und
+ wird auch nicht nummeriert.%
+ \IndexOption{bibliography~=\textKValue{nottotoc}}}%
+ \entry{\PValue{numbered}, \PValue{tocnumbered}, \PValue{totocnumbered},
+ \PValue{numberedtoc}, \PValue{numberedtotoc}}{%
+ Das Literaturverzeichnis erhält einen Eintrag im Inhaltsverzeichnis und
+ wird nummeriert.%
+ \IndexOption{bibliography~=\textKValue{numbered}}}%
+ \pventry{oldstyle}{%
+ Es wird die klassische, kompakte Formatierung gewählt, bei der
+ \DescRef{maincls-experts.cmd.newblock}\IndexCmd{newblock} nur einen
+ dehnbaren horizontalen Abstand darstellt.%
+ \IndexOption{bibliography~=\textKValue{oldstyle}}}%
+ \pventry{openstyle}{%
+ Es wird eine untergliederte, offene Formatierung gewählt, bei der
+ \DescRef{maincls-experts.cmd.newblock}\IndexCmd{newblock} einen Absatz
+ darstellt.%
+ \IndexOption{bibliography~=\textKValue{openstyle}}}%
+ \pventry{standardlevel}{%
+ \ChangedAt{v3.12}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Das Literaturverzeichnis liegt auf der üblichen Gliederungsebene.%
+ \IndexOption{bibliography~=\textKValue{standardlevel}}}%
+ \entry{\PValue{toc}, \PValue{totoc}, \PValue{notnumbered}}{%
+ Das Literaturverzeichnis erhält einen Eintrag im Inhaltsverzeichnis,
+ ohne dass es nummeriert wird.%
+ \IndexOption{bibliography~=\textKValue{totoc}}}%
+ \end{desctabular}
+\end{table}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setbibpreamble}\Parameter{Präambel}
+\end{Declaration}%
+Mit der Anweisung \Macro{setbibpreamble} kann eine Präambel für das
+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 Option
+\OptionValueRef{\LabelBase}{bibliography}{totoc} oder
+\OptionValueRef{\LabelBase}{bibliography}{numbered} kann die Anweisung aber nur
+erfolgreich sein, wenn nicht ein Paket geladen wird, das dies durch
+Umdefinierung der \Environment{thebibliography}-Umgebung verhindert. Obwohl
+das \Package{natbib}-Paket\IndexPackage{natbib} nicht freigegebene interne
+Makros von {\KOMAScript} verwendet, konnte erreicht werden, dass
+\Macro{setbibpreamble} auch mit der aktuellen Version von \Package{natbib}
+funktioniert (siehe \cite{package:natbib}).
+\begin{Example}
+ Sie wollen darauf hinweisen, dass das Literaturverzeichnis nicht in
+ der Reihenfolge der Zitierung im Dokument, sondern alphabetisch
+ sortiert ist. Daher setzen Sie folgende Anweisung:
+\begin{lstcode}
+ \setbibpreamble{Die Literaturangaben sind
+ alphabetisch nach den Namen der Autoren
+ sortiert. Bei mehreren Autoren wird nach dem
+ ersten Autor sortiert.\par\bigskip}
+\end{lstcode}
+ Die Anweisung \Macro{bigskip}\IndexCmd{bigskip} sorgt dafür, dass
+ zwischen der Präambel und der ersten Literaturangabe ein großer
+ Zwischenraum gesetzt wird.%
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BreakBibliography}\Parameter{Unterbrechung}
+\end{Declaration}
+Diese\textnote{Achtung!}\ChangedAt{v3.00}{\Class{scrbook}\and
+ \Class{scrreprt}\and \Class{scrartcl}} Anweisung existiert nur, wenn
+Umgebung \Environment{thebibliography} nicht durch ein Paket neu definiert
+wurde. In diesem Fall ist es möglich, mit dieser Anweisung das
+Literaturverzeichnis zu unterbrechen. Die \PName{Unterbrechung} wird dann
+innerhalb einer Gruppe ausgegeben. Eine solche \PName{Unterbrechung} könnte
+beispielsweise eine Überschrift mit Hilfe von \DescRef{\LabelBase.cmd.minisec}
+sein. Leider gibt es bisher keine Möglichkeit, diese Anweisung beispielsweise
+mit Hilfe eines speziellen Eintrags in der Literaturdatenbank von \BibTeX{}
+erzeugen zu lassen. Daher kann sie derzeit nur von Anwendern verwendet werden,
+die das Literaturverzeichnis selbst editieren. Ihr Nutzen ist damit sehr
+beschränkt.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AfterBibliographyPreamble}\Parameter{Anweisungen}
+ \Macro{AtEndBibliography}\Parameter{Anweisungen}
+\end{Declaration}
+In\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}
+einigen Fällen ist es nützlich, wenn man nach der Präambel des
+Literaturverzeichnisses oder unmittelbar vor dem Ende des
+Literaturverzeichnisses noch \PName{Anweisungen} ausführen kann. Dies ist mit
+Hilfe dieser beiden Anweisungen möglich.
+\begin{Example}
+ Sie wollen, dass das Literaturverzeichnis nicht im Blocksatz, sondern im
+ linksbündigen Flattersatz ausgegeben wird. Dies ist einfach mit:
+\begin{lstcode}
+ \AfterBibliographyPreamble{\raggedright}
+\end{lstcode}
+ zu erreichen. Sie können diese Anweisung an beliebiger Stelle vor dem
+ Literaturverzeichnis verwenden. Es wird jedoch empfohlen, sie in die
+ Präambel des Dokuments oder ein eigenes Paket zu schreiben.
+\end{Example}
+Die\textnote{Achtung!} Realisierung dieser Anweisung bedarf bei Verwendung
+eines Pakets, das die Umgebung für Literaturverzeichnisse umdefiniert, der
+Zusammenarbeit mit dem entsprechenden Paket (siehe
+\autoref{sec:maincls-experts.coexistence},
+\DescPageRef{maincls-experts.cmd.AfterBibliographyPreamble}).%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Stichwortverzeichnis}
+\seclabel{index}
+\BeginIndexGroup
+
+Das Stichwortverzeichnis ist auch unter den Bezeichnungen Index oder Register
+bekannt. Zur generellen Verwendung eines Stichwortverzeichnisses sei auf
+\cite{l2kurz} sowie auf \cite{makeindex} und \cite{xindy} verwiesen. Wird ein
+Paket verwendet, das selbst Anweisungen und Umgebungen für das
+Stichwortverzeichnis zur Verfügung stellt, so schwindet eventuell der
+Einfluss, den \KOMAScript{} auf dieses Verzeichnis hat. Dies gilt
+beispielsweise bei Verwendung von \Package{index}\IndexPackage{index},
+nicht jedoch bei Verwendung von
+\Package{splitidx}\IndexPackage{splitidx} (siehe
+\cite{package:splitindex}).
+
+
+\begin{Declaration}
+ \OptionVName{index}{Einstellung}%
+\end{Declaration}
+\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}%
+In der Voreinstellung
+\OptionValue{index}{nottotoc}\IndexOption{index~=\textKValue{nottotoc}} 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
+zuletzt steht, benötigt es eigentlich auch keinen
+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~=\textKValue{totoc}} erreicht
+werden. Soll\ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}\important{\OptionValue{index}{numbered}} der Index
+entgegen aller Gepflogenheiten sogar nummeriert werden, so verwendet man
+Option \OptionValue{index}{numbered}. Siehe hierzu auch Option
+\DescRef{\LabelBase.option.toc} mit dem Wert \PValue{index} oder
+\PValue{indexnumbered} in \autoref{sec:\LabelBase.toc} ab
+\DescPageRef{\LabelBase.option.toc.index}.
+
+Werden beispielsweise mit Hilfe von \Package{splitidx}\IndexPackage{splitidx}
+(siehe \cite{package:splitindex}) mehrere Stichwortverzeichnisse erstellt, so
+kann es sinnvoll sein, diese unter einer gemeinsamen Überschrift zusammen zu
+fassen. Um dies zu ermöglichen, kann mit \OptionValue{index}{leveldown}%
+\ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}\important{\OptionValue{index}{leveldown}} das Verzeichnis
+eine Gliederungsebene tiefer als üblich angesiedelt werden. Bei
+\Class{scrbook} und \Class{scrreprt} ist es dann also kein Kapitel mehr,
+sondern ein Abschnitt, bei \Class{scrartcl} entsprechend ein
+Unterabschnitt. Option \OptionValue{index}{standardlevel}%
+\ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}\important{\OptionValue{index}{standardlevel}} ist das
+Gegenstück dazu und hebt ein eventuell zuvor verwendetes
+\OptionValue{index}{leveldown} wieder auf.
+
+Eine Zusammenfassung der möglichen Werte für die \PName{Einstellung} von
+\Option{index} ist in \autoref{tab:maincls.index} zu finden.
+
+\begin{table}
+ \caption[{Mögliche Werte für Option \Option{index}}]{Mögliche Werte für
+ Option \Option{index} zur Einstellung des Stich\-wort\-verzeichnisses}
+ \label{tab:maincls.index}
+ \begin{desctabular}
+ \pventry{leveldown}{%
+ \ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Der Index wird um eine Gliederungsebene nach unten verschoben.%
+ \IndexOption{index~=\textKValue{leveldown}}%
+ }%
+ \entry{\PValue{notoc}, \PValue{nottotoc}, \PValue{plainheading}}{%
+ Das Stichwortverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis.%
+ \IndexOption{index~=\textKValue{nottotoc}}}%
+ \entry{\PValue{numbered}, \PValue{tocnumbered}, \PValue{totocnumbered},
+ \PValue{numberedtoc}, \PValue{numberedtotoc}}{%
+ \ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Das Stichwortverzeichnis erhält einen Eintrag im Inhaltsverzeichnis und
+ wird nummeriert.%
+ \IndexOption{index~=\textKValue{numbered}}}%
+ \pventry{standardlevel}{%
+ \ChangedAt{v3.18}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}}%
+ Der Index liegt auf der üblichen Gliederungsebene.%
+ \IndexOption{index~=\textKValue{standardlevel}}%
+ }%
+ \entry{\PValue{toc}, \PValue{totoc}, \PValue{notnumbered}}{%
+ Das Stichwortverzeichnis erhält einen Eintrag im Inhaltsverzeichnis,
+ ohne dass er nummeriert wird.%
+ \IndexOption{index~=\textKValue{totoc}}}%
+ \end{desctabular}
+\end{table}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setindexpreamble}\Parameter{Präambel}
+\end{Declaration}%
+Analog zur Präambel des Literaturverzeichnisses können Sie auch das
+Stichwortverzeichnis mit einer Präambel versehen. Dies findet häufig
+dann Anwendung, wenn es mehr als einen Index gibt oder im Index
+unterschiedliche Arten der Referenzierung durch unterschiedliche
+Hervorhebung der Seitenzahlen markiert werden.
+\begin{Example}
+ Sie haben ein Dokument, in dem Begriffe sowohl definiert als auch
+ verwendet werden. Die Seitenzahlen der Begriffsdefinitionen sind
+ fett dargestellt. Natürlich möchten Sie gerne auf diesen Umstand
+ hinweisen. Also setzen Sie eine entsprechende Präambel für den
+ Index:
+\begin{lstcode}
+ \setindexpreamble{Alle \textbf{fett} gedruckten
+ Seitenzahlen sind Referenzen auf die Definition
+ des jeweiligen Begriffs. Demgegenüber geben
+ normal gedruckte Seitenzahlen die Seiten der
+ Verwendung des jeweiligen Begriffs wieder.\par
+ \bigskip}
+\end{lstcode}
+\end{Example}
+
+Bitte\textnote{Achtung!} beachten Sie, dass für die erste Seite des Index der
+Seitenstil umgeschaltet wird. Welcher Seitenstil hierbei Verwendung findet,
+ist im Makro \DescRef{\LabelBase.cmd.indexpagestyle} abgelegt (siehe
+\autoref{sec:\LabelBase.pagestyle},
+\DescPageRef{\LabelBase.cmd.indexpagestyle}).
+
+Für die Erstellung, Sortierung und Ausgabe des Stichwortverzeichnisses
+sind die üblichen Standard-\LaTeX-Pakete und Zusatzprogramme
+zuständig.%
+\iftrue % Umbruchoptimierung
+ \iffree{}{ %
+ Besonders empfehlenswert ist beispielsweise das Paket
+ \Package{imakeidx}\IndexPackage{imakeidx} (siehe \cite{package:imakeidx}),
+ das unter anderem den Aufruf des Programms \File{makeindex} oder
+ \File{xindy} automatisiert. Damit entfällt eine häufige Fehlerquelle
+ insbesondere für \LaTeX-Anfänger.%
+ }
+ Von {\KOMAScript} werden genau wie von den Standardklassen
+ lediglich die grundlegenden Makros und Umgebungen dafür zur Verfügung
+ gestellt.%
+\fi
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide.tex"
+%%% End:
+
+% LocalWords: Teildokumenten Klassenoption Tabellenunterschrift float
+% LocalWords: Satzspiegels Schrifteinstellung Abschnittseinträgen Nachspann
+% LocalWords: Vakatseiten Kolumnentitel Sternformen Teiltabelle Seitenstil
+
+
+
+
+% LocalWords: Bildunterschriften Dokumentpräambel Tabellenüberschriften
+% LocalWords: Gleitumgebungstyp Kapitelüberschriften Standardklassen
+% LocalWords: serifenlosen Abschnittseinträge Gliederungsebenen Paketoption
+% LocalWords: Nummerierungsstilen Seitenstilen Seitenankern Vakatseite
+% LocalWords: Nummerierungsstil Eingangskommentar Nummerierungsstils
+% LocalWords: Standardanweisung Einstellmöglichkeiten Umbruchkorrekturtext
+% LocalWords: Inhaltsverzeichniseintrag Formatierungsänderungen Präfixzeile
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrdatetime.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrdatetime.tex
new file mode 100644
index 0000000000..0a39c2767b
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrdatetime.tex
@@ -0,0 +1,459 @@
+% ======================================================================
+% scrdatetime.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrdatetime.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 scrpage2 of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel über scrpage2 in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{scrdatetime.tex}
+ [$Date: 2018-02-05 09:57:42 +0100 (Mon, 05 Feb 2018) $
+ KOMA-Script guide (chapter: scrdate, scrtime)]
+
+\chapter{Der Wochentag mit \Package{scrdate}}
+\labelbase{scrdate}
+\BeginIndexGroup
+\BeginIndex{Package}{scrdate}
+
+Ursprünglich sollte das Paket \Package{scrdate} lediglich den Wochentag zum
+aktuellen Datum liefern. Inzwischen bietet es dies und etwas mehr für jedes
+beliebige Datum im Gregorianischen Kalender.
+
+\begin{Declaration}
+ \Macro{CenturyPart}\Parameter{Jahr}
+ \Macro{DecadePart}\Parameter{Jahr}
+\end{Declaration}%
+Die\ChangedAt{v3.05a}{\Package{scrdate}} Anweisung \Macro{CenturyPart} ergibt
+den Wert der Jahrhundert-Stellen eines Jahres. Die Anweisung
+\Macro{DecadePart} ergibt hingegen den Wert der übrigen Stellen, also der
+Einer und Zehner. Dabei darf die Jahreszahl beliebig viele Stellen aufweisen.
+Der Wert kann direkt zur Zuweisung an einen Zähler oder für Berechnungen mit
+Hilfe von \Macro{numexpr}\IndexCmd{numexpr} verwendet werden. Für die
+Ausgabe\textnote{Achtung!} als arabische Zahl ist \Macro{the}\IndexCmd{the}
+voran zu stellen.
+
+\begin{Example}
+ Sie wollen berechnen, in welchem Jahrhundert das aktuelle Jahr liegt und
+ dies ausgeben.
+\begin{lstcode}
+ Das Jahr \the\year\ ist das Jahr
+ \the\DecadePart{\year} des
+ \the\numexpr \CenturyPart{\year}+1\relax.
+ Jahrhunderts.
+\end{lstcode}
+ Als Ergebnis erhalten Sie:
+ \begin{quote}
+ Das Jahr \the\year\ ist das Jahr \the\DecadePart{\year} des \the\numexpr
+ \CenturyPart{\year}+1\relax. Jahrhunderts.
+ \end{quote}
+\end{Example}%
+
+Bitte\textnote{Achtung!} beachten Sie, dass hier die Zählweise verwendet
+wird, bei der das Jahr 2000 das Jahr~0 -- also das erste Jahr -- des
+21.~Jahrhunderts ist. Bei Bedarf kann aber, wie im Beispiel für die
+Ordnungszahl gezeigt, mit \Macro{numexpr} eine Korrektur herbeigeführt
+werden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DayNumber}\Parameter{Jahr}\Parameter{Monat}\Parameter{Tag}
+ \Macro{ISODayNumber}\Parameter{ISO-Datum}
+\end{Declaration}%
+Diese\ChangedAt{v3.05a}{\Package{scrdate}} beiden Anweisungen geben den Wert
+der Nummer des Wochentags\Index{Wochentag} zu einem Datum zurück. Sie
+unterscheiden sich nur in der Art der Angabe des Datums. Während bei
+\Macro{DayNumber} Jahr, Monat und Tag des gewünschten Datums eigene Parameter
+sind, wird bei \Macro{ISODayNumber} das Datum in ISO-Schreibweise,
+\PName{Jahr}\texttt{-}\PName{Monat}\texttt{-}\PName{Tag} angegeben. Dabei
+spielt es keine Rolle, ob Monat und Tag ein- oder zweistellig angegeben
+werden. Der Wert kann direkt zur Zuweisung an einen Zähler oder für
+Berechnungen mit Hilfe von \Macro{numexpr}\IndexCmd{numexpr} verwendet
+werden. Für die Ausgabe\textnote{Achtung!} als arabische Zahl ist
+\Macro{the}\IndexCmd{the} voran zu stellen.
+
+\begin{Example}
+ Sie wollen die Nummer des Wochentags des 1.~Mai~2027 wissen.
+\begin{lstcode}
+ Der 1.~Mai~2027 hat die Wochentagsnummer
+ \the\ISODayNumber{2027-5-1}.
+\end{lstcode}
+ Als Ergebnis erhalten Sie:
+ \begin{quote}
+ Der 1.~Mai~2027 hat die Wochentagsnummer
+ \the\ISODayNumber{2027-5-1}.
+ \end{quote}
+\end{Example}
+
+Als Besonderheit ist es sogar möglich, von einem vorgegebenen Datum eine
+gewünschte Anzahl an Tagen in die Zukunft oder Vergangenheit zu gehen.
+\begin{Example}
+ Sie wollen die Nummer des Wochentags wissen, den wir in 12~Tagen haben und
+ den wir 24~Tage vor dem 24.~Dezember~2027 gehabt haben werden.
+\begin{lstcode}
+ In 12~Tagen haben wir die Wochentagsnummer
+ \the\DayNumber{\year}{\month}{\day+12} und
+ 24~Tage vor dem 24.~Dezember~2027 wird es
+ die Nummer \the\ISODayNumber{2027-12-24-24}
+ gewesen sein.
+\end{lstcode}
+ Als Ergebnis erhalten Sie beispielsweise:
+ \begin{quote}
+ In 12~Tagen haben wir die Wochentagsnummer
+ \the\DayNumber{\year}{\month}{\day+12} und
+ 24~Tage vor dem 24.~Dezember~2027 wird es
+ die Nummer \the\ISODayNumber{2027-12-24-24}
+ gewesen sein.
+ \end{quote}
+\end{Example}
+
+Die Wochentage werden dabei wie folgt nummeriert: Sonntag\,=\,0, Montag\,=\,1,
+Dienstag\,=\,2, Mittwoch\,=\,3, Donnerstag\,=\,4, Freitag\,=\,5 und
+Samstag\,=\,6.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DayNameByNumber}\Parameter{Wochentagsnummer}
+ \Macro{DayName}\Parameter{Jahr}\Parameter{Monat}\Parameter{Tag}
+ \Macro{ISODayName}\Parameter{ISO-Datum}
+\end{Declaration}%
+Üblicherweise\ChangedAt{v3.05a}{\Package{scrdate}} ist man weniger an der
+Nummer eines Wochentags als dem Namen des Wochentags interessiert. Daher
+liefert die Anweisung \Macro{DayNameByNumber} den Namen des Wochentags zu
+einer Wochentagsnummer zurück, die man beispielsweise mit einer der beiden
+zuvor erklärten Anweisungen \DescRef{\LabelBase.cmd.DayNumber} oder
+\DescRef{\LabelBase.cmd.ISODayNumber} bestimmt hat. Die beiden Anweisungen
+\Macro{DayName} und \Macro{ISODayName} liefern entsprechend den Wochentag zu
+einem bestimmten Datum.
+
+\begin{Example}
+ Sie wollen den Wochentag des 24.~Dezembers~2027 wissen.
+\begin{lstcode}
+ Bitte zahlen Sie bis zum \ISODayName{2027-12-24},
+ den 24.\,12.~2027, die Summe von \dots
+\end{lstcode}
+ Als Ergebnis erhalten Sie:
+ \begin{quote}
+ Bitte zahlen Sie bis zum
+ \ISODayName{2027-12-24}, den
+ 24.\,12.~2027, die Summe von \dots
+ \end{quote}
+\end{Example}
+
+Als Besonderheit ist es auch hier möglich, in gewissem Umfang Berechnungen
+anzustellen:
+\begin{Example}
+ Sie wollen den Wochentag wissen, den wir in 12~Tagen haben und
+ den wir 24~Tage vor dem 24.~Dezember~2027 hatten.
+\begin{lstcode}
+ In 12~Tagen haben wir einen
+ \DayName{\year}{\month}{\day+12} und
+ 24~Tage vor dem 24.~Dezember~2027 ist ein
+ \ISODayName{2027-12-24-24}, während zwei Wochen
+ und drei Tage nach einem Mittwoch ein
+ \DayNameByNumber{3+2*7+3} folgt.
+\end{lstcode}
+ Als Ergebnis erhalten Sie beispielsweise:
+ \begin{quote}
+ In 12~Tagen haben wir einen
+ \DayName{\year}{\month}{\day+12} und
+ 24~Tage vor dem 24.~Dezember~2027 ist ein
+ \ISODayName{2027-12-24-24}, während
+ zwei Wochen und drei Tage nach
+ einem Mittwoch ein \DayNameByNumber{3+2*7+3}
+ folgt.
+ \end{quote}
+\end{Example}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ISOToday}
+ \Macro{IsoToday}
+ \Macro{todaysname}
+ \Macro{todaysnumber}
+\end{Declaration}%
+In den bisherigen Beispielen dieses Abschnitts wurde das aktuelle Datum immer
+recht umständlich über die \TeX-Register \Macro{year}\IndexCmd{year},
+\Macro{month}\IndexCmd{month}, \Macro{day}\IndexCmd{day} bestimmt. Die
+Anweisungen \Macro{ISOToday}\ChangedAt{v3.05a}{\Package{scrdate}} und
+\Macro{IsoToday} liefern direkt das aktuelle Datum in ISO-Schreibweise. Sie
+unterscheiden sich lediglich darin, dass \Macro{ISOToday} Monat und Tag immer
+zweistellig ausgibt, während \Macro{IsoToday} Monat und Tag bei Werten kleiner
+10 einstellig ausgibt. Die Anweisung \Macro{todaysname} bietet direkt den
+aktuellen Wochentag, während \Macro{todaysnumber} den Wert des aktuellen
+Wochentags liefert. Näheres zur Verwendung dieses Wertes ist den obigen
+Erklärungen zu den Anweisungen \DescRef{scrdate.cmd.DayNumber} und \DescRef{scrdate.cmd.ISODayNumber} zu
+entnehmen.
+
+\begin{Example}
+ Ich will Ihnen zeigen, an was für einem Wochentag dieses Dokument gesetzt
+ wurde. Dazu schreibe ich:
+\begin{lstcode}
+ Dieses Dokument entstand an einem \todaysname.
+\end{lstcode}
+ Das Ergebnis lautet:
+ \begin{quote}
+ Dieses Dokument entstand an einem \todaysname.
+ \end{quote}
+\end{Example}
+
+\begin{Explain}
+ Wenn\textnote{Tipp!} Sie den Namen des Tages in Kleinbuchstaben benötigen,
+ weil das in der entsprechenden Sprache innerhalb des Satzes so üblich ist,
+ können Sie das erreichen, obwohl die Namen der Wochentage in
+ \Package{scrdate} alle groß geschrieben sind. Greifen Sie mit
+ % Umbruchkorrektur: listings
+\begin{lstcode}
+ \MakeLowercase{\todaysname}
+\end{lstcode}
+ einfach auf die \LaTeX-Anweisung
+ \Macro{MakeLowercase}\IndexCmd{MakeLowercase}%
+ \important{\Macro{MakeLowercase}} zurück. Diese wandelt ihr Argument
+ komplett in Kleinbuchstaben. Natürlich funktioniert dieser Tipp auch für
+ obige Anweisungen \DescRef{scrdate.cmd.DayNameByNumber}\IndexCmd{DayNameByNumber},
+ \DescRef{scrdate.cmd.DayName}\IndexCmd{DayName} und
+ \DescRef{scrdate.cmd.ISODayName}\IndexCmd{ISODayName}.%
+\end{Explain}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{nameday}\Parameter{Name}
+\end{Declaration}%
+So wie mit \DescRef{maincls.cmd.date}\IndexCmd{date} die Ausgabe von
+\Macro{today} direkt geändert werden kann, setzt \Macro{nameday} die Ausgabe
+von \DescRef{scrdate.cmd.todaysname} auf den Wert \PName{Name}.
+\begin{Example}
+ Sie setzen mit \DescRef{maincls.cmd.date} das aktuelle Datum auf einen
+ festen Wert. Für die Ausgabe des zugehörigen Wochentags interessiert es nur,
+ dass dieser Tag ein Werktag war. Daher schreiben Sie
+\begin{lstcode}
+ \nameday{Werktag}
+\end{lstcode}
+ und erhalten so mit dem Satz aus dem vorherigen Beispiel zu
+ \DescRef{scrdate.cmd.todaysname}:
+ \begin{quote}\nameday{Werktag}
+ Dieses Dokument entstand an einem {\todaysname}.
+ \end{quote}
+\end{Example}
+Für \DescRef{scrdate.cmd.ISOToday}\IndexCmd{ISOToday} und
+\DescRef{scrdate.cmd.IsoToday}\IndexCmd{IsoToday} existieren keine entsprechenden
+Anweisungen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{newdaylanguage}\Parameter{Sprache}
+ \Parameter{Montag}\Parameter{Dienstag}
+ \Parameter{Mittwoch}\Parameter{Donnerstag}
+ \Parameter{Freitag}\Parameter{Samstag}
+ \Parameter{Sonntag}
+\end{Declaration}
+Das \Package{scrdate}-Paket beherrscht derzeit die folgenden Sprachen:
+\begin{itemize}\raggedright\setlength{\itemsep}{.5\itemsep}
+\item Dänisch (\PValue{danish}),
+\item Deutsch (\PValue{austrian}\ChangedAt{v3.08b}{\Package{scrdate}},
+ \PValue{german}, \PValue{naustrian}, \PValue{ngerman}, \PValue{nswissgerman},
+ \PValue{swissgerman}\ChangedAt{v3.13}{\Package{scrdate}}),
+\item Englisch (\PValue{american}\ChangedAt{v3.13}{\Package{scrdate}},
+ \PValue{australian}, \PValue{british}, \PValue{canadian}, \PValue{english},
+ \PValue{newzealand}, \PValue{UKenglish}, \PValue{ukenglish},
+ \PValue{USenglish}, \PValue{usenglish}),
+\item Finnisch (\PValue{finnish}),
+\item Französisch (\PValue{acadian}, \PValue{canadien},
+ \PValue{francais}\ChangedAt{v3.13}{\Package{scrdate}}, \PValue{french}),
+\item Italienisch (\PValue{italian}),
+\item Kroatisch (\PValue{croatian}),
+\item Niederländisch (\PValue{dutch}),
+\item Norwegisch (\PValue{norsk}),
+\item Polnisch (\PValue{polish}\ChangedAt{v3.13}{\Package{scrdate}}),
+\item Schwedisch (\PValue{swedish}),
+\item Slowakisch (\PValue{slovak}),
+\item Spanisch (\PValue{spanish}),
+\item Tschechisch (\PValue{czech}\ChangedAt{v3.13}{\Package{scrdate}}).
+\end{itemize}
+Es kann aber auch für andere Sprachen konfiguriert werden. Dazu gibt man als
+erstes Argument von \Macro{newdaylanguage} den Namen der Sprache an und als
+weitere Parameter die Namen der entsprechenden Wochentage.
+
+Bei der aktuellen Version ist es auch egal, ob \Package{scrdate} vor oder nach
+\Package{ngerman}\IndexPackage{ngerman}, \Package{babel}\IndexPackage{babel}
+oder ähnlichen Paketen geladen wird, in jedem Falle wird die korrekte Sprache
+gewählt, vorausgesetzt diese wird unterstützt.
+
+\begin{Explain}
+ Etwas genauer ausgedrückt: Solange die Sprachauswahl in einer zu
+ \Package{babel}\IndexPackage{babel} kompatiblen Form erfolgt und die Sprache
+ \Package{scrdate} bekannt ist, wird die Sprache korrekt gewählt. Ist dies
+ nicht der Fall, werden (US-)englische Ausdrücke verwendet.
+\end{Explain}
+
+Natürlich ist es sinnvoll Definitionen für bisher nicht unterstützte Sprachen
+an den \KOMAScript-Autor zu melden. In diesem Fall stehen die Chancen gut,
+dass künftige \KOMAScript-Versionen die Sprache ebenfalls unterstützen
+werden.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\chapter{Die aktuelle Zeit mit \Package{scrtime}}
+\labelbase{scrtime}
+\BeginIndexGroup
+\BeginIndex{Package}{scrtime}
+
+Mit Hilfe dieses Pakets kann die Frage nach der aktuellen Zeit beantwortet
+werden. Seit Version~3.05 unterstützt das Paket auch die von den
+\KOMAScript-Klassen und diversen anderen \KOMAScript-Paketen bekannten
+Möglichkeiten zur Angabe von Optionen. Siehe dazu beispielsweise
+\autoref{sec:typearea.options}.
+
+\begin{Declaration}%
+ \Macro{thistime}\OParameter{Trennung}
+ \Macro{thistime*}\OParameter{Trennung}
+\end{Declaration}%
+\Macro{thistime} liefert die aktuelle Zeit\Index{Zeit} in Stunden und
+Minuten. In der Ausgabe wird zwischen den Stunden und Minuten das optionale
+Argument \PName{Trennung} gesetzt. Voreingestellt ist das Zeichen
+»\PValue{:}«.
+
+\Macro{thistime*} funktioniert fast genau wie \Macro{thistime}. Der
+einzige Unterschied besteht darin, dass im Gegensatz zu
+\Macro{thistime} bei \Macro{thistime*} die Minutenangaben bei Werten
+kleiner 10 nicht durch eine vorangestellte Null auf zwei Stellen
+erweitert wird.
+\begin{Example}
+ Die Zeile
+\begin{lstcode}
+ Ihr Zug geht um \thistime\ Uhr.
+\end{lstcode}
+ liefert als Ergebnis beispielsweise eine Zeile wie
+ \begin{quote}
+ Ihr Zug geht um \thistime\ Uhr.
+ \end{quote}
+ oder
+ \begin{quote}
+ Ihr Zug geht um 23:09 Uhr.
+ \end{quote}
+ \bigskip
+ Demgegenüber liefert die Zeile
+\begin{lstcode}
+ Beim nächsten Ton ist es \thistime*[\ Uhr,\ ]
+ Minuten und 42 Sekunden.
+\end{lstcode}
+ als mögliches Ergebnis etwas wie
+ \begin{quote}
+ Beim nächsten Ton ist es 8\ Uhr,\ 41 Minuten und 42 Sekunden.
+ \end{quote}
+ oder
+ \begin{quote}
+ Beim nächsten Ton ist es 23\ Uhr,\ 9 Minuten und 42 Sekunden.
+ \end{quote}
+\end{Example}
+\EndIndexGroup
+
+
+\begin{Declaration}%
+ \Macro{settime}\Parameter{Wert}
+\end{Declaration}%
+\DescRef{scrtime.cmd.settime} setzt die Ausgabe von \DescRef{scrtime.cmd.thistime} und
+\DescRef{scrtime.cmd.thistime*} auf einen festen \PName{Wert}%
+%\footnote{Allerdings darf man nicht erwarten, dass nun die Zeit
+% stillsteht!}
+. %
+Anschließend wird das optionale Argument von \DescRef{scrtime.cmd.thistime} bzw.
+\DescRef{scrtime.cmd.thistime*} ignoriert, da ja die komplette Zeichenkette, die
+\DescRef{scrtime.cmd.thistime} bzw. \DescRef{scrtime.cmd.thistime*} nun liefert, hiermit explizit
+festgelegt wurde.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{12h}{Ein-Aus-Wert}
+\end{Declaration}%
+\BeginIndex{Option}{24h}%
+Mit der Option \Option{12h}\ChangedAt{v3.05a}{\Package{scrtime}} kann gewählt
+werden, ob die Zeit bei \DescRef{scrtime.cmd.thistime} und \DescRef{scrtime.cmd.thistime*} im 12-Stunden-
+oder 24-Stunden-Format ausgegeben 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. Wird die Option ohne Wert-Angabe verwendet, so wird der Wert
+\PValue{true} angenommen, also auf das 12-Stunden-Format geschaltet.
+Voreingestellt\textnote{Voreinstellung} ist hingegen das 24-Stunden-Format.%
+%\footnote{Leider beherrscht das \Package{scrtime}-Paket noch nicht die
+% Sternzeit nach \textsc{StarTrek}\Index{StarTrek}, ein echter
+% Mangel!}
+
+Die Option kann wahlweise als Klassenoption bei
+\DescRef{typearea.cmd.documentclass}, als Paketoption bei
+\DescRef{typearea.cmd.usepackage} oder auch nach dem Laden von
+\Package{scrtime} per \DescRef{typearea.cmd.KOMAoptions} oder
+\DescRef{typearea.cmd.KOMAoption} (siehe beispielsweise
+\autoref{sec:typearea.options}, \DescPageRef{typearea.cmd.KOMAoptions})
+gesetzt werden. Sie verliert jedoch bei einem Aufruf von
+\DescRef{scrtime.cmd.settime} ihre Gültigkeit. Die Uhrzeit wird nach
+Verwendung dieser Anweisung nur noch mit dem dort angegebenen Wert im dort
+verwendeten Format ausgegeben.
+
+Rein\textnote{Achtung!} aus Gründen der Kompatibilität zu früheren Versionen
+von \Package{scrtime} wird bei \DescRef{typearea.cmd.documentclass} und
+\DescRef{typearea.cmd.usepackage} auch noch die Option \Option{24h} zur
+Umschaltung auf das 24-Stunden-Format unterstützt. Deren Verwendung wird
+jedoch nicht mehr empfohlen.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% 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: Gregorianischen Zählweise Ordnungszahl
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrextend.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrextend.tex
new file mode 100644
index 0000000000..c124db974c
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrextend.tex
@@ -0,0 +1,230 @@
+% ======================================================================
+% scrextend.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrextend.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% Package scrextend for Document Writers
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Paket scrextend für Dokument-Autoren
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{scrextend.tex}
+ [$Date: 2018-01-24 11:44:29 +0100 (Wed, 24 Jan 2018) $
+ KOMA-Script package scrextend]
+
+\chapter[tocentry={Grundlegende Fähigkeiten der
+ \KOMAScript-Klassen\protect\linebreak
+ mit Hilfe des Pakets \Package{scrextend} anderen Klassen erschließen},
+ head={Fähigkeiten von \KOMAScript-Klassen mit \Package{scrextend}}]
+{Grundlegende Fähigkeiten der \KOMAScript-Klassen mit Hilfe des Pakets
+ \Package{scrextend} anderen Klassen erschließen}
+\labelbase{scrextend}
+\BeginIndexGroup
+\BeginIndex{Package}{scrextend}%
+
+Es gibt einige Möglichkeiten, die allen \KOMAScript-Klassen gemeinsam
+sind. Dies betrifft in der Regel nicht nur die Klassen \Class{scrbook},
+\Class{scrreprt} und \Class{scrartcl}, die als Ersatz für die Standardklassen
+\Class{book}, \Class{report} und \Class{article} für Bücher, Berichte und
+Artikel gedacht sind, sondern in weiten Teilen auch die \KOMAScript-Klasse
+\Class{scrlttr2}, die als Nachfolger von \Class{scrlettr} für Briefe gedacht
+ist. Diese grundlegenden Möglichkeiten, die in den genannten Klassen zu finden
+sind, werden von \KOMAScript{} ab Version~3.00 auch vom Paket
+\Package{scrextend} bereitgestellt. Dieses Paket sollte
+nicht\textnote{Achtung!} mit \KOMAScript-Klassen verwendet werden. Es ist
+ausschließlich zur Verwendung mit anderen Klassen gedacht. Der Versuch, das
+Paket mit einer \KOMAScript-Klasse zu laden, wird von \Package{scrextend}
+erkannt und mit einer Warnung abgelehnt.
+
+Dass \hyperref[cha:scrlttr2]{\Package{scrletter}}\IndexPackage{scrletter}
+nicht nur mit \KOMAScript-Klassen, sondern auch mit den Standardklassen
+verwendet werden kann, liegt übrigens teilweise an \Package{scrextend}. Stellt
+\hyperref[cha:scrlttr2]{\Package{scrletter}} nämlich fest, dass es nicht mit
+einer \KOMAScript-Klasse verwendet wird, so lädt es automatisch
+\Package{scrextend}. Damit stehen dann alle unbedingt benötigten Möglichkeiten
+der \KOMAScript-Klassen zur Verfügung.
+
+Es gibt natürlich keine Garantie, dass \Package{scrextend} mit jeder
+beliebigen Klasse zusammenarbeitet. Es ist primär für die Erweiterung der
+Standardklassen und davon abgeleiteten Klassen gedacht. In jedem Fall sollten
+Benutzer zunächst prüfen, ob die verwendete Klasse nicht selbst entsprechende
+Möglichkeiten bereitstellt.
+
+Neben den in diesem Kapitel beschriebenen Möglichkeiten gibt es einige
+weitere, die jedoch hauptsächlich für Klassen- und Paketautoren gedacht
+sind. Diese sind in \autoref{cha:scrbase}, ab \autopageref{cha:scrbase} zu
+finden. Das dort dokumentierte Paket
+\hyperref[cha:scrbase]{\Package{scrbase}}%
+\important{\hyperref[cha:scrbase]{\Package{scrbase}}}\IndexPackage{scrbase}
+wird von allen \KOMAScript-Klassen und dem Paket \Package{scrextend}
+verwendet.
+
+Auch das Paket \hyperref[cha:scrlfile]{\Package{scrlfile}}%
+\important{\hyperref[cha:scrlfile]{\Package{scrlfile}}}\IndexPackage{scrlfile}
+aus \autoref{cha:scrlfile} ab \autopageref{cha:scrlfile} wird von allen
+\KOMAScript-Klassen und dem Paket \Package{scrextend} geladen. Daher stehen
+auch dessen Möglichkeiten bei Verwendung von \Package{scrextend} zur
+Verfügung.
+
+\iftrue % Umbruchkorrekturtext
+Im Unterschied dazu wird das ebenfalls für Klassen- und Paketautoren gedachte
+Paket \hyperref[cha:tocbasic]{\Package{tocbasic}} (siehe
+\autoref{cha:tocbasic} ab \autopageref{cha:tocbasic}) nur von den Klassen
+\Class{scrbook}, \Class{scrreprt} und \Class{scrartcl} geladen, so dass die
+dort definierten Möglichkeiten auch nur in diesen Klassen und nicht in
+\Package{scrextend} zu finden sind. Natürlich kann
+\hyperref[cha:tocbasic]{\Package{tocbasic}} aber auch zusammen mit
+\Package{scrextend} verwendet werden.%
+\fi
+
+\LoadCommonFile{options}% \section{Frühe oder späte Optionenwahl bei \KOMAScript}
+
+\LoadCommonFile{compatibility}% \section{Kompatibilität zu früheren Versionen von \KOMAScript}
+
+
+\section{Optionale, erweiterte Möglichkeiten}
+\seclabel{optionalFeatures}
+
+Das Paket \Package{scrextend} kennt optional verfügbare, erweiterte
+Möglichkeiten. Das sind Möglichkeiten, die in der Grundeinstellung nicht
+vorhanden sind, aber zusätzlich ausgewählt werden können. Diese
+sind beispielsweise deshalb optional, weil sie potentiell in Konflikt mit den
+Möglichkeiten der Standardklassen oder häufig benutzter Pakete stehen.
+
+\begin{Declaration}
+ \OptionVName{extendedfeature}{Möglichkeit}
+\end{Declaration}
+Mit dieser Option kann eine optionale Möglichkeit von \Package{scrextend}
+ausgewählt werden. Diese Option steht nur während des Ladens von
+\Package{scrextend} zur Verfügung. Anwender geben diese Option daher als
+optionales Argument von
+\DescRef{\LabelBase.cmd.usepackage}\PParameter{scrextend} an. %
+\iffree{%
+ Eine Übersicht über die verfügbaren optionalen Möglichkeiten bietet
+ \autoref{tab:scrextend.optionalFeatures}.
+
+ \begin{table}
+ \caption[{Optional verfügbare, erweiterte Möglichkeiten
+ von \Package{scrextend}}]{Übersicht über die optional verfügbaren,
+ erweiterten Möglichkeiten von \Package{scrextend}}
+ \label{tab:scrextend.optionalFeatures}
+ \begin{desctabular}
+ \entry{\PName{title}}{%
+ die Titelseiten werden auf die Möglichkeiten der \KOMAScript-Klassen
+ erweitert; dies betrifft neben den Anweisungen für die Titelseiten
+ auch die Option \DescRef{\LabelBase.option.titlepage} (siehe
+ \autoref{sec:scrextend.titlepage}, ab
+ \autopageref{sec:scrextend.titlepage})%
+ }
+ \end{desctabular}
+ \end{table}%
+}{%
+ \par%
+ Die derzeit einzige optionale Möglichkeit ist
+ \PValue{title}\IndexOption[indexmain]{extendedfeature~=\textKValue{title}}%
+ \important{\OptionValue{extendedfeature}{title}}.
+ Damit werden die Titelseiten auf die Möglichkeiten der \KOMAScript-Klassen
+ erweitert, wie sie in \autoref{sec:scrextend.titlepage} ab
+ \autopageref{sec:scrextend.titlepage} beschrieben sind.%
+}%
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{draftmode}% \section{Entwurfsmodus}
+
+\LoadCommonFile{fontsize} % \section{Wahl der Schriftgröße für das Dokument}
+
+\LoadCommonFile{textmarkup}% \section{Textauszeichnungen}
+
+\LoadCommonFile{titles}% \section{Dokumenttitel}
+
+\LoadCommonFile{oddorevenpage}% \section{Erkennung von rechten und linken Seiten}
+
+
+\section{Wahl eines vordefinierten Seitenstils}
+\seclabel{pagestyle}
+
+Eine der allgemeinen Eigenschaften eines Dokuments ist der
+Seitenstil\Index[indexmain]{Seiten>Stil}. Bei {\LaTeX} versteht man unter dem
+Seitenstil in erster Linie den Inhalt der Kopf- und Fußzeilen. Das Paket
+\Package{scrextend} definiert selbst keine Seitenstile, nutzt aber
+Seitenstile des \LaTeX-Kerns.
+
+
+\begin{Declaration}
+ \Macro{titlepagestyle}
+\end{Declaration}%
+\BeginIndex{}{Titel>Seitenstil}%
+Auf einigen Seiten wird mit Hilfe von
+\DescRef{maincls.cmd.thispagestyle}\IndexCmd{thispagestyle} automatisch ein
+anderer Seitenstil gewählt. Bei \Package{scrextend} betrifft dies bisher nur
+die Titelseiten und auch dies nur, wenn mit
+\OptionValueRef{\LabelBase}{extendedfeature}{title} gearbeitet wird (siehe
+\autoref{sec:scrextend.optionalFeatures},
+\DescPageRef{scrextend.option.extendedfeature}). Welcher Seitenstil in diesem
+Fall für einen
+Titelkopf\important{\OptionValueRef{\LabelBase}{titlepage}{false}}%
+\IndexOption{titlepage~=\textKValue{false}}\Index{Titel>Kopf} verwendet wird,
+ist im Makro \Macro{titlepagestyle} festgelegt. In der Voreinstellung ist das
+der Seitenstil \DescRef{maincls.pagestyle.plain}\IndexPagestyle{plain}. Dieser
+Seitenstil wird bereits im \LaTeX-Kern vordefiniert und sollte daher immer
+verfügbar sein.%
+\EndIndexGroup
+
+\LoadCommonFile{interleafpage}% \section{Vakatseiten}
+
+\LoadCommonFile{footnotes}% \section{Fußnoten}
+
+\LoadCommonFile{dictum}% \section{Schlauer Spruch}
+
+\LoadCommonFile{lists}% \section{Listen}
+
+\LoadCommonFile{marginpar}% \section{Randnotizen}
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "guide.tex"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrhack.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrhack.tex
new file mode 100644
index 0000000000..9d9b3faed2
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrhack.tex
@@ -0,0 +1,285 @@
+% ======================================================================
+% scrhack.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrhack.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 scrhack of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------------
+%
+% Kapitel über scrhack in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrhack.tex}
+ [$Date: 2018-02-05 10:50:56 +0100 (Mon, 05 Feb 2018) $
+ KOMA-Script guide (chapter: scrhack)]
+
+\chapter{Fremdpakete verbessern mit \Package{scrhack}}
+\labelbase{scrhack}
+
+\BeginIndexGroup
+\BeginIndex{Package}{scrhack}
+Einige Pakete außerhalb von \KOMAScript{} arbeiten nicht sehr gut mit
+\KOMAScript{} zusammen. Für den \KOMAScript-Autor ist es dabei oftmals sehr
+mühsam, die Autoren der jeweiligen Pakete von einer Verbesserung zu
+überzeugen. Das betrifft auch Pakete, deren Entwicklung eingestellt
+wurde. Deshalb wurde das Paket \Package{scrhack} begonnen. Dieses Paket ändert
+Anweisungen und Definitionen anderer Pakete, damit sie besser mit
+\KOMAScript{} zusammenarbeiten. Einige Änderungen sind auch bei
+Verwendung anderer Klassen nützlich.
+
+\section{Entwicklungsstand}
+\seclabel{draft}
+
+Obwohl das Paket bereits seit längerer Zeit Teil von \KOMAScript{} ist und
+von vielen Anwendern genutzt wird, hat es auch ein Problem: Bei
+der Umdefinierung von Makros fremder Pakete ist es von der genauen Definition
+und Verwendung dieser Makros abhängig. Damit ist es gleichzeitig auch von
+bestimmten Versionen dieser Pakete abhängig. Wird eine unbekannte Version
+eines der entsprechenden Pakete verwendet, kann \Package{scrhack} den
+notwendigen Patch eventuell nicht ausführen. Im Extremfall kann aber umgekehrt
+der Patch einer unbekannten Version auch zu einem Fehler führen.
+
+Da also \Package{scrhack} immer wieder an neue Versionen fremder Pakete
+angepasst werden muss, kann es niemals als fertig angesehen werden. Daher
+existiert von \Package{scrhack} dauerhaft nur eine Beta-Version. Obwohl die
+Benutzung in der Regel einige Vorteile mit sich bringt, kann die Funktion
+nicht dauerhaft garantiert werden.
+
+\LoadCommonFile{options}
+
+\section{Verwendung von \Package{tocbasic}}
+\seclabel{improvement}
+
+In den Anfängen von \KOMAScript{} gab es von Anwenderseite den Wunsch, dass
+Verzeichnisse von Gleitumgebungen, die mit dem Paket
+\Package{float}\IndexPackage{float}\important{\Package{float}} erzeugt werden,
+genauso behandelt werden wie das Abbildungsverzeichnis oder das
+Tabellenverzeichnis, das von den \KOMAScript-Klassen selbst angelegt
+wird. Damals setzte sich der \KOMAScript-Autor mit dem Autor von
+\Package{float} in Verbindung, um diesem eine Schnittstelle für entsprechende
+Erweiterungen zu unterbreiten. In etwas abgewandelter Form wurde diese in
+Gestalt der beiden Anweisungen
+\Macro{float@listhead}\IndexCmd[indexmain]{float@listhead} und
+\Macro{float@addtolists}\IndexCmd[indexmain]{float@addtolists} realisiert.
+
+Später zeigte sich, dass diese beiden Anweisungen nicht genug Flexibilität für
+eine umfangreiche Unterstützung aller \KOMAScript-Möglichkeiten boten. Leider
+hatte der Autor von \Package{float} die Entwicklung aber bereits eingestellt,
+so dass hier keine Änderungen mehr zu erwarten sind.
+
+Andere Paketautoren haben die beiden Anweisungen ebenfalls übernommen. Dabei
+zeigte sich, dass die Implementierung in einigen Paketen, darunter auch
+\Package{float}, dazu führt, dass all diese Pakete nur in einer bestimmten
+Reihenfolge geladen werden können, obwohl sie ansonsten in keinerlei Beziehung
+zueinander stehen.
+
+Um all diese Nachteile und Probleme zu beseitigen, unterstützt \KOMAScript{}
+diese alte Schnittstelle offiziell nicht mehr. Stattdessen wird bei Verwendung
+dieser Schnittstelle von \KOMAScript{} gewarnt. Gleichzeitig wurde in
+\KOMAScript{} das Paket
+\Package{tocbasic}\IndexPackage{tocbasic}\important{\Package{tocbasic}} (siehe
+\autoref{cha:tocbasic}) als zentrale Schnittstelle für die Verwaltung von
+Verzeichnissen entworfen und realisiert. Die Verwendung dieses Pakets bietet
+weit mehr Vorteile und Möglichkeiten als die beiden alten Anweisungen.
+
+Obwohl der Aufwand zur Verwendung dieses Pakets sehr gering ist, haben bisher
+die Autoren der Pakete, die auf die beiden alten Anweisungen gesetzt haben,
+keine Anpassung vorgenommen. Daher enthält \Package{scrhack} selbst
+entsprechende Anpassungen für die Pakete
+\Package{float}\IndexPackage{float}\important{\Package{float},
+ \Package{floatrow}, \Package{listings}},
+\Package{floatrow}\IndexPackage{floatrow} und
+\Package{listings}\IndexPackage{listings}. Allein durch das Laden von
+\Package{scrhack} reagieren diese Pakete dann nicht nur auf die Einstellungen
+von Option
+\DescRef{maincls.option.listof}\IndexOption{listof~=\PName{Einstellung}},
+sondern beachten auch Sprachumschaltungen durch das
+\Package{babel}-Paket\IndexPackage{babel}. Näheres zu den Möglichkeiten, die
+durch die Umstellung der Pakete auf \Package{tocbasic} nun zur Verfügung
+stehen, ist \autoref{sec:tocbasic.toc} zu entnehmen.
+
+Sollte diese Änderung für eines der Pakete nicht erwünscht sein oder zu
+Problemen führen, so kann sie selektiv mit den Einstellungen
+\OptionValue{float}{false}\IndexOption[indexmain]{float~=\textKValue{false}},
+\OptionValue{floatrow}{false}\IndexOption[indexmain]{floatrow~=\textKValue{false}}
+und
+\OptionValue{listings}{false}\IndexOption[indexmain]{listings~=\textKValue{false}}
+abgeschaltet werden. Wichtig\textnote{Achtung!} dabei ist, dass eine Änderung
+der Optionen nach dem Laden des zugehörigen Pakets keinen Einfluss mehr hat!
+
+
+\section{Falsche Erwartungen an \Macro{@ptsize}}
+\seclabel{ptsize}
+
+Einige Pakete gehen grundsätzlich davon aus, dass das klasseninterne Makro
+\Macro{@ptsize}\IndexCmd{@ptsize} sowohl definiert ist als auch zu einer
+ganzen Zahl expandiert. Aus Kompatibilitätsgründen definiert \KOMAScript{}
+\Macro{@ptsize} auch bei anderen Grundschriftgrößen als 10\Unit{pt},
+11\Unit{pt} oder 12\Unit{pt}. Da \KOMAScript{} außerdem auch gebrochene
+Schriftgrößen erlaubt, kann dabei \Macro{@ptsize} natürlich auch zu einem
+Dezimalbruch expandieren.
+
+Eines\ChangedAt{v3.17}{\Package{scrhack}} der Pakete, die damit nicht zurecht
+kommen, ist das Paket \Package{setspace}\IndexPackage[indexmain]{setspace}%
+\important{\Package{setspace}}. Darüber hinaus sind die von diesem Paket
+eingestellten Werte immer von der Grundschriftgröße abhängig, auch wenn die
+Einstellung im Kontext einer anderen Schriftgröße erfolgt. Paket
+\Package{scrhack} löst beide Probleme, indem es die Einstellungen von
+\Macro{onehalfspacing} und \Macro{doublespacing} immer relativ zur aktuellen,
+tatsächlichen Schriftgröße vornimmt.
+
+Sollte diese Änderung nicht erwünscht sein oder zu Problemen führen, so kann
+sie selektiv mit der Einstellung
+\OptionValue{setspace}{false}\IndexOption[indexmain]{setspace~=\textKValue{false}}
+abgeschaltet werden. Wichtig\textnote{Achtung!} dabei ist, dass eine Änderung
+der Option nach dem Laden von \Package{setspace} keinen Einfluss mehr hat!
+Ebenso muss \Package{scrhack} vor \Package{setspace} geladen werden, falls
+\Package{setspace} mit einer der Optionen \Option{onehalfspacing} oder
+\Option{doublespacing} geladen wird und dieser Hack sich bereits darauf
+auswirken soll.
+
+
+\section{Sonderfall \Package{hyperref}}
+\seclabel{hyperref}
+
+Ältere Versionen von
+\Package{hyperref}\IndexPackage{hyperref}\important{\Package{hyperref}} vor
+6.79h haben bei den Sternformen der Gliederungsbefehle hinter statt vor oder
+auf die Gliederungsüberschriften verlinkt. Inzwischen ist dieses Problem auf
+Vorschlag des \KOMAScript-Autors beseitigt. Da die entsprechende Änderung aber
+über ein Jahr auf sich warten ließ, wurde in \Package{scrhack} ein
+entsprechender Patch aufgenommen. Zwar kann dieser ebenfalls durch
+\OptionValue{hyperref}{false} deaktiviert werden, empfohlen wird jedoch
+stattdessen die aktuelle Version von \Package{hyperref} zu verwenden. In
+diesem Fall wird die Änderung durch \Package{scrhack} automatisch verhindert.
+
+
+\section{Inkonsistente Behandlung von \Length{textwidth} und \Length{textheight}}
+\seclabel{lscape}
+
+Das\ChangedAt{v3.18}{\Package{scrhack}} Paket
+\Package{lscape}\IndexPackage[indexmain]{lscape}%
+\important{\Package{lscape}} definiert eine Umgebung
+\Environment{landscape}\IndexEnv{landscape}, um den Inhalt einer Seite aber
+nicht deren Kopf und Fuß quer zu setzen. Innerhalb dieser Umgebung wird
+\Length{textheight}\IndexLength{textheight} auf den Wert von
+\Length{textwidth} gesetzt. Umgekehrt wird jedoch \Length{textwidth} nicht auf
+den vorherigen Wert von \Length{textheight} gesetzt. Das ist
+inkonsistent. Meines Wissens wird \Length{textwidth} nicht entsprechend
+geändert, weil andere Pakete oder Anwenderanweisungen gestört werden
+könnten. Jedoch hat auch die Änderung von \Length{textwidth} dieses Potential
+und in der Tat beschädigt sie die Funktion beispielsweise der Pakete
+\Package{showframe}\IndexPackage{showframe} und
+\Package{scrlayer}\IndexPackage{scrlayer}. Daher wäre es am besten, wenn
+\Length{textheight} ebenfalls unverändert bliebe. \Package{scrhack} verwendet
+Paket \Package{xpatch} (siehe \cite{package:xpatch}), um die Startanweisung
+\Macro{landscape} der gleichnamigen Umgebung entsprechend zu ändern.
+
+Falls diese Änderung nicht gewünscht wird oder Probleme verursacht, kann sie
+mit Option
+\OptionValue{lscape}{false}\IndexOption[indexmain]{lscape~=\textKValue{false}}
+deaktiviert werden. Es ist zu beachten\textnote{Achtung!}, dass eine
+nachträgliche Zuweisung an Option \Option{lscape} mit
+\DescRef{\LabelBase.cmd.KOMAoption}\IndexCmd{KOMAoption} oder
+\DescRef{\LabelBase.cmd.KOMAoptions}\IndexCmd{KOMAoptions} nur eine Wirkung
+hat, wenn sie während des Ladens von \Package{lscape} nicht \PValue{false}
+war.
+
+Im übrigens wird \Package{lscape} auch von dem Paket
+\Package{pdflscape}\IndexPackage[indexmain]{pdflscape}%
+\important{\Package{pdflscape}} verwendet, so dass \Package{scrhack} sich auch
+auf die Funktion dieses Pakets auswirkt.%
+
+
+\section{Sonderfall \Package{nomencl}}
+\seclabel{nomencl}
+
+Eine\ChangedAt{v3.23}{\Package{scrhack}} Besonderheit stellt der Hack für das
+Paket
+\Package{nomencl}\IndexPackage[indexmain]{nomencl}\important{\Package{nomencl}}
+dar. Dieser rüstet einerseits nach, dass der optionale
+Inhaltsverzeichniseintrag für die Nomenklatur Option
+\OptionValueRef{maincls}{toc}{indentunnumbered} beachtet. Quasi nebenbei
+werden über das Paket \Package{tocbasic} auch gleich die Endungen \File{nlo}
+und \File{nls} für den Besitzer \PValue{nomencl} reserviert (siehe
+\DescRef{tocbasic.cmd.addtotoclist}, \autoref{sec:tocbasic.basics},
+\DescPageRef{tocbasic.cmd.addtotoclist}).
+
+Außerdem wird die Umgebung
+\Environment{thenomenclature}\IndexEnv{thenomenclature} so geändert,
+dass \DescRef{tocbasic.cmd.tocbasic@listhead}\IndexCmd{tocbasic@listhead} für
+die Überschrift verwendet wird (siehe \autoref{sec:tocbasic.internals},
+\DescPageRef{tocbasic.cmd.tocbasic@listhead}). Dadurch können mit dem Hack
+diverse Attribute für die Endung \File{nls} über
+\DescRef{tocbasic.cmd.setuptoc}\IndexCmd{setuptoc}%
+\important{\DescRef{tocbasic.cmd.setuptoc}} gesetzt werden. So ist es
+beispielsweise möglich, mit
+\DescRef{tocbasic.cmd.setuptoc}\PParameter{nls}\PParameter{numbered} die
+Nomenklatur nicht nur ins Inhaltsverzeichnis einzutragen sondern auch gleich
+zu nummerieren. Näheres zu \DescRef{tocbasic.cmd.setuptoc} und den damit
+möglichen Einstellungen ist in \autoref{sec:tocbasic.toc}, ab
+\DescPageRef{tocbasic.cmd.setuptoc} zu finden. Als kleiner aber wichtiger
+Nebeneffekt erhält die Nomenklatur mit diesem Patch außerdem einen passenden
+Kolumnentitel, falls lebende Kolumnentitel beispielsweise durch Verwendung von
+Seitenstil \DescRef{maincls.pagestyle.headings} aktiviert wurden.
+
+Dieser eher simple Patch ist damit ein Beispiel dafür, wie auch Pakete, die
+keine Gleitumgebungen definieren, Nutzen aus der Verwendung von
+\Package{tocbasic} ziehen könnten. Falls diese Änderung jedoch nicht
+gewünscht wird oder Probleme verursacht, kann sie mit Option
+\OptionValue{nomencl}{false}\IndexOption[indexmain]{nomencl~=\textKValue{false}}
+deaktiviert werden. Entscheidend\textnote{Achtung!} ist dabei die Einstellung
+der Option zum Zeitpunkt, zu dem \Package{nomencl} geladen wird! Spätere
+Änderungen der Option mit \DescRef{\LabelBase.cmd.KOMAoption} oder
+\DescRef{\LabelBase.cmd.KOMAoptions} haben also keinen Einfluss und führen zu
+einer entsprechenen Warnung.%
+\EndIndexGroup
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
+
+% LocalWords: Eindateiensystem Schreibdatei Zieldatei Zielendung Quellendung
+% LocalWords: Verzeichnisüberschrift Dateiendung Zielendungen Verzeichnisdatei
+% LocalWords: Benutzeranweisungen Dokumentpräambel Kapitelebene Sternformen
+% LocalWords: Sprachumschaltungen Gliederungsüberschriften Gliederungsbefehle
+% LocalWords: Paketautoren
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrjura.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrjura.tex
new file mode 100644
index 0000000000..05503a86fe
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrjura.tex
@@ -0,0 +1,1261 @@
+% ======================================================================
+% scrjura.tex
+% Copyright (c) Markus Kohm, 2011-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrjura.tex
+% Copyright (c) Markus Kohm, 2011-2018
+%
+% 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 scrjura of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel ueber scrjura in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{scrjura.tex}%
+ [$Date: 2018-07-20 09:52:01 +0200 (Fri, 20 Jul 2018) $
+ KOMA-Script guide (chapter: scrjura)]
+
+\chapter{Unterstützung für die Anwaltspraxis durch \Package{scrjura}}
+\labelbase{scrjura}
+\BeginIndexGroup
+\BeginIndex{Package}{scrjura}
+
+Will man einen Vertrag\Index{Vertraege=Verträge}, die Satzung einer
+Gesellschaft oder eines Vereins, ein Gesetz oder gleich einen
+Gesetzeskommentar schreiben, so übernimmt das Paket \Package{scrjura} den
+typografischen Teil der Unterstützung für diese Tätigkeit. Obwohl
+\Package{scrjura} als allgemeine Hilfe für anwaltliche Schriftstücke angedacht
+ist, hat sich gezeigt, dass der Vertrag dabei ein ganz zentrales Element
+ist. Besonderes Augenmerk gilt hier dem
+Paragraphen\Index{Paragraphen>juristische} mit Nummer, Titel, nummerierten
+Absätzen -- falls es mehrere davon in einem Paragraphen gibt --, bedarfsweise
+nummerierten Sätzen, Einträgen in das Inhaltsverzeichnis und Querverweisen in
+den deutschen Gepflogenheiten entsprechenden Formen.
+
+Das Paket ist in Zusammenarbeit mit Rechtsanwalt Dr.\,Alexander Willand,
+Karlsruhe, entstanden. Viele der Möglichkeiten gehen außerdem auf konstruktive
+Nachfragen von Prof.\,Heiner Richter von der Hochschule Stalsund zurück.
+
+Es ist zu beachten\textnote{Achtung!}, dass das Paket mit
+\Package{hyperref}\IndexPackage{hyperref} zusammenarbeitet. Es ist dabei
+jedoch wichtig, dass \Package{hyperref} wie üblich nach \Package{scrjura}
+geladen wird!
+
+\LoadCommonFile{options}% \section{Frühe oder späte Optionenwahl}
+
+\LoadCommonFile{textmarkup}% \section{Textauszeichnungen}
+
+\section{Verzeichnisse}
+\label{sec:scrjura.toc}
+
+Die Überschriften juristischer Paragraphen können auf Wunsch auch automatisch
+ins Inhaltsverzeichnis eingetragen werden.
+
+\begin{Declaration}
+ \OptionVName{juratotoc}{Ein-Aus-Wert}
+ \OptionVName{juratotoc}{Ebenennummer}
+\end{Declaration}
+Im Inhaltsverzeichnis angezeigt werden
+Paragraphen\Index{Paragraphen>juristische} nur, wenn ihre \PName{Ebenennummer}
+kleiner oder gleich dem Zähler \DescRef{maincls.counter.tocdepth}%
+\important{\DescRef{maincls.counter.tocdepth}}\IndexCounter{tocdepth} ist
+(siehe \autoref{sec:maincls.toc},
+\DescPageRef{maincls.counter.tocdepth}). Voreingestellt\textnote{Voreinstellung}
+ist für \PName{Ebenennummer} der Wert 10000, der auch verwendet wird, wenn die
+Option über einen
+\PName{Ein-Aus-Wert}\important{\OptionValue{juratotoc}{false}} (siehe
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch})
+ausgeschaltet wird. Da der Zähler \DescRef{maincls.counter.tocdepth}
+üblicherweise einen kleinen, einstelligen Wert besitzt, werden die
+Paragraphen-Einträge im Inhaltsverzeichnis daher normalerweise nicht
+angezeigt.
+
+Wird die Option hingegen über einen
+\PName{Ein-Aus-Wert}\important{\OptionValue{juratotoc}{true}} eingeschaltet,
+so wird als \PName{Ebenennummer} 2 voreingestellt. Damit werden sie in
+Inhaltsverzeichnissen bei allen \KOMAScript-Klassen auf derselben Ebene wie
+\DescRef{maincls.cmd.subsection}\IndexCmd{subsection}%
+\important{\DescRef{maincls.cmd.subsection}} eingeordnet. In der
+Voreinstellung von \DescRef{maincls.counter.tocdepth} werden sie dann auch bei
+allen \KOMAScript-Klassen im Inhaltsverzeichnis angezeigt.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{juratocindent}{Einzug}
+ \OptionVName{juratocnumberwidth}{Nummernbreite}
+\end{Declaration}
+Mit diesen beiden Optionen kann für die Einträge der Paragraphen ins
+Inhaltsverzeichnis sowohl der Einzug als auch die Breite, die für Nummern
+reserviert wird, festgelegt werden. Voreingestellt\textnote{Voreinstellung}
+sind dieselben Werte wie für
+\DescRef{maincls.cmd.subsection}-Einträge\IndexCmd{subsection}%
+\important{\DescRef{maincls.cmd.subsection}} bei \Class{scrartcl}.
+%
+\EndIndexGroup
+
+
+\section{Umgebung für Verträge}
+\label{sec:scrjura.contract}
+
+\BeginIndexGroup
+\BeginIndex{}{Vertraege=Verträge}
+Die wesentlichen Mechanismen von \Package{scrjura} stehen ausschließlich
+innerhalb von Verträgen der zugehörigen Umgebung zur Verfügung.
+
+\begin{Declaration}
+ \begin{Environment}{contract}\end{Environment}
+\end{Declaration}
+Dies ist die erste und bisher einzige Umgebung für Juristen, die
+\Package{scrjura} bereitstellt. Durch ihre Verwendung wird die automatische
+Absatznummerierung aktiviert und die Anweisungen
+\DescRef{\LabelBase.cmd.Clause} und \DescRef{\LabelBase.cmd.SubClause} mit
+einer konkreten Form versehen, die später näher dokumentiert wird.
+
+Die\textnote{Achtung!} Umgebung \Environment{contract} darf nicht in sich
+selbst geschachtelt werden. Innerhalb eines Dokuments dürfen jedoch mehrere
+dieser Umgebungen verwendet werden. Dabei werden die Paragraphen innerhalb
+dieser Umgebungen so behandelt, als stünden sie innerhalb einer einzigen
+Umgebung. Durch das Beenden der Umgebung wird diese also quasi
+unterbrochen und durch den Beginn einer neuen Umgebung wird sozusagen die alte
+Umgebung fortgesetzt. Dabei sind allerdings keine Unterbrechungen innerhalb
+eines Paragraphen möglich.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Option{contract}
+\end{Declaration}
+Bei Angabe dieser Option beim Laden des Pakets beispielsweise mit
+\DescRef{\LabelBase.cmd.usepackage}%
+\important{\DescRef{\LabelBase.cmd.usepackage}} oder als globale Option bei
+\DescRef{\LabelBase.cmd.documentclass}%
+\important{\DescRef{\LabelBase.cmd.documentclass}} wird das gesamte Dokument
+zu einem Vertrag. Das Dokument verhält sich dann also genauso, als würde es
+genau eine \DescRef{\LabelBase.env.contract}-Umgebung enthalten.
+
+Es\textnote{Achtung!} wird darauf hingewiesen, dass Option \Option{contract}
+weder mit \DescRef{\LabelBase.cmd.KOMAoption} noch
+\DescRef{\LabelBase.cmd.KOMAoptions} gesetzt werden kann! Damit ist es auch
+nicht möglich die Option wieder abzuschalten. Verwenden Sie in einem solchen
+Fall stattdessen direkt eine \DescRef{\LabelBase.env.contract}-Umgebung.
+%
+\EndIndexGroup
+
+
+\subsection{Juristische Paragraphen}
+\label{sec:scrjura.clause}
+\BeginIndexGroup
+\BeginIndex{}{Paragraphen>juristische}
+
+Paragraphen\footnote{Obwohl der korrekte Begriff für juristische Paragraphen
+ im Englischen »\emph{section}« wäre, sind die Bezeichnungen in
+ \Package{scrjura} von »\emph{clause}« abgeleitet. Dadurch sollen
+ Verwechslungen sowohl mit \DescRef{maincls.cmd.section} als auch mit
+ \DescRef{maincls.cmd.paragraph} vermieden werden.} im juristischen Sinn
+sind bei \Package{scrjura} nur innerhalb von Verträgen, also innerhalb der
+Umgebung \DescRef{\LabelBase.env.contract} oder weiteren mit
+\DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment} (siehe
+\autoref{sec:\LabelBase.newenv},
+\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}) erstellten Umgebungen,
+definiert.
+
+\begin{Declaration}
+ \phantomsection\label{desc:scrjura.contract.macro.Clause}%
+ \Macro{Clause}\Parameter{Einstellungen}
+ \phantomsection\label{desc:scrjura.contract.macro.SubClause}%
+ \Macro{SubClause}\Parameter{Einstellungen}
+\end{Declaration}
+Dies sind die wichtigsten Anweisungen innerhalb eines Vertrags. Ohne
+zusätzliche \PName{Einstellungen} erzeugt \Macro{Clause} eine
+Paragraphenüberschrift, die nur aus dem Paragraphenzeichen, gefolgt von einer
+fortlaufenden Nummer besteht. Dagegen erzeugt \Macro{SubClause} eine
+Paragraphenüberschrift, bei der an die zuletzt mit \Macro{Clause} gesetzte
+Nummer noch ein fortlaufender Kleinbuchstabe angehängt wird. Gedacht ist
+\Macro{SubClause} vor allem für den Fall, dass bei der Novellierung von
+Gesetzen oder Verträgen nicht nur Paragraphen umformuliert oder gestrichen
+werden, sondern zwischen existierenden Paragraphen neue eingefügt werden, ohne
+dass eine komplett neue Nummerierung erfolgt.
+
+Als \PName{Einstellungen} kann bei beiden Anweisungen eine durch Komma
+separierte Liste von Eigenschaften angegeben werden. Eine Übersicht über die
+möglichen Eigenschaften bietet \autoref{tab:scrjura.Clause.options}. Auf die
+wichtigsten soll noch näher eingegangen werden.
+
+\begin{table}
+ \caption{Mögliche Eigenschaften für die optionalen Argumente der Anweisungen
+ \Macro{Clause} und \Macro{SubClause}}
+ \label{tab:scrjura.Clause.options}
+ \begin{desctabular}
+ \entry{\Option{dummy}}{%
+ Die Überschrift wird nicht gesetzt, aber gezählt.%
+ }%
+ \entry{\OptionVName{head}{Kolumnentitel}}{%
+ Sind Kolumnentitel aktiviert, wird unabhängig von einem Titel für den
+ Paragraphen dieser Kolumnentitel verwendet.%
+ }%
+ \entry{\Option{nohead}}{%
+ Es wird kein neuer Kolumnentitel gesetzt.%
+ }%
+ \entry{\Option{notocentry}}{%
+ Es wird kein Eintrag ins Inhaltsverzeichnis vorgenommen.%
+ }%
+ \entry{\OptionVName{number}{Nummer}}{%
+ Die Nummer für den Paragraphen wird direkt angegeben.%
+ }%
+ \entry{\OptionVName{preskip}{Abstand}}{%
+ Neuer Abstand vor den Überschriften der Paragraphen.%
+ }%
+ \entry{\OptionVName{postskip}{Abstand}}{%
+ Neuer Abstand nach den Überschrift der Paragraphen.%
+ }%
+ \entry{\OptionVName{title}{Überschrift}}{%
+ Der Paragraph wird zusätzlich zur Nummer mit einem Titel versehen. Dies
+ ist gleichzeitig die Grundeinstellung für die Einträge in den
+ Kolumnentitel und das Inhaltsverzeichnis.%
+ }%
+ \entry{\OptionVName{tocentry}{Inhaltsverzeichniseintrag}}{%
+ Unabhängig von einem Titel für den Paragraphen wird dieser Eintrag ins
+ Inhaltsverzeichnis vorgenommen.%
+ }%
+ \end{desctabular}
+\end{table}
+
+In der Voreinstellung\textnote{Voreinstellung} wird vor der Überschrift ein
+Abstand von zwei Zeilen und danach ein Abstand von einer Zeile eingefügt. Über
+die Eigenschaften \Option{preskip}\important[i]{\Option{preskip},
+ \Option{postskip}} und \Option{postskip} kann dieser Abstand verändert
+werden. Die neue Einstellung gilt dann aber nicht nur für den aktuellen
+Paragraphen, sondern ab dem aktuellen Paragraphen bis zum Ende der aktuellen
+Umgebung. Es ist auch möglich, die entsprechende Einstellung bereits vorab mit
+Hilfe von
+\begin{flushleft}\quad\small
+ \textbf{\Macro{setkeys}}\PParameter{contract}%
+ \PParameter{preskip=\PName{Abstand},\\
+ \normalsize\quad\small
+ \hspace{11.5em}postskip=\PName{Abstand}}
+\end{flushleft}
+unabhängig von einem konkreten Paragraphen und auch außerhalb einer
+\DescRef{\LabelBase.env.contract}-Umgebung vorzunehmen. Auch das Setzen
+innerhalb der Präambel nach dem Laden von \Package{scrjura} ist so
+möglich. Dagegen ist es nicht möglich, diese beiden Optionen bereits beim
+Laden des Pakets anzugeben oder sie per \DescRef{\LabelBase.cmd.KOMAoptions}
+oder \DescRef{\LabelBase.cmd.KOMAoption} zu setzen.
+
+\BeginIndex{FontElement}{contract.Clause}\LabelFontElement{contract.Clause}%
+\BeginIndex{FontElement}{Clause}\LabelFontElement{Clause}%
+In der Voreinstellung\textnote{Voreinstellung} wird für die Überschrift des
+Paragraphen als Schrift \Macro{sffamily}\Macro{bfseries}\Macro{large}
+verwendet. Über das Element
+\FontElement{contract.Clause}\important{\FontElement{contract.Clause}} kann
+diese Schrift jederzeit mit Hilfe der Anweisungen
+\DescRef{\LabelBase.cmd.setkomafont}%
+\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
+ \DescRef{\LabelBase.cmd.addtokomafont}} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
+geändert werden. Innerhalb der \DescRef{\LabelBase.env.contract}-Umgebung kann
+statt \FontElement{contract.Clause} auch
+\FontElement{Clause}\important{\FontElement{Clause}} verwendet werden.%
+\EndIndex{FontElement}{Clause}%
+\EndIndex{FontElement}{contract.Clause}
+
+Mit Hilfe der Einstellungen \Option{title}\important[i]{\Option{title},
+ \Option{head}, \Option{tocentry}}, \Option{head} und \Option{tocentry}
+können Paragraphen zusätzlich zur Nummer mit einem Titel versehen
+werden. Dabei\textnote{Achtung!} wird empfohlen, den Wert der jeweiligen
+Eigenschaft in geschweifte Klammern zu setzen. Anderenfalls führen
+beispielsweise Kommata zu Verwechslungen mit den Trennzeichen zwischen
+unterschiedlichen Eigenschaften. Leere Werte für \Option{head} und
+\Option{tocentry} führen zu leeren Einträgen. Will man hingegen keine Einträge
+vornehmen, so sind \Option{nohead}\important[i]{\Option{nohead},
+ \Option{notocentry}} und \Option{notocentry} zu verwenden.
+
+Statt der fortlaufenden Nummer kann mit Hilfe der Eigenschaft
+\Option{number}\important{\Option{number}} auch manuell eine Nummer vergeben
+werden. Dies hat jedoch keinen Einfluss auf die Nummern der nachfolgenden
+Paragraphen. Die Angabe einer leeren Nummer ist nicht
+vorgesehen. Zerbrechliche Anweisungen in \PName{Nummer} sollten mit
+\Macro{protect} geschützt werden. Es\textnote{Achtung!} wird empfohlen als
+\PName{Nummer} nur Ziffern und Buchstaben anzugeben.
+
+Mit der Eigenschaft \Option{dummy}\important{\Option{dummy}} kann man die
+Ausgabe der kompletten Überschrift des Paragraphen unterdrücken. In der
+automatischen Zählung wird der Paragraph aber dennoch berücksichtigt. Auf
+diese Weise kann man beispielsweise\textnote{Beispiel} mit
+\begin{lstcode}
+ \Clause{dummy}
+\end{lstcode}
+einen Paragraphen in der automatischen Zählung überspringen, falls der
+entsprechende Paragraph in einer späteren Fassung eines Vertrags gestrichen
+wurde.
+
+Es\textnote{Achtung!} ist zu beachten, dass Eigenschaft \Option{dummy} als
+Wert allenfalls \PValue{true} und \PValue{false} versteht. Alle anderen Werte
+werden normalerweise ignoriert, können im ungünstigsten Fall aber auch zu
+einer Fehlermeldung führen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{Clauseformat}\Parameter{Nummer}
+\end{Declaration}
+Wie bereits in der vorausgehenden Erklärung erwähnt, werden juristische
+Paragraphen und Unterparagraphen normalerweise nummeriert. Die Formatierung
+der Nummer erfolgt dabei mit Hilfe der Anweisung \Macro{Clauseformat}, die als
+einziges Argument die Nummer erwartet. Bei der
+Vordefinierung\textnote{Voreinstellung} als
+\begin{lstcode}
+ \newcommand*{\Clauseformat}[1]{\S~#1}
+\end{lstcode}
+wird der Nummer mit \Macro{S}\IndexCmd{S} lediglich das Paragraphensymbol,
+gefolgt von einem nicht trennbaren Leerzeichen
+vorangestellt. Bei\textnote{Achtung!} Umdefinierungen ist auf die
+Expandierbarkeit zu achten!%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{juratitlepagebreak}{Ein-Aus-Wert}
+\end{Declaration}%
+Normalerweise sind Seitenumbrüche innerhalb von Überschriften aller Art
+verboten. Einige Juristen benötigen jedoch Seitenumbrüche innerhalb von
+Paragraphentiteln. Daher kann ein solcher Umbruch mit
+\Option{juratitlepagebreak}\important{\Option{juratitlepagebreak}} erlaubt
+werden. Die möglichen Einstellungen für \PName{Ein-Aus-Wert} sind
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} zu
+entnehmen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{clausemark}{Einstellung}
+\end{Declaration}%
+Da Paragraphen eine untergeordnete Gliederung mit unabhängiger Nummerierung
+sind, erzeugen sie in der Voreinstellung\textnote{Voreinstellung} keine
+Kolumnentitel. Über alternative Einstellungen können jedoch auch Kolumnentitel
+erzeugt werden. Die möglichen Werte und ihre Bedeutung sind
+\autoref{tab:scrjura.clausemark} zu entnehmen.%
+%
+\begin{table}
+ \caption{Mögliche Werte für Option \Option{clausemark} zur Erzeugung von
+ Kolumnentiteln durch Paragraphen}
+ \label{tab:scrjura.clausemark}%
+ \begin{desctabular}
+ \entry{\PValue{both}}{%
+ Paragraphen erzeugen linke und rechte Marken für Kolumnentitel, wenn das
+ Dokument die Verwendung von lebenden Kolumnentiteln vorsieht.%
+ \IndexOption{clausemark~=\textKValue{both}}%
+ }%
+ \entry{\PValue{false}, \PValue{off}, \PValue{no}}{%
+ Paragraphen erzeugen keine Kolumnentitel.%
+ \IndexOption{clausemark~=\textKValue{false}}%
+ }%
+ \entry{\PValue{forceboth}}{%
+ Paragraphen erzeugen mit \DescRef{maincls.cmd.markboth} linke und rechte
+ Marken für Kolumnentitel unabhängig davon, ob das Dokument
+ beispielsweise über den Seitenstil überhaupt lebende Kolumnentitel
+ verwendet.%
+ \IndexOption{clausemark~=\textKValue{forceboth}}%
+ }%
+ \entry{\PValue{forceright}}{%
+ Paragraphen erzeugen mit \DescRef{maincls.cmd.markright} rechte Marken
+ für Kolumnentitel unabhängig davon, ob das Dokument beispielsweise über
+ den Seitenstil überhaupt lebende Kolumnentitel verwendet.%
+ \IndexOption{clausemark~=\textKValue{forceright}}%
+ }%
+ \entry{\PValue{right}}{%
+ Paragraphen erzeugen rechte Marken für Kolumnentitel, wenn das Dokument
+ die Verwendung von lebenden Kolumnentiteln vorsieht.%
+ \IndexOption{clausemark~=\textKValue{right}}%
+ }%
+ \end{desctabular}
+\end{table}
+%
+\EndIndexGroup
+\EndIndexGroup
+
+\subsection{Absätze}
+\label{sec:scrjura.par}
+\BeginIndexGroup
+\BeginIndex{}{Absatz>Nummerierung}%
+Innerhalb von Paragraphen werden Absätze von \Package{scrjura} normalerweise
+automatisch nummeriert. Sie sind damit ein stark gliederndes Element, ähnlich
+\DescRef{maincls.cmd.paragraph} oder \DescRef{maincls.cmd.subparagraph} in
+normalen Texten. Innerhalb von Verträgen wird deshalb häufig auch gerne mit
+Abstand zwischen den Absätzen gearbeitet. Das Paket \Package{scrjura} bietet
+keinen eigenen Mechanismus hierfür. Stattdessen sei auf die Option
+\DescRef{maincls.option.parskip}%
+\IndexOption{parskip}\important{\DescRef{maincls.option.parskip}} der
+\KOMAScript-Klassen verwiesen (siehe \autoref{sec:maincls.parmarkup},
+\DescPageRef{maincls.option.parskip}).
+
+\begin{Declaration}
+ \OptionVName{parnumber}{Einstellung}
+\end{Declaration}
+Die automatische\textnote{Voreinstellung} Nummerierung der Absätze entspricht
+den beiden Einstellungen \OptionValue{parnumber}{auto} und
+\OptionValue{parnumber}{true}. Manchmal ist es notwendig, die automatische
+Nummerierung abzuschalten. Das ist mit \OptionValue{parnumber}{false}%
+\important{\OptionValue{parnumber}{false}}%
+\IndexOption{parnumber~=\textKValue{false}} möglich. In diesem Fall wird nur die
+Satznummer automatisch zurück gesetzt.
+
+Zur Realisierung dieser Option war es notwendig, in den Absatzmechanismus von
+\LaTeX{} einzugreifen. In einigen seltenen Fällen kann sich das negativ
+auswirken. Dann bleibt nur, diese Änderung mit
+\OptionValue{parnumber}{manual}%
+\important{\OptionValue{parnumber}{manual}}%
+\IndexOption{parnumber~=\textKValue{manual}} zurück zu nehmen. Umgekehrt hebt
+\LaTeX{} selbst den Eingriff manchmal auf. In diesem Fällen kann er mit
+\OptionValue{parnumber}{auto}%
+\important{\OptionValue{parnumber}{auto}}%
+\IndexOption{parnumber~=\textKValue{auto}} erneut aktiviert werden.
+
+Paragraphen, die nur aus einem einzigen Absatz bestehen, werden normalerweise
+nicht automatisch nummeriert. Damit dies funktioniert, dürfen sich keine zwei
+Paragraphen mit identischer Nummer in einem Dokument befinden. Sollten Sie
+dies dennoch einmal benötigen, weichen Sie bitte auf eine weitere
+Vertragsumgebung aus (siehe
+\DescRef{\LabelBase.cmd.DeclareNewJuraEnvironment},
+\autoref{sec:\LabelBase.newenv},
+\DescPageRef{\LabelBase.cmd.DeclareNewJuraEnvironment}). Da\textnote{Achtung!}
+die Information erst am Ende eines Paragraphen zur Verfügung steht, werden in
+der Regel zwei \LaTeX-Läufe benötigt, bis die automatische Absatznummerierung
+korrekt erfolgt.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Counter{par}
+ \Macro{thepar}
+ \Macro{parformat}
+ \Macro{parformatseparation}
+\end{Declaration}%
+Für die Nummerierung der Absätze wird der Zähler \Counter{par}
+verwendet. Seine Darstellung, \Macro{thepar} ist mit
+\Macro{arabic}\PParameter{par} als arabische Zahl
+voreingestellt. Die\textnote{Voreinstellung} Ausgabe als automatische
+Absatznummer erfolgt mit \Macro{parformat}. Dabei wird \Macro{thepar} in runde
+Klammern gesetzt. Will man einem Absatz manuell eine Absatznummer
+voranstellen, so sollte das ebenfalls mit \Macro{parformat} geschehen. Dabei
+ist es sinnvoll, auf \Macro{parformat} noch \Macro{parformatseparation} oder
+zumindest ein nicht trennbares Leerzeichen mit
+\Macro{nobreakspace}\IndexCmd{nobreakspace} oder der Tilde folgen zu lassen.
+
+Bei\ChangedAt{v0.7}{\Package{scrjura}} der automatischen Nummerierung wird
+\Macro{parformat} ebenfalls noch \Macro{parformatseparation} als Trennzeichen
+angehängt. Voreinstellt\textnote{Voreinstellung} ist derzeit mit
+\Macro{nobreakspace}\IndexCmd{nobreakspace} ein nicht umbrechbarer
+Wortabstand.
+
+\BeginIndex{FontElement}{parnumber}\LabelFontElement{parnumber}%
+Die Absatznummer wird normalerweise\textnote{Voreinstellung} in der
+aktuellen Schrift gesetzt. Diese Voreinstellung für das Element
+\FontElement{parnumber} kann jederzeit mit Hilfe der Anweisungen
+\DescRef{\LabelBase.cmd.setkomafont}%
+\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
+ \DescRef{\LabelBase.cmd.addtokomafont}} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
+geändert werden.%
+\EndIndex{FontElement}{parnumber}%
+
+Es\textnote{Achtung!} wird darauf hingewiesen, dass \Package{scrjura} intern
+davon ausgeht, dass \Macro{thepar} eine arabische Zahl ist. Daher sollte
+diese Anweisung keinesfalls umdefiniert werden!%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{withoutparnumber}
+\end{Declaration}
+Wird keine Absatznummer ausgegeben, wird am Anfang des Absatzes ersatzweise
+die Anweisung \Macro{withoutparnumber} lokal
+ausgeführt. Diese\textnote{Voreinstellung} ist in der Voreinstellung leer, tut
+also weiter nichts. Sie wurde auf speziellen Wunsch in \Package{scrjura}
+eingebaut, ist für den normalen Anwender aber ohne Belang.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ellipsispar}\OParameter{Anzahl}
+ \Macro{parellipsis}
+\end{Declaration}
+Manchmal\ChangedAt{v0.7}{\Package{scrjura}} -- insbesondere in vergleichenden
+Kommentaren -- ist es wünschenswert, wenn man Absätze in Gesetzen auslassen,
+aber gleichzeitig die Auslassung\Index{Absatz>Auslassung} markieren kann. Die
+Absätze sollen dann auch in der Zählung der übrigen Absätze berücksichtigt
+werden. Das Paket \Package{scrjura} stellt dafür die Anweisung
+\Macro{ellipsispar} bereit.
+
+In der Voreinstellung\textnote{Voreinstellung} lässt \Macro{ellipsispar} genau
+einen Absatz aus. Über das optionale Argument \PName{Anzahl} können jedoch
+auch mehrere Absätze ausgelassen werden. In jedem Fall erscheint in der
+Ausgabe stattdessen genau ein nicht nummerierter Absatz, der nur die
+Auslassungszeichen \Macro{parellipsis} enthält. Bei der Entscheidung für eine
+automatische Nummerierung der übrigen Absätze eines juristischen Paragraphen
+werden die ausgelassenen Absätze jedoch mit gezählt. Dies gilt ebenso für die
+Nummern etwaiger nachfolgender Absätze.
+\begin{Example}
+ Angenommen, Sie kommentieren das Strafgesetzbuch, wollen aber in \S~2 nur
+ Absatz~3 kommentieren. Dennoch soll auf die übrigen Absätze indirekt
+ hingewiesen werden. Sie erreichen das beispielsweise mit:
+\begin{lstcode}
+ \documentclass[parskip=half]{scrartcl}
+ \usepackage{scrjura}
+ \usepackage{selinput}
+ \SelectInputMappings{
+ adieresis={ä},germandbls={ß},
+ }
+ \begin{document}
+ \begin{contract}
+ \Clause{title={Zeitliche Geltung},number=2}
+ \ellipsispar[2]
+
+ Wird das Gesetz, das bei Beendigung der Tat
+ gilt, vor der Entscheidung geändert, so ist
+ das mildeste Gesetz anzuwenden.
+
+ \ellipsispar[3]
+ \end{contract}
+ \end{document}
+\end{lstcode}
+ Um das Ergebnis zu sehen, sollten Sie das einfach einmal ausprobieren.
+\end{Example}
+
+Die Auslassungszeichen sind so vordefiniert\textnote{Voreinstellung}, dass
+\Macro{textellipsis}\IndexCmd{textellipsis} verwendet wird, falls eine solche
+Anweisung definiert ist. Anderenfalls wird \Macro{dots}\IndexCmd{dots}
+verwendet. Eine Umdefinierung von \Macro{parellipsis} ist mit
+\Macro{renewcommand} jederzeit möglich.%
+\EndIndexGroup
+
+
+\subsection{Sätze}
+\label{sec:scrjura.sentence}
+
+\BeginIndexGroup
+\BeginIndex{}{Satz>Nummerierung}%
+Absätze in Verträgen bestehen aus einem oder mehreren Sätzen, die teilweise
+ebenfalls nummeriert werden. Da eine automatische Nummerierung jedoch
+problematisch und fehleranfällig ist, wurde eine solche bisher nicht
+implementiert. Eine halbautomatische Nummerierung wird jedoch unterstützt.
+
+\begin{Declaration}
+ \Counter{sentence}
+ \Macro{thesentence}
+ \Macro{sentencenumberformat}
+ \Macro{Sentence}
+\end{Declaration}
+Die Nummerierung von Sätzen erfolgt manuell mit der Anweisung
+\Macro{Sentence}. Dabei wird der Zähler \Counter{sentence} automatisch erhöht
+und in der Voreinstellung von
+\Macro{sentencenumberformat}\ChangedAt{v3.26}{\Package{scrjura}} die arabische
+Zahl von \Macro{thesentence} hochgestellt ausgegeben.
+
+\BeginIndex{FontElement}{sentencenumber}\LabelFontElement{sentencenumber}%
+Die\ChangedAt{v3.26}{\Package{scrjura}} Satznummer wird
+normalerweise\textnote{Voreinstellung} in der aktuellen Schrift gesetzt. Diese
+Voreinstellung für das Element \FontElement{sentencenumber} kann jederzeit mit
+Hilfe der Anweisungen \DescRef{\LabelBase.cmd.setkomafont}%
+\important[i]{\DescRef{\LabelBase.cmd.setkomafont},
+ \DescRef{\LabelBase.cmd.addtokomafont}} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
+geändert werden.%
+\EndIndex{FontElement}{sentencenumber}
+
+Bei\textnote{Tipp!} Verwendung von
+\Package{babel}\IndexPackage{babel}\important{\Package{babel}} ist es einfach
+möglich, eine Abkürzung für \Macro{Sentence} zu definieren:%
+\phantomsection\label{sec:scrjura.shorthandexample}%
+\begin{lstcode}[moretexcs={useshorthands,defineshorthand}]
+ \useshorthands{'}
+ \defineshorthand{'S}{\Sentence\ignorespaces}
+\end{lstcode}
+Dabei werden Leerzeichen nach
+\lstinline|'S| ignoriert. Auch eine
+Abkürzung für einen Punkt, gefolgt von einer neuen Satznummer ist möglich:
+\begin{lstcode}[moretexcs={useshorthands,defineshorthand}]
+ \defineshorthand{'.}{. \Sentence\ignorespaces}
+\end{lstcode}
+Näheres zu \Macro{useshorthands}\IndexCmd{useshorthands} und
+\Macro{defineshorthand}\IndexCmd{defineshorthands} ist der Anleitung zum Paket
+\Package{babel} zu entnehmen (siehe \cite{package:babel}). Ein
+Anwendungsbeispiel finden Sie in \autoref{sec:scrjura.example} ab
+\autopageref{sec:scrjura.example}.%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Querverweise}
+\label{sec:scrjura.ref}
+
+Für Paragraphen, Absätze und Sätze reicht der normale Mechanismus für
+Querverweise mit \Macro{label}\IndexCmd{label}\important{\Macro{label}},
+\Macro{ref} und \Macro{pageref} nicht mehr aus. Daher wird dieser von
+\Package{scrjura} um weitere Anweisungen ergänzt.
+
+\begin{Declaration}
+ \Macro{ref}\Parameter{Label}
+ \Macro{refL}\Parameter{Label}
+ \Macro{refS}\Parameter{Label}
+ \Macro{refN}\Parameter{Label}
+\end{Declaration}
+Die Anweisungen \Macro{refL}, \Macro{refS} und \Macro{refN}
+referenzieren Paragraph, Absatz und Satz immer vollständig. \Macro{refL}
+verwendet dabei eine textuelle Langform, während \Macro{refS} eine textuelle
+Kurzform bietet. \Macro{refN} ist eine rein nummerische Kurzform. \Macro{ref}
+entspricht in der Voreinstellung \Macro{refL}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{refClause}\Parameter{Label}
+ \Macro{refClauseN}\Parameter{Label}
+\end{Declaration}
+Für die Referenzierung von Paragraphen ohne Absatz und Satz, unterscheiden
+sich \Macro{refClause} und \Macro{refClauseN} nur darin, dass ersteres
+automatisch ein Paragraphenzeichen voran stellt.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{refPar}\Parameter{Label}
+ \Macro{refParL}\Parameter{Label}
+ \Macro{refParS}\Parameter{Label}
+ \Macro{refParN}\OParameter{Zahlenformat}\Parameter{Label}
+\end{Declaration}
+Nur den Absatz kann man mit \Macro{refParL}, \Macro{refParS} und
+\Macro{refParN} referenzieren. Die Formen unterscheiden sich dabei wie bereits
+für \DescRef{\LabelBase.cmd.refL}, \DescRef{\LabelBase.cmd.refN} und
+\DescRef{\LabelBase.cmd.refS} angegeben. Eine Besonderheit stellt das
+optionale Argument von \Macro{refParN} dar. Normalerweise werden Absätze in
+rein nummerischer Form als römische Zahlen referenziert. Über das optionale
+Argument kann jedoch auch ein anderes Format vorgegeben werden. Sinnvoll ist
+hier in erster Linie das \PValue{Zahlenformat} \PValue{arabic} für eine
+arabische Absatznummer. \Macro{refPar} entspricht in der Voreinstellung
+\Macro{refParL}.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{refSentence}\Parameter{Label}
+ \Macro{refSentenceL}\Parameter{Label}
+ \Macro{refSentenceS}\Parameter{Label}
+ \Macro{refSentenceN}\Parameter{Label}
+\end{Declaration}
+Der Satz ohne Paragraph und Absatz kann mit \Macro{refSentenceL},
+\Macro{refSentenceS} oder \Macro{refSentenceN} referenziert werden. Auch hier
+gibt es wieder eine textuelle Langform, eine textuelle Kurzform und eine rein
+nummerische Form. \Macro{refSentence} entspricht in der Voreinstellung
+\Macro{refSentenceL}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{ref}{Einstellung}
+\end{Declaration}
+Die Ergebnisse von \DescRef{\LabelBase.cmd.ref},
+\DescRef{\LabelBase.cmd.refPar} und \DescRef{\LabelBase.cmd.refSentence} sind
+von der \PName{Einstellung} für Option \Option{ref} abhängig. In der
+Voreinstellung entsprechen diese \DescRef{\LabelBase.cmd.refL},
+\DescRef{\LabelBase.cmd.refParL} und
+\DescRef{\LabelBase.cmd.refSentenceL}. Mögliche Werte und ihre Bedeutung sind
+\autoref{tab:scrjura.ref} zu entnehmen.%
+%
+\begin{table}
+%\begin{desclist}
+% \desccaption
+ \caption[{%
+ Mögliche Werte für Option \Option{ref} zur Einstellung der
+ Referenzierungsformate%
+ }]{%
+ Mögliche Werte für Option \Option{ref} zur Einstellung des Formats von
+ \DescRef{\LabelBase.cmd.ref}, \DescRef{\LabelBase.cmd.refPar} und
+ \DescRef{\LabelBase.cmd.refSentence}%
+ \label{tab:scrjura.ref}%
+ }%
+% {%
+% Mögliche Werte für Option \Option{ref} \emph{(Fortsetzung)}%
+% }%
+ \begin{desctabular}
+ \entry{\PValue{long}}{%
+ Die Einstellungen \PValue{parlong} und \PValue{sentencelong} werden
+ kombiniert.%
+ \IndexOption{ref~=\textKValue{long}}%
+ }%
+ \entry{\PValue{numeric}}{%
+ Die Einstellungen \PValue{parnumeric} und \PValue{sentencenumeric}
+ werden kombiniert.%
+ \IndexOption{ref~=\textKValue{numeric}}%
+ }%
+ \entry{\PValue{clauseonly}, \PValue{onlyclause}, \PValue{ClauseOnly},
+ \PValue{OnlyClause}}{%
+ Die Einstellungen \PValue{paroff} und \PValue{sentenceoff} werden
+ kombiniert. Es ist zu beachten, dass dadurch sowohl
+ \DescRef{\LabelBase.cmd.refPar} als auch
+ \DescRef{\LabelBase.cmd.refSentence} ein leeres Ergebnis erzeugen!%
+ \IndexOption{ref~=\textKValue{long}}%
+ }%
+ \entry{\PValue{parlong}, \PValue{longpar}, \PValue{ParL}}{%
+ Der Absatz wird in der textuellen Langform referenziert.%
+ \IndexOption{ref~=\textKValue{parlong}}%
+ }%
+ \entry{\PValue{parnumeric}, \PValue{numericpar}, \PValue{ParN}}{%
+ Der Absatz wird in der rein nummerischen Form referenziert.%
+ \IndexOption{ref~=\textKValue{parnumeric}}%
+ }%
+ \entry{\PValue{paroff}, \PValue{nopar}}{%
+ Der Absatz wird nicht mit referenziert. Es ist zu beachten, dass dadurch
+ \DescRef{\LabelBase.cmd.refPar} ein leeres Ergebnis erzeugt!%
+ \IndexOption{ref~=\textKValue{paroff}}%
+ }%
+ \entry{\PValue{parshort}, \PValue{shortpar}, \PValue{ParS}}{%
+ Der Absatz wird in der textuellen Kurzform referenziert.%
+ \IndexOption{ref~=\textKValue{parshort}}%
+ }%
+ \entry{\PValue{sentencelong}, \PValue{longsentence}, \PValue{SentenceL}}{%
+ Der Satz wird in der textuellen Langform referenziert.%
+ \IndexOption{ref~=\textKValue{parlong}}%
+ }%
+ \entry{\PValue{sentencenumeric}, \PValue{numericsentence},
+ \PValue{SentenceN}}{%
+ Der Satz wird in der rein nummerischen Form referenziert.%
+ \IndexOption{ref~=\textKValue{sentencenumeric}}%
+ }%
+ \entry{\PValue{sentenceoff}, \PValue{nosentence}}{%
+ Der Satz wird nicht mit referenziert. Es ist zu beachten, dass dadurch
+ von \DescRef{\LabelBase.cmd.refSentence} ein leeres Ergebnis erzeugt
+ wird!%
+ \IndexOption{ref~=\textKValue{sentenceoff}}%
+ }%
+ \entry{\PValue{sentenceshort}, \PValue{shortsentence},
+ \PValue{SentenceS}}{%
+ Der Satz wird in der textuellen Kurzform referenziert.%
+ \IndexOption{ref~=\textKValue{sentenceshort}}%
+ }%
+ \entry{\PValue{short}}{%
+ Die Einstellungen \PValue{parshort} und \PValue{sentenceshort} werden
+ kombiniert.%
+ \IndexOption{ref~=\textKValue{short}}%
+ }%
+\end{desctabular}
+\end{table}
+
+\begin{Example}
+ Angenommen, Sie wollen, dass auf Absätze immer in der Form »Absatz 1 in
+ Paragraph 1« verwiesen wird. Da es hierfür keine vordefinierte Anweisung
+ gibt, müssen Sie sich Ihre eigene Definition aus den vorhanden Möglichkeiten
+ zusammenbauen. Dies können Sie mit%
+\begin{lstcode}
+ \newcommand*{\refParM}[1]{%
+ Absatz~\refParN[arabic]{#1}
+ in Paragraph~\refClauseN{#1}%
+ }
+\end{lstcode}
+ sehr einfach erreichen. Die so neu definierte Anweisung ist genau wie
+ \DescRef{\LabelBase.cmd.refParL} zu verwenden.%
+\end{Example}%
+
+Beispiele für die Ergebnisse der nicht konfigurierbaren, grundlegenden
+Anweisungen finden sich in \autoref{tab:scrjura.refexamples}.
+%
+\begin{table}
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}{Beispielausgaben der von Option \Option{ref}
+ unabhängigen Anweisungen für Querverweise}[l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Anweisung & Beispielausgabe \\
+ \midrule
+ \DescRef{\LabelBase.cmd.refL}\Parameter{Label} & § 1 Absatz 1 Satz 1 \\
+ \DescRef{\LabelBase.cmd.refS}\Parameter{Label} & § 1 Abs. 1 S. 1 \\
+ \DescRef{\LabelBase.cmd.refN}\Parameter{Label} & § 1 I 1. \\
+ \DescRef{\LabelBase.cmd.refClause}\Parameter{Label} & § 1 \\
+ \DescRef{\LabelBase.cmd.refClauseN}\Parameter{Label} & 1 \\
+ \DescRef{\LabelBase.cmd.refParL}\Parameter{Label} & Absatz 1 \\
+ \DescRef{\LabelBase.cmd.refParS}\Parameter{Label} & Abs. 1 \\
+ \DescRef{\LabelBase.cmd.refParN}\Parameter{Label} & I \\
+ \DescRef{\LabelBase.cmd.refParN}\POParameter{arabic}\Parameter{Label} & 1 \\
+ \DescRef{\LabelBase.cmd.refParN}\POParameter{roman}\Parameter{Label} & i \\
+ \DescRef{\LabelBase.cmd.refSentenceL}\Parameter{Label} & Satz 1 \\
+ \DescRef{\LabelBase.cmd.refSentenceS}\Parameter{Label} & S. 1 \\
+ \DescRef{\LabelBase.cmd.refSentenceN}\Parameter{Label} & 1. \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:scrjura.refexamples}
+\end{table}
+\EndIndexGroup
+
+
+\section{Zusätzliche Vertragsumgebungen}
+\label{sec:scrjura.newenv}
+
+Einige Anwender setzen mit \Package{scrjura} keine Verträge oder Kommentare
+zu einzelnen Gesetzen, sondern Werke, in denen unterschiedliche Arten von
+Gesetzen behandelt werden. Es ist daher erforderlich, dass ein Paragraph
+nicht immer mit demselben Präfix »\S« versehen wird, sondern beispielsweise
+als »Art.« oder »IAS« oder was auch immer bezeichnet wird. Darüber hinaus wird
+eine unabhängige Zählung der unterschiedlichen Paragraphen benötigt.
+
+\begin{Declaration}
+ \Macro{DeclareNewJuraEnvironment}\Parameter{Name}\OParameter{Optionen}
+ \Parameter{Start-Anweisungen}
+ \Parameter{End-Anweisungen}
+\end{Declaration}
+Über\ChangedAt{v0.9}{\Package{scrjura}} diese Anweisung können weitere,
+voneinander unabhängige Umgebungen für Vertrags- oder Gesetzestexte deklariert
+werden. Das Argument \PName{Name} ist dabei der Name der neuen
+Umgebung. \PName{Start-Anweisungen} sind Anweisungen, die immer am Anfang der
+Umgebung ausgeführt werden, ganz als ob man sie jedes Mal unmittelbar hinter
+\Macro{begin}\Parameter{Name} einfügen würde. Entsprechend werden
+\PName{End-Anweisungen} immer am Ende der Umgebung ausgeführt, ganz als ob man
+sie jedes Mal unmittelbar vor \Macro{end}\Parameter{Name} einfügen würde. Ohne
+\PName{Optionen} entspricht die neue Umgebung \PName{Name} einer
+\DescRef{\LabelBase.env.contract}-Umgebung mit eigenen Zählern. Es besteht
+jedoch die Möglichkeit über eine mit Komma separierte Liste an
+\PName{Optionen} darauf Einfluss zu
+nehmen. \autoref{tab:\LabelBase.DeclareNewJuraEnvironment} führt die derzeit
+unterstützen \PName{Optionen} auf.
+
+\begin{desclist}
+ \desccaption{Von \Macro{DeclareNewJuraEnvironment} unterstützte Optionen zur
+ Konfigurierung neuer
+ Vertragsumgebungen\label{tab:\LabelBase.DeclareNewJuraEnvironment}}%
+ {Optionen für \Macro{DeclareNewJuraEnvironment} (\emph{Fortsetzung})}%
+ \entry{\OptionVName{Clause}{Anweisung}}{%
+ \DescRef{\LabelBase.cmd.Clause} wird innerhalb der neuen Umgebung auf
+ \PName{Anweisung} abgebildet. Die \PName{Anweisung} sollte wie die für
+ \DescRef{\LabelBase.env.contract} dokumentierte Anweisung genau ein
+ Argument erwarten. Für eine korrekte Anwendung dieser Option sind
+ erweiterte Kenntnisse über die interne Funktion von \Package{scrjura}
+ notwendig. Außerdem können sich die Anforderungen an die \PName{Anweisung}
+ von Version zu Version noch ändern. Daher wird derzeit empfohlen, die
+ Option nicht zu verwenden!%
+ }%
+ \entry{\OptionVName{ClauseFont}{Anweisungen}}{%
+ \leavevmode\BeginIndex{FontElement}{\PName{Name}.Clause}%
+ \LabelFontElement{\PName{Name}.Clause}%
+ Ist diese Option angegeben, so wird eine neues Element
+ \FontElement{\PName{Name}.Clause}\IndexFontElement{\PName{Name}.Clause}
+ mit \DescRef{maincls-experts.cmd.newkomafont} definiert und
+ \PName{Anweisungen} für dessen Voreinstellung verwendet. Sollte das
+ Element bisher als Alias definiert gewesen sein (siehe
+ \DescRef{maincls-experts.cmd.aliaskomafont} in
+ \autoref{sec:maincls-experts.experts},
+ \DescPageRef{maincls-experts.cmd.aliaskomafont}) so wird es stattdessen zu
+ einem selbstständigen Element. Sollte das Element bereits definiert
+ gewesen sein, so werden lediglich die \PName{Anweisungen} mit
+ \DescRef{\LabelBase.cmd.setkomafont} als neue Einstellung gesetzt. Bitte
+ beachten Sie die in \autoref{sec:\LabelBase.textmarkup},
+ \DescPageRef{\LabelBase.cmd.setkomafont} erklärten Einschränkungen
+ bezüglich der erlaubten \PName{Anweisungen}!%
+ \EndIndex{FontElement}{\PName{Name}.Clause}%
+ }%
+ \entry{\OptionVName{SubClause}{Anweisung}}{%
+ \DescRef{\LabelBase.cmd.SubClause} wird innerhalb der Umgebung auf
+ \PName{Anweisung} abgebildet. Die \PName{Anweisung} sollte wie die für
+ \DescRef{\LabelBase.env.contract} dokumentierte Anweisung genau ein
+ Argument erwarten. Für eine korrekte Anwendung dieser Option sind
+ erweiterte Kenntnisse über die interne Funktion von \Package{scrjura}
+ notwendig. Außerdem können sich die Anforderungen an die \PName{Anweisung}
+ von Version zu Version noch ändern. Daher wird derzeit empfohlen, die
+ Option nicht zu verwenden!%
+ }%
+ \entry{\OptionVName{Sentence}{Anweisung}}{%
+ \DescRef{\LabelBase.cmd.Sentence} wird innerhalb der Umgebung auf
+ \PName{Anweisung} abgebildet. Die \Macro{Anweisung} sollte kein Argument
+ besitzen. Normalerweise sollte sie den Zähler
+ \Counter{sentence}\IndexCounter{sentence} mit
+ \Macro{refstepcounter}\IndexCmd{refstepcounter} erhöhen und dann in
+ geeigneter Form ausgeben. Dabei ist besonders darauf zu achten, dass keine
+ unerwünschten Leerzeichen eingebaut werden!%
+ }%
+ \entry{\OptionVName{ClauseNumberFormat}{Anweisung}}{%
+ \PName{Anweisung} legt die Formatierung für Paragraphen-Nummern innerhalb
+ der Umgebung fest. Es wird eine \PName{Anweisung} mit genau einem Argument
+ erwartet, der Nummer des Paragraphen. Falls diese Nummer das letzte
+ Argument einer Kette von Anweisungen ist, so kann diese Kette an
+ Anweisungen auch direkt angegeben werden.%
+ }%
+\end{desclist}
+\begin{Example}
+ Um beispielsweise die in der Einleitung zu diesem Abschnitt erwähnte
+ Umgebung für Artikel zu definieren, genügt:
+\begin{lstcode}
+ \DeclareNewJuraEnvironment{Artikel}
+ [ClauseNumberFormat=Art.]{}{}
+\end{lstcode}
+ Sollen die Artikel unter Verwendung einer \KOMAScript-Klasse mit
+ Absatzabstand statt Absatzeinzug gesetzt werden, kann
+\begin{lstcode}
+ \DeclareNewJuraEnvironment{Artikel}
+ [ClauseNumberFormat=Art.~]
+ {\KOMAoptions{parskip}}{}
+\end{lstcode}
+ verwendet werden. Natürlich wird dann auch bei der Referenzierung
+ automatisch »Art.« anstelle von »\S« vorangestellt.%
+
+ Angewendet wird die neue Umgebung wie
+ \DescRef{\LabelBase.env.contract}:
+\begin{lstcode}
+ \begin{Artikel}
+ \Clause
+ Die Würde des Menschen ist unantastbar. Sie zu
+ achten und zu schützen ist Verpflichtung aller
+ staatlichen Gewalt.
+ \end{Artikel}
+\end{lstcode}
+\end{Example}%
+\EndIndexGroup
+
+
+\section{Unterstützung verschiedener Sprachen}
+\label{sec:scrjura.babel}
+
+Das Paket \Package{scrjura} wurde in Zusammenarbeit mit einem Anwalt für
+Deutsches Recht entwickelt. Daher unterstützte es zunächst auch nur die Sprachen
+\PValue{german}, \PValue{ngerman}, \PValue{austrian} und
+\PValue{naustrian}. Das Paket wurde aber so entworfen, dass es mit üblichen
+Sprachpaketen wie
+\Package{babel}\important{\Package{babel}}\IndexPackage{babel} zusammen
+arbeitet. Anwender können solche Anpassungen einfach mit
+\DescRef{scrbase.cmd.providecaptionname} (siehe
+\autoref{sec:scrbase.languageSupport},
+\DescPageRef{scrbase.cmd.providecaptionname}) vornehmen. Sollten Sie über
+gesicherte Informationen zu den im juristischen Umfeld gebräuchlichen
+Begriffen in anderen Sprachen verfügen, würde sich der Autor über
+entsprechende Rückmeldungen freuen. Auf diesem Weg ist inzwischen auch
+Unterstützung für \PValue{english}, \PValue{american}, \PValue{british},
+\PValue{canadian}, \PValue{USenglish} und \PValue{UKenglish} hinzu gekommen.
+
+\begin{Declaration}
+ \Macro{parname}
+ \Macro{parshortname}
+ \Macro{sentencename}
+ \Macro{sentenceshortname}
+\end{Declaration}
+Dies sind die sprachabhängigen Bezeichnungen, die von \Package{scrjura}
+verwendet werden. Die Bedeutung und die im Deutschen vordefinierten Werte sind
+\autoref{tab:scrjura.captionnames} zu entnehmen. Dabei nimmt \Package{scrjura}
+die entsprechenden Definitionen innerhalb von
+\Macro{begin}\PParameter{document} nur vor, wenn nicht bereits andere Vorgaben
+getroffen wurden. Wird \Package{scrjura} mit einer nicht unterstützten Sprache
+verwendet, so wird eine entsprechende Fehlermeldung ausgegeben.%
+%
+\begin{table}
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [{%
+ Bedeutungen und Voreinstellungen sprachabhängiger Begriffe%
+ }]{%
+ Bedeutungen und Voreinstellungen für die sprachabhängigen Begriffe
+ soweit nicht bereits definiert%
+ }
+ [l]
+ \begin{tabular}[t]{lll}
+ \toprule
+ Anweisung & Bedeutung & Voreinstellung \\
+ \midrule
+ \Macro{parname} & Langform »Absatz« & Absatz \\
+ \Macro{parshortname} & Kurzform »Absatz« & Abs. \\
+ \Macro{sentencename} & Langform »Satz« & Satz \\
+ \Macro{sentenceshortname} & Kurzform »Satz« & S. \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:scrjura.captionnames}
+\end{table}
+%
+\EndIndexGroup
+
+
+\section{Ein ausführliches Beispiel}
+\label{sec:scrjura.example}
+
+Erinnern wir uns an den Brief aus \autoref{cha:scrlttr2}, in dem ein
+Vereinsmitglied die überfällige Mitgliederversammlung in Erinnerung bringen
+wollte. Damit so etwas möglich ist, muss es auch einen Verein mit einer
+Satzung geben, die das vorschreibt. Eine Vereinssatzung ist letztlich eine Art
+Vertrag und kann mit \Package{scrjura} gesetzt werden.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=1-2}]{scrjuraexample.tex}%
+Als Klasse wird \Class{scrartcl} verwendet. Da es bei Satzungen eher üblich
+ist, die Absätze mit einem Abstand zu setzen, wird Option
+\OptionValueRef{maincls}{parskip}{half} verwendet (siehe
+\autoref{sec:maincls.parmarkup}, \DescPageRef{maincls.option.parskip}).
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=4-4}]{scrjuraexample.tex}%
+Die Satzung soll in Deutsch verfasst werden. Daher wird das Paket
+\Package{babel} mit Option \Option{ngerman} geladen.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange={6-7,9-9}}]{scrjuraexample.tex}%
+Es werden einige Standardeinstellungen für die Schrift vorgenommen. Dazu kommt
+das Paket \Package{textcomp}, das neben einem brauchbaren Euro-Zeichen für
+einige Schriften auch ein verbessertes Paragraphenzeichen bereitstellt.
+
+\lstinputcode[{moretexcs=SelectInputMappings,xleftmargin=2em,%
+ linerange=11-15}]{scrjuraexample.tex}%
+Damit Sonderzeichen und Umlaute direkt eingegeben werden können, wird die
+Eingabecodierung ermittelt. Alternativ könnte hier auch das Paket
+\Package{inputenc} zum Einsatz kommen.
+
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=17-17}]{scrjuraexample.tex}%
+Später sollen Listen nicht mit arabischen Zahlen, sondern mit Kleinbuchstaben
+nummeriert werden. Dies ist beispielsweise mit dem Paket \Package{enumerate}
+möglich.
+
+\lstinputcode[{moretexcs={useshorthands,defineshorthand},%
+ xleftmargin=2em,%
+ linerange=19-27}]{scrjuraexample.tex}%
+Nun ist es Zeit für \Package{scrjura}. Mit Option
+\OptionValueRef{\LabelBase}{clausemark}{forceboth} wird für Paragraphen das
+Setzen von linken und rechten Marken für Kolumnentitel erzwungen. Da
+andererseits nicht erwünscht ist, dass \DescRef{maincls.cmd.section}
+Kolumnentitel erzeugen, wird Seitenstil \PageStyle{myheadings} verwendet, der
+normalerweise keine lebenden Kolumnentitel aktiviert.
+
+Es soll später auch ein Inhaltsverzeichnis erstellt werden, in das die
+Paragraphen ebenfalls aufgenommen werden. Das wird mit
+\DescRef{\LabelBase.option.juratotoc} erreicht. Später werden wir feststellen,
+dass die voreingestellte Breite für die Paragraphennummern im
+Inhaltsverzeichnis nicht genügt. Daher wird mit
+\OptionValueRef{\LabelBase}{juratocnumberwidth}{2.5em} für etwas mehr Platz
+gesorgt.
+
+Die Definition der Abkürzungen wurde bereits in
+\autoref{sec:scrjura.shorthandexample} erklärt. Im Beispiel wurde sie
+übernommen, um später die Eingabe zu vereinfachen.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=29-29}]{scrjuraexample.tex}%
+Es ist Zeit, das eigentliche Dokument zu beginnen.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=31-35}]{scrjuraexample.tex}%
+Wie jedes Dokument hat auch eine Satzung einen Titel. Dieser wird mit den
+gewohnten \KOMAScript-Mitteln (siehe \autoref{sec:maincls.titlepage}, ab
+\autopageref{sec:maincls.titlepage}) erstellt.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=37-37}]{scrjuraexample.tex}%
+Wie bereits erwähnt, soll ein Inhaltsverzeichnis erstellt werden.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=39-43}]{scrjuraexample.tex}%
+Präambeln sind in Satzungen nicht ungewöhnlich. Hier wird sie mit
+\DescRef{maincls.cmd.addsec} gesetzt, damit sie auch einen Eintrag ins
+Inhaltsverzeichnis erhält.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=45-45}]{scrjuraexample.tex}%
+Hier wird ein kleiner Trick angewendet. Die einzelnen Artikel der Satzung
+sollen nicht mit arabischen Zahlen, sondern mit Großbuchstaben nummeriert
+werden -- genau wie dies auch im Anhang eines Artikels mit \Class{scrartcl}
+der Fall ist.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=47-49}]{scrjuraexample.tex}%
+Mit dem ersten Artikel beginnt auch der Vertrag.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=50-59}]{scrjuraexample.tex}%
+Der erste Paragraph erhält neben der Nummer auch einen Titel. Dies wird auch
+bei den nachfolgenden Paragraphen so sein.
+
+Der erste Absatz des Vertrags enthält nichts ungewöhnliches. Da es nicht der
+einzige Absatz ist, werden bei der Ausgabe jedem Absatz automatisch
+Absatznummern voran gestellt werden. Damit dies auch beim ersten Absatz
+geschieht, sind allerdings zwei \LaTeX-Läufe notwendig. Da dies für das
+Inhaltsverzeichnis ohnehin der Fall sein wird, stört das aber auch nicht
+weiter.
+
+Im zweiten Absatz stehen zwei Sätze. Hier finden zum ersten Mal die
+Abkürzungen \texttt{'S} und
+\texttt{'.} Anwendung. Mit der ersten wird lediglich eine Satznummer
+erzeugt. Mit der zweiten wird nicht nur ein Punkt, sondern nachfolgend
+auch eine Satznummer erzeugt. Beide Sätze des Absatzes sind somit nummeriert.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=60-75}]{scrjuraexample.tex}%
+Der zweite Paragraph: Auch dieser enthält wieder mehrere Absätze, die
+teilweise auch mehrere Sätze umfassen. Im zweiten Absatz ist darüber hinaus
+eine Aufzählung zu finden. Beim letzten Absatz wurde ein Label gesetzt, da auf
+diesen später noch verwiesen werden soll.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=77-84}]{scrjuraexample.tex}%
+Der dritte Paragraph enthält als Besonderheit einen Querverweis. In diesem
+Fall wird in der Langform mit Paragraph, Absatz und Satz referenziert. Soll
+der Satz später doch entfallen, so kann dies global durch Setzen der Option
+\OptionValueRef{\LabelBase}{ref}{nosentence} erreicht werden.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=86-87}]{scrjuraexample.tex}%
+Hier gibt es nun einen ersten Spezialfall eines Paragraphen. Dieser Paragraph
+war in einer früheren Fassung der Satzung noch enthalten, wurde dann aber
+entfernt. Dabei sollen jedoch die nachfolgenden Paragraphen nicht neu
+nummeriert werden, sondern ihre alte Nummer behalten. Deshalb wurde die
+\DescRef{\LabelBase.cmd.Clause}-Anweisung nicht entfernt, sondern lediglich um
+die Eigenschaft \Option{dummy} erweitert. Außerdem kann so auch weiterhin ein
+Label für diesen Paragraphen gesetzt werden, obwohl der Paragraph selbst nicht
+angezeigt wird.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=88-92}]{scrjuraexample.tex}%
+Es wird ein weiterer Artikel begonnen. Damit Probleme mit der
+Absatznummerierung ausgeschlossen sind, wird dazu kurzzeitig die
+\DescRef{\LabelBase.env.contract}-Umgebung unterbrochen.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=93-93}]{scrjuraexample.tex}%
+Auch der erste Paragraph im nächsten Artikel wurde gestrichen.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=95-104}]{scrjuraexample.tex}%
+Hier haben wir wieder einen echten Paragraphen. Darin wird zum einen auf einen
+der gestrichenen Paragraphen verwiesen. Zum anderen wird auch wieder ein Label
+gesetzt.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=107-112}]{scrjuraexample.tex}%
+Hier haben wir den zweiten Spezialfall eines Paragraphen. In diesem Fall wurde
+kein Paragraph gestrichen, sondern ein neuer Paragraph eingefügt, ohne dass
+nachfolgend Paragraphen neu nummeriert werden. Dazu wurde
+\DescRef{\LabelBase.cmd.SubClause} verwendet. Somit erhält dieser Paragraph
+die Nummer des vorherigen Paragraphen, die zur Unterscheidung um ein kleines
+»a« erweitert wurde.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=114-134}]{scrjuraexample.tex}%
+Die übrigen Paragraphen dieses Artikels enthalten nur bereits bekannte
+Anweisungen und keine neuen Besonderheiten.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=136-150}]{scrjuraexample.tex}%
+Es folgt noch ein weiterer Artikel ohne Besonderheiten.
+
+\lstinputcode[{xleftmargin=2em,%
+ linerange=152-152}]{scrjuraexample.tex}%
+Danach endet das \LaTeX-Dokument, dessen vordere drei Seiten
+\autoref{fig:scrjura.example} zeigt.%
+%
+\begin{figure}
+ \setcapindent{0pt}%
+ \iffree{%
+ {\hfill
+ \frame{\includegraphics[page=1,width=.482\textwidth,%
+ height=.49\textheight,keepaspectratio]{scrjuraexample}}\enskip
+ \frame{\includegraphics[page=2,width=.482\textwidth,%
+ height=.49\textheight,keepaspectratio]{scrjuraexample}}\par
+ \smallskip}
+ \begin{captionbeside}[{%
+ Beispiel: Die ersten drei Seiten der Beispielsatzung
+ aus\protect\linebreak
+ \protect\autoref{sec:scrjura.example}%
+ }]{%
+ Die ersten drei Seiten der Beispielsatzung aus
+ \protect\autoref{sec:scrjura.example}%
+ }%
+ [l]
+ \frame{\includegraphics[page=3,width=.482\textwidth,%
+ height=.49\textheight,keepaspectratio]{scrjuraexample}}\enskip
+ \end{captionbeside}
+ }{%
+ {\hfill
+ \frame{\includegraphics[page=1,width=.482\textwidth]{scrjuraexample}}%
+ \enskip
+ \frame{\includegraphics[page=2,width=.482\textwidth]{scrjuraexample}}\par
+ \smallskip}
+ \begin{captionbeside}[{%
+ Beispiel: Die ersten drei Seiten der Beispielsatzung
+ aus\protect\linebreak
+ \protect\autoref{sec:scrjura.example}%
+ }]{%
+ Die ersten drei Seiten der Beispielsatzung aus
+ \protect\autoref{sec:scrjura.example}%
+ }%
+ [l]
+ \frame{\includegraphics[page=3,width=.482\textwidth]{scrjuraexample}}%
+ \enskip
+ \end{captionbeside}
+ }%
+ \label{fig:scrjura.example}
+\end{figure}
+
+
+\section{Entwicklungsstand}
+\label{sec:scrjura.draft}
+
+Seit \KOMAScript~3.24 teilt \Package{scrjura} die Versionsnummer der Klassen
+und anderer wichtiger Pakete. Dennoch sei auf einen wichtigen Punkt
+hingewiesen: Bisher ist weder das Zusammenspiel mit vielen anderen Paketen
+noch die Funktion der \DescRef{\LabelBase.env.contract}-Umgebung mit allen
+möglichen \LaTeX-Umgebungen und Einstellungen verschiedener Klassen und Pakete
+getestet. Dies liegt nicht zuletzt daran, dass es sich bei \Package{scrjura}
+um ein sehr spezielles Paket handelt, das weit außerhalb der täglichen Praxis
+des Autors liegt. Damit ist der Autor diesbezüglich in hohem Maße auf
+ausführliche Rückmeldungen durch die Anwender angewiesen.%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-PDF-mode: t
+%%% TeX-master: "guide.tex"
+%%% End:
+
+% LocalWords: Seitenstil bedarfsweise Ebenennummer Absatznummerierung
+% LocalWords: Paragraphenüberschrift Präambeln renewcommand Gesetzestexte
+% LocalWords: Grundgesetzartikel Absatzabstand umbrechbaren Wortabstand
+% LocalWords: Beispielsatzung Paragraphensymbol Vordefinierung Absatznummer
+% LocalWords: Expandierbarkeit umbrechbarer Satznummer Paragraphenzeichen
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrjuraexample.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrjuraexample.tex
new file mode 100644
index 0000000000..c144117cf6
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrjuraexample.tex
@@ -0,0 +1,152 @@
+\documentclass[fontsize=12pt,pagesize,parskip=half]
+ {scrartcl}
+
+\usepackage[ngerman]{babel}
+
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage{charter,helvet}
+\usepackage{textcomp}
+
+\usepackage{selinput}
+\SelectInputMappings{
+ adieresis={ä},
+ germandbls={ß},
+}
+
+\usepackage{enumerate}
+
+\usepackage[clausemark=forceboth,
+ juratotoc,
+ juratocnumberwidth=2.5em]
+ {scrjura}
+\useshorthands{'}
+\defineshorthand{'S}{\Sentence\ignorespaces}
+\defineshorthand{'.}{. \Sentence\ignorespaces}
+
+\pagestyle{myheadings}
+
+\begin{document}
+
+\subject{Satzung}
+\title{VfVmai}
+\subtitle{Verein für Vereinsmaierei mit ai n.e.V.}
+\date{11.\,11.\,2011}
+\maketitle
+
+\tableofcontents
+
+\addsec{Präambel}
+
+Die Vereinslandschaft in Deutschland ist vielfältig.
+Doch leider mussten wir feststellen, dass es dabei oft
+am ernsthaften Umgang mit der Ernsthaftigkeit krankt.
+
+\appendix
+
+\section{Allgemeines}
+
+\begin{contract}
+\Clause{title={Name, Rechtsform, Sitz des Vereins}}
+
+Der Verein führt den Namen »Verein für Vereinsmaierei mit
+ai n.e.V.« und ist in keinem Vereinsregister eingetragen.
+
+'S Der Verein ist ein nichtwirtschaftlicher, unnützer
+Verein'. Er hat keinen Sitz und muss daher stehen.
+
+Geschäftsjahr ist vom 31.~März bis zum 1.~April.
+
+\Clause{title={Zweck des Vereins}}
+
+'S Der Verein ist zwar sinnlos, aber nicht zwecklos'.
+Vielmehr soll er den ernsthaften Umgang mit der
+Ernsthaftigkeit auf eine gesunde Basis stellen.
+
+Zu diesem Zweck kann der Verein
+\begin{enumerate}[\qquad a)]
+\item in der Nase bohren,
+\item Nüsse knacken,
+\item am Daumen lutschen.
+\end{enumerate}
+
+Der Verein ist selbstsüchtig und steht dazu.
+
+Der Verein verfügt über keinerlei Mittel.\label{a:mittel}
+
+\Clause{title={Vereinsämter}}
+
+Die Vereinsämter sind Ehrenämter.
+
+'S Würde der Verein über Mittel verfügen
+(siehe \ref{a:mittel}), so könnte er einen
+hauptamtlichen Geschäftsführer bestellen'. Ohne
+die notwendigen Mittel ist dies nicht möglich.
+
+\Clause{title={Vereinsmaier},dummy}
+\label{p.maier}
+\end{contract}
+
+\section{Mitgliedschaft}
+
+\begin{contract}
+\Clause{title={Mitgliedsarten},dummy}
+
+\Clause{title={Erwerb der Mitgliedschaft}}
+
+Die Mitgliedschaft kann jeder zu einem angemessenen
+Preis von einem der in \refClause{p.maier}
+genannten Vereinsmaier erwerben.\label{a.preis}
+
+'S Zum Erwerb der Mitgliedschaft ist ein formloser
+Antrag erforderlich'. Dieser Antrag ist in grüner
+Tinte auf rosa Papier einzureichen.
+
+Die Mitgliedschaft kann nicht abgelehnt werden.
+
+\SubClause{title={Ergänzung zu vorstehendem
+ Paragraphen}}
+
+'S Mit Abschaffung von \refClause{p.maier} verliert
+\ref{a.preis} seine Umsetzbarkeit'. Mitgliedschaften
+können ersatzweise vererbt werden.
+
+\Clause{title={Ende der Mitgliedschaft}}
+
+'S Die Mitgliedschaft endet mit dem Leben'. Bei nicht
+lebenden Mitgliedern endet die Mitgliedschaft nicht.
+
+\Clause{title={Mitgliederversammlung}}
+
+Zweimal jährlich findet eine Mitgliederversammlung statt.
+
+Der Abstand zwischen zwei Mitgliederversammlungen
+beträgt höchstens 6~Monate, 1~Woche und 2~Tage.
+
+Frühestens 6~Monate nach der letzten Mitgliederversammlung
+hat die Einladung zur nächsten Mitgliederversammlung zu
+erfolgen.
+
+\SubClause{title={Ergänzung zur Mitgliederversammlung}}
+
+Die Mitgliederversammlung darf frühstens 2~Wochen nach
+letztem Eingang der Einladung abgehalten werden.
+\end{contract}
+
+\section{Gültigkeit}
+
+\begin{contract}
+\Clause{title={In Kraft treten}}
+
+Diese Satzung tritt am 11.\,11.\,2011 um 11:11~Uhr
+in Kraft.
+
+'S Sollten irgendwelche Bestimmungen dieser Satzung im
+Widerspruch zueinander stehen, tritt die Satzung am
+11.\,11.\,2011 um 11:11~Uhr und 11~Sekunden wieder
+außer Kraft'. Der Verein ist in diesem Fall als
+aufgelöst zu betrachten.
+
+\end{contract}
+
+\end{document}
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-notecolumn-example.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-notecolumn-example.tex
new file mode 100644
index 0000000000..512e36dab0
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-notecolumn-example.tex
@@ -0,0 +1,131 @@
+% ======================================================================
+% scrlayer-notecolumn-example.tex
+% Copyright (c) Markus Kohm, 2013-2017
+%
+% 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-2017
+%
+% 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.Clause}{\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\Clause{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\Clause{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 entsprechenden 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{addmargin}
+
+\end{document}
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-notecolumn.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-notecolumn.tex
new file mode 100644
index 0000000000..36ecd1a7e3
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-notecolumn.tex
@@ -0,0 +1,792 @@
+% ======================================================================
+% scrlayer-notecolumn.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-2018
+%
+% 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: 2018-02-05 10:50:56 +0100 (Mon, 05 Feb 2018) $
+ KOMA-Script guide (chapter:scrlayer-notecolumn)]
+
+\chapter{Notizspalten mit \Package{scrlayer-notecolumn}}
+\labelbase{scrlayer-notecolumn}
+
+\BeginIndexGroup
+\BeginIndex{Package}{scrlayer-notecolumn}%
+Bis einschließlich Version~3.11b unterstützte \KOMAScript{} Notizspalten nur
+in Form der Marginalienspalte, die mit \DescRef{maincls.cmd.marginpar} und
+\DescRef{maincls.cmd.marginline} (siehe \autoref{sec:maincls.marginNotes},
+\DescPageRef{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\textnote{Seitenumbruch} innerhalb von Randnotizen
+ sind nicht möglich. Dies führt teilweise dazu, dass die Randnotizen bis in
+ den unteren Rand hineinragen.
+\item Randnotizen in der Nähe des Seitenumbruchs können auf die nächste Seite
+ rutschen und dort im Falle des doppelseitigen Layouts mit alternierenden
+ Marginalienspalten im falschen Rand\textnote{Zuordnung zum richtigen 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} (siehe
+ \cite{package:marginnote}) lösbar.
+\item Randnotizen innerhalb von Gleitumgebungen\textnote{Gleitumgebungen} oder
+ Fußnoten\textnote{Fußnoten} sind nicht möglich. Auch dieses Problem ist mit
+ \Package{marginnote} lösbar.
+\item Es gibt nur eine Marginalienspalte\textnote{mehrere Notizspalten} oder
+ allenfalls zwei, wenn mit \Macro{reversemarginpar} und
+ \Macro{normalmarginpar} gearbeitet wird, wobei \Macro{reversemarginpar} bei
+ doppelseitigen Dokumenten kaum zu gebrauchen ist.
+\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
+\hyperref[cha:scrlayer]{\Package{scrlayer}}\IndexPackage{scrlayer}%
+\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}}. Damit einher geht
+jedoch auch ein Nachteil:\textnote{Achtung!} Notizen können nur auf den Seiten
+ausgegeben werden, die einen auf \hyperref[cha:scrlayer]{\Package{scrlayer}}
+basierenden Seitenstil besitzen. Dieser Nachteil lässt sich mit Hilfe von
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}%
+\IndexPackage{scrlayer-scrpage} jedoch leicht
+auf"|lösen oder sogar in einen Vorteil verwandeln.
+
+
+\section{Hinweise zum Entwicklungsstand}
+\seclabel{draft}
+
+Das Paket wurde ursprünglich zur Demonstration des Potentials von
+\hyperref[cha:scrlayer]{\Package{scrlayer}}\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}}
+als sogenannter\textnote{Proof of Concept} \emph{Proof of Concept}
+entwickelt. Obwohl es sich 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
+\hyperref[cha:scrlayer]{\Package{scrlayer}}. Dennoch ist davon auszugehen,
+dass sich auch in \Package{scrlayer-notecolumn} noch Fehler befinden. Es wird
+darum gebeten, diese bei Auf"|finden 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 eher als experimentell\textnote{experimentell} gilt, findet sich
+die Anleitung hier im zweiten Teil \iffree{der \KOMAScript-Anleitung}{dieses
+ Buches}. 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\textnote{für \LaTeX-Experten} befinden, mag daher einiges
+in den nachfolgenden Erklärungen unklar oder gar unverständlich
+sein. \iffree{Ich bitte um Nachsicht, dass ich bei experimentellen Paketen den
+ Aufwand für die Anleitung halbwegs erträglich halten will.}{Sie sollten
+ jedoch genügen, um einfache Aufgaben mit \Package{scrlayer-notecolumn} lösen
+ zu können. Gleichzeitig finden Entwickler hoffentlich nützliche Anregungen
+ für eigene Ideen.}
+
+\iffalse% Umbruchoptimierung
+Es sei auch darauf\textnote{Achtung!} hingewiesen, dass der \KOMAScript-Autor
+nicht für die Weiterentwicklung des Pakets garantiert und nur eingeschränkten
+Support dafür bietet. Das liegt in der Natur eines Pakets, das nur zu
+Demonstrationszwecken geschrieben wurde.%
+\fi
+
+\LoadCommonFile{options}% \section{Frühe oder späte Optionenwahl}
+
+\LoadCommonFile{textmarkup}% \section{Textauszeichnungen}
+
+\section{Deklaration neuer Notizspalten}
+\seclabel{declaration}
+
+Beim Laden des Pakets wird bereits automatisch eine Notizspalte namens
+\PValue{marginpar} deklariert. Wie der Name andeutet, liegt diese Notizspalte
+im Bereich der normalen Marginalienspalte von \DescRef{maincls.cmd.marginpar}
+und \DescRef{maincls.cmd.marginline}. Dabei werden auch die Einstellungen
+\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. Will man hingegen innerhalb einer Seite
+sowohl Notizen links als auch rechts neben dem Haupttext haben, so sollte man
+sich eine zweite Notizspalte definieren.
+
+Die Voreinstellungen für alle neu deklarierten Notizspalten entsprechen im
+Übrigen den erwähnten Einstellungen für die vordefinierte
+\PValue{marginpar}. %
+\iftrue% Umbruchoptimierung
+Diese können bei der Deklaration jedoch leicht geändert werden.%
+\fi
+
+Es ist zu beachten\textnote{Achtung!}, dass Notizspalten nur auf Seiten
+ausgegeben werden, deren Seitenstil auf dem Paket
+\hyperref[cha:scrlayer]{\Package{scrlayer}}\IndexPackage{scrlayer}%
+\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}} basiert. Das Paket
+\hyperref[cha:scrlayer]{\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
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{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}
+Mit Hilfe dieser Anweisungen können Notizspalten angelegt werden. Dabei
+erzeugt \Macro{DeclareNoteColumn} die Notizspalte ungeachtet der Tatsache, ob
+sie bereits existiert, 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 \DescRef{\LabelBase.cmd.setkomafont} und \DescRef{\LabelBase.cmd.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\textnote{Name des Elements} \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},
+\autopageref{tab:scrlayer-notecolumn.note.column.options} zu
+finden. Als\textnote{Voreinstellung: Option \Option{marginpar}} Voreinstellung
+ist \Option{marginpar} immer gesetzt, kann aber durch individuelle
+Einstellungen überschrieben werden.
+
+Da die Notizspalten mit Hilfe von \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}} definiert werden, wird
+auch für jede Notizspalte eine Ebene\Index{Ebenen} angelegt. Als
+Name\textnote{Name der Ebene} für diese Ebene wird ebenfalls
+\PValue{notecolumn.}\PName{Name der Notizspalte} verwendet. Näheres zu Ebenen
+ist \autoref{sec:scrlayer.layers}, ab \autopageref{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.Clause}{\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\textnote{Sprache mit \Package{babel}} 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\textnote{Gesetz mit
+ \hyperref[cha:scrjura]{\Package{scrjura}}} mit
+ \hyperref[cha:scrjura]{\Package{scrjura}}\IndexPackage{scrjura} sei auf
+ \iffree{dessen Anleitung}{\autoref{cha:scrjura}} verwiesen.
+
+ Da ein Seitenstil\textnote{Seitenstil mit
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} mit
+ Seitenzahl verwendet werden soll, wird das Paket
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ \IndexPackage{scrlayer-scrpage} geladen. Somit können Notizspalten auf allen
+ Seiten ausgegeben werden.
+
+ Dann wird das Paket \Package{scrlayer-notecolumn}\textnote{Notizspalte mit
+ \Package{scrlayer-notecolumn}} für die Notizspalten geladen. Die
+ gewünschte Breite der Notizspalte wird über
+ \DescRef{typearea-experts.cmd.AfterCalculatingTypearea}%
+ \IndexPackage{typearea}%
+ \IndexCmd{AfterCalculatingTypearea} nach jeder etwaigen Neuberechnung des
+ Satzspiegels\textnote{Satzspiegel mit
+ \hyperref[cha:typearea]{\Package{typearea}}}%
+ \IndexPackage{typearea} neu berechnet. Sie soll jeweils ein Drittel der
+ Satzspiegelbreite betragen, wobei der Abstand zwischen Text und Notizspalte
+ zu Lasten der Notizspalte geht. %
+ \iftrue% Umbruchoptimierung
+ Diese ist also effektiv um \Length{marginparsep}\IndexLength{marginparsep}
+ schmaler.%
+ \fi
+
+ 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 damaligen 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,\textnote{Achtung!} 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 dem Beispiel die Frage, wie der Text für den Kommentar schmaler
+gesetzt werden kann. Dies werden Sie bei der Fortsetzung des Beispiels
+erfahren.%
+%
+%\begin{table}% Umbruchoptimierung: Tabelle hinter das Beispiel verschoben
+\begin{desclist}
+ \desccaption{%
+% \caption[Mögliche Einstellungen für die Deklaration von Notizspalten]{%
+ 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})%
+ }%
+% \begin{desctabular}
+ \entry{\OptionVName{font}{Schriftattribute}}{%
+ Einstellung der \PName{Schriftattribute} der Notizspalte mit Hilfe von
+ \DescRef{\LabelBase.cmd.setkomafont}. Für erlaubte Werte sei auf
+ \autoref{sec:\LabelBase.textmarkup},
+ \DescPageRef{\LabelBase.cmd.setkomafont} verwiesen.\par%
+ Voreinstellung: \emph{leer}%
+ }%
+ \entry{\Option{marginpar}}{%
+ Position und Breite der Notizspalte werden so eingestellt, dass sie der
+ Marginalienspalte von \DescRef{maincls.cmd.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 \DescRef{maincls.cmd.marginpar} bei Einstellung
+ \Macro{normalmarginpar} entsprechen. Es wird darauf hingewiesen, dass
+ diese Option kein Argument erwartet oder erlaubt.\par%
+ Voreinstellung: \emph{nein}%
+ }%
+ \entry{\OptionVName{position}{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{\Option{reversemarginpar}}{%
+ Position und Breite der Notizspalte werden so eingestellt, dass sie der
+ Marginalienspalte von \DescRef{maincls.cmd.marginpar} bei Einstellung
+ \Macro{reversemarginpar} entsprechen. Es wird darauf hingewiesen, dass
+ diese Option kein Argument erwartet oder erlaubt.\par%
+ Voreinstellung: \emph{nein}%
+ }%
+ \entry{\OptionVName{width}{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ängenausdrücken.\par%
+ Voreinstellung: \emph{durch Option \Option{marginpar}}%
+ }%
+% \end{desctabular}
+%\end{table}
+\end{desclist}
+\EndIndexGroup
+
+
+\section{Erstellen einer Notiz}
+\seclabel{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. 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}\IndexCmd{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 werden die Notizen für die jeweilige Seite
+ausgegeben.
+
+\iffree{}{\pagebreak}% Umbruchoptimierung
+Es ist jedoch zu beachten\textnote{Achtung!}, dass Notizspalten nur auf Seiten
+ausgegeben werden, deren Seitenstil auf dem Paket
+\hyperref[cha:scrlayer]{\Package{scrlayer}}\IndexPackage{scrlayer}%
+\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}} basiert. Das Paket
+\hyperref[cha:scrlayer]{\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
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}
+empfohlen.
+
+
+\begin{Declaration}
+ \Macro{makenote}\OParameter{Name der Notizspalte}\Parameter{Notiz}\\
+ \Macro{makenote*}\OParameter{Name der Notizspalte}\Parameter{Notiz}
+\end{Declaration}
+Mit Hilfe dieser Anweisungen 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}\IndexCmd{pdfsavepos},
+\Macro{pdflastypos}\IndexCmd{pdflastypos} und
+\Macro{pdfpageheight}\IndexLength{pdfpageheight} beziehungsweise deren
+Entsprechungen bei neueren Lua\TeX-Versionen 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\textnote{Kollisionsauf"|lösung} 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\textnote{Seitenumbruch}\Index{Seiten>Umbruch}, 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\Clause{%
+ 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}, \DescPageRef{maincls.env.addmargin}
+ dokumentierte Umgebung
+ \DescRef{maincls.env.addmargin}\IndexEnv{addmargin}\textnote{Spaltenbreite
+ mit \DescRef{maincls.env.addmargin}} 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\textnote{zerbrechliche 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}%
+Beim Testen des Beispiels, werden Sie feststellen, dass die Gesetzes\-spalte
+tiefer hinunter reicht als der Kommentartext. Wenn\textnote{Achtung!} 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.
+
+Das\ChangedAt{v0.1.2583}{\Package{scrlayer-notecolumn}} im Beispiel erwähnte
+Problem mit dem Zerbrechen von Befehlen tritt bei der
+Sternvariante\important{\Macro{makenote*}} normalerweise nicht auf. Diese
+verwendet \Macro{detokenize}, um die Expansion zu verhindern. Das bedeutet
+aber auch, dass man in der \PName{Notiz} keine Befehle verwenden sollte, die
+ihre Bedeutung innerhalb des Dokuments verändern.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{syncwithnotecolumn}\OParameter{Name der Notizspalte}
+\end{Declaration}
+Mit Hilfe dieser Anweisung wird in einer Notizspalte und im Haupttext des
+Dokuments je ein
+Synchronisierungspunkt\textnote{Synchronisation}\Index{Synchronisation}
+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\textnote{Hinweis!} 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}\IndexCmd{vspace}.
+
+Dadurch, dass Synchronisierungspunkte in den Notizspalten erst beim nächsten
+\LaTeX-Lauf\textnote{mehrere \LaTeX-Läufe} 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, so wird an seiner Stelle
+\PValue{marginpar}, also die vordefinierte Notizspalte
+verwendet. Es\textnote{Achtung!} sei an dieser Stelle darauf hingewiesen, dass
+ein leeres optionales Argument nicht gleichbedeutend mit dem Weglassen eines
+optionalen Arguments ist!
+
+Es ist nicht\textnote{Achtung!} 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 auf"|treten, 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\Clause{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
+ entsprechenden 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\textnote{Achtung!} 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\textnote{Zähler in
+ Notizspalten} 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
+ Gesetzes 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.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{syncwithnotecolumns}\OParameter{Liste von Notizspalte}
+\end{Declaration}
+Diese Anweisung führt eine Synchronisierung des Haupttextes mit allen in der
+mit Komma separierten \PName{Liste von Notizspalten} 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.%
+\EndIndexGroup
+
+
+\section{Erzwungene Ausgabe von Notizspalten}
+\seclabel{clearnotes}
+
+Neben der normalen Ausgabe der Notizspalten, wie sie im vorherigen Abschnitt
+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\Index{Ausgabe>erzwungene} ist beispielsweise das
+Ende eines Kapitels oder das Ende des Dokuments.
+
+\begin{Declaration}
+ \Macro{clearnotecolumn}\OParameter{Name der Notizspalte}
+\end{Declaration}
+Mit dieser Anweisung werden alle Notizen einer bestimmen Notizspalte
+ausgegeben, die\textnote{anhängige Notizen}\Index{Notiz>anhaengige=anhängige}
+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 zur
+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\textnote{irrtümliche
+ Notizen}\Index{Notiz>irrtuemliche=irrtümliche} 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\textnote{erzwungene Ausgabe vs. Synchronisation} 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.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{clearnotecolumns}\OParameter{Liste von Notizspalten-Namen}
+\end{Declaration}
+Diese Anweisung arbeitet vergleichbar mit
+\DescRef{\LabelBase.cmd.clearnotecolumn}. Allerdings kann hier als optionales
+Argument nicht nur eine Notizspalte angegeben werden, sondern es ist eine
+durch Komma getrennte Liste mehrerer 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.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{autoclearnotecolumns}{Ein-Aus-Wert}
+\end{Declaration}
+In der Regel wird man anhängige Notizen immer dann ausgeben lassen, wenn im
+Dokument explizit oder implizit -- beispielsweise in Folge von
+\DescRef{maincls.cmd.chapter} -- die Anweisung \DescRef{maincls.cmd.clearpage}
+ausgeführt wird. Dies ist auch am Ende eines Dokuments innerhalb von
+\Macro{end}\PParameter{document} der Fall. Über die Option
+\Option{autoclearnotecolumns} kann daher gesteuert werden, ob bei Ausführung
+von \DescRef{maincls.cmd.clearpage} automatisch auch
+\DescRef{\LabelBase.cmd.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\textnote{Achtung!}, 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
+\DescRef{\LabelBase.cmd.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
+\DescRef{maincls.env.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 \DescRef{maincls.env.addmargin}-Umgebung
+einen weiteren Synchronisationspunkt einzufügen.
+
+Das Ergebnis des Beispiels ist übrigens in
+\autoref{fig:scrlayer-notecolumn.example} zu sehen.\iffree{}{ Dabei wurde
+ lediglich die Farbeinstellung für die \PValue{paragraphs}-Spalte von Blau in
+ Grau geändert.}
+
+\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=.667\textwidth,keepaspectratio]%
+ {scrlayer-notecolumn-example}}
+ \end{captionbeside}
+\end{figure}
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+%%% 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 marginpar marginline
+% LocalWords: Haupttext Demonstrationszwecken Längenausdruck Gesetzestexten
+% LocalWords: Längenausdrücken Satzspiegels typearea scrlayer notecolumn
+% LocalWords: AfterCalculatingTypearea scrjura scrpage Farbeinstellung
+% LocalWords: Sternvariante
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-scrpage-experts.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-scrpage-experts.tex
new file mode 100644
index 0000000000..1c01b4598e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-scrpage-experts.tex
@@ -0,0 +1,433 @@
+% ======================================================================
+% scrlayer-scrpage-experts.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-2018
+%
+% 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: 2018-01-31 09:21:42 +0100 (Wed, 31 Jan 2018) $
+ 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}
+%
+\BeginIndexGroup
+\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 Erweiterungen dar, die der durchschnittliche Anwender
+nicht zwingend benötigt oder die nur aus Gründen der Kompatibilität zu
+\Package{scrpage2} existieren. Ihre Dokumentation hier in
+\autoref{part:forExperts} dient der Vertiefung und der Erweiterung des
+Wissens. Ihre Beherrschung geht über grundlegende Fähigkeiten hinaus.
+
+\LoadCommonFile{pagestylemanipulation}% \section{Beeinflussung von definierten Seitenstilen}
+
+\section{Definition eigener Seitenstil-Paare}
+\seclabel{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 Paares bietet
+\Package{scrlayer-scrpage} auch die Möglichkeit, zusätzliche Paare zu
+definieren. Der Name des Haupt-Seitenstils, beispielsweise
+\PageStyle{scrheadings}, dient dabei quasi auch als Name des Seitenstil-Paares.
+
+\iffree{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}
+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-Paares, mit dessen Einstellungen das neue Paar initialisiert
+werden soll. Das neue Paar erbt also quasi die Konfiguration des
+\PName{Eltern-Paar}s.
+
+{\setlength{\emergencystretch}{1em}%
+Während in \autoref{sec:scrlayer-scrpage.predefined.pagestyles} der Eindruck
+entstanden sein mag, dass sich die dort erläuterten Anweisungen nur auf
+\PageStyle{scrheadings} und \PageStyle{plain.scrheadings} beziehen, gilt das
+tatsächlich nur, solange diese beiden Seitenstile das einzige Seitenstil-Paar
+darstellen. Sobald es mehrere Seitenstil-Paare gibt, beziehen sich
+\DescRef{scrlayer-scrpage.cmd.lehead}, \DescRef{scrlayer-scrpage.cmd.cehead},
+\DescRef{scrlayer-scrpage.cmd.rehead}, \DescRef{scrlayer-scrpage.cmd.lohead},
+\DescRef{scrlayer-scrpage.cmd.cohead}, \DescRef{scrlayer-scrpage.cmd.rohead},
+\DescRef{scrlayer-scrpage.cmd.lefoot}, \DescRef{scrlayer-scrpage.cmd.cefoot},
+\DescRef{scrlayer-scrpage.cmd.refoot}, \DescRef{scrlayer-scrpage.cmd.lofoot},
+\DescRef{scrlayer-scrpage.cmd.cofoot}, \DescRef{scrlayer-scrpage.cmd.rofoot},
+\DescRef{scrlayer-scrpage.cmd.ihead}, \DescRef{scrlayer-scrpage.cmd.chead},
+\DescRef{scrlayer-scrpage.cmd.ohead}, \DescRef{scrlayer-scrpage.cmd.ifoot},
+\DescRef{scrlayer-scrpage.cmd.cfoot} und \DescRef{scrlayer-scrpage.cmd.ofoot}
+auf das zuletzt aktive Paar.\par}
+
+{\setlength{\emergencystretch}{1em}%
+ Neben den achtzehn vorgenannten sind auch die drei nachfolgend
+ dokumentierten Anweisungen
+ \DescRef{scrlayer-scrpage-experts.cmd.clearmainofpairofpagestyles},
+ \DescRef{scrlayer-scrpage-experts.cmd.clearplainofpairofpagestyles} und
+ \DescRef{scrlayer-scrpage-experts.cmd.clearpairofpagestyles} für die
+ Verwendung im letzten Parameter, \PName{Definition}, gedacht. In diesem Fall
+ stellen sie eine Art Grundkonfiguration des Seitenstil-Paares 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
+ \DescRef{maincls.cmd.pagestyle}\IndexCmd{pagestyle}.\par}
+
+Es sei darauf hingewiesen, dass die Anweisungen aus
+\autoref{sec:scrlayer-scrpage.pagestyle.content} ab
+\autopageref{sec:scrlayer-scrpage.pagestyle.content} ohnehin allgemeiner Natur
+sind und für alle mit \PageStyle{scrlayer-scrpage} definierten Seitenstile
+gelten.
+
+Während\textnote{Unterschiede} \Macro{defpairofpagestyles} das Seitenstil-Paar
+unabhängig davon, ob entsprechende Seitenstile bereits existieren, definiert,
+tun \Macro{newpairofpagestyles} und \Macro{providepairofpagestyles} dies 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, wohingegen sie bei
+\Macro{newpairofpagestyles} zu einem Fehler führt. 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.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{clearmainofpairofpagestyles}
+ \Macro{clearplainofpairofpagestyles}
+ \Macro{clearpairofpagestyles}
+\end{Declaration}
+Mit \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 ebenfalls innerhalb von \PName{Definition} bei der
+zuvor erklärten Definition eines Seitenstil-Paares verwendet werden. Sie
+können aber auch jederzeit außerhalb der Definition eines Seitenstil-Paares
+verwendet werden. In diesem Fall beziehen sie sich auf das zuletzt aktivierte
+Paar.%
+\EndIndexGroup
+
+
+\section{Definition komplexer Seitenstile}
+\seclabel{pagestyle.experts}
+
+Neben den vordefinierten Seitenstilen bietet \Package{scrlayer-scrpage} auch
+noch eine eher grundlegende Schnittstelle zur Definition von Seitenstilen. Die
+bisher erläuterten Konzepte greifen bei der Implementierung ebenso wie die von
+\autoref{sec:\LabelBase.pagestyle.triple} auf diese Möglichkeit
+zurück. Aufgrund ihrer hohen Komplexität wird sie 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.
+
+\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}
+Diese Anweisungen dienen der Definition eines einzelnen Seitenstils mit
+maximaler Flexibilität. Dabei ist \PName{Name} der Name des Seitenstils, der
+definiert werden soll.
+
+Die beiden Parameter \PName{Kopfdefinition} und \PName{Fußdefinition} haben
+den identischen Aufbau:
+\begin{flushleft}
+\begin{addmargin}{1em}\raggedright\small
+ \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{addmargin}
+\end{flushleft}
+Dabei sind die Argumente in den runden Klammern optional, das heißt, sie
+können zusammen mit den Klammern weggelassen
+werden. In\important[i]{\DescRef{scrlayer-scrpage.option.headtopline}\\
+ \DescRef{scrlayer-scrpage.option.headsepline}\\
+ \DescRef{scrlayer-scrpage.option.footsepline}\\
+ \DescRef{scrlayer-scrpage.option.footbotline}} diesem Fall richten sich die
+Längen und Dicken je nach Linie nach den Angaben der Optionen
+\DescRef{scrlayer-scrpage.option.headtopline}\IndexOption{headtopline},
+\DescRef{scrlayer-scrpage.option.headsepline}\IndexOption{headsepline},
+\DescRef{scrlayer-scrpage.option.footsepline}\IndexOption{footsepline} und
+\DescRef{scrlayer-scrpage.option.footbotline}\IndexOption{footbotline} (siehe
+\autoref{sec:scrlayer-scrpage.pagestyle.content},
+\DescPageRef{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
+\DescRef{scrlayer-scrpage.cmd.headmark},
+\DescRef{scrlayer-scrpage.cmd.leftmark} oder
+\DescRef{scrlayer-scrpage.cmd.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 oder Seitenfuß erscheinen.
+
+Bei\textnote{Unterschiede} \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.
+
+Alle vier Anweisungen basieren auf
+\DescRef{scrlayer.cmd.DeclarePageStyleByLayers}%
+\IndexCmd{DeclarePageStyleByLayers} des Pakets
+\hyperref[cha:scrlayer]{\Package{scrlayer}}\IndexPackage{scrlayer}. Die dabei
+für einen Seitenstil \PName{Name} definierten Ebenen sind in
+\autoref{tab:scrlayer-scrpage-experts.layersperstyle} aufgeführt. Näheres zu
+Ebenen und Ebenen-Seitenstilen ist \autoref{cha:scrlayer} ab
+\autopageref{cha:scrlayer} zu entnehmen.%
+
+\begin{table}
+% \KOMAoptions{captions=topbeside}
+% \setcapindent{0pt}
+% \begin{captionbeside}
+ \caption
+ [{Von \Package{scrlayer-scrpage} zu einem Seitenstil definierte
+ Ebenen}]
+ {Die von \Package{scrlayer-scrpage} zu einem Seitenstil \PName{Name}
+ definierten Ebenen\label{tab:scrlayer-scrpage-experts.layersperstyle}}
+% [l]
+ \begin{tabular}{ll}
+ \toprule
+ Name der Ebene & Bedeutung der Ebene \\
+ \midrule
+ \PName{Name}\PValue{.head.above.line} & die Linie über dem Kopf\\
+ \PName{Name}\PValue{.head.odd} & der Kopf von rechten Seiten im
+ doppelseitigen Layout\\
+ \PName{Name}\PValue{.head.even} & der Kopf von linken Seiten im
+ doppelseitigen Layout\\
+ \PName{Name}\PValue{.head.oneside} & der Kopf von Seiten im
+ einseitigen Layout\\
+ \PName{Name}\PValue{.head.below.line} & die Linie unter dem Kopf\\
+ \PName{Name}\PValue{.foot.above.line} & die Linie über dem Fuß\\
+ \PName{Name}\PValue{.foot.odd} & der Fuß von rechten Seiten im
+ doppelseitigen Layout\\
+ \PName{Name}\PValue{.foot.even} & der Fuß von linken Seiten im
+ doppelseitigen Layout\\
+ \PName{Name}\PValue{.foot.oneside} & der Fuß von Seiten im
+ einseitigen Layout\\
+ \PName{Name}\PValue{.foot.below.line} & die Linie unter dem Fuß\\
+ \bottomrule
+ \end{tabular}
+% \end{captionbeside}
+\end{table}
+
+\begin{Example}
+ Angenommen, Sie wollen den gesamten Kopf des Seitenstil
+ \PageStyle{scrheadings} mit einer Farbe hinterlegen. Aufgrund der Einleitung
+ zu diesem Kapitel und \autoref{tab:scrlayer-scrpage-experts.layersperstyle},
+ wissen Sie, dass \PageStyle{scrheadings} ein Ebenen-Seitenstil
+ ist, der unter anderem aus den Ebenen \PValue{scrheadings.head.oneside},
+ \PValue{scrheadings.head.odd} und \PValue{scrheadings.head.even}
+ 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}\important{\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
+ \DescRef{scrlayer.cmd.layerwidth}\IndexCmd{layerwidth}%
+ \important[i]{\DescRef{scrlayer.cmd.layerwidth}\\
+ \DescRef{scrlayer.cmd.layerheight}} und
+ \DescRef{scrlayer.cmd.layerheight}\IndexCmd{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
+\DescRef{scrlayer-scrpage.cmd.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. Eine entsprechende Umsetzung
+bietet sich als weitere Übung an.%
+\EndIndexGroup
+
+\section{Definition einfacher Seitenstile mit dreigeteiltem Kopf und Fuß}
+\seclabel{pagestyle.triple}
+
+\LoadNonFree{scrlayer-scrpage-experts}{1}
+
+\section{Das obsolete Erbe von \Package{scrpage2}}
+\seclabel{obsolete}
+
+\begin{Explain}
+ Das Paket \Package{scrlayer-scrpage} enthält auch noch einige Altlasten, die
+ von \Package{scrpage2} stammen und nur existieren, um möglichst kompatibel
+ mit jenem Paket zu sein. Kenntnisse dazu benötigen Anwender nur, wenn sie
+ ein altes Dokument, das noch auf \Package{scrpage2} basiert, bearbeiten
+ wollen. Für\textnote{Achtung!} neue Dokumente sollten die hier dokumentieren
+ Dinge dagegen nicht verwendet werden!
+\end{Explain}
+
+\begin{Declaration}
+ \OptionVName{hmode}{Ein-Aus-Wert}
+\end{Declaration}
+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.%
+\EndIndexGroup
+
+\LoadNonFree{scrlayer-scrpage-experts}{0}
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide"
+%%% End:
+
+
+% LocalWords: Hintergrundebene Seitenkopf Seitenstils Kopfelement Seitenfuß
+% LocalWords: Seitenstile Seitenstilen
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-scrpage.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-scrpage.tex
new file mode 100644
index 0000000000..2a2adf3ad8
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer-scrpage.tex
@@ -0,0 +1,1344 @@
+% ======================================================================
+% scrlayer-scrpage.tex
+% Copyright (c) Markus Kohm, 2014-2018
+%
+% 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, 2014-2018
+%
+% 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: 2018-02-13 09:46:41 +0100 (Tue, 13 Feb 2018) $
+ 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}
+%
+\BeginIndexGroup
+\BeginIndex{Package}{scrlayer-scrpage}%
+\begin{Explain}
+ Bis \KOMAScript~3.11b war das Paket
+ \Package{scrpage2}\IndexPackage[indexmain]{scrpage2}%
+ \important{\Package{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.
+ \iffalse%
+ 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.\par
+ \fi%
+ Seit 2013 ist das Paket \hyperref[cha:scrlayer]{\Package{scrlayer}}%
+ \important{\hyperref[cha:scrlayer]{\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.%
+\iffalse
+\iffree{}{\par 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}.}
+\fi
+\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 \DescRef{\LabelBase.cmd.setkomafont},
+\DescRef{\LabelBase.cmd.addtokomafont} und
+\DescRef{\LabelBase.cmd.usekomafont} in
+\autoref{sec:scrlayer-scrpage.textmarkup}, ab
+\DescPageRef{\LabelBase.cmd.setkomafont}) bis hin zum konfigurierbaren Format
+der Gliederungsnummern in Kolumnentiteln (siehe Option
+\DescRef{maincls.option.numbers} und beispielsweise Anweisung
+\DescRef{\LabelBase.cmd.chaptermarkformat} in \autoref{sec:maincls.structure},
+\DescPageRef{maincls.option.numbers} und
+\DescPageRef{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 nahegelegt.
+
+\LoadCommonFile{options} % \section{Frühe oder späte Optionenwahl}
+
+\LoadCommonFile{headfootheight} % \section{Höhe von Kopf und Fuß}
+
+\LoadCommonFile{textmarkup} % \section{Textauszeichnung}
+
+\section{Verwendung vordefinierter Seitenstile}
+\seclabel{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}
+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.%
+\EndIndexGroup
+
+
+\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}
+\iffalse% Umbruchvarianten
+Was in den Kopf der Seitenstile
+\DescRef{\LabelBase.pagestyle.plain.scrheadings} und
+\DescRef{\LabelBase.pagestyle.scrheadings} %
+\else%
+Was bei \DescRef{\LabelBase.pagestyle.scrheadings} und
+\DescRef{\LabelBase.pagestyle.plain.scrheadings} in den Kopf der Seite %
+\fi%
+geschrieben wird, ist mit Hilfe dieser Befehle einstellbar. Dabei setzt das
+optionale Argument jeweils den Inhalt eines Elements in
+\DescRef{\LabelBase.pagestyle.plain.scrheadings}%
+\iffalse% Umbruchvarianten
+\iffree{}{ beziehungsweise \PageStyle{scrplain}} \fi , während das
+obligatorische Argument jeweils einen Inhalt in
+\DescRef{\LabelBase.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{centered}« (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«).
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{pagehead}\LabelFontElement{pagehead}%
+\BeginIndex{FontElement}{pageheadfoot}\LabelFontElement{pageheadfoot}%
+Diese Elemente besitzen jedoch nicht jedes für sich eine Schriftzuordnung mit
+Hilfe der Befehle \DescRef{\LabelBase.cmd.setkomafont} und \DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:scrlayer-scrpage.textmarkup},
+\DescPageRef{\LabelBase.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.%
+\EndIndexGroup
+
+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){%
+ \color{ImageRed}%
+ \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){%
+ \color{ImageBlue}%
+ \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){%
+ \color{ImageGreen}%
+ \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){%
+ \color{ImageBlue}%
+ \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){%
+ \color{ImageRed}%
+ \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){%
+ \color{ImageGreen}%
+ \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
+ \color{ImageBlue}%
+ \put(.5\textwidth,0){\makebox(0,\baselineskip)[c]{\Macro{ihead}}}%
+ \color{ImageGreen}%
+ \put(.5\textwidth,-5mm){\makebox(0,\baselineskip)[c]{\Macro{chead}}}
+ \color{ImageRed}%
+ \put(.5\textwidth,-10mm){\makebox(0,\baselineskip)[c]{\Macro{ohead}}}
+ \put(\dimexpr.5\textwidth-2em,.5\baselineskip){%
+ \color{ImageBlue}%
+ \put(0,0){\line(-1,0){1.5em}}%
+ \put(-1.5em,0){\vector(0,1){5mm}}%
+ \color{ImageGreen}%
+ \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}}
+ \color{ImageRed}%
+ \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){%
+ \color{ImageBlue}%
+ \put(0,0){\line(1,0){1.5em}}%
+ \put(1.5em,0){\vector(0,1){5mm}}%
+ \color{ImageGreen}%
+ \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}}
+ \color{ImageRed}%
+ \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 Kopfes 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
+ \DescRef{maincls.cmd.pagestyle}\PParameter{scrheadings} in der Präambel
+ unseres Beispiels führt dies tatsächlich zur Verwendung des Seitenstils
+ \DescRef{\LabelBase.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 \DescRef{\LabelBase.pagestyle.plain.scrheadings}
+ unverändert. Das Ergebnis ist für die erste Seite also tatsächlich korrekt.
+
+ Fügen Sie jetzt im Beispiel nach \DescRef{maincls.cmd.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
+ \DescRef{maincls.cmd.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 \iffree{direkt}{\unskip}
+ über dem Titelkopf\iffree{ selbst}{}. Das kommt daher, dass Sie mit den
+ beiden optionalen Argumenten \iffree{den Seitenstil}{\unskip}
+ \DescRef{\LabelBase.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
+ \DescRef{\LabelBase.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 \DescRef{maincls.cmd.titlepagestyle}%
+ \important{\DescRef{maincls.cmd.titlepagestyle}}%
+ \IndexCmd{titlepagestyle} in \autoref{sec:maincls.pagestyle},
+ \DescPageRef{maincls.cmd.titlepagestyle}.
+\end{Example}
+
+\iftrue% Umbruchoptimierung
+\leavevmode\textnote{Achtung!}%
+\else Erlauben Sie mir einen wichtigen Hinweis:\textnote{Achtung!} %
+\fi%
+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 %
+\iffalse% Umbruchoptimierung
+es sonst leicht geschehen, dass die falsche Nummer oder die falsche
+Überschrift im Kolumnentitel ausgegeben wird%
+\else%
+sonst die falsche Nummer oder die falsche Überschrift im Kolumnentitel
+ausgegeben werden%
+\fi%
+. Stattdessen ist der Mark-Mechanismus, idealer Weise in Verbindung mit den
+Automatismen aus dem nächsten Abschnitt, zu verwenden.%
+\EndIndexGroup
+
+
+\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}
+Die Sternvarianten\ChangedAt{v3.14}{\Package{scrlayer-scrpage}} der zuvor
+erklärten Befehle unterscheiden sich von der Form ohne Stern lediglich bei
+Weglassen des optionalen Arguments \OParameter{Inhalt
+ plain.scrheadings}. Während die Form ohne Stern in diesem Fall den Inhalt
+von \DescRef{\LabelBase.pagestyle.plain.scrheadings} unangetastet lässt, wird
+bei der Sternvariante dann das obligatorische Argument \PName{Inhalt
+ scrheadings} auch für \DescRef{\LabelBase.pagestyle.plain.scrheadings}
+verwendet. Sollen also beide Argumente gleich sein, so kann man einfach die
+Sternvariante mit nur einem Argument verwenden.%
+%
+\begin{Example}
+ Mit der Sternform von \DescRef{\LabelBase.cmd.lohead} und
+ \DescRef{\LabelBase.cmd.rohead} lässt sich das
+ Beispiel aus der vorherigen Erklärung etwas verkürzen:
+ % Umbruchoptimierung durch Abstandsänderung
+\begin{lstcode}[belowskip=-\dp\strutbox]
+ \documentclass{scrartcl}
+ \usepackage{scrlayer-scrpage}
+ \lohead*{Peter Musterheinzel}
+ \rohead*{Seitenstile mit \KOMAScript}
+ \pagestyle{scrheadings}
+ \usepackage{lipsum}
+ \begin{document}
+ \title{Seitenstile mit \KOMAScript}
+ \author{Peter Musterheinzel}
+ \maketitle
+ \lipsum
+ \end{document}
+\end{lstcode}%
+\end{Example}%
+\EndIndexGroup
+
+
+\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}
+Was bei \DescRef{\LabelBase.pagestyle.scrheadings} und
+\DescRef{\LabelBase.pagestyle.plain.scrheadings} in den Fuß der Seite
+geschrieben wird, ist mit Hilfe dieser Befehle einstellbar. Dabei setzt das
+optionale Argument jeweils den Inhalt eines Elements in
+\DescRef{\LabelBase.pagestyle.plain.scrheadings}, während das obligatorische
+Argument jeweils einen Inhalt in \DescRef{\LabelBase.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«).
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{pagefoot}\LabelFontElement{pagefoot}%
+\BeginIndex{FontElement}{pageheadfoot}\LabelFontElement[.foot]{pageheadfoot}%
+Diese Elemente besitzen jedoch nicht jedes für sich eine Schriftzuordnung mit
+Hilfe der Befehle \DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:scrlayer-scrpage.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}), sondern alle zusammen über das
+Element \FontElement{pagefoot}\important{\FontElement{pagefoot}}. 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.%
+\EndIndexGroup
+
+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){%
+ \color{ImageRed}%
+ \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){%
+ \color{ImageBlue}%
+ \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){%
+ \color{ImageGreen}%
+ \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){%
+ \color{ImageBlue}%
+ \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){%
+ \color{ImageRed}%
+ \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){%
+ \color{ImageGreen}%
+ \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
+ \color{ImageBlue}%
+ \put(.5\textwidth,15mm){\makebox(0,\baselineskip)[c]{\Macro{ifoot}}}%
+ \color{ImageGreen}%
+ \put(.5\textwidth,20mm){\makebox(0,\baselineskip)[c]{\Macro{cfoot}}}
+ \color{ImageRed}%
+ \put(.5\textwidth,25mm){\makebox(0,\baselineskip)[c]{\Macro{ofoot}}}
+ \put(\dimexpr.5\textwidth-2em,.5\baselineskip){%
+ \color{ImageBlue}%
+ \put(0,15mm){\line(-1,0){1.5em}}%
+ \put(-1.5em,15mm){\vector(0,-1){5mm}}%
+ \color{ImageGreen}%
+ \put(0,20mm){\line(-1,0){\dimexpr .25\textwidth-2em\relax}}%
+ \put(-\dimexpr .25\textwidth-2em\relax,20mm){\vector(0,-1){10mm}}%
+ \color{ImageRed}%
+ \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){%
+ \color{ImageBlue}%
+ \put(0,15mm){\line(1,0){1.5em}}%
+ \put(1.5em,15mm){\vector(0,-1){5mm}}%
+ \color{ImageGreen}%
+ \put(0,20mm){\line(1,0){\dimexpr .25\textwidth-2em\relax}}%
+ \put(\dimexpr .25\textwidth-2em\relax,20mm){\vector(0,-1){10mm}}%
+ \color{ImageRed}%
+ \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ß \iffree{zusätzlich}{\unskip} 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 aber nicht auf der Seite mit dem
+ Titelkopf ausgegeben. Die Begründung ist dieselbe wie beim Beispiel zu
+ \DescRef{\LabelBase.cmd.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}
+ \iffalse% Umbruchvarianten
+ 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%
+ \else%
+ Jetzt soll
+ statt\textnote{Fontänderung}\important{\FontElement{pageheadfoot}}%
+ \IndexFontElement{pageheadfoot} der schrägen Schrift in Kopf und Fuß eine
+ aufrechte, aber kleinere Schrift verwendet werden%
+ \fi%
+ % Umbruchoptimierung:
+ \iffalse%
+ \iffree{}{. Dies erreichen
+ Sie, indem Sie in der Dokumentpräambel die folgende Codezeile ergänzen}%
+ \fi%
+ \iftrue%
+ \iffree{}{. Dies erreichen Sie mit folgender Ergänzung:}%
+ \fi
+ :
+\begin{lstcode}
+ \setkomafont{pageheadfoot}{\small}
+\end{lstcode}
+
+ Darüber hinaus, soll
+ \iftrue% Umbruchvarianten
+ der Kopf\important{\FontElement{pagehead}}\IndexFontElement{pagehead}, nicht
+ jedoch der Fuß
+ \else%
+ nur der Kopf\important{\FontElement{pagehead}}\IndexFontElement{pagehead}
+ \fi%
+ fett gesetzt werden:
+\begin{lstcode}
+ \setkomafont{pagehead}{\bfseries}
+\end{lstcode}
+ Bei dieser Anweisung ist wichtig\textnote{Achtung!}, dass sie nach
+ dem Laden von \Package{scrpage-scrlayer} erfolgt, weil davor
+ \FontElement{pagehead} und \FontElement{pageheadfoot}
+ \iffalse% Umbruchvarianten
+ zwar vorhanden sind, aber dasselbe Element, nämlich
+ \FontElement{pageheadfoot}, %
+ \else%
+ dasselbe Element %
+ \fi
+ bezeichnen. Erst durch \iffree{Laden von }{}\Package{scrpage-scrlayer}
+ werden daraus \iffree{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
+ \DescRef{\LabelBase.pagestyle.scrheadings} und
+ \DescRef{\LabelBase.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}« mit »\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}%
+
+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.
+
+\iftrue% Umbruchoptimierung
+\leavevmode\textnote{Achtung!}%
+\else Erlauben Sie mir erneut einen wichtigen Hinweis:\textnote{Achtung!} %
+\fi%
+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 %
+\iffalse% Umbruchoptimierung
+es sonst leicht geschehen, dass die falsche Nummer oder die falsche
+Überschrift im Kolumnentitel ausgegeben wird%
+\else%
+sonst die falsche Nummer oder die falsche Überschrift im Kolumnentitel
+ausgegeben werden%
+\fi%
+. Stattdessen ist der Mark-Mechanismus, idealer Weise in Verbindung mit den
+Automatismen aus dem nächsten Abschnitt, zu verwenden.%
+\EndIndexGroup
+
+
+\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}
+Die Sternvarianten\ChangedAt{v3.14}{\Package{scrlayer-scrpage}} der zuvor
+erklärten Befehle unterscheiden sich von der Form ohne Stern lediglich bei
+Weglassen des optionalen Arguments \OParameter{Inhalt
+ plain.scrheadings}. Während die Form ohne Stern in diesem Fall den Inhalt
+von \DescRef{\LabelBase.pagestyle.plain.scrheadings} unangetastet lässt, wird
+bei der Sternvariante dann das obligatorische Argument \PName{Inhalt
+ scrheadings} auch für \DescRef{\LabelBase.pagestyle.plain.scrheadings}
+verwendet. Sollen also beide Argumente gleich sein, so kann man einfach die
+Sternvariante mit nur einem Argument verwenden.%
+%
+\begin{Example}
+ Mit der Sternform von \DescRef{\LabelBase.cmd.lofoot} und
+ \DescRef{\LabelBase.cmd.rofoot} lässt sich das
+ Beispiel aus der vorherigen Erklärung etwas verkürzen:
+% Umbruchoptimierung durch Abstandsänderung
+\begin{lstcode}[belowskip=-\dp\strutbox]
+ \documentclass[twoside]{scrartcl}
+ \usepackage{scrlayer-scrpage}
+ \lohead{Peter Musterheinzel}
+ \rohead{Seitenstile mit \KOMAScript}
+ \lofoot*{Verlag Naseblau, Irgendwo}
+ \rehead{Peter Musterheinzel}
+ \lehead{Seitenstile mit \KOMAScript}
+ \refoot*{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}%
+%
+\EndIndexGroup
+
+
+\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}
+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%
+\iffalse% Umbruchvarianten
+. Ein Element, das auf linken Seiten rechts steht, steht auf rechten Seiten
+links.
+Mittig angeordnete Elemente sind normalerweise auf beiden Seiten mittig
+angeordnet.%
+\else%
+\ und umgekehrt. Mittig bleibt mittig.%
+\fi%
+
+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 \DescRef{\LabelBase.cmd.lehead} als auch
+\DescRef{\LabelBase.cmd.rohead}. Der Befehl \Macro{chead} entspricht sowohl
+\DescRef{\LabelBase.cmd.cehead} als auch \DescRef{\LabelBase.cmd.cohead}. Und
+Befehl \Macro{ihead} entspricht \DescRef{\LabelBase.cmd.rehead} und
+\DescRef{\LabelBase.cmd.lohead}. Gleiches 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}
+ \iftrue% Umbruchvarianten
+ Das letzte Beispiel lässt sich so vereinfachen:
+ \else
+ Mit Hilfe der neuen Befehle, lässt sich das letzte Beispiel wie folgt
+ vereinfachen:
+ \fi
+\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}
+\iffalse% Umbruchkorrekturtext
+ Wie zusehen ist, konnte die Hälfte der Befehle eingespart und trotzdem
+ dasselbe Ergebnis erzielt werden.
+\fi
+\end{Example}%
+
+\iffalse% Umbruchoptimierung
+Da im einseitigen Layout alle Seiten als ungerade oder rechte Seiten behandelt
+werden, können \iffree{im einseitigen Layout}{dann} diese Befehle auch als
+Synonyme für die entsprechenden Befehle für rechte Seiten verwendet werden.%
+\else%
+Im einseitigen Layout können diese Befehle auch als Synonym für die
+entsprechenden Befehle für rechte Seiten verwendet werden, da dann alle Seiten
+rechte Seiten sind.%
+\fi%
+\iffalse% Umbruchoptimierung
+In den meisten Fällen wird man daher eher diese sechs als die zwölf zuvor
+vorgestellten Befehle verwenden.
+\fi
+
+% Umbruchoptimierung
+\iffree{Erlauben Sie mir noch einmal einen wichtigen
+ Hinweis:\textnote{Achtung!} }{\leavevmode\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 %
+\iffalse% Umbruchoptimierung
+es sonst leicht geschehen, dass die falsche Nummer oder die falsche
+Überschrift im Kolumnentitel ausgegeben wird%
+\else%
+sonst die falsche Nummer oder die falsche Überschrift im Kolumnentitel
+ausgegeben werden%
+\fi%
+. Stattdessen ist der Mark-Mechanismus, idealer Weise in Verbindung mit den
+Automatismen aus dem nächsten Abschnitt, zu verwenden.%
+\EndIndexGroup
+
+
+\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}
+Die Sternvarianten\ChangedAt{v3.14}{\Package{scrlayer-scrpage}} der zuvor
+erklärten Befehle unterscheiden sich von der Form ohne Stern lediglich bei
+Weglassen des optionalen Arguments \OParameter{Inhalt
+ plain.scrheadings}. Während die Form ohne Stern in diesem Fall den Inhalt
+von \DescRef{\LabelBase.pagestyle.plain.scrheadings} unangetastet lässt, wird
+bei der Sternvariante dann das obligatorische Argument \PName{Inhalt
+ scrheadings} auch für \DescRef{\LabelBase.pagestyle.plain.scrheadings}
+verwendet. Sollen also beide Argumente gleich sein, so kann man einfach die
+Sternvariante mit nur einem Argument verwenden.%
+%
+\begin{Example}
+ Mit der Sternform von \DescRef{\LabelBase.cmd.ifoot} lässt sich das
+ Beispiel aus der vorherigen Erklärung weiter verkürzen:
+\begin{lstcode}
+ \documentclass[twoside]{scrartcl}
+ \usepackage{scrlayer-scrpage}
+ \ihead{Peter Musterheinzel}
+ \ohead{Seitenstile mit \KOMAScript}
+ \ifoot*{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}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{pagestyleset}{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
+\DescRef{\LabelBase.pagestyle.scrheadings}\IndexPagestyle{scrheadings} und
+\DescRef{\LabelBase.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{\OptionValue{pagestyleset}{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 \DescRef{\LabelBase.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 wie vorgefunden verwendet. Dies entspricht Option
+\OptionValueRef{\LabelBase}{markcase}{used}\IndexOption{markcase~=used}%
+\important{\OptionValueRef{\LabelBase}{markcase}{used}}. Für
+\DescRef{\LabelBase.pagestyle.plain.scrheadings} entfallen die
+Kolumnentitel. Die Seitenzahlen werden jedoch identisch platziert.
+
+Wird allerdings \hyperref[cha:scrlttr2]{\Class{scrlttr2}}%
+\important{\hyperref[cha:scrlttr2]{\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{\OptionValue{pagestyleset}{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
+\DescRef{\LabelBase.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
+\OptionValueRef{\LabelBase}{markcase}{upper}\IndexOption{markcase~=upper}%
+\important{\OptionValueRef{\LabelBase}{markcase}{upper}} in Großbuchstaben
+umgewandelt. Von \DescRef{\LabelBase.pagestyle.scrheadings} deutlich
+abweichend hat \DescRef{\LabelBase.pagestyle.plain.scrheadings} die Seitenzahl
+im einseitigen Satz mittig im Fuß. Im Unterschied\textnote{\KOMAScript{}
+ vs. Standardklassen} zum 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.
+\iffalse % Umbruchkorrekturtext
+Wer die Seitenzahl zurück haben will, kann dies
+mit
+\begin{lstcode}
+ \cfoot[\pagemark]{}
+\end{lstcode}
+erreichen. %
+\fi%
+Der Kolumnentitel entfällt bei
+\DescRef{\LabelBase.pagestyle.plain.scrheadings}.
+
+Es ist zu beachten\textnote{Achtung!}, dass mit der Verwendung dieser Option
+gleichzeitig der Seitenstil
+\DescRef{\LabelBase.pagestyle.scrheadings}\IndexPagestyle{scrheadings}%
+\important{\DescRef{\LabelBase.pagestyle.scrheadings}} aktiviert wird.
+\iffalse% Umbruchkorrektur
+Dies gilt auch, wenn die Option innerhalb eines Dokuments verwendet wird.%
+\fi
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{pagestylemanipulation}% \section{Beeinflussung von Seitenstilen}
+
+
+\begin{Declaration}
+ \OptionVName{headwidth}{Breite\textup{:}Offset\textup{:}Offset}
+ \OptionVName{footwidth}{Breite\textup{:}Offset\textup{:}Offset}
+\end{Declaration}
+In der Voreinstellung sind Kopf\Index{Kopf>Breite} und
+Fuß\Index{Fuss=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 alle
+drei\ChangedAt{v3.14}{\Package{scrlayer-scrpage}} Werte optional, können also
+auch weggelassen werden. Falls ein Wert weggelassen wird, kann auch ein
+zugehöriger Doppelpunkt links davon entfallen. Ist nur ein \PName{Offset}
+angegeben, so wird dieser sowohl für linke als auch für rechte Seiten
+verwendet. Ansonsten wird im doppelseitigen Satz der erste \PName{Offset} für
+ungerade, also rechte Seiten und der zweite für gerade, also linke Seiten
+verwendet. Ist insgesamt nur ein Wert und 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}
+ \entry{\PValue{foot}}{%
+ die aktuelle Breite des Fußes%
+ }%
+ \entry{\PValue{footbotline}}{%
+ die aktuelle Länge der horizontalen Linie unterhalb des Fußes%
+ }%
+ \entry{\PValue{footsepline}}{%
+ die aktuelle Länge der horizontalen Linie zwischen dem Textbereich und
+ dem Fuß%
+ } \entry{\PValue{head}}{%
+ die aktuelle Breite des Kopfes%
+ }%
+ \entry{\PValue{headsepline}}{%
+ die aktuelle Länge der horizontalen Linie zwischen dem Kopf und dem
+ Textbereich%
+ }%
+ \entry{\PValue{headtopline}}{%
+ die aktuelle Länge der horizontalen Linie über dem Kopf%
+ }%
+ \entry{\PValue{marginpar}}{%
+ die Breite der Marginalienspalte einschließlich des Abstandes zwischen
+ dem Textbereich und der Marginalienspalte%
+ }%
+ \entry{\PValue{page}}{%
+ die Breite der Seite unter Berücksichtigung einer eventuell mit Hilfe
+ des Pakets \Package{typearea} definierten Bindekorrektur (siehe Option
+ \DescRef{typearea.option.BCOR} in \autoref{sec:typearea.typearea},
+ \DescPageRef{typearea.option.BCOR})%
+ }%
+ \entry{\PValue{paper}}{%
+ die Breite des Papiers ohne Berücksichtigung einer etwaigen
+ Bindekorrektur%
+ }%
+ \entry{\PValue{text}}{%
+ die Breite des Textbereichs%
+ }%
+ \entry{\PValue{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}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{headtopline}{Dicke\textup{:}Länge}
+ \OptionVName{headsepline}{Dicke\textup{:}Länge}
+ \OptionVName{footsepline}{Dicke\textup{:}Länge}
+ \OptionVName{footbotline}{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 \DescRef{\LabelBase.option.ilines}\IndexOption{ilines}%
+\important{\DescRef{\LabelBase.option.ilines},
+ \DescRef{\LabelBase.option.clines}, \DescRef{\LabelBase.option.olines}},
+\DescRef{\LabelBase.option.clines}\IndexOption{clines} und
+\DescRef{\LabelBase.option.olines}\IndexOption{olines}, die später in diesem
+Abschnitt erklärt werden.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{headtopline}\LabelFontElement{headtopline}%
+\BeginIndex{FontElement}{headsepline}\LabelFontElement{headsepline}%
+\BeginIndex{FontElement}{footsepline}\LabelFontElement{footsepline}%
+\BeginIndex{FontElement}{footbotline}\LabelFontElement{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
+\important[i]{\FontElement{headtopline}\\
+ \FontElement{headsepline}\\
+ \FontElement{footsepline}\\
+ \FontElement{footbotline}}Elemente \FontElement{headtopline},
+\FontElement{headsepline}, \FontElement{footsepline} und
+\FontElement{footbotline} angewendet. Diese können mit den Anweisungen
+\DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} geändert werden (siehe
+\autoref{sec:scrlayer-scrpage.textmarkup}, ab
+\DescPageRef{\LabelBase.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.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{plainheadtopline}{Ein-Aus-Wert}
+ \OptionVName{plainheadsepline}{Ein-Aus-Wert}
+ \OptionVName{plainfootsepline}{Ein-Aus-Wert}
+ \OptionVName{plainfootbotline}{Ein-Aus-Wert}
+\end{Declaration}
+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.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{ilines}
+ \Option{clines}
+ \Option{olines}
+\end{Declaration}
+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.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide"
+%%% End:
+
+% LocalWords: Paketoptionen Ebenenmodell Sternvariante Sternform Längenwert
+
+
+% LocalWords: Titelkopf Automatismen Bindekorrektur
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer.tex
new file mode 100644
index 0000000000..9b755255d6
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlayer.tex
@@ -0,0 +1,1805 @@
+% ======================================================================
+% scrlayer.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-2018
+%
+% 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: 2018-12-15 15:01:34 +0100 (Sat, 15 Dec 2018) $
+ 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}
+
+\BeginIndexGroup
+\BeginIndex{Package}{scrlayer}%
+\BeginIndex{}{Ebenen}%
+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}.
+
+
+\LoadCommonFile{options} % \section{Frühe oder späte Optionenwahl}
+
+
+\section{Einige grundlegende Informationen}
+\seclabel{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}\ %
+ \textMacro{else}\ \PName{Sonst-Code}\ \textMacro{fi}
+\end{Declaration}
+Wenn \Macro{if@chapter} definiert ist und \Macro{iftrue}\IndexCmd{iftrue}
+entspricht, berücksichtigt \Package{scrlayer} bei seiner Arbeit die
+Kapitel-Ebene beispielsweise bei Verwendung von Option
+\DescRef{\LabelBase.option.automark}. Wenn es definiert ist, aber nicht
+\Macro{iftrue} entspricht, behandelt \Package{scrlayer} nur die Ebenen der
+Befehle \DescRef{maincls.cmd.part}, \DescRef{maincls.cmd.section},
+\DescRef{maincls.cmd.subsection}, \Macro{sub\dots subsection},
+\DescRef{maincls.cmd.paragraph}, \DescRef{maincls.cmd.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 \DescRef{maincls.cmd.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}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{if@mainmatter}\ \PName{Dann-Code}\ %
+ \textMacro{else}\ \PName{Sonst-Code}\ \textMacro{fi}
+\end{Declaration}
+Klassen wie \Class{book} oder \Class{scrbook} bieten
+\DescRef{maincls.cmd.frontmatter}\IndexCmd{frontmatter},
+\DescRef{maincls.cmd.mainmatter}\IndexCmd{mainmatter} und
+\DescRef{maincls.cmd.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
+\DescRef{maincls.cmd.frontmatter}, \DescRef{maincls.cmd.mainmatter} oder
+\DescRef{maincls.cmd.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 definieren jedoch \DescRef{maincls.cmd.frontmatter},
+\DescRef{maincls.cmd.mainmatter} oder \DescRef{maincls.cmd.backmatter} und
+trotzdem kein \Macro{if@mainmatter}. In diesem Fall definiert
+\Package{scrlayer} \Macro{if@mainmatter} ebenfalls als Synonym für
+\Macro{iftrue} und erweitert darüber hinaus die gefundenen Definitionen von
+\DescRef{maincls.cmd.frontmatter}, \DescRef{maincls.cmd.mainmatter} und
+\DescRef{maincls.cmd.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.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DeclareSectionNumberDepth}\Parameter{Name~der~Gliederungsebene}
+ \Parameter{Tiefe~der~Gliederungsebene}
+\end{Declaration}
+Jeder Gliederungsebene ist normalerweise eine nummerische Tiefe
+zugeordnet. Das ist notwendig, damit \LaTeX{} die Hierarchie der
+Gliederungsebenen verwalten kann. Allerdings sind die Werte
+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.
+
+{\setlength{\emergencystretch}{1em}%
+Das Paket \Package{scrlayer} benötigt ebenfalls Informationen über die
+Hierarchie. Mit Hilfe von \Macro{DeclareSectionNumberDepth} kann
+\Package{scrlayer} zum Namen einer Gliederungsebene die zugehörige nummerische
+Tiefe bekannt gemacht werden. Für die Standardklassen wäre \PName{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.\par}
+
+Das Paket \Package{scrlayer} versucht, diese nummerischen Werte zunächst beim
+Laden des Pakets und 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.%
+%
+\EndIndexGroup
+
+
+\section{Deklaration von Ebenen}
+\seclabel{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 als Antworten auf grundlegende
+Fragen verstanden werden können:
+\iffree{\begin{description}}{%
+ \begingroup
+ \RedeclareSectionCommand[beforeskip=.5\baselineskip plus .25\baselineskip
+ minus .1\baselineskip]{paragraph}%
+ \renewcommand*\item[4][]{\paragraph*{#3{#4}#1}}%
+}%
+\item[Gehört die Ebene zum Vordergrund oder zum Hintergrund?]%
+ \leavevmode\textnote{Vorder- oder Hintergrund}\hskip 0pt
+ 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. Normalerweise ist es
+ daher sinnvoll, dies explizit einzuschränken.
+\item[An welcher Position soll die Ebene ausgegeben
+ werden?]%
+ \leavevmode\textnote{horizontale und vertikale Position}\hskip 0pt
+ Zur Beantwortung dieser Frage dienen Eigenschaften zur Festlegung der
+ horizontalen und der vertikalen Position.
+\item[Wie groß ist die Ebene?]%
+ \leavevmode\textnote{horizontale und vertikale Größe}\hskip 0pt
+ Ebenso wie für die Position gibt es auch für die horizontale und vertikale
+ Ausdehnung der Ebene Eigenschaften. Damit kann eine Ebene auch kleiner oder
+ größer als das Papier sein und an unterschiedlichen Positionen auf dem
+ Papier liegen.
+\item[Wie werden die horizontale und die vertikale Position
+ gemessen?]%
+ \leavevmode\textnote{Ausrichtung}\hskip 0pt
+ Die Antwort auf diese Frage ist die Eigenschaft der 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.
+\item[Ist die Ebene für Textausgabe oder für Grafik vorgesehen?]%
+ \leavevmode\textnote{Text oder Grafik}\hskip 0pt
+ Auch diese Frage ist eng mit der Position verknüpft. Während der Anwender
+ bei der Grafikausgabe beispielsweise davon ausgeht, dass der Ursprung in der
+ linken unteren Ecke der Ebene liegt, wäre dies bei der Textausgabe eher
+ ungünstig. Daher liegt der Ursprung für Textebenen um die Höhe einer
+ Standardtextzeile unterhalb der oberen, linken Ecke der Ebene. Grafikebenen
+ wiederum spannen von sich aus bereits eine
+ \Environment{picture}-Umgebung\IndexEnv{picture} auf, in der zusätzliche
+ Befehle zur Positionierung zur Verfügung stehen.
+\item[Soll die Ebene auf linken oder rechten Seiten eines Dokuments gedruckt
+ werden?]%
+ \leavevmode\textnote{linke oder rechte Seite}\hskip 0pt
+ 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.
+\item[Soll die Ebene in einseitigen oder in doppelseitigen Dokumenten
+ verwendet werden?]%
+ \leavevmode\textnote{einseitig oder doppelseitig}\hskip 0pt
+ 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.
+\item[Soll die Ebene auf Gleitseiten oder auf Normalseiten ausgegeben
+ werden?]%
+ \leavevmode\textnote{Gleitseiten oder Normalseiten}\hskip 0pt
+ \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.
+\item[Welchen Inhalt hat die Ebene?]
+ \leavevmode\textnote{Inhalt}\hskip 0pt
+ Die zugehörige Eigenschaft gibt schlicht an, was gedruckt werden soll, wann
+ immer die Ebene ausgegeben wird.
+\iffree{\end{description}}{%
+ \endgroup\par\bigskip\noindent\ignorespaces
+}%
+Damit haben wir derzeit acht Fragen an die Ebenen, aus denen sich unmittelbar
+eine Reihe von Eigenschaften ergeben. Später
+\iffree{in dieser Anleitung }{}% Umbruchkorrektur
+werden wir weitere Eigenschaften kennenlernen, die jedoch auf diese primären
+Eigenschaften abgebildet werden können.
+
+\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}
+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 nur erfahrenden Anwendern empfohlen.
+
+Bei Verwendung von \Macro{DeclareLayer}\important{\Macro{DeclareLayer}} spielt
+es 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}\important{\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}\important{\Macro{ProvideLayer}} die
+Ebene nur, wenn nicht bereits eine Ebene mit dem angegebenen Namen
+existiert. Wird 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}\important{\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}\important{\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})%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addcontents}{Code}}{%
+ Der angegebene Wert wird an den aktuellen Wert des Attributs
+ \Option{contents} angehängt. Es wird also ein zusätzlicher Inhalt
+ generiert. Zu näheren Informationen über die Behandlung von \PName{Code}
+ siehe Option \Option{contents}.%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addheight}{zusätzliche Höhe}}{%
+ Der aktuelle Wert von Attribut \Option{height} wird um den Wert dieser
+ Option erhöht. Als Wert sind die gleichen Angaben wie bei
+ \Option{height} möglich.%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addhoffset}{zusätzlicher horizontaler Abstand}}{%
+ Der aktuelle Wert von Attribut \Option{hoffset} wird um den Wert dieser
+ Option erhöht. Als Wert sind die gleichen Angaben wie bei
+ \Option{hoffset} möglich.%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addvoffset}{zusätzlicher vertikaler Abstand}}{%
+ Der aktuelle Wert von Attribut \Option{voffset} wird um den Wert dieser
+ Option erhöht. Als Wert sind die gleichen Angaben wie bei
+ \Option{voffset} möglich.%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addwidth}{zusätzliche Breite}}{%
+ Der aktuelle Wert von Attribut \Option{width} wird um den Wert dieser
+ Option erhöht. Als Wert sind die gleichen Angaben wie bei
+ \Option{width} möglich.%
+ }%
+ \nentry{\OptionVName{align}{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
+ Auf"|tretens 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
+ \OptionVName{hoffset}{horizontaler Abstand},
+ \OptionVName{voffset}{vertikaler Abstand},
+ \OptionVName{width}{Breite}, \KOption{height}{Höhe}.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{backandforeground}}{%
+ Mit dieser Option wird die Einschränkung der Ebene auf den Vorder- oder
+ Hintergrund wieder aufgehoben und diesbezüglich die Grundeinstellung
+ wieder hergestellt. In der Regel ist dies wenig sinnvoll, daher existiert
+ die Option nur aus Gründen der Vollständigkeit. Diese Option erwartet und
+ erlaubt keinen Wert.%
+ }%
+ \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{\OptionVName{clone}{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}. Bezüglich \PName{Name
+ einer Ebene} siehe die Hinweise zu \PName{Name der Ebene} am Anfang der
+ Erklärung zu \Macro{DeclareLayer}. Darüber hinaus muss die zu klonende
+ Ebene bereits definiert sein.%
+ }%
+ \entry{\OptionVName{contents}{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{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{everypage}}{%
+ Dies ist eine Kombination von \Option{oddorevenpage} und
+ \Option{floatornonfloatpage}. Diese Option erwartet und erlaubt keinen
+ Wert.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{everyside}}{%
+ Mit dieser Option wird die Einschränkung der Ebene auf den einseitigen
+ oder den doppelseitigen Satz aufgehoben. Sie wird damit wie in der
+ Voreinstellung wieder sowohl im einseitigen als auch im doppelseitigen
+ Satz ausgegeben. Diese Option erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{floatornonfloatpage}}{%
+ Mit dieser Option wird die Einschränkung der Ebene auf Gleitseiten oder
+ Seiten, die keine Gleitseiten sind, aufgehoben und diesbezüglich die
+ Voreinstellung wieder hergestellt. 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 Vordergrundebene. 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{\OptionVName{height}{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{\OptionVName{hoffset}{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{\ChangedAt{v3.19}{\Package{scrlayer}}%
+ \OptionVName{mode}{Modus}}{%
+ Diese primäre Eigenschaft bestimmt, in welchem \PName{Modus} der Inhalt der
+ Ebene ausgegeben wird. Die Voreinstellung ist \PValue{text}. Dabei wird
+ die oberste Grundlinie um die Höhe einer Standardtextzeile unterhalb der
+ Oberkante der Ebene platziert. Damit ist Text normalerweise sauber am
+ oberen Rand der Ebene ausgerichtet. Im \PValue{picture}-\PName{Modus} wird
+ hingegen eine \Environment{picture}-Umgebung mit dem Ursprung in der
+ linken, unteren Ecke der Ebene aufgespannt. Der ebenfalls vordefinierte
+ \PName{Modus} \PValue{raw} entspricht in der Voreinstellung \PValue{text}.
+
+ Die %\textnote{Achtung!}
+ Änderung des \PName{Modus} einer Ebene führt in der Regel zu einer
+ Verschiebung des Inhalts. Außerdem stehen beispielsweise im \PName{Modus}
+ \PValue{picture} zusätzliche Platzierungsbefehle zur Verfügung, die in
+ einem anderen \PName{Modus} zu Fehlermeldungen führen. Daher ist es
+ normalerweise nicht sinnvoll, den \PName{Modus} einer Ebene nachträglich
+ zu ändern!%
+ }%
+ \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{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{oddorevenpage}}{%
+ Mit dieser Option werden Beschränkungen der Ebene auf rechte oder linke
+ Seiten aufgehoben. Damit wird die Ebene wie in der Voreinstellung sowohl
+ auf linken als auch rechten Seiten ausgegeben. 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{\ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{pretocontents}{Code}}{%
+ Der angegebene Wert wird dem aktuellen Wert des Attributs
+ \Option{contents} vorangestellt. Es wird also ein zusätzlicher Inhalt vor
+ dem bisherigen Inhalt generiert. Zu näheren Informationen über die
+ Behandlung von \PName{Code} siehe Option \Option{contents}.%
+ }%
+ \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{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{unrestricted}}{%
+ Hebt alle Ausgabebeschränkungen auf. Damit ist die Option eine Kombination
+ von \Option{backandforeground}, \Option{everyside} und
+ \Option{floatornonfloatpage}. Diese Option erwartet und erlaubt keinen
+ Wert.%
+ }%
+ \entry{\OptionVName{voffset}{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{\OptionVName{width}{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}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{layerhalign}
+ \Macro{layervalign}
+ \Macro{layerxoffset}
+ \Macro{layeryoffset}
+ \Macro{layerwidth}
+ \Macro{layerheight}
+\end{Declaration}
+Diese Anweisungen sind nur im mit \Option{contents}, \Option{addcontents} oder
+\Option{pretocontents} angegebenen \PName{Code} gültig. Sie enthalten die
+tatsächlich verwendete Ausrichtung, Position und Ausdehnung der Ebene während
+deren Ausgabe. 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.
+
+Die primäre Ebeneneigenschaft \PValue{align} wird auf
+\Macro{layerhalign}\ChangedAt{v3.19}{\Package{scrlayer}} und
+\Macro{layervalign} abgebildet. Dabei werden die horizontalen Werte \PValue{l}
+und \PValue{r} nur in \Macro{layerhalign} übernommen, während die vertikalen
+Werte \PValue{t} und \PValue{b} nur in \Macro{layervalign} übernommen
+werden. \iffree{Der sowohl horizontale als auch vertikale }{}% Umbruchkorrektur
+Wert \PValue{c} wird in
+beide Anweisungen übernommen. Sind bei \PValue{align} mehrere,
+widersprüchliche Angaben zu finden, so gewinnt die jeweils letzte. Damit ist
+also \Macro{layerhalign} immer entweder \PValue{l}, \PValue{c} oder \PValue{r}
+und \Macro{layervalign} immer entweder \PValue{t}, \PValue{c} oder \PValue{b}.
+
+Eine\textnote{Achtung!} Umdefinierung der Anweisungen und damit Änderung der in
+ihnen gespeicherten Werte ist nicht gestattet und führt zu unvorhersehbaren
+Ergebnissen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{LenToUnit}\Parameter{Länge}
+\end{Declaration}
+Diese\ChangedAt{v3.19}{\Package{scrlayer}} Anweisung stammt ursprünglich von
+\Package{eso-pic}\IndexPackage{eso-pic}\iffree{ ab
+ Version~2.0f}{}%Umbruchkorrektur
+. Sie rechnet Längen-Werte in Vielfache von \Length{unitlength} um und kann
+daher anstelle von Koordinaten oder anderen von \Length{unitlength} abhängigen
+Werten einer \Environment{picture}-Umgebung verwendet werden. Siehe dazu auch
+\cite{package:eso-pic} und die nachfolgende Erklärung zu \Macro{putUR},
+\Macro{putLL} und \Macro{putLR}. Die Anweisung wird nur definiert, wenn sie
+nicht bereits beispielsweise durch das Laden von \Package{eso-pic} definiert
+ist.%
+\iffalse% Umbruchkorrekturtext
+\par
+Es sei an dieser Stelle darauf hingewiesen, dass man bei Verwendung von Paket
+\Package{picture}\IndexPackage{picture}\textnote{\Package{picture}} (siehe
+\cite{package:picture}) die Anweisung \Macro{LenToUnit} in der Regel nicht
+mehr benötigt. Das Paket erweitert die \Environment{picture}-Umgebung und
+deren Anweisung so, dass man für Koordinaten auch direkt \LaTeX-Längen
+verwenden kann.%
+\fi
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{putUL}\Parameter{Inhalt}
+ \Macro{putUR}\Parameter{Inhalt}
+ \Macro{putLL}\Parameter{Inhalt}
+ \Macro{putLR}\Parameter{Inhalt}
+ \Macro{putC}\Parameter{Inhalt}
+\end{Declaration}
+Diese\ChangedAt{v3.19}{\Package{scrlayer}} Anweisungen können innerhalb der
+primären Ebeneneigenschaft \PValue{contents} verwendet werden, wenn die Ebene
+mit \OptionValue{mode}{picture} erstellt wurde. In diesem Fall platziert
+\Macro{putUL} den \PName{Inhalt} relativ zur oberen, linken Ecke der Ebene und
+entspricht damit
+\lstinline[breaklines=false]|\put(0,\LenToUnit{\layerheight})|. \Macro{putUR}
+platziert \PName{Inhalt} relativ zur oberen, rechten Ecke der Ebene und
+entspricht damit
+\lstinline[breaklines=false]
+|\put(\LenToUnit{\layerwidth},\LenToUnit{\layerheight})|.
+\iffree{}{\unskip\linebreak}% Umbruchkorrektur
+\Macro{putLL} platziert \PName{Inhalt} relativ zur unteren, linken Ecke der
+Ebene und entspricht damit
+\lstinline[breaklines=false]|\put(0,0)|. \Macro{putLR} platziert
+\PName{Inhalt} relativ zur unteren, rechten Ecke der Ebene und entspricht
+damit
+\lstinline[breaklines=false]|\put(\LenToUnit{\layerwidth},0)|. \Macro{putC}
+schlussendlich platziert \PName{Inhalt} relativ zur Mitte der Ebene.%
+%
+\begin{Example}
+ Sie wollen feststellen, wie genau die Höhe des Textbereichs bei
+ \OptionValueRef{typearea}{DIV}{classic} tatsächlich der Breite der Seite
+ entspricht, und erstellen dazu eine Ebene, die sowohl den Textbereich
+ umrandet als auch einen Kreis mit der Papierbreite als Durchmesser im
+ Zentrum des Textbereichs platziert:
+\begin{lstcode}
+\documentclass[DIV=classic]{scrartcl}
+\usepackage{pict2e}
+\usepackage{scrlayer}
+\DeclareNewLayer[%
+ textarea,background,mode=picture,
+ contents={%
+ \putLL{\line(1,0){\LenToUnit{\layerwidth}}}%
+ \putLR{\line(0,1){\LenToUnit{\layerheight}}}%
+ \putUR{\line(-1,0){\LenToUnit{\layerwidth}}}%
+ \putUL{\line(0,-1){\LenToUnit{\layerheight}}}%
+ \putC{\circle{\LenToUnit{\paperwidth}}}%
+ }
+]{showtextarea}
+\DeclareNewPageStyleByLayers{test}{showtextarea}
+\pagestyle{test}
+\begin{document}
+\null
+\end{document}
+\end{lstcode}
+ Wie Sie sehen werden, passt die von \Package{typearea} vorgenommene
+ Abbildung auf einen ganzzahligen \PName{DIV}-Wert im Beispiel sehr gut.
+\end{Example}
+Näheres zu dem im Beispiel skizzierten spätmittelalterlichen Buchseitenkanon
+finden Sie übrigens in \autoref{sec:typearea.circleConstruction},
+\autopageref{sec:typearea.circleConstruction}.
+
+Die Anweisung
+\Macro{DeclareNewPageStyleByLayers}\IndexCmd{DeclareNewPageStyleByLayers}, die
+im Beispiel bereits verwendet wurde, dient der Definition eines Seitenstils,
+der die neu definiert Ebene ausgibt. Sie wird in
+\autoref{sec:scrlayer.pagestyles},
+\DescPageRef{scrlayer.cmd.DeclareNewPageStyleByLayers} erklärt werden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{GetLayerContents}\Parameter{Name~der~Ebene}
+\end{Declaration}
+Mit\ChangedAt{v3.16}{\Package{scrlayer}} dieser Anweisung kann der aktuelle
+Inhalt einer Ebene ermittelt werden. Es\textnote{Achtung!} ist unbedingt zu
+beachten, dass bei Verwendung dieser Anweisung im \PName{Code} der
+Ebenen-Attribute \Option{contents}, \Option{addcontents} oder
+\Option{pretocontents} unendliche Rekursionen entstehen können, wenn dabei auf
+den Inhalt der aktuellen Ebene zugegriffen wird. Der Anwender ist selbst dafür
+verantwortlich, solche Situationen zu vermeiden!%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{IfLayerExists}\Parameter{Name~der~Ebene}
+ \Parameter{Dann-Code}\Parameter{Sonst-Code}
+\end{Declaration}
+Diese Anweisung kann dazu verwendet werden, Code in Abhängigkeit davon, ob
+eine Ebene existiert oder nicht, auszuführen. Wenn die Ebene \PName{Name der
+ Ebene} 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. %
+\iffalse% Umbruchvarianten
+Nichtsdestotrotz: 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.%
+\else
+Falsch-positive Entscheidungen weisen auf ein Problem, beispielsweise die
+Verwendung eines inkompatiblen Pakets oder ungünstige Wahl von internen
+Makronamen durch den Anwender.%
+\fi
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DestroyLayer}\Parameter{Name~der~Ebene}
+\end{Declaration}
+Existiert eine Ebene \PName{Name der Ebene}, so werden alle zu dieser Ebene
+gehörenden Makros zu \Macro{relax}. Die Ebene kann nicht länger verwendet
+werden. In bereits mit \Package{scrlayer} definierten Seitenstils werden
+derart zerstörte Ebenen ignoriert. Zerstörte Ebenen können mit
+\DescRef{\LabelBase.cmd.DeclareNewLayer} oder
+\DescRef{\LabelBase.cmd.ProvideLayer} neu definiert werden. Sie können jedoch
+vor einer neuerlichen Definition nicht länger mit
+\DescRef{\LabelBase.cmd.RedeclareLayer} oder
+\DescRef{\LabelBase.cmd.ModifyLayer} verändert werden.
+
+Die Anweisung ist dazu bestimmt, innerhalb des Arguments \PName{Code} von
+\DescRef{\LabelBase.cmd.scrlayerOnAutoRemoveInterface} (siehe
+\autoref{sec:scrlayer.enduserinterfaces},
+\DescPageRef{scrlayer.cmd.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.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{layercontentsmeasure}
+\end{Declaration}
+Mit Hilfe der \KOMAScript-Option
+\DescRef{\LabelBase.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.%
+%
+\EndIndexGroup
+
+
+\section{Deklaration und Verwaltung von Seitenstilen}
+\seclabel{pagestyles}
+
+\BeginIndexGroup
+\BeginIndex{}{Seiten>Stil}%
+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\textnote{gerade oder ungerade
+ Seite} 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\important[i]{\Option{evenpage}\\\Option{oddpage}} \Option{oddpage}
+und \Option{evenpage} für Ebenen vergleichbar.
+
+Der Seitenkopf\textnote{Kopf oder Fuß} wird vor dem normalen Seiteninhalt
+ausgegeben. Der Seitenfuß wird entsprechend nach dem normalen Seiteninhalt
+ausgegeben. Dies korrespondiert also unmittelbar mit den
+Optionen\important[i]{\Option{background}\\\Option{foreground}}
+\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},
+\autoref{tab:scrlayer.layerkeys}, ab \autopageref{tab:scrlayer.layerkeys}
+erklärt wurden.
+
+Als Ergebnis dieser Überlegungen ist eine Form von Seitenstilen, die
+\Package{scrlayer} bietet, der Ebenen-Seitenstil\textnote{Ebenen-Seitenstil}%
+\Index{Seitenstil>Ebenen-}\Index{Ebenen>Seitenstil}\Index{Seiten>Stil}. 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\Index[indexmain]{Haken}\textnote{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
+\DescRef{scrlfile.cmd.BeforeClosingMainAux} (siehe
+\DescPageRef{scrlfile.cmd.BeforeClosingMainAux}).
+
+Eine zweite Form von Seitenstilen, die \Package{scrlayer} bietet, ist der
+Alias-Seitenstil\textnote{Alias-Seitenstil}%
+\Index{Seitenstil>Alias-}\Index{Alias>Seitenstil}\Index{Seiten>Stil} 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}\textnote{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}
+ \Macro{toplevelpagestyle}
+\end{Declaration}
+Das Paket \Package{scrlayer} erweitert die \LaTeX-Anweisung
+\DescRef{maincls.cmd.pagestyle}\IndexCmd{pagestyle} so, dass diese
+\Macro{currentpagestyle} als den Namen des jeweils aktiven Seitenstils
+definiert. Es\textnote{Achtung!} ist zu beachten, dass
+\DescRef{maincls.cmd.thispagestyle}\IndexCmd{thispagestyle} selbst
+\Macro{currentpagestyle} nicht verändert. Wird
+\DescRef{maincls.cmd.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
+\DescRef{maincls.cmd.pagestyle} angewiesen sind, da sie selbst auch
+\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
+\DescRef{maincls.cmd.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 \DescRef{maincls.cmd.pagestyle}-Anweisung
+den aktuellen Seitenstil auf eine Voreinstellung zu setzen.%
+
+Wird mit \DescRef{maincls.cmd.pagestyle} ein Alias-Seitenstils aktiviert, so
+liefert \Macro{currentpagestyle} nicht den Alias-Namen, sondern den des
+originären Seitenstils. Den\ChangedAt{v3.16}{\Package{scrlayer}} Alias-Namen
+kann man in diesem Fall mit \Macro{toplevelpagestyle} erhalten. Es wird davon
+abgeraten, Seitenstile zu definieren, die beispielsweise per
+\DescRef{scrbase.cmd.ifstr} abhängig von \Macro{toplevelpagestyle}
+unterschiedliche Ergebnisse liefern, da dies bei Aktivierung per
+\DescRef{maincls.cmd.thispagestyle} zu falschen Resultaten führen kann.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeSelectAnyPageStyle}\Parameter{Code}
+ \Macro{AfterSelectAnyPageStyle}\Parameter{Code}
+\end{Declaration}
+Die Anweisung \Macro{BeforeSelectAnyPageStyle} fügt einem Haken\Index{Haken}
+(engl. \emph{hook}) \PName{Code} hinzu, der innerhalb der Ausführung von
+Anweisung \DescRef{maincls.cmd.pagestyle}%
+\important{\DescRef{maincls.cmd.pagestyle}}\IndexCmd{pagestyle}, unmittelbar
+vor der Auswahl des Seitenstils ausgeführt wird. Innerhalb von \PName{Code}
+kann \texttt{\#1} als Platzhalter für das Argument von
+\DescRef{maincls.cmd.pagestyle} verwendet werden.
+
+Die Anweisung \Macro{AfterSelectAnyPageStyle} arbeitet ähnlich. Allerdings
+wird hier \PName{Code} ausgeführt, nachdem der Seitenstil gewählt und
+\DescRef{\LabelBase.cmd.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 \DescRef{maincls.cmd.pagestyle}
+ausgeführt wird. Wird ein Seitenstil auf andere Art, beispielsweise mit Hilfe
+von \DescRef{maincls.cmd.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.%
+\EndIndexGroup
+
+
+\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{}{Seitenstil>Alias-}%
+\BeginIndex{}{Alias>Seitenstil}%
+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 \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 Seitenstil-Alias
+nur, falls nicht bereits ein Seitenstil
+\PName{Seitenstil-Alias-Name} existiert. Falls ein solcher Seitenstil
+existiert, bleibt dieser erhalten und die Anweisung tut schlicht nichts.
+
+Im Gegensatz zu den drei vorgenannten Anweisungen erwartet
+\Macro{RedeclarePageStyleAlias}, dass bereits ein Seitenstil mit dem Namen
+\PName{Seitenstil-Alias-Name} existiert. Anderenfalls erzeugt die Anweisung
+eine Fehlermeldung.
+\iffree{\csname @tempswafalse\endcsname}{\csname @tempswatrue\endcsname}%
+\csname if@tempswa\endcsname% Umbruchkorrekturtext
+\begin{Example}
+ Angenommen, Sie schreiben eine Klasse und verwenden darin für
+ Kapitelanfangsseiten den Seitenstil \PageStyle{chapter}. In der
+ Voreinstellung soll dieser Seitenstil dem Seitenstil \PageStyle{plain}
+ entsprechen. Daher verwenden Sie das Paket \Package{scrlayer} und definieren
+ mit
+\begin{lstcode}
+ \DeclareNewPageStyleAlias{chapter}{plain}
+\end{lstcode}
+ den Seitenstil \PageStyle{chapter} als Alias für den Seitenstil
+ \PageStyle{plain}. Will hingegen der Anwender später, dass der Seitenstil
+ \PageStyle{chapter} dem Seitenstil \PageStyle{empty} entspricht, so erreicht
+ er dies mit:
+\begin{lstcode}
+ \RedeclarePageStyleAlias{chapter}{empty}
+\end{lstcode}%
+\end{Example}%
+\fi
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DestroyPageStyleAlias}\Parameter{Seitenstil-Alias-Name}%
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Alias-}%
+\BeginIndex{}{Alias>Seitenstil}%
+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 auch mit \DescRef{\LabelBase.cmd.DeclareNewPageStyleAlias} oder
+\DescRef{\LabelBase.cmd.ProvidePageStyleAlias} neu definiert werden.
+
+Die Anweisung ist dazu bestimmt, innerhalb des Arguments \PName{Code} von
+\DescRef{\LabelBase.cmd.scrlayerOnAutoRemoveInterface} (siehe
+\autoref{sec:scrlayer.enduserinterfaces},
+\DescPageRef{scrlayer.cmd.scrlayerOnAutoRemoveInterface}) verwendet zu
+werden, um Seitenstile, die als Teil eines Endanwender-Interfaces definiert
+wurden, beim automatischen Entfernen dieses Interfaces mit zu entfernen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{GetRealPageStyle}\Parameter{Seitenstil-Name}%
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Alias-}%
+\BeginIndex{}{Alias>Seitenstil}%
+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.%
+\EndIndexGroup
+
+
+\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{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Diese Anweisungen deklarieren einen Seitenstil mit dem Namen
+\PName{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 müssen und die Expansion zu einer
+Reihe von Buchstaben führen sollte. Einige zusätzliche Zeichen werden
+ebenfalls akzeptiert, ihre Verwendung wird jedoch nur erfahrenden Anwendern
+empfohlen.
+
+Die \PName{Optionenliste} ist eine mit Komma separierte Liste von Optionen der
+Form \texttt{\PName{Schlüssel}=\PName{Code}}. Diese Optionen können verwendet
+werden, um zusätzliche Eigenschaften zu setzen und zusätzliche Möglichkeiten
+zu nutzen. Derzeit werden sie verwendet, um \mbox{Code} an bestimmten Stellen
+der Aktivierung oder Verwendung eines Seitenstils über Haken\Index{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{\OptionVName{onselect}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} wird immer dann ausgeführt,
+ wenn der Seitenstil beispielsweise mit \DescRef{maincls.cmd.pagestyle}
+ ausgewählt wird. Es ist zu beachten, dass
+ \DescRef{maincls.cmd.thispagestyle} selbst keinen Seitenstil unmittelbar
+ auswählt, sondern der Seitenstil in diesem Fall erst innerhalb der
+ Ausgaberoutine von \LaTeX{} aktiviert wird.%
+ }%
+ \entry{\OptionVName{oninit}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} 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{\OptionVName{ononeside}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} 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{\OptionVName{ontwoside}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} 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{\OptionVName{onoddpage}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} 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{\OptionVName{onevenpage}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} 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{\OptionVName{onfloatpage}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} 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{\OptionVName{onnonfloatpage}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} 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{\OptionVName{onbackground}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} 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{\OptionVName{onforeground}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} 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}
+
+\iffalse% Umbruchvarianten
+Während die Anweisung
+\Macro{DeclarePageStyleByLayers} %\important{\Macro{DeclarePageStyleByLayers}}%
+ % Leider zu lang. Deshalb auch auf alle
+ % weiteren verzichtet.
+den Seitenstil immer definiert, erzeugt \Macro{DeclareNewPageStyleByLayers}
+eine Fehlermeldung, falls bereits ein Seitenstil gleichen Namens
+existiert. Beachten\textnote{Achtung!} Sie, dass die Deklaration eines
+Seitenstils, der bereits ein Alias für einen anderen Seitenstil ist (siehe
+beispielsweise \Macro{DeclareAliasPageStyle} zuvor in diesem Abschnitt) nicht
+zu der Umdefinierung des angegebenen Alias-Seitenstils, sondern des realen
+Seitenstils (siehe \DescRef{\LabelBase.cmd.GetRealPageStyle} zuvor in diesem
+Abschnitt) führt.%
+\else%
+Die Anweisung \Macro{DeclarePageStyleByLayers} definiert den Seitenstil
+unabhängig davon, ob bereits ein Seitenstil des Namens \PName{Seitenstil-Name}
+existiert. Gegebenenfalls wird der existierende Seitenstil komplett neu
+definiert. Falls bereits ein Alias-Seitenstil \PName{Seitenstil-Name}
+existiert wird jedoch nicht der Alias-Seitenstil selbst neu definiert, sondern
+der zugehörige reale Seitenstil (siehe
+\DescRef{\LabelBase.cmd.GetRealPageStyle} zuvor in diesem Abschnitt).
+
+Die Anweisung \Macro{DeclareNewPageStyleByLayers} unterscheidet sich in dem
+Fall, dass bereits ein gleichnamiger Seitenstil existiert. Unabhängig davon,
+ob es sich um einen realen Seitenstil oder einen Alias-Seitenstil handelt,
+wird in diesem Fall ein Fehler gemeldet.%
+\fi
+
+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} 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 des Weiteren die nachfolgenden Anmerkungen zum Pseudo-Seitenstil
+\PageStyle{@everystyle@}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PageStyle{@everystyle@}
+ \PageStyle{empty}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Das Paket \Package{scrlayer} definiert von sich aus bereits zwei in gewisser
+Weise spezielle Seitenstile. Der erste davon ist
+\PageStyle{@everystyle@}\important{\PageStyle{@everystyle@}}. Dieser
+Seitenstil sollte niemals als normaler Seitenstil, beispielsweise mit
+\DescRef{maincls.cmd.pagestyle} oder \DescRef{maincls.cmd.thispagestyle}, oder
+als Ziel eines Alias-Seitenstils verwendet werden. Stattdessen werden die
+Ebenen und Haken\Index{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 Pseudo-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, das sind neben
+\DescRef{\LabelBase.cmd.ForEachLayerOfPageStyle} beispielsweise auch die
+Anweisungen \DescRef{\LabelBase.cmd.AddLayersToPageStyleBeforeLayer} oder
+\DescRef{\LabelBase.cmd.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}\important{\PageStyle{empty}}. Bereits vom \LaTeX-Kern wird
+ein Seitenstil dieses Namens definiert, der einen leeren Kopf und Fuß hat. 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\Index{Haken} und Ebenen des Pseudo-Seitenstils \PageStyle{@everystyle@}
+ausführt.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{onpsselect}{Code}
+ \OptionVName{onpsinit}{Code}
+ \OptionVName{onpsoneside}{Code}
+ \OptionVName{onpstwoside}{Code}
+ \OptionVName{onpsoddpage}{Code}
+ \OptionVName{onpsevenpage}{Code}
+ \OptionVName{onpsfloatpage}{Code}
+ \OptionVName{onpsnonfloatpage}{Code}
+ \OptionVName{onpsbackground}{Code}
+ \OptionVName{onpsforeground}{Code}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Für jeden der Haken\Index{Haken} aus \autoref{tab:scrlayer.pagestyle.hooks}
+existiert außerdem eine \KOMAScript-Option%
+\iftrue%
+. 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%
+\else%
+, in deren Namen lediglich ein \texttt{ps} eingefügt wurde%
+\fi%
+. 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 \DescRef{\LabelBase.cmd.ModifyLayerPageStyleOptions}, die
+später in diesem Abschnitt erklärt wird, entfernt werden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{singlespacing}{Ein-Aus-Wert}
+\end{Declaration}
+Wird\ChangedAt{v3.24}{\Package{scrlayer}\and \Package{scrlayer-scrpage}} ein
+Dokument beispielsweise mit Hilfe von Paket
+\Package{setspace}\IndexPackage{setspace}\important{\Package{setspace}} mit
+erhöhtem Zeilenabstand gesetzt, ist es oft dennoch nicht erwünscht, dass Kopf
+und Fuß der Seite ebenfalls mit diesem erhöhten Zeilenabstand gesetzt
+werden. Das gilt umso mehr, wenn Kopf und Fuß nur aus jeweils einer Zeile
+bestehen. In diesem Fall kann man \KOMAScript-Option \Option{singlespacing}
+setzen. In der Voreinstellung\textnote{Voreinstellung} ist die Option jedoch
+nicht gesetzt! Die Option wirkt generell für alle Ebenen-Seitenstile. Will man
+hingegen nur einige Ebenen-Seitenstil einzeilig gesetzt haben, so sollte man
+stattdessen für diese Seitenstile
+\OptionValue{oninit}{\Macro{linespread}\PParameter{1}\Macro{selectfont}}
+verwenden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{deactivatepagestylelayers}{Ein-Aus-Wert}
+ \Macro{ForEachLayerOfPageStyle}\Parameter{Seitenstil-Name}
+ \Parameter{Code}
+ \Macro{ForEachLayerOfPageStyle*}\Parameter{Seitenstil-Name}
+ \Parameter{Code}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Solange \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} anstelle von \Macro{def} ist im Beispiel
+notwendig\textnote{Achtung!}, 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.
+
+Alternativ\ChangedAt{v3.18}{\Package{scrlayer}} hätte man auch zwar mit
+\Macro{def}, dafür aber mit der Sternvariante \Macro{ForEachLayerOfPageStyle*}
+arbeiten können. Diese Form verzichtet bei der Ausführung von \PName{Code} auf
+eine Gruppe. Allerdings muss der Anwender dann selbst
+sicherstellen, dass \PName{Code} keine unerwünschten Seiteneffekte
+hat. Insbesondere würde die Deaktivierung der Ebenen mit
+\OptionValue{deactivatepagestylelayers}{true} innerhalb von \PName{Code} dann
+über den Aufruf von \Macro{ForEachLayerOfPageStyle*} hinaus Bestand haben.
+
+Diverse Anweisungen von \Package{scrlayer} setzen intern selbst ebenfalls
+\Macro{ForEachLayerOfPageStyle} ein. Auch deren Funktion kann daher über die
+\KOMAScript-Option \Option{deactivatepagestylelayers} verändert werden. Diese
+Option kann also verwendet werden, um alle Ebenen aller Seitenstile temporär
+zu deaktivieren und damit zu verstecken.%
+\EndIndexGroup
+
+
+\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{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Diese Anweisungen können verwendet werden, um Ebenen zu einem Seitenstil
+hinzuzufügen oder davon zu entfernen. Der Seitenstil wird dabei über
+\PName{Seitenstil-Name} referenziert. Die Ebenen werden in einer durch Komma
+separierten \PName{Ebenenliste} angegeben.
+
+Sowohl die Anweisung \Macro{AddLayersToPageStyle} als auch die Anweisung
+\Macro{AddLayersAtEndOfPageStyle}\textnote{hinzufügen am Ende} fügt 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}\textnote{hinzufügen am
+ Anfang} 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.
+
+\iffalse% Umbruchkorrekturtext (beim Aktiveren muss unten \textnot{entfernen}
+ % entfernt werden!)
+Die Anweisung \Macro{RemoveLayersFromPageStyle} dient dem genauen
+Gegenteil. Sie entfernt\textnote{entfernen} die angegebenen Ebenen von
+Seitenstil.%
+\fi
+
+Der Versuch, mit Hilfe von
+\Macro{RemoveLayersFromPageStyle}\textnote{entfernen} 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.%
+\EndIndexGroup
+
+
+\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{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+\iffalse% Umbruchvarianten
+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. %
+\else%
+Die Befehle ähneln den vorherigen. Die existierenden Ebenen des Seitenstils
+werden jedoch nach \PName{Referenzebenen-Name} durchsucht. %
+\fi%
+Die Ebenen der \PName{Ebenenliste} werden dann
+vor\textnote{hinzufügen vor/nach Ebene}
+respektive nach jedem Auf"|treten der Referenzebene %
+\iffalse% Umbruchkorrekturtext
+in die Ebenen des Seitenstils %
+\fi%
+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.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{UnifyLayersAtPageStyle}\Parameter{Seitenstil-Name}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+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. In einem solchen Fall ist
+\Macro{UnifyLayersAtPageStyle} also nicht geeignet.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ModifyLayerPageStyleOptions}\Parameter{Seitenstil-Name}
+ \Parameter{Optionenliste}
+ \Macro{AddToLayerPageStyleOptions}\Parameter{Seitenstil-Name}
+ \Parameter{Optionenliste}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Mit diesen beiden Anweisungen können die Optionen und damit die
+Haken\Index{Haken} eines Ebenen-Seitenstils nachträglich verändert werden. Bei
+\Macro{ModifyLayerPageStyleOptions}\textnote{Seitenstil-Optionen ändern}
+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
+\iffree{beziehungsweise}{oder} Haken, die nicht in der \PName{Optionenliste}
+angegeben sind, bleiben hingegen unverändert. Diese Anweisung ist
+\iffree{damit auch }{}% Umbruchkorrektur
+die einzige Möglichkeit, die globalen Voreinstellungen der
+\KOMAScript-Optionen von einem Seitenstil zu entfernen.
+
+Die Anweisung \Macro{AddToLayerPageStyleOptions}\textnote{Seitenstil-Optionen
+ erweitern} dagegen überschreibt die bisher vorhandenen Werte nicht, sondern
+fügt die neuen zu den bisherigen hinzu oder -- genauer gesagt -- hängt die
+neuen Werte an die alten an.%
+\EndIndexGroup
+
+
+\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{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Mit den 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.
+
+\iffree{Die Anweisung }{}%Umbruchvarianten
+\Macro{IfRealLayerPageStyleExists} geht einen Schritt weiter und führt
+\iffree{den }{}% Umbruchvarianten
+\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.%
+\EndIndexGroup
+
+
+\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{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Mit diesen Anweisungen kann überprüft werden, ob ein oder mehrere Ebenen
+Bestandteil eines Seitenstils sind. \Macro{IfLayerAtPageStyle} erwartet dabei
+nach dem \PName{Seitenstil-Name} im ersten Argument im zweiten Argument
+genau\textnote{genau eine Ebene} einen \PName{Ebenen-Name}. Ist die
+entsprechende Ebene Bestandteil des Seitenstils, so wird der \PName{Dann-Code}
+ausgeführt, anderenfalls der \PName{Sonst-Code}.
+
+Im Unterschied dazu erlauben \Macro{IfSomeLayersAtPageStyle} und
+\Macro{IfLayersAtPageStyle} im zweiten Argument eine durch Komma separierte
+\PName{Ebenenliste}. Dabei führt
+\Macro{IfSomeLayersAtPageStyle}\textnote{mindestens eine Ebene} den
+\PName{Dann-Code} bereits aus, wenn \emph{mindestens eine} der Ebenen
+Bestandteil des Seitenstils ist. Dagegen führt
+\Macro{IfLayersAtPageStyle}\textnote{alle Ebenen} den \PName{Dann-Code} nur
+aus, wenn \emph{alle} Ebenen Bestandteil des Seitenstils sind. \iffree{Ist die
+ Bedingung nicht erfüllt, so}{Anderenfalls} 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.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DestroyRealLayerPageStyle}\Parameter{Ebenen-Seitenstil-Name}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+\iftrue%
+Mit der Anweisung wird ein Ebenen-Seitenstil aus \LaTeX-Sicht undefiniert.
+Wurde statt eines Ebenen-Seitenstils ein Alias-Seitenstil, ein anderer
+Seitenstil oder ein unbekannter Seitenstil angegeben, so wird die Anweisung
+ignoriert.%
+\else%
+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-Seitenstil -- 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.%
+\fi
+
+Falls \PName{Ebenen-Seitenstil-Name} der Name des aktuellen Seitenstils ist,
+so wird dieser auf eine Art leeren Seitenstil gesetzt. Falls der mit
+\DescRef{maincls.cmd.thispagestyle} gesetzte Seitenstil
+\PName{Ebenen-Seitenstil-Name} lautet, so wird dieser einfach nur
+zurückgesetzt. Die vorherige Anweisung \DescRef{maincls.cmd.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}
+ \ForEachLayerOfPageStyle{...}{\DestroyLayer{#1}}
+\end{lstcode}
+vor der Vernichtung des Seitenstils selbst erreichen.
+
+Die Anweisung ist dazu bestimmt, innerhalb des Arguments \PName{Code} von
+\DescRef{\LabelBase.cmd.scrlayerOnAutoRemoveInterface} (siehe
+\autoref{sec:scrlayer.enduserinterfaces},
+\DescPageRef{scrlayer.cmd.scrlayerOnAutoRemoveInterface}) verwendet zu
+werden, um Seitenstile, die als Teil eines Endanwender-Interfaces definiert
+wurden, beim automatischen Entfernen dieses Interfaces mit zu entfernen.%
+\EndIndexGroup
+\EndIndexGroup
+
+\LoadCommonFile{headfootheight}% \section{Höhe von Kopf und Fuß}
+
+\LoadCommonFile{pagestylemanipulation}% \section{Beeinflussung der Inhalte von Seitenstilen}
+
+\section{Definition und Verwaltung von Schnittstellen für Endanwender}
+\seclabel{enduserinterfaces}
+
+Das Paket \Package{scrlayer} stellt eine experimentelle Benutzerschnittstelle
+zur Verfügung um (konkurrierende) Schnittstellen für Endanwender definieren
+und verwalten zu können. \iffree{% Umbruchvarianten
+ Möglicherweise wird diese Schnittstelle langfristig wieder aus
+ \Package{scrlayer} verschwinden und dann stattdessen von \Package{scrbase}
+ übernommen werden. }{}%
+Derzeit ist die Schnittstelle aber noch hoch
+experimentell\iffree{% Umbruchvariante
+ und wird daher von eigenen Befehlen innerhalb von \Package{scrlayer} nur für
+ Unterpakete von \Package{scrlayer} bereit gestellt}{}%
+. Es empfiehlt sich beim aktuellen Entwicklungsstand 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 er
+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}
+Mit dieser Anweisung wird eine neue Schnittstelle mit dem Namen
+\PName{Schnittstellen-Name} registriert. Der
+\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 -- weggelassen, 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.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{forceoverwrite}{Ein-Aus-Wert}
+ \OptionVName{autoremoveinterfaces}{Ein-Aus-Wert}
+ \Macro{scrlayerAddToInterface}\OParameter{Schnittstellen-Name}
+ \Parameter{Befehl}\Parameter{Code}
+ \Macro{scrlayerAddCsToInterface}\OParameter{Schnittstellen-Name}
+ \Parameter{Befehlssequenz}\Parameter{Code}
+\end{Declaration}
+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
+\DescRef{\LabelBase.cmd.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 \emph{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} definiert werden.
+
+Wann aber kann ein \PName{Befehl}\textnote{definierbare Befehle} 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 auch die
+\KOMAScript-Option \Option{autoremoveinterfaces} 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{autoremoveinterfaces} 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.}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scrlayerOnAutoRemoveInterface}\OParameter{Schnittstellen-Name}
+ \Parameter{Code}
+\end{Declaration}
+Für den Fall, dass die Endanwender-Schnittstelle mit dem angegebenen
+\PName{Schnittstellen-Name} automatisch entfernt wird (siehe
+\KOMAScript-Option \DescRef{\LabelBase.option.autoremoveinterfaces} 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 \DescRef{\LabelBase.cmd.DestroyLayer},
+\DescRef{\LabelBase.cmd.DestroyPageStyleAlias}, and
+\DescRef{\LabelBase.cmd.DestroyRealLayerPageStyle}), die auf Befehlen der
+Endanwender-Schnittstelle beruhen. Bezüglich der Voreinstellung für das
+optionale Argument sei auf die Erklärung zu
+\DescRef{\LabelBase.cmd.scrlayerInitInterface} verwiesen.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide"
+%%% End:
+
+
+
+% LocalWords: Vordergrundebene Sternvariante Gleitseiten Hintergrundebenen
+% LocalWords: Ausgabebeschränkungen Grafikausgabe Textausgabe Textebenen
+% LocalWords: Standardgrundlinie Grafikebenen Standardtextzeile überhoch
+% LocalWords: Platzierungsbefehle Ebeneneigenschaft Satzspiegelkonstruktion
+% LocalWords: Kreisschlagen Buchseitenkanon spätmittelalterlichen
+% LocalWords: Makronamen
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrlfile.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlfile.tex
new file mode 100644
index 0000000000..75c52600bf
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlfile.tex
@@ -0,0 +1,779 @@
+% ======================================================================
+% scrlfile.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrlfile.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 scrlfile of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------------
+%
+% Kapitel über scrlfile in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrlfile.tex}%
+ [$Date: 2018-02-16 04:42:17 +0100 (Fri, 16 Feb 2018) $
+ KOMA-Script guide (chapter: scrlfile)]
+
+\chapter{Paketabhängigkeiten mit \Package{scrlfile}
+ beherrschen}
+\labelbase{scrlfile}
+
+\BeginIndexGroup
+\BeginIndex{Package}{scrlfile}
+
+Die Einführung von \LaTeXe{} brachte 1994 eine Menge Neuerungen im Umgang mit
+\LaTeX-Erweiterungen. So stehen dem Paketautor heute eine ganze Reihe von
+Befehlen zur Verfügung, um festzustellen, ob ein anderes Paket oder eine
+bestimmte Klasse verwendet wird und ob dabei bestimmte Optionen zur Anwendung
+kommen. Der Paketautor kann selbst andere Pakete laden oder diesen Optionen
+mit auf den Weg geben für den Fall, dass sie später noch geladen werden. Es
+bestand daher die Hoffnung, dass es künftig unerheblich wäre, in welcher
+Reihenfolge Pakete geladen werden. Diese Hoffnung hat sich leider nicht
+erfüllt.
+
+\section{Die Sache mit den Paketabhängigkeiten}
+\seclabel{dependency}
+%\begin{Explain}
+ Immer häufiger definieren unterschiedliche Pakete den gleichen
+ Befehl neu oder um. Dabei ist es dann sehr entscheidend, in welcher
+ Reihenfolge die Pakete geladen werden. Manchmal ist das für den
+ Anwender kaum zu überschauen. Teilweise ist es auch
+ notwendig, in irgendeiner Form auf das Laden eines
+ anderen Pakets zu reagieren.
+
+ Nehmen wir als einfaches Beispiel das Laden des
+ \Package{longtable}-Pakets bei Verwendung von \KOMAScript{}. Das
+ \Package{longtable}-Paket definiert seine eigene Form von
+ Tabellenüberschriften. Diese passen perfekt zu den
+ Standardklassen. Sie passen aber überhaupt
+ nicht zu den Voreinstellungen für die Tabellenüberschriften von
+ \KOMAScript{} und reagieren auch nicht auf die entsprechenden
+ Möglichkeiten der Konfiguration. Um dieses Problem zu lösen, müssen
+ die Befehle von \Package{longtable}, die für die
+ Tabellenüberschriften zuständig sind, von \KOMAScript{} umdefiniert
+ werden. Allerdings sind die \KOMAScript{}-Klassen bereits
+ abgearbeitet, wenn das Paket geladen wird.
+
+ Bisher bestand die einzige Möglichkeit, dieses Problem zu lösen
+ darin, die Umdefinierung mit Hilfe von \Macro{AtBeginDocument} auf
+ einen späteren Zeitpunkt zu verschieben. Will der Anwender die
+ entsprechende Anweisung jedoch selbst umdefinieren, so sollte er
+ dies eigentlich ebenfalls in der Präambel tun. Das kann er jedoch
+ nicht, weil \KOMAScript{} ihm dabei in die Quere kommt. Er müsste
+ die Umdefinierung also ebenfalls mit Hilfe von
+ \Macro{AtBeginDocument} durchführen.
+
+ Aber eigentlich müsste \KOMAScript{} die Abarbeitung gar nicht auf
+ den Zeitpunkt von \Macro{begin}\PParameter{document} verschieben. Es
+ würde genügen, wenn sie bis unmittelbar nach dem Laden von
+ \Package{longtable} verzögert werden könnte. Leider fehlen
+ entsprechende Anweisungen im \LaTeX-Kern. Das Paket
+ \Package{scrlfile} bringt hier Abhilfe.
+
+ Ebenso wäre es denkbar, dass man vor dem Laden eines bestimmten
+ Pakets gerne die Bedeutung eines Makros in einem Hilfsmakro retten
+ und nach dem Laden des Pakets wieder restaurieren will. Auch das
+ geht mit \Package{scrlfile}.
+
+ Die Anwendung von \Package{scrlfile} ist nicht auf die Abhängigkeit
+ von Paketen beschränkt. Auch Abhängigkeiten von anderen Dateien
+ können berücksichtigt werden. So kann beispielsweise dafür gesorgt
+ werden, dass das nicht unkritische Laden einer Datei wie
+ \File{french.ldf} automatisch zu einer Warnung führt.
+
+ Obwohl das Paket in erster Linie für andere Paketautoren interessant
+ sein dürfte, gibt es durchaus auch Anwendungen für normale
+ \LaTeX-Benutzer. Deshalb sind in diesem Kapitel auch für beide
+ Gruppen Beispiele aufgeführt.
+%\end{Explain}
+
+
+\section{Aktionen vor und nach dem Laden}
+\seclabel{macros}
+
+Mit \Package{scrlfile} können vor und nach dem Laden von Dateien Aktionen
+ausgelöst werden. Bei den dazu verwendeten Befehlen wird zwischen allgemeinen
+Dateien, Klassen und Paketen unterschieden.
+
+
+\begin{Declaration}
+ \Macro{BeforeFile}\Parameter{Datei}\Parameter{Anweisungen}
+ \Macro{AfterFile}\Parameter{Datei}\Parameter{Anweisungen}
+\end{Declaration}%
+Mit Hilfe von \Macro{BeforeFile} kann dafür gesorgt werden, dass die
+\PName{Anweisungen} vor dem nächsten Laden einer bestimmten \PName{Datei}
+ausgeführt werden. Vergleichbar arbeitet \Macro{AfterFile}. Nur werden die
+\PName{Anweisungen} hier erst nach dem Laden der \PName{Datei}
+ausgeführt. Wird die Datei nie geladen, so werden die \PName{Anweisungen} in
+beiden Fällen natürlich auch nie ausgeführt. Bei \PName{Datei} sind etwaige
+Dateiendungen wie bei \Macro{input} als Teil des Dateinamens anzugeben.
+
+Um die Funktionalität bereitstellen zu können, bedient sich \Package{scrlfile}
+der bekannten \LaTeX-Anweisung
+\Macro{InputIfFileExists}. Diese\textnote{Achtung!} wird hierzu umdefiniert.
+Falls die Anweisung nicht die erwartete Definition hat, gibt
+\Package{scrlfile} eine Warnung aus. Dies geschieht für den Fall, dass die
+Anweisung in späteren \LaTeX-Versionen geändert wird oder bereits von einem
+anderen Paket umdefiniert wurde.
+
+Die Anweisung \Macro{InputIfFileExists} wird von \LaTeX{} immer verwendet,
+wenn eine Datei geladen werden soll. Dies geschieht unabhängig davon, ob die
+Datei mit \Macro{LoadClass}, \Macro{documentclass}, \Macro{usepackage},
+\Macro{RequirePackage}, \Macro{include} oder vergleichbaren Anweisungen
+geladen wird. Lediglich
+% Umbruchkorrektur: listings korrigieren
+\begin{lstcode}
+ \input foo
+\end{lstcode}
+lädt die Datei \texttt{foo} ohne Verwendung von \Macro{InputIfFileExists}. Sie
+sollten daher stattdessen immer
+% Umbruchkorrektur: listings korrigieren
+\begin{lstcode}
+ \input{foo}
+\end{lstcode}
+verwenden. Beachten Sie die Klammern um den Dateinamen!%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeClass}\Parameter{Klasse}\Parameter{Anweisungen}
+ \Macro{BeforePackage}\Parameter{Paket}\Parameter{Anweisungen}
+\end{Declaration}%
+Diese beiden Befehle arbeiten vergleichbar zu \DescRef{\LabelBase.cmd.BeforeFile} mit dem einen
+Unterschied, dass die \PName{Klasse} beziehungsweise das \PName{Paket} mit
+seinem Namen und nicht mit seinem Dateinamen angegeben wird. Die Endungen
+»\File{.cls}« und »\File{.sty}« entfallen hier also.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AfterClass}\Parameter{Klasse}\Parameter{Anweisungen}
+ \Macro{AfterClass*}\Parameter{Klasse}\Parameter{Anweisungen}
+ \Macro{AfterClass+}\Parameter{Klasse}\Parameter{Anweisungen}
+ \Macro{AfterClass!}\Parameter{Klasse}\Parameter{Anweisungen}
+ \Macro{AfterAtEndOfClass}\Parameter{Klasse}\Parameter{Anweisungen}
+ \Macro{AfterPackage}\Parameter{Paket}\Parameter{Anweisungen}
+ \Macro{AfterPackage*}\Parameter{Paket}\Parameter{Anweisungen}
+ \Macro{AfterPackage+}\Parameter{Paket}\Parameter{Anweisungen}
+ \Macro{AfterPackage!}\Parameter{Paket}\Parameter{Anweisungen}
+ \Macro{AfterAtEndOfPackage}\Parameter{Paket}\Parameter{Anweisungen}
+\end{Declaration}%
+Die Anweisungen \Macro{AfterClass} und \Macro{AfterPackage} arbeiten
+weitgehend wie \DescRef{\LabelBase.cmd.AfterFile}, mit dem winzigen
+Unterschied, dass die \PName{Klasse} beziehungsweise das \PName{Paket} mit
+seinem Namen und nicht mit seinem Dateinamen angegeben wird. Die Endungen
+»\File{.cls}« und »\File{.sty}« entfallen hier also.
+
+Bei\important[i]{\Macro{AfterClass*}\\\Macro{AfterPackage*}} den
+Sternvarianten gibt es eine zusätzliche Funktionalität. Wurde oder wird die
+entsprechende Klasse oder das entsprechende Paket bereits geladen, so werden
+die \PName{Anweisungen} nicht nach dem nächsten Laden, sondern unmittelbar
+ausgeführt.
+
+Bei\important[i]{\Macro{AfterClass+}\\\Macro{AfterPackage+}} der
+Plusvariante\ChangedAt{v3.09}{\Package{scrlfile}} werden die
+\PName{Anweisungen} sicher erst dann ausgeführt, wenn die Klasse oder das
+Paket vollständig geladen wurde. Der Unterschied zwischen der Stern- und der
+Plusvariante kommt nur zum Tragen, falls die Anweisung verwendet wird, während
+das Laden der Klassen bzw. des Pakets zwar bereits begonnen hat, aber noch
+nicht beendet wurde. Wenn das Laden der Klasse bzw. des Pakets noch nicht
+abgeschlossen wurde, werden die \PName{Anweisungen} in allen Fällen vor den in
+der Klasse bzw. dem Paket mit \Macro{AtEndOfClass} oder \Macro{AtEndOfPackage}
+verzögerten Anweisungen ausgeführt.
+
+Um\important[i]{\Macro{AfterClass!}\\\Macro{AfterPackage!}} eine Ausführung
+nach den in der Klasse oder dem Paket selbst mit \Macro{AtEndOfClass} oder
+\Macro{AtEndOfPackage} verzögerten Anweisungen sicherzustellen, ist die
+Variante mit Ausrufezeichen\ChangedAt{v3.09}{\Package{scrlfile}} zu
+verwenden. Bei dieser Spielart werden die \PName{Anweisungen} nicht mehr im
+Kontext der angegebenen Klasse oder des angegebenen Pakets ausgeführt.
+
+Will\important[i]{\Macro{AfterAtEndOfClass}\\\Macro{AfterAtEndOfPackage}} man
+nur für den Fall, dass die Klasse bzw. das Paket noch nicht geladen wurde,
+erreichen, dass \PName{Anweisungen} nach der Klasse bzw. dem Paket und
+außerhalb des Kontextes der angegebenen Klasse bzw. des angegebenen Pakets
+ausgeführt werden, so verwendet man für Klassen die Anweisung
+\Macro{AfterAtEndOfClass}\ChangedAt{v3.09}{\Package{scrlfile}}
+und für Pakete \Macro{AfterAtEndOfPackage}.%
+%
+\begin{Example}
+ Als Beispiel für Paket- oder Klassenautoren will ich zunächst
+ erklären, wie \KOMAScript{} selbst Gebrauch von den neuen
+ Anweisungen macht. Dazu findet sich beispielsweise in \Class{scrbook}
+ Folgendes:
+\begin{lstcode}
+ \AfterPackage{hyperref}{%
+ \@ifpackagelater{hyperref}{2001/02/19}{}{%
+ \ClassWarningNoLine{scrbook}{%
+ You are using an old version of hyperref
+ package!\MessageBreak%
+ This version has a buggy hack at many
+ drivers\MessageBreak%
+ causing \string\addchap\space to behave
+ strange.\MessageBreak%
+ Please update hyperref to at least version
+ 6.71b}%
+ }%
+ }
+\end{lstcode}
+ Alte Versionen von \Package{hyperref} definierten ein Makro von
+ \Class{scrbook} in einer Weise um, die mit neueren Versionen
+ von \KOMAScript{} nicht mehr funktioniert. Neuere Versionen von
+ \Package{hyperref} unterlassen dies, wenn sie eine neuere Version
+ von \KOMAScript{} erkennen. Für den Fall, dass \Package{hyperref}
+ zu einem späteren Zeitpunkt geladen wird, sorgt also \Class{scrbook}
+ dafür, dass unmittelbar nach dem Laden des Pakets überprüft wird, ob
+ es sich um eine verträgliche Version handelt. Falls dies nicht der
+ Fall ist, wird eine Warnung ausgegeben.
+
+ An anderer Stelle findet sich in drei der \KOMAScript-Klassen Folgendes:
+\begin{lstcode}
+ \AfterPackage{caption2}{%
+ \renewcommand*{\setcapindent}{%
+\end{lstcode}% }}
+ Nach dem Laden von \Package{caption2} und nur falls das Paket
+ geladen wird, wird hier die \KOMAScript{} eigene Anweisung
+ \DescRef{maincls.cmd.setcapindent} umdefiniert. Der Inhalt der Umdefinierung
+ ist für dieses Beispiel unerheblich. Es sei nur erwähnt, dass
+ \Package{caption2} die Kontrolle über die
+ \DescRef{maincls.cmd.caption}-Anweisung übernimmt und daher die normale
+ Definition von \DescRef{maincls.cmd.setcapindent} keinerlei Wirkung mehr
+ hätte. Die Umdefinierung verbessert dann die Zusammenarbeit mit
+ \Package{caption2}.
+
+ Es gibt aber auch Beispiele für den sinnvollen Einsatz der neuen
+ Anweisungen durch normale Anwender. Angenommen, Sie erstellen ein
+ Dokument, aus dem sowohl eine PS-Datei mit \LaTeX{} und dvips als auch
+ eine PDF-Datei mit \mbox{pdf\LaTeX} erstellt werden soll. Das Dokument soll
+ außerdem Hyperlinks aufweisen. Im Tabellenverzeichnis haben Sie
+ Einträge, die über mehrere Zeilen gehen. Nun gibt es zwar mit
+ \mbox{pdf\LaTeX} bei der PDF-Ausgabe keine Probleme, da dort Links
+ umbrochen werden können. Bei Verwendung des
+ \Package{hyperref}-Treibers für dvips oder
+ \mbox{hyper\TeX} ist dies jedoch nicht
+ möglich. In diesem Fall hätten Sie gerne, dass bei
+ \Package{hyperref} die Einstellung \Option{linktocpage} verwendet
+ wird. Die Entscheidung, welcher Treiber geladen wird, wird von
+ \Package{hyperref} automatisch getroffen.
+
+ Alles weitere kann nun \DescRef{\LabelBase.cmd.AfterFile} überlassen werden:
+\begin{lstcode}[moretexcs={hypersetup}]
+ \documentclass{article}
+ \usepackage[ngerman]{babel}
+ \usepackage{scrlfile}
+ \AfterFile{hdvips.def}{\hypersetup{linktocpage}}
+ \AfterFile{hypertex.def}{\hypersetup{linktocpage}}
+ \usepackage{hyperref}
+ \begin{document}
+ \listoffigures
+ \clearpage
+ \begin{figure}
+ \caption{Dies ist ein Beispiel mit einer
+ Abbildungsunterschrift, die mehrere Zeile
+ umfasst und bei der trotzdem auf die
+ Verwendung des optionalen Arguments verzichtet
+ wurde.}
+ \end{figure}
+ \end{document}
+\end{lstcode}
+ Egal, ob nun der \Package{hyperref}-Treiber \Option{hypertex} oder
+ \Option{dvips} zu Anwendung kommt, wird die dann nützliche Einstellung
+ \Option{linktocpage} verwendet. Wenn Sie jedoch mit \mbox{pdf\LaTeX} eine
+ PDF-Datei erstellen, wird darauf verzichtet, da dann der
+ \Package{hyperref}-Treiber \File{hpdftex.def} verwendet wird. Das bedeutet,
+ dass weder die Treiberdatei \File{hdvips.def} noch \File{hypertex.def}
+ geladen wird.
+\end{Example}
+\iffalse% Umbruchkorrekturtext (der besser nicht mehr verwendet wird!)
+Übrigens\textnote{Tipp!} können Sie das Laden von \Package{scrlfile} und die
+obigen Anweisungen \DescRef{\LabelBase.cmd.AfterFile} auch in Ihre private
+\File{hyperref.cfg} (siehe oben) einfügen. Verwenden Sie dabei jedoch zum
+Laden des Pakets besser \Macro{RequirePackage} anstelle von
+\Macro{usepackage} (siehe \cite{latex:clsguide}). Die neuen Zeilen müssen in
+obigem Beispiel unmittelbar nach der \Macro{ProvidesFile}-Zeile, also
+unbedingt vor der Ausführung der Optionen \Option{dvips} oder \Option{pdftex},
+eingefügt werden.%
+\fi%
+Übrigens\textnote{Tipp!} kann \Package{scrlfile} auch bereits vor
+\DescRef{maincls.cmd.documentclass}\IndexCmd{documentclass} geladen werden. In
+diesem Fall ist allerdings \Macro{RequirePackage}\IndexCmd{RequirePackage}
+anstelle von \DescRef{maincls.cmd.usepackage} zu verwenden (siehe
+\cite{latex:clsguide}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeClosingMainAux}\Parameter{Anweisungen}
+ \Macro{AfterReadingMainAux}\Parameter{Anweisungen}
+\end{Declaration}
+Diese Anweisungen unterscheiden sich in einem Detail von den zuvor erklärten
+Anweisungen. Jene ermöglichen Aktionen vor und nach dem Laden von
+Dateien. Das ist hier nicht der Fall. Paketautoren haben des Öfteren das
+Problem, dass sie Anweisungen in die \File{aux}-Datei schreiben wollen,
+nachdem die letzte Seite des Dokuments ausgegeben wurde. Dazu wird -- in
+Unkenntnis der dadurch verursachten Probleme -- häufig Code
+wie der folgende eingesetzt:
+\begin{lstcode}[escapechar=\$]
+ \AtEndDocument{%$\textnote{Nicht nachmachen!}$
+ \if@filesw
+ \write\@auxout{%
+ \protect\writethistoaux%
+ }%
+ \fi
+ }
+\end{lstcode}
+Dies ist jedoch keine wirkliche Lösung. Wurde die letzte
+Seite vor \Macro{end}\PParameter{document} bereits ausgegeben, so führt obiges
+zu keiner Ausgabe in die \File{aux}-Datei. Würde man zur Lösung dieses
+Problems nun ein \Macro{immediate} vor \Macro{write} setzen, so hätte man das
+umgekehrte Problem: wurde die letzte Seite bei
+\Macro{end}\PParameter{document} noch nicht ausgegeben, so wird
+\Macro{writethistoaux} zu früh in die \File{aux}-Datei geschrieben. Man sieht
+daher häufig auch Lösungsversuche wie:
+\begin{lstcode}[escapechar=\$]
+ \AtEndDocument{%$\textnote{Nicht nachmachen!}$
+ \if@filesw
+ \clearpage
+ \immediate\write\@auxout{%
+ \protect\writethistoaux%
+ }%
+ \fi
+ }
+\end{lstcode}
+Diese Lösung hat jedoch den Nachteil, dass damit die Ausgabe der letzten Seite
+erzwungen wird. Eine Anweisung wie
+\begin{lstcode}
+ \AtEndDocument{%
+ \par
+ \vspace*{\fill}%
+ Hinweis am Ende des Dokuments.
+ \par
+ }
+\end{lstcode}
+führt dann nicht mehr dazu, dass der Hinweis am Ende der letzten Seite des
+Dokuments ausgegeben wird, sie würde stattdessen am Ende der nächsten Seite
+ausgegeben. Gleichzeitig würde \Macro{writethistoaux} wieder eine Seite zu
+früh in die \File{aux}-Datei geschrieben.
+
+Die beste Lösung des Problems wäre nun, wenn man unmittelbar in die
+\File{aux}-Datei schreiben könnte, nachdem das finale
+\DescRef{maincls.cmd.clearpage} innerhalb von \Macro{end}\PParameter{document}
+ausgeführt, aber bevor die \File{aux}-Datei geschlossen wird. Dies ist das
+Ziel von \Macro{BeforeClosingMainAux}:
+\begin{lstcode}
+ \BeforeClosingMainAux{%
+ \if@filesw
+ \immediate\write\@auxout{%
+ \protect\writethistoaux%
+ }%
+ \fi
+ }
+\end{lstcode}
+Das ist auch dann erfolgreich, wenn das finale \DescRef{maincls.cmd.clearpage}
+innerhalb von \Macro{end}\PParameter{document} tatsächlich zu keiner Ausgabe
+einer Seite mehr führt oder wenn -- sei es korrekt verwendet oder in
+Unkenntnis der oben erläuterten Probleme -- \DescRef{maincls.cmd.clearpage}
+innerhalb einer \Macro{AtEndDocument}-Anweisung zum Einsatz kam.
+
+Es gibt jedoch für \Macro{BeforeClosingMainAux} eine Einschränkung: Im
+Argument \PName{Anweisungen} sollte keine Satzanweisung verwendet
+werden. Es darf also mit \Macro{BeforeClosingMainAux} kein zusätzliches
+Material gesetzt werden! Wird diese Einschränkung nicht beachtet, so ist das
+Ergebnis ebenso unvorhersehbarer wie bei den gezeigten Problemen mit
+\Macro{AtEndDocument}.
+
+Die Anweisung \Macro{AfterReadingMainAux}\ChangedAt{v3.03}{\Package{scrlfile}}
+führt sogar \PName{Anweisungen} nach dem Schließen und Einlesen der
+\File{aux}-Datei innerhalb von \Macro{end}\PParameter{document} aus. Dies ist
+nur in einigen wenigen, sehr seltenen Fällen sinnvoll, beispielsweise, wenn
+man statistische Informationen in die \File{log}-Datei schreiben will, die
+erst nach dem Einlesen der \File{aux}-Datei gültig sind, oder zur
+Implementierung zusätzlicher \emph{Rerun}-Aufforderungen. Satzanweisungen sind
+an dieser Stelle noch kritischer zu betrachten als bei
+\Macro{BeforeClosingMainAux}.%
+%
+\EndIndexGroup
+
+
+\section{Dateien beim Einlesen ersetzen}
+\seclabel{replace}
+
+In den bisherigen Abschnitten wurden Anweisungen erklärt, mit denen es möglich
+ist, vor oder nach dem Einlesen einer bestimmten Datei, eines bestimmten
+Pakets oder einer Klasse Aktionen auszuführen. Es ist mit \Package{scrlfile}
+aber auch möglich, eine ganz andere Datei als die angeforderte einzulesen.
+
+\begin{Declaration}
+ \Macro{ReplaceInput}\Parameter{Dateiname}\Parameter{Ersatzdatei}
+\end{Declaration}
+Mit\ChangedAt{v2.96}{\Package{scrlfile}} dieser Anweisung wird eine Ersetzung
+der Datei mit dem als erstes angegebenen \PName{Dateiname} definiert. Wenn
+\LaTeX{} anschließend angewiesen wird, diese Datei zu laden, wird stattdessen
+\PName{Ersatzdatei} geladen. Die Definition der Ersatzdatei wirkt sich auf
+alle Dateien aus, die vom Anwender oder intern von \LaTeX{} mit Hilfe von
+\Macro{InputIfFileExists} geladen werden. Dazu ist es allerdings erforderlich,
+dass \Package{scrlfile} diese Anweisung umdefiniert.
+
+\begin{Example}
+ Sie wollen, dass anstelle der Datei \File{\Macro{jobname}.aux}, die Datei
+ \File{\Macro{jobname}.xua} geladen wird. Dazu verwenden Sie:
+\begin{lstcode}
+ \ReplaceInput{\jobname.aux}{\jobname.xua}
+\end{lstcode}
+ Wenn Sie nun zusätzlich \File{\Macro{jobname}.xua} auch noch durch
+ \File{\Macro{jobname}.uxa} ersetzen:
+\begin{lstcode}
+ \ReplaceInput{\jobname.xua}{\jobname.uxa}
+\end{lstcode}
+ dann wird \File{\Macro{jobname}.aux} am Ende durch
+ \File{\Macro{jobname}.uxa} ersetzt. Es wird also die komplette
+ Ersetzungskette abgearbeitet.
+
+ Einer Ersetzung im Kreis:
+\begin{lstcode}
+ \ReplaceInput{\jobname.aux}{\jobname.xua}
+ \ReplaceInput{\jobname.xua}{\jobname.aux}
+\end{lstcode}
+ würde jedoch zu einem \emph{stack size error} führen. Es ist also nicht
+ möglich, eine einmal ersetzte Datei wieder durch ihren Ursprung zu ersetzen.
+\end{Example}
+
+Theoretisch wäre es auch möglich, auf diesem Wege ein Paket durch ein anderes
+oder eine Klasse durch eine andere zu ersetzen. Dabei würde \LaTeX{} aber
+erkennen, dass die angeforderten Dateinamen nicht zum Namen des Pakets oder
+der Klasse passen. Eine Lösung dieses Problems finden Sie nachfolgend.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ReplaceClass}\Parameter{Klasse}\Parameter{Ersatzklasse}
+ \Macro{ReplacePackage}\Parameter{Paket}\Parameter{Ersatzpaket}
+\end{Declaration}
+Eine\ChangedAt{v2.96}{\Package{scrlfile}}\textnote{Achtung!} Klasse oder ein
+Paket sollte niemals mit Hilfe der oben erklärten Anweisung
+\DescRef{\LabelBase.cmd.ReplaceInput} ersetzt werden. In diesem Fall würde
+\LaTeX{} eine Warnung über nicht übereinstimmende Klassen- oder Paketnamen
+melden. Auch echte Fehler sind möglich, wenn eine Klasse oder ein Paket unter
+einem falschen Dateinamen geladen wird.
+\begin{Example}
+ Sie ersetzen das Paket \Package{scrpage2} durch dessen offiziellen
+ Nachfolger \Package{scrlayer-scrpage}, indem Sie
+\begin{lstcode}[escapechar=\$]
+ \ReplaceInput{scrpage2.sty}{scrlayer-scrpage.sty}$\textnote{Nicht nachmachen!}$
+\end{lstcode}
+ verwenden. Dies wird beim Laden von \Package{scrpage2} zu der Warnung
+\begin{lstcode}
+ LaTeX warning: You have requested `scrpage2',
+ but the package provides
+ `scrlayer-scrpage'.
+\end{lstcode}
+ führen. Für den Anwender wäre diese Warnung mehr als verwirrend, hat er doch
+ gar nicht \Package{scrlayer-scrpage}, sondern tatsächlich \Package{scrpage2}
+ angefordert, das jedoch durch \Package{scrlayer-scrpage} ersetzt wurde.
+\end{Example}
+Eine Lösung dieser Probleme besteht nun darin, statt
+\DescRef{\LabelBase.cmd.ReplaceInput} eine der Anweisungen
+\Macro{ReplaceClass} oder \Macro{ReplacePackage} zu verwenden. Es ist zu
+beachten, dass wie bei \Macro{documentclass} und \Macro{usepackage} der Name
+der Klasse oder des Pakets und nicht deren kompletter Dateiname anzugeben ist.
+
+Die Ersetzung funktioniert für Klassen, die mit
+\Macro{documentclass}, \Macro{LoadClassWithOptions} oder \Macro{LoadClass}
+geladen werden. Für Pakete funktioniert die Ersetzung beim Laden mit
+\Macro{usepackage}, \Macro{RequirePackageWithOptions} und
+\Macro{RequirePackage}.
+
+Es\textnote{Achtung!} ist zu beachten, dass die \PName{Ersatzklasse} oder das
+\PName{Ersatzpaket} mit denselben Optionen geladen wird, mit denen die
+ursprünglich geforderte Klasse oder das ursprünglich geforderte Paket geladen
+würden. Wird ein Paket oder eine Klasse durch ein Paket oder eine Klasse
+ersetzt, die eine geforderte Option nicht unterstützt, würde das zu den
+üblichen Warnungen und Fehlern führen. Es ist jedoch möglich, solche in der
+\PName{Ersatzklasse} oder dem \PName{Ersatzpaket} fehlenden Optionen per
+\DescRef{\LabelBase.cmd.BeforeClass} oder
+\DescRef{\LabelBase.cmd.BeforePackage} neu zu definieren.
+
+\begin{Example}
+ Angenommen, das Paket \Package{oldfoo} soll beim Laden durch das
+ Paket \Package{newfoo} ersetzt werden. Dies wird mit
+\begin{lstcode}
+ \ReplacePackage{oldfoo}{newfoo}
+\end{lstcode}
+ erreicht. Das alte Paket hat eine Option \Option{oldopt}, die das neue Paket
+ jedoch nicht hat. Mit
+\begin{lstcode}
+ \BeforePackage{newfoo}{%
+ \DeclareOption{oldopt}{%
+ \PackageInfo{newfoo}%
+ {option `oldopt' not supported}%
+ }%
+ }%
+\end{lstcode}
+ wird diese Option nun für das Paket \Package{newfoo} nachdefiniert. Dadurch
+ wird vermieden, dass beim Laden des Pakets \Package{oldfoo} ein Fehler über
+ die im Paket \Package{newfoo} nicht unterstützte Option gemeldet wird.
+
+ Existiert hingegen eine Option \Option{newopt}, die anstelle der Option
+ \Option{oldopt} verwendet werden soll, so kann dies ebenfalls erreicht
+ werden:
+\begin{lstcode}
+ \BeforePackage{newfoo}{%
+ \DeclareOption{oldopt}{%
+ \ExecuteOptions{newopt}%
+ }%
+ }%
+\end{lstcode}
+ Es ist sogar möglich, festzulegen, dass beim Laden des neuen Pakets
+ andere Voreinstellung gelten sollen:
+\begin{lstcode}
+ \BeforePackage{newfoo}{%
+ \DeclareOption{oldopt}{%
+ \ExecuteOptions{newopt}%
+ }%
+ \PassOptionsToPackage{newdefoptA,newdefoptB}%
+ {newfoo}%
+ }
+\end{lstcode}
+ oder auch direkt:
+\begin{lstcode}
+ \BeforePackage{newfoo}{%
+ \DeclareOption{oldopt}{%
+ \ExecuteOptions{newopt}%
+ }%
+ }%
+ \PassOptionsToPackage{newdefoptA,newdefoptB}%
+ {newfoo}%
+\end{lstcode}
+ Man beachte, dass im letzten Beispiel der Aufruf von
+ \Macro{PassOptionsToPackage} nicht innerhalb, sondern erst nach
+ \Macro{BeforePackage} erfolgt.
+\end{Example}
+
+Damit Klassen ersetzt werden können, ist es natürlich erforderlich
+\Package{scrlfile} vor der Klasse zu laden. Dazu ist
+\Macro{RequirePackage}\IndexCmd{RequirePackage} anstelle von
+\DescRef{maincls.cmd.usepackage} zu verwenden (siehe \cite{latex:clsguide}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{UnReplaceInput}\Parameter{Dateinamen}
+ \Macro{UnReplacePackage}\Parameter{Paket}
+ \Macro{UnReplaceClass}\Parameter{Klasse}
+\end{Declaration}
+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 anstelle der Ersatzdatei, des Ersatzpakets oder der Ersatzklasse
+geladen wird.%
+\EndIndexGroup
+
+
+\section{Dateien gar nicht erst einlesen}
+\seclabel{prevent}
+
+Gerade\ChangedAt{v3.08}{\Package{scrlfile}} in Klassen und Paketen, die
+innerhalb von Firmen oder Instituten verwendet werden, findet man häufig, dass
+sehr viele Pakete nur deshalb geladen werden, weil die Anwender diese Pakete
+oft verwenden. Wenn es dann mit einem dieser automatisch geladenen Paketen zu
+einem Problem kommt, muss man irgendwie das Laden des problematischen Pakets
+verhindern. Auch hier bietet \Package{scrlfile} eine einfache Lösung.
+
+\begin{Declaration}
+ \Macro{PreventPackageFromLoading}\OParameter{Stattdessencode}
+ \Parameter{Paketliste}
+ \Macro{PreventPackageFromLoading*}\OParameter{Stattdessencode}
+ \Parameter{Paketliste}
+\end{Declaration}
+Wird diese Anweisung\ChangedAt{v3.08}{\Package{scrlfile}} vor dem
+Laden eines Paket mit \Macro{usepackage}\IndexCmd{usepackage},
+\Macro{RequirePackage}\IndexCmd{RequirePackage} oder
+\Macro{RequirePackageWithOptions}\IndexCmd{RequirePackageWithOptions}
+aufgerufen, so wird das Laden des Pakets effektiv verhindert, falls es in
+der \PName{Paketliste} zu finden ist.
+%
+\begin{Example}
+ Angenommen, Sie arbeiten in einer Firma, in der alle Dokumente mit
+ Latin~Modern erzeugt werden. In der Firmenklasse, \Class{firmenci}, befinden
+ sich daher die Zeilen:
+\begin{lstcode}
+ \RequirePackage[T1]{fontenc}
+ \RequirePackage{lmodern}
+\end{lstcode}
+ Nun wollen Sie zum ersten Mal ein Dokument mit
+ X\kern-.125em\lower.5ex\hbox{\reflectbox{E}}\LaTeX{} oder Lua\LaTeX{}
+ setzen. Da beim hierbei empfohlenen Paket \Package{fontspec} ohnehin
+ Latin-Modern voreingestellt ist und das Laden von \Package{fontenc} eher
+ störend wäre, wollen Sie das Laden beider Pakete verhindern. Sie laden die
+ Klasse deshalb nun in Ihrem eigenen Dokument wie folgt:
+\begin{lstcode}
+ \RequirePackage{scrlfile}
+ \PreventPackageFromLoading{fontenc,lmodern}
+ \documentclass{firmenci}
+\end{lstcode}
+\end{Example}
+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 (siehe
+\cite{latex:clsguide}).
+
+Wird eine leere \PName{Paketliste} angegeben oder wird ein Paket angegeben,
+das bereits geladen ist, 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 anstelle 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
+\DescRef{\LabelBase.cmd.ReplacePackage} in \autoref{sec:scrlfile.replace} auf
+\DescPageRef{\LabelBase.cmd.ReplacePackage}. Beachten\textnote{Achtung!} Sie
+bitte auch, dass der \PName{Stattdessencode} mehrfach ausgeführt wird, falls
+Sie versuchen, das Paket mehrfach zu laden!%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{StorePreventPackageFromLoading}\Parameter{\textMacro{Anweisung}}
+ \Macro{ResetPreventPackageFromLoading}
+\end{Declaration}
+\Macro{Anweisung} wird mit
+\Macro{StorePreventPackageFromLoading}\ChangedAt{v3.08}{\Package{scrlfile}}
+als die aktuelle Liste der Pakete definiert, für die das Laden verhindert
+werden soll. Dagegen setzt
+\Macro{ResetPreventPackageFromLoading}\ChangedAt{v3.08}{\Package{scrlfile}}
+die Liste der Pakete, für die das Laden verhindert werden soll, zurück. Danach
+können wieder alle Pakete geladen werden.
+\begin{Example}
+ Angenommen, Sie sind innerhalb eines Pakets unbedingt auf das Laden eines
+ anderen Pakets angewiesen und wollen nicht, dass der Anwender das Laden
+ dieses Pakets mit
+ \DescRef{\LabelBase.cmd.PreventPackageFromLoading}%
+ \IndexCmd{PreventPackageFromLoading}
+ verhindern kann. Also setzen Sie die Paketliste für die Ausnahmen zuvor
+ zurück:
+\begin{lstcode}
+ \ResetPreventPackageFromLoading
+ \RequirePackage{foo}
+\end{lstcode}
+ Allerdings hat dies den Nachteil, dass ab diesem Zeitpunkt die komplette
+ Ausnahmeliste des Anwenders verloren ist. Also speichern Sie die Liste
+ zunächst zwischen und reaktivieren sie später wieder:
+\begin{lstcode}
+ \newcommand*{\Users@PreventList}{}%
+ \StorePreventPackageFromLoading\Users@PreventList
+ \ResetPreventPackageFromLoading
+ \RequirePackage{foo}
+ \PreventPackageFromLoading{\Users@PreventList}
+\end{lstcode}
+ Es ist zu beachten, dass\textnote{Achtung!} \Macro{Users@PreventList} durch
+ die Anweisung \Macro{StorePreventPackageFromLoading} auch definiert
+ werden würde, wenn diese bereits anderweitig definiert wäre. Eine vorhandene
+ Definition würde also ohne Rücksicht überschrieben werden. In diesem
+ Beispiel wurde deshalb mit einem vorherigen \Macro{newcommand*}
+ sichergestellt, dass in dem Fall zur Sicherheit eine Fehlermeldung
+ ausgegeben wird.
+\end{Example}
+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.%
+
+Beachten\textnote{Achtung!} Sie bitte, dass
+\Macro{ResetPreventPackageFromLoading} den \PName{Stattdessencode} für ein
+Paket nicht löscht, sondern nur vorübergehend dessen Ausführung nicht mehr
+erfolgt.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{UnPreventPackageFromLoading}\Parameter{Paketliste}
+ \Macro{UnPreventPackageFromLoading*}\Parameter{Paketliste}
+\end{Declaration}
+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}
+ Für die Anweisung \Macro{UnPreventPackageFromLoading*} ist es unerheblich,
+ ob das Paket zuvor überhaupt vom Laden ausgenommen war.
+
+ 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}%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrlttr2-experts.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlttr2-experts.tex
new file mode 100644
index 0000000000..45ea423af3
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlttr2-experts.tex
@@ -0,0 +1,2048 @@
+% ======================================================================
+% scrlttr2-experts.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrlttr2-experts.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% Diese Datei ist Teil der KOMA-Script-Sammlung für LaTeX2e.
+%
+% 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 scrlttr2 of the KOMA-Script guide expert part
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel über scrlttr2 im Experten-Teil der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrlttr2-experts.tex}%
+ [$Date: 2018-04-26 14:55:38 +0200 (Thu, 26 Apr 2018) $
+ KOMA-Script guide (chapter: scrlttr2 for experts)]
+
+\chapter{Zusätzliche Informationen zur
+ Klasse \Class{scrlttr2} und Paket \Package{scrletter}}
+\labelbase{scrlttr2-experts}
+
+\BeginIndexGroup \BeginIndex{Class}{scrlttr2} In diesem Kapitel finden Sie
+zusätzliche Informationen zu der \KOMAScript-Klasse \Class{scrlttr2}. %
+\iffree{Einige Teile des Kapitels sind dabei dem \KOMAScript-Buch
+ \cite{book:komascript} vorbehalten. Dies sollte kein Problem sein, denn
+ der}{Der} %
+Anwender, der die Klasse einfach nur verwenden will, wird diese Informationen
+normalerweise nicht benötigen. Ein Teil der Informationen richtet sich an
+Anwender, denen die vordefinierten Möglichkeiten nicht mehr genügen. So
+befasst sich beispielsweise der erste Abschnitt ausführlich mit den
+Pseudolängen, die den Briefbogen bestimmen und die für Anpassungen an eigene
+Briefbogenlayouts abweichend zu setzen sind.%
+\iffalse% Es wird Zeit das komplett rauszuwerfen!
+\ Darüber hinaus finden
+ sich in diesem Kapitel auch Informationen über Möglichkeiten, die aus
+ Gründen der Verbesserung der Kompatibilität zur obsoleten \KOMAScript-Klasse
+ \Class{scrlettr} geschaffen wurden. Es wird auch ausführlich erklärt, wie
+ man einen Brief dieser veralteten Klasse auf die aktuelle Briefklasse
+ übertragen kann.
+\fi
+
+\BeginIndex{Package}{scrletter}%
+Darüber hinaus gibt es seit
+\KOMAScript~3.15\ChangedAt[2014/11]{v3.15}{\Package{scrletter}} das Paket
+\Package{scrletter}, das zusammen mit einer der \KOMAScript-Klassen
+\Class{scrartcl}, \Class{scrreprt} oder \Class{scrbook} verwendet werden
+kann. Es stellt nahezu die komplette Funktionalität von \Class{scrlttr2} für
+die drei genannten Klassen zur Verfügung. Einige wenige Unterschiede gibt es
+jedoch, die ebenfalls in diesem Kapitel genannt werden.%
+
+
+\section{Pseudolängen für fortgeschrittene Anwender}
+\seclabel{pseudoLengths}
+\BeginIndexGroup
+\BeginIndex{}{Pseudolängen}
+
+\TeX{} arbeitet mit einem festen Satz an Registern. Es gibt Register für
+Token, für Boxen, für Zähler, für Abstände (englisch: \emph{skip}) und für
+Größen (englisch: \emph{dimension}). Von all diesen Registern gibt es jeweils
+256~Stück. Für \LaTeX{}-Längen, die mit \Macro{newlength} angefordert werden,
+werden Abstandsregister belegt. Sind alle diese Register verbraucht, kann man
+keine weiteren Längen definieren. Sowohl \Class{scrlttr2} als auch
+\Package{scrletter} würden normalerweise allein für die erste Seite mehr als
+20 solche Register verbrauchen. \LaTeX{} selbst belegt bereits 40 dieser
+Register. Das \hyperref[cha:typearea]{\Package{typearea}}%
+\IndexPackage{typearea}-Paket benötigt ebenfalls einige, so dass ein Viertel
+der kostbaren Register verbraucht wäre. Aus diesem Grund werden
+briefspezifische Längen bei \KOMAScript{} eben nicht in Längen, sondern in
+Makros abgelegt, den Pseudolängen. Der Nachteil dieses Vorgehens besteht
+darin, dass man mit diesen Makros nicht so einfach rechnen kann wie mit echten
+Längen.
+
+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
+Entscheidung für \Class{scrlttr2} ein wenig zu spät. Bei \Package{scrletter}
+wurde das Konzept der Pseudolängen aus Gründen der Kompatibilität übernommen.
+
+Eine Auf"|listung aller von \KOMAScript{} 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.%|
+
+\autoref{fig:scrlttr2-experts.pseudoLengths} auf
+\autopageref{fig:scrlttr2-experts.pseudoLengths} zeigt eine schematische
+Darstellung der wichtigsten Abstände auf dem Briefbogen. Dabei sind neben den
+Pseudolängen für die veränderbaren Abstände zusätzlich in heller Schrift auch
+die Längen angegeben, die für einige, wenige fest programmierte Abstände
+verwendet werden. Aus Gründen der Übersichtlichkeit wurde in der Darstellung
+auf einige weniger häufig benötigte Pseudolängen jedoch auch verzichtet.
+%
+\iffree{}{\enlargethispage*{\baselineskip}}% Umbruchkorrektur!!!
+\begin{desclist}
+ \renewcommand{\abovecaptionskipcorrection}{-\normalbaselineskip}%
+ \desccaption{%
+ Von \Class{scrlttr2} und \Package{scrletter} verwendete Pseudolängen%
+ \label{tab:scrlttr2-experts.pseudoLengths}%
+ }{%
+ Von \Class{scrlttr2} und \Package{scrletter} verwendete Pseudolängen
+ (\emph{Fortsetzung})%
+ }%
+ \pentry{backaddrheight}{%
+ Höhe der Rücksendeadresse am oberen Rand des Anschriftfeldes
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.backaddrheight})%
+ }%
+ \pentry{bfoldmarklength}{%
+ Länge der unteren horizontalen Faltmarke
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.bfoldmarkvpos})%
+ }%
+ \pentry{bfoldmarkvpos}{%
+ Abstand der unteren horizontalen Faltmarke von der oberen Kante des
+ Papiers
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.bfoldmarkvpos})%
+ }%
+ \pentry{firstfoothpos}{%
+ 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},
+ \DescPageRef{scrlttr2-experts.plength.firstfoothpos})%|
+ }%
+ \pentry{firstfootvpos}{%
+ Abstand des Brief"|fußes von der oberen Kante des Papiers
+ (\autoref{sec:scrlttr2-experts.firstFoot},
+ \DescPageRef{scrlttr2-experts.plength.firstfootvpos})%|
+ }%
+ \pentry{firstfootwidth}{%
+ Breite des Brief"|fußes
+ (\autoref{sec:scrlttr2-experts.firstFoot},
+ \DescPageRef{scrlttr2-experts.plength.firstfootwidth})%|
+ }%
+ \pentry{firstheadhpos}{%
+ Abstand des Briefkopfes 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.firstHead},
+ \DescPageRef{scrlttr2-experts.plength.firstheadhpos})%
+ }%\iffree{}{\enlargethispage*{\baselineskip}}% Umbruchkorrektur!!!
+ \pentry{firstheadvpos}{%
+ Abstand des Briefkopfes von der oberen Kante des Papiers
+ (\autoref{sec:scrlttr2-experts.firstHead},
+ \DescPageRef{scrlttr2-experts.plength.firstheadvpos})%
+ }%
+ \pentry{firstheadwidth}{%
+ Breite des Briefkopfes
+ (\autoref{sec:scrlttr2-experts.firstHead},
+ \DescPageRef{scrlttr2-experts.plength.firstheadwidth})%
+ }%
+ \pentry{foldmarkhpos}{%
+ Abstand der horizontalen Faltmarken von der linken Kante des Papiers
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.foldmarkhpos})%
+ }%
+ \pentry{foldmarkvpos}{%
+ Abstand der vertikalen Faltmarken von der oberen Kante des Papiers
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.foldmarkvpos})%
+ }%
+ \pentry{fromrulethickness}{%
+ Dicke einer optionalen
+ \iffalse horizontalen \fi% Umbruchkorrektur
+ Linie im Briefkopf
+ (\autoref{sec:scrlttr2-experts.firstHead},
+ \DescPageRef{scrlttr2-experts.plength.fromrulethickness})%
+ }%
+ \pentry{fromrulewidth}{%
+ Länge einer optionalen
+ \iffalse horizontalen \fi% Umbruchkorrektur
+ Linie im Briefkopf
+ (\autoref{sec:scrlttr2-experts.firstHead},
+ \DescPageRef{scrlttr2-experts.plength.fromrulewidth})%
+ }%
+ \pentry{lfoldmarkhpos}{%
+ Abstand der vertikalen Faltmarke von der linken Kante des Papiers
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.lfoldmarkhpos})%
+ }%
+ \pentry{lfoldmarklength}{%
+ Länge der vertikalen Faltmarke
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.lfoldmarklength})%
+ }%
+ \pentry{locheight}{%
+ Höhe der Absenderergänzung, falls der Wert nicht 0 ist; bei 0 wird
+ stattdessen \PLength{toaddrheight} verwendet
+ (\autoref{sec:scrlttr2-experts.locationField},
+ \DescPageRef{scrlttr2-experts.plength.locheight})%
+ }%
+ \pentry{lochpos}{%
+ Abstand der Absenderergänzung von der rechten Papierkante, falls der Wert
+ positiv ist, oder negativer Abstand der Absenderergänzung von der linken
+ Papierkante, falls der Wert negativ ist; bei 0 wird stattdessen der
+ negative Wert von \PLength{toaddrhpos} verwendet
+ (\autoref{sec:scrlttr2-experts.locationField},
+ \DescPageRef{scrlttr2-experts.plength.lochpos})%
+ }%
+ \pentry{locvpos}{%
+ Abstand der Absenderergänzung von der oberen Papierkante, falls der Wert
+ nicht 0 ist; bei 0 wird stattdessen \PLength{toaddrvpos} verwendet
+ (\autoref{sec:scrlttr2-experts.locationField},
+ \DescPageRef{scrlttr2-experts.plength.locvpos})%
+ }%
+ \pentry{locwidth}{%
+ Breite des Feldes für die Absenderergänzung, wobei bei einem Wert von 0
+ die Breite automatisch aufgrund der in \autoref{sec:scrlttr2.firstpage},
+ \DescPageRef{scrlttr2.option.locfield} beschriebenen Option
+ \DescRef{scrlttr2.option.locfield} berechnet wird
+ (\autoref{sec:scrlttr2-experts.locationField},
+ \DescPageRef{scrlttr2-experts.plength.locwidth})%
+ }\iffree{}{\enlargethispage*{\baselineskip}}% Umbruchkorrektur!!!%
+ \pentry{mfoldmarklength}{%
+ Länge der mittleren horizontalen Faltmarke
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.mfoldmarklength})%
+ }%
+ \pentry{mfoldmarkvpos}{%
+ Abstand der mittleren horizontalen Faltmarke von der oberen Kante des
+ Papiers
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.mfoldmarkvpos})%
+ }%
+ \pentry{pfoldmarklength}{%
+ Länge der Lochermarke
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.pfoldmarklength})%
+ }%
+ \pentry{PPdatamatrixvskip}{%
+ vertikaler Abstand zwischen Port-Payé-Kopf und Data-Matrix bei
+ \OptionValueRef{scrlttr2}{addrfield}{PP}
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.PPdatamatrixvskip})%
+ }%
+ \pentry{PPheadheight}{%
+ Höhe für den Port-Payé-Kopf
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.PPheadheight})%
+ }%
+ \pentry{PPheadwidth}{%
+ Breite des linken Port-Payé-Feldes bei
+ \OptionValueRef{scrlttr2}{addrfield}{PP}
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.PPheadwidth})%
+ }%
+ \pentry{refaftervskip}{%
+ vertikaler Abstand nach der Geschäftszeile
+ (\autoref{sec:scrlttr2-experts.refLine},
+ \DescPageRef{scrlttr2-experts.plength.refaftervskip})%
+ }%
+ \pentry{refhpos}{%
+ Abstand der Geschäftszeile von der linken Papierkante, wobei bei einem
+ Wert von 0 automatisch relativ zur Papierbreite zentriert wird
+ (\autoref{sec:scrlttr2-experts.refLine},
+ \DescPageRef{scrlttr2-experts.plength.refhpos})%
+ }%
+ \pentry{refvpos}{%
+ Abstand der Geschäftszeile von der oberen Kante des Papiers
+ (\autoref{sec:scrlttr2-experts.refLine},
+ \DescPageRef{scrlttr2-experts.plength.refvpos})%
+ }%
+ \pentry{refwidth}{%
+ Breite der Geschäftszeile
+ (\autoref{sec:scrlttr2-experts.refLine},
+ \DescPageRef{scrlttr2-experts.plength.refwidth})%
+ }%
+ \pentry{sigbeforevskip}{%
+ vertikaler Abstand zwischen Gruß und Signatur
+ (\autoref{sec:scrlttr2-experts.closing},
+ \DescPageRef{scrlttr2-experts.plength.sigbeforevskip})%
+ }%
+ \pentry{sigindent}{%
+ Einzug der Signatur gegenüber dem Textkörper
+ (\autoref{sec:scrlttr2-experts.closing},
+ \DescPageRef{scrlttr2-experts.plength.sigindent})%
+ }%
+ \pentry{specialmailindent}{%
+ linker Einzug der Versandart innerhalb des Anschriftfeldes
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.specialmailindent})%
+ }%
+ \pentry{specialmailrightindent}{%
+ rechter Einzug der Versandart innerhalb des Anschriftfeldes
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.specialmailrightindent})%
+ }%
+ \pentry{subjectaftervskip}{%
+ vertikaler Abstand nach dem Betreff
+ (\autoref{sec:scrlttr2-experts.subject},
+ \DescPageRef{scrlttr2-experts.plength.subjectaftervskip})%
+ }%
+ \pentry{subjectbeforevskip}{%
+ zusätzlicher vertikaler Abstand vor dem Betreff
+ (\autoref{sec:scrlttr2-experts.subject},
+ \DescPageRef{scrlttr2-experts.plength.subjectbeforevskip})%
+ }%
+ \pentry{subjectvpos}{%
+ Abstand des Betreffs von der oberen Kante des Papiers, wobei ein Wert von
+ 0 stattdessen den Betreff gemäß Option \DescRef{scrlttr2.option.subject} setzt
+ (\autoref{sec:scrlttr2-experts.subject},
+ \DescPageRef{scrlttr2-experts.plength.subjectaftervskip})%
+ }%
+ \pentry{tfoldmarklength}{%
+ Länge der oberen horizontalen Faltmarke
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.tfoldmarklength})%
+ }%
+ \pentry{tfoldmarkvpos}{%
+ Abstand der oberen horizontalen Faltmarke von der oberen Kante des Papiers
+ (\autoref{sec:scrlttr2-experts.foldmarks},
+ \DescPageRef{scrlttr2-experts.plength.tfoldmarkvpos})%
+ }%
+ \pentry{toaddrheight}{%
+ Höhe des Anschriftfeldes
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.toaddrheight})%
+ }%
+ \pentry{toaddrhpos}{%
+ Abstand des Anschriftfeldes von der linken Papierkante, falls der Wert
+ positiv ist, oder negativer Abstand des Anschriftfeldes von der rechten
+ Papierkante, falls der Wert negativ ist
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.toaddrhpos})%
+ }%
+ \pentry{toaddrindent}{%
+ linker und rechter Einzug der Anschrift innerhalb des Anschrift\-feldes
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.toaddrindent})%
+ }%
+ \iffree{}{\enlargethispage*{\baselineskip}}% Umbruchoptimierung!!!
+ \pentry{toaddrvpos}{%
+ Abstand des Anschriftfeldes von der oberen Kante des Papiers
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.toaddrvpos})%
+ }%
+ \pentry{toaddrwidth}{%
+ Breite des Anschriftfeldes
+ (\autoref{sec:scrlttr2-experts.addressee},
+ \DescPageRef{scrlttr2-experts.plength.toaddrwidth})%
+ }%
+\end{desclist}
+
+\begin{figure}
+ \centering
+ \includegraphics{plenDIN}
+ \caption{Schematische Darstellung der wichtigsten Pseudolängen für den
+ Briefbogen}
+ \label{fig:scrlttr2-experts.pseudoLengths}
+\end{figure}
+
+\begin{Declaration}
+ \Macro{newplength}\Parameter{Name}
+\end{Declaration}
+Mit\ChangedAt{v3.26}{\Class{scrlttr2}\and \Package{scrletter}} Hilfe dieser
+Anweisung wird eine neue Pseudolänge definiert. Die neue Pseudolänge ist dann
+über ihren \PName{Namen} eindeutig identifiziert. Jeder Name kann also nur
+einmal vergeben werden.
+%
+\iffalse % Umbruchoptimierungstext
+Es wird sichergestellt, dass jeder \PName{Name} nur
+einmal vergeben wird.%
+\else
+\iffalse
+Wird versucht, eine bereits vorhandene Pseudolänge erneut
+zu definieren, so wird dies mit einer Fehlermeldung quittiert.%
+\fi
+%
+\fi
+
+\BeginIndex{Cmd}{@newplength}%
+Da der Anwender selbst normalerweise keine eigenen Pseudolängen definieren
+muss, handelte es sich bei diesem Befehl bis \KOMAScript~3.25 um keine
+Benutzeranweisung. Stattdessen existierte bis dahin nur \Macro{@newplength}
+mit derselben Funktionalität. Für Paketautoren existieren diese Anweisungen
+noch immer.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setplength}%
+ \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Wert}
+ \Macro{addtoplength}%
+ \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Wert}
+\end{Declaration}
+Mit\ChangedAt{v3.26}{\Class{scrlttr2}\and \Package{scrletter}} Hilfe von
+\Macro{setplength} kann einer \PName{Pseudolänge} das Vielfache eines
+\PName{Wertes} zugewiesen werden. Der \PName{Faktor} wird dabei als optionales
+Argument übergeben (siehe auch \DescRef{scrlttr2.cmd.setlengthtoplength},
+\autoref{sec:scrlttr2.pseudoLength},
+\DescPageRef{scrlttr2.cmd.setlengthtoplength}).
+
+Mit \Macro{addtoplength} kann man zu einer \PName{Pseudolänge} das Vielfache
+eines \PName{Wertes} addieren. Auch dabei wird der \PName{Faktor} als
+optionales Argument übergeben.
+
+Um einer \PName{Pseudolänge} das Vielfache einer anderen Pseudolänge
+zuzuweisen oder zu ihr zu addieren, verwendet man innerhalb von
+\PName{Wert} die Anweisung \Macro{useplength} (siehe
+\autoref{sec:scrlttr2.pseudoLength},
+\DescPageRef{scrlttr2.cmd.useplength}). Um von einer \PName{Pseudolänge}
+den Wert einer anderen \PName{Pseudolänge} zu subtrahieren, verwendet man
+gleichzeitig als \PName{Faktor} ein Minuszeichen oder \PValue{-1} oder einen
+anderen negativen Faktor.
+
+\BeginIndex{Cmd}{@setplength}%
+\BeginIndex{Cmd}{@addtoplength}%
+Da der Anwender selbst normalerweise keine Pseudolängen ändern muss, handelte
+es sich bis \KOMAScript~3.25 bei diesen Befehlen um keine
+Benutzeranweisungen. Stattdessen existierten bis dahin nur
+\Macro{@setplength} und \Macro{@addtoplength} mit derselben
+Funktionalität. Für Paketautoren existieren diese Anweisungen noch immer.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setplengthtowidth}
+ \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Inhalt}
+ \Macro{setplengthtoheight}
+ \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Inhalt}
+ \Macro{setplengthtodepth}
+ \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Inhalt}
+ \Macro{setplengthtototalheight}
+ \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Inhalt}
+\end{Declaration}
+Die\ChangedAt{v3.26}{\Class{scrlttr2}\and \Package{scrletter}} ersten drei
+Anweisungen entsprechen im Wesentlichen \Macro{settowidth},
+\Macro{settoheight} und \Macro{settodepth} aus dem \LaTeX-Kern, setzen aber
+keine Länge, sondern eine \PName{Pseudolänge}. Entsprechend
+\DescRef{\LabelBase.cmd.setplength} sind sie ebenfalls um einen optionalen
+\PName{Faktor} erweitert. Sie setzen also eine \PName{Pseudolänge} auf die
+Breite, Höhe oder Tiefe von \PName{Inhalt} multipliziert mit dem optional
+angegebenen \PName{Faktor}. Die zusätzliche Anweisung
+\Macro{setplengthtototalheight} setzt die \PName{Pseudolänge} auf die Summe
+der Höhe und Tiefe von \PName{Inhalt} multipliziert mit dem optionalen
+\PName{Faktor}.%
+\EndIndexGroup
+
+
+\subsection{Faltmarken}
+\seclabel{foldmarks}
+\BeginIndexGroup
+\BeginIndex{}{Faltmarke}%
+
+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
+Faltmarke. Dazu wird noch eine horizontale Loch- oder Seitenmittenmarke
+unterstützt, die nicht in der Vertikalen verschoben werden kann.
+
+
+\begin{Declaration}
+ \PLength{tfoldmarkvpos}
+ \PLength{mfoldmarkvpos}
+ \PLength{bfoldmarkvpos}
+\end{Declaration}
+\KOMAScript{} kennt für Briefe \Class{scrlttr2} insgesamt drei in der vertikalen
+Platzierung konfigurierbare Faltmarken. Die Position der oberen Faltmarke vom
+oberen Papierrand wird von der Pseudolänge \PLength{tfoldmarkvpos}
+bestimmt. Für die Position der mittleren Faltmarke ist Pseudolänge
+\PLength{mfoldmarkvpos}\ChangedAt{v2.97e}{\Class{scrlttr2}}, für die unteren
+Faltmarke \PLength{bfoldmarkvpos} zuständig. Mit der
+Locher-\Index{Lochermarke} oder Seitenmittenmarke kommt noch eine weitere
+horizontale Marke dazu. Diese wird jedoch immer in der vertikalen Seitenmitte
+platziert.
+\iftrue% Umbruchkorrekturtext!
+Da ihre vertikale Position also nicht konfigurierbar ist, existiert
+auch keine Pseudolänge dafür.
+\fi
+
+Die\important{Achtung!} obere und untere Faltmarke dienen nicht der exakten
+Drittelung des Papiers beim Falten. Stattdessen soll das Papier mit ihrer
+Hilfe so geknickt werden können, dass das Feld für die Anschrift in einem
+Fensterbriefumschlag zu sehen ist. Die Einstellungen sind daher in den
+vordefinierten \File{lco}-Dateien\textnote{\File{lco}-Datei}%
+\Index{lco-Datei=\File{lco}-Datei} unterschiedlich gewählt. Eine
+Besonderheit\textnote{Achtung!} stellt \Option{DINmtext} dar. Hier wird
+zwingend von einem Briefumschlag im Format C6/5 (auch »C6 lang« genannt)
+ausgegangen. Briefe, die mit dieser Option erstellt wurden, sind normalerweise
+weder für Umschläge im Format C5 noch für Umschläge im Format C4 geeignet.
+
+Die mittlere Faltmarke wird für abendländische Briefe normalerweise nicht
+benötigt. Beispielsweise in Japan gibt es jedoch so unterschiedliche
+Briefumschläge, dass eine weitere Faltmarke benötigt wurde (siehe die
+japanischen \File{lco}-Dateien). An dieser Stelle sei darauf hingewiesen, dass
+die Bezeichnungen »obere«, »mittlere« und »untere« Faltmarke lediglich eine
+Sprachkonvention darstellen. Tatsächlich ist nicht festgelegt, dass
+\PLength{tfoldmarkvpos} kleiner als \PLength{mfoldmarkvpos} und dieses kleiner
+als \PLength{bfoldmarkvpos} sein muss. Ist\textnote{Achtung!} eine der
+Pseudolängen hingegen Null, so wird die entsprechende Faltmarke auch dann
+nicht gesetzt, wenn sie per Option \DescRef{scrlttr2.option.foldmarks}%
+\IndexOption{foldmarks~=\PName{Einstellung}}%
+\important{\DescRef{scrlttr2.option.foldmarks}} (siehe
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.foldmarks})
+explizit aktiviert wurde.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{tfoldmarklength}
+ \PLength{mfoldmarklength}
+ \PLength{bfoldmarklength}
+ \PLength{pfoldmarklength}
+\end{Declaration}
+Diese\ChangedAt{v2.97e}{\Class{scrlttr2}} vier Pseudolängen bestimmen die
+Länge der vier horizontalen Marken. Dabei gilt eine
+Besonderheit. Ist\textnote{Achtung!} die Länge nämlich mit Null angegeben, so
+werden bei den Pseudolängen \PLength{tfoldmarklength},
+\PLength{mfoldmarklength} und \PLength{bfoldmarklength} für die drei in der
+vertikalen Position konfigurierbaren Faltmarken stattdessen 2\Unit{mm} als
+Länge verwendet. Die Länge der Lochermarke, \PLength{pfoldmarklength}, wird
+hingegen auf 4\Unit{mm} gesetzt.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{foldmarkhpos}
+\end{Declaration}
+Diese Pseudolänge gibt den Abstand aller horizontalen Faltmarken vom linken
+Papier\-rand an. Normalerweise sind das 3{,}5\Unit{mm}. Sie\textnote{Tipp!}
+können den Wert aber auch in Ihrer eigenen \File{lco}-Datei ändern, falls Sie
+einen Drucker verwenden, der einen breiteren unbedruckbaren linken Rand
+hat. Ob die Faltmarken überhaupt gesetzt werden, hängt außerdem von der Option
+\DescRef{scrlttr2.option.foldmarks}\important{\DescRef{scrlttr2.option.foldmarks}}%
+\IndexOption{foldmarks~=\PName{Einstellung}} ab (siehe
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.foldmarks}).%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{lfoldmarkhpos}
+\end{Declaration}
+Neben\ChangedAt{v2.97e}{\Class{scrlttr2}} den horizontalen Faltmarken gibt es
+auch noch eine vertikale Faltmarke. Deren Abstand von der linken Papierkante
+wird über die Pseudolänge \PLength{lfoldmarkhpos} bestimmt. Diese Faltmarke
+wird beispielsweise bei Briefen für einige japanische Chou- oder You-Umschläge
+benötigt, wenn man diese für A4-Papier verwenden will. Auch für Umschläge im
+C6-Format kann sie nützlich sein.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{lfoldmarklength}
+\end{Declaration}
+Die Pseudolänge \PLength{lfoldmarklength} bestimmt
+die\ChangedAt{v2.97e}{\Class{scrlttr2}} Länge der vertikalen
+Faltmarke. Auch\textnote{Achtung!} hier gibt es die Besonderheit, dass bei
+einer angegebenen Länge von Null stattdessen 4\Unit{mm} verwendet werden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{foldmarkvpos}
+\end{Declaration}
+Die\ChangedAt{v2.97e}{\Class{scrlttr2}} Pseudolänge gibt den Abstand
+\iffree{aller}{der} vertikalen Faltmarke\iffree{n}{} vom oberen Papier\-rand
+an. Normalerweise sind das 3{,}5\Unit{mm}. Sie\textnote{Tipp!} können den
+Wert aber auch in Ihrer eigenen \File{lco}-Datei ändern, falls Sie einen
+Drucker verwenden, der einen breiteren unbedruckbaren oberen Rand hat. Ob die
+Faltmarke\iffree{n}{} überhaupt gesetzt \iffree{werden}{wird}, hängt außerdem
+von der Option \DescRef{scrlttr2.option.foldmarks}%
+\important{\DescRef{scrlttr2.option.foldmarks}}%
+\IndexOption{foldmarks~=\PName{Einstellung}} ab (siehe
+\autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.foldmarks}).\iffree{ Derzeit gibt es nur eine
+ einzige vertikale Faltmarke, die als linke vertikale Faltmarke bezeichnet
+ wird.}{}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{foldmarkthickness}
+\end{Declaration}
+Diese\ChangedAt{v2.97c}{\Class{scrlttr2}} Pseudolänge gibt die Dicke aller
+Faltmarken an. Voreingestellt sind 0,2\Unit{pt}, also eine sehr dünne
+Haarlinie. Insbesondere\textnote{Tipp!}, wenn die Farbe der Faltmarken
+geändert wird, kann dies zu wenig sein!%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Briefkopf}
+\seclabel{firstHead}
+\BeginIndexGroup
+\BeginIndex{}{Briefkopf}%
+
+Unter dem Briefkopf verstehen wir alle Angaben, die den Absender betreffen und
+die über der Anschrift stehen. Normalerweise würde man erwarten, dass diese
+über den Seitenstil gesetzt werden. Bei der alten Briefklasse \Class{scrlettr}
+war dies auch so. Bei\textnote{Achtung!} \Class{scrlttr2} und
+\Package{scrletter} wird der Briefkopf jedoch unabhängig vom Seitenstil von
+der Anweisung \DescRef{scrlttr2.cmd.opening}\IndexCmd{opening} ausgegeben.
+% Fuellmaterial
+\iftrue%
+Dabei wird der Briefkopf absolut positioniert, ist also vom Satzspiegel
+unabhängig. Die erste Seite eines Briefes, also die Seite mit dem Briefkopf,
+wird tatsächlich mit dem Seitenstil
+\DescRef{scrlttr2.pagestyle.empty}\IndexPagestyle{empty} gesetzt.%
+\fi
+% Ende des Fuellmaterials
+
+
+\begin{Declaration}
+ \PLength{firstheadvpos}
+\end{Declaration}
+Die Pseudolänge \PLength{firstheadvpos} gibt den Abstand des Briefkopfes von
+der oberen Papierkante an. Der Wert wird in den vordefinierten
+\File{lco}-Dateien\textnote{\File{lco}-Datei}\Index{lco-Datei=\File{lco}-Datei}
+unterschiedlich gesetzt. Ein typischer Wert ist 8\Unit{mm}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{firstheadhpos}
+\end{Declaration}
+Die Pseudolänge \PLength{firstheadhpos}\ChangedAt{v3.05}{\Class{scrlttr2}}
+gibt bei einem positiven Wert den Abstand des Briefkopfes von der linken
+Papierkante an. Ist\textnote{Achtung!} der Wert sogar größer oder gleich der
+Breite des Papiers,
+\Length{paperwidth}\important{\Length{paperwidth}}\IndexLength{paperwidth}, so
+wird der Briefkopf horizontal zentriert auf dem Briefbogen platziert. Ein
+negativer Wert gibt den Abstand des Briefkopfes von der rechten Papierkante
+an. Ist der Wert jedoch kleiner oder gleich der negativen Breite des Papiers,
+so wird der Briefkopf bündig zum linken Rand des Satzspiegels platziert.
+
+Voreingestellt\textnote{Achtung!} ist typischerweise ein Wert von
+\Length{maxdimen}\IndexLength{maxdimen}, also der größtmögliche Wert für eine
+Länge. Die Folge ist eine horizontale Zentrierung.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{firstheadwidth}
+\end{Declaration}
+Die Pseudolänge \PLength{firstheadwidth} gibt die Breite des Briefkopfes
+an. Der Wert wird in den vordefinierten
+\File{lco}-Dateien\textnote{\File{lco}-Datei}\Index{lco-Datei=\File{lco}-Datei}
+unterschiedlich gesetzt. Während er normalerweise von der Papierbreite und dem
+horizontalen Abstand der Empfängeradresse vom linken Papierrand abhängt,
+entspricht er bei \Option{KOMAold} der Breite des Satzspiegels und ist bei
+\Option{NF} fest auf 170\Unit{mm} eingestellt.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{fromrulethickness}
+ \PLength{fromrulewidth}
+\end{Declaration}
+Wie bereits bei Option
+\DescRef{scrlttr2.option.fromrule}\IndexOption{fromrule} in
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.fromrule}
+erwähnt wurde, kann in den vordefinierten Briefköpfen eine Linie im oder unter
+dem Absender gesetzt werden. Hat\textnote{Achtung!} die Pseudolänge
+\PLength{fromrulewidth} die Länge 0, so wird dabei die Länge dieser Linie
+automatisch bestimmt. Dies ist die Voreinstellung bei den vordefinierten
+\File{lco}-Dateien. %
+\iffalse % Umbruchkorrekturtext
+Der Wert kann mit \DescRef{\LabelBase.cmd.setplength} (siehe
+\DescPageRef{scrlttr2-experts.cmd.setplength}) in eigenen \File{lco}-Dateien
+aber auch abweichend gesetzt werden. %
+\fi%
+Die voreingestellte Dicke\ChangedAt{v2.97c}{\Class{scrlttr2}},
+\PLength{fromrulethickness}, der Linie beträgt 0,4\Unit{pt}.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Anschrift}
+\seclabel{addressee}%
+\BeginIndexGroup
+\BeginIndex{}{Anschrift}%
+
+% Verschiedene Umbruchvarianten
+Unter der Anschrift versteht man normalerweise nur den Namen und die Adresse
+des Empfängers. %
+\iffalse%
+Als \iffree{erste }{}Erweiterung zur Anschrift kann die
+Versandart betrachtet werden, die etwa bei \iffree{Einschreiben oder
+}{}Infobriefen zur Anwendung kommt. Bei Fensterbriefumschlägen wird auch die
+sogenannte Rücksendeadresse \iffree{zur Anschrift}{dazu} gezählt, da sie im
+Anschriftfenster zu sehen \iffree{sein wird}{ist}. Die Anschrift folgt
+unmittelbar auf den Briefkopf.%
+\else%
+Aber auch die Versandart, beispielsweise bei Infobriefen, oder die
+Rücksendeadresse werden als Teil des Anschriftfeldes gesetzt.%
+\fi
+
+
+\begin{Declaration}
+ \PLength{toaddrvpos}
+ \PLength{toaddrhpos}
+\end{Declaration}
+Diese Pseudolängen geben den Abstand des Anschriftfensters eines
+Fensterbriefumschlags vom oberen und vom linken Rand des Papiers an. Sie
+werden in den vordefinierten
+\File{lco}-Dateien\textnote{\File{lco}-Datei}\Index{lco-Datei=\File{lco}-Datei}
+unterschiedlich eingestellt. Für \PLength{toaddrhpos} gilt außerdem eine
+Besonderheit. Ist\textnote{Achtung!} der Wert \iffree{}{wie bei \Option{SN}
+ oder \Option{NF} }negativ, so ist sein Betrag der Abstand des
+Anschriftfeldes vom rechten Rand des Papiers. %
+\iffree{%
+ Sie\textnote{Beispiele!} finden dies beispielsweise bei \Option{SN} oder
+ \Option{NF}. Am kleinsten ist der Wert \PLength{toaddrvpos} bei
+ \Option{DINmtext}. Hier kann es schnell passieren, dass der Briefkopf in das
+ Anschriftfenster ragt.%
+}{%
+ Große Briefköpfe\textnote{Achtung!} können bei kleinem \PLength{toaddrvpos},
+ beispielsweise bei \Option{DINmtext}, bis in das Anschriftfeld ragen.%
+} Ob das Anschriftfenster überhaupt gesetzt wird, hängt von der Option
+\Option{addrfield} ab (siehe \autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.addrfield}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{toaddrheight}
+\end{Declaration}
+Diese Pseudolänge gibt die Höhe des Anschriftfeldes einschließlich der
+Versandart an. Ob Name und Adresse des Empfängers unter Berücksichtigung der
+Versandart im Anschriftfeld vertikal zentriert werden hängt von Option
+\DescRef{scrlttr2.option.addrfield} ab.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{toaddrwidth}
+\end{Declaration}
+Diese Pseudolänge gibt die Breite des Anschriftfensters an. Diese wird in den
+vordefinierten
+\File{lco}-Dateien\textnote{\File{lco}-Datei}\Index{lco-Datei=\File{lco}-Datei}
+entsprechend der unterschiedlichen Normen unterschiedlich
+eingestellt. Typische Werte liegen zwischen 70\Unit{mm} und 100\Unit{mm}.
+
+\begin{Example}
+ Angenommen, Sie haben das Problem, dass Ihr Drucker einen \iffree{sehr
+ breiten }{}unbedruckbaren rechten \iffree{oder linken }{}Rand von
+ 15\Unit{mm} besitzt. Dadurch kann bei Option \Option{SN} der Briefkopf, die
+ Absenderergänzung und die Anschrift nicht komplett gedruckt werden. Sie
+ erstellen daher eine neue \iffree{\File{lco}-Datei mit folgendem Inhalt}{Datei
+ \File{SNmmarg.lco}, die Sie anstelle von \Option{SN} verwenden}:
+\begin{lstcode}
+ \ProvidesFile{SNmmarg.lco}
+ [2002/06/04 v0.1 my own lco]
+ \LoadLetterOption{SN}
+ \addtoplength{toaddrwidth}{%
+ -\useplength{toaddrhpos}}
+ \setplength{toaddrhpos}{-15mm}
+ \addtoplength{toaddrwidth}{%
+ \useplength{toaddrhpos}}
+ \endinput
+\end{lstcode}%
+ \iffree{ Bis Sie sich einen Drucker mit kleineren Rändern zugelegt haben,
+ verwenden Sie \Option{SNmmarg} anstelle von
+ \Option{SN}.}{}% Umbruchoptimierung
+\end{Example}\vskip-\ht\strutbox% Wegen Beispiel am Ende der Erklärung
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{toaddrindent}
+\end{Declaration}
+Manchmal will man, dass die Anschrift nicht am linken Rand des
+Anschriftfensters beginnt und bis zum rechten Rand des Fensters reicht,
+sondern ein wenig eingezogen wird. Der Wert dieses Einzugs kann über die
+Pseudolänge \PLength{toaddrindent} festgelegt werden. Typischerweise ist
+dieser Wert jedoch 0\Unit{pt}.
+
+Bei\textnote{Achtung!} jeder der
+Einstellungen\ChangedAt{v3.03}{\Class{scrlttr2}}
+\OptionValueRef{scrlttr2}{addrfield}{PP}\important{%
+ \OptionValueRef{scrlttr2}{addrfield}{PP}\\
+ \OptionValueRef{scrlttr2}{addrfield}{image}\\
+ \OptionValueRef{scrlttr2}{addrfield}{backgroundimage}
+}\IndexOption{addrfield~=\textKValue{PP}},
+\OptionValueRef{scrlttr2}{addrfield}{image}%
+\IndexOption{addrfield~=\textKValue{image}} und
+\OptionValueRef{scrlttr2}{addrfield}{backgroundimage}%
+\IndexOption{addrfield~=\textKValue{backgroundimage}} (siehe
+\autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.addrfield}) wird beim Wert 0\Unit{pt}
+stattdessen ein Einzug von 8\Unit{mm} verwendet. Soll hier tatsächlich kein
+Einzug verwendet werden, so kann mit 1\Unit{sp} ein vernachlässigbar kleiner
+Einzug gesetzt werden. Des Weiteren wird \PLength{toaddrindent} bei den
+genannten Einstellungen für \Option{addrfield} auch für den Abstand zum
+rechten Rand des Anschriftfensters verwendet.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{backaddrheight}
+\end{Declaration}
+Bei Fensterbriefumschlägen wird der Absender häufig in einer kleinen Schrift
+einzeilig über der Empfängeradresse ausgegeben. Diese Absenderangabe nennt man
+Rücksendeadresse\textnote{Rücksendeadresse}%
+\Index{Ruecksendeadresse=Rücksendeadresse}, da sie \iffree{im Anschriftfenster
+ sichtbar ist und }{}der Post bei unzustellbaren Briefen für die Rücksendung
+an den Absender dient. In dieser Adresse muss daher auch nur die Information
+enthalten sein, die zur Rücksendung notwendig ist.
+
+Die Höhe, die innerhalb des Anschriftfensters für die Rücksendeadresse zur
+Verfügung steht, ist in der Pseudolänge \PLength{backaddrheight} abgelegt. Der
+Wert wird in den vordefinierten \File{lco}-Dateien typischerweise auf
+5\Unit{mm} eingestellt. Ob die Rücksendeadresse überhaupt gesetzt wird,
+bestimmt der Anwender mit den Optionen \Option{addrfield} (siehe
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.addrfield}) und
+\DescRef{scrlttr2.option.backaddress} (siehe \autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.backaddress}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{specialmailindent}
+ \PLength{specialmailrightindent}
+\end{Declaration}
+Zwischen Rücksendeadresse und Empfängeradresse kann noch eine optionale
+Versandart\Index{Versandart} gesetzt werden\iffree{. Diese wird genau dann
+ gesetzt}{}, wenn die Variable \DescRef{scrlttr2.variable.specialmail} einen
+Inhalt hat. Die Ausrichtung wird mit Hilfe der Pseudolängen
+\PLength{specialmailindent} und \PLength{specialmailrightindent}
+festgelegt. Diese geben den linken und rechten Einzug der Zeile an. In den
+vordefinierten \File{lco}-Dateien ist \PLength{specialmailindent} auf den
+dehnbaren Wert \Macro{fill} gesetzt, während \PLength{specialmailrightindent}
+auf 1\Unit{em} eingestellt ist. Damit wird die Versandart 1\Unit{em} vom
+rechten Rand des Anschriftfensters gesetzt.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{PPheadheight}
+ \PLength{PPheadwidth}
+\end{Declaration}
+Die Pseudolänge \PLength{PPheadheight} gibt bei den beiden
+Einstellungen\ChangedAt{v3.03}{\Class{scrlttr2}}
+\OptionValueRef{scrlttr2}{addrfield}{PP}\important{%
+ \OptionValueRef{scrlttr2}{addrfield}{PP}\\
+ \OptionValueRef{scrlttr2}{addrfield}{backgroundimage}}%
+\IndexOption{addrfield~=\textKValue{PP}} und
+\OptionValueRef{scrlttr2}{addrfield}{backgroundimage}%
+\IndexOption{addrfield~=\textKValue{backgroundimage}} die Höhe an, die am Anfang
+des Adressfeldes für den Port-Payé-Kopf reserviert wird. Die Pseudolänge
+\PLength{PPheadwidth} wird nur bei \OptionValueRef{scrlttr2}{addrfield}{PP}
+(siehe \autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.addrfield}) verwendet und gibt die Breite des
+linken Feldes des Port-Payé-Kopf mit dem P.\,P.-Logo, der Postleitzahl und dem
+Ort an. Die Breite des rechten Feldes mit dem Code für den Absender und der
+Priorität ist durch die Restbreite bestimmt.
+
+Den\textnote{Achtung!} normalerweise voreingestellten Wert von 0\Unit{mm} für
+Pseudolänge \PLength{PPheadheight} ändert \KOMAScript{} selbstständig in
+20,74\Unit{pt}. Den normalerweise voreingestellten Wert von 0\Unit{mm} für
+\PLength{PPheadwidth} ändert \KOMAScript{} selbstständig in 42\Unit{mm}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{PPdatamatrixvskip}
+\end{Declaration}
+Durch\ChangedAt{v3.03}{\Class{scrlttr2}} diese Pseudolänge wird der vertikale
+Abstand zwischen dem Port-Payé-Kopf und der Data-Matrix bei
+\OptionValueRef{scrlttr2}{addrfield}{PP}%
+\important{\OptionValueRef{scrlttr2}{addrfield}{PP}}%
+\IndexOption{addrfield~=\textKValue{PP}} (siehe
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.addrfield})
+festgelegt. Den\textnote{Achtung!} normalerweise voreingestellten Wert von
+0\Unit{mm} ändert \KOMAScript{} selbstständig in 9\Unit{mm}. Die Data-Matrix
+wird rechtsbündig zum Port-Payé-Kopf gesetzt.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Absenderergänzungen}
+\seclabel{locationField}
+\BeginIndexGroup
+\BeginIndex{}{Absenderergaenzung=Absenderergänzung}%
+
+\iffalse% Umbruchvarianten
+Insbesondere bei Geschäftsbriefen reicht der Platz im Briefkopf und im
+Seitenfuß oftmals nicht aus, um alle Angaben des Absenders unterzubringen. Für
+die zusätzlichen Informationen kann der Platz neben der Anschrift
+genutzt werden. In dieser Anleitung wird dieses Feld \emph{Absenderergänzung}
+genannt.%
+\else%
+Reicht der Raum in Briefkopf und Seitenfuß nicht aus, um alle Angaben zum
+Absender unterzubringen, kann der Platz neben der Anschrift als
+\emph{Absenderergänzung} genutzt werden.%
+\fi
+
+
+\begin{Declaration}
+ \PLength{locheight}
+ \PLength{lochpos}
+ \PLength{locvpos}
+ \PLength{locwidth}
+\end{Declaration}
+Die Pseudolängen \PLength{locwidth} und
+\PLength{locheight}\ChangedAt{v2.97d}{\Class{scrlttr2}} geben die Breite und
+Höhe der Absenderergänzung an. Die Pseudolängen \PLength{lochpos} und
+\PLength{locvpos} geben die Abstände von der rechten, oberen
+Papierkante an. Die Werte werden in den vordefinierten \File{lco}-Dateien
+typischerweise auf 0\Unit{pt} gesetzt. Dieser\textnote{Achtung!} Wert nimmt
+eine Sonderstellung ein. Er bedeutet, dass die Werte erst bei
+\DescRef{scrlttr2.cmd.opening}\IndexCmd{opening} anhand der Breite des
+Papiers, der Breite des Anschriftfensters, des Abstandes des
+Anschriftfensters von der linken, oberen Papierkante und
+Option \DescRef{scrlttr2.option.locfield} (siehe
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.locfield})
+gesetzt werden. Wie\textnote{Achtung!} bei \PLength{toaddrhpos} nehmen
+negative Werte für \PLength{lochpos} eine Sonderstellung ein. Es wird dann
+statt des Abstandes vom rechten Papierrand der Betrag von \PLength{lochpos}
+als Abstand vom linken Papierrand verwendet. Die Bedeutung ist also genau
+umgekehrt zu der bei \PLength{toaddrhpos} (siehe
+\autoref{sec:scrlttr2-experts.addressee},
+\DescPageRef{scrlttr2-experts.plength.toaddrhpos}).%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Geschäftszeile}
+\seclabel{refLine}%
+\BeginIndexGroup
+\BeginIndex{}{Geschaeftszeile=Geschäftszeile}%
+
+Die Geschäftszeile kann auch länger als eine Zeile sein. Sie wird nur gesetzt,
+wenn mindestens eine der Variablen für die Geschäftszeile nicht leer ist. Es
+werden nur nicht leere Felder gesetzt. Um\textnote{Tipp!} ein scheinbar leeres
+Feld zu setzen, kann man einen scheinbar leeren Variableninhalt wie
+\Macro{mbox}\Parameter{} verwenden. Wird auf die Geschäftszeile verzichtet, so
+werden an ihrer Stelle Bezeichnung und Inhalt der Variablen
+\DescRef{scrlttr2.variable.date} ausgegeben. %
+\iffalse% Umbruchoptimierung
+Informationen, wie Variablen zur Geschäftszeile hinzugefügt oder entfernt
+werden, sind in \autoref{sec:scrlttr2-experts.variables},
+\DescPageRef{scrlttr2-experts.cmd.removereffields} zu finden.%
+\fi
+
+
+\begin{Declaration}
+ \PLength{refvpos}
+\end{Declaration}
+Diese Pseudolänge gibt den Abstand der Geschäftszeile von der Oberkante des
+Papiers an. Ihr Wert wird in den vordefinierten \File{lco}-Dateien\textnote{\File{lco}-Datei}\Index{lco-Datei=\File{lco}-Datei}
+unterschiedlich eingestellt. %
+\iffalse%
+Typische Werte liegen zwischen 80{,}5\Unit{mm} und 98{,}5\Unit{mm}.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{refwidth}
+ \PLength{refhpos}
+\end{Declaration}
+Die Pseudolänge \PLength{refwidth} gibt die Breite an, die für die
+Geschäftszeile zur Verfügung steht. Ihr Wert wird in den vordefinierten
+\File{lco}-Dateien typischerweise auf 0\Unit{pt}
+gesetzt. Dieser\textnote{Achtung!} Wert hat eine besondere Bedeutung. %
+\iffalse% Umbruchoptimierung
+Es wird damit keineswegs festgelegt, dass für die Geschäftszeile keine Breite
+zur Verfügung steht. Vielmehr bedeutet der Wert%
+\else%
+Damit wird festgelegt%
+\fi%
+, dass die verfügbare Breite erst innerhalb von
+\DescRef{scrlttr2.cmd.opening}\IndexCmd{opening} ermittelt wird. Die%
+\iffalse% Umbruchoptimierung
+\ dort ermittelte %
+\else%
+se %
+\fi%
+Breite richtet sich \iffree{dann }{}nach der Einstellung der Option
+\DescRef{scrlttr2.option.refline}\important{\DescRef{scrlttr2.option.refline}}%
+\IndexOption{refline~=\PName{Einstellung}} (siehe
+\autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.refline}). Gleichzeitig wird dann auch
+\PLength{refhpos} entsprechend der Option gesetzt. Bei
+\OptionValueRef{scrlttr2}{refline}{wide}%
+\IndexOption{refline~=\textKValue{wide}} wird die Geschäftszeile zentriert,
+wohingegen sie bei \OptionValueRef{scrlttr2}{refline}{narrow}%
+\IndexOption{refline~=\textKValue{narrow}} am Satzspiegel links ausgerichtet
+wird.
+
+Ist \PLength{refwidth} von Null verschieden, wird die Breite der
+Geschäftszeile also nicht von der Option \DescRef{scrlttr2.option.refline}
+bestimmt, so gibt \PLength{refhpos} den Abstand der Geschäftszeile von der
+linken Papierkante an. Ist\textnote{Achtung!} dieser Abstand Null, so wird die
+Geschäftszeile so ausgerichtet, dass das Verhältnis zwischen ihrem Abstand von
+der linken Papierkante zu ihrem Abstand von der rechten Papierkante dem
+Verhältnis zwischen dem Abstand des Satzspiegels von der linken Papierkante zu
+seinem Abstand von der rechten Papierkante entspricht. Bei auf dem Papier
+horizontal zentriertem Satzspiegel wird also auch die Geschäftszeile
+zentriert.
+
+In der Regel werden diese Sonderfälle für die häufigsten Anwendungen von
+geringem Interesse sein. Die\textnote{Tipp!} einfachste Regel lautet hier:
+Entweder wird \PLength{refwidth} auf Null belassen und die Breite und
+Ausrichtung der Geschäftszeile über die Option
+\DescRef{scrlttr2.option.refline} bestimmt oder sowohl \PLength{refwidth} als
+auch \PLength{refhpos} werden vom Anwender vorgegeben.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{refaftervskip}
+\end{Declaration}
+Diese Pseudolänge gibt den vertikalen Abstand an, der nach der Geschäftszeile
+eingefügt werden soll. Der Wert wird in den vordefinierten
+\File{lco}-Dateien\textnote{\File{lco}-Datei}\Index{lco-Datei=\File{lco}-Datei}
+eingestellt. Er wirkt sich unmittelbar auf die Höhe des Textbereichs der
+ersten Seite aus. Der typische Wert liegt zwischen einer und zwei Zeilen.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Betreff}
+\seclabel{subject}%
+\BeginIndexGroup
+\BeginIndex{}{Betreff}
+
+Der Betreff eine Briefes wird in unterschiedlichen Ländern unterschiedlich
+gesetzt. Die einen haben ihn gerne vor der Anrede, die anderen setzen ihn
+danach. Einige Berufsgruppen wollen ihn teilweise sogar vor der Geschäftszeile
+haben.
+
+\begin{Declaration}
+ \PLength{subjectvpos}
+\end{Declaration}
+\ChangedAt{v3.01}{\Class{scrlttr2}}%
+Ist\textnote{Achtung!} der Wert dieser Pseudolänge 0\Unit{pt}, so bestimmt die
+Option
+\DescRef{scrlttr2.option.subject}\important{\DescRef{scrlttr2.option.subject}}%
+\IndexOption{subject~=\PName{Einstellung}} (siehe
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.subject}) die
+Position des Betreffs. Dabei spielen dann auch die nachfolgend erklärten
+Pseudolängen \PLength{subjectbeforevskip} und \PLength{subjectaftervskip} ihre
+Rolle. Bei allen anderen Werten wird der Betreff mit dem entsprechenden
+Abstand von der oberen Papierkante platziert. Es\textnote{Tipp!} wird
+empfohlen in diesem Fall darauf zu achten, dass genügend Platz zur Verfügung
+steht, damit Überschneidungen mit anderen Elementen unwahrscheinlich sind.
+\begin{Example}
+ Einige wenige Berufsgruppen ziehen es vor, wenn der Betreff noch vor der
+ Geschäftszeile steht. Hierzu kann man die Position wie folgt wählen, wobei
+ auch die Position der Geschäftszeile angepasst wird:
+\begin{lstcode}
+ \ProvidesFile{lawsubj.lco}
+ [2008/11/03 lawyers lco file]
+ \setplength{subjectvpos}{\useplength{refvpos}}
+ \addtoplength{refvpos}{3\baselineskip}
+ \endinput
+\end{lstcode}
+ Will man, dass zwischen Betreff und Geschäftszeile noch mindestens eine
+ Zeile frei bleibt, hat man so Platz für maximal zwei Zeilen Betreff.
+\end{Example}
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{subjectbeforevskip}
+ \PLength{subjectaftervskip}
+\end{Declaration}
+\ChangedAt{v3.01}{\Class{scrlttr2}}%
+Wird der Betreff nicht absolut platziert, sondern vor oder nach der Anrede, so
+kann vor und nach dem Betreff ein zusätzlicher Abstand eingefügt werden. Der
+Abstand vor dem Betreff trifft dabei gegebenenfalls mit anderen Abständen,
+etwa dem automatischen Abstand von einer Zeile nach dem Titel, zusammen. In
+der Voreinstellung wird daher in der Regel kein weiterer Abstand an dieser
+Stelle eingefügt. Der Abstand nach dem Betreff beträgt in der Voreinstellung
+von Klasse und Paket zwei Zeilen.%
+\EndIndexGroup \EndIndexGroup
+
+
+\subsection{Schlussgruß}
+\seclabel{closing}
+\BeginIndexGroup
+\BeginIndex{}{Schlussgruss=Schlussgruß}
+
+Der Schlussgruß\Index{Gruss=Gruß} eines Briefes besteht aus mehreren Teilen.
+Neben der Grußformel selbst gibt es noch die Unterschrift und die Signatur,
+eine Art Erläuterung zur Unterschrift.
+
+
+\begin{Declaration}
+ \PLength{sigindent}
+ \PLength{sigbeforevskip}
+\end{Declaration}
+Grußfloskel\Index{Gruss=Gruß}\Index{Signatur} und Erläuterung der
+Unterschrift\Index{Unterschrift} werden innerhalb einer Box gesetzt. Die
+Breite dieser Box wird durch die längste Zeile innerhalb von Grußfloskel und
+Erläuterung bestimmt.
+
+Die Box wird mit dem durch die Pseudolänge \PLength{sigindent} bestimmten
+Einzug gesetzt. In den vordefinierten \File{lco}-Dateien ist der Einzug auf
+0\Unit{mm} gesetzt.
+
+Zwischen Grußfloskel und Erläuterung wird ein vertikaler Abstand eingefügt,
+der mit der Pseudolänge \PLength{sigbeforevskip} festgelegt ist. In den
+vordefinierten \File{lco}-Dateien ist der Wert auf zwei Zeilen eingestellt. In
+diese Lücke setzen Sie dann Ihre Unterschrift.%
+\iffalse% Umbruchkorrekturtext
+\ Sollten\textnote{Tipp!} Sie sich dazu entschließen in die Variable
+\DescRef{scrlttr2.variable.signature}\IndexVariable{signature}%
+\important{\DescRef{scrlttr2.variable.signature}} mit Paket
+\Package{graphicx}\IndexPackage{graphicx} ein Faksimile Ihrer Unterschrift
+einzufügen, wäre es also sinnvoll den Wert von \PLength{sigbeforevskip} und
+damit die Lücke zwischen Schlussgruß und Signatur zu verringern.%
+\fi%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Briefbogenfuß}
+\seclabel{firstFoot}%
+\BeginIndexGroup
+\BeginIndex{}{Briefbogenfuss=Briefbogenfuß}%
+
+Die erste Seite eines Briefes, der Briefbogen, enthält nicht nur einen eigenen
+Kopf, den Briefkopf. Diese Seite enthält auch einen eigenen
+Fuß\Index{Fuss=Fuß}, den Briefbogenfuß. %
+\iftrue% Umbruchvarianten
+Auch dieser wird nicht über den Seitenstil%
+\else%
+Genau wie der Briefkopf wird der Briefbogenfuß nicht über den Seitenstil%
+\fi%
+, sondern unmittelbar von \DescRef{scrlttr2.cmd.opening}\IndexCmd{opening}%
+\important{\DescRef{scrlttr2.cmd.opening}} ausgegeben.
+
+
+\begin{Declaration}
+ \PLength{firstfootvpos}
+\end{Declaration}
+Diese Pseudolänge gibt den Abstand des Fußes der ersten Briefseite von der
+Oberkante des Papiers an. Es wird außerdem dafür gesorgt, dass der Textbereich
+nicht in den Fuß hineinragt. Hierzu wird auf der ersten Seite gegebenenfalls
+die Höhe des Textbereichs mit Hilfe von
+\Macro{enlargethispage}\IndexCmd{enlargethispage}%
+\important{\Macro{enlargethispage}} verkleinert. Mit Hilfe der Option
+\DescRef{scrlttr2.option.enlargefirstpage}%
+\important{\DescRef{scrlttr2.option.enlargefirstpage}} (siehe
+\autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.enlargefirstpage}) kann dafür gesorgt werden,
+dass die Höhe des Textbereichs umgekehrt gegebenenfalls auch vergrößert
+wird. Damit kann dann der Abstand zwischen Textbereich und Fuß der ersten
+Seite auf den Wert der Länge
+\Length{footskip}\IndexLength{footskip}\important{\Length{footskip}}
+verringert werden.
+
+Bei\textnote{Achtung!}
+Kompatibilitätseinstellungen\ChangedAt{v2.9t}{\Class{scrlttr2}} bis
+Version~2.9t (siehe \DescRef{scrlttr2.option.version} in
+\autoref{sec:scrlttr2.compatibilityOptions},
+\DescPageRef{scrlttr2.option.version}) wird außer bei \Option{KOMAold} und
+\Option{NF} in allen vordefinierten
+\File{lco}-Dateien\textnote{\File{lco}-Datei}\Index{lco-Datei=\File{lco}-Datei}
+(siehe \autoref{sec:scrlttr2.lcoFile}) der Fuß abhängig vom Satzspiegel
+gesetzt. Damit hat dann auch \DescRef{scrlttr2.option.enlargefirstpage}%
+\important{\DescRef{scrlttr2.option.enlargefirstpage}} keine Wirkung. Ab
+Version 2.9u bekommt der Fuß eine Position am unteren Ende des Papiers. Damit
+ist dann die Höhe des Satzspiegels des Briefbogens eventuell auch von der
+Option \DescRef{scrlttr2.option.enlargefirstpage} abhängig.
+
+Sollte der Briefbogenfuß mittels Option
+\OptionValueRef{scrlttr2}{firstfoot}{false}%
+\important{\OptionValueRef{scrlttr2}{firstfoot}{false}}%
+\IndexOption{firstfoot~=\textKValue{false}}\ChangedAt{v2.97e}{\Class{scrlttr2}}
+(siehe \autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.firstfoot}) abgeschaltet sein, so wird die
+Einstellung von \PLength{firstfootvpos} ignoriert und stattdessen
+\Length{paperheight}\IndexLength{paperheight} angenommen. Es bleibt damit dann
+ein minimaler unterer Rand von \Length{footskip}\IndexLength{footskip}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{firstfoothpos}
+\end{Declaration}
+Die\textnote{Achtung!} Pseudolänge
+\PLength{firstfoothpos}\ChangedAt{v3.05}{\Class{scrlttr2}} gibt bei einem
+positiven Wert den Abstand des Briefbogenfußes von der linken Papierkante
+an. Ist der Wert sogar größer oder gleich der Breite des Papiers,
+\Length{paperwidth}\IndexLength{paperwidth}, so wird der Fuß horizontal
+zentriert auf dem Briefbogen platziert. Ein negativer Wert gibt den Abstand
+des Fußes von der rechten Papierkante an. Ist der Wert jedoch kleiner oder
+gleich der negativen Breite des Papiers, so wird der Fuß bündig zum linken
+Rand des Satzspiegels platziert.
+
+Voreingestellt ist typischerweise ein Wert von
+\Length{maxdimen}\IndexLength{maxdimen}, also der größtmögliche Wert für eine
+Länge. Die Folge ist eine horizontale Zentrierung.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PLength{firstfootwidth}
+\end{Declaration}
+Diese Pseudolänge gibt die Breite des Fußes der ersten Briefseite, also des
+Briefbogens, an. Der Wert stimmt in den vordefinierten \File{lco}-Dateien mit
+\PLength{firstheadwidth}\important{\PLength{firstheadwidth}}%
+\IndexPLength{firstheadwidth} überein.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Variablen für fortgeschrittene Anwender}
+\seclabel{variables}
+\BeginIndexGroup
+\BeginIndex{}{Variablen}
+
+Neben der Möglichkeit, vordefinierte Variablen zu verwenden, bietet
+\KOMAScript{} auch Anweisungen, um neue Variablen zu definieren oder deren
+automatische Verwendung innerhalb der Geschäftszeile zu beeinflussen.
+
+
+\begin{Declaration}
+ \Macro{newkomavar}\OParameter{Bezeichnung}\Parameter{Name}
+ \Macro{newkomavar*}\OParameter{Bezeichnung}\Parameter{Name}
+ \Macro{removereffields}
+ \Macro{defaultreffields}
+ \Macro{addtoreffields}\Parameter{Name}
+\end{Declaration}
+Mit \Macro{newkomavar} wird eine neue Variable definiert. Diese Variable wird
+über \PName{Name} angesprochen. Optional kann eine \PName{Bezeichnung} für die
+Variable \PName{Name} angegeben werden. Eine \PName{Bezeichnung} wird dabei im
+Unterschied zum \PName{Name} nicht verwendet, um auf eine Variable
+zuzugreifen. Vielmehr ist die \PName{Bezeichnung} eine Ergänzung zum Inhalt
+einer Variable, die ähnlich ihrem Inhalt ausgegeben werden kann.
+
+Mit der Anweisung \Macro{addtoreffields} kann die Variable \PName{Name} der
+Geschäftszeile\Index{Geschaeftszeile=Geschäftszeile}\textnote{Geschäftszeile}
+(siehe \autoref{sec:scrlttr2.firstpage},
+\DescPageRef{scrlttr2.option.refline}) hinzugefügt werden. Dabei wird die
+\PName{Bezeichnung} und der Inhalt der Variablen an das Ende der
+Geschäftszeile angehängt, falls ihr Inhalt nicht leer ist. Die Sternvariante
+\Macro{newkomavar*} entspricht der Variante ohne Stern mit anschließendem
+Aufruf der Anweisung \Macro{addtoreffields}. Bei der Sternvariante wird die
+Variable also automatisch zur Geschäftszeile hinzugefügt.
+\begin{Example}
+ Angenommen, Sie benötigen in der Geschäftszeile ein zusätzliches Feld
+ für eine Durchwahl. Sie können das Feld dann wahlweise mit
+\begin{lstcode}
+ \newkomavar[Durchwahl]{myphone}
+ \addtoreffields{myphone}
+\end{lstcode}
+ oder kürzer mit
+\begin{lstcode}
+ \newkomavar*[Durchwahl]{myphone}
+\end{lstcode}
+ definieren.
+\end{Example}
+Im\textnote{Achtung!} Fall, dass eine Variable für die Geschäftszeile
+definiert wird, sollten Sie immer eine Bezeichnung dafür angeben.
+
+Mit der Anweisung \Macro{removereffields} können alle Variablen aus der
+Geschäftszeile entfernt werden. Dies betrifft auch die in der Klasse
+vordefinierten Variablen. Die Geschäftszeile ist dann leer. Sie können dies
+beispielsweise nutzen, wenn Sie die Reihenfolge der Variablen in der
+Geschäftszeile ändern wollen.
+
+Zur Wiederherstellung der Reihenfolge der vordefinierten Variablen in der
+Geschäftszeile dient \Macro{defaultreffields}. Dabei werden auch alle
+selbst definierten Variablen aus der Geschäftszeile entfernt.
+
+Das\textnote{Achtung!} Datum sollte der Geschäftszeile nicht über die
+Anweisung \Macro{addtoreffields} hinzugefügt werden. Stattdessen stellt man
+mit Option \DescRef{scrlttr2.option.refline}%
+\important{\OptionValueRef{scrlttr2}{refline}{dateleft}\\
+ \OptionValueRef{scrlttr2}{refline}{dateright}\\
+ \OptionValueRef{scrlttr2}{refline}{nodate}}%
+\IndexOption{refline~=\textKValue{dateleft}}%
+\IndexOption{refline~=\textKValue{dateright}}%
+\IndexOption{refline~=\textKValue{nodate}} ein, ob das Datum links, rechts oder
+gar nicht in der Geschäftszeile erscheinen soll. Diese Einstellungen haben
+darüber hinaus auch einen Einfluss auf die Position des Datums, wenn gar keine
+Geschäftszeile verwendet wird.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{usekomavar}\OParameter{Anweisung}\Parameter{Name}
+ \Macro{usekomavar*}\OParameter{Anweisung}\Parameter{Name}
+\end{Declaration}
+Die Anweisungen \DescRef{scrlttr2.cmd.usekomavar} und
+\DescRef{scrlttr2.cmd.usekomavar*} sind wie alle Anweisungen, von denen es
+eine Sternvariante gibt oder die ein optionales Argument besitzen, nicht voll
+expandierbar. Bei Verwendung innerhalb von
+\DescRef{scrlttr2.cmd.markboth}\IndexCmd{markboth},
+\DescRef{scrlttr2.cmd.markright}\IndexCmd{markright} oder ähnlichen
+Anweisungen muss dennoch kein \Macro{protect}\IndexCmd{protect} vorangestellt
+werden. Selbstverständlich gilt dies bei Verwendung von
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage} auch für
+\DescRef{scrlayer-scrpage.cmd.markleft}\IndexCmd{markleft} (siehe
+\autoref{sec:scrlayer-scrpage.pagestyle.content},
+\DescPageRef{scrlayer-scrpage.cmd.markleft}). Allerdings\textnote{Achtung!}
+können die Anweisungen nicht innerhalb von
+\Macro{MakeUppercase}\important{\Macro{MakeUppercase}}\IndexCmd{MakeUppercase}
+und ähnlichen Anweisungen verwendet werden, die direkten Einfluss auf ihr
+Argument haben. Diese Anweisungen können jedoch als optionales Argument
+angegeben werden. So erhält man beispielsweise den Inhalt einer Variable in
+Großbuchstaben mit:
+\begin{lstcode}[escapeinside=»«]
+ \usekomavar[\MakeUppercase]{»\PName{Name}«}
+\end{lstcode}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifkomavarempty}\Parameter{Name}\Parameter{Wahr}\Parameter{Falsch}
+ \Macro{ifkomavarempty*}\Parameter{Name}\Parameter{Wahr}\Parameter{Falsch}
+\end{Declaration}
+Für die exakte Funktion ist wichtig, dass der Inhalt der Variablen soweit
+expandiert wird, wie dies mit \Macro{edef} möglich ist. Bleiben dabei
+Leerzeichen oder unexpandierbare Makros wie \Macro{relax} übrig, so gilt der
+Inhalt auch dann als nicht leer, wenn die Verwendung der Variablen zu keiner
+Ausgabe führen würde.
+
+Auch\textnote{Achtung!} diese Anweisung kann nicht innerhalb von
+\Macro{MakeUppercase} oder ähnlichen Anweisungen verwendet werden. Sie ist
+jedoch robust genug, um beispielsweise als Argument von
+\DescRef{scrlttr2.cmd.markboth} oder \DescRef{scrlttr2.cmd.footnote} zu
+funktionieren.
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Ergänzende Informationen zu den Seitenstilen}
+\seclabel{pagestyleatscrletter}
+\BeginIndexGroup
+\BeginIndex{}{Seiten>Stil}
+
+\LoadNonFree{scrlttr2-experts}{0}%
+\EndIndexGroup
+
+\iffalse% Wurde bereits in Kapitel 4.21 behandelt
+\section{Unterschiede in der Behandlung von \File{lco}-Dateien bei
+ \Package{scrletter}}
+\seclabel{lcoatscrletter}
+\BeginIndexGroup
+\BeginIndex{File}{lco}
+\BeginIndex{}{lco-Datei=\File{lco}-Datei}
+
+In\ChangedAt{v3.15}{\Package{scrletter}} \autoref{sec:scrlttr2.lcoFile} wurde
+erklärt, dass man \File{lco}-Dateien direkt über \Macro{documentclass} laden
+kann. Für \Package{scrletter}\OnlyAt{\Package{scrlttr2}} wurde auf diese
+Möglichkeit verzichtet.
+
+\begin{Declaration}
+ \Macro{LoadLetterOption}\Parameter{Name}
+ \Macro{LoadLetterOptions}\Parameter{Liste von Namen}
+\end{Declaration}
+Während für \Class{scrlttr2} lediglich empfohlen wird, \File{lco}-Dateien über
+\DescRef{scrlttr2.cmd.LoadLetterOption} oder
+\DescRef{scrlttr2.cmd.LoadLetterOptions} zu laden, ist dies für
+\Package{scrletter} zwingend. Natürlich können die \File{lco}-Dateien auch
+erst nach \Package{scrletter} geladen werden.
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\fi
+
+
+\section{\File{lco}-Dateien für fortgeschrittene Anwender}
+\seclabel{lcoFile}
+\BeginIndexGroup
+\BeginIndex{File}{lco}
+\BeginIndex{}{lco-Datei=\File{lco}-Datei}
+
+\BeginIndexGroup%
+\BeginIndex{}{Papier>Format}%
+Obwohl jedes von \hyperref[cha:typearea]{\Package{typearea}}%
+\IndexPackage{typearea} einstellbare Format verwendbar ist, kann es bei der
+Ausgabe der ersten Briefseite mit manchen Formaten zu unerwünschten
+Ergebnissen kommen. Leider gibt es
+keine allgemein gültigen Regeln, um die Position von Anschriftfeldern und
+Ähnlichem für beliebige Papierformate zu berechnen. Vielmehr werden für
+unterschiedliche Papierformate unterschiedliche Parameter benötigt.%
+
+%\subsection{Überwachung des Papierformats}
+%\seclabel{papersize}
+
+Derzeit existieren Parametersätze und \File{lco}-Dateien für A4-Papier und
+letter-Papier. Die Klasse \Class{scrlttr2} versteht aber theoretisch sehr viel
+mehr Papierformate. Daher ist es notwendig zu überwachen, ob die korrekte
+Papiergröße eingestellt ist. Dies gilt umso mehr, wenn \Package{scrletter}
+verwendet wird, da die Einstellung der Papiergröße dann in erster Linie von
+der verwendeten Klasse abhängt.
+
+\begin{Declaration}
+ \Macro{LetterOptionNeedsPapersize}%
+ \Parameter{Optionsname}\Parameter{Papiergröße}
+\end{Declaration}
+Damit man bei Verwendung einer in der \File{lco}-Datei nicht vorgesehenen
+\PName{Papiergröße} zumindest gewarnt wird, sind in den
+mit \KOMAScript{} ausgelieferten \File{lco}-Dateien
+\Macro{LetterOptionNeedsPapersize}-Anweisungen zu finden. Als erstes Argument
+wird dabei der Name der \File{lco}-Datei ohne die Endung »\File{.lco}«
+übergeben. Als zweites Argument wird die Papiergröße übergeben, für die diese
+\File{lco}-Datei gedacht ist.
+
+Werden nacheinander mehrere \File{lco}-Dateien geladen, so kann jede dieser
+\File{lco}-Dateien eine Anweisung \Macro{LetterOptionNeedsPapersize}
+enthalten. Innerhalb von \DescRef{scrlttr2.cmd.opening}\IndexCmd{opening} wird
+jedoch nur auf die jeweils letzte angegebene \PName{Papiergröße} geprüft. Wie
+das nachfolgende Beispiel zeigt, ist es daher für den versierten Anwender
+leicht möglich, \File{lco}-Dateien mit Parametersätzen für andere
+Papierformate zu schreiben. %
+\iffalse% Umbruchoptimierung!!!
+Wer allerdings nicht vor hat, selbst solche \File{lco}-Dateien zu schreiben,
+der kann die Erklärung zu dieser Anweisung gleich wieder vergessen und auch
+das Beispiel überspringen.%
+\fi
+\begin{Example}
+ Nehmen wir einmal an, dass Sie A5-Papier in normaler Ausrichtung, also
+ hochkant oder portrait, für Ihre Briefe verwenden. Nehmen wir weiter an,
+ dass Sie diese in normale Fensterbriefumschläge im Format C6 stecken. Damit
+ wäre prinzipiell die Position des Adressfeldes die gleiche wie bei einem
+ normalen Brief in A4 nach DIN. Der Unterschied besteht im Wesentlichen
+ darin, dass das A5-Papier nur einmal gefaltet werden muss. Sie wollen
+ deshalb verhindern, dass die obere und die untere Faltmarke gesetzt
+ wird. Dies erreichen Sie beispielsweise, indem Sie die Marken außerhalb des
+ Papiers platzieren.
+\begin{lstcode}
+ \ProvidesFile{a5.lco}
+ [2002/05/02 letter class option]
+ \LetterOptionNeedsPapersize{a5}{a5}
+ \setplength{tfoldmarkvpos}{\paperheight}
+ \setplength{bfoldmarkvpos}{\paperheight}
+ \endinput
+\end{lstcode}
+ Eleganter wäre es natürlich, die Marken mit Hilfe der Option
+ \DescRef{scrlttr2.option.foldmarks} abzuschalten. Außerdem muss auch noch
+ die Position des Seitenfußes, also die Pseudolänge \PLength{firstfootvpos},
+ angepasst werden. Ich überlasse es dem Leser, dafür einen geeigneten Wert zu
+ ermitteln. Mit einer solchen \File{lco}-Datei ist es lediglich wichtig, dass
+ andere \File{lco}-Dateioptionen wie \File{SN} vor dem Laden von
+ »\File{a5.lco}«, angegeben werden.
+\end{Example}
+%
+\EndIndexGroup%
+\EndIndexGroup%
+\vskip-\ht\strutbox% Wegen Beispiel am Ende der Erklärung
+
+
+%\subsection{Positionen sichtbar machen}
+%\seclabel{visualize}
+%\BeginIndexGroup
+\begin{Declaration}
+ \File{visualize.lco}
+\end{Declaration}
+\BeginIndex{Option}{visualize}%
+Wenn man selbst \File{lco}-Dateien entwickelt, beispielsweise um die
+Positionen von verschiedenen Feldern des Briefbogens an eigene Wünsche oder
+Notwendigkeiten anzupassen, ist es hilfreich, wenn zumindest einige Elemente
+direkt sichtbar gemacht werden können. Zu diesem Zweck existiert die
+\File{lco}-Datei
+\File{visualize.lco}\ChangedAt{v3.04}{\Class{scrlttr2}}. Diese kann wie jede
+\File{lco}-Datei geladen werden. Allerdings ist das Laden dieser \emph{Letter
+ Class Option} auf die Dokumentpräambel beschränkt und seine Auswirkungen
+können nicht wieder rückgängig gemacht werden. Die \File{lco}-Datei bedient
+sich der Pakete
+\Package{eso-pic}\IndexPackage{eso-pic}%
+\important[i]{\Package{eso-pic}\\\Package{graphicx}}
+und \Package{graphicx}\IndexPackage{graphicx}, die nicht zu \KOMAScript{}
+gehören.
+
+\begin{Declaration}
+ \Macro{showfields}\Parameter{Feldliste}
+\end{Declaration}
+Mit dieser Anweisung kann bei Verwendung von \File{visualize.lco} die
+Visualisierung von Feldern des Briefbogens aktiviert werden. Das Argument
+\PName{Feldliste} ist dabei eine durch Komma separierte Liste der Feldern, die
+visualisiert werden sollen. Folgende Felder werden derzeit unterstützt:
+\begin{labeling}[~--]{\PValue{location}}
+\item[\PValue{test}] ist ein Testfeld der Größe 10\Unit{cm} auf 15\Unit{cm},
+ das jeweils 1\Unit{cm} vom oberen und linken Papierrand entfernt ist. Dieses
+ Testfeld existiert zu Debuggingzwecken. Es dient als Vergleichsmaß für den
+ Fall, dass im Dokumenterstellungsprozess die Maße verfälscht werden.
+\item[\PValue{head}] ist der Kopfbereich des Briefbogens. Es handelt sich hier
+ um ein nach unten offenes Feld.
+\item[\PValue{foot}] ist der Fußbereich des Briefbogens. Es handelt sich hier
+ um ein nach unten offenes Feld.
+\item[\PValue{address}] ist das Anschriftfenster.
+\item[\PValue{location}] ist das Feld der Absenderergänzung.
+\item[\PValue{refline}] ist die Geschäftszeile. Es handelt sich hier um ein
+ nach unten offenes Feld.
+\end{labeling}%
+\BeginIndex{FontElement}{field}\LabelFontElement{field}%
+Mit den Anweisungen \DescRef{scrlttr2.cmd.setkomafont} und
+\DescRef{scrlttr2.cmd.addtokomafont} (siehe \autoref{sec:scrlttr2.textmarkup},
+\DescPageRef{scrlttr2.cmd.setkomafont}) für das Element
+\FontElement{field}\important{\FontElement{field}} kann die Farbe der
+Visualisierung geändert werden. Voreingestellt ist \Macro{normalcolor}.%
+\EndIndex{FontElement}{field}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setshowstyle}\Parameter{Stil}
+ \Macro{edgesize}
+\end{Declaration}
+In der Voreinstellung werden von \File{visualize.lco} die einzelnen Felder
+durch Rahmen\important{\PValue{frame}} markiert. Dies entspricht dem
+\PName{Stil} \PValue{frame}. Nach unten offene Felder werden dabei nicht
+komplett umrahmt, sondern unten offen mit kleinen Pfeilen nach unten
+dargestellt. Als Alternative\important{\PValue{rule}} hierzu steht auch der
+\PName{Stil} \PValue{rule} zur Verfügung. Dabei wird das 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{edges}} verfügbare
+\PName{Stil} 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.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{showenvelope}\AParameter{Breite\textup{,}Höhe}
+ \AParameter{HOffset\textup{,}VOffset}
+ \OParameter{Zusatz}
+ \Macro{showISOenvelope}\Parameter{Format}\OParameter{Zusatz}
+ \Macro{showUScommercial}\Parameter{Format}\OParameter{Zusatz}
+ \Macro{showUScheck}\OParameter{Zusatz}
+ \Macro{unitfactor}
+\end{Declaration}
+Diese Anweisungen dienen bei Verwendung von \File{visualize.lco} dazu, eine
+Seite mit einer Zeichnung eines Umschlags auszugeben. Der Umschlag wird dabei
+immer um 90° gedreht auf einer eigenen Seite im Maßstab~1:1 ausgegeben. Das
+Anschriftfenster wird automatisch aus den aktuellen Daten für die
+Anschriftposition auf dem Briefbogen: \PLength{toaddrvpos},
+\PLength{toaddrheight}, \PLength{toaddrwidth} und \PLength{toaddrhpos},
+erzeugt. Hierfür ist es notwendig zu wissen, um welchen Wert der gefaltete
+Briefbogen auf jeder Seite kleiner als die \PName{Breite} und \PName{Höhe} des
+Briefbogens ist. Sind diese beiden Werte, \PName{HOffset} und \PName{VOffset},
+bei \Macro{showenvelope} nicht angegeben, so wird versucht, sie aus den
+Faltmarken und der Papiergröße selbst zu berechnen.
+
+Die Anweisungen \Macro{showISOenvelope}, \Macro{showUScommercial} und
+\Macro{showUScheck} basieren auf \Macro{showenvelope}. Mit
+\Macro{showISOenvelope} kann ein ISO-Umschlag im \PName{Format} C4, C5, C5/6,
+DL\iffree{ (auch bekannt als C5/6)}{} oder C6 erzeugt werden. Mit
+\Macro{showUScommercial} wird hingegen ein US-Commercial-Umschlag im
+\PName{Format} 9 oder 10 ausgegeben. \Macro{showUScheck} schließlich ist für
+Umschläge im US-Check-Format zuständig.
+
+\BeginIndex{FontElement}{letter}\LabelFontElement{letter}%
+Innerhalb des Umschlags wird die Lage des Briefbogens gestrichelt
+angedeutet. Die dabei verwendete Farbe kann mit Hilfe der Anweisungen
+\DescRef{scrlttr2.cmd.setkomafont} und \DescRef{scrlttr2.cmd.addtokomafont}
+(siehe \autoref{sec:scrlttr2.textmarkup},
+\DescPageRef{scrlttr2.cmd.setkomafont}) für das Element
+\FontElement{letter}\important{\FontElement{letter}} verändert
+werden. Voreingestellt ist \Macro{normalcolor}.%
+\EndIndex{FontElement}{letter}
+
+\BeginIndex{FontElement}{measure}\LabelFontElement{measure}%
+Die Umschlagzeichnung wird automatisch bemaßt. Die Farbe der Bemaßung und die
+Größe deren Beschriftung kann mit Hilfe der Anweisungen
+\DescRef{scrlttr2.cmd.setkomafont} und \DescRef{scrlttr2.cmd.addtokomafont}
+(siehe \autoref{sec:scrlttr2.textmarkup},
+\DescPageRef{scrlttr2.cmd.setkomafont}) für das Element
+\FontElement{measure}\important{\FontElement{measure}} verändert
+werden. Voreingestellt ist hier \Macro{normalcolor}. Die Bemaßung erfolgt in
+Vielfachen von \Length{unitlength} mit einer maximalen Genauigkeit von
+$1/\Macro{unitfactor}$, wobei die Genauigkeit der \TeX-Arithmetik die
+tatsächliche Grenze darstellt. Voreingestellt ist 1. Eine Umdefinierung ist
+mit \Macro{renewcommand} möglich.%
+\EndIndex{FontElement}{measure}
+
+\begin{Example}
+ Es wird ein Beispielbrief im Format ISO~A4 erzeugt. Die unterstützten Felder
+ sollen zwecks Überprüfung ihrer Position mit gelben Rahmenlinien markiert
+ werden. Des Weiteren soll die Position des Fensters in einem Umschlag der
+ Größe~DL mit Hilfe einer Zeichnung überprüft werden. Die Maßlinien in dieser
+ Zeichnung sollen rot und die Maßzahlen in kleinerer Schrift ausgegeben
+ werden, wobei die Maßzahlen in cm mit einer Genauigkeit von 1\Unit{mm}
+ ausgegeben werden sollen. Der gestrichelte Briefbogen im Umschlag soll
+ hingegen grün eingefärbt werden.
+\begin{lstcode}
+ \documentclass[visualize]{scrlttr2}
+ \usepackage{xcolor}
+ \setkomafont{field}{\color{yellow}}
+ \setkomafont{measure}{\color{red}\small}
+ \setkomafont{letter}{\color{green}}
+ \showfields{head,address,location,refline,foot}
+ \usepackage[ngerman]{babel}
+ \usepackage{lipsum}
+ \begin{document}
+ \setkomavar{fromname}{Peter Musterfrau}
+ \setkomavar{fromaddress}{Hinter dem Tal 2\\
+ 54321 Musterheim}
+ \begin{letter}{%
+ Petra Mustermann\\
+ Vor dem Berg 1\\
+ 12345 Musterhausen%
+ }
+ \opening{Hallo,}
+ \lipsum[1]
+ \closing{Bis dann}
+ \end{letter}
+ \setlength{\unitlength}{1cm}
+ \renewcommand*{\unitfactor}{10}
+ \showISOenvelope{DL}
+ \end{document}
+\end{lstcode}
+ Auf der ersten Seite findet sich nun der Briefbogen, auf der zweiten Seite
+ wird die Zeichnung des Umschlags ausgegeben.
+\end{Example}
+
+Bezüglich der Bemaßung ist zu beachten, dass ungünstige Kombinationen von
+\Length{unitlength} und \Macro{unitfactor} sehr schnell einen \TeX-Fehler der
+Art \emph{arithmetic overflow} provozieren. Ebenso kann es geschehen, dass
+ausgegebene Maßzahlen geringfügig vom tatsächlichen Wert abweichen. Beides
+sind keine Fehler von \Option{visualize}, sondern lediglich
+Implementierungsgrenzen.
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Unterstützung verschiedener Sprachen}
+\seclabel{languages}%
+\BeginIndexGroup%
+\BeginIndex{}{Sprachen}%
+Die Klasse \Class{scrlttr2} und das Paket \Package{scrletter} unterstützen
+viele Sprachen. Dazu zählen Deutsch (\PValue{german} für alte deutsche
+Rechtschreibung, \PValue{ngerman} für neue deutsche Rechtschreibung,
+\PValue{austrian} für Österreichisch mit alter deutscher Rechtschreibung und
+\PValue{naustrian}\ChangedAt{v3.09}{\Class{scrlttr2}} für Österreichisch mit
+neuer deutscher Rechtschreibung),
+\PValue{nswissgerman}\ChangedAt{v3.13}{\Class{scrlttr2}} für Schweizer Deutsch
+mit neuer Rechtschreibung und \PValue{swissgerman} für Schweizer Deutsch mit
+alter Rechtschreibung, Englisch (unter anderem \PValue{english} ohne Angabe,
+ob amerikanisches oder britisches Englisch, \PValue{american} und
+\PValue{USenglish} für Amerikanisch, \PValue{british} und \PValue{UKenglish}
+für Britisch), Französisch, Italienisch, Spanisch, Niederländisch, Kroatisch,
+Finnisch, Norwegisch\ChangedAt{v3.02}{\Class{scrlttr2}},
+Schwedisch\ChangedAt{v3.08}{\Class{scrlttr2}},
+Polnisch\ChangedAt{v3.13}{\Class{scrlttr2}},
+Tschechisch\ChangedAt{v3.13}{\Class{scrlttr2}} und Slowakisch.
+
+Zwischen den Sprachen wird bei Verwendung des
+\Package{babel}-Pakets\IndexPackage{babel} (siehe \cite{package:babel}) mit
+der Anweisung \Macro{selectlanguage}\Parameter{Sprache} gewechselt. Andere
+Pakete wie \Package{german}\IndexPackage{german} (siehe \cite{package:german})
+und \Package{ngerman}\IndexPackage{ngerman} (siehe \cite{package:ngerman})
+besitzen diese Anweisung ebenfalls. In der Regel erfolgt eine
+Sprachumschaltung jedoch bereits aufgrund des Ladens eines solchen Pakets.
+\iffalse% Umbruchkorrekturtext!!!
+Näheres entnehmen Sie bitte der jeweiligen Anleitung.
+\fi
+
+Erlauben\textnote{Achtung!} Sie mir noch einen Hinweis zu den
+Sprachumschaltpaketen. Das Paket
+\Package{french}\IndexPackage{french}\important{\Package{french}} (siehe
+\cite{package:french}) nimmt neben der Umdefinierung der Begriffe aus
+\autoref{tab:scrlttr2-experts.languageTerms},
+\autopageref{tab:scrlttr2-experts.languageTerms} weitere Änderungen vor. So
+definiert es etwa die Anweisung \DescRef{scrlttr2.cmd.opening} um. Dabei geht
+es einfach davon aus, dass \DescRef{scrlttr2.cmd.opening} immer wie in der
+Standardbriefklasse \Class{letter} definiert ist. Dies ist bei \KOMAScript{}
+jedoch nicht der Fall. Das Paket \Package{french} zerstört deshalb die
+Definition und arbeitet nicht korrekt mir \KOMAScript{} zusammen. Ich
+betrachte dies als Fehler des Pakets \Package{french}, der obwohl schon vor
+Jahrzehnten gemeldet, leider nie beseitigt wurde.
+
+Wird das Paket \Package{babel}\IndexPackage{babel} für die
+Umschaltung auf die Sprache verwendet, können vereinzelt ebenfalls
+Probleme auftreten. Bei \Package{babel} lassen sich problematisch Änderungen
+einer Sprache jedoch meist gezielt abschalten.%
+\iffalse% Das ist eigentlich überholt!
+\ Ist das Paket \Package{french} nicht installiert, ergibt sich das Problem
+ mit \Package{babel} nicht. Ebenfalls existiert das Problem normalerweise
+ nicht, wenn man bei \Package{babel} anstelle der Sprache \PValue{french}
+ eine der Sprachen \PValue{acadian}, \PValue{canadien} oder \PValue{francais}
+ verwendet.
+\fi
+
+\iffalse% Das ist ebenfalls überholt!
+Mit Babel ab Version 3.7j tritt dieses Problem jedoch nur noch auf, wenn per
+Option explizit angegeben wird, dass \Package{babel} das
+\Package{french}-Paket verwenden soll.
+%
+\iftrue
+ % Umbruchoptimierungspassage
+ Kann nicht sicher gestellt werden, dass nicht eine alte Version von
+ \Package{babel} verwendet wird, so empfehle ich%
+ \iftrue
+ , mit
+\begin{lstcode}
+ \usepackage[...,francais,...]{babel}
+\end{lstcode}
+ französische Sprache auszuwählen.
+ \iffalse %
+ Gegebenenfalls ist dann aber trotzdem mit
+ \Macro{selectlanguage}\PParameter{french} auf Französisch umzuschalten.%
+ \fi%
+ \else %
+ \space bei \Package{babel} die Option \Option{frenchb}.%
+ \fi
+\fi
+\fi
+
+\iftrue
+ %\enlargethispage*{\baselineskip}%
+ Es ist nicht auszuschließen, dass mit anderen Sprachen und Paketen ähnliche
+ Probleme auf"|treten.
+% \iffalse
+ \iftrue
+ Für Deutsch sind solche Probleme jedoch nicht bekannt und treten weder
+ mit den Paketen \Package{german}\IndexPackage{german} oder
+ \Package{ngerman}\IndexPackage{ngerman} noch mit \Package{babel} auf.
+ \else
+ Für Deutsch treten solche Probleme mit den Paketen
+ \Package{german}\IndexPackage{german},
+ \Package{ngerman}\IndexPackage{ngerman} oder \Package{babel} jedoch nicht
+ auf.
+ \fi
+% \fi
+\fi
+
+% Hinweis: Der folgende Block kann je nach Umbruch vor oder nach
+% \captions... und \date... (aber bitte nicht dazwischen) stehen.
+\begin{Declaration}
+ \Macro{yourrefname}
+ \Macro{yourmailname}
+ \Macro{myrefname}
+ \Macro{customername}
+ \Macro{invoicename}
+ \Macro{subjectname}
+ \Macro{ccname}
+ \Macro{enclname}
+ \Macro{headtoname}
+ \Macro{headfromname}
+ \Macro{datename}
+ \Macro{pagename}
+ \Macro{mobilephonename}
+ \Macro{phonename}
+ \Macro{faxname}
+ \Macro{emailname}
+ \Macro{wwwname}
+ \Macro{bankname}
+\end{Declaration}
+Die aufgeführten Anweisungen enthalten die jeweiligen sprachtypischen
+Begriffe. Diese\important[i]{%
+ \DescRef{scrbase.cmd.newcaptionname}\\
+ \DescRef{scrbase.cmd.renewcaptionname}\\
+ \DescRef{scrbase.cmd.providecaptionname}} können für die Realisierung einer
+weiteren Sprache oder aber auch zur eigenen freien Gestaltung wie in
+\autoref{sec:scrbase.languageSupport} erklärt angepasst werden. Von
+\KOMAScript{} werden die Begriffe erst nach der Präambel, also bei
+\Macro{begin}\PParameter{document} gesetzt. Sie sind daher vorher nicht
+verfügbar und können vorher auch nicht geändert werden. In
+\autoref{tab:scrlttr2-experts.languageTerms},
+\autopageref{tab:scrlttr2-experts.languageTerms} sind die Voreinstellungen
+für \Option{english} und \Option{ngerman} zu finden.%
+\EndIndexGroup
+%\iffree{}{\clearpage}% Siehe Kommentar zur Tabelle
+
+\begin{Declaration}
+ \Macro{captionsacadian}
+ \Macro{captionsamerican}
+ \Macro{captionsaustralien}
+ \Macro{captionsaustrian}
+ \Macro{captionsbritish}
+ \Macro{captionscanadian}
+ \Macro{captionscanadien}
+ \Macro{captionscroatian}
+ \Macro{captionsczech}
+ \Macro{captionsdutch}
+ \Macro{captionsenglish}
+ \Macro{captionsfinnish}
+ \Macro{captionsfrancais}
+ \Macro{captionsfrench}
+ \Macro{captionsgerman}
+ \Macro{captionsitalian}
+ \Macro{captionsnaustrian}
+ \Macro{captionsnewzealand}
+ \Macro{captionsngerman}
+ \Macro{captionsnorsk}
+ \Macro{captionsnswissgerman}
+ \Macro{captionspolish}
+ \Macro{captionsslovak}
+ \Macro{captionsspanish}
+ \Macro{captionsswedish}
+ \Macro{captionsswissgerman}
+ \Macro{captionsUKenglish}
+ \Macro{captionsUSenglish}
+\end{Declaration}
+Wird die Sprache eines Briefes gewechselt, so werden über diese
+Anweisungen die Begriffe aus \autoref{tab:scrlttr2-experts.languageTerms},
+\autopageref{tab:scrlttr2-experts.languageTerms} umdefiniert. Sollte das
+verwendete Sprachumschaltpaket dies nicht unterstützen, so können obige
+Anweisungen notfalls auch direkt verwendet werden.%
+%
+\begin{table}%
+ \begin{minipage}{\textwidth}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ %\caption
+ \begin{captionbeside}[{%
+ Voreinstellungen für die sprachabhängigen Begriffe%
+ }]{%
+ Voreinstellungen
+ für die sprachabhängigen Begriffe bei \iffalse Verwendung der \else
+ den \fi Sprachen
+ \Option{english} und \Option{ngerman} soweit nicht durch die Pakete
+ zur Sprachumschaltung bereits definiert%
+ \label{tab:scrlttr2-experts.languageTerms}%
+ }[l]
+ \begin{tabular}[t]{lll}
+ \toprule
+ Anweisung & \Option{english} & \Option{ngerman} \\
+ \midrule
+ \Macro{bankname} & Bank account & Bankverbindung \\
+ \Macro{ccname}\footnotemark[1] & cc & Kopien an \\
+ \Macro{customername} & Customer no. & Kundennummer \\
+ \Macro{datename} & Date & Datum \\
+ \Macro{emailname} & Email & E-Mail \\
+ \Macro{enclname}\footnotemark[1] & encl & Anlagen \\
+ \Macro{faxname} & Fax & Fax \\
+ \Macro{headfromname} & From & Von \\
+ \Macro{headtoname}\footnotemark[1] & To & An \\
+ \Macro{invoicename} & Invoice no. & Rechnungsnummer \\
+ \Macro{myrefname} & Our ref. & Unser Zeichen \\
+ \Macro{pagename}\footnotemark[1] & Page & Seite \\
+ \Macro{mobilephonename} & Mobile phone & Mobiltelefon \\
+ \Macro{phonename} & Phone & Telefon \\
+ \Macro{subjectname} & Subject & Betrifft \\
+ \Macro{wwwname} & Url & URL \\
+ \Macro{yourmailname} & Your letter of & Ihr Schreiben vom\\
+ \Macro{yourrefname} & Your ref. & Ihr Zeichen \\
+ \bottomrule
+ \end{tabular}
+ \deffootnote{1em}{1em}{1\ }% brutal aber effektiv
+ \footnotetext[1000]{Diese Begriffe werden normalerweise bereits von
+ Sprachpaketen wie \Package{babel} definiert und dann von
+ \KOMAScript{} nicht überschrieben. Abweichungen im Wortlaut sind
+ daher möglich und der Anleitung des verwendeten Sprachpakets zu
+ entnehmen.}
+ \end{captionbeside}
+ \end{minipage}
+\end{table}
+%
+\EndIndexGroup
+\iffree{}{\clearpage}% Umbruchkorrektur
+
+
+\begin{Declaration}
+ \Macro{dateacadian}
+ \Macro{dateamerican}
+ \Macro{dateaustralien}
+ \Macro{dateaustrian}
+ \Macro{datebritish}
+ \Macro{datecanadian}
+ \Macro{datecanadien}
+ \Macro{datecroatian}
+ \Macro{dateczech}
+ \Macro{datedutch}
+ \Macro{dateenglish}
+ \Macro{datefinnish}
+ \Macro{datefrancais}
+ \Macro{datefrench}
+ \Macro{dategerman}
+ \Macro{dateitalian}
+ \Macro{datenaustrian}
+ \Macro{datenewzealand}
+ \Macro{datengerman}
+ \Macro{datenorsk}
+ \Macro{datenswissgerman}
+ \Macro{datepolish}
+ \Macro{dateslovak}
+ \Macro{datespanish}
+ \Macro{dateswedish}
+ \Macro{dateswissgerman}
+ \Macro{dateUKenglish}
+ \Macro{dateUSenglish}
+\end{Declaration}
+Je nach verwendeter Sprache werden auch die Datumsangaben\Index{Datum} des
+nummerischen Datums (siehe Option \DescRef{scrlttr2.option.numericaldate} in
+\autoref{sec:scrlttr2.firstpage}, \DescPageRef{scrlttr2.option.numericaldate})
+in unterschiedlicher Form umgesetzt. Die genauen Angaben können
+\autoref{tab:date}, \autopageref{tab:date} entnommen werden.%
+\EndIndexGroup
+%
+\EndIndexGroup
+\iffree{}{\clearpage}% Umbruchkorrektur zwecks Ausgabe der Tabellen
+
+\begin{table}[!tp]% Umbruchoptimierung
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}{Sprachabhängige Ausgabeformate für das Datum}[l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Anweisung & Ausgabebeispiel \\
+ \midrule
+ \Macro{dateacadian} & 24.\,12.\,1993\\
+ \Macro{dateamerican} & 12/24/1993\\
+ \Macro{dateaustralien}& 24/12/1993\\
+ \Macro{dateaustrian} & 24.\,12.\,1993\\
+ \Macro{datebritish} & 24/12/1993\\
+ \Macro{datecanadian} & 1993/12/24\\
+ \Macro{datecanadien} & 1993/12/24\\
+ \Macro{datecroatian} & 24.\,12.\,1993.\\
+ \Macro{dateczech} & 24.\,12.\,1993\\
+ \Macro{datedutch} & 24.\,12.\,1993\\
+ \Macro{dateenglish} & 24/12/1993\\
+ \Macro{datefinnish } & 24.12.1993.\\
+ \Macro{datefrancais} & 24.\,12.\,1993\\
+ \Macro{datefrench} & 24.\,12.\,1993\\
+ \Macro{dategerman} & 24.\,12.\,1993\\
+ \Macro{dateitalian} & 24.\,12.\,1993\\
+ \Macro{datenaustrian} & 24.\,12.\,1993\\
+ \Macro{datenewzealand}& 24/12/1993\\
+ \Macro{datengerman} & 24.\,12.\,1993\\
+ \Macro{datenorsk} & 24.12.1993\\
+ \Macro{datenswissgerman} & 24.\,12.\,1993\\
+ \Macro{datepolish} & 24.\,12.\,1993\\
+ \Macro{dateslovak} & 24.\,12.\,1993\\
+ \Macro{datespanish} & 24.\,12.\,1993\\
+ \Macro{dateswedish} & 24/12 1993\\
+ \Macro{dateswissgerman} & 24.\,12.\,1993\\
+ \Macro{dateUKenglish} & 24/12/1993\\
+ \Macro{dateUSenglish} & 12/24/1993\\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:date}
+\end{table}
+%
+\section{Obsolete Anweisungen von \Class{scrlttr2}}
+\seclabel{obsolete}
+\BeginIndexGroup
+
+\LoadNonFree{scrlttr2-experts}{1}
+\EndIndexGroup
+%
+\iffalse% Es wird Zeit das komplett rauszuwerfen!
+\section{Von der obsoleten \Class{scrlettr} zur
+aktuellen \Class{scrlttr2}}
+\seclabel{fromscrlettr}
+\BeginIndexGroup
+\BeginIndex{Class}{scrlettr}
+
+Die\textnote{Achtung!} alte Briefklasse \Class{scrlettr} wurde mit Einführung
+von \Class{scrlttr2} (siehe \autoref{cha:scrlttr2}) 2002
+obsolet und ist auch nicht mehr Bestandteil von \KOMAScript{}. Wer die Klasse
+oder Informationen dazu dennoch benötigt, findet sie in
+\cite{package:koma-script-obsolete}.
+
+Um den Umstieg von der alten auf die neue Klasse zu erleichtern, existiert mit
+\Option{KOMAold} eine Kompatibilitätseinstellung. Grundsätzlich ist in der
+neuen Klasse die gesamte alte Funktionalität enthalten. Ohne \Option{KOMAold}
+ist jedoch die Benutzerschnittstelle eine andere und auch die Voreinstellungen
+stimmen nicht überein. Näheres dazu ist \autoref{sec:scrlttr2.lcoFile},
+\autoref{tab:lcoFiles} zu entnehmen.
+
+\LoadNonFree{scrlttr2-experts}{2}
+%
+\EndIndexGroup
+\fi
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "guide.tex"
+%%% End:
+
+% LocalWords: Pseudolänge Pseudolängen Rücksendeadresse Faltmarke Briefseite
+% LocalWords: Sternvariante Geschäftszeile Testfeld Kopfbereich Vergleichsmaß
+% LocalWords: Dokumenterstellungsprozess Fußbereich Anschriftfenster Falt
+% LocalWords: Absenderergänzung Kundennummer Rechnungsnummer Falzmarken
+% LocalWords: Sprachumschaltpaketen Standardbriefklasse Seitenstilen
+% LocalWords: Paginierung Paginierungen Papiergröße Anschriftfeldes
+% LocalWords: Versandart Anschriftfensters Anschriftfeld Briefköpfe
+% LocalWords: Variableninhalt Schlussgruß Briefbogenfuß
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrlttr2.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlttr2.tex
new file mode 100644
index 0000000000..aa710572be
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlttr2.tex
@@ -0,0 +1,3768 @@
+% ======================================================================
+% scrlttr2.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrlttr2.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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 scrlttr2 of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel über scrlttr2 in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrlttr2.tex}%
+ [$Date: 2018-04-26 14:55:38 +0200 (Thu, 26 Apr 2018) $
+ KOMA-Script guide (chapter: scrlttr2)]
+
+\chapter{Briefe mit Klasse \Class{scrlttr2} oder Paket \Package{scrletter}}
+\labelbase{scrlttr2}
+
+\BeginIndexGroup
+\BeginIndex{Class}{scrlttr2}\BeginIndex{Package}{scrletter}%
+\BeginIndex{}{Briefe}%
+Briefe sind in vielerlei Hinsicht etwas ganz anderes als Artikel, Berichte,
+Bücher oder Ähnliches. Schon allein deshalb gibt es für Briefe ein eigenes
+Kapitel. Aber auch aus weiteren Gründen ist ein eigenes Kapitel für
+\Class{scrlttr2} und \Package{scrletter} gerechtfertigt.
+
+Die Klasse \Class{scrlttr2}\important{\Class{scrlttr2}} wurde 2002 von Grund
+auf neu entwickelt. Sie hat daher auch ein komplett anderes Bedienkonzept als
+alle übrigen mir bekannten Klassen. Die neue Art der Bedienung ist
+möglicherweise etwas ungewohnt, bietet jedoch nicht nur dem geübten Anwender
+einige Vorteile.
+
+Das Paket \Package{scrletter}\important{\Package{scrletter}}%
+\ChangedAt{v3.15}{\Package{scrletter}} wiederum verstärkt \KOMAScript{} seit
+Version 3.15. Es stellt die gesamte auf Briefe ausgelegte Funktionalität von
+\Class{scrlttr2} auch für andere Klassen bereit. Empfohlen wird die Verwendung
+mit einer der \KOMAScript-Klassen \Class{scrbook}, \Class{scrreprt} oder
+\Class{scrartcl}, die im vorherigen Kapitel erklärt sind. Mit geringfügigen
+Einschränkungen funktioniert \Package{scrletter} aber auch mit den
+Standardklassen.
+
+Ausgangspunkt für die Entwicklung von \Package{scrletter} waren einerseits
+Nachfragen von Anwendern, die Elemente wie
+Gliederungsüberschriften,\textnote{Überschriften, Gleitumgebungen,
+ Verzeichnisse} Gleitumgebungen oder ein Literaturverzeichnis auch in Briefen
+haben wollten. Umgekehrt gab es auch Wünsche nach der Verwendung der Variablen
+von \Class{scrlttr2} in den übrigen \KOMAScript-Klassen. Beides ist durch eine
+Kombination der gewünschten \KOMAScript-Klasse mit \Package{scrletter}
+möglich.
+
+Gegenüber der Briefklasse hat das Briefpaket einige, kleine Änderungen, die
+notwendig waren, um Konflikte mit den anderen Klassen zu vermeiden. Diese
+betreffen vor allem die Seitenstile und sind explizit dokumentiert (siehe
+\autoref{sec:\LabelBase.pagestyle}, ab
+\autopageref{sec:\LabelBase.pagestyle}). Wo \Package{scrletter} nicht explizit
+erwähnt ist, gilt dafür alles, was für \Class{scrlttr2} dokumentiert ist, ohne
+Änderung.
+
+
+\section{Variablen}
+\seclabel{variables}%
+\BeginIndexGroup
+\BeginIndex{}{Variablen}%
+
+Neben Optionen, Anweisungen (oder Befehlen), Umgebungen, Zählern und Längen
+wurden in \autoref{cha:maincls} für \KOMAScript{} bereits zusätzlich Elemente
+eingeführt. Eine typische Eigenschaft eines Elements ist seine Schriftart und
+die Möglichkeit, diese zu ändern (siehe \autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}). An dieser Stelle werden nun
+zusätzlich Variablen eingeführt. Variablen haben einen
+Namen\Index{Variablen>Name}\textnote{Namen}, über den sie angesprochen werden,
+und einen Inhalt\Index{Variablen>Inhalt}\textnote{Inhalt}. Der Inhalt einer
+Variablen kann zeitlich bzw. räumlich getrennt von ihrer Verwendung gesetzt
+werden, so wie der Inhalt einer Anweisung getrennt von ihrer Ausführung
+definiert werden kann. Ein Hauptunterschied einer Variablen zu einer Anweisung
+besteht darin, dass eine Anweisung normalerweise eine Aktion auslöst, während
+der Inhalt einer Variablen normalerweise aus einem Text besteht, der dann von
+einer Anweisung ausgegeben wird. Außerdem kann eine Variable zusätzlich eine
+Bezeichnung\Index{Variablen>Bezeichnung}\textnote{Bezeichnung} besitzen, die
+ebenfalls gesetzt und ausgegeben werden kann.
+
+Dieser Abschnitt beschränkt sich bewusst auf die Einführung des Begriffs der
+Variablen. Die zur Verdeutlichung verwendeten Beispiele sind ohne tiefere
+Bedeutung. Konkretere Anwendungsbeispiele gibt es bei der Erläuterung der in
+der Klasse und Paket bereits definierten und von ihnen verwendeten Variablen in
+den nachfolgenden Abschnitten. \autoref{tab:\LabelBase.variables} gibt eine
+Übersicht über alle definierten Variablen.
+%
+\begin{desclist}
+ \desccaption{Von \Class{scrlttr2} und \Package{scrletter} unterstützte
+ Variablen\label{tab:\LabelBase.variables}}%
+ {Von \Class{scrlttr2} und \Package{scrletter} unterstützte Variablen
+ (\emph{Fortsetzung})}%
+ \ventry{addresseeimage}{Anweisungen, die zum Setzen
+ des Port-Payé-Kopfes bei der Einstellung
+ \OptionValueRef{\LabelBase}{addrfield}{backgroundimage} oder der
+ Port-Payé-Anschrift bei der Einstellung
+ \OptionValueRef{\LabelBase}{addrfield}{image}, verwendet werden
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.addresseeimage})}%
+ \ventry{backaddress}{Rücksendeadresse für Fensterbriefumschläge
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.backaddress})}%
+ \ventry{backaddressseparator}{Trennzeichen innerhalb der Rücksendeadresse
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.backaddressseparator})}%
+ \ventry{ccseparator}{Trennzeichen zwischen Verteilertitel und Verteiler
+ (\autoref{sec:\LabelBase.document},
+ \DescPageRef{\LabelBase.variable.ccseparator})}%
+ \ventry{customer}{Geschäftszeilenfeld »Kundennummer«
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.customer})}%
+ \ventry{date}{Datum (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.date})}%
+ \ventry{emailseparator}{Trennzeichen zwischen E-Mail-Bezeichnung und
+ E-Mail-Adresse (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.emailseparator})}%
+ \ventry{enclseparator}{Trennzeichen zwischen Anlagetitel und Anlagen
+ (\autoref{sec:\LabelBase.document},
+ \DescPageRef{\LabelBase.variable.enclseparator})}%
+ \ventry{faxseparator}{Trennzeichen zwischen Faxbezeichner und Faxnummer
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.faxseparator})}%
+ \ventry{firstfoot}{%
+ Seitenfuß\ChangedAt{v3.08}{\Class{scrlttr2}} des Briefbogens
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.firstfoot})}%
+ \ventry{firsthead}{%
+ Kopf\ChangedAt{v3.08}{\Class{scrlttr2}} des Briefbogens
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.firsthead})}%
+ \ventry{fromaddress}{Absenderadresse ohne Absendername
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromaddress})}%
+ \ventry{frombank}{Bankverbindung des Absenders
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.frombank})}%
+ \ventry{fromemail}{E-Mail-Adresse des Absenders
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromemail})}%
+ \ventry{fromfax}{Faxnummer des Absenders
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromfax})}%
+ \ventry{fromlogo}{Anweisungen zum Setzen des Absenderlogos
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromlogo})}%
+ \ventry{frommobilephone}{%
+ \ChangedAt{v3.12}{\Class{scrlttr2}}%
+ Handynummer des Absenders (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.frommobilephone})}%
+ \ventry{fromname}{vollständiger Absendername
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromname})}%
+ \ventry{fromphone}{Telefonnummer des Absenders
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromphone})}%
+ \ventry{fromurl}{eine URL des Absenders (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromurl})}%
+ \ventry{fromzipcode}{Postleitzahl des Absenders für den Port-Payé-Kopf bei
+ \OptionValueRef{\LabelBase}{addrfield}{PP}
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromzipcode})}%
+ \ventry{invoice}{Geschäftszeilenfeld »Rechnungsnummer«
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.invoice})}%
+ \ventry{location}{erweiterte Absenderangabe
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.location})}%
+ \ventry{mobilephoneseparator}{Trennzeichen zwischen Handybezeichner und
+ Handynummer (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.mobilephoneseparator})}%
+ \ventry{myref}{Geschäftszeilenfeld »Mein Zeichen«
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.myref})}%
+ \ventry{nextfoot}{Seitenfuß\ChangedAt{v3.08}{\Class{scrlttr2}} im Seitenstil
+ \PageStyle{headings}\IndexPagestyle{headings} oder
+ \PageStyle{myheadings}\IndexPagestyle{myheadings}
+ (\autoref{sec:\LabelBase.pagestyle},
+ \DescPageRef{\LabelBase.variable.nextfoot})}%
+ \ventry{nexthead}{Kopf\ChangedAt{v3.08}{\Class{scrlttr2}} im Seitenstil
+ \PageStyle{headings}\IndexPagestyle{headings} oder
+ \PageStyle{myheadings}\IndexPagestyle{myheadings}
+ (\autoref{sec:\LabelBase.pagestyle},
+ \DescPageRef{\LabelBase.variable.nexthead})}%
+ \ventry{phoneseparator}{Trennzeichen zwischen Telefonbezeichner und
+ Telefonnummer (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.phoneseparator})}%
+ \ventry{place}{Ort (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.place})}%
+ \ventry{placeseparator}{Trennzeichen zwischen Ort und Datum
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.placeseparator})}%
+ \ventry{PPdatamatrix}{Anweisungen zum Setzen einer Data-Matrix bei der
+ Einstellung \OptionValueRef{\LabelBase}{addrfield}{PP}
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.PPdatamatrix})}%
+ \ventry{PPcode}{Code zur Identifizierung des Absenders bei Einstellung
+ \OptionValueRef{\LabelBase}{addrfield}{PP}
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.PPcode})}%
+ \ventry{signature}{Signatur unter Unterschrift und Grußformel
+ (\autoref{sec:\LabelBase.closing},
+ \DescPageRef{\LabelBase.variable.signature})}%
+ \ventry{specialmail}{Versandart (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.specialmail})}%
+ \ventry{subject}{Betreff (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.subject})}%
+ \ventry{subjectseparator}{Trennzeichen zwischen Betreff"|titel und Betreff
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.subjectseparator})}%
+ \ventry{title}{Brief"|titel (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.title})}%
+ \ventry{toaddress}{Empfängeradresse ohne Empfängername
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.toaddress})}%
+ \ventry{toname}{vollständiger Empfängername
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.toname})}%
+ \ventry{yourmail}{Geschäftszeilenfeld »Ihr Schreiben«
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.yourmail})}%
+ \ventry{yourref}{Geschäftszeilenfeld »Ihr Zeichen«
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.yourref})}%
+ \ventry{zipcodeseparator}{Trennzeichen zwischen der Bezeichnung und dem
+ Inhalt der Variablen \DescRef{\LabelBase.variable.fromzipcode}
+ (\autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.zipcodeseparator})}%
+\end{desclist}
+
+
+\begin{Declaration}
+ \Macro{setkomavar}
+ \Parameter{Name}\OParameter{Bezeichnung}\Parameter{Inhalt}
+ \Macro{setkomavar*}\Parameter{Name}\Parameter{Bezeichnung}
+\end{Declaration}
+Mit der Anweisung \Macro{setkomavar} wird der \PName{Inhalt} der Variablen
+\PName{Name} gesetzt. Dabei kann per optionalem Argument gleichzeitig auch die
+\PName{Bezeichnung} der Variablen geändert werden. Demgegenüber kann mit der
+Sternvariante \Macro{setkomavar*} auch nur die \PName{Bezeichnung} der
+Variablen \PName{Name} gesetzt werden.
+\begin{Example}
+ In Briefen ist es üblich, den Absender im Briefkopf stehen zu haben. Dazu
+ muss \KOMAScript{} den Absender aber erst einmal mit Namen kennen. Für
+ »Peter Musterfrau« ginge das einfach mit:
+\begin{lstcode}
+ \setkomavar{fromname}{Peter Musterfrau}
+\end{lstcode}
+ Die voreingestellte Bezeichnung für den Namen des Absenders ist
+ »Von«. Angenommen, Herr Musterfrau will aber an den Stellen, an denen
+ \KOMAScript{} diese Bezeichnung verwendet, lieber »Absender« haben, so
+ müsste er zusätzlich
+\begin{lstcode}
+ \setkomavar*{fromname}{Absender}
+\end{lstcode}
+ setzen oder aber die beiden Angaben zu einer Anweisung zusammenfassen:
+\begin{lstcode}
+ \setkomavar{fromname}[Absender]{Peter Musterfrau}
+\end{lstcode}
+ Damit schlägt er sozusagen zwei Fliegen mit einer Klappe.
+\end{Example}
+Übrigens kann mit einem leeren obligatorischen Argument \PName{Inhalt}
+der Inhalt der Variable gelöscht werden. Selbstverständlich kann in
+gleicher Weise mit einem leeren Argument \PName{Bezeichnung} auch die
+Bezeichnung der Variablen gelöscht werden.
+\begin{Example}
+ Angenommen, Herr Musterfrau will gar keine Bezeichnung für den Namen des
+ Absenders haben. Dann könnte er diese entweder für sich mit:
+\begin{lstcode}
+ \setkomavar*{fromname}{}
+\end{lstcode}
+ löschen. Er könnte aber auch wieder zwei Fliegen mit einer Klappe
+ schlagen und
+\begin{lstcode}
+ \setkomavar{fromname}[]{Peter Musterfrau}
+\end{lstcode}
+ verwenden. Dadurch wird gleichzeitig der Inhalt der Variablen gesetzt und
+ ihre Bezeichnung gelöscht.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{usekomavar}\OParameter{Anweisung}\Parameter{Name}
+ \Macro{usekomavar*}\OParameter{Anweisung}\Parameter{Name}
+\end{Declaration}
+In\ChangedAt{v2.9i}{\Class{scrlttr2}} manchen Fällen wird es notwendig sein,
+selbst auf den Inhalt oder die Bezeichnung einer Variablen zuzugreifen, dies
+also nicht allein der Klasse zu überlassen. Das gilt insbesondere dann, wenn
+Sie eigene Variablen definiert haben, die nicht zur Geschäftszeile
+hinzugefügt werden. Mit der Anweisung \Macro{usekomavar} können Sie auf den
+Inhalt der Variablen \PName{Name} zugreifen, während Sie mit der Sternvariante
+\Macro{usekomavar*} ihre Bezeichnung erhalten. Näheres zur Definition eigener
+Variablen ist \autoref{sec:scrlttr2-experts.variables},
+\DescPageRef{scrlttr2-experts.cmd.newkomavar} zu entnehmen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifkomavar}\Parameter{Name}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Mit\ChangedAt{v3.03}{\Class{scrlttr2}} dieser Anweisung kann man feststellen,
+ob eine Variable definiert ist. Der \PName{Dann-Teil} wird nur dann
+ausgeführt, wenn die Variable existiert. Dabei wird der Inhalt der Variablen
+nicht getestet, kann also auch leer sein. Der \PName{Sonst-Teil} wird hingegen
+ausgeführt, wenn die Variable nicht existiert. Solche Tests können
+beispielsweise dann sinnvoll sein, wenn eigene Variablen in einer
+\File{lco}-Datei\Index{lco-Datei=\File{lco}-Datei} (siehe
+\autoref{sec:\LabelBase.lcoFile} ab \autopageref{sec:\LabelBase.lcoFile})
+definiert werden und in einer anderen \File{lco}-Datei diese Variable nur dann
+verwendet werden soll, wenn sie existiert.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ifkomavarempty}
+ \Parameter{Name}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+ \Macro{ifkomavarempty*}
+ \Parameter{Name}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Mit\ChangedAt{v2.9i}{\Class{scrlttr2}} Hilfe dieser Anweisungen kann man
+feststellen, ob der Inhalt oder die Bezeichnung einer Variablen leer
+ist oder nicht. Der \PName{Dann-Teil} wird nur dann ausgeführt,
+wenn der expandierte Inhalt oder die expandierte Bezeichnung der
+Variablen \PName{Name} leer ist. Anderenfalls wird der
+\PName{Sonst-Teil} ausgeführt. Die Sternvariante der Anweisung
+bezieht sich dabei auf die Bezeichnung der Variablen, während die
+normale Variante den Inhalt behandelt.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Pseudolängen}
+\seclabel{pseudoLength}
+\BeginIndexGroup
+\BeginIndex{}{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},
+\autopageref{tab:scrlttr2-experts.pseudoLengths}. Eine grafische Darstellung
+der Bedeutungen der wichtigsten Pseudolängen des Briefbogens ist
+\autoref{fig:scrlttr2-experts.pseudoLengths},
+\autopageref{fig:scrlttr2-experts.pseudoLengths} zu entnehmen. Die verwendeten
+Maße sind dabei an die Voreinstellungen von \Class{scrlttr2} angelehnt. Nähere
+Beschreibungen zu den einzelnen Pseudolängen finden sich in den einzelnen
+Abschnitten dieses Kapitels.
+
+Da der Anwender normalerweise keine eigenen Pseudolängen definieren muss, wird
+dieser Teil nicht hier, sondern im Expertenteil in
+\autoref{sec:scrlttr2-experts.pseudoLengths},
+\DescPageRef{scrlttr2-experts.cmd.newplength} behandelt. Ebenso ist das
+Setzen von Pseudolängen eher dem fortgeschrittenen Anwender vorbehalten. Also
+wird auch dies im Abschnitt für Experten ab
+\DescPageRef{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}
+\end{Declaration}
+Mit Hilfe dieser Anweisung wird auf den Wert der Pseudolänge mit dem
+angegebenen \PName{Namen} zugegriffen. Dies ist eine der wenigen
+Benutzeranweisung rund um Pseudolängen. Natürlich kann diese Anweisung dennoch
+auch innerhalb einer \File{lco}-Datei\Index{lco-Datei=\File{lco}-Datei} (siehe
+\autoref{sec:\LabelBase.lcoFile} ab \autopageref{sec:\LabelBase.lcoFile})
+verwendet werden.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setlengthtoplength}
+ \OParameter{Faktor}\Parameter{Länge}\Parameter{Pseudolänge}
+ \Macro{addtolengthplength}
+ \OParameter{Faktor}\Parameter{Länge}\Parameter{Pseudolänge}
+\end{Declaration}
+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.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\LoadCommonFile{options} % \section{Frühe oder späte Optionenwahl}
+
+\LoadCommonFile{compatibility} % \section{Kompatibilität zu früheren Versionen von \KOMAScript}
+
+%\iffree{}{\vfill}% Umbruchoptimierung!
+
+\LoadCommonFile{draftmode} % \section{Entwurfsmodus}
+
+\LoadCommonFile{typearea} % \section{Seitenauf"|teilung}
+
+Die Unterscheidung zwischen ein- und doppelseitigem Satz ist bei Briefen
+jedoch in der Regel nicht sinnvoll. Da Briefe normalerweise nicht gebunden
+werden, betrachtet man bei Briefen jede Seite für sich. Das gilt auch dann,
+wenn ausnahmsweise Vorder- oder Rückseite bedruckt werden. Daher spielt bei
+Briefen normalerweise auch der vertikale Ausgleich keine Rolle. Sollten Sie
+diesen trotzdem benötigen
+\iffalse%
+% Umbruchkorrekturtext
+oder wissen wollen, was das ist, %
+\fi%
+sei auf die in \autoref{sec:maincls.typearea},
+\DescPageRef{maincls.cmd.flushbottom} erklärten Anweisungen
+\DescRef{maincls.cmd.raggedbottom} und \DescRef{maincls.cmd.flushbottom}
+verwiesen.%
+%
+\EndIndexGroup
+
+
+\section{Genereller Aufbau eines Briefdokuments}
+\seclabel{document}
+\BeginIndexGroup
+\BeginIndex{}{Briefe>Aufbau}
+
+Der generelle Aufbau eines Briefdokuments weicht etwas vom Aufbau eines
+normalen Dokuments ab. Während ein Buchdokument normalerweise nur ein Buch
+enthält, kann ein einzelnes Briefdokument mehrere Briefe enthalten. Wie in
+\autoref{fig:\LabelBase.document} veranschaulicht wird, besteht ein
+Briefdokument aus einem Vorspann, den einzelnen Briefen und dem Abschluss.
+
+\begin{figure}
+ \KOMAoptions{captions=bottombeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Genereller Aufbau eines Briefdokuments mit beliebig
+ vielen einzelnen Briefen}]{%
+ Genereller Aufbau eines Briefdokuments mit
+ beliebig vielen einzelnen Briefen (den Aufbau eines einzelnen
+ Briefs zeigt \autoref{fig:\LabelBase.letter})%
+ \label{fig:\LabelBase.document}}[l]
+ \begin{minipage}[b]{.667\linewidth}
+ \centering\small\setlength{\fboxsep}{1.5ex}%
+ \addtolength{\linewidth}{-\dimexpr2\fboxrule+2\fboxsep\relax}%
+ \fbox{\parbox{\linewidth}{\raggedright%
+ \Macro{documentclass}\OParameter{\dots}\PParameter{scrlttr2}\\
+ \dots\\
+ {\centering\emph{Einstellungen für alle Briefe}\\}
+ \dots\\
+ \Macro{begin}\PParameter{document}\\
+ \dots\\
+ {\centering\emph{Einstellungen für alle Briefe}\\}
+ \dots\\
+ }}\\
+ \fbox{\parbox{\linewidth}{\raggedright%
+ \Macro{begin}\PParameter{letter}\Parameter{Empfänger}\\
+ \dots\\
+ {\centering\emph{Inhalt eines einzelnen Briefes}\\}
+ \dots\\
+ \Macro{end}\PParameter{letter}\\
+ }}\\[2pt]
+ \parbox{\linewidth}{\raggedright\vspace{-.5ex}\vdots\vspace{1ex}}\\
+ \fbox{\parbox{\linewidth}{\raggedright%
+ \Macro{end}\PParameter{document}\\
+ }}\\[\dimexpr\fboxsep+\fboxrule\relax]
+ \end{minipage}
+ \end{captionbeside}
+\end{figure}
+
+Der Vorspann beinhaltet dabei alle Einstellungen, die generell alle Briefe
+betreffen. Diese können in den Einstellungen der einzelnen Briefe jedoch
+zumindest teilweise überschrieben werden. Die einzige Einstellung, die derzeit
+nicht innerhalb eines einzelnen Briefes überschrieben werden kann, ist die
+Version von \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}}, zu der Kompatibilität
+erreicht werden soll (siehe Option \DescRef{\LabelBase.option.version} in
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}).
+
+Bei Verwendung von \Package{scrletter}\important{scrletter} ändert sich
+lediglich, dass eine andere Klasse geladen und dafür zusätzlich
+\DescRef{\LabelBase.cmd.usepackage}\PParameter{scrletter} noch vor den
+Einstellungen für alle Briefe einzufügen ist. Für das Setzen von Optionen für
+\Package{scrletter} sei auf \autoref{sec:\LabelBase.options}, ab
+\autopageref{sec:\LabelBase.options} verwiesen.
+
+Ich empfehle, vor \Macro{begin}\PParameter{document} nur allgemeine
+Einstellungen wie das Laden von Paketen und das Setzen von Optionen
+vorzunehmen. Alle Einstellungen, die das Setzen einer Variablen oder sonstige
+Textangaben beinhalten, sollten nach \Macro{begin}\PParameter{document}
+vorgenommen werden. Dies empfiehlt\textnote{Tipp!} sich umso mehr, wenn das
+Babel-Paket\IndexPackage{babel} (siehe \cite{package:babel}) verwendet wird
+oder sprachabhängige Variablen von \Class{scrlttr2} oder \Package{scrletter}
+verändert werden sollen.
+
+Der Abschluss besteht in der Regel nur aus
+\Macro{end}\PParameter{document}. Natürlich können Sie dort aber auch
+zusätzliche Kommentare einfügen.
+
+\begin{figure}
+ \KOMAoptions{captions=bottombeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Genereller Aufbau eines einzelnen Briefes innerhalb
+ eines Briefdokuments}]{Genereller Aufbau eines einzelnen Briefes
+ innerhalb eines Briefdokuments (siehe
+ \autoref{fig:\LabelBase.document})%
+ \label{fig:\LabelBase.letter}}[l]
+ \begin{minipage}[b]{.667\linewidth}%
+ \centering\small\setlength{\fboxsep}{1.5ex}%
+ \addtolength{\linewidth}{-\dimexpr2\fboxrule+2\fboxsep\relax}%
+ \fbox{\parbox{\linewidth}{\raggedright%
+ \Macro{begin}\PParameter{letter}%
+ \OParameter{Optionen}\Parameter{Empfänger}\\
+ \dots\\[\dp\strutbox]
+ {\centering\emph{Einstellungen für diesen Brief}\\}
+ \dots\\
+ \DescRef{\LabelBase.cmd.opening}\Parameter{Anrede}\\
+ }}\\[1pt]
+ \fbox{\parbox{\linewidth}{\raggedright%
+ \dots\\[\dp\strutbox]
+ {\centering\emph{Brief"|text}\\}
+ \dots\\
+ }}\\[1pt]
+ \fbox{\parbox{\linewidth}{\raggedright%
+ \DescRef{\LabelBase.cmd.closing}\Parameter{Grußformel}\\
+ \DescRef{\LabelBase.cmd.ps}\\
+ \dots\\[\dp\strutbox]
+ {\centering\emph{Postscriptum}\\}
+ \dots\\
+ \DescRef{\LabelBase.cmd.encl}\Parameter{Anlagen}\\
+ \DescRef{\LabelBase.cmd.cc}\Parameter{Verteiler}\\
+ \Macro{end}\PParameter{letter}\\
+ }}\\[\dimexpr\fboxsep+\fboxrule\relax]
+ \end{minipage}
+ \end{captionbeside}
+\end{figure}
+
+Wie in \autoref{fig:\LabelBase.letter} verdeutlicht wird, bestehen die
+einzelnen Briefe wiederum aus einer Einleitung, dem eigentlichen Brief"|text
+und einem Schlussteil. In der Einleitung werden alle Einstellungen
+vorgenommen, die nur für diesen einen Brief gelten sollen. Entscheidend ist
+hierbei, dass diese Einleitung immer mit
+\DescRef{\LabelBase.cmd.opening}\IndexCmd{opening} endet. Ebenso beginnt der
+Schlussteil immer mit
+\DescRef{\LabelBase.cmd.closing}\IndexCmd{closing}. Gegebenenfalls können die
+Argumente \PName{Anrede} und \PName{Grußformel} der beiden Anweisungen leer
+bleiben, die Anweisungen müssen jedoch gesetzt werden und haben immer ein
+Argument.
+
+Es soll an dieser Stelle nicht verschwiegen werden, dass zwischen den
+einzelnen Briefen weitere Einstellungen getroffen werden können. Diese
+gelten dann für alle nachfolgenden Briefe. Um Briefdokumente
+übersichtlich und wartbar zu halten, sollte man sich jedoch gut
+überlegen, ob man zwischen die Briefe tatsächlich weitere generelle
+Einstellungen mit beschränkter Gültigkeit setzen will. Ich kann dies
+nicht empfehlen%
+\iffalse
+% Umbruchergänzungstext
+, da die Suche nach Einstellungen dadurch erschwert wird%
+\fi
+%
+. Dagegen spricht bei Verwendung von \Package{scrletter2} nichts dagegen, vor,
+zwischen oder nach Briefen weitere Dokumentteile einzufügen, die nicht im
+Briefkontext stehen sollen. So kann man beispielsweise Anschreiben und
+Lebenslauf in einem Dokument zusammenfassen.
+
+\begin{Declaration}
+ \begin{Environment}{letter}\OParameter{Optionen}\Parameter{Empfänger}
+ \end{Environment}
+\end{Declaration}
+\BeginIndex{}{Anschrift}%
+Die Briefumgebung \Environment{letter} ist einer der zentralen Dreh- und
+Angelpunkte der Briefklasse und des Briefpakets. Als
+Besonderheit\textnote{\KOMAScript{} vs. Standardklassen} kann man bei
+\Class{scrlttr2} und \Package{scrletter} der Briefumgebung zusätzliche
+\PName{Optionen} mit auf den Weg geben. Diese werden dann intern per
+\DescRef{\LabelBase.cmd.KOMAoptions}-Anweisung ausgeführt.
+
+Der \PName{Empfänger} wird als obligatorischer Parameter an die Umgebung
+übergeben. Dabei\textnote{Achtung!} dient der doppelte Backslash als
+Trennzeichen zwischen einzelnen Teilen der Anschrift. Diese einzelnen Teile
+werden im Anschriftfeld als einzelne Zeilen ausgegeben. Dennoch sollte der
+doppelte Backslash hier nicht als fester Zeilenumbruch verstanden
+werden. Absätze, vertikaler Leerraum und Ähnliches sind in der Anschrift nicht
+erlaubt. Sie können zu unerwarteten Effekten und Fehlermeldungen führen. Dies
+ist übrigens bei der Standardbriefklasse genauso.
+
+\begin{Example}
+ \phantomsection\label{desc:\LabelBase.env.letter.example}%
+ Angenommen, jemand wollte einen Brief an Petra Mustermann schreiben.
+ Ein minimalistisches Briefdokument dafür würde so aussehen:
+\begin{lstcode}
+ \documentclass[version=last]{scrlttr2}
+ \usepackage[ngerman]{babel}
+ \begin{document}
+ \begin{letter}{Petra Mustermann\\
+ Vor dem Berg 1\\
+ 12345 Musterhausen}
+ \end{letter}
+ \end{document}
+\end{lstcode}
+ Allerdings\textnote{Achtung!} würde dabei noch keinerlei Ausgabe
+ entstehen. Es würde noch nicht einmal die Anschrift auf dem Briefbogen
+ ausgegeben. Warum das so ist, erfahren Sie bei der Erklärung zur Anweisung
+ \DescRef{\LabelBase.cmd.opening} auf \DescPageRef{\LabelBase.cmd.opening}.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AtBeginLetter}\Parameter{Anweisungen}
+ \Macro{AtEndLetter}\Parameter{Anweisungen}
+\end{Declaration}
+\iftrue% Umbruchvarianten
+Wie\textnote{Haken}\Index[indexmain]{Haken} in \cite{latex:clsguide} erwähnt,
+gibt es bei \LaTeX{} die Möglichkeit, zu bestimmten Gelegenheiten während des
+\LaTeX-Laufs eines Dokuments zusätzliche \PName{Anweisungen} ausführen zu
+lassen. Zu diesem Zweck stellt der \LaTeX-Kern beispielsweise die Anweisungen
+\Macro{AtEndOfClass}\IndexCmd{AtEndOfClass} und
+\Macro{AtBeginDocument}\IndexCmd{AtBeginDocument} zur Verfügung. Man nennt
+solche Eingriffspunkte auch \emph{hooks}\Index{hook=\emph{hook}}, also
+Haken. Die Klasse \Class{scrlttr2} und das Paket \Package{scrletter} fügen
+zwei weitere Haken hinzu, die mit \Macro{AtBeginLetter} und
+\Macro{AtEndLetter}\ChangedAt{v2.95}{\Class{scrlttr2}} mit Inhalt versehen
+werden können. Wie man schon daran erkennt, dass die \LaTeX-Kern-Anweisungen
+für Haken nicht in \cite{latex:usrguide} sondern in \cite{latex:clsguide}
+dokumentiert sind, sind diese Anweisungen eigentlich eher für Paket- und
+Klassenautoren gedacht. Bei der Briefklasse und dem Briefpaket kann es jedoch
+sinnvolle Anwendungen für die beiden neuen Haken auch auf Benutzerebene
+geben.\Index[indexmain]{Haken} Das folgende Beispiel zeigt dies.%
+%
+\begin{Example}
+ Angenommen, Sie haben mehrere Briefe in einem Dokument. Sie verwenden
+ außerdem eine eigene Anweisung, um in den Briefen einen Fragebogen
+ zu setzen. Dabei werden die Fragen automatisch mit Hilfe eines
+ Zählers nummeriert. Da \KOMAScript{} dieser Zähler nicht bekannt
+ ist, würde er auch im Gegensatz etwa zur Seitenzahl am Anfang eines
+ neuen Briefes nicht zurückgesetzt. Wenn jeder Brief zehn Fragen
+ beinhaltet, hätte damit die erste Frage im fünften Brief die Nummer
+ 41 statt der Nummer 1. Sie lösen das, indem Sie \KOMAScript{}
+ mitteilen, dass am Anfang jedes Briefes der Zähler zurückgesetzt
+ werden soll:
+\begin{lstcode}
+ \newcounter{Frage}
+ \newcommand{\Frage}[1]{%
+ \par
+ \refstepcounter{Frage}%
+ \noindent
+ \begin{tabularx}{\textwidth}{l@{}X}
+ \theFrage:~ & #1\\
+ \end{tabularx}%
+ }%
+ \AtBeginLetter{\setcounter{Frage}{0}}
+\end{lstcode}
+ Damit hat dann auch die erste Frage im 1001.~Brief wieder die Nummer
+ Eins. Die hier angegebene Definition benötigt übrigens das
+ \Package{tabularx}-Paket\IndexPackage{tabularx} (siehe
+ \cite{package:tabularx}).
+\end{Example}
+\else%
+ Wie\Index[indexmain]{Haken} in \cite{latex:clsguide} erwähnt, gibt es bei
+ \LaTeX{} die Möglichkeit, während des \LaTeX-Laufs eines Dokuments zusätzliche
+ \PName{Anweisungen} ausführen zu lassen. Zu diesem Zweck stellt der
+ \LaTeX-Kern die Anweisungen \Macro{AtEndOfClass}\IndexCmd{AtEndOfClass} und
+ \Macro{AtBeginDocument}\IndexCmd{AtBeginDocument} zur Verfügung. Man nennt
+ solche Eingriffspunkte auch \emph{hooks}\Index{hook=\emph{hook}}, also
+ Haken. \KOMAScript{} fügt zwei weitere Haken hinzu, die mit
+ \Macro{AtBeginLetter} und
+ \Macro{AtEndLetter}\ChangedAt{v2.95}{\Class{scrlttr2}} mit Inhalt versehen
+ werden können. Wie man schon daran erkennt, dass die \LaTeX-Kern-Anweisungen
+ für Haken nicht in \cite{latex:usrguide} sondern in \cite{latex:clsguide}
+ dokumentiert sind, sind diese Anweisungen eigentlich eher für Paket- und
+ Klassenautoren gedacht. Bei Briefen kann es jedoch sinnvolle Anwendungen für
+ die beiden neuen Haken auch auf Benutzerebene geben.\Index[indexmain]{Haken}%
+ %
+ \begin{Example}
+ Angenommen, Sie haben mehrere Briefe in einem Dokument und verwenden
+ eine eigene Anweisung, um in den Briefen einen Fragebogen
+ zu setzen. Die Fragen werden mit Hilfe eines
+ Zählers nummeriert. Da \KOMAScript{} diesen Zähler nicht kennt,
+ würde er auch im Gegensatz zur Seitenzahl am Anfang eines
+ neuen Briefes nicht zurückgesetzt. Bei 10 Fragen je Brief, hätte damit die
+ erste Frage im fünften Brief die Nummer 41 statt der Nummer 1. Sie lösen
+ das, indem Sie am Anfang jedes Briefes den Zähler zurücksetzen lassen:
+\begin{lstcode}
+ \newcounter{Frage}
+ \newcommand{\Frage}[1]{%
+ \refstepcounter{Frage}\par
+ \noindent\begin{tabularx}{\textwidth}{l@{}X}
+ \theFrage:~ & #1\\
+ \end{tabularx}%
+ }%
+ \AtBeginLetter{\setcounter{Frage}{0}}
+\end{lstcode}
+ Damit hat dann auch die erste Frage im 1001.~Brief wieder die Nummer
+ Eins. Die hier angegebene Definition benötigt übrigens das
+ \Package{tabularx}-Paket\IndexPackage{tabularx} (siehe
+ \cite{package:tabularx}).
+ \end{Example}%
+\fi
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Counter{letter}
+ \Macro{thisletter}
+ \Macro{letterlastpage}
+\end{Declaration}
+Für\ChangedAt{v3.19}{\Class{scrlttr2}\and \Package{scrletter}} den Fall, dass
+sich mehrere Briefe in einem Dokument befinden, werden die Briefe intern von
+\KOMAScript{} durchnummeriert. Hierfür ist seit Version~3.19 der Zähler
+\Counter{letter} definiert, der mit jedem \Macro{begin}\PParameter{letter}
+referenzierbar um eins erhöht wird.
+\begin{Example}
+ Kommen wir auf das Beispiel zu \DescRef{\LabelBase.cmd.AtBeginLetter}
+ zurück. Statt den Zähler explizit innerhalb von
+ \Macro{begin}\PParameter{letter} zurückzusetzen, kann dies auch implizit
+ erfolgen, indem der Zähler \Counter{Frage} abhängig von \Counter{letter}
+ definiert wird:
+\begin{lstcode}
+ \newcounter{Frage}[letter]
+ \newcommand{\Frage}[1]{%
+ \par
+ \refstepcounter{Frage}%
+ \noindent
+ \begin{tabularx}{\textwidth}{l@{}X}
+ \theFrage:~ & #1\\
+ \end{tabularx}%
+ }%
+\end{lstcode}
+ Damit wird der Zähler automatisch zu Beginn jedes Briefs wieder auf Null
+ zurück gesetzt, so dass die erste Frage in jedem Brief wieder mit der Nummer
+ Eins beginnt.
+\end{Example}
+
+Will man sich den aktuellen Wert von \Counter{letter} ausgeben lassen, so ist
+das wie gewohnt mit \Macro{theletter} möglich. Wie bereits erwähnt, ist der
+Zähler aber auch referenzierbar. Das bedeutet, man könnte am Anfang eines
+Briefes mit \Macro{label}\Parameter{Labelname} ein Label
+setzen und mit \Macro{ref}\Parameter{Labelname} dann an beliebiger Stelle im
+Dokument darauf verweisen. Innerhalb des Briefes selbst erhält man dasselbe
+Ergebnis auch ganz ohne Label mit \Macro{thisletter}.
+
+Für Label innerhalb von Serienbriefen ist es notwendig, diesen einen über alle
+Briefe hinweg eindeutigen Namen zu geben. Auch dafür kann \Macro{thisletter}
+verwendet werden. Intern arbeitet \KOMAScript{} für diesen Zweck ebenfalls mit
+\Macro{thisletter}, um auf der letzten Seite eines jeden Briefes ein Label zu
+setzen. Dadurch ist es möglich, mit
+\Macro{letterlastpage}\IndexCmd{label}\IndexCmd{pageref} jederzeit innerhalb
+des Briefes die Nummer der letzten Seite des Briefes auszugeben. Da
+\Macro{letterlastpage} über \Macro{label} und \Macro{pageref} arbeitet, ist
+die Ausgabe allerdings erst nach mehreren \LaTeX-Läufen -- meist zwei oder
+drei -- gültig. Achten Sie gegebenenfalls auf entsprechende
+\emph{Rerun}-Meldungen in der Terminal-Ausgabe oder der \File{log}-Datei.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{opening}\Parameter{Anrede}
+\end{Declaration}
+Dies ist eine der wichtigsten Anweisungen in Briefen. Vordergründig
+wird damit die \PName{Anrede}\Index{Anrede}, beispielsweise »Sehr
+geehrte Frau~\dots«, gesetzt. Tatsächlich\textnote{Achtung!} setzt diese
+Anweisung aber auch alle Elemente des Briefbogens wie die
+Faltmarken\Index{Faltmarke}, den Briefkopf\Index{Briefkopf}, die
+Anschrift\Index{Anschrift}, die Absenderergänzung, die
+Geschäftszeile\Index{Geschaeftszeile=Geschäftszeile}, den Titel\Index{Titel},
+den Betreff\Index{Betreff} und den
+Seitenfuß\Index{Kopf}\Index{Fuss=Fuß}. Kurz\textnote{Ohne Anrede kein Brief!}
+gesagt: ohne Anrede kein Brief. Soll tatsächlich einmal ein Brief ohne Anrede
+gesetzt werden, so muss eben das Argument von \Macro{opening} leer bleiben.
+
+\begin{Example}
+ Kommen wir auf das Beispiel von
+ \DescPageRef{\LabelBase.env.letter.example} zurück. Wird dieses
+ um eine Anrede ergänzt, dann ergibt sich aus
+ \lstinputcode[xleftmargin=1em]{letter-0.tex}
+ der Briefbogen von \autoref{fig:\LabelBase.letter-0}.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Beispiel: Brief mit
+ Anschrift und Anrede}]{Ergebnis eines minimalistischen Briefes nur mit
+ Anschrift und Anrede (Datum und Faltmarken entstammen den
+ Voreinstellungen für DIN-Briefe)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-0}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-0}
+ \end{figure}
+\end{Example}
+\iffalse % 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
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{closing}\Parameter{Grußfloskel}
+\end{Declaration}
+Mit der Anweisung \Macro{closing} wird in erster Linie die
+\PName{Grußfloskel}\Index{Gruss=Gruß}\Index{Schlussgruss=Schlussgruß}
+gesetzt. Diese kann auch mehrzeilig sein. Die einzelnen Zeilen sollten dann
+mit doppeltem Backslash voneinander getrennt werden. Absätze innerhalb der
+\PName{Grußfloskel} sind jedoch nicht gestattet.
+
+Darüber hinaus setzt diese Anweisung aber auch noch gleich den Inhalt der
+Variablen \DescRef{\LabelBase.variable.signature} als Signatur. Näheres zur
+Signatur und deren Konfiguration ist \autoref{sec:\LabelBase.closing} ab
+\DescPageRef{\LabelBase.variable.signature} zu entnehmen.
+
+\begin{Example}
+ Erweitern wir unser Beispiel um einige Zeilen Brieftext und eine Grußfloskel
+ zu:
+ \lstinputcode[xleftmargin=1em]{letter-1.tex}
+ Damit sieht das Ergebnis wie in \autoref{fig:\LabelBase.letter-1} aus.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Beispiel: Brief mit Anschrift,
+ Anrede, Text und Grußfloskel}]{Ergebnis eines kleinen
+ Briefes mit Anschrift, Anrede, Text und Grußfloskel (Datum und
+ Faltmarken entstammen den Voreinstellungen für DIN-Briefe)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-1}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-1}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ps}
+\end{Declaration}%
+Diese Anweisung schaltet lediglich auf das
+Postskriptum\Index{Postskriptum} um. Dazu wird ein neuer Absatz
+begonnen und ein vertikaler Abstand -- in der Regel zur Signatur --
+eingefügt. Auf die Anweisung \Macro{ps} kann beliebiger Text folgen.
+Dabei muss der Anwender auch selbst entscheiden, ob er den Nachsatz
+etwa mit der Abkürzung »PS:«, die übrigens ohne Punkt gesetzt wird,
+beginnen will. \KOMAScript{} setzt diese Abkürzung weder
+automatisch noch optional.
+
+\begin{Example}
+ Unser Beispielbrief, um ein Postskriptum erweitert,
+ \lstinputcode[xleftmargin=1em]{letter-2.tex}
+ sieht dann wie in \autoref{fig:\LabelBase.letter-2} aus.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Beispiel: Brief mit Anschrift,
+ Anrede, Text, Grußfloskel und Postskriptum}]{Ergebnis eines kleinen
+ Briefes mit Anschrift, Anrede, Text, Grußfloskel und Postskriptum
+ (Datum und Faltmarken entstammen den Voreinstellungen für
+ DIN-Briefe)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-2}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-2}
+ \end{figure}
+\end{Example}
+
+\begin{Explain}%
+ Als Briefe noch von Hand geschrieben wurden, war das Postskriptum
+ sehr beliebt. Es handelte sich bei diesen Nachsätzen ursprünglich um
+ Angaben, die im eigentlichen Brief vergessen wurden. Bei Briefen,
+ die mit \LaTeX{} geschrieben werden, ist es natürlich einfach,
+ Vergessenes nachträglich in den Brief einzuarbeiten. %
+\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
+\iftrue % Umbruchkorrektur
+ Heutzutage verwendet man das Postskriptum dagegen eher für
+ Hinweise, die mit dem eigentlichen Briefinhalt wenig zu tun haben.
+\fi
+\end{Explain}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{cc}\Parameter{Verteiler}
+ \Variable{ccseparator}
+\end{Declaration}
+Ein \PName{Verteiler}\Index{Verteiler} kann mit der Anweisung \Macro{cc}
+gesetzt werden. Der \PName{Verteiler} wird der Anweisung dabei als Argument
+übergeben. Wenn der \PName{Inhalt} der Variablen
+\Variable{ccseparator}\Index{Trennzeichen} nicht leer ist, wird dem
+\PName{Verteiler} die \PName{Bezeichnung} und der \PName{Inhalt} dieser
+Variablen vorangestellt. Der \PName{Verteiler} selbst wird dann um die
+entsprechende Breite eingerückt ausgegeben. Es empfiehlt\textnote{Tipp!}
+sich, den \PName{Verteiler} \Macro{raggedright}\IndexCmd{raggedright} zu
+setzen und die einzelnen Angaben durch doppelten Backslash voneinander zu
+trennen.
+\begin{Example}
+ Der Beispielbrief soll dieses Mal nicht nur an die Vorsitzende, sondern mit
+ Verteiler auch an alle Mitglieder des Vereins gehen:
+ \lstinputcode[xleftmargin=1em]{letter-3.tex}%
+ Das Ergebnis ist in \autoref{fig:\LabelBase.letter-3} zu sehen.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Beispiel: Brief mit Anschrift,
+ Anrede, Text, Grußfloskel, Postskriptum und Verteiler}]{Ergebnis eines
+ kleinen Briefes mit Anschrift, Anrede, Text, Grußfloskel, Postskriptum
+ und Verteiler (Datum und Faltmarken entstammen den Voreinstellungen
+ für DIN-Briefe)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-3}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-3}
+ \end{figure}
+\end{Example}
+Vor dem Verteiler wird automatisch ein Abstand eingefügt.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{encl}\Parameter{Anlagen}
+ \Variable{enclseparator}
+\end{Declaration}
+Die \PName{Anlagen}\Index{Anlagen} sind genauso aufgebaut wie der
+Verteiler. Der einzige Unterschied besteht darin, dass die Einleitung
+hier von der \PName{Bezeichnung} und dem \PName{Inhalt} der Variablen
+\Variable{enclseparator}\Index{Trennzeichen} bestimmt wird.
+\begin{Example}
+ Dem Beispielbrief wird nun als Anlage noch ein Auszug aus der Satzung
+ beigefügt. Da es nur eine Anlage gibt, wird auch die voreingestellte
+ Bezeichnung passend geändert:
+ \lstinputcode[xleftmargin=1em]{letter-4.tex}
+ Das Ergebnis ist in \autoref{fig:\LabelBase.letter-4} zu sehen.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Beispiel: Brief mit Anschrift,
+ Anrede, Text, Grußfloskel, Postskriptum, Anlagen und
+ Verteiler}]{Ergebnis eines kleinen Briefes mit Anschrift, Anrede,
+ Text, Grußfloskel, Postskriptum, Anlagen und Verteiler (Datum und
+ Faltmarken entstammen den Voreinstellungen für DIN-Briefe)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-4}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-4}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{fontsize} % \section{Wahl der Schriftgröße für das Dokument}
+
+\LoadCommonFile{textmarkup} % \section{Textauszeichnungen}
+
+\section{Briefbogen}
+\seclabel{firstpage}
+\BeginIndexGroup
+\BeginIndex{}{Briefbogen}
+
+Der Briefbogen ist die erste Seite und damit das Aushängeschild jedes
+Briefes. Im geschäftlichen Bereich handelt es sich dabei oft um einen
+Vordruck, auf dem viele Elemente, wie ein Briefkopf mit Absenderinformationen
+und Logo, bereits enthalten sind. Bei \KOMAScript{} sind diese Elemente frei
+positionierbar. Damit ist es nicht nur möglich, einen Briefbogen direkt
+nachzubilden, sondern auch vorgesehene Felder, wie die Anschrift, unmittelbar
+auszufüllen. Die freie Positionierbarkeit wird über Pseudolängen (siehe
+\autoref{sec:\LabelBase.pseudoLength} ab
+\autopageref{sec:\LabelBase.pseudoLength}) erreicht. Eine schematische
+Darstellung des Briefbogens und der dafür verwendeten Variablen ist in
+\autoref{fig:\LabelBase.variables} zu finden. Dabei sind die Namen der
+Variablen zur besseren Unterscheidung von Anweisungen und deren Argumenten
+fett gedruckt.
+
+Folgeseiten\Index{Folgeseite} sind vom Briefbogen zu
+unterscheiden. Folgeseiten im Sprachgebrauch dieser Anleitung sind alle
+Briefseiten abgesehen von der ersten.
+
+
+\begin{figure}
+ \centering
+ \includegraphics[scale=0.99]{varDIN}
+ \caption{Schematische Darstellung des Briefbogens mit den wichtigsten
+ Anweisungen und Variablen für die skizzierten Elemente}
+ \label{fig:\LabelBase.variables}
+\end{figure}
+
+
+\begin{Declaration}
+ \OptionVName{foldmarks}{Einstellung}
+\end{Declaration}
+Falt- oder Falzmarken\Index{Faltmarken}\textnote{Faltmarken} 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 Faltmarke. Dazu
+wird noch eine horizontale Loch- oder Seitenmittenmarke unterstützt, die nicht
+in der Vertikalen verschoben werden kann.
+
+Mit der Option \Option{foldmarks} können Faltmarken\Index{Faltmarke} für eine
+vertikale Zwei"~, Drei- oder Vierteilung und eine horizontale Zweiteilung
+aktiviert oder deaktiviert werden. Die einzelnen Teile müssen dabei nicht
+äquidistant sein. Die Positionen von drei der vier horizontalen und der
+vertikalen Marke sind über Pseudolängen konfigurierbar (siehe
+\autoref{sec:scrlttr2-experts.foldmarks} ab
+\DescPageRef{scrlttr2-experts.plength.foldmarkvpos}).
+
+Über die Option \Option{foldmarks} können entweder mit den Standardwerten für
+einfache Schalter, die in \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch} angegeben sind, alle konfigurierten
+Faltmarken am linken und oberen Rand ein- und ausgeschaltet werden,
+oder\ChangedAt{v2.97e}{\Class{scrlttr2}} es kann durch die Angabe eines oder
+mehrerer Buchstaben aus \autoref{tab:\LabelBase.foldmark} die Verwendung der
+einzelnen Faltmarken gezielt konfiguriert werden. Auch in diesem Fall werden
+die Faltmarken nur dann angezeigt, wenn die Faltmarken nicht mit
+\PValue{false}, \PValue{off} oder \PValue{no} generell abgeschaltet
+wurden. Die genaue Position der Faltmarken ist von den Einstellungen des
+Anwenders beziehungsweise der \File{lco}-Dateien (siehe
+\autoref{sec:\LabelBase.lcoFile} ab \autopageref{sec:\LabelBase.lcoFile})
+abhängig. Voreingestellt sind \PValue{true} und
+\PValue{TBMPL}.\textnote{Voreinstellung}
+%
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}[{%
+ Kombinierbare Werte für die Konfiguration der Faltmarken mit der
+ Option \Option{foldmarks}%
+ }]{%
+ \hspace{0pt plus 1ex}%
+ Kombinierbare Werte für die Konfiguration der Faltmarken mit der
+ Option \Option{foldmarks}\label{tab:\LabelBase.foldmark}%
+ }[l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ \PValue{B} & untere, horizontale Faltmarke am linken Rand aktivieren\\%
+ \PValue{b} & untere, horizontale Faltmarke am linken Rand deaktivieren\\%
+ \PValue{H} & alle horizontalen Faltmarken am linken Rand aktivieren\\%
+ \PValue{h} & alle horizontalen Faltmarken am linken Rand deaktivieren\\%
+ \PValue{L} & linke, vertikale Faltmarke am oberen Rand aktivieren\\%
+ \PValue{l} & linke, vertikale Faltmarke am oberen Rand deaktivieren\\%
+ \PValue{M} & mittlere, horizontale Faltmarke am linken Rand aktivieren\\%
+ \PValue{m} & mittlere, horizontale Faltmarke am linken Rand deaktivieren\\%
+ \PValue{P} & Locher- bzw. Seitenmittenmarke am linken Rand aktivieren\\%
+ \PValue{p} & Locher- bzw. Seitenmittenmarke am linken Rand deaktivieren\\%
+ \PValue{T} & obere, horizontale Faltmarke am linken Rand aktivieren\\%
+ \PValue{t} & obere, horizontale Faltmarke am linken Rand deaktivieren\\%
+ \PValue{V} & alle vertikalen Faltmarken am oberen Rand aktivieren\\%
+ \PValue{v} & alle vertikalen Faltmarken am oberen Rand deaktivieren\\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+\begin{Example}
+ Angenommen, Sie wollen alle Faltmarken außer der Lochermarke
+ abschalten. Wenn die Voreinstellung zuvor noch nicht geändert wurde, können
+ Sie das Abschalten wie folgt erreichen:
+\begin{lstcode}
+ \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
+ entsprechend abzuändern.%
+ \lstinputcode[xleftmargin=1em]{letter-7}%
+ Das Ergebnis ist in \autoref{fig:\LabelBase.letter-7} zu sehen.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Beispiel: Brief mit Anschrift,
+ Anrede, Text, Grußfloskel, Postskriptum, Anlagen, Verteiler und
+ Lochermarke}]{Ergebnis eines kleinen Briefes mit Anschrift, Anrede,
+ Text, Grußfloskel, Postskriptum, Anlagen, Verteiler und Lochermarke
+ (das Datum entstammt den Voreinstellungen für DIN-Briefe)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-7}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-7}
+ \end{figure}
+\end{Example}
+\BeginIndex{FontElement}{foldmark}\LabelFontElement{foldmark}%
+Über\ChangedAt{v2.97c}{\Class{scrlttr2}} das Element \FontElement{foldmark}
+kann die Farbe der Faltmarken geändert werden. Dazu werden die Anweisungen
+\DescRef{\LabelBase.cmd.setkomafont} und \DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup},
+\DescPageRef{\LabelBase.cmd.setkomafont}) verwendet. Voreingestellt ist
+keine Änderung.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{enlargefirstpage}{Ein-Aus-Wert}
+\end{Declaration}
+\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
+\DescPageRef{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
+werden. Voreingestellt ist \PValue{false}.\textnote{Voreinstellung}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{firsthead}{Ein-Aus-Wert}
+\end{Declaration}
+\iffalse% Umbruchkorrekturtext
+Das\ChangedAt{v2.97e}{\Class{scrlttr2}} oberste Element eines Briefbogens ist
+normalerweise der Briefkopf. Bei
+\else%
+Bei\ChangedAt{v2.97e}{\Class{scrlttr2}}
+\fi%
+\KOMAScript{} kann mit der Option
+\Option{firsthead} gewählt werden, ob der Briefkopf auf dem Briefbogen
+überhaupt 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. In der Voreinstellung ist
+der Briefkopf aktiviert.\textnote{Voreinstellung}%%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{fromalign}{Methode}
+\end{Declaration}
+\BeginIndex{}{Briefkopf}%
+Die\important{\Option{fromalign}} Option \Option{fromalign} bestimmt, wo der
+Absender\Index{Absender} auf der ersten Seite platziert werden soll. Neben
+verschiedenen Platzierungen im Briefkopf gibt es
+auch\ChangedAt{v2.97e}{\Class{scrlttr2}} die Möglichkeit, den Absender in der
+Absenderergänzung\Index{Absenderergaenzung=Absenderergänzung}
+unterzubringen. Gleichzeitig\textnote{Achtung!} dient diese Option als
+zentraler Schalter, um die Erweiterungen der Briefkopfgestaltung überhaupt zu
+aktivieren oder zu deaktivieren. Sind die Erweiterungen deaktiviert, so
+bleiben die übrigen nachfolgend angegebenen Optionen ohne Wirkung. Mögliche
+Werte für \Option{fromalign} sind \autoref{tab:\LabelBase.fromalign} zu
+entnehmen. Voreingestellt ist der Wert \PValue{left}.\textnote{Voreinstellung}%
+%
+\EndIndexGroup
+
+\begin{table}
+ \Index{Briefkopf}%
+ \caption[{Mögliche Werte für Option
+ \Option{fromalign} zur Platzierung des Absenders auf dem Briefbogen}]
+ {Mögliche Werte für Option
+ \Option{fromalign} zur Platzierung des Absenders auf dem Briefbogen}
+ \label{tab:\LabelBase.fromalign}
+ \begin{desctabular}
+ \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{%
+ Absender wird innerhalb des Briefkopfes zentriert; ein Logo wird
+ gegebenenfalls am Anfang der erweiterten Absenderangabe platziert; die
+ Erweiterungen der Briefkopfgestaltung werden aktiviert.}%
+ \entry{\PValue{false}, \PValue{no}, \PValue{off}}{%
+ Standardgestalt für den Absender wird verwendet; die Erweiterungen der
+ Briefkopfgestaltung werden deaktiviert.}%
+ \entry{\PValue{left}}{%
+ Absender steht linksbündig im Briefkopf; ein Logo wird gegebenenfalls
+ rechtsbündig platziert; die Erweiterungen der Briefkopfgestaltung werden
+ aktiviert.}%
+ \entry{\PValue{locationleft}, \PValue{leftlocation}}{%
+ Absender steht linksbündig in der Absenderergänzung; ein Logo wird
+ gegebenenfalls darüber platziert; der Briefkopf wird automatisch
+ deaktiviert, kann aber über Option \DescRef{\LabelBase.option.firsthead}
+ wieder aktiviert werden.}%
+ \entry{\PValue{locationright}, \PValue{rightlocation},
+ \PValue{location}}{%
+ Absender steht rechtsbündig in der Absenderergänzung; ein Logo wird
+ gegebenenfalls darüber platziert; der Briefkopf wird automatisch
+ deaktiviert, kann aber über Option \DescRef{\LabelBase.option.firsthead}
+ wieder aktiviert werden.}%
+ \entry{\PValue{right}}{%
+ Absender steht rechtsbündig im Briefkopf; ein Logo wird gegebenenfalls
+ linksbündig platziert; die Erweiterungen der Briefkopfgestaltung werden
+ aktiviert.}%
+ \end{desctabular}
+\end{table}
+
+
+\begin{Declaration}
+ \OptionVName{fromrule}{Position}
+ \Variable{fromname}
+ \Variable{fromaddress}
+\end{Declaration}
+Der\important{\Variable{fromname}} Name des Absenders wird über die Variable
+\Variable{fromname} bestimmt. Im Briefkopf wird dabei die \PName{Bezeichnung}
+(siehe auch \autoref{tab:\LabelBase.fromTerm},
+\autopageref{tab:\LabelBase.fromTerm}) nicht gesetzt.
+
+Optional\important{\OptionValue{fromrule}{aftername}} kann mit Einstellung
+\OptionValue{fromrule}{aftername} im erweiterten Briefkopf auf den Namen eine
+horizontale Linie
+folgen. Alternativ\important{\OptionValue{fromrule}{afteraddress}} kann die
+Linie mit \OptionValue{fromrule}{afteraddress} auch unterhalb des kompletten
+Absenders gesetzt werden. Eine Übersicht über alle möglichen Einstellungen für
+die Linie bietet \autoref{tab:\LabelBase.fromrule}. Die Länge der Linie wird
+über die Pseudolänge \PLength{fromrulewidth}\IndexPLength{fromrulewidth}
+bestimmt.
+
+\begin{table}
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}
+ [{%
+ Mögliche Werte für Option \Option{fromrule} bei
+ \Class{scrlttr2} und \Package{scrletter}%
+ }]{%
+ \label{tab:\LabelBase.fromrule}%
+ Mögliche Werte für Option \Option{fromrule} zur
+ Platzierung einer horizontalen Linie im Absender des erweiterten
+ Briefkopfes von \Class{scrlttr2} und \Package{scrletter}%
+ }%
+ [l]%
+% \label{tab:\LabelBase.fromrule}%
+ \begin{minipage}[t]{.6\linewidth}%
+ \begin{desctabular}[t]
+ \entry{%
+ \PValue{afteraddress}, \PValue{below}, \PValue{on}, \PValue{true},
+ \PValue{yes}}{%
+ Linie unterhalb des kompletten Absenders}%
+ \entry{\PValue{aftername}}{%
+ Linie direkt unter dem Namen des Absenders}%
+ \entry{\PValue{false}, \PValue{no}, \PValue{off}}{%
+ keine Linie}%
+ \end{desctabular}
+ \end{minipage}
+ \end{captionbeside}
+\end{table}
+
+In der Voreinstellung\textnote{Voreinstellung} ist die Linie im erweiterten
+Briefkopf nicht aktiviert. Im Standardbriefkopf wird die Linie immer nach dem
+Namen gesetzt.
+
+Unter\important{\Variable{fromaddress}} dem Namen folgt die Anschrift des
+Absenders. Diese wird über die Variable \Variable{fromaddress} bestimmt. Im
+Briefkopf wird dabei die \PName{Bezeichnung} (siehe auch
+\autoref{tab:\LabelBase.fromTerm}, \autopageref{tab:\LabelBase.fromTerm}) nicht
+gesetzt.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{fromaddress}\LabelFontElement{fromaddress}%
+\BeginIndex{FontElement}{fromname}\LabelFontElement{fromname}%
+\BeginIndex{FontElement}{fromrule}\LabelFontElement{fromrule}%
+Die Schrift, die für den kompletten Absender verwendet wird, kann über das
+Element \FontElement{fromaddress}\IndexFontElement{fromaddress}%
+\important{\FontElement{fromaddress}} eingestellt werden. Abweichungen davon
+können für den Absendernamen über das Element
+\FontElement{fromname}\IndexFontElement{fromname}%
+\important{\FontElement{fromname}} und für die mit \Option{fromrule} gesetzte
+Linie über das Element \FontElement{fromrule}\IndexFontElement{fromrule}%
+\important{\FontElement{fromrule}} eingestellt werden. In der Voreinstellung
+erfolgt keinerlei Schriftumschaltung. Bei der Linie ist die Möglichkeit der
+Schriftumschaltung hauptsächlich dazu gedacht, die Farbe der Linie ändern zu
+können, um etwa Grau anstelle von Schwarz zu verwenden. Siehe hierzu
+\cite{package:xcolor}.%
+%
+\EndIndexGroup
+
+\begin{Example}
+ Geben wir nun dem Absender
+ \iftrue % Umbruchkorrektur
+ aus den bisherigen Beispielen
+ \fi %
+ einen Namen.
+ \lstinputcode[xleftmargin=1em]{letter-8.tex}
+ \begin{figure}
+ \centering
+ \frame{\includegraphics[width=.4\textwidth]{letter-8}}\quad
+ \frame{\includegraphics[width=.4\textwidth]{letter-9}}
+ \caption[{Beispiel: Brief mit Absender, Anschrift, Anrede,
+ Text, Grußfloskel, Signatur, Postskriptum, Anlagen und Verteiler}]
+ {Ergebnis eines kleinen Briefes mit Absender, Anschrift, Anrede, Text,
+ Grußfloskel, Signatur, Postskriptum, Anlagen und Verteiler (Datum und
+ Faltmarken entstammen den Voreinstellungen für DIN-Briefe); links der
+ Standardbriefkopf mit \OptionValueRef{\LabelBase}{fromalign}{false},
+ rechts der
+ erweiterte Briefkopf mit \OptionValueRef{\LabelBase}{fromalign}{center}}
+ \label{fig:\LabelBase.letter-8-9}
+ \end{figure}
+ Dabei wird zunächst einmal nicht der erweiterte Briefkopf, sondern nur der
+ Standardbriefkopf verwendet. Das Ergebnis ist in
+ \autoref{fig:\LabelBase.letter-8-9} links zu sehen. Im Vergleich dazu ist
+ rechts daneben das gleiche Beispiel, jedoch mit Option
+ \OptionValueRef{\LabelBase}{fromalign}{center}, also mit den aktivierten
+ Erweiterungen für den Briefkopf, abgebildet. Wie zu sehen ist, hat diese
+ Variante zunächst einmal keine Linie.
+
+ In \autoref{fig:\LabelBase.letter-8-9} taucht nun auch erstmals eine Signatur
+ unter dem Gruß auf. Diese wird automatisch aus dem Absendername
+ gewonnen. Wie sie konfiguriert werden kann, ist in
+ \autoref{sec:\LabelBase.closing} ab \autopageref{sec:\LabelBase.closing} zu
+ finden.
+
+ 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:\LabelBase.letter-10-11} rechts zu sehen. %
+ \iftrue % 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
+ \frame{\includegraphics[width=.4\textwidth]{letter-11}}
+ \caption[{Beispiel: Brief mit Absender, Trennlinie, Anschrift, Anrede, Text,
+ Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und
+ Lochermarke}]{Ergebnis eines kleinen Briefes mit Absender, Trennlinie,
+ Anschrift, Anrede, Text, Grußfloskel, Signatur, Postskriptum, Anlagen,
+ Verteiler und Lochermarke (das Datum entstammt den Voreinstellungen für
+ DIN-Briefe); links der Standardbriefkopf mit
+ \OptionValueRef{\LabelBase}{fromalign}{false}, rechts der erweiterte
+ Briefkopf mit \OptionValueRef{\LabelBase}{fromalign}{center}}
+ \label{fig:\LabelBase.letter-10-11}
+ \end{figure}
+\end{Example}
+
+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%
+\iftrue % Umbruchkorrektur
+. Man muss \KOMAScript{} 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
+\DescRef{\LabelBase.variable.backaddress},
+\DescPageRef{\LabelBase.variable.backaddress}) und Signatur (siehe Variable
+\DescRef{\LabelBase.variable.signature},
+\DescPageRef{\LabelBase.variable.signature}) selbst setzen.%
+\else %
+\ und hätten außerdem gegebenenfalls Auswirkungen auf die Rücksendeadresse
+(siehe Variable \DescRef{\LabelBase.variable.backaddress},
+\DescPageRef{\LabelBase.variable.backaddress}) und Signatur (siehe Variable
+\DescRef{\LabelBase.variable.signature},
+\DescPageRef{\LabelBase.variable.signature}).%
+\fi %
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{symbolicnames}{Ein-Aus-Wert}
+ \OptionVName{fromphone}{Ein-Aus-Wert}
+ \OptionVName{frommobilephone}{Ein-Aus-Wert}
+ \OptionVName{fromfax}{Ein-Aus-Wert}
+ \OptionVName{fromemail}{Ein-Aus-Wert}
+ \OptionVName{fromurl}{Ein-Aus-Wert}
+ \Variable{fromphone}
+ \Variable{frommobilephone}
+ \Variable{fromfax}
+ \Variable{fromemail}
+ \Variable{fromurl}
+ \Variable{phoneseparator}
+ \Variable{mobilephoneseparator}
+ \Variable{faxseparator}
+ \Variable{emailseparator}
+ \Variable{urlseparator}
+\end{Declaration}%
+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\textnote{Voreinstellung} ist jeweils
+\PValue{false}. Die Inhalte selbst werden über die gleichnamigen Variablen
+bestimmt. Die Voreinstellungen für die dabei verwendeten Bezeichnungen sind
+\autoref{tab:\LabelBase.fromTerm} zu entnehmen, die verwendeten Trennzeichen,
+die zwischen der \PName{Bezeichnung} und dem \PName{Inhalt} einer Variablen
+eingefügt werden, \autoref{tab:\LabelBase.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
+\DescRef{scrlttr2-experts.cmd.emailname},
+\DescRef{scrlttr2-experts.cmd.faxname},
+\DescRef{scrlttr2-experts.cmd.mobilephonename} und
+\DescRef{scrlttr2-experts.cmd.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
+ \caption[{Vordefinierte Bezeichnungen der Variablen für die\newline
+ 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:\LabelBase.fromSeparator} zu entnehmen)}
+ \begin{desctabular}[1.8em]
+ \ventry{fromemail}{%
+ \DescRef{\LabelBase.cmd.usekomavar*}\PParameter{emailseparator}%
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{emailseparator}}%
+ \ventry{fromfax}{%
+ \DescRef{\LabelBase.cmd.usekomavar*}\PParameter{faxseparator}%
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{faxseparator}}%
+ \ventry{frommobilephone}{%
+ \DescRef{\LabelBase.cmd.usekomavar*}\PParameter{mobilephoneseparator}%
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{mobilephoneseparator}}%
+ \ventry{fromname}{\DescRef{scrlttr2-experts.cmd.headfromname}}%
+ \ventry{fromphone}{%
+ \DescRef{\LabelBase.cmd.usekomavar*}\PParameter{phoneseparator}%
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{phoneseparator}}%
+ \ventry{fromurl}{%
+ \DescRef{\LabelBase.cmd.usekomavar*}\PParameter{urlseparator}%
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{urlseparator}}%
+ \end{desctabular}
+ \label{tab:\LabelBase.fromTerm}
+\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 ohne Option
+ \Option{symbolicnumbers}}
+% [l]
+ \begin{tabularx}{\textwidth}{llX}
+ \toprule
+ Name & Bezeichnung & Inhalt \\
+ \midrule
+ \Variable{emailseparator} & \DescRef{scrlttr2-experts.cmd.emailname} & \texttt{:\~} \\
+ \Variable{faxseparator} & \DescRef{scrlttr2-experts.cmd.faxname} & \texttt{:\~} \\
+ \Variable{mobilephoneseparator} & \DescRef{scrlttr2-experts.cmd.mobilephonename} &
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{phoneseparator} \\
+ \Variable{phoneseparator} & \DescRef{scrlttr2-experts.cmd.phonename} & \texttt{:\~} \\
+ \Variable{urlseparator} & \DescRef{scrlttr2-experts.cmd.wwwname} & \texttt{:\~} \\
+ \bottomrule
+ \end{tabularx}
+% \end{captionbeside}
+ \label{tab:\LabelBase.fromSeparator}
+\end{table}
+
+\begin{Example}
+ Herr Musterfrau aus unserem Beispiel hat auch Telefon und eine
+ E-Mail-Adresse. Diese möchte er ebenfalls im Briefkopf haben. Gleichzeitig
+ soll die Trennlinie nun nach dem Briefkopf stehen. Also gibt er die
+ entsprechenden Optionen an und setzt auch die zugehörigen Variablen:%
+ \lstinputcode[xleftmargin=1em]{letter-12.tex}%
+ Das Ergebnis aus \autoref{fig:\LabelBase.letter-12-13} links ist jedoch
+ ernüchternd. Die Optionen werden ignoriert. Das liegt daran, dass diese
+ zusätzlichen Variablen und Optionen nur im erweiterten Briefkopf verwendet
+ werden. Es muss also, wie in \autoref{fig:\LabelBase.letter-12-13}, rechts die
+ Option \DescRef{\LabelBase.option.fromalign} verwendet werden:
+ \begin{figure}
+ \centering
+ \frame{\includegraphics[width=.4\textwidth]{letter-12}}\quad
+ \frame{\includegraphics[width=.4\textwidth]{letter-13}}
+ \caption[{Beispiel: Brief mit erweitertem Absender, Trennlinie, Anschrift,
+ Anrede, Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler
+ und Lochermarke; Standard- vs. erweiterter Briefkopf}]{Ergebnis eines
+ kleinen Briefes mit erweitertem Absender, Trennlinie, Anschrift, Anrede,
+ Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und
+ Lochermarke (das Datum entstammt den Voreinstellungen für DIN-Briefe);
+ links der Standardbriefkopf mit
+ \OptionValueRef{\LabelBase}{fromalign}{false}, rechts der erweiterte
+ Briefkopf mit \OptionValueRef{\LabelBase}{fromalign}{center}}
+ \label{fig:\LabelBase.letter-12-13}
+ \end{figure}
+ \lstinputcode[xleftmargin=1em]{letter-13.tex}
+
+ Den Vergleich zweier weiterer Alternativen mit linksbündigem Absender durch
+ Einstellung \OptionValueRef{\LabelBase}{fromalign}{left} und rechtsbündigem
+ Absender durch Einstellung \OptionValueRef{\LabelBase}{fromalign}{right} zeigt
+ \autoref{fig:\LabelBase.letter-14-15}.
+ \begin{figure}
+ \centering
+ \frame{\includegraphics[width=.4\textwidth]{letter-14}}\quad
+ \frame{\includegraphics[width=.4\textwidth]{letter-15}}
+ \caption[{Beispiel: Brief mit erweitertem Absender, Trennlinie, Anschrift,
+ Anrede, Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler
+ und Lochermarke; links- vs. rechtsbündiger Briefkopf}]{Ergebnis eines
+ kleinen Briefes mit erweitertem Absender, Trennlinie, Anschrift, Anrede,
+ Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und
+ Lochermarke (das Datum entstammt den Voreinstellungen für DIN-Briefe);
+ links mit linksbündigem Kopf durch
+ \OptionValueRef{\LabelBase}{fromalign}{left}, rechts mit Option
+ \OptionValueRef{\LabelBase}{fromalign}{right} und damit rechtsbündigem
+ Kopf}
+ \label{fig:\LabelBase.letter-14-15}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{fromlogo}{Ein-Aus-Wert}
+ \Variable{fromlogo}
+\end{Declaration}
+\BeginIndex{Option}{fromlogo~=\PName{Ein-Aus-Wert}}%
+\BeginIndex{Variable}{fromlogo}%
+Mit der Option \Option{fromlogo} kann bestimmt werden, ob ein Logo\Index{Logo}
+im Briefkopf 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\textnote{Voreinstellung} ist \PValue{false}, also kein
+Logo. Das Logo selbst wird über die Variable \Variable{fromlogo}
+definiert. Die \PName{Bezeichnung} für das Logo ist in der Voreinstellung leer
+und wird von \KOMAScript{} auch nicht verwendet (siehe auch
+\autoref{tab:\LabelBase.fromTerm}, \autopageref{tab:\LabelBase.fromTerm}).%
+\begin{Example}
+ Herr Musterfrau findet es besonders schick, wenn er seine Briefe mit einem
+ Logo versieht. Sein Logo hat er als Grafikdatei gespeichert, die er gerne
+ mit Hilfe der Anweisung \Macro{includegraphics} laden würde. Dazu bindet er
+ zusätzlich das Paket \Package{graphics}\IndexPackage{graphics} (siehe
+ \cite{package:graphics}) ein.%
+ \lstinputcode[xleftmargin=1em]{letter-16}%
+ Das Ergebnis ist in \autoref{fig:\LabelBase.letter-16-18},
+ \autopageref{fig:\LabelBase.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
+ \frame{\includegraphics[width=.4\textwidth]{letter-17}}\par\bigskip}
+ \begin{captionbeside}[{Beispiel: Brief mit erweitertem Absender, Logo,
+ Trennlinie, Anschrift, Anrede, Text, Grußfloskel, Signatur,
+ Postskriptum, Anlagen, Verteiler und Lochermarke; Absender links
+ vs. rechts vs. zentriert}]{Ergebnis eines kleinen Briefes mit
+ erweitertem Absender, Logo, Trennlinie, Anschrift, Anrede, Text,
+ Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und
+ Lochermarke (das Datum entstammt den Voreinstellungen für
+ DIN-Briefe); links, oben mit linksbündigem Absender, rechts daneben
+ mit zentriertem Absender und rechts mit rechtsbündigem Absender}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-18}}\quad
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-16-18}
+ \end{figure}
+\end{Example}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Variable{firsthead}
+\end{Declaration}
+In vielen Fällen reichen die Möglichkeiten aus, die \Class{scrlttr2} über
+Optionen und obige Variablen für die Gestaltung des Briefkopfes bietet. In
+einigen Fällen will man jedoch den Briefkopf freier gestalten können. In
+diesen Fällen muss man auf die Möglichkeiten der vordefinierten Briefköpfe,
+die über die oben erwähnten Option ausgewählt werden können,
+verzichten. Stattdessen gestaltet man sich seinen Briefkopf frei. Dazu
+definiert man den gewünschten Aufbau über den \PName{Inhalt} der Variablen
+\Variable{firsthead}. Dabei können beispielsweise mit Hilfe der
+\Macro{parbox}-Anweisung (siehe \cite{latex:usrguide}) mehrere Boxen neben-
+und untereinander gesetzt werden. Einem versierten Anwender sollte es so
+möglich sein, seinen eigenen Briefkopf zu gestalten. Natürlich kann und sollte
+man dabei auch Zugriffe auf andere Variablen mit Hilfe von
+\DescRef{\LabelBase.cmd.usekomavar} nehmen. Die \PName{Bezeichnung} der
+Variablen \Variable{firsthead} wird von \KOMAScript{} nicht verwendet.
+\iffree{}{Ein ausführliches Beispiel für Definition eines Briefkopfes wird in
+ \autoref{cha:modernletters} behandelt.}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{addrfield}{Modus}
+ \OptionVName{backaddress}{Wert}
+ \OptionVName{priority}{Priorität}
+ \Variable{toname}
+ \Variable{toaddress}
+ \Variable{backaddress}
+ \Variable{backaddressseparator}
+ \Variable{specialmail}
+ \Variable{fromzipcode}
+ \Variable{zipcodeseparator}
+ \Variable{place}
+ \Variable{PPcode}
+ \Variable{PPdatamatrix}
+ \Variable{addresseeimage}
+\end{Declaration}%
+\BeginIndex{}{Anschrift}%
+Mit der Option \Option{addrfield} kann gewählt werden, ob ein Anschriftfeld
+gesetzt werden soll oder nicht. Voreingestellt\textnote{Voreinstellung} ist
+mit \PValue{true} die Verwendung eines Anschriftfeldes. Die Option versteht
+die in \autoref{tab:\LabelBase.addrfield}\ChangedAt{v3.03}{\Class{scrlttr2}}
+%, \autopageref{tab:\LabelBase.addrfield}
+angegebenen Werte für den \PName{Modus}. Bei den Werten \PValue{true},
+\PValue{topaligned}\ChangedAt{v3.17}{\Class{scrlttr2}\and
+ \Package{scrletter}}, \PValue{PP} und \PValue{backgroundimage} werden Name
+und Adresse des Empfängers, die im Anschriftfeld gesetzt werden, über das
+Argument der Umgebung \DescRef{\LabelBase.env.letter} (siehe
+\autoref{sec:\LabelBase.document}, \DescPageRef{\LabelBase.env.letter})
+bestimmt. Diese Angaben werden außerdem in die Variablen \Variable{toname} und
+\Variable{toaddress} kopiert.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{addressee}\LabelFontElement{addressee}%
+\BeginIndex{FontElement}{toname}\LabelFontElement{toname}%
+\BeginIndex{FontElement}{toaddress}\LabelFontElement{toaddress}%
+Die voreingestellten Schriftarten können\ChangedAt{v2.97c}{\Class{scrlttr2}}
+über die Anweisungen \DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup}, ab
+\DescPageRef{\LabelBase.cmd.setkomafont}) verändert werden. Dabei existieren
+drei Elemente. Zunächst gibt es das Element
+\FontElement{addressee}\IndexFontElement{addressee}%
+\important{\FontElement{addressee}}, das generell für die Anschrift zuständig
+ist. Dazu gibt es die Elemente
+\FontElement{toname}\IndexFontElement{toname}\important{\FontElement{toname}}
+und \FontElement{toaddress}\IndexFontElement{toaddress}%
+\important{\FontElement{toaddress}}, die sich nur auf den Namen bzw. die
+Adresse des Empfängers beziehen. Für \FontElement{toname} und
+\FontElement{toaddress} können also Abweichungen von der Einstellung für
+\FontElement{addressee} definiert werden.%
+\EndIndexGroup
+%
+\begin{table}
+ \caption[{Mögliche Werte für Option \Option{addrfield} bei
+ \Class{scrlttr2} und \Package{scrletter}}]
+ {Mögliche Werte für Option \Option{addrfield} zur
+ Auswahl der Art der Anschrift%
+ \label{tab:\LabelBase.addrfield}}%
+ \begin{desctabular}
+ \entry{\PValue{backgroundimage}, \PValue{PPbackgroundimage},
+ \PValue{PPBackgroundImage}, \PValue{PPBackGroundImage},
+ \PValue{ppbackgroundimage}, \PValue{ppBackgroundImage},
+ \PValue{ppBackGroundImage}}{%
+ Es wird eine Anschrift mit einer in Variable \Variable{addresseeimage}
+ abgelegten Hintergrundgrafik als Port-Payé-Kopf (P.\,P.-Kopf), aber ohne
+ Rücksendeadresse und Versandart gesetzt.}%
+ \entry{\PValue{false}, \PValue{off}, \PValue{no}}{%
+ Es wird keine Anschrift gesetzt.}%
+ \entry{\PValue{image}, \PValue{Image}, \PValue{PPimage}, \PValue{PPImage},
+ \PValue{ppimage}, \PValue{ppImage}}{%
+ Eine in Variable \Variable{addresseeimage} abgelegte Abbildung wird als
+ Anschrift mit Port-Payé gesetzt. Adressinformationen und Angaben für
+ Rücksendeadresse, Versandart oder Priorität werden ignoriert.}%
+ \entry{\PValue{PP}, \PValue{pp}, \PValue{PPexplicite},
+ \PValue{PPExplicite}, \PValue{ppexplicite}, \PValue{ppExplicite}}{%
+ Es wird eine Anschrift mit explizit über die Variablen
+ \Variable{fromzipcode}, \Variable{place} und \Variable{PPcode}
+ ausgefülltem Port-Payé-Kopf (P.\,P.-Kopf), gegebenenfalls mit Priorität
+ und über Variable \Variable{PPdatamatrix} gesetzter Data-Matrix, aber
+ ohne Rücksendeadresse und Versandart gesetzt.}%
+ \entry{\PValue{topaligned}, \PValue{alignedtop}%
+ \ChangedAt{v3.17}{\Class{scrlttr2}\and \Package{scrletter}}}{%
+ Es wird eine Anschrift mit Rücksendeadresse und Versandart oder
+ Priorität gesetzt. Die Anschrift wird dabei unter der Versandart nicht
+ vertikal zentriert.}%
+ \entry{\PValue{true}, \PValue{on}, \PValue{yes}}{%
+ Es wird eine Anschrift mit Rücksendeadresse und Versandart oder
+ Priorität gesetzt.}%
+ \end{desctabular}
+\end{table}%
+
+Im Anschriftfeld wird in der Voreinstellung \OptionValue{addrfield}{true}
+zusätzlich noch die unterstrichene Rücksendeadresse gesetzt. Mit Option
+\Option{backaddress} kann gewählt werden, ob und in welcher Form die
+Rücksendeadresse\Index{Ruecksendeadresse=Rücksendeadresse} für
+Fensterbriefumschläge im Anschriftfeld gesetzt werden soll. Die
+Option\important{\OptionValue{backaddress}{false}} versteht dazu einerseits
+die Standardwerte für einfache Schalter, die in \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch} angegeben sind. Dabei bleibt der Stil der
+Rücksendeadresse unverändert. Beim Einschalten der Rücksendeadresse kann
+andererseits\ChangedAt{v2.96}{\Class{scrlttr2}} gleichzeitig auch der Stil der
+Rücksendeadresse gewählt werden. So aktiviert der Wert
+\PValue{underlined}\important{\OptionValue{backaddress}{underlined}} die
+unterstrichene Rücksendeadresse, während
+\PValue{plain}\important{\OptionValue{backaddress}{plain}} den Stil ohne
+Unterstreichung auswählt. Voreingestellt\textnote{Voreinstellung} ist
+\PValue{underlined}, also das Setzen der unterstrichenen Rücksendeadresse.
+
+Die Rücksendeadresse selbst wird über den \PName{Inhalt} der Variable
+\Variable{backaddress} bestimmt. Voreingestellt ist hier der über
+\DescRef{\LabelBase.variable.fromname} angegebene Name und die über
+\DescRef{\LabelBase.variable.fromaddress} angegebene Adresse, wobei der
+Doppelbackslash in diesem Fall durch den Inhalt der Variablen
+\Variable{backaddressseparator} ersetzt wird. Für diese ist ein Komma, gefolgt
+von einem nicht umbrechbaren Leerzeichen vordefiniert. Die \PName{Bezeichnung}
+der Variablen \Variable{backaddress} wird von \KOMAScript{} nicht genutzt.
+\BeginIndexGroup\BeginIndex{FontElement}{backaddress}%
+\LabelFontElement{backaddress}%
+Die Schriftart der Rücksendeadresse ist über das Element
+\FontElement{backaddress}\important{\FontElement{backaddress}}
+konfigurierbar. Voreingestellt ist hierbei \Macro{sffamily} (siehe
+\autoref{tab:\LabelBase.AddresseeElements}). Vor der Anwendung der
+konfigurierten Schriftumschaltung wird noch \Macro{scriptsize} ausgeführt.%
+\EndIndexGroup
+
+Während die Adresse in der Voreinstellung
+\OptionValue{addrfield}{true}\ChangedAt{v3.17}{\Class{scrlttr2}\and
+ \Package{scrletter}} im für die Anschrift verfügbaren Platz vertikal
+zentriert wird, entfällt die Zentrierung mit
+\OptionValue{addrfield}{topaligned}%
+\important{\OptionValue{addrfield}{topaligned}}. Sie wird dann oben bündig im
+verfügbaren Platz gesetzt.
+
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}[{%
+ Schriftvoreinstellungen für die Elemente des Anschriftfensters%
+ }]{%
+ \hspace{0pt plus 1ex}%
+ Voreinstellungen für die Schrift der Elemente des Anschriftfensters%
+ \label{tab:\LabelBase.AddresseeElements}%
+ }%
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Element & Voreinstellung \\
+ \midrule
+ \DescRef{\LabelBase.fontelement.addressee}\IndexFontElement{addressee} &
+ \\
+ \DescRef{\LabelBase.fontelement.backaddress}\IndexFontElement{backaddress} &
+ \Macro{sffamily}%
+ \\
+ \DescRef{\LabelBase.fontelement.PPdata}\IndexFontElement{PPdata} &
+ \Macro{sffamily}%
+ \\
+ \DescRef{\LabelBase.fontelement.PPlogo}\IndexFontElement{PPlogo} &
+ \Macro{sffamily}\Macro{bfseries}%
+ \\
+ \DescRef{\LabelBase.fontelement.priority}\IndexFontElement{priority} &
+ \Macro{fontsize}\PParameter{10pt}\PParameter{10pt}%
+ \Macro{sffamily}\Macro{bfseries}%
+ \\
+ \DescRef{\LabelBase.fontelement.prioritykey}\IndexFontElement{prioritykey} &
+ \Macro{fontsize}\PParameter{24.88pt}\PParameter{24.88pt}%
+ \Macro{selectfont}%
+ \\
+ \DescRef{\LabelBase.fontelement.specialmail}\IndexFontElement{specialmail} &
+ \\
+ \DescRef{\LabelBase.fontelement.toaddress}\IndexFontElement{toaddress} &
+ \\
+ \DescRef{\LabelBase.fontelement.toname}\IndexFontElement{toname} &
+ \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{specialmail}\LabelFontElement{specialmail}
+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
+wird, was der Voreinstellung entspricht. Die \PName{Bezeichnung} von
+\Variable{specialmail} wird durch \Class{scrlttr2} nicht genutzt. Die
+Ausrichtung wird mit Hilfe der Pseudolängen \PLength{specialmailindent} und
+\PLength{specialmailrightindent} (siehe
+\DescPageRef{scrlttr2-experts.plength.specialmailindent}) festgelegt. Die
+voreingestellte Schriftart des Elements\ChangedAt{v2.97c}{\Class{scrlttr2}}
+\FontElement{specialmail}\important{\FontElement{specialmail}}, die Sie
+\autoref{tab:\LabelBase.AddresseeElements} entnehmen können, kann mit Hilfe
+der Anweisungen \DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
+verändert werden.%
+\EndIndexGroup
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{priority}\LabelFontElement{priority}%
+\BeginIndex{FontElement}{prioritykey}\LabelFontElement{prioritykey}%
+Wird\ChangedAt{v3.03}{\Class{scrlttr2}}\important{\normalcolor
+ \OptionValue{priority}{A}\\
+ \normalcolor\OptionValue{priority}{B}} hingegen mit
+\OptionValue{priority}{A} oder \OptionValue{priority}{B} (siehe
+\autoref{tab:\LabelBase.priority}) eine internationale Priorität ausgewählt,
+so wird diese bei \OptionValue{addrfield}{true} als Versandart und bei
+\OptionValue{addrfield}{PP}\important{\OptionValue{addrfield}{PP}} an
+entsprechender Stelle im Port-Payé-Kopf gesetzt. Dabei wird die
+Grundschrift\important{\FontElement{priority}\\
+ \FontElement{prioritykey}} über das Element \FontElement{priority} und die
+davon abweichende Schrift für den Prioritätsschlüssel, »A« oder »B«, über das
+Element \FontElement{prioritykey} bestimmt. Die voreingestellten Schriftarten
+der beiden Elemente, die Sie \autoref{tab:\LabelBase.AddresseeElements}
+entnehmen können, kann mit Hilfe der Anweisungen
+\DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
+verändert werden.%
+\EndIndexGroup
+
+\begin{table}
+ \caption[{Mögliche Werte für Option \Option{priority} bei
+ \Class{scrlttr2} und \Class{scrletter}}]
+ {Mögliche Werte für Option \Option{priority} zur
+ Auswahl einer internationalen Priorität im Adressfeld}
+ \label{tab:\LabelBase.priority}
+ \begin{desctabular}
+ \entry{\PValue{false}, \PValue{off}, \PValue{no}, \PValue{manual}}{%
+ Es wird keine Priorität gesetzt.}%
+ \entry{\PValue{B}, \PValue{b}, \PValue{economy}, \PValue{Economy},
+ \PValue{ECONOMY}, \PValue{B-ECONOMY}, \PValue{B-Economy},
+ \PValue{b-economy}}{%
+ Es wird die internationale Priorität B-Economy gesetzt. Bei
+ \OptionValue{addrfield}{true} erfolgt dies anstelle der Versandart.}%
+ \entry{\PValue{A}, \PValue{a}, \PValue{priority}, \PValue{Priority},
+ \PValue{PRIORITY}, \PValue{A-PRIORITY}, \PValue{A-Priority},
+ \PValue{a-priority}}{%
+ Es wird die internationale Priorität A-Priority gesetzt. Bei
+ \OptionValue{addrfield}{true} erfolgt dies anstelle der Versandart.}%
+ \end{desctabular}
+\end{table}
+
+Bei\ChangedAt{v3.03}{\Class{scrlttr2}}\important{\OptionValue{addrfield}{PP}}
+\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:\LabelBase.lcoFile} ab \autopageref{sec:\LabelBase.lcoFile})
+ab. Für den \PName{Inhalt} von \Variable{zipcodeseparator} ist hingegen
+\iffalse % Umbruchvarianten
+ein kleiner Abstand, gefolgt von einem Streckenstrich, gefolgt von einem
+kleinen Abstand (\Macro{,}\texttt{-{}-}\Macro{,}) %
+\else%
+»\Macro{,}\texttt{-{}-}\Macro{,}« %
+\fi%
+voreingestellt.
+
+Darüber\ChangedAt{v3.03}{\Class{scrlttr2}} hinaus wird bei
+\OptionValue{addrfield}{PP}\important{\OptionValue{addrfield}{PP}} im
+Port-Payé-Kopf auch noch ein Code gesetzt, der den Absender eindeutig
+identifiziert. Dieser ist in Variable \Variable{PPcode} abgelegt. Rechts von
+der Anschrift kann zusätzlich eine Data-Matrix gesetzt werden, die in Variable
+\Variable{PPdatamatrix} abgelegt ist.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{PPdata}\LabelFontElement{PPdata}
+Postleitzahl\ChangedAt{v3.03}{\Class{scrlttr2}}, Ort und Code werden in der
+Voreinstellung mit einer Schrift der Größe 8\,pt gesetzt. Dabei wird die
+Schrift des Elements \FontElement{PPdata}%
+\important{\FontElement{PPdata}} verwendet. Dessen Voreinstellung ist
+\autoref{tab:\LabelBase.AddresseeElements} zu entnehmen und kann mit Hilfe der
+Anweisungen \DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
+verändert werden.%
+\EndIndexGroup
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{PPlogo}\LabelFontElement{PPlogo}
+Für den Port-Payé-Schriftzug »P.P.« kommt dagegen die Schrift des Elements
+\FontElement{PPlogo}\important{\FontElement{PPlogo}} zur Anwendung. Dessen
+Voreinstellung ist ebenfalls Tabelle
+\autoref{tab:\LabelBase.AddresseeElements} zu entnehmen.%
+\EndIndexGroup
+
+Bei\important{\OptionValue{addrfield}{backgroundimage}\\
+ \OptionValue{addrfield}{image}} den beiden Einstellungen
+\OptionValue{addrfield}{backgroundimage}\ChangedAt{v3.03}{\Class{scrlttr2}}
+und \OptionValue{addrfield}{image} wird eine Abbildung in das Adressfenster
+gesetzt. Diese ist im \PName{Inhalt} der Variablen \Variable{addresseeimage}
+abgelegt. Die \PName{Bezeichnung} dieser Variablen wird von \KOMAScript{}
+nicht genutzt. Während bei Einstellung \OptionValue{addrfield}{image} außer der
+Abbildung nichts gesetzt wird, wird bei
+\OptionValue{addrfield}{backgroundimage} zusätzlich noch die Anschrift aus dem
+obligatorischen Argument der \DescRef{\LabelBase.env.letter}-Umgebung
+ausgegeben.
+
+Die Anordnung des Port-Payé-Kopfes wird ebenso wie die Anordnung der
+Port-Payé-Anschrift über die Pseudolängen \PLength{toaddrindent} (siehe
+\DescPageRef{scrlttr2-experts.plength.toaddrindent}) sowie
+\PLength{PPheadwidth} und \PLength{PPheadheight} (siehe
+\DescPageRef{scrlttr2-experts.plength.PPheadheight}) bestimmt. Für die
+Anordnung der Data-Matrix ist die Pseudolänge \PLength{PPdatamatrixvskip}
+(siehe \DescPageRef{scrlttr2-experts.plength.PPdatamatrixvskip})
+zuständig.
+
+Es\textnote{Achtung!} wird an dieser Stelle ausdrücklich darauf hingewiesen,
+dass \KOMAScript{} selbst keine externen Abbildungen setzen kann, sollen also
+über die Variablen \Variable{addresseeimage} oder \Variable{PPdatamatrix}
+externe Abbildungen gesetzt werden, so ist beispielsweise das Grafikpaket
+\Package{graphics}\IndexPackage{graphics} oder
+\Package{graphicx}\IndexPackage{graphicx} zu laden und in den Variablen dessen
+Anweisung \Macro{includegraphics} zu verwenden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{locfield}{Einstellung}
+\end{Declaration}
+\BeginIndex{}{Absenderergaenzung=Absenderergänzung}%
+Neben dem Anschriftfeld setzt \Class{scrlttr2} noch ein Feld mit erweiterter
+Absenderangabe. Der Inhalt ist frei wählbar. Je\important{%
+ \OptionValueRef{\LabelBase}{fromalign}{locationleft}\\
+ \OptionValueRef{\LabelBase}{fromalign}{center}\\
+ \OptionValueRef{\LabelBase}{fromalign}{locationright}} nach Einstellung der
+oben erklärten Option \DescRef{\LabelBase.option.fromalign} wird es außerdem
+für das Logo des Absenders oder den Absender selbst mitverwendet. Die Breite
+dieses Feldes kann beispielsweise in einer \File{lco}-Datei (siehe
+\autoref{sec:\LabelBase.lcoFile}) gesetzt werden. Wird dort die Breite 0
+gesetzt, so kann über die Option \Option{locfield} zwischen zwei
+unterschiedlichen Voreinstellungen für die Breite dieses Feldes gewählt
+werden. Dies ist bei der Mehrzahl der \File{lco}-Dateien der Fall, die
+\KOMAScript{} beiliegen. Siehe hierzu auch die Erklärungen zur Pseudolänge
+\PLength{locwidth} in \autoref{sec:scrlttr2-experts.locationField},
+\DescPageRef{scrlttr2-experts.plength.locwidth}. Mögliche Werte für die Option
+sind \autoref{tab:\LabelBase.locfield} zu
+entnehmen. Voreingestellt\textnote{Voreinstellung} ist \PValue{narrow}.
+%
+\begin{table}
+% \caption
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [{Mögliche Werte für Option \Option{locfield} bei
+ \Class{scrlttr2}}]
+ {Mögliche Werte für Option \Option{locfield} zur Wahl der Breite des
+ Feldes für die Absenderergänzung bei \Class{scrlttr2}%
+ \label{tab:\LabelBase.locfield}}%
+ [l]
+ \begin{minipage}[t]{.55\linewidth}
+ \begin{desctabular}[t]
+ \pventry{narrow}{schmales Feld für Absenderergänzungen}%
+ \pventry{wide}{breites Feld für Absenderergänzungen}%
+ \end{desctabular}
+ \end{minipage}
+ \end{captionbeside}
+\end{table}
+
+\begin{Declaration}
+ \Variable{location}
+\end{Declaration}
+Der Inhalt der Absenderergänzung, soweit er nicht durch Logo oder den Absender
+selbst belegt ist, wird mit der Variablen \Variable{location} festgelegt. Für
+den \PName{Inhalt} dieser Variablen dürfen auch Formatierungsanweisungen, wie
+\Macro{raggedright}, verwendet werden. Die \PName{Bezeichnung} dieser Variablen
+wird von \KOMAScript{} nicht genutzt.
+
+\begin{Example}
+ Herr Musterfrau möchte ein paar zusätzliche Informationen zu seiner
+ Mitgliedschaft angeben. Er wählt dazu die Absenderergänzung:%
+ \lstinputcode[xleftmargin=1em]{letter-19.tex}%
+ Das entsprechende Feld neben der Anschrift wird dann wie in
+ \autoref{fig:\LabelBase.letter-19} gesetzt.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Beispiel: Brief mit erweitertem Absender, Logo,
+ Anschrift, Absenderergänzung, Anrede, Text, Grußfloskel,
+ Signatur, Postskriptum, Anlagen, Verteiler und Lochermarke}]{Ergebnis
+ eines kleinen Briefes mit erweitertem Absender, Logo,
+ Anschrift, Absenderergänzung, Anrede, Text, Grußfloskel, Signatur,
+ Postskriptum, Anlagen, Verteiler und Lochermarke (das Datum entstammt
+ den Voreinstellungen für DIN-Briefe)}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-19}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-19}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{numericaldate}{Ein-Aus-Wert}
+\end{Declaration}
+Mit dieser Option kann zwischen der sprachabhängigen Standarddarstellung des
+Datums\Index{Datum}\Index{Geschaeftszeile=Geschäftszeile} und einem ebenfalls
+sprachabhängigen, kurzen, rein nummerischen Datum umgeschaltet werden. Die
+Standarddarstellung wird nicht von \KOMAScript{} bereitgestellt. Sie kann
+wahlweise von einem Paket wie \Package{ngerman}\IndexPackage{ngerman},
+\Package{babel}\IndexPackage{babel} oder auch
+\Package{isodate}\IndexPackage{isodate}
+stammen. Das\important{\OptionValue{numericaldate}{true}} kurze nummerische
+Datum wird hingegen von \Class{scrlttr2} selbst erzeugt. Die Option versteht
+die Standardwerte für einfache Schalter, die in \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch} angegeben
+sind. Voreingestellt\textnote{Voreinstellung} ist mit \PValue{false} die
+Verwendung der Standarddarstellung.
+
+\begin{Declaration}
+ \Variable{date}
+\end{Declaration}
+Das Datum in der gewählten Darstellung wird im \PName{Inhalt} der Variablen
+\Variable{date} abgelegt. Die Einstellung von
+\DescRef{\LabelBase.option.numericaldate}%
+\important{\DescRef{\LabelBase.option.numericaldate}} hat keine Auswirkung,
+wenn diese Variable überschrieben wird. Gesetzt wird das Datum 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 \DescRef{\LabelBase.option.refline} Auswirkungen auf
+diese Datumszeile. Weitere Informationen zum Ort finden Sie in der
+Beschreibung zur Variablen
+\DescRef{\LabelBase.variable.placeseparator}\IndexVariable{placeseparator} auf
+\DescPageRef{\LabelBase.variable.placeseparator}.%
+%
+\EndIndexGroup
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{refline}{Einstellung}
+\end{Declaration}
+\BeginIndex{}{Geschaeftszeile=Geschäftszeile}%
+Insbesondere bei Geschäftsbriefen findet sich häufig eine Zeile mit Angaben
+wie Namenskürzeln\Index{Kuerzel=Kürzel}, Durchwahl\Index{Durchwahl},
+Kunden-\Index{Kundennummer} und Rechnungsnummer\Index{Rechnungsnummer} oder
+zur Bezugnahme auf ein früheres Schreiben. Diese Zeile wird in dieser
+Anleitung \emph{Geschäftszeile}\textnote{Geschäftszeile} genannt.
+
+Bei \Class{scrlttr2} und \Package{scrletter} können Kopf, Fuß, Anschrift und
+das Feld mit der Absenderergänzung links und rechts aus dem normalen
+Satzspiegel herausragen. Über
+\OptionValue{refline}{wide}\important{\OptionValue{refline}{wide}} kann
+gewählt werden, dass dies auch für die Geschäftszeile gelten soll. Die
+Geschäftszeile enthält normalerweise zumindest das Datum, kann aber auch
+weitere Angaben aufnehmen. Mögliche Werte für diese Option sind
+\autoref{tab:\LabelBase.refline} zu
+entnehmen. Voreingestellt\textnote{Voreinstellung} sind \PValue{narrow} und
+\PValue{dateright}\ChangedAt{v3.09}{\Class{scrlttr2}}.%
+%
+\begin{table}
+ \caption[{Mögliche Werte für Option \Option{refline} bei
+ \Class{scrlttr2} und \Package{scrletter}}]
+ {Mögliche Werte für Option \Option{refline} zur
+ Konfiguration der Geschäftszeile}
+ \label{tab:\LabelBase.refline}
+ \begin{desctabular}
+ \pventry{dateleft}{\ChangedAt{v3.09}{\Class{scrlttr2}}%
+ Das Datum steht automatisch links in der Geschäftszeile.}%
+ \pventry{dateright}{\ChangedAt{v3.09}{\Class{scrlttr2}}%
+ Das Datum steht automatisch rechts in der Geschäftszeile.}%
+ \pventry{narrow}{Die Breite der Geschäftszeile richtet sich nach dem
+ Satzspiegel.}%
+ \pventry{nodate}{\ChangedAt{v3.09}{\Class{scrlttr2}}%
+ Das Datum wird nicht automatisch in die Geschäftszeile gesetzt.}%
+ \pventry{wide}{Die Breite der Geschäftszeile richtet sich nach Anschrift
+ und Absenderergänzung.}%
+ \end{desctabular}
+\end{table}
+
+\begin{Declaration}
+ \Variable{yourref}
+ \Variable{yourmail}
+ \Variable{myref}
+ \Variable{customer}
+ \Variable{invoice}
+\end{Declaration}
+Typische Felder der Geschäftszeile werden über die fünf Variablen
+\Variable{yourref}, \Variable{yourmail}, \Variable{myref}, \Variable{customer}
+und \Variable{invoice} verwaltet. %
+\iffalse % Umbruchkorrektur
+Die Bedeutung dieser Felder %
+\else %
+Ihre Bedeutung %
+\fi %
+ist \autoref{tab:\LabelBase.variables}, \autopageref{tab:\LabelBase.variables}
+zu entnehmen. Jede dieser Variablen hat auch eine vordefinierte
+\PName{Bezeichnung}, die in \autoref{tab:\LabelBase.reflineTerm} zu finden
+ist. Wie weitere Variablen zur Geschäftszeile hinzugefügt werden können, ist
+in \autoref{sec:scrlttr2-experts.variables} ab
+\DescPageRef{scrlttr2-experts.cmd.newkomavar} erklärt.
+
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}
+ [{Vordefinierte Bezeichnungen der Variablen der
+ Geschäftszeile}]
+ {Vordefinierte Bezeichnungen der typischen Variablen der
+ Geschäftszeile unter Verwendung sprachabhängiger Anweisungen%
+ \label{tab:\LabelBase.reflineTerm}%
+ }
+ [l]
+ \begin{tabular}[t]{lll}
+ \toprule
+ Name & Bezeichnung & bei deutscher Sprache \\
+ \midrule
+ \Variable{yourref} & \DescRef{scrlttr2-experts.cmd.yourrefname} & Ihr Zeichen \\
+ \Variable{yourmail} & \DescRef{scrlttr2-experts.cmd.yourmailname} & Ihr Schreiben vom \\
+ \Variable{myref} & \DescRef{scrlttr2-experts.cmd.myrefname} & Unser Zeichen \\
+ \Variable{customer} & \DescRef{scrlttr2-experts.cmd.customername} & Kundennummer \\
+ \Variable{invoice} & \DescRef{scrlttr2-experts.cmd.invoicename} & Rechnungsnummer \\
+ \DescRef{\LabelBase.variable.date} & \DescRef{scrlttr2-experts.cmd.datename} & Datum \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{refname}\LabelFontElement{refname}%
+\BeginIndex{FontElement}{refvalue}\LabelFontElement{refvalue}%
+Schriftart und Farbe\ChangedAt{v2.97c}{\Class{scrlttr2}} der Feldbezeichnung
+und des Feldinhalts können über die beiden Elemente
+\FontElement{refname}\important{\FontElement{refname}, \FontElement{refvalue}}
+und \FontElement{refvalue} geändert werden. Dazu werden die Anweisungen
+\DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
+verwendet. Die Voreinstellungen der \iffree{beiden }{}Elemente sind
+\autoref{tab:\LabelBase.refnamerefvalue} zu entnehmen.%
+\begin{table}[tp]
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}
+ [{Schriftvoreinstellungen für die Elemente der Geschäftszeile}]
+ {Voreinstellungen für die Schrift der Elemente der Geschäftszeile%
+ \label{tab:\LabelBase.refnamerefvalue}}
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Element & Voreinstellung \\
+ \midrule
+ \FontElement{refname} & \Macro{sffamily}\Macro{scriptsize} \\
+ \FontElement{refvalue} & \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Variable{placeseparator}
+\end{Declaration}%
+Sind bis auf \DescRef{\LabelBase.variable.date}%
+\important{\DescRef{\LabelBase.variable.date}}\IndexVariable{date} alle
+Variablen der Geschäftszeile leer, so wird keine eigentliche Geschäftszeile
+gesetzt. Stattdessen werden dann nur Ort\Index{Ort} und Datum\Index{Datum}
+ausgegeben. Dabei bestimmt der \PName{Inhalt} der Variablen
+\DescRef{\LabelBase.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
+vordefinierte\textnote{Voreinstellung} \PName{Inhalt} des Trennzeichens ist
+dabei ein Komma, gefolgt von einem nicht umbrechbaren Leerzeichen. Ist der Ort
+leer, so wird auch das Trennzeichen nicht gesetzt. Der vordefinierte
+\PName{Inhalt} der Variablen \DescRef{\LabelBase.variable.date} ist
+\Macro{today}\IndexCmd{today}\important{\Macro{today}} und hängt von der
+Einstellung der Option \DescRef{\LabelBase.option.numericaldate}%
+\important{\DescRef{\LabelBase.option.numericaldate}}%
+\IndexOption{numericaldate} ab (siehe
+\DescPageRef{\LabelBase.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
+\DescRef{\LabelBase.option.refline}\IndexOption{refline}%
+\important{\DescRef{\LabelBase.option.refline}}, wie sie in
+\autoref{tab:\LabelBase.refline} angegeben ist, Anwendung.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{placeanddate}\LabelFontElement{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 \DescRef{\LabelBase.fontelement.refvalue} Anwendung. Stattdessen wird
+in diesem Fall das Element
+\FontElement{placeanddate}\important{\FontElement{placeanddate}} verwendet,
+dessen leere Voreinstellung wie gewohnt mit Hilfe der Anweisungen
+\DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup}, \DescPageRef{\LabelBase.cmd.setkomafont})
+geändert werden kann.%
+\EndIndexGroup
+
+\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:\LabelBase.letter-20},
+ \autopageref{fig:\LabelBase.letter-20} zu sehen, der Ort, gefolgt von den
+ automatischen Trennzeichen vor dem Datum. Dieses Datum wurde im Beispielcode
+ über Variable \DescRef{\LabelBase.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,
+ Anschrift, Absenderergänzung, Ort, Datum, Anrede, Text,
+ Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und
+ Lochermarke}]{Ergebnis eines kleinen Briefes mit erweitertem Absender,
+ Logo, Anschrift, Absenderergänzung, Ort, Datum, Anrede,
+ Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und
+ Lochermarke}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-20}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-20}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+\EndIndexGroup
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Variable{title}
+\end{Declaration}
+Bei \KOMAScript{} kann ein Brief zusätzlich mit einem Titel\Index{Titel}
+versehen werden. Der Titel wird zentriert in der Schriftgröße \Macro{LARGE}
+unterhalb der Geschäftszeile ausgegeben.
+
+\BeginIndex{FontElement}{lettertitle}\LabelFontElement{lettertitle}%
+\BeginIndex{FontElement}{title}\LabelFontElement{title}%
+Die Schriftart für das Element\ChangedAt{v3.17}{\Class{scrlttr2}\and
+ \Package{scrletter}} \FontElement{lettertitle}%
+\important{\FontElement{lettertitle}} kann mit den Anweisungen
+\DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup} ab
+\DescPageRef{\LabelBase.cmd.setkomafont}) geändert werden. Dabei sind auch
+Größenangaben erlaubt. Die Größe \Macro{LARGE} wird der Schriftauswahl
+innerhalb von \KOMAScript{} immer vorangestellt und ist daher auch nicht
+Teil\textnote{Voreinstellung} der Voreinstellung
+\Macro{normalcolor}\Macro{sffamily}\Macro{bfseries}. Bei
+\Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} kann als Alias für
+\FontElement{lettertitle} auch
+\FontElement{title}\important{\FontElement{title}} verwendet werden. Bei
+Verwendung von \Package{scrletter} mit einer \KOMAScript-Klasse ist das
+nicht\textnote{Achtung!} möglich, da bei diesen Klassen bereits ein Element
+\FontElement{title} mit abweichender Einstellung für den Dokumenttitel
+existiert.%
+\EndIndex{FontElement}{title}%
+\EndIndex{FontElement}{lettertitle}%
+\begin{Example}
+ Angenommen, Sie schreiben eine Mahnung. Sie setzen einen
+ entsprechenden Titel:
+\begin{lstcode}
+ \setkomavar{title}{Mahnung}
+\end{lstcode}
+ Damit sollte der Empfänger die Mahnung als solche erkennen.
+\end{Example}
+Während der \PName{Inhalt} der Variablen, wie im Beispiel gezeigt, den Titel
+definiert, wird die \PName{Bezeichnung} der Variablen \Variable{title} von
+\KOMAScript{} nicht genutzt.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{subject}{Einstellung}
+ \Variable{subject}
+ \Variable{subjectseparator}
+\end{Declaration}
+\BeginIndex{}{Betreff}%
+Um einen Betreff zu setzen, legt man den \PName{Inhalt} der Variablen
+\Variable{subject} entsprechend fest. Mit Option
+\OptionValue{subject}{titled}\important{\OptionValue{subject}{titled}} kann
+dann zum einen gewählt werden, dass der Betreff mit einem Titel versehen
+werden soll oder nicht. Der Titel wird über die Bezeichnung der Variablen
+\Variable{subject} bestimmt (siehe \autoref{tab:\LabelBase.subjectTerm}).
+Der\textnote{Voreinstellung} vordefinierte Inhalt des
+Trennzeichens\Index{Trennzeichen} \Variable{subjectseparator} besteht aus
+einem Doppelpunkt, gefolgt von einem Leerzeichen.
+
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}
+ [{Vordefinierte Bezeichnungen der Variablen für den Betreff}]
+ {\hspace{0pt plus 1ex}%
+ Vordefinierte Bezeichnungen der Variablen für den Betreff}
+ [l]
+ \begin{tabular}[t]{lll}
+ \toprule
+ Name & Bezeichnung \\
+ \midrule
+ \Variable{subject} & \DescRef{\LabelBase.cmd.usekomavar*}\PParameter{subjectseparator}%
+ \texttt{\%} \\
+ & \texttt{\quad}%
+ \DescRef{\LabelBase.cmd.usekomavar}\PParameter{subjectseparator} \\
+ \Variable{subjectseparator} & \DescRef{scrlttr2-experts.cmd.subjectname} \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+ \label{tab:\LabelBase.subjectTerm}
+\end{table}
+
+Zum anderen kann über \OptionValue{subject}{afteropening}%
+\important{\OptionValue{subject}{afteropening}\\
+ \OptionValue{subject}{beforeopening}} gewählt werden, dass der Betreff
+abweichend von der Voreinstellung
+\OptionValue{subject}{beforeopening} erst nach der Anrede gesetzt werden
+soll. Eine andere Formatierung%
+\important{\OptionValue{subject}{underlined}\\
+ \OptionValue{subject}{centered}\\
+ \OptionValue{subject}{right}} kann mit \OptionValue{subject}{underlined} und
+\OptionValue{subject}{centered} oder
+\OptionValue{subject}{right}\ChangedAt{v2.97c}{\Class{scrlttr2}} eingestellt
+werden. Mögliche Werte für Option \Option{subject} sind
+\autoref{tab:\LabelBase.subject} zu entnehmen. Es\textnote{Achtung!} wird
+ausdrücklich darauf hingewiesen, dass bei der Einstellung
+\OptionValue{subject}{underlined} der Betreff komplett in eine Zeile passen
+muss! Voreingestellt\textnote{Voreinstellung} sind
+\OptionValue{subject}{left}, \OptionValue{subject}{beforeopening} und
+\OptionValue{subject}{untitled}.%
+%
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+% \caption
+ \begin{captionbeside}
+ [{Mögliche Werte für Option \Option{subject} bei \Class{scrlttr2}}]
+ {\hspace{0pt plus 1ex}%
+ Mögliche Werte für Option \Option{subject} zur Platzierung und
+ Formatierung eines Betreffs bei \Class{scrlttr2}%
+ \label{tab:\LabelBase.subject}}
+ [l]
+ \begin{minipage}[t]{.667\linewidth}
+ \begin{desctabular}[t]
+ \pventry{afteropening}{Betreff nach der Anrede setzen}%
+ \pventry{beforeopening}{Betreff vor der Anrede setzen}%
+ \pventry{centered}{Betreff zentrieren}%
+ \pventry{left}{Betreff linksbündig setzen}%
+ \pventry{right}{Betreff rechtsbündig setzen}%
+ \pventry{titled}{Betreff mit Titel versehen}%
+ \pventry{underlined}{Betreff unterstreichen (Hinweis im
+ Text beachten!)}%
+ \pventry{untitled}{Betreff nicht mit Titel versehen}%
+ \end{desctabular}
+ \end{minipage}
+ \end{captionbeside}
+\end{table}
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{lettersubject}\LabelFontElement{lettersubject}%
+\BeginIndex{FontElement}{subject}\LabelFontElement{subject}%
+Der Betreff wird in einer eigenen Schriftart\Index{Schrift>Art} gesetzt. Um
+diese zu ändern, verwenden Sie die Anweisungen
+\DescRef{\LabelBase.cmd.setkomafont} und
+\DescRef{\LabelBase.cmd.addtokomafont} (siehe
+\autoref{sec:\LabelBase.textmarkup} ab
+\DescPageRef{\LabelBase.cmd.setkomafont}). Für das
+Element\ChangedAt{v3.17}{\Class{scrlttr2}\and \Package{scrletter}}
+\FontElement{lettersubject}\important{\FontElement{lettersubject}} ist als
+Schrift \Macro{normalcolor}\Macro{bfseries} voreingestellt. Bei Klasse
+\Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} kann als Alias für
+\FontElement{lettersubject} auch
+\FontElement{subject}\important{\FontElement{subject}} verwendet werden. Bei
+Verwendung von Paket \Package{scrletter} mit einer \KOMAScript-Klasse ist das
+nicht\textnote{Achtung!} möglich, da bei diesen Klassen bereits ein Element
+\FontElement{subject} mit abweichender Einstellung für den Dokumenttitel
+existiert.
+\EndIndexGroup
+
+\begin{Example}
+ Herr Musterfrau setzt nun auch den Betreff. Als eher traditioneller
+ veranlagter Mensch möchte er außerdem, dass der Betreff mit einer
+ entsprechenden Spitzmarke versehen wird, und setzt deshalb auch die
+ zugehörige Option:%
+ \lstinputcode[xleftmargin=1em]{letter-21.tex}%
+ Das Ergebnis ist in \autoref{fig:\LabelBase.letter-21} zu sehen.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Beispiel: Brief mit erweitertem Absender, Logo,
+ Anschrift, Absenderergänzung, Ort, Datum, Betreff, Anrede, Text,
+ Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und
+ Lochermarke}]{Ergebnis eines kleinen Briefes mit erweitertem Absender,
+ Logo, Anschrift, Absenderergänzung, Ort, Datum, Betreff,
+ Anrede, Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler
+ und Lochermarke}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-21}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-21}
+ \end{figure}
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{firstfoot}{Ein-Aus-Wert}
+\end{Declaration}
+\BeginIndex{}{Briefbogenfuss=Briefbogenfuß}%
+Diese\ChangedAt{v2.97e}{\Class{scrlttr2}} Option bestimmt, ob der
+Briefbogenfuß überhaupt gesetzt wird. Das Abschalten mit
+\OptionValue{firstfoot}{false}\important{\OptionValue{firstfoot}{false}} hat
+Auswirkungen wenn gleichzeitig Option
+\DescRef{\LabelBase.option.enlargefirstpage} (siehe
+\DescPageRef{\LabelBase.option.enlargefirstpage}) verwendet wird, da sich
+dadurch die Seite logisch nach unten verlängert. Zwischen dem Ende des
+Satzspiegels und dem Seitenende bleibt dann nur der normale Abstand zwischen
+Satzspiegel und Seitenfuß.
+
+Die Option versteht die Standardwerte für einfache Schalter, die in
+\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} angegeben
+sind. Voreingestellt\textnote{Voreinstellung} ist das Setzen des
+Briefbogenfußes.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Variable{firstfoot}
+\end{Declaration}%
+\BeginIndex{}{Briefbogenfuss=Briefbogenfuß}%
+Der Fuß der ersten Seite ist in der Voreinstellung leer. Es besteht jedoch die
+Möglichkeit, über den \PName{Inhalt} der
+Variablen\ChangedAt{v3.08}{\Class{scrlttr2}} \Variable{firstfoot} einen
+neue Festlegung zu treffen. Die \PName{Bezeichnung} der Variablen wird von
+\KOMAScript{} nicht genutzt.
+
+\BeginIndex{Variable}{frombank}%
+\begin{Example}
+ Sie wollen den Inhalt der Variablen \DescRef{\LabelBase.variable.frombank}, also die
+ Bankverbindung im Fuß der ersten Seite ausgeben. Der doppelte
+ Backslash soll dabei durch ein Komma ersetzt werden:
+\begin{lstcode}
+ \setkomavar{firstfoot}{%
+ \parbox[b]{\linewidth}{%
+ \centering\def\\{, }\usekomavar{frombank}%
+ }%
+ }
+\end{lstcode}
+ Natürlich können Sie für das Trennzeichen auch eine eigene Variable
+ definieren. Ich überlasse dem Leser dies als Übung.
+
+ Will man eine Art Brief"|fuß als Gegengewicht zum Briefkopf verwenden, so
+ kann dieser beispielsweise wie folgt definiert werden:
+\begin{lstcode}
+ \setkomavar{firstfoot}{%
+ \parbox[t]{\textwidth}{\footnotesize
+ \begin{tabular}[t]{l@{}}%
+ \multicolumn{1}{@{}l@{}}{Gesellschafter:}\\
+ Hugo Mayer\\
+ Bernd Müller
+ \end{tabular}%
+ \hfill
+ \begin{tabular}[t]{l@{}}%
+ \multicolumn{1}{@{}l@{}}{Geschäftsführung:}\\
+ Liselotte Mayer\\[1ex]
+ \multicolumn{1}{@{}l@{}}{Gerichtsstand:}\\
+ Hinterdupfeldingen
+ \end{tabular}%
+ \ifkomavarempty{frombank}{}{%
+ \hfill
+ \begin{tabular}[t]{l@{}}%
+ \multicolumn{1}{@{}l@{}}{%
+ \usekomavar*{frombank}:}\\
+ \usekomavar{frombank}
+ \end{tabular}%
+ }%
+ }%
+ }
+\end{lstcode}
+ Das Beispiel stammt ursprünglich von Torsten Krüger. Es wird empfohlen, eine
+ solche Definition für die mehrfache Verwendung in unterschiedlichen
+ Dokumenten in einer eigenen
+ \File{lco}-Datei\Index{lco-Datei=\File{lco}-Datei} abzulegen. Mit
+\begin{lstcode}
+ \setkomavar{frombank}{IBAN DE21~87654321~13456789\\
+ bei der HansWurstBank\\
+ BIC GRMLDEHD000}
+\end{lstcode}
+ kann die Bankverbindung dann im Dokument passend dazu gesetzt werden.%
+\iffalse% Umbruchkorrekturmöglichkeit
+ \ Abhängig\textnote{Achtung!} von den Voreinstellungen ist ein solch hoher
+ Fuß jedoch eventuell nicht vorgesehen und wird deshalb möglicherweise zu
+ tief platziert. In einem solchen Fall kann die vertikale Position über die
+ Pseudolänge \DescRef{scrlttr2-experts.plength.firstfootvpos}%
+ \important{\DescRef{scrlttr2-experts.plength.firstfootvpos}}%
+ \IndexPLength{firstfootvpos} angepasst werden (siehe
+ \DescPageRef{scrlttr2-experts.plength.firstfootvpos}).%
+\fi
+\end{Example}
+
+Im\textnote{Achtung!} Beispiel wurde ein mehrzeiliger Fuß gesetzt. Bei einer
+Kompatibilitätseinstellung ab Version
+2.9u\important{\OptionValueRef{\LabelBase}{version}{2.9u}} (siehe
+\DescRef{\LabelBase.option.version} in
+\autoref{sec:\LabelBase.compatibilityOptions},
+\DescPageRef{\LabelBase.option.version}) reicht der Platz dafür in der Regel
+nicht aus. Sie sollten dann \PLength{firstfootvpos} (siehe
+\DescPageRef{scrlttr2-experts.plength.firstfootvpos}) entsprechend
+verringern.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Variable{frombank}
+\end{Declaration}%
+\BeginIndex{}{Briefbogenfuss=Briefbogenfuß} Die im vorherigen Beispiel
+verwendete Variable \Variable{frombank} nimmt derzeit eine Sonderstellung
+ein. Sie wird intern bisher nicht verwendet. Sie kann jedoch vom Anwender
+verwendet werden, um die Bankverbindung\Index{Bankverbindung} in das
+Absenderergänzungsfeld (siehe Variable \DescRef{\LabelBase.variable.location},
+\DescPageRef{\LabelBase.variable.location}) oder wie im Beispiel in den Fuß zu
+setzen.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\LoadCommonFile{parmarkup}% \section{Absatzauszeichnung}
+
+\LoadCommonFile{oddorevenpage}% \section{Erkennung von rechten und linken Seiten}
+
+
+\section{Kopf und Fuß bei vordefinierten Seitenstilen}
+\seclabel{pagestyle}
+\BeginIndexGroup
+\BeginIndex{}{Seiten>Stil}
+
+Eine der allgemeinen Eigenschaften eines Dokuments ist der Seitenstil. Bei
+{\LaTeX} versteht man unter dem Seitenstil in erster Linie den Inhalt der
+Kopf- und Fußzeilen. Wie\textnote{Achtung!} bereits in
+\autoref{sec:\LabelBase.firstpage} erwähnt, werden Kopf und Fuß des Briefbogens
+als Elemente des Briefbogens betrachtet und unterliegen damit nicht den
+Einstellungen für den Seitenstil. Es geht also hier im Wesentlichen um den
+Seitenstil der weiteren Briefseiten nach dem Briefbogen. Bei einseitigen
+Briefen ist das der Seitenstil des Zweitbogens. Bei doppelseitigen Briefen ist
+auch der Seitenstil aller Rückseiten betroffen.
+
+
+\begin{Declaration}
+ \Macro{letterpagestyle}
+\end{Declaration}
+Der\ChangedAt{v3.19}{\Class{scrlttr2}\and \Package{scrletter}} für Briefe
+voreingestellte Seitenstil wird durch den Inhalt dieser Anweisung bestimmt. In
+der Voreinstellung\textnote{Voreinstellung} von
+\Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} ist die Anweisung leer
+definiert. Das bedeutet, dass der Seitenstil von Briefen dem des restlichen
+Dokuments entspricht. Dies ist deshalb sinnvoll, weil \Class{scrlttr2} für
+reine Briefdokumente gedacht ist und es dafür einfacher ist, den Seitenstil
+wie gewohnt mit \DescRef{\LabelBase.cmd.pagestyle} global einzustellen.
+
+Da sowohl Seitenstil \DescRef{\LabelBase.pagestyle.plain} als auch der Stil
+\DescRef{\LabelBase.pagestyle.headings} anderer Klassen vom gewünschten
+Seitenstil für Briefe abweicht, ist für das Paket
+\Package{scrletter}\OnlyAt{\Package{scrletter}}\textnote{Voreinstellung} der
+Seitenstil
+\DescRef{\LabelBase.pagestyle.plain.letter}\IndexPagestyle{plain.letter}%
+\important{\DescRef{\LabelBase.pagestyle.plain.letter}} in der Anweisung
+\Macro{letterpagestyle} gespeichert. Damit werden alle Briefe mit dem zum
+Seitenstil \DescRef{\LabelBase.pagestyle.letter}\IndexPagestyle{letter}
+gehörenden
+\hyperref[desc:\LabelBase.pagestyle.plain.letter]{\PageStyle{plain}}-Seitenstil
+gesetzt unabhängig davon, was für das restliche Dokument als Seitenstil
+eingestellt ist.
+\begin{Example}
+ Sie wollen auch bei Verwendung von Paket \Package{scrletter}, dass die
+ Briefe in dem Seitenstil gesetzt werden, der für das Dokument selbst mit
+ \DescRef{\LabelBase.cmd.pagestyle} eingestellt wurde. Dazu schreiben sie die
+ Anweisung
+\begin{lstcode}
+ \renewcommand*{\letterpagestyle}{}
+\end{lstcode}
+ in die Dokumentpräambel. Dabei ist übrigens der Stern bei
+ \Macro{renewcommand*} wichtig!%
+\end{Example}
+Natürlich haben die Anweisung \DescRef{\LabelBase.cmd.pagestyle} und
+\DescRef{\LabelBase.cmd.thispagestyle} innerhalb eines Briefes Vorrang vor dem
+innerhalb von \Macro{begin}\PParameter{letter} über \Macro{letterpagestyle}
+eingestellten Seitenstil.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{headsepline}{Ein-Aus-Wert}
+ \OptionVName{footsepline}{Ein-Aus-Wert}
+\end{Declaration}%
+Mit diesen Optionen kann bei \Class{scrlttr2}\OnlyAt{scrlttr2} eingestellt
+werden, ob eine Trennlinie\Index{Trennlinie}\Index{Linie} unter dem
+Kopf\Index{Seiten>Kopf} oder über dem Fuß\Index{Seiten>Fuss=Fuß} von
+Folgeseiten gewünscht wird. Als \PName{Ein-Aus-Wert} kann einer der
+Standardwerte für einfache Schalter aus \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch} verwendet
+werden. Ein\important{\OptionValue{headsepline}{true}} Aktivieren der Option
+\Option{headsepline} schaltet die Linie unter dem Kopf
+ein. Ein\important{\OptionValue{footsepline}{true}} Aktivieren der Option
+\Option{footsepline} schaltet die Linie über dem Fuß ein. Die Deaktivierung
+der Optionen schaltet die jeweilige Linie aus.
+
+Beim Seitenstil \DescRef{\LabelBase.pagestyle.empty}%
+\important{\DescRef{\LabelBase.pagestyle.empty}} (siehe später in
+diesem Abschnitt) haben die Optionen \Option{headsepline} und
+\Option{footsepline} selbstverständlich keine Auswirkung. Bei diesem
+Seitenstil soll ja auf Seitenkopf\Index{Seiten>Kopf} und
+Seitenfuß\Index{Seiten>Fuss=Fuß} ausdrücklich verzichtet werden.
+
+Typografisch\important{\DescRef{\LabelBase.pagestyle.headings}\\
+ \DescRef{\LabelBase.pagestyle.myheadings}\\
+ \DescRef{\LabelBase.pagestyle.plain}} betrachtet hat eine solche Linie immer
+die Auswirkung, dass der Kopf oder Fuß optisch näher an den Text heranrückt.
+Dies bedeutet nun nicht, dass Kopf oder Fuß räumlich weiter vom
+Textkörper\Index{Text>Bereich} weggerückt werden müssten. Stattdessen sollten
+sie dann bei der Berechnung des Satzspiegels als zum Textkörper gehörend
+betrachtet werden. Dies wird bei \Class{scrlttr2} dadurch erreicht, dass bei
+Verwendung der Klassenoption \Option{headsepline} automatisch die Paketoption
+\DescRef{typearea.option.headinclude}%
+\important{\DescRef{typearea.option.headinclude}} mit gleichem Wert an das
+\hyperref[cha:typearea]{\Package{typearea}}-Paket weitergereicht
+wird. Entsprechendes gilt bei \DescRef{\LabelBase.option.footsepline} für
+\DescRef{typearea.option.footinclude}%
+\important{\DescRef{typearea.option.footinclude}}.
+
+Die Optionen führen selbst keine automatische Neuberechnung des Satzspiegels
+aus. Zur Neuberechnung des Satzspiegels siehe Option
+\DescRef{typearea.option.DIV} mit den Werten \PValue{last} oder
+\PValue{current} (siehe \DescPageRef{typearea.option.DIV.last}) oder die
+Anweisung \DescRef{typearea.cmd.recalctypearea} (siehe
+\DescPageRef{typearea.cmd.recalctypearea}) in \autoref{cha:typearea}.
+
+Das Paket \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} (siehe
+\autoref{cha:scrlayer-scrpage}) bietet weitere Einflussmöglichkeiten für
+Linien im Kopf und Fuß und kann auch mit \Class{scrlttr2} kombiniert
+werden. Das Paket \Package{scrletter} verwendet hingegen automatisch
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} zur
+Definition der Seitenstile \DescRef{\LabelBase.pagestyle.letter} und
+\DescRef{\LabelBase.pagestyle.plain.letter}.
+
+Die von \Package{scrletter}\OnlyAt{\Package{scrletter}} definierten Seitenstile
+\DescRef{\LabelBase.pagestyle.letter} und
+\DescRef{\LabelBase.pagestyle.plain.letter} unterliegen den Regeln von
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}. Dies betrifft
+insbesondere das Setzen der Linien in Kopf und Fuß des
+\PageStyle{plain}-Seitenstils
+\DescRef{\LabelBase.pagestyle.plain.letter}. Siehe dazu in
+\autoref{sec:scrlayer-scrpage.pagestyle.content},
+\DescPageRef{scrlayer-scrpage.option.headsepline} und
+\DescPageRef{scrlayer-scrpage.option.plainheadsepline} die Optionen
+\DescRef{scrlayer-scrpage.option.headsepline} und
+\DescRef{scrlayer-scrpage.option.plainheadsepline}. Auch Einstellungen wie
+\DescRef{scrlayer-scrpage.option.automark} sind für den Seitenstil
+\DescRef{\LabelBase.pagestyle.letter} von einiger Bedeutung.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{pagenumber}{Position}
+\end{Declaration}
+Mit Hilfe dieser Option kann bestimmt werden, ob und wo eine Seitenzahl auf
+Folgeseiten gesetzt werden soll. Die Option wirkt sich bei
+\Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} auf die
+Seitenstile\important{\DescRef{\LabelBase.pagestyle.headings}\\
+ \DescRef{\LabelBase.pagestyle.myheadings}\\
+ \DescRef{\LabelBase.pagestyle.plain}}
+\DescRef{\LabelBase.pagestyle.headings},
+\DescRef{\LabelBase.pagestyle.myheadings} und
+\DescRef{\LabelBase.pagestyle.plain} und bei
+\Package{scrletter}\OnlyAt{\Package{scrletter}} auf
+\DescRef{\LabelBase.pagestyle.letter} und
+\DescRef{\LabelBase.pagestyle.plain.letter} aus. Sie beeinflusst außerdem die
+Voreinstellung der Seitenstile des Pakets
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}%
+\IndexPackage{scrlayer-scrpage}, soweit sie vor dem Laden des Pakets gesetzt
+wird (siehe \autoref{cha:scrlayer-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:\LabelBase.pagenumber} zu
+entnehmen. Voreingestellt\textnote{Voreinstellung} ist \PValue{botcenter}.
+
+\begin{table}[t!]% Umbruchkorrektur
+ \caption[{Mögliche Werte für Option \Option{pagenumber} bei \Class{scrlttr2}
+ und \Package{scrletter}}]{Mögliche Werte für Option \Option{pagenumber}
+ zur Positionierung der Paginierung innerhalb der Seitenstile}
+ \label{tab:\LabelBase.pagenumber}
+ \begin{desctabular}
+ \entry{\PValue{bot}, \PValue{foot}}{%
+ Seitenzahl im Fuß ohne Änderung der horizontalen Position}%
+ \entry{\PValue{botcenter}, \PValue{botcentered}, \PValue{botmittle},
+ \PValue{footcenter}, \PValue{footcentered}, \PValue{footmiddle}}{%
+ Seitenzahl zentriert innerhalb des Fußes}%
+ \entry{\PValue{botleft}, \PValue{footleft}}{%
+ Seitenzahl links im Fuß}%
+ \entry{\PValue{botright}, \PValue{footright}}{ Seitenzahl rechts im Fuß}%
+ \entry{\PValue{center}, \PValue{centered}, \PValue{middle}}{%
+ Seitenzahl zentriert ohne Änderung der vertikalen Position}%
+ \entry{\PValue{false}, \PValue{no}, \PValue{off}}{%
+ keine Seitenzahl}%
+ \entry{\PValue{head}, \PValue{top}}{%
+ Seitenzahl im Kopf ohne Änderung der horizontalen Position}%
+ \entry{\PValue{headcenter}, \PValue{headcentered}, \PValue{headmiddle},
+ \PValue{topcenter}, \PValue{topcentered}, \PValue{topmiddle}}{%
+ Seitenzahl zentriert innerhalb des Kopfes}%
+ \entry{\PValue{headleft}, \PValue{topleft}}{%
+ Seitenzahl links im Kopf}%
+ \entry{\PValue{headright}, \PValue{topright}}{%
+ Seitenzahl rechts im Kopf}%
+ \entry{\PValue{left}}{%
+ Seitenzahl links ohne Änderung der vertikalen Position}%
+ \entry{\PValue{right}}{%
+ Seitenzahl rechts ohne Änderung der vertikalen Position}%
+ \end{desctabular}
+\end{table}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{pagestyle}\Parameter{Seitenstil}
+ \Macro{thispagestyle}\Parameter{lokaler Seitenstil}
+\end{Declaration}%
+\BeginIndex{Pagestyle}{empty}%
+\BeginIndex{Pagestyle}{plain}%
+\BeginIndex{Pagestyle}{headings}%
+\BeginIndex{Pagestyle}{myheadings}%
+Bei Briefen mit \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} wird zwischen vier
+verschiedenen Seitenstilen unterschieden. Dagegen definiert
+\Package{scrletter}\OnlyAt{\Package{scrletter}} nur zwei eigene Seitenstile.
+\begin{description}\setkomafont{descriptionlabel}{}
+\item[{\PageStyle{empty}}]
+ \LabelPageStyle{empty}%
+ ist der Seitenstil, bei dem Kopf- und Fußzeile von
+ Folgeseiten vollständig leer bleiben. Dieser Seitenstil wird auch
+ automatisch für die erste Briefseite verwendet, da auf dieser Seite Kopf und
+ Fuß über \DescRef{\LabelBase.cmd.opening}\IndexCmd{opening} (siehe
+ \autoref{sec:\LabelBase.firstpage}, \DescPageRef{\LabelBase.cmd.opening})
+ mit anderen Mitteln gesetzt werden.
+\item[{\PageStyle{headings}}]
+ \LabelPageStyle{headings}%
+ ist bei \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} der Seitenstil für
+ automatische Kolumnentitel auf Folgeseiten. Dabei werden als automatisch
+ gesetzte Marken der Absendername aus der Variablen
+ \DescRef{\LabelBase.variable.fromname}\IndexVariable{fromname} und der
+ Betreff aus der Variablen
+ \DescRef{\LabelBase.variable.subject}\IndexVariable{subject} verwendet
+ (siehe \autoref{sec:\LabelBase.firstpage},
+ \DescPageRef{\LabelBase.variable.fromname} und
+ \DescPageRef{\LabelBase.variable.subject}). Wo genau diese Marken und die
+ Seitenangabe ausgegeben werden, hängt von der oben erklärten Option
+ \DescRef{\LabelBase.option.pagenumber} und dem Inhalt der Variablen
+ \DescRef{\LabelBase.variable.nexthead}\IndexVariable{nexthead} und
+ \DescRef{\LabelBase.variable.nextfoot}\IndexVariable{nextfoot} ab. Der Autor
+ kann die Marken aber auch noch nach \DescRef{\LabelBase.cmd.opening} manuell
+ beeinflussen. Hierzu stehen wie üblich die Anweisungen
+ \DescRef{\LabelBase.cmd.markboth} und \DescRef{\LabelBase.cmd.markright},
+ bei Verwendung von
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ \IndexPackage{scrlayer-scrpage}%
+ \important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}
+ auch \DescRef{scrlayer-scrpage.cmd.markleft} (siehe
+ \autoref{sec:scrlayer-scrpage.pagestyle.content},
+ \DescPageRef{scrlayer-scrpage.cmd.markleft}), zur Verfügung.
+
+ Da \Package{scrletter}\OnlyAt{scrletter} intern
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} verwendet, wird
+ ein eventuell von der Klasse bereitgestellter Seitenstil
+ \DescRef{maincls.pagestyle.headings} als Alias von
+ \DescRef{scrlayer-scrpage.pagestyle.scrheadings} umdefiniert. Näheres zu
+ diesem Seitenstil ist in \autoref{cha:scrlayer-scrpage} auf
+ \DescPageRef{scrlayer-scrpage.pagestyle.scrheadings} zu erfahren.
+\item[{\PageStyle{letter}}]
+ \LabelPageStyle{letter}%
+ Da der Seitenstil \PageStyle{headings} im allgemeinen bereits von den
+ Klassen belegt ist, definiert das Paket
+ \Package{scrletter}\OnlyAt{scrletter} stattdessen einen Seitenstil
+ \PageStyle{letter}. Dies geschieht mit Hilfe von
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} aus
+ \autoref{cha:scrlayer-scrpage}, \autopageref{cha:scrlayer-scrpage}. Bei der
+ Einstellung \OptionValueRef{scrlayer-scrpage}{automark}{true}%
+ \important{\OptionValueRef{scrlayer-scrpage}{automark}{true}}%
+ \IndexOption{automark} übernimmt \PageStyle{letter} dann die Rolle, die bei
+ \Class{scrlttr2} von \PageStyle{headings} ausgefüllt wird. Bei
+ \OptionValueRef{scrlayer-scrpage}{automark}{false}%
+ \important{\OptionValueRef{scrlayer-scrpage}{automark}{false}}%
+ \IndexOption{automark} übernimmt \PageStyle{letter} dagegen die Rolle von
+ \PageStyle{myheadings}.
+
+ Durch\textnote{Achtung!} die Verwendung von
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} kann das
+ veraltete Paket \Package{scrpage2}\IndexPackage{scrpage2}
+ oder das mit \KOMAScript{} wenig kompatible Paket
+ \Package{fancyhdr}\IndexPackage{fancyhdr} nicht zusammen mit
+ \Package{scrletter} verwendet werden.
+\item[{\PageStyle{myheadings}}]
+ \LabelPageStyle{myheadings}%
+ ist bei \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} 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 \DescRef{\LabelBase.cmd.markboth}\IndexCmd{markboth} und
+ \DescRef{\LabelBase.cmd.markright}\IndexCmd{markright}. Bei Verwendung von
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} steht außerdem
+ \DescRef{scrlayer-scrpage.cmd.markleft}\IndexCmd{markleft} zur Verfügung.
+
+ Beim Paket \Package{scrletter}\OnlyAt{\Package{scrletter}} übernimmt der
+ Seitenstil \PageStyle{letter} ebenfalls die Rolle von
+ \PageStyle{myheadings}.
+\item[{\PageStyle{plain}}]
+ \LabelPageStyle{plain}%
+ ist bei \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}}
+ der voreingestellte Seitenstil, bei dem auf Folgeseiten keinerlei
+ Kolumnentitel verwendet, sondern nur eine Seitenangabe ausgegeben wird. Wo
+ diese gesetzt wird, hängt von der oben erklärten Option
+ \DescRef{\LabelBase.option.pagenumber} ab.
+
+ Da \Package{scrletter}\OnlyAt{scrletter} intern
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} verwendet, wird
+ der Seitenstil \DescRef{maincls.pagestyle.plain} als Alias von
+ \DescRef{scrlayer-scrpage.pagestyle.plain.scrheadings} umdefiniert. Näheres
+ zu diesem Seitenstil ist in \autoref{cha:scrlayer-scrpage} auf
+ \DescPageRef{scrlayer-scrpage.pagestyle.scrheadings} zu erfahren.
+\item[{\PageStyle{plain.letter}}]
+ \LabelPageStyle{plain.letter}%
+ Da der Seitenstil \PageStyle{plain} im allgemeinen bereits von den Klassen
+ belegt ist, definiert das Paket \Package{scrletter}\OnlyAt{scrletter}
+ stattdessen einen Seitenstil \PageStyle{plain.letter}. Dies geschieht mit
+ Hilfe von \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}.
+ Durch\textnote{Achtung!} diese Verwendung von
+ \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} kann das
+ veraltete Pakete \Package{scrpage2}\IndexPackage{scrpage2} oder das mit
+ \KOMAScript{} wenig kompatible Paket
+ \Package{fancyhdr}\IndexPackage{fancyhdr} nicht zusammen mit
+ \Package{scrletter} verwendet werden.
+\end{description}
+
+Die Form der Seitenstile wird außerdem durch die oben erklärten
+Optionen\important{\DescRef{\LabelBase.option.headsepline}\\
+ \DescRef{\LabelBase.option.footsepline}}
+\DescRef{\LabelBase.option.headsepline}\IndexOption{headsepline} und
+\DescRef{\LabelBase.option.footsepline}\IndexOption{footsepline}
+beeinflusst. Der Seitenstil ab der aktuellen Seite wird mit \Macro{pagestyle}
+umgeschaltet. Demgegenüber verändert \Macro{thispagestyle} nur den Seitenstil
+der aktuellen Seite. \KOMAScript\textnote{Achtung!} verwendet
+\Macro{thispagestyle}\PParameter{empty} selbst innerhalb von
+\DescRef{\LabelBase.cmd.opening}\IndexCmd{opening} für die erste Briefseite.
+
+\BeginIndexGroup
+\BeginIndex[indexother]{}{Schrift>Art}%
+\BeginIndex{FontElement}{pageheadfoot}\LabelFontElement{pageheadfoot}%
+\BeginIndex{FontElement}{pagefoot}\LabelFontElement{pagefoot}%
+\BeginIndex{FontElement}{pagenumber}\LabelFontElement{pagenumber}%
+Um die Schriftart von Kopf und Fuß der Seite oder der Seitenangabe zu ändern,
+verwenden Sie die Benutzerschnittstelle, die in
+\autoref{sec:\LabelBase.textmarkup} beschrieben ist. Für den Kopf und den Fuß
+ist dabei das gleiche Element zuständig, das Sie wahlweise mit
+\FontElement{pageheadfoot}\important{\FontElement{pagehead}} oder
+\FontElement{pagehead} benennen können. Für den
+Fuß\ChangedAt{v3.00}{\Class{scrlttr2}} ist zusätzlich auch noch das Element
+\FontElement{pagefoot}\important{\FontElement{pagefoot}} zuständig, das nach
+\FontElement{pageheadfoot} in mit Variable
+\DescRef{\LabelBase.variable.nextfoot}\IndexVariable{nextfoot} oder per Paket
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} (siehe
+\autoref{cha:scrlayer-scrpage},
+\DescPageRef{scrlayer-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
+Voreinstellungen sind in \autoref{tab:maincls.defaultFontsHeadFoot},
+\autopageref{tab:maincls.defaultFontsHeadFoot} zu finden. Beachten Sie dazu
+auch das Beispiel aus \autoref{sec:maincls.pagestyle},
+\PageRefxmpl{maincls.cmd.pagestyle}.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{markboth}\Parameter{linke Marke}\Parameter{rechte Marke}
+ \Macro{markright}\Parameter{rechte Marke}
+\end{Declaration}
+In den meisten Fällen werden die Möglichkeiten, die \KOMAScript{} über
+Optionen und Variablen für die Gestaltung des Seitenkopfes\Index{Kopf} und
+-fußes\Index{Fuss=Fuß} auf Folgeseiten\Index{Folgeseite} zur Verfügung stellt,
+vollkommen ausreichen. Dies gilt umso mehr, als man zusätzlich mit
+\Macro{markboth} und \Macro{markright} die Möglichkeit hat, die Angaben zu
+ändern, die \Class{scrlttr2} oder \Package{scrletter} in den Kopf setzt. Die
+Anweisungen \Macro{markboth}\IndexCmd{markboth} und
+\Macro{markright}\IndexCmd{markright} können insbesondere mit dem Seitenstil
+\PageStyle{myheadings}%
+\IndexPagestyle{myheadings}\important{\PageStyle{myheadings}} verwendet
+werden. Bei Verwendung des Pakets
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\IndexPackage{scrlayer-scrpage}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}} gilt
+dies natürlich auch für den Seitenstil \PageStyle{scrheadings}%
+\IndexPagestyle{scrheadings}\important{\PageStyle{scrheadings}}. Dort steht
+außerdem die Anweisung \DescRef{scrlayer-scrpage.cmd.markleft}%
+\IndexCmd{markleft}\important{\DescRef{scrlayer-scrpage.cmd.markleft}} zur
+Verfügung (siehe \autoref{sec:scrlayer-scrpage.pagestyle.content},
+\DescPageRef{scrlayer-scrpage.cmd.markleft}).
+
+\begin{Declaration}
+ \Variable{nexthead}
+ \Variable{nextfoot}
+\end{Declaration}
+In einigen wenigen Fällen will man jedoch den Kopf oder Fuß der Folgeseiten
+ähnlich dem Briefbogen freier gestalten. In\textnote{Achtung!} diesen Fällen
+muss auf die vordefinierten Möglichkeiten, die per oben erklärter Option
+\DescRef{\LabelBase.option.pagenumber}\IndexOption{pagenumber} auswählbar
+sind, verzichtet werden. Stattdessen gestaltet man sich den Kopf und Fuß der
+Folgeseiten bei \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} im Seitenstil
+\DescRef{\LabelBase.pagestyle.headings}\IndexPagestyle{headings}%
+\important{\DescRef{\LabelBase.pagestyle.headings},
+ \DescRef{\LabelBase.pagestyle.myheadings}} oder
+\DescRef{\LabelBase.pagestyle.myheadings}\IndexPagestyle{myheadings} und bei
+\Package{scrletter}\OnlyAt{\Package{scrletter}} im Seitenstil
+\DescRef{\LabelBase.pagestyle.letter}%
+\IndexPagestyle{letter}\important{\DescRef{\LabelBase.pagestyle.letter}}
+frei. Dazu setzt man den gewünschten Aufbau als \PName{Inhalt} der
+Variablen\ChangedAt{v3.08}{\Class{scrlttr2}} \Variable{nexthead}
+beziehungsweise \Variable{nextfoot}. Innerhalb des Inhalts von
+\Variable{nexthead} und \Variable{nextfoot} können beispielsweise mit Hilfe
+der \Macro{parbox}-Anweisung (siehe \cite{latex:usrguide}) mehrere Boxen
+neben- und untereinander gesetzt werden. Einem versierten Anwender sollte es
+so möglich sein, eigene Seitenköpfe und "~füße zu gestalten. Natürlich kann
+und sollte im Wert mit Hilfe von \DescRef{\LabelBase.cmd.usekomavar} auch auf
+weitere Variablen zugegriffen werden. Die \PName{Bezeichnung} wird von
+\KOMAScript{} bei beiden Variablen nicht genutzt.%
+\EndIndexGroup
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\LoadCommonFile{interleafpage}% \section{Vakatseiten}
+
+\LoadCommonFile{footnotes}% \section{Fußnoten}
+
+\LoadCommonFile{lists}% \section{Listen}
+
+
+\section{Mathematik}
+\seclabel{math}%
+\BeginIndexGroup
+\BeginIndex{}{Mathematik}%
+\BeginIndex{}{Formeln}%
+\BeginIndex{}{Gleichungen}%
+
+Die \KOMAScript-Klassen stellen keine eigenen Umgebungen für mathematische
+Formeln, Gleichungssysteme oder ähnliche Elemente der Mathematik
+bereit. Stattdessen stützt sich \KOMAScript{} im Bereich der Mathematik voll
+und ganz auf den \LaTeX-Kern. Da\textnote{Achtung!} jedoch Mathematik in Form
+von nummerierten Gleichungen und Formeln in Briefen eher ungewöhnlich ist,
+unterstützt \KOMAScript{} dies nicht aktiv. Daher gibt es auch nicht die
+Optionen \DescRef{maincls.option.leqno} und \DescRef{maincls.option.fleqn},
+die in \autoref{sec:maincls.math}, \autopageref{sec:maincls.math} für
+\Class{scrbook}, \Class{scrreprt} und \Class{scrartcl} dokumentiert sind.%
+\iffalse% Umbruchkorrekturtext
+ \par
+ Auf eine Beschreibung der Mathematikumgebungen des \LaTeX-Kerns, also
+ \Environment{displaymath}\IndexEnv{displaymath},
+ \Environment{equation}\IndexEnv{equation} und
+ \Environment{eqnarray}\IndexEnv{eqnarray}, wird an dieser Stelle
+ verzichtet. Wer diese verwenden möchte, sei auf \cite{l2kurz} verwiesen. Für
+ mehr als nur einfachste mathematische Formeln und Gleichungen sei jedoch die
+ Verwendung von \Package{amsmath}\IndexPackage{amsmath} empfohlen (siehe
+ \cite{package:amsmath}).%
+\fi
+%
+\EndIndexGroup
+
+
+\section{Gleitumgebungen für Tabellen und Abbildungen}
+\seclabel{floats}
+
+Gleitumgebungen für Tabellen und Abbildungen sind in Briefen normalerweise
+fehl am Platz. Daher\textnote{Achtung!} werden sie von \Class{scrlttr2} auch
+nicht unterstützt. Wenn solche dennoch benötigt werden, deutet dies häufig auf
+einen Missbrauch der Briefklasse hin. In solchen Fällen ist stattdessen zu
+raten, eine der \KOMAScript-Klassen aus \autoref{cha:maincls} mit dem Paket
+\Package{scrletter}\important{\Package{scrletter}} zu kombinieren. In diesem
+Fall können Gleitumgebungen, wie für die Klasse dokumentiert, auch in Briefen
+verwendet werden. Die Möglichkeiten zur Definition eigener Gleitumgebungen mit
+Hilfe von \hyperref[cha:tocbasic]{\Package{tocbasic}}\IndexPackage{tocbasic}%
+\important{\hyperref[cha:tocbasic]{\Package{tocbasic}}}, wie sie in
+\autoref{cha:tocbasic} dokumentiert sind, können ebenfalls genutzt werden.
+
+\LoadCommonFile{marginpar}% \section{Randnotizen}
+
+
+\section{Schlussgruß}
+\seclabel{closing}
+\BeginIndexGroup
+\BeginIndex{}{Schlussgruss=Schlussgruß}
+
+Dass der Schlussgruß mit \DescRef{\LabelBase.cmd.closing}\IndexCmd{closing}
+gesetzt wird, wurde bereits in \autoref{sec:\LabelBase.document},
+\DescPageRef{\LabelBase.cmd.closing} erklärt. Unter dem Schlussgruß wird häufig
+noch eine Signatur, eine Art Erläuterung zur Unterschrift, gesetzt. Die
+Unterschrift wiederum findet Platz zwischen dem Schlussgruß und der Signatur.
+
+\begin{Declaration}
+ \Variable{signature}
+\end{Declaration}
+Die Variable \Variable{signature}\Index{Signatur} nimmt eine Art Erläuterung
+zur Unterschrift\Index{Unterschrift} auf. Ihr \PName{Inhalt} ist mit
+\DescRef{\LabelBase.cmd.usekomavar}\PParameter{fromname} vordefiniert. Eine
+solche Erläuterung kann auch mehrzeilig sein. Die einzelnen Zeilen sollten
+dann mit doppeltem Backslash voneinander getrennt
+werden. Absätze\textnote{Achtung!} innerhalb der Erläuterung sind jedoch nicht
+gestattet.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{raggedsignature}
+\end{Declaration}
+Grußfloskel\Index{Gruss=Gruß}\Index{Signatur} und Erläuterung der
+Unterschrift\Index{Unterschrift} werden innerhalb einer Box gesetzt. Die
+Breite dieser Box wird durch die längste Zeile innerhalb von Grußfloskel und
+Erläuterung bestimmt.
+
+Wo genau diese Box platziert wird, ist durch die Pseudolängen
+\PLength{sigindent}\IndexPLength{sigindent} und
+\PLength{sigbeforevskip}\IndexPLength{sigbeforevskip} (siehe
+\autoref{sec:scrlttr2-experts.closing},
+\DescPageRef{scrlttr2-experts.plength.sigindent}) bestimmt. Durch den Befehl
+\Macro{raggedsignature} wird die Ausrichtung innerhalb der Box bestimmt. In
+den vordefinierten \File{lco}-Dateien ist die Anweisung entweder auf
+\Macro{centering} (alle außer \Option{KOMAold}) oder auf \Macro{raggedright}
+(\Option{KOMAold}) gesetzt. Um innerhalb der Box beispielsweise eine
+linksbündige oder rechtsbündige Ausrichtung zu erhalten, kann der Befehl in
+gleicher Weise umdefiniert werden wie \DescRef{maincls.cmd.raggedsection}
+(siehe das entsprechende Beispiel in \autoref{sec:maincls.structure},
+\DescPageRef{maincls.cmd.raggedsection}).
+
+\begin{Example}
+ Herr Musterfrau will sich nun wirklich wichtig machen und deshalb in der
+ Signatur nochmals darauf hinweisen, dass er selbst auch mal
+ Vereinsvorsitzender war. Deshalb ändert er die Variable
+ \DescRef{\LabelBase.variable.signature}. Außerdem will er, dass die Signatur
+ linksbündig unter dem Schlussgruß steht, und definiert daher auch noch
+ \Macro{raggedsignature} um:%
+ \lstinputcode[xleftmargin=1em]{letter-22}%
+ Das Ergebnis ist in \autoref{fig:\LabelBase.letter-22} zu sehen.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Beispiel: Brief mit erweitertem Absender, Logo,
+ Anschrift, Absenderergänzung, Ort, Datum, Betreff, Anrede, Text,
+ Grußfloskel, geänderter Signatur, Postskriptum, Anlagen, Verteiler und
+ Lochermarke}]{Ergebnis eines kleinen Briefes mit erweitertem Absender,
+ Logo, Anschrift, Absenderergänzung, Ort, Datum, Betreff,
+ Anrede, Text, Grußfloskel, geänderter Signatur, Postskriptum, Anlagen,
+ Verteiler und Lochermarke}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-22}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-22}
+ \end{figure}
+\end{Example}
+
+\iftrue% Umbruchkorrekturtext
+ Das vorausgehende Beispiel zeigt die wichtigsten, aber nicht alle möglichen
+ Elemente eines Briefes. Es kann jedoch sehr gut als allgemeines Muster
+ dienen.%
+\fi
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\section{\emph{Letter-Class-Option}-Dateien}
+\seclabel{lcoFile}%
+\BeginIndexGroup
+\BeginIndex{}{lco-Datei=\File{lco}-Datei}%
+\BeginIndex{}{Letter-Class-Option}%
+
+Normalerweise wird man Einstellungen wie den Absender nicht in jedem Brief neu
+wählen, sondern diverse Parameter für bestimmte Gelegenheiten immer wieder
+verwenden. Ganz Ähnliches gilt für die verwendeten Briefköpfe und den
+Fußbereich der ersten Seite. Es ist deshalb sinnvoll, diese Einstellungen in
+einer eigenen Datei zu speichern. \KOMAScript{} bietet
+hierfür die \File{lco}-Dateien an. Die Endung \File{lco} steht
+für \emph{\emph{l}etter \emph{c}lass \emph{o}ption}, also
+Briefklassenoption. Dennoch finden diese Dateien für \Package{scrletter}
+ebenso Anwendung.
+
+In \File{lco}-Dateien können alle Anweisungen verwendet werden, die auch an
+der Stelle im Dokument verwendet werden könnten, an der %die \File{lco}-Datei
+sie mit \DescRef{\LabelBase.cmd.LoadLetterOption}
+geladen werden. Außerdem können interne Anweisungen verwendet werden, die für
+Paketautoren freigegeben sind. Bei \Class{scrlttr2} und \Package{scrletter}
+sind dies insbesondere die Anweisungen
+\DescRef{scrlttr2-experts.cmd.newplength}\IndexCmd{newplength},
+\DescRef{scrlttr2-experts.cmd.setplength}\IndexCmd{setplength} und
+\DescRef{scrlttr2-experts.cmd.addtoplength}\IndexCmd{addtoplength} (siehe
+\autoref{sec:scrlttr2-experts.pseudoLengths}).
+
+\KOMAScript{} liegen bereits einige \File{lco}-Dateien bei. Die Dateien
+\File{DIN.lco}, \File{DINmtext.lco}, \File{SNleft.lco}, \File{SN.lco},
+\File{UScommercial9}, \File{UScommercial9DW} und
+\File{NF.lco}\ChangedAt{v3.04}{\Class{scrlttr2}} dienen dazu, \Class{scrlttr2}
+und \Package{scrletter} an verschiedene Normen\Index{Norm} anzupassen. Sie
+können von angehenden Experten sehr gut als Vorlage für eigene Parametersätze
+verwendet werden. Die Datei \File{KOMAold.lco} dient hingegen dazu, die
+Kompatibilität zu \Class{scrlettr}\IndexClass{scrlettr} zu verbessern. Diese
+Klasse wurde schon vor über 15~Jahren aus \KOMAScript{} entfernt. Es wird
+daher nicht mehr näher darauf eingegangen. Da hierbei auch auf Anweisungen
+zurückgegriffen wird, die nicht für Paketautoren freigegeben sind, sollte man
+sie nicht als Vorlage für eigene \File{lco}-Dateien verwenden. Eine Liste
+aller vordefinierten \File{lco}-Dateien ist in \autoref{tab:lcoFiles},
+\autopageref{tab:lcoFiles} zu finden.
+
+Wenn Sie einen Parametersatz für eine Briefnorm, die bisher nicht von
+\KOMAScript{} unterstützt wird, erstellt haben, so sind Sie ausdrücklich
+gebeten, diesen Parametersatz an die Supportadresse von \KOMAScript{} zu
+schicken. Bitte geben Sie dabei auch die Erlaubnis zur Weiterverbreitung unter
+den Lizenzbedingungen von \KOMAScript{} (siehe dazu die Datei
+\href{http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/lppl-de.txt}%
+{\File{lppl-de.txt}} im \KOMAScript-Paket). Wenn Sie zwar über die notwendigen
+Maße aus einer bisher nicht unterstützen Briefnorm verfügen, sich jedoch nicht
+in der Lage sehen, selbst eine passende \File{lco}-Datei zu erstellen, so
+können Sie sich ebenfalls mit dem \KOMAScript-Autor in Verbindung
+setzen. Beispiele für teilweise sehr komplexe \File{lco}-Dateien finden sich
+unter anderem unter \cite{homepage} und in \cite{DANTE:TK0203:MJK}.
+
+
+\begin{Declaration}
+ \Macro{LoadLetterOption}\Parameter{Name}
+ \Macro{LoadLetterOptions}\Parameter{Liste von Namen}
+\end{Declaration}
+Bei \Class{scrlttr2}\OnlyAt{\Class{scrlttr2}} können \File{lco}-Dateien direkt
+über \DescRef{\LabelBase.cmd.documentclass} geladen werden. Dazu gibt man den
+Namen der \File{lco}-Datei ohne die Endung als Option\Index{Optionen} an. Das
+Laden der \File{lco}-Datei erfolgt dann direkt nach der Klasse. Das Paket
+\Package{scrletter}\textnote{Achtung!} bietet diese Möglichkeit nicht! Hier
+bleibt nur \File{lco}-Dateien über \Macro{LoadLetterOption}
+oder \Macro{LoadLetterOptions}\ChangedAt{v3.14}{\Class{scrlttr2}} zu
+laden. Für\textnote{Empfehlung!} \Class{scrlttr2} wird dies ebenfalls
+ausdrücklich empfohlen!
+
+\Macro{LoadLetterOption} und \Macro{LoadLetterOptions} können auch zu einem
+späteren Zeitpunkt, selbst nach \Macro{begin}\PParameter{document} und sogar
+innerhalb einer anderen \File{lco}-Datei verwendet werden. Der \PName{Name}
+der \File{lco}-Datei wird in diesen Fällen ebenfalls ohne Endung
+übergeben. Während als Argument von \Macro{LoadLetterOption} der \PName{Name}
+von genau einer \File{lco}-Datei erwartet wird, versteht
+\Macro{LoadLetterOptions} eine durch Komma separierte \PName{Liste von
+ Namen}. Die zu den Namen gehörenden \File{lco}-Dateien werden dann in der
+Reihenfolge der Angabe in der Liste geladen.
+\begin{Example}
+ Peter Musterfrau erstellt auch ein Dokument, in dem mehrere Briefe enthalten
+ sind. Die Mehrzahl der Briefe soll nach DIN erstellt werden. Also
+ beginnt er (siehe auch den Tipp auf \autopageref{tipp:\LabelBase.DIN}):
+\begin{lstcode}
+ \documentclass{scrlttr2}
+\end{lstcode}
+ Allerdings soll bei einem Brief stattdessen die Variante
+ \File{DINmtext} verwendet werden. Bei dieser steht das Adressfeld
+ weiter oben, damit mehr Text auf die erste Seite passt. Dafür ist
+ die Faltung so angepasst, dass das Adressfeld bei
+ DIN~C6/5-Umschlägen trotzdem in das Adressfenster passt. Sie
+ erreichen das so:
+\begin{lstcode}
+ \begin{letter}{%
+ Petra Mustermann\\
+ Vor dem Berg 1\\
+ 12345 Musterhausen}
+ \LoadLetterOption{DINmtext}
+ \opening{Hallo,}
+\end{lstcode}
+ Da der Aufbau der ersten Seite erst mit
+ \DescRef{\LabelBase.cmd.opening}\IndexCmd{opening} wirklich beginnt, genügt
+ es, wenn die \File{lco}-Datei vor \DescRef{\LabelBase.cmd.opening} geladen
+ wird. Dies muss also nicht vor \Macro{begin}\PParameter{letter}
+ erfolgen. Die Änderungen durch das Laden der \File{lco}-Datei sind dann auch
+ lokal zu dem entsprechenden Brief.
+\end{Example}
+
+Wird\ChangedAt{v2.97}{\Class{scrlttr2}} eine \File{lco}-Datei über
+\Macro{documentclass} geladen, so darf sie nicht den Namen einer Option
+haben.
+
+\begin{Example}
+ Da Herr Musterfrau regelmäßig Briefe mit immer gleichen Einstellungen
+ schreibt, findet er es ziemlich lästig, diese Angaben immer wieder in jeden
+ neuen Brief kopieren zu müssen. Zu seiner Erleichterung schreibt er deshalb
+ eine \File{lco}-Datei, die ihm die Arbeit erleichtert:%
+ \lstinputcode[xleftmargin=1em]{ich.lco}%
+ Damit schrumpft sein Brief aus dem letzten Beispiel erheblich zusammen:
+ \lstinputcode[xleftmargin=1em]{letter-23.tex}%
+ Das Ergebnis ändert sich jedoch nicht, wie \autoref{fig:\LabelBase.letter-23}
+ zeigt.
+ \begin{figure}
+ \setcapindent{0pt}%
+ \begin{captionbeside}[{Beispiel: Brief mit erweitertem Absender, Logo,
+ Anschrift, Absenderergänzung, Ort, Datum, Betreff, Anrede,
+ Text, Grußfloskel, geänderter Signatur, Postskriptum, Anlagen,
+ Verteiler und Lochermarke mit \File{lco}-Datei}]{Ergebnis eines
+ kleinen Briefes mit erweitertem Absender, Logo, Anschrift,
+ Absenderergänzung, Ort, Datum, Betreff, Anrede, Text, Grußfloskel,
+ geänderter Signatur, Postskriptum, Anlagen, Verteiler und Lochermarke
+ bei Verwendung einer \File{lco}-Datei}[l]
+ \frame{\includegraphics[width=.4\textwidth]{letter-23}}
+ \end{captionbeside}
+ \label{fig:\LabelBase.letter-23}
+ \end{figure}
+\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
+mit der Option \Option{SN}\IndexOption{SN} möglicherweise Probleme
+bekommen. Da die Schweizer Norm SN~101\,130 vorsieht, dass das Adressfeld
+8\Unit{mm} vom rechten Papierrand gesetzt wird, werden bei Schweizer Briefen
+auch die Kopfzeile und die Absenderergänzung mit einem entsprechend geringen
+Abstand zum Papierrand gesetzt. Dies betrifft ebenfalls die Geschäftszeile bei
+der Einstellung
+\OptionValueRef{\LabelBase}{refline}{wide}%
+\IndexOption{refline~=\textKValue{wide}}
+(siehe \autoref{sec:\LabelBase.firstpage},
+\DescPageRef{\LabelBase.option.refline}). Sollten\textnote{Tipp!} Sie damit
+ein Problem haben, erstellen Sie sich eine eigene \File{lco}-Datei, die
+zunächst \Option{SN} lädt und in der
+\DescRef{scrlttr2-experts.plength.toaddrhpos}\IndexPLength{toaddrhpos} (siehe
+\autoref{sec:scrlttr2-experts.addressee},
+\DescPageRef{scrlttr2-experts.plength.toaddrvpos}) dann auf einen kleineren
+Wert gesetzt wird. Verringern Sie dann außerdem
+\DescRef{scrlttr2-experts.plength.toaddrwidth}\IndexPLength{toaddrwidth}
+entsprechend.%
+
+Die\textnote{Tipp!}\phantomsection\label{tipp:\LabelBase.DIN} \File{lco}-Datei
+\File{DIN}\important{\Option{DIN}} wird übrigens immer als erste
+\File{lco}-Datei automatisch geladen, damit alle Pseudolängen mehr oder
+weniger sinnvoll vordefiniert sind. Es ist daher nicht notwendig diese
+voreingestellte Datei selbst zu laden.
+
+\begin{desclist}
+ \renewcommand*{\abovecaptionskipcorrection}{-\normalbaselineskip}%
+ \desccaption{%
+ Vordefinierte \File{lco}-Dateien\label{tab:lcoFiles}%
+ }{%
+ Vordefinierte \File{lco}-Dateien (\emph{Fortsetzung})%
+ }%
+ \oentry{DIN}{%
+ \leavevmode%
+ \IndexOption[indexmain]{DIN}\IndexFile[indexmain]{DIN.lco}%
+ Parametersatz für Briefe im Format A4 nach DIN~676; geeignet für
+ Fensterbriefumschläge in den Formaten C4, C5, C6 und C6/5 (C6 lang)}%
+ \oentry{DINmtext}{%
+ \leavevmode%
+ \IndexOption[indexmain]{DINmtext}\IndexFile[indexmain]{DINmtext.lco}%
+ Parametersatz für Briefe im Format A4 nach DIN~676, wobei die Alternative
+ für mehr Text auf der ersten Briefseite verwendet wird; nur geeignet für
+ Fensterbriefumschläge in den Formaten C6 und C6/5 (C6 lang)}%
+ \oentry{KakuLL}{%
+ \leavevmode%
+ \IndexOption[indexmain]{KakuLL}\IndexFile[indexmain]{KakuLL.lco}%
+ Parametersatz für japanische Briefe im Format A4; geeignet für japanische
+ Fensterbriefumschläge des Typs Kaku A4, bei denen das Fenster in etwa
+ 90\Unit{mm} breit, 45\Unit{mm} hoch, 25\Unit{mm} vom linken und
+ 24\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch \iffree{den
+ Anhang der englischen \KOMAScript-Anleitung}{\autoref{cha:japanlco}})}%
+ \oentry{KOMAold}{%
+ \leavevmode%
+ \IndexOption[indexmain]{KOMAold}\IndexFile[indexmain]{KOMAold.lco}%
+ \iffalse
+ existiert nur noch aus Kompatibilitätsgründen; die Verwendung wird nicht
+ mehr empfohlen%
+ \else
+ Parametersatz für Briefe im Format A4 mit Annäherung an das Aussehen von
+ Briefen der obsoleten Briefklasse \Class{scrlettr}; geeignet für
+ Fensterbriefumschläge in den Formaten C4, C5, C6 und C6/5 (C6 lang); es
+ werden einige zusätzliche Anweisungen zur Verbesserung der Kompatibilität
+ mit der obsoleten Briefklasse \Class{scrlettr}\IndexClass{scrlettr}
+ definiert; \Class{scrlttr2} verhält sich mit dieser \File{lco}-Datei
+ möglicherweise nicht genau wie bei Verwendung der übrigen
+ \File{lco}-Dateien%
+ \fi
+ }%
+ \oentry{NF}{%
+ \leavevmode%
+ \IndexOption[indexmain]{NF}\IndexFile[indexmain]{NF.lco}%
+ Parametersatz für französische Briefe nach NF~Z~11-001; geeignet für
+ Fensterbriefumschläge im Format DL (110\Unit{mm} auf 220\Unit{mm}) mit
+ einem Fenster von 45\Unit{mm} Breite und 100\Unit{mm} Höhe ca. jeweils
+ 20\Unit{mm} entfernt vom rechten unteren Rand; diese Datei wurde
+ ursprünglich von Jean-Marie Pacquet entwickelt, der auf \cite{www:NF.lco}
+ neben einer Erweiterung auch eine LyX-Einbindung bereitstellt.}%
+ \oentry{NipponEH}{%
+ \leavevmode%
+ \IndexOption[indexmain]{NipponEH}\IndexFile[indexmain]{NipponEH.lco}%
+ Parametersatz für japanische Briefe im Format A4; geeignet für japanische
+ Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das
+ Fenster in etwa 90\Unit{mm} breit, 55\Unit{mm} hoch, 22\Unit{mm} vom
+ linken und 12\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch
+ \iffree{den Anhang der englischen
+ \KOMAScript-Anleitung}{\autoref{cha:japanlco}})}%
+ \oentry{NipponEL}{%
+ \leavevmode%
+ \IndexOption[indexmain]{NipponEL}\IndexFile[indexmain]{NipponEL.lco}%
+ Parametersatz für japanische Briefe im Format A4; geeignet für japanische
+ Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das
+ Fenster in etwa 90\Unit{mm} breit, 45\Unit{mm} hoch, 22\Unit{mm} vom
+ linken und 12\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch
+ \iffree{den Anhang der englischen
+ \KOMAScript-Anleitung}{\autoref{cha:japanlco}})}%
+ \oentry{NipponLH}{%
+ \leavevmode%
+ \IndexOption[indexmain]{NipponLH}\IndexFile[indexmain]{NipponLH.lco}%
+ Parametersatz für japanische Briefe im Format A4; geeignet für japanische
+ Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das
+ Fenster in etwa 90\Unit{mm} breit, 55\Unit{mm} hoch, 25\Unit{mm} vom
+ linken und 12\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch
+ \iffree{den Anhang der englischen
+ \KOMAScript-Anleitung}{\autoref{cha:japanlco}})}%
+ \oentry{NipponLL}{%
+ \leavevmode%
+ \IndexOption[indexmain]{NipponLL}\IndexFile[indexmain]{NipponLL.lco}%
+ Parametersatz für japanische Briefe im Format A4; geeignet für japanische
+ Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das
+ Fenster in etwa 90\Unit{mm} breit, 45\Unit{mm} hoch, 25\Unit{mm} vom
+ linken und 12\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch
+ \iffree{den Anhang der englischen
+ \KOMAScript-Anleitung}{\autoref{cha:japanlco}})}%
+ \oentry{NipponRL}{%
+ \leavevmode%
+ \IndexOption[indexmain]{NipponRL}\IndexFile[indexmain]{NipponRL.lco}%
+ Parametersatz für japanische Briefe im Format A4; geeignet für japanische
+ Fensterbriefumschläge der Typen Chou oder You 3 oder 4, bei denen das
+ Fenster in etwa 90\Unit{mm} breit, 45\Unit{mm} hoch, 22\Unit{mm} vom
+ rechten und 28\Unit{mm} vom oberen Rand entfernt ist (siehe dazu auch
+ \iffree{den Anhang der englischen
+ \KOMAScript-Anleitung}{\autoref{cha:japanlco}})}%
+ \oentry{SN}{%
+ \leavevmode%
+ \IndexOption[indexmain]{SN}\IndexFile[indexmain]{SN.lco}%
+ Parametersatz für Schweizer Briefe nach SN~010\,130 mit Anschrift rechts;
+ geeignet für Schweizer Fensterbriefumschläge in den Formaten C4, C5, C6
+ und C6/5 (C6 lang)}%
+ \oentry{SNleft}{%
+ \leavevmode%
+ \IndexOption[indexmain]{SNleft}\IndexFile[indexmain]{SNleft.lco}%
+ Parametersatz für Schweizer Briefe mit Anschrift links; geeignet für
+ Schweizer Fensterbriefumschläge mit dem Fenster links in den Formaten C4,
+ C5, C6 und C6/5 (C6 lang)}%
+ \oentry{UScommercial9}{%
+ \leavevmode%
+ \IndexOption[indexmain]{UScommercial9}%
+ \IndexFile[indexmain]{UScommercial9.lco}%
+ Parametersatz für US-amerikanische Briefe im Format letter;
+ geeignet für US-amerikanische Fensterbriefumschläge der Größe
+ \emph{commercial~No.\,9} mit einem
+ Anschriftfenster der Breite 4\,1/2\Unit{in} und Höhe 1\,1/8\Unit{in} an
+ einer Position 7/8\Unit{in} von links und 1/2\Unit{in} von unten ohne
+ Rücksendeadresse im Fenster; bei Faltung zunächst an der Mittelmarke und
+ dann an der oberen Faltmarke kann auch Papier im Format legal verwendet
+ werden, führt dann jedoch zu einer Papiergrößen-Warnung}%
+ \oentry{UScommercial9DW}{%
+ \leavevmode%
+ \IndexOption[indexmain]{UScommercial9DW}%
+ \IndexFile[indexmain]{UScommercial9DW.lco}%
+ Parametersatz für US-amerikanische Briefe im Format letter;
+ geeignet für US-amerikanische Fensterbriefumschläge der Größe
+ \emph{commercial~No.\,9} mit einem
+ Anschriftfenster der Breite 3\,5/8\Unit{in} und Höhe 1\,1/8\Unit{in} an
+ einer Position 3/4\Unit{in} von links und 1/2\Unit{in} von unten mit
+ einem Absenderfenster der Breite 3\,1/2\Unit{in} und Höhe 7/8\Unit{in} an
+ einer Position 5/16\Unit{in} von links und 2\,1/2\Unit{in} von unten,
+ jedoch ohne Rücksendeadresse im Fenster; bei Faltung zunächst an der
+ Mittelmarke und dann an der oberen Faltmarke kann auch Papier im Format
+ legal verwendet werden, führt dann jedoch zu einer Papiergrößen-Warnung}%
+\end{desclist}
+
+Beachten\textnote{Achtung!} Sie bitte noch, dass es nicht möglich ist,
+innerhalb einer \File{lco}-Datei mittels \Macro{PassOptionsToPackage} Optionen
+an Pakete zu übergeben, die von der Klasse bereits geladen sind. Normalerweise
+betrifft dies nur die Pakete
+\hyperref[cha:typearea]{\Package{typearea}}\IndexPackage{typearea},
+\hyperref[cha:scrlfile]{\Package{scrlfile}}\IndexPackage{scrlfile},
+\hyperref[cha:scrbase]{\Package{scrbase}}\IndexPackage{scrbase} und
+\Package{keyval}\IndexPackage{keyval}.%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Adressdateien und Serienbriefe}
+\seclabel{addressFile}%
+\BeginIndexGroup
+\BeginIndex{}{Adressdatei}\BeginIndex{}{Serienbriefe}%
+
+Als besonders lästig wird bei Briefen immer das Eintippen der Adressen und das
+Erstellen von Serienbriefen betrachtet. \KOMAScript{} bietet
+hierfür%
+\iffalse% Umbruchkorrekturtext
+ , wie schon die obsolete Klasse \Class{scrlettr},%
+\fi%
+\ eine minimalistische Unterstützung.%
+\iffalse% Umbruchkorrekturtext
+ \ Eine stark verbesserte Serienbrief"|funktion ist bereits seit längerem in
+ Planung.%
+\fi
+
+\begin{Declaration}
+ \Macro{adrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}
+ \Parameter{Tel.}\Parameter{F1}\Parameter{F2}\Parameter{Kommentar}
+ \Parameter{Kürzel}
+\end{Declaration}
+Mit \Class{scrlttr2} und \Package{scrletter} können
+Adressdateien\Index[indexmain]{Adressdatei} ausgewertet werden. Dies ist
+beispielsweise für Serienbriefe sehr nützlich. Eine Adressdatei muss
+die Endung \File{.adr} haben und besteht aus einer Reihe von
+\Macro{adrentry}-Einträgen. Ein solcher Eintrag besteht aus acht
+Elementen und kann beispielsweise wie folgt aussehen:
+\begin{lstcode}
+ \adrentry{Maier}
+ {Herbert}
+ {Wiesenweg 37\\ 09091 Blumental}
+ {0\,23\,34 / 91\,12\,74}
+ {Bauunternehmer}
+ {}
+ {kauft alles}
+ {MAIER}
+\end{lstcode}
+Die Elemente fünf und sechs, \PName{F1} und \PName{F2}, können frei
+bestimmt werden. Denkbar wären neben Hinweisen auf das Geschlecht oder
+akademische Grade auch der Geburtstag oder das Eintrittsdatum in einen
+Verein. Um das Überschreiben von \TeX- oder \LaTeX-Anweisungen zu
+vermeiden, ist es empfehlenswert, für \PName{Kürzel} ausschließlich
+Großbuchstaben zu verwenden.
+
+\begin{Example}
+ Herr Maier gehört zu Ihren engeren Geschäftspartnern. Da Sie eine
+ rege Korrespondenz mit ihm pflegen, ist es Ihnen auf Dauer zu
+ mühsam, jedesmal alle Empfängerdaten aufs Neue einzugeben.
+ \KOMAScript{} nimmt Ihnen diese Arbeit ab. Angenommen, Sie haben
+ Ihre Kundenkontakte in der Datei \File{partner.adr} gespeichert und
+ Sie möchten Herrn Maier einen Brief schreiben, dann sparen Sie sich
+ viel Tipparbeit, wenn Sie Folgendes eingeben:
+\begin{lstcode}
+ \input{partner.adr}
+ \begin{letter}{\MAIER}
+ Der Brief ...
+ \end{letter}
+\end{lstcode}
+ 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}
+%
+\EndIndexGroup
+\vskip-\ht\strutbox% Wegen Beispiel am Ende der Erklärung
+
+
+\begin{Declaration}
+ \Macro{addrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}
+ \Parameter{Telefon}\Parameter{F1}\Parameter{F2}\Parameter{F3}
+ \Parameter{F4}\Parameter{Kürzel}
+\end{Declaration}
+Bevor Klagen aufkommen, dass insgesamt nur zwei freie Felder zu wenig seien:
+\KOMAScript{} verfügt alternativ über die Anweisung \Macro{addrentry}. Mit dem
+zusätzlichen »\texttt{d}« im Namen sind hier auch zwei weitere freie Felder
+hinzugekommen, dafür ist jedoch der Kommentar entfallen. Ansonsten kann die
+Anweisung genau wie \DescRef{\LabelBase.cmd.adrentry} verwendet werden.
+
+In einer \File{adr}-Datei können die beiden Anweisungen
+\DescRef{\LabelBase.cmd.adrentry} und \Macro{addrentry} nebeneinander
+verwendet werden. Ich\textnote{Achtung!} weise jedoch darauf hin, dass
+Zusatzpakete wie das \Package{adrconv}-Paket\IndexPackage{adrconv} von Axel
+Kielhorn eventuell nicht auf die Verwendung von \Macro{addrentry} ausgelegt
+sind. Hier muss der Anwender gegebenenfalls selbst entsprechende
+Erweiterungen vornehmen.%
+%
+\EndIndexGroup
+
+
+Neben dem vereinfachten Zugriff auf Kundendaten können die
+\File{.adr}-Dateien auch für Serienbriefe\Index[indexmain]{Serienbriefe}
+genutzt werden. So ist es ohne die komplizierte Anbindung an
+Datenbanksysteme möglich, solche Massenpostsendungen zu erstellen.
+%
+\begin{Example}
+ Sie wollen einen Serienbrief an alle Mitglieder Ihres
+ Anglervereins schicken, um zur nächsten Mitgliederversammlung
+ einzuladen.
+\begin{lstcode}
+ \documentclass{scrlttr2}
+ \usepackage[ngerman]{babel}
+ \usepackage[utf8]{inputenc}
+
+ \begin{document}
+ \renewcommand*{\adrentry}[8]{%
+ \begin{letter}{#2 #1\\#3}
+ \opening{Liebe Vereinsmitglieder,}
+ unsere nächste Mitgliederversammlung findet am
+ Montag, dem 12.~August 2002, statt.
+
+ Folgende Punkte müssen besprochen werden...
+ \closing{Petri Heil,}
+ \end{letter}
+ }
+
+ \input{mitglieder.adr}
+ \end{document}
+\end{lstcode}
+ Sind in Ihrer \File{adr}-Datei auch
+ \DescRef{\LabelBase.cmd.addrentry}-Anweisungen
+ enthalten, müssen Sie dafür eine entsprechende Definition vor dem
+ Einladen der Adressdatei ergänzen:
+\begin{lstcode}
+ \renewcommand*{\addrentry}[9]{%
+ \adrentry{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#9}%
+ }
+\end{lstcode}
+ Bei diesem Beispiel wird kein Gebrauch von dem zusätzlichen freien
+ Feld gemacht und deshalb \DescRef{\LabelBase.cmd.addrentry} mit Hilfe von
+ \DescRef{\LabelBase.cmd.adrentry} definiert.
+\end{Example}
+
+Natürlich kann der Brief"|inhalt auch von den Adressatenmerkmalen
+abhängig gemacht werden. Als Bedingungsfelder können die frei
+bestimmbaren Elemente fünf oder sechs eines
+\DescRef{\LabelBase.cmd.adrentry}-Eintrages oder die frei bestimmbaren
+Elemente fünf bis acht eines \DescRef{\LabelBase.cmd.addrentry}-Eintrags
+genutzt werden.
+\begin{Example}
+ Angenommen, Sie verwenden das Element fünf, um das Geschlecht eines
+ Vereinsmitgliedes zu hinterlegen (\PValue{m/w}) und das sechste
+ Element weist auf einen Rückstand der Mitgliedsbeiträge hin. Wollen
+ Sie nun alle säumigen Mitglieder anschreiben und persönlich anreden,
+ so hilft Ihnen folgendes Beispiel weiter:
+\begin{lstcode}
+ \renewcommand*{\adrentry}[8]{
+ \ifdim #6pt>0pt\relax
+ % #6 ist ein Betrag (Gleitkommazahl) größer 0.
+ % Es werden also die Säumigen erfasst.
+ \begin{letter}{#2 #1\\#3}
+ \if #5m \opening{Lieber #2,} \fi
+ \if #5w \opening{Liebe #2,} \fi
+
+ Leider mussten wir feststellen, dass du mit
+ der Zahlung deiner Mitgliedsbeiträge im
+ Rückstand bist.
+
+ Wir möchten Dich bitten, den offenen Betrag
+ von #6~EUR auf das Vereinskonto einzuzahlen.
+ \closing{Petri Heil,}
+ \end{letter}
+ \fi
+ }
+\end{lstcode}
+\end{Example}
+Es ist also möglich, den Brieftext auf bestimmte Empfängermerkmale
+gezielt abzustimmen und so den Eindruck eines persönlichen
+Schreibens zu erwecken. Die Anwendungsbreite ist lediglich durch
+die maximale Anzahl von zwei freien \DescRef{\LabelBase.cmd.adrentry}-Elementen
+beziehungsweise vier freien \DescRef{\LabelBase.cmd.addrentry}-Elementen
+begrenzt.
+
+
+\begin{Declaration}
+ \Macro{adrchar}\Parameter{Anfangsbuchstaben}
+ \Macro{addrchar}\Parameter{Anfangsbuchstaben}
+\end{Declaration}
+\Index[indexmain]{Adressverzeichnis}\Index[indexmain]{Telefonliste}%
+Es ist auch möglich, die Informationen einer \File{.adr}-Datei in
+Adressverzeichnisse oder Telefonlisten umzuwandeln. Sie benötigen dazu
+zusätzlich das \Package{adrconv}\IndexPackage{adrconv}-Paket von Axel Kielhorn
+(siehe \cite{package:adrconv}). In diesem Paket sind interaktive
+\LaTeX-Dokumente enthalten, mit deren Hilfe sehr einfach entsprechende Listen
+erstellt werden können.
+
+Damit die Listen alphabetisch sortiert ausgegeben werden, muss bereits die
+Adressdatei sortiert gewesen sein. Es empfiehlt sich dabei, vor jedem neuen
+Anfangsbuchstaben eine Anweisung \Macro{adrchar} mit diesem Buchstaben als
+Argument einzufügen. \Class{scrlttr2} und \Package{scrletter} selbst
+ignorieren diese Anweisung ebenso wie \Macro{addrchar}.
+%
+\begin{Example}
+ Angenommen Sie haben folgende, eher winzige Adressdatei für die ein
+ Adressbuch erstellt werden soll:
+% In der folgenden lstcode-Umgebung je nach Umbruchbedarf einzelne
+% Elemente löschen oder hinzufügen. MICHAEL und GABRIEL sollten jedoch
+% erhalten bleiben.
+% Umbruchkorrektur: Dies kann noch dazu:
+ % \adrentry{Engel}{Raphael}
+ % {Wolke 3b\\12345 Himmelreich}
+ % {000\,01\,02\,05}{}{}{Erzengel}
+ % {RAPHAEL}
+ % \adrchar{T}
+ % \adrentry{Teufel}{Luzifer}
+ % {Hinter der Flamme 1\\
+ % 66666 H\"ollenschlund}
+ % {}{}{}{Gefallener Engel ohne Telefon}
+ % {LUZIFER}
+\begin{lstcode}
+ \adrchar{E}
+ \adrentry{Engel}{Gabriel}
+ {Wolke 3\\12345 Himmelreich}
+ {000\,01\,02\,03}{}{}{Erzengel}
+ {GABRIEL}
+ \adrentry{Engel}{Michael}
+ {Wolke 3a\\12345 Himmelreich}
+ {000\,01\,02\,04}{}{}{Erzengel}
+ {MICHAEL}
+ \adrchar{K}
+ \adrentry{Kohm}{Markus}
+ {Freiherr-von-Drais-Stra\ss e 66\\
+ 68535 Edingen-Neckarhausen}
+ {+49~62\,03~1\,??\,??}{}{}
+ {\"Uberhaupt kein Engel}
+ {KOMA}
+\end{lstcode}
+ Diese verarbeiten Sie nun unter Verwendung des Dokuments \File{adrdir.tex}
+ aus \cite{package:adrconv}. Ein Problem dabei ist, dass \File{adrdir.tex}
+ bis einschließlich Version~1.3 sowohl das veraltete Paket \Package{scrpage}
+ als auch veraltete Schriftbefehle verwendet, die von \KOMAScript{} schon
+ seit einiger Zeit nicht mehr unterstützt werden. Sollten Sie entsprechende
+ Fehlermeldungen erhalten und keine neuere Version installieren können,
+ finden Sie unter \cite{https://komascript.de/node/2154} eine Lösung für
+ dieses Problem.
+
+ Eine Seite des Ergebnisses sieht dann etwa so aus:
+ \begin{center}
+ \setlength{\unitlength}{1mm}
+ \begin{picture}(80,58)
+ \put(0,58){\line(1,0){80}}
+ \put(0,3){\line(0,1){55}}
+ \put(80,3){\line(0,1){55}}
+ \thicklines
+ \put(10,43){\line(1,0){60}}
+ \put(70,46){\makebox(0,0)[r]{\textsf{\textbf{E}}}}
+ \put(10,23){\makebox(0,20)[l]{\parbox{5cm}{\raggedright
+ \textsc{Engel}, Gabriel\\\quad\small Wolke 3\\
+ \quad 12345 Himmelreich\\
+ \quad (Erzengel)}}}
+ \put(70,23){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\
+ \small~\\{\footnotesize GABRIEL}\\000\,01\,02\,03}}}
+ \put(10,4){\makebox(0,20)[l]{\parbox{5cm}{\raggedright
+ \textsc{Engel}, Michael\\\quad\small Wolke 3a\\
+ \quad 12345 Himmelreich\\
+ \quad (Erzengel)}}}
+ \put(70,4){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\
+ \small~\\{\footnotesize MICHAEL}\\000\,01\,02\,04}}}
+ \qbezier(0,3)(10,6)(40,3)\qbezier(40,3)(60,0)(80,3)
+ \end{picture}
+ \end{center}
+ Dabei wird der Buchstabe in der Kopfzeile von \Macro{adrchar}
+ erzeugt, wenn man die Frage »Namen in der Kopfzeile?« verneint. Siehe dazu
+ die Definition in \File{adrdir.tex}.%
+\end{Example}%
+\iffalse% Umbruchkorrektur
+Näheres zum \Package{adrconv}\IndexPackage{adrconv}-Paket ist der zugehörigen
+Anleitung zu entnehmen. Dort finden Sie auch Angaben darüber, ob die aktuelle
+Version von \Package{adrconv} bereits mit \DescRef{\LabelBase.cmd.addrentry}
+und \Macro{addrchar} umgehen kann. Frühere Versionen kannten nur
+\DescRef{\LabelBase.cmd.adrentry} und \Macro{adrchar}.%
+\fi
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide.tex"
+%%% End:
+
+% LocalWords: Paketoption Satzspiegels Briefklasse Seitenkopf Seitenfuß
+
+% LocalWords: Versandart Zentrierung Dokumenttitel Serienbriefen Seitenstil
+% LocalWords: Dokumentpräambel Grafikpaket Briefbogenfuß Briefbogenfußes
+
+% LocalWords: Standardklassen Briefpaket Dokumentteile Briefkontext Torsten
+% LocalWords: Briefumgebung neckische Briefinhalt Absenderinformationen
+% LocalWords: Falzmarken Faltmarken Adressfeld Geschäftszeile Feldinhalts
+% LocalWords: Feldbezeichnung Seitenstilen Paginierung Briefklassenoption
+% LocalWords: Bedingungsfelder Schriftauswahl Spitzmarke
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrlttr2examples.dtx b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlttr2examples.dtx
new file mode 100644
index 0000000000..18286886b3
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrlttr2examples.dtx
@@ -0,0 +1,347 @@
+% \CheckSum{0}
+% \iffalse
+% ======================================================================
+% scrlttr2examples.dtx
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrlttr2examples.dtx
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ======================================================================
+%
+% Generation of letter example files for scrlttr2 chapter.
+%
+% ---------------------------------------------------------------------------
+%
+% Erzeugung der Brief-Beispiele für das scrlttr2-Kapitel.
+%
+% ============================================================================
+%<*ins>
+\def\batchfile{scrlttr2examples.dtx}
+\input docstrip.tex
+
+\keepsilent
+\askforoverwritefalse
+
+\generate{%
+ \nopreamble\nopostamble
+ \file{musterlogo.eps}{\from{scrlttr2examples.dtx}{logo}}%
+}
+
+\generate{%
+ \nopreamble\nopostamble
+ \file{ich.lco}{\from{scrlttr2examples.dtx}{lco,23,\languagename}}%
+}
+
+\generate{%
+ \nopreamble\nopostamble
+ \file{letter-0.tex}{\from{scrlttr2examples.dtx}{example,0,\languagename}}%
+ \file{letter-1.tex}{\from{scrlttr2examples.dtx}{example,1,\languagename}}%
+ \file{letter-2.tex}{\from{scrlttr2examples.dtx}{example,2,\languagename}}%
+ \file{letter-3.tex}{\from{scrlttr2examples.dtx}{example,3,\languagename}}%
+ \file{letter-4.tex}{\from{scrlttr2examples.dtx}{example,4,\languagename}}%
+ \file{letter-5.tex}{\from{scrlttr2examples.dtx}{example,5,\languagename}}%
+ \file{letter-6.tex}{\from{scrlttr2examples.dtx}{example,6,\languagename}}%
+ \file{letter-7.tex}{\from{scrlttr2examples.dtx}{example,7,\languagename}}%
+ \file{letter-8.tex}{\from{scrlttr2examples.dtx}{example,8,\languagename}}%
+ \file{letter-9.tex}{\from{scrlttr2examples.dtx}{example,9,\languagename}}%
+ \file{letter-10.tex}{\from{scrlttr2examples.dtx}{example,10,\languagename}}%
+ \file{letter-11.tex}{\from{scrlttr2examples.dtx}{example,11,\languagename}}%
+ \file{letter-12.tex}{\from{scrlttr2examples.dtx}{example,12,\languagename}}%
+ \file{letter-13.tex}{\from{scrlttr2examples.dtx}{example,13,\languagename}}%
+ \file{letter-14.tex}{\from{scrlttr2examples.dtx}{example,14,\languagename}}%
+ \file{letter-15.tex}{\from{scrlttr2examples.dtx}{example,15,\languagename}}%
+ \file{letter-16.tex}{\from{scrlttr2examples.dtx}{example,16,\languagename}}%
+ \file{letter-17.tex}{\from{scrlttr2examples.dtx}{example,17,\languagename}}%
+ \file{letter-18.tex}{\from{scrlttr2examples.dtx}{example,18,\languagename}}%
+ \file{letter-19.tex}{\from{scrlttr2examples.dtx}{example,19,\languagename}}%
+ \file{letter-20.tex}{\from{scrlttr2examples.dtx}{example,20,\languagename}}%
+ \file{letter-21.tex}{\from{scrlttr2examples.dtx}{example,21,\languagename}}%
+ \file{letter-22.tex}{\from{scrlttr2examples.dtx}{example,22,\languagename}}%
+ \file{letter-23.tex}{\from{scrlttr2examples.dtx}{example,23,\languagename}}%
+ \file{letter-label.tex}{\from{scrlttr2examples.dtx}{%
+ example,label,\languagename}}%
+ \file{letter-nipponA.tex}{\from{scrlttr2examples.dtx}{%
+ example,22,nipponA,\languagename}}%
+ \file{letter-nipponB.tex}{\from{scrlttr2examples.dtx}{%
+ example,22,nipponB,\languagename}}%
+}
+
+\csname endinput\endcsname
+%</ins>
+%
+% \begin{macrocode}
+%<*lco&23>
+\ProvidesFile{ich.lco}[2008/06/11 lco
+%<english> (Joe Public)]
+%<ngerman> (Peter Musterfrau)]
+\KOMAoptions{foldmarks=true,foldmarks=blmtP,
+ fromphone,fromemail,fromlogo,subject=titled}
+%<*english>
+\setkomavar{fromname}{Joe Public}
+\setkomavar{signature}{Joe Public\\
+ (former chairman)}
+%</english>
+%<*ngerman>
+\setkomavar{fromname}{Peter Musterfrau}
+\setkomavar{signature}{Peter Musterfrau\\
+ (ehemaliger Vorsitzender)}
+%</ngerman>
+\renewcommand*{\raggedsignature}{\raggedright}
+%<*english>
+\setkomavar{fromaddress}{2 Valley\\
+ SAMPLEBY\\
+ ZY32 1XW}
+%</english>
+%<*ngerman>
+\setkomavar{fromaddress}{Hinter dem Tal 2\\
+ 54321 Musterheim}
+%</ngerman>
+\setkomavar{fromphone}{0\,12\,34~56\,78}
+%<english>\setkomavar{fromemail}{joe@public.invalid}
+%<ngerman>\setkomavar{fromemail}{Peter@Musterfrau.invalid}
+\setkomavar{fromlogo}{%
+ \includegraphics{musterlogo}}
+\setkomavar{location}{\raggedright
+%<*english>
+ Club member no.~4711\\
+ since 11.09.2001\\
+ chairman 2003--2005}
+\setkomavar{place}{Sampleby}
+\setkomavar{frombank}{Bank of Friendly Greetings}
+%</english>
+%<*ngerman>
+ Mitglied Nr.~4711\\
+ seit dem 11.09.2001\\
+ Vorsitzender in den Jahren 2003--2005}
+\setkomavar{place}{Musterheim}
+\setkomavar{frombank}{Bank freundlichen Gru\ss es}
+%</ngerman>
+%</lco&23>
+%<*example>
+%<*label>
+\AtBeginDocument{%
+ \usepackage{xcolor,eso-pic}%
+ \BeforeClosingMainAux{%
+ \AddToShipoutPicture*{%
+ \thinlines\color{gray!50}%
+ \AtPageLowerLeft{%
+ \put(0,\LenToUnit{8mm}){%
+ \line(0,1){\LenToUnit{180mm}}%
+ }%
+ \multiput(\LenToUnit{70mm},\LenToUnit{8mm})(\LenToUnit{70mm},0){3}{%
+ \line(0,1){\LenToUnit{216mm}}%
+ }%
+ \multiput(0,\LenToUnit{8mm})(0,\LenToUnit{36mm}){6}{%
+ \line(1,0){\LenToUnit{210mm}}%
+ }%
+ \put(\LenToUnit{70mm},\LenToUnit{224mm}){%
+ \line(1,0){\LenToUnit{140mm}}%
+ }%
+ }\color{black}%
+ }%
+ }%
+}
+%</label>
+%<0|1|2|3|4|5>\documentclass[version=last]{scrlttr2}
+%<6>\documentclass[version=last,fontsize=14pt]{scrlttr2}
+%<!0&!1&!2&!3&!4&!5&!6&!23&!label&!nipponA&!nipponB>\documentclass[foldmarks=true,foldmarks=blmtP,
+%<nipponA|nipponB>\documentclass[foldmarks=true,locfield=wide,
+%<8> fromalign=false,
+%<9> fromalign=center,
+%<10> fromalign=false,fromrule=aftername,
+%<11> fromalign=center,fromrule=aftername,
+%<12> fromalign=false,fromrule=afteraddress,
+%<13|17> fromalign=center,fromrule=afteraddress,
+%<14|16> fromrule=afteraddress,
+%<15|18> fromalign=right,fromrule=afteraddress,
+%<12|13|14|15> fromphone,fromemail,
+%<16|17|18|19|20|21|22> fromphone,fromemail,fromlogo,
+%<nipponA|nipponB> fromphone=false,fromemail=false,
+%<21|22> subject=titled,
+%<!0&!1&!2&!3&!4&!5&!6&!23&!label> version=last]{scrlttr2}
+%<23>\documentclass[version=last,ich]{scrlttr2}
+%<nipponA>\LoadLetterOption{NipponLL}
+%<nipponB>\LoadLetterOption{NipponEL}
+%<label>\documentclass[version=last,ich,settleford600label]{scrlttr2}
+%<ngerman>\usepackage[ngerman]{babel}
+%<english>\usepackage[british]{babel}
+%<16|17|18|19|20|21|22|23|label>\usepackage{graphics}
+\begin{document}
+%<*!0&!1&!2&!3&!4&!5&!6&!7&!23&!label>
+%<english>\setkomavar{fromname}{Joe Public}
+%<ngerman>\setkomavar{fromname}{Peter Musterfrau}
+%<*22>
+%<*english>
+\setkomavar{signature}{Joe Public\\
+ (former chairman)}
+%</english>
+%<*ngerman>
+\setkomavar{signature}{Peter Musterfrau\\
+ (ehemaliger Vorsitzender)}
+%</ngerman>
+\renewcommand*{\raggedsignature}{\raggedright}
+%</22>
+%<*english>
+\setkomavar{fromaddress}{2 Valley\\
+ SAMPLEBY\\
+ ZY32 1XW}
+%</english>
+%<*ngerman>
+\setkomavar{fromaddress}{Hinter dem Tal 2\\
+ 54321 Musterheim}
+%</ngerman>
+%<*!9&!10&!11>
+\setkomavar{fromphone}{0\,12\,34~56\,78}
+%<english>\setkomavar{fromemail}{joe@public.invalid}
+%<ngerman>\setkomavar{fromemail}{Peter@Musterfrau.invalid}
+%<*!12&!13&!14&!15>
+\setkomavar{fromlogo}{\includegraphics{musterlogo}}
+%</!12&!13&!14&!15>
+%</!9&!10&!11>
+%</!0&!1&!2&!3&!4&!5&!6&!7&!23&!label>
+%<*19|20|21|22|23|label>
+%<*!23&!label&!nipponA&!nipponB>
+\setkomavar{location}{\raggedright
+%<*english>
+ Club member no.~4711\\
+ since 11.09.2001\\
+ chairman 2003--2005}
+%</english>
+%<*ngerman>
+ Mitglied Nr.~4711\\
+ seit dem 11.09.2001\\
+ Vorsitzender in den Jahren 2003--2005}
+%</ngerman>
+%</!23&!label&!nipponA&!nipponB>
+%<*20|21|22|23|label>
+%<english>\setkomavar{date}{29th February 2011}
+%<ngerman>\setkomavar{date}{29. Februar 2011}
+%<*!23&!label>
+%<english>\setkomavar{place}{Sampleby}
+%<ngerman>\setkomavar{place}{Musterheim}
+%</!23&!label>
+%<*21|22|23|label>
+%<english>\setkomavar{subject}{Missing general meeting}
+%<ngerman>\setkomavar{subject}{Mitgliederversammlung vermisst}
+%</21|22|23|label>
+%</20|21|22|23|label>
+%</19|20|21|22|23|label>
+%<!5>\begin{letter}{%
+%<5>\begin{letter}[fontsize=14pt]{%
+%<*english>
+ Joanna Public\\
+ 1 Hillside\\
+ SAMPLESTEAD\\
+ WX12 3YZ%
+%</english>
+%<*ngerman>
+ Petra Mustermann\\
+ Vor dem Berg 1\\
+ 12345 Musterhausen%
+%</ngerman>
+ }
+%<label>\savelabel{3}{2}
+%<english>\opening{Dear Madam Chair,}
+%<ngerman>\opening{Liebe Vereinsvorsitzende,}
+%<*!0>
+%<*english>
+The last general meeting was more than a year ago.
+I would like to remind you that the articles of our
+club stipulate that one should be held every
+six months. For this reason, I call on the executive
+board to arrange such a meeting immediately.
+\closing{Anticipating an invitation}
+%</english>
+%<*ngerman>
+seit einem Jahr gab es keine Mitgliederversammlung
+mehr. Ich erinnere daran, dass unsere Satzung eine
+solche jedes halbe Jahr vorsieht. Ich fordere den
+Vorstand daher auf, umgehend eine solche in
+Angriff zu nehmen.
+\closing{In Erwartung einer Einladung}
+%</ngerman>
+%<*!1>
+%<*english>
+\ps PS: I hope you do not take this request amiss.
+%</english>
+%<*ngerman>
+\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.
+%</ngerman>
+%<*!2>
+%<*!3>
+%<*english>
+\setkomavar*{enclseparator}{Enclosure}
+\encl{Excerpt from the articles governing general
+ meetings}
+%</english>
+%<*ngerman>
+\setkomavar*{enclseparator}{Anlage}
+\encl{Auszug aus der Satzung, in dem die
+ Mitgliederversammlungen geregelt sind}
+%</ngerman>
+%</!3>
+%<*english>
+\cc{executive board\\all members}
+%</english>
+%<*ngerman>
+\cc{Die Vereinsvorsitzende\\Alle Mitglieder}
+%</ngerman>
+%</!2>
+%</!1>
+%</!0>
+\end{letter}
+\end{document}
+%</example>
+%<*logo>
+%%!
+%%BoundingBox: 0 0 72 72
+0 0 moveto
+72 72 rlineto
+72 neg 0 rlineto
+72 72 neg rlineto
+stroke
+0 0 moveto
+/Bitstream-Charter findfont
+72 scalefont
+setfont
+(M) show
+showpage
+%</logo>
+% \end{macrocode}
+%
+% \iffalse
+\endinput
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
+% \fi
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/scrwfile.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/scrwfile.tex
new file mode 100644
index 0000000000..4e27aa22eb
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/scrwfile.tex
@@ -0,0 +1,307 @@
+% ======================================================================
+% scrwfile.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrwfile.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 scrwfile of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------------
+%
+% Kapitel über scrwfile in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrwfile.tex}
+ [$Date: 2018-02-16 04:42:17 +0100 (Fri, 16 Feb 2018) $
+ KOMA-Script guide (chapter: scrwfile)]
+
+\chapter{Dateien mit \Package{scrwfile} sparen und ersetzen}
+\labelbase{scrwfile}
+
+\BeginIndexGroup
+\BeginIndex{Package}{scrwfile}
+Eines der Probleme, die auch durch die Einführung von \eTeX{} nicht gelöst
+wurden, ist die Tatsache, dass \TeX{} nur 18 Dateien gleichzeitig zum Schreiben
+geöffnet haben kann. Diese Zahl erscheint zunächst recht groß. Allerdings ist
+zu berücksichtigen, dass bereits \LaTeX{} selbst einige dieser Dateien
+belegt. Inhaltsverzeichnis, Tabellenverzeichnis, Abbildungsverzeichnis, Index,
+Glossar und jedes weitere Verzeichnis, das von \LaTeX{} aus erzeugt wird,
+belegt in der Regel eine weitere Datei. Dazu kommen Hilfsdateien von Paketen
+wie \Package{hyperref} oder \Package{minitoc}.
+
+Im Endeffekt kann es daher geschehen, dass irgendwann die Meldung
+\begin{lstcode}
+ ! No room for a new \write .
+ \ch@ck ...\else \errmessage {No room for a new #3}
+ \fi
+\end{lstcode}
+erscheint. Seit einiger Zeit ist die einfachste Lösung dieses Problems die
+Verwendung von Lua\LaTeX{} anstelle von PDF\LaTeX{} oder \XeLaTeX. Damit
+entfällt die Beschränkung und die maximale Anzahl der gleichzeitig zum
+Schreiben geöffneten Dateien wird nur noch durch das Betriebssystem
+bestimmt. In der Realität braucht man sich darüber dann normalerweise keine
+Gedanken mehr zu machen.
+
+Dass \LaTeX{} bei Verzeichnissen wie dem Inhaltsverzeichnis, dem
+Tabellenverzeichnis und dem Abbildungsverzeichnis immer sofort eine neue Datei
+zum Schreiben öffnet, hat aber auch noch einen weiteren Nachteil. Solche
+Verzeichnisse werden durch deren Befehle nicht nur direkt gesetzt, sie können
+auch kein weiteres Mal gesetzt werden, da die zugehörige Hilfsdatei nach dem
+jeweiligen Befehl bis zum Ende des Dokuments leer ist.
+
+Das Paket \Package{scrwfile} bietet hier eine grundsätzliche Änderung im
+\LaTeX-Kern, durch die beide Probleme nicht nur für Lua\LaTeX{} sondern auch bei
+Verwendung von PDF\LaTeX{} oder \XeLaTeX{} gelöst werden können.
+
+
+\section{Grundsätzliche Änderungen am \LaTeX-Kern}
+\seclabel{kernelpatches}
+
+\LaTeX-Klassen verwenden zum Öffnen eines Verzeichnisses beispielsweise mit
+\Macro{tableofcontents} oder \Macro{listoffigure} die \LaTeX-Kern-Anweisung
+\Macro{@starttoc}\IndexCmd{@starttoc}. \LaTeX{} selbst lädt bei dieser
+Anweisung nicht nur die zugehörige Hilfsdatei, sondern öffnet diese Hilfsdatei
+auch neu zum Schreiben. Werden anschließend mit \Macro{addtocontents} oder
+\Macro{addcontentsline} Einträge in dieses Verzeichnis vorgenommen, so wird
+jedoch nicht direkt in die geöffnete Hilfsdatei geschrieben. Stattdessen
+schreibt \LaTeX{} \Macro{@writefile}-Anweisungen\IndexCmd{@writefile} in die
+\File{aux}-Datei. Erst beim Einlesen der \File{aux}-Dateien am Ende des
+Dokuments wird dann über diese \Macro{@writefile}-Anweisungen in die
+tatsächlichen Hilfsdateien geschrieben. Die Hilfsdateien werden von \LaTeX{}
+auch nicht explizit geschlossen. Stattdessen verlässt sich \LaTeX{} hier
+darauf, dass \TeX{} die Dateien am Ende ohnehin schließt.
+
+Dieses Vorgehen sorgt dafür, dass die Hilfsdateien zwar erst innerhalb von
+\Macro{end}\PParameter{document} tatsächlich beschrieben werden, aber trotzdem
+während des gesamten \LaTeX-Laufs gleichzeitig offen sind. \Package{scrwfile}
+hat nun genau hier einen Ansatzpunkt: die Umdefinierung von \Macro{@starttoc}
+und \Macro{@writefile}.
+
+Natürlich\textnote{Achtung!} besitzen Änderungen am \LaTeX-Kern immer das
+Potential, dass es zu Unverträglichkeiten mit anderen Paketen kommen
+kann. Betroffen können in erster Linie Pakete sein, die ebenfalls
+\Macro{@starttoc} oder \Macro{@writefile} umdefinieren. In einigen Fällen kann
+es helfen, die Reihenfolge der Pakete zu ändern. Wenn Sie auf
+ein solches Problem stoßen, sollten Sie sich an den \KOMAScript-Autor wenden.
+
+
+\section{Das Eindateiensystem}
+\seclabel{singlefilefeature}
+
+Bereits beim Laden des Pakets mit
+% Umbruchoptimierung: listings
+\begin{lstcode}
+ \usepackage{scrwfile}
+\end{lstcode}
+wird \Macro{@starttoc}\IndexCmd{@starttoc} von \Package{scrwfile} so
+umdefiniert, dass davon selbst keine Datei mehr zum Schreiben angefordert und
+geöffnet wird. Unmittelbar vor dem Schließen der \File{aux}-Datei in
+\Macro{end}\PParameter{document} wird dann \Macro{@writefile} so umdefiniert,
+dass diese Anweisung statt in die eigentlichen Hilfsdateien in eine neue
+Hilfsdatei mit der Endung \File{wrt} schreibt. Nach dem Einlesen der
+\File{aux}-Dateien wird schließlich die \File{wrt}-Datei abgearbeitet und zwar
+ein Mal für jede der Hilfsdateien, in die mit \Macro{@writefile} geschrieben
+wird. Dabei muss aber nicht jede dieser Hilfsdateien gleichzeitig
+geöffnet sein. Stattdessen ist immer nur eine zum Schreiben geöffnet und wird
+auch wieder explizit geschlossen. Da dabei eine interne Schreibdatei von
+\LaTeX{} wiederverwendet wird, benötigt \Package{scrwfile} keine einzige
+eigene Schreibdatei für diese Art von Verzeichnissen.
+
+Selbst wenn bisher nur mit einem Inhaltsverzeichnis gearbeitet wird, steht
+nach dem Laden des Pakets bereits eine Schreibdatei mehr für
+Literaturverzeichnisse, Stichwortverzeichnisse, Glossare und ähnliche
+Verzeichnisse, die nicht mit \Macro{@starttoc} arbeiten, zur
+Verfügung. Darüber hinaus können beliebig viele Verzeichnisse, die mit
+\Macro{@starttoc}\IndexCmd{@starttoc} arbeiten, angelegt werden.%
+%
+
+\section{Das Klonen von Dateieinträgen}
+\seclabel{clonefilefeature}
+
+Nachdem \Macro{@writefile}\IndexCmd{@writefile} für das Eindateiensystem aus
+dem vorherigen Abschnitt bereits so geändert wurde, dass es nicht direkt in
+die entsprechende Hilfsdatei schreibt, lag eine weitere Idee nahe. Beim
+Kopieren der \Macro{@writefile}-Anweisungen in die \File{wrt}-Datei können
+diese auch für andere Zielendungen übernommen werden.
+
+\begin{Declaration}
+ \Macro{TOCclone}\OParameter{Verzeichnisüberschrift}
+ \Parameter{Quellendung}\Parameter{Zielendung}
+ \Macro{listof\PName{Zielendung}}
+\end{Declaration}%
+Durch dieses Klonen von Dateieinträgen werden so ganze Verzeichnisse
+geklont. Dazu muss man nur die Endung der Hilfsdatei des Verzeichnisses
+kennen, dessen Einträge kopiert werden sollen. Zusätzlich muss man die Endung
+einer Zieldatei angeben. In diese werden die Einträge dann kopiert. Natürlich
+kann man in dieses geklonte Verzeichnis auch zusätzliche Einträge
+schreiben.
+
+Die \PName{Zielendung} der Zieldatei wird mit Hilfe von
+\hyperref[cha:tocbasic]{\Package{tocbasic}}%
+\important{\hyperref[cha:tocbasic]{\Package{tocbasic}}} (siehe
+\autoref{cha:tocbasic}) verwaltet. Steht eine solche Datei bereits unter
+Kontrolle von \hyperref[cha:tocbasic]{\Package{tocbasic}} wird eine Warnung
+ausgegeben. Anderenfalls wird mit Hilfe von
+\hyperref[cha:tocbasic]{\Package{tocbasic}} ein neues Verzeichnis für diese
+Endung angelegt. Die Überschrift dieses Verzeichnisses kann man über das
+optionale Argument \PName{Verzeichnisüberschrift} bestimmen.
+
+Ausgeben kann man dieses neue Verzeichnis dann beispielsweise über die
+Anweisung \Macro{listof\PName{Zielendung}}. Die
+Verzeichniseigenschaften\important{\hyperref[cha:tocbasic]{\Package{tocbasic}}}
+\PValue{leveldown}, \PValue{numbered}, \PValue{onecolumn} und \PValue{totoc}
+(siehe Anweisung \DescRef{tocbasic.cmd.setuptoc} in
+\autoref{sec:tocbasic.toc}, \DescPageRef{tocbasic.cmd.setuptoc}) werden
+automatisch in das Zielverzeichnis übernommen, falls sie für das
+Quellverzeichnis bereits gesetzt waren. Die Eigenschaft \PValue{nobabel} wird
+für geklonte Verzeichnisse immer gesetzt, da die entsprechenden
+\Package{babel}-Einträge in das Quellverzeichnis ohnehin bereits kopiert
+werden.
+
+\begin{Example}
+ Angenommen, Sie wollen zusätzlich zum normalen Inhaltsverzeichnis eine
+ Gliederungsübersicht, in der nur die Kapitel angezeigt werden.
+\begin{lstcode}
+ \usepackage{scrwfile}
+ \TOCclone[Gliederungsübersicht]{toc}{stoc}
+\end{lstcode}
+ Hierdurch wird zunächst ein neues Verzeichnis mit der Überschrift
+ »Gliederungsübersicht« angelegt. Das neue Verzeichnis verwendet die
+ Dateiendung \File{stoc}. Alle Einträge in die Datei mit der Endung
+ \File{toc} werden auch in dieses Verzeichnis kopiert.
+
+ Damit dieses neue Verzeichnis nun nur die Kapitelebene ausgibt, verwenden
+ wir:
+\begin{lstcode}
+ \addtocontents{stoc}{\protect\value{tocdepth}=0}
+\end{lstcode}
+ Während\textnote{Achtung!} normalerweise erst ab
+ \Macro{begin}\PParameter{document} Einträge in ein Verzeichnis vorgenommen
+ werden können, funktioniert dies nach Laden von \Package{scrwfile} bereits
+ in der Dokumentpräambel. Durch die hier gezeigte unkonventionelle Art, den
+ Zähler \DescRef{maincls.counter.tocdepth} innerhalb der Verzeichnisdatei zu
+ ändern, bleibt diese Änderung nur für dieses Verzeichnis wirksam.
+
+ Später im Dokument wird das Verzeichnis mit der Endung \File{stoc} dann
+ durch
+\begin{lstcode}[moretexcs={listofstoc}]
+ \listofstoc
+\end{lstcode}
+ ausgegeben und zeigt nur die Teile und Kapitel des Dokuments.
+
+ Etwas schwieriger wird es, wenn das Inhaltsverzeichnis in der
+ Gliederungsübersicht angezeigt werden soll. Dies wäre zwar mit
+\begin{lstcode}
+ \addtocontents{toc}{%
+ \protect\addxcontentsline
+ {stoc}{chapter}{\protect\contentsname}%
+ }
+\end{lstcode}
+ möglich. Da jedoch alle Einträge in \File{toc} auch nach \File{stoc} kopiert
+ werden, würde so von der Gliederungsübersicht dieser Eintrag ebenfalls
+ übernommen. Also darf der Eintrag nicht aus der Verzeichnisdatei heraus
+ erzeugt werden. Da das Paket \hyperref[cha:tocbasic]{\Package{tocbasic}}%
+ \important{\hyperref[cha:tocbasic]{\Package{tocbasic}}} zum Einsatz kommt,
+ kann aber%
+ \phantomsection\xmpllabel{cmd.BeforeStartingTOC}%
+\begin{lstcode}
+ \BeforeStartingTOC[toc]{%
+ \addxcontentsline{stoc}{chapter}
+ {\protect\contentsname}}
+\end{lstcode}
+ verwendet werden. Natürlich\textnote{Achtung!} setzt dies voraus, dass die
+ Datei mit Endung \File{toc} auch unter der Kontrolle von
+ \hyperref[cha:tocbasic]{\Package{tocbasic}} steht. Dies ist bei allen
+ \KOMAScript-Klassen der Fall. Näheres zur Anweisung
+ \DescRef{tocbasic.cmd.BeforeStartingTOC} ist in \autoref{sec:tocbasic.toc}
+ auf \DescPageRef{tocbasic.cmd.BeforeStartingTOC} zu finden.%
+\end{Example}%
+%
+Die in den Beispielen verwendete Anweisung
+\DescRef{tocbasic.cmd.addxcontentsline} ist übrigens ebenfalls in
+\autoref{cha:tocbasic}, \DescPageRef{tocbasic.cmd.addxcontentsline}
+dokumentiert.%
+\EndIndexGroup
+
+
+\section{Hinweis zum Entwicklungsstand}
+\seclabel{draft}
+
+Obwohl das Paket bereits von mehreren Anwendern getestet wurde und vielfach im
+Einsatz ist, ist seine Entwicklung noch nicht abgeschlossen. Deshalb ist es
+theoretisch möglich, dass insbesondere an der internen Funktionsweise des
+Pakets noch Änderungen vorgenommen werden. Sehr wahrscheinlich sind auch
+künftige Erweiterungen. Teilweise befindet sich bereits Code für solche
+Erweiterungen im Paket. Da jedoch noch keine Benutzeranweisungen existieren,
+mit denen diese Möglichkeiten genutzt werden könnten, wurde hier auf eine
+Dokumentation derselben verzichtet.
+
+
+\section{Bekannte Paketunverträglichkeiten}
+\seclabel{incompatible}
+
+Wie in \autoref{sec:scrwfile.kernelpatches} bereits erwähnt, muss
+\Package{scrwfile} einige wenige Anweisungen des \LaTeX-Kerns
+umdefinieren. Dies geschieht nicht allein während des Ladens des Pakets,
+sondern vielmehr zu verschiedenen Zeitpunkten während der Abarbeitung eines
+Dokuments, beispielsweise vor dem Einlesen der
+\File{aux}-Datei. Dies\textnote{Achtung!} führt dazu, dass \Package{scrwfile}
+sich nicht mit anderen Paketen verträgt, die diese Anweisungen ebenfalls zur
+Laufzeit umdefinieren.
+
+Ein Beispiel für eine solche Unverträglichkeit ist
+\Package{titletoc}\important{\Package{titletoc}}\IndexPackage{titletoc}. Das
+Paket definiert unter gewissen Umständen \Macro{@writefile} zur Laufzeit
+um. Werden \Package{scrwfile} und \Package{titletoc} zusammen verwendet, ist
+die Funktion beider Paket nicht mehr gewährleistet. Dies ist weder ein Fehler
+in \Package{titletoc} noch in \Package{scrwfile}.%
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide"
+%%% End:
+
+% LocalWords: Eindateiensystem Schreibdatei Zieldatei Zielendung Quellendung
+% LocalWords: Verzeichnisüberschrift Dateiendung Zielendungen Verzeichnisdatei
+% LocalWords: Benutzeranweisungen Dokumentpräambel Kapitelebene
+% LocalWords: Paketunverträglichkeiten Verzeichniseigenschaften
+
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/tocbasic.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/tocbasic.tex
new file mode 100644
index 0000000000..ebc8861e1f
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/tocbasic.tex
@@ -0,0 +1,2663 @@
+% ======================================================================
+% tocbasic.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% tocbasic.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+%
+% Package tocbasic for Package and Class Authors
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Paket tocbasic für Paket- und Klassenautoren
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{tocbasic.tex}
+ [$Date: 2018-08-31 09:11:20 +0200 (Fri, 31 Aug 2018) $
+ KOMA-Script guide (package tocbasic)]
+
+\chapter{Verzeichnisse verwalten mit Hilfe von \Package{tocbasic}}
+\labelbase{tocbasic}
+
+\BeginIndexGroup
+\BeginIndex{Package}{tocbasic}%
+\BeginIndex{}{Verzeichnis}%
+\BeginIndex{}{Dateierweiterung}%
+\index{Dateiendung|see{Dateierweiterung}}%|
+Der Hauptzweck des Pakets \Package{tocbasic} besteht darin, Paket- und
+Klassenautoren die Möglichkeit zu geben, eigene Verzeichnisse vergleichbar mit
+dem Abbildungs- und Tabellenverzeichnis zu erstellen und dabei Klassen und
+anderen Paketen einen Teil der Kontrolle über diese Verzeichnisse zu
+erlauben. Dabei sorgt das Paket \Package{tocbasic} auch dafür, dass diese
+Verzeichnisse von \Package{babel}\IndexPackage{babel} (siehe
+\cite{package:babel}) bei der Sprachumschaltung mit berücksichtigt
+werden. Durch Verwendung von \Package{tocbasic} soll dem Paketautor die Mühe
+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 wird nach der Erklärung
+der grundlegenden Anweisungen in den folgenden vier Abschnitten durch ein
+Beispiel in \autoref{sec:tocbasic.example} verdeutlicht, das in kompakter Form
+noch einmal in \autoref{sec:tocbasic.declarenewtoc} aufgegriffen wird.
+
+\KOMAScript{} verwendet \Package{tocbasic} sowohl für das Inhaltsverzeichnis
+als auch für die bereits erwähnten Verzeichnisse für Abbildungen und Tabellen.
+
+
+\section{Grundlegende Anweisungen}
+\seclabel{basics}
+
+Die grundlegenden Anweisungen dienen in erster Linie dazu, eine Liste aller
+bekannten Dateierweiterungen\textnote{Dateierweiterung, Verzeichnis}, die für
+Verzeichnisse stehen, zu verwalten. Einträge in Dateien mit solchen
+Dateierweiterungen werden typischerweise mit
+\Macro{addtocontents}\important{\Macro{addtocontents},
+ \DescRef{\LabelBase.cmd.addxcontentsline}} oder
+\DescRef{\LabelBase.cmd.addxcontentsline} vorgenommen. Darüber hinaus gibt es
+Anweisungen, mit denen Aktionen 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 Dateierweiterung gehört. Typischerweise
+hat so eine Dateierweiterung auch einen
+Besitzer\textnote{Dateibesitzer}. Dieser Besitzer kann eine Klasse oder ein
+Paket oder ein Bezeichner sein, den der Autor der Klasse oder des Pakets, das
+\Package{tocbasic} verwendet, frei gewählt hat. \KOMAScript{} selbst verwendet
+beispielsweise den Besitzer \PValue{float} für die Dateierweiterungen
+\File{lof} und \File{lot}, die für das Abbildungs- und das Tabellenverzeichnis
+stehen. Für das Inhaltsverzeichnis verwendet \KOMAScript{} als Besitzer den
+Dateinamen der Klasse.
+
+\begin{Declaration}
+ \Macro{ifattoclist}\Parameter{Dateierweiterung}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Mit dieser Anweisung wird überprüft, ob die \PName{Dateierweiterung} bereits
+in der Liste der bekannten Dateierweiterungen vorhanden ist oder nicht. Ist
+die \PName{Dateierweiterung} bereits über diese Liste bekannt, so wird der
+\PName{Dann-Teil} ausgeführt. Anderenfalls wird der \PName{Sonst-Teil}
+ausgeführt.
+\begin{Example}
+ Angenommen, Sie wollen wissen, ob die Dateierweiterung »\File{foo}« bereits
+ verwendet wird, um in diesem Fall eine Fehlermeldung auszugeben, weil diese
+ damit nicht mehr verwendet werden kann:
+\begin{lstcode}
+ \ifattoclist{foo}{%
+ \PackageError{bar}{%
+ extension `foo' already in use%
+ }{%
+ Each extension may be used only
+ once.\MessageBreak
+ The class or another package already
+ uses extension `foo'.\MessageBreak
+ This error is fatal!\MessageBreak
+ You should not continue!}%
+ }{%
+ \PackageInfo{bar}{using extension `foo'}%
+ }
+\end{lstcode}
+\end{Example}
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{addtotoclist}\OParameter{Besitzer}\Parameter{Dateierweiterung}
+\end{Declaration}
+Diese Anweisung fügt die \PName{Dateierweiterung} der Liste der bekannten
+Dateierweiterungen hinzu. Ist die \PName{Dateierweiterung} bereits bekannt, so
+wird hingegen ein Fehler gemeldet, um die doppelte Verwendung derselben
+\PName{Dateierweiterung} zu verhindern.
+
+Wenn das optionale Argument \OParameter{Besitzer} angegeben wurde, wird der
+angegebene \PName{Besitzer} für diese Dateierweiterung mit gespeichert. Wurde
+das optionale Argument weggelassen, dann versucht \Package{tocbasic} den
+Dateinamen der aktuell abgearbeiteten Klasse oder des Pakets herauszufinden
+und als \PName{Besitzer} zu speichern. Dies\textnote{Achtung!} funktioniert
+nur, wenn \Macro{addtotoclist} während des Ladens der Klasse oder des Pakets
+aufgerufen wird. Es funktioniert nicht, wenn \Macro{addtotoclist} erst später
+aufgrund der Verwendung einer Anweisung durch den Benutzer aufgerufen wird. In
+diesem Fall wird als \PName{Besitzer} »\PValue{.}« eingetragen.
+
+Beachten\textnote{Achtung!} Sie, dass ein leeres Argument \PName{Besitzer}
+nicht das Gleiche ist wie das Weglassen des kompletten optionalen Arguments
+einschließlich der eckigen Klammern. Ein leeres Argument würde auch einen
+leeren \PName{Besitzer} ergeben.
+\begin{Example}
+ Angenommen, Sie wollen die Dateierweiterung »\File{foo}« der Liste der
+ bekannten Dateierweiterungen hinzufügen, während Ihr Paket mit dem
+ Dateinamen »\File{bar.sty}« geladen wird:
+\begin{lstcode}
+ \addtotoclist{foo}
+\end{lstcode}
+ Dies fügt die Dateierweiterung »\PValue{foo}« mit dem Besitzer
+ »\PValue{bar.sty}« der Liste der bekannten Dateierweiterung hinzu, wenn diese
+ Erweiterung nicht bereits in der Liste ist. Wenn die verwendete
+ Klasse oder ein anderes Paket diese Dateierweiterung schon angemeldet hat,
+ erhalten Sie den Fehler:
+\begin{lstoutput}
+ Package tocbasic Error: file extension `foo' cannot be used twice
+
+ See the tocbasic package documentation for explanation.
+ Type H <return> for immediate help.
+\end{lstoutput}
+ Wenn Sie dann tatsächlich die Taste »\texttt{H}«, gefolgt von der
+ Return-Taste drücken, erhalten Sie als Hilfe:
+\begin{lstoutput}
+ File extension `foo' is already used by a toc-file, while bar.sty
+ tried to use it again for a toc-file.
+ This may be either an incompatibility of packages, an error at a package,
+ or a mistake by the user.
+\end{lstoutput}
+
+ Vielleicht stellt Ihr Paket auch eine Anweisung bereit, die ein
+ Verzeichnis dynamisch erzeugt. In diesem Fall sollten Sie das
+ optionale Argument von \Macro{addtotoclist} verwenden, um den
+ \PName{Besitzer} anzugeben:
+\begin{lstcode}
+ \newcommand*{\createnewlistofsomething}[1]{%
+ \addtotoclist[bar.sty]{#1}%
+ % Weitere Aktionen, um dieses Verzeichnis
+ % verfügbar zu machen
+ }
+\end{lstcode}
+ Wenn jetzt der Anwender diese Anweisung aufruft, beispielsweise mit
+\begin{lstcode}
+ \createnewlistofsomething{foo}
+\end{lstcode}
+ dann wird die Dateierweiterung »\PValue{foo}« ebenfalls mit dem Besitzer
+ »\PValue{bar.sty}« zur Liste der bekannten Dateierweiterungen hinzugefügt
+ oder aber ein Fehler gemeldet, wenn diese Dateierweiterung bereits verwendet
+ wird.
+\end{Example}
+
+Sie können als \PName{Besitzer} angeben, was immer Sie wollen, aber es sollte
+eindeutig sein! Wenn Sie beispielsweise der Autor des Pakets \Package{float}
+wären, könnten Sie als \PName{Besitzer} auch »\PValue{float}« anstelle von
+»\PValue{float.sty}« angeben. In diesem Fall würden die
+\KOMAScript-Optionen\important{\DescRef{maincls.option.listof}}%
+\IndexOption{listof~=\PName{Einstellung}} für das Verzeichnis der Abbildungen
+und das Verzeichnis der Tabellen auch Ihre Verzeichnisse betreffen, die zum
+Zeitpunkt der Verwendung der jeweiligen Option bereits zur Liste der bekannten
+Dateierweiterungen hinzugefügt sind. Das liegt daran, dass \KOMAScript{} die
+Dateierweiterungen »\PValue{lof}« für das Abbildungsverzeichnis und
+»\PValue{lot}« für das Tabellenverzeichnis mit dem Besitzer »\PValue{float}«
+anmeldet und die Optionen für diese Besitzer setzt.
+
+Das Paket \hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
+\important{ \hyperref[cha:scrhack]{\Package{scrhack}}} enthält übrigens
+Patches für mehrere Pakete wie \Package{float} oder \Package{listings}, die
+eigene Verzeichnisse bereitstellen. Bei Verwendung von
+\hyperref[cha:scrhack]{\Package{scrhack}} wird dann unter anderem die
+jeweilige Dateierweiterung der Liste der bekannten Dateierweiterungen
+hinzugefügt. Dabei wird als \PName{Besitzer} ebenfalls »\PValue{float}«
+verwendet. Dies ist sozusagen der grundlegende Baustein, um die Möglichkeiten
+von \Package{tocbasic} und der \KOMAScript-Klassen auch für diese
+Verzeichnisse nutzen zu können.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AtAddToTocList}\OParameter{Besitzer}\Parameter{Anweisungen}
+\end{Declaration}
+Auf diese Weise können die \PName{Anweisungen} zu einer internen Liste von
+Anweisungen hinzugefügt werden, die immer dann auszuführen sind, wenn eine
+Dateierweiterung mit dem angegebenen \PName{Besitzer} zur Liste der bekannten
+Dateierweiterungen hinzugefügt wird. Bezüglich des optionalen Arguments wird
+wie in der Erklärung von \DescRef{\LabelBase.cmd.addtotoclist} beschrieben
+verfahren. Wird das optionale Argument leer gelassen, werden in diesem Fall
+die Aktionen unabhängig vom Besitzer immer ausgeführt, wenn die
+Dateierweiterung zu der Liste der bekannten Dateierweiterungen hinzugefügt
+wird. Während der Ausführung der \PName{Anweisungen} ist außerdem
+\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} die
+Dateierweiterung, die gerade hinzugefügt wird.
+\begin{Example}
+ \Package{tocbasic} selbst verwendet
+ % Umbruchkorrektur (schließende Klammer verschoben)
+\begin{lstcode}
+ \AtAddToTocList[]{%
+ \expandafter\tocbasic@extend@babel
+ \expandafter{\@currext}}
+\end{lstcode}
+ um jede Dateierweiterung zu der in \Package{tocbasic} vorhandenen
+ Erweiterung für das Paket \Package{babel} hinzuzufügen.
+\end{Example}
+
+Die\textnote{Achtung!} zweimalige Verwendung von \Macro{expandafter} ist im
+Beispiel erforderlich, weil das Argument von
+\DescRef{\LabelBase.cmd.tocbasic@extend@babel} zwingend bereits expandiert
+sein muss. Siehe dazu auch die Erklärung zu
+\DescRef{\LabelBase.cmd.tocbasic@extend@babel} in
+\autoref{sec:tocbasic.internals},
+\DescPageRef{\LabelBase.cmd.tocbasic@extend@babel}.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{removefromtoclist}\OParameter{Besitzer}\Parameter{Dateierweiterung}
+\end{Declaration}
+Man kann eine \PName{Dateierweiterung} auch wieder aus der Liste der bekannten
+Dateierweiterungen entfernen. Ist das optionale Argument \OParameter{Besitzer}
+angegeben, so wird die Dateierweiterung nur entfernt, wenn sie für den
+angegebenen \PName{Besitzer} angemeldet wurde. Wie der Besitzer beim Weglassen
+des optionalen Argument bestimmt wird, ist der Erklärung zu
+\DescRef{\LabelBase.cmd.addtotoclist} zu entnehmen. Wird ein leerer
+\PName{Besitzer} angegeben, findet kein Besitzertest statt, sondern die
+\PName{Dateierweiterung} wird unabhängig vom Besitzer entfernt.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{doforeachtocfile}\OParameter{Besitzer}\Parameter{Anweisungen}
+\end{Declaration}
+Bisher haben Sie nur Anweisungen kennengelernt, die für Klassen- und
+Paketautoren zwar zusätzliche Sicherheit, aber auch eher zusätzlichen Aufwand
+bedeuten. Mit \Macro{doforeachtocfile} kann man die erste Ernte dafür
+einfahren. Diese Anweisung erlaubt es die angegebenen \PName{Anweisungen} für
+jede von dem \PName{Besitzer} angemeldete Dateierweiterung
+auszuführen. Während der Ausführung der \PName{Anweisungen} ist
+\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} die aktuell
+verarbeitete Dateierweiterung. Wird das optionale Argument
+\OParameter{Besitzer} weggelassen, so werden alle Dateierweiterungen
+unabhängig vom Besitzer abgearbeitet. Ein leeres optionales Argument würde
+hingegen nur die Dateierweiterungen mit leerem Besitzer verarbeiten.
+\begin{Example}
+ Wenn Sie die Liste aller bekannten Dateierweiterungen auf das Terminal und
+ in die \File{log}-Datei ausgeben wollen, ist dies einfach mit
+\begin{lstcode}
+ \doforeachtocfile{\typeout{\@currext}}
+\end{lstcode}
+ möglich. Sollen hingegen nur die Dateierweiterungen des Besitzer
+ »\PValue{foo}« ausgegeben werden, geht das einfach mit:
+\begin{lstcode}
+ \doforeachtocfile[foo]{\typeout{\@currext}}
+\end{lstcode}
+\end{Example}
+Die \KOMAScript-Klassen \Class{scrbook} und \Class{scrreprt} verwenden die
+Anweisung, um für Verzeichnisse, für die Eigenschaft \PValue{chapteratlist}
+gesetzt ist, optional einen vertikalen Abstand oder die Kapitelüberschrift in
+das Verzeichnis einzutragen. Wie Sie diese Eigenschaft setzen können, ist
+in \autoref{sec:tocbasic.toc} ab \DescPageRef{\LabelBase.cmd.setuptoc} zu
+finden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasicautomode}
+\end{Declaration}
+Diese Anweisung definiert das vom \LaTeX-Kern für Klassen- und Paketautoren
+bereitgestellte
+\Macro{@starttoc}\IndexCmd{@starttoc}\important{\Macro{\@starttoc}} so um,
+dass bei jedem Aufruf von \Macro{@starttoc} die dabei angegebene
+Dateierweiterung in die Liste der bekannten Dateierweiterungen eingefügt wird,
+soweit sie dort noch nicht vorhanden ist. Außerdem wird dann
+\DescRef{\LabelBase.cmd.tocbasic@starttoc} anstelle von \Macro{@starttoc}
+verwendet. Näheres zu \DescRef{\LabelBase.cmd.tocbasic@starttoc} und
+\Macro{@starttoc} ist \autoref{sec:tocbasic.internals},
+\DescPageRef{\LabelBase.cmd.tocbasic@starttoc} zu entnehmen.
+
+Mit Hilfe von \Macro{tocbasicautomode} wird also jedes Verzeichnis, das mit
+Hilfe von \Macro{@starttoc} erstellt wird, automatisch unter die Kontrolle von
+\Package{tocbasic} gestellt. Ob das zum gewünschten Ergebnis führt, hängt
+jedoch sehr von den jeweiligen Verzeichnissen ab. Immerhin funktioniert damit
+schon einmal die Erweiterung für das \Package{babel}-Paket für alle
+Verzeichnisse. Es ist jedoch vorzuziehen, wenn der Paketautor selbst
+\Package{tocbasic} explizit verwendet. Er kann dann auch die weiteren Vorteile
+nutzen, die ihm das Paket bietet und die in den nachfolgenden Abschnitten
+beschrieben werden.%
+\EndIndexGroup
+
+
+\section{Erzeugen eines Verzeichnisses}
+\seclabel{toc}
+
+Im vorherigen Abschnitt haben Sie erfahren, wie eine Liste bekannter
+Dateierweiterungen verwaltet werden kann\iffree{ und wie automatisch Anweisungen
+ beim Hinzufügen von Dateierweiterungen zu dieser Liste ausgeführt werden
+ können}{}. Des Weiteren haben Sie eine Anweisung kennengelernt, mit der man
+für jede einzelne bekannte Dateierweiterung oder einen spezifischen Teil davon
+Anweisungen ausführen kann. In diesem Abschnitt werden Sie Anweisungen
+kennenlernen, die sich auf die Datei beziehen, die mit dieser Dateierweiterung
+verbunden ist.
+
+
+\begin{Declaration}
+ \Macro{addtoeachtocfile}\OParameter{Besitzer}\Parameter{Inhalt}
+\end{Declaration}
+Die Anweisung \Macro{addtoeachtocfile} schreibt \PName{Inhalt} mit Hilfe von
+\Macro{addtocontents}\IndexCmd{addtocontents}\important{\Macro{addtocontents}}%
+\iffree{ aus dem \LaTeX-Kern}{} in jede Datei, die mit dem angegebenen
+\PName{Besitzer} in der Liste der bekannten Dateierweiterungen \iffree{zu
+ finden ist}{steht}. Wird das optionale Argument weggelassen, wird in jede
+Datei aus der Liste der bekannten Dateierweiterungen geschrieben.\iffree{ Der
+ konkrete Dateiname setzt sich dabei übrigens aus \Macro{jobname} und der
+ Dateierweiterung zusammen.}{} Während des Schreibens von \PName{Inhalt} ist
+\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} die
+Dateierweiterung der Datei, in die aktuell geschrieben wird.
+\begin{Example}
+ Sie wollen einen vertikalen Abstand von einer Zeile in alle Dateien aus der
+ Liste der bekannten Dateierweiterungen schreiben.
+\begin{lstcode}
+ \addtoeachtocfile{%
+ \protect\addvspace{\protect\baselineskip}%
+ }%
+\end{lstcode}
+ Wenn Sie das hingegen nur für die Dateien mit dem definierten Besitzer
+ »\PValue{foo}« machen wollen, verwenden Sie:
+\begin{lstcode}
+ \addtoeachtocfile[foo]{%
+ \protect\addvspace{\protect\baselineskip}%
+ }
+\end{lstcode}%
+\end{Example}%
+\iffree{Anweisungen, die nicht bereits beim Schreiben expandiert werden
+ sollen, sind wie bei \Macro{addtocontents} mit \Macro{protect} zu
+ schützen.}{}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{addxcontentsline}\Parameter{Dateierweiterung}\Parameter{Ebene}
+ \OParameter{Gliederungsnummer}\Parameter{Inhalt}
+\end{Declaration}
+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. Sie
+wird verwendet, um nummerierte oder nicht nummerierte Einträge in das über die
+\PName{Dateierweiterung} spezifizierte Verzeichnis aufzunehmen. Dabei ist
+\PName{Ebene} der symbolische Name der Gliederungsebene und \PName{Inhalt} der
+entsprechende Eintrag. Die Seitenzahl wird automatisch bestimmt.
+
+Im Unterschied zu \Macro{addcontentsline} testet \Macro{addxcontentsline}
+zunächst, ob Anweisung \Macro{add\PName{Ebene}\PName{Dateierweiterung}entry}
+definiert ist. In diesem Fall wird sie für den Eintrag verwendet, wobei
+\PName{Gliederungsnummer} als optionales Argument und \PName{Inhalt} als
+obligatorisches Argument übergeben wird. Ein Beispiel für eine solche
+Anweisung, die von den \KOMAScript-Klassen bereitgestellt wird, wäre
+\DescRef{maincls-experts.cmd.addparttocentry} (siehe
+\autoref{sec:maincls-experts.experts},
+\DescPageRef{maincls-experts.cmd.addparttocentry}). Ist die entsprechende
+Anweisung nicht definiert, wird stattdessen die interne Anweisung
+\DescRef{\LabelBase.cmd.tocbasic@addxcontentsline} verwendet. Diese erhält
+alle vier Argumente als obligatorische Argumente und verwendet dann
+seinerseits \Macro{addcontentsline}, um den gewünschten Eintrag
+vorzunehmen. Näheres zu \DescRef{\LabelBase.cmd.tocbasic@addxcontentsline} ist
+\autoref{sec:tocbasic.internals},
+\DescPageRef{\LabelBase.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 \DescPageRef{\LabelBase.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.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{addxcontentslinetoeachtocfile}\OParameter{Besitzer}
+ \Parameter{Ebene}
+ \OParameter{Gliederungsnummer}%
+ \Parameter{Inhalt}
+ \Macro{addcontentslinetoeachtocfile}\OParameter{Besitzer}
+ \Parameter{Ebene}\Parameter{Inhalt}%
+\end{Declaration}
+Diese beiden Anweisungen stehen in direkter Beziehung zu dem oben erklärten
+\DescRef{\LabelBase.cmd.addxcontentsline}\ChangedAt{v3.12}{\Package{tocbasic}}
+beziehungsweise zum im \LaTeX-Kern definierten \Macro{addcontentsline}. 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 \PValue{\#1} den Titel enthält, der geschrieben
+ werden soll.
+\begin{lstcode}
+ \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
+ \Macro{protect} vor der Expansion geschützt wurde.
+\end{Example}
+Während des Schreibens von \PName{Inhalt} ist auch hier, wie schon bei
+\DescRef{\LabelBase.cmd.addtoeachtocfile},
+\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} die
+Dateierweiterung der Datei, in die aktuell geschrieben wird.%
+
+Die Anweisung\ChangedAt{v3.12}{\Package{tocbasic}}
+\Macro{addxcontentslinetoeachtocfile} ist wann immer möglich gegenüber
+\Macro{addcontentslinetoeachtocfile} vorzuziehen, da die Erweiterungen von
+\DescRef{\LabelBase.cmd.addxcontentsline} nur damit Anwendung finden. Näheres
+zu diesen Erweiterungen und Vorteilen ist in der vorausgehenden Erklärung von
+\DescRef{\LabelBase.cmd.addxcontentsline} zu finden.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{listoftoc}\OParameter{Titel}\Parameter{Dateierweiterung}
+ \Macro{listoftoc*}\Parameter{Dateierweiterung}
+ \Macro{listofeachtoc}\OParameter{Besitzer}
+ \Macro{listof\PName{Dateierweiterung}name}
+\end{Declaration}
+Mit diesen Anweisungen werden die Verzeichnisse
+ausgegeben. Die\important{\Macro{listoftoc*}} Sternvariante \Macro{listoftoc*}
+benötigt als einziges Argument die \PName{Dateierweiterung} der Datei mit den
+Daten zu dem Verzeichnis. Die Anweisung setzt zunächst die vertikalen und
+horizontalen Abstände, die innerhalb von Verzeichnissen gelten sollen, führt
+die Anweisungen aus, die vor dem Einlesen der Datei ausgeführt werden sollen,
+liest dann die Datei und führt zum Schluss die Anweisungen aus, die nach dem
+Einlesen der Datei ausgeführt werden sollen. Damit kann \Macro{listoftoc*} als
+direkter Ersatz der \LaTeX-Kern-Anweisung
+\Macro{@starttoc}\IndexCmd{@starttoc}\important{\Macro{@starttoc}} verstanden
+werden.
+
+Die\important{\Macro{listoftoc}} Version von \Macro{listoftoc} ohne Stern
+setzt das komplette Verzeichnis und veranlasst auch einen optionalen Eintrag
+in das Inhaltsverzeichnis und den Kolumnentitel. Ist das optionale Argument
+\OParameter{Titel} gegeben, so wird diese Angabe sowohl als Überschrift als
+auch als optionaler Eintrag in das Inhaltsverzeichnis und den Kolumnentitel
+verwendet. Ist das Argument \PName{Titel} lediglich leer, so wird auch eine
+leere Angabe verwendet. Wird\textnote{Achtung!} hingegen das komplette
+Argument einschließlich der eckigen Klammern weggelassen, so wird die
+Anweisung \Macro{listof\PName{Dateierweiterung}name} verwendet, wenn diese
+definiert ist. Ist sie nicht definiert, wird ein Standard-Ersatzname verwendet
+und eine Warnung ausgegeben.
+
+Die\important{\Macro{listofeachtoc}} Anweisung \Macro{listofeachtoc} gibt alle
+Verzeichnisse des angegebenen Besitzers oder alle Verzeichnisse aller
+bekannten Dateinamenerweiterungen aus. Dabei\textnote{Achtung!} sollte
+\Macro{listof\PName{Dateierweiterung}name} definiert sein, damit der korrekte
+Titel ausgegeben werden kann.
+
+Da\textnote{Tipp!} eventuell auch der Anwender selbst
+\Macro{listoftoc} ohne optionales Argument oder \Macro{listofeachtoc} verwenden
+könnte, wird empfohlen \Macro{listof\PName{Dateierweiterung}name} immer
+passend zu definieren.
+\begin{Example}
+ Angenommen, Sie haben ein neues »Verzeichnis der Algorithmen« mit der
+ Dateierweiterung »\PValue{loa}« und wollen dieses anzeigen lassen:
+\begin{lstcode}
+ \listoftoc[Verzeichnis der Algorithmen]{loa}
+\end{lstcode}
+ erledigt das für Sie. Wollen Sie das Verzeichnis hingegen ohne Überschrift
+ ausgegeben haben, dann genügt:
+\begin{lstcode}
+ \listoftoc*{loa}
+\end{lstcode}
+ Im zweiten Fall würde natürlich auch ein optional aktivierter Eintrag in das
+ Inhaltsverzeichnis nicht gesetzt. Näheres zur Eigenschaft des Eintrags in
+ das Inhaltsverzeichnis ist bei der Anweisung
+ \DescRef{\LabelBase.cmd.setuptoc}, \DescPageRef{\LabelBase.cmd.setuptoc} zu
+ finden.
+
+ Wenn Sie zuvor
+\begin{lstcode}
+ \newcommand*{\listofloaname}{%
+ Verzeichnis der Algorithmen%
+ }
+\end{lstcode}
+ definiert haben, genügt auch:
+\begin{lstcode}
+ \listoftoc{loa}
+\end{lstcode}
+ um ein Verzeichnis mit der gewünschten Überschrift zu erzeugen. Für den
+ Anwender ist es eventuell einprägsamer, wenn Sie dann außerdem noch
+\begin{lstcode}
+ \newcommand*{\listofalgorithms}{\listoftoc{loa}}
+\end{lstcode}
+ als einfache Verzeichnisanweisung definieren.
+\end{Example}
+
+Da\textnote{Achtung!} \LaTeX{} bei der Ausgabe eines Verzeichnisses auch
+gleich eine neue Verzeichnisdatei zum Schreiben öffnet, kann der Aufruf jeder
+dieser Anweisungen zu einer Fehlermeldung der Art
+\begin{lstoutput}
+ ! No room for a new \write .
+ \ch@ck ...\else \errmessage {No room for a new #3}
+ \fi
+\end{lstoutput}
+führen, wenn keine Schreibdateien mehr zur Verfügung stehen. Abhilfe kann in
+diesem Fall das Laden des in \autoref{cha:scrwfile} beschriebenen Pakets
+\Package{scrwfile}\important{\Package{scrwfile}}\IndexPackage{scrwfile}
+bieten.
+
+Das Paket \hyperref[cha:scrhack]{\Package{scrhack}}\IndexPackage{scrhack}%
+\important{ \hyperref[cha:scrhack]{\Package{scrhack}}} enthält übrigens
+Patches für mehrere Pakete wie \Package{float} oder \Package{listings}, damit
+deren Verzeichnisbefehle \Macro{listoftoc} verwenden. Dadurch stehen viele
+Möglichkeiten von \Package{tocbasic} und den \KOMAScript-Klassen auch für
+deren Verzeichnisse zur Verfügung.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeStartingTOC}\OParameter{Dateierweiterung}
+ \Parameter{Anweisungen}
+ \Macro{AfterStartingTOC}\OParameter{Dateierweiterung}\Parameter{Anweisungen}
+\end{Declaration}
+Manchmal ist es nützlich, wenn unmittelbar vor dem Einlesen der Datei mit den
+Verzeichnisdaten \PName{Anweisungen} ausgeführt werden können. Mit Hilfe von
+\Macro{BeforeStartingTOC} können Sie eine solche Ausführung
+wahlweise für eine einzelne \PName{Dateierweiterung} oder alle Dateien, die
+mit Hilfe von \DescRef{\LabelBase.cmd.listoftoc*},
+\DescRef{\LabelBase.cmd.listoftoc} oder \DescRef{\LabelBase.cmd.listofeachtoc}
+eingelesen werden, erreichen. Ebenso können Sie \PName{Anweisungen} nach dem
+Einlesen der Datei ausführen, wenn Sie diese mit \Macro{AfterStartingTOC}
+definieren. Während der Ausführung der \PName{Anweisungen} ist
+\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} die
+Dateierweiterung der Datei, die eingelesen wird bzw. gerade eingelesen wurde.
+
+Ein Beispiel\textnote{Beispiel} zur Verwendung von \Macro{BeforeStartingTOC}
+ist in \autoref{sec:scrwfile.clonefilefeature} auf
+\PageRefxmpl{scrwfile.cmd.BeforeStartingTOC} zu finden.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeTOCHead}\OParameter{Dateierweiterung}\Parameter{Anweisungen}
+ \Macro{AfterTOCHead}\OParameter{Dateierweiterung}\Parameter{Anweisungen}
+\end{Declaration}
+Es können auch \PName{Anweisungen} definiert werden, die unmittelbar vor oder
+nach dem Setzen der Überschrift bei Verwendung von
+\DescRef{\LabelBase.cmd.listoftoc} oder \DescRef{\LabelBase.cmd.listofeachtoc}
+ausgeführt werden. Bezüglich des optionalen Arguments und der Bedeutung von
+\Macro{@currext}\IndexCmd{@currext}\important{\Macro{@currext}} gilt, was
+bereits bei \DescRef{\LabelBase.cmd.BeforeStartingTOC} und
+\DescRef{\LabelBase.cmd.AfterStartingTOC} oben erklärt wurde.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{MakeMarkcase}
+\end{Declaration}
+Wann immer \Package{tocbasic} eine Marke für einen Kolumnentitel setzt,
+erfolgt dies als Argument der Anweisung \Macro{MakeMarkcase}. Diese Anweisung
+ist dazu gedacht, bei Bedarf die Groß-/Kleinschreibung des Kolumnentitels zu
+ändern. In der Voreinstellung ist diese Anweisung bei Verwendung einer
+\KOMAScript-Klasse
+\Macro{@firstofone}\IndexCmd{@firstofone}\important{\Macro{@firstofone}}, also
+das unveränderte Argument selbst. Bei Verwendung einer anderen Klasse ist
+\Macro{MakeMarkcase} im Gegensatz dazu
+\Macro{MakeUppercase}\IndexCmd{MakeUppercase}\important{\Macro{MakeUppercase}}.
+Die Anweisung wird von \Package{tocbasic} jedoch nur definiert, wenn sie
+nicht bereits definiert ist. Sie kann also in einer Klasse in der gewünschten
+Weise vorbelegt werden und wird dann von \Package{tocbasic} nicht umdefiniert,
+sondern verwendet wie vorgefunden.
+\begin{Example}
+ Sie wollen aus unerfindlichen Gründen, dass die Kolumnentitel in Ihrer
+ Klasse in Kleinbuchstaben ausgegeben werden. Damit dies auch für die
+ Kolumnentitel gilt, die von \Package{tocbasic} gesetzt werden, definieren
+ Sie:
+\begin{lstcode}
+ \let\MakeMarkcase\MakeLowercase
+\end{lstcode}
+\end{Example}
+
+Erlauben\textnote{Tipp!} Sie mir einen Hinweis zu \Macro{MakeUppercase}. Diese
+Anweisung ist zum einen nicht voll expandierbar. Das bedeutet, dass sie im
+Zusammenspiel mit anderen Anweisungen zu Problemen führen kann. Zum anderen
+sind sich alle Typografen einig, dass beim Versalsatz, also beim Satz
+kompletter Wörter oder Passagen in Großbuchstaben, Sperrung unbedingt
+notwendig ist. Dabei darf jedoch kein fester Abstand zwischen den Buchstaben
+verwendet werden. Vielmehr muss zwischen unterschiedlichen Buchstaben auch ein
+unterschiedlicher Abstand gesetzt werden, weil sich unterschiedliche
+Buchstabenkombinationen unterschiedlich verhalten. Gleichzeitig bilden einige
+Buchstaben von sich aus bereits Löcher, was bei der Sperrung ebenfalls zu
+berücksichtigen ist. Pakete wie \Package{ulem} oder \Package{soul} können das
+ebenso wenig leisten wie der Befehl \Macro{MakeUppercase} selbst. Auch die
+automatische Sperrung mit Hilfe des \Package{microtype}-Pakets ist
+diesbezüglich nur eine näherungsweise Notlösung, da die von der konkreten
+Schrift abhängige Form der Buchstaben auch hier nicht näher betrachtet
+wird. Da\textnote{Empfehlung} Versalsatz also eher etwas für absolute
+Experten ist und fast immer Handarbeit bedeutet, wird Laien empfohlen, darauf
+zu verzichten oder ihn nur vorsichtig und nicht an so exponierter Stelle
+wie dem Kolumnentitel zu verwenden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{deftocheading}\Parameter{Dateierweiterung}\Parameter{Definition}
+\end{Declaration}
+Das Paket \Package{tocbasic} enthält eine Standarddefinition für das Setzen
+von Überschriften von Verzeichnissen. Diese Standarddefinition ist durch
+verschiedene Eigenschaften, die bei der Anweisung
+\DescRef{\LabelBase.cmd.setuptoc} erläutert werden, konfigurierbar. Sollte
+diese Möglichkeit einmal nicht ausreichen, so besteht die Möglichkeit, mit
+\Macro{deftocheading} eine alternative Überschriftenanweisung für ein
+Verzeichnis mit einer bestimmten \PName{Dateierweiterung} zu definieren. Die
+Definition kann als einzigen Parameter \PValue{\#1} enthalten. Beim Aufruf der
+Anweisung innerhalb von \DescRef{\LabelBase.cmd.listoftoc} oder
+\DescRef{\LabelBase.cmd.listofeachtoc} wird für dieses Argument dann der Titel
+für das Verzeichnis übergeben.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setuptoc}\Parameter{Dateierweiterung}
+ \Parameter{Liste von Eigenschaften}
+ \Macro{unsettoc}\Parameter{Dateierweiterung}
+ \Parameter{Liste von Eigenschaften}
+\end{Declaration}
+Mit diesen beiden Anweisungen können \PName{Eigenschaften} für eine
+\PName{Dateierweiterung} bzw. das Verzeichnis, das dazu gehört, gesetzt und
+gelöscht werden. Die \PName{Liste von Eigenschaften} ist dabei eine durch
+Komma getrennte Folge von \PName{Eigenschaften}. Das Paket
+\Package{tocbasic} wertet folgende Eigenschaften aus:
+\begin{description}\setkomafont{descriptionlabel}{}%
+\item[\PValue{leveldown}] bedeutet, dass das Verzeichnis nicht mit der
+ obersten Gliederungsebene unterhalb von \DescRef{maincls.cmd.part} -- wenn
+ vorhanden \DescRef{maincls.cmd.chapter}, sonst \DescRef{maincls.cmd.section}
+ -- erstellt wird, sondern mit einer Überschrift der nächst tieferen
+ Gliederungsebene. Diese Eigenschaft wird von der internen
+ Überschriftenanweisung ausgewertet. Wird\textnote{Achtung!} hingegen eine
+ eigene Überschriftenanweisung mit \DescRef{\LabelBase.cmd.deftocheading}
+ definiert, liegt die Auswertung der Eigenschaft in der Verantwortung dessen,
+ der die Definition vornimmt. Die \KOMAScript-Klassen setzen diese
+ Eigenschaft bei Verwendung der Option
+ \OptionValueRef{maincls}{listof}{leveldown}%
+ \important{\OptionValueRef{maincls}{listof}{leveldown}}%
+ \IndexOption{listof~=\textKValue{leveldown}} für alle Dateierweiterungen des
+ Besitzers \PValue{float}.
+\item[\PValue{nobabel}] bedeutet, dass die normalerweise automatisch
+ verwendete Erweiterung für die Sprachumschaltung mit
+ \Package{babel}\IndexPackage{babel} für diese Dateierweiterung nicht
+ verwendet wird. Diese Eigenschaft sollte nur für Verzeichnisse verwendet
+ werden, die nur in einer festen Sprache erstellt werden, in denen also
+ Sprachumschaltungen im Dokument nicht zu berücksichtigen sind. Sie wird
+ außerdem vom Paket
+ \Package{scrwfile}\important{\Package{scrwfile}}\IndexPackage{scrwfile} für
+ Klonziele verwendet, da die Erweiterungen dort bereits durch das Klonen
+ selbst aus der Klonquelle übernommen werden.
+
+ Es ist zu beachten\textnote{Achtung!}, dass die Eigenschaft bereits vor dem
+ Hinzufügen der Dateierweiterung zu der Liste der bekannten
+ Dateierweiterungen gesetzt sein muss, damit sie eine Wirkung hat.
+\item[\PValue{noparskipfake}] verhindert\ChangedAt{v3.17}{\Package{tocbasic}},
+ dass vor dem Abschalten des Absatzabstandes für die Verzeichnisse ein
+ letztes Mal ein expliziter Absatzabstand eingefügt wird. Dies führt in der
+ Regel dazu, dass bei Dokumenten mit Absatzabstand der Abstand zwischen
+ Überschrift und ersten Verzeichniseintrag\index{Verzeichnis>Eintrag} kleiner
+ wird als zwischen Überschriften und normalem Text. Normalerweise erhält man
+ daher ohne diese Eigenschaft eine einheitlichere Formatierung.
+\item[\PValue{noprotrusion}] verhindert\ChangedAt{v3.10}{\Package{tocbasic}}
+ das Abschalten des optischen Randausgleichs in den Verzeichnissen. Optischer
+ Randausgleich wird standardmäßig abgeschaltet, wenn das Paket
+ \Package{microtype}\IndexPackage{microtype} oder ein anderes Paket, das die
+ Anweisung \Macro{microtypesetup}\IndexCmd{microtypesetup} bereitstellt,
+ geladen ist. Wenn also optischer Randausgleich in den Verzeichnissen
+ gewünscht wird, dann muss diese Eigenschaft aktiviert
+ werden. Es\textnote{Achtung!} ist jedoch zu beachten, dass der optische
+ Randausgleich in Verzeichnissen häufig zu einem falschen Ergebnis
+ führt. Dies ist ein bekanntes Problem des optischen Randausgleichs.
+\item[\PValue{numbered}] bedeutet, dass das Verzeichnis nummeriert und damit
+ ebenfalls in das Inhaltsverzeichnis aufgenommen werden soll. Diese
+ Eigenschaft wird von der internen Überschriftenanweisung ausgewertet. Wird
+ hingegen eine eigene Überschriftenanweisung mit
+ \DescRef{\LabelBase.cmd.deftocheading} definiert, liegt die Auswertung der
+ Eigenschaft in der Verantwortung dessen, der die Definition vornimmt. Die
+ \KOMAScript-Klassen setzen diese Eigenschaft bei Verwendung der Option
+ \OptionValueRef{maincls}{listof}{numbered}%
+ \important{\OptionValueRef{maincls}{listof}{numbered}}%
+ \IndexOption{listof~=\textKValue{numbered}} für alle Dateierweiterungen des
+ Besitzers \Package{float}.
+\item[\PValue{numberline}] \ChangedAt{v3.12}{\Package{tocbasic}}%
+ bedeutet, dass all diejenigen Einträge, die mit Hilfe der Anweisung
+ \DescRef{\LabelBase.cmd.addxcontentsline} oder der Anweisung
+ \DescRef{\LabelBase.cmd.addxcontentslinetoeachtocfile} vorgenommen werden, wobei das optionale Argument für die Nummer fehlt
+ oder leer ist, mit einer leeren
+ \DescRef{\LabelBase.cmd.numberline}-Anweisung versehen 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. Bei\ChangedAt{v3.20}{\Package{tocbasic}} Verwendung des
+ Verzeichniseintragsstils \PValue{tocline} kann die Eigenschaft weitere
+ Auswirkungen haben. Siehe dazu die Stil-Eigenschaften
+ \Option{breakafternumber} und \Option{entrynumberformat} in
+ \autoref{tab:tocbasic.tocstyle.attributes} ab
+ \autopageref{tab:tocbasic.tocstyle.attributes}.
+
+ Die \KOMAScript-Klassen setzen diese Eigenschaft bei Verwendung der Option
+ \OptionValueRef{maincls}{listof}{numberline}%
+ \important{\OptionValueRef{maincls}{listof}{numberline}}%
+ \IndexOption{listof~=\textKValue{numberline}} für die Dateierweiterungen des
+ Besitzers \PValue{float} und bei Verwendung der Option
+ \OptionValueRef{maincls}{toc}{numberline}%
+ \important{\OptionValueRef{maincls}{toc}{numberline}}%
+ \IndexOption{toc~=\textKValue{numberline}} für die Dateierweiterung
+ \PValue{toc}. Entsprechend wird die Eigenschaft bei Verwendung von Option
+ \OptionValueRef{maincls}{listof}{nonumberline}%
+ \important{\OptionValueRef{maincls}{listof}{nonumberline}}%
+ \IndexOption{listof~=\textKValue{nonumberline}} oder
+ \OptionValueRef{maincls}{toc}{nonumberline}%
+ \important{\OptionValueRef{maincls}{toc}{nonumberline}}%
+ \IndexOption{toc~=\textKValue{nonumberline}} wieder zurückgesetzt.
+\item[\PValue{onecolumn}] \leavevmode\ChangedAt{v3.01}{\Package{tocbasic}}%
+ bedeutet, dass für dieses Verzeichnis automatisch der \LaTeX-interne
+ Einspaltenmodus mit \Macro{onecolumn}\IndexCmd{onecolumn} verwendet
+ wird. Dies\textnote{Achtung!} gilt jedoch nur, falls dieses Verzeichnis
+ nicht mit der oben beschriebenen Eigenschaft
+ \PValue{leveldown}\important{\PValue{leveldown}} um eine Gliederungsebene
+ nach unten verschoben wurde. Die \KOMAScript-Klassen \Class{scrbook} und
+ \Class{scrreprt} setzen diese Eigenschaft per
+ \DescRef{\LabelBase.cmd.AtAddToTocList} (siehe
+ \DescPageRef{\LabelBase.cmd.AtAddToTocList}) für alle Verzeichnisse mit dem
+ Besitzer \PValue{float} oder mit sich selbst als Besitzer. Damit werden
+ beispielsweise das Inhaltsverzeichnis, das Abbildungsverzeichnis und das
+ Tabellenverzeichnis bei diesen beiden Klassen automatisch einspaltig
+ gesetzt. Der Mehrspaltenmodus des
+ \Package{multicol}-Pakets\IndexPackage{multicol} ist von der Eigenschaft
+ ausdrücklich nicht betroffen.
+\item[\PValue{totoc}] bedeutet, dass der Titel des Verzeichnisses in das
+ Inhaltsverzeichnis aufgenommen werden soll. Diese Eigenschaft wird von der
+ internen Überschriftenanweisung ausgewertet. Wird\textnote{Achtung!} mit
+ \DescRef{\LabelBase.cmd.deftocheading}\important{\DescRef{\LabelBase.cmd.deftocheading}}%
+ \IndexCmd{deftocheading} hingegen eine eigene Überschriftenanweisung
+ definiert, liegt die Auswertung der Eigenschaft in der Verantwortung dessen,
+ der die Definition vornimmt. Die \KOMAScript-Klassen setzen diese
+ Eigenschaft bei Verwendung der Option
+ \OptionValueRef{maincls}{listof}{totoc}%
+ \important{\OptionValueRef{maincls}{listof}{totoc}}%
+ \IndexOption{listof~=\textKValue{totoc}} für alle Dateierweiterungen des
+ Besitzers \Package{float}.
+\end{description}
+Die \KOMAScript-Klassen kennen eine weitere Eigenschaft:
+\begin{description}\setkomafont{descriptionlabel}{}
+\item[\PValue{chapteratlist}] sorgt dafür, dass in dieses Verzeichnis bei
+ jedem neuen Kapitel eine optionale Gliederung eingefügt wird. In der
+ Voreinstellung ist diese Untergliederung dann ein vertikaler
+ Abstand. Näheres zu den Möglichkeiten ist Option
+ \DescRef{maincls.option.listof}%
+ \IndexOption{listof~=\PName{Einstellung}}%
+ \important{\DescRef{maincls.option.listof}} in
+ \autoref{sec:maincls.floats}, \DescPageRef{maincls.option.listof} zu
+ entnehmen.
+\end{description}
+\begin{Example}
+ Da \KOMAScript{} für das Abbildungs- und das Tabellenverzeichnis auf
+ \Package{tocbasic} aufbaut, gibt es nun eine weitere Möglichkeit, jegliche
+ Kapiteluntergliederung dieser Verzeichnisse zu verhindern:
+\begin{lstcode}
+ \unsettoc{lof}{chapteratlist}
+ \unsettoc{lot}{chapteratlist}
+\end{lstcode}
+
+ Wollen Sie hingegen, dass das von Ihnen definierte Verzeichnis mit der
+ Dateierweiterung »\PValue{loa}« ebenfalls von der Kapiteluntergliederung der
+ \KOMAScript-Klassen betroffen ist, so verwenden Sie
+\begin{lstcode}
+ \setuptoc{loa}{chapteratlist}
+\end{lstcode}
+Wollen Sie außerdem, dass bei Klassen, die \DescRef{maincls.cmd.chapter} als
+oberste Gliederungsebene verwenden, das Verzeichnis automatisch einspaltig
+gesetzt wird, so verwenden Sie zusätzlich
+\begin{lstcode}
+ \ifundefinedorrelax{chapter}{}{%
+ \setuptoc{loa}{onecolumn}%
+ }
+\end{lstcode}
+ Die Verwendung von \DescRef{scrbase.cmd.ifundefinedorrelax}
+ setzt das Paket \Package{scrbase} voraus (siehe
+ \autoref{sec:scrbase.if},
+ \DescPageRef{scrbase.cmd.ifundefinedorrelax}).
+
+ Sollte\textnote{Tipp!} Ihr Paket mit einer anderen Klasse verwendet werden,
+ so schadet es trotzdem nicht, dass Sie diese Eigenschaften setzen, im
+ Gegenteil: Wertet eine andere Klasse diese Eigenschaften ebenfalls aus, so
+ nutzt Ihr Paket automatisch die Möglichkeiten jener Klasse.
+\end{Example}
+Wie Sie hier sehen, unterstützt ein Paket, das \Package{tocbasic} verwendet,
+bereits ohne nennenswerten Aufwand diverse Möglichkeiten für die dadurch
+realisierten Verzeichnisse, die sonst einigen Implementierungsaufwand
+bedeuten würden und deshalb in vielen Paketen leider fehlen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{iftocfeature}\Parameter{Dateierweiterung}\Parameter{Eigenschaft}
+ \Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+Hiermit kann man für jede \PName{Eigenschaft} feststellen, ob sie für eine
+\PName{Dateierweiterung} gesetzt ist. Ist dies der Fall, wird der
+\PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Das kann
+beispielsweise nützlich sein, wenn Sie eigene Überschriftenanweisungen mit
+\DescRef{\LabelBase.cmd.deftocheading} definieren, aber die oben beschriebenen
+Eigenschaften \PValue{totoc}, \PValue{numbered} oder \PValue{leveldown}
+unterstützen wollen.
+%
+\EndIndexGroup
+
+
+\section{Konfiguration von Verzeichniseinträgen}
+\seclabel{tocstyle}
+\BeginIndexGroup
+\BeginIndex{}{Verzeichnis>Eintrag}
+
+Neben\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} den eigentlichen
+Verzeichnissen und den zugehörigen Hilfsdateien kann man mit dem Paket
+\Package{tocbasic} ab Version~3.20 auch Einfluss auf die Verzeichniseinträge
+nehmen. Dazu können neue Stile definiert werden. Es stehen aber auch mehrere
+vordefinierte Stile zur Verfügung. Mittelfristig wird \Package{tocbasic} das
+nie offiziell gewordene \KOMAScript-Paket \Package{tocstyle} ablösen. Die
+\KOMAScript-Klassen selbst bauen seit Version~3.20 ebenfalls vollständig auf
+die von \Package{tocbasic} bereitgestellten Stile für Verzeichniseinträge.
+
+\begin{Declaration}
+ \Counter{tocdepth}
+\end{Declaration}
+Verzeichniseinträge sind normalerweise hierarchisch geordnet. Dazu wird jeder
+Eintragsebene ein nummerischer Wert zu geordnet. Je höher dieser Wert, desto
+tiefer in der Hierarchie liegt die Ebene. Bei den Standardklassen hat die
+Ebene für Teile beispielsweise den Wert -1 und die Ebene für Kapitel den Wert
+0. Über den \LaTeX-Zähler \Counter{tocdepth} wird bestimmt, bis zu welcher
+Ebene Einträge im Verzeichnis ausgegeben werden.
+
+Bei \Class{book} ist \Counter{tocdepth} beispielsweise mit 2 voreingestellt,
+es werden also die Einträge der Ebenen \PValue{part}, \PValue{chapter},
+\PValue{section} und \PValue{subsection} ausgeben. Tiefere Ebenen wie
+\PValue{subsubsection}, deren nummerischer Wert 3 ist, werden nicht
+ausgegeben. Trotzdem sind die Einträge in der Hilfsdatei für das
+Inhaltsverzeichnis vorhanden.
+
+Die von \Package{tocbasic} definierten Eintragsstile beachten, abgesehen von
+\PValue{gobble} (siehe
+\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}\iffree{}{, weiter unten in
+ diesem Abschnitt}), ebenfalls \Counter{tocdepth}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{numberline}\Parameter{Gliederungsnummer}
+ \Macro{usetocbasicnumberline}\OParameter{Code}
+\end{Declaration}
+Zwar\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} definiert bereits der
+\LaTeX-Kern eine Anweisung \Macro{numberline}, diese ist allerdings für die
+Anforderungen von \Package{tocbasic} nicht ausreichend. Deshalb definiert
+\Package{tocbasic} eigene Anweisungen und setzt \Macro{numberline} bei Bedarf
+mit Hilfe von \Macro{usetocbasicnumberline} für die einzelnen
+Verzeichniseinträge entsprechend. Eine Umdefinierung von \Macro{numberline}
+ist daher bei Verwendung von \Package{tocbasic} oftmals wirkungslos und führt
+teilweise auch zu Warnungen.
+
+Man kann auch die Definition von \Package{tocbasic} generell nutzen, indem man
+bereits in der Dokumentpräambel \Macro{usetocbasicnumberline} aufruft. Die
+Anweisung versucht zunächst zu ermitteln, ob in der aktuellen Definition
+wichtige interne Anweisungen von \Package{tocbasic} verwendet werden. Ist dies
+nicht der Fall, wird \Macro{numberline} entsprechend umdefiniert und zusätzlich
+\PName{Code} ausgeführt. Ist kein optionales Arguments angegeben, wird
+stattdessen via \Macro{PackageInfo} eine Meldung über die erfolgte
+Umdefinierung ausgegeben. Diese Meldung kann man einfach unterdrücken, indem
+ein leeres optionales Argument angegeben wird.
+
+Es\textnote{Achtung!} ist zu beachten, dass \Macro{usetocbasicnumberline} den
+internen Schalter \Macro{if@tempswa} global verändern kann!%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DeclareTOCStyleEntry}\OParameter{Optionenliste}\Parameter{Stil}
+ \Parameter{Eintragsebene}
+ \Macro{DeclareTOCStyleEntries}\OParameter{Optionenliste}\Parameter{Stil}
+ \Parameter{Liste von Eintragsebenen}
+\end{Declaration}
+Über\ChangedAt{v3.20}{\Package{tocbasic}} diese Anweisungen werden
+die Verzeichniseinträge für bestimmte \PName{Eintragsebenen} deklariert
+oder konfiguriert. Dabei ist die \PName{Eintragsebene} der Name der jeweiligen
+Eintragsebene, beispielsweise \PValue{section} für einen zur gleichnamigen
+Gliederungsebene gehörenden Eintrag ins Inhaltsverzeichnis oder
+\PValue{figure} für den Eintrag einer Abbildung ins
+Abbildungsverzeichnis. Jeder \PName{Eintragsebene} wird ein bestimmter
+\PName{Stil} zugeordnet, der zum Zeitpunkt der Deklaration bereits definiert
+sein muss. Über die \PName{Optionenliste} können die verschiedenen, meist vom
+\PName{Stil} abhängenden Eigenschaften des Eintrags festgelegt werden.
+
+Derzeit werden von \Package{tocbasic} die folgenden Eintragsstile definiert:
+\begin{description}\setkomafont{descriptionlabel}{}
+\item[\PValue{default}] ist in der Voreinstellung ein Klon von Stil
+ \PValue{dottedtocline}. Klassenautoren, die \Package{tocbasic} verwenden,
+ wird empfohlen, diesen Stil mit Hilfe von
+ \DescRef{\LabelBase.cmd.CloneTOCEntryStyle} auf den
+ Standardverzeichniseintragsstil der Klasse zu ändern. Bei den
+ \KOMAScript-Klassen wird \PValue{default} beispielsweise zu einem Klon von
+ Stil \PValue{tocline}.
+\item[\PValue{dottedtocline}] entspricht dem Stil, der von den Standardklassen
+ \Class{book} und \Class{report} für die Inhaltsverzeichniseinträge der
+ Ebenen \PValue{section} bis \PValue{subparagraph} und bei allen
+ Standardklassen für die Einträge in das Abbildungs- und das
+ Tabellenverzeichnis bekannt ist. Er kennt nur drei\important{\PValue{level},
+ \PValue{indent}, \PValue{numwidth}} Eigenschaften. Die Einträge werden
+ um \PValue{indent} von links eingezogen in der aktuellen Schrift
+ ausgegeben. \DescRef{\LabelBase.cmd.numberline} wird nicht umdefiniert. Die
+ Breite der Nummer wird von \PValue{numwidth} bestimmt. Bei mehrzeiligen
+ Einträgen wird der Einzug ab der zweiten Zeile um \PValue{numwidth}
+ erhöht. Die Seitenzahl wird mit \Macro{normalfont} ausgegeben. Eintragstext
+ und Seitenzahl werden durch eine punktierte Linie
+ verbunden. \autoref{fig:tocbasic.dottedtocline} illustriert die
+ Eigenschaften des Stils.
+ \begin{figure}
+ \centering
+ \resizebox{.8\linewidth}{!}{%
+ \begin{tikzpicture}
+ \draw[color=lightgray] (0,2\baselineskip) -- (0,-2.5\baselineskip);
+ \draw[color=lightgray] (\linewidth,2\baselineskip) --
+ (\linewidth,-2.5\baselineskip);
+ \node (dottedtocline) at (0,0) [anchor=west,inner sep=0,outer sep=0]
+ {%
+ \hspace*{7em}%
+ \parbox[t]{\dimexpr\linewidth-9.55em}{%
+ \setlength{\parindent}{-3.2em}%
+ \addtolength{\parfillskip}{-2.55em}%
+ \makebox[3.2em][l]{1.1.10}%
+ Überschrift im Verzeichniseintragsstil \PValue{dottedtocline} mit
+ mehr als einer Zeile%
+ \leaders\hbox{$\csname m@th\endcsname
+ \mkern 4.5mu\hbox{.}\mkern 4.5mu$}\hfill\nobreak
+ \makebox[1.55em][r]{12}%
+ }%
+ };
+ \draw[|-|,color=gray,overlay] (0,0) --
+ node [anchor=north,font=\small] {
+ \PValue{indent}
+ }
+ (3.8em,0);
+ \draw[|-|,color=gray,overlay] (3.8em,\baselineskip) --
+ node [anchor=south,font=\small] {
+ \PValue{numwidth}
+ }
+ (7em,\baselineskip);
+ \draw[|-|,color=gray,overlay] (\linewidth,\ht\strutbox) --
+ node [anchor=south,font=\small] {
+ \Macro{@tocrmarg}
+ }
+ (\linewidth-2.55em,\ht\strutbox);
+ \draw[|-|,color=gray,overlay] (\linewidth,-\baselineskip) --
+ node [anchor=north,font=\small] {
+ \Macro{@pnumwidth}
+ }
+ (\linewidth-1.55em,-\baselineskip);
+ \end{tikzpicture}%
+ }
+ \caption{Illustration einiger Attribute des Verzeichniseintragsstils
+ \PValue{dottedtocline}}
+ \label{fig:tocbasic.dottedtocline}
+ \end{figure}
+\item[\PValue{gobble}] ist der denkbar einfachste Stil. Einträge in diesem
+ Stil werden unabhängig von allen Einstellungen für
+ \DescRef{\LabelBase.counter.tocdepth}%
+ \IndexCounter{tocdepth}\important{\DescRef{\LabelBase.counter.tocdepth}}
+ nicht ausgegeben sondern sozusagen verschluckt. Dennoch verfügt er über die
+ Standardeigenschaft \PValue{level}, die jedoch nie ausgewertet wird.
+\item[\PValue{largetocline}] entspricht dem Stil, der von den Standardklassen
+ für die Ebene \PValue{part} bekannt ist. Er kennt
+ nur\important{\PValue{level}, \PValue{indent}} die Eigenschaften
+ \PName{level} und \PName{indent}. Letzteres ist gleichsam eine Abweichung
+ von den Standardklassen, die selbst keinen Einzug der \PValue{part}-Einträge
+ unterstützen.
+
+ Vor dem Eintrag wird ein Seitenumbruch erleichtert. Die Einträge werden um
+ \PValue{indent} von links eingezogen und mit den Schrifteinstellungen
+ \Macro{large}\Macro{bfseries} ausgegeben. Sollte
+ \DescRef{\LabelBase.cmd.numberline} verwendet werden, so ist die
+ Nummernbreite fest auf 3\Unit{em}
+ eingestellt. \DescRef{\LabelBase.cmd.numberline} wird nicht umdefiniert. Die
+ Standardklassen verwenden für \PName{part}-Einträge kein
+ \DescRef{\LabelBase.cmd.numberline}. Der Wert hat bei mehrzeiligen Einträgen
+ auch keine Auswirkung auf den Einzug ab der zweiten Zeile.
+
+ \autoref{fig:tocbasic.largetocline} illustriert die
+ Eigenschaften
+ des Stils. Dabei wird auch auf"|fällig, dass der Stil einige Ungereimtheiten
+ der Standardklassen übernommen hat, beispielsweise der fehlende Einzug ab
+ der zweiten Zeile bei mehrzeiligen Einträgen und zwei unterschiedliche Werte
+ für \Macro{@pnumwidth}, die aus einer Abhängigkeit von der Schriftgröße
+ resultieren. Daraus resultiert auch der Umstand, dass im Extremfall der Text
+ der Überschrift der Seitenzahl zu nahe kommen kann. Es ist zu beachten, dass
+ die in der Abbildung gezeigte Breite der Gliederungsnummer nur dann
+ Verwendung findet, wenn auch tatsächlich \DescRef{\LabelBase.cmd.numberline}
+ verwendet wird. Die Standardklassen setzen hingegen einen festen Abstand von
+ 1\Unit{em} nach der Nummer.
+ \begin{figure}
+ \centering
+ \resizebox{.8\linewidth}{!}{%
+ \begin{tikzpicture}
+ \draw[color=lightgray] (0,2\baselineskip) -- (0,-2.5\baselineskip);
+ \draw[color=lightgray] (\linewidth,2\baselineskip) --
+ (\linewidth,-2.5\baselineskip);
+ \node (largetocline) at (0,0) [anchor=west,inner sep=0,outer sep=0] {%
+ \parbox[t]{\dimexpr \linewidth-1.55em\relax}{%
+ \makebox[3em][l]{\large\bfseries I}%
+ \large\bfseries
+ Überschrift im Verzeichniseintragsstil \PValue{largetocline} mit
+ mehr als einer Zeile\hfill
+ \makebox[0pt][l]{\normalsize\normalfont
+ \makebox[1.55em][r]{\large\bfseries 1}}%
+ }%
+ };
+ \draw[|-|,color=gray] (0,\baselineskip) --
+ node [anchor=south] { 3\,em }
+ (3em,\baselineskip);
+ \draw[|-|,color=gray,overlay] (\linewidth,\ht\strutbox) --
+ node [anchor=south] { \Macro{@pnumwidth} }
+ (\linewidth-1.55em,\ht\strutbox);
+ \large\bfseries
+ \draw[|-|,color=gray,overlay] (\linewidth,-\baselineskip) --
+ node [anchor=north,font=\normalfont\normalsize] {
+ \Macro{large}\Macro{@pnumwidth}
+ }
+ (\linewidth-1.55em,-\baselineskip);
+ \end{tikzpicture}%
+ }
+ \caption{Illustration einiger Attribute des Verzeichniseintragsstils
+ \PValue{largetocline}}
+ \label{fig:tocbasic.largetocline}
+ \end{figure}
+\item[\PValue{tocline}] ist ein flexibler Stil, der in der Voreinstellung für
+ alle Einträge der \KOMAScript-Klassen verwendet wird. Entsprechend
+ definieren diese Klassen auch die Klone \PValue{part}, \PValue{chapter} und
+ \PValue{section} beziehungsweise \PValue{section} und \PValue{subsection}
+ mit Hilfe dieses Stils, ändern dann jedoch den \PName{Initialisierungscode}
+ der Klone so ab, dass sie unterschiedliche Voreinstellungen besitzen.
+
+ Der Stil kennt neben der Standardeigenschaft \PValue{level} noch
+ 16\important{\PValue{level}, \PValue{beforeskip}, \PValue{breakafternumber},
+ \PValue{dynnumwidth}, \PValue{entryformat}, \PValue{entrynumberformat},
+ \PValue{indent}, \PValue{linefill}, \PValue{numsep}, \PValue{numwidth},
+ \PValue{onstarthigherlevel}, \PValue{onstartlowerlevel},
+ \PValue{onstartsamelevel}, \PValue{pagenumberbox},
+ \PValue{pagenumberformat}, \PValue{raggedentrytext},
+ \PValue{raggedpagenumber}} weitere Eigenschaften. Die Voreinstellungen all
+ dieser Eigenschaften werden abhängig vom Namen der \PName{Eintragsebene}
+ bestimmt und orientieren sich dann an den Ergebnissen der
+ Standardklassen. Es ist daher möglich, nach Laden von \Package{tocbasic} den
+ Stil der Inhaltsverzeichniseinträge der Standardklassen mit
+ \DescRef{\LabelBase.cmd.DeclareTOCEntryStyle} in \PValue{tocline} zu ändern,
+ ohne dass dies unmittelbar zu größeren Veränderungen im Aussehen der
+ Inhaltsverzeichniseinträge führt. So kann man gezielt nur die Eigenschaften
+ ändern, die für erwünschte Änderungen notwendig sind. Dasselbe gilt für
+ Abbildungs- und Tabellenverzeichnis der Standardklassen.%
+
+ Aufgrund der hohen Flexibilität kann dieser Stil prinzipiell die Stile
+ \PValue{dottedtocline}, \PValue{undottedtocline} und \PValue{largetocline}
+ ersetzen, bedarf dann jedoch teilweise eines höheren Aufwands bei der
+ Konfiguration.
+
+ \autoref{fig:tocbasic.tocline} illustriert einige Längen-Eigenschaften des
+ Stils. Die weiteren sind in \autoref{tab:tocbasic.tocstyle.attributes}, ab
+ \autopageref{tab:tocbasic.tocstyle.attributes} erklärt.
+ \begin{figure}
+ \centering
+ \resizebox{.8\linewidth}{!}{%
+ \begin{tikzpicture}
+ \coordinate (subsection) at (0,0);
+ \coordinate (section) at ($(subsection)+(0,2\baselineskip)$);
+ \coordinate (chapter) at ($(section)+(0,2\baselineskip)$);
+ \coordinate (part) at ($(chapter)+(0,2.4\baselineskip+1em)$);
+
+ \draw[color=lightgray]
+ ($(part)+(0,2\baselineskip)$) --
+ (0,-2.5\baselineskip);
+ \draw[color=lightgray]
+ ($(part)+(\linewidth,2\baselineskip)$) --
+ (\linewidth,-2.5\baselineskip);
+
+ \coordinate (subsection) at (0,0);
+
+ \node at (part) [anchor=west,inner sep=0,outer sep=0]
+ {%
+ \hspace*{3em}%
+ \parbox[t]{\dimexpr\linewidth-5.55em}{%
+ \setlength{\parindent}{-3em}%
+ \addtolength{\parfillskip}{-2.55em}%
+ \makebox[3em][l]{\large\bfseries I.}%
+ \textbf{\large Überschrift eines Teil-Eintrags im Stil
+ \PValue{tocline} zur Demonstration mit mehr als einer Zeile}%
+ \hfill
+ \makebox[1.55em][r]{\bfseries 12}\large
+ }%
+ };
+ \draw[|-|,color=gray,overlay]
+ (part) --
+ ($(part)+(3em,0)$)
+ node [anchor=north east,font=\small] {
+ \PValue{numwidth}
+ };
+ \draw[|-|,color=gray,overlay]
+ ($(part)+(\linewidth,\ht\strutbox)$)
+ node [anchor=north,font=\small] {
+ \Macro{@tocrmarg}
+ } --
+ ($(part)+(\linewidth-2.55em,\ht\strutbox)$);
+ \draw[|-|,color=gray,overlay]
+ ($(part)+(\linewidth,-\baselineskip)$) --
+ node [anchor=north,font=\small] {
+ \Macro{@pnumwidth}
+ }
+ ($(part)+(\linewidth-1.55em,-\baselineskip)$);
+ \node at (chapter) [anchor=west,inner sep=0,outer sep=0]
+ {%
+ \hspace*{1.5em}%
+ \parbox[t]{\dimexpr\linewidth-4.05em}{%
+ \setlength{\parindent}{-1.5em}%
+ \addtolength{\parfillskip}{-2.55em}%
+ \makebox[1.5em][l]{\bfseries 1.}%
+ \textbf{Überschrift eines Kapiteleintrags im Stil
+ \PValue{tocline} zur Demonstration mit mehr als einer Zeile}%
+ \hfill
+ \makebox[1.55em][r]{\bfseries 12}%
+ }%
+ };
+ \draw[|-|,color=gray,overlay]
+ ($(chapter)+(3em,\baselineskip)$) --
+ node [anchor=west,font=\small] {
+ \PValue{beforeskip}
+ }
+ ($(part)+(3em,-\baselineskip)$);
+ \draw[|-|,color=gray,overlay]
+ (chapter) --
+ ($(chapter)+(1.5em,0)$)
+ node [anchor=north east,font=\small] {
+ \PValue{numwidth}
+ };
+ \draw[|-|,color=gray,overlay]
+ ($(chapter)+(\linewidth,\ht\strutbox)$)
+ node [anchor=north,font=\small] {
+ \Macro{@tocrmarg}
+ } --
+ ($(chapter)+(\linewidth-2.55em,\ht\strutbox)$);
+ \draw[|-|,color=gray,overlay]
+ ($(chapter)+(\linewidth,-\baselineskip)$)
+ node [anchor=north,font=\small] {
+ \Macro{@pnumwidth}
+ } --
+ ($(chapter)+(\linewidth-1.55em,-\baselineskip)$);
+ \node at (section) [anchor=west,inner sep=0,outer sep=0]
+ {
+ \hspace*{3.8em}%
+ \parbox[t]{\dimexpr\linewidth-6.35em}{%
+ \setlength{\parindent}{-2.3em}%
+ \addtolength{\parfillskip}{-2.55em}%
+ \makebox[2.3em][l]{1.1.}%
+ Überschrift eines Abschnitteintrags im Stil
+ \PValue{tocline} zur Demonstration mit mehr als einer Zeile%
+ \leaders\hbox{$\csname m@th\endcsname
+ \mkern 4.5mu\hbox{.}\mkern 4.5mu$}\hfill\nobreak
+ \makebox[1.55em][r]{3}%
+ }%
+ };
+ \node at (subsection) [anchor=west,inner sep=0,outer sep=0]
+ {%
+ \hspace*{7em}%
+ \parbox[t]{\dimexpr\linewidth-9.55em}{%
+ \setlength{\parindent}{-3.2em}%
+ \addtolength{\parfillskip}{-2.55em}%
+ \makebox[3.2em][l]{1.1.10.}%
+ Überschrift eines Unterabschnitteintrags im Stil
+ \PValue{tocline} mit mehr als einer Zeile%
+ \leaders\hbox{$\csname m@th\endcsname
+ \mkern 4.5mu\hbox{.}\mkern 4.5mu$}\hfill\nobreak
+ \makebox[1.55em][r]{12}%
+ }%
+ };
+ \draw[|-|,color=gray,overlay]
+ ($(subsection)+(0,\ht\strutbox)$) --
+ node [anchor=north,font=\small] {
+ \PValue{indent}
+ }
+ ($(subsection)+(3.8em,\ht\strutbox)$);
+ \draw[|-|,color=gray,overlay]
+ ($(subsection)+(3.8em,0)$) --
+ ($(subsection)+(7em,0)$)
+ node [anchor=north east,font=\small] {
+ \PValue{numwidth}
+ };
+ \draw[|-|,color=gray,overlay]
+ ($(subsection)+(\linewidth,\ht\strutbox)$)
+ node [anchor=north,font=\small] {
+ \Macro{@tocrmarg}
+ } --
+ ($(subsection)+(\linewidth-2.55em,\ht\strutbox)$);
+ \draw[|-|,color=gray,overlay]
+ ($(subsection)+(\linewidth,-\baselineskip)$) --
+ node [anchor=north,font=\small] {
+ \Macro{@pnumwidth}
+ }
+ ($(subsection)+(\linewidth-1.55em,-\baselineskip)$);
+ \end{tikzpicture}%
+ }
+ \caption{Illustration einiger Attribute des Verzeichniseintragsstils
+ \PValue{tocline}}
+ \label{fig:tocbasic.tocline}
+ \end{figure}
+\item[\PValue{undottedtocline}] entspricht dem Stil, der von den
+ Standardklassen \Class{book} und \Class{report} für die Ebene
+ \PValue{chapter} und von \Class{article} für die Ebene \PValue{section}
+ bekannt ist. Er kennt\important{\PValue{level}, \PValue{indent},
+ \PValue{numwidth}} nur drei Eigenschaften.
+ Vor dem Eintrag wird ein Seitenumbruch erleichtert und ein vertikaler
+ Abstand eingefügt. Die Einträge werden um \PValue{indent} von links
+ eingezogen in \Macro{bfseries} ausgegeben. Dies ist gleichsam eine
+ Abweichung von den Standardklassen, die selbst keinen Einzug für Einträge
+ der genannten Ebenen bieten. \DescRef{\LabelBase.cmd.numberline} wird nicht
+ umdefiniert. Die Breite der Nummer wird von \PValue{numwidth} bestimmt. Bei
+ mehrzeiligen Einträgen wird der Einzug ab der zweiten Zeile um
+ \PValue{numwidth} erhöht. \autoref{fig:tocbasic.undottedtocline} illustriert
+ die Eigenschaften des Stils.
+ \begin{figure}
+ \centering
+ \resizebox{.8\linewidth}{!}{%
+ \begin{tikzpicture}
+ \draw[color=lightgray] (0,2\baselineskip) -- (0,-2.5\baselineskip);
+ \draw[color=lightgray] (\linewidth,2\baselineskip) --
+ (\linewidth,-2.5\baselineskip);
+ \node (undottedtocline) at (0,0) [anchor=west,inner sep=0,outer sep=0]
+ {%
+ \makebox[1.5em][l]{\bfseries 1}%
+ \parbox[t]{\dimexpr \linewidth-4.05em\relax}{%
+ \bfseries
+ Überschrift im Verzeichniseintragsstil \PValue{undottedtocline} mit
+ mehr als einer Zeile%
+ }%
+ \raisebox{-\baselineskip}{\makebox[2.55em][r]{\bfseries 3}}%
+ };
+ \draw[|-|,color=gray,overlay] (0,\baselineskip) --
+ node [anchor=south,font=\small] {
+ \PValue{numwidth}
+ }
+ (1.5em,\baselineskip);
+ \draw[|-|,color=gray,overlay] (\linewidth,\ht\strutbox) --
+ node [anchor=south,font=\small] {
+ \Macro{@tocrmarg}
+ }
+ (\linewidth-2.55em,\ht\strutbox);
+ \draw[|-|,color=gray,overlay] (\linewidth,-\baselineskip) --
+ node [anchor=north,font=\small] {
+ \Macro{@pnumwidth}
+ }
+ (\linewidth-1.55em,-\baselineskip);
+ \end{tikzpicture}%
+ }
+ \caption{Illustration einiger Attribute des Verzeichniseintragsstils
+ \PValue{undottedtocline} am Beispiel einer Kapitelüberschrift}
+ \label{fig:tocbasic.undottedtocline}
+ \end{figure}
+\end{description}
+Eine Erklärung zu den Eigenschaften der von \Package{tocbasic} definierten
+Stile findet sich in \autoref{tab:tocbasic.tocstyle.attributes}.
+Bei\ChangedAt{v3.21}{\Package{tocbasic}} Verwendung der Eigenschaften
+als Optionen für
+\DescRef{\LabelBase.cmd.DeclareNewTOC}\IndexCmd{DeclareNewTOC} (siehe
+\DescPageRef{\LabelBase.cmd.DeclareNewTOC}) sind die Namen der Eigenschaften
+mit dem Präfix \PValue{tocentry}, also beispielsweise \Option{tocentrylevel}
+anstelle von \PValue{level}, zu
+verwenden. Bei\ChangedAt{v3.20}{\Package{tocbasic}} Verwendung als
+Optionen für \DescRef{maincls-experts.cmd.DeclareSectionCommand}%
+\IndexCmd{DeclareSectionCommand}\IndexCmd{DeclareNewSectionCommand}%
+\IndexCmd{RedeclareSectionCommand}\IndexCmd{ProvideSectionCommand} (siehe
+\DescPageRef{maincls-experts.cmd.DeclareSectionCommand}) und verwandten
+Anweisungen sind die Namen der Eigenschaften mit dem Präfix \PValue{toc} zu
+versehen, also beispielsweise \Option{toclevel} anstelle von \PValue{level} zu
+verwenden.
+
+Letztlich führt der Aufruf von \Macro{DeclareTOCStyleEntry} zur Definition der
+Anweisung \Macro{l@\PName{Eintragsebene}}.
+
+\begin{desclist}
+ \desccaption{%
+ Attribute für die vordefinierten Verzeichniseintragsstile von
+ \Package{tocbasic}%
+ \label{tab:tocbasic.tocstyle.attributes}%
+ }{%
+ Attribute der Verzeichniseintragsstile (\emph{Fortsetzung})%
+ }%
+ \entry{\OptionVName{beforeskip}{Länge}}{%
+ Vertikaler Abstand, der vor einem Eintrag dieser Ebene im Stil
+ \PValue{tocline} eingefügt wird (siehe \autoref{fig:tocbasic.tocline}). Der
+ Abstand wird je nach Ebene mit \Macro{vskip} oder \Macro{addvspace}
+ eingefügt, so dass diesbezüglich möglichst Kompatibilität zu den
+ Standardklassen und früheren Versionen von \KOMAScript{} besteht.
+
+ Bei der \PName{Eintragsebene} \PValue{part} wird das Attribut mit
+ \texttt{2.25em plus 1pt} initialisiert, bei \PValue{chapter} mit
+ \texttt{1em plus 1pt}. Ist noch keine \PName{Eintragsebene}
+ \PValue{chapter} bekannt, wird stattdessen für \PValue{section}
+ \texttt{1em plus 1pt} verwendet. Ansonsten wird \PValue{section} wie alle
+ anderen Ebenen mit \texttt{0pt plus .2pt} initialisiert.%
+ }%
+ \entry{\OptionVName{breakafternumber}{Schalter}}{%
+ \PName{Schalter} ist einer der Werte für einfache Schalter aus
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}. Ist der
+ Schalter beim Stil \PValue{tocline} aktiviert, so wird nach der mit
+ \DescRef{\LabelBase.cmd.numberline}\IndexCmd{numberline} gesetzten Nummer
+ eine neue Zeile begonnen, die erneut linksbündig mit der Nummer beginnt.
+
+ In der Voreinstellung ist die Eigenschaft im Stil \PValue{tocline} nicht
+ gesetzt.
+
+ Ist %\textnote{Achtung!}
+ für ein Verzeichnis mit \DescRef{\LabelBase.cmd.setuptoc} die Eigenschaft
+ \Option{numberline} gesetzt (siehe \autoref{sec:tocbasic.toc},
+ \DescPageRef{\LabelBase.cmd.setuptoc}), wie dies bei den
+ \KOMAScript-Klassen und Verwendung deren Option
+ \OptionValueRef{maincls}{toc}{numberline}%
+ \IndexOption{toc~=\textKValue{numberline}} der Fall ist, führt dies auch
+ dazu, dass bei nicht nummerierten Einträgen dennoch die Zeile mit der dann
+ leeren Nummer in der Formatierung von \Option{entrynumberformat} gesetzt
+ wird.%
+ }%
+ \entry{\OptionVName{dynnumwidth}{Schalter}}{%
+ \PName{Schalter} ist einer der Werte für einfache Schalter aus
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}. Ist der
+ Schalter beim Stil \PValue{tocline} aktiviert, gibt die Eigenschaft
+ \PValue{numwidth} nur noch einen Minimalwert an. Übertrifft die beim
+ letzten \LaTeX-Lauf ermittelte maximale Breite der Eintragsnummern
+ gleicher Ebene zuzüglich des Wertes von \PValue{numsep} diesen
+ Minimalwert, so wird stattdessen der ermittelte Wert verwendet.%
+ }%
+ \entry{\OptionVName{entryformat}{Befehl}}{%
+ Über diese Eigenschaft kann die Formatierung des gesamten Eintrags
+ verändert werden. Der dabei als Wert angegebene \PName{Befehl} hat genau
+ ein Argument zu erwarten. Dieses Argument ist nicht zwingend voll
+ expandierbar. Befehle wie \Macro{MakeUppercase}, die ein voll
+ expandierbares Argument erwarten, dürfen an dieser Stelle also nicht
+ verwendet werden. Font-Änderungen über \Option{entryformat} erfolgen
+ ausgehend von \Macro{normalfont}\Macro{normalsize}. Es wird darauf
+ hingewiesen, dass die Ausgabe von \Option{linefill} und der Seitenzahl
+ unabhängig von \Option{entryformat} sind. Siehe dazu auch die Eigenschaft
+ \Option{pagenumberformat}.
+
+ Initialisiert wird die Eigenschaft für die \PName{Eintragsebene}
+ \PValue{part} mit der Ausgabe des übergebenen Argument in
+ \Macro{large}\Macro{bfseries} und für \PValue{chapter} in
+ \Macro{bfseries}. Falls bei der Initialisierung von \PValue{section} noch
+ keine Ebene \PValue{chapter} existiert, wird auch für diese Ebene
+ \Macro{bfseries} verwendet. Bei allen anderen Ebenen wird das Argument
+ unverändert ausgegeben.%
+ }%
+ \entry{\OptionVName{entrynumberformat}{Befehl}}{%
+ Über diese Eigenschaft kann die Formatierung der mit
+ \DescRef{\LabelBase.cmd.numberline} gesetzten Eintragsnummer verändert
+ werden. Der dabei als Wert angegebene \PName{Befehl} hat genau ein
+ Argument zu erwarten. Font-Änderungen erfolgen ausgehend von der
+ Eigenschaft \Option{entryformat}.
+
+ Initialisiert wird die Eigenschaft mit Ausgabe des übergebenen
+ Arguments. Die Eintragsnummer wird also unverändert ausgegeben.
+
+ Ist %\textnote{Achtung!}
+ für ein Verzeichnis mit \DescRef{\LabelBase.cmd.setuptoc} die Eigenschaft
+ \Option{numberline} gesetzt (siehe \autoref{sec:tocbasic.toc},
+ \DescPageRef{\LabelBase.cmd.setuptoc}), wie dies bei den
+ \KOMAScript-Klassen und Verwendung deren Option
+ \OptionValueRef{maincls}{toc}{numberline}%
+ \IndexOption{toc~=\textKValue{numberline}} der Fall ist, führt dies auch
+ dazu, dass bei nicht nummerierten Einträgen \PName{Befehl} dennoch
+ ausgeführt wird.%
+ }%
+ \entry{\OptionVName{indent}{Länge}}{%
+ Horizontaler Abstand des Eintrags vom linken Rand (siehe
+ \autoref{fig:tocbasic.dottedtocline} und \autoref{fig:tocbasic.tocline}).
+
+ Beim Stil \PValue{tocline} wird für alle Eintragsebenen, deren Name mit
+ »\texttt{sub}« beginnt, eine Initialisierung mit
+ \PValue{indent}+\PValue{numwidth} der gleichnamigen Eintragsebene ohne
+ diesen Präfix vorgenommen, falls eine solche Ebene mit entsprechenden
+ Eigenschaften existiert. Bei den Stilen \PValue{dottedtocline},
+ \PValue{undottedtocline} und \PValue{tocline} findet für die
+ Eintragsebenen \PValue{part} bis \PValue{subparagraph} sowie
+ \PValue{figure} und \PValue{table} eine Initialisierung mit Werten
+ entsprechend der Standardklassen statt. Alle anderen Ebenen erhalten keine
+ Initialisierung. Für sie ist eine explizite Angabe daher bei der ersten
+ Verwendung zwingend.%
+ }%
+ \entry{\OptionVName{level}{Integer}}{%
+ Nummerischer Wert der \PName{Eintragsebene}. Tatsächlich angezeigt werden
+ nur Einträge, deren nummerische Ebene nicht größer als Zähler
+ \DescRef{\LabelBase.counter.tocdepth}%
+ %\important{\DescRef{\LabelBase.counter.tocdepth}}
+ \IndexCounter{tocdepth}
+ ist.
+
+ Diese Eigenschaft ist für alle Stile zwingend und wird bei der
+ Definition eines Stils automatisch definiert.
+
+ Beim Stil \PValue{tocline} findet für alle Eintragsebenen, deren Name
+ mit »\texttt{sub}« beginnt, eine Initialisierung entsprechend dem
+ um eins erhöhten Wert einer gleichnamigen Eintragsebene ohne
+ diesen Präfix statt, falls eine solche Ebene existiert. Bei den Stilen
+ \PValue{dottedtocline}, \PValue{largetocline}, \PValue{tocline} und
+ \PValue{undottedtocline} findet für die \PName{Eintragsebene}
+ \PValue{part}, \PValue{chapter}, \PValue{section}, \PValue{subsection},
+ \PValue{subsubsection}, \PValue{paragraph}, \PValue{subparagraph},
+ \PValue{figure} und \PValue{table} automatisch eine Initialisierung
+ aufgrund des Namens statt. Für andere Ebenen findet eine Initialisierung
+ mit dem Wert der Gliederungsebene statt, falls kompatibel zu den
+ \KOMAScript-Klassen \Macro{\PName{Eintragsebene}numdepth} definiert
+ ist.%
+ }%
+ \entry{\OptionVName{linefill}{Code}}{%
+ Beim Stil \PValue{tocline} kann zwischen dem Ende des Eintragstextes und
+ der Seitenzahl die Art der Füllung verändert werden. Die Eigenschaft
+ \PName{linefill} erhält als Wert direkt den gewünschten \PName{Code}.
+ Für \PName{Eintragsebene} \PValue{part} und \PValue{chapter} wird die
+ Eigenschaft mit \Macro{hfill} initialisiert. Dadurch rückt die Seitenzahl
+ an den rechten Rand. Ist bisher keine \PName{Eintragsebene}
+ \PValue{chapter} definiert, so gilt dies auch für \PValue{section}. Alle
+ anderen Ebenen werden mit \DescRef{\LabelBase.cmd.TOCLineLeaderFill} (siehe
+ \DescPageRef{\LabelBase.cmd.TOCLineLeaderFill}) initialisiert.
+
+ Wird \PName{Code} angegeben, der nicht automatisch zu einer Füllung des
+ Abstandes führt, sollte übrigens auch die Eigenschaft
+ \PValue{raggedpagenumber} gesetzt werden, damit es nicht zu
+ »\texttt{underfull \Macro{hbox}}«-Meldungen kommt.%
+ }%
+ \entry{\OptionVName{numsep}{Länge}}{%
+ Der Stil \PValue{tocline} versucht sicherzustellen, dass zwischen der
+ Nummer und dem Text eines Eintrags mindestens ein Abstand von
+ \PName{Länge} eingehalten wird. Bei aktiviertem \PValue{dynnumwidth} kann
+ die für die Nummer reservierte Breite \PValue{numwidth} entsprechend
+ korrigiert werden. Bei nicht aktiviertem \PValue{dynnumwidth} wird
+ hingegen lediglich eine Warnung ausgegeben, wenn diese Bedingung nicht
+ eingehalten wird.
+
+ Die Eigenschaft wird mit einem Wert von 0,4\Unit{em} initialisiert.%
+ }%
+ \entry{\OptionVName{numwidth}{Länge}}{%
+ Für die Nummer eines Eintrags reservierte Breite (siehe
+ \autoref{fig:tocbasic.dottedtocline} bis
+ \autoref{fig:tocbasic.undottedtocline}). Dieser Wert wird bei den
+ Stilen \PValue{dottedtocline}, \PValue{tocline} und
+ \PValue{undottedtocline} ab der zweiten Zeile eines Eintrags zum linken
+ Einzug hinzugerechnet.
+
+ Beim Stil \PValue{tocline} wird für alle Eintragsebenen, deren Name mit
+ »\texttt{sub}« beginnt, eine Initialisierung mit dem Wert der
+ gleichnamigen Eintragsebene ohne diesen Präfix zuzüglich 0,9\Unit{em}
+ vorgenommen, falls eine solche Ebene mit entsprechender
+ Eigenschaften existiert. Bei den Stilen \PValue{dottedtocline},
+ \PValue{undottedtocline} und \PValue{tocline} findet für die
+ Eintragsebenen \PValue{part} bis \PValue{subparagraph} sowie
+ \PValue{figure} und \PValue{table} eine Initialisierung mit Werten
+ entsprechend der Standardklassen statt. Alle anderen Ebenen erhalten keine
+ Initialisierung. Für sie ist eine explizite Angabe daher bei der
+ ersten Verwendung zwingend.%
+ }%
+ \entry{\OptionVName{onstarthigherlevel}{Code}}{%
+ Der Stil \PValue{tocline} kann zu Beginn eines Eintrags eine Aktion in
+ Abhängigkeit davon ausführen, ob der zuletzt gesetzte Eintrag einen
+ höheren, denselben oder einen niedrigeren \PName{level}-Wert
+ hatte. Im Falle, dass der aktuelle Eintrag einen größeren
+ \PName{level}-Wert besitzt, in der Hierarchie der Einträge also tiefer
+ steht, wird der über diese Eigenschaft angegebene \PName{Code} ausgeführt.
+
+ Die Erkennung funktioniert übrigens nur, solange sich \Macro{lastpenalty}
+ seit dem letzten Eintrag nicht geändert hat.
+
+ Initialisiert wird die Eigenschaft mit
+ \DescRef{\LabelBase.cmd.LastTOCLevelWasLower} (siehe
+ \DescPageRef{\LabelBase.cmd.LastTOCLevelWasLower}).%
+ }%
+ \entry{\OptionVName{onstartlowerlevel}{Code}}{%
+ Der Stil \PValue{tocline} kann zu Beginn eines Eintrags eine Aktion in
+ Abhängigkeit davon ausführen, ob der zuletzt gesetzte Eintrag einen
+ höheren, denselben oder einen niedrigeren \PName{level}-Wert hatte. Im
+ Falle, dass der aktuelle Eintrag einen kleineren \PName{level}-Wert
+ besitzt, in der Hierarchie der Einträge also höher steht, wird der über
+ diese Eigenschaft angegebene \PName{Code} ausgeführt.
+
+ Die Erkennung funktioniert übrigens nur, solange sich \Macro{lastpenalty}
+ seit dem letzten Eintrag nicht geändert hat.
+
+ Initialisiert wird die Eigenschaft mit
+ \DescRef{\LabelBase.cmd.LastTOCLevelWasHigher} (siehe
+ \DescPageRef{\LabelBase.cmd.LastTOCLevelWasHigher}), was normalerweise
+ dazu führt, dass ein Umbruch vor dem Eintrag begünstigt wird.%
+ }%
+ \entry{\OptionVName{onstartsamelevel}{Code}}{%
+ Der Stil \PValue{tocline} kann zu Beginn eines Eintrags eine Aktion in
+ Abhängigkeit davon ausführen, ob der zuletzt gesetzte Eintrag einen
+ höheren, denselben oder einen niedrigeren \PName{level}-Wert hatte. Im
+ Falle, dass der aktuelle Eintrag denselben \PName{level}-Wert besitzt, in
+ der Hierarchie der Einträge also gleich gestellt ist, wird der über diese
+ Eigenschaft angegebene \PName{Code} ausgeführt.
+
+ Die Erkennung funktioniert übrigens nur, solange sich \Macro{lastpenalty}
+ seit dem letzten Eintrag nicht geändert hat.
+
+ Initialisiert wird die Eigenschaft mit
+ \DescRef{\LabelBase.cmd.LastTOCLevelWasSame} (siehe
+ \DescPageRef{\LabelBase.cmd.LastTOCLevelWasSame}), was normalerweise dazu
+ führt, dass ein Umbruch vor dem Eintrag begünstigt wird.%
+ }%
+ \entry{\OptionVName{pagenumberbox}{Befehl}}{%
+ Normalerweise wird die zu einem Eintrag gehörende Seitenzahl rechtsbündig
+ in eine Box der Breite \Macro{@pnumwidth} gesetzt. Beim Stil
+ \PValue{tocline} kann der Befehl, der dazu verwendet wird, über diese
+ Eigenschaft konfiguriert werden. Der dabei anzugebende \PName{Befehl} hat
+ genau ein Argument zu erwarten.
+
+ Initialisiert wird die Eigenschaft mit der bereits erwähnten Box.%
+ }%
+ \entry{\OptionVName{pagenumberformat}{Befehl}}{%
+ Über diese Eigenschaft kann die Formatierung der Seitenzahl des Eintrags
+ verändert werden. Der dabei als Wert angegebene \PName{Befehl} hat genau
+ ein Argument zu erwarten. Font-Änderungen über \Option{entryformat}
+ erfolgen ausgehend von \Option{entryformat}, gefolgt von
+ \Macro{normalfont}\Macro{normalsize}.
+
+ Initialisiert wird die Eigenschaft für die \PName{Eintragsebene}
+ \PValue{part} mit der Ausgabe des übergebenen Arguments in
+ \Macro{large}\Macro{bfseries}. Für alle anderen Ebenen erfolgt die Ausgabe
+ in \Macro{normalfont}\Macro{normalcolor}.%
+ }%
+ \entry{\OptionVName{raggedentrytext}{Schalter}}{%
+ \ChangedAt{v3.21}{\Package{tocbasic}}%
+ \PName{Schalter} ist einer der Werte für einfache Schalter aus
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}.
+ Ist der Schalter beim Stil \PValue{tocline} aktiviert, so wird der Text
+ des Eintrags nicht im Blocksatz, sondern im Flattersatz gesetzt. Dabei
+ werden nur noch Wörter getrennt, die länger als eine Zeile sind.
+
+ In der Voreinstellung ist dieser Schalter nicht gesetzt.%
+ }%
+ \entry{\OptionVName{raggedpagenumber}{Schalter}}{%
+ \PName{Schalter} ist einer der Werte für einfache Schalter aus
+ \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}.
+ Ist der Schalter beim Stil \PValue{tocline} aktiviert, so wird die
+ Seitenzahl nicht zwingend rechtsbündig gesetzt.
+
+ Je nach Wert der Eigenschaft \PValue{linefill} kann sich das
+ Setzen dieses Schalters nur im Erscheinen oder Verschwinden einer Warnung
+ oder auch konkret in der Formatierung der Einträge auswirken. Es ist also
+ wichtig, diese beiden Eigenschaften zueinander passend zu setzen.
+
+ In der Voreinstellung ist dieser Schalter nicht gesetzt und passt damit
+ zur Initialisierung von \PValue{linefill} sowohl mit \Macro{hfill} als
+ auch mit \DescRef{\LabelBase.cmd.TOCLineLeaderFill}.%
+ }%
+\end{desclist}
+
+Während \Macro{DeclareTOCStyleEntry} nur genau eine \PName{Eintragsebene}
+definiert, kann über
+\Macro{DeclareTOCStyeEntries}\ChangedAt{v3.26}{\Package{tocbasic}} auf einen
+Schlag eine ganze \PName{Liste von Eintragsebenen} definiert werden. Die durch
+Komma voneinander getrennt angegebenen Eintragsebenen der Liste werden dabei
+alle mit demselben \PName{Stil} und den über \PName{Optionenliste}
+angegebenen Einstellungen definiert.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{DeclareTOCEntryStyle}\Parameter{Stil}
+ \OParameter{Initialisierungscode}
+ \Parameter{Befehlscode}
+ \Macro{DefineTOCEntryOption}\Parameter{Option}
+ \OParameter{Säumniswert}
+ \Parameter{Code}
+ \Macro{DefineTOCEntryBooleanOption}\Parameter{Option}
+ \OParameter{Säumniswert}
+ \Parameter{Präfix}
+ \Parameter{Postfix}
+ \Parameter{Erklärung}
+ %\OParameter{Initialisierungscode}
+ \Macro{DefineTOCEntryCommandOption}\Parameter{Option}
+ \OParameter{Säumniswert}
+ \Parameter{Präfix}
+ \Parameter{Postfix}
+ \Parameter{Erklärung}
+ %\OParameter{Initialisierungscode}
+ \Macro{DefineTOCEntryIfOption}\Parameter{Option}
+ \OParameter{Säumniswert}
+ \Parameter{Präfix}%
+ \Parameter{Postfix}
+ \Parameter{Erklärung}
+ % \OParameter{Initialisierungscode}
+ \Macro{DefineTOCEntryLengthOption}\Parameter{Option}
+ \OParameter{Säumniswert}
+ \Parameter{Präfix}
+ \Parameter{Postfix}
+ \Parameter{Erklärung}
+ % \OParameter{Initialisierungscode}
+ \Macro{DefineTOCEntryNumberOption}\Parameter{Option}
+ \OParameter{Säumniswert}
+ \Parameter{Präfix}
+ \Parameter{Postfix}
+ \Parameter{Erklärung}
+ % \OParameter{Initialisierungscode}
+\end{Declaration}
+\Macro{DeclareTOCEntryStyle}\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} ist
+eine der komplexesten Anweisungen in \KOMAScript. Sie richtet sich daher
+ausdrücklich an \LaTeX-Entwickler und nicht an \LaTeX-Anwender. Mit ihrer
+Hilfe ist es möglich, einen neuen \PName{Stil} für Verzeichniseinträge zu
+definieren. Üblicherweise werden Verzeichniseinträge mit
+\Macro{addcontentsline}\IndexCmd{addcontentsline} oder bei Verwendung von
+\Package{tocbasic} vorzugsweise mit
+\DescRef{\LabelBase.cmd.addxcontentsline}\IndexCmd{addxcontentsline} (siehe
+\autoref{sec:tocbasic.basics}, \DescPageRef{\LabelBase.cmd.addxcontentsline})
+erzeugt. Dabei schreibt \LaTeX{} eine zugehörige Anweisung
+\Macro{contentsline}\IndexCmd{contentsline} in die jeweilige Hilfsdatei. Bei
+Einlesen dieser Hilfsdatei führt \LaTeX{} dann für jedes \Macro{contentsline}
+eine Anweisung \Macro{l@\PName{Eintragsebene}} aus.
+
+Wird später einer \PName{Eintragsebene} über
+\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry} ein \PName{Stil} zugewiesen, so
+wird zunächst \PName{Initialisierungscode} ausgeführt falls angegeben und dann
+\PName{Befehlscode} für die Definition von \Macro{l@\PName{Eintragsebene}}
+verwendet. \PName{Befehlscode} ist also letztlich der Code, der bei
+\Macro{l@\PName{Eintragsebene}} ausgeführt wird. Dabei ist \texttt{\#1} der
+Name der Eintragsebene, während \texttt{\#\#1} und \texttt{\#\#2} Platzhalter
+für die beiden Argumente von \Macro{l@\PName{Eintragsebene}} sind.
+
+Der \PName{Initialisierungscode} dient einerseits dazu, die Einstellungen
+eines Stils zu initialisieren. Entwickler\textnote{Empfehlung!} sollten darauf
+achten, dass wirklich alle Einstellungen hier bereits einen Wert erhalten. Nur
+dann funktioniert \DescRef{\LabelBase.cmd.DeclareTOCStyleEntry} auch ohne
+Angabe einer \PName{Optionenliste} fehlerfrei. Darüber hinaus hat der
+\PName{Initialisierungscode} auch alle Optionen, die der jeweilige Stil
+versteht, zu definieren. Zwingend vordefiniert wird lediglich
+\Option{level}. Der eingestellte Wert für \Option{level} kann in
+\PName{Befehlscode} mit \Macro{@nameuse}\PParameter{\#1tocdepth}%
+\important{\Macro{\PName{Eintragsebene}tocdepth}} abgefragt werden, um ihn
+beispielsweise mit dem Wert des Zählers
+\DescRef{\LabelBase.counter.tocdepth}\IndexCounter{tocdepth} zu vergleichen.
+
+Zur Definition neuer Optionen für die Eigenschaften einer
+Eintragsebene existieren nur innerhalb von \PName{Initialisierungscode} die
+Anweisungen \iffree{\Macro{DefineTOCEntryBooleanOption},
+\Macro{DefineTOCEntryCommandOption}, \Macro{DefineTOCEntryIfOption},
+\Macro{DefineTOCEntryLengthOption} und
+\Macro{DefineTOCEntryNumberOption}}{\Macro{DefineTOCEntry\dots Option}}.
+Diese Anweisungen definieren jeweils eine \PName{Option}, die bei ihrem
+Aufruf eine Anweisung
+\Macro{\PName{Präfix}\PName{Eintragsebene}\PName{Postfix}} mit dem übergebenen
+Wert oder bei Fehlen einer Wertzuweisung mit dem \PName{Säumniswert}
+definieren. Eine Besonderheit stellt \Macro{DefineTOCEntryIfOption} dar. Diese
+definiert \Macro{\PName{Präfix}\PName{Eintragsebene}\PName{Postfix}} immer als
+Anweisung mit zwei Argumenten. Ist der an die Option übergebene Wert einer der
+Aktivierungswerte aus \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch}, so expandiert die Anweisung zum ersten
+Argument. Ist der an die Option übergebene Wert hingegen ein
+Deaktivierungswert, so expandiert die Anweisung zum zweiten Argument.
+
+Die \PName{Erklärung} sollte ein möglichst kurzer Text sein, der den Sinn der
+Option mit wenigen Schlagworten beschreibt. Er wird von \Package{tocbasic} bei
+Fehlermeldungen, Warnungen und Informationen auf dem Terminal und in der
+\File{log}-Datei ausgegeben.
+
+Der einfachste Stil von \Package{tocbasic}, \PValue{gobble}, wurde mit
+\begin{lstcode}
+ \DeclareTOCEntryStyle{gobble}{}%
+\end{lstcode}
+definiert. Würde man nun mit
+\begin{lstcode}
+ \DeclareTOCStyleEntry[level=1]{gobble}{dummy}
+\end{lstcode}
+eine Eintragsebene \PValue{dummy} in diesem Stil definieren, so würde das
+unter anderem
+\begin{lstcode}
+ \def\dummytocdepth{1}
+ \def\l@dummy#1#2{}
+\end{lstcode}
+entsprechen.
+
+Innerhalb von Stil \PValue{tocline} wird beispielsweise
+\begin{lstcode}
+ \DefineTOCEntryCommandOption{linefill}%
+ [\TOCLineLeaderFill]{scr@tso@}{@linefill}%
+ {filling between text and page number}%
+\end{lstcode}
+verwendet, um Option \Option{linefill} zu definieren. Durch die Angabe von
+\DescRef{\LabelBase.cmd.TOCLineLeaderFill} als \PName{Säumniswert} würde ein
+Aufruf wie
+\begin{lstcode}
+ \DeclareTOCStyleEntry[linefill]{tocline}{part}
+\end{lstcode}
+unter anderem die Definition
+\begin{lstcode}
+ \def\scr@tso@part@linefill{\TOCLineLeaderFill}
+\end{lstcode}
+vornehmen.
+
+Wer\textnote{Tipp!} sich selbst einen Stil definieren möchte, dem sei
+empfohlen, zunächst die Definition des Stils \PValue{dottedtocline} zu
+studieren. Nachdem dessen Definition verstanden wurde, gibt dann die deutlich
+komplexere Definition von Stil \PValue{tocline} viele Hinweise darauf, wie die
+Anweisungen sinnvoll zu verwenden sind.
+
+In\textnote{Tipp!} vielen Fällen wird es jedoch auch ausreichen, einen der
+vorhandenen Stile mit \DescRef{\LabelBase.cmd.CloneTOCEntryStyle} zu klonen
+und dann dessen Initialisierungscode mit Anweisung
+\DescRef{\LabelBase.cmd.TOCEntryStyleInitCode} oder
+\DescRef{\LabelBase.cmd.TOCEntryStyleStartInitCode} abzuändern.
+
+\Macro{DefineTOCEntryOption} dient eher der Definition der übrigen
+Anweisungen und sollte in der Regel nicht direkt verwendet
+werden. Normalerweise besteht dafür auch keine Notwendigkeit. Sie sei hier
+nur der Vollständigkeit halber erwähnt.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{CloneTOCEntryStyle}\Parameter{Stil}\Parameter{neuer Stil}%
+\end{Declaration}
+Mit\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} dieser Anweisung kann ein
+existierender \PName{Stil} geklont werden. Dabei wird ein \PName{neuer Stil}
+mit denselben Eigenschaften und Voreinstellungen wie der existierende
+\PName{Stil} deklariert. Das Paket selbst verwendet
+\Macro{CloneTOCEntryStyle}, um den Stil \PValue{default} als Klon von
+\PValue{dottedtocline} zu deklarieren. Die \KOMAScript-Klassen verwenden die
+Anweisung um die Stile \PValue{part}, \PValue{section} und \PValue{chapter}
+oder \PValue{subsection} als Klon von \PValue{tocline} zu deklarieren und dann
+mit \DescRef{\LabelBase.cmd.TOCEntryStyleInitCode} und
+\DescRef{\LabelBase.cmd.TOCEntryStyleStartInitCode} abzuändern. Der Stil
+\PValue{default} wird von \Class{scrbook} und \Class{scrreprt} neu als Klon
+von \PValue{section} und von \Class{scrartcl} als Klon von \PValue{subsection}
+deklariert.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{TOCEntryStyleInitCode}\Parameter{Stil}%
+ \Parameter{Initialisierungscode}
+ \Macro{TOCEntryStyleStartInitCode}\Parameter{Stil}%
+ \Parameter{Initialisierungscode}
+\end{Declaration}
+Jeder\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} Verzeichniseintragsstil
+verfügt über einen Initialisierungscode. Dieser wird immer dann aufgerufen,
+wenn einer Verzeichnisebene der entsprechende \PName{Stil} mit
+\DescRef{\LabelBase.cmd.DeclareTOCEntryStyle}\IndexCmd{DeclareTOCEntryStyle}
+zugewiesen wird. Dieser\textnote{Achtung!} \PName{Initialisierungscode} sollte
+keine globalen Seiteneffekte aufweisen, da er auch für lokale
+Initialisierungen innerhalb anderer Anweisungen wie
+\DescRef{\LabelBase.cmd.DeclareNewTOC}\IndexCmd{DeclareNewTOC} verwendet
+wird. Der \PName{Initialisierungscode} dient einerseits dazu, Eigenschaften
+für den jeweiligen \PName{Stil} zu definieren. Er setzt aber auch die
+Standardeinstellungen für diese Eigenschaften.
+
+Mit Hilfe der Anweisungen \Macro{TOCEntryStyleStartInitCode} und
+\Macro{TOCEntryStyleInitCode} kann der für einen \PName{Stil} bereits
+definierte Initialisierungscode um weiteren \PName{Initialisierungscode}
+erweitert werden. Dabei fügt \Macro{TOCEntryStyleStartInitCode} den neuen
+\PName{Intialisierungscode} vorn an, während \Macro{TOCEntryStyleInitCode} den
+\PName{Initialisierungscode} hinten an den vorhandenen Code anfügt. Dies wird
+beispielsweise von den \KOMAScript-Klassen verwendet, um für den von
+\PValue{tocline} geklonten Stil \PValue{part} Füllung, Schrift und vertikalen
+Abstand passend zu initialisieren. Die Klassen \Class{scrbook} und
+\Class{scrreprt} verwenden beispielsweise
+\begin{lstcode}
+ \CloneTOCEntryStyle{tocline}{section}
+ \TOCEntryStyleStartInitCode{section}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@linefill\endcsname
+ {\TOCLineLeaderFill\relax}%
+ }
+\end{lstcode}
+um den Stil \PValue{section} als abgewandelten Klon von \PValue{tocline} zu
+definieren.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{LastTOCLevelWasHigher}
+ \Macro{LastTOCLevelWasSame}
+ \Macro{LastTOCLevelWasLower}
+\end{Declaration}
+Bei\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} Einträgen im Stil
+\PValue{tocline} wird am Anfang abhängig vom Wert von
+\Macro{lastpenalty}\IndexCmd{lastpenalty} eine dieser drei Anweisungen
+ausgeführt. Dabei fügen \Macro{LastTOCLevelWasHigher} und
+\Macro{LastTOCLevelWasSame} im vertikalen Modus
+\Macro{addpenalty}\PParameter{\Macro{@lowpenalty}} ein und ermöglichen so
+einen Umbruch vor Einträgen gleicher oder übergeordneter
+Ebene. \Macro{LastTOCLevelWasLower} ist hingegen bisher leer definiert, so
+dass zwischen einem Eintrag und seinem ersten Untereintrag normalerweise ein
+Umbruch untersagt ist.
+
+Anwender sollten diese Anweisungen nicht umdefinieren. Stattdessen können und
+sollten Änderungen bei Zuweisung des Stils an eine Eintragsebene gezielt über
+die Eigenschaften \PValue{onstartlowerlevel}, \PValue{onstartsamelevel} und
+\PValue{onstarthigherlevel} vorgenommen werden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{TOCLineLeaderFill}\OParameter{Füllzeichen}
+\end{Declaration}
+Die\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} Anweisung ist dazu gedacht
+als Wert für die Eigenschaft \Option{linefill} des Verzeichniseintragsstils
+\PName{tocline} verwendet zu werden. Sie erzeugt dann eine Verbindung zwischen
+dem Ende des Textes eines Eintrags und der zugehörigen Seitenzahl. Das
+\PName{Füllzeichen}, das dazu in regelmäßigem Abstand wiederholt wird, kann
+als optionales Argument angegeben werden. Voreinstellung ist ein
+Punkt.\textnote{Voreinstellung}
+
+Wie der Name schon vermuten lässt, werden die Füllzeichen mit Hilfe von
+\Macro{leaders} gesetzt. Als Abstand wird wie bei der \LaTeX-Kern-Anweisung
+\Macro{@dottedtocline} vor und nach dem Füllzeichen
+\Macro{mkern}\Macro{@dotsep}\Unit{\texttt{mu}} verwendet.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\section{Interne Anweisungen für Klassen- und Paketautoren}
+\seclabel{internals}
+
+Das Paket \Package{tocbasic} bietet einige interne Anweisungen, deren
+Benutzung durch Klassen- und Paketautoren freigegeben ist. Diese Anweisungen
+beginnen alle mit \Macro{tocbasic@}. Aber\textnote{Achtung!} auch Klassen- und
+Paketautoren sollten diese Anweisungen nur verwenden und nicht etwa
+umdefinieren! Ihre interne Funktion kann jederzeit geändert oder erweitert
+werden, so dass jede Umdefinierung der Anweisungen die Funktion von
+\Package{tocbasic} erheblich beschädigen könnte!
+
+
+\begin{Declaration}
+ \Macro{tocbasic@extend@babel}\Parameter{Dateierweiterung}
+\end{Declaration}
+Das Paket \Package{babel}\IndexPackage{babel} (siehe \cite{package:babel})
+bzw. ein \LaTeX-Kern, der um die Sprachverwaltung von \Package{babel}
+erweitert wurde, schreibt bei jeder Sprachumschaltung am Anfang oder innerhalb
+eines Dokuments in die Dateien mit den Dateierweiterungen \File{toc},
+\File{lof} und \File{lot} Anweisungen, um diese Sprachumschaltung in diesen
+Dateien mit zu führen. \Package{tocbasic} erweitert diesen Mechanismus so,
+dass mit Hilfe von \Macro{tocbasic@extend@babel} auch andere
+\PName{Dateierweiterungen} davon profitieren. Das Argument
+\PName{Dateierweiterung} sollte dabei vollständig expandiert sein!
+Anderenfalls besteht die Gefahr, dass etwa die Bedeutung eines Makros zum
+Zeitpunkt der tatsächlichen Auswertung bereits geändert wurde.
+
+In der Voreinstellung wird diese Anweisung normalerweise für alle
+\PName{Dateierweiterungen}, die mit \DescRef{\LabelBase.cmd.addtotoclist} zur
+Liste der bekannten Dateierweiterungen hinzugefügt werden, aufgerufen. Über
+die Eigenschaft \PValue{nobabel}\important{\PValue{nobabel}} (siehe
+\DescRef{\LabelBase.cmd.setuptoc}, \autoref{sec:tocbasic.toc},
+\DescPageRef{\LabelBase.cmd.setuptoc}) kann dies unterdrückt werden. Für die
+Dateinamenerweiterungen \File{toc}, \File{lof} und \File{lot} unterdrückt
+\Package{tocbasic} dies bereits selbst, %
+\iftrue% Umbruchvarianten
+da \Package{babel} sie von sich aus vornimmt.%
+\else%
+damit die Umschaltung nicht mehrfach in die zugehörigen Dateien
+eingetragen wird.%
+\fi
+
+Normalerweise gibt es keinen Grund, diese Anweisung selbst aufzurufen. Es sind
+allerdings Verzeichnisse denkbar, die nicht unter der Kontrolle von
+\Package{tocbasic} stehen, also nicht in der Liste der bekannten
+Dateierweiterungen geführt werden, aber trotzdem die Spracherweiterung für
+\Package{babel} nutzen sollen. Für derartige Verzeichnisse wäre die Anweisung
+explizit aufzurufen. Bitte\textnote{Achtung!} achten Sie jedoch darauf, dass
+dies für jede Dateierweiterung nur einmal geschieht!%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@starttoc}\Parameter{Dateierweiterung}
+\end{Declaration}
+Diese Anweisung ist der eigentliche Ersatz der Anweisung
+\Macro{@starttoc}\IndexCmd{@starttoc}\important{\Macro{@starttoc}} aus dem
+\LaTeX-Kern. Es ist die Anweisung, die sich hinter
+\DescRef{\LabelBase.cmd.listoftoc*} (siehe \autoref{sec:tocbasic.toc},
+\DescPageRef{\LabelBase.cmd.listoftoc*}) verbirgt. Klassen- oder Paketautoren,
+die Vorteile von \Package{tocbasic} nutzen wollen, sollten zumindest diese
+Anweisung, besser jedoch \DescRef{\LabelBase.cmd.listoftoc} verwenden. Die
+Anweisung baut selbst auf \Macro{@starttoc} auf, setzt allerdings zuvor
+\Length{parskip}\IndexLength{parskip}\important[i]{\Length{parskip},
+ \Length{parindent}, \Length{parfillskip}} und
+\Length{parindent}\IndexLength{parindent} auf 0 und
+\Length{parfillskip}\IndexLength{parfillskip} auf 0 bis unendlich. Außerdem
+wird \Macro{@currext}\important{\Macro{@currext}}\IndexCmd{@currext} auf die
+aktuelle Dateierweiterung gesetzt, damit diese in den nachfolgend ausgeführten
+Haken\Index{Haken} ausgewertet werden kann. Die Erklärungen der Haken finden
+Sie im Anschluss.
+
+Da\textnote{Achtung!} \LaTeX{} bei der Ausgabe eines Verzeichnisses auch
+gleich eine neue Verzeichnisdatei zum Schreiben öffnet, kann der Aufruf dieser
+Anweisung zu einer Fehlermeldung der Art
+\begin{lstoutput}
+ ! No room for a new \write .
+ \ch@ck ...\else \errmessage {No room for a new #3}
+ \fi
+\end{lstoutput}
+führen, wenn keine Schreibdateien mehr zur Verfügung stehen. Abhilfe kann in
+diesem Fall das Laden des in \autoref{cha:scrwfile} beschriebenen Pakets
+\Package{scrwfile}\important{\Package{scrwfile}}\IndexPackage{scrwfile}
+oder die Verwendung von Lua\LaTeX{} bieten.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@@before@hook}
+ \Macro{tocbasic@@after@hook}
+\end{Declaration}
+Der Haken\Index{Haken} \Macro{tocbasic@@before@hook} wird unmittelbar vor dem
+Einlesen der Verzeichnisdatei, noch vor den mit
+\DescRef{\LabelBase.cmd.BeforeStartingTOC} definierten Anweisungen
+ausgeführt. Es ist erlaubt, diesen Haken mit Hilfe von
+\Macro{g@addto@macro}\IndexCmd{g@addto@macro} zu erweitern.
+
+Ebenso wird \Macro{tocbasic@@after@hook} unmittelbar nach der
+Verzeichnisdatei, aber noch vor den mit
+\DescRef{\LabelBase.cmd.AfterStartingTOC} definierten Anweisungen
+ausgeführt. Es ist erlaubt, diesen Haken mit Hilfe von
+\Macro{g@addto@macro}\IndexCmd{g@addto@macro} zu erweitern.
+
+\KOMAScript{} nutzt diese Haken, um Verzeichnisse mit dynamischer Anpassung an
+die Breite der Gliederungsnummern zu ermöglichen. Ihre Verwendung ist Klassen
+und Paketen vorbehalten. Anwender\textnote{Achtung!} sollten sich auf
+\DescRef{\LabelBase.cmd.BeforeStartingTOC} und
+\DescRef{\LabelBase.cmd.AfterStartingTOC} beschränken. Paketautoren sollten
+ebenfalls vorzugsweise diese beiden Anwenderanweisungen verwenden! Ausgaben
+innerhalb der beiden Haken sind nicht gestattet!
+
+Wird keine\textnote{Achtung!} der Anweisungen
+\DescRef{\LabelBase.cmd.listofeachtoc}, \DescRef{\LabelBase.cmd.listoftoc} und
+\DescRef{\LabelBase.cmd.listoftoc*} für die Ausgabe der Verzeichnisse
+verwendet, sollten die Anweisungen für die Haken\Index{Haken} trotzdem
+aufgerufen werden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tb@\PName{Dateierweiterung}@before@hook}
+ \Macro{tb@\PName{Dateierweiterung}@after@hook}
+\end{Declaration}
+Diese Anweisungen werden direkt nach
+\DescRef{\LabelBase.cmd.tocbasic@@before@hook} bzw. vor
+\DescRef{\LabelBase.cmd.tocbasic@@after@hook} für das jeweilige Verzeichnis
+mit der entsprechenden \PName{Dateierweiterung}
+ausgeführt. Sie\textnote{Achtung!} dürfen keinesfalls von Klassen- und
+Paketautoren verändert werden. Werden für die Ausgabe der Verzeichnisse die
+Anweisungen \DescRef{\LabelBase.cmd.listoftoc},
+\DescRef{\LabelBase.cmd.listoftoc*} und \DescRef{\LabelBase.cmd.listofeachtoc}
+nicht verwendet, sollten die beiden Anweisungen für die Haken\Index{Haken}
+trotzdem aufgerufen werden, soweit sie definiert sind. Die Anweisungen können
+auch undefiniert sein. Für einen entsprechenden Test siehe
+\DescRef{scrbase.cmd.scr@ifundefinedorrelax}\IndexCmd{scr@ifundefinedorrelax}
+in \autoref{sec:scrbase.if},
+\DescPageRef{scrbase.cmd.scr@ifundefinedorrelax}.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@listhead}\Parameter{Titel}
+\end{Declaration}
+Diese Anweisung wird von \DescRef{\LabelBase.cmd.listoftoc} und
+\DescRef{\LabelBase.cmd.listofeachtoc} verwendet, um die Anweisung zum Setzen
+der Überschrift eines Verzeichnisses aufzurufen. Das kann entweder die
+vordefinierte Anweisung des Pakets \Package{tocbasic} oder eine individuelle
+Anweisung sein. Wenn Sie Ihre eigene Anweisung für die Überschrift definieren,
+können Sie ebenfalls \Macro{tocbasic@listhead} verwenden. In diesem Fall
+sollte vor dem Aufruf von \Macro{tocbasic@listhead} die Anweisung
+\Macro{@currext}\important{\Macro{@currext}}\IndexCmd{@currext} auf die
+Dateinamenerweiterung, die zu diesem Verzeichnis gehört, gesetzt werden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@listhead@\PName{Dateierweiterung}}\Parameter{Titel}
+\end{Declaration}
+Ist diese individuelle Anweisung für das Setzen einer Verzeichnisüberschrift
+definiert, so verwendet \DescRef{\LabelBase.cmd.tocbasic@listhead}
+sie. Anderenfalls definiert \DescRef{\LabelBase.cmd.tocbasic@listhead} diese
+vor der Verwendung.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@addxcontentsline}\Parameter{Dateierweiterung}
+ \Parameter{Ebene}
+ \Parameter{Gliederungsnummer}
+ \Parameter{Eintrag}
+ \Macro{nonumberline}
+\end{Declaration}
+Anweisung\ChangedAt{v3.12}{\Package{tocbasic}}
+\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\iffree{ oder
+ nicht}{}% Umbruchvarianten
+, 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 \DescRef{\LabelBase.cmd.numberline} mit \PName{Gliederungsnummer} als
+Argument verwendet.
+
+Die Anweisung \Macro{nonumberline} wird innerhalb
+\DescRef{\LabelBase.cmd.listoftoc} (siehe \autoref{sec:tocbasic.toc},
+\DescPageRef{\LabelBase.cmd.listoftoc}) entsprechend der Eigenschaft
+\PValue{numberline} (siehe \autoref{sec:tocbasic.toc},
+\DescPageRef{\LabelBase.cmd.setuptoc}) umdefiniert. Dadurch wirkt sich das
+Setzen oder Löschen dieser Eigenschaft \iffree{bereits beim nächsten
+ \LaTeX-Lauf}{unmittelbar} % Umbruchvarianten
+aus.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{tocbasic@DependOnPenaltyAndTOCLevel}\Parameter{Eintragsebene}
+ \Macro{tocbasic@SetPenaltyByTOCLevel}\Parameter{Eintragsebene}
+\end{Declaration}
+Der\ChangedAt[2016/03]{v3.20}{\Package{tocbasic}} Verzeichniseintragsstil
+\PValue{tocline} (siehe \autoref{sec:tocbasic.tocstyle}) setzt am Ende jedes
+Eintrags über \Macro{tocbasic@SetPenaltyByTOCLevel} \Macro{penalty} so, dass
+nach einem Eintrag kein Seitenumbruch erfolgen darf. Der genaue Wert wird
+dabei abhängig von der \PName{Eintragsebene} gewählt.
+
+% \begin{sloppypar}
+\begingroup
+\emergencystretch=2em
+Über \Macro{tocbasic@DependOnPenaltyAndTOCLevel} wird am Anfang eines
+Eintrags, abhängig von \Macro{lastpenalty} und der \PName{Eintragsebene} die
+über die Eigenschaft \Option{onstartlowerlevel} im internen Makro
+\Macro{scr@tso@\PName{Eintragsebene}@LastTOCLevelWasHigher}, über die
+\iffree{Eigenschaft}{Ei\-genschaft}
+\Option{onstartsamelevel} im zugehörigen, internen
+Makro\iffree{
+}{\linebreak}\Macro{scr@tso@\PName{Eintragsebene}@LastTOCLevelWasSame} oder
+über die Eigenschaft \Option{onstarthigherlevel} im zugehörigen, internen
+Makro \Macro{scr@tso@\PName{Eintragsebene}@LastTOCLevelWasLower} gespeicherte
+Aktion ausgeführt. In der Voreinstellung\textnote{Voreinstellung} erlauben die
+ersten beiden einen Umbruch, wenn sie im vertikalen Modus ausgeführt
+werden.\par
+\endgroup
+%\end{sloppypar}
+
+Entwicklern, die eigene Stile kompatibel mit \PValue{tocline} erstellen
+wollen, sei empfohlen, dieses Verhalten zu kopieren. Zu diesem Zweck dürfen
+sie auf diese eigentlich internen Makros zurückgreifen.%
+\EndIndexGroup
+
+
+\section{Ein komplettes Beispiel}
+\seclabel{example}
+
+In diesem Abschnitt finden Sie ein komplettes Beispiel, wie eine eigene
+Gleitumgebung einschließlich Verzeichnis und \KOMAScript-Integration mit Hilfe
+von \Package{tocbasic} definiert werden kann. In diesem Beispiel werden
+interne Anweisungen, also solche mit »\texttt{@}« im Namen
+verwendet. Das\textnote{Achtung!} bedeutet, dass die Anweisungen entweder in
+einem eigenen Paket, einer Klasse oder zwischen
+\Macro{makeatletter}\important[i]{\Macro{makeatletter}\\\Macro{makeatother}}%
+\IndexCmd{makeatletter} und \Macro{makeatother}\IndexCmd{makeatother}
+verwendet werden müssen.
+
+Als\textnote{Umgebung} erstes wird eine Umgebung benötigt, die diese neue
+Gleitumgebung bereitstellt. Das geht ganz einfach mit:
+\begin{lstcode}
+ \newenvironment{remarkbox}%
+ {\@float{remarkbox}}%
+ {\end@float}
+\end{lstcode}
+Die neue Umgebung heißt also \Environment{remarkbox}.
+
+Jede\textnote{Platzierung} Gleitumgebung hat eine Standardplatzierung. Diese
+setzt sich aus einer oder mehreren der bekannten Platzierungsoptionen
+\PValue{b}, \PValue{h}, \PValue{p} und \PValue{t} zusammen:
+\begin{lstcode}
+ \newcommand*{\fps@remarkbox}{tbp}
+\end{lstcode}
+Die neue Gleitumgebung soll also in der Voreinstellung nur oben, unten oder
+auf einer eigenen Seite platziert werden dürfen.
+
+Gleitumgebungen\textnote{Gleittyp} haben außerdem einen nummerischen Gleittyp
+zwischen 1 und 31. Umgebungen, bei denen das gleiche Bit
+im Gleittyp gesetzt ist, dürfen sich nicht gegenseitig überholen. Abbildungen
+und Tabellen haben normalerweise den Typ~1 und 2. Abbildungen dürfen also
+Tabellen überholen und umgekehrt.
+\begin{lstcode}
+ \newcommand*{\ftype@remarkbox}{4}
+\end{lstcode}
+Die neue Umgebung hat den Typ~4, darf also Tabellen und Abbildungen überholen
+und von diesen überholt werden.
+
+Gleitumgebungen\textnote{Nummer} haben außerdem eine Nummer.
+\begin{lstcode}
+ \newcounter{remarkbox}
+ \newcommand*{\remarkboxformat}{%
+ Merksatz~\theremarkbox\csname autodot\endcsname
+ }
+ \newcommand*{\fnum@remarkbox}{\remarkboxformat}
+\end{lstcode}
+Hier wird zunächst ein neuer Zähler definiert, der unabhängig von Kapiteln
+oder sonstigen Gliederungszählern ist. Dabei definiert \LaTeX{} auch gleich
+\Macro{theremarkbox} mit der Standardausgabe als arabische Zahl. Diese wird
+dann in der Definition der formatierten Ausgabe verwendet. Die formatierte
+Ausgabe wird wiederum als Gleitumgebungsnummer für die Verwendung in
+\DescRef{maincls.cmd.caption} definiert.
+
+Gleitumgebungen\textnote{Dateierweiterung} haben Verzeichnisse und diese haben
+eine Datei mit dem Namen \Macro{jobname} und einer Dateierweiterung.
+\begin{lstcode}
+ \newcommand*{\ext@remarkbox}{lor}
+\end{lstcode}
+Als Dateierweiterung verwenden wir also »\File{lor}«.
+
+Die\important{\Package{tocbasic}} Umgebung selbst steht damit. Es fehlt
+allerdings das Verzeichnis. Damit wir dabei möglichst wenig selbst machen
+müssen, verwenden wir das Paket \Package{tocbasic}. Dieses wird in Dokumenten
+mit
+\begin{lstcode}
+ \usepackage{tocbasic}
+\end{lstcode}
+geladen. Ein Klassen- oder Paketautor würde hingegen
+\begin{lstcode}
+ \RequirePackage{tocbasic}
+\end{lstcode}
+verwenden.
+
+Nun\textnote{Dateierweiterung} machen wir die neue Dateierweiterung dem Paket
+\Package{tocbasic} bekannt.
+\begin{lstcode}
+ \addtotoclist[float]{lor}
+\end{lstcode}
+Dabei verwenden wir als Besitzer \PValue{float}, damit sich alle
+anschließend aufgerufenen Optionen von \KOMAScript, die sich auf Verzeichnisse
+von Gleitumgebungen beziehen, auch auf das neue Verzeichnis beziehen.
+
+Jetzt\textnote{Verzeichnistitel} definieren wir noch einen Titel für dieses
+Verzeichnis:
+\begin{lstcode}
+ \newcommand*{\listoflorname}{Verzeichnis der Merksätze}
+\end{lstcode}
+Normalerweise würde man in einem Paket übrigens zunächst einen englischen
+Titel definieren und dann beispielsweise mit Hilfe des Pakets
+\Package{scrbase} Titel für alle weiteren Sprachen, die man unterstützen
+will. Siehe dazu \autoref{sec:scrbase.languageSupport}, ab
+\autopageref{sec:scrbase.languageSupport}.
+
+Jetzt\textnote{Verzeichniseintrag}\index{Verzeichnis>Eintrag} müssen wir nur
+noch definieren, wie ein einzelner Eintrag in dem Verzeichnis aussehen soll:
+\begin{lstcode}
+ \newcommand*{\l@remarkbox}{\l@figure}
+\end{lstcode}
+Weil das die einfachste Lösung ist, wurde hier festgelegt, dass Einträge in
+das Verzeichnis der Merksätze genau wie Einträge in das Abbildungsverzeichnis
+aussehen sollen. Man hätte auch eine explizite Festlegung wie
+\begin{lstcode}
+ \DeclareTOCStyleEntry[level=1,indent=1em,numwidth=1.5em]%
+ {tocline}{remarkbox}
+\end{lstcode}
+verwenden können.
+
+Außerdem\textnote{Kapiteleintrag} wollen Sie, dass sich Kapiteleinträge auf das
+Verzeichnis auswirken.
+\begin{lstcode}
+ \setuptoc{lor}{chapteratlist}
+\end{lstcode}
+Das Setzen dieser Eigenschaft ermöglicht dies bei Verwendung einer
+\KOMAScript-Klasse und jeder anderen Klasse, die diese Eigenschaft
+unterstützt. Leider gehören die Standardklassen nicht dazu.
+
+Das\textnote{Verzeichnis} genügt schon. Der Anwender kann nun bereits
+wahlweise mit Hilfe der Optionen einer \KOMAScript-Klasse oder
+\DescRef{\LabelBase.cmd.setuptoc} verschiedene Formen der Überschrift (ohne
+Inhaltsverzeichniseintrag, mit Inhaltsverzeichniseintrag, mit Nummerierung)
+wählen und das Verzeichnis mit
+\DescRef{\LabelBase.cmd.listoftoc}\PParameter{lor} ausgeben. Mit einem
+schlichten
+\begin{lstcode}
+ \newcommand*{\listofremarkboxes}{\listoftoc{lor}}
+\end{lstcode}
+kann man die Anwendung noch etwas vereinfachen.
+
+Wie Sie gesehen haben, beziehen sich gerade einmal fünf einzeilige
+Anweisungen, von denen nur drei bis vier wirklich notwendig sind, auf das
+Verzeichnis selbst. Trotzdem bietet dieses Verzeichnis bereits die
+Möglichkeit, es zu nummerieren oder auch nicht nummeriert in das
+Inhaltsverzeichnis aufzunehmen. Es kann sogar per Eigenschaft bereits eine
+tiefere Gliederungsebene gewählt werden. Kolumnentitel werden für \KOMAScript,
+die Standardklassen und alle Klassen, die \Package{tocbasic} explizit
+unterstützen, angepasst gesetzt. Unterstützende Klassen beachten das neue
+Verzeichnis sogar beim Wechsel zu einem neuen Kapitel. Sprachumschaltungen
+durch \Package{babel} werden in dem Verzeichnis ebenfalls berücksichtigt.
+
+Natürlich\textnote{Verzeichniseigenschaften} kann ein Paketautor weiteres
+hinzufügen. So könnte er explizit Optionen anbieten, um die Verwendung von
+\DescRef{\LabelBase.cmd.setuptoc} vor dem Anwender zu verbergen. Andererseits
+kann er auch auf diese Anleitung zu \Package{tocbasic} verweisen, wenn es
+darum geht, die entsprechenden Möglichkeiten zu erklären. Vorteil ist dann,
+dass der Anwender automatisch von etwaigen zukünftigen Erweiterungen von
+\Package{tocbasic} profitiert. Soll der Anwender aber nicht mit der Tatsache
+belastet werden, dass für die Merksätze die Dateierweiterung \File{lor}
+verwendet wird, so genügt
+\begin{lstcode}
+ \newcommand*{\setupremarkboxes}{\setuptoc{lor}}
+\end{lstcode}
+\iffalse%
+um eine als Argument an \Macro{setupremarkboxes} übergebene Liste von
+Eigenschaften direkt als Liste von %
+\else%
+um über \Macro{setupremarkboxes}
+\fi
+Eigenschaften für \File{lor} zu setzen.
+
+
+\section{Alles mit einer Anweisung}
+\seclabel{declarenewtoc}
+
+Das Beispiel aus dem vorherigen Abschnitt hat gezeigt, dass es mit mit
+\Package{tocbasic} recht einfach ist, eigene Gleitumgebungen mit eigenen
+Verzeichnissen zu definieren. In diesem Abschnitt wird gezeigt, dass es sogar
+noch einfacher gehen kann.
+
+\begin{Declaration}
+ \Macro{DeclareNewTOC}\OParameter{Optionenliste}
+ \Parameter{Dateierweiterung}
+\end{Declaration}%
+Mit\ChangedAt{v3.06}{\Package{tocbasic}} dieser Anweisung wird in einem
+einzigen Schritt ein neues Verzeichnis, dessen Überschrift und die Bezeichnung
+für die Einträge unter Kontrolle von \Package{tocbasic} definiert. Optional
+können dabei gleichzeitig gleitende oder nicht gleitende Umgebungen definiert
+werden, innerhalb derer \DescRef{maincls.cmd.caption}%
+\important{\DescRef{maincls.cmd.caption}}\IndexCmd{caption} Einträge für
+dieses neue Verzeichnis erzeugt. Auch die Erweiterungen
+\DescRef{maincls.cmd.captionabove}\important[i]{%
+ \DescRef{maincls.cmd.captionabove}\\
+ \DescRef{maincls.cmd.captionbelow}}, \DescRef{maincls.cmd.captionbelow} und
+\DescRef{maincls.env.captionbeside} aus den \KOMAScript-Klassen (siehe
+\autoref{sec:maincls.floats}, ab \DescPageRef{maincls.cmd.captionabove})
+können dann verwendet werden.
+
+\PName{Dateierweiterung} definiert dabei die Dateiendung der Hilfsdatei, die
+das Verzeichnis repräsentiert, wie dies in \autoref{sec:tocbasic.basics}, ab
+\autopageref{sec:tocbasic.basics} bereits erläutert
+wurde. Dieser\textnote{Achtung!} Parameter muss angegeben werden und darf
+nicht leer sein!
+
+\PName{Optionenliste} ist eine durch Komma getrennte Liste, wie dies auch von
+\DescRef{maincls.cmd.KOMAoptions} (siehe \autoref{sec:typearea.options},
+\DescPageRef{typearea.cmd.KOMAoptions}) bekannt ist. Diese
+Optionen\textnote{Achtung!} können jedoch \emph{nicht} mit
+\DescRef{maincls.cmd.KOMAoptions}\IndexCmd{KOMAoptions} gesetzt werden! Eine
+Übersicht über die möglichen Optionen bietet
+\autoref{tab:tocbasic.DeclareNewTOC-options}\iffalse ab
+\autopageref{tab:tocbasic.DeclareNewTOC-options}\fi.
+
+Wird\ChangedAt[2015/12]{v3.20}{\Package{tocbasic}} Option
+\Option{tocentrystyle} nicht gesetzt, so wird bei Bedarf der Stil
+\PValue{default} verwendet. Näheres zu diesem Stil ist
+\autoref{sec:tocbasic.tocstyle} zu entnehmen. Soll kein Befehl für
+Verzeichniseinträge definiert werden, so kann ein leeres Argument, also
+wahlweise \OptionValue{tocentrystyle}{}\iffree{}{\unskip} oder
+\OptionValue{tocentrystyle}{\PParameter{}} verwendet werden.
+
+Abhängig\ChangedAt[2016/06]{v3.21}{\Package{tocbasic}} vom Stil der
+Verzeichniseinträge können auch alle für diesen Stil gültigen Eigenschaften
+gesetzt werden, indem die entsprechenden in
+\autoref{tab:tocbasic.tocstyle.attributes} ab
+\autopageref{tab:tocbasic.tocstyle.attributes} aufgeführten Namen, mit dem
+Präfix \PValue{tocentry} versehen, in der \PName{Optionenliste} angegeben
+werden. Nachträgliche Änderungen am Stil sind mit
+\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}%
+\IndexCmd{DeclareTOCStyleEntry}%
+\important{\DescRef{\LabelBase.cmd.DeclareTOCStyleEntry}} jederzeit
+möglich. Siehe dazu \autoref{sec:tocbasic.tocstyle},
+\DescPageRef{\LabelBase.cmd.DeclareTOCStyleEntry}.
+
+% Umbruchoptimierung: Tabelle verschoben.
+\begin{desclist}
+ \renewcommand*{\abovecaptionskipcorrection}{-\normalbaselineskip}%
+ \desccaption[{%
+ Optionen für die Anweisung \Macro{DeclareNewTOC}%
+ }]{%
+ Optionen für die Anweisung
+ \Macro{DeclareNewTOC}\ChangedAt{v3.06}{\Package{tocbasic}}%
+ \label{tab:tocbasic.DeclareNewTOC-options}%
+ }{%
+ Optionen für die Anweisung \Macro{DeclareNewTOC} (\emph{Fortsetzung})%
+ }%
+ \entry{\OptionVName{atbegin}{Code}\ChangedAt{v3.09}{\Package{tocbasic}}}{%
+ Falls eine neue Gleitumgebung oder nicht gleitende Umgebung definiert
+ wird, so wird \PName{Code} jeweils am Anfang dieser Umgebung ausgeführt.%
+ }%
+ \entry{\OptionVName{atend}{Code}\ChangedAt{v3.09}{\Package{tocbasic}}}{%
+ Falls eine neue Gleitumgebung oder nicht gleitende Umgebung definiert
+ wird, so wird \PName{Code} jeweils am Ende dieser Umgebung ausgeführt.%
+ }%
+ \entry{\OptionVName{counterwithin}{\LaTeX-Zähler}}{%
+ Falls eine neue Gleitumgebung oder eine nicht gleitende Umgebung definiert
+ wird, so wird für diese auch ein neuer Zähler
+ \Counter{\PName{Eintragstyp}} (siehe Option \Option{type})
+ angelegt. Dieser Zähler kann in gleicher Weise wie beispielsweise der
+ Zähler \Counter{figure} bei \Class{book}-Klassen von Zähler
+ \Counter{chapter} abhängt, von einem \LaTeX-Zähler ahängig gemacht
+ werden.}%
+ \entry{\Option{float}}{%
+ Es wird nicht nur ein neuer Verzeichnistyp definiert, sondern auch
+ Gleitumgebungen \Environment{\PName{Eintragstyp}} (siehe Option
+ \Option{type}) und \Environment{\PName{Eintragstyp}*}
+ (vgl. \Environment{figure} und \Environment{figure*}).}%
+ \entry{\OptionVName{floatpos}{Gleitverhalten}}{%
+ Jede Gleitumgebung hat ein voreingestelltes \PName{Gleitverhalten}, das
+ über das optionale Argument der Gleitumgebung geändert werden kann. Mit
+ dieser Option wird das \PName{Gleitverhalten} für die optional erstellbare
+ Gleitumgebung (siehe Option \Option{float}) festgelegt. Die Syntax und
+ Semantik ist dabei mit der des optionalen Arguments für die Gleitumgebung
+ identisch. Wird die Option nicht verwendet, so ist das voreingestellte
+ Gleitverhalten \texttt{tbp}, also \emph{top}, \emph{bottom},
+ \emph{page}.}%
+ \entry{\OptionVName{floattype}{Gleittyp}}{%
+ Jede Gleitumgebung hat einen nummerischen Typ. Gleitumgebungen, bei denen
+ in diesem \PName{Gleittyp} nur unterschiedliche Bits gesetzt sind, können
+ sich gegenseitig überholen. Die Gleitumgebungen \Environment{figure} und
+ \Environment{table} haben normalerweise die Typen 1 und 2, können sich
+ also gegenseitig überholen. Es sind Typen von 1 bis 31 (alle Bits gesetzt,
+ kann also keinen anderen Typ überholen und von keinem anderen Typen
+ überholt werden) zulässig. Wird kein Typ angegeben, so wird mit 16 der
+ höchst mögliche Ein-Bit-Typ verwendet.}%
+ \entry{\Option{forcenames}}{%
+ Siehe Option \Option{name} und \Option{listname}.}%
+ \entry{\OptionVName{hang}{Einzug}}{%
+ \ChangedAt[2015/12]{v3.20}{\Package{tocbasic}}%
+ \ChangedAt[2015/12]{v3.21}{\Package{tocbasic}}%
+ Diese Option gilt seit \KOMAScript~3.20 als überholt. Die Breite der
+ Nummer des Verzeichniseintrags\index{Verzeichnis>Eintrag} ist nun
+ stattdessen als Eigenschaft in Abhängigkeit des Verzeichniseintragsstils
+ von Option \Option{tocentrystyle} anzugeben. Bei den Stilen von
+ \KOMAScript{} wäre das beispielsweise die Eigenschaft \PValue{numwidth}
+ und damit Option \Option{tocentrynumwidth}. Besitzt ein Stil diese
+ Eigenschaft, so wird sie von \Macro{DeclareNewTOC} mit 1,5\Unit{em}
+ voreingestellt. Diese Voreinstellung kann durch explizite Angabe von
+ \OptionVName{tocentrynumwidth}{Wert} leicht mit einem anderen
+ \PName{Wert} überschrieben werden. Für Abbildungen verwenden die
+ \KOMAScript-Klassen beispielsweise den \PName{Wert} \PValue{2.3em}.}%
+ \entry{\OptionVName{indent}{Einzug}}{%
+ \ChangedAt[2015/12]{v3.20}{\Package{tocbasic}}%
+ \ChangedAt[2015/12]{v3.21}{\Package{tocbasic}}%
+ Diese Option gilt seit \KOMAScript~3.20 als überholt. Der Einzug des
+ Verzeichniseintrags\index{Verzeichnis>Eintrag} von links ist nun
+ stattdessen als Eigenschaft in Abhängigkeit des Verzeichniseintragsstils
+ von Option \Option{tocentrystyle} anzugeben. Bei den Stilen von
+ \KOMAScript{} wäre das beispielsweise die Eigenschaft \PValue{indent} und
+ damit Option \Option{tocentryindent}. Besitzt ein Stil diese Eigenschaft,
+ so wird sie von \Macro{DeclareNewTOC} mit 1\Unit{em} voreingestellt. Diese
+ Voreinstellung kann durch explizite Angabe von
+ \OptionVName{tocentryindent}{Wert} leicht mit einem anderen \PName{Wert}
+ überschrieben werden. Für Abbildungen verwenden die \KOMAScript-Klassen
+ beispielsweise den \PName{Wert} \PValue{1.5em}.}%
+ \entry{\OptionVName{level}{Gliederungsebene}}{%
+ \ChangedAt[2015/12]{v3.20}{\Package{tocbasic}}%
+ \ChangedAt[2015/12]{v3.21}{\Package{tocbasic}}%
+ Diese Option gilt seit \KOMAScript~3.20 als überholt. Der nummerische Wert
+ der Ebene des Verzeichniseintrags\index{Verzeichnis>Eintrag} ist nun
+ stattdessen als Eigenschaft in Abhängigkeit des Verzeichniseintragsstils
+ von Option \Option{tocentrystyle} anzugeben. Nichts desto trotz haben alle
+ Stile die Eigenschaft \PValue{level} und damit Option
+ \Option{tocentrylevel}. Die Eigenschaft wird von \Macro{DeclareNewTOC} mit
+ 1 voreingestellt. Diese Voreinstellung kann durch explizite Angabe von
+ \OptionVName{tocentrylevel}{Wert} leicht mit einem anderen \PName{Wert}
+ überschrieben werden.}%
+ \entry{\OptionVName{listname}{Verzeichnistitel}}{%
+ Jedes Verzeichnis hat eine Überschrift, die durch diese Option bestimmt
+ werden kann. Ist die Option nicht angegeben, so wird als Verzeichnistitel
+ »\texttt{List of \PName{Mehrzahl des Eintragstyps}}« (siehe Option
+ \Option{types}) verwendet, wobei das erste Zeichen der \PName{Mehrzahl des
+ Eintragstyps} in einen Großbuchstaben gewandelt wird. Es wird auch ein
+ Makro \Macro{list\PName{Eintragstyp}name} mit diesem Wert definiert, der
+ jederzeit geändert werden kann. Dieses Makro wird jedoch nur definiert,
+ wenn es nicht bereits definiert ist oder zusätzlich Option
+ \Option{forcenames} gesetzt ist.}%
+ \entry{\OptionVName{name}{Eintragsname}}{%
+ Sowohl als optionaler Präfix für die Einträge im Verzeichnis als auch für
+ die Beschriftung in einer Gleitumgebung (siehe Option \Option{float}) oder
+ einer nicht gleitenden Umgebung (siehe Option \Option{nonfloat}) wird ein
+ Name für einen Eintrag in das Verzeichnis benötigt. Ohne diese Option wird
+ als \PName{Eintragsname} der \PName{Eintragstyp} (siehe Option
+ \Option{type}) verwendet, bei dem das erste Zeichen in einen
+ Großbuchstaben gewandelt wird. Es wird auch ein Makro
+ \Macro{\PName{Eintragstyp}name} mit diesem Wert definiert, der jederzeit
+ geändert werden kann. Dieses Makro wird jedoch nur definiert, wenn es
+ nicht bereits definiert ist oder zusätzlich Option \Option{forcenames}
+ gesetzt ist.}%
+ \entry{\Option{nonfloat}}{%
+ Es wird nicht nur ein neuer Verzeichnistyp definiert, sondern auch eine
+ nicht gleitende Umgebungen \Environment{\PName{Eintragstyp}-} (siehe
+ Option \Option{type}), die ähnlich wie eine Gleitumgebung verwendet werden
+ kann, jedoch nicht gleitet und auch nicht die Grenzen der Umgebung, in der
+ sie verwendet wird, durchbricht.}%
+ \entry{\OptionVName{owner}{Besitzer}}{%
+ Jedes neue Verzeichnis hat bei \Package{tocbasic} einen Besitzer (siehe
+ \autoref{sec:tocbasic.basics}). Dieser kann hier angegeben werden. Ist
+ kein Besitzer angegeben, so wird der Besitzer »\PValue{float}« verwendet,
+ den auch die \KOMAScript-Klassen für das Abbildungs- und das
+ Tabellenverzeichnis verwenden.}%
+ \entry{\OptionVName{setup}{Liste von Eigenschaften}}{%
+ \ChangedAt{v3.25}{\Package{tocbasic}}%
+ Die \PName{Liste von Eigenschaften} wird via
+ \DescRef{\LabelBase.cmd.setuptoc} gesetzt. Es wird darauf hingewiesen,
+ dass für die Angabe mehrerer durch Komma getrennter Eigenschaften die
+ \PName{Liste von Eigenschaften} in geschweifte Klammern gesetzt werden
+ muss.%
+ }%
+ \entry{\OptionVName{tocentrystyle}{Eintragsstil}}{%
+ \ChangedAt{v3.20}{\Package{tocbasic}}%
+ \PName{Eintragsstil} gibt den Stil an, den Einträge in das entsprechende
+ Verzeichnis haben sollen. Der Name der Eintragsebene wird dabei über
+ Option \Option{type} bestimmt. Zusätzlich zu den Optionen dieser Tabelle
+ können auch alle Eigenschaften des Stils als Optionen angegeben werden,
+ indem die Namen der Eigenschaften mit dem Präfix \PValue{toc} ergänzt
+ werden. So kann der nummerische Wert der Ebene beispielsweise als
+ \Option{tocentrylevel} angegeben werden. Näheres zu den Stilen ist
+ \autoref{sec:tocbasic.tocstyle} ab \autopageref{sec:tocbasic.tocstyle} zu
+ entnehmen.}%
+ \entry{\OptionVName{tocentry\PName{Stiloption}}{Wert}}{%
+ \ChangedAt[2015/12]{v3.20}{\Package{tocbasic}}%
+ Weitere Optionen in Abhängigkeit vom via \Option{tocentrystyle} gewählten
+ \PName{Eintragsstil}. Siehe dazu \autoref{sec:tocbasic.tocstyle} ab
+ \autopageref{sec:tocbasic.tocstyle}. Für die von \Package{tocbasic}
+ vordefinierten Verzeichniseintragsstile finden sich die als
+ \PName{Stiloption} verwendbaren Attribute in
+ \autoref{tab:tocbasic.tocstyle.attributes}, ab
+ \autopageref{tab:tocbasic.tocstyle.attributes}.%
+ }%
+ \entry{\OptionVName{type}{Eintragstyp}}{%
+ \PName{Eintragstyp} gibt den Typ der Einträge in das entsprechende
+ Verzeichnis an. Der Typ wird auch als Basisname für verschiedene Makros
+ und gegebenenfalls Umgebungen und Zähler verwendet. Er sollte daher nur
+ aus Buchstaben bestehen. Wird diese Option nicht verwendet, so wird für
+ \PName{Eintragstyp} die \PName{Dateierweiterung} aus dem obligatorischen
+ Argument verwendet.}%
+ \entry{\OptionVName{types}{Mehrzahl des Eintragstyps}}{%
+ An verschiedenen Stellen wird auch die Mehrzahlform des Eintragstyps
+ verwendet, beispielsweise um eine Anweisung \Macro{listof\PName{Mehrzahl
+ des Eintragstyps}} zu definieren. Wird diese Option nicht verwendet,
+ so wird als \PName{Mehrzahl des Eintragstyps} der Wert von
+ \Option{type} mit angehängtem »s« verwendet.}%
+ \entry{\OptionVName{unset}{Liste von Eigenschaften}}{%
+ \ChangedAt{v3.25}{\Package{tocbasic}}%
+ Die \PName{Liste von Eigenschaften} wird via
+ \DescRef{\LabelBase.cmd.unsettoc} aufgehoben. Es wird darauf hingewiesen,
+ dass für die Angabe mehrerer durch Komma getrennter Eigenschaften die
+ \PName{Liste von Eigenschaften} in geschweifte Klammern gesetzt werden
+ muss.%
+ }%
+\end{desclist}
+
+\begin{Example}
+ Das Beispiel aus \autoref{sec:tocbasic.example} kann mit Hilfe der neuen
+ Anweisung deutlich verkürzt werden:
+\begin{lstcode}
+ \DeclareNewTOC[%
+ type=remarkbox,%
+ types=remarkboxes,%
+ float,% Gleitumgebungen sollen definiert werden.
+ floattype=4,%
+ name=Merksatz,%
+ listname={Verzeichnis der Merks\"atze}%
+ ]{lor}
+ \setuptoc{lor}{chapteratlist}
+\end{lstcode}
+ Neben den Umgebungen \Environment{remarkbox} und \Environment{remarkbox*}
+ sind damit auch der Zähler \Counter{remarkbox}, die zur Ausgabe gehörenden
+ Anweisungen \Macro{theremarkbox}, \Macro{remarkboxname} und
+ \Macro{remarkboxformat}, die für das Verzeichnis benötigten
+ \Macro{listremarkboxname} und \Macro{listofremarkboxes} sowie einige intern
+ verwendete Anweisungen mit Bezug auf die Dateiendung \File{lor}
+ definiert. Soll der Gleitumgebungstyp dem Paket überlassen werden, so kann
+ Option \Option{floattype} im Beispiel entfallen. Wird zusätzlich
+ die Option \Option{nonfloat} angegeben, wird außerdem eine nicht gleitende
+ Umgebung \Environment{remarkbox-} definiert, in der ebenfalls
+ \DescRef{maincls.cmd.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}{l@{\hskip\tabcolsep}l@{\hskip\tabcolsep}>{\raggedright}p{7em}@{\hskip\tabcolsep}X}
+ \toprule
+ \begin{tabular}[t]{@{}l@{}}
+ Umgebung\\
+ \Environment{remarkbox}
+ \end{tabular}
+ & \begin{tabular}[t]{@{}l@{}}
+ Umgebung\\
+ \Environment{figure}
+ \end{tabular}
+ & 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 \DescRef{maincls.cmd.caption} verwendet wird \\[1ex]
+ \Macro{theremarkbox} & \Macro{thefigure}
+ & \Option{type}, \Option{float}
+ & Anweisung zur Ausgabe des jeweiligen Zählers \\[1ex]
+ \Macro{remarkboxformat} & \DescRef{maincls.cmd.figureformat}
+ & \Option{type}, \Option{float}
+ & Anweisung zur Formatierung des jeweiligen Zählers in der Ausgabe von
+ \DescRef{maincls.cmd.caption}\\[1ex]
+ \Macro{remarkboxname} & \Macro{figurename}
+ & \Option{type}, \Option{float}, \Option{name}
+ & Name, der im Label von \DescRef{maincls.cmd.caption} verwendet
+ wird\\[1ex]
+ \Macro{listofremarkboxes} & \DescRef{maincls.cmd.listoffigures}
+ & \Option{types}, \Option{float}
+ & Anweisung zur Ausgabe des jeweiligen Verzeichnisses \\[1ex]
+ \Macro{listremarkboxname} & \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 Ausschnitt 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
+ \begin{tabularx}{\hsize}[t]{@{}l@{ }X@{}}
+ \usekomafont{captionlabel}{Merksatz 1:} &
+ Erster Hauptsatz der Typografie%\\
+ \end{tabularx}%
+ }%
+ \\
+ \end{tabular}%
+ \end{center}%
+\end{Example}%
+
+Benutzer von
+\Package{hyperref}\IndexPackage{hyperref}\important{\Package{hyperref}}
+sollten Option \Option{listname} übrigens immer angeben. Anderenfalls kommt es
+in der Regel zu einer Fehlermeldung, weil \Package{hyperref} nicht mit dem
+\Macro{MakeUppercase}\IndexCmd{MakeUppercase} im Namen des Verzeichnisses
+zurecht kommt, das benötigt wird, um den ersten Buchstaben des Wertes von
+\Option{types} in Großbuchstaben zu wandeln.%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide"
+%%% End:
+
+% LocalWords: Verzeichnisdatei Klonquelle Absatzabstandes Absatzabstand
+% LocalWords: Verzeichniseinträge Verzeichniseintrag Eintragsstile
+% LocalWords: Inhaltsverzeichniseinträge Standardklassen Nummernbreite
+% LocalWords: Standardeigenschaft Eintragsebene Optionenliste expandierbar
+% LocalWords: Standardverzeichniseintragsstil Verzeichniseigenschaften
+% LocalWords: Verzeichniseintragsstil Verzeichniseintragsstils Eintragsstil
+% LocalWords: Kapitelüberschrift Gliederungsebene expandierbares
+% LocalWords: Eintragsnummer Initialisierungscode Aktivierungswerte
+% LocalWords: Deaktivierungswert Verzeichnistitel Eintragstyp Eintragstyps
+% LocalWords: Verzeichniseintrags Säumniswert Überschriftenanweisung
+% LocalWords: Eintragstext Dateierweiterung Dateierweiterungen Paketautoren
+% LocalWords: Verzeichnisbefehle Verzeichnisdaten Schrifteinstellungen
+% LocalWords: Eintragsebenen Platzierungsoptionen Kapiteleinträge
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/typearea-experts.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/typearea-experts.tex
new file mode 100644
index 0000000000..9b071f0edd
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/typearea-experts.tex
@@ -0,0 +1,292 @@
+% ======================================================================
+% typearea-experts.tex
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% typearea-experts.tex
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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 typearea of the KOMA-Script guide part II
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel über typearea in der KOMA-Script-Anleitung Teil II
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\KOMAProvidesFile{typearea-experts.tex}
+ [$Date: 2018-01-31 09:49:41 +0100 (Wed, 31 Jan 2018) $
+ KOMA-Script guide (chapter: typearea for experts)]
+
+\chapter{Zusätzliche Informationen zum Paket \Package{typearea.sty}}
+\labelbase{typearea-experts}
+
+\BeginIndexGroup \BeginIndex{Package}{typearea} In diesem Kapitel finden Sie
+zusätzliche Informationen zum Paket
+\hyperref[cha:typearea]{\Package{typearea}}. \iffree{Einige Teile des Kapitels
+ sind dabei dem \KOMAScript-Buch \cite{book:komascript} vorbehalten. Dies
+ sollte kein Problem sein, denn der}{Der} normale Anwender, der das Paket
+einfach nur verwenden will, wird diese Informationen eher selten
+benötigen. Ein Teil der Informationen richtet sich an Anwender, die
+ausgefallene Aufgaben lösen oder eigene Pakete schreiben wollen, die auf
+\Package{typearea} basieren. Ein weiterer Teil der Informationen behandelt
+Möglichkeiten von \Package{typearea}, die aus Gründen der Kompatibilität zu
+den Standardklassen oder früheren Versionen von \KOMAScript{} existieren. Die
+Teile, die nur aus Gründen der Kompatibilität zu früheren Versionen von
+\KOMAScript{} existieren, sind in serifenloser Schrift gesetzt und sollten
+nicht mehr verwendet werden.
+
+
+\section{Experimentelle Möglichkeiten}
+\seclabel{experimental}
+
+In diesem Abschnitt werden experimentelle Möglichkeiten
+beschrieben. Experimentell bedeutet in diesem Zusammenhang, dass die Funktion
+nicht garantiert werden kann. Dafür kann es zwei Gründe geben. Zum einen
+steht die endgültige Funktion oder Implementierung eventuell noch nicht
+abschließend fest. Zum anderen hängen die Möglichkeiten teilweise von Interna
+anderer Pakete ab und können deshalb in ihrer Funktion nur so lange garantiert
+werden, wie diese anderen Pakete nicht geändert werden.
+
+\begin{Declaration}
+ \OptionVName{usegeometry}{Ein-Aus-Wert}
+\end{Declaration}
+Normalerweise kümmert sich \Package{typearea} wenig darum, ob es in irgend
+einer Konstellation zusammen mit dem Paket
+\Package{geometry}\IndexPackage{geometry} (siehe \cite{package:geometry})
+verwendet wird. Das bedeutet insbesondere, dass \Package{geometry} nach wie
+vor nichts davon mitbekommt, wenn man mit \Package{typearea} beispielsweise
+die Papiergröße ändert -- etwas, das \Package{geometry} selbst gar nicht
+bietet.
+
+Sobald\ChangedAt{v3.17}{\Package{typearea}} Option \Option{usegeometry}
+gesetzt wird, versucht \Package{typearea}, alle eigenen Optionen für
+\Package{geometry} in dessen Optionen zu übersetzen. Innerhalb des Dokuments
+wird sogar \Macro{newgeometry} aufgerufen, wenn neue Parameter aktiviert
+werden (siehe \DescRef{\LabelBase.cmd.activateareas} im nachfolgenden
+Abschnitt). Da \Package{geometry} keine Änderung der Papiergröße oder
+Papierausrichtung via \Macro{newgeometry} bietet, wird diese bei Bedarf über
+interne Anweisungen und Längen von \Package{geometry} umgesetzt. Getestet ist
+dies für \Package{geometry}~5.3 bis 5.6.
+
+Die Option bedeutet übrigens nicht, dass bei Verwendung von \Package{geometry}
+nach einer Papiergrößen- oder Papierausrichtungsänderung mit
+\Package{typearea} das neue Papier direkt optimal genutzt wird. Da
+\Package{geometry} aus Komfortgründen deutlich mehr Optionen für die
+Papiereinstellung bietet, als für die Bestimmung von Textbereich, Rändern,
+Kopf, Fuß etc. benötigt werden -- man spricht von \emph{Überbestimmung} -- und
+gleichzeitig bei neuen Aufrufen von \Macro{newgeometry} fehlende Angaben aus
+bereits bekannten ableitet -- man spricht von \emph{Werterhalt} --,
+muss man gegebenenfalls durch vollständige Bestimmung neuer Werte
+bei einem eigenen Aufruf von \Macro{newgeometry} alle gewünschten
+Einstellungen explizit vornehmen. Nichts desto Trotz kann die Berücksichtigung
+von \Package{geometry} durch \Package{typearea} zusätzliche Möglichkeiten
+eröffnen.
+
+{\setlength{\emergencystretch}{1em}%
+Von \Package{typearea} werden mit \Option{usegeometry} für \Package{geometry}
+derzeit die Optionen
+\Option{bindingoffset}, \Option{footskip}, \Option{headheight},
+\Option{headsep}, \Option{includefoot}, \Option{includehead},
+\Option{includemp}, \Option{lmargin}, \Option{marginparsep},
+\Option{marginparwidth}, \Option{textheight}, \Option{textwidth}, \Option{top}
+und in der Dokumentpräambel zusätzlich \Option{paperheight} und
+\Option{paperwidth} gesetzt.\par}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{areasetadvanced}{Ein-Aus-Wert}
+ \Macro{areaset}\OParameter{BCOR}\Parameter{Breite}\Parameter{Höhe}
+\end{Declaration}
+Normalerweise berücksichtigt \DescRef{typearea.cmd.areaset} Optionen zur
+Bestimmung der Höhe von Kopf und Fuß oder zur Festlegung, ob Randelemente Teil
+des Satzspiegels sein sollen, nicht in gleicher Weise wie
+\DescRef{typearea.cmd.typearea}. Mit Option
+\Option{areasetadvanced}\ChangedAt{v3.11}{\Package{typearea}} kann jedoch
+eingestellt werden, dass sich \DescRef{typearea.cmd.areaset} diesbezüglich
+mehr wie \DescRef{typearea.cmd.typearea} verhalten soll. Trotzdem
+unterscheiden sich Einstellungen, die zu gleich großen Textbereichen führen
+zwischen den beiden Befehlen weiterhin, da \DescRef{typearea.cmd.typearea}
+immer auf ganze Zeile rundet und dabei gegebenenfalls den unteren Rand um bis
+zu eine Zeile kleiner wählt, während \DescRef{typearea.cmd.areaset} den oberen
+und unteren Rand immer im Verhältnis 1:2 einstellt. Die Textbereiche der
+unterschiedlichen Befehle können also bei gleicher Größe vertikal leicht
+verschoben sein.%
+\EndIndexGroup
+
+
+\section{Anweisungen für Experten}
+\seclabel{experts}
+
+In diesem Abschnitt werden Anweisungen beschrieben, die für den normalen
+Anwender kaum oder gar nicht von Interesse sind. Experten bieten diese
+Anweisungen zusätzliche Möglichkeiten.\iffree{ Da die Beschreibungen für
+ Experten gedacht sind, sind sie kürzer gefasst.}{}
+
+\begin{Declaration}
+ \Macro{activateareas}
+\end{Declaration}%
+Diese Anweisung wird von \Package{typearea} genutzt, um die Einstellungen für
+Satzspiegel und Ränder in die internen \LaTeX-Längen zu übertragen, wenn der
+Satzspiegel innerhalb des Dokuments, also nach
+\Macro{begin}\PParameter{document} neu berechnet wurde. Wurde die Option
+\DescRef{typearea.option.pagesize} verwendet, so wird diese anschließend mit
+demselben Wert neu aufgerufen. Damit kann beispielsweise innerhalb von
+PDF-Dokumenten die Seitengröße tatsächlich variieren.
+
+Experten können diese Anweisung auch verwenden, wenn Sie aus irgendwelchen
+Gründen Längen wie \Length{textwidth} oder \Length{textheight} innerhalb des
+Dokuments manuell geändert haben. Der Experte ist dabei für eventuell
+notwendige Seitenumbrüche vor oder nach der Verwendung jedoch selbst
+verantwortlich! Darüber hinaus sind alle von \Macro{activateareas}
+durchgeführten Änderungen lokal!%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{storeareas}\Parameter{Anweisung}
+ \Macro{BeforeRestoreareas}\Parameter{Code}
+ \Macro{BeforeRestoreareas*}\Parameter{Code}
+ \Macro{AfterRestoreareas}\Parameter{Code}
+ \Macro{AfterRestoreareas*}\Parameter{Code}
+\end{Declaration}
+Mit Hilfe von \Macro{storeareas} wird eine \PName{Anweisung} definiert, über
+die alle aktuellen Seitenspiegeleinstellungen wieder hergestellt werden
+können. So ist es möglich, die aktuellen Einstellungen zu speichern,
+anschließend die Einstellungen zu ändern und dann die gespeicherten
+Einstellungen wieder zu reaktivieren.
+
+\begin{Example}
+ Sie wollen in einem Dokument im Hochformat eine Seite im Querformat
+ unterbringen. Mit \Macro{storeareas} kein Problem:
+\begin{lstcode}
+ \documentclass{scrartcl}
+
+ \begin{document}
+ \noindent\rule{\textwidth}{\textheight}
+
+ \storeareas\meinegespeichertenWerte
+ \KOMAoptions{paper=landscape,DIV=current}
+ \noindent\rule{\textwidth}{\textheight}
+
+ \clearpage
+ \meinegespeichertenWerte
+ \noindent\rule{\textwidth}{\textheight}
+ \end{document}
+\end{lstcode}
+ Wichtig\textnote{Achtung!} ist dabei die Anweisung
+ \DescRef{maincls.cmd.clearpage} vor dem Aufruf von
+ \Macro{meinegespeichertenWerte}, damit die Wiederherstellung erst auf der
+ nächsten Seite erfolgt. Bei doppelseitigen Dokumenten sollte bei Änderungen
+ am Papierformat stattdessen sogar
+ \DescRef{maincls.cmd.cleardoubleoddpage}\IndexCmd{cleardoubleoddpage} oder
+ -- wenn keine \KOMAScript-Klasse zum Einsatz kommt --
+ \DescRef{maincls.cmd.cleardoublepage}\IndexCmd{cleardoublepage} verwendet
+ werden.%
+ \iffree{\par Außerdem wird \Macro{noindent} verwendet, um den normalen
+ Absatzeinzug vor den schwarzen Kästen zu verhindern. Sie würden sonst kein
+ korrektes Bild des Seitenlayouts wiedergeben.}{}%
+\end{Example}
+
+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
+\PName{Anweisung} erfolgt intern mit
+\Macro{newcommand}\IndexCmd{newcommand*}\important{\Macro{newcommand*}}. Bei
+erneuter Verwendung einer bereits definierten \PName{Anweisung} wird eine
+entsprechende Fehlermeldung ausgegeben.
+
+Oftmals\ChangedAt{v3.18}{\Package{typearea}} ist auch erwünscht, vor der
+Wiederherstellung der Einstelllungen per \PName{Anweisung} grundsätzlich
+bestimmte Aktionen wie beispielsweise ein
+\DescRef{maincls.cmd.cleardoubleoddpage} auszuführen. Dies kann man mit Hilfe
+von \Macro{BeforeRestoreareas} und \Macro{BeforeRestoreareas*}
+erreichen. Entsprechend kann man mit \Macro{AfterRestoreareas} und
+\Macro{AfterRestoreareas*} \PName{Code} nach der Wiederherstellung der
+Einstellungen ausführen lassen. Die Formen mit und ohne Stern unterscheiden
+sich insoweit, als die Sternform nur für noch nicht per \Macro{storeareas}
+gespeicherte Einstellungen gilt, während sich die Variante ohne Stern auch auf
+die zukünftige Verwendung bereits früher gespeicherter Einstellungen
+auswirkt.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AfterCalculatingTypearea}\Parameter{Anweisungen}
+ \Macro{AfterCalculatingTypearea*}\Parameter{Anweisungen}
+ \Macro{AfterSettingArea}\Parameter{Anweisungen}
+ \Macro{AfterSettingArea*}\Parameter{Anweisungen}
+\end{Declaration}%
+Diese Anweisungen dienen der Verwaltung zweier Haken\Index{Haken} (engl.
+\emph{hooks}\Index{hook=\emph{hook}}). Die ersten beiden,
+\Macro{AfterCalculatingTypearea} und deren Sternform, ermöglichen es dem
+Experten jedes Mal, nachdem \Package{typearea} eine neue Auf"|teilung in
+Satzspiegel und Ränder berechnet hat, also nach jeder impliziten oder
+expliziten Ausführung von \DescRef{typearea.cmd.typearea}, \PName{Anweisungen}
+ausführen zu lassen. Entsprechendes leisten
+\Macro{AfterSettingArea}\ChangedAt{v3.11}{\Package{typearea}} und dessen
+Stern-Form für die Ausführung von \DescRef{typearea.cmd.areaset}. Die
+Normalformen arbeiten dabei global, während die Änderungen durch die
+Sternformen nur lokal wirksam sind. Die \PName{Anweisungen} werden jeweils
+unmittelbar vor \DescRef{\LabelBase.cmd.activateareas} ausgeführt.\iffree{}{
+ In \autoref{cha:modernletters} wird für die \emph{Letter-Class-Option}
+ \File{asymTypB.lco} davon Gebrauch gemacht, um die Randverteilung zu
+ ändern.}%
+%
+\EndIndexGroup
+
+
+\section{Lokale Einstellungen durch die Datei \File{typearea.cfg}}
+\seclabel{cfg}
+\BeginIndex{File}{typearea.cfg}
+
+\LoadNonFree{typearea-experts}{0}
+
+\section{Mehr oder weniger obsolete Optionen und Anweisungen}
+\seclabel{obsolete}
+
+\LoadNonFree{typearea-experts}{1}
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
+
+% LocalWords: Hochformat Seitenspiegels
diff --git a/macros/latex/contrib/koma-script/source-doc/ngerman/typearea.tex b/macros/latex/contrib/koma-script/source-doc/ngerman/typearea.tex
new file mode 100644
index 0000000000..0ff9dd4573
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/ngerman/typearea.tex
@@ -0,0 +1,2035 @@
+% ======================================================================
+% typearea.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% typearea.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 typearea of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel über typearea in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+
+\KOMAProvidesFile{typearea.tex}
+ [$Date: 2018-01-31 13:01:01 +0100 (Wed, 31 Jan 2018) $
+ KOMA-Script guide (chapter: typearea)]
+\chapter{Satzspiegelberechnung mit \Package{typearea.sty}}
+\labelbase{typearea}
+
+\BeginIndexGroup%
+\BeginIndex{Package}{typearea}%
+Viele \LaTeX-Klassen\iffree{, darunter auch die Standardklassen,}{} bieten dem
+Anwender eine weitgehend feste Auf"|teilung von Rändern und Textbereich. Bei
+den Standardklassen ist die konkrete Auf"|teilung in engen Grenzen von der
+gewählten Schriftgröße abhängig. Darüber hinaus gibt es Pakete wie
+\Package{geometry}\IndexPackage{geometry} (siehe \cite{package:geometry}), die
+dem Anwender die volle Kontrolle, aber auch die Verantwortung für die
+Einstellungen des Textbereichs und der Ränder überlassen.
+
+\KOMAScript{} geht mit dem Paket \Package{typearea} einen etwas anderen
+Weg. Hier werden basierend auf einer in der Typografie etablierten
+Konstruktion Einstellmöglichkeiten und Automatismen geboten, die es dem
+Anwender erleichtern, eine gute Wahl zu treffen.
+
+\iffalse% Umbruchoptimierung!!!
+ Es wird darauf hingewiesen, dass sich \Package{typearea} des Pakets
+ \Package{scrbase} bedient. Letzteres Paket ist im Expertenteil
+ \iffree{dieser Anleitung}{dieses Buches} in \autoref{cha:scrbase} ab
+ \autopageref{cha:scrbase} erklärt.
+ Die Mehrzahl der dort dokumentierten Anweisungen richtet sich jedoch nicht
+ an Anwender, sondern an Klassen- und Paketautoren.%
+\fi
+
+\section{Grundlagen der Satzspiegelkonstruktion}
+\seclabel{basics}
+
+\begin{Explain}
+ Betrachtet man eine einzelne Seite eines Buches oder eines anderen
+ Druckwerkes, so besteht diese auf den ersten Blick aus den Rändern%
+ \iffalse% Umbruchkorrekturtext
+ \footnote{Der Autor und der Lektor haben an dieser Stelle überlegt, ob eine
+ Seite nicht nur einen umlaufenden Rand hat und daher von »dem Rand« die
+ Rede sein müsste. Da jedoch \LaTeX{} diesen einen Rand logisch in mehrere
+ Ränder unterteilt, die getrennt bestimmt werden, ist hier auch von »den
+ Rändern« die Rede.}%
+ \fi%
+ , einem Kopfbereich, einem Textkörper und einem Fußbereich. Genauer
+ betrachtet, kommt noch ein Abstand zwischen Kopfbereich und Textkörper sowie
+ zwischen Textkörper und Fußbereich hinzu. Der Textkörper heißt in der
+ Fachsprache der Typografen und Setzer \emph{Satzspiegel}. Die Auf"|teilung
+ dieser Bereiche sowie ihre Anordnung zueinander und auf dem Papier nennen
+ wir \emph{Satzspiegeldefinition} oder
+ \emph{Satzspiegelkonstruktion}.\Index[indexmain]{Satzspiegel}
+
+ In der Literatur werden verschiedene Algorithmen und heuristische Verfahren
+ zur Konstruktion eines guten Satzspiegels vorgeschlagen und diskutiert%
+ \iffree{ \cite{DANTE:TK0402:MJK}}{. Einen Überblick über einige Möglichkeiten
+ und der dabei angenommenen Grundsätze gibt
+ \autoref{cha:typeareaconstruction}}%
+ . Häufig findet man ein Verfahren, das mit verschiedenen Diagonalen
+ und deren Schnittpunkten arbeitet. Das gewünschte Ergebnis ist, dass das
+ Seitenverhältnis des Satzspiegels dem Seitenverhältnis \emph{der Seite}
+ entspricht. Bei einem einseitigen\Index{einseitig} Dokument sollen außerdem
+ der linke und der rechte Rand gleich breit sein, während der obere zum
+ unteren Rand im Verhältnis 1:2 stehen sollte. Bei einem
+ doppelseitigen\Index{doppelseitig} Dokument, beispielsweise einem Buch, ist
+ hingegen zu beachten, dass der gesamte innere Rand genauso groß sein sollte
+ wie jeder der beiden äußeren Ränder. Eine einzelne Seite steuert dabei
+ jeweils nur die Hälfte des inneren Randes bei.
+
+ Im vorherigen Absatz wurde \emph{die Seite} erwähnt und
+ hervorgehoben. Irrtümlich wird oftmals angenommen, das Format der Seite wäre
+ mit dem Format des Papiers gleichzusetzen.\Index[indexmain]{Seiten>Format}
+ \Index[indexmain]{Papier>Format} Betrachtet man jedoch ein gebundenes
+ Druckerzeugnis, so ist zu erkennen, dass ein Teil des Papiers in der
+ Bindung\Index[indexmain]{Bindung} verschwindet und nicht mehr als Seite zu
+ sehen ist. Für den Satzspiegel ist jedoch nicht entscheidend, welches Format
+ das Papier hat, sondern, was der Leser für einen Eindruck vom Format der
+ Seite bekommt. Damit ist klar, dass bei der Berechnung des Satzspiegels der
+ Teil, der durch die Bindung versteckt wird, aus dem Papierformat
+ herausgerechnet und dann zum inneren Rand hinzugefügt werden muss. Wir
+ nennen diesen Teil
+ \emph{Bindekorrektur}.\Index[indexmain]{Bindekorrektur}%
+ \textnote{Bindekorrektur}
+ Die Bindekorrektur ist also rechnerischer Bestandteil des
+ \emph{Bundstegs}\Index{Bundsteg}, nicht jedoch des sichtbaren
+ inneren Randes.
+
+ Die Bindekorrektur ist vom jeweiligen Produktionsvorgang abhängig und kann
+ nicht allgemein festgelegt werden. Es handelt sich dabei also um einen
+ Parameter, der für jeden Produktionsvorgang neu festzulegen ist. Im
+ professionellen Bereich spielt dieser Wert nur eine geringe Rolle, da
+ ohnehin auf größere Papierbögen gedruckt und entsprechend geschnitten
+ wird. Beim Schneiden wird dann wiederum sichergestellt, dass obige
+ Verhältnisse für die sichtbare Doppelseite eingehalten sind.
+
+ Wir wissen nun also, wie die einzelnen Teile zueinander stehen. Wir wissen
+ aber noch nicht, wie breit und hoch der Satzspiegel ist. Kennen wir eines
+ dieser beiden Maße, so ergeben sich zusammen mit dem Papierformat und dem
+ Seitenformat oder der Bindekorrektur alle anderen Maße durch Lösung mehrerer
+ mathematischer Gleichungen:
+ % Umbruchoptiomierung!!!
+ \iffree{%
+ \begin{align*}
+ \Var{Satzspiegelhöhe}\Index{Satzspiegel} : \Var{Satzspiegelbreite} &=
+ \Var{Seitenhöhe}\Index{Seite} : \Var{Seitenbreite} \\
+ \Var{oberer~Rand}\Index{Rand} : \Var{unterer~Rand} &=
+ \text{1} : \text{2} \\
+ \Var{linker~Rand} : \Var{rechter~Rand} &= \text{1} : \text{1} \\
+%
+ \Var{innerer~Randanteil} : \Var{äußerer~Rand} &= \text{1} : \text{2} \\
+%
+ \Var{Seitenbreite} &=
+ \Var{Papierbreite}\Index{Papier} -
+ \Var{Bindekorrektur}\Index{Bindekorrektur}\\
+%
+ \Var{oberer~Rand} + \Var{unterer~Rand} &=
+ \Var{Seitenhöhe} - \Var{Satzspiegelhöhe} \\
+%
+ \Var{linker~Rand} + \Var{rechter Rand} &=
+ \Var{Seitenbreite} - \Var{Satzspiegelbreite} \\
+%
+ \Var{innerer Randanteil} + \Var{äußerer Rand} &=
+ \Var{Seitenbreite} - \Var{Satzspiegelbreite} \\
+%
+ \Var{innerer~Randanteil} + \Var{Bindekorrektur} &=
+ \Var{Bundsteg}\index{Bundsteg}
+ \end{align*}
+ }{%
+ % Umbruchkorrektur: Abstände verändert!
+ \begin{prepareformargin}
+ \vskip -.5\baselineskip plus .25\baselineskip
+ \begin{align*}
+ \Var{Satzspiegelhöhe}\Index{Satzspiegel} : \Var{Satzspiegelbreite} &=
+ \Var{Seitenhöhe}\Index{Seite} : \Var{Seitenbreite} \\
+ \Var{oberer~Rand}\Index{Rand} : \Var{unterer~Rand} &=
+ \text{1} : \text{2} \\
+ \Var{linker~Rand} : \Var{rechter~Rand} &= \text{1} : \text{1} \\
+ \Var{innerer~Randanteil} : \Var{äußerer~Rand} &=
+ \text{1} : \text{2}\\
+ \Var{Seitenbreite} &=
+ \Var{Papierbreite}\Index{Papier} -
+ \Var{Bindekorrektur}\Index{Bindekorrektur} \\
+ \Var{oberer~Rand} + \Var{unterer~Rand} &=
+ \Var{Seitenhöhe} - \Var{Satzspiegelhöhe} \\
+ %
+ \Var{linker~Rand} + \Var{rechter Rand} &=
+ \Var{Seitenbreite} - \Var{Satzspiegelbreite} \\
+ %
+ \Var{innerer Randanteil} + \Var{äußerer Rand} &=
+ \Var{Seitenbreite} - \Var{Satzspiegelbreite} \\
+ %
+% \end{align*}
+% \end{prepareformargin}\pagebreak
+% \begin{prepareformargin}\vskip-\abovedisplayskip
+% \begin{align*}
+ \Var{innerer~Randanteil} + \Var{Bindekorrektur} &=
+ \Var{Bundsteg}\index{Bundsteg}
+ \end{align*}
+ \end{prepareformargin}
+ \vskip .5\baselineskip minus .25\baselineskip
+ }%
+ \Index[indexmain]{Rand}%
+ Dabei gibt es \Var{linker~Rand} und \Var{rechter~Rand} nur im einseitigen
+ Druck. Entsprechend gibt es \Var{innerer~Randanteil} und \Var{äußerer~Rand}
+ nur im doppelseitigen Druck.
+
+ In den Gleichungen wird mit \Var{innerer~Randanteil} gearbeitet, weil der
+ komplette innere Rand ein Element der vollständigen Doppelseite ist. Zu
+ einer Seite gehört also nur die Hälfte des inneren Randes:
+ \Var{innerer~Randanteil}.
+
+ Die Frage nach der Breite des Satzspiegels wird in der Literatur
+ ebenfalls diskutiert. Die optimale Satzspiegelbreite ist von
+ verschiedenen Faktoren abhängig:
+ \iffree{\begin{itemize}}{\begin{itemize}[% Umbuchkorrektur
+ topsep=.5\baselineskip plus .25\baselineskip minus .33\baselineskip,
+ partopsep=.5\baselineskip plus .25\baselineskip minus .33\baselineskip,
+ itemsep=.33\baselineskip plus .25\baselineskip minus .25\baselineskip,
+ parsep=0pt
+ ]}
+ \item Größe, Laufweite und Art der verwendeten Schrift,
+ \item verwendeter Durchschuss,
+ \item Länge der Worte,
+ \item verfügbarer Platz.
+ \end{itemize}
+ Der Einfluss der Schrift wird deutlich, wenn man sich bewusst macht,
+ wozu Serifen dienen. Serifen\Index[indexmain]{Serifen} sind kleine
+ Striche an den Linienenden der Buchstaben. Buchstaben, die mit
+ vertikalen Linien auf die Grundlinie der Textzeile treffen,
+ lösen diese eher auf, als dass sie das Auge auf der Linie halten.
+ Genau bei diesen Buchstaben liegen die Serifen horizontal auf
+ der Grundlinie und verstärken damit die Zeilenwirkung der Schrift.
+ Das Auge kann der Textzeile nicht nur beim Lesen der Worte, sondern
+ insbesondere auch beim schnellen Zurückspringen an den Anfang der
+ nächsten Zeile besser folgen. Damit darf die Zeile bei einer Schrift
+ mit Serifen genau genommen länger sein als bei einer Schrift ohne Serifen.
+
+ Unter dem
+ Durchschuss\Index[indexmain]{Durchschuss}\textnote{Durchschuss}
+ versteht man den Abstand zwischen Textzeilen. Bei \LaTeX{} ist ein
+ Durchschuss von etwa 20\,\% der Schriftgröße voreingestellt. Mit Befehlen
+ wie \Macro{linespread}\IndexCmd{linespread} oder besser mit Hilfe von
+ Paketen wie \Package{setspace}\IndexPackage{setspace} (siehe
+ \cite{package:setspace}) kann der Durchschuss verändert werden. Ein großer
+ Durchschuss erleichtert dem Auge die Verfolgung einer Zeile. Bei sehr
+ großem Durchschuss wird das Lesen aber dadurch gestört, dass das Auge
+ zwischen den Zeilen weite Wege zurücklegen muss. Daneben wird sich der
+ Leser des entstehenden Streifeneffekts sehr deutlich und unangenehm
+ bewusst. Der Graueindruck der Seite ist in diesem Fall gestört. Dennoch
+ dürfen bei großem Durchschuss die Zeilen länger sein.
+
+ Auf der Suche nach konkreten Werten für gute
+ Zeilenlängen\Index[indexmain]{Zeilenlaenge=Zeilenlänge} findet man in der
+ Literatur je nach Autor unterschiedliche Angaben. Teilweise ist dies auch in
+ der Muttersprache des Autors begründet. Das Auge springt nämlich
+ üblicherweise von Wort zu Wort, wobei kurze Wörter diese Aufgabe
+ erleichtern. Über alle Sprachen und Schriftarten hinweg kann man sagen, dass
+ eine Zeilenlänge von 60 bis 70 Zeichen, einschließlich Leer- und
+ Satzzeichen, einen brauchbaren Kompromiss darstellt. Ein gut gewählter
+ Durchschuss wird dabei vorausgesetzt. Bei den Voreinstellungen von \LaTeX{}
+ braucht man sich über Letzteres normalerweise keine Sorgen zu
+ machen. Größere Zeilenlängen darf man nur Gewohnheitslesern zumuten, die
+ täglich viele Stunden lesend zubringen. Aber auch dann sind Zeilenlängen
+ jenseits von 80 Zeichen unzumutbar. In jedem Fall ist dann der Durchschuss
+ anzupassen. 5\,\% bis 10\,\% zusätzlich sind dabei als Faustregel
+ empfehlenswert. Bei Schriften wie Palatino, die bereits bei einer normalen
+ Zeilenlänge nach 5\,\% mehr Durchschuss verlangt, können es auch mehr sein.
+
+ Bevor wir uns an die konkrete Konstruktion machen, fehlen jetzt nur noch
+ Kleinigkeiten, die man wissen sollte. \LaTeX{} beginnt die erste Zeile des
+ Textbereichs einer Seite nicht am oberen Rand des Textbereichs, sondern
+ setzt die Grundlinie der Zeile mit einem definierten Mindestabstand zum
+ oberen Rand des Textbereichs. Des Weiteren verfügt \LaTeX{} über die beiden
+ Befehle \DescRef{maincls.cmd.raggedbottom}\IndexCmd{raggedbottom} und
+ \DescRef{maincls.cmd.flushbottom}\IndexCmd{flushbottom}. Der erste dieser
+ Befehle legt fest, dass die letzte Zeile einer jeden Seite dort liegen soll,
+ wo sie eben zu liegen kommt. Das kann dazu führen, dass sich die Position
+ der letzten Zeile von Seite zu Seite vertikal um nahezu eine Zeile verändern
+ kann -- bei Zusammentreffen des Seitenendes mit Überschriften, Abbildungen,
+ Tabellen oder Ähnlichem auch mehr. Im doppelseitigen Druck ist das in der
+ Regel unerwünscht. Mit dem zweiten Befehl,
+ \DescRef{maincls.cmd.flushbottom}, wird hingegen festgelegt, dass die letzte
+ Zeile immer am unteren Rand des Textbereichs zu liegen kommt. Um diesen
+ vertikalen Ausgleich zu erreichen, muss \LaTeX{} gegebenenfalls dehnbare
+ vertikale Abstände über das erlaubte Maß hinaus strecken. Ein solcher
+ Abstand ist beispielsweise der Absatzabstand. Dies gilt in der Regel auch,
+ wenn man gar keinen Absatzabstand verwendet. Um nicht bereits auf normalen
+ Seiten, auf denen der Absatzabstand das einzige dehnbare vertikale Maß
+ darstellt, eine Dehnung zu erzwingen, sollte die Höhe des Textbereichs ein
+ Vielfaches der Textzeilenhöhe zuzüglich des Abstandes der ersten Zeile vom
+ oberen Rand des Textbereichs sein.
+
+\iffalse% Umbruchkorrektur
+ Damit sind alle Grundlagen der Satzspiegelberechnung, die bei
+ {\KOMAScript} eine Rolle spielen, erklärt.
+\else
+ Soweit die Grundlagen.
+\fi
+\iffalse% Umbruchkorrektur
+ Es folgen die beiden von \KOMAScript{} angebotenen Konstruktionen.
+\else
+\iffalse% Umbruchkorrektur
+ Wir können also mit den konkreten Konstruktionen beginnen.
+\else
+ In den folgenden beiden Abschnitten werden die von {\KOMAScript} angebotenen
+ Konstruktionen im Detail vorgestellt.
+\fi
+\fi
+\end{Explain}
+
+
+\section{Satzspiegelkonstruktion durch Teilung}
+\seclabel{divConstruction}
+
+\begin{Explain}
+ Der einfachste Weg, um zu erreichen, dass der Textbereich dasselbe
+ Seitenverhältnis aufweist wie die Seite, ist folgender:%
+ \begin{itemize}
+ \item Zunächst zieht man an der Innenseite des Papiers den Teil
+ \Var{BCOR}\important{\Var{BCOR}}, der für die
+ Bindekorrektur\Index{Bindekorrektur} benötigt wird, ab und teilt die
+ restliche Seite vertikal in eine Anzahl \Var{DIV} gleich hoher Streifen.
+ \item Dann teilt man die Seite horizontal in die gleiche Anzahl
+ \Var{DIV}\important{\Var{DIV}} gleich breiter Streifen.
+ \item Nun verwendet man den obersten horizontalen Streifen als oberen und
+ die beiden untersten horizontalen Streifen als unteren Rand. Im
+ doppelseitigen Druck verwendet man außerdem den innersten vertikalen
+ Streifen als inneren und die beiden äußersten vertikalen Streifen als
+ äußeren Rand.
+ \item Zum inneren Rand gibt man dann noch \Var{BCOR} hinzu.
+ \end{itemize}
+ Was nun innerhalb der Seite noch übrig bleibt, ist der
+ Textbereich.\Index{Text>Bereich} Die Breite bzw. Höhe der Ränder und des
+ Textbereichs resultiert damit automatisch aus der Anzahl \Var{DIV} der
+ Streifen. Da für die Ränder insgesamt jeweils drei Streifen benötigt werden,
+ muss \Var{DIV} zwingend größer als drei sein. Damit der Satzspiegel
+ horizontal und vertikal jeweils mindestens doppelt so viel Platz wie die
+ Ränder einnimmt, sollte \Var{DIV} sogar mindestens 9 betragen. Mit diesem
+ Wert ist die Konstruktion auch als \emph{klassische Neunerteilung} bekannt
+ (siehe \autoref{fig:typearea.nineparts}).
+
+ \begin{figure}
+% \centering
+ \KOMAoption{captions}{bottombeside}%
+ \setcapindent{0pt}%
+ \setlength{\columnsep}{.6em}%
+ \begin{captionbeside}[{%
+ Doppelseite mit der Rasterkonstruktion für die klassische
+ Neunerteilung nach Abzug einer Bindekorrektur%
+ }]{%
+ \label{fig:typearea.nineparts}%
+ \hspace{0pt plus 1ex}%
+ Doppelseite mit der Rasterkonstruktion für die klassische
+ Neunerteilung nach Abzug einer Bindekorrektur%
+ }
+ [l]
+ \setlength{\unitlength}{.25mm}%
+ \definecolor{komalight}{gray}{.75}%
+ \definecolor{komamed}{gray}{.6}%
+ \definecolor{komadark}{gray}{.3}%
+ \begin{picture}(420,297)
+ % BCOR
+ \put(198,0){\color{komalight}\rule{24\unitlength}{297\unitlength}}
+ \multiput(198,2)(0,20){15}{\thinlines\line(0,1){10}}
+ \multiput(222,2)(0,20){15}{\thinlines\line(0,1){10}}
+ % Das Papier
+ \put(0,0){\thicklines\framebox(420,297){}}
+% \put(210,0){\thicklines\framebox(210,297){}}
+ % Der Satzspiegel
+ \put(44,66){\color{komamed}\rule{132\unitlength}{198\unitlength}}
+ \put(244,66){\color{komamed}\rule{132\unitlength}{198\unitlength}}
+ % Hilfslinien
+ \multiput(0,33)(0,33){8}{\thinlines\line(1,0){198}}
+ \multiput(222,33)(0,33){8}{\thinlines\line(1,0){198}}
+ \multiput(22,0)(22,0){8}{\thinlines\line(0,1){297}}
+ \multiput(244,0)(22,0){8}{\thinlines\line(0,1){297}}
+ % Beschriftung
+ \put(198,0){\color{white}\makebox(24,297)[c]{%
+ \rotatebox[origin=c]{-90}{Bindekorrektur}}}
+ \put(44,66){\color{white}\makebox(132,198)[c]{Satzspiegel links}}
+ \put(244,66){\color{white}\makebox(132,198)[c]{Satzspiegel rechts}}
+ % Kästchennummern
+ \makeatletter
+ \multiput(1,27)(0,33){9}{\footnotesize\makebox(0,0)[l]{\the\@multicnt}}
+ \multiput(177,291)(-22,0){9}{%
+ \footnotesize\makebox(0,0)[l]{\the\@multicnt}}
+ \multiput(419,27)(0,33){9}{%
+ \footnotesize\makebox(0,0)[r]{\the\@multicnt}}
+ \multiput(243,291)(22,0){8}{%
+ \footnotesize\makebox(0,0)[r]{\the\numexpr\@multicnt+1\relax}}
+ \makeatother
+ \end{picture}
+ \end{captionbeside}
+% \caption{Doppelseite mit der Rasterkonstruktion für die klassische
+% Neunerteilung nach Abzug einer Bindekorrektur}
+% \label{fig:typearea.nineparts}
+ \end{figure}
+
+ Bei {\KOMAScript} ist diese Art der Konstruktion im Paket \Package{typearea}
+ realisiert, wobei der untere Rand weniger als eine Textzeile kleiner
+ ausfallen kann, um die im vorherigen Abschnitt erwähnte Nebenbedingung für
+ die Satzspiegelhöhe einzuhalten und damit die dort erwähnte Problematik in
+ Bezug auf \DescRef{maincls.cmd.flushbottom} zu mindern. Dabei sind für
+ A4-Papier je nach Schriftgröße unterschiedliche Werte für \Var{DIV}
+ voreingestellt, die \autoref{tab:typearea.div},
+ \autopageref{tab:typearea.div} zu entnehmen sind. Bei Verzicht auf
+ Bindekorrektur, wenn also \Var{BCOR} = 0\Unit{pt} gilt, ergeben sich in etwa
+ die Satzspiegelmaße aus \autoref{tab:typearea.typearea},
+ \autopageref{tab:typearea.typearea}.
+
+ Neben den voreingestellten Werten kann man \Var{BCOR} und \Var{DIV} direkt
+ beim Laden des Pakets als Option angeben (siehe
+ \autoref{sec:typearea.typearea} ab
+ \autopageref{sec:typearea.typearea}). Zusätzlich existiert ein Befehl, mit
+ dem man einen Satzspiegel explizit berechnen kann und dem man die beiden
+ Werte als Parameter übergibt (\iftrue% Umbruchoptimierung!!!!
+ siehe ebenfalls
+ \autoref{sec:typearea.typearea}, \fi\DescPageRef{typearea.cmd.typearea}).
+
+ Das \Package{typearea}-Paket bietet außerdem die Möglichkeit, den optimalen
+ \Var{DIV}-Wert automatisch zu bestimmen. Dieser ist von der Schrift und dem
+ Durchschuss abhängig, der zum Zeitpunkt der Satzspiegelberechnung
+ eingestellt ist%
+ \iftrue% Umbruchoptimierung!!!!
+ . Siehe hierzu ebenfalls \autoref{sec:typearea.typearea}, \else\
+ (\fi\DescPageRef{typearea.option.DIV.calc}\iftrue)\fi.%
+\end{Explain}%
+
+
+\section{Satzspiegelkonstruktion durch Kreisschlagen}
+\seclabel{circleConstruction}
+
+\begin{Explain}
+ Neben der zuvor beschriebenen Satzspiegelkonstruktion\Index{Satzspiegel}
+ gibt es in der Literatur noch eine eher klassische oder sogar
+ mittelalterliche Methode. Bei diesem Verfahren will man die gleichen Werte
+ nicht nur in Form des Seitenverhältnisses wiederfinden; man geht außerdem
+ davon aus, dass das Optimum dann erreicht wird, wenn die Höhe des
+ Textbereichs der Breite der Seite entspricht. Das genaue Verfahren ist
+ beispielsweise in \cite{JTsch87} nachzulesen.
+
+ Als Nachteil dieses spätmittelalterlichen Buchseitenkanons ergibt sich, dass
+ die Breite des Textbereichs nicht mehr von der Schriftart abhängt. Es wird
+ also nicht mehr der zur Schrift passende Textbereich gewählt, stattdessen
+ muss der Autor oder Setzer 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 einer speziellen, symbolischen Angabe 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
+% Umbruchkorrekturtext
+ Bei Wahl einer guten Schrift stimmt dieses Ergebnis nicht selten mit der
+ Suche nach dem optimalen \Var{DIV}-Wert überein. Siehe hierzu ebenfalls
+ \autoref{sec:typearea.typearea}, \DescPageRef{typearea.option.DIV.calc}.
+%
+\fi
+\end{Explain}
+
+\LoadCommonFile{options} % \section{Frühe oder späte Optionenwahl}
+
+\LoadCommonFile{compatibility} % \section{Kompatibilität zu früheren Versionen von \KOMAScript}
+
+\section{Einstellung des Satzspiegels und der \texorpdfstring{Seitenauf"|teilung}{Seitenaufteilung}}
+\seclabel{typearea}
+
+Das Paket \Package{typearea} bietet zwei unterschiedliche
+Benutzerschnittstellen, um auf die Satzspiegelkonstruktion Einfluss zu
+nehmen. Die wichtigste Möglichkeit ist die Angabe von Optionen. Wie
+im vorherigen Abschnitt erwähnt, können die Optionen dabei auf
+unterschiedlichen Wegen gesetzt werden.
+
+In\textnote{Hinweis!} diesem Abschnitt wird die Klasse \Class{protokol}
+verwendet werden. Es handelt sich dabei nicht um eine \KOMAScript-Klasse,
+sondern um eine hypothetische Klasse. Diese\iffree{ Anleitung}{s Buch} geht
+von dem Idealfall aus, dass für jede Aufgabe eine dafür passende Klasse zur
+Verfügung steht.
+
+
+\begin{Declaration}
+ \OptionVName{BCOR}{Korrektur}
+\end{Declaration}%
+Mit Hilfe der Option
+\OptionVName{BCOR}{Korrektur}\ChangedAt{v3.00}{\Package{typearea}} geben Sie
+den absoluten Wert der
+Bindekorrektur\Index{Bindekorrektur}\textnote{Bindekorrektur} an, also die
+Breite des Bereichs, der durch die Bindung von der Papierbreite verloren
+geht. Dieser Wert wird in der Satzspiegelkonstruktion automatisch
+berücksichtigt und bei der Ausgabe wieder dem inneren beziehungsweise linken
+Rand zugeschlagen. Als \PName{Korrektur} können Sie jede von \TeX{}
+verstandene Maßeinheit angeben.
+
+\begin{Example}
+ Angenommen, Sie erstellen einen Finanzbericht. Das Ganze soll
+ einseitig in A4 gedruckt und anschließend in eine Klemmmappe
+ geheftet werden. Die Klemme der Mappe verdeckt 7,5\Unit{mm}.
+ Der Papierstapel ist sehr dünn, deshalb gehen beim Knicken und
+ Blättern durchschnittlich höchstens weitere 0,75\Unit{mm}
+ verloren. Sie schreiben dann also:
+\begin{lstcode}
+ \documentclass[a4paper]{report}
+ \usepackage[BCOR=8.25mm]{typearea}
+\end{lstcode}
+ mit \OptionValue{BCOR}{8.25mm} als Option für \Package{typearea} oder
+\begin{lstcode}
+ \documentclass[a4paper,BCOR=8.25mm]{report}
+ \usepackage{typearea}
+\end{lstcode}
+ zur Angabe von \OptionValue{BCOR}{8.25mm} als globale Option.
+
+ Bei Verwendung einer \KOMAScript-Klasse kann das explizite Laden von
+ \Package{typearea} entfallen:
+\begin{lstcode}
+ \documentclass[BCOR=8.25mm]{scrreprt}
+\end{lstcode}
+ Die Option \Option{a4paper} konnte bei \Class{scrreprt} entfallen, da diese
+ der Voreinstellung bei allen \KOMAScript-Klassen entspricht.
+
+ Setzt man die Option erst später auf einen neuen Wert, verwendet man also
+ beispielsweise
+\begin{lstcode}
+ \documentclass{scrreprt}
+ \KOMAoptions{BCOR=8.25mm}
+\end{lstcode}
+ so werden bereits beim Laden der Klasse \Class{scrreprt}
+ Standardeinstellungen vorgenommen. Beim Ändern der Einstellung mit Hilfe
+ einer der Anweisung \DescRef{\LabelBase.cmd.KOMAoptions} oder
+ \DescRef{\LabelBase.cmd.KOMAoption} wird dann automatisch ein neuer
+ Satzspiegel mit neuen Randeinstellungen berechnet.
+\end{Example}
+
+Bitte beachten Sie unbedingt\textnote{Achtung!}, dass diese Option bei
+Verwendung einer der \KOMAScript-Klassen wie im Beispiel als Klassenoption
+oder per \DescRef{\LabelBase.cmd.KOMAoptions} beziehungsweise
+\DescRef{\LabelBase.cmd.KOMAoption} nach dem Laden der Klasse übergeben werden
+muss. Weder sollte das Paket \Package{typearea} bei Verwendung einer
+\KOMAScript-Klasse explizit per \DescRef{\LabelBase.cmd.usepackage} geladen,
+noch die Option dabei als optionales Argument angegeben
+werden. Wird\textnote{automatische Neuberechnung} die Option per
+\DescRef{\LabelBase.cmd.KOMAoptions} oder \DescRef{\LabelBase.cmd.KOMAoption}
+nach dem Laden des Pakets geändert, so werden Satzspiegel und Ränder
+automatisch neu berechnet.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{DIV}{Faktor}
+\end{Declaration}%
+Mit Hilfe der Option
+\OptionVName{DIV}{Faktor}\ChangedAt{v3.00}{\Package{typearea}} wird
+festgelegt, in wie viele Streifen die Seite horizontal und vertikal bei der
+Satzspiegelkonstruktion eingeteilt wird. Die genaue Konstruktion ist
+\autoref{sec:typearea.divConstruction} zu entnehmen. Wichtig zu wissen ist,
+dass gilt: Je größer der \PName{Faktor}, desto größer wird der Textbereich und
+desto kleiner die Ränder. Als \PName{Faktor} kann jeder ganzzahlige Wert ab 4
+verwendet werden. Bitte beachten Sie jedoch, dass sehr große Werte dazu führen
+können, dass Randbedingungen der Satzspiegelkonstruktion, je nach Wahl der
+weiteren Optionen, verletzt werden. So kann die Kopfzeile im Extremfall auch
+außerhalb der Seite liegen. Bei Verwendung der Option
+\OptionVName{DIV}{Faktor} sind Sie für die Einhaltung der Randbedingungen
+sowie eine nach typografischen Gesichtspunkten günstige Zeilenlänge selbst
+verantwortlich.
+
+In \autoref{tab:typearea.typearea} finden Sie für das Seitenformat A4
+ohne Bindekorrektur die aus einigen \Var{DIV}-Faktoren
+resultierenden Satzspiegelgrößen. Dabei werden die weiteren von der
+Schriftgröße abhängigen Nebenbedingungen nicht berücksichtigt.
+
+\begin{table}
+% \centering
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+% \caption
+ [{Satzspiegelma"se in Abh"angigkeit von \Var{DIV} bei A4}]
+ {\label{tab:typearea.typearea}Satzspiegelma"se in Abh"angigkeit von \Var{DIV}
+ bei A4 ohne Berücksichtigung von \Length{topskip} oder \Var{BCOR}}
+ [l]
+ \begin{tabular}[t]{ccccc}
+ \toprule
+ &
+ \multicolumn{2}{c}{Satzspiegel} & \multicolumn{2}{c}{R"ander}\\
+ %\raisebox{1.5ex}[0pt]{
+ \Var{DIV}
+ %}
+ & Breite & H"ohe & oben & innen \\
+ \midrule
+ 6 & 105,00 & 148,50 & 49,50 & 35,00 \\
+ 7 & 120,00 & 169,71 & 42,43 & 30,00 \\
+ 8 & 131,25 & 185,63 & 37,13 & 26,25 \\
+ 9 & 140,00 & 198,00 & 33,00 & 23,33 \\
+ 10 & 147,00 & 207,90 & 29,70 & 21,00 \\
+ 11 & 152,73 & 216,00 & 27,00 & 19,09 \\
+ 12 & 157,50 & 222,75 & 24,75 & 17,50 \\
+ 13 & 161,54 & 228,46 & 22,85 & 16,15 \\
+ 14 & 165,00 & 233,36 & 21,21 & 15,00 \\
+ 15 & 168,00 & 237,60 & 19,80 & 14,00 \\
+ \bottomrule
+ \multicolumn{5}{r}{\small (alle Längen in mm)}
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+\begin{Example}
+ Angenommen, Sie schreiben ein Sitzungsprotokoll. Sie verwenden dafür die
+ Klasse \Class{protokol}. Das Ganze soll doppelseitig werden. In Ihrer Firma
+ wird die Schriftart Bookman in 12\Unit{pt} verwendet. Diese Schriftart, die
+ zu den Standard-PostScript-Schriften gehört, wird in {\LaTeX} mit der
+ Anweisung \verb|\usepackage{bookman}| aktiviert. Die Schriftart Bookman
+ läuft sehr weit, das heißt, die einzelnen Zeichen sind im Verhältnis zur
+ Höhe relativ breit. Deshalb ist Ihnen die Voreinstellung für den
+ \Var{DIV}-Wert in \Package{typearea} zu gering. Statt einem Wert von 12 sind
+ Sie nach gründlichem Studium dieses Kapitels einschließlich der
+ weiterführenden Abschnitte überzeugt, dass der Wert 15 angebracht ist. Das
+ Protokoll wird nicht gebunden, sondern gelocht und in einen Ordner
+ abgeheftet. Eine Bindekorrektur ist deshalb nicht notwendig. Sie schreiben
+ also:
+\begin{lstcode}
+ \documentclass[a4paper,twoside]{protokol}
+ \usepackage{bookman}
+ \usepackage[DIV=15]{typearea}
+\end{lstcode}
+ Als Sie fertig sind, macht man Sie darauf aufmerksam, dass die
+ Protokolle neuerdings gesammelt und am Quartalsende alle zusammen
+ als Buch gebunden werden. Die Bindung erfolgt als
+ einfache Leimbindung, weil den Band ohnehin nie wieder jemand
+ anschaut und er nur wegen ISO\,9000 angefertigt wird. Für die Bindung
+ einschließlich Biegefalz werden durchschnittlich 12\Unit{mm}
+ benötigt. Sie ändern die Optionen von \Package{typearea} also
+ entsprechend ab und verwenden die Klasse für Protokolle nach
+ ISO\,9000:
+\begin{lstcode}
+ \documentclass[a4paper,twoside]{iso9000p}
+ \usepackage{bookman}
+ \usepackage[DIV=15,BCOR=12mm]{typearea}
+\end{lstcode}
+ Natürlich können Sie auch hier wieder eine \KOMAScript-Klasse
+ verwenden:
+\begin{lstcode}
+ \documentclass[twoside,DIV=15,BCOR=12mm]{scrartcl}
+ \usepackage{bookman}
+\end{lstcode}
+\iftrue% Umbruchoptimierung!!!!
+ Option \Option{a4paper} entspricht der Voreinstellung und konnte daher
+ entfallen.
+\else
+ Die Option \Option{a4paper} konnte bei der Klasse \Class{scrartcl} entfallen,
+ da diese der Voreinstellung bei allen \KOMAScript-Klassen entspricht.
+\fi
+\end{Example}
+
+Bitte beachten Sie unbedingt\textnote{Achtung!}, dass die Option \Option{DIV}
+bei Verwendung einer der \KOMAScript-Klassen wie im Beispiel als Klassenoption
+oder per \DescRef{\LabelBase.cmd.KOMAoptions} beziehungsweise
+\DescRef{\LabelBase.cmd.KOMAoption} nach dem Laden der Klasse übergeben werden
+muss. Weder sollte das Paket \Package{typearea} bei Verwendung einer
+\KOMAScript-Klasse explizit per \DescRef{\LabelBase.cmd.usepackage} geladen,
+noch die Option dabei als optionales Argument angegeben
+werden. Wird\textnote{automatische Neuberechnung} die Option per
+\DescRef{\LabelBase.cmd.KOMAoptions} oder \DescRef{\LabelBase.cmd.KOMAoption}
+nach dem Laden des Pakets geändert, so werden Satzspiegel und Ränder
+automatisch neu berechnet.
+
+\begin{Declaration}
+ \OptionValue{DIV}{calc}
+ \OptionValue{DIV}{classic}
+\end{Declaration}
+Wie\ChangedAt{v3.00}{\Package{typearea}} bereits in
+\autoref{sec:typearea.divConstruction} erwähnt, gibt es nur für das
+Papierformat A4 feste Voreinstellungen für den \Var{DIV}-Wert. Diese sind
+\autoref{tab:typearea.div} zu entnehmen. Solche festen Werte haben allerdings
+den Nachteil\textnote{Achtung!}, dass sie die Laufweite der verwendeten
+Schrift nicht berücksichtigen. Das kann bei A4 und recht schmalen Schriften
+sehr rasch zu unangenehm hoher Zeichenzahl je Zeile führen. Siehe hierzu die
+Ü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
+\OptionValue{DIV}{calc}\important{\OptionValue{DIV}{calc}} anstelle von
+\OptionVNameRef{\LabelBase}{DIV}{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
+ \KOMAoptions{captions=topbeside}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ %\caption
+ [{\PName{DIV}-Voreinstellungen f"ur A4}]
+ {\label{tab:typearea.div}\PName{DIV}-Voreinstellungen f"ur A4}
+ [l]
+ \begin{tabular}[t]{lccc}
+ \toprule
+ Grundschriftgr"o"se: & 10\Unit{pt} & 11\Unit{pt} & 12\Unit{pt} \\
+ \Var{DIV}: & 8 & 10 & 12 \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+Die in \autoref{sec:typearea.circleConstruction} erwähnte klassische
+Konstruktion, der mittelalterliche Buchseitenkanon, ist ebenfalls auswählbar.
+Verwenden Sie in diesem Fall anstelle von
+\OptionVNameRef{\LabelBase}{DIV}{Faktor} oder \OptionValue{DIV}{calc} einfach
+\OptionValue{DIV}{classic}\important{\OptionValue{DIV}{classic}}. Es wird dann
+ein \Var{DIV}-Wert ermittelt, der eine möglichst gute Näherung an den
+mittelalterlichen Buchseitenkanon darstellt.
+
+\begin{Example}
+ In dem bei der Option \OptionVNameRef{\LabelBase}{DIV}{Faktor} aufgeführten
+ Beispiel mit der Schriftart Bookman gab es ja genau das Problem, dass man
+ einen zur Schriftart besser passenden \Var{DIV}-Wert haben wollte. Man
+ könnte also in Abwandlung des ersten Beispiels auch einfach die Ermittlung
+ dieses Wertes \Package{typearea} überlassen:
+\begin{lstcode}
+ \documentclass[a4paper,twoside]{protokol}
+ \usepackage{bookman}
+ \usepackage[DIV=calc]{typearea}
+\end{lstcode}
+\end{Example}
+\iffree{\par%
+ Bitte beachten Sie unbedingt\textnote{Achtung!}, dass diese Option bei
+ Verwendung einer der \KOMAScript-Klassen %
+ \iftrue wie im Beispiel \fi%
+ als Klassenoption oder per \DescRef{\LabelBase.cmd.KOMAoptions}
+ beziehungsweise \DescRef{\LabelBase.cmd.KOMAoption} nach dem Laden der
+ Klasse übergeben werden muss. Weder sollte das Paket \Package{typearea} bei
+ Verwendung einer \KOMAScript-Klasse explizit per
+ \DescRef{\LabelBase.cmd.usepackage} geladen, noch die Option dabei als
+ optionales Argument angegeben werden. Wird die Option per
+ \DescRef{\LabelBase.cmd.KOMAoptions} oder
+ \DescRef{\LabelBase.cmd.KOMAoption} nach dem Laden des Pakets geändert, so
+ werden Satzspiegel und Ränder automatisch neu berechnet.%
+}{%
+ \vskip-\dp\strutbox% Wegen Code im Beispiel am Ende
+}%
+%
+\EndIndexGroup
+
+\begin{Declaration}
+ \OptionValue{DIV}{current}
+ \OptionValue{DIV}{last}
+\end{Declaration}
+Wenn\ChangedAt{v3.00}{\Package{typearea}} Sie bis hier die Beispiele aufmerksam
+verfolgt haben, wissen Sie eigentlich bereits, wie man die Berechnung eines
+\Var{DIV}-Wertes in Abhängigkeit von der gewählten Schrift erreicht, wenn eine
+\KOMAScript-Klasse zusammen mit einem Schriftpaket verwendet wird.
+
+\begin{Explain}
+ Das Problem dabei ist, dass die \KOMAScript-Klasse das Paket
+ \Package{typearea} bereits selbst lädt. Die Übergabe der Optionen als
+ optionale Argumente von \DescRef{\LabelBase.cmd.usepackage} ist also nicht
+ möglich. Es würde auch nichts nützen, die Option \OptionValue{DIV}{calc} als
+ optionales Argument von \DescRef{\LabelBase.cmd.documentclass}
+ anzugeben. Diese Option würde direkt beim Laden des Pakets
+ \Package{typearea} ausgewertet. Damit würden Satzspiegel und Ränder für die
+ \LaTeX-Standardschrift und nicht für die später geladene Schrift berechnet.
+
+ Selbstverständlich ist es möglich, mit \DescRef{\LabelBase.cmd.KOMAoptions}%
+ \PParameter{\OptionValueRef{\LabelBase}{DIV}{calc}} oder
+ \DescRef{\LabelBase.cmd.KOMAoption}%
+ \PParameter{\DescRef{\LabelBase.option.DIV}}\PParameter{calc} nach dem Laden
+ des Schriftpakets Satzspiegel und Ränder neu berechnen zu lassen. Dabei wird
+ dann über den Wert \PValue{calc} direkt ein \Var{DIV}-Wert für eine gute
+ Zeilenlänge eingefordert.
+
+ Da es aber häufig praktischer ist, die Einstellung für die Option
+ \Option{DIV} nicht erst nach dem Laden der Schrift vorzunehmen, sondern an
+ herausgehobener Stelle, beispielsweise beim Laden der Klasse, bietet
+ \Package{typearea} zwei weitere symbolische Werte für diese Option.
+\end{Explain}
+
+Mit \OptionValue{DIV}{current}\ChangedAt{v3.00}{\Package{typearea}}%
+\important{\OptionValue{DIV}{current}} wird eine Neuberechnung von Satzspiegel
+und Rändern angestoßen, wobei genau der \Var{DIV}-Wert verwendet wird, der
+aktuell eingestellt ist. Dies ist weniger für die Neuberechnung des
+Satzspiegels nach Wahl einer anderen Grundschrift von Interesse. Vielmehr ist
+das dann nützlich, wenn man etwa nach Änderung des Durchschusses bei
+Beibehaltung des Teilers \Var{DIV} die Randbedingung sicherstellen will, dass
+\Length{textheight} abzüglich \Length{topskip} ein Vielfaches von
+\Length{baselineskip} sein sollte.
+
+Mit \OptionValue{DIV}{last}\ChangedAt{v3.00}{\Package{typearea}}%
+\important{\OptionValue{DIV}{last}} wird eine Neuberechnung von Satzspiegel
+und Rändern angestoßen, wobei genau dieselbe Einstellung wie bei der letzten
+Berechnung verwendet wird.
+
+\begin{Example}
+ Gehen wir wieder davon aus, dass für die Schriftart Bookman ein Satzspiegel
+ mit guter Zeilenlänge berechnet werden soll. Gleichzeitig wird eine
+ \KOMAScript-Klasse verwendet. Dies ist mit dem symbolischen Wert
+ \PValue{last} und der Anweisung \DescRef{\LabelBase.cmd.KOMAoptions} sehr
+ einfach möglich:
+\begin{lstcode}
+ \documentclass[BCOR=12mm,DIV=calc,twoside]
+ {scrartcl}
+ \usepackage{bookman}
+ \KOMAoptions{DIV=last}
+\end{lstcode}
+ Wird später entschieden, dass ein anderer \Var{DIV}-Wert
+ verwendet werden soll, so muss nur die Einstellung im optionalen Argument
+ von \DescRef{\LabelBase.cmd.documentclass} geändert werden.
+\end{Example}
+
+Eine Zusammenfassung aller möglichen symbolischen Werte für die Option
+\Option{DIV} finden Sie in \autoref{tab:symbolicDIV}. Es wird an dieser Stelle
+darauf hingewiesen, dass auch die Verwendung des Pakets
+\Package{fontenc}\IndexPackage{fontenc} dazu führen kann, dass \LaTeX{} eine
+andere Schrift lädt.
+
+\begin{table}
+ \caption[{%
+ Symbolische Werte für Option \DescRef{typearea.option.DIV} und das
+ \PName{DIV}-Argument von \DescRef{typearea.cmd.typearea}%
+ }]{%
+ Mögliche symbolische Werte für die Option \DescRef{typearea.option.DIV}
+ oder das \PName{DIV}-Argument der Anweisung
+ \DescRef{typearea.cmd.typearea}\OParameter{BCOR}\Parameter{DIV}%
+ }
+ \label{tab:symbolicDIV}
+ \begin{desctabular}
+ \pventry{areaset}{Satzspiegel neu
+ anordnen.\IndexOption{DIV~=\textKValue{areaset}}}%
+ \pventry{calc}{Satzspiegelberechnung einschließlich Ermittlung eines guten
+ \Var{DIV}-Wertes erneut
+ durchführen.\IndexOption{DIV~=\textKValue{calc}}}%
+ \pventry{classic}{Satzspiegelberechnung nach dem mittelalterlichen
+ Buchseitenkanon (Kreisberechnung) erneut
+ durchführen.\IndexOption{DIV~=\textKValue{classic}}}%
+ \pventry{current}{Satzspiegelberechnung mit dem aktuell gültigen
+ \Var{DIV}-Wert erneut
+ durchführen.\IndexOption{DIV~=\textKValue{current}}}%
+ \pventry{default}{Satzspiegelberechnung mit dem Standardwert für das
+ aktuelle Seitenformat und die aktuelle Schriftgröße erneut durchführen.
+ Falls kein Standardwert existiert, \PValue{calc}
+ anwenden.\IndexOption{DIV~=\textKValue{default}}}%
+ \pventry{last}{Satzspiegelberechnung mit demselben \PName{DIV}-Argument,
+ das beim letzten Aufruf angegeben wurde, erneut
+ durchführen.\IndexOption{DIV~=\textKValue{last}}}%
+ \end{desctabular}
+\end{table}
+
+Häufig\textnote{Achtung!} wird die Satzspiegelneuberechnung im Zusammenhang
+mit der Ver"-änderung des Zeilenabstandes
+(\emph{Durchschuss})\Index{Durchschuss} benötigt. Da der Satzspiegel unbedingt
+so berechnet werden sollte, dass eine ganze Anzahl an Zeilen in den
+Textbereich passt, muss bei Verwendung eines anderen Durchschusses als des
+normalen der Satzspiegel für diesen Zeilenabstand neu berechnet werden.
+
+\begin{Example}
+ Angenommen, für eine Diplomarbeit wird die Schriftgröße
+ 10\Unit{pt} bei eineinhalbzeiligem Satz zwingend gefordert. {\LaTeX}
+ setzt normalerweise bei 10\Unit{pt} mit 2\Unit{pt} Durchschuss,
+ also 1,2-zeilig. Deshalb muss als zusätzlicher Dehnfaktor der Wert
+ 1,25 verwendet werden. Gehen wir außerdem davon aus, dass eine
+ Bindekorrektur von 12\Unit{mm} benötigt wird. Dann könnte die Lösung
+ dieses Problems wie folgt aussehen:
+\begin{lstcode}
+ \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]
+ {scrreprt}
+ \linespread{1.25}
+ \KOMAoptions{DIV=last}
+\end{lstcode}\IndexCmd{linespread}
+ 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 %
+\iftrue % Umbruchkorrektur
+ auch tatsächlich
+\fi %
+ für die Neuberechnung verwendet wird.
+
+ Das gleiche Beispiel sähe unter Verwendung des
+ \Package{setspace}-Pakets\IndexPackage{setspace}%
+ \important{\Package{setspace}}
+ (siehe \cite{package:setspace}) wie folgt aus:
+\begin{lstcode}
+ \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]
+ {scrreprt}
+ \usepackage[onehalfspacing]{setspace}
+ \KOMAoptions{DIV=last}
+\end{lstcode}
+\end{Example}
+
+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
+%
+\iftrue % 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 und außerdem auch die Verzeichnisse mit dem
+normalen Zeilenabstand gesetzt werden sollten.
+\begin{Example}
+ Ein\IndexPackage{setspace} vollständiges Beispiel wäre also:
+\begin{lstcode}
+ \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]
+ {scrreprt}
+ \usepackage[onehalfspacing]{setspace}
+ \AfterTOCHead{\singlespacing}
+ \KOMAoptions{DIV=last}
+ \begin{document}
+ \title{Titel}
+ \author{Markus Kohm}
+ \begin{spacing}{1}
+ \maketitle
+ \end{spacing}
+ \tableofcontents
+ \chapter{Ok}
+ \end{document}
+\end{lstcode}
+ Siehe hierzu auch die Anmerkungen in \autoref{sec:typearea.tips}. Die
+ Anweisung \DescRef{tocbasic.cmd.AfterTOCHead}\IndexCmd{AfterTOCHead} wird in
+ \autoref{part:forExperts}, \autoref{cha:tocbasic} auf
+ \DescPageRef{tocbasic.cmd.AfterTOCHead} vorgestellt.
+\end{Example}
+Außerdem sei darauf hingewiesen, dass Änderungen am Zeilenabstand auch
+Auswirkungen auf Kopf und Fuß der Seite haben können. Dies kann sich
+beispielsweise bei Verwendung von \Package{scrlayer-scrpage} auswirken und man
+muss dann selbst entscheiden, ob man dort lieber den normalen Durchschuss oder
+den veränderten haben will. Siehe dazu auch Option
+\DescRef{scrlayer.option.singlespacing} in \autoref{cha:scrlayer}%
+\important{\hyperref[cha:scrlayer]{\Package{scrlayer}}}%
+\IndexPackage{scrlayer}\IndexOption{singlespacing} auf
+\DescPageRef{scrlayer.option.singlespacing}.
+
+Bitte beachten Sie unbedingt\textnote{Achtung!}, dass diese Optionen auch zur
+Verwendung mit \DescRef{\LabelBase.cmd.KOMAoptions} oder
+\DescRef{\LabelBase.cmd.KOMAoption} nach dem Laden des Pakets vorgesehen sind
+und dann eine\textnote{automatische Neuberechnung} automatische Neuberechnung
+von Satzspiegel und Rändern auslösen.%
+%
+\EndIndexGroup
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}
+ \Macro{recalctypearea}
+\end{Declaration}%
+\begin{Explain}
+ Wird die Option \DescRef{\LabelBase.option.DIV} oder die Option
+ \DescRef{\LabelBase.option.BCOR} nach dem Laden des Pakets
+ \Package{typearea} gesetzt, so wird intern die Anweisung \Macro{typearea}
+ aufgerufen. Dabei wird beim Setzen der Option
+ \DescRef{\LabelBase.option.DIV} für \PName{BCOR} intern der symbolische Wert
+ \PValue{current} verwendet, der aus Gründen der Vollständigkeit auch in
+ \autoref{tab:symbolicBCOR} zu finden ist. Beim Setzen der Option
+ \DescRef{\LabelBase.option.BCOR} wird für \PName{DIV} hingegen der
+ symbolische Wert \PValue{last} verwendet. Wollen Sie, dass Satzspiegel und
+ Ränder stattdessen mit dem symbolischen Wert \PValue{current} für
+ \PName{DIV} neu berechnet werden, so können Sie direkt
+ \Macro{typearea}\POParameter{current}\PParameter{current} verwenden.
+\end{Explain}
+
+\begin{table}
+ \caption[{%
+ Symbolische \PName{BCOR}-Argumente für \DescRef{typearea.cmd.typearea}%
+ }]{%
+ Mögliche symbolische \PName{BCOR}-Argumente für
+ \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}%
+ }
+ \label{tab:symbolicBCOR}
+ \begin{desctabular}
+ \pventry{current}{Satzspiegelberechnung mit dem aktuell gültigen
+ \Var{BCOR}-Wert erneut
+ durchführen.\IndexOption{BCOR~=\textKValue{current}}}
+ \end{desctabular}
+\end{table}
+
+Sollen die Werte sowohl von \PName{BCOR} als auch \PName{DIV} geändert werden,
+so ist die Verwendung von \Macro{typearea} zu empfehlen, da hierbei die Ränder
+und der Satzspiegel nur einmal neu berechnet werden. Bei
+\DescRef{\LabelBase.cmd.KOMAoptions}%
+\PParameter{\OptionVNameRef{\LabelBase}{DIV}{Faktor},%
+ \OptionVNameRef{\LabelBase}{BCOR}{Korrektur}} werden hingegen Ränder und
+Satzspiegel zunächst in Folge von Option \DescRef{\LabelBase.option.DIV} und
+dann zusätzlich durch Option \DescRef{\LabelBase.option.BCOR} neu berechnet.
+
+\begin{Explain}
+ Der Befehl \Macro{typearea} ist derzeit so definiert, dass es auch möglich
+ ist, mitten in einem Dokument den Satzspiegel zu wechseln. Dabei werden
+ allerdings Annahmen über den Aufbau des \LaTeX-Kerns gemacht und interne
+ Definitionen und Größen des \LaTeX-Kerns verändert. Da am \LaTeX-Kern nur
+ noch zur Beseitigung von Fehlern notwendige Änderungen vorgenommen werden,
+ ist die Wahrscheinlichkeit hoch, dass dies in zukünftigen Versionen von
+ \LaTeXe{} noch funktionieren wird. Eine Garantie dafür gibt es jedoch
+ nicht. Die Verwendung innerhalb des Dokuments führt außerdem immer zu einem
+ Seitenumbruch.
+\end{Explain}
+
+Da\important{\Macro{recalctypearea}} \DescRef{\LabelBase.cmd.KOMAoption}%
+\PParameter{\hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}}}%
+\PParameter{\hyperref[desc:\LabelBase.option.DIV.last]{last}} oder
+\DescRef{\LabelBase.cmd.KOMAoptions}%
+\PParameter{\OptionValueRef{\LabelBase}{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
+\Macro{recalctypearea}\ChangedAt{v3.00}{\Package{typearea}}.
+\begin{Example}
+ Wenn Ihnen die Schreibweisen
+\begin{lstcode}
+ \KOMAoptions{DIV=last}
+\end{lstcode}
+ oder
+\begin{lstcode}
+ \typearea[current]{last}
+\end{lstcode}
+ für die Neuberechnung von Satzspiegel und Rändern aufgrund der vielen
+ Sonderzeichen zu umständlich ist, können Sie einfach
+\begin{lstcode}
+ \recalctypearea
+\end{lstcode}
+ verwenden.
+\end{Example}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{twoside}{Ein-Aus-Wert}
+ \OptionValue{twoside}{semi}
+\end{Declaration}%
+Wie in \autoref{sec:typearea.basics} erklärt, hängt
+die Randverteilung davon ab, ob ein Dokument ein- oder zweiseitig gesetzt
+werden soll. Bei einseitigem Satz sind der linke und rechte Rand gleich
+breit, während bei doppelseitigem Satz der innere Randanteil einer Seite nur
+halb so groß ist wie der jeweilige äußere Rand. Um diese Unterscheidung
+vornehmen zu können, muss \Package{typearea} mit Option \Option{twoside}
+mitgeteilt werden, ob das Dokument doppelseitig gesetzt wird. Als
+\iffree{\PName{Ein-Aus-Wert}}{\PName{Wert}} kann dabei einer der Standardwerte
+für einfache Schalter aus \autoref{tab:truefalseswitch} verwendet werden. Wird
+die Option ohne Wert-Angabe verwendet, so wird der Wert
+\PValue{true}\important{\OptionValue{twoside}{true}} angenommen, also
+doppelseitiger Satz verwendet. Deaktivieren der
+Option\important{\OptionValue{twoside}{false}} führt zu einseitigem Satz.
+
+\begin{table}
+% \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}%
+ [l]
+ \begin{tabular}[t]{ll}
+ \toprule
+ Wert & Bedeutung \\
+ \midrule
+ \PValue{true} & aktiviert die Option\\
+ \PValue{on} & aktiviert die Option \\
+ \PValue{yes} & aktiviert die Option \\
+ \PValue{false}& deaktiviert die Option \\
+ \PValue{off} & deaktiviert die Option \\
+ \PValue{no} & deaktiviert die Option \\
+ \bottomrule
+ \end{tabular}
+ \end{captionbeside}
+\end{table}
+
+Außer den Werten aus \autoref{tab:truefalseswitch} kann jedoch auch noch der
+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. Eine\ChangedAt{v3.12}{\Package{typearea}} eventuelle
+Bindekorrektur (siehe Option \DescRef{\LabelBase.option.BCOR},
+\DescPageRef{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 früheren
+Version\important{\OptionValueRef{\LabelBase}{version}{3.12}} 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 %
+\iftrue % Umbruchkorrektur
+wahlweise \fi %
+als Klassenoption bei \DescRef{\LabelBase.cmd.documentclass}, als Paketoption
+bei \DescRef{\LabelBase.cmd.usepackage} oder auch nach dem Laden von
+\Package{typearea} per \DescRef{\LabelBase.cmd.KOMAoptions} oder
+\DescRef{\LabelBase.cmd.KOMAoption} gesetzt werden. Eine Verwendung dieser
+Option nach dem Laden von \Package{typearea} führt\textnote{automatische
+ Neuberechnung} automatisch zur Neuberechnung des Satzspiegels mit
+\DescRef{\LabelBase.cmd.recalctypearea} (siehe
+\DescPageRef{typearea.cmd.recalctypearea}). War vor der Option
+doppelseitiger Satz aktiv, wird noch vor der Neuberechnung auf die nächste
+ungerade Seite umbrochen.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{twocolumn}{Ein-Aus-Wert}
+\end{Declaration}%
+Für die Berechnung eines guten Satzspiegels mit Hilfe von
+\OptionValueRef{\LabelBase}{DIV}{calc} ist es erforderlich zu wissen, ob das
+Dokument ein- oder zweispaltig gesetzt wird. Da die Betrachtungen zur
+Zeilenlänge aus \autoref{sec:typearea.basics} dann für jede einzelne Spalte
+gelten, darf der Satzspiegel in doppelspaltigen Dokumenten bis zu doppelt so
+breit sein wie in einspaltigen Dokumenten.
+
+Um diese Unterscheidung vornehmen zu können, muss \Package{typearea} mit
+Option \Option{twocolumn} mitgeteilt werden, ob das Dokument doppelspaltig
+gesetzt wird. Als \PName{Ein-Aus-Wert} kann dabei einer der Standardwerte für
+einfache Schalter aus \autoref{tab:truefalseswitch} verwendet werden. Wird die
+Option ohne Wert-Angabe verwendet, so wird der Wert
+\PValue{true}\important{\OptionValue{twocolumn}{true}} angenommen, also
+doppelspaltiger Satz verwendet. Ein
+Deaktivieren der Option führt wieder zum voreingestellten
+einspaltigen Satz.
+
+Die Option kann als Klassenoption bei \DescRef{\LabelBase.cmd.documentclass},
+als Paketoption bei \DescRef{\LabelBase.cmd.usepackage} oder auch nach dem
+Laden von \Package{typearea} per \DescRef{\LabelBase.cmd.KOMAoptions} oder
+\DescRef{\LabelBase.cmd.KOMAoption} gesetzt werden. Eine Verwendung dieser
+Option nach dem Laden von \Package{typearea} führt\textnote{automatische
+ Neuberechnung} automatisch zur Neuberechnung des Satzspiegels mittels
+\DescRef{\LabelBase.cmd.recalctypearea} (siehe
+\DescPageRef{typearea.cmd.recalctypearea}).%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{headinclude}{Ein-Aus-Wert}
+ \OptionVName{footinclude}{Ein-Aus-Wert}
+\end{Declaration}%
+\begin{Explain}%
+ Bisher wurde zwar erklärt, wie die
+ Satzspiegelkonstruktion\Index{Satzspiegel} funktioniert und in welchem
+ Verhältnis einerseits die Ränder\Index{Rand} zueinander stehen, andererseits
+ der Textkörper zur Seite steht, aber eine entscheidende Frage blieb
+ ausgeklammert: Was genau ist \emph{der Rand}?
+
+ Auf den ersten Blick wirkt diese Frage trivial: Der Rand ist der Teil der
+ Seite, der oben, unten, links und rechts frei bleibt. Doch das ist nur die
+ halbe Wahrheit. Der äußere Rand ist keineswegs immer leer. Teilweise findet
+ man darin noch gesetzte Randnotizen (siehe den Befehl
+ \DescRef{maincls.cmd.marginpar} beispielsweise in \cite{l2kurz}
+ bzw. \autoref{sec:maincls.marginNotes}).
+
+ Beim oberen und unteren Rand stellt sich die Frage, wie Kopf- und
+ Fußzeile\Index{Seiten>Kopf}\Index{Seiten>Fuss=Fuß} zu behandeln sind.
+ Gehören diese beiden zum Textkörper oder zum jeweiligen Rand? Die Frage ist
+ nicht einfach zu beantworten. Eindeutig ist, dass ein leerer Fuß und ein
+ leerer Kopf zum Rand zu rechnen sind. Schließlich können sie nicht vom
+ restlichen Rand unterschieden werden. Ein Fuß, der nur die
+ Paginierung\Index{Paginierung}\textnote{Paginierung}
+ \iffalse % Beseitigung von Fußnoten
+ \unskip\footnote{Unter der Paginierung versteht man die Angabe der
+ Seitenzahl, wahlweise innerhalb oder außerhalb des Satzspiegels, meist im
+ Kopf oder Fuß der Seite.} %
+ \fi 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 Kolumnentitel\Index{Kolumnentitel}\textnote{Kolumnentitel}
+ \iffalse% Beseitigung von Fußnoten
+ \unskip\footnote{Unter dem Kolumnentitel versteht man in der Regel die
+ Wiederholung einer Überschrift mit Titelcharakter. Er steht häufig im
+ Seitenkopf, seltener im Seitenfuß.} %
+ \fi gesetzt. Arbeitet man mit einem lebenden Kolumnentitel, also der
+ Wiederholung der ersten bzw. zweiten Gliederungsebene in der Kopfzeile, und
+ hat gleichzeitig sehr lange Überschriften, so erhält man automatisch sehr
+ lange Kopfzeilen. In diesem Fall wirkt der Kopf wiederum wie ein abgesetzter
+ Teil des Textkörpers und weniger wie leerer Rand. Verstärkt wird dieser
+ Effekt noch, wenn neben dem Kolumnentitel auch die Paginierung im Kopf
+ erfolgt. Dadurch erhält man einen links und rechts abgeschlossenen Bereich,
+ der kaum noch als leerer Rand wirkt. Schwieriger ist es bei Paginierung im
+ Fuß und Überschriften, deren Länge sehr stark schwankt. Hier kann der Kopf
+ der einen Seite wie Textkörper wirken, der Kopf der anderen Seite aber
+ eher wie Rand. Keinesfalls sollte man die Seiten jedoch unterschiedlich
+ behandeln. Das würde zu vertikal springenden Köpfen führen und ist nicht
+ einmal für ein Daumenkino geeignet. Ich rate in diesem Fall dazu, den Kopf
+ zum Textkörper zu rechnen.
+
+ Ganz einfach fällt die Entscheidung, wenn Kopf oder Fuß durch
+ eine Linie vom eigentlichen Textkörper abgetrennt sind. Dadurch
+ erhält man eine geschlossene Wirkung und der Kopf bzw. Fuß sollte
+ unbedingt zum Textkörper gerechnet werden. Wie gesagt: Die durch die
+ Trennlinie verbesserte Erkennung des Kopfes oder Fußes ist hier
+ unerheblich. Entscheidend ist die unscharfe Betrachtung.\par
+\end{Explain}
+
+Das \Package{typearea}-Paket trifft die Entscheidung, ob ein Kopf oder Fuß zum
+Textkörper gehört\important{\OptionValue{headinclude}{true}
+ \OptionValue{headinclude}{false} \OptionValue{footinclude}{true}
+ \OptionValue{footinclude}{false}} oder davon getrennt zum Rand gerechnet
+werden muss, nicht selbst. Stattdessen kann mit den Optionen
+\Option{headinclude} und \Option{footinclude} eingestellt werden, ob der Kopf
+und der Fuß zum Textkörper gerechnet werden sollen. Die Optionen verstehen
+dabei als \PName{Ein-Aus-Wert}\ChangedAt{v3.00}{\Package{typearea}} die
+Standardwerte für einfache Schalter, die in \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch} 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.
+
+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:scrlayer-scrpage}).
+
+Bitte beachten Sie unbedingt\textnote{Achtung!}, dass diese Optionen bei
+Verwendung einer der \KOMAScript-Klassen als Klassenoptionen oder per
+\DescRef{\LabelBase.cmd.KOMAoptions} beziehungsweise
+\DescRef{\LabelBase.cmd.KOMAoption} nach dem Laden der Klasse übergeben werden
+müssen. Eine Änderung dieser Optionen nach dem Laden von \Package{typearea}
+führt dabei 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
+\hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} mit den Werten
+\hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} oder
+\hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (siehe
+\DescPageRef{typearea.option.DIV.last}) oder die Anweisung
+\DescRef{\LabelBase.cmd.recalctypearea} (siehe
+\DescPageRef{typearea.cmd.recalctypearea}).%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{mpinclude}{Ein-Aus-Wert}
+\end{Declaration}
+Neben\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and
+ \Class{scrartcl}} Dokumenten, bei denen der Kopf und der Fuß der Seite eher
+zum Textbereich als zum Rand gehört, gibt es auch Dokumente, bei denen dies
+für Randnotizen zutrifft. Mit der Option \Option{mpinclude} kann genau dies
+erreicht werden. Die Option versteht dabei als
+\PName{Ein-Aus-Wert}\ChangedAt{v3.00}{\Package{typearea}} die Standardwerte
+für einfache Schalter, die in \autoref{tab:truefalseswitch},
+\autopageref{tab:truefalseswitch} angegeben sind. Man kann die Option auch
+ohne Wertzuweisung verwenden. In diesem Fall wird \PValue{true} als
+\PName{Ein-Aus-Wert} verwendet.
+
+Der Effekt von
+\OptionValue{mpinclude}{true}\important{\OptionValue{mpinclude}{true}} ist,
+dass eine Breiteneinheit vom Textbereich weggenommen und als Bereich für die
+Randnotizen verwendet wird. Mit
+\OptionValue{mpinclude}{false}, was
+der Voreinstellung entspricht, wird hingegen ein Teil des Randes für
+Randnotizen verwendet. Dies ist, je nachdem ob einseitig oder doppelseitig
+gearbeitet wird, ebenfalls eine Breiteneinheit oder auch eineinhalb
+Breiteneinheiten. In der Regel ist die Verwendung von
+\OptionValue{mpinclude}{true} nicht anzuraten und sollte Experten vorbehalten
+bleiben.
+
+\begin{Explain}
+ In den meisten Fällen, in denen die Option \Option{mpinclude} sinnvoll ist,
+ werden außerdem breitere Randnotizen benötigt. In sehr vielen Fällen sollte
+ dabei aber nicht die gesamte Breite, sondern nur ein Teil davon dem
+ Textbereich zugeordnet werden. Dies ist beispielsweise der Fall, wenn der
+ Rand für Zitate verwendet wird. Solche Zitate werden üblicherweise im
+ Flattersatz gesetzt, wobei die bündige Kante an den Textbereich
+ anschließt. Da sich kein geschlossener optischer Eindruck ergibt, dürfen die
+ flatternden Enden also durchaus teilweise in den Rand ragen. Man kann das
+ einfach erreichen, indem man zum einen die Option \Option{mpinclude}
+ verwendet. Zum anderen vergrößert man die Länge \Length{marginparwidth} nach
+ der Berechnung des Satzspiegels noch mit Hilfe der
+ \Macro{addtolength}-Anweisung. Um welchen Wert man vergrößern sollte, hängt
+ vom Einzelfall ab und erfordert einiges Fingerspitzengefühl. Auch deshalb
+ ist die Option \Option{mpinclude} eher etwas für Experten. Natürlich kann
+ man auch festlegen, dass die Randnotizen beispielsweise zu einem Drittel in
+ den Rand hineinragen sollen, und das wie folgt erreichen:
+\begin{lstcode}
+ \setlength{\marginparwidth}{1.5\marginparwidth}
+\end{lstcode}
+
+ 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: %
+\iftrue % Umbruchkorrektur
+ Die Anpassung von \Length{textwidth}\IndexLength{textwidth} und
+ \Length{marginparwidth}\IndexLength{marginparwidth} nach der Berechnung des
+ Satzspiegels. Siehe dazu
+ \DescRef{typearea-experts.cmd.AfterCalculatingTypearea} in
+ \autoref{sec:typearea-experts.experts},
+ \DescPageRef{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
+ Breite des Textbereichs verringert hat. Leider lässt sich dieses Vorgehen
+ nicht mit der automatischen Berechnung des \PName{DIV}-Wertes verbinden.
+ Demgegenüber wird \Option{mpinclude} bei
+ \OptionValueRef{\LabelBase}{DIV}{calc}\IndexOption{DIV=calc} (siehe
+ \DescPageRef{typearea.option.DIV.calc}) berücksichtigt.
+%
+\fi
+\end{Explain}
+
+Bitte beachten Sie unbedingt\textnote{Achtung!}, dass diese Option bei
+Verwendung einer der \KOMAScript-Klassen als Klassenoption oder per
+\DescRef{\LabelBase.cmd.KOMAoptions} beziehungsweise oder
+\DescRef{\LabelBase.cmd.KOMAoption} nach dem Laden der Klasse übergeben werden
+muss. Eine Änderung dieser Option 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
+\hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} mit den Werten
+\hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} oder
+\hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (siehe
+\DescPageRef{typearea.option.DIV.last}) oder die Anweisung
+\DescRef{\LabelBase.cmd.recalctypearea} (siehe
+\DescPageRef{typearea.cmd.recalctypearea}).%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{headlines}{Zeilenanzahl}
+ \OptionVName{headheight}{Höhe}
+\end{Declaration}%
+\BeginIndex{}{Kopf>Hoehe=Höhe}%
+Es ist nun also bekannt, wie man Satzspiegel mit dem \Package{typearea}-Paket
+berechnet und wie man dabei angibt, ob der Kopf oder Fuß zum Textkörper oder
+zum Rand gehört. Insbesondere für den Kopf fehlt aber noch die Angabe, wie
+hoch er denn eigentlich sein soll. Hierzu dienen die Optionen
+\Option{headlines} und
+\Option{headheight}\ChangedAt{v3.00}{\Package{typearea}}.
+
+Die Option \Option{headlines}\important{\Option{headlines}} setzt man dabei
+auf die Anzahl der Kopfzeilen. Normalerweise arbeitet das
+\Package{typearea}-Paket mit 1,25 Kopfzeilen. Dieser Wert stellt einen
+Kompromiss dar. Zum einen ist er groß genug, um auch für eine unterstrichene
+Kopfzeile (siehe \autoref{sec:maincls.pagestyle}) Platz zu bieten, zum anderen
+ist er klein genug, um das Randgewicht nicht zu stark zu verändern, wenn mit
+einer einfachen, nicht unterstrichenen Kopfzeile gearbeitet wird. Damit ist
+der voreingestellte Wert in den meisten Standardfällen ein guter Wert. In
+einigen Fällen will oder muss man aber die Kopfhöhe genauer den tatsächlichen
+Erfordernissen anpassen.
+
+\begin{Example}
+ Angenommen, es soll ein Text mit einem zweizeiligen Kopf erstellt
+ werden. Normalerweise würde dies dazu führen, dass auf jeder Seite
+ eine Warnung »\texttt{overfull} \Macro{vbox}« von {\LaTeX}
+ ausgegeben würde. Um dies zu verhindern, wird das
+ \Package{typearea}-Paket angewiesen, einen entsprechenden Satzspiegel
+ zu berechnen:
+\begin{lstcode}
+ \documentclass[a4paper]{article}
+ \usepackage[headlines=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[headlines=2.1]{scrartcl}
+\end{lstcode}
+ Befehle, mit denen dann der Inhalt der zweizeiligen Kopfzeile definiert
+ werden kann, sind in \autoref{cha:scrlayer-scrpage} zu finden.
+\end{Example}
+
+In einigen Fällen ist es nützlich, wenn man die Kopfhöhe nicht in Zeilen,
+sondern direkt als Längenwert angeben kann. Dies ist mit Hilfe der alternativ
+verwendbaren Option \Option{headheight}\important{\Option{headheight}}
+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änder
+entscheidend ist. Außerdem\textnote{Achtung!} sollten \LaTeX-Längen wie
+\Length{baselineskip} keinesfalls im optionalen Argument von
+\DescRef{\LabelBase.cmd.documentclass} oder
+\DescRef{\LabelBase.cmd.usepackage} verwendet werden.
+
+Bitte beachten Sie unbedingt\textnote{Achtung!}, dass diese Optionen bei
+Verwendung einer der \KOMAScript-Klassen als Klassenoptionen oder per
+\DescRef{\LabelBase.cmd.KOMAoptions} beziehungsweise
+\DescRef{\LabelBase.cmd.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
+\hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} mit den Werten
+\hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} oder
+\hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (siehe
+\DescPageRef{typearea.option.DIV.last}) oder die Anweisung
+\DescRef{\LabelBase.cmd.recalctypearea} (siehe
+\DescPageRef{typearea.cmd.recalctypearea}).%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{footlines}{Zeilenanzahl}%
+ \OptionVName{footheight}{Höhe}%
+ \Length{footheight}%
+\end{Declaration}%
+\BeginIndex{}{Fuss=Fuß>Hoehe=Höhe}%
+Wie schon 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
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+\important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}%
+\IndexPackage{scrlayer-scrpage} berücksichtigt \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 einzeiligen Seitenfüßen anbieten.
+
+Die Option \Option{footlines}\important{\Option{footlines}} setzt man
+vergleichbar zu \DescRef{\LabelBase.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.pagestyle}) 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 \hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}%
+ \important{\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}}}%
+ \IndexPackage{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änder
+entscheidend ist. Außerdem\textnote{Achtung!} sollten \LaTeX-Längen wie
+\Length{baselineskip} keinesfalls im optionalen Argument von
+\DescRef{\LabelBase.cmd.documentclass} oder
+\DescRef{\LabelBase.cmd.usepackage} verwendet werden.
+
+Bitte beachten Sie unbedingt\textnote{Achtung!}, dass diese Optionen bei
+Verwendung einer der \KOMAScript-Klassen als Klassenoptionen oder per
+\DescRef{\LabelBase.cmd.KOMAoptions} beziehungsweise
+\DescRef{\LabelBase.cmd.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
+\hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} mit den Werten
+\hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} oder
+\hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (siehe
+\DescPageRef{typearea.option.DIV.last}) oder die Anweisung
+\DescRef{\LabelBase.cmd.recalctypearea} (siehe
+\DescPageRef{typearea.cmd.recalctypearea}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{areaset}\OParameter{BCOR}\Parameter{Breite}\Parameter{Höhe}
+\end{Declaration}%
+Bis hier wurde nun eine Menge darüber erzählt, wie man einen guten
+Satzspiegel\Index{Satzspiegel} für Standardanwendungen erstellt und wie das
+\Package{typearea}-Paket dem Anwender diese Arbeit erleichtert, ihm aber
+gleichzeitig Möglichkeiten der Einflussnahme bietet. Es gibt jedoch auch
+Fälle, in denen der Textkörper eine bestimmte Größe exakt einhalten soll, ohne
+dass dabei auf gute Satzspiegelkonstruktion oder auf weitere Nebenbedingungen
+zu achten ist. Trotzdem sollen die Ränder so gut wie möglich verteilt und
+dabei gegebenenfalls auch eine Bindekorrektur berücksichtigt werden. Das
+\Package{typearea}-Paket bietet hierfür den Befehl \Macro{areaset}, dem man
+neben der optionalen Bindekorrektur als Parameter die Breite und Höhe des
+Textbereichs übergibt. Die Ränder und deren Verteilung werden dann automatisch
+berechnet, wobei gegebenenfalls auch die Einstellungen der Paketoptionen
+\DescRef{\LabelBase.option.headinclude} und
+\DescRef{\LabelBase.option.footinclude} berücksichtigt werden. Die Optionen
+\DescRef{\LabelBase.option.headlines}\IndexOption{headlines}\textnote{Achtung!},
+\DescRef{\LabelBase.option.headheight}\IndexOption{headheight},
+\DescRef{\LabelBase.option.footlines}\IndexOption{footlines} und
+\DescRef{\LabelBase.option.footheight}\IndexOption{footheight} bleiben in
+diesem Fall jedoch unberücksichtigt! Siehe dazu die weiterführenden
+Informationen zu \DescRef{typearea-experts.cmd.areaset} auf
+\DescPageRef{typearea-experts.cmd.areaset} in
+\autoref{sec:typearea-experts.experimental}.
+
+Die Voreinstellung für \PName{BCOR} ist 0\Unit{pt}. Soll hingegen die aktuelle,
+beispielsweise per Option \DescRef{\LabelBase.option.BCOR}\IndexOption{BCOR}
+eingestellte Bindekorrektur erhalten bleiben, sollte man den symbolischen Wert
+\PValue{current} als optionales Argument verwenden.
+
+\begin{Example}
+ Angenommen, ein Text auf A4-Papier soll genau die Breite von 60
+ Zeichen in der Typewriter-Schrift haben und exakt 30 Zeilen je Seite
+ besitzen. Dann könnte mit folgender Präambel gearbeitet werden:
+\begin{lstcode}
+ \documentclass[a4paper,11pt]{article}
+ \usepackage{typearea}
+ \newlength{\CharsLX}% Breite von 60 Zeichen
+ \newlength{\LinesXXX}% Hoehe von 30 Zeilen
+ \settowidth{\CharsLX}{\texttt{1234567890}}
+ \setlength{\CharsLX}{6\CharsLX}
+ \setlength{\LinesXXX}{\topskip}
+ \addtolength{\LinesXXX}{29\baselineskip}
+ \areaset{\CharsLX}{\LinesXXX}
+\end{lstcode}
+ Der Faktor von 29 statt 30 ist damit begründet, dass die Grundlinie der
+ obersten Zeile bereits am obersten Rand des um \Macro{topskip} verringerten
+ Satzspiegels liegt, solange die Höhe der obersten Zeile kleiner als
+ \Macro{topskip} ist. Die oberste Zeile benötigt damit keine Höhe. Die
+ Unterlängen der untersten Zeile ragen dafür unter den Satzspiegel.
+
+\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}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionValue{DIV}{areaset}
+\end{Declaration}%
+In\ChangedAt{v3.00}{\Package{typearea}} seltenen Fällen ist es nützlich, wenn
+man den aktuell eingestellten Satzspiegel neu ausrichten lassen kann. Dies ist
+mit der Option
+\OptionValue{DIV}{areaset}\important{\OptionValue{DIV}{areaset}} möglich,
+wobei \DescRef{\LabelBase.cmd.KOMAoptions}\PParameter{DIV=areaset} der
+Anweisung
+\begin{lstcode}
+ \areaset[current]{\textwidth}{\textheight}
+\end{lstcode}
+entspricht. Dasselbe Ergebnis erhält man auch, wenn
+\OptionValueRef{\LabelBase}{DIV}{last} verwendet wird und der Satzspiegel
+zuletzt per \DescRef{\LabelBase.cmd.areaset} eingestellt wurde.%
+%
+\EndIndexGroup
+
+\iftrue% Umbruchkorrekturtext: Alternativen
+Wenn Sie konkrete Vorgaben bezüglich der Ränder zu erfüllen haben, ist
+\Package{typearea} nicht geeignet. In diesem Fall ist die Verwendung des
+Pakets
+\Package{geometry}\IndexPackage{geometry}\important{\Package{geometry}} (siehe
+\cite{package:geometry}) empfehlenswert.
+%
+\fi
+\iffalse
+%
+Das Paket \Package{typearea} ist nicht dafür gedacht, bestimmte Randbreiten
+einzustellen. Dafür ist das Paket \Package{geometry}\IndexPackage{geometry}
+(siehe \cite{package:geometry}) empfehlenswert.
+%
+\fi
+
+
+\section{Einstellung des Papierformats}%
+\seclabel{paperTypes}%
+\BeginIndexGroup
+
+Das Papierformat ist ein entscheidendes Grundmerkmal eines Dokuments. Wie
+bereits bei der Vorstellung der unterstützten Satzspiegelkonstruktionen (siehe
+\autoref{sec:typearea.basics} bis \autoref{sec:typearea.circleConstruction} ab
+\autopageref{sec:typearea.basics})
+aufgezeigt, steht und fällt die Auf"|teilung der Seite und damit das gesamte
+Dokumentlayout mit der Wahl des Papierformats. Während die
+\LaTeX-Standardklassen auf einige wenige Formate festgelegt sind, unterstützt
+\KOMAScript{} mit dem Paket \Package{typearea} selbst ausgefallene
+Seitengrößen.
+
+
+\begin{Declaration}
+ \OptionVName{paper}{Format}
+ \OptionVName{paper}{Ausrichtung}
+\end{Declaration}%
+Die Option \Option{paper}\ChangedAt{v3.00}{\Package{typearea}} ist das
+zentrale Element der Formatauswahl\important[i]{%
+ \begin{tabular}[t]{@{}l@{}l@{}}
+ \KOption{paper} & \PValue{letter}, \\
+ & \PValue{legal}, \\
+ & \PValue{executive}, \\
+ & \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}} %
+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@{}}
+ \KOption{paper} & \PValue{landscape}, \\
+ & \PValue{seascape}
+ \end{tabular}%
+} werden dadurch unterstützt, dass man die Option ein weiteres Mal mit dem
+Wert \PValue{landscape}\Index{Papier>Ausrichtung} oder
+\PValue{seascape}\ChangedAt{v3.02c}{\Package{typearea}} angibt. Dabei
+unterscheiden sich \PValue{landscape} und \PValue{seascape} nur darin, dass
+das Programm \File{dvips} bei \PValue{landscape} um -90\Unit{\textdegree}
+dreht, während bei \PValue{seascape} um +90\Unit{\textdegree} gedreht
+wird. Hilfreich ist \PValue{seascape} also vor allem dann, wenn ein
+PostScript-Anzeigeprogramm die Seiten im Querformat auf dem Kopf stellt.
+Damit der Unterschied eine Rolle spielt, darf auch die nachfolgend
+beschriebene Option \DescRef{\LabelBase.option.pagesize}%
+\IndexOption{pagesize}\important{\DescRef{\LabelBase.option.pagesize}} nicht
+deaktiviert sein.
+
+Zusätzlich kann das \PName{Format} auch in der Form
+\PName{Breite}\texttt{:}\PName{Höhe}\ChangedAt{v3.01b}{\Package{typearea}}%
+\important{\OptionVName{paper}{Breite\textup{:}Höhe}} beziehungsweise
+\PName{Höhe}\texttt{:}\PName{Breite}\ChangedAt{v3.22}{\Package{typearea}}%
+\important{\OptionVName{paper}{Höhe\textup{:}Breite}} angegeben
+werden. Welcher Wert die \PName{Höhe} und welcher die \PName{Breite} ist,
+richtet sich nach der Ausrichtung des Papiers. Mit
+\OptionValue{paper}{landscape} oder \OptionValue{paper}{seascape} ist der
+kleinere Wert die \PName{Höhe} und der größere Wert die \PName{Breite}. Mit
+\OptionValue{paper}{portrait}\important{\OptionValue{paper}{portrait}} ist
+dagegen der kleinere Wert die \PName{Breite} und der größere Wert die
+\PName{Höhe}.
+
+Es\textnote{Achtung!} wird darauf hingewiesen, dass bis Version~3.01a der
+erste Wert immer die \PName{Höhe} und der zweite Wert die \PName{Breite}
+war. Dagegen war von Version~3.01b bis Version~3.21a der erste Wert immer die
+\PName{Breite} und der zweite Wert immer die \PName{Höhe}. Dies ist
+insbesondere dann zu beachten, wenn mit einer entsprechenden
+Kompatibilitätseinstellung (siehe Option \DescRef{\LabelBase.option.version}%
+\IndexOption{version}\important{\DescRef{\LabelBase.option.version}},
+\autoref{sec:typearea.compatibilityOptions},
+\DescPageRef{typearea.option.version}) gearbeitet wird.
+
+\begin{Example}
+ Angenommen, es soll eine Karteikarte im Format ISO-A8 quer bedruckt
+ werden. Dabei sollen die Ränder sehr klein gewählt werden. Außerdem
+ wird auf eine Kopf- und eine Fußzeile verzichtet.
+\begin{lstcode}
+ \documentclass{article}
+ \usepackage[headinclude=false,footinclude=false,%
+ paper=A8,paper=landscape]{typearea}
+ \areaset{7cm}{5cm}
+ \pagestyle{empty}
+ \begin{document}
+ \section*{Definierte Papierformate}
+ letter, legal, executive, a0, a1 \dots\ %
+ b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots
+ \end{document}
+\end{lstcode}
+ Haben die Karteikarten das Sonderformat (Breite:Höhe)
+ 5\Unit{cm}\,:\,3\Unit{cm}, so ist dies mit
+\begin{lstcode}
+ \documentclass{article}
+ \usepackage[headinclude=false,footinclude=false,
+ paper=landscape,paper=5cm:3cm]{typearea}
+ \areaset{4cm}{2.4cm}
+ \pagestyle{empty}
+ \begin{document}
+ \section*{Definierte Papierformate}
+ letter, legal, executive, a0, a1 \dots\ %
+ b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots
+ \end{document}
+\end{lstcode}
+ möglich.
+\end{Example}
+
+In der Voreinstellung wird bei \KOMAScript{} mit A4-Papier in der Ausrichtung
+portrait gearbeitet. Dies ist ein Unterschied\textnote{\KOMAScript{}
+ vs. Standardklassen} zu den Standardklassen, bei denen in der Voreinstellung
+das amerikanische Format letter verwendet wird.
+
+Bitte beachten Sie unbedingt\textnote{Achtung!}, dass diese Option bei
+Verwendung einer der \KOMAScript-Klassen als Klassenoption oder per
+\DescRef{\LabelBase.cmd.KOMAoptions} beziehungsweise
+\DescRef{\LabelBase.cmd.KOMAoption} nach dem Laden der Klasse übergeben werden
+muss. Eine Änderung des Papierformats oder der Papierausrichtung mit Hilfe
+der Anweisung \DescRef{\LabelBase.cmd.KOMAoptions}\textnote{keine automatische
+ Neuberechnung} oder \DescRef{\LabelBase.cmd.KOMAoption} nach dem Laden von
+\Package{typearea} führt nicht 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 \hyperref[desc:\LabelBase.option.DIV.last]{\Option{DIV}} mit den Werten
+\hyperref[desc:\LabelBase.option.DIV.last]{\PValue{last}} oder
+\hyperref[desc:\LabelBase.option.DIV.current]{\PValue{current}} (siehe
+\DescPageRef{typearea.option.DIV.last}) oder die Anweisung
+\DescRef{\LabelBase.cmd.recalctypearea} (siehe
+\DescPageRef{typearea.cmd.recalctypearea}).%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{pagesize}{Ausgabetreiber}
+\end{Declaration}%
+\begin{Explain}%
+ Die oben genannten Mechanismen zur Auswahl des Papierformats haben nur
+ insofern einen Einfluss auf die Ausgabe, als interne {\LaTeX}-Maße gesetzt
+ werden. Das Paket \Package{typearea} verwendet diese dann bei der
+ Auf"|teilung der Seite in Ränder und Textbereich. Die Spezifikation des
+ DVI-Formats\Index{DVI} sieht aber an keiner Stelle Angaben zum Papierformat
+ vor. %
+ \iffree{%
+ Wird direkt aus dem DVI-Format in eine Low-Level-Druckersprache wie PCL%
+ \iftrue% Umbruchkorrektur
+ \footnote{PCL ist eine Familie von Druckersprachen, die HP für seine
+ Tinten- und Laserdrucker verwendet.}%
+ \fi \ oder ESC/P2%
+ \iftrue% Umbruchkorrektur
+ \footnote{ESC/P2 ist die Druckersprache, die EPSON für seine 24-Nadel- und
+ ältere Tinten- oder Laserdrucker benutzt.}%
+ \fi \ beziehungsweise ESC/P-R%
+ \iftrue% Umbruchkorrektur
+ \footnote{ESC/P-R ist die Druckersprache, die EPSON aktuell für Tinten-
+ und Laserdrucker benutzt.}%
+ \fi \ ausgegeben, spielt dies normalerweise keine Rolle%
+ }{%
+ In früheren Zeiten, als DVI zum Ausruck noch direkt in
+ Low-Level-Druckersprachen übertragen wurde, spielte dies keine Rolle%
+ }, da auch bei diesen Ausgaben der 0-Bezugspunkt wie bei DVI links oben
+ liegt. \iffree{Wird aber}{Heutzutage wird aber meist} in Sprachen wie
+ PostScript\Index{PostScript} oder PDF\Index{PDF} übersetzt, bei denen der
+ 0-Bezugspunkt an anderer Stelle liegt und außerdem das Papierformat in der
+ Ausgabedatei angegeben werden sollte\iffree{, so}{. Dabei} fehlt diese
+ Information. Als Lösung des Problems verwendet der entsprechende Treiber
+ eine voreingestellte Papiergröße, die der Anwender entweder per Option oder
+ durch entsprechende Angabe in der {\TeX}-Quelldatei verändern kann. Bei
+ Verwendung des DVI-Treibers \File{dvips} oder \File{dvipdfm} kann diese
+ Angabe in Form einer \Macro{special}-Anweisung erfolgen. Bei Verwendung von
+ {pdf\TeX}, {lua\TeX}, {\XeTeX} oder {V\TeX} werden deren
+ Papierformat-Längen entsprechend gesetzt.%
+\end{Explain}
+Mit der Option \Option{pagesize} kann eingestellt werden, für welchen
+Ausgabetreiber die Papiergröße in das Ausgabedokument geschrieben wird. Die
+unterstützten Ausgabetreiber sind \autoref{tab:typearea.outputdriver} \iffalse
+auf \autopageref{tab:typearea.outputdriver}\fi zu
+entnehmen. Voreingestellt\ChangedAt{v3.17}{\Package{typearea}} ist
+\Option{pagesize}. Diese Verwendung der Option ohne Angabe eines Wertes
+entspricht \OptionValue{pagesize}{auto}.
+%
+\begin{table}
+ \caption{Ausgabetreiber für Option \OptionVName{pagesize}{Ausgabetreiber}}
+ \begin{desctabular}
+ \pventry{auto}{Falls die pdf\TeX-spezifischen Register
+ \Macro{pdfpagewidth}\IndexLength{pdfpagewidth} und
+ \Macro{pdfpageheight}\IndexLength{pdfpageheight} oder die
+ lua\TeX-spezifischen Register \Macro{pagewidth}\IndexLength{pagewidth}
+ und \Macro{pageheight}\IndexLength{pageheight} vorhanden sind, wird
+ der Ausgabetreiber \PValue{pdftex} aktiviert. Zusätzlich wird auch der
+ Ausgabetreiber \PValue{dvips}
+ verwendet. Diese Einstellung ist grundsätzlich auch für \XeTeX{}
+ geeignet.%
+ \IndexOption{pagesize~=\textKValue{auto}}}%
+ \pventry{automedia}{Dies entspricht dem Ausgabetreiber
+ \PValue{auto}. Allerdings werden zusätzlich auch noch die
+ \mbox{V\TeX}-spezifischen Register
+ \Macro{mediawidth}\IndexLength{mediawidth} und
+ \Macro{mediaheight}\IndexLength{mediaheight} gesetzt, falls diese
+ definiert sind.%
+ \IndexOption{pagesize~=\textKValue{automedia}}}%
+ \entry{\PValue{false}, \PValue{no}, \PValue{off}}{%
+ Die Papiergröße wird nicht an den Ausgabetreiber
+ gemeldet.%
+ \IndexOption{pagesize~=\textKValue{false}}}%
+ \pventry{dvipdfmx}{\ChangedAt{v3.05a}{\Package{typearea}}Die Papiergröße
+ wird als
+ \Macro{special}\PParameter{pagesize=\PName{Breite},\PName{Höhe}} in die
+ DVI-Datei geschrieben. Der Name des Ausgabetreibers kommt daher, dass
+ das Programm \File{dvipdfmx} eine Pa\-pier\-for\-mat\-um\-schal\-tung
+ über diese Anweisung auch innerhalb des Dokuments erlaubt.%
+ \IndexOption{pagesize~=\textKValue{dvipdfmx}}}%
+ \pventry{dvips}{Bei Verwendung innerhalb der Dokumentpräambel wird die
+ Papiergröße über
+ \Macro{special}\PParameter{pagesize=\PName{Breite},\PName{Höhe}} in das
+ Dokument geschrieben. Da das Programm \File{dvips} keine
+ Pa\-pier\-for\-mat\-um\-schal\-tung innerhalb des Dokuments unterstützt,
+ wird bei Bedarf im Dokument ein recht unsauberer Hack verwendet, um die
+ Umschaltung nach Möglichkeit dennoch zu
+ erreichen. Pa\-pier\-for\-mat\-um\-schal\-tung nach der Dokumentprämbel
+ bei gleichzeitiger Verwendung des Ausgabetreibers \PValue{dvips}
+ erfolgen daher auf eigene Gefahr!%
+ \IndexOption{pagesize~=\textKValue{dvips}}}%
+ \entry{\PValue{pdftex}, \PValue{luatex}}{%
+ \ChangedAt{v3.20}{\Package{typearea}}Die Papiergröße
+ wird über die pdf\TeX-spezifischen Register
+ \Macro{pdfpagewidth}\IndexLength{pdfpagewidth} und
+ \Macro{pdfpageheight}\IndexLength{pdfpageheight} oder die
+ lua\TeX-spezifischen Register \Macro{pagewidth}\IndexLength{pagewidth}
+ und \Macro{pageheight}\IndexLength{pageheight} gesetzt. Dies ist
+ auch jederzeit innerhalb des Dokuments problemlos
+ möglich.%
+ \IndexOption{pagesize~=\textKValue{pdftex}}%
+ \IndexOption{pagesize~=\textKValue{luatex}}}%
+ \end{desctabular}
+ \label{tab:typearea.outputdriver}
+\end{table}
+
+\begin{Example}
+ Angenommen, es soll ein Dokument sowohl als DVI-Datei verwendet
+ werden, als auch eine Online-Version im PDF-Format erstellt
+ werden. Dann könnte die Präambel beispielsweise so beginnen:
+ \begin{lstcode}[%
+ aboveskip=.5\baselineskip plus .1\baselineskip minus .1\baselineskip,%
+ belowskip=.4\baselineskip plus .1\baselineskip minus .1\baselineskip]
+ \documentclass{article}
+ \usepackage[paper=A4,pagesize]{typearea}
+\end{lstcode}
+ Wird nun für die Bearbeitung {pdf\TeX} verwendet \emph{und} die
+ PDF-Ausgabe aktiviert, so werden die beiden Spezialgrößen
+ \Macro{pdfpagewidth} und \Macro{pdfpageheight} entsprechend gesetzt.
+ Wird jedoch eine DVI-Datei erzeugt -- egal ob mit {\LaTeX} oder
+ {pdf\LaTeX} --, so wird ein \Macro{special} an den Anfang dieser
+ Datei geschrieben.
+\end{Example}%
+\iffree{% Die Empfehlung ist eigentlich überholt. Wer derart alte Versionen
+ % von typearea verwendet, ist selbst schuld.
+Es wird empfohlen\textnote{Achtung!}, die Option \Option{pagesize} immer
+anzugeben, weil frühere Versionen von \Package{typearea} sie noch nicht als
+Voreinstellung gesetzt haben. In der Regel ist dabei die Methode ohne
+\PName{Ausgabetreiber} oder mit \PValue{auto} oder \PValue{automedia}
+günstig.%
+}{%
+ \vskip-1\ht\strutbox plus .75\ht\strutbox% Wegen Beispiel am Ende der Erklärung
+}
+\EndIndexGroup
+%
+\EndIndexGroup
+
+% Umbruchverbesserung:
+%\iffree{}{\clearpage}
+\section{Tipps}
+\seclabel{tips}
+
+Insbesondere für die Erstellung von schriftlichen Arbeiten während des
+Studiums findet man häufig Vorschriften\textnote{Satzvorschriften
+ vs. gute~Typografie}, die einer typografischen Begutachtung nicht nur in
+keiner Weise standhalten, sondern massiv gegen alle Regeln der Typografie
+verstoßen. Ursache für solche Regeln ist oft typografische Inkompetenz
+derjenigen, die sie herausgeben. Manchmal ist die Ursache auch im
+Ausgangspunkt begründet, nämlich der Schreibmaschine. Mit einer
+Schreibmaschine oder einer Textverarbeitung von 1980 ist es
+ohne
+erheblichen Aufwand kaum möglich, typografisch perfekte Ergebnisse zu
+erzielen. Also wurden einst Vorschriften erlassen, die leicht erfüllbar
+schienen und dem Korrektor trotzdem entgegenkommen. Dazu zählen dann
+Randeinstellungen, die für einseitigen Druck mit einer Schreibmaschine zu
+brauchbaren Zeilenlängen führen. Um nicht extrem kurze Zeilen zu erhalten, die
+durch Flattersatz zudem verschlimmert werden, werden die Ränder schmal
+gehalten und für Korrekturen stattdessen ein großer Durchschuss in Form von
+eineinhalbzeiligem Satz vorgeschrieben. Bevor moderne
+Textverarbeitungssysteme verfügbar wurden, wäre -- außer mit {\TeX} --
+einzeiliger Satz die einzige Alternative gewesen. Dabei wäre dann selbst das
+Anbringen von Korrekturzeichen schwierig geworden. Als die Verwendung von
+Computern für die Erstellung schriftlicher Arbeiten üblicher wurde, hat sich
+manches Mal auch der Spieltrieb des einen oder anderen Studenten gezeigt, der
+durch Verwendung einer Schmuckschrift seine Arbeit aufpeppen und so eine
+bessere Note mit weniger Einsatz herausschinden wollte. Nicht bedacht hat er
+dabei, dass solche Schriften schlechter zu lesen und deshalb für den Zweck
+ungeeignet sind. Damit hielten zwei Brotschriften Einzug in die Vorschriften,
+die weder zusammenpassen noch im Falle von Times wirklich gut geeignet
+sind. Times ist eine relativ enge Schrift, die Anfang des 20.~Jahrhunderts
+speziell für schmale Spalten im englischen Zeitungssatz entworfen wurde. In
+modernen Schnitten ist dies etwas entschärft. Dennoch passt die häufig
+vorgeschriebene Times meist nicht zu den gleichzeitig gegebenen Randvorgaben.
+
+{\LaTeX} setzt bereits von sich aus mit ausreichendem Durchschuss.
+Gleichzeitig sind die Ränder bei sinnvollen Zeilenlängen groß genug, um Platz
+für Korrekturen zu bieten. Dabei wirkt die Seite trotz einer Fülle von Text
+großzügig angelegt.
+
+Oft sind die typografisch mehr als fragwürdigen Satzvorschriften mit {\LaTeX}
+auch außerordentlich schwierig umzusetzen. So kann eine feste Anzahl von
+»Anschlägen« nur dann eingehalten werden, wenn keine proportionale Schrift
+verwendet wird. Es gibt nur wenige gute nichtproportionale Schriften.
+\iffalse % Umbruchkorrektur
+Kaum ein Text, der mit einer derartigen Schrift gesetzt ist, wirkt wirklich
+gut. So wird häufig %
+\else
+Häufig wird %
+\fi %
+versucht, durch ausladende Serifen beispielsweise beim kleinen
+»i« oder »l« die unterschiedliche Breite der Zeichen auszugleichen. Dies kann
+nicht funktionieren. Im Ergebnis wirkt der Text unruhig und
+zerrissen. Außerdem verträgt sich eine solche Schrift kaum mit dem im
+deutschen Sprachraum üblichen und allgemein vorzuziehenden Blocksatz. Gewisse
+Vorgaben können daher bei Verwendung von {\LaTeX} nur ignoriert oder großzügig
+ausgelegt werden, etwa indem man »60~Anschläge pro Zeile« nicht als feste,
+sondern als durchschnittliche oder maximale Angabe interpretiert.
+
+Wie ausgeführt, sind Satzvorschriften meist dazu gedacht, ein brauchbares
+Ergebnis zu erhalten, auch wenn der Ausführende selbst nicht weiß, was dabei
+zu beachten ist. Brauchbar bedeutet häufig: lesbar und korrigierbar. Nach
+meiner Auf"|fassung wird ein mit {\LaTeX} und dem \Package{typearea}-Paket
+gesetzter Text bezüglich des Satzspiegels diesen Anforderungen von vornherein
+gerecht. Wenn Sie also mit Vorschriften konfrontiert sind, die offensichtlich
+erheblich davon abweichen, so empfehle ich, dem Betreuer einen Textauszug
+vorzulegen und nachzufragen, ob es gestattet ist, die Arbeit trotz der
+Abweichungen in dieser Form zu liefern. Gegebenenfalls kann durch Veränderung
+der Option
+\DescRef{\LabelBase.option.DIV}\important{\DescRef{\LabelBase.option.DIV}} der
+Satzspiegel moderat angepasst werden. Von der Verwendung von
+\DescRef{\LabelBase.cmd.areaset} zu diesem Zweck rate ich jedoch
+ab. Schlimmstenfalls verwenden Sie das nicht zu {\KOMAScript} gehörende
+\Package{geometry}-Paket\important{\Package{geometry}}\IndexPackage{geometry}
+(siehe \cite{package:geometry}) oder verändern Sie die Satzspiegelparameter
+von {\LaTeX} selbst. Die von \Package{typearea} ermittelten Werte finden Sie
+in der \File{log}-Datei Ihres Dokuments. Mit Hilfe von Option
+\DescRef{typearea-experts.option.usegeometry}%
+\important{\DescRef{typearea-experts.option.usegeometry}}, die Sie in
+\autoref{part:forExperts} finden, kann außerdem die Zusammenarbeit von
+\Package{typearea} und \Package{geometry} verbessert werden. Damit sollten
+moderate Anpassungen möglich sein. Achten Sie jedoch unbedingt darauf, dass
+die Proportionen des Textbereichs mit denen der Seite unter Berücksichtigung
+der Bindekorrektur annähernd übereinstimmen.
+
+Sollte es unbedingt erforderlich sein, den Text eineinhalbzeilig zu setzen, so
+definieren Sie keinesfalls \Macro{baselinestretch} um. Dieses Vorgehen wird
+zwar allzu häufig empfohlen, ist aber seit der Einführung von {\LaTeXe} im
+Jahre 1994 obsolet. Verwenden Sie schlimmstenfalls den Befehl
+\Macro{linespread}. Ich empfehle das Paket
+\Package{setspace}\important{\Package{setspace}}\IndexPackage{setspace}, das
+nicht zu {\KOMAScript} gehört (siehe \cite{package:setspace}). Auch sollten
+Sie \Package{typearea} nach der Umstellung des Zeilenabstandes den Satzspiegel
+für diesen Abstand berechnen lassen, jedoch für den Titel, besser auch für die
+Verzeichnisse -- sowie das Literaturverzeichnis und den Index -- wieder auf
+normalen Satz umschalten. Näheres dazu finden Sie bei der Erklärung zu
+\OptionValueRef{\LabelBase}{DIV}{current}%
+\important{\OptionValueRef{\LabelBase}{DIV}{current}}.
+
+Das \Package{typearea}-Paket berechnet auch bei der Option
+\OptionValueRef{\LabelBase}{DIV}{calc}%
+\important{\OptionValueRef{\LabelBase}{DIV}{calc}} einen sehr großzügigen
+Textbereich. Viele konservative Typografen werden feststellen, dass die
+resultierende Zeilenlänge noch zu groß ist. Der berechnete \Var{DIV}-Wert ist
+ebenfalls in der \File{log}-Datei zum jeweiligen Dokument zu finden. Sie
+können also leicht nach dem ersten \LaTeX-Lauf einen kleineren Wert wählen.
+
+Nicht\textnote{Was ist besser?} selten wird mir die Frage gestellt, warum ich
+eigentlich kapitelweise auf einer Satzspiegelberechnung herumreite, während es
+sehr viel einfacher wäre, nur ein Paket zur Verfügung zu stellen, mit dem man
+die Ränder wie bei einer Textverarbeitung einstellen kann. Oft wird auch
+behauptet, ein solches Paket wäre ohnehin die bessere Lösung, da jeder selbst
+wisse, wie gute Ränder zu wählen seien, und die Ränder von {\KOMAScript} wären
+ohnehin nicht gut. Ich erlaube mir zum Abschluss dieses Kapitels ein passendes
+Zitat von Hans Peter Willberg und Friedrich Forssmann, zwei der angesehensten
+Typografen der Gegenwart (siehe \cite{TYPO:ErsteHilfe}):
+\begin{quote}
+ \phantomsection\label{sec:typearea.tips.cite}%
+ \textit{Das\textnote{Zitat!} Selbermachen ist längst üblich, die Ergebnisse
+ oft fragwürdig, weil Laien-Typografen nicht sehen, was nicht stimmt und
+ nicht wissen können, worauf es ankommt. So gewöhnt man sich an falsche und
+ schlechte Typografie.} [\dots] \textit{Jetzt könnte der Einwand kommen,
+ Typografie sei doch Geschmackssache. Wenn es um Dekoration ginge, könnte
+ man das Argument vielleicht gelten lassen, da es aber bei Typografie in
+ erster Linie um Information geht, können Fehler nicht nur stören, sondern
+ sogar Schaden anrichten.}
+\end{quote}
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "../guide"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/plength.dtx b/macros/latex/contrib/koma-script/source-doc/plength.dtx
new file mode 100644
index 0000000000..f0006db25f
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/plength.dtx
@@ -0,0 +1,1325 @@
+% \CheckSum{0}
+% \iffalse
+% ======================================================================
+% plength.dtx
+% Copyright (c) Markus Kohm, 2005-2017
+%
+% 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.
+% ----------------------------------------------------------------------
+% plength.dtx
+% Copyright (c) Markus Kohm, 2005-2017
+%
+% 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.
+% ======================================================================
+%
+% Generation of plength figures at scrlttr2 chapter of the KOMA-Script guide
+% Maintained by Markus Kohm
+% Original source by Stephan Hennig
+%
+% ---------------------------------------------------------------------------
+%
+% Erzeugung der plength Abbildungen im scrlttr2-Kapitel der
+% KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+% Originalquellen von Stephan Hennig
+%
+% ============================================================================
+%<*ins>
+\def\batchfile{plength.dtx}
+\input docstrip.tex
+
+\ifx\askonceonly\undefined\else\askonceonly\fi
+
+\preamble
+\endpreamble
+
+\postamble
+\endpostamble
+
+\keepsilent
+\askforoverwritefalse
+
+\generate{%
+ \file{plength.drv}{\from{plength.dtx}{driver}}%
+ \file{plenDIN.mp}{\from{plength.dtx}{main,DIN,length,terms,\languagename}}%
+ \file{varDIN.mp}{\from{plength.dtx}{main,DIN,variables,\languagename}}%
+% Ebenfalls enthalten, derzeit aber nicht verwendet:
+% \file{plenSN.mp}{\from{plength.dtx}{main,SN,length,\languagename}}%
+% \file{varSN.mp}{\from{plength.dtx}{main,SN,variables,\languagename}}%
+ \file{plinc.mp}{\from{plength.dtx}{include}}%
+ \file{pltex-vars.mp}{\from{plength.dtx}{tex}}%
+ \file{pltex-terms.mp}{\from{plength.dtx}{tex,terms}}%
+ \file{pllcoDIN.mp}{\from{plength.dtx}{DIN,values}}%
+% Ebenfalls enthalten, derzeit aber nicht verwendet:
+% \file{pllcoSN.mp}{\from{plength.dtx}{SN,values}}%
+}
+
+\csname endinput\endcsname
+%</ins>
+%
+%<*driver>
+% \begin{macrocode}
+\ProvidesFile{plength.drv}[2014/02/28 plength MetaPost graphics]
+\documentclass{ltxdoc}
+\usepackage[ngerman]{babel}
+\usepackage[latin1]{inputenc}
+\begin{document}
+ \DocInput{plength.dtx}
+\end{document}
+% \end{macrocode}
+%</driver>
+% \fi
+%
+% \title{MetaPost-Grafiken für das Briefkapitel}
+% \author{Stephan Hennig und Markus Kohm}
+% \date{2010-02-09}
+% \maketitle
+%
+% Es werden diverse Dateien erzeugt: \texttt{plenDINde.mp},
+% \texttt{varDINde.mp}, \texttt{plenSNde.mp}, \texttt{varSNde.mp}, \dots Diese
+% mit
+% \begin{flushleft}
+% \texttt{mpost --tex=latex} \meta{mp-file}
+% \end{flushleft}
+% bearbeitet ergibt \texttt{1}-Dateien. Diese können als EPS-Dateien
+% geladen werden. Es kann aber auch mit
+% \begin{flushleft}
+% \texttt{mptopdf} \meta{1-Datei}
+% \end{flushleft}
+% eine PDF-Datei erzeugt werden.
+%
+% Anpassungen werden ausschließlich in der \texttt{dtx}-Datei vorgenommen!
+% Wesentlich ist dabei der Abschnitt \texttt{main}.
+%
+%<*main>
+% \section{Der Abschnitt \texttt{main}}
+% Diese Abschnitt erzeugt die Haupttreiberdateien, die dann mit \texttt{mpost}
+% bearbeitet werden.
+%
+% Hinweise zu den Variablen:
+% \begin{itemize}
+% \item \texttt{input pllcoDIN} oder \texttt{input pllcoSN}\hfill\\
+% legt fest, ob die Maße für Briefe nach DIN oder SN
+% geladen werden. Damit kann gewählt werden, welches Layout
+% verdeutlicht werden soll. Sollen die Längen eingezeichnet werden,
+% ist pllcoDIN zu verwenden.
+% \item \texttt{grafikhoehe}\hfill\\
+% legt die Höhe der Ausgabedatei fest.
+% \item \texttt{strichstaerke}\hfill\\
+% bestimmt die Stiftbreite, die zum Zeichnen des
+% Briefbogens, der Faltmarken und der From-Rule benutzt wird.
+% \item \texttt{framestrichstaerke}\hfill\\
+% bestimmt die Stiftbreite zum Zeichnen der
+% Element-Rahmen (nicht der Hilfsrahmen).
+% \item \texttt{hilfsstrichstaerke}\hfill\\
+% bestimmt die Stiftbreite zum Zeichnen der
+% Bemaßung und der Hilfsrahmen.
+% \item \texttt{tickhoehe}\hfill\\
+% legt die Höhe der vertikalen Linien horizontaler
+% Bemaßung fest (Makro hmeasure). Die Maßlinie wird auf halber Höhe
+% von tickhoehe gezeichnet. Für die Makros vmeasure und dmeasure gilt
+% ähnliches. In dmeasure wird jedoch ein Vielfaches von tickhoehe
+% verwendet.
+% \item \texttt{framed} und \texttt{filled}\hfill\\
+% legen fest, ob die Elemente mit einem Rahmen
+% versehen bzw. gefüllt werden sollen.
+% \item \texttt{drawcolor}\hfill\\
+% legt die Farbe von Linien und Text fest.
+% \item \texttt{fillcolor}\hfill\\
+% legt die Füllfarbe fest, falls filled=true ist.
+% \item \texttt{latexlengths}\hfill\\
+% legt fest, ob die unveränderlichen LaTeX-Längen
+% angezeigt werden sollen.
+% \item \texttt{latexlengthcolor}\hfill\\
+% legt die Farbe fest, mit der LaTeX-Längen
+% gezeichnet werden.
+% \item \texttt{language}\hfill\\
+% legt die Sprache der Beschreibung fest.
+% \item \texttt{ahlength}\hfill\\
+% Da foldmarkhpos sehr klein ist, können sich bei kleinen Grafiken
+% die Pfeilspitzen der Bemaßung berühren. Um das zu verhindern, kann
+% mit der MetaPost-internen Variablen ahlength die Pfeillänge
+% verringert werden.
+% \end{itemize}
+%
+% \begin{macrocode}
+prologues:=1;
+%<DIN>input pllcoDIN
+%<SN>input pllcoSN
+input plinc
+%<!terms>input pltex-vars
+%<terms>input pltex-terms
+beginfig(1);
+ numeric grafikhoehe;
+ numeric tickhoehe;
+ numeric strichstaerke, framestrichstaerke, hilfsstrichstaerke;
+ boolean framed, filled, latexlengths;
+ color drawcolor, fillcolor, latexlengthcolor;
+ string language;
+ grafikhoehe := 167mm;
+ strichstaerke := 0.6pt;
+ framestrichstaerke := 0.2pt;
+ hilfsstrichstaerke := 0.2pt;
+ tickhoehe := 10pt;
+ framed := true;
+ filled := true;
+ drawcolor := black;
+ fillcolor := .8white;
+ latexlengths := true;
+ latexlengthcolor := .4white;
+%<ngerman> language := "de";
+%<english> language := "en";
+ ahlength := 0.7mm;
+ picture description[], plength[], latexlength[];
+ transform T;
+ T = identity reflectedabout ((0pt,.5*paperheight),
+ (paperwidth,.5*paperheight)) scaled (grafikhoehe/paperheight);
+%<length> lengths; writedescription(language);
+%<variables> describe(language);
+endfig
+end
+% \end{macrocode}
+%</main>
+%
+%<*tex>
+% \section{Der Abschnitt \texttt{tex}}
+%
+% Dieser Abschnitt enthält sozusagen den \TeX{}-Part der Grafiken.
+% Hier werden beispielsweise die Fonts festgelegt.
+%
+% \begin{macrocode}
+verbatimtex
+%<<LATEX
+%&latex
+%LATEX
+\documentclass[fontsize=8pt]{scrartcl}
+\usepackage[latin1]{inputenc}
+\usepackage[ngerman]{babel}
+\usepackage[T1]{fontenc}
+\IfFileExists{scrnonfree.tex}{%
+ \usepackage{charter}%
+ \usepackage[scaled=0.87]{luximono}%
+ \usepackage[scaled=0.92]{frutiger}%
+}{%
+ \usepackage{lmodern}%
+}
+\newcommand*{\plength}{\fontsize{7}{8}\sffamily}
+\newcommand*{\descr}{\fontsize{7}{8}\itshape}
+\newcommand*{\latexlength}{\fontsize{7}{8}\ttfamily}
+\newcommand*{\Macro}[1]{{\fontsize{7}{8}\ttfamily
+ \expandafter\string\csname #1\endcsname}}
+\newcommand*{\Parameter}[1]{{\fontsize{7}{8}\ttfamily\itshape\{#1\}}}
+\newcommand*{\PParameter}[1]{{\fontsize{7}{8}\ttfamily\{#1\}}}
+\newcommand*{\Variable}[1]{{\fontsize{7}{8}\ttfamily\bfseries #1}}
+\newcommand*{\Multi}[1]{%
+ {\def\and{, }%
+ \begin{tabular}{@{}l@{}}
+ #1
+ \end{tabular}
+ }%
+}
+\begin{document}
+etex
+
+def deflengths =
+begingroup
+ plength[1]=btex \plength{}backaddrheight etex;
+ plength[2]=btex \plength{}bfoldmarkvpos etex;
+ plength[3]=btex \plength{}firstfootvpos etex;
+ plength[4]=btex \plength{}firstfootwidth etex;
+ plength[5]=btex \plength{}firstheadvpos etex;
+ plength[6]=btex \plength{}firstheadwidth etex;
+ plength[7]=btex \plength{}foldmarkhpos etex;
+ plength[8]=btex \plength{}locwidth\strut etex;
+ plength[9]=btex \plength{}refaftervskip etex;
+ plength[10]=btex \plength{}refvpos etex;
+ plength[11]=btex \plength{}refwidth etex;
+ plength[12]=btex \plength{}sigbeforevskip etex;
+ plength[13]=btex \plength{}sigindent etex;
+ plength[14]=btex \plength{}specialmailindent etex;
+ plength[15]=btex \plength{}specialmailrightindent etex;
+ plength[16]=btex \plength{}tfoldmarkvpos etex;
+ plength[17]=btex \plength{}toaddrhpos\strut etex;
+ plength[18]=btex \plength{}toaddrindent\strut etex;
+ plength[19]=btex \plength{}toaddrvpos etex;
+ plength[20]=btex \plength{}toaddrwidth\strut etex;
+ plength[21]=btex \plength{}toaddrheight etex;
+ plength[22]=btex \plength{}refhpos etex;
+ plength[23]=btex \plength{}fromrulewidth etex;
+ plength[24]=btex \plength{}-toaddrhpos\strut etex;
+ plength[25]=btex \plength{}lochpos etex;
+ plength[26]=btex \plength{}-lochpos etex;
+ plength[27]=btex \plength{}locvpos etex;
+ plength[28]=btex \plength{}locheight etex;
+ plength[29]=btex \plength{}subjectaftervskip etex;
+ plength[30]=btex \plength{}+subjectbeforevskip etex;
+ plength[31]=btex \plength{}firstfoothpos etex;
+ plength[32]=btex \plength{}-firstfoothpos etex;
+ plength[33]=btex \plength{}firstheadhpos etex;
+ plength[34]=btex \plength{}-firstheadhpos etex;
+endgroup
+enddef;
+
+def deflatexlengths =
+begingroup
+ latexlength[1] = btex \latexlength{}\string\baselineskip etex;
+ latexlength[2] = btex \latexlength{}2\string\baselineskip etex;
+ latexlength[3] = btex \latexlength{}\string\textwidth etex;
+ latexlength[4] = btex \latexlength{}$\geq$\string\footskip etex;
+endgroup
+enddef;
+
+
+def defdescriptionde =
+begingroup
+%<*terms>
+ description[1]=btex \descr{}Briefkopf etex;
+ description[2]=btex \descr{}Brief"|fuß{} etex;
+ description[3]=btex \descr{}Rücksendeadresse etex;
+ description[4]=btex \descr{}Versandart etex;
+ description[5]=btex \descr{}Empfängeradresse etex;
+ description[6]=btex \descr{}Geschäftszeile etex;
+ description[7]=btex \descr{}Titel etex;
+ description[8]=btex \descr{}Betreff etex;
+ description[9]=btex \descr{}Anrede etex;
+ description[10]=btex \descr{}Brieftext etex;
+ description[11]=btex \descr{}Grußfloskel etex;
+ description[12]=btex \descr{}Signatur etex;
+ description[13]=btex \descr{}\begin{tabular}{@{}c@{}}Absender-\\ergänzung\end{tabular} etex;
+%</terms>
+%<*!terms>
+ description[1]=btex \Multi{\Variable{firsthead}\\
+ \Variable{fromname}\and
+ \Variable{fromaddress}\and
+ \Variable{fromphone}\and
+ \Variable{fromfax}\and
+ \Variable{fromemail}\and
+ \Variable{fromurl}} etex;
+ description[2]=btex \Variable{firstfoot} etex;
+ description[3]=btex \Variable{backaddress} etex;
+ description[4]=btex \Variable{specialmail} etex;
+ description[5]=btex \Macro{begin}\PParameter{letter}\Parameter{Name und Adresse} etex;
+ description[6]=btex \Multi{\Variable{yourref}\and
+ \Variable{yourmail}\and
+ \Variable{myref}\and
+ \Variable{customer}\and
+ \Variable{invoice}\and
+ \Variable{place}\and
+ \Variable{date}} etex;
+ description[7]=btex \Variable{title} etex;
+ description[8]=btex \Variable{subject} etex;
+ description[9]=btex \Macro{opening}\Parameter{Anrede} etex;
+ description[10]=btex \descr{}Brieftext etex;
+ description[11]=btex \Macro{closing}\Parameter{Floskel} etex;
+ description[12]=btex \Variable{signature} etex;
+ description[13]=btex \Variable{location} etex;
+%</!terms>
+endgroup
+enddef;
+
+def defdescriptionen =
+begingroup
+%<*terms>
+ description[1]=btex \descr{}letterhead etex;
+ description[2]=btex \descr{}letter footer etex;
+ description[3]=btex \descr{}return address etex;
+ description[4]=btex \descr{}mode of dispatch etex;
+ description[5]=btex \descr{}addressee etex;
+ description[6]=btex \descr{}reference fields line etex;
+ description[7]=btex \descr{}title etex;
+ description[8]=btex \descr{}subject etex;
+ description[9]=btex \descr{}opening etex;
+ description[10]=btex \descr{}letter body etex;
+ description[11]=btex \descr{}closing etex;
+ description[12]=btex \descr{}signature etex;
+ description[13]=btex \descr{}\begin{tabular}{@{}c@{}}supplemental\\data\end{tabular} etex;
+%</terms>
+%<*!terms>
+ description[1]=btex \Multi{\Variable{firsthead}\\
+ \Variable{fromname}\and
+ \Variable{fromaddress}\and
+ \Variable{fromphone}\and
+ \Variable{fromfax}\and
+ \Variable{fromemail}\and
+ \Variable{fromurl}} etex;
+ description[2]=btex \Variable{firstfoot} etex;
+ description[3]=btex \Variable{backaddress} etex;
+ description[4]=btex \Variable{specialmail} etex;
+ description[5]=btex \Macro{begin}\PParameter{letter}\Parameter{addressee} etex;
+ description[6]=btex \Multi{\Variable{yourref}\and
+ \Variable{yourmail}\and
+ \Variable{myref}\and
+ \Variable{customer}\and
+ \Variable{invoice}\and
+ \Variable{place}\and
+ \Variable{date}} etex;
+ description[7]=btex \Variable{title} etex;
+ description[8]=btex \Variable{subject} etex;
+ description[9]=btex \Macro{opening}\Parameter{opening term} etex;
+ description[10]=btex \descr{}letter body etex;
+ description[11]=btex \Macro{closing}\Parameter{closing term} etex;
+ description[12]=btex \Variable{signature} etex;
+ description[13]=btex \Variable{location} etex;
+%</!terms>
+endgroup
+enddef;
+% \end{macrocode}
+%</tex>
+%
+%<*values>
+% \section{Der Abschnitt \texttt{values}}
+% In diesem Abschnitt finden sich Maße für die unterschiedlichen Briefe
+% ausgehend von \texttt{11pt}, \texttt{a4paper}.
+%
+%<*DIN>
+% \section{Maße für DIN-Briefe}
+%
+%\begin{macrocode}
+numeric paperwidth;
+numeric paperheight;
+numeric textwidth;
+numeric textheight;
+numeric evensidemargin;
+numeric oddsidemargin;
+numeric topmargin;
+numeric headheight;
+numeric headsep;
+numeric topskip;
+numeric footskip;
+numeric baselineskip;
+
+paperwidth = 597.50793pt;
+paperheight = 845.04694pt;
+textwidth = 418.25555pt;
+textheight = 595.80026pt;
+evensidemargin = 17.3562pt;
+oddsidemargin = 17.3562pt;
+topmargin = -25.16531pt;
+headheight = 17.0pt;
+headsep = 20.40001pt;
+topskip = 11.0pt;
+footskip = 47.60002pt;
+baselineskip = 13.6pt;
+
+
+
+numeric foldmarkhpos;
+numeric tfoldmarkvpos;
+numeric bfoldmarkvpos;
+numeric tfoldmarklength;
+numeric pfoldmarklength;
+numeric bfoldmarklength;
+numeric toaddrvpos;
+numeric refvpos;
+numeric refaftervskip;
+numeric toaddrhpos;
+numeric toaddrwidth;
+numeric toaddrheight;
+numeric toaddrindent;
+numeric specialmailindent;
+numeric specialmailrightindent;
+numeric locwidth;
+numeric backaddrheight;
+numeric firstheadvpos;
+numeric firstheadwidth;
+numeric firstfootwidth;
+numeric firstfootvpos;
+numeric refwidth;
+numeric sigindent;
+numeric sigbeforevskip;
+
+
+foldmarkhpos = 3.5mm;
+tfoldmarkvpos = 105mm;
+bfoldmarkvpos = 210mm;
+tfoldmarklength = 2mm;
+pfoldmarklength = 4mm;
+bfoldmarklength = 2mm;
+toaddrvpos = 45mm;
+refvpos = 98.5mm;
+refaftervskip = baselineskip;
+toaddrhpos = 20mm;
+toaddrwidth = 85mm;
+toaddrheight = 40mm;
+toaddrindent = 0mm;
+%specialmailindent = \fill;
+specialmailrightindent = 11pt;
+locwidth = 3.75cm;
+backaddrheight = 5mm;
+firstheadvpos = 8mm;
+firstheadwidth = paperwidth - 2*abs(toaddrhpos);
+firstfootwidth = firstheadwidth;
+firstfootvpos = 1in + topmargin + headheight + headsep + textheight + footskip;
+refwidth = 0pt;
+sigindent = 0mm;
+sigbeforevskip = 2*baselineskip;
+
+% \end{macrocode}
+% weitere Hilfsvariablen
+% \begin{macrocode}
+numeric firstheadhpos;
+numeric firstheadheight;
+numeric firstfoothpos;
+numeric firstfootheight;
+numeric fromrulewidth;
+numeric fromrulehpos;
+numeric specialmailwidth;
+numeric specialmailheight;
+numeric lochpos;
+numeric refhpos;
+numeric refheight;
+numeric titlevpos;
+numeric titlewidth;
+numeric titleheight;
+numeric subjectvpos;
+numeric subjectwidth;
+numeric subjectheight;
+numeric openingvpos;
+numeric openingwidth;
+numeric openingheight;
+numeric bodyvpos;
+numeric bodywidth;
+numeric bodyheight;
+numeric typeareabottom;
+numeric sigvpos;
+numeric sigwidth;
+numeric sigheight;
+firstheadhpos = 0.5*(paperwidth-firstheadwidth);
+firstheadheight = 5*baselineskip;
+firstfoothpos = 0.5*(paperwidth-firstfootwidth);
+firstfootheight = 3*baselineskip;
+fromrulewidth = 0.5*firstheadwidth;
+fromrulehpos = firstheadhpos+0.5*(firstheadwidth-fromrulewidth);
+specialmailwidth = 5cm;
+specialmailheight = baselineskip;
+specialmailindent = toaddrwidth-specialmailrightindent-specialmailwidth;
+lochpos = paperwidth-toaddrhpos-locwidth;
+refhpos = 1in+oddsidemargin;
+refheight = 2*baselineskip;
+refwidth := textwidth;
+titlevpos = refvpos+refheight+refaftervskip;
+titlewidth = 9cm;
+titleheight = 1.2*baselineskip;
+subjectvpos = titlevpos+titleheight+1*baselineskip;
+subjectwidth = 8cm;
+subjectheight = baselineskip;
+openingvpos = subjectvpos+subjectheight+2*baselineskip;
+openingwidth = 6cm;
+openingheight = baselineskip;
+bodyvpos = openingvpos+openingheight+baselineskip;
+bodywidth = textwidth;
+bodyheight = 8*baselineskip;
+typeareabottom = firstfootvpos-footskip;
+sigvpos = bodyvpos+bodyheight+baselineskip;
+sigwidth = 5cm;
+sigheight = baselineskip;
+% \end{macrocode}
+%</DIN>
+%
+%<*SN>
+% \section{Maße für SN-Briefe}
+% \begin{macrocode}
+numeric paperwidth;
+numeric paperheight;
+numeric textwidth;
+numeric textheight;
+numeric evensidemargin;
+numeric oddsidemargin;
+numeric topmargin;
+numeric headheight;
+numeric headsep;
+numeric topskip;
+numeric footskip;
+numeric baselineskip;
+
+paperwidth = 597.50793pt;
+paperheight = 845.04694pt;
+textwidth = 418.25555pt;
+textheight = 595.80026pt;
+evensidemargin = 17.3562pt;
+oddsidemargin = 17.3562pt;
+topmargin = -25.16531pt;
+headheight = 17.0pt;
+headsep = 20.40001pt;
+topskip = 11.0pt;
+footskip = 47.60002pt;
+baselineskip = 13.6pt;
+
+
+
+numeric foldmarkhpos;
+numeric tfoldmarkvpos;
+numeric bfoldmarkvpos;
+numeric tfoldmarklength;
+numeric pfoldmarklength;
+numeric bfoldmarklength;
+numeric toaddrvpos;
+numeric refvpos;
+numeric refaftervskip;
+numeric toaddrhpos;
+numeric toaddrwidth;
+numeric toaddrheight;
+numeric toaddrindent;
+numeric specialmailindent;
+numeric specialmailrightindent;
+numeric locwidth;
+numeric backaddrheight;
+numeric firstheadvpos;
+numeric firstheadwidth;
+numeric firstfootwidth;
+numeric firstfootvpos;
+numeric refwidth;
+numeric sigindent;
+numeric sigbeforevskip;
+
+
+foldmarkhpos = 3.5mm;
+tfoldmarkvpos = 105mm;
+bfoldmarkvpos = 210mm;
+tfoldmarklength = 2mm;
+pfoldmarklength = 4mm;
+bfoldmarklength = 2mm;
+toaddrvpos = 45mm;
+refvpos = 98.5mm;
+refaftervskip = baselineskip;
+toaddrhpos = -8mm;
+toaddrwidth = 90mm;
+toaddrheight = 40mm;
+toaddrindent = 0mm;
+%specialmailindent = \fill;
+specialmailrightindent = 11pt;
+locwidth = (paperwidth-2*abs(toaddrhpos)-toaddrwidth)/2;
+backaddrheight = 5mm;
+firstheadvpos = 8mm;
+firstheadwidth = paperwidth - 2*abs(toaddrhpos);
+firstfootwidth = firstheadwidth;
+firstfootvpos = 1in + topmargin + headheight + headsep + textheight + footskip;
+show firstfootvpos;
+refwidth = 0pt;
+sigindent = 0mm;
+sigbeforevskip = 2*baselineskip;
+
+
+% \end{macrocode}
+% weitere Hilfsvariablen
+% \begin{macrocode}
+numeric firstheadhpos;
+numeric firstheadheight;
+numeric firstfoothpos;
+numeric firstfootheight;
+numeric fromrulewidth;
+numeric fromrulehpos;
+numeric specialmailwidth;
+numeric specialmailheight;
+numeric lochpos;
+numeric refhpos;
+numeric refheight;
+numeric titlevpos;
+numeric titlewidth;
+numeric titleheight;
+numeric subjectvpos;
+numeric subjectwidth;
+numeric subjectheight;
+numeric openingvpos;
+numeric openingwidth;
+numeric openingheight;
+numeric bodyvpos;
+numeric bodywidth;
+numeric bodyheight;
+numeric typeareabottom;
+numeric sigvpos;
+numeric sigwidth;
+numeric sigheight;
+firstheadhpos = 0.5*(paperwidth-firstheadwidth);
+firstheadheight = 4*baselineskip;
+firstfoothpos = 0.5*(paperwidth-firstfootwidth);
+firstfootheight = 3*baselineskip;
+fromrulewidth = 0.5*firstheadwidth;
+fromrulehpos = firstheadhpos+0.5*(firstheadwidth-fromrulewidth);
+specialmailwidth = 5cm;
+specialmailheight = baselineskip;
+specialmailindent = toaddrwidth-specialmailrightindent-specialmailwidth;
+lochpos = -toaddrhpos;
+refhpos = 1in+oddsidemargin;
+refheight = 2*baselineskip;
+refwidth := textwidth;
+titlevpos = refvpos+refheight+refaftervskip;
+titlewidth = 9cm;
+titleheight = 1.2*baselineskip;
+subjectvpos = titlevpos+titleheight+1*baselineskip;
+subjectwidth = 8cm;
+subjectheight = baselineskip;
+openingvpos = subjectvpos+subjectheight+2*baselineskip;
+openingwidth = 6cm;
+openingheight = baselineskip;
+bodyvpos = openingvpos+openingheight+baselineskip;
+bodywidth = textwidth;
+bodyheight = 8*baselineskip;
+typeareabottom = firstfootvpos-footskip;
+sigvpos = bodyvpos+bodyheight+baselineskip;
+sigwidth = 5cm;
+sigheight = baselineskip;
+% \end{macrocode}
+%</SN>
+%</values>
+%
+%<*include>
+% \section{Der Abschnitt \texttt{include}}
+% \changes{}{2005-08-30}{Korrektur der Stiftstärken}
+%
+% Dieser Abschnitt erzeugt die Datei \texttt{plinc.mp} mit den wesentlichen
+% Definitionen für die Erzeugung eines Elements. Eine Element ist
+% beispielsweise eine Pseudolänge, eine Beschreibung (Variable), ein Feld,
+% \dots).
+%
+% \begin{macrocode}
+def lengths =
+ toaddrindent := 0.7cm;
+% \end{macrocode}
+% Die Breite des \texttt{location}-Feldes wird später berechnet und deshalb
+% hier nicht mehr mit
+% \begin{verbatim}
+% locwidth := 3.7cm;
+% \end{verbatim}
+% gesetzt.
+% \begin{macrocode}
+ firstheadheight := firstheadheight-3pt;
+ firstheadvpos := firstheadvpos+3pt;
+ sigindent := 1cm;
+ if (latexlengths=true):
+ writelatexlengths;
+ fi
+ if (filled=true):
+ drawfilledelements;
+ fi
+ if (framed=true):
+ drawframedelements;
+ fi
+ drawpaperandfoldmarks;
+ drawboxes;
+% \end{macrocode}
+% From-Rule:
+% \begin{macrocode}
+ draw ((fromrulehpos,firstheadvpos+firstheadheight-strichstaerke)--
+ (fromrulehpos+fromrulewidth,firstheadvpos+firstheadheight-strichstaerke))
+ transformed T withpen pencircle scaled strichstaerke;
+ writelengths;
+enddef;
+
+def describe(expr lang) =
+ drawpaperandfoldmarks;
+ if (filled=true):
+ drawfilledelements;
+ fi
+ if (framed=true):
+ drawframedelements;
+ fi
+ writedescription(lang);
+enddef;
+
+def drawframedelements =
+ if toaddrhpos < 0 :
+ istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth;
+ else :
+ istoaddrhpos := toaddrhpos;
+ fi
+ pickup pencircle scaled framestrichstaerke;
+ drawoptions(withcolor drawcolor);
+% \end{macrocode}
+% Kopf und Fuß
+% \begin{macrocode}
+ draw unitsquare xscaled firstheadwidth yscaled firstheadheight
+ shifted (firstheadhpos, firstheadvpos) transformed T;
+ draw unitsquare xscaled firstfootwidth yscaled firstfootheight
+ shifted (firstfoothpos, firstfootvpos) transformed T;
+% \end{macrocode}
+% Adressfeld
+% \begin{macrocode}
+ draw unitsquare xscaled toaddrwidth yscaled backaddrheight
+ shifted (istoaddrhpos, toaddrvpos) transformed T;
+ draw unitsquare xscaled specialmailwidth yscaled specialmailheight
+ shifted (istoaddrhpos+toaddrwidth-specialmailwidth-specialmailrightindent,
+ toaddrvpos+backaddrheight) transformed T;
+ draw unitsquare xscaled (toaddrwidth-2*toaddrindent)
+ yscaled (toaddrheight-backaddrheight-specialmailheight)
+ shifted (istoaddrhpos+toaddrindent,
+ toaddrvpos+backaddrheight+specialmailheight) transformed T;
+% \end{macrocode}
+% Absenderergänzung:
+% \begin{macrocode}
+ draw unitsquare xscaled locwidth yscaled toaddrheight
+ shifted (lochpos, toaddrvpos) transformed T;
+% \end{macrocode}
+% Geschäftszeile:
+% \begin{macrocode}
+ draw unitsquare xscaled refwidth yscaled refheight
+ shifted (1in+oddsidemargin, refvpos) transformed T;
+% \end{macrocode}
+% Titel:
+% \begin{macrocode}
+ draw unitsquare xscaled titlewidth yscaled titleheight
+ shifted (1in+oddsidemargin+0.5(textwidth-titlewidth), titlevpos)
+ transformed T;
+% \end{macrocode}
+% Betreff:
+% \begin{macrocode}
+ draw unitsquare xscaled subjectwidth yscaled subjectheight
+ shifted (1in+oddsidemargin, subjectvpos) transformed T;
+% \end{macrocode}
+% Anrede:
+% \begin{macrocode}
+ draw unitsquare xscaled openingwidth yscaled openingheight
+ shifted (1in+oddsidemargin, openingvpos) transformed T;
+% \end{macrocode}
+% Brieftext:
+% \begin{macrocode}
+ draw unitsquare xscaled bodywidth yscaled bodyheight
+ shifted (1in+oddsidemargin, bodyvpos) transformed T;
+% \end{macrocode}
+% Signatur:
+% \begin{macrocode}
+ draw unitsquare xscaled sigwidth yscaled sigheight
+ shifted (1in+oddsidemargin+sigindent, sigvpos) transformed T;
+ draw unitsquare xscaled (0.8*sigwidth) yscaled sigheight
+ shifted (1in+oddsidemargin+sigindent+.1*sigwidth,
+ sigvpos+sigheight+sigbeforevskip) transformed T;
+enddef;
+
+def drawfilledelements =
+ if toaddrhpos < 0 :
+ istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth;
+ else :
+ istoaddrhpos := toaddrhpos;
+ fi
+ drawoptions (withcolor fillcolor);
+% \end{macrocode}
+% Kopf und Fuß:
+% \begin{macrocode}
+ fill unitsquare xscaled firstheadwidth yscaled firstheadheight
+ shifted (firstheadhpos, firstheadvpos) transformed T;
+ fill unitsquare xscaled firstfootwidth yscaled firstfootheight
+ shifted (firstfoothpos, firstfootvpos) transformed T;
+% \end{macrocode}
+% Adressfeld:
+% \begin{macrocode}
+ fill unitsquare xscaled toaddrwidth yscaled backaddrheight
+ shifted (istoaddrhpos, toaddrvpos) transformed T;
+ fill unitsquare xscaled specialmailwidth yscaled specialmailheight
+ shifted (istoaddrhpos+toaddrwidth-specialmailwidth-specialmailrightindent,
+ toaddrvpos+backaddrheight) transformed T;
+ fill unitsquare xscaled (toaddrwidth-2*toaddrindent)
+ yscaled (toaddrheight-backaddrheight-specialmailheight)
+ shifted (istoaddrhpos+toaddrindent,
+ toaddrvpos+backaddrheight+specialmailheight) transformed T;
+% \end{macrocode}
+% Absenderergänzung:
+% \begin{macrocode}
+ fill unitsquare xscaled locwidth yscaled toaddrheight
+ shifted (lochpos, toaddrvpos) transformed T;
+% \end{macrocode}
+% Geschäftszeile:
+% \begin{macrocode}
+ fill unitsquare xscaled refwidth yscaled refheight
+ shifted (refhpos, refvpos) transformed T;
+% \end{macrocode}
+% Titel:
+% \begin{macrocode}
+ fill unitsquare xscaled titlewidth yscaled titleheight
+ shifted (1in+oddsidemargin+0.5(textwidth-titlewidth), titlevpos)
+ transformed T;
+% \end{macrocode}
+% Betreff:
+% \begin{macrocode}
+ fill unitsquare xscaled subjectwidth yscaled subjectheight
+ shifted (1in+oddsidemargin, subjectvpos) transformed T;
+% \end{macrocode}
+% Anrede:
+% \begin{macrocode}
+ fill unitsquare xscaled openingwidth yscaled openingheight
+ shifted (1in+oddsidemargin, openingvpos) transformed T;
+% \end{macrocode}
+% Brieftext:
+% \begin{macrocode}
+ fill unitsquare xscaled bodywidth yscaled bodyheight
+ shifted (1in+oddsidemargin, bodyvpos) transformed T;
+% \end{macrocode}
+% Signatur:
+% \begin{macrocode}
+ fill unitsquare xscaled sigwidth yscaled sigheight
+ shifted (1in+oddsidemargin+sigindent, sigvpos) transformed T;
+ fill unitsquare xscaled (0.8*sigwidth) yscaled sigheight
+ shifted (1in+oddsidemargin+sigindent+.1*sigwidth,
+ sigvpos+sigheight+sigbeforevskip) transformed T;
+enddef;
+
+def drawpaperandfoldmarks =
+ pickup pencircle scaled strichstaerke;
+ drawoptions(withcolor drawcolor);
+% \end{macrocode}
+% Briefbogen:
+% \begin{macrocode}
+ draw unitsquare xscaled paperwidth yscaled paperheight transformed T;
+% \end{macrocode}
+% Falzmarken:
+% \begin{macrocode}
+ draw ((foldmarkhpos,tfoldmarkvpos)--
+ (foldmarkhpos+tfoldmarklength,tfoldmarkvpos)) transformed T;
+ draw ((foldmarkhpos,0.5*paperheight)--
+ (foldmarkhpos+pfoldmarklength,0.5*paperheight)) transformed T;
+ draw ((foldmarkhpos,bfoldmarkvpos)--
+ (foldmarkhpos+bfoldmarklength,bfoldmarkvpos)) transformed T;
+enddef;
+
+def drawboxes =
+ if toaddrhpos < 0 :
+ istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth;
+ else :
+ istoaddrhpos := toaddrhpos;
+ fi
+ pickup pencircle scaled hilfsstrichstaerke;
+ drawoptions(withcolor drawcolor);
+% \end{macrocode}
+% Kasten Adressfeld:
+% \begin{macrocode}
+ draw unitsquare xscaled toaddrwidth yscaled toaddrheight
+ shifted (istoaddrhpos, toaddrvpos) transformed T;
+% \end{macrocode}
+% ^^A auskommentiert:
+% ^^A Kasten Adresszeile
+% ^^A draw unitsquare xscaled (paperwidth-2*toaddrhpos)
+% ^^A yscaled toaddrheight shifted (toaddrhpos, toaddrvpos) transformed T;
+% Kasten Signatur:
+% \begin{macrocode}
+ draw unitsquare xscaled sigwidth yscaled (2*sigheight+sigbeforevskip)
+ shifted (1in+oddsidemargin+sigindent,sigvpos) transformed T;
+% \end{macrocode}
+% Kasten Satzspiegel:
+% \begin{macrocode}
+ draw unitsquare xscaled textwidth yscaled (typeareabottom-titlevpos)
+ shifted (1in+oddsidemargin,titlevpos) transformed T;
+enddef;
+
+def writelengths =
+begingroup
+ if toaddrhpos < 0 :
+ istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth;
+ else :
+ istoaddrhpos := toaddrhpos;
+ fi
+ deflengths;
+ pickup pencircle scaled hilfsstrichstaerke;
+ drawoptions(withcolor drawcolor);
+% \end{macrocode}
+% \texttt{firstheadhpos}:
+% \begin{macrocode}
+ if firstheadhpos > 0 :
+ hmeasure((0,firstheadvpos), firstheadhpos, plength[33], (12pt,0pt), top);
+ else :
+ hmeasure((0,firstheadvpos), -firstheadhpos, plength[34], (12pt,0pt), top);
+ fi
+% \end{macrocode}
+% \texttt{firstheadwidth}:
+% \begin{macrocode}
+ hmeasure((firstheadhpos,firstheadvpos), firstheadwidth, plength[6], origin,
+ top);
+% \end{macrocode}
+% \texttt{fromrulewidth}:
+% \begin{macrocode}
+ hmeasure((fromrulehpos,firstheadvpos+firstheadheight-strichstaerke),
+ fromrulewidth, plength[23], origin, top);
+% \end{macrocode}
+% \texttt{toaddrwidth}:
+% \begin{macrocode}
+ hmeasure((istoaddrhpos,toaddrvpos), toaddrwidth, plength[20], origin, top);
+% \end{macrocode}
+% \texttt{locwidth}:
+% \begin{macrocode}
+ hmeasure((lochpos,toaddrvpos), locwidth, plength[8], origin, top);
+% \end{macrocode}
+% \texttt{specialmailindent}:
+% \begin{macrocode}
+ hmeasure((istoaddrhpos,
+ toaddrvpos+backaddrheight+0.5*(specialmailheight+tickhoehe)),
+ specialmailindent, plength[14], (-0.5*specialmailindent+toaddrindent,+14pt), rt);
+% \end{macrocode}
+% \texttt{specialmailrightindent}:
+% \begin{macrocode}
+ hmeasure((istoaddrhpos+toaddrwidth-specialmailrightindent,
+ toaddrvpos+backaddrheight+0.5*(specialmailheight+tickhoehe)),
+ specialmailrightindent, plength[15],
+ (0.5*specialmailrightindent-3pt,0pt), rt);
+% \end{macrocode}
+% \texttt{toaddrhpos}:
+% \begin{macrocode}
+ if toaddrhpos > 0 :
+ hmeasure((0,toaddrvpos), toaddrhpos, plength[17], (6pt,0pt), top);
+ else :
+ hmeasure((0,toaddrvpos), -toaddrhpos, plength[24], (6pt,0pt), top);
+ fi
+% \end{macrocode}
+% \texttt{lochpos}:
+% \begin{macrocode}
+ if toaddrhpos > 0 :
+ hmeasure((lochpos+locwidth,toaddrvpos), toaddrhpos, plength[25], (-6pt,0pt),
+ top);
+ else :
+ hmeasure((paperwidth+toaddrhpos,toaddrvpos), -toaddrhpos, plength[26],
+ (-6pt,0pt), top);
+ fi
+% \end{macrocode}
+% \texttt{toaddrindent}:
+% \begin{macrocode}
+ hmeasure((istoaddrhpos,
+ toaddrvpos+0.75*(toaddrheight+backaddrheight+specialmailheight+tickhoehe)),
+ toaddrindent, plength[18], (0.5*toaddrindent,0pt), rt);
+ hmeasure((istoaddrhpos+toaddrwidth-toaddrindent,
+ toaddrvpos+0.75*(toaddrheight+backaddrheight+specialmailheight+tickhoehe)),
+ toaddrindent, plength[18], (-0.5*toaddrindent,0pt), lft);
+% \end{macrocode}
+% \texttt{refwidth}:
+% \begin{macrocode}
+ hmeasure((1in+oddsidemargin,refvpos), refwidth, plength[11], origin, top);
+% \end{macrocode}
+% \texttt{refhpos}:
+% \begin{macrocode}
+ hmeasure((0,refvpos), refhpos, plength[22], origin, top);
+% \end{macrocode}
+% \texttt{foldmarkhpos}:
+% \begin{macrocode}
+ hmeasure((0,bfoldmarkvpos+tickhoehe), foldmarkhpos, plength[7],
+ (-6pt,0.5*tickhoehe), lrt);
+% \end{macrocode}
+% \texttt{sigindent}:
+% \begin{macrocode}
+ hmeasure((1in+oddsidemargin,sigvpos+0.5*(sigheight+tickhoehe)), sigindent,
+ plength[13], (-0.5*sigindent,0pt), lft);
+% \end{macrocode}
+% \texttt{firstfoothpos}:
+% \begin{macrocode}
+ if firstfoothpos > 0 :
+ hmeasure((0,firstfootvpos+firstfootheight+tickhoehe), firstfoothpos, plength[31], (12pt,0pt), bot);
+ else :
+ hmeasure((firstfootwidth-firstfoothpos,firstfootvpos+firstfootheight+tickhoehe), -firstfoothpos, plength[32], (12pt,0pt), bot);
+ fi
+% \end{macrocode}
+% \texttt{firstfootwidth}:
+% \begin{macrocode}
+ hmeasure((firstfoothpos,firstfootvpos), firstfootwidth, plength[4], origin,
+ top);
+% \end{macrocode}
+% \texttt{toaddrheight}:
+% \begin{macrocode}
+ vmeasure((istoaddrhpos-tickhoehe,toaddrvpos), toaddrheight,
+ plength[21] rotated 90, origin, lft);
+% \end{macrocode}
+% \texttt{locheight}:
+% \begin{macrocode}
+ vmeasure((lochpos+locwidth,toaddrvpos), toaddrheight,
+ plength[28] rotated 90, origin, rt);
+% \end{macrocode}
+% \texttt{subjectbeforevskip}
+% \begin{macrocode}
+ label(plength[30],
+ (1in+oddsidemargin+openingwidth+152pt, subjectvpos-.5*baselineskip)
+ transformed T);
+% \end{macrocode}
+% \texttt{subjectaftervskip}
+% \begin{macrocode}
+ vmeasure((1in+oddsidemargin+openingwidth,subjectvpos+baselineskip),
+ 2*baselineskip, plength[29], origin, rt);
+% \end{macrocode}
+% \texttt{backaddrheight}:
+% \begin{macrocode}
+ vmeasure((istoaddrhpos+toaddrwidth,toaddrvpos), backaddrheight, plength[1],
+ origin, rt);
+% \end{macrocode}
+% \texttt{refaftervskip}:
+% ^^A auskommentiert:
+% ^^A vmeasure((1in+oddsidemargin+0.5*(textwidth+titlewidth),
+% ^^A refvpos+refheight), refaftervskip, plength[9], origin, rt);
+% \begin{macrocode}
+ vmeasure((1in+oddsidemargin+textwidth,refvpos+refheight), refaftervskip,
+ plength[9], origin, rt);
+% \end{macrocode}
+% \texttt{sigbeforvskip}:
+% \begin{macrocode}
+ vmeasure((1in+oddsidemargin+sigindent+0.1*sigwidth-tickhoehe,
+ sigvpos+sigheight), sigbeforevskip, plength[12], origin, rt);
+% \end{macrocode}
+% \texttt{firstheadvpos}:
+% \begin{macrocode}
+ if firstheadhpos < 0 :
+ dmeasure((-firstheadhpos-2*tickhoehe,firstheadvpos), plength[5], origin, rt);
+ else :
+ dmeasure((firstheadhpos+firstheadwidth,firstheadvpos), plength[5], origin, lft);
+ fi
+% \end{macrocode}
+% \texttt{toaddrvpos}:
+% \begin{macrocode}
+ if toaddrhpos > 0 :
+ dmeasure((istoaddrhpos+toaddrwidth,toaddrvpos), plength[19], origin, top);
+ else :
+ dmeasure((istoaddrhpos-2*tickhoehe,toaddrvpos), plength[19], origin, top);
+ fi
+% \end{macrocode}
+% \texttt{locvpos}:
+% \begin{macrocode}
+ if toaddrhpos > 0 :
+ dmeasure((lochpos-2*tickhoehe,toaddrvpos), plength[27], origin, top);
+ else :
+ dmeasure((lochpos+locwidth,toaddrvpos), plength[27], origin, top);
+ fi
+% \end{macrocode}
+% \texttt{refvpos}:
+% \begin{macrocode}
+ dmeasure((refhpos+refwidth,refvpos), plength[10], (0pt,0pt), top);
+% \end{macrocode}
+% \texttt{tfoldmarkvpos}:
+% \begin{macrocode}
+ dmeasure((foldmarkhpos+tfoldmarklength,tfoldmarkvpos), plength[16],
+ (18pt,1.5*tickhoehe), bot);
+% \end{macrocode}
+% \texttt{bfoldmarkvpos}:
+% \begin{macrocode}
+ dmeasure((foldmarkhpos+bfoldmarklength,bfoldmarkvpos), plength[2],
+ (18pt,0pt), top);
+% \end{macrocode}
+% \texttt{firstfootvpos}:
+% \begin{macrocode}
+ dmeasure((firstfoothpos-2*tickhoehe,firstfootvpos), plength[3], origin, top);
+endgroup
+enddef;
+
+def writelatexlengths =
+begingroup
+ color temp;
+ deflatexlengths;
+ temp := drawcolor;
+ drawcolor := latexlengthcolor;
+ pickup pencircle scaled hilfsstrichstaerke;
+% \end{macrocode}
+% \LaTeX-Längen:
+% \begin{macrocode}
+ vmeasure((1in+oddsidemargin+openingwidth,subjectvpos-baselineskip),
+ baselineskip, latexlength[1], origin, rt);
+ vmeasure((1in+oddsidemargin+openingwidth,openingvpos+baselineskip),
+ baselineskip, latexlength[1], origin, rt);
+ vmeasure((1in+oddsidemargin+sigindent+sigwidth,sigvpos-baselineskip),
+ baselineskip, latexlength[1], origin, rt);
+ hmeasure((1in+oddsidemargin,typeareabottom+tickhoehe),
+ textwidth, latexlength[3], (0pt,-3pt), bot);
+ draw ((1in+oddsidemargin+textwidth,typeareabottom)--
+ (firstfoothpos+firstfootwidth,typeareabottom)) transformed T;
+ vmeasure((firstfoothpos+firstfootwidth,typeareabottom),
+ firstfootvpos-typeareabottom, latexlength[4] rotated 90, origin,
+ rt);
+ drawcolor := temp;
+endgroup
+enddef;
+% \end{macrocode}
+% Anker ist links unten.
+% \begin{macrocode}
+def hmeasure(expr p, breite, pic, s)(suffix alig) =
+begingroup
+ save pleft, pright;
+ pair pleft, pright;
+ drawoptions(withcolor drawcolor);
+% \end{macrocode}
+% linker Tick:
+% \begin{macrocode}
+ draw (p--p shifted (0,-tickhoehe)) transformed T;
+% \end{macrocode}
+% rechter Tick:
+% \begin{macrocode}
+ draw (p--p shifted (0,-tickhoehe)) shifted (breite,0) transformed T;
+% \end{macrocode}
+% Messlinie;
+% die Korrektur der Stiftstärke muss nach der Transformation
+% in Zeichenkoordinaten erfolgen:
+% \begin{macrocode}
+ pleft = p shifted (0,-0.5*tickhoehe)
+ transformed T shifted (hilfsstrichstaerke,0);
+ pright = p shifted (0,-0.5*tickhoehe) shifted (breite,0)
+ transformed T shifted (-hilfsstrichstaerke,0);
+ drawdblarrow pleft--pright;
+ label.alig(pic, (p shifted (0.5*breite, -0.5*tickhoehe) shifted s)
+ transformed T);
+endgroup
+enddef;
+
+
+% \end{macrocode}
+% Anker ist links oben.
+% \begin{macrocode}
+def vmeasure(expr p, breite, pic, s)(suffix alig) =
+begingroup
+ save ptop, pbottom;
+ pair ptop, pbottom;
+ drawoptions(withcolor drawcolor);
+% \end{macrocode}
+% oberer Tick:
+% \begin{macrocode}
+ draw (p--p shifted (tickhoehe,0)) transformed T;
+% \end{macrocode}
+% unterer Tick:
+% \begin{macrocode}
+ draw (p--p shifted (tickhoehe,0)) shifted (0,breite) transformed T;
+% \end{macrocode}
+% Messlinie;
+% die Korrektur der Stiftstärke muss nach der Transformation
+% in Zeichenkoordinaten erfolgen:
+% \begin{macrocode}
+ ptop = p shifted (0.5*tickhoehe,0)
+ transformed T shifted (0,-hilfsstrichstaerke);
+ pbottom = p shifted (0.5*tickhoehe,0) shifted (0,breite)
+ transformed T shifted (0,hilfsstrichstaerke);
+ drawdblarrow ptop--pbottom;
+ label.alig(pic, (p shifted (0.5*tickhoehe, 0.5*breite) shifted s)
+ transformed T);
+endgroup
+enddef;
+
+
+% \end{macrocode}
+% Anker ist links unten.
+% \begin{macrocode}
+def dmeasure(expr p, pic, s)(suffix alig) =
+begingroup
+ save ptop, pbottom;
+ pair ptop, pbottom;
+ drawoptions(withcolor drawcolor);
+% \end{macrocode}
+% horizontale Linie:
+% \begin{macrocode}
+ draw (p--p shifted (2*tickhoehe,0)) transformed T;
+% \end{macrocode}
+% Messlinie:
+% \begin{macrocode}
+ ptop = p shifted (0,-1.5*tickhoehe) shifted (tickhoehe,0)
+ transformed T;
+% \end{macrocode}
+% Die Korrektur der Stiftstärke muss nach der Transformation
+% in Zeichenkoordinaten erfolgen.
+% \begin{macrocode}
+ pbottom = p shifted (tickhoehe,0)
+ transformed T shifted (0,hilfsstrichstaerke);
+ drawarrow ptop--pbottom;
+ label.alig(pic, (p shifted (tickhoehe, -1.5*tickhoehe) shifted s)
+ transformed T);
+endgroup
+enddef;
+
+
+def writedescription(expr lang) =
+ if toaddrhpos < 0 :
+ istoaddrhpos := paperwidth-abs(toaddrhpos)-toaddrwidth;
+ else :
+ istoaddrhpos := toaddrhpos;
+ fi
+ if (lang="de"): defdescriptionde;
+ else: defdescriptionen;
+ fi
+ drawoptions(withcolor drawcolor);
+% \end{macrocode}
+% Kopf und Fuß:
+% \begin{macrocode}
+ label(description[1],
+ (firstheadhpos+0.5*firstheadwidth, firstheadvpos+0.5*firstheadheight)
+ transformed T);
+ label(description[2],
+ (firstfoothpos+0.5*firstfootwidth, firstfootvpos+0.5*firstfootheight)
+ transformed T);
+% \end{macrocode}
+% Adressfeld:
+% \begin{macrocode}
+ label(description[3],
+ (istoaddrhpos+0.5*toaddrwidth, toaddrvpos+0.5*backaddrheight)
+ transformed T);
+ label(description[4],
+ (istoaddrhpos+toaddrwidth-specialmailrightindent-0.5*specialmailwidth,
+ toaddrvpos+backaddrheight+0.5*specialmailheight) transformed T);
+ label(description[5],
+ (istoaddrhpos+0.5*toaddrwidth,
+ toaddrvpos+backaddrheight+specialmailheight+0.5*(toaddrheight-backaddrheight-specialmailheight))
+ transformed T);
+% \end{macrocode}
+% Absenderergänzung:
+% \begin{macrocode}
+ label(description[13], (lochpos+0.5*locwidth, toaddrvpos+0.5*toaddrheight)
+ transformed T);
+% \end{macrocode}
+% Geschäftszeile:
+% \begin{macrocode}
+ label(description[6], (1in+oddsidemargin+0.5*refwidth,
+ refvpos+0.5*refheight)
+ transformed T);
+% \end{macrocode}
+% Titel:
+% \begin{macrocode}
+ label(description[7],
+ (1in+oddsidemargin+0.5textwidth, titlevpos+0.5*titleheight)
+ transformed T);
+% \end{macrocode}
+% Betreff:
+% \begin{macrocode}
+ label(description[8],
+ (1in+oddsidemargin+0.5*subjectwidth, subjectvpos+0.5*subjectheight)
+ transformed T);
+% \end{macrocode}
+% Anrede:
+% \begin{macrocode}
+ label(description[9],
+ (1in+oddsidemargin+0.5*openingwidth, openingvpos+0.5*openingheight)
+ transformed T);
+% \end{macrocode}
+% Brieftext:
+% \begin{macrocode}
+ label(description[10],
+ (1in+oddsidemargin+0.5*bodywidth, bodyvpos+0.5*bodyheight)
+ transformed T);
+% \end{macrocode}
+% Signatur:
+% \begin{macrocode}
+ label(description[11],
+ (1in+oddsidemargin+sigindent+0.5*sigwidth, sigvpos+0.5*sigheight)
+ transformed T);
+ label(description[12],
+ (1in+oddsidemargin+sigindent+0.5*sigwidth,
+ sigvpos+sigheight+sigbeforevskip+0.5*sigheight) transformed T);
+enddef;
+% \end{macrocode}
+%</include>
+%
+% \iffalse
+\endinput
+%%% Local Variables:
+%%% mode: doctex
+%%% coding: iso-latin-1
+%%% TeX-master: t
+%%% End:
+% \fi
diff --git a/macros/latex/contrib/koma-script/source-doc/scrguide.cls b/macros/latex/contrib/koma-script/source-doc/scrguide.cls
new file mode 100644
index 0000000000..cee1ba89c7
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/scrguide.cls
@@ -0,0 +1,2782 @@
+% ======================================================================
+% scrguide.cls
+% Copyright (c) Markus Kohm, 2005-2019
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrguide.cls
+% Copyright (c) Markus Kohm, 2005-2019
+%
+% 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.
+% ======================================================================
+%
+% \section{Identification}
+%
+% \begin{macrocode}
+\ProvidesClass{scrguide}[2019/02/01 v1.13d internal KOMA-Script guide class]
+% \end{macrocode}
+%
+%
+% \section{Options on my own}
+%
+% This class also has options.
+%
+% \begin{option}{pagereftolabel}
+% |\autopageref| should reference the label not the page.
+% \begin{option}{pagereftopage}
+% |\autopageref| should reference the page not the label.
+% \begin{macro}{\if@pagereftolabel}
+% \begin{macrocode}
+\newif\if@pagereftolabel\@pagereftolabeltrue
+\DeclareOption{pagereftolabel}{\@pagereftolabeltrue}
+\DeclareOption{pagereftopage}{\@pagereftolabelfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{moreindexnotes}
+% Show more notes at the index.
+% \begin{option}{lessindexnotes}
+% Show less notes at the index.
+% \begin{macro}{\if@moreindexnotes}
+% \begin{macrocode}
+\newif\if@moreindexnotes\@moreindexnotesfalse
+\DeclareOption{moreindexnotes}{\@moreindexnotestrue}
+\DeclareOption{lessindexnotes}{\@moreindexnotesfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \end{option}
+%
+% Note: You have to pass options to class \textsf{scrguide}, because only
+% these options will be processed by |\LoadClassWithOptions| below.
+% \begin{macrocode}
+\ExecuteOptions{pagereftolabel,lessindexnotes}
+\PassOptionsToClass{%
+ bibliography=totoc,
+ index=totoc,
+ captions=tableabove,
+ headings=small,
+ headings=optiontoheadandtoc,
+ version=last,
+}{scrguide}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+%
+% \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 \detokenize{#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 \detokenize{#6}$\detokenize{#7}]\relax
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% NOTE: I use \texttt{latin1} instead of the prefered \texttt{utf8} because of
+% problems of early versions of package \textsf{listings}.
+% \begin{macrocode}
+\LoadClassWithOptions{scrbook}
+\RequirePackage[latin1]{inputenc}
+\RequirePackage[TS1,T1]{fontenc}
+\newcommand*{\strngerman}{ngerman}
+\newcommand*{\strenglish}{english}
+\edef\languages{\ifx\languagename\strngerman main=\fi ngerman,%
+ \ifx\languagename\strenglish main=\fi english}
+\edef\uselanguage{\languagename}
+\expandafter\RequirePackage\expandafter[\languages]{babel}%
+\AtBeginDocument{%
+ \typeout{TRACE: Current language is `\languagename`.}}%
+\RequirePackage[fixlanguage]{babelbib}
+\expandafter\selectbiblanguage\expandafter{\uselanguage}
+\RequirePackage{afterpage}
+\RequirePackage{makeidx}
+\RequirePackage{scrdate}
+\RequirePackage{scrtime}
+\RequirePackage{picture}
+\RequirePackage{graphicx}
+\RequirePackage{booktabs}
+\RequirePackage{longtable}
+\RequirePackage{amsmath}
+\RequirePackage{listings}
+\RequirePackage{multicol}
+\RequirePackage{marginnote}
+\RequirePackage{tabularx}
+\RequirePackage{scrhack}%
+\RequirePackage{mparhack}%
+% \end{macrocode}
+%
+% \section{Dependence from \KOMAScript{} Version}
+%
+% \begin{macro}{currentversionlt}
+\newcommand*{\currentversionlt}[1]{%
+ \expandafter\ifx\csname scr@v@#1\endcsname\relax \maxdimen
+ \else\csname scr@v@#1\endcsname\fi >\scr@compatibility\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Free or Non-Free Version}
+%
+% \begin{macrocode}
+\newif\ifshortversion\shortversionfalse
+\InputIfFileExists{scrnonfree.tex}{}{%
+ \RequirePackage[svgnames]{xcolor}%
+ \RequirePackage{tocstyle}% hyperref needs xcolor with tocstyle
+ \RequirePackage{tikz}%
+ \usetikzlibrary{calc}%
+ \RequirePackage[\uselanguage]{hyperref}%
+ \RequirePackage[open,openlevel=0]{bookmark}% improved pdf bookmarks
+ \typeout{^^J
+ ----------------------------------------------------------------------^^J
+ FREE VERSION OF THE KOMA-SCRIPT GUIDE.^^J
+ NOTE THAT THIS VERSION MAY BE FULL OF UGLY PARAGRAPH AND PAGE BREAKS.^^J
+ THIS IS BECAUSE THIS VERSION OF THE KOMA-SCRIPT GUIDE IS UNDER^^J
+ CONSTRUCTION FOREVER.^^J
+ ----------------------------------------------------------------------^^J
+ ^^J%
+ }%
+ \newcommand*{\iffree}{\@firstoftwo}%
+ \newcommand*{\important}[2][]{}%
+ \newcommand*{\textnote}[2][]{}%
+ \shortversiontrue
+ \newcommand*{\LoadNonFree}[2]{\par\GuideLoadNonFree\par}%
+ \AtBeginDocument{\InputIfFileExists{linkalias.tex}{}{}}%
+ \usepackage{lmodern}%
+ \@twosidefalse\@openrightfalse\@mparswitchfalse
+ \RequirePackage{geometry}%
+ \geometry{papersize={180mm,210mm},%
+ includehead,includemp,reversemp,marginparwidth=4em,%
+ vmargin={1.5mm,3mm},hmargin=1.75mm}%
+ \RequirePackage{scrlayer-scrpage}%
+ \clearpairofpagestyles
+ \ihead{%
+ \smash{%
+ \hspace*{.5em}\rule[-\dp\strutbox]{0pt}{\headheight}\headmark
+ }%
+ }%
+ \ohead*{\smash{\pagemark\hspace{2mm}}}%
+ \colorlet{headbackground}{DarkBlue}%
+ \colorlet{headline}{white}%
+ \setkomafont{pageheadfoot}{\small\sffamily\bfseries\color{headline}}%
+ \setkomafont{pagenumber}{}%
+ \DeclareNewLayer[head,background,
+ hoffset=0pt,
+ width=\paperwidth,
+ addheight=\dimexpr \topmargin+1in+\dp\strutbox\relax,
+ addvoffset=2\dp\strutbox,
+ contents={%
+ \color{headbackground}\rule{\layerwidth}{\layerheight}}]
+ {headbackground}%
+ \AddLayersAtBeginOfPageStyle{scrheadings}{headbackground}%
+ \renewcommand*{\chaptermark}[1]{%
+ \@mkdouble{\ifnumbered{chapter}{\chaptermarkformat}{}##1}%
+ }%
+ \renewcommand*{\chaptermarkformat}{%
+ \makebox[\dimexpr \oddsidemargin+1in-.5em][r]{%
+ \chapapp~\thechapter:~%
+ }%
+ }%
+ \renewcommand*{\chapterformat}{}%
+ \renewcommand*{\chapterpagestyle}{scrheadings}%
+ \setlength{\@tempdimc}{\oddsidemargin}%
+ \addtolength{\@tempdimc}{1in}%
+ \setheadwidth[-\@tempdimc]{paper}%
+ % Entweder:
+ \hypersetup{colorlinks,citecolor=Green,linkcolor=Crimson,urlcolor=Blue}%
+ % oder:
+% \hypersetup{pdfborderstyle={/S/U/W 1}}%
+ \let\orig@maketitle\maketitle
+ \def\maketitle{%
+ \begingroup
+ \@twosidetrue
+ \let\cleardoublepage\clearpage
+ \addtolength{\oddsidemargin}{\evensidemargin}%
+ \setlength{\evensidemargin}{.5\oddsidemargin}%
+ \setlength{\oddsidemargin}{\evensidemargin}%
+ \orig@maketitle\relax
+ \endgroup
+ }%
+ \renewcommand*{\chapterheadstartvskip}{}%
+ \raggedbottom
+ \sloppy
+ \lstset{breaklines,prebreak=\mbox{$\hookleftarrow$}}%
+}%
+% \end{macrocode}
+%
+% Now loading the last package (better do it late than never):
+% \begin{macrocode}
+\RequirePackage{textcomp}
+% \end{macrocode}
+%
+% \section{Load common paragraphs}
+%
+% \begin{macrocode}
+\newcommand*{\ThisCommonFile}{}%
+\newcommand*{\ThisCommonLabelBase}{}
+\newcommand*{\IfThisCommonLabelBase}[1]{%
+ \expandafter\ifstr\expandafter{\ThisCommonLabelBase}{#1}%
+ \@firstoftwo\@secondoftwo
+}
+\newcommand*{\IfThisCommonLabelBaseOneOf}[1]{%
+ \begingroup
+ \@tempswafalse
+ \@for \reserved@a:=#1\do{%
+ \expandafter\IfThisCommonLabelBase\expandafter{\reserved@a}%
+ {\@tempswatrue}{}%
+ }%
+ \if@tempswa
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup
+}
+\newcommand*{\IfThisCommonLabelBaseNotOneOf}[1]{%
+ \begingroup
+ \@tempswafalse
+ \@for \reserved@a:=#1\do{%
+ \expandafter\IfThisCommonLabelBase\expandafter{\reserved@a}%
+ {\@tempswatrue}{}%
+ }%
+ \if@tempswa
+ \aftergroup\@secondoftwo
+ \else
+ \aftergroup\@firstoftwo
+ \fi
+ \endgroup
+}
+\newcommand*{\ThisCommonFirstLabelBase}{%
+ \@nameuse{CommonFile@\ThisCommonFile @LabelBase}%
+}
+\newif\ifthiscommonfirst
+\newcommand*{\IfThisCommonFirstRun}{%
+ \ifthiscommonfirst \expandafter\@firstoftwo
+ \else \expandafter\@secondoftwo \fi
+}
+\newcommand*{\LoadCommonFile}[1]{%
+ \ifstr{\ThisCommonFile}{}{%
+ \def\ThisCommonFile{#1}%
+ \let\ThisCommonLabelBase\label@base
+ \@ifundefined{CommonFile@\ThisCommonFile @LabelBase}{%
+ \expandafter\let\csname CommonFile@\ThisCommonFile @LabelBase\endcsname
+ \ThisCommonLabelBase
+ \thiscommonfirsttrue
+ }{\thiscommonfirstfalse}%
+ \input{common-\ThisCommonFile.tex}%
+ \thiscommonfirstfalse
+ \let\ThisCommonLabelBase\@empty
+ \let\ThisCommonFile\@empty
+ }{%
+ \ClassError{scrguide}{recursive \string\LoadCommon}{%
+ You can not use \string\LoadCommon\space inside another
+ common file.%
+ }%
+ }%
+}
+\newcommand*{\InternalCommonFileUsageError}{%
+ \GenericError{%
+ (common-\ThisCommonFile.tex)\@spaces
+ }{%
+ Common File common-\ThisCommonFile.tex Error: Unprepared usage%
+ }{%
+ You have to prepare the file for the label base \ThisCommonLabelBase.%
+ }{}%
+}
+% \end{macrocode}
+%
+% \section{Language Dependencies}
+%
+% We load the language dependency file at |\begin{document}| and add some
+% of the extensions to the language.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \InputIfFileExists{\jobname-\uselanguage.tex}{%
+ \ClassInfo{scrguide}{Loading language dependencies for \uselanguage}%
+ }{%
+ \ClassError{scrguide}{\uselanguage\space not supported}{%
+ You've tried to generate a guide for language `\uselanguage' but
+ language\MessageBreak
+ dependency file `\jobname-\uselanguage.tex' was not found.\MessageBreak
+ This may result in a lot of errors and warnings, if you'll continue}%
+ }%
+ \expandafter\addto\csname extras\uselanguage\endcsname
+ \GuideLanguageExtensions\GuideLanguageExtensions
+}
+% \end{macrocode}
+%
+%
+% \section{Breaking of Paragraphs and Pages}
+%
+% There are several parameters to configure the breaking. I've tried to find
+% good values. First of all the placement of floats and text.
+% \begin{macrocode}
+\renewcommand*{\floatpagefraction}{.75}% was .6
+\renewcommand*{\textfraction}{.2}% original
+\renewcommand*{\topfraction}{.75}% was .7
+\renewcommand*{\bottomfraction}{.33}% was .3
+\setcounter{topnumber}{1}% was 2
+\setcounter{bottomnumber}{1}% original
+\setcounter{totalnumber}{3}% original
+% \end{macrocode}
+%
+%
+% \section{Find the Date of the Newest Documentation File}
+%
+% \begin{macro}{\newestfiledate}
+% The latex date of the newest used file.
+% \begin{macrocode}
+\newcommand*{\newestfiledate}{0001-01-01}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@notonlypreamble}
+% Remove commands from to be \@onlypreamble commands.
+% \begin{macrocode}
+\newcommand*{\@notonlypreamble}[1]{%
+ \begingroup
+ \let\new@preamblecmds\@empty%
+ \def\do##1{\ifx ##1#1\else
+ \expandafter\def\expandafter\new@preamblecmds\expandafter{%
+ \new@preamblecmds\do##1}\fi}%
+ \@preamblecmds
+ \global\let\@preamblecmds\new@preamblecmds
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@ifl@t@r}
+% Not longer a |\@onlypreamble| command.
+% \begin{macrocode}
+\@notonlypreamble\@ifl@t@r
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@parse@version}
+% Not longer a |\@onlypreamble| command.
+% \begin{macrocode}
+\@notonlypreamble\@parse@version
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@latex@version}
+% Like |\@parse@version| but returns a \LaTeX{} date.
+% \begin{macrocode}
+\newcommand*{\@latex@version}{}
+\def\@latex@version#1/#2/#3#4#5\@nil{#1/#2/#3#4}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@iso@version}
+% Like |\@parse@version| but returns an iso date.
+% \begin{macrocode}
+\newcommand*{\@iso@version}{}
+\def\@iso@version#1/#2/#3#4#5\@nil{#1-#2-#3#4}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IsoDate}
+% Converts \LaTeX{} date #1 into an iso date.
+% \begin{macrocode}
+\newcommand*{\IsoDate}[1]{\expandafter\@iso@version#1//00\@nil}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@CheckDate}
+% Check if the provided date of file #1.tex is newer than
+% \@newestfiledate. If so, write the new date to the aux file.
+% \begin{macrocode}
+\newcommand*{\@CheckDate}[1]{%
+ \begingroup
+ \expandafter\ifx\csname ver@#1.tex\endcsname\relax\else
+ \typeout{\csname ver@#1.tex\endcsname}%
+ \expandafter\@ifl@t@r\csname ver@#1.tex\endcsname\newestfiledate{%
+ \xdef\newestfiledate{%
+ \expandafter\expandafter\expandafter\@latex@version
+ \csname ver@#1.tex\endcsname//00\@nil%
+ }%
+ \write\@auxout{\noexpand\gdef\noexpand\newestfiledate{%
+ \newestfiledate}\@percentchar\space #1.tex}%
+ }{}%
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Check the date of the jobfile:
+% \begin{macrocode}
+\@CheckDate\jobname
+% \end{macrocode}
+%
+% \begin{macro}{\@providesfile}
+% \begin{macro}{\SCR@providesfile}
+% Redefine |\ProvidesFile| to also check the date.
+% \begin{macrocode}
+\newcommand*{\SCR@providesfile}{}
+\AtBeginDocument{%
+ \let\SCR@providesfile\@providesfile
+ \def\@providesfile#1[#2]{%
+ \SCR@providesfile#1[#2]%
+ \expandafter\@CheckDate\expandafter{\expandafter\@BaseFileName#1.\@nil}%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\@BaseFileName}
+% Split of extension of the file name.
+% \begin{macrocode}
+\newcommand*{\@BaseFileName}{}
+\def\@BaseFileName#1.#2\@nil{#1}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Predefine current date:
+% \begin{macrocode}
+\AtBeginDocument{\date{\IsoDate\newestfiledate}}
+% \end{macrocode}
+%
+%
+% \section{Collect All Translators}
+%
+% At the translated guides, the translators should also be shown somewhere at
+% the title.
+%
+% \begin{macro}{\translator}
+% \changes{v0.9d}{2007/09/18}{new}
+% This macro is used, so save one or more translators into the aux file.
+% \begin{macrocode}
+\newcommand*{\translator}[1]{%
+ \protected@write\@auxout{\def\and{,}}{%
+ \protect\@addtranslators{#1}%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\@translator}
+% \begin{macro}{\@addtranslator}
+% And we need macros so store the translators
+% \begin{macrocode}
+\newcommand*{\@translator}{}
+% \end{macrocode}
+% and to read the translators from the aux file.
+% \begin{macrocode}
+\newcommand*{\@addtranslators}[1]{%
+ \ifx\@translator\@empty\else\g@addto@macro\@translator{,}\fi
+ \g@addto@macro\@translator{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\settranslator}
+% \changes{v0.9d}{2007/09/18}{new}
+% Last but not least, we need a macro to set the list of translators.
+% \begin{macrocode}
+\newcommand{\settranslator}[2]{%
+ \ifx\@translator\@empty\else
+ #1%
+ \begingroup
+% \end{macrocode}
+% Run through all translators, but store each once only.
+% \begin{macrocode}
+ \let\@tempb\@empty
+ \@tempcnta=\z@
+ \expandafter\@for \expandafter\@tempa\expandafter:\expandafter=%
+ \@translator\do {%
+ \ifx\@tempa\@empty\else
+%<trace> \typeout{Test: `,\@tempa,' at `,\@tempb,'}%
+ \@expandtwoargs\in@{,\@tempa,}{,\@tempb,}%
+ \ifin@\else
+ \edef\@tempb{\@tempb\@tempa,}%
+ \advance\@tempcnta by 1\relax
+ \fi
+ \fi
+ }%
+% \end{macrocode}
+% Set each of the stored translators.
+% \begin{macrocode}
+ \@tempcntb=\z@
+ \expandafter\@for \expandafter\@tempa\expandafter:\expandafter=%
+ \@tempb\do {%
+ \ifx\@tempa\@empty\else
+ \advance\@tempcntb by 1\relax
+ \typeout{Translator \the\@tempcntb: \@tempa}%
+ \ifnum\@tempcntb >\@ne\relax
+ \ifnum\@tempcntb=\@tempcnta\relax
+ \ifnum\@tempcntb=\tw@\relax
+ \GuideAnd
+ \else
+ \GuideListAnd
+ \fi
+ \else
+ ,
+ \fi
+ \fi
+ \@tempa
+ \fi
+ }%
+ \endgroup
+ #2%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Emphasization and Fonts}
+%
+% The \KOMAScript{} guide uses a lot of emphasizations. Most of them are
+% declared robustly to avoid problems at index, change log etc.
+%
+% We need some colors for emphasizing in images:
+% \begin{macrocode}
+\colorlet{ImageRed}{Crimson}%
+\colorlet{ImageBlue}{Blue}%
+\colorlet{ImageGreen}{Green}%
+\colorlet{ImageYellow}{Yellow}%
+% \end{macrocode}
+%
+% \begin{macro}{\textsfrm}
+% Something like |\emph| using |\textsf| and |\textrm| instead of |\textit|
+% and |\textup|.
+% \begin{macrocode}
+\newcommand*{\textsfrm}[1]{%
+ \begingroup
+ \edef\@tempa{\sfdefault}%
+ \ifx\@tempa\f@family\textrm{#1}\else\textsf{#1}\fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\File}
+% \begin{macro}{\Class}
+% \begin{macro}{\Package}
+% Some markup macros for files with special meanings.
+\DeclareRobustCommand*{\File}[1]{\mbox{\texttt{#1}}}
+\DeclareRobustCommand*{\Class}[1]{\mbox{\textsfrm{#1}}}
+\DeclareRobustCommand*{\Package}[1]{\mbox{\textsfrm{#1}}}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\DeclareSpecialMarkup}
+% Command to declare special markup commands, that behave different in- and
+% outside |Description| environment. Parameters are:
+% \begin{declaration}
+% \item[\arg{command}:] The the markup command, that should be defined.
+% \item[\arg{outside definition}:] Definition of the markup command
+% outside |Description| environment.
+% \item[\arg{inside definition}:] Definition of the markup command inside
+% |Description| environment.
+% \item{\oarg{inside end definition}:] Definition of the \cs{end} command,
+% if inside |Description| an markup environment instead of an markup
+% command would be used.
+% \end{declaration}
+% At the end color \meta{command name} will be black and \cs{\meta{command
+% name}}, \cs{text\meta{command name}, \cs{Desc\meta{command name}}, and
+% optionally \cs{endDesc\meta{command name} will be defined, with
+% \cs{\meta{command name}} is \meta{command}.
+% \begin{macrocode}
+\newcommand\DeclareSpecialMarkup[3]{%
+ \newcommand*#1{}%
+ \expandafter\colorlet\expandafter{\expandafter\@gobble\string#1}{black}%
+ \expandafter\newcommand\expandafter*%
+ \csname text\expandafter\@gobble\string #1\endcsname[1]{#2}%
+ \expandafter\DeclareRobustCommand\expandafter*\expandafter#1\expandafter{%
+ \csname text\expandafter\@gobble\string #1\endcsname}%
+ \expandafter\newcommand\expandafter*%
+ \csname Desc\expandafter\@gobble\string #1\endcsname[1]{#3}%
+ \kernel@ifnextchar [%
+ {\expandafter\@optdef
+ \csname endDesc\expandafter\@gobble\string #1\endcsname}%
+ {}%]
+}
+% \end{macrocode}
+% \begin{macro}{\@optdef}
+% Helper to define a macro via optional instead of mandatory argument
+\newcommand*{\@optdef}{}
+\long\def\@optdef#1[#2]{\def#1{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Macro}
+% \begin{macro}{\Option}
+% \begin{macro}{\KOption}
+% \begin{macro}{\OptionValue}
+% \begin{macro}{\Environment}
+% \begin{macro}{\Counter}
+% \begin{macro}{\Length}
+% \begin{macro}{\PLength}
+% \begin{macro}{\FloatStyle}
+% \begin{macro}{\PageStyle}
+% \begin{macro}{\Variable}
+% \begin{macro}{\FontElement}
+% \begin{macro}{\PName}
+% \begin{macro}{\PValue}
+% \begin{macro}{\Parameter}
+% \begin{macro}{\OParameter}
+% \begin{macro}{\AParameter}
+% \begin{macro}{\PParameter}
+% \begin{macro}{\POParameter}
+% \begin{description}
+% \item[\cs{Macro}] \LaTeX{} or \TeX{} macro
+% \item[\cs{Option}] class or package option
+% \item[\cs{KOption}] |\KOMAoptions| option
+% \item[\cs{Environment}] \LaTeX{} environment
+% \item[\cs{Counter}] \LaTeX{} counter
+% \item[\cs{Length}] \LaTeX{} length
+% \item[\cs{PLength}] \KOMAScript{} pseudo length
+% \item[\cs{Variable}] \KOMAScript{} variable
+% \item[\cs{FontElement}] \KOMAScript{} element that has its own font
+% selection
+% \item[\cs{PName}] name of a parameter of a macro or environment
+% \item[\cs{PValue}] value of a parameter of a macro or environment
+% \item[\cs{Parameter}] the mandatory parameter of a macro or environment
+% \item[\cs{OParameter}] the optional parameter of a macro or environment
+% \item[\cs{AParameter}] the alternativ parameter of a macro or environment
+% \item[\cs{PParameter}] the part-of-command parameter of a macro or
+% environment
+% \end{description}
+% \begin{macrocode}
+\newcommand*{\LabelMacro}[2][\label@suffix]{%
+ \begingroup
+ \protected@edef\@currentlabel{\Macro{#2}}%
+ \label@sanitize
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.cmd.#2#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \label{\label@desc@prefix\label@base.cmd.#2#1}%
+ \endgroup
+}
+\DeclareRobustCommand*{\DescRef}{%
+ \kernel@ifstar {\@DescRef*}{\@DescRef\@empty}%
+}
+\newcommand*{\@DescRef}[2]{\expandafter\ref#1{\label@desc@prefix#2}}
+\DeclareRobustCommand*{\DescPageRef}{%
+ \kernel@ifstar {\@DescPageRef*}{\@DescPageRef\space}%
+}
+\newcommand*{\@DescPageRef}[2]{\expandafter\autopageref#1{\label@desc@prefix#2}}
+\DeclareSpecialMarkup{\Macro}{\mbox{\texttt{\char`\\#1}}}{%
+ \par
+ \settowidth{\leftskip}{\textMacro{#1}}% indent from left
+ \hskip-\leftskip
+ \BeginIndex{Cmd}{#1}% index entry
+ \LabelMacro{#1}%
+ \textMacro{#1}%
+}
+\newcommand*{\LabelOption}[2][\label@suffix]{%
+ \begingroup
+ \protected@edef\@currentlabel{\Option{#2}}%
+ \label@sanitize
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.option.#2#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \expandafter\gdef
+ \csname \label@desc@prefix\label@base.option.#2#1\endcsname{}%
+ \label{\label@desc@prefix\label@base.option.#2#1}%
+ \endgroup
+}
+\DeclareSpecialMarkup{\Option}{\mbox{\texttt{#1}}}{%
+ \par
+ \leftskip\z@
+ \BeginIndex{Option}{#1}% index entry
+ \LabelOption{#1}%
+ \textOption{#1}%
+}
+\DeclareSpecialMarkup{\KOption}{%
+ \mbox{\textOption{#1=}}\linebreak[0]%
+}{%
+ \ClassWarning{scrguide}{You should replace
+ \string\KOption{#1}\string\PName{...}\MessageBreak
+ by \string\OptionVName{#1}{...}}%
+ \par
+ \leftskip\z@
+ \BeginIndex{Option}{#1}% index entry
+ \begingroup
+ \@nameuse{phantomsection}%
+ \label@sanitize
+ \expandafter\gdef
+ \csname \label@desc@prefix\label@base.option.#1\label@suffix\endcsname{}%
+ \label{\label@desc@prefix\label@base.option.#1\label@suffix}%
+ \endgroup
+ \textOption{#1=}%
+}
+\newcommand*{\maybelinebreak}{%
+ \ifvmode\else
+ \ifnum\lastpenalty<\z@\else
+ \ifnum\lastpenalty<\@medpenalty
+ \hskip\z@skip
+ \fi
+ \fi
+ \fi
+}
+\DeclareRobustCommand*{\textKValue}[1]{\maybelinebreak\mbox{\texttt{#1}}}
+\newcommand*{\KValue}{}
+\let\KValue\textKValue
+\newcommand*{\textOptionValue}[2]{%
+ \textKOption{#1}\textKValue{#2}%
+}
+\DeclareRobustCommand*{\OptionValue}{\textOptionValue}%
+\newcommand*{\LabelOptionValue}[3][\label@suffix]{%
+ \begingroup
+ \protected@edef\@currentlabellong{\OptionValue{#2}{#3}}%
+ \protected@edef\@currentlabelshort{\Option{#2}}%
+ \label@sanitize
+ \scr@ifundefinedorrelax{%
+ \label@desc@prefix\label@base.option.#2\label@suffix
+ }{%
+ \expandafter\gdef
+ \csname \label@desc@prefix\label@base.option.#2\label@suffix\endcsname{}%
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.option.#2#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \let\@currentlabel\@currentlabelshort
+ \label{\label@desc@prefix\label@base.option.#2#1}%
+ }{}%
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.option.#2.#3#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \let\@currentlabel\@currentlabellong
+ \label{\label@desc@prefix\label@base.option.#2.#3#1}%
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macro}{\OptionValueRef}
+% \cs{OptionValue} by reference. Use it like
+% |\OptionValueRef[suffix]{maincls}{version}{3.20}|.
+% \begin{macrocode}
+\newcommand*{\OptionValueRef}{%
+ \kernel@ifstar {\@RefOptionValue0}{\@RefOptionValue1}%
+}
+\newcommand*{\@RefOptionValue}[1]{%
+ \kernel@ifnextchar [%]
+ {\@@RefOptionValue#1}{\@@RefOptionValue#1[]}%
+}
+\newcommand*{\@@RefOptionValue}{}
+\def\@@RefOptionValue#1[#2]#3#4#5{%
+ \scr@ifundefinedorrelax{r@\label@desc@prefix#3.option.#4.#5#2}{%
+ \ifcase #1
+ \expandafter\scr@no@hyperref
+ \else
+ \expandafter\hyperref
+ \fi
+ [\label@desc@prefix#3.option.#4#2]%
+ {\OptionValue{\ref*{\label@desc@prefix#3.option.#4#2}}{#5}}%
+ }{%
+ \expandafter\ref\ifcase #1 *\fi{\label@desc@prefix#3.option.#4.#5#2}%
+ }%
+}
+\newcommand*{\scr@no@hyperref}[2][]{#2}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\newcommand*{\DescOptionValue}[2]{%
+ \par
+ \leftskip\z@
+ \BeginIndex{Option}{#1}%
+ \BeginIndex{Option}{#1~=\KValue{#2}}%
+ \LabelOptionValue{#1}{#2}%
+ \textOptionValue{#1}{#2}%
+}
+\newcommand*{\textOptionVName}[2]{%
+ \textKOption{#1}\PName{#2}%
+}
+\DeclareRobustCommand*{\OptionVName}{\textOptionVName}%
+\newcommand*{\LabelOptionVName}[3][\label@suffix]{%
+ \begingroup
+ \protected@edef\@currentlabellong{\OptionVName{#2}{#3}}%
+ \protected@edef\@currentlabelshort{\Option{#2}}%
+ \label@sanitize
+ \scr@ifundefinedorrelax{%
+ \label@desc@prefix\label@base.option.#2\label@suffix
+ }{%
+ \expandafter\gdef
+ \csname \label@desc@prefix\label@base.option.#2\label@suffix\endcsname{}%
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.option.#2#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \let\@currentlabel\@currentlabelshort
+ \label{\label@desc@prefix\label@base.option.#2#1}%
+ }{}%
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.option.#2=#3#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \let\@currentlabel\@currentlabellong
+ \label{\label@desc@prefix\label@base.option.#2=#3#1}%
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macro}{\OptionVNameRef}
+% \cs{OptionVName} by reference. Use it like
+% |\OptionVNameRef[suffix]{maincls}{version}{value}|.
+% \begin{macrocode}
+\newcommand*{\OptionVNameRef}{%
+ \kernel@ifstar {\@RefOptionVName0}{\@RefOptionVName1}%
+}
+\newcommand*{\@RefOptionVName}[1]{%
+ \kernel@ifnextchar [%]
+ {\@@RefOptionVName#1}{\@@RefOptionVName#1[]}%
+}
+\newcommand*{\@@RefOptionVName}{}
+\def\@@RefOptionVName#1[#2]#3#4#5{%
+ \scr@ifundefinedorrelax{r@\label@desc@prefix#3.option.#4=#5#2}{%
+ \ifcase #1
+ \expandafter\scr@no@hyperref
+ \else
+ \expandafter\hyperref
+ \fi
+ [\label@desc@prefix#3.option.#4#2]%
+ {\OptionVName{\ref*{\label@desc@prefix#3.option.#4#2}}{#5}}%
+ }{%
+ \expandafter\ref\ifcase #1 *\fi{\label@desc@prefix#3.option.#4=#5#2}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\newcommand*{\DescOptionVName}[2]{%
+ \par
+ \leftskip\z@
+% \BeginIndex{Option}{#1}%
+ \BeginIndex{Option}{#1~=\PName{#2}}%
+ \LabelOptionVName{#1}{#2}%
+ \textOptionVName{#1}{#2}%
+}
+\newcommand*{\LabelFloatStyle}[2][\label@suffix]{%
+ \begingroup
+ \protected@edef\@currentlabel{\FloatStyle{#2}}%
+ \label@sanitize
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.floatstyle.#2#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \label{\label@desc@prefix\label@base.floatstyle.#2#1}%
+ \endgroup
+}
+\DeclareSpecialMarkup{\FloatStyle}{\mbox{\texttt{#1}}}{%
+ \par
+ \leftskip\z@
+ \BeginIndex{Floatstyle}{#1}%
+ \LabelFloatStyle{#1}%
+ \textFloatStyle{#1}%
+}
+\newcommand*{\LabelPageStyle}[2][\label@suffix]{%
+ \begingroup
+ \protected@edef\@currentlabel{\PageStyle{#2}}%
+ \label@sanitize
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.pagestyle.#2#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \label{\label@desc@prefix\label@base.pagestyle.#2#1}%
+ \endgroup
+}
+\DeclareSpecialMarkup{\PageStyle}{\mbox{\texttt{#1}}}{%
+ \par
+ \leftskip\z@
+ \BeginIndex{Pagestyle}{#1}%
+ \LabelPageStyle{#1}%
+ \scr@ifundefinedorrelax{r@\label@desc@prefix maincls.cmd.pagestyle}{%
+ \textMacro{pagestyle}%
+ }{%
+ \begingroup
+ \let\Macro\textMacro
+ \DescRef{maincls.cmd.pagestyle}%
+ \endgroup
+ }\PParameter{#1}%
+}
+\newcommand*{\LabelEnvironment}[2][\label@suffix]{%
+ \begingroup
+ \protected@edef\@currentlabel{\Environment{#2}}%
+ \label@sanitize
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.env.#2#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \label{\label@desc@prefix\label@base.env.#2#1}%
+ \endgroup
+}
+\DeclareSpecialMarkup{\Environment}{\mbox{\texttt{#1}}}{%
+ \par
+ \settowidth{\leftskip}{\textMacro{begin}\PParameter{#1}}% siehe Macro
+ \hskip-\leftskip
+ \BeginIndex{Env}{#1}%
+ \LabelEnvironment{#1}%
+ \textMacro{begin}\PParameter{#1}%
+ \def\d@EnvironmentName{#1}% Umgebungsnamen merken für das Ende
+}[{%
+ \ifvmode\hskip-\leftskip\else \unskip\,\dots\fi% \begin{…}…\end{…}
+ \textMacro{end}\expandafter\PParameter\expandafter{\d@EnvironmentName}\par
+}]%
+\newcommand*{\LabelCounter}[2][\label@suffix]{%
+ \begingroup
+ \protected@edef\@currentlabel{\Counter{#2}}%
+ \label@sanitize
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.counter.#2#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \label{\label@desc@prefix\label@base.counter.#2#1}%
+ \endgroup
+}
+\DeclareSpecialMarkup{\Counter}{\mbox{\texttt{#1}}}{%
+ \par
+ \leftskip\z@
+ \BeginIndex{Counter}{#1}%
+ \LabelCounter{#1}%
+ \textCounter{#1}%
+}
+\newcommand*{\LabelLength}[2][\label@suffix]{%
+ \begingroup
+ \protected@edef\@currentlabel{\Length{#2}}%
+ \label@sanitize
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.length.#2#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \label{\label@desc@prefix\label@base.length.#2#1}%
+ \endgroup
+}
+\DeclareSpecialMarkup{\Length}{\mbox{\texttt{\char`\\#1}}}{%
+ \par
+ \leftskip\z@
+ \BeginIndex{Length}{#1}% index entry
+ \LabelLength{#1}%
+ \textLength{#1}%
+}
+\newcommand*{\LabelPLength}[2][\label@suffix]{%
+ \begingroup
+ \protected@edef\@currentlabel{\PLength{#2}}%
+ \label@sanitize
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.plength.#2#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \label{\label@desc@prefix\label@base.plength.#2#1}%
+ \endgroup
+}
+\DeclareSpecialMarkup{\PLength}{\mbox{\texttt{#1}}}{%
+ \par
+ \leftskip\z@
+ \BeginIndex{PLength}{#1}%
+ \LabelPLength{#1}%
+ \scr@ifundefinedorrelax{%
+ r@\label@desc@prefix scrlttr2-experts.cmd.@setplength}{%
+ \textMacro{@setplength}%
+ }{%
+ \begingroup
+ \let\Macro\textMacro
+ \DescRef{scrlttr2-experts.cmd.@setplength}%
+ \endgroup
+ }%
+ \PParameter{#1}\Parameter{\lengthname}%
+}
+\newcommand*{\LabelVariable}[2][\label@suffix]{%
+ \begingroup
+ \protected@edef\@currentlabel{\Variable{#2}}%
+ \label@sanitize
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.variable.#2#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \label{\label@desc@prefix\label@base.variable.#2#1}%
+ \endgroup
+}
+\DeclareSpecialMarkup{\Variable}{\mbox{\texttt{#1}}}{%
+ \par
+ \leftskip\z@
+ \BeginIndex{Variable}{#1}%
+ \LabelVariable{#1}%
+ \scr@ifundefinedorrelax{r@\label@desc@prefix scrlttr2.cmd.setkomavar}{%
+ \textMacro{setkomavar}%
+ }{%
+ \begingroup
+ \let\Macro\textMacro
+ \DescRef{scrlttr2.cmd.setkomavar}%
+ \endgroup
+ }%
+ \PParameter{#1}\OParameter{\descriptionname}%
+ \Parameter{\contentname}%
+}
+\newcommand*{\LabelFontElement}[2][\label@suffix]{%
+ \begingroup
+ \protected@edef\@currentlabel{\FontElement{#2}}%
+ \label@sanitize
+ \Hy@MakeCurrentHref{\label@desc@prefix\label@base.fontelement.#2#1}%
+ \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ \label{\label@desc@prefix\label@base.fontelement.#2#1}%
+ \endgroup
+}
+\DeclareSpecialMarkup{\FontElement}{\mbox{\texttt{#1}}}{%
+ \par
+ \leftskip\z@
+ \BeginIndex{FontElement}{#1}%
+ \LabelFontElement{#1}%
+ \scr@ifundefinedorrelax{r@\label@desc@prefix\LabelBase.cmd.setkomafont}{%
+ \scr@ifundefinedorrelax{r@\label@desc@prefix maincls.cmd.setkomafont}{%
+ \textMacro{setkomafont}%
+ }{%
+ \begingroup
+ \let\Macro\textMacro
+ \DescRef{maincls.cmd.setkomafont}%
+ \endgroup
+ }%
+ }{%
+ \begingroup
+ \let\Macro\textMacro
+ \DescRef{\LabelBase.cmd.setkomafont}%
+ \endgroup
+ }%
+ \PParameter{#1}\OParameter{\fontsettingname}%
+}
+\DeclareRobustCommand*{\PName}[1]{\texttt{\textit{#1}}}
+\DeclareRobustCommand*{\PValue}[1]{\texttt{#1}}
+\DeclareRobustCommand*{\Parameter}[1]{%
+ \maybelinebreak\texttt{\{}\PName{#1}\texttt{\}}}
+\DeclareRobustCommand*{\OParameter}[1]{%
+ \maybelinebreak\texttt{[%]
+ }\PName{#1}\texttt{%[
+ ]}}
+\DeclareRobustCommand*{\AParameter}[1]{%
+ \maybelinebreak\texttt{(%)
+ }\PName{#1}\texttt{%(
+ )}}
+\DeclareRobustCommand*{\PParameter}[1]{\maybelinebreak\texttt{\{#1\}}}
+\DeclareRobustCommand*{\POParameter}[1]{\maybelinebreak\texttt{[#1]}}
+\newcommand\label@sanitize{%
+ \renewcommand*{\"}[1]{##1e}%
+ \renewcommand*{\IeC}[1]{\expandafter\@gobble\string##1}%
+ \renewcommand*{\textup}[1]{##1}%
+ \renewcommand*{\PName}[1]{/##1/}%
+}
+\newcommand*{\label@desc@prefix}{desc:}
+\newcommand*{\label@suffix}{}
+\newcommand*{\labelsuffix}[1][]{% Werden Dinge mehrfach dokumentiert benötigen
+ % sie ein zusätzliches Unterscheidungsmerkmal
+ % beim gesetzten Label.
+ \IfArgIsEmpty{#1}{\let\label@suffix\@empty}{\edef\label@suffix{.#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}
+%
+% \begin{macro}{\EMail}
+% An email adress.
+% \begin{macrocode}
+\DeclareRobustCommand*{\EMail}[1]{\textless #1\textgreater}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\TextEMail}
+% EMail address at the text.
+% \begin{macrocode}
+\DeclareRobustCommand*{\TextEMail}[1]{{\small\EMail{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% Setup fonts for table and figure captions:
+% \begin{macrocode}
+\setkomafont{caption}{\normalcolor\small}
+% \end{macrocode}
+%
+%
+% \section{Footnotes}
+%
+% \begin{macro}{\thempfootnote}
+% \begin{macrocode}
+\renewcommand*{\thempfootnote}{\textit{\@arabic{\c@mpfootnote}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Math}
+%
+% I will not use real math. But there will be some »pseudo math code«. So I
+% need some macros for this.
+%
+% \begin{macro}{\Var}
+% Variables (in real math simply |$a$| will be |\Var{a}| in my math:
+% \begin{macrocode}
+\newcommand*{\Var}[1]{\ensuremath{\textit{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Unit}
+% The unit of a length.
+% \begin{macrocode}
+\newcommand*{\Unit}[1]{\,\ifmmode \textrm{#1}\else #1\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% Wie allow page breaks at display math.
+% \begin{macrocode}
+\allowdisplaybreaks[1]
+% \end{macrocode}
+%
+%
+% \section{Acronyms}
+%
+% \begin{macro}{\Script}
+% \begin{macro}{\ScriptII}
+% \begin{macrocode}
+\DeclareRobustCommand{\Script}{\Package{Script}}
+\DeclareRobustCommand{\ScriptII}{\Package{Script-2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\eTeX}
+% 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}
+%
+%
+% \section{Identification}
+%
+% \begin{macro}{\LabelBase}
+% \begin{macro}{\labelbase}
+% \begin{macrocode}
+\newcommand*{\labelbase}[1]{%
+ \ifstr{\label@base@sec}{unknown}{}{%
+ \labelofbase[sec]{\label@base@sec.next}%
+ \gdef\label@base@sec{}%
+ }%
+ \renewcommand*{\label@base}{#1}%
+ \label{cha:#1}%
+}
+% \end{macrocode}
+% \begin{macro}{\label@base}
+% \begin{macro}{\label@base.sec}
+% \begin{macrocode}
+\newcommand*{\label@base}{unknown}
+\newcommand*{\label@base@sec}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\labelofbase}
+% Sets a label depending on \cs{label@base}. First optional argument is the
+% label prefix, second is the the label postfix.
+% \begin{macrocode}
+\newcommand*{\labelofbase}[2][lab]{%
+ \label{#1:\label@base.#2}%
+}
+% \end{macrocode}
+% \begin{macro}{\prefix@ref}
+% Internal command to set a \cs{ref}, \cs{pageref}, or \cs{autoref} to an
+% label with prefix. Use it, e.g., like
+% |\label@base@ref{\autoref}{sec}{maincls.cmd.foo}|.
+% \begin{macrocode}
+\newcommand*{\prefix@ref}[3]{%
+ #1{#2:#3}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\seclabel}
+% Sets a label of type section.
+% \begin{macrocode}
+\newcommand*{\seclabel}[1]{%
+ \ifx\label@base@sec\@empty\else
+ \labelofbase[sec]{\label@base@sec.next}%
+ \fi
+ \xdef\label@base@sec{#1}%
+ \labelofbase[sec]{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\xmpllabel}
+% \begin{macro}{\Refxmpl}
+% \begin{macro}{\PageRefxmpl}
+% Sets a label of type example.
+% \begin{macrocode}
+\newcommand*{\xmpllabel}[1]{%
+ \labelofbase[xmpl]{#1}%
+}
+\newcommand*{\Refxmpl}{%
+ \kernel@ifstar {\prefix@ref{\autoref*}{xmpl}}%
+ {\prefix@ref{\autoref}{xmpl}}%
+}
+\newcommand*{\PageRefxmpl}{%
+ \kernel@ifstar {\prefix@ref{\autopageref*}{xmpl}}%
+ {\prefix@ref{\autopageref}{xmpl}}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% User command to get the current label base.
+% \begin{macrocode}
+\newcommand*{\LabelBase}{\@nameuse{label@base}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Special Environments}
+%
+% \begin{environment}{Declaration}
+% Declaration of macros, environments, options, lengths, counters, pseudo
+% length, variables etc.\footnote{TODO: Redefining most declaration commands
+% to also write labels.}
+% \begin{macrocode}
+\colorlet{Declaration}{PaleTurquoise}
+\newsavebox\Declaration@Box
+\newcommand*{\Declaration@Width}{\linewidth}
+\newcommand*{\Declaration@LeftIndent}{-2\fboxsep}
+\newcommand*{\Declaration@UseBox}[1]{%
+ \colorbox{Declaration}{\usebox\Declaration@Box}%
+}
+\newenvironment{Declaration}{%
+ % Als erstes wird eine neue Index-Gruppe begonnen. Dagegen darf die
+ % vorherige Index-Gruppe hier nicht automatisch geschlossen werden, weil
+ % beispielsweise ein Abschnitt oder ein Kapitel ebenfalls eine Index-Gruppe
+ % sein könnte (aber nicht muss).
+ \BeginIndexGroup
+ % Die Absatzformatierung anpassen. Eigentlich hier noch nicht notwendig,
+ % schadet aber auch nichts.
+ \parindent\z@
+ \parfillskip\@flushglue
+ \parskip\z@
+ % \Macro, \Environment, etc. so umdefinieren, dass sie passend für die
+ % Umgebung formatiert werden und auch gleich Label und Index-Einträge
+ % erzeugt werden.
+ \scr@Desc@let\Macro
+ \scr@Desc@let\Option
+ \scr@Desc@let\KOption
+ \scr@Desc@let\OptionValue
+ \scr@Desc@let\OptionVName
+ \scr@Desc@let\Variable
+ \scr@Desc@let\Environment
+ \let\endEnvironment\endDescEnvironment
+ \scr@Desc@let\Counter
+ \scr@Desc@let\Length
+ \scr@Desc@let\PageStyle
+ \scr@Desc@let\PLength
+ \scr@Desc@let\FontElement
+ \scr@Desc@let\FloatStyle
+ % Todo: Replace the following by the correct definitions:
+ \let\XMacro\textMacro
+ \let\XEnvironment\textEnvironment
+ \let\XOption\textOption
+ \let\XOptionValue\textOptionValue
+ \newenvironment{Body}{% Umgebung für den (vertikalen) Inhalt einer Umgebung
+ \\
+ \setlength{\leftskip}{1em}%
+ \minipage{\dimexpr\linewidth-\leftskip}%
+ \raggedright
+ \newcommand*{\BodyDots}{%
+ \par
+ \hskip-\leftskip
+ \raisebox{0pt}[1.1\ht\strutbox][.5\dp\strutbox]{$\vdots$}%
+ \par
+ }%
+ }{%
+ \par
+ \endminipage
+ \\
+ }%
+ % Todo: Behandlung für Optionen, Längen, Zähler, Font-Elemente, Seitenstile,
+ % etc.
+ % Maybe: Vielleicht wäre es besser, die \X…-Definitionen von hier direkt zur
+ % Definition der entsprechenden Elemente zu verlagern und sie \D… zu
+ % nennen. Das wird dann eventuell übersichtlicher als alles hier zu
+ % machen. Hier gäbe es dann nur noch für jedes Element genau ein
+ % \let\…\D….
+ % Jetzt wird der ganze Inhalt der Umgebung linksbündig in eine Box gepackt
+ \begin{lrbox}{\Declaration@Box}%
+ \minipage{\Declaration@Width}%
+ \raggedright
+ \parskip\baselineskip
+ \small
+ \addtolength{\parskip}{-\baselineskip}%
+ \catcode`\^^M=9 % ignore line ends
+}{%
+ \par
+ \endminipage
+ \end{lrbox}
+ \vskip 1\baselineskip \@plus .75\baselineskip \@minus .25\baselineskip
+ % Hier darf ein Seitenumbruch ohne vertikalen Ausgleich erfolgen, wenn nicht
+ % mindestens für die Deklaration und zwei Zeilen Platz ist.
+ \vskip \dimexpr\ht\Declaration@Box+\dp\Declaration@Box+2\baselineskip\relax
+ \penalty-\@medpenalty
+ \vskip -\dimexpr\ht\Declaration@Box+\dp\Declaration@Box+2\baselineskip\relax
+ \begingroup% Dann wird die erzeugte Box farbig hinterlegt leicht im linken
+ % Rand ausgegeben.
+ \parfillskip\@flushglue
+ \parindent\z@
+ \leavevmode
+ \hspace*{\Declaration@LeftIndent}%
+ \Declaration@UseBox{\Declaration@Box}%
+ \par\nobreak\vskip\fboxsep
+ \endgroup\nobreak
+ % Der nachfolgende Text soll wie bei einer Ãœberschrift behandelt werden.
+ \aftergroup\@afterindentfalse\aftergroup\@afterheading
+}
+% \end{macrocode}
+% \begin{macro}{\scr@Desc@let}
+% Redefine the internal command of a robust command.
+% \begin{macrocode}
+\newcommand*{\scr@Desc@let}[1]{%
+ \expandafter\def
+ \csname \expandafter\@gobble\string #1 \expandafter\endcsname\expandafter{%
+ \csname Desc\expandafter\@gobble\string #1\endcsname}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{environment}
+%
+% \begin{environment}{Example}
+% This environment is used for all examples at the \KOMAScript{} guide.
+% \begin{macrocode}
+\newenvironment{Example}{%
+ \lstset{belowskip=0pt plus 1pt minus .5pt}%
+ \labeling{{\usekomafont{disposition}\GuideExample:\ }}
+ \item[{\usekomafont{disposition}\GuideExample:\ }]%
+}{%
+ \endlabeling
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{ShowOutput}
+% This environment is used for the output of examples. It shows the middle
+% part of a page\footnote{TODO: optional arguments for printing a top or
+% bottom part of a page}. It uses |\scalebox| so you should never use a
+% DVI preview or a raw DVI printing.
+% \begin{macrocode}
+\newsavebox\ShowOutputBox
+\newenvironment{ShowOutput}[1][0pt]{\par
+ \begin{lrbox}{\ShowOutputBox}%
+ \minipage{.9\linewidth}%
+ \vspace*{\baselineskip}\vspace{-#1}%
+}{%
+ \endminipage
+ \end{lrbox}%
+ \setlength{\unitlength}{1pt}%
+ \setlength{\@tempdima}{\ht\ShowOutputBox}%
+ \addtolength{\@tempdima}{\dp\ShowOutputBox}%
+ \setlength{\@tempdima}{.75\@tempdima}%
+ \edef\MidY{\strip@pt\@tempdima}%
+ \addtolength{\@tempdima}{5pt}%
+ \edef\HighY{\strip@pt\@tempdima}%
+ \addtolength{\@tempdima}{-10pt}%
+ \edef\LowY{\strip@pt\@tempdima}%
+ \addtolength{\@tempdima}{5pt}%
+ \setlength{\@tempdima}{.9\linewidth}\edef\QuadIV{\strip@pt\@tempdima}%
+ \setlength{\@tempdima}{.675\linewidth}\edef\QuadIII{\strip@pt\@tempdima}%
+ \setlength{\@tempdima}{.45\linewidth}\edef\QuadII{\strip@pt\@tempdima}%
+ \setlength{\@tempdima}{.225\linewidth}\edef\QuadI{\strip@pt\@tempdima}%
+ \centering
+ \begin{picture}(\QuadIV,\MidY)
+ \qbezier(0,\MidY)(\QuadI,\HighY)(\QuadII,\MidY)%
+ \qbezier(\QuadII,\MidY)(\QuadIII,\LowY)(\QuadIV,\MidY)
+ \put(0,0){\makebox(\QuadIV,\MidY)[c]{%
+ \scalebox{.75}{\usebox{\ShowOutputBox}}%
+ }%
+ }%
+ \put(0,-5){\line(0,1){\HighY}}%
+ \put(\QuadIV,-5){\line(0,1){\HighY}}%
+ \qbezier(0,-5)(\QuadI,0)(\QuadII,-5)%
+ \qbezier(\QuadII,-5)(\QuadIII,-10)(\QuadIV,-5)
+ \end{picture}\par
+ \vspace{1ex plus 1ex minus .5ex}%
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{Explain}
+% Some parts of the documentation are importing for understanding
+% \KOMAScript{} but not important for using \KOMAScript.
+% \begin{macrocode}
+\newenvironment{Explain}{%
+ \par\sffamily\ignorespaces
+}{%
+ \par
+}
+% \end{macrocode}
+% \end{environment}
+%
+%
+% \subsection{Used by Jens-Uwe only}
+%
+% There are some example visualizations used only by Jens-Uwe.\footnote{TODO:
+% All these should be merged with \texttt{ShowOutputBox}.}
+%
+% \begin{environment}{XmpTopPage}
+% Output of the top of a page.
+% \begin{macrocode}
+\newenvironment{XmpTopPage}
+ {%
+ \begin{center}
+ \iffree{\setlength{\unitlength}{1mm}}{\setlength{\unitlength}{.833mm}}%
+ \begin{picture}(100,39)
+ \thinlines
+ \qbezier(0,5)(25,7)(50,5)\qbezier(50,5)(75,3)(100,5)
+ \put(0,5){\line(0,1){34}}
+ \thicklines
+ \put(100,5){\line(0,1){34}}\put(0,39){\line(1,0){100}}
+ \footnotesize
+ }{%
+ \end{picture}
+ \end{center}\vspace{-1.5\baselineskip}%
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{XmpBotPage}
+% Output of the bottom of a page.
+% \begin{macrocode}
+\newenvironment{XmpBotPage}
+ {\begin{center}
+ \iffree{\setlength{\unitlength}{1mm}}{\setlength{\unitlength}{.833mm}}%
+ \begin{picture}(100,40)%
+ \thinlines
+ \qbezier(0,38)(25,40)(50,38)\qbezier(50,38)(75,36)(100,38)
+ \put(0,5){\line(0,1){33}}
+ \thicklines
+ \put(100,5){\line(0,1){33}}\put(0,5){\line(1,0){100}}
+ \footnotesize
+}{%
+ \end{picture}\end{center}\vspace{-1.5\baselineskip}%
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\XmpSetText}
+% Output some text at \texttt{XmpTopPage} or \texttt{XmpBotPage}.
+% \begin{macrocode}
+\newcommand{\XmpSetText}[2][\XmpText]{%
+ \put(#2){\makebox(0,0)[tl]{\parbox{70\unitlength}{\parfillskip=0pt
+ #1}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XmpMarginNote}
+% Output a margin note at \texttt{XmpTopPage} or \texttt{XmpBotPage}.
+% \begin{macrocode}
+\newcommand{\XmpMarginNote}[1]{%
+ \put(#1){\makebox(0,5)[tl]{\scriptsize\XmpMarginTextA}}
+ \put(#1){\makebox(0,5)[bl]{\scriptsize\XmpMarginTextB}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XmpRule}
+% Output a horizonal rule at a \texttt{XmpTopPage} or \texttt{XmpBotPage}.
+% \begin{macrocode}
+\newcommand{\XmpRule}[2]{\put(#1){\line(1,0){#2}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XmpHeading}
+% Output a head line at a \texttt{XmpTopPage} or \texttt{XmpBotPage}.
+% \begin{macrocode}
+\newcommand{\XmpHeading}[3][\KOMAScript\hfill 3]{%
+ \put(#2){\makebox(#3,0)[l]{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Margin Notes}
+%
+% \begin{macro}{\OnlyAt}
+% Some things are not available at every \KOMAScript{} class. To show the
+% differences we'll put a margin note. If more than one class or package
+% should be noted, |\and| will be used to separate them.
+% \begin{macrocode}
+\newcommand*{\OnlyAt}[1]{%
+ \marginline{\def\and{,\\}\footnotesize #1\par}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Change Log}
+%
+% Not all features are part of every old \KOMAScript{} release. New features
+% will be marked and these marks are referenced at a kind of index.
+%
+% \begin{macro}{\ChangedAt}
+% Set the margin note and write an entry to the change log.\footnote{TODO:
+% Don't use the glossary, use a file by my own.}
+% \begin{macrocode}
+\providecommand*{\ChangedAt}[3][]{%
+ \ifstr{#1}{}{%
+ \marginnote{\tiny\fbox{\strut#2}}%
+ }{%
+ \def\reserved@a##1/##2\@nil{%
+ \count@\year
+ \advance\count@-##1\relax
+ \multiply\count@ by 12\relax
+ \advance\count@\month
+ \advance\count@-##2\relax
+ }\reserved@a#1\@nil
+ \ifnum\count@<13
+ \marginnote{\tiny Beta-Feature}%
+ \else
+ \marginnote{\tiny\fbox{\strut #2}}%
+ \fi
+ }%
+ \begingroup
+ \let\@tempa\@empty
+ \ifstr{#2}{v2.9i}{\def\@tempa{v2.90i=}}{}%
+ \ifstr{#2}{v2.9t}{\def\@tempa{v2.90t=}}{}%
+ \let\and\ignorespaces
+ \def\Package##1{%
+ \glossary{##1=\string\Package{##1}>\@tempa#2|indexrm}%
+ \glossary{\@tempa#2>##1=\string\Package{##1}|indexrm}%
+ \ignorespaces
+ }%
+ \def\Class##1{%
+ \glossary{##1=\string\Class{##1}>\@tempa#2|indexrm}%
+ \glossary{\@tempa#2>##1=\string\Class{##1}|indexrm}%
+ \ignorespaces
+ }%
+ \ignorespaces #3%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% While I currently use the glossary, we have to make it:
+% \begin{macrocode}
+\makeglossary
+% \end{macrocode}
+%
+% \begin{macro}{\printchangelog}
+% We don't want to generate the change log only. We also have to print it.
+% \begin{macrocode}
+\newcommand*{\printchangelog}{\@input@{\jobname.chn}}
+% \end{macrocode}
+% \end{macro}
+% \begin{environment}{thechangelog}
+% And this will be used at the \texttt{chn} file. The change log index will
+% always generate an entry to the table of contents.
+% \begin{macrocode}
+\newenvironment{thechangelog}{%
+ \setchapterpreamble{\GuideChangeLogPreamble\par\bigskip}%
+ \addchap{\changelogname}%
+ \markboth{\changelogname}{\changelogname}%
+ \setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus .3pt}%
+ \setlength{\parfillskip}{0pt plus 1fil}%
+ \def\and{,\ }%
+ \let\item\@idxitem
+}{%
+ \clearpage
+}
+% \end{macrocode}
+% The macros |\GuideChangeLogPreamble| and |\changelogname| have to be
+% defined at the language file.
+% \end{environment}
+%
+%
+% \section{Special Tabulars and Tables}
+%
+% I need some special tabulars and tables. These are used for describing
+% single topics.
+%
+% \begin{environment}{desctabular}
+% \changes{v1.13d}{2019/02/01}{\cs{addlinespace} removed from end code}^^A
+% This kind of tabluar has primary one column but uses two columns in
+% declaration. It's something like a \texttt{description} environment with
+% line break after the item. I've used a \texttt{tabular} at the definition
+% because of full compatibitlity with \texttt{desctable}.
+% \begin{length}{\descwidth}
+% I need a length of local usage. I could have used |\@tempdima| or
+% another local length from kernel. But I've decided not to try to find a
+% unused length at \texttt{tabular} environment.
+% \begin{length}{\descdefaultindent}
+% And I need a length of global usage.
+% \begin{macrocode}
+\newlength{\descwidth}
+\newlength{\descdefaultindent}\setlength{\descdefaultindent}{2em}
+% \end{macrocode}
+% \end{length}
+% \end{length}
+% The definition of \texttt{desctabular} is very simple, because the main
+% work will be done by a \emph{worker} macro that will be defined later.
+% \begin{macrocode}
+\newenvironment{desctabular}[1][c]{%
+ \start@desctab{\descdefaultindent}%
+ \tabular[#1]{lp{\descwidth}}
+ \toprule
+}{%
+ \bottomrule
+ \endtabular
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{desctable}
+% \textbf{Deprecated! Use \texttt{desclist} instead of!}
+% This is almost the same like \texttt{desctabular} but it uses a longtable
+% 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}%
+ \newcommand{\Endhead}{\midrule\endhead}%
+ \newcommand*{\standardfoot}{%
+ \addlinespace[-.5\normalbaselineskip]\midrule
+ \multicolumn{2}{r@{}}{\dots}\\
+ \endfoot
+ \addlinespace[-.5\normalbaselineskip]\bottomrule
+ \endlastfoot
+ }%
+ \longtable{lp{\descwidth}}%
+}{%
+ \endlongtable
+}
+% \end{macrocode}
+% \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.
+% \begin{macrocode}
+\newcommand*{\start@desctab}[1]{%
+ \setlength{\descwidth}{\linewidth}%
+ \addtolength{\descwidth}{-4\tabcolsep}%
+ \addtolength{\descwidth}{-#1}%
+ \setlength{\labelwidth}{\linewidth}%
+ \addtolength{\labelwidth}{-2\tabcolsep}%
+ \newcommand{\nentry}[2]{%
+ \multicolumn{2}{p{\labelwidth}}{\raggedright##1}\tabularnewline*%
+ \hspace*{#1} & \leavevmode\ignorespaces ##2\tabularnewline%
+ }%
+ \newcommand{\entry}[2]{\nentry{##1}{##2}[.5\baselineskip]}%
+ \newcommand*{\pentry}[1]{%
+ \entry{\PLength{##1}\IndexPLength[indexmain]{##1}}}%
+ \newcommand*{\pventry}[1]{\entry{\PValue{##1}}}%
+ \newcommand*{\mentry}[1]{\entry{\Macro{##1}}}%
+ \newcommand*{\ventry}[1]{%
+ \entry{\Variable{##1}\IndexVariable[indexmain]{##1}}%
+ }%
+ \newcommand*{\feentry}[1]{%
+ \entry{%
+ \scr@ifundefinedorrelax{r@\label@desc@prefix\LabelBase.fontelement.##1}{%
+ \ClassWarning{scrguide}{%
+ Reference `\label@desc@prefix\LabelBase.fontelement.##1' undefined}%
+ \FontElement{##1}%
+ }{%
+ \DescRef{\LabelBase.fontelement.##1}%
+ }%
+ \IndexFontElement[indexmain]{##1}}%
+ }%
+ \newcommand*{\oentry}[1]{%
+ \entry{\Option{##1}\IndexOption[indexmain]{##1}}%
+ }%
+}
+% \end{macro}
+%
+% \begin{environment}{desclist}
+% This is similar to \texttt{desctable} but it has been build by single
+% tabulars instead of longtable.
+% \begin{macro}{\desccaptionb@xfirst}
+% \begin{macro}{\desccaptionb@xother}
+% \begin{macro}{\descfootb@x}
+% \begin{macro}{\descentryb@x}
+% \begin{macro}{\desccaptiob@xnext}
+% \begin{macrocode}
+\newsavebox\desccaptionb@xfirst
+\newsavebox\desccaptionb@xother
+\newsavebox\descfootb@x
+\newsavebox\descentryb@x
+\newif\ifdescpage@dd
+\newcommand*{\desccaptionb@xnext}{}
+\newcommand*{\abovecaptionskipcorrection}{}
+\newenvironment{desclist}[1][\descdefaultindent]{%
+ \par
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\selectfont%
+ \vskip\intextsep
+ \start@desctab{#1}%
+ \csname @desclistinithook\endcsname
+ \def\@captype{table}%
+ \newcommand{\desccaption}{\@dblarg{\@desccaption}}%
+ \newcommand{\@desccaption}[3][]{%
+ \setbox\desccaptionb@xfirst\vbox{%
+ \tabular{p{\labelwidth}}%
+ \multicolumn{1}{@{}p{\dimexpr\labelwidth+2\tabcolsep}@{}}{%
+ \captionaboveof{table}[##1]{##2\unskip\strut}%
+ }\tabularnewline[%
+ \dimexpr \abovecaptionskip-\normalbaselineskip\relax
+% \dimexpr \abovecaptionskip-\abovecaptionskipcorrection\relax
+ ]
+ \toprule\tabularnewline
+ \endtabular
+ \vskip -\baselineskip
+ }%
+ \let\abovecaptionskipcorrection\@empty
+ \setbox\desccaptionb@xother\vbox{%
+ \tabular{p{\labelwidth}}
+ \multicolumn{1}{@{}p{\dimexpr\labelwidth+2\tabcolsep}@{}}{%
+ \@@makecaption\@firstofone{\fnum@table}{\ignorespaces ##3}%
+ }\tabularnewline[-\normalbaselineskip]
+ \addlinespace[\abovecaptionskip]
+ \toprule\tabularnewline
+ \endtabular
+ \vskip -\baselineskip
+ }%
+ \let\desccaptionb@xnext\desccaptionb@xfirst
+ }%
+ \setbox\descfootb@x\vbox{%
+ \tabular{p{\labelwidth}}%
+ \addlinespace[-.5\normalbaselineskip]\midrule
+ \addlinespace[-\dp\strutbox]
+ \raggedleft\dots\hspace*{-\tabcolsep}\tabularnewline
+ \endtabular
+ }%
+ \newcommand*{\entryskip}[1][]{%
+ \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
+ \makebox[\linewidth][l]{\begin{tabular}{lp{\descwidth}}%
+ \multicolumn{2}{p{\labelwidth}}{\raggedright##1}\tabularnewline
+ \hspace*{#1} & ##2\tabularnewline
+ \end{tabular}}%
+ }%
+ \typeout{TRACE: entry done}%
+ \begingroup
+ \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\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 \thetable}%
+ \ifx\desccaptionb@xnext\@empty
+ \csname @desclistentryhook\endcsname
+ {\copy\descfootb@x}%
+ \fi
+ \newpage
+ \ifx\desccaptionb@xnext\@empty
+ \typeout{TRACE: switch page}%
+ \ifdescpage@dd
+ \aftergroup\descpage@ddfalse
+ \expandafter\descpage@ddfalse
+ \else
+ \aftergroup\descpage@ddtrue
+ \expandafter\descpage@ddtrue
+ \fi
+ \csname @desclistentryhook\endcsname
+ {\copy\desccaptionb@xother}%
+ \fi
+ \fi
+ \endgroup
+ \ifx\desccaptionb@xnext\desccaptionb@xfirst
+ \ifthispageodd{\descpage@ddtrue}{\descpage@ddfalse}%
+ \fi
+ \csname @desclistentryhook\endcsname
+ {\copy\descentryb@x}%
+ \let\desccaptionb@xnext\@empty
+ \entryskip
+ }%
+}{%
+ \vskip -.5\baselineskip
+ \setbox\descfootb@x\vbox{%
+ \tabular{p{\labelwidth}}
+ \bottomrule\tabularnewline
+ \endtabular
+ }%
+ \csname @desclistentryhook\endcsname
+ {\copy\descfootb@x}%
+ \par\nobreak
+ \vskip -\baselineskip \vskip \intextsep
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{environment}
+%
+%
+% \section{Listings}
+%
+% Setup listings:
+% \begin{macrocode}
+\lstset{%
+ basicstyle=\ttfamily,%
+ columns=fullflexible,keepspaces,%
+ aboveskip=.4\baselineskip,%
+ belowskip=\dp\strutbox plus 1pt minus .5pt%
+}%
+\lstdefinestyle{code}{%
+ language=[LaTeX]TeX,%
+ moretexcs={%
+ @auxout,@currext,@dottedtocline,@empty,@float,@hangfrom,@ifpackagelater,
+ @ifundefined,
+ @rightmark,@secondoftwo,
+ @tempskipa,@tempdima,@tempswafalse,@tempswatrue,
+ @undefined,
+ AtBeginDocument,AtEndDocument, appendix, ClassWarningNoLine,CurrentOption,
+ color,colorbox,
+ DeclareOption,DeclareRobustCommand,dimexpr,end@float,ExecuteOptions,
+ gluexpr,
+ if@filesw,if@tempswa,if@twoside,includegraphics,
+ MessageBreak,
+ numexpr,
+ onehalfspacing,
+ PackageError,PackageInfo,PackageWarning,PassOptionsToPackage,
+ ProcessOptions,protected@edef,protected@write,
+ ProvidesFile,ProvidesPackage,
+ providecommand,
+ RequirePackage,RequirePackageWithOptions,setkey,setlength,
+ SelectInputMappings,setkeys,
+ textsuperscript}%
+}%
+\lstdefinestyle{output}{%
+ breaklines,prebreak=\mbox{$\hookleftarrow$}%
+}%
+\lstdefinestyle{KOMA}{%
+ style=code,%
+ moretexcs={%
+ @addtoplength,@setplength,@newplength, activateareas,
+ addchap,addrentry,Address,addcontentslinetoeachtocfile,
+ addxcontentslinetoeachtocfile,addsec,
+ addtoeachtocfile,
+ addtokomafont,addtolengthplength,addtoreffields,addtotoclist,
+ adrchar,adrentry,
+ AddLayersAtBeginOfPageStyle,AddLayersToPageStyle,
+ AfterBibliographyPreamble,AfterCalculatingTypearea,
+ AfterFile,AfterPackage,AfterStartingTOC,AfterTOCHead,
+ appendixmore,appendixname,areaset,autodot,automark,AtAddToTocList,
+ AtBeginLetter,
+ BeforeFamilyProcessOptions,
+ BeforeClosingMainAux,BeforePackage,bib@beginhook,bib@endhook,
+ blinddocument,blindtext,Blinddocument,Blindtext,
+ cc,captionabove,captionaboveof,captionbelow,captionbelowof,captionformat,
+ captionof,cefoot,cfoot,chapapp, chapappifchapterprefix,
+ chapterheadstartvskip,chapterheadmidvskip,chapterheadendvskip,
+ chapter,chapterlinesformat,chapterlineswithprefixformat,
+ chapterformat,chaptermarkformat,chapternumdepth,chaptertocdepth,
+ chapterpagestyle,chead,
+ Clause,
+ cleardoubleevenemptypage,cleardoubleoddpage,
+ clearscrheadfoot,closing,cofoot,Comment,
+ CloneTOCEntryStyle,
+ DeclareNewJuraEnvironment,
+ DeclareLayer,DeclareNewLayer,DeclareNewPageStyleByLayers,
+ DeclarePageStyleByLayers,
+ DeclareTOCStyleEntry,DeclareTOCEntryStyle,
+ DeclareNewNoteColumn,DeclareNewPageStyleAlias,
+ DeclareNewTOC,DeclareSectionCommand,DeclareNewSectionCommand,
+ RedeclareSectionCommand,ProvideSectionCommand,
+ dedication,defcaptionname,deffootnote,deffootnotemark,
+ DefineFamily,DefineFamilyKey,DefineFamilyMember,
+ DefineTOCEntryOption,DefineTOCEntryBooleanOption,
+ DefineTOCEntryCommandOption,DefintTOCEntryIfOption,
+ DefineTOCEntryLengthOption,DefineTOCEntryNumberOption,
+ DestroyLayer,defpagestyle,deftripstyle,
+ dictum,dictumauthorformat,dictumrule,dictumwidth,doforeachtocfile,
+ ellipsispar,
+ encl,extratitle,FamilyBoolKey,FamilyExecuteOptions,
+ FamilyKeyState,FamilyKeyStateUnknown,FamilyKeyStateProcessed,
+ FamilyKeyStateUnknownValue,FamilyKeyStateNeedValue,
+ FamilyNumericalKey,%
+ FamilyOption,FamilyOptions,FamilyProcessOptions,FamilySetBool,
+ FamilyStringKey,FamilyUnknownKeyValue,
+ figureformat,figurename,firstfoot,firsthead,FirstName,footfont,footref,
+ ForEachLayerOfPageStyle,
+ FreeI,FreeII,FreeIII,FreeIV,
+ GenericMarkFormat,
+ headfont,headmark,
+ ifundefinedorrelax,
+ ifattoclist,ifoot,ihead,ifkomavarempty,ifstr,ifthispageodd,InputAddressFile,
+ KOMAoption,KOMAoptions,KOMAScript, l@addto@macro,
+ LastName,layerwidth,layerheight,lefoot,lefttopmark,leftbotmark,
+ leftfirstmark,lehead,LetterOptionNeedsPapersize,
+ LenToUnit,
+ lipsum,listoffigures,
+ listoftables,listoftoc,LoadLetterOption,lofoot,lohead,lowertitleback,
+ MakeMarkcase,makenote,maketitle,manualmark,marginline,minisec,
+ multfootsep,multiplefootnoteseparator,
+ Name,nameday,newbibstyle,newcaptionname,newkomavar,nexthead,
+ ofoot,ohead,opening,othersectionlevelsformat,
+ p@section,pagemark,paragraphformat,subparagraphformat,
+ paragraphnumdepth,paragraphtocdepth,
+ subparagraphnumdepth,subparagraphtocdepth,
+ parellipsis,parformat,parname,parshortname,
+ part,partformat,partlineswithprefixformat,
+ partname,partnumdepth,partpagestyle,partnumdepth,
+ partheadstartvskip,partheadmidvskip,partheadendvskip,
+ pnumfont,
+ PreventPackageFromLoading,providecaptionname,publishers,ps,
+ putLL,putLR,putUL,putUR,putC,
+ raggedcaption,raggedchapter,raggedfootnote,raggedsection,raggedpart,
+ raggedsignature,
+ recalctypearea,
+ refL,refS,refN,refoot,
+ refParagraph,refParagraphN,refPar,refParL,refParS,refParN,
+ refSentence,refSentenceL,refSentenceS,refSentenceN,rehead,
+ RelaxFamilyKey,
+ removereffields,renewcaptionname,
+ RedeclarePageStyleAlias,RedeclareTOCStyleEntry,
+ ReplaceInput,ReplacePackage,ResetPreventPackageFromLoading,
+ rightbotmark,righttopmark,rightfirstmark,
+ rohead,
+ sectionformat,subsectionformat,subsubsectionformat,
+ sectionnumdepth,sectiontocdepth,
+ subsectionnumdepth,subsectiontocdepth,
+ subsubsectionnumdepth,subsubsectiontocdepth,
+ sectionmarkformat,sectioncatchphraseformat,sectionlinesformat,
+ Sentence,sentencename,sentenceshortname,
+ setbibpreamble,setcapindent,setcapwidth,setcaptionalignment,
+ setchapterpreamble,setfootbotline,setfootsepline,setfootwidth,
+ setheadsepline,setheadtopline,setheadwidth,setindexpreamble,setkomafont,
+ setkomavar,setlengthtoplength,setparsizes,setpartpreamble,setuptoc,
+ showfields,showenvelope,showISOenvelope,showUScommercial,showUScheck,
+ storeareas,StorePreventPackageFromLoading,
+ subject,SubClause,subsectionmarkformat,subtitle,syncwithnotecolumn,
+ tableformat,tablename,tableofcontents,textsubscript,thechapter,thefigure,
+ thefootnotemark,thepar,thepart,thesection,thesentence,thesubsection,
+ thesubsubsection,theparagraph,thesubparagraph,
+ thetable,thistime,
+ titlehead,tocbasic@extend@babel,TOCclone,todaysname,typearea,%
+ TOCEntryStyleInitCode,TOCEntryStyleStartInitCode,TOCLineLeaderFill,
+ UnPreventPackageFromLoading,unitfactor,
+ unsettoc,usekomafont,useplength,usekomavar,uppertitleback%
+ }%
+}%
+\lstnewenvironment{lstoutput}[1][]{%
+ \lstset{style=output,basicstyle=\ttfamily\small,#1}%
+}{}%
+\lstnewenvironment{lstcode}[1][]{%
+ \lstset{style=KOMA,basicstyle=\ttfamily\small,#1}%
+}{}%
+\newcommand*{\lstinputcode}[1][]{%
+ \lstinputlisting[style=KOMA,basicstyle=\ttfamily\small,#1]%
+}
+% \end{macrocode}
+%
+%
+% \section{hyperref Addons}
+%
+% \begin{macro}{\KOMAScript}
+% \begin{macro}{\Guide@KOMAScript}
+% We need some additions to \textsf{hyperref}.
+% \begin{macrocode}
+\newcommand*{\Guide@KOMAScript}{}
+\expandafter\let\csname Guide@KOMAScript\expandafter\endcsname\csname
+KOMAScript \endcsname
+\DeclareRobustCommand*{\KOMAScript}{%
+ \texorpdfstring{\Guide@KOMAScript}{KOMA-Script}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\url@}
+% \changes{v1.9b}{2015/09/30}{\cs{GuideCTANserver} not needed and removed}^^A
+% Redefine to make \texttt{CTAN://} be an alias for
+% \texttt{http://mirror.ctan.org/}.
+% \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}}{http://mirror.ctan.org/#2}%
+ \else
+ \hyper@linkurl{\Hurl{#1://#2}}{#1://#2}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% We have to setup \textsf{hyperref}:
+% \begin{macrocode}
+\AtBeginDocument{%
+ \iffree{%
+ \hypersetup{%
+ plainpages=false,
+ pdftitle={\GuideTitle},
+ pdfauthor={Markus Kohm},
+ pdfsubject={\GuideSubject},
+ pdfkeywords={\KOMAScript, scrbook, scrreprt, scrartcl,
+ typearea, scrlfile, scrlayer, scrlayer-scrpage, scrlayer-notecolumn,
+ scrletter, scrlttr2, scraddr, scrtime, scrdate, scrwfile},
+ pdfcreator={\KOMAScript, hyperref}
+ }%
+ }{}%
+}
+% \end{macrocode}
+%
+% \begin{macro}{\autopageref}
+% This is something like |\autoref| but with page reference. A simple
+% definition would use |\hyperref| and |\pageref*|. But I want to allow to
+% decide if the reference is the page or the label. So this definition is
+% more like |\autoref|.
+% \begin{macrocode}
+\DeclareRobustCommand{\autopageref}[1]{%
+ \expandafter\auto@setpageref\csname r@#1\endcsname
+ \@secondoffive
+ {#1}%
+}
+% \end{macrocode}
+% \begin{macro}{\auto@setpageref}
+% This is the \emph{worker} macro. It checks for the label and trys to set
+% either a reference to the page or a reference to the label.
+% \begin{macrocode}
+\newcommand*{\auto@setpageref}[3]{%
+ \@safe@activestrue
+ \ifx#1\relax
+ \protect\G@refundefinedtrue
+ \nfss@text{\reset@font\bfseries ??}%
+ \@latex@warning{%
+ Reference `#3' on page \thepage \space undefined%
+ }%
+ \else
+ \def\@currentHtag{\pageautorefname~}%
+ \if@pagereftolabel
+ \hyper@@link
+ {\expandafter\@fifthoffive#1}%
+ {\expandafter\@fourthoffive#1\@empty\@empty}%
+ {\@currentHtag\expandafter#2#1\@empty\@empty\null}%
+ \else
+ \hyper@@link
+ {\expandafter\@fifthoffive#1}%
+ {page.\expandafter\@secondoffive#1\@empty\@empty}%
+ {\@currentHtag\expandafter#2#1\@empty\@empty\null}%
+ \fi
+ \fi
+ \@safe@activesfalse
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \section{Entries to \contentsname, \figurelistname, etc.}
+%
+% We have large page numbers, so better setup the needed width. And we like
+% other dot seperation.
+% \begin{macrocode}
+\usetocstyle{classic}
+\renewcommand*{\@pnumwidth}{1.8em}% 1.67
+\renewcommand*\@tocrmarg {2.70em}% 2.55em
+\renewcommand*\@dotsep{2.5}
+\settocfeature[toc][-1]{entryhook}{%
+ \let\sg@numberline\numberline
+ \renewcommand*{\numberline}[1]{%
+ \sg@numberline{\partname~##1}%
+ ~\linebreak\nopagebreak\hspace*{-\@tempdima}%
+ }%
+ \def\autodot{: }%
+ \sectfont
+}
+% \end{macrocode}
+%
+% \section{Part}
+%
+% We want another vertical spacing at part headings.
+% \begin{macrocode}
+\renewcommand*{\partheadstartvskip}{\vspace*{.1\textheight}}
+\renewcommand*{\partheadmidvskip}{\par\nobreak\vspace{.5\baselineskip}}
+\renewcommand*{\partpagestyle}{empty}
+% \end{macrocode}
+%
+%
+% \section{Logos}
+%
+% I don't want to use package \textsf{hologo} for only one logo:
+% \begin{macrocode}
+\DeclareRobustCommand{\XeTeX}{%
+ X\kern-.125em\lower.5ex\hbox{\reflectbox{E}}\kern-.10em\TeX%
+}%
+\DeclareRobustCommand{\XeLaTeX}{%
+ X\kern-.125em\lower.5ex\hbox{\reflectbox{E}}\kern-.10em\LaTeX%
+}%
+% \end{macrocode}
+%
+% \section{Appendix}
+%
+% \begin{macro}{\appendix}
+% Use only first if used more than once. With this, every appendix file may
+% start with |\appendix|.
+% \begin{macrocode}
+\g@addto@macro\appendix{\global\let\appendix\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Bibliography}
+%
+% \begin{macro}{\BibTeX}
+% I use the same hack like the \LaTeX{} team uses at \texttt{ltlogos.dtx}
+% for |\LaTeX|:
+% \begin{macrocode}
+\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%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Use of a preamble and sime other usefull changes.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \setbibpreamble{\GuideBibPreamble\bigskip}%
+ \selectbiblanguage{\languagename}%
+ \bibliographystyle{babalpha-fl}%
+ \renewcommand*{\@openbib@code}{%
+ \setlength{\parsep}{0pt}%
+ \renewcommand*{\btxauthorcolon}[1]{:\par\nobreak}%
+ \renewcommand*{\btxurlfont}{\par\nobreak\url}%
+ \raggedright
+ }%
+}
+% \end{macrocode}
+%
+% The generated argument of thebibliography is to short:
+% \begin{macrocode}
+\newcommand*{\OrigTheBibliography}{}
+\let\OrigTheBibliography\thebibliography
+\renewcommand*{\thebibliography}[1]{%
+ \OrigTheBibliography{XXXX99}%
+}
+% \end{macrocode}
+%
+%
+% \section{Index}
+%
+% This is realy tricky. The index depends on an external perl script, which
+% splits the one index into several indexes. But first of all, we need to make
+% the raw index.
+% \begin{macrocode}
+\makeindex
+% \end{macrocode}
+%
+% Use of a preamble:
+% \begin{macrocode}
+\AtBeginDocument{\setindexpreamble{\GuideIndexPreamble\bigskip}}
+% \end{macrocode}
+%
+% \begin{macro}{\ifusemultiindex}
+% Now let's decide wether to use one index or to use a multi part index.
+% \begin{macrocode}
+\newif\ifusemultiindex
+\IfFileExists{\jobname-gen.ind}{\usemultiindextrue}{\usemultiindexfalse}
+\ifusemultiindex
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\printmultiindex}
+% \changes{v1.11a}{2016/11/02}{index label generation delayed}^^A
+% Print one part of the multi part index.
+% \begin{macrocode}
+ \newcommand*{\printmultiindex}[3][]{%
+ \begingroup
+ \def\indexname{#2}%
+% \end{macrocode}
+% \begin{macro}{\CrossIndex}
+% Produce a reference from one index to another. The macro |\UseIndex| tells
+% the external splitt processor the index to be used for that entry. The
+% first argument is the entry to the index. The second is the shortcut of
+% the source index and the third is the shortcut of the index with the main
+% entry for the entry from first argument. This macro should be used at the
+% preamble of one part of the multi part index only. Because of this, it's
+% defined here only.
+% \begin{macrocode}
+ \newcommand*{\CrossIndex}[3]{%
+ \Index{##1=\UseIndex{##2}\protect##1>##3=\UseIndex{##2}\SeeSign
+ \protect##3}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+ \ifx\relax#1\relax\let\index@preamble=\relax
+ \else\def\index@preamble{#1}%
+ \fi
+ \def\index@setlabel{\label{idx:#3}}%
+ \@input@{\jobname-#3.ind}%
+ \endgroup
+ }
+% \end{macrocode}
+% \begin{environment}{theindex}
+% I don't want every part of the index starting a new page. So I'll use the
+% \textsf{multicol} package to generate the two columns instead of
+% |\twocolumn|.
+% \begin{macrocode}
+ \renewenvironment{theindex}{%
+ \setchapterpreamble{\index@preamble}
+ \begin{multicols}{2}[\idx@heading\vspace{-1\baselineskip}][.2\textheight]%
+ \parindent\z@
+ \setlength{\parskip}{\z@ \@plus .3\p@}%
+ \setlength{\parfillskip}{\z@ \@plus 1fil}%
+ \let\item\@idxitem
+ \small\csname index@setlabel\endcsname
+ }{%
+ \end{multicols}%
+ }
+% \end{macrocode}
+% \end{environment}
+% \end{macro}
+%
+% \begin{macro}{\printindex}
+% Print the full index.
+% \begin{macrocode}
+ \renewcommand*{\printindex}{%
+ \setchapterpreamble{\index@preamble}%
+ \addchap{\indexname}%
+ \let\index@preamble=\relax
+ \renewcommand*\idx@heading{%
+ \addsec{\indexname}%
+ \ifx\index@preamble\relax
+ \else\index@preamble\let\index@preamble=\relax\fi
+ }%
+ \printmultiindex{\GuidegenIndex}{gen}%
+ \printmultiindex[%
+ \CrossIndex{\GuideMacro}{gen}{\GuidecmdIndexShort}%
+ \CrossIndex{\GuideEnvironment}{gen}{\GuidecmdIndexShort}%
+ \CrossIndex{\GuideCounter}{gen}{\GuidecmdIndexShort}%
+ \CrossIndex{\GuideLength}{gen}{\GuidecmdIndexShort}%
+ ]{\GuidecmdIndex}{cmd}%
+ \printmultiindex[%
+ \CrossIndex{\GuideLength}{gen}{\GuidelenIndexShort}%
+ \CrossIndex{\GuidePLength}{gen}{\GuidelenIndexShort}%
+ \CrossIndex{\GuideCounter}{gen}{\GuidelenIndexShort}%
+ ]{\GuidelenIndex}{len}%
+ \printmultiindex[%
+ \CrossIndex{\GuideFontElement}{gen}{\GuideelmIndexShort}%
+ ]{\GuideelmIndex}{elm}%
+ \printmultiindex[%
+ \CrossIndex{\GuideFile}{gen}{\GuidefilIndexShort}%
+ \CrossIndex{\GuidePackage}{gen}{\GuidefilIndexShort}%
+ \CrossIndex{\GuideClass}{gen}{\GuidefilIndexShort}%
+ ]{\GuidefilIndex}{fil}%
+ \printmultiindex[%
+ \CrossIndex{\GuideOption}{gen}{\GuideoptIndexShort}%
+ ]{\GuideoptIndex}{opt}%
+ }
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\indexsection}
+% Heading of the next section (e.g. the next character) at an index.
+% \begin{macrocode}
+\newcommand*{\indexsection}[1]{%
+ \ifx\empty#1\empty\else
+ \hspace{0pt plus 2fil}{{\usekomafont{disposition} #1}}\hspace{0pt plus
+ 1fil}\nopagebreak
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\indexdelim}
+% \begin{macro}{\indexdelimi}
+% \begin{macro}{\indexdelimii}
+% The delimiter after the index topic but before the page number. There are
+% three index levels, so there are three delimiters too.
+% \begin{macrocode}
+\newcommand*{\indexdelim}{\ \hspace{0pt plus 1fil}\penalty0\null\nobreak
+ \dotfill~}
+\newcommand*{\indexdelimi}{~\dotfill\penalty0\ }
+\newcommand*{\indexdelimii}{~\dotfill\penalty0\ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\UseIndex}
+% This macro does nothing but shows the external index split processor the
+% destination index.
+% \begin{macrocode}
+\DeclareRobustCommand*{\UseIndex}[1]{\ignorespaces}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SeeSign}
+% The symbol used to sign a reference at an index.
+% \begin{macrocode}
+\DeclareRobustCommand*{\SeeSign}{\ensuremath{\protect\rightarrow}~}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AddSeeIndex}
+% Add »\emph{see another index}« entry to an index. First argument is an
+% index entry to the index with shortcut of second argument. The third
+% argument is the name of another index given also by the shortcut at the
+% fourth argument.
+% \begin{macrocode}
+\newcommand*{\AddSeeIndex}[4]{%
+ \ifusemultiindex
+ \Index[seeindex{#4}]{#1=\UseIndex{#2}#1>#3=\UseIndex{#2}\SeeSign#3}%
+ \fi
+}
+% \end{macrocode}
+% \begin{macro}{\seeindex}
+% Page number style of references to another index. This eats the page
+% number of the index entry and set's a page number reference to the label
+% of the other index. Don't use this on your own. This is need by
+% |\AddSeeIndex|.
+% \begin{macrocode}
+\newcommand*{\seeindex}[2]{\pageref{idx:#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\IndexSeeAt}
+% A more general version of |\AddSeeIndex|. First (optional) argument is a
+% entry note (e.g. |\GuidePagestyle|). This is only used if option
+% \texttt{moreindexnotes} was set. Second argument is the entry. Third is
+% the shortcut of the source index, the index the entry should be set.
+% Fourth is the shortcut of the destination index, the index the entry
+% should reference. Fifth is the name of that index. Sixth is the output
+% command (e.g. |\Macro|) for the entry.
+% \begin{macrocode}
+\newcommand*{\IndexSeeAt}[6][\relax]{%
+ \ifusemultiindex
+ \if@moreindexnotes
+ \edef\@tempa{idx@f@\string#1.\string#2.#3.#4}%
+ \else
+ \edef\@tempa{idx@f@\string#2.#3.#4}%
+ \fi
+ \expandafter\ifx\csname \@tempa\endcsname\relax
+ \expandafter\gdef\csname \@tempa\endcsname{}%
+ \begingroup
+ \@tempswatrue
+ \if@moreindexnotes
+ \ifx\relax#1\relax\else\@tempswafalse
+ \Index[seeindex{#4}]{%
+ #2 (#1)=\UseIndex{#3}#6{#2} (\protect#1)>%
+ #5=\UseIndex{#3}\SeeSign\protect#5}%
+ \fi
+ \fi
+ \if@tempswa
+ \Index[seeindex{#4}]{%
+ #2=\UseIndex{#3}#6{#2}>#5=\UseIndex{#3}\SeeSign\protect#5}%
+ \fi
+ \endgroup
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Index}
+% Primary index command. First (optional) argument is the page number style
+% of the entry. Second argument is the entry. The page number style should
+% be either \texttt{indexother} or \texttt{indexmain}. Default is
+% \texttt{indexother}.
+% \begin{macrocode}
+\newcommand*{\Index}[2][indexother]{\index{#2|#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\BeginIndex}
+% \begin{macro}{\EndIndex}
+% Its also usefull to define index range entries. These have three
+% arguments. First (optiona) argument is the page number style. Default of
+% this parameter is \texttt{indexmain}. See |\Index| for more information
+% about this parameter. The second parameter is the kind of index
+% entry. This is not the same like the name or shortcut of an index! See
+% |\Define|\dots|Index| for more information about the kind of an index
+% entry. The third argument is the index entry.
+% \begin{macrocode}
+\newif\ifnolabel
+\def\nolabelfalse{\global\let\ifnolabel\iffalse}%
+\def\nolabeltrue{\global\let\ifnolabel\iftrue}%
+\newcommand*{\BeginIndex}[3][indexmain]{%
+ \expandafter\ifx\csname Index#2\endcsname\relax
+ \GenericError{(scrguide)\@spaces\@spaces\@spaces\@spaces}{%
+ Document scrguide Error: \string\BeginIndex\space with unknown
+ index%
+ }{Check the \string\BeginIndex-command or add a new index type
+ ``#2''.}{%
+ See scrguide.cls for more information.}%
+ \else
+ \csname Index#2\endcsname[(%)
+ #1]{#3}%
+ \push@IndexStack{{\do{#1}{#2}{#3}}}%
+ \fi
+ % \ifnolabel\nolabelfalse\else
+ % \ifx\relax#2\relax\else
+ % \begingroup
+ % \def\SplitIndexValue##1~=##2~=##3\@nil{%
+ % ##1\expandafter\ifx\expandafter\relax##2\relax\else.##2\fi
+ % }%
+ % \let\PName\@gobble
+ % \let\PValue\@firstofone
+ % \let\ensuremath\@firstofone
+ % \let\textit\@firstofone
+ % \def~{\string~}%
+ % \lowercase{\def\@tempa{#2}}%
+ % \edef\@tempa{\label@base.\@tempa.\SplitIndexValue#3~=~=\@nil}%
+ % \pdfstringdef\@tempb{\@tempa}%
+ % \expandafter\ifx\csname \@tempb\endcsname\relax
+ % \expandafter\xdef\csname \@tempb\endcsname{\the\inputlineno}%
+ % \xdef\@currentHref{\@tempb}%
+ % \ClassInfo{scrguide}{Anchor: `\@currentHref'}%
+ % \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ % \label{desc:\@tempa}%
+ % \else
+ % \ClassWarning{scrguide}{%
+ % Label \@tempa\space already defined at \csname
+ % \@tempb\endcsname,\MessageBreak
+ % ignored}%
+ % \fi
+ % \endgroup
+ % \fi
+ % \fi
+ \penalty\@M\ignorespaces
+}
+\newlength\PreserveSkip
+\newcount\PreservePenalty
+\newcommand*{\CloseIndex}[3][indexmain]{%
+ \PreservePenalty\lastpenalty
+ \ifvmode\PreserveSkip\lastskip\else\unskip\PreserveSkip\z@\fi
+ \ifdim \PreserveSkip>\z@
+ \vskip -\PreserveSkip
+ \fi
+ \penalty\@M
+ \expandafter\ifx\csname Index#2\endcsname\relax
+ \GenericError{(scrguide)\@spaces\@spaces\@spaces\@spaces}{%
+ Document scrguide Error: \string\EndIndex\space with unknown
+ index%
+ }{Check the \string\BeginIndex-command or add a new index type
+ ``#2''.}{%
+ See scrguide.cls for more information.}%
+ \else
+ \csname Index#2\endcsname[%(
+ )#1]{#3}%
+ \fi
+ \ifdim\PreserveSkip >\z@
+ \vskip\PreserveSkip
+ \fi
+ \penalty\PreservePenalty
+}
+\newcommand*{\EndIndex}[3][indexmain]{%
+ \begingroup
+ \@tempswatrue
+ \def\do##1##2##3{%
+ \ifstr{#1}{##1}{%
+ \ifstr{#2}{##2}{%
+ \ifstr{\detokenize{#3}}{\detokenize{##3}}{}{\@tempswafalse}%
+ }{\@tempswafalse}%
+ }{\@tempswafalse}%
+ \if@tempswa
+ \else
+ \ClassError{scrguide}{Index stack error}{%
+ Should pop \string\do{#1}{#2}{\detokenize{#3}}\MessageBreak
+ but have \string\do{##1}{##2}{\detokenize{##3}}%
+ }%
+ \push@IndexStack{{\do{##1}{##2}{##3}}}%
+ \fi
+ }%
+ \def\StopIndexGroup{%
+ \ClassError{scrguide}{Index stack error}{%
+ Should pop \string\do{#1}{#2}{\detokenize{#3}}\MessageBreak
+ but have \string\StopIndexGroup
+ }%
+ \push@IndexStack{\StopIndexGroup}%
+ }%
+ \expandafter\pop@IndexStack\@IndexStack\@nil
+ \endgroup
+ \CloseIndex[#1]{#2}{#3}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+\let\@IndexStack\@empty
+\newcommand*{\push@IndexStack}[1]{% Einen Eintrag auf den Index Stapel werfen.
+ \xdef\@IndexStack{\unexpanded{#1}\unexpanded\expandafter{\@IndexStack}}%
+}
+\newcommand*{\BeginIndexGroup}{% Am Anfang einer Gruppe auf den Stack die
+ % Index-Gruppen-Trennmarke packen.
+ \push@IndexStack{\StopIndexGroup}%
+}
+\newcommand*{\EndIndexGroup}{% Den Stapel bis zur nächsten Stop-Marke
+ % verarbeiten.
+ \ifx\@IndexStack\@empty
+ \ClassError{scrguide}{cannot end index group}{%
+ You've told me to end the current index group,\MessageBreak
+ but there is no more index group open%
+ }%
+ \else
+ \begingroup
+ \let\StopIndexGroup\@tempswafalse
+ \@tempswatrue%(
+ \def\do##1##2##3{%
+ \CloseIndex[##1]{##2}{##3}%
+ }%
+ \@whilesw \if@tempswa \fi {%
+ \expandafter\pop@IndexStack\@IndexStack\@nil
+ }%
+ \endgroup
+ \fi
+}
+\def\pop@IndexStack#1#2\@nil{% Ein Argument von Stapel holen und verarbeiten.
+ \gdef\@IndexStack{#2}#1%
+}
+\newcommand*\CleanUpIndexStack{%
+ \ifx\@IndexStack\@empty\else
+ \ClassError{scrguide}{Index stack error}{%
+ The index stack should be empty\MessageBreak
+ but it still contains: \MessageBreak
+ \expandafter\detokenize\expandafter{\@IndexStack}%
+ }%
+ \begingroup
+ \let\StopIndexGroup\relax
+ \def\do##1##2##3{%
+ \CloseIndex[##1]{##2}{##3}%
+ }%
+ \@IndexStack
+ \global\let\@IndexStack\@empty
+ \endgroup
+ \fi
+}
+\AtEndDocument{\CleanUpIndexStack}
+\l@preto@macro\chapter{\CleanUpIndexStack}
+\l@preto@macro\part{\CleanUpIndexStack}
+%
+% Now we have to define different kinds of index entries. We have entries that
+% will be added to only one index. We have entries that will be added to one
+% index with reference to that index at another index. And there are even
+% entries that will be added to one index with reference to to that index from
+% another index and from the main index.
+% \begin{macro}{\DefineSingeIndex}
+% This defines a single index entry, e.g. of commands. A macro will be
+% defined that addes the entry only to one index. First (optional)
+% agrument is a not, which shows the kind of entry (e.g. |\GuideMacro|). The
+% second is the macro postfix (e.g. \texttt{Cmd} would define |\IndexCmd|).
+% The third is the shortcut of the index to bee used
+% (e.g. \texttt{cmd}). The fourth argument is the command to be used to
+% output (format) the index entries (e.g. |\Macro|).
+% \begin{macrocode}
+\newcommand*{\DefineSingleIndex}[4][\relax]{%
+ \ifx\relax#1\relax
+ \expandafter\newcommand\expandafter*%
+ \csname Index#2\endcsname[2][indexother]{%
+ \Index[##1]{##2=\UseIndex{#3}#4{##2}}%
+ }%
+ \else
+ \expandafter\newcommand\expandafter*%
+ \csname Index#2\endcsname[2][indexother]{%
+ \Index[##1]{##2 (#1)=\UseIndex{#3}#4{##2} (\protect #1)}%
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\DefineDoubleIndex}
+% This defines a double index entry, e.g. of page styles. A macro will be
+% defined that adds the entry to an index and also adds a reference entry to
+% the main index. See |\DefineSingleIndex| for informations about the
+% parameters. If a note was given (first optional argument) it will be used
+% to make a top level entry to the main index with the corresponding
+% subentry.
+% \begin{macrocode}
+\newcommand*{\DefineDoubleIndex}[4][\relax]{%
+ % #1 = optional entry note (\GuidePagestyle)
+ % #2 = index macro postfix (Pagestyle)
+ % #3 = see-from-index to be used (cmd)
+ % #4 = output command (\Macro)
+ \ifx\relax#1\relax
+ \expandafter\newcommand\expandafter*%
+ \csname Index#2\endcsname[2][indexother]{%
+ \Index[##1]{##2=\UseIndex{gen}#4{##2}}%
+ \IndexSeeAt{##2}{#3}{gen}{\GuidegenIndex}{#4}%
+ }%
+ \else
+ \expandafter\newcommand\expandafter*%
+ \csname Index#2\endcsname[2][indexother]{%
+ \Index[##1]{##2 (#1)=\UseIndex{gen}#4{##2} (\protect #1)}%
+ \Index[##1]{\csname Guide#2IndexCategoryExpanded\endcsname=\UseIndex{gen}\expandafter\protect\csname Guide#2IndexCategory\endcsname>##2=\UseIndex{gen}#4{##2}}%
+ \IndexSeeAt[#1]{##2}{#3}{gen}{\GuidegenIndex}{#4}%
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\DefineTripleIndex}
+% This defines a triple index entry, e.g. of lengths. A macro will be
+% defined that adds the entry to an index and also adds a reference entry to
+% another index and the main index. The first (optional) argument is a note
+% (e.g. (|\GuideLength|) that will be used to generate a top level index
+% entry to the main index. The second argument is the macro postfix
+% (e.g. \texttt{Length} to define |\IndexLength|). The third argument is the
+% shortcut of the primary index (e.g. \texttt{len}). The fourth argument is
+% the short name of that index (e.g. |\GuidelenIndexShort|). The fifth
+% argument is the shortcut of the index to put the reference into
+% (e.g. \texttt{cmd}). The sixth argument is the output command of the index
+% entry (e.g. |\Length|).
+% \begin{macrocode}
+\newcommand*{\DefineTripleIndex}[6][\relax]{%
+ % #1 = optional entry note (\GuideLength)
+ % #2 = index macro postfix (Length)
+ % #3 = index to be used (len)
+ % #4 = index name (\GuidelenIndexShort)
+ % #5 = also-from-index to be used (cmd)
+ % #6 = output command (\Macro)
+ \ifx\relax#1\relax
+ \expandafter\newcommand\expandafter*%
+ \csname Index#2\endcsname[2][indexother]{%
+ \IndexSeeAt{##2}{gen}{#3}{#4}{#6}%
+ \IndexSeeAt{##2}{#5}{#3}{#4}{#6}%
+ \Index[##1]{##2=\UseIndex{#3}#6{##2}}%
+ \IndexSeeAt{##2}{#3}{gen}{\GuidegenIndex}{#4}%
+ }%
+ \else
+ \expandafter\newcommand\expandafter*%
+ \csname Index#2\endcsname[2][indexother]{%
+% \IndexSeeAt[#1]{##2}{gen}{#3}{#4}{#6}%
+% \Index[##1]{#1=\UseIndex{gen}\protect#1>##2=\UseIndex{gen}#6{##2}}%
+ \IndexSeeAt[#1]{##2}{#5}{#3}{#4}{#6}%
+ \Index[##1]{##2 (#1)=\UseIndex{#3}#6{##2} (\protect #1)}%
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% After this, let's define all used kinds of index entries:
+% \begin{macrocode}
+\DefineSingleIndex{Cmd}{cmd}{\Macro}
+\DefineDoubleIndex[\GuidePagestyle]{Pagestyle}{cmd}{\PValue}
+\DefineDoubleIndex[\GuideFloatstyle]{Floatstyle}{cmd}{\PValue}
+\DefineTripleIndex[\GuideCounter]{Counter}
+ {len}{\GuidelenIndexShort}{cmd}{\Counter}
+\DefineTripleIndex[\GuideLength]{Length}
+ {len}{\GuidelenIndexShort}{cmd}{\Length}
+\ifusemultiindex
+ \DefineSingleIndex[\GuideEnvironment]{Env}{cmd}{\Environment}
+ \DefineSingleIndex{Option}{opt}{\Option}
+ \DefineSingleIndex[\GuidePackage]{Package}{fil}{\Package}
+ \DefineSingleIndex[\GuideClass]{Class}{fil}{\Class}
+ \DefineSingleIndex{File}{fil}{\File}
+ \DefineSingleIndex[\GuideVariable]{Variable}{cmd}{\Variable}
+ \DefineSingleIndex{FontElement}{elm}{\FontElement}
+ \DefineSingleIndex{PLength}{len}{\PLength}
+\else
+ \DefineDoubleIndex[\GuideEnvironment]{Env}{cmd}{\Environment}
+ \DefineDoubleIndex{Option}{opt}{\Option}
+ \DefineDoubleIndex[\GuidePackage]{Package}{fil}{\Package}
+ \DefineDoubleIndex[\GuideClass]{Class}{fil}{\Class}
+ \DefineDoubleIndex{File}{fil}{\File}
+ \DefineDoubleIndex[\GuideVariable]{Variable}{cmd}{\Variable}
+ \DefineDoubleIndex{FontElement}{elm}{\FontElement}
+ \DefineDoubleIndex{PLength}{len}{\PLength}
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\indexrm}
+% \begin{macro}{\indexother}
+% \begin{macro}{\indexit}
+% \begin{macro}{\indexbf}
+% \begin{macro}{\indexmain}
+% \begin{macro}{\indexsl}
+% \begin{macro}{\indexsf}
+% \begin{macro}{\indexsc}
+% Some helpers to get page numbers with different fontification but hyper
+% links.
+% \begin{macrocode}
+\newcommand*{\indexrm}[1]{\textrm{\hyperpage{#1}}}
+\newcommand*{\indexother}{}\let\indexother\indexrm
+\newcommand*{\indexit}[1]{\textit{\hyperpage{#1}}}
+\newcommand*{\indexbf}[1]{\textbf{\hyperpage{#1}}}
+\newcommand*{\indexmain}{}\let\indexmain\indexbf
+\newcommand*{\indexsl}[1]{\textsl{\hyperpage{#1}}}
+\newcommand*{\indexsf}[1]{\textsf{\hyperpage{#1}}}
+\newcommand*{\indexsc}[1]{\textsc{\hyperpage{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+\endinput
+%
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: "test.tex"
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source-doc/scrguide.gst b/macros/latex/contrib/koma-script/source-doc/scrguide.gst
new file mode 100644
index 0000000000..3df00f56dd
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/scrguide.gst
@@ -0,0 +1,63 @@
+% ======================================================================
+% scrguide.gst
+% 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.
+% ----------------------------------------------------------------------
+% scrguide.gst
+% 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.
+% ======================================================================
+% MakeIndex style for change log generation based on `scrguide.ist'.
+%
+% Usage: makeindex -r -s scrguide.gst -o scrguide.chn scrguide.glo
+% ----------------------------------------------------------------------
+% MakeIndex-Style fuer die Aenderungsliste der KOMA-Script-Anleitung
+% Dies basiert auf "scrguide.ist"
+%
+% Verwendung: makeindx -r -s scrguide.gst -o scrguide.chn scrguide.glo
+% ======================================================================
+%
+level '>'
+actual '='
+encap '|'
+quote '~'
+%
+preamble "\\begin{thechangelog}\n"
+postamble "\n\\end{thechangelog}\n"
+%
+delim_0 "~\\dotfill~"
+delim_1 "~\\dotfill~"
+delim_2 "~\\dotfill~"
+%
+headings_flag 0
+%
+keyword "\\glossaryentry"
+%
+% Ende der Datei `scrguide.gst'
diff --git a/macros/latex/contrib/koma-script/source-doc/scrguide.ist b/macros/latex/contrib/koma-script/source-doc/scrguide.ist
new file mode 100644
index 0000000000..9f603a940e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/scrguide.ist
@@ -0,0 +1,52 @@
+% ----------------------------------------------------------------------
+% scrguide.ist
+% 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.
+% ----------------------------------------------------------------------
+% scrguide.ist
+% 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.
+% ======================================================================
+%
+% See `man makeindex` for informations about makeindex styles.
+%
+level '>'
+actual '='
+encap '|'
+quote '~'
+delim_0 "\\indexdelim"
+delim_1 "\\indexdelimi"
+delim_2 "\\indexdelimii"
+heading_prefix "\\indexsection{"
+heading_suffix "}\n"
+headings_flag 1
+symhead_positive ""
+%
+% end of file `scrguide.ist'
diff --git a/macros/latex/contrib/koma-script/source-doc/scrpage2.tex b/macros/latex/contrib/koma-script/source-doc/scrpage2.tex
new file mode 100644
index 0000000000..ce59a85ff3
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source-doc/scrpage2.tex
@@ -0,0 +1,2963 @@
+% ======================================================================
+% scrpage2.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrpage2.tex
+% Copyright (c) Markus Kohm, 2001-2018
+%
+% 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 scrpage2
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel über scrpage2
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\begin{filecontents*}{\jobname-ngerman.tex}
+\input{ngerman/guide-ngerman.tex}
+% \section{Jens-Uwe's Example Text}
+%
+% TODO: These should be merged with other example text.
+% \begin{macro}{\XmpText}
+% Example text command; the default definition (50) returns the whole text.
+% \begin{macrocode}
+\newcommand*{\XmpText}[1][50]{%
+ \ifnum #1<51
+ Dieser Blindtext wird gerade von 130 Millionen Rezeptoren
+ Ihrer Netzhaut erfasst.
+ \ifnum #1>1
+ Die Zellen werden dadurch in einen Erregungs\char\defaulthyphenchar
+ \kern-1pt\linebreak
+ \ifnum #1>2
+ zustand versetzt, der sich vom Sehnerv in den
+ \ifnum #1>3
+ hinteren Teil Ihres Gehirns ausbreitet.
+ Von dort aus \"ubertr\"agt sich die Erregung in
+ Sekundenbruchteilen auch in andere Bereiche Ihres
+ Gro\ss hirns.
+ Ihr Stirnlappen wird stimuliert.
+ Von dort aus gehen jetzt Willens\char\defaulthyphenchar
+ \kern-1pt\linebreak
+ \fi\fi\fi
+ \fi
+ \ifnum #1>49
+ impulse aus, die Ihr zentrales Nervensystem in konkrete Handlungen
+ umsetzt. Kopf und Augen reagieren bereits.
+ Sie folgen dem Text, nehmen die darin enthaltenen Informationen
+ auf und leiten diese \"uber den Sehnerv weiter.
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XmpTopText}
+% \begin{macro}{\XmpBotText}
+% These two commands are language-dependent, since in some languages
+% additional commands may required.
+% \begin{macrocode}
+\newcommand*{\XmpTopText}{\XmpText[3]}
+\newcommand*{\XmpBotText}{\XmpText[2]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\XmpMarginTextA}
+% \begin{macro}{\XmpMarginTextB}
+% Margin notes.
+% \begin{macrocode}
+\newcommand*{\XmpMarginTextA}{Netzhaut}
+\newcommand*{\XmpMarginTextB}{(\textit{Retina})}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+\end{filecontents*}
+
+\begin{filecontents*}{\jobname-english.tex}
+\input{english/guide-english.tex}
+% \begin{macro}{\XmpText}
+% Example text command; the default definition (50) returns the whole text.
+% \begin{macrocode}
+\newcommand*{\XmpText}[1][50]{%
+ \ifnum #1<51
+ This f\/ill text is currently seized by 130 million receptors
+ in your retina.
+ \ifnum #1>1
+ Thereby the nerve cells are put in a state of stimulation,
+ which spreads
+ \ifnum #1>2
+ into the rear part of your brain originating from
+ \ifnum #1>3
+ the optic nerve.
+ From there the stimulation is transmitted in a split second
+ also in other parts of your cerebrum.
+ Your frontal lobe becomes stimulated.
+ Intention-impulses spread from there, which your
+ central nervous\setlength{\parfillskip}{0pt}%
+ \fi\fi\fi
+ \fi
+ \ifnum #1>49
+ system transforms in actual deeds.
+ Head and eyes already react.
+ They follow the text, taking the information present there
+ and transmit them via the optic nerve.
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XmpTopText}
+% \begin{macro}{\XmpBotText}
+% These two commands are language-dependent, since in some languages
+% additional commands may required.
+% \begin{macrocode}
+\newcommand*{\XmpTopText}{\XmpText[3]}
+\newcommand*{\XmpBotText}{\XmpText[2]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\XmpMarginTextA}
+% \begin{macro}{\XmpMarginTextB}
+% Margin notes.
+% \begin{macrocode}
+\newcommand*{\XmpMarginTextA}{Retina}
+\newcommand*{\XmpMarginTextB}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+\end{filecontents*}
+
+\documentclass[ngerman,english]{scrguide}
+
+\makeatletter
+\renewcommand*{\@pnumwidth}{2em}
+\makeatother
+
+\KOMAProvidesFile{scrpage2.tex}%
+ [$Date: 2013-07-22 $
+ a user guide to obsolete package scrpage2]
+
+\begin{document}
+
+\addparttocentry{}{English}
+\def\theHchapter{E.\thechapter}
+\setcounter{chapter}{0}
+\renewcommand*{\thepage}{E.\arabic{page}}
+\title{The Obsolete Package \Package{scrpage2}}
+\subtitle{Extract from former versions of the \KOMAScript{} Manual}
+\author{Markus Kohm\and Jens-Uwe-Morakswi}
+\date{2018-02-07}
+\maketitle
+
+\tableofcontents
+
+\translator{Jens-Uwe Morawski\and Karl-Heinz Zimmer\and Christoph Bier\and
+ Gernot Hassenpflug\and Markus Kohm}
+
+\chapter{Adapting Page Headers and Footers with \Package{scrpage2}}
+\labelbase{scrpage-en}
+
+%
+\BeginIndexGroup
+\BeginIndex{Package}{scrpage2}%
+\BeginIndex{}{page>style}
+From \KOMAScript{} 3.12 the completely newly implemented package
+\Package{scrlayer-scrpage} replaces the old \Package{scrpage2}. The new
+package is a consequently developed extension of the design of
+\Package{scrpage2}. In difference to \Package{scrpage2} it provides the
+extended option interface of the \KOMAScript{} classes. Because
+\Package{scrlayer-scrpage} predominates \Package{scrpage2} it is recommended
+to not longer use \Package{scrpage2} but \Package{scrlayer-scrpage}. Because
+of this the current version of \Package{scrpage2} is the final one. All
+development resources will go into \Package{scrlayer-scrpage}. For more
+information about \Package{scrlayer-scrpage} see the \KOMAScript{} manual.
+
+\begin{Explain}
+ In place of \Package{scrpage2} or \Package{scrlayer-scrpage} you can of
+ course make use of \Package{fancyhdr}. However, \Package{scrpage2} and
+ especially \Package{scrlayer-scrpage} integrated markedly better with the
+ {\KOMAScript} bundle. For this reason, and because at the time the
+ forerunner to \Package{fancyhdr} was missing many features,
+ \Package{scrpage2} was developed. Naturally, \Package{scrpage2} and
+ \Package{scrlayer-scrpage} are not limited to use only with the
+ {\KOMAScript} classes, but can just as easily be used with other document
+ classes.
+\end{Explain}
+
+
+\section{Basic Functionality}\label{sec:scrpage-en.basics}
+
+\begin{Explain}% Introduction to headings
+ To understand the following description, an overview of {\LaTeX}'s fairly
+ involved header and footer mechanism is needed. The {\LaTeX} kernel defines
+ the page styles \PageStyle{empty}, which produces a completely empty header
+ and footer, and \PageStyle{plain}, which produces usually only a page number
+ in the footer and an empty header. Apart from these, many document classes
+ provide the style \PageStyle{headings}, which allows more complex style
+ settings and running
+ headings\Index{headings>running}\Index{headings>automatic}. The
+ \PageStyle{headings} style often has a related variant,
+ \PageStyle{myheadings}, which is similar except for switching off the
+ running headings\Index{headings>manual} and reverting them to manual control
+ by the user. A more detailed description is given in the page style section
+ of the \KOMAScript{} manual where it is also noted that some {\LaTeX}
+ commands automatically switch to another page style\,---\,usually page style
+ \PageStyle{plain}\,---\,for the current page.
+\end{Explain}
+
+
+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
+headings. More information about this in \autoref{sec:scrpage-en.basics.mark}.
+
+
+\subsection{Predefined Page Styles}\label{sec:scrpage-en.basics.buildIn}
+
+One of the basic features of \Package{scrpage2} is a set of predefined,
+configurable page styles.
+
+% \lehead ...
+% scrheadings
+% \headmark \pagemark
+
+\begin{Declaration}
+ \PageStyle{scrheadings}%
+ \PageStyle{scrplain}
+\end{Declaration}%
+Package \Package{scrpage2} delivers its own page style, named
+\PageStyle{scrheadings}, which can be activated with the
+\Macro{pagestyle}\PParameter{scrheadings}. When this page style is in use, an
+appropriate \PageStyle{scrplain} page style is used for the plain page style.
+In this case \emph{appropriate} means that this new plain page style is also
+configureable by the commands introduced in
+\autoref{sec:scrpage-en.basics.format}, which, for example, configure the header
+and footer width and complies within the basic layout. Neither the activation
+of \PageStyle{scrheadings} nor the attendant change to the appropriate plain
+page style, \PageStyle{scrplain}, influences the mode of manual or automatic
+headings\Index{headings>automatic}\Index{headings>manual} (see
+\autoref{sec:scrpage-en.basics.mark}). The \PageStyle{scrplain} page style can
+also be activated directly with \Macro{pagestyle}.
+
+
+\begin{Declaration}
+ \Macro{lehead}%
+ \OParameter{scrplain-left-even}\Parameter{scrheadings-left-even}%
+ \Macro{cehead}%
+ \OParameter{scrplain-center-even}\Parameter{scrheadings-center-even}%
+ \Macro{rehead}%
+ \OParameter{scrplain-right-even}\Parameter{scrheadings-right-even}%
+ \Macro{lefoot}%
+ \OParameter{scrplain-left-even}\Parameter{scrheadings-left-even}%
+ \Macro{cefoot}%
+ \OParameter{scrplain-center-even}\Parameter{scrheadings-center-even}%
+ \Macro{refoot}%
+ \OParameter{scrplain-right-even}\Parameter{scrheadings-right-even}%
+ \Macro{lohead}%
+ \OParameter{scrplain-left-odd}\Parameter{scrheadings-left-odd}%
+ \Macro{cohead}%
+ \OParameter{scrplain-center-odd}\Parameter{scrheadings-center-odd}%
+ \Macro{rohead}%
+ \OParameter{scrplain-right-odd}\Parameter{scrheadings-right-odd}%
+ \Macro{lofoot}%
+ \OParameter{scrplain-left-odd}\Parameter{scrheadings-left-odd}%
+ \Macro{cofoot}%
+ \OParameter{scrplain-center-odd}\Parameter{scrheadings-center-odd}%
+ \Macro{rofoot}%
+ \OParameter{scrplain-right-odd}\Parameter{scrheadings-right-odd}%
+ \Macro{ihead}%
+ \OParameter{scrplain-inside}\Parameter{scrheadings-inside}%
+ \Macro{chead}%
+ \OParameter{scrplain-centered}\Parameter{scrheadings-centered}%
+ \Macro{ohead}%
+ \OParameter{scrplain-outside}\Parameter{scrheadings-outside}%
+ \Macro{ifoot}%
+ \OParameter{scrplain-inside}\Parameter{scrheadings-inside}%
+ \Macro{cfoot}%
+ \OParameter{scrplain-centered}\Parameter{scrheadings-centered}%
+ \Macro{ofoot}%
+ \OParameter{scrplain-outside}\Parameter{scrheadings-outside}
+\end{Declaration}%
+The page style of \Package{scrpage2} are defined to have flexible configurable
+header and footer. To achieve this, the page styles include three boxes in
+both the header and the footer. The contents of these boxes may be modified
+easily. The commands modifying the content of these boxes can be seen in
+\autoref{fig:scrpage-en.leheadetall}. Commands in the middle column modify the
+box contents on both odd and even pages. All of the commands have an optional
+and a mandatory argument. The option Argument influences the content of
+corresponding box of the plain page style, \PageStyle{scrplain}. The mandatory
+argument influences the content of the corresponding box of the page style
+\PageStyle{scrheadings}.
+
+\begin{figure}
+% \centering
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [Commands for modification of \Package{scrpage2} page styles elements]%
+ {Commands for modification of page styles \PageStyle{scrheadings} and
+ \PageStyle{scrplain} and their relationship to header and footer
+ elements}
+ [l]
+ \setlength{\unitlength}{.95mm}\begin{picture}(100,65)(0,8)\small
+ \put(0,12){\dashbox{2}(40,56){even page}}
+ \put(60,12){\dashbox{2}(40,56){odd page}}
+ % items top left
+ \put(1,63){\framebox(8,4){~}}
+ \put(16,63){\framebox(8,4){~}}
+ \put(31,63){\framebox(8,4){~}}
+ % items top right
+ \put(61,63){\framebox(8,4){~}}
+ \put(76,63){\framebox(8,4){~}}
+ \put(91,63){\framebox(8,4){~}}
+ % items bottom left
+ \put(1,13){\framebox(8,4){~}}
+ \put(16,13){\framebox(8,4){~}}
+ \put(31,13){\framebox(8,4){~}}
+ % items bottom right
+ \put(61,13){\framebox(8,4){~}}
+ \put(76,13){\framebox(8,4){~}}
+ \put(91,13){\framebox(8,4){~}}
+ % commands and arrow
+ % for twoside
+ %
+ \put(50,65){\makebox(0,0){\DescRef{scrpage-en.cmd.ihead}}}
+ \put(44,65){\vector(-1,0){4}}\put(56,65){\vector(1,0){4}}
+ \put(50,58){\makebox(0,0){\DescRef{scrpage-en.cmd.chead}}}
+ \put(44,58){\line(-1,0){24}}\put(56,58){\line(1,0){24}}
+ \put(20,58){\vector(0,1){4}}\put(80,58){\vector(0,1){4}}
+ \put(50,51){\makebox(0,0){\DescRef{scrpage-en.cmd.ohead}}}
+ \put(44,51){\line(-1,0){40}}\put(56,51){\line(1,0){40}}
+ \put(4,51){\vector(0,1){11}}\put(96,51){\vector(0,1){11}}
+ %
+ \put(50,15){\makebox(0,0){\DescRef{scrpage-en.cmd.ifoot}}}
+ \put(56,15){\vector(1,0){4}}\put(44,15){\vector(-1,0){4}}
+ \put(50,22){\makebox(0,0){\DescRef{scrpage-en.cmd.cfoot}}}
+ \put(44,22){\line(-1,0){24}}\put(56,22){\line(1,0){24}}
+ \put(20,22){\vector(0,-1){4}}\put(80,22){\vector(0,-1){4}}
+ \put(50,29){\makebox(0,0){\DescRef{scrpage-en.cmd.ofoot}}}
+ \put(44,29){\line(-1,0){40}}\put(56,29){\line(1,0){40}}
+ \put(4,29){\vector(0,-1){11}}\put(96,29){\vector(0,-1){11}}
+ % commands for oneside
+ \put(5,69){\makebox(0,0)[b]{\DescRef{scrpage-en.cmd.lehead}}}
+ \put(20,69){\makebox(0,0)[b]{\DescRef{scrpage-en.cmd.cehead}}}
+ \put(35,69){\makebox(0,0)[b]{\DescRef{scrpage-en.cmd.rehead}}}
+ %
+ \put(65,69){\makebox(0,0)[b]{\DescRef{scrpage-en.cmd.lohead}}}
+ \put(80,69){\makebox(0,0)[b]{\DescRef{scrpage-en.cmd.cohead}}}
+ \put(95,69){\makebox(0,0)[b]{\DescRef{scrpage-en.cmd.rohead}}}
+ %
+ \put(5,11){\makebox(0,0)[t]{\DescRef{scrpage-en.cmd.lefoot}}}
+ \put(20,11){\makebox(0,0)[t]{\DescRef{scrpage-en.cmd.cefoot}}}
+ \put(35,11){\makebox(0,0)[t]{\DescRef{scrpage-en.cmd.refoot}}}
+ %
+ \put(65,11){\makebox(0,0)[t]{\DescRef{scrpage-en.cmd.lofoot}}}
+ \put(80,11){\makebox(0,0)[t]{\DescRef{scrpage-en.cmd.cofoot}}}
+ \put(95,11){\makebox(0,0)[t]{\DescRef{scrpage-en.cmd.rofoot}}}
+ \end{picture}
+ \end{captionbeside}
+% \caption[Commands for modification of \Package{scrpage2} page styles
+% elements]%
+% {Commands for modification of page styles \PageStyle{scrheadings} and
+% \PageStyle{scrplain} and their relationship to header and footer
+% elements}
+ \label{fig:scrpage-en.leheadetall}
+\end{figure}
+
+\begin{Example}
+ If one wants the page number within \PageStyle{scrheadings} be placed in the
+ middle of the footer, then following can be used:
+\begin{lstcode}
+ \cfoot{\pagemark}
+\end{lstcode}
+ The next example shows how to place both running heading and page
+ number\Index{page>number}\Index{pagination} in the header; the running
+ heading\Index{headings} inside and the page number outside:
+\begin{lstcode}
+ \ohead{\pagemark}
+ \ihead{\headmark}
+ \cfoot{}
+\end{lstcode}
+ The command \Macro{cfoot}\PParameter{} is only required in order to
+ empty the item in the middle of the footer, which normally contains
+ the page number.
+\end{Example}
+
+The commands which are associated with only one item can be used for
+more advanced settings.
+
+\begin{Example}
+ Assuming one has the order to write an annual report of a company, one could
+ use commands like this:
+\begin{lstcode}
+ \ohead{\pagemark}
+ \rehead{Annual Report 2001}
+ \lohead{\headmark}
+ \cefoot{TheCompanyName Inc.}
+ \cofoot{Department: Development}
+\end{lstcode}
+ In order to keep the data in the footer synchronized with the content
+ of the document, the footer has to be updated using \Macro{cofoot}
+ when a new department is discussed in the report.
+\end{Example}
+
+As mentioned above, there is a new plain page style which corresponds to
+\PageStyle{scrheadings}. Since it should also be possible to customize this
+style, the commands support an optional argument with which the contents of
+the appropriate fields of this plain page style can be modified.
+
+\begin{Example}
+ The position of the page number for the page style \PageStyle{scrheadings}
+ can be declared as follows:
+\begin{lstcode}
+ \cfoot[\pagemark]{}
+ \ohead[]{\pagemark}
+\end{lstcode}
+ When the command \Macro{chapter}, after it has started a new page, now
+ switches to the page style \PageStyle{plain}, then the page number is
+ centered in the footer.
+\end{Example}
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{clearscrheadings}%
+ \Macro{clearscrplain}%
+ \Macro{clearscrheadfoot}
+\end{Declaration}%
+If one wants to redefine both the page style \PageStyle{scrheadings} and
+the corresponding plain page style, frequently one must empty
+some already occupied page elements. Since one rarely fills all items
+with new content, in most cases several instructions with empty
+parameters are necessary. With the help of these three instructions
+the quick and thorough deletion is possible. While
+\Macro{clearscrheadings} only deletes all fields of the page style
+\PageStyle{scrheadings}, and \Macro{clearscrplain} deletes all fields of
+the corresponding plain page style, \Macro{clearscrheadfoot}
+sets all fields of both page styles to empty.
+\begin{Example}
+ If one wants to reset the page style to the default {\KOMAScript}
+ settings, independent of the actual configuration, only these three
+ commands are sufficient:
+\begin{lstcode}
+ \clearscrheadfoot
+ \ohead{\headmark}
+ \ofoot[\pagemark]{\pagemark}
+\end{lstcode}
+ Without the commands \Macro{clearscrheadfoot},
+ \Macro{clearscrheadings} and \Macro{clearscrplain}, six commands with
+ additional nine empty arguments would be required:
+\begin{lstcode}
+ \ihead[]{}
+ \chead[]{}
+ \ohead[]{\headmark}
+ \ifoot[]{}
+ \cfoot[]{}
+ \ofoot[\pagemark]{\pagemark}
+\end{lstcode}
+ Of course, for a specific configuration, some of them could be
+ dropped.%
+\end{Example}%
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+In the previous examples two commands were used which have not been
+introduced yet. The description of these commands follows.
+
+\begin{Declaration}
+ \Macro{leftmark}%
+ \Macro{rightmark}
+\end{Declaration}%
+These two instructions make it possible to access the running headings, which
+are normally meant for the left or for the right page. These two instruction
+are not made available by \Package{scrpage2}, but directly by the {\LaTeX}
+kernel. When in this section running headings of the left page or the right
+page are mentioned, this refers to the contents of \Macro{leftmark} or
+\Macro{rightmark}, respectively.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{headmark}
+\end{Declaration}%
+This command gives access to the content of running headings. In
+contrast to \Macro{leftmark} and \Macro{rightmark}, one need not
+regard the proper assignment to left or right page.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{pagemark}
+\end{Declaration}%
+This command returns the formatted page number. The formatting can be
+controlled by \DescRef{scrpage-en.cmd.pnumfont}, introduced in
+\autoref{sec:scrpage-en.basics.format}, \DescPageRef{scrpage-en.cmd.pnumfont},
+which \Macro{pagemark} heeds automatically.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PageStyle{useheadings}
+\end{Declaration}%
+The package \Package{scrpage2} is meant primarily for use of the supplied
+styles or for defining one's own styles. However, it may be necessary to shift
+back also to a style provided by the document class. It might appear that
+this should be done with
+\Macro{pagestyle}\PParameter{headings}\IndexCmd{pagestyle}, but this has the
+disadvantage that commands \DescRef{scrpage-en.cmd.automark} and \DescRef{scrpage-en.cmd.manualmark}, to be
+discussed shortly, do not function as expected. For this reason one should
+shift back to the original styles using
+\Macro{pagestyle}\PParameter{useheadings}\IndexCmd{pagestyle}, which chooses
+the correct page styles automatically for both manual and automatic running
+headings.%
+%
+\EndIndexGroup
+
+
+\subsection{Manual and Running Headings}
+\label{sec:scrpage-en.basics.mark}
+% \automark \manualmark
+\BeginIndexGroup
+\BeginIndex{}{headings>running}%
+\BeginIndex{}{headings>automatic}%
+\BeginIndex{}{headings>manual}%
+Usually there is a \emph{my}-version of the \PageStyle{headings}
+page style. If such a page style is active, then the running headings
+are no longer updated no longer automatically and become manual
+headings. With \Package{scrpage2} a different path is taken. Whether
+the headings are running or manual is determined by the instructions
+\DescRef{scrpage-en.cmd.automark} and \DescRef{scrpage-en.cmd.manualmark}, respectively. The default
+can be set already while loading of the package, with the options
+\DescRef{scrpage-en.option.automark} and \DescRef{scrpage-en.option.manualmark} (see
+\autoref{sec:scrpage-en.basics.options},
+\DescPageRef{scrpage-en.option.automark}).
+
+
+\begin{Declaration}
+ \Macro{manualmark}
+\end{Declaration}%
+As the name suggests, \Macro{manualmark} switches off the updating of
+the running headings and makes them manual. It is left to the user to
+update and provide contents for the headings. For that purpose the
+instructions \Macro{markboth}\IndexCmd{markboth} and
+\Macro{markright}\IndexCmd{markright} are available.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{automark}\OParameter{right page}\Parameter{left page}
+\end{Declaration}%
+The macro \Macro{automark} activates the automatic updating, that is, running
+headings. For the two parameters the designations of the document sectioning
+level whose title is to appear in appropriate place are to be used. Valid
+values for the parameters are:
+\PValue{part}\ChangedAt{v2.2}{\Package{scrpage2}}, \PValue{chapter},
+\PValue{section}, \PValue{subsection}, \PValue{subsubsection},
+\PValue{paragraph}, and \PValue{subparagraph}. For most of the classes use of
+\PValue{part} will not produce the expected result. So far only {\KOMAScript}
+classes from version~2.9s up are known to support this value. The optional
+argument \PName{right page} is understandably meant only for double-sided
+documents. In the single-sided case one should normally not use it. With the
+help of the option
+\DescRef{scrpage-en.option.autooneside}\IndexOption{autooneside}\important{\DescRef{scrpage-en.option.autooneside}}
+one can also set that the optional argument in single-sided mode is ignored
+automatically (see \autoref{sec:scrpage-en.basics.options},
+\DescPageRef{scrpage-en.option.autooneside}).
+%
+\begin{Example}
+ Assuming that the document uses a \emph{book} class, whose topmost
+ section level is \emph{chapter}, then after a preceding
+ \DescRef{scrpage-en.cmd.manualmark}
+\begin{lstcode}
+ \automark[section]{chapter}
+\end{lstcode}
+ restores the original behaviour. If one prefers lower section levels
+ in running headings, the following can be used:
+\begin{lstcode}
+ \automark[subsection]{section}
+\end{lstcode}
+% How useful the last declaration is, everybody has to decide
+% for themselves.
+\end{Example}
+
+\begin{Explain}
+ For the upper section level, the data of the headings is set by the command
+ \Macro{markboth}\IndexCmd{markboth}, while that for the lower section level
+ by \Macro{markright}\IndexCmd{markright} or
+ \Macro{markleft}\IndexCmd[indexmain]{markleft}. These commands are called
+ indirectly by the sectioning commands. The macro \Macro{markleft} is
+ provided by the package \Package{scrpage2} and is defined similarly to
+ \Macro{markright} in the {\LaTeX} kernel. Although \Macro{markleft} is not
+ defined as an internal command, the direct use is not recommended.
+\end{Explain}
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+\subsection{Formatting of Header and Footer}
+\label{sec:scrpage-en.basics.format}
+% \headfont \pnumfont
+% \setheadwidth \setfootwidth
+% \set(head|foot)(top|sep|bot)line
+The previous section concerned itself mainly with the contents of the
+header and footer. This is of course not sufficient to satisfy
+formative ambitions. Therefore we devote this section exclusively to
+this topic.
+
+\begin{Declaration}
+ \Macro{headfont}%
+ \Macro{footfont}%
+ \Macro{pnumfont}
+\end{Declaration}%
+The command \Macro{headfont} contains the commands which determine the font of
+header and footer lines. Command \Macro{footfont} contains the difference of
+the footer to that. The difference for the style of the page number is defined
+by the command \Macro{pnumfont}.
+\begin{Example}
+ If, for example, one wants the header to be typeset in bold sans serif, the
+ footer in non-bold sans serif, and the page number in a slanted serif style,
+ then one can use the following definitions:
+\begin{lstcode}
+ \renewcommand{\headfont}{\normalfont\sffamily\bfseries}
+ \renewcommand*{\footfont}{\normalfont\sffamily}
+ \renewcommand{\pnumfont}{\normalfont\rmfamily\slshape}
+\end{lstcode}
+\end{Example}
+
+\BeginIndex{FontElement}{pagehead}%
+\BeginIndex{FontElement}{pagefoot}%
+\BeginIndex{FontElement}{pagenumber}%
+From version 2.8p of the {\KOMAScript} classes a new unified user interface
+scheme is implemented for font attributes. If \Package{scrpage2} is used
+together with one of these classes, then it is recommended to set up font
+attributes in the manner described in the \KOMAScript{} manual.
+\begin{Example}
+ Instead of \Macro{renewcommand} the command \Macro{setkomafont}
+ should be used to configure the font attributes. The previous
+ definitions can then be written as:
+\begin{lstcode}
+ \setkomafont{pagehead}\normalfont\sffamily\bfseries}
+ \setkomafont{pagefoot}{\normalfont\sffamily}
+ \setkomafont{pagenumber}{\normalfont\rmfamily\slshape}
+\end{lstcode}
+\end{Example}
+\EndIndexGroup
+
+
+\begin{Declaration}
+\Macro{setheadwidth}\OParameter{shift}\Parameter{width}%
+\Macro{setfootwidth}\OParameter{shift}\Parameter{width}
+\end{Declaration}%
+Normally the widths of header and footer lines correspond to the width of the
+text body. The commands
+\Macro{setheadwidth}\Index{header>width}\Index{head>width} and
+\Macro{setfootwidth}\Index{footer>width}\Index{foot>width} enable the user to
+adapt in a simple manner the widths to his needs. The mandatory argument
+\PName{width} takes the value of the desired width of the page header or
+footer, while \PName{shift} is a length parameter by which amount the
+appropriate item is shifted toward the outside page edge.
+
+For the most common situations the mandatory argument \PName{width}
+accepts the following symbolic values:
+\begin{labeling}[\,--]{\PValue{textwithmarginpar}}
+\item[\PValue{paper}] the width of the paper
+\item[\PValue{page}] the width of the page
+\item[\PValue{text}] the width of the text body
+\item[\PValue{textwithmarginpar}] the width of the text body including margin
+\item[\PValue{head}] the current header width
+\item[\PValue{foot}] the current footer width
+\end{labeling}
+The difference between \PValue{paper} and \PValue{page} is that \PValue{page}
+means the width of the paper less the binding correction if the package
+\Package{typearea}\IndexPackage{typearea} is used (see the chapter about
+\Package{typearea} in the \KOMAScript{} manual). Without \Package{typearea}
+both values are identical.
+
+\begin{Example}
+ Assume that one wants a layout like that of \emph{The
+ {\LaTeX}\,Companion}, where the header projects into the
+ margin. This can be obtained with:
+\begin{lstcode}
+ \setheadwidth[0pt]{textwithmarginpar}
+\end{lstcode}
+%
+ which appears like this on an odd page:
+%
+ \begin{XmpTopPage}
+ \XmpHeading{10,25}{85}
+ \thinlines\XmpRule{10,23}{85}
+ \XmpSetText[\XmpTopText]{10,21}
+ \XmpMarginNote{83,11.8}
+ \end{XmpTopPage}
+%
+ If the footer line should have the same width and alignment, then two
+ ways to set this up are possible. The first way simply repeats the
+ settings for the case of the footer line:
+\begin{lstcode}
+ \setfootwidth[0pt]{textwithmarginpar}
+\end{lstcode}
+%
+ In the second way the symbolic value \PValue{head} is used, since the
+ header already has the desired settings.
+\begin{lstcode}
+ \setfootwidth[0pt]{head}
+\end{lstcode}
+\end{Example}
+
+If no \PName{shift} is indicated, i.\,e., without the optional argument,
+then the header or footer appears arranged symmetrically on the page.
+In other words, a value for the \PName{shift} is determined
+automatically to correspond to the current page shape.
+%
+\begin{Example}
+ Continuing with the previous example, we remove the optional
+ argument:
+\begin{lstcode}
+ \setheadwidth{textwithmarginpar}
+\end{lstcode}
+%
+ which appears like this on an odd page:
+%
+ \begin{XmpTopPage}
+ \XmpHeading{5,25}{85}
+ \thinlines\XmpRule{5,23}{85}
+ \XmpSetText[\XmpTopText]{10,21}
+ \XmpMarginNote{83,11.8}
+ \end{XmpTopPage}
+\end{Example}
+
+As can be seen, the header is now shifted inward, while the header
+width has not changed. The shift is calculated in a way that the
+configuration of the typearea become visible also here.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setheadtopline}\OParameter{length}\Parameter{thickness}%
+ \OParameter{commands}%
+ \Macro{setheadsepline}\OParameter{length}\Parameter{thickness}%
+ \OParameter{commands}%
+ \Macro{setfootsepline}\OParameter{length}\Parameter{thickness}%
+ \OParameter{commands}%
+ \Macro{setfootbotline}\OParameter{length}\Parameter{thickness}%
+ \OParameter{commands}
+\end{Declaration}%
+Corresponding to the size configuration parameters of header and
+footer there are commands to modify the rules above and below the
+header and footer. But first of all the rules should be activated. See options
+\DescRef{scrpage-en.option.headtopline}, \DescRef{scrpage-en.option.headsepline},
+\DescRef{scrpage-en.option.footsepline}, and \DescRef{scrpage-en.option.footbotline} in
+\autoref{sec:scrpage-en.basics.options},
+\DescPageRef{scrpage-en.option.headsepline} for this.
+
+\begin{labeling}[\,--]{\Macro{setfootsepline}}
+\item[\Macro{setheadtopline}] configures the line above the header
+\item[\Macro{setheadsepline}] configures the line below the header
+\item[\Macro{setfootsepline}] configures the line above the footer
+\item[\Macro{setfootbotline}] configures the line below the footer
+\end{labeling}
+
+The mandatory argument \PName{thickness} determines how strongly the
+line is drawn. The optional argument \PName{length} accepts the same
+symbolic values as \PName{width} for \DescRef{scrpage-en.cmd.setheadwidth}, as well as
+also a normal length expression. As long as the optional argument
+\PName{length} is not assigned a value, the appropriate line length
+adapts automatically the width of the header or the footer.
+
+Use \PValue{auto} in the length argument to restore this automation
+for the length of a line.
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{headtopline}%
+\BeginIndex{FontElement}{headsepline}%
+\BeginIndex{FontElement}{footsepline}%
+\BeginIndex{FontElement}{footbotline}%
+\BeginIndex{FontElement}{footbottomline}%
+The\ChangedAt{v2.2}{\Package{scrpage2}} optional argument \PName{commands} may
+be used to specify additional commands to be executed before the respective
+line is drawn. For example, such commands could be used for changing the
+color\Index{header>color}\Index{footer>color}%
+\Index{head>color}\Index{foot>color}%
+\Index{color>in header}\Index{color>in footer} of the line. When using a
+{\KOMAScript} class you could also use
+\Macro{setkomafont}\IndexCmd{setkomafont} to specify commands for one of the
+elements \FontElement{headtopline}\important[i]{\FontElement{headtopline}\\
+ \FontElement{headsepline}\\
+ \FontElement{footsepline}\\
+ \FontElement{footbottomline}}, \FontElement{headsepline},
+\FontElement{footsepline}, \FontElement{footbottomline}, or
+\FontElement{footbotline}. These can then be extended via
+\Macro{addtokomafont}\IndexCmd{addtokomafont}. See the \KOMAScript{} manual
+for details on the \Macro{setkomafont} and \Macro{addtokomafont} commands.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \labelsuffix[auto+current]
+ \Macro{setheadtopline}\POParameter{auto}%
+ \PParameter{current}%
+ \labelsuffix[auto]
+ \Macro{setheadtopline}\POParameter{auto}%
+ \Parameter{}%
+ \labelsuffix[auto+]
+ \Macro{setheadtopline}\POParameter{auto}%
+ \Parameter{}\OParameter{}
+\end{Declaration}%
+The arguments shown here for the command \DescRef{scrpage-en.cmd.setheadtopline} are of
+course valid for the other three configuration commands too.
+
+If the mandatory parameter has the value \PValue{current} or has been
+left empty, then the line thickness is not changed. This may be used
+to modify the length of the line without changing its thickness.
+
+If the optional argument \PName{commands} is omitted, then all command
+settings that might have been specified before will remain active,
+while an empty \PName{commands} argument will revoke any previously
+valid commands.
+
+\begin{Example}
+ If the header, for example, is to be contrasted by a strong line of
+ 2\,pt above and a normal line of 0.4\,pt between header and body,
+ one can achieve this with:
+\begin{lstcode}
+ \setheadtopline{2pt}
+ \setheadsepline{.4pt}
+\end{lstcode}
+ Additionally\textnote{Attention!} the options \DescRef{scrpage-en.option.headtopline} and
+ \DescRef{scrpage-en.option.headsepline} have to be used preferably globally in the optional
+ argument of \Macro{documentclass}. In this case the result may be the
+ following.
+%
+\begin{XmpTopPage}
+ \XmpHeading{10,25}{70}
+ \thinlines\XmpRule{10,23}{70}
+ \thicklines\XmpRule{10,28}{70}
+ \XmpSetText[\XmpTopText]{10,21}
+ \XmpMarginNote{83,11.8}
+\end{XmpTopPage}
+
+ To specify that this line is to be drawn also, e.\,g., in red color, you
+ would change the commands like this:
+\begin{lstcode}
+ \setheadtopline{2pt}[\color{red}]
+ \setheadsepline{.4pt}[\color{red}]
+\end{lstcode}
+ In this example, as well as in the following one, line color is
+ activated by applying the syntax of the
+ \Package{color}\IndexPackage{color} package, so this package must of
+ course be loaded. Since \Package{scrpage2} comes without built-in
+ color handling, any package providing color support may be used.
+
+ {\KOMAScript} classes also support the following way of color specification:
+\begin{lstcode}
+ \setheadtopline{2pt}
+ \setheadsepline{.4pt}
+ \setkomafont{headtopline}[\color{red}]
+ \setkomafont{headsepline}[\color{red}]
+\end{lstcode}
+
+ The automatic adjustment to the header and footer width is illustrated
+ in the following example:
+\begin{lstcode}
+ \setfootbotline{2pt}
+ \setfootsepline[text]{.4pt}
+ \setfootwidth[0pt]{textwithmarginpar}
+\end{lstcode}
+
+% \phantomsection for hyperref-\pageref-links jum-2001/11/24
+ \phantomsection\label{page:scrpage-en.autoLineLength}
+ \begin{XmpBotPage}
+ \XmpHeading{10,18}{85}
+ \thinlines\XmpRule{17,21}{70}
+ \thicklines\XmpRule{10,16}{85}
+ \XmpSetText[\XmpBotText]{10,33}
+ \XmpMarginNote{83,24}
+ \end{XmpBotPage}
+\end{Example}
+%
+Now not everyone will like the alignment of the line above the footer;
+instead, one would expect the line to be left-aligned. This can only
+be achieved with a global package option, which will be described
+together with other package options in the next
+\autoref{sec:scrpage-en.basics.options}.%
+%
+\EndIndexGroup
+\EndIndexGroup
+
+
+\subsection{Package Options}
+\label{sec:scrpage-en.basics.options}
+% head(in|ex)clude foot(in|ex)clude --> typearea
+% headtopline headsepline footbotline footsepline (plain...)
+% komastyle standardstyle
+% markuppercase markusecase
+% automark manualmark
+
+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} 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}.
+
+\begin{Declaration}
+ \Option{headinclude}%
+ \Option{headexclude}%
+ \Option{footinclude}%
+ \Option{footexclude}
+\end{Declaration}%
+Since\textnote{Attention!} \KOMAScript~3\ChangedAt{v2.3}{\Package{scrpage2}}
+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},
+\OptionValue{headinclude}{false}, \Option{footinclude}, and
+\OptionValue{footinclude}{false} to package \Package{typearea}.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{headtopline}%
+ \Option{plainheadtopline}%
+ \Option{headsepline}%
+ \Option{plainheadsepline}%
+ \Option{footsepline}%
+ \Option{plainfootsepline}%
+ \Option{footbotline}%
+ \Option{plainfootbotline}
+\end{Declaration}%
+Basic adjustment of the lines under and over header and footer can be
+made with these options. These adjustments are then considered the
+default for all page styles defined with \Package{scrpage2}. If one
+of these options is used, then a line thickness 0.4\,pt is set.
+Since there is a corresponding plain page style to the
+page style \PageStyle{scrheadings}, the corresponding line in the plain
+style can also be configured with the \Option{plain\dots} options.
+These \Option{plain} options do however work only if the corresponding
+options without \Option{plain} are activated. Thus,
+\Option{plainheadtopline} shows no effect without the
+\Option{headtopline} option set.
+
+With these options, it is to be noted that the appropriate page part,
+header or footer, is considered as a part of the text area for the
+calculation of the type area in case a line has been activated. This
+means that, if the separation line between header and text is
+activated with \Option{headsepline}, then the package
+\Package{typearea} calculates the type area in such a way that the
+page header is part of the text block automatically.
+
+The\textnote{Attention!} conditions for the options of the preceding paragraph
+apply also to this automation. That means that the package \Package{typearea}
+must be loaded after \Package{scrpage2}, or that on use of a {\KOMAScript}
+class, the options \DescRef{scrpage-en.option.headinclude} and \DescRef{scrpage-en.option.footinclude} must be set
+explicitly with \Macro{documentclass} in order to transfer header or footer
+line in the text area.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+\Option{ilines}%
+\Option{clines}%
+\Option{olines}
+\end{Declaration}%
+\Index{rule>alignment}\Index{line>alignment}%
+With the definition of the line lengths the case can arise where the
+lengths are set correctly, but the justification is not as desired
+because the line will be centered in the header or footer area. With
+the package options presented here, this specification can be modified
+for all page styles defined with \Package{scrpage2}. The option
+\Option{ilines} sets the justification in such a way that the lines
+align to the inside edge. The option \Option{clines} behaves like the
+default justification, and \Option{olines} aligns at the outside edge.
+
+\begin{Example}
+ The next example illustrates the influence of the
+ option \Option{ilines}. Please compare to the example for
+ \DescRef{scrpage-en.cmd.setfootsepline} on \autopageref{page:scrpage-en.autoLineLength}.
+\begin{lstcode}
+ \usepackage[ilines]{scrpage2}
+ \setfootbotline{2pt}
+ \setfootsepline[text]{.4pt}
+ \setfootwidth[0pt]{textwithmarginpar}
+\end{lstcode}
+ The mere use of the option \Option{ilines} leads to the different
+ result shown below:
+\begin{XmpBotPage}
+ \XmpHeading{10,18}{85}
+ \thinlines\XmpRule{10,21}{70}
+ \thicklines\XmpRule{10,16}{85}
+ \XmpSetText[\XmpBotText]{10,33}
+ \XmpMarginNote{83,24}
+\end{XmpBotPage}
+ In contrast to the default configuration, the separation line between
+ text and footer is now left-aligned, not centered.%
+\end{Example}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{automark}%
+ \Option{manualmark}
+\end{Declaration}%
+\BeginIndex{}{headings>automatic}%
+\BeginIndex{}{headings>manual}%
+These options set at the beginning of the document whether to use running
+headings or manual ones. The option \Option{automark} switches the automatic
+updating on, \Option{manualmark} deactivates it. Without the use of one of
+the two options, the setting which was valid when the package was loaded is
+preserved.
+%
+\begin{Example}
+ You load the package \Package{scrpage2} directly after the document class
+ \Class{scrreprt} without any package options:
+\begin{lstcode}
+ \documentclass{scrreprt}
+ \usepackage{scrpage2}
+\end{lstcode}
+ Since the default page style of \Class{scrreprt} is \PageStyle{plain},
+ this page style is also now still active. Futhermore, \PageStyle{plain}
+ means manual headings. If one now activates the page style
+ \PageStyle{scrheadings} with
+\begin{lstcode}
+ \pagestyle{scrheadings}
+\end{lstcode}
+ then the manual headings are nevertheless still active.
+
+ If you instead use the document class \Class{scrbook}, then after
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage{scrpage2}
+\end{lstcode}
+ the page style \PageStyle{headings} is active and the running headings are
+ updated automatically. Switching to the page style
+ \PageStyle{scrheadings} keeps this setting active. The marking commands
+ of \Class{scrbook} continue to be used.
+
+ However, the use of
+\begin{lstcode}
+ \usepackage[automark]{scrpage2}
+\end{lstcode}
+ activates running headings independently of the used document class.
+ The option does not of course affect the used page style \PageStyle{plain}
+ of the class \Class{scrreprt}. The headings are not visible until the
+ page style is changed to
+ \PageStyle{scrheadings}\IndexPagestyle{scrheadings}, \PageStyle{useheadings}
+ or another user-defined page style with headings.%
+\end{Example}%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{autooneside}
+\end{Declaration}%
+\BeginIndex{}{headings>manual}%
+\BeginIndex{}{headings>automatic}%
+This option ensures that the optional parameter of
+\DescRef{scrpage-en.cmd.automark}\IndexCmd{automark} will be ignored automatically in
+one-sided mode. See also the explanation of the command
+\DescRef{scrpage-en.cmd.automark} in \autoref{sec:scrpage-en.basics.mark},
+\DescPageRef{scrpage-en.cmd.automark}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{komastyle}%
+ \Option{standardstyle}
+\end{Declaration}%
+These options determine the look of the predefined page styles
+\PageStyle{scrheadings} and \PageStyle{scrplain}. The option
+\Option{komastyle} configures a look like that of the {\KOMAScript} classes.
+This is the default for {\KOMAScript} classes and can in this way also be set
+for other classes.
+
+The option \Option{standardstyle} configures a page style as it is
+expected by the standard classes. Furthermore, the option
+\DescRef{scrpage-en.option.markuppercase} will be activated automatically, but only if
+option \DescRef{scrpage-en.option.markusedcase} is not given.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{markuppercase}%
+ \Option{markusedcase}
+\end{Declaration}%
+In order to achieve the functionality of \DescRef{scrpage-en.cmd.automark}, the package
+\Package{scrpage2} modifies internal commands which are used by the
+document structuring commands to set the running headings. Since some
+classes, in contrast to the {\KOMAScript} classes, write the headings
+in uppercase letters, \Package{scrpage2} has to know how the used
+document class sets the headings.
+
+Option \Option{markuppercase} shows \Package{scrpage2} that the document class
+uses uppercase letters. If the document class does not set the headings in
+uppercase letters, then the option \Option{markusedcase} should be given.
+These\textnote{Attention!} options are not suitable to force a representation;
+thus, unexpected effects may occur if the given option does not match the
+actual behaviour of the document class.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{nouppercase}
+\end{Declaration}%
+In the previous paragraph dealing with \DescRef{scrpage-en.option.markuppercase} and
+\DescRef{scrpage-en.option.markusedcase}, it has been already stated that some document classes
+set the running headings\Index{heading} in uppercase letters using the
+commands
+\Macro{MakeUppercase}\IndexCmd{MakeUppercase}\important{\Macro{MakeUppercase}}
+or \Macro{uppercase}\IndexCmd{uppercase}\important{\Macro{uppercase}}.
+Setting the option \Option{nouppercase} allows disabling both these commands
+in the headers and footers. However, this is valid only for page styles
+defined by \Package{scrpage2}, including \PageStyle{scrheadings} and its
+corresponding plain page style.
+
+The applied method is very brutal and can cause that desired changes
+of normal letters to uppercase letters \Index{uppercase letters} do
+not occur. Since these cases do not occur frequently, the option
+\Option{nouppercase} usually affords a useful solution.
+\begin{Example}
+ Your document uses the standard class \Class{book}\IndexClass{book},
+ but you do not want the uppercase headings but mixed case
+ headings. Then the preamble of your document could start with:
+\begin{lstcode}
+ \documentclass{book}
+ \usepackage[nouppercase]{scrpage2}
+ \pagestyle{scrheadings}
+\end{lstcode}
+ The selection of the page style \PageStyle{scrheadings} is necessary,
+ since otherwise the page style \PageStyle{headings} is active, which
+ does not respect the settings made by option \Option{nouppercase}.
+\end{Example}
+
+In some cases not only classes but also packages set the running
+headings in uppercase letters.
+Also in these cases the option \Option{nouppercase} should be able
+to switch back to the normal mixed case headings.%
+%
+\EndIndexGroup
+
+
+\section{Defining Own Page Styles}\label{sec:scrpage-en.UI}
+
+\subsection{The Interface for Beginners}\label{sec:scrpage-en.UI.user}
+% \deftripstyle
+
+Now one would not like to remain bound to only the provided page
+styles, but may wish to define one's own page styles. Sometimes there
+will be a special need, since a specific \emph{Corporate Identity} may
+require the declaration of its own page styles. The easiest way to
+deal with this is:
+\begin{Declaration}
+ \Macro{deftripstyle}\Parameter{name}%
+ \OParameter{LO}\OParameter{LI}%
+ \Parameter{HI}\Parameter{HC}\Parameter{HO}%
+ \Parameter{FI}\Parameter{FC}\Parameter{FO}
+\end{Declaration}%
+The individual parameters have the following meanings:
+\begin{labeling}[\,--]{\PName{Name}}
+\item[\PName{name}] the name of the page style, in order to activate it
+ using the command \Macro{pagestyle}\Parameter{name}
+\item[\PName{LO}] the thickness of the outside lines,
+ i.\,e., the line above the header
+ and the line below the footer (optional)
+\item[\PName{LI}] the thickness of the separation lines,
+ i.\,e., the line below the header
+ and the line above the foot (optional)
+\item[\PName{HI}] contents of the inside box in the page header for two-sided
+ layout or left for one-sided layout
+\item[\PName{HC}] contents of the centered box in the page header
+\item[\PName{HO}] contents of the outside box in the page header for two-sided
+ layout or right for one-sided layout
+\item[\PName{FI}] contents of the inside box in the page footer for two-sided
+ layout or left for one-sided layout
+\item[\PName{FC}] contents of the centered box in the page footer
+\item[\PName{FO}] contents of the outside box in the page footer for two-sided
+ layout or right for one-sided layout
+\end{labeling}
+
+The command \Macro{deftripstyle} definitely represents the simplest
+possibility of defining page styles. Unfortunately, there are also
+restrictions connected with this, since in a page range using a page
+style defined via deftripstyle, no modification of the lines above and
+below header and footer can take place.
+
+\begin{Example}
+ Assume a two-sided layout, where the running headings are placed on
+ the inside. Furthermore, the document title, here ``Report'', shall
+ be placed outside in the header, the page number shall be centered
+ in the footer.
+\begin{lstcode}
+ \deftripstyle{TheReport}%
+ {\headmark}{}{Report}%
+ {}{\pagemark}{}
+\end{lstcode}
+
+ If moreover the lines above the header and below the footer shall be
+ drawn with a thickness of 2\,pt, and the text body be separated from
+ header and footer with 0.4\,pt lines, then the definition has to be
+ extended:
+\begin{lstcode}
+ \deftripstyle{TheReport}[2pt][.4pt]%
+ {\headmark}{}{Report}%
+ {}{\pagemark}{}
+\end{lstcode}
+ See \autoref{fig:scrpage2.tomuchlines} for the result.
+%
+\begin{figure}
+ \typeout{^^J--- Ignore underfull and overfull \string\hbox:}
+ \setcapindent{0pt}%
+% \begin{center}
+ \begin{captionbeside}
+ [{%
+ Example of a user defined, line dominated page style%
+ }]{%
+ example of a user defined, line dominated page style
+ with a static and a running heading at the page header and a page number
+ centered at the page footer%
+ \label{fig:scrpage2.tomuchlines}%
+ }
+ [l]
+ \iffree{\setlength{\unitlength}{1.15mm}}{\setlength{\unitlength}{1mm}}%
+ \begin{picture}(85,51)\scriptsize
+ \thinlines
+ \put(0,0){\line(0,1){51}}
+ \put(45,0){\line(0,1){51}}
+ \put(0,51){\line(1,0){40}}
+ \put(45,51){\line(1,0){40}}
+ %
+ \thicklines
+ \put(40,0){\line(0,1){51}}
+ \put(85,0){\line(0,1){51}}
+ \put(0,0,){\line(1,0){40}}
+ \put(45,0){\line(1,0){40}}
+ %
+ \XmpHeading[Report\hfill 2. The Eye]{6,47}{30}
+ \XmpHeading[2.1 Retina\hfill Report]{49,47}{30}
+ \XmpHeading[\hfill 14\hfill]{6,6.5}{30}
+ \XmpHeading[\hfill 15\hfill]{49,6.5}{30}
+ \put(6,44){\makebox(0,0)[tl]{\parbox{30\unitlength}{\tiny%
+ \textbf{2.1 Retina}\\
+ \XmpText[49]}}}
+ \put(49,44){\makebox(0,0)[tl]{\parbox{30\unitlength}{\tiny%
+ \XmpText[51]}}}
+ %
+ \thinlines
+ \XmpRule{6,45.5}{30}\XmpRule{49,45.5}{30}
+ \XmpRule{6,8}{30}\XmpRule{49,8}{30}
+ \linethickness{1pt}
+ \XmpRule{6,49}{30}\XmpRule{49,49}{30}
+ \XmpRule{6,5}{30}\XmpRule{49,5}{30}
+ \end{picture}
+% \end{center}
+ \end{captionbeside}
+ \typeout{^^J--- Don't ignore underfull and overfull \string\hbox:^^J}
+\end{figure}
+\end{Example}
+\EndIndexGroup
+
+
+\subsection{The Interface for Experts}\label{sec:scrpage-en.UI.expert}
+% \defpagestyle \newpagestyle \providepagestyle \renewpagestyle
+Simple page styles, as they can be defined with \DescRef{scrpage-en.cmd.deftripstyle},
+are fairly rare according to experience. Either a professor requires
+that the thesis looks like his or her own\,---\,and who seriously wants
+to argue against such a wish?\,---\,or a company would like that half the
+financial accounting emerges in the page footer. No problem, the
+solution is:
+%
+\begin{Declaration}
+ \Macro{defpagestyle}\Parameter{name}\Parameter{header definition}\Parameter{footer definition}%
+ \Macro{newpagestyle}\Parameter{name}\Parameter{header definition}\Parameter{footer definition}%
+ \Macro{renewpagestyle}\Parameter{name}\Parameter{header definition}\Parameter{footer definition}%
+ \Macro{providepagestyle}\Parameter{name}\Parameter{header definition}\Parameter{footer definition}
+\end{Declaration}%
+These four commands give full access to the capabilities of
+\Package{scrpage2} to define page styles. Their structure is
+indentical, they differ only in the manner of working.
+\begin{labeling}[\ --]{\Macro{providepagestyle}}
+\item[\Macro{defpagestyle}] defines a new page style.
+If a page style with this name already exists it will be overwritten.
+\item[\Macro{newpagestyle}] defines a new page style.
+If a page style with this name already exists a error message will be given.
+\item[\Macro{renewpagestyle}] redefines a page style.
+If a page style with this name does not exist a error message will be given.
+\item[\Macro{providepagestyle}] defines a new page style only if there is no page style with that name already present.
+\end{labeling}
+
+Using \Macro{defpagestyle} as an example, the syntax of the four
+commands is explained below.
+\begin{labeling}[~--]{\PName{head definition}}
+\item[\PName{name}] the name of the page style for
+ \Macro{pagestyle}\Parameter{name}
+\item[\PName{header definition}] the declaration of the header, consisting
+ of five element; elements in round parenthesis are optional:\hfill\\
+ \hspace*{1em}\AParameter{ALL,ALT}%
+ \Parameter{EP}\Parameter{OP}\Parameter{OS}\AParameter{BLL,BLT}
+\item[\PName{footer definition}] the declaration of the footer, consisting
+ of five element; elements in round parenthesis are optional:\hfill\\
+ \hspace*{1em}\AParameter{ALL,ALT}%
+ \Parameter{EP}\Parameter{OP}\Parameter{OS}\AParameter{BLL,BLT}
+\end{labeling}
+
+As can be seen, header and footer declaration have identical
+structure. The individual parameters have the following meanings:
+\begin{labeling}[\ --]{\PName{OLD}}
+\item[\PName{ALL}] above line length: (header = outside, footer = separation
+ line)
+\item[\PName{ALT}] above line thickness
+\item[\PName{EP}] definition for \emph{even} pages
+\item[\PName{OP}] definition for \emph{odd} pages
+\item[\PName{OS}] definition for \emph{one-sided} layout
+\item[\PName{BLL}] below line length: (header = separation line, footer =
+ outside)
+\item[\PName{BLT}] below line thickness
+\end{labeling}
+
+If the optional line-parameters are omitted, then the line behaviour remains
+configurable by the commands introduced in
+\autoref{sec:scrpage-en.basics.format},
+\DescPageRef{scrpage-en.cmd.setheadtopline}.
+
+The three elements \PName{EP}, \PName{OP} and \PName{OS} are boxes with the
+width of page header or footer, as appropriate. The corresponding definitions
+are set left-justified in the boxes. To set something left- \emph{and}
+right-justified into the boxes, the space between two text elements can be
+stretched using \Macro{hfill}:
+%
+\begin{lstcode}[belowskip=\dp\strutbox]
+ {\headmark\hfill\pagemark}
+\end{lstcode}
+
+If one would like a third text-element centered in the box, then an
+extended definition must be used. The commands \Macro{rlap} and
+\Macro{llap} simply write the given arguments, but for {\LaTeX} they
+take up no horizontal space. Only in this way is the middle text
+really centered.
+%
+\begin{lstcode}
+ {\rlap{\headmark}\hfill centered text\hfill\llap{\pagemark}}
+\end{lstcode}
+
+\iffalse% Umbruchkorrekturtext
+This and the use of the expert interface in connection with other
+commands provided by \Package{scpage2} follows now in the final
+example.
+\fi
+
+\begin{Example}
+ This examples uses the document class \Class{scrbook}, which means
+ that the default page layout is two-sided. The package
+ \Package{scrpage2} is loaded with options \DescRef{scrpage-en.option.automark} and
+ \DescRef{scrpage-en.option.headsepline}. The first switches on the automatic update of
+ running headings, the second determines that a separation line
+ between header and text body is drawn in the \PageStyle{scrheadings}
+ page style.
+
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage[automark,headsepline]{scrpage2}
+\end{lstcode}
+
+ The expert interface is used to define two page styles. The page
+ style \PValue{withoutLines} does not define any line parameters. The
+ second page style \PValue{withLines} defines a line thicknes of 1\,pt
+ for the line above the header and 0\,pt for the separation line
+ between header and text.
+
+\begin{lstcode}
+ \defpagestyle{withoutLines}{%
+ {Example\hfill\headmark}{\headmark\hfill without lines}
+ {\rlap{Example}\hfill\headmark\hfill%
+ \llap{without lines}}
+ }{%
+ {\pagemark\hfill}
+ {\hfill\pagemark}
+ {\hfill\pagemark\hfill}
+ }
+\end{lstcode}
+
+\begin{lstcode}
+ \defpagestyle{withLines}{%
+ (\textwidth,1pt)
+ {with lines\hfill\headmark}{\headmark\hfill with lines}
+ {\rlap{\KOMAScript}\hfill \headmark\hfill%
+ \llap{with lines}}
+ (0pt,0pt)
+ }{%
+ (\textwidth,.4pt)
+ {\pagemark\hfill}
+ {\hfill\pagemark}
+ {\hfill\pagemark\hfill}
+ (\textwidth,1pt)
+ }
+\end{lstcode}
+
+ Right at the beginning of the document the page style
+ \PageStyle{scrheadings} is activated. The command \Macro{chapter} starts
+ a new chapter and automatically sets the page rstyle for this page to
+ \PageStyle{plain}. Even though not a prime example, the command
+ \DescRef{scrpage-en.cmd.chead} shows how running headings can be created even on a
+ plain page. However, in principle running headings on
+ chapter start-pages are to be avoided, since otherwise the special
+ character of the \PageStyle{plain} page style is lost. It is more
+ important to indicate that a new chapter starts here than that a
+ section of this page has a special title.
+
+\begin{lstcode}
+ \begin{document}
+ \pagestyle{scrheadings}
+ \chapter{Thermodynamics}
+ \chead[\leftmark]{}
+ \section{Main Laws}
+ Every system has an extensive state quantity called
+ Energy. In a closed system the energy is constant.
+\end{lstcode}
+
+ \begin{XmpTopPage}
+ \XmpHeading[\hfill\textsl{1. Thermodynamics}\hfill]{10,27}{70}
+ \put(10,17){\normalsize\textbf{\sffamily 1.Thermodynamics}}
+ \put(10,12){\textbf{\sffamily 1.1 Main Laws}}
+ \XmpSetText[%
+ Every System has an extensive state quantity]{10,9}
+ \end{XmpTopPage}
+
+ After starting a new page the page style \PageStyle{scrheadings} is
+ active and thus the separation line below the header is visible.
+\begin{lstcode}
+ There is a state quatity of a system, called entropy, whose temporal
+ change consists of entropy flow and entropy generation.
+\end{lstcode}
+ \begin{XmpTopPage}
+ \XmpHeading[\textsl{1. Thermodynamics}\hfill]{20,27}{70}
+ \thinlines\XmpRule{20,25}{70}
+ \XmpSetText[%
+ There is a condition unit of a system, called entropy,
+ whose temporal change consists of entropy flow
+ and entropy generation.]{20,20}
+ \end{XmpTopPage}
+
+ After switching to the next page, the automatic update of the running
+ headings is disabled using \DescRef{scrpage-en.cmd.manualmark}, and the page style
+ \PValue{withoutLines} becomes active. Since no line parameters are
+ given in the definition of this page style, the default configuration
+ is used, which draws a separation line between header and text body
+ because \Package{scrpage2} was called with \DescRef{scrpage-en.option.headsepline}.
+\begin{lstcode}
+ \manualmark
+ \pagestyle{withoutLines}
+ \section{Exergy and Anergy}\markright{Energy Conversion}
+ During the transition of a system to an equilibrium state
+ with its environment, the maximum work gainable is called
+ exergy.
+\end{lstcode}
+ \begin{XmpTopPage}
+ \XmpHeading[\slshape Energy Conversion\hfill without lines]{10,27}{70}
+ \thinlines\XmpRule{10,25}{70}
+ \XmpSetText[\setlength{\parfillskip}{0pt plus 1fil}%
+ \textbf{\sffamily 1.2 Exergy and Anergy}\\
+ During the transition of a system to an equilibrium state
+ with its environment, the maximum work gainable is called
+ exergy.]{10,21}
+ \end{XmpTopPage}
+
+ At the next page of the document, the page style \PValue{withLines} is
+ activated. The line settings of its definition are taken in account
+ and the lines are drawn accordingly.
+\begin{lstcode}
+ \pagestyle{mitLinien}
+ \renewcommand{\headfont}{\itshape\bfseries}
+ The portion of an energy not convertible in exergy
+ is named anergy \Var{B}.
+ \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\]
+ \end{document}
+\end{lstcode}
+ \begin{XmpTopPage}
+ \XmpHeading[\itshape\bfseries with lines\hfill 1. Thermodynamics]{20,27}{70}
+ \thicklines\XmpRule{20,29}{70}
+ \XmpSetText[\setlength{\parfillskip}{0pt plus 1fil}%
+ The portion of an energy not convertible in exergy
+ is named anergy $B$.
+ \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] ]{20,20}
+ \end{XmpTopPage}
+\end{Example}
+\EndIndexGroup
+
+
+\subsection{Managing Page Styles}\label{sec:scrpage-en.UI.cfgFile}
+% scrpage.cfg
+\BeginIndex{File}{scrpage.cfg}
+Before long the work with different page styles will establish a
+common set of employed page styles, depending on taste and tasks. In
+order to make the management of page styles easier and avoid
+time-consuming copy operations each time a new project is started,
+\Package{scrpage2} reads the file \File{scrpage.cfg} after
+initialisation. This file can contain a set of user-defined page
+styles which many projects can share.
+\EndIndex{File}{scrpage.cfg}
+\EndIndexGroup
+
+
+% ============================================================================
+
+\cleardoubleoddpage
+
+\selectlanguage{ngerman}
+\let\savednewcommand\newcommand
+\let\newcommand\renewcommand
+\input{\jobname-ngerman.tex}
+\let\newcommand\savednewcommand
+\def\theHchapter{D.\thechapter}
+\setcounter{chapter}{0}
+\renewcommand*{\thepage}{D.\arabic{page}}
+
+\phantomsection
+\addparttocentry{}{Deutsch}
+
+\title{Das obsolete Paket \Package{scrpage2}}
+\subtitle{Auszug aus früheren Versionen der \KOMAScript-Anleitung}
+\author{Markus Kohm\and Jens-Uwe-Morawski}
+\date{2014-06-25}
+\maketitle
+
+
+\chapter{Kopf- und Fußzeilen mit \Package{scrpage2}}
+\labelbase{scrpage-de}
+%
+\BeginIndexGroup
+\BeginIndex{Package}{scrpage2}%
+\BeginIndex{}{Seitenstil}
+Mit \KOMAScript~3.12 wurde 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 das
+entsprechende Kapitel der \KOMAScript-Anleitung. 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} oder \Package{scrlayer-scrpage} kann
+ natürlich auch \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-de.basics}
+
+\begin{Explain}
+ Um die nachfolgende Beschreibung zu verstehen, muss noch einiges zu \LaTeX{}
+ gesagt werden. Im \LaTeX-Kern sind die Standardseitenstile
+ \PageStyle{empty}, welcher eine völlig undekorierte Seite erzeugt, und
+ \PageStyle{plain}, welcher meist nur die Seitenzahl enthält, definiert. In
+ vielen Klassen ist der Stil \PageStyle{headings} zu finden, welcher eine
+ komplexe Seitendekoration mit automatischen
+ Kolumnentitel\Index{Kolumnentitel>automatisch} erzeugt. Die Variante
+ \PageStyle{myheadings} gleicht \PageStyle{headings}. Die Kolumnentitel
+ müssen dabei aber manuell\Index{Kolumnentitel>manuell} gesetzt werden.
+ Ausführlicher wird das im Abschnitt über Seitenstile der
+ \KOMAScript-Anleitung beschrieben. Dort wird auch erläutert, dass auf
+ einigen Seiten der Seitenstil automatisch -- in der Regel zu
+ \PageStyle{plain} -- wechselt.
+\end{Explain}
+
+Das Paket \Package{scrpage2} unterscheidet nicht mehr zwischen Seitenstilen
+mit automatischem und mit manuellem Kolumnentitel. Die Wahl des Seitenstils
+erfolgt unabhängig davon, ob mit automatischem oder manuellem Kolumnentitel
+gearbeitet wird. Näheres dazu finden Sie in \autoref{sec:scrpage-de.basics.mark}.
+
+
+\subsection{Vordefinierte Seitenstile}\label{sec:scrpage-de.basics.buildIn}
+
+Zu den grundlegenden Funktionen von \Package{scrpage2} gehören unter anderem
+vordefinierte, konfigurierbare Seitenstile.
+
+% \lehead ...
+% scrheadings
+% \headmark \pagemark
+
+\begin{Declaration}
+ \PageStyle{scrheadings}%
+ \PageStyle{scrplain}
+\end{Declaration}%
+Das Paket \Package{scrpage2} liefert für Seiten mit Kolumnentitel einen
+eigenen Seitenstil namens \PageStyle{scrheadings}. Dieser Seitenstil kann
+mittels \Macro{pagestyle}\PParameter{scrheadings} aktiviert werden. Wird
+dieser Seitenstil benutzt, dann wird gleichzeitig der plain-Stil durch den
+dazu passenden Stil \PageStyle{scrplain} ersetzt. Passend bedeutet, dass auch
+der plain-Stil auf in \autoref{sec:scrpage-de.basics.format} vorgestellte
+Befehle, die beispielsweise die Kopfbreite ändern, reagiert und im Grundlayout
+übereinstimmt. Die Aktivierung des Seitenstils \PageStyle{scrheadings} oder
+des zugehörigen plain-Stils, \PageStyle{scrplain}, hat keine Auswirkung
+darauf, ob mit manuellen oder automatischen
+Kolumnentiteln\Index{Kolumnentitel>automatisch}\Index{Kolumnentitel>manuell}
+gearbeitet wird (siehe \autoref{sec:scrpage-de.basics.mark}). Der Seitenstil
+\PageStyle{scrplain} kann auch direkt per \Macro{pagestyle} aktiviert werden.
+
+
+\begin{Declaration}
+ \Macro{lehead}%
+ \OParameter{scrplain-links-gerade}\Parameter{scrheadings-links-gerade}%
+ \Macro{cehead}%
+ \OParameter{scrplain-mittig-gerade}\Parameter{scrheadings-mittig-gerade}%
+ \Macro{rehead}%
+ \OParameter{scrplain-rechts-gerade}\Parameter{scrheadings-rechts-gerade}%
+ \Macro{lefoot}%
+ \OParameter{scrplain-links-gerade}\Parameter{scrheadings-links-gerade}%
+ \Macro{cefoot}%
+ \OParameter{scrplain-mittig-gerade}\Parameter{scrheadings-mittig-gerade}%
+ \Macro{refoot}%
+ \OParameter{scrplain-rechts-gerade}\Parameter{scrheadings-rechts-gerade}%
+ \Macro{lohead}%
+ \OParameter{scrplain-links-ungerade}\Parameter{scrheadings-links-ungerade}%
+ \Macro{cohead}%
+ \OParameter{scrplain-mittig-ungerade}\Parameter{scrheadings-mittig-ungerade}%
+ \Macro{rohead}%
+ \OParameter{scrplain-rechts-ungerade}\Parameter{scrheadings-rechts-ungerade}%
+ \Macro{lofoot}%
+ \OParameter{scrplain-links-ungerade}\Parameter{scrheadings-links-ungerade}%
+ \Macro{cofoot}%
+ \OParameter{scrplain-mittig-ungerade}\Parameter{scrheadings-mittig-ungerade}%
+ \Macro{rofoot}%
+ \OParameter{scrplain-rechts-ungerade}\Parameter{scrheadings-rechts-ungerade}%
+ \Macro{ihead}%
+ \OParameter{scrplain-innen}\Parameter{scrheadings-innen}%
+ \Macro{chead}%
+ \OParameter{scrplain-zentriert}\Parameter{scrheadings-zentriert}%
+ \Macro{ohead}%
+ \OParameter{scrplain-außen}\Parameter{scrheadings-außen}%
+ \Macro{ifoot}%
+ \OParameter{scrplain-innen}\Parameter{scrheadings-innen}%
+ \Macro{cfoot}%
+ \OParameter{scrplain-zentriert}\Parameter{scrheadings-zentriert}%
+ \Macro{ofoot}%
+ \OParameter{scrplain-außen}\Parameter{scrheadings-außen}
+\end{Declaration}%
+Die Seitenstile von \Package{scrpage2} sind so definiert, dass ihr Kopf und
+Fuß flexibel angepasst werden kann. Hierzu sind sowohl im Kopf als auch im Fuß
+drei Felder vorhanden, deren Inhalt modifiziert werden kann. Die Befehle
+zur Modifikation sind in \autoref{fig:scrpage-de.leheadetall} verdeutlicht. Die
+in der Mitte dargestellten Befehle modifizieren sowohl die Felder der linken
+als auch der rechten Seite. Alle Befehle haben sowohl ein optionales als auch
+ein obligatorisches Argument. Das optionale Argument bestimmt jeweils das
+durch den Befehl festgelegte Feld im plain-Seitenstil,
+\PageStyle{scrplain}. Das obligatorische Argument definiert das entsprechende
+Feld im Seitenstil \PageStyle{scrheadings}.
+
+\begin{figure}
+% \centering
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [Befehle zur Manipulation der \Package{scrpage2}-Seitenstile]%
+ {\hspace{0pt plus 1ex}%
+ Zuord\-nung der Befehle zur Manipulation der beiden Seiten\-stile
+ \PageStyle{scrheadings} und \PageStyle{scrplain} zu den Feldern im
+ Kopf und Fuß der Seiten}
+ [l]
+ \setlength{\unitlength}{.95mm}\begin{picture}(100,65)(0,8)\small
+ \put(0,12){\dashbox{2}(40,56){linke Seite}}
+ \put(60,12){\dashbox{2}(40,56){rechte Seite}}
+ % Felder: oben links
+ \put(1,63){\framebox(8,4){~}}
+ \put(16,63){\framebox(8,4){~}}
+ \put(31,63){\framebox(8,4){~}}
+ % Felder: oben rechts
+ \put(61,63){\framebox(8,4){~}}
+ \put(76,63){\framebox(8,4){~}}
+ \put(91,63){\framebox(8,4){~}}
+ % Felder: unten links
+ \put(1,13){\framebox(8,4){~}}
+ \put(16,13){\framebox(8,4){~}}
+ \put(31,13){\framebox(8,4){~}}
+ % Felder: unten rechts
+ \put(61,13){\framebox(8,4){~}}
+ \put(76,13){\framebox(8,4){~}}
+ \put(91,13){\framebox(8,4){~}}
+ % die Befehle und Pfeile
+ % für beidseitig
+ %
+ \put(50,65){\makebox(0,0){\DescRef{scrpage-de.cmd.ihead}}}
+ \put(44,65){\vector(-1,0){4}}\put(56,65){\vector(1,0){4}}
+ \put(50,58){\makebox(0,0){\DescRef{scrpage-de.cmd.chead}}}
+ \put(44,58){\line(-1,0){24}}\put(56,58){\line(1,0){24}}
+ \put(20,58){\vector(0,1){4}}\put(80,58){\vector(0,1){4}}
+ \put(50,51){\makebox(0,0){\DescRef{scrpage-de.cmd.ohead}}}
+ \put(44,51){\line(-1,0){40}}\put(56,51){\line(1,0){40}}
+ \put(4,51){\vector(0,1){11}}\put(96,51){\vector(0,1){11}}
+ %
+ \put(50,15){\makebox(0,0){\DescRef{scrpage-de.cmd.ifoot}}}
+ \put(56,15){\vector(1,0){4}}\put(44,15){\vector(-1,0){4}}
+ \put(50,22){\makebox(0,0){\DescRef{scrpage-de.cmd.cfoot}}}
+ \put(44,22){\line(-1,0){24}}\put(56,22){\line(1,0){24}}
+ \put(20,22){\vector(0,-1){4}}\put(80,22){\vector(0,-1){4}}
+ \put(50,29){\makebox(0,0){\DescRef{scrpage-de.cmd.ofoot}}}
+ \put(44,29){\line(-1,0){40}}\put(56,29){\line(1,0){40}}
+ \put(4,29){\vector(0,-1){11}}\put(96,29){\vector(0,-1){11}}
+ % Befehle für einseitig
+ \put(5,69){\makebox(0,0)[b]{\DescRef{scrpage-de.cmd.lehead}}}
+ \put(20,69){\makebox(0,0)[b]{\DescRef{scrpage-de.cmd.cehead}}}
+ \put(35,69){\makebox(0,0)[b]{\DescRef{scrpage-de.cmd.rehead}}}
+ %
+ \put(65,69){\makebox(0,0)[b]{\DescRef{scrpage-de.cmd.lohead}}}
+ \put(80,69){\makebox(0,0)[b]{\DescRef{scrpage-de.cmd.cohead}}}
+ \put(95,69){\makebox(0,0)[b]{\DescRef{scrpage-de.cmd.rohead}}}
+ %
+ \put(5,11){\makebox(0,0)[t]{\DescRef{scrpage-de.cmd.lefoot}}}
+ \put(20,11){\makebox(0,0)[t]{\DescRef{scrpage-de.cmd.cefoot}}}
+ \put(35,11){\makebox(0,0)[t]{\DescRef{scrpage-de.cmd.refoot}}}
+ %
+ \put(65,11){\makebox(0,0)[t]{\DescRef{scrpage-de.cmd.lofoot}}}
+ \put(80,11){\makebox(0,0)[t]{\DescRef{scrpage-de.cmd.cofoot}}}
+ \put(95,11){\makebox(0,0)[t]{\DescRef{scrpage-de.cmd.rofoot}}}
+ \end{picture}
+ \end{captionbeside}
+% \caption[Befehle zur Manipulation der \Package{scrpage2}-Seitenstile]%
+% {Zuordnung der Befehle zur Manipulation der Seitenstile
+% \PageStyle{scrheadings} und \PageStyle{scrplain} zu den manipulierten
+% Seitenelementen}
+ \label{fig:scrpage-de.leheadetall}
+\end{figure}
+
+\begin{Example}
+ Angenommen, man möchte bei \PageStyle{scrheadings} zentriert im Seitenfuß
+ die Seitenzahl dargestellt haben, dann benutzt man einfach:
+\begin{lstcode}
+ \cfoot{\pagemark}
+\end{lstcode}
+ Sollen die Seitenzahlen\Index{Paginierung} im Kopf außen und die
+ Kolumnentitel\Index{Kolumnentitel} innen stehen, dann erfolgt dies mit:
+\begin{lstcode}
+ \ohead{\pagemark}
+ \ihead{\headmark}
+ \cfoot{}
+\end{lstcode}
+ Das \Macro{cfoot}\PParameter{} ist nur notwendig, um eine möglicherweise in
+ der Mitte des Fußes vorhandene Seitenzahl zu entfernen.
+\end{Example}
+
+Die Befehle, die direkt nur einem Feld zugeordnet sind, können für
+anspruchsvollere Vorhaben genutzt werden.
+
+\begin{Example}
+ Angenommen, man hat den Auf"|trag, einen Jahresbericht einer Firma zu
+ erstellen, dann könnte das so angegangen werden:
+\begin{lstcode}
+ \ohead{\pagemark}
+ \rehead{Jahresbericht 2001}
+ \lohead{\headmark}
+ \cefoot{Firma WasWeißIch}
+ \cofoot{Abteilung Entwicklung}
+\end{lstcode}
+ Natürlich muss man hier dafür sorgen, dass mittels \Macro{cofoot} der Fuß
+ der rechten Seite aktualisiert wird, wenn eine neue Abteilung im Bericht
+ besprochen wird.
+\end{Example}
+
+Wie oben dargestellt, gibt es einen zu \PageStyle{scrheadings}
+korrespondierenden plain-Seitenstil. Da es auch möglich sein soll, diesen
+Stil anzupassen, unterstüt"-zen die Befehle ein optionales Argument. Damit
+kann der Inhalt des entsprechenden Feldes im plain-Seitenstil modifiziert
+werden.
+
+\begin{Example}
+ Um für die Nutzung von \PageStyle{scrheadings} die Position der Seitenzahlen
+ festzulegen, kann man folgendes benutzen:
+\begin{lstcode}
+ \cfoot[\pagemark]{}
+ \ohead[]{\pagemark}
+\end{lstcode}
+ Wird anschließend der Stil \PageStyle{plain} genutzt, beispielsweise weil
+ \Macro{chapter} eine neue Seite beginnt und darauf umschaltet, dann steht
+ die Seitenzahl zentriert im Seitenfuß.
+\end{Example}
+%
+\EndIndexGroup
+
+
+% Die folgende Deklaration und Erklaerung wurde eingefuegt von
+% mjk 2001-08-18
+\begin{Declaration}
+ \Macro{clearscrheadings}%
+ \Macro{clearscrplain}%
+ \Macro{clearscrheadfoot}
+\end{Declaration}%
+Will man sowohl den Seitenstil \PageStyle{scrheadings} als auch den dazu
+gehörenden plain-Seitenstil von Grund auf neu definieren,
+muss man häufig zusätzlich einige der bereits belegten Seitenelemente
+löschen. Da man selten alle Elemente mit neuem Inhalt füllt, sind
+dazu in den meisten Fällen mehrere Befehle mit leeren Parametern
+notwendig.
+Mit Hilfe dieser drei Befehle ist das Löschen schnell und
+gründlich möglich. Während \Macro{clearscrheadings} lediglich alle
+Felder des Seitenstils \PageStyle{scrheadings} und \Macro{clearscrplain}
+alle Felder des zugehörigen plain-Seitenstils löscht, werden
+von \Macro{clearscrheadfoot} alle Felder beider Seitenstile auf leere
+Inhalte gesetzt.
+\begin{Example}
+ Sie wollen unabhängig davon, wie die Seitenstile derzeit aussehen,
+ die Standardform der \KOMAScript-Klassen bei zweiseitigem Satz
+ erreichen. Dies ist mit nur drei Befehlen möglich:
+\begin{lstcode}
+ \clearscrheadfoot
+ \ohead{\headmark}
+ \ofoot[\pagemark]{\pagemark}
+\end{lstcode}
+ Ohne die Befehle \Macro{clearscrheadings}, \Macro{clearscrplain} und
+ \Macro{clearscrheadfoot} wären doppelt so viele Anweisungen und neun weitere
+ leere Argumente notwendig:
+\begin{lstcode}
+ \ihead[]{}
+ \chead[]{}
+ \ohead[]{\headmark}
+ \ifoot[]{}
+ \cfoot[]{}
+ \ofoot[\pagemark]{\pagemark}
+\end{lstcode}
+ Einige davon könnten natürlich entfallen, wenn man von einer
+ konkreten Vorbelegung ausginge.
+\end{Example}
+%
+\EndIndexGroup
+%
+\EndIndexGroup
+
+
+% Satz leicht geaendert: mjk 2001-08-18
+In den vorausgehenden Beispielen wurden schon zwei Befehle benutzt, die noch
+gar nicht besprochen wurden. Das soll jetzt nachgeholt werden.
+
+% Die folgende Deklaration und Erklaerung wurde eingefuegt von
+% mjk 2001-08-17
+\begin{Declaration}
+ \Macro{leftmark}%
+ \Macro{rightmark}
+\end{Declaration}%
+Diese beiden Befehle erlauben es, auf die Kolumnentitel zuzugreifen, die
+normalerweise für die linke bzw. die rechte Seite gedacht sind. Diese beiden
+Befehle werden nicht von \Package{scrpage2}, sondern direkt vom \LaTeX-Kern
+zur Verfügung gestellt. Wenn in diesem Kapitel vom Kolumnentitel der linken
+Seite oder vom Kolumnentitel der rechten Seite die Rede ist, dann ist damit
+eigentlich der Inhalt von \Macro{leftmark} und \Macro{rightmark} gemeint.
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+\Macro{headmark}
+\end{Declaration}%
+Dieser Befehl ermöglicht es, auf die Inhalte der Kolumnentitel zuzugreifen.
+Im Gegensatz zu den originalen \LaTeX{}-Befehlen \Macro{leftmark} und
+\Macro{rightmark} braucht man nicht auf die richtige Zuordnung zur linken oder
+rechten Seite zu achten.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{pagemark}
+\end{Declaration}%
+Dieser Befehl ermöglicht den Zugriff auf die Seitenzahl. Im
+\autoref{sec:scrpage-de.basics.format}, \DescPageRef{scrpage-de.cmd.pnumfont}
+wird der Befehl \DescRef{scrpage-de.cmd.pnumfont} zur Formatierung der Seitenzahl vorgestellt,
+den \Macro{pagemark} automatisch berücksichtigt.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PageStyle{useheadings}
+\end{Declaration}%
+Das Paket \Package{scrpage2} ist in erster Linie dafür gedacht, dass die
+bereitgestellten Stile benutzt oder eigene Stile definiert werden. Jedoch
+kann es notwendig sein, auch auf einen von der Dokumentklasse zur Verfügung
+gestellten Stil zurückzuschalten. Es wäre nahe liegend, dieses mit
+\Macro{pagestyle}\PParameter{headings} vorzunehmen. Das hätte aber den
+Nachteil, dass die nachfolgend besprochenen Befehle \DescRef{scrpage-de.cmd.automark} und
+\DescRef{scrpage-de.cmd.manualmark} nicht wie erwartet funktionierten. Daher sollte mit
+\Macro{pagestyle}\PParameter{useheadings}\IndexCmd{pagestyle} auf die
+originalen Stile umgeschaltet werden. Eine solche Umschaltung hat dann keine
+Auswirkung darauf, ob mit manuellen oder automatischen Kolumnentiteln
+gearbeitet wird.%
+%
+\EndIndexGroup
+
+
+\subsection{Manuelle und automatische Kolumnentitel}
+\label{sec:scrpage-de.basics.mark}
+% \automark \manualmark
+%
+\BeginIndexGroup
+\BeginIndex{}{Kolumnentitel>automatisch}%
+\BeginIndex{}{Kolumnentitel>manuell}%
+Gewöhnlich\textnote{Achtung!} gibt es zu einem \PageStyle{headings}-Stil eine
+\emph{my}-Variante. Ist ein solcher Stil aktiv, dann werden die Kolumnentitel
+nicht mehr automatisch aktualisiert. Bei \Package{scrpage2} wird ein anderer
+Weg beschritten. Ob die Kolumnentitel lebend sind oder nicht, bestimmen die
+Befehle \DescRef{scrpage-de.cmd.automark} und \DescRef{scrpage-de.cmd.manualmark}. Die Voreinstellung kann auch
+bereits beim Laden des Paketes über die Optionen \DescRef{scrpage-de.option.automark} und
+\DescRef{scrpage-de.option.manualmark} beeinflusst werden (siehe
+\autoref{sec:scrpage-de.basics.options},
+\DescPageRef{scrpage-de.option.automark}).
+
+
+\begin{Declaration}
+\Macro{manualmark}
+\end{Declaration}%
+Wie der Name bereits verdeutlicht, schaltet \Macro{manualmark} die
+Aktualisierung der Kolumnentitel aus. Es bleibt somit dem Nutzer überlassen,
+für eine Aktualisierung bzw. für den Inhalt der Kolumnentitel zu sorgen. Dazu
+stehen die Befehle \Macro{markboth}\IndexCmd{markboth} und
+\Macro{markright}\IndexCmd{markright} aus dem \LaTeX-Kern bereit. Diese
+Anweisungen sind im Abschnitt über Seitenstile in der \KOMAScript-Anleitung
+erklärt.%
+%
+\EndIndexGroup
+
+
+% Ergaenzt mjk 2001-07-17
+\begin{Declaration}
+ \Macro{automark}\OParameter{rechte Seite}\Parameter{linke Seite}
+\end{Declaration}%
+Die Anweisung \Macro{automark} aktiviert die automatische Aktualisierung des
+Kolumnentitels. Für die beiden Parameter sind die Bezeichnungen der
+Gliederungsebenen\Index{Gliederungsebenen} einzusetzen, deren Titel an
+entsprechender Stelle erscheinen soll. Gültige Werte für die Parameter sind:
+\PValue{part}\ChangedAt{v2.2}{\Package{scrpage2}}, \PValue{chapter},
+\PValue{section}, \PValue{subsection}, \PValue{subsubsection},
+\PValue{paragraph} und \PValue{subparagraph}. Der Wert \PValue{part} führt bei
+Verwendung der meisten Klassen nicht zu dem gewünschten Ergebnis. Bisher ist
+nur von den \KOMAScript-Klassen ab Version~2.9s bekannt, dass dieser Wert
+unterstützt wird. Das optionale Argument \PName{rechte Seite} ist
+ver\-ständlicherweise nur für zweiseitigen Satz gedacht. Im einseitigen Satz
+sollten Sie normalerweise darauf verzichten. Mit Hilfe der Option
+\DescRef{scrpage-de.option.autooneside}\IndexOption{autooneside}\important{\DescRef{scrpage-de.option.autooneside}}
+können Sie auch einstellen, dass das optionale Argument im
+einseitigen\Index{einseitig} Satz automatisch ignoriert wird (siehe
+\autoref{sec:scrpage-de.basics.options},
+\DescPageRef{scrpage-de.option.autooneside}).
+\begin{Example}
+ Wird beispielsweise mit einer \emph{book}-Klasse gearbeitet, deren höch\-ste
+ Gliederungsebene \emph{chapter} ist, dann stellt nach einem vorhergehenden
+ \DescRef{scrpage-de.cmd.manualmark} der Befehl
+\begin{lstcode}
+ \automark[section]{chapter}
+\end{lstcode}
+ den Originalzustand wieder her. Bevorzugt man stattdessen, die tieferen
+ Gliederungsebenen angezeigt zu bekommen, dann erfolgt dies mit:
+\begin{lstcode}
+ \automark[subsection]{section}
+\end{lstcode}
+\end{Example}
+
+\begin{Explain}
+ Die Markierung der jeweils höheren Gliederungsebene wird mit Hilfe von
+ \Macro{markboth}\IndexCmd{markboth} gesetzt. Die Markierung der
+ tieferen Gliederungsebene wird mit \Macro{markright}\IndexCmd{markright}
+ bzw. \Macro{markleft}\IndexCmd{markleft} gesetzt. Der entsprechende Aufruf
+ erfolgt indirekt über die Gliederungsbefehle. Die Anweisung \Macro{markleft}
+ wird von \Package{scrpage2} bereitgestellt und ist vergleichbar zu
+ \Macro{markright} aus dem \LaTeX-Kern
+ definiert. Obwohl sie nicht als internes Makro definiert ist, wird von einem
+ direkten Gebrauch abgeraten.
+\end{Explain}
+\EndIndexGroup
+\EndIndexGroup
+
+
+\subsection{Formatierung der Kopf- und Fußzeilen}
+\label{sec:scrpage-de.basics.format}
+% \headfont \pnumfont
+% \setheadwidth \setfootwidth
+% \set(head|foot)(top|sep|bot)line
+Im vorherigen Abschnitt ging es hauptsächlich um inhaltliche Dinge. Das
+genügt natürlich nicht, um die gestalterischen Ambitionen zu
+befriedigen. Deshalb soll es sich in diesem Abschnitt ausschließlich darum
+drehen.
+
+\begin{Declaration}
+ \Macro{headfont}%
+ \Macro{footfont}%
+ \Macro{pnumfont}
+\end{Declaration}%
+Die Schriftformatierung für den Seitenkopf und -fuß übernimmt der Befehl
+\Macro{headfont}, \Macro{footfont} die Abweichung davon für den Fuß und
+\Macro{pnumfont} wiederum die Abweichung davon für die Seitenzahl.
+\begin{Example}
+ Um beispielsweise den Kopf in fetter, serifenloser Schrift und den Fuß in
+ nicht fetter, serifenloser Schrift zu setzen und die Seitenzahl geneigt
+ mit Serifen erscheinen zu lassen, nutzt man folgende Definitionen:
+\begin{lstcode}
+ \renewcommand*{\headfont}{%
+ \normalfont\sffamily\bfseries}
+ \renewcommand*{\footfont}{%
+ \normalfont\sffamily}
+ \renewcommand*{\pnumfont}{%
+ \normalfont\rmfamily\slshape}
+\end{lstcode}
+\end{Example}
+
+\BeginIndexGroup
+\BeginIndex{FontElement}{pagehead}%
+\BeginIndex{FontElement}{pagefoot}%
+\BeginIndex{FontElement}{pagenumber}%
+Ab Version 2.8p der \KOMAScript{}-Klassen wurde die Schnittstelle für
+Schriftattribute vereinheitlicht. Wird \Package{scrpage2} in Verbindung mit
+einer dieser Klassen verwendet, dann sollte die Zuweisung in der Art erfolgen,
+wie sie in der \KOMAScript-Anleitung beschrieben wird.
+\begin{Example}
+ Statt \Macro{renewcommand} wird bei Verwendung einer \KOMAScript-Klasse
+ vorzugsweise der Befehl \Macro{setkomafont} verwendet. Die vorhergehenden
+ Definitionen lauten damit:
+\begin{lstcode}
+ \setkomafont{pagehead}{%
+ \normalfont\sffamily\bfseries}
+ \setkomafont{pagefoot}{%
+ \normalfont\sffamily}
+ \setkomafont{pagenumber}{%
+ \normalfont\rmfamily\slshape}
+\end{lstcode}
+\end{Example}
+\EndIndexGroup
+\EndIndexGroup
+
+
+\begin{Declaration}
+\Macro{setheadwidth}\OParameter{Verschiebung}\Parameter{Breite}%
+\Macro{setfootwidth}\OParameter{Verschiebung}\Parameter{Breite}
+\end{Declaration}%
+Normalerweise entsprechen die Breiten von Kopf- und Fußzeile der Breite des
+Textbereichs.\Index{Kopf>Breite}\Index{Fuss=Fuß>Breite} Die beiden Befehle
+\Macro{setheadwidth} und \Macro{setfootwidth} ermöglichen dem Anwender, auf
+einfache Weise die Breiten seinen Bedürfnissen anzupassen. Das obligatorische
+Argument \PName{Breite} nimmt den Wert der Breite des Kopfes bzw. des Fußes
+auf, \PName{Verschiebung} ist ein Längenmaß für die Verschiebung des
+entsprechenden Elements in Richtung des äußeren Seitenrandes.
+
+Für die möglichen Standardfälle akzeptiert das obligatorische Argument
+\PName{Breite} auch folgende symbolische Werte:
+\begin{labeling}[\ --]{\PValue{textwithmarginpar}}
+\item[\PValue{paper}] die Breite des Papiers
+\item[\PValue{page}] die Breite der Seite
+\item[\PValue{text}] die Breite des Textbereichs
+\item[\PValue{textwithmarginpar}] die Breite des Textbereichs inklusive
+Seitenrand
+\item[\PValue{head}] die aktuelle Breite des Seitenkopfes
+\item[\PValue{foot}] die aktuelle Breite des Seitenfußes
+\end{labeling}
+Der Unterschied zwischen \PValue{paper} und \PValue{page} besteht darin, dass
+\PValue{page} die Breite des Papiers abzüglich der Bindekorrektur ist, falls
+das \Package{typearea}-Paket\IndexPackage{typearea} verwendet wird (siehe das
+Kapitel über \Package{typearea} in der \KOMAScript-Anleitung). Ohne Verwendung
+von \Package{typearea} sind \PValue{paper} und \PValue{page}
+identisch.%mjk-2001-08-17
+
+\begin{Example}
+ Angenommen, man möchte ein Seitenlayout wie im
+ \emph{\LaTeX-Begleiter}, bei dem die Kopfzeile in den Rand ragt,
+ dann geschieht das ganz einfach mit:
+\begin{lstcode}
+ \setheadwidth[0pt]{textwithmarginpar}
+\end{lstcode}
+%
+ und sieht dann auf einer rechten Seite folgendermaßen aus:
+%
+ \begin{XmpTopPage}
+ \XmpHeading{10,29}{85}
+ \thinlines\XmpRule{10,27}{85}
+ \XmpSetText[\XmpTopText]{10,24}
+ \XmpMarginNote{83,14}
+ \end{XmpTopPage}
+%
+ Soll der Seitenfuß die gleiche Breite und Ausrichtung haben, dann hat man
+ jetzt zwei Wege. Der erste ist, man wiederholt das Gleiche für den
+ Seitenfuß mit:
+\begin{lstcode}
+ \setfootwidth[0pt]{textwithmarginpar}
+\end{lstcode}
+%
+ oder man greift auf den anderen symbolischen Wert \PValue{head} zurück, da
+ der Kopf bereits die gewünschte Breite hat.
+\begin{lstcode}
+ \setfootwidth[0pt]{head}
+\end{lstcode}
+\end{Example}
+
+Wird keine Verschiebung angegeben, das heißt auf das optionale Argument
+verzichtet, dann erscheint der Kopf bzw. der Fuß symmetrisch auf der Seite
+angeordnet. Es wird somit ein Wert für die Verschiebung automatisch ermittelt,
+der der aktuellen Seitengestalt entspricht.
+
+\begin{Example}
+ Entsprechend dem vorherigen Beispiel wird hier auf das optionale Argument
+ verzichtet:
+\begin{lstcode}
+ \setheadwidth{textwithmarginpar}
+\end{lstcode}
+%
+ und sieht dann auf einer rechten Seite folgendermaßen aus:
+%
+ \begin{XmpTopPage}
+ \XmpHeading{5,29}{85}
+ \thinlines\XmpRule{5,27}{85}
+ \XmpSetText[\XmpTopText]{10,24}
+ \XmpMarginNote{83,14}
+ \end{XmpTopPage}
+\end{Example}
+
+Wie zu sehen, ist der Kopf jetzt nach innen verschoben, wobei die Kopfbreite
+sich nicht geändert hat. Die Verschiebung ist so berechnet, dass die
+Seitenproportionen auch hier sichtbar werden.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{setheadtopline}\OParameter{Länge}\Parameter{Dicke}%
+ \OParameter{Anweisungen}%
+ \Macro{setheadsepline}\OParameter{Länge}\Parameter{Dicke}%
+ \OParameter{Anweisungen}%
+ \Macro{setfootsepline}\OParameter{Länge}\Parameter{Dicke}%
+ \OParameter{Anweisungen}%
+ \Macro{setfootbotline}\OParameter{Länge}\Parameter{Dicke}%
+ \OParameter{Anweisungen}
+\end{Declaration}%
+Entsprechend den Größenparametern für die Kopf- und Fußzeile gibt es auch
+Befehle, die die Dimensionen der Linien im Kopf und Fuß modifizieren
+können. Dazu sollten diese Linien aber zunächst erst einmal eingeschaltet
+werden. Siehe hierzu die Optionen \DescRef{scrpage-de.option.headtopline}, \DescRef{scrpage-de.option.headsepline},
+\DescRef{scrpage-de.option.footsepline}, \DescRef{scrpage-de.option.footbotline} in
+\autoref{sec:scrpage-de.basics.options},
+\DescPageRef{scrpage-de.option.headsepline}.
+
+\begin{labeling}[\ --]{\Macro{setfootsepline}}
+\item[\Macro{setheadtopline}] modifiziert die Parameter für die Linie
+über dem Seitenkopf
+\item[\Macro{setheadsepline}] modifiziert die Parameter für die Linie
+zwischen Kopf und Textkörper
+\item[\Macro{setfootsepline}] modifiziert die Parameter für die Linie
+zwischen Text und Fuß
+\item[\Macro{setfootbotline}] modifiziert die Parameter für die Linie
+unter dem Seitenfuß
+\end{labeling}
+
+Das obligatorische Argument \PName{Dicke} bestimmt, wie stark die Linie
+gezeichnet wird. Das optionale Argument \PName{Länge} akzeptiert die gleichen
+symbolischen Werte wie \PName{Breite} bei \DescRef{scrpage-de.cmd.setheadwidth}, also auch einen
+normalen Längenausdruck. Solange im Dokument dem optionalen Argument
+\PName{Länge} kein Wert zugewiesen wurde, passt sich die entsprechende
+Linienlänge automatisch der Breite des Kopfes bzw. des Fußes an.
+
+Möchte man diesen Automatismus für die Länge einer Linie wieder restaurieren,
+dann nutzt man im Längenargument den Wert \PValue{auto}.
+
+Mit\ChangedAt{v2.2}{\Package{scrpage2}} dem optionalen Argument
+\PName{Anweisungen} können zusätzliche Anweisungen definiert werden, die vor
+dem Zeichnen der jeweiligen Linie auszuführen sind. Das können beispielsweise
+Anweisungen sein, um die
+Farbe\Index{Kopf>Farbe}\Index{Fuss=Fuß>Farbe}\Index{Farbe>im
+ Kopf}\Index{Farbe>im Fuss=im Fuß} der Linie zu ändern. Bei Verwendung einer
+\KOMAScript-Klasse können diese Anweisungen auch über
+\Macro{setkomafont}\IndexCmd{setkomafont} für eines der Elemente
+\FontElement{headtopline}\IndexFontElement[indexmain]{headtopline}%
+\important[i]{\FontElement{headtopline}\\
+ \FontElement{headsepline}\\
+ \FontElement{footsepline}\\
+ \FontElement{footbottomline}},
+\FontElement{headsepline}\IndexFontElement[indexmain]{headsepline},
+\FontElement{footsepline}\IndexFontElement[indexmain]{footsepline},
+\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{addtokomafont}
+sind in der \KOMAScript-Anleitung näher beschrieben.
+
+
+\begin{Declaration}
+ \labelsuffix[auto+current]%
+ \Macro{setheadtopline}\POParameter{auto}
+ \PParameter{current}%
+ \labelsuffix[auto]
+ \Macro{setheadtopline}\POParameter{auto}\Parameter{}%
+ \labelsuffix[auto+]
+ \Macro{setheadtopline}\POParameter{auto}\Parameter{}\OParameter{}
+\end{Declaration}%
+Die hier am Befehl \DescRef{scrpage-de.cmd.setheadtopline} illustrierten Argumente
+sind natürlich auch für die anderen drei Längenbefehle gültig.
+
+Enthält das obligatorische Argument den Wert \PValue{current} oder wird
+leer gelassen, dann wird die Dicke der Linie nicht verändert. Das kann
+genutzt werden, wenn die Länge der Linie, aber nicht die Dicke modifiziert
+werden soll.
+
+Wird das optionale Argument \PName{Anweisungen} weggelassen, so bleiben
+eventuell zuvor gesetzte Anweisungen erhalten. Wird hingegen ein leeres
+Argument \PName{Anweisungen} gesetzt, so werden eventuell zuvor gesetzte
+Anweisungen wieder gelöscht.
+
+\begin{Example}
+ Soll beispielsweise der Kopf mit einer kräftigen Linie von 2\,pt darüber und
+ einer normalen von 0,4\,pt zwischen Kopf und Text abgesetzt werden, dann
+ erfolgt das mit:
+\begin{lstcode}
+ \setheadtopline{2pt}
+ \setheadsepline{.4pt}
+\end{lstcode}
+Zusätzlich\textnote{Achtung!} sind unbedingt die Optionen
+\DescRef{scrpage-de.option.headtopline} und \DescRef{scrpage-de.option.headsepline} vorzugsweise global im
+optionalen Argument von \Macro{documentclass} zu setzen. Das Ergebnis könnte
+dann wie folgt aussehen.
+%
+ \begin{XmpTopPage}
+ \XmpHeading{10,29}{70}
+ \thinlines\XmpRule{10,27}{70}
+ \thicklines\XmpRule{10,32}{70}
+ \XmpSetText[\XmpTopText]{10,24}
+ \XmpMarginNote{83,14}
+ \end{XmpTopPage}
+
+ Sollen diese Linien zusätzlich in roter Farbe gesetzt werden, dann sind die
+ Anweisungen beispielsweise wie folgt zu ändern:
+\begin{lstcode}
+ \setheadtopline{2pt}[\color{red}]
+ \setheadsepline{.4pt}[\color{red}]
+\end{lstcode}
+ In diesem und auch dem folgenden Beispiel wurde für die Aktivierung der
+ Farbe die Syntax des \Package{color}\IndexPackage{color}-Pakets verwendet,
+ das dann natürlich auch geladen werden muss. \Package{scrpage2} selbst
+ bietet keine direkte Farbunterstützung. Damit ist jedes beliebige
+ Farbunterstützungspaket verwendbar.
+
+ Mit einer \KOMAScript-Klasse kann alternativ
+\begin{lstcode}
+ \setheadtopline{2pt}
+ \setheadsepline{.4pt}
+ \setkomafont{headtopline}{\color{red}}
+ \setkomafont{headsepline}{\color{red}}
+\end{lstcode}
+ verwendet werden.
+
+ Die automatische Anpassung an die Kopf- und Fußbreiten illustriert folgendes
+ Beispiel, für das die Optionen \DescRef{scrpage-de.option.footbotline} und \DescRef{scrpage-de.option.footsepline}
+ gesetzt sein sollten:
+\begin{lstcode}
+ \setfootbotline{2pt}
+ \setfootsepline[text]{.4pt}
+ \setfootwidth[0pt]{textwithmarginpar}
+\end{lstcode}
+
+%\phantomsection für hyperref-\pageref-Link jum-2001/11/24
+ \phantomsection\label{page:scrpage-de.autoLineLength}%
+ \begin{XmpBotPage}
+ \XmpHeading{10,18}{85}
+ \thinlines\XmpRule{17,21}{70}
+ \thicklines\XmpRule{10,16}{85}
+ \XmpSetText[\XmpBotText]{10,36}
+ \XmpMarginNote{83,26}
+ \end{XmpBotPage}
+\end{Example}
+%
+Nun mag nicht jedem die Ausrichtung der Linie über der Fußzeile gefallen,
+sondern es wird in einem solchen Fall erwartet, dass sie wie der Kolumnentitel
+linksbündig zum Text ist. Diese Einstellung kann nur global in Form einer
+Paketoption erfolgen und wird im folgenden
+\autoref{sec:scrpage-de.basics.options} mit anderen Optionen beschrieben.%
+%
+\EndIndexGroup
+\EndIndexGroup
+
+
+\subsection{Optionen beim Laden des Paketes}
+\label{sec:scrpage-de.basics.options}
+
+Während bei den \KOMAScript-Klassen die Mehrzahl der Optionen auch noch nach
+dem Laden der Klasse mit \Macro{KOMAoptions} und \Macro{KOMAoption} geändert
+werden kann, trifft dies für das Paket \Package{scrpage2} \iffree{derzeit noch
+}{}nicht zu. Alle Optionen für dieses Paket müssen als globale Optionen, also
+im optionalen Argument von \Macro{documentclass}, oder als Paketoptionen, also
+im optionalen Argument von \Macro{usepackage}, angegeben werden.
+
+% head(in|ex)clude foot(in|ex)clude --> typearea
+% headtopline headsepline footbotline footsepline (plain...)
+% komastyle standardstyle
+% markuppercase markusecase
+% automark manualmark
+\begin{Declaration}
+ \Option{headinclude}%
+ \Option{headexclude}%
+ \Option{footinclude}%
+ \Option{footexclude}
+\end{Declaration}%
+Diese\textnote{Achtung!} Optionen sollten bei Verwendung von
+\KOMAScript~3\ChangedAt{v2.3}{\Package{scrpage2}} nicht mehr beispielsweise
+per optionalem Argument von \Macro{usepackage} oder per
+\Macro{PassOptionsToPackage} direkt an \Package{scrpage2} übergeben
+werden. Lediglich aus Gründen der Kompatibilität sind sie noch in
+\Package{scrpage2} deklariert und werden von diesem als \Option{headinclude},
+\OptionValue{headinclude}{false}, \Option{footinclude} und
+\OptionValue{footinclude}{false} an das Paket \Package{typearea}
+weitergereicht.
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{headtopline}%
+ \Option{plainheadtopline}%
+ \Option{headsepline}%
+ \Option{plainheadsepline}%
+ \Option{footsepline}%
+ \Option{plainfootsepline}%
+ \Option{footbotline}%
+ \Option{plainfootbotline}
+\end{Declaration}%
+Eine Grundeinstellung für die Linien unter und über den Kopf- und Fußzeilen
+kann mit diesen Optionen vorgenommen werden. Diese Einstellungen gelten dann
+als Standard für alle mit \Package{scrpage2} definierten Seitenstile. Wird
+eine von diesen Optionen verwendet, dann wird eine Linienstärke von 0,4\,pt
+eingesetzt. Da es zum Seitenstil \PageStyle{scrheadings} einen entsprechenden
+plain-Stil gibt, kann mit den \Option{plain\dots}-Optionen auch die
+entsprechende Linie des plain-Stils konfiguriert werden. Diese
+\Option{plain}-Optionen wirken aber nur, wenn auch die korrespondierende
+Option ohne \Option{plain} aktiviert wurde. Somit zeigt die Option
+\Option{plainheadtopline} ohne \Option{headtopline} keine Wirkung.
+
+Bei diesen Optionen ist zu beachten, dass der entsprechende Seitenteil in den
+Textbereich des Satzspiegels mit übernommen wird, wenn eine Linie aktiviert
+wurde. Wird also mittels \Option{headsepline} die Trennlinie zwischen Kopf
+und Text aktiviert, dann wird automatisch mittels \Package{typearea} der
+Satzspiegel so berechnet, dass der Seitenkopf Teil des Textblocks ist.
+
+Die\textnote{Achtung!} Bedingungen für die Optionen des vorhergehenden
+Abschnitts gelten auch für diesen Automatismus. Das bedeutet, dass das Paket
+\Package{typearea} nach \Package{scrpage2} geladen werden muss,
+beziehungsweise, dass bei Verwendung einer \KOMAScript{}-Klasse die Optionen
+\DescRef{scrpage-de.option.headinclude} und \DescRef{scrpage-de.option.footinclude} explizit bei
+\Macro{documentclass} gesetzt werden müssen, um Kopf- bzw. Fußzeile in den
+Textblock zu übernehmen.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{ilines}%
+ \Option{clines}%
+ \Option{olines}
+\end{Declaration}%
+\Index{Linienausrichtung}%
+Bei der Festlegung der Linienlängen kann es vorkommen, dass die Linie zwar die
+gewünschte Länge, aber nicht die erwünschte Ausrichtung hat, da sie im Kopf-
+bzw. Fußbereich zentriert wird. Mit den hier vorgestellten Paketoptionen kann
+global für alle mit \Package{scrpage2} definierten Seitenstile diese Vorgabe
+modifiziert werden. Dabei setzt \Option{ilines} die Ausrichtung so, dass die
+Linien an den inneren Rand verschoben werden. Die Option \Option{clines}
+verhält sich wie die Standardeinstellung und \Option{olines} richtet am
+äußeren Rand aus.
+
+\begin{Example}
+ Hier gilt es, das Beispiel zu \DescRef{scrpage-de.cmd.setfootsepline} auf
+ \autopageref{page:scrpage-de.autoLineLength} mit dem folgenden zu
+ vergleichen, um die Wirkung der Option \Option{ilines} zu sehen.
+\begin{lstcode}
+ \usepackage[ilines,footsepline,footbotline]
+ {scrpage2}
+ \setfootbotline{2pt}
+ \setfootsepline[text]{.4pt}
+ \setfootwidth[0pt]{textwithmarginpar}
+\end{lstcode}
+% Der folgende Text wurde erg"anzt um den Seitenumbruch zu verbessern,
+% mjk-2001-10-05:
+% \enlargethispage*{2\baselineskip}
+ Allein die Verwendung der Option \Option{ilines} führt dabei zu der
+ geänderten Ausgabe, die nachfolgend veranschaulicht wird:
+%
+\begin{XmpBotPage}
+ \XmpHeading{10,18}{85}
+ \thinlines\XmpRule{10,21}{70}
+ \thicklines\XmpRule{10,16}{85}
+ \XmpSetText[\XmpBotText]{10,36}
+ \XmpMarginNote{83,26}
+\end{XmpBotPage}
+ Die Trennlinie zwischen Text und Fuß wird bündig innen im Fußteil
+ gesetzt und nicht wie bei der Standardeinstellung zentriert.
+\end{Example}
+\EndIndexGroup
+
+
+% \phantomsection für hyperref-\pageref-Link jum-2001/11/24
+\begin{Declaration}
+ \Option{automark}%
+ \Option{manualmark}
+\end{Declaration}%
+\BeginIndex{}{Kolumnentitel>automatisch}%
+\BeginIndex{}{Kolumnentitel>manuell}%
+Diese Optionen bestimmen gleich zu Beginn des Dokuments, ob eine automatische
+Aktualisierung der Kolumnentitel erfolgt. Die Option \Option{automark}
+schaltet die automatische Aktualisierung ein, \Option{manualmark} deaktiviert
+sie.
+% Das Folgende wurde ergaenzt, weil dazu die haeufigsten Fragen
+% bzw. falschen Bug-Reports im Support kamen.
+% mjk-2001-09-21:
+Ohne Verwendung einer der beiden Optionen bleibt die Einstellung
+erhalten, die beim Laden des Paketes gültig war.
+\begin{Example}
+ Sie laden das Paket \Package{scrpage2} unmittelbar nach der Klasse
+ \Class{scrreprt} und ohne weitere Optionen. Dazu schreiben Sie:
+\begin{lstcode}
+ \documentclass{scrreprt}
+ \usepackage{scrpage2}
+\end{lstcode}
+ Da bei \Class{scrreprt} der Seitenstil \PageStyle{plain} voreingestellt
+ ist, ist dies auch jetzt noch der Fall. Außerdem entspricht die
+ Voreinstellung \PageStyle{plain} manuellen Kolumnentiteln. Wenn Sie
+ also anschließend mit
+\begin{lstcode}
+ \pagestyle{scrheadings}
+\end{lstcode}
+ auf den Seitenstil \PageStyle{scrheadings} umschalten, sind noch immer
+ manuelle Kolumnentitel eingestellt.
+
+ Verwenden Sie stattdessen die Dokumentklasse \Class{scrbook}, so
+ ist nach
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage{scrpage2}
+\end{lstcode}
+ der Seitenstil \PageStyle{headings} mit automatischen Kolumnentiteln
+ aktiviert. Bei anschließender Umschaltung auf den Seitenstil
+ \PageStyle{scrheadings} bleiben automatische Kolumnentitel
+ eingeschaltet. Dabei werden dann weiterhin die Markierungsmakros von
+ \Class{scrbook} verwendet.
+
+ Verwenden Sie hingegen
+\begin{lstcode}
+ \usepackage[automark]{scrpage2}
+\end{lstcode}
+ so wird unabhängig von der verwendeten Klasse auf automatische
+ Kolumnentitel umgeschaltet, wobei die Markierungsmakros von
+ \Package{scrpage2} genutzt werden.
+ Natürlich wirkt sich dies auf den Seitenstil
+ \PageStyle{plain} von \Class{scrreprt} nicht aus. Die Kolumnentitel
+ werden erst sichtbar, wenn auf den Seitenstil
+ \PageStyle{scrheadings}\IndexPagestyle{scrheadings} oder
+ \PageStyle{useheadings} oder einen selbst definierten Seitenstil mit
+ Kolumnentiteln umgeschaltet wird.
+\end{Example}
+\EndIndexGroup
+
+
+% Folgende Deklaration und Erklaerung wurde eingefügt von
+% mjk 2001-08-17:
+\begin{Declaration}
+ \Option{autooneside}
+\end{Declaration}%
+\BeginIndex{}{Kolumnentitel>automatisch}%
+\BeginIndex{}{Kolumnentitel>manuell}%
+Mit dieser Option wird das optionale Argument von
+\DescRef{scrpage-de.cmd.automark}\IndexCmd{automark}\Index{Kolumnentitel>automatisch} im
+einseitigen Satz automatisch ignoriert. Siehe hierzu auch die Erläuterung
+zum Befehl \DescRef{scrpage-de.cmd.automark} in \autoref{sec:scrpage-de.basics.mark},
+\DescPageRef{scrpage-de.cmd.automark}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{komastyle}%
+ \Option{standardstyle}
+\end{Declaration}%
+Diese Optionen bestimmen, wie die beiden vordefinierten Seitenstile
+\PageStyle{scrheadings} und \PageStyle{scrplain} gestaltet sind.
+Bei \Option{komastyle} wird eine Definition vorgenommen, wie
+sie den \KOMAScript{}-Klassen entspricht.
+Bei den \KOMAScript{}-Klassen ist dies die Voreinstellung und
+kann somit auch für andere Klassen gesetzt werden.
+
+Die Option \Option{standardstyle} definiert die beiden Seitenstile
+wie es von den Standardklassen erwartet wird.
+Außerdem wird hier automatisch \DescRef{scrpage-de.option.markuppercase} aktiviert,
+es sei denn, \DescRef{scrpage-de.option.markusedcase} wird ebenfalls als Option übergeben.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Option{markuppercase}%
+ \Option{markusedcase}
+\end{Declaration}%
+Für die Funktionalität von \DescRef{scrpage-de.cmd.automark} modifiziert
+\Package{scrpage2} interne Befehle, die die Gliederungsbefehle
+benutzen, um die lebenden Kolumnentitel zu setzen.
+Da einige Klassen, im Gegensatz
+zu den \KOMAScript{}-Klassen, die Kolumnentitel in Großbuchstaben
+schreiben, muss \Package{scrpage2} wissen, wie die genutzte
+Dokumentklasse die lebenden Kolumnentitel darstellt.
+
+Die Option \Option{markuppercase} zeigt \Package{scrpage2}, dass die benutzte
+Klasse die Großschreibweise benutzt. Die Option \Option{markusedcase} sollte
+angegeben werden, wenn die benutzte Dokumentklasse keine Großschreibweise
+verwendet. Die\textnote{Achtung!} Optionen sind nicht geeignet, eine
+entsprechende Darstellung zu erzwingen. Es kann somit zu unerwünschten
+Effekten kommen, wenn die Angabe nicht dem Verhalten der Dokumentklasse
+entspricht.%
+\EndIndexGroup
+
+
+% Die folgende Deklaration und Erklaerung wurde eingefuegt von
+% mjk 2001-08-18
+\begin{Declaration}
+ \Option{nouppercase}
+\end{Declaration}%
+Wie in obiger Erklärung zu \DescRef{scrpage-de.option.markuppercase} und \DescRef{scrpage-de.option.markusedcase}
+bereits ausgeführt wurde, gibt es Klassen und auch Pakete, die beim Setzen der
+lebenden Kolumnentitel\Index{Kolumnentitel>automatisch} mit Hilfe einer der
+Anweisungen \Macro{uppercase}\IndexCmd{uppercase}\important{\Macro{uppercase}}
+oder
+\Macro{MakeUppercase}\IndexCmd{MakeUppercase}\important{\Macro{MakeUppercase}}
+den gesamten Eintrag in Großbuchstaben wandeln. Mit der Option
+\Option{nouppercase} können diese beiden Anweisungen im Kopf und im Fuß außer
+Kraft gesetzt werden. Das gilt aber nur für Seitenstile, die mit Hilfe von
+\Package{scrpage2} definiert werden. Dazu zählen auch \PageStyle{scrheadings}
+und der zugehörige plain-Seitenstil.
+
+Die verwendete Methode ist äußerst brutal und kann dazu führen, dass
+auch erwünschte Änderungen von Klein- in
+Großbuchstaben\Index{Grossbuchstaben=Großbuchstaben} unterbleiben. Da
+diese Fälle nicht sehr häufig sind, stellt \Option{nouppercase} aber
+meist eine brauchbare Lösung dar.
+\begin{Example}
+ Sie verwenden die Standardklasse \Class{book}\IndexClass{book},
+ wollen aber, dass die lebenden Kolumnentitel nicht in
+ Großbuchstaben, sondern in normaler gemischter Schreibweise gesetzt
+ werden. Die Präambel Ihres Dokuments könnte dann wie folgt beginnen:
+\begin{lstcode}
+ \documentclass{book}
+ \usepackage[nouppercase]{scrpage2}
+ \pagestyle{scrheadings}
+\end{lstcode}
+ Die Umschaltung auf den Seitenstil \PageStyle{scrheadings} ist
+ notwendig, weil sonst der Seitenstil \PageStyle{headings} verwendet
+ wird, der von der Option \Option{nouppercase} nicht behandelt wird.
+\end{Example}
+
+In einigen Fällen setzen nicht nur Klassen, sondern auch Pakete
+lebende Kolumnentitel in Großbuchstaben. Auch in diesen Fällen hilft
+\Option{nouppercase} meist, um zu gemischter Schreibweise
+zurückzuschalten.%
+%
+\EndIndexGroup
+
+
+\section{Seitenstile selbst gestalten}\label{sec:scrpage-de.UI}
+%
+%
+\subsection{Die Anwenderschnittstelle}\label{sec:scrpage-de.UI.user}
+% \deftripstyle
+
+Nun möchte man ja nicht immer an die vorgegebenen Seitenstile gebunden sein,
+sondern auch seiner Kreativität freien Lauf lassen.
+Manchmal ist man auch dazu gezwungen, weil eine bestimmte
+\emph{Corporate Identity} einer Firma es verlangt.
+Der einfachste Weg damit umzugehen ist
+\begin{Declaration}
+ \Macro{deftripstyle}\Parameter{Name}%
+ \OParameter{LA}\OParameter{LI}%
+ \Parameter{KI}\Parameter{KM}\Parameter{KA}%
+ \Parameter{FI}\Parameter{FM}\Parameter{FA}
+\end{Declaration}%
+Die einzelnen Felder haben folgende Bedeutung:
+\begin{labeling}[~--]{\PName{Name}}
+\item[\PName{Name}] die Bezeichnung des Seitenstils, die dann bei der
+ Aktivierung mit \Macro{pagestyle}\Parameter{Name} oder
+ \Macro{thispagestyle}\Parameter{Name} verwendet wird
+\item[\PName{LA}] die Dicke der äußeren Linien, d.\,h. der Linien über der
+ Kopfzeile und unter der Fußzeile (optional)
+\item[\PName{LI}] die Dicke der inneren Linie, d.\,h. der Linien die Kopf und
+ Fuß vom Textkörper trennen (optional)
+\item[\PName{KI}] Inhalt des Feldes im Kopf innenseitig oder bei einseitigem
+ Layout links
+\item[\PName{KM}] Inhalt des Feldes im Kopf zentriert
+\item[\PName{KA}] Inhalt des Feldes im Kopf außenseitig oder bei einseitigem
+ Layout rechts
+\item[\PName{FI}] Inhalt des Feldes im Fuß innenseitig oder bei einseitigem
+ Layout links
+\item[\PName{FM}] Inhalt des Feldes im Fuß zentriert
+\item[\PName{FA}] Inhalt des Feldes im Fuß außenseitig oder bei einseitigem
+ Layout rechts
+\end{labeling}
+
+Der Befehl \Macro{deftripstyle} stellt sicherlich die einfachste
+Möglichkeit dar, Seitenstile zu definieren.
+Leider sind damit auch Einschränkungen verbunden,
+da in einem Seitenbereich mit einem durch \Macro{deftripstyle} deklarierten
+Seitenstil keine Änderung der Kopf- und Fußlinien erfolgen kann.
+
+\begin{Example}
+ Vorgegeben sei ein doppelseitiges Layout, bei dem die Kolumnentitel innen
+ erscheinen sollen. Weiterhin soll der Dokumenttitel, in diesem Fall kurz
+ \glqq Bericht\grqq, an den Außenrand in den Kopf, die Seitenzahl soll
+ zentriert in den Fuß.
+\begin{lstcode}
+ \deftripstyle{DerBericht}%
+ {\headmark}{}{Bericht}%
+ {}{\pagemark}{}
+\end{lstcode}
+
+ Sollen weiterhin die Linien über dem Kopf und unter dem Fuß
+ mit 2\,pt erscheinen und der ganze Textkörper mit dünnen Linien
+ von 0,4\,pt von Kopf und Fuß abgesetzt werden, dann erweitert
+ man vorherige Definition.
+\begin{lstcode}
+ \deftripstyle{DerBericht}[2pt][.4pt]%
+ {\headmark}{}{Bericht}%
+ {}{\pagemark}{}
+\end{lstcode}
+ Das Ergebnis ist in \autoref{fig:scrpage-de2.tomuchlines} zu sehen.
+%
+\begin{figure}
+ \typeout{^^J--- Ignore underfull and overfull \string\hbox:}%
+ \setcapindent{0pt}%
+ \begin{captionbeside}
+ [{%
+ Beispiel eines selbst definierten, von Linien dominierten Seitenstils%
+ }]{%
+ Beispiel für einen selbst definierten, von Linien dominierten Seitenstil
+ mit einem statischen und einem lebenden Kolumnentitel im Kopf und der
+ Seitenzahl in der Mitte des Fußes.%
+ \label{fig:scrpage-de2.tomuchlines}%
+ }
+ [l]
+ \iffree{\setlength{\unitlength}{1.15mm}}{\setlength{\unitlength}{1mm}}%
+ \begin{picture}(85,51)\scriptsize
+ \thinlines
+ \put(0,0){\line(0,1){51}}
+ \put(45,0){\line(0,1){51}}
+ \put(0,51){\line(1,0){40}}
+ \put(45,51){\line(1,0){40}}
+ %
+ \thicklines
+ \put(40,0){\line(0,1){51}}
+ \put(85,0){\line(0,1){51}}
+ \put(0,0){\line(1,0){40}}
+ \put(45,0){\line(1,0){40}}
+ %
+ \XmpHeading[Bericht\hfill 2 Das Auge]{6,47}{30}
+ \XmpHeading[2.1 Netzhaut\hfill Bericht]{49,47}{30}
+ \XmpHeading[\hfill 14\hfill]{6,6.5}{30}
+ \XmpHeading[\hfill 15\hfill]{49,6.5}{30}
+ \put(6,44){\makebox(0,0)[tl]{\parbox{30\unitlength}{\tiny%
+ \textbf{2.1 Netzhaut}\\
+ \XmpText[49]}}}
+ \put(49,44){\makebox(0,0)[tl]{\parbox{30\unitlength}{\tiny%
+ \XmpText[51]}}}
+ %
+ \thinlines
+ \XmpRule{6,45.5}{30}\XmpRule{49,45.5}{30}
+ \XmpRule{6,8}{30}\XmpRule{49,8}{30}
+ \linethickness{1pt}
+ \XmpRule{6,49}{30}\XmpRule{49,49}{30}
+ \XmpRule{6,5}{30}\XmpRule{49,5}{30}
+ \end{picture}
+ \end{captionbeside}
+ \typeout{^^J--- Don't ignore underfull and overfull \string\hbox:^^J}%
+\end{figure}
+\end{Example}
+\EndIndexGroup
+
+
+\subsection{Die Expertenschnittstelle}\label{sec:scrpage-de.UI.expert}
+% \defpagestyle \newpagestyle \providepagestyle \renewpagestyle
+Einfache Seitenstile, wie sie mit \DescRef{scrpage-de.cmd.deftripstyle} deklariert
+werden können, sind erfahrungsgemäß selten.
+Entweder verlangt ein Professor, dass die Diplomarbeit so aussieht
+wie seine eigene -- und wer will ihm da \emph{ernsthaft} widersprechen --
+oder eine Firma möchte, dass die halbe Finanzbuchhaltung im
+Seitenfuß auf"|taucht. Alles kein Problem, denn es gibt noch:
+\begin{Declaration}
+ \Macro{defpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}%
+ \Macro{newpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}%
+ \Macro{renewpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}%
+ \Macro{providepagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}
+\end{Declaration}%
+Dies sind die Befehle, die die volle Kontrolle über die Gestaltung
+eines Seitenstils ermöglichen. Der Aufbau ist bei allen vier
+Definitionen gleich, sie unterscheiden sich nur hinsichtlich
+der Wirkungsweise.
+\begin{labeling}[\ --]{\Macro{providepagestyle}}
+\item[\Macro{defpagestyle}] definiert einen neuen Seitenstil. Existiert
+ bereits einer mit diesem Namen, wird dieser überschrieben.
+\item[\Macro{newpagestyle}] definiert einen neuen Seitenstil. Wenn schon einer
+ mit diesem Namen existiert, wird ein Fehler ausgegeben.
+\item[\Macro{renewpagestyle}] definiert einen bestehenden Seitenstil um. Wenn
+ noch keiner mit diesem Namen existiert, wird ein Fehler ausgegeben.
+\item[\Macro{providepagestyle}] definiert einen neuen Seitenstil nur dann,
+ wenn dieser vorher noch nicht existiert.
+\end{labeling}
+
+Am Beispiel von \Macro{defpagestyle} soll die Syntax der Definitionen
+im Folgenden erläutert werden.
+\begin{labeling}[~--]{\PName{Kopfdefinition}\,}
+\item[\PName{Name}] die Bezeichnung des Seitenstils
+\item[\PName{Kopfdefinition}] die Deklaration des Seitenkopfes bestehend aus
+ fünf Teilen, wobei die in runden Klammern stehenden Angaben optional
+ sind:\hfill\\
+ \hspace*{1em}\AParameter{OLL,OLD}%
+ \Parameter{GS}\Parameter{US}\Parameter{ES}\AParameter{ULL,ULD}
+\item[\PName{Fußdefinition}] die Deklaration des Seitenfußes bestehend aus
+ fünf Teilen, wobei die in runden Klammern stehenden Angaben optional
+ sind:\hfill\\
+ \hspace*{1em}\AParameter{OLL,OLD}%
+ \Parameter{GS}\Parameter{US}\Parameter{ES}\AParameter{ULL,ULD}
+\end{labeling}
+
+Wie zu sehen ist, haben Kopf- und Fußdefinition identischen Aufbau. Die
+einzelnen Parameter haben folgende Bedeutung:
+\begin{labeling}[\ --]{\PName{OLD}}
+\item[\PName{OLL}] obere Linienlänge: Kopf = außen, Fuß = Trennlinie
+\item[\PName{OLD}] obere Liniendicke
+\item[\PName{GS}] Definition für die \emph{gerade} Seite
+\item[\PName{US}] Definition für die \emph{ungerade} Seite
+\item[\PName{ES}] Definition für \emph{einseitiges} Layout
+\item[\PName{ULL}] untere Linienlänge Kopf = Trennlinie, Fuß = außen
+\item[\PName{ULD}] untere Liniendicke
+\end{labeling}
+
+Werden die optionalen Linienargumente nicht gesetzt, dann bleibt das Verhalten
+weiterhin durch die in \autoref{sec:scrpage-de.basics.format},
+\DescPageRef{scrpage-de.cmd.setheadtopline} vorgestellten Linienbefehle
+konfigurierbar.
+
+Die drei Felder \PName{GS}, \PName{US} und \PName{ES} entsprechen Boxen, die
+die Breite des Kopf- bzw. Fußteils haben.
+Die entsprechenden Definitionen erscheinen in diesen Boxen linksbündig.
+Um somit etwas links- \emph{und} rechtsseitig in den Boxen zu platzieren,
+kann der Zwischenraum mit \Macro{hfill} gestreckt werden:
+%
+\begin{lstcode}[belowskip=\dp\strutbox]
+ {\headmark\hfill\pagemark}
+\end{lstcode}
+
+Um zusätzlich etwas zentriert erscheinen zu lassen, ist eine erweiterte
+Definition notwendig.
+Die Befehle \Macro{rlap} und \Macro{llap} setzen die übergebenen Argumente.
+Für \LaTeX{} erscheint es aber so, dass diese Texte eine Breite von Null
+haben. Nur so erscheint der mittlere Text auch wirklich zentriert.
+%
+\begin{lstcode}
+ {\rlap{\headmark}\hfill zentriert\hfill\llap{\pagemark}}
+\end{lstcode}
+
+\iffalse% Umbruchkorrekturtext
+Dies und die Verwendung der Expertenschnittstelle in Zusammenhang mit
+anderen Befehlen von \Package{scrpage2} nun als abschließendes Beispiel.
+\fi
+
+\begin{Example}
+ Angenommen es wird die Dokumentklasse \Class{scrbook} genutzt. Damit
+ liegt ein zweiseitiges Layout vor. Für das Paket \Package{scrpage2} wird
+ festgelegt, dass mit automatisch aktualisierten Kolumnentiteln gearbeitet
+ wird und dass im Seitenstil \PageStyle{scrheadings} eine Trennlinie zwischen
+ Kopf und Text gezogen wird.
+
+\begin{lstcode}
+ \documentclass{scrbook}
+ \usepackage[automark,headsepline]{scrpage2}
+\end{lstcode}
+
+ Mit Hilfe der Expertenschnittstelle werden zwei Seitenstile definiert. Der
+ erste legt keine Linienargumente fest, im zweiten wird die Linie über dem
+ Kopf mit einer Dicke von 1\,pt und die Linie unter dem Kopf mit 0\,pt
+ festgelegt.
+
+\begin{lstcode}
+ \defpagestyle{ohneLinien}{%
+ {Beispiel\hfill\headmark}
+ {\headmark\hfill ohne Linien}
+ {\rlap{Beispiel}\hfill\headmark\hfill%
+ \llap{ohne Linien}}
+ }{%
+ {\pagemark\hfill}
+ {\hfill\pagemark}
+ {\hfill\pagemark\hfill}
+ }
+ \defpagestyle{mitLinien}{%
+ (\textwidth,1pt)
+ {mit Linien\hfill\headmark}
+ {\headmark\hfill mit Linien}
+ {\rlap{\KOMAScript}\hfill \headmark\hfill%
+ \llap{mit Linien}}
+ (0pt,0pt)
+ }{%
+ (\textwidth,.4pt)
+ {\pagemark\hfill}
+ {\hfill\pagemark}
+ {\hfill\pagemark\hfill}
+ (\textwidth,1pt)
+ }
+\end{lstcode}
+
+ Gleich zu Beginn wird der Seitenstil \PageStyle{scrheadings} aktiviert. Mit
+ \Macro{chapter} wird ein neues Kapitel begonnen. Weiterhin wird automatisch
+ durch \Macro{chapter} der Seitenstil für diese Seite auf \PageStyle{plain}
+ gesetzt. Das folgende \DescRef{scrpage-de.cmd.chead} zeigt, wie durch Modifikation des
+ plain-Stils ein Kolumnentitel erzeugt werden kann. Grundsätzlich sollte
+ jedoch davon Abstand genommen werden, da sonst der Markierungscharakter der
+ plain-Seite verloren geht. Es ist wichtiger anzuzeigen, dass hier ein neues
+ Kapitel beginnt, als dass ein Abschnitt dieser Seite einen bestimmten Titel
+ trägt.
+
+\begin{lstcode}
+ \begin{document}
+ \pagestyle{scrheadings}
+ \chapter{Thermodynamik}
+ \chead[\leftmark]{}
+ \section{Hauptsätze}
+ Jedes System besitzt eine extensive Zustandsgröße
+ Energie. Sie ist in einem abgeschlossenen System
+ konstant.
+\end{lstcode}%
+ \begin{XmpTopPage}
+ \XmpHeading[\hfill\textsl{1 Thermodynamik}\hfill]{10,27}{70}
+ \put(10,17){\normalsize\textbf{\sffamily 1 Thermodynamik}}
+ \put(10,12){\textbf{\sffamily 1.1 Hauptsätze}}
+ \XmpSetText[%
+ Jedes System besitzt eine extensive Zustands\char\defaulthyphenchar
+ \linebreak]{10,9}
+ \end{XmpTopPage}
+
+ Nach dem Seitenwechsel ist der Seitenstil \PageStyle{scrheadings}
+ aktiv, und somit auch die Trennlinie aus den Paketoptionen sichtbar.
+\begin{lstcode}
+ Es existiert eine Zustandsgröße, genannt die
+ Entropie eines Systems, deren zeitliche Änderung
+ sich aus Entropieströmung und Entropieerzeugung
+ zusammensetzt.
+\end{lstcode}
+ \begin{XmpTopPage}
+ \XmpHeading[\textsl{1 Thermodynamik}\hfill]{20,27}{70}
+ \thinlines\XmpRule{20,25}{70}
+ \XmpSetText[%
+ Es existiert eine Zustandsgröße, genannt die En"-tropie
+ eines Systems, deren zeitliche Änderung sich aus
+ Entropieströmung und Entropie\char\defaulthyphenchar\kern-1pt
+ \linebreak]{20,21}
+ \end{XmpTopPage}
+
+ Wiederum nach einem Seitenwechsel wird auf manuelle Kolumnentitel gewechselt
+ und der Seitenstil \PValue{ohneLinien} aktiviert. Da keine Linienargumente
+ bei der Definition dieses Stils genutzt wurden, wird die
+ Standard-Linien\-konfiguration verwendet. Diese zeichnet hier eine Linie
+ zwischen Kopf und Text, da \DescRef{scrpage-de.option.headsepline} als Argument für
+ \Package{scrpage2} angegeben wurde.%
+\begin{lstcode}
+ \manualmark
+ \pagestyle{ohneLinien}
+ \section{Exergie und Anergie}
+ \markright{Energieumwandlung}
+ Man bezeichnet die bei der Einstellung des
+ Gleichgewichts mit der Umgebung maximal gewinnbare
+ Arbeit als Exergie.
+\end{lstcode}%
+ \begin{XmpTopPage}
+ \XmpHeading[\slshape Energieumwandlung\hfill ohne Linien]{10,27}{70}
+ \thinlines\XmpRule{10,25}{70}
+ \XmpSetText[{%
+ \textbf{\sffamily 1.2 Exergie und Anergie}\\[2pt]
+ Man bezeichnet die bei der Einstellung des
+ Gleichgewichts mit der Umgebung maximal\linebreak}]{10,21}
+ \end{XmpTopPage}
+
+ Nach dem Wechsel auf die folgende linke Seite wird der Seitenstil
+ \PValue{mitLinien} aktiviert. Die Linieneinstellungen werden hier nun
+ angewendet und entsprechend der Definition dargestellt.
+\begin{lstcode}
+ \pagestyle{mitLinien}
+ \renewcommand{\headfont}{\itshape\bfseries}
+ Den nicht in Exergie umwandelbaren Anteil einer
+ Energie nennt man Anergie \Var{B}.
+ \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\]
+ \end{document}
+\end{lstcode}
+ \begin{XmpTopPage}
+ \XmpHeading[\itshape\bfseries mit Linien\hfill 1 Thermodynamik]{20,27}{70}
+ \thicklines\XmpRule{20,29}{70}
+ \XmpSetText[%
+ Den nicht in Exergie umwandelbaren Anteil einer
+ Energie nennt man Anergie $B$.
+ \vspace{-.5ex}\[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] ]{20,21}
+ \end{XmpTopPage}
+\end{Example}
+\EndIndexGroup
+
+
+\subsection{Seitenstile verwalten}\label{sec:scrpage-de.UI.cfgFile}
+% scrpage.cfg
+\BeginIndex{File}{scrpage.cfg}
+Bei längerer Arbeit mit verschiedenen Seitenstilen wird sich, je nach
+Geschmack und Aufgabenstellung, ein fester Satz an benutzten Stilen
+etablieren.
+Um nicht bei jedem neuen Projekt eine große Kopieraktion von den Daten
+eines Projekts zum neuen Projekt starten zu müssen, liest \Package{scrpage2}
+am Ende seiner Initialisierungsphase die Datei \File{scrpage.cfg} ein.
+In dieser Datei können dann Seitenstile definiert sein, die viele
+Projekte gemeinsam nutzen können.
+\EndIndex{File}{scrpage.cfg}
+%
+\EndIndexGroup
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/ChangeLog b/macros/latex/contrib/koma-script/source/ChangeLog
new file mode 100644
index 0000000000..216994af24
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/ChangeLog
@@ -0,0 +1,16102 @@
+r3066 2019-02-01 08:58:57 +0100 kohm:
+
+ * releaselist.txt: release 2019/02/01 v3.26b
+
+r3065 2019-02-01 08:55:26 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: fix of \bottomrule in desctabular due to
+ external changes
+
+r3064 2019-02-01 08:40:28 +0100 kohm:
+
+ * scrkernel-paragraphs.dtx: replaced \baselineskip by 1\baselineskip
+ in option parskip
+
+r3063 2019-02-01 08:39:11 +0100 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx, scrhack.dtx,
+ scrkernel-sections.dtx, scrkernel-basics.dtx: v3.27 --> v3.26b
+
+r3062 2019-01-28 15:35:42 +0100 kohm:
+
+ * scrhack.dtx: prepared for nomencl 5.1
+
+r3061 2019-01-23 13:06:34 +0100 kohm:
+
+ * scrhack.dtx: prepared nomencl hack for nomencl 5.0 and hopefully
+ fixed version of nomencl
+
+r3060 2019-01-17 21:36:57 +0100 kohm:
+
+ * scrkernel-sections.dtx: emergency workaround for typical auxhook
+ problem
+
+r3059 2019-01-17 13:46:30 +0100 kohm:
+
+ * scrkernel-basics.dtx: made \scr@sp@def \long
+
+r3058 2019-01-15 08:39:58 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/introduction.tex: corrections by O. C.
+
+r3057 2019-01-15 08:29:44 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrbase.tex,
+ doc/english/common-marginpar.tex, doc/english/common-options.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/common-textmarkup.tex,
+ doc/english/scrjura.tex, doc/english/typearea.tex,
+ doc/english/scrbookreportarticle-experts.tex: translation improvements
+ by Karl
+
+r3056 2019-01-14 14:29:39 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: defining own page
+ styles is in chapter 17 and 18
+
+r3055 2019-01-09 16:54:51 +0100 kohm:
+
+ * scrkernel-basics.dtx: copyright date changed
+
+r3054 2019-01-09 16:54:19 +0100 kohm:
+
+ * scrkernel-basics.dtx: added new error message for using
+ \FamilyOption with key=value or
+ list of options
+
+r3053 2019-01-01 13:48:49 +0100 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for new
+ beta
+
+r3052 2019-01-01 13:47:38 +0100 kohm:
+
+ * scrkernel-title.dtx: requested warnings about not used
+ \uppertitleback and \lowertitleback
+
+ in `twoside=false' or `titlepage=false' mode added
+
+r3051 2018-12-30 16:08:14 +0100 kohm:
+
+ * releaselist.txt: release 2018/12/30 v3.26a
+
+r3050 2018-12-30 15:36:55 +0100 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx, tocbasic.dtx:
+ fix of usage of \kernel@ifnextchar
+
+r3049 2018-12-22 17:30:41 +0100 kohm:
+
+ * doc/, doc/guide.tex, doc/scrguide.cls: simplified language select by
+ using babel's main=...
+
+r3048 2018-12-22 17:02:04 +0100 kohm:
+
+ * scrsource.tex: changed font encoding and font due to a change in
+ LaTeX
+
+r3047 2018-12-22 16:51:54 +0100 kohm:
+
+ * releaselist.txt, scrkernel-fonts.dtx: prepared for v3.26
+
+r3046 2018-12-22 16:30:58 +0100 kohm:
+
+ * scrkernel-version.dtx: prepared for 3.26
+
+r3045 2018-12-15 15:01:34 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex, doc/english/,
+ doc/english/scrlayer.tex: typofix [AK]
+
+r3044 2018-11-16 20:00:32 +0100 kohm:
+
+ * scrkernel-notepaper.dtx: storage of option subject=underline fixed
+ [Elke]
+
+r3043 2018-11-06 08:50:06 +0100 kohm:
+
+ * scrkernel-basics.dtx: fixed definition of \Family@@CS@Key and
+ indirectly broken \Family@@String@@Key
+
+r3042 2018-10-23 08:59:49 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-options.tex, doc/english/,
+ doc/english/common-options.tex: changed key=value in the option list
+ of \documentclass note
+
+r3041 2018-10-22 11:14:19 +0200 kohm:
+
+ * scrkernel-basics.dtx: problem with options like
+ headheight=\baselineskip reduced
+
+r3040 2018-10-22 08:54:40 +0200 kohm:
+
+ * scrkernel-basics.dtx: make \FamilyProcessOptions robust against a
+ potential kernel change
+
+ that does not remove white spaces inside options (i. e. before an after the
+ =)
+
+r3039 2018-10-19 19:37:30 +0200 kohm:
+
+ * scrkernel-notepaper.dtx: warning fixed
+
+r3038 2018-10-14 20:31:51 +0200 kohm:
+
+ * TODO, scrkernel-sections.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: afterindent for
+ \DeclareSectionCommand style part and change of behaviour of
+ beforeskip depending on afterindent
+
+r3037 2018-10-14 19:57:50 +0200 kohm:
+
+ * scrkernel-sections.dtx: option afterindent for
+ \DeclareSectionCommand with style part
+
+r3036 2018-10-08 15:15:51 +0200 kohm:
+
+ * doc/, doc/Makefile.guide: new variable EXAMPLE_LETTER_TEX_SRC
+
+r3035 2018-09-27 12:38:53 +0200 kohm:
+
+ * scrkernel-sections.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: fix of
+ \DeclareSectionCommand option afterindent and the default
+
+r3034 2018-09-21 09:51:45 +0200 kohm:
+
+ * scrlayer-fancyhdr.dtx, Makefile: alpha of scrlayer-fancyhdr added
+
+r3033 2018-09-21 09:36:59 +0200 kohm:
+
+ * scrjura.dtx: fix the group level fix
+
+r3030 2018-09-20 14:20:52 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ typofix
+
+r3029 2018-09-20 11:56:30 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ typofix
+
+r3028 2018-09-20 11:22:18 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/english/, doc/english/scrbookreportarticle-experts.tex: typofix
+
+r3027 2018-09-20 10:52:09 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: docu of new settings of
+ \DeclareSectionCommand etc.
+
+r3026 2018-09-20 09:39:51 +0200 kohm:
+
+ * scrkernel-sections.dtx: \DeclareSectionCommand's style chapter uses
+ a negative afterskip value as it is: a negative skip
+
+r3025 2018-09-18 12:58:34 +0200 kohm:
+
+ * TODO, scrkernel-sections.dtx: new option "runin=true|false|bysign"
+ for section style of \DeclareSectionCommand
+
+r3024 2018-09-18 10:58:23 +0200 kohm:
+
+ * TODO, scrkernel-sections.dtx: new option
+ "afterindent=true|false|bysign" for \DeclareSectionCommand
+
+r3023 2018-09-18 10:48:04 +0200 kohm:
+
+ * scrdocstrip.tex: endline char fix
+
+r3022 2018-09-18 10:47:09 +0200 kohm:
+
+ * scrjura.dtx: fix for group level while docstrip run of scrmain.ins
+
+r3021 2018-09-07 14:17:12 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlayer.tex, doc/english/,
+ doc/english/scrlayer.tex: \toplevelpagestyle docu added
+
+r3020 2018-09-06 18:12:13 +0200 kohm:
+
+ * Makefile, scrmain.ins: scrhack and scrjura integrated into
+ scrmain.ins
+
+r3019 2018-09-06 17:45:33 +0200 kohm:
+
+ * scrhack.dtx: not longer needed manual code removed
+
+r3018 2018-09-06 08:27:10 +0200 kohm:
+
+ * TODO: missing \toplevelpagestyle docu
+
+r3017 2018-09-05 08:27:27 +0200 kohm:
+
+ * scrlayer-scrpage.dtx: initial English comment fixed
+
+r3016 2018-09-03 13:40:59 +0200 kohm:
+
+ * scrkernel-index.dtx, scrkernel-bibliography.dtx, tocbasic.dtx: usage
+ of \@mkright replaced by either \addsecmark or
+ \c@secnumdepth=-\maxdimen\subsectionmark
+
+r3015 2018-09-03 12:51:32 +0200 kohm:
+
+ * scrlayer.dtx: using new \IfActiveMkBoth
+
+r3014 2018-09-03 12:40:17 +0200 kohm:
+
+ * scrkernel-basics.dtx: new \IfActiveMkBoth to detect whether or not
+ \@mkboth changes the
+ main mark
+
+r3013 2018-08-31 11:28:26 +0200 kohm:
+
+ * tocbasic.dtx: multitoc warning added
+
+r3012 2018-08-31 09:11:20 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex, doc/english/,
+ doc/english/tocbasic.tex: Typofix
+
+r3011 2018-08-29 09:35:17 +0200 kohm:
+
+ * scrkernel-tocstyle.dtx, scrkernel-language.dtx, scrlayer.dtx,
+ scrkernel-letterclassoptions.dtx, scrlayer-notecolumn.dtx,
+ scrkernel-sections.dtx, scrlfile.dtx, tocbasic.dtx,
+ scrkernel-basics.dtx: improvement of \@for loops
+
+r3010 2018-08-27 09:35:27 +0200 kohm:
+
+ * scrkernel-tocstyle.dtx, doc/, doc/ngerman/,
+ doc/ngerman/tocbasic.tex, doc/english/, doc/english/tocbasic.tex: new
+ \DeclareTOCStyleEntries
+
+r3009 2018-08-27 08:53:35 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbase.tex, doc/english/,
+ doc/english/scrbase.tex: documentation of \FamilyUseLengthMacroKey and
+ \FamilySetUseLength
+
+r3008 2018-08-27 08:31:52 +0200 kohm:
+
+ * scrkernel-basics.dtx: docufix
+
+r3007 2018-08-10 08:51:05 +0200 kohm:
+
+ * tocbasic.dtx: four info messages moved to trace mode
+
+r3006 2018-08-01 18:05:05 +0200 kohm:
+
+ * TODO: new missing documentation, one nice to have removed
+
+r3005 2018-08-01 18:04:11 +0200 kohm:
+
+ * scrjura.dtx: Typo in implementation docu
+
+r3004 2018-07-20 09:52:01 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/scrjura.tex, doc/english/,
+ doc/english/common-textmarkup.tex, doc/english/scrjura.tex: new font
+ element sentencenumber; new command \sentencenumberformat
+
+r3003 2018-07-20 09:09:12 +0200 kohm:
+
+ * scrjura.dtx: don't use an argument for \sentenceformat
+
+r3002 2018-07-20 09:05:42 +0200 kohm:
+
+ * scrjura.dtx: new command `\sentencenumberformat' and new (font)
+ element `sentencenumber'
+
+r3001 2018-07-19 09:00:29 +0200 kohm:
+
+ * TODO: new nice to have: \sentenceformat
+
+r3000 2018-07-18 14:56:07 +0200 kohm:
+
+ * scrlayer.dtx: fix of new features [Falk]
+
+r2999 2018-07-18 14:12:27 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: replaced reference to
+ \@setplength by \setplength
+
+r2998 2018-07-18 14:09:29 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: reference \newplength
+ instead of \@newplength
+
+r2997 2018-07-18 13:58:44 +0200 kohm:
+
+ * doc/, doc/linkalias.tex: extended link aliases
+
+r2996 2018-07-18 13:40:17 +0200 kohm:
+
+ * doc/, doc/linkalias.tex: \lalias extended by one optional argument
+
+r2995 2018-07-18 08:46:34 +0200 kohm:
+
+ * scrkernel-miscellaneous.dtx: copyright year fixed
+
+r2994 2018-07-18 08:45:56 +0200 kohm:
+
+ * scrkernel-miscellaneous.dtx: additional warnings about tocloft and
+ multitoc; some warnings
+ removed from scrlttr2
+
+r2993 2018-07-16 09:33:22 +0200 kohm:
+
+ * scrkernel-typearea.dtx: changed large line warning; replaced small
+ line warning by changed
+ small line info
+
+r2992 2018-07-14 14:33:18 +0200 kohm:
+
+ * scrlayer.dtx: Simplification and documentation
+
+r2991 2018-07-14 11:54:34 +0200 kohm:
+
+ * scrlayer.dtx: new layer attributes for hooks and artifacts
+
+r2990 2018-07-14 08:23:46 +0200 kohm:
+
+ * scrlayer.dtx: new command \ModifyLayers which expects a list of
+ layers instead of
+ only one layer
+
+r2989 2018-07-09 07:53:40 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/tocbasic.tex: Replaced example call
+ of \RedeclareTOCStyleEntry by \DeclareTOCStyleEntry
+
+r2988 2018-07-09 07:50:43 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Beispielaufruf
+ \RedeclareTOCStyleEntry durch \DeclareTOCStyleEntry ersetzt
+
+r2987 2018-06-27 13:14:50 +0200 kohm:
+
+ * scrkernel-sections.dtx: emergency fix for bookmark level gaps added
+
+r2986 2018-06-22 11:28:38 +0200 kohm:
+
+ * tocbasic.dtx: fixed penalty problem with features leveldown and
+ totoc in case of
+
+ existence of \chapter and \addsec by removing one group
+
+r2985 2018-06-18 17:54:11 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: fehlendes
+ Komma eingefügt (Elke)
+
+r2984 2018-06-09 08:44:23 +0200 kohm:
+
+ * tocbasic.dtx: earlier registration of extensions in \DeclareNewTOC
+
+r2983 2018-05-14 20:15:53 +0200 kohm:
+
+ * scrkernel-sections.dtx: missing \interlinepenalty \@M added in
+ \minisec
+
+r2982 2018-05-14 14:13:12 +0200 kohm:
+
+ * scrkernel-sections.dtx: new experimental macros \startsection@…
+ for package authors
+
+r2981 2018-04-26 14:55:38 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrlttr2-experts.tex:
+ documentation of new commands
+
+r2980 2018-04-26 14:06:09 +0200 kohm:
+
+ * scrkernel-pseudolengths.dtx: new \setplength, \addtoplength,
+ \setplengthtowidth,
+
+ \setplengthtoheight, \setplengthtodepth, \setplengthtototalheight
+
+r2979 2018-04-17 08:01:18 +0200 kohm:
+
+ * scrkernel-footnotes.dtx: checksum
+
+r2978 2018-04-17 07:55:10 +0200 kohm:
+
+ * scrkernel-letterclassoptions.dtx: improved warning message due to
+ scrletter package
+
+r2977 2018-04-17 07:52:13 +0200 kohm:
+
+ * scrkernel-footnotes.dtx: Do not use \@ifundefined side effect of
+ former LaTeX releases
+
+r2976 2018-04-17 07:31:42 +0200 kohm:
+
+ * japanlco.dtx: warning message extended to respect the scrletter
+ package
+
+r2975 2018-04-13 07:41:27 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex: Trennung von
+ "Inhaltsverzeichniseinträge"
+
+r2974 2018-04-09 10:14:11 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/scrextend.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/scrjura.tex,
+ doc/english/common-pagestylemanipulation.tex: additional translation
+ improvements by Karl
+
+r2973 2018-04-01 10:53:34 +0200 kohm:
+
+ * scrlayer-notecolumn.dtx: change version fixed
+
+r2972 2018-04-01 10:51:48 +0200 kohm:
+
+ * scrlayer-notecolumn.dtx: usage of not yet documented XeTeX primitive
+ \mdfivesum
+
+r2971 2018-03-31 12:02:08 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ v3.26 BETA
+
+r2970 2018-03-31 12:00:50 +0200 kohm:
+
+ * releaselist.txt: Release v3.25
+
+r2969 2018-03-30 11:57:25 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbase.tex, doc/english/scrlayer-scrpage-experts.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/scrjuraexample.tex,
+ doc/english/scrlayer-notecolumn.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/scrdatetime.tex,
+ doc/english/tocbasic.tex, doc/english/typearea-experts.tex,
+ doc/english/scrjura.tex, doc/english/typearea.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/scrlfile.tex, doc/english/introduction.tex: translations
+ improvement by Karl
+
+r2968 2018-03-30 09:37:06 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/common-marginpar.tex,
+ doc/english/common-parmarkup.tex, doc/english/common-fontsize.tex,
+ doc/english/common-interleafpage.tex, doc/english/adrconvnote.tex,
+ doc/english/common-dictum.tex, doc/english/common-options.tex,
+ doc/english/common-footnotes.tex, doc/english/common-lists.tex,
+ doc/english/common-pagestylemanipulation.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/common-titles.tex,
+ doc/english/common-typearea.tex: translations improvement by Karl
+
+r2967 2018-03-28 16:50:29 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrjura.tex: sentence completed
+
+r2966 2018-03-28 11:51:12 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/common-parmarkup.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrlayer-notecolumn.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/scrjura.tex,
+ doc/english/typearea.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-pagestylemanipulation.tex: avaible values etc.
+ instead of possible values etc.
+
+r2965 2018-03-28 11:44:09 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrjuraexample.tex,
+ doc/english/common-footnotes.tex, doc/english/typearea-experts.tex,
+ doc/english/scrjura.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/preface.tex: translations improvement or made by Karl
+
+r2964 2018-03-27 11:46:14 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex, doc/english/,
+ doc/english/scrdatetime.tex, doc/english/scrextend.tex,
+ doc/english/tocbasic.tex, doc/english/scrhack.tex,
+ doc/english/scrlfile.tex, doc/english/scrwfile.tex,
+ doc/english/scraddr.tex: translations improvement by Karl
+
+r2963 2018-03-27 11:10:14 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: label fixed
+
+r2962 2018-03-21 10:37:34 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/common-marginpar.tex, doc/english/common-parmarkup.tex,
+ doc/english/common-fontsize.tex, doc/english/guide-english.tex,
+ doc/english/japanlco.tex, doc/english/common-options.tex,
+ doc/english/common-footnotes.tex, doc/english/common-lists.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/common-textmarkup.tex,
+ doc/english/common-typearea.tex, doc/english/preface.tex: improvements
+ by Karl
+
+r2961 2018-03-21 09:29:17 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2examples.dtx, doc/english/,
+ doc/english/common-fontsize.tex, doc/english/scrlttr2examples.dtx:
+ improvements by Karl
+
+r2960 2018-03-16 09:39:32 +0100 kohm:
+
+ * scrhack.dtx: usage of \@dottedtocline replaced by
+ \DeclareTOCStyleEntry
+
+r2959 2018-03-15 14:32:29 +0100 kohm:
+
+ * scrkernel-typearea.dtx: Info message improved
+
+r2958 2018-03-15 14:21:49 +0100 kohm:
+
+ * scrkernel-typearea.dtx: Warning improved
+
+r2957 2018-03-12 09:45:33 +0100 kohm:
+
+ * doc/, doc/guide.bib, doc/ngerman/, doc/ngerman/preface.tex,
+ doc/english/, doc/english/preface.tex: preface to KOMA-Script 3.25
+ instead of 3.22a
+
+r2956 2018-03-12 08:43:21 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrbase.tex,
+ doc/english/common-marginpar.tex,
+ doc/english/scrlayer-notecolumn-example.tex,
+ doc/english/scrlayer-notecolumn.tex, doc/english/adrconvnote.tex: new
+ translation by Karl
+
+r2955 2018-03-12 08:08:52 +0100 kohm:
+
+ * README.in/, README.in/README.scrartcl.cls,
+ README.in/README.scrlttr2.cls, README.in/README.scrreprt.cls,
+ README.in/README.scrdoc.cls, README.in/README.scrbook.cls: improved
+ README files by Karl
+
+r2954 2018-03-10 22:15:16 +0100 kohm:
+
+ * scrkernel-sections.dtx: fixed error messages of
+ \DeclareNewSectionCommand and \RedeclareSectionCommand
+
+r2953 2018-03-05 09:11:19 +0100 kohm:
+
+ * scrkernel-typearea.dtx: Copyright-Datum geändert
+
+r2952 2018-03-05 08:58:44 +0100 kohm:
+
+ * scrkernel-typearea.dtx: Revision is a svn:keyword now
+
+r2951 2018-03-05 08:55:12 +0100 kohm:
+
+ * scrkernel-typearea.dtx: don't use \ta@divlist if paper is not
+ (almost) A4 and version >= 3.25
+
+r2950 2018-03-05 08:54:19 +0100 kohm:
+
+ * scrkernel-compatibility.dtx: New compatibility value
+
+r2949 2018-03-01 10:42:54 +0100 kohm:
+
+ * TODO, doc/, doc/english/, doc/english/scrbase.tex: docu of
+ \FamilyCSKey
+
+r2948 2018-03-01 10:28:00 +0100 kohm:
+
+ * TODO, doc/, doc/english/, doc/english/tocbasic.tex: docu of options
+ setup and unset of \DeclareNewTOC
+
+r2947 2018-03-01 10:14:52 +0100 kohm:
+
+ * TODO, doc/, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: documentation of
+ \IfIsAliaskomafont
+
+r2946 2018-03-01 10:05:28 +0100 kohm:
+
+ * TODO, doc/, doc/english/, doc/english/scrjura.tex: no more undefined
+ references; scrjura.tex synced with German version
+
+r2945 2018-03-01 09:03:49 +0100 kohm:
+
+ * TODO: Überholte Punkte entfernt, Frage bezüglich "simple switch"
+ ergänzt
+
+r2944 2018-02-28 13:23:23 +0100 kohm:
+
+ * TODO, doc/, doc/english/, doc/english/common-marginpar.tex,
+ doc/english/common-parmarkup.tex, doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/expertpart.tex,
+ doc/english/common-interleafpage.tex,
+ doc/english/scrlayer-scrpage.tex,
+ doc/english/common-headfootheight.tex, doc/english/common-dictum.tex,
+ doc/english/common-options.tex, doc/english/common-footnotes.tex,
+ doc/english/scrextend.tex, doc/english/common-lists.tex,
+ doc/english/common-draftmode.tex, doc/english/common-textmarkup.tex,
+ doc/english/scrlayer.tex, doc/english/typearea.tex,
+ doc/english/common-pagestylemanipulation.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/authorpart.tex,
+ doc/english/common-titles.tex, doc/english/common-compatibility.tex,
+ doc/english/common-typearea.tex, doc/english/introduction.tex,
+ doc/english/preface.tex: New translation by Karl Hagen
+
+r2943 2018-02-28 13:15:51 +0100 kohm:
+
+ * TODO: Fehler längst beseitigt
+
+r2942 2018-02-19 08:23:07 +0100 kohm:
+
+ * scrkernel-title.dtx: bugfix
+
+r2941 2018-02-16 04:42:17 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex,
+ doc/ngerman/scrlfile.tex, doc/ngerman/scrwfile.tex: Korrekturen [Falk]
+
+r2940 2018-02-13 09:46:59 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: Farbgebung
+
+r2939 2018-02-13 09:46:41 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex: Fehlerkorrekturen
+ [Ernst]
+
+r2938 2018-02-12 10:12:53 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix usage of font for new defined heading
+ commands of style part
+
+r2937 2018-02-12 08:08:32 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: Korrekturen [Ernst]
+
+r2936 2018-02-07 13:47:54 +0100 kohm:
+
+ * doc/, doc/guide.tex, doc/scrpage2.tex: scrpage2.pdf generation
+ improved
+
+r2935 2018-02-07 12:57:30 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: improvements for non-free
+
+r2934 2018-02-06 10:26:38 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/scrjura.tex: Korrekturen [Heiner+Alexander]
+
+r2933 2018-02-06 09:33:25 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex: Korrekturen [Elke]
+
+r2932 2018-02-06 09:20:05 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-lists.tex: Eine Randmarke
+ eingefügt [Elke]
+
+r2931 2018-02-05 10:50:56 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbase.tex, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-notecolumn.tex, doc/ngerman/tocbasic.tex,
+ doc/ngerman/scrhack.tex, doc/ngerman/scrjura.tex,
+ doc/ngerman/common-pagestylemanipulation.tex,
+ doc/ngerman/scrlfile.tex, doc/ngerman/introduction.tex,
+ doc/ngerman/scraddr.tex: wie-Komma-Korrekturen
+
+r2930 2018-02-05 09:57:42 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrdatetime.tex:
+ Doppelpunktverwendung im Satz
+
+r2929 2018-02-05 07:37:22 +0100 kohm:
+
+ * scrlayer-scrpage.dtx, scrkernel-fonts.dtx: warning for element
+ pagehead replaced by an info
+
+r2928 2018-02-02 18:10:27 +0100 kohm:
+
+ * scrlayer-notecolumn.dtx: usage of \closein and \closeout fixed
+
+r2927 2018-02-02 12:16:47 +0100 kohm:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex: Korrekturen
+ [Elke+Markus]
+
+r2926 2018-02-02 11:18:15 +0100 kohm:
+
+ * TODO: new issue
+
+r2925 2018-02-02 09:33:36 +0100 kohm:
+
+ * TODO: \IfIsAliaskomafont dokumentiert
+
+r2924 2018-02-02 08:58:15 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: Korrektur
+ [Heiner]
+
+r2923 2018-02-02 07:58:03 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Korrektur [Elke]
+
+r2922 2018-02-01 12:55:46 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbase.tex, doc/ngerman/tocbasic.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/scrlayer.tex, doc/ngerman/scrjura.tex,
+ doc/ngerman/common-typearea.tex: Korrekturen [Ernst + Rolf]
+
+r2921 2018-01-31 16:27:33 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ Korrekturen
+
+r2920 2018-01-31 14:24:50 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/scrlayer.tex, doc/ngerman/introduction.tex: Korrekturen
+ [Heiner]
+
+r2919 2018-01-31 13:56:21 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex,
+ doc/ngerman/common-parmarkup.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/scrlayer.tex: Korrekturen [Heiner]
+
+r2918 2018-01-31 13:01:01 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex: Korrekturen [Heiner und
+ Elke]
+
+r2917 2018-01-31 11:33:28 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: Korrektur
+ [Elke]
+
+r2916 2018-01-31 09:49:41 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea-experts.tex: Korrekturen
+ [Heiner]
+
+r2915 2018-01-31 09:48:21 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex: Korrekturen
+ [Heiner]
+
+r2914 2018-01-31 09:21:42 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/ngerman/common-pagestylemanipulation.tex: Korrekturen [Heiner]
+
+r2913 2018-01-31 08:51:30 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex,
+ doc/ngerman/scrlayer.tex,
+ doc/ngerman/common-pagestylemanipulation.tex: Korrekturen [Heiner]
+
+r2912 2018-01-31 08:18:25 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrhack.tex: Korrekturen [Heiner]
+
+r2911 2018-01-30 13:37:05 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbase.tex, doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/common-draftmode.tex,
+ doc/ngerman/common-textmarkup.tex, doc/ngerman/scrjura.tex,
+ doc/ngerman/scrlfile.tex, doc/ngerman/common-titles.tex,
+ doc/ngerman/scrwfile.tex, doc/ngerman/scraddr.tex: Korrekturen
+ [Heiner]
+
+r2910 2018-01-30 11:07:48 +0100 kohm:
+
+ * doc/, doc/guide.bib, doc/ngerman/, doc/ngerman/scrlttr2.tex:
+ adrconv-Problematik aufgegriffen
+
+r2909 2018-01-30 09:32:50 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/common-oddorevenpage.tex,
+ doc/ngerman/common-compatibility.tex: Korrekturen [Heiner]
+
+r2908 2018-01-30 08:21:10 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2examples.dtx: Korrektur
+ [Heiner]
+
+r2907 2018-01-29 14:12:59 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbase.tex, doc/ngerman/common-marginpar.tex,
+ doc/ngerman/common-parmarkup.tex, doc/ngerman/guide-ngerman.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/adrconvnote.tex,
+ doc/ngerman/common-dictum.tex, doc/ngerman/common-footnotes.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/scrlayer.tex, doc/ngerman/scrjura.tex,
+ doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-oddorevenpage.tex, doc/ngerman/scrlfile.tex,
+ doc/ngerman/common-titles.tex, doc/ngerman/introduction.tex:
+ Korrekturen [Heiner]
+
+r2906 2018-01-26 15:57:01 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrjuraexample.tex: eine Änderung
+ zu viel
+
+r2905 2018-01-26 11:15:05 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrjuraexample.tex: Korrekturen
+ [Heiner]
+
+r2904 2018-01-26 11:14:36 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrjura.tex: Korrekturen [Heiner]
+
+r2903 2018-01-26 09:46:22 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-textmarkup.tex: Korrekturen [Elke]
+
+r2902 2018-01-26 09:27:32 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex: zusätzliche
+ Randmarken [Elke]
+
+r2901 2018-01-26 09:21:20 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-lists.tex: scrlttr2-Randnotiz
+ auf Kapitel zu scrlttr2 und scrletter beschränkt
+
+r2900 2018-01-26 08:58:58 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex: neueste -->
+ neuste
+
+r2899 2018-01-26 08:56:36 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrjura.tex: Korrekturen [Heiner]
+
+r2898 2018-01-26 08:18:26 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-footnotes.tex: Ligatur in
+ nicht verwendetem Text gebrochen
+
+r2897 2018-01-25 11:57:02 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: Korrekturen
+
+r2896 2018-01-25 10:23:54 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/expertpart.tex,
+ doc/ngerman/typearea.tex, doc/ngerman/authorpart.tex,
+ doc/ngerman/common-compatibility.tex, doc/ngerman/introduction.tex:
+ Korrekturen
+
+r2895 2018-01-24 12:02:37 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: Verwendung von
+ \OptionVName korrigiert
+
+r2894 2018-01-24 11:59:22 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: \OptionVName-Nutzung
+ korrigiert
+
+r2893 2018-01-24 11:44:29 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/common-parmarkup.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/common-footnotes.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/scrhack.tex, doc/ngerman/scrjura.tex,
+ doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-titles.tex: Index-Einträge nicht mit ~\PValue,
+ sondern mit ~\textKValue
+
+r2892 2018-01-24 11:26:46 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/typearea.tex: Paket-Indexeintrag
+
+r2891 2018-01-24 11:22:18 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex: Letzte
+ Änderungen korrigiert
+
+r2890 2018-01-24 11:21:05 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex:
+ Hauptindexeintrag für das Paket
+
+r2889 2018-01-24 11:20:28 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex:
+ Indexeintrag für das Paket
+
+r2888 2018-01-24 11:11:53 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex: Index
+ Eintrag für scrlayer korrekt einsortiert
+
+r2887 2018-01-24 11:06:00 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex: Tabelle
+ korrigiert um keine falschen Variablen-Einträge in den Index
+
+ zu verursachen
+
+r2886 2018-01-24 10:56:26 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: Index
+ Eintrag korrigiert
+
+r2885 2018-01-24 10:46:29 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: Seitenstile nicht fett
+
+r2884 2018-01-24 10:18:14 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: Zusätzliche
+ Index-Einträge für lco-Dateien
+
+r2883 2018-01-24 09:07:53 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: new keyword
+
+r2882 2018-01-24 08:56:56 +0100 kohm:
+
+ * doc/, doc/guide.bib: gaphics date update
+
+r2881 2018-01-23 20:13:20 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: Verweise
+ auf entfernten Anhang entfernt
+
+r2880 2018-01-23 11:31:32 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: Dokumentation
+ überarbeitet
+
+r2879 2018-01-23 11:31:02 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: Linkfehler korrigiert
+
+r2878 2018-01-23 09:34:47 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: Laden von LCOs bei
+ scrletter präzisiert
+
+r2877 2018-01-22 13:07:56 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: einige
+ Kürzungen und sprachliche Vereinfachungen
+
+r2876 2018-01-19 11:35:39 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ Kapitel überarbeitet
+
+r2875 2018-01-18 14:22:09 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ diverse Verbesserungen und Erweiterung der Verlinkung
+
+r2874 2018-01-18 12:23:37 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex: zwei weitere
+ Trennausnahmen
+
+r2873 2018-01-18 12:06:43 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex: neue
+ Trennausnahme
+
+r2872 2018-01-17 13:01:54 +0100 kohm:
+
+ * scrlayer-notecolumn.dtx: Lua replacement of \pdfmdfivesum added for
+ usage of lualatex
+
+r2871 2018-01-17 10:27:46 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea-experts.tex: leichte
+ Verbesserungen
+
+r2870 2018-01-17 09:33:25 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex:
+ Vollverlinkung
+
+r2869 2018-01-16 14:19:39 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/ngerman/scrlayer-scrpage.tex: diverse Hinweise zu scrpage2
+ verschoben
+
+r2868 2018-01-16 12:16:00 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex:
+ kleiner Tippfehler
+
+r2867 2018-01-16 11:43:11 +0100 kohm:
+
+ * TODO: missing English docu issue
+
+r2866 2018-01-16 11:41:41 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-headfootheight.tex: Option
+ autoenlargethispage
+
+r2865 2018-01-16 11:41:21 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/common-pagestylemanipulation.tex: weitere Verbesserungen
+ an der Anleitung
+
+r2864 2018-01-16 08:55:20 +0100 kohm:
+
+ * scrkernel-listsof.dtx: forgotten debug messages
+
+r2863 2018-01-15 12:29:20 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: Umbruchoptimierung
+
+r2862 2018-01-15 11:50:39 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex:
+ Einige Kürzungen und Präzisierungen
+
+r2861 2018-01-15 10:50:58 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-headfootheight.tex:
+ Wiederholungstext gekürzt
+
+r2860 2018-01-14 12:21:47 +0100 kohm:
+
+ * TODO: need docu for autoenlargeheadfoot
+
+r2859 2018-01-14 12:19:38 +0100 kohm:
+
+ * scrlayer-scrpage.dtx: new option autoenlargeheadfoot
+
+r2858 2018-01-11 11:21:51 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: Verbesserungen bei den
+ Erklärungen
+
+r2857 2018-01-11 08:15:39 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrlayer.tex: section about state of
+ development removed
+
+r2856 2018-01-10 09:26:15 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrhack.tex: Erklärung zum nomencl
+ Hack überarbeitet
+
+r2855 2018-01-10 08:32:08 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Quellcodeumbruch
+
+r2854 2018-01-10 07:45:36 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: link colors changed
+
+r2853 2018-01-09 12:35:34 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Kapitelüberarbeitung
+
+r2852 2018-01-09 09:42:28 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: einige Verbesserungen
+ an der Doku
+
+r2851 2018-01-09 08:41:11 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: additional keywords
+
+r2850 2018-01-09 08:39:59 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: additional keywords
+
+r2849 2018-01-08 13:31:04 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: diverse Verbesserungen
+ in der Doku
+
+r2848 2017-12-19 11:12:33 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrjura.tex: Doku von
+ \withoutparnumber verbessert
+
+r2847 2017-12-19 10:38:00 +0100 kohm:
+
+ * scrjura.dtx, doc/, doc/ngerman/, doc/ngerman/scrjura.tex: new
+ \withoutparnumber
+
+r2846 2017-12-15 09:47:24 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrwfile.tex: Vollverlinkung
+
+r2845 2017-12-15 09:47:01 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: \XeLaTeX
+
+r2844 2017-12-14 12:29:04 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex: einige Verbesserungen
+
+r2843 2017-12-14 11:08:46 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: Diverse Verbesserungen,
+ Umsortierungen, Anpassungen
+
+r2842 2017-12-14 09:02:53 +0100 kohm:
+
+ * doc/, doc/guide.bib: one more Oberdiek package and revision of
+ others
+
+r2841 2017-12-13 12:12:48 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: einige Passagen
+ verschlankt, andere erweitert
+
+r2840 2017-12-13 12:12:28 +0100 kohm:
+
+ * TODO: kleine Änderung
+
+r2839 2017-12-13 12:11:29 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: new keyword
+
+r2838 2017-12-13 10:25:24 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: an Stelle → anstelle
+
+r2837 2017-12-13 10:21:57 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: an Stelle → anstelle
+
+r2836 2017-12-13 10:21:03 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: an Stelle → anstelle
+
+r2835 2017-12-13 10:17:12 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: an Stelle →
+ anstelle
+
+r2834 2017-12-13 10:16:22 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex: an Stelle → anstelle
+
+r2833 2017-12-13 10:15:23 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: an Stelle → anstelle
+
+r2832 2017-12-13 10:13:35 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrjura.tex: an Stelle → anstelle
+
+r2831 2017-12-13 10:12:48 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: an Stelle
+ → anstelle
+
+r2830 2017-12-13 10:11:34 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-lists.tex: an Stelle →
+ anstelle
+
+r2829 2017-12-13 10:11:17 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex: an
+ Stelle → anstelle
+
+r2828 2017-12-13 10:09:14 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-footnotes.tex: an Stelle →
+ anstelle
+
+r2827 2017-12-13 10:05:13 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-fontsize.tex: an Stelle →
+ anstelle
+
+r2826 2017-12-11 09:20:20 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: new keyword
+
+r2825 2017-12-11 09:18:02 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrjura.tex: Einige Umstellungen in
+ der Formatierung
+
+r2824 2017-12-11 08:40:49 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: Umbruch im Quellcode
+
+r2823 2017-12-08 21:50:56 +0100 kohm:
+
+ * scrkernel-fonts.dtx: additional warning if an element becomes and
+ alias and vica versa
+
+r2822 2017-12-08 12:01:06 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrjura.tex:
+ Teilüberarbeitung der scrjura-Anleitung
+
+r2821 2017-12-08 11:55:09 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-textmarkup.tex: Deutliche
+ Überarbeitung für scrjura
+
+r2820 2017-12-08 10:27:49 +0100 kohm:
+
+ * scrjura.dtx: several fixes and new option "ClauseFont" for
+ \DeclareNewJuraEnvironment
+
+r2819 2017-12-08 10:24:32 +0100 kohm:
+
+ * scrkernel-fonts.dtx: \IfIsAliaskomafont fixed
+
+r2818 2017-12-08 09:31:53 +0100 kohm:
+
+ * scrkernel-basics.dtx: new \FamilyCSKey
+
+r2817 2017-12-08 09:18:04 +0100 kohm:
+
+ * scrkernel-fonts.dtx: new \IfIsAliaskomafont
+
+r2816 2017-12-08 08:37:47 +0100 kohm:
+
+ * scrjura.dtx: font alias Clause inside new environments fixed
+
+r2815 2017-12-08 08:10:55 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-options.tex: einige
+ Verbesserungen für scrextend auch für scrjura übernommen
+
+r2814 2017-12-07 12:45:04 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrextend.tex: Kapitel scrextend
+ überabreitet
+
+r2813 2017-12-07 12:43:10 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-lists.tex: kleine
+ Verbesserungen
+
+r2812 2017-12-07 12:36:47 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-dictum.tex:
+ Umbruchoptimierung
+
+r2811 2017-12-07 12:24:25 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-dictum.tex: kleinere
+ Verbesserungen
+
+r2810 2017-12-07 12:14:29 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-footnotes.tex: Beispiele in
+ Kapitel 3
+
+r2809 2017-12-07 11:43:47 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-interleafpage.tex: Für die
+ Beispiele wird auf Abschnitt 3.13 verwiesen
+
+r2808 2017-12-07 11:10:17 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex: kleinere
+ Verbesserungen
+
+r2807 2017-12-07 10:29:52 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-textmarkup.tex: Kürzung für
+ den Umbruch bei scrextend
+
+r2806 2017-12-07 10:03:09 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-fontsize.tex: kleine
+ Verbesserungen für scrextend
+
+r2805 2017-12-07 09:52:54 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-draftmode.tex: zusätzlichen
+ Hinweis bei scrextend eingefügt
+
+r2804 2017-12-07 09:34:03 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-compatibility.tex: kleinere
+ Verbesserungen zur Unterscheidung von Paket und Klasse,
+
+ keine veralteten Optionen bei scrextend
+
+r2803 2017-12-07 09:09:24 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-options.tex: geringfügige
+ Verkürzungen für scrextend
+
+r2802 2017-12-06 11:45:10 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scraddr.tex: Kosmetische
+ Verbesserungen
+
+r2801 2017-12-06 11:17:40 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrdatetime.tex: kleinere
+ Aktualisierungen
+
+r2800 2017-12-06 10:42:36 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: dimexpr and numexpr added to the keywords
+
+r2799 2017-12-06 10:27:11 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex: minimale
+ Randnotizverschiebung
+
+r2798 2017-12-06 10:06:36 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex:
+ Verlinkung für scrlayer-scrpage
+
+r2797 2017-12-05 13:18:41 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex: several
+ improvements
+
+r2796 2017-12-05 13:18:04 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex:
+ several improvements
+
+r2795 2017-12-05 12:37:56 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex:
+ das "definierten" war Unfug, denn man kann tatsächlich teilweise
+ auch
+ noch nicht definierte Seitenstile beeinflussen
+
+r2794 2017-12-05 09:05:38 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-textmarkup.tex: minimale
+ Anpassungen
+
+r2793 2017-12-05 08:37:04 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-headfootheight.tex:
+ zusätzliche Links
+
+r2792 2017-12-05 08:26:09 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-options.tex: Umbruch
+ verbessert
+
+r2791 2017-12-04 12:36:25 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: und noch
+ eine Vereinheitlichung
+
+r2790 2017-12-04 12:33:56 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: noch ein
+ paar Vereinheitlichungen bezüglich der Verzeichnisoptionen
+
+r2789 2017-12-04 09:59:43 +0100 kohm:
+
+ * scrkernel-basics.dtx: last change fixed
+
+r2788 2017-12-04 09:50:18 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex:
+ listof=standardlevel
+
+r2787 2017-12-04 09:48:18 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-marginpar.tex:
+ Umbruchkorrekturtext aktiviert
+
+r2786 2017-12-04 09:31:33 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex:
+ listof|bibliography|index=standardlevel
+
+r2785 2017-12-04 09:25:29 +0100 kohm:
+
+ * scrkernel-listsof.dtx: comma in book/report dependency moved to
+ avoid empty element in
+ scrartcl case
+
+r2784 2017-12-04 09:24:13 +0100 kohm:
+
+ * scrkernel-basics.dtx: ignore completely empty elements in numerical
+ key lists
+
+r2783 2017-12-04 09:10:46 +0100 kohm:
+
+ * scrkernel-listsof.dtx: new listof=standardlevel
+
+r2782 2017-12-04 08:47:52 +0100 kohm:
+
+ * scrkernel-index.dtx: same numbered-options as listof and
+ bibliography
+
+r2781 2017-12-04 08:31:14 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex:
+ listof=leftaligntextentries korrigiert
+
+r2780 2017-12-03 22:49:27 +0100 kohm:
+
+ * doc/, doc/linkalias.tex: new alias
+ desc:maincls-experts.cmd.the/Zaehler/
+
+r2779 2017-12-03 22:44:49 +0100 kohm:
+
+ * doc/, doc/linkalias.tex: aliases for
+ desc:maincls-experts.cmd.thepage and
+ desc:maincls-experts.cmd.pagemark
+
+r2778 2017-12-03 22:27:12 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex:
+ multiply-defined labels
+
+r2777 2017-12-03 22:22:51 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ Leerzeichen
+
+r2776 2017-12-03 22:22:02 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: Leerzeichen
+
+r2775 2017-12-03 22:21:33 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: Group Level Fehler
+
+r2774 2017-12-03 22:21:07 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/scrjura.tex: Leerzeichen
+
+r2773 2017-12-03 22:20:09 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-textmarkup.tex:
+ Quellcodeumbruch
+
+r2772 2017-12-03 22:17:46 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-interleafpage.tex:
+ Querverweise korrigiert
+
+r2771 2017-12-03 22:17:09 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-fontsize.tex: variablen Text
+ für scrextend korrigiert
+
+r2770 2017-12-03 21:17:05 +0100 kohm:
+
+ * doc/, doc/bin/, doc/bin/genhtmlidx.pl: adapted regular expressions
+ for new perl
+
+r2769 2017-12-03 11:56:06 +0100 kohm:
+
+ * scrkernel-bibliography.dtx: bibliography=notoc and
+ bibliography=totoc in scrartcl fixed
+
+r2768 2017-12-01 12:47:27 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: Diverse
+ Modernisierungen und Anpassungen für scrletter
+
+r2767 2017-12-01 11:55:23 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: Es wird Zeit
+ die Spuren von scrlettr zu beseitigen …
+
+r2766 2017-12-01 11:04:31 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-lists.tex: Anpassungen für
+ scrletter
+
+r2765 2017-12-01 10:24:10 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-footnotes.tex: Anpassungen
+ für scrletter
+
+r2764 2017-12-01 09:41:54 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-interleafpage.tex:
+ Anpassungen an scrletter
+
+r2763 2017-11-30 15:53:09 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlttr2-experts.tex: diverse Verbesserungen zur besseren
+ Integration von scrletter
+
+r2762 2017-11-30 12:57:51 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-parmarkup.tex: Anpassungen
+ für scrletter
+
+r2761 2017-11-29 14:35:28 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrlttr2-experts.tex: diverse Verbesserungen für
+ scrletter
+
+r2760 2017-11-29 12:43:49 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-textmarkup.tex: Anpassungen
+ für scrletter
+
+r2759 2017-11-29 12:23:23 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-fontsize.tex: Anpassungen
+ für scrletter
+
+r2758 2017-11-29 10:43:48 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-typearea.tex: Anpassung für
+ scrletter
+
+r2757 2017-11-29 10:41:01 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-draftmode.tex: Anpassungen
+ für scrletter
+
+r2756 2017-11-29 10:37:42 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-compatibility.tex: missing
+ empty argument added
+
+r2755 2017-11-29 10:28:57 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-compatibility.tex: scrletter
+ behandelt
+
+r2754 2017-11-29 10:08:52 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-options.tex: fehlendes
+ Leerzeichen ergänzt
+
+r2753 2017-11-29 09:58:32 +0100 kohm:
+
+ * scrkernel-pseudolengths.dtx: several \glueexpr added to improve
+ pseudo lengths
+
+r2752 2017-11-28 13:04:55 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex:
+ zusätzlicher Text für die Buchfassung
+
+r2751 2017-11-28 12:18:12 +0100 kohm:
+
+ * doc/, doc/guide.bib: imakeidx added
+
+r2750 2017-11-28 11:58:26 +0100 kohm:
+
+ * doc/, doc/guide.bib: supertabular added
+
+r2749 2017-11-28 11:58:07 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex: kosmetische
+ Änderungen
+
+r2748 2017-11-28 11:57:32 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: diverse
+ Korrekturen und Verbesserungen
+
+r2747 2017-11-28 11:48:19 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: tiny source formatting change
+
+r2746 2017-11-28 11:03:16 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-parmarkup.tex: \important[i]
+ beseitigt
+
+r2745 2017-11-28 10:44:00 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex: \important
+ without i
+
+r2744 2017-11-28 10:40:32 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex: \important
+ verbessert
+
+r2743 2017-11-27 16:29:36 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ Tippfehler und Stilkorrektur
+
+r2742 2017-11-27 16:28:15 +0100 kohm:
+
+ * TODO: undefined reference issue
+
+r2741 2017-11-27 12:02:02 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-dictum.tex, doc/ngerman/common-lists.tex: Diverse
+ Verbesserungen
+
+r2740 2017-11-27 10:05:05 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: serveral keywords fixed
+
+r2739 2017-11-27 09:49:28 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: diverse
+ Verbesserungen
+
+r2738 2017-11-27 09:30:16 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: diverse
+ Verbesserungen
+
+r2737 2017-11-24 12:30:24 +0100 kohm:
+
+ * doc/, doc/guide.bib, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex: einige Verbesserungen und
+ kleinere Erweiterungen
+
+r2736 2017-11-24 09:46:04 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-footnotes.tex: Erklärungen
+ teilweise verschoben
+
+r2735 2017-11-24 09:45:11 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: additional keywords
+
+r2734 2017-11-24 09:06:12 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-interleafpage.tex: Umbruch
+ für die Buchversion verbessert, Erklärungen gestrafft
+
+r2733 2017-11-23 13:34:18 +0100 kohm:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex: zusätzliche Informationen
+ eingefügt
+
+r2732 2017-11-23 10:47:57 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-parmarkup.tex: zusätzliche
+ Marginalien
+
+r2731 2017-11-23 10:04:09 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: fixed default font setting for page numbers
+ in ToC of level chapter or
+ section (if chapter does not exist)
+
+r2730 2017-11-22 10:41:56 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex:
+ Dokumentation an einige Neuerungen angepasst und Umbruch für die
+
+ Buchausgabe verbessert
+
+r2729 2017-11-22 10:40:43 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: additional keywords
+
+r2728 2017-11-21 13:13:57 +0100 kohm:
+
+ * TODO: new missing translation
+
+r2727 2017-11-21 13:13:38 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: minimale,
+ stilistische Verbesserung
+
+r2726 2017-11-21 13:12:36 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex: \frontispiece und
+ diverse Verbesserungen
+
+r2725 2017-11-21 12:50:05 +0100 kohm:
+
+ * scrkernel-title.dtx: new \frontispiece
+
+r2724 2017-11-21 12:07:02 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex: zusätzliche
+ Marginalien
+
+r2723 2017-11-21 11:43:12 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-textmarkup.tex:
+ Umbruchoptimierung
+
+r2722 2017-11-21 11:24:32 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-fontsize.tex: Unklarheiten
+ beseitigt
+
+r2721 2017-11-21 11:04:37 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-typearea.tex: Umbruch
+ verbessert, Seitenzahl hinzugefügt
+
+r2720 2017-11-21 11:01:09 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea-experts.tex:
+ Ligaturauflösung
+
+r2719 2017-11-21 11:00:29 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: Ligaturauflösung
+
+r2718 2017-11-21 10:59:56 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex:
+ Ligaturauflösung
+
+r2717 2017-11-21 10:57:08 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex:
+ Ligaturauflösung
+
+r2716 2017-11-21 10:55:31 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex:
+ Ligaturauflösung
+
+r2715 2017-11-21 10:55:12 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Ligaturauflösung
+
+r2714 2017-11-21 10:52:53 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex:
+ Ligaturauf"|lösung
+
+r2713 2017-11-21 10:41:42 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-draftmode.tex: documentation
+ of new option overfullrule
+
+r2712 2017-11-21 10:27:02 +0100 kohm:
+
+ * scrkernel-miscellaneous.dtx: new option overfullrule
+
+r2711 2017-11-21 10:06:01 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-options.tex: Wiederholung
+ leicht gekürzt
+
+r2710 2017-11-21 10:05:38 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-compatibility.tex: Umbruch
+ verbessert
+
+r2709 2017-11-21 09:03:52 +0100 kohm:
+
+ * tocbasic.dtx: tocbibind warning added
+
+r2708 2017-11-21 08:03:54 +0100 kohm:
+
+ * scrkernel-miscellaneous.dtx: tocbibind warning
+
+r2707 2017-11-20 12:43:38 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex:
+ missing option descriptions added
+
+r2706 2017-11-20 11:38:54 +0100 kohm:
+
+ * TODO, tocbasic.dtx, doc/, doc/ngerman/, doc/ngerman/tocbasic.tex:
+ new options "setup" and "unset" for \DeclareNewTOC
+
+r2705 2017-11-16 15:42:14 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: Tippfehler [gefunden
+ von Elke]
+
+r2704 2017-11-16 09:19:11 +0100 kohm:
+
+ * TODO: less cryptic entry
+
+r2703 2017-11-16 09:17:02 +0100 kohm:
+
+ * TODO: the classes do use \DeclareNewTOC for lof and lot
+
+r2702 2017-11-16 09:15:55 +0100 kohm:
+
+ * scrkernel-basics.dtx: the name and the value of the original options
+ are easily available inside @else@ option
+
+r2701 2017-11-15 15:02:01 +0100 kohm:
+
+ * scrkernel-floats.dtx, TODO, doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex: new \setcaptionalignment
+
+r2700 2017-11-15 08:19:59 +0100 kohm:
+
+ * scrkernel-notepaper.dtx, scrkernel-floats.dtx,
+ scrkernel-letterclassoptions.dtx, TODO, scrkernel-miscellaneous.dtx:
+ \unskip\strut replaced by new \scr@endstrut
+
+r2699 2017-11-14 15:39:18 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: Diverse kleinere und
+ größere Verbesserungen und Anpassungen an aktuelle
+ KOMA-Script-Versionen
+
+r2698 2017-11-14 15:04:34 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: \XeTeX added
+
+r2697 2017-11-14 12:59:35 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-options.tex, doc/english/,
+ doc/english/common-options.tex: note about the scope of \KOMAoption
+ and \KOMAoptions added
+
+r2696 2017-11-14 10:14:12 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/introduction.tex: revert last
+ changes
+
+r2695 2017-11-14 10:06:55 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/introduction.tex: Anpassung an die
+ lange vergangene Zeit
+
+r2694 2017-11-14 09:47:32 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/introduction.tex, doc/english/,
+ doc/english/introduction.tex: Same sections in German and English
+ guide
+
+r2693 2017-11-13 20:37:03 +0100 kohm:
+
+ * TODO: new issue
+
+r2692 2017-11-13 14:58:12 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-lists.tex: Links improved
+
+r2691 2017-11-13 14:09:40 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: righttopmark etc. added
+
+r2690 2017-11-13 13:04:34 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: fix: \FloatStyle in \PageStyle replaced by
+ \PageStyle
+
+r2689 2017-11-13 12:58:55 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-footnotes.tex, doc/ngerman/common-textmarkup.tex:
+ references fixed
+
+r2688 2017-11-13 10:15:20 +0100 kohm:
+
+ * doc/, doc/guide.bib, doc/ngerman/,
+ doc/ngerman/scrlttr2-experts.tex, doc/english/,
+ doc/english/scrlttr2-experts.tex: scrlettr linked to
+ koma-script-obsolete
+
+r2687 2017-11-13 09:36:26 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: \textnote inside \item
+ moved outside
+
+r2686 2017-11-13 09:35:20 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: \textnote inside
+ desclist deactivated
+
+r2685 2017-10-13 16:17:16 +0200 kohm:
+
+ * scrkernel-bibliography.dtx: new definition of \bibliography@heding
+ used by \bib@heading
+
+r2684 2017-10-13 15:35:13 +0200 kohm:
+
+ * scrkernel-index.dtx, scrlayer.dtx, scrkernel-bibliography.dtx,
+ scrmain.ins: \@mkright, \@mkleft, \@mkdouble added to and used by the
+ KOMA-Script classes
+
+r2683 2017-10-10 16:10:02 +0200 kohm:
+
+ * scrkernel-floats.dtx, scrkernel-listsof.dtx, tocbasic.dtx: major
+ change: table/table* reimplementation using \DeclareNewTOC
+
+r2682 2017-10-10 14:57:37 +0200 kohm:
+
+ * scrkernel-floats.dtx, scrkernel-listsof.dtx, tocbasic.dtx: major
+ change: figure/figure* reimplementation using \DeclareNewTOC
+
+r2681 2017-09-28 07:45:58 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/english/, doc/english/scrbookreportarticle-experts.tex:
+ \DeclareSectionCommand attibute innerskip of chapter is
+ 0.5\baselineskip
+
+r2680 2017-09-28 07:45:12 +0200 kohm:
+
+ * scrkernel-paragraphs.dtx, tocbasic.dtx: typo fix
+
+r2679 2017-09-28 07:44:43 +0200 kohm:
+
+ * TODO: new nice to have
+
+r2678 2017-09-23 08:51:25 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrwfile.tex, doc/english/,
+ doc/english/scrwfile.tex: reference fixed
+
+r2677 2017-09-13 14:12:17 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: Typofix [TK]
+
+r2676 2017-09-07 17:43:34 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex:
+ \partlineswithprefixformat added
+
+r2675 2017-09-07 16:42:04 +0200 kohm:
+
+ * scrkernel-sections.dtx: new \partlineswithprefixformat
+
+r2674 2017-09-07 11:35:17 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.25 BETA
+
+r2673 2017-09-07 10:22:59 +0200 kohm:
+
+ * releaselist.txt: prepared for release v3.24
+
+r2672 2017-08-20 16:07:42 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex: verhunzte
+ Formulierung seit der Umstellung der common-Dateien wieder
+ korrigiert
+
+r2671 2017-08-20 13:48:13 +0200 kohm:
+
+ * TODO: several nice-to-have added
+
+r2670 2017-08-11 11:31:30 +0200 kohm:
+
+ * scrlayer-notecolumn.dtx: consecutive \clearpage followed by breaking
+ notes result in flushing
+ to much notes
+
+r2669 2017-08-10 13:11:11 +0200 kohm:
+
+ * doc/, doc/scrpage2.tex: don't use package filecontents
+
+r2667 2017-08-10 13:04:15 +0200 kohm:
+
+ * doc/, doc/scrpage2.tex: \Xmp… added
+
+r2666 2017-08-10 12:24:54 +0200 kohm:
+
+ * scrlayer-notecolumn.dtx: fix: consecutive \clearpage result in
+ flushing to much notes
+
+r2665 2017-08-08 18:17:31 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex, doc/english/,
+ doc/english/guide-english.tex: unused strings removed; dedication
+ changed
+
+r2664 2017-08-08 14:38:15 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/typearea.tex: typofix
+
+r2663 2017-08-08 11:57:30 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/tocbasic.tex, doc/english/,
+ doc/english/tocbasic.tex: issue solved by changing the manual
+
+r2662 2017-08-08 11:47:52 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex,
+ doc/ngerman/typearea.tex, doc/english/, doc/english/scrlayer.tex,
+ doc/english/typearea.tex: additional crossreferences and index entries
+ related to setspace.sty added
+
+r2661 2017-07-24 21:45:16 +0200 kohm:
+
+ * scrkernel-typearea.dtx, scrmain.ins: scrkernel-typearea.dtx
+ completely reorganized and mainly translated into English
+
+r2660 2017-07-24 21:31:57 +0200 kohm:
+
+ * scrhack.dtx: removed commands now defined by scrdoc.cls
+
+r2659 2017-07-23 19:42:18 +0200 kohm:
+
+ * scrdoc.dtx: change log generation fixed
+
+r2658 2017-06-25 16:32:43 +0200 kohm:
+
+ * scrkernel-miscellaneous.dtx: new: possibility to diable package
+ usage warnings
+
+r2657 2017-06-24 13:28:34 +0200 kohm:
+
+ * releaselist.txt: missing v3.23 added
+
+r2656 2017-06-23 09:44:28 +0200 kohm:
+
+ * TODO: issue dynnumwidth vs. numwidth
+
+r2655 2017-06-23 09:35:45 +0200 kohm:
+
+ * scrkernel-sections.dtx: fix: defaults for new part commands
+
+r2654 2017-06-23 09:22:23 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-options.tex, doc/english/,
+ doc/english/common-options.tex: typofixes [Elke]
+
+r2653 2017-06-03 14:23:11 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/tocbasic.tex: missing \ added
+
+r2652 2017-05-31 11:06:42 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: documentation of
+ option reference for the extended optional argument of a section
+ command
+
+r2651 2017-05-31 10:02:18 +0200 kohm:
+
+ * scrkernel-sections.dtx: trace information for extended optional
+ argument `reference' fixed
+
+r2650 2017-05-31 10:01:21 +0200 kohm:
+
+ * scrkernel-sections.dtx: trace informatinon for extended optional
+ argument `reference' fixed
+
+r2649 2017-05-29 11:39:43 +0200 kohm:
+
+ * scrkernel-language.dtx, scrjura.dtx, scrtime.dtx: languages
+ usenglish and ukenglish
+
+r2648 2017-05-29 08:20:06 +0200 kohm:
+
+ * TODO: new nive to have (obsolete \bprot@dottedtocline)
+
+r2647 2017-05-23 07:42:22 +0200 kohm:
+
+ * scrlayer-scrpage.dtx: improved \headheight and \footheight warning
+
+r2646 2017-05-22 21:07:35 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex, doc/english/,
+ doc/english/scrlayer.tex: new global option singlespacing
+
+r2645 2017-05-22 21:04:42 +0200 kohm:
+
+ * scrlayer.dtx, scrlayer-scrpage.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrlayer.tex, doc/english/, doc/english/scrlayer.tex: new
+ global option singlespacing
+
+r2644 2017-05-12 13:41:47 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/english/, doc/english/tocbasic.tex,
+ doc/english/scrbookreportarticle-experts.tex: typofix
+
+r2643 2017-05-11 15:48:59 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrextend.tex: typofix
+
+r2642 2017-05-10 10:48:59 +0200 kohm:
+
+ * README.in/: note about standard classes added
+
+r2641 2017-05-08 11:47:04 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrjura.tex, doc/english/,
+ doc/english/scrjura.tex: scrjura is not longer beta
+
+r2640 2017-05-08 11:36:55 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-tocstyle.dtx,
+ scrkernel-compatibility.dtx, scrkernel-title.dtx, scrlogo.dtx,
+ scrkernel-notepaper.dtx, scrkernel-paragraphs.dtx,
+ scrkernel-floats.dtx, scrkernel-language.dtx,
+ scrkernel-variables.dtx, scrkernel-footnotes.dtx,
+ scrkernel-index.dtx, scrlayer.dtx, scrkernel-circularletters.dtx,
+ scrkernel-bibliography.dtx, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-listsandtabulars.dtx,
+ scrjura.dtx, scrkernel-listsof.dtx, scrkernel-letterclassoptions.dtx,
+ scrkernel-pseudolengths.dtx, scrhack.dtx, scrpage.dtx,
+ scrlayer-notecolumn.dtx, scrkernel-sections.dtx, japanlco.dtx,
+ scrkernel-miscellaneous.dtx, scrtime.dtx, scrlayer-scrpage.dtx,
+ scrkernel-fonts.dtx, scrextend.dtx, scrlfile.dtx, tocbasic.dtx,
+ scrkernel-basics.dtx: version information for several dtx files
+ changed due to misinterpretation of a single distributor
+
+r2639 2017-05-08 08:54:21 +0200 kohm:
+
+ * scrlayer.dtx, TODO: \layer… macros using \dimexpr
+
+r2638 2017-05-06 19:17:09 +0200 kohm:
+
+ * Makefile: www.ctan.org replaced by mirror.ctan.org
+
+r2637 2017-05-06 19:15:01 +0200 kohm:
+
+ * scrlfile.dtx: standalone manual removed
+
+r2636 2017-05-06 19:03:59 +0200 kohm:
+
+ * scrstrip.inc: LaTeX link changed; Date 2017
+
+r2635 2017-05-06 18:53:59 +0200 kohm:
+
+ * README.in/: Requires changed
+
+r2634 2017-05-06 17:48:55 +0200 kohm:
+
+ * scrkernel-fonts.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: more robust
+ reimplementation of \use…ofkomafont
+
+r2633 2017-05-05 19:05:27 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/english/, doc/english/scrbookreportarticle-experts.tex:
+ \addtokomafontonearglist
+
+r2632 2017-05-05 18:41:53 +0200 kohm:
+
+ * scrkernel-fonts.dtx: new \scr@komafontonearglist
+
+r2631 2017-05-04 10:22:57 +0200 kohm:
+
+ * scrlayer-scrpage.dtx: improved bidi compatibility
+
+r2630 2017-05-04 10:17:15 +0200 kohm:
+
+ * scrlayer.dtx: copyright date fixed
+
+r2629 2017-05-04 10:14:57 +0200 kohm:
+
+ * scrkernel-basics.dtx: new \IfRTL and \IfLTR
+
+r2628 2017-05-02 12:18:33 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: Tippfehler
+
+r2627 2017-04-25 14:38:12 +0200 kohm:
+
+ * scrkernel-sections.dtx: \scr@chapter@innerskip
+
+r2626 2017-04-25 14:26:33 +0200 kohm:
+
+ * scrkernel-sections.dtx: new \DeclareSectionCommand default fixed
+
+r2625 2017-04-25 10:36:29 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/english/, doc/english/scrbookreportarticle-experts.tex:
+ documentation of new needs/non-needs
+
+r2624 2017-04-25 10:18:13 +0200 kohm:
+
+ * scrkernel-sections.dtx: several errors replaced by default + warning
+
+r2623 2017-04-22 16:18:50 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ KOMA-Script 3.24 BETA
+
+r2622 2017-04-22 16:16:15 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbase.tex, doc/english/,
+ doc/english/scrbase.tex: star variant of \AtEndOfFamilyOptions
+
+r2621 2017-04-22 15:44:17 +0200 kohm:
+
+ * scrlayer.dtx: missing comment
+
+r2620 2017-04-22 15:43:52 +0200 kohm:
+
+ * scrlayer.dtx: bidi code added
+
+r2619 2017-04-13 09:48:05 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/common-footnotes.tex,
+ doc/english/, doc/english/common-footnotes.tex: documentation of
+ \raggedfootnotes
+
+r2618 2017-04-13 09:47:38 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea-experts.tex,
+ doc/ngerman/typearea.tex, doc/english/,
+ doc/english/typearea-experts.tex, doc/english/typearea.tex: influence
+ of options areasetadvanced, footlines and footheight to \areaset
+
+r2617 2017-04-03 15:56:55 +0200 kohm:
+
+ * scrkernel-typearea.dtx: Somehow to strong warning replaced by an
+ info only
+
+r2616 2017-04-03 09:04:10 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex, doc/english/,
+ doc/english/tocbasic.tex: Typofix [Elke]
+
+r2615 2017-03-31 12:00:24 +0200 kohm:
+
+ * Makefile, scrhack.dtx, doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/scrhack.tex, doc/english/, doc/english/scrhack.tex: new
+ scrhack to extend nomencl
+
+r2614 2017-03-27 10:13:25 +0200 kohm:
+
+ * TODO: docu issue \raggedfootnote
+
+r2613 2017-03-27 10:12:13 +0200 kohm:
+
+ * scrkernel-footnotes.dtx: new \raggedfootnote
+
+r2612 2017-03-27 10:08:30 +0200 kohm:
+
+ * scrkernel-listsof.dtx: checksum fixed
+
+r2611 2017-03-27 10:06:52 +0200 kohm:
+
+ * scrkernel-sections.dtx: checksum fixed
+
+r2610 2017-03-24 15:20:20 +0100 kohm:
+
+ * scrkernel-listsof.dtx, scrkernel-sections.dtx: usage of \ext@figure
+ and \ext@table instead of lof and lot
+
+r2609 2017-03-24 15:14:45 +0100 kohm:
+
+ * scrkernel-sections.dtx: improved minitoc code to not use lot and lof
+ but \ext@table and \ext@figure
+
+r2608 2017-03-22 09:50:43 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-compatibility.tex,
+ doc/english/, doc/english/common-compatibility.tex: missing \DescRef
+
+r2607 2017-03-03 12:19:29 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: almost nothing changed
+
+r2606 2017-03-03 11:39:16 +0100 kohm:
+
+ * scrkernel-typearea.dtx: wrong reaction to footsepline
+
+r2605 2017-02-23 20:27:27 +0100 kohm:
+
+ * scrkernel-miscellaneous.dtx: load scrextend if needed
+
+r2604 2017-02-23 20:25:14 +0100 kohm:
+
+ * scrkernel-letterclassoptions.dtx: usage of
+ \ProvideUnknownPaperSizeError delayed
+
+r2603 2017-02-23 19:53:42 +0100 kohm:
+
+ * scrkernel-miscellaneous.dtx: improved last fix
+
+r2602 2017-02-23 19:50:51 +0100 kohm:
+
+ * scrkernel-miscellaneous.dtx: fix \is@thispageodd@setlabel resets
+ itself
+
+r2601 2017-02-23 17:26:09 +0100 kohm:
+
+ * scrkernel-basics.dtx: space mistake fixed
+
+r2600 2017-02-23 13:07:58 +0100 kohm:
+
+ * scrkernel-bibliography.dtx, scrjura.dtx, scrkernel-listsof.dtx,
+ tocstyle.dtx, tocbasic.dtx: indirect toc extension
+
+r2599 2017-02-22 12:09:23 +0100 kohm:
+
+ * scrkernel-notepaper.dtx, scrkernel-typearea.dtx,
+ scrkernel-letterclassoptions.dtx, scrmain.ins,
+ scrkernel-miscellaneous.dtx: scrletter.sty can be used not only using
+ a KOMA-Script class. Nevertheless, using a KOMA-Script class is
+ still recommended
+
+r2598 2017-02-22 09:33:19 +0100 kohm:
+
+ * scrkernel-typearea.dtx: improved identification comments
+
+r2597 2017-02-22 09:19:52 +0100 kohm:
+
+ * scrkernel-typearea.dtx: copyright message removed
+
+r2596 2017-02-22 08:45:45 +0100 kohm:
+
+ * scrkernel-compatibility.dtx, scrkernel-typearea.dtx, scrmain.ins:
+ new init for scrkernel-compatibility.dtx
+
+r2595 2017-02-17 12:39:37 +0100 kohm:
+
+ * scrkernel-basics.dtx: \AtEndOfFamilyOptions improved
+
+r2594 2017-02-16 20:31:24 +0100 kohm:
+
+ * scrkernel-basics.dtx: fix: option recurse
+
+r2593 2017-02-16 20:26:03 +0100 kohm:
+
+ * doc/, doc/plength.dtx: deprecated option replaced
+
+r2592 2017-02-16 17:56:10 +0100 kohm:
+
+ * scrkernel-version.dtx, scrkernel-title.dtx, scrlogo.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, scrkernel-footnotes.dtx, scrkernel-index.dtx,
+ scrkernel-bibliography.dtx, scrkernel-pagestyles.dtx,
+ scrkernel-listsandtabulars.dtx, scrjura.dtx, scrkernel-listsof.dtx,
+ scrhack.dtx, scrkernel-sections.dtx, scrkernel-miscellaneous.dtx,
+ scrkernel-fonts.dtx, scrextend.dtx, scrlfile.dtx, tocbasic.dtx:
+ internal usage of deprecated options eliminated
+
+r2591 2017-02-16 17:35:11 +0100 kohm:
+
+ * Makefile.baseinit: make optimization
+
+r2590 2017-02-16 15:55:25 +0100 kohm:
+
+ * scrkernel-basics.dtx: checksum fixed and change comment added
+
+r2589 2017-02-16 15:04:51 +0100 kohm:
+
+ * TODO: issue remove, missing docu note added
+
+r2588 2017-02-16 14:50:14 +0100 kohm:
+
+ * scrkernel-basics.dtx: new star variant \AtEndOfFamilyOptions
+
+r2587 2017-02-16 13:40:51 +0100 kohm:
+
+ * scrmain.ins, scrkernel-basics.dtx: nested \FamilyOptions fixed
+
+r2586 2017-02-16 10:10:27 +0100 kohm:
+
+ * scrkernel-basics.dtx: \FamilyExecuteOptions uses the correct after
+ hook
+
+r2585 2017-02-16 09:57:46 +0100 kohm:
+
+ * TODO: \AtEndOfFamilyOptions issue
+
+r2584 2017-02-14 07:39:21 +0100 kohm:
+
+ * scrkernel-basics.dtx: fix: \ifdvioutput with luatex >= 0.85
+
+r2583 2017-02-08 20:39:06 +0100 kohm:
+
+ * scrlayer-notecolumn.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrlayer-notecolumn.tex, doc/english/,
+ doc/english/scrlayer-notecolumn.tex: new star variant \makenote*
+
+r2582 2017-02-08 19:40:25 +0100 kohm:
+
+ * scrlayer-notecolumn.dtx: restore \label, \index, \glossary in notes
+
+r2581 2017-02-06 08:28:26 +0100 kohm:
+
+ * scrkernel-miscellaneous.dtx: minitoc warning not within scrextend
+
+r2580 2017-02-04 14:39:52 +0100 kohm:
+
+ * scrkernel-miscellaneous.dtx: improved minitoc workaround
+ deactivation message
+
+r2579 2017-02-04 14:30:31 +0100 kohm:
+
+ * scrkernel-sections.dtx, scrkernel-miscellaneous.dtx: workaround for
+ one of the problems using minitoc
+
+r2578 2017-02-04 13:18:09 +0100 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.23 BETA
+
+r2577 2017-02-01 07:33:09 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-options.tex: Fehlender
+ Halbsatz ergänzt [HV]
+
+r2576 2017-01-30 20:46:35 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/common-lists.tex: Roald Dahl's poem
+ replaced by Emma Lazarus' sonnet
+
+r2575 2017-01-16 09:00:06 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/preface.tex: file date
+
+r2574 2017-01-16 08:56:35 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/preface.tex: new German preface
+
+r2573 2017-01-16 07:48:29 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/preface.tex: Note about scrjura
+ changed
+
+r2572 2017-01-15 12:04:53 +0100 kohm:
+
+ * releaselist.txt: release 3.22
+
+r2571 2017-01-03 14:04:47 +0100 kohm:
+
+ * scrkernel-footnotes.dtx: new footnote text output mechanism
+
+r2570 2017-01-02 13:30:07 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbase.tex, doc/ngerman/common-marginpar.tex,
+ doc/ngerman/scrlayer-notecolumn-example.tex,
+ doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/ngerman/common-parmarkup.tex, doc/ngerman/guide-ngerman.tex,
+ doc/ngerman/common-fontsize.tex,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/expertpart.tex,
+ doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/common-interleafpage.tex,
+ doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/common-headfootheight.tex, doc/ngerman/scrdatetime.tex,
+ doc/ngerman/adrconvnote.tex, doc/ngerman/common-dictum.tex,
+ doc/ngerman/common-options.tex, doc/ngerman/common-footnotes.tex,
+ doc/ngerman/scrextend.tex, doc/ngerman/common-lists.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/common-draftmode.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/scrhack.tex, doc/ngerman/scrlayer.tex,
+ doc/ngerman/scrjura.tex, doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-pagestylemanipulation.tex,
+ doc/ngerman/common-oddorevenpage.tex, doc/ngerman/authorpart.tex,
+ doc/ngerman/scrlfile.tex, doc/ngerman/common-titles.tex,
+ doc/ngerman/common-compatibility.tex,
+ doc/ngerman/common-typearea.tex, doc/ngerman/introduction.tex,
+ doc/ngerman/preface.tex, doc/ngerman/scrwfile.tex,
+ doc/ngerman/scraddr.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbase.tex, doc/english/common-marginpar.tex,
+ doc/english/scrlayer-scrpage-experts.tex,
+ doc/english/common-parmarkup.tex, doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/expertpart.tex,
+ doc/english/guide-english.tex, doc/english/scrlayer-notecolumn.tex,
+ doc/english/common-interleafpage.tex,
+ doc/english/scrlayer-scrpage.tex,
+ doc/english/common-headfootheight.tex, doc/english/scrdatetime.tex,
+ doc/english/adrconvnote.tex, doc/english/common-dictum.tex,
+ doc/english/japanlco.tex, doc/english/common-options.tex,
+ doc/english/common-footnotes.tex, doc/english/scrextend.tex,
+ doc/english/common-lists.tex, doc/english/tocbasic.tex,
+ doc/english/common-draftmode.tex, doc/english/scrlttr2-experts.tex,
+ doc/english/common-textmarkup.tex, doc/english/scrhack.tex,
+ doc/english/scrlayer.tex, doc/english/scrjura.tex,
+ doc/english/typearea.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-pagestylemanipulation.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/authorpart.tex,
+ doc/english/scrlfile.tex, doc/english/common-titles.tex,
+ doc/english/common-compatibility.tex,
+ doc/english/common-typearea.tex, doc/english/introduction.tex,
+ doc/english/preface.tex, doc/english/scrwfile.tex,
+ doc/english/scraddr.tex: changed copyright and translation date
+
+r2569 2017-01-02 13:27:16 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea-experts.tex, doc/english/,
+ doc/english/typearea-experts.tex: docu of options usegeometry and
+ areasetadvanced
+
+r2568 2016-12-31 13:08:29 +0100 kohm:
+
+ * TODO, doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrlayer-notecolumn.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/common-dictum.tex,
+ doc/english/common-footnotes.tex, doc/english/common-lists.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/common-textmarkup.tex,
+ doc/english/scrjura.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-titles.tex: labels for and links to font elements
+
+r2567 2016-12-28 18:23:17 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/common-footnotes.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/scrjura.tex,
+ doc/english/common-pagestylemanipulation.tex: command renamed
+
+r2566 2016-12-28 18:22:56 +0100 kohm:
+
+ * TODO, doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/common-dictum.tex,
+ doc/ngerman/common-footnotes.tex, doc/ngerman/common-lists.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/scrjura.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-pagestylemanipulation.tex,
+ doc/ngerman/common-titles.tex: Links für Font-Elemente
+
+r2565 2016-12-21 18:25:47 +0100 kohm:
+
+ * scrkernel-sections.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: chapter style commands
+ respect positive beforeskip values (indent of following paragraph)
+
+r2564 2016-12-21 11:43:41 +0100 kohm:
+
+ * scrkernel-notepaper.dtx: fix: font changing of toname or toaddress
+ has to be restricted to
+ toname or toaddress
+
+r2563 2016-12-15 16:06:06 +0100 kohm:
+
+ * scrkernel-notepaper.dtx: missing * in \cc added to print ccseparator
+ only if name is not empty
+
+r2562 2016-12-07 10:15:31 +0100 kohm:
+
+ * scrlayer.dtx: prepared for classes without \section or \subsection
+
+r2561 2016-12-05 19:06:33 +0100 kohm:
+
+ * doc/, doc/bin/, doc/bin/genhtmlidx.pl: option index improved
+
+r2560 2016-12-05 18:40:41 +0100 kohm:
+
+ * scrkernel-sections.dtx: new warning if
+ \begin{appendix}...\end{appendix} is used instead of
+
+ \appendix
+
+r2559 2016-12-02 09:03:11 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: missing \relax added to fix dynnumwidth
+ feature
+
+r2558 2016-12-01 12:28:35 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrlttr2-experts.tex: some links
+ in and into chapter 22
+
+r2557 2016-12-01 11:51:19 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/tocbasic.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex, doc/english/tocbasic.tex,
+ doc/english/scrbookreportarticle-experts.tex: some links in and into
+ chapter 21
+
+r2556 2016-12-01 11:16:05 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/typearea-experts.tex, doc/ngerman/typearea.tex,
+ doc/english/, doc/english/scrlayer-notecolumn.tex: some links in and
+ into chapter 20
+
+r2555 2016-12-01 11:01:34 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex,
+ doc/english/, doc/english/scrlayer-notecolumn.tex: serveral links in
+ and into chapter 19
+
+r2554 2016-12-01 10:49:52 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex, doc/english/,
+ doc/english/scrlayer.tex: serveral links in and into chapter 17
+
+r2553 2016-11-30 10:47:15 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-pagestylemanipulation.tex,
+ doc/ngerman/scrwfile.tex, doc/english/, doc/english/tocbasic.tex,
+ doc/english/typearea.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-pagestylemanipulation.tex: serveral links (not
+ only) in and into chapter 15
+
+r2552 2016-11-28 10:48:11 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrwfile.tex, doc/english/,
+ doc/english/tocbasic.tex, doc/english/scrwfile.tex: serveral links in
+ and into chapter 14
+
+r2551 2016-11-28 09:26:33 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex, doc/english/,
+ doc/english/scrlfile.tex: serveral links in chapter 13
+
+r2550 2016-11-28 09:10:02 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/scrjura.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbase.tex, doc/english/tocbasic.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/scrjura.tex,
+ doc/english/scrbookreportarticle-experts.tex: serveral links in and
+ into chapter 12
+
+r2549 2016-11-28 08:17:57 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrjura.tex, doc/english/,
+ doc/english/scrjura.tex: serveral links in chapter 11
+
+r2548 2016-11-27 12:48:39 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrextend.tex, doc/english/,
+ doc/english/scrextend.tex: serveral links (not only) into chapter 10
+
+r2547 2016-11-27 12:38:29 +0100 kohm:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/scrlayer.tex,
+ doc/ngerman/common-pagestylemanipulation.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrlayer-scrpage-experts.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/scrlayer.tex,
+ doc/english/common-pagestylemanipulation.tex: serveral links (not
+ only) into chapter 5
+
+r2546 2016-11-26 13:05:11 +0100 kohm:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/common-fontsize.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/scraddr.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/common-fontsize.tex, doc/english/scrlttr2-experts.tex,
+ doc/english/scraddr.tex: serveral links (not only) into chapter 4
+
+r2545 2016-11-24 14:20:27 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/common-lists.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/scrhack.tex,
+ doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-pagestylemanipulation.tex,
+ doc/ngerman/scrlfile.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrlayer-notecolumn.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/tocbasic.tex,
+ doc/english/scrhack.tex, doc/english/typearea.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-pagestylemanipulation.tex,
+ doc/english/scrlfile.tex: serveral links (not only) into chapter 3
+
+r2544 2016-11-23 18:33:55 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/common-interleafpage.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/tocbasic.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/ngerman/typearea-experts.tex,
+ doc/ngerman/scrlayer.tex, doc/ngerman/scrjura.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/scrlfile.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrlayer-notecolumn.tex,
+ doc/english/common-interleafpage.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/tocbasic.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/typearea-experts.tex,
+ doc/english/scrlayer.tex, doc/english/scrjura.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/scrlfile.tex: serveral links (not only) into chapter 3
+
+r2543 2016-11-23 15:20:44 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/scrlayer.tex, doc/ngerman/scrjura.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/scrwfile.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/scrextend.tex,
+ doc/english/tocbasic.tex, doc/english/scrlttr2-experts.tex,
+ doc/english/scrlayer.tex, doc/english/scrjura.tex,
+ doc/english/scrbookreportarticle-experts.tex: serveral links (not
+ only) into chapter 3
+
+r2542 2016-11-21 18:32:36 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/scrlayer.tex, doc/ngerman/scrjura.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-titles.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrbase.tex,
+ doc/english/scrlayer-scrpage-experts.tex,
+ doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrlayer-notecolumn.tex,
+ doc/english/common-interleafpage.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/scrdatetime.tex,
+ doc/english/common-options.tex, doc/english/scrextend.tex,
+ doc/english/tocbasic.tex, doc/english/scrlttr2-experts.tex,
+ doc/english/common-textmarkup.tex, doc/english/scrlayer.tex,
+ doc/english/scrjura.tex, doc/english/typearea.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/scrlfile.tex,
+ doc/english/scrwfile.tex, doc/english/scraddr.tex: serveral links
+
+r2541 2016-11-21 12:05:13 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbase.tex, doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/ngerman/common-fontsize.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/common-interleafpage.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/scrdatetime.tex,
+ doc/ngerman/common-options.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/common-textmarkup.tex, doc/ngerman/scrlayer.tex,
+ doc/ngerman/scrjura.tex, doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-oddorevenpage.tex, doc/ngerman/scrlfile.tex,
+ doc/ngerman/scrwfile.tex, doc/ngerman/scraddr.tex:
+ \autopageref{desc:…} replaced by \DescPageRef{…}
+
+r2540 2016-11-21 11:55:10 +0100 kohm:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/common-marginpar.tex, doc/ngerman/common-parmarkup.tex,
+ doc/ngerman/common-fontsize.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-interleafpage.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/common-options.tex,
+ doc/ngerman/common-footnotes.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/common-lists.tex, doc/ngerman/tocbasic.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/ngerman/typearea-experts.tex,
+ doc/ngerman/common-textmarkup.tex, doc/ngerman/scrhack.tex,
+ doc/ngerman/scrlayer.tex, doc/ngerman/scrjura.tex,
+ doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-pagestylemanipulation.tex,
+ doc/ngerman/common-titles.tex, doc/ngerman/scrwfile.tex,
+ doc/ngerman/scraddr.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/common-marginpar.tex, doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/common-interleafpage.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/common-options.tex,
+ doc/english/common-footnotes.tex, doc/english/scrextend.tex,
+ doc/english/common-lists.tex, doc/english/tocbasic.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/typearea-experts.tex,
+ doc/english/common-textmarkup.tex, doc/english/scrlayer.tex,
+ doc/english/scrjura.tex, doc/english/typearea.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-pagestylemanipulation.tex,
+ doc/english/common-titles.tex, doc/bin/, doc/bin/finddesc.sh: links
+ into typearea chapter
+
+r2539 2016-11-20 17:53:02 +0100 kohm:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/common-parmarkup.tex,
+ doc/ngerman/common-headfootheight.tex, doc/english/,
+ doc/english/common-parmarkup.tex,
+ doc/english/common-oddorevenpage.tex: old \IfCommon... commands
+ eliminated
+
+r2538 2016-11-20 17:40:30 +0100 kohm:
+
+ * manifest.txt, doc/, doc/linkalias.tex, doc/Makefile.guide,
+ doc/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/scrlayer.tex,
+ doc/ngerman/common-pagestylemanipulation.tex, doc/english/,
+ doc/english/scrlayer-scrpage-experts.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/scrlayer.tex,
+ doc/english/common-pagestylemanipulation.tex: common-21.tex replaced
+ by common-pagestylemanipulation.tex without ommitting if already
+ printed in another chapter
+
+r2537 2016-11-20 12:47:03 +0100 kohm:
+
+ * manifest.txt, doc/, doc/Makefile.guide, doc/ngerman/,
+ doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/common-headfootheight.tex, doc/ngerman/scrlayer.tex,
+ doc/english/, doc/english/scrlayer-scrpage.tex,
+ doc/english/common-headfootheight.tex, doc/english/scrlayer.tex:
+ common-21.tex replaced by common-headfootheight.tex without
+ ommitting if already printed in another chapter
+
+r2536 2016-11-20 12:13:59 +0100 kohm:
+
+ * manifest.txt, doc/, doc/Makefile.guide, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/common-dictum.tex,
+ doc/ngerman/scrextend.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex, doc/english/common-dictum.tex,
+ doc/english/scrextend.tex: common-15.tex replaced by common-dictum.tex
+ without ommitting if already printed in another chapter
+
+r2535 2016-11-18 18:10:13 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex, doc/english/,
+ doc/english/common-titles.tex: fixed title pages example reference
+ text
+
+r2534 2016-11-18 17:49:54 +0100 kohm:
+
+ * manifest.txt, doc/, doc/Makefile.guide, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/common-titles.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex, doc/english/scrextend.tex,
+ doc/english/common-titles.tex: common-14.tex replaced by
+ common-titles.tex without ommitting if already printed in another
+ chapter
+
+r2533 2016-11-18 15:43:43 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/common-draftmode.tex: initial
+ reference fixed
+
+r2532 2016-11-18 15:26:15 +0100 kohm:
+
+ * manifest.txt, doc/, doc/Makefile.guide, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/common-marginpar.tex,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/scrextend.tex,
+ doc/english/, doc/english/scrlttr2.tex,
+ doc/english/common-marginpar.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/scrextend.tex:
+ common-13.tex replaced by common-marginpar.tex without ommitting if
+ already printed in another chapter
+
+r2531 2016-11-18 15:19:10 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-options.tex: double ref fixed
+
+r2530 2016-11-18 14:23:30 +0100 kohm:
+
+ * manifest.txt, doc/, doc/linkalias.tex, doc/Makefile.guide,
+ doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/common-lists.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/scrextend.tex,
+ doc/english/common-lists.tex: common-12.tex replaced by
+ common-lists.tex without ommitting if already printed in another
+ chapter
+
+r2529 2016-11-18 14:17:38 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/common-interleafpage.tex: group
+ levels fixed
+
+r2528 2016-11-18 14:08:43 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-footnotes.tex: label
+ references fixed
+
+r2527 2016-11-18 11:49:29 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/adrconvnote.tex: typofix
+
+r2526 2016-11-18 11:48:27 +0100 kohm:
+
+ * manifest.txt, doc/, doc/linkalias.tex, doc/scrguide.cls,
+ doc/Makefile.guide, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbase.tex, doc/ngerman/common-parmarkup.tex,
+ doc/ngerman/common-fontsize.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-interleafpage.tex, doc/ngerman/scrdatetime.tex,
+ doc/ngerman/adrconvnote.tex, doc/ngerman/common-dictum.tex,
+ doc/ngerman/common-options.tex, doc/ngerman/common-footnotes.tex,
+ doc/ngerman/scrextend.tex, doc/ngerman/tocbasic.tex,
+ doc/ngerman/common-draftmode.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/common-textmarkup.tex, doc/ngerman/scrlayer.tex,
+ doc/ngerman/scrjura.tex, doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-pagestylemanipulation.tex,
+ doc/ngerman/common-oddorevenpage.tex, doc/ngerman/scrlfile.tex,
+ doc/ngerman/common-compatibility.tex, doc/ngerman/scrwfile.tex,
+ doc/ngerman/scraddr.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbase.tex, doc/english/common-parmarkup.tex,
+ doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/common-interleafpage.tex, doc/english/scrdatetime.tex,
+ doc/english/adrconvnote.tex, doc/english/common-dictum.tex,
+ doc/english/common-options.tex, doc/english/common-footnotes.tex,
+ doc/english/scrextend.tex, doc/english/tocbasic.tex,
+ doc/english/common-draftmode.tex, doc/english/scrlttr2-experts.tex,
+ doc/english/common-textmarkup.tex, doc/english/scrlayer.tex,
+ doc/english/scrjura.tex, doc/english/typearea.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-pagestylemanipulation.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/scrlfile.tex,
+ doc/english/common-compatibility.tex, doc/english/scrwfile.tex,
+ doc/english/scraddr.tex: common-9.tex replaced by common-footnotes.tex
+ without ommitting if already printed in another chapter + listings
+ improvement
+
+r2525 2016-11-17 20:14:11 +0100 kohm:
+
+ * doc/, doc/scrguide.cls, doc/english/, doc/english/scrextend.tex:
+ improved colours
+
+r2524 2016-11-17 18:53:21 +0100 kohm:
+
+ * manifest.txt, doc/, doc/Makefile.guide, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-interleafpage.tex, doc/ngerman/scrextend.tex,
+ doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/common-interleafpage.tex, doc/english/common-options.tex,
+ doc/english/scrextend.tex: common-8.tex replaced by
+ common-interleafpage.tex without ommitting if already printed in
+ another chapter
+
+r2523 2016-11-17 17:25:53 +0100 kohm:
+
+ * manifest.txt, doc/, doc/Makefile.guide, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrextend.tex, doc/ngerman/common-oddorevenpage.tex,
+ doc/ngerman/common-compatibility.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrbookreportarticle.tex,
+ doc/english/scrextend.tex, doc/english/common-oddorevenpage.tex,
+ doc/english/common-compatibility.tex: common-7.tex replaced by
+ common-oddorevenpage.tex without ommitting if already printed in
+ another chapter
+
+r2522 2016-11-17 16:49:53 +0100 kohm:
+
+ * manifest.txt, doc/, doc/Makefile.guide, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/common-parmarkup.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-draftmode.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/common-parmarkup.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/common-draftmode.tex: common-6.tex replaced by
+ common-parmarkup.tex without ommitting if already printed in another
+ chapter
+
+r2521 2016-11-17 15:55:53 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/common-fontsize.tex,
+ doc/english/scrlayer-scrpage.tex: typo fix: length
+
+r2520 2016-11-17 15:50:46 +0100 kohm:
+
+ * manifest.txt, doc/, doc/linkalias.tex, doc/scrguide.cls,
+ doc/Makefile.guide, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/common-headfootheight.tex,
+ doc/ngerman/common-options.tex, doc/ngerman/common-footnotes.tex,
+ doc/ngerman/scrextend.tex, doc/ngerman/common-lists.tex,
+ doc/ngerman/common-textmarkup.tex, doc/ngerman/typearea.tex,
+ doc/ngerman/common-titles.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrbookreportarticle.tex,
+ doc/english/scrlayer-scrpage.tex,
+ doc/english/common-headfootheight.tex,
+ doc/english/common-footnotes.tex, doc/english/scrextend.tex,
+ doc/english/common-lists.tex, doc/english/common-textmarkup.tex,
+ doc/english/common-titles.tex: common-5.tex replaced by
+ common-textmarkup.tex without ommitting if already printed in
+ another chapter
+
+r2519 2016-11-16 18:51:28 +0100 kohm:
+
+ * doc/, doc/Makefile.guide, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/common-fontsize.tex,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/scrextend.tex,
+ doc/english/, doc/english/scrlttr2.tex,
+ doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/scrextend.tex:
+ common-4.tex replaced by common-fontsize.tex without ommitting if
+ already printed in another chapter
+
+r2518 2016-11-16 18:48:48 +0100 kohm:
+
+ * manifest.txt: common-4.tex replaced by common-fontsize.tex without
+ ommitting if already printed in another chapter
+
+r2517 2016-11-16 18:03:15 +0100 kohm:
+
+ * manifest.txt: common-3.tex replaced by common-typearea.tex without
+ ommitting if already printed in another chapter
+
+r2516 2016-11-16 18:00:45 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: index stack errors are not longer warnings
+
+r2515 2016-11-16 17:54:48 +0100 kohm:
+
+ * doc/, doc/Makefile.guide, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-typearea.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrbookreportarticle.tex,
+ doc/english/common-typearea.tex: common-3.tex replaced by
+ common-typearea.tex without ommitting if already printed in another
+ chapter
+
+r2514 2016-11-16 17:48:43 +0100 kohm:
+
+ * manifest.txt, doc/, doc/Makefile.guide, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrextend.tex, doc/ngerman/common-draftmode.tex,
+ doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/common-options.tex,
+ doc/english/scrextend.tex, doc/english/common-draftmode.tex:
+ common-2.tex replaced by common-draftmode.tex without ommitting if
+ already printed in another chapter
+
+r2513 2016-11-16 17:47:54 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex: index groups
+ fixed
+
+r2512 2016-11-15 18:43:41 +0100 kohm:
+
+ * manifest.txt, doc/, doc/Makefile.guide, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrextend.tex, doc/ngerman/typearea.tex,
+ doc/ngerman/common-compatibility.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrbookreportarticle.tex,
+ doc/english/scrextend.tex, doc/english/typearea.tex,
+ doc/english/common-compatibility.tex: common-compatibility.tex
+ replaces common-1.tex without ommitting already shown information
+
+r2511 2016-11-15 17:22:04 +0100 kohm:
+
+ * manifest.txt: common-0.tex replaced by common-options.tex
+
+r2510 2016-11-15 17:20:01 +0100 kohm:
+
+ * doc/, doc/scrguide.cls, doc/Makefile.guide, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/scrdatetime.tex,
+ doc/ngerman/common-options.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/scrhack.tex, doc/ngerman/scrlayer.tex,
+ doc/ngerman/scrjura.tex, doc/ngerman/typearea.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrbookreportarticle.tex,
+ doc/english/scrlayer-notecolumn.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/scrdatetime.tex,
+ doc/english/common-options.tex, doc/english/scrextend.tex,
+ doc/english/scrhack.tex, doc/english/scrlayer.tex,
+ doc/english/scrjura.tex, doc/english/typearea.tex: early or late
+ options not omitted if already used
+
+r2509 2016-11-15 11:29:58 +0100 kohm:
+
+ * doc/, doc/scrguide.cls, doc/scrpage2.tex, doc/bin/,
+ doc/bin/genhtmlidx.pl: improved anchor generation and html index
+
+r2508 2016-11-14 21:06:12 +0100 kohm:
+
+ * doc/, doc/scrguide.cls, doc/scrpage2.tex, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/scrbase.tex,
+ doc/ngerman/common-marginpar.tex,
+ doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/ngerman/common-parmarkup.tex, doc/ngerman/guide-ngerman.tex,
+ doc/ngerman/common-fontsize.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/common-interleafpage.tex,
+ doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/common-headfootheight.tex, doc/ngerman/scrdatetime.tex,
+ doc/ngerman/common-dictum.tex, doc/ngerman/common-options.tex,
+ doc/ngerman/common-footnotes.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/common-lists.tex, doc/ngerman/tocbasic.tex,
+ doc/ngerman/common-draftmode.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/typearea-experts.tex, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/scrhack.tex, doc/ngerman/scrlayer.tex,
+ doc/ngerman/scrjura.tex, doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-pagestylemanipulation.tex,
+ doc/ngerman/common-oddorevenpage.tex, doc/ngerman/scrlfile.tex,
+ doc/ngerman/common-titles.tex, doc/ngerman/common-compatibility.tex,
+ doc/ngerman/common-typearea.tex, doc/ngerman/scrwfile.tex,
+ doc/ngerman/scraddr.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbase.tex, doc/english/common-marginpar.tex,
+ doc/english/scrlayer-scrpage-experts.tex,
+ doc/english/common-parmarkup.tex, doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/scrlayer-notecolumn.tex,
+ doc/english/common-interleafpage.tex,
+ doc/english/scrlayer-scrpage.tex,
+ doc/english/common-headfootheight.tex, doc/english/scrdatetime.tex,
+ doc/english/adrconvnote.tex, doc/english/common-dictum.tex,
+ doc/english/common-footnotes.tex, doc/english/scrextend.tex,
+ doc/english/common-lists.tex, doc/english/tocbasic.tex,
+ doc/english/common-draftmode.tex, doc/english/scrlttr2-experts.tex,
+ doc/english/typearea-experts.tex, doc/english/common-textmarkup.tex,
+ doc/english/scrhack.tex, doc/english/scrlayer.tex,
+ doc/english/scrjura.tex, doc/english/typearea.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-pagestylemanipulation.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/scrlfile.tex,
+ doc/english/common-titles.tex, doc/english/common-compatibility.tex,
+ doc/english/common-typearea.tex, doc/english/introduction.tex,
+ doc/english/preface.tex, doc/english/scrwfile.tex,
+ doc/english/scraddr.tex: several changes in scrguide.cls to improve
+ Declaration and label and index generation
+
+r2507 2016-11-04 09:03:12 +0100 kohm:
+
+ * doc/: deprecated source of old German manual removed
+
+r2506 2016-11-02 12:23:58 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: fix: index label generation delayed to get
+ correct page reference
+
+r2505 2016-11-02 12:09:24 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex,
+ doc/ngerman/scrwfile.tex, doc/english/, doc/english/tocbasic.tex,
+ doc/english/scrwfile.tex: fix: errornous usage of \AfterStartingTOC
+ replaced by \BeforeStartingTOC
+
+r2504 2016-10-27 18:27:25 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex, doc/english/,
+ doc/english/scrlttr2.tex: typofix [Jan]
+
+r2503 2016-10-21 10:54:46 +0200 kohm:
+
+ * scrkernel-listsandtabulars.dtx: Summary: addmargin preserved \topsep
+ and \partopsep
+
+r2502 2016-10-03 13:50:19 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: docu fix of
+ toc=indexnumbered
+
+r2501 2016-09-28 07:55:32 +0200 kohm:
+
+ * scrkernel-fonts.dtx: Summary: deprecated font command message fixed
+
+r2500 2016-09-24 18:59:36 +0200 kohm:
+
+ * scrlayer.dtx, doc/, doc/ngerman/, doc/ngerman/scrlayer.tex,
+ doc/english/, doc/english/scrlayer.tex: fixed: foreground and
+ unrestricted and name of backandforeground
+
+r2499 2016-09-06 09:00:45 +0200 kohm:
+
+ * tocbasic.dtx: Summary: missing \removefromtoclist added
+
+r2498 2016-09-01 21:44:10 +0200 kohm:
+
+ * scrkernel-floats.dtx: Summary: missing # added
+
+r2497 2016-09-01 21:21:37 +0200 kohm:
+
+ * scrkernel-floats.dtx: Summary: workaround for \newline (and
+ \protect\\) in caption text
+
+r2496 2016-09-01 13:51:09 +0200 kohm:
+
+ * scrkernel-floats.dtx: Summary: isodate in \caption workaround
+
+r2495 2016-08-09 18:02:12 +0200 kohm:
+
+ * tocbasic.dtx: Summary: saves the type of an extension; new
+ \owneroftoc
+
+r2494 2016-08-04 09:23:47 +0200 kohm:
+
+ * scrkernel-typearea.dtx: Summary: preview detection info message
+ added
+
+r2493 2016-08-04 09:12:36 +0200 kohm:
+
+ * scrkernel-typearea.dtx: Summary: preview workaround added
+
+r2492 2016-08-02 10:21:34 +0200 kohm:
+
+ * scrkernel-listsandtabulars.dtx: Summary: page break test at
+ addmargin* only if twoside is active
+
+r2491 2016-07-29 10:03:57 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-typearea.dtx, doc/, doc/ngerman/, doc/ngerman/typearea.tex,
+ doc/english/, doc/english/typearea.tex: change: from v3.22 the width
+ and the height value of option paper depend on the paper orientation
+
+r2490 2016-07-29 08:29:45 +0200 kohm:
+
+ * scrkernel-basics.dtx: Summary: added some \detokenize to obsolete
+ option warning message
+
+r2489 2016-07-29 08:20:45 +0200 kohm:
+
+ * scrkernel-typearea.dtx: Summary: missing obsolete option warning
+ added
+
+r2488 2016-07-12 09:56:12 +0200 kohm:
+
+ * scrkernel-sections.dtx: Summary: checksum
+
+r2487 2016-07-12 09:52:51 +0200 kohm:
+
+ * scrkernel-sections.dtx: Summary: experimental compatibility with
+ titleref and zref-titleref
+
+r2486 2016-07-12 08:43:01 +0200 kohm:
+
+ * TODO: Summary: new nice to have
+
+r2485 2016-07-12 08:41:36 +0200 kohm:
+
+ * scrkernel-sections.dtx: Summary: experimental sectioning commands
+ option `reference'
+
+r2484 2016-07-06 09:54:30 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: Grammarfix
+
+r2483 2016-06-28 09:36:58 +0200 kohm:
+
+ * scrlayer-notecolumn.dtx: Summary: fix grouping of luatex tests
+
+r2482 2016-06-21 08:20:17 +0200 kohm:
+
+ * INSTALLD.txt, INSTALL.txt: added installation info about hak files
+
+r2481 2016-06-17 09:37:56 +0200 kohm:
+
+ * releaselist.txt: Summary: Release 3.21
+
+r2480 2016-06-14 09:45:01 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/english/, doc/english/scrbookreportarticle-experts.tex: additional
+ info about toc… options
+
+r2479 2016-06-14 09:11:22 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex, doc/english/,
+ doc/english/tocbasic.tex: additional info about tocentry… options
+
+r2478 2016-06-13 08:53:07 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/tocbasic.tex: Typofixes reported by
+ Elke
+
+r2477 2016-06-12 11:52:43 +0200 kohm:
+
+ * TODO, scrkernel-sections.dtx, tocbasic.dtx, doc/, doc/ngerman/,
+ doc/ngerman/tocbasic.tex, doc/english/, doc/english/tocbasic.tex:
+ prefix tocentry instead (or additional to) prefix toc
+
+r2476 2016-06-12 08:32:29 +0200 kohm:
+
+ * scrkernel-sections.dtx: Summary: several page breaks prevented
+
+r2475 2016-06-09 09:51:01 +0200 kohm:
+
+ * scrkernel-tocstyle.dtx: improved hyperref compatibility
+
+r2474 2016-06-06 16:41:04 +0200 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: handle also long \ragged…entry
+
+r2473 2016-06-06 16:38:21 +0200 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: Typofix \flushglue
+
+r2472 2016-06-06 11:12:11 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/tocbasic.tex: new tocline attribute
+ raggedentrytext
+
+r2471 2016-06-06 11:02:57 +0200 kohm:
+
+ * scrkernel-tocstyle.dtx, scrkernel-sections.dtx, doc/, doc/ngerman/,
+ doc/ngerman/tocbasic.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: \raggedchapterentry does
+ work again via new tocbasic's tocline attribute raggedentrytext
+
+r2470 2016-06-06 09:06:27 +0200 kohm:
+
+ * scrkernel-sections.dtx: Summary: change entry date fixed
+
+r2469 2016-06-02 20:07:52 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex, doc/english/,
+ doc/english/tocbasic.tex: feature nobabel clarified
+
+r2468 2016-05-31 13:27:28 +0200 kohm:
+
+ * scrkernel-floats.dtx: Summary: new implementation of \@@makecaption
+
+r2467 2016-05-27 20:35:47 +0200 kohm:
+
+ * scrkernel-basics.dtx: Summary: \scr@ifpdforluatex
+
+r2466 2016-05-27 20:34:55 +0200 kohm:
+
+ * scrkernel-basics.dtx: Summary: typofix
+
+r2465 2016-05-27 19:15:42 +0200 kohm:
+
+ * scrkernel-basics.dtx: Summary: em, ex and if pdf output of pdftex or
+ luatex is used also px are units
+
+r2464 2016-05-27 19:14:11 +0200 kohm:
+
+ * scrkernel-typearea.dtx: Summary: missing \ before pagewidth and
+ pageheight added
+
+r2463 2016-05-19 09:27:47 +0200 kohm:
+
+ * scrkernel-miscellaneous.dtx: Summary:
+ egregdoesnotlikesansseriftitles in scrletter only by class
+
+r2462 2016-05-19 09:18:47 +0200 kohm:
+
+ * scrkernel-notepaper.dtx, scrkernel-miscellaneous.dtx:
+ Summary: scrlttr2 provides option egregdoesnotlikesansseriftitles
+ too
+
+r2461 2016-05-19 09:17:15 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.21 BETA
+
+r2460 2016-05-10 15:01:58 +0200 kohm:
+
+ * releaselist.txt: release 2016/05/10 v3.20
+
+r2459 2016-05-10 15:01:05 +0200 kohm:
+
+ * scrkernel-version.dtx: prepared for 3.20
+
+r2458 2016-05-10 14:02:52 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex, doc/english/,
+ doc/english/scrjura.tex: typofixes by Elke
+
+r2457 2016-05-09 11:38:14 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrjura.tex: Summary: some typo
+ fixes
+
+r2456 2016-05-09 11:37:44 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrjura.tex: Summary:
+ Überflüssiges \ProvidesFile entfernt
+
+r2455 2016-05-09 11:36:06 +0200 kohm:
+
+ * doc/, doc/scrguide.cls: Summary: \Paragraph has been changed to
+ \Clause
+
+r2454 2016-05-09 10:57:53 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/guide-english.tex: Summary: typo
+ fixes
+
+r2453 2016-05-09 07:33:31 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/preface.tex: Summary: ready for the
+ release
+
+r2452 2016-05-08 10:45:54 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: Summary:
+ typofix
+
+r2451 2016-05-07 20:11:55 +0200 kohm:
+
+ * scrhack.dtx: Summary: load each hack only once
+
+r2450 2016-05-07 19:47:53 +0200 kohm:
+
+ * README.in/: Summary: scrhack needs xpatch (for lscape hack)
+
+r2449 2016-05-07 15:50:41 +0200 kohm:
+
+ * scrhack.dtx: Summary: requires xpatch not only while lscape hack is
+ loaded but always
+
+r2448 2016-05-06 11:06:19 +0200 kohm:
+
+ * scrjura.dtx: Summary: docu removed from package source
+
+r2447 2016-05-06 11:05:08 +0200 kohm:
+
+ * scrstrip.inc: Summary: we have 2016
+
+r2446 2016-05-06 10:38:06 +0200 kohm:
+
+ * Makefile: do not make scrjura.pdf any longer
+
+r2445 2016-05-05 09:22:38 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/preface.tex: two more chapters are
+ translated
+
+r2444 2016-05-05 09:16:53 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrjura.tex: (almost) complete
+ translation of the scrjura chapter
+
+r2443 2016-05-04 10:34:46 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrjura.tex: Hinweis auf zusätzlich
+ unterstützte Sprachen
+
+r2442 2016-05-04 10:19:38 +0200 kohm:
+
+ * doc/, doc/Makefile.guide, doc/ngerman/, doc/ngerman/scrjura.tex,
+ doc/english/, doc/english/scrjura.tex: prepared to have a real chapter
+ about scrjura
+
+r2441 2016-04-30 08:43:16 +0200 kohm:
+
+ * doc/, doc/english/: support for more packages
+
+r2440 2016-04-29 17:59:32 +0200 kohm:
+
+ * tocbasic.dtx: Summary: empty option list bug in \DeclareNewTOC
+ [Elke]
+
+r2439 2016-04-29 07:56:21 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-fontsize.tex: Summary:
+ fehlendes »Klasse« ergänzt
+
+r2438 2016-04-27 12:58:21 +0200 kohm:
+
+ * scrkernel-tocstyle.dtx, scrkernel-sections.dtx,
+ scrkernel-basics.dtx: Summary: distinguish between test and assignment
+ of values
+
+r2437 2016-04-27 07:57:47 +0200 kohm:
+
+ * obsolete/, obsolete/Makefile: Summary: back to RELEASEDATE instead
+ of RELEASE because its the version
+
+r2436 2016-04-27 07:48:45 +0200 kohm:
+
+ * obsolete/, obsolete/Makefile: Summary: using RELEASE instead of
+ RELEASEDATE for dist-tds
+
+r2435 2016-04-25 12:42:03 +0200 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: expand length/number options before
+ test
+
+r2434 2016-04-25 11:47:58 +0200 kohm:
+
+ * tocbasic.dtx: Summary: spelling of tocnumwidth in warning message
+
+r2433 2016-04-23 19:14:01 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/tocbasic.tex: Summary: corrections
+ by Arndt and Elke
+
+r2432 2016-04-23 18:42:24 +0200 kohm:
+
+ * tocbasic.dtx: Summary: \DeclareNewTOC hang/indent -->
+ numwidth/indent [Elke]
+
+r2431 2016-04-13 07:40:50 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/tocbasic.tex: Summary: Improvements
+ by A. S.
+
+r2430 2016-04-12 15:59:04 +0200 kohm:
+
+ * scrkernel-sections.dtx: Summary: issue using amsgen in combination
+ with \@startsection and spaces between the arguments fixed
+
+r2429 2016-04-12 14:10:19 +0200 kohm:
+
+ * scrkernel-notepaper.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, scrkernel-variables.dtx, scrlayer.dtx,
+ scrkernel-typearea.dtx, scrjura.dtx, scrkernel-sections.dtx,
+ scrkernel-miscellaneous.dtx, scrtime.dtx, scrlayer-scrpage.dtx,
+ scrlfile.dtx, tocbasic.dtx, scrkernel-basics.dtx: Summary: \@ifstr
+ replaced by \kernel@ifstr
+
+r2428 2016-04-12 12:31:07 +0200 kohm:
+
+ * scrkernel-tocstyle.dtx, scrkernel-floats.dtx,
+ scrkernel-variables.dtx, scrlayer.dtx, scrdoc.dtx, scrjura.dtx,
+ scrkernel-letterclassoptions.dtx, tocstyle.dtx, scrpage.dtx,
+ scrkernel-sections.dtx, scrlayer-scrpage.dtx, scrkernel-fonts.dtx,
+ scrlfile.dtx, tocbasic.dtx, scrkernel-basics.dtx: Summary: replaced
+ \@ifnextchar by \kernel@ifnextchar
+
+r2427 2016-04-12 09:33:09 +0200 kohm:
+
+ * scrjura.dtx, doc/, doc/ngerman/, doc/ngerman/scrjuraexample.tex,
+ doc/english/, doc/english/scrjuraexample.tex: Summary: Using
+ clausemark instead of paragraphmark
+
+r2426 2016-04-12 09:22:06 +0200 kohm:
+
+ * doc/, doc/Makefile, doc/Makefile.guide: Summary: prepare rule
+ extended (to make scrjura.tex if needed)
+
+r2425 2016-04-12 09:08:31 +0200 kohm:
+
+ * scrjura.dtx: Summary: paragraphmark has never been documented but
+ clausemark; so clausemark should exist
+
+r2424 2016-04-11 08:29:39 +0200 kohm:
+
+ * manifest.txt, doc/, doc/Makefile.guide: Summary: scrjura.tex could
+ be made from scrjura-non.tex
+
+r2423 2016-04-11 08:17:06 +0200 kohm:
+
+ * doc/, doc/Makefile.guide, doc/ngerman/,
+ doc/ngerman/scrjuraexample.tex, doc/english/,
+ doc/english/scrjuraexample.tex: Summary: scrjuraexample.tex added
+
+r2422 2016-04-11 08:03:43 +0200 kohm:
+
+ * doc/, doc/Makefile.guide, doc/ngerman/, doc/english/: Summary:
+ scrjura.tex can be made on-the-fly from scrjura-non.tex
+
+r2421 2016-04-10 12:16:08 +0200 kohm:
+
+ * TODO, doc/, doc/english/, doc/english/tocbasic.tex: Summary: "helper
+ file" issue removed
+
+r2420 2016-04-09 20:02:52 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/tocbasic.tex: Summary: Improved by
+ A. S.
+
+r2419 2016-04-07 17:04:37 +0200 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: fix of break after number bug
+
+r2418 2016-04-07 16:47:41 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/tocbasic.tex: Summary: Elke's
+ corrections
+
+r2417 2016-04-07 11:16:58 +0200 kohm:
+
+ * tocstyle.dtx: Summary: \CheckSum
+
+r2416 2016-04-07 10:52:42 +0200 kohm:
+
+ * scrkernel-floats.dtx: Summary: late caption position change provided
+
+r2415 2016-04-07 10:29:28 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: Summary: docu of
+ \setcapdynwidth
+
+r2414 2016-04-07 09:48:00 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle-experts.tex:
+ Summary: label fixed
+
+r2413 2016-04-07 09:19:47 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle-experts.tex:
+ Summary: change log entry fixed
+
+r2412 2016-04-07 09:17:22 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex, doc/english/,
+ doc/english/tocbasic.tex: Summary: first translation completed
+
+r2411 2016-04-06 19:07:59 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/tocbasic.tex: Summary: some more
+ translation
+
+r2410 2016-04-06 19:07:42 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: typo fix
+
+r2409 2016-04-06 17:39:52 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: Tippfehler
+
+r2408 2016-04-06 16:35:25 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/tocbasic.tex: Summary: docu of
+ \DeclareTOCStyleEntry
+
+r2407 2016-04-06 11:32:02 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: Small
+ improvements of new descriptions
+
+r2406 2016-04-06 11:31:00 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/tocbasic.tex: Summary: Some
+ translations added
+
+r2405 2016-04-05 11:15:47 +0200 kohm:
+
+ * TODO, tocbasic.dtx, doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/tocbasic.tex: Summary: new features of \DeclareNewTOC
+
+r2404 2016-04-05 09:11:03 +0200 kohm:
+
+ * tocbasic.dtx: Summary: docu typo fix
+
+r2403 2016-04-01 13:34:57 +0200 kohm:
+
+ * scrkernel-notepaper.dtx: Summary: delayed loading of marvosym
+ improved
+
+r2402 2016-03-31 18:16:47 +0200 kohm:
+
+ * TODO: Summary: new feature need new docu
+
+r2401 2016-03-31 18:12:59 +0200 kohm:
+
+ * scrkernel-floats.dtx: Summary: \setcapdynwidth for Ulrike
+
+r2400 2016-03-31 09:51:17 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: Alle
+ TODO-Kommentare abgeleistet
+
+r2399 2016-03-30 13:34:21 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary:
+ \DeclareTOCEntryStyle dokumentiert
+
+r2398 2016-03-25 11:22:23 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, scrjura.dtx, tocstyle.dtx,
+ scrlayer-notecolumn.dtx, scrkernel-miscellaneous.dtx: Summary: writing
+ to aux-file improved
+
+r2397 2016-03-25 10:07:48 +0100 kohm:
+
+ * scrkernel-sections.dtx: Summary: \@altsecnumformattrue will not
+ break aux-file after class change
+
+r2396 2016-03-25 09:56:22 +0100 kohm:
+
+ * tocstyle.dtx: Summary: change information fixed
+
+r2395 2016-03-25 09:26:37 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, doc/, doc/ngerman/,
+ doc/ngerman/tocbasic.tex: Summary: new tocline feature
+ breakafternumber
+
+r2394 2016-03-24 15:45:04 +0100 kohm:
+
+ * scrkernel-miscellaneous.dtx: Summary: titlesec workaround also for
+ v2.10.2 2016/03/21
+
+r2393 2016-03-24 10:47:53 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: Korrekturen
+ von Elke
+
+r2392 2016-03-23 12:56:36 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary:
+ \LastTOCLevelWas… and \TOCEntryStyle…InitCode
+
+r2391 2016-03-23 08:35:30 +0100 kohm:
+
+ * tocstyle.dtx: Summary: - package combination warning extended
+ - package status section added
+
+r2390 2016-03-22 20:07:43 +0100 kohm:
+
+ * scrkernel-miscellaneous.dtx: Summary: titlesec workaround also for
+ titlesec 2016/03/15 v2.10.1
+
+r2389 2016-03-22 18:41:28 +0100 kohm:
+
+ * tocstyle.dtx: Summary: Better "cooperation" with new tocbasic
+
+r2388 2016-03-21 18:28:06 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: \usetocbasicnumberline should
+ temporary set \@tempdima
+
+r2387 2016-03-16 18:15:26 +0100 kohm:
+
+ * TODO: Summary: Need for change of \DeclareNewTOC
+
+r2386 2016-03-16 17:46:17 +0100 kohm:
+
+ * TODO: Summary: Verzeichnisstile Doc
+
+r2385 2016-03-15 15:50:30 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary:
+ \usetocbasicnumberline
+
+r2384 2016-03-15 12:58:53 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, scrkernel-listsof.dtx: Summary: enforce
+ usage of \scr@numberline whenever needed. Summary: usage of \autodot
+ indirekt
+
+r2383 2016-03-14 10:24:36 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: Docu fixes
+
+r2382 2016-03-14 09:37:24 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, TODO, doc/, doc/.ignore: Summary: replaced
+ \par by \@par in tocline to make \textit etc. work
+
+r2381 2016-03-13 09:38:02 +0100 kohm:
+
+ * TODO: Summary: missing entrytextformat attribute
+
+r2380 2016-03-12 20:23:47 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: documentation
+ of toc entry style attributes
+
+r2379 2016-03-12 19:46:51 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: \SetPenaltyByTOCLevel -->
+ \tocbasic@SetPenaltyByTOCLevel,
+
+ \DependOnPenaltyAndTOCLevel --> \tocbasic@DependOnPenaltyAndTOCLevel
+
+r2378 2016-03-12 19:09:37 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: attribute entryformat formats the
+ whole entry not only the number and
+ text
+
+r2377 2016-03-12 09:24:50 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: documentation
+ of several toc entry style attributes
+
+r2376 2016-03-11 14:46:30 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: documentation
+ of toc entry style numsep
+
+r2375 2016-03-11 14:26:50 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: some more
+ entry style attribute documentation
+
+r2374 2016-03-11 13:51:13 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: 6m replaced by 6em
+
+r2373 2016-03-11 13:16:33 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: documentation
+ of some \DeclareTOCStyleEntry attributes
+
+r2372 2016-03-11 09:47:22 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: figure for
+ TOC-entry style tocline
+
+r2371 2016-03-11 09:45:03 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: Summary: Usage of tikz and tikzlibrary calc
+
+r2370 2016-03-10 13:42:51 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: caption text
+ changed
+
+r2369 2016-03-10 13:37:58 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/tocbasic.tex: Summary: Illustrations added
+
+r2368 2016-03-10 11:20:56 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: remove errornous group level from
+ style largetocline
+
+r2367 2016-03-09 18:14:56 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex: Summary: neue
+ Trennausnahme für Eintragsebene
+
+r2366 2016-03-09 18:09:14 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex,
+ doc/ngerman/tocbasic.tex, doc/english/, doc/english/scrbase.tex:
+ Summary: serveral suggestions by Elke
+
+r2365 2016-03-09 12:30:58 +0100 kohm:
+
+ * TODO: Summary: Serveral TODOs removed
+
+r2364 2016-03-09 12:23:21 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Summary: documentation
+ of TOC entry styles started
+
+r2363 2016-03-09 09:03:32 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex, doc/english/,
+ doc/english/tocbasic.tex: Summary: documentation of \DeclareNewTOC
+ options atbegin and atend
+
+r2362 2016-03-09 08:53:27 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbase.tex, doc/english/,
+ doc/english/scrbase.tex: Summary: documentation of special option
+ @else@
+
+r2361 2016-03-08 10:14:05 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: Summary: documentation
+ of \DeclareSectionCommand attribute tocstyle
+
+r2360 2016-03-01 17:02:36 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, scrkernel-listsof.dtx: change: \numberline
+ definition moved to scrkernel-tocstyle change: redefining
+ \numberline@box instead of \numberline to measure the entry number
+ width
+
+r2359 2016-03-01 09:15:48 +0100 kohm:
+
+ * releaselist.txt: RC without space
+
+r2358 2016-02-26 12:10:01 +0100 kohm:
+
+ * TODO: Summary: issue removed
+
+r2357 2016-02-26 10:39:21 +0100 kohm:
+
+ * TODO: issue note
+
+r2356 2016-02-25 07:56:41 +0100 kohm:
+
+ * TODO: Summary: new issue with combination of beta scrjura and
+ KOMA-Script prerelease
+
+r2355 2016-02-24 12:59:00 +0100 kohm:
+
+ * scrjura.dtx: Summary: new environment names may contain numbers
+
+r2354 2016-02-23 12:01:52 +0100 kohm:
+
+ * TODO, scrkernel-sections.dtx: Summary: serveral todo notes processed
+
+r2351 2016-02-22 09:20:29 +0100 kohm:
+
+ * scrkernel-paragraphs.dtx, TODO: fix: first font change after
+ \begin{document} was always using \par@update@relative
+
+r2348 2016-02-19 11:53:14 +0100 kohm:
+
+ * TODO: new issue (parskip default)
+
+r2343 2016-02-17 12:23:24 +0100 kohm:
+
+ * doc/, doc/Makefile.latexinit: Summary: waste / removed
+
+r2342 2016-02-17 12:13:55 +0100 kohm:
+
+ * scrkernel-compatibility.dtx: Summary: change log entry and copyright
+ date fixed
+
+r2341 2016-02-17 12:13:17 +0100 kohm:
+
+ * scrkernel-notepaper.dtx: Summary: version information in change log
+ entries fixed
+
+r2340 2016-02-17 10:29:18 +0100 kohm:
+
+ * doc/: svn ignore list changed
+
+r2339 2016-02-17 10:27:13 +0100 kohm:
+
+ * doc/, doc/ngerman/: svn ignore list changed
+
+r2338 2016-02-17 10:26:20 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/.ignore: svn ignore list changed
+
+r2337 2016-02-17 10:25:04 +0100 kohm:
+
+ * doc/, doc/ngerman/: svn ignore list changed
+
+r2336 2016-02-17 10:24:36 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/.ignore: svn ignore list changed
+
+r2335 2016-02-17 10:24:02 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/.ignore: svn ignore list changed
+
+r2334 2016-02-17 10:19:31 +0100 kohm:
+
+ * doc/, doc/.ignore: svn ignore list changed
+
+r2333 2016-02-17 10:18:25 +0100 kohm:
+
+ * doc/, doc/.ignore: svn ignore list changed
+
+r2332 2016-02-17 10:15:15 +0100 kohm:
+
+ * obsolete/, obsolete/.ignore: svn ignore list changed
+
+r2330 2016-02-17 10:12:56 +0100 kohm:
+
+ * .globalignores, .ignore: svn ignore list changed
+
+r2326 2016-02-17 10:05:42 +0100 kohm:
+
+ * .ignore: ignore list changed
+
+r2324 2016-02-17 10:00:23 +0100 kohm:
+
+ * .globalignores, .ignore: svn ignore list changed
+
+r2323 2016-02-17 09:34:48 +0100 kohm:
+
+ * .globalignores, .ignore, tocbasic.dtx, README.in/, doc/,
+ doc/ngerman/, doc/english/: svn ignore list changed
+
+r2322 2016-02-16 17:25:20 +0100 kohm:
+
+ * scrkernel-compatibility.dtx: Summary: emulatestandardclasses changes
+ font of headings also for scrartcl
+
+r2321 2016-02-16 16:35:29 +0100 kohm:
+
+ * scrkernel-typearea.dtx: Summary: twocolumn-depending \sloppy and
+ \raggedbottom/\flushbottom delayed
+
+r2320 2016-02-06 13:55:29 +0100 kohm:
+
+ * scrjura.dtx: Summary: new \parformatseparation with default
+ \nobreakspace instead of hard coded \nobreakspace
+
+r2319 2016-02-06 13:18:07 +0100 kohm:
+
+ * scrkernel-basics.dtx: Summary: scrbase can be loaded before
+ \documentclass
+
+r2318 2016-01-29 12:40:15 +0100 kohm:
+
+ * scrkernel-listsandtabulars.dtx, scrkernel-sections.dtx,
+ scrkernel-miscellaneous.dtx: new: special option
+ egregdoesnotlikesansseriftitles
+
+r2317 2016-01-27 11:25:16 +0100 kohm:
+
+ * TODO: docu issue (missing options of \DeclareNewTOC)
+
+r2316 2016-01-19 09:46:48 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: \section etc. have to change
+ \parfillskip if afterskip is > 0 not of beforeskip is < 0
+
+r2315 2016-01-15 16:14:15 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: Default of several level depening
+ settings changed
+
+r2314 2016-01-15 13:35:17 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: change: some commands deleted, some renamed,
+ one new length
+
+r2313 2016-01-15 12:44:20 +0100 kohm:
+
+ * scrkernel-basics.dtx: Summary: date
+
+r2312 2016-01-15 12:44:01 +0100 kohm:
+
+ * scrkernel-basics.dtx: Summary: Warning about usage of
+ \l@appto@macro@a and \l@preto@macro@a.
+
+r2311 2016-01-12 11:49:21 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: new: \@BeforeTOCEntry and \@AfterTOCEntry
+ for all toc entry styles
+
+r2310 2016-01-05 19:03:19 +0100 kohm:
+
+ * scrkernel-language.dtx: Summary: always define \captionsngerman,
+ \captionsaustrian, \captionsnaustrian, \captionsswiss and
+ \captionsnswiss if polyglossia an language german ist used
+
+r2309 2016-01-05 16:41:35 +0100 kohm:
+
+ * scrkernel-language.dtx: Summary: several tricks to make caption name
+ definitions or changes for ngerman, austrian, naustrian, swiss and
+ nswiss also work with polyglossia
+
+r2308 2015-12-23 09:33:52 +0100 kohm:
+
+ * scrkernel-sections.dtx: Summary: two times \parfillskip set to 0pt
+ plus 1fil instead of \fill
+
+r2307 2015-12-17 11:57:09 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex, doc/english/,
+ doc/english/scrlttr2.tex: fix: undefined reference [Elke]
+
+r2306 2015-12-17 11:44:15 +0100 kohm:
+
+ * tocbasic.dtx: fix: Fammily [Elke]
+
+r2305 2015-12-16 13:19:31 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, tocbasic.dtx: new: \DeclareNewTOC
+ understands option tocentrystyle and provides all options of the toc
+ entry style
+
+r2304 2015-12-12 09:55:47 +0100 kohm:
+
+ * scrkernel-typearea.dtx, scrkernel-pagestyles.dtx: fix:
+ head/footsepline handling of typearea package
+
+r2303 2015-12-11 10:55:30 +0100 kohm:
+
+ * tocbasic.dtx: fix: usage of \scr@ifundefinedorrelax
+
+r2302 2015-12-11 10:53:59 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: property change
+
+r2301 2015-12-11 10:52:22 +0100 kohm:
+
+ * tocbasic.dtx: Summary: property change
+
+r2300 2015-12-11 10:49:30 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, tocbasic.dtx: tocbasic uses scrbase
+
+r2299 2015-12-09 09:25:56 +0100 kohm:
+
+ * Makefile, manifest.txt, scrmain.ins, tocbasic.dtx, doc/,
+ doc/english/, doc/english/Makefile, doc/english/tocbasic.tex: change:
+ scrkernel-tocbasic.dtx is mandatory not optional change: user manual
+ of package tocbasic is not longer part of tocbasic.dtx
+
+r2298 2015-12-08 09:27:34 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, scrmain.ins, tocbasic.dtx: change: most of
+ the TOC style features moved to tocbasic.sty, so tocbasic needs
+ scrbase now
+
+r2297 2015-12-07 18:48:04 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, scrkernel-sections.dtx: Summary: store the
+ toc entry style only once per symbolic entry level
+
+r2296 2015-12-07 16:16:54 +0100 kohm:
+
+ * TODO: note about TODOs in scrkernel-sections.dtx
+
+r2295 2015-12-07 16:08:18 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, scrmain.ins: new: TOC styles part, chapter,
+ section, subsection, default
+
+r2294 2015-12-07 13:06:51 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, scrkernel-sections.dtx: Summary:
+ \DeclareTOCEntryStyle syntax changed so it needs only one argument;
+ several commands became internal macros
+
+r2293 2015-12-01 08:28:49 +0100 kohm:
+
+ * scrkernel-sections.dtx: Summary: formatting code
+
+r2292 2015-11-29 17:35:46 +0100 kohm:
+
+ * scrkernel-sections.dtx: Summary: fix warning message
+
+r2291 2015-11-26 12:07:32 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: style options with (at most one)
+ argument
+
+r2290 2015-11-26 09:24:54 +0100 kohm:
+
+ * scrkernel-listsof.dtx: Summary: some preparation for cooperating
+ with scrkernel-tocstyle
+
+r2289 2015-11-25 21:42:33 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, scrkernel-basics.dtx: fix:
+ \TOCEntryStyleInitCode and \TOCEntryStyleStartInitCode
+
+r2288 2015-11-25 17:52:09 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: use my own box
+
+r2287 2015-11-25 15:43:36 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: \CloneTOCEntryStyle
+
+r2286 2015-11-25 15:14:59 +0100 kohm:
+
+ * scrkernel-basics.dtx: new: \l@preto@macro and \l@preto@macro@a
+
+r2285 2015-11-25 14:22:21 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: options do not longer use @dte@ but
+ @tso@
+
+r2284 2015-11-25 10:53:52 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: change: restructutation of the source code
+ to avoid double implementation
+
+r2283 2015-11-24 13:49:50 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: usage of addpenalty in vmode only
+
+r2282 2015-11-24 09:35:27 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: several new options for toc entry style
+ tocline
+
+r2281 2015-11-23 14:10:31 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: options numberformat and
+ entryformat for entry style tocline
+
+r2280 2015-11-23 10:58:23 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, scrmain.ins: start of new (universal) toc
+ entry style tocline
+
+r2279 2015-11-23 10:46:01 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: missing % added
+
+r2278 2015-11-20 15:26:19 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, scrmain.ins: new: toc entry style
+ largetocline
+
+r2277 2015-11-20 12:39:09 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: new toc style undottedtocline
+
+r2276 2015-11-20 12:05:35 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: docu fixes
+
+r2275 2015-11-20 11:36:12 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: end of style conditional added
+
+r2274 2015-11-20 10:44:21 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, scrmain.ins: new: TOC styles gobble and
+ dottedtocline
+
+r2273 2015-11-20 10:43:55 +0100 kohm:
+
+ * scrkernel-basics.dtx: new: \l@addto@macro@a
+
+r2272 2015-11-19 09:01:30 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: new: optional style init code
+
+r2271 2015-11-18 17:41:28 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: book|report condition
+
+r2270 2015-11-18 17:37:59 +0100 kohm:
+
+ * scrkernel-sections.dtx: checksum and unmasked trace output
+
+r2269 2015-11-18 17:35:18 +0100 kohm:
+
+ * scrkernel-sections.dtx: change: not yet defined toc style
+ information handling removed
+
+r2268 2015-11-18 16:25:18 +0100 kohm:
+
+ * scrmain.ins: scrkernel-sections uses features of scrkernel-tocstyle
+
+r2267 2015-11-18 14:03:00 +0100 kohm:
+
+ * scrkernel-sections.dtx: todo notes added
+
+r2266 2015-11-18 10:41:05 +0100 kohm:
+
+ * scrkernel-sections.dtx: do not longer define a dummy option list but
+ use the special member option @else@
+
+r2265 2015-11-18 10:40:24 +0100 kohm:
+
+ * TODO, scrkernel-basics.dtx: \FamilyExecuteOptions has a special
+ handling für member option @else@
+
+r2264 2015-11-17 18:26:57 +0100 kohm:
+
+ * doc/, doc/Makefile: fix: distclean_local
+
+r2263 2015-11-17 18:10:58 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: change: usable \DeclareTOCEntryStyle and
+ usable \DeclareTOCStyleEntry
+
+r2262 2015-11-17 16:15:53 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: do not use
+ \DeclareSectionCommandDummyOption any longer
+
+r2261 2015-11-17 12:14:34 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: changes: Have a look at the TODO notes!
+
+r2260 2015-11-17 12:08:54 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: \DeclareSectionCommandStyleNumberOption
+
+r2259 2015-11-17 11:47:54 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: Summary: optional TOC styles are ready to be
+ used
+
+r2258 2015-11-13 12:34:19 +0100 kohm:
+
+ * scrmain.ins: scrkernel-tocstyle prepare
+
+r2257 2015-11-13 12:19:37 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx: new: \DeclareTOCStyleEntry (currently
+ unused)
+
+r2256 2015-11-13 09:46:59 +0100 kohm:
+
+ * scrsource.tex: fix: generation without scrkernel-tocstyle.dtx
+
+r2255 2015-11-13 09:44:57 +0100 kohm:
+
+ * scrkernel-tocstyle.dtx, scrsource.tex, scrmain.ins,
+ scrkernel-sections.dtx, scrdocstrip.tex: change: KOMA-Script can be
+ implemented either with or without optional scrkernel-tocstyle.dtx
+
+r2254 2015-11-12 10:31:08 +0100 kohm:
+
+ * scrkernel-sections.dtx: change: \DeclareSectionCommand etc. do only
+ accept options of the current style
+
+r2253 2015-11-12 09:21:34 +0100 kohm:
+
+ * scrdocstrip.tex: improved: beta message
+
+r2252 2015-11-12 09:01:36 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: empty style parameter at
+ \DeclareSectionCommand etc.
+
+r2251 2015-11-06 11:10:25 +0100 kohm:
+
+ * scrkernel-sections.dtx: new: toc entries for part, chapter and
+ section respect tocindent in the main classes
+
+r2250 2015-11-06 10:16:26 +0100 kohm:
+
+ * TODO, doc/, doc/guide.bib, doc/ngerman/, doc/ngerman/scrlayer.tex,
+ doc/english/, doc/english/scrlayer.tex: change: reference to picture
+ package (suggestion by rolf)
+
+r2249 2015-11-04 08:07:36 +0100 kohm:
+
+ * scrjura.dtx: Summary: detection of lists, minipages etc. before
+ \Sentence
+
+r2248 2015-11-03 10:31:16 +0100 kohm:
+
+ * scrjura.dtx: fix: \Sentence at start of paragraph creates wrong
+ reference
+
+r2247 2015-11-03 09:37:48 +0100 kohm:
+
+ * scrjura.dtx: fix: \@doendpe has been changed in LaTeX 2015/01/01
+
+r2246 2015-11-02 08:02:18 +0100 kohm:
+
+ * scrkernel-typearea.dtx: Fix: twoside executes \flushbottom but
+ twocolumn does not recognize twoside
+
+ and executes \raggedbottom at class option initialization.
+
+r2245 2015-10-21 10:21:22 +0200 kohm:
+
+ * scrkernel-basics.dtx: change: deprecated options activate deprecated
+ font commands
+
+r2244 2015-10-21 10:02:33 +0200 kohm:
+
+ * scrkernel-fonts.dtx: change: improved deprecated font command
+ message
+
+r2243 2015-10-21 09:45:18 +0200 kohm:
+
+ * TODO: removed: \if… issue
+
+r2242 2015-10-21 09:44:26 +0200 kohm:
+
+ * scrkernel-basics.dtx: change: \ifisglue reimplemented
+
+r2241 2015-10-20 11:06:45 +0200 kohm:
+
+ * scrkernel-basics.dtx: change: reimplementation of \ifisinteger
+ improved
+
+r2240 2015-10-19 17:57:29 +0200 kohm:
+
+ * scrkernel-basics.dtx: new: \ifislengthprimitive
+
+r2239 2015-10-19 16:37:08 +0200 kohm:
+
+ * scrkernel-basics.dtx: fix: \newcommand instead of \renewcommand
+
+r2238 2015-10-19 16:35:35 +0200 kohm:
+
+ * scrkernel-basics.dtx: change: \ifisinteger reimplemented
+
+r2237 2015-10-19 13:45:06 +0200 kohm:
+
+ * scrkernel-basics.dtx: change: \ifiscounter improved
+
+r2236 2015-10-19 12:40:09 +0200 kohm:
+
+ * scrkernel-basics.dtx: new: \ifisdefchar
+
+r2235 2015-10-19 12:15:34 +0200 kohm:
+
+ * scrkernel-basics.dtx: change: \ifisnumexpr reimplemented
+
+r2234 2015-10-19 12:04:30 +0200 kohm:
+
+ * scrkernel-basics.dtx: change: \ifisglueexpr reimplemented
+
+r2233 2015-10-19 11:53:52 +0200 kohm:
+
+ * scrkernel-basics.dtx: change: \ifisdimexpr reimplemented
+
+r2232 2015-10-19 10:29:26 +0200 kohm:
+
+ * TODO: new general issue with \ifis…
+
+r2231 2015-10-19 10:13:54 +0200 kohm:
+
+ * scrkernel-basics.dtx: change: reimplementation if \ifiscount
+
+r2230 2015-10-19 09:56:04 +0200 kohm:
+
+ * scrkernel-basics.dtx: change: reimplementation of \ifisskip
+
+r2229 2015-10-19 09:35:54 +0200 kohm:
+
+ * scrkernel-basics.dtx: change: reimplementation of \ifisdimen
+
+r2228 2015-10-15 14:15:09 +0200 kohm:
+
+ * scrkernel-sections.dtx: fix: Option counterwithin of
+ \DeclareSectionCommand etc.
+
+r2227 2015-10-14 16:31:04 +0200 kohm:
+
+ * scrkernel-title.dtx: fix: last fix improved
+
+r2226 2015-10-14 16:18:07 +0200 kohm:
+
+ * scrkernel-title.dtx: fix: overfull \hbox on title pages
+
+r2225 2015-10-14 11:19:36 +0200 kohm:
+
+ * scrkernel-fonts.dtx: change: old font commands throw errors by
+ default. You may use (already deprecated option)
+ enabledeprecatedfontcommands to change the error into a warning
+ message.
+
+r2224 2015-10-09 17:11:06 +0200 kohm:
+
+ * TODO, tocbasic.dtx, doc/, doc/ngerman/, doc/ngerman/tocbasic.tex:
+ change: docu of hyperref issue
+
+r2223 2015-10-08 13:53:29 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: typofix
+
+r2222 2015-10-08 08:18:34 +0200 kohm:
+
+ * scrkernel-notepaper.dtx: change: allow final line break in \closing
+
+r2221 2015-10-07 12:17:20 +0200 kohm:
+
+ * scrkernel-sections.dtx: new: \toclevel@… will be set by
+ \DeclareSectionCommand etc. if it could be usefull
+
+r2220 2015-10-07 09:30:29 +0200 kohm:
+
+ * scrkernel-typearea.dtx, TODO, scrlayer-notecolumn.dtx: changes:
+ ready for luaTeX 0.80.1/0.81
+
+r2219 2015-10-07 07:37:37 +0200 kohm:
+
+ * TODO: new issue because of luaTeX change
+
+r2218 2015-10-06 14:04:15 +0200 kohm:
+
+ * TODO: new nice to have
+
+r2217 2015-10-06 12:19:14 +0200 kohm:
+
+ * TODO: new to do
+
+r2216 2015-10-06 12:13:11 +0200 kohm:
+
+ * scrkernel-sections.dtx: new: \DeclareSectionCommand option tocstyle
+ with value one of part, chapter,
+ section, subsection
+
+r2215 2015-10-06 11:50:41 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.20 BETA
+
+r2214 2015-10-03 14:59:44 +0200 kohm:
+
+ * releaselist.txt: release 2015/10/03 v3.19a
+
+r2213 2015-10-03 14:59:03 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.19a
+
+r2212 2015-10-03 14:51:00 +0200 kohm:
+
+ * scrkernel-sections.dtx: fix: Chapter numberings in \frontmatter and
+ \backmatter are not suppressed [YD]
+
+r2211 2015-09-30 11:43:03 +0200 kohm:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/guide-ngerman.tex, doc/english/,
+ doc/english/guide-english.tex: \GuideCTANserver replaced by
+ mirror.ctan.org
+
+r2210 2015-09-29 10:31:05 +0200 kohm:
+
+ * scrkernel-version.dtx: switched back to development state
+
+r2209 2015-09-29 10:27:45 +0200 kohm:
+
+ * releaselist.txt: release 2015/09/29 v3.19
+
+r2208 2015-09-29 10:13:01 +0200 kohm:
+
+ * scrkernel-version.dtx: prepared for 3.19
+
+r2207 2015-09-27 10:14:13 +0200 kohm:
+
+ * TODO: new nice to have: TOC feature pagestyle
+
+r2206 2015-09-27 10:08:34 +0200 kohm:
+
+ * scrkernel-listsof.dtx: fix: typo in warning message
+
+r2205 2015-09-15 12:55:19 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: Rechtschreibung
+
+r2204 2015-09-15 11:35:31 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlayer.tex, doc/english/,
+ doc/english/scrlayer.tex: new: doc of layer mode and the commands of
+ new layer mode picture
+
+r2203 2015-09-15 11:32:08 +0200 kohm:
+
+ * doc/, doc/scrguide.cls: fix: LenToUnit no LengthToUnit
+
+r2202 2015-09-14 10:57:28 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: neu: Doku für
+ mode=picture einschl. der dafür reservierten neuen Anweisungen new:
+ Doku für \layervalign und \layerhalign
+
+r2201 2015-09-14 10:54:18 +0200 kohm:
+
+ * doc/, doc/scrguide.cls: version
+
+r2200 2015-09-14 10:53:49 +0200 kohm:
+
+ * doc/, doc/scrguide.cls: added more moretexcs
+
+r2199 2015-09-14 10:33:00 +0200 kohm:
+
+ * doc/, doc/guide.bib: change: using new version of eso-pic
+
+r2198 2015-09-11 14:31:18 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle-experts.tex:
+ fix: counterwithout cancels counterwithin
+
+r2197 2015-09-10 07:56:45 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: new: doc of
+ \DeclareSectionCommand's counterwithout
+
+r2196 2015-09-09 08:02:50 +0200 kohm:
+
+ * TODO: need doc of \DeclareSectionCommand's counterwithout
+
+r2195 2015-09-09 08:01:54 +0200 kohm:
+
+ * scrkernel-sections.dtx: new: \DeclareSectionCommand attribute
+ "counterwithout"
+
+r2194 2015-09-04 17:26:05 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex, doc/english/,
+ doc/english/typearea.tex: added: note about the optional argument of
+ \areaset
+
+r2193 2015-09-03 10:08:20 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: doc:
+ \sectionlinesformat, \sectioncatchphraseformat
+
+r2192 2015-09-03 09:21:21 +0200 kohm:
+
+ * scrkernel-sections.dtx: change: added extra group in
+ \sectionlinesformat
+
+r2191 2015-09-03 09:18:20 +0200 kohm:
+
+ * scrkernel-sections.dtx: change: redundant change if
+ \interlinepenalty removed from \sectionlinesformat
+
+r2190 2015-08-29 19:21:55 +0200 kohm:
+
+ * scrkernel-basics.dtx: fix: \protected@edef new: \IfArgIsEmpty
+
+r2189 2015-08-29 12:11:08 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex:
+ fix: Doppelter Schlusspunkt
+
+r2188 2015-08-28 16:54:24 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ change: Stichwortverzeichniseinträge für Gliederungsstile
+
+r2187 2015-08-27 21:14:32 +0200 kohm:
+
+ * scrkernel-sections.dtx: change: \sectionlinesformat and
+ \sectioncatchphraseformat has a new first
+ argument, level
+
+r2186 2015-08-27 11:10:36 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrbookreportarticle-experts.tex: new: \chapterlinesformat
+ and \chapterlineswithprefixformat
+
+r2185 2015-08-27 10:30:15 +0200 kohm:
+
+ * doc/, doc/scrguide.cls: change: add new commands to moretexcs of
+ listings style KOMA
+
+r2184 2015-08-27 10:05:10 +0200 kohm:
+
+ * scrkernel-sections.dtx: change: \raggedchapter moved and \@hangfrom
+ called with extra group
+
+r2183 2015-08-25 11:11:53 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex, doc/english/,
+ doc/english/scrlttr2.tex: new: \letterpagestyle
+
+r2182 2015-08-25 11:10:08 +0200 kohm:
+
+ * scrkernel-title.dtx, scrkernel-index.dtx, scrkernel-sections.dtx:
+ change: use only defined non empty page styles
+
+r2181 2015-08-24 11:30:25 +0200 kohm:
+
+ * scrkernel-fonts.dtx: fix: \addtokomafontgobblelist uses wrong list
+ [Falk]
+
+r2180 2015-08-24 11:28:16 +0200 kohm:
+
+ * scrkernel-footnotes.dtx, doc/, doc/ngerman/,
+ doc/ngerman/common-footnotes.tex, doc/ngerman/scrextend.tex,
+ doc/english/, doc/english/common-footnotes.tex,
+ doc/english/scrextend.tex: fix: scrextend does not use footnote rule
+ settings, so it should not provide setting them fix: scrextend uses
+ \providecommand instead of \newcommand to define
+ \multiplefootnotemark
+
+r2179 2015-08-22 08:36:48 +0200 kohm:
+
+ * scrkernel-paragraphs.dtx: fix: usage of \setlength and \addtolength
+ inside \par@update provocates an conflict with tikz
+
+r2178 2015-08-20 18:11:02 +0200 kohm:
+
+ * scrkernel-fonts.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: fix: usage of font names
+ with special characters with \usefontofkomafont etc.
+
+r2177 2015-08-20 09:23:35 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex, doc/english/,
+ doc/english/scrlttr2.tex: - kind of translation of counter letter and
+ commands \thisletter and \letterlastpage
+
+r2176 2015-08-18 12:58:10 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: added: doc of
+ index=numbered and toc=indexnumbered
+
+r2175 2015-08-11 17:51:46 +0200 kohm:
+
+ * scrhack.dtx: fix: lscape hack with more than one landscape page
+
+r2174 2015-08-02 13:58:44 +0200 kohm:
+
+ * TODO, scrkernel-sections.dtx: new: commands \chapterlinesformat and
+ \chapterlineswithprefixformat
+
+r2173 2015-07-30 11:56:39 +0200 kohm:
+
+ * scrkernel-version.dtx: change: version date
+
+r2172 2015-07-30 11:39:05 +0200 kohm:
+
+ * scrlayer.dtx, TODO: removed: layer attribute picturecontents new:
+ layer attribute mode with predefined values text, raw and picture
+ new: inside layers \layerhalign and \layervalign can be used to
+ detect but not change the layer alignment
+
+r2171 2015-07-29 08:48:19 +0200 kohm:
+
+ * scrkernel-paragraphs.dtx: fix: \setparsizes uses \par@updaterelativ
+ until first \selectfont at \begin{document}
+
+r2170 2015-07-27 11:52:22 +0200 kohm:
+
+ * scrlayer.dtx, TODO: new: layer attribute picturecontents
+
+r2169 2015-07-26 12:14:32 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: new:
+ Dokumentation von Zähler letter und Anweisungen \thisletter und
+ \letterlastpage
+
+r2168 2015-07-26 11:32:03 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.19 BETA
+
+r2167 2015-07-26 11:18:40 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-interleafpage.tex,
+ doc/english/, doc/english/common-interleafpage.tex: doc-fix:
+ \cleardoubleoddpageusingstyle and \cleardoubleevenpageusingstyle
+
+r2166 2015-07-26 10:15:44 +0200 kohm:
+
+ * scrkernel-typearea.dtx: fix: pfdtex settings
+
+r2165 2015-07-26 08:26:14 +0200 kohm:
+
+ * TODO, scrkernel-sections.dtx: new: \sectionlinesformat and
+ \sectioncatchphraseformat
+
+r2164 2015-07-26 08:24:01 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: fix: Doku zu
+ \if@atdocument
+
+r2163 2015-07-15 18:39:57 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex, doc/english/,
+ doc/english/scrlttr2-experts.tex: fix: \LetterOptionsNeedsPapersize
+ example
+
+r2162 2015-07-15 09:30:52 +0200 kohm:
+
+ * scrkernel-notepaper.dtx, scrkernel-pagestyles.dtx, TODO: new:
+ \letterpagestyle can be used to auto-change the page style of
+ letters new: letters are numbered new: \thisletter gives the number
+ of the current letter with it's prefix new: \letterlastpage gives
+ the last page number of the current letter
+
+r2161 2015-07-08 14:05:44 +0200 kohm:
+
+ * scrkernel-pagestyles.dtx: fix: headinclude and footinclude at
+ headsepline and footsepline
+
+r2160 2015-07-08 11:06:35 +0200 kohm:
+
+ * Makefile: change: lscape.hak added
+
+r2159 2015-07-08 10:27:58 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrhack.tex, doc/english/,
+ doc/english/scrhack.tex: additional fixes of the new sections by Elke
+
+r2158 2015-07-08 09:10:34 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrhack.tex, doc/english/,
+ doc/english/scrhack.tex: improvement of new section
+
+r2157 2015-07-07 21:29:19 +0200 kohm:
+
+ * scrhack.dtx: new: lscape hack
+
+r2156 2015-07-07 21:28:34 +0200 kohm:
+
+ * scrsource.tex, scrhack.dtx, doc/, doc/guide.bib, doc/ngerman/,
+ doc/ngerman/scrhack.tex, doc/english/, doc/english/scrhack.tex: new:
+ lscape hack
+
+r2155 2015-07-07 08:42:29 +0200 kohm:
+
+ * scrkernel-basics.dtx: change: \ifisskip accepts \baselineskip or
+ \parskip as skip
+
+r2154 2015-07-06 18:18:47 +0200 kohm:
+
+ * scrkernel-basics.dtx: fix: Usage of \FamilyKeyStateProcessed
+
+r2153 2015-07-03 22:06:24 +0200 kohm:
+
+ * scrkernel-basics.dtx: fix: missing % in family keys without default
+ value added
+
+r2152 2015-07-03 22:03:38 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: start of new
+ beta
+
+r2151 2015-07-03 11:25:42 +0200 kohm:
+
+ * scrkernel-language.dtx: fix: emergency code for brain dead language
+ default settings (like hyphen.cfg of babel) now executes all
+ commands using \@nameuse and also executes \@nameuse{extra…}
+
+r2150 2015-07-02 10:10:21 +0200 kohm:
+
+ * releaselist.txt: release 2015/07/02 v3.18
+
+r2149 2015-07-02 10:07:30 +0200 kohm:
+
+ * scrkernel-version.dtx: prepared for 3.18
+
+r2148 2015-06-25 16:58:59 +0200 kohm:
+
+ * TODO: new nice to have
+
+r2147 2015-06-24 08:16:16 +0200 kohm:
+
+ * scrlayer-scrpage.dtx: fix: pagestyle for scrlttr2 sets \lofoot und
+ \rofoot
+
+r2146 2015-06-20 08:38:46 +0200 kohm:
+
+ * tocbasic.dtx: change: \DeclareNewTOC option handling more compatible
+ with version 3.17
+
+r2145 2015-06-18 09:58:50 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex,
+ doc/english/, doc/english/common-pagestylemanipulation.tex: added:
+ notes about need of cooperation of the classes for e.g. running
+ heads at part level
+
+r2144 2015-06-17 17:38:01 +0200 kohm:
+
+ * scrkernel-bibliography.dtx: fix: checksum again
+
+r2143 2015-06-17 17:32:55 +0200 kohm:
+
+ * scrkernel-bibliography.dtx: fix: checksum
+
+r2142 2015-06-17 17:28:16 +0200 kohm:
+
+ * scrkernel-bibliography.dtx: fix: usage of \@mkdouble if available
+
+r2141 2015-06-17 13:12:54 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/english/, doc/english/scrbookreportarticle-experts.tex: index fix
+
+r2140 2015-06-17 12:15:52 +0200 kohm:
+
+ * scrkernel-basics.dtx, doc/, doc/ngerman/, doc/ngerman/scrbase.tex,
+ doc/english/, doc/english/scrbase.tex: new: scrbase can be loaded
+ before \documentclass new: \BeforeFamilyProcessOptions
+
+r2139 2015-06-17 12:13:56 +0200 kohm:
+
+ * doc/, doc/scrguide.cls: change: new keywords
+
+r2138 2015-06-17 12:09:40 +0200 kohm:
+
+ * scrkernel-version.dtx: fix: \scr@clsextension
+
+r2137 2015-06-17 09:12:11 +0200 kohm:
+
+ * scrlayer-scrpage.dtx: fix: line length of \setheadtopline,
+ \setheadsepline, \setfootsepline, and \setfootbotline
+
+r2136 2015-06-16 08:17:22 +0200 kohm:
+
+ * TODO: some new nice to haves
+
+r2135 2015-06-15 13:41:43 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex,
+ doc/ngerman/scrbookreportarticle.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex: fix: spelling [Elke]
+
+r2134 2015-06-15 13:34:28 +0200 kohm:
+
+ * scrkernel-index.dtx, scrkernel-bibliography.dtx,
+ scrkernel-listsof.dtx, TODO: change: usage of \@mkright and \@mkdouble
+ if available change: braindead options index=leveldown,
+ index=standardlevel, index=numbered, toc=indexnumbered
+
+r2133 2015-06-14 11:14:48 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: change:
+ explanation of \chaptermark, \sectionmark, \addchapmark, \addsecmark
+
+r2132 2015-06-12 12:27:11 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: change: section command
+ styles "part" and "chapter" completed
+
+r2131 2015-06-10 20:17:51 +0200 kohm:
+
+ * scrkernel-sections.dtx: fix: to many \chapterheadstartvskip in
+ \scr@@makechapterhead
+
+r2130 2015-06-10 11:36:46 +0200 kohm:
+
+ * scrkernel-pagestyles.dtx, TODO, scrkernel-sections.dtx: fix:
+ scrartcl needs \hy@insteadofrefstepcounter
+
+r2129 2015-06-09 19:00:46 +0200 kohm:
+
+ * scrkernel-sections.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex: change: revert change of
+ \IfUsePrefixLine in \chapterformat
+
+r2128 2015-06-09 18:25:14 +0200 kohm:
+
+ * TODO: fixed: multicol issue
+
+r2127 2015-06-09 18:01:28 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: new:
+ \IfChapterUsesPrefixLine
+
+r2126 2015-06-09 11:26:36 +0200 kohm:
+
+ * scrkernel-sections.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex: change: \IfUsePrefix defined
+ outside section command style despite the fact it should be used
+ only inside
+
+r2125 2015-06-09 09:58:46 +0200 kohm:
+
+ * scrlayer.dtx: change: usage of \parbox[b] instead if \parbox[t] at
+ \@oddhead and \@evenhead
+
+ to avoid strange problems using package multicol
+
+r2124 2015-06-09 08:25:28 +0200 kohm:
+
+ * scrmain.ins: fix: flags at scrextend generation
+
+r2123 2015-06-05 11:04:41 +0200 kohm:
+
+ * TODO: new issue and new docu need
+
+r2122 2015-06-03 10:05:35 +0200 kohm:
+
+ * scrkernel-letterclassoptions.dtx: change: error handling of
+ \RequirePackage or \usepackage inside lco-files
+
+r2121 2015-06-02 10:12:38 +0200 kohm:
+
+ * tocbasic.dtx: fix: expansion of \…name and \…listname
+
+r2120 2015-05-24 12:06:25 +0200 kohm:
+
+ * scrkernel-sections.dtx: change: three quarters of the way to section
+ command style "part"
+
+r2119 2015-05-23 09:21:40 +0200 kohm:
+
+ * scrkernel-sections.dtx: change: half way to section command style
+ "part"
+
+r2118 2015-05-22 17:34:34 +0200 kohm:
+
+ * scrhack.dtx: change: deactivate hyperref hack if
+ \hy@insteadofrefstepcounter has been
+
+ defined, i.e., by a KOMA-Script class ≥ 3.18.
+
+r2117 2015-05-22 16:22:03 +0200 kohm:
+
+ * TODO: no comment
+
+r2116 2015-05-22 16:02:58 +0200 kohm:
+
+ * scrmain.ins, scrkernel-sections.dtx: change: complete new
+ implementation of section command style "chapter"
+
+r2115 2015-05-21 15:48:01 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea-experts.tex, doc/english/,
+ doc/english/typearea-experts.tex: fix: spelling
+
+r2114 2015-05-21 10:36:19 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/typearea-experts.tex,
+ doc/english/, doc/english/typearea-experts.tex: new:
+ \BeforeRestoreareas and \AfterRestoreareas
+
+r2113 2015-05-21 10:09:53 +0200 kohm:
+
+ * scrkernel-sections.dtx: change: use of style in \@chapter and
+ \@schapter
+
+r2112 2015-05-21 09:46:12 +0200 kohm:
+
+ * scrkernel-sections.dtx: change: twocolumn behaviour of chapter style
+ headings improved
+
+r2111 2015-05-21 09:25:14 +0200 kohm:
+
+ * scrkernel-sections.dtx: fix: CheckSum
+
+r2110 2015-05-21 09:24:43 +0200 kohm:
+
+ * scrkernel-sections.dtx: fix: \@makechapterhead uses \csname
+ \scr@dsc@current format\endcsname instead
+
+ of \chapterformat if chapterprefix is on
+
+r2109 2015-05-21 09:17:57 +0200 kohm:
+
+ * scrkernel-sections.dtx: fix: \addchap and \addsec should work fix:
+ workaround for several packages that use internal macros
+
+ \@makechapterhead or \@makeschapterhead
+
+r2108 2015-05-20 20:11:25 +0200 kohm:
+
+ * scrkernel-typearea.dtx, TODO: new: \BeforeRestoreareas and
+ \AfterRestoreareas
+
+r2107 2015-05-20 13:27:00 +0200 kohm:
+
+ * scrkernel-pagestyles.dtx, TODO, scrkernel-sections.dtx: new: section
+ command style "chapter" defined
+
+r2106 2015-05-19 11:08:32 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex, doc/english/,
+ doc/english/scrlayer.tex: fix: deactivatepagestylelayers=true
+
+r2105 2015-05-19 09:35:29 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlayer.tex, doc/english/,
+ doc/english/scrlayer.tex: new: \ForEachLayerOfPageStyle* new: serveral
+ new layer options to remove restrictions
+
+r2104 2015-05-18 09:40:29 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex,
+ doc/english/, doc/english/common-pagestylemanipulation.tex: fix: index
+
+r2103 2015-05-18 08:58:57 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrhack.tex: improvement bei A. S.
+
+r2102 2015-05-14 17:05:21 +0200 kohm:
+
+ * scrlayer.dtx: new: counterparts to restriction layer attributes
+
+r2101 2015-05-14 12:20:33 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx, scrlayer.dtx,
+ TODO: new: less local working star version of \ForEachLayerOfPageStyle
+
+r2100 2015-05-14 11:58:43 +0200 kohm:
+
+ * TODO: new: nice to have
+
+r2099 2015-05-13 18:44:00 +0200 kohm:
+
+ * releaselist.txt: release 2015/05/15 v3.17c
+
+r2098 2015-05-13 18:23:25 +0200 kohm:
+
+ * scrjura.dtx: fix: scrjura version
+
+r2097 2015-05-13 18:17:20 +0200 kohm:
+
+ * scrjura.dtx: fix: Irgendwann muss das doch mal funktionierten!
+
+r2096 2015-05-13 18:03:07 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.17c
+
+r2095 2015-05-13 18:00:16 +0200 kohm:
+
+ * scrjura.dtx: fix: \expandafter
+
+r2094 2015-05-13 08:44:15 +0200 kohm:
+
+ * scrjura.dtx: fix: change entry
+
+r2093 2015-05-13 08:29:59 +0200 kohm:
+
+ * scrjura.dtx: fix: change entries
+
+r2092 2015-05-13 08:28:07 +0200 kohm:
+
+ * scrjura.dtx: fix: use correct format for automatic numbered new
+ environments
+
+r2091 2015-05-11 09:45:36 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: fix: unbestimmter
+ Artikel [Maximilian B.]
+
+r2090 2015-05-06 08:58:30 +0200 kohm:
+
+ * releaselist.txt: release 2015/05/06 v3.17a
+
+r2089 2015-05-06 08:10:29 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ release 3.17a
+
+r2088 2015-05-03 11:09:14 +0200 kohm:
+
+ * scrkernel-typearea.dtx: change: option pagesize in preamble is
+ partly delayed until \begin{document}
+
+r2087 2015-05-03 09:11:15 +0200 kohm:
+
+ * scrkernel-typearea.dtx: fix: group level error with pagesize=false
+
+r2086 2015-05-01 21:40:11 +0200 kohm:
+
+ * scrjura.dtx: fix: automatic numbering of sub-clauses of new defined
+ environments
+
+r2085 2015-05-01 21:27:42 +0200 kohm:
+
+ * scrjura.dtx: fix: automatic numbering of new defines environments
+
+r2084 2015-04-26 14:49:41 +0200 kohm:
+
+ * scrkernel-notepaper.dtx: fix: font aliases title and subject
+
+r2083 2015-04-26 14:48:47 +0200 kohm:
+
+ * scrkernel-version.dtx: neue Beta-Version
+
+r2082 2015-04-23 10:00:56 +0200 kohm:
+
+ * releaselist.txt: v3.17 released
+
+r2081 2015-04-23 08:46:09 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ release 3.17
+
+r2080 2015-04-21 10:08:26 +0200 kohm:
+
+ * doc/, doc/guide.tex: changed: author
+
+r2079 2015-04-20 09:12:08 +0200 kohm:
+
+ * scrkernel-sections.dtx: new: \addpartmark analogous to \addchapmark
+
+r2078 2015-04-17 11:26:39 +0200 kohm:
+
+ * Makefile: setspace.hak added
+
+r2077 2015-04-17 10:18:40 +0200 kohm:
+
+ * scrkernel-notepaper.dtx: change: \setbox --> \sbox
+
+r2076 2015-04-17 10:17:52 +0200 kohm:
+
+ * TODO: new nice to have
+
+r2075 2015-04-17 10:05:16 +0200 kohm:
+
+ * scrkernel-sections.dtx: change: replaced 0 by \z@ (two times)
+
+r2074 2015-04-16 18:05:17 +0200 kohm:
+
+ * README.in/, doc/, doc/ngerman/, doc/ngerman/scrhack.tex: fix: docu
+
+r2073 2015-04-16 10:41:14 +0200 kohm:
+
+ * scrhack.dtx, doc/, doc/ngerman/, doc/ngerman/scrhack.tex,
+ doc/english/, doc/english/scrhack.tex: new: setspace hack
+
+r2072 2015-04-13 17:39:00 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: doppelt
+ gemoppeltes \clearpage
+
+r2071 2015-04-13 10:01:12 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: change:
+ description of options open and headings=openany
+
+r2070 2015-04-08 11:02:19 +0200 kohm:
+
+ * scrlayer-scrpage.dtx: fix: warnings for font elements "pagehead" and
+ "pagefoot"
+
+r2069 2015-04-08 10:55:30 +0200 kohm:
+
+ * scrlayer-scrpage.dtx: fix: bug in "false" value of \reserved@b in
+ \sls@set@value
+
+r2068 2015-04-04 11:36:35 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/preface.tex: fix: \autoref
+
+r2067 2015-04-04 11:34:54 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/preface.tex: changed: translation is
+ a never ending story
+
+r2066 2015-04-04 11:18:50 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/common-textmarkup.tex,
+ doc/english/scrbookreportarticle-experts.tex: new: docu of
+ \addtokomafontrelaxlist
+
+r2065 2015-04-04 08:50:19 +0200 kohm:
+
+ * TODO: moved: \addtokomafontrelaxlist from nice to have to doc
+
+r2064 2015-04-03 14:04:50 +0200 kohm:
+
+ * scrkernel-sections.dtx: change: using \usefontofkomafont instead of
+ \usekomafont at initial font
+ setting of \@@makechapterhead
+
+r2063 2015-04-03 13:55:42 +0200 kohm:
+
+ * scrkernel-fonts.dtx: change: reimplementation of more robust
+ \usefontofkomafont etc. new: \addtokomafontrelaxlist
+
+r2062 2015-04-02 10:23:45 +0200 kohm:
+
+ * TODO: add: note about possible change of \usefontofkomafont etc.
+
+r2061 2015-04-02 09:27:25 +0200 kohm:
+
+ * TODO: added: nice to have completed section styles chapter and part
+
+r2060 2015-03-31 11:10:59 +0200 kohm:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbase.tex, doc/ngerman/common-marginpar.tex,
+ doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/ngerman/common-parmarkup.tex, doc/ngerman/common-fontsize.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/common-interleafpage.tex,
+ doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/common-headfootheight.tex, doc/ngerman/scrdatetime.tex,
+ doc/ngerman/common-dictum.tex, doc/ngerman/common-options.tex,
+ doc/ngerman/common-footnotes.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/common-lists.tex, doc/ngerman/tocbasic.tex,
+ doc/ngerman/common-draftmode.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/typearea-experts.tex, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/scrhack.tex, doc/ngerman/scrlayer.tex,
+ doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-pagestylemanipulation.tex,
+ doc/ngerman/common-oddorevenpage.tex, doc/ngerman/scrlfile.tex,
+ doc/ngerman/common-titles.tex, doc/ngerman/common-compatibility.tex,
+ doc/ngerman/common-typearea.tex, doc/ngerman/introduction.tex,
+ doc/ngerman/scrwfile.tex, doc/ngerman/scraddr.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrbase.tex,
+ doc/english/common-marginpar.tex,
+ doc/english/scrlayer-scrpage-experts.tex,
+ doc/english/common-parmarkup.tex, doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrlayer-notecolumn.tex,
+ doc/english/common-interleafpage.tex,
+ doc/english/scrlayer-scrpage.tex,
+ doc/english/common-headfootheight.tex, doc/english/scrdatetime.tex,
+ doc/english/common-dictum.tex, doc/english/japanlco.tex,
+ doc/english/common-footnotes.tex, doc/english/scrextend.tex,
+ doc/english/common-lists.tex, doc/english/common-draftmode.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/typearea-experts.tex,
+ doc/english/common-textmarkup.tex, doc/english/scrhack.tex,
+ doc/english/scrlayer.tex, doc/english/typearea.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-pagestylemanipulation.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/scrlfile.tex,
+ doc/english/common-titles.tex, doc/english/common-compatibility.tex,
+ doc/english/common-typearea.tex, doc/english/introduction.tex,
+ doc/english/scrwfile.tex, doc/english/scraddr.tex: usage of new
+ \seclabel and \exlabel
+
+r2059 2015-03-31 10:01:37 +0200 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/common-fontsize.tex,
+ doc/english/, doc/english/common-fontsize.tex: documentation of
+ fontsize issue
+
+r2058 2015-03-31 09:04:03 +0200 kohm:
+
+ * scrkernel-sections.dtx: fix: \protect usage of \…format in
+ \@seccntformat
+
+r2057 2015-03-31 08:29:00 +0200 kohm:
+
+ * TODO: added: \…format issue
+
+r2056 2015-03-30 10:24:20 +0200 kohm:
+
+ * scrkernel-typearea.dtx: change: one more usage of \scr@ta@v@is@lt
+
+r2055 2015-03-30 09:36:27 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/english/, doc/english/scrbookreportarticle-experts.tex: fix:
+ spelling + one note
+
+r2054 2015-03-30 08:58:41 +0200 kohm:
+
+ * scrkernel-fonts.dtx: fix: using \par@updaterelative only if defined
+
+r2053 2015-03-27 10:25:57 +0100 kohm:
+
+ * TODO, doc/, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: change: missing
+ translations at \DeclareSectionCommand and \chapterhead…vskip
+
+r2052 2015-03-27 09:07:21 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex: change: Änderungen bei
+ der Doku von \DeclareSectionCommand und Auswirkungen auf
+ \chapterhead…vskip vervollständigt
+
+r2051 2015-03-27 09:06:19 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex, doc/english/,
+ doc/english/typearea.tex: fix: end of DIV=classic
+
+r2050 2015-03-26 11:54:11 +0100 kohm:
+
+ * TODO: more need for docu
+
+r2049 2015-03-26 11:52:40 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ change: Stilbeschreibung und Tabellen für stilabhängige
+ Einstellungen
+
+r2048 2015-03-26 10:51:38 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrlayer-scrpage-experts.tex: fix:
+ list of table entry in English
+
+r2047 2015-03-26 09:38:26 +0100 kohm:
+
+ * scrkernel-typearea.dtx: fix: using typeareas version comparisons
+
+r2046 2015-03-26 09:21:28 +0100 kohm:
+
+ * scrkernel-fonts.dtx: fix: scrfontsizes.sty also adds
+ \par@updaterelative
+
+r2045 2015-03-25 10:47:54 +0100 kohm:
+
+ * scrkernel-paragraphs.dtx, scrkernel-fonts.dtx: change: last fix
+ should depend on KOMA-Script version
+
+r2044 2015-03-25 10:36:47 +0100 kohm:
+
+ * scrkernel-paragraphs.dtx, scrkernel-fonts.dtx: fix: update of
+ paragraph lengths after fontsize changes was incomplete
+
+r2043 2015-03-25 10:34:46 +0100 kohm:
+
+ * TODO: new: some information about late fontsize changes
+
+r2042 2015-03-25 09:44:27 +0100 kohm:
+
+ * scrkernel-sections.dtx: change: styles section, chapter, part use
+ the same variable macros for beforeskip, afterskip and innerskip
+
+r2041 2015-03-25 09:42:54 +0100 kohm:
+
+ * tocbasic.dtx: fix: moving \@mkboth, \@mkright, \@mkdouble caused
+ loosing \lastpenalty and \lastskip after heading; fixed by explicite
+ restoring them, but only in vertcial mode
+
+r2040 2015-03-24 17:58:57 +0100 kohm:
+
+ * TODO, scrkernel-sections.dtx: fix: \part can be configures (but but
+ not defined) using \DeclareSectionCommand
+
+r2039 2015-03-24 17:14:55 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: \setlenght → \setlength
+
+r2038 2015-03-24 11:13:55 +0100 kohm:
+
+ * TODO: new: missing part features, missing doc
+
+r2037 2015-03-24 11:09:29 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: checksum
+
+r2036 2015-03-24 11:08:54 +0100 kohm:
+
+ * scrkernel-typearea.dtx: fix: \KOMA@kav@addkey → \KOMA@kav@add
+
+r2035 2015-03-24 11:02:05 +0100 kohm:
+
+ * scrkernel-sections.dtx: change: parameters of (not yet defined)
+ section command style `chapter' can be set
+
+r2034 2015-03-24 09:39:48 +0100 kohm:
+
+ * scrkernel-sections.dtx: change: early test for existing section
+ command styles
+
+r2033 2015-03-24 09:10:17 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: error message for
+ \DeclareSectionCommand without style
+
+r2032 2015-03-24 08:14:20 +0100 kohm:
+
+ * TODO: addmargin issue solved
+
+r2031 2015-03-24 08:11:27 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: of fix
+
+r2030 2015-03-23 19:23:53 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: \DeclareSectionCommand's new option
+ expandtopt for tocindent and tocnumwidth
+
+r2029 2015-03-23 18:51:30 +0100 kohm:
+
+ * scrkernel-sections.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: new:
+ \DeclareSectionCommand provides option expandtopt with default
+ false.
+
+r2028 2015-03-23 13:19:51 +0100 kohm:
+
+ * scrkernel-listsandtabulars.dtx, scrkernel-miscellaneous.dtx: fix:
+ addmargin* resulting in a page break should work now
+
+r2027 2015-03-23 12:29:03 +0100 kohm:
+
+ * TODO: change: nice to have about \providecaptionname rejected
+
+r2026 2015-03-23 11:45:37 +0100 kohm:
+
+ * tocbasic.dtx: fix: feature noparskipfake
+
+r2025 2015-03-23 11:42:35 +0100 kohm:
+
+ * tocbasic.dtx: fix: wrong change entry
+
+r2024 2015-03-23 11:41:38 +0100 kohm:
+
+ * tocbasic.dtx, doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: fix:
+ initial \parskip at the TOCs added unless feature noparskipfake has
+ been set
+
+r2023 2015-03-23 08:17:44 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2-experts.tex,
+ doc/english/scrbookreportarticle-experts.tex: changes: several
+ improvements of new docu by Arndt
+
+r2022 2015-03-23 08:00:03 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ changes: vor … zuvor war doppelt gemoppelt
+
+r2021 2015-03-22 11:09:00 +0100 kohm:
+
+ * TODO, doc/, doc/english/, doc/english/scrlayer-scrpage-experts.tex:
+ changes: table of layers of page styles
+
+r2020 2015-03-22 10:52:08 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrbookreportarticle-experts.tex: change: docu improvement
+
+r2019 2015-03-20 09:35:36 +0100 kohm:
+
+ * scrkernel-notepaper.dtx, scrkernel-pagestyles.dtx, TODO, doc/,
+ doc/ngerman/, doc/ngerman/scrlttr2-experts.tex, doc/english/,
+ doc/english/scrlttr2-experts.tex: new: \letterpagemark (scrletter
+ only) to solve the \pagemark issue of scrletter
+
+r2018 2015-03-19 11:32:54 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: changed: docu of
+ \DeclareSectionCommand, \chapterheadstartvskip, \partheadstartvskip
+ etc.
+
+r2017 2015-03-18 10:16:53 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrbookreportarticle-experts.tex: change: new reactivation
+ features for options twocolumn, twoside and parskip
+
+r2016 2015-03-18 09:29:06 +0100 kohm:
+
+ * scrkernel-typearea.dtx: fix: option twoside uses \cleardoubleoddpage
+ if available
+
+r2015 2015-03-18 09:24:52 +0100 kohm:
+
+ * scrkernel-typearea.dtx: fix: late option twoside uses
+ \cleardoublepage
+
+r2014 2015-03-18 09:16:01 +0100 kohm:
+
+ * TODO: change: since 3.17 \activateareas will also re-do parskip
+ settings if used
+ after \begin{document}
+
+r2013 2015-03-18 09:14:12 +0100 kohm:
+
+ * scrkernel-version.dtx, scrkernel-typearea.dtx: fix: orphan
+ \AtBeginDocument outside class and packages removed
+
+r2012 2015-03-18 08:29:48 +0100 kohm:
+
+ * TODO: twocolumn issue and similar twoside issue removed
+
+r2011 2015-03-17 12:39:55 +0100 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, scrkernel-notepaper.dtx, scrkernel-language.dtx,
+ scrkernel-footnotes.dtx, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-miscellaneous.dtx,
+ scrkernel-fonts.dtx, scrkernel-basics.dtx: fix: \@pkgextenstion not
+ valid after \begin{document} fix: late setting of twoside or
+ twocolumn changes not only \if@twoside resp. \if@twocolumn but also
+ everything early options do, e.g. \sloppy, \flushbottom,
+ \raggedbottom, but only if version >= 3.17
+
+r2010 2015-03-17 10:56:13 +0100 kohm:
+
+ * TODO: parskip issue
+
+r2009 2015-03-17 10:55:01 +0100 kohm:
+
+ * TODO: one issue removed two new added
+
+r2008 2015-03-16 10:41:58 +0100 kohm:
+
+ * scrkernel-notepaper.dtx: change: support for internal key and value
+ storage
+
+r2007 2015-03-16 09:44:20 +0100 kohm:
+
+ * scrkernel-basics.dtx: change: \KOMA@ncmdkey automatically replaces
+ the stored exclusive value
+
+r2006 2015-03-14 07:15:57 +0100 kohm:
+
+ * scrkernel-notepaper.dtx, scrkernel-sections.dtx: fix: usage of
+ \KOMAClassFileName instead of combinations of name and extension
+
+r2005 2015-03-13 16:50:29 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: chapterprefix [Elke]
+
+r2004 2015-03-12 17:10:03 +0100 kohm:
+
+ * scrkernel-miscellaneous.dtx: change: usage of internal key and value
+ storage
+
+r2003 2015-03-12 16:59:23 +0100 kohm:
+
+ * scrkernel-listsandtabulars.dtx: change: source unification (self
+ identification=
+
+r2002 2015-03-12 13:06:17 +0100 kohm:
+
+ * scrkernel-floats.dtx, scrkernel-typearea.dtx,
+ scrkernel-sections.dtx, scrkernel-miscellaneous.dtx,
+ scrkernel-fonts.dtx: change: source unification (compatibility tests
+ aka version setting tests)
+
+r2001 2015-03-12 12:29:57 +0100 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, scrkernel-notepaper.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, scrkernel-variables.dtx,
+ scrkernel-footnotes.dtx, scrkernel-index.dtx,
+ scrkernel-circularletters.dtx, scrkernel-bibliography.dtx,
+ scrkernel-typearea.dtx, scrkernel-pagestyles.dtx,
+ scrkernel-listsandtabulars.dtx, scrkernel-listsof.dtx,
+ scrkernel-letterclassoptions.dtx, scrkernel-pseudolengths.dtx,
+ scrkernel-sections.dtx, scrkernel-miscellaneous.dtx,
+ scrkernel-fonts.dtx, scrkernel-basics.dtx: change: source unification
+ (spaces and comments)
+
+r2000 2015-03-12 11:59:19 +0100 kohm:
+
+ * scrkernel-index.dtx, scrkernel-bibliography.dtx,
+ scrkernel-listsof.dtx: change: source unification (file extensions
+ change: source unification (self identification) change:
+ \KOMAClassFileName change: internal key and value storage
+
+r1999 2015-03-12 11:58:30 +0100 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, scrkernel-notepaper.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, scrkernel-footnotes.dtx,
+ scrkernel-typearea.dtx, scrkernel-pagestyles.dtx,
+ scrkernel-pseudolengths.dtx, scrkernel-sections.dtx,
+ scrkernel-miscellaneous.dtx, scrkernel-fonts.dtx,
+ scrkernel-basics.dtx: change: source unification (file extensions
+ change: source unification (self identification) change:
+ \KOMAClassFileName
+
+r1998 2015-03-11 23:09:38 +0100 kohm:
+
+ * scrkernel-compatibility.dtx: fix: \scr@v@is@… added to scrextend
+
+r1997 2015-03-11 20:19:06 +0100 kohm:
+
+ * scrkernel-footnotes.dtx: fix: Warning messages
+
+r1995 2015-03-11 18:37:10 +0100 kohm:
+
+ * .ignore, doc/, doc/ngerman/, doc/english/: svn:ingore changed
+
+r1994 2015-03-11 18:15:19 +0100 kohm:
+
+ * scrkernel-footnotes.dtx, scrkernel-pagestyles.dtx,
+ scrkernel-fonts.dtx: fix: Usage of \KOMAClassName and \ClassWarning in
+ scrextend
+
+r1993 2015-03-11 17:33:06 +0100 kohm:
+
+ * TODO: scrextend issue
+
+r1992 2015-03-11 12:52:08 +0100 kohm:
+
+ * scrkernel-footnotes.dtx: change: support for internal key and value
+ storage
+
+r1991 2015-03-11 12:07:29 +0100 kohm:
+
+ * scrkernel-floats.dtx: fix: Copyright date
+
+r1990 2015-03-11 12:07:11 +0100 kohm:
+
+ * scrkernel-floats.dtx: change: option caption does not change
+ anything with unknown value change: support for internal key and
+ value storage
+
+r1989 2015-03-10 13:07:41 +0100 kohm:
+
+ * scrkernel-pagestyles.dtx: change: key and value storage
+
+r1988 2015-03-10 12:49:18 +0100 kohm:
+
+ * scrkernel-compatibility.dtx: fix: \unless removed
+
+r1987 2015-03-10 12:21:34 +0100 kohm:
+
+ * scrkernel-title.dtx: change: support for key and value storage
+
+r1986 2015-03-10 10:29:30 +0100 kohm:
+
+ * scrkernel-paragraphs.dtx: change: support for internal key and value
+ list
+
+r1985 2015-03-10 10:14:29 +0100 kohm:
+
+ * scrkernel-fonts.dtx: change: support for internal key and value list
+
+r1984 2015-03-10 09:38:06 +0100 kohm:
+
+ * scrkernel-language.dtx: new: support for option value list
+
+r1983 2015-03-10 09:32:04 +0100 kohm:
+
+ * scrkernel-compatibility.dtx: new: option value storage new: internal
+ \scr@v@is@… to check for compatibility
+
+r1982 2015-03-10 08:53:25 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: option value storage
+
+r1981 2015-03-09 14:14:31 +0100 kohm:
+
+ * scrkernel-sections.dtx: new: internal storage of option values
+
+r1980 2015-03-09 13:46:05 +0100 kohm:
+
+ * scrextend.dtx: new: support for option value list
+
+r1979 2015-03-09 10:44:10 +0100 kohm:
+
+ * scrjura.dtx: change: support for internal value list fix: option
+ state signals inside groups
+
+r1978 2015-03-09 09:36:05 +0100 kohm:
+
+ * scrhack.dtx: change: full support for internal option list
+
+r1977 2015-03-09 09:17:29 +0100 kohm:
+
+ * Makefile, manifest.txt, tocstyle.dtx: remove: scrbeta.dtx not needed
+ any longer
+
+r1976 2015-03-08 21:32:19 +0100 kohm:
+
+ * scrkernel-sections.dtx: change: \chapterformat adds \enskip only in
+ non prefix line mode
+
+r1975 2015-03-08 21:26:09 +0100 kohm:
+
+ * TODO, tocbasic.dtx: change: a little bit more robust for not
+ recommended usage of \MakeUppercase at part of the chapter font
+
+r1974 2015-03-08 19:51:08 +0100 kohm:
+
+ * TODO: new: Todos of tocbasic
+
+r1973 2015-03-07 13:09:28 +0100 kohm:
+
+ * TODO: new: \chapterheadstartvskip etc. need docu change
+
+r1972 2015-03-05 08:48:33 +0100 kohm:
+
+ * scrkernel-notepaper.dtx: change: warning of \date is used instead of
+ \setkomavar{date}
+
+r1971 2015-03-02 13:29:10 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex, doc/english/,
+ doc/english/typearea.tex: change: option pagesize is default
+
+r1970 2015-03-02 13:20:32 +0100 kohm:
+
+ * scrkernel-typearea.dtx: change: typearea supports internal
+ key-and-value storage list
+
+r1969 2015-03-02 13:13:11 +0100 kohm:
+
+ * scrkernel-basics.dtx: fix: initial value of new bool key
+
+r1968 2015-03-02 12:54:05 +0100 kohm:
+
+ * scrkernel-basics.dtx: change: improve storage of boolean key
+
+r1967 2015-03-02 10:47:44 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrlayer-scrpage-experts.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/scrlttr2-experts.tex,
+ doc/english/common-textmarkup.tex,
+ doc/english/common-pagestylemanipulation.tex: several fixes of
+ language [Elke+Arndt], labels [myself] and one double defined table
+ [myself]
+
+r1966 2015-03-01 11:00:49 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/english/, doc/english/scrlayer-scrpage-experts.tex: fix: command
+ name \DeclarePageStyleByLayers
+
+r1965 2015-03-01 10:51:52 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrbookreportarticle-experts.tex: change:
+ \othersectionlevelsformat is more or less obsolete
+
+r1964 2015-02-27 09:33:54 +0100 kohm:
+
+ * scrlayer-scrpage.dtx: startup values of options stored at internal
+ key-and-value-list
+
+r1963 2015-02-27 09:04:57 +0100 kohm:
+
+ * scrkernel-basics.dtx: change: \KOMA@kav@x… uses \protected@edef
+ instead of \edef
+
+r1962 2015-02-26 09:34:33 +0100 kohm:
+
+ * scrlayer.dtx, scrkernel-basics.dtx: change: \KOMA@ifkey
+ automaticalle replaces the initial value if the switch was unknown
+ before new: \KOMAoptionOf[<command to be executed>]{<package or
+ class with extension>}{<option>}
+
+r1961 2015-02-25 14:53:12 +0100 kohm:
+
+ * scrkernel-basics.dtx: new: \KOMAoptionsOf[<prefix command>]{package
+ or class with extension}
+
+r1960 2015-02-25 10:26:53 +0100 kohm:
+
+ * scrlayer-scrpage.dtx: new: stores all options to internal list
+
+r1959 2015-02-25 09:08:37 +0100 kohm:
+
+ * scrkernel-basics.dtx: new: two KOMA-Script internal macros
+
+r1958 2015-02-24 18:21:50 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: change: forgotten
+ paragraph removed; \endskip --> \enskip [Elke]
+
+r1957 2015-02-24 12:49:13 +0100 kohm:
+
+ * scrlayer.dtx: new: save all key-value pairs of member scrlayer of
+ family KOMA change: interfaces define scrlayer options only while
+ loading so they are not
+ longer called twice, if options are set by
+ \KOMAoption oder
+ \KOMAoptions
+
+r1956 2015-02-24 12:46:36 +0100 kohm:
+
+ * scrkernel-basics.dtx: new: prepared to save the key-value pairs of
+ single members of family KOMA
+
+r1955 2015-02-23 17:55:49 +0100 kohm:
+
+ * scrkernel-compatibility.dtx, TODO, scrkernel-sections.dtx, doc/,
+ doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-pagestylemanipulation.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex: change: use \sectionformat …
+ \subparagraphformat instead of \othersectionlevelsformat if version
+ >= 3.17
+
+r1954 2015-02-23 17:53:40 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: new: some commands added to the list of
+ known names
+
+r1953 2015-02-23 17:50:44 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: new: some new commands added to list of
+ known names
+
+r1952 2015-02-23 16:25:55 +0100 kohm:
+
+ * scrkernel-fonts.dtx: new: \simple@changefontsizes is the real
+ calculation change: \changefontsizes will become
+ \simple@changefontsizes only if undefined
+
+r1951 2015-02-22 11:22:35 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: nur ein Tippfehler
+
+r1950 2015-02-22 10:31:36 +0100 kohm:
+
+ * TODO: What about \sectionformat etc.?
+
+r1949 2015-02-21 09:30:38 +0100 kohm:
+
+ * scrkernel-notepaper.dtx, TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/common-textmarkup.tex,
+ doc/english/, doc/english/scrlttr2.tex,
+ doc/english/common-textmarkup.tex: change: resolved element conflict
+ of scrletter and KOMA-Script classes within elements subject and
+ title
+
+r1948 2015-02-20 11:06:26 +0100 kohm:
+
+ * scrkernel-fonts.dtx: fix: name of \useshapeofkomafont
+
+r1947 2015-02-20 08:51:32 +0100 kohm:
+
+ * scrkernel-notepaper.dtx: change: once again \closing because of
+ braindead usage of variables
+
+r1946 2015-02-19 17:36:26 +0100 kohm:
+
+ * scrkernel-notepaper.dtx: change: reimplementation of \closing due to
+ users who frivolously use \\
+ in fromname
+
+r1945 2015-02-17 12:40:21 +0100 kohm:
+
+ * scrmain.ins: new: Alpha of DIN5008A.lco and DIN5008B.lco
+
+r1944 2015-02-17 12:39:21 +0100 kohm:
+
+ * scrkernel-letterclassoptions.dtx: new: Alpha of DIN5008A.lco and
+ DIN5008B.lco
+
+r1943 2015-02-17 10:01:34 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex, doc/english/,
+ doc/english/scrlttr2.tex: new: docu of addrfield=topaligned
+
+r1942 2015-02-16 17:42:29 +0100 kohm:
+
+ * TODO: need for docu
+
+r1941 2015-02-16 16:47:44 +0100 kohm:
+
+ * scrkernel-notepaper.dtx: new: addrfield=topaligned to suppress
+ vertical centering of the address
+
+ in the address part of the address field
+
+r1940 2015-02-14 13:03:15 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: fix: shift note in
+ captionbeside example
+
+r1939 2015-02-14 12:55:36 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex, doc/english/,
+ doc/english/scrlttr2-experts.tex: changed: notes about page style
+ handling of scrletter
+
+r1938 2015-02-14 12:55:09 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex, doc/english/,
+ doc/english/scrlttr2.tex: fix: notes about headsepline with page style
+ plain
+
+r1937 2015-02-13 09:54:38 +0100 kohm:
+
+ * TODO: several suggestions to scrletter and scrlayer(-scrpage)
+
+r1936 2015-02-13 09:30:39 +0100 kohm:
+
+ * TODO: problem with element and variable "subject" in beta package
+ scrletter [third party report, unfortunately without contact to the
+ original user]
+
+r1935 2015-02-11 12:45:42 +0100 kohm:
+
+ * scrkernel-fonts.dtx: fix: \footnotesize in scrfontsizes.sty
+
+r1934 2015-02-11 08:20:28 +0100 kohm:
+
+ * scrkernel-typearea.dtx: fix: page usage calculation with \footheight
+
+r1933 2015-02-10 09:39:27 +0100 kohm:
+
+ * doc/, doc/guide.bib: change: KOMA-Script book edition 5
+
+r1932 2015-02-09 10:40:31 +0100 kohm:
+
+ * scrkernel-typearea.dtx, TODO: new: option "usegeometry"
+
+r1931 2015-02-09 10:39:53 +0100 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: new 3.17 BETA
+ started
+
+r1930 2015-02-07 17:54:15 +0100 kohm:
+
+ * releaselist.txt: 3.16 released
+
+r1929 2015-02-07 15:32:58 +0100 kohm:
+
+ * scrkernel-compatibility.dtx: version 3.16 added
+
+r1928 2015-02-07 14:50:35 +0100 kohm:
+
+ * TODO: dummy change
+
+r1927 2015-02-07 14:47:54 +0100 kohm:
+
+ * TODO: dummy change
+
+r1926 2015-02-07 14:38:11 +0100 kohm:
+
+ * scrkernel-version.dtx: ready for release 3.16
+
+r1925 2015-02-07 14:37:43 +0100 kohm:
+
+ * TODO: option usegeomentry not yet implemented
+
+r1924 2015-02-07 14:34:46 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: improved: documented
+ that \DeclareSectionCommand can change attributes of \part and
+ \chapter
+
+r1923 2015-02-05 08:53:00 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ Fehlerkorrekturen [Elke]
+
+r1922 2015-02-05 08:47:19 +0100 kohm:
+
+ * TODO: need for more docu of \RedeclareSectionCommand
+
+r1921 2015-02-04 09:57:44 +0100 kohm:
+
+ * manifest.txt, doc/, doc/guide.tex, doc/Makefile.guide,
+ doc/ngerman/, doc/english/: note about missing chapter about scrjura
+
+r1920 2015-02-03 08:27:01 +0100 kohm:
+
+ * TODO, doc/, doc/english/, doc/english/scrlayer.tex: translation of
+ the new features
+
+r1919 2015-02-02 11:25:23 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: avoid overfull vbox for empty preamble
+ fix: avoid overfull preamble warning for not overfull vbox
+
+r1918 2015-01-28 11:03:48 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/common-pagestylemanipulation.tex, doc/english/,
+ doc/english/scrlayer-scrpage-experts.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/common-textmarkup.tex,
+ doc/english/common-pagestylemanipulation.tex: some translations and
+ equilisations of the English guide
+
+r1917 2015-01-28 08:32:30 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex:
+ fix: Fehler in den neuen Erklärungen beseitigt [Elke]
+
+r1916 2015-01-27 10:06:12 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlayer.tex,
+ doc/ngerman/common-pagestylemanipulation.tex: deutsche Erklärung
+ einiger Neuheiten ab Version 3.16
+
+r1915 2015-01-27 08:45:41 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: fix: version change
+
+r1914 2015-01-27 08:45:11 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: change: using scrlayer-scrpage instead of
+ scrpage2 new: manual can depend on the KOMA-Script version used to
+ generate it
+
+r1913 2015-01-26 21:12:39 +0100 kohm:
+
+ * TODO: fehlende Erklärungen in der Anleitung
+
+r1912 2015-01-26 21:11:06 +0100 kohm:
+
+ * scrlayer.dtx: new: \GetLayerContents new: additive layer attributes
+ addhoffset, addvoffset, addwidth, addheight,
+
+ addcontents, pretocontents
+
+r1911 2015-01-26 08:24:56 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/english/, doc/english/scrlayer-scrpage-experts.tex: fix: below
+ layers are below.line layers
+
+r1910 2015-01-22 08:52:15 +0100 kohm:
+
+ * scrkernel-version.dtx: back to beta of 3.15 bugfix release
+
+r1909 2015-01-22 08:50:30 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: wrong vertical alignment of \addpart
+ and \addpart* headings
+
+r1908 2015-01-22 08:34:15 +0100 kohm:
+
+ * scrjura.dtx: typo in documentation fixed without change of package
+ version
+
+r1907 2015-01-21 10:51:54 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: \endskip must be \enskip
+
+r1906 2015-01-21 08:26:50 +0100 kohm:
+
+ * scrkernel-miscellaneous.dtx: Usage of `titleps` not recommended;
+ reasons for not recommended packages
+
+r1905 2015-01-15 18:10:05 +0100 kohm:
+
+ * scrlayer.dtx: new: while \currentpagestyle is always the real page
+ style, \toplevelpagestyle is the name of the topmost page style
+ activated by \pagestyle
+
+r1904 2015-01-15 09:45:05 +0100 kohm:
+
+ * TODO: note about \pagestyle inside a page style and consequences for
+ activating the page style without \pagestyle, i. e., using
+ \thispagestyle
+
+r1903 2015-01-14 08:52:04 +0100 kohm:
+
+ * scrlayer.dtx, TODO: new commands \righttopmark, \rightbotmark,
+ \rightfirstmark, \lefttopmark, \leftbotmark, \leftfirstmark
+
+r1902 2015-01-14 08:48:33 +0100 kohm:
+
+ * scrkernel-version.dtx: start of new BETA
+
+r1901 2015-01-14 08:47:44 +0100 kohm:
+
+ * releaselist.txt: 2015/01/14 3.15 released
+
+r1900 2015-01-14 08:16:26 +0100 kohm:
+
+ * scrkernel-version.dtx: prepared for 3.15
+
+r1899 2015-01-08 09:57:02 +0100 kohm:
+
+ * scrlayer-scrpage.dtx: change: pairs of page styles use page style
+ aliasses instead of own \let constructs
+
+r1898 2015-01-08 08:11:34 +0100 kohm:
+
+ * TODO: question about page style aliases
+
+r1897 2015-01-02 13:04:12 +0100 kohm:
+
+ * scrkernel-basics.dtx: fix: allow \glueexpr in \FamilySetLengthKey
+ and \FamilySetLengthMacroKey
+
+r1896 2014-12-28 15:59:41 +0100 kohm:
+
+ * TODO: dummy ci
+
+r1895 2014-12-28 15:13:29 +0100 kohm:
+
+ * scrlayer.dtx, scrlayer-scrpage.dtx: fix: underfull \hbox in
+ twocolumn moe because of using \linewidth instead of \textwidth
+
+r1894 2014-12-28 11:50:52 +0100 kohm:
+
+ * scrlayer-scrpage.dtx: fix: missing colon in call of
+ \sls@split@at@iicolons of option footwidth
+
+r1893 2014-12-23 19:38:55 +0100 kohm:
+
+ * TODO: dummy ci
+
+r1892 2014-12-23 18:57:43 +0100 kohm:
+
+ * TODO: dummy ci
+
+r1891 2014-12-23 18:19:04 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: not \…toclevel and not
+ \scr@…@tocdepth but \…toclevel
+
+r1890 2014-12-22 08:58:28 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/scrbookreportarticle-experts.tex: Schuberts' English
+ improvements
+
+r1889 2014-12-19 09:13:29 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle-experts.tex:
+ fix: missing but important "not" added
+
+r1888 2014-12-17 08:55:22 +0100 kohm:
+
+ * scrkernel-basics.dtx: fix: key state at \FamilyCounterMacroKey and
+ \FamilyLengthMacroKey
+
+r1887 2014-12-17 08:42:06 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2-experts.tex,
+ doc/english/scrbookreportarticle-experts.tex: improvements by Elke
+
+r1886 2014-12-16 17:58:36 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex: some improvements by
+ Elke
+
+r1885 2014-12-16 17:56:47 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrlttr2-experts.tex: fix: index
+ entry scrletter
+
+r1884 2014-12-16 17:53:48 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: fix: index
+ entry scrletter
+
+r1883 2014-12-16 17:27:05 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: compatibility switch for \subparagraph
+ indent
+
+r1882 2014-12-16 09:34:04 +0100 kohm:
+
+ * doc/, doc/Makefile, doc/Makefile.guide: some more cleanup
+
+r1881 2014-12-16 09:22:04 +0100 kohm:
+
+ * Makefile, manifest.txt, scrmain.ins, README.in/, doc/,
+ doc/Makefile, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex,
+ doc/english/, doc/english/scrlttr2-experts.tex: scrletter is part of
+ KOMA-Script
+
+r1880 2014-12-16 08:45:26 +0100 kohm:
+
+ * TODO: dummy change
+
+r1879 2014-12-16 08:34:56 +0100 kohm:
+
+ * TODO: entry moved
+
+r1878 2014-12-15 08:01:19 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ Neuer Anlauf für bereits verkorksten Satz.
+
+r1877 2014-12-12 09:55:47 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex, doc/english/,
+ doc/english/scrlayer-scrpage.tex: added: docu of second offset of
+ options headwidth and footwidth
+
+r1876 2014-12-12 09:52:54 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex: several corrections by
+ Elke
+
+r1875 2014-12-12 09:38:02 +0100 kohm:
+
+ * scrlayer-scrpage.dtx: change: user manual removed
+
+r1874 2014-12-11 14:46:00 +0100 kohm:
+
+ * scrtime.dtx: fix: default language had wrong order of day names
+
+r1873 2014-12-11 10:16:02 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: \SecDef,
+ \scr@startsection, \At@startsection, \Before@ssect, \Before@sect
+
+r1872 2014-12-10 13:51:37 +0100 kohm:
+
+ * scrkernel-listsof.dtx, scrkernel-sections.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-textmarkup.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex: improved: handling of part- and
+ chaper-entries to table of contents if it is the first entry added:
+ option chapterentrywithdots or sectionentrywithdots
+
+r1871 2014-12-10 10:06:20 +0100 kohm:
+
+ * scrkernel-sections.dtx, tocbasic.dtx: no more extra space between
+ chapter head of table of contents and topmost entry, if this is a
+ part entry
+
+r1870 2014-12-10 10:04:55 +0100 kohm:
+
+ * scrkernel-compatibility.dtx: fix: new compatibility level for
+ version 3.15
+
+r1869 2014-12-09 15:38:11 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: usage of titlesec is not recommended,
+ but doesn't force an error
+
+r1868 2014-12-09 13:45:22 +0100 kohm:
+
+ * scrkernel-title.dtx, scrmain.ins, scrkernel-sections.dtx: change:
+ code reordering new: \raggedchapter with default \raggedsection
+
+r1867 2014-12-08 11:18:07 +0100 kohm:
+
+ * doc/, doc/koma-script.html: fix: valid XHTML 1.1; needs only
+ us-ascii encoding
+
+r1866 2014-12-08 10:37:13 +0100 kohm:
+
+ * scrkernel-sections.dtx: improvement: handling of beforeskip and
+ afterskip of \chapter
+
+r1865 2014-12-08 09:10:00 +0100 kohm:
+
+ * scrkernel-sections.dtx: optimized: skips before and after heading of
+ \part
+
+r1864 2014-12-07 14:13:01 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle-experts.tex:
+ Some more relation to style=section for afterskip and beforeskip of
+ \DecareSectionCommand.
+
+r1863 2014-12-07 14:09:02 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ Die Spezialbedeutungen negativer Werte von `beforeskip' und
+ `afterskip' bei `\DeclareSectionCommand' auf den Stil section
+ bezogen. Die Verwendung für chapter und part ohne Stil-Angabe
+ absichtlich noch nicht 100% klar dokumentiert.
+
+r1862 2014-12-05 08:12:21 +0100 kohm:
+
+ * TODO: tocstyle doesn't need \…toclevel
+
+r1861 2014-12-05 08:08:20 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: chapter skips with default setting
+ headings=big
+
+r1860 2014-12-03 12:30:49 +0100 kohm:
+
+ * scrkernel-sections.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: new:
+ \DeclareSectionCommands, \DeclareNewSectionCommands,
+ \RedeclareSectionCommands, and \ProvideSectionCommands
+
+r1859 2014-12-03 11:37:52 +0100 kohm:
+
+ * scrkernel-basics.dtx, doc/, doc/ngerman/, doc/ngerman/scrbase.tex,
+ doc/english/, doc/english/scrbase.tex: new: \RelaxFamilyKey changed:
+ default value for \FamilyCounterKey, \FamilyCounterMacroKey,
+ \FamilyLengthKey, and \FamilyLengthMacroKey
+
+r1858 2014-12-03 08:23:49 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: doc typo
+
+r1857 2014-12-03 08:22:56 +0100 kohm:
+
+ * tocstyle.dtx: fix: doc typo without version change
+
+r1856 2014-12-02 11:02:19 +0100 kohm:
+
+ * TODO: \DeclareSectionCommand implications to tocstyle
+
+r1855 2014-12-02 10:47:08 +0100 kohm:
+
+ * scrkernel-sections.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: You may change \part and
+ \chapter using \DeclareSectionCommand and even may change the style
+ of them to "section".
+
+r1854 2014-12-01 09:11:23 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: diverse
+ Verbesserungen von Elke
+
+r1853 2014-11-28 11:38:45 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: neu:
+ Unterschiede zwischen scrlttr2 und scrletter dokumentiert
+
+r1852 2014-11-28 11:33:51 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex, doc/english/,
+ doc/english/scrlayer-scrpage.tex: fix: change entries
+
+r1851 2014-11-27 16:34:35 +0100 kohm:
+
+ * scrmain.ins: the BETA-(SVN-)version generated a test version of
+ scrletter.sty, the release version still does not
+
+r1850 2014-11-27 09:34:41 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle-experts.tex:
+ fix: spelling
+
+r1849 2014-11-25 08:56:28 +0100 kohm:
+
+ * scrjura.dtx, TODO: Doc of \DeclareNewJuraEnvironment; one not needed
+ code line removed
+
+r1848 2014-11-24 17:42:29 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: translation of
+ \DeclareSectionCommand etc.
+
+r1847 2014-11-24 16:07:28 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex: \DeclareSectionCommand
+ etc. moved to expert part
+
+r1846 2014-11-24 15:31:22 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrbookreportarticle-experts.tex: user manual of
+ \IfExistskomafont and \chapterheadmidvskip
+
+r1845 2014-11-24 13:03:50 +0100 kohm:
+
+ * TODO, scrkernel-sections.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex: change: \DeclareSectionCommand
+ ready for Beta Test
+
+r1844 2014-11-24 12:29:22 +0100 kohm:
+
+ * scrkernel-basics.dtx: fix: \@tempskipa in \FamilySetLengthMacro
+
+r1843 2014-11-24 10:10:28 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: fix: \ChangedAt logic
+
+r1842 2014-11-24 08:28:36 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: \ChangedAt has an optional argument to mark
+ features beta for one year
+
+r1841 2014-11-23 12:06:40 +0100 kohm:
+
+ * scrjura.dtx: improvement: compatibility hack handling
+
+r1840 2014-11-22 14:13:28 +0100 kohm:
+
+ * scrjura.dtx: fix: error reaction to deprecated "Paragraph" commands
+
+r1839 2014-11-22 14:02:22 +0100 kohm:
+
+ * scrjura.dtx: fix: version date
+
+r1838 2014-11-22 13:49:26 +0100 kohm:
+
+ * scrjura.dtx: error message with change info if \Paragraph or
+ \SubPararaph is used
+
+r1837 2014-11-21 20:41:40 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: \RedeclareSectionCommand
+
+r1836 2014-11-21 20:41:01 +0100 kohm:
+
+ * scrkernel-basics.dtx: new: \@removefromreset
+
+r1835 2014-11-21 16:33:15 +0100 kohm:
+
+ * scrkernel-sections.dtx: new: \DeclareNewSectionCommand,
+ \RedeclareSectionCommand, \ProvideSectionCommand
+
+r1834 2014-11-21 15:59:18 +0100 kohm:
+
+ * TODO: forgotten \IfExistskomafont
+
+r1833 2014-11-21 15:57:23 +0100 kohm:
+
+ * scrkernel-sections.dtx: change: using \DeclareSectionNumberDepth of
+ scrlayer if available
+
+r1832 2014-11-21 15:56:40 +0100 kohm:
+
+ * scrlayer.dtx: change: co-using \…numdepth of the KOMA-Script
+ classes instead of own \…level
+
+r1831 2014-11-21 12:47:37 +0100 kohm:
+
+ * scrkernel-compatibility.dtx, TODO, scrkernel-sections.dtx: new
+ command \DeclareSectionCommand
+
+r1830 2014-11-21 12:46:37 +0100 kohm:
+
+ * scrkernel-version.dtx: started new feature release 3.15
+
+r1829 2014-11-21 10:27:52 +0100 kohm:
+
+ * scrkernel-fonts.dtx: fix: logic error at \IfExistskomafont
+
+r1828 2014-11-21 09:53:45 +0100 kohm:
+
+ * scrkernel-fonts.dtx: new: \IfExistskomafont{element}{then}{else}
+ added
+
+r1827 2014-11-20 11:09:47 +0100 kohm:
+
+ * scrkernel-sections.dtx: new: \chapterheadmidvskip change:
+ \@@makechapterhead reimplemented
+
+r1826 2014-11-15 07:24:51 +0100 kohm:
+
+ * scrjura.dtx: Dokufix by Elke
+
+r1825 2014-11-14 09:23:17 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn-example.tex,
+ doc/ngerman/scrlayer-notecolumn.tex, doc/english/,
+ doc/english/scrlayer-notecolumn.tex: example uses new scrjura syntax
+
+r1824 2014-11-14 09:02:28 +0100 kohm:
+
+ * scrkernel-paragraphs.dtx: fix: Code generation grouping to re-add
+ \@list@extra code and initial call of
+ \@listi to the clo-files.
+
+r1823 2014-11-12 10:06:40 +0100 kohm:
+
+ * scrjura.dtx: canonified source, replaced \newjuraenvironment by
+ \DeclareNewJuraEnvironment
+
+r1822 2014-11-11 16:20:59 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex, doc/english/,
+ doc/english/scrbase.tex: the correct name of is \ifinteger not
+ \ifisnumber
+
+r1821 2014-11-11 10:41:54 +0100 kohm:
+
+ * scrjura.dtx: improved user manual; fix of macrocode blocks
+
+r1820 2014-11-11 10:21:24 +0100 kohm:
+
+ * scrjura.dtx: change: renamed "Paragraph" --> "Clause" and all
+ depending terms
+
+r1819 2014-11-10 09:55:05 +0100 kohm:
+
+ * scrjura.dtx: \newjuraenvironment should work
+
+r1818 2014-11-04 10:06:02 +0100 kohm:
+
+ * scrjura.dtx: start of new command \newjuraenvironment (currently not
+ usable)
+
+r1817 2014-10-28 11:56:49 +0100 kohm:
+
+ * scrkernel-version.dtx: start a new beta
+
+r1816 2014-10-28 11:56:02 +0100 kohm:
+
+ * releaselist.txt: release 3.14 done
+
+r1815 2014-10-28 11:15:59 +0100 kohm:
+
+ * scrkernel-version.dtx: ready for release 3.14
+
+r1814 2014-10-28 11:06:00 +0100 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: ready for
+ version 3.14 BETA
+
+r1813 2014-10-27 08:39:00 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex, doc/english/,
+ doc/english/scrlayer-scrpage.tex: Improvement by Elke
+
+r1812 2014-10-23 10:07:04 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex, doc/english/,
+ doc/english/scrlayer-scrpage.tex: missing description of \lehead* etc.
+
+r1811 2014-10-21 08:31:54 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/preface.tex: improvement by Arne
+
+r1810 2014-10-20 09:35:25 +0200 kohm:
+
+ * scrlayer.dtx: change: layer declarations (and modifications) are
+ \long, so contents can have \par
+
+r1809 2014-10-17 10:02:00 +0200 kohm:
+
+ * scrkernel-basics.dtx: values of key=value are declared long, so they
+ can contain \par
+
+r1808 2014-10-16 08:49:35 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/preface.tex: Urgent search for
+ tocbasic translator
+
+r1807 2014-10-16 08:48:50 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrwfile.tex: additional improvement
+ by Jana
+
+r1806 2014-10-16 08:41:25 +0200 kohm:
+
+ * scrlayer-scrpage.dtx: workaround for strange color stack warning of
+ pdftex and luatex
+
+r1805 2014-10-13 10:55:20 +0200 kohm:
+
+ * manifest.txt, scrwfile.dtx, doc/, doc/english/,
+ doc/english/Makefile, doc/english/preface.tex,
+ doc/english/scrwfile.tex: doc/english/scrwfile.tex is a real
+ translation and not a symlink to a generated file
+
+r1804 2014-10-10 08:44:55 +0200 kohm:
+
+ * scrkernel-bibliography.dtx: runnig head fixed at \bib@heading [Falk]
+
+r1803 2014-10-09 10:18:02 +0200 kohm:
+
+ * scrkernel-miscellaneous.dtx: typo fix
+
+r1802 2014-10-09 10:17:20 +0200 kohm:
+
+ * scrkernel-miscellaneous.dtx: Workaround for a missing feature of
+ `titlesec`
+
+r1801 2014-10-09 08:08:31 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex:
+ Verbesserungsvorschläge von Elke
+
+r1800 2014-10-07 08:53:12 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex, doc/english/,
+ doc/english/scrlttr2.tex: docu of new command \LoadLetterOptions
+
+r1799 2014-10-04 18:58:57 +0200 kohm:
+
+ * scrkernel-letterclassoptions.dtx: - improvement: \LoadLetterOption
+ ignores space tokens at begin and end - new: \LoadLetterOptions
+ similar to \LoadLetterOptions processing a list of
+
+ instead of only one file
+
+r1798 2014-10-04 15:59:37 +0200 kohm:
+
+ * scrkernel-notepaper.dtx, scrkernel-letterclassoptions.dtx, TODO:
+ fix: \@firsthead bug in DINmtext.lco
+
+r1797 2014-10-04 12:07:13 +0200 kohm:
+
+ * TODO: \@firsthead bug in DINmtext.lco
+
+r1796 2014-09-19 10:04:02 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex, doc/english/,
+ doc/english/scrbase.tex: missing \defcaptionname
+
+r1795 2014-09-19 09:13:50 +0200 kohm:
+
+ * scrlayer-scrpage.dtx: \ihead etc. has a star version that copies the
+ mandatory argument to the optional argument if the optional argument
+ has been omitted
+
+r1794 2014-09-19 08:43:43 +0200 kohm:
+
+ * scrlayer.dtx, scrlayer-scrpage.dtx: scrlayer and scrlayer-scrpage
+ use the version information of KOMA-Script
+
+r1793 2014-09-19 08:31:45 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/english/: ignore list updated
+
+r1792 2014-09-19 08:26:04 +0200 kohm:
+
+ * .ignore: ignore list updated
+
+r1791 2014-09-19 08:15:10 +0200 kohm:
+
+ * .ignore: ignore list updated
+
+r1790 2014-09-19 08:01:41 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex: fix:
+ "Gleichzeitig" wurde falsch getrennt
+
+r1789 2014-09-11 15:44:12 +0200 kohm:
+
+ * TODO: need for docu
+
+r1788 2014-09-11 15:41:04 +0200 kohm:
+
+ * scrkernel-sections.dtx: three new hooks for Ulrike
+
+r1787 2014-09-11 11:03:42 +0200 kohm:
+
+ * TODO, scrkernel-sections.dtx: parsing of optional argument of
+ \section command (and others) deactivated if it is a copied
+ mandatoriy argument
+
+r1786 2014-09-11 08:43:46 +0200 kohm:
+
+ * TODO: Problem mit dem optionalen Argument von \section dokumentiert
+
+r1785 2014-09-10 08:24:01 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-interleafpage.tex: Tippfehler [Moritz F.]
+
+r1784 2014-08-31 11:40:21 +0200 kohm:
+
+ * scrlayer.dtx: fix: missing definition of \scr@current@layer in
+ \ModifyLayer
+
+r1783 2014-08-18 12:54:31 +0200 kohm:
+
+ * scrwfile.dtx: use ``…'' instead of »…«
+
+r1782 2014-08-18 12:48:22 +0200 kohm:
+
+ * tocbasic.dtx: docu language improvements by Arndt Schubert
+
+r1781 2014-08-18 12:23:36 +0200 kohm:
+
+ * scrlayer-scrpage.dtx: fix: layer names …head.odd, …head.even,
+ …foot.odd, and …foot.even should
+
+ correspond with even and odd pages (see manual) [Elke]
+
+r1780 2014-08-13 13:54:23 +0200 kohm:
+
+ * scrkernel-basics.dtx: three times added % after } to remove
+ potentially space
+
+r1779 2014-08-13 09:15:56 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex, doc/english/,
+ doc/english/scrlayer-scrpage.tex: index entry \setheadsepline fixed
+ [Elke]
+
+r1778 2014-08-07 11:59:50 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-sections.dtx: fix: vspace after \minisec if it follows
+ another section heading (only if version >= 3.13a)
+
+r1777 2014-07-31 12:49:32 +0200 kohm:
+
+ * tocbasic.dtx: change: \DeclareNewTOC adds \autodot only to the
+ format of hierachical counters
+
+r1776 2014-07-25 12:46:33 +0200 kohm:
+
+ * scrlayer.dtx: fix: \RemoveLayersFromPageStyle change: user manual
+ removed
+
+r1775 2014-07-07 09:57:00 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex: kleine Klarstellungen zu
+ Optionen footsepline und headsepline
+
+r1774 2014-07-07 09:15:22 +0200 kohm:
+
+ * scrkernel-pagestyles.dtx: option footsepline made wrong settings for
+ option headinclude and footinclude and also does a recalculation of
+ type area
+
+r1773 2014-07-06 09:17:30 +0200 kohm:
+
+ * scrwfile.dtx: only a type fix in the manual
+
+r1772 2014-07-02 08:58:12 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrlayer-notecolumn.tex: two more
+ improvements by Jana
+
+r1771 2014-06-30 12:58:16 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: Fehler bei
+ \FamilyCounterMacroKey [Elke]
+
+r1770 2014-06-30 08:48:19 +0200 kohm:
+
+ * scrkernel-typearea.dtx: fix: missing \FamilyKeyStateProcessed at
+ redefinition of options DIV and BCOR
+ via \AtEndOfPackage
+
+r1769 2014-06-30 08:47:18 +0200 kohm:
+
+ * scrkernel-basics.dtx: Fix: missing \expandafter at info message
+ about unknown key state
+
+r1768 2014-06-27 07:40:22 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: correction
+ by Elke
+
+r1767 2014-06-26 11:20:18 +0200 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-notepaper.dtx, scrkernel-paragraphs.dtx,
+ scrkernel-language.dtx, scrkernel-variables.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-letterclassoptions.dtx,
+ scrkernel-pseudolengths.dtx, scrkernel-miscellaneous.dtx: initial
+ preparation to make a letter package addition to the letter class
+
+r1766 2014-06-25 16:38:45 +0200 kohm:
+
+ * manifest.txt, doc/, doc/Makefile, doc/guide.tex, doc/scrpage2.tex,
+ doc/Makefile.guide, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/guide-ngerman.tex, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-interleafpage.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/typearea.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/common-interleafpage.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/common-textmarkup.tex,
+ doc/english/typearea.tex: scrpage2 removed from KOMA-Script manual
+
+r1765 2014-06-25 10:58:15 +0200 kohm:
+
+ * tocbasic.dtx: removed reference to scrpage2
+
+r1764 2014-06-23 08:38:43 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/typearea.tex: translation date
+ reference
+
+r1763 2014-06-23 08:38:00 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/typearea.tex: improvement of table
+ 2.1 [Elke]
+
+r1762 2014-06-23 08:29:54 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ Tippfehler [Elke]
+
+r1761 2014-06-03 12:06:04 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrlayer-notecolumn.tex:
+ Translator's names
+
+r1760 2014-06-03 10:28:36 +0200 kohm:
+
+ * scrlayer-notecolumn.dtx: user manual removed because there are is a
+ real translation at doc/english
+
+r1759 2014-06-03 09:48:38 +0200 kohm:
+
+ * TODO: helper file vs. help file
+
+r1758 2014-06-03 09:40:20 +0200 kohm:
+
+ * doc/, doc/english/, doc/english/scrlayer-notecolumn.tex: serveral
+ improvements by Mr. Schubert
+
+r1757 2014-04-09 11:36:26 +0200 kohm:
+
+ * scrlayer-scrpage.dtx: new: headwidth and footwidth supports two
+ offsets (first for odd pages, second for even pages)
+
+r1756 2014-04-09 09:53:11 +0200 kohm:
+
+ * scrkernel-typearea.dtx: Signalisierung bei Option twoside und Option
+ twocolumn korrigiert
+
+r1755 2014-04-06 08:40:37 +0200 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex: Trennung von
+ "Randeinstellungen"
+
+r1754 2014-03-26 09:15:32 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: one comma
+ added
+
+r1753 2014-03-25 09:00:17 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex:
+ suggestions by Jens
+
+r1752 2014-03-24 17:21:25 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrbase.tex,
+ doc/english/scrbookreportarticle.tex: some changes with help of Jana
+
+r1751 2014-03-21 08:30:44 +0100 kohm:
+
+ * TODO: remember very, very old idea
+
+r1750 2014-03-21 08:00:57 +0100 kohm:
+
+ * README.in/, README.in/README.scrartcl.cls,
+ README.in/README.scrlttr2.cls, README.in/README.scrreprt.cls,
+ README.in/README.scrdoc.cls, README.in/README.scrbook.cls: line skip
+ limit 75
+
+r1749 2014-03-21 07:31:14 +0100 kohm:
+
+ * obsolete/, obsolete/README: line break limited to 75 characters
+
+r1748 2014-03-20 11:22:43 +0100 kohm:
+
+ * INSTALLD.txt: Tippfehler
+
+r1747 2014-03-20 11:10:41 +0100 kohm:
+
+ * INSTALLD.txt, INSTALL.txt: original archive type is ZIP again
+
+r1746 2014-03-20 09:52:23 +0100 kohm:
+
+ * INSTALLD.txt, INSTALL.txt: new: note about
+ http://www.komascript.de/current
+
+r1745 2014-03-19 08:14:58 +0100 kohm:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.13
+
+r1744 2014-03-18 16:05:05 +0100 kohm:
+
+ * doc/, doc/scrguide.cls: fix: do not expand UTF8 umlauts in optional
+ argument of \KOMAProvidesFile
+
+r1743 2014-03-18 09:32:24 +0100 kohm:
+
+ * doc/, doc/linkalias.tex, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbase.tex,
+ doc/ngerman/common-pagestylemanipulation.tex, doc/english/,
+ doc/english/typearea.tex: fix: labels
+
+r1742 2014-03-17 10:06:24 +0100 kohm:
+
+ * TODO: ugly translation of scrlayer-notecolumn
+
+r1741 2014-03-17 10:00:59 +0100 kohm:
+
+ * README.SVN, LIESMICH.SVN: the repository is not longer on BerliOS
+ but SourceForge
+
+r1740 2014-03-14 16:43:30 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/preface.tex: change of translations
+ status of scrlayer-notecolumn chapter
+
+r1739 2014-03-14 15:47:05 +0100 kohm:
+
+ * manifest.txt, scrlayer-notecolumn.dtx, doc/, doc/Makefile.guide,
+ doc/english/, doc/english/Makefile,
+ doc/english/scrlayer-notecolumn.tex: translated
+ scrlayer-notecolumn.tex instead of generated
+
+r1738 2014-03-14 08:22:55 +0100 kohm:
+
+ * TODO: new idea
+
+r1737 2014-03-13 17:33:07 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex: Einträge
+ in einer Tabelle sortiert
+
+r1736 2014-03-13 08:41:11 +0100 kohm:
+
+ * README.in/: added new languages
+
+r1735 2014-03-12 13:21:08 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbase.tex, doc/english/,
+ doc/english/scrbase.tex: translation of
+ \FamilyCounterKey…\FamilyLengthKey and elimination of
+ \Family@Options
+
+r1734 2014-03-12 12:19:07 +0100 kohm:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex:
+ translation base changed
+
+r1733 2014-03-12 12:11:20 +0100 kohm:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: translation of
+ user documentation of \partnumdepth … \subparagraphnumdepth,
+ \ifnumbered, \ifunnumbered
+
+r1732 2014-03-12 12:05:05 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: ein
+ \OnlyAt in der Erklärung zu tocdepth ergänzt
+
+r1731 2014-03-08 09:00:38 +0100 kohm:
+
+ * scrkernel-language.dtx: "Mobiltelefon" instead of "Mobiltelephon"
+ for all German languages but "german"
+
+r1730 2014-03-08 08:57:06 +0100 kohm:
+
+ * scrkernel-language.dtx: "Telefon" is back for all German languages
+ but "german"
+
+r1729 2014-03-07 13:04:53 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: improved:
+ "Rand rechts", "Rand links", "Rand innen", "Rand aussen"
+
+r1728 2014-03-07 09:42:08 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex: fix: problem with
+ generated date
+
+r1727 2014-03-07 09:40:24 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex: fix:
+ problem with generated date
+
+r1726 2014-03-07 09:39:28 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: fix: problem with
+ generated date
+
+r1725 2014-03-07 09:38:29 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex: fix: problem with
+ generated date
+
+r1724 2014-03-07 09:37:00 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: fix:
+ problem with generated date
+
+r1723 2014-03-07 09:34:35 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-lists.tex,
+ doc/ngerman/typearea.tex: fix: problem with generated date
+
+r1722 2014-03-07 09:33:18 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-interleafpage.tex,
+ doc/ngerman/common-footnotes.tex: fix: problem with generated date
+
+r1721 2014-03-07 09:22:37 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-interleafpage.tex,
+ doc/ngerman/common-footnotes.tex, doc/ngerman/common-lists.tex: fix:
+ no more multiply defined labels
+
+r1720 2014-03-05 09:03:10 +0100 kohm:
+
+ * scrkernel-listsof.dtx: fix: to much "more" in warning about
+ deprecated float interface
+
+r1719 2014-03-03 18:28:10 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/ngerman/scrlayer.tex,
+ doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex: Index optimiert
+
+r1718 2014-03-03 18:27:01 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex: einmal Klasse -->
+ Paket [Elke]
+
+r1717 2014-03-01 17:21:37 +0100 kohm:
+
+ * scrkernel-pagestyles.dtx: cleardoublepage excepts value headings if
+ used as class option independ of whether or not the page style has
+ already been defined
+
+r1716 2014-03-01 16:38:49 +0100 kohm:
+
+ * scrjura.dtx, tocstyle.dtx, scrwfile.dtx: replaced a tex comment by a
+ doctex comment
+
+r1715 2014-03-01 13:05:30 +0100 kohm:
+
+ * TODO: cleardoublepage note
+
+r1714 2014-02-28 16:31:14 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex: Index-Eintrag für
+ \ifstr verbessert
+
+r1713 2014-02-27 17:36:50 +0100 kohm:
+
+ * obsolete/, obsolete/scrlettr.dtx: do not need typearea.sty and
+ german.sty any longer
+
+r1710 2014-02-27 11:12:22 +0100 kohm:
+
+ * Makefile: ALPHA_DOC needs CLS_MAIN
+
+r1709 2014-02-27 10:48:40 +0100 kohm:
+
+ * Makefile: ALPHA_DOC needs scrdoc.cls
+
+r1708 2014-02-26 16:03:14 +0100 kohm:
+
+ * doc/, doc/plength.dtx: once again: babel instead of old ngerman
+
+r1707 2014-02-26 16:00:52 +0100 kohm:
+
+ * doc/, doc/plength.dtx: use babel instead of old ngerman
+
+r1706 2014-02-26 15:56:07 +0100 kohm:
+
+ * scrkernel-letterclassoptions.dtx: fix: Definition of KOMA font
+ letter
+
+r1705 2014-02-26 15:50:04 +0100 kohm:
+
+ * scrdoc.dtx: define \marginline if scrartcl unavailable
+
+r1704 2014-02-26 15:49:02 +0100 kohm:
+
+ * scrdoc.dtx: define labeling environment if scrartcl unavailable
+
+r1703 2014-02-26 15:47:22 +0100 kohm:
+
+ * scrdoc.dtx: define \addsec if not used with a KOMA-Script class
+
+r1702 2014-02-26 15:45:48 +0100 kohm:
+
+ * scrdoc.dtx: define \KOMAScript if not using a KOMA-Script class
+
+r1701 2014-02-26 11:04:57 +0100 kohm:
+
+ * scrtime.dtx: fixed: \dayname@slovak
+
+r1700 2014-02-26 08:52:24 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrdatetime.tex,
+ doc/ngerman/scrlttr2-experts.tex: support for slovak
+
+r1699 2014-02-26 08:29:58 +0100 kohm:
+
+ * scrkernel-language.dtx: support for slovak [Elke Schubert]
+
+r1698 2014-02-26 08:25:13 +0100 kohm:
+
+ * scrtime.dtx: support for slovak added [Elke Schubert]
+
+r1697 2014-02-21 18:21:16 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: fetten Indexeintrag
+ für den Bundsteg durch einen normalen ersetzt
+
+r1696 2014-02-17 10:22:47 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex: noch mehr
+ Korrekturen von Torsten
+
+r1695 2014-02-17 10:10:45 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex: Korrekturen
+ von Torsten
+
+r1694 2014-02-17 08:20:04 +0100 kohm:
+
+ * doc/, doc/plength.dtx: firstfoot and firsthead are variable now
+ [patch by Michael Käufl]
+
+r1693 2014-02-17 08:18:44 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: Leerzeichenfehler
+ [Michael Käufl]
+
+r1692 2014-02-14 08:09:57 +0100 kohm:
+
+ * scrkernel-sections.dtx: extra svn:keyword Revision
+
+r1691 2014-02-14 08:08:07 +0100 kohm:
+
+ * scrkernel-sections.dtx: fix: \set@preamble@vpox -->
+ \set@preamble@vpos fix: \part@preamble@u --> \part@u@preamble fix:
+ \part@preamble@o --> \part@o@preamble
+
+r1690 2014-02-13 08:30:22 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: Index-Eintrag für
+ Kopf- und Fuß-Höhe
+
+r1689 2014-02-13 08:29:19 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex: Index-Eintrag
+ für Fuß-Breite
+
+r1688 2014-02-13 08:28:20 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-headfootheight.tex:
+ Index-Eintrag für Kopf- und Fuß-Höhe
+
+r1687 2014-02-12 15:28:07 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: Eintrag
+ ins Abbildungsverzeichnis korrigiert [Elke]
+
+r1686 2014-02-12 15:04:23 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: Indexeintrag
+ @everystyle@ korrigiert
+
+r1685 2014-02-12 15:02:53 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: Indexeintrag
+ für version=2.9t und version=2.9u entfernt
+
+r1684 2014-02-10 10:14:06 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: Tschechisch in
+ der Liste der Sprachen aufgeführt
+
+r1683 2014-02-10 10:10:37 +0100 kohm:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: Doku für
+ Tschechisch
+
+r1682 2014-02-10 10:01:35 +0100 kohm:
+
+ * scrkernel-language.dtx: change: czech added (Elke Schubert)
+
+r1681 2014-02-05 09:38:41 +0100 kohm:
+
+ * scrlayer-notecolumn.dtx: fix: redeclaration of a notecolumn must not
+ add it again to @everystyle@
+
+r1680 2014-02-03 15:34:33 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex: Korrektur
+ von Elke
+
+r1679 2014-02-03 15:32:13 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn-example.tex,
+ doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/scrlttr2-experts.tex: Korrekturen von Elke
+
+r1678 2014-02-03 13:39:48 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle-experts.tex:
+ Korrekturen von Elke
+
+r1677 2014-02-03 12:07:06 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea-experts.tex: Korrekturen
+ von Elke
+
+r1676 2014-02-03 12:06:37 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: Index-/Labelerzeugung
+ korrigiert
+
+r1675 2014-02-03 08:37:48 +0100 mjk:
+
+ * scrkernel-title.dtx: fix: typeset incompatibility to versions < 3.12
+
+r1674 2014-01-31 13:18:11 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex:
+ Korrekturen und Wünsche von Elke
+
+r1673 2014-01-31 13:17:07 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex: Trennausnahme
+ für Hintergrundebene(n)
+
+r1672 2014-01-30 15:13:25 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex,
+ doc/ngerman/common-pagestylemanipulation.tex: Korrekturen von Elke
+
+r1671 2014-01-30 14:38:17 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: jetzt aber
+
+r1670 2014-01-30 13:25:27 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: noch zwei kleine
+ Änderungen auf Elkes Hinweise
+
+r1669 2014-01-30 13:17:20 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex: Korrektur von Elke
+
+r1668 2014-01-30 13:16:01 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrhack.tex: Korrekturen von Elke
+
+r1667 2014-01-30 13:11:54 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Korrekturen von Elke
+
+r1666 2014-01-30 13:11:16 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrwfile.tex: Noch ein Tippfähler
+
+r1665 2014-01-30 12:45:14 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: new keyword \ifundefinedorrelax
+
+r1664 2014-01-30 12:38:00 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex: Trennausnahme:
+ Dateinamenerweiterungen (Elke)
+
+r1663 2014-01-30 12:04:28 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrwfile.tex: diverse Korrekturen
+ von Elke und eine Ergänzung von mir
+
+r1662 2014-01-30 11:44:20 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex: diverse Korrekturen
+ von Elke
+
+r1661 2014-01-30 11:18:51 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: diverse Korrekturen
+ aufgrund von Elkes Anmerkungen
+
+r1660 2014-01-28 16:36:02 +0100 mjk:
+
+ * scrjura.dtx: fix: missing \nobreak before \hskip\z@ added
+
+r1659 2014-01-28 10:27:05 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: date update
+
+r1658 2014-01-28 10:26:38 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: one more keyword
+
+r1657 2014-01-28 10:22:37 +0100 mjk:
+
+ * doc/, doc/guide.bib: Update of serveral links and edition
+ information
+
+r1656 2014-01-28 09:11:31 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scraddr.tex: Ein Kommafehler von
+ Torsten gemeldet
+
+r1655 2014-01-28 08:46:12 +0100 mjk:
+
+ * scrjura.dtx: \contract@sentence verwendet nun \textsuperscript und
+ ermöglicht die Trennung des erstes Wortes nach einer Satzmarkierung
+
+r1654 2014-01-24 19:11:48 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-footnotes.tex,
+ doc/ngerman/common-titles.tex: Umbruch wieder korrigiert
+
+r1653 2014-01-24 18:39:13 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex,
+ doc/ngerman/common-footnotes.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/common-textmarkup.tex, doc/ngerman/common-titles.tex:
+ Korrekturen von Torsten und Elke
+
+r1652 2014-01-24 14:08:15 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlayer-scrpage-experts.tex:
+ several improvements by Jana
+
+r1651 2014-01-24 12:41:09 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlayer-scrpage.tex: improvements
+ by Jens
+
+r1650 2014-01-24 09:28:21 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbase.tex: added: one step
+ expansion
+
+r1649 2014-01-24 09:26:13 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: einfache Expansion
+ betont
+
+r1648 2014-01-24 09:25:51 +0100 mjk:
+
+ * scrkernel-basics.dtx: fix: space errors in horizontal mode
+
+r1647 2014-01-23 16:22:54 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrdatetime.tex: fix: two attention
+ marks added
+
+r1646 2014-01-23 16:20:41 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrdatetime.tex: fix: two attention
+ marks added
+
+r1645 2014-01-23 16:11:19 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrdatetime.tex, doc/english/,
+ doc/english/scrdatetime.tex: fix: dutch was missing in the language
+ list
+
+r1644 2014-01-23 11:44:14 +0100 mjk:
+
+ * scrstrip.inc: 2014
+
+r1643 2014-01-23 10:50:01 +0100 mjk:
+
+ * TODO: some translations done
+
+r1642 2014-01-23 10:47:46 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrdatetime.tex: all changes of the
+ German chapter(s) about scrtime and scrdate
+
+r1641 2014-01-23 10:40:04 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrdatetime.tex: Sprachliste
+ sortiert
+
+r1640 2014-01-23 10:17:18 +0100 mjk:
+
+ * scrtime.dtx: fix: support for several dialects of English, French,
+ and German added
+
+r1639 2014-01-23 09:22:10 +0100 mjk:
+
+ * scrtime.dtx: - new: czech added - fix: message texts - change: use
+ info instead of warning for unset languages
+
+r1638 2014-01-23 09:17:26 +0100 mjk:
+
+ * scrlayer.dtx, scrlayer-notecolumn.dtx, scrlayer-scrpage.dtx: fix:
+ package date was DD/MM/YYYY instead of YYYY/MM/DD
+
+r1637 2014-01-22 16:16:02 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/common-pagestylemanipulation.tex: Korrekturen von Elke
+
+r1636 2014-01-22 09:26:50 +0100 mjk:
+
+ * scrlayer-scrpage.dtx: fix of option pagestyleset respecitvely
+ automatic usage of a pagestyle set if the option hasn't been used
+
+r1635 2014-01-22 09:10:16 +0100 mjk:
+
+ * scrkernel-basics.dtx: Declaration of deprecated options and standard
+ class options improved and handling of option version fixed
+
+r1634 2014-01-21 10:30:39 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/common-textmarkup.tex:
+ Korrekturen und Vorschläge von Elke
+
+r1633 2014-01-21 09:03:32 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbase.tex, doc/ngerman/scrlayer-notecolumn-example.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/tocbasic.tex,
+ doc/ngerman/scrlayer.tex: Korrekturen von Benjamin und mir
+
+r1632 2014-01-20 17:18:42 +0100 mjk:
+
+ * scrkernel-basics.dtx: use \setkeys{…}{{\CurrentOption}} instead if
+ \setkeys{…}{\CurrentOption}
+
+r1631 2014-01-20 10:27:14 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/common-parmarkup.tex, doc/ngerman/scrlayer-scrpage.tex:
+ diverse Korrekturen von Elke
+
+r1630 2014-01-20 09:45:29 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/common-textmarkup.tex: Einige Verbesserungsvorschläge von
+ Elke und ein paar Umbruchänderungen
+
+r1629 2014-01-17 11:58:39 +0100 mjk:
+
+ * scrkernel-listsof.dtx: fixed: \KOMAoptions{listof=chaptergapsmall}
+ results in an error. Same happens with several other options, that
+ are implemented by other options
+
+r1628 2014-01-17 11:17:07 +0100 mjk:
+
+ * obsolete/, obsolete/Makefile: RELEASE assignment fixed
+
+r1627 2014-01-16 13:50:27 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/introduction.tex: Hinweis auf die
+ Pakete auf komascript.de
+
+r1626 2014-01-16 12:43:39 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex:
+ Beispielseite mit einer verfügbaren Abbildung aus Paket mwe.
+
+r1625 2014-01-16 10:00:54 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/scrlayer.tex:
+ kleinere Anpassungen (Indexeinträge)
+
+r1624 2014-01-15 10:31:27 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-dictum.tex: noch ein paar Tippfehler
+
+r1623 2014-01-15 09:03:50 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: noch zwei
+ Tippfehler
+
+r1622 2014-01-15 07:51:44 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex:
+ Korrekturen [Elke]
+
+r1621 2014-01-14 18:45:56 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: \clearpage vor
+ \yourrefname
+
+r1620 2014-01-14 18:42:00 +0100 mjk:
+
+ * manifest.txt: common-10.tex and common-11.tex removed
+
+r1619 2014-01-14 18:40:42 +0100 mjk:
+
+ * scrkernel-language.dtx: checksum fixed
+
+r1618 2014-01-14 18:37:24 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-footnotes.tex: noch eine
+ Korrektur von Elke
+
+r1617 2014-01-14 18:14:29 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-parmarkup.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-interleafpage.tex,
+ doc/ngerman/common-footnotes.tex,
+ doc/ngerman/common-oddorevenpage.tex: noch ein paar Verbesserungen von
+ Elke
+
+r1616 2014-01-14 17:52:03 +0100 mjk:
+
+ * doc/, doc/Makefile.guide, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/common-parmarkup.tex, doc/ngerman/common-fontsize.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-interleafpage.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/scrdatetime.tex,
+ doc/ngerman/common-options.tex, doc/ngerman/common-footnotes.tex,
+ doc/ngerman/scrextend.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/common-textmarkup.tex, doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-titles.tex, doc/ngerman/common-compatibility.tex,
+ doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/common-footnotes.tex, doc/english/scrextend.tex: several
+ improvements of the manuals
+
+r1615 2014-01-14 17:35:21 +0100 mjk:
+
+ * scrkernel-language.dtx: fixed date format of canadien, canadian,
+ australien
+
+r1614 2014-01-14 12:11:32 +0100 mjk:
+
+ * scrkernel-sections.dtx: replaced one `%% \fi' by `% \fi'
+
+r1613 2014-01-13 11:35:13 +0100 mjk:
+
+ * obsolete/, obsolete/Makefile: "Last Changed Rev" needs -f4 instead
+ of -f2
+
+r1612 2014-01-13 11:29:50 +0100 mjk:
+
+ * obsolete/, obsolete/Makefile: usage of "Last Changed Rev:" instead
+ of "Revision:" to get the current revision
+
+r1611 2014-01-13 08:12:47 +0100 mjk:
+
+ * scrkernel-pagestyles.dtx, scrlayer-scrpage.dtx: warning about font
+ elements pagehead and pagefoot fixed
+
+r1610 2014-01-10 15:51:11 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-notecolumn.tex,
+ doc/ngerman/typearea-experts.tex: Korrekturen der Korrekturen
+
+r1609 2014-01-10 15:03:54 +0100 mjk:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/scrlayer-notecolumn.tex, doc/ngerman/common-options.tex,
+ doc/ngerman/typearea-experts.tex, doc/ngerman/scrlayer.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex: diverse Korrekturen und
+ Verbesserungen
+
+r1608 2014-01-10 13:04:21 +0100 mjk:
+
+ * doc/, doc/Makefile.guide: the notecolumn example needs more pdflatex
+ runs
+
+r1607 2014-01-09 15:42:40 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex: noch
+ ne Korrektur
+
+r1606 2014-01-09 11:50:16 +0100 mjk:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/ngerman/common-pagestylemanipulation.tex: diverse Korrekturen und
+ Optimierungen für die nächste Auflage
+
+r1605 2014-01-09 09:55:07 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: gleich noch das Datum
+ geändert
+
+r1604 2014-01-09 09:54:44 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: ein paar Korrekturen
+ von Elke
+
+r1603 2014-01-07 14:47:56 +0100 mjk:
+
+ * obsolete/, obsolete/Makefile: make-tds generates version information
+ in TDS archive
+
+r1602 2014-01-07 14:30:19 +0100 mjk:
+
+ * obsolete/, obsolete/README: I'll set a version while automatic
+ release
+
+r1601 2014-01-07 12:34:09 +0100 mjk:
+
+ * scrkernel-language.dtx, TODO, scrtime.dtx: Support for Polish and
+ several new dialects of English and German
+
+r1600 2014-01-07 11:52:46 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: \FamilyUnknownKeyValue
+ [Falk]
+
+r1599 2014-01-03 21:43:24 +0100 mjk:
+
+ * scrkernel-basics.dtx: \detokenize added in info message about
+ unknown key state
+
+r1598 2014-01-03 21:21:57 +0100 mjk:
+
+ * scrkernel-basics.dtx: missing \scr@KV@err defined
+
+r1597 2014-01-03 13:57:42 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-headfootheight.tex,
+ doc/ngerman/scrlayer.tex,
+ doc/ngerman/common-pagestylemanipulation.tex: diverse Optimierungen
+
+r1596 2014-01-02 20:00:08 +0100 mjk:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/, doc/ngerman/scrlayer.tex:
+ diverse Anpassungen für kritische Umbrüche in der nächsten
+ Buchauflage
+
+r1595 2014-01-02 11:36:25 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex,
+ doc/ngerman/common-marginpar.tex, doc/ngerman/tocbasic.tex: wieder
+ einige Korrekturen und Anregunden von Elke
+
+r1594 2014-01-01 15:56:30 +0100 mjk:
+
+ * TODO, doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/scrbase.tex, doc/ngerman/common-marginpar.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/scrlfile.tex: einige
+ Erklärungen ergänzt und den Umbruch für die nächste Buchauflage
+ optimiert
+
+r1593 2013-12-31 12:58:50 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlayer.tex: serveral improvements
+ by Jana and some by myself
+
+r1592 2013-12-29 00:50:08 +0100 mjk:
+
+ * README.in/: missing README source added
+
+r1591 2013-12-28 19:02:53 +0100 mjk:
+
+ * tocstyle.dtx, scrwfile.dtx: README compatible version information
+
+r1590 2013-12-28 18:49:40 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/Makefile: alreay removed files do
+ not result in an error at clean
+
+r1589 2013-12-28 18:42:14 +0100 mjk:
+
+ * scrlayer.dtx, scrlayer-notecolumn.dtx, scrlayer-scrpage.dtx:
+ improved SCRLAYERVERSION
+
+r1588 2013-12-28 18:31:16 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex: Leerzeichen
+ zwischen "scrlayer-scrpage" und "oder" in der ersten Zeile des
+ vierten Absatzes der ersten Seite des Kapitels [Herbert]
+
+r1587 2013-12-28 18:27:14 +0100 mjk:
+
+ * Makefile.baseinit, doc/, doc/english/, doc/english/Makefile: clean
+ rules extended
+
+r1586 2013-12-28 18:17:15 +0100 mjk:
+
+ * scrextend.dtx: usage of %!KOMAScriptVersion
+
+r1585 2013-12-28 17:57:29 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2examples.dtx, doc/english/:
+ current ghostscript does not find Charter but Bitstream-Charter
+
+r1584 2013-12-28 16:29:11 +0100 mjk:
+
+ * scrkernel-pagestyles.dtx, TODO: \fi-Fehler in Seitenstil headings
+ von scrartcl [Clemens]
+
+r1583 2013-12-28 16:27:34 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex: Umbruch für die
+ nächste Buchauflage
+
+r1582 2013-12-24 11:13:55 +0100 mjk:
+
+ * obsolete/, obsolete/Makefile: CTAN does not want the tds archive any
+ longer
+
+r1581 2013-12-23 13:59:54 +0100 mjk:
+
+ * scrlayer-scrpage.dtx: fix several \ifnum errors at the scrlttr2 code
+
+r1580 2013-12-23 13:57:16 +0100 mjk:
+
+ * scrkernel-version.dtx: start of new BETA
+
+r1579 2013-12-23 13:01:56 +0100 mjk:
+
+ * obsolete/, obsolete/Makefile: fix: rule dist is more CTAN compatible
+
+r1578 2013-12-21 13:07:33 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: Korrekturen [Elke]
+
+r1577 2013-12-20 12:56:01 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: several new moretexcs
+
+r1576 2013-12-20 12:55:31 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: Umbruchkorrekturen
+
+r1575 2013-12-20 11:39:20 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: added ellipsispar and parellipsis to
+ moretexcs
+
+r1574 2013-12-20 11:08:54 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex: Umbruch scrextend
+
+r1573 2013-12-20 10:59:10 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex: Umbruch scrextend
+
+r1572 2013-12-20 10:45:17 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-textmarkup.tex: markup für
+ \color
+
+r1571 2013-12-20 09:51:13 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scraddr.tex: Warnung bezüglich
+ \KOMAoptions und \KOMAoption
+
+r1570 2013-12-20 09:48:29 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrdatetime.tex: Codierung
+
+r1569 2013-12-20 09:26:13 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex:
+ Umbruch korrigiert
+
+r1568 2013-12-19 11:28:13 +0100 mjk:
+
+ * releaselist.txt: release 2013/12/19 v3.12
+
+r1567 2013-12-19 11:27:08 +0100 mjk:
+
+ * obsolete/, obsolete/Makefile: name of tds archive in dist archive
+ fixed
+
+r1566 2013-12-19 11:08:18 +0100 mjk:
+
+ * obsolete/, obsolete/Makefile: fixed: rule dist
+
+r1565 2013-12-19 10:55:50 +0100 mjk:
+
+ * obsolete/, obsolete/Makefile: new
+
+r1564 2013-12-19 10:36:41 +0100 mjk:
+
+ * obsolete/, obsolete/scrpage-obsolete.dtx: only line breaking of
+ manual
+
+r1563 2013-12-19 10:29:59 +0100 mjk:
+
+ * obsolete/, obsolete/scrlettr.dtx: only the title of the manual
+ changed
+
+r1562 2013-12-19 08:51:16 +0100 mjk:
+
+ * Makefile, scrstrip.inc, scrjura.dtx, tocstyle.dtx, scrwfile.dtx,
+ scrcounter.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/, doc/ngerman/, doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/common-pagestylemanipulation.tex: einige Korrekturen von
+ Elke
+
+r1558 2013-12-17 14:46:13 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/common-pagestylemanipulation.tex: einige Verbesserungen
+ für die nächste Buchauflage
+
+r1557 2013-12-17 12:05:35 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: fix: of last commit
+
+r1556 2013-12-17 12:05:13 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: markup for some additional KOMA-Script
+ commands
+
+r1555 2013-12-17 09:01:58 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex: fix:
+ label-Fehler
+
+r1554 2013-12-17 08:45:48 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-headfootheight.tex: einige
+ Formulierungen verbessert und Teile der Einleitung als ergänzende
+ Informationen formatiert
+
+r1553 2013-12-16 18:08:48 +0100 mjk:
+
+ * TODO, doc/, doc/ngerman/, 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-pagestyles.dtx, TODO, scrkernel-sections.dtx: new:
+ \partnumdepth, \chapternumdepth … \subparagraphnumdepth,
+ \ifnumbered, \ifunnumbered
+
+r1550 2013-12-16 09:10:28 +0100 mjk:
+
+ * doc/, doc/ngerman/, 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/, doc/english/, doc/english/scrlayer.tex: several changes by
+ Jana and some by myself
+
+r1545 2013-12-13 16:32:18 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbase.tex: "There is not a …"
+ --> "There is no …"
+
+r1544 2013-12-13 12:13:03 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrdatetime.tex: brace fix
+
+r1543 2013-12-13 12:11:01 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbase.tex, doc/english/common-marginpar.tex,
+ doc/english/scrlayer-scrpage-experts.tex,
+ doc/english/common-parmarkup.tex, doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/expertpart.tex,
+ doc/english/common-interleafpage.tex,
+ doc/english/scrlayer-scrpage.tex,
+ doc/english/common-headfootheight.tex, doc/english/scrdatetime.tex,
+ doc/english/common-dictum.tex, doc/english/japanlco.tex,
+ doc/english/common-footnotes.tex, doc/english/scrextend.tex,
+ doc/english/common-lists.tex, doc/english/common-draftmode.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/typearea-experts.tex,
+ doc/english/common-textmarkup.tex, doc/english/scrhack.tex,
+ doc/english/scrlayer.tex, doc/english/typearea.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-pagestylemanipulation.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/scrlfile.tex,
+ doc/english/common-compatibility.tex,
+ doc/english/common-typearea.tex, doc/english/introduction.tex,
+ doc/english/preface.tex, doc/english/scraddr.tex: uniformation of
+ serveral terms
+
+r1542 2013-12-13 10:31:29 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbase.tex: line break
+
+r1541 2013-12-13 10:18:28 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbase.tex: a lot of improvements
+ by Melvin
+
+r1540 2013-12-12 19:57:43 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbase.tex: some of Melvin's
+ improvements
+
+r1539 2013-12-12 16:57:36 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex: Tippfehler [Elke]
+
+r1538 2013-12-12 12:01:33 +0100 mjk:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/common-options.tex, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/common-compatibility.tex: noch ein paar Änderungen für
+ das nächste Buch
+
+r1537 2013-12-11 20:21:09 +0100 mjk:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-interleafpage.tex, doc/ngerman/common-options.tex,
+ doc/ngerman/common-lists.tex, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/typearea.tex, doc/ngerman/common-titles.tex,
+ doc/ngerman/common-compatibility.tex: diverse Änderungen für die
+ nächste Auflage
+
+r1536 2013-12-11 10:18:01 +0100 mjk:
+
+ * doc/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/common-options.tex, doc/ngerman/typearea.tex,
+ doc/ngerman/introduction.tex: einige Anpassungen für die nächste
+ Buchauflage
+
+r1535 2013-12-11 08:22:22 +0100 mjk:
+
+ * doc/, doc/ngerman/, 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/, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/common-headfootheight.tex,
+ doc/ngerman/common-options.tex, doc/ngerman/htmlsetup,
+ doc/ngerman/common-textmarkup.tex, doc/ngerman/scrlayer.tex,
+ doc/ngerman/common-pagestylemanipulation.tex, doc/english/,
+ doc/english/htmlsetup, doc/bin/, 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/, doc/ngerman/, doc/ngerman/common-options.tex: einige Dinge
+ sind für scrlayer etc. unerheblich
+
+r1531 2013-12-10 10:57:42 +0100 mjk:
+
+ * doc/, doc/Makefile.guide: notecolumn example source added to
+ DIST_SRC
+
+r1530 2013-12-09 09:13:47 +0100 mjk:
+
+ * doc/, doc/english/, 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/, doc/english/, doc/english/scrlayer-scrpage.tex,
+ doc/english/common-headfootheight.tex: more fixes by Jens
+
+r1527 2013-11-24 11:40:41 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlayer.tex: improvement by Jana
+
+r1526 2013-11-24 10:49:38 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex, doc/english/,
+ doc/english/scrlfile.tex: kleinere Tippfehler [Elke]
+
+r1525 2013-11-22 13:57:29 +0100 mjk:
+
+ * scrlfile.dtx, doc/, doc/ngerman/, doc/ngerman/scrlfile.tex,
+ doc/english/, doc/english/scrlfile.tex: new:
+ \UnPreventPackageFromLoading
+
+r1524 2013-11-22 12:04:59 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex: fix: docu loop
+
+r1523 2013-11-22 11:52:58 +0100 mjk:
+
+ * scrlfile.dtx, doc/, doc/ngerman/, doc/ngerman/scrlfile.tex,
+ doc/english/, doc/english/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/, doc/ngerman/, doc/ngerman/typearea.tex, doc/english/,
+ doc/english/typearea.tex: onehalfspacing example improved
+
+r1519 2013-11-21 16:13:48 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/common-titles.tex: date of
+ translated file
+
+r1518 2013-11-21 15:54:26 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-titles.tex, doc/english/,
+ doc/english/common-titles.tex: fix: cover page margin macros [Falk]
+
+r1517 2013-11-21 14:02:39 +0100 mjk:
+
+ * scrkernel-title.dtx, doc/, doc/ngerman/,
+ doc/ngerman/common-titles.tex, doc/english/,
+ doc/english/common-titles.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/, doc/ngerman/, doc/ngerman/scrlfile.tex,
+ doc/english/, doc/english/scrlfile.tex: - renamed \ReplaceFile into
+ \ReplaceInput - new commands: \UnReplaceInput, \UnReplacePackage,
+ \UnReplaceClass
+
+r1514 2013-11-15 09:23:09 +0100 mjk:
+
+ * scrlayer-notecolumn.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrlayer-scrpage.tex, doc/ngerman/scrlayer.tex,
+ doc/english/, doc/english/scrlayer-scrpage-experts.tex,
+ doc/english/scrlayer-scrpage.tex, doc/english/scrlayer.tex,
+ doc/english/common-pagestylemanipulation.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-compatibility.dtx, scrkernel-typearea.dtx,
+ scrkernel-sections.dtx: new option emulatestandardclasses
+
+r1510 2013-11-11 07:46:10 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlayer.tex,
+ doc/ngerman/common-pagestylemanipulation.tex, doc/english/,
+ doc/english/scrlayer.tex: minor fixes, e.g., references
+
+r1509 2013-11-11 07:34:23 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlayer-scrpage.tex: Umlaut
+
+r1508 2013-11-09 15:33:06 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlayer-scrpage.tex: first
+ corrections by Jens
+
+r1507 2013-11-07 18:44:10 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlayer.tex,
+ doc/english/common-pagestylemanipulation.tex: additional typo and
+ grammer fixes by Elke
+
+r1506 2013-11-07 17:41:36 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/common-interleafpage.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/common-interleafpage.tex: fix:
+ \KOMAoption --> \KOMAoptions
+
+r1505 2013-11-07 12:23:38 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlayer-scrpage.tex,
+ doc/english/common-headfootheight.tex,
+ doc/english/common-pagestylemanipulation.tex: peinliche Fehler
+ korrigiert
+
+r1504 2013-11-07 08:26:20 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlayer-scrpage.tex,
+ doc/english/common-pagestylemanipulation.tex: some more suggestions by
+ Jana
+
+r1503 2013-11-06 12:44:59 +0100 mjk:
+
+ * scrkernel-language.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbase.tex, doc/english/, doc/english/scrbase.tex: doc of
+ changes of \defcaptionname, \providecaptionname, \newcaptionname,
+ and \renewcaptionname
+
+r1502 2013-11-06 12:00:12 +0100 mjk:
+
+ * scrkernel-floats.dtx, scrkernel-typearea.dtx,
+ scrkernel-listsandtabulars.dtx, scrjura.dtx, tocstyle.dtx,
+ scrpage.dtx, scrlayer-notecolumn.dtx, scrkernel-sections.dtx,
+ scrkernel-miscellaneous.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/ngerman/, doc/ngerman/scrbase.tex,
+ doc/english/, doc/english/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/ngerman/, doc/ngerman/scrbase.tex,
+ doc/english/, doc/english/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-headfootheight.tex,
+ doc/english/common-pagestylemanipulation.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<value> (instead of BCOR=<value>), 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/ngerman/, doc/ngerman/scrlayer.tex,
+ doc/english/, doc/english/Makefile,
+ doc/english/common-pagestylemanipulation.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/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/english/, doc/english/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/ngerman/, doc/ngerman/scrlayer-scrpage-experts.tex,
+ doc/ngerman/scrlayer-scrpage.tex, doc/english/,
+ doc/english/scrlayer-scrpage-experts.tex,
+ doc/english/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/ngerman/, doc/ngerman/scrlayer-scrpage.tex, doc/english/,
+ doc/english/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-pagestylemanipulation.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/scrlayer-scrpage.tex,
+ doc/english/common-pagestylemanipulation.tex: a kind of translation
+
+r1457 2013-10-23 11:34:02 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex:
+ Umbruch
+
+r1456 2013-10-23 11:16:09 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.tex:
+ fehlendes Beispiel für \GenericMarkFormat
+
+r1455 2013-10-23 09:58:56 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.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-pagestylemanipulation.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-pagestylemanipulation.tex: a
+ kind of translation of some parts
+
+r1449 2013-10-22 11:23:23 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/common-pagestylemanipulation.tex:
+ only note about untranslated state
+
+r1448 2013-10-22 11:17:09 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-pagestylemanipulation.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/ngerman/,
+ doc/ngerman/scrlayer-scrpage.tex, doc/english/, doc/english/Makefile,
+ doc/english/common-headfootheight.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-headfootheight.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:
+
+ * manifest.txt, scrlayer-notecolumn.dtx, doc/, doc/guide.tex,
+ doc/Makefile.guide, doc/ngerman/,
+ doc/ngerman/scrlayer-notecolumn-example.tex,
+ doc/ngerman/scrlayer-notecolumn.tex, doc/english/,
+ doc/english/Makefile: 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: Berücksichtigung
+ von scrlayer-scrpage bei typearea
+
+r1429 2013-10-16 12:10:43 +0200 mjk:
+
+ * manifest.txt, TODO, doc/, doc/guide.tex, doc/Makefile.guide,
+ doc/ngerman/, doc/ngerman/scrlayer.tex, doc/english/,
+ doc/english/Makefile: 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/ngerman/,
+ doc/ngerman/scrlayer-scrpage.tex,
+ doc/ngerman/common-headfootheight.tex,
+ doc/ngerman/common-pagestylemanipulation.tex, doc/english/,
+ doc/english/common-headfootheight.tex,
+ doc/english/common-pagestylemanipulation.tex: Anleitung für
+ scrlayer-scrpage
+
+r1423 2013-10-15 10:17:36 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex, doc/english/,
+ doc/english/typearea.tex: documentation of changed BCOR interpreataion
+ with "twoside=semi"
+
+r1422 2013-10-15 09:11:07 +0200 mjk:
+
+ * Makefile, Makefile.baseinit, 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/ngerman/, doc/ngerman/scrlayer-scrpage.tex, doc/english/,
+ doc/english/Makefile: preparations for adding the user manual of
+ scrlayer-scrpage
+
+r1419 2013-10-14 11:07:52 +0200 mjk:
+
+ * scrlayer.dtx, scrlayer-notecolumn.dtx, scrlayer-scrpage.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, scrlayer.dtx, manifest.txt, scrmain.ins,
+ scrlayer-notecolumn.dtx, scrlayer-scrpage.dtx: scrlayer,
+ scrlayer-scrpage, and scrlayer-notecolumn have been added to
+ KOMA-Script
+
+r1416 2013-10-08 17:43:26 +0200 mjk:
+
+ * scrlayer.dtx, scrlayer-notecolumn.dtx, scrlayer-scrpage.dtx: first
+ integrated version of scrlayer-notecolumn
+
+r1415 2013-10-08 17:33:01 +0200 mjk:
+
+ * scrlayer.dtx, scrlayer-scrpage.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-textmarkup.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/ngerman/,
+ doc/ngerman/scrlttr2-experts.tex, doc/english/,
+ doc/english/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.scrartcl.cls,
+ README.in/README.scrdoc.cls, README.in/README.scrbook.cls: more basic
+ READMEs
+
+r1397 2013-10-02 19:01:51 +0200 mjk:
+
+ * README.in/, README.in/README.scrartcl.cls,
+ README.in/README.scrlttr2.cls, README.in/README.scrreprt.cls,
+ README.in/README.scrdoc.cls, README.in/README.scrbook.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:
+
+ * Makefile, scrsource.tex, scrkernel-variables.dtx, manifest.txt,
+ scrmain.ins: renamed scrkvars.dtx into scrkernel-variables.dtx
+
+r1388 2013-10-01 18:03:42 +0200 mjk:
+
+ * Makefile, scrsource.tex, manifest.txt, scrmain.ins,
+ scrkernel-pseudolengths.dtx: 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:
+
+ * Makefile, scrsource.tex, scrkernel-listsandtabulars.dtx,
+ manifest.txt, scrmain.ins: renamed scrklists.dtx into
+ scrkernel-listsandtabulars.dtx
+
+r1385 2013-10-01 17:56:01 +0200 mjk:
+
+ * Makefile, manifest.txt, scrkernel-letterclassoptions.dtx,
+ scrmain.ins: renamed scrklco.dtx into scrkernel-letterclassoptions.dtx
+
+r1384 2013-10-01 17:51:14 +0200 mjk:
+
+ * Makefile, scrkernel-circularletters.dtx, manifest.txt, scrmain.ins:
+ renamed scrkcile.dtx into scrkernel-circularletters.dtx
+
+r1383 2013-10-01 17:44:28 +0200 mjk:
+
+ * scrkernel-version.dtx, Makefile, komabug.tex, scrsource.tex,
+ scrkernel-typearea.dtx, manifest.txt, scrmain.ins, scrhack.dtx,
+ scrpage.dtx, scrtime.dtx, scrlfile.dtx, tocbasic.dtx,
+ scrkernel-basics.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:
+
+ * tocstyle.dtx, scrpage.dtx, scrwfile.dtx, scrtime.dtx, tocbasic.dtx:
+ usage of keyword substitution
+
+r1380 2013-10-01 17:31:55 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, scrlogo.dtx, scrkernel-notepaper.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, scrkernel-variables.dtx,
+ scrkernel-footnotes.dtx, scrkernel-index.dtx,
+ scrkernel-circularletters.dtx, scrkernel-bibliography.dtx,
+ scrkernel-typearea.dtx, scrkernel-pagestyles.dtx,
+ scrkernel-listsandtabulars.dtx, scrjura.dtx, scrkernel-listsof.dtx,
+ scrkernel-letterclassoptions.dtx, tocstyle.dtx,
+ scrkernel-pseudolengths.dtx, scrhack.dtx, scrpage.dtx, scrwfile.dtx,
+ scrkernel-sections.dtx, japanlco.dtx, scrkernel-miscellaneous.dtx,
+ scrtime.dtx, scrkernel-fonts.dtx, scrextend.dtx, scraddr.dtx,
+ scrlfile.dtx, tocbasic.dtx, scrkernel-basics.dtx: usage of keyword
+ substitution
+
+r1379 2013-10-01 17:02:47 +0200 mjk:
+
+ * scrkernel-version.dtx, Makefile, scrstrop.inc, scrstrip.inc,
+ scrkernel-typearea.dtx, manifest.txt, scrmain.ins, scrhack.dtx,
+ scrpage.dtx, scrtime.dtx, scraddr.dtx, scrlfile.dtx, tocbasic.dtx,
+ scrkernel-basics.dtx: using ins=dtx for package generation
+
+r1378 2013-09-30 17:42:35 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, scrlogo.dtx, scrkernel-notepaper.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, scrkernel-variables.dtx,
+ scrkernel-footnotes.dtx, scrkernel-index.dtx,
+ scrkernel-circularletters.dtx, scrkernel-bibliography.dtx,
+ scrkernel-typearea.dtx, scrkernel-pagestyles.dtx,
+ scrkernel-listsandtabulars.dtx, scrdoc.dtx, scrjura.dtx,
+ scrkernel-listsof.dtx, scrkernel-letterclassoptions.dtx,
+ scrkxflo.dtx, scrkernel-pseudolengths.dtx, missing.dtx, scrhack.dtx,
+ scrcounter.dtx, scrkernel-sections.dtx, japanlco.dtx,
+ scrkernel-miscellaneous.dtx, scrkernel-fonts.dtx, scrextend.dtx,
+ scraddr.dtx, scrlfile.dtx, scrkernel-basics.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-index.dtx, scrkernel-bibliography.dtx, scrjura.dtx,
+ scrkernel-listsof.dtx, TODO, scrwfile.dtx, scrkernel-sections.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-pagestyles.dtx, scrkernel-listsof.dtx, TODO,
+ scrkernel-sections.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/ngerman/, doc/ngerman/common-options.tex,
+ doc/english/: 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/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/scrlttr2-experts.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/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/common-textmarkup.tex,
+ doc/english/, doc/english/scrlttr2.tex,
+ doc/english/common-textmarkup.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/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrlttr2-experts.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/ngerman/, doc/ngerman/scrlttr2.tex, doc/english/,
+ doc/english/scrlttr2.tex: frommobilephone (option and variable) and
+ symbolicnames (option) described
+
+r1342 2013-05-31 15:53:50 +0200 mjk:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/common-textmarkup.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrbookreportarticle.tex,
+ doc/english/scrextend.tex, doc/english/common-textmarkup.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:
+
+ * scrkernel-notepaper.dtx, scrkernel-language.dtx, TODO: new option
+ and variable "frommobilephone" new option "symbolicnames"
+
+r1336 2013-05-29 14:14:03 +0200 mjk:
+
+ * Makefile, scrsource.tex, manifest.txt, scrmain.ins: renamed
+ scrklang.dtx into scrkernel-language.dtx
+
+r1335 2013-05-29 12:30:52 +0200 mjk:
+
+ * scrkernel-title.dtx, doc/, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/common-titles.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/common-titles.tex: new font elements "titlehead",
+ "author", "date", "publishers", "dedication"
+
+r1334 2013-05-23 18:16:45 +0200 mjk:
+
+ * scrjura.dtx: new: \thisparnumber{<manuelle Nummer>}
+
+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
+ \listof<extension>entryname
+
+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-options.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:
+
+ * Makefile, scrkernel-notepaper.dtx, scrsource.tex, manifest.txt,
+ scrmain.ins: 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:
+
+ * scrkernel-compatibility.dtx, Makefile, scrsource.tex, manifest.txt,
+ scrmain.ins: 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:
+
+ * Makefile, scrkernel-paragraphs.dtx, scrsource.tex, manifest.txt,
+ scrmain.ins: 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:
+
+ * Makefile, scrsource.tex, scrkernel-pagestyles.dtx, manifest.txt,
+ scrmain.ins, scrkernel-miscellaneous.dtx: 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:
+
+ * Makefile, scrsource.tex, manifest.txt, scrkernel-listsof.dtx,
+ scrmain.ins: 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:
+
+ * Makefile, scrsource.tex, scrkernel-index.dtx, manifest.txt,
+ scrmain.ins: 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:
+
+ * Makefile, scrsource.tex, scrkernel-footnotes.dtx, manifest.txt,
+ scrmain.ins: 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:
+
+ * Makefile, scrsource.tex, manifest.txt, scrmain.ins,
+ scrkernel-fonts.dtx: 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/ngerman/, doc/ngerman/scrbase.tex, doc/english/,
+ doc/english/scrbase.tex: description of new state signals with
+ \FammilyKeyState and of the new command \AtEndOfFamilyOptions
+
+r1284 2013-03-05 08:27:48 +0100 mjk:
+
+ * Makefile, scrkernel-floats.dtx, scrsource.tex, manifest.txt,
+ scrmain.ins, TODO, scrkernel-miscellaneous.dtx, scrkernel-fonts.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/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/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:
+
+ * scrkernel-title.dtx, Makefile, scrsource.tex, manifest.txt,
+ scrmain.ins: 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/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/english/, doc/english/scrbookreportarticle.tex: description of
+ "bibliography=leveldown"
+
+r1276 2013-02-13 17:52:06 +0100 mjk:
+
+ * Makefile, scrsource.tex, manifest.txt, scrmain.ins,
+ scrkernel-sections.dtx: 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:
+
+ * Makefile, scrsource.tex, scrkernel-bibliography.dtx, manifest.txt,
+ scrmain.ins: 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:
+
+ * scrkernel-typearea.dtx, TODO: changed dvi/ps paper size update code
+ to avoid pdfTeX messages about unsupported specials
+
+r1267 2012-11-23 09:16:49 +0100 mjk:
+
+ * Makefile, scrsource.tex, scrkernel-typearea.dtx, manifest.txt,
+ scrmain.ins: 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.ins,
+ obsolete/scrlettr.dtx, obsolete/README: 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:
+
+ * Makefile, scrpage.dtx: 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/ngerman/, doc/ngerman/scrlfile.tex, doc/english/,
+ doc/english/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:
+
+ * scrkernel-sections.dtx: checksum fixed
+
+r1244 2012-07-29 10:50:47 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-sections.dtx: Fix: vertical alignment of \addpart differed
+ from \part [mrpiggi]
+
+r1243 2012-07-22 12:12:56 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/typearea.tex: Fix: two times
+ \PParameter for BCOR replaced by \POParameter
+
+r1242 2012-07-22 12:11:28 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: Zweimal \PParameter
+ für BCOR in \POParameter korrigiert.
+
+r1241 2012-07-17 09:13:20 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/introduction.tex: Hinweis, dass
+ (auch ungünstige) Voreinstellungen keine Fehler darstellen.
+
+r1240 2012-07-17 08:54:45 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: Von Axel Berger
+ gewünschter expliziter Hinweis auf das Offensichtliche ergänzt.
+
+r1239 2012-07-07 13:32:45 +0200 mjk:
+
+ * doc/, doc/ngerman/: Fixed: ein »sind« zuviel [Stephan Opfer]
+
+r1238 2012-07-05 10:29:01 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.12 BETA
+
+r1237 2012-07-05 10:28:17 +0200 mjk:
+
+ * releaselist.txt: release 2012/07/05 v3.11a
+
+r1235 2012-07-05 09:32:36 +0200 mjk:
+
+ * scrkernel-version.dtx: prepared for 3.11a
+
+r1234 2012-06-29 17:54:11 +0200 mjk:
+
+ * TODO: Don't forget changes
+
+r1233 2012-06-15 20:59:39 +0200 mjk:
+
+ * scrlfile.dtx: improvement for last extension
+
+r1232 2012-06-15 20:53:02 +0200 mjk:
+
+ * TODO, scrlfile.dtx: \PreventPackageFromLoading* added (uses info
+ instead of warning)
+
+r1231 2012-06-13 16:03:03 +0200 mjk:
+
+ * scrlfile.dtx: one write fault error fixed [MHP]
+
+r1230 2012-06-12 12:03:42 +0200 mjk:
+
+ * scrlfile.dtx: Fixed: \PreventPackageFromLoading prevents only last
+ package [reported by MHP]
+
+r1229 2012-06-11 10:43:49 +0200 mjk:
+
+ * 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:
+
+ * scrkernel-basics.dtx: make last fix more robust
+
+r1227 2012-05-28 13:46:29 +0200 mjk:
+
+ * scrkernel-basics.dtx: \FamilySetNumerical does not longer consume
+ known global options with unknown values
+
+r1226 2012-05-25 11:34:01 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.11a BETA
+
+r1225 2012-05-25 11:31:55 +0200 mjk:
+
+ * scrkernel-basics.dtx: Error/Info Message for unkown bool values at
+ \FamilySetBool fixed.
+
+r1224 2012-05-15 15:21:01 +0200 mjk:
+
+ * Makefile.baseinit, doc/, doc/Makefile: fix installation of
+ executables for v3.11
+
+r1223 2012-05-15 14:34:55 +0200 mjk:
+
+ * doc/, doc/Makefile, doc/Makefile.guide: fix structural changes for
+ v3.11
+
+r1222 2012-05-15 14:23:23 +0200 mjk:
+
+ * releaselist.txt: release 2012/05/15 v3.11
+
+r1221 2012-05-15 14:23:06 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.11
+
+r1220 2012-05-15 14:17:51 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/common-titles.tex:
+ broken links fixed
+
+r1219 2012-05-15 14:06:09 +0200 mjk:
+
+ * Makefile, Makefile.baseinit, manifest.txt, doc/, doc/guide.tex,
+ doc/linkalias.tex, doc/scrguide.cls, doc/Makefile.guide,
+ doc/ngerman/, doc/ngerman/Makefile, doc/ngerman/guide-ngerman.tex,
+ doc/english/, doc/english/guide-english.tex: structural improvement
+
+r1218 2012-05-15 09:38:39 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/preface.tex: Told a little bit more
+ about the current work of translators and editors.
+
+r1217 2012-05-15 09:25:59 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/common-parmarkup.tex,
+ doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/common-interleafpage.tex, doc/english/common-dictum.tex,
+ doc/english/common-footnotes.tex, doc/english/common-lists.tex,
+ doc/english/common-draftmode.tex, doc/english/common-textmarkup.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/common-titles.tex,
+ doc/english/common-typearea.tex: Several improvements by Krickette
+ Murabayashi
+
+r1216 2012-05-11 10:08:07 +0200 mjk:
+
+ * scrcounter.dtx: first design and implementation of new package
+ scrcounter
+
+r1215 2012-04-24 14:38:51 +0200 mjk:
+
+ * scrkernel-sections.dtx: \addpart fixed [reported by Ulrike Fischer]
+
+r1214 2012-04-20 09:57:19 +0200 mjk:
+
+ * scrkernel-sections.dtx: docu fix
+
+r1213 2012-04-17 10:13:15 +0200 mjk:
+
+ * scrkernel-typearea.dtx, TODO, doc/, doc/ngerman/,
+ doc/ngerman/typearea-experts.tex, doc/english/,
+ doc/english/typearea-experts.tex: new \AfterSettingArea similar to
+ \AfterCalculatingArea but for \areaset
+
+r1212 2012-04-16 09:45:21 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrwfile.tex: »Verzeichnissn« -->
+ »Verzeichnissen« [gemeldet von Jonas Stein]
+
+r1211 2012-04-08 11:14:11 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/common-compatibility.tex:
+ translation improvement
+
+r1210 2012-04-04 14:37:56 +0200 mjk:
+
+ * tocbasic.dtx: Problems with undefined \autodot fixed.
+
+r1209 2012-04-02 09:54:42 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/common-compatibility.tex:
+ improvement by Krickette Murabayashi
+
+r1208 2012-04-02 09:24:24 +0200 mjk:
+
+ * doc/, doc/english/: improvement by Krickette Murabayashi
+
+r1207 2012-04-02 09:12:03 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/typearea.tex: improvement by
+ Krickette Murabayashi
+
+r1206 2012-04-02 08:47:08 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/authorpart.tex: improvement by
+ Krickette Murabayashi
+
+r1204 2012-03-15 16:46:57 +0100 mjk:
+
+ * TODO: translation entries removed, scrwfile entry removed
+
+r1203 2012-03-15 16:45:32 +0100 mjk:
+
+ * LIESMICH.SVN: Informationen für Entwickler mit Mac OS X oder
+ Windows hinzugefügt
+
+r1201 2012-03-15 16:13:55 +0100 mjk:
+
+ * Makefile, doc/, doc/Makefile, doc/Makefile.guide, doc/ngerman/: rule
+ bindist fixed to work from scratch even
+
+r1200 2012-03-15 11:58:10 +0100 mjk:
+
+ * Makefile, Makefile.baseinit, doc/, doc/Makefile: rules distclean and
+ maintainclean improved
+
+r1198 2012-03-14 16:56:28 +0100 mjk:
+
+ * tocbasic.dtx, doc/, doc/english/, doc/english/preface.tex: primary
+ English documentation of package tocbasic completed
+
+r1197 2012-03-14 15:24:14 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Fehler, der während
+ der Ãœbersetzung entdeckt wurde, behoben.
+
+r1196 2012-03-14 09:34:56 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/introduction.tex: coding changed
+ into us-ascii
+
+r1195 2012-03-14 09:30:32 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/guide-english.tex: auto-references
+ to parts use "part" instead of "Part"
+
+r1194 2012-03-14 09:29:31 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/introduction.tex: translation
+ improvement by Krickette Murabayashi
+
+r1193 2012-03-13 17:27:23 +0100 mjk:
+
+ * tocbasic.dtx: one more step to an english manual
+
+r1192 2012-03-13 11:10:03 +0100 mjk:
+
+ * tocbasic.dtx: one more step to a complete English translation of the
+ manual
+
+r1191 2012-03-13 08:21:18 +0100 mjk:
+
+ * scrkernel-paragraphs.dtx: fix for loading everysel while
+ \begin{document}
+
+r1190 2012-03-13 08:20:24 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.10b BETA
+
+r1189 2012-03-12 10:43:56 +0100 mjk:
+
+ * README.SVN: same information for Windows or OS X users added
+
+r1188 2012-03-09 17:42:29 +0100 mjk:
+
+ * doc/, doc/plength.dtx: "%&latex" added to the generated tex files to
+ improve changes of using latex format
+
+r1187 2012-03-09 13:12:03 +0100 mjk:
+
+ * tocbasic.dtx: manual change only for one more step to an complete
+ translation of the German manual
+
+r1186 2012-03-09 13:11:11 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: fehlende Erklärung zu
+ noprotrusion
+
+r1185 2012-03-09 08:46:33 +0100 mjk:
+
+ * doc/, doc/Makefile.guide: removed non-free files
+
+r1184 2012-03-09 08:46:20 +0100 mjk:
+
+ * doc/, doc/ngerman/: removed non-free files
+
+r1183 2012-03-09 08:33:38 +0100 mjk:
+
+ * manifest.txt, doc/, doc/ngerman/, doc/ngerman/scrwfile.tex,
+ doc/english/, doc/english/expertpart.tex, doc/english/scrhack.tex,
+ doc/english/authorpart.tex: these files should have been part of the
+ repository for several weeks
+
+r1182 2012-03-08 12:40:30 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-index.dtx: brackets at \idx@heading fixed [Jürgen
+ Spitzmüller]
+
+r1181 2012-03-06 18:08:46 +0100 mjk:
+
+ * manifest.txt, scrmain.ins, doc/, doc/ngerman/,
+ doc/ngerman/scrhack.tex, doc/english/, doc/english/Makefile,
+ doc/english/preface.tex: English scrhack.tex became a new translation
+ of the German scrhack.tex
+
+r1180 2012-03-05 19:01:48 +0100 mjk:
+
+ * scrhack.dtx, scrwfile.dtx, doc/, doc/guide.tex, doc/ngerman/,
+ doc/ngerman/scrbase.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex: some changes made while
+ translation of German manual into English
+
+r1179 2012-03-05 19:00:21 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbase.tex,
+ doc/english/common-parmarkup.tex, doc/english/common-fontsize.tex,
+ doc/english/guide-english.tex, doc/english/common-draftmode.tex,
+ doc/english/common-titles.tex, doc/english/common-compatibility.tex:
+ one more step to an english manual
+
+r1178 2012-03-05 18:59:23 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/preface.tex: one more
+ step to an english manual
+
+r1177 2012-02-29 13:37:04 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2-experts.tex: one more step
+ to an english manual
+
+r1176 2012-02-29 13:17:23 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2-experts.tex: one more step
+ to an english manual
+
+r1175 2012-02-29 10:40:08 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2-experts.tex: one more step
+ to an english manual
+
+r1174 2012-02-28 14:25:37 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle-experts.tex,
+ doc/english/preface.tex: one more chapter up-to-date
+
+r1173 2012-02-28 13:07:26 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle-experts.tex:
+ one more step to an english manual
+
+r1172 2012-02-27 13:37:21 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle-experts.tex:
+ one more step to an english manual
+
+r1171 2012-02-27 08:21:14 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle-experts.tex:
+ one more step to an english manual
+
+r1170 2012-02-26 16:57:34 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/guide-english.tex,
+ doc/english/scrbookreportarticle-experts.tex: one more step to an
+ english manual
+
+r1169 2012-02-26 16:11:55 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbase.tex,
+ doc/english/common-marginpar.tex, doc/english/common-parmarkup.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/common-dictum.tex,
+ doc/english/scrextend.tex, doc/english/common-lists.tex,
+ doc/english/scrlttr2-experts.tex, doc/english/typearea-experts.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/preface.tex: one more step to an english manual
+
+r1168 2012-02-26 16:11:03 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/common-interleafpage.tex, doc/english/scrdatetime.tex,
+ doc/english/adrconvnote.tex, doc/english/scrlfile.tex,
+ doc/english/scraddr.tex: ein paar kleinere Verbesserungen, die
+ während der Übersetzung aufgefallen sind
+
+r1167 2012-02-26 16:10:51 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/common-interleafpage.tex, doc/ngerman/scrdatetime.tex,
+ doc/ngerman/adrconvnote.tex, doc/ngerman/scrlfile.tex,
+ doc/ngerman/scraddr.tex: ein paar kleinere Verbesserungen, die
+ während der Übersetzung aufgefallen sind
+
+r1166 2012-02-26 16:09:33 +0100 mjk:
+
+ * doc/, doc/guide.bib, doc/guide.tex, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/guide-ngerman.tex, doc/english/,
+ doc/english/guide-english.tex: one more step for the english manual
+
+r1165 2012-02-17 10:10:38 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: some more translations
+ and structural changes
+
+r1164 2012-02-16 19:27:20 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/common-textmarkup.tex: some more translations and
+ structural changes
+
+r1163 2012-02-16 19:26:31 +0100 mjk:
+
+ * doc/, doc/linkalias.tex, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/common-lists.tex:
+ some more translations and structural changes
+
+r1162 2012-02-16 18:35:23 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: some more translations
+ and structural changes
+
+r1161 2012-02-16 15:26:51 +0100 mjk:
+
+ * tocbasic.dtx: some more translations and structural changes
+
+r1160 2012-02-16 15:25:34 +0100 mjk:
+
+ * scrmain.ins, doc/, doc/Makefile, doc/guide.tex, doc/Makefile.guide,
+ doc/english/, doc/english/scrlttr2.tex, doc/english/Makefile,
+ doc/english/scrextend.tex, doc/english/preface.tex: some more
+ translations and structural changes
+
+r1159 2012-02-16 15:21:35 +0100 mjk:
+
+ * scrhack.dtx: docu macro \counter renamed into \Counter
+
+r1158 2012-02-16 10:51:20 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/common-draftmode.tex, doc/english/scrlttr2-experts.tex:
+ some more translations and structural changes
+
+r1157 2012-02-16 09:49:58 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrlttr2-experts.tex: some more translations and
+ structural changes
+
+r1156 2012-02-16 09:46:08 +0100 mjk:
+
+ * doc/, doc/guide.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrlttr2-experts.tex: some more translations and
+ structural changes
+
+r1155 2012-02-15 09:52:04 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: some more
+ translations and structural changes
+
+r1154 2012-02-15 09:26:21 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: some more
+ translations and structural changes
+
+r1153 2012-02-14 12:13:48 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/scrbookreportarticle-experts.tex: some more translations
+ and structural changes
+
+r1152 2012-02-14 09:56:23 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/common-marginpar.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/scrbookreportarticle-experts.tex: some more translations
+ and structural changes
+
+r1151 2012-02-14 09:35:15 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/scrbookreportarticle-experts.tex: some more translations
+ and structural changes
+
+r1150 2012-02-09 12:07:53 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: some more
+ translations and structural changes
+
+r1149 2012-02-09 10:35:02 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/common-lists.tex,
+ doc/english/scrbookreportarticle-experts.tex: some more translations
+ and structural changes
+
+r1148 2012-02-08 16:57:47 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/common-dictum.tex: some more translations and structural
+ changes
+
+r1147 2012-02-08 15:27:28 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/scrbookreportarticle-experts.tex: some more translations
+ and structural changes
+
+r1146 2012-02-08 11:33:08 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: some more
+ translations and structural changes
+
+r1145 2012-02-07 13:47:54 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: some more
+ translations and structural changes
+
+r1144 2012-02-07 10:14:03 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/common-interleafpage.tex,
+ doc/english/common-footnotes.tex: some more translations and
+ structural changes
+
+r1143 2012-02-06 16:47:49 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/common-interleafpage.tex: some more translations and
+ structural changes
+
+r1142 2012-02-06 10:04:42 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-oddorevenpage.tex: some more translations and
+ structural changes
+
+r1141 2012-02-05 16:44:18 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/common-parmarkup.tex,
+ doc/english/scrbookreportarticle.tex: some more translations and
+ structural changes
+
+r1140 2012-02-05 13:23:36 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/scrbookreportarticle-experts.tex: some more translations
+ and structural changes
+
+r1139 2012-02-05 11:40:19 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: some more
+ translations and structural changes
+
+r1138 2012-02-05 11:11:34 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/common-textmarkup.tex, doc/english/common-titles.tex,
+ doc/english/common-typearea.tex, doc/english/introduction.tex: some
+ more translations, structural changes and typografical optimizations
+
+r1137 2012-02-03 16:25:43 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: einige
+ Querverweise ergänzt
+
+r1136 2012-02-03 16:25:19 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: ein Leerzeichen
+ korrgiert
+
+r1135 2012-02-02 17:14:01 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex: some more translations and
+ structure changes
+
+r1134 2012-02-01 16:48:19 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex,
+ doc/english/scrbookreportarticle-experts.tex,
+ doc/english/common-typearea.tex: some more translations and structure
+ changes
+
+r1133 2012-02-01 13:03:02 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/common-draftmode.tex: section
+ heading translated
+
+r1132 2012-02-01 13:01:54 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/common-draftmode.tex: date update
+
+r1131 2012-02-01 13:00:44 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/common-draftmode.tex: some more
+ translations and structure changes
+
+r1130 2012-02-01 12:58:18 +0100 mjk:
+
+ * doc/, doc/guide.tex, doc/english/,
+ doc/english/scrbookreportarticle.tex,
+ doc/english/common-draftmode.tex,
+ doc/english/scrbookreportarticle-experts.tex: some more translations
+ and structure changes
+
+r1129 2012-01-31 15:19:29 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/typearea.tex: translation complete
+
+r1128 2012-01-31 14:50:22 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbase.tex,
+ doc/english/typearea-experts.tex, doc/english/typearea.tex,
+ doc/english/common-compatibility.tex, doc/english/introduction.tex:
+ some additions to the translation and some completely new
+ translations
+
+r1127 2012-01-13 10:44:09 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/introduction.tex: updated
+ translation
+
+r1126 2012-01-13 10:43:45 +0100 mjk:
+
+ * doc/, doc/guide.tex: a very small step to update the structure of
+ the english user guide
+
+r1125 2012-01-12 11:31:42 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: missing \ at \Unit
+ fixed
+
+r1124 2012-01-12 11:24:09 +0100 mjk:
+
+ * scrmain.ins: conditional betas and beta releases should not be mixed
+ into same \generate
+
+r1123 2012-01-12 11:09:49 +0100 mjk:
+
+ * scrwfile.dtx, doc/, doc/guide.tex, doc/Makefile.guide,
+ doc/english/, doc/english/Makefile: use generated scrwfile.tex at
+ english guide
+
+r1122 2012-01-10 15:48:18 +0100 mjk:
+
+ * scrkernel-version.dtx: prepared for KOMA-Script 3.10
+
+r1121 2012-01-10 09:37:54 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, Makefile, scrlogo.dtx, scrkernel-notepaper.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, Makefile.baseinit, scrkernel-variables.dtx,
+ scrkernel-footnotes.dtx, scrkernel-index.dtx,
+ scrkernel-circularletters.dtx, scrstrop.inc,
+ scrkernel-bibliography.dtx, scrstrip.inc, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-listsandtabulars.dtx, scrdoc.dtx,
+ scrjura.dtx, manifest.txt, scrkernel-listsof.dtx,
+ scrkernel-letterclassoptions.dtx, scrmain.ins, scrkxflo.dtx,
+ Makefile.baserules, tocstyle.dtx, scrkernel-pseudolengths.dtx,
+ scrhack.dtx, scrpage.dtx, scrwfile.dtx, scrkernel-sections.dtx,
+ japanlco.dtx, scrkernel-miscellaneous.dtx, scrtime.dtx,
+ scrkernel-fonts.dtx, scrextend.dtx, scraddr.dtx, scrlfile.dtx,
+ tocbasic.dtx, scrkernel-basics.dtx, doc/, doc/scrguide.ist,
+ doc/guide.bib, doc/Makefile, doc/guide.tex, doc/linkalias.tex,
+ doc/scrguide.gst, doc/scrguide.cls, doc/plength.dtx,
+ doc/Makefile.guide, doc/Makefile.latexinit, doc/ngerman/,
+ doc/ngerman/scrbase.tex, doc/ngerman/common-marginpar.tex,
+ doc/ngerman/guide-ngerman.tex, doc/ngerman/common-fontsize.tex,
+ doc/ngerman/expertpart.tex, doc/ngerman/common-interleafpage.tex,
+ doc/ngerman/scrdatetime.tex, doc/ngerman/adrconvnote.tex,
+ doc/ngerman/common-dictum.tex, doc/ngerman/common-options.tex,
+ doc/ngerman/scrextend.tex, doc/ngerman/common-lists.tex,
+ doc/ngerman/common-draftmode.tex, doc/ngerman/typearea-experts.tex,
+ doc/ngerman/scrhack.tex, doc/ngerman/typearea.tex,
+ doc/ngerman/common-oddorevenpage.tex, doc/ngerman/authorpart.tex,
+ doc/ngerman/common-compatibility.tex,
+ doc/ngerman/common-typearea.tex, doc/ngerman/introduction.tex,
+ doc/ngerman/preface.tex, doc/ngerman/scraddr.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/common-marginpar.tex,
+ doc/english/common-parmarkup.tex, doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/common-interleafpage.tex, doc/english/scrdatetime.tex,
+ doc/english/adrconvnote.tex, doc/english/common-dictum.tex,
+ doc/english/japanlco.tex, doc/english/common-footnotes.tex,
+ doc/english/common-lists.tex, doc/english/common-draftmode.tex,
+ doc/english/common-textmarkup.tex, doc/english/typearea.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/scrlfile.tex,
+ doc/english/common-titles.tex, doc/english/common-compatibility.tex,
+ doc/english/common-typearea.tex, doc/english/introduction.tex,
+ doc/english/scraddr.tex, obsolete/scrlettr.ins,
+ obsolete/scrlettr.dtx: Copyright -2012
+
+r1120 2012-01-10 09:07:15 +0100 mjk:
+
+ * manifest.txt, doc/, doc/guide.bib, doc/scrguide.cls, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/scrbase.tex,
+ doc/ngerman/common-marginpar.tex, doc/ngerman/common-parmarkup.tex,
+ doc/ngerman/guide-ngerman.tex, doc/ngerman/common-fontsize.tex,
+ doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-interleafpage.tex, doc/ngerman/scrdatetime.tex,
+ doc/ngerman/common-dictum.tex, doc/ngerman/common-options.tex,
+ doc/ngerman/common-footnotes.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/common-lists.tex, doc/ngerman/tocbasic.tex,
+ doc/ngerman/scrlttr2examples.dtx, doc/ngerman/common-draftmode.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/ngerman/typearea-experts.tex,
+ doc/ngerman/common-textmarkup.tex, doc/ngerman/scrhack.tex,
+ doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-oddorevenpage.tex, doc/ngerman/scrlfile.tex,
+ doc/ngerman/common-titles.tex, doc/ngerman/common-compatibility.tex,
+ doc/ngerman/common-typearea.tex, doc/ngerman/introduction.tex,
+ doc/ngerman/preface.tex, doc/ngerman/scraddr.tex: documentation update
+ for KOMA-Script 3.10
+
+r1119 2011-10-26 14:55:03 +0200 mjk:
+
+ * scrkernel-basics.dtx: \ignorespaces at end of \begin{document}
+
+r1118 2011-09-30 10:34:57 +0200 mjk:
+
+ * scrjura.dtx: support for languages austrian and naustrian
+
+r1117 2011-09-30 10:11:56 +0200 mjk:
+
+ * scrjura.dtx: fix: broken par numbering with option number new: font
+ element contract.Paragraph changes: several minor KOMA-Script
+ compatibility changes
+
+r1116 2011-09-29 16:16:32 +0200 mjk:
+
+ * scrjura.dtx: ref=onlyparagraph added
+
+r1115 2011-09-29 12:14:00 +0200 mjk:
+
+ * scrjura.dtx: new options juratocindent and juratocnumberwidth for
+ configuration of indentation and number width of the entries at
+ table of contents
+
+r1114 2011-09-29 11:47:58 +0200 mjk:
+
+ * scrjura.dtx: option juratotoc allowes level values additional to
+ switches
+
+r1113 2011-09-29 11:11:14 +0200 mjk:
+
+ * scrjura.dtx: new option parnumber
+
+r1112 2011-09-28 10:56:37 +0200 mjk:
+
+ * Makefile, scrmain.ins, scrhack.dtx: scrhack has a new hack floatrow
+
+r1111 2011-09-28 08:53:11 +0200 mjk:
+
+ * scrkernel-paragraphs.dtx: fix: options parskip if package everysel
+ or tracefnt was loaded
+
+r1110 2011-09-27 08:56:10 +0200 mjk:
+
+ * scrkernel-sections.dtx: changed toc entry creation fixed
+
+r1109 2011-09-27 08:54:42 +0200 mjk:
+
+ * 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:
+
+ * Makefile, manifest.txt, doc/, doc/Makefile: scrwfile is part of
+ KOMA-Script
+
+r1107 2011-09-20 10:52:29 +0200 mjk:
+
+ * scrkernel-typearea.dtx: \storeareas stores \marginparwidth and
+ \marginparsep too
+
+r1106 2011-09-16 13:34:41 +0200 mjk:
+
+ * obsolete/scrlettr.dtx: \cite (war nur noch einer) beseitigt
+
+r1105 2011-09-16 12:54:46 +0200 mjk:
+
+ * scrmain.ins: visualize is not longer a permanent beta
+
+r1104 2011-09-13 16:57:43 +0200 mjk:
+
+ * 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:
+
+ * 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:
+
+ * 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:
+
+ * scrwfile.dtx: several docu fixes by Patrick Häcker
+
+r1100 2011-09-09 11:53:12 +0200 mjk:
+
+ * scrkernel-sections.dtx: missing \par added
+
+r1099 2011-09-05 10:16:07 +0200 mjk:
+
+ * scrkernel-miscellaneous.dtx: using \providecommand instead of
+ \newcommand at definition of \@textsubscript
+
+r1098 2011-09-02 13:46:49 +0200 mjk:
+
+ * scrkernel-floats.dtx: new environment: captionofbeside
+
+r1097 2011-09-02 10:26:53 +0200 mjk:
+
+ * scrkernel-miscellaneous.dtx: new \dictumrule
+
+r1096 2011-09-01 12:07:38 +0200 mjk:
+
+ * doc/, doc/guide.bib: entry package:selinput
+
+r1095 2011-08-31 11:25:04 +0200 mjk:
+
+ * scrkernel-index.dtx, scrkernel-bibliography.dtx,
+ scrkernel-pagestyles.dtx, scrjura.dtx, scrkernel-listsof.dtx,
+ scrkernel-sections.dtx: Using \MakeMarkcase
+
+r1094 2011-08-30 12:55:46 +0200 mjk:
+
+ * doc/, doc/guide.bib: microtype entry
+
+r1093 2011-08-30 12:54:45 +0200 mjk:
+
+ * 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
+ will be used for running head and table of contents depending on the
+ value of headings:
+
+ - optiontotocandhead|optionstoheadandtoc: running head and table of contents;
+
+ - optiontohead: running head only;
+
+ - optiontotoc: table of contents only. If there is a = in the optional
+ argument of \part, \chapter etc. it will be interpreted as
+ key=value list with keys:
+
+ - tocentry=<value>: use <value> at table of contents;
+
+ - head=<value>: use <value> at running head. If the table of contents
+ argument is empty, no entry at table of contents will be
+ generated!
+
+r1092 2011-08-30 12:47:27 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: start 3.10 BETA
+
+r1091 2011-06-16 09:26:43 +0200 mjk:
+
+ * releaselist.txt: release 2011/06/16 v3.09a
+
+r1090 2011-06-16 09:26:10 +0200 mjk:
+
+ * scrkernel-version.dtx: prepared for 3.09a
+
+r1089 2011-06-16 09:24:50 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-draftmode.tex, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/typearea.tex, doc/ngerman/common-titles.tex,
+ doc/ngerman/common-compatibility.tex, doc/ngerman/introduction.tex:
+ some minor steps to the next book release
+
+r1088 2011-06-16 09:10:09 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: \important
+
+r1087 2011-06-16 09:06:56 +0200 mjk:
+
+ * scrkernel-basics.dtx: new usage of \unexpanded fixed
+
+r1086 2011-06-07 08:33:40 +0200 mjk:
+
+ * scrkernel-basics.dtx: \FamilyOptions uses e-TeX command \unexpanded
+ to be more robust
+
+r1085 2011-05-30 15:29:06 +0200 mjk:
+
+ * tocbasic.dtx: fixed: floats may have an optional argument
+
+r1084 2011-04-13 10:13:57 +0200 mjk:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex:
+ \captionof, \captionaboveof und \captionbelowof dokumentiert
+
+r1083 2011-04-13 09:20:52 +0200 mjk:
+
+ * scrkernel-floats.dtx: fix: new \captionof feature
+
+r1082 2011-04-13 09:15:33 +0200 mjk:
+
+ * scrkernel-floats.dtx: \captionof sets \@captionabovetrue depending
+ on \csname if@\@captype captionabove\endcsname
+
+r1081 2011-04-12 10:40:47 +0200 mjk:
+
+ * tocbasic.dtx: again do not explicite mark if the TOC is numbered
+
+r1080 2011-04-12 10:40:09 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.09a BETA
+
+r1079 2011-04-05 09:05:02 +0200 mjk:
+
+ * releaselist.txt: release 2011/04/02 v3.09
+
+r1077 2011-04-05 08:58:11 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.09
+
+r1076 2011-04-05 08:52:55 +0200 mjk:
+
+ * TODO, doc/, doc/guide.bib, doc/ngerman/,
+ doc/ngerman/scrbookreportarticle.tex: neue Werte für Option captions
+ dokumentiert
+
+r1075 2011-04-02 07:54:03 +0200 mjk:
+
+ * scrkernel-floats.dtx: new values for option "captions"
+
+r1074 2011-04-01 10:27:22 +0200 mjk:
+
+ * scrkernel-basics.dtx: fix: \Family@@Numical@@Key -->
+ \Family@@String@@Key
+
+r1073 2011-03-31 10:27:18 +0200 mjk:
+
+ * tocstyle.dtx: one comment changed
+
+r1072 2011-03-31 10:24:16 +0200 mjk:
+
+ * scrtime.dtx: one % added
+
+r1071 2011-03-31 10:21:23 +0200 mjk:
+
+ * scrkernel-variables.dtx: only indents changed
+
+r1070 2011-03-31 10:19:27 +0200 mjk:
+
+ * scrkernel-pseudolengths.dtx: only one indent changed
+
+r1069 2011-03-31 10:08:05 +0200 mjk:
+
+ * scrkernel-basics.dtx: \FamilyStringKey and \FamilyNumericalKey fixed
+ (thanks to Michael Pock)
+
+r1068 2011-03-23 19:10:35 +0100 mjk:
+
+ * TODO: neue Optionen und Anweisungen
+
+r1067 2011-03-23 19:03:00 +0100 mjk:
+
+ * tocbasic.dtx: todays change fixed
+
+r1066 2011-03-23 18:51:49 +0100 mjk:
+
+ * scrkernel-floats.dtx: new options `captions=top', `captions=bot',
+ `captions=figureabove', `captions=figurebelow' new commands
+ `\captionaboveof' and `\captionsbelowof'
+
+r1065 2011-03-23 15:46:02 +0100 mjk:
+
+ * tocbasic.dtx: *** empty log message ***
+
+r1064 2011-03-23 15:45:43 +0100 mjk:
+
+ * tocbasic.dtx: options "atbegin" and "atend" added to \DeclareNewTOC
+
+r1063 2011-03-10 09:38:30 +0100 mjk:
+
+ * TODO: new entry
+
+r1062 2011-03-10 09:37:34 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: Neue Sprache,
+ naustrian, dokumentiert
+
+r1061 2011-03-10 09:28:23 +0100 mjk:
+
+ * scrkernel-language.dtx: scrlttr2 supports language naustrian
+
+r1060 2011-03-09 12:46:48 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex: Dokumentation von
+ \AfterClass!, \AfterPackage!, \AfterAtEndOfClass,
+ \AfterAtEndOfPackage
+
+r1059 2011-03-09 12:44:04 +0100 mjk:
+
+ * scrlfile.dtx: new: \AfterClass!, \AfterPackage!, \AfterAtEndOfClass,
+ \AfterAtEndOfPackage
+
+r1058 2011-03-08 19:48:43 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex: Tippfehler korrigiert
+
+r1057 2011-03-08 18:29:55 +0100 mjk:
+
+ * scrlfile.dtx, doc/, doc/ngerman/, doc/ngerman/scrlfile.tex: new
+ commands \AfterClass+ and \AfterPackage+ that wait until loading of
+ class or package has been finished
+
+r1056 2011-03-07 10:50:55 +0100 mjk:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: alte
+ Font-Elemente refname und refvalue dokumentiert; neue Werte
+ dateleft, dateright, nodate für Option refline dokumentiert
+
+r1055 2011-03-07 09:38:43 +0100 mjk:
+
+ * scrkernel-notepaper.dtx, TODO: new values dateleft, dateright, and
+ nodate for option refline
+
+r1054 2011-03-06 11:14:05 +0100 mjk:
+
+ * TODO: missing docu of font elements `refname' and `refvalue'
+
+r1053 2011-03-01 13:45:55 +0100 mjk:
+
+ * tocbasic.dtx: loop in using \@currext fixed
+
+r1051 2011-02-23 18:48:29 +0100 mjk:
+
+ * Makefile, scrmain.ins, scrkernel-fonts.dtx: new package
+ scrfontsizes.sty for generation of KOMA-Script compatible font
+ sizefiles
+
+r1050 2011-02-22 11:56:51 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrdatetime.tex: scrdate supports
+ austrian and naustrian now
+
+r1049 2011-02-22 11:39:28 +0100 mjk:
+
+ * scrtime.dtx, doc/, doc/ngerman/, doc/ngerman/scrdatetime.tex,
+ doc/english/, doc/english/scrdatetime.tex: scrdate supports austrian
+ and naustrian now
+
+r1048 2011-02-22 10:15:41 +0100 mjk:
+
+ * scrkernel-fonts.dtx: \@listiv, \@listv, and \listvi fixed at
+ \changefontsizes
+
+r1046 2011-02-22 09:40:35 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.08b BETA
+
+r1045 2011-02-19 10:50:59 +0100 mjk:
+
+ * releaselist.txt: release 2011/02/19 v3.08a
+
+r1044 2011-02-19 10:49:40 +0100 mjk:
+
+ * scrkernel-version.dtx: prepared for 3.08a
+
+r1043 2011-02-11 08:59:34 +0100 mjk:
+
+ * scrlfile.dtx: internal \@gobbleopt renamed due to a compatibility
+ issue with ntheorem [once again reported by Rolf Niepraschk]
+
+r1042 2011-02-09 18:51:45 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: Neue Variablen
+ firsthead, firstfoot, nexthead, nextfoot und die Empfehlung die
+ überholten Anweisungen \firshead, \firstfoot, \nexthead, \nextfoot
+ nicht mehr zu verwenden.
+
+r1041 2011-02-09 18:37:55 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: Variablen firsthead,
+ firstfoot, nexthead, nextfoot dokumentiert
+
+r1040 2011-01-25 18:10:52 +0100 mjk:
+
+ * scrkernel-typearea.dtx: file date changed
+
+r1039 2011-01-25 18:05:51 +0100 mjk:
+
+ * scrkernel-typearea.dtx: missing % at one \AtBeginDocument added
+
+r1038 2011-01-25 18:04:26 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.08a BETA
+
+r1037 2011-01-25 09:02:16 +0100 mjk:
+
+ * releaselist.txt: release 2011/01/25 v3.08
+
+r1036 2011-01-25 09:00:57 +0100 mjk:
+
+ * scrkernel-version.dtx: prepared for 3.08
+
+r1035 2011-01-25 08:58:29 +0100 mjk:
+
+ * scrkernel-notepaper.dtx: last change of \nexthead fixed
+
+r1034 2011-01-22 12:56:13 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: Tippfehler
+ bei listof=entryprefix korrigiert
+
+r1033 2011-01-20 11:37:25 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, Makefile, scrlogo.dtx, scrkernel-notepaper.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, Makefile.baseinit, scrsource.tex,
+ scrkernel-variables.dtx, scrkernel-footnotes.dtx,
+ scrkernel-index.dtx, scrkernel-circularletters.dtx, scrstrop.inc,
+ scrkernel-bibliography.dtx, scrstrip.inc, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-listsandtabulars.dtx, scrdoc.dtx,
+ scrjura.dtx, scrkernel-listsof.dtx, scrmain.ins, scrkxflo.dtx,
+ Makefile.baserules, tocstyle.dtx, scrkernel-pseudolengths.dtx,
+ scrhack.dtx, scrpage.dtx, scrwfile.dtx, scrkernel-sections.dtx,
+ japanlco.dtx, scrkernel-miscellaneous.dtx, scrkernel-fonts.dtx,
+ scrextend.dtx, scraddr.dtx, scrlfile.dtx, tocbasic.dtx,
+ scrkernel-basics.dtx, doc/, doc/scrguide.ist, doc/Makefile,
+ doc/guide.tex, doc/linkalias.tex, doc/scrguide.cls, doc/plength.dtx,
+ doc/Makefile.guide, doc/Makefile.latexinit, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/scrbase.tex,
+ doc/ngerman/common-marginpar.tex, doc/ngerman/common-parmarkup.tex,
+ doc/ngerman/Makefile, doc/ngerman/guide-ngerman.tex,
+ doc/ngerman/common-fontsize.tex, doc/ngerman/expertpart.tex,
+ doc/ngerman/common-interleafpage.tex, doc/ngerman/adrconvnote.tex,
+ doc/ngerman/common-dictum.tex, doc/ngerman/common-options.tex,
+ doc/ngerman/common-footnotes.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/common-lists.tex, doc/ngerman/tocbasic.tex,
+ doc/ngerman/scrlttr2examples.dtx, doc/ngerman/common-draftmode.tex,
+ doc/ngerman/typearea-experts.tex, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-oddorevenpage.tex, doc/ngerman/authorpart.tex,
+ doc/ngerman/scrlfile.tex, doc/ngerman/common-titles.tex,
+ doc/ngerman/common-compatibility.tex,
+ doc/ngerman/common-typearea.tex, doc/ngerman/introduction.tex,
+ doc/ngerman/preface.tex, doc/ngerman/scraddr.tex, doc/english/,
+ doc/english/common-marginpar.tex, doc/english/common-parmarkup.tex,
+ doc/english/Makefile, doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/common-interleafpage.tex, doc/english/scrdatetime.tex,
+ doc/english/adrconvnote.tex, doc/english/common-dictum.tex,
+ doc/english/japanlco.tex, doc/english/common-footnotes.tex,
+ doc/english/common-lists.tex, doc/english/common-draftmode.tex,
+ doc/english/common-textmarkup.tex, doc/english/typearea.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/scrlfile.tex,
+ doc/english/common-titles.tex, doc/english/common-compatibility.tex,
+ doc/english/common-typearea.tex, doc/english/introduction.tex,
+ doc/english/scraddr.tex, obsolete/scrlettr.ins,
+ obsolete/scrlettr.dtx: Update of Copyright date
+
+r1032 2011-01-20 11:08:24 +0100 mjk:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex:
+ Font-Element "chapterprefix", das seit Version 2.96a existiert,
+ dokumentiert.
+
+r1031 2011-01-20 10:33:04 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex: Anweisungen
+ \PreventPackageFromLoading, \StorePreventPackageFromLoading,
+ \ResetPreventPackageFromLoading dokumentiert
+
+r1030 2011-01-20 09:01:41 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: compilation error
+ fixed
+
+r1029 2011-01-20 09:00:32 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: scrlttr2 supports
+ swedish (Benjamin Hell)
+
+r1028 2011-01-20 08:56:03 +0100 mjk:
+
+ * 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:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrdatetime.tex: Dank Benjamin Hell
+ werden nun auch Schwedisch und Dänish von scrdate unterstützt.
+
+r1026 2011-01-18 12:43:01 +0100 mjk:
+
+ * scrtime.dtx: new languages swedish and danish (Benjamin Hell)
+
+r1025 2011-01-10 15:06:24 +0100 mjk:
+
+ * scrkernel-letterclassoptions.dtx: output of fields address and
+ location fixed at visualize.lco
+
+r1024 2010-12-14 11:20:44 +0100 mjk:
+
+ * tocbasic.dtx: \tocbasicautomode fixed
+
+r1023 2010-12-14 10:51:53 +0100 mjk:
+
+ * scrkernel-paragraphs.dtx, doc/, doc/ngerman/,
+ doc/ngerman/common-parmarkup.tex: new option parskip=never to avoid
+ vertical stretching of paragraphs with \flushbottom
+
+r1022 2010-12-14 10:38:13 +0100 mjk:
+
+ * scrkernel-basics.dtx: checksum fixed
+
+r1021 2010-12-14 10:37:40 +0100 mjk:
+
+ * 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:
+
+ * doc/, doc/guide.bib: fixed: Johannes Braams [thanks to Dietrich
+ Grau]
+
+r1019 2010-11-05 16:13:02 +0100 mjk:
+
+ * TODO: new entries
+
+r1018 2010-11-05 16:11:17 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: \FamilyStringKey
+ dokumentiert
+
+r1017 2010-11-05 15:37:31 +0100 mjk:
+
+ * scrkernel-basics.dtx: fix for \Family@@String@@Key
+
+r1016 2010-11-05 15:24:59 +0100 mjk:
+
+ * scrkernel-basics.dtx: new: \FamilyStringKey
+
+r1015 2010-11-05 12:22:30 +0100 mjk:
+
+ * 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:
+
+ * scrlfile.dtx: file date fixed
+
+r1013 2010-11-05 11:51:56 +0100 mjk:
+
+ * scrlfile.dtx: allow \PreventPackageFromLoading,
+ \ResetPreventPackageFromLoading, and \StorePreventPackageFromLoading
+ at preamble only
+
+r1012 2010-11-05 11:28:52 +0100 mjk:
+
+ * scrwfile.dtx: Options documentation fixed
+
+r1011 2010-11-04 13:23:17 +0100 mjk:
+
+ * scrlfile.dtx: new \PreventPackageFromLoading,
+ \ResetPreventPackageFromLoading, \StorePreventPackageFromLoading
+
+r1010 2010-11-04 10:46:27 +0100 mjk:
+
+ * scrkernel-floats.dtx: space needed for captionbeside should be
+ independent of vertical alignment
+
+r1009 2010-11-04 10:40:11 +0100 mjk:
+
+ * scrkernel-floats.dtx: vertical alignment of captionbeside in case of
+ t- or b-placement fixed
+
+r1008 2010-11-01 21:13:17 +0100 mjk:
+
+ * scrkernel-listsof.dtx, scrkernel-sections.dtx: new:
+ \addchaptertocentry, \addparttocentry
+
+r1007 2010-10-28 11:55:30 +0200 mjk:
+
+ * scrkernel-compatibility.dtx: checksum fixed
+
+r1006 2010-10-28 11:55:02 +0200 mjk:
+
+ * scrkernel-compatibility.dtx: 3.07a removed because never existed
+
+r1005 2010-10-28 11:54:00 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.08 BETA
+
+r1004 2010-10-28 11:51:40 +0200 mjk:
+
+ * scrlfile.dtx: don't care about already existing
+ \protected@immediate@write, just define it
+
+r1003 2010-10-28 11:49:47 +0200 mjk:
+
+ * scrkernel-notepaper.dtx, scrkernel-variables.dtx,
+ scrkernel-pagestyles.dtx: \firsthead, \nexthead, \firtfoot, \nextfoot
+ are deprecated and replaced by variables
+
+r1002 2010-10-20 10:49:11 +0200 mjk:
+
+ * Makefile: fix last change
+
+r1001 2010-10-20 10:48:46 +0200 mjk:
+
+ * Makefile: prepare replaces indirect \ifbeta definition too
+
+r1000 2010-10-20 10:41:44 +0200 mjk:
+
+ * scrwfile.dtx: block order changed at dtx file
+
+r999 2010-10-19 09:28:00 +0200 mjk:
+
+ * scrwfile.dtx: internal command prefix `tst@' replaced by `scrwfile@'
+
+r998 2010-10-05 09:15:57 +0200 mjk:
+
+ * scrwfile.dtx: added BerliOS to release sources
+
+r997 2010-10-04 15:45:41 +0200 mjk:
+
+ * scrwfile.dtx: first alpha of new package scrwfile
+
+r996 2010-09-30 15:13:22 +0200 mjk:
+
+ * scrlfile.dtx: \protected@immediate@write added
+
+r995 2010-09-30 10:58:13 +0200 mjk:
+
+ * scrmain.ins: usage of tocbasic rule load extension
+
+r994 2010-09-30 10:57:24 +0200 mjk:
+
+ * tocbasic.dtx: load rule extended: may be used by package load rules
+ too
+
+r993 2010-09-30 10:56:40 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ KOMA-Script 3.07a BETA
+
+r992 2010-09-17 18:10:51 +0200 mjk:
+
+ * TODO: translation leak added
+
+r991 2010-09-17 11:11:10 +0200 mjk:
+
+ * releaselist.txt: release 2010/09/17 v3.07
+
+r990 2010-09-17 10:55:45 +0200 mjk:
+
+ * scrkernel-version.dtx: prepared for 3.07
+
+r989 2010-09-17 10:20:13 +0200 mjk:
+
+ * scrkernel-pagestyles.dtx: pagestyle bug fixed at
+ \cleardoubleoddpageusingstyle, \cleardoubleevenpageusingstyle,
+ \cleardoublepageusingstyle
+
+r988 2010-09-14 12:41:11 +0200 mjk:
+
+ * doc/, doc/linkalias.tex, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbookreportarticle.tex: neues Font-Element
+ "footnoterule" dokumentiert
+
+r987 2010-09-14 11:55:32 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ KOMA-Script 3.07 BETA
+
+r986 2010-09-14 11:51:44 +0200 mjk:
+
+ * 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:
+
+ * tocbasic.dtx: expand the arguments of \addtotoclist while adding
+ them to the internal list of known pairs of extensions and owners
+
+r984 2010-09-02 17:15:55 +0200 mjk:
+
+ * scrkernel-version.dtx, scrmain.ins, scrextend.dtx: scrextend
+ identification added
+
+r983 2010-08-24 15:17:25 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: Fehler in
+ Faltmarkentabelle korrigiert [gemeldet von Adrian Devries]
+
+r982 2010-07-29 20:29:14 +0200 mjk:
+
+ * scrkernel-notepaper.dtx: vertical alignment of addresse with parskip
+ setting different from false fixed
+
+r981 2010-06-30 10:51:52 +0200 mjk:
+
+ * doc/, doc/Makefile: scrbase.html and tocbasic.html added
+
+r980 2010-06-30 10:51:31 +0200 mjk:
+
+ * manifest.txt: scrbase.html and tocbasic.html added
+
+r979 2010-06-17 11:14:29 +0200 mjk:
+
+ * scrjura.dtx: copyright date of generated files fixed
+
+r976 2010-06-17 10:44:55 +0200 mjk:
+
+ * scrjura.dtx: "beta" removed from version number to not compromise
+ the LPPL
+
+r975 2010-06-17 09:54:01 +0200 mjk:
+
+ * releaselist.txt: release 2010/06/17 v3.06
+
+r974 2010-06-17 09:53:42 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.06
+
+r973 2010-06-17 09:52:53 +0200 mjk:
+
+ * TODO: updated
+
+r972 2010-06-09 10:52:24 +0200 mjk:
+
+ * tocbasic.dtx: documentation of noprotrusion changed
+
+r971 2010-06-09 10:33:04 +0200 mjk:
+
+ * scrkernel-sections.dtx: usage of font element "sectioning" replaced
+ by usage of font element "disposition"
+
+r970 2010-06-09 10:32:03 +0200 mjk:
+
+ * tocbasic.dtx: deactivate protrusion at TOCs if microtype was loaded
+ and feature "noprotrusion" was not set
+
+r969 2010-06-07 16:47:10 +0200 mjk:
+
+ * scrjura.dtx: \changes hinzugefügt bzw. korrigiert
+
+r968 2010-06-07 16:26:51 +0200 mjk:
+
+ * scrjura.dtx: Neue Optionen "ref=nopar" (schaltet die Ausgabe der
+ Absatznummer bei \ref und \refPar ab), "ref=nosentence" (schaltet
+ die Ausgabe der Satznummer bei \ref und \refSentence ab),
+ "ref=OnlyParagraph" (kombiniert nopar und nosentence).
+
+r967 2010-06-02 17:31:34 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/tocbasic.tex: neue Anweisungen dokumentiert
+
+r966 2010-06-02 17:30:45 +0200 mjk:
+
+ * scrkernel-sections.dtx: setting of feature chapteratlist moved to
+ scrkliof.dtx
+
+r965 2010-06-02 17:28:54 +0200 mjk:
+
+ * doc/, doc/ngerman/: neue Anweisung \setfootnoterule dokumentiert
+
+r964 2010-06-02 17:21:21 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: Trennung von
+ "Papierformatumschaltung" korrigiert
+
+r963 2010-06-02 15:20:55 +0200 mjk:
+
+ * 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:
+
+ * scrpage.dtx: \if@twoside load time dependency changed into
+ \if@twoside run time dependency
+
+r961 2010-06-02 12:05:46 +0200 mjk:
+
+ * tocbasic.dtx: new command \DeclareNewTOC
+
+r960 2010-06-02 11:43:45 +0200 mjk:
+
+ * 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:
+
+ * scrkernel-listsandtabulars.dtx: vertical alignment of addmargin
+ after \par with \parskip>0 fixed
+
+r958 2010-04-28 10:56:17 +0200 mjk:
+
+ * scrjura.dtx: write the type of a label into the label
+
+r957 2010-04-28 10:00:14 +0200 mjk:
+
+ * scrjura.dtx: error message fixed
+
+r956 2010-04-28 09:59:52 +0200 mjk:
+
+ * scrjura.dtx: error message fixed
+
+r955 2010-04-28 09:59:26 +0200 mjk:
+
+ * scrjura.dtx: some optimizations and one missing error message added
+
+r954 2010-04-26 11:13:43 +0200 mjk:
+
+ * scrjura.dtx: some optimizations at writing \newmaxpars into aux and
+ at \getmaxpars
+
+r953 2010-04-23 10:51:25 +0200 mjk:
+
+ * 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:
+
+ * scrjura.dtx: version number (patch level) increased
+
+r951 2010-04-05 19:30:07 +0200 mjk:
+
+ * scrjura.dtx: new option juratitlepagebreak
+
+r950 2010-04-03 19:40:32 +0200 mjk:
+
+ * scrkernel-footnotes.dtx: new command \setfootnoterule and some
+ helper macros for the new command
+
+r949 2010-03-24 09:25:03 +0100 mjk:
+
+ * Makefile: scrtime.ins does not longer exist
+
+r948 2010-03-24 09:22:20 +0100 mjk:
+
+ * scrmain.ins, scrkernel-fonts.dtx: \setkomafont, \addtokomafont,
+ \usekomafton, \newkomafont, \aliaskomafont moved to package scrkbase
+
+r947 2010-03-18 16:01:23 +0100 mjk:
+
+ * 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:
+
+ * doc/, doc/scrguide.cls: usage of package marginnote to set the
+ change marks
+
+r945 2010-03-18 12:33:32 +0100 mjk:
+
+ * scrkernel-compatibility.dtx: 3.05a is not a new compatibility level
+
+r944 2010-03-18 12:32:36 +0100 mjk:
+
+ * scrkernel-typearea.dtx: remove not correct working geometry change
+
+r943 2010-03-18 11:54:38 +0100 mjk:
+
+ * scrkernel-typearea.dtx: file date an version fixed
+
+r942 2010-03-18 11:54:00 +0100 mjk:
+
+ * 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:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlfile.tex: fehlende \ChangedAt
+ und fehlende Doku zu \AfterReadingMainAux ergänzt
+
+r940 2010-03-12 11:48:23 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrdatetime.tex: Ein paar Fehlerchen
+ korrigiert und Kritik von Alexander umgesetzt.
+
+r939 2010-03-11 11:20:56 +0100 mjk:
+
+ * TODO, doc/, doc/ngerman/, doc/ngerman/scrdatetime.tex: Die
+ Anweisungen \CenturyPart, \DecadePart, \DayNumber,
+
+ \ISODayNumber, \DayName, \ISODayName, \DayNameByNumber, \ISOToday,
+
+ \IsoToday, \todaysnumber sind dokumentiert (scrdate). Die Änderung
+ bezüglich Option 12h ist dokumentiert (scrtime).
+
+r938 2010-03-11 09:46:00 +0100 mjk:
+
+ * scrtime.dtx: New command \todaysnumber
+
+r937 2010-03-11 08:42:19 +0100 mjk:
+
+ * scrtime.dtx: new command \IsoToday
+
+r936 2010-03-10 19:21:09 +0100 mjk:
+
+ * TODO: undocumented commands added
+
+r935 2010-03-10 19:18:39 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbase.tex: \XdivY und \XmodY
+ dokumentiert
+
+r934 2010-03-10 18:45:25 +0100 mjk:
+
+ * scrtime.dtx: New commands \CenturyPart, \DecadePart, \DayNumber,
+ \ISODayNumber, \DayName, \ISODayName, \DayNameByNumber, \ISOToday at
+ package scrdate
+
+r933 2010-03-10 18:27:23 +0100 mjk:
+
+ * manifest.txt: scrtime.ins is not longer part of KOMA-Script
+
+r932 2010-03-10 15:33:59 +0100 mjk:
+
+ * scrmain.ins, scrtime.dtx, 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:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.05a BETA
+
+r930 2010-02-15 11:49:41 +0100 mjk:
+
+ * releaselist.txt: release 2010/02/15 v3.05
+
+r929 2010-02-15 11:48:37 +0100 mjk:
+
+ * scrkernel-version.dtx: prepared for 3.05
+
+r928 2010-02-15 11:38:37 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: missing
+ \ChangedAt entries added
+
+r927 2010-02-09 10:41:50 +0100 mjk:
+
+ * TODO: some TODOs removed
+
+r926 2010-02-09 10:38:52 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, Makefile, scrlogo.dtx, scrkernel-notepaper.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, Makefile.baseinit, scrsource.tex,
+ scrkernel-variables.dtx, scrkernel-footnotes.dtx,
+ scrkernel-index.dtx, scrkernel-circularletters.dtx, scrstrop.inc,
+ scrkernel-bibliography.dtx, scrstrip.inc, scrkernel-typearea.dtx,
+ scrkernel-listsandtabulars.dtx, scrdoc.dtx, scrjura.dtx,
+ scrkernel-listsof.dtx, scrkernel-letterclassoptions.dtx, scrmain.ins,
+ scrkxflo.dtx, Makefile.baserules, tocstyle.dtx,
+ scrkernel-pseudolengths.dtx, scrpage.dtx, scrkernel-sections.dtx,
+ japanlco.dtx, scrkernel-miscellaneous.dtx, scrtime.dtx,
+ scrkernel-fonts.dtx, scrextend.dtx, scraddr.dtx, scrlfile.dtx,
+ tocbasic.dtx, doc/, doc/scrguide.ist, doc/koma-script.html,
+ doc/guide.bib, doc/Makefile, doc/guide.tex, doc/linkalias.tex,
+ doc/scrguide.cls, doc/plength.dtx, doc/Makefile.guide,
+ doc/Makefile.latexinit, doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrbase.tex, doc/ngerman/common-marginpar.tex,
+ doc/ngerman/Makefile, doc/ngerman/guide-ngerman.tex,
+ doc/ngerman/common-fontsize.tex,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/expertpart.tex,
+ doc/ngerman/common-interleafpage.tex, doc/ngerman/scrdatetime.tex,
+ doc/ngerman/adrconvnote.tex, doc/ngerman/common-dictum.tex,
+ doc/ngerman/common-options.tex, doc/ngerman/common-footnotes.tex,
+ doc/ngerman/scrextend.tex, doc/ngerman/common-lists.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/scrlttr2examples.dtx,
+ doc/ngerman/common-draftmode.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/typearea-experts.tex, doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/common-oddorevenpage.tex, doc/ngerman/authorpart.tex,
+ doc/ngerman/scrlfile.tex, doc/ngerman/common-titles.tex,
+ doc/ngerman/common-compatibility.tex,
+ doc/ngerman/common-typearea.tex, doc/ngerman/introduction.tex,
+ doc/ngerman/preface.tex, doc/ngerman/scraddr.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/common-marginpar.tex,
+ doc/english/common-parmarkup.tex, doc/english/Makefile,
+ doc/english/common-fontsize.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/common-interleafpage.tex, doc/english/scrdatetime.tex,
+ doc/english/adrconvnote.tex, doc/english/common-dictum.tex,
+ doc/english/japanlco.tex, doc/english/common-footnotes.tex,
+ doc/english/common-lists.tex, doc/english/common-draftmode.tex,
+ doc/english/common-textmarkup.tex, doc/english/typearea.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/scrlfile.tex,
+ doc/english/common-titles.tex, doc/english/common-compatibility.tex,
+ doc/english/common-typearea.tex, doc/english/introduction.tex,
+ doc/english/scraddr.tex, obsolete/scrlettr.ins,
+ obsolete/scrlettr.dtx: * it's 2010 * user documentation of pseudo
+ lengths "firstheadhpos" and "firstheadvpos" added
+
+r925 2010-02-05 09:20:36 +0100 mjk:
+
+ * scrkernel-pagestyles.dtx: \pagemark changed to allow last element of
+ pagenumber may expect an argument
+
+r924 2010-02-02 09:18:46 +0100 mjk:
+
+ * scrkernel-basics.dtx: improved stability of \FamilyExecuteOptions
+
+r923 2010-01-29 15:25:24 +0100 mjk:
+
+ * 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:
+
+ * scrhack.dtx: deactivation of hyperref hack if hyperref since v6.79h
+ detected
+
+r921 2010-01-18 12:26:40 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-parmarkup.tex: parskip table
+ fixed [reported by Aradan]
+
+r920 2010-01-05 16:20:01 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: Tippfehler korrigiert
+
+r919 2010-01-05 16:19:36 +0100 mjk:
+
+ * tocbasic.dtx: \BeforeStartingTOC, \AfterStartingTOC, \BeforeTOCHead,
+ \AfterTOCHead fixed [error reported by Rolf Niepraschk]
+
+r918 2009-12-15 08:44:51 +0100 mjk:
+
+ * scrhack.dtx: several docu fixes by Jens Kubieziel
+
+r917 2009-11-28 12:00:45 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/common-typearea.tex:
+r916 2009-11-28 11:57:23 +0100 mjk:
+
+ * 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-marginpar.tex,
+ doc/english/common-parmarkup.tex, doc/english/common-fontsize.tex,
+ doc/english/common-interleafpage.tex, doc/english/common-dictum.tex,
+ doc/english/common-footnotes.tex, doc/english/common-lists.tex,
+ doc/english/common-draftmode.tex, doc/english/common-textmarkup.tex,
+ doc/english/common-oddorevenpage.tex, doc/english/common-titles.tex,
+ doc/english/common-compatibility.tex,
+ doc/english/common-typearea.tex: common.tex splitted
+
+r914 2009-11-28 11:53:21 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/common-marginpar.tex,
+ doc/ngerman/common-parmarkup.tex, doc/ngerman/common-fontsize.tex,
+ doc/ngerman/common-interleafpage.tex, doc/ngerman/common-dictum.tex,
+ doc/ngerman/common-options.tex, doc/ngerman/common-footnotes.tex,
+ doc/ngerman/common-lists.tex, doc/ngerman/common-draftmode.tex,
+ doc/ngerman/common-textmarkup.tex,
+ doc/ngerman/common-oddorevenpage.tex, doc/ngerman/common-titles.tex,
+ doc/ngerman/common-compatibility.tex,
+ doc/ngerman/common-typearea.tex: common.tex splitted
+
+r913 2009-11-28 11:35:29 +0100 mjk:
+
+ * Makefile.baseinit: workaround for behaviour change (bug?) of
+ kpsewhich 5.0.0
+
+r912 2009-11-28 11:16:05 +0100 mjk:
+
+ * scrkernel-basics.dtx: spellfix: internally
+
+r911 2009-11-11 16:44:30 +0100 mjk:
+
+ * tocstyle.dtx: improve handling of standard classes
+
+r910 2009-11-11 11:33:18 +0100 mjk:
+
+ * tocstyle.dtx, scrpage.dtx, scrkernel-sections.dtx: part is always
+ level -1
+
+r909 2009-11-11 10:35:40 +0100 mjk:
+
+ * scrkernel-letterclassoptions.dtx: checksum fixed
+
+r908 2009-11-11 09:38:32 +0100 mjk:
+
+ * TODO: TODO entries about "firstheadhpos" and "firstfoothpos"
+
+r907 2009-11-09 16:28:43 +0100 mjk:
+
+ * scrkernel-notepaper.dtx, scrkernel-letterclassoptions.dtx: new
+ pseudo lengths supported
+
+r906 2009-11-09 16:04:39 +0100 mjk:
+
+ * scrkernel-notepaper.dtx: New pseudo-lengths "firstheadhpos" and
+ "firstfoothpos".
+
+r905 2009-11-09 11:48:51 +0100 mjk:
+
+ * tocstyle.dtx: fix: toc indentation should use parent max values but
+ will terminate later
+
+r904 2009-11-09 10:25:24 +0100 mjk:
+
+ * scrhack.dtx: load hyperref hack earlier (after loading hyperref and
+ the hyperref driver files)
+
+r903 2009-09-05 15:45:26 +0200 mjk:
+
+ * TODO: microtype-TODO für tocbasic aufgenommen
+
+r902 2009-08-05 11:43:27 +0200 mjk:
+
+ * scrhack.dtx: changed order of options and commands to make it more
+ robust for different package loading orders
+
+r901 2009-08-05 11:41:44 +0200 mjk:
+
+ * scrkernel-basics.dtx: version number at \changes fixed
+
+r900 2009-08-05 11:40:51 +0200 mjk:
+
+ * scrkernel-floats.dtx: version number at \changed fixed
+
+r899 2009-08-05 11:40:00 +0200 mjk:
+
+ * scrkernel-listsof.dtx: version number at \changed fixed
+
+r898 2009-07-24 19:54:31 +0200 mjk:
+
+ * scrkernel-version.dtx: prepared for 3.05 BETA
+
+r897 2009-07-24 19:32:25 +0200 mjk:
+
+ * releaselist.txt: release v3.04a 2009/07/24
+
+r896 2009-07-24 17:48:46 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.04a
+
+r895 2009-07-24 15:53:30 +0200 mjk:
+
+ * scrkernel-letterclassoptions.dtx: generation of KOMAold fixed
+
+r894 2009-07-24 11:59:07 +0200 mjk:
+
+ * tocstyle.dtx: documentation of commands \showtoc, \aliastoc,
+ \tocstyleTOC, \tocstyleAliasTOC, \tocstyledepth, and \iftochasdepth
+ added.
+
+r893 2009-07-15 16:53:14 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: new comment for pdfborderstyle={/S/U/W 1}
+
+r892 2009-07-15 11:22:44 +0200 mjk:
+
+ * manifest.txt: common.tex splitted into single common-<nr>.tex files
+
+r891 2009-07-15 11:21:06 +0200 mjk:
+
+ * doc/, doc/scrguide.cls, doc/Makefile.guide, doc/ngerman/,
+ doc/english/: common.tex splitted into single common-<nr>.tex files
+
+r890 2009-07-14 10:01:30 +0200 mjk:
+
+ * scrkernel-title.dtx: Option titlepage may be changed after loading
+ using \KOMAoptions.
+
+r889 2009-07-10 15:41:10 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: documentation of
+ element "pagefoot" in table and description changed
+
+r888 2009-07-08 10:30:58 +0200 mjk:
+
+ * TODO: update of the much to old TODO list
+
+r887 2009-07-08 10:25:15 +0200 mjk:
+
+ * scrkernel-floats.dtx: \captionof added
+
+r886 2009-07-08 09:16:19 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.05 BETA
+
+r885 2009-07-07 18:23:22 +0200 mjk:
+
+ * releaselist.txt: Release 2009/07/07 3.04
+
+r884 2009-07-07 17:54:28 +0200 mjk:
+
+ * scrstrip.inc: beta comment changed
+
+r881 2009-07-07 11:48:32 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.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:
+
+ * scrmain.ins: UScommercial9.lco and UScommercial9DW.lco are still
+ beta
+
+r879 2009-07-07 10:15:05 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex: ChangeLog
+ entry for visualize.lco fixed
+
+r878 2009-07-07 10:14:10 +0200 mjk:
+
+ * 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.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:
+
+ * scrkernel-letterclassoptions.dtx: CheckSum fixed
+
+r874 2009-06-30 12:31:53 +0200 mjk:
+
+ * scrkernel-letterclassoptions.dtx: \showfieldcolor replaced by font
+ element field
+
+r873 2009-06-30 12:24:02 +0200 mjk:
+
+ * Makefile, scrkernel-letterclassoptions.dtx, 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:
+
+ * scrkernel-notepaper.dtx: spelling of ``addressee'' fixed
+
+r871 2009-06-29 18:59:41 +0200 mjk:
+
+ * scrkernel-letterclassoptions.dtx, scrmain.ins: new LCO USletterC9DW
+
+r870 2009-06-26 14:01:27 +0200 mjk:
+
+ * Makefile, scrkernel-letterclassoptions.dtx, scrmain.ins: new lco
+ files visualize.lco and USletter2w.lco startet
+
+r869 2009-06-25 11:09:46 +0200 mjk:
+
+ * scrkernel-notepaper.dtx, scrkernel-letterclassoptions.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:
+
+ * scrkernel-notepaper.dtx: vertical alignment of addressee and usage
+ of \@savevbox fixed
+
+r867 2009-06-12 12:20:48 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: lco files sorted
+
+r866 2009-06-12 11:13:49 +0200 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: Reihenfolge der
+ NF-Dateien korrigiert
+
+r865 2009-06-09 11:46:44 +0200 mjk:
+
+ * scrkernel-sections.dtx: workaround for undocumented problem of
+ hyperref with \relax at \the<Counter>
+
+r864 2009-06-08 09:24:37 +0200 mjk:
+
+ * tocbasic.dtx: typo fixed at usage of \doforeachtocfile
+
+r863 2009-05-11 12:09:06 +0200 mjk:
+
+ * scrkernel-listsandtabulars.dtx: scrextend has font elements
+ labelinglabel and labelingseparator
+
+r862 2009-04-21 10:48:00 +0200 mjk:
+
+ * Makefile: new Letter Class Option NF.lco
+
+r861 2009-04-21 10:45:52 +0200 mjk:
+
+ * scrkernel-letterclassoptions.dtx, scrmain.ins, doc/, doc/guide.bib,
+ doc/ngerman/, doc/ngerman/scrlttr2.tex,
+ doc/ngerman/scrlttr2-experts.tex, doc/english/,
+ doc/english/scrlttr2.tex: new Letter Class Option NF.lco
+
+r860 2009-04-21 09:06:07 +0200 mjk:
+
+ * tocbasic.dtx: one indirect message changed
+
+r859 2009-04-21 08:56:43 +0200 mjk:
+
+ * scrkernel-sections.dtx: One »~« replaced by »\nobreakspace« to
+ improve compatibility with Spanish (babel).
+
+r858 2009-04-21 08:55:07 +0200 mjk:
+
+ * scrkernel-sections.dtx: one »~« replaced by »\nobreakspace«
+
+r857 2009-04-12 19:55:30 +0200 mjk:
+
+ * scrhack.dtx: \ProvidesFile for the hak-files fixed
+
+r856 2009-04-12 19:55:05 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.03b BETA
+
+r855 2009-04-06 09:07:57 +0200 mjk:
+
+ * Makefile: missing *.hak files added
+
+r854 2009-04-03 16:48:18 +0200 mjk:
+
+ * releaselist.txt: release 2009/04/03 v3.03a
+
+r853 2009-04-03 16:17:23 +0200 mjk:
+
+ * scrpage.dtx: no real changes
+
+r852 2009-04-03 09:40:47 +0200 mjk:
+
+ * scrkernel-version.dtx: prepared for 3.03a
+
+r851 2009-04-02 11:31:08 +0200 mjk:
+
+ * scrkernel-listsandtabulars.dtx: Bug at calculation of width of
+ labeling label fixed
+
+r850 2009-04-02 11:30:28 +0200 mjk:
+
+ * 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
+
+r848 2009-03-30 09:49:35 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.03
+
+r846 2009-03-25 10:47:43 +0100 mjk:
+
+ * scrstrip.inc: german comment changed
+
+r845 2009-03-25 10:46:36 +0100 mjk:
+
+ * scrlfile.dtx: new command \AfterReadingMainAux
+
+r844 2009-03-24 10:22:26 +0100 mjk:
+
+ * scrjura.dtx: Alexanders Doku-Änderungen
+
+r843 2009-03-19 11:01:11 +0100 mjk:
+
+ * lppl.txt, scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, Makefile, komabug.tex, scrlogo.dtx,
+ scrkernel-notepaper.dtx, scrkernel-paragraphs.dtx,
+ scrkernel-floats.dtx, scrkernel-language.dtx, Makefile.baseinit,
+ scrsource.tex, scrkernel-variables.dtx, scrkernel-footnotes.dtx,
+ scrkernel-index.dtx, scrkernel-circularletters.dtx, scrstrop.inc,
+ scrkernel-bibliography.dtx, scrstrip.inc, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-listsandtabulars.dtx, scrdoc.dtx,
+ scrjura.dtx, manifest.txt, scrkernel-listsof.dtx,
+ scrkernel-letterclassoptions.dtx, scrmain.ins, scrkxflo.dtx,
+ Makefile.baserules, tocstyle.dtx, scrkernel-pseudolengths.dtx,
+ scrhack.dtx, lppl-de.txt, scrpage.dtx, scrkernel-sections.dtx,
+ japanlco.dtx, scrkernel-miscellaneous.dtx, scrtime.dtx,
+ scrkernel-fonts.dtx, scrextend.dtx, scraddr.dtx, scrlfile.dtx,
+ tocbasic.dtx, scrkernel-basics.dtx, doc/, doc/scrguide.ist,
+ doc/koma-script.html, doc/Makefile, doc/guide.tex, doc/linkalias.tex,
+ doc/scrguide.gst, doc/scrguide.cls, doc/plength.dtx,
+ doc/Makefile.guide, doc/Makefile.latexinit, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/scrbase.tex,
+ doc/ngerman/Makefile, doc/ngerman/guide-ngerman.tex,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/expertpart.tex,
+ doc/ngerman/scrdatetime.tex, doc/ngerman/adrconvnote.tex,
+ doc/ngerman/scrextend.tex, doc/ngerman/tocbasic.tex,
+ doc/ngerman/scrlttr2examples.dtx, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/typearea-experts.tex, doc/ngerman/htmlsetup,
+ doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/authorpart.tex, doc/ngerman/scrlfile.tex,
+ doc/ngerman/introduction.tex, doc/ngerman/preface.tex,
+ doc/ngerman/scraddr.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/Makefile, doc/english/scrbookreportarticle.tex,
+ doc/english/guide-english.tex, doc/english/scrdatetime.tex,
+ doc/english/adrconvnote.tex, doc/english/japanlco.tex,
+ doc/english/htmlsetup, doc/english/typearea.tex,
+ doc/english/scrlfile.tex, doc/english/introduction.tex,
+ doc/english/scraddr.tex, doc/bin/, doc/bin/genhtmlidx.pl,
+ doc/bin/genindex.pl, obsolete/scrlettr.ins, obsolete/scrlettr.dtx:
+ switched from LPPL 1.3b to LPPL 1.3c
+
+r842 2009-03-18 11:32:48 +0100 mjk:
+
+ * scrstrip.inc: You are not allowed to change this file
+
+r841 2009-03-18 11:28:05 +0100 mjk:
+
+ * scrstrip.inc: link to LaTeX base added
+
+r840 2009-03-17 10:22:07 +0100 mjk:
+
+ * scrmain.ins: hack for listings added
+
+r839 2009-03-17 10:21:01 +0100 mjk:
+
+ * scrhack.dtx: hack for listings added
+
+r838 2009-03-16 17:54:36 +0100 mjk:
+
+ * Makefile, scrsource.tex, manifest.txt, scrmain.ins, tocbasic.dtx:
+ new packages
+
+r837 2009-03-16 17:51:50 +0100 mjk:
+
+ * scrhack.dtx: new package hacking other packages
+
+r836 2009-03-16 15:07:38 +0100 mjk:
+
+ * scrjura.dtx: Option paragraphmark fixed
+
+r835 2009-03-16 10:09:44 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2.tex: Peter heißt jetzt
+ einheitlich Musterfrau während Petra Mustermann heißt.
+
+r834 2009-03-16 10:07:02 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: \ifstr usage at \ChangedAt fixed
+
+r833 2009-03-12 08:59:13 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/Makefile: provide overwriting of a
+ non symlink tocbasic.tex at temporary rule tocbasic.tex
+
+r832 2009-03-12 08:55:06 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/Makefile: temporary rule for
+ generation of tocbasic.tex added
+
+r831 2009-03-04 19:19:04 +0100 mjk:
+
+ * 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:
+
+ * scrkernel-letterclassoptions.dtx, japanlco.dtx: set term for
+ "fromzipcode"
+
+r829 2009-03-04 18:41:27 +0100 mjk:
+
+ * scrkernel-notepaper.dtx: "ECONOMAY" --> "ECONOMY"
+
+r828 2009-03-04 11:43:37 +0100 mjk:
+
+ * scrkernel-variables.dtx: new command \ifkomavar and reimplementation
+ of \ifkomavarempty
+
+r827 2009-03-04 11:25:28 +0100 mjk:
+
+ * 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/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/: "Abstandsart" --> "Methode" vereinheitlicht
+
+r824 2009-02-19 10:03:05 +0100 mjk:
+
+ * scrkernel-basics.dtx: Error if not e-TeX, at least version 2, is
+ used
+
+r823 2009-02-17 11:15:39 +0100 mjk:
+
+ * scrkernel-language.dtx: made the already-defined test more robust
+
+r822 2009-02-17 10:13:46 +0100 mjk:
+
+ * scrkernel-miscellaneous.dtx: Information to `final' fixed at
+ scrextend
+
+r821 2009-02-14 11:03:08 +0100 mjk:
+
+ * scrkernel-compatibility.dtx: 3.02c ist not the same like 3.02b
+
+r820 2009-02-14 10:47:50 +0100 mjk:
+
+ * scrkernel-typearea.dtx: some implementation docu added
+
+r819 2009-02-14 10:22:53 +0100 mjk:
+
+ * scrkernel-typearea.dtx: PostScript code added to change page size at
+ the document
+
+r818 2009-02-13 18:45:23 +0100 mjk:
+
+ * scrkernel-typearea.dtx: paper=seascape implemented
+
+r817 2009-02-11 12:35:36 +0100 mjk:
+
+ * scrkernel-notepaper.dtx: one comment changed
+
+r816 2009-02-04 15:19:47 +0100 mjk:
+
+ * scrjura.dtx: some more additions to reference commands
+
+r815 2009-02-04 13:02:45 +0100 mjk:
+
+ * scrjura.dtx: several changes for improving references and usage of
+ KOMA options
+
+r814 2009-02-04 12:31:06 +0100 mjk:
+
+ * scrkernel-basics.dtx: \KOMA@ifkey and \KOMA@ncmdkey does also define
+ the family member
+
+r813 2009-01-30 17:08:24 +0100 mjk:
+
+ * scrlogo.dtx: date changed
+
+r812 2009-01-30 17:07:40 +0100 mjk:
+
+ * scrlogo.dtx: intro comment changed
+
+r811 2009-01-28 08:41:40 +0100 mjk:
+
+ * 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:
+
+ * doc/, doc/english/, doc/english/typearea.tex:
+ \BeginIndex{Option}{DIV~=areaset} fixed
+
+r809 2009-01-24 11:51:36 +0100 mjk:
+
+ * releaselist.txt: release 2009/01/24 v3.02b
+
+r808 2009-01-24 11:49:14 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.02b
+
+r807 2009-01-24 11:34:08 +0100 mjk:
+
+ * scrkernel-floats.dtx: One more fix of vertical alignment of one line
+ captions
+
+r806 2009-01-23 15:44:17 +0100 mjk:
+
+ * scrkernel-basics.dtx: version number fixed
+
+r805 2009-01-23 15:39:38 +0100 mjk:
+
+ * scrkernel-basics.dtx: problem using amsmath fixed
+
+r804 2009-01-20 18:46:00 +0100 mjk:
+
+ * doc/, doc/ngerman/: {} hinter \nopagebreak eingefügt (Danke an
+ Torsten Krüger)
+
+r803 2009-01-20 12:12:55 +0100 mjk:
+
+ * tocbasic.dtx: no explicite marks if ``numbered''
+
+r802 2009-01-20 11:50:00 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex:
+ "scrreport" durch "scrreprt" ersetzt (Dank an Marco Daniel)
+
+r801 2009-01-06 18:32:15 +0100 mjk:
+
+ * doc/, doc/Makefile.guide: common.tex added
+
+r800 2009-01-06 18:25:58 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex, doc/english/,
+ doc/english/typearea.tex: Many changes by GH
+
+r799 2009-01-02 16:00:25 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/typearea.tex: changes by GH
+
+r798 2009-01-02 10:03:38 +0100 mjk:
+
+ * releaselist.txt: release 2009/01/01 v3.02
+
+r797 2009-01-02 10:02:45 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.02
+
+r796 2009-01-02 09:41:42 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, Makefile, komabug.tex, scrlogo.dtx,
+ scrkernel-notepaper.dtx, scrkernel-paragraphs.dtx,
+ scrkernel-floats.dtx, Makefile.baseinit, scrsource.tex,
+ scrkernel-variables.dtx, scrkernel-footnotes.dtx,
+ scrkernel-index.dtx, scrkernel-circularletters.dtx, scrstrop.inc,
+ scrkernel-bibliography.dtx, scrstrip.inc, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrdoc.dtx, scrjura.dtx, manifest.txt,
+ scrkernel-listsof.dtx, scrkernel-letterclassoptions.dtx, scrmain.ins,
+ scrkxflo.dtx, Makefile.baserules, tocstyle.dtx,
+ scrkernel-pseudolengths.dtx, scrpage.dtx, japanlco.dtx,
+ scrkernel-miscellaneous.dtx, scrkernel-fonts.dtx, scrextend.dtx,
+ scraddr.dtx, scrlfile.dtx, tocbasic.dtx, scrkernel-basics.dtx, doc/,
+ doc/scrguide.ist, doc/Makefile, doc/guide.tex, doc/linkalias.tex,
+ doc/scrguide.gst, doc/scrguide.cls, doc/plength.dtx,
+ doc/Makefile.guide, doc/Makefile.latexinit, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/scrbase.tex,
+ doc/ngerman/Makefile, doc/ngerman/guide-ngerman.tex,
+ doc/ngerman/expertpart.tex, doc/ngerman/scrdatetime.tex,
+ doc/ngerman/adrconvnote.tex, doc/ngerman/scrextend.tex,
+ doc/ngerman/tocbasic.tex, doc/ngerman/scrlttr2examples.dtx,
+ doc/ngerman/scrlttr2-experts.tex, doc/ngerman/typearea-experts.tex,
+ doc/ngerman/htmlsetup, doc/ngerman/typearea.tex,
+ doc/ngerman/authorpart.tex, doc/ngerman/scrlfile.tex,
+ doc/ngerman/introduction.tex, doc/ngerman/preface.tex,
+ doc/ngerman/scraddr.tex, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/Makefile, doc/english/guide-english.tex,
+ doc/english/scrdatetime.tex, doc/english/adrconvnote.tex,
+ doc/english/japanlco.tex, doc/english/htmlsetup,
+ doc/english/typearea.tex, doc/english/scrlfile.tex,
+ doc/english/introduction.tex, doc/english/scraddr.tex,
+ obsolete/scrlettr.ins, obsolete/scrlettr.dtx: prepared for 2009
+
+r795 2009-01-02 08:59:35 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex,
+ doc/ngerman/scrdatetime.tex, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrbookreportarticle.tex,
+ doc/english/scrdatetime.tex: documentation of the new features of rev.
+ 792-794
+
+r794 2009-01-02 08:57:34 +0100 mjk:
+
+ * scrkernel-listsandtabulars.dtx: new font elements "labelinglabel"
+ and "labelingseparator"
+
+r793 2009-01-02 08:56:28 +0100 mjk:
+
+ * scrkernel-language.dtx, scrtime.dtx: new language norsk (by Sveinung
+ Heggen)
+
+r792 2009-01-02 08:54:37 +0100 mjk:
+
+ * scrkernel-sections.dtx: new macro \partheademptypage
+
+r791 2008-12-09 12:33:28 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.01c BETA
+
+r790 2008-12-09 11:11:14 +0100 mjk:
+
+ * releaselist.txt: release 2008/12/09 v3.01b
+
+r789 2008-12-09 11:09:51 +0100 mjk:
+
+ * scrkernel-version.dtx: prepared for 3.01b
+
+r788 2008-12-09 11:07:02 +0100 mjk:
+
+ * scrkernel-title.dtx, scrextend.dtx: scrextend does work without
+ enabled extended title feature
+
+r787 2008-12-09 11:06:16 +0100 mjk:
+
+ * scrkernel-compatibility.dtx, scrkernel-typearea.dtx, scrmain.ins,
+ doc/, doc/ngerman/, doc/ngerman/typearea.tex: option version at
+ typearea avaible to improve option "paper"; warning messages
+ improved; option "paper" improved
+
+r786 2008-12-08 11:48:52 +0100 mjk:
+
+ * scrpage.dtx, doc/, doc/ngerman/: Options "headinclude",
+ "headexclude", "footinclude" and "footexclude" are deprecated at
+ scrpage2
+
+r785 2008-12-08 11:47:02 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/guide-ngerman.tex: Verbesserungen
+ beim Änderungsverzeichnis berücksichtigt
+
+r784 2008-12-08 11:46:07 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: sort of change list improved
+
+r783 2008-12-08 11:34:24 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: \ChangedAt improved
+
+r782 2008-12-08 11:18:24 +0100 mjk:
+
+ * doc/, doc/ngerman/: \ChangedAt-Einträge korrigiert
+
+r781 2008-12-07 13:54:17 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: vertikale Abstände
+ nach listings verbessert
+
+r780 2008-12-07 13:53:42 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: horizontal spacing for listings improved
+
+r779 2008-12-07 13:51:55 +0100 mjk:
+
+ * scrkernel-language.dtx: missing \let #2\undefined\relax added at
+ \(new|renew|provide)captionname
+
+r778 2008-11-28 08:09:13 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: erste Korrekturen und
+ Vorschläge von Torsten
+
+r777 2008-11-25 14:50:13 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/typearea.tex: Beispiel korrigiert
+
+r776 2008-11-24 09:20:03 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.01b BETA
+
+r775 2008-11-23 15:50:26 +0100 mjk:
+
+ * releaselist.txt: release 2008/11/23 v3.01a
+
+r774 2008-11-23 15:08:06 +0100 mjk:
+
+ * scrkernel-version.dtx: prepared for 3.01a
+
+r770 2008-11-22 08:06:54 +0100 mjk:
+
+ * scrkernel-footnotes.dtx: fix: \@footenotetext must be long!
+
+r769 2008-11-21 09:24:20 +0100 mjk:
+
+ * doc/, doc/ngerman/: geänderte Voreinstellung für »version«
+ dokumentiert
+
+r768 2008-11-21 09:03:06 +0100 mjk:
+
+ * scrkernel-compatibility.dtx, scrkernel-title.dtx,
+ scrkernel-notepaper.dtx, scrkernel-paragraphs.dtx,
+ scrkernel-floats.dtx, scrkernel-language.dtx, scrkernel-index.dtx,
+ scrkernel-bibliography.dtx, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-listsof.dtx,
+ scrkernel-sections.dtx, scrkernel-miscellaneous.dtx,
+ scrkernel-basics.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
+ deprecated option switchs to version=first
+
+r767 2008-11-20 11:56:43 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.01a BETA
+
+r766 2008-11-19 15:20:19 +0100 mjk:
+
+ * scrpage.dtx: fatal bug with \if@mainmatter (instead of \csname
+ if@mainmatter\endcsname at message fixed
+
+r765 2008-11-14 10:04:59 +0100 mjk:
+
+ * releaselist.txt: release 2008/11/14 v3.01
+
+r764 2008-11-14 09:04:09 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 3.01
+
+r763 2008-11-13 12:51:55 +0100 mjk:
+
+ * scrkernel-listsof.dtx, scrmain.ins, scrkernel-sections.dtx,
+ tocbasic.dtx, doc/, doc/ngerman/, doc/ngerman/tocbasic.tex: fixes and
+ extensions at tocbasic
+
+r762 2008-11-13 12:51:19 +0100 mjk:
+
+ * scrstrip.inc: do not ask for overwrite any longer
+
+r761 2008-11-13 12:49:56 +0100 mjk:
+
+ * scrkernel-paragraphs.dtx: missing usage of \@listi at
+ scrsizeXXpt.clo added (reported by Alexander Niske)
+
+r760 2008-11-13 09:48:02 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrlttr2-experts.tex:
+ \ChangedAt-Einträge korrigiert
+
+r759 2008-11-12 16:21:03 +0100 mjk:
+
+ * doc/, doc/ngerman/, doc/ngerman/scrbookreportarticle.tex: von Thomas
+ Jerge gemeldete Fehler beseitigt
+
+r758 2008-11-12 16:18:27 +0100 mjk:
+
+ * tocbasic.dtx: fix: \twocolumne --> \twocolumn
+
+r757 2008-11-11 14:48:50 +0100 mjk:
+
+ * tocbasic.dtx: \@addtotoclist renamed to \scr@addtotoclist because of
+ package flowfram
+
+r756 2008-11-03 17:37:07 +0100 mjk:
+
+ * 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:
+
+ * scrkernel-notepaper.dtx: nix geändert
+
+r754 2008-11-03 15:06:03 +0100 mjk:
+
+ * scrkernel-version.dtx: Ready for 3.01 BETA
+
+r753 2008-11-03 11:10:19 +0100 mjk:
+
+ * Makefile: dtx = ins fixed
+
+r752 2008-11-03 10:49:39 +0100 mjk:
+
+ * Makefile: symlinks should work now
+
+r751 2008-11-03 09:32:11 +0100 mjk:
+
+ * Makefile: exit 1 removed
+
+r748 2008-11-03 07:52:55 +0100 mjk:
+
+ * releaselist.txt: release 2008/11/03 v3.00
+
+r747 2008-11-03 07:51:55 +0100 mjk:
+
+ * scrkernel-version.dtx: prepared for 3.00
+
+r746 2008-10-31 09:02:21 +0100 mjk:
+
+ * 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:
+
+ * tocbasic.dtx: only build changes
+
+r744 2008-10-20 09:50:04 +0200 mjk:
+
+ * tocstyle.dtx: \if@tocleft test fixed
+
+r743 2008-10-16 09:59:20 +0200 mjk:
+
+ * 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
+
+r740 2008-10-14 16:52:03 +0200 mjk:
+
+ * Makefile: handling of DTX_IS_INS files fixed
+
+r739 2008-10-08 09:17:21 +0200 mjk:
+
+ * scrkernel-typearea.dtx: layout information not only with \typearea
+ but also \areaset
+
+r738 2008-10-07 17:45:50 +0200 mjk:
+
+ * releaselist.txt: release 2008/10/07 v3.00RC2
+
+r737 2008-10-07 17:02:01 +0200 mjk:
+
+ * scrkernel-version.dtx: Prepared for 3.00RC2
+
+r736 2008-10-07 16:58:36 +0200 mjk:
+
+ * scrkernel-sections.dtx: \@autodottrue and \@autodotfalse work global
+ to make autodot feature group level independant
+
+r735 2008-10-07 12:17:42 +0200 mjk:
+
+ * 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/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/typearea.tex,
+ doc/english/scraddr.tex: minor changes for KOMA-Script 3
+
+r733 2008-10-06 12:07:42 +0200 mjk:
+
+ * 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
+ for english documentation
+
+r732 2008-09-27 10:51:05 +0200 mjk:
+
+ * scrkernel-pagestyles.dtx, scrkernel-sections.dtx: \frontmatter,
+ \mainmatter and \backmatter use \cleardoubleoddpage
+
+r731 2008-09-24 14:35:34 +0200 mjk:
+
+ * 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/: usage of new german
+ guide
+
+r729 2008-09-23 14:23:54 +0200 mjk:
+
+ * doc/, doc/Makefile, doc/linkalias.tex, doc/scrguide.cls,
+ doc/Makefile.guide, doc/Makefile.latexinit, doc/ngerman/,
+ doc/ngerman/scrlttr2.tex, doc/ngerman/scrbase.tex,
+ doc/ngerman/Makefile, doc/ngerman/guide-ngerman.tex,
+ doc/ngerman/scrbookreportarticle.tex, doc/ngerman/expertpart.tex,
+ doc/ngerman/scrdatetime.tex, doc/ngerman/adrconvnote.tex,
+ doc/ngerman/scrextend.tex, doc/ngerman/tocbasic.tex,
+ doc/ngerman/scrlttr2examples.dtx, doc/ngerman/scrlttr2-experts.tex,
+ doc/ngerman/typearea-experts.tex, doc/ngerman/htmlsetup,
+ doc/ngerman/typearea.tex,
+ doc/ngerman/scrbookreportarticle-experts.tex,
+ doc/ngerman/authorpart.tex, doc/ngerman/scrlfile.tex,
+ doc/ngerman/introduction.tex, doc/ngerman/preface.tex,
+ doc/ngerman/scraddr.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/guide.bib, doc/guide.tex, doc/scrguide.cls,
+ doc/plength.dtx, doc/english/, doc/english/guide-english.tex,
+ doc/english/htmlsetup, doc/bin/, doc/bin/genhtmlidx.pl: preparation to
+ add the new german guide
+
+r727 2008-09-09 09:45:40 +0200 mjk:
+
+ * scrkernel-version.dtx: prepared for 3.00 BETA
+
+r726 2008-09-09 09:42:06 +0200 mjk:
+
+ * tocbasic.dtx: spell fix
+
+r725 2008-08-05 11:14:56 +0200 mjk:
+
+ * scrkernel-pagestyles.dtx: \partpagestyle not defined at scrartcl any
+ longer, because not used
+
+r724 2008-07-11 12:56:15 +0200 mjk:
+
+ * tocstyle.dtx: part with \hfill leaders
+
+r723 2008-07-09 20:05:52 +0200 mjk:
+
+ * scrlfile.dtx: \newpage only temporary not allowed at
+ \BeforeCloseMainAux
+
+r722 2008-07-09 12:44:12 +0200 mjk:
+
+ * scrkernel-typearea.dtx, doc/: new value "semi" for option "twoside"
+
+r721 2008-07-05 13:36:49 +0200 mjk:
+
+ * tocbasic.dtx: some \Macro{\@currext} replaced by \Macro{@currext}
+
+r720 2008-07-04 16:42:44 +0200 mjk:
+
+ * scrsource.tex: tocbasic removed because of \if-level problem
+
+r719 2008-07-04 16:19:04 +0200 mjk:
+
+ * scrsource.tex: tocbasic added
+
+r718 2008-07-04 16:01:21 +0200 mjk:
+
+ * scrkernel-listsof.dtx, scrkernel-sections.dtx, tocbasic.dtx:
+ vertical space or chapter entry for chapters to list of ... using
+ tocbasic
+
+r717 2008-07-04 13:26:14 +0200 mjk:
+
+ * scrkernel-listsof.dtx, scrmain.ins, 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:
+
+ * 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:
+
+ * scrkernel-compatibility.dtx, scrkernel-pagestyles.dtx,
+ scrkernel-sections.dtx: \relax added at compatibility tests
+
+r714 2008-06-19 11:47:45 +0200 mjk:
+
+ * scrkernel-title.dtx, scrmain.ins, scrkernel-miscellaneous.dtx,
+ scrextend.dtx: scrextend activates features with option
+ "extendedfeature" not longer with e.g. option "titlepage=KOMA"
+
+r713 2008-06-06 11:50:57 +0200 mjk:
+
+ * scrkernel-notepaper.dtx: option `foldmarks' fixed
+
+r712 2008-05-28 09:23:26 +0200 mjk:
+
+ * scrkernel-basics.dtx: FamilyNumericalKey fixed
+
+r711 2008-05-14 11:47:38 +0200 mjk:
+
+ * scrkernel-miscellaneous.dtx: option "draft" also at scrextend
+
+r710 2008-05-06 14:26:43 +0200 mjk:
+
+ * doc/: Wort korrigiert
+
+r709 2008-05-06 09:28:23 +0200 mjk:
+
+ * scrkernel-basics.dtx: Most \Family... commands have an optional
+ argument for the member
+
+r708 2008-05-02 16:46:18 +0200 mjk:
+
+ * TODO: new packages scrbase and scrextend
+
+r707 2008-05-02 16:43:26 +0200 mjk:
+
+ * scrkernel-compatibility.dtx, scrkernel-title.dtx, Makefile,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, scrsource.tex, scrkernel-footnotes.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-listsandtabulars.dtx,
+ scrmain.ins, scrkernel-sections.dtx, scrkernel-miscellaneous.dtx,
+ scrkernel-fonts.dtx, scrextend.dtx, scrkernel-basics.dtx: new packages
+ scrbase and scrextend
+
+r706 2008-04-30 09:52:59 +0200 mjk:
+
+ * doc/: diverse Neuerungen inbesondere bezüglich der Optionen
+ dokumentiert
+
+r705 2008-04-30 09:52:22 +0200 mjk:
+
+ * doc/, doc/guide.bib: some additional references
+
+r704 2008-04-30 09:15:14 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: Explain improved; obsolete LM fixes removed
+
+r703 2008-04-30 09:13:50 +0200 mjk:
+
+ * 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
+ the svn version.
+
+r701 2008-04-17 11:35:20 +0200 mjk:
+
+ * README.SVN: Need for Makefile revision removed; VERBOSE note added
+
+r700 2008-04-17 11:25:02 +0200 mjk:
+
+ * Makefile.baserules: spell fix
+
+r699 2008-04-17 11:23:44 +0200 mjk:
+
+ * 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:
+
+ * scrkernel-listsof.dtx: bib-values for option `toc'
+
+r697 2008-04-11 12:08:52 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: indentation and page break after environment
+ "Declaration" avoided
+
+r696 2008-04-11 10:15:46 +0200 mjk:
+
+ * scrkernel-compatibility.dtx, scrkernel-pagestyles.dtx: default for
+ \cleardoublepage changed depeding on "version"
+
+r695 2008-04-10 11:43:54 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/guide-english.tex: missing % at
+ \GuideLanguageExtensions added
+
+r694 2008-04-10 11:43:09 +0200 mjk:
+
+ * doc/: missing % at \GuideLanguageExtensions added
+
+r693 2008-04-09 16:39:33 +0200 mjk:
+
+ * TODO: documentation leaks
+
+r692 2008-04-09 16:18:30 +0200 mjk:
+
+ * scrkernel-typearea.dtx: Replacement for option `dvips' changed
+
+r691 2008-04-09 08:57:00 +0200 mjk:
+
+ * scrkernel-typearea.dtx: new option `headheight'
+
+r690 2008-04-08 12:11:07 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: \OptionValue does not longer generate an
+ additional desc:[...].option.[...] label
+
+r689 2008-04-08 11:33:37 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: new: \OptionValue
+
+r688 2008-04-04 09:55:09 +0200 mjk:
+
+ * doc/: Gernot in die Danksagung aufgenommen
+
+r687 2008-04-04 09:37:50 +0200 mjk:
+
+ * scrkernel-version.dtx: prepared for 2.98c BETA
+
+r686 2008-04-03 12:01:09 +0200 mjk:
+
+ * tocbasic.dtx: one more fix of beta handling
+
+r685 2008-04-03 10:42:17 +0200 mjk:
+
+ * tocbasic.dtx: beta generation fixed
+
+r683 2008-04-03 10:37:04 +0200 mjk:
+
+ * tocbasic.dtx: scrbeta used
+
+r681 2008-03-27 10:16:07 +0100 mjk:
+
+ * TODO: already existing note about using "version" only at class
+ loading removed
+
+r680 2008-03-27 09:13:23 +0100 mjk:
+
+ * scrkernel-version.dtx: date changed
+
+r679 2008-03-27 09:10:54 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/Makefile,
+ doc/english/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/scrdatetime.tex, doc/english/adrconvnote.tex,
+ doc/english/japanlco.tex, doc/english/htmlsetup,
+ doc/english/typearea.tex, doc/english/scrlfile.tex,
+ doc/english/introduction.tex, doc/english/scraddr.tex: unknown change
+
+r678 2008-03-27 09:09:02 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: only option "version"
+ may not be set using \KOMAoptions
+
+r677 2008-03-27 09:08:08 +0100 mjk:
+
+ * doc/: "version" ist die einzige Option, die nicht per \KOMAoptions
+ gesetzt werden kann
+
+r676 2008-03-27 08:41:40 +0100 mjk:
+
+ * scrjura.dtx: ask is false
+
+r675 2008-03-27 08:40:45 +0100 mjk:
+
+ * Makefile, scrkernel-paragraphs.dtx, scrmain.ins,
+ scrkernel-fonts.dtx: new font size files scrsize10pt.clo,
+ scrsize11pt.clo, scrsize12pt.clo
+
+r674 2008-03-27 08:40:38 +0100 mjk:
+
+ * scrkernel-pagestyles.dtx: options "headsepline" and "footsepline"
+ improved
+
+r673 2008-03-26 15:30:52 +0100 mjk:
+
+ * TODO: \@ifpackageloaded problem solved
+
+r672 2008-03-26 14:41:51 +0100 mjk:
+
+ * TODO: one documentation and one implementation fault
+
+r671 2008-03-25 14:49:35 +0100 mjk:
+
+ * README.SVN: new instruction for installation from svn
+
+r670 2008-03-24 11:30:01 +0100 mjk:
+
+ * Makefile: scrjura added
+
+r669 2008-03-24 11:12:19 +0100 mjk:
+
+ * scrkernel-version.dtx: prepared for 2.98c BETA
+
+r668 2008-03-24 11:10:35 +0100 mjk:
+
+ * Makefile: improved handling of alpha files, that should be part of
+ distribution
+
+r667 2008-03-24 11:06:00 +0100 mjk:
+
+ * tocstyle.dtx: <feature> etc. replaced by !<feature!> etc.
+
+r666 2008-03-24 07:38:50 +0100 mjk:
+
+ * Makefile: Warning for missing ChangeLog changed
+
+r665 2008-03-22 16:58:33 +0100 mjk:
+
+ * TODO: broken option fixed
+
+r664 2008-03-22 16:56:04 +0100 mjk:
+
+ * scrkernel-fonts.dtx: option `Xpt' does work again
+
+r663 2008-03-20 19:01:44 +0100 mjk:
+
+ * TODO: broken option
+
+r662 2008-03-18 14:38:42 +0100 mjk:
+
+ * tocbasic.dtx: auto mode added
+
+r661 2008-03-18 14:16:42 +0100 mjk:
+
+ * tocbasic.dtx: documentation
+
+r660 2008-03-18 12:14:31 +0100 mjk:
+
+ * tocbasic.dtx: some more features, some bug fixes and some more
+ documentation
+
+r659 2008-03-17 14:07:21 +0100 mjk:
+
+ * tocbasic.dtx: some more documentation
+
+r658 2008-03-17 09:39:00 +0100 mjk:
+
+ * tocbasic.dtx: some more documentation
+
+r657 2008-03-14 18:59:48 +0100 mjk:
+
+ * tocbasic.dtx: implementation of most features (untested) and some
+ parts of documentation
+
+r656 2008-03-13 13:29:28 +0100 mjk:
+
+ * tocbasic.dtx: start of a new package for class and packages authors
+ creating toc files
+
+r655 2008-03-12 09:50:59 +0100 mjk:
+
+ * scrkernel-basics.dtx: new command \KOMAoption{<key>}{<valuelist>}
+
+r654 2008-03-12 09:50:24 +0100 mjk:
+
+ * scrkernel-floats.dtx: vertical alignment at captionsbeside fixed
+
+r653 2008-03-10 10:06:41 +0100 mjk:
+
+ * scrkernel-sections.dtx: new values for option `headings' to set
+ options `chapterprefix' and `appendixprefix'
+
+r652 2008-03-10 09:52:26 +0100 mjk:
+
+ * 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:
+
+ * scrkernel-notepaper.dtx: missing `v' at version argument of changes
+ entry added
+
+r650 2008-03-10 09:25:02 +0100 mjk:
+
+ * obsolete/scrlettr.dtx: missing `v' at version argument of changes
+ entry added
+
+r649 2008-03-10 09:23:43 +0100 mjk:
+
+ * scrkernel-index.dtx: missing `v' at version argument of changes
+ entry added
+
+r648 2008-03-10 09:23:16 +0100 mjk:
+
+ * scrkernel-floats.dtx: missing `v' at version argument of changes
+ entry added
+
+r647 2008-03-10 09:22:50 +0100 mjk:
+
+ * scrkernel-basics.dtx: missing `v' at version argument of changes
+ entry added
+
+r646 2008-03-07 10:25:13 +0100 mjk:
+
+ * 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:
+
+ * 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:
+
+ * scrkernel-sections.dtx: new value 'left' for option `open'
+
+r643 2008-03-06 11:22:57 +0100 mjk:
+
+ * scrkernel-pagestyles.dtx: new macros `\cleardoubeoddstandardpage',
+ `\cleardoubleevenstandardpage', `\cleardoubleoddusingstyle',
+ `\cleardoubleevenusingstyle', `\cleardoubleoddemptypage',
+ `\cleardoubleevenemptypage', `\cleardoubleoddplainpage',
+ `\cleardoubleevenplainpage'
+
+r642 2008-03-06 11:09:25 +0100 mjk:
+
+ * scrkernel-sections.dtx: new option `open' with values `any' and
+ `right'
+
+r641 2008-03-06 10:55:11 +0100 mjk:
+
+ * scrkernel-notepaper.dtx: `wlocfield' and `slocfield' are simple
+ obsolete options
+
+r640 2008-03-05 09:56:41 +0100 mjk:
+
+ * scrkernel-listsof.dtx: new values `nolistof', 'listof', and
+ 'listofnumbered' to option 'toc'
+
+r639 2008-03-05 09:38:36 +0100 mjk:
+
+ * 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',
+ `listof=chaptergapsmall', `listof=chaptergapline'
+
+r638 2008-03-04 17:31:23 +0100 mjk:
+
+ * 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:
+
+ * scrkernel-index.dtx: options `index=notoc' and `index=totoc'
+ replaces obsolete `idxtotoc'
+
+r636 2008-03-03 14:41:39 +0100 mjk:
+
+ * scrkernel-floats.dtx: deprecated handling for caption package
+ removed
+
+r635 2008-03-03 11:56:07 +0100 mjk:
+
+ * scrkernel-floats.dtx: Option `captions=oneline' instead of obsolete
+ `onelinecaptions', option `captions=nooneline' instead if obsolete
+ `noonelinecaptions'; values `topbeside', `bottombeside',
+ `centeredbeside', `rightbeside', `leftbeside', `innerbeside',
+ `outerbeside' for option `captions' to set default placement of
+ `captionsbeside' environment
+
+r634 2008-03-03 10:49:58 +0100 mjk:
+
+ * scrkernel-floats.dtx: date fixed
+
+r633 2008-03-03 10:24:13 +0100 mjk:
+
+ * scrkernel-floats.dtx: works with caption 3.1g
+
+r632 2008-02-29 16:19:13 +0100 mjk:
+
+ * scrpage.dtx: usage of \if@mainmatter (instead of \ifmainmatter) at
+ scrpage.sty fixed
+
+r631 2008-02-29 13:13:13 +0100 mjk:
+
+ * scrkernel-floats.dtx: use \captionsetup* instead of \captionsetup
+
+r630 2008-02-18 11:13:30 +0100 mjk:
+
+ * scrkernel-floats.dtx: new option "captions"; "captions=tableheading"
+ replaces "tablecaptionabove"; "captions=tablesignature" replaces
+ "tablecaptionbelow"
+
+r629 2008-02-18 10:45:12 +0100 mjk:
+
+ * 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:
+
+ * scrkernel-bibliography.dtx: \AtBeginBibliography renamed to
+ \AfterBibliographyPreamble because of biblatex
+
+r627 2008-02-16 11:42:17 +0100 mjk:
+
+ * TODO: biblatex compatiblitity note
+
+r626 2008-02-15 15:25:26 +0100 mjk:
+
+ * scrkernel-version.dtx: date changed
+
+r625 2008-02-15 12:51:39 +0100 mjk:
+
+ * 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:
+
+ * 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:
+
+ * scrkernel-title.dtx, scrkernel-sections.dtx: \ClassInfo replaced by
+ \ClassInfoNoLine at usage of \KOMA@DeclareObsoleteOption
+
+r622 2008-02-15 10:09:07 +0100 mjk:
+
+ * scrkernel-basics.dtx: \ClassInfoNoLine defined
+
+r621 2008-02-15 08:32:25 +0100 mjk:
+
+ * scrkernel-basics.dtx: missing \end{macrocode} added
+
+r620 2008-02-14 16:17:47 +0100 mjk:
+
+ * scrpage.dtx: some changes about font elements `pagehead' and
+ `pagefoot'
+
+r619 2008-02-14 16:17:34 +0100 mjk:
+
+ * scrkernel-pagestyles.dtx: some changes about font elements
+ `pagehead' and `pagefoot'
+
+r618 2008-02-14 15:40:51 +0100 mjk:
+
+ * 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:
+
+ * scrpage.dtx: new font element pagefoot
+
+r616 2008-02-14 15:20:49 +0100 mjk:
+
+ * scrpage.dtx: \footfont added
+
+r615 2008-02-14 15:07:31 +0100 mjk:
+
+ * tocstyle.dtx: support for deprecated TOC styles and KOMAScript is
+ deprecated (use KOMAlike instead of)
+
+r614 2008-02-14 12:53:27 +0100 mjk:
+
+ * scrkernel-footnotes.dtx: no unwanted warnings of footmisc package
+
+r613 2008-02-14 12:22:35 +0100 mjk:
+
+ * scrkernel-footnotes.dtx: footnote solution is compatible to footmisc
+
+r612 2008-02-14 11:22:39 +0100 mjk:
+
+ * 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:
+
+ * scrkernel-footnotes.dtx: docu fix
+
+r610 2008-02-01 12:13:17 +0100 mjk:
+
+ * scrkernel-footnotes.dtx: new option "multifootnotes" and new command
+ "\footref"
+
+r609 2008-02-01 09:07:06 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 2.98c BETA
+
+r608 2008-01-30 11:10:16 +0100 mjk:
+
+ * releaselist.txt: release 2008/01/30 v2.98b
+
+r607 2008-01-30 10:26:17 +0100 mjk:
+
+ * scrkernel-version.dtx: prepared for 2008/01/30 2.98b
+
+r606 2008-01-30 10:01:30 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 2.98b BETA
+
+r605 2008-01-30 10:00:17 +0100 mjk:
+
+ * tocstyle.dtx: it's not a beta, it's an alpha
+
+r604 2008-01-30 09:51:41 +0100 mjk:
+
+ * scrkernel-notepaper.dtx: fix: \firsthead does not longer deactivate
+ "location"
+
+r603 2008-01-26 16:05:53 +0100 mjk:
+
+ * scrjura.dtx: docu improvement
+
+r602 2008-01-25 11:26:24 +0100 mjk:
+
+ * scrjura.dtx: First offizial alpha of a new package (german docu
+ only)
+
+r601 2008-01-11 11:24:01 +0100 mjk:
+
+ * releaselist.txt: release 2008/01/11 v2.98a
+
+r600 2008-01-11 11:21:50 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, Makefile, komabug.tex, scrlogo.dtx,
+ scrkernel-notepaper.dtx, scrkernel-paragraphs.dtx,
+ scrkernel-floats.dtx, scrkernel-language.dtx, Makefile.baseinit,
+ scrsource.tex, scrkernel-variables.dtx, scrkernel-footnotes.dtx,
+ scrkernel-index.dtx, scrkernel-circularletters.dtx, scrstrop.inc,
+ scrkernel-bibliography.dtx, scrstrip.inc, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-listsandtabulars.dtx, scrdoc.dtx,
+ manifest.txt, scrkernel-listsof.dtx,
+ scrkernel-letterclassoptions.dtx, scrmain.ins, scrkxflo.dtx,
+ Makefile.baserules, tocstyle.dtx, scrkernel-pseudolengths.dtx,
+ README, scrpage.dtx, scrkernel-sections.dtx, japanlco.dtx,
+ scrkernel-miscellaneous.dtx, scrtime.dtx, scrkernel-fonts.dtx,
+ scraddr.dtx, scrlfile.dtx, scrkernel-basics.dtx, doc/,
+ doc/scrguide.ist, doc/Makefile, doc/guide.tex, doc/scrguide.gst,
+ doc/scrguide.cls, doc/plength.dtx, doc/Makefile.guide,
+ doc/Makefile.latexinit, obsolete/scrlettr.ins, obsolete/scrlettr.dtx:
+ prepared for 2008/01/11 2.98a
+
+r598 2008-01-11 09:14:15 +0100 mjk:
+
+ * 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:
+
+ * scrkernel-compatibility.dtx: prepared for 2.98a BETA
+
+r596 2008-01-08 11:39:47 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-typearea.dtx: twocolumn option
+ fixed at classes
+
+r595 2008-01-08 11:37:35 +0100 mjk:
+
+ * Makefile: prepared for dtx that are ins too
+
+r594 2007-12-21 11:15:13 +0100 mjk:
+
+ * scrkernel-version.dtx: version bug fixed
+
+r593 2007-12-21 11:03:40 +0100 mjk:
+
+ * releaselist.txt: release 2007/12/24 v2.98
+
+r592 2007-12-21 11:03:07 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 2.98
+
+r591 2007-12-21 10:59:43 +0100 mjk:
+
+ * tocstyle.dtx: note about scrlfile.dtx changed to note about
+ tocstyle.dtx at ins-part
+
+r590 2007-12-21 10:54:24 +0100 mjk:
+
+ * Makefile: support packaging of alpha packages
+
+r589 2007-12-18 18:58:02 +0100 mjk:
+
+ * scrlfile.dtx: spellfix and loading packages outside of any \if...\fi
+ to avoid errors in \if...\fi nesting of packages are reported as
+ errors of scrlfile
+
+r588 2007-12-17 09:00:09 +0100 mjk:
+
+ * TODO: almost all done
+
+r587 2007-12-17 08:54:59 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: german
+ partentrypagenumber description at table of elements removed
+
+r585 2007-12-17 08:47:03 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/japanlco.tex: some additional translation and improvements
+ by GH and MJK
+
+r584 2007-12-15 15:57:37 +0100 mjk:
+
+ * TODO: Gernot has done a lot of the TODOs
+
+r583 2007-12-15 15:51:52 +0100 mjk:
+
+ * doc/: Tabelle der vordefinierten lco-Dateien um die Japanischen
+ lco-Dateien ergänzt
+
+r582 2007-12-15 15:42:28 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: \oentry added
+
+r581 2007-12-15 13:30:50 +0100 mjk:
+
+ * manifest.txt: japanlco.tex added for english only
+
+r580 2007-12-15 13:27:17 +0100 mjk:
+
+ * doc/, doc/Makefile.guide: japanlco.tex added for english only
+
+r579 2007-12-15 13:23:06 +0100 mjk:
+
+ * doc/, doc/guide.tex, doc/scrguide.cls, doc/english/,
+ doc/english/japanlco.tex: new appendix for englisch guide
+
+r578 2007-12-15 13:18:13 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: some new
+ translations by GH
+
+r577 2007-12-15 12:58:50 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: translations added by
+ GH
+
+r576 2007-12-07 10:46:47 +0100 mjk:
+
+ * tocstyle.dtx: Alpha note added
+
+r575 2007-12-07 10:04:44 +0100 mjk:
+
+ * TODO, doc/: Änderung bezüglich der Nummerierung in "\frontmatter"
+ dokumentiert
+
+r574 2007-12-07 09:27:54 +0100 mjk:
+
+ * TODO, doc/: "location"-Werte für Option "fromalign" dokumentiert
+
+r573 2007-12-07 09:24:24 +0100 mjk:
+
+ * doc/, doc/english/: \ChangedAt entries fixed
+
+r572 2007-12-07 09:23:01 +0100 mjk:
+
+ * doc/: \ChangedAt-Einträge korrigiert
+
+r571 2007-12-07 08:27:39 +0100 mjk:
+
+ * TODO, doc/: Optionen "firsthead" und "firstfoot" dokumentiert
+ (einschl. Auswirkungen auf Pseudolänge "firstfootvpos")
+
+r570 2007-12-04 12:05:53 +0100 mjk:
+
+ * TODO: tocstyle wird erwähnt
+
+r569 2007-12-04 12:04:15 +0100 mjk:
+
+ * TODO, doc/: Pseudo-Längen "lochpos", "locvpos", "locheight"
+ dokumentiert
+
+r568 2007-12-04 11:46:01 +0100 mjk:
+
+ * TODO: rechter Einzug bei toaddrindent ist bereits dokumentiert
+
+r567 2007-12-04 11:44:02 +0100 mjk:
+
+ * TODO, doc/: name of lco file != name of option
+
+r566 2007-12-04 11:36:59 +0100 mjk:
+
+ * TODO, doc/: neue Werte für Option "subject"; Tabelle der
+ Pseudo-Längen sortiert
+
+r565 2007-11-30 13:06:11 +0100 mjk:
+
+ * TODO, doc/: environment documentation changed; font elements for
+ address field
+
+r564 2007-11-29 12:35:39 +0100 mjk:
+
+ * TODO: partentry, partentrypagenumber, chapterentry,
+ chapterentrypagenumber, sectionentry, sectionentrypagenumber
+ dokumentiert aber noch nicht übersetzt.
+
+r563 2007-11-29 12:33:47 +0100 mjk:
+
+ * doc/: Font Elemente "partentry", "partentrypagenumber",
+ "chapterentry", "chapterentrypagenumber", "sectionentry",
+ "sectionentrypagenumber" dokumentiert
+
+r562 2007-11-29 10:40:12 +0100 mjk:
+
+ * TODO: one more missing translation
+
+r561 2007-11-29 10:13:50 +0100 mjk:
+
+ * TODO: some translations done
+
+r560 2007-11-29 10:11:56 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: Some (but not all)
+ translations of changes at german file 2007/11/28 added by Gernot
+ Hassenpflug
+
+r559 2007-11-28 12:44:30 +0100 mjk:
+
+ * doc/: Angabe von \datefinish korrigiert, \Unit verwendet
+
+r558 2007-11-28 12:38:42 +0100 mjk:
+
+ * TODO, doc/: Dokumentation der Font-Elemente "subject" und
+ "subtitle", sowie der neuen Anweisung \subtitle
+
+r557 2007-11-28 12:35:00 +0100 mjk:
+
+ * doc/, doc/Makefile.guide: remove guide.md5 at rule $(GUIDENAME).pdf
+
+r556 2007-11-28 10:06:03 +0100 mjk:
+
+ * doc/: Erklärung zu Option "foldmarks" verbessert
+
+r555 2007-11-27 12:36:05 +0100 mjk:
+
+ * TODO, doc/: Pseudo-Länge "fromrulewidth" dokumentiert
+
+r554 2007-11-27 12:27:16 +0100 mjk:
+
+ * TODO, doc/: Font element "fromrule" dokumentiert
+
+r553 2007-11-27 10:00:28 +0100 mjk:
+
+ * scrkernel-compatibility.dtx: 2.97e is not compatible to 2.97d
+
+r552 2007-11-27 09:50:51 +0100 mjk:
+
+ * TODO, doc/: Die neuen Möglichkeiten für die Konfigurierung der
+ Faltmarken dokumentiert
+
+r551 2007-11-26 13:10:17 +0100 mjk:
+
+ * TODO, doc/: Erklärung zur Option "foldmarks" erweitert
+
+r550 2007-11-26 12:23:35 +0100 mjk:
+
+ * doc/: Font-Element "backaddress" dokumentiert.
+
+r549 2007-11-26 11:56:12 +0100 mjk:
+
+ * TODO, doc/: documentation of new values for option "backaddress"
+
+r548 2007-11-26 11:53:02 +0100 mjk:
+
+ * scrkernel-floats.dtx, scrkernel-sections.dtx,
+ scrkernel-miscellaneous.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:
+
+ * scrkernel-typearea.dtx: You can set "paper=<height>:<width>"
+
+r546 2007-11-23 13:03:03 +0100 mjk:
+
+ * scrpage.dtx: TeX-master fixed
+
+r545 2007-11-23 10:52:01 +0100 mjk:
+
+ * 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}.
+
+r544 2007-11-23 09:59:51 +0100 mjk:
+
+ * TODO: Japanese letters
+
+r543 2007-11-23 09:50:56 +0100 mjk:
+
+ * 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:
+
+ * doc/, doc/plength.dtx: M doc/plength.dtx
+
+ * Renamed internal varibles 'Xfoldmarkwidth' to match the name of new pseudo
+ lengths 'Xfoldmarklength'.
+
+r541 2007-11-22 12:00:36 +0100 mjk:
+
+ * TODO: new options and pseudo-lengths
+
+r540 2007-11-22 11:58:07 +0100 mjk:
+
+ * 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:
+
+ * Makefile, scrkernel-notepaper.dtx, manifest.txt, scrmain.ins,
+ 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:
+
+ * japanlco.dtx: locheight fixed
+
+r537 2007-11-20 17:38:03 +0100 mjk:
+
+ * japanlco.dtx: 65mmm --> 65mm fixed
+
+r536 2007-11-20 17:35:20 +0100 mjk:
+
+ * Makefile, scrkernel-notepaper.dtx, scrsource.tex,
+ scrkernel-letterclassoptions.dtx, scrmain.ins, japanlco.dtx: new lco
+ files for Japanese letters
+
+r535 2007-11-13 10:55:46 +0100 mjk:
+
+ * scrmain.ins: fix: lco files check and set the version not only use
+ the version of the class
+
+r534 2007-11-13 09:44:02 +0100 mjk:
+
+ * 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:
+
+ * scrkernel-notepaper.dtx: default of locheight fixed
+ (backaddrtoheight added)
+
+r532 2007-11-10 11:25:07 +0100 mjk:
+
+ * TODO: neue Pseudo-Längen
+
+r531 2007-11-10 11:22:39 +0100 mjk:
+
+ * scrkernel-notepaper.dtx: - new pseudo length "tfoldmarklength",
+ "mfoldmarklength", "bfoldmarklength" - new optional vertical fold
+ marks with pseudo length "foldmarkvpos",
+
+ "lfoldmarkhpos", "lfoldmarklength" - new values for option "foldmarks"
+
+r530 2007-11-10 08:53:30 +0100 mjk:
+
+ * scrkernel-basics.dtx: spaces before and after keys and values are
+ ignored at \KOMAoptions
+
+r529 2007-11-08 11:29:28 +0100 mjk:
+
+ * TODO: einige Änderungen bei den Faltmarken
+
+r528 2007-11-08 11:27:59 +0100 mjk:
+
+ * 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:
+
+ * TODO: some more to do (plength)
+
+r526 2007-11-07 10:42:24 +0100 mjk:
+
+ * scrkernel-notepaper.dtx, doc/, doc/plength.dtx: new pseudo-length
+ "lochpos", "locvpos", "locheight"
+
+r525 2007-11-07 10:16:07 +0100 mjk:
+
+ * doc/, doc/Makefile.guide, doc/Makefile.latexinit: sed call added to
+ fix problem with BibTeX line breaks after \btxurlfont
+
+r524 2007-10-23 08:53:48 +0200 mjk:
+
+ * scrkernel-typearea.dtx: fix: \isopaper pays attention to landscape
+
+r523 2007-10-23 07:25:38 +0200 mjk:
+
+ * scrkernel-pagestyles.dtx: Typofix
+
+r522 2007-10-12 11:58:49 +0200 mjk:
+
+ * scrkernel-version.dtx: prepared for v2.97e BETA
+
+r521 2007-10-12 11:58:09 +0200 mjk:
+
+ * releaselist.txt: 2007/10/12 v2.97d
+
+r520 2007-10-12 11:37:39 +0200 mjk:
+
+ * scrkernel-version.dtx: prepared for 2007/10/12 v2.97d
+
+r519 2007-10-12 11:36:16 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: undefined
+ references fixed
+
+r518 2007-10-12 11:35:19 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: overfull \hbox and \vbox fixed
+
+r517 2007-10-12 11:11:26 +0200 mjk:
+
+ * scrkernel-notepaper.dtx: forgotten \show removed [Stephan Hennig]
+
+r516 2007-10-09 15:46:27 +0200 mjk:
+
+ * scrkernel-notepaper.dtx: vertical spacing of date field fixed
+
+r515 2007-10-09 14:56:29 +0200 mjk:
+
+ * scrkernel-compatibility.dtx, scrkernel-notepaper.dtx: setting for
+ font element `refvalue' fixed
+
+r514 2007-10-04 14:51:20 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: space after \GuideListAnd fixed
+
+r513 2007-10-03 11:02:36 +0200 mjk:
+
+ * scrkernel-paragraphs.dtx, scrkernel-language.dtx,
+ scrkernel-typearea.dtx, scrkernel-pagestyles.dtx,
+ scrkernel-miscellaneous.dtx, scrkernel-fonts.dtx,
+ scrkernel-basics.dtx: New \PackageInfoNoLine
+
+r512 2007-10-03 10:43:06 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 2.97d BETA
+
+r511 2007-10-01 11:52:58 +0200 mjk:
+
+ * releaselist.txt: 2007/09/28 v2.97c
+
+r510 2007-10-01 09:18:44 +0200 mjk:
+
+ * scrkernel-version.dtx: version number fixed
+
+r509 2007-09-28 10:01:05 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: version fixed
+
+r508 2007-09-28 09:45:33 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ v2.97c
+
+r507 2007-09-27 09:42:11 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/adrconvnote.tex, doc/english/typearea.tex,
+ doc/english/scraddr.tex: index fixed
+
+r506 2007-09-26 16:44:56 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/scrdatetime.tex, doc/english/typearea.tex,
+ doc/english/scrlfile.tex, doc/english/introduction.tex,
+ doc/english/scraddr.tex: improved by GH
+
+r505 2007-09-26 09:23:54 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/scrdatetime.tex, doc/english/typearea.tex,
+ doc/english/scrlfile.tex, doc/english/introduction.tex,
+ doc/english/scraddr.tex: improved by GH
+
+r503 2007-09-25 09:05:04 +0200 mjk:
+
+ * scrmain.ins: no logo at lco files
+
+r502 2007-09-25 08:34:49 +0200 mjk:
+
+ * tocstyle.dtx: docu fix
+
+r501 2007-09-25 08:32:57 +0200 mjk:
+
+ * scrkernel-pagestyles.dtx: date fixed
+
+r500 2007-09-25 08:32:30 +0200 mjk:
+
+ * scrkernel-pagestyles.dtx: warning \scr@fnt@wrn@pagehead changed
+
+r499 2007-09-21 09:06:57 +0200 mjk:
+
+ * doc/, doc/koma-script.html: name of english guide fixed [Stephan
+ Hennig]
+
+r498 2007-09-20 15:08:33 +0200 mjk:
+
+ * doc/, doc/english/: two more translators added
+
+r497 2007-09-18 12:04:55 +0200 mjk:
+
+ * doc/, doc/guide.tex, doc/scrguide.cls, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/scrbookreportarticle.tex,
+ doc/english/guide-english.tex, doc/english/scrdatetime.tex,
+ doc/english/adrconvnote.tex, doc/english/scrlfile.tex,
+ doc/english/introduction.tex, doc/english/scraddr.tex: new command
+ \translator at the guide
+
+r496 2007-09-18 11:52:41 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/typearea.tex: \translator added
+
+r495 2007-09-18 10:37:10 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: sectioning --> disposition
+
+r494 2007-09-17 12:46:21 +0200 mjk:
+
+ * scrkernel-pseudolengths.dtx: it's save but not compatible not to use
+ e-TeX
+
+r493 2007-09-17 12:45:25 +0200 mjk:
+
+ * scrkernel-fonts.dtx: test for needed e-TeX feature
+
+r492 2007-09-17 12:31:34 +0200 mjk:
+
+ * scrkernel-pseudolengths.dtx: less functionality, if eTeX not used
+
+r491 2007-09-17 11:57:42 +0200 mjk:
+
+ * scrkernel-floats.dtx: there where to many \scr@smashdp
+
+r490 2007-09-17 11:48:43 +0200 mjk:
+
+ * scrkernel-floats.dtx: use of \scr@smashdp fixed
+
+r489 2007-09-17 11:48:28 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: macro name fixed
+
+r488 2007-09-17 11:46:47 +0200 mjk:
+
+ * scrkernel-basics.dtx: Warning message break changed
+
+r487 2007-09-17 11:35:22 +0200 mjk:
+
+ * scrkernel-floats.dtx: \@@makecaption uses \scr@smashdp
+
+r486 2007-09-17 11:34:48 +0200 mjk:
+
+ * scrkernel-basics.dtx: date fixed
+
+r485 2007-09-17 11:34:33 +0200 mjk:
+
+ * scrkernel-basics.dtx: new: scr@smashdp
+
+r484 2007-09-17 10:13:55 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scraddr.tex: improved by GH
+
+r483 2007-09-17 10:12:16 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: improved by GH
+
+r482 2007-09-17 10:06:30 +0200 mjk:
+
+ * doc/: Kleinere Verbesserungen
+
+r481 2007-09-12 17:05:12 +0200 mjk:
+
+ * TODO: change about lco files
+
+r480 2007-09-12 17:03:04 +0200 mjk:
+
+ * scrkernel-typearea.dtx, scrkernel-letterclassoptions.dtx: loading of
+ lco file via \documentclass option fixed
+
+r479 2007-09-12 12:47:27 +0200 mjk:
+
+ * doc/: Tabellenüberschrift für Tabelle 6.18 (Datumsbefehle und
+ Ausgabebeispiel) ergänzt [GH]
+
+r478 2007-09-12 12:44:45 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: improved by GH
+
+r477 2007-09-06 11:05:54 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: improved by GH
+
+r476 2007-09-06 11:01:22 +0200 mjk:
+
+ * doc/: Fehlende schließende Klammer ergänzt
+
+r475 2007-09-06 10:55:26 +0200 mjk:
+
+ * doc/: toaddrindent etwas genauer dokumentiert
+
+r474 2007-09-04 11:48:13 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: translated
+ german file changed
+
+r473 2007-09-04 11:46:50 +0200 mjk:
+
+ * doc/: Gesucht sind linksbündige Fußnotenmarkierungen, nicht
+ linksb+ndige Fußnoten
+
+r472 2007-09-04 11:31:06 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: improved by GH
+
+r471 2007-09-04 11:26:21 +0200 mjk:
+
+ * doc/: Vertippser korrigiert [GH]
+
+r470 2007-09-02 11:16:22 +0200 mjk:
+
+ * doc/, doc/plength.dtx: some english terms changed [GH]
+
+r469 2007-08-31 11:41:50 +0200 mjk:
+
+ * scrkernel-title.dtx: back side of title pages should use page style
+ empty
+
+r468 2007-08-31 09:29:35 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: improved by GH
+
+r467 2007-08-22 11:58:23 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: improved by GH
+
+r466 2007-08-22 11:33:32 +0200 mjk:
+
+ * doc/: Adresse von Markus korrigiert
+
+r465 2007-08-20 10:36:52 +0200 mjk:
+
+ * doc/, doc/english/: one more fix
+
+r464 2007-08-19 12:38:46 +0200 mjk:
+
+ * doc/, doc/english/: \EndIndex{Cmd}{page style} changed to
+ \EndIndex{Cmd}{pagestyle}
+
+r463 2007-08-19 12:35:00 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: One
+ \BeginIndex{}{circular letters} changed into \EndIndex{}{circular
+ letters}
+
+r462 2007-08-19 12:31:40 +0200 mjk:
+
+ * doc/, doc/english/: \EndIndex{Page style}{useheadings} fixed (must
+ be \EndIndex{Pagestyle}{useheadings})
+
+r461 2007-08-19 12:26:22 +0200 mjk:
+
+ * doc/: Verbesserung von Gernot Hassenpflug
+
+r460 2007-08-19 12:22:13 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: improved by GH
+
+r459 2007-08-19 12:15:31 +0200 mjk:
+
+ * doc/, doc/english/: improved by GH
+
+r458 2007-08-10 18:55:58 +0200 mjk:
+
+ * scrkernel-language.dtx: text of \languagename warning changed
+ [Stephan Hennig]
+
+r457 2007-08-09 17:30:26 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: index improved by GH
+
+r456 2007-08-09 17:22:02 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: coding changed
+
+r455 2007-08-09 17:19:29 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/guide-english.tex: improved by GH
+
+r454 2007-08-09 17:13:37 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrdatetime.tex: encoding info
+ changed
+
+r453 2007-08-09 17:08:00 +0200 mjk:
+
+ * doc/, doc/english/: improved by GH
+
+r452 2007-08-07 13:22:59 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlfile.tex: german version
+ extended to english version
+
+r451 2007-08-07 13:14:42 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlfile.tex: improved by Gernot
+ Hassenpflug
+
+r450 2007-08-07 12:54:26 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrdatetime.tex: improved by Gernot
+ Hassenpflug
+
+r449 2007-08-07 12:44:15 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: overfull change
+
+r448 2007-08-07 12:41:56 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scraddr.tex: two fixes
+
+r447 2007-08-07 12:28:04 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scraddr.tex: improved by Gernot
+ Hassenpflug
+
+r446 2007-08-07 12:12:25 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/adrconvnote.tex: improved by Gernot
+ Hassenpflug
+
+r445 2007-07-30 11:49:20 +0200 mjk:
+
+ * tocstyle.dtx: loading redefines \@starttoc, \@starttoc redefines
+ \@dottedtocline and \l@..., \@dottedtocline redefines \numberline
+
+r444 2007-07-30 10:55:56 +0200 mjk:
+
+ * tocstyle.dtx: all options renamed
+
+r443 2007-07-26 11:22:41 +0200 mjk:
+
+ * tocstyle.dtx: Checksum and one \z --> \z@
+
+r442 2007-07-25 09:41:22 +0200 mjk:
+
+ * scrkernel-version.dtx: prepared for 2.97c BETA
+
+r441 2007-07-24 11:37:42 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: smib GH
+
+r440 2007-07-24 10:53:54 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: mib GH and
+ MK
+
+r439 2007-07-23 11:12:39 +0200 mjk:
+
+ * scrpage.dtx: a lot of % added and removed
+
+r438 2007-07-23 09:33:21 +0200 mjk:
+
+ * tocstyle.dtx: \l@part uses level -1 at chapter classes and 0 at no
+ chapter classes
+
+r437 2007-07-23 09:27:58 +0200 mjk:
+
+ * 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:
+
+ * scrpage.dtx: revert to: \partlevel is -1 at chapter classes and 0 at
+ no chapter classes
+
+r435 2007-07-23 09:02:33 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: smib GH
+
+r434 2007-07-22 10:58:23 +0200 mjk:
+
+ * doc/: Typofix [Gernot Hassenpflug]
+
+r433 2007-07-22 10:57:05 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: some more
+ improvements by Gernot Hassenpflug
+
+r432 2007-07-21 09:48:15 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: some more
+ improvements by Gernot Hassenpflug
+
+r431 2007-07-19 15:27:54 +0200 mjk:
+
+ * scrkernel-pseudolengths.dtx: \useplength may be used with factor
+ prefix (e.g. .5\useplength{firstheadwidth})
+
+r430 2007-07-18 09:44:04 +0200 mjk:
+
+ * scrkernel-typearea.dtx, scrkernel-pagestyles.dtx,
+ scrkernel-miscellaneous.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:
+
+ * scrkernel-pagestyles.dtx: change: the classes should tolerate late
+ changes of option twoside
+
+r428 2007-07-17 18:59:20 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: one more
+ change by Gernot Hassenpflug
+
+r427 2007-07-16 14:44:41 +0200 mjk:
+
+ * scrkernel-sections.dtx: several \nobreak after \sectfont added
+
+r426 2007-07-14 07:52:26 +0200 mjk:
+
+ * TODO: new feature
+
+r425 2007-07-10 17:20:29 +0200 mjk:
+
+ * scrkernel-fonts.dtx, scrkernel-basics.dtx: \l@addto@macro moved to
+ scrkbase
+
+r424 2007-07-10 10:29:58 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: many
+ improvements by Gernot Hassenpflug
+
+r423 2007-07-10 10:15:02 +0200 mjk:
+
+ * doc/: einige Fehler korrigiert [Gernot Hassenpflug]
+
+r422 2007-07-06 16:09:52 +0200 mjk:
+
+ * scrkernel-notepaper.dtx, TODO: new values for option subject:
+ underlined, left, right, centered
+
+r421 2007-07-06 15:33:02 +0200 mjk:
+
+ * TODO: new font elements
+
+r420 2007-07-06 15:04:14 +0200 mjk:
+
+ * 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:
+
+ * tocstyle.dtx: version and date fixed
+
+r418 2007-07-06 12:24:27 +0200 mjk:
+
+ * tocstyle.dtx: more user documentation
+
+r417 2007-07-06 11:59:05 +0200 mjk:
+
+ * tocstyle.dtx: two macros renamed and documentation added
+
+r416 2007-07-06 11:46:38 +0200 mjk:
+
+ * tocstyle.dtx: - you may deactivate tocstyle for all or single tocs
+ now - some documentation added
+
+r415 2007-07-06 10:03:31 +0200 mjk:
+
+ * scrpage.dtx: fix: \partlevel is always -1 even if no chapter level
+ is available
+
+r414 2007-07-06 09:57:57 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex:
+ secnumdepth fixed
+
+r413 2007-07-06 09:56:01 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: lots of
+ improvements and new translations by Gernot Hassenpflug
+
+r412 2007-07-06 09:52:07 +0200 mjk:
+
+ * doc/: Bei scrartcl haben die Gliederungsebenen dieselben Nummern wie
+ bei scrbook und scrreprt.
+
+r411 2007-07-06 09:17:18 +0200 mjk:
+
+ * doc/: typo fix [Gernot Hassenpflug]
+
+r410 2007-07-05 18:56:09 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: several
+ improvements by our famous translator Gernot Hassenpflug
+
+r409 2007-07-04 17:16:12 +0200 mjk:
+
+ * scrkernel-typearea.dtx, scrkernel-fonts.dtx: initialize more font
+ size dependent lengths
+
+r408 2007-07-02 18:15:54 +0200 mjk:
+
+ * tocstyle.dtx: fix: use depth 0 at \l@chapter
+
+r406 2007-07-02 10:11:25 +0200 mjk:
+
+ * tocstyle.dtx: new package, that may be used outside KOMA-Script, too
+
+r405 2007-06-28 17:57:23 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: lots of
+ modifications by Gernot Hassenpflug
+
+r404 2007-06-27 08:28:01 +0200 mjk:
+
+ * TODO: new feature
+
+r399 2007-06-21 13:20:21 +0200 mjk:
+
+ * scrkernel-sections.dtx: \l@chapter and \l@section reimplemented to
+ make \raggedchapterentry and \raggedsectionentry work
+
+r398 2007-06-21 11:07:34 +0200 mjk:
+
+ * doc/: tex-master changed
+
+r397 2007-06-21 11:06:08 +0200 mjk:
+
+ * TODO, scrkernel-sections.dtx: new font elements: partentry,
+ partentrypagenumber, chapterentry, chapterentrypagenumber,
+ sectionentry, sectionentrypagenumber
+
+r396 2007-06-21 10:55:34 +0200 mjk:
+
+ * scrpage.dtx: \if@mainmatter test fixed
+
+r395 2007-06-20 11:10:51 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: Date fixed
+
+r394 2007-06-20 11:10:25 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: serveral
+ improvement by Gernot Hassenpflug
+
+r393 2007-06-20 10:53:58 +0200 mjk:
+
+ * scrkernel-basics.dtx: renamed \scr@ifvtex to \scr@ifVTeX and \ifvtex
+ to \ifVTeX
+
+r392 2007-06-20 10:21:09 +0200 mjk:
+
+ * scrkernel-compatibility.dtx, scrkernel-typearea.dtx,
+ scrkernel-fonts.dtx, scrkernel-basics.dtx: \scr@ifundefined renamed to
+ \scr@ifundefinedorrelax, \ifundefined renamed to \ifundefinedorrelax
+
+r391 2007-06-20 09:28:05 +0200 mjk:
+
+ * scrkernel-title.dtx, TODO: new title command \subtitle with font
+ element subtitle
+
+r390 2007-06-14 09:56:35 +0200 mjk:
+
+ * scrpage.dtx: more robust definition of \if@mainmatter and support of
+ article classes with \if@mainmatter
+
+r389 2007-06-06 09:32:40 +0200 mjk:
+
+ * doc/: "Es wird auch kein zusätzlicher vertikaler Abstand vor und
+ nach der Umgebung eingefügt." added at declaration of addmargin
+
+r388 2007-06-06 09:28:51 +0200 mjk:
+
+ * scrkernel-floats.dtx: vertical alignment of captions fixed by adding
+ \unskip\strut
+
+r387 2007-06-06 08:40:10 +0200 mjk:
+
+ * doc/: more hyphenations [Stephan Hennig]
+
+r386 2007-06-05 09:03:45 +0200 mjk:
+
+ * doc/: one more hyphenation [Stephan Hennig]
+
+r385 2007-05-31 10:33:27 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: many
+ corrections by Gernot Hassenpflug
+
+r384 2007-05-30 15:26:34 +0200 mjk:
+
+ * TODO: Noch zwei Dinge zu tun
+
+r383 2007-05-30 15:24:01 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: two references fixed
+ (Stephan Hennig)
+
+r382 2007-05-29 16:59:52 +0200 mjk:
+
+ * doc/: scrlettr --> scrlttr2
+
+r381 2007-05-29 16:57:50 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: scrrprt
+ --> scrreprt
+
+r380 2007-05-29 16:56:36 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: many
+ corrections and new translations by Gernot Hassenpflug
+
+r379 2007-05-28 14:53:53 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/typearea.tex: many corrections by
+ Gernot Hassenpflug, new file date, some more fixes
+
+r378 2007-05-28 12:13:28 +0200 mjk:
+
+ * scrkernel-version.dtx: prepared for new 2.97c BETA
+
+r377 2007-05-28 12:11:20 +0200 mjk:
+
+ * scrkernel-fonts.dtx: fix: use of \KOMA@UseObsolete replaced
+
+r376 2007-05-25 12:19:59 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: typo fix
+ [reported by Beat Birkofer]
+
+r375 2007-05-22 17:39:37 +0200 mjk:
+
+ * doc/: fix: one \KOMAoption --> \KOMAoptions
+
+r374 2007-05-17 10:30:34 +0200 mjk:
+
+ * scrkernel-notepaper.dtx: file date fixed
+
+r373 2007-05-17 10:30:11 +0200 mjk:
+
+ * scrkernel-notepaper.dtx: new: \flushbottom uses \stopletter to
+ deactivate itself at the last page
+
+r372 2007-05-14 18:30:12 +0200 mjk:
+
+ * scrkernel-notepaper.dtx: new: font elements "refname" and "refvalue"
+
+r371 2007-05-12 18:20:38 +0200 mjk:
+
+ * scrkernel-compatibility.dtx: checksum fixed
+
+r370 2007-05-12 18:04:15 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ 2.97c BETA
+
+r369 2007-05-08 11:56:13 +0200 mjk:
+
+ * TODO: new features
+
+r368 2007-05-08 11:18:59 +0200 mjk:
+
+ * 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:
+
+ * scrkernel-typearea.dtx, scrkernel-pagestyles.dtx,
+ scrkernel-miscellaneous.dtx, scrkernel-basics.dtx: New implementation
+ of option execution
+
+r366 2007-04-17 09:33:44 +0200 mjk:
+
+ * scrkernel-basics.dtx: - changed: message text about obsolete options
+ etc.
+
+r365 2007-03-30 12:56:32 +0200 mjk:
+
+ * scrkernel-notepaper.dtx: `locfield=narrow' and `locfield=wide' fixed
+
+r364 2007-03-25 11:13:12 +0200 mjk:
+
+ * scrkernel-version.dtx: Pepared for new BETA
+
+r363 2007-03-25 11:12:55 +0200 mjk:
+
+ * releaselist.txt: Release 2007/03/25 v2.97b
+
+r362 2007-03-25 10:48:11 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ release 2.97b
+
+r361 2007-03-09 15:22:09 +0100 mjk:
+
+ * scrkernel-sections.dtx: bug at \@@makechapterhead using
+ chapterprefix fixed
+
+r360 2007-03-08 11:49:23 +0100 mjk:
+
+ * scrkernel-basics.dtx: use of \ifcsname for definition of
+ \scr@ifundefined fixed
+
+r359 2007-03-07 11:07:50 +0100 mjk:
+
+ * scrkernel-version.dtx: prepared for new BETA
+
+r358 2007-03-07 11:07:29 +0100 mjk:
+
+ * releaselist.txt: Release 2007/03/07 v2.97a
+
+r357 2007-03-07 10:47:26 +0100 mjk:
+
+ * Makefile: renamed komascript-texmf.zip to komascript.tds.zip
+
+r356 2007-03-07 10:40:27 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx: prepared for
+ version 2.97a
+
+r355 2007-03-07 10:39:55 +0100 mjk:
+
+ * scrlfile.dtx: fix: \@loadwithoptions was broken
+
+r353 2007-03-02 12:13:00 +0100 mjk:
+
+ * releaselist.txt: Revision fixed
+
+r352 2007-03-02 12:11:57 +0100 mjk:
+
+ * doc/: fix: reference to sec:maincls.compatiblityOptions
+
+r351 2007-03-02 11:50:10 +0100 mjk:
+
+ * releaselist.txt: Revision fixed
+
+r350 2007-03-02 11:47:35 +0100 mjk:
+
+ * scrkernel-compatibility.dtx: v2.97 added
+
+r349 2007-03-02 11:33:19 +0100 mjk:
+
+ * scrkernel-version.dtx: new beta
+
+r348 2007-03-02 11:32:35 +0100 mjk:
+
+ * releaselist.txt: Release 2007/03/02 v2.97
+
+r347 2007-03-02 09:39:10 +0100 mjk:
+
+ * scrkernel-version.dtx: prepared for release 2.97
+
+r346 2007-03-02 09:37:06 +0100 mjk:
+
+ * README: it's 2007
+
+r345 2007-02-27 13:01:29 +0100 mjk:
+
+ * scrkernel-floats.dtx: fix: min. caption width is 0pt
+
+r344 2007-01-24 17:49:13 +0100 mjk:
+
+ * 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:
+
+ * doc/: fix: No space before \and at \ChangedAt
+
+r341 2007-01-09 19:07:25 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, Makefile, komabug.tex, scrlogo.dtx,
+ scrkernel-notepaper.dtx, scrkernel-paragraphs.dtx,
+ scrkernel-floats.dtx, scrkernel-language.dtx, Makefile.baseinit,
+ scrsource.tex, scrkernel-variables.dtx, scrkernel-footnotes.dtx,
+ scrkernel-index.dtx, scrkernel-circularletters.dtx, scrstrop.inc,
+ scrkernel-bibliography.dtx, scrstrip.inc, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-listsandtabulars.dtx, scrdoc.dtx,
+ manifest.txt, scrkernel-listsof.dtx,
+ scrkernel-letterclassoptions.dtx, scrmain.ins, scrkxflo.dtx,
+ Makefile.baserules, scrkernel-pseudolengths.dtx, scrpage.dtx,
+ scrkernel-sections.dtx, scrkernel-miscellaneous.dtx, scrtime.dtx,
+ scrkernel-fonts.dtx, scraddr.dtx, scrlfile.dtx, scrkernel-basics.dtx,
+ doc/, doc/scrguide.ist, doc/Makefile, doc/guide.tex,
+ doc/scrguide.gst, doc/scrguide.cls, doc/plength.dtx,
+ doc/Makefile.guide, doc/Makefile.latexinit, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/Makefile,
+ doc/english/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/scrdatetime.tex, doc/english/adrconvnote.tex,
+ doc/english/htmlsetup, doc/english/typearea.tex,
+ doc/english/scrlfile.tex, doc/english/introduction.tex,
+ doc/english/scraddr.tex, obsolete/scrlettr.ins,
+ obsolete/scrlettr.dtx: copyright end date changed to 2007
+
+r340 2007-01-09 11:41:16 +0100 mjk:
+
+ * TODO, doc/, doc/english/, doc/english/scrbookreportarticle.tex:
+ documentation of page break changes at toc
+
+r339 2007-01-09 11:39:44 +0100 mjk:
+
+ * 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:
+
+ * TODO, doc/: Dokumentation von \part verbessern
+
+r337 2007-01-08 10:05:37 +0100 mjk:
+
+ * doc/: - documentation of font aliases - documentation of font
+ element minisec - 'sectioning' is an alias of 'disposition' only
+
+r336 2007-01-08 09:45:33 +0100 mjk:
+
+ * doc/, doc/Makefile.guide: helper rule to start editor with guide
+ sources
+
+r335 2007-01-06 18:14:46 +0100 mjk:
+
+ * TODO: fixed problem removed
+
+r334 2007-01-06 18:14:21 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: fix: \@mparswitchfalse added
+
+r333 2007-01-05 11:18:42 +0100 mjk:
+
+ * TODO: more problems
+
+r332 2007-01-04 11:54:55 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: fix:
+ \refloatstyle --> \restylefloat
+
+r331 2007-01-04 11:53:49 +0100 mjk:
+
+ * doc/: fix: \refloatstyle --> \restylefloat
+
+r330 2007-01-03 12:46:55 +0100 mjk:
+
+ * scrkernel-pagestyles.dtx: fix for option cleardoublepage, value
+ current
+
+r329 2007-01-02 11:06:17 +0100 mjk:
+
+ * scrkernel-pagestyles.dtx: replacement for option cleardoublestandard
+ fixed
+
+r328 2006-12-12 10:30:56 +0100 mjk:
+
+ * doc/: Neue Optionen "version" und "chapteratlists"
+
+r327 2006-12-12 10:30:21 +0100 mjk:
+
+ * doc/: Dokumentation der Option "version" erweitert
+
+r326 2006-12-07 11:50:19 +0100 mjk:
+
+ * TODO, scrkernel-sections.dtx: bug with automatic set dot at end of
+ numbers fixed
+
+r325 2006-12-07 10:56:31 +0100 mjk:
+
+ * TODO: known bug added
+
+r324 2006-12-07 10:54:29 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: option cleardoubleplain added
+
+r323 2006-12-07 09:58:16 +0100 mjk:
+
+ * scrkernel-notepaper.dtx: bugfix: refline=wide was narrow and
+ refline=narrow was wide
+
+r322 2006-12-07 09:53:17 +0100 mjk:
+
+ * scrkernel-sections.dtx: typo fix at use of command \scr@v@2.96
+
+r321 2006-12-03 12:00:28 +0100 mjk:
+
+ * TODO: needs for documentation added
+
+r320 2006-12-03 11:58:12 +0100 mjk:
+
+ * scrkernel-listsof.dtx, scrkernel-sections.dtx: new option
+ "chapteratlists" with values entry or amount of vertical space
+
+r319 2006-12-03 09:24:15 +0100 mjk:
+
+ * 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:
+
+ * 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:
+
+ * doc/, doc/scrguide.cls: options changed ("version" and
+ "smallheadings" added)
+
+r316 2006-12-02 11:37:12 +0100 mjk:
+
+ * 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
+
+ after \begin{document}
+
+r315 2006-12-02 11:33:29 +0100 mjk:
+
+ * scrmain.ins: all classes have option "version"
+
+r314 2006-11-30 19:57:36 +0100 mjk:
+
+ * 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:
+
+ * doc/: two \begin{Explain} moved
+
+r312 2006-11-29 16:29:25 +0100 mjk:
+
+ * doc/: one \begin{Explain} moved
+
+r311 2006-11-28 11:50:17 +0100 mjk:
+
+ * 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:
+
+ * scrkernel-compatibility.dtx, scrkernel-sections.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:
+
+ * scrkernel-version.dtx: new BETA
+
+r308 2006-11-26 11:37:27 +0100 mjk:
+
+ * releaselist.txt: Release 2006/11/26 v2.96
+
+r307 2006-11-26 11:30:55 +0100 mjk:
+
+ * scrkernel-version.dtx: Release: 2006/11/26 v2.96
+
+r306 2006-11-26 11:29:27 +0100 mjk:
+
+ * TODO: think about a new option
+
+r305 2006-11-26 11:27:07 +0100 mjk:
+
+ * 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:
+
+ * TODO: two already done items removed
+
+r303 2006-09-12 09:57:18 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/typearea.tex: fix: line number at
+ \areaset example
+
+r302 2006-09-12 09:55:01 +0200 mjk:
+
+ * scrkernel-typearea.dtx: fix: set \topskip
+
+r301 2006-09-10 08:42:55 +0200 mjk:
+
+ * TODO: two problems added
+
+r300 2006-08-30 10:09:32 +0200 mjk:
+
+ * scrkernel-version.dtx: ready for release of 2.96 BETA
+
+r299 2006-08-27 09:20:08 +0200 mjk:
+
+ * doc/: Tippfehler korrigiert [gemeldet von Stefan Meier]
+
+r298 2006-08-21 12:51:18 +0200 mjk:
+
+ * scrkernel-typearea.dtx: new: warn if \typearea is used at any group
+
+r297 2006-08-21 12:17:06 +0200 mjk:
+
+ * scrkernel-sections.dtx, scrkernel-miscellaneous.dtx: change: some
+ more options changed to use keyval
+
+r296 2006-08-21 12:16:03 +0200 mjk:
+
+ * scrkernel-title.dtx: fix: \maketitle sets \parskip etc.
+
+r295 2006-08-20 12:10:53 +0200 mjk:
+
+ * scrkernel-basics.dtx: fix: \ProcessOptions added
+
+r294 2006-08-20 12:05:29 +0200 mjk:
+
+ * scrkernel-basics.dtx: new: \AfterKOMAoptions
+
+r293 2006-08-20 12:03:59 +0200 mjk:
+
+ * scrkernel-fonts.dtx: fix: change entries
+
+r292 2006-08-20 12:03:01 +0200 mjk:
+
+ * scrkernel-typearea.dtx: fix: typos at change entries
+
+r291 2006-08-20 10:27:41 +0200 mjk:
+
+ * scrkernel-basics.dtx: fix: preserve \CurrentOption from being
+ destroyed by xkeyval`s \setkeys
+
+r290 2006-08-18 17:05:25 +0200 mjk:
+
+ * scrkernel-typearea.dtx: changed: \ProcessOptions* instead of
+ \ProcessOptions
+
+r289 2006-08-18 17:03:14 +0200 mjk:
+
+ * scrkernel-basics.dtx: fix: \DeclareKeyValOption works if xkeyval was
+ loaded; unused macros removed
+
+r288 2006-08-18 10:46:42 +0200 mjk:
+
+ * scrkernel-fonts.dtx: Fix: \usekomafont of an alias element
+
+r287 2006-08-12 09:34:36 +0200 mjk:
+
+ * TODO: need for docu
+
+r286 2006-08-12 09:33:28 +0200 mjk:
+
+ * scrkernel-version.dtx: Version with new features not only bug fixes
+
+r285 2006-08-12 09:31:59 +0200 mjk:
+
+ * scrkernel-typearea.dtx, scrkernel-fonts.dtx: every font size may be
+ set up
+
+r284 2006-08-12 09:25:46 +0200 mjk:
+
+ * scrkernel-compatibility.dtx, scrkernel-basics.dtx: internal use of
+ \scr@ifundefined instead of \ifundefined
+
+r283 2006-08-11 12:37:15 +0200 mjk:
+
+ * scrkernel-pagestyles.dtx: Fix: arguments of \PassOptionsToPackage
+ exchanged at headinclude and footinclude
+
+r274 2006-08-09 08:50:14 +0200 mjk:
+
+ * TODO: scrcover
+
+r272 2006-08-03 12:16:01 +0200 mjk:
+
+ * scrkernel-paragraphs.dtx: fix: set \parsep at \@list@extra instead
+ of \parskip
+
+r271 2006-08-02 09:44:51 +0200 mjk:
+
+ * TODO: missing docu note
+
+r270 2006-08-02 09:43:15 +0200 mjk:
+
+ * 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:
+
+ * TODO: updated
+
+r268 2006-08-02 09:35:29 +0200 mjk:
+
+ * scrlfile.dtx: new: \ReplaceClass, \ReplacePackage, \ReplaceInput
+
+r267 2006-07-30 11:39:17 +0200 mjk:
+
+ * scrkernel-version.dtx: 2.95c BETA
+
+r266 2006-07-30 11:38:37 +0200 mjk:
+
+ * releaselist.txt: 2.95b
+
+r265 2006-07-30 11:19:37 +0200 mjk:
+
+ * scrkernel-version.dtx: prepared for new release v2.95b
+
+r264 2006-07-30 11:17:26 +0200 mjk:
+
+ * 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:
+
+ * scrkernel-fonts.dtx: Breaking of some messages improved
+
+r262 2006-07-28 18:10:07 +0200 mjk:
+
+ * 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:
+
+ * scrkernel-version.dtx: new BETA
+
+r260 2006-07-22 07:53:28 +0200 mjk:
+
+ * releaselist.txt: 2006/07/22 v2.95a
+
+r259 2006-07-22 07:46:10 +0200 mjk:
+
+ * scrkernel-version.dtx: v2.95a
+
+r258 2006-07-22 07:42:14 +0200 mjk:
+
+ * 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:
+
+ * scrkernel-sections.dtx: new: \partheadstartvskip, \partheadmidvskip,
+ \partheadendvskip, \raggedpart
+
+r256 2006-07-20 09:46:55 +0200 mjk:
+
+ * scrkernel-listsandtabulars.dtx: \@listdepth at addmargin fixed
+
+r255 2006-07-20 09:46:11 +0200 mjk:
+
+ * scrkernel-typearea.dtx: \normalsize to \typearea added; expressions
+ for big font sizes improved
+
+r254 2006-07-13 10:36:46 +0200 mjk:
+
+ * 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:
+
+ * TODO: fixed bug removed
+
+r252 2006-07-13 09:19:09 +0200 mjk:
+
+ * TODO: Note about vtop color bug
+
+r251 2006-07-06 15:14:55 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: some fixes by Stephan
+ Hennig and ispell
+
+r248 2006-07-05 10:16:16 +0200 mjk:
+
+ * scrkernel-version.dtx: next beta
+
+r247 2006-07-05 10:15:02 +0200 mjk:
+
+ * releaselist.txt: 2006/07/05 v2.95
+
+r246 2006-07-05 10:03:37 +0200 mjk:
+
+ * README: SVN comment added
+
+r243 2006-07-05 09:39:06 +0200 mjk:
+
+ * doc/: missing brace added
+
+r241 2006-07-05 09:08:45 +0200 mjk:
+
+ * scrkernel-version.dtx: Release: 2006/07/05 v2.95 KOMA-Script
+
+r240 2006-07-05 09:07:03 +0200 mjk:
+
+ * releaselist.txt: rc3
+
+r239 2006-07-04 18:15:00 +0200 mjk:
+
+ * scrkernel-sections.dtx: at \appendix replaced \newcommand* by
+ \cs{gdef}
+
+r238 2006-07-04 09:43:32 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/introduction.tex: new translation by
+ Kevin Pfeiffer
+
+r237 2006-07-03 10:05:49 +0200 mjk:
+
+ * scrkernel-floats.dtx: unused assignment at \@@makecaption removed
+ [Moss]
+
+r236 2006-07-01 09:21:32 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: *** empty log message ***
+
+r235 2006-07-01 09:20:48 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: at free version use listings with breaklines
+
+r234 2006-07-01 09:06:22 +0200 mjk:
+
+ * doc/: Dateinamen angepasst
+
+r233 2006-07-01 09:01:25 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/introduction.tex: readme.txt -->
+ README INSTALL.TXT --> INSTALL LEGAL.TXT --> lppl.txt LEGALDE.TXT
+ --> lppl-de.txt
+
+r232 2006-07-01 08:59:02 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: LEGAL.TXT --> lppl.txt
+
+r231 2006-07-01 08:55:43 +0200 mjk:
+
+ * doc/, doc/english/: references fixed
+
+r230 2006-07-01 08:53:43 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: references
+ fixed
+
+r229 2006-07-01 08:44:48 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: \cite fix
+
+r228 2006-07-01 08:41:54 +0200 mjk:
+
+ * doc/, doc/guide.bib: UK:FAQ: date removed
+
+r227 2006-07-01 08:36:28 +0200 mjk:
+
+ * doc/, doc/guide.bib: added key to UK:FAQ
+
+r226 2006-07-01 08:32:43 +0200 mjk:
+
+ * doc/, doc/guide.bib: protect \KOMAScript
+
+r225 2006-07-01 08:30:31 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: \cite fix
+
+r224 2006-07-01 08:27:57 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/introduction.tex: \cite fix
+
+r223 2006-06-27 10:07:40 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: translation of pseudo
+ length table [Stephan Hennig]
+
+r222 2006-06-27 09:52:02 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: declaration of
+ fromrulewidth added [Stephan Hennig]
+
+r221 2006-06-27 09:42:10 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: lots of changes
+ assigned by Stephan Hennig 2004(!!!) merged
+
+r220 2006-06-20 09:19:08 +0200 mjk:
+
+ * scrkernel-version.dtx: ready for 2.95 RC3
+
+r219 2006-06-14 10:34:22 +0200 mjk:
+
+ * TODO: updated
+
+r218 2006-06-14 10:31:10 +0200 mjk:
+
+ * manifest.txt: TODO removed
+
+r217 2006-06-14 10:28:46 +0200 mjk:
+
+ * manifest.txt: notes about not existing files removed
+
+r216 2006-06-14 10:26:48 +0200 mjk:
+
+ * Makefile: added release preparation option
+
+r215 2006-06-14 10:26:17 +0200 mjk:
+
+ * INSTALLD.txt, INSTALL.txt: added some more refresh notes
+
+r212 2006-06-07 13:04:01 +0200 mjk:
+
+ * releaselist.txt: 2006/06/07 v2.95 RC2
+
+r211 2006-06-07 12:57:14 +0200 mjk:
+
+ * scrkernel-version.dtx: Ready for release 2.95 RC2
+
+r210 2006-06-06 10:39:42 +0200 mjk:
+
+ * scrkernel-notepaper.dtx: fix: foldmarks should not depenand on type
+ area
+
+r209 2006-06-02 12:10:07 +0200 mjk:
+
+ * scrkernel-fonts.dtx: \l@addto@macro improved
+
+r208 2006-06-01 13:32:57 +0200 mjk:
+
+ * scrkernel-language.dtx: fix: Define \today default at all classes
+
+r207 2006-06-01 10:54:36 +0200 mjk:
+
+ * scrkernel-version.dtx: Beta on the way to RC2
+
+r206 2006-06-01 10:52:07 +0200 mjk:
+
+ * scrmain.ins: fix: scrkmisc (body) must be after scrksect (body)
+
+r204 2006-05-31 09:43:38 +0200 mjk:
+
+ * releaselist.txt: 203 2006/05/27 v2.95 RC1
+
+r203 2006-05-31 09:32:40 +0200 mjk:
+
+ * Makefile: bindist: copy ChangeLog to root-zip
+
+r202 2006-05-31 09:30:52 +0200 mjk:
+
+ * scrkernel-version.dtx, Makefile, README: Almost ready for release
+ 2.95 RC1
+
+r200 2006-05-27 08:22:36 +0200 mjk:
+
+ * Makefile, INSTALLD.txt, INSTALL.txt, README: release candidate 1
+
+r199 2006-05-10 14:13:39 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/guide-english.tex: Licence note
+ fixed
+
+r198 2006-05-10 12:56:11 +0200 mjk:
+
+ * Makefile: ChangeLog: fixed
+
+r197 2006-05-10 12:42:44 +0200 mjk:
+
+ * doc/: usage of komabug replaced by longer description
+
+r196 2006-05-04 09:25:36 +0200 mjk:
+
+ * scrkernel-notepaper.dtx: KOMA key pagenumber fixed [Henk Jongbloets]
+
+r195 2006-05-03 16:11:07 +0200 mjk:
+
+ * Makefile, komabug.tex, manifest.txt: komabug.tex added
+
+r194 2006-05-02 10:19:59 +0200 mjk:
+
+ * doc/, doc/english/, doc/english/scrlttr2.tex: Translators added to
+ initial comment
+
+r193 2006-04-24 16:24:06 +0200 mjk:
+
+ * doc/: Komma korrigiert [Stephan Hennig]
+
+r192 2006-04-24 12:06:05 +0200 mjk:
+
+ * Makefile: spellbug fixed
+
+r191 2006-04-24 12:04:59 +0200 mjk:
+
+ * doc/, doc/bin/: genchangelog.pl moved to developers directory
+
+r190 2006-04-24 12:02:55 +0200 mjk:
+
+ * Makefile, doc/, doc/bin/: improved ChangeLog processing
+
+r189 2006-04-24 11:06:32 +0200 mjk:
+
+ * ChangeLog.cvs, doc/, doc/bin/: Old ChangeLog changed into
+ ChangeLog.cvs
+
+r188 2006-04-24 11:04:42 +0200 mjk:
+
+ * ChangeLog.cvs: Switch line added
+
+r187 2006-04-21 10:13:43 +0200 mjk:
+
+ * scrkernel-fonts.dtx: \newkomafont fixed (define \scr@fnt@<element>
+ not longer as \csname @<element>font\endcsname but at
+ \@<element>font)
+
+r186 2006-04-20 14:09:24 +0200 mjk:
+
+ * scrkernel-fonts.dtx: \setkomafont fixed
+
+r185 2006-04-20 10:41:12 +0200 mjk:
+
+ * scrkernel-version.dtx: new date of beta release
+
+r184 2006-04-20 08:09:46 +0200 mjk:
+
+ * scrkernel-sections.dtx: \@@makechapterhead fixed: brace moved
+
+r183 2006-04-14 15:40:32 +0200 mjk:
+
+ * scrkernel-paragraphs.dtx: work around for everysel added
+
+r182 2006-04-14 12:36:58 +0200 mjk:
+
+ * scrkernel-notepaper.dtx: option "subject" fixed: old garbage code
+ removed
+
+r181 2006-04-11 11:18:24 +0200 mjk:
+
+ * Makefile.baseinit, doc/, doc/Makefile, doc/Makefile.guide:
+ installation using links
+
+r180 2006-04-10 12:04:55 +0200 mjk:
+
+ * TODO, README: README changed
+
+r179 2006-04-08 12:01:51 +0200 mjk:
+
+ * Makefile: INSTALL.txt and INSTALLD.txt added
+
+r178 2006-04-08 12:01:25 +0200 mjk:
+
+ * manifest.txt, doc/, doc/Makefile: some guide wrappers added
+
+r177 2006-04-08 11:44:09 +0200 mjk:
+
+ * scrstrip.inc, manifest.txt, TODO: manifest test added
+
+r176 2006-03-31 14:09:18 +0200 mjk:
+
+ * TODO, INSTALL.txt: english translation of INSTALLD.txt
+
+r175 2006-03-31 13:56:27 +0200 mjk:
+
+ * TODO, doc/, doc/koma-script.html, doc/Makefile: koma-script.html and
+ generated aliases added
+
+r174 2006-03-31 11:06:56 +0200 mjk:
+
+ * 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:
+
+ * TODO: komascr
+
+r172 2006-03-30 18:35:59 +0200 mjk:
+
+ * INSTALLD.txt: Deutsche Installationsanleitung
+
+r170 2006-03-30 16:25:37 +0200 mjk:
+
+ * manifest.txt: scrtime added
+
+r169 2006-03-30 16:24:27 +0200 mjk:
+
+ * Makefile, scrmain.ins, scrtime.dtx: scrtime added
+
+r168 2006-03-30 13:04:36 +0200 mjk:
+
+ * manifest.txt: Readd missing contents
+
+r167 2006-03-30 12:14:18 +0200 mjk:
+
+ * TODO: Release Entscheidung entfernt
+
+r166 2006-03-30 12:08:16 +0200 mjk:
+
+ * Makefile: bindist fixed
+
+r165 2006-03-30 12:04:05 +0200 mjk:
+
+ * Makefile, Makefile.baseinit: rules dist-, install-, uninstall-, and
+ bindist-rules updated
+
+r164 2006-03-30 12:02:08 +0200 mjk:
+
+ * Makefile, Makefile.baseinit, doc/, doc/Makefile,
+ doc/Makefile.guide: rules dist-, install-, uninstall-, and
+ bindist-rules updated
+
+r163 2006-03-30 10:19:06 +0200 mjk:
+
+ * Makefile: rule maintain fixed
+
+r162 2006-03-29 11:12:47 +0200 mjk:
+
+ * TODO: pdfcprot entry removed
+
+r161 2006-03-29 11:10:52 +0200 mjk:
+
+ * scrkernel-basics.dtx: undefine \ifpdftex before loading pdfcprot and
+ redefine after loading pdfcprot
+
+r160 2006-03-29 11:09:45 +0200 mjk:
+
+ * scrmain.ins: load scrlfile at scrkbase
+
+r159 2006-03-29 10:26:53 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, Makefile, scrlogo.dtx, scrkernel-notepaper.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, Makefile.baseinit, scrsource.tex,
+ scrkernel-variables.dtx, scrkernel-footnotes.dtx,
+ scrkernel-index.dtx, scrkernel-circularletters.dtx, scrstrop.inc,
+ scrkernel-bibliography.dtx, scrstrip.inc, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-listsandtabulars.dtx, scrdoc.dtx,
+ manifest.txt, scrkernel-listsof.dtx,
+ scrkernel-letterclassoptions.dtx, scrmain.ins, scrkxflo.dtx,
+ Makefile.baserules, scrkernel-pseudolengths.dtx, scrpage.dtx,
+ scrkernel-sections.dtx, scrkernel-miscellaneous.dtx,
+ scrkernel-fonts.dtx, scraddr.dtx, scrlfile.dtx, scrkernel-basics.dtx,
+ doc/, doc/Makefile, doc/guide.tex, doc/scrguide.gst,
+ doc/scrguide.cls, doc/plength.dtx, doc/Makefile.guide, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/Makefile,
+ doc/english/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/scrdatetime.tex, doc/english/adrconvnote.tex,
+ doc/english/htmlsetup, doc/english/typearea.tex,
+ doc/english/scrlfile.tex, doc/english/introduction.tex,
+ doc/english/scraddr.tex, doc/bin/, doc/bin/genhtmlidx.pl,
+ doc/bin/genindex.pl, obsolete/scrlettr.ins, obsolete/scrlettr.dtx: fix
+ of initial comment
+
+r158 2006-03-29 10:12:51 +0200 mjk:
+
+ * Makefile, scrmain.ins, obsolete/scrlettr.ins,
+ obsolete/scrlettr.dtx: obsolete scrlettr added
+
+r157 2006-03-29 09:42:59 +0200 mjk:
+
+ * Makefile: scrpage/scrpage2 added
+
+r156 2006-03-29 09:41:30 +0200 mjk:
+
+ * scrmain.ins, scrpage.dtx: scrpage/scrpage2 added
+
+r153 2006-03-28 09:30:06 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, scrlogo.dtx, scrkernel-notepaper.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, scrkernel-variables.dtx,
+ scrkernel-footnotes.dtx, scrkernel-index.dtx,
+ scrkernel-circularletters.dtx, scrkernel-bibliography.dtx,
+ scrkernel-typearea.dtx, scrkernel-pagestyles.dtx,
+ scrkernel-listsandtabulars.dtx, scrkernel-listsof.dtx,
+ scrkernel-letterclassoptions.dtx, scrkxflo.dtx,
+ scrkernel-pseudolengths.dtx, scrkernel-sections.dtx,
+ scrkernel-miscellaneous.dtx, scrkernel-fonts.dtx, scraddr.dtx,
+ scrlfile.dtx, scrkernel-basics.dtx: character table test activated
+
+r152 2006-03-28 09:13:39 +0200 mjk:
+
+ * TODO: TODO list
+
+r151 2006-03-28 08:59:06 +0200 mjk:
+
+ * scrstrip.inc: set switches only at top level
+
+r150 2006-03-27 12:17:35 +0200 mjk:
+
+ * scrkernel-typearea.dtx, scrkernel-basics.dtx: some commands moved
+ from scrktare to scrkbase and fixed
+
+r149 2006-03-27 09:57:45 +0200 mjk:
+
+ * Makefile, scrmain.ins, scraddr.dtx: scraddr added
+
+r148 2006-03-25 10:42:41 +0100 mjk:
+
+ * manifest.txt: some files added one removed
+
+r147 2006-03-25 10:32:59 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, scrlogo.dtx, scrkernel-notepaper.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, scrkernel-variables.dtx,
+ scrkernel-footnotes.dtx, scrkernel-index.dtx,
+ scrkernel-circularletters.dtx, scrkernel-bibliography.dtx,
+ scrkernel-typearea.dtx, scrkernel-pagestyles.dtx,
+ scrkernel-listsandtabulars.dtx, scrkernel-listsof.dtx,
+ scrkernel-letterclassoptions.dtx, scrkxflo.dtx,
+ scrkernel-pseudolengths.dtx, scrkernel-sections.dtx,
+ scrkernel-miscellaneous.dtx, scrkernel-fonts.dtx, scrlfile.dtx,
+ scrkernel-basics.dtx: Version number set to 2.95
+
+r146 2006-03-25 08:49:38 +0100 mjk:
+
+ * scrkernel-letterclassoptions.dtx: fix: Define \LCOWarning(NoLine)
+ using \providecommand
+
+r145 2006-03-25 08:48:42 +0100 mjk:
+
+ * scrkernel-language.dtx: \dateenglish defined if undefined
+
+r144 2006-03-24 13:00:38 +0100 mjk:
+
+ * scrkernel-version.dtx: version date changed
+
+r143 2006-03-24 12:59:55 +0100 mjk:
+
+ * scrmain.ins: lco file generation
+
+r142 2006-03-24 12:58:50 +0100 mjk:
+
+ * scrkernel-notepaper.dtx: lco part with lco and KOMAold switch
+
+r141 2006-03-24 12:58:16 +0100 mjk:
+
+ * scrkernel-letterclassoptions.dtx: \LCOWarningNoLine and \LCOWarning
+
+r138 2006-03-24 11:23:38 +0100 mjk:
+
+ * scrkernel-fonts.dtx: fixed: too many \expandafters at \setkomafont
+
+r137 2006-03-24 11:14:23 +0100 mjk:
+
+ * doc/, doc/Makefile.latexinit: PDFLATEX changed
+
+r135 2006-03-23 12:11:28 +0100 mjk:
+
+ * scrkernel-compatibility.dtx: version 2.95 added
+
+r134 2006-03-23 12:07:59 +0100 mjk:
+
+ * scrsource.tex: scrlttr2 parts added
+
+r133 2006-03-23 12:05:25 +0100 mjk:
+
+ * Makefile: dtx files of scrlttr2 added
+
+r132 2006-03-23 12:03:58 +0100 mjk:
+
+ * scrmain.ins: scrlttr2 generation
+
+r131 2006-03-23 12:03:05 +0100 mjk:
+
+ * scrkernel-variables.dtx: koma variables
+
+r130 2006-03-23 12:02:34 +0100 mjk:
+
+ * scrkernel-pseudolengths.dtx: pseudo length
+
+r129 2006-03-23 12:02:03 +0100 mjk:
+
+ * scrkernel-letterclassoptions.dtx: lco part of scrlltr2
+
+r128 2006-03-23 12:01:39 +0100 mjk:
+
+ * scrkernel-circularletters.dtx: circular letter part
+
+r127 2006-03-23 12:01:14 +0100 mjk:
+
+ * scrkernel-version.dtx: scrlttr2 name fixed
+
+r126 2006-03-23 12:00:49 +0100 mjk:
+
+ * scrkernel-paragraphs.dtx: trace log fixed
+
+r125 2006-03-23 12:00:21 +0100 mjk:
+
+ * scrkernel-miscellaneous.dtx: Default parskip=false added
+
+r124 2006-03-23 11:59:08 +0100 mjk:
+
+ * scrkernel-notepaper.dtx: note paper and letter environment
+
+r123 2006-03-23 11:58:00 +0100 mjk:
+
+ * scrdoc.dtx: New type KOMAfonts added
+
+r122 2006-03-23 10:17:35 +0100 mjk:
+
+ * scrkernel-fonts.dtx: letter class uses default font size of 12 pt
+
+r121 2006-03-22 15:16:40 +0100 mjk:
+
+ * scrkernel-pagestyles.dtx: Use of \aliaskomafont
+
+r120 2006-03-22 15:11:54 +0100 mjk:
+
+ * scrkernel-fonts.dtx: font aliases will produce infos not warnings or
+ errors
+
+r119 2006-03-22 14:47:25 +0100 mjk:
+
+ * scrkernel-fonts.dtx: Fix: \aliadkomafont --> \aliaskomafont
+
+r118 2006-03-22 14:35:11 +0100 mjk:
+
+ * scrkernel-sections.dtx: Use of \aliaskomafont
+
+r117 2006-03-22 14:31:50 +0100 mjk:
+
+ * scrkernel-miscellaneous.dtx: Use of \newkomafont
+
+r116 2006-03-22 11:00:30 +0100 mjk:
+
+ * scrkernel-miscellaneous.dtx: Call of \DeclareKeyValOption extended
+ for scrlttr2
+
+r115 2006-03-22 09:27:23 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-compatibility.dtx,
+ scrkernel-title.dtx, scrlogo.dtx, scrkernel-paragraphs.dtx,
+ scrkernel-floats.dtx, scrkernel-language.dtx,
+ scrkernel-footnotes.dtx, scrkernel-index.dtx,
+ scrkernel-bibliography.dtx, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-listsandtabulars.dtx,
+ scrkernel-listsof.dtx, scrkxflo.dtx, scrkernel-sections.dtx,
+ scrkernel-miscellaneous.dtx, scrkernel-fonts.dtx,
+ scrkernel-basics.dtx: german --> ngerman
+
+r113 2006-03-22 09:24:57 +0100 mjk:
+
+ * scrdoc.dtx: Defining terms if babel was loaded
+
+r112 2006-03-22 09:22:13 +0100 mjk:
+
+ * scrsource.tex: german --> ngerman, new files added
+
+r111 2006-03-20 10:59:13 +0100 mjk:
+
+ * scrkernel-language.dtx: numerical date and language definitions for
+ letters added
+
+r110 2006-03-16 15:37:57 +0100 mjk:
+
+ * scrkernel-compatibility.dtx: New part to set up compatibility
+
+r109 2006-03-16 15:27:24 +0100 mjk:
+
+ * scrkernel-pagestyles.dtx: brace error at pagestyle plain fixed
+
+r107 2006-03-15 17:12:10 +0100 mjk:
+
+ * scrstrip.inc: copyright years changed
+
+r106 2006-03-15 17:11:42 +0100 mjk:
+
+ * scrstrop.inc: message changed
+
+r105 2006-03-15 17:09:59 +0100 mjk:
+
+ * scrstrip.inc: preamble changed
+
+r104 2006-03-15 15:14:56 +0100 mjk:
+
+ * scrlogo.dtx: auctex mode doctex
+
+r103 2006-03-15 15:14:13 +0100 mjk:
+
+ * scrlfile.dtx: auctex mode doctex
+
+r102 2006-03-15 14:32:28 +0100 mjk:
+
+ * scrkernel-listsandtabulars.dtx: scrlttr2 integration
+
+r101 2006-03-15 14:29:11 +0100 mjk:
+
+ * scrkernel-index.dtx: scrlttr2 integration
+
+r100 2006-03-15 14:27:49 +0100 mjk:
+
+ * scrkernel-bibliography.dtx: scrlttr2 integration
+
+r99 2006-03-15 14:25:35 +0100 mjk:
+
+ * scrkernel-listsof.dtx: scrlttr2 integrated
+
+r98 2006-03-15 14:23:58 +0100 mjk:
+
+ * scrkernel-sections.dtx: scrlttr2 integration
+
+r97 2006-03-15 14:21:07 +0100 mjk:
+
+ * scrkernel-title.dtx: scrlttr2 integration
+
+r96 2006-03-15 14:17:34 +0100 mjk:
+
+ * scrkernel-paragraphs.dtx: scrlttr2 integration
+
+r95 2006-03-15 12:51:02 +0100 mjk:
+
+ * scrkernel-pagestyles.dtx: scrlttr2 integration
+
+r94 2006-03-15 12:14:00 +0100 mjk:
+
+ * scrkernel-footnotes.dtx: auctex mode doctex
+
+r93 2006-03-15 12:10:49 +0100 mjk:
+
+ * scrkernel-floats.dtx: scrlttr2 integration
+
+r92 2006-03-15 11:22:48 +0100 mjk:
+
+ * scrkernel-typearea.dtx: Option paper has no default value
+
+r91 2006-03-15 10:59:11 +0100 mjk:
+
+ * scrkernel-miscellaneous.dtx: scrlttr2 integration
+
+r90 2006-03-14 14:34:28 +0100 mjk:
+
+ * scrkernel-basics.dtx: AucTeX mode: doctex
+
+r89 2006-03-14 14:33:10 +0100 mjk:
+
+ * scrkernel-version.dtx: scrlttr2 added
+
+r88 2006-03-13 14:16:37 +0100 mjk:
+
+ * scrkernel-fonts.dtx: file date fixed
+
+r87 2006-03-13 14:14:32 +0100 mjk:
+
+ * scrkernel-fonts.dtx: Option fontsize=<value> implemented
+
+r86 2006-03-13 13:52:01 +0100 mjk:
+
+ * scrkernel-typearea.dtx, scrkernel-fonts.dtx: \@pt@scan moved from
+ scrktare.dtx to scrkfont.dtx
+
+r84 2006-03-12 12:26:33 +0100 mjk:
+
+ * scrkernel-paragraphs.dtx: parskip=relative and parskip=absolute
+ fixed
+
+r81 2006-03-11 09:10:40 +0100 mjk:
+
+ * scrkernel-paragraphs.dtx: parskip Optionen auf keyval umgestellt,
+ neue Werte "relative" und "absolute"
+
+r80 2006-03-10 13:07:47 +0100 mjk:
+
+ * scrkernel-title.dtx: Halbenglischen Ausdruck "in-page Titel" durch
+ "Titelkopf" ersetzt.
+
+r79 2006-03-10 13:01:07 +0100 mjk:
+
+ * scrkernel-paragraphs.dtx: Planung angegeben
+
+r78 2006-03-10 12:35:26 +0100 mjk:
+
+ * scrkernel-language.dtx: catcodes at definition ot \languagename
+ should not longer matter
+
+r74 2006-03-08 15:03:23 +0100 mjk:
+
+ * manifest.txt: First version of a file list
+
+r72 2006-03-08 10:59:49 +0100 mjk:
+
+ * scrkernel-version.dtx, scrkernel-title.dtx, Makefile, scrlogo.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, Makefile.baseinit, scrsource.tex,
+ scrkernel-footnotes.dtx, scrkernel-index.dtx, scrstrop.inc,
+ scrkernel-bibliography.dtx, scrstrip.inc, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-listsandtabulars.dtx, scrdoc.dtx,
+ scrkernel-listsof.dtx, scrmain.ins, scrkxflo.dtx, Makefile.baserules,
+ scrkernel-sections.dtx, scrkernel-miscellaneous.dtx,
+ scrkernel-fonts.dtx, scrlfile.dtx, scrkernel-basics.dtx, doc/,
+ doc/Makefile, doc/guide.tex, doc/scrguide.gst, doc/scrguide.cls,
+ doc/plength.dtx, doc/Makefile.guide, doc/english/,
+ doc/english/scrlttr2.tex, doc/english/Makefile,
+ doc/english/scrbookreportarticle.tex, doc/english/guide-english.tex,
+ doc/english/scrdatetime.tex, doc/english/adrconvnote.tex,
+ doc/english/htmlsetup, doc/english/typearea.tex,
+ doc/english/scrlfile.tex, doc/english/introduction.tex,
+ doc/english/scraddr.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
+ doc/german/introduction.tex doc/german/guide-ngerman.tex
+ doc/german/scraddr.tex doc/german/scrbookreportarticle.tex
+ doc/german/adrconvnote.tex doc/german/scrlfile.tex
+ doc/german/scrdatetime.tex doc/german/scrpage2.tex
+ doc/german/htmlsetup doc/german/typearea.tex doc/german/Makefile
+ doc/german/scrlttr2.tex doc/Makefile.guide
+ doc/english/introduction.tex doc/english/scraddr.tex
+ doc/english/adrconvnote.tex doc/english/scrbookreportarticle.tex
+ doc/english/scrlfile.tex doc/english/guide-english.tex
+ doc/english/scrdatetime.tex doc/english/htmlsetup
+ doc/english/scrpage2.tex doc/english/typearea.tex
+ doc/english/Makefile doc/english/scrlttr2.tex doc/guide.tex
+ doc/Makefile scrkliof.dtx Makefile scrstrip.inc scrstrop.inc
+ testsuite/bin/pdfselect.sh testsuite/bin/dvicmp testsuite/bin/dotest
+ testsuite/bin/dvitypecmp testsuite/bin/pdfcmp
+ testsuite/bin/dviselect.sh testsuite/Makefile.tspec
+ testsuite/Makefile scrlfile.ins scrklist.dtx scrlfile.dtx
+ scrklang.dtx scrkidx.dtx scrlogo.dtx scrsource.tex scrkftn.dtx
+ Makefile.baseinit scrdoc.dtx scrktare.dtx scrkmisc.dtx scrkbib.dtx
+
+r71 2006-03-08 10:39:05 +0100 mjk:
+
+ * lppl.txt: LPPL 1.3b is part of the distribution
+
+r70 2006-03-08 10:27:23 +0100 mjk:
+
+ * scrkernel-paragraphs.dtx: - parskip error fixed (testet by
+ testsuite/parskipindent)
+
+r68 2006-03-08 08:52:54 +0100 mjk:
+
+ * doc/: TeX Master fixed
+
+r64 2006-02-13 18:53:08 +0100 mjk:
+
+ * lppl-de.txt: erste Version der mit Frank Mittelbach abgesprochenden
+ inoffiziellen Ãœbersetzung der LPPL 1.3b
+
+r60 2006-01-25 12:56:38 +0100 mjk:
+
+ * Makefile.baserules: rule testsuite replaced by rule testtest
+
+r59 2006-01-25 12:41:27 +0100 mjk:
+
+ * Makefile, doc/, doc/Makefile, doc/english/, doc/english/Makefile:
+ Get BASEDIR from parent
+
+r50 2006-01-20 14:48:57 +0100 mjk:
+
+ * Makefile.baserules: Some (but not all) features for a testsuite
+
+r48 2006-01-13 09:38:03 +0100 mjk:
+
+ * doc/, doc/plength.dtx: missing `n' added
+
+r47 2005-12-13 08:53:31 +0100 mjk:
+
+ * doc/: fix: \makeatletter...\makeatother
+
+r46 2005-12-13 08:52:03 +0100 mjk:
+
+ * doc/, doc/english/, doc/english/scrbookreportarticle.tex: fix:
+ \makeatletter...\makeatother
+
+r45 2005-11-27 15:32:22 +0100 mjk:
+
+ * doc/, doc/Makefile, doc/english/, doc/english/scrlttr2.tex,
+ doc/english/Makefile, doc/english/scrbookreportarticle.tex,
+ doc/english/guide-english.tex, doc/english/scrdatetime.tex,
+ doc/english/adrconvnote.tex, doc/english/htmlsetup,
+ doc/english/typearea.tex, doc/english/scrlfile.tex,
+ doc/english/introduction.tex, doc/english/scraddr.tex: Initial import
+ of the englisch guide
+
+r44 2005-11-27 12:14:29 +0100 mjk:
+
+ * doc/: document support for finnish
+
+r43 2005-11-27 11:46:56 +0100 mjk:
+
+ * doc/: line break
+
+r42 2005-11-26 18:14:09 +0100 mjk:
+
+ * doc/, doc/guide.bib: one more \LaTeX fixed
+
+r41 2005-11-26 18:12:42 +0100 mjk:
+
+ * doc/, doc/guide.bib: Macros fixed
+
+r40 2005-11-26 17:28:08 +0100 mjk:
+
+ * doc/: Declaration of \setindexpreamble fixed
+
+r39 2005-11-26 17:15:37 +0100 mjk:
+
+ * doc/: Fließumgebung --> Gleitumgebung, Fließobjekt --> Gleitobjekt
+
+r38 2005-11-26 15:45:37 +0100 mjk:
+
+ * doc/, doc/bin/, doc/bin/genindex.pl: Use of undefined $line at 97
+ fixed. Generation of new $indexbase-gen.ind at 82 fixed.
+
+r37 2005-11-26 13:00:57 +0100 mjk:
+
+ * doc/: spaces fixed
+
+r36 2005-11-26 11:32:35 +0100 mjk:
+
+ * doc/, doc/Makefile.guide: clean every dvi or tmp file an mperr.tex
+
+r35 2005-11-26 11:15:54 +0100 mjk:
+
+ * doc/, doc/scrguide.cls: Spell fixes; use of \extras<language>
+ instead of \captions<language>
+
+r34 2005-11-26 10:58:13 +0100 mjk:
+
+ * doc/: Fix of version date
+
+r33 2005-11-25 11:48:07 +0100 mjk:
+
+ * doc/: Widmung prägnanter gefasst
+
+r32 2005-11-05 10:04:02 +0100 mjk:
+
+ * doc/: date fix
+
+r31 2005-11-05 10:03:34 +0100 mjk:
+
+ * doc/: Erklärung zu smallheadings, normalheadings, bigheadings
+ erweitert [Stephan Hennig]
+
+r30 2005-11-05 10:01:05 +0100 mjk:
+
+ * doc/, doc/Makefile.guide: Fix: there should be no $(INDEXPOSTOP) at
+ rule $(plenDIN_SRC).
+
+r29 2005-10-04 13:29:09 +0200 mjk:
+
+ * doc/: Einige ``"~'' gefolgt von Leerzeichen durch ``-'' ersetzt.
+
+r28 2005-08-30 10:12:40 +0200 mjk:
+
+ * doc/, doc/plength.dtx: Correction of line thickness at measure lines
+
+r26 2005-08-15 10:49:52 +0200 mjk:
+
+ * doc/, doc/bin/: Perl script to generate ChangeLog.tmp (used to make
+ ChangeLog.svn)
+
+r25 2005-08-13 07:47:02 +0200 mjk:
+
+ * doc/, doc/scrguide.gst, doc/Makefile.guide, doc/Makefile.latexinit:
+ change log generation
+
+r24 2005-08-12 17:04:01 +0200 mjk:
+
+ * doc/: Explain before Declaration not after
+
+r23 2005-08-12 16:58:46 +0200 mjk:
+
+ * doc/: Explain before Declaration not after
+
+r22 2005-08-12 16:47:14 +0200 mjk:
+
+ * doc/: Explain should not start after Declaration but before
+
+r21 2005-08-12 16:42:22 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: \lstset-fix for buggy version of LM fonts
+
+r20 2005-08-12 15:48:59 +0200 mjk:
+
+ * doc/, doc/Makefile.guide, doc/Makefile.latexinit: Generation of a
+ html index file supported
+
+r19 2005-08-12 13:17:59 +0200 mjk:
+
+ * doc/, doc/bin/, doc/bin/genhtmlidx.pl: Generation of a html index
+ file supported
+
+r18 2005-08-12 09:53:52 +0200 mjk:
+
+ * doc/, doc/Makefile: new rule "edit"
+
+r17 2005-08-12 09:52:44 +0200 mjk:
+
+ * doc/, doc/Makefile.guide: $(TEX_SRC) added to rule "guide.idx
+ guide.aux"
+
+r16 2005-08-11 10:47:22 +0200 mjk:
+
+ * 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/: \GuideCopyright changed ("Bildschirm-Version")
+
+r14 2005-08-10 16:31:33 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: \phantomsection at Declaration environment
+ not longer needed and used. Anchors are more descriptive.
+
+r13 2005-08-09 17:18:30 +0200 mjk:
+
+ * doc/, doc/Makefile.latexinit: scrguide.bst removed
+
+r12 2005-08-09 17:16:59 +0200 mjk:
+
+ * 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/, doc/scrguide.cls: tablecaptionsabove; use of babalpha-fl
+
+r9 2005-08-09 14:51:14 +0200 mjk:
+
+ * doc/, doc/Makefile.latexinit: INDEXPOSTOP added
+
+r8 2005-08-09 14:50:53 +0200 mjk:
+
+ * doc/, doc/Makefile.guide: $(INDEXPOSTOP) added to latex function
+
+r7 2005-08-09 14:50:08 +0200 mjk:
+
+ * doc/: \AddSeeIndex entries fixed
+
+r6 2005-08-09 14:49:44 +0200 mjk:
+
+ * doc/, doc/scrguide.ist: start of comment line fixed
+
+r5 2005-08-09 14:49:12 +0200 mjk:
+
+ * doc/, doc/scrguide.cls: macros of multiindex fixed
+
+r4 2005-07-27 09:43:44 +0200 mjk:
+
+ * doc/: 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/, 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:
+
+ * Makefile.baseinit: Newer kpsewhich uses TEXMFHOME instead of
+ HOMETEXMF.
+
+r1 2005-07-25 12:19:51 +0200 mjk:
+
+ * scrkernel-version.dtx, scrkernel-title.dtx, Makefile, scrlogo.dtx,
+ scrkernel-paragraphs.dtx, scrkernel-floats.dtx,
+ scrkernel-language.dtx, Makefile.baseinit, scrsource.tex,
+ scrkernel-footnotes.dtx, scrkernel-index.dtx, scrstrop.inc,
+ scrkernel-bibliography.dtx, scrstrip.inc, scrkernel-typearea.dtx,
+ scrkernel-pagestyles.dtx, scrkernel-listsandtabulars.dtx, scrdoc.dtx,
+ scrkernel-listsof.dtx, scrmain.ins, scrkxflo.dtx, Makefile.baserules,
+ missing.dtx, README, ChangeLog.cvs, scrkernel-sections.dtx,
+ ChangeLog.2, scrkernel-miscellaneous.dtx, scrkernel-fonts.dtx,
+ .ignore, Makefile.cfg, scrlfile.dtx, scrkernel-basics.dtx, doc/,
+ doc/scrguide.ist, doc/guide.bib, doc/Makefile, doc/guide.tex,
+ doc/scrguide.cls, doc/plength.dtx, doc/Makefile.guide,
+ doc/Makefile.latexinit, 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 ----------------------------------------
+
+2005-07-25 Markus Kohm <komascript@gmx.info>
+
+ * doc/german/scrlttr2.tex:
+ - Wiesenweg
+
+ * doc/german/scrbookreportarticle.tex:
+ - font-lock
+
+ * doc/german/introduction.tex:
+ - changed encoding
+
+ * doc/german/Makefile:
+ - simplified
+
+ * doc/guide.bib:
+ - umlaute fixed
+
+ * Makefile.baserules:
+ - make_recursive improved
+
+ * Makefile.baseinit:
+ - MV and SMV added
+
+ * ChangeLog: *** empty log message ***
+
+2005-06-09 Markus Kohm <komascript@gmx.info>
+
+ * doc/german/scrpage2.tex:
+ - Tippfehler
+
+2005-05-18 Markus Kohm <komascript@gmx.info>
+
+ * doc/bin/genindex.pl, doc/german/scrlfile.tex:
+ - current version at add time
+
+ * doc/Makefile.guide:
+ - more chapters
+
+ * doc/german/scraddr.tex:
+ - TeX-master
+
+ * doc/german/scraddr.tex:
+ - initial comment
+
+ * doc/german/scraddr.tex:
+ - current version at add time
+
+ * doc/Makefile.guide:
+ - cleaned: clean rules
+
+ * doc/german/scrlttr2.tex:
+ - plenDINde --> plenDIN
+
+ * doc/Makefile.latexinit:
+ - MPOST added
+
+ * doc/Makefile.guide:
+ - Generation of plenDIN.mps
+
+ * doc/scrguide.cls:
+ - fixed: \@procidesfile
+
+ * doc/Makefile:
+ - more source files
+
+ * doc/plength.dtx:
+ - language independant figure generator
+
+ * doc/Makefile.guide:
+ - some more chapters added
+
+ * doc/german/scrlttr2.tex, doc/german/scrdatetime.tex:
+ - current version at add time
+
+ * doc/german/scrpage2.tex:
+ - initial comment
+
+ * doc/german/scrpage2.tex:
+ - current version at add time
+
+ * doc/german/guide-ngerman.tex:
+ - \Xmp... added
+
+2005-05-17 Markus Kohm <komascript@gmx.info>
+
+ * doc/german/scrbookreportarticle.tex:
+ - current version at add time
+
+ * doc/german/typearea.tex, doc/scrguide.cls:
+ - utf8 --> latin1
+
+ * doc/Makefile.guide:
+ - don't remove every pdf, only some
+
+ * doc/Makefile.guide:
+ - added *.glo at rule clean_local
+
+ * doc/Makefile:
+ - one more Makefile
+
+ * doc/Makefile.guide:
+ - language independent part of the Makefile to make a guide
+
+ * doc/Makefile.latexinit:
+ - language dependency at the call of pdflatex
+
+ * doc/german/guide-ngerman.tex:
+ - a lot of new macros
+
+ * doc/guide.tex:
+ - no more language dependencies (hope so)
+
+ * doc/scrguide.cls:
+ - a lot of fixes
+
+ * doc/german/typearea.tex:
+ - current version at add time
+
+ * doc/german/introduction.tex:
+ - starting comment
+
+2005-05-14 Markus Kohm <komascript@gmx.info>
+
+ * doc/scrguide.cls:
+ - everything of the old scrguide2.tex implemented;
+ NOTE: Some of these features need fixes.
+
+ * doc/guide.tex:
+ - change log activated
+
+ * doc/german/guide-ngerman.tex:
+ - change log
+
+ * doc/scrguide.cls:
+ - change log, examples
+
+2005-05-13 Markus Kohm <komascript@gmx.info>
+
+ * doc/scrguide.cls:
+ - Special Tables and Tabulars
+
+ * doc/german/guide-ngerman.tex:
+ - language dependencies of hyperref; hyphenation
+
+ * doc/scrguide.cls:
+ - hyperref addons completed
+
+ * doc/scrguide.cls:
+ - CTAN:// is an alias for hyperref
+
+2005-05-12 Markus Kohm <komascript@gmx.info>
+
+ * doc/german/guide-ngerman.tex:
+ - initial version
+
+ * doc/german/introduction.tex:
+ - name of the game changed
+
+ * doc/german/introduction.tex:
+ - released version
+
+ * doc/guide.tex:
+ - with index
+
+ * doc/guide.bib:
+ - initial version (not yet finished)
+
+ * doc/Makefile.latexinit:
+ - BibTeX rules added
+
+ * doc/german/Makefile:
+ - initial rules for guide generation
+
+ * doc/scrguide.cls:
+ - some options changed, bibliography added, index (not yet
+ finished) added
+
+ * Makefile.baseinit:
+ - fix: CHSUM
+
+ * doc/Makefile.latexinit:
+ - BIBINPUTS and BSTINPUTS added
+
+ * doc/Makefile:
+ - some DOC_SRC added
+
+ * doc/scrguide.bst:
+ - initial version based on babelbib
+
+ * scrkbib.dtx:
+ - fix: \list at thebibiography
+
+ * doc/guide.tex:
+ - replaces chapter file adrconv by adrconvnote to avoid problems with
+ adrconv package
+
+ * doc/guide.tex:
+ - initial version
+
+ * scrkmisc.dtx:
+ - some options are KOMAoptions
+
+ * doc/Makefile:
+ - guide.tex is part of this level of the documentation
+
+2005-05-02 Markus Kohm <komascript@gmx.info>
+
+ * doc/Makefile:
+ - use of babalpha.bst instead of scrguide.bst
+
+ * doc/scrguide.ist:
+ - initial version of a MakeIndex style file
+
+ * doc/Makefile:
+ - new DOC_SRC files scrguide.ist and scrguide.bst
+
+ * doc/Makefile:
+ - new Makefile: Makefile.latexinit
+
+2005-04-22 Markus Kohm <komascript@gmx.info>
+
+ * doc/scrguide.cls:
+ - initial version of the guide class
+
+ * doc/Makefile:
+ - maintain
+
+ * doc/german/Makefile:
+ - nothing but basics
+
+ * doc/german/Makefile:
+ - initial version
+
+ * doc/Makefile:
+ - First version of documentation make file
+
+ * Makefile:
+ - DISTDIR and MAINTAINDIR using direct assignment
+
+ * Makefile:
+ - new variable MAINTAINDIR
+
+ * Makefile.baserules:
+ - make_recursive fixed
+
+ * Makefile.baseinit:
+ - use of function shell and assignment ?=
+
+ * .cvsignore:
+ - *.flc added
+
+2005-01-03 Markus Kohm <komascript@gmx.info>
+
+ * scrksect.dtx:
+ - Copyright date
+
+ * scrksect.dtx:
+ - fix: \@@makeschapterhead defined using \newcommand instead of
+ \renewcommand
+
+2004-12-07 Markus Kohm <komascript@gmx.info>
+
+ * Makefile:
+ - CLS_MAIN_SUBINS
+
+ * Makefile:
+ - added scrkmisc.dtx
+ - MISC_SRC fixed (INS_TEMPLATES)
+
+2004-11-16 Markus Kohm <komascript@gmx.info>
+
+ * Makefile: scrdoc.dtx added zu MISC_SRC
+
+2004-11-05 Markus Kohm <komascript@gmx.info>
+
+ * scrkliof.dtx, scrkpar.dtx, scrksect.dtx:
+ - \setparskip fixed
+
+ * scrkpar.dtx, scrsource.tex:
+ - Use of \setparskip
+
+ * scrmain.ins:
+ - while we are in pre release state we use additional key "trace"
+
+ * scrkliof.dtx:
+ - \@parskipfalse und \@parskip@indent ersetzt
+
+ * scrksect.dtx:
+ - \cs{@parskipfalse} und \cs{@parskip@indent} ersetzt
+
+2004-11-04 Markus Kohm <komascript@gmx.info>
+
+ * scrklang.dtx, scrbeta.dtx, scrkfloa.dtx, scrkfont.dtx,
+ scrkmisc.dtx, scrksect.dtx, scrktitl.dtx:
+ - fix of use of \KOMAClassName
+
+ * scrktitl.dtx, scrksect.dtx, scrkmisc.dtx, scrklang.dtx,
+ scrkfont.dtx, scrkfloa.dtx, scrbeta.dtx, scrdoc.dtx, scrkbase.dtx,
+ scrkbib.dtx, scrkftn.dtx, scrkidx.dtx, scrkliof.dtx, scrklist.dtx,
+ scrkpage.dtx, scrkpar.dtx, scrktare.dtx, scrkvers.dtx,
+ scrkxflo.dtx, scrlfile.dtx, scrlogo.dtx:
+ - use of \KOMAClassName
+
+ * scrkpage.dtx:
+ - Use of \KOMA@DeclareObsoleteOption fixed
+
+2004-08-24 Markus Kohm <komascript@gmx.info>
+
+ * scrkpage.dtx:
+ - options replaced by keyvals
+
+ * scrkfloa.dtx:
+ - checksum fix
+
+ * scrkfloa.dtx:
+ - longtable caption fix of KOMA-Script 2.9s
+
+ * scrkfloa.dtx:
+ - "Geplant!" margin note
+
+2004-07-21 Markus Kohm <komascript@gmx.info>
+
+ * scrkfont.dtx:
+ - new macros \newkomafont and \aliaskomafont
+
+ * scrkpage.dtx:
+ - compatibility mode removed
+ - note of planned scrpage2 using
+
+ * scrklang.dtx:
+ - Activiation of current language changes from KOMA-Script v2.9r
+
+ * scrkfloa.dtx:
+ - some notes added
+
+2004-07-20 Markus Kohm <komascript@gmx.info>
+
+ * README:
+ - removed umlauts
+
+ * scrkvers.dtx:
+ - fix: class identification
+
+ * scrlfile.dtx, scrktare.dtx, scrkbase.dtx:
+ - fix: package identification
+
+ * scrkbase.dtx:
+ - some \if... more expandable
+
+ * scrktare.dtx:
+ - \ifdefined --> \ifnotundefined
+
+ * scrdoc.dtx:
+ - \eTeX
+
+ * scrkbase.dtx:
+ - \ifdefined --> \ifnotundefined
+
+ * scrksect.dtx:
+ - all KOMA-Script 2 changes till 2004-07-16
+
+ * scrkfloa.dtx:
+ - changes of scrclass 2.9r
+
+2004-04-19 Markus Kohm <komascript@gmx.info>
+
+ * scrkmisc.dtx:
+ - dictum fix of KOMA-Script v2.9q
+
+2004-03-24 Markus Kohm <komascript@gmx.info>
+
+ * scrklist.dtx:
+ - addmargin fix of KOMA-Script 2.9q: don't touch \labelsep
+
+ * scrksect.dtx:
+ - \@@makeschapterhead fix from KOMA-Script 2.9q
+
+2004-01-31 Markus Kohm <komascript@gmx.info>
+
+ * scrkftn.dtx:
+ - change at \deffootnote for more compatibility with footnote.sty
+
+2004-01-30 Markus Kohm <komascript@gmx.info>
+
+ * scrkvers.dtx:
+ - update of version date
+
+ * scrkfloa.dtx:
+ - caption fixes of KOMA-Script 2.9q
+
+ * scrktare.dtx:
+ - warning fixes of KOMA-Script 2.9q
+
+2004-01-24 Markus Kohm <komascript@gmx.info>
+
+ * scrbeta.dtx:
+ - scrxfloat added
+
+2004-01-21 Markus Kohm <komascript@gmx.info>
+
+ * scrktare.dtx:
+ - \ProcessGlobalKeyValOptions --> \ProcessAllOptions
+
+ * scrkbase.dtx:
+ - \ProcessGlobalKeyValOptions replaced by \Pr@cessGl@balKeyValOptions
+ - \Pr@cessGl@balKeyValOptions fixed
+ - \ProcessKeyValOptions
+ - \ProcessAllOptions
+
+2004-01-15 Markus Kohm <komascript@gmx.info>
+
+ * General:
+ - Changes till KOMA-Script 2.9p
+
+ * scrkftn.dtx:
+ - \deffootnote change of KOMA-Script 2.9p
+
+ * scrksect.dtx:
+ - \@seccntformat change of KOMA-Script 2.9p
+ - chapter change of KOMA-Script 2.9p
+ - autodot change of KOMA-Script 2.9k
+ - use of \BeforeClosingMainAux instead if \AtEndDocument
+ - tocleft changes of KOMA-Script v2.9k
+ - minisec fix of KOMA-Script 2.9o
+
+ * scrkbib.dtx:
+ - bibtotocnumbered change of KOMA-Script 2.9p
+ - thebibliography fix of KOMA-Script 2.9o
+
+ * scrkliof.dtx:
+ - liststotocnumbered change of KOMA-Script 2.9p
+ - \@dottedtocline change of KOMA-Script 2.9k
+
+ * scrkidx.dtx:
+ - \idx@heading change of KOMA-Script 2.9l
+
+ * scrkmisc.dtx:
+ - ifthispageodd changes of KOMA-Script 2.9l
+ - dictum change of KOMA-Script 2.9l
+
+ * scrkfloa.dtx:
+ - captionbeside fix of KOMA-Script 2.9p
+
+ * scrkpar.dtx:
+ - \small and \footnotesize changes of KOMA-Script 2.9h
+
+2004-01-05 Markus Kohm <komascript@gmx.info>
+
+ * scrkxflo.dtx:
+ - what happens with not floating consultations and option "float"
+ - missing text notes
+
+ * scrkxflo.dtx:
+ - what happens with not floating consultations and option "float"
+
+ * scrkxflo.dtx:
+ - description replaced by labeling at description of option float
+
+ * scrkxflo.dtx:
+ - Option "float"
+
+2004-01-04 Markus Kohm <komascript@gmx.info>
+
+ * scrkxflo.dtx:
+ - \newconsultation*, \setupconsultation*
+ - minor fixes
+
+ * scrkxflo.dtx:
+ - Start of description (not yet finished) of an idea,
+ currently no implementation!
+
+ * scrdoc.dtx:
+ - \newDescribe, \DescribeOption (by \newDescribe{Option})
+
+2003-01-21 Markus Kohm <komascript@gmx.info>
+
+ * scrdoc.dtx:
+ - Fix: \EnvNames --> \EnvsName
+
+2002-12-08 Markus Kohm <komascript@gmx.info>
+
+ * README:
+ - Initial version of a Do-Not-Use-Or-Distribute-README
+
+2002-12-06 Markus Kohm <komascript@gmx.info>
+
+ * scrktare.dtx:
+ - missing option "headlines=<Value>" added
+
+2002-12-05 Markus Kohm <mjk@mungojerrie.local>
+
+ * scrkpar.dtx:
+ - \parfillskip wil change at \begin{document}
+
+ * scrktare.dtx:
+ - Recalculation of type area also recalls option pagesize
+
+ * scrkbase.dtx:
+ - \if@atdocument added
+
+2002-12-04 Markus Kohm <mjk@mungojerrie.local>
+
+ * scrktare.dtx:
+ - all options are keyval options
+
+ * scrkmisc.dtx:
+ - Activation of keyval options added
+
+ * scrktare.dtx:
+ - Options "paper=landscape" and "paper=portrait"
+
+ * scrdoc.dtx:
+ - Changed: Two columns at index (instead of three)
+
+ * Makefile:
+ - Fix: MKINDEX call at makedvifromdtx
+
+2002-12-03 Markus Kohm <mjk@mungojerrie.local>
+
+ * scrktare.dtx:
+ - \isopaper allowes upper case at optional argument
+ - papersize options implemented
+
+ * scrlfile.dtx:
+ - \scr@hook@bcma fixed
+
+ * scrkbase.dtx:
+ - some small fixes (macro spelling etc.)
+
+ * scrbeta.dtx:
+ - scrkbase added
+
+2002-09-03 Markus Kohm <komascript@gmx.info>
+
+ * scrlfile.dtx:
+ - \AfterClearpageAtEnddocument replaced by \BeforeClosingMainAux
+
+2002-09-01 Markus Kohm <komascript@gmx.info>
+
+ * scrksect.dtx:
+ - Fix at \make@@chapterhead: \size@chapter after \sectfont
+
+2002-08-29 Markus Kohm <komascript@gmx.info>
+
+ * scrlfile.dtx:
+ - Fix: \AfterClass*, \AfterPackage*
+
+2002-08-27 Markus Kohm <komascript@gmx.info>
+
+ * scrktare.dtx:
+ - option `pagesize' reimplemented
+ - options `dvips' and `pdftex' obsolete reimplemented
+
+ * scrkbase.dtx:
+ - Some minor documentation changes
+ - Fix: \KOMA@unkown@keyval uses 3 arguments
+
+2002-08-25 Markus Kohm <komascript@gmx.info>
+
+ * scrktare.dtx:
+ - 2 \relax and 2 % inserted
+
+2002-08-23 Markus Kohm <komascript@gmx.info>
+
+ * scrkbase.dtx:
+ - new: \KOMA@unkown@keyval
+
+2002-08-21 Markus Kohm <komascript@gmx.info>
+
+ * Makefile:
+ - checksum test at makedvifromdtx
+
+ * Makefile.baseinit:
+ - new: CKSUM
+
+ * scrksect.dtx:
+ - \part fixed
+
+ * scrkbase.dtx:
+ - new: \ifundefined, \ifdefined
+ - new: \let@as@internal@defined
+ - \ifpdfoutput pays attention to VTeX
+ - new: \ifpdftex, \ifpsoutput, \ifdvioutput
+
+2002-07-18 Markus Kohm <komascript@gmx.info>
+
+ * scrkvars.dtx:
+ - moved to scrkbase.dtx
+
+ * Makefile:
+ - scrkbase.sty
+ - scrkvars.dtx --> scrkbase.dtx
+
+ * scrmain.ins:
+ - scrkvars.dtx --> scrkbase.dtx
+ - scrkeyvl.sty --> scrkbase.sty
+
+ * scrsource.tex:
+ - scrkvars.dtx --> scrkbase.dtx
+
+ * scrktare.dtx:
+ - moved \ifpdfoutput to scrkbase.dtx
+
+ * scrkbase.dtx:
+ - moved scrkvars.dtx to scrkbase.dtx
+ - \ifpdfoutput added
+
+2002-07-12 Markus Kohm <komascript@gmx.info>
+
+ * template.sh:
+ - some fixes
+
+ * scrsource.tex:
+ - scrkvars.dtx
+
+ * scrkvars.dtx:
+ - a lot of bug fixes
+
+ * scrktare.dtx:
+ - first version which uses (and not only loads) scrkeyvl
+
+ * .cvsignore:
+ - generated files *.cls and *.sty added
+ - test files test* added
+
+ * scrbeta.dtx:
+ - scrkeyvl added
+
+ * Makefile:
+ - scrkvars.dtx added to CLS_MAIN_DTX
+
+2002-07-11 Markus Kohm <komascript@gmx.info>
+
+ * scrkftn.dtx:
+ - \show removed
+ - \CheckSum fixed
+
+ * scrkvers.dtx:
+ - \ProvidesClass
+
+ * Makefile:
+ - dvi-file will be removed at makedvifromdtx if compilation error
+
+ * scrktare.dtx:
+ - Laden von scrkeyvl.sty
+
+ * scrkvars.dtx:
+ - Neu
+
+ * scrmain.ins:
+ - load scrkvars at every class
+ - scrkeyvl
+
+2002-07-06 Markus Kohm <komascript@gmx.info>
+
+ * scrkpage.dtx:
+ - two spaces removed
+
+ * scrmain.ins:
+ - Changed order of scrk...-files to fit dependencies
+
+2002-07-05 Markus Kohm <komascript@gmx.info>
+
+ * Makefile:
+ - makedvifromdtx improved (dvi will be removed at error)
+
+ * scrlfile.dtx:
+ - New command \AfterClearpageAtEndDocument
+
+2002-07-04 Markus Kohm <komascript@gmx.info>
+
+ * Makefile:
+ - ChangeLog.2 added
+
+ * ChangeLog:
+ - New file for KOMA-Script 3
+
+ * ChangeLog.2:
+ - ChangeLog moved to ChangeLog.2
+
+ * .cvsignore, ChangeLog, Makefile, Makefile.baseinit,
+ Makefile.baserules, Makefile.cfg, missing.dtx, scrbeta.dtx,
+ scrdoc.dtx, scrkbib.dtx, scrkfloa.dtx, scrkfont.dtx, scrkftn.dtx,
+ scrkidx.dtx, scrklang.dtx, scrkliof.dtx, scrklist.dtx,
+ scrkmisc.dtx, scrkpage.dtx, scrkpar.dtx, scrksect.dtx,
+ scrktare.dtx, scrktitl.dtx, scrkvers.dtx, scrlfile.dtx,
+ scrlfile.ins, scrlogo.dtx, scrmain.ins, scrsource.tex,
+ scrstrip.inc, scrstrop.inc, template.sh:
+ - New file.
+
+------- Start of KOMA-Script Version 3 ---------------------------------------
diff --git a/macros/latex/contrib/koma-script/source/ChangeLog.2 b/macros/latex/contrib/koma-script/source/ChangeLog.2
new file mode 100644
index 0000000000..29b1b1d9fd
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/ChangeLog.2
@@ -0,0 +1,2383 @@
+2002-06-11 Markus Kohm <kohm@gmx.de>
+ * brief.tex:
+ - "ein regelrechter" --> "geradezu ein" (Raimund)
+
+2002-06-10 Jens-Uwe Morawski <morawski@gmx.net>
+ * introduc.tex
+ - translation of Thanks section
+ * letter.tex
+ - initial translation
+ (priliminary version sections
+ 6.3, 6.4, 6.6 missing)
+
+2002-06-10 Markus Kohm <kohm@gmx.de>
+ * Makefile.unx:
+ - default-Regel ist nun all; die Installationsverzeichnisse
+ werden erst getestet, wenn installiert werden soll.
+ - Änderungen in Makefile sind ein Grund, alles neu zu erzeugen
+ - Änderungen in Makefile.unx werden gemeldet
+ - TEXINPUTS sollte jetzt funktionieren
+ - scrguide2.dvi wird als Standard mit MultiIndex erstellt, falls
+ genindex.pl verfügbar und ausführbar ist
+ ACHTUNG: FÜR DEN ENGLISCHEN scrguien WIRD DERZEIT KEIN
+ MULTIINDEX ERZEUGT, DA HIERZU VERMUTLICH NOCH
+ ÄNDERUNGEN IN DEN KAPITELN NOTWENDIG SIND (vor allem
+ Verwendung von \IndexFontElement)!!!!!!!!!!!!!!!!!!!!!
+ * genindex.pl:
+ - komplett neue Version; benötigt Unterstützung in der ind-Datei
+ - stellt selbst fest, welche ind-Dateien außer *-gen.ind erzeugt
+ werden sollen
+ * scrguide2.tex:
+ - diverse "Sort"-Namen gelöscht, die mit halbwegs aktuellen
+ MakeIndex gar nicht benötigt werden
+ - diverse Index-Namen hinzugefügt
+ ACHTUNG: HIER IST NOCH EINIGES NEU ZU ÜBERSETZEN BZW. AUS DER
+ ÜBERSETZUNG ZU ENTFERNEN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ - diverse Makros für den MultiIndex hinzugefügt oder geändert.
+
+2002-06-09 Markus Kohm <kohm@gmx.de>
+ * brief.tex:
+ - SNold in Erklärung durch SN ersetzt (Harald)
+
+2002-06-08 Markus Kohm <kohm@gmx.de>
+ * brief.tex:
+ - Korrekturen (Georg)
+
+2002-06-07 Markus Kohm <kohm@gmx.de>
+ * brief.tex:
+ - \IndexFontElement verwendet
+ - Diverse Tippfehler beseitigt (Harald)
+ - Kleinigkeiten geändert (Jens)
+ * hauptcls.tex:
+ - \IndexFontElement verwendet
+ - Überschriften an gepasst:
+ "Der Haupttext" --> "Der Text"
+ "Schlussteil" --> "Der Schlussteil"
+ * scrguide2.tex:
+ - \IndexFontElement
+ - \indexsection verbessert
+ - Alternative für einen aufgeteilten Index
+ * Makefile.unx:
+ - Alternative für einen aufgeteilten Index
+ * satzspgl.tex:
+ - Indexeintrag für typearea.cfg eingefügt
+ * genindex.pl:
+ - Erste Version des perl-Scripts für die Erzeugung des
+ aufgeteilten Index
+
+2002-06-04 Markus Kohm <kohm@gmx.de>
+ * komabug.tex:
+ - Tippfehler behoben (Aenderund --> Aenderung)
+ [Ulf Jaenicke-Roessler]
+ * brief.tex:
+ - Einige Ergänzungen für SN.lco.
+ * scrclass.dtx:
+ - Mindestplatz für Index und Glossary geändert.
+
+2002-06-03 Markus Kohm <kohm@gmx.de>
+ * scrclass.dtx, scrlttr.cls (v2.8q), SN.lco:
+ - Maße für SN 010130 (SN.lco) eingebaut einschließlich
+ Sonderbehandlung für Adresse rechts.
+ * scrclass.ins:
+ - Erzeugung von SN.lco aktiviert.
+ * Makefile.unx
+ - Nur ich bin berechtigt, aus einer BETA-Version eine Release zu
+ machen und umgekehrt.
+
+2002-06-02 Markus Kohm <kohm@gmx.de>
+ * brief.tex
+ - Erklärung zu \adrchar etwas gekürzt.
+ - Noch eine Bemerkung zu \addrchar und \addrentry bezüglich
+ adrconv eingefügt.
+ * scraddr.dtx (v1.1b):
+ - Damit das Paket unabhängig von scrlettr und scrlttr2
+ eingesetzt werden kann, werden nun bei \InputAdressFile
+ ggf. auch \adrchar und \addrchar definiert.
+
+2002-06-01 Markus Kohm <kohm@gmx.de>
+ * brief.tex
+ - Fehler in Abschnitt 6.7 ("die wird sie" --> "dann wird sie")
+ [Jens]
+ - Autorenliste korrigiert [Jens]
+
+2002-05-31 Markus Kohm <kohm@gmx.de>
+ * scrguide2.tex
+ - Liste der Beteiligten als eigene Titelseite gesetzt
+ - \LegalText in \LegalText und \LegalTextB aufgeteilt
+ * main.tex
+ - \LegalText --> \LegalText and \LegalTextB
+
+2002-05-28 Markus Kohm <kohm@gmx.de>
+ * brief.tex
+ - Überschriften vereinheitlicht (\section mit Artikel,
+ \subsection ohne)
+ - Tabelle mit den Datumsformaten verschoben, damit der
+ Seitenumbruch verbessert wird
+ - Kapitelüberschrift an Kapitel 3 angeglichen
+ - Änderungsvermerk eingefügt
+
+2002-05-27 Markus Kohm <kohm@gmx.de>
+ * einleit.tex
+ - Danksagung erweitert
+ ACHTUNG: DAS MUSS NOCH ÜBERSETZT WERDEN!!!!!!!!!!!!!!!!!!!!!!!!!!
+ * Makefile.unx
+ - adrguide und $(OLD)-Teile entfernt
+ * main.tex
+ - spell fix
+ - \WhoIsWho added
+ - \LegalText enlarged
+ * satzspgl.tex
+ - Satzbau in Zeile 800 (mpinclude/mpexclude)
+ - Mathemodus reduziert
+ * scrguide2.tex
+ - Mathemodus reduziert
+ - \WhoIsWho und \lowertitleback hinzugefügt
+ - \LegalText erweitert
+ * hauptcls.tex
+ - Mathemodus reduziert
+ * brief.tex
+ - Mathemodus reduziert
+
+2002-05-26 Jens-Uwe Morawski <morawski@gmx.net>
+ * pglayout.tex:
+ - removed ".sty" from chapter title
+ - some fixes
+ - added documentation for options mpinclude
+ and mpexclude
+
+2002-06-26 Markus Kohm <kohm@gmx.de>
+ * brief.tex
+ - Kleine Schönheitsänderung in "Von scrlettr zu scrlttr2" wird
+ deutlicher gemacht, das das erste Beispiel bereits eine
+ Modifikation des alten Beispiels ist.
+
+2002-05-25 Markus Kohm <kohm@gmx.de>
+ * main.tex
+ - "Verweise" --> "destination"
+ * maincls.tex
+ - "jorney" --> "journey"
+ - at tab:numberKind use of \PValue instead of \PName
+ * hauptcls.tex
+ - tab:numberKind verwendet \PValue statt \PName
+
+2002-05-24 Markus Kohm <kohm@gmx.de>
+ * Makefile.unx
+ - handling of removed obsolet files removed
+ * scrclass.ins
+ - handling of removed obsolet files removed
+ - preambles renamed
+ * scrlettr.dtx
+ - dir.tex, phone.tex, addrconv.*, email.* and birthday.* removed
+ * brief.tex
+ - kleiner Fehlerchen korrigiert (Torsten)
+ * adressen.tex
+ - Declaration von \FreeIV fixed
+ * scrguide2.tex
+ - \url@ redefined to become CTAN:// an alias to
+ ftp://\CTANserver/tex-archive/
+ - \CTANserver defined
+ - \BibPreamble changed to use \CTANserver
+ * main.tex
+ - \CTANserver defined
+ - \BibPreamble changed to use \CTANserver
+ * scrguide.bib
+ - links to clsguide, usrguide and fntguide changed to get the
+ pdf file not the tex file
+ - URL of DANTE:FAQ changed to main FAQ page at www.dante.de
+
+2002-05-23 Jens-Uwe Morawski <morawski@gmx.net>
+ * hauptcls.tex:
+ - fehlplaziertes \EndIndex{Cmd}{ifthispageodd}
+ an die richtige Stelle verschoben
+ - "gewühlten" --> "gewählten" im Abschnitt \pagenumbering
+ * maincls.tex:
+ - description for \pagenumbering added
+ * scrguide.bib:
+ - alle URL-Verweise, die auf Verzeichnisse und
+ nicht Dateien zeigen, am Ende mit "/" geschrieben
+ * main.tex:
+ - \BibPreambleText added
+ * scrguide2.tex:
+ - CTAN-Präfix-Beispiel bei Dante in URL geändert,
+ da für z.B. PDF-Dokumente die Links im Literatur-
+ verzeichnis aufgrund des "CTAN://" Präfixes nicht
+ im Browser funktionieren.
+ * adrkonv.tex:
+ - Overfull hbox entfernt
+
+2002-05-23 Markus Kohm <kohm@gmx.de>
+ * maincls.tex:
+ - linebreak fix at example
+ * satzspgl.tex:
+ - mpinclude und mpexclude dokumentiert
+ * introduc.tex:
+ - \cite{UK:FAQ} added
+
+2002-05-22 Jens-Uwe Morawski <morawski@gmx.net>
+ * maincls.tex:
+ - remaining german examples replaced with
+ english examples
+ * addressf.tex:
+ - description for new package options of warnings
+ (adrFreeIV...) added
+ * adressen.tex:
+ - neue Paketoptionen für Warnungen (adrFreeIV...)
+ dokumentiert
+
+2002-05-22 Markus Kohm <kohm@gmx.de>
+ * brief.tex:
+ - \cc-Beispiel korrigiert: \raggedright war falsch (Torsten)
+ - \AtBeginLetter-Beispiel korrigiert (Torsten)
+ * scrguide.bib:
+ - error at ragged2 entry fixed
+ - adrconv entry changed (Jens)
+ - "CTAN: /tex-archive" --> "CTAN://"
+ * scrguide2.tex:
+ - \BibPreambleText hinzugefügt
+ - Präambel für das Literaturverzeichnis gesetzt.
+ * maincls.tex:
+ - \ref{cha:scrletter} --> \ref{cha:scrlttr2} (Jens)
+
+2002-05-21 Jens-Uwe Morawski <morawski@gmx.net>
+ * adrkonv.tex:
+ - Kapitel geändert, da addrconv nicht mehr Teil von KOMA-Script
+ * addrconv.tex:
+ - chapter rewritten since addrconv is not included in
+ KOMA-Script anymore
+
+2002-05-20 Jens-Uwe Morawski <morawski@gmx.net>
+ * pglayout.tex:
+ - many bugfixes
+ - removed all overfull and underfull boxes
+ * addressf.tex
+ - fixed index bug
+ * loadfile.tex
+ - fixed overfull hbox
+
+2002-05-19 Markus Kohm <kohm@gmx.de>
+ * pglayout.tex:
+ - some changes to avoid overfull \hbox
+ * maincls.tex:
+ - some changes to avoid overfull \hbox and to get umlauts at the
+ german examples which should be translated
+ * addressf.tex:
+ - some changes to avoid overfull \hbox
+ * headfoot.tex:
+ - some changes to avoid overfull \hbox
+ * Makefile.unx:
+ - scraddr.dtx hinzugefügt
+ * scraddr.dtx:
+ - scraddr.sty wird nun daraus erzeugt und nicht länger aus
+ scrlettr.dtx
+ - Neue Optionen (adrFreeIV...)
+ - \adrentry verwendet \addrentry
+ - \adrchar verwendet \addrchar
+ * scrclass.dtx, scrlttr2.cls (v2.8q):
+ - \adrentry verwendet \addrentry
+ - \adrchar verwendet \addrchar
+ * scrclass.ins:
+ - scraddr.sty wird nun aus scraddr.dtx erzeugt und nicht länger
+ aus scrlettr.dtx
+ * scrlettr.dtx:
+ - scraddr.sty ist nicht länger enthalten
+ * scrguide2.tex:
+ - Umbruch im Index vor "(Pseudo-Länge)" ermöglicht (wegen eines
+ Eintrags im Index).
+ - PDF-Info erweitert (für Jens).
+ * scrguide.ist:
+ - Umbruch vor den Pünktchen in der ersten Ebene ermöglicht.
+
+2002-05-18 Jens-Uwe Morawski <morawski@gmx.net>
+ * addressf.tex:
+ - changes for \addrentry support
+ - bugfix, since only letters not numbers are allowed as TeX
+ command names
+ * adressen.tex:
+ - Anpassungen für \addrentry Einträge
+ - Fehler korrigiert, da in TeX Macronamen keine Zahlen erlaubt
+ sind
+ * loadfile.tex:
+ - initial translation
+
+2002-05-18 Markus Kohm <kohm@gmx.de>
+ * Makefile.unx, INSTALL.TXT, INSTALLD.TXT:
+ - Das von Jens gemeldete Problem in Makefile.unx wegen TEXMF
+ durch Umbenennung in INSTALLTEXMF behoben.
+ * scrlogo.dtx:
+ - \@ifundefined testet nun wirklich auf KOMAScript (gemeldet von
+ Jens)
+ * scrlettr.dtx, scraddr.sty (v1.1):
+ - Erweiterungen für \addrentry von Jens übernommen und ein klein
+ wenig geändert.
+
+2002-05-17 Markus Kohm <kohm@gmx.de>
+ * hauptcls.tex:
+ - \pagenumbering dokumentiert
+ - Änderung bei Fußnoten in \caption dokumentiert
+ * scrclass.dtx (v2.8q):
+ - Fußnoten in Gleitumgebungen führen nun nicht mehr zu falscher
+ Zählweise und doppelter Ausgabe.
+
+2002-05-15 Markus Kohm <kohm@gmx.de>
+ * brief.tex:
+ - Weitere Hinweise und Beispiele von Torsten berücksichtigt.
+
+2002-05-14 Markus Kohm <kohm@gmx.de>
+ * brief.tex:
+ - Torstens Korrekturen und Hinweise umgesetzt.
+ * scrclass.dtx, scrlttr2 und lco-Dateien (v2.8q):
+ - Von Torsten gemeldete Fehler umgesetzt (\NeedsTeXFormat in den
+ lco-Dateien und Schriftumschaltung in Kopf- und Fußzeile der
+ Folgeseiten).
+
+2002-05-11 Markus Kohm <kohm@gmx.de>
+ * brief.tex:
+ - Einige Hinweise von Torsten umgesetzt.
+ - Konsistenzänderung bei den Pseudolängen eingearbeitet.
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ - Konsistenzänderung bei den Pseudolängen: Wenn \useplength eine
+ Benutzeranweisung ist, dann sollten \setlengthtoplength und
+ \addtolengthplength dies ebenfalls sein.
+
+2002-05-10 Markus Kohm <kohm@gmx.de>
+ * brief.tex:
+ - Korrekturen von Torsten eingearbeitet
+
+2002-05-09 Markus Kohm <kohm@gmx.de>
+ * addrconv.tex, letter.tex, loadfile.tex:
+ - missing note added
+ * main.tex:
+ - \include{loadfile} and \PseudoPrefix added.
+ * Makefile.unx:
+ - koma-script.tex, koma-script.pdf, komascript.pdf, komascr.pdf
+ * koma-script.tex:
+ - Neu: nützlich beispielsweise, wenn jemand unter teTeX mit
+ texdoc koma-script
+ nach der Anleitung sucht.
+
+2002-05-08 Markus Kohm <kohm@gmx.de>
+ * scrguide.tex:
+ - Neu: \PseudoPrefix, \PLength und \IndexPLength
+ * brief.tex:
+ - Meine temporäre Version ersetzt nun die unfertige Version von
+ Enrico (sorry, aber so ging es deutlich schneller, wenn auch
+ nicht unbedingt besser).
+ * adrkonv.tex, hauptcls.tex:
+ - Verweise auf scrlettr in Verweise auf scrlttr2 geändert.
+
+2002-04-18 Markus Kogm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrbook, scrreprt (v2.8q):
+ - Bei Verwendung der Option chapterprefix wirkt sich
+ \raggedsection nun auch auf den Präfix aus. Damit sind
+ vollständig zentrierte Überschriften durch ein einfaches
+ \let\raggedsection=\centering möglich.
+
+2002-04-09 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ - Verwendung von \@tempskipa statt \@tempdima weil Längen ebenfalls
+ skip- und keine dim-Register sind. Gleichzeitig default-Wert für
+ den optionalen Faktor entfernt, damit plus und minus funktionieren.
+ Im Ergebnis funktionieren specialmailindent und
+ specialmailrightindent nun wie gewünscht.
+
+2002-04-08 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrbook, scrreprt, scrartcl (v2.8q):
+ - liststotoc korrigiert
+ - listtotocnumbered neu hinzugefügt
+
+2002-03-29 Markus Kohm <Markus.Kohm@gmx.de>
+ * Makefile.unx:
+ - distclean löscht auf die zu den dtx-Files gehörenden dvi-Files.
+ - Der neue englische guide ist Standard, der alte kann noch mit
+ OLD=yes erzeugt werden.
+ - scrlttr2 und die lco-Dateien werden mit installiert.
+ * scrclass.ins:
+ - scrlttr2 etc. wird nicht mehr nur in der BETA erzeugt.
+
+2002-03-28 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, typearea, scrbook, scrreprt, scrartcl (v2.8q):
+ - Auf Anregung von Frank Mittelbach, Optionen "mpinclude" und
+ "mpexclude" implementiert. Typearea berechnet bei "mpinclude"
+ einen Satzspiegel, bei dem die Randnotizen zum Textbereich
+ gezählt werden. Die Randnotizen haben dabei eine Breite von
+ einem Streifen abzüglich \marginparsep.
+ Es gibt keine vordefinierten DIV-Werte für die Verwendung mit
+ "mpinclude" stattdessen wird in diesem Fall "DIVcalc"
+ verwendet.
+ Die Hauptklassen setzen bei Verwendung von "mpinclude" die
+ Kopf und Fußzeile über die gesamte Breite des Bereichs für
+ Text und Randnotizen.
+ Die Optionen sind so definiert, dass KOMA-Script-Klassen,
+ typearea und scrpage2 optimal zusammenarbeiten können.
+
+ * scrpage.dtx, scrpage2 (v2.1):
+ - scrpage2 versteht ebenfalls eine Option "mpinclude" und
+ "mpexclude". Bei "mpinclude" wird als Voreinstellung
+ \setheadwidth[0pt]{textwithmarginpar} und
+ \setfootwidth[0pt]{textwithmarginpar} verwendet. Dies
+ entspricht auch der Verwendung der Option bei den KOMA-Script
+ Klassen.
+ Die Optionen sind so definiert, dass KOMA-Script-Klassen,
+ typearea und scrpage2 optimal zusammenarbeiten können.
+
+2002-03-25 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ - Die fehlenden separator-Variablen ergänzt. Man kann jetzt
+ beispielsweise mit
+ \setkomavar{fromurl}[]{http://socha.net/scrguide} dafür
+ sorgen, dass das Präfix "URL: " verschwindet. Das macht das
+ leere optionale Argument.
+ - Speziell für Luzia specialmailindent und
+ specialmailrightindent
+ - \LetterOptionNeedsPaperSize wirkt sich nun erst bei \opening
+ aus. Dadurch kann nach DIN.lco noch eine lco-Datei geladen
+ werden, die ein anderes Format verlangt ohne dass DIN.lco eine
+ Warnung ausgibt.
+
+2002-03-20 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ - In der Variablen signature darf "\\" verwendet werden, um eine
+ mehrzeilig Unterschrift zu erzeugen.
+
+2002-03-06 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, typearea (v2.8q):
+ - Berechnung der günstigen Zeilenlänge korrigiert
+ (\normalfont\normalsize hinzugefügt).
+
+2002-03-01 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q):
+ - \normalfont aus \sectfont herausgenommen, weil das (fast)
+ überall vor \sectfont ohnehin schon aufgerufen wurde.
+ - Überall, wo es relevant ist nach \sectfont ein \nobreak
+ eingefügt. Das war notwendig, weil in \sectfont ein
+ \normalcolor enthalten ist. color.sty hat aber einen Bug,
+ der einen Zeilen- und Seitenumbruch nach \normalcolor
+ ermöglichst. Dadurch konnte zwischen \section und \subsection
+ ein Seitenumbruch erfolgen, sobald color.sty geladen ist.
+
+2002-02-25 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2.tex:
+ Index wird ins Inhaltsverzeichnis aufgenommen
+ (wurde gewünscht).
+ * brief.tex:
+ Enricos erster Entwurf für die neue Briefklasse.
+
+2002-02-23 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2.tex:
+ \Variable, \IndexVariable und \VariableName eingeführt.
+ * main.tex:
+ \VariableName (stimmt die Übersetzung?)
+ * scrclass.dtx, scrlttr (v2.8q):
+ Einige kleinere Bugfixes:
+ - wlocfield und slocfield sind obsolete Optionen
+ - Breite des location-Feldes wird ggf. während \openin
+ berechnet.
+ - Leerer Absendername und leere Absenderadresse sind
+ mehr oder weniger erlaubt.
+ - \@title durch \usekomavar{title} ersetzt.
+
+2002-02-22 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Ein paar Fehler korrigiert.
+
+2002-02-22 Jens-Uwe Morawski <morawski@gmx.net>
+ * addressf.tex, headfoot.tex, main.tex:
+ some fixes
+
+2002-02-11 Markus Kohm <Markus.Kohm@gmx.de>
+ * layout.tex:
+ Jens Änderungen zur Verhinderung von Warnungen
+ * datladen.tex:
+ Neues Kapitel für scrlfile.sty
+ * scrguide2.tex:
+ datladen.tex hinzugefügt
+ * Makefile.unx:
+ datladen.tex hinzugefügt
+
+2002-02-11 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlfile (v2.8q):
+ - Sternformen \AfterPackage* und \AfterClass* führen die
+ entsprechende Anweisungen sofort aus, falls das Paket oder
+ die Klasse bereits geladen ist.
+
+2002-02-06 Markus Kohm <Markus.Kohm@gmx.de>
+ * koma-script.xml:
+ - <Documentation> in verschiedenen Sprachen (keine Ahnung, ob
+ mehrere gleichartige Einträge überhaupt erlaubt sind, da
+ catalogue.dtd saumäßig dokumentiert ist).
+ * scrpage.dtx, scrpage2 (v2.0m):
+ - Schwerwiegenden Bug in \ps@useheadings beseitigt.
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ - Option "addrfield=false" kann nun nicht nur gesetzt werden,
+ sondern hat auch eine Funktion (Adressfeld komplett
+ ausblenden).
+
+2002-02-05 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ - Option "pagenumber=top" und "pagenumber=bot" funktionieren
+ wie gewünscht und ohne Umdefinierung von \@tempa.
+ - \closing ist nicht mehr \long, dafür dürfen im Argument
+ \\[...] vorkommen.
+
+2002-02-04 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ Problem beseitigt, falls "refline=wide" nach dem Laden der
+ lco-Datei gesetzt wird.
+ * hauptcls.tex:
+ - Umgebung addmargin und Anweisung \ifthispageodd dokumentiert.
+ - Alle relevanten overfull \hbox Meldungen beseitigt.
+
+2002-02-03 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ - fromrulelength --> fromrulewidth
+ - frumrulewidth --> fromrulewidth
+
+2002-02-02 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage.dtx, scrpage2 (v2.0m):
+ - scrlttr2 wird erkannt und aktiv unterstützt, das bedeutet
+ insbesondere auch, dass Kopf- und Fu"szeilen entsprechend
+ angepasst werden. Beim Seitenstil scrheadings funktioniert
+ sogar die Option automark. Der Befehl \automark kann auch
+ verwendet werden, allerdings spielt es derzeit keinerlei
+ Rolle, was man dabei als Argumente verwendet, solange es
+ Gliederungsebenen unter chapter sind.
+ Vielleicht werde ich in einer späteren Release die
+ Zusammenarbeit zwischen scrpage2 und scrlttr2 bezüglich
+ \automark noch verbessern, wenn begründete Nachfrage
+ besteht.
+ * scrtime.dtx, scrtime (v1.1m):
+ - Holländisch wird unterstützt (Dank an Henk Jongbloets)
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ - \ta@hh-Fehler in Option headlines beseitigt (gemeldet
+ von Chef-Alpha-Tester Torsten Krüger)
+ - Option fax heißt nun entsprechtend aller anderen
+ fromfax (gemeldet von Henk Jongbloets)
+
+2002-02-01 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ - Fehlende französische Übersetzungen ergänzt
+ (von Henk Jongbloets)
+ - Einige Tippfehler behoben (gemeldet von Henk Jongbloets)
+ - \captionsdutch und \datedutch neu (von Henk Jongbloets)
+ - Fehlende spanische Übersetzungen ergänzt
+ (von Alejandro López-Valencia)
+
+2002-01-31 Markus Kohm <Markus.Kohm@gmx.de>
+ * koma-script.xml:
+ Maybe a better description. Version number in future.
+
+2002-01-31 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ Kopf- und Fußzeilen funktionieren nun auch auf den Folgeseiten
+ sowohl bei Seitenstil plain als auch bei Seitenstil headings.
+ Dabei wird die neue Option "pagenumber" berücksichtigt.
+ Der Inhalt der Marken beim Seitenstil headings kann mit
+ \markboth{}{} und \markright{} beeinflusst werden. Dies muss
+ jedoch NACH opening erfolgen, weil opening, selbst ein
+ \@mkboth{\usekomavar{fromname}}{\usekomavar{subject}}
+ ausführt. Ich habe deshalb auch noch den Seitenstil myheadings
+ definieren, der wie headings funktioniert, aber \@mkboth auf
+ \@gobbletwo setzt.
+
+2002-01-31 Markus Kohm <Markus.Kohm@gmx.de>
+ * koma-script.xml:
+ Der Catalogue-Eintrag für KOMA-Script wird nun vom Projekt
+ mitverwaltet. Dadurch haben wir hoffentlich mehr Einfluss
+ auf seinen Inhalt.
+ Dies ist noch die unveränderte Originalversion.
+
+2002-01-29 Jens-Uwe Morawski <morawski@gmx.net>
+ * datetime.tex:
+ Übersetzung.
+
+2002-01-28 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ - Einige Variablen (z. B. place in fromplace) umbenannt.
+ - Einige neue Variablen.
+ - Neue \...name Makros.
+ - Einige neue Font-Variablen.
+ - Die Option fromalign beachtet nun die Werte:
+ left - linksbündiger Briefkopf entsprechend
+ briefkopf.sty
+ right - rechtbündiger Briefkopf analog zu "left"
+ center - zentrierter Briefkopf mit Logo neben der
+ Adresse
+ no - Keine Änderung des Briefkopfes.
+ Die Verwendung von \firsthead schaltet automatisch
+ auf fromalign=no.
+
+2002-01-28 Markus Kohm <Markus.Kohm@gmx.de>
+ * einleit.tex, satzspgl.tex:
+ Von Yoshi Nagata gemeldete Fehler korrigiert.
+
+2002-01-27 Jens-Uwe Morawski <morawski@gmx.net>
+ * layout.tex, adressen.tex:
+ Korrekturen nach Vorschlägen von Torsten Krueger
+
+2002-01-25 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2 (v2.8q):
+ Diverse Optionen aus briefkopf.sty eingebaut.
+ * scrclass.dtx (v2.8q):
+ Alle ``blubber'' durch `blubber' ersetzt.
+
+2002-01-22 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrbook, scrreprt, scrartcl (v2.8q):
+ halfparskip-Bug beseitigt
+
+2002-01-22 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2.cls (v2.8q):
+ - Neue Variable backaddressseparator ersetzt \\ in der
+ Rücksendeadresse.
+ - Neue Fontvariable backaddress
+ - Variable backaddress wird als \usekomavar{fromname}\\
+ \usekomavar{fromaddress} vordefiniert. Bei KOMAold wird
+ darauf getestet und ggf. auf leer gesetzt.
+ - Neues Makro \@ogobble, um ein optionales Argument zu
+ vernichten. Dieses wird bei der lokalen Umdefinierung
+ von \\ beispielsweise für die Rücksendeadresse verwendet.
+ - \captionenglish wird in jedem Fall definiert
+ - \ifkomavarempty*{placeseparator} durch \ifkomavarempty{place}
+ und \usekomavar*{placeseparator} durch \usekomavar{place}
+ ersetzt.
+
+2002-01-16 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2.cls (v2.8q):
+ - Es gibt eine Fontvariable für "subject".
+ - Ein paar überflüssige % entfernt und ein paar fehlende %
+ ergänzt.
+ - Neue Sprachabhängigkeit \headfromname.
+ - Die letter Umgebung kennt nun ein optionales Argument zum
+ Setzen der Optionen (erspart ggf. den Aufruf von
+ \KOMAoptions).
+ - Der Fußnotenzähler wird bei jedem Brief zurückgesetzt.
+ - Neue Befehle \newkomavar, \setkomavar, \usekomavar,
+ \ifkomavarempty und \addtoreffields. Funktion siehe
+ scrclass.dtx.
+ - Die ganzen \from..., \to..., \place usw. Befehle wurden
+ durch komavar-Variablen ersetzt. Die alten Befehle sind
+ jedoch bei Verwendung der Optionendatei "KOMAold" wieder
+ verfügbar. Namen und Bedeutung der Variablen siehe
+ scrclass.dtx.
+
+2002-01-14 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2.cls (v2.8q):
+ Das Setzen der Geschäftszeile wurde optimiert.
+
+2002-01-10 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrbook.cls, scrreprt.cls, scrartcl.cls (v2.8q):
+ Leere Präambel im Literaturverzeichnis vergrößert nicht länger
+ den Abstand nach der Überschrift.
+
+2001-12-13 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, typearea.sty (v2.8q):
+ Es war immer dokumentiert, dass DIVcalc die optimale Breite
+ einer Spalte nimmt. Tatsächlich hat das aber aufgrund eines
+ Bugs nie funktioniert. Dieser Fehler ist nun behoben, führt
+ aber u. U. bei alten Dokumenten, die auf diesen weit zurück
+ reichenden Bug bauen, zu einem anderen Umbruch!
+
+2001-11-29 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Dokumentation von \setcapmargin der erfolgen Änderung
+ angepasst.
+ * scrclass.dtx (v2.8q):
+ Bei \setcapmargin gibt das optionale Argument nun den linken
+ bzw. inneren Rand an, da mir dies intuitiver erscheint.
+ Neue Umgebungen addmargin und addmargin* mit einem optionalen
+ und einem obligatorischen Argument, um innerhalb des Dokuments
+ die Randeinstellung kurzzeitig zu ändern. Negative Werte sind
+ möglich. Realisation erfolgte mit Hilfe einer Liste.
+
+2001-11-27 Markus Kohm <markus.kohm@gmx.de>
+ * Makefile.unx:
+ Mit "env BETA=yes make scrguien" kann der neue englische Guide
+ erzeugt werden. Dabei werden alle benötigten symbolischen Links
+ automatisch erzeugt. Daher ist es nicht mehr notwendig, die
+ folgenden Dateien im CVS zu halten:
+ scrguide/english/scrguide.bib
+ scrguide/english/scrguide.ist
+ scrguide/english/scrguide.mbs
+ scrguide/english/scrguide2.tex
+ * scrguide-en.bst:
+ BibTeX style for the english guide.
+ * scrguide.bst:
+ Zwischen Monat und Jahr ist kein Umbruch erlaubt.
+
+ * main.tex:
+ \LoadChapters
+ \LanguageShortcut
+
+ * scrguide2.tex:
+ Notwendige Definitionen von Jens ergänzt. Dabei den
+ Zeilenumbruch im Quellcode angepasst und die Umlaute entfernt
+ (die Definition erfolgt vor dem Laden der Sprache).
+ Verwendung von Babel für jede Sprache.
+ Welche Kapitel in welcher Reihenfolge geladen werden, wird
+ von der Sprachdatei festgelegt (\LoadChapters).
+ Das Literaturverzeichnis ist wirklich linksbündig.
+ Unterschiedliche Sprachen können unterschiedliche BibTeX Stile
+ verwenden.
+ HINWEIS: Ich erinnere daran, dass english/scrguide2.tex mit
+ scrguide2.tex identisch ist!
+
+2001-11-26 Jens-Uwe Morawski <morawski@gmx.net>
+ * layout.tex:
+ Macro- und Environment-Definitionen entfernt;
+ sprachunabhängige Teile nun in scrguide2.tex;
+ sprachabhängige Teile werden in entsprechender
+ Hauptdatei deklariert; für layout.tex ebenfalls
+ in scrguide2.tex
+ \phantomsection für page:-Label eingefügt
+ damit hyperref-\pageref-Links auch auf diese
+ Seite zeigen; Abschlußbeispiel hinzugefügt
+ von Markus vorgeschlagene Korrekturen bis
+ auf einen Vorschlag umgesetzt
+ * headfoot.tex:
+ removed macro and environment declarations;
+ language independent declarations are moved
+ to scrguide2.tex; language dependent declarations
+ are in main.tex
+ added \phantomsection for page:-labels, thus
+ hyperref-\pageref-links point to this page
+ final example added
+ * addressf.tex:
+ fixed two small bugs (it's -> its);
+
+ * main.tex:
+ extended with english sample-texts and
+ required macros for use in headfoot.tex
+
+2001-11-24 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Zwei Tippfehler behoben.
+ * scrclass.dtx (v2.8q):
+ Bei Verwendung der captionbeside-Umgebung darf \label nun
+ tatsächlich hinter der Umgebung stehen.
+
+2001-11-23 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2.cls (v2.8q):
+ \KOMAoptions{parskip=...} kann innerhalb des Dokuments verwendet
+ werden. Ebenso kann es als Umgebung eingesetzt werden.
+
+2001-11-22 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Beispiel für \setcapwidth ergänzt.
+ Beschreibung für die captionbeside-Umgebung.
+ * scrclass.dtx (v2.8q):
+ Neues Makro \ifthispageodd{<true-Zweig>}{<false-Zweig>}:
+ Durch eine Art Label-Mechanismus wird beim übernächsten
+ LaTeX-Lauf garantiert korrekt entscheidet, ob der
+ <true-Zweig> oder der <false-Zweig> auszuführen ist.
+ Demgegenüber entscheidet \ifodd\value{page} innerhalb
+ des ersten Absatzes einer Seite oder innerhalb von
+ Gleitumgebungen sehr oft falsch.
+ \setcapwidth[o] und \setcapwidth[i] sowie \setcapmargin*
+ funktionieren nun korrekt.
+ Neue Umgebungen:
+ \begin{captionbeside}[<Verzeichniseintrag>]
+ {<Beschreibung>}[<Beschreibungsort>]
+ [<Breite>][<Verschiebung>]
+ \begin{captionbeside}[<Verzeichniseintrag>]
+ {<Beschreibung>}[<Beschreibungsort>]
+ [<Breite>][<Verschiebung>]*
+ Es wird ein
+ \caption[<Verzeichniseintrag>]{<Beschreibung>}
+ neben dem Inhalt der Umgebung ausgegeben. Daher die die
+ Umgebung nur innerhalb von Gleitumgebungen verwendet
+ werden.
+ <Beschreibungsort> kann sein:
+ l = links neben dem Inhalt der Umgebung
+ r = rechts neben dem Inhalt der Umgebung (default)
+ <Breite> ist die Breite von Umgebungsinhalt und
+ Beschreibung. Voreingestellt ist \linewidth.
+ <Verschiebung> ist eine horizontale Verschiebung für
+ Umgebungsinhalt und Beschreibung. Voreingestellt
+ ist Zentrierung.
+ In der Version mit Stern am Ende wird die <Verschiebung>
+ im doppelseitigen Satz auf linken Seiten so umgerechnet
+ das ein gespiegelter Rand entsteht. Die Beschreibung wird
+ fussbündig zum Inhalt der Umgebung gesetzt.
+
+2001-11-21 Jens-Uwe Morawski <morawski@gmx.net>
+ * layout.tex:
+ - neue Befehle und Umgebungen für die
+ Übersichtlichkeit der Beispiele
+ - Index-Korrektur bei \pagemark
+ - Index-Korrektur bei \setfootsepline
+ - Anpassung der Label
+ - !!! End-Beispiel fehlt noch !!!
+ * headfoot.tex:
+ - initial translation, including all
+ changes of the current german version
+ - !!! final example and translations
+ of example-texts missing !!!
+ * adressen.tex:
+ - Änderung der Grußformel, da die englische
+ keinen Sinn machte
+ - Labels angepaßt
+ * addressf.tex:
+ - changed closing in example, since the former
+ closing-text had a unsuitable meaning in the
+ english version
+
+2001-11-20 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Die Optionen und Makros vom 2001-11-17 dokumentiert.
+ * scrclass.dtx (v2.8q):
+ \setcapmargin bewirkt noonelinecaption.
+
+2001-11-18 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q):
+ Bei longtable wird \LTcapwidth ignoriert. Stattdessen findet
+ die mit \setcapwidth bzw. \setcapmargin getroffene
+ Einstellung Anwendung. Außerdem funktionieren \captionabove
+ und \captionbelow nun auch in longtable Tabellen. Dabei wird
+ auch die Option tablecaptionabove beachtet.
+ BTW: longtable hat einen Bug. Bei links- oder rechtsbündig
+ gesetzten Tabellen ragt der caption-Text in den jeweiligen
+ Rand. Ursache ist \LTleft=\z@ und \LTright=\fill bzw.
+ umgekehrt in Verbindung mit \hss innerhalb von
+ \LT@makecaption. Ich denke nicht, dass der Bug einfach zu
+ beheben ist. KOMA-Script beseitigt diesen Bug auch nicht.
+
+2001-11-17 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q):
+ Kompatibilität mit caption2 weiter erhöht. Dazu werden einige
+ KOMA-Script-Makros umdefiniert, sobald caption2 geladen ist.
+ Neue Optionen:
+ onelinecaption - Voreinstellung wie bisher
+ noonelinecaption - entspricht Option "nooneline" von
+ caption2
+ Neue Makros:
+ \setcapwidth[<pos>]{<Breite>} - siehe scrclass.dtx
+ \setcapmargin[<links>]{<rechts>} - siehe scrclass.dtx
+ \setcapmargin*[<links>]{<rechts>} - siehe scrclass.dtx
+ * scrclass.ins:
+ scrlfile.sty wird erzeugt.
+ * scrclass.dtx, scrlfile.sty (v2.8q):
+ Erste Implementierung. Es mag seltsam sein, dass die erste
+ Implementierung die Version v2.8q ist. Aber da das Paket
+ eigentlich Bestandteil der Klassen ist und nur deshalb
+ ausgelagert wurde, weil es auch getrennt davon verwendet
+ werden kann, bekommt es dieselbe Versionsnummer wie die
+ Klassen. Optimal wäre, wenn dieses Paket Bestandteil von
+ LaTeX werden würde.
+
+2001-11-16 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Die neuen Optionen tocleft, tocindent, listsleft und listsindent
+ dokumentiert.
+ Die neue Schriftumschaltung für Fußnoten und Fußnotenmarken
+ dokumentiert.
+ secnumdepth dokumentiert.
+ Ein paar informative Ergänzungn.
+ * scrclass.dtx (v2.8q):
+ Schriftumschaltung für Fußnoten und Fußnotenmarken.
+
+2001-11-15 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q):
+ Ein 0\p@ durch \z@ ersetzt.
+ Die Anzahl der Info-Einträge bei scrlttr2.cls reduziert.
+
+2001-11-14 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q):
+ Neue Optionen:
+ tocleft - Das Inhaltsverzeichnis wird nicht stufig, sondern
+ linksbündig dargestellt. Dabei stehen alle
+ Gliederungsnummern linksbündig untereinander und
+ alle Überschriften beginnen in einer Fluchtlinie.
+ Es entsteht ein Tabelleneindruck. Der Platz, der
+ für die Gliederungsnummern benötigt wird, wird
+ automatisch ermittelt. Eine korrekte Darstellung
+ wird nach max. 3 LaTeX Durchläufen erreicht.
+ tocindent - Inhaltsverzeichnis wie bisher (default)
+ listsleft - Die Listenverzeichnisse sind linksbündig. Der
+ Platz, der für die Nummern benötigt wird, wird
+ automatisch ermittelt.
+ listsindent - Listenverzeichnisse mit festem Wert für die
+ Breite der Nummer wie bisher (default)
+ Aufgrund der verwendeten Implementierung sollte das ganze auch
+ mit float.sty Listen funktionieren und außerdem sehr robust
+ gegen Änderungen der betroffenen Makros sein. Es funktioniert
+ allerdings nur bei Verzeichnissen, die mit \@dottedtocline
+ bzw. mit Hilfe von \numberline erstellt werden.
+
+2001-11-13 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q):
+ Tokenoptimierung (XXXpt --> XXX\p@, 0pt --> \z@, plus --> \@plus,
+ minus \@minus).
+ * scrguide2.tex:
+ Wenn keine pdf-Ausgabe verlangt ist, wird explizit "hypertex"
+ als hyperref-Option angegeben, damit nicht automatisch "dvips"
+ verwendet wird (wenn jemand doch dvips will, sollte er auch
+ die Option "linktocpage" verwenden).
+ * scrclass.dtx (v2.8q):
+ \setlength{\parskip}{\z@} an vielen Stellen durch
+ \@parskipfalse\@parskip@indent ersetzt.
+ * scrclass.dtx, typearea.sty (v2.8q):
+ \ifpdfoutput funktioniert wieder.
+
+2001-11-08 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2.cls (v2.8q):
+ Komplett neue Schnittstelle für die Sprachumschaltung. Dadurch
+ kann der Benutzer nun mit Hilfe folgender Makros bereits in der
+ Präambel Begriffe für einzelne Sprachen definieren:
+ \newcaptionname{<Sprache>}{<Name-Makro>}{<Definition>}
+ \renewcaptionname...
+ \providecaptionname...
+ definiert das <Name-Makro> für die Sprache <Sprache>.
+ \new... definiert ein neues Makro - auch, wenn die Sprache
+ zuvor nicht existiert hat. Existiert das Makro bereits
+ wird ein Fehler ausgegeben.
+ \renew... definiert ein vorhandenes Makro erneut.
+ Existiert Sprache oder Makro noch nicht, wird ein Fehler
+ ausgegeben.
+ \provide... definiert ein noch nicht vorhandenes Makro.
+ Existiert Sprache nicht oder Makro bereits wird eine
+ Information in die log-Datei geschrieben.
+ Die Option "numericaldate" funktioniert nun auch im Dokument.
+ \KOMAoptions ist auch innerhalb des Dokuments erlaubt.
+
+2001-11-06 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrlttr2.cls (v2.8q):
+ Option parskip funktioniert nun auch per \KOMAoptions.
+ * scrclass.dtx, typearea.sty (v2.8q):
+ Die Optionen DIVcalc und DIVclassic lassen die Finger von der
+ DIV-Liste, so dass der symbolische Wert "default" bei \typearea
+ später auch noch funktioniert - wenn ein entsprechender Wert
+ definiert ist.
+ \typearea kennt außerdem den symbolischen Wert "last", der im
+ Gegensatz zu "current" nicht der aktuelle DIV-Wert ist, sondern
+ der Wert, mit dem \typearea zuletzt aufgerufen
+ wurde. Unterschiede können sich ergeben nach einem Aufruf mit
+ "calc", "classic" oder "default".
+ Intern wird nun ebenfalls \typearea[current]{current} für die
+ Initialisierung verwendet, statt \typearea[\ta@bcor]{\ta@div}.
+ * scrclass.dtx, scrlttr2.cls (v2.8q):
+ \AfterProcessOptions wird nicht mehr bei jedem Aufruf der
+ Optionen "headsepline" und "footsepline", sondern nur noch
+ jeweils einmal insgesamt ausgeführt.
+ titlepage-Material, das nie verwendet wurde, entfernt.
+ Die Optionen "BCOR" und "headlines" verwenden jetzt
+ \typearea[...]{last} statt \typearea[...]{current} beim Aufruf
+ per \KOMAoptions.
+ Die Option "paper" funktioniert jetzt auch nach dem Laden von
+ typearea und sorgt nicht nur für eine Fehlermeldung.
+ * scrclass.dtx (v2.8q):
+ \cleardoublestandardpage in der Option "cleardoublestandard"
+ bzw. "cleardoublepage" korrigiert.
+
+2001-11-01 Markus Kohm <Markus.Kohm@gmx.de>
+ * addrconv.tex, addressf.tex, datetime.tex, headfoot.tex,
+ introduc.tex, letter.tex, maincls.tex, pglayout.tex:
+ Comments changed.
+
+2001-10-31 Markus Kohm <Markus.Kohm@gmx.de>
+ * komascr.ins, scrclass.ins, scrpage.ins, scrtime.ins:
+ \askonceonly, falls docstrip es bietet. Dadurch finden bei der
+ Installation ggf. weniger Nachfragen statt.
+
+2001-10-30 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q, nur Briefklasse):
+ Klassenoption "footsepline" funktioniert nun ("{#1}"
+ fehlte). Die Option setzt derzeit aber nur einen Schalter, der
+ intern nicht ausgewertet wird!
+ Klassenoption "twoside" funktioniert nun ("{#1}" fehlte) ohne
+ Warnung.
+ Klassenoption "enlargefirstpage" funktioniert nun ("{#1}"
+ fehlte).
+ Klassenoption "cleardoublepage" beachtet nun auch die Werte
+ "plain" und "standard". Die Option hat derzeit aber nicht viel
+ Sinn.
+ Klassenoption "numericaldate" funktioniert nun korrekt (nicht
+ mehr invers zur Bedeutung).
+ Warnungen über zu hohes Anschriftfeld bzw. zu hohe
+ Rücksendeadresse sollte nur noch einmal ausgegeben werden.
+ Warnung über zu hohe Rücksendeadresse sollte nur noch ausgegeben
+ werden, wenn tatsächlich zuvor eine overfull \vbox gemeldet
+ wurde.
+ Für den Kopf und den Fuß der ersten Seite wird \parfillskip
+ lokal auf 0 gesetzt.
+ Bei Warnungen über zu hohe Inhalte der Elemente der ersten
+ Seite, wird nun nicht mehr der zu hohe Wert, sondern der Name
+ des zu hohen Wertes ausgegeben. Außerdem wird angegeben, um
+ wieviel die entsprechende Box zu hoch ist.
+ Hinweis: Die Verwendung der Optionen per \KOMAoptions führt noch
+ nicht bei jeder Option zu einer sinnvollen Reaktion.
+
+2001-10-19 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q):
+ Einige Teile wurden zeitweilig in die falschen Klassen
+ generiert.
+ Die mit Carsten besprochene Änderung an \ifpdfoutput
+ vorgenommen. Dadurch wird \pfdoutput jetzt nicht mehr
+ \relax falls es undefiniert war. Außerdem darf ein
+ anderes Paket \ifpdfoutput vor typearea.sty definieren
+ und dem Befehl sogar eine andere Bedeutung geben.
+
+2001-10-19 Jens-Uwe Morawski <morawski@gmx.net>
+ * addressf.tex:
+ adressen.tex --> addressf.tex
+ adressen_en.tex --> addressf.tex
+ * main.tex:
+ \Opt: optional parameter has to be an obligatory one
+ at case 3rd.
+
+2001-10-19 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrlettr.dtx (v2.6d):
+ \subjectafteron funktioniert nun. Die Aktivierung führte
+ seit ewigen Zeiten zu einer Fehlermeldung. Da das
+ Feature auf expliziten Anwenderwunsch eingebaut wurde,
+ wundert der Umstand, dass der Bug nie gemeldet wurde,
+ doch sehr. Ich sollte mit der Implementierung von
+ Anwenderwünschen zukünftig wohl sparsamer umgehen.
+ * scrclass.dtx (v2.8q, nur Briefklasse):
+ Einige Fehlermeldungen korrigiert.
+ Option "subject=afteropening" funktioniert.
+
+2001-10-18 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q, nur Briefklasse):
+ Die Optionenwerte können nun tatächlich per
+ \documentclass gesetzt werden. Das ging vorher schief.
+ Die Optionen DIV, BCOR und headlines werden nach dem
+ Laden von typearea so geändert, dass sie keine Optionen
+ mehr an typearea schicken, sondern \typearea aufrufen.
+ * scrclass.dtx (v2.8q):
+ \z@ in \@z korrigiert (oder umgekehrt).
+
+2001-10-17 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q, nur Briefklasse):
+ Alle von Carsten und Torsten gemeldeten Fehler behoben.
+ Bei \KOMAoptions verhalten sich die Optionen fontsize
+ und paper anders als bei \documentclass (soweit
+ \KOMAoptions nach dem Laden der sizeX.clo-Datei bzw.
+ nach dem Laden von typearea aufgerufen wird, was
+ immer der Fall sein dürfte). Es wird dann ggf. eine
+ Warnung bzw. ein Fehler ausgegeben.
+
+2001-10-16 Markus Kohm <Markus.Kohm@gmx.de>
+ * layout.tex:
+ Verbesserungsvorschlag aus de.comp.text.tex eingefügt.
+
+2001-10-15 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q nur Briefklasse):
+ Alle von Torsten gemeldeten Fehler behoben.
+
+2001-10-14 Markus Kohm <Markus.Kohm@gmx.de>
+ * filestate.html:
+ names inserted and states updated
+ * maincls.tex:
+ only a dummy
+ * letter.tex:
+ only a dummy
+ * introduc.tex:
+ don't no any change
+ * headfoot.tex:
+ only a dummy
+ * datetime.tex:
+ only a dummy
+
+ * addressf.tex:
+ New translation from Jens with "Telephon" --> "Telephone"
+ and use of \Ord instead of math-hack from Markus.
+ * addrconv.tex:
+ only a dummy
+ * main.tex:
+ Names for all the chapter-files inserted.
+ New command \Ord{<Number to be an ordinal>} inserted. See
+ "addressf.tex" for usage.
+ * pglayout.tex:
+ "\eg{}" --> "e.g."
+
+2001-10-12 Markus Kohm <Markus.Kohm@gmx.de>
+ * satzspgl.tex:
+ Wichtige Ergänzung zu Paketoptionen bei Verwendung einer
+ KOMA-Script Klasse.
+
+2001-10-09 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.ins
+ In der Beta-Version werden neben der neuen Briefklasse auch die
+ neuen Letter-Class-Option-Dateien ausgepackt.
+ Anpassung an die neuen Schlüssel (class, package, lco).
+ * scrclass.dtx (v2.8q):
+ Die Briefklasse ist nochmal komplett überarbeitet und verwendet
+ jetzt das keyval-Paket. Dafür wurden diverse Kompatibilitäten
+ über Bord geworfen. Alle scrlettr-Befehle und Umgebungen werden
+ zwar noch unterstützt, die alten Längen jedoch nicht mehr.
+ Für alle Neuerungen bitte die Implementierungsdoku konsultieren.
+ Es wurde versucht, alle neuen Befehle auch einem Datum
+ zuzuordnen.
+ Außerdem sind nun hoffentlich alle Makros, Umgebungen, Optionen,
+ Längen und Zähler in \begin{...}...\end{...} eingeschlossen und
+ so im Index aufgeführt.
+ * scrlettr.dtx (v2.6c unvollendet):
+ Die Klasse gibt am Anfang eine übertriebene OBSOLET-Warnung aus.
+ Die Dokumentation aus brief.tex wurde in diese Datei integriert.
+ TODO: Alle Teile, die nicht unmittelbar scrlettr.cls sind, in ein
+ neues dtx verschieben.
+ Implementierungsdoku von scrlettr.cls komplett entfernen
+ (hauptsächlich aus Platzgründen, stattdessen gibt es dann
+ nur noch einen Verweis auf scrclass.dtx).
+
+2001-10-05 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide/datmzeit.tex:
+ Kroatisch dokumentiert.
+ Möglichkeit, die Namen der Wochentage kleingeschrieben zu
+ erhalten, dokumentiert.
+
+2001-10-05 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q), nur die Briefklasse:
+ Kroatisch wird nun ebenfalls unterstützt.
+ * scrtime.dtx (v1.1l):
+ Kroatisch wird nun ebenfalls unterstützt.
+
+2001-10-05 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide.bib:
+ package:ragged2e neu aufgenommen.
+ * hauptcls.tex:
+ Änderungen in scrclass.dtx Version 2.8q dokumentiert.
+ * layout.tex:
+ Änderungen und Korrekturen, wie von Jens erhalten.
+ Zusätzlich einen Zeilenumbruch und einen Seitenumbruch
+ verbessert.
+
+2001-10-04 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8q):
+ \dictum und die zugehörigen Makros definiert.
+
+2001-10-01 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Änderungen im Zuge von \setkomafont, \addtokomafont und
+ \usekomafont abgeschlossen.
+ Änderungen von \setchapterpreamble und \setpartpreamble
+ dokumentiert. Ein Beispiel ist im Zuge der noch zu
+ implementierenden epigraph-Geschichte nachzuholen.
+
+2001-09-30 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage.dtx (v2.0l):
+ Kopf und Fuß mit geänderter Breite sollten nun auch im
+ einseitigen Satz korrekt funktionieren.
+ * scrclass.dtx (v2.8p):
+ \usekomafont
+
+2001-09-27 Markus Kohm <Markus.Kohm@gmx.de>
+ * pglayout.tex:
+ Neuste Version von Colin.
+ * scrclass.dtx (v2.8p):
+ \setchapterpreamble und \setpartpreamble erweitert. Beide
+ verstehen jetzt jeweils ein optionales Argument für die Position
+ der Präambel und ein zweites optionales Argument für die Breite
+ der Präambel.
+ Part-Überschriften werden nun immer mit \parskip=0 gesetzt.
+ * brief.tex, hauptcls.tex:
+ Tippfehler und Indexfehler korrigiert.
+
+2001-09-23 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Änderung des Font-Änderungskonzeptes (Verwendung von \setkomafont
+ und \addtokomafont an Stelle von \renewcommand) dokumentiert.
+ * scrguide.tex:
+ \BeginIndex und \EndIndex haben nun wie \Index ein optionales
+ Argument. Aus Kompatibilitätsgründen ist aber indexit statt
+ indexrm voreinsgestellt.
+ * scrclass.dtx (v2.8p):
+ \setkomafont/\addtokomafont-Konzept geändert und ausgebaut.
+
+2001-09-21 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide.gst:
+ Neue MakeIndex-Stil-Datei, um die Änderungsliste zu erzeugen.
+ * Makefile.unx:
+ Erzeugung des Änderungsverzeichnisses hinzugefügt.
+ * scrguide2.tex:
+ Änderungsverzeichnis hinzugefügt.
+ * hauptcls.tex:
+ Zeilenumbruch korrigiert.
+ * layout.tex:
+ Einen Tippfehler korrigiert.
+ Zusätzliche Erklärung zum Seitenstil scrheadings und der
+ Paketoption automark eingefügt (aufgrund von Supportanfragen).
+
+2001-09-19 Markus Kohm <Markus.Kohm@gmx.de>
+ * datmzeit.tex:
+ Umlaute geändert, Leerzeichen nach der Fußnote korrigiert,
+ "dass".
+ * hauptcls.tex:
+ \chapappifchapterprefix.
+ * scrguide.bib:
+ Verwendet nur noch US-ASCII und benötigt deshalb kein BibTeX8
+ mehr.
+
+2001-09-19 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8o) - scrbook.cls, scrreprt.cls:
+ Da \chapappifprefix ein optionales Argument hat, wird es nicht
+ expandiert, sondern ist geschützt definiert. Das führt dazu, dass
+ in \botmark (also in \leftmark) ein nicht expandiertes \chapapp
+ steht. Dies wiederum führt bei \appendix dazu, dass in der
+ Kopfzeile des letzten Kapitels u. U. \appendixname statt
+ \chaptername verwendet wird. Außerdem kann deshalb beispieslweise
+ \chaptermarkformat nicht so einfach umdefiniert werden, sondern
+ erfordert meist ein \DeclareRobustCommand.
+ Da ich nicht einfach bei einem existierenden Makro aus einem
+ optionales ein obligatorisch Argument machen kann, gibt
+ \chapappifprefix neuerdings eine Warnung aus, funktioniert aber
+ weiter.
+ Außerdem habe ich aber \chapappifchapterprefix mit einem
+ obligatorischen Argument definiert. Damit treten obige Probleme
+ nicht auf.
+ HINWEIS: IM SCRGUIDE IST ZUKÜNFTIG NUR NOCH DAS NEUE MAKRO ZU
+ DOKUMENTIEREN!!! Das alte Makro ist obsolet.
+
+2001-09-18 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8o):
+ Tippfehler (parskip, halfpaskip) in der Implementierungsdoku
+ behoben.
+ Zur Erhöhung der Seitenumbruchskompatibilität mit der alten
+ Briefklasse die Optionen "firstpageenlarge" und
+ "nofirstpageenlarge" implementiert. Bei "KOMAold" wird
+ automatisch "firstpageenlarge" aktiviert. Die Option bewirkt,
+ dass der Satzspiegel der ersten Seite vertikal vergößert wird,
+ wenn die Position des Fußes dies erlaubt.
+ Bei der Variante "KOMAold" wurde der Fuß zur Erhöhung der
+ Kompatibilität mit der alten Briefklasse weiter nach unten
+ verschoben.
+
+2001-09-17 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8o):
+ Einen Tippfehler (\renewommand) korrigiert und sowohl
+ \chapterheadstartvskip als auch \chapterheadendvskip leer
+ vordefiniert, damit die Optionen \renewcommand verwenden können.
+ * scrclass.dtx (v2.8o) alle Klassen:
+ Viele \def durch \(re)newcommand ersetzt oder ergänzt. Dadurch
+ nun besser LaTeX-konform als die Standardklassen.
+ * scrclass.dtx (v2.8o) nur die Briefklasse:
+ Einzug am Anfang des location-Feldes abgeschaltet.
+ Standardbriefkopf für DINmoretext so geändert, dass er ohne
+ overfull \vbox Meldung passt.
+ Führt das Setzen von Kopf der ersten Seite, Adresse oder location
+ Feld zu einer overfull \vbox Meldung, so wird anschließend eine
+ Warnung ausgegeben, der zu entnehmen ist, welches Feld
+ verantwortlich war und was getan werden kann. Früher wurde nur
+ die Meldung mit der Zeilennummer der \opening-Zeile ausgegeben,
+ so dass man raten musste, welches Element verantwortlich ist.
+ Das location-Feld kann nun ebenfalls eine overfull \vbox melden.
+
+2001-09-14 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8o) nur die Briefklasse:
+ Korrektur der Erzeugung der Geschäftszeile. Dazu wurden außerdem
+ \varrefitemnamei etc. durch \refiteminame etc. ersetzt. Dies ist
+ eine Inkompatibilität zu scrlettr.cls. Da jedoch Befehle zur
+ Definition existieren, die nicht umbenannt wurden, sollte sich
+ die Inkompatibilität extrem selten auswirken. Eigentlich sollte
+ ich interne Variablen definieren.
+
+2001-09-14 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8o):
+ Neuer Befehle \setkomafont{<elementname>}{<fontauswahlbefehle>}.
+ Beispielsweise entspricht \setkomafont{captionlabel}{\normalfont}
+ der Anweisung \renewcommand{\caplabelfont}{\normalfont}. Die
+ möglichen Werte von <elementname> sind durch die Makros
+ \scr@fnt@<elementname> vorgegeben. Siehe dazu scrclass.dtx.
+ Bei <elementname>=chapter, section o. ä. gibt es eine Warnung,
+ dass andere Elemente mit geändert werden.
+
+2001-09-11 Markus Kohm <Markus.Kohm@gmx.de>
+ * Makefile.unx:
+ Vorsichtshalber wird bei "make" nun auch die
+ Implementierungsdoku erzeugt. Dadurch werden Checksum-Fehler
+ offenbar, die durch fehlerhaften Download entstehen.
+ Innerhalb des make-Prozesses werden LaTeX und pdfLaTeX nun nicht
+ mehr im interaktiven Modus, sondern immer im nonstopmode oder im
+ batchmode aufgerufen. Dabei erfolgt der erste Aufruf
+ normalerweise im nonstopmode, damit Fehler direkt auf ausgegeben
+ werden und nicht erst das Log-File konsultiert werden muss. Alle
+ weiteren Läufe für die gleiche Datei erfolgen normalerweise im
+ batchmode. Wenn Fehler auch erst durch den Aufruf von BibTeX
+ oder MakeIndex entstehen können, erfolgen auch die
+ (pdf)LaTeX-Aufrufe danach im nonstopmode.
+ * scrclass.dtx (v2.8n):
+ Einige Teile landeten versehentlich in der Brief-Klasse statt in
+ den normalen Klassen, weshalb die normalen Klassen nicht mehr
+ funktioniert haben.
+
+2001-09-09 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8n) nur die Brief-Klasse:
+ Die neuen Optionen nochmal umbenannt und KOMAold hinzugefügt.
+ KOMAold ist nun die Standardeinstellung. Dabei wird weitgehend
+ das Layout der alten scrlettr-Klasse übernommen. Vollkommene
+ Übereinstimmung wird jedoch nicht erreicht. Briefstil-Optionen
+ sind nun:
+ DIN - entspricht den Vorgaben der DIN
+ DINmoretext - entspricht der alternativen nach DIN
+ swisssleft - für schweizer Fensterumschläge mit Fenster links
+ SNold - nach alter schweizer Norm (nicht implementiert)
+ SN - nach neuer schweizer Norm (nicht implementiert)
+ KOMAold - entspricht der alten scrlettr-Klasse
+ Darüber hinaus ist das Ändern der Längen mit \setlength{...} nun
+ obsolet. Stattdessen gibt es die Befehle:
+ \setletterpos[Faktor]{Brieflänge}{Wert}
+ \addletterpos[Faktor]{Brieflänge}{wert}
+ mit
+ Brieflänge - Name einer Längenvariablen aus der letter-Umgebung
+ Wert - Nummerischer Wert oder der Name einer Länge
+ Faktor - Faktor, mit dem der Wert zu multipizieren ist.
+ Beispiele sind in scrclass.dtx zu finden. Die Wertänderung
+ erfolgt sofort und erneut bei jedem Aufruf von
+ \begin{letter}. Direkte Änderungen der Längen werden erkannt und
+ von den relativen Positionsangaben der alten scrlettr-Klasse
+ möglichst genau in die neuen absoluten Positionsangaben
+ umgerechnet. Dadurch wird größt mögliche Kompatibilität zur
+ alten Klasse erreicht. Durch gleichzeitige Warnung, wird auf die
+ neuen Methoden aufmerksam gemacht.
+
+2001-09-08 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.ins:
+ In der BETA-VERSION wird auch scrlttr2.cls ausgepackt.
+ * scrclass.dtx (v2.8n):
+ Enthält nun ebenfalls scrlettr.cls bzw. scrlttr2.cls. Diese
+ Klasse ist als grundlegend überarbeitete Version der bisherigen
+ scrlettr Klasse gedacht. Hauptvorteil der Klasse ist, dass sie
+ wesentlich weniger empfindlich auf Satzspiegeländerungen
+ reagiert. Sie funktioniert daher auch mit typearea und nutzt
+ selbst typearea. Die erste Seite wurde dazu komplett neu
+ gestaltet. Alle dafür benötigten Abstände sind nun relativ zur
+ oberen linken Ecke des Papiers nicht mehr zum Textbeginn (der
+ zudem von der Schriftgrößen abhängig war). Die Seitengestaltung
+ ist nun auch etwas mehr DIN-konform. Außerdem gibt es eine Reihe
+ neuer Optionen:
+ refnormal - Geschäftszeile ist so breit wie der Textbereich
+ refwide - Geschäftszeile ist so breit wie die Adresse
+ suggeriert
+ dinnormal - Kopf- und Faltmarkenanordnung nach der alten DIN
+ dinmoretext - Kopf- und Faltmarkenanordnung für mehr Text
+ Die parskip-Optionen (einschließlich parindent) funktionieren
+ ebenfalls.
+ Die gesamte Klasse ist EXPERIMENTELL!
+
+2001-09-06 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrlettr.dtx:
+ addrconv.tex, email.tex etc. funktionieren nun auch in der
+ BETA-VERSION (\message eingefügt).
+ * scrclass.dtx (v2.8n):
+ Ein wenig umstrukturiert (Schalter werden nun möglichst in der
+ Nähe ihrer Verwendung definiert).
+ Es wird tatsächlich explizit immer die aktuelle Version von
+ typearea von den Klassen angefordert. Die Verwendung einer
+ älteren Version führt also zu einer Warnung.
+
+2001-09-04 Markus Kohm <Markus.Kohm@gmx.de>
+ * Makefile.unx:
+ $(SRC_FILES) definiert.
+ * scrclass.dtx (v2.8m):
+ Der Aufruf von \AtBeginDvi wird nun durch \AtBeginDocument
+ verzögert, damit das special nicht sofort expandiert. Dies ist
+ notwendig, weil \AtBeginDvi sofort expandiert - im Gegensatz zu
+ den anderen Hooks.
+
+2001-08-20 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+2001-08-20 Markus Kohm <Markus.Kohm@gmx.de>
+ * Makefile.unx:
+ "make all" erzeugt nun keine Guides mehr. Dadurch funktioniert
+ die Installation beim Benutzer besser.
+ "make install" installiert nun auch die Sourcen von KOMA-Script.
+ "make install" funktioniert nun auch, wenn es aus einen
+ Zielverzeichnis kopiert wird - außer das Zielverzeichnis ist
+ /tmp/koma-script.tmp
+
+2001-08-18 Markus Kohm <Markus.Kohm@gmx.de>
+ * layout.tex:
+ Die Änderungen von scrpage2.sty Version 2.0j eingearbeitet.
+ * scrpage.dtx (2.0j):
+ Neue Option "nouppercase", um in allen von scrpage2 definierten
+ Seitenstilen (also auch scrheadings und scrplain) \MakeUppercase
+ und \uppercase zu deaktivieren.
+ Neue Makros:
+ \clearscrheading - löscht alle Felder in scrheadings
+ \clearscrplain - löscht alle Felder in scrplain
+ \clearscrheadfoot - löscht alle Felder in scrheadings und
+ scrplain
+2001-08-17 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide.bib:
+ package:caption2 hinzugefügt.
+ * hauptcls.tex:
+ Option origlongtable dokumentiert.
+ * scrguide:
+ Kommentarfehler in allen Dateien behoben (Copryrightnotiz).
+ * scrclass.dtx:
+ Fehler in \@setcapindent behoben. Es wurde dort \def statt \edef
+ verwendet. Dadurch wurde \@tempdima zum Zeitpunkt \@@makecaption
+ statt zum Zeitpunkt der Definition verwendet.
+ * komabug.tex
+ Es wird nicht länger nach scrguide.tex, sondern nach
+ scrguide2.tex gesucht.
+ * INSTALL.TXT, INSTALLD.TXT:
+ Die Dateien von addrconv waren nicht aufgeführt. Außerdem wird
+ nun zwischen adrconv und addrconv unterschieden.
+ * scrclass.dtx:
+ \addpart-Fehler (Eintrag ins Inhaltsverzeichnis zu spät) behoben.
+ * layout.tex:
+ Beschreibung von \automark korrigiert und erweitert.
+ Neue Option dokumentiert.
+ * scrpage.dtx:
+ \automark weiter verbessert. Nun funktionierten auch Anweisungen
+ wie \automark[chapter]{section} nicht allein
+ \automark[section}{chapter}. \automark{chapter} ist nun identisch
+ mit \automark[]{chapter} statt mit \automark[chapter]{chapter}.
+ Es gibt eine neue Option autooneside. Ist sie gesetzt wird im
+ einseitigen Satz das optionale Argument von \automark ignoriert.
+
+2001-08-16 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Die neuen Optionen dokumentiert.
+ * scrclass.dtx:
+ Neue Optionen parskip- und halfparskip-.
+ parskip-Optionen beeinflussen nicht mehr den Abstand der Einträge
+ in Inhalts-, Abbildungs- und Tabellenverzeichnis. Dies
+ Verzeichnisse von float.sty bleiben davon unberührt.
+ * scrguide2.tex:
+ introduc.tex wird in der englischen Version mit eingebunden.
+ * english/introduc.tex:
+ Neu: Übersetzung der Einleitung (leicht gekürzt und angepasst).
+ Das muss noch dringend korrigiert werden. Das Englisch darin ist
+ an einigen Stellen mehr als fragwürdig.
+ * english/main.tex:
+ Fehlende Ausdrücke und Übersetzungen eingefügt.
+
+2001-08-15 Markus Kohm <Markus.Kohm@gmx.de>
+ * Makefile.unx:
+ "../" in TEXINPUTS aufgenommen, damit die neu erzeugten Klassen
+ und Pakete sofort für die Erzeugung der guides gefunden werden.
+ Neue Regeln, um zwei A5 Seiten auf jeweils eine A4 Seite zu
+ setzen und zwei Methoden für booklets.
+ Orthografische Fehler beseitigt.
+ default-Regel leicht geändert.
+
+2001-08-15 Markus Kohm <Markus.Kohm@gmx.de>
+ * satzspgl.tex:
+ "Abschnitt~\ref{cha:scrpage}" durch "Kapitel~\ref{cha:scrpage}"
+ ersetzt.
+ "\Var{halber innerer Rand}" durch "\Var{halber~innerer~Rand}"
+ ersetzt.
+ setspace-Referenz korrigiert.
+
+ * layout.tex:
+ Der symbolische Wert ist "paper" nicht page.
+
+ * scrguide2.tex:
+ Autorenliste auf der Titelseite vervollständigt.
+ \Macro, \Option, \Environment, \Length und \Counter erlauben
+ keinen Umbruch mehr.
+ * hauptcls.tex:
+ Die Optionen für Absatzabstand heißen korrekt "...parskip".
+
+2001-08-15 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8k):
+ Neue Option "origlongtable", um die Änderung von \LT@makecaption
+ zu unterbinden. Dies passiert automatisch, wenn caption2 geladen
+ ist.
+ Die Optionen tablecaptionabove und tablecaptionbelow sind nicht
+ mehr fälschlich in typerarea, sondern in den Klassen.
+
+2001-08-14 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+2001-08-13 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2.tex:
+ Abbildungsverzeichnis rausgeworfen, da es nicht sonderlich
+ informativ ist. Tabellenverzeichnis dringelassen, weil es etwas
+ sinnvoller ist.
+
+2001-08-13 Thomas Neumann <th-neumann@gmx.net>
+ * einleit.tex:
+ 3 orthografische Fehler beseitigt
+ * adrkonv.tex:
+ Vorerst die final Version (mit minimalen Änderungen von Markus)
+
+2001-08-13 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide:
+ Diverse Änderungen für adrkonv.tex
+ Diverse Indexkorrekturen (unerwünschte Leerzeichen verhindert
+ etc.)
+ * adrkonv.tex:
+ Thomas Konzept.
+ * scrclass.dtx:
+ Korrekturen in example.bib und den bst-Files von Thomas.
+
+2001-08-11 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide:
+ Alle Dateien nochmal auf unerwünschte Ligaturen untersucht und
+ diverse korrgiert.
+ * brief.tex:
+ Indexeinträge mit Umlauten geändert.
+ Einen Satz gestrichen und damit alle Seitenumbruchprobleme
+ gelöst.
+ * scrguide.ist:
+ "Symbols" wird unterdrückt.
+ * scrguide2.tex:
+ Längen und Zähler werden korrekt in den Index einsortiert.
+ * Makefile.unx:
+ scrnew20 wird berücksichtigt
+ * liesmich.txt:
+ Anpassungen für den neuen scrguide,
+ Mausadresse gelöscht.
+ * readme.txt:
+ Anpassungen für den neuen scrguide,
+ Mausadresse gelöscht.
+ * scrpage.ins:
+ scrpage2 wird nun nicht mehr allein in der Beta-Version erzeugt.
+
+2001-08-10 Markus Kohm <Markus.Kohm@gmx.de>
+ * Makefile.unx:
+ Bei der Installation werden die Rechte sinnvoll gesetzt. Außerdem
+ werden die Sourcen der Guides nun in den jeweiligen
+ Unterverzeichnissen installiert. Dadurch herrscht mehr Ordnung
+
+ * adressen.tex:
+ Jens liefert ab.
+ * scrnew20.tex:
+ Entwurf
+ * Makefile.unx:
+ Die deutsche Version des scrguide heißt nun in der Distribution
+ wieder scrguide.(dvi|ps|pdf). Die Namen der Sourcen sind
+ unverändert. Dadurch kann ein Anwender nicht versehentlich das
+ Kompilat versauen. Die Regeln zum Kompilieren des scrguides
+ funktionieren nicht in der Installation, da das Unterverzeichnis
+ scrguide bzw. scrguide-english nicht existiert.
+
+2001-08-09 Markus Kohm <Markus.Kohm@gmx.de>
+ * brief.tex:
+ Neue Version von Enrico mit kleinen Korrekturen und
+ \adrchar-Erklärung von Markus.
+
+2001-08-08 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2.tex:
+ \Length{<Längenname>} analog zu \Macro{<Macroname>} definiert.
+ \LengthName definiert.
+ \IndexLength{<Längenname>} definiert (und damit auch
+ \BeginIndex{Length}{<Längenname>} und
+ \EndIndex{Length}{<Längenname>}).
+
+2001-08-07 Markus Kohm <Markus.Kohm@gmx.de>
+ * brief.tex:
+ Erste Beta-Version.
+ * scrguide.bib:
+ Kleiner Fehler beseitigt.
+ * layout.tex:
+ Kleiner Fehler beseitigt.
+ * scrclass.dtx, scrlettr.cls (2.6b), scraddr.sty (1.0a):
+ Jeweils ein kleiner Fehler beseitigt.
+
+2001-08-04 Jens-Uwe Morawski (E-Mail ist Markus Kohm bekannt)
+ * layout.tex:
+ Ein paar Fehler korrgiert und eine kleine Erklärung zu
+ \rlap und \llap ergänzt.
+
+2001-08-04 Markus Kohm <Markus.Kohm@gmx.de>
+ * komascr.ins:
+ Copyrightvermerk auf den aktuellen Stand gebracht.
+ * Makefile.unx:
+ Aufbau verbessert
+ Der alte deutschsprachige scrguide wird nicht mehr erzeugt.
+ Stattdessen wird der neue scrguide erzeugt. Die Guides werden
+ als dvi, ps und pdf erzeugt (bis auf den adrguide, der nur als
+ dvi erzeugt wird).
+ Die Regel tar wurde durch die Regel dist ersetzt. Die
+ Reihenfolge der Dateien im Archiv wurde geändert. Der Archivname
+ beinhaltet das ISO-Datum der Erzeugung.
+ Die Regel srctar wurde durch die Regel distsrc ersetzt. Der
+ Archivname beinhaltet das Datum der Erzeugung.
+ "make install" erzeugt aus einer Distribution (nicht aus einer
+ Source-Distribution, die ohnehin nicht verteilt werden darf) vor
+ der Installation alle für die Installation benötigten Dateien.
+ Es genügt damit aus der Distribution "make install" aufzurufen
+ statt wie bisher "make; make install". Aus der
+ Source-Distribution wird nach wie vor "make; make install"
+ benötigt.
+ 00CONTEN enthält nun auch sich selbst. Dafür enthält die Liste
+ nur noch Größe, Datum, Uhrzeit und Dateiname. Auf
+ Zugriffsrechte, Benutzer und Gruppe wird verzichtet.
+
+2001-08-03 Markus Kohm <Markus.Kohm@gmx.de>
+ * datmzeit.tex, hauptcls.tex, satzspgl.tex:
+ Korrekturen von Enrico eingearbeitet.
+
+2001-07-30 Markus Kohm <Markus.Kohm@gmx.de>
+ * layout.tex:
+ Besprochene Änderungen, für die Jens offenbar gerade keine Zeit
+ hat, provisorisch durchgeführt.
+ * scrguide.bib:
+ Literatur package:longtable und package:float eingefügt.
+ * scrguide2.tex:
+ \StilName und Index für float-Stile eingefügt.
+ * hauptcls.tex:
+ Änderungen von scrclass v2.8j dokumentiert. Dabei einige Stellen
+ geringfügig umgestellt.
+ * scrclass.dtx (v2.8j):
+ Kompatibilität mit longtable durch Definition von \LT@makecaption
+ erhöht.
+ Kompatibilität mit float durch Definition von \floatc@komascript,
+ \fs@komaabove und \fs@komabelow erhöht.
+ Im Zuge obiger Änderungen wurde \@@makecaption von \@makecaption
+ abgespaltet.
+ ShowOutput leicht geändert.
+
+2001-07-22 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Änderungen von v2.8i dokumentiert.
+ * scrclass.dtx (v2.8i):
+ Die Änderung von v2.8h setzte das optionale Argument von figure
+ und table außer Kraft. Das ist behoben.
+ Neue Optionen:
+ parskip - stellt auf eine Zeile Absatzabstand um mit min.
+ Freiraum in der letzten Zeile von 1 em
+ parskip+ - stellt auf eine Zeile Absatzabstand um mit min.
+ Freiraum in der letzten Teile von 1/3 Zeile
+ parskip* - stellt auf eine Zeile Absatzabstand um mit min.
+ Freiraum in der letzten Teile von 1/4 Zeile
+ halfparskip - wie parskip mit einer halben Zeile Abstand
+ halfparskip+ - wie parskip+ mit einer halben Zeile Abstand
+ halfparskip* - wie parskip* mit einer halben Zeile Abstand
+ Diese Optionen arbeiten besser als parskip.sty, da einige
+ Zusatzprobleme (Liste innerhalb von footnotesize- oder
+ small-Umgebung) ebenfalls behandelt werden. Außerdem wird
+ \parfillskip gesetzt (siehe oben). Die Dehnbarkeit von \parskip
+ ist so eingestellt, dass \flushbottom trotzdem noch ohne
+ Warnung arbeiten sollte.
+
+2001-07-19 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide.bib:
+ Referenz für topcapt.sty und hyperref ausgenommen.
+ * hauptcls.tex:
+ \caption-Erklärung geändert und dabei zusätzlich \captionabove
+ und \captionbelow erklärt.
+ * scrclass.dtx (v2.8h):
+ Neu: \captionabove setzt eine Überschrift statt einer
+ Unterschrift. Entsprechend setzt \captionbelow eine
+ Unterschrift. \caption ist bei figure identisch mit
+ \captionbelow. Bei table kann mit den Optionen
+ tablecaptionabove und tablecaptionbelow gewählt werden, ob
+ \caption mit \captionabove oder \captionbelow identisch
+ ist. Voreingstellt ist aus Kompatibilitätsgründen natürlich
+ tablecaptionbelow. Bei \captionabove ist die Bedeutung von
+ \abovecaptionskip und \belowcaptionskip vertauscht.
+ Das ganze ist so implementiert, dass es auch dann noch
+ funktioniert, wenn ein Paket \caption neu definiert, wie das
+ bei hyperref.sty geschieht. Es funktioniert aber natürlich
+ nicht, wenn \@makecaption umdefiniert wird (caption2-Paket).
+ * hauptcls.tex:
+ \textsubscript dokumentiert.
+ * scrclass.dtx (v2.8h):
+ \textsubscript entsprechend \textsuperscript definiert.
+
+2001-07-18 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8g):
+ Das Anselm statt \float@headings das Ding nun \float@listhead
+ genannt hat, \float@headings umbenannt.
+ Verwendung von \float@addtolists in \@chapter eingebaut. Dadurch
+ dürfte die Zusammenarbeit mit dem float-Paket optimal sein.
+
+2001-07-13 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2.tex:
+ Dafür gesorgt, dass trotz Schriftänderung die Seitenzahlen im
+ Index mit hyperref aktiv bleiben.
+
+2001-07-12 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Neue Umgebung ShowOutput für die Verdeutlichung der Ergebnis in
+ den Beispielen verwendet. Dazu wurde das quote-Beispiel außerdem
+ auch als Source aufgeführt (bisher war nur das Ergebnis zu
+ sehen).
+ * scrguide2.tex:
+ Neue Umgebung ShowOutput angelehnt an die picture-Umgebungen, die
+ Jens in layout.tex verwendet. Allerdings ist innerhalb von
+ ShowOutput ein Seitenumbruch möglich. Dafür ist es nicht ganz so
+ schön.
+ * hauptcls.tex:
+ Neuerung von scrclass.dtx v2.8f dokumentiert.
+ * scrclass.dtx (v2.8f):
+ Präambel für \part implementiert. Die Präambel wird analog zur
+ Kapitelpräambel mit \setpartpreamble{<Präambel>} gesetzt.
+
+2001-07-10 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Die Dokumentation von pointednumbers und pointlessnumbers wurde
+ entsprechende scrclass.dtx v2.8e angepasst.
+ * scrclass.dtx (v2.8e):
+ Die Einhaltung von Duden Regel 5 und 6 (20. Auflage) wird nun
+ in beide Richtungen überwacht. Außerdem genügt es nicht mehr
+ \part oder \appendix zu verwenden, um Regel 6 einzuschalten.
+ Stattdessen muss ein Gliederungsbefehl mit einer Nummer
+ verwendet werden, in der eines der Makros \Roman, \roman, \Alph,
+ \alph, \@Roman, \@roman, \@Alph, \@alph oder \romannumeral
+ vorkommt. Das ist noch keineswegs narrensicher, dürfte aber in
+ den meisten Fällen zum gewünschten Ergebnis führen.
+ Dafür führt jetzt ein vergessenes \appendix am Ende des Dokuments
+ nicht mehr zu einem unerwünschten Punkt und ein
+ \renewcommand*{\thesubsubsection}{\alph{subsubsection}}
+ wird erkannt, falls danach noch ein \subsubsection-Aufruf
+ erfolgt.
+
+2001-07-09 Markus Kohm <Markus.Kohm@gmx.de>
+ * komabug.tex:
+ Über die Konfigurationsdatei kann nun auch eine englische Version
+ angefordert werden.
+ * scrguide2.tex:
+ Die Explain-Umgebung erzeugt nun immer einen Abschnitt (\par
+ eingefügt).
+ * hauptcls.tex:
+ Letzte Korrektur eingearbeitet.
+ * einleit.tex:
+ Abschnitt zu Fehlermeldungen hinzugefügt
+ Einige Fehler korrigiert.
+
+2001-07-05 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2.tex:
+ Spielereien entfernt und ae.sty eimgefügt.
+ * hauptcls.tex:
+ Die neuen Makros von Version 2.8d dokumentiert und den Umbruch
+ optimiert.
+ * scrclass.dtx (v2.8d):
+ Seitenstile bestimmter Seiten variabler durch die Makros:
+ \titlepagestyle, \partpagestyle, \chapterpagestyle,
+ \indexpagestyle.
+
+2001-07-03 Markus Kohm <Markus.Kohm@gmx.de>
+ * einleit.tex:
+ Referenzen vom Typ "unknown" ersetzt.
+ * satzspgl.tex:
+ Referenzen vom Typ "unknown" ersetzt.
+ * scrguide2.tex:
+ Vorübergehend eine Spielerei für die Diskussion mit Jens
+ eingebaut, die sich im Normalfall nicht auswirkt.
+ * hauptcls.tex:
+ Korrekturen von Thomas umgesetzt. Einige zusätzliche Änderungen
+ für die Verbesserung des Zeilen- oder Seitenumbruchs
+ durchgeführt.
+
+2001-06-29 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2.tex (2001/06/29):
+ draft wieder aktiviert.
+ * layout.tex (2001/06/25):
+ Neue Version von Jens.
+ * hauptcls.tex (2001/06/29):
+ Änderungen von scrclass.dtx v2.8c dokumentiert.
+ * scrclass.dtx (v2.8c):
+ Bei der Fontumschaltung wird an diversen Stellen nicht nur auf
+ \normalfont, sondern auch auf \normalcolor umgeschaltet.
+ Neue Makros \addpart und \addpart* (noch ungetestet).
+
+2001-06-28 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2.tex:
+ Spielerreien am Titel
+
+2001-06-28 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2.tex:
+ Ergänzungen für die Erzeugung des Index.
+ * hauptcls.tex:
+ Verbesserungen bei der Erzeugung des Index.
+
+2001-06-26 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide.bib:
+ Einträge auf die aktuellen Versionen gebracht.
+ package:fancyhdr hinzugefügt.
+ * komascr.ins, scrclass.ins, scrtime.ins, scrpage.ins:
+ Abschlusstext geändert. Dort wird nun auf INSTALL.TXT,
+ INSTALLD.TXT, readme.txt und liesmich.txt verwiesen.
+ * scrclass.dtx (v2.8b):
+ In Absprache mit Anselm, die Zusammenarbeit mit float.sty durch
+ Definition von \float@headings verbessert. \float@headings wird
+ in zukünftigen Versionen von float.sty verwendet und nur dann
+ definiert, wenn es nicht bereits existiert. \float@headings
+ wird nun in KOMA-Script intern von \lot@heading und \lof@heading
+ verwendet und bei der Klassenoption liststotoc berücksichtigt.
+
+2001-06-25 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage.dtx (v2.0g):
+ \manualmark deaktiviert auch \chaptermark etc. und funktioniert
+ daher sofort, selbst bei Verwendung von \pagestyle{headings}.
+ \pagestyle{scrplain} setzt den Seitenstil plain ebenfalls auf
+ scrplain.
+ Neue Optionen:
+ komastyle - stellt scrheadings KOMA-Script-Klassen-üblich
+ ein
+ standardstyle - stellt scrheadings Standardklassen-üblich ein
+ Wenn \headfont nicht definiert ist, wird er als
+ \normalfont\slshape statt als \normalfont definiert.
+
+2001-06-24 Markus Kohm <Markus.Kohm@gmx.de>
+ * layout.tex:
+ Erste Vorabversion von Jens geliefert und von Markus leicht
+ korrigiert. Es fehlen noch: Rechtschreibkontrolle, Indexeinträge.
+
+2001-06-23 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage.dtx (v2.0f):
+ Symbolischer Wert "auto" für \set...line, der automatisch zu
+ "autohead" oder "autofoot" wird je nachdem, ob \sethead...line
+ oder \setfoot...line.
+ \set...line erlauben "current" oder ein leeres Argument als
+ Breite. In beiden Fällen bleibt die Breite unverändert.
+ Neue Paketoptionen:
+ clines - Linien werden wie bisher relativ zum Kopf zentriert.
+ ilines - Linien werden bündig an den inneren Rand angeschlossen
+ olines - Linien werden bündig an den äußeren Rand angeschlossen
+ * scrpage.dtx (v2.0f, 1.3c):
+ Symbolische Werte "autohead" und "autofoot" für \deftowidthof
+ implementiert (führen zu \def\Macro{\@headwidth} bzw.
+ \def\Macro{\@footwidth} an Stelle von \edef...).
+
+2001-06-22 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage.dtx (v2.0e, 1.3b):
+ Neu:
+ \settowidthof{Länge}{symbolischer_Wert_oder_Wert}
+ \deftowidthof{Name}{symbolischer_Wert_oder_Wert}
+ Wichtig: In beiden Fällen wird der aktuelle Wert verwendet. Ein
+ \deftowidthof{Textbreite}{\textwidth} oder
+ \deftowidthof{Textbreite}{text} definiert also ein Makro
+ \Textbreite mit dem aktuellen Wert von \textwidth. Wird
+ \textwidth anschließend verändert, so wirkt sich dies
+ NICHT auf \Textbreite aus.
+ Beide Anweisungen wirken lokal zur jeweiligen Gruppe. Mögliche
+ symbolische Werte sind alle bereits in früheren Versionen von
+ scrpage definierten symolischen Werte sowie:
+ headtopline - aktuelle Länge der oberen Kopfzeilenlinie
+ headsepline - aktuelle Länge der unteren Kopfzeilenlinie
+ footsepline - aktuelle Länge der oberen Fußzeilenlinie
+ footbotline - aktuelle Länge der unteren Fußzeilenlinie
+ \settowidthof bzw. \deftowidthof werden intern für die Breite des
+ Kopfes und Fußes in \setheadwidth und \setfootwidth, sowie für
+ die Länge bei \setheadtopline, \setheadsepline, \setfoottopline,
+ \setfootbotline verwendet.
+ Ein unbekannter symbolischer Wert führt zu einer Fehlermeldung.
+ Fehlerkompatibilität wird nicht garantiert (spätere Versionen
+ dürfen neue symbolische Werte kennen, melden bei diesen also
+ keinen Fehler). Nicht voll expandierbare Makros (z. B. \relax
+ oder \undefined) als Wert_oder_symbolischer_Wert führen zu einer
+ Fehlermeldung. Die Fehlermeldungen entsprechen den Meldungen bei
+ \setlength mit dem entsprechenden Wert (und treten genau dabei
+ auch auf).
+
+2001-06-19 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Schreibfehler korrigiert.
+ * scrpage2.dtx (v2.0d):
+ Fehler bei \setheadtopline etc. behoben. Außerdem erweitert
+ um symbolische Werte (wie \setheadwidth und zusätzlich "head"
+ und "foot").
+
+2001-06-18 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Die Makros und Optionen von v2.8a ergänzt.
+ Due Umgebungen verse, quote und quotation ergänzt.
+ * scrclass.dtx (v2.8a):
+ Neue Optionen cleardoublestandard, cleardoubleplain und
+ cleardoubleempty, sowie die Makros \cleardoublestandardpage,
+ \cleardoubleplainpage und \cleardoubleemptypage.
+
+2001-06-18 Markus Kohm <Markus.Kohm@gmx.de>
+ * INSTALL.TXT, INSTALLD.TXT:
+ MikTeX explizit in der Schritt-für-Schritt-Anleitung
+ berücksichtig.
+
+2001-06-18 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2.tex:
+ Zu Debuggzecken eingeführte \typeout-Anweisung entfernt.
+ * hauptcls.tex:
+ Neuheiten und Änderungen in scrclass.dtx v2.8 dokumentiert.
+
+2001-06-15 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.8):
+ scrbook und scrreprt kennen vier neue Optionen:
+ chapterprefix - die Kapitel erscheinen in der Form der
+ Standardklassen also mit einer abgesetzten
+ Zeile "Kapitel <Nr>".
+ Dies wirkt sich auch auf die Kolumnentitel
+ aus.
+ nochapterprefix - alles wie bisher lediglich \parindent\z@
+ eingefügt.
+ appendixprefix - definiert \appendixmore so, dass für den
+ Anhang unabhängig von "(no)chapterprefix"
+ die abgesetzte Zeile "Appendix <Nr>"
+ gesetzt wird.
+ noappendixprefix - definiert \appendixmore so, dass für den
+ Anhang unabhängig von "(no)chapterprefix"
+ alles wie bisher angezeigt wird
+ Zur Realisierung existiert der neue Schalter \if@chapterprefix.
+ Außerdem wurde das Makro \usechapapp[Zusatz] eingeführt:
+ \newcommand*{\chapappifprefix}[1][]{%
+ \if@chapterprefix\chapapp#1\fi}
+ Dieses neue Makro wird in \chapterformat und \chaptermarkformat
+ verwendet. Das Makro \chapapp stellt lediglich \@chapapp auf
+ Benutzerebene zur Verfügung.
+
+2001-06-15 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide.bib:
+ Literatur "package:natbib" hinzugefügt.
+
+2001-06-15 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.txt:
+ Alle fehlenden Punkte ergänzt. Damit fehlt jetzt erstmal nur noch
+ die Korrektur.
+
+2001-06-08 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2.tex:
+ Trennregel für "Standardanweisungen".
+ * hauptcls.tex:
+ Fehlende Beispiele im Titelei-Abschnitt ergänzt.
+ Abschnitt über Seitenstil, Abschnitt zum Hauptteil mit diversen
+ Unterabschnitten (Gliederung, Fußnoten, Randnotizen).
+ Es fehlen hier noch einige Punkte (siehe TODO-Kommentar).
+ * scrguide.bib:
+ Neuer Eintrag latex:fntguide.
+
+2001-06-07 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage2 (v2.0c):
+ Neue Optionen:
+ markuppercase - automatische Kolumnentitel verwenden
+ \MakeUppercase
+ markusedcase - automatische Kolumnentitel verwenden nicht
+ \MakeUppercase, sondern die Groß- und
+ Kleinschreibung, die in der Überschrift
+ vorgefunden wurde.
+ Das Makro \MakeMarkcase wird von obigen Optionen entweder auf
+ \MakeUppercase oder auf \@empty gesetzt. Wird keine der obigen
+ Optionen verwendet, wird das Makro ebenfalls auf \MakeUppercase
+ gesetzt, wenn eine Standardklasse vorgefunden wurde. Bei einer
+ KOMA-Script-Klasse wird es stattdessen auf \@empty gesetzt. Bei
+ allen anderen Klassen wird ebenfalls \@empty verwendet, jedoch
+ zusätzlich eine Warnung ausgegeben.
+ Fehler in einer Warnung behoben und den Umbruch der Warnung
+ optimiert (head- oder footwidth).
+
+2001-05-31 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage2 (v2.0b):
+ Die ganzen \ps@standard... heißen jetzt \ps@save@ und sind somit
+ nur noch für den internen Gebrauch. Bei Verwendung der
+ Seitenstile "headings" und "myheadings" wird eine Warnung
+ ausgegeben. Dafür existiert ein neuer Seitenstil "useheadings",
+ der sich je nach \automark oder \manualmark wie "headings" oder
+ "myheadings" ohne Umdefinierung von \chaptermark, \sectionmark,
+ \subsectionmark verhält.
+ Bei Klassen, die \chapter besitzen, schaltet scrpage2 automatisch
+ den Seitenstil "useheadings" ein.
+ \setheadwidth und \setfootwidth verstehen folgende symbolische
+ Werte:
+ paper - gesamte Papierbreite
+ text - gesamte Textbreite
+ textwithmarginpar
+ - Textbreite einschließlich Platz für Randnotizen
+ Die Optionen automark und manualmark funktionieren nun.
+
+2001-05-30 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2:
+ Die Sache mit der Version der Dateien funktioniert jetzt
+ Vollautomatisch und benötigt keine Änderung der Einzeldateien
+ mehr.
+
+2001-05-30 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2 (alle Kapitel):
+ Im draft-Modus wird die Version jeder einzelnen Datei
+ angezeigt.
+
+2001-05-28 Markus Kohm <Markus.Kohm@gmx.de>
+ * Makefile.unx, komascr.ins, scrclass.dtx, scrclass.ins,
+ scrlettr.dtx, scrpage.dtx, scrpage.ins, scrtime.dtx,
+ scrtime.ins:
+ Betavermerk mit einheitlichem Mechanismus zur Aktivierung.
+ * liesmich.txt, readme.txt:
+ Sondervermerk für das CVS des "KOMA-Script documentation
+ project".
+
+2001-05-27 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (2.7j):
+ Zur Verbesserung der Zusammenarbeit mit natbib verwendet
+ \setbibpreamble nun \def statt \renewcommand. Dadurch
+ funktioniert \setbibpreamble nun auch noch bei Verwendung
+ von natbib. Man muss also nicht \renewcommand verwenden,
+ wie das in der natbib-Anleitung beschrieben ist.
+ natbib verwendet unauthorisiert interne KOMA-Script-Makros.
+ Dies ging natürlich ab scrclass-Version 2.6c (2001-06-10)
+ total in die Hose. Das Setzen der Präambel wurde nun aus
+ \bib@heading nach thebibliography verschoben, um diesen Bug
+ in natbib auszugleichen. Aus Konsistenzgründen wurde für
+ den Index genauso verfahren.
+ Paketautoren werden gebeten, zukünftig Rücksprache zu
+ halten, ehe sie interne Makros von KOMA-Script verwenden!
+
+2001-05-24 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrlettr.dtx (2.6a):
+ Option a4paper hinzugefügt und als Standardoption gesetzt,
+ um Probleme mit pdftex und graphics oder hyperref zu
+ beheben.
+
+2001-05-24 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2:
+ Auf xspace verzichtet, weil es damit an verschiedenen Stellen
+ Probleme gibt.
+ * scrguide2:
+ Die von Jens-Uwe gemeldeten Fehler korrigiert und versucht,
+ seine Hinweise umzusetzen.
+
+2001-05-22 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Eine Art Kapitelvorwort zugefügt.
+
+2001-05-22 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide.bib, satzspgl.tex, hauptcls.tex:
+ Präfix "package:" bei Zitaten auf Paketen eingefügt.
+ Neue Literatur "package:multicol".
+ * scrguide2.tex:
+ Ergänzenden Hinweis zum draft-Modus eingefügt (im draft-
+ Modus funktionieren die hängenden Einzüge beispielsweise
+ bei Tabellenunterschriften nicht).
+
+2001-05-21 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide.tex (alt):
+ Zwei Tippfehler behoben.
+
+2001-05-18 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide.bib:
+ graphics zugefügt
+ * satzspgl.tex:
+ center-Umgebung in float-Tabelle durch \centering ersetzt.
+ * hauptcls.tex:
+ Alle Optionen dokumentiert.
+
+2001-05-17 Markus Kohm <Markus.Kohm@gmx.de>
+ * hauptcls.tex:
+ Da es ja sonst doch keiner tut, habe ich damit begonnen.
+ Wenn ich gewusst hätte, dass von dem guten Dutzend Leute,
+ die angeblich mithelfen wollten, nur einer übrig bleibt,
+ hätte ich nie mit dem neuen scrguide angefangen.
+ Hoffentlich ist mir das endlich eine Lehre!
+
+2001-05-17 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (2.7i):
+ Die Berechnung der maximalen Zeilenlänge in typearea ist
+ robuster gegen arithmetischen Überlauf durch zu große
+ Schriftgrößen.
+ Eine benutzerseitige Umdefinierung von
+ \othersectionlevelsformat wirkt sich nun tatsächlich aus.
+ Die Klassenoption "bibtotocnumbered" wurde korrigiert und
+ ist nun nicht mehr mit "bibtotoc" identisch.
+ \setchapterpreamble verwendet nicht mehr \xdef sondern
+ gdef.
+
+2001-04-28 Markus Kohm <Markus.Kohm@gmx.de>
+ * satzspgl.tex:
+ Die Optionen dvips, pdftex und pagesize und das Makro
+ \ifpdfoutput ergänzt, sowie einige kleinere Verbesserungen
+ (in den Tipps) vorgenommen.
+
+2001-04-26 Markus Kohm <Markus.Kohm@gmx.de>
+ * satzspgl.tex:
+ Einmal DIV durch BCOR ersetzt, ein Tippfehler und ein
+ Kommafehler korrigiert (gemeldet von Colin)
+
+2001-04-24 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide.bib:
+ Neue Literatur "Erste Hilf ein Typograpfie" eingefügt.
+ * satzspgl.tex:
+ Neue Optionen eingearbeitet.
+ * einleit.tex, satzspgl.tex:
+ "typografisch" etc. schreibt man nicht mehr mit "ph"
+
+2001-04-24 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage.dtx (v2.0a):
+ \strut in \ps@scrplain und \ps@scrheadings ergänzt.
+ * scrlogo.dtx, scrtime.dtx, scrpage.dtx:
+ Mit Hilfe des Macros \englishonly wird unterschieden, ob die
+ deutsche oder die englische Erklärung für "\KOMAScript"
+ ausgegeben werden soll.
+
+2001-04-22 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.7h):
+ Fehlender Backslash in \partformat ergänzt.
+ * Alle Klassen und Pakete definieren \KOMAScript.
+
+2001-04-20 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage.dtx, scrpage2.sty (v2.0):
+ Neue Optionen:
+ scrplainheadtopline - headtopline für Seitenstil scrplain
+ (nur, wenn außerdem headtopline)
+ scrplainheadsepline - headsepline für Seitenstil scrplain
+ (nur, wenn außerdem headsepline)
+ scrplainfootsepline - footsepline für Seitenstil scrplain
+ (nur, wenn außerdem footsepline)
+ scrplainfootbotline - footbotline für Seitenstil scrplain
+ (nur, wenn außerdem footbotline)
+ Neuer Seitenstil scrheadings und scrplain.
+ \pagestyle{scrheadings} ändert Seitenstil plain automatisch in
+ scrplain, während bei bei Seitenstil headings und myheadings
+ automatisch wieder der alte plain aktiviert wird, der außerdem
+ als standardplain verfügbar ist.
+ Seitenstil scrheadings und scrplain sind Stile mit dreigeteiltem
+ Kopf und Fuß. Die Teile werden gesteuert über die Makros:
+ \lohead[<plain>]{<headings>} - setze linke Kopfmarke für
+ ungerade Seiten
+ \lehead[<plain>]{<headings>} - setze linke Kopfmarke für gerade
+ Seiten
+ \cohead[<plain>]{<headings>} - setze mittlere Kopfmarke für
+ ungerade Seiten
+ \cehead... - für gerade Seiten
+ \rohead... - setze rechte Kopfmarke für
+ ungerade Seiten
+ \rehead... - für gerade Seiten
+ \ohead... - setze äußeren Kopfmarke für alle
+ Seiten
+ \ihead... - setze innere Kopfmarke für alle
+ Seiten
+ \chead... - setzte mittlere Kopfmarke für
+ alle Seiten
+ \lofoot, \lefoot, \cofoot, \cefoot, \rofoot, \refoot, \ofoot,
+ \ifoot, \cfoot analog für die Fußmarken.
+ Zur Realisierung wurden einige neue innere Makros definiert.
+ * scrpage.dtx, scrpage2.sty (v2.0):
+ \defpagestyle und \defpagestyle* sind identisch, zwischen den
+ unterschiedlichen Markierungsmodi wird nur noch mit den Optionen
+ automark und manualmark und den Makros \automark[]{} und
+ \manualmark unterschieden.
+
+2001-04-17 Markus Kohm <Markus.Kohm@gmx.de>
+ * Index und Glossary wird erzeugt bei "make -fMakefile.unx tar".
+
+2001-04-17 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage.dtx (v2.0):
+ \headheight-check
+
+2001-04-17 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, typearea.sty (v2.7g):
+ typearea.sty kennt die folgenden drei neuen Optionen:
+ dvips - Per \special{papersize=<w>,<h>} die Seitengröße für
+ dvips definieren, damit später z. B. gv die
+ richtige Größe anzeigt.
+ pdftex - \pdfpagewidth und \pdfpageheight auf die korrekte
+ Breite und Höhe der Seite setzen, damit später
+ z. B. acroreader die richtige Größe anzeigt. Dies
+ führt zu einem Fehler, wenn nicht pdftex
+ (bzw. pdflatex oder pdfetex oder pdfelatex)
+ verwendet wird.
+ pagesize - In Abhängigkeit davon, ob \pdfoutput definiert und
+ größer 0 ist oder nicht, wie Option "dvips" oder
+ "pdftex" verhalten.
+ und das neue Macro:
+ \ifpdfoutput{<then-Teil>}{<else-Teil>}
+ Interessant ist vielleicht, dass auch der Aufruf
+ \ifpdfoutput{\pdfoutput=0}{}
+ in der Präambel einwandfrei funktioniert und sowohl mit LaTeX
+ als auch mit pdflatex zur Ausgabe einer DVI-Datei führt.
+
+2001-04-17 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.7g):
+ typearea.sty und die drei Hauptklassen verstehen die neue Option
+ "<xyz>headlines". Diese legt fest, dass der Kopf genau
+ <xyz>\baselineskip hoch sein soll, also wieviele Zeilen im Kopf
+ untergebracht werden. Voreingestellt ist "1.25headlines". Diese
+ Option wird nur bei impliziter oder expliziter Verwendung von
+ \typearea, nicht jedoch bei expliziter Verwendung von \areaset
+ beachtet.
+
+2001-04-17 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, typearea.sty (v2.7g):
+ \typearea versteht neben dem numerischen DIV-Wert auch die
+ folgenden symbolischen DIV-Werte:
+ current - Wert nicht ändern
+ (beispielweise zur Änderung nur von BCOR).
+ default - Standardwert verwenden
+ calc - Günstigen Wert selbst ermitteln
+ classic - Kreisberechnung nach dem mittelalterlichen Buchkanon
+ \typearea versteht neben dem numerischen BCOR-Wert auch den
+ folgenden symbolischen BCOR-Wert:
+ current - Wert nicht ändern
+ (beispielsweise zur Änderung nur von DIV).
+ Durch diese Änderungen muss man bei der Verwendung von \typearea
+ anstelle der Paketoptionen nicht mehr auf die numerischen
+ Pseudowerte zurückgreifen, die ich mir nie merken konnte.
+ Die BCOR-Erweiterung existiert auch für \areaset.
+
+2001-04-17 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.7f):
+ Fehlendes Klammerpaar (nur scrbook.cls) ergänzt.
+
+2001-04-16 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx (v2.7e):
+ Fehlende schließende Klammer (nur scrbook.cls) ergänzt.
+
+2001-04-11 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage.ins:
+ Version 2 wird nun ebenfalls erzeugt.
+ * scrpage.dtx (v2.0):
+ \automark und \manualmark sowie die davon benötigten Makros
+ definiert. Syntax siehe Implementierungsdoku (latex scrpage.dtx).
+
+2001-04-10 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage.dtx (v2.0):
+ Die Linienlängen und -dicken können definiert werden:
+ \setheadtopline[Länge]{Dicke}, \setheadsepline[Länge]{Dicke},
+ \setfootsepline[Länge]{Dicke}, \setfootbotline[Länge]{Dicke}.
+
+2001-04-05 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx, scrpage.dtx:
+ Checksum um Klammerung korrigiert.
+
+2001-04-05 Markus Kohm <Markus.Kohm@gmx.de>
+ * Makefile.unx:
+ Erzeugung des tar-Archives verbessert, so dass nun keine
+ Release-Archive mit fehlerhaften dtx-Files mehr erzeugt
+ werden sollten!
+
+2001-04-05 Markus Kohm <Markus.Kohm@gmx.de>
+ * Vorbereitungen für eine Release: Textdokumente geringfügig
+ ergänzt und scrnews19 zusammengeklopft.
+
+2001-03-30 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrpage.dtx v1.3:
+ Kopf und Fuß können eine andere Breite haben als der Textkörper.
+ Um diese Breiten und die Verschiebung zum Textkörper festzulegen,
+ wurde die Anwenderschnittstelle um \setheadwidth und
+ \setfootwidth erweitert.
+ * scrpage.dtx v2.0:
+ Mitten in der Arbeit
+ * scrpage.ins:
+ Unterscheidung zwischen Version 1 und Version 2 eingebaut und
+ das Copyright auf 2001 ausgedehnt.
+
+2001-03-28 Markus Kohm <Markus.Kohm@gmx.de>
+ * datmzeit.tex:
+ Alten Text leicht überarbeitet in dieses Kapitel eingefügt.
+ * scrguide2.tex:
+ scrdate.sty und scrtime.sty werden ebenfalls geladen.
+
+2001-03-27 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrguide2.tex, main.tex, pglayout.tex, satzspgl.tex:
+ scrguide2.tex kann nun für alle Sprachen verwendet werden. Die
+ tatsächliche Sprachumschaltung für English findet in main.tex
+ statt. Die englische Dokumentation wird mit "latex main.tex"
+ erzeugt.
+ Use "latex main.tex" to create the english manual.
+
+2001-03-26 Markus Kohm <Markus.Kohm@gmx.de>
+ * layout.tex:
+ Alten Text eingefügt und auf die neuen Makros angepasst.
+ * scrguide2.tex:
+ Neues Makro \PValue für Werte von Parametern eingefügt. Die
+ Werte wurden früher direkt mit \texttt gesetzt. Stattdessen
+ sollte nun \PValue verwendet werden.
+
+2001-03-22 Markus Kohm <Markus.Kohm@gmx.de>
+ * satzspgl.tex:
+ Erste Version fertiggestellt.
+ * scrguide2.tex, einleit.tex:
+ Bibliography ist vorhanden und wird verwendet.
+ * scrguide.mbs:
+ neue Datei zur Verwendung mit makebst (custom-bib)
+ * scrguide.dbj:
+ neue Datei zur Erzeugung einer bst-Datei
+ * scrguide.bst:
+ generiert aber trotzdem im cvs
+ * scrguide.bib:
+ Erste Einträge in der Bibliography
+
+2001-02-23 Markus Kohm <Markus.Kohm@gmx.de>
+ * scrclass.dtx:
+ hyperref 6.71b hat den alten \@addchap-bug nicht länger, daher
+ wird nun nur noch vor der Verwendung älterer hyperref-Versionen
+ gewarnt.
+ Einen Workaround für diese Versionen gibt es nicht mehr.
+
+2001-01-22 Markus Kohm
+ * scrguide2.tex:
+ Definitionen korrigiert und ergänzt.
+ * einleit.tex:
+ Fehler korrigiert. Geringfügige Ergänzungen.
+ * satzspgl.tex:
+ Gliederung und Text bis zur Erwähnung der DIV-Optionen,
+ BCOR-Option und dem Befehl \typearea[]{}.
+
+2001-01-19 Markus Kohm
+ * scrclass.dtx v2.7c:
+ Vertikaler Abstand vor zu Abstand nach einer Kapitelüberschrift
+ nun bei allen drei Größenabstufungen im Verhältnis 4:3 (1,3333)
+ mit glue zwischen 5:4 (1,25) und 3:2 (1,5).
+
+2001-01-18 Markus Kohm
+ * scrguide:
+ Mit dem neuen scrguide begonnen.
+
+2001-01-05 Markus Kohm
+ * scrclass.dtx v2.7b:
+ Implementierungsdoku der Gliederungsbefehle verbessert.
+ * scrclass.dtx v2.7b:
+ \setchapterpreamble eingeführt, um Kapitel allgemein mit einer
+ Preamble versehen zu können, die auch im zweispaltigen Druckmodus
+ einspaltig gesetzt wird.
+ * scrclass.dtx v2.7b:
+ Kernel-Makro \@topnewpage erweitert, damit
+ \twocolumn[\chapter{...}] funktioniert.
+ * scrclass.dtx v2.7b:
+ In \addchap wird bei scrbook nicht mehr \@addchap sondern
+ \@@addchap verwendet, um einer Umdefinition von \@addchap in
+ einigen hyperref-Treibern zu entgehen. Gleichzeitig wird im
+ Falle der Umdefinierung von \@addchap für eine entsprechende
+ Warnung mit deutlichem Hinweis, was ich von der Umdefinierung in
+ hyperref halt, gesorgt.
+ * scrclass.dtx v2.7b:
+ \bib@hading und \index@heading verwenden \setchapterpreamble.
+
+2001-01-04 Markus Kohm
+ * scrclass.dtx v2.7a:
+ Linkerzeugung im Zusammenhang mit hyperref verbessert
+ (funktioniert nur mit bestimmten Treibern und noch recht
+ unzureichend).
+ * scrclass.dtx v2.7a:
+ Im Abstract wird \addsec* statt \ßection* verwendet, damit die
+ Kolumnentitel korrekt gesetzt werden.
+
+2001-01-03 Markus Kohm
+ * scrclass.dtx v2.7:
+ Klammerung bei den Optionen bibtotoc und bibtotocnumbered war
+ fehlerhaft.
+ * scrclass.dtx v2.7:
+ \if@altsecnumformat.\fi durch neues Makro \autodot
+ ersetzt. Dadurch können die \...format-Makros nun auf
+ Benutzerebene unter Verwendung dieses neuen Makros umdefiniert
+ werden.
+ * scrclass.dtx v2.7:
+ \@seccntformat ruft nun intern das Benutzerlevel-Makro
+ \othersectionlevelsformat auf, damit auch diese Ebenen
+ benutzerseitig umdefiniert werden können. Möglicherweise werden
+ hier später alle von KOMA-Script definierten Gliederungsebenen
+ eigene Makros erhalten, die per
+ \newcommand*{\...format}[1]\othersectionlevelsformat{...}
+ kompatibel definiert werden. Damit wäre diese Schnittstelle dann
+ vollständig (was auch die Dokumentation erleichtern würde).
+ * scrclass.dtx v2.7:
+ Die ganzen End-Abstände in den \...format-Makros von \quad bzw.
+ einfachem Leerzeichen (in \chapterformat) auf \enskip geändert.
+ HINWEIS: Diese Änderung führt zu einer Umbruchinkompatibilität
+ gegenüber früheren KOMA-Script-Versionen. In der
+ Anleitung sollte unbedingt darauf hingewiesen
+ werden. Für die Überschriften kann der alte Zustand wie
+ folgt wieder hergestellt werden:
+ \renewcommand*\chapterformat{\thechapter\autodot\ }
+ \renewcommand*\othersectionlevelsformat[1]{%
+ \csname the#1\endcsname\autodot\quad}
+ Analoges gilt für die \...markformat-Makros, wobei die
+ dortige Änderung zu keiner Umbruchinkompatibilität
+ führen sollte.
+ Deshalb soll an dieser Stelle darauf hingewiesen
+ werden, dass für die Überschriften der alte Zustand wie
+ folgt wieder hergestellt werden kann:
+ \renewcommand*\chapterformat{\thechapter\autodot\ }
+ \renewcommand*\othersectionlevelsformat[1]{%
+ \csname the#1\endcsname\autodot\quad}
+ Analoges gilt für die \...markformat-Makros, wobei die
+ dortige Änderung zu keiner Umbruchinkompatibilität
+ führen sollte.
+ Deshalb soll an dieser Stelle darauf hingewiesen
+ werden, dass für die Überschriften der alte Zustand wie
+ folgt wieder hergestellt werden kann:
+ \renewcommand*\chapterformat{\thechapter\autodot\ }
+ \renewcommand*\othersectionlevelsformat[1]{%
+ \csname the#1\endcsname\autodot\quad}
+ Analoges gilt für die \...markformat-Makros, wobei die
+ dortige Änderung zu keiner Umbruchinkompatibilität
+ führen sollte.
diff --git a/macros/latex/contrib/koma-script/source/Makefile b/macros/latex/contrib/koma-script/source/Makefile
new file mode 100644
index 0000000000..294f336b40
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/Makefile
@@ -0,0 +1,464 @@
+# ======================================================================
+# Makefile
+# Copyright (c) Markus Kohm, 2002-2018
+#
+# 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.
+# ----------------------------------------------------------------------
+# Makefile
+# Copyright (c) Markus Kohm, 2002-2018
+#
+# 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.
+# ======================================================================
+
+# ----------------------------------------------------------------------
+# All directories with Makefiles
+export BASEDIR ?= $(PWD)/
+SUBDIRS = doc
+# ----------------------------------------------------------------------
+# Load common rules
+include Makefile.baserules
+# Load variable definitions
+include Makefile.baseinit
+# ----------------------------------------------------------------------
+# Temporary folder, used to create distribution.
+# Same folder with postfix "-maintain" will be used to create maintain-
+# distribution.
+export DISTDIR := $(PWD)/koma-script-$(ISODATE)
+export MAINTAINDIR := $(DISTDIR)-maintain
+# ----------------------------------------------------------------------
+
+# ----------------------------------------------------------------------
+# More than once used:
+# Make implementation documentation
+define makepdffromdtx
+ if ! $(LATEX) $(NONSTOPMODE) $(PDFOUTPUT) $<; then \
+ $(RM) -v $@; \
+ exit 1; \
+ fi
+ oncemore=true; \
+ checksum=`$(CKSUM) $(basename $<).aux`; \
+ while $$oncemore; \
+ do \
+ if ! $(MKINDEX) $(basename $<) \
+ || ! $(LATEX) $(NONSTOPMODE) $(PDFOUTPUT) $<; then \
+ $(RM) -v $@; \
+ exit 1; \
+ fi; \
+ $(GREP) Rerun $(basename $<).log || oncemore=false; \
+ newchecksum=`$(CKSUM) $(basename $<).aux`; \
+ [ "$$newchecksum"="$$checksum" ] || oncemore=true; \
+ checksum="$$newchecksum"; \
+ done
+endef
+# ----------------------------------------------------------------------
+
+# ----------------------------------------------------------------------
+# List of all Makefiles
+MAKE_FILES = Makefile Makefile.baserules Makefile.baseinit
+# ----------------------------------------------------------------------
+# make classes, packages, etc.
+CLS_MAIN = scrbook.cls \
+ scrreprt.cls \
+ scrartcl.cls \
+ scrlttr2.cls \
+ scrletter.sty \
+ typearea.sty \
+ scrsize10pt.clo \
+ scrsize11pt.clo \
+ scrsize12pt.clo \
+ scrlfile.sty \
+ scrwfile.sty \
+ scrbase.sty \
+ scrkbase.sty \
+ scraddr.sty \
+ scrpage2.sty \
+ scrtime.sty \
+ scrdate.sty \
+ scrjura.sty \
+ tocbasic.sty \
+ tocstyle.sty \
+ scrextend.sty \
+ scrhack.sty \
+ float.hak \
+ floatrow.hak \
+ hyperref.hak \
+ listings.hak \
+ nomencl.hak \
+ setspace.hak \
+ lscape.hak \
+ scrfontsizes.sty \
+ visualize.lco \
+ DIN.lco \
+ DINmtext.lco \
+ SN.lco \
+ SNleft.lco \
+ KOMAold.lco \
+ NF.lco \
+ UScommercial9.lco \
+ UScommercial9DW.lco \
+ NipponEH.lco \
+ NipponEL.lco \
+ NipponLH.lco \
+ NipponLL.lco \
+ NipponRL.lco \
+ KakuLL.lco \
+ scrlayer.sty \
+ scrlayer-scrpage.sty \
+ scrlayer-notecolumn.sty \
+ scrlayer-fancyhdr.sty
+
+CLS_MAIN_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 \
+ 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-title.dtx \
+ scrkernel-tocstyle.dtx \
+ scrkernel-typearea.dtx \
+ scrkernel-variables.dtx \
+ scrkernel-version.dtx \
+ scrlfile.dtx \
+ scrwfile.dtx \
+ scraddr.dtx \
+ scrpage.dtx \
+ scrtime.dtx \
+ scrlogo.dtx \
+ scrextend.dtx \
+ scrhack.dtx \
+ scrjura.dtx \
+ tocbasic.dtx \
+ tocstyle.dtx \
+ scrlayer.dtx \
+ scrlayer-scrpage.dtx \
+ scrlayer-notecolumn.dtx \
+ scrlayer-fancyhdr.dtx
+
+STATIC_DOC = README \
+ INSTALL.txt \
+ INSTALLD.txt \
+ lppl.txt \
+ lppl-de.txt \
+ manifest.txt \
+ komabug.tex
+
+CLS_MAIN_DVI = scrsource.pdf
+
+CLS_MAIN_INS = scrmain.ins
+
+CLS_MAIN_SUBINS = scrstrip.inc scrstrop.inc scrdocstrip.tex
+
+ALPHA_INS = tocstyle.dtx scrlayer-fancyhdr.dtx
+
+ALPHA_DOC = tocstyle.pdf scrlayer-fancyhdr.pdf
+
+ALPHA_DTX = $(subst .pdf,.dtx,$(ALPHA_DOC))
+
+CLS_MAIN_SRC = $(CLS_MAIN_DTX) $(CLS_MAIN_INS) $(CLS_MAIN_SUBINS) \
+ scrsource.tex
+
+$(ALPHA_DOC): $(ALPHA_DTX) scrdoc.cls $(CLS_MAIN)
+ $(LATEX) $(BATCHMODE) $(PDFOUTPUT) $(subst .pdf,.dtx,$@)
+ $(MKINDEX) $(subst .pdf,,$@)
+ $(LATEX) $(BATCHMODE) $(PDFOUTPUT) $(subst .pdf,.dtx,$@)
+ $(MKINDEX) $(subst .pdf,,$@)
+ $(LATEX) $(BATCHMODE) $(PDFOUTPUT) $(subst .pdf,.dtx,$@)
+
+$(CLS_MAIN): $(CLS_MAIN_DVI) $(CLS_MAIN_INS) $(MAKE_FILES)
+ $(TEXUNPACK) $(CLS_MAIN_INS)
+ $(foreach alphains,$(ALPHA_INS),$(TEXUNPACK) $(alphains);)
+
+scrsource.pdf: scrsource.tex $(CLS_MAIN_DTX) $(MAKE_FILES) scrdoc.cls
+ $(makepdffromdtx)
+
+scrdoc.cls: scrdoc.dtx
+ $(SSYMLINK) scrdoc.dtx scrdoc.cls
+
+# ----------------------------------------------------------------------
+CLS_FILES = scrdoc.cls $(CLS_MAIN)
+
+CLS_DVIS = $(CLS_MAIN_DVI)
+
+CLS_SRC = $(CLS_MAIN_SRC)
+
+NODIST_GENERATED = $(CLS_DVIS) $(CLS_FILES) $(ALPHA_DOC)
+
+GENERATED = $(NODIST_GENERATED) ChangeLog \
+ scrjura.ins \
+ scrwfile.ins \
+ tocbasic.ins \
+ tocstyle.ins tocstyle.tex tocstyle.drv
+
+MISC_SRC = $(MAKE_FILES) \
+ scrdoc.dtx ChangeLog ChangeLog.2
+
+DIST_SRC = $(MISC_SRC) $(CLS_SRC)
+
+DIST_FILES = $(DIST_SRC) $(STATIC_DOC) $(ALPHA_DOC)
+
+MAINTAIN_SRC = $(DIST_SRC) missing.dtx .cvsignore
+
+MAINTAIN_FILES = $(MAINTAIN_SRC)
+# ----------------------------------------------------------------------
+
+# ----------------------------------------------------------------------
+# additional rules
+tdsdist:dist
+ # extract dist and make all
+ $(UNTARGZ) $(DISTDIR).tar.gz
+ chmod -R a+w $(DISTDIR)
+ifdef PREPARERELEASE
+ 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
+ $(SRM) komascript.tds.zip
+ $(CD) $(notdir $(DISTDIR))-bin/komascript-texmf && \
+ $(ZIP) ../../komascript.tds.zip source doc tex
+ # clean up
+ $(RMDIR) $(notdir $(DISTDIR))-bin
+ $(SRM) $(notdir $(DISTDIR)).tar.gz
+
+bindist:tdsdist
+ # extract tds.zip
+ $(MKDIR) $(notdir $(DISTDIR))-bin
+ $(MKDIR) $(notdir $(DISTDIR))-bin/komascript-texmf
+ $(CD) $(notdir $(DISTDIR))-bin/komascript-texmf && \
+ $(UNZIP) ../../komascript.tds.zip
+ # copy some of the files to primary folder
+ $(MV) komascript.tds.zip $(notdir $(DISTDIR))-bin/
+ $(INSTALL) $(notdir $(DISTDIR))-bin/komascript-texmf/source/latex/koma-script/ChangeLog $(notdir $(DISTDIR))-bin
+ $(INSTALL) $(notdir $(DISTDIR))-bin/komascript-texmf/doc/latex/koma-script/scrgui* $(notdir $(DISTDIR))-bin
+ $(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/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
+ $(CD) $(notdir $(DISTDIR))-bin && \
+ $(ZIP) ../$(notdir $(DISTDIR))-bin.zip *
+ # clean up
+ $(RMDIR) $(notdir $(DISTDIR))-bin
+
+ctandist:tdsdist
+ # extract tds.zip
+ $(SRMDIR) $(notdir $(DISTDIR))-ctan
+ $(MKDIR) $(notdir $(DISTDIR))-ctan/texmf
+ $(INSTALL) komascript.tds.zip $(notdir $(DISTDIR))-ctan
+ $(CD) $(notdir $(DISTDIR))-ctan/texmf && \
+ $(UNZIP) ../komascript.tds.zip
+ # copy some doc files to doc source
+ $(INSTALL) $(notdir $(DISTDIR))-ctan/texmf/doc/latex/koma-script/*.html \
+ $(notdir $(DISTDIR))-ctan/texmf/doc/latex/koma-script/*.pdf \
+ $(notdir $(DISTDIR))-ctan/texmf/source/latex/koma-script/doc/
+ # copy some doc files to main source
+ $(INSTALL) $(notdir $(DISTDIR))-ctan/texmf/doc/latex/koma-script/*.txt \
+ $(notdir $(DISTDIR))-ctan/texmf/doc/latex/koma-script/*.tex \
+ $(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/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
+ $(SECHO) 'File komascript.tds.zip is a complete TEXMF tree of KOMA-Script. It may be' >> $(notdir $(DISTDIR))-ctan/README.distributors
+ $(SECHO) 'used for manual installation or by distributors for distributions like' >> $(notdir $(DISTDIR))-ctan/README.distributors
+ $(SECHO) '<http://mirror.ctan.org/tex-archive/install/macros/latex/contrib/komascript.tds.zip>.' >> $(notdir $(DISTDIR))-ctan/README.distributors
+ $(SECHO) "File $(notdir $(DISTDIR)).ctan-src.zip is a file with sources and manuals of KOMA-Script" >> $(notdir $(DISTDIR))-ctan/README.distributors
+ $(SECHO) 'that CTAN seems to prefer for the distribution at' >> $(notdir $(DISTDIR))-ctan/README.distributors
+ $(SECHO) '<http://mirror.ctan.org/tex-archive/macros/latex/contrib/komascript>.' >> $(notdir $(DISTDIR))-ctan/README.distributors
+ $(SECHO) 'Note, that it is not easy to generate a ready to use and complete installation' >> $(notdir $(DISTDIR))-ctan/README.distributors
+ $(SECHO) "from $(notdir $(DISTDIR)).ctan-src.zip. So it is hardly recommended to use" >> $(notdir $(DISTDIR))-ctan/README.distributors
+ $(SECHO) 'komascript.tds.zip not only by users, but redistributors also.' >> $(notdir $(DISTDIR))-ctan/README.distributors
+ # build ctan-src.zip
+ $(CD) $(notdir $(DISTDIR))-ctan/texmf/source/latex && \
+ $(ZIP) ../../../$(notdir $(DISTDIR)).ctan-src.zip koma-script
+ $(RMDIR) $(notdir $(DISTDIR))-ctan/texmf
+ # build ctan.zip (with both ctan-src.zip and tds.zip)
+ $(CD) $(notdir $(DISTDIR))-ctan && \
+ $(ZIP) ../$(notdir $(DISTDIR))-ctan.zip *
+ # clean up
+ $(RMDIR) $(notdir $(DISTDIR))-ctan
+
+# ----------------------------------------------------------------------
+# local rules
+
+ChangeLog:
+ $(warning Developers should generate ChangeLog manually, see developers/doc/README.)
+ $(warning Distributors should not use a SVN version for their distributions!)
+ $(warning Betatester may continue with an empty ChangeLog after using: touch ChangeLog)
+ @exit 1
+
+default_local: test_baseinit $(CLS_FILES)
+
+prepare_local: # nothing to do
+
+install_local: test_baseinit $(DIST_SRC) $(CLS_FILES) $(STATIC_DOC) $(ALPHA_DOC)
+ @if ! $(MKDIR) $(INSTALLSRCDIR) \
+ || ! $(MKDIR) $(INSTALLCLSDIR) \
+ || ! $(MKDIR) $(INSTALLDOCDIR) ; then \
+ echo '--------------------------------------------------'; \
+ echo '| Cannot install to' $(INSTALLSRCDIR) or $(INSTALLCLSDIR) or $(INSTALLDOCDIR)!; \
+ echo '| You should try:'; \
+ echo '| sudo "make install"'; \
+ echo '--------------------------------------------------'; \
+ exit 1; \
+ fi
+ $(INSTALL) $(DIST_SRC) $(INSTALLSRCDIR)
+ $(INSTALL) $(CLS_FILES) $(INSTALLCLSDIR)
+ $(INSTALL) $(STATIC_DOC) $(ALPHA_DOC) $(INSTALLDOCDIR)
+ $(SECHO) ------------------------------------------------------------
+ $(SECHO) Installed files at $(INSTALLSRCDIR):
+ $(SECHO) $(DIST_SRC)
+ $(SECHO) ------------------------------------------------------------
+ $(SECHO) Installed files at $(INSTALLCLSDIR):
+ $(SECHO) $(CLS_FILES)
+ $(SECHO) ------------------------------------------------------------
+ $(SECHO) Installed files at $(INSTALLDOCDIR):
+ $(SECHO) $(STATIC_DOC) $(ALPHA_DOC)
+ $(SECHO) ------------------------------------------------------------
+
+uninstall_local:
+ @if [ -d $(INSTALLSRCDIR) ]; then \
+ $(RM) -v $(foreach file,$(DIST_SRC),$(INSTALLSRCDIR)/$(file)); \
+ if [ ls $(INSTALLSRCDIR) > /dev/null 2>&1; then \
+ $(RMDIR) -v $(INSTALLSRCDIR); \
+ else \
+ echo "$(INSTALLSRCDIR) not empty!"; \
+ fi; \
+ else \
+ echo "$(INSTALLSRCDIR) not found --> nothing to uninstall!"; \
+ fi
+ @if [ -d $(INSTALLCLSDIR) ]; then \
+ $(RM) -v $(foreach file,$(CLS_FILES),$(INSTALLCLSDIR)/$(file)); \
+ if ls $(INSTALLCLSDIR) > /dev/null 2>&1; then \
+ $(RMDIR) -v $(INSTALLCLSDIR); \
+ else \
+ echo "$(INSTALLCLSDIR) not empty!"; \
+ fi; \
+ else \
+ echo "$(INSTALLCLSDIR) not found --> nothing to uninstall!"; \
+ fi
+ @if [ -d $(INSTALLDOCDIR) ]; then \
+ $(RM) -v $(foreach file,$(STATIC_DOC),$(INSTALLDOCDIR)/$(file)); \
+ if ls $(INSTALLDOCDIR) > /dev/null 2>&1; then \
+ $(RMDIR) -v $(INSTALLDOCDIR); \
+ else \
+ echo "$(INSTALLDOCDIR) not empty!"; \
+ fi; \
+ else \
+ echo "$(INSTALLDOCDIR) not found --> nothing to uninstall!"; \
+ fi
+
+clean_local:
+ $(SRM) *~ $(CLEANEXTS)
+
+distclean_local: clean_local
+ $(SRM) $(NODIST_GENERATED)
+
+maintainclean_local: clean_local
+ $(SRM) $(GENERATED)
+
+dist_prior:
+ifdef PREPARERELEASE
+ developer/scripts/preparerelease.sh 1
+ $(MAKE) prepare
+endif
+ -$(RMDIR) $(DISTDIR)
+ $(MKDIR) $(DISTDIR)
+
+dist_local: $(DIST_FILES) $(NODIST_GENERATED)
+ $(CP) $(DIST_FILES) $(DISTDIR)
+
+dist_post:
+ $(TARGZ) $(DISTDIR).tar.gz $(notdir $(DISTDIR))
+ $(RMDIR) $(DISTDIR)
+ $(LL) $(notdir $(DISTDIR)).tar.gz
+
+dist-bz2_post:
+ $(STARBZ) $(DISTDIR).tar.bz2 $(notdir $(DISTDIR))
+ $(SRMDIR) $(DISTDIR)
+ $(SLL) $(notdir $(DISTDIR)).tar.bz2
+
+dist-zip_post:
+ $(SZIP) $(DISTDIR).zip $(notdir $(DISTDIR))
+ $(SRMDIR) $(DISTDIR)
+ $(SLL) $(notdir $(DISTDIR)).zip
+
+maintain_prior:
+ -$(RMDIR) $(MAINTAINDIR)
+ $(MKDIR) $(MAINTAINDIR)
+
+maintain_local:
+ $(CP) $(MAINTAIN_FILES) $(MAINTAINDIR)
+
+maintain_post:
+ $(TARGZ) $(MAINTAINDIR).tar.gz $(notdir $(MAINTAINDIR))
+ $(RMDIR) $(MAINTAINDIR)
+ $(LL) $(notdir $(MAINTAINDIR)).tar.gz
+
+maintain-bz2_post:
+ $(STARBZ) $(MAINTAINDIR).tar.bz2 $(notdir $(MAINTAINDIR))
+ $(SRMDIR) $(MAINTAINDIR)
+ $(SLL) $(notdir $(MAINTAINDIR)).tar.bz2
+
+maintain-zip_post:
+ $(SZIP) $(MAINTAINDIR).zip $(notdir $(MAINTAINDIR))
+ $(SRMDIR) $(MAINTAINDIR)
+ $(SLL) $(notdir $(MAINTAINDIR)).zip
+# ----------------------------------------------------------------------
diff --git a/macros/latex/contrib/koma-script/source/Makefile.baseinit b/macros/latex/contrib/koma-script/source/Makefile.baseinit
new file mode 100644
index 0000000000..28dc986096
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/Makefile.baseinit
@@ -0,0 +1,225 @@
+# ======================================================================
+# Makefile.baseinit
+# 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.
+# ----------------------------------------------------------------------
+# Makefile.baseinit
+# 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.
+# ======================================================================
+# This is the basic initialization of environment, programm variables
+# etc. You may overload each of the defined variables at Makefile.cfg.
+# To do so, just copy the original definition to Makefile.cfg and change
+# it there.
+# ----------------------------------------------------------------------
+# Hier finden Sie die Grundinitialisierung der Umgebungsvariablen,
+# Programmvariablen usw. Sie können die Definition jeder dieser
+# Variablen in Makefile.cfg überladen. Um dies zu tun, kopieren Sie
+# einfach die Originaldefinition in Makefile.cfg und ändern die
+# Definition dort entsprechend Ihrer Anforderungen.
+# ======================================================================
+
+# ----------------------------------------------------------------------
+# KOMA-Script subfolder
+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.
+# With teTeX and linux often one of following is used:
+#INSTALLTEXMF ?= /usr/TeX/texmf
+#INSTALLTEXMF ?= /usr/local/TeX/texmf
+#INSTALLTEXMF ?= /usr/share/texmf
+#INSTALLTEXMF ?= /usr/local/share/texmf
+# user tree:
+#INSTALLTEXMF ?= $(HOME)/texmf
+# Try to use user's tree known by kpsewhich:
+#INSTALLTEXMF ?= $(shell kpsewhich -expand-var '$$HOMETEXMF')
+# Try to use the local tree known by kpsewhich:
+#INSTALLTEXMF ?= $(shell kpsewhich -expand-var '$$TEXMFLOCAL')
+# But you may set INSTALLTEXMF to every directory you want.
+# Use following, if you only want to test the installation:
+#INSTALLTEXMF ?= /tmp/texmf
+# Do a more complicate default:
+ifneq ($(USER),root)
+ INSTALLTEXMF ?= $(shell kpsewhich -expand-var='$$HOMETEXMF')
+ifeq ($(INSTALLTEXMF),$$HOMETEXMF)
+ INSTALLTEXMF :=
+endif
+ifeq ($(INSTALLTEXMF),)
+ INSTALLTEXMF = $(shell kpsewhich -expand-var='$$TEXMFHOME')
+ifeq ($(INSTALLTEXMF),$$TEXMFHOME)
+ INSTALLTEXMF :=
+endif
+endif
+endif
+
+ifeq ($(INSTALLTEXMF),)
+ INSTALLTEXMF = $(shell kpsewhich -expand-var='$$TEXMFLOCAL')
+ifeq ($(INSTALLTEXMF),$$TEXMFLOCAL)
+ INSTALLTEXMF :=
+endif
+endif
+
+ifeq ($(INSTALLTEXMF),)
+ INSTALLTEXMF = $(shell kpsewhich -expand-var='$$TEXMFMAIN')
+ifeq ($(INSTALLTEXMF),$$TEXMFMAIN)
+ INSTALLTEXMF :=
+endif
+endif
+# ----------------------------------------------------------------------
+# The directory, where to install *.cls, *.sty etc.
+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/latex$(KOMASCRIPTSUBDIR)
+# ----------------------------------------------------------------------
+# The directory, where to install the sources
+INSTALLSRCDIR ?= $(INSTALLTEXMF)/source/latex$(KOMASCRIPTSUBDIR)
+# ----------------------------------------------------------------------
+# The directory, where to install demos
+INSTALLDEMODIR ?= $(INSTALLDOCDIR)/demo
+# ----------------------------------------------------------------------
+# Extensions of files which are generated for generation
+CLEANEXTS = *.aux *.bbl *.blg *.glg *.glo *.gls *.glx *.idx \
+ *.ilg *.ind *.lof *.log *.lot *.out *.toc \
+ *.toc[0-9] *.toc[0-9][0-9] *.synctex.gz *.slnc \
+# ----------------------------------------------------------------------
+
+# ----------------------------------------------------------------------
+# The programms/commands, which are used
+LATEX = pdflatex
+NONSTOPMODE = -interaction=nonstopmode
+BATCHMODE = -interachtion=batchmode
+DVIOUTPUT = \\pdfoutput=0\\let\\pdfoutput\\undefined\\input
+PDFOUTPUT = \\input
+
+MKINDEX = mkindex
+TEXUNPACK = tex
+
+SILENT = @
+RM = rm -f
+SRM = $(SILENT)$(RM)
+RMDIR = rm -fr
+SRMDIR = $(SILENT)$(RMDIR)
+CP = cp -f
+SCP = $(SILENT)$(CP)
+CPALL = cp -af
+SCPALL = $(SILENT)$(CPALL)
+CD = cd
+SCD = $(SILENT)$(CP)
+SYMLINK = ln -sf
+SSYMLINK = $(SILENT)$(SYMLINK)
+INSTALL = install -m 644
+SINSTALL = $(SILENT)$(INSTALL)
+INSTALLEXECUTABLE = install -m 744
+SINSTALLEXECUTABLE = $(SILENT)$(INSTALLEXECUTABLE)
+MKDIR = install -m 755 -d
+SMKDIR = $(SILENT)$(MKDIR)
+MV = mv -f
+SMV = $(SILENT)$(MV)
+ECHO = echo
+SECHO = $(SILENT)$(ECHO)
+LL = ls -l
+SLL = $(SILENT)$(LL)
+TARGZ = tar zc -f
+STARGZ = $(SILENT)$(TARGZ)
+UNTARGZ = tar zx -f
+SUNTARGZ = $(SILENT)$(UNTARGZ)
+TARBZ = tar jc -f
+STARBZ = $(SILENT)$(TARBZ)
+ZIP = zip -r9qy
+SZIP = $(SILENT)$(ZIP)
+UNZIP = unzip -q
+SUNZIP = $(SILENT)$(UNZIP)
+GREP = grep
+CKSUM = md5sum
+HEAD = head -n
+
+ISODATE = `date -I`
+MKTEXLSR = mktexlsr $(INSTALLTEXMF)
+# ----------------------------------------------------------------------
+
+
+# ======================================================================
+# Do not copy and change any of the following lines:
+# ======================================================================
+
+# ----------------------------------------------------------------------
+# Loading Makefile.cfg if it exists.
+# Don't
+-include Makefile.cfg
+# ----------------------------------------------------------------------
+
+# ----------------------------------------------------------------------
+# Do all variable tests
+test_baseinit:
+ifndef INSTALLTEXMF
+ $(error You have to define variable INSTALLTEXMF at Makefile.cfg!)
+endif
+ $(SMKDIR) $(INSTALLTEXMF)
+ifdef INSTALLSRCDIR
+ $(SMKDIR) $(INSTALLSRCDIR)
+else
+ $(warning Sources will not be installed!)
+endif
+ifdef INSTALLDOCDIR
+ $(SMKDIR) $(INSTALLDOCDIR)
+else
+ $(warning Documentation will not be installed!)
+endif
+#ifdef INSTALLDEMODIR
+# $(SMKDIR) $(INSTALLDEMODIR)
+#else
+# $(warning Demos will not be installed!)
+#endif
+ifdef INSTALLCLSDIR
+ $(SMKDIR) $(INSTALLCLSDIR)
+else
+ $(warning Classes, Packages, etc. will not be installed!)
+endif
+ifdef VERBOSE
+ $(SECHO) ============================================================
+ $(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)"
+ $(SECHO) " TEXINPUTS =$(TEXINPUTS)"
+ $(SECHO) " CLEANEXTS =$(CLEANEXTS)"
+ $(SECHO) ============================================================
+endif
+
+# ----------------------------------------------------------------------
+
diff --git a/macros/latex/contrib/koma-script/source/Makefile.baserules b/macros/latex/contrib/koma-script/source/Makefile.baserules
new file mode 100644
index 0000000000..66c4d77590
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/Makefile.baserules
@@ -0,0 +1,144 @@
+# ======================================================================
+# Makefile.baserules
+# 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.
+# ----------------------------------------------------------------------
+# Makefile.baserules
+# 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.
+# ======================================================================
+
+.PHONY: default default_recursive default_local \
+ prepare prepare_recursive prepare_local \
+ install install_recursive install_local \
+ uninstall uninstall_recursive uninstall_local \
+ mktexlsr \
+ clean clean_recursive clean_local \
+ dist dist_prior dist_recursice dist_post \
+ dist-bz2 dist-bz2_post \
+ dist-zip dist-zip_post
+ maintain maintain_prior maintain_recursice maintain_post \
+ maintain-bz2 maintain-bz2_post \
+ maintain-zip maintain-zip_post \
+ testlist testinit testtest
+
+# ----------------------------------------------------------------------
+# The default rule
+default: prepare default_recursive
+
+# Prepare for the defaut rule
+prepare: prepare_recursive
+
+# Install all files
+install: install_recursive mktexlsr
+
+# Uninstall all files
+uninstall: uninstall_recursive mktexlsr
+
+mktexlsr:
+ $(MKTEXLSR)
+
+# Delete all files, which are generated for generation.
+# "make; make clean; make" should be same like "make; make clean"
+clean: clean_recursive
+
+# Delete all files, which are not part of the distribution
+distclean: distclean_recursive
+
+# Delete all files, which are generated
+maintainclean: maintainclean_recursive
+
+# Create tar.gz, tar.bz2 or zip with distribution
+dist: dist_prior dist_recursive dist_post
+
+dist-bz2: dist_prior dist_recursive dist-bz2_post
+
+dist-zip: dist_prior dist_recursive dist-zip_post
+
+# Create tar.gz, tar.bz2 or zip with maintainance files
+maintain: maintain_prior maintain_recursive maintain_post
+
+maintain-bz2: maintain_prior maintain_recursive maintain-bz2_post
+
+maintain-zip: maintain_prior maintain_recursive maintain-zip_post
+
+testlist:
+ $(MAKE) -C testsuite $@
+
+testinit:
+ $(MAKE) -C testsuite $@
+
+testtest:
+ $(MAKE) -C testsuite $@
+
+
+# ----------------------------------------------------------------------
+
+# ----------------------------------------------------------------------
+# recursive rules (don't call them, call the rules above)
+ifdef SUBDIRS
+define make_recursive
+ for dir in $(SUBDIRS); \
+ do \
+ $(MAKE) -C $$dir $< || exit $$?; \
+ done
+endef
+else
+define make_recursive
+endef
+endif
+
+default_recursive: default_local
+ $(make_recursive)
+
+prepare_recursive: prepare_local
+ $(make_recursive)
+
+install_recursive: install_local
+ $(make_recursive)
+
+uninstall_recursive: uninstall_local
+ $(make_recursive)
+
+clean_recursive: clean_local
+ $(make_recursive)
+
+distclean_recursive: distclean_local
+ $(make_recursive)
+
+maintainclean_recursive: maintainclean_local
+ $(make_recursive)
+
+dist_recursive: dist_local
+ $(make_recursive)
+
+maintain_recursive: maintain_local
+ $(make_recursive)
+# ----------------------------------------------------------------------
diff --git a/macros/latex/contrib/koma-script/source/japanlco.dtx b/macros/latex/contrib/koma-script/source/japanlco.dtx
new file mode 100644
index 0000000000..2d46fe6328
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/japanlco.dtx
@@ -0,0 +1,371 @@
+% \CheckSum{77}
+% \iffalse meta-comment
+% ======================================================================
+% japanlco.dtx
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% japanlco.dtx
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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: japanlco.dtx 2976 2018-04-17 05:31:42Z kohm $
+%<Ni&EARLY&LOW&head>%%% (run: Ni,EARLY,LOW,head)
+%<Ni&EARLY&LOW&body>%%% (run: Ni,EARLY,LOW,body)
+%<Ni&EARLY&HIGH&head>%%% (run: Ni,EARLY,HIGH,head)
+%<Ni&EARLY&HIGH&body>%%% (run: Ni,EARLY,HIGH,body)
+%<Ni&LATE&LOW&head>%%% (run: Ni,LATE,LOW,head)
+%<Ni&LATE&LOW&body>%%% (run: Ni,LATE,LOW,body)
+%<Ni&LATE&HIGH&head>%%% (run: Ni,LATE,HIGH,head)
+%<Ni&LATE&HIGH&body>%%% (run: Ni,LATE,HIGH,body)
+%<Ni&RIGHT&LOW&head>%%% (run: Ni,RIGHT,LOW,head)
+%<Ni&RIGHT&LOW&body>%%% (run: Ni,RIGHT,LOW,body)
+%<Kaku&LATE&LOW&head>%%% (run: Kaku,LATE,LOW,head)
+%<Kaku&LATE&LOW&body>%%% (run: Kaku,LATE,LOW,body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-04-17 07:31:42 +0200 (Tue, 17 Apr 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1962 $
+\endgroup
+\ProvidesFile{japanlco.dtx}[\filedate\space\filerevision\space
+ KOMA-Script (letter class options)]
+% \iffalse
+\documentclass{scrdoc}
+\usepackage[english]{babel}
+\usepackage[latin1]{inputenc}
+\usepackage{graphicx}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{japanlco.dtx}
+\title{\KOMAScript{} \partname\ \texttt{\filename}%
+ \footnote{This is \fileversion\ of file \texttt{\filename}.}}
+\date{\filedate}
+\author{Markus Kohm}
+
+\begin{document}
+ \maketitle
+ \tableofcontents
+ \DocInput{\filename}
+\end{document}
+%</dtx>
+% \fi
+%
+% \changes{v2.98}{2007/11/13}{first version based on lco files from Gernot
+% Hassenplfug}
+%
+% \section{Option Files for Japanese Letters}
+%
+% Gernot Hassenpflug wrote a lot of lco files for use of Japanese envelope
+% formats. Markus Kohm, the author of \KOMAScript, addapted them to an
+% extended version of \textsf{scrlttr2} and wrote a dtx file with the moste
+% recent lco files. Table~\ref{tab:japan.envelopes} shows all lco files of the
+% supported envelopes with their datas.
+%
+% \begin{table}
+%^^A x=22, w=90, y=12, h=45 NipponEL
+%^^A x=22, w=90, y=12, h=55 NipponEH
+%^^A x=25, w=90, y=12, h=45 NipponLL
+%^^A x=25, w=90, y=12, h=55 NipponLH
+%^^A x=98, w=90, y=28, h=45 NipponRL
+%^^A x=25, w=90, y=24, h=45 KakuLL
+% \begin{tabular}{@{}llllllll@{}}
+% \hline
+% lco file & \multicolumn3{l}{Envelope} & \multicolumn4{l@{}}{Window} \\
+% & Name & Length & Width & H-pos & V-pos & Width & Height\\
+% \cline{1-3}\cline{4-8}
+% \texttt{NipponEL} &
+% Chou/You 3 & 235\,mm & 120\,mm & 22\,mm & 12\,mm & 90\,mm & 45\,mm \\
+% \texttt{NipponEH} &
+% Chou/You 3 & 235\,mm & 120\,mm & 22\,mm & 12\,mm & 90\,mm & 55\,mm \\
+% \texttt{NipponLL} &
+% Chou/You 3 & 235\,mm & 120\,mm & 25\,mm & 12\,mm & 90\,mm & 45\,mm \\
+% \texttt{NipponLH} &
+% Chou/You 3 & 235\,mm & 120\,mm & 25\,mm & 12\,mm & 90\,mm & 55\,mm \\
+% \texttt{NipponEL} &
+% Chou/You 4 & 205\,mm & 90\,mm & 22\,mm & 12\,mm & 90\,mm & 45\,mm \\
+% \texttt{NipponEH} &
+% Chou/You 4 & 205\,mm & 90\,mm & 22\,mm & 12\,mm & 90\,mm & 55\,mm \\
+% \texttt{NipponLL} &
+% Chou/You 4 & 205\,mm & 90\,mm & 25\,mm & 12\,mm & 90\,mm & 45\,mm \\
+% \texttt{NipponLH} &
+% Chou/You 4 & 205\,mm & 90\,mm & 25\,mm & 12\,mm & 90\,mm & 55\,mm \\
+% \texttt{NipponRL} &
+% Chou/You 4 & 205\,mm & 90\,mm & 98\,mm & 28\,mm & 90\,mm & 45\,mm \\
+% \texttt{KakuLL} &
+% Kaku-kata & 312\,mm & 228\,mm & 25\,mm & 24\,mm & 90\,mm & 45\,mm \\
+% \hline
+% \end{tabular}
+% \caption{The supported Japanese envelopes}
+% \label{tab:japan.envelopes}
+% \end{table}
+%
+%\iftrue
+% \newcommand\japanenvelope[7]{%
+% \begingroup
+% \setlength{\unitlength}{1mm}^^A
+% \rotatebox{90}{\begin{picture}(#1,#2)
+% \thinlines
+% \put(0,0){^^A
+% \framebox(#1,#2){}^^A
+% }^^A
+% \put(5,5){\texttt{#7}: #1\,mm$\times$#2\,mm (B$\times$H)}^^A
+% \csname @tempcnta\endcsname #2
+% \advance\csname @tempcnta\endcsname -#4
+% \put(0,\csname @tempcnta\endcsname){\vector(1,0){#3}}^^A
+% \put(#3,\csname @tempcnta\endcsname){\vector(-1,0){#3}}^^A
+% \put(0,\csname @tempcnta\endcsname){^^A
+% \makebox(#3,\baselineskip\csname @gobble\endcsname){#3\,mm}}^^A
+% \put(#3,#2){\vector(0,-1){#4}}^^A
+% \put(#3,\csname @tempcnta\endcsname){\vector(0,1){#4}}^^A
+% \put(#3,\csname @tempcnta\endcsname){^^A
+% \makebox(0,#4)[l]{~#4\,mm}}
+% \advance\csname @tempcnta\endcsname -#6
+% \put(#3,\csname @tempcnta\endcsname){^^A
+% \framebox(#5,#6){}^^A
+% }^^A
+% \put(#3,\csname @tempcnta\endcsname){^^A
+% \makebox(0,5)[l]{~#5\,mm$\times$#6\,mm (B$\times$H)}^^A
+% }^^A
+% \end{picture}}
+% \endgroup
+% }
+%
+% \expandafter\ifx\csname rotatebox\endcsname\relax\else
+% \clearpage
+% \vspace*{\fill}\smash{\japanenvelope{235}{120}{22}{12}{90}{45}{Chou 3 EL}}%
+% \clearpage
+% \vspace*{\fill}\smash{\japanenvelope{235}{120}{22}{12}{90}{55}{Chou 3 EH}}%
+% \clearpage
+% \vspace*{\fill}\smash{\japanenvelope{235}{120}{25}{12}{90}{45}{Chou 3 LL}}%
+% \clearpage
+% \vspace*{\fill}\smash{\japanenvelope{235}{120}{25}{12}{90}{55}{Chou 3 LH}}%
+% \clearpage
+% \vspace*{\fill}\smash{\japanenvelope{205}{90}{22}{12}{90}{45}{Chou 4 EL}}%
+% \clearpage
+% \vspace*{\fill}\smash{\japanenvelope{205}{90}{22}{12}{90}{55}{Chou 4 EH}}%
+% \clearpage
+% \vspace*{\fill}\smash{\japanenvelope{205}{90}{25}{12}{90}{45}{Chou 4 LL}}%
+% \clearpage
+% \vspace*{\fill}\smash{\japanenvelope{205}{90}{25}{12}{90}{55}{Chou 4 LH}}%
+% \clearpage
+% \vspace*{\fill}\smash{\japanenvelope{205}{90}{98}{28}{90}{45}{Chou 4 RL}}%
+% \clearpage
+% \fi
+%\fi
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*lco>
+% \fi
+%
+% \subsubsection{The File Header}
+%
+% \iffalse
+%<*head>
+% \fi
+%
+% Declaration of the file.
+% \begin{macrocode}
+\ProvidesFile{%
+%<Ni> Nippon%
+%<Kaku> Kaku%
+%<EARLY> E%
+%<LATE> L%
+%<RIGHT> R%
+%<LOW> L%
+%<HIGH> H%
+}[\KOMAScriptVersion\space Japanese letter-class-option]
+% \end{macrocode}
+%
+% \begin{macro}{\LCOWarningNoLine}
+% \begin{macro}{\LCOWarning}
+% We need macros that are similar to |\ClassWarningNoLine| or
+% |\PackageWarningNoLine| and |\ClassWarning| or |\PackageWarning|
+\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
+%</head>
+%<*body>
+% \fi
+%
+% \subsubsection{Main-Part}
+%
+% Check the class.
+% \changes{v3.25a}{2018/04/17}{check not only for \textsf{scrlttr2} but also
+% for \textsf{scrletter}}^^A
+% \begin{macrocode}
+\@ifundefined{scr@fromname@var}{%
+ \LCOWarningNoLine{%
+%<Ni> Nippon%
+%<Kaku> Kaku%
+%<EARLY> E%
+%<LATE> L%
+%<RIGHT> R%
+%<LOW> L%
+%<HIGH> H%
+ }{%
+ This letter class option file was made only\MessageBreak
+ to be used with KOMA-Script letter class\MessageBreak
+ `scrlttr2' or letter package `scrletter'.\MessageBreak
+ Use with other classes and without that package\MessageBreak
+ can result in a lot of errors%
+ }%
+}{}
+% \end{macrocode}
+%
+% Is the expected paper size used?
+% \begin{macrocode}
+\LetterOptionNeedsPapersize{%
+%<Ni> Nippon%
+%<Kaku> Kaku%
+%<EARLY> E%
+%<LATE> L%
+%<RIGHT> R%
+%<LOW> L%
+%<HIGH> H%
+}{a4}
+% \end{macrocode}
+%
+% All the values
+% \changes{v3.03}{2009/03/04}{set term of variablen \texttt{fromzipcode}}
+% \begin{macrocode}
+\setkomavar*{fromzipcode}{J}
+% \end{macrocode}
+%^^A x=22, w=90, y=12, h=45 NipponEL
+%^^A x=22, w=90, y=12, h=55 NipponEH
+%^^A x=25, w=90, y=12, h=45 NipponLL
+%^^A x=25, w=90, y=12, h=55 NipponLH
+%^^A x=98, w=90, y=28, h=45 NipponRL
+%^^A x=25, w=90, y=24, h=45 KakuLL
+% \begin{macrocode}
+\@setplength{foldmarkhpos}{3.5mm}
+\@setplength{tfoldmarkvpos}{83mm}
+\@setplength{tfoldmarklength}{4mm}
+\@setplength{mfoldmarkvpos}{116mm}
+\@setplength{mfoldmarklength}{2mm}
+\@setplength{bfoldmarkvpos}{232mm}
+\@setplength{bfoldmarklength}{2mm}
+\@setplength{foldmarkvpos}{3.5mm}
+\@setplength{lfoldmarkhpos}{202mm}
+%<!Ni|!RIGHT>\@setplength{refvpos}{69mm}
+%<Ni&RIGHT>\@setplength{refvpos}{84mm}
+\@setplength{refaftervskip}{\baselineskip}
+%<EARLY>\@setplength{toaddrhpos}{22mm}
+%<LATE>\@setplength{toaddrhpos}{25mm}
+%<RIGHT>\@setplength{toaddrhpos}{-22mm}
+\@setplength{toaddrwidth}{90mm}
+%<Ni&!RIGHT>\@setplength{toaddrvpos}{12mm}
+%<Ni&RIGHT>\@setplength{toaddrvpos}{28mm}
+%<Kaku>\@setplength{toaddrvpos}{24mm}
+%<LOW>\@setplength{toaddrheight}{40mm}
+%<HIGH>\@setplength{toaddrheight}{50mm}
+\@setplength{toaddrindent}{\z@}
+\@setplength{backaddrheight}{5mm}
+\@setplength{specialmailindent}{\fill}
+\@setplength{specialmailrightindent}{1em}
+\@setplength{locwidth}{\z@}
+%<Ni>\@setplength{locheight}{55mm}%
+%<Kaku>\@setplength{locheight}{45mm}%
+\@setplength{firstheadvpos}{8mm}
+\@setplength{firstheadwidth}{\paperwidth}
+\ifdim \useplength{toaddrhpos}>\z@
+ \@addtoplength[-2]{firstheadwidth}{\useplength{toaddrhpos}}
+\else
+ \@addtoplength[2]{firstheadwidth}{\useplength{toaddrhpos}}
+\fi
+\@setplength{firstfootwidth}{\useplength{firstheadwidth}}
+\@setplength{firstfootvpos}{\paperheight}
+\@addtoplength{firstfootvpos}{-16mm}
+\@setplength{refwidth}{\z@}
+\@setplength{sigindent}{\z@}
+\@setplength{sigbeforevskip}{2\baselineskip}
+\let\raggedsignature=\centering
+% \end{macrocode}
+%
+% Additional settings:
+% \begin{macrocode}
+\ifcase\@alignfrom
+ \KOMAoptions{fromalign=locationright}%
+\or
+ \KOMAoptions{fromalign=locationright}%
+\or
+ \KOMAoptions{fromalign=locationright}%
+\fi
+% \end{macrocode}
+%
+% \iffalse
+%</body>
+%</lco>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `japanlco.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scraddr.dtx b/macros/latex/contrib/koma-script/source/scraddr.dtx
new file mode 100644
index 0000000000..b1deb16d47
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scraddr.dtx
@@ -0,0 +1,386 @@
+% \CheckSum{146}
+% \iffalse meta-comment
+% ======================================================================
+% scraddr.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.
+% ----------------------------------------------------------------------
+% scraddr.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: scraddr.dtx 1380 2013-10-01 15:31:55Z mjk $
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{scraddr.dtx}
+%</dtx>>
+%<scraddr>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+%<driver>\ProvidesFile{scraddr.drv}
+%<scraddr>\ProvidesPackage{scraddr}
+%<*dtx|scraddr|driver>
+ [2013/09/30 v1.1c KOMA-Script
+%</dtx|scraddr|driver>
+%<scraddr> package]
+%<*dtx|driver>
+ Script bundle]
+%</dtx|driver>
+%<*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
+%</dtx>
+%<*driver>
+\documentclass{scrdoc}
+\usepackage[english,ngerman]{babel}
+\usepackage[latin1]{inputenc}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scraddr.dtx}
+\title{Das scraddr\thanks{Diese Datei hat die Versionsnummer
+ \fileversion, letzte Änderung vom \filedate.}-Paket zur
+ Auswertung von Adressdateien}
+\author{Markus Kohm \and Jens-Uwe Morawski}
+\date{\filedate}
+
+\begin{document}
+ \maketitle
+ \tableofcontents
+ \DocInput{scraddr.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \changes{v1.1a}{2002/05/19}{Erste Version, die von \texttt{scrlettr}
+% losgelöst ist.}
+%
+% \section{Anleitung}
+%
+% \subsection{Rechtliches}
+% Es wird keinerlei Haftung übernommen für irgendwelche Schäden,
+% 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ötigte package |typearea.sty|.
+%
+% Das ursprünglich in |scrlettr.dtx| enthaltene
+% \texttt{scraddr}-Paket liegt nun hier als |scraddr.dtx| separat
+% vor. Dies wurde erforderlich, das ansonsten in |scrlettr.dtx| nur
+% noch obsolete Teile enthalten sind.
+%
+% Die Anleitung zu diesem Paket ist in der Anleitung zu
+% \textsf{KOMA-Script} zu finden. Diese liegt in Deutsch und in
+% Englisch vor.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \section{Implementierung}
+%
+%\iffalse
+% \begin{macrocode}
+%<*scraddr>
+%<*beta>
+\PackageWarningNoLine{scraddr}
+ {THIS IS A BETA VERSION!\MessageBreak
+ YOU SHOULD NOT USE THIS VERSION!\MessageBreak
+ YOU SHOULD INSTALL THE RELEASE FROM CTAN\MessageBreak
+ AND USE THAT INSTEAD OF THIS BETA VERSION}
+%</beta>
+%</scraddr>
+%\fi
+%
+%
+% \changes{v1.0}{1996/01/22}{Neues Package scraddr.}
+% \begin{macrocode}
+%<*scraddr>
+% \end{macrocode}
+% Dieses Paket liest beliebige - auch mehrere - Adressdateien im oben
+% beschriebenen Format ein und legt für jeden Eintrag eine Reihe von
+% Markos an. Bedingung dafür ist, dass das achte Element jedes
+% |\adrentry|-Eintrags - der Kürzeleintrag - nichtleer ist.
+% Dies gilt in gleicher Weise auch für das neunte Element neuerer
+% |\addrentry|-Einträge.
+% Im Falle von
+% identischen Kürzeleinträgen überschreiben spätere Einträge
+% frühere. Die Inhalte können dann über spezielle Befehle ermittelt
+% werden.
+%
+% \subsection{Optionen}
+%
+% \begin{option}{adrFreeIVempty}
+% \changes{v1.1a}{2002/05/19}{Neue Option}
+% \begin{option}{adrFreeIVshow}
+% \changes{v1.1a}{2002/05/19}{Neue Option}
+% \begin{option}{adrFreeIVwarn}
+% \changes{v1.1a}{2002/05/19}{Neue Option}
+% \begin{option}{adrFreeIVstop}
+% \changes{v1.1a}{2002/05/19}{Neue Option}
+% \begin{macro}{\@adrFIVerror}
+% \changes{v1.1a}{2002/05/19}{Neue (intern)}
+% Die neuen Optionen dienen der Wahl, ob die Verwendung von
+% \verb|\FreeIV| für einen Eintrag, der mit \verb|\adrentry|
+% definiert wurde, ignoriert wird, durch eine Ausgabe im Text
+% angezeigt wird, zu einer Warnung oder einem Fehler führt. Im Makro
+% wird die Einstellung gespeichert. Voreingestellt ist
+% \texttt{adrFreeIVshow}.
+% \begin{macrocode}
+\newcommand*{\@adrFIVerror}{}
+\DeclareOption{adrFreeIVempty}{\renewcommand*{\@adrFIVerror}{0}}
+\DeclareOption{adrFreeIVshow}{\renewcommand*{\@adrFIVerror}{1}}
+\DeclareOption{adrFreeIVwarn}{\renewcommand*{\@adrFIVerror}{2}}
+\DeclareOption{adrFreeIVstop}{\renewcommand*{\@adrFIVerror}{3}}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{option}
+%
+% \changes{v1.0a}{2001/08/07}{\cs{ExecuteOption}\cs{relax} korrigiert}
+% \changes{v1.1a}{2002/05/19}{Option \texttt{adrFreeIVshow} ist
+% Voreinstellung}
+% \begin{macrocode}
+\ExecuteOptions{adrFreeIVshow}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+% \subsection{Adressdatei einlesen}
+% \begin{macro}{\InputAdressFile}
+% Mit Hilfe des Befehls |\InputAddressFile| wird die angegebene
+% Adressdatei eingelesen und in Adressmakros gewandelt, die dann beliebig
+% verwendet werden können. Die Adressmakros werden global generiert.
+% Andere Makros insbesondere die Definitionen von |\adrentry| und
+% |\addrentry| bleiben erhalten.
+% \changes{v1.1}{2002/05/18}{Erweitert auf \cs{addrentry}
+% Einträge}
+% \changes{v1.1b}{2002/06/02}{Falls erforderlich werden auch
+% \cs{addrchar} und \cs{adrchar} definiert}
+% \begin{macrocode}
+\newcommand{\InputAddressFile}[1]{\begingroup
+ \ifcase\@adrFIVerror
+ \def\adrentry##1##2##3##4##5##6##7{%
+ \addrentry{##1}{##2}{##3}{##4}{##5}{##6}{##7}{}}%
+ \or
+ \def\adrentry##1##2##3##4##5##6##7##8{%
+ \addrentry{##1}{##2}{##3}{##4}{##5}{##6}{##7}{%
+ (entry FreeIV undefined at `##8')}{##8}}%
+ \or
+ \def\adrentry##1##2##3##4##5##6##7##8{%
+ \addrentry{##1}{##2}{##3}{##4}{##5}{##6}{##7}{%
+ \PackageWarning{scraddr}{%
+ `##8' was defined using \string\adrentry\MessageBreak
+ so \string\FreeIV-entry is not defined}}{##8}}%
+ \else
+ \def\adrentry##1##2##3##4##5##6##7##8{%
+ \addrentry{##1}{##2}{##3}{##4}{##5}{##6}{##7}{%
+ \PackageError{scraddr}{%
+ \string\FreeIV\space undefined at `##8'}{%
+ `##8' was defined using \string\adrentry\MessageBreak
+ so \string\FreeIV-entry is not defined.\MessageBreak
+ You may continue but you should check output}}{##8}}%
+ \fi
+ \providecommand*{\addrchar}[1]{}%
+ \providecommand*{\adrchar}{\addrchar}%
+ \def\addrentry##1##2##3##4##5##6##7##8##9{%
+ \def\@tempa{##9}\ifx\@tempa\@empty\else
+ \expandafter\gdef\csname ##9.LN\endcsname{##1}
+ \expandafter\gdef\csname ##9.FN\endcsname{##2}
+ \expandafter\gdef\csname ##9.A\endcsname{##3}
+ \expandafter\gdef\csname ##9.P\endcsname{##4}
+ \expandafter\gdef\csname ##9.FI\endcsname{##5}
+ \expandafter\gdef\csname ##9.FII\endcsname{##6}
+ \expandafter\gdef\csname ##9.FIII\endcsname{##7}
+ \expandafter\gdef\csname ##9.FIV\endcsname{##8}
+ \fi}
+% \end{macrocode}
+% Existiert die Datei nicht, so wird ein Fehler ausgegeben, ansonsten
+% wird die Ladeaktion angezeigt.
+% \begin{macrocode}
+ \InputIfFileExists{#1.adr}
+ {\typeout{Load addressfile: #1.adr.}}
+ {\PackageError{scraddr}
+ {File #1.adr not found}
+ {The addressfile you wanted is not
+ available}}
+ \endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Zugriff auf die Elemente der eingelesenen Adressdatei}
+%
+% Da keine Vorschriften existieren, wie genau das Kürzel aufgebaut sein
+% muss, können innerhalb des Kürzels theoretisch auch solche Zeichen
+% enthalten sein, die für Makronamen normalerweise ungeeignet sind.
+% Deshalb existiert ein Satz von Befehlen, über den auf die zu einem
+% Kürzel gehörenden Elemente zugegriffen werden kann. Dabei wird davon
+% ausgegangen, dass die Adressdatei dem zuvor vorgeschlagenen Aufbau
+% entspricht.
+%
+% \begin{macro}{\Name}
+% Der Name wird aus dem Vornamen (Firstname) und Nachnamen (Lastname)
+% zusammengesetzt, wobei einfach ein Leerzeichen dazwischen geklemmt
+% wird.
+% \begin{macrocode}
+\newcommand*{\Name}[1]{\FirstName{#1}\ \LastName{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\FirstName}
+% Der Vorname (Firstname) ist mit \emph{Kürzel}|.FN| codiert.
+% \begin{macrocode}
+\newcommand*{\FirstName}[1]{\csname #1.FN\endcsname}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\LastName}
+% Der Nachname (Lastname) ist mit \emph{Kürzel}|.LN| codiert.
+% \begin{macrocode}
+\newcommand*{\LastName}[1]{\csname #1.LN\endcsname}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Address}
+% Die Adresse (Address) ist mit \emph{Kürzel}|.A| codiert.
+% \begin{macrocode}
+\newcommand*{\Address}[1]{\csname #1.A\endcsname}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Telephone}
+% Die Telephonnummer (Telephone/Phone) ist mit \emph{Kürzel}|.P|
+% codiert.
+% \begin{macrocode}
+\newcommand*{\Telephone}[1]{\csname #1.P\endcsname}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\FreeI}
+% \begin{macro}{\FreeII}
+% Es existieren zwei freie Einträge, die mit \emph{Kürzel}|.FI| und
+% \emph{Kürzel}.|FII| codiert sind.
+% \begin{macrocode}
+\newcommand*{\FreeI}[1]{\csname #1.FI\endcsname}
+\newcommand*{\FreeII}[1]{\csname #1.FII\endcsname}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\Comment}
+% \begin{macro}{\FreeIII}
+% Das dritte freie Element ist über zwei Makros erreichbar.
+% Das Makro |\Comment| dient zur Kompatibilität mit älteren
+% |\adrentry|-Einträgen, da hier der vorletzte Parameter als
+% Kommentar gekennzeichnet war.
+% Das Makro |\FreeIII| ist passend zur Definition des Makros
+% |\addrentry| benannt.
+% Die Daten sind im Makro mit \emph{Kürzel}|.FIII| kodiert.
+% \changes{v1.1}{2002/05/18}{Erweitert auf addrentry Einträge}
+% \begin{macrocode}
+\newcommand*{\Comment}{}
+\newcommand*{\FreeIII}[1]{\csname #1.FIII\endcsname}
+\let\Comment\FreeIII
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\FreeIV}
+% Das letzte Makro gibt ebenfalls Zugriff auf ein freies Element, das mit
+% \emph{Kürzel}|.FIV| codiert ist. Dies wurde ebenfalls für
+% neue |\addrentry| Einträgen eingeführt. Bei älteren |\adrentry|
+% Einträgen, führt die Benutzung dieses Macros zu einer Warnung im Text.
+% \changes{v1.1}{2002/05/18}{Erweitert auf addrentry Einträge}
+% \begin{macrocode}
+\newcommand*{\FreeIV}[1]{\csname #1.FIV\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Ende des Pakets}
+% \begin{macrocode}
+%</scraddr>
+% \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*{Änderungsverzeichnis}
+% \markboth{Änderungsverzeichnis}{Änderungsverzeichnis}
+% \addcontentsline{toc}{section}{Änderungsverzeichnis}
+% Die erste Version des \textsf{KOMA-Script} Pakets
+% stammt vom 7.\,Juli~1994. Es werden nur die
+% Änderungen ab diesem Zeitpunkt dokumentiert.\par%
+% \vspace{1em}\noindent}
+%
+% \Finale
+%
+\endinput
+%
+% Ende der Datei `scraddr.dtx'
+
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrdoc.dtx b/macros/latex/contrib/koma-script/source/scrdoc.dtx
new file mode 100644
index 0000000000..ccb4e42cc7
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrdoc.dtx
@@ -0,0 +1,373 @@
+% ======================================================================
+% scrdoc.dtx
+% Copyright (c) Markus Kohm, 2002-2017
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrdoc.dtx
+% Copyright (c) Markus Kohm, 2002-2017
+%
+% 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.
+% ======================================================================
+%
+% Note: This class was made to shrink size of dtx files.
+% Do not use this class for anything because it may change
+% incompatible from distribution to distribution
+%
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{scrdoc}[%
+ 2016/04/12 v0.1e KOMA-Script source documentation class]
+
+% Load standard LaTeX documentation class, passing all options to it
+% but use scrartcl instead of article.
+\IfFileExists{scrartcl.cls}{%
+ \newcommand*{\sd@saved@LoadClass}{}
+ \let\sd@saved@LoadClass=\LoadClass
+ \renewcommand*{\LoadClass}[2][]{%
+ \begingroup
+ \edef\@tempc{##2}\def\@tempb{article}%
+ \ifx\@tempc\@tempb
+ \let\LoadClass\sd@saved@LoadClass
+ \def\@tempc{scrartcl}%
+ \fi
+ \edef\@tempc{%
+ \noexpand\endgroup\noexpand\sd@saved@LoadClass[{##1}]{\@tempc}}%
+ \@tempc
+ }
+ \newcommand*{\sd@saved@PassOptionsToClass}{}
+ \let\sd@saved@PassOptionsToClass=\PassOptionsToClass
+ \renewcommand*{\PassOptionsToClass}[2]{%
+ \begingroup
+ \edef\@tempc{##2}\def\@tempb{article}%
+ \ifx\@tempc\@tempb
+ \def\@tempc{scrartcl}%
+ \fi
+ \edef\@tempc{%
+ \noexpand\endgroup\noexpand\sd@saved@PassOptionsToClass{##1}{%
+ \@tempc}}%
+ \@tempc
+ }
+}{%
+ \typeout{^^J%
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
+ !!! You should generate KOMA-Script classes first!^^J%
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
+ ^^J%
+ }%
+ \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em%
+ M\kern.05em A\kern.1em-\kern.1em Script}}%
+ \def\addsec{\section*}%
+ \newenvironment{labeling}[2][]{%
+ \description
+ }{%
+ \csname enddescription\endcsname
+ }%
+ \newcommand*{\marginline}{\marginpar}%
+}
+\LoadClassWithOptions{ltxdoc}
+
+% Use two columns at index
+\setcounter{IndexColumns}{2}
+
+% If \EnableCrossrefs is used, we don't want following macros to be
+% indexed:
+
+\DoNotIndex{\.,\\,\ ,\@Alph,\@M}
+\DoNotIndex{\@abstrtfalse,\@abstrttrue,\@addtoreset,\@afterheading}
+\DoNotIndex{\@afterindentfalse,\@alph,\@arabic}
+\DoNotIndex{\@beginparpenalty}
+\DoNotIndex{\@car,\@cdr,\@centercr}
+\DoNotIndex{\@dblfloat,\@dotsep}
+\DoNotIndex{\@dottedtocline,\@empty,\@endparpenalty}
+\DoNotIndex{\@float,\@fontswitch}
+\DoNotIndex{\@gobbletwo}
+\DoNotIndex{\@hangfrom,\@highpenalty}
+\DoNotIndex{\@ifnextchar,\@ifundefined,\@itempenalty}
+\DoNotIndex{\@latex@warning}
+\DoNotIndex{\@m,\@medpenalty,\@minus,\@mkboth,\@mparswitchfalse}
+\DoNotIndex{\@mparswitchtrue}
+\DoNotIndex{\@ne,\@nil,\@nobreakfalse,\@nobreaktrue,\@nomath}
+\DoNotIndex{\@plus}
+\DoNotIndex{\@tempa,\@tempcnta,\@tempdima,\@tempskipka}
+\DoNotIndex{\@tempswafalse,\@tempswatrue}
+\DoNotIndex{\@tempb,\@tempcntb,\@tempdimb,\@tempskipkb}
+\DoNotIndex{\@tempswbfalse,\@tempswbtrue}
+\DoNotIndex{\@tempc,\@tempcntc,\@tempdimc,\@tempskipkc}
+\DoNotIndex{\@tocrmarg,\@topnewpage,\@topnum,\@twocolumnfalse}
+\DoNotIndex{\@twocolumntrue,\@twosidefalse,\@twosidetrue}
+\DoNotIndex{\@whiledim,\@whilenum}
+\DoNotIndex{\addcontentsline,\addpenalty,\addtocontents,\addtolength}
+\DoNotIndex{\addvspace,\advance}
+\DoNotIndex{\begin,\begingroup,\bfseries,\box,\bullet}
+\DoNotIndex{\c@figure,\c@page,\c@secnumdepth,\c@table,\c@tocdepth}
+\DoNotIndex{\cdot,\centering,\changes,\cleardoublepage,\clearpage}
+\DoNotIndex{\cmd,\col@number,\CurrentOption,\CodelineIndex,\cs}
+\DoNotIndex{\day,\dblfloatpagefraction,\dbltopfraction}
+\DoNotIndex{\DeclareOldFontCommand,\DeclareOption,\def,\DisableCrossrefs}
+\DoNotIndex{\divide,\DoNotIndex}
+\DoNotIndex{\ifdim,\else,\fi,\empty,\em,\EnableCrossrefs,\end}
+\DoNotIndex{\end@dblfloat}
+\DoNotIndex{\end@float,\endgroup,\endlist,\endquotation,\endtitlepage}
+\DoNotIndex{\everypar,\ExecuteOptions,\expandafter}
+\DoNotIndex{\fboxrule,\fboxsep}
+\DoNotIndex{\gdef,\global}
+\DoNotIndex{\hangindent,\hbox,\hfil,\hrule,\hsize,\hskip,\hspace,\hss}
+\DoNotIndex{\if@tempswa,\ifcase,\or,\fi,\fi}
+\DoNotIndex{\ifnum,\ifodd,\ifx,\fi,\fi,\fi}
+\DoNotIndex{\include,\input,\InputIfFileExists,\item,\itshape}
+\DoNotIndex{\kern,\kernel@ifnextchar}
+\DoNotIndex{\leavevmode,\leftmark,\leftskip,\let,\lineskip}
+\DoNotIndex{\list,\long}
+\DoNotIndex{\m@ne,\m@th,\marginpar,\markboth,\markright,\mathbf,\mathcal}
+\DoNotIndex{\mathit,\mathnormal,\mathrm,\mathsf,\mathtt,\MessageBreak}
+\DoNotIndex{\month}
+\DoNotIndex{\newblock,\newcommand,\newcount,\newcounter,\newdimen}
+\DoNotIndex{\newenvironment,\newlength,\newpage,\nobreak,\noindent}
+\DoNotIndex{\normalfont,\normallineskip,\normalsize,\null,\number}
+\DoNotIndex{\numberline,\normalcolor}
+\DoNotIndex{\OldMakeindex,\OnlyDescription,\overfullrule}
+\DoNotIndex{\p@,\PackageError,\PackageInfo,\PackageWarningNoLine}
+\DoNotIndex{\pagenumbering,\pagestyle,\par,\paragraph,\parbox}
+\DoNotIndex{\PassOptionsToPackage,\pcal,\penalty,\pmit,\PrintChanges}
+\DoNotIndex{\PrintIndex,\ProcessOptions,\protect,\providecommand}
+\DoNotIndex{\ProvidesClass}
+\DoNotIndex{\raggedbottom,\raggedleft,\raggedright,\refstepcounter,\relax}
+\DoNotIndex{\renewcommand,\RequirePackage,\reset@font}
+\DoNotIndex{\rightmargin,\rightmark,\rightskip,\rmfamily,\@Roman,\@roman}
+\DoNotIndex{\scshape,\secdef,\setbox,\setcounter,\setlength}
+\DoNotIndex{\settowidth,\sfcode,\sffamily,\skip,\sloppy,\slshape,\space}
+\DoNotIndex{\string}
+\DoNotIndex{\the,\thispagestyle,\triangleright,\ttfamily}
+\DoNotIndex{\twocolumn,\typeout}
+\DoNotIndex{\undefined,\usecounter}
+\DoNotIndex{\vfil,\vfill,\vspace}
+\DoNotIndex{\wd,\xdef,\year,\z@}
+% More may be set by the source files.
+
+% Redefine some defaults to handle not only macros and environments
+% but also options, Length, Counters, KOMAvars. Also define some new.
+\def\macro{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{0}}
+\def\environment{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{1}}
+\def\option{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{2}}
+\def\Length{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{3}}
+\def\Counter{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{4}}
+\def\KOMAvar{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{5}}
+\def\KOMAfont{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{6}}
+\long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
+ \edef\saved@macroname{\string#2}%
+ \ifcase #1
+ \edef\saved@indexname{\expandafter\@gobble\string#2}%
+ \else
+ \let\saved@indexname\saved@macroname
+ \fi
+ \def\makelabel##1{\llap{##1}}%
+ \if@inlabel
+ \let\@tempa\@empty \count@\macro@cnt
+ \loop \ifnum\count@>\z@
+ \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne
+ \repeat
+ \edef\makelabel##1{\llap{\vtop to\baselineskip
+ {\@tempa\hbox{##1}\vss}}}%
+ \advance \macro@cnt \@ne
+ \else \macro@cnt\@ne \fi
+ \edef\@tempa{\noexpand\item[%
+ \ifcase #1
+ \noexpand\PrintMacroName
+ \or
+ \noexpand\PrintEnvName
+ \or
+ \noexpand\PrintOptionName
+ \or
+ \noexpand\PrintLengthName
+ \or
+ \noexpand\PrintCounterName
+ \or
+ \noexpand\PrintKOMAvarName
+ \or
+ \noexpand\PrintKOMAfontName
+ \fi
+ {\string#2}]}%
+ \@tempa
+ \global\advance\c@CodelineNo\@ne
+ \ifcase #1
+ \SpecialMainIndex{#2}\nobreak
+ \DoNotIndex{#2}%
+ \or
+ \SpecialMainEnvIndex{#2}\nobreak
+ \or
+ \SpecialMainOptionIndex{#2}\nobreak
+ \or
+ \SpecialMainLengthIndex{#2}\nobreak
+ \DoNotIndex{#2}%
+ \or
+ \SpecialMainCounterIndex{#2}\nobreak
+ \or
+ \SpecialMainKOMAvarIndex{#2}\nobreak
+ \or
+ \SpecialMainKOMAfontIndex{#2}\nobreak
+ \fi
+ \global\advance\c@CodelineNo\m@ne
+ \ignorespaces}
+\let\endoption\endmacro
+\let\endLength\endmacro
+\let\endCounter\endmacro
+\let\endKOMAvar\endmacro
+
+% Some new command
+\newcommand*{\File}[1]{\texttt{\mbox{#1}}}
+\newcommand*{\Class}{\File}
+\newcommand*{\Package}{\File}
+\newcommand*{\Macro}{\cs}
+\newcommand*{\Option}{\File}
+
+% The new names we need
+\providecommand*{\EnvName}{Umgebung}% This is german
+\providecommand*{\EnvsName}{Umgebungen}% This is german
+\providecommand*{\OptionName}{Option}% This is german
+\providecommand*{\OptionsName}{Optionen}% This is german
+\providecommand*{\PrintOptionName}[1]{\strut \MacroFont #1\ }
+\providecommand*{\PrintDescribeOption}[1]{\strut \MacroFont #1\ }
+\providecommand*{\LengthName}{L\"ange}% This is german
+\providecommand*{\LengthsName}{L\"angen}% This is german
+\providecommand*{\PrintLengthName}[1]{\strut \MacroFont \string #1\ }
+\providecommand*{\PrintDescribeLength}[1]{\strut \MacroFont \string #1\ }
+\providecommand*{\CounterName}{Z\"ahler}% This is german
+\providecommand*{\CountersName}{Z\"ahler}% This is german
+\providecommand*{\PrintCounterName}[1]{\strut \MacroFont #1\ }
+\providecommand*{\PrintDescribeCounter}[1]{\strut \MacroFont #1\ }
+\providecommand*{\KOMAvarName}{Variable}% This is german
+\providecommand*{\KOMAvarsName}{Variablen}% This is german
+\providecommand*{\PrintKOMAvarName}[1]{\strut \MacroFont #1\ }
+\providecommand*{\PrintDescribeKOMAvar}[1]{\strut \MacroFont #1\ }
+\providecommand*{\KOMAfontName}{Element mit Schrift}% This is german
+\providecommand*{\KOMAfontsName}{Elemente mit Schrift}% This is german
+\providecommand*{\PrintKOMAfontName}[1]{\strut \MacroFont #1\ }
+\providecommand*{\PrintDescribeKOMAfont}[1]{\strut \MacroFont #1\ }
+
+% Defining new main index commands
+\newcommand*{\SpecialMainIndex@Type}[3]{%
+ \@bsphack\special@index{%
+ #1\actualchar
+ {\string\ttfamily\space#1}
+ (\string #2)%
+ \encapchar main}%
+ \special@index{%
+ #3:\levelchar{%
+ \string\ttfamily\space#1}\encapchar
+ main}\@esphack}
+\renewcommand*{\SpecialMainEnvIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\EnvName}{\EnvsName}}
+\newcommand*{\SpecialMainOptionIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\OptionName}{\OptionsName}}
+\newcommand*{\SpecialMainLengthIndex}[1]{%
+ \@bsphack\SpecialIndex@{#1}{(\string\LengthName )\encapchar main}%
+ \@esphack}
+\newcommand*{\SpecialMainCounterIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\CounterName}{\CountersName}}
+\newcommand*{\SpecialMainKOMAvarIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\KOMAvarName}{\KOMAvarsName}}
+\newcommand*{\SpecialMainKOMAfontIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\KOMAfontName}{\KOMAfontsName}}
+
+% Defining new usage index commands
+\newcommand*{\SpecialIndex@Type}[3]{%
+ \@bsphack
+ \index{#1\actualchar{\protect\ttfamily#1}
+ (#2)\encapchar usage}%
+ \index{#3:\levelchar{\protect\ttfamily#1}\encapchar
+ usage}\@esphack}
+\renewcommand{\SpecialEnvIndex}[1]{%
+ \SpecialIndex@Type{#1}{\EnvName}{\EnvsName}}
+\newcommand*{\SpecialOptionIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\OptionName}{\OptionsName}}
+\newcommand*{\SpecialLengthIndex}[1]{\@bsphack%
+ {\let\special@index\index
+ \SpecialIndex@{#1}{(\string\LengthName )\encapchar usage}}%
+ \@esphack}
+\newcommand*{\SpecialCounterIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\CounterName}{\CountersName}}
+\newcommand*{\SpecialKOMAvarIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\KOMAvarName}{\KOMAvarsName}}
+
+% Define new describe commands
+\newcommand*{\newDescribe}[1]{%
+ \expandafter\newcommand\expandafter*\csname Describe#1\endcsname{%
+ \leavevmode\@bsphack\begingroup\MakePrivateLetters
+ \csname Describe@#1\endcsname}%
+ \expandafter\newcommand\expandafter*\csname Describe@#1\endcsname[1]{%
+ \endgroup
+ \marginpar{\raggedleft\csname PrintDescribe#1\endcsname{##1}}%
+ \csname Special#1Index\endcsname{##1}\@esphack\ignorespaces}%
+}
+\newDescribe{Option}
+
+% We use left margin very much, so shift everything to the right
+\if@twoside
+\else
+\addtolength{\oddsidemargin}{1in}
+\setlength{\oddsidemargin}{1.5\oddsidemargin}
+\addtolength{\oddsidemargin}{-1in}
+\fi
+
+% We need some logos:
+\providecommand*{\eTeX}{$\m@th\varepsilon$-\TeX}
+
+% Terms for other languages:
+\AtBeginDocument{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname addto\endcsname\relax
+ \ClassWarning{scrdoc}{Package babel not loaded}%
+ \else
+ \addto\captionsenglish{%
+ \def\partname{File}%
+ }%
+ \addto\captionsngerman{%
+ \def\partname{Datei}%
+ }%
+ \ClassInfo{scrdoc}{Select language \languagename}%
+ \expandafter\selectlanguage\expandafter{\languagename}%
+ \fi
+}
+
+\endinput
+% end of ``scrdoc.cls''
diff --git a/macros/latex/contrib/koma-script/source/scrdocstrip.tex b/macros/latex/contrib/koma-script/source/scrdocstrip.tex
new file mode 100644
index 0000000000..0c96d0f00d
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrdocstrip.tex
@@ -0,0 +1,324 @@
+% ======================================================================
+% scrdocstrip.tex
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-2018
+%
+% 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=-1
+ \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\XKNL{^\empty^J\perCent|^^J}
+\def\genericWarning#1#2{%
+ \string\immediate\string\write17{\KNL
+ +----------------------------------------------------------------------\KNL
+ | WARNING (`#1'):\XKNL
+ +----------------------------------------------------------------------\KNL
+ \@genericWarning#2^^J\@nil
+ +----------------------------------------------------------------------\KNL
+ }^^J%
+}
+\def\@genericWarning#1^^J#2\@nil{%
+ | #1\XKNL
+ \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
+
+\def\fromoptional#1{%
+ \immediate\openin\inputcheck\uptospace#1 \qStop\relax
+ \ifeof\inputcheck
+ \Msg{Ignorring not existing optional file `#1'.}%
+ \expandafter\@gobbletwo
+ \else
+ \immediate\closein\inputcheck
+ \expandafter\from
+ \fi
+ {#1}%
+}
+
+\process@first@batchfile
+\endinput
+%
+% end of file `scrdocstrip.tex'
diff --git a/macros/latex/contrib/koma-script/source/scrextend.dtx b/macros/latex/contrib/koma-script/source/scrextend.dtx
new file mode 100644
index 0000000000..c76f048bd7
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrextend.dtx
@@ -0,0 +1,245 @@
+% \CheckSum{75}
+% \iffalse meta-comment
+% ======================================================================
+% scrextend.dtx
+% Copyright (c) Markus Kohm, 2002-2017
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrextend.dtx
+% Copyright (c) Markus Kohm, 2002-2017
+%
+% 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: scrextend.dtx 2640 2017-05-08 09:36:55Z kohm $
+%<preidentify>%%% (run: preidentify)
+%<prepare>%%% (run: prepare)
+%<option>%%% (run: option)
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2017-05-08 11:36:55 +0200 (Mon, 08 May 2017) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1962 $
+\endgroup
+\ProvidesFile{scrextend.dtx}[\filedate\space\filerevision\space
+ KOMA-Script package source
+ (extend other classes)]
+\documentclass[parskip=half-]{scrdoc}
+\usepackage[english,ngerman]{babel}
+\usepackage[latin1]{inputenc}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrextend.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}
+%</dtx>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v3.00}{2008/05/01}{neues Paket}
+%
+% \section{Erweiterungen für andere Klassen}
+%
+% Dieses Paket dient dazu, einige Möglichkeiten von \KOMAScript{} auch anderen
+% Klassen zur Verfügung zustellen. Dafür darf dieses Paket nicht mit einer
+% \KOMAScript-Klasse verwendet werden.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \subsection{Vorbereitung noch vor der Identifizierung des Pakets}
+%
+% Die Vorbereitung ist einfach. Es wird nur getestet, ob bereits eine
+% \KOMAScript-Klasse geladen ist. Falls dem so ist, wird eine Warnung
+% ausgegeben und dafür gesorgt, dass das Paket nicht weiter abgearbeitet wird.
+%
+% \iffalse
+%<*preidentify>
+% \fi
+%
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname KOMAClassName\endcsname\relax\else
+ \PackageWarning{scrextend}{%
+ This package was made to extend other classes but\MessageBreak
+ KOMA-Script classes by some features of the\MessageBreak
+ KOMA-Script classes.\MessageBreak
+ It should never be used with a KOMA-Script class.\MessageBreak
+ Loading of the package will be aborted\@gobble%
+ }%
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+%
+% \iffalse
+%</preidentify>
+%<*identify>
+% \fi
+%
+% \subsection{Identifizierung des Pakets}
+%
+% \begin{macrocode}
+\ProvidesPackage{scrextend}[%
+%!KOMAScriptVersion
+ package (extend other classes with features of KOMA-Script classes)%
+]
+% \end{macrocode}
+%
+% \iffalse
+%</identify>
+%<*prepare>
+% \fi
+%
+% \subsection{Vorbereitung vor den Optionen}
+%
+% \begin{macro}{\scr@ext@activate}
+% \begin{macro}{\scr@ext@activateable}
+% \begin{macro}{\scr@ext@addto@activateable}
+% \begin{sloppypar}
+% Einige Dinge werden nur dann definiert, wenn dies gefordert ist. Dazu werden
+% die entsprechenden Definitionen in das zweite Argument von
+% \cs{scr@ext@activateable}\marg{Kürzel} gepackt, wodurch sie als
+% \cs{scr@ext@activate@}\meta{Kürzel} definiert werden, und anschließend
+% \cs{csname}~\texttt{scr@ext@immediate@}\meta{Kürzel}\cs{endcsname}
+% ausgeführt. Um das dann zu aktivieren wird
+% \cs{scr@ext@activate}\marg{Kürzel} aufgerufen (beispielsweise innerhalb
+% einer Option). Mit \cs{scr@ext@addto@activateable} können Aktivierungen
+% entsprechend um weitere Definitionen erweitert werden.
+% \end{sloppypar}
+% \begin{macrocode}
+\newcommand*{\scr@ext@activate}[1]{%
+ \scr@ifundefinedorrelax{scr@ext@activate@#1}{%
+ \@namedef{scr@ext@immediate@#1}{%
+ \expandafter\let\csname scr@ext@immediate@#1\endcsname\relax
+ \csname scr@ext@activate@#1\endcsname
+ }%
+ }{%
+ \csname scr@ext@activate@#1\endcsname
+ \expandafter\let\csname scr@ext@activate@#1\endcsname\relax
+ }%
+}
+\newcommand*{\scr@ext@activateable}[1]{%
+ \expandafter\newcommand\expandafter*\csname scr@ext@activate@#1\endcsname
+}
+\newcommand*{\scr@ext@addto@activateable}[1]{%
+ \scr@ifundefinedorrelax{scr@ext@activate@#1}{%
+ \expandafter\newcommand\expandafter*\csname scr@ext@activate@#1\endcsname
+ }{%
+ \expandafter\g@addto@macro\csname scr@ext@activate@#1\endcsname
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%</prepare>
+%<*option>
+% \fi
+%
+% \subsection{Optionen}
+%
+% Das Paket kennt eine universelle Option, um aktivierbare Möglichkeiten zu
+% aktivieren. Diese Option steht aber nur während dem Laden des Pakets zur
+% Verfügung!
+%
+% \begin{option}{extendedfeature}
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \changes{v3.17}{2015/03/09}{Speicherung des Werts in der internen
+% Liste}^^A
+% \begin{macrocode}
+\KOMA@key{extendedfeature}{%
+ \scr@ext@activate{#1}%
+ \AtEndOfPackage{%
+ \scr@ifundefinedorrelax{scr@ext@immediate@#1}{}{%
+ \PackageWarningNoLine{unkown extended feature `#1'\MessageBreak
+ You have used option `extendedfeature' to\MessageBreak
+ activate an extended feature `#1',\MessageBreak
+ but there is no such extended feature.\MessageBreak
+ See the KOMA-Script manual for more\MessageBreak
+ information about known activatable\MessageBreak
+ extended features%
+ }%
+ }%
+ }%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@xadd{.scrextend.sty}{extendedfeature}{#1}%
+}
+\AtEndOfPackage{%
+ \KOMA@key{extendedfeature}{%
+ \def\FamilyKeyState{Option `extendedfeature' too late}%
+ }%
+}
+% \end{macrocode}
+% \end{option}
+%
+% \iffalse
+%</option>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrextend.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrhack.dtx b/macros/latex/contrib/koma-script/source/scrhack.dtx
new file mode 100644
index 0000000000..7c89acf9ce
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrhack.dtx
@@ -0,0 +1,1314 @@
+% \CheckSum{941}
+% \iffalse meta-comment
+% ======================================================================
+% scrhack.dtx
+% Copyright (c) Markus Kohm, 2008-2019
+%
+% 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.
+%
+% To create `scrhack.sty' run `tex scrhack.dtx'. Using LaTeX instead
+% of TeX would generate the implementation documentation.
+% ----------------------------------------------------------------------
+% scrhack.dtx
+% Copyright (c) Markus Kohm, 2008-2019
+%
+% 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.
+%
+% `scrhack.sty' kann durch den Aufruf `tex scrhack.dtx' erzeugt
+% werden. Bei Verwendung von LaTeX statt TeX wird hingegen die
+% Implementierungsdokumentation erzeugt.
+% ======================================================================
+% \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: scrhack.dtx 3063 2019-02-01 07:39:11Z kohm $
+%<package&identify>%%% using: package,identify
+%<package&option>%%% using: package,option
+%<package&body>%%% using: package,body
+%<package&identity>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2019-02-01 08:39:11 +0100 (Fri, 01 Feb 2019) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1962 $
+\endgroup
+\ProvidesFile{scrhack.dtx}[\filedate\space\filerevision\space
+%</dtx>
+%<package&identify>\ProvidesPackage{scrhack}[%
+%<hyperref&identify>\ProvidesFile{hyperref.hak}[%
+%<float&identify>\ProvidesFile{float.hak}[%
+%<floatrow&identify>\ProvidesFile{floatrow.hak}[%
+%<listings&identify>\ProvidesFile{listings.hak}[%
+%<setspace&identify>\ProvidesFile{setspace.hak}[%
+%<lscape&identify>\ProvidesFile{lscape.hak}[%
+%<nomencl&identify>\ProvidesFile{nomencl.hak}[%
+%<*dtx|identify>
+%!KOMAScriptVersion
+ package
+%<*dtx>
+ source
+%</dtx>
+%<*!identify>
+ (hacking other packages)%
+%</!identify>
+%</dtx|identify>
+%<hack&identify> (hacking package
+%<hyperref&identify> hyperref)%
+%<float&identify> float)%
+%<floatrow&identify> floatrow)%
+%<listings&identify> listings)%
+%<setspace&identify> setspace)%
+%<lscape&identify> lscape)%
+%<nomencl&identify> nomencl)%
+%<*dtx|identify>
+]
+%</dtx|identify>
+%<*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}%
+ }%
+ \file{setspace.hak}{%
+ \from{scrkernel-version.dtx}{file,setspace.hak}%
+ \from{scrhack.dtx}{hack,setspace,identify}%
+ \from{scrhack.dtx}{hack,setspace,body}%
+ }%
+ \file{lscape.hak}{%
+ \from{scrkernel-version.dtx}{file,lscape.hak}%
+ \from{scrhack.dtx}{hack,lscape,identify}%
+ \from{scrhack.dtx}{hack,lscape,body}%
+ }%
+ \file{nomencl.hak}{%
+ \from{scrkernel-version.dtx}{file,nomencl.hak}%
+ \from{scrhack.dtx}{hack,nomencl,identify}%
+ \from{scrhack.dtx}{hack,nomencl,body}%
+ }%
+ }
+ \@@input scrstrop.inc
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+\documentclass[parskip=half-]{scrdoc}
+\usepackage[latin1]{inputenc}
+\usepackage[english,ngerman]{babel}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\newcommand*{\Environment}[1]{\texttt{\mbox{#1}}}
+\CodelineIndex
+\RecordChanges
+\begin{document}
+\GetFileInfo{scrhack.dtx}
+\DocInput{scrhack.dtx}
+\end{document}
+%</dtx>
+%\fi
+%
+% \selectlanguage{english}
+%
+% \let\PName\meta
+% \let\Parameter\marg
+% \providecommand*{\PParameter}[1]{\texttt{\{#1\}}}
+% \providecommand*{\Counter}[1]{\texttt{\mbox{#1}}}
+% \providecommand*{\Option}[1]{\texttt{#1}}
+% \providecommand*{\OptionValue}[2]{\texttt{\mbox{#1=}\linebreak[3]\mbox{#2}}}
+% \let\PValue\texttt
+%
+% \title{\KOMAScript{} \partname\ \texttt{\filename}%
+% \thanks{This file is version \fileversion\ of \texttt{\filename}.}}
+% \date{\filedate}
+% \author{Markus Kohm\thanks{mailto:komascript(at)gmx.info}}
+% \maketitle
+% \begin{abstract}
+% Some packages from other authors may have problems with \KOMAScript{}. In
+% my opinion some packages could be improved. With some packages this makes
+% only sense, if \KOMAScript{} was used. With some other packages the
+% package author has another opinion. Sometimes proposals was never
+% answered. Package \Package{scrhack} contains all those improvement
+% proposals for other packages. This means, \Package{scrhack} redefines
+% macros of packages from other authors! The redefinitions are only
+% activated, if those packages were loaded. Users may prevent
+% \Package{scrhack} from redefining macros of individual packages.
+% \end{abstract}
+% \tableofcontents
+%
+% \selectlanguage{ngerman}
+% \StopEventually{\PrintIndex\PrintChanges}
+% \changes{v3.03}{2009/03/12}{erste Version des Pakets}^^A
+%
+% \section{Implementation of \Package{scrhack}}
+%
+% \changes{v3.04b}{2009/08/05}{Die Reihenfolge von Anweisungen und Optionen
+% grundlegend geändert, um das Paket \textsf{scrhack} unabhängiger von der
+% Reihenfolge beim Laden von Paketen zu machen.}^^A
+%
+% \subsection{Optionen}
+%
+% \iffalse
+%<*package&option>
+% \fi
+%
+% Das Paket bedient sich \cs{KOMAoptions} etc. aus \textsf{scrkbase} (dieses
+% wird übrigens direkt per \texttt{scrkbase.dtx} geladen).
+%
+% Per Option kann gewählt werden, welche Manipulationen geladen werden
+% sollen. Alle diese Optionen können jedoch nur bis zum Laden des
+% entsprechenden Pakets oder dem Laden von \textsf{scrhack} gesetzt
+% werden (es zählt, was später kommt). Anschließend sind sie wirkungslos.
+%
+% \subsection{Verwendete Anweisungen}
+%
+% \iffalse
+%</package&option>
+%<*package&body>
+% \fi
+%
+% \begin{macro}{\scr@ifexpected}
+% Wenn die im ersten Argument angegebene Anweisung nach Ausführung der im
+% zweiten Argument angegebenen Anweisungen unverändert ist, dann soll das
+% dritte Argument ausgeführt werden, sonst das vierte.
+% \begin{macrocode}
+\newcommand{\scr@ifexpected}[2]{%
+ \begingroup
+ \let\@tempa#1
+ #2
+ \ifx\@tempa#1
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scr@hack@load}
+% Wenn die Datei mit dem Namen des zweiten Arguments und der Endung des ersten
+% Arguments so geladen wurde, dass \LaTeX{} eine Versionsinfo dazu gespeichert
+% hat, dann soll zusätzlich der entsprechende Hack geladen werden.
+% \begin{macrocode}
+\newcommand*{\scr@hack@load}[2]{%
+ \expandafter\ifx\csname ver@#2.#1\endcsname\relax
+ \expandafter\@secondoftwo
+ \else
+% \end{macrocode}
+% Allerdings wird jeder Hack nur genau einmal geladen:
+% \begin{macrocode}
+ \expandafter\ifx\csname ver@#2.hak\endcsname\relax
+ \expandafter\expandafter\expandafter\@firstoftwo
+ \else
+ \expandafter\expandafter\expandafter\@secondoftwo
+ \fi
+ \fi
+ {%
+ \PackageInfo{scrhack}{loading #2 hack}%
+ \edef\reserved@a{%
+ \noexpand\makeatletter\noexpand\input{#2.hak}%
+ \noexpand\catcode`\noexpand\@\the\catcode`\@\relax
+ }\reserved@a
+ }{%
+ \PackageInfo{scrhack}{ignorring #2 hack}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</package&body>
+% \fi
+%
+% \subsection{Der \textsf{hyperref}-Hack}
+%
+% \textsf{hyperref} setzt den Anker zu der Stern-Variante einer Überschrift
+% hinter die Überschrift, während es bei der nicht Stern-Variante den Anker
+% auch dann vor die Überschrift setzt, wenn die Überschrift aufgrund von
+% \texttt{secnumdepth} nicht nummeriert wird. Der Hack setzt den Anker
+% einheitlich vor die Überschrift.
+%
+% \begin{option}{hyperref}
+% \changes{v3.12}{2013/03/05}{Signalisierung mit
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
+% \cs{KOMAExecuteOptions}}^^A
+% \begin{macrocode}
+%<*package&option>
+\KOMA@ifkey{hyperref}{@scrhack@hyperref}%
+\KOMAExecuteOptions{hyperref=true}%
+%</package&option>
+%<*package&body>
+% \end{macrocode}
+% \changes{v3.04b}{2009/11/09}{\textsf{hyperref}-Hack wird früher geladen}^^A
+% \changes{v3.17}{2015/03/09}{Neuere \textsf{hyperref}-Version deaktiviert
+% ggf. Option \texttt{hyperref}}^^A
+% \changes{v3.18}{2015/05/22}{Neuere \KOMAScript-Versionen deaktivieren
+% ggf. Option \texttt{hyperref}}^^A
+% Hier muss ein wenig trickreicher gearbeitet werden, weil \textsf{hyperref}
+% die Treiberdatei per \cs{AtEndOfPackage} lädt und der Hack erst danach
+% installiert werden darf. Mit \cs{AfterPackage*} alleine, würde der Hack aber
+% vor dem Laden der Treiberdatei installiert. Dafür können wir aber sicher
+% sein, dass ein innerhalb von \cs{AfterPackage*} aufgerufenes
+% \cs{AtEndOfPackage} garantiert nach dem Laden der Treiberdatei ausgeführt
+% wird. Das funktioniert auch noch, wenn \textsf{hyperref} bereits geladen
+% wurde. In dem Fall wird der Code einfach nach dem Ende von \textsf{scrhack}
+% statt nach dem Ende von \textsf{hyperref} ausgeführt.
+% \begin{macrocode}
+\BeforePackage{hyperref}{%
+ \scr@ifundefinedorrelax{hy@insteadofrefstepcounter}{}{%
+ \PackageInfo{scrhack}{hyperref hack deactivated because of\MessageBreak
+ detection of KOMA-Script class, that doesn't\MessageBreak
+ need that hack,}%
+ \KOMAExecuteOptions[.scrhack.sty]{hyperref=false}%
+ }%
+}
+\AfterPackage*{hyperref}{%
+ \if@scrhack@hyperref
+ \@ifpackagelater{hyperref}{2009/11/24}{%
+ \PackageInfo{scrhack}{hyperref hack deactivated because of\MessageBreak
+ detection of hyperref version, that doesn't\MessageBreak
+ need that hack,}%
+ \KOMAExecuteOptions[.scrhack.sty]{hyperref=false}%
+ }{%
+ \AtEndOfPackage{%
+ \KOMA@key[.scrhack.sty]{hyperref}{%
+ \PackageWarning{scrhack}{option `hyperref=#1' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \if@scrhack@hyperref\scr@hack@load\@pkgextension{hyperref}\fi
+ }%
+ }%
+ \fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}
+%
+%
+% \begin{macro}{\@schapter}
+% \begin{macro}{\@spart}
+% \begin{macro}{\@ssect}
+% Eigentlich wird hier gar nicht \texttt{hyperref.sty} verändert, sondern
+% diverse Treiberdateien. Sobald das Paket \textsf{hyperref} geladen ist, ist
+% auch die passende Treiberdatei geladen und außerdem sind alle
+% Treiberdateien, die entsprechende Definitionen vornehmen, gleichermaßen
+% betroffen. Also kann der entsprechende Patch einfach erfolgen, wenn hyperref
+% geladen ist (was bereits von \cs{scr@hack@load} getestet wurde). Es muss
+% also nur noch sichergestellt werden, dass die umzudefinierenden Macros
+% derzeit den erwarteten Inhalt haben.
+% \begin{macrocode}
+%<*hyperref&body>
+\scr@ifexpected\@schapter{%
+ \def\@schapter#1{%
+ \H@old@schapter{#1}%
+ \begingroup
+ \let\@mkboth\@gobbletwo
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ \endgroup
+ }%
+}{%
+ \PackageInfo{scrhack}{redefining \string\@schapter}%
+ \def\@schapter#1{%
+ \begingroup
+ \let\@mkboth\@gobbletwo
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ \endgroup
+ \H@old@schapter{#1}%
+ }%
+}{%
+ \scr@ifexpected\@schapter{%
+ \def\@schapter#1{%
+ \begingroup
+ \let\@mkboth\@gobbletwo
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ \endgroup
+ \H@old@schapter{#1}%
+ }%
+ }{}{%
+ \PackageWarningNoLine{scrhack}{unknown \string\@schapter\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported hyperref version}%
+ }%
+}
+
+\scr@ifexpected\@spart{%
+ \def\@spart#1{%
+ \H@old@spart{#1}%
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{part*.\the\Hy@linkcounter}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ }%
+}{%
+ \PackageInfo{scrhack}{redefining \string\@spart}%
+ \def\@spart#1{%
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{part*.\the\Hy@linkcounter}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ \H@old@spart{#1}%
+ }%
+}{%
+ \scr@ifexpected\@spart{%
+ \def\@spart#1{%
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{part*.\the\Hy@linkcounter}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ \H@old@spart{#1}%
+ }%
+ }{}{%
+ \PackageWarningNoLine{scrhack}{unknown \string\@spart\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported hyperref version}%
+ }%
+}
+
+\scr@ifexpected\@ssect{%
+ \def\@ssect#1#2#3#4#5{%
+ \H@old@ssect{#1}{#2}{#3}{#4}{#5}%
+ \phantomsection
+ }%
+}{%
+ \PackageInfo{scrhack}{redefining \string\@ssect}%
+ \def\@ssect#1#2#3#4#5{%
+ \H@old@ssect{#1}{#2}{#3}{#4}{\phantomsection\ignorespaces#5}%
+ }%
+}{%
+ \scr@ifexpected\@ssect{%
+ \def\@ssect#1#2#3#4#5{%
+ \H@old@ssect{#1}{#2}{#3}{#4}{\phantomsection\ignorespaces#5}%
+ }%
+ }{}{%
+ \PackageWarningNoLine{scrhack}{unknown \string\@ssect\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported hyperref version}%
+ }%
+}
+%</hyperref&body>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Der \textsf{float}-Hack}
+%
+% Das \textsf{float}-Paket verwendet das Makro \cs{float@listhead} zum
+% Setzen der Überschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen
+% und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird
+% empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist
+% sehr gering und wird mit vielen neuen Möglichkeiten belohnt.
+%
+% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{float}
+% nach.
+%
+% \begin{option}{float}
+% \changes{v3.12}{2013/03/05}{Signalisierung mit
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
+% \cs{KOMAExecuteOptions}}^^A
+% \begin{macrocode}
+%<*package&option>
+\KOMA@ifkey{float}{@scrhack@float}%
+\KOMAExecuteOptions{float=true}%
+%</package&option>
+%<*package&body>
+\AfterPackage*{float}{%
+ \KOMA@key[.scrhack.sty]{float}{%
+ \PackageWarning{scrhack}{option `float' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \if@scrhack@float\scr@hack@load\@pkgextension{float}\fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}
+%
+%
+% \begin{macro}{\newfloat}
+% Über die Anweisung \cs{newfloat} wird eine neue Gleitumgebung
+% definiert. Hier muss die neue Erweiterung aus dem dritten Argument
+% \textsf{tocbasic} bekannt gemacht werden.
+% \begin{macro}{\listof}
+% Über die Anweisung \cs{listof} wird ein Verzeichnis für Gleitumgebungen
+% ausgegeben. Hier muss schlicht die entsprechende Anweisung von
+% \textsf{tocbasic} verwendet werden.
+% \begin{macro}{\float@addtolists}
+% Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche
+% Definition zurückgesetzt.
+% \begin{macrocode}
+%<*float&body>
+\scr@ifexpected{\newfloat}{%
+ \long\def\newfloat#1#2#3{\@namedef{ext@#1}{#3}
+ \let\float@do=\relax
+ \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#3}}}%
+ \@tempa
+ \floatplacement{#1}{#2}%
+ \@ifundefined{fname@#1}{\floatname{#1}{#1}}{}
+ \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}%
+ \addtocounter{float@type}{\value{float@type}}
+ \restylefloat{#1}%
+ \expandafter\edef\csname fnum@#1\endcsname%
+ {\expandafter\noexpand\csname fname@#1\endcsname{}
+ \expandafter\noexpand\csname the#1\endcsname}
+ \@ifnextchar[%]
+ {\float@newx{#1}}%
+ {\@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}%
+ {}}}%
+}{%
+ \scr@ifexpected{\listof}{%
+ \def\listof#1#2{%
+ \@ifundefined{ext@#1}{\float@error{#1}}{%
+ \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
+ \float@listhead{#2}%
+ \begingroup\setlength{\parskip}{\z@}%
+ \@starttoc{\@nameuse{ext@#1}}%
+ \endgroup}}%
+ }{%
+ \RequirePackage{tocbasic}%
+ \PackageInfo{scrhack}{redefining \string\newfloat}%
+ \renewcommand\newfloat[3]{%
+ \ifattoclist{#3}{%
+ \PackageError{scrhack}{extension `#3' already in use}{%
+ Each extension may be used only once.\MessageBreak
+ You, the class, or another package already uses extension
+ `#3'.\MessageBreak
+ \string\newfloat\space command will be ignored!}%
+ }{%
+ \addtotoclist[float]{#3}%
+ \setuptoc{#3}{chapteratlist}%
+ \@namedef{ext@#1}{#3}%
+ \let\float@do=\relax
+ \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#3}}}%
+ \@tempa
+ \floatplacement{#1}{#2}%
+ \@ifundefined{fname@#1}{\floatname{#1}{#1}}{}%
+ \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}%
+ \addtocounter{float@type}{\value{float@type}}
+ \restylefloat{#1}%
+ \expandafter\edef\csname fnum@#1\endcsname%
+ {\expandafter\noexpand\csname fname@#1\endcsname{}
+ \expandafter\noexpand\csname the#1\endcsname}%
+ \@ifnextchar[%]
+ {\float@newx{#1}}%
+ {\@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}%
+ {}}}%
+ }%
+ \PackageInfo{scrhack}{redefining \string\listof}%
+ \renewcommand*\listof[2]{%
+ \@ifundefined{ext@#1}{\float@error{#1}}{%
+ \@ifundefined{l@#1}{\expandafter\let\csname l@#1\endcsname\l@figure
+ \@ifundefined{l@#1}{%
+% \end{macrocode}
+% \changes{v3.25}{2018/03/16}{Verwendung von \cs{DeclareTOCStyleEntry}}^^A
+% Bis Version 3.24 wurde hier nun wie üblich |\l@#1| unter Verwendung von
+% \cs{@dottedtocline} definiert:
+% \begin{verbatim}
+% \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
+% \end{verbatim}
+% Da aber \Package{tocbasic} inzwischen diese schöne Schnittstelle für die
+% Verzeichniseinträge bietet, verwenden wir die hier nun auch:
+% \begin{macrocode}
+ \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]
+ {default}{#1}%
+ }{}%
+ }{}%
+ \listoftoc[{#2}]{\csname ext@#1\endcsname}%
+ }%
+ }%
+ \scr@ifexpected{\float@addtolists}{%
+ \long\def\float@addtolists#1{%
+ \def\float@do##1{\addtocontents{##1}{#1}} \the\float@exts}%
+ }{%
+ \PackageInfo{scrhack}{undefining \string\float@addtolists}%
+ \let\float@addtolists\relax
+ }{%
+ \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported float version}%
+ }%
+ }{%
+ \PackageWarningNoLine{scrhack}{unknown \string\listof\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported float version}%
+ }%
+}{%
+ \PackageWarningNoLine{scrhack}{unknown \string\newfloat\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported float version}%
+}
+%</float&body>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Der \textsf{floatrow}-Hack}
+%
+% Das \textsf{floatrow}-Paket verwendet das Makro \cs{float@listhead} zum
+% Setzen der Überschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen
+% und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird
+% empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist
+% sehr gering und wird mit vielen neuen Möglichkeiten belohnt.
+%
+% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{floatrow}
+% nach.
+%
+% \begin{option}{floatrow}
+% \changes{v3.12}{2013/03/05}{Signalisierung mit
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
+% \cs{KOMAExecuteOptions}}^^A
+% \begin{macrocode}
+%<*package&option>
+\KOMA@ifkey{floatrow}{@scrhack@floatrow}
+\KOMAExecuteOptions{floatrow=true}
+%</package&option>
+%<*package&body>
+\AfterPackage*{floatrow}{%
+ \KOMA@key[.scrhack.sty]{floatrow}{%
+ \PackageWarning{scrhack}{option `floatrow' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \if@scrhack@floatrow\scr@hack@load\@pkgextension{floatrow}\fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}
+%
+%
+% \begin{macro}{\DeclareNewFloatType}
+% Über die Anweisung \cs{DeclareNewFloatType} wird eine neue Gleitumgebung
+% definiert. Hier muss die neue Erweiterung aus dem dritten Argument
+% \textsf{tocbasic} bekannt gemacht werden.
+% \begin{macro}{\listof}
+% Über die Anweisung \cs{listof} wird ein Verzeichnis für Gleitumgebungen
+% ausgegeben. Hier muss schlicht die entsprechende Anweisung von
+% \textsf{tocbasic} verwendet werden.
+% \begin{macro}{\float@addtolists}
+% Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche
+% Definition zurückgesetzt.
+% \begin{macrocode}
+%<*floatrow&body>
+\scr@ifexpected{\DeclareNewFloatType}{%
+ \long\def\DeclareNewFloatType#1#2{\def\FB@captype{#1}%
+ \expandafter\edef\csname ftype@#1\endcsname{\the\c@float@type}%
+ \addtocounter{float@type}{\value{float@type}}%
+ \@namedef{#1name}{#1}\newcounter{#1}%
+ \expandafter\edef\csname fnum@#1\endcsname
+ {\expandafter\noexpand\csname #1name\endcsname\nobreakspace
+ \expandafter\noexpand\csname the#1\endcsname}%
+ \@namedef{the#1}{\arabic{#1}}\flnew@ext{lo#1}\@namedef{fps@#1}{tbp}%
+ \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
+ \caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax
+ \xdef\@tempa{\noexpand\flrow@types{\the\flrow@types \FR@tmp{#1}}}%
+ \@tempa}%
+}{%
+ \scr@ifexpected{\listof}{%
+ \def\listof#1#2{%
+ \@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{%
+ \expandafter\providecommand\csname l@#1\endcsname
+ {\@dottedtocline{1}{1.5em}{2.3em}}%
+ \float@listhead{#2}%
+ \begingroup\setlength{\parskip}{\z@}%
+ \@starttoc{\@nameuse{ext@#1}}%
+ \endgroup}}%
+ }{%
+ \RequirePackage{tocbasic}%
+ \PackageInfo{scrhack}{redefining \string\DeclareNewFloatType}%
+% \end{macrocode}
+% Eigentlich wäre es besser, wie im \textsf{float}-Hack einen Test
+% vorzuschalten, ob die Dateiendung bereits in Gebrauch ist. Aber das würde
+% voraussetzen, dass die Reihenfolge der Anweisungen geändert wird. Dazu
+% stecke ich aber im Code von \textsf{floatrow} zu wenig
+% drin. (\emph{\foreignlanguage{english}{Note: It would be better to first
+% test, if the new extension is already in use like done at the
+% \textsf{float} hack. But I don't know the \textsf{floatrow} code good
+% enough to make such a change!}})
+% \begin{macrocode}
+ \renewcommand\DeclareNewFloatType[2]{\def\FB@captype{#1}%
+ \expandafter\edef\csname ftype@#1\endcsname{\the\c@float@type}%
+ \addtocounter{float@type}{\value{float@type}}%
+ \@namedef{#1name}{#1}\newcounter{#1}%
+ \expandafter\edef\csname fnum@#1\endcsname
+ {\expandafter\noexpand\csname #1name\endcsname\nobreakspace
+ \expandafter\noexpand\csname the#1\endcsname}%
+ \@namedef{the#1}{\arabic{#1}}\flnew@ext{lo#1}\@namedef{fps@#1}{tbp}%
+% \end{macrocode}
+% \changes{v3.25}{2018/03/16}{Verwendung von \cs{DeclareTOCStyleEntry}}^^A
+% Bis Version 3.24 wurde hier nun wie üblich |\l@#1| unter Verwendung von
+% \cs{@dottedtocline} definiert:
+% \begin{verbatim}
+% \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
+% \end{verbatim}
+% Da aber \Package{tocbasic} inzwischen diese schöne Schnittstelle für die
+% Verzeichniseinträge bietet, verwenden wir die hier nun auch:
+% \begin{macrocode}
+ \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]{default}{#1}%
+ \caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax
+ \xdef\@tempa{\noexpand\flrow@types{\the\flrow@types \FR@tmp{#1}}}%
+ \@tempa
+ \xdef\@tempa{\noexpand\addtotoclist[float]{\@nameuse{ext@\FB@captype}}%
+ \noexpand\setuptoc{\@nameuse{ext@\FB@captype}}{chapteratlist}%
+ }%
+ \@tempa
+ }%
+ \PackageInfo{scrhack}{redefining \string\listof}%
+ \renewcommand*\listof[2]{%
+ \@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{%
+ \@ifundefined{l@#1}{\expandafter\let\csname l@#1\endcsname\l@figure
+ \@ifundefined{l@#1}{%
+% \end{macrocode}
+% Siehe die Anmerkung zur Verwendung von \cs{DeclareTOCStyleEntry} oben.
+% \begin{macrocode}
+ \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]
+ {default}{#1}%
+ }{}%
+ }{}%
+ \listoftoc[{#2}]{\csname ext@#1\endcsname}%
+ }%
+ }%
+ \scr@ifexpected{\float@addtolists}{%
+ \long\def\float@addtolists#1{%
+ \def\float@do##1{\addtocontents{##1}{#1}} \the\float@exts}%
+ }{%
+ \PackageInfo{scrhack}{undefining \string\float@addtolists}%
+ \let\float@addtolists\relax
+ }{%
+ \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported floatrow version}%
+ }%
+ }{%
+ \PackageWarningNoLine{scrhack}{unknown \string\listof\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported floatrow version}%
+ }%
+}{%
+ \PackageWarningNoLine{scrhack}{unknown \string\DeclareNewFloatType\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported floatrow version}%
+}
+%</floatrow&body>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Der \textsf{listings}-Hack}
+%
+% Das \textsf{listings}-Paket verwendet das Makro \cs{float@listhead} zum
+% Setzen der Überschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen
+% und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird
+% empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist
+% sehr gering und wird mit vielen neuen Möglichkeiten belohnt.
+%
+% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{listings}
+% nach.
+%
+% \begin{option}{listings}
+% \changes{v3.12}{2013/03/05}{Signalisierung mit
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
+% \cs{KOMAExecuteOptions}}^^A
+% \begin{macrocode}
+%<*package&option>
+\KOMA@ifkey{listings}{@scrhack@listings}
+\KOMAExecuteOptions{listings=true}
+%</package&option>
+%<*package&body>
+\AfterPackage*{listings}{%
+ \KOMA@key[.scrhack.sty]{listings}{%
+ \PackageWarning{scrhack}{option `listings' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \if@scrhack@listings\scr@hack@load\@pkgextension{listings}\fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}
+%
+%
+% \begin{macro}{\scr@do@hack@listings}
+% \begin{macro}{\lstlistoflistings}
+% Über dieses Macro wird das Verzeichnis der Listings gesetzt. Die gesamte
+% Funktionalität dafür kann \Package{tocbasic} überlassen werden.
+% \begin{macro}{\float@addtolists}
+% Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche
+% Definition zurückgesetzt. Da \Package{listings} ihre Definition mit
+% \Macro{AtBeginDocument} verzögert, muss dies hier ebenfalls geschehen.
+% \begin{macrocode}
+%<*listings&body>
+\newcommand*{\scr@do@hack@listings}{%
+ \RequirePackage{tocbasic}%
+ \addtotoclist[float]{lol}%
+ \setuptoc{lol}{chapteratlist}%
+ \PackageInfo{scrhack}{redefining \string\lstlistoflistings}%
+ \renewcommand*{\lstlistoflistings}{\listoftoc[{\lstlistlistingname}]{lol}}%
+ \AtBeginDocument{%
+ \scr@ifexpected{\float@addtolists}{%
+ \def\float@addtolists##1{\addtocontents{lol}{##1}}%
+ }{%
+ \PackageInfo{scrhack}{undefining \string\float@addtolists}%
+ \let\float@addtolists\relax
+ }{%
+ \scr@ifexpected{\float@addtolists}{%
+ \def\float@addtolists##1{\addtocontents{lol}{##1}%
+ \orig@float@addtolists{##1}}%
+ }{%
+ \PackageInfo{scrhack}{setting \string\float@addtolists\MessageBreak
+ to \string\orig@float@addtolists}%
+ \let\float@addtolists\orig@float@addtolists
+ }{%
+ \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported listings version}%
+ }%
+ }%
+ }%
+ \let\scr@do@hack@listings\relax
+}
+\scr@ifexpected{\lstlistoflistings}{%
+ \def\lstlistoflistings{\bgroup
+ \let\contentsname\lstlistlistingname
+ \let\lst@temp\@starttoc \def\@starttoc##1{\lst@temp{lol}}%
+ \tableofcontents \egroup}%
+}{%
+ \scr@do@hack@listings
+}{%
+ \scr@ifexpected{\lstlistoflistings}{%
+ \def\lstlistoflistings{%
+ \begingroup
+ \@ifundefined{@restonecoltrue}{}{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ }%
+ \float@listhead{\lstlistlistingname}%
+ \parskip\z@\parindent\z@\parfillskip \z@ \@plus 1fil%
+ \@starttoc{lol}%
+ \@ifundefined{@restonecoltrue}{}{%
+ \if@restonecol\twocolumn\fi
+ }%
+ \endgroup
+ }%
+ }{%
+ \scr@do@hack@listings
+ }{%
+ \PackageWarningNoLine{scrhack}{unknown \string\lstlistoflistings\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported listings version}%
+ }%
+}
+%</listings&body>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+% \subsection{Der \textsf{nomencl}-Hack}
+%
+% Das \textsf{nomencl}-Paket harmoniert eigentlich nur in einer Kleinigkeit
+% bezüglich des Eintrags in das Inhaltsverzeichnis nicht sehr gut mit
+% \KOMAScript-Klassen bzw. Paket \textsf{tocbasic}. Allerdings kann es von den
+% Vorteilen von \textsf{tocbasic} auch in weiterer Hinsicht profitieren.
+%
+% Dieser Hack rüstet weitgehende \textsf{tocbasic}-Unterstützung für
+% \textsf{nomencl} nach. Dafür wird Paket \textsf{xpatch} verwendet.
+%
+% \begin{option}{nomencl}
+% \changes{v3.23}{2017/03/31}{neue Option für neuen Hack}^^A
+% \begin{macrocode}
+%<*package&option>
+\RequirePackage{xpatch}%
+\KOMA@ifkey{nomencl}{@scrhack@nomencl}
+\KOMAExecuteOptions{nomencl=true}
+%</package&option>
+%<*package&body>
+\AfterPackage*{nomencl}{%
+ \KOMA@key[.scrhack.sty]{nomencl}{%
+ \PackageWarning{scrhack}{option `nomencl' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \if@scrhack@nomencl\scr@hack@load\@pkgextension{nomencl}\fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}^^A nomencl
+%
+% \begin{macro}{\thenomenclature}
+% \changes{v3.23}{2017/03/31}{Umgebung \texttt{thenomenclature} wird
+% gepatcht}^^A
+% Statt die Fallunterscheidung aus der Originaldefinition direkt hier
+% nachzubilden, patchen wir diese komplett heraus und ersetzen sie durch eine
+% neue Anweisung.
+% \begin{macrocode}
+%<*nomencl&body>
+\RequirePackage{tocbasic}
+% \end{macrocode}
+% With \Package{nomencl} > 5.0 this should be all.
+% \begin{macrocode}
+\@ifpackagelater{nomencl}{2019/01/01}{%
+ \PackageInfo{scrhack}{only `tocbasic' loaded for `nomencl'}%
+ \expandafter\endinput
+}{}
+% \end{macrocode}
+% Otherwise we have to patch it.
+% \begin{macrocode}
+\addtotoclist[nomencl]{nlo}
+\addtotoclist[nomencl]{nls}
+\xpatchcmd{\thenomenclature}{%
+ \@ifundefined{chapter}%
+ {
+ \section*{\nomname}
+ \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
+ }%
+ {
+ \chapter*{\nomname}
+ \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
+ }%
+}{%
+ \scr@hack@nomencl@head
+}{%
+ \PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
+}{%
+% \end{macrocode}
+% \changes{v3.26b}{2019/01/23}{new \textsf{nomencl} 5.0}^^A
+% From \textsf{nomencl} 5.0 another code is used if the nomenclature is a
+% chapter. So we need another patch:
+% \begin{macrocode}
+ \xpatchcmd{\thenomenclature}{%
+ \@ifundefined{chapter}%
+ {
+ \section*{\nomname}
+ \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
+ }%
+ {
+ \chapter*{\nomname}
+ \markboth{\nomname}{\nomname}%
+ \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
+ }%
+ }{%
+ \scr@hack@nomencl@head
+ }{%
+ \PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
+ }{%
+% \end{macrocode}
+% \changes{v3.26b}{2019/01/23}{prepared for hoply comming \textsf{nomencl}}^^A
+% But this code is also wrong, because it breaks manual running heads, e.g.,
+% of page style \texttt{myheadings}. So I hope, there will be another code,
+% that needs a somehow different patch:
+% \begin{macrocode}
+ \xpatchcmd{\thenomenclature}{%
+ \@ifundefined{chapter}%
+ {
+ \section*{\nomname}
+ \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
+ }%
+ {
+ \chapter*{\nomname}
+ \@mkboth{\nomname}{\nomname}%
+ \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
+ }%
+ }{%
+ \scr@hack@nomencl@head
+ }{%
+ \PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
+ }{%
+% \end{macrocode}
+% \changes{v3.25}{2019/01/23}{emergency patch added}^^A
+% If this also does not work, we try an emergency patch, that could break
+% things.
+% \begin{macrocode}
+ \xpatchcmd{\thenomenclature}{%
+ \@ifundefined{chapter}%
+ }{%
+ \scr@hack@nomencl@head
+ \@gobbletwo
+ }{%
+ \PackageWarning{scrhack}{%
+ using emergency patch of \string\thenomenclature.\MessageBreak
+ This could happen if you are using an unknown\MessageBreak
+ release of package `nomencl'.\MessageBreak
+ Mostly this patch does work too, but it also could\MessageBreak
+ break `nomencl`. If this happens, please deactivate\MessageBreak
+ the `nomencl` hack of `scrhack`
+ }%
+ }{%
+ \PackageWarning{scrhack}{%
+ cannot patch \string\thenomenclature.\MessageBreak
+ This could happen if you are using an unknown\MessageBreak
+ release of package `nomencl'%
+ }%
+ }%
+ }%
+ }%
+}
+%</nomencl&body>
+% \end{macrocode}
+% \end{macro}^^A \thenomenclature
+%
+% \begin{macro}{\scr@hack@nomencl@head}
+% \changes{v3.23}{2017/03/31}{Überschrift für \texttt{thenomenclature} unter
+% Verwendung von \textsf{tocbasic}}^^A
+% Im Gegensatz zu Gleitumgebungen benötigen wir hier keine Gruppe, weil
+% \texttt{thenomenclature} bereits die Gruppe bereitstellt.
+% \begin{macrocode}
+%<*nomencl&body>
+\newcommand*{\scr@hack@nomencl@head}{%
+ \providecommand*{\listofnlsname}{\nomname}%
+ \let\list@fname\listofnlsname
+ \def\@currext{nls}%
+ \tocbasic@listhead{\list@fname}%
+}
+%</nomencl&body>
+% \end{macrocode}
+% Es ist ggf. noch zu beachten, dass von den ganzen Haken, die
+% \textsf{tocbasic} bereitstellt, für dieses Verzeichnis natürlich nur die
+% Überschriftenhaken zum Einsatz kommen. Verzeichnishaken können zwar
+% definiert werden, kommen aber nie zur Anwendung.
+% \end{macro}^^A \scr@hack@nomencl@head
+%
+% \begin{macro}{\if@intoc}
+% \changes{3.23}{2017/03/31}{Reaktion auf \cs{if@intoc}}
+% Natürlich muss jetzt noch auf \textsf{nomencl}'s Option \texttt{intoc}
+% reagiert werden, also entsprechend der Option das \textsf{tocbasic}
+% Feature \texttt{totoc} passend gesetzt werden. Etwaige Änderungen des
+% Features sind also erst nach dem Laden von \textsf{nomencl} und
+% \textsf{scrhack} möglich. Spätere Änderungen von \cs{if@intoc} werden
+% außerdem nicht berücksichtigt.
+% \begin{macrocode}
+%<*nomencl&body>
+\if@intoc
+ \setuptoc{nls}{totoc}
+\fi
+%</nomencl&body>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Der \textsf{setspace}-Hack}
+%
+% Das \textsf{setspace}-Paket verwendet \cs{@ptsize} auf ungünstige Art, indem
+% es davon ausgeht, dass es immer eine ganze Zahl enthält. Das ist aber bei
+% \KOMAScript{} keineswegs zwingend. Außerdem ist der Wert für \texttt{11pt}
+% falsch, weil \LaTeX{} in diesem Fall tatsächlich eine 10,95\,pt-Schrift mit
+% einem Zeilenabstand von 13,6\,pt einstellt. Damit wäre der korrekte Wert für
+% \cs{onehalfspacing} beispielsweise:
+% \[ 10{,}95\,\mathrm{pt} \dot 1{,5} / 13{,}6\,\mathrm{pt} \equiv 1{,}208 \]
+% Tatsächlich stellt \textsf{setspace} aber einen Wert von 1,213 ein, was
+% einer effektiven Schriftgröße von 11\,pt entsprechen würde. Ebenso stellt es
+% den aktuellen Abstand bei \cs{onehalfspacing} nicht relativ zur aktuellen
+% Schriftgröße ein, sondern zur Grundschriftgröße. Damit erhält man bei
+% \begin{verbatim}
+% \documentclass[10pt]{article}
+% \usepackage{setspace}
+% \begin{document}
+% \large\onehalfspacing\raggedright
+% Fontsize: \csname f@size\endcsname pt\\
+% Normal baselineskip: \csname f@baselineskip\endcsname\\
+% baselineskip: \the\baselineskip
+% \end{document}
+% \end{verbatim}
+% einen anderen Abstand als bei
+% \begin{verbatim}
+% \documentclass[11pt]{article}
+% \usepackage{setspace}
+% \begin{document}
+% \large\onehalfspacing\raggedright
+% Fontsize: \csname f@size\endcsname pt\\
+% Normal baselineskip: \csname f@baselineskip\endcsname\\
+% baselineskip: \the\baselineskip
+% \end{document}
+% \end{verbatim}
+% obwohl beide Male dieselbe Schriftgröße verwendet wird. Streng genommen
+% müsste also bei jeder Änderung der Schriftgröße der Wert Abstand angepasst
+% werden. So weit geht dieser Hack nicht. Stattdessen wird der Wert abhängig
+% von der tatsächlichen Schriftgröße und dem tatsächlichen Basisabstand beim
+% Aufruf der Anweisungen eingestellt. Das ergibt immerhin in den obigen
+% Beispielen gleiche Ergebnisse.
+%
+% \begin{option}{setspace}
+% \changes{v3.17}{2015/04/16}{Neu}^^A
+% \begin{macrocode}
+%<*package&option>
+\KOMA@ifkey{setspace}{@scrhack@setspace}
+\KOMAExecuteOptions{setspace=true}
+%</package&option>
+%<*package&body>
+\AfterPackage*{setspace}{%
+ \KOMA@key[.scrhack.sty]{setspace}{%
+ \PackageWarning{scrhack}{option `setspace' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \if@scrhack@setspace\scr@hack@load\@pkgextension{setspace}\fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}
+%
+%
+% \begin{macro}{\onehalfspacing}
+% \changes{v3.17}{2015/04/16}{Neu}^^A
+% Über diese Anweisung wird der eineinhalbzeilige Satz eingestellt. Ein auf
+% drei Nachkommastellen genauer Wert erscheint mir ausreichend genau.
+% \begin{macrocode}
+%<*setspace&body>
+\scr@ifexpected{\onehalfspacing}{%
+ \long\def\onehalfspacing{%
+ \setstretch{1.25}% default
+ \ifcase \@ptsize \relax % 10pt
+ \setstretch {1.25}%
+ \or % 11pt
+ \setstretch {1.213}%
+ \or % 12pt
+ \setstretch {1.241}%
+ \fi
+ }%
+}{%
+ \renewcommand*{\onehalfspacing}{%
+ \@tempdima=\dimexpr (\f@size pt)*1500/
+ (\dimexpr \f@baselineskip\relax)*\p@/1000\relax
+ \expandafter\setstretch\expandafter{\strip@pt\@tempdima}%
+ }%
+}{%
+ \PackageWarning{scrhack}{unknown \string\onehalfspacing\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported setpace version}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\doublespacing}
+% \changes{v3.17}{2015/04/16}{Neu}^^A
+% Über diese Anweisung wird der zweizeilige Satz eingestellt. Ein auf
+% drei Nachkommastellen genauer Wert erscheint mir ausreichend genau.
+% \begin{macrocode}
+\scr@ifexpected{\doublespacing}{%
+ \long\def\doublespacing{%
+ \setstretch{1.667}% default
+ \ifcase \@ptsize \relax % 10pt
+ \setstretch {1.667}%
+ \or % 11pt
+ \setstretch {1.618}%
+ \or % 12pt
+ \setstretch {1.655}%
+ \fi
+ }%
+}{%
+ \renewcommand*{\doublespacing}{%
+ \@tempdima=\dimexpr (\f@size pt)*2000/
+ (\dimexpr \f@baselineskip\relax)*\p@/1000\relax
+ \expandafter\setstretch\expandafter{\strip@pt\@tempdima}%
+ }%
+}{%
+ \PackageWarning{scrhack}{unknown \string\doublespacing\space
+ definition found!\MessageBreak
+ Maybe you are using a unsupported setpace version}%
+}
+%</setspace&body>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Der \textsf{lscape}-Hack}
+% \changes{v3.18a}{2015/07/07}{Neuer \textsf{lscape}-Hack}^^A
+%
+% Das \textsf{lscape}-Paket setzt innerhalb der
+% \texttt{landscape}-Umgebung die Länge \cs{textheight} auf den Wert
+% von \cs{textwidth} obwohl es auf der anderen Seite \cs{textwidth}
+% nicht auf den Wert von \cs{textheight} setzt. Das ist inkonsequent. Da
+% David~Carlisle außerdem angibt, dass \cs{textwidth} nicht verändert wird,
+% weil das zu Problemen führen konnte, ist es unverständlich, dass
+% \cs{textheight} verändert wird, obwohl das ebenfalls zu Problemen führen
+% kann, beispielsweise für \textsf{showframe} oder \textsf{scrpage}. Daher
+% verändere ich die Definition so, dass auch \cs{textheight} unverändert
+% bleibt. Dabei muss allerdings auch \textsf{pdflscape} berücksichtigt
+% werden. Das ist am einfachsten mit \textsf{xpatch}.
+%
+% \begin{option}{lscape}
+% \changes{v3.18a}{2015/07/07}{Neue Option für neuen Hack}^^A
+% \changes{v3.20}{2016/05/07}{\textsf{xpatch} wird bereits im Optionenteil
+% geladen}^^A
+% \begin{macrocode}
+%<*package&option>
+\RequirePackage{xpatch}%
+\KOMA@ifkey{lscape}{@scrhack@lscape}%
+\KOMAExecuteOptions{lscape=true}%
+%</package&option>
+%<*package&body>
+\AfterPackage*{lscape}{%
+ \if@scrhack@lscape\scr@hack@load\@pkgextension{lscape}\else
+ \KOMA@key[.scrhack.sty]{lscape}{%
+ \PackageWarning{scrhack}{option `lscape' ignored}%
+ \FamilyKeyStateProcessed
+ }%
+ \fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}
+%
+% \begin{macro}{\landscape}
+% \changes{v3.18a}{2015/07/07}{Neu}^^A
+% \changes{v3.20}{2016/05/07}{\textsf{xpatch} wird bereits im Optionenteil
+% geladen}^^A
+% Über diese Anweisung wird die \texttt{landscape}-Umgebung von
+% \textsf{lscape} gestartet. Genau diese muss gepatcht werden. Dafür wird das
+% Paket \textsf{xpatch} benötigt. Da der Patch nur geladen wird, wenn die
+% Option dafür gesetzt ist, kann die Option daher nur ein- und ausgeschaltet
+% werden, wenn sie bis zum Laden des Pakets aktiviert wurde.
+% \begin{macrocode}
+%<*lscape&body>
+\xpatchcmd{\landscape}{\textheight=\vsize}{%
+ \if@scrhack@lscape
+% \end{macrocode}
+% \changes{v3.18a}{2015/08/11}{Patchen von \cs{@outputpage}}^^A
+% Es gibt allerdings in der Tat eine Stelle, an der ein verändertet Wert von
+% \cs{textheight} benötigt wird. Das ist wenn innerhalb von \cs{@outputpage}
+% der Wert von \cs{@colht} reinitialisiert wird. Also wird das entsprechend
+% auch noch hinein gepatcht.
+% \begin{macrocode}
+ \scrh@LT@textheight=\vsize
+ \let\scrh@LT@outputpage\@outputpage
+ \def\@outputpage{\scrh@LT@outputpage\global\@colht\scrh@LT@textheight}%
+ \else
+ \textheight=\vsize
+ \fi
+}{%
+ \PackageInfo{scrhack}{\string\landscape\space patched to make
+ \string\textheight\space change optional}%
+}{%
+ \PackageWarning{scrhack}{Cannot patch \string\landscape!\MessageBreak
+ Maybe you are using a unsupported lscape version}%
+ \@scrhack@lscapefalse
+}
+% \end{macrocode}
+% \begin{Length}{\scrh@LT@textheight}
+% \changes{v3.18a}{2015/08/11}{neue Länge (intern)}^^A
+% \begin{macrocode}
+\newlength{\scrh@LT@textheight}
+%</lscape&body>
+% \end{macrocode}
+% \end{Length}^^A \scrh@LT@textheight
+% \end{macro}^^A \landscape
+%
+%
+% \subsection{Optionen ausführen}
+%
+% Zum Schluss noch die Optionen ausführen. Im Paket wird diese Anweisung
+% allerdings vor den Anweisungen der Hacks und den Anweisungen aus dem
+% Abschnitt »Verwendete Anweisungen« stehen.
+% \begin{macrocode}
+%<*package&option>
+\KOMAProcessOptions\relax
+%</package&option>
+% \end{macrocode}
+%
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrhack.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: t
+%%% End:
+
+% LocalWords: eineinhalbzeilige
diff --git a/macros/latex/contrib/koma-script/source/scrjura.dtx b/macros/latex/contrib/koma-script/source/scrjura.dtx
new file mode 100644
index 0000000000..aa061b8791
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrjura.dtx
@@ -0,0 +1,2063 @@
+% \CheckSum{1943}
+% \iffalse meta-comment
+% ======================================================================
+% scrjura.dtx
+% Copyright (c) Markus Kohm, 2007-2018
+%
+% 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.
+%
+% The KOMA-Script bundle consists of all files listed in manifest.txt.
+% This work `scrjura' consists of the files `scrjura.dtx' and
+% `scrlogo.dtx'.
+% ----------------------------------------------------------------------
+% scrjura.dtx
+% Copyright (c) Markus Kohm, 2007-2018
+%
+% 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.
+%
+% Das KOMA-Script-Paket besteht aus allen Dateien, die in manifest.txt
+% genannt sind.
+% Das Werk `scrjura' besteht aus den Dateien `scrjura.dtx' und
+% `scrlogo.dtx'.
+% ======================================================================
+% \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: scrjura.dtx 3033 2018-09-21 07:36:59Z kohm $
+%<*dtx>
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-09-21 09:36:59 +0200 (Fri, 21 Sep 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1962 $
+\endgroup
+\def\LaTeXformat{LaTeX2e}
+\ifx\fmtname\LaTeXformat\def\MainBodyWork{%
+\ProvidesFile{scrjura.dtx}[\filedate\space\filerevision\space
+%</dtx>
+%<package>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<package>\ProvidesPackage{scrjura}[%
+%<*dtx|package>
+%!KOMAScriptVersion
+ package
+%<*dtx>
+ source
+%</dtx>
+ (for jurists)
+]
+%</dtx|package>
+%<*dtx>
+\IfFileExists{scrdoc.cls}{%
+ \documentclass[parskip=half-]{scrdoc}
+}{%
+ \documentclass{ltxdoc}
+}
+\providecommand*{\DescribeOption}{\DescribeMacro}
+\providecommand*{\DescribeCounter}{\DescribeMacro}
+\usepackage[latin1]{inputenc}
+\usepackage[ngerman]{babel}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\IfFileExists{scrjura.sty}{%
+ \usepackage{scrjura}
+}{}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrjura.dtx}
+\DocInput{\filename}
+\end{document}
+%</dtx>
+%<*dtx>
+}\else\let\MainBodyWork\relax\fi
+
+\MainBodyWork
+
+\def\batchfile{scrjura.dtx}
+%</dtx>
+%<ins>\def\batchfile{scrjura.ins}
+%<*dtx|ins>
+\input scrdocstrip.tex
+\@@input scrkernel-version.dtx
+\@@input scrstrip.inc
+\KOMAdefVariable{COPYRIGHTFROM}{2007}
+
+% ---------- File generation -------------------------------------------
+
+\generate{\usepreamble\defaultpreamble
+ \file{scrjura.ins}{%
+ \from{scrjura.dtx}{ins}%
+ }%
+ \file{scrjura.sty}{%
+ \from{scrjura.dtx}{package}%
+ \from{scrlogo.dtx}{logo}%
+ }%
+}%
+
+% ---------- end of docstrip process -----------------------------------
+
+\@@input scrstrop.inc
+
+\let\byebye\endinput
+\ifToplevel{\expandafter\let\expandafter\byebye\csname bye\endcsname}
+\byebye
+
+%</dtx|ins>
+% \fi
+%
+% \title{\KOMAScript{} \partname\ \texttt{\filename}%
+% \thanks{Diese Datei ist Version \fileversion\ von \texttt{\filename}.}}
+% \date{\filedate}
+% \author{Markus Kohm\thanks{Paketautor, mailto:komascript(at)gmx.info}\and
+% Dr.\,Alexander
+% Willand\thanks{Autor der Anleitung, mailto:alexander.willand(klammeraffe)t-online.de}}
+% \begin{document}
+% \maketitle
+% \begin{abstract}
+% Das scrjura-Paket ist für die Kautelarjurisprudenz gedacht. Es soll für
+% Anwälte und Notare eine flexible Hilfe bei der Abfassung von Verträgen,
+% Satzungen und juristischen Kommentaren bieten. Es ist in Zusammenarbeit
+% mit Dr.\,Alexander Willand entstanden, bzw. noch immer in Entstehung
+% begriffen.
+% \end{abstract}
+%
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \section{Implementierung}
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \changes{v0.7b}{2014/11/11}{Generelle Umbenennung von "`Paragraph"' in
+% "`Clause"' für alle Befehle, Zähler und Optionen}^^A
+%
+% \begin{macrocode}
+\@ifpackageloaded{hyperref}{%
+ \PackageError{scrjura}{Package hyperref already loaded}{%
+ If you want to use package scrjura with package hyperref, you have to
+ use\MessageBreak
+ package scrjura before package hyperref.\MessageBreak
+ To solve the problem, you just should move the loading of package
+ hyperref\MessageBreak
+ behind the loading of package scrjura.}%
+}
+% \end{macrocode}
+%
+% Es wird das Paket \textsf{scrkbase} benötigt, weil alles weitere darauf
+% aufbaut.
+% \begin{macrocode}
+\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}
+% Mit der Option |contract| wird das gesamte Dokument zu einem Vertrag. Man
+% darf dann keine der von diesem Paket bereit gestellten Umgebungen mehr
+% innerhalb des Dokuments verwenden! Realisiert wird dies, indem ganz am
+% Ende von |\begin{document}| noch |\contract| ausgeführt wird.
+% \begin{macrocode}
+\DeclareOption{contract}{%
+ \g@addto@macro\document\contract%
+}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{juratotoc}
+% 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}}^^A
+% \changes{v0.9a}{2015/03/09}{Wert wird in der internen Liste erfasst}^^A
+% \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
+ \KOMA@set@ifkey{juratoclevel}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \setcounter{juratoclevel}{2}%
+ \else
+ \setcounter{juratoclevel}{\@M}%
+ \fi
+ \else
+ \setcounter{juratoclevel}{#1}%
+ \fi
+ \endgroup
+ \FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.scrjura.sty}{juratotoc}{\value{juratoclevel}}%
+}
+\KOMA@kav@xadd{.scrjura.sty}{juratotoc}{\value{juratoclevel}}%
+\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}%^^A
+% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit
+% \cs{FamilyKeyStateProcessed}}%^^A
+% \changes{v0.9a}{2015/03/09}{Wert wird in der internen Liste erfasst}^^A
+% \begin{option}{juratocindent}
+% \changes{v0.6}{2011/09/29}{neu}%^^A
+% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit
+% \cs{FamilyKeyStateProcessed}}%^^A
+% \changes{v0.9a}{2015/03/09}{Wert wird in der internen Liste erfasst}^^A
+% \begin{macro}{\cpar@numberwidth}
+% \changes{v0.6}{2011/09/29}{neu (intern)}
+% \begin{macro}{\cpar@indent}
+% \changes{v0.6}{2011/09/29}{neu (intern)}
+% Der Einzug und die Breite der Nummer für Inhaltsverzeichniseinträge kann
+% über diese beiden Optionen bzw. Makros bestimmt werden.
+% \begin{macrocode}
+\newcommand*{\cpar@numberwidth}{2em}
+\newcommand*{\cpar@indent}{1.5em}
+\KOMA@key{juratocnumberwidth}{%
+ \begingroup\setlength{\@tempdima}{#1}\endgroup
+ \renewcommand*{\cpar@numberwidth}{#1}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{.scrjura.sty}{juratocnumberwidth}{\cpar@numberwidth}%
+}
+\KOMA@kav@add{.scrjura.sty}{juratocnumberwidth}{\cpar@numberwidth}
+\KOMA@key{juratocindent}{%
+ \begingroup\setlength{\@tempdima}{#1}\endgroup
+ \renewcommand*{\cpar@indent}{#1}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{.scrjura.sty}{juratocindent}{\cpar@indent}%
+}
+\KOMA@kav@add{.scrjura.sty}{juratocindent}{\cpar@indent}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{juratitlepagebreak}
+% \changes{v0.5b}{2010/04/05}{neue Option}
+% Mit dieser Option wird der Schalter |\if@juratitlepagebreak| auf |\iftrue|
+% gesetzt.
+% \begin{macro}{\if@juratitlepagebreak}
+% Mit diesem Schalter wiederum wird erreicht, dass in den Überschriften von
+% Paragraphen ein Seitenumbruch erlaubt wird.
+% \begin{macrocode}
+\KOMA@ifkey{juratitlepagebreak}{@juratitlepagebreak}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{parnumber}
+% \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
+% \changes{v0.9a}{2015/03/09}{Wert wird in der internen Liste erfasst}^^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
+ \FamilyKeyStateProcessed
+ \KOMA@kav@remove{.scrjura.sty}{parnumber}{manual}%
+ \KOMA@kav@remove{.scrjura.sty}{parnumber}{auto}%
+ \KOMA@kav@add{.scrjura.sty}{parnumber}{auto}%
+ }{%
+ \ifstr{#1}{manual}{%
+ \ManualPar
+ \FamilyKeyStateProcessed
+ \KOMA@kav@remove{.scrjura.sty}{parnumber}{manual}%
+ \KOMA@kav@remove{.scrjura.sty}{parnumber}{auto}%
+ \KOMA@kav@add{.scrjura.sty}{parnumber}{manual}%
+ }{%
+ \KOMA@set@ifkey{parnumber}{parnumber}{#1}%
+ \KOMA@kav@replacebool{.scrjura.sty}{parnumber}{parnumber}%
+ }%
+ }%
+}
+\KOMA@kav@add{.scrjura.sty}{parnumber}{true}
+\KOMA@kav@add{.scrjura.sty}{parnumber}{auto}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{clausemark}
+% \changes{v0.9h}{2016/04/11}{\texttt{paragraphmark} umbenannt in
+% \texttt{clausemark}}^^A
+% \begin{option}{paragraphmark}
+% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit
+% \cs{FamilyKeyStateProcessed}}%^^A
+% \changes{v0.9a}{2015/03/09}{Wert wird in der internen Liste erfasst}^^A
+% \begin{option}{markright}
+% \begin{option}{markboth}
+% \begin{macro}{\Clausemark}
+% \changes{v0.5e}{2011/08/31}{Beachtung von \cs{MakeMarkcase}}
+% Mit diesen Optionen wird |\Clausemark| so umdefiniert, dass es entweder
+% ein |\markright| oder ein |\markboth| ausführt. Im Gegensatz zu
+% |\chaptermark| etc. erwartet |\Clausemark| neben dem Titel auch noch
+% die zu verwendende Nummer (das könnte bei Bedarf noch geändert werden!)
+% \begin{macrocode}
+\newcommand*{\Clausemark}[1]{}
+\KOMA@key{clausemark}{%
+ \begingroup
+ \KOMA@set@ncmdkey{clausemark}{@tempa}{%
+ {false}{0},{off}{0},{no}{0},%
+ {forceright}{1},%
+ {forceboth}{2},%
+ {right}{3},%
+ {both}{4}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifcase\number\@tempa
+ \endgroup
+ \let\Clausemark\@gobble
+ \or
+ \endgroup
+ \renewcommand*{\Clausemark}[1]{%
+ \markright{\csname MakeMarkcase\endcsname{##1}}}%
+ \or
+ \endgroup
+ \renewcommand*{\Clausemark}[1]{%
+ \markboth{\csname MakeMarkcase\endcsname{##1}}%
+ {\csname MakeMarkcase\endcsname{##1}}}%
+ \or
+ \endgroup
+ \renewcommand*{\Clausemark}[1]{%
+ \ifx
+ \@mkboth\@gobbletwo
+ \else
+ \markright{\csname MakeMarkcase\endcsname{##1}}%
+ \fi}%
+ \or
+ \endgroup
+ \renewcommand*{\Clausemark}[1]{%
+ \@mkboth{\csname MakeMarkcase\endcsname{##1}}%
+ {\csname MakeMarkcase\endcsname{##1}}}%
+ \else
+ \endgroup
+ \fi
+ \FamilyKeyStateProcessed
+ \else
+ \endgroup
+ \FamilyKeyStateUnknownValue
+ \fi
+ \KOMA@kav@xreplacevalue{.scrjura.sty}{clausemark}{#1}%
+}
+\KOMA@kav@add{.scrjura.sty}{clausemark}{false}
+\KOMA@DeclareDeprecatedOption[scrjura]{markright}{clausemark=forceright}
+\KOMA@DeclareDeprecatedOption[scrjura]{markboth}{clausemark=forceboth}
+\KOMA@key{paragraphmark}{%
+ \PackageWarningNoLine{scrjura}{%
+ You've used obsolete option `paragraphmark'.\MessageBreak
+ Usage of this option is deprecated.\MessageBreak
+ You should simply replace `paragraphmark'\MessageBreak
+ by `clausemark'%
+ }%
+ \KOMAExecuteOptions[.scrjura.sty]{clausemark=#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{ref}
+% \changes{v0.5d}{2010/06/07}{neue Einstellungen \texttt{nopar},
+% \texttt{nosentence}, \texttt{OnlyParagraph}}%^^A
+% \changes{v0.7}{2013/11/04}{Verwendung der renovierten Schnittstelle mit
+% \cs{FamilyKeyStateProcessed}}%^^A
+% \changes{v0.9a}{2015/03/09}{Wert wird in der internen Liste erfasst}^^A
+% \begin{option}{parcitename}
+% \begin{option}{sentencecitename}
+% Die Form, in der Absätze und Sätze referenziert werden. Es gibt eine lange,
+% eine abgekürzte und eine nummerische Form.
+%
+% \begin{macro}{\parcite@fromat}
+% \begin{macro}{\sentencecite@fromat}
+% In der Voreinstellung wird das lange Format verwendet. Es gilt:
+% 0 = lang, 1 = kurz, 2 = numerisch, -1 = gar nicht
+% \begin{macrocode}
+\newcommand*{\parcite@format}{0}
+\newcommand*{\sentencecite@format}{0}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Per Option kann die Voreinstellung verändert werden.
+% \begin{macrocode}
+\KOMA@key{ref}{%
+ \begingroup
+ \KOMA@set@ncmdkey{ref}{@tempa}{%
+ {parlong}{1},{longpar}{1},{ParL}{1},%
+ {parshort}{2},{shortpar}{2},{ParS}{2},%
+ {parnumeric}{3},{numericpar}{3},{ParN}{3},%
+ {paroff}{4},{nopar}{4},%
+ {sentencelong}{10},{longsentence}{10},{SentenceL}{10},%
+ {sentenceshort}{20},{shortsentence}{20},{SentenceS}{20},%
+ {sentencenumeric}{30},{numericsentence}{30},{SentenceN}{30},%
+ {sentenceoff}{40},{nosentence}{40},%
+ {long}{11},%
+ {short}{22},%
+ {numeric}{33},%
+ {paragraphonly}{44},{onlyparagraph}{44},%
+ {ParagraphOnly}{44},{OnlyParagraph}{44}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \aftergroup\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
+ \else
+ \aftergroup\FamilyKeyStateUnknownValue
+ \fi
+ \endgroup
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \KOMA@kav@removekey{.scrjura.sty}{ref}%
+ \ifcase\parcite@format
+ \KOMA@kav@add{.scrjura.sty}{ref}{parlong}%
+ \or
+ \KOMA@kav@add{.scrjura.sty}{ref}{parshort}%
+ \or
+ \KOMA@kav@add{.scrjura.sty}{ref}{parnumeric}%
+ \or
+ \KOMAQkav@add{.scrjura.sty}{ref}{paroff}%
+ \fi
+ \ifcase\sentencecite@format
+ \KOMA@kav@add{.scrjura.sty}{ref}{sentencelong}%
+ \or
+ \KOMA@kav@add{.scrjura.sty}{ref}{sentenceshort}%
+ \or
+ \KOMA@kav@add{.scrjura.sty}{ref}{sentencenumeric}%
+ \or
+ \KOMA@kav@add{.scrjura.sty}{ref}{sentenceoff}%
+ \fi
+ \fi
+}
+\KOMA@kav@add{.scrjura.sty}{ref}{parlong}%
+\KOMA@kav@add{.scrjura.sty}{ref}{sentencelong}%
+\KOMA@DeclareDeprecatedOption[scrjura]{parcitename}{ref=parlong}
+\KOMA@DeclareDeprecatedOption[scrjura]{sentencecitename}{ref=sentencelong}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+% \end{option}
+%
+% Optionen ausführen.
+% \begin{macrocode}
+\KOMAProcessOptions\relax
+% \end{macrocode}
+%
+% \begin{macro}{\Paragraph}
+% \changes{1.0}{2014/11/22}{wird noch ein paar Versionen einen Fehler
+% melden}^^A
+% \begin{macro}{\SubParagraph}
+% \changes{1.0}{2014/11/22}{wird noch ein paar Versionen einen Fehler
+% melden}^^A
+% \begin{macro}{\refParagraph}
+% \changes{1.0}{2014/11/22}{wird noch ein paar Versionen einen Fehler
+% melden}^^A
+% \begin{macro}{\refParagraphN}
+% \changes{1.0}{2014/11/22}{wird noch ein paar Versionen einen Fehler
+% melden}^^A
+% \begin{macro}{\DeprecatedParagraph}
+% \changes{1.0}{2014/11/22}{wird noch ein paar Versionen einen Fehler
+% melden}^^A
+% \begin{macro}{\ParagraphCompatibilityHacks}
+% \changes{1.0}{2014/11/22}{wird noch ein paar Versionen verbleiben}^^A
+% \begin{macrocode}
+\providecommand*{\DeprecatedParagraph}{%
+ \PackageError{scrjura}{modification of old document needed}{%
+ It seem that this document was made for scrjura up to version
+ 0.7a.\MessageBreak
+ Since scrjura version 0.9 \string\Paragraph, \string\SubParagraph, and all
+ depending\MessageBreak
+ commands, options, and counters have been renamed.\MessageBreak
+ You should replace the terms `Paragraph' and `paragraph` by `Clause`
+ and\MessageBreak
+ `clause` if they are part of the name of a scrjura feature, otherwise
+ this\MessageBreak
+ document may produce severall additional error messages and maybe the
+ wrong\MessageBreak
+ result. Sorry for the inconvenience.%
+ }%
+ \ParagraphCompatibilityHacks
+}
+\newcommand*{\ParagraphCompatibilityHacks}{%
+ \PackageWarning{scrjura}{compatibility hacks for `\string\Paragraph'
+ executed.\MessageBreak
+ There is no support for documents using these hacks!\MessageBreak
+ There is no warranty for real compatibility!\MessageBreak
+ Even if the LaTeX run of the document doesn't report\MessageBreak
+ any error, the result may be completely wrong.\MessageBreak
+ Therefore it is recommended to solve the problem,\MessageBreak
+ instead of trying to work around using the\MessageBreak
+ compatibility hacks%
+ }%
+ \gdef\Paragraph{\Clause}%
+ \gdef\SubParagraph{\SubClause}%
+ \gdef\c@Paragraph{\c@Clause}%
+ \gdef\cl@Paragraph{\cl@Clause}%
+ \gdef\c@SubParagraph{\c@SubClause}%
+ \gdef\cl@SubParagraph{\cl@SubClause}%
+ \gdef\theParagraph{\theClause}%
+ \gdef\theSubParagraph{\theSubClause}%
+ \gdef\refParagraph{\refClause}%
+ \gdef\refParagraphN{\refClauseN}%
+ \aliaskomafont{Paragraph}{Clause}%
+ \scr@ifundefinedorrelax{Paragraphmark}{}{%
+ \global\let\Clausemark\Paragraphmark
+ }%
+}
+\providecommand*{\Paragraph}{\DeprecatedParagraph\Paragraph}
+\providecommand*{\SubParagraph}{\DeprecatedParagraph\SubParagraph}
+\providecommand*{\refParagraph}{\DeprecatedParagraph\refParagraph}
+\providecommand*{\refParagraphN}{\DeprecatedParagraph\refParagraphN}
+% \end{macrocode}
+% \end{macro}^^A \ParagraphCompatibilityHacks
+% \end{macro}^^A \DeprecatedParagraph
+% \end{macro}^^A \refParagraphN
+% \end{macro}^^A \refParagraph
+% \end{macro}^^A \SubParagraph
+% \end{macro}^^A \Paragraph
+%
+% \begin{macro}{\scrjura@env@type}
+% \changes{v0.5d}{2010/04/28}{neu (intern)}^^A
+% \changes{v0.7b}{2014/11/03}{\cs{jura@env@type} umbenannt}^^A
+% Dieses Makro wird in Abhängigkeit der gerade aktiven
+% \textsf{scrjura}-Umgebung definiert.
+% \begin{macrocode}
+\newcommand*{\scrjura@env@type}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ellipsispar}
+% \changes{v0.7}{2013/05/02}{neu}^^A
+% \changes{v0.7b}{2014/11/03}{\cs{thecontractAbsoluteClause}
+% flexibilisiert}^^A
+% \begin{macro}{\parellipsis}
+% \changes{v0.7}{2013/05/02}{neu}^^A
+% \changes{v0.9g}{2016/03/25}{in die \texttt{aux}-Datei nur bei
+% \cs{if@filesw} schreiben}^^A
+% Paragraphen auslassen aber mit zählen.
+% \begin{macrocode}
+\newcommand*{\ellipsispar}[1][1]{%
+ \begingroup
+ \KOMAoptions{parnumber=manual}\parellipsis\par
+ \addtocounter{par}{#1}%
+ \if@filesw
+ \protected@write\@auxout{}{%
+ \string\newmaxpar{\scrjura@env@type}%
+ {\csname the\scrjura@env@type
+ AbsoluteClause\endcsname}%
+ {\thepar}%
+ }%
+ \fi
+ \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}^^A
+% \changes{v0.5d}{2010/04/28}{Umgebung definiert sich nicht mehr selbst
+% um}^^A
+% \changes{v0.5d}{2010/04/28}{\cs{jura@env@type} wird gesetzt}^^A
+% \begin{Counter}{contractClause}
+% \begin{macro}{\thecontractClause}
+% \changes{v0.9b}{2015/05/01}{muss unbedingt den Zähler \texttt{Clause}
+% statt \texttt{contractClause} verwenden}^^A
+% \begin{macro}{\contract@Clauseformat}
+% \begin{macro}{\Clauseformat}
+% \changes{v0.6b}{2013/04/16}{\cs{paragraphformat} umdefiniert}^^A
+% \begin{Counter}{contractSubClause}
+% \changes{v0.9b}{2015/05/01}{muss unbedingt den Zähler \texttt{SubClause}
+% statt \texttt{contractSubClause} verwenden}^^A
+% \begin{macro}{\thecontractSubClause}
+% \begin{Counter}{contractAbsoluteClause}
+% \changes{v0.7}{2013/04/18}{neuer (interner) Zähler über alle Paragraphen,
+% um ggf. die Zählung neu beginnen zu können}^^A
+% 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!
+% Die Umgebung kann nicht geschachtelt werden. Sie darf aber enden und dann
+% erneut verwendet werden. Die Paragraphen werden jedoch über alle Verträge
+% hinweg nummeriert. Das Ende eines Vertrags ist also genau genommen nur eine
+% Unterbrechung.
+% \begin{macrocode}
+\newcommand*{\contract}{%
+ \ifx\scrjura@env@type\@empty
+ \let\@doendpe\scrjura@doendpe
+ \let\Clause\contract@paragraph
+ \let\c@Clause\c@contractClause
+ \edef\cl@Clause{\cl@Clause\cl@contractClause}%
+ \let\SubClause\contract@subparagraph
+ \let\c@SubClause\c@contractSubClause
+ \edef\cl@SubClause{\cl@SubClause\cl@contractSubClause}%
+ \let\Sentence\contract@sentence
+ \renewcommand*{\scrjura@env@type}{contract}%
+ \aliaskomafont{Clause}{contract.Clause}%
+ \else
+ \PackageError{scrjura}{nested `contract` detected}{%
+ You may not use a `contract' environment inside\MessageBreak
+ a `\scrjura@env@type' environment or after loading\MessageBreak
+ package `scrjura' with option `\scrjura@env@type'!}%
+ \fi
+}
+\let\if@scrjura@skiphyperref\iftrue
+\let\cl@Clause\@empty
+\let\cl@SubClause\@empty
+\newcounter{contractClause}
+\renewcommand*{\thecontractClause}{%
+ {\contract@Clauseformat{\arabic{Clause}}}}
+\DeclareRobustCommand*{\contract@Clauseformat}[1]{\Clauseformat{#1}}
+\newcommand*{\Clauseformat}[1]{\S~#1}
+\newcounter{contractSubClause}
+\@addtoreset{SubClause}{Clause}
+\renewcommand*{\thecontractSubClause}{%
+ {\theClause\alph{SubClause}}}
+\newcounter{contractAbsoluteClause}
+% \end{macrocode}
+% \end{Counter}
+% \end{macro}
+% \end{Counter}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{Counter}
+% \end{macro}
+% \end{environment}
+%
+% \begin{macro}{\DeclareNewJuraEnvironment}
+% \changes{v0.9}{2014/11/12}{Neue Anweisung}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% Verwendet \cs{@defjuraenvironment} um eine neue juristische Umgebung zu
+% definieren.
+% \begin{macrocode}
+\newcommand*{\DeclareNewJuraEnvironment}[1]{%
+ \@ifundefined{#1}{\expandafter\let\csname #1\expandafter\endcsname
+ \csname end#1\endcsname}{}%
+ \@ifundefined{#1}{\let\reserved@defjuraenvironment\@defjuraenvironment}{%
+ \PackageError{scrjura}{ignorring declaration of `#1'}{%
+ You've tried to declare jura environment `#1', but
+ environment\MessageBreak
+ `#1' or command
+ \expandafter\string\csname #1\endcsname\space or
+ \expandafter\string\csname end#1\endcsname\MessageBreak
+ already exists.\MessageBreak
+ Declaration will be ignored}%
+ \long\def\reserved@defjuraenvironment##1[##2]##3##4{}%
+ }%
+ \kernel@ifnextchar [%]
+ {\reserved@defjuraenvironment{#1}}{\reserved@defjuraenvironment{#1}[]}%
+}
+\@onlypreamble\DeclareNewJuraEnvironment
+% \end{macrocode}
+% \begin{macro}{\@defjuraenvironment}
+% \changes{v0.9}{2014/11/04}{Neue (interne) Anweisung}^^A
+% \changes{v3.25}{2017/12/08}{neue Option \texttt{ClauseFont}}^^A
+% \changes{v3.25}{2017/12/08}{\cs{reserved@defjuraenvironment} wird wieder
+% \cs{relax}}^^A
+% \changes{v3.25}{2017/12/08}{Umstellung von globalen auf lokale Optionen}^^A
+% Diese Anweisung dient dazu, weitere Umgebungen einfach definieren zu können.
+% Dabei werden optional diverse Optionen unterstützt. Näheres ist der
+% Anleitung zu entnehmen.
+% \begin{macrocode}
+\DefineFamily{KOMAarg}
+\DefineFamilyMember{KOMAarg}
+\newcommand{\@defjuraenvironment}{}
+\long\def\@defjuraenvironment#1[#2]#3#4{%
+ \let\reserved@defjuraenvironment\relax
+% \end{macrocode}
+% Die Zähler definieren:
+% \begin{macrocode}
+ \newcounter{#1Clause}%
+ \newcounter{#1AbsoluteClause}%
+ \newcounter{#1SubClause}%
+ \FamilyCSKey[.scrjura.sty]{KOMAarg}{Clause}{#1@Clause}%
+ \FamilyCSKey[.scrjura.sty]{KOMAarg}{SubClause}{#1@SubClause}%
+ \FamilyCSKey[.scrjura.sty]{KOMAarg}{Sentence}{#1@Sentence}%
+ \DefineFamilyKey[.scrjura.sty]{KOMAarg}{ClauseNumberFormat}{%
+ \expandafter\def\csname #1@Clauseformat \endcsname####1{##1{####1}}%
+ \expandafter\edef\csname #1@Clauseformat\endcsname{%
+ \noexpand\protect\expandafter\noexpand\csname #1@Clauseformat \endcsname
+ }%
+ \FamilyKeyStateProcessed
+ }
+ \DefineFamilyKey[.scrjura.sty]{KOMAarg}{ClauseFont}{%
+ \IfExistskomafont{#1.Clause}{%
+ \IfIsAliaskomafont{#1.Clause}{%
+ \expandafter\let\csname scr@fnt@instead@#1.Clause\endcsname\relax
+ \newkomafont{#1.Clause}{##1}%
+ }{\setkomafont{#1.Clause}{##1}}%
+ }{%
+ \newkomafont{#1.Clause}{##1}%
+ }%
+ }
+ \FamilyExecuteOptions[.scrjura.sty]{KOMAarg}{#2}%
+ \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{ClauseFont}%
+ \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{ClauseNumberFormat}%
+ \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{Sentence}%
+ \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{SubClause}%
+ \RelaxFamilyKey[.scrjura.sty]{KOMAarg}{Clause}%
+ \@ifundefined{#1@Clauseformat}{%
+ \expandafter\DeclareRobustCommand\expandafter*%
+ \csname #1@Clauseformat\endcsname[1]{\Clauseformat{##1}}%
+ }{}%
+% \end{macrocode}
+% \changes{v0.9c}{2015/05/13}{\cs{the\dots Clause} definiert}^^A
+% \changes{v0.9f}{2016/02/24}{\cs{protect}\cs{\@nameuse} statt
+% \cs{csname}\dots\cs{endcsname}}^^A
+% \begin{macrocode}
+ \expandafter\renewcommand\expandafter*\csname the#1Clause\endcsname{%
+ \protect\@nameuse{#1@Clauseformat}{\arabic{#1Clause}}}%
+% \end{macrocode}
+% Umgebung:
+% \begin{macrocode}
+ \newenvironment{#1}{%
+ \par
+ \ifx\scrjura@env@type\@empty
+ \edef\scrjura@env@type{#1}%
+ \let\@doendpe\scrjura@doendpe
+ \expandafter\let\expandafter\c@Clause\csname c@#1Clause\endcsname
+ \edef\cl@Clause{\cl@Clause\csname cl@#1Clause\endcsname}%
+ \expandafter\let\expandafter\c@SubClause
+ \csname c@#1SubClause\endcsname
+ \edef\cl@SubClause{\cl@SubClause
+ \csname cl@#1SubClause\endcsname}%
+ \@ifundefined{#1@Clause}{%
+ \let\Clause\contract@paragraph
+ }{%
+ \expandafter\let\expandafter\Clause
+ \csname #1@Clause\endcsname
+ }%
+ \@ifundefined{#1@SubClause}{%
+ \let\SubClause\contract@subparagraph
+ }{%
+ \expandafter\let\expandafter\SubClause
+ \csname #1@SubClause\endcsname
+ }%
+ \@ifundefined{#1@Sentence}{%
+ \let\Sentence\contract@sentence
+ }{%
+ \expandafter\let\expandafter\Sentence\csname #1@Sentence\endcsname
+ }%
+ \@ifundefined{\scrjura@env@type @everypar}{%
+ \expandafter\let
+ \csname \scrjura@env@type @everypar\endcsname
+ \contract@everypar
+ }{}%
+% \end{macrocode}
+% Jetzt wird noch ein Font-Alias für \texttt{Clause} gesetzt. Ist kein Font
+% und kein Alias-Font für die neue Umgebung definiert, so wird
+% \texttt{contract.Clause} verwendet.
+% \changes{v3.25}{2017/12/08}{Fontalias korrigiert}^^A
+% \begin{macrocode}
+ \IfExistskomafont{#1.Clause}{%
+ \IfIsAliaskomafont{#1.Clause}{%
+ \aliaskomafont{Clause}{\csname scr@fnt@instead@#1.Clause\endcsname}%
+ }{%
+ \aliaskomafont{Clause}{#1.Clause}%
+ }%
+ }{%
+ \aliaskomafont{Clause}{contract.Clause}%
+ }%
+ #3%
+ \else
+ \PackageError{scrjura}{nested scrjura environments detected}{%
+ You must not use a `#1' environment inside\MessageBreak
+ a `\scrjura@env@type' environment or after loading\MessageBreak
+ package `scrjura' with option `\scrjura@env@type'!}%
+ \fi
+ }{%
+ #4%
+ \par
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \@dewjuraenvironment
+% \end{macro}^^A \DeclareNewJuraEnvironment
+%
+% \begin{macro}{\contract@paragraph}
+% Das ist das Macro, das in Verträgen |\Clause| zur Verfügung stellt.
+% Ein Vertrag besteht aus mehreren Paragraphen. Jeder Paragraph hat einige
+% optionale Elemente, die (auf dem Umweg über scrkbase) über das
+% keyval-Paket geregelt werden.
+% \begin{option}{title}
+% \begin{option}{head}
+% \begin{option}{entry}
+% \changes{v0.6}{2011/09/30}{Option veraltet}
+% \begin{option}{tocentry}
+% \changes{v0.6}{2011/09/30}{neue Option}
+% \begin{option}{nohead}
+% \begin{option}{noentry}
+% \changes{v0.6}{2011/09/30}{Option veraltet}
+% \begin{option}{notocentry}
+% \changes{v0.6}{2011/09/30}{neue Option}
+% Der Titel, der Kolumnentitel und der Verzeichniseintrag des
+% Paragraphen. Der Titel setzt dabei zunächst auch die anderen beiden. Man
+% kann die beiden aber auf leer setzen. Insbesondere aber kann man sie mit
+% den |no|-Optionen auch abschalten.
+% \begin{macrocode}
+\define@key{contract}{title}{%
+ \def\contract@title{#1}%
+ \ifx\contract@entry\relax\def\contract@entry{\contract@title}\fi
+ \ifx\contract@head\relax\def\contract@head{\contract@title}\fi
+}
+\define@key{contract}{entry}{%
+ \PackageWarning{scrjura}{deprecated option `entry'.\MessageBreak
+ You should use option `tocentry' instead of\MessageBreak
+ option `entry'%
+ }%
+ \def\contract@entry{#1}}
+\define@key{contract}{tocentry}{\def\contract@entry{#1}}
+\define@key{contract}{noentry}[]{%
+ \PackageWarning{scrjura}{deprecated option `noentry'.\MessageBreak
+ You should use option `notocentry' instead of\MessageBreak
+ option `noentry'%
+ }%
+ \let\contract@entry\relax}
+\define@key{contract}{notocentry}[]{\let\contract@entry\relax}
+\define@key{contract}{head}{\def\contract@head{#1}}
+\define@key{contract}{nohead}[]{\let\contract@head\relax}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{option}
+% \begin{option}{number}
+% Die Nummer kann mit dieser Option frei gestaltet werden. Es sind jedoch
+% keine Paragraphen ohne Nummer erlaubt. Wird keine Nummer angegeben, so
+% wird die Nummer automatisch gesetzt.
+% \begin{macrocode}
+\define@key{contract}{number}{\def\contract@number{#1}}
+% \end{macrocode}
+% \end{option}
+% \begin{macro}{\contract@preskip}
+% \begin{macro}{\contract@postskip}
+% \begin{option}{preskip}
+% \begin{option}{postskip}
+% Über diese beiden Optionen kann der Abstand vor und nach einem Pragraphen
+% gesetzt werden. Wird nichts angegeben, so wird die globale Voreinstellung
+% verwendet, die übrigens mit |\setkeys{contract}{...}| gesetzt werden
+% kann.
+% \begin{macrocode}
+\newcommand*{\contract@preskip}{2\baselineskip}
+\newcommand*{\contract@postskip}{\baselineskip}
+\define@key{contract}{preskip}{\def\contract@preskip{#1}}
+\define@key{contract}{postskip}{\def\contract@postskip{#1}}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+% \end{macro}
+% \end{macro}
+% \begin{option}{dummy}
+% Über dies Option wird der Schalter |\ifcontract@dummy| auf |\iftrue|
+% gesetzt.
+% \begin{macro}{\ifcontract@dummy}
+% Ist der Schalter |\iftrue|, dann wird der Paragraph nicht gesetzt. Es ist
+% jedoch darauf zu achten, dass Absätze und Sätze des Paragraphen auf diese
+% Weise nicht entfernt werden können. Werden jedoch Paragraphen gelöscht, so
+% kann man damit das Loch in der Nummerierung erzeugen.
+% \begin{macrocode}
+\newif\ifcontract@dummy
+\define@key{contract}{dummy}[true]{\csname contract@dummy#1\endcsname}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \begin{macro}{\contract@paragraph@font}
+% \changes{v3.25}{2017/12/08}{Es wird Element \texttt{Clause} statt
+% \texttt{contract.Clause} verwendet}^^A
+% Eigentlich müsste die Anweisung \cs{contract@paragraph@format} heißen. Da
+% sie jedoch für irgendwelche Tricks verwendet wurde. will ich das ungern
+% ändern. Ebenso müsste die Anweisung eigentlich je nach Vertragsumgebung
+% neu definiert und dann jene Defintion verwendet werden.
+% \begin{macrocode}
+\newkomafont{contract.Clause}{\sffamily\bfseries\large}
+\newcommand*{\contract@paragraph@font}{\usekomafont{Clause}%
+ \@hangfrom}
+% \end{macrocode}
+% \end{macro}
+% \begin{Counter}{@AbsClause}
+% \begin{macro}{\theH@AbsClause}
+% \begin{macro}{\theHClause}
+% \begin{macro}{\theHSubClause}
+% \begin{macrocode}
+% \textsf{hyperref}-Code, der noch nicht getestet ist!
+\newcounter{@AbsClause}
+\newcommand*{\theH@AbsClause}{P-\arabic{@AbsClause}}
+\newcommand*{\theHClause}{\theH@AbsClause}
+\newcommand*{\theHSubClause}{\theH@AbsClause}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{Counter}
+% Zunächst wird vorübergehend auf manuelle Absatznummern umgeschaltet, weil
+% 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{contractAbsoluteClause} wird
+% erhöht}^^A
+% \changes{v0.7b}{2014/11/03}{\texttt{contractAbsoluteClause}
+% flexibilisiert}^^A
+% \begin{macrocode}
+\newcommand*{\contract@paragraph}[1]{%
+ \stepcounter{\scrjura@env@type AbsoluteClause}%
+ \ManualPar\parnumbertrue
+ \let\contract@title\relax
+ \let\contract@entry\relax
+ \let\contract@head\relax
+ \let\contract@number\relax
+ \contract@dummyfalse
+ \ifx\relax#1\relax\else\setkeys{contract}{#1}\fi
+% \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
+% \end{macrocode}
+% 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@Clauseformat}
+% auch bei manueller Nummerierung der Paragraphen.}^^A
+% \changes{v0.9c}{2015/05/13}{\cs{thecontractClause} durch
+% umgebungsabhängiges Macro ersetzt.}^^A
+% \begin{macrocode}
+ \ifx\contract@number\relax
+ \let\p@Clause\@empty
+ \expandafter\let\expandafter\theClause
+ \csname the\scrjura@env@type Clause\endcsname
+ \refstepcounter{Clause}%
+ \else
+ \begingroup
+ \let\@elt\@stpelt
+ \cl@Clause
+ \endgroup
+% \end{macrocode}
+% \changes{v0.9f}{2016/02/24}{\cs{protect}\cs{\@nameuse} statt
+% \cs{csname}\dots\cs{endcsname}}^^A
+% \begin{macrocode}
+ \protected@edef\theClause{%
+ \protect\@nameuse{\scrjura@env@type @Clauseformat}{\contract@number}%
+ }%
+ \protected@edef\@currentlabel{\theClause}%
+ \fi
+ \stepcounter{@AbsClause}%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname if@skiphyperref\endcsname\relax
+ \else
+ \expandafter\let\csname if@scrjura@skiphyperref\expandafter\endcsname
+ \csname if@skiphyperref\endcsname
+ \fi
+ \if@scrjura@skiphyperref\else
+ \hyper@refstepcounter{@AbsClause}%
+ \typeout{absolute Nummer: \the@AbsClause^^JLabel: `\@currentHref'}%
+ \fi
+% \end{macrocode}
+% Zwecks Vereinfachung wird ab hier so getan, als wäre es ein Unterabschnitt.
+% \begin{macrocode}
+ \let\theSubClause\theClause
+% \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}^^A
+% \changes{v0.9i}{2017/02/23}{Verwendung von \cs{ext@toc}}^^A
+% \begin{macrocode}
+ \ifcontract@dummy\else
+ \begingroup
+ \if@juratitlepagebreak\else\interlinepenalty\@M\fi
+ \contract@paragraph@font{\theClause
+ \ifx\contract@title\relax\else\enskip\fi}%
+ \contract@title
+ \ifx\contract@entry\relax\else
+ \expandafter\addxcontentsline\expandafter{\ext@toc}%
+ {cpar}[\theClause]\contract@entry
+ \addxcontentsline{cpa}{cpar}[\theClause]\contract@entry
+ \fi
+ \ifx\contract@head\relax\else
+ \expandafter\Clausemark\expandafter{%
+ \expandafter\theSubClause\expandafter\enskip\contract@head}%
+ \fi
+ \par
+ \endgroup\nobreak\vskip\contract@postskip
+% \end{macrocode}
+% Zum Schluss wird noch dafür gesorgt, dass auch die Absätze korrekt
+% nummeriert werden können etc.
+% \begin{macrocode}
+ \scrjura@afterheading
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \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{contractAbsoluteClause} wird
+% erhöht}^^A
+% \changes{v0.7}{2013/04/28}{Abstand nach der Nummer als Bestandteil der
+% Nummer setzen}^^A
+% \changes{v0.9i}{2017/02/23}{Verwendung von \cs{ext@toc}}^^A
+% Das entspricht bis auf wenige Kleinigkeiten, die Unterparagraphen betreffen,
+% |\contract@paragraph|
+% \begin{macrocode}
+\newcommand*{\contract@subparagraph}[1]{%
+ \stepcounter{\scrjura@env@type AbsoluteClause}%
+ \ManualPar\parnumbertrue
+ \let\contract@title\relax
+ \let\contract@entry\relax
+ \let\contract@head\relax
+ \let\contract@number\relax
+ \contract@dummyfalse
+ \ifx\relax#1\relax\else\setkeys{contract}{#1}\fi
+ \ifcontract@dummy\else
+ \par
+ \@afterindentfalse
+ \vskip\contract@preskip
+ \fi
+ \ifx\contract@number\relax
+ \let\p@SubClause\@empty
+ \let\theSubClause\thecontractSubClause
+ \refstepcounter{SubClause}%
+ \else
+ \begingroup
+ \let\@elt\@stpelt
+ \cl@SubClause
+ \endgroup
+ \protected@edef\theSubClause{\theClause\contract@number}%
+ \protected@edef\@currentlabel{\theSubClause}%
+ \fi
+ \stepcounter{@AbsClause}%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname if@skiphyperref\endcsname\relax
+ \else
+ \expandafter\let\csname if@scrjura@skiphyperref\expandafter\endcsname
+ \csname if@skiphyperref\endcsname
+ \fi
+ \if@scrjura@skiphyperref\else
+ \hyper@refstepcounter{@AbsClause}%
+ \typeout{absolute Nummer: \the@AbsClause^^JLabel: `\@currentHref'}%
+ \fi
+ \ifcontract@dummy\else
+ \begingroup
+ \if@juratitlepagebreak\else\interlinepenalty\@M\fi
+ \contract@paragraph@font{\theSubClause
+ \ifx\contract@title\relax\else\enskip\fi}%
+ \contract@title
+ \ifx\contract@entry\relax\else
+ \expandafter\addxcontentsline\expandafter{\ext@toc}%
+ {cpar}[\theSubClause]\contract@entry
+ \addxcontentsline{cpa}{cpar}[\theSubClause]\contract@entry
+ \fi
+ \ifx\contract@head\relax\else
+ \expandafter\Clausemark\expandafter{%
+ \expandafter\theSubClause\expandafter\enskip\contract@head}%
+ \fi
+ \par
+ \endgroup
+ \nobreak\vskip\contract@postskip
+ \scrjura@afterheading
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AutoPar}
+% \begin{macro}{\ManualPar}
+% Automatische oder manuelle Absatznummern für alle Umgebungen aktivieren.
+% \begin{macrocode}
+\newcommand*{\AutoPar}{%
+ \expandafter\let\expandafter\scrjura@everypar
+ \csname \scrjura@env@type @everypar\endcsname
+}
+\newcommand*{\ManualPar}{%
+ \let\scrjura@everypar\relax
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scrjura@afterheading}
+% \changes{v0.7b}{2014/11/03}{\cs{jura@afterheading} umbenannt}^^A
+% \changes{v0.7b}{2014/11/03}{benötigt kein Argument mehr}^^A
+% Entspricht |\afterheading| mit Erweiterungen für automatischen
+% Absatznummern.
+% \begin{macrocode}
+\newcommand*{\scrjura@afterheading}{%
+ \@nobreaktrue
+ \everypar{%
+ \if@nobreak
+ \@nobreakfalse
+ \clubpenalty \@M
+ \if@afterindent \else
+ {\setbox\z@\lastbox}%
+ \fi
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{%
+ \scrjura@everypar
+ }%
+ \fi
+ \scrjura@everypar
+ }%
+ \AutoPar
+}
+% \end{macrocode}
+% \begin{macro}{\scrjura@everypar}
+% \changes{v0.7b}{2014/11/03}{\cs{jura@everypar} umbenannt}^^A
+% Die Anweisung, die am Anfang von jedem Absatz auszuführen ist, um die
+% Nummer zu setzen. Außerhalb der Umgebungen ist das nichts.
+% \begin{macrocode}
+\newcommand*{\scrjura@everypar}{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@doendpe}
+% Diese Anweisung wird von \LaTeX{} verwendet, um am Ende von Umgebungen die
+% kurz-, mittel- und langwirkenden Absatzaktionen zurückzusetzen. Damit hier
+% nicht die automatische Absatznummerierung abgeschaltet wird, wird sie neu
+% eingefügt.
+% \begin{macro}{\scrjura@doendpe}
+% \begin{macro}{\IncludeInRelease}
+% \changes{v0.9e}{2015/11/03}{wird temporär benötigt}^^A
+% \begin{macro}{\@gobble@IncludeInRelease}
+% \changes{v0.9e}{2015/11/03}{wird temporär benötigt}^^A
+% \begin{macro}{\EndIncludeInRelease}
+% \changes{v0.9e}{2015/11/03}{wird temporär benötigt}^^A
+% Seit \LaTeX{} 2015/01/01 ist \cs{@doendpe} abhängig von
+% \textsf{latexrelease} etwas anders definiert. Das wird hier
+% berücksichtigt. Damit das auch noch mit älteren Versionen von \LaTeX{}
+% funktioniert, ohne dass man extra \textsf{latexrelease} nachinstalliert,
+% wird hier ein wenig getrickst. Die Änderungen werden aber so temporär wie
+% möglich gehalten.
+% \begin{macrocode}
+\providecommand*{\IncludeInRelease}[3]{%
+ \PackageInfo{scrjura}{temporary definition of \string\IncludeInRelease}%
+ \ifstr{#1}{0000/00/00}{%
+ \let\IncludeInRelease\@undefined
+ \def\EndIncludeInRelease{\let\EndIncludeInRelease\@undefined}%
+ }{%
+ \let\EndIncludeInRelease\relax
+ \long\def\@gobble@IncludeInRelease##1\EndIncludeInRelease{%
+ \let\@gobble@IncludeInRelease\@undefined
+ }%
+ \expandafter\@gobble@IncludeInRelease
+ }%
+}
+\IncludeInRelease{2015/01/01}{\@doendpe}{clubpenalty fix}
+\CheckCommand*\@doendpe{\@endpetrue
+ \def\par{\@restorepar
+ \clubpenalty\@clubpenalty
+ \everypar{}\par\@endpefalse}\everypar
+ {{\setbox\z@\lastbox}%
+ \everypar{}\@endpefalse}}
+\newcommand*{\scrjura@doendpe}{%
+ \@endpetrue
+ \def\par{%
+ \@restorepar
+ \clubpenalty\@clubpenalty
+ \everypar{%
+ \csname scrjura@everypar\endcsname
+ }%
+ \par\@endpefalse
+ }%
+ \everypar{%
+ {\setbox\z@\lastbox}\everypar{%
+ \csname scrjura@everypar\endcsname
+ }%
+ \@endpefalse
+ }%
+}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\@doendpe}{clubpenalty fix}
+\CheckCommand*\@doendpe{\@endpetrue
+ \def\par{\@restorepar\everypar{}\par\@endpefalse}\everypar
+ {{\setbox\z@\lastbox}\everypar{}\@endpefalse}}
+\newcommand*{\scrjura@doendpe}{%
+ \@endpetrue
+ \def\par{%
+ \@restorepar\everypar{%
+ \csname scrjura@everypar\endcsname
+ }%
+ \par\@endpefalse
+ }%
+ \everypar{%
+ {\setbox\z@\lastbox}\everypar{%
+ \csname scrjura@everypar\endcsname
+ }%
+ \@endpefalse
+ }%
+}
+\EndIncludeInRelease
+% \end{macrocode}
+% \end{macro}^^A \EndIncludeInRelease
+% \end{macro}^^A \@gobble@IncludeInRelease
+% \end{macro}^^A \IncludeInRelease
+% \end{macro}^^A \scrjura@doendpe
+% \end{macro}^^A \doendpe
+% \end{macro}^^A \scrjura@everypar
+%
+% \begin{macro}{\l@cpar}
+% Verzeichnis-Eintrag für einen Vertrags-Paragraphen.
+% \begin{macrocode}
+\newcommand*{\l@cpar}[2]{%
+ \ifnum\value{juratoclevel}>\value{tocdepth}\else
+ \scr@ifundefinedorrelax{bprot@dottedtocline}{%
+ \@dottedtocline
+ }{%
+ \bprot@dottedtocline
+ }{\value{juratoclevel}}{\cpar@indent}{\cpar@numberwidth}{#1}{#2}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scrjura@separator}
+% \changes{v0.7b}{2014/11/03}{\cs{jura@separator} umbenannt}^^A
+% Wird verwendet, damit Leerzeichen am Anfang oder Ende entfernt werden können.
+% \begin{macrocode}
+\DeclareRobustCommand*{\scrjura@separator}[1]{#1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scrjura@usetype}
+% \changes{v0.5d}{2010/04/28}{neu (intern)}^^A
+% \changes{v0.7b}{2014/11/03}{\cs{jura@usetype} umbenannt}^^A
+% In der Voreinstellung macht das erst einmal gar nichts, außer dass es robust
+% ist und \cs{jura@@usetype} aufruft.
+% \begin{macro}{\scrjura@@usetype}
+% \changes{v0.5d}{2010/04/28}{neu (intern)}^^A
+% \changes{v0.7b}{2014/11/03}{\cs{jura@@usetype} umbenannt}^^A
+% Das wiederum ist nicht robust und kann dadurch einfacher umdefiniert
+% werden. In der Voreinstellung macht das dann wirklich nichts, außer das
+% Argument zu fressen.
+% \begin{macrocode}
+\DeclareRobustCommand*{\scrjura@usetype}[1]{\scrjura@@usetype{#1}}
+\newcommand*{\scrjura@@usetype}[1]{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\contract@everypar}
+% |\scrjura@everpar| für Verträge.
+% \begin{macro}{\ifparnumber}
+% \changes{v0.6}{2011/09/29}{Definition des Schalters in die Definition der
+% Option verschoben}^^A
+% \begin{Counter}{par}
+% \begin{macro}{\thepar}
+% \begin{macro}{\theHpar}
+% \begin{macro}{\parformat}
+% \changes{v0.7}{2013/06/07}{neues Font-Element \texttt{parnumber}}^^A
+% \begin{macro}{\parformatseparation}
+% \changes{v0.9f}{2016/02/06}{neue Anweisung}^^A
+% \begin{macro}{\p@par}
+% \changes{v0.5d}{2010/04/28}{\cs{jura@usetype} mit Argument
+% \cs{jura@env@type} eingefügt}^^A
+% \begin{macro}{\withoutparnumber}
+% \changes{v3.25}{2017/12/19}{neu}^^A
+% Der Schalter gibt an, ob überhaupt mit Absatznummern gearbeitet werden
+% soll. Sind Absatznummern deaktiviert, werden auch keine manuellen
+% Absatznummern gesetzt. Die Absätze werden dann auch nicht gezählt. Ansonsten
+% werden die Absätze mit |\thepar| nummeriert. Wichtig ist, dass der
+% Absatzzähler mit den Paragraphen und den Unterparagraphen zurückgesetzt
+% wird. Außerdem muss beim Zitieren als Elternobjekt der Paragraph mit
+% ausgegeben werden.
+% \begin{macrocode}
+\newcounter{par}
+\renewcommand*{\thepar}{\arabic{par}}
+\newcommand*{\theHpar}{\theH@AbsClause-\Roman{par}}
+\newcommand*{\parformat}{(\thepar)}
+\newcommand*{\parformatseparation}{\nobreakspace}
+\newkomafont{parnumber}{}
+\renewcommand*\p@par{{\scrjura@usetype{\scrjura@env@type}\theSubClause\scrjura@separator{\nobreakspace}}}
+\@addtoreset{par}{Clause}
+\@addtoreset{par}{SubClause}
+\newcommand*{\withoutparnumber}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{Counter}
+% \end{macro}
+% \changes{v0.5c}{2010/04/26}{erstes Argument von \cs{newmaxpar} und zweites
+% Argument von \cs{getmaxpar} ist \texttt{contract} nicht
+% \texttt{contractpars}}
+% \changes{v0.5c}{2010/04/26}{\cs{contract@Clauseformat} expandiert beim
+% Schreiben zu seinem Argument}
+% \changes{v0.7}{2013/04/18}{Zähler \texttt{contractAbsoluteClause} 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}
+% \changes{v0.7b}{2014/11/03}{\texttt{contractAbsoluteClause}
+% flexibilisiert}^^A
+% \changes{v0.9f}{2016/02/06}{\cs{nobreakspace} durch
+% \cs{parformatseparation} ersetzt}^^A
+% \changes{v0.9g}{2016/03/25}{in die \texttt{aux}-Datei nur bei
+% \cs{if@filesw} schreiben}^^A
+% \begin{macrocode}
+\newcommand*{\contract@everypar}{%
+ \ifparnumber
+ \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
+ \if@filesw
+ \protected@write\@auxout{%
+ \expandafter\let\csname \scrjura@env@type @Clauseformat\endcsname
+ \@firstofone
+ }{%
+ \string\newmaxpar{\scrjura@env@type}%
+ {\csname the\scrjura@env@type
+ AbsoluteClause\endcsname}%
+ {\thepar}%
+ }%
+ \fi
+ \getmaxpar\@tempa{\scrjura@env@type}%
+ {\csname the\scrjura@env@type AbsoluteClause\endcsname}%
+ \typeout{Stored max is \@tempa}%
+ \def\reserved@a##1\@nnil{\def\@tempa{##1}}%
+ \afterassignment\reserved@a\@tempcnta=0\@tempa\relax\@nnil
+ \ifnum \@tempcnta>\@ne
+ {\usekomafont{parnumber}{\parformat\parformatseparation}}%
+ \else
+ \def\reserved@a{\relax}%
+ \ifx\@tempa\reserved@a
+ \withoutparnumber
+ \else
+ {\usekomafont{parnumber}{\parformat\parformatseparation}}%
+ \fi
+ \fi
+ \endgroup
+ \else
+ \begingroup\withoutparnumber\endgroup
+ \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}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ref@L}
+% Das gleiche wie |\ref| aber zwingend mit der Langform.
+% \begin{macrocode}
+\newcommand*{\refL}{\kernel@ifstar {\ref@L*}{\ref@L{}}}
+\newcommand*{\ref@L}[2]{%
+ \begingroup
+ \def\parcite@format{0}%
+ \let\sentencecite@format\parcite@format
+ \ref#1{#2}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\refS}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ref@S}
+% Das gleiche wie |\ref| aber zwingend mit der Kurzform.
+% \begin{macrocode}
+\newcommand*{\refS}{\kernel@ifstar {\ref@S*}{\ref@S{}}}
+\newcommand*{\ref@S}[2]{%
+ \begingroup
+ \def\parcite@format{1}%
+ \let\sentencecite@format\parcite@format
+ \ref#1{#2}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\refN}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ref@N}
+% Das gleiche wie |\ref| aber zwingend mit der numerischen Form.
+% \begin{macrocode}
+\newcommand*{\refN}{\kernel@ifstar {\ref@N*}{\ref@N{}}}
+\newcommand*{\ref@N}[2]{%
+ \begingroup
+ \def\parcite@format{2}%
+ \let\sentencecite@format\parcite@format
+ \ref#1{#2}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\refClause}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ref@Clause}
+% Zitiert nur den Paragraphen eines Paragraphen, eines Absatzes oder eines
+% Satzes. Für mehr Kompatibilität mit hyperref gibt es mit hyperref auch eine
+% Sternform. Ohne hyperref produziert diese nur Unsinn.
+% \begin{macrocode}
+\newcommand*{\refClause}{%
+ \kernel@ifstar {\ref@Clause*}{\ref@Clause{}}
+}
+\newcommand*{\ref@Clause}[2]{%
+ \expandafter\ifx\csname r@#2\endcsname\relax
+ \ref#1{#2}%
+ \else
+ \begingroup
+% \end{macrocode}
+% Alle Teile der Referenz bis auf den ersten in |\@tempb| ablegen.
+% \begin{macrocode}
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\@tempb
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter{%
+ \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
+% \end{macrocode}
+% Den ersten Teil der Referenz in |\@tempa| ablegen.
+% \begin{macrocode}
+ \def\@tempc##1##2\@nil{##1}%
+ \let\scrjura@separator\@gobble
+ \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
+ \csname r@#2\endcsname\noexpand\@nil}%
+% \end{macrocode}
+% Den ersten Teil von |\@tempa| in |\@tempa| ablegen.
+% \begin{macrocode}
+ \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
+ \@tempa\@nil}%
+ \let\@@protect\protect
+ \let\protect\noexpand
+ \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}%
+ \let\protect\@@protect
+ \ref#1{#2}%
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\refClauseN}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ref@ClauseN}
+% Zitiert nur den Paragraphen eines Paragraphen, eines Absatzes oder eines
+% Satzes. Für mehr Kompatibilität mit hyperref gibt es mit hyperref auch eine
+% Sternform. Ohne hyperref produziert diese nur Unsinn.
+% \begin{macrocode}
+\newcommand*{\refClauseN}{%
+ \kernel@ifstar {\ref@ClauseN*}{\ref@ClauseN{}}
+}
+\newcommand*{\ref@ClauseN}[2]{%
+ \begingroup
+ \let\Clauseformat\relax
+ \ref@Clause{#1}{#2}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\refPar}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ref@Par}
+% Zitiert nur den Absatz eines Absatzes oder eines Satzes. Für mehr
+% Kompatibilität mit hyperref gibt es mit hyperref auch eine Sternform. Ohne
+% hyperref produziert diese nur Unsinn.
+% \begin{macrocode}
+\newcommand*{\refPar}{%
+ \kernel@ifstar {\ref@Par*}{\ref@Par{}}
+}
+\newcommand*{\ref@Par}[2]{%
+ \expandafter\ifx\csname r@#2\endcsname\relax
+ \ref#1{#2}%
+ \else
+ \begingroup
+% \end{macrocode}
+% Alle Teile der Referenz bis auf den ersten in |\@tempb| ablegen.
+% \begin{macrocode}
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\@tempb
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter{%
+ \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
+% \end{macrocode}
+% Den ersten Teil der Referenz in |\@tempa| ablegen.
+% \begin{macrocode}
+ \def\@tempc##1##2\@nil{##1}%
+ \let\scrjura@separator\@gobble
+ \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
+ \csname r@#2\endcsname\noexpand\@nil}%
+% \end{macrocode}
+% Den zweiten Teil von |\@tempa| in |\@tempa| ablegen.
+% \begin{macrocode}
+ \def\@tempc##1##2##3\@nil{##2}%
+ \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
+ \@tempa{%
+ \protect\G@refundefinedtrue
+ \nfss@text{\reset@font\bfseries ??}%
+ \@latex@warning{Reference `#2' on page \thepage \space
+ with undefined par number}%
+ }\noexpand\@nil}%
+ \let\@@protect\protect
+ \let\protect\noexpand
+ \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}%
+ \let\protect\@@protect
+ \ref#1{#2}%
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\refParL}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ref@ParX}
+% \begin{macrocode}
+% Das Gleiche zwingend lang.
+\newcommand*{\refParL}{%
+ \kernel@ifstar {\ref@ParX0*}{\ref@ParX0{}}
+}
+\newcommand*{\ref@ParX}[3]{%
+ \begingroup
+ \def\parcite@format{#1}%
+ \let\sentencecite@format\parcite@format
+ \ref@Par{#2}{#3}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\refParS}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% Das Gleiche zwingend kurz.
+% \begin{macrocode}
+\newcommand*{\refParS}{%
+ \kernel@ifstar {\ref@ParX1*}{\ref@ParX1{}}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\refParN}
+% \begin{macro}{\ref@ParN}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ref@@ParN}
+% Das Gleiche zwingend nummerisch.
+% \begin{macrocode}
+\newcommand*{\refParN}{%
+ \kernel@ifstar {\ref@ParN2*}{\ref@ParN2{}}
+}
+\newcommand*{\ref@ParN}[2]{%
+ \kernel@ifnextchar [%]
+ {\ref@@ParN{#1}{#2}}%
+ {\ref@ParX{#1}{#2}}%
+}
+\newcommand*{\ref@@ParN}{}
+\def\ref@@ParN#1#2[#3]#4{%
+ \begingroup
+ \renewcommand*{\parnumericformat}[1]{%
+ \csname @#3\endcsname{\number ##1\relax}%
+ }%
+ \ref@ParX{#1}{#2}{#4}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\refSentence}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ref@Sentence}
+% Zitiert nur den Satz eines Satzes. Für mehr
+% Kompatibilität mit hyperref gibt es mit hyperref auch eine Sternform. Ohne
+% hyperref produziert diese nur Unsinn.
+% \begin{macrocode}
+\newcommand*{\refSentence}{%
+ \kernel@ifstar {\ref@Sentence*}{\ref@Sentence{}}
+}
+\newcommand*{\ref@Sentence}[2]{%
+ \expandafter\ifx\csname r@#2\endcsname\relax
+ \ref#1{#2}%
+ \else
+ \begingroup
+% \end{macrocode}
+% Alle Teile der Referenz bis auf den ersten in |\@tempb| ablegen.
+% \begin{macrocode}
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\@tempb
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter{%
+ \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
+% \end{macrocode}
+% Den ersten Teil der Referenz in |\@tempa| ablegen.
+% \begin{macrocode}
+ \def\@tempc##1##2\@nil{##1}%
+ \let\scrjura@separator\@gobble
+ \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
+ \csname r@#2\endcsname\noexpand\@nil}%
+% \end{macrocode}
+% Den dritten Teil von |\@tempa| in |\@tempa| ablegen.
+% \begin{macrocode}
+ \def\@tempc##1##2##3##4\@nil{##3}%
+ \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
+ \@tempa{}{%
+ \protect\G@refundefinedtrue
+ \nfss@text{\reset@font\bfseries ??}%
+ \@latex@warning{Reference `#2' on page \thepage \space
+ with undefined sentence number}%
+ }\noexpand\@nil}%
+ \let\@@protect\protect
+ \let\protect\noexpand
+ \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}%
+ \let\protect\@@protect
+ \ref#1{#2}%
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\refSentenceL}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ref@SentenceX}
+% \begin{macrocode}
+% Das Gleiche zwingend lang.
+\newcommand*{\refSentenceL}{%
+ \kernel@ifstar {\ref@SentenceX0*}{\ref@SentenceX0{}}
+}
+\newcommand*{\ref@SentenceX}[3]{%
+ \begingroup
+ \def\parcite@format{#1}%
+ \let\sentencecite@format\parcite@format
+ \ref@Sentence{#2}{#3}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\refSentenceS}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% Das Gleiche zwingend kurz.
+% \begin{macrocode}
+\newcommand*{\refSentenceS}{%
+ \kernel@ifstar {\ref@SentenceX1*}{\ref@SentenceX1{}}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\refSentenceN}
+% \changes{v0.9h}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% Das Gleiche zwingend nummerisch.
+% \begin{macrocode}
+\newcommand*{\refSentenceN}{%
+ \kernel@ifstar {\ref@SentenceX2*}{\ref@SentenceX2{}}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\contract@sentence}
+% \changes{v0.7a}{2014/01/28}{auf \cs{textsuperscript} umgestellt}^^A
+% \changes{v0.7a}{2014/01/28}{\cs{nobreak}\cs{hskip}\cs{z@} eingefügt, um
+% die Trennung des ersten Worts nach der Satzmarkierung zu ermöglichen}^^A
+% Sätze nummerieren.
+% \begin{Counter}{sentence}
+% \begin{macro}{\thesentence}
+% \begin{macro}{\theHsentence}
+% \begin{macro}{\p@sentence}
+% Der Zähler wird für die Nummerierung der Sätze verwendet. Dabei ist wichtig,
+% dass beim Zitieren der Sätze als Elternobjekt der Absatz mit ausgegeben wird.
+% \begin{macrocode}
+\newcounter{sentence}[par]
+\renewcommand*{\thesentence}{\arabic{sentence}}
+\newcommand*{\theHsentence}{\theHpar-\arabic{sentence}}
+\renewcommand*{\p@sentence}{\expandafter\p@@sentence}
+\newcommand*{\p@@sentence}[1]{\p@par{{\par@cite{\thepar}}%
+ \scrjura@separator{\nobreakspace}}{\sentence@cite{#1}}}
+\newcommand*{\contract@sentence}{%
+% \end{macrocode}
+% \changes{v0.9e}{2015/11/04}{erst den Absatz beginnen, dann die Nummer
+% setzen}^^A
+% \changes{v3.26}{2018/07/20}{neues Element \texttt{sentencenumber}}^^A
+% \changes{v3.26}{2018/07/20}{neue Formatierung \cs{sentencenumberformat}}^^A
+% Bei der Nummerierung ist wichtig, dass am Anfang des Absatzes die
+% Satznummer nicht erhöht wird, weil das der Absatz bereits erledigt. Damit
+% das funktioniert muss aber vor der Ausgabe erst einmal der Absatz begonnen
+% werden. Befinden wir uns allerdings unmittelbar hinter einer
+% \texttt{minipage}, einer Liste oder einer \cs{parbox} tun wir so, als wären
+% wir nicht am Anfang des Absatzes.
+% \begin{macrocode}
+ \ifvmode
+ \if@endpe
+ \refstepcounter{sentence}%
+ \else
+ \leavevmode
+ \fi
+ \else
+ \refstepcounter{sentence}%
+ \fi
+ {\usekomafont{sentencenumber}{\sentencenumberformat}}%
+ \nobreak\hskip\z@
+}
+% \end{macrocode}
+% \begin{macro}{\sentencenumberformat}
+% \changes{v3.26}{2018/07/20}{neu}^^A
+% Formatierung und Schrift können über \cs{sentencenumberformat} und Element
+% \texttt{sentencenumber} geändert werden. Voreinstellung für
+% \cs{sentenceformat} ist \cs{textsuperscript}.
+% \begin{macrocode}
+\newkomafont{sentencenumber}{}
+\newcommand*{\sentencenumberformat}{\textsuperscript{\thesentence}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{Counter}
+% \end{macro}
+%
+% \begin{macro}{\parciteformat}
+% \changes{v0.5d}{2010/04/28}{Argument verschoben}
+% Zitierstil für Absätze.
+% \begin{macrocode}
+\DeclareRobustCommand*{\par@cite}[1]{\parciteformat{#1}}
+\newcommand*{\parciteformat}[1]{%
+ \ifcase \parcite@format
+ \expandafter\parlongformat
+ \or
+ \expandafter\parshortformat
+ \or
+ \expandafter\parnumericformat
+ \else
+ \unskip\expandafter\@gobble
+ \fi
+ {#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sentenceciteformat}
+% \changes{v0.5d}{2010/04/28}{Argument verschoben}
+% Zitierstil für Sätze. In der Voreinstellung ist das |\@arabic|.
+% \begin{macrocode}
+\DeclareRobustCommand*{\sentence@cite}[1]{\sentenceciteformat{#1}}
+\newcommand*{\sentenceciteformat}[1]{%
+ \ifcase \sentencecite@format
+ \expandafter\sentencelongformat
+ \or
+ \expandafter\sentenceshortformat
+ \or
+ \expandafter\sentencenumericformat
+ \else
+ \unskip\expandafter\@gobble
+ \fi
+ {#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\parlongformat}
+% \begin{macro}{\parshortformat}
+% \begin{macro}{\parnumericformat}
+% \begin{macro}{\sentencelongformat}
+% \begin{macro}{\sentenceshortformat}
+% \begin{macro}{\sentencenumericformat}
+% Formatierung in den sechs Formen.
+% \begin{macrocode}
+\newcommand*{\parlongformat}[1]{\parname~#1}
+\newcommand*{\parshortformat}[1]{\parshortname~#1}
+\newcommand*{\parnumericformat}[1]{\@Roman{\number #1\relax}}
+\newcommand*{\sentencelongformat}[1]{\sentencename~#1}
+\newcommand*{\sentenceshortformat}[1]{\sentenceshortname~#1}
+\newcommand*{\sentencenumericformat}[1]{\@arabic{\number #1\relax}.}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\parname}
+% \begin{macro}{\parshortname}
+% \begin{macro}{\sentencename}
+% \begin{macro}{\sentenceshortname}
+% \begin{macro}{\scrjura@lang@error}
+% \changes{v0.7}{2013/09/19}{Verwendung von \cs{PackageError} an Stelle von
+% \cs{PackageErrorNoLine}}^^A
+% \changes{v3.24}{2017/05/29}{Anpassung an Sprachänderung
+% (\texttt{usenglish} und \texttt{ukenglish} statt \texttt{USenglish} und
+% \texttt{UKenglish}) in \textsf{babel}~3.10}^^A
+% Der Name eines Absatzes und eines Satzes. Die englischen Namen wurden von
+% »m.eik« beigesteuert.
+% \begin{macrocode}
+\newcommand*{\parname}{Paragraph}
+\AtBeginDocument{%
+ \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,usenglish,ukenglish}\parname{paragraph}%
+ \providecaptionname{english,american,british,canadian,%
+ USenglish,UKenglish,usenglish,ukenglish}\parshortname{par.}%
+ \providecaptionname{english,american,british,canadian,%
+ USenglish,UKenglish,usenglish,ukenglish}\sentencename{sentence}%
+ \providecaptionname{english,american,british,canadian,%
+ USenglish,UKenglish,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]{%
+ \PackageError{scrjura}{%
+ current language not supported%
+ }{%
+ Currently scrjura only supports languages `german', `ngerman',
+ `austrian',\MessageBreak
+ `naustrian', `english', `american', `british', `canadian',
+ `USenglish',\MessageBreak
+ `UKenglish', `usenglish`, and `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{??}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\newmaxpar}
+% \changes{v0.6b}{2013/04/16}{\cs{\#1@Clauseformat} expandiert zu seinem
+% Argument}^^A
+% \begin{macro}{\getmaxpar}
+% \changes{v0.6}{2011/09/30}{Argument 3 muss mit \cs{protected@edef}
+% expandiert werden}^^A
+% \changes{v0.5c}{2010/04/26}{\cs{protected@edef} durch \cs{edef}
+% ersetzt}^^A
+% \changes{v0.5c}{2010/04/26}{\cs{\#2@Clauseformat} expandiert zu seinem
+% Argument}^^A
+% Noch zwei Hilfsmakros, um Zähler in der aux-Datei zwischenzuspeichern und
+% auch dann Werte zu holen, wenn sie nicht in der aux-Datei stehen.
+% \begin{macrocode}
+\newcommand*{\newmaxpar}[3]{%
+ \begingroup
+ \expandafter\let\csname #1@Clauseformat\endcsname\@firstofone
+ \protected@edef\@tempa{#2}\@onelevel@sanitize\@tempa
+ \expandafter\xdef\csname max@#1@\@tempa\endcsname{#3}%
+ \endgroup
+}
+\newcommand*{\getmaxpar}[3]{%
+ \begingroup
+ \expandafter\let\csname #2@Clauseformat\endcsname\@firstofone
+ \protected@edef\@tempa{#3}%
+ \@onelevel@sanitize\@tempa
+ \expandafter\ifx \csname max@#2@\@tempa\endcsname\relax
+ \edef\@tempa{\endgroup\edef\noexpand#1{\expandafter\the\value{par}}}%
+ \else
+ \edef\@tempa{\endgroup
+ \edef\noexpand#1{\csname max@#2@\@tempa\endcsname}}%
+ \fi
+ \@tempa
+}
+% \end{macrocode}
+% \changes{v0.7b}{2014/11/10}{Notfallcode in die \texttt{aux}-Datei}^^A
+% \changes{v0.9g}{2015/03/25}{in die \texttt{aux}-Datei nur bei
+% \cs{if@filesw} schreiben}^^A
+% Da manche Anwender \texttt{scrjura} aus einem Dokument entfernen, ohne die
+% \texttt{aux}-Dateien zu löschen, sehen wir eine Notlösung vor, um
+% Fehlermeldungen wegen nicht definiertem \cs{newmaxpar} zu vermeiden.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \if@filesw
+ \immediate\write\@auxout{%
+ \string\providecommand*\string\newmaxpar[3]{}
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrjura.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% coding: iso-latin-1
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx b/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx
new file mode 100644
index 0000000000..c347177f85
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx
@@ -0,0 +1,4677 @@
+% \CheckSum{3893}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-basics.dtx
+% Copyright (c) Markus Kohm, 2002-2019
+%
+% 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-2019
+%
+% 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 3063 2019-02-01 07:39:11Z kohm $
+%<prepare>%%% (run: prepare)
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<load>%%% (run: load)
+%<package&prepare>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
+ \filedate$Date: 2019-02-01 08:39:11 +0100 (Fri, 01 Feb 2019) $
+ \def\filerevision$#1: #2 ${\def\filerevision{r#2}}
+ \filerevision$Revision: 1638 $
+ \xdef\fileinfo{\filedate\space\filerevision\space}
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel_basics.dtx}%
+ [\filedate\space\filerevision\space
+ }
+\reserved@a
+%</dtx>
+%<*dtx|(package&prepare)>
+%<package>\ProvidesPackage{%
+%<package&base> scrbase%
+%<package&koma> scrkbase%
+%<package>}[%
+%!KOMAScriptVersion
+ package
+%<*dtx>
+ source
+%</dtx>
+ (%
+%<base> KOMA-Script-independent
+%<koma> KOMA-Script-dependent
+ basics and keyval usage)]
+%</dtx|(package&prepare)>
+%<*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,prepare,base}%
+ \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
+\documentclass{scrdoc}
+\usepackage[english,ngerman]{babel}
+\usepackage[latin1]{inputenc}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrkernel-basics.dtx}
+\title{\KOMAScript{} \partname\ \texttt{\filename}%
+ \footnote{Dies ist Revision \fileversion\ von Datei
+ \texttt{\filename}.}}
+\date{\filedate}
+\author{Markus Kohm}
+
+\begin{document}
+ \maketitle
+ \tableofcontents
+ \DocInput{\filename}
+\end{document}
+%</dtx>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v1.0}{2002/07/06}{Beginn der ersten Version}^^A
+% \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
+%</load>
+%<*prepare>
+% \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}
+%</base>
+% \end{macrocode}
+%
+%
+% \subsection{Der abhängige Teil lädt den unabhängigen Teil}
+%
+% \begin{macrocode}
+%<koma>\RequirePackage{scrbase}[\KOMAScriptVersion]
+% \end{macrocode}
+%
+% \subsection{Laden von \textsf{keyval}}
+%
+% Hier wird nicht nur das Paket geladen, was ruckzuck mit:
+% \begin{macrocode}
+%<base>\RequirePackage{keyval}
+% \end{macrocode}
+% erledigt ist.
+%
+% \subsection{Schutz vor Umdefinierung von
+% \LaTeX-Kern-Anweisungen durch
+% andere Pakete}
+% Einige Pakete wie \textsf{amsgen} definieren \LaTeX-Kern-Anweisungen so um,
+% dass sie nicht mehr korrekt funktionieren. Ich muss dann leider dafür
+% sorgen, dass \KOMAScript{} damit keine Probleme hat. Die Klassen sind dabei
+% in der günstigen Situation, dass sie ggf. einfach die vorhandene Definition
+% testen und übernehmen können. Die Pakete müssen hingegen dummer Weise selbst
+% dafür sorgen, dass es irgendwie funktioniert.
+%
+% \begin{macro}{\kernel@ifstar}
+% \changes{v3.20}{2016/04/12}{neu (intern)}
+% Ich hoffe ja, dass der \LaTeX-Kern zukünftig diese Anweisung definiert und
+% das dann auch funktioniert. Damit es aber auch mit älteren \LaTeX-Versionen
+% geht, sorge ich hier vor.
+% \begin{macrocode}
+%<base>\providecommand*\kernel@ifstar[1]{\kernel@ifnextchar*{\@firstoftwo{#1}}}
+% \end{macrocode}
+% \end{macro}^^A \kernel@ifstar
+%
+% \subsection{Test von Anweisungen}
+%
+% \begin{macro}{\scr@ifundefinedorrelax}
+% \changes{v2.95c}{2006/08/12}{neu (intern)}^^A
+% \changes{v2.97b}{2007/03/08}{vermurkste Logik korrigiert}^^A
+% \changes{v2.97c}{2007/04/18}{vermurkste Funktion korrigiert}^^A
+% \changes{v2.97c}{2007/04/18}{von \cs{scr@ifundefined} umbenannt}
+% \changes{v3.02c}{2009/02/19}{Sonderbehandlung für nicht \eTeX entfernt}^^A
+% 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
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@ifundefinedorrelax
+%
+%
+% \subsection{Erweiterung von Meldungen}
+%
+% \begin{macro}{\PackageErrorNoLine}
+% \changes{v3.12}{2013/09/19}{neu}^^A
+% 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}%
+}
+%</base>
+% \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}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\DefineFamilyMember}
+% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A
+% \begin{macro}{\DefineFamilyKey}
+% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A
+% \changes{v3.12}{2013/03/04}{Setzen von \cs{FamilyKeyState}}
+% \begin{macro}{\scr@if@family}
+% \changes{v3.00}{2008/04/30}{Neu (intern)}^^A
+% \begin{macro}{\scr@if@familymember}
+% \changes{v3.00}{2008/04/30}{Neu (intern)}^^A
+% \begin{macro}{\scr@define@family@key}
+% \changes{v3.00}{2008/04/30}{Neu (intern)}^^A
+% \begin{macro}{\scr@define@family@key@nodefault}
+% \changes{v3.00}{2008/04/30}{Neu (intern)}^^A
+% \changes{v3.18a}{2015/07/03}{fehlendes \% ergänzt}^^A
+% 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]{%
+ \kernel@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}{}
+\long\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
+ }%
+ }%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@define@family@key@nodefault
+% \end{macro}^^A \scr@define@family@key
+% \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}{\RelaxFamilyKey}
+% \changes{v3.15}{2014/12/03}{neue Anweisung}^^A
+% Undefiniert einen Schlüssel. Irgendwelche Hilfsmakros werden dabei nicht
+% angetastet. Stattdessen wird nur der Schlüssel selbst und ggf. ein
+% Defaultwert als \cs{relax} definiert, so dass er nicht mehr verwendet werden
+% kann.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\RelaxFamilyKey}[3][.\@currname.\@currext]{%
+ \scr@ifundefinedorrelax{KV@#2#1@#3}{}{%
+ \expandafter\let\csname KV@#2#1@#3\endcsname\relax
+ }%
+ \scr@ifundefinedorrelax{KV@#2#1@#3@default}{}{%
+ \expandafter\let\csname KV@#2#1@#3@default\endcsname\relax
+ }%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FamilyKeyState}
+% \changes{v3.12}{2013/03/04}{Neue Anweisung}^^A
+% \begin{macro}{\FamilyKeyStateProcessed}
+% \changes{v3.12}{2013/03/04}{Neue Anweisung}^^A
+% \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
+%</base>
+% \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}^^A
+% \begin{macro}{\FamilyMemberOfKey}
+% \changes{v3.12}{2013/03/04}{Neue Anweisung}^^A
+% Geben innerhalb der Verarbeitung eines Schlüssels dessen Familie bzw. das
+% zugehörige Familienmitglied an.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\FamilyOfKey}{}
+\newcommand*{\FamilyMemberOfKey}{}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \FamilyMemberOfKey
+% \end{macro}^^A \FamilyOfKey
+%
+% \begin{macro}{\KOMA@key}
+% \changes{v2.97c}{2007/04/19}{neues optionales Argument}^^A
+% \changes{v3.17}{2015/02/24}{rudimentäre Funktionalität zur Speicherung von
+% Optionen}^^A
+% \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[{#1}]{KOMA}%
+ \@ifundefined{scr@kav@KOMA#1}{\@namedef{scr@kav@KOMA#1}{}}{}%
+ \DefineFamilyKey[{#1}]{KOMA}%
+}
+%</koma>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\KOMA@kav@add}
+% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A
+% Dieses Makro speichert ein \texttt{key=value}-Paar in der internen Liste.
+% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMA@kav@add}[3]{%
+ \@ifundefined{scr@kav@KOMA#1}{%
+ \KOMA@internal@error\KOMA@kav@add{#1}%
+ }{%
+ \expandafter\l@addto@macro\csname scr@kav@KOMA#1\endcsname{\do{{#2}{#3}}}%
+ }%
+}
+% \end{macrocode}
+%</koma>
+% \end{macro}
+%
+% \begin{macro}{\KOMA@kav@xadd}
+% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A
+% Dieses Makro speichert ein zuvor expandiertes \texttt{key=value}-Paar in der
+% internen Liste.
+% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMA@kav@xadd}[3]{%
+ \@ifundefined{scr@kav@KOMA#1}{%
+ \KOMA@internal@error\KOMA@kav@xadd{#1}%
+ }{%
+ \protected@edef\reserved@a{{#2}{#3}}%
+ \expandafter\l@addto@macro\csname scr@kav@KOMA#1\expandafter\endcsname
+ \expandafter{\expandafter\do\expandafter{\reserved@a}}%
+ }%
+}
+% \end{macrocode}
+%</koma>
+% \end{macro}
+%
+% \begin{macro}{\KOMA@kav@remove}
+% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A
+% Dieses Makro entfernt ein ganz bestimmtes \texttt{key=value}-Paar aus der
+% internen Liste.
+% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMA@kav@remove}[3]{%
+ \@ifundefined{scr@kav@KOMA#1}{%
+ \KOMA@internal@error\KOMA@kav@remove{#1}%
+ }{%
+ \begingroup
+ \def\reserved@a{\endgroup\@namedef{scr@kav@KOMA#1}{}}%
+ \edef\reserved@b{\detokenize{{#2}{#3}}}%
+ \def\do##1{%
+ \edef\reserved@c{\detokenize{##1}}%
+ \ifx\reserved@b\reserved@c\else
+ \l@addto@macro\reserved@a{%
+ \expandafter\l@addto@macro\csname scr@kav@KOMA#1\endcsname{%
+ \do{##1}%
+ }%
+ }%
+ \fi
+ }%
+ \@nameuse{scr@kav@KOMA#1}%
+ \reserved@a
+ }%
+}
+%</koma>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\KOMA@kav@removekey}
+% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A
+% Dieses Makro entfernt alle \texttt{key=value}-Paar mit einem gegebenen
+% \texttt{key} aus der internen Liste.
+% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMA@kav@removekey}[2]{%
+ \@ifundefined{scr@kav@KOMA#1}{%
+ \KOMA@internal@error\KOMA@kav@removekey{#1}%
+ }{%
+ \begingroup
+ \def\reserved@a{\endgroup\@namedef{scr@kav@KOMA#1}{}}%
+ \edef\reserved@b{\detokenize{#2}}%
+ \def\reserved@d##1##2{\edef\reserved@c{\detokenize{##1}}}%
+ \def\do##1{%
+ \reserved@d##1\relax
+ \ifx\reserved@b\reserved@c\else
+ \l@addto@macro\reserved@a{%
+ \expandafter\l@addto@macro\csname scr@kav@KOMA#1\endcsname{%
+ \do{##1}%
+ }%
+ }%
+ \fi
+ }%
+ \@nameuse{scr@kav@KOMA#1}%
+ \reserved@a
+ }%
+}
+%</koma>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\KOMA@kav@replacevalue}
+% \begin{macro}{\KOMA@kav@xreplacevalue}
+% \changes{v3.17}{2015/02/25}{neu (\KOMAScript intern)}^^A
+% Diese Makros dienen dazu, den Wert Schlüssels in der internen Liste
+% auszutauschen. Das erste (optionale) Argument ist das Mitglied, das zweite
+% ist der Name des Schlüssels, das dritte der neue Wert. Es setzt den Status
+% \cs{FamilyKeyStateProcessed} voraus. Anderenfalls tut es nichts!
+% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMA@kav@replacevalue}[3]{%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \@ifundefined{scr@kav@KOMA#1}{%
+ \KOMA@internal@error\KOMA@kav@replacevalue{#1}%
+ }{%
+ \KOMA@kav@removekey{#1}{#2}%
+ \KOMA@kav@add{#1}{#2}{#3}%
+ }%
+ \fi
+}
+\newcommand*{\KOMA@kav@xreplacevalue}[3]{%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \@ifundefined{scr@kav@KOMA#1}{%
+ \KOMA@internal@error\KOMA@kav@replacevalue{#1}%
+ }{%
+ \KOMA@kav@removekey{#1}{#2}%
+ \KOMA@kav@xadd{#1}{#2}{#3}%
+ }%
+ \fi
+}
+%</koma>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\KOMA@kav@replacebool}
+% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A
+% Dieses Makro dient dazu, den Wert eines if-Schlüssels in der internen Liste
+% auszutauschen. Das erste (optionale) Argument ist das Mitglied, das zweite
+% ist der Name des Schlüssels, das dritte der Name des Schalters. Es setzt den
+% Status \cs{FamilyKeyStateProcessed} voraus. Anderenfalls tut es nichts!
+% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMA@kav@replacebool}[3]{%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \@ifundefined{scr@kav@KOMA#1}{%
+ \KOMA@internal@error\KOMA@kav@replacebool{#1}%
+ }{%
+ \KOMA@kav@remove{#1}{#2}{false}%
+ \KOMA@kav@remove{#1}{#2}{true}%
+ \expandafter\ifx\csname if#3\expandafter\endcsname
+ \csname iftrue\endcsname
+ \KOMA@kav@xadd{#1}{#2}{true}%
+ \else
+ \KOMA@kav@xadd{#1}{#2}{false}%
+ \fi
+ }%
+ \fi
+}
+%</koma>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\KOMA@kav@defall}
+% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A
+% Dieses Makro liefert eine \texttt{key=value}-Liste aller gespeicherten Paare.
+% Das erste Argument ist die zu definierende Anweisung, das zweite ist das
+% Mitglied.
+% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMA@kav@defall}[2]{%
+ \@ifundefined{scr@kav@KOMA#2}{%
+ \KOMA@internal@error\KOMA@kav@defall{#1}%
+ }{%
+ \begingroup
+ \let\reserved@a\@empty
+ \def\reserved@b##1##2{\l@addto@macro\reserved@a{,{##1=##2}}}%
+ \def\do##1{\reserved@b##1}%
+ \@nameuse{scr@kav@KOMA#2}%
+ \ifx\reserved@a\@empty
+ \def\reserved@b{\endgroup\let#1\@empty}%
+ \else
+ \edef\reserved@b{%
+ \unexpanded{\endgroup\def#1}{%
+ \unexpanded
+ \expandafter\expandafter\expandafter{%
+ \expandafter\@gobble\reserved@a}}}%
+ \fi
+ \reserved@b
+ }%
+}
+%</koma>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\KOMA@kav@defone}
+% \changes{v3.17}{2015/02/25}{neu (\KOMAScript intern)}^^A
+% Dieses Makro liefert alle aktuellen Werte eine Schlüssels aus der
+% \texttt{key=value}-Liste aller gespeicherten Paare. Falls es mehr als einen
+% Wert gibt, so werden diese \cs{KOMAoption}-tauglich verknüpft. Das erste
+% Argument ist die zu definierende Anweisung, das zweite ist das Mitglied
+% und das dritte der Schlüssel.
+% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMA@kav@defone}[3]{%
+ \@ifundefined{scr@kav@KOMA#2}{%
+ \KOMA@internal@error\KOMA@kav@defall{#1}%
+ }{%
+ \begingroup
+ \let\reserved@a\@empty
+ \def\reserved@b##1##2{%
+ \ifstr{##1}{#3}{\l@addto@macro\reserved@a{,{##2}}}{}%
+ }%
+ \def\do##1{\reserved@b##1}%
+ \@nameuse{scr@kav@KOMA#2}%
+ \ifx\reserved@a\@empty
+ \def\reserved@b{\endgroup\let#1\@empty}%
+ \else
+ \edef\reserved@b{%
+ \unexpanded{\endgroup\def#1}{%
+ \unexpanded
+ \expandafter\expandafter\expandafter{%
+ \expandafter\@gobble\reserved@a}}}%
+ \fi
+ \reserved@b
+ }%
+}
+%</koma>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\KOMA@internal@error}
+% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A
+% Einfach nur eine Meldung über einen internen Fehler mit der Bitte um einen
+% entsprechenden Bug-Report.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMA@internal@error}[2]{%
+ \PackageError{scrkbase}{internal error using \string#1{#2}}{%
+ You've found an internal error either in KOMA-Script or a third
+ party\MessageBreak
+ definition, that uses KOMA-Script internal macros.\MessageBreak
+ Please send a bug report with a minimal but complete example,
+ that\MessageBreak
+ shows this error, to komascript at gmx dot info or report it
+ at\MessageBreak
+ <http://www.komascript.de/forum/20> (you need an account to do so).%
+ }%
+}
+%</koma>
+% \end{macrocode}
+% \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}^^A
+% \changes{v2.96}{2006/11/26}{Klassenoptionen durchsuchen}^^A
+% \changes{v3.20}{2016/02/06}{Entscheidung später treffen}^^A
+% Die Liste 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. Bis \KOMAScript{} 3.19a wurde auch genau hier die Zuweisung
+% durchgeführt. Wenn aber \textsf{scrbase} noch vor \cs{documentclass} geladen
+% wird, dann ist \cs{@classoptionslist} natürlich noch nicht gültig. Deshalb
+% wird die Zuweisung, seit \KOMAScript{} 3.20 in \cs{FamilyProcessOptions}
+% durchgeführt.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\@globaloptionslist}{}
+%</base>
+% \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}^^A
+% \changes{v3.12}{2013/03/04}{Fehlerbehandlung}^^A
+% 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}^^A
+% \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
+% \end{macrocode}
+% \changes{v3.18}{2015/06/17}{new hooks before processing the options}^^A
+% Ab Version~3.18 werden hier außerdem zwei Haken ausgeführt. Der erste gilt
+% dabei für alle Klassen und Pakete einer Familie und löscht sich nicht
+% selbst. Der zweite dagegen gilt nur ein einziges Mal für dieses eine
+% Mitglied.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{scr@before@process@options@#2@hook}{}{%
+ \@nameuse{scr@before@process@options@#2@hook}%
+ }%
+ \scr@ifundefinedorrelax{scr@before@process@options@#2#1@hook}{}{%
+ \@nameuse{scr@before@process@options@#2#1@hook}%
+ \expandafter\let\csname scr@before@process@options@#2#1@hook\endcsname
+ \relax
+ }%
+% \end{macrocode}
+% \changes{v3.23}{2017/02/16}{Korrektur: Haken danach verwendet die Familie
+% statt des Mitglieds}^^A
+% Jetzt \cs{AtEndOfFamilyOptions} samt Haken initialisieren.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{scr@after@options@#2@hook}{%
+ \@namedef{scr@after@options@#2@hook}{%
+% \end{macrocode}
+% Die erste Aktion im Haken wird sein, den Haken selbst zu löschen.
+% \begin{macrocode}
+ \@namedef{scr@after@options@#2@hook}{}%
+ }%
+ }{%
+ \expandafter\edef\csname scr@after@options@#2@hook\endcsname{%
+% \end{macrocode}
+% Die erste Aktion im Haken wird sein, die jetzige Form des Hakens wieder
+% herzustellen.
+% \begin{macrocode}
+ \noexpand\@namedef{scr@after@options@#2@hook}{%
+ \unexpanded\expandafter\expandafter\expandafter
+ {\csname scr@after@options@#2@hook\endcsname}%
+ }%
+ }%
+ }%
+% \end{macrocode}
+% \changes{v3.23}{2017/02/16}{neuer Haken für \cs{AtEndOfFamilyOptions*}}^^A
+% Seit Version 3.23 wird hier auch der neuen Haken vor
+% \cs{AtEndOfFamilyOptions*} initialisiert und ausgeführt. Erkannt wird die
+% oberste Ebene hier einfach an der Definition von \cs{AtEndOfFamilyOptions},
+% weil das schneller geht als die Erkennung über die Definition des Hakens
+% selbst (wie sie in \cs{FamilyOptions} verwendet werden muss).
+% \begin{macrocode}
+ \ifx\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions@immediate
+ \@namedef{scr@after@options@#2@hook@topmost}{%
+% \end{macrocode}
+% Auch dieser Haken wird so definiert, dass er sich bei seiner Ausführung als
+% erstes selbst löscht. Das ist auch für rekursive Aufrufe wichtig, um tiefere
+% Ebenen eindeutig von der höchsten Ebene unterscheiden zu können.
+% \begin{macrocode}
+ \@namedef{scr@after@options@#2@hook@topmost}{}%
+ }%
+% \end{macrocode}
+% Der Top-Haken wird außerdem zusammen mit dem Zurücksetzen der Definition von
+% \cs{AtEndOfFamilyOptions} in den Haken der (obersten) Ebene
+% eingefügt.
+% \begin{macrocode}
+ \expandafter\l@addto@macro\csname scr@after@options@#2@hook\endcsname{%
+ \let\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions@immediate
+ \@nameuse{scr@after@options@#2@hook@topmost}%
+ }%
+% \end{macrocode}
+% Natürlich darf nicht vergessen werden, den Befehl für das Befüllen der
+% beiden Haken nun von der direkten Ausführung eben auf das Befüllen der Haken
+% umzustellen.
+% \begin{macrocode}
+ \let\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions
+ \fi
+% \end{macrocode}
+% Jetzt geht es weiter mit der Adaption des Codes aus \cs{ProcessOptions}.
+% \begin{macrocode}
+ \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.
+% \changes{v3.18}{2015/06/17}{Behandlung von undefiniertem
+% \cs{@globaloptionslist}}^^A
+% \changes{v3.20}{2016/02/06}{\cs{@globaloptionslist} immer neu zuweisen}^^A
+% \begin{macrocode}
+ \let\@globaloptionslist\@classoptionslist
+ \scr@ifundefinedorrelax{XKV@classoptionslist}{%
+%<trace> \PackageInfo{scrbase}{Using \string\@classoptionslist}%
+ }{%
+ \ifx\XKV@classoptionslist\@empty
+%<trace> \PackageInfo{scrbase}{Using \string\@classoptionslist}%
+ \else
+%<trace> \PackageInfo{scrbase}{Using \string\XKV@classoptionslist}%
+ \let\@globaloptionslist\XKV@classoptionslist
+ \fi
+ }%
+ \scr@ifundefinedorrelax{@globaloptionslist}{}{%
+ \@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{%
+% \end{macrocode}
+% \changes{v3.26}{2018/10/22}{Optionen werden für Tests etc. nicht mehr
+% vollständig expandiert}^^A
+% \changes{v3.26}{2018/10/22}{\cs{@use@ption} wird für key-value-Optionen
+% nicht mehr aufgerufen}^^A
+% Ab \KOMAScript~3.26 wird für den Test, ob eine Option als normale Option
+% existiert, die Option nicht mehr komplett expandiert. Da die wirklich
+% notwendige Expansion bereits erfolgt ist, verhindert das Fehler wegen
+% angeblich fehlendem \cs{endcsname}. Gleichzeitig wird für key-value-Optionen
+% \cs{@use@ption} nicht mehr aufgerufen, da das darin enthaltene
+% |\csname ds@\CurrentOption\endcsname| dasselbe Problem hat. Stattdessen wird
+% die Option nur noch aus der Liste der nicht verwendeten Optionen entfernt.
+% \begin{macrocode}
+ \edef\reserved@a{\expandafter\detokenize\expandafter{\CurrentOption}}%
+ \scr@ifundefinedorrelax{ds@\reserved@a}{%
+ \@expandtwoargs\@removeelement\CurrentOption
+ \@unusedoptionlist\@unusedoptionlist
+ \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.
+% \changes{v3.23}{2017/02/16}{Korrektur: Haken danach verwendet die Familie
+% statt des Mitglieds}^^A
+% \begin{macrocode}
+ \@nameuse{scr@after@options@#2@hook}%
+}
+\@onlypreamble\FamilyProcessOptions
+% \end{macrocode}
+% \begin{macro}{\BeforeFamilyProcessOptions}
+% \changes{v3.18}{2015/06/17}{neu}
+% Über diese Anweisung kann man Code unmittelbar vor Ausführung von
+% \cs{FamilyProcessOptions} ausgeführt werden. Dabei muss zur Verwendung
+% des Hakens weder das Mitglied noch die Familie existieren. Man kann dies
+% also beispielsweise auch verwenden, um unmittelbar vor der Ausführung der
+% Optionen eines Pakets oder einer Klasse einzugreifen noch bevor das Paket
+% oder die Klasse geladen ist.
+% \begin{macrocode}
+\newcommand*{\BeforeFamilyProcessOptions}[3][.\@currname.\@currext]{%
+ \scr@ifundefinedorrelax{scr@before@process@options@#2#1@hook}{%
+ \@namedef{scr@before@process@options@#2#1@hook}{#3}%
+ }{%
+ \expandafter\g@addto@macro
+ \csname scr@before@process@options@#2#1@hook\endcsname{#3}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \BeforeFamilyProcessOptions
+% \begin{macro}{\AtEndOfFamilyOptions}
+% \changes{v3.12}{2013/03/04}{Neue Anweisung}^^A
+% \changes{v3.23}{2017/02/16}{Sternvariante}^^A
+% 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. Die Normalvariante verzögert bei verschachtelten
+% \cs{FamilyOptions} bis zum Ende der aktuellen Schachtet, die Sternvariante
+% bis zum Ende der äußeren Schachtel.
+% \begin{macro}{\scr@AtEndOfFamilyOptions}
+% \changes{v3.12}{2013/05/29}{Neue Anweisung (intern)}^^A
+% \begin{macro}{\scr@@AtEndOfFamilyOptions}
+% \changes{v3.23}{2017/02/16}{Neue Anweisung (intern)}^^A
+% \begin{macro}{\scr@AtEndOfFamilyOptions@immediate}
+% \changes{v3.23}{2017/02/16}{Neue Anweisung (intern)}^^A
+% \begin{macrocode}
+\newcommand*{\scr@AtEndOfFamilyOptions}{%
+ \kernel@ifstar {\scr@@AtEndOfFamilyOptions{@topmost}}%
+ {\scr@@AtEndOfFamilyOptions\@empty}%
+}
+\newcommand*{\scr@@AtEndOfFamilyOptions}[1]{%
+ \expandafter
+ \l@addto@macro\csname scr@after@options@\FamilyOfKey @hook#1\endcsname
+}
+\newcommand*{\scr@AtEndOfFamilyOptions@immediate}{%
+ \kernel@ifstar {\@firstofone}{\@firstofone}%
+}
+\newcommand*{\AtEndOfFamilyOptions}{}
+\let\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions@immediate
+% \end{macrocode}
+% \end{macro}^^A \scr@AtEndOfFamilyOptions@immediate
+% \end{macro}^^A \scr@@AtEndOfFamilyOptions
+% \end{macro}^^A \scr@AtEndOfFamilyOptions
+% \end{macro}^^A \AtEndOfFamilyOptions
+% \begin{macro}{\scr@ifprocess@curroption}
+% \changes{v3.13}{2014/01/04}{\cs{CurrentOption} innerhalb von \cs{setkeys}
+% in Klammern gesetzt}^^A
+% 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]{%
+% \end{macrocode}
+% \changes{v3.26}{2018/10/22}{\cs{scr@sp@def} statt \cs{def} für das Abtrennen
+% des Schlüssels}^^A
+% Da am 21. Oktober 2018 eine Diskussion begann, die darauf hindeutet, dass
+% das Entfernen der Leerzeichen in der Optionenliste sich jederzeit ändern
+% könnte, wird hier (und an einer weiteren Stelle) nun \cs{scr@sp@def}
+% verwendet, um den Schlüssel zu erhalten. Allerdings genügt dies nicht, falls
+% irgendwann tatsächlich gar keine Leerzeichen mehr entfernt werden. Dann
+% müsste nämlich der komplette Parser umgeschrieben werden. Ich bin alles
+% andere als begeistert von der Tatsache, dass hier im \LaTeX-Kern Jahrzehnte
+% altes Verhalten ohne Rücksicht auf Verluste zur Disposition gestellt wird.
+% \begin{macrocode}
+ \def\reserved@a##1=##2\@nil{\scr@sp@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
+ }%
+ }{%
+ \protected@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{\scr@sp@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}
+% \begin{macro}{\scr@sp@def}
+% \changes{v3.26}{2018/08/29}{von \texttt{tocbasic.dtx} nach
+% \texttt{scrkernel-basics.dtx} verschoben und umbenannt}^^A
+% \changes{v3.26b}{2019/01/17}{\cs{long}}^^A
+% \begin{macro}{\scr@sp@d}
+% \changes{v3.26}{2018/08/29}{von \texttt{tocbasic.dtx} nach
+% \texttt{scrkernel-basics.dtx} verschoben und umbenannt}^^A
+% \begin{macro}{\scr@sp@b}
+% \changes{v3.26}{2018/08/29}{von \texttt{tocbasic.dtx} nach
+% \texttt{scrkernel-basics.dtx} verschoben und umbenannt}^^A
+% \changes{v3.26b}{2019/01/17}{\cs{long}}^^A
+% \begin{macro}{\scr@sp@c}
+% \changes{v3.26}{2018/08/29}{von \texttt{tocbasic.dtx} nach
+% \texttt{scrkernel-basics.dtx} verschoben und umbenannt}^^A
+% \changes{v3.26b}{2019/01/17}{\cs{long}}^^A
+% Die Hilfsanweisung \cs{scr@sp@def} definiert eine Anweisung (erstes
+% Argument) mit einer Tokenliste (zweites Argument) und entfernt dabei
+% führende und abschließende Leerzeichen. Die Anweisung stammt ursprünglich
+% aus \textsf{keyval}. Der Rest sind Hilfsanweisungen für die Implementierung
+% der Hilfsanweisung.
+% \begin{macrocode}
+\def\@tempa#1{%
+ \long\def\scr@sp@def##1##2{%
+ \futurelet\scr@sp@tempa\scr@sp@d##2\@nil\@nil#1\@nil\relax##1}%
+ \def\scr@sp@d{%
+ \ifx\scr@sp@tempa\@sptoken
+ \expandafter\scr@sp@b
+ \else
+ \expandafter\scr@sp@b\expandafter#1%
+ \fi}%
+ \long\def\scr@sp@b#1##1 \@nil{\scr@sp@c##1}%
+}
+\@tempa{ }
+\long\def\scr@sp@c#1\@nil#2\relax#3{\@temptokena{#1}\edef#3{\the\@temptokena}}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@sp@c
+% \end{macro}^^A \scr@sp@b
+% \end{macro}^^A \scr@sp@d
+% \end{macro}^^A \scr@sp@def
+% \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
+%</koma>
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</prepare>
+%<*option>
+% \fi
+%
+% \begin{option}{internalonly}
+% \changes{v2.96}{2006/11/26}{neu}^^A
+% \changes{v2.97c}{2007/06/20}{geht auch ohne Argument}^^A
+% \begin{macro}{\dont@let@as@internal@defined}
+% \changes{v2.96}{2006/11/26}{neu (intern)}^^A
+% 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
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+%
+% \changes{v2.96}{2006/08/20}{Optionen werden abgearbeitet}^^A
+% \changes{v2.97c}{2007/04/18}{Optionen werden mit \cs{KOMAProcessOptions}^^A
+% abgearbeitet}
+% \begin{macrocode}
+%<koma>\KOMAProcessOptions\relax
+%<base>\FamilyProcessOptions{KOMA}\relax
+% \end{macrocode}
+%
+% \iffalse
+%</option>
+%<*body>
+% \fi
+%
+% \subsection{Ein wenig zusätzliche Mathematik für \eTeX}
+%
+% \begin{macro}{\XdivY}
+% \changes{v3.05a}{2010/03/10}{Neu}^^A
+% 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
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XmodY}
+% \changes{v3.05a}{2010/03/10}{Neu}^^A
+% Ergebnis ist erstes Argument modulo zweites Argument.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\XmodY}[2]{%
+ \numexpr #1 - #2 * \XdivY{#1}{#2}\relax
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Häufig benötigte Befehle}
+%
+% \begin{macro}{\scr@trim@spaces}
+% \changes{v3.12}{2013/11/06}{neu (intern)}^^A
+% \changes{v3.26}{2018/08/29}{von \texttt{scrkernel-language.dtx} nach
+% \texttt{scrkernel-basics.dtx} verschoben}^^A
+% 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 mit
+% Hilfe von \cs{@for}. Als Argument wird ein Makro übergeben, in dessen
+% Definition führende und abschließende space-Tokens entfernt werden sollen.
+% \begin{macrocode}
+%<*base>
+\newcommand\scr@trim@spaces[1]{%
+ \expandafter\scr@sp@def\expandafter#1\expandafter{#1}%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@trim@space
+%
+% \begin{macro}{\if@atdocument}
+% \changes{v2.95}{2002/12/05}{neuer Schalter}^^A
+% \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
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\let@as@internal@defined}
+% \changes{v2.95}{2002/08/19}{neu (intern)}^^A
+% \changes{v2.95c}{2006/08/12}{Warnung bei Umdefinierung}^^A
+% \changes{v2.96}{2006/11/26}{Herausreichen von internen Makros als
+% Benutzermakros kann verhindert werden}^^A
+% \changes{v2.97c}{2007/06/20}{Herausreichen von internen Makros kann
+% generell verhindert werden}^^A
+% \changes{v3.10}{2010/10/26}{\cs{ignorespaces} beim \cs{document}-Patch
+% ergänzt}
+% \changes{v3.13a}{2014/08/13}{potentielle Leerzeichen durch Zeilenumbruch
+% beseitigt}^^A
+% 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.\scr@pkgextension' earlier or find out at
+ which\MessageBreak
+ package or class \expandafter\string\csname #1\endcsname\space
+ was defined before\@gobble
+ }%
+ }%
+ \fi
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifundefinedorrelax}
+% \changes{v2.95}{2002/08/21}{neu}^^A
+% \changes{v2.95c}{2006/08/12}{über interne Anweisung definiert}^^A
+% \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}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifnotundefined}
+% \changes{v2.95}{2002/08/21}{neu}^^A
+% \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
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifstr}
+% \changes{v2.95}{2004/07/20}{if- und then-Teil werden nicht gefressen}^^A
+% \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
+}
+%</base>
+% \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
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \@ifstrstart
+% \end{macro}^^A \ifstrstart
+%
+% \begin{macro}{\IfArgIsEmpty}
+% \changes{v3.19}{2015/08/29}{neu}^^A
+% Falls das erste Argument tatsächlich leer ist, wird das zweite Argument
+% ausgeführt sonst das dritte.
+%<*base>
+% \begin{macrocode}
+\newcommand*{\IfArgIsEmpty}[1]{%
+ \if\relax\detokenize{#1}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% \end{macrocode}
+%</base>
+% \end{macro}^^A \IfArgIsEmpty
+%
+%
+% \begin{macro}{\ifislengthprimitive}
+% \changes{v3.20}{2015/10/19}{neu}^^A
+% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem Primitiv
+% expandiert, das als Länge verwendet werden kann, wird das erste Argument
+% ausgeführt, sonst das zweite.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\ifislengthprimitive}[1]{%
+ \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifislengthprimitive#1\@nil}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ifislengthprimitive}
+% \changes{v3.20}{2015/10/19}{neu (intern)}^^A
+% Hilfsmacro, das ggf. rekusiv auf diverse Primitive prüft.
+% \begin{macrocode}
+\newcommand*{\scr@ifislengthprimitive}[1]{%
+ \begingroup
+ \ifstrstart{\meaning #1}{\detokenize{macro:}}{%
+ \aftergroup\expandafter\aftergroup\scr@ifislengthprimitive
+ }{%
+ \def\reserved@c{\aftergroup\scr@secondoftwoAfterNil}%
+ \@for\reserved@a:=\baselineskip,\dp,\hsize,\ht,\lineskip,%
+ \parindent,\parskip,\pdfpageheight,\pdfpagewidth,%
+ \wd,\vsize \do {%
+ \expandafter\ifstr\expandafter{\expandafter\string\reserved@a}{%
+ \meaning #1%
+ }{%
+ \def\reserved@c{\aftergroup\scr@TestDimenAssignTillNil}%
+ }%
+ }%
+ \reserved@c
+ }%
+ \endgroup
+ #1%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@ifislengthprimitive
+% \end{macro}^^A \ifislengthprimitive
+%
+%
+% \begin{macro}{\ifisdimen}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.20}{2015/10/19}{Reimplementierung}^^A
+% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem
+% \cs{dimen}-Register (und zu nichts weiterem!) expandiert, wird das erste
+% Argument ausgeführt, sonst das zweite.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\ifisdimen}[1]{%
+ \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisdimen#1\@nil}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ifisdimen}
+% \changes{v3.20}{2015/10/19}{neu (intern)}^^A
+% Hilfsmacro, das ggf. rekusiv auf ein \cs{dimen}-Register prüft
+% \begin{macrocode}
+\newcommand*{\scr@ifisdimen}[1]{%
+ \begingroup
+ \ifstrstart{\meaning #1}{\detokenize{macro:}}{%
+ \aftergroup\expandafter\aftergroup\scr@ifisdimen
+ }{%
+ \ifstrstart{\meaning #1}{\string\dimen}{%
+ \aftergroup\scr@TestDimenAssignTillNil
+ }{%
+ \aftergroup\scr@secondoftwoAfterNil
+ }%
+ }%
+ \endgroup
+ #1%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@ifisdimen
+% \begin{macro}{\scr@TestDimenAssignTillNil}
+% \changes{v3.20}{2015/10/19}{neu (intern)}
+% Das durch \cs{@nil} begrenzte Argument wird einer temporären Länge
+% zugewiesen. Wird dabei das Argument komplett aufgebraucht, so wird das
+% erste Argument nach \cs{@nil} ausgeführt, sonst das zweite. Das begrenzte
+% Argument wird in jedem Fall komplett aufgebraucht.
+% \begin{macrocode}
+\newcommand*\scr@TestDimenAssignTillNil{}
+\def\scr@TestDimenAssignTillNil#1\@nil{%
+ \begingroup
+ \afterassignment\scr@AfterEndGroupIfArgIsRelaxTillNnil
+ \@tempdima=#1\relax\@nnil
+}
+% \end{macrocode}
+% \begin{macro}{\scr@IfAfterEndgroupArgIsRelaxTillNnil}
+% \changes{v3.20}{2015/10/19}{neu (intern)}
+% \begin{macro}{\scr@IfArgIsRelaxAfterRelaxTillNnil}
+% \changes{v3.20}{2015/10/19}{neu (intern)}
+% Die Hilfsmakros lesen ein durch \cs{@nnil} begrenztes Argument. Falls dieses
+% Argument nur aus einer Folge von \cs{relax} besteht, wird das erste Argument
+% nach \cs{@nnil} ausgeführt, sonst das zweite.
+% \begin{macrocode}
+\newcommand*\scr@AfterEndGroupIfArgIsRelaxTillNnil{}
+\def\scr@AfterEndGroupIfArgIsRelaxTillNnil#1\@nnil{%
+ \endgroup
+ \ifstr{\detokenize{#1}}{\detokenize{\relax}}{\@firstoftwo}{%
+ \ifstrstart{\detokenize{#1}}{\detokenize{\relax}}{%
+ \scr@IfArgIsRelaxAfterRelaxTillNnil #1\@nnil
+ }{\@secondoftwo}%
+ }%
+}
+\newcommand*\scr@IfArgIsRelaxAfterRelaxTillNnil{}
+\def\scr@IfArgIsRelaxAfterRelaxTillNnil \relax#1\@nnil{%
+ \ifstr{\detokenize{#1}}{\detokenize{\relax}}{\@firstoftwo}{%
+ \ifstrstart{\detokenize{#1}}{\detokenize{\relax}}{%
+ \scr@IfArgIsRelaxAfterRelaxTillNnil #1\@nnil
+ }{\@secondoftwo}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@IfArgIsRelaxAfterRelaxTillNnil
+% \end{macro}^^A \scr@IfArgIsRelaxTillNnil
+% \end{macro}^^A \scr@TestSkipAssignTillNil
+% \begin{macro}{\scr@secondoftwoAfterNil}
+% \changes{v3.20}{2015/10/19}{neu (intern)}
+% Das Hilfsmakro liest ein durch \cs{@nil} begrenztes Argument und führt dann
+% das zweite Argument nach \cs{@nil} aus. Dabei wird auch Sorge dafür getrage,
+% dass das Argument eventuell leer sein könnte, was normalerweise dazu führen
+% würde, dass \cs{@nil} zum Argument selbst wird.
+% \begin{macro}{\scr@@secondoftwoAfterNil}
+% \changes{v3.20}{2015/10/19}{neu (intern)}
+% Zu diesem Zweck wird ein zweites Hilfsmakro benötigt.
+% \begin{macrocode}
+\newcommand*{\scr@secondoftwoAfterNil}{\scr@@secondoftwoAfterNil\@empty}
+\newcommand*{\scr@@secondoftwoAfterNil}{}
+\def\scr@@secondoftwoAfterNil#1\@nil{\@secondoftwo}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@@secondoftwoAfterNil
+% \end{macro}^^A \scr@secondoftwoAfterNil
+% \end{macro}^^A \ifisdimen
+%
+% \begin{macro}{\ifisskip}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.18a}{2015/07/07}{\cs{baselineskip} und \cs{parskip} werden als
+% skips akzeptiert}^^A
+% \changes{v3.20}{2015/10/19}{\cs{baselineskip} und \cs{parskip} sind keine
+% skips}^^A
+% \changes{v3.20}{2015/10/19}{Reimplementierung}^^A
+% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem
+% \cs{skip}-Register (und zu nichts weiterem!) expandiert, wird das erste
+% Argument ausgeführt, sonst das zweite.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\ifisskip}[1]{%
+ \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisskip#1\@nil}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ifisskip}
+% \changes{v3.20}{2015/10/19}{neu (intern)}^^A
+% Hilfsmacro, das ggf. rekusiv auf ein \cs{skip}-Register prüft
+% \begin{macrocode}
+\newcommand*{\scr@ifisskip}[1]{%
+ \begingroup
+ \ifstrstart{\meaning #1}{\detokenize{macro:}}{%
+ \aftergroup\expandafter\aftergroup\scr@ifisskip
+ }{%
+ \ifstrstart{\meaning #1}{\string\skip}{%
+ \aftergroup\scr@TestSkipAssignTillNil
+ }{%
+ \aftergroup\scr@secondoftwoAfterNil
+ }%
+ }%
+ \endgroup
+ #1%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@ifisskip
+% \begin{macro}{\scr@TestSkipAssignTillNil}
+% \changes{v3.20}{2015/10/19}{neu (intern)}
+% Das durch \cs{@nil} begrenzte Argument wird einer temporären Länge
+% zugewiesen. Wird dabei das Argument komplett aufgebraucht, so wird das
+% erste Argument nach \cs{@nil} ausgeführt, sonst das zweite. Das begrenzte
+% Argument wird in jedem Fall komplett aufgebraucht.
+% \begin{macrocode}
+\newcommand*\scr@TestSkipAssignTillNil{}
+\def\scr@TestSkipAssignTillNil#1\@nil{%
+ \begingroup
+ \afterassignment\scr@AfterEndGroupIfArgIsRelaxTillNnil
+ \@tempskipa=#1\relax\@nnil
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@TestSkipAssignTillNil
+% \end{macro}^^A \ifiskip
+%
+% \begin{macro}{\ifiscount}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.20}{2015/10/19}{Reimplementierung}^^A
+% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem
+% \cs{count}-Register (und zu nichts weiterem!) expandiert, wird das erste
+% Argument ausgeführt, sonst das zweite.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\ifiscount}[1]{%
+ \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifiscount#1\@nil}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ifiscount}
+% \changes{v3.20}{2015/10/19}{neu (intern)}^^A
+% Hilfsmacro, das ggf. rekusiv auf ein \cs{count}-Register prüft
+% \begin{macrocode}
+\newcommand*{\scr@ifiscount}[1]{%
+ \begingroup
+ \ifstrstart{\meaning #1}{\detokenize{macro:}}{%
+ \aftergroup\expandafter\aftergroup\scr@ifiscount
+ }{%
+ \ifstrstart{\meaning #1}{\string\count}{%
+ \aftergroup\scr@TestCountAssignTillNil
+ }{%
+ \aftergroup\scr@secondoftwoAfterNil
+ }%
+ }%
+ \endgroup
+ #1%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@ifiscount
+% \begin{macro}{\scr@TestSkipCountTillNil}
+% \changes{v3.20}{2015/10/19}{neu (intern)}
+% Das durch \cs{@nil} begrenzte Argument wird einer temporären Länge
+% zugewiesen. Wird dabei das Argument komplett aufgebraucht, so wird das
+% erste Argument nach \cs{@nil} ausgeführt, sonst das zweite. Das begrenzte
+% Argument wird in jedem Fall komplett aufgebraucht.
+% \begin{macrocode}
+\newcommand*\scr@TestCountAssignTillNil{}
+\def\scr@TestCountAssignTillNil#1\@nil{%
+ \begingroup
+ \afterassignment\scr@AfterEndGroupIfArgIsRelaxTillNnil
+ \@tempcnta=#1\relax\@nnil
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@TestCountAssignTillNil
+% \end{macro}^^A \ifiscount
+%
+%
+% \begin{macro}{\ifisdimexpr}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.20}{2015/10/19}{Reimplementierung}^^A
+% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einer
+% \cs{dimexpr} (und zu nichts weiterem!) expandiert, wird das erste
+% Argument ausgeführt, sonst das zweite. Dies unterscheidet sich in einem
+% wichtigen Punkt von \cs{ifisdimen}: Sollte das ganze zwar als \cs{dimexpr}
+% beginnen, aber syntaktisch nicht korrekt sein, so wird dies nicht erkannt,
+% sondern führt tatsächlich zu einer Fehlermeldung.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\ifisdimexpr}[1]{%
+ \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisdimexpr#1\relax\@nil}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ifisdimexpr}
+% \changes{v3.20}{2015/10/19}{neu (intern)}^^A
+% Hilfsmacro, das ggf. rekusiv auf eine \cs{dimexpr} prüft
+% \begin{macrocode}
+\newcommand*{\scr@ifisdimexpr}[1]{%
+ \begingroup
+ \ifstrstart{\meaning #1}{\detokenize{macro:}}{%
+ \aftergroup\expandafter\aftergroup\scr@ifisdimexpr
+ }{%
+ \ifstrstart{\meaning #1}{\string\dimexpr}{%
+ \aftergroup\scr@TestDimenAssignTillNil
+ }{%
+ \aftergroup\scr@secondoftwoAfterNil
+ }%
+ }%
+ \endgroup
+ #1%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@ifisdimexpr
+% \end{macro}^^A \ifisdimexpr
+%
+%
+% \begin{macro}{\ifisglueexpr}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.20}{2015/10/19}{Reimplementierung}^^A
+% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einer
+% \cs{glueexpr} (und zu nichts weiterem!) expandiert, wird das erste
+% Argument ausgeführt, sonst das zweite. Dies unterscheidet sich in einem
+% wichtigen Punkt von \cs{ifisskip}: Sollte das ganze zwar als \cs{glueexpr}
+% beginnen, aber syntaktisch nicht korrekt sein, so wird dies nicht erkannt,
+% sondern führt tatsächlich zu einer Fehlermeldung.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\ifisglueexpr}[1]{%
+ \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisglueexpr#1\relax\@nil}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ifisglueexpr}
+% \changes{v3.20}{2015/10/19}{neu (intern)}^^A
+% Hilfsmacro, das ggf. rekusiv auf eine \cs{glueexpr} prüft
+% \begin{macrocode}
+\newcommand*{\scr@ifisglueexpr}[1]{%
+ \begingroup
+ \ifstrstart{\meaning #1}{\detokenize{macro:}}{%
+ \aftergroup\expandafter\aftergroup\scr@ifisglueexpr
+ }{%
+ \ifstrstart{\meaning #1}{\string\glueexpr}{%
+ \aftergroup\scr@TestSkipAssignTillNil
+ }{%
+ \aftergroup\scr@secondoftwoAfterNil
+ }%
+ }%
+ \endgroup
+ #1%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@ifisglueexpr
+% \end{macro}^^A \ifisglueexpr
+%
+%
+% \begin{macro}{\ifisnumexpr}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.20}{2015/10/19}{Reimplementierung}^^A
+% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einer
+% \cs{numexpr} (und zu nichts weiterem!) expandiert, wird das erste
+% Argument ausgeführt, sonst das zweite. Dies unterscheidet sich in einem
+% wichtigen Punkt von \cs{ifiscount}: Sollte das ganze zwar als \cs{numexpr}
+% beginnen, aber syntaktisch nicht korrekt sein, so wird dies nicht erkannt,
+% sondern führt tatsächlich zu einer Fehlermeldung.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\ifisnumexpr}[1]{%
+ \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisnumexpr#1\relax\@nil}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ifisnumexpr}
+% \changes{v3.20}{2015/10/19}{neu (intern)}^^A
+% Hilfsmacro, das ggf. rekusiv auf eine \cs{numexpr} prüft
+% \begin{macrocode}
+\newcommand*{\scr@ifisnumexpr}[1]{%
+ \begingroup
+ \ifstrstart{\meaning #1}{\detokenize{macro:}}{%
+ \aftergroup\expandafter\aftergroup\scr@ifisnumexpr
+ }{%
+ \ifstrstart{\meaning #1}{\string\numexpr}{%
+ \aftergroup\scr@TestCountAssignTillNil
+ }{%
+ \aftergroup\scr@secondoftwoAfterNil
+ }%
+ }%
+ \endgroup
+ #1%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@ifisnumexpr
+% \end{macro}^^A \ifisnumexpr
+%
+%
+% \begin{macro}{\ifisdefchar}
+% \changes{v3.20}{2015/10/19}{neu}^^A
+% Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem mit
+% \cs{chardef} definierten Wert (und zu nichts weiterem!) expandiert, wird das
+% erste Argument ausgeführt, sonst das zweite. Dies unterscheidet sich in einem
+% wichtigen Punkt von \cs{ifiscount}: Sollte das ganze zwar wie ein \cs{char}
+% beginnen, aber syntaktisch nicht korrekt sein, so wird dies nicht erkannt,
+% sondern führt tatsächlich zu einer Fehlermeldung.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\ifisdefchar}[1]{%
+ \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisdefchar#1\@nil}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ifisdefchar}
+% \changes{v3.20}{2015/10/19}{neu (intern)}^^A
+% Hilfsmacro, das ggf. rekusiv auf eine \cs{char} prüft
+% \begin{macrocode}
+\newcommand*{\scr@ifisdefchar}[1]{%
+ \begingroup
+ \ifstrstart{\meaning #1}{\detokenize{macro:}}{%
+ \aftergroup\expandafter\aftergroup\scr@ifisdefchar
+ }{%
+ \ifstrstart{\meaning #1}{\string\char\string"}{%
+ \aftergroup\scr@TestCountAssignTillNil
+ }{%
+ \aftergroup\scr@secondoftwoAfterNil
+ }%
+ }%
+ \endgroup
+ #1%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@ifisdefchar
+% \end{macro}^^A \ifisdefchar
+%
+%
+% \begin{macro}{\ifiscounter}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% 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
+ \scr@ifundefinedorrelax{c@#1}{%
+ \aftergroup\@secondoftwo
+ }{%
+ \aftergroup\@firstoftwo
+ }%
+ \endgroup
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \ifiscounter
+%
+%
+% \begin{macro}{\ifisinteger}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}^^A
+% \changes{v3.20}{2015/10/19}{Reimplementierung}^^A
+% 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]{%
+ \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisinteger#1\@nil}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ifisinteger}
+% \changes{v3.20}{2015/10/19}{neu (intern)}^^A
+% Hilfsmacro, das ggf. rekusiv auf ein Vorzeichen oder eine positive Zahl
+% prüft.
+% \begin{macrocode}
+\def\scr@ifisinteger#1{%
+ \begingroup
+ \ifstrstart{\meaning #1}{\detokenize{macro:}}{%
+ \aftergroup\expandafter\aftergroup\scr@ifisinteger\aftergroup#1%
+ }{%
+ \ifstrstart{\meaning #1}{\detokenize{the character}}{%
+ \if #1-\aftergroup\scr@ifisinteger
+ \else
+ \if #1+\aftergroup\scr@ifisinteger
+ \else
+ \ifnum 0=0\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 1\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \relax
+ \aftergroup\scr@TestCountAssignTillNil
+ \aftergroup#1%
+ \else
+ \aftergroup\scr@secondoftwoAfterNil
+ \aftergroup#1%
+ \fi
+ \fi
+ \fi
+ }{%
+ \ifstrstart{\meaning #1}{\string\char\string"}{%
+ \aftergroup\scr@TestCountAssignTillNil
+ }{%
+ \def\reserved@c{%
+ \aftergroup\scr@secondoftwoAfterNil
+ }%
+ \@for\reserved@a:=\abovedisplayskip,\abovedisplayshortskip,%
+ \adjdemerits,%
+ \baselineskip,\belowdisplayskip,%
+ \belowdisplayshortskip,\binoppenalty,\boxmaxdepth,%
+ \brokenpenalty,%
+ \clubpenalty,\count,%
+ \dimen,\dimexpr,\doublehyphendemerits,\dp,%
+ \emergenystretch,\exhyphenpenalty,%
+ \finalhyphendemerits,%
+ \glueexpr,%
+ \hbadness,\hfuzz,\hsize,\ht,\hyphenpenalty,%
+ \lastskip,\lastpenalty,\linepenalty,%
+ \lineskip,\lineskiplimit,%
+ \maxdepth,\numexpr,%
+ \overfullrule,%
+ \parfillskip,\parindent,\parskip,%
+ \pdfpageheight,\pdfpagewidth,%
+ \predisplaypenalty,\pretolerance,%
+ \relpenalty,\widowpenalty,%
+ \skip,\splitmaxdepth,\splittopskip,%
+ \tolerance,\topskip,%
+ \wd,\vbadness,\vfuzz,\vsize
+ \do {%
+ \expandafter\ifstr\expandafter{\expandafter\string\reserved@a}{%
+ \meaning #1%
+ }{%
+ \def\reserved@c{\aftergroup\scr@TestCountAssignTillNil}%
+ }%
+ }%
+ \reserved@c
+ }%
+ \aftergroup#1%
+ }%
+ }%
+ \endgroup
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@ifisinteger
+% \end{macro}^^A \ifisinteger
+%
+%
+% \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}
+%<*base>
+\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
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifisdimension}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}^^A
+% \changes{v3.20}{2015/10/20}{Reimplementierung}^^A
+% Falls die stufenweise Expansion des ersten Arguments eine (positive oder
+% negative) Länge ist, wird das zweite Argument ausgeführt, sonst das
+% dritte.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\ifisdimension}[1]{%
+ \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisdimension#1\@nil}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ifisdimension}
+% \changes{v3.20}{2015/10/20}{neu (intern)}
+% Eigentlich wäre dieses Hilfsmakro extrem aufwändig, da eine Dimension recht
+% komplex aufgebaut sein darf. Ich habe aber beschlossen, hier mit einer
+% Heuristik zu Werke zu gehen: Wenn das Argument mit einer beliebigen Anzahl
+% Vorzeichen, gefolgt von max. einem Punkt, Komma oder einer Ziffer oder
+% gefolgt einem der für Längen zulässigen Primitiv beginnt, dann probieren wir
+% eine Zuweisung. Ist diese syntaktisch nicht korrekt, kann ein Fehler die
+% Folge sein. Das mag unschön sein, vereinfacht den Test aber erheblich!
+% \begin{macrocode}
+\newcommand*{\scr@ifisdimension}[1]{%
+ \begingroup
+ \ifstrstart{\meaning #1}{\detokenize{macro:}}{%
+ \aftergroup\expandafter\aftergroup\scr@ifisdimension\aftergroup#1%
+ }{%
+ \ifstrstart{\meaning #1}{\detokenize{the character}}{%
+ \if #1-\aftergroup\scr@ifisdimension
+ \else
+ \if #1-\aftergroup\scr@ifisdimension
+ \else
+ \if #1.%
+ \aftergroup\scr@TestDimensionAssignTillNil
+ \aftergroup#1%
+ \else
+ \if #1,%
+ \aftergroup\scr@TestDimensionAssignTillNil
+ \aftergroup#1%
+ \else
+ \ifnum 0=0\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 1\fi\fi
+ \fi\fi\fi\fi
+ \fi\fi\fi\fi
+ \relax
+ \aftergroup\scr@TestDimensionAssignTillNil
+ \aftergroup#1%
+ \else
+ \aftergroup\scr@secondoftwoAfterNil
+ \aftergroup#1%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ }{%
+ \ifstrstart{\meaning #1}{\string\char\string"}{%
+ \aftergroup\scr@TestDimensionAssignTillNil
+ }{%
+ \def\reserved@c{%
+ \aftergroup\scr@secondoftwoAfterNil
+ \aftergroup\@empty
+ }%
+ \@for\reserved@a:=\abovedisplayskip,\abovedisplayshortskip,%
+ \adjdemerits,%
+ \baselineskip,\belowdisplayskip,%
+ \belowdisplayshortskip,\binoppenalty,\boxmaxdepth,%
+ \brokenpenalty,%
+ \clubpenalty,\count,%
+ \dimen,\dimexpr,\doublehyphendemerits,\dp,%
+ \emergenystretch,\exhyphenpenalty,%
+ \finalhyphendemerits,%
+ \glueexpr,%
+ \hbadness,\hfuzz,\hsize,\ht,\hyphenpenalty,%
+ \lastskip,\lastpenalty,\linepenalty,%
+ \lineskip,\lineskiplimit,%
+ \maxdepth,\numexpr,%
+ \overfullrule,%
+ \parfillskip,\parindent,\parskip,%
+ \pdfpageheight,\pdfpagewidth,%
+ \predisplaypenalty,\pretolerance,%
+ \relpenalty,\widowpenalty,%
+ \skip,\splitmaxdepth,\splittopskip,%
+ \tolerance,\topskip,%
+ \wd,\vbadness,\vfuzz,\vsize
+ \do {%
+ \expandafter\ifstr\expandafter{\expandafter\string\reserved@a}{%
+ \meaning #1%
+ }{%
+ \def\reserved@c{\aftergroup\scr@TestDimensionAssignTillNil}%
+ }%
+ }%
+ \reserved@c
+ }%
+ \aftergroup#1%
+ }%
+ }%
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macro}{\scr@TestDimenionAssignTillNil}
+% \changes{v3.20}{2015/10/19}{neu (intern)}
+% Das durch \cs{@nil} begrenzte Argument wird einer temporären Länge
+% zugewiesen. Wird dabei das Argument komplett aufgebraucht, so wird das
+% erste Argument nach \cs{@nil} ausgeführt, sonst das zweite. Das begrenzte
+% Argument wird in jedem Fall komplett aufgebraucht.
+% \begin{macrocode}
+\newcommand*\scr@TestDimensionAssignTillNil{}
+\def\scr@TestDimensionAssignTillNil#1\@nil{%
+ \begingroup
+ \afterassignment\scr@AfterEndGroupIfArgIsRelaxTillptNnil
+ \@tempdima=#1pt\@nnil
+}
+% \end{macrocode}
+% \begin{macro}{\scr@IfAfterEndgroupArgIsRelaxTillptNnil}
+% \changes{v3.20}{2015/10/19}{neu (intern)}
+% \begin{macro}{\scr@IfArgIsRelaxAfterRelaxTillptNnil}
+% \changes{v3.20}{2015/10/19}{neu (intern)}
+% Die Hilfsmakros lesen ein durch \cs{@nnil} begrenztes Argument. Falls dieses
+% Argument nur aus einer Folge von \cs{relax} besteht, wird das erste Argument
+% nach \cs{@nnil} ausgeführt, sonst das zweite.
+% \begin{macrocode}
+\newcommand*\scr@AfterEndGroupIfArgIsRelaxTillptNnil{}
+\def\scr@AfterEndGroupIfArgIsRelaxTillptNnil#1\@nnil{%
+ \endgroup
+ \ifstr{\detokenize{#1}}{\detokenize{pt}}{\@firstoftwo}{%
+ \ifstrstart{\detokenize{#1}}{\detokenize{\relax}}{%
+ \scr@IfArgIsRelaxAfterRelaxTillptNnil #1\@nnil
+ }{\@secondoftwo}%
+ }%
+}
+\newcommand*\scr@IfArgIsRelaxAfterRelaxTillptNnil{}
+\def\scr@IfArgIsRelaxAfterRelaxTillptNnil \relax#1pt\@nnil{%
+ \ifstr{\detokenize{#1}}{\detokenize{pt}}{\@firstoftwo}{%
+ \ifstrstart{\detokenize{#1}}{\detokenize{\relax}}{%
+ \scr@IfArgIsRelaxAfterRelaxTillptNnil #1\@nnil
+ }{\@secondoftwo}%
+ }%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@IfArgIsRelaxAfterRelaxTillptNnil
+% \end{macro}^^A \scr@IfArgIsRelaxTillptNnil
+% \end{macro}^^A \scr@DimensionSkipAssignTillNil
+% \end{macro}^^A \scr@ifisdimension
+% \end{macro}^^A \ifisdimension
+%
+%
+% \begin{macro}{\ifisglue}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}^^A
+% \changes{v3.20}{2015/10/21}{Reimplementierung}^^A
+% Falls die stufenweise Expansion des ersten Arguments eine (positive oder
+% negative) Länge mit Leim ist, wird das zweite Argument ausgeführt, sonst das
+% dritte.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\ifisglue}[1]{%
+ \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisglue#1\@nil}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ifisglue}
+% \changes{v3.20}{2015/10/21}{neu (intern)}
+% Eigentlich wäre dieses Hilfsmakro extrem aufwändig, da Leim recht
+% komplex aufgebaut sein darf. Ich habe aber beschlossen, hier mit einer
+% Heuristik zu Werke zu gehen: Wenn das Argument mit einer beliebigen Anzahl
+% Vorzeichen, gefolgt von max. einem Punkt, Komma oder einer Ziffer oder
+% gefolgt einem der für Leim zulässigen Primitiv beginnt, dann probieren wir
+% eine Zuweisung. Ist diese syntaktisch nicht korrekt, kann ein Fehler die
+% Folge sein. Das mag unschön sein, vereinfacht den Test aber erheblich!
+% \begin{macrocode}
+\newcommand*{\scr@ifisglue}[1]{%
+ \begingroup
+ \ifstrstart{\meaning #1}{\detokenize{macro:}}{%
+ \aftergroup\expandafter\aftergroup\scr@ifisglue\aftergroup#1%
+ }{%
+ \ifstrstart{\meaning #1}{\detokenize{the character}}{%
+ \if #1-\aftergroup\scr@ifisglue
+ \else
+ \if #1-\aftergroup\scr@ifisdimension
+ \else
+ \if #1.%
+ \aftergroup\scr@TestGlueAssignTillNil
+ \aftergroup#1%
+ \else
+ \if #1,%
+ \aftergroup\scr@TestGlueAssignTillNil
+ \aftergroup#1%
+ \else
+ \ifnum 0=0\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 1\fi\fi
+ \fi\fi\fi\fi
+ \fi\fi\fi\fi
+ \relax
+ \aftergroup\scr@TestGlueAssignTillNil
+ \aftergroup#1%
+ \else
+ \aftergroup\scr@secondoftwoAfterNil
+ \aftergroup#1%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ }{%
+ \ifstrstart{\meaning #1}{\string\char\string"}{%
+ \aftergroup\scr@TestGlueAssignTillNil
+ }{%
+ \def\reserved@c{%
+ \aftergroup\scr@secondoftwoAfterNil
+ \aftergroup\@empty
+ }%
+ \@for\reserved@a:=\abovedisplayskip,\abovedisplayshortskip,%
+ \adjdemerits,%
+ \baselineskip,\belowdisplayskip,%
+ \belowdisplayshortskip,\binoppenalty,\boxmaxdepth,%
+ \brokenpenalty,%
+ \clubpenalty,\count,%
+ \dimen,\dimexpr,\doublehyphendemerits,\dp,%
+ \emergenystretch,\exhyphenpenalty,%
+ \finalhyphendemerits,%
+ \glueexpr,%
+ \hbadness,\hfuzz,\hsize,\ht,\hyphenpenalty,%
+ \lastskip,\lastpenalty,\linepenalty,%
+ \lineskip,\lineskiplimit,%
+ \maxdepth,\numexpr,%
+ \overfullrule,%
+ \parfillskip,\parindent,\parskip,%
+ \pdfpageheight,\pdfpagewidth,%
+ \predisplaypenalty,\pretolerance,%
+ \relpenalty,\widowpenalty,%
+ \skip,\splitmaxdepth,\splittopskip,%
+ \tolerance,\topskip,%
+ \wd,\vbadness,\vfuzz,\vsize
+ \do {%
+ \expandafter\ifstr\expandafter{\expandafter\string\reserved@a}{%
+ \meaning #1%
+ }{%
+ \def\reserved@c{\aftergroup\scr@TestGlueAssignTillNil}%
+ }%
+ }%
+ \reserved@c
+ }%
+ \aftergroup#1%
+ }%
+ }%
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macro}{\scr@TestGlueAssignTillNil}
+% \changes{v3.20}{2015/10/21}{neu (intern)}
+% Das durch \cs{@nil} begrenzte Argument wird einer temporären Länge
+% zugewiesen. Wird dabei das Argument komplett aufgebraucht, so wird das
+% erste Argument nach \cs{@nil} ausgeführt, sonst das zweite. Das begrenzte
+% Argument wird in jedem Fall komplett aufgebraucht.
+% \begin{macrocode}
+\newcommand*\scr@TestGlueAssignTillNil{}
+\def\scr@TestGlueAssignTillNil#1\@nil{%
+ \begingroup
+ \afterassignment\scr@AfterEndGroupIfArgIsRelaxTillptNnil
+ \@tempskipa=#1pt\@nnil
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@TestGlueAssignTillNil
+% \end{macro}^^A \scr@ifisglue
+% \end{macro}^^A \ifisglue
+%
+%
+% \begin{macro}{\ifnumber}
+% \changes{v3.12}{2013/10/30}{using \cs{aftergroup} instead of
+% \cs{endgroup}\cs{expandafter}}^^A
+% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}^^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{}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ifintnumber}
+% \changes{v3.12}{2013/10/30}{neu}^^A
+% 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)}^^A
+% \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
+}
+%</base>
+% \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}
+% \changes{v3.21}{2016/05/27}{elf bis zwölf Einheiten nicht neun}
+% Anschließend wird dann getestet, ob es sich um eine der elf bis zwölf
+% ü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}{%
+ \ifstr{#1}{ex}{\@tempswatrue}{%
+ \ifstr{#1}{em}{\@tempswatrue}{%
+ \scr@ifpdfoutput{%
+ \ifstr{#1}{px}{\@tempswatrue}{}%
+ }{}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\ifpdftex}
+% \changes{v2.95}{2002/08/19}{neu}^^A
+% \begin{macro}{\scr@ifpdftex}
+% \changes{v2.95}{2002/08/19}{neu (intern)}^^A
+% 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}}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scr@ifluatex}
+% \changes{v3.21}{2016/05/27}{neu (intern)}^^A
+% If-the-else-Konstrukt, um zu testen, ob lua\TeX{} verwendet wird.
+% \begin{macrocode}
+%<*base>
+\newcommand{\scr@ifluatex}{\ifnotundefined{luatexversion}}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scr@ifpdforluatex}
+% \changes{v3.21}{2016/05/27}{neu (intern)}^^A
+% If-then-else-Konstrukt, um zu testen, ob pdf\TeX{} oder lua\TeX{} verwendet
+% wird.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\scr@ifpdforluatex}{%
+ \scr@ifpdftex{\@firstoftwo}{\scr@ifluatex{\@firstoftwo}{\@secondoftwo}}%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifVTeX}
+% \changes{v2.95}{2002/08/19}{neu}^^A
+% \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{ifvtex}}
+% \begin{macro}{\scr@ifVTeX}
+% \changes{v2.95}{2002/08/19}{neu}^^A
+% \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}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ifpdfoutput}
+% \changes{v2.7g}{2001/04/17}{neu}^^A
+% \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}^^A
+% \changes{v2.8q}{2001/10/19}{Verwendung von \cs{scr@ifpdfoutput}}
+% \begin{macro}{\scr@ifpdfoutput}
+% \changes{v2.8q}{2001/10/19}{neu (intern)}^^A
+% \changes{v2.8q}{2001/11/13}{funktioniert}^^A
+% \changes{v2.95}{2002/08/21}{berücksichtigt V\TeX}^^A
+% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert}^^A
+% \changes{v3.21}{2016/05/27}{lua\TeX{} nach 0.85 berücksichtigt}^^A
+% 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{outputmode}{%
+ \scr@ifundefinedorrelax{OpMode}{%
+ \expandafter\@secondoftwo%
+ }{%
+ \ifnum\OpMode=1
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ }%
+ }{%
+ \ifnum\outputmode>0
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ }%
+ }{%
+ \ifnum\pdfoutput>0
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ }%
+}%
+\let@as@internal@defined{ifpdfoutput}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ifpsoutput}
+% \changes{v2.95}{2002/08/21}{neu}^^A
+% \begin{macro}{\scr@ifpsoutput}
+% \changes{v2.95}{2002/08/21}{neu (intern)}^^A
+% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert}^^A
+% 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}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ifdvioutput}
+% \changes{v2.95}{2002/08/21}{neu}^^A
+% \begin{macro}{\scr@ifdvioutput}
+% \changes{v2.95}{2002/08/21}{neu (intern)}^^A
+% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert}^^A
+% \changes{v3.23}{2017/02/14}{lua\TeX{} nach 0.85 berücksichtigt}^^A
+% 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{outputmode}{%
+ \scr@ifundefinedorrelax{OpMode}{%
+ \expandafter\@firstoftwo
+ }{%
+ \ifnum\OpMode=0
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ }%
+ }{%
+ \ifnum\outputmode>0
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+ }%
+ }{%
+ \ifnum\pdfoutput=0
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ }%
+}
+\let@as@internal@defined{ifdvioutput}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scr@smashdp}
+% \changes{v2.97c}{2007/09/17}{neu (intern)}^^A
+% \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
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IfRTL}
+% \changes{v3.24}{2017/05/04}{neu}
+% Die Anweisung testet, ob wir uns gerade im Von-Rechts-Nach-Links-Modus von
+% Paketen wie \textsf{bidi} befinden. Ist das der Fall, wird das erste
+% Argument ausgeführt, sonst das zweite.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\IfRTL}{%
+ \scr@ifundefinedorrelax{if@RTL}{\@secondoftwo}{%
+ \expandafter\ifx\csname if@RTL\expandafter\endcsname
+ \csname iftrue\endcsname
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ }
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \IfRTL
+% \begin{macro}{\IfLTR}
+% \changes{v3.24}{2017/05/04}{neu}
+% Die Anweisung testet, ob wir uns gerade nicht im
+% Von-Rechts-Nach-Links-Modus von Paketen wie \textsf{bidi} befinden. Ist
+% das der Fall, wird das erste Argument ausgeführt, sonst das zweite.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\IfLTR}{%
+ \scr@ifundefinedorrelax{if@RTL}{\@firstoftwo}{%
+ \expandafter\ifx\csname if@RTL\expandafter\endcsname
+ \csname iftrue\endcsname
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+ }
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \IfLTR
+%
+% \begin{macro}{\PackageInfoNoLine}
+% \changes{v2.97d}{2007/10/03}{neu}^^A
+% Arbeitet wie \cs{PackageInfo} aber ohne Ausgabe der Zeilennummer.
+% \begin{macrocode}
+%<*base>
+\providecommand*{\PackageInfoNoLine}[2]{%
+ \PackageInfo{#1}{#2\@gobble}%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ClassInfoNoLine}
+% \changes{v2.98c}{2008/02/15}{neu}^^A
+% Arbeitet wie \cs{ClassInfo} aber ohne Ausgabe der Zeilennummer.
+% \begin{macrocode}
+%<*base>
+\providecommand*{\ClassInfoNoLine}[2]{%
+ \ClassInfo{#1}{#2\@gobble}%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@removefromreset}
+% \changes{v3.15}{2014/11/21}{neue Anweisung, kompatibel mit
+% \textsf{remreset} und \textsf{chngcntr}}^^A
+% Dieser alte Bekannte aus dem Paket \textsf{remreset} wird auch von
+% \KOMAScript{} benötigt. Es ist einfacher, ihn selbst zu definieren, als sich
+% auf andere Pakete zu verlassen.
+% \begin{macrocode}
+%<*base>
+\providecommand*\@removefromreset[2]{%
+ {%
+ \expandafter\let\csname c@#1\endcsname\@removefromreset
+ \def\@elt##1{%
+ \expandafter\ifx\csname c@##1\endcsname\@removefromreset
+ \else\noexpand\@elt{##1}\fi
+ }%
+ \expandafter\xdef\csname cl@#2\endcsname{\csname cl@#2\endcsname}%
+ }%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \selectlanguage{english}%
+% \begin{macro}{\IfActiveMkBoth}
+% \changes{v3.26}{2018/09/03}{new}^^A
+% \begin{macro}{\if@scrActiveMkBoth}
+% \changes{v3.26}{2018/09/03}{new}^^A
+% This command test, whether or not \cs{@mkboth} does change a mark or not.
+% \begin{macrocode}
+%<*base>
+\newif\ifscr@ActiveMkBoth
+\def\scr@ActiveMkBothfalse{\global\let\ifscr@ActiveMkBoth\iffalse}
+\def\scr@ActiveMkBothtrue {\global\let\ifscr@ActiveMkBoth\iftrue}
+\newcommand*{\IfActiveMkBoth}{%
+ \begingroup
+ \def\markboth##1##2{\scr@ActiveMkBothtrue}%
+ \def\markright##1{\scr@ActiveMkBothtrue}%
+ \def\markleft##1{\scr@ActiveMkBothtrue}%
+ \def\markboth##1{\scr@ActiveMkBothtrue}%
+ \def\markdouble##1{\scr@ActiveMkBothtrue}%
+ \def\mark##1{\scr@ActiveMkBothtrue}
+ \scr@ActiveMkBothfalse
+ \setbox\@tempboxa\vbox{\@mkboth{}{}}%
+ \endgroup
+ \ifscr@ActiveMkBoth
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A\if@scrActiveMkBoth
+% \end{macro}^^A\IfActiveMkBoth
+% \selectlanguage{ngerman}%
+%
+% \subsection{Definition von KOMA-\textsf{keyval}-Schlüsseln (Hauptteil)}
+%
+% \begin{macro}{\FamilyExecuteOptions}
+% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A
+% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt}^^A
+% \changes{v3.04b}{2010/02/02}{\cs{scr@key@atlist} und \cs{scr@key@name}^^A
+% vor Überschreiben in \cs{setkeys} geschützt}^^A
+% \changes{v3.12}{2013/03/04}{neue Implementierung}^^A
+% \changes{v3.12}{2013/03/04}{darf auch noch nach der Präambel verwendet
+% werden}^^A
+% \changes{v3.14}{2014/10/17}{das dritte Argument wird \cs{long}^^A
+% verarbeitet}^^A
+% \begin{macro}{\@FamilyExecuteOptions}
+% \changes{v3.14}{2014/10/17}{Neue streng interne Anweisung}^^A
+% \changes{v3.23}{2017/02/16}{Korrektur: Haken danach verwendet die Familie
+% statt des Mitglieds}^^A
+% 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}[2][.\@currname.\@currext]{%
+ \@FamilyExecuteOptions[{#1}]{#2}%
+}
+\newcommand{\@FamilyExecuteOptions}[3][.\@currname.\@currext]{%
+ \scr@ifundefinedorrelax{scr@after@options@#2@hook}{%
+ \@namedef{scr@after@options@#2@hook}{%
+ \@namedef{scr@after@options@#2@hook}{}%
+ }%
+ }{%
+ \expandafter\edef\csname scr@after@options@#2@hook\endcsname{%
+ \noexpand\@namedef{scr@after@options@#2@hook}{%
+ \unexpanded\expandafter\expandafter\expandafter
+ {\csname scr@after@options@#2@hook\endcsname}%
+ }%
+ }%
+ }%
+ \@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}{%
+% \end{macrocode}
+% \changes{v3.20}{2015/11/18}{Besondere Behandlung der
+% \texttt{@else@}-Option}^^A
+% Es existiert zwar weder eine Familienoption noch eine Mitgliedsoption, aber
+% vielleicht existiert ja die Spezialoption \texttt{@else@}, die in einem
+% solchen Fall die eigentliche Option als Wert erhält.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{KV@#2#1@@else@}{%
+ \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@elseoption{#2#1}%
+% \end{macrocode}
+% Im Gegensatz zu anderen Optionen bedeuten bei der \texttt{@else@}-Option
+% alle von \cs{FamilyKeyStateProcessed} abweichenden Ergebnisse, dass die
+% Option nicht korrekt verarbeitet werden konnte und deshalb die ursprüngliche
+% Option als Fehler zu melden ist.
+% \begin{macrocode}
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed\else
+ \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.%
+ }%
+ \fi
+ }%
+ }{%
+ \scr@execute@option{#2#1}%
+ }%
+ }{%
+ \scr@execute@option{#2}%
+ \ifstr{#1}{}{}{%
+% \end{macrocode}
+% \changes{v3.20}{2015/11/18}{Memberoptionstest nach Familyoptionsausführung
+% korrigiert}^^A
+% Auch wenn eine Familienoption ausgeführt wurde, muss eine existierende
+% Mitgliederoption ggf. noch ausgeführt werden. Existiert sie nicht, wird
+% ebenfalls eine existierende \texttt{@else@}-Option ausgeführt. Allerdings
+% führen in diesem Fall von \cs{FamilyKeyStateProcessed} abweichende
+% Ergebnisse nicht zu einer Fehlermeldung.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{KV@#2#1@\scr@key@name}{%
+ \scr@ifundefinedorrelax{KV@#2#1@@else@}{}{%
+ \scr@execute@elseoption{#2#1}%
+ }%
+ }{%
+ \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@#2@hook}%
+}
+%</base>
+% \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
+}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \scr@show@key@state@error
+% \end{macro}^^A \@FamilyExecuteOptions
+% \end{macro}^^A \FamilyExecuteOptions
+%
+% \begin{macro}{\KOMAExecuteOptions}
+% \changes{v2.97c}{2007/04/19}{Neue Anweisung}^^A
+% \changes{v3.00}{2008/04/30}{Kein optionales Argument mehr}^^A
+% \changes{v3.12}{2013/03/04}{darf auch noch nach der Präambel verwendet
+% werden}^^A
+% Liste von Optionen für ein Mitglied der Familie \texttt{KOMA} ausführen.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMAExecuteOptions}[1][.\@currname.\@currext]{%
+ \FamilyExecuteOptions[#1]{KOMA}%
+}
+%</koma>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FamilyOptions}
+% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A
+% \changes{v3.12}{2013/03/02}{Neue Implementierung}^^A
+% \changes{v3.12}{2013/03/02}{\cs{scr@after@options@\#1@hook}}^^A
+% \changes{v3.14}{2014/10/17}{zweites Argument wird \cs{long} behandelt}^^A
+% \begin{macro}{\@FamilyOptions}
+% \changes{v3.14}[2014/10/17]{Neue streng interne Anweisung}^^A
+% \begin{macro}{\Family@Options}
+% \changes{v3.00}{2008/04/30}{Neues Makro (intern)}^^A
+% \changes{v3.12}{2013/03/04}{entfernt}^^A
+% \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}[1]{\@FamilyOptions{#1}}
+\newcommand{\@FamilyOptions}[2]{%
+ \scr@ifundefinedorrelax{scr@after@options@#1@hook}{%
+ \@namedef{scr@after@options@#1@hook}{%
+ \@namedef{scr@after@options@#1@hook}{}%
+ }%
+ }{%
+ \expandafter\edef\csname scr@after@options@#1@hook\endcsname{%
+ \noexpand\@namedef{scr@after@options@#1@hook}{%
+ \unexpanded\expandafter\expandafter\expandafter
+ {\csname scr@after@options@#1@hook\endcsname}%
+ }%
+ }%
+ }%
+% \end{macrocode}
+% \changes{v3.23}{2017/02/16}{neuer Haken für \cs{AtEndOfFamilyOptions*}}^^A
+% Seit Version 3.23 wird hier auch der neuen Haken vor
+% \cs{AtEndOfFamilyOptions*} initialisiert. Zunächst findet eine Art
+% Vorinitialisierung statt, bei der der Haken lediglich leer definiert wird,
+% falls er noch nicht existiert. Falls er nämlich existiert, kann an einem
+% leeren Haken die oberste Ebene erkannt werden.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{scr@after@options@#1@hook@topmost}{%
+ \@namedef{scr@after@options@#1@hook@topmost}{}%
+ }{}%
+% \end{macrocode}
+% Dann wird an einem leeren Haken die oberste Ausführungsebene erkennt. In
+% diesem Fall wird zum einen die Ausführung des Hakens in den normalen
+% Ebenen-Haken (das ist dann automatische der oberste Ebenen-Haken)
+% eingehängt und zum anderen der Haken selbst so initialisiert, dass er sich
+% bei seiner Ausführung als erstes selbst löscht. Gleichzeitig ist der Haken
+% selbst dadurch nicht mehr leer, so dass sich tiefere Ebenen von der höchsten
+% eindeutig unterscheiden.
+% \begin{macrocode}
+ \expandafter\ifx\csname scr@after@options@#1@hook@topmost\endcsname\@empty
+ \expandafter\l@addto@macro\csname scr@after@options@#1@hook\endcsname{%
+ \@nameuse{scr@after@options@#1@hook@topmost}%
+ }%
+ \@namedef{scr@after@options@#1@hook@topmost}{%
+ \@namedef{scr@after@options@#1@hook@topmost}{}%
+ }%
+ \fi
+% \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}^^A
+% 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)}^^A
+% \changes{v3.13}{2014/06/30}{fehlendes \cs{expandafter} in \cs{PackageInfo}
+% ergänzt}^^A
+% \changes{v3.13a}{2014/08/13}{Leerzeichen durch fehlendes Prozentzeichen
+% beseitigt}^^A
+% \changes{v3.23}{2017/02/16}{den \cs{AtEndOfFamilyOptions} Haken hier zu
+% sichern nützt nichts}^^A
+% 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
+ \ifx\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions@immediate
+ \noexpand\let\noexpand\AtEndOfFamilyOptions
+ \noexpand\scr@AtEndOfFamilyOptions@immediate
+ \fi
+ }%
+ \let\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions
+ \reserved@a
+ \ifx\FamilyKeyState\FamilyKeyStateUnknown
+ \PackageInfo{scrbase}{Unknown processing state.\MessageBreak
+ Processing option
+ `\expandafter\detokenize\expandafter{\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@KV@err}
+% \changes{v3.12a}{2013/03/04}{missing internal command added}^^A
+% We just have to signal, that the option needs a value, that is missing.
+% \begin{macrocode}
+\newcommand*{\scr@KV@err}[1]{%
+ \FamilyKeyStateNeedValue
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\scr@key@run@errors}
+% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)}^^A
+% 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}^^A \scr@key@run@errors}
+% \end{macro}^^A \scr@execute@option
+% \begin{macro}{\scr@execute@elseoption}
+% \changes{v3.20}{2015/11/18}{neu (intern)}^^A
+% \changes{v3.25}{2017/11/16}{Gruppe eingefügt}^^A
+% \changes{v3.25}{2017/11/16}{\cs{scr@key@name@else} und
+% \cs{scr@key@value@else} neu}^^A
+% Ist eine Spezialoption mit dem Namen \texttt{@else@} definiert, so wird
+% diese von \cs{FamilyExecuteOptions} genau dann ausgeführt, wenn keine
+% passende Option gefunden wurde. Dafür dient dieses Makro, dessen Argumente
+% und Aufrufstatus genau \cs{scr@execute@option} entspricht. Es soll auch
+% genau dasselbe tun, außer dass es nicht die Option selbst aufruft, sondern
+% die Option als Wert an die \texttt{@else@}-Option übergibt. Es muss also
+% temporär \cs{scr@key@atlist}, \cs{scr@key@name} und \cs{scr@key@value}
+% geändert werden, bevor \cs{scr@execute@option} ausgeführt wird. Da
+% allerdings die Originalwerte ggf. von der \texttt{@else@}-Option ausgewertet
+% werden sollen, wird das originale \cs{scr@key@atlist} zum Wert der
+% \texttt{@else@}-Option. Damit diese nicht erneut aufgespaltet werden muss,
+% werden die originalen \cs{scr@key@name} und \cs{scr@key@value} zusätzlich in
+% \cs{scr@key@name@else} und \cs{scr@key@value@else} gespeichert.
+% \begin{macrocode}
+\newcommand*{\scr@execute@elseoption}[1]{%
+ \begingroup
+ \protected@edef\reserved@a{%
+ \unexpanded{%
+ \endgroup
+ \let\scr@key@name@else\scr@key@name
+ \let\scr@key@value@else\scr@key@value
+ \def\scr@key@name{@else@}%
+ }%
+ \noexpand\def\noexpand\scr@key@value{%
+ \unexpanded\expandafter{\scr@key@atlist}}%
+ \noexpand\def\noexpand\scr@key@atlist{%
+ @else@={\unexpanded\expandafter{\scr@key@atlist}}}%
+ \noexpand\scr@execute@option{#1}%
+ \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}}%
+ \scr@ifundefinedorrelax{scr@key@name@else}{%
+ \unexpanded{\let\scr@key@name@else\relax}%
+ }{%
+ \noexpand\def\noexpand\scr@key@name@else{%
+ \unexpanded\expandafter{\scr@key@name@else}%
+ }%
+ }
+ \scr@ifundefinedorrelax{scr@key@value@else}{%
+ \unexpanded{\let\scr@key@value@else\relax}%
+ }{%
+ \noexpand\def\noexpand\scr@key@value@else{%
+ \unexpanded\expandafter{\scr@key@value@else}%
+ }%
+ }%
+ }\reserved@a
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@execute@elseoption
+% \begin{macro}{\ifscr@key@found@}
+% \changes{v2.97c}{2007/04/19}{Neuer Schalter (intern)}^^A
+% \changes{v3.00}{2008/04/30}{umbenannt von \cs{ifKOMA@key@found}}^^A
+% \begin{macro}{\scr@key@atlist}
+% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}^^A
+% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@atlist}}^^A
+% \begin{macro}{\scr@key@name}
+% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}^^A
+% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@name}}^^A
+% \begin{macro}{\scr@key@value}
+% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}^^A
+% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@value}}^^A
+% \begin{macro}{\scr@key@split@name@value}
+% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}^^A
+% \changes{v2.97e}{2007/11/10}{verwendet \cs{KV@@sp@def} zur Entsorgung von
+% Leerzeichen}^^A
+% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@split@name@value}}^^A
+% \changes{v3.13}{2014/10/17}{\cs{long}}^^A
+% \changes{v3.26}{2018/08/29}{Verwendung von \cs{scr@sp@def} statt
+% \cs{KV@@sp@def}}^^A
+% \begin{macrocode}
+\newif\ifscr@key@found@
+\newcommand*{\scr@key@atlist}{}
+\newcommand*{\scr@key@name}{}
+\newcommand*{\scr@key@value}{}
+\newcommand*{\scr@key@split@name@value}{}
+\long\def\scr@key@split@name@value#1=#2=#3\@nil{%
+ \scr@sp@def\scr@key@name{#1}%
+ \scr@sp@def\scr@key@value{#2}%
+}
+%</base>
+% \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
+% \end{macro}^^A \FamilyOptions
+%
+% \begin{macro}{\FamilyOption}
+% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A
+% \changes{v3.26b}{2019/01/09}{Tyischen Fehler abgefangen}^^A
+% \begin{macro}{\@FamilyOptions}
+% \changes{v3.14}[2014/10/17]{Neue streng interne Anweisung}^^A
+% \changes{v3.26}{2018/08/29}{Verwendung von \cs{scr@sp@def} statt
+% \cs{KV@@sp@def}}^^A
+% \begin{macro}{\Family@Option}
+% \changes{v3.00}{2008/04/30}{Neu (intern)}^^A
+% \changes{v3.12}{2013/03/04}{entfernt}^^A
+% \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}[2]{%
+ \begingroup
+ \def\reserved@a##1,##2\@nil{\IfArgIsEmpty{##2}{}{\@tempswatrue}}%
+ \@tempswafalse\expandafter\reserved@a#2,\@nil
+ \if@tempswa
+ \PackageError{scrbase}{%
+ syntax error in key `\detokenize{#2}'%
+ }{%
+ You've used `\string\...Option' to set the key
+ `\detokenize{#2}'\MessageBreak
+ to new value(s), but `,' is not allowed in the key of
+ an option\MessageBreak
+ (and `\string\...Option' does not use `,' to separate several
+ keys).\MessageBreak
+ Maybe you've meant \string\...Options\space instead of
+ \string\...Option.\MessageBreak
+ If you'll continue, I'll give it a try, but you should expect
+ further\MessageBreak
+ and even strange error messages.%
+ }%
+ \else
+ \def\reserved@a##1=##2\@nil{%
+ \IfArgIsEmpty{##2}{}{\@tempswatrue\def\reserved@a{=}}}%
+ \expandafter\reserved@a#2=\@nil
+ \if@tempswa
+ \PackageError{scrbase}{%
+ syntax error in key `\detokenize{#2}'%
+ }{%
+ You've used `\string\...Option' to set the key
+ `\detokenize{#2}'\MessageBreak
+ to new value(s), but `=' is not allowed in the key of
+ an option\MessageBreak
+ (and `\string\...Option' does not use `=' to separate key and
+ value).\MessageBreak
+ Maybe you've meant \string\...Options\space instead of
+ \string\...Option.\MessageBreak
+ If you'll continue, I'll give it a try, but you should expect
+ further\MessageBreak
+ and even strange error messages.%
+ }%
+ \fi
+ \fi
+ \endgroup
+ \@FamilyOption{#1}{#2}%
+}
+\newcommand{\@FamilyOption}[3]{%
+ \expandafter\scr@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}^^A
+% 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}^^A
+% 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}%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\KOMAoptions}
+% \changes{v2.96}{2006/08/20}{Neuer Hook nach den Optionen}^^A
+% \changes{v2.97c}{2007/04/19}{Optionen aller KOMA-Familien abarbeiten}^^A
+% \changes{v3.12}{2013/03/04}{Hook-Mechanismus von \cs{FamilyOptions}^^A
+% verwendent}
+% Simple kleine Abkürzung.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMAoptions}{\FamilyOptions{KOMA}}
+%</koma>
+% \end{macrocode}
+% \begin{macro}{\KOMA@options}
+% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}^^A
+% \changes{v3.12}{2013/03/04}{entfernt}^^A
+% \end{macro}^^A \KOMA@options
+% \end{macro}^^A \KOMAoptions
+%
+% \begin{macro}{\KOMAoptionsOf}
+% \changes{v3.17}{2015/02/25}{neue Anweisung}^^A
+% Mit dieser Anweisung können die aktuell gesetzten \KOMAScript-Optionen
+% eines Pakets oder einer Klasse abgefragt werden, sobald ein Paket oder eine
+% Klasse das unterstützt. Das erste (optionale) Argument gibt dabei eine
+% Anweisung an, die für die Optionenliste ausgeführt werden soll. Das zweite
+% (nicht optionale Argument) ist der Name eines KOMA-Script-Pakets oder einer
+% KOMA-Script-Klasse einschließlich Dateiendung.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMAoptionsOf}[2][\@firstofone]{%
+ \scr@ifundefinedorrelax{scr@kav@KOMA.#2}{%
+ \PackageError{scrkbase}{\string\KOMAoptionsOf\space not supported}{%
+ #2 is not the name of a KOMA-Script package or\MessageBreak
+ KOMA-Script class, that supports \string\KOMAoptionsOf.}%
+ }{%
+ \begingroup
+ \def\reserved@a{#1}%
+ \KOMA@kav@defall\reserved@b{.#2}%
+ \expandafter\expandafter\expandafter\endgroup
+ \expandafter\reserved@a\expandafter{\reserved@b}%
+ }%
+}
+%</koma>
+% \end{macrocode}
+% \end{macro}^^A \KOMAoptionsOf
+%
+% \begin{macro}{\KOMAoptionOf}
+% \changes{v3.17}{2015/02/26}{neue Anweisung}^^A
+% Mit dieser Anweisung kann eine aktuell gesetzte \KOMAScript-Option
+% eines Pakets oder einer Klasse abgefragt werden, sobald ein Paket oder eine
+% Klasse das unterstützt. Das erste (optionale) Argument gibt dabei eine
+% Anweisung an, die für die Optionenliste ausgeführt werden soll. Das zweite
+% (nicht optionale Argument) ist der Name eines KOMA-Script-Pakets oder einer
+% KOMA-Script-Klasse einschließlich Dateiendung, das dritte (nicht optionale
+% Argument) ist der Name der Option, die abgefragt werden soll.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMAoptionOf}[3][\@firstofone]{%
+ \scr@ifundefinedorrelax{scr@kav@KOMA.#2}{%
+ \PackageError{scrkbase}{\string\KOMAoptionOf\space not supported}{%
+ #2 is not the name of a KOMA-Script package or\MessageBreak
+ KOMA-Script class, that supports \string\KOMAoptionOf.}%
+ }{%
+ \begingroup
+ \def\reserved@a{#1}%
+ \KOMA@kav@defone\reserved@b{.#2}{#3}%
+ \ifx\reserved@b\@empty
+ \PackageWarning{scrkbase}{option `#3' for `#2' unset}%
+ \endgroup
+ \else
+ \expandafter\expandafter\expandafter\endgroup
+ \expandafter\reserved@a\expandafter{\reserved@b}%
+ \fi
+ }%
+}
+%</koma>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\post@kopt@hook}
+% \changes{v3.12}{2013/03/04}{entfernt}^^A
+% \end{macro}^^A \post@kopt@hook
+% \begin{macro}{\AfterKOMAoptions}
+% \changes{v3.12}{2013/03/04}{Verwendung von \cs{AtEndOfFamilyOptions}}^^A
+% \changes{v3.23}{2017/02/16}{kein \cs{let}}^^A
+% Eine Option kann dafür sorgen, dass nach den Optionen noch etwas passiert.
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\AfterKOMAoptions}{\AtEndOfFamilyOptions}
+%</koma>
+% \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}^^A
+% verhält}
+% \changes{v3.12}{2013/04/20}{veraltete \eTeX-freie Version entfernt}^^A
+% \changes{v3.12}{2013/04/20}{Warnung, falls eine inkompatible Definition
+% von \cs{l@addto@macro} entdeckt wird}
+% \changes{v3.23}{2017/02/16}{in den Optionen-Teil verschoben}^^A
+% \begin{macrocode}
+%</body>
+%<*base&prepare>
+\@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}}%
+}%
+%</base&prepare>
+%<*body>
+% \end{macrocode}
+% \end{macro}^^A \l@addto@macro
+%
+% \begin{macro}{\l@addto@macro@a}
+% \changes{v3.20}{2015/11/20}{neu (intern)}
+% So eine ähnliche Anweisung benötige ich außerdem für den Fall, dass eine
+% Anweisung erweitert werden soll, die genau ein obligatorisches Argument
+% benötigt. Achtung! Diese Anweisung funktioniert deutlich weniger allgemein
+% als \cs{l@addto@macro} und wird deshalb nie offiziell dokumentiert!
+% \begin{macrocode}
+%<*base>
+\begingroup
+ \catcode`\^^A=\catcode`\#
+ \@makeother\#
+ \gdef\l@addto@macro@a^^A1{%
+ \begingroup
+ \@makeother\#
+ \def\l@addto@macro@a@cmd{^^A1}%
+ \l@addto@macro@a@
+ }
+ \gdef\l@addto@macro@a@^^A1{%
+ \def\l@addto@macro@a@add{^^A1}%
+ \l@addto@macro@a@@
+ }
+\endgroup
+\begingroup
+ \@makeother\#
+ \gdef\l@addto@macro@a@@{%
+ \@makeother\#
+ \edef\reserved@a{%
+ \detokenize{\endgroup\def}%
+ \detokenize\expandafter{\l@addto@macro@a@cmd#1}%
+ {%
+ \expandafter\detokenize%
+ \expandafter\expandafter\expandafter{\l@addto@macro@a@cmd{#1}}%
+ \expandafter\detokenize\expandafter{\l@addto@macro@a@add}%
+ }%
+ }%
+ \expandafter\scantokens\expandafter{\reserved@a}%
+ }%
+\endgroup
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \l@addto@macro@a
+%
+% \begin{macro}{\l@preto@macro}
+% \changes{v3.20}{2015/11/25}{neu (intern)}^^A
+% In gewisser Weise das gleiche wie \cs{l@appto@macro}, allerdings wird vorn
+% statt hinten angefügt.
+% \begin{macrocode}
+%<*base>
+\newcommand\l@preto@macro[2]{%
+ \edef#1{\unexpanded{#2}\unexpanded\expandafter{#1}}%
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \l@preto@macro
+%
+% \begin{macro}{\l@preto@macro@a}
+% \changes{v3.20}{2015/11/25}{neu (intern)}
+% So eine ähnliche Anweisung benötige ich außerdem für den Fall, dass eine
+% Anweisung erweitert werden soll, die genau ein obligatorisches Argument
+% benötigt. Achtung! Diese Anweisung funktioniert deutlich weniger allgemein
+% als \cs{l@preto@macro} und wird deshalb nie offiziell dokumentiert!
+% \begin{macrocode}
+%<*base>
+\begingroup
+ \catcode`\^^A=\catcode`\#
+ \@makeother\#
+ \gdef\l@preto@macro@a^^A1{%
+ \begingroup
+ \@makeother\#
+ \def\l@preto@macro@a@cmd{^^A1}%
+ \l@preto@macro@a@
+ }
+ \gdef\l@preto@macro@a@^^A1{%
+ \def\l@preto@macro@a@add{^^A1}%
+ \l@preto@macro@a@@
+ }
+\endgroup
+\begingroup
+ \@makeother\#
+ \gdef\l@preto@macro@a@@{%
+ \@makeother\#
+ \edef\reserved@a{%
+ \detokenize{\endgroup\def}%
+ \detokenize\expandafter{\l@preto@macro@a@cmd#1}%
+ {%
+ \expandafter\detokenize\expandafter{\l@preto@macro@a@add}%
+ \expandafter\detokenize%
+ \expandafter\expandafter\expandafter{\l@preto@macro@a@cmd{#1}}%
+ }%
+ }%
+ \expandafter\scantokens\expandafter{\reserved@a}%
+ }%
+\endgroup
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \l@preto@macro@a
+%
+% \begin{macro}{\KOMAoption}
+% \changes{v2.98c}{2008/03/12}{Neue Anweisung}^^A
+% \changes{v3.12}{2013/03/04}{Einfacher Aufruf von \cs{FamilyOption}}
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMAoption}{\FamilyOption{KOMA}}
+%</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
+% \changes{v3.14}{2014/10/17}{\cs{long}}^^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
+}
+%</base>
+% \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}{}
+%</base>
+% \end{macrocode}
+% \end{macro}^^A \FamilyUnknownKeyValue
+% \end{macro}^^A \FamilyElseValue
+%
+% \begin{macro}{\FamilyBoolKey}
+% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A
+% 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}^^A
+% \changes{v3.11a}{2012/05/25}{Argument in Fehlermeldung korrigiert}^^A
+% Ü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
+}
+%</base>
+% \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}}
+%</koma>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\KOMA@ifkey}
+% \changes{v3.02c}{2009/02/04}{definiert ebenfalls das Familienmitglied}^^A
+% \changes{v3.17}{2015/03/02}{ersetzt den gespeicherten Wert}^^A
+% 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}[2][.\@currname.\@currext]{%
+ \begingroup\edef\reserved@a{\noexpand\KOMA@@ifkey{#1}{#2}}%
+ \expandafter\endgroup\reserved@a
+}
+\newcommand*{\KOMA@@ifkey}[3]{%
+ \@ifundefined{if#3}{%
+ \expandafter\newif\csname if#3\endcsname
+ }{}%
+ \KOMA@key[{#1}]{#2}[true]{%
+ \KOMA@set@ifkey{#2}{#3}{##1}%
+ \KOMA@kav@replacebool{#1}{#2}{#3}%
+ }%
+ \csname if#3\endcsname
+ \KOMA@kav@xadd{#1}{#2}{true}%
+ \else
+ \KOMA@kav@xadd{#1}{#2}{false}%
+ \fi
+}
+%</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}}
+%</koma>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FamilyCounterKey}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.15}{2014/12/03}{er wird ein (optionaler) Säumniswert
+% unterstützt}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^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, optionale ist der Säumniswert, das fünfte der
+% Name des \LaTeX-Zählers. Erlaubt sind alle Integer-Werte.
+% \begin{macro}{\Family@@Counter@@Key}
+% \changes{v3.15}{2014/12/03}{neu (intern)}^^A
+% \begin{macro}{\Family@Counter@Key}
+% \changes{v3.15}{2014/12/03}{neu (intern)}^^A
+% \begin{macrocode}
+%<*base>
+\newcommand*{\FamilyCounterKey}[3][.\@currname.\@currext]{%
+ \kernel@ifnextchar [%]
+ {\Family@@Counter@@Key{#1}{#2}{#3}}%
+ {\Family@Counter@Key{#1}{#2}{#3}}%
+}
+\newcommand*{\Family@@Counter@@Key}{}
+\def\Family@@Counter@@Key#1#2#3[#4]#5{%
+ \@ifundefined{c@#5}{\newcounter{#5}}{}%
+ \DefineFamilyKey[{#1}]{#2}{#3}[{#4}]{\FamilySetCounter{#2}{#3}{#5}{##1}}%
+}
+\newcommand*{\Family@Counter@Key}[4]{%
+ \@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
+% \changes{v3.18a}{2015/07/06}{korrekte Verwendung von
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.23}{2017/02/23}{Leerzeichen durch \cs{relax} ersetzt}^^A
+% Ü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
+% Name des \LaTeX-Zählers, das vierte schließlich der gewünschte Wert.
+% \begin{macrocode}
+\newcommand*{\FamilySetCounter}[4]{%
+ \begingroup
+ \protected@edef\reserved@a{#4}%
+ \def\reserved@b{\endgroup\value{#3}=#4\relax\FamilyKeyStateProcessed}%
+ \expandafter\ifiscount\expandafter{\reserved@a}{}{%
+ \expandafter\ifisdimen\expandafter{\reserved@a}{}{%
+ \expandafter\ifisskip\expandafter{\reserved@a}{}{%
+ \expandafter\ifisnumexpr\expandafter{\reserved@a}{}{%
+ \expandafter\ifisdimexpr\expandafter{\reserved@a}{}{%
+ \expandafter\ifisinteger\expandafter{\reserved@a}{}{%
+ \expandafter\ifiscounter\expandafter{\reserved@a}{%
+ \def\reserved@b{%
+ \endgroup\value{#3}=\value{#4}\FamilyKeyStateProcessed
+ }%
+ }{%
+ \def\reserved@b{%
+ \endgroup
+ \FamilyUnknownKeyValue{#1}{#2}{#4}{%
+ integer numbers, counters, lengths, skips, dimens
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ \reserved@b
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\FamilyCounterMacroKey}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.15}{2014/12/03}{er wird ein (optionaler) Säumniswert
+% unterstützt}^^A
+% Diese Anweisung arbeitet fast wie \cs{FamilyCounterKey}, allerdings wird
+% dabei nicht ein Zähler, sondern ein Marko auf einen Wert definiert. Dabei
+% ist das erste (optionale) Argument das Mitglied, das zweite die Familie, das
+% dritte der Schlüssel, das vierte (optionale) der Säumniswert, das fünfte das
+% Makro.
+% \begin{macro}{\FamilySetCounterMacro}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.15}{2014/12/17}{\cs{aftergroup} vor
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.18a}{2015/07/06}{korrekte Verwendung von
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% Diese Anweisung arbeitet fast wie \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{macro}{\Family@@Counter@@Macro@@Key}
+% \changes{v3.15}{2014/12/03}{neu (intern)}^^A
+% \begin{macro}{\Family@Counter@Macro@Key}
+% \changes{v3.15}{2014/12/03}{neu (intern)}^^A
+% \begin{macrocode}
+%<*base>
+\newcommand*{\FamilyCounterMacroKey}[3][.\@currname.\@currext]{%
+ \kernel@ifnextchar [%]
+ {\Family@@Counter@@Macro@@Key{#1}{#2}{#3}}%
+ {\Family@Counter@Macro@Key{#1}{#2}{#3}}%
+}
+\newcommand*{\Family@@Counter@@Macro@@Key}{}
+\def\Family@@Counter@@Macro@@Key#1#2#3[#4]#5{%
+ \ifdefined#4\else\let#4\z@\fi
+ \DefineFamilyKey[{#1}]{#2}{#3}[{#4}]{\FamilySetCounterMacro{#2}{#3}{#5}{##1}}%
+}
+\newcommand*{\Family@Counter@Macro@Key}[4]{%
+ \ifdefined#4\else\let#4\z@\fi
+ \DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetCounterMacro{#2}{#3}{#4}{##1}}%
+}
+\newcommand*{\FamilySetCounterMacro}[4]{%
+ \begingroup
+% \end{macrocode}
+% An dieser Stelle wird nun der immer definierte Zähler page als lokaler
+% Zähler verwendet. Das ist nur möglich, weil \cs{FamilySetCounter} nicht
+% global mit \cs{setcounter} arbeitet, sondern lokal mit einer Zuweisung an
+% \cs{value}.
+% \begin{macrocode}
+ \FamilySetCounter{#1}{#2}{page}{#4}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \edef\reserved@a{%
+ \unexpanded{\endgroup\def#3}%
+ {\the\value{page}}%
+ \noexpand\FamilyKeyStateProcessed
+ }%
+ \else
+ \def\reserved@a{%
+ \endgroup
+ \FamilyUnknownKeyValue{#1}{#2}{#4}{%
+ integer numbers, counters, lengths, skips, dimens
+ }%
+ }%
+ \fi
+ \reserved@a
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FamilyLengthKey}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.15}{2014/12/03}{er wird ein (optionaler) Säumniswert
+% unterstützt}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^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{macro}{\Family@@Length@@Key}
+% \changes{v3.15}{2014/12/03}{neu (intern)}^^A
+% \begin{macro}{\Family@Length@Key}
+% \changes{v3.15}{2014/12/03}{neu (intern)}^^A
+% \begin{macrocode}
+%<*base>
+\newcommand*{\FamilyLengthKey}[3][.\@currname.\@currext]{%
+ \kernel@ifnextchar [%]
+ {\Family@@Length@@Key{#1}{#2}{#3}}%
+ {\Family@Length@Key{#1}{#2}{#3}}%
+}
+\newcommand*{\Family@@Length@@Key}{}
+\def\Family@@Length@@Key#1#2#3[#4]#5{%
+ \ifdefined#5\else\newlength{#5}\fi
+ \DefineFamilyKey[{#1}]{#2}{#3}[{#4}]{\FamilySetLength{#2}{#3}{#5}{##1}}%
+}
+\newcommand*{\Family@Length@Key}[4]{%
+ \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
+% \changes{v3.15}{2015/01/02}{\cs{ifglueexpr} hinzugefügt}^^A
+% \changes{v3.18a}{2015/07/06}{korrekte Verwendung von
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.20}{2016/04/27}{Expansion vor dem Test}^^A
+% Ü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
+% Name der \LaTeX-Länge, das vierte schließlich der gewünschte Wert.
+% \begin{macrocode}
+\newcommand*{\FamilySetLength}[4]{%
+ \begingroup
+ \protected@edef\reserved@a{#4}%
+ \expandafter\ifiscount\expandafter{\reserved@a}{%
+ \aftergroup\@firstoftwo
+ }{%
+ \expandafter\ifisdimen\expandafter{\reserved@a}{%
+ \aftergroup\@firstoftwo
+ }{%
+ \expandafter\ifisskip\expandafter{\reserved@a}{%
+ \aftergroup\@firstoftwo
+ }{%
+ \expandafter\ifisnumexpr\expandafter{\reserved@a}{%
+ \aftergroup\@firstoftwo
+ }{%
+ \expandafter\ifisdimexpr\expandafter{\reserved@a}{%
+ \aftergroup\@firstoftwo
+ }{%
+ \expandafter\ifisglueexpr\expandafter{\reserved@a}{%
+ \aftergroup\@firstoftwo
+ }{%
+ \expandafter\ifisglue\expandafter{\reserved@a}{%
+ \aftergroup\@firstoftwo
+ }{%
+ \aftergroup\@secondoftwo
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ \endgroup
+ {#3=#4\FamilyKeyStateProcessed}%
+ {%
+ \FamilyUnknownKeyValue{#1}{#2}{#4}{%
+ length values, counters, lengths, skips, dimens
+ }%
+ }%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\FamilyLengthMacroKey}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.15}{2014/12/03}{er wird ein (optionaler) Säumniswert
+% unterstützt}^^A
+% \begin{macro}{\FamilySetLengthMacro}
+% \changes{v3.12}{2013/11/05}{neu}^^A
+% \changes{v3.14a}{2014/11/24}{fix: \cs{@tempskipa} statt \cs{@temskipa}}^^A
+% \changes{v3.15}{2014/12/17}{\cs{aftergroup} vor
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.15}{2015/01/02}{\cs{ifglueexpr} hinzugefügt}^^A
+% \changes{v3.18a}{2015/07/06}{korrekte Verwendung von
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} ersetzt durch
+% \cs{kernel@ifnextchar}}^^A
+% \changes{v3.20}{2016/04/27}{interne Verwendung von \cs{FamilySetLength}}^^A
+% Diese Anweisungen arbeitet fast wie \cs{FamilyLengthKey} und
+% \cs{FamilySetLengt}, allerdings wird nicht eine Länge 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{macro}{\Family@@Length@@Macro@@Key}
+% \changes{v3.15}{2014/12/03}{neu (intern)}^^A
+% \begin{macro}{\Family@Length@Macro@Key}
+% \changes{v3.15}{2014/12/03}{neu (intern)}^^A
+% \begin{macrocode}
+%<*base>
+\newcommand*{\FamilyLengthMacroKey}[3][.\@currname.\@currext]{%
+ \kernel@ifnextchar [%]
+ {\Family@@Length@@Macro@@Key{#1}{#2}{#3}}%
+ {\Family@Length@Macro@Key{#1}{#2}{#3}}%
+}
+\newcommand*{\Family@@Length@@Macro@@Key}{}
+\def\Family@@Length@@Macro@@Key#1#2#3[#4]#5{%
+ \ifdefined#5\else\let#5\z@\fi
+ \DefineFamilyKey[{#1}]{#2}{#3}[{#4}]{\FamilySetLengthMacro{#2}{#3}{#5}{##1}}%
+}
+\newcommand*{\Family@Length@Macro@Key}[4]{%
+ \ifdefined#4\else\let#4\z@\fi
+ \DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetLengthMacro{#2}{#3}{#4}{##1}}%
+}
+\newcommand*{\FamilySetLengthMacro}[4]{%
+ \begingroup
+ \FamilySetLength{#1}{#2}{\@tempskipa}{#4}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \edef\reserved@a{%
+ \unexpanded{\endgroup\def#3}%
+ {\the\@tempskipa}%
+ \noexpand\FamilyKeyStateProcessed
+ }%
+ \else
+ \def\reserved@a{%
+ \endgroup
+ \FamilyUnknownKeyValue{#1}{#2}{#4}{%
+ length values, counters, lengths, skips, dimens
+ }%
+ }%
+ \fi
+ \reserved@a
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\FamilyUseLengthMacroKey}
+% \changes{v3.20}{2016/04/27}{neu}^^A
+% \begin{macro}{\FamilySetUseLengthMacro}
+% \changes{v3.20}{2016/04/27}{neu}^^A
+% Diese Anweisungen arbeitet fast wie \cs{FamilyLengthKey} und
+% \cs{FamilySetLengt}, allerdings wird das Makro nicht als den Wert des Werts,
+% sondern als den Wert selbst definiert. Eine Expansion des Werts findet nur
+% für die Prüfung statt. Änderungen am Wert wirken sich also ggf. weiterhin
+% aus. 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{macro}{\Family@@UseLength@@Macro@@Key}
+% \changes{v3.20}{2016/04/27}{neu (intern)}^^A
+% \begin{macro}{\Family@USeLength@Macro@Key}
+% \changes{v3.20}{2016/04/27}{neu (intern)}^^A
+% \begin{macrocode}
+%<*base>
+\newcommand*{\FamilyUseLengthMacroKey}[3][.\@currname.\@currext]{%
+ \kernel@ifnextchar [%]
+ {\Family@@UseLength@@Macro@@Key{#1}{#2}{#3}}%
+ {\Family@UseLength@Macro@Key{#1}{#2}{#3}}%
+}
+\newcommand*{\Family@@UseLength@@Macro@@Key}{}
+\def\Family@@UseLength@@Macro@@Key#1#2#3[#4]#5{%
+ \ifdefined#5\else\let#5\z@\fi
+ \DefineFamilyKey[{#1}]{#2}{#3}[{#4}]{%
+ \FamilySetUseLengthMacro{#2}{#3}{#5}{##1}%
+ }%
+}
+\newcommand*{\Family@UseLength@Macro@Key}[4]{%
+ \ifdefined#4\else\let#4\z@\fi
+ \DefineFamilyKey[{#1}]{#2}{#3}{\FamilySetUseLengthMacro{#2}{#3}{#4}{##1}}%
+}
+\newcommand*{\FamilySetUseLengthMacro}[4]{%
+ \begingroup
+ \FamilySetLength{#1}{#2}{\@tempskipa}{#4}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \def\reserved@a{%
+ \endgroup\def#3{#4}%
+ \FamilyKeyStateProcessed
+ }%
+ \else
+ \def\reserved@a{%
+ \endgroup
+ \FamilyUnknownKeyValue{#1}{#2}{#4}{%
+ length values, counters, lengths, skips, dimens
+ }%
+ }%
+ \fi
+ \reserved@a
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\FamilyNumericalKey}
+% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\Family@Numerical@Key}
+% \changes{v3.00}{2008/05/28}{Neu (intern)}^^A
+% \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]{%
+ \kernel@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}^^A
+% \changes{v3.25}{2017/12/04}{komplett leere Listenelemente werden
+% ignoriert}^^A
+% 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{%
+ \ifx\@valuelist\@empty\else
+ \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
+ \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
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\KOMA@ncmdkey}
+% \changes{v3.02c}{2009/02/04}{definiert ebenfalls das Familienmitglied}^^A
+% \changes{v3.17}{2015/03/16}{neu implementiert mit Speicherung der
+% Werte und optionalem erstem Argument}^^A
+% \begin{macro}{\KOMA@@ncmdkey}
+% \changes{v3.17}{2015/03/16}{neu (intern)}^^A
+% \begin{macro}{\KOMA@@@ncmdkey}
+% \changes{v3.17}{2015/03/16}{neu (intern)}^^A
+% Wie \cs{FamilyNumericalKey} mit zwei entscheidenden Unterschieden:
+% \begin{itemize}
+% \item Die Familien ist immer \texttt{KOMA} und entfällt daher als zweites
+% Argument.
+% \item Der gespeicherte Wert wird ausgetauscht. Daher kann es nicht nur für
+% Optionen verwendet werden, bei denen die Werte exklusiv sind.
+% \end{itemize}
+% Wichtig: Die Voreinstellung muss anschließend noch in jedem Fall mit
+% \cs{KOMA@kav@add} gesetzt werden!
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMA@ncmdkey}[2][.\@currname.\@currext]{%
+ \begingroup\edef\reserved@a{\noexpand\KOMA@@ncmdkey{#1}{#2}}%
+ \expandafter\endgroup\reserved@a
+}
+\newcommand*{\KOMA@@ncmdkey}[2]{%
+ \kernel@ifnextchar [%]
+ {\KOMA@@@ncmdkey{#1}{#2}}{\KOMA@@@ncmdkey{#1}{#2}[]}
+}
+\newcommand*{\KOMA@@@ncmdkey}{}
+\def\KOMA@@@ncmdkey#1#2[#3]#4#5{%
+ \@ifundefined{#4}{\@namedef{#4}{0}}{}%
+ \ifx\relax#3\relax
+ \KOMA@key[{#1}]{#2}{%
+ \KOMA@set@ncmdkey{#2}{#4}{#5}{##1}%
+ \KOMA@kav@replacevalue{#1}{#2}{##1}%
+ }%
+ \else
+ \KOMA@key[{#1}]{#2}[{#3}]{%
+ \KOMA@set@ncmdkey{#2}{#4}{#5}{##1}%
+ \KOMA@kav@replacevalue{#1}{#2}{##1}%
+ }%
+ \fi
+}
+%</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. Dabei wird allerdings
+% kein gespeicherter Wert ersetzt!
+% \begin{macrocode}
+%<*koma>
+\newcommand*{\KOMA@set@ncmdkey}{\FamilySetNumerical{KOMA}}
+%</koma>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\FamilyStringKey}
+% \changes{v3.08}{2010/11/05}{Neue Anweisung}^^A
+% \changes{v3.08b}{2011/03/31}{\cs{Family@String@Key} und
+% \cs{Family@@String@@Key} vertauscht}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\Family@String@Key}
+% \changes{v3.08}{2010/11/05}{Neu (intern)}^^A
+% \begin{macro}{\Family@@String@@Key}
+% \changes{v3.08}{2010/11/05}{Neu (intern)}^^A
+% 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 das 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]{%
+ \kernel@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}%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\FamilyCSKey}
+% \changes{v3.25}{2017/12/08}{Neue Anweisung}^^A
+% \begin{macro}{\Family@CS@Key}
+% \changes{v3.25}{2017/12/08}{Neu (intern)}^^A
+% \begin{macro}{\Family@@CS@@Key}
+% \changes{v3.25}{2017/12/08}{Neu (intern)}^^A
+% \changes{v3.26}{2018/11/06}{Es wird wirklich diese Anweisung (statt erneut
+% \cs{Family@@String@@Key}) definiert}^^A
+% Ein ähnliches Makro definiert einen Schlüssel, der eine Befehlssequenz 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*{\FamilyCSKey}[3][.\@currname.\@currext]{%
+ \kernel@ifnextchar [%]
+ {\Family@@CS@@Key{#1}{#2}{#3}}{\Family@CS@Key{#1}{#2}{#3}}%
+}
+\newcommand*{\Family@@CS@@Key}{}
+\long\def\Family@@CS@@Key#1#2#3[#4]#5{%
+ \DefineFamilyKey[{#1}]{#2}{#3}[{#4}]{\@namedef{#5}{##1}}%
+}
+\newcommand{\Family@CS@Key}[4]{%
+ \DefineFamilyKey[{#1}]{#2}{#3}{\@namedef{#4}{##1}\FamilyKeyStateProcessed}%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\KOMA@DeclareDeprecatedOption}
+% \changes{v3.01a}{2008/11/20}{neu (intern)}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\KOMA@@DeclareDeprecatedOption}
+% \changes{v3.01a}{2008/11/20}{neu (intern)}^^A
+% \begin{macro}{\KOMA@@@DeclareDeprecatedOption}
+% \changes{v3.01a}{2008/11/20}{neu (intern)}^^A
+% 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}{%
+ \kernel@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)}^^A
+% \changes{v3.12}{2013/03/04}{Test für \texttt{version!=first}}^^A
+% \changes{v3.12a}{2014/01/22}{vertauschte Logic für
+% \texttt{version!=first} korrigiert}^^A
+% \changes{v3.22}{2016/07/29}{diverse \cs{detokenize} eingefügt}^^A
+% 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]{%
+ \begingroup
+ \scr@ifundefinedorrelax{KV@KOMA.\@currname.\@currext @version}{%
+ \edef\reserved@a{\noexpand\endgroup
+ \noexpand#1{%
+ You've used obsolete option `\detokenize{#2}'.\noexpand\MessageBreak
+ Usage of this option is deprecated.\noexpand\MessageBreak
+ You should simply replace `\detokenize{#2}'\noexpand\MessageBreak
+ by `\detokenize{#3}'%
+ }%
+ \noexpand\KOMAExecuteOptions{#3}%
+ \noexpand\def\noexpand\CurrentOption{\CurrentOption}%
+ }%
+ }{%
+ \edef\reserved@a{\noexpand\endgroup
+ \noexpand#1{%
+ You've used obsolete option `\detokenize{#2}'.\noexpand\MessageBreak
+ Usage of this option indicates an old document\noexpand\MessageBreak
+ and changes compatibility level using\noexpand\MessageBreak
+ `\detokenize{#3},version=first,\noexpand\MessageBreak
+ enabledeprecatedfontcommands' that may result\noexpand\MessageBreak
+ in further warnings.\noexpand\MessageBreak
+ If you don't want this, you should simply\noexpand\MessageBreak
+ replace option `\detokenize{#2}' by `\detokenize{#3}'%
+ }%
+ \noexpand\KOMAExecuteOptions{%
+ #3,version=first}%
+ \noexpand\ExecuteOptions{enabledeprecatedfontcommands}%
+ \noexpand\def\noexpand\CurrentOption{\CurrentOption}%
+ }%
+ }%
+ \reserved@a
+}
+%</koma>
+% \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)}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\KOMA@@DeclareStandardOption}
+% \changes{v3.01a}{2008/11/21}{neu (intern)}^^A
+% \begin{macro}{\KOMA@@@DeclareStandardOption}
+% \changes{v3.01a}{2008/11/21}{neu (intern)}^^A
+% 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}{%
+ \kernel@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)}^^A
+% 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]{%
+ \begingroup
+ \edef\reserved@a{\noexpand\endgroup
+ \noexpand#1{%
+ You've used standard option `#2'.\noexpand\MessageBreak
+ This is correct!\noexpand\MessageBreak
+ Internally I'm using `#3'.\noexpand\MessageBreak
+ If you'd like to set the option with \string\KOMAoptions,%
+ \noexpand\MessageBreak
+ you'd have to use `#3' there\noexpand\MessageBreak
+ instead of `#2', too%
+ }%
+ \noexpand\KOMAExecuteOptions{#3}%
+ \noexpand\def\noexpand\CurrentOption{\CurrentOption}%
+ }%
+ \reserved@a
+}
+%</koma>
+% \end{macrocode}
+% \begin{macro}{\scr@sr@co}
+% \changes{v2.96}{2006/08/20}{neu (intern)}^^A
+% \changes{v3.12a}{2014/01/22}{beseitigt}^^A
+% \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}^^A
+% \begin{macro}{\KOMA@@DeclareObsoleteOption}
+% \changes{v2.98c}{2008/02/18}{neu (intern)}^^A
+% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}^^A
+% \begin{macro}{\KOMA@@@DeclareObsoleteOption}
+% \changes{v2.98c}{2008/02/18}{neu (intern)}^^A
+% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}^^A
+% \begin{macro}{\KOMA@iv@DeclareObsoleteOption}
+% \changes{v2.98c}{2008/02/18}{neu (intern)}^^A
+% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}^^A
+% \begin{macro}{\KOMA@UseObsoleteOption}
+% \changes{v2.97c}{2007/04/19}{neu (intern)}^^A
+% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}^^A
+% \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)}^^A
+% \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}%
+}
+%</koma>
+% \end{macrocode}
+% \end{macro}^^A \KOMA@UseDeprecatedCommand
+% \end{macro}^^A \KOMA@newdeprecatedcommand
+%
+%
+% \iffalse
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-basics.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx b/macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx
new file mode 100644
index 0000000000..0963bc4d7a
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx
@@ -0,0 +1,741 @@
+% \CheckSum{421}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-bibliography.dtx
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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-2018
+%
+% 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 3016 2018-09-03 11:40:59Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-09-03 13:40:59 +0200 (Mon, 03 Sep 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1872 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-bibliography.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (bibliography)]%
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \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}^^A
+% \changes{v3.17}{2015/03/12}{interne Speicherung des Werts für Option
+% \texttt{bibliography}}^^A
+% 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
+% \end{macrocode}
+% \begin{macro}{\scr@current@bibstyle}
+% \changes{v3.17}{2015/03/12}{Neu (intern)}^^A
+% Das Makro \cs{scr@current@bibstyle} wird benötigt, um den aktuellen Wert von
+% Option \texttt{bibliography} korrigieren zu können. Es wird direkt vom Stil
+% definiert, der auch die Korrektur des Optionenwerts durchführt.
+% \begin{macrocode}
+ \@ifundefined{scr@current@bibstyle}{}{%
+ \ifstr{\scr@current@bibstyle}{}{}{%
+ \edef\reserved@a{%
+ \noexpand\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}%
+ {\scr@current@bibstyle}%
+ }\reserved@a
+ }%
+ }%
+ \def\scr@current@bibstyle{#2}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+ \KOMA@kav@xadd{.\KOMAClassFileName}{bibliography}{#2}%
+ \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)}^^A
+% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}^^A
+% 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}^^A
+% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}^^A
+% \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)}^^A
+% 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)}^^A
+% \changes{v2.6c}{2000/06/10}{die Präambel wird gesetzt}^^A
+% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird verwendet}^^A
+% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die
+% \texttt{thebibliography}-Umgebung verschoben}^^A
+% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}^^A
+% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}^^A
+% \changes{v3.12}{2012/02/06}{\cs{ifbib@leveldown} wird beachtet}^^A
+% \changes{v3.13b}{2014/10/10}{running head with \texttt{leveldown}^^A
+% fixed}^^A
+% \changes{v3.25}{2017/10/13}{use always \cs{@mkright} and \cs{@mkdouble}}^^A
+% \changes{v3.25}{2017/10/13}{using \cs{bibliography@heading}}^^A
+% \begin{macro}{\bibliography@heading}
+% \changes{v3.25}{2017/10/13}{neu (intern)}
+% \changes{v3.26}{2018/09/03}{Verwendung von \cs{addsecmark}
+% oder \cs{subsectionmark} statt \cs{@mkright}}^^A
+% Befehl zum Setzen der Überschrift des Literaturverzeichnisses.
+% \begin{macrocode}
+\newcommand*{\bib@heading}{%
+%<article> \bibliography@heading{\refname}%
+%<book|report> \bibliography@heading{\bibname}%
+}
+\newcommand*{\bibliography@heading}[1]{%
+ \ifbib@leveldown
+%<article> \subsection*{#1}%
+%<book|report> \section*{#1}%
+%<book|report> \addsecmark{#1}%
+%<*article>
+ \begingroup
+ \c@secnumdepth=-\maxdimen
+ \subsectionmark{#1}%
+ \endgroup
+%</article>
+ \else
+%<article> \section*{#1}%
+%<book|report> \chapter*{#1}%
+ \@mkdouble{\MakeMarkcase{#1}}%
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+% \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}^^A
+% 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
+% \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}^^A
+% \changes{v3.25}{2017/10/13}{use always \cs{@mkright} and
+% \cs{@mkdouble}}^^A
+% \changes{v3.25}{2017/10/13}{redefines \cs{bibliography@heading} instead of
+% \cs{bib@heading}}^^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)}^^A
+% 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 % notoc
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{nobibliography}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{bibliography}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{bibliographynumbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{nobibliography}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{notoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{totoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{numbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{bibliography}{notoc}%
+ \renewcommand*{\bibliography@heading}[1]{%
+ \ifbib@leveldown
+%<article> \subsection*{##1}%
+%<book|report> \section*{##1}%
+ \@mkright{\MakeMarkcase{##1}}%
+ \else
+%<article> \section*{##1}%
+%<book|report> \chapter*{##1}%
+ \@mkdouble{\MakeMarkcase{##1}}%
+ \fi
+ }%
+ \or% totoc
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{nobibliography}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{bibliography}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{bibliographynumbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{bibliography}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{notoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{totoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{numbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{bibliography}{totoc}%
+ \renewcommand*{\bibliography@heading}[1]{%
+%<*article>
+ \ifbib@leveldown
+% \end{macrocode}
+% \changes{v3.23}{2017/02/23}{Verwendung von \cs{ext@toc}}^^A
+% \changes{v3.25}{2017/10/13}{Verwendung von \cs{addsubsectiontocentry} statt
+% \cs{addxcontentsline}}^^A
+% Ab Version 3.23 wird das von \textsf{tocbasic} bereitgestellte
+% \cs{ext@toc} statt dem hart codierten \texttt{toc} verwendet.
+% \begin{macrocode}
+ \subsection*{%
+ \addsubsectiontocentry{}{##1}%
+ ##1%
+ }%
+ \@mkright{\MakeMarkcase{##1}}%
+ \else
+ \addsec{##1}%
+ \@mkdouble{\MakeMarkcase{##1}}%
+ \fi
+%</article>
+%<*book|report>
+ \ifbib@leveldown
+ \addsec{##1}%
+ \else
+ \if@chaptertolists
+ \@chaptertolistsfalse\addchap{##1}\@chaptertoliststrue
+ \else
+ \addchap{##1}%
+ \fi
+ \@mkdouble{\MakeMarkcase{##1}}%
+ \fi
+%</book|report>
+ }%
+ \or% numbered
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{nobibliography}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{bibliography}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{bibliographynumbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{bibliographynumbered}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{notoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{totoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{numbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{bibliography}{numbered}%
+ \renewcommand*{\bibliography@heading}[1]{%
+%<*article>
+ \ifbib@leveldown
+ \subsection{##1}%
+ \else
+ \section{##1}%
+ \@mkdouble{\MakeMarkcase{\sectionmarkformat ##1}}%
+ \fi
+%</article>
+%<*book|report>
+ \ifbib@leveldown
+ \section{##1}%
+ \else
+ \if@chaptertolists
+ \@chaptertolistsfalse\chapter{##1}\@chaptertoliststrue
+ \else
+ \chapter{##1}
+ \fi
+ \@mkdouble{\MakeMarkcase{\chaptermarkformat ##1}}%
+ \fi
+%</book|report>
+ }
+ \or% leveldown
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{leveldown}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{standardlevel}%
+ \KOMA@kav@add{.\KOMAClassFileName}{bibliography}{leveldown}%
+ \bib@leveldowntrue
+ \or% standardlevel
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{leveldown}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{standardlevel}%
+ \KOMA@kav@add{.\KOMAClassFileName}{bibliography}{standardlevel}%
+ \bib@leveldownfalse
+ \fi
+ }{%
+ \FamilyKeyStateProcessed
+ \edef\reserved@a{%
+ \noexpand\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}%
+ {\scr@current@bibstyle}%
+ }\reserved@a
+ \csname scr@bibstyle@#1\endcsname
+ }%
+}
+% \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}^^A
+% \changes{v2.98c}{2008/02/15}{obsolete}^^A
+% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A
+% 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}^^A
+% \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}^^A
+% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die
+% thebibliography-Umgebung verschoben}^^A
+% \changes{v2.98c}{2008/02/15}{obsolete}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{bibtotocnumbered}
+% \changes{v2.3h}{1995/01/21}{neue Option}^^A
+% \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}^^A
+% \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}^^A
+% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel}^^A
+% \changes{v2.98c}{2008/02/15}{obsolete}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% 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
+%</option>
+%<*body>
+% \fi
+%
+%
+% \subsection{Standardbezeichner}
+%
+% \begin{macro}{\refname}
+% \begin{macro}{\bibname}
+% Je nach Klasse wird \cs{refname} oder \cs{bibname} verwendet.
+% \begin{macrocode}
+%<article>\newcommand*\refname{References}
+%<book|report>\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}^^A
+% \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)}^^A
+% \changes{v2.6d}{2000/07/20}{Makro funktioniert nachdem \cs{let}^^A
+% 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}^^A
+% \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
+%</book|report>
+ \bib@heading
+%<*article>
+ \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else
+ \noindent\bibpreamble\par\nobreak
+ \fi\fi
+%</article>
+ \bib@beginhook
+ \bib@before@hook
+ \fi
+% \end{macrocode}
+% \begin{macro}{\BreakBibliography}
+% \changes{v2.98c}{2008/02/15}{Neu}^^A
+% 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)}^^A
+% \begin{macro}{\no@bib@break}
+% \changes{v2.98c}{2008/02/15}{Neu (intern)}^^A
+% \begin{macro}{\@bib@break}
+% \changes{v2.98c}{2008/02/15}{Neu (intern)}^^A
+% 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)}^^A
+% \begin{macro}{\bib@after@hook}
+% \changes{v2.98c}{2008/02/15}{Neu (intern)}^^A
+% \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}^^A
+% 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}^^A
+% \begin{macro}{\AtEndBibliography}
+% \changes{v2.98c}{2008/02/15}{Neu}^^A
+% 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
+%</body>
+% \fi
+%
+% \iffalse
+%</!letter>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-bibliography.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-circularletters.dtx b/macros/latex/contrib/koma-script/source/scrkernel-circularletters.dtx
new file mode 100644
index 0000000000..af2f1319d4
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-circularletters.dtx
@@ -0,0 +1,174 @@
+% \CheckSum{36}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-circularletters.dtx
+% Copyright (c) Markus Kohm, 2006-2017
+%
+% 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-2017
+%
+% 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 2640 2017-05-08 09:36:55Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2017-05-08 11:36:55 +0200 (Mon, 08 May 2017) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1872 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-circularletters.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (circular letters)]%
+ }%
+\reserved@a
+% \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}
+%</dtx>
+% \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
+%</option>
+%<*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}^^A
+% \begin{macro}{\addrchar}
+% \changes{v2.8n}{2001/09/06}{Neu}^^A
+% 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
+%</body>
+%</letter>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-circularletters.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-compatibility.dtx b/macros/latex/contrib/koma-script/source/scrkernel-compatibility.dtx
new file mode 100644
index 0000000000..191a302d6d
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-compatibility.dtx
@@ -0,0 +1,697 @@
+% \CheckSum{218}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-compatibility.dtx
+% Copyright (c) Markus Kohm, 2006-2019
+%
+% 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-2019
+%
+% 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 3063 2019-02-01 07:39:11Z kohm $
+%<identify>%%% (run: identify)
+%<init>%%% (run: init)
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
+ \filedate$Date: 2019-02-01 08:39:11 +0100 (Fri, 01 Feb 2019) $
+ \def\filerevision$#1: #2 ${\def\filerevision{r#2}}
+ \filerevision$Revision: 1638 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-compatibility.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (compatibility)]
+ }%
+\reserved@a
+% \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}
+%</dtx>
+% \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}
+%
+%
+% \subsection{Optionen für die Kompatibilität mit den Standardklassen}
+% Hier gibt es derzeit nur eine Option, die nur beim Laden aber nicht zur
+% Laufzeit verwendet werden kann:
+%
+% \begin{option}{emulatestandardclasses}
+% \changes{v3.12}{2013/11/11}{Neue Option}^^A
+% \changes{v3.20}{2016/02/16}{\texttt{headings!=standardclasses} auch für
+% \textsf{scrartcl}}^^A
+% 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)}^^A
+% Für die späteren Änderungen wird ein Schalter benötigt, der jedoch nicht
+% wie gewohnt geändert werden kann.
+% \begin{macrocode}
+%<*option&class&!letter>
+\newif\if@scr@emulatestandardclasses
+\let\scr@emulatestandardclassestrue\relax
+\let\scr@emulatestandardclassesfalse\relax
+\DeclareOption{emulatestandardclasses}{%
+ \let\if@scr@emulatestandardclasses\iftrue
+ \KOMAExecuteOptions{%
+ fontsize=10pt,%
+%<article|book|report> 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]{}%
+%<article|report> \pagestyle{plain}%
+ }%
+}
+%</option&class&!letter>
+% \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}^^A
+%
+% \begin{option}{version}
+% \changes{v2.9u}{2005/03/05}{Neue Option}^^A
+% \changes{v2.95}{2006/03/16}{Option kann nur beim Laden der Klasse gesetzt
+% werden}^^A
+% \begin{macro}{\scr@compatibility}
+% \changes{v2.9u}{2005/03/05}{Neues Macro}^^A
+% \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}^^A
+% 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}
+%<*init>
+%<class>\newcommand*
+%<package>\providecommand*
+ {\scr@compatibility}{\scr@v@last}
+%<typearea>\newcommand*{\scr@ta@compatibility}{\scr@compatibility}
+%</init>
+%<*option>
+\KOMA@key{version}[last]{%
+ \scr@ifundefinedorrelax{scr@v@#1}{%
+ \def\scr@compatibility{0}%
+%<class> \ClassWarningNoLine{\KOMAClassName}{%
+%<*package>
+ \PackageWarningNoLine{%
+%<extend> scrextend%
+%<typearea> typearea%
+%<letter> scrletter%
+ }{%
+%</package>
+ 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'%
+ }%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+%<package&typearea> typearea.\scr@pkgextension
+%<package&letter> scrletter.\scr@pkgextension
+ }{version}{first}%
+ }{%
+%<class> \ClassInfoNoLine{\KOMAClassName}{%
+%<*package>
+ \PackageInfoNoLine{%
+%<extend> scrextend%
+%<typearea> typearea%
+%<letter> scrletter%
+ }{%
+%</package>
+ Switching compatibility level to `#1'%
+ }%
+%<class|extend|letter> \edef\scr@compatibility{\@nameuse{scr@v@#1}}%
+%<typearea> \edef\scr@ta@compatibility{\@nameuse{scr@v@#1}}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+%<package&typearea> typearea.\scr@pkgextension
+%<package&letter> scrletter.\scr@pkgextension
+ }{version}{#1}%
+ }%
+}
+%<class>\KOMA@kav@add{.\KOMAClassFileName}{version}{last}
+% \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}
+%<class>\AtEndOfClass{%
+%<package>\AtEndOfPackage{%
+ \KOMA@key{version}[]{%
+%<class> \ClassError{\KOMAClassName}{%
+%<*package>
+ \PackageError{%
+%<extend> scrextend%
+%<typearea> typearea%
+%<letter> scrletter%
+ }{%
+%</package>
+ Option `version' too late%
+ }{%
+ Option `version' may be set only while loading the
+%<class> class.\MessageBreak
+%<package> package.\MessageBreak
+ But you've tried to set it up later.%
+ }%
+ \FamilyKeyStateProcessed
+ }%
+}
+%</option>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*init>
+% \end{macrocode}
+% \begin{macro}{\scr@v@first}
+% \changes{v2.9u}{2005/03/05}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.9}
+% \changes{v2.9u}{2005/03/05}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.9t}
+% \changes{v2.9u}{2005/03/05}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.95}
+% \changes{v2.95}{2006/03/23}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.95a}
+% \changes{v2.96a}{2006/11/27}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.95b}
+% \changes{v2.96a}{2006/11/27}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.96}
+% \changes{v2.96a}{2006/11/27}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.96a}
+% \changes{v2.96a}{2006/11/27}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.97}
+% \changes{v2.97}{2007/03/02}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.97a}
+% \changes{v2.97a}{2007/03/07}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.97b}
+% \changes{v2.97b}{2007/03/25}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.97c}
+% \changes{v2.97c}{2007/05/12}{Neues Macro}^^A
+% \changes{v2.97d}{2007/10/09}{Wert geändert}^^A
+% \begin{macro}{\scr@v@2.97d}
+% \changes{v2.97d}{2007/10/03}{Neues Macro}^^A
+% \changes{v2.97d}{2007/10/09}{Wert geändert}^^A
+% \begin{macro}{\scr@v@2.97e}
+% \changes{v2.97e}{2007/11/27}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.98}
+% \changes{v2.98}{2007/12/24}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.98a}
+% \changes{v2.98a}{2008/01/08}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.98b}
+% \changes{v2.98b}{2008/01/30}{Neues Macro}^^A
+% \begin{macro}{\scr@v@2.98c}
+% \changes{v2.98c}{2008/02/01}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.00}
+% \changes{v3.00}{2008/11/04}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.01}
+% \changes{v3.01}{2008/11/14}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.01a}
+% \changes{v3.01a}{2008/11/20}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.01b}
+% \changes{v3.01b}{2008/11/24}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.01c}
+% \changes{v3.01c}{2008/12/09}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.02}
+% \changes{v3.02}{2009/01/01}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.02b}
+% \changes{v3.02b}{2009/01/24}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.02c}
+% \changes{v3.02c}{2009/01/28}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.03}
+% \changes{v3.03}{2009/04/01}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.03a}
+% \changes{v3.03a}{2009/04/02}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.03b}
+% \changes{v3.03b}{2009/04/12}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.04}
+% \changes{v3.04}{2009/07/07}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.05}
+% \changes{v3.05}{2009/07/08}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.04a}
+% \changes{v3.04a}{2009/07/24}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.05a}
+% \changes{v3.05a}{2010/03/10}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.06}
+% \changes{v3.06}{2010/06/17}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.07}
+% \changes{v3.07}{2010/09/14}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.08}
+% \changes{v3.08}{2010/10/28}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.08a}
+% \changes{v3.08a}{2011/01/25}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.08b}
+% \changes{v3.08b}{2011/02/22}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.09}
+% \changes{v3.09}{2011/04/02}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.09a}
+% \changes{v3.09a}{2011/04/12}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.10}
+% \changes{v3.10}{2011/08/30}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.10a}
+% \changes{v3.10a}{2012/03/08}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.10b}
+% \changes{v3.10b}{2012/03/13}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.11}
+% \changes{v3.11}{2012/05/15}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.11a}
+% \changes{v3.11a}{2012/05/25}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.11b}
+% \changes{v3.11b}{2012/07/29}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.12}
+% \changes{v3.12}{2013/03/05}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.13}
+% \changes{v3.13}{2014/03/19}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.13a}
+% \changes{v3.13a}{2014/08/07}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.14}
+% \changes{v3.14}{2014/10/28}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.15}
+% \changes{v3.15}{2014/11/20}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.16}
+% \changes{v3.16}{2015/02/08}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.17}
+% \changes{v3.17}{2015/02/08}{Neues Macro}^^A
+% \begin{macro}{\scr@v@3.17a}
+% \changes{v3.17a}{2015/05/06}{Neues Macro}
+% \begin{macro}{\scr@v@3.17c}
+% \changes{v3.17c}{2015/05/13}{Neues Macro}
+% \begin{macro}{\scr@v@3.18}
+% \changes{v3.18}{2015/05/14}{Neues Macro}
+% \begin{macro}{\scr@v@3.18a}
+% \changes{v3.18a}{2015/07/03}{Neues Macro}
+% \begin{macro}{\scr@v@3.19}
+% \changes{v3.19}{2015/07/26}{Neues Macro}
+% \begin{macro}{\scr@v@3.19a}
+% \changes{v3.19a}{2015/10/03}{Neues Macro}
+% \begin{macro}{\scr@v@3.20}
+% \changes{v3.20}{2015/10/06}{Neues Macro}
+% \begin{macro}{\scr@v@3.21}
+% \changes{v3.21}{2016/05/19}{Neues Macro}
+% \begin{macro}{\scr@v@3.22}
+% \changes{v3.22}{2016/07/29}{Neues Macro}
+% \begin{macro}{\scr@v@3.23}
+% \changes{v3.23}{2017/02/04}{Neues Macro}
+% \begin{macro}{\scr@v@3.23}
+% \changes{v3.24}{2017/04/22}{Neues Macro}
+% \begin{macro}{\scr@v@3.25}
+% \changes{v3.25}{2017/09/07}{Neues Macro}
+% \begin{macro}{\scr@v@3.26}
+% \changes{v3.26}{2018/03/31}{Neues Macro}
+% \begin{macro}{\scr@v@3.26a}
+% \changes{v3.26a}{2018/12/30}{Neues Macro}
+% \begin{macro}{\scr@v@3.26b}
+% \changes{v3.26b}{2018/12/30}{Neues Macro}
+% \begin{macro}{\scr@v@last}
+% \changes{v2.9u}{2005/03/05}{Neues Macro}^^A
+% 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@3.13}{12}
+\@namedef{scr@v@3.13a}{13}
+\@namedef{scr@v@3.14}{13}
+\@namedef{scr@v@3.15}{14}
+\@namedef{scr@v@3.16}{14}
+\@namedef{scr@v@3.17}{15}
+\@namedef{scr@v@3.17a}{15}
+\@namedef{scr@v@3.17c}{15}
+\@namedef{scr@v@3.18}{15}
+\@namedef{scr@v@3.18a}{15}
+\@namedef{scr@v@3.19}{15}
+\@namedef{scr@v@3.19a}{15}
+\@namedef{scr@v@3.20}{15}
+\@namedef{scr@v@3.21}{15}
+\@namedef{scr@v@3.22}{16}
+\@namedef{scr@v@3.23}{16}
+\@namedef{scr@v@3.24}{16}
+\@namedef{scr@v@3.25}{17}
+\@namedef{scr@v@3.26}{17}
+\@namedef{scr@v@3.26a}{17}
+\@namedef{scr@v@3.26b}{17}
+\@namedef{scr@v@last}{17}
+% \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{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}
+% \begin{macrocode}
+%</init>
+% \end{macrocode}
+%
+% \begin{macro}{\scr@v@is@lt}
+% \changes{v3.17}{2015/03/10}{Neu (intern)}^^A
+% Bedingung, dass die eingestellte Version jünger als die angegebene ist.
+% \begin{macrocode}
+%<*option&(class|extend)>
+\newcommand*{\scr@v@is@lt}[1]{%
+ \scr@compatibility<\@nameuse{scr@v@#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\scr@v@is@gt}
+% \changes{v3.17}{2015/03/10}{Neu (intern)}^^A
+% Bedingung, dass die eingestellte Version älter als die angegebene ist.
+% \begin{macrocode}
+\newcommand*{\scr@v@is@gt}[1]{%
+ \scr@compatibility>\@nameuse{scr@v@#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\scr@v@is@le}
+% \changes{v3.17}{2015/03/10}{Neu (intern)}^^A
+% Bedingung, dass die eingestellte Version jünger als oder die angegebene ist.
+% \begin{macrocode}
+\newcommand*{\scr@v@is@le}[1]{%
+ \numexpr\scr@compatibility-\@ne\relax<\@nameuse{scr@v@#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\scr@v@is@ge}
+% \changes{v3.17}{2015/03/10}{Neu (intern)}^^A
+% Bedingung, dass die eingestellte Version älter als oder die angegebene ist.
+% \begin{macrocode}
+\newcommand*{\scr@v@is@ge}[1]{%
+ \numexpr\scr@compatibility+\@ne\relax>\@nameuse{scr@v@#1}
+}
+%</option&(class|extend)>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scr@ta@v@is@lt}
+% \changes{v3.17}{2015/03/10}{Neu (intern)}^^A
+% Bedingung, dass die eingestellte Version jünger als die angegebene ist.
+% \begin{macrocode}
+%<*option&package&typearea>
+\newcommand*{\scr@ta@v@is@lt}[1]{%
+ \scr@ta@compatibility<\@nameuse{scr@v@#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\scr@ta@v@is@gt}
+% \changes{v3.17}{2015/03/10}{Neu (intern)}^^A
+% Bedingung, dass die eingestellte Version älter als die angegebene ist.
+% \begin{macrocode}
+\newcommand*{\scr@ta@v@is@gt}[1]{%
+ \scr@ta@compatibility>\@nameuse{scr@v@#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\scr@ta@v@is@le}
+% \changes{v3.17}{2015/03/10}{Neu (intern)}^^A
+% Bedingung, dass die eingestellte Version jünger als oder die angegebene ist.
+% \begin{macrocode}
+\newcommand*{\scr@ta@v@is@le}[1]{%
+ \numexpr\scr@ta@compatibility-\@ne <\@nameuse{scr@v@#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\scr@ta@v@is@ge}
+% \changes{v3.17}{2015/03/10}{Neu (intern)}^^A
+% Bedingung, dass die eingestellte Version älter als oder die angegebene ist.
+% \begin{macrocode}
+\newcommand*{\scr@ta@v@is@ge}[1]{%
+ \numexpr\scr@ta@compatibility+\@ne >\@nameuse{scr@v@#1}
+}
+%</option&package&typearea>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \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.
+%
+% \begin{macro}{\@setif}
+% \changes{v2.8q}{2001/10/08}{Neu}^^A
+% \changes{v2.95}{2006/03/31}{Nur vor Version 2.95}^^A
+% 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}
+%<*class&letter&body>
+\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
+%</class&letter&body>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-compatibility.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-floats.dtx b/macros/latex/contrib/koma-script/source/scrkernel-floats.dtx
new file mode 100644
index 0000000000..ab752b1b0c
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-floats.dtx
@@ -0,0 +1,2062 @@
+% \CheckSum{1692}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-floats.dtx
+% Copyright (c) Markus Kohm, 2002-2017
+%
+% 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-2017
+%
+% 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 2701 2017-11-15 14:02:01Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2017-11-15 15:02:01 +0100 (Wed, 15 Nov 2017) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1962 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-floats.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (floats)]
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \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}^^A
+% \changes{v3.09}{2011/03/23}{Initialisierung vor den Optionen}^^A
+% 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}^^A
+% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen
+% verschoben}
+% \changes{v2.98c}{2008/02/18}{Definition erfolgt etwas früher}^^A
+% \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}^^A
+% \begin{macro}{\@figurecaptionabovetrue}
+% \changes{v3.09}{2011/03/23}{neu (intern)}^^A
+% \begin{macro}{\@figurecaptionabovefalse}
+% \changes{v3.09}{2011/03/23}{neu (intern)}^^A
+% 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}^^A
+% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher}^^A
+% \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)}^^A
+% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher}^^A
+% 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)}^^A
+% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher}^^A
+% 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}^^A
+% \changes{v3.09}{2011/04/02}{Neue Werte (\texttt{heading},
+% \texttt{signature}, \texttt{figureheading},
+% \texttt{figuresignature})}^^A
+% \changes{v3.17}{2015/03/11}{Beachtung der Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \changes{v3.17}{2015/03/11}{Verwendung der internen Werteliste}^^A
+% 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}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifcase \@tempa\relax % heading
+ \@tablecaptionabovetrue
+ \@figurecaptionabovetrue
+ \@captionabovetrue
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{heading}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{signature}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{heading}%
+ \or % signature
+ \@tablecaptionabovefalse
+ \@figurecaptionabovefalse
+ \@captionabovefalse
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{heading}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{signature}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{signature}%
+ \or % tableheading
+ \@tablecaptionabovetrue
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{tableheading}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{tablesignature}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{tableheading}%
+ \or % tablesignature
+ \@tablecaptionabovefalse
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{tableheading}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{tablesignature}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{tablesignature}%
+ \or % figureheading
+ \@figurecaptionabovetrue
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{figureheading}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{figuresignature}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{figureheading}%
+ \or % figuresignature
+ \@figurecaptionabovefalse
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{figureheading}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{figuresignature}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{figuresignature}%
+ \or % oneline
+ \onelinecaptionstrue
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{oneline}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{nooneline}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{oneline}%
+ \or % nooneline
+ \onelinecaptionsfalse
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{oneline}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{nooneline}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{nooneline}%
+ \or % rightbeside
+ \renewcommand*{\scap@pos}{r}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{rightbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{leftbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{innerbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{outerbeside}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{rightbeside}%
+ \or % leftbeside
+ \renewcommand*{\scap@pos}{l}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{rightbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{leftbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{innerbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{outerbeside}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{leftbeside}%
+ \or % innerbeside
+ \renewcommand*{\scap@pos}{i}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{rightbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{leftbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{innerbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{outerbeside}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{innerbeside}%
+ \or % outerbeside
+ \renewcommand*{\scap@pos}{o}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{rightbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{leftbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{innerbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{outerbeside}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{outerbeside}%
+ \or % topbeside
+ \renewcommand*{\scap@valign}{t}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{topbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{centeredbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{bottombeside}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{topbeside}%
+ \or % centeredbeside
+ \renewcommand*{\scap@valign}{c}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{topbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{centeredbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{bottombeside}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{centeredbeside}%
+ \or % bottombeside
+ \renewcommand*{\scap@valign}{b}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{topbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{centeredbeside}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{captions}{bottombeside}%
+ \KOMA@kav@add{.\KOMAClassFileName}{captions}{bottombeside}%
+ \fi
+ \fi
+}
+\KOMA@kav@add{.\KOMAClassFileName}{captions}{signature}
+\KOMA@kav@add{.\KOMAClassFileName}{captions}{tablesignature}
+\KOMA@kav@add{.\KOMAClassFileName}{captions}{figuresignature}
+\KOMA@kav@add{.\KOMAClassFileName}{captions}{oneline}
+\KOMA@kav@add{.\KOMAClassFileName}{captions}{rightbeside}
+\KOMA@kav@add{.\KOMAClassFileName}{captions}{bottombeside}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{tablecaptionabove}
+% \changes{v2.8h}{2001/07/19}{neue Option}^^A
+% \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}^^A
+% \begin{option}{tablecaptionbelow}
+% \changes{v2.8h}{2001/07/19}{neue Option}^^A
+% \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}^^A
+% 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}^^A
+% 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}^^A
+% \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}^^A
+% \changes{v2.98c}{2008/03/03}{obsolete}
+% \changes{v2.98c}{2008/03/03}{keine Sonderbehandlung für \textsf{caption2}^^A
+% mehr}
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{noonelinecaption}
+% \changes{v2.8q}{2001/11/17}{neue Option}^^A
+% \changes{v2.98c}{2008/03/03}{obsolete}
+% \changes{v2.98c}{2008/03/03}{keine Sonderbehandlung für \textsf{caption2}^^A
+% mehr}
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% 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
+%</!letter>
+%</class>
+%</option>
+%<*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}^^A
+% \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}^^A
+% 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}^^A
+% 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)}^^A
+% \begin{macro}{\captionabove}
+% \changes{v2.8h}{2001/07/19}{neu}^^A
+% \begin{macro}{\captionbelow}
+% \changes{v2.8h}{2001/07/19}{neu}^^A
+% 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}^^A
+% 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)}^^A
+% 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)}^^A
+% 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)}^^A
+% 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)}^^A
+% 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}^^A
+% \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)}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\@@captionbeside}
+% \changes{v2.8q}{2001/11/22}{neu (intern)}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\@@@captionbeside}
+% \changes{v2.8q}{2001/11/22}{neu (intern)}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\@@@@captionbeside}
+% \changes{v2.8q}{2001/11/22}{neu (intern)}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% 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{%
+ \kernel@ifnextchar [%]
+ {\@@captionbeside[{#1}]{#2}}
+ {\c@pti@nb@sid@[{#1}]{#2}}%
+}
+\newcommand*{\@@captionbeside}{}
+\long\def\@@captionbeside[#1]#2[#3]{%
+ \def\scap@pos{#3}%
+ \kernel@ifnextchar [%]
+ {\@@@captionbeside[{#1}]{#2}}
+ {\c@pti@nb@sid@[{#1}]{#2}}%
+}
+\newcommand*{\@@@captionbeside}{}
+\long\def\@@@captionbeside[#1]#2[#3]{%
+ \def\scap@width{#3}%
+ \kernel@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}%
+ \kernel@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)}^^A
+% 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)}^^A
+% \changes{v2.98c}{2008/03/11}{vertikale Ausrichtung korrigiert}^^A
+% \changes{v3.07a}{2010/11/04}{vertikale Ausrichtung im t- und b-Fall erneut
+% korrigiert}^^A
+% 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}^^A
+% \changes{v2.5g}{1999/10/09}{neben den komplett hängenden
+% Titeln sind nun auch nicht hängende oder teilweise hängende
+% möglich}^^A
+% 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}^^A
+% 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}^^A
+% \changes{v2.8l}{2001/08/17}{\cs{edef}\cs{cap@indent} statt
+% \cs{def}\cs{cap@indent}}^^A
+% \changes{v2.8q}{2001/11/17}{wird nach dem Laden von
+% \textsf{caption2} umdefiniert}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% 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}{\kernel@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}%
+ \kernel@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}^^A
+% \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}^^A
+% \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)}^^A
+% \begin{macro}{\cap@left}
+% \changes{v2.8q}{2001/11/17}{neu (intern)}^^A
+% \begin{macro}{\cap@right}
+% \changes{v2.8q}{2001/11/17}{neu (intern)}^^A
+% 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}^^A
+% \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}^^A
+% 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}^^A \setcapwidth
+% \begin{macro}{\setcapdynwidth}
+% \changes{v3.20}{2016/03/31}{neu}
+% Ulrike findet es blöd, dass \cs{setcapwidth} wie \cs{setlength} arbeitet und
+% ist der Meinung, dass das Argument erst zur Laufzeit ausgewertet werden
+% sollte. Also ein neuer Befehl genau dafür. Es sei allerdings darauf
+% hingewiesen, dass Fehler im Argument dann ggf. erst bei jeder
+% \cs{caption}-Anweisung und nicht bereits hier ausgegeben werden!
+% \begin{macrocode}
+\newcommand*{\setcapdynwidth}[2][]{%
+ \def\cap@width{#2}%
+ \begingroup
+ \edef\@tempa{#1}%
+ \def\@tempb{c}\ifx\@tempa\@tempb
+ \endgroup
+ \def\cap@margin{%
+ \ifdim \cap@width<\z@
+ \ClassWarning{\KOMAClassName}{%
+ caption width less than 0pt not allowed.\MessageBreak
+ Setting caption width to 0pt%
+ }%
+ \let\cap@width\z@
+ \fi
+ \let\cap@left=\hfill\let\cap@right=\hfill}%
+ \else
+ \def\@tempb{l}\ifx\@tempa\@tempb
+ \endgroup
+ \def\cap@margin{%
+ \ifdim \cap@width<\z@
+ \ClassWarning{\KOMAClassName}{%
+ caption width less than 0pt not allowed.\MessageBreak
+ Setting caption width to 0pt%
+ }%
+ \let\cap@width\z@
+ \fi
+ \let\cap@left=\relax\let\cap@right\hfill}%
+ \else
+ \def\@tempb{r}\ifx\@tempa\@tempb
+ \endgroup
+ \def\cap@margin{%
+ \ifdim \cap@width<\z@
+ \ClassWarning{\KOMAClassName}{%
+ caption width less than 0pt not allowed.\MessageBreak
+ Setting caption width to 0pt%
+ }%
+ \let\cap@width\z@
+ \fi
+ \let\cap@left=\hfill\let\cap@right=\relax}%
+ \else
+ \def\@tempb{i}\ifx\@tempa\@tempb
+ \endgroup
+ \def\cap@margin{%
+ \ifdim \cap@width<\z@
+ \ClassWarning{\KOMAClassName}{%
+ caption width less than 0pt not allowed.\MessageBreak
+ Setting caption width to 0pt%
+ }%
+ \let\cap@width\z@
+ \fi
+ \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{%
+ \ifdim \cap@width<\z@
+ \ClassWarning{\KOMAClassName}{%
+ caption width less than 0pt not allowed.\MessageBreak
+ Setting caption width to 0pt%
+ }%
+ \let\cap@width\z@
+ \fi
+ \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}
+% \end{macro}^^A \setcapdynwidth
+% \begin{macro}{\cap@margin}
+% \changes{v2.8q}{2001/11/17}{neu (intern)}^^A
+% 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}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\@setcapmargin}
+% \changes{v2.8q}{2001/11/17}{neu (intern)}^^A
+% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt
+% \cs{if@thispageodd}}
+% \begin{macro}{\@@setcapmargin}
+% \changes{v2.8q}{2001/11/17}{neu (intern)}^^A
+% 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}{\kernel@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}
+% \changes{v3.21}{2016/05/31}{Neuimplementierung}
+% \begin{macrocode}
+\newcommand{\@@makecaption}[3]{%
+% \end{macrocode}
+% Als erstes werden die Makros für den linken und rechten Rand generiert.
+% \begin{macrocode}
+ \cap@margin
+% \end{macrocode}
+% Danach wird der Test vorgenommen, ob der Text einzeilig oder
+% mehrzeilig zu setzen ist und entsprechend gehandelt:
+% \changes{v3.22}{2016/09/01}{Umdefinierung von \cs{stepcounter} und
+% \cs{refstepcounter} auf lokale Erhöhung des Zählers geändert, um Probleme
+% mit \textsf{isodate} zu umgehen}^^A
+% \begin{macrocode}
+ \begingroup
+ \ifonelinecaptions
+ \def\stepcounter##1{\advance\value{##1}\@ne}%
+ \let\refstepcounter\stepcounter
+ \let\label\@gobble
+ \let\@footnotetext=\@gobble
+ \let\hypertarget\@gobbletwo
+% \end{macrocode}
+% \changes{v3.22}{2016/09/01}{Sonderbehandlung für \string\\ u.\,ä. im Text}
+% Falls im Text ein \texttt{\string\\} oder \cs{newline} enthalten ist,
+% wird ein Infotext ausgegeben und dafür gesorgt, dass mehrzeilig gearbeitet
+% wird.
+% \begin{macrocode}
+ \edef\@xnewline{%
+ \unexpanded{\ClassInfo{\KOMAClassName}{%
+ Workaround for not recommended usage of \string\\ or\MessageBreak
+ \string\newline in caption text
+ }%
+ \hspace*{\linewidth}\hspace{1sp}%
+ }%
+ \unexpanded\expandafter{\@xnewline}%
+ }%
+ \edef\@xcentercr{%
+ \unexpanded{\ClassInfo{\KOMAClassName}{%
+ Workaround for not recommended usage of \string\\ or\MessageBreak
+ \string\newline in caption text
+ }%
+ \hspace*{\linewidth}\hspace{1sp}%
+ }%
+ \unexpanded\expandafter{\@xcentercr}%
+ }%
+ \settowidth{\@tempdima}{\scr@@makesinglelinecaption{#1}{#2}{#3}}%
+ \ifdim\@tempdima>\linewidth
+ \aftergroup\scr@makemultilinecaption
+ \else
+ \aftergroup\scr@makesinglelinecaption
+ \fi
+ \else
+ \aftergroup\scr@makemultilinecaption
+ \fi
+ \endgroup
+ {#1}{#2}{#3}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@makesinglelinecaption}
+% \changes{v3.21}{2016/05/31}{neu (intern)}
+% \begin{macro}{\scr@@makesinglelinecaption}
+% \changes{v3.21}{2016/05/31}{neu (intern)}
+% Diesen Anweisungen übernehmen die komplette Ausgabe von einzeiligen Texten.
+% Das erste Argumen hat \cs{@gobble} oder \cs{@firstofone} zu sein und
+% bestimmt darüber ob das Label ausgegeben wird oder nicht. Der Text wird
+% dagegen immer ausgegeben! Das vierte Argument im internen Makro ist entweder
+% \cs{par} oder leer.
+% \begin{macrocode}
+\newcommand{\scr@makesinglelinecaption}[3]{%
+ {%
+ \usefontofkomafont{caption}{%
+ \hb@xt@\hsize{%
+ \cap@left
+ \scr@@makesinglelinecaption{#1}{#2}{#3}%
+ \cap@right
+ }\par\kern\dp\strutbox%
+ }%
+ }\kern-\dp\strutbox
+}
+\newcommand{\scr@@makesinglelinecaption}[3]{%
+ \usekomafont{caption}{\strut\ignorespaces
+ #1{{\usekomafont{captionlabel}{#2\captionformat}}}%
+ \ignorespaces #3\unskip}%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@@makesinglelinecaption
+% \end{macro}^^A \scr@makesinglelinecaption
+% \begin{macro}{\scr@makemultilinecaption}
+% \changes{v3.21}{2016/05/31}{neu (intern)}^^A
+% \begin{macrocode}
+\newcommand{\scr@makemultilinecaption}[3]{%
+ {%
+ \usefontofkomafont{caption}{%
+ \hb@xt@\hsize{%
+ \cap@left
+ \vbox{\hsize\cap@width\linewidth\hsize
+% \end{macrocode}
+% \changes{v3.25}{2017/11/15}{caption Ausrichtung hinzugefügt}^^A
+% Bevor wir irgend etwas anderes machen, führen wir an der Stelle die
+% Ausrichtung für die gesamte \emph{caption} einschließlich Label aus. Dabei
+% hat eine vorhandene spezielle Ausrichtung für den Gleitungebungstyp Vorrang
+% vor der allgemeinen Ausrichtung für alle Gleitumgebungen:
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{@captype}{%
+ \ClassWarning{\KOMAClassName}{%
+ `\string\caption' outside float.\MessageBreak
+ Seems you are using `\string\caption' outside a
+ float.\MessageBreak
+ Maybe you are using a package that uses
+ `\string\@makecaption'\MessageBreak
+ without setting `\string\@captype' before.\MessageBreak
+ Because I cannot detect the caption type, I'm using\MessageBreak
+ the empty one.%
+ }%
+ \let\@captype\@empty
+ }{}%
+ \scr@ifundefinedorrelax{ragged\@captype caption}{\raggedcaption}{%
+ \@nameuse{ragged\@captype caption}%
+ }%
+% \end{macrocode}
+% Wenn der Schalter \cs{ifdofullc@p} gesetzt ist, wird der Text bezüglich des
+% Labels vollständig hängend gesetzt:
+% \changes{v3.25}{2017/11/15}{Verwendung von \cs{scr@endstrut} statt
+% \cs{unskip}\cs{strut}}^^A
+% \begin{macrocode}
+ \ifdofullc@p
+ \@hangfrom{%
+ \strut
+ \scr@smashdp{%
+ #1{%
+ \usekomafont{caption}{%
+ \usekomafont{captionlabel}{#2\captionformat}%
+ }%
+ }%
+ }%
+ }%
+ {\usekomafont{caption}{#3\scr@endstrut\par}}%
+% \end{macrocode}
+% Anderenfalls soll entweder nach dem Label direkt ein Umbruch erfolgen und
+% ein Einzug nur der ersten Zeile zu setzen:
+% \begin{macrocode}
+ \else
+ \ifdim\cap@indent<\z@
+ \strut
+ #1{%
+ \usekomafont{caption}{%
+ \usekomafont{captionlabel}{#2\captionformat\par}%
+ }%
+ }%
+ \noindent{\usekomafont{caption}{%
+ \hspace*{-\cap@indent}#3\scr@endstrut\par
+ }}%
+% \end{macrocode}
+% Oder es soll nach dem Label ein Umbruch erfolgen und danach alle Zeilen mit
+% dem entsprechenden Einzug gesetzt werden:
+% \begin{macrocode}
+ \else
+ \if@capbreak
+ \strut
+ #1{%
+ \usekomafont{caption}{%
+ \usekomafont{captionlabel}{#2\captionformat\par}%
+ }%
+ }%
+ \noindent\@hangfrom{\hspace*{\cap@indent}}%
+ {\usekomafont{caption}{#3\scr@endstrut\par}}%
+% \end{macrocode}
+% Oder es soll gar kein Umbruch erfolgen aber trotzdem alles mit einem
+% gewissen Einzug gesetzt werden:
+% \begin{macrocode}
+ \else
+ \@hangfrom{\scr@smashdp\strut\hspace*{\cap@indent}}%
+ {%
+ \hspace{-\cap@indent}%
+ \scr@smashdp{%
+ #1{\usekomafont{captionlabel}{#2\captionformat}}%
+ }%
+ {\usekomafont{caption}{#3\scr@endstrut}\par}%
+ }%
+ \fi
+ \fi
+ \fi
+% \end{macrocode}
+% Eigentlich fehlt hier nur die einfachste, gar nicht hängende Form:
+% \begin{macrocode}
+%<*neverusethis>
+% #1{{\usekomafont{captionlabel}{#2\captionformat}}}%
+% \ignorespaces #3\scr@endstrut\par
+%</neverusethis>
+% \end{macrocode}
+% Die allerdings durch die Form mit Einzug 0 abgedeckt wird.
+% \begin{macrocode}
+ }%
+ \cap@right
+ }\par\kern\dp\strutbox
+ }%
+ }\kern-\dp\strutbox
+}
+% \end{macrocode}
+% \begin{macro}{\setcaptionalignment}
+% \changes{v3.25}{2017/11/15}{neu}^^A
+% Da es etwas lästig und fehleranfällig ist, die ganzen \cs{raggedcaption}
+% und \cs{ragged\dots caption} von Hand zu definieren, gibt es dafür einen
+% Befehl. Das erste, optionale Argument ist dabei die Gleitungebung für die
+% die Definition erfolgen soll. Ist das Argument nicht leer, wird bei
+% definiertem \cs{@captype} dieses als Gleitumgebung angenommen. Ist das
+% Argument leer wird stattdessen die allgemeine Ausrichtung festgelegt. Das
+% zweite Argument ist ein einzelner Buchstaben, der für die Ausrichtung steht.
+% \begin{macrocode}
+\newcommand*\setcaptionalignment{%
+ \kernel@ifnextchar [%]
+ {\@setcaptionalignment}
+ {%
+ \scr@ifundefinedorrelax{@captype}{\@setcaptionalignment}{%
+ \edef\reserved@a{\noexpand\@setcaptionalignment[{\@captype}]}\reserved@a
+ }%
+ }%
+}%
+\newcommand*\@setcaptionalignment[2][]{%
+% \end{macrocode}
+% Wenn das optionale Argument nicht leer ist, sollte es eine bereits
+% definierte Gleitumgebung sein. Anderenfalls wird vorsichtshalber zumindest
+% eine Warnung ausgegeben. Die Ausrichtung wird aber trotzde, definiert.
+% \begin{macrocode}
+ \IfArgIsEmpty{#1}{}{%
+ \expandafter\ifnum
+ \scr@ifundefinedorrelax{#1}{0}{\scr@ifundefinedorrelax{end#1}{0}{1}}=0
+ \ClassWarning{\KOMAClassName}{%
+ float type `#1' defined not yet,\MessageBreak
+ but setting ragged mode for captions of\MessageBreak
+ float type `#1'%
+ }%
+ \fi
+ }%
+% \end{macrocode}
+% Danach gehen wir die Buchstaben durch. Erlaubt sind:
+% \begin{description}
+% \item[\texttt{j}] -- Blocksatz (\cs{ragged\dots caption} wird \cs{relax}.
+% \item[\texttt{l}] -- Blocksatz (\cs{ragged\dots caption} wird
+% \cs{raggedright}.
+% \item[\texttt{r}] -- Blocksatz (\cs{ragged\dots caption} wird
+% \cs{raggedleft}.
+% \item[\texttt{c}] -- Blocksatz (\cs{ragged\dots caption} wird
+% \cs{centering}.
+% \end{description}
+% Ist das Paket \textsf{ragged2e} geladen, werden stattdessen die Befehle
+% \cs{LaTeXraggedright}, \cs{LaTeXraggedleft} und \cs{LaTeXcentering}
+% verwendet. Außerdem führen dann die entsprechenden Großbuchstaben zu
+% \cs{justifying}, \cs{RaggedRight}, \cs{RaggedLeft} und
+% \cs{Centering}. Anderenfalls werden die Großbuchstaben wie die
+% Kleinbuchstaben behandelt und geben zusätzlich eine Warnung aus.
+% \begin{macrocode}
+ \def\reserved@a{#2}%
+ \ifstr{\reserved@a}{j}{%
+ \expandafter\let\csname ragged#1caption\endcsname\@empty
+ }{%
+ \ifstr{\reserved@a}{l}{%
+ \scr@ifundefinedorrelax{LaTeXraggedright}{%
+ \expandafter\let\csname ragged#1caption\endcsname\raggedright
+ }{%
+ \expandafter\let\csname ragged#1caption\endcsname\LaTeXraggedright
+ }%
+ }{%
+ \ifstr{\reserved@a}{r}{%
+ \scr@ifundefinedorrelax{LaTeXraggedleft}{%
+ \expandafter\let\csname ragged#1caption\endcsname\raggedleft
+ }{%
+ \expandafter\let\csname ragged#1caption\endcsname\LaTeXraggedleft
+ }%
+ }{%
+ \ifstr{\reserved@a}{c}{%
+ \scr@ifundefinedorrelax{LaTeXcentering}{%
+ \expandafter\let\csname ragged#1caption\endcsname\centering
+ }{%
+ \expandafter\let\csname ragged#1caption\endcsname\LaTeXcentering
+ }%
+ }{%
+ \ifstr{\reserved@a}{J}{%
+ \scr@ifundefinedorrelax{justifying}{%
+ \scr@caption@raggede@warning{J}{\justifying}%
+ \expandafter\let\csname ragged#1caption\endcsname\@empty
+ }{%
+ \expandafter\let\csname ragged#1caption\endcsname\justifying
+ }%
+ }{%
+ \ifstr{\reserved@a}{L}{%
+ \scr@ifundefinedorrelax{RaggedRight}{%
+ \scr@caption@raggede@warning{L}{\RaggedRight}%
+ \expandafter\let\csname ragged#1caption\endcsname\raggedright
+ }{%
+ \expandafter\let\csname ragged#1caption\endcsname\RaggedRight
+ }%
+ }{%
+ \ifstr{\reserved@a}{R}{%
+ \scr@ifundefinedorrelax{RaggedLeft}{%
+ \scr@caption@raggede@warning{R}{\RaggedLeft}%
+ \expandafter\let\csname ragged#1caption\endcsname\raggedleft
+ }{%
+ \expandafter\let\csname ragged#1caption\endcsname\RaggedLeft
+ }%
+ }{%
+ \ifstr{\reserved@a}{C}{%
+ \scr@ifundefinedorrelax{Centering}{%
+ \scr@caption@raggede@warning{C}{\Centering}%
+ \expandafter\let\csname ragged#1caption\endcsname\centering
+ }{%
+ \expandafter\let\csname ragged#1caption\endcsname\Centering
+ }%
+ }{%
+ \ifstr{\reserved@a}{}{%
+ \expandafter\let\csname ragged#1caption\endcsname\relax
+ }{%
+ \ClassError{\KOMAClassName}{unknown alignment char `#2'}{%
+ \string\setcaptionalignment\space supports
+ only:\MessageBreak
+ \space\space c - centered captions,\MessageBreak
+ \space\space j - justified captions,\MessageBreak
+ \space\space l - left align captions,\MessageBreak
+ \space\space r - right aligned captions,\MessageBreak
+ \space\space C - centered captions with
+ `ragged2e',\MessageBreak
+ \space\space J - justified captions with
+ `ragged2e',\MessageBreak
+ \space\space L - left align captions with
+ `ragged2e',\MessageBreak
+ \space\space R - right aligned captions with
+ `ragged2e',\MessageBreak
+ or an empty argument to remove special
+ alignment.\MessageBreak
+ If you'd continue, I'd not change the alignment.%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@caption@raggede@warning}
+% \changes{v3.25}{2017/11/15}{neu (intern)}^^A
+% Das ist die oben erwähnte Warnung.
+% \begin{macrocode}
+\newcommand*{\scr@caption@raggede@warning}[2]{%
+ \begingroup
+ \lowercase{\def\reserved@a{#1}}%
+ \ClassWarning{\KOMAClassName}{%
+ `\string#2' undefined!\MessageBreak
+ To avoid replacing caption alignment `#1' by `\reserved@a'\MessageBreak
+ you should load package `ragged2e' before using\MessageBreak
+ `\string\setcaptionalignment'%
+ }%
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macro}{\raggedcaption}
+% \changes{v3.25}{2017/11/15}{neu}^^A
+% Und natürlich wird eine Standardausrichtung benötigt. Ich bevorzuge hier die
+% leere Ausrichtung, weil \LaTeX{} \cs{relax} nicht als definiert erkennt.
+% \begin{macrocode}
+\newcommand*\raggedcaption{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}^^A \scr@caption@raggede@warning
+% \end{macro}^^A \setcaptionalignment
+% \end{macro}^^A \scr@makemultilinecaption
+% \end{macro}^^A \@@makecaption
+% \end{macro}^^A \@makecaption
+% \end{macro}^^A \caption
+%
+% \begin{macro}{\LT@makecaption}
+% \changes{v2.8j}{2001/07/30}{neu (intern)}^^A
+% \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}^^A
+% \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)}^^A
+% \begin{macro}{\LT@caption}
+% \changes{v2.8q}{2001/11/18}{neu (intern)}^^A
+% \begin{macro}{\scr@caption@before@longtable@warning}
+% \changes{v2.98c}{2008/03/03}{neu (intern)}^^A
+% 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{%
+% \end{macrocode}
+% \changes{v3.25}{2017/11/15}{\cs{@captype} auf \texttt{table} gesetzt}^^A
+% Damit \cs{raggedtablecaption} ggf. verwendet wird, wird hier \cs{@captype}
+% explizit auf \texttt{table} gesetzt.
+% \begin{macrocode}
+ \def\@captype{table}%
+ \@@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)}^^A
+% \begin{macro}{\fs@komabelow}
+% \changes{v2.8j}{2001/07/30}{neu (intern)}^^A
+% \begin{macro}{\floatc@komascript}
+% \changes{v2.8j}{2001/07/30}{neu (intern)}^^A
+% 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}^^A
+% \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}^^A
+% \begin{macro}{\captionbelowof}
+% \changes{v3.09}{2011/03/21}{Neue Anweisung}^^A
+% 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}^^A
+% 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}^^A
+% \changes{v2.8h}{2001/07/19}{\cs{caption} wird explizit zu
+% \cs{captionbelow}}^^A
+% \changes{v3.25}{2017/10/10}{Reimplementierung mit \textsf{tocbasic}}^^A
+% Zunächst werden \texttt{figure}s, also Abbildungen behandelt.
+% \begin{Counter}{figure}
+% \changes{v3.25}{2017/10/10}{Der Zähler wird implizit von
+% \cs{DeclareNewTOC} definiert.}^^A
+% \end{Counter}
+% Der ganze Rest kann mit \cs{DeclareNewTOC} erledigt werden.
+% \begin{macrocode}
+\DeclareNewTOC[%
+ type=figure,
+ float,
+%<book|report> counterwithin=chapter,
+% \end{macrocode}
+% \begin{macro}{\fps@figure}
+% Die Standardplatzierung für Abbildungen ist \emph{t}op,
+% \emph{b}ottom, \emph{p}age.
+% \begin{macrocode}
+ floatpos=tbp,
+% \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}
+ floattype=1,
+% \end{macrocode}
+% \end{macro}
+% \changes{v3.11c}{2013/03/01}{fix: one \cs{caption} change removed}^^A
+% \changes{v3.20}{2016/04/07}{Interne Umdefinierung von \cs{caption}}^^A
+% \begin{macrocode}
+ tocentryindent=1.5em,
+ tocentrynumwidth=2.3em,
+ atbegin=\def\caption{%
+ \if@figurecaptionabove\expandafter\captionabove
+ \else\expandafter\captionbelow\fi
+ }
+% \end{macrocode}
+% \begin{macro}{\ext@figure}
+% Die Extension der Datei für das Abbildungsverzeichnis.
+% \begin{macrocode}
+]{lof}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\thefigure}
+% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil}^^A
+% \begin{macrocode}
+%<*book|report>
+\renewcommand*\thefigure{%
+%<*book>
+ \expandafter\ifnum\scr@v@is@gt{2.97d}\relax
+ \if@mainmatter\thechapter.\fi
+ \else
+%</book>
+ \thechapter.%
+%<book> \fi
+ \@arabic\c@figure
+}
+%</book|report>
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fnum@figure}
+% \begin{macro}{\figureformat}
+% \changes{v2.3c}{1995/08/06}{neu}^^A
+% Die Ausgabe der Abbildungsnummer wird implizit von \cs{DeclareNewTOC} als
+% \iffalse
+%<*ignore>
+% \fi
+% \begin{macrocode}
+\newcommand*{\fnum@figure}{\figureformat}
+\newcommand*{\figureformat}{%
+ \figurename~\thefigure
+ \csname autodot\endcsname
+}
+% \end{macrocode}
+% \iffalse
+%</ignore>
+% \fi
+% definiert.
+% \end{macro}
+% \end{macro}
+% \end{environment}
+%
+%
+% \subsection{Tabellengleitumgebung}
+%
+% \begin{environment}{table}
+% \changes{v2.2c}{1995/05/25}{Tabellenausgabe auf CJK umgestellt}^^A
+% \changes{v2.8h}{2001/07/19}{bei Tabellen kann der Default für
+% \cs{caption} von Unter- auf Überschriften geändert werden}
+% \changes{v3.25}{2017/10/10}{Reimplementierung mit \textsf{tocbasic}}^^A
+% Auch verschiebbare Tabellen sind möglich. Das Prinzip ist das
+% gleiche wie bei den Abbildungen.
+% \begin{Counter}{table}
+% \changes{v3.25}{2017/10/10}{Der Zähler wird implizit von
+% \cs{DeclareNewTOC} definiert.}^^A
+% \end{Counter}
+% Der ganze Rest kann mit \cs{DeclareNewTOC} erledigt werden.
+% \begin{macrocode}
+\DeclareNewTOC[%
+ type=table,
+ float,
+%<book|report> counterwithin=chapter,
+% \end{macrocode}
+% \begin{macro}{\fps@table}
+% Die Standardplatzierung für Tabellen ist \emph{t}op,
+% \emph{b}ottom, \emph{p}age.
+% \begin{macrocode}
+ floatpos=tbp,
+% \end{macro}
+% \begin{macro}{\ftype@table}
+% Um die verschiedenen \emph{float}-Typen unterscheiden zu können,
+% benötigen sie eine Nummer. Tabellen bekommen hier willkürlich
+% die Nummer 2.
+% \begin{macrocode}
+ floattype=2,
+% \end{macrocode}
+% \end{macro}
+% \changes{v3.20}{2016/04/07}{Interne Umdefinierung von \cs{caption}}^^A
+% \begin{macrocode}
+ tocentryindent=1.5em,
+ tocentrynumwidth=2.3em,
+ atbegin=\def\caption{%
+ \if@tablecaptionabove\expandafter\captionabove
+ \else\expandafter\captionbelow\fi
+ }
+% \end{macrocode}
+% \begin{macro}{\ext@table}
+% Die Extension der Datei für das Abbildungsverzeichnis.
+% \begin{macrocode}
+]{lot}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\thetable}
+% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil}^^A
+% \begin{macrocode}
+%<*book|report>
+%<book|report>\renewcommand*\thetable{%
+%<*book>
+ \expandafter\ifnum\scr@v@is@gt{2.97d}\relax
+ \if@mainmatter\thechapter.\fi
+ \else
+%</book>
+%<book|report> \thechapter.%
+%<book> \fi
+ \@arabic\c@table
+}
+%</book|report>
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fnum@table}
+% \begin{macro}{\tableformat}
+% \changes{v2.3c}{1995/08/06}{neu}^^A
+% Die Ausgabe der Abbildungsnummer wird implizit von \cs{DeclareNewTOC} als
+% \iffalse
+%<*ignore>
+% \fi
+% \begin{macrocode}
+\newcommand*{\fnum@table}{\tableformat}
+\newcommand*{\tableformat}{%
+ \tablename~\thetable
+ \csname autodot\endcsname
+}
+% \end{macrocode}
+% \iffalse
+%</ignore>
+% \fi
+% definiert.
+% \end{macro}
+% \end{macro}
+% \end{environment}
+%
+% \iffalse
+%</!letter>
+%</class>
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-floats.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-fonts.dtx b/macros/latex/contrib/koma-script/source/scrkernel-fonts.dtx
new file mode 100644
index 0000000000..a5bc0c9828
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-fonts.dtx
@@ -0,0 +1,2251 @@
+% \CheckSum{3406}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-fonts.dtx
+% Copyright (c) Markus Kohm, 2002-2017
+%
+% 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-2017
+%
+% 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 3047 2018-12-22 15:51:54Z kohm $
+%<identify>%%% (run: identify)
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<10pt>%%% (run: 10pt)
+%<11pt>%%% (run: 11pt)
+%<11pt>%%% (run: 12pt)
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-12-22 16:51:54 +0100 (Sat, 22 Dec 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1827 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-fonts.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (font size)]
+ }%
+\reserved@a
+% \changes{v3.09}{2011/02/23}{Neues Paket \texttt{scrfontsizes}}
+%</dtx>
+%<*package&generator&identify>
+%<package&generator&identify>\ProvidesPackage{scrfontsizes}[%
+%!KOMAScriptVersion
+%<package&generator&identify> package (font size file generator)]
+%</package&generator&identify>
+%<*dtx>
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \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
+%</generator>
+% \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{%
+%<!letter> 11%
+%<letter> 12%
+}
+%</!extend>
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \end{option}
+% \end{option}
+%
+% \begin{macro}{\@pt@scan}
+% \changes{v2.6}{2000/01/04}{neu (intern)}^^A
+% \begin{macro}{\@pt@@scan}
+% \changes{v2.6}{2000/01/04}{neu (intern)}^^A
+% \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}^^A
+% 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}%
+}
+%</!extend>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@fontsizefilebase}
+% \changes{v2.96}{2006/08/11}{neu (intern)}^^A
+% \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}
+%
+% \changes{v3.17}{2015/03/10}{die Schriftgröße wird in der internen
+% Optionenliste gespeichert}^^A
+% \begin{option}{fontsize}
+% \changes{v2.96}{2006/08/11}{Funktion komplett geändert}^^A
+% \changes{v2.98c}{2008/03/26}{lädt nach Möglichkeit die zugehörige
+% Schriftgrößendatei}^^A
+% \changes{v3.12}{2013/03/05}{Status wird mit \cs{FamilyKeyStateProcessed}^^A
+% 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}%
+ }{%
+%</!extend>
+ \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}{%
+%<!extend> \noexpand\ClassInfo{\KOMAClassName}{%
+%<extend> \noexpand\PackageInfo{scrextend}{%
+ File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}%
+ }{%
+ \noexpand\InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{%
+%<!extend> \noexpand\ClassInfo{\KOMAClassName}{%
+%<extend> \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`\@
+ }%
+%<extend> \scr@ifundefinedorrelax{changefontsizes}{%
+%<extend> \expandafter\AtEndOfPackage\expandafter{\@tempa}%
+%<extend> }{%
+ \@tempa
+ }%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.%
+%<class> \KOMAClassFileName
+%<extend> scrextend.\scr@pkgextension
+ }{fontsize}{#1}%
+}
+% \end{macrocode}
+% \end{option}
+%
+% \iffalse
+%</class|extend>
+% \fi
+%
+% \iffalse
+%</option>
+%<*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
+%</generator>
+% \fi
+%
+% \subsection{Einlesen der Schriftgrößendatei}
+%
+% \changes{v2.6}{2000/01/04}{Einlesen der Schriftgrößen-Options-Datei
+% funktioniert nun mit diversen Größen}^^A
+% \changes{v2.98c}{2008/03/26}{Eigene \texttt{scrsize}-Dateien definiert}
+%
+% \iffalse
+%</body>
+%<*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@
+%</10pt>
+%<*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@
+%</11pt>
+%<*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@
+%</12pt>
+ \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}%
+%</10pt>
+%<*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}%
+%</11pt>
+%<*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}%
+%</12pt>
+ \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}%
+%</10pt>
+%<*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}%
+%</11pt>
+%<*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}%
+%</12pt>
+ \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}}
+%</10pt>
+%<*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}}
+%</11pt>
+%<*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
+%</12pt>
+\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@}
+%</10pt>
+%<*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@}
+%</11pt>
+%<*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@}
+%</12pt>
+% \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@}
+%</10pt>
+%<*11pt>
+ \parsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \topsep 9\p@ \@plus3\p@ \@minus5\p@
+ \itemsep4.5\p@ \@plus2\p@ \@minus\p@}
+%</11pt>
+%<*12pt>
+ \parsep 5\p@ \@plus2.5\p@ \@minus\p@
+ \topsep 10\p@ \@plus4\p@ \@minus6\p@
+ \itemsep5\p@ \@plus2.5\p@ \@minus\p@}
+%</12pt>
+\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@
+%</10pt>
+%<*11pt>
+ \topsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+%</11pt>
+%<*12pt>
+ \topsep 5\p@ \@plus2.5\p@ \@minus\p@
+ \parsep 2.5\p@ \@plus\p@ \@minus\p@
+%</12pt>
+ \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
+%</10pt|11pt|12pt>
+%<*body>
+% \fi
+%
+% \iffalse
+%<*class|extend>
+% \fi
+%
+% \begin{macro}{\changefontsizes}
+% \changes{v2.96}{2006/08/11}{neue Anweisung (benötigt \eTeX)}^^A
+% \changes{v3.08b}{2011/02/22}{drei falsche \cs{def} durch \cs{edef}
+% ersetzt}^^A
+% \changes{v3.17}{2015/02/23}{wird nur definiert, wenn nicht vorhanden}^^A
+% \begin{macro}{\simple@changefontsizes}
+% \changes{v3.17}{2015/02/23}{auf speziellen Wunsch von Falk}^^A
+% \changes{v3.17}{2015/03/25}{\cs{par@updaterelative} hinzugefügt}^^A
+% 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]{%
+ \expandafter\ifnum\scr@v@is@lt{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}
+% \changes{v3.17}{2015/03/10}{e-\TeX-Warnung entfernt}^^A
+% \begin{macrocode}
+\providecommand*{\simple@changefontsizes}[2][1.2\@tempdima]{%
+ \KOMA@kav@removekey{.%
+%<class> \KOMAClassFileName
+%<extend> scrextend.\scr@pkgextension
+ }{fontsize}%
+ \@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}
+ \expandafter\ifnum\scr@v@is@lt{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}%
+ \expandafter\ifnum\scr@v@is@lt{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}%
+ \expandafter\ifnum\scr@v@is@lt{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
+%<!extend> \expandafter\ifnum\scr@v@is@ge{3.17}\@nameuse{par@updaterelative}\fi
+% \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}
+ \expandafter\ifnum\scr@v@is@lt{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}
+ \expandafter\ifnum\scr@v@is@lt{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}
+ \expandafter\ifnum\scr@v@is@lt{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}
+ \expandafter\ifnum\scr@v@is@lt{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}
+ \expandafter\ifnum\scr@v@is@lt{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}
+ \expandafter\ifnum\scr@v@is@lt{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}
+ \expandafter\ifnum\scr@v@is@lt{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
+}
+\scr@ifundefinedorrelax{changefontsizes}{%
+ \let\changefontsizes\simple@changefontsizes
+}{%
+%<class> \ClassWarning{\KOMAClassName}{%
+%<package&extend> \PackageWarning{scrextend}{%
+ \string\changefontsizes\space already defined.\MessageBreak
+ I hope, the definition is compatible,\MessageBreak
+ because I do not change it%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \simple@changefontsizes
+% \end{macro}^^A \changefontsizes
+% \iffalse
+%</class|extend>
+%<*generator>
+% \fi
+% \begin{macro}{\generatefontfile}
+% \changes{v3.09}{2011/02/23}{Neu}^^A
+% \changes{v3.17}{2015/03/26}{\cs{par@updaterelative} added}^^A
+% 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<fontsize>.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}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% 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}
+ \kernel@ifnextchar [{\@generatefontfile{#1}}{\@@generatefontfile{#1}}%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\@generatefontfile}
+% \changes{v3.09}{2011/02/23}{Neu (intern)}^^A
+% \begin{macro}{\@@generatefontfile}
+% \changes{v3.09}{2011/02/23}{Neu (intern)}^^A
+% 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)}^^A
+% 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)}^^A
+% 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)}^^A
+% \changes{v3.16a}{2015/02/11}{\cs{footnotesize} korrigiert}
+% 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.\scr@pkgextension\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\footnotesize{\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%
+ \string\expandafter\string\ifnum\string\scr@v@is@ge{3.17}%
+ \string\par@updaterelative\string\fi^^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
+%</generator>
+%<*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}%
+ \KOMA@kav@removekey{.\KOMAClassFileName}{fontsize}%
+ \KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempa}%
+}{%
+ \InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{%
+ \ClassInfo{\KOMAClassName}{%
+ File `\@fontsizefilebase\@tempb pt.clo' used instead of\MessageBreak
+ file `\@fontsizefilebase\@tempa.clo' to setup font sizes}%
+ \KOMA@kav@removekey{.\KOMAClassFileName}{fontsize}%
+ \KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempb pt}%
+ }{%
+% \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}%
+ \KOMA@kav@removekey{.\KOMAClassFileName}{fontsize}%
+ \KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempb}%
+ }{%
+%</book>
+ \InputIfFileExists{size\@tempb.clo}{%
+ \ClassInfo{\KOMAClassName}{%
+ File `size\@tempb.clo' used to setup font sizes}%
+ \KOMA@kav@removekey{.\KOMAClassFileName}{fontsize}%
+ \KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempb}%
+ }{%
+% \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}
+ \edef\@tempa{%
+ \noexpand\changefontsizes{\@tempa}%
+ \noexpand\KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempa}%
+ }\@tempa
+% \end{macrocode}
+% Damit sollten nun die Schriftgrößen eingestellt sein.
+% \begin{macrocode}
+ }%
+%<book> }%
+ }%
+}
+%</!extend>
+%</class|extend>
+%</body>
+% \end{macrocode}
+%
+%
+% \subsection{"`Alte"' Font-Auswahlbefehle}
+%
+% \begin{option}{enabledeprecatedfontcommands}
+% \changes{v3.20}{2015/10/14}{neue (veraltete) Option}^^A
+% Diese Option ist bereits bei ihrer Definition veraltet. Sie stellt quasi die
+% nächste Eskalation für die veralteten Font-Auswahlbefehle dar. Man kann mit
+% ihrer Hilfe notfalls noch einmal die alten Befehle zurück holen. Dabei wird
+% in der Voreinstellung weiterhin eine Warnung ausgegeben.
+% \begin{macro}{\scr@defineobsoletefonts}
+% \changes{v3.20}{2015/10/14}{neue (veraltete) Anweisung (intern)}^^A
+% Über diese Anweisung wird eingestellt, ob die veralteten Befehle mit
+% Fehlermeldung, Warnung, Info oder gar nicht gemeldet werden.
+% Negative Werte bedeuten, dass die Befehle nicht definiert werden. Null steht
+% für interne Fehlermeldung. Eins ist eine Warnung. Zwei ist eine Info und
+% darüber hinaus werden die Befehle einfach definiert. Voreingestellt ist
+% derzeit noch Null. In naher Zukunft wird das aber -1 werden.
+% \begin{macrocode}
+%<*option>
+%<*class>
+\DeclareOption{enabledeprecatedfontcommands}{%
+ \ClassWarningNoLine{\KOMAClassName}{%
+ deprecated option `enabledeprecatedfontcommands'.\MessageBreak
+ Note, that this option was already depreacted when\MessageBreak
+ it has been defined. Support for old font commands\MessageBreak
+ has been removed from KOMA-Script more than one\MessageBreak
+ decade ago. It is not recommended to use them any\MessageBreak
+ longer. Therefore usage of this class option also\MessageBreak
+ is not recommended%
+ }%
+ \let\scr@defineobsoletefonts\@ne
+}
+\scr@ifundefinedorrelax{scr@defineobsoletefonts}{%
+ \let\scr@defineobsoletefonts\z@
+}{}
+\BeforePackage{tex4ht}{%
+ \let\scr@defineobsoletefonts\thr@@
+}
+%</class>
+%</option>
+% \end{macrocode}
+% \end{macro}^^A \scr@degineobsoletefonts
+% \end{option}^^A enabledeprecatedfontscommands
+%
+% \begin{macro}{\scr@DeclareOldFontCommand}
+% \changes{v3.12}{2013/10/31}{neu}^^A
+% \changes{v3.20}{2015/10/14}{veraltet eskaliert}^^A
+% 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}
+%<*body>
+%<*class|extend>
+%<*!extend>
+\newcommand*{\scr@DeclareOldFontCommand}[3]{%
+ \ifnum\scr@defineobsoletefonts<\z@\else
+ \ifnum\scr@defineobsoletefonts>\tw@
+ \DeclareOldFontCommand{#1}{#2}{#3}%
+ \else
+ \DeclareOldFontCommand{#1}{%
+ \scr@ErrorWarningInfo{#1}{#2}#2%
+ }{%
+ \scr@ErrorWarningInfo{#1}{#3}#3%
+ }%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ErrorWarningInfo}
+% \changes{v3.20}{2015/10/14}{neu (intern)}^^A
+% \changes{v3.22}{2016/09/28}{message fixed}^^A
+% \begin{macrocode}
+\DeclareRobustCommand*{\scr@ErrorWarningInfo}[2]{%
+% \end{macrocode}
+% Wenn \cs{scr@defineobsoletefonts} Null ist, wird eine Fehlermeldung
+% ausgegeben.
+% \begin{macrocode}
+ \ifnum \scr@defineobsoletefonts=\z@
+ \ClassError{\KOMAClassName}{undefined old font command `\string#1'}{%
+ You should note that since 1994 LaTeX2e provides a new font selection
+ scheme\MessageBreak
+ called NFSS2 with several new, combinable font commands.
+ KOMA-Script\MessageBreak
+ classes had defined the old font commands like `\string#1'
+ only for compatibility\MessageBreak
+ with old LaTeX 2.09 document styles of Script 2.0. Nevertheless,
+ these\MessageBreak
+ commands are deprecated and undocumented at least since 2003. Since
+ 2013\MessageBreak
+ KOMA-Script classes warned about soon removement of these deprecated
+ commands.\MessageBreak
+ Now, after two decades of LaTeX2e and NFSS2, these commands will not
+ work any\MessageBreak
+ more. If loading a package results in this error message, you should
+ contact\MessageBreak
+ the author of that package and ask him to replace the deprecated font
+ command\MessageBreak
+ `\string#1', e.g., by `\detokenize{#2}`. Otherwise you should
+ reconfigure\MessageBreak
+ or replace the package. If you have used the old font command
+ `\string#1' yourself,\MessageBreak
+ you should replace it, e.g., by `\detokenize{#2}'.\MessageBreak
+ To make it work for now, you can use the already also deprecated class
+ option\MessageBreak
+ `enabledeprecatedfontcommands'.%
+ }%
+ \else
+ \ifcase \scr@defineobsoletefonts
+% \end{macrocode}
+% Bei Eins gibt es eine Warnung:
+% \begin{macrocode}
+ \or
+ \expandafter\ClassWarning
+% \end{macrocode}
+% Bei Zwei gibt es eine Info:
+% \begin{macrocode}
+ \or
+ \expandafter\ClassInfo
+% \end{macrocode}
+% Sonst gibt es nichts:
+% \begin{macrocode}
+ \else
+ \expandafter\@gobbletwo
+ \fi
+ {\KOMAClassName}{deprecated old font command `\string#1' used.\MessageBreak
+ You should note, that since 1994 LaTeX2e provides a\MessageBreak
+ new font selection scheme called NFSS2 with several\MessageBreak
+ new, combinable font commands. New KOMA-Script classes\MessageBreak
+ defined the old font commands like `\string#1' only for\MessageBreak
+ compatibility with LaTeX 2.09 document styles of\MessageBreak
+ Script 2.0. These commands are deprecated and\MessageBreak
+ undocumented at least since 2003. Since 2013,\MessageBreak
+ KOMA-Script classes warned about soon removement of\MessageBreak
+ these deprecated commands. Now, after two decades of\MessageBreak
+ LaTeX2e, NFSS2, and KOMA-Script these commands will\MessageBreak
+ not work any longer. If loading a package results in\MessageBreak
+ this message you should contact the author of that\MessageBreak
+ package and ask him to replace the depracted font\MessageBreak
+ command `\string#1', e.g., by `\detokenize{#2}'.\MessageBreak
+ Otherwise you should reconfigure or replace the\MessageBreak
+ package. If you have used the old font command\MessageBreak
+ `\string #1' yourself you should replace it, e.g., by\MessageBreak
+ `\detokenize{#2}'%
+ }%
+ \fi
+}
+%</!extend>
+% \end{macrocode}
+% \end{macro}^^A \scr@OldFontErrorWarningInfo
+% \end{macro}^^A \scr@DeclareOldFontCommand
+%
+% \begin{macro}{\rm}
+% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}^^A
+% \begin{macro}{\sf}
+% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}^^A
+% \begin{macro}{\tt}
+% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}^^A
+% \begin{macro}{\bf}
+% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}^^A
+% \begin{macro}{\it}
+% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}^^A
+% \begin{macro}{\sl}
+% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}^^A
+% \begin{macro}{\sc}
+% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}^^A
+% \begin{macro}{\sfb}
+% \changes{v2.2c}{1995/05/25}{nicht mehr mathematisch}^^A
+% \changes{v2.3a}{1995/07/08}{keine Unterscheidung mehr für den
+% Kompatibilitätsmodus}^^A
+% \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}^^A
+% 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}
+%</!extend>
+% \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}^^A
+% 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}^^A
+% \begin{macro}{\mit}
+% \changes{v2.3}{1995/06/25}{hier statt im \LaTeX-Kern}^^A
+% 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}^^A
+%
+% 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}
+%</!extend>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%</class|extend>
+% \fi
+%
+% \subsection{Setzen der Schrift eines Elements}
+%
+% \iffalse
+%<*scrkbase>
+% \fi
+%
+% \begin{macro}{\IfExistskomafont}
+% \changes{v3.15}{2014/11/21}{neue Anweisung}^^A
+% Führe das zweite Argument aus, wenn ein Fontelement existiert, sonst das
+% dritte.
+% \begin{macrocode}
+\newcommand*{\IfExistskomafont}[1]{%
+ \scr@ifundefinedorrelax{scr@fnt@#1}{%
+ \scr@ifundefinedorrelax{scr@fnt@instead@#1}{\@secondoftwo}{\@firstoftwo}%
+ }{%
+ \@firstoftwo
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IfIsAliaskomafont}
+% \changes{v3.25}{2017/12/08}{neue Anweisung}^^A
+% Führe das zweite Argument aus, wenn ein Fontelement ein Alias is, sonst das
+% dritte.
+% \begin{macrocode}
+\newcommand*{\IfIsAliaskomafont}[1]{%
+ \scr@ifundefinedorrelax{scr@fnt@#1}{%
+ \scr@ifundefinedorrelax{scr@fnt@instead@#1}{\@secondoftwo}{\@firstoftwo}%
+ }{%
+ \@secondoftwo
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setkomafont}
+% \changes{v2.8o}{2001/09/14}{neu}^^A
+% \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}^^A
+% \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}^^A
+% \changes{v2.96}{2006/08/18}{Benutzung eines Fontalias korrigiert}^^A
+% \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}^^A
+% \changes{v3.17}{2015/04/03}{robustere Neuimplementierung}^^A
+% \changes{v3.24}{2017/05/06}{robustere Neuimplementierung}^^A
+% \begin{macro}{\usefamilyofkomafont}
+% \changes{v3.12}{2013/03/30}{neu}^^A
+% \changes{v3.17}{2015/04/03}{basiert auf robusterer Neuimplementierung}^^A
+% \changes{v3.24}{2017/05/06}{basiert auf robusterer Neuimplementierung}^^A
+% \begin{macro}{\useseriesofkomafont}
+% \changes{v3.12}{2013/03/30}{neu}^^A
+% \changes{v3.17}{2015/04/03}{basiert auf robusterer Neuimplementierung}^^A
+% \changes{v3.24}{2017/05/06}{basiert auf robusterer Neuimplementierung}^^A
+% \begin{macro}{\useshapeofkomafont}
+% \changes{v3.12}{2013/03/30}{neu}^^A
+% \changes{v3.16a}{2015/02/20}{Makroname korrigiert}^^A
+% \changes{v3.17}{2015/04/03}{basiert auf robusterer Neuimplementierung}^^A
+% \changes{v3.24}{2017/05/06}{basiert auf robusterer Neuimplementierung}^^A
+% \begin{macro}{\useencodingofkomafont}
+% \changes{v3.12}{2013/03/30}{neu}^^A
+% \changes{v3.17}{2015/04/03}{basiert auf robusterer Neuimplementierung}^^A
+% \changes{v3.24}{2017/05/06}{basiert auf robusterer Neuimplementierung}^^A
+% \begin{macro}{\usefontofkomafont}
+% \changes{v3.12}{2013/03/30}{neu}^^A
+% \changes{v3.17}{2015/04/03}{robustere Neuimplementierung}^^A
+% \changes{v3.24}{2017/05/06}{robustere Neuimplementierung}^^A
+% 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
+ \scr@prepareforkomafont
+ \def\selectfont{%
+ \global\let\g@scr@f@size\f@size
+ \global\let\g@scr@f@baselineskip\f@baselineskip
+ \global\let\g@scr@f@linespread\f@linespread
+ }%
+ \selectfont
+ \sbox\@tempboxa{%
+ \usekomafont{#1}{\relax}%
+ }%
+ \endgroup
+ \linespread{\g@scr@f@linespread}%
+ \fontsize{\g@scr@f@size}{\g@scr@f@baselineskip}%
+ \selectfont
+}
+\newcommand*{\usefamilyofkomafont}{\use@ofkomafont{family}}
+\newcommand*{\useseriesofkomafont}{\use@ofkomafont{series}}
+\newcommand*{\useshapeofkomafont}{\use@ofkomafont{shape}}
+\newcommand*{\useencodingofkomafont}{\use@ofkomafont{encoding}}
+\newcommand*{\usefontofkomafont}[1]{%
+ \begingroup
+ \scr@prepareforkomafont
+ \def\selectfont{%
+ \global\let\g@scr@f@encoding\f@encoding
+ \global\let\g@scr@f@family\f@family
+ \global\let\g@scr@f@series\f@series
+ \global\let\g@scr@f@shape\f@shape
+ \global\let\g@scr@f@size\f@size
+ \global\let\g@scr@f@baselineskip\f@baselineskip
+ \global\let\g@scr@f@linespread\f@linespread
+ }%
+ \selectfont
+ \sbox\@tempboxa{%
+ \usekomafont{#1}{\relax}%
+ }%
+ \endgroup
+ \linespread{\g@scr@f@linespread}%
+ \fontsize{\g@scr@f@size}{\g@scr@f@baselineskip}%
+ \usefont{\g@scr@f@encoding}{\g@scr@f@family}{\g@scr@f@series}{\g@scr@f@shape}%
+}
+% \end{macrocode}
+% \begin{macro}{\use@ofkomafont}
+% \changes{v3.12}{2013/03/30}{neu (intern)}^^A
+% \changes{v3.17}{2015/04/03}{robustere Neuimplementierung}^^A
+% \changes{v3.24}{2017/05/06}{robustere Neuimplementierung}^^A
+% Kleines Hilfsmakro für all diese Anweisungen bis auf die erste und die letzte.
+% \begin{macrocode}
+\newcommand*{\use@ofkomafont}[2]{%
+ \begingroup
+ \scr@prepareforkomafont
+ \def\selectfont{%
+ \global\expandafter\let\csname g@scr@f@#1\expandafter\endcsname
+ \csname f@#1\endcsname
+ }%
+ \selectfont
+ \sbox\@tempboxa{%
+ \usekomafont{#2}{\relax}%
+ }%
+ \endgroup
+ \@nameuse{font#1}{\csname g@scr@f@#1\endcsname}%
+ \selectfont
+}
+% \end{macrocode}
+% \begin{macro}{\g@scr@usefont}
+% \changes{v3.17}{2015/04/03}{neu (intern)}^^A
+% \changes{v3.24}{2017/05/06}{entfernt}^^A
+% \end{macro}^^A \g@scr@usefont
+% \begin{macro}{\g@scr@f@encoding}
+% \changes{v3.24}{2017/05/06}{neu (intern)}^^A
+% \begin{macro}{\g@scr@f@family}
+% \changes{v3.24}{2017/05/06}{neu (intern)}^^A
+% \begin{macro}{\g@scr@f@series}
+% \changes{v3.24}{2017/05/06}{neu (intern)}^^A
+% \begin{macro}{\g@scr@f@shape}
+% \changes{v3.24}{2017/05/06}{neu (intern)}^^A
+% \begin{macro}{\g@scr@f@size}
+% \changes{v3.24}{2017/05/06}{neu (intern)}^^A
+% \begin{macro}{\g@scr@f@baselineskip}
+% \changes{v3.24}{2017/05/06}{neu (intern)}^^A
+% \begin{macro}{\g@scr@f@linespread}
+% \changes{v3.24}{2017/05/06}{neu (intern)}^^A
+% \begin{macrocode}
+\newcommand*{\g@scr@f@encoding}{}\let\g@scr@f@encoding\f@encoding
+\newcommand*{\g@scr@f@family}{}\let\g@scr@f@family\f@family
+\newcommand*{\g@scr@f@series}{}\let\g@scr@f@series\f@series
+\newcommand*{\g@scr@f@shape}{}\let\g@scr@f@shape\f@shape
+\newcommand*{\g@scr@f@size}{}\let\g@scr@f@size\f@size
+\newcommand*{\g@scr@f@baselineskip}{}\let\g@scr@f@baselineskip\f@baselineskip
+\newcommand*{\g@scr@f@linespread}{}\let\g@scr@f@linespread\f@linespread
+% \end{macrocode}
+% \end{macro}^^A \g@scr@f@linespread
+% \end{macro}^^A \g@scr@f@family
+% \end{macro}^^A \g@scr@f@series
+% \end{macro}^^A \g@scr@f@shape
+% \end{macro}^^A \g@scr@f@size
+% \end{macro}^^A \g@scr@f@baselineskip
+% \end{macro}^^A \g@scr@f@linespread
+% \begin{macro}{\scr@komafontrelaxlist}
+% \changes{v3.17}{2015/04/03}{neu (intern)}^^A
+% \changes{v3.24}{2017/05/05}{\cs{uppercase} und \cs{lowercase} entfernt}^^A
+% \changes{v3.24}{2017/05/05}{\cs{MakeUppercase} und \cs{MakeLowercase} nach
+% \cs{scr@komafontonearglist} verschoben}^^A
+% Hilfsmakro mit einer |\do|-Liste aller Makros, die in obigen Font-Makros vor
+% der Anwendung des Fonts |\relax| verwenden sollen.
+% \begin{macrocode}
+\newcommand*{\scr@komafontrelaxlist}{%
+ \do\normalcolor
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@komafontrelaxlist
+% \begin{macro}{scr@komafontgobblelist}
+% \changes{v3.19}{2015/08/20}{neu (intern)}^^A
+% Wie \cs{scr@komafontrelaxlist} nur dass |\@gobble| statt |\relax| verwendet
+% wird.
+% \begin{macrocode}
+\newcommand*{\scr@komafontgobblelist}{%
+ \do\color
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@komafontgobblelist
+% \begin{macro}{\scr@komafontonearglist}
+% \changes{v3.24}{2017/05/05}{neu (intern)}^^A
+% Hilfsmakro mit einer |\do|-Liste aller Makros, die in obige Font-Makros
+% vor der Anwendung des Fonts |\@firstofone| verwenden sollen.
+% \begin{macrocode}
+\newcommand*{\scr@komafontonearglist}{%
+ \do\MakeUppercase \do\MakeLowercase
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\scr@prepareforkomafont}
+% \changes{v3.17}{2015/04/03}{neu (intern)}^^A
+% \changes{v3.19}{2015/08/20}{abarbeiten von \cs{scr@komafontgobblelist}}^^A
+% \changes{v3.24}{2017/05/05}{abarbeiten von \cs{scr@komafontonearglist}}^^A
+% Hilfsmakro, das die Vorbereitungen für die obigen Font-Makros trifft. In der
+% Voreinstellung ist das lediglich die Anwendung der |\do|-Liste, so dass die
+% dort angegebenen Makros alle |\relax| bzw. |\@gobble| werden. Da die
+% Anweisung dazu |\do| umdefiniert, sollte die Anweisung immer in einer Gruppe
+% eingeschlossen werden.
+% \begin{macrocode}
+\newcommand*{\scr@prepareforkomafont}{%
+ \long\def\do##1{\let##1\relax}\scr@komafontrelaxlist
+ \long\def\do##1{\let##1\@gobble}\scr@komafontgobblelist
+ \long\def\do##1{\let##1\@firstofone}\scr@komafontonearglist
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@prepareforkomafont
+% \begin{macro}{\addtokomafontrelaxlist}
+% \changes{v3.17}{2015/04/03}{Neu}
+% Diese Anweisung erlaubt es genau ein Makro der obigen |\do|-Liste
+% hinzuzufügen.
+% \begin{macrocode}
+\newcommand*{\addtokomafontrelaxlist}[1]{%
+ \l@addto@macro\scr@komafontrelaxlist{\do#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \addtokomafontrelaxlist
+% \begin{macro}{\addtokomafontgobblelist}
+% \changes{v3.19}{2015/08/20}{Neu}
+% Diese Anweisung erlaubt es genau ein Makro der obigen |\do|-Liste
+% hinzuzufügen.
+% \begin{macrocode}
+\newcommand*{\addtokomafontgobblelist}[1]{%
+ \l@addto@macro\scr@komafontgobblelist{\do#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \addtokomafontgobblelist
+% \begin{macro}{\addtokomafontonearglist}
+% \changes{v3.24}{2017/05/05}{Neu}
+% Diese Anweisung erlaubt es genau ein Makro der obigen |\do|-Liste
+% hinzuzufügen
+% \begin{macrocode}
+\newcommand*{\addtokomafontonearglist}[1]{%
+ \l@addto@macro\scr@komafontonearglist{\do#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \addtokonafontonearglist
+% \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}^^A
+% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben}
+% \changes{v3.11c}{2013/02/18}{die Warnung hat ein Argument}^^A
+% \changes{v3.25}{2017/12/08}{Warnung, wenn bereits als Alias definiert}^^A
+% 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]{%
+ \scr@ifundefinedorrelax{scr@fnt@instead@#2}{}{%
+ \PackageWarning{scrkbase}{%
+ Making stand-alone element `#2' from\MessageBreak
+ alias to `\@nameuse{scr@fnt@instead@#2}'
+ }%
+ \expandafter\let\csname scr@fnt@instead@#2\endcsname\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}^^A
+% \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben}^^A
+% \changes{v3.25}{2017/12/08}{Warnung, wenn bereits als Font definiert}^^A
+% Mit \cs{aliaskomafont} wird hingegen einfach ein Alias definiert. Dieser
+% Befehl kennt zwei Argumente: der Name des Elements und der Names des
+% Elements, das stattdessen verwendet werden soll.
+% \begin{macrocode}
+\newcommand*{\aliaskomafont}[2]{%
+ \scr@ifundefinedorrelax{scr@fnt@#1}{}{%
+ \PackageWarning{scrkbase}{%
+ Redefining stand alone element `#1' as\MessageBreak
+ alias to `#2'%
+ }
+ \expandafter\let\csname scr@fnt@#1\endcsname\relax
+ }%
+ \scr@ifundefinedorrelax{scr@fnt@wrn@#1}{}{%
+ \expandafter\let\csname scr@fnt@wrn@#1\encsname\relax
+ }
+ \expandafter\newcommand\expandafter*\csname scr@fnt@instead@#1\endcsname{%
+ #2%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%</scrkbase>
+% \fi
+%
+% \iffalse
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-fonts.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-footnotes.dtx b/macros/latex/contrib/koma-script/source/scrkernel-footnotes.dtx
new file mode 100644
index 0000000000..8c06f3c78b
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-footnotes.dtx
@@ -0,0 +1,695 @@
+% \CheckSum{476}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-footnotes.dtx
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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-2018
+%
+% 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 2979 2018-04-17 06:01:18Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-04-17 08:01:18 +0200 (Tue, 17 Apr 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1962 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-footnotes.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (footnotes)]
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \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}^^A
+% \changes{v3.10}{2011/09/13}{\cs{let} durch \cs{def} ersetzt, damit die
+% Option auch als Klassenoption funktioniert}^^A
+% \changes{v3.12}{2013/03/05}{Status-Signalisierung mit
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.17}{2015/03/11}{interne Wert-Speicherung}^^A
+% 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
+%<class> \ClassWarning{\KOMAClassName}{%
+%<package> \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
+ \KOMA@kav@replacevalue{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{footnotes}{multiple}%
+ }{%
+ \ifstr{#1}{nomultiple}{%
+ \let\@footnotemark\scr@saved@footnotemark
+ \let\FN@mf@prepare\relax
+ \let\scr@footmisc@options\@empty
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{footnotes}{nomultiple}%
+ }{%
+ \KOMA@unknown@keyval{footnotes}{#1}{`multiple' and `nomultiple'}%
+ }%
+ }%
+}
+\AtBeginDocument{%
+ \ifx\@footnotemark\scr@saved@footnotemark
+ \KOMA@kav@removekey{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{footnotes}%
+ \KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{footnotes}{nomultiple}%
+ \else\ifx\@footnotemark\scr@footnotemark
+ \KOMA@kav@removekey{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{footnotes}%
+ \KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{footnotes}{multiple}%
+ \fi\fi
+}
+% \end{macrocode}
+% \begin{macro}{\scr@footmisc@options}
+% \changes{v2.98c}{2008/02/14}{Neuer (intern)}^^A
+% 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)}^^A
+% \begin{macro}{\scr@footnotemark}
+% \changes{v2.98c}{2008/02/01}{Neu (intern)}^^A
+% \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
+%</option>
+%<*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}^^A
+% \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)}^^A
+% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}^^A
+% 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}
+% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}^^A
+% 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)}^^A
+% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}^^A
+% 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)}^^A
+% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}^^A
+% 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}^^A
+% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}^^A
+% 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
+}
+%</class>
+% \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}
+%<book|report>\@addtoreset{footnote}{chapter}
+% \end{macrocode}
+% \end{Counter}
+%
+% \begin{macro}{\deffootnote}
+% \changes{v2.4l}{1997/02/06}{neu}^^A
+% \changes{v2.95}{2002/07/09}{Absatzeinzug korrigiert}^^A
+% \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}^^A
+% \changes{v3.22}{2017/01/03}{Neuimplementierung}^^A
+% \changes{v3.23}{2017/03/27}{neues \cs{raggedfootnote} eingefügt}^^A
+% 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][]{%
+ \expandafter\ifnum\scr@v@is@ge{3.22}\relax
+ \long\def\@makefntext##1{%
+ \raggedfootnote
+ \leftskip #2
+ \l@addto@macro\@trivlist{%
+ \ifnum\@listdepth=\@ne\advance\leftmargin #2\relax\fi
+ }%
+ \parindent #3\noindent
+ \IfArgIsEmpty{#1}{}{%
+ \hskip \dimexpr #1-#2\relax
+ }%
+ \ftn@font\hbox to \z@{\hss\@@makefnmark}##1%
+ }%
+ \else
+%<class> \ClassInfo{\KOMAClassName}{%
+%<package> \PackageInfo{scrextend}{%
+ Using old \string\@makefntext\space due to compatibility
+ level\MessageBreak
+ less than 3.22}%
+ \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%
+ }%
+ \fi
+% \end{macrocode}
+% \begin{macro}{\@@makefnmark}
+% \changes{v2.4l}{1997/02/06}{neu}^^A
+% 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}^^A \@@makefnmark
+%
+% \begin{macro}{\raggedfootnote}
+% \changes{v3.23}{2017/03/27}{neue Anweisung}
+% Auf Wunsch von Falk kann man die Ausrichtrung des Fußnotentextes damit
+% beeinflussen. Die Voreinstellung ist leer also keine Änderung der
+% Ausrichtung.
+% \begin{macrocode}
+\newcommand*{\raggedfootnote}{}
+% \end{macrocode}
+% \end{macro}^^A \raggedfootnote
+%
+% \begin{macro}{\ftn@font}
+% \changes{v2.8q}{2001/11/16}{neu (intern)}^^A
+% \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)}^^A
+% \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 bei letzteren 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}^^A
+% 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)}^^A
+% \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)}^^A
+% Dafür sorgen, dass hier ggf. der Trenner eingefügt wird.
+% \begin{macrocode}
+%<package>\providecommand*{\FN@mf@check}{%
+%<class>\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)}^^A
+% 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)}^^A
+% \changes{v3.25a}{2018/04/17}{Definition wird explizit vorgenommen}^^A
+% 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}{\let\FN@mf@prepare\relax}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@footnotetext}
+% \changes{v3.01a}{2008/11/22}{long}^^A
+% \begin{macro}{\scr@saved@footnotetext}
+% \changes{v2.98c}{2008/02/01}{Neu (intern)}^^A
+% \changes{v3.01a}{2008/11/22}{long}^^A
+% 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}^^A
+% 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}^^A
+% Und hier \textsf{footmisc}-kompatibel unformatiert
+% \begin{macrocode}
+%<class>\newcommand*{\multfootsep}{,}
+%<package>\providecommand*{\multfootsep}{,}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\multiplefootnotemarker}
+% \changes{v2.98c}{2008/02/01}{Neu}^^A
+% \changes{v3.19}{2015/08/24}{im Paket mit \cs{providecommand} definieren}^^A
+% Das Markierungskerning wieder \textsf{footmisc}-kompatibel.
+% \begin{macrocode}
+%<class>\newcommand*{\multiplefootnotemarker}{3sp}
+%<package>\providecommand*{\multiplefootnotemarker}{3sp}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\thefootnotemark}
+% \changes{v2.4l}{1997/02/06}{neu}^^A
+% Makro, damit \cs{@thefnmark} auf Anwenderebene verfügbar wird:
+% \begin{macrocode}
+%<class>\newcommand*{\thefootnotemark}{\@thefnmark}
+%<package>\providecommand*{\thefootnotemark}{\@thefnmark}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v2.4l}{1997/02/06}{Verwendung der neuen Makros zur
+% Fußnotengestaltgebung}^^A
+% \begin{macro}{\@makefnmark}
+% \changes{v3.10}{2011/09/27}{\textsf{scrextend} redefines \cs{@makefnmark}
+% to use \cs{thefootnotemark}}^^A
+% \begin{macrocode}
+%<*class>
+\deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}}
+%</class>
+%<*package>
+\def\reserved@a{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
+\ifx\reserved@a\@makefnmark
+%</package>
+\deffootnotemark{\textsuperscript{\thefootnotemark}}
+%<*package>
+\else
+ \IfFileExists{etoolbox.\@pkgextension}{%
+ \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
+%</package>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Fußnotenreferenz}
+%
+% \begin{macro}{\footref}
+% \changes{v2.98c}{2008/02/01}{Neue Anweisung}^^A
+% 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}
+%<class>\newcommand*{\footref}[1]{%
+%<package>\providecommand*{\footref}[1]{%
+ \begingroup
+ \unrestored@protected@xdef\@thefnmark{\ref{#1}}%
+ \endgroup
+ \@footnotemark
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-footnotes.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-index.dtx b/macros/latex/contrib/koma-script/source/scrkernel-index.dtx
new file mode 100644
index 0000000000..d3e9cdd4c0
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-index.dtx
@@ -0,0 +1,449 @@
+% \CheckSum{242}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-index.dtx
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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-2018
+%
+% 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 3016 2018-09-03 11:40:59Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-09-03 13:40:59 +0200 (Mon, 03 Sep 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1872 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-index.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (index)]%
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \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)}^^A
+% \changes{v3.18}{2015/06/15}{Beachtung von \texttt{leveldown}}^^A
+% 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}{%
+ \ifidx@leveldown
+%<article> \expandafter\subsection
+%<book|report> \expandafter\section
+ \else
+%<article> \expandafter\section
+%<book|report> \expandafter\chapter
+ \fi*%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Optionen für den Index}
+%
+% \begin{option}{index}
+% \changes{v2.98c}{2008/03/04}{Neue Option}^^A
+% \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}^^A
+% \changes{v3.18}{2015/06/15}{neuer Wert \texttt{numbered}}^^A
+% \changes{v3.18}{2015/06/15}{neuer Wert \texttt{leveldown}}^^A
+% \changes{v3.18}{2015/06/15}{neuer Wert \texttt{standardlevel}}^^A
+% \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}^^A
+% \changes{v2.4g}{1996/11/04}{Index auch bei \textsf{scrartcl}^^A
+% wieder zweispaltig}
+% \changes{v2.6c}{2000/06/10}{im Index kann nach der Überschrift
+% eine Präambel gesetzt werden}^^A
+% \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}
+% \changes{v3.18}{2015/06/15}{Beachtung von \texttt{leveldown}}^^A
+% 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{macro}{\ifidx@leveldown}
+% \changes{v3.18}{2015/06/15}{neuer Schalter (intern)}^^A
+% Für den ab Version~3.18neuen Wert \texttt{leveldown} und dessen
+% Gegenstück \texttt{standardlevel} wird außerdem ein Schalter benötigt.
+% \begin{macrocode}
+\newif\ifidx@leveldown
+\KOMA@key{index}{%
+ \KOMA@set@ncmdkey{index}{@tempa}{%
+ {notoc}{0},{nottotoc}{0},{default}{0},{plainheading}{0},%
+ {totoc}{1},{toc}{1},{notnumbered}{1},%
+ {numbered}{2},{totocnumbered}{2},{numberedtotoc}{2},{tocnumbered}{2},%
+ {numberedtoc}{2},%
+ {leveldown}{3},%
+ {standardlevel}{4}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifcase \@tempa\relax
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{noindex}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{indexnumbered}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{index}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{notoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{numbered}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{toc}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{noindex}%
+ \KOMA@kav@add{.\KOMAClassFileName}{index}{notoc}%
+ \renewcommand*{\idx@@heading}{%
+ \ifidx@leveldown
+%<article> \expandafter\subsection
+%<book|report> \expandafter\section
+ \else
+%<article> \expandafter\section
+%<book|report> \expandafter\chapter
+ \fi*%
+ }%
+ \or
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{noindex}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{indexnumbered}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{index}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{notoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{numbered}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{toc}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{index}%
+ \KOMA@kav@add{.\KOMAClassFileName}{index}{toc}%
+ \renewcommand*{\idx@@heading}{%
+ \ifidx@leveldown
+%<article> \expandafter\subsection\expandafter*
+%<book|report> \expandafter\addsec
+ \else
+%<article> \expandafter\addsec
+%<book|report> \expandafter\addchap
+ \fi
+ }%
+ \or
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{noindex}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{indexnumbered}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{index}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{notoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{numbered}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{toc}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{indexnumbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{index}{numbered}%
+ \renewcommand*{\idx@@heading}{%
+ \ifidx@leveldown
+%<article> \expandafter\subsection
+%<book|report> \expandafter\section
+ \else
+%<article> \expandafter\section
+%<book|report> \expandafter\chapter
+ \fi
+ }%
+ \or
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{leveldown}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{standardlevel}%
+ \KOMA@kav@add{.\KOMAClassFileName}{index}{leveldown}%
+ \idx@leveldowntrue
+ \or
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{leveldown}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{index}{standardlevel}%
+ \KOMA@kav@add{.\KOMAClassFileName}{index}{standardlevel}%
+ \idx@leveldownfalse
+ \fi
+ \fi
+}
+\KOMA@kav@add{.\KOMAClassFileName}{toc}{noindex}
+\KOMA@kav@add{.\KOMAClassFileName}{index}{notoc}
+\KOMA@kav@add{.\KOMAClassFileName}{index}{standardlevel}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{idxtotoc}
+% \changes{v2.3h}{1995/01/21}{neue Option}^^A
+% \changes{v2.98c}{2008/03/04}{obsolete}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{macrocode}
+\KOMA@DeclareDeprecatedOption{idxtotoc}{index=totoc}
+% \end{macrocode}
+% \end{option}
+%
+%
+% \iffalse
+%</option>
+%<*body>
+% \fi
+%
+% \subsection{Definitionen für den Index}
+%
+% \begin{macro}{\index@preamble}
+% \changes{v2.6c}{2000/06/10}{neu (intern)}^^A
+% \begin{macro}{\setindexpreamble}
+% \changes{v2.6c}{2000/06/10}{neu}^^A
+% \changes{v2.6d}{2000/07/20}{Befehl funktioniert nachdem \cs{let}^^A
+% 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)}^^A
+% \changes{v2.4c}{1995/04/04}{Kolumnentitel werden nun korrekt behandelt}^^A
+% \changes{v2.4g}{1996/11/04}{Index auch bei \texttt{scrartcl} wieder
+% zweispaltig}^^A
+% \changes{v2.6c}{2000/06/10}{Verwendung von \cs{index@preamble} eingefügt}^^A
+% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die
+% \texttt{theindex}-Umgebung verschoben}^^A
+% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch \cs{if@openright}
+% ersetzt}^^A
+% \changes{v2.98c}{2008/03/04}{Verwendung von \cs{idx@@heading}}^^A
+% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}^^A
+% \changes{v3.10a}{2012/03/08}{Falsche Klammerung der letzten Änderung
+% behoben}^^A
+% \changes{v3.12}{2013/09/24}{Index wird nie in andere Verzeichnisse
+% eingetragen (außer Inhaltsverzeichnis)}^^A
+% \changes{v3.25}{2017/10/13}{\cs{@mkright} und \cs{@mkdouble} verwenden}^^A
+% 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[%
+% %<article> \section*%
+% %<report|book> \@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.
+% \changes{v3.26}{2018/09/03}{usage of \cs{addsecmark} or \cs{subsectionmark}
+% instead of \cs{@mkright}}^^A
+% \begin{macrocode}
+\newcommand*{\idx@heading}{%
+%<report|book> \if@openright\cleardoublepage\else\clearpage\fi%
+ \twocolumn[%
+%<report|book> \@chaptertolistsfalse
+ \idx@@heading{\indexname}]%
+ \ifidx@leveldown
+%<report|book> \addsecmark{\indexname}%
+%<*article>
+ \begingroup
+ \c@secnumdepth=-\maxdimen
+ \subsectionmark{\indexname}%
+ \endgroup
+%</article>
+ \else
+ \@mkdouble{\MakeMarkcase{\indexname}}%
+ \fi
+}
+% \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}
+% \changes{v3.19}{2015/08/25}{Seitenstil nur ändern wenn nicht leer}^^A
+% Der Index ist wie üblich definiert.
+% \begin{macrocode}
+\newenvironment{theindex}{%
+ \if@twocolumn
+ \@restonecolfalse
+ \else
+ \@restonecoltrue
+ \fi
+ \columnseprule \z@
+ \columnsep 35\p@
+%<book|report> \setchapterpreamble{\index@preamble}%
+ \idx@heading%
+%<article> \index@preamble\par\nobreak
+ \ifx\indexpagestyle\@empty\else\thispagestyle{\indexpagestyle}\fi
+ \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
+%</body>
+% \fi
+%
+% \iffalse
+%</!letter>
+% \fi
+%
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-index.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-language.dtx b/macros/latex/contrib/koma-script/source/scrkernel-language.dtx
new file mode 100644
index 0000000000..6181653de8
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-language.dtx
@@ -0,0 +1,1709 @@
+% \CheckSum{2080}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-language.dtx
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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-2018
+%
+% 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 3011 2018-08-29 07:35:17Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-08-29 09:35:17 +0200 (Wed, 29 Aug 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1638 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-language.dtx}
+ [\filedate\space\filerevision\space
+ KOMA-Script (language)]%
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \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
+%<*letter>
+% \fi
+%
+% \begin{option}{numericaldate}
+% \changes{v2.8q}{2001/10/07}{Neue Option (an Stelle von
+% \texttt{scrdate} und \texttt{orgdate})}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}^^A
+% \changes{v3.17}{2015/03/10}{Speicherung des aktuellen Werts}^^A
+% 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}%
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&letter> scrletter.\scr@pkgextension
+ }{numericaldate}{@orgdate}%
+ \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi
+}
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package&letter> scrletter.\scr@pkgextension
+}{orgdate}{true}
+% \end{macrocode}
+% \begin{option}{scrdate}
+% \changes{v3.01a}{2008/11/21}{deprecated}^^A
+% \begin{option}{orgdate}
+% \changes{v3.01a}{2008/11/21}{deprecated}^^A
+% \begin{macrocode}
+\KOMA@DeclareDeprecatedOption{scrdate}{numericaldate=true}
+\KOMA@DeclareDeprecatedOption{orgdate}{numericaldate=false}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+% \end{option}
+%
+% \iffalse
+%</letter>
+% \fi
+%
+%
+% \iffalse
+%</option>
+%<*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}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% 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}{%
+ \kernel@ifstar\scr@def@scaptionname\scr@def@captionname
+}
+% \end{macrocode}
+% \begin{macro}{\scr@def@scaptionname}
+% \changes{v3.12}{2013/07/30}{neu (intern)}^^A
+% 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
+% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}^^A
+% \begin{macrocode}
+ \begingroup
+ \let\reserved@b\endgroup
+ \edef\scr@reserved@a{#1}%
+ \@onelevel@sanitize\scr@reserved@a
+ \@for\scr@reserved@a:=\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)}^^A
+% 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
+%<trace> \typeout{compare `\languagename' and `\scr@reserved@a'}%
+ \ifx\languagename\scr@reserved@a
+ \@tempswatrue
+ \else
+% \end{macrocode}
+% \changes{v3.20}{2016/01/05}{Sonderbehandlung für \textsf{polyglossia}}^^A
+% Bei Verwendung von \textsf{polyglossia} gibt es die Besonderheit, dass alle
+% Deutschen Sprachen als \texttt{german} definiert sind. Die Unterscheidung
+% zwischen Deutsch, Österreichisch und Schweizerisch geschieht über zwei
+% boolsche Schalter. Für die Unterscheidung alte oder neue Rechtschreibung
+% existiert ein weiterer Schalter. Mit ein paar trickreichen Vergleichen kann
+% man das zusätzlich behandeln. Natürlich muss es so gemacht werden, dass es
+% mit babel trotzdem noch funktioniert.
+% \begin{macrocode}
+ \edef\scr@reserved@b{\detokenize{german}}%
+ \ifx\languagename\scr@reserved@b
+ \edef\scr@reserved@b{%
+ \expandafter\ifx\csname if@german@oldspelling\expandafter\endcsname
+ \csname iffalse\endcsname n\fi
+ \expandafter\ifx\csname if@austrian@locale\expandafter\endcsname
+ \csname iftrue\endcsname austrian\else
+ \expandafter\ifx\csname if@swiss@locale\expandafter\endcsname
+ \csname iftrue\endcsname swiss\else german\fi\fi
+ }%
+%<trace> \typeout{compare also `\scr@reserved@a' and `\scr@reserved@b'}%
+ \@onelevel@sanitize\scr@reserved@b
+ \ifx\scr@reserved@a\scr@reserved@b \@tempswatrue\fi
+ \fi
+ \if@tempswa\else
+ \ifcsname l@\scr@reserved@a\endcsname
+ \expandafter\ifnum\csname l@\scr@reserved@a\endcsname=\language
+ \@tempswatrue
+ \fi
+ \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@def@captionname}
+% \changes{v3.12}{2013/07/30}{neu (intern)}^^A
+% 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
+% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}^^A
+% \begin{macrocode}
+ \begingroup
+ \let\reserved@b\endgroup
+ \edef\scr@reserved@a{#1}%
+ \@onelevel@sanitize\scr@reserved@a
+ \@for\scr@reserved@a:=\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
+%
+% \changes{v3.20}{2016/01/05}{Neue Sonderbehandlung für
+% \texttt{polyglossia}}^^A
+% Bei Verwendung von \textsf{polyglossia} haben wir nun bei den Sprachen
+% \texttt{austrian}, \texttt{swiss}, \texttt{ngerman}, \texttt{naustrian} und
+% \texttt{nswiss} das Problem, dass diese dort alle in \cs{captionsgerman}
+% vermischt sind. Es werden also also beim Umschalten eventuell gar nicht die
+% richtigen Befehle ausgeführt. Das lässt sich beispielsweise beheben, indem
+% in \cs{init@extra@german} dafür gesorgt wid, dass eben diese doch noch
+% ausgeführt werden:
+% \begin{macrocode}
+\AfterPackage*{polyglossia}{%
+ \scr@ifundefinedorrelax{init@extras@german}{%
+ \AfterFile{gloss-german.ldf}%
+ }{%
+ \@firstofone
+ }%
+ {%
+ \providecommand*\captionsngerman{}%
+ \providecommand*\captionsaustrian{}%
+ \providecommand*\captionsnaustrian{}%
+ \providecommand*\captionsswiss{}%
+ \providecommand*\captionsnswiss{}%
+ \csgappto{init@extras@german}{%
+ \if@austrian@locale
+ \csuse{captions\if@german@oldspelling\else n\fi austrian}%
+ \else
+ \if@swiss@locale
+ \csuse{captions\if@german@oldspelling\else n\fi swiss}%
+ \else
+ \if@german@oldspelling\else \csuse{captionsngerman}\fi
+ \fi
+ \fi
+ }%
+ }%
+}
+% \end{macrocode}
+% Ich bin mir natürlich bewusst, dass dieser Code auch nur wieder ein Hack
+% ist. Ideal ist das so nicht. Aber sehr viel sauberer geht es mit
+% \textsf{polyglossia} unter Beibehaltung der Kompatibilität auch nicht mehr.
+%
+% \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
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^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}{%
+ \kernel@ifstar\scr@provide@scaptionname\scr@provide@captionname
+}
+% \end{macrocode}
+% \begin{macro}{\scr@provide@scaptionname}
+% \changes{v3.12}{2013/07/30}{neu (intern)}^^A
+% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}^^A
+% \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
+ \@for\scr@reserved@a:=\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}%
+%</trace>
+ \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}%
+%</trace>
+ \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)}^^A
+% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}^^A
+% 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
+ \@for\scr@reserved@a:=\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}%
+%</trace>
+ \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}%
+%</trace>
+ \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
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^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}{%
+ \kernel@ifstar\scr@new@scaptionname\scr@new@captionname
+}
+% \end{macrocode}
+% \begin{macro}{\scr@new@scaptionname}
+% \changes{v3.12}{2013/07/30}{neu (intern)}^^A
+% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}^^A
+% 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
+ \@for\scr@reserved@a:=\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)}^^A
+% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}^^A
+% 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
+ \@for\scr@reserved@a:=\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
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^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}{%
+ \kernel@ifstar\scr@renew@scaptionname\scr@renew@captionname
+}
+% \end{macrocode}
+% \begin{macro}{\scr@renew@scaptionname}
+% \changes{v3.12}{2013/07/30}{neu (intern)}^^A
+% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}^^A
+% 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
+ \@for\scr@reserved@a:=\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)}^^A
+% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}^^A
+% 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
+ \@for\scr@reserved@a:=\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
+%</package&base>
+% \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}{%
+%<class> \ClassInfo{scrlttr2%
+%<package> \PackageInfo{scrletter%
+ }{%
+ 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
+%</letter>
+% \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}
+% \changes{v3.13}{2014/01/07}{diverse neue Dialekte}^^A
+% \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}{\captionsukenglish}
+% \changes{v3.24}{2017/05/29}{ukenglish identisch mit UKenglish definiert}
+% \begin{macro}{\dateukenglish}
+% \changes{v3.24}{2017/05/29}{ukenglish identisch mit UKenglish definiert}
+% \begin{macro}{\captionsusenglish}
+% \changes{v3.24}{2017/05/29}{usenglish identisch mit USenglish definiert}
+% \begin{macro}{\dateusenglish}
+% \changes{v3.24}{2017/05/29}{usenglish identisch mit USenglish definiert}
+% \begin{macro}{\captionsgerman}
+% \changes{v3.13}{2014/01/07}{neue Dialekte}^^A
+% \begin{macro}{\dategerman}
+% \begin{macro}{\captionsngerman}
+% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german}^^A
+% \changes{v3.12a}{2014/03/08}{außer \texttt{german} verwenden alle
+% deutschen Sprachen »Telefon«}^^A
+% \begin{macro}{\datengerman}
+% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german}^^A
+% \begin{macro}{\captionsaustrian}
+% \begin{macro}{\dateaustrian}
+% \begin{macro}{\captionsnaustrian}
+% \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian}^^A
+% \begin{macro}{\datenaustrian}
+% \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian}^^A
+% \begin{macro}{\captionsfrench}
+% \changes{v3.13}{2014/01/07}{diverse neue Dialekte}^^A
+% \begin{macro}{\datefrench}
+% \begin{macro}{\captionsitalian}
+% \begin{macro}{\dateitalian}
+% \changes{v2.3e}{1996/05/31}{Ich hoffe, dass das stimmt}^^A
+% \begin{macro}{\captionsspanish}
+% \begin{macro}{\datespanish}
+% \changes{v2.4c}{1997/11/25}{Ich hoffe, dass das stimmt}^^A
+% \changes{v2.4c}{1997/11/25}{Datumsumschaltung nicht mehr zwingend}
+% \begin{macro}{\captionscroation}
+% \changes{v2.8q}{2001/05/10}{Neu}^^A
+% \begin{macro}{\datecroatian}
+% \changes{v2.8q}{2001/05/10}{Neu}^^A
+% \begin{macro}{\captionsdutch}
+% \changes{v2.8q}{2002/02/01}{Neu}^^A
+% \begin{macro}{\datedutch}
+% \changes{v2.8q}{2002/02/01}{Neu}^^A
+% \begin{macro}{\captionsfinnish}
+% \changes{v2.9u}{2005/02/07}{Unterstützung für Finnisch (Dank Hannu
+% Väisänen)}^^A
+% \changes{v2.9u}{2005/02/07}{Neu}^^A
+% \begin{macro}{\datefinnish}
+% \changes{v2.9u}{2005/02/07}{Neu}^^A
+% \changes{v3.01c}{2008/12/29}{Aktivierung korrigiert}^^A
+% \begin{macro}{\captionsnorsk}
+% \changes{v3.02}{2009/01/01}{Neu}^^A
+% \begin{macro}{\datenorsk}
+% \changes{v3.02}{2009/01/01}{Neu}^^A
+% \begin{macro}{\captionsnorsk}
+% \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)}^^A
+% \begin{macro}{\datenorsk}
+% \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)}^^A
+% \begin{macro}{\captionspolish}
+% \changes{v3.13}{2014/02/01}{Neu (Dank Blandyna Bogdol)}^^A
+% \begin{macro}{\datepolish}
+% \changes{v3.13}{2014/02/01}{Neu (Dank Blandyna Bogdol)}^^A
+% \begin{macro}{\captionsczech}
+% \changes{v3.13}{2014/02/10}{Neu (Dank Elke Schubert)}^^A
+% \begin{macro}{\dateczech}
+% \changes{v3.13}{2014/02/10}{Neu (Dank Elke Schubert)}^^A
+% \begin{macro}{\dateslovak}
+% \changes{v3.13}{2014/02/28}{Neu (Dank Elke Schubert)}^^A
+% 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]
+% Deutsch & Frank Neukam, Markus Kohm \\
+% English & Frank Neukam, Michael Dewey, Markus Kohm \\
+% Finnisch & Hannu Väisänen \\
+% Französisch & Frank Neukam, Henk Jongbloets \\
+% Holländisch & Henk Jongbloets \\
+% Italienisch & Simone Naldi \\
+% Kroatisch & Branka Lon\v{c}arevi\'{c} \\
+% Norwegisch & Sveinung Heggen \\
+% Polnish & Blandyna Bogdol \\
+% Schwedisch & Benjamin Hell\\
+% Spanisch & Ralph J.\ Hangleiter, Alejandro L\'opez-Valencia\\
+% Tschechisch & Elke Schubert\\
+% Slovakisch & Elke Schubert\\
+% \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
+%</letter>
+%<*letter|class>
+% \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|class>
+%<*letter>
+% \fi
+% \begin{macrocode}
+ }%
+ }{}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\yourrefname{Your ref.}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\yourmailname{Your letter of}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\myrefname{Our ref.}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\customername{Customer no.}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\invoicename{Invoice no.}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\subjectname{Subject}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\ccname{cc}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\enclname{encl}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\headtoname{To}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\headfromname{From}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\datename{Date}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\pagename{Page}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\phonename{Phone}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\mobilephonename{Mobile phone}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\faxname{Fax}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\emailname{Email}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\wwwname{Url}%
+ \providecaptionname{american,australian,british,canadian,%
+ english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\bankname{Bank account}%
+ \g@addnumerical@date{american}{\number\month/\number\day/\number\year}%
+ \g@addnumerical@date{australien}{\number\day/\number\month/\number\year}%
+ \g@addnumerical@date{british}{\number\day/\number\month/\number\year}%
+ \g@addnumerical@date{canadian}{\number\year/\number\month/\number\day}%
+ \g@addnumerical@date{english}{\number\day/\number\month/\number\year}%
+ \g@addnumerical@date{newzealand}{\number\day/\number\month/\number\year}%
+ \g@addnumerical@date{UKenglish}{\number\day/\number\month/\number\year}%
+ \g@addnumerical@date{ukenglish}{\number\day/\number\month/\number\year}%
+ \g@addnumerical@date{USenglish}{\number\month/\number\day/\number\year}%
+ \g@addnumerical@date{usenglish}{\number\month/\number\day/\number\year}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\yourrefname{Ihr Zeichen}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\yourmailname{Ihr Schreiben vom}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\myrefname{Unser Zeichen}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\customername{Kundennummer}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\invoicename{Rechnungsnummer}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\subjectname{Betrifft}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\ccname{Kopien an}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\enclname{Anlage}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\headtoname{An}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\headfromname{Von}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\datename{Datum}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\pagename{Seite}%
+ \providecaptionname{german}\phonename{Telephon}%
+ \providecaptionname{ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\phonename{Telefon}%
+ \providecaptionname{german}\mobilephonename{Mobiltelephon}%
+ \providecaptionname{ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\mobilephonename{Mobiltelefon}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\faxname{Fax}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\emailname{E-Mail}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\wwwname{URL}%
+ \providecaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\bankname{Bankverbindung}%
+ \g@addnumerical@date{german}{\number\day.\,\number\month.\,\number\year}%
+ \g@addnumerical@date{ngerman}{\number\day.\,\number\month.\,\number\year}%
+ \g@addnumerical@date{austrian}{\number\day.\,\number\month.\,\number\year}%
+ \g@addnumerical@date{naustrian}{\number\day.\,\number\month.\,\number\year}%
+ \g@addnumerical@date{swissgerman}{\number\day.\,\number\month.\,\number\year}%
+ \g@addnumerical@date{nswissgerman}{%
+ \number\day.\,\number\month.\,\number\year}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\yourrefname{Vos r\'ef\'erences}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\yourmailname{Votre lettre du}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\myrefname{Nos r\'ef\'erences}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\customername{Num\'ero de client}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\invoicename{Num\'ero de facture}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\subjectname{Concernant}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\ccname{Copie \`a}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\enclname{Annexes}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\headtoname{A}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\headfromname{De}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\datename{Date}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\pagename{Page}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\phonename{T\'el\'ephone}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\mobilephonename{Portable}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\faxname{T\'el\'efax}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\emailname{E-mail}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\wwwname{URL}%
+ \providecaptionname{%
+ acadian,canadien,francais,french}\bankname{Compte en banque}%
+ \g@addnumerical@date{acadian}{\number\day.\,\number\month.\,\number\year}%
+ \g@addnumerical@date{canadien}{\number\year/\number\month/\number\day}%
+ \g@addnumerical@date{francais}{\number\day.\,\number\month.\,\number\year}%
+ \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}%
+ \providecaptionname{polish}\yourrefname{Wasz znak}%
+ \providecaptionname{polish}\yourmailname{Wasze pismo z dnia}%
+ \providecaptionname{polish}\myrefname{Nasz znak}%
+ \providecaptionname{polish}\customername{Numer klienta}%
+ \providecaptionname{polish}\invoicename{Numer rachunku}%
+ \providecaptionname{polish}\subjectname{Dotyczy}%
+ \providecaptionname{polish}\ccname{Rozdzielnik}%
+ \providecaptionname{polish}\enclname{Za\l\aob{}czniki}%
+ \providecaptionname{polish}\headtoname{Do}%
+ \providecaptionname{polish}\headfromname{Od}%
+ \providecaptionname{polish}\datename{Data}%
+ \providecaptionname{polish}\pagename{Strona}%
+ \providecaptionname{polish}\phonename{Telefon}%
+ \providecaptionname{polish}\mobilephonename{Numer mobilny}%
+ \providecaptionname{polish}\faxname{Fax}%
+ \providecaptionname{polish}\emailname{E-mail}%
+ \providecaptionname{polish}\wwwname{URL}%
+ \providecaptionname{polish}\bankname{Konto}%
+ \g@addnumerical@date{polish}{\number\day.\,\number\month.\,\number\year}%
+ \providecaptionname{czech}\yourrefname{Va\v{s}e zna\v{c}ka}%
+ \providecaptionname{czech}\yourmailname{V\'{a}\v{s} dopis ze dne}%
+ \providecaptionname{czech}\myrefname{Na\v{s}e zna\v{c}ka}%
+ \providecaptionname{czech}\customername{Z\'akaznick\'e \v{c}\'{\i}slo}%
+ \providecaptionname{czech}\invoicename{Fakura\v{c}n\'{\i} \v{c}\'{\i}slo}%
+ \providecaptionname{czech}\subjectname{Pr\v{e}dm\v{e}t}%
+ \providecaptionname{czech}\ccname{Kopie}%
+ \providecaptionname{czech}\enclname{P\v{r}\'{\i}loha}%
+ \providecaptionname{czech}\headtoname{Komu}%
+ \providecaptionname{czech}\headfromname{Od}%
+ \providecaptionname{czech}\datename{Datum}%
+ \providecaptionname{czech}\pagename{Strana}%
+ \providecaptionname{czech}\phonename{Telefon}%
+ \providecaptionname{czech}\mobilephonename{Mobil}%
+ \providecaptionname{czech}\faxname{Fax}%
+ \providecaptionname{czech}\emailname{E-Mail}%
+ \providecaptionname{czech}\wwwname{URL}%
+ \providecaptionname{czech}\bankname{Bankovn\'{\i} spojen\'{\i}}%
+ \g@addnumerical@date{czech}{\number\day.\,\number\month.\,\number\year}%
+ \providecaptionname{slovak}\yourrefname{Va\v{s}a zna\v{c}ka}%
+ \providecaptionname{slovak}\yourmailname{V\'{a}\v{s} list zo d\v{n}a}%
+ \providecaptionname{slovak}\myrefname{Na\v{s}a zna\v{c}ka}%
+ \providecaptionname{slovak}\customername{Z\'akazn\'{\i}cke \v{c}\'{\i}slo}%
+ \providecaptionname{slovak}\invoicename{\'{C}\'{\i}slo fakt\'ury}%
+ \providecaptionname{slovak}\subjectname{Predmet}%
+ \providecaptionname{slovak}\ccname{K\'{o}pia pre koho}%
+ \providecaptionname{slovak}\enclname{Pr\'{\i}loha}%
+ \providecaptionname{slovak}\headtoname{Komu}%
+ \providecaptionname{slovak}\headfromname{Od}%
+ \providecaptionname{slovak}\datename{D\'{a}tum}%
+ \providecaptionname{slovak}\pagename{Strana}%
+ \providecaptionname{slovak}\phonename{Telef\'{o}n}%
+ \providecaptionname{slovak}\mobilephonename{Mobil}%
+ \providecaptionname{slovak}\faxname{Fax}%
+ \providecaptionname{slovak}\emailname{E-Mail}%
+ \providecaptionname{slovak}\wwwname{URL}%
+ \providecaptionname{slovak}\bankname{Bankov\'{e} spojenie}%
+ \g@addnumerical@date{slovak}{\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}^^A
+% \changes{v2.5}{1999/09/08}{Sprachauswahl um ngermen erweitert}^^A
+% \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}^^A
+% \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}^^A
+% \changes{v3.18a}{2015/07/03}{\cs{extras\dots} werden auch ausgeführt}^^A
+% \changes{v3.18a}{2015/07/03}{sprachabhhängige Befehle mit \cs{@nameuse}}^^A
+% 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
+%<class> \ClassWarningNoLine{scrlttr2%
+%<package> \PackageWarningNoLine{scrletter%
+ }{%
+ \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
+%<class> \ClassWarningNoLine{scrlttr2%
+%<package> \PackageWarningNoLine{scrletter%
+ }{\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
+ \@nameuse{captionsamerican}%
+ \@nameuse{extrasamerican}%
+ \@nameuse{dateamerican}%
+ \fi\fi
+ \ifx\l@australian\undefined\else\ifnum\language=\l@australian
+ \@nameuse{captionsaustralian}%
+ \@nameuse{extrasaustralian}%
+ \@nameuse{dateaustralian}%
+ \fi\fi
+ \ifx\l@british\undefined\else\ifnum\language=\l@british
+ \@nameuse{captionsbritish}%
+ \@nameuse{extrasbritish}%
+ \@nameuse{datebritish}%
+ \fi\fi
+ \ifx\l@canadian\undefined\else\ifnum\language=\l@canadian
+ \@nameuse{captionscanadian}%
+ \@nameuse{extrascanadian}%
+ \@nameuse{datecanadian}%
+ \fi\fi
+ \ifx\l@newzealand\undefined\else\ifnum\language=\l@newzealand
+ \@nameuse{captionsnewzealand}%
+ \@nameuse{extrasnewzealand}%
+ \@nameuse{datenewzealand}%
+ \fi\fi
+ \ifx\l@UKenglish\undefined\else\ifnum\language=\l@UKenglish
+ \@nameuse{captionsUKenglish}%
+ \@nameuse{extrasUKenglish}%
+ \@nameuse{dateUKenglish}%
+ \fi\fi
+ \ifx\l@ukenglish\undefined\else\ifnum\language=\l@ukenglish
+ \@nameuse{captionsukenglish}%
+ \@nameuse{extrasukenglish}%
+ \@nameuse{dateukenglish}%
+ \fi\fi
+ \ifx\l@USenglish\undefined\else\ifnum\language=\l@USenglish
+ \@nameuse{captionsUSenglish}%
+ \@nameuse{extrasUSenglish}%
+ \@nameuse{dateUSenglish}%
+ \fi\fi
+ \ifx\l@usenglish\undefined\else\ifnum\language=\l@usenglish
+ \@nameuse{captionsusenglish}%
+ \@nameuse{extrasusenglish}%
+ \@nameuse{dateusenglish}%
+ \fi\fi
+ \ifx\l@austrian\undefined\else\ifnum\language=\l@austrian
+ \@nameuse{captionsaustrian}%
+ \@nameuse{extrasaustrian}%
+ \@nameuse{dateaustrian}%
+ \fi\fi
+ \ifx\l@naustrian\undefined\else\ifnum\language=\l@naustrian
+ \@nameuse{captionsnaustrian}%
+ \@nameuse{extrasnaustrian}%
+ \@nameuse{datenaustrian}%
+ \fi\fi
+ \ifx\l@german\undefined\else\ifnum\language=\l@german
+ \@nameuse{captionsgerman}%
+ \@nameuse{extrasgerman}%
+ \@nameuse{dategerman}%
+ \fi\fi
+ \ifx\l@ngerman\undefined\else\ifnum\language=\l@ngerman
+ \@nameuse{captionsngerman}%
+ \@nameuse{extrasngerman}%
+ \@nameuse{datengerman}%
+ \fi\fi
+ \ifx\l@swissgerman\undefined\else\ifnum\language=\l@swissgerman
+ \@nameuse{captionsswissgerman}%
+ \@nameuse{extrasswissgerman}%
+ \@nameuse{dateswissgerman}%
+ \fi\fi
+ \ifx\l@nswissgerman\undefined\else\ifnum\language=\l@nswissgerman
+ \@nameuse{captionsnswissgerman}%
+ \@nameuse{extrasnswissgerman}%
+ \@nameuse{datenswissgerman}%
+ \fi\fi
+ \ifx\l@acadian\undefined\else\ifnum\language=\l@acadian
+ \@nameuse{captionsacadian}%
+ \@nameuse{extrasacadian}%
+ \@nameuse{dateacadian}%
+ \fi\fi
+ \ifx\l@canadien\undefined\else\ifnum\language=\l@canadien
+ \@nameuse{captionscanadien}%
+ \@nameuse{extrascanadien}%
+ \@nameuse{datecanadien}%
+ \fi\fi
+ \ifx\l@francais\undefined\else\ifnum\language=\l@francais
+ \@nameuse{captionsfrancais}%
+ \@nameuse{extrasfrancais}%
+ \@nameuse{datefrancais}%
+ \fi\fi
+ \ifx\l@french\undefined\else\ifnum\language=\l@french
+ \@nameuse{captionsfrench}%
+ \@nameuse{extrasfrench}%
+ \@nameuse{datefrench}%
+ \fi\fi
+ \ifx\l@italian\undefined\else\ifnum\language=\l@italian
+ \@nameuse{captionsitalian}%
+ \@nameuse{extrasitalian}%
+ \@nameuse{dateitalian}%
+ \fi\fi
+ \ifx\l@spanish\undefined\else\ifnum\language=\l@spanish
+ \@nameuse{captionsspanish}%
+ \@nameuse{extrasspanish}%
+ \@nameuse{datespanish}%
+ \fi\fi
+ \ifx\l@croatian\undefined\else\ifnum\language=\l@croatian
+ \@nameuse{captionscroatian}%
+ \@nameuse{extrascroatian}%
+ \@nameuse{datecroatian}%
+ \fi\fi
+ \ifx\l@dutch\undefined\else\ifnum\language=\l@dutch
+ \@nameuse{captionsdutch}%
+ \@nameuse{extrasdutch}%
+ \@nameuse{datedutch}%
+ \fi\fi
+ \ifx\l@finnish\undefined\else\ifnum\language=\l@finnish
+ \@nameuse{captionsfinnish}%
+ \@nameuse{extrasfinnish}%
+ \@nameuse{datefinnish}%
+ \fi\fi
+ \ifx\l@norsk\undefined\else\ifnum\language=\l@norsk
+ \@nameuse{captionsnorsk}%
+ \@nameuse{extrasnorsk}%
+ \@nameuse{datenorsk}%
+ \fi\fi
+ \ifx\l@swedish\undefined\else\ifnum\language=\l@swedish
+ \@nameuse{captionsswedish}%
+ \@nameuse{extrasswedish}%
+ \@nameuse{dateswedish}%
+ \fi\fi
+ \ifx\l@polish\undefined\else\ifnum\language=\l@polish
+ \@nameuse{captionspolish}%
+ \@nameuse{extraspolish}%
+ \@nameuse{datepolish}%
+ \fi\fi
+ \ifx\l@czech\undefined\else\ifnum\language=\l@czech
+ \@nameuse{captionsczech}%
+ \@nameuse{extrasczech}%
+ \@nameuse{dateczech}%
+ \fi\fi
+ \ifx\l@slovak\undefined\else\ifnum\language=\l@slovak
+ \@nameuse{captionsslovak}%
+ \@nameuse{extrasslovak}%
+ \@nameuse{dateslovak}%
+ \fi\fi
+ \else
+ \edef\@tempa{nohyphenation}%
+ \ifx\languagename\@tempa
+%<class> \ClassWarningNoLine{scrlttr2%
+%<package> \PackageWarningNoLine{scrletter%
+ }{%
+ 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
+%<class> \ClassInfo{scrlttr2%
+%<package> \PackageInfo{scrletter%
+ }{%
+ 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}^^A
+% 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
+%<class> \ClassInfo{scrlttr2%
+%<package> \PackageInfo{scrletter%
+ }{%
+ used language is `\languagename'.\MessageBreak
+ Supported languages are: `english', `UKenglish',\MessageBreak
+ `ukenglish', `british', `american', `USenglish',\MessageBreak
+ `usenglish', `australian`,`canadian', `newzealand',\MessageBreak
+ `german', `ngerman', `austrian', `naustrian',\MessageBreak
+ `swissgerman', `nswissgermsn',\MessageBreak
+ `acadian', `canadien', `francais', `french', \MessageBreak
+ `dutch', `italian', `spanish', `polish',\MessageBreak
+ `croatian', `finnish', `norsk', `swedish',\MessageBreak
+ `czech', `slovak'%
+ }%
+ \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}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%</letter>
+% \fi
+%
+%
+% \iffalse
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-language.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-letterclassoptions.dtx b/macros/latex/contrib/koma-script/source/scrkernel-letterclassoptions.dtx
new file mode 100644
index 0000000000..7f0881cef0
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-letterclassoptions.dtx
@@ -0,0 +1,1725 @@
+% \CheckSum{1748}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-letterclassoptions.dtx
+% Copyright (c) Markus Kohm, 2006-2018
+%
+% 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-2018
+%
+% 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 3011 2018-08-29 07:35:17Z kohm $
+%<option>%%% (run: option)
+%<head>%%% (run: head)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-08-29 09:35:17 +0200 (Wed, 29 Aug 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 3011 $
+\endgroup
+\ProvidesFile{scrkernel-letterclassoptions.dtx}
+ [\filedate\space \filerevision\space
+ KOMA-Script source (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}
+%</dtx>
+% \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}^^A
+% \changes{v2.97c}{2007/09/12}{an neue Optionenabarbeitung angepasst}^^A
+% 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
+%<class> \AtEndOfClass
+%<package> \AtEndOfPackage
+ \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}
+%<class>\AtEndOfClass
+%<package>\AtEndOfPackage
+ {\LoadLetterOption{DIN}}
+% \end{macrocode}
+%
+% \iffalse
+%</option>
+%<*body>
+% \fi
+%
+% \subsection{Makros für Letter-Class-Options}
+%
+% \begin{macro}{\LoadLetterOption}
+% \changes{v2.8q}{2001/10/08}{Neu}^^A
+% \changes{v3.14}{2014/10/04}{Leerzeichen werden ignoriert}^^A
+% \changes{v3.26}{2018/08/29}{Verwendung von \cs{scr@sp@def} statt
+% \cs{KV@@sp@def}}^^A
+% 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}%
+ \scr@sp@def\reserved@a{#1}%
+ \edef\reserved@a{%
+ \noexpand\edef\noexpand\scr@currentlco{\reserved@a}%
+ \noexpand\InputIfFileExists{\reserved@a.lco}{%
+%<class> \noexpand\ClassInfo{scrlttr2%
+%<package> \noexpand\PackageInfo{scrletter%
+ }{Letter-Class-Option `#1' loaded}%
+ }{%
+%<class> \noexpand\ClassError{scrlttr2%
+%<package> \noexpand\PackageError{scrletter%
+ }{%
+ Letter-Class-Option file `#1.lco' not found%
+ }{%
+ You've told me to load the Letter-Class-Option `#1'. So I have
+ to load\noexpand\MessageBreak
+ the file `#1.lco'. But the file isn't available.}%
+ }%
+ \scr@ifundefinedorrelax{scr@currentlco}{%
+ \unexpanded{\let\scr@currentlco\relax}%
+ }{%
+ \noexpand\def\noexpand\scr@currentlco{\scr@currentlco}%
+ }%
+ }%
+% \end{macrocode}
+% \changes{v3.18}{2015/06/03}{manage \cs{RequirePackage} and \cs{usepackage}
+% inside \texttt{lco}-files after \cs{begin\{document\}}}^^A
+% \begin{macrocode}
+ \if@atdocument
+ \edef\reserved@a{%
+ \unexpanded\expandafter{\reserved@a}%
+ \ifx\RequirePackage\@notprerr
+ \unexpanded{\let\RequirePackage\@notprerr}%
+ \else
+ \noexpand\def\noexpand\RequirePackage{%
+ \unexpanded\expandafter{\RequirePackage}%
+ }%
+ \fi
+ \ifx\usepackage\@notprerr
+ \unexpanded{\let\usepackage\@notprerr}%
+ \else
+ \noexpand\def\noexpand\Rusepackage{%
+ \unexpanded\expandafter{\usepackage}%
+ }%
+ \fi
+ }%
+ \let\RequirePackage\lco@RequirePackage
+ \let\usepackage\lco@RequirePackage
+ \expandafter\reserved@a
+ \else \expandafter\reserved@a
+ \fi
+ \@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}
+% \begin{macro}{\lco@RequirePackage}
+% \changes{v3.18}{2015/06/03}{neue Anweisung (intern)}^^A
+% \changes{v3.26}{2018/08/29}{Verwendung von \cs{scr@trim@spaces} statt
+% \cs{KV@@sp@def}}^^A
+% Da \texttt{lco}-Dateien auch noch nach \cs{begin\{document\}} geladen werden
+% können, wird hier sinnvoll auf die Anforderung von Paketen in diesem Fall
+% reagiert. In der ersten Ausbaustufe wird eine sinnvolle Fehlermeldung
+% ausgegeben. Irgend wann einmal später könnte man sich eventuell noch etwas
+% besseres einfallen lassen.
+% Das erste, optionale Argument sind ggf. Optionen. Diese werden jedoch an
+% dieser Stelle einfach ignoriert. Das zweitem, obligatorische Argument ist
+% eine Liste von Paketen. Das dritte, optionale Argument ist die Version der
+% Pakete, die an dieser Stelle ebenfalls ignoriert wird.
+% \begin{macrocode}
+\newcommand*{\lco@RequirePackage}[2][]{%
+ \begingroup
+ \@for\reserved@a:=#2\do{%
+ \scr@trim@spaces\reserved@a
+ \scr@ifundefinedorrelax{ver@\reserved@a.\scr@pkgextension}{%
+%<class> \ClassError{\KOMAClassName}{%
+%<package> \PackageError{scrletter}{%
+ lco-file `\scr@currentlco' can be used only in preamble%
+ }{%
+ The lco-file `\scr@currentlco' uses \string\RequirePackage\space or
+ \string\usepackage\space to load\MessageBreak
+ package `\reserved@a'. This means you have to either load
+ `\reserved@a'\MessageBreak
+ or lco-file `\scr@currentlco' in the document preamble.
+ }%
+ }{}%
+ }%
+ \endgroup
+ \scr@gobbleopt
+}
+% \end{macrocode}
+% \end{macro}^^A \lco@RequirePackage
+% \end{macro}^^A \LoadLetterOption
+% \begin{macro}{\LoadLetterOptions}
+% \changes{v3.14}{2014/10/04}{Neue Anweisung}^^A
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} eingefügt und damit
+% Leerzeichen zwischen den Einträgen erlaubt}^^A
+% \changes{v3.26}{2018/08/29}{Behandlung für (nicht mehr mögliche)
+% Leerzeicheneinträge entfernt}^^A
+% Funktioniert prinzipiell wie \cs{LoadLetterOption}, aber es werden mehrere,
+% durch Komma getrennte Optionen unterstützt.
+% \begin{macrocode}
+\newcommand*{\LoadLetterOptions}[1]{%
+ \begingroup
+ \def\reserved@a{\endgroup}%
+ \@for\reserved@b:=#1\do{%
+ \scr@trim@spaces\reserved@b
+ \ifx\reserved@b\@empty\else
+ \edef\reserved@a{\expandafter\unexpanded\expandafter{\reserved@a
+ \LoadLetterOption}{\reserved@b}\relax}%
+ \fi
+ }%
+ \reserved@a
+}
+% \end{macrocode}
+% \end{macro}^^A \LoadLetterOptions
+%
+% \begin{macro}{\LetterOptionNeedsPapersize}
+% \changes{v2.8q}{2001/10/17}{Neu}^^A
+% 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
+% \changes{v3.23}{2017/02/22}{Verwendung des neuen \cs{PaperNameToSize}}^^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%
+ \PaperNameToSize[letter]{\LOPNP@size}%
+ \fi
+ \fi
+ \fi
+ \@tempc
+ \endgroup%
+}
+%<class>\AfterPackage*{typearea}{%
+\ProvideUnknownPaperSizeError{letter}{%
+%<class> \ClassError{scrlttr2}{%
+%<package> \PackageError{scrletter}{%
+ 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.}%
+}
+%<class>}
+\newcommand*{\@@PapersizeWarning}{%
+ \if@tempswa\else%
+%<class> \ClassWarningNoLine{scrlttr2%
+%<package> \PackageWarningNoLine{scrletter%
+ }{%
+ Letter option file `\LOPNP@option.lco'\MessageBreak
+ needs paper size `\LOPNP@size'.\MessageBreak
+ Current paper size is not `\LOPNP@size'!\MessageBreak
+ \scr@ifundefinedorrelax{KOMAClassName}{%
+ You should load package `typearea' either\MessageBreak
+ with option `paper=\LOPNP@size,paper=portrait' or
+ additionally\MessageBreak
+ }{%
+ You should add `paper=\LOPNP@size,paper=portrait' at the\MessageBreak
+ option list of `\string\documentclass' or\MessageBreak
+ }%
+ add `\string\KOMAoptions{paper=\LOPNP@size,paper=portrait}'\MessageBreak
+ before starting this letter!\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
+%</body>
+%</letter>
+% \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}^^A
+% \changes{v3.04}{2009/06/26}{neue LCO \texttt{USletter2w} in Zusammenarbeit
+% mit Engelbert Buxbaum und Richard Ar\`es geschaffen}^^A
+% \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}^^A
+% \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/}}^^A
+% \changes{v3.04}{2009/06/26}{seit langem existierende LCO \texttt{visualize}^^A
+% zur Visualisierung einiger Pseudolängen aufgenommen}^^A
+% \changes{v3.17}{2015/02/17}{neue LCOs \texttt{DIN5008A} und
+% \texttt{DIN5008B}}^^A
+% \begin{macrocode}
+\ProvidesFile{%
+%<visualize> visualize%
+%<DIN> DIN%
+%<5008> 5008%
+%<A> A%
+%<B> B%
+%<DINmoretext> DINmtext%
+%<SN> SN%
+%<SNold> SNold%
+%<SwissLeft> SNleft%
+%<KOMAold> KOMAold%
+%<NF> NF%
+%<USletter2w> USletter2w
+%<UScommercial9> UScommercial9
+%<UScommercial9DW> UScommercial9DW
+ .lco}[\KOMAScriptVersion\space letter-class-option]
+% \end{macrocode}
+%
+% Manche \texttt{LCO}-Dateien bauen auf anderen auf:
+% \begin{macrocode}
+%<*5008>
+\LoadLetterOption{%
+%<A> DINmtext%
+%<B> DIN%
+}
+%</5008>
+% \end{macrocode}
+%
+% \begin{macro}{\LCOWarningNoLine}
+% \changes{v2.95}{2006/03/24}{Neu}^^A
+% \begin{macro}{\LCOWarning}
+% \changes{v2.95}{2006/03/24}{Neu}^^A
+% Außerdem wird ein Makro benötigt, das analog zu |\ClassWarningNoLine| oder
+% |\PackageWarningNoLine| funktioniert.
+%<*!5008>
+\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%
+ }%
+}
+%</!5008>
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%</head>
+%<*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 \\
+% DIN5008A & mir \\
+% DIN5008B & 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}
+%<*!5008>
+\@ifundefined{scr@fromname@var}{%
+ \LCOWarningNoLine{%
+%<DIN> DIN%
+%<DINmoretext> DINmtext%
+%<SN> SN%
+%<SNold> SNold%
+%<SwissLeft> SNleft%
+%<KOMAold> KOMAold%
+%<NF> NF%
+%<USletter2w> USletter2w%
+%<UScommercial9> UScommercial9%
+%<UScommercial9DW> UScommercial9DW%
+ }{%
+ This letter class option file was made only\MessageBreak
+ to be used with KOMA-Script letter class\MessageBreak
+ `scrlttr2' or letter package `scrletter'.\MessageBreak
+ Use with other classes and without that package\MessageBreak
+ can result in a lot of errors%
+ }%
+}{}
+% \end{macrocode}
+%
+% Dann wird geprüft, ob das richtige Papierformat vorhanden ist.
+% \begin{macrocode}
+\LetterOptionNeedsPapersize{%
+%<DIN> DIN%
+%<DINmoretext> DINmtext%
+%<SN> SN%
+%<SNold> SNold%
+%<SwissLeft> SNleft%
+%<KOMAold> KOMAold%
+%<NF> NF%
+%<USletter2w> USletter2w%
+%<UScommercial9> UScommercial9%
+%<UScommercial9DW> UScommercial9DW%
+%<*DIN|DINmoretext|SN|SNold|SwissLeft|KOMAold|NF>
+}{a4}
+%</DIN|DINmoretext|SN|SNold|SwissLeft|KOMAold|NF>
+%<*USletter2w|UScommercial9|UScommercial9DW>
+}{letter}
+%</USletter2w|UScommercial9|UScommercial9DW>
+% \end{macrocode}
+%
+% Dann werden die Werte gesetzt.
+% \begin{description}
+% \item[ZIP-Code]
+% \changes{v3.03}{2009/03/04}{Bezeichner der Variablen \texttt{fromzipcode}^^A
+% wird gesetzt}
+% \begin{macrocode}
+%<!KOMAold>\setkomavar*{fromzipcode}{%
+%<DIN|DINmoretext> D}
+%<SwissLeft|SN> CH}
+%<NF> F}
+%<USletter2w|UScommercial9|UScommercial9DW> US}
+% \end{macrocode}
+% \item[Faltmarken]
+% \changes{v2.97e}{2007/11/20}{Die neuen Faltmarken werden berücksichtigt.}^^A
+% \begin{macrocode}
+\@setplength{foldmarkhpos}{3.5mm}
+\@setplength{tfoldmarkvpos}{%
+%<DIN|SwissLeft|SN> 105mm}
+%<DINmoretext> 87mm}
+%<KOMAold> 103.5mm}
+%<NF> 99mm}
+%<USletter2w|UScommercial9|UScommercial9DW> 3.75in}
+\@setplength{mfoldmarkvpos}{\z@}
+\@setplength{bfoldmarkvpos}{%
+%<DIN|SwissLeft|SN> 210mm}
+%<DINmoretext> 192mm}
+%<KOMAold> 202.5mm}
+%<NF> 198mm}
+%<USletter2w> 7.4in}
+%<UScommercial9|UScommercial9DW> 7.375in}
+\@setplength{lfoldmarkhpos}{\z@}
+% \end{macrocode}
+% \item[Anschrift]
+% \begin{macrocode}
+\@setplength{toaddrvpos}{%
+%<DIN|SN> 45mm}
+%<DINmoretext> 27mm}
+%<SwissLeft> 35.5mm}
+%<KOMAold> 49mm}
+%<NF> 35mm}
+%<USletter2w> 1.8in}
+%<UScommercial9|UScommercial9DW> 2.1875in}
+\@setplength{toaddrhpos}{%
+%<DIN|DINmoretext|SwissLeft> 20mm}
+%<SN> -8mm}
+%<KOMAold> 1in}
+%<KOMAold>\@addtoplength{toaddrhpos}{\oddsidemargin}
+%<NF> -10mm}
+%<USletter2w> .73in}
+%<UScommercial9> 0.6875in}
+%<UScommercial9DW> .5625in}
+\@setplength{toaddrwidth}{%
+%<DIN|DINmoretext> 85mm}
+%<SN> 90mm}
+%<SwissLeft|NF> 100mm}
+%<KOMAold> 70mm}
+%<USletter2w> 3.11in}
+%<UScommercial9> 4.5in}
+%<UScommercial9DW> 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}^^A
+% \begin{macrocode}
+\@setplength{toaddrheight}{%
+%<DIN|DINmoretext|SN|SwissLeft|KOMAold|NF> 45mm}
+%<USletter2w> 1.17in}
+%<UScommercial9|UScommercial9DW> 1.125in}
+%</!5008>
+\@setplength{toaddrindent}{%
+%<DIN|DINmoretext|SN|SwissLeft|KOMAold|USletter2w|UScommercial9|UScommercial9DW> \z@}
+%<*5008>
+ 5mm}
+\@setplength{locvpos}{%
+ \dimexpr\useplength{toaddrvpos}+\useplength{backaddrheight}}
+%</5008>
+%<*!5008>
+%<NF> 10mm}
+\@setplength{backaddrheight}{%
+%<DIN|DINmoretext|SN|SwissLeft|KOMAold|NF> 5mm}
+%<USletter2w|UScommercial9|UScommercial9DW> \z@}
+%<USletter2w|UScommercial9|UScommercial9DW>\KOMAoptions{backaddress=false}
+\@setplength{specialmailindent}{\fill}
+\@setplength{specialmailrightindent}{1em}
+%</!5008>
+%<*5008>
+\@setplength{specialmailindent}{\useplength{toaddrindent}}
+\@setplength{specialmailrightindent}{\z@}
+%</5008>
+% \end{macrocode}
+% \item[Absenderergänzung]
+% \begin{macrocode}
+\@setplength{locwidth}{%
+%<DIN|DINmoretext|SN|SwissLeft|KOMAold|NF|USletter2w|UScommercial9|UScommercial9DW> \z@}
+%<5008> 75mm}
+%<5008>\@setplength{lochpos}{10mm}
+%<*!5008>
+% \end{macrocode}
+% \item[Kopf]
+% \begin{macrocode}
+\@setplength{firstheadvpos}{%
+%<DIN|DINmoretext|SN|SwissLeft> 8mm}
+%<KOMAold> 6mm}
+%<NF> 15mm}
+%<USletter2w> .36in}
+%<UScommercial9|UScommercial9DW> .4375in}
+%</!5008>
+%<*5008>
+\@setplength{firstheadhpos}{%
+ \dimexpr \useplength{toaddrhpos}+\useplength{toaddrindent}}
+%</5008>
+\@setplength{firstheadwidth}{%
+%<KOMAold> \textwidth}
+%<NF> 170mm}
+%<*DIN|DINmoretext|SN|SwissLeft|UScommercial9>
+ \paperwidth}
+\ifdim \useplength{toaddrhpos}>\z@
+ \@addtoplength[-2]{firstheadwidth}{\useplength{toaddrhpos}}
+\else
+ \@addtoplength[2]{firstheadwidth}{\useplength{toaddrhpos}}
+\fi
+%</DIN|DINmoretext|SN|SwissLeft|UScommercial9>
+%<5008> \dimexpr 125mm-\useplength{firstheadhpos}}
+%<*USletter2w>
+ \paperwidth}
+\@addtoplength[-]{firstheadwidth}{.68in}
+%</USletter2w>
+%<*UScommercial9DW>
+ \paperwidth}
+\@addtoplength[-]{firstheadwidth}{.25in}
+%</UScommercial9DW>
+% \end{macrocode}
+% \item[Fuß]
+% \changes{v2.9u}{2005/03/05}{Der Fuß hat optional eine feste Position 16\,mm
+% über der unteren Papierkante.}^^A
+% \begin{macrocode}
+%<!5008>\@setplength{firstfootwidth}{\useplength{firstheadwidth}}
+%<*5008>
+\@setplength{firstfoothpos}{%
+ \dimexpr\useplength{toaddrhpos}+\useplength{toaddrindent}}%
+\@setplength{firstfootwidth}{%
+ \dimexpr \paperwidth-\useplength{toaddrhpos}-\useplength{firstfoothpos}}%
+%</5008>
+%<KOMAold>\@setplength{firstfootvpos}{\paperheight}
+%<KOMAold>\@addtoplength{firstfootvpos}{-2cm}
+%<!KOMAold&!NF>\ifnum \scr@compatibility >\@nameuse{scr@v@2.9t}\relax
+%<!KOMAold&!NF> \@setplength{firstfootvpos}{\paperheight}
+%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{-16mm}
+%<!KOMAold&!NF>\else
+%<!KOMAold&!NF> \@setplength{firstfootvpos}{1in}
+%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\topmargin}
+%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\headheight}
+%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\headsep}
+%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\textheight}
+%<!KOMAold&!NF> \@addtoplength{firstfootvpos}{\footskip}
+%<!KOMAold&!NF>\fi
+%<NF>\@setplength{firstfootvpos}{266.679mm}
+% \end{macrocode}
+% \item[Geschäftszeile]
+% \begin{macrocode}
+%<!(5008&B)>\@setplength{refvpos}{%
+%<DIN|SN> 98.5mm}
+%<DINmoretext> 80.5mm}
+%<5008&A> 79.4mm}
+%<SwissLeft> 89mm}
+%<KOMAold> 89.5mm}
+%<NF> \useplength{tfoldmarkvpos}}
+%<USletter2w> 3.1in}
+%<UScommercial9|UScommercial9DW> 3.4375in}
+\@setplength{refaftervskip}{%
+%<!KOMAold&!5008> \baselineskip}
+%<KOMAold> 2\baselineskip}
+%<5008> 8.46mm}
+%<*!5008>
+% \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}
+%<DIN|DINmoretext|SN|SwissLeft>\let\raggedsignature=\centering
+%<KOMAold|NF|USletter2w|UScommercial9|UScommercial9DW>\let\raggedsignature=\raggedright
+% \end{macrocode}
+% \end{description}
+% Es folgen ggf. noch zusätzliche Änderungen.
+% \changes{v3.13b}{2014/10/04}{\cs{@firsthead} existiert nicht mehr, daher nun
+% mit einem neu geschaffenen \emph{hook}}^^A
+% \begin{macrocode}
+%<*DINmoretext>
+\def\scr@default@firsthead@fromaddress@hook{\def\\{,\ \@gobble}}
+%</DINmoretext>
+% \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}}
+%</KOMAold>
+% \end{macrocode}
+%
+% Und für \texttt{DIN5008} braucht es dann noch einige zusätzliche
+% Einstellungen:
+% \begin{macrocode}
+%</!5008>
+%<*5008>
+\@newplength{specialmailheight}
+\@setplength{specialmailheight}{12.7mm}
+\areaset[5mm]{165mm}{233mm}
+\KOMAoptions{%
+ fromalign=locationleft,
+ addrfield=topaligned,
+ refline=narrow,
+ parskip=full
+}
+\l@addto@macro\@PapersizeWarning{%
+ \begingroup
+ \@tempswafalse
+ \ifdim\oddsidemargin<\dimexpr 25mm-1in-1pt\relax\@tempswatrue\else
+ \ifdim\oddsidemargin>\dimexpr 25mm-1in+1pt\relax\@tempswatrue\fi\fi
+ \ifdim\textwidth<\dimexpr \paperwidth-45mm-1pt\relax\@tempswatrue\else
+ \ifdim\textwidth>\dimexpr \paperwidth-45mm+1pt\relax\@tempswatrue\fi\fi
+ \if@tempswa
+ \LCOWarning{DIN5008%
+%<A> A%
+%<B> B%
+ }{%
+ DIN5008 orders exact margins and text\MessageBreak
+ width. Without following these values,\MessageBreak
+ your document does not conform DIN5008.\MessageBreak
+ You should use, e.g.,\MessageBreak
+ \space\string\areaset[5mm]{%
+ \the\dimexpr \paperwidth-45mm\relax}{%
+ \the\dimexpr 1.414\dimexpr \paperwidth-45mm\relax\relax}\MessageBreak
+ to follow the norm
+ }%
+ \fi
+ \ifdim \dimexpr\parskip\relax=\dimexpr\baselineskip\relax\else
+ \LCOWarning{DIN5008%
+%<A> A%
+%<B> B%
+ }{%
+ DIN5008 orders paragraph separation by\MessageBreak
+ exactly one line. Without this, your\MessageBreak
+ document does not conform DIN5008.\MessageBreak
+ You shoud use, e.g.,\MessageBreak
+ \space\string\KOMAoption{parskip}{full}\MessageBreak
+ to follow the norm
+ }%
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macro}{\backaddr@format}
+% \changes{v3.25}{2017/11/15}{Verwendung von \cs{scr@endstrut} statt
+% \cs{unskip}\cs{strut}}^^A
+% Nicht unterstrichene, mehrzeilig oben ausgerichtete Rücksendeadresse.
+% \begin{macrocode}
+\renewcommand{\backaddr@format}[1]{\hspace*{\useplength{toaddrindent}}%
+ \parbox[t][\useplength{backaddrheight}][t]%
+ {\dimexpr\useplength{toaddrwidth}-\useplength{toaddrindent}}%
+ {\strut\ignorespaces #1\ifhmode\scr@endstrut\fi}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\specialmail@format}
+% \changes{v3.25}{2017/11/15}{Verwendung von \cs{scr@endstrut} statt
+% \cs{unskip}\cs{strut}}^^A
+% Mehrzeilig oben ausgerichtete Versandart.
+% \begin{macrocode}
+\renewcommand{\specialmail@format}[1]{%
+ \parbox[t][\useplength{specialmailheight}][t]%
+ {\dimexpr\useplength{toaddrwidth}
+ -\useplength{specialmailindent}
+ -\useplength{specialmailrightindent}}%
+ {\strut\ignorespaces #1\ifhmode\scr@endstrut\fi}%
+}
+% \end{macrocode}
+% \end{macro}
+% Und Schrifteinstellungen:
+% \begin{macrocode}
+\setkomafont{specialmail}{\sffamily\fontsize{10pt}{12pt}\selectfont}
+\setkomafont{backaddress}{\sffamily\fontsize{8pt}{10pt}\selectfont}
+\setkomafont{addressee}{\sffamily\fontsize{10pt}{12pt}\selectfont}
+\setkomafont{fromname}{\sffamily\fontsize{10pt}{12pt}\selectfont}
+\setkomafont{fromaddress}{\sffamily\fontsize{10pt}{12pt}\selectfont}
+\setkomafont{refvalue}{\sffamily\fontsize{10pt}{12pt}\selectfont}
+\let\raggedsignature\raggedright
+%</5008>
+% \end{macrocode}
+%
+% \iffalse
+%</!visualize>
+%<*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}.
+% \changes{v3.18}{2015/06/03}{lade \textsf{eso-pic} unbedingt}^^A
+% \begin{macrocode}
+\RequirePackage{eso-pic}
+% \end{macrocode}
+%
+% \begin{macro}{\showfields}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} eingefügt}^^A
+% 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{%
+ \scr@trim@spaces\@tempa
+ \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}^^A
+% 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}^^A
+% 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}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\@@showenvelope}
+% \begin{macro}{\@@@showenvelope}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% 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.
+% \changes{v3.18}{2015/06/03}{lade \textsf{graphicx} unbedingt}^^A
+% \begin{macrocode}
+\RequirePackage{graphicx}
+\newcommand*{\showenvelope}{}
+\newcommand*{\@@showenvelope}{}
+\newcommand*{\@@@showenvelope}{}
+\def\showenvelope(#1,#2){%
+ \kernel@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){%
+ \kernel@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
+% \begin{macrocode}
+\newkomafont{letter}{\normalcolor}
+% \end{macrocode}
+% \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>
+%<*!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)%
+ }]%
+}
+%</UScommercial9DW>
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</!visualize>
+%</body>
+%</lco>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-letterclassoptions.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-listsandtabulars.dtx b/macros/latex/contrib/koma-script/source/scrkernel-listsandtabulars.dtx
new file mode 100644
index 0000000000..92f1399a45
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-listsandtabulars.dtx
@@ -0,0 +1,542 @@
+% \CheckSum{316}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-listsandtabulars.dtx
+% Copyright (c) Markus Kohm, 2002-2017
+%
+% 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-2017
+%
+% 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 2640 2017-05-08 09:36:55Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2017-05-08 11:36:55 +0200 (Mon, 08 May 2017) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1872 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-listsandtabulars.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (lists and tabulars)]
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \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
+%</option>
+%<*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
+%</!letter>
+ \setlength{\leftmargini}{2.5em}
+%<!letter>\fi
+\setlength{\leftmarginii}{2.2em}
+\setlength{\leftmarginiii}{1.87em}
+\setlength{\leftmarginiv}{1.7em}
+%<*!letter>
+\if@twocolumn
+ \setlength{\leftmarginv}{.5em}
+ \setlength{\leftmarginvi}{.5em}
+\else
+%</!letter>
+ \setlength{\leftmarginv}{1em}
+ \setlength{\leftmarginvi}{1em}
+%<!letter>\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}^^A
+% \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}^^A
+% \begin{macro}{\labelitemii}
+% \changes{v2.5g}{1999/10/09}{\cs{textendash} verwendet}
+% \begin{macro}{\labelitemiii}
+% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert}^^A
+% \begin{macro}{\labelitemiv}
+% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert}^^A
+% 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}^^A
+% 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}
+%</class>
+\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}^^A
+% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} korrigiert}^^A
+% \begin{environment}{addmargin*}
+% \changes{v2.8q}{2001/11/29}{neue Umgebung}^^A
+% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} korrigiert}^^A
+% \changes{v3.17}{2015/03/23}{robuster gegen Umbrüche am Anfang}^^A
+% \changes{v3.22}{2016/08/02}{Umbruchtest nur für doppelseitige
+% Dokumente}^^A
+% 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)}^^A
+% \changes{v2.95}{2002/07/01}{\cs{item} muss keine "`[]"'-Klammern
+% mehr verarbeiten}^^A
+% \changes{v2.9q}{2003/03/24}{\cs{labelsep} bleibt unverändert}^^A
+% \changes{v2.95a}{2006/07/20}{\cs{@tmpcnta} bleibt unverändert}^^A
+% \changes{v3.05b}{2010/04/29}{\cs{partopsep} muss auf 0 statt \cs{parskip}
+% gesetzt werden, weil es zu \cs{topsep} addiert wird}^^A
+% \changes{v3.17}{2015/03/23}{robuster gegen Umbrüche am Anfang}^^A
+% Der Rest wird von diesem Makro erledigt.
+% \begin{macro}{\scr@addmargin@startpage}
+% \changes{v3.12}{2013/10/26}{neu (intern, lokal)}^^A
+% \changes{v3.12}{2013/10/26}{Test auf Seitenumbruch in
+% \texttt{addmargin*}}^^A
+% \changes{v3.22}{2016/10/21}{\cs{topsep} und \cs{partopsep} werden
+% erhalten}^^A
+% \begin{macrocode}
+%</class>
+\newenvironment{addmargin}{%
+ \@tempswafalse\@addmargin
+}{%
+ \advance\@listdepth\@ne
+ \endlist
+}
+\newenvironment{addmargin*}{%
+ \@tempswafalse
+ \if@twoside\is@thispageodd[]\ifthispagewasodd\else\@tempswatrue\fi
+ \edef\scr@addmargin@startpage{\csname tpo@\scr@tpo\endcsname}\fi
+ \@addmargin
+}{%
+ \if@twoside
+ \unskip\nobreak\ifthispageodd{}{}%
+ \expandafter\ifx\csname tpo@\scr@tpo\endcsname\scr@addmargin@startpage\else
+%<class> \ClassWarning{\KOMAClassName}{%
+%<package> \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
+ \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{\@tempskipa}{\topsep}%
+ \setlength{\topsep}{\z@}%
+ \setlength{\parsep}{\parskip}%
+ \setlength{\@tempskipb}{\partopsep}%
+ \setlength{\partopsep}{\z@}%
+ \let\makelabel\@gobble
+ \setlength{\labelwidth}{\z@}%
+ \advance\@listdepth\m@ne
+ }%
+ \expandafter\ifnum\scr@v@is@ge{3.22}%
+ \setlength{\topsep}{\@tempskipa}%
+ \setlength{\partopsep}{\@tempskipb}%
+ \fi
+ \item\is@thispageodd@setlabel\nobreak\ignorespaces
+}
+%<*class>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{environment}
+% \end{environment}
+%
+%
+% \subsection{Schriftarten für Listen}
+%
+% \begin{macro}{\descfont}
+% \changes{v3.20}{2016/01/29}{\cs{sffamily} durch \cs{@gr@gsffamily}
+% ersetzt}^^A
+% 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{\@gr@gsffamily\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}^^A
+% \begin{KOMAfont}{labelingseparator}
+% \changes{v3.02}{2009/01/01}{neues Element}^^A
+% 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}
+%</class>
+\newkomafont{labelinglabel}{}
+\newkomafont{labelingseparator}{}
+%<*class>
+% \end{macrocode}
+% \end{KOMAfont}
+% \end{KOMAfont}
+%
+%
+% \iffalse
+%</class>
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-listsandtabulars.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx b/macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx
new file mode 100644
index 0000000000..40c492a99e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx
@@ -0,0 +1,1101 @@
+% \CheckSum{649}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-listsof.dtx
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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-2018
+%
+% 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 2864 2018-01-16 07:55:20Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-01-16 08:55:20 +0100 (Tue, 16 Jan 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 2864 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-listsof.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (lists of)]%
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \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}^^A
+% \changes{v2.98c}{2008/03/05}{wird früher definiert}^^A
+% \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
+% \changes{v3.12a}{2014/01/17}{\cs{KOMAExecuteOptions} durch
+% \cs{KOMAoptions} ersetzt}^^A
+% \changes{v3.18}{2015/06/15}{neuer Wert \texttt{indexnumbered}}^^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},%
+ {indexnumbered}{2},%
+ {nolistof}{3},%
+ {listof}{4},%
+ {listofnumbered}{5},{numberedlistof}{5},%
+ {nobibliography}{6},{nobib}{6},%
+ {bibliography}{7},{bib}{7},%
+ {bibliographynumbered}{8},{bibnumbered}{8},{numberedbibliography}{8},%
+ {numberedbib}{8},%
+% \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}{9},{left}{9},%
+ {graduated}{10},{indent}{10},{indented}{10},%
+% \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}{11},{indentunnumbered}{11},{numberline}{11},%
+ {leftaligntextentries}{12},{leftalignunnumbered}{12},{nonumberline}{12},%
+% \end{macrocode}
+% Mit Version~3.15 kommt neu die Möglichkeit hinzu, Kapiteleinträge mit
+% Pünktchen zu versehen.
+% \begin{macrocode}
+%<book|report> {chapterentrywithdots}{13},{chapterentrydotfill}{13},
+%<book|report> {chapterentrywithoutdots}{14},{chapterentryfill}{14}%
+%<article> {sectionentrywithdots}{13},{sectionentrydotfill}{13},
+%<article> {sectionentrywithoutdots}{14},{sectionentryfill}{14}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifcase \@tempa\relax % noindex
+ \KOMAoptions{index=notoc}%
+ \or % index
+ \KOMAoptions{index=totoc}%
+ \or % indexnumbered
+ \KOMAoptions{index=numbered}%
+ \or % listof
+ \KOMAoptions{listof=notoc}%
+ \or % nolistof
+ \KOMAoptions{listof=totoc}%
+ \or % listofnumbered
+ \KOMAoptions{listof=numbered}%
+ \or % nobibliography
+ \KOMAoptions{bibliography=nottotoc}%
+ \or % bibliography
+ \KOMAoptions{bibliography=totoc}%
+ \or % bibliographynumbered
+ \KOMAoptions{bibliography=totocnumbered}%
+ \or % flat
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{flat}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{graduated}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{flat}%
+ \@toclefttrue
+ \or % graduated
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{flat}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{graduated}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{graduated}%
+ \@tocleftfalse
+ \or % indenttextentries
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{indenttextentries}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{leftaligntextentries}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{indenttextentries}%
+ \expandafter\setuptoc\expandafter{\ext@toc}{numberline}%
+ \or % leftaligntextentries
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{indenttextentries}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{leftaligntextentries}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{leftaligntextentries}%
+ \expandafter\unsettoc\expandafter{\ext@toc}{numberline}%
+ \or % chapterentrywithdots/sectionentrywithdots
+%<book|report> \KOMAoptions{chapterentrydots=true}%
+%<article> \KOMAoptions{sectionentrydots=true}%
+ \or % chapterentrywithoutdots/sectionentrywithoutdots
+%<book|report> \KOMAoptions{chapterentrydots=false}%
+%<article> \KOMAoptions{sectionentrydots=false}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{tocleft}
+% \changes{v2.8q}{2001/11/14}{neue Option}^^A
+% \changes{v2.98c}{2008/03/05}{obsolet}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{tocindent}
+% \changes{v2.8q}{2001/11/14}{neue Option}^^A
+% \changes{v2.98c}{2008/03/05}{obsolet}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \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)}^^A
+% Setzt nur die Überschrift und sonst nichts. Dabei wird die Überschrift als
+% einziges Argument übergeben.
+% \begin{macrocode}
+\newcommand*{\float@@listhead}{%
+%<article> \section*
+%<report|book> \chapter*
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@dynlist}
+% \changes{v2.8q}{2001/11/14}{neuer Schalter}^^A
+% \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
+% \changes{v3.12a}{2014/01/17}{\cs{KOMAExecuteOptions} durch
+% \cs{KOMAoptions} 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.
+% \changes{v3.25}{2017/12/04}{neuer Wert \texttt{standardlevel}}^^A
+% \begin{macrocode}
+ {leveldown}{5},
+ {standardlevel}{6},
+% \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}{7},
+% \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}{8},{indentunnumbered}{8},{numberline}{8},%
+ {leftaligntextentries}{9},{leftalignunnumbered}{9},{nonumberline}{9}%
+% \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}{10},{withchapterentry}{10},%
+ {nochaptergap}{11},{ignorechapter}{11},%
+ {chaptergapsmall}{12},{smallchaptergap}{12},%
+ {chaptergapline}{13},{onelinechaptergap}{13}%
+%</book|report>
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifcase \@tempa\relax % notoc
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{nolistof}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{listof}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{listofnumbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{nolistof}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{notoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{totoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{numbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{notoc}%
+ \renewcommand*{\float@@listhead}{%
+%<article> \section*
+%<report|book> \chapter*
+ }%
+ \doforeachtocfile[float]{%
+ \unsettoc{\@currext}{numbered}%
+ \unsettoc{\@currext}{totoc}%
+ }%
+ \AtAddToTocList[float]{%
+ \unsettoc{\@currext}{numbered}%
+ \unsettoc{\@currext}{totoc}%
+ }%
+ \or% totoc
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{nolistof}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{listof}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{listofnumbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{listof}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{notoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{totoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{numbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{totoc}%
+ \renewcommand*{\float@@listhead}{%
+%<article> \addsec
+%<report|book> \addchap
+ }%
+ \doforeachtocfile[float]{%
+ \unsettoc{\@currext}{numbered}%
+ \setuptoc{\@currext}{totoc}%
+ }%
+ \AtAddToTocList[float]{%
+ \unsettoc{\@currext}{numbered}%
+ \setuptoc{\@currext}{totoc}%
+ }%
+ \or% numbered
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{nolistof}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{listof}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{toc}{listofnumbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{toc}{listofnumbered}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{notoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{totoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{numbered}%
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{numbered}%
+ \renewcommand*{\float@@listhead}{%
+%<article> \section
+%<report|book> \chapter
+ }%
+ \doforeachtocfile[float]{%
+ \setuptoc{\@currext}{numbered}%
+ \setuptoc{\@currext}{totoc}%
+ }%
+ \AtAddToTocList[float]{%
+ \setuptoc{\@currext}{numbered}%
+ \setuptoc{\@currext}{totoc}%
+ }%
+ \or% flat
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{flat}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{graduated}%
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{flat}%
+ \@dynlisttrue
+ \or% graduated
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{flat}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{graduated}%
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{graduated}%
+ \@dynlistfalse
+ \or% leveldown
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{standardlevel}%
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{leveldown}%
+ \doforeachtocfile[float]{%
+ \setuptoc{\@currext}{leveldown}%
+ }%
+ \AtAddToTocList[float]{%
+ \setuptoc{\@currext}{leveldown}%
+ }%
+ \or% standardlevel
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{leveldown}%
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{standardlevel}%
+ \doforeachtocfile[float]{%
+ \unsettoc{\@currext}{leveldown}%
+ }%
+ \AtAddToTocList[float]{%
+ \unsettoc{\@currext}{leveldown}%
+ }%
+ \or% entryprefix
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{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% indenttextentries
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{indenttextentries}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{leftaligntextentries}%
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{indenttextentries}%
+ \doforeachtocfile[float]{%
+ \setuptoc{\@currext}{numberline}%
+ }%
+ \AtAddToTocList[float]{%
+ \setuptoc{\@currext}{numberline}%
+ }
+ \or% leftaligntextentries
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{indenttextentries}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{leftaligntextentries}%
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{leftaligntextentries}%
+ \doforeachtocfile[float]{%
+ \unsettoc{\@currext}{numberline}%
+ }%
+ \AtAddToTocList[float]{%
+ \unsettoc{\@currext}{numberline}%
+ }
+%<*book|report>
+ \or% chapterentry
+ \KOMAoptions{chapteratlists=entry}%
+ \or% chaptergap
+ \KOMAoptions{chapteratlists=\z@}%
+ \or% chaptergapsmall
+ \KOMAoptions{chapteratlists=10\p@}%
+ \or% chaptergapline
+ \KOMAoptions{chapteratlists=\baselineskip}%
+%</book|report>
+ \fi
+ \fi
+}
+\KOMA@kav@add{.\KOMAClassFileName}{toc}{nolistof}
+\KOMA@kav@add{.\KOMAClassFileName}{listof}{notoc}
+\KOMA@kav@add{.\KOMAClassFileName}{listof}{graduated}
+\KOMA@kav@add{.\KOMAClassFileName}{listof}{leftaligntextentries}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{liststotoc}
+% \changes{v2.3h}{1995/01/21}{neue Option}^^A
+% \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}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \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}^^A
+% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel}^^A
+% \changes{v2.98c}{2008/03/05}{obsolet}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{macrocode}
+\KOMA@DeclareDeprecatedOption{liststotocnumbered}{listof=numbered}
+% \end{macrocode}
+% \end{option}
+%
+%
+% \begin{option}{listsleft}
+% \changes{v2.8q}{2001/11/14}{neue Option}^^A
+% \changes{v2.98c}{2008/03/05}{obsolet}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{listsindent}
+% \changes{v2.8q}{2001/11/14}{neue Option}^^A
+% \changes{v2.98c}{2008/03/05}{obsolet}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \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
+% \changes{v3.12a}{2014/01/17}{fehlendes \cs{FamilyKeyStateProcessed}^^A
+% ergänzt}^^A
+% \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}^^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]{%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{chapterentry}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{chaptergap}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{chaptergapsmall}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{listof}{chaptergapline}%
+ \ifstr{#1}{entry}{%
+ \@chaptertoliststrue\renewcommand*{\@chapterlistsgap}{\z@}%
+ \KOMA@kav@replacevalue{.\KOMAClassFileName}{chapteratlists}{entry}%
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{chapterentry}%
+ }{%
+ \@chaptertolistsfalse\renewcommand*{\@chapterlistsgap}{#1}%
+ \KOMA@kav@replacevalue{.\KOMAClassFileName}{chapteratlists}%
+ {\@chapterlistsgap}%
+ \def\reserved@a{\z@}%
+ \ifx\@chapterlistsgap\reserved@a
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{chaptergap}%
+ \else
+ \def\reserved@a{10\p@}%
+ \ifx\@chapterlistsgap\reserved@a
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{chaptergapsmall}%
+ \else
+ \def\reserved@a{\baselineskip}%
+ \ifx\@chapterlistsgap\reserved@a
+ \KOMA@kav@add{.\KOMAClassFileName}{listof}{chaptergapline}%
+ \fi
+ \fi
+ \fi
+ }%
+}
+\BeforeTOCHead{\@chaptertolistsfalse}
+\KOMA@kav@add{.\KOMAClassFileName}{chapteratlists}{10\p@}%
+\KOMA@kav@add{.\KOMAClassFileName}{listof}{chaptergapsmall}%
+%</book|report>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \iffalse
+%</option>
+%<*body>
+% \fi
+%
+% \subsection{Definitionen für alle Verzeichnisse}
+%
+% Einige Definitionen werden von unterschiedlichen Verzeichnissen
+% verwendet. Diese sind hier zu finden.
+%
+% \begin{macro}{\numberline@numberpostfix}
+% \changes{v3.20}{2016/03/15}{\cs{autodot} wird darüber eingefügt}
+% Auch in den Verzeichnissen soll ggf. \cs{autodot} quasi als Bestandteil der
+% Nummer ausgegeben werden.
+% \begin{macrocode}
+\g@addto@macro{\numberline@numberpostfix}{\autodot}
+% \end{macrocode}
+% \end{macro}^^A \numberline@numberpostfix
+%
+% \begin{macro}{\numberline}
+% \changes{v3.20}{2016/03/15}{Definition von \textsf{tocbasic} verwenden}
+% Unabhängig vom Stil soll immer die Definition von \textsf{tocbasic}
+% verwendet werden.
+% \begin{macrocode}
+\usetocbasicnumberline[%
+ \ClassInfo{\KOMAClassName}{Redefining `\string\numberline'}%
+]
+% \end{macrocode}
+% \end{macro}^^A \numberline
+%
+% \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}%
+}
+%</book|report>
+% \end{macrocode}
+%
+% \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)}^^A
+% 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}^^A
+% \begin{macro}{\scr@numberline}
+% \changes{v3.06}{2010/05/18}{nicht länger benötigt}^^A
+% \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)}^^A
+% 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)}^^A
+% 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}
+% \changes{v3.20}{2015/11/26}{Vorbereitungen für Verzeichniseintragsstile
+% via \texttt{scrkernel-tocstyle}}^^A
+% \begin{macrocode}
+ \begingroup
+ \def\do@endgroup{\endgroup}%
+ \def\do##1{%
+ \scr@ifundefinedorrelax{scr@tso@##1@numwidth}{}{%
+%<*trace>
+ \ClassInfo{\KOMAClassName}{%
+ Setting numwidth of `##1' to \last@l@number}%
+%</trace>
+ \l@addto@macro\do@endgroup{%
+ \@namedef{scr@tso@##1@numwidth}{\last@l@number}%
+ }%
+ }%
+ \scr@ifundefinedorrelax{scr@tso@##1@indent}{}{%
+%<*trace>
+ \ClassInfo{\KOMAClassName}{%
+ Setting indent of `##1' to \string\z@}%
+%</trace>
+ \l@addto@macro\do@endgroup{%
+ \@namedef{scr@tso@##1@indent}{\z@}%
+ }%
+ }%
+ }%
+ \@nameuse{scr@dte@donumwidth}%
+ \do@endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\after@starttoc}
+% \changes{v2.8q}{2001/11/14}{neu (intern)}^^A
+% 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}
+%<book|report>\setcounter{tocdepth}{2}
+%<article>\setcounter{tocdepth}{3}
+% \end{macrocode}
+% \end{Counter}
+%
+% \begin{macro}{\toc@heading}
+% \changes{v2.3h}{1995/01/21}{neu (intern)}^^A
+% \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 may be removed from\MessageBreak
+ KOMA-Script soon, so it should not be used
+ }%
+%<article> \section*{\contentsname}%
+%<book|report> \chapter*{\contentsname}%
+ \@mkboth{\MakeMarkcase{\contentsname}}{\MakeMarkcase{\contentsname}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\toc@l@number}
+% \changes{v2.8q}{2001/11/14}{neu}^^A
+% 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
+ \expandafter\listoftoc\expandafter{\ext@toc}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addtocentrydefault}
+% \changes{v3.08}{2010/11/01}{Neu}^^A
+% \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]{%
+ \expandafter\tocbasic@addxcontentsline\expandafter{\ext@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}^^A
+% 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)}^^A
+% \changes{v3.12}{2013/09/25}{Text geändert}^^A
+% \changes{v3.12a}{2014/03/05}{Text korrigiert}^^A
+% 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 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)}^^A
+% \changes{v3.12}{2013/09/25}{Text geändert}^^A
+% \changes{v3.12a}{2014/03/05}{Text korrigiert}^^A
+% 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 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}
+% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}^^A
+% \begin{macro}{\listtablename}
+% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}^^A
+% \begin{macro}{\listoflofname}
+% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
+% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}^^A
+% \begin{macro}{\listoflotname}
+% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
+% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}^^A
+% \begin{macro}{\listoflofentryname}
+% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
+% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}^^A
+% \begin{macro}{\listoflotentryname}
+% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
+% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}^^A
+% Die Namen der Verzeichnisse auch für das Paket \textsf{tocbasic}.
+% \begin{macrocode}
+\renewcommand*\listfigurename{List of Figures}
+\renewcommand*\listoflofname{\listfigurename}
+\renewcommand*\listoflofentryname{\figurename}
+\renewcommand*\listtablename{List of Tables}
+\renewcommand*\listoflotname{\listtablename}
+\renewcommand*\listoflotentryname{\tablename}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\listoffigures}
+% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lof@heading}}^^A
+% \changes{v2.4k}{1996/12/13}{\cs{lof@heading} nicht nur bei
+% \textsf{scrartcl}}^^A
+% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf
+% 0 gesetzt}^^A
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}^^A
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
+% ersetzt}^^A
+% \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}}^^A
+% \changes{v3.23}{2017/03/24}{Verwendung von \cs{ext@figure} statt
+% \texttt{lof}}^^A
+% \changes{v3.25}{2017/10/10}{Wird bereits implizit von \cs{DeclareNewTOC}
+% definiert}^^A
+% Die Ausgabe des Abbildungsverzeichnisses.
+% \end{macro}
+%
+% \begin{macro}{\l@figure}
+% \changes{v3.25}{2017/10/10}{Wird bereits implizit von \cs{DeclareNewTOC}
+% im \texttt{default}-Stil definiert}^^A
+% Befehl zur Formatierung eines Verzeichniseintrags.
+% \end{macro}
+%
+% \begin{macro}{\listoftables}
+% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lot@heading}}^^A
+% \changes{v2.4k}{1996/12/13}{\cs{lot@heading} nicht nur bei
+% \textsf{scrartcl}}^^A
+% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf
+% 0 gesetzt}^^A
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}%
+% \cs{@parskip@indent}}^^A
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
+% ersetzt}^^A
+% \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}}^^A
+% \changes{v3.23}{2017/03/24}{Verwendung von \cs{ext@table} statt
+% \texttt{lot}}^^A
+% \changes{v3.25}{2017/10/10}{Wird bereits implizit von \cs{DeclareNewTOC}
+% definiert}^^A
+% Die Ausgabe des Tabellenverzeichnisses.
+% \end{macro}
+%
+% \begin{macro}{\l@table}
+% \changes{v3.25}{2017/10/10}{Wird bereits implizit von \cs{DeclareNewTOC}
+% im \texttt{default}-Stil definiert}^^A
+% \end{macro}
+%
+%
+% \iffalse
+%</body>
+% \fi
+%
+% \iffalse
+%</!letter>
+% \fi
+%
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-listsof.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-miscellaneous.dtx b/macros/latex/contrib/koma-script/source/scrkernel-miscellaneous.dtx
new file mode 100644
index 0000000000..32004b4d36
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-miscellaneous.dtx
@@ -0,0 +1,1223 @@
+% \CheckSum{722}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-miscellaneous.dtx
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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-2018
+%
+% 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 2995 2018-07-18 06:46:34Z kohm $
+%<init>%%% (run: init)
+%<option>%%% (run: option)
+%<execoption>%%% (run: execoption)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-07-18 08:46:34 +0200 (Wed, 18 Jul 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 2995 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-miscellaneous.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (miscellaneous, maybe everything or nothing)]
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \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.}^^A
+%
+% 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
+%<*init>
+% \fi
+% \subsection{Test auf die eine \KOMAScript-Klasse}
+%
+% Hier haben wir zunächst ein paar Definitionen speziell für das Paket
+% \textsf{scrletter}, die genau dann benötigt werden, wenn das Paket nicht mit
+% einer \KOMAScript-Klasse verwendet wird.
+%
+% \begin{macrocode}
+%<*package&letter>
+\scr@ifundefinedorrelax{KOMAClassName}{%
+ \PackageWarningNoLine{scrletter}{%
+ Cannot detect any KOMA-Script class.\MessageBreak
+ Package `scrletter' is an extension to\MessageBreak
+ KOMA-Script classes.\MessageBreak
+ Usage with another class is not recommended%
+ \@ifclassloaded{article}{}{%
+ \@ifclassloaded{report}{}{%
+ \@ifclassloaded{book}{}{%
+ \MessageBreak and can result in several errors%
+ }%
+ }%
+ }%
+ }%
+ \RequirePackage{scrextend}%
+% \end{macrocode}
+%
+% \begin{macro}{\setparsizes}
+% \changes{v3.23}{2017/02/22}{wird notfalls vereinfacht definiert}^^A
+% \begin{macro}{\par@updaterelative}
+% \changes{v3.23}{2017/02/22}{wird notfalls vereinfacht definiert}^^A
+% Diese beiden Befehle werden normalerweise von den \KOMAScript-Klassen
+% definiert. Wird das Paket mit einer anderen Klasse verwendet, existieren
+% sie nicht. Es wird dann eine vereinfachte Definition verwendet.
+% \begin{macrocode}
+ \providecommand*{\setparsizes}[3]{%
+ \setlength{\parindent}{#1}%
+ \setlength{\parskip}{#2}%
+ \setlength{\parfillskip}{#3}%
+ }
+ \providecommand*{\par@updaterelative}{}
+% \end{macrocode}
+% \end{macro}^^A \par@updaterelative
+% \end{macro}^^A \setparsizes
+% \begin{macrocode}
+}{}
+% \end{macrocode}
+%
+% \begin{macro}{\scr@renewforletter}
+% \changes{v3.20}{2014/04/10}{neu Anweisung}^^A
+% \changes{v3.25}{2017/11/15}{als unbenutzt entfernt}^^A
+% Wird wie \cs{renewcommand} verwendet, verzögert die Umdefinierung aber bis
+% zu einem optionalen Zeitpunkt. Dazu wird intern
+% \cs{scrletter@extra@\meta{macro}} definiert.
+% \begin{macro}{\@renewforletter}
+% \changes{v3.20}{2014/04/10}{neu Anweisung (intern)}^^A
+% \changes{v3.25}{2017/11/15}{als unbenutzt entfernt}^^A
+% \begin{macro}{\do@renewforletter@list}
+% \changes{v3.20}{2014/04/10}{neu Anweisung (intern)}^^A
+% \changes{v3.25}{2017/11/15}{als unbenutzt entfernt}^^A
+% Die do-Liste der später umzudefinierenden Anweisungen.
+% \begin{macro}{\do@renewforletter}
+% \changes{v3.20}{2014/04/10}{neu Anweisung (intern)}^^A
+% \changes{v3.25}{2017/11/15}{als unbenutzt entfernt}^^A
+% Definiert die in der do-Liste gespeicherten Anweisungen um.
+% \begin{macrocode}
+%</package&letter>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%</init>
+%<*option>
+% \fi
+%
+% \subsection{Optionen für Entwürfe}
+%
+% \begin{option}{draft}
+% \changes{v2.95}{2002/12/05}{mit \textsl{keyval} reimplementiert}^^A
+% \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}^^A
+% \changes{v3.25}{2017/11/21}{Beachtung von Option \texttt{overfullrule}}^^A
+% \begin{option}{final}
+% \changes{v2.95}{2002/12/05}{obsolete Option}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}
+% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A
+% \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}
+%<*class|extend>
+\KOMA@key{draft}[true]{%
+ \KOMA@set@ifkey{draft}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{draft}{@tempswa}%
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{overfullrule}{@tempswa}%
+ \setlength{\overfullrule}{5pt}%
+ \else
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{draft}{@tempswa}%
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{overfullrule}{@tempswa}%
+ \setlength{\overfullrule}{\z@}%
+ \fi
+ \fi
+}
+%<class>\KOMA@kav@add{.\KOMAClassFileName}{draft}{false}
+%<*package&extend>
+\KOMA@kav@xadd{.scrextend.\scr@pkgextension}{draft}{%
+ \ifdim\overfullrule>\z@ true\else false\fi
+}
+%</package&extend>
+\KOMA@DeclareStandardOption
+%<package&extend>[scrextend]
+{final}{draft=false}
+%</class|extend>
+% \end{macrocode}
+% \begin{option}{overfullrule}
+% \changes{v3.25}{2017/11/21}{new option}^^A
+% \selectlanguage{english}^^A
+% Because option \texttt{draft} can result in unwanted effects I've added a
+% new option to explicite only change the overfull rule setting. However for
+% \textsf{scrextend} and the \KOMAScript{} classes the result is the same.
+% \begin{macrocode}
+%<*class|extend>
+\KOMA@key{overfullrule}[true]{%
+ \KOMA@set@ifkey{overfullrule}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{draft}{@tempswa}%
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{overfullrule}{@tempswa}%
+ \setlength{\overfullrule}{5pt}%
+ \else
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{draft}{@tempswa}%
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{overfullrule}{@tempswa}%
+ \setlength{\overfullrule}{\z@}%
+ \fi
+ \fi
+}
+%<class>\KOMA@kav@add{.\KOMAClassFileName}{overfullrule}{false}
+%<*package&extend>
+\KOMA@kav@xadd{.scrextend.\scr@pkgextension}{overfullrule}{%
+ \ifdim\overfullrule>\z@ true\else false\fi
+}
+%</package&extend>
+%</class|extend>
+% \end{macrocode}
+% \selectlanguage{ngerman}^^A
+% \end{option}^^A overfullrule
+% \end{option}^^A final
+% \end{option}^^A draft
+%
+%
+% \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}}
+%</!extend>
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% \iffalse
+%</!letter>
+% \fi
+%
+% \subsection{Optionen für \texttt{egreg}}
+%
+% \texttt{egreg} hat in einem Kommentar zu
+% \url{https://tex.stackexchange.com/questions/289853} verlauten lassen, dass
+% er \KOMAScript{} u.\,a. deshalb nicht verwendet, weil \KOMAScript{}
+% serifenlose Fonts für Überschriften voreingestellt hat. Er hätte lieber die
+% hässlichen, fetten Antiqua-Fonts. Außerdem reicht es ihm nicht, dass man das
+% einfach per \cs{setkomafont} ändern kann. Er will eine Option dafür. Nun,
+% die soll er haben:
+%
+% \begin{option}{egegdoesnotlikesansseriftitles}
+% \changes{v3.20}{2016/01/29}{neu (speziell)}
+% \changes{v3.20a}{2016/05/19}{auch in der Briefklasse}
+% \begin{macro}{\@gr@gsffamily}
+% \changes{v3.20}{2016/01/29}{neu (intern)}
+% \changes{v3.20a}{2016/05/19}{auch in der Briefklasse}
+% Schaltet je nach Einstellung von Option
+% \texttt{egegdoesnotlikesansseriftitles} entweder auf \cs{sffamily} um oder
+% eben nicht.
+% \begin{macrocode}
+%<*!(package&letter)>
+\KOMA@ifkey{egregdoesnotlikesansseriftitles}{@egregdoesnotlikesansseriftitles}
+\newcommand*{\@gr@gsffamily}{%
+ \if@egregdoesnotlikesansseriftitles\else\sffamily\fi
+}
+%</!(package&letter)>
+% \end{macrocode}
+% \end{macro}^^A \@gr@gsffamily
+% \end{option}^^A egregdoesnotlikesansseriftitles
+%
+% \iffalse
+%</option>
+%<*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}^^A
+% \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}
+%<*class>
+\KOMAExecuteOptions{%
+ parskip=false,%
+%<!letter> headings=big%
+}
+%</class>
+\KOMAProcessOptions\relax
+% \end{macrocode}
+%
+%
+% \iffalse
+%</execoption>
+%<*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>
+%<*extend>
+\scr@ifundefinedorrelax{if@restonecol}{%
+ \expandafter\newif\csname if@restonecol\endcsname
+ \@restonecolfalse
+}{}
+%</extend>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%</!letter>
+% \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}^^A
+% \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}^^A
+% \begin{macro}{\raggeddictum}
+% \changes{v2.8q}{2001/20/04}{neu}^^A
+% \begin{macro}{\raggeddictumtext}
+% \changes{v2.8q}{2001/20/04}{neu}^^A
+% \begin{macro}{\raggeddictumauthor}
+% \changes{v2.8q}{2001/20/04}{neu}^^A
+% \begin{KOMAfont}{dictum}
+% \changes{v2.8q}{2001/20/04}{neues Element}^^A
+% \changes{v3.20}{2016/01/29}{\cs{sffamily} durch \cs{@gr@gsffamily}
+% ersetzt}^^A
+% \begin{KOMAfont}{dictumtext}
+% \changes{v2.8q}{2001/20/04}{neues Element}^^A
+% \begin{KOMAfont}{dictumauthor}
+% \changes{v2.8q}{2001/20/04}{neues Element}^^A
+% \begin{macro}{\dictumauthorformat}
+% \changes{v2.8q}{2001/20/04}{neu}^^A
+% \begin{macro}{\dictumrule}
+% \changes{v3.10}{2011/09/02}{neu}^^A
+% 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\@gr@gsffamily\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
+%</!letter>
+% \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}
+%<*class>
+\setlength{\skip\@mpfootins}{\skip\footins}
+\setlength\fboxsep{3\p@}
+\setlength\fboxrule{.4\p@}
+%</class>
+% \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}^^A
+% Darstellung der Gleichungsnummer:
+% \begin{macrocode}
+%<*!extend>
+%<book|report>\@addtoreset{equation}{chapter}
+\renewcommand*\theequation{%
+%<*book>
+ \expandafter\ifnum\scr@v@is@gt{2.97d}\relax
+ \if@mainmatter\thechapter.\fi
+ \else
+%</book>
+%<book|report> \thechapter.%
+%<book> \fi
+ \@arabic\c@equation
+}
+%</!extend>
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</!letter>
+% \fi
+%
+% \subsection{Definitionen zur Feststellung von linken und rechten
+% Seiten}
+%
+% \begin{macro}{\ifthispageodd}
+% \changes{v2.8q}{2001/11/22}{neu}^^A
+% 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)}^^A
+% \changes{v2.95b}{2006/07/28}{verwendet jetzt \cs{@newl@bel}}^^A
+% \changes{v3.20}{2016/03/25}{use after definition in \texttt{aux}-file}^^A
+% Definition eines neuen \emph{true}-\emph{page}-\emph{odd} Labels.
+% Wird in der \texttt{aux}-Datei verwendet.
+% \begin{macrocode}
+%<*class|extend>
+\newcommand*{\new@tpo@label}{\@newl@bel{tpo}}
+\AtBeginDocument{%
+ \if@filesw
+ \immediate\write\@auxout{%
+ \string\providecommand*\string\new@tpo@label[2]{}%
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scr@tpo}
+% \changes{v2.8q}{2001/11/22}{neu (intern)}^^A
+% 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)}^^A
+% \changes{v2.9l}{2003/01/28}{renamed \cs{if@thispageodd}}^^A
+% \changes{v2.95b}{2006/07/28}{basiert nun auf \cs{@newl@bel}}^^A
+% \changes{v3.17}{2015/03/23}{in zwei Anweisungen ausgeteilt}^^A
+% \begin{macro}{\is@thispageodd@setlabel}
+% \changes{v3.17}{2015/03/23}{neu (intern)}^^A
+% \changes{v3.20}{2016/03/25}{schreibe in die \texttt{aux}-Datei nur
+% \cs{if@filesw}}^^A
+% \changes{v3.23}{2017/02/23}{Macro leert sich nach Benutzung selbst}^^A
+% Diese Makros machen die eigentliche Arbeit. Sie funktionieren 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}[1][\is@thispageodd@setlabel]{%
+ \@bsphack
+ \begingroup
+ \@tempcnta=\scr@tpo
+ \advance\@tempcnta by\@ne
+ \xdef\scr@tpo{\the\@tempcnta}%
+ \expandafter\ifx\csname tpo@\scr@tpo\endcsname\relax
+ \protect\G@refundefinedtrue
+%<!extend> \ClassWarning{\KOMAClassName}{%
+%<extend> \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
+ \edef\is@thispageodd@setlabel{%
+ \if@filesw
+ \unexpanded{\protected@write\@auxout{\let\arabic\relax}}{%
+ \noexpand\string
+ \noexpand\new@tpo@label{\scr@tpo}{\noexpand\arabic{page}}}%
+ \fi
+ \noexpand\def\noexpand\is@thispageodd@setlabel
+ {\unexpanded\expandafter{\is@thispageodd@setlabel}}%
+ }%
+ #1%
+ \@esphack
+}
+\newcommand*{\is@thispageodd@setlabel}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ifthispagewasodd}
+% \changes{v2.9l}{2003/01/20}{neuer Schalter}^^A
+% \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
+}
+%</class|extend>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Definitionen für tiefer gestellten Text}
+%
+% \begin{macro}{\textsubscript}
+% \changes{v2.8h}{2001/07/19}{neu}^^A
+% \begin{macro}{\@textsubscript}
+% \changes{v2.8h}{2001/07/19}{neu (intern)}^^A
+% \changes{v3.10}{2011/09/05}{\cs{providecommand} statt \cs{newcommand},
+% damit das auch noch funktioniert, wenn \textsf{scrextend} nach
+% \textsf{fixltx2e} geladen wird}^^A
+% \changes{v3.25}{2017/11/15}{wird nur noch definiert, wenn nicht vorhanden}^^A
+% 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}
+%<*class|extend>
+\scr@ifundefinedorrelax{textsubscript}{%
+ \DeclareRobustCommand*\textsubscript[1]{%
+ \@textsubscript{\selectfont#1}%
+ }%
+}{%
+ \scr@ifundefinedorrelax{textsubscript }{%
+ \DeclareRobustCommand*\textsubscript[1]{%
+ \@textsubscript{\selectfont#1}%
+ }%
+ }{}%
+}
+\providecommand*{\@textsubscript}[1]{%
+ {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}%
+}
+%</class|extend>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Unsichtbare Stütze}
+% \label{sec:strut}
+%
+% \begin{macro}{\scr@endstrut}
+% \changes{v3.25}{2017/11/15}{neu (intern)}^^A
+% Wird am Ende eines vermutlich horizontalen Materials eine unsichtbare Stütze
+% der Art \cs{strut} eingebaut, werden Leerzeichen, die davor stehen plötzlich
+% zu Leerzeichen in der Ausgabe, auch wenn das gar nicht erwünscht wird. Das
+% kann man verhindern, indem man \cs{unskip} davor setzt. Dummer Weise hat
+% eine solche Stütze dann aber das Problem, dass das letzte Wort davor nicht
+% mehr getrennt wird. Verrückter Weise kann man das wiederum mit \cs{nobreak}
+% lösen. Das sollte dann auch nur im horizontalen Modus gemacht werden.
+% \begin{macrocode}
+%<*class|letter|extend>
+\providecommand*{\scr@endstrut}{\unskip\ifhmode\nobreak\strut\fi}
+%</class|letter|extend>
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{Warnung vor Paketen}
+% \label{sec:packagewarning}
+%
+% \changes{v3.12}{2013/07/08}{neue Warnungen vor bestimmten Paketen}^^A
+% \begin{macro}{\scr@package@not@recommended}
+% \changes{v3.12}{2013/07/08}{neu (intern)}^^A
+% Beim Laden verschiedener Pakete wird nun eine Warnung ausgegeben. In der
+% Regel mit einer Alternativempfehlung.
+% \begin{macro}{\class@shoulddisablepackagewarning@list}
+% \changes{v3.24}{2017/06/25}{neu (nur für Klassenautoren)}^^A
+% Ab \KOMAScript~3.24 ist für Klassenautoren und nur für diese dokumentiert,
+% dass bei Vorhandensein des Makros
+% \cs{class@shoulddisablepackagewarning@list} während dem Laden der
+% \KOMAScript-Klasse für nicht empfohlene Pakete ein
+% \cs{in@}-Vergleich gegen genau den Inhalt dieses Makros stattfindet. Wird
+% der Paketname dabei gefunden, so unterbleibt das Absetzen der Warnung. Zur
+% korrekten Syntax des zweiten Arguments von \cs{in@} sei ausdrücklich auf den
+% Kernel hingewiesen. Ebenso sind Klassenautoren verantwortlich, eine bereits
+% vorhandene Liste nicht einfach zu überschreiben, sondern korrekt zu
+% ergänzen! Eine Definition von \cs{class@shoulddisablepackagewarning@list}
+% nach dem Laden der \KOMAScript-Klasse ist wirkungslos. Da diese
+% Schnittstelle Klassenautoren vorbehalten bleiben soll, die wissen, was sie
+% tun, gibt es keine weitergehende Dokumentation dazu und natürlich auch kein
+% Beispiel.
+% \begin{macrocode}
+%<*class>
+\newcommand*{\scr@package@not@recommended}[2]{%
+ \scr@ifundefinedorrelax{class@shoulddisablepackagewarning@list}{%
+ \@firstofone
+ }{%
+ \edef\reserved@a{%
+ \noexpand\in@{#1}{\class@shoulddisablepackagewarning@list}}%
+ \reserved@a
+ \ifin@\expandafter\@gobble\else\expandafter\@firstofone\fi
+ }{%
+ \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'%
+ }%
+ }%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}^^A \class@shoulddisablepackagewarning@list
+%
+% \textsf{emptypage} wird nicht benötigt, weil es bereits entsprechende
+% Einstellungen in \KOMAScript{} gibt. Darüber hinaus verwendet es
+% \cs{thispagestyle} an Stelle von \cs{pagestyle} in einer Gruppe, was
+% dazu führen kann, dass nach einem \cs{cleardoublepage}, das keine leere
+% Seite erzeugt, die nächste Seite den entsprechenden Seitenstil bekommt.
+% \begin{macrocode}
+\scr@package@not@recommended{emptypage}{%
+ option\MessageBreak
+ `cleardoublepage' with one of it's\MessageBreak
+ several values}
+% \end{macrocode}
+%
+% \textsf{fancyhdr} verwendet veraltete Font-Befehle und beachtet die
+% Font-Einstellungen und diverse andere Befehle und Optionen von \KOMAScript{}
+% nicht.
+% \changes{v3.24}{2017/06/25}{improved \textsf{fancyhdr} warning}^^A
+% \begin{macrocode}
+\scr@package@not@recommended{fancyhdr}{%
+ \MessageBreak
+ package `scrlayer' or `scrlayer-scrpage', because\MessageBreak
+ they support KOMA-Script classes.\MessageBreak
+ With `fancyhdr' several features of class `\KOMAClassName'\MessageBreak
+ like options `headsepline', `footsepline' or command\MessageBreak
+ `\string\MakeMarkcase' and the commands `\string\setkomafont' and\MessageBreak
+ `\string\addtokomafont' for the page style elements need\MessageBreak
+ explicite user intervention to work}
+% \end{macrocode}
+% \changes{v3.23}{2017/02/04}{Verwendung von \textsf{minitoc} kann nicht
+% empfohlen werden}^^A
+% \textsf{minitoc} definiert u.\,a. \cs{@sect} hart um und zerstört so diverse
+% Erweiterungen von \KOMAScript. Es ist nicht abschließend untersucht, was das
+% Paket noch alles zerstört. Derzeit gibt es nur einen Workaround für das
+% genannte Problem mit \cs{@sect} (siehe:
+% Abschnitt~\ref{sec:packageworkarounds}).
+% \begin{macrocode}
+\scr@package@not@recommended{minitoc}{}
+% \end{macrocode}
+%
+% \selectlanguage{english}^^A
+% \changes{v3.26}{2018/07/18}{\textsf{multitoc} not recommended}^^A
+% \textsf{multitoc} not recommended, because up to version 2.01 it breaks all
+% additional list-ofs and even table of contents, list of figures and list of
+% tables, if option \texttt{toc}, \texttt{lof} or \texttt{lot} has not been
+% set. And it is not needed, because you can use \cs{BeforeStartingTOC} and
+% \cs{AfterStartingTOC} to make two-column list-ofs.
+% \begin{macrocode}
+%<*!letter>
+\scr@package@not@recommended{multitoc}{%
+ package `multicol' and, e.g.:\MessageBreak
+ \space\space
+ \string\BeforeStartingTOC{\string\begin{multicols}{2}}\MessageBreak
+ \space\space
+ \string\AfterStartingTOC{\string\end{multicols}}\MessageBreak
+ to make all ToCs two-columned.\MessageBreak
+ \@ifpackagelater{2018/07/18}{}{%
+ Note, package `multitoc' breaks additional\MessageBreak
+ ToCs generated by `\string\DeclareNewTOC' or\MessageBreak
+ packages like `listings' or `newcaption' and\MessageBreak
+ even the standard table of contents,\MessageBreak
+ list of figures or list of tables,\MessageBreak
+ if you omit the corresponding options `toc',\MessageBreak
+ `lof' or `lot'.%
+ }%
+}
+%</!letter>
+% \end{macrocode}
+% \selectlanguage{ngerman}^^A
+%
+% \textsf{parskip} ist nur ein Notfallpaket für Klassen, die selbst keinen
+% Absatzabstand unterstützen.
+% \begin{macrocode}
+\scr@package@not@recommended{parskip}{%
+ option\MessageBreak
+ `parskip' with one of it's several values}
+% \end{macrocode}
+%
+% \changes{v3.16}{2015/01/21}{Verwendung von \textsf{titleps} kann nicht
+% empfohlen werden}^^A
+% \textsf{titleps} beachtet die Font-Einstellungen und diverse andere Befehle
+% und Optionen von \KOMAScript{} nicht.
+% \begin{macrocode}
+\scr@package@not@recommended{titleps}{%
+ package `scrlayer-scrpage'}
+% \end{macrocode}
+%
+% \textsf{titlesec} beschädigt diverse \KOMAScript{} Erweiterungen und
+% benötigt eigene Workarounds (siehe Abschnitt~\ref{sec:packageworkarounds}),
+% so dass es einfach nicht gut mit \KOMAScript{} harmoniert.
+% \begin{macrocode}
+%<*!letter>
+\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}
+%</!letter>
+% \end{macrocode}
+%
+% \selectlanguage{english}^^A
+% \changes{v3.25}{2017/11/21}{Usage of \textsf{tocbibind} not recommended}^^A
+% \textsf{tocbibind} does several things, that break \KOMAScript, i.e.:
+% \begin{itemize}
+% \item usage of \cs{MakeUppercase} within running heads,
+% \item usage of hard codes \texttt{toc} for the ToC entries,
+% \item hard redefinition of \texttt{thebibliography},
+% \item hard redefinition of \texttt{theindex},
+% \item hard redefinition of \cs{tableofcontents},
+% \item hard redefinition of \cs{listoftables},
+% \item hard redefinition of \cs{listoffigures},
+% \item hard redefinition of \cs{@makechapterhead}
+% \end{itemize}
+% \begin{macrocode}
+%<*!letter>
+\scr@package@not@recommended{tocbibind}{%
+ options like `listof=totoc'\MessageBreak
+ or `bibliography=totoc', or commands like\MessageBreak
+ `\string\setuptoc{toc}{totoc}' instead of this package,\MessageBreak
+ because it breaks several KOMA-Script features of\MessageBreak
+ the list of figures, list of tables, bibliography,\MessageBreak
+ index and the running head%
+}
+%</!letter>
+% \end{macrocode}
+%
+% \changes{v3.26}{2018/07/18}{Usage of \textsf{tocloft} not recommended}^^A
+% \textsf{tocloft} does redefine \cs{tableofcontents}, \cs{listoffigures},
+% \cs{listoftables}, \cs{l@part} \dots{} \cs{l@subparagraph} and breaks
+% \KOMAScript, i.e.:
+% \begin{itemize}
+% \item commands \cs{BeforeTOCHead}, \cs{AfterTOCHead},
+% \cs{BeforeStartingTOC}, \cs{AfterStartingTOC},
+% \item almost all TOC features,
+% \item options \texttt{listof=totoc}, \texttt{listof=numbered},
+% \item option \texttt{listof=flat},
+% \item option \texttt{listof=entryprefix},
+% \item all options of \cs{DeclareTOCEntryStyle},
+% \end{itemize}
+% \begin{macrocode}
+%<*!letter>
+\scr@package@not@recommended{tocloft}{%
+ options like `listof=entryprefix',\MessageBreak
+ commands like `\string\listoflofentryname' or\MessageBreak
+ `\string\listoflotentryname',
+ and `\string\DeclareTOCStyleEntry' or\MessageBreak
+ `\string\RedeclareSectionCommand'
+ instead of this package,\MessageBreak
+ because it breaks several KOMA-Script features of\MessageBreak
+ the list of figures, list of tables and table of\MessageBreak
+ contents, i.e., options like `listof=numbered',\MessageBreak
+ `listof=flat or `toc=flat', commands like\MessageBreak
+ `\string\BeforeTOCHead{...}' and
+ `\string\AfterTOCHead{...}',\MessageBreak
+ `\string\BeforeStartingTOC{...}' and
+ \string\AfterStartingTOC{...}',\MessageBreak
+ all features of `\string\DeclareTOCStyleEntry',\MessageBreak
+ and the ToC entry features of `\string\DeclareSecionCommand'\MessageBreak
+ and `\string\RedeclareSectionCommand' of levels\MessageBreak
+ `part',
+%<article> `chapter',
+ `section', `subsection',\MessageBreak
+ `subsubsection', `paragraph' and `subparagraph'%
+}
+%</!letter>
+%</class>
+% \end{macrocode}
+% \selectlanguage{ngerman}^^A
+% \end{macro}^^A \scr@package@not@recommended
+%
+% \subsection{Workarounds für fremde Pakete}
+% \label{sec:packageworkarounds}
+%
+% \changes{v3.23}{2017/02/04}{\textsf{minitoc} verursacht ein schwerwiegendes
+% Problem}^^A
+% Das Paket \textsf{minitoc} verursacht ein schwerwiegendes Problem indem es
+% \cs{@sect} hart umdefiniert, ohne zuvor zu testen, ob die Definition den
+% Erwartungen entspricht. Ich werde hier einmal versuchen, mich darum herum zu
+% lavieren. Eine wirklich gute Lösung ist das sicher nicht. Man sollte das
+% Paket schlicht besser nicht mit \KOMAScript{} zusammen verwenden.
+% \begin{macrocode}
+%<*class>
+%<*!letter>
+\BeforePackage{minitoc}{%
+ \let\scr@mt@saved@sect\@sect
+}
+\AfterPackage{minitoc}{%
+ \def\@tempa#1#2#3#4#5#6[#7]#8{%
+ \ifnum #2<1 \relax
+ \addtocontents{toc}{\protect\sectbegin}
+ \fi
+ \stc@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}%
+ }%
+ \ifx\@sect\@tempa
+% \end{macrocode}
+% Note: There are several bugs in this definition (e.g. missing
+% \cs{expandafter} and orphan spaced). Nevertheless its the original one from
+% \textsf{minitoc} 61 and so I have to use it.
+% \begin{macrocode}
+ \def\@tempa#1#2#3#4#5#6[#7]#8{
+ \expandafter
+ \ifx\csname #1\endcsname\section\relax
+ \addcontentsline{lof}{xsect}{#7}%
+ \addcontentsline{lot}{xsect}{#7}%
+ \fi
+ \ifx\csname #1\endcsname\starsection\relax
+ \addcontentsline{lof}{xsect}{#7}%
+ \addcontentsline{lot}{xsect}{#7}%
+ \fi
+ \ifnum #2>\c@secnumdepth\relax
+ \let\@svsec\@empty
+ \else
+ \refstepcounter{#1}%
+ \edef\@svsec{\csname the#1\endcsname\hskip 1em}%
+ \fi
+ \@tempskipa #5\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup #6\relax
+ \@hangfrom{\hskip #3\relax\@svsec}%
+ {\interlinepenalty \@M #8\par}%
+ \endgroup
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth\relax
+ \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\relax
+ \else
+ \protect\numberline{\csname the#1\endcsname}
+ \fi
+ #7}%
+ }%
+ \fi
+ \@xsect{#5}%
+ }%
+ \ifx\stc@sect\@tempa
+ \ClassWarning{\KOMAClassName}{%
+ Redefining minitoc's internal command
+ `\string\stc@sect'\MessageBreak
+ to prevent minitoc to destroy several features\MessageBreak
+ of KOMA-Script%
+ }%
+ \let\stc@sect\scr@mt@saved@sect
+ \else
+ \ClassInfo{\KOMAClassName}{%
+ Deactivating the `minitoc' workaround,\MessageBreak
+ because of unexpected definition of\MessageBreak
+ `\string\stc@sect'%
+ }%
+ \let\scr@mt@saved@sect\relax
+ \fi
+ \else
+ \ifx\@sect\scr@mt@saved@sect
+ \ClassInfo{\KOMAClassName}{%
+ Deactivating the `minitoc' workaround for
+ `\string\@sect',\MessageBreak
+ because it is not needed%
+ }%
+ \else
+ \ClassInfo{\KOMAClassName}{%
+ Deactivating the `minitoc' workaround,\MessageBreak
+ because of unexpected definition of\MessageBreak
+ `\string\@sect'%
+ }%
+ \fi
+ \let\scr@mt@saved@sect\relax
+ \fi
+}
+%</!letter>
+%</class>
+% \end{macrocode}
+%
+% \changes{v3.13a}{2014/10/09}{\textsf{titlesec} hat ein schwerwiegendes
+% Problem}^^A
+% Das Paket \textsf{titlesec} hat ein schwerwiegendes Problem, wenn
+% Überschriften nicht per \cs{@startsection} definiert sind. Ich werde hier
+% einmal versuchen, mich darum herum zu lavieren. Eine wirklich gute Lösung
+% ist das sicher nicht. Man sollte das Paket schlicht besser nicht mit
+% \KOMAScript{} zusammen verwenden.
+% \begin{macrocode}
+%<*class>
+%<*!letter>
+\BeforePackage{titlesec}{%
+ \let\scr@ttl@saved@section\section
+ \let\scr@ttl@saved@subsection\subsection
+ \let\scr@ttl@saved@subsubsection\subsubsection
+ \let\scr@ttl@saved@paragraph\paragraph
+ \let\scr@ttl@saved@subparagraph\subparagraph
+}
+\AfterPackage{titlesec}{%
+% \end{macrocode}
+% Hack getestet mit \textsf{titlesec} 2011/12/15 v2.10.0 bis 2016/03/21
+% v2.10.2. Daher bis zu diesem Datum freigeschaltet.
+% \changes{v3.20}{2016/03/22}{\textsf{titlesec}-Hack auch für Version
+% 2016/03/15}^^A
+% \changes{v3.20}{2016/03/24}{\textsf{titlesec}-Hack auch für Version
+% 2016/03/21}^^A
+% \begin{macrocode}
+ \@ifpackagelater{titlesec}{2016/03/22}{%
+ \ClassInfo{\KOMAClassName}{%
+ Deactivating the `titlesec' workaround,\MessageBreak
+ because package is newer than expected%
+ }%
+ }{%
+ \ClassWarning{\KOMAClassName}{%
+ Activating an ugly workaround for a missing\MessageBreak
+ feature of package `titlesec`%
+ }%
+ \def\scr@ttl@@extract#1\scr@startsection#2#3#4#5#6#7#8{%
+ \@tempskipa=#5
+ \@tempskipb=#6
+ \ifdim\@tempskipa<\z@
+ \toks@{\titlespacing*#8{#4}}%
+ \@tempskipa-\@tempskipa
+ \else
+ \toks@{\titlespacing#8{#4}}%
+ \fi
+ \@ifundefined{ttl@space}{}{%
+ \ttl@assign\@tempskipa*\ttl@space\relax\beforetitleunit}%
+ \ifdim\@tempskipb<\z@
+ \if@tempswa
+ \titleformat#8[runin]%
+ {\ttl@fonts\ttl@sizes{#3}}{\@seccntformat{#2}}%
+ {\z@}\ttl@passexplicit
+ \else
+ \titleformat#8[runin]%
+ {#7}{\@seccntformat{#2}}%
+ {\z@}\ttl@passexplicit
+ \fi
+ \@tempskipb-\@tempskipb
+ \else
+ \if@tempswa
+ \titleformat#8%
+ {\ttl@fil\ttl@fonts\ttl@sizes{#3}}{\@seccntformat{#2}}%
+ {\z@}\ttl@passexplicit
+ \else
+ \titleformat#8%
+ {#7}{\@seccntformat{#2}}%
+ {\z@}\ttl@passexplicit
+ \fi
+ \@ifundefined{ttl@space}{}{%
+ \ttl@assign\@tempskipb*\ttl@space\relax\aftertitleunit}%
+ \fi
+ \edef\ttl@a{\the\toks@{\the\@tempskipa}{\the\@tempskipb}}
+ \ttl@a}%
+ \expandafter\scr@ttl@@extract\scr@ttl@saved@section\section
+ \expandafter\scr@ttl@@extract\scr@ttl@saved@subsection\subsection
+ \expandafter\scr@ttl@@extract\scr@ttl@saved@subsubsection\subsubsection
+ \expandafter\scr@ttl@@extract\scr@ttl@saved@paragraph\paragraph
+ \expandafter\scr@ttl@@extract\scr@ttl@saved@subparagraph\subparagraph
+ \let\scr@ttl@saved@section\relax
+ \let\scr@ttl@saved@subsection\relax
+ \let\scr@ttl@saved@subsubsection\relax
+ \let\scr@ttl@saved@paragraph\relax
+ \let\scr@ttl@saved@subparagraph\relax
+ \let\scr@ttl@@extract\relax
+ }%
+}
+%</!letter>
+%</class>
+% \end{macrocode}
+%
+%
+% \iffalse
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-miscellaneous.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-notepaper.dtx b/macros/latex/contrib/koma-script/source/scrkernel-notepaper.dtx
new file mode 100644
index 0000000000..208e4563a8
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-notepaper.dtx
@@ -0,0 +1,4091 @@
+% \CheckSum{3388}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-notepaper.dtx
+% Copyright (c) Markus Kohm, 2006-2018
+%
+% 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-2018
+%
+% 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 3044 2018-11-16 19:00:32Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-11-16 20:00:32 +0100 (Fri, 16 Nov 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1767 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-notepaper.dtx}
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (note-paper)]
+ }%
+\reserved@a
+% \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}
+%</dtx>
+% \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}^^A
+% Der Briefkopf kann auch einfach abgeschaltet werden.
+% \begin{macro}{\if@firsthead}
+% \changes{v2.8q}{2002/01/25}{Neuer Schalter (intern)}^^A
+% Gespeichert wird die Information in einem einfachen Schalter.
+% Voreingestellt ist die Verwendung des Briefkopfes.
+% \begin{macrocode}
+\KOMA@ifkey{firsthead}{@firsthead}
+\KOMAExecuteOptions{firsthead=true}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{fromalign}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}^^A
+% 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}^^A
+% \changes{v2.97e}{2007/11/13}{neue Werte für Verwendung der
+% Absenderergänzung}^^A
+% 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
+ \KOMA@kav@xreplacevalue{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{fromalign}{#1}%
+ \ifcase\@alignfrom\or\or\or\@firstheadfalse\or\@firstheadfalse\fi
+ \fi
+}
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{fromalign}{left}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{fromrule}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}^^A
+% 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}^^A
+% 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}
+\KOMA@ncmdkey{fromrule}[below]{@rulefrom}{%
+ {false}{0},{no}{0},{off}{0},{aftername}{1},%
+ {below}{2},{afteraddress}{2},{true}{2},{yes}{2},{on}{2}%
+}
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{fromrule}{false}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{fromphone}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% 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}^^A
+% \begin{macro}{\@phonetrue}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% \begin{macro}{\@phonefalse}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% 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}^^A
+% 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}^^A
+% \begin{macro}{\@mobilephonetrue}
+% \changes{v3.12}{2013/05/29}{Neu}^^A
+% \begin{macro}{\@mobilephonefalse}
+% \changes{v3.12}{2013/05/29}{Neu}^^A
+% 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}^^A
+% 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}^^A
+% \begin{macro}{\@faxtrue}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% \begin{macro}{\@faxfalse}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% 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}^^A
+% 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}^^A
+% \begin{macro}{\@emailtrue}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% \begin{macro}{\@emailfalse}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% 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}^^A
+% 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}^^A
+% \begin{macro}{\@wwwtrue}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% \begin{macro}{\@wwwfalse}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% 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}^^A
+% 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}^^A
+% \begin{macro}{\@logotrue}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% \begin{macro}{\@logofalse}
+% \changes{v2.8q}{2002/01/25}{Neu}^^A
+% 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}^^A
+% \changes{v3.03}{2009/03/04}{neue Werte}^^A
+% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}^^A
+% 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)}^^A
+% Die Speicherung erfolgt wiederum in einem Makro.
+% \begin{macrocode}
+%<*class>
+\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 errors. 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 errors. A better solution would be\MessageBreak
+ to change the code}%
+ \KOMAoptions{addrfield=false}}
+%</class>
+\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},%
+ {topaligned}{5},{alignedtop}{5}%
+}
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{addrfield}{true}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{priority}
+% \changes{v3.03}{2009/03/04}{neu}^^A
+% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}^^A
+% 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)}^^A
+% Abgelegt wird die Art der Priorität in einem Macro.
+% \begin{macrocode}
+\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}%
+}%
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{priority}{false}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{backaddress}
+% \changes{v2.8q}{2002/01/22}{Neu}^^A
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \changes{v3.17}{3015/03/16}{interne Speicherung der Werte}^^A
+% 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)}^^A
+% 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
+ \if@baddr
+ \ifx\backaddr@format\underline
+ \KOMA@kav@replacevalue{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{backaddress}{underlined}%
+ \else
+ \ifx\backaddr@format\@firstofone
+ \KOMA@kav@replacevalue{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{backaddress}{plain}%
+ \else
+ \KOMA@kav@replacevalue{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{backaddress}{true}%
+ \fi
+ \fi
+ \else
+ \KOMA@kav@replacevalue{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{backaddress}{false}%
+ \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}^^A
+% \changes{v2.97c}{2007/03/30}{vertauschte Bedeutung korrigiert}^^A
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}^^A
+% 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
+ \KOMA@kav@replacevalue{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{locfield}{wide}%
+ \else
+ \endgroup
+ \@biglocfalse
+ \KOMA@kav@replacevalue{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{locfield}{narrow}%
+ \fi
+ \else
+ \endgroup
+ \FamilyKeyStateUnknownValue
+ \fi
+}
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{locfield}{narrow}
+% \end{macrocode}
+% \begin{option}{wlocfield}
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{slocfield}
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \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}^^A
+% \changes{v3.00}{2008/06/06}{es muss \cs{FamilyUnkownKeyVal} statt
+% \cs{KOMA@unkown@keyval} lokal umdefiniert werden}^^A
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}^^A
+% 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)}^^A
+% \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
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{foldmarks}{\@usefolds}%
+ \KOMA@kav@xadd{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{foldmarks}{\if@fold true\else false\fi}%
+ \fi
+}
+\KOMA@kav@xadd{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{foldmarks}{\@usefolds}%
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{foldmarks}{true}%
+% \end{macrocode}
+% \begin{macro}{\scr@removechar}
+% \changes{v2.97e}{2007/11/08}{Neu (intern)}^^A
+% \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}^^A
+% \changes{v2.96a}{2006/12/07}{vertauschte Bedeutung korrigiert}^^A
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}^^A
+% 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}^^A
+% \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)}^^A
+% 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
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{wide}%
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{narrow}%
+ \KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{wide}%
+ \or
+ \endgroup
+ \@refwidefalse
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{wide}%
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{narrow}%
+ \KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{narrow}%
+ \or
+ \endgroup
+ \def\@datepos{2}%
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{dateleft}%
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{dateright}%
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{nodate}%
+ \KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{dateleft}%
+ \or
+ \endgroup
+ \def\@datepos{1}%
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{dateleft}%
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{dateright}%
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{nodate}%
+ \KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{dateright}%
+ \or
+ \endgroup
+ \def\@datepos{0}%
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{dateleft}%
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{dateright}%
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{nodate}%
+ \KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{refline}{nodate}%
+ \fi
+ \else
+ \endgroup
+ \FamilyKeyStateUnknownValue
+ \fi
+}
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{refline}{dateright}%
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{refline}{narrow}%
+% \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}^^A
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}^^A
+% 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)}^^A
+% 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)}^^A
+% \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
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{subject}{\if@subj titled\else untitled\fi}%
+ \KOMA@kav@xadd{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{subject}{\if@subjafter after\else before\fi opening}%
+ \ifx\subject@format\underline
+ \KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{subject}{underlined}%
+ \fi
+ \ifx\raggedsubject\raggedright
+ \KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{subject}{left}%
+ \else
+ \ifx\raggedsubject\raggedleft
+ \KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{subject}{right}%
+ \else
+ \ifx\raggedsubject\centering
+ \KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{subject}{centered}%
+ \fi
+ \fi
+ \fi
+ \fi
+}
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{subject}{untitled}%
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{subject}{beforeopening}%
+% \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}^^A
+% 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}^^A
+% Der Fuß des Briefbogens kann auch einfach abgeschaltet werden.
+% \begin{macro}{\if@firstfoot}
+% \changes{v2.8q}{2002/01/25}{Neuer Schalter (intern)}^^A
+% 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}^^A
+% \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}^^A
+% 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
+ \KOMA@kav@xreplacevalue{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{pagenumber}{%
+ \ifcase \@pageat
+ topleft%
+ \or
+ topmiddle%
+ \or
+ topright%
+ \or
+ botleft%
+ \or
+ botmiddle%
+ \or
+ botright%
+ \else
+ false%
+ \fi
+ }%
+}
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{pagenumber}{botmiddle}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+%
+% \iffalse
+%</letter>
+%</option>
+%<*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}^^A
+% \begin{macro}{\@firsthead}
+% \changes{v3.08}{2010/10/28}{der Kopf des Briefbogens wird über eine
+% Variable realisiert}^^A
+% \begin{macro}{\@gen@firsthead}
+% \changes{v2.8q}{2002/01/28}{Neu}^^A
+% \changes{v2.97c}{2007/05/08}{Dicke der Linie konfigurierbar}^^A
+% \changes{v2.97c}{2007/05/08}{Schrift (Farbe) der Linie konfigurierbar}^^A
+% \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}^^A
+% \begin{KOMAvar}{firsthead}
+% \changes{v3.08}{2010/10/28}{Neu}^^A
+% \changes{v3.13b}{2014/10/04}{neuer \emph{hook} nur für
+% \texttt{DINmtext.lco}}^^A
+% 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}
+%<*class>
+\newcommand*{\@firsthead}{%
+ \ClassWarning{scrlttr2}{%
+ Deprecated usage of \string\@firsthead.\MessageBreak
+ \string\usekomavar{firsthead} should be used\MessageBreak
+ instead of \string\@firsthead
+ }%
+ \usekomavar{firsthead}%
+}
+%</class>
+\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}{}{%
+ \csname scr@default@firsthead@fromaddress@hook\endcsname
+ \ignorespaces\usekomavar{fromaddress}%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{KOMAvar}
+% \begin{macro}{\scr@firsthead@postsetvar}
+% \changes{v3.08}{2010/10/28}{Neu (intern)}^^A
+% \changes{v3.17}{2015/03/16}{internes Setzen von Option
+% \texttt{fromalign!=no}}^^A
+% Ü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}{%
+ \KOMAExecuteOptions[.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ ]{fromalign=no}%
+}
+% \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}
+%<*class>
+\newcommand{\firsthead}{%
+ \ClassWarning{scrlttr2}{%
+ Deprecated usage of \string\firsthead.\MessageBreak
+ You should use \string\setkomavar{firsthead}\MessageBreak
+ instead of \string\firsthead
+ }
+ \setkomavar{firsthead}%
+}
+%</class>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Schrifteinstellungen für den Briefbogen}
+%
+% \begin{KOMAfont}{foldmark}
+% \changes{v2.97c}{2007/05/08}{Neu}^^A
+% 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}^^A
+% 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}}^^A
+% \changes{v3.21}{2016/05/19}{beachtet Option
+% \texttt{egregdoesnotlikesansseriftitles}}^^A
+% Die Rücksendeadresse.
+% \begin{macrocode}
+\newkomafont{backaddress}{\@gr@gsffamily}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{specialmail}
+% \changes{v2.97c}{2007/07/06}{Neues Font-Element}^^A
+% Die Versandart.
+% \begin{macrocode}
+\newkomafont{specialmail}{}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{priority}
+% \changes{v3.03}{2009/03/04}{Neues Font-Element}^^A
+% Grundschrift für die Priorität des Briefs, falls diese A oder B ist. Es wird
+% ohne Durchschuss gearbeitet. An dieser Stelle ist Serifenlos quasi
+% vorgeschrieben, so dass wir hier Option
+% \texttt{egregdoesnotlikesansseriftitles} ignorieren.
+% \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}^^A
+% 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}^^A
+% Schrift für das Logo \texttt{P.P.}, das im Anschriftmodus \texttt{PP}
+% gesetzt wird. An dieser Stelle ist serifenlos quasi vorgeschrieben, so dass
+% wir hier Option \texttt{egregdoesnotlikesansseriftitles} ignorieren.
+% \begin{macrocode}
+\newkomafont{PPlogo}{\sffamily\bfseries}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{PPdata}
+% \changes{v3.03}{2009/03/04}{Neues Font-Element}^^A
+% Schrift, die innerhalb des PP-Kopfes für die Daten verwendet wird.
+% gesetzt wird. And dieser Stelle ist serifenlos quasi vorgeschrieben, so dass
+% wir hier Option \texttt{egregdoesnotlikesansseriftitles} ignorieren.
+% \begin{macrocode}
+\newkomafont{PPdata}{\sffamily}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{addressee}
+% \changes{v2.97c}{2007/07/06}{Neues Font-Element}^^A
+% Die komplette Anschrift.
+% \begin{macrocode}
+\newkomafont{addressee}{}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{toname}
+% \changes{v2.97c}{2007/07/06}{Neues Font-Element}^^A
+% 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}^^A
+% 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}^^A
+% \changes{v3.21}{2016/05/19}{beachtet Option
+% \texttt{egregdoesnotlikesansseriftitles}}^^A
+% Die Feldnamen in der Geschäftszeile.
+% \begin{macrocode}
+\newkomafont{refname}{\@gr@gsffamily\scriptsize}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{refvalue}
+% \changes{v2.97c}{2007/05/14}{Neues Font-Element}^^A
+% \changes{v2.97d}{2007/10/09}{Voreinstellung korrigiert}^^A
+% Die Feldwerte in der Geschäftszeile. Hier gibt es keinen Bedarf, Option
+% \texttt{egregdoesnotlikesansseriftitles} zu beachten, da diese in
+% Version~2.97 noch nicht existierte.
+% \begin{macrocode}
+%<*class>
+\ifnum\scr@compatibility=\@nameuse{scr@v@2.97}\relax
+ \newkomafont{refvalue}{\sffamily\scriptsize}
+\else
+%</class>
+ \newkomafont{refvalue}{}
+%<class>\fi
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{placeanddate}
+% \changes{v3.12}{2013/07/31}{Neues Font-Element}^^A
+% 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}{lettertitle}
+% \changes{v3.17}{2015/02/21}{neu als Ersatz für \texttt{letter}}
+% \changes{v3.21}{2016/05/19}{beachtet Option
+% \texttt{egregdoesnotlikesansseriftitles}}^^A
+% Der Brieftitel.
+% \begin{macrocode}
+\newkomafont{lettertitle}{\normalcolor\@gr@gsffamily\bfseries}
+% \end{macrocode}
+% \begin{KOMAfont}{title}
+% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}}^^A
+% \changes{v3.17}{2015/02/21}{nur noch ein Alias}^^A
+% \changes{v3.17a}{2015/04/26}{Alias korrigiert}^^A
+% \begin{macrocode}
+%<package>\scr@ifundefinedorrelax{scr@fnt@title}{%
+ \aliaskomafont{title}{lettertitle}%
+%<package>}{}
+% \end{macrocode}
+% \end{KOMAfont}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{lettersubject}
+% \changes{v3.17}{2015/02/21}{neu als Ersatz für \texttt{subject}}
+% \changes{v3.17a}{2015/04/26}{Alias korrigiert}^^A
+% Der Betreff im Brief.
+% \begin{macrocode}
+\newkomafont{lettersubject}{\normalfont\bfseries}
+% \end{macrocode}
+% \begin{KOMAfont}{subject}
+% \changes{v2.95}{2006/03/23}{jetzt mit \cs{newkomafont}}^^A
+% \changes{v3.17}{2015/02/21}{nur noch ein Alias}^^A
+% \begin{macrocode}
+%<package>\scr@ifundefinedorrelax{scr@fnt@subject}{%
+ \aliaskomafont{subject}{lettersubject}%
+%<package>}{}
+% \end{macrocode}
+% \end{KOMAfont}
+% \end{KOMAfont}
+%
+% \subsubsection{Längen für den Briefbogen}
+%
+% \begin{macro}{\ltr@len@foldmarkhpos}
+% \changes{v2.8q}{2001/10/06}{Neu}^^A
+% 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}^^A
+% 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}^^A
+% \begin{macro}{\ltr@len@mfoldmarkvpos}
+% \changes{v2.97e}{2007/11/08}{Neu}^^A
+% \begin{macro}{\ltr@len@bfoldmarkvpos}
+% \changes{v2.8q}{2001/10/06}{Neu}^^A
+% 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}^^A
+% 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}^^A
+% \begin{macro}{\ltr@len@hfoldmarklength}
+% \changes{v2.97e}{2007/11/10}{Neu}^^A
+% \begin{macro}{\ltr@len@mfoldmarklength}
+% \changes{v2.97e}{2007/11/10}{Neu}^^A
+% \begin{macro}{\ltr@len@bfoldmarklength}
+% \changes{v2.97e}{2001/11/10}{Neu}^^A
+% \begin{macro}{\ltr@len@lfoldmarklength}
+% \changes{v2.97e}{2001/11/10}{Neu}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% Breite des Adressfensters
+% \begin{macrocode}
+\@newplength{toaddrwidth}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@toaddrheight}
+% \changes{v2.8q}{2001/10/06}{Neu}^^A
+% \changes{v3.03b}{2009/06/25}{Implementierung an Doku angepasst}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% Breite der Geschäftszeile.
+% \begin{macrocode}
+\@newplength{refwidth}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ltr@len@refhpos}
+% \changes{v2.9l}{2003/01/28}{Neu}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% \begin{macro}{\@firstfoot}
+% \changes{v3.08}{2010/10/28}{der Fuß des Briefbogens wird über eine
+% Variable realisiert}^^A
+% \begin{KOMAvar}{firstfoot}
+% \changes{v3.08}{2010/10/28}{Neu}^^A
+% \begin{macrocode}
+% Der Fuß des Briefbogens ist in der Voreinstellung leer.
+\newkomavar{firstfoot}
+%<*class>
+\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}%
+}
+%</class>
+% \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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% \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]{{%
+ \setbox\z@\vbox to\z@{#1\vss}%
+ \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
+ \setlength{\baselineskip}{\z@}%
+ \setlength{\@tempdima}{\ht0}\addtolength{\@tempdima}{\dp0}%
+ \box\z@\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)}^^A
+% Dabei werden nur die horizontalen Faltmarken gesetzt, die tatsächlich
+% existieren.
+% \begin{macro}{\@foldmark}
+% \changes{v2.8n}{2001/09/07}{Neu}^^A
+% \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}^^A
+% \changes{v2.97c}{2007/05/08}{Schrift (Farbe) konfigurierbar}^^A
+% 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)}^^A
+% 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}^^A
+% \changes{v2.8q}{2001/10/30}{zusätzlich ein optionales Argument}^^A
+% \begin{macro}{\if@savevbox@warning}
+% \begin{macro}{\@savevbox@warningtrue}
+% \begin{macro}{\@savevbox@warningfalse}
+% \changes{v2.8q}{2001/10/30}{Neu}^^A
+% 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%
+ \setbox\z@\vbox{#3}%
+ \setlength{\@tempdima}{#2}%
+ \setlength{\@tempdimb}{\ht0}\addtolength{\@tempdimb}{\dp0}%
+ \ifdim \@tempdimb>\@tempdima%
+ \addtolength{\@tempdimb}{-\@tempdima}%
+%<class> \ClassWarning{scrlttr2}{%
+%<package> \PackageWarning{scrletter}{%
+ #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}^^A
+% \changes{v2.8q}{2001/10/30}{\cs{parfillskip} lokal auf 0 gesetzt}
+% \changes{v2.8q}{2001/10/30}{Fuß explizit in eine Box gesetzt}^^A
+% \changes{v2.9l}{2003/01/23}{Positionierung verbessert}^^A
+% \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}^^A
+% beachtet}
+% \changes{v3.05}{2009/11/09}{neue Pseudo-Länge \texttt{firstfoothpos}^^A
+% 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}^^A
+% \changes{v2.8q}{2002/06/03}{Sonderbehandlung für Adressfeld rechts}^^A
+% \changes{v2.9o}{2003/02/20}{\cs{noindent} eingefügt bei
+% \texttt{specialmail}}^^A
+% \changes{v2.96}{2006/07/31}{Benutzung von \cs{backaddr@format}}^^A
+% \changes{v3.03}{2009/03/04}{Priorität kann Versandart ersetzen}^^A
+% \changes{v3.03}{2009/03/04}{Neue Anschriftmodi \texttt{PP},
+% \texttt{backgroundimage}, \texttt{addresseeimage}}^^A
+% \changes{v3.03b}{2009/06/30}{Schreibfehler bei »addressee« korrigiert}^^A
+% \changes{v3.06a}{2010/07/29}{Absatzparameter werden passend
+% eingestellt}^^A
+% \changes{v3.22}{2016/12/21}{zweimal fehlende Klammern bei \texttt{toname}
+% ergänzt}^^A
+% \changes{v3.22}{2016/12/21}{zweimal fehlende Klammern und \cs{endgraf} bei
+% \texttt{toaddress} ergänzt}^^A
+% 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 \ifnum\@afieldmode=5 \@ne\else\@afieldmode\fi\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}}}%
+ }%
+ \ifnum\@afieldmode=\@ne\vfil\fi%
+ \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}\endgraf}}}}%
+ \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
+% \end{macrocode}
+% \changes{v3.17}{2015/04/17}{\cs{setbox} durch \cs{sbox} ersetzt}^^A
+% \changes{v3.25}{2017/11/15}{Verwendung von \cs{scr@endstrut} statt
+% \cs{unskip}\cs{strut}}^^A
+% \begin{macrocode}
+ \sbox\@tempboxa{%
+ {\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}\scr@endstrut\\
+ \usekomavar{place}\scr@endstrut
+ \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}\endgraf}}}}%
+ \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)}^^A
+% 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}^^A
+% 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}^^A
+% \changes{v2.8q}{2002/06/03}{Sonderbehandlung für Adressfeld rechts}^^A
+% 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}^^A
+% \changes{v2.98b}{2008/01/30}{Absenderergänzung immer setzen, wenn
+% verwendet}^^A
+% 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}^^A
+% \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}^^A
+% 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)}^^A
+% 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}
+% \changes{v3.17}{2015/04/17}{\cs{setbox} durch \cs{sbox} ersetzt}
+% 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}}%
+ \sbox\z@{\strut\usekomafont{refname}\usekomavar*{#1}}%
+ \ifdim \@tempdima<\wd0\setlength{\@tempdima}{\wd0}\fi
+ \if@tempswa\enskip\hfill\fi
+ \parbox[t]{\@tempdima}{\noindent\raggedright
+ \strut\box\z@\\\usekomafont{refvalue}\strut\usekomavar{#1}}%
+ \@tempswatrue
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@test@reffield}
+% \changes{v3.09}{2011/03/06}{Neu (intern)}^^A
+% Dieses Makro testet, ob ein Feld tatsächlich zu setzen ist und setzt
+% ggf. \cs{@tempswa}.
+% \begin{macrocode}
+\newcommand*{\@test@reffield}[1]{%
+ \ifkomavarempty{#1}{}{%
+%<trace> \if@tempswa\l@addto@macro\@tempa{, }\fi
+%<trace> \l@addto@macro\@tempa{#1}%
+ \@tempswatrue
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@set@reffields}
+% \changes{v2.8q}{2002/01/14}{Neu}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% \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}^^A
+% 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}^^A
+% \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
+%<trace> \let\@tempa\@empty
+ \@set@reffields
+ \ifcase \@datepos\else\@test@reffield{date}\fi
+ \if@tempswa
+%<trace> \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.
+% \changes{v3.17}{2015/04/17}{\cs{setbox} durch \cs{sbox} ersetzt}
+% \begin{macrocode}
+ \sbox\z@{\usekomafont{refname}\strutbox}%
+ \ifdim\ht\z@>\ht\strutbox
+%<class> \ClassWarningNoLine{scrlttr2}{%
+%<package> \PackageWarningNoLine{scrletter}{%
+ Font element `refname' should not be larger than
+ \string\normalsize!}%
+ \fi
+ \sbox\z@{\usekomafont{refvalue}\strutbox}%
+ \ifdim\ht\z@>\ht\strutbox
+%<class> \ClassWarningNoLine{scrlttr2}{%
+%<package> \PackageWarningNoLine{scrletter}{%
+ 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
+ }%
+ }%
+%<trace> \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}}^^A
+% \changes{v2.8p}{2001/09/22}{\cs{titlefont} an Stelle von \cs{sectfont}}^^A
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}^^A
+% \changes{v2.9t}{2004/09/16}{\cs{par} in Größe und Schrift des Titels}^^A
+% \changes{v2.95}{2006/03/22}{\cs{usekomafont} and Stelle von
+% \cs{titlefont}}^^A
+% \changes{v3.13}{2014/06/26}{umbenannt in \cs{@makelettertitle}}^^A
+% \end{macro}
+% \begin{macro}{\@makelettertitle}
+% \changes{v3.13}{2014/06/26}{neu (ehemals \cs{@maketitle}}^^A
+% \changes{v3.15}{2015/02/21}{\texttt{title} durch \texttt{lettertitle}
+% ersetzt}^^A
+% \begin{macro}{\@subjfield}
+% \changes{v2.8q}{2001/10/19}{\cs{centerline} durch \cs{centering}
+% ersetzt}^^A
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}^^A
+% \changes{v2.8q}{2002/01/31}{wird mit hängendem Einzug gesetzt}^^A
+% \changes{v2.95}{2006/03/23}{Absatzeinzug mit cs{setparsizes}^^A
+% einstellen}^^A
+% \changes{v3.01}{2008/11/03}{Verwendung der neuen Pseudolängen
+% \texttt{subjectbeforevskip} und \texttt{subjectaftervskip}}^^A
+% \changes{v3.15}{2015/02/21}{\texttt{subject} durch \texttt{lettersubject}
+% ersetzt}^^A
+% Der eigentliche Titel wir mit |\@maketitle| gesetzt. Dies sollte jedoch
+% ebenso wie beim Betreff (|\@subjfield|) \emph{nicht} manuell geschehen.
+% \begin{macrocode}
+\newcommand*{\@makelettertitle}{%
+ \ifkomavarempty{title}{%
+ \typeout{Title: no}%
+ }{%
+ \typeout{Title: yes}%
+ {\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
+ \centering\LARGE\usekomafont{lettertitle}\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{lettersubject}%
+ \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}^^A
+% \begin{macro}{\@nexthead}
+% \changes{v3.08}{2010/10/28}{der Kopf der Folgeseiten wird über eine
+% Variable realisiert}^^A
+% \begin{KOMAvar}{nexthead}
+% \changes{v3.08}{2010/10/28}{Neu}^^A
+% Die Voreinstellung ist ebenfalls von Optionen abhängig.
+% \begin{macrocode}
+%<*class>
+\newcommand*{\@nexthead}{%
+ \ClassWarning{scrlttr2}{%
+ Deprecated usage of \string\@nexthead.\MessageBreak
+ \string\usekomavar{nexthead} should be used\MessageBreak
+ instead of \string\@nexthead
+ }%
+ \usekomavar{nexthead}%
+}
+%</class>
+\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}
+%<*class>
+\newcommand{\nexthead}{%
+ \ClassWarning{scrlttr2}{%
+ Deprecated usage of \string\nexthead.\MessageBreak
+ You should use \string\setkomavar{nexthead}\MessageBreak
+ instead of \string\nexthead
+ }
+ \setkomavar{nexthead}%
+}
+%</class>
+% \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}^^A
+% \begin{macro}{\@nextfoot}
+% \changes{v3.08}{2010/10/28}{der Fuß der Folgeseiten wird über eine
+% Variable realisiert}^^A
+% \begin{KOMAvar}{nextfoot}
+% \changes{v3.08}{2010/10/28}{Neu}^^A
+% Je nach Optioneneinstellung kann sich die Seitenmarke in der Voreinstellung
+% auch im Fuß befinden.
+% \begin{macrocode}
+%<*class>
+\newcommand*{\@nextfoot}{%
+ \ClassWarning{scrlttr2}{%
+ Deprecated usage of \string\@nextfoot.\MessageBreak
+ \string\usekomavar{nextfoot} should be used\MessageBreak
+ instead of \string\@nextfoot
+ }%
+ \usekomavar{nextfoot}%
+}
+%</class>
+\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}
+%<*class>
+\newcommand{\nextfoot}{%
+ \ClassWarning{scrlttr2}{%
+ Deprecated usage of \string\nextfoot.\MessageBreak
+ You should use \string\setkomavar{nextfoot}\MessageBreak
+ instead of \string\nextfoot
+ }
+ \setkomavar{nextfoot}%
+}
+%</class>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Die Brief-Umgebung}
+%
+% \begin{environment}{letter}
+% \changes{v2.8q}{2002/01/16}{optionales Argument hinzugefügt}^^A
+% \changes{v2.8q}{2002/01/16}{Fußnotenzähler wird zurückgesetzt}^^A
+% \changes{v2.9d}{2002/08/12}{Fußnotenzähler wird korrekt zurückgesetzt}^^A
+% \changes{v3.17}{2015/03/20}{Ersatz von \cs{pagemark}}^^A
+% \changes{v3.19}{2015/07/15}{\cs{letterpagestyle} wird verwendet}^^A
+% \changes{v3.19}{2015/07/15}{Briefe werden referenzierbar nummeriert}^^A
+% 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. Dabei wird auch auf den korrekten Seitenstil
+% geachtet. Danach werden alle relevanten Zähler und Strafpunkte
+% zurückgesetzt und der obligatorische Parameter ausgewertet.
+% \changes{v3.19}{2015/07/15}{wegen des Pakets
+% \cs{cleardoubleoddemptypage}}^^A
+% \begin{macrocode}
+ \cleardoubleoddemptypage
+ \scr@ifundefinedorrelax{letterpagestyle}{}{%
+ \ifx\letterpagestyle\@empty\else
+ \pagestyle{\letterpagestyle}%
+ \fi
+ }%
+%<package>\let\pagemark\letterpagemark
+ \refstepcounter{letter}%
+ \let\thisletter\@currentlabel
+ \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 und noch danach ein Label gesetzt.
+% \changes{v3.19}{2015/07/15}{ein Label wird gesetzt}^^A
+% \begin{macrocode}
+ \@beginletterhook
+}{%
+ \stopletter
+ \let\@currentlabel\thisletter
+ \label{\thisletter.lastpage}%
+ \@@par\pagebreak\@@par%
+}
+% \end{macrocode}
+% \begin{macro}{\thisletter}
+% \changes{v3.19}{2015/07/15}{neue Anweisung}^^A
+% Gibt den Wert des aktuellen Labels wieder. Man benötigt dies beispielsweise,
+% um per |\ref{\thisletter.lastpage}| auf die letzte Seite zugreifen zu
+% können.
+% \begin{macrocode}
+\newcommand*{\thisletter}{outside.letter.undefined}
+% \end{macrocode}
+% \end{macro}^^A \thisletter
+% \begin{macro}{\letterlastpage}
+% \changes{v3.19}{2015/07/15}{neue Anweisung}^^A
+% \begin{macrocode}
+\newcommand*{\letterlastpage}{\pageref{\thisletter.lastpage}}
+% \end{macrocode}^^A \letterlastpage
+% \end{macro}
+% \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}^^A
+% \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}^^A \@xproc
+% \end{macro}^^A \@processto
+% \end{macro}^^A \stopletter
+% \begin{macro}{\flushbottom}
+% \changes{v2.97c}{2007/05/17}{neue Erweiterung}^^A
+% 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}^^A \flushbottom
+% \begin{Counter}{letter}
+% \changes{v3.19}{2015/07/15}{neuer Zähler}^^A
+% Die Briefe werden durchnummeriert.
+% \begin{macrocode}
+\newcounter{letter}
+% \end{macrocode}
+% \end{Counter}
+% \end{environment}^^A letter
+%
+%
+% \begin{macro}{\letterpagestyle}
+% \changes{v3.19}{2015/07/15}{neue Anweisung}^^A
+% Analog zu \cs{titlepagestyle}, \cs{indexpagestyle} etc. gibt es jetzt auch
+% ein \cs{letterpagestyle}. In der Voreinstellung ist dieser bei der Klasse
+% leer. Dagegen wird beim Paket \texttt{plain.letter} verwendet. Durch den
+% Unterschied wird faktisch die Kompatibilität mit des Pakets mit der Klasse
+% jedoch verbessert!
+% \begin{macrocode}
+\newcommand*{\letterpagestyle}{%
+%<package> plain.letter%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\AtBeginLetter}
+% \changes{v2.8n}{2001/09/08}{Neu}^^A
+% \begin{macro}{\@beginletterhook}
+% \changes{v2.8n}{2001/09/08}{Neu}^^A
+% 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}^^A
+% 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}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\@nobreakvspacex}
+% \begin{macro}{\@nobreakcr}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% 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}{%
+ \kernel@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
+\newcommand*{\@nobreakvspacex}[1]{\ifvmode\nobreak\vskip #1\relax\else
+ \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi}
+\newcommand*{\@nobreakcr}{%
+ \vadjust{\penalty\@M}\kernel@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}^^A
+% \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}^^A
+% 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
+ \@makelettertitle
+ \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}^^A
+% \changes{v2.5d}{2000/06/10}{Abstand zwischen Schlussgruß und Signatur
+% variabel}^^A
+% \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}^^A
+% 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}^^A
+% \changes{v2.8q}{2001/10/09}{Ersetzt durch Pseudo-Länge sigbeforevskip}^^A
+% \end{macro}
+% \begin{macro}{\setpresigskip}
+% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen
+% Schlussgruß und Signatur setzt}^^A
+% \changes{v2.8q}{2001/10/09}{Mit Hilfe der neuen Pseudo-Längen definiert}^^A
+% 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}
+%</letter>
+%<lco&KOMAold>\def\setpresigskip{\@setplength{sigbeforevskip}}
+%<*letter>
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@xtrimtempa}
+% \changes{v2.8q}{2002/02/05}{Neu (intern)}^^A
+% \changes{v3.17}{2014/02/19}{entfernt}^^A
+% \begin{macro}{\@@xtrimtempa}
+% \changes{v2.8q}{2002/02/05}{Neu (intern)}^^A
+% \changes{v3.17}{2014/02/19}{entfernt}^^A
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\@tempdimaismaxwidthof}
+% \changes{v2.8q}{2002/02/05}{Neu (intern)}^^A
+% \changes{v3.17}{2014/02/19}{entfernt}^^A
+% \end{macro}
+% Jetzt endlich zum eigentlichen Befehl.
+% \changes{v2.9r}{2004/01/28}{Längenbegrenzung auf \cs{hsize}}^^A
+% \changes{v2.9r}{2004/01/28}{das Argument darf leer sein}^^A
+% \changes{v3.17}{2015/02/19}{aus Rücksicht auf Leute, die ohne Rücksicht
+% auf die Anleitung einfach machen, was ihnen gerade einfällt, neu
+% implementiert}^^A
+% \changes{v3.17}{2015/02/20}{Weil manche Leute es unbedingt auf die Spitze
+% treiben wollen, \cs{}\cs{} durch \cs{tabularnewline} ersetzt.}^^A
+% \changes{v3.17}{2015/02/20}{Weil manche Leute es unbedingt auf die Spitze
+% treiben wollen, mehr \cs{strut} eingefügt.}^^A
+% \changes{v3.20}{2015/10/08}{Umbruch nach dem Gruß nur, wenn wir uns im
+% horizontalen Modus befinden}^^A
+% \changes{v3.25}{2017/11/15}{Verwendung von \cs{scr@endstrut} statt
+% \cs{unskip}\cs{strut}}^^A
+% \begin{macrocode}
+\newcommand*{\closing}[1]{{%
+ \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative\nobreak\par
+ \nobreak\vskip\baselineskip
+ \stopbreaks\noindent
+ \settowidth{\@tempdima}{%
+ \begin{tabular}{@{}l@{}}
+ #1\tabularnewline
+ \usekomavar{signature}\tabularnewline
+ \end{tabular}
+ }%
+ \setlength{\@tempdimb}{\hsize}%
+ \addtolength{\@tempdimb}{-\useplength{sigindent}}%
+ \ifdim\@tempdima>\@tempdimb\setlength{\@tempdima}{\@tempdimb}\fi
+ \hspace{\useplength{sigindent}}%
+ \parbox{\@tempdima}{\raggedsignature\strut\ignorespaces
+ #1\ifhmode\scr@endstrut\\[\useplength{sigbeforevskip}]
+ \else\vskip \useplength{sigbeforevskip}\fi
+ \strut\ignorespaces
+ \usekomavar{signature}\ifhmode\scr@endstrut\fi}}\par
+ \nobreak\vskip\baselineskip
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps}
+% \changes{v2.8n}{2001/09/08}{Komplett überarbeitet}^^A
+% 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}^^A
+% \changes{v2.9o}{2003/04/22}{\cs{parfillskip} angepasst}^^A
+% \changes{v2.9q}{2004/04/26}{\cs{parfillskip} auf \texttt{1em plus 1fil}
+% geändert}^^A
+% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf \texttt{\cs{z@} plus
+% 1fil} geändert}^^A
+% \changes{v3.22}{2016/12/15}{fehlender Stern bei \cs{ifkomavaremptry}
+% ergänzt}^^A
+% \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}^^A
+% \changes{v2.8q}{2002/01/31}{Fehlendes \% ergänzt}^^A
+% \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}^^A
+% \begin{KOMAvar}{place}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{location}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{backaddress}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{specialmail}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{title}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{fromlogo}
+% \changes{v2.8q}{2002/01/28}{Neu}^^A
+% \begin{KOMAvar}{fromzipcode}
+% \changes{v3.03}{2009/03/04}{Neu}^^A
+% \begin{KOMAvar}{PPcode}
+% \changes{v3.03}{2009/03/04}{Neu}^^A
+% \begin{KOMAvar}{PPdatamatrix}
+% \changes{v3.03}{2009/03/04}{Neu}^^A
+% \begin{KOMAvar}{addresseeimage}
+% \changes{v3.03}{2009/03/04}{Neu}^^A
+% \changes{v3.03b}{2009/06/30}{Schreibfehler korrigiert}^^A
+% 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/13}{neue Option}^^A
+% \changes{v3.17}{2015/03/16}{interne Speicherung der Werte}^^A
+% \begin{macro}{\if@scrsymbols}
+% \changes{v3.12}{2013/05/13}{neu (intern)}^^A
+% \begin{macro}{\@scrsymbolstrue}
+% \changes{v3.12}{2013/05/13}{neu (intern)}^^A
+% \begin{macro}{\@scrsymbolsfalse}
+% \changes{v3.12}{2013/05/13}{neu (intern)}^^A
+% Über diese Option kann eingestellt werden, dass an Stelle von
+% sprachabhängigen Bezeichnern für einige Variablen Symbole verwendet
+% werden. Dazu wird das Paket \textsf{macrosym} benötigt.
+% \begin{macrocode}
+%</letter>
+%</body>
+%<*option&letter>
+\newif\if@scrsymbols
+\KOMA@key{symbolicnames}[true]{%
+ \KOMA@set@ifkey{symbolicnames}{@scrsymbols}{#1}%
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+ }{symbolicnames}{@scrsymbols}%
+ \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
+%<class> \ClassWarning{scrlttr2}{%
+%<package> \PackageWarning{scrletter}{%
+ 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
+% \end{macrocode}
+% \changes{v3.20}{2016/04/01}{Name der Klasse oder des Pakets ist für die
+% Ladeverzögerung von \textsf{marvosym} egal}^^A
+% \changes{v3.20}{2016/04/01}{Ladeverzögerung für das Paket
+% \textsf{marvosym} nur, wenn erforderlich und möglich}^^A
+% In der Dokumentpräambel kann das Paket \textsf{marvosym} selbst geladen
+% werden. Allerdings funktioniert das nicht, solange wir im Optionen-Abschnitt
+% sind. Also muss es ggf. verzögert werden. Wie lange es zu verzögern ist,
+% hängt davon ab, ob wir uns in einer Klasse, einem Paket oder sonst einer
+% Datei mit Optionen-Abschnitt befinden.
+% \begin{macrocode}
+ \ifx\@fileswith@pti@ns\@badrequireerror
+ \ifstr{\@currext}{\@clsextension}{%
+ \expandafter\AtEndOfClass
+ }{%
+ \ifstr{\@currext}{\@pksextension}{%
+ \expandafter\AtEndOfPackage
+ }{%
+ \expandafter\AtBeginDocument
+ }%
+ }%
+ \else
+ \expandafter\@firstofone
+ \fi
+ {\RequirePackage{marvosym}}%
+ \fi
+ \fi
+}
+\KOMA@kav@add{.%
+%<class> \KOMAClassFileName
+%<package> scrletter.\scr@pkgextension
+}{symbolicnames}{false}%
+%</option&letter>
+%<*body>
+%<*letter>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+%
+% \begin{KOMAvar}{placeseparator}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{subjectseparator}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{ccseparator}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{enclseparator}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{backaddressseparator}
+% \changes{v2.8q}{2002/01/22}{Neu}^^A
+% \begin{KOMAvar}{phoneseparator}
+% \changes{v2.8q}{2002/03/25}{Neu}^^A
+% \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet}
+% \begin{KOMAvar}{faxseparator}
+% \changes{v2.8q}{2002/03/25}{Neu}^^A
+% \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet}
+% \begin{KOMAvar}{emailseparator}
+% \changes{v2.8q}{2002/03/25}{Neu}^^A
+% \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet}
+% \begin{KOMAvar}{urlseparator}
+% \changes{v2.8q}{2002/03/25}{Neu}^^A
+% \changes{v3.12}{2013/05/29}{Option \texttt{symbolicnames} wird beachtet}
+% \begin{KOMAvar}{mobilephoneseparator}
+% \changes{v3.12}{2013/05/29}{Neu}^^A
+% \begin{KOMAvar}{zipcodeseparator}
+% \changes{v3.03}{2009/03/04}{Neu}^^A
+% 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}^^A
+% \begin{KOMAvar}{fromaddress}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{fromemail}
+% \changes{v2.8q}{2002/01/28}{Neu}^^A
+% \begin{KOMAvar}{fromurl}
+% \changes{v2.8q}{2002/01/28}{Neu}^^A
+% \begin{KOMAvar}{frombank}
+% \changes{v2.8q}{2002/01/28}{Neu}^^A
+% \begin{KOMAvar}{toname}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{toaddress}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{fromphone}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{frommobilephone}
+% \changes{v3.12}{2013/05/29}{Neu}^^A
+% \begin{KOMAvar}{fromfax}
+% \changes{v2.8q}{2002/01/28}{Neu}^^A
+% \begin{KOMAvar}{yourmail}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{yourref}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{myref}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{customer}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{invoice}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{subject}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{KOMAvar}{date}
+% \changes{v2.8q}{2002/01/16}{Neu}^^A
+% \begin{macro}{\date}
+% \changes{v3.17}{2015/03/05}{das Makro gibt eine Warnung aus}^^A
+% \begin{macro}{\scr@saved@date}
+% \changes{v3.17}{2015/03/05}{Neu (intern)}^^A
+% 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}
+\newcommand*{\scr@saved@date}{}
+\let\scr@saved@date\date
+\renewcommand*{\date}[1]{%
+%<class> \ClassWarning{\KOMAClassName}{%
+%<package> \PackageWarning{scrletter}{%
+ \string\date\space changes the internal \string\LaTeX\space date
+ only.\MessageBreak
+ You should note that this changes the default\MessageBreak
+ value of variable `date' only as long as nobody\MessageBreak
+ uses `\string\setkomavar` to change the content of\MessageBreak
+ variable `date'.\MessageBreak
+ Therefore, usage of `\string\setkomavar' is recommended\MessageBreak
+ to change the letter's date%
+ }%
+ \scr@saved@date{#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@saved@date
+% \end{macro}^^A \date
+% \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
+%</letter>
+% \fi
+%
+% \iffalse
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-notepaper.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx b/macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx
new file mode 100644
index 0000000000..6d32dd6925
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx
@@ -0,0 +1,903 @@
+% \CheckSum{678}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-pagestyles.dtx
+% Copyright (c) Markus Kohm, 2002-2017
+%
+% 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-2017
+%
+% 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 2640 2017-05-08 09:36:55Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2017-05-08 11:36:55 +0200 (Mon, 08 May 2017) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 2640 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-pagestyles.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (page styles)]
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \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>
+% \fi
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \begin{option}{headsepline}
+% \changes{v2.95c}{2006/08/11}{BugFix: Argument bei
+% \cs{PassOptionsToPackage} vertauscht}^^A
+% \changes{v2.97c}{2007/04/19}{Option \texttt{headinclude} wird nicht
+% mehr an \textsf{typearea} geschickt}^^A
+% \changes{v2.98c}{2008/03/26}{Option \texttt{headinclude} 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.17}{2015/03/10}{Wert wird gespeichert}^^A
+% \changes{v3.18a}{2015/07/08}{BugFix: Argument bei
+% \cs{PassOptionsToPackage} erneut vertauscht}^^A
+% \changes{v3.20}{2015/12/12}{Optionenweiterleitung an \textsf{typearea}
+% entfernt}^^A
+% \begin{option}{headnosepline}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% 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}
+\KOMA@ifkey{headsepline}{@hsl}%
+\KOMA@kav@add{.\KOMAClassFileName}{headsepline}{false}
+\KOMA@DeclareDeprecatedOption{headnosepline}{headsepline=false}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \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
+% \changes{v3.13}{2014/07/07}{Satzspiegel wird nicht neu berechnet}^^A
+% \changes{v3.13}{2014/07/07}{\texttt{headinclude}-Fehler beseitigt}^^A
+% \changes{v3.17}{2015/03/10}{Wert wird gespeichert}^^A
+% \changes{v3.18a}{2015/07/08}{BugFix: Argument bei
+% \cs{PassOptionsToPackage} erneut vertauscht}^^A
+% \changes{v3.20}{2015/12/12}{Optionenweiterleitung an \textsf{typearea}
+% entfernt}^^A
+% \begin{option}{footnosepline}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% 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}
+\KOMA@ifkey{footsepline}{@fsl}%
+\KOMA@kav@add{.\KOMAClassFileName}{footsepline}{false}
+\KOMA@DeclareDeprecatedOption{footnosepline}{footsepline=false}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \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}
+%
+% \iffalse
+%</class>
+%<*class|extend>
+% \fi
+%
+% \begin{option}{cleardoublepage}
+% \changes{v2.95}{2004/08/24}{neuer Schalter}^^A
+% \changes{v2.96a}{2007/01/03}{Wert \texttt{current} sollte nun
+% funktionieren}^^A
+% \changes{v2.98c}{2008/03/06}{verwendet \cs{def} statt \cs{let}, damit die
+% Option \texttt{open} funktioniert}^^A
+% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.17}{2015/03/10}{Wert wird gespeichert}^^A
+% \begin{option}{cleardoubleempty}
+% \changes{v2.8a}{2001/06/18}{neue Option}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{cleardoubleplain}
+% \changes{v2.8a}{2001/06/18}{neue Option}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{cleardoublestandard}
+% \changes{v2.8a}{2001/06/18}{neue Option}^^A
+% \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}^^A
+% \begin{macro}{\cleardoublestandardpage}
+% \changes{v2.8a}{2001/06/18}{neu}^^A
+% \changes{v2.96a}{2007/01/02}{korrekter Ersatzwert gesetzt}^^A
+% \begin{macro}{\cleardoubleusingstyle}
+% \changes{v2.95}{2004/08/24}{neu}^^A
+% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle}
+% ersetzt}
+% \begin{macro}{\cleardoubleemptypage}
+% \changes{v2.8a}{2001/06/18}{neu}^^A
+% \begin{macro}{\cleardoubleplainpage}
+% \changes{v2.8a}{2001/06/18}{neu}^^A
+% \begin{macro}{\cleardoubleoddpage}
+% \changes{v3.00}{2008/09/27}{neu}^^A
+% \begin{macro}{\cleardoubleoddstandardpage}
+% \changes{v2.98c}{2008/03/06}{neu}^^A
+% \begin{macro}{\cleardoubleoddusingstyle}
+% \changes{v2.98c}{2008/03/06}{neu}^^A
+% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle}
+% ersetzt}
+% \begin{macro}{\cleardoubleoddemptypage}
+% \changes{v2.98c}{2008/03/06}{neu}^^A
+% \begin{macro}{\cleardoubleoddplainpage}
+% \changes{v2.98c}{2001/06/18}{neu}^^A
+% \begin{macro}{\cleardoubleevenpage}
+% \changes{v3.00}{2008/09/27}{neu}^^A
+% \begin{macro}{\cleardoubleevenstandardpage}
+% \changes{v2.98c}{2008/03/06}{neu}^^A
+% \begin{macro}{\cleardoubleevenusingstyle}
+% \changes{v2.98c}{2008/03/06}{neu}^^A
+% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle}
+% ersetzt}
+% \begin{macro}{\cleardoubleevenemptypage}
+% \changes{v2.98c}{2008/03/06}{neu}^^A
+% \begin{macro}{\cleardoubleevenplainpage}
+% \changes{v2.98c}{2001/06/18}{neu}^^A
+% \begin{macro}{\cleardoublepage}
+% \changes{v2.98c}{2001/06/18}{wird immer neu definiert}^^A
+% \changes{v2.98c}{2008/04/11}{neue Voreinstellung für Versionen nach 2.98c}^^A
+% 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', 'headings'}%
+ }%
+ \ifstr{#1}{current}{%
+ \def\@tempc{\endgroup%
+ \def\cleardoublepage{\cleardoublestandardpage}%
+ \def\cleardoubleoddpage{\cleardoubleoddstandardpage}%
+ \def\cleardoubleevenpage{\cleardoubleevenstandardpage}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{.%
+%<package&extend> scrextend.\scr@pkgextension
+%<class> \KOMAClassFileName
+ }{cleardoublepage}{current}%
+ }%
+ }{%
+ \ifnotundefined{ps@#1}{%
+ \def\@tempc{\endgroup%
+ \def\cleardoublepage{\cleardoublepageusingstyle{#1}}%
+ \def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}%
+ \def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.%
+%<package&extend> scrextend.\scr@pkgextension
+%<class> \KOMAClassFileName
+ }{cleardoublepage}{#1}%
+ }%
+ }{%
+% \end{macrocode}
+% \changes{v3.13}{2014/03/01}{allow page style headings as value for class
+% option}^^A
+% At class loading time page style \texttt{headings} is still undefined, but
+% should be allowed as value for option \texttt{cleardoublepage}.
+% \begin{macrocode}
+%<*class>
+ \ifx\@currname\KOMAClassName
+ \ifx\@currext\@clsextension
+ \ifstr{#1}{headings}{%
+ \def\@tempc{\endgroup%
+ \def\cleardoublepage{\cleardoublepageusingstyle{#1}}%
+ \def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}%
+ \def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.\KOMAClassFileName}%
+ {cleardoublepage}{#1}%
+ }%
+ }{}%
+ \fi
+ \fi
+%</class>
+ }%
+ }%
+ \@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
+}
+\KOMA@kav@add{.%
+%<package&extend> scrextend.\scr@pkgextension
+%<class> \KOMAClassFileName
+}{cleardoublepage}{%
+ \expandafter\ifnum \scr@v@is@gt{2.98c}empty\else current\fi
+}
+% \end{macrocode}
+% Es ist zwar nicht unbedingt notwendig aber eventuell schöner, wenn der zuvor
+% hinzugefügte, bedingte Wert am Ende noch expandiert wird. Der Umstand ist
+% notwendig, weil während der Definition der Optionen die Kompatibilität noch
+% nicht bekannt ist. Diese ergibt sich erst während \cs{KOMAProcessOptions}.
+% \begin{macrocode}
+%<package&extend>\AtEndOfPackage{%
+%<class>\AtEndOfClass{%
+ \KOMAoptionOf[\expandafter\edef\expandafter\@tempa\@firstofone]%
+ {%
+%<package&extend> scrextend.\scr@pkgextension
+%<class> \KOMAClassFileName
+ }{cleardoublepage}%
+ \KOMA@kav@removekey{.%
+%<package&extend> scrextend.\scr@pkgextension
+%<class> \KOMAClassFileName
+ }{cleardoublepage}%
+ \KOMA@kav@xadd{.%
+%<package&extend> scrextend.\scr@pkgextension
+%<class> \KOMAClassFileName
+ }{cleardoublepage}{\@tempa}%
+}
+\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}
+%</class>
+% \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
+%</class|extend>
+%</option>
+%<*body>
+%<*class>
+% \fi
+%
+%
+% \subsection{Befehle für den Kompatibilitätsmodus}
+%
+% \begin{macro}{\headincludeon}
+% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
+% \begin{macro}{\headincludeoff}
+% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
+% \begin{macro}{\headseplineon}
+% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
+% \begin{macro}{\headseplineoff}
+% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
+% \begin{macro}{\footincludeon}
+% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
+% \begin{macro}{\footincludeoff}
+% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
+% \begin{macro}{\footseplineon}
+% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
+% \begin{macro}{\footseplineoff}
+% \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
+% 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}^^A
+% \changes{v2.2c}{1995/05/25}{Nummern in der Kopfzeile auf CJK
+% umgestellt}^^A
+% \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)}^^A
+% 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}^^A
+% 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}^^A
+% \begin{KOMAfont}{pageheadfoot}
+% \changes{v2.98c}{2008/02/14}{neues Element}^^A
+% \begin{KOMAfont}{pagehead}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagehead}}
+% \changes{v2.98c}{2008/02/14}{neuer Alias}^^A
+% \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}^^A
+% \changes{v2.98c}{2008/02/14}{Warnung geändert}^^A
+% \begin{KOMAfont}{pagefoot}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagefoot}}
+% \changes{v2.98c}{2008/02/14}{nicht länger ein Alias}^^A
+% \begin{macro}{\scr@fnt@wrn@pagefoot}
+% \changes{v2.98c}{2008/02/14}{Neu (intern)}^^A
+% \changes{v3.13}{2014/01/13}{es wird \textsf{scrlayer-scrpage} an Stelle
+% von \textsf{scrpage2} empfohlen}^^A
+% 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>
+%<*!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 `scrlayer-scrpage',\MessageBreak
+ before using this element%
+}
+%</!letter>
+% \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}^^A
+% \changes{v3.05}{2010/02/05}{eine zusätzliche Gruppe eingefügt}^^A
+% Das ist die Seitenmarke, die nun für alle Klassen verwendet wird. Damit
+% wird es leichter, \textsf{fancyhdr} statt \textsf{scrpage2} zu verwenden.
+% \begin{macro}{\letterpagemark}
+% \changes{v3.17}{2015/03/20}{Neu (nur Paket \textsl{scrletter})}^^A
+% Für das Paket wird eine abweichende Definition verwendet, die innerhalb von
+% \cs{begin{letter}} aktiviert wird.
+% \begin{macrocode}
+%</class>
+%<*class|letter>
+\newcommand*{%
+%<class> \pagemark
+%<package> \letterpagemark
+}{%
+ {\usekomafont{pagenumber}{%
+%<letter> \pagename\nobreakspace
+ \thepage}}}
+%</class|letter>
+%<*class>
+% \end{macrocode}
+% \end{macro}^^A \letterpagemark
+% \end{macro}^^A \pagemark
+%
+% 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}{}##1}}{}}%
+ \renewcommand*{\subsectionmark}[1]{%
+ \if@twoside
+ \markright{%
+ \MakeMarkcase{\ifnumbered{subsection}{\subsectionmarkformat}{}##1}%
+ }%
+ \fi
+ }%
+%</article>
+%<*report|book>
+ \renewcommand*{\chaptermark}[1]{%
+ \if@twoside\expandafter\markboth\else\expandafter\markright\fi
+ {\MakeMarkcase{\ifnumbered{chapter}{%
+%<book> \if@mainmatter
+ \chaptermarkformat
+%<book> \fi
+ }{}##1}%
+ }{}%
+ }%
+ \renewcommand*{\sectionmark}[1]{%
+ \if@twoside
+ \markright{\MakeMarkcase{\ifnumbered{section}{\sectionmarkformat}{}%
+ ##1}}%
+ \fi
+ }%
+%</report|book>
+}%
+\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}%
+%<!article> \renewcommand*{\chaptermark}[1]{}%
+%<article> \renewcommand*{\subsectionmark}[1]{}%
+ \renewcommand*{\sectionmark}[1]{}%
+}
+%</!letter>
+% \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
+}
+%</letter>
+%</class>
+% \end{macrocode}
+% Das Briefpaket verwendet \textsf{scrlayer-scrpage} für die Seitenstile:
+% \begin{macrocode}
+%<*package&letter>
+\RequirePackage{scrlayer-scrpage}
+\newpairofpagestyles{letter}{%
+ \clearpairofpagestyles
+ \lehead[\ifnum\@pageat=\z@\pagemark\fi]%
+ {\usekomavar{nexthead}}%
+ \lohead[\ifnum\@pageat=\z@\pagemark\fi]%
+ {\usekomavar{nexthead}}%
+ \chead[\ifnum\@pageat=\@ne\pagemark\fi]%
+ {}%
+ \rehead[\ifnum\@pageat=\tw@\pagemark\fi]%
+ {}%
+ \rohead[\ifnum\@pageat=\tw@\pagemark\fi]%
+ {}%
+ \lefoot[\ifnum\@pageat=\thr@@\pagemark\fi]%
+ {\usekomavar{nextfoot}}%
+ \lofoot[\ifnum\@pageat=\thr@@\pagemark\fi]%
+ {\usekomavar{nextfoot}}%
+ \cfoot[\ifnum\@pageat=4 \pagemark\fi]%
+ {}%
+ \refoot[\ifnum\@pageat=5 \pagemark\fi]%
+ {}%
+ \rofoot[\ifnum\@pageat=5 \pagemark\fi]%
+ {}%
+}
+%</package&letter>
+%<*class>
+% \end{macrocode}
+% \end{macro}^^A \ps@headings
+% \end{macro}^^A \ps@myheadings
+% \end{macro}^^A \ps@plain
+%
+%
+% \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}^^A
+% \begin{macro}{\partpagestyle}
+% \changes{v2.8d}{2001/07/05}{neu}^^A
+% \changes{v3.00}{2008/08/05}{nicht mehr in \textsf{scrartcl} definiert}
+% \changes{v3.18}{2015/06/10}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\chapterpagestyle}
+% \changes{v2.8d}{2001/07/05}{neu}^^A
+% \changes{v3.18}{2015/05/20}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\indexpagestyle}
+% \changes{v2.8d}{2001/07/05}{neu}^^A
+% 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*{\indexpagestyle}{plain}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%</!letter>
+% \fi
+%
+% \subsection{Standardeinstellungen}
+%
+% Der voreingestellte Seitenstil hängt von der verwendeten Klasse ab:
+% \begin{macrocode}
+%<report|article|letter>\pagestyle{plain}
+%<book>\pagestyle{headings}
+% \end{macrocode}
+% Die Nummerierung erfolgt hingegen immer mit arabischen Zahlen:
+% \begin{macrocode}
+\pagenumbering{arabic}
+% \end{macrocode}
+%
+% \iffalse
+%</class>
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-pagestyles.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-paragraphs.dtx b/macros/latex/contrib/koma-script/source/scrkernel-paragraphs.dtx
new file mode 100644
index 0000000000..8263190419
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-paragraphs.dtx
@@ -0,0 +1,771 @@
+% \CheckSum{704}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-paragraphs.dtx
+% Copyright (c) Markus Kohm, 2002-2019
+%
+% 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-2019
+%
+% 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 3064 2019-02-01 07:40:28Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2019-02-01 08:40:28 +0100 (Fri, 01 Feb 2019) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1872 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-paragraphs.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script
+ (paragraphs)]
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \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
+%<*class>
+%<*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}^^A
+% \changes{v3.17}{2015/03/10}{löscht diverse \texttt{parskip}-Einstellungen
+% aus der internen Liste}^^A
+% \changes{v3.19}{2015/07/29}{\cs{par@update} darf erst nach
+% \cs{begin{document}} wieder \cs{default@par@update} werden}^^A
+% Ü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{%
+ \if@atdocument\let\par@update\default@par@update\fi
+ \par@updaterelative
+ }%
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{false}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{never}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{full}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{full-}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{full+}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{full*}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half-}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half+}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half*}%
+}
+% \end{macrocode}
+% \begin{macro}{\f@parindent}
+% \changes{v2.95}{2004/11/05}{neu (intern)}^^A
+% Eingestellter Absatzeinzug.
+% \begin{macro}{\f@parskip}
+% \changes{v2.8i}{2001/07/22}{neu (intern)}^^A
+% \changes{v2.95}{2004/11/05}{Bedeutung geändert}^^A
+% Eingestellter Absatzabstand.
+% \begin{macro}{\f@parfillskip}
+% \changes{v2.8i}{2001/07/22}{neu (intern)}^^A
+% \changes{v2.95}{2004/11/05}{Bedeutung geändert}^^A
+% 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}^^A
+% \changes{v3.20}{2016/02/22}{wird möglichst früh \cs{AtBeginDocument}
+% ausgeführt}^^A
+% Dieses Makro wird später in |\selectfont| die Änderung vornehmen.
+% \begin{macro}{\default@par@update}
+% \changes{v2.95}{2004/11/05}{neues internes Macro}^^A
+% 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
+\AtBeginDocument{\par@update}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{option}{parskip}
+% \changes{v2.8i}{2001/07/22}{neue Option}^^A
+% \changes{v2.95}{2006/03/11}{primäre \textsf{keyval}-Option}^^A
+% \changes{v3.08}{2010/12/14}{neuer Wert \texttt{never}}^^A
+% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
+% \cs{FamilyKeyState}.}^^A
+% \changes{v3.17}{2015/03/10}{Wert wird gespeichert}^^A
+% \changes{v3.26b}{2019/02/01}{\cs{baselineskip} durch 1\cs{baselineskip}
+% ersetzt}^^A
+% \begin{option}{parskip-}
+% \changes{v2.8l}{2001/08/16}{neue Option}^^A
+% \changes{v2.95}{2006/03/11}{obsolet}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{parskip+}
+% \changes{v2.8i}{2001/07/22}{neue Option}^^A
+% \changes{v2.95}{2006/03/11}{obsolet}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{parskip*}
+% \changes{v2.8i}{2001/07/22}{neue Option}^^A
+% \changes{v2.95}{2006/03/11}{obsolet}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{halfparskip}
+% \changes{v2.8i}{2001/07/22}{neue Option}^^A
+% \changes{v2.95}{2006/03/11}{obsolet}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{halfparskip-}
+% \changes{v2.8l}{2001/08/16}{neue Option}^^A
+% \changes{v2.95}{2006/03/11}{obsolet}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{halfparskip+}
+% \changes{v2.8i}{2001/07/22}{neue Option}^^A
+% \changes{v2.95}{2006/03/11}{obsolet}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{halfparskip*}
+% \changes{v2.8i}{2001/07/22}{neue Option}^^A
+% \changes{v2.95}{2006/03/11}{obsolet}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{parindent}
+% \changes{v2.8i}{2001/07/22}{neue Option}^^A
+% \changes{v2.95}{2006/03/11}{obsolet}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% 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)}^^A
+% Der einzustellende Absatzeinzug.
+% \begin{macro}{\scr@parskip}
+% \changes{v2.8i}{2001/07/22}{neu (intern)}^^A
+% \changes{v2.95}{2004/11/05}{Bedeutung geändert}^^A
+% Der einzustellende Absatzabstand.
+% \begin{macro}{\scr@parfillskip}
+% \changes{v2.8i}{2001/07/22}{neu (intern)}^^A
+% \changes{v2.95}{2004/11/05}{Bedeutung geändert}^^A
+% 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.
+% \changes{v3.25}{2017/09/27}{typo fix in \cs{FamilyKeyStateUnknownValue}}
+% \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}%
+ \KOMA@kav@add{.\KOMAClassFileName}{parskip}{never}%
+ \if@atdocument\AfterKOMAoptions{\selectfont}\fi
+ \or% 1
+ \endgroup
+ \setparsizes{1em}{\z@ \@plus \p@}{\z@ \@plus 1fil}%
+ \KOMA@kav@add{.\KOMAClassFileName}{parskip}{false}%
+ \if@atdocument\AfterKOMAoptions{\selectfont}\fi
+ \or% 2
+ \endgroup
+ \setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
+ \z@ \@plus 1fil}%
+ \KOMA@kav@add{.\KOMAClassFileName}{parskip}{full-}%
+ \if@atdocument\AfterKOMAoptions{\selectfont}\fi
+ \or% 3
+ \endgroup
+ \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
+ \z@ \@plus 1fil}%
+ \KOMA@kav@add{.\KOMAClassFileName}{parskip}{half-}%
+ \if@atdocument\AfterKOMAoptions{\selectfont}\fi
+ \or% 4
+ \endgroup
+ \setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
+ 1em \@plus 1fil}%
+ \KOMA@kav@add{.\KOMAClassFileName}{parskip}{full}%
+ \if@atdocument\AfterKOMAoptions{\selectfont}\fi
+ \or% 5
+ \endgroup
+ \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
+ 1em \@plus 1fil}%
+ \KOMA@kav@add{.\KOMAClassFileName}{parskip}{half}%
+ \if@atdocument\AfterKOMAoptions{\selectfont}\fi
+ \or% 6
+ \endgroup
+ \setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
+ .3333\linewidth\@plus 1fil}%
+ \KOMA@kav@add{.\KOMAClassFileName}{parskip}{full+}%
+ \if@atdocument\AfterKOMAoptions{\selectfont}\fi
+ \or% 7
+ \endgroup
+ \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
+ .3333\linewidth \@plus 1fil}%
+ \KOMA@kav@add{.\KOMAClassFileName}{parskip}{half+}%
+ \if@atdocument\AfterKOMAoptions{\selectfont}\fi
+ \or% 8
+ \endgroup
+ \setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
+ .25\linewidth \@plus 1fil}%
+ \KOMA@kav@add{.\KOMAClassFileName}{parskip}{full*}%
+ \if@atdocument\AfterKOMAoptions{\selectfont}\fi
+ \or% 9
+ \endgroup
+ \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
+ .25\linewidth \@plus 1fil}%
+ \KOMA@kav@add{.\KOMAClassFileName}{parskip}{half*}%
+ \if@atdocument\AfterKOMAoptions{\selectfont}\fi
+ \or% 10
+ \endgroup
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{absolute}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{relative}%
+ \KOMA@kav@add{.\KOMAClassFileName}{parskip}{relative}%
+ \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
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{absolute}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{parskip}{relative}%
+ \KOMA@kav@add{.\KOMAClassFileName}{parskip}{absolute}%
+ \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
+ \FamilyKeyStateUnknownValue
+ \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}
+\KOMA@kav@add{.\KOMAClassFileName}{parskip}{false}
+\KOMA@kav@add{.\KOMAClassFileName}{parskip}{absolute}
+% \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
+%</option>
+%<*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@}
+%</!letter>
+% \end{macrocode}
+% \end{Length}
+% \end{Length}
+%
+% \begin{macro}{\selectfont}
+% \changes{v2.95}{2004/11/05}{neue Änderung}^^A
+% 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}^^A
+% \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}^^A
+% \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}^^A
+% 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}%
+%</trace>
+ \fi
+ \edef\@tempa{\the\parskip}\ifx\@tempa\f@parskip
+ \aftergroup\parskip@update
+%<*trace>
+ \else
+ \ClassInfo{\KOMAClassName}{\string\parskip\space not changed}%
+%</trace>
+ \fi
+ \edef\@tempa{\the\parfillskip}\ifx\@tempa\f@parfillskip
+ \aftergroup\parfillskip@update
+%<*trace>
+ \else
+ \ClassInfo{\KOMAClassName}{\string\parfillskip\space not changed}%
+%</trace>
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macro}{\parindent@update}
+% \changes{v2.95}{2004/11/05}{neues internes Macro}^^A
+% \begin{macro}{\parskip@update}
+% \changes{v2.95}{2004/11/05}{neues internes Macro}^^A
+% \begin{macro}{\parfillskip@update}
+% \changes{v2.95}{2004/11/05}{neues internes Macro}^^A
+% 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}}%
+%<trace> \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}}%
+%<trace> \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}}%
+%<trace> \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}^^A
+% \changes{v3.19}{2015/08/22}{\cs{setlength} wegen \textsf{tikz}
+% eliminiert}^^A
+% \begin{macro}{\scr@@defaultunits}
+% \changes{v2.95}{2004/11/05}{neues internes Macro}^^A
+% \begin{macro}{\scr@@@defaultunits}
+% \changes{v2.95}{2004/11/05}{neues internes Macro}^^A
+% \changes{v3.19}{2015/08/22}{\cs{setlength} und \cs{addtolength} wegen
+% \textsf{tikz} eliminiert}^^A
+% 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#1\the\glueexpr #1\relax}%
+ \@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
+ #1\@tempskipa
+ \else
+ \@defaultunits\@tempskipa\z@\@plus#3pt\relax\@nnil
+ #1\@tempskipa
+ \@defaultunits\@tempskipa#2pt\relax\@nnil
+ \advance#1\@tempskipa
+ \fi
+ \ifx\relax#4\relax\else
+ \@defaultunits\@tempskipa\z@\@minus #4pt\relax\@nnil
+ \advance#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)}^^A
+% \changes{v2.95c}{2006/08/03}{\cs{parsep} fixed}
+% \begin{macro}{\add@extra@listi}
+% \changes{v2.9h}{2002/09/03}{neu (intern)}^^A
+% 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>
+%</class>
+%<*class|clo>
+%<*body|10pt|11pt|12pt>
+% \fi
+% \changes{v2.98c}{2008/03/26}{Umstellung für die pt-Dateien}^^A
+% \changes{v3.17}{2015/03/25}{Aktualisierung der Absatzeinstellungen}^^A
+% \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}^^A
+% \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}^^A
+% \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro}
+% ersetzt}
+% \begin{macrocode}
+%<10pt|11pt|12pt>\@ifundefined{@list@extra}{}{%
+%<10pt|11pt|12pt> \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi
+ \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|10pt|11pt|12pt>
+%</class|clo>
+%<*class>
+%<*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
+%</body>
+%</class>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-paragraphs.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-pseudolengths.dtx b/macros/latex/contrib/koma-script/source/scrkernel-pseudolengths.dtx
new file mode 100644
index 0000000000..228fa2258a
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-pseudolengths.dtx
@@ -0,0 +1,349 @@
+% \CheckSum{212}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-pseudolengths.dtx
+% Copyright (c) Markus Kohm, 2006-2018
+%
+% 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-2017
+%
+% 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 2980 2018-04-26 12:06:09Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-04-26 14:06:09 +0200 (Thu, 26 Apr 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1872 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-pseudolengths.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (pseudo length)]
+ }%
+\reserved@a
+% \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}
+%</dtx>
+% \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
+%</option>
+%<*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}^^A
+% \changes{v2.8q}{2001/10/06}{Kompatibilität zu \texttt{scrlettr.cls}^^A
+% 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@%
+ }{%
+%<class> \ClassError{scrlttr2%
+%<package> \PackageError{scrletter%
+ }{%
+ 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}{\newplength}
+% \changes{v3.26}{2018/04/26}{Neu}
+% Anweisung auf Anwenderebene verfügbar.
+% \begin{macrocode}
+\newcommand*{\newplength}{\@newplength}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\useplength}
+% \changes{v2.8q}{2001/10/06}{Neu}^^A
+% \changes{v2.97c}{2007/09/17}{\cs{dimexpr} statt \cs{number} verwendet,
+% wenn \eTeX{} verwendet wird}
+% \changes{v3.25}{2017/11/29}{\eTeX{} ist zwingend}
+% \changes{v3.25}{2017/11/29}{\cs{dimexpr} durch \cs{glueexpr} ersetzt}^^A
+% 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}
+\newcommand*{\useplength}[1]{%
+ \glueexpr \csname ltr@len@#1\endcsname\relax}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setlengthtoplength}
+% \changes{v2.8q}{2001/10/06}{Neu}^^A
+% 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}
+% \end{macro}
+%
+% \begin{macro}{\@setplength}
+% \changes{v2.8q}{2001/10/06}{Neu}^^A
+% \changes{v3.25}{2017/11/29}{\cs{glueexpr} eingefügt}^^A
+% 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}{\glueexpr #3\relax}%
+ \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}
+%
+% \begin{macro}{\setplength}
+% \changes{v3.26}{2018/04/26}{Neu}^^A
+% Anweisung auf Anwenderebene verfügbar.
+% \begin{macrocode}
+\newcommand*{\setplength}{\@setplength}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setplengthtowidth}
+% \changes{v3.26}{2018/04/26}{Neu}
+% \begin{macro}{\setplengthtoheight}
+% \changes{v3.26}{2018/04/26}{Neu}
+% \begin{macro}{\setplengthtodepth}
+% \changes{v3.26}{2018/04/26}{Neu}
+% \begin{macro}{\setplengthtototalheight}
+% \changes{v3.26}{2018/04/26}{Neu}
+% Man kann auch die Breite, Höhe, Tiefe oder Höhe + Tiefe eines Inhalts
+% verwenden, um eine Pseudolänge zu definieren.
+% \begin{macrocode}
+\newcommand*{\setplengthtowidth}[3][]{%
+ \begingroup
+ \settowidth{\@tempdima}{#3}%
+ \setlength{\@tempdima}{#1\@tempdima}%
+ \edef\@tempa{\noexpand\endgroup
+ \noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*%
+ \noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempdima}%
+ }%
+ \@tempa
+}
+\newcommand*{\setplengthtoheight}[3][]{%
+ \begingroup
+ \settoheight{\@tempdima}{#3}%
+ \setlength{\@tempdima}{#1\@tempdima}%
+ \edef\@tempa{\noexpand\endgroup
+ \noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*%
+ \noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempdima}%
+ }%
+ \@tempa
+}
+\newcommand*{\setplengthtodepth}[3][]{%
+ \begingroup
+ \settodepth{\@tempdima}{#3}%
+ \setlength{\@tempdima}{#1\@tempdima}%
+ \edef\@tempa{\noexpand\endgroup
+ \noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*%
+ \noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempdima}%
+ }%
+ \@tempa
+}
+\newcommand*{\setplengthtototalheight}[3][]{%
+ \begingroup
+ \settoheight{\@tempdima}{#3}%
+ \settodepth{\@tempdimb}{#3}%
+ \addtolength{\@tempdima}{\@tempdimb}%
+ \setlength{\@tempdima}{#1\@tempdima}%
+ \edef\@tempa{\noexpand\endgroup
+ \noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*%
+ \noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempdima}%
+ }%
+ \@tempa
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\addtolengthplength}
+% \changes{v2.8q}{2001/10/06}{Neu}^^A
+% 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}^^A
+% \changes{v3.25}{2017/11/29}{\cs{glueexpr} eingefügt}^^A
+% 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}{\glueexpr #3\relax}%
+ \setlength{\@tempskipa}{#1\@tempskipa}%
+ \addtolengthplength{\@tempskipa}{#2}%
+ \edef\@tempa{\noexpand\endgroup%
+ \noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*%
+ \noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempskipa}%
+ }%
+ \@tempa%
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\addtoplength}
+% \changes{v3.26}{2018/04/26}{Neu}
+% Anweisung auf Anwenderebene verfügbar.
+% \begin{macrocode}
+\newcommand*{\addtoplength}{\@addtoplength}
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</body>
+% \fi
+%
+% \iffalse
+%</letter>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-pseudolengths.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-sections.dtx b/macros/latex/contrib/koma-script/source/scrkernel-sections.dtx
new file mode 100644
index 0000000000..ab6314b290
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-sections.dtx
@@ -0,0 +1,6304 @@
+% \CheckSum{4526}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-sections.dtx
+% Copyright (c) Markus Kohm, 2002-2019
+%
+% 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-2019
+%
+% 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 3063 2019-02-01 07:39:11Z kohm $
+% The runs of run-time file generation:
+%<preidentify>%%% (run: preidentify)
+% - everything that is needed before selfidentification of resulting files
+% (unused)
+%<identify>%%% (run: identify)
+% - everything that is needed for selfidentification of resulting files
+% (unused)
+%<prepare>%%% (run: prepare)
+% - everything that is needed to define options
+%<option>%%% (run: option)
+% - definition of options
+%<execoption>%%% (run: execoption)
+% - initial option executions up to \KOMAProcessOptions
+%<body>%%% (run: body)
+% - everything, that should be done after \KOMAProcessOptions
+%<exit>%%% (run: exit)
+% - everything, that should be done immediately before leaving the file
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2019-02-01 08:39:11 +0100 (Fri, 01 Feb 2019) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 3063 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-sections.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source (disposition)]
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.3h}{1996/01/20}{Größenbefehle in den Überschriften
+% variabilisiert}^^A
+% \changes{v2.95}{2002/06/26}{erste Version aus der Aufteilung von
+% \texttt{scrclass.dtx}}^^A
+% \changes{v3.15}{2014/12/09}{Code in Datei \texttt{scrkernel-section} komplett
+% umsortiert}^^A
+%
+% \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.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \changes{v2.8e}{2001/07/10}{\cs{@maybeasf} entfernt}
+%
+% Die Briefklasse hat keine derartige Gliederung. Beim Briefpaket wird die
+% Gliederung über die verwendete Klasse bestimmt.
+% \iffalse
+%<*!letter>
+% \fi
+%
+% \subsection{Vakatseiten}
+%
+% Bei \textsf{scrbook} und \textsf{scrreprt} gibt es im doppelseitigen Modus
+% ggf. Vakatseiten.
+%
+% \begin{option}{open}
+% \changes{v2.98c}{2008/03/06}{Neue Option}^^A
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \changes{v3.17}{2015/03/09}{interne Speicherung des Wert}^^A
+% Bei \textsf{scrreprt} und \textsf{scrbook} kann per Option eingestellt
+% werden, ob beispielsweise 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. Die Voreinstellungen sind je nach
+% Klasse unterschiedlich.
+% \begin{macrocode}
+%<*class>
+%<*book|report>
+%<*prepare>
+\newif\if@openright
+%<report>\@openrightfalse
+%<book>\@openrighttrue
+%</prepare>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+%<*option>
+\KOMA@key{open}{%
+ \KOMA@set@ncmdkey{open}{@tempa}{%
+ {any}{0},%
+ {right}{1},%
+ {left}{2}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.\KOMAClassFileName}{open}{#1}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{openany}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{openright}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{openleft}%
+ \ifcase \@tempa\relax
+ \KOMA@kav@add{.\KOMAClassFileName}{headings}{openany}%
+ \@openrightfalse
+ \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}%
+ \or
+ \KOMA@kav@add{.\KOMAClassFileName}{headings}{openright}%
+ \@openrighttrue
+ \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}%
+ \or
+ \KOMA@kav@add{.\KOMAClassFileName}{headings}{openleft}%
+ \@openrighttrue
+ \renewcommand*{\cleardoublestandardpage}{\cleardoubleevenstandardpage}%
+ \fi
+ \fi
+}
+%</option>
+% \end{macrocode}
+% \changes{v3.18}{2015/05/22}{indirekte Initialisierung}
+% Die Initialisierung erfolgt indirekt über Option \texttt{headings}.
+% \begin{macrocode}
+%<*execoption>
+%<book>\KOMAExecuteOptions{headings=openright}
+%<report>\KOMAExecuteOptions{headings=openany}
+%</execoption>
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{openright}
+% \changes{v2.98c}{2008/03/05}{obsolet}^^A
+% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A
+% \begin{option}{openany}
+% \changes{v2.98c}{2008/03/05}{obsolet}^^A
+% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A
+% Zusätzlich gibt es einige Standardoptionen, die natürlich auch mit
+% \KOMAScript{} funktionieren sollen.
+% \begin{macrocode}
+%<*option>
+\KOMA@DeclareStandardOption{openright}{open=right}
+\KOMA@DeclareStandardOption{openany}{open=any}
+%</option>
+%</book|report>
+%</class>
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+%
+% \subsection{Behandlung von Gliederungsnummern}
+%
+% Die Möglichkeit der Nummerierung ist allen Ebenen bis auf \cs{minisec}
+% gemeinsam.
+%
+% \begin{option}{numbers}
+% \changes{v2.98c}{2008/03/07}{Neue Option}^^A
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \changes{v3.17}{2015/03/09}{interne Speicherung des Wert}^^A
+% 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)}^^A
+% 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. Umschaltmöglichkeiten sind auf die Klassen beschränkt.
+% \begin{macrocode}
+%<*class>
+%<*prepare>
+\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.%
+ }%
+}
+%</prepare>
+% \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}
+%<*option>
+\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
+ \KOMA@kav@xreplacevalue{.\KOMAClassFileName}{numbers}{#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
+ \fi
+}
+%</option>
+%<execoption>\KOMAExecuteOptions{numbers=autoendperiod}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{pointednumbers}
+% \changes{v2.3h}{1995/01/19}{neue Option}^^A
+% \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}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{option}{pointlessnumbers}
+% \changes{v2.3h}{1995/01/19}{neue Option}^^A
+% \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}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% Diese Optionens sind nun wirklich veraltet und sollten nicht mehr verwendet
+% werden!
+% \begin{macrocode}
+%<*option>
+\KOMA@DeclareDeprecatedOption{pointednumbers}{numbers=enddot}
+\KOMA@DeclareDeprecatedOption{pointlessnumbers}{numbers=noenddot}
+%</option>
+% \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{Counter}{secnumdepth}
+% Dieser Zähler gibt an, bis zu welcher Ebene die Gliederungsüberschriften
+% nummeriert werden.
+% \begin{macrocode}
+%<*body>
+%<book|report>\setcounter{secnumdepth}{2}
+%<article>\setcounter{secnumdepth}{3}
+%</body>
+% \end{macrocode}
+% \end{Counter}
+%
+%
+% \begin{macro}{\ifnumbered}
+% \changes{v3.12}{2013/12/16}{new command}^^A
+% \begin{macro}{\ifunnumbered}
+% \changes{v3.12}{2013/12/16}{new command}^^A
+% 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}
+%<*body>
+\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
+ }%
+}
+%</body>
+%</class>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{\KOMAScript-eigene Befehle zur Definition von
+% Gliederungsbefehlen}
+%
+% Die Funktionalität des \LaTeX-Kerns genügt \KOMAScript{} bei der Definition
+% von Gliederungsebenen nicht.
+%
+% \begin{macro}{\scr@activate@xsection}
+% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
+% Hiermit wird die Erweiterung für das optionale Argument der
+% Gliederungsbefehle eingeschaltet.
+% \begin{macro}{\scr@osectarg}^^A
+% 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.
+%
+% Da Option \texttt{headings} darauf zurückgreift, müssen die beiden Makros
+% bereits vorab definiert werden.
+% \begin{macrocode}
+%<*class>
+%<*prepare>
+\newcommand*{\scr@osectarg}{0}
+\newcommand*{\scr@activate@xsection}[1]{%
+ \renewcommand*{\scr@osectarg}{#1}%
+}
+%</prepare>
+%</class>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\if@altsecnumformat}
+% \changes{v2.3c}{1995/08/06}{neuer Schalter}^^A
+% \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}^^A
+% \begin{macro}{\@autodottrue}
+% \changes{v3.00}{2008/10/07}{arbeitet nun gobal}^^A
+% \begin{macro}{\@autodotfalse}
+% \changes{v3.00}{2008/10/07}{arbeitet nun gobal}^^A
+% 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.
+%
+% Damit die Umschaltung auch wieder zurück auf Regel~5 automatisch erfolgen
+% kann, wird ein zweiter Schalter benötigt.
+% \begin{macrocode}
+%<*class>
+%<*prepare>
+\newif\if@altsecnumformat\@altsecnumformatfalse
+\newif\if@autodot
+\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue}
+\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse}
+\@autodotfalse
+%</prepare>
+% \end{macrocode}
+% 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}^^A
+% \changes{v2.95}{2004/01/15}{es wird erst unmittelbar vor dem Schließen
+% der Haupt-aux-Datei in diese geschrieben}^^A
+% \changes{v2.96a}{2006/12/07}{es wird \cs{immediate} geschrieben}^^A
+% \changes{v3.20}{2016/03/25}{es wird \cs{csname}\dots\cs{endcsname}
+% verwendet}^^A
+% \begin{macrocode}
+%<*body>
+\BeforeClosingMainAux{%
+ \if@autodot\if@filesw\immediate\write\@mainaux{%
+ \string\global\string\csname\space @altsecnumformattrue\string\endcsname}%
+ \fi\fi}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@autodotfalse
+% \end{macro}^^A \@autodottrue
+% \end{macro}^^A \if@autodot
+% \end{macro}^^A \@altsecnumformatfalse
+% \end{macro}^^A \@altsecnumformattrue
+% \end{macro}^^A \if@altsecnumformat
+%
+% \begin{macro}{\scr@altsecnumhook}
+% \changes{v2.98c}{2008/03/07}{Neu (intern)}^^A
+% \begin{macro}{\scr@altsecnumhooktrue}
+% \changes{v2.98c}{2008/03/07}{Neu (intern)}^^A
+% \begin{macro}{\scr@altsecnumhookfalse}
+% \changes{v2.98c}{2008/03/07}{Neu (intern)}^^A
+% 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}
+%<*prepare>
+\newcommand*{\scr@altsecnumhook}{}
+\AtBeginDocument{\scr@altsecnumhook}
+\newcommand*{\scr@altsecnumhooktrue}{%
+ \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue
+}
+\newcommand*{\scr@altsecnumhookfalse}{%
+ \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse
+}
+%</prepare>
+% \end{macrocode}
+% \end{macro}^^A \scr@altsecnumhooktrue
+% \end{macro}^^A \scr@altsecnumhookfalse
+% \end{macro}^^A \scr@altsecnumhook
+%
+% \begin{macro}{\@maybeautodot}
+% \changes{v2.8e}{2001/07/10}{neu (intern)}^^A
+% 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}
+%<*body>
+\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)}^^A
+% \changes{v3.00}{2008/10/07}{neuerdings überflüssige \cs{aftergroup}^^A
+% entfernt}^^A
+% 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
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@@maybeautodot
+% \end{macro}^^A \@maybeautodot
+%
+% \begin{macro}{\autodot}
+% \changes{v2.7}{2001/01/03}{neu}^^A
+% Dieses Makro setzt dann den Punkt nach Bedarf.
+% \begin{macrocode}
+%<*body>
+\newcommand*\autodot{\if@altsecnumformat.\fi}
+%</body>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@startsection}
+% \changes{v3.13a}{2014/09/11}{Vollständige Neudefinition zur Optimierung
+% der Erweiterung für das optionale Argument}^^A
+% \begin{macro}{\scr@startsection}
+% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}^^A
+% \changes{v3.18}{2015/05/22}{verwende \cs{numexpr} für Argument 2}
+% \changes{v3.18}{2015/05/22}{verwende \cs{glueexpr} für Argument 3--5}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \changes{v3.26}{2018/09/18}{\texttt{afterindent}-Einstellung wird
+% beachtet}^^A
+% \begin{macro}{\scr@saved@startsection}
+% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}^^A
+% \changes{v3.20}{2016/04/12}{Tests funktionieren jetzt auch mit
+% \textsf{amsgen}}^^A
+% \KOMAScript{} benötigt ein eigenes \cs{@startsection}, weil die
+% Funktionalität des \cs{@startsection} aus dem \LaTeX-Kern nicht
+% genügt. Bevor allerdings die eigene Definition in Angriff genommen wird,
+% muss kontrolliert werden, ob die aufgefundene Definition noch den
+% Erwartungen entspricht. Alles andere wäre ein deutlicher Hinweis, dass
+% eventuell in \KOMAScript{} ebenfalls eine Anpassung vorzunehmen wäre.
+% Da es offenbar Leute gibt, die bei der Umdefinierung von \cs{section}
+% etc. mit Hilfe von \cs{@startsection} Leerzeichen zwischen die Argumente
+% packen und gleichzeitig \textsf{amsgen} verwenden, sorgen wir hier dafür,
+% dass dann trotzdem noch die Warnungen funktionieren und nebenbei der Code
+% mit etwas Glück sogar ebenfalls. Dazu ist es notwendig, dass die Version von
+% \cs{@startsection} gespeichert wird, die \cs{kernel@ifstar} verwendet.
+% \begin{macro}{\startsection@sectionname}
+% \changes{v3.26}{2018/05/14}{Neue Anweisung für Paketautoren}^^A
+% \begin{macro}{\startsection@secnumdepth}
+% \changes{v3.26}{2018/05/14}{Neue Anweisung für Paketautoren}^^A
+% \begin{macro}{\startsection@indent}
+% \changes{v3.26}{2018/05/14}{Neue Anweisung für Paketautoren}^^A
+% \begin{macro}{\startsection@beforeskip}
+% \changes{v3.26}{2018/05/14}{Neue Anweisung für Paketautoren}^^A
+% \begin{macro}{\startsection@afterskip}
+% \changes{v3.26}{2018/05/14}{Neue Anweisung für Paketautoren}^^A
+% \begin{macro}{\if@startsection@runin}
+% \changes{v3.26}{2018/05/14}{Neue Anweisung für Paketautoren}^^A
+% \begin{macro}{\startsection@afterindent}
+% \changes{v3.26}{2018/09/18}{Neue Anweisung für Paketautoren}^^A
+% Ab dem Zeitpunkt des Aufrufs des Hooks \cs{scr@startsection@hook} sind die
+% Makros \cs{startsection@sectionname}, \cs{startsection@secnumdepth},
+% \cs{startsection@indent}, \cs{startsection@beforeskip},
+% \cs{if@startsection@indentafter}, \cs{startsection@afterskip},
+% \cs{if@startsection@runin} und \cs{startsection@afterindent} gültig. Die
+% \cs{\dots indent}- und \cs{\dots skip}-Makros sind dabei skips (oder
+% \cs{glueexpr}) und somit wie Längen verwendbar. Bei den beiden \cs{\dots
+% skip}-Makros handelt es sich bereits um effektive Abstände, es wurden also
+% etwaige Fallunterscheidungen bezüglich des Vorzeichens des Arguments für
+% \cs{scr@startsection} bereits aufgelöst. Das \cs{if\dots}-Makro ist entweder
+% \cs{iftrue} oder \cs{iffalse}. Ein \cs{if@startsection@afterindent}
+% existiert nicht, weil \cs{if@afterindent} zu dem Zeitpunkt bereits gültig
+% ist. Außerhalb von \cs{scr@startsection} ist die Verwendung dieser Macros
+% unzulässig, bzw. das Ergebnis unspezifiziert. Ebenso sind diese Macros als
+% \emph{read-only} zu betrachten!
+% \begin{macrocode}
+%<*body>
+\newcommand*{\scr@saved@startsection}[6]{%
+ \if@noskipsec \leavevmode \fi
+ \par
+ \@tempskipa #4\relax
+ \@afterindenttrue
+ \ifdim \@tempskipa <\z@
+ \@tempskipa -\@tempskipa \@afterindentfalse
+ \fi
+ \if@nobreak
+ \everypar{}%
+ \else
+ \addpenalty\@secpenalty\addvspace\@tempskipa
+ \fi
+ \kernel@ifstar
+ {\@ssect{#3}{#4}{#5}{#6}}%
+ {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
+}
+\def\reserved@a#1#2#3#4#5#6{%
+ \if@noskipsec \leavevmode \fi
+ \par
+ \@tempskipa #4\relax
+ \@afterindenttrue
+ \ifdim \@tempskipa <\z@
+ \@tempskipa -\@tempskipa \@afterindentfalse
+ \fi
+ \if@nobreak
+ \everypar{}%
+ \else
+ \addpenalty\@secpenalty\addvspace\@tempskipa
+ \fi
+ \@ifstar
+ {\@ssect{#3}{#4}{#5}{#6}}%
+ {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
+}
+\ifcase \ifx\@startsection\scr@saved@startsection 0
+ \else
+ \ifx\@startsection\reserved@a 0
+ \else 1
+ \fi
+ \fi
+ \newcommand*{\scr@startsection}[6]{%
+ \if@noskipsec \leavevmode \fi
+ \par
+ \@tempskipa \glueexpr #4\relax
+ \@ifundefined{scr@#1@afterindent}{%
+ \def\startsection@afterindent##1##2##3{##3}%
+ }{%
+ \expandafter\let\expandafter\startsection@afterindent
+ \csname scr@#1@afterindent\endcsname
+ }%
+ \startsection@afterindent{\@afterindenttrue}{\@afterindentfalse}{%
+ \@afterindenttrue
+ \ifdim \@tempskipa <\z@
+ \@tempskipa -\@tempskipa \@afterindentfalse
+ \fi
+ }%
+ \def\startsection@sectionname{#1}%
+ \def\startsection@secnumdepth{\numexpr #2\relax}%
+ \def\startsection@indent{\glueexpr #3\relax}%
+ \let\startsection@beforeskip\@tempskipa
+ \@ifundefined{scr@#1@runin}{%
+ \def\scr@sect@runin##1##2##3{##3}%
+ }{%
+ \expandafter\let\expandafter\scr@sect@runin
+ \csname scr@#1@runin\endcsname
+ }%
+ \scr@sect@runin{%
+ \def\startsection@afterskip{\glueexpr #3\relax}%
+ \expandafter\let\csname if@startsection@runin\expandafter\endcsname
+ \csname iftrue\endcsname
+ }{%
+ \def\startsection@afterskip{\glueexpr #3\relax}%
+ \expandafter\let\csname if@startsection@runin\expandafter\endcsname
+ \csname iffalse\endcsname
+ }{%
+ \ifdim \glueexpr #5\relax <\z@
+ \def\startsection@afterskip{\glueexpr (#3)*\m@ne\relax}%
+ \expandafter\let\csname if@startsection@runin\expandafter\endcsname
+ \csname iftrue\endcsname
+ \else
+ \def\startsection@afterskip{\glueexpr #3\relax}%
+ \expandafter\let\csname if@startsection@runin\expandafter\endcsname
+ \csname iffalse\endcsname
+ \fi
+ }%
+ \csname scr@startsection@hook\endcsname
+ \if@nobreak
+ \everypar{}%
+ \else
+ \addpenalty\@secpenalty\addvspace\@tempskipa
+ \fi
+ \kernel@ifstar {%
+ \csname scr@preto@ssect@hook\endcsname
+ \def\scr@s@ct@@nn@m@{#1}%
+ \@ssect{\glueexpr #3\relax}{\glueexpr #4\relax}{\glueexpr #5\relax}{#6}%
+ }{%
+ \csname scr@preto@sect@hook\endcsname
+ \scr@section@dblarg{%
+ \@sect{#1}{\numexpr #2\relax}{\glueexpr #3\relax}{\glueexpr #4\relax}%
+ {\glueexpr #5\relax}{#6}%
+ }%
+ }%
+ }
+\else
+ \ClassWarningNoLine{\KOMAClassName}{`\string\@startsection' has been
+ changed.\MessageBreak
+ \KOMAClassName\space needs it's own Definition of
+ `\string\@startsection'\MessageBreak
+ to provide extended features for the optional argument\MessageBreak
+ of `\string\section` etc.\MessageBreak
+ Generally it defines `\string\@startsection` completely new\MessageBreak
+ to achieve this. Because of the unexpected definition\MessageBreak
+ an alternative approach will be used.\MessageBreak
+ If this fails and if there isn't a new release of\MessageBreak
+ KOMA-Script that fixes the problem, please\MessageBreak
+ send a report to the KOMA-Script author.\MessageBreak
+ Note, that this alternative approach does not\MessageBreak
+ execute `\string\scr@startsection@hook',\MessageBreak
+ `\string\scr@preto@ssect@hook', or
+ `\string\scr@preto@sect@hook'\MessageBreak
+ and does always use `runin=bysign' and\MessageBreak
+ `afterindent=bysign'%
+ }%
+ \let\scr@saved@startsection\@startsection
+ \newcommand*{\scr@startsection}[6]{%
+ \kernel@ifstar {%
+ \scr@saved@startsection{#1}{\numexpr #2\relax}{\glueexpr #3\relax}%
+ {\glueexpr #4\relax}{\glueexpr #5\relax}{#6}*%
+ }{%
+ \scr@section@dblarg{%
+ \scr@saved@startsection{#1}{\numexpr #2\relax}{\glueexpr #3\relax}%
+ {\glueexpr #4\relax}{\glueexpr #5\relax}{#6}}%
+ }%
+ }
+\fi
+% \end{macrocode}
+% \begin{macro}{\scr@sect@runin}
+% \changes{v3.26}{2018/09/18}{neu (intern)}
+% Diese Hilfsanweisung nimmt die Fallunterscheidung vor, ob eine Spitzmarke
+% oder eine freistehende Überschrift oder abhängig vom Vorzeichen des
+% Abstandes danach eine Spitzmarke oder eine freistehende Überschrift gesetzt
+% werden soll. Die Voreinstellung ist sicherheitshalber letzteres. Diese
+% Voreinstellung wird auch bei jedem Aufruf von \cs{@xsect} erneut
+% erzwungen. Auch in \cs{scr@startsection} wird die Anweisung angepasst.
+% \begin{macrocode}
+\newcommand*{\scr@sect@runin}[3]{#3}
+% \end{macrocode}
+% \end{macro}^^A \scr@sect@runin
+% \begin{macro}{\scr@startsection@ulm@error}
+% \changes{v3.26}{2018/05/14}{Neue interne Anweisung}
+% Ich bin mir bewusst, dass die Fehlerausgabe, die hier definiert wird,
+% vermutlich nie aufgerufen wird, da ein Paketautor hierzu eines der Makros
+% bereits vor dem ersten \cs{scr@startsection}-Befehl verwenden
+% müsste. Trotzdem verwende ich es quasi zwecks Initialisierung.
+% \begin{macrocode}
+\newcommand*{\scr@startsection@ulm@error}[1]{%
+ \ClassError{\KOMAClassName}{%
+ \string#1 undefined outside of \string\scr@startsection
+ }{%
+ A KOMA-Script macro for package authors have been used outside
+ the\MessageBreak
+ specified definition scope.\MessageBreak
+ See `scrkernel-sections.dtx' for more information.%
+ }%
+}
+\newcommand*\startsection@sectionname{%
+ \scr@startsection@ulm@error\startsection@sectionname}
+\newcommand*\startsection@secnumdepth{%
+ \scr@startsection@ulm@error\startsection@secnumdepth}
+\newcommand*\startsection@indent{%
+ \scr@startsection@ulm@error\startsection@indent}
+\newcommand*\startsection@beforeskip{%
+ \scr@startsection@ulm@error\startsection@beforeskip}
+\newcommand*\startsection@afterskip{%
+ \scr@startsection@ulm@error\startsection@afterskip}
+\newcommand*{\if@startsection@runin}{%
+ \scr@startsection@ulm@error\if@startsection@runin}
+\newif\if@startsection@runin
+\newcommand*\startsection@afterindent{%
+ \scr@startsection@ulm@error\startsection@afterindent}
+% \end{macrocode}
+% \end{macro}^^A \scr@startsection@ulm@error
+% \end{macro}^^A \scr@startsection@afterindent
+% \end{macro}^^A \if@startsection@runin
+% \end{macro}^^A \startsection@afterskip
+% \end{macro}^^A \startsection@beforeskip
+% \end{macro}^^A \startsection@indent
+% \end{macro}^^A \startsection@secnumdepth
+% \end{macro}^^A \startsection@sectionname
+% \begin{macro}{\At@startsection}
+% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren}^^A
+% Mit Hilfe dieser Anweisung kann Code in die Ausführung von \KOMAScript's
+% eigenem \cs{scr@startsection} an der Stelle eingefügt werden, an der
+% \cs{if@afterindent} und \cs{@tempskipa} bereits korrekt eingestellt sind,
+% aber noch bevor \emph{pentaly} und Abstand gesetzt wurden bzw. \cs{everypar}
+% gelöscht wurde.
+% \begin{macrocode}
+\newcommand*{\At@startsection}[1]{%
+ \@ifundefined{scr@startsection@hook}{\let\scr@startsection@hook\@empty}{}%
+ \l@addto@macro{\scr@startsection@hook}{#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \At@startsection
+% \begin{macro}{\Before@ssect}
+% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren}^^A
+% Mit Hilfe dieser Anweisung kann Code in die Ausführung von \KOMAScript's
+% eigenem \cs{scr@startsection} unmittelbar vor dem Aufruf von \cs{@ssect}
+% eingefügt werden.
+% \begin{macrocode}
+\newcommand*{\Before@ssect}[1]{%
+ \@ifundefined{scr@preto@ssect@hook}{\let\scr@preto@ssect@hook\@empty}{}%
+ \l@addto@macro{\scr@preto@ssect@hook}{#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \Before@ssect
+% \begin{macro}{\Before@sect}
+% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren}^^A
+% Mit Hilfe dieser Anweisung kann Code in die Ausführung von \KOMAScript's
+% eigenem \cs{scr@startsection} unmittelbar vor dem Aufruf von \cs{@sect}
+% eingefügt werden.
+% \begin{macrocode}
+\newcommand*{\Before@sect}[1]{%
+ \@ifundefined{scr@preto@sect@hook}{\let\scr@preto@sect@hook\@empty}{}%
+ \l@addto@macro{\scr@preto@sect@hook}{#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \Before@sect
+% \begin{macro}{\scr@section@dblarg}
+% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}^^A
+% \begin{macro}{\scr@section@xdblarg}
+% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}^^A
+% \begin{macrocode}
+\newcommand{\scr@section@dblarg}[1]{%
+ \kernel@ifnextchar[%]
+ {#1}%
+ {\scr@section@xdblarg{#1}}%
+}
+\newcommand{\scr@section@xdblarg}[2]{%
+ \begingroup
+ \edef\reserved@a{%
+ \unexpanded{\endgroup\let\scr@osectarg\z@#1[{#2}]{#2}\def\scr@osectarg}%
+ {\scr@osectarg}}%
+ \reserved@a
+}
+% \end{macrocode}
+% \end{macro}%^^A \scr@section@xdblarg
+% \end{macro}%^^A \scr@section@dblarg
+% \end{macro}%^^A \scr@saved@startsection
+% \end{macro}%^^A \scr@startsection
+% \begin{macrocode}
+\renewcommand*{\@startsection}{%
+ \ifnum \scr@osectarg=\z@
+ \expandafter\scr@saved@startsection
+ \else
+ \expandafter\scr@startsection
+ \fi
+}
+%</body>
+% \end{macrocode}
+% \end{macro}%^^A \@startsection
+%
+%
+% \begin{macro}{\SecDef}
+% \changes{v3.13a}{2014/09/11}{neue Anweisung}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\secdef}
+% \changes{v3.13a}{2014/09/11}{Vollständige Neudefinition zur Optimierung
+% der Erweiterung für das optionale Argument}^^A
+% \begin{macrocode}
+%<*body>
+\newcommand*{\SecDef}[2]{\kernel@ifstar{#2}{\scr@section@dblarg{#1}}}
+\CheckCommand*{\secdef}[2]{\@ifstar{#2}{\@dblarg{#1}}}
+\let\secdef\SecDef
+%</body>
+% \end{macrocode}
+% \end{macro}%^^A \secdef
+% \end{macro}%^^A \SecDef
+% \begin{macro}{\scr@sect}
+% \changes{v3.10}{2011/08/30}{entfällt}^^A
+% \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
+% \changes{v3.18}{2015/05/20}{definiert \cs{IfUsePrefixLine} intern}^^A
+% \changes{v3.18}{2015/05/22}{Verwendung von \cs{numexpr} für Argument 2}^^A
+% \changes{v3.18}{2015/05/22}{Verwendung von \cs{gluexpr} für Argument
+% 3--5}^^A
+% \changes{v3.19}{2015/07/17}{Verwendung von \cs{sectionlinesformat} und
+% \cs{sectioncatchphraseformat}}^^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}
+%<*body>
+\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 information about this to\MessageBreak
+ the KOMA-Script maintainer!\MessageBreak
+ Maybe LaTeX will be broken by the redefinition\MessageBreak
+ of \string\@sect\space}%
+\fi
+%<trace>\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},reference={#8},#7}%
+ \else
+ \ifcase \scr@osectarg\relax
+ \setkeys{KOMAarg.section}{tocentry={#7},head={#7},reference={#7}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#8},head={#7},reference={#8}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#7},head={#8},reference={#7}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#7},head={#7},reference={#7}}%
+ \fi
+ \fi
+% \end{macrocode}
+% \changes{v3.23}{2017/02/04}{support for \textsf{minitoc}}^^A
+% \changes{v3.23}{2017/03/24}{usage of \cs{ext@figure} and \cs{ext@table}
+% instead of \texttt{lof} and \texttt{lot}}^^A
+% Add the \texttt{xsect} entries to \texttt{lof} and \texttt{lot}. Note, that
+% the original \cs{starsection} tests of \textsf{minitoc} has a bug and so
+% does not work. And the original code of \textsf{minitoc} has hard coded
+% \texttt{lot} and \texttt{lof} instead of \cs{ext@figure} and
+% \cs{ext@table}. This is a fixed one:
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{scr@mt@saved@sect}{}{%
+ \expandafter\ifx\csname #1\endcsname\section
+ \addcontentsline{\ext@figure}{xsect}{\@currenttocentry}%
+ \addcontentsline{\ext@table}{xsect}{\@currenttocentry}%
+ \fi
+ \expandafter\ifx\csname #1\endcsname\starsection\relax
+ \addcontentsline{\ext@figure}{xsect}{\@currenttocentry}%
+ \addcontentsline{\ext@table}{xsect}{\@currenttocentry}%
+ \fi
+ }%
+ \let\IfUsePrefixLine\@secondoftwo
+ \ifnum \numexpr #2\relax>\c@secnumdepth
+ \let\@svsec\@empty
+ \else
+ \refstepcounter{#1}%
+ \expandafter\@maybeautodot\csname the#1\endcsname
+ \protected@edef\@svsec{\@seccntformat{#1}\relax}%
+ \fi
+% \end{macrocode}
+% \changes{v3.26}{2018/09/18}{\cs{scr@sect@runin} beachten}^^A
+% Falls \cs{scr@sect@runin} nicht definiert ist, wird es jetzt höchste Zeit
+% dafür. Und natürlich nutzen wir es dann für die Entscheidung Spitzmarke oder
+% nicht.
+% \begin{macrocode}
+ \ifdim
+ \scr@sect@runin{\z@}{\p@}{\glueexpr #5\relax}>\z@
+ \begingroup
+% \end{macrocode}
+% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}^^A
+% Das Farbänderungen im Schriftargument erlaubt sein sollen und diese aktuelle
+% \cs{penalty}-Werte wieder aufheben, verbiete ich hier einen Umbruch nach
+% der Fontänderung.
+% \begin{macrocode}
+ #6{\nobreak\interlinepenalty \@M
+ \sectionlinesformat{#1}{\glueexpr #3\relax}\@svsec{#8}\@@par}%
+ \endgroup
+%<*trace>
+ \ClassInfo{\KOMAClassName}{%
+ head=`\detokenize\expandafter{\@currentheadentry}'\MessageBreak
+ tocentry=`\detokenize\expandafter{\@currenttocentry}'\MessageBreak
+ reference=`\detokenize\expandafter{\@currentlabelname}'}%
+%</trace>
+ \expandafter\csname #1mark\expandafter\endcsname\expandafter{\@currentheadentry}%
+ \ifx\@currenttocentry\@empty\else
+ \scr@ifundefinedorrelax{add#1tocentry}{%
+ \expandafter\global\expandafter\def
+ \csname add#1tocentry\endcsname##1##2{%
+ \addtocentrydefault{#1}{##1}{##2}%
+ }%
+ }{}%
+ \ifnum \numexpr #2\relax>\c@secnumdepth
+ \csname add#1tocentry\endcsname{}{\@currenttocentry}%
+ \else
+ \csname add#1tocentry\endcsname{\csname the#1\endcsname}{%
+ \@currenttocentry}%
+ \fi
+ \fi
+ \else
+% \end{macrocode}
+% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}^^A
+% Da Farbänderungen im Schriftargument erlaubt sein sollen und diese aktuelle
+% \cs{penalty}-Werte wieder aufheben, verbiete ich hier einen Umbruch nach
+% der Fontänderung.
+% \begin{macrocode}
+ \def\@svsechd{%
+ #6{\nobreak\sectioncatchphraseformat{#1}{\glueexpr #3\relax}\@svsec{#8}}%
+%<*trace>
+ \ClassInfo{\KOMAClassName}{%
+ head=`\detokenize\expandafter{\@currentheadentry}'\MessageBreak
+ tocentry=`\detokenize\expandafter{\@currenttocentry}'\MessageBreak
+ reference=`\detokenize\expandafter{\@currentlabelname}'}%
+%</trace>
+ \expandafter\csname #1mark\expandafter\endcsname
+ \expandafter{\@currentheadentry}%
+ \ifx\@currenttocentry\@empty\else
+ \scr@ifundefinedorrelax{add#1tocentry}{%
+ \expandafter\global\expandafter\def
+ \csname add#1tocentry\endcsname####1####2{%
+ \addtocentrydefault{#1}{####1}{####2}%
+ }%
+ }{}%
+ \ifnum \numexpr #2\relax>\c@secnumdepth
+ \csname add#1tocentry\endcsname{}{\@currenttocentry}%
+ \else
+ \csname add#1tocentry\endcsname{\csname the#1\endcsname}{%
+ \@currenttocentry}%
+ \fi
+ \fi
+ }%
+ \fi
+ \let\IfUsePrefixLine\scr@IfUsePrefixLineWarning
+ \@xsect{\glueexpr #5\relax}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ds@tocentry}
+% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
+% \begin{macro}{\@currenttocentry}
+% \changes{v3.22}{2016/07/12}{\cs{scr@ds@tocentry} (semi-intern)
+% umbenannt}^^A
+% \begin{macro}{\scr@ds@head}
+% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
+% \begin{macro}{\@currentheadentry}
+% \changes{v3.22}{2016/07/12}{\cs{scr@ds@head} (semi-intern)
+% umbenannt}^^A
+% \begin{macro}{\@currentlabelname}
+% \changes{v3.22}{2016/07/12}{neu (semi-intern)}
+% \begin{macro}{\if@scr@tempswa}
+% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
+% \begin{macro}{\scr@istest}
+% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
+% Für die Realisierung werden noch ein paar Key-Value-Definitionen und ein
+% paar Hilfsmakros benötigt:
+% \begin{macrocode}
+\DefineFamily{KOMAarg}
+\DefineFamilyMember[.section]{KOMAarg}
+\providecommand*\@currenttocentry{}
+\providecommand*\@currentheadentry{}
+\providecommand*\@currentlabelname{}
+\FamilyStringKey[.section]{KOMAarg}{tocentry}{\@currenttocentry}
+\FamilyStringKey[.section]{KOMAarg}{head}{\@currentheadentry}
+\DefineFamilyKey[.section]{KOMAarg}{reference}{%
+ \scr@ifundefinedorrelax{NR@gettitle}{%
+ \scr@ifundefinedorrelax{GetTitleString}{%
+ \def\@currentlabelname{#1}%
+ }{%
+ \GetTitleString{#1}%
+ \let\@currentlabelname\GetTitleStringResult
+ }%
+ }{%
+ \NR@gettitle{#1}%
+ }%
+ \scr@ifundefinedorrelax{TR@gettitle}{}{%
+ \expandafter\TR@gettitle\expandafter{\@currentlabelname}%
+ }%
+ \scr@ifundefinedorrelax{ztitlerefsetup}{}{%
+ \ztitlerefsetup{title=\@currentlabelname}%
+ }%
+ \FamilyKeyStateProcessed
+}
+\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}^^A \scr@istest
+% \end{macro}^^A \if@scr@tempswa
+% \end{macro}^^A \@currentlabelname
+% \end{macro}^^A \@currentheadentry
+% \end{macro}^^A \scr@ds@head
+% \end{macro}^^A \@currenttocentry
+% \end{macro}^^A \scr@ds@tocentry
+% \begin{macro}{\sectionlinesformat}
+% \changes{v3.19}{2015/07/17}{neue Anweisung}^^A
+% Diese Anweisung definiert das Format der eigentlichen Überschriften im Stil
+% \texttt{section}, wenn mit Überschriftenzeilen gearbeitet
+% wird. Fonteinstellungen sind zu diesem Zeitpunkt bereits erfolgt. Die
+% Argumente sind:
+% \begin{description}
+% \item[\meta{Ebene} --] der Name der Gliederungebene
+% \item[\meta{Einzug} --] ein eventuell zu verwendender horizontaler
+% Einzug.
+% \item[\meta{Gliederungsnummer} --] die bereits fertig formatierte
+% Gliederungsnummer oder leer, falls keine Gliederungsnummer auszugeben ist.
+% \item[\meta{Text} --] der Text der Überschrift.
+% \end{description}
+% Der Anwender ist selbst verantwortlich, dass innerhalb der Überschrift kein
+% Seitenumbruch erfolgen kann. Nach der Überschrift wird jedoch zwangsweise
+% ein \cs{@@par} ausgeführt, so dass sichergestellt ist, dass mit einem
+% internen Absatz abgeschlossen wird.
+% \begin{macrocode}
+\newcommand{\sectionlinesformat}[4]{%
+ \@hangfrom{\hskip #2#3}{#4}%
+}
+% \end{macrocode}
+% \end{macro}^^A \sectionlinesformat
+% \begin{macro}{\sectioncatchphraseformat}
+% \changes{v3.19}{2015/07/17}{neue Anweisung}^^A
+% Diese Anweisung definiert das Format der eigentlichen Überschriften im
+% Stil \texttt{section}, wenn mit Spitzmarken gearbeitet
+% wird. Fonteinstellungen sind zu diesem Zeitpunkt bereits erfolgt. Die
+% Argumente sind:
+% \begin{description}
+% \item[\meta{Ebene} --] der Name der Gliederungebene
+% \item[\meta{Einzug} --] ein eventuell zu verwendender horizontaler
+% Einzug.
+% \item[\meta{Gliederungsnummer} --] die bereits fertig formatierte
+% Gliederungsnummer oder leer, falls keine Gliederungsnummer auszugeben
+% ist.
+% \item[\meta{Text} --] der Text der Überschrift.
+% \end{description}
+% Der Anwender ist selbst verantwortlich, dass innerhalb der Überschrift kein
+% Seitenumbruch erfolgen kann.
+% \begin{macrocode}
+\newcommand{\sectioncatchphraseformat}[4]{%
+ \hskip #2#3#4%
+}
+% \end{macrocode}
+% \end{macro}^^A \sectioncatchphraseformat
+% \end{macro}^^A \@sect
+% \end{macro}^^A \scr@sect
+%
+% \begin{macro}{\@ssect}
+% \changes{v3.19}{2015/07/17}{Vollständige Neudefinition zur Realisierung
+% der Erweiterung für die Formatieurng der Überschrift}^^A
+% Das wird für Überschriften ohne Nummer verwendet. Im Prinzip machen wir hier
+% dasselbe wie zuvor.
+% \begin{macrocode}
+\def\@tempa#1#2#3#4#5{%
+ \@tempskipa #3\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+ #4{%
+ \@hangfrom{\hskip #1}%
+ \interlinepenalty \@M #5\@@par}%
+ \endgroup
+ \else
+ \def\@svsechd{#4{\hskip #1\relax #5}}%
+ \fi
+ \@xsect{#3}}
+\ifx\@ssect\@tempa\else
+ \ClassWarning{\KOMAClassName}{%
+ Unexpected definition of \string\@ssect!\MessageBreak
+ Please send information about this to\MessageBreak
+ the KOMA-Script maintainer!\MessageBreak
+ Maybe LaTeX will be broken by the redefinition\MessageBreak
+ of \string\@ssect\space}%
+\fi
+%<trace>\ClassInfo{\KOMAClassName}{redefining LaTeX kernel macro
+%<trace> \string\@ssect}
+\def\@ssect#1#2#3#4#5{%
+ \scr@ifundefinedorrelax{scr@s@ct@@nn@m@}{%
+ \ClassWarning{\KOMAClassName}{incompatible usage of
+ \string\@ssect\space detected.\MessageBreak
+ You've used the KOMA-Script implementation of
+ \string\@ssect\MessageBreak
+ from within a non compatible caller, that does not\MessageBreak
+ \string\scr@s@ct@@nn@m@\space locally.\MessageBreak
+ This could result in several error messages}%
+ \def\scr@s@ct@@nn@m@{\string\scr@s@ct@@nn@m@}%
+ }{}%
+% \end{macrocode}
+% \changes{v3.26}{2018/09/18}{\cs{scr@sect@runin} beachten}^^A
+% Falls \cs{scr@sect@runin} nicht definiert ist, wird es jetzt höchste Zeit
+% dafür. Und natürlich nutzen wir es dann für die Entscheidung Spitzmarke oder
+% nicht.
+% \begin{macrocode}
+ \ifdim
+ \scr@sect@runin{\z@}{\p@}{\glueexpr #3\relax}>\z@
+ \begingroup
+% \end{macrocode}
+% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}^^A
+% Das Farbänderungen im Schriftargument erlaubt sein sollen und diese aktuelle
+% \cs{penalty}-Werte wieder aufheben, verbiete ich hier einen Umbruch nach
+% der Fontänderung.
+% \begin{macrocode}
+ #4{\nobreak\interlinepenalty \@M
+ \expandafter\sectionlinesformat\expandafter{\scr@s@ct@@nn@m@}%
+ {\glueexpr #1\relax}\@empty{#5}\@@par}%
+ \endgroup
+ \else
+ \edef\@svsechd{%
+ \unexpanded{#4}{%
+% \end{macrocode}
+% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}^^A
+% Das Farbänderungen im Schriftargument erlaubt sein sollen und diese aktuelle
+% \cs{penalty}-Werte wieder aufheben, verbiete ich hier einen Umbruch nach
+% der Fontänderung.
+% \begin{macrocode}
+ \noexpand\nobreak
+ \noexpand\sectioncatchphraseformat{\scr@s@ct@@nn@m@}%
+ \unexpanded{{\glueexpr #1\relax}\@empty{#5}}%
+ }%
+ }%
+ \fi
+ \let\scr@s@ct@@nn@m@\relax
+ \@xsect{\glueexpr #3\relax}%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@ssect
+% \begin{macro}{\@xsect}
+% \changes{v3.26}{2018/09/18}{wird umdefiniert}^^A
+% Wir brauchen zum Einen in \cs{@xsect} einen Fallunterscheidung nach
+% \cs{scr@sect@runin} und zum Anderen muss diese Fallunterscheidung am Ende
+% wieder zurückgesetzt werden.
+% \begin{macrocode}
+%<*body>
+\def\@tempa#1{%
+ \@tempskipa #1\relax
+ \ifdim \@tempskipa>\z@
+ \par \nobreak
+ \vskip \@tempskipa
+ \@afterheading
+ \else
+ \@nobreakfalse
+ \global\@noskipsectrue
+ \everypar{%
+ \if@noskipsec
+ \global\@noskipsecfalse
+ {\setbox\z@\lastbox}%
+ \clubpenalty\@M
+ \begingroup \@svsechd \endgroup
+ \unskip
+ \@tempskipa #1\relax
+ \hskip -\@tempskipa
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{}%
+ \fi}%
+ \fi
+ \ignorespaces
+}
+\ifx\@xsect\@tempa\else
+ \ClassWarning{\KOMAClassName}{%
+ Unexpected definition of \string\@xsect!\MessageBreak
+ Please send information about this to\MessageBreak
+ the KOMA-Script maintainer!\MessageBreak
+ Maybe LaTeX will be broken by the redefinition\MessageBreak
+ of \string\@xsect\space}%
+\fi
+%<trace>\ClassInfo{\KOMAClassName}{redefining LaTeX kernel macro
+%<trace> \string\@xsect}
+\def\@xsect#1{%
+ \@ifundefined{scr@sect@runin}{%
+ \def\scr@sect@runin##1##2##3{##3}%
+ }%
+ \@tempskipa #1\relax
+ \ifdim \scr@sect@runin{\z@}{\p@}{\@tempskipa}>\z@
+ \par \nobreak
+ \vskip \@tempskipa
+ \@afterheading
+ \else
+ \@nobreakfalse
+ \global\@noskipsectrue
+ \everypar{%
+ \if@noskipsec
+ \global\@noskipsecfalse
+ {\setbox\z@\lastbox}%
+ \clubpenalty\@M
+ \begingroup \@svsechd \endgroup
+ \unskip
+ \@tempskipa #1\relax
+ \ifdim \@tempskipa<\z@
+ \hskip -\@tempskipa
+ \else
+ \hskip \@tempskipa
+ \fi
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{}%
+ \fi}%
+ \fi
+ \def\scr@sect@runin##1##2##3{##3}%
+ \ignorespaces
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@xsect
+%
+% \begin{macro}{\IfUsePrefixLine}
+% \changes{v3.18}{2015/06/09}{außerhalb von Gliederungsbefehlsstilen
+% definiert}^^A
+% Eigentlich ist diese Anweisung nur innerhalb von Gliederungsbefehlen
+% sinnvoll und wurde bis \KOMAScript{} 3.17c auch nur dort definiert. Dann gab
+% es aber Leute, die \cs{chapterformat} missbraucht haben und gleich meldete
+% sich jemand, die nicht verstehen konnte, warum die Anweisung dann einen
+% Fehler produzieren muss. Wenn man den Code nicht verstanden hat, dann ist
+% das nämlich so. Deshalb gebe ich jetzt eine Warnung aus, dass die Verwendung
+% nicht unbedingt zu dem Resultat führt, das erwartet wird.
+% \begin{macro}{\scr@IfUsePrefixLineWarning}
+% \changes{v3.18}{2015/06/09}{neu (intern)}
+% \begin{macrocode}
+%<*body>
+\newcommand*{\scr@IfUsePrefixLineWarning}[2]{%
+ \ClassWarning{\KOMAClassName}{%
+ usage of \string\IfUsePrefixLine\space outside
+ section command\MessageBreak
+ style makes no sense, because the behaviour not only\MessageBreak
+ depends on class options but also on the run-time\MessageBreak
+ section command style.\MessageBreak
+ Neither the then-code nor the else-code will be\MessageBreak
+ executed.\MessageBreak
+ You may change this and avoid the warning by LOCALLY\MessageBreak
+ setting \string\IfUsePrefixLine\space to either
+ \string\@firstoftwo\space or\MessageBreak
+ \string\@secondoftwo\space before using it%
+ }%
+}
+\newcommand*{\IfUsePrefixLine}[2]{}
+\let\IfUsePrefixLine\scr@IfUsePrefixLineWarning
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \scr@IfUsePrefixLineWarning
+% \end{macro}^^A \IfUsePrefixLine
+%
+%
+% \begin{macro}{\raggedsection}
+% \changes{v2.3h}{1996/01/20}{Überschriften werden \cs{raggedsection}^^A
+% gesetzt}^^A
+% \changes{v2.3h}{1996/01/20}{\cs{raggedsection} ist als \cs{raggedright}
+% voreingestellt}^^A
+% Dieses Makro gibt an, wie die Überschriften formatiert
+% werden. Voreingestellt ist linksbündig. Da dies nicht nur die Formatierung
+% von \cs{section} (und darunter), sondern auch die Voreinstellung für die
+% höheren Ebenen ist, wird die Definition hier vorgezogen.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\raggedsection}{}
+\let\raggedsection\raggedright
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \raggedsection
+%
+%
+% \begin{macro}{\DeclareSectionCommand}
+% \changes{v3.15}{2014/11/21}{neue Anweisung}^^A
+% \changes{v3.17}{2015/03/23}{Komplettumbau, um stilabhängige Optionen zu
+% ermöglichen}^^A
+% \changes{v3.18}{2015/05/22}{\cs{scr@dsc@def@style@\dots @command}
+% definiert alle Stil abhängigen Anweisungen}^^A
+% \changes{v3.20}{2015/10/03}{\cs{DeclareTOCStyleEntry}
+% definiert die Verzeichnisstil abhängigen Anweisungen}^^A
+% Definition neuer oder Umdefinition existierender Gliederungsbefehle, die auf
+% \cs{scr@startsection} basieren. Ebenso wird ein Verzeichniseintrag erzeugt,
+% falls ein solcher noch nicht existiert. Die Deklaration geschieht über
+% diverse Optionen (Achtung: Unbedingt daran denken, diese in
+% \cs{ProvideSectionCommands} ebenfalls zu definieren!!!):
+% \begin{macrocode}
+%<*body>
+\DefineFamily{KOMAarg}
+\DefineFamilyMember[.dsc]{KOMAarg}
+% \end{macrocode}
+% \begin{macro}{\DeclareSectionCommandStyleOption}
+% \changes{v3.17}{2015/03/23}{neue Anweisung}^^A
+% Definiert eine neue Option für einen Stil eines Gliederungsbefehls. Das
+% erste Argument ist der Stil, das zweite der Name der Option, das dritte ist
+% die Definition. Sollte innerhalb der Definition eine Familie benötigt
+% werden, so ist \texttt{KOMAarg} zu verwenden.
+% \begin{macrocode}
+\newcommand*{\DeclareSectionCommandStyleOption}[3]{%
+ \AddToSectionCommandOptionsDoList{#2}%
+ \expandafter\g@addto@macro\csname scr@dsc@style@#1@options\endcsname{%
+ \DefineFamilyKey[.dsc]{KOMAarg}{#2}{#3}%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\DeclareSectionCommandDummyOption}
+% \changes{v3.17}{2015/03/23}{neue Anweisung (intern)}^^A
+% \changes{v3.20}{2015/11/18}{wird nicht mehr benötigt}^^A
+% \end{macro}^^A \DeclareSectionCommandDummyOption
+% \begin{macro}{\AddToSectionCommandOptionsDoList}
+% \changes{v3.20}{2015/11/18}{neu}
+% \begin{macro}{\@AddToSectionCommandOptionsDoList}
+% \changes{v3.20}{2015/11/18}{neu (intern)}
+% \begin{macro}{\scr@dsc@doopts}
+% \changes{v3.20}{2015/11/18}{neu (intern)}
+% Registriert eine neue Gliederungsbefehlsoption, indem sie der internen Liste
+% der Gliederungsbefehlsoptionen hinzugefügt wird.
+% \begin{macrocode}
+\newcommand*{\AddToSectionCommandOptionsDoList}[1]{%
+ \kernel@ifnextchar [%]
+ {\@AddToSectionCommandOptionListWithDefault{#1}}%
+ {\l@addto@macro\scr@dsc@doopts{\do{#1}}}%
+}
+\newcommand*{\@AddToSectionCommandOptionListWithDefault}{}
+\def\@AddToSectionCommandOptionListWithDefault#1[#2]{%
+ \l@addto@macro\scr@dsc@doopts{\do[{#2}]{#1}}
+}%
+\newcommand*{\scr@dsc@doopts}{}
+% \end{macrocode}
+% \end{macro}^^A \scr@dsc@dooptions
+% \end{macro}^^A \@AddToSectionCommandOptionsListWithDefault
+% \end{macro}^^A \AddToSectionCommandOptionsDoList
+% \begin{macro}{\RelaxSectionCommandOptions}
+% \changes{v3.20}{2015/11/18}{neu}
+% Diese Option macht alle Gliederungsbefehlsoptionen ungültig.
+% \begin{macrocode}
+\newcommand*{\RelaxSectionCommandOptions}{%
+ \begingroup
+ \def\do@endgroup{\endgroup}%
+ \def\do{%
+ \kernel@ifnextchar [%]
+ {\@do}%
+ {\@do[]}%
+ }%
+ \def\@do[##1]##2{%
+ \l@addto@macro\do@endgroup{\RelaxFamilyKey[.dsc]{KOMAarg}{##2}}%
+ }%
+ \scr@dsc@doopts
+ \do@endgroup
+}
+% \end{macrocode}
+% \end{macro}^^A \RelaxSectionCommandOptions
+% \end{macro}^^A \DeclareSectionCommandStyleOption
+% \begin{macro}{\DeclareSectionCommandStyleLengthOption}
+% \changes{v3.17}{2015/03/23}{neue Anweisung}^^A
+% \changes{v3.20}{2016/04/25}{Argument wird ggf. expandiert}^^A
+% Definiert eine für die aktuelle Ebene \cs{scr@dsc@current} eine neue
+% Längenoption und speichert das Ergebnis in einem Makro, das sich aus
+% Argument 3 gefolgt von der aktuellen Ebene gefolgt von Argument 4 ergibt.
+% \begin{macrocode}
+\newcommand*{\DeclareSectionCommandStyleLengthOption}[4]{%
+ \DeclareSectionCommandStyleOption{#1}{#2}{%
+ \protected@edef\reserved@a{%
+ \noexpand\FamilySetLength{KOMAarg}{#2}{\noexpand\@tempskipa}{##1}%
+ }\reserved@a
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifscr@dsc@expandtopt
+ \expandafter\edef\csname #3\scr@dsc@current#4\endcsname{%
+ \the\@tempskipa}%
+ \else
+ \expandafter\edef\csname #3\scr@dsc@current#4\endcsname{##1}%
+ \fi
+ \fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \DeclareSectionCommandStyleLengthOption
+% \begin{macro}{\DeclareSectionCommandStyleNumberOption}
+% \changes{v3.17}{2015/03/23}{neue Anweisung}^^A
+% \changes{v3.20}{2016/04/25}{Argument wird expandiert}^^A
+% Definiert eine für die aktuelle Ebene \cs{scr@dsc@current} eine neue
+% Zahlenoption und speichert das Ergebnis in einem Makro, das sich aus
+% Argument 3 gefolgt von der aktuellen Ebene gefolgt von Argument 4 ergibt.
+% \begin{macrocode}
+\newcommand*{\DeclareSectionCommandStyleNumberOption}[4]{%
+ \DeclareSectionCommandStyleOption{#1}{#2}{%
+ \protected@edef\reserved@a{%
+ \noexpand\FamilySetCounterMacro{KOMAarg}{#2}{\noexpand\reserved@a}{##1}
+ }\reserved@a
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \expandafter\let\csname #3\scr@dsc@current#4\endcsname\reserved@a
+ \fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \DeclareSectionCommandStyleNumberOption
+% \begin{macro}{\DeclareSectionCommandStyleFontOption}
+% \changes{v3.17}{2015/03/23}{neue Anweisung}^^A
+% Definiert für die aktuelle Ebene \cs{scr@dsc@current} eine neue
+% Schrift und speichert das Ergebnis in einem Element, das sich aus
+% Argument 3 gefolgt von der aktuellen Ebene gefolgt von Argument 4 ergibt.
+% \begin{macrocode}
+\newcommand*{\DeclareSectionCommandStyleFontOption}[4]{%
+ \DeclareSectionCommandStyleOption{#1}{#2}{%
+ \IfExistskomafont{#3\scr@dsc@current#4}{%
+ \setkomafont
+ }{%
+ \newkomafont
+ }{#3\scr@dsc@current#4}{##1}%
+ \FamilyKeyStateProcessed
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \DeclareSectionCommandStyleFontOption
+% \begin{macro}{\DeclareSectionCommandStyleFuzzyOption}
+% \changes{v3.26}{2018/09/18}{neue Anweisung}^^A
+% Definiert für die aktuelle Ebene \cs{scr@dsc@current} eine neue
+% Fuzzy-Auswahl. Eine Fuzzy-Auswahl akzeptiert neben den Werten für
+% boolsche-Schalter noch einen weiteren Wert. Es wird davon eine Anweisung
+% mit drei Argumenten definiert. Abhängig vom Wert wird das erste
+% (\texttt{true}), zweite (\texttt{false}) oder dritte (\emph{sonst}) Argument
+% ausgeführt. Der erlaubte weitere Wert wird als 5. Argument angegeben.
+% \begin{macrocode}
+\newcommand*{\DeclareSectionCommandStyleFuzzyOption}[5]{%
+ \DeclareSectionCommandStyleOption{#1}{#2}{%
+ \FamilySetBool{KOMAarg}{#2}{@tempswa}{##1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \expandafter\def\csname #3\scr@dsc@current#4\endcsname
+ ####1####2####3{####1}%
+ \else
+ \expandafter\def\csname #3\scr@dsc@current#4\endcsname
+ ####1####2####3{####2}%
+ \fi
+ \else
+ \ifstr{##1}{#5}{%
+ \expandafter\def\csname #3\scr@dsc@current#4\endcsname
+ ####1####2####3{####3}%
+ \FamilyKeyStateProcessed
+ }{}%
+ \fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \DeclareSectionCommandStyleFuzzyOptions
+%
+% \begin{macro}{\scr@dsc@style@section@options}
+% \changes{v3.17}{2015/03/23}{neue Anweisung (intern)}^^A
+% Dann für die Optionen des Stils \texttt{section}:
+% \begin{macrocode}
+\newcommand*{\scr@dsc@style@section@options}{}
+% \end{macrocode}
+% \begin{description}\item[\texttt{indent}]
+% Linker Einzug der Überschrift
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleLengthOption{section}
+ {indent}{scr@}{@sectionindent}
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{afterindent}]
+% \changes{v3.26}{2018/09/18}{neue Option \texttt{afterindent}}^^A
+% Fuzzy-Logik. Ein boolcher Wert gibt an, ob die erste Zeile nach der
+% Überschrift eingezogen werden soll. Als dritter Wert ist \texttt{bysign}
+% möglich. Dann hängt die Entscheidung für den Einzug vom Vorzeichen von
+% \texttt{beforeskip} ab. Ein negativer Wert bedeutet dann, dass der
+% Absatzeinzug nach der Überschrift unterdrückt werden soll.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleFuzzyOption{section}
+ {afterindent}{scr@}{@afterindent}
+ {bysign}
+% \end{macrocode}
+% \begin{description}\item[\texttt{beforeskip}]
+% Gibt den vertikalen Abstand vor der Übeschrift an. Im Fall von
+% \texttt{afterindent=bysign} wird der Absolutwert verwendet.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleLengthOption{section}
+ {beforeskip}{scr@}{@beforeskip}
+% \end{macrocode}
+% \begin{description}\item[\texttt{runin}]
+% \changes{v3.26}{2018/09/18}{neue Option \texttt{runin}}^^A
+% Fuzzy-Logik. Ein boolscher Wert gibt an, dass die Überschrift als
+% Spitzmarke (\texttt{true}) oder als eigene Zeile (\texttt{false}) gesetzt
+% werden soll. Als dritter Wert ist \texttt{bysign} möglich. Dann hängt
+% Spitzmarke oder nicht vom Vorzeichen von \texttt{afterskip} ab. Spitzmarke
+% gibt es dann bei einem negativen Wert von \texttt{afterskip}.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleFuzzyOption{section}
+ {runin}{scr@}{@runin}
+ {bysign}
+% \end{macrocode}
+% \begin{description}\item[\texttt{afterskip}] Im Fall einer Spitzmarke (siehe
+% \texttt{runin}) der horizontale Abstand nach der Überschrift. Im Fall einer
+% freistehenden Überschrift der vertikale Abstand nach der Überschrift. Falls
+% die Spitzmarke über das Vorzeichen aktiviert wird, wird immer der Betrag des
+% Wertes verwendet!
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleLengthOption{section}
+ {afterskip}{scr@}{@afterskip}
+% \end{macrocode}
+% \begin{description}\item[\texttt{font}] Schrifteinstellungen für das
+% Element.\end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleFontOption{section}{font}{}{}
+% \end{macrocode}
+% \end{macro}^^A \scr@dsc@style@section@options
+% \begin{macro}{\scr@dsc@def@style@section@command}
+% \changes{v3.18}{2015/05/21}{neue Anweisung (intern)}^^A
+% \changes{v3.20}{2016/01/19}{korrekte Spitzmarkenprüfung für
+% \cs{parfillskip}-Änderung}^^A
+% Diese Anweisung left fest, wie ein Gliederungsbefehl für den Stil
+% \texttt{section} zu definieren ist. Das einzige Argument ist dabei der
+% \meta{Name} der Gliederungsebene, beispielsweise \texttt{section},
+% \texttt{subsection} etc. Hier ist es recht einfach, da lediglich
+% \cs{\meta{Name}} per \cs{scr@startsection} definiert werden muss.
+% \begin{macrocode}
+\newcommand*{\scr@dsc@def@style@section@command}[1]{%
+ \@namedef{#1}{%
+ \scr@startsection{#1}%
+ {\csname #1numdepth\endcsname}%
+ {\csname scr@#1@sectionindent\endcsname}%
+ {\csname scr@#1@beforeskip\endcsname}%
+ {\csname scr@#1@afterskip\endcsname}%
+ {%
+ \ifdim\glueexpr\csname scr@#1@afterskip\endcsname >\z@
+ \expandafter\ifnum\scr@v@is@gt{2.96}\relax
+ \setlength{\parfillskip}{\z@ plus 1fil}%
+ \fi
+ \fi
+ \raggedsection\normalfont\sectfont\nobreak
+ \usekomafont{#1}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@dsc@def@style@section@command
+%
+% \begin{macro}{\scr@dsc@style@chapter@options}
+% \changes{v3.17}{2015/03/23}{neue Anweisung (intern)}^^A
+% Dann für die Optionen des Stils \texttt{chapter}:
+% \begin{macrocode}
+%<*book|report>
+\newcommand*{\scr@dsc@style@chapter@options}{}
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{pagestyle}] Seitenstil für die Anfangsseite der
+% Gliederungsebene.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleOption{chapter}{pagestyle}{%
+ \@namedef{\scr@dsc@current pagestyle}{#1}%
+ \FamilyKeyStateProcessed
+}%
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{afterindent}]
+% \changes{v3.26}{2018/09/18}{neue Option \texttt{afterindent}}^^A
+% Fuzzy-Logik. Ein boolcher Wert gibt an, ob die erste Zeile nach der
+% Überschrift eingezogen werden soll. Als dritter Wert ist \texttt{bysign}
+% möglich. Dann hängt die Entscheidung für den Einzug vom Vorzeichen von
+% \texttt{beforeskip} ab. Ein negativer Wert bedeutet dann, dass der
+% Absatzeinzug nach der Überschrift unterdrückt werden soll.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleFuzzyOption{chapter}
+ {afterindent}{scr@}{@afterindent}
+ {bysign}
+% \end{macrocode}
+% \begin{description}\item[\texttt{beforeskip}]
+% Gibt den vertikalen Abstand vor der Übeschrift an. Im Fall von
+% \texttt{afterindent=bysign} wird der Absolutwert verwendet.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleLengthOption{chapter}
+ {beforeskip}{scr@}{@beforeskip}
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{innerskip}] Der Absolutwert gibt den vertikalen Abstand
+% innerhalb der Überschrift zwischen Präfix-Zeile und Text an.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleLengthOption{chapter}
+ {innerskip}{scr@}{@innerskip}
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{afterskip}] Der Absolutwert gibt den vertikalen Abstand nach
+% der Überschrift an.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleLengthOption{chapter}
+ {afterskip}{scr@}{@afterskip}
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{font}] Schrifteinstellungen für das Element.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleFontOption{chapter}{font}{}{}
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{prefixfont}] Schrifteinstellungen für die Präfixzeile des
+% Elements.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleFontOption{chapter}{prefixfont}{}{prefix}
+% \end{macrocode}
+% \end{macro}^^A \scr@dsc@style@chapter@options
+% \begin{macro}{\scr@dsc@def@style@chapter@command}
+% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
+% Diese Anweisung left fest, wie ein Gliederungsbefehl für den Stil
+% \texttt{chapter} zu definieren ist. Das einzige Argument ist dabei der
+% \meta{Name} der Gliederungsebene, normalerweise \texttt{chapter}.
+% Das ist etwas komplizierter als bei \cs{scr@dsc@def@style@section@command},
+% da hier eine ganze Reihe von miteinander verschachtelten Anweisungen zu
+% definieren sind.
+% \begin{macrocode}
+\newcommand*{\scr@dsc@def@style@chapter@command}[1]{%
+ \@namedef{#1}{\scr@startchapter{#1}}%
+ \@namedef{@#1}{\scr@@startchapter{#1}}%
+ \@namedef{@s#1}{\scr@@startschapter{#1}}%
+ \@namedef{@make#1head}{\scr@makechapterhead{#1}}%
+ \@namedef{@makes#1head}{\scr@makeschapterhead{#1}}%
+ \@namedef{@@make#1head}{\scr@@makechapterhead{#1}}%
+ \@namedef{@@makes#1head}{\scr@@makeschapterhead{#1}}%
+ \@namedef{set#1preamble}{\set@preamble{#1}}%
+}
+%</book|report>
+% \end{macrocode}
+% \end{macro}^^A \scr@dsc@def@style@chapter@command
+%
+% \begin{macro}{\scr@dsc@style@part@options}
+% \changes{v3.17}{2015/03/23}{neue Anweisung (intern)}^^A
+% Dann für die Optionen des Stils \texttt{part}:
+% \begin{macrocode}
+\newcommand*{\scr@dsc@style@part@options}{}
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{pagestyle}] Seitenstil für die Anfangsseite der
+% Gliederungsebene.
+% \end{description}
+% \begin{macrocode}
+%<*report|book>
+\DeclareSectionCommandStyleOption{part}{pagestyle}{%
+ \@namedef{\scr@dsc@current pagestyle}{#1}%
+ \FamilyKeyStateProcessed
+}%
+%</report|book>
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{afterindent}]
+% \changes{v3.26}{2018/09/18}{neue Option \texttt{afterindent}}^^A
+% Fuzzy-Logik. Ein boolcher Wert gibt an, ob die erste Zeile nach der
+% Überschrift eingezogen werden soll. Als dritter Wert ist \texttt{bysign}
+% möglich. Dann hängt die Entscheidung für den Einzug vom Vorzeichen von
+% \texttt{beforeskip} ab. Ein negativer Wert bedeutet dann, dass der
+% Absatzeinzug nach der Überschrift unterdrückt werden soll.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleFuzzyOption{part}
+ {afterindent}{scr@}{@afterindent}
+ {bysign}
+% \end{macrocode}
+% \begin{description}\item[\texttt{beforeskip}]
+% Gibt den vertikalen Abstand vor der Übeschrift an. Im Fall von
+% \texttt{afterindent=bysign} wird der Absolutwert verwendet.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleLengthOption{part}
+ {beforeskip}{scr@}{@beforeskip}
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{innerskip}] Der Absolutwert gibt den vertikalen Abstand
+% innerhalb der Überschrift zwischen Präfix-Zeile und Text an.
+% \end{description}
+% \begin{macrocode}
+%<*book|report>
+\DeclareSectionCommandStyleLengthOption{part}
+ {innerskip}{scr@}{@innerskip}
+%</book|report>
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{afterskip}] Der Absolutwert gibt den vertikalen Abstand nach
+% der Überschrift an.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleLengthOption{part}
+ {afterskip}{scr@}{@afterskip}
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{font}] Schrifteinstellungen für das Element.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleFontOption{part}{font}{}{}
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{font}] Schrifteinstellungen für die Präfixzeile des Elements.
+% \end{description}
+% \begin{macrocode}
+\DeclareSectionCommandStyleFontOption{part}{prefixfont}{}{prefix}
+% \end{macrocode}
+% \end{macro}^^A \scr@dsc@style@part@options
+% \begin{macro}{\scr@dsc@def@style@part@command}
+% \changes{v3.18}{2015/05/23}{neue Anweisung (intern)}
+% Diese Anweisung legt fest, wie ein Gliederungsbefehl für den Stil
+% \texttt{part} zu definieren ist. Das einzige Argument ist dabei der
+% \meta{Name} der Gliederungsebene, normalerweise \texttt{part}.
+% Das ist ganz ähnlich wie bei \cs{scr@dsc@def@style@chapter@command}.
+% \begin{macrocode}
+\newcommand*{\scr@dsc@def@style@part@command}[1]{%
+ \@namedef{#1}{\scr@startpart{#1}}%
+ \@namedef{@#1}{\scr@@startpart{#1}}%
+ \@namedef{@s#1}{\scr@@startspart{#1}}%
+%<book|report> \@namedef{@end#1}{\scr@@endpart{#1}}%
+%<book|report> \@namedef{set#1preamble}{\set@preamble{#1}}%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@dsc@def@style@part@command
+%
+% \begin{macro}{\scr@dsc@style@section@neededoptionstest}
+% \changes{v3.17}{2015/03/24}{Neu (intern)}^^A
+% \changes{v3.24}{2017/04/25}{Voreinstellungen für \texttt{indent} und
+% \texttt{font}}^^A
+% \changes{v3.26}{2018/09/18}{\texttt{runin} und \texttt{afterindent}
+% beachten}^^A
+% Dieses Anweisung überprüft, ob alle notwendigen Eigenschaften für die
+% Definition der spezifischen Gliederungsebene im section-Stil bekannt
+% sind. Sollte das nicht der Fall sein, meldet sie einen Fehler und sorgt sie
+% mit \cs{aftergroup}\cs{@gobbletwo} dafür, dass die Definition unterbleibt.
+% \begin{macrocode}
+\newcommand*{\scr@dsc@style@section@neededoptionstest}{%
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @sectionindent}{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {section indent}{indent}{0pt}%
+ {\@namedef{scr@\scr@dsc@current @sectionindent}{0pt}}%
+ }{}%
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @beforeskip}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}%
+ {before section skip}{beforeskip}%
+ }{}%
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @afterskip}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}%
+ {after section skip}{afterskip}%
+ }{}%
+ \IfExistskomafont{\scr@dsc@current}{}{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {font}{font}{\normalsize}%
+ {\newkomafont{\scr@dsc@current}{\normalsize}}%
+ }%
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @runin}{%
+ \l@addto@macro\local@endgroup{%
+ \ClassInfo{\KOMAClassName}
+ {using compatibility default `runin=bysign'\MessageBreak
+ for `\expandafter\string\csname \scr@dsc@current\endcsname}%
+ \expandafter\gdef\csname scr@\scr@dsc@current @runin\endcsname
+ ##1##2##3{##3}%
+ }%
+ }{}%
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @afterindent}{%
+ \l@addto@macro\local@endgroup{%
+ \ClassInfo{\KOMAClassName}
+ {using compatibility default `afterindent=bysign'\MessageBreak
+ for `\expandafter\string\csname \scr@dsc@current\endcsname}%
+ \expandafter\gdef\csname scr@\scr@dsc@current @afterindent\endcsname
+ ##1##2##3{##3}%
+ }%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@dsc@style@section@neededoptionstest
+%
+% \begin{macro}{\scr@dsc@style@chapter@neededoptionstest}
+% \changes{v3.17}{2015/03/24}{Neu (intern)}^^A
+% \changes{v3.24}{2017/04/25}{Voreinstellungen für alle außer auf Ebene
+% \texttt{chapter}}^^A
+% Dieses Anweisung überprüft, ob alle notwendigen Eigenschaften für die
+% Definition der spezifischen Gliederungsebene im chapter-Stil bekannt
+% sind. Sollte das nicht der Fall sein, meldet sie einen Fehler und sorgt sie
+% mit \cs{aftergroup}\cs{@gobbletwo} dafür, dass die Definition unterbleibt.
+% \begin{macrocode}
+%<*book|report>
+\newcommand*{\scr@dsc@style@chapter@neededoptionstest}{%
+ \scr@ifundefinedorrelax{\scr@dsc@current pagestyle}{%
+ \ifstr{\scr@dsc@current}{chapter}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}%
+ {initial page style}{pagestyle}%
+ }{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {initial page style}{pagestyle}%
+ {\chapterpagestyle}%
+ {\@namedef{\scr@dsc@current pagestyle}{\chapterpagestyle}}%
+ }%
+ }{}%
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @innerskip}{%
+ \ifstr{\scr@dsc@current}{chapter}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}%
+ {inner chapter skip}{innerskip}%
+ }{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {inner chapter skip}{innerskip}%
+ {\scr@chapter@innerskip}%
+ {\@namedef{scr@\scr@dsc@current @innerskip}{\scr@chapter@innerskip}}%
+ }%
+ }{}%
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @beforeskip}{%
+ \ifstr{\scr@dsc@current}{chapter}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}%
+ {before chapter skip}{beforeskip}%
+ }{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {before chapter skip}{beforeskip}%
+ {\scr@chapter@beforeskip}%
+ {\@namedef{scr@\scr@dsc@current @beforeskip}{\scr@chapter@beforeskip}}%
+ }%
+ }{}%
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @afterskip}{%
+ \ifstr{\scr@dsc@current}{chapter}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}%
+ {after chaper skip}{afterskip}%
+ }{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {after chaper skip}{afterskip}%
+ {\scr@chapter@afterskip}%
+ {\@namedef{scr@\scr@dsc@current @afterskip}{\scr@chapter@afterskip}}%
+ }%
+ }{}%
+ \IfExistskomafont{\scr@dsc@current}{}{%
+ \ifstr{\scr@dsc@current}{chapter}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}{font}{font}%
+ }{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {font}{font}%
+ {\usekomafont{chapter}}%
+ {\newkomafont{\scr@dsc@current}{\usekomafont{chapter}}}%
+ }%
+ }%
+ \IfExistskomafont{\scr@dsc@current prefix}{}{%
+ \ifstr{\scr@dsc@current}{chapter}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}%
+ {prefix line font}{prefixfont}%
+ }{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {prefix line font}{prefixfont}%
+ {\usekomafont{chapterprefix}}%
+ {\newkomafont{\scr@dsc@current prefix}{\usekomafont{chapterprefix}}}%
+ }%
+ }{}%
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @afterindent}{%
+ \l@addto@macro\local@endgroup{%
+ \ClassInfo{\KOMAClassName}
+ {using compatibility default `afterindent=bysign'\MessageBreak
+ for `\expandafter\string\csname \scr@dsc@current\endcsname}%
+ \expandafter\gdef\csname scr@\scr@dsc@current @afterindent\endcsname
+ ##1##2##3{##3}%
+ }%
+ }{}%
+}
+%</book|report>
+% \end{macrocode}
+% \end{macro}^^A \scr@dsc@style@chapter@neededoptionstest
+%
+% \begin{macro}{\scr@dsc@style@part@neededoptionstest}
+% \changes{v3.17}{2015/03/24}{Neu (intern)}
+% \changes{v3.24}{2017/04/25}{Voreinstellungen für alle außer auf Ebene
+% \texttt{part}}^^A
+% Dieses Anweisung überprüft, ob alle notwendigen Eigenschaften für die
+% Definition der spezifischen Gliederungsebene im part-Stil bekannt
+% sind. Sollte das nicht der Fall sein, meldet sie einen Fehler und sorgt sie
+% mit \cs{aftergroup}\cs{@gobbletwo} dafür, dass die Definition unterbleibt.
+% \begin{macrocode}
+\newcommand*{\scr@dsc@style@part@neededoptionstest}{%
+%<*book|report>
+ \scr@ifundefinedorrelax{\scr@dsc@current pagestyle}{%
+ \ifstr{\scr@dsc@current}{part}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}%
+ {initial page style}{pagestyle}%
+ }{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {initial page style}{pagestyle}%
+ {\partpagestyle}%
+ {\@namedef{\scr@dsc@current pagestyle}{\partpagestyle}}%
+ }%
+ }{}%
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @innerskip}{%
+ \ifstr{\scr@dsc@current}{part}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}%
+ {inner part skip}{innerskip}%
+ }{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {inner part skip}{innerskip}%
+ {\scr@part@innerskip}%
+ {\@namedef{scr@\scr@dsc@current @innerskip}{\scr@part@innerskip}}%
+ }%
+ }{}%
+%</book|report>
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @beforeskip}{%
+ \ifstr{\scr@dsc@current}{part}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}%
+ {before part skip}{beforeskip}%
+ }{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {before part skip}{beforeskip}%
+ {\scr@part@beforeskip}%
+ {\@namedef{scr@\scr@dsc@current @beforeskip}{\scr@part@beforeskip}}%
+ }%
+ }{}%
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @afterskip}{%
+ \ifstr{\scr@dsc@current}{part}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}%
+ {after part skip}{afterskip}%
+ }{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {after part skip}{afterskip}%
+ {\scr@part@afterskip}%
+ {\@namedef{scr@\scr@dsc@current @afterskip}{\scr@part@afterskip}}%
+ }%
+ }{}%
+ \IfExistskomafont{\scr@dsc@current}{}{%
+ \ifstr{\scr@dsc@current}{part}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}{font}{font}%
+ }{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}{font}{font}%
+ {\usekomafont{part}}%
+ {\newkomafont{\scr@dsc@current}{\usekomafont{part}}}%
+ }%
+ }{}%
+ \IfExistskomafont{\scr@dsc@current prefix}{}{%
+ \ifstr{\scr@dsc@current}{part}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}%
+ {number font}{prefixfont}%
+ }{%
+ \scr@declaresectioncommandwarning{\scr@dsc@current}%
+ {number font}{prefixfont}%
+ {\usekomafont{partprefix}}%
+ {\newkomafont{\scr@dsc@current prefix}{\usekomafont{partprefix}}}%
+ }%
+ }{}%
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @afterindent}{%
+ \l@addto@macro\local@endgroup{%
+ \ClassInfo{\KOMAClassName}{%
+ using compatibility default
+%<article> `afterindent=false'\MessageBreak
+%<book|report> `afterindent=true'\MessageBreak
+ for `\expandafter\string\csname \scr@dsc@current\endcsname}%
+ \expandafter\gdef\csname scr@\scr@dsc@current @afterindent\endcsname
+ ##1##2##3%
+%<article> {##2}%
+%<book|report> {##1}%
+ }%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@dsc@style@part@neededoptionstest
+%
+% \begin{macro}{\ifscr@dsc@parametersonly}
+% \changes{v3.17}{2015/03/24}{neu}^^A
+% \changes{v3.20}{2015/11/18}{es gibt keine Dummy-Optionen mehr}^^A
+% Dieser Schalter wird verwendet, um die Einstellungen entsprechend dem
+% aktuell gültigen Stil zu ändern, die zugehörige Anweisung selbst aber nicht
+% neu zu definieren. Er wird von einem leeren \texttt{style}-Wert lokal
+% gesetzt.
+% \begin{macrocode}
+\newif\ifscr@dsc@parametersonly
+% \end{macrocode}
+% \end{macro}^^A \ifscr@dsc@parametersonly
+%
+% \begin{macrocode}
+\newcommand*{\DeclareSectionCommand}[2][]{%
+ \edef\scr@dsc@current{#2}%
+% \end{macrocode}
+% Im ersten Durchlauf werden nur die Stil-Optionen ausgewertet:
+% \begin{description}
+% \item[\texttt{style}] Stil der Gliederungsebene
+% \end{description}
+% \begin{macrocode}
+ \scr@dsc@parametersonlyfalse
+ \DefineFamilyKey[.dsc]{KOMAarg}{style}{%
+ \IfArgIsEmpty{##1}{%
+ \scr@dsc@parametersonlytrue
+ \FamilyKeyStateProcessed
+ }{%
+ \scr@ifundefinedorrelax{scr@dsc@def@style@##1@command}{%
+ \FamilyKeyStateUnknownValue
+ }{%
+ \@namedef{scr@\scr@dsc@current @style}{##1}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{tocstyle}]
+% \changes{v3.20}{2015/11/12}{Option \texttt{tocstyle} frühzeitig
+% auswerten}^^A
+% Verzeichnis-Eintrags-Stil, damit auch für diesen anschließend die Optionen
+% definiert bzw. aktiviert werden können.
+% \end{description}
+% \begin{macrocode}
+ \DefineFamilyKey[.dsc]{KOMAarg}{tocstyle}{%
+ \IfArgIsEmpty{##1}{%
+ \expandafter\let\csname scr@dte@\scr@dsc@current @style\endcsname
+ \relax
+ \FamilyKeyStateProcessed
+ }{%
+%<trace> \typeout{TRACE: option tocstyle=##1}%
+%<trace> \typeout{TRACE: command=\scr@dsc@current}%
+ \scr@ifundefinedorrelax{scr@dte@def@l@##1}{%
+%<trace> \typeout{TRACE: style not defined}%
+ \FamilyKeyStateUnknownValue
+ }{%
+%<trace> \typeout{TRACE: style defined}%
+ \@namedef{scr@dte@\scr@dsc@current @style}{##1}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{@else@}]
+% \changes{v3.20}{2015/11/18}{Option \texttt{tocstyle} frühzeitig
+% auswerten}^^A
+% Damit keine anderen Optionen ausgewertet werden müssen aber auch nicht als
+% unbekannte Optionen einen Fehler erzeugen, wird diese Spezialoption
+% definiert, die einfach nur \cs{FamilyKeyStateProcessed} setzt.
+% \end{description}
+% \begin{macrocode}
+ \DefineFamilyKey[.dsc]{KOMAarg}{@else@}{%
+%<*trace>
+ \typeout{TRACE: ignoring option `@else@=\detokenize{##1}'}%
+ \typeout{TRACE:
+ \string\scr@key@atlist=`\detokenize\expandafter{\scr@key@atlist}'}%
+ \typeout{TRACE:
+ \string\scr@key@name=`\detokenize\expandafter{\scr@key@name}'}%
+ \typeout{TRACE:
+ \string\scr@key@value=`\detokenize\expandafter{\scr@key@value}'}%
+%</trace>
+ \FamilyKeyStateProcessed
+ }%
+ \FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
+% \end{macrocode}
+% \changes{v3.20}{2015/11/18}{Rüchnahme der Optionen nach dem ersten
+% Durchgang}^^A
+% Nach dem ersten Druchgang müssen alle Optionen wieder zurückgenommen
+% werden.
+% \begin{macrocode}
+ \RelaxFamilyKey[.dsc]{KOMAarg}{@else@}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{tocstyle}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{style}%
+ \begingroup
+ \scr@ifundefinedorrelax{scr@\scr@dsc@current @style}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}
+ {section command style}{style}%
+ }{}%
+ \endgroup
+ \@firstofone{%
+% \end{macrocode}
+% \changes{v3.20}{2015/11/12}{keine Dummy-Optionen für den echten Lauf}^^A
+% Nachdem nun der Stil für den Gliederungsbefehl bekannt ist, können wir
+% dessen Optionen aktivieren:
+% \begin{macrocode}
+%<trace> \typeout{TRACE: style=\@nameuse{scr@\scr@dsc@current @style}}%
+ \@nameuse{scr@dsc@style@\@nameuse{scr@\scr@dsc@current @style}@options}%
+% \end{macrocode}
+% Außerdem muss der Verzeichniseintrags-Stils initialisiert werden:
+% \begin{macrocode}
+%<trace> \typeout{TRACE: tocstyle=%
+%<trace> \@nameuse{scr@dte@\scr@dsc@current @style}}%
+ \scr@ifundefinedorrelax{scr@dte@\scr@dsc@current @style}{%
+ \scr@ifundefinedorrelax{l@\scr@dsc@current}{%
+ \@namedef{scr@dte@\scr@dsc@current @style}{default}%
+ }{}%
+ }{}%
+% \end{macrocode}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \changes{v3.21}{2016/06/12}{erlaube auch \texttt{tocentry} an Stelle von
+% \texttt{toc} als Präfix}^^A
+% An dieser Stelle müssen die Optionen des Verzeichniseintrags auf Optionen
+% der Gliederungsebene abgebildet werden. Dazu erhalten sie in der
+% Gliederungebene den Präfix \texttt{toc}. Das bedeutet gleichzeitig, dass es
+% keine Verzeichniseintragsoption Namens \texttt{style} geben kann und dass
+% Gliederungsoptionen nicht mit \texttt{toc} beginnen dürfen.
+% \begin{macrocode}
+ \let\scr@dsc@tocstyle@options\@empty
+ \let\scr@dsc@extra@relax@opts\@empty
+ \scr@ifundefinedorrelax{scr@dte@\scr@dsc@current @style}{}{%
+ \begingroup
+ \def\scr@dte@current{#2}%
+ \edef\reserved@a{%
+ \noexpand\@ExecuteTOCEntryStyleInitCode{%
+ \@nameuse{scr@dte@\scr@dsc@current @style}%
+ }{\scr@dsc@current}%
+ }\reserved@a
+ \def\do@endgroup{\endgroup}%
+ \def\do##1{%
+ \l@addto@macro\do@endgroup{%
+ \l@addto@macro\scr@dsc@extra@relax@opts{%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{toc##1}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{tocentry##1}%
+ }%
+ }%
+ \kernel@ifnextchar[%]
+ {\@dodefault{##1}}%
+ {\@donodefault{##1}}%
+ }%
+ \def\@donodefault##1{%
+ \l@addto@macro\do@endgroup{%
+ \DefineFamilyKey[.dsc]{KOMAarg}{toc##1}{%
+ \l@addto@macro{\scr@dsc@tocstyle@options}{##1={####1},}%
+ \FamilyKeyStateProcessed
+ }%
+ \DefineFamilyKey[.dsc]{KOMAarg}{tocentry##1}{%
+ \l@addto@macro{\scr@dsc@tocstyle@options}{##1={####1},}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+ \def\@dodefault##1[##2]{%
+ \l@addto@macro\do@endgroup{%
+ \DefineFamilyKey[.dsc]{KOMAarg}{toc##1}[##2]{%
+ \l@addto@macro{\scr@dsc@tocstyle@options}{##1={####1},}%
+ \FamilyKeyStateProcessed
+ }%
+ \DefineFamilyKey[.dsc]{KOMAarg}{tocentry##1}[##2]{%
+ \l@addto@macro{\scr@dsc@tocstyle@options}{##1={####1},}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+ \scr@dte@doopts
+ \do@endgroup
+ }%
+% \end{macrocode}
+% Die Optionen für die Stile von Verzeichniseintrag und Gliederungsebene
+% werden nicht erneut benötigt, müssten aber natürlich erneut verarbeitet
+% werden.
+% \begin{macrocode}
+ \DefineFamilyKey[.dsc]{KOMAarg}{style}{\FamilyKeyStateProcessed}%
+ \DefineFamilyKey[.dsc]{KOMAarg}{tocstyle}{\FamilyKeyStateProcessed}%
+% \end{macrocode}
+% Dazu kommen einige Optionen, die es schlicht immer gibt:
+% \begin{description}\item[\texttt{expandtopt}] Schalter, um die Längen zur
+% Definitionszeit statt zur Anwendungszeit komplett zu expandieren. Das
+% bedingt dann aber auch, dass die Längen nicht mehr abhängig von der
+% aktuellen Schriftgröße sind.\end{description}
+% \begin{macrocode}
+ \FamilyBoolKey[.dsc]{KOMAarg}{expandtopt}{scr@dsc@expandtopt}%
+ \scr@dsc@expandtoptfalse
+% \end{macrocode}
+% \begin{description}\item[\texttt{increaselevel}] Automatische Erhöhung des
+% Wertes von Option \texttt{level} mit Säumniswert 1. Diese Option wird nur
+% definiert, wenn \cs{DeclareSectionCommands} verwendet wurde, was an
+% \cs{scr@local@levelincrease} erkannt wird.\end{description}
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{scr@local@levelincrease}{%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{increaselevel}%
+ }{%
+ \FamilyCounterMacroKey[.dsc]{KOMAarg}{increaselevel}[1]%
+ {\scr@local@levelincrease}%
+ }%
+% \end{macrocode}
+% \begin{description}\item[\texttt{level}] nummerische
+% Gliederungsebene\end{description}
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{scr@local@leveloffset}{%
+ \edef\reserved@a{%
+ \noexpand\FamilyCounterMacroKey[.dsc]{KOMAarg}{level}{%
+ \expandafter\noexpand\csname \scr@dsc@current numdepth\endcsname}%
+ }\reserved@a
+ }{%
+ \edef\reserved@a{%
+ \noexpand\DefineFamilyKey[.dsc]{KOMAarg}{level}{%
+ \noexpand\FamilySetCounterMacro{KOMAarg}{level}{%
+ \expandafter\noexpand\csname \scr@dsc@current numdepth\endcsname
+ }%
+ \unexpanded{%
+ {\numexpr ##1+\scr@local@leveloffset\relax}%
+ \edef\scr@local@leveloffset{%
+ \the\numexpr\scr@local@leveloffset+\scr@local@levelincrease\relax
+ }%
+ }%
+ }%
+ }\reserved@a
+ }%
+% \end{macrocode}
+% \changes{v3.19}{2015/09/09}{neue Eigenschaft \texttt{counterwithout}}
+% \begin{description}\item[\texttt{counterwithout}] Der Zähler dieser Ebene
+% soll nicht länger abhängen vom angegebenen Zähler.
+% \end{description}
+% \begin{macrocode}
+ \FamilyStringKey[.dsc]{KOMAarg}{counterwithout}{\scr@local@counterwithout}%
+ \let\scr@local@counterwithout\relax
+% \end{macrocode}
+% \begin{description}\item[\texttt{counterwithin}] Der Zähler dieser Ebene
+% soll abhängen vom angegebenen Zähler.
+% \end{description}
+% \begin{macrocode}
+ \FamilyStringKey[.dsc]{KOMAarg}{counterwithin}{\scr@local@counterwithin}%
+ \let\scr@local@counterwithin\relax
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{toclevel}] Ebene im Inhaltsverzeichnis (Voreinstellung ist
+% derselbe Wert wie für level); diese Option gibt es nur, wenn der
+% Verzeichnisstil sie unterstützt (was jeder Verzeichnisstil
+% sollte); wenn allerdings ein Offset dafür definiert ist, dann wird die
+% Option nicht einfach an den Stil weitergereicht, muss also noch einmal
+% umdefiniert werden.
+% \end{description}
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{scr@local@tocleveloffset}{}{%
+ \scr@ifundefinedorrelax{KV@KOMAarg.dsc@toclevel}{%
+ }{%
+ \DefineFamilyKey[.dsc]{KOMAarg}{toclevel}{%
+ \edef\reserved@a{%
+ \noexpand\l@addto@macro{\noexpand\scr@dsc@tocstyle@options}{%
+ level=\the\numexpr ##1+\scr@local@tocleveloffset\relax,%
+ }%
+ }\reserved@a
+ \edef\scr@local@tocleveloffset{%
+ \the\numexpr\scr@local@tocleveloffset+\scr@local@levelincrease\relax
+ }%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+% \end{macrocode}
+% \changes{v3.20}{2015/11/12}{Optionen werden nur temporär definiert}^^A
+% Optionen ausführen und anschließend wieder freigeben.
+% \begin{macrocode}
+ \FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
+ \scr@dsc@extra@relax@opts
+ \let\scr@dsc@extra@relax@opts\relax
+ \RelaxSectionCommandOptions
+ \RelaxFamilyKey[.dsc]{KOMAarg}{style}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{tocstyle}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{expandtopt}%
+ \scr@ifundefinedorrelax{scr@local@levelincrease}{}{%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{increaselevel}%
+ }%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{level}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{counterwithin}%
+% \end{macrocode}
+% Testen, ob alle benötigten Optionen für die (Um-)Definierung des
+% Gliederungsbefehls gesetzt sind:
+% \begin{macrocode}
+ \begingroup
+ \def\local@endgroup{\endgroup}%
+ \scr@ifundefinedorrelax{\scr@dsc@current numdepth}{%
+ \scr@declaresectioncommanderror{\scr@dsc@current}{section level}{level}%
+ }{}%
+ \@nameuse{scr@dsc@style@%
+ \@nameuse{scr@\scr@dsc@current @style}%
+ @neededoptionstest}%
+ \local@endgroup
+% \end{macrocode}
+% Wenn alle Informationen für die (Um-)Definierung des Gliederungsbefehls
+% zusammen sind \dots
+% \begin{macrocode}
+ \@firstofone{%
+% \end{macrocode}
+% Zunächst sicherstellen, dass der Zähler existiert und ggf. dessen
+% Ausgabe anpassen:
+% \changes{v3.20}{2015/10/15}{fehlendes \cs{expandafter} ergänzt}^^A
+% \begin{macrocode}
+ \@ifundefined{c@#2}{\newcounter{#2}}{}%
+ \ifx\scr@local@counterwithout\relax
+ \else\ifx\scr@local@counterwithout\@empty
+ \else
+ \@removefromreset{#2}{\scr@local@counterwithout}%
+ \fi
+ \@namedef{the#2}{\arabic{#2}}%
+ \fi
+ \ifx\scr@local@counterwithin\relax
+ \else\ifx\scr@local@counterwithin\@empty
+ \@namedef{the#2}{\arabic{#2}}%
+ \else
+ \@removefromreset{#2}{\scr@local@counterwithin}%
+ \@addtoreset{#2}{\scr@local@counterwithin}%
+ \expandafter\def\csname the#2\expandafter\endcsname\expandafter{%
+ \csname the\scr@local@counterwithin\endcsname.\arabic{#2}}%
+ \fi
+ \fi
+ \@ifundefined{#2format}{%
+ \@namedef{#2format}{\csname the#2\endcsname\autodot\enskip}%
+ }{}%
+% \end{macrocode}
+% Dann den eigentlichen Gliederungsbefehl definieren:
+% \begin{macrocode}
+ \ifscr@dsc@parametersonly
+ \ClassInfo{\KOMAClassName}{%
+ not defining `\expandafter\string\csname #2\endcsname' due
+ to\MessageBreak
+ empty section style option%
+ }%
+ \else
+ \scr@ifundefinedorrelax{%
+ scr@dsc@def@style@\@nameuse{scr@#2@style}@command%
+ }{%
+ \ClassWarning{\KOMAClassName}{%
+ not defining `\expandafter\string\csname #2\endcsname'
+ due\MessageBreak
+ to not yet defined section style\MessageBreak
+ `\@nameuse{scr@#2@style}'%
+ }%
+ }{%
+ \@nameuse{scr@dsc@def@style@\@nameuse{scr@#2@style}@command}{#2}%
+ }%
+ \fi
+% \end{macrocode}
+% Zu jedem Gliederungsbefehl gehört auch ein Befehl für den Kolumnentitel, der
+% bei \KOMAScript{} außerdem eine Formatierung des Zählers benötigt. Falls
+% \textsf{scrlayer} geladen ist, wird das über dessen Befehl
+% |\DeclareSectionNumberDepth| erledigt, sonst direkt:
+% \changes{v3.15a}{2015/01/21}{fix: \cs{endskip} statt \cs{enskip}}^^A
+% \begin{macrocode}
+ \@ifundefined{DeclareSectionNumberDepth}{%
+ \@ifundefined{#2markformat}{%
+ \@namedef{#2markformat}{\csname the#2\endcsname\autodot\enskip}%
+ }{}%
+ \@ifundefined{#2mark}{%
+ \expandafter\let\csname #2mark\endcsname\@gobble
+ }{}%
+ }{%
+ \DeclareSectionNumberDepth{#2}{\csname #2numdepth\endcsname}%
+ }%
+% \end{macrocode}
+% Und es gehören Befehle dazu, um einen Eintrag ins Inhaltsverzeichnis zu
+% schreiben und den Eintrag auch darzustellen:
+% \begin{macrocode}
+ \expandafter\providecommand\expandafter*%
+ \csname add#2tocentry\endcsname[2]{%
+ \addtocentrydefault{#2}{##1}{##2}%
+ }%
+ \scr@ifundefinedorrelax{scr@dte@#2@style}{%
+ }{%
+ \DeclareTOCStyleEntry[\scr@dsc@tocstyle@options]{%
+ \@nameuse{scr@dte@#2@style}%
+ }{#2}%
+ }%
+ \scr@ifundefinedorrelax{l@#2}{%
+ \DeclareTOCStyleEntry[\scr@dsc@tocstyle@options]{default}{#2}%
+ }{}%
+% \end{macrocode}
+% \changes{v3.20}{2015/0/07}{\textsf{hyperref} bei den Ebenen der
+% Verzeichniseinträge berücksichtigen}^^A
+% \changes{v3.26}{2018/06/27}{Einstellungen von \textsl{hyperref}
+% überschreiben}^^A
+% \changes{v3.26}{2018/06/27}{Notfallbehandlung für Lücken in den
+% Bookmark-Ebenen}^^A
+% \begin{macrocode}
+ \if@atdocument
+ \let\reserved@a\@firstofone
+ \else
+ \@ifpackageloaded{hyperref}{%
+ \let\reserved@a\@firstofone
+ }{%
+ \def\reserved@a##1{%
+ \AfterAtEndOfPackage{hyperref}{\AtBeginDocument{##1}}%
+ }%
+ }%
+ \fi
+ \reserved@a{%
+ \expandafter\let\csname toclevel@#2\expandafter\endcsname
+ \csname #2tocdepth\endcsname
+ \scr@ifundefinedorrelax{bookmarksetup}{%
+ \scr@ifundefinedorrelax{scr@min@toclevel}{%
+ \expandafter\let\expandafter\scr@min@toclevel
+ \csname toclevel@#2\endcsname
+ }{%
+ \expandafter\ifnum \csname toclevel@#2\endcsname
+ < \numexpr \scr@min@toclevel-1\relax
+ \ClassWarning{\KOMAClassName}{%
+ Trying emergency fix for bookmark level gap,\MessageBreak
+ because toclevel of `#2'
+ (\csname toclevel@#2\endcsname)\MessageBreak
+ is more than 1 lower than currently lowest\MessageBreak
+ known level (\scr@min@toclevel).\MessageBreak
+ Note: This fix can fail and you should load\MessageBreak
+ package `bookmark' to avoid usage of this\MessageBreak
+ fix%
+ }%
+ \expandafter\edef\csname toclevel@#2\endcsname{%
+ \the\numexpr \scr@min@toclevel-1\relax
+ }%
+ \fi
+ \expandafter\ifnum \csname toclevel@#2\endcsname
+ < \scr@min@toclevel\relax
+ \expandafter\let\expandafter\scr@min@toclevel
+ \csname toclevel@#2\endcsname
+ \fi
+ }%
+ \scr@ifundefinedorrelax{scr@max@toclevel}{%
+ \expandafter\let\expandafter\scr@max@toclevel
+ \csname toclevel@#2\endcsname
+ }{%
+ \expandafter\ifnum \csname toclevel@#2\endcsname
+ > \numexpr \scr@max@toclevel+1\relax
+ \ClassWarning{\KOMAClassName}{%
+ Trying emergency fix for bookmark level gap,\MessageBreak
+ because toclevel of `#2'
+ (\csname toclevel@#2\endcsname)\MessageBreak
+ is more than 1 greater than currently highest\MessageBreak
+ known level (\scr@max@toclevel).\MessageBreak
+ Note: This fix can fail and you should load\MessageBreak
+ package `bookmark' to avoid usage of this\MessageBreak
+ fix%
+ }%
+ \expandafter\edef\csname toclevel@#2\endcsname{%
+ \the\numexpr \scr@max@toclevel+1\relax
+ }%
+ \fi
+ \expandafter\ifnum \csname toclevel@#2\endcsname
+ > \scr@max@toclevel\relax
+ \expandafter\let\expandafter\scr@max@toclevel
+ \csname toclevel@#2\endcsname
+ \fi
+ }%
+ }{}%
+ }%
+ }%
+ }%
+ \let\scr@dsc@current\relax
+}
+% \end{macrocode}
+% \begin{macro}{\scr@declaresectioncommanderror}
+% \changes{v3.15}{2014/11/21}{neue (interne) Anweisung}^^A
+% Gibt einen Fehler aus, falls \cs{DeclareSectionCommand} zu wenige Optionen
+% übergeben wurde. Das erste Argument ist der Name des zu deklarierenden
+% Befehls, das zweite ist eine textuelle Beschreibung der fehlenden Option und
+% das dritte ist der Name der fehlenden Option. Als Seiteneffekt sorgt der
+% Befehl dafür, dass die Deklaration nicht stattfindet.
+% \begin{macrocode}
+\newcommand*{\scr@declaresectioncommanderror}[3]{%
+ \ClassError{\KOMAClassName}{%
+ #2 of \expandafter\string\csname #1\endcsname\space unknown%
+ }{%
+ Please use option `#3' to declare the #2.\MessageBreak
+ If you'll continue, declaration will be ignored%
+ }%
+ \let\local@endgroup\endgroup
+ \aftergroup\@gobbletwo
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@declaresectioncommanderror
+% \begin{macro}{\scr@declaresectioncommandwarning}
+% \changes{v3.24}{2017/04/25}{neue (interne) Anweisung}^^A
+% In einigen Fällen genügt es hingegen eine Warnung oder Info für fehlende
+% Optionen auszugeben und einen Defaultwert zu verwenden. Das erste Argument
+% ist auch hier der Name des zu deklarierenden Befehls, das zweite eine
+% textuelle Beschreibung der fehlenden Option und das dritte der Name der
+% fehlenden Option. Das vierte ist der Defaultwert, der ersatzweise verwendet
+% wird. Der Befehl hat wie \cs{scr@declaresectioncommanderror} einen
+% Seiteneffekt. In diesem Fall wird \cs{local@endgroup} um das fünfte Argument
+% erweitert.
+% \begin{macrocode}
+\newcommand*{\scr@declaresectioncommandwarning}[5]{%
+ \ClassInfo{\KOMAClassName}{%
+ #2 of \expandafter\string\csname #1\endcsname\space unknown.\MessageBreak
+ You should use option `#3' if you\MessageBreak
+ do not want to use the default value\MessageBreak
+ `\detokenize{#4}'%
+ }%
+ \l@addto@macro\local@endgroup{#5}%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@declaresectioncommandwarning
+% \end{macro}^^A \DeclareSectionCommand
+%
+% \begin{macro}{\DeclareNewSectionCommand}
+% \changes{v3.15}{2014/11/21}{neue Anweisung}^^A
+% \changes{v3.25}{2018/03/10}{zusätzliche Tests und Fehlermeldungen bei
+% \cs{the\dots}, \cs{\dots mark}, \cs{\dots format},
+% \cs{\dots markformat}}^^A
+% Basierend auf |\DeclareSectionCommand| wird eine Gliederungsanweisung
+% definiert, die zuvor noch nicht existierte. Wichtig zu bemerken ist, dass
+% die ganzen Hilfsanweisungen bereits existieren dürfen.
+% \begin{macrocode}
+\newcommand*{\DeclareNewSectionCommand}[2][]{%
+ \@ifundefined{#2}{%
+ \@tempswatrue
+ \let\reserved@b\@empty
+ \@for \reserved@a:=the#2,#2mark,#2format,#2markformat\do{%
+ \expandafter\scr@ifundefinedorrelax\expandafter{\reserved@a}{}{%
+ \@tempswafalse
+ \edef\reserved@b{\expandafter\string\csname \reserved@a\endcsname}%
+ }
+ }
+ \if@tempswa
+ \DeclareSectionCommand[{#1}]{#2}%
+ \else
+ \ClassError{\KOMAClassName}{%
+ command `\reserved@b` already defined%
+ }{%
+ You've tried to define the section command `\expandafter\string\csname
+ #2\endcsname` newly.\MessageBreak
+ Such a section command needs an additional new command
+ `\reserved@b`,\MessageBreak
+ but this already exists. So you cannot define
+ `\expandafter\string\csname #2\endcsname` newly.\MessageBreak
+ Maybe you should use one of \string\DeclareSectionCommand,
+ \string\RedeclareSectionCommand,\MessageBreak
+ or \string\ProvideSectionCommand.\MessageBreak
+ If you'll continue, the command will be ignored.%
+ }%
+ \fi
+ }{%
+ \ClassError{\KOMAClassName}{%
+ command `\expandafter\string\csname #2\endcsname` already defined%
+ }{%
+ You've tried to define the section command `\expandafter\string\csname
+ #2\endcsname` newly,\MessageBreak
+ but a command or something else with this name already
+ exists.\MessageBreak
+ Maybe you should use one of \string\DeclareSectionCommand,
+ \string\RedeclareSectionCommand,\MessageBreak
+ or \string\ProvideSectionCommand.\MessageBreak
+ If you'll continue, the command will be ignored.%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \DeclareNewSectionCommand
+%
+% \begin{macro}{\RedeclareSectionCommand}
+% \changes{v3.15}{2014/11/21}{neue Anweisung}^^A
+% Basierend auf |\DeclareSectionCommand| wird eine Gliederungsanweisung
+% umdefiniert, die zuvor bereits existierte. Wichtig zu bemerken ist, dass
+% die ganzen Hilfsanweisungen nicht zu exisieren brauchen.
+% \begin{macrocode}
+\newcommand*{\RedeclareSectionCommand}[2][]{%
+ \@ifundefined{#2}{%
+ \ClassError{\KOMAClassName}{%
+ command `\expandafter\string\csname #2\endcsname` not defined%
+ }{%
+ You've tried to re-define the section command `\expandafter\string\csname
+ #2\endcsname`,\MessageBreak
+ but a command with this name does not exists.\MessageBreak
+ Maybe you should use one of \string\DeclareSectionCommand,
+ \string\DeclareNewSectionCommand,\MessageBreak
+ or \string\ProvideSectionCommand.\MessageBreak
+ If you'll continue, the command will be irgnored.%
+ }%
+ }{%
+ \DeclareSectionCommand[{#1}]{#2}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \RedeclareSectionCommand
+%
+% \begin{macro}{\ProvideSectionCommand}
+% \changes{v3.15}{2014/11/21}{neue Anweisung}^^A
+% Basierend auf |\DeclareSectionCommand| wird eine Gliederungsanweisung
+% definiert, wenn sie zuvor noch nicht existierte. Wichtig zu bemerken ist,
+% dass die ganzen Hilfsanweisungen bereits existieren dürfen.
+% \begin{macrocode}
+\newcommand*{\ProvideSectionCommand}[2][]{%
+ \@ifundefined{#2}{%
+ \DeclareSectionCommand[{#1}]{#2}%
+ }{%
+ \ClassInfo{\KOMAClassName}{%
+ \string\ProvideSectionCommand{#1} ignored%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \ProvideSectionCommand
+%
+% \begin{macro}{\DeclareSectionCommands}
+% \changes{v3.15}{2014/12/03}{neue Anweisung}^^A
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} eingefügt}^^A
+% Basierend auf \cs{DeclareSectionCommand} können gleich mehrere
+% Gliederungsanweisungen definiert werden. Dabei sorgt Option
+% \texttt{increaselevel} dafür, dass die Werte von \texttt{level} und
+% \texttt{toclevel} automatisch von Befehl zu Befehl um den angegebenen Wert
+% (Default ist 1) erhöht werden.
+% \begin{macrocode}
+\newcommand*{\DeclareSectionCommands}[2][]{%
+ \edef\reserved@a{#2}%
+ \def\scr@local@levelincrease{\z@}%
+ \def\scr@local@leveloffset{\z@}%
+ \def\scr@local@tocleveloffset{\z@}%
+ \@for\reserved@a:=\reserved@a\do{%
+ \scr@trim@spaces\reserved@a
+ \edef\reserved@a{%
+ \unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
+ }%
+ \reserved@a
+ }%
+ \let\scr@local@levelincrease\relax
+ \let\scr@local@leveloffset\relax
+ \let\scr@local@tocleveloffset\relax
+}
+% \end{macrocode}
+% \end{macro}^^A \DeclareSectionCommands
+%
+% \begin{macro}{\DeclareNewSectionCommands}
+% \changes{v3.15}{2014/12/03}{neue Anweisung}^^A
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} eingefügt}^^A
+% Im Unterschied zu \cs{DeclareNewSectionCommand} führt diese Anweisung die
+% Änderung auch dann aus, wenn die Anweisung bereits deklariert war. Eine
+% Fehlermeldung wird aber natürlich trotzdem ausgegeben. Dieser Unterschied
+% ist jedoch notwendig, weil sonst Option \texttt{increaselevel} für
+% nachfolgende Befehle nicht mehr korrekt arbeiten würde.
+% \begin{macrocode}
+\newcommand*{\DeclareNewSectionCommands}[2][]{%
+ \edef\reserved@a{#2}%
+ \def\scr@local@levelincrease{\z@}%
+ \def\scr@local@leveloffset{\z@}%
+ \def\scr@local@tocleveloffset{\z@}%
+ \@for\reserved@a:=\reserved@a\do{%
+ \scr@trim@spaces\reserved@a
+ \@ifundefined{\reserved@a}{}{%
+ \ClassError{\KOMAClassName}{%
+ command `\expandafter\string\csname\reserved@a\endcsname` already
+ defined%
+ }{%
+ You've tried to define the section command
+ `\expandafter\string\csname\reserved@a\endcsname` newly,\MessageBreak
+ but a command, token, box or length with this name already
+ exists.\MessageBreak
+ Maybe you should use one of \string\DeclareSectionCommand,
+ \string\RedeclareSectionCommand,\MessageBreak
+ or \string\ProvideSectionCommand.\MessageBreak
+ Nevertheless, if you'll continue, the command will be defined.%
+ }%
+ }%
+ \edef\reserved@a{%
+ \unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
+ }%
+ \reserved@a
+ }%
+ \let\scr@local@levelincrease\relax
+ \let\scr@local@leveloffset\relax
+ \let\scr@local@tocleveloffset\relax
+}
+% \end{macrocode}
+% \end{macro}^^A \DeclareNewSectionCommands
+%
+% \begin{macro}{\RedeclareSectionCommands}
+% \changes{v3.15}{2014/12/03}{neue Anweisung}^^A
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} eingefügt}^^A
+% Im Unterschied zu \cs{RedeclareNewSectionCommands} führt diese Anweisung die
+% Änderung auch dann aus, wenn die Anweisung noch nicht deklariert war. Eine
+% Fehlermeldung wird aber natürlich trotzdem ausgegeben. Dieser Unterschied
+% ist jedoch notwendig, weil sonst Option \texttt{increaselevel} für
+% nachfolgende Befehle nicht mehr korrekt arbeiten würde.
+% \begin{macrocode}
+\newcommand*{\RedeclareSectionCommands}[2][]{%
+ \edef\reserved@a{#2}%
+ \def\scr@local@levelincrease{\z@}%
+ \def\scr@local@leveloffset{\z@}%
+ \def\scr@local@tocleveloffset{\z@}%
+ \@for\reserved@a:=\reserved@a\do{%
+ \scr@trim@spaces\reserved@a
+ \@ifundefined{\reserved@a}{%
+ \ClassError{\KOMAClassName}{%
+ command `\expandafter\string\csname\reserved@a\endcsname` not defined%
+ }{%
+ You've tried to re-define the section command
+ `\expandafter\string\csname\reserved@a\endcsname`,\MessageBreak
+ but a command with this name does not exists.\MessageBreak
+ Maybe you should use one of \string\DeclareSectionCommand,
+ \string\DeclareNewSectionCommand,\MessageBreak
+ or \string\ProvideSectionCommand.\MessageBreak
+ Nevertheless, if you'll continue, the command will be defined.%
+ }%
+ }{}%
+ \edef\reserved@a{%
+ \unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
+ }%
+ \reserved@a
+ }%
+ \let\scr@local@levelincrease\relax
+ \let\scr@local@leveloffset\relax
+ \let\scr@local@tocleveloffset\relax
+}
+% \end{macrocode}
+% \end{macro}^^A \RedeclareSectionCommands
+%
+% \begin{macro}{\ProvideSectionCommands}
+% \changes{v3.15}{2014/12/03}{neue Anweisung}^^A
+% \changes{v3.17}{2015/03/23}{Umbau, um stilabhängige Optionen zu
+% ermöglichen}^^A
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} eingefügt}^^A
+% Hier wird es nun wirklich schwierig, weil wir irgendwie dafür sorgen müssen,
+% dass Option \texttt{increaselevel} funktioniert, auch wenn gar nichts
+% definiert werden darf. Das macht die Geschichte ein wenig auswändig.
+% \begin{macrocode}
+\newcommand*{\ProvideSectionCommands}[2][]{%
+ \edef\reserved@a{#2}%
+ \def\scr@local@levelincrease{\z@}%
+ \def\scr@local@leveloffset{\z@}%
+ \def\scr@local@tocleveloffset{\z@}%
+ \@for\reserved@a:=\reserved@a\do{%
+ \scr@trim@spaces\reserved@a
+ \@ifundefined{\reserved@a}{%
+ \edef\reserved@a{%
+ \unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
+ }%
+ \reserved@a
+ }{%
+% \end{macrocode}
+% Wenn die Anweisung bereits definiert ist, dann müssen wir trotzdem die
+% Optionen auswerten, wobei allerdings nur die Option \texttt{level} und
+% \texttt{increaselevel} eine Wirkung haben dürfen. Der Rest wird per
+% \texttt{@else}-Optionen erledigt.
+% \begin{macrocode}
+ \DefineFamilyKey[.dsc]{KOMAarg}{@else@}{\FamilyKeyStateProcessed}%
+ \FamilyCounterMacroKey[.dsc]{KOMAarg}{increaselevel}[1]%
+ {\scr@local@levelincrease}%
+ \DefineFamilyKey[.dsc]{KOMAarg}{level}{%
+ \FamilySetCounterMacro{KOMAarg}{level}{\reserved@b}{##1}%
+ \edef\scr@local@leveloffset{%
+ \the\numexpr\scr@local@leveloffset+\scr@local@levelincrease\relax
+ }%
+ }%
+ \DefineFamilyKey[.dsc]{KOMAarg}{toclevel}{%
+ \FamilySetCounterMacro{KOMAarg}{toclevel}{\reserved@b}{##1}%
+ \edef\scr@local@tocleveloffset{%
+ \the\numexpr\scr@local@tocleveloffset+\scr@local@levelincrease\relax
+ }%
+ }%
+ \FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{toclevel}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{level}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{increaselevel}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{@else@}%
+ }%
+ }%
+ \let\scr@local@levelincrease\relax
+ \let\scr@local@leveloffset\relax
+ \let\scr@local@tocleveloffset\relax
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \ProvideSectionCommands
+%
+% \begin{option}{bookmarkpackage}
+% \selectlanguage{english}^^A
+% \changes{v3.26}{2018/06/27}{new option}^^A
+% Package \textsf{hyperref} has problems with bookmark level gaps. So if
+% either the users omits a heading level or defines a heading with a level
+% that distinguish more than one from the previous or following level, there
+% would be a problem. One recommended solution for this would be to use
+% package \textsf{bookmark}. So if we load this package, we can use the same
+% value for bookmark levels and TOC levels even within
+% \textsf{scrartcl}. Nevertheless we allow the user to decide not to use
+% \textsf{bookmark}, but then it is not my fault, if something strange
+% happens.
+% \begin{macrocode}
+%<*option>
+\KOMA@ifkey{bookmarkpackage}{@scr@autoloadbookmarkpackage}
+\@scr@autoloadbookmarkpackagetrue
+\KOMA@kav@add{.\KOMAClassFileName}{bookmarkpackage}{true}
+\AfterAtEndOfPackage{hyperref}{%
+ \AtBeginDocument{%
+ \@ifpackageloaded{bookmark}{}{%
+ \if@scr@autoloadbookmarkpackage
+ \ClassInfo{\KOMAClassName}{%
+ loading recommended package `bookmark'.\MessageBreak
+ Using `bookmark' together with `hyperref' is
+ recommended,\MessageBreak
+ because of handling of possible bookmark level gaps.\MessageBreak
+ You can avoid loading `bookmark' with KOMA-Script
+ option\MessageBreak
+ `bookmarkpackage=false' before \string\begin{document}
+ and\MessageBreak
+ you can avoid this message with
+ `\string\usepackage{bookmark}'\MessageBreak
+ before \string\begin{document}%
+ }%
+ \RequirePackage{bookmark}%
+% \end{macrocode}
+% \changes{v3.26b}{2019/01/17}{workaround for \cs{@beginmainauxhook} added}^^A
+% Sometimes \textsf{auxhook} is not able to recognize that it cannot use a
+% patch of \cs{document} to execute \cs{@beginmainauxhook} if it is loaded via
+% \cs{AtBeginDocument}. In this case we do it here.
+% \begin{macrocode}
+ \ifx\@beginmainauxhook\relax
+ \else
+ \if@filesw
+ \ClassWarning{\KOMAClassName}{%
+ seems someone has broken package auxhook.\MessageBreak
+ Usually this happens, if auxhook is loaded or used\MessageBreak
+ implicitly or explicitly by patching
+ `\string\document'%
+ \scr@ifundefinedorrelax{AtEndPreamble}{}{%
+ \MessageBreak
+ or via etoolbox command \string\AtEndPreamble
+ }.\MessageBreak
+ Trying an emergency workaround%
+ }%
+ \@beginmainauxhook
+ \fi
+ \fi
+ \fi
+ }%
+ }%
+}
+%</option>
+%</class>
+% \end{macrocode}
+% \selectlanguage{ngerman}^^A
+% \end{option}^^A bookmarkpackage
+%
+%
+% \subsection{Definitionen für Präambeln}
+%
+% 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)}^^A
+% 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}
+%<*class>
+%<*book|report>
+%<*body>
+\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)}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% 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)}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\set@@@preamble}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% \begin{macro}{\set@@@@preamble}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}^^A
+% \changes{v3.12}{2012/10/16}{b mit derselben Funktion wie u erlaubt}^^A
+% \changes{v3.12a}{2014/02/14}{b korrigiert}^^A
+% 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}
+ \kernel@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}
+ \kernel@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@vpos{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)}^^A
+% 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}^^A \set@preamble@hpos
+% \begin{macro}{\set@preamble@vpos}
+% \changes{v2.8q}{2001/09/25}{neu (intern)}^^A
+% 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
+ }%
+}
+%</body>
+%</book|report>
+%</class>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{\KOMAScript-eigene Befehle für Verzeichniseinträge}
+% Wie schon bei den Gliederungsbefehlen genügt \KOMAScript{} nicht, was der
+% \LaTeX-Kern für Verzeichniseinträge zu bieten hat.
+%
+% \begin{macro}{\bprot@dottedtocline}
+% \changes{v2.96a}{2006/11/30}{neu (intern)}^^A
+% 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}
+%<*class>
+%<*body>
+\newcommand*{\bprot@dottedtocline}[5]{%
+ \expandafter\ifnum\scr@v@is@gt{2.96}\relax
+ \ifnum #1>\c@tocdepth \else
+ \ifnum \lastpenalty<\numexpr 20010-#1\relax
+ \addpenalty{\@lowpenalty}%
+ \fi
+ \@dottedtocline{#1}{#2}{#3}{#4}{#5}%
+ \penalty \numexpr 20009-#1\relax
+ \fi
+ \else
+ \@dottedtocline{#1}{#2}{#3}{#4}{#5}%
+ \fi
+}
+%</body>
+%</class>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Grobeinteilung von Büchern}
+%
+% Bei Büchern gibt es teilweise eine Einteilung in Vorderteil, Hauptteil und
+% Endteil, die nicht wirklich eine Gliederung darstellt, sondern auf
+% Gliederung, Seitennummerierung etc. Einfluss nimmt.
+%
+% \begin{macro}{\if@mainmatter}
+% \begin{macro}{\@mainmattertrue}
+% \begin{macro}{\@mainmatterfalse}
+% \changes{v2.3a}{1995/07/08}{\cs{if@mainmatter} Anforderung verschoben}^^A
+% Ü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}
+%<*class>
+%<*book>
+%<*body>
+\newif\if@mainmatter\@mainmattertrue
+% \end{macrocode}
+% \end{macro}^^A \@mainmatterfalse
+% \end{macro}^^A \@mainmattertrue
+% \end{macro}^^A \if@mainmatter
+%
+% \begin{macro}{\frontmatter}
+% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten}^^A
+% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten}^^A
+% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt
+% \cs{cleardoublepage}}^^A
+% 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}^^A \frontmatter
+% \begin{macro}{\mainmatter}
+% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten}^^A
+% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten}^^A
+% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt
+% \cs{cleardoublepage}}^^A
+% 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}^^A \mainmatter
+% \begin{macro}{\backmatter}
+% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt
+% \cs{cleardoublepage}}^^A
+% 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
+}
+%</body>
+%</book>
+%</class>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Anhang}
+%
+% Teile gibt es tatsächlich bei allen drei Hauptklassen.
+%
+% \begin{macro}{\appendix}
+% Wird der Anhang aktiviert, so werden Kapitel bzw. Abschnitte zukünftig mit
+% Buchstaben nummeriert.
+% \changes{v2.2d}{1995/05/28}{\textsf{scrartcl} benötigt keinen Zähler für
+% \cs{chapter}}^^A
+% \changes{v2.3c}{1995/08/06}{alternative Nummerierung bei Verwendung eines
+% Anhangs}^^A
+% \changes{v2.8}{2001/06/15}{\cs{appendixmore} wird beachtet}^^A
+% \changes{v2.8e}{2001/07/10}{\cs{@altsecnumformattrue} wird nicht länger
+% ausgeführt}^^A
+% \changes{v2.8o}{2001/09/19}{\cs{par} eingefügt}^^A
+% \changes{v2.95}{2006/07/04}{\cs{newcommand*} durch \cs{gdef} ersetzt}^^A
+% \changes{v2.95}{2006/07/04}{Ausführung von \cs{appendixmore}^^A
+% vereinfacht}^^A
+% \changes{v3.20}{2016/12/05}{neue eindeutige Warnung}
+% \begin{macro}{\appendixmore}
+% \cs{appendixmore} kann als \emph{hook} verwendet werden. Derzeit wird dieser
+% allerdings noch recht stiefmütterlich behandelt und lediglich von Option
+% \texttt{appendixprefix} definiert.
+% \begin{macrocode}
+%<*class>
+%<*body>
+\newcommand*\appendix{%
+ \ifstr{\@currenvir}{appendix}{%
+ \ClassWarning{\KOMAClassName}{%
+ You are using
+ `\string\begin{appendix}...\string\end{appendix}'.\MessageBreak
+ You should note, that `\string\appendix' is a mostly
+ globally\MessageBreak
+ working command not an enviroment with only local\MessageBreak
+ effects. Therefore `\string\end{appendix}' will neither\MessageBreak
+ switch back to normal section numbering nor finish\MessageBreak
+ every other effect of `\string\begin{appendix}'.\MessageBreak
+ Nevertheless, some effects may end with\MessageBreak
+ `\string\end{appendix}' and the document may become\MessageBreak
+ inconsistent.\MessageBreak
+ Because of this, you should remove `\string\end{appendix}'\MessageBreak
+ and replace `\string\begin{appendix}' by command\MessageBreak
+ `\string\appendix'%
+ }%
+ }{}%
+ \par%
+%<*article>
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \gdef\thesection{\@Alph\c@section}%
+%</article>
+%<*report|book>
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@Alph\c@chapter}%
+%</report|book>
+ \csname appendixmore\endcsname
+}
+%</body>
+%</class>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Teile}
+%
+% \changes{v2.8e}{2001/07/10}{\cs{@thepart} entfernt}
+%
+% Teile sind bei den unterschiedlichen Klassen unterschiedlich definiert.
+%
+% \begin{macro}{\size@part}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten,
+% wenn es keine Auswirkung auf den Zeilen abstand hat}^^A
+% \begin{macro}{\size@partnumber}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten,
+% wenn es keine Auswirkung auf den Zeilen abstand hat}^^A
+% Hier werden diese Befehle nur vordefiniert. Ihre tatsächliche Einstellung
+% erfolgt über die (Vor-)Auswahl von Option \texttt{headings}.
+% \begin{macrocode}
+%<*class>
+%<*prepare>
+\newcommand*{\size@part}{}
+\newcommand*{\size@partnumber}{}
+%</prepare>
+% \end{macrocode}
+% \end{macro}^^A \size@partnumber
+% \end{macro}^^A \size@part
+%
+%
+% \begin{macro}{\partheadstartvskip}
+% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}^^A
+% \changes{v3.15}{2014/11/24}{\textsf{scrartcl} definiert und verwendet
+% \cs{scr@part@beforeskip}}^^A
+% \begin{macro}{\partheadmidvskip}
+% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}^^A
+% \begin{macro}{\partheadendvskip}
+% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}^^A
+% \changes{v3.15}{2014/11/24}{\textsf{scrartcl} definiert und verwendet
+% \cs{scr@part@afterskip}}^^A
+% \begin{macro}{\parheademptypage}
+% \changes{v3.02}{2009/01/01}{neue Konfigurationsmöglichkeit}^^A
+% 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.
+% Da die Größe nicht über Option \texttt{headings} beeinflusst werden kann,
+% müssen diese Hilfsmakros nicht bereits vor den Optionen definiert werden.
+%
+% Zur Erhöhung der Kompatibilität mit \cs{DeclareSectionCommand} werden
+% zunächst einige Hilfsanweisung definiert und verwendet.
+% \begin{macro}{\scr@part@sectionbeforeskip}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}^^A
+% \changes{v3.17}{2015/03/25}{umbenannt in \cs{scr@part@beforeskip}}^^A
+% \begin{macro}{\scr@part@sectionafterskip}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}^^A
+% \changes{v3.17}{2015/03/25}{umbenannt in \cs{scr@part@afterskip}}^^A
+% \begin{macro}{\scr@part@sectionindent}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung (unbenutzt)}^^A
+% \changes{v3.17}{2015/03/24}{entfernt}^^A
+% \end{macro}^^A \scr@part@sectionindent
+% \end{macro}^^A \scr@part@sectionafterskip
+% \end{macro}^^A \scr@part@sectionbeforeskip
+% \begin{macro}{\scr@part@beforeskip}
+% \changes{v3.17}{2015/03/25}{neu (intern) aus Umdefinierung von
+% \cs{scr@part@ectionbeforeskip}}^^A
+% \begin{macro}{\scr@part@innerskip}
+% \changes{v3.17}{2015/03/24}{neu (intern)}^^A
+% \begin{macro}{\scr@part@afterskip}
+% \changes{v3.17}{2015/03/25}{neu (intern) aus Umdefinierung von
+% \cs{scr@part@ectionbeforeskip}}^^A
+% \begin{macro}{\scr@part@style}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}^^A
+% Es wird der leere Stil verwendet, mit dem Neudefinitionen von \cs{part}
+% über \cs{DeclareSectionCommand} verhindert werden.
+% \begin{macrocode}
+%<*prepare>
+\newcommand*{\scr@part@beforeskip}{%
+%<article> 4ex
+% \end{macrocode}
+% Hinweis: Das |+\baselineskip| wird benötigt, um Kompatibilitätsprobleme mit
+% der Umdefinierung von |\chapterheadstartvskip| zu vermeiden.
+% \begin{macrocode}
+%<report|book> \z@ \@plus 1fil + \baselineskip
+}
+%<book|report>\newcommand*{\scr@part@innerskip}{20\p@}
+\newcommand*{\scr@part@afterskip}{%
+%<article> 3ex
+%<report|book> \z@ \@plus 1fil
+}
+\newcommand*{\scr@part@style}{part}
+% \end{macrocode}
+% \end{macro}^^A \scr@part@style
+% \end{macro}^^A \scr@part@afterskip
+% \end{macro}^^A \scr@part@innerskip
+% \end{macro}^^A \scr@part@beforeskip
+% \begin{macrocode}
+\newcommand*{\partheadstartvskip}{%
+%<article> \addvspace{\@tempskipa}%
+%<report|book> \null\vskip-\baselineskip\vskip\@tempskipa
+}
+\newcommand*{\partheadmidvskip}{%
+ \par\nobreak
+%<book|report> \vskip\@tempskipa
+}
+\newcommand*{\partheadendvskip}{%
+%<article> \vskip\@tempskipa
+%<report|book> \vskip\@tempskipa\newpage
+}
+%<*report|book>
+\newcommand*{\partheademptypage}{%
+ \if@twoside\if@openright
+ \null%
+ \thispagestyle{empty}%
+ \newpage
+ \fi\fi
+}
+%</report|book>
+%</prepare>
+% \end{macrocode}
+% \end{macro}^^A \partheademptypage
+% \end{macro}^^A \partheadendvskip
+% \end{macro}^^A \partheadmidvskip
+% \end{macro}^^A \partheadstartvskip
+%
+%
+% \begin{macro}{\scr@startpart}
+% \changes{v3.18}{2015/05/23}{neue Anweisung (intern)}^^A
+% Diese Anweisung ist von der ursprünglichen Definition von \cs{part}
+% abgeleitet und erbt deren ChangeLog-Einträge.
+% \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt \texttt{plain}}^^A
+% \changes{v2.8p}{2001/09/27}{Präambel über der Überschrift hinzugefügt}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}^^A
+% \changes{v3.19}{2015/08/25}{Seitenstil nur ändern wenn definiert und nicht
+% leer}^^A
+% \changes{v3.26}{2018/10/14}{Option \texttt{afterindent} wird beachtet}^^A
+% Die Anweisung definiert den Gliederungsüberschriften-Stil
+% \texttt{part}. Dazu bekommt sie als einziges explizites Argument den
+% \meta{Namen} der Gliederungsüberschrift. Weitere Argumente wie ein
+% optionaler Stern oder ein optionales Argument für Inhaltsverzeichnis und
+% Kolumnentitel sowie ein obligatorisches Argument für den Text der
+% Überschrift sind implizit, das heißt, sie werden erst im weiteren Verlauf
+% von Unter-Macros eingelesen und verarbeitet.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\scr@startpart}[1]{%
+%<article> \par
+%<*book|report>
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \scr@ifundefinedorrelax{#1pagestyle}{}{%
+ \ifstr{#1pagestyle}{}{}{%
+ \thispagestyle{\@nameuse{#1pagestyle}}%
+ }%
+ }%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+%</book|report>
+ \@tempskipa=\glueexpr\@nameuse{scr@#1@beforeskip}\relax
+ \@ifundefined{scr@#1@afterindent}{\@afterindentfalse}{%
+ \csname scr@#1@afterindent\endcsname
+ {\@afterindenttrue}{\@afterindentfalse}{%
+ \@afterindenttrue
+ \ifdim\@tempskipa<\z@
+ \@tempskipa=-\@tempskipa
+ \@afterindentfalse
+ \fi
+ }%
+ }%
+ \partheadstartvskip
+%<*book|report>
+ \vbox to\z@{\vss\use@preamble{#1@o}\strut\par}%
+ \vskip-\baselineskip\nobreak
+%</book|report>
+ \expandafter\SecDef\csname @#1\expandafter\endcsname\csname @s#1\endcsname
+}
+% \end{macrocode}
+%
+% \begin{macro}{\scr@@startpart}
+% \changes{v3.18}{2015/05/23}{neue Anweisung (intern)}^^A
+% Diese Anweisung ist von der ursprünglichen Definition von \cs{@part}
+% abgeleitet und erbt deren ChangeLog-Einträge.
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}^^A
+% \changes{v2.95}{2002/08/13}{\cs{centering} und \cs{@parskipfalse}%
+% \cs{@parskip@indent} vertauscht}^^A
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
+% ersetzt}^^A
+% Die Anweisung macht die eigentliche Arbeit für den Fall einer
+% Gliederungsanweisung ohne Stern. Das erste obligatorische Argument ist der
+% \meta{Name} der Gliederungsanweisung. Das zweite eigentlich optionale
+% Argument, das hier jedoch zwingend ist, ist der \meta{Spezial-Text} für
+% Kolumnentitel und Inhaltsverzeichnis. Das dritte obligatorische Argument
+% ist der \meta{Text} für die Überschrift.
+% \begin{macrocode}
+\newcommand{\scr@@startpart}{}
+\long\def\scr@@startpart#1[#2]#3{%
+% \end{macrocode}
+% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
+% Argument der Gliederungsbefehle}^^A
+% Für das erweitere optionale Argument muss hier eine key-value-Auswertung
+% erfolgen, falls das erweitere optionale Argument aktiviert ist:
+% \begin{macrocode}
+ \ifnum \scr@osectarg=\z@
+ \@scr@tempswafalse
+ \else
+ \scr@istest#2=\@nil
+ \fi
+ \if@scr@tempswa
+ \setkeys{KOMAarg.section}{tocentry={#3},head={#3},reference={#3},#2}%
+ \else
+ \ifcase \scr@osectarg\relax
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},reference={#2}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#3},head={#2},reference={#3}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#3},reference={#2}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},reference={#2}}%
+ \fi
+ \fi
+% \end{macrocode}
+% Als nächstes muss für nummerierte Überschriften dieser Ebene sowohl der
+% Zähler erhöht also auch ein nummerierter Eintrag ins Inhaltsverzeichnis
+% erstellt werden.
+% \changes{v2.8e}{2001/07/10}{\cs{@maybeautodot} wird aufgerufen}^^A
+% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addparttocentry}}^^A
+% \changes{v3.18}{2015/05/20}{Verwendung von \cs{add\meta{Name}tocentry} in
+% \cs{typeout}}^^A
+% \begin{macrocode}
+ \ifnumbered{#1}{%
+ \refstepcounter{#1}%
+ \@maybeautodot\thepart%
+ \expandafter\@maybeautodot\csname the#1\endcsname
+ \typeout{#1 \csname the#1\endcsname.}%
+ \ifx\@currenttocentry\@empty\else
+ \scr@ifundefinedorrelax{add#1tocentry}{%
+ \addtocentrydefault{#1}%
+ }{%
+ \@nameuse{add#1tocentry}%
+ }{\csname the#1\endcsname}{\@currenttocentry}%
+ \fi
+ }{%
+% \end{macrocode}
+% \changes{v3.18}{2015/05/23}{Resetliste auch bei nicht nummerierten
+% Überschriften abarbeiten}^^A
+% Für alle nicht nummerieten Überschriften dieser Ebene trotzdem die
+% Resetliste des Zählers ausführen und ggf. einen Verzeichniseintrag
+% erstellen.
+% \begin{macrocode}
+ \expandafter\ifnum\scr@v@is@lt{3.18}\relax\else
+ \begingroup
+ \let\@elt\@stpelt
+ \csname cl@#1\endcsname
+ \endgroup
+ \fi
+ \typeout{#1 without number}%
+ \ifx\@currenttocentry\@empty\else
+% \end{macrocode}
+% An dieser Stelle muss ggf. der \textsf{hyperref}-Hook für nicht nummerierte
+% Inhaltsverzeichniseinträge ausgeführt werden.
+% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addparttocentry}}^^A
+% \changes{v3.18}{2015/05/23}{\cs{addparttocentry} verallgemeinert}^^A
+% \begin{macrocode}
+ \hy@insteadofrefstepcounter{#1}%
+ \scr@ifundefinedorrelax{add#1tocentry}{%
+ \addtocentrydefault{#1}%
+ }{%
+ \@nameuse{add#1tocentry}%
+ }{}{\@currenttocentry}%
+ \fi
+ }%
+% \end{macrocode}
+% Es folgt das eigentliche Setzen der Überschrift. Übrigens ist der ganze Code
+% oben bei \cs{scr@@startchapter} praktisch identisch. Lediglich das
+% Abarbeiten der Resetliste gibt es dort bereits seit Version~3.15. In
+% \cs{scr@@startchapter} wird an dieser Stelle dann \cs{@make\dots head}
+% ausgeführt. Das könnte man eigentlich irgendwann hier genauso machen.
+% \changes{v2.2c}{1995/05/25}{Part-Ausgabe auf CJK umgestellt}^^A
+% \changes{v2.4b}{1996/03/29}{\cs{size@partnumer} durch
+% \cs{size@partnumber} ersetzt}^^A
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor \cs{size@part} und
+% \cs{size@partnumber} aufgerufen}^^A
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} behebt einen
+% Bug im color Paket}^^A
+% \changes{v3.18}{2015/05/23}{\cs{size@\dots} durch \cs{usekomafont}
+% ersetzt}^^A
+% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}^^A
+% \changes{v3.25}{2017/09/07}{\cs{IfUseNumber} definiert}^^A
+% \changes{v3.25}{2017/09/07}{\cs{sectfont} durch \cs{usekomafont}
+% ersetzt}^^A
+% \changes{v3.25}{2017/09/07}{Umstellung auf
+% \cs{partlineswithprefixformat}}^^A
+% \changes{v3.25}{2018/02/12}{Verwendung des korrekten Font-Elements}^^A
+% \begin{macrocode}
+ \begingroup
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \def\IfUseNumber{\ifnumbered{#1}}%
+ \raggedpart
+ \normalfont\usekomafont{disposition}{\nobreak
+ \IfUseNumber{%
+ \partlineswithprefixformat{#1}{%
+ \usekomafont{#1prefix}{\nobreak\@nameuse{#1format}}%
+%<book|report> \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}%
+ \partheadmidvskip
+ }{%
+ \usekomafont{#1}{\nobreak\interlinepenalty \@M#3\strut\@@par}%
+ }%
+ }{%
+ \partlineswithprefixformat{#1}{}{%
+ \usekomafont{#1}{\nobreak\interlinepenalty \@M#3\strut\@@par}%
+ }
+ }%
+% \end{macrocode}
+% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird
+% stattdessen \cs{@mkboth}{}{} aufgerufen.}^^A
+% Und noch den Kolumnentitel setzen.
+% \begin{macrocode}
+ \expandafter\ifx\csname #1mark\endcsname\@gobble
+ \@mkboth{}{}%
+ \else
+ \csname #1mark\expandafter\endcsname\expandafter{\@currentheadentry}%
+ \fi
+ }%
+ \endgroup
+% \end{macrocode}
+% Ganz zum Schluss muss noch einmal ein Abstand eingefügt werden.
+% \begin{macrocode}
+%<*article>
+ \nobreak
+ \@tempskipa=\glueexpr\@nameuse{scr@#1@afterskip}\relax\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \partheadendvskip
+%</article>
+%<book|report> \@nameuse{@end#1}%
+% \end{macrocode}
+% \changes{v3.26}{2018/10/14}{Verwendung von \@cs{@afterheading} für
+% \textsf{scrbook} und \textsf{scrreprt}}^^A
+% Ab \KOMAScript{} 3.26 wird hier \cs{@afterheading} für alle Klassen
+% aufgerufen. Damit kann der Einzug nach der Überschrift eingestellt werden.
+% \begin{macrocode}
+ \@afterheading
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@@startpart
+%
+% \begin{macro}{\scr@@startspart}
+% \changes{v3.18}{2015/05/23}{neue Anweisung (intern)}^^A
+% Diese Anweisung ist von der ursprünglichen Definition von \cs{@spart}
+% abgeleitet und erbt deren ChangeLog-Einträge.
+% \changes{v2.4n}{1997/05/28}{in der Sternvariante \cs{chaptermark}^^A
+% bzw. \cs{sectionmark} eingefügt, um die Kolumnentitel zu
+% löschen}^^A
+% \changes{v2.6a}{2000/01/20}{zum Löschen der Kolumnentitel wird
+% nun \cs{@mkboth} verwendet}^^A
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}^^A
+% \changes{v2.95}{2002/08/13}{\cs{centering} und
+% \cs{@parskipfalse}\cs{@parskip@indent} vertauscht}^^A
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
+% ersetzt}^^A
+% Die Anweisung macht die eigentliche Arbeit für den Fall einer
+% Gliederungsanweisung mit Stern. Das erste obligatorische Argument ist der
+% \meta{Name} der Gliederungsanweisung. Das zweite obligatorische Argument
+% ist der \meta{Text} für die Überschrift.
+% \begin{macrocode}
+\newcommand{\scr@@startspart}[2]{%
+% \end{macrocode}
+% Für Leute, die unbedingt nach der Sternversion noch ein \cs{addcontentsline}
+% anfügen wollen, muss hier ebenfalls der \textsf{hyperref}-Hook ausgeführt
+% werden. Allerdings passiert das hier entsprechend dem Vorgehen von
+% \textsf{hyperref} selbst in einer Gruppe, in der zusätzlich \cs{@mkboth} zu
+% \cs{@gobbletwo} gemacht wird, auch wenn ich absolut nicht versehe, was das
+% soll.
+% \begin{macrocode}
+ \begingroup
+ \let\@mkboth\@gobbletwo
+ \hy@insteadofrefstepcounter{#1}%
+ \endgroup
+% \end{macrocode}
+% Erst dann erfolgt die tatsächliche Ausgabe der Überschrift.
+% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}^^A
+% \changes{v3.25}{2017/09/07}{\cs{IfUseNumber} definiert}^^A
+% \changes{v3.25}{2017/09/07}{\cs{sectfont} durch \cs{usekomafont}
+% ersetzt}^^A
+% \changes{v3.25}{2017/09/07}{Umstellung auf
+% \cs{partlineswithprefixformat}}^^A
+% \begin{macrocode}
+ \begingroup
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \let\IfUseNumber\@secondoftwo
+ \raggedpart
+ \normalfont\usekomafont{disposition}{%
+ \nobreak
+ \partlineswithprefixformat{#1}{}{%
+ \usekomafont{#1}{\nobreak\interlinepenalty \@M#2\strut\@@par}%
+ }%
+ \@mkboth{}{}%
+ }%
+ \endgroup
+%<*article>
+ \nobreak
+ \@tempskipa=\glueexpr\csname scr@#1@afterskip\endcsname\relax\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \partheadendvskip
+ \@afterheading
+%</article>
+%<book|report> \@nameuse{@end#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@@startspart
+%
+% \begin{macro}{\partlineswithprefixformat}
+% \changes{v3.25}{2017/09/07}{neu}
+% Diese Anweisung definiert das Format der eigentlichen Überschriften im Stil
+% \texttt{part}. Fonteinstellungen sind zu diesem Zeitpunkt bereits erfolgt
+% order Teil der Argumente. Die Argumente sind:
+% \begin{description}
+% \item[\meta{Befehlsname} --] der Name der Gliederungsebene, normalerweise
+% \texttt{chapter}.
+% \item[\meta{Gliederungsnummer} --] die bereits fertig formatierte
+% Gliederungsnummer einschließlich des nachfolgenden vertikalen Abstands
+% oder leer, falls keine Gliederungsnummer auszugeben ist.
+% \item[\meta{Text} --] der Text der Überschrift.
+% \end{description}
+% Der Anwender ist selbst verantwortlich, dass innerhalb der Überschrift kein
+% Seitenumbruch erfolgen kann. Nach der Überschrift wird jedoch zwangsweise
+% ein \cs{@@par} ausgeführt, so dass sichergestellt ist, dass mit einem
+% internen Absatz abgeschlossen wird.
+% \begin{macrocode}
+\newcommand{\partlineswithprefixformat}[3]{%
+ #2#3%
+}
+% \end{macrocode}
+% \end{macro}^^A \partlineswithprefixformat
+%
+% \begin{macro}{\scr@@endpart}
+% \changes{v3.18}{2015/05/23}{neue Anweisung (intern)}^^A
+% Diese Anweisung ist von der ursprünglichen Definition von \cs{@spart}
+% abgeleitet und erbt deren ChangeLog-Einträge.
+% \changes{v2.3g}{1996/01/14}{\cs{@endpart} wird für
+% \textsf{scrartcl} nicht mehr definiert}^^A
+% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten}^^A
+% \changes{v2.6c}{2000/06/10}{\cs{@endpart} fügt nur noch in
+% beidseitigen Dokumenten bei Verwendung von \texttt{openright} eine
+% Leerseite ein}^^A
+% \changes{v2.8p}{2001/09/27}{\cs{vbox} eingefügt}^^A
+% \changes{v2.8p}{2001/09/27}{\cs{use@preamble} ersetzt
+% \cs{@part@preamble}}^^A
+% \changes{v3.02}{2009/01/01}{Verwendung des neuen
+% \cs{partheademptypage}}^^A
+% Die Anweisung wird bei \textsf{scrbook} und \textsf{screprt} verwendet, um
+% die Überschrift abzuschließen. \textsf{scrartcl} hat keine solche Anweisung.
+% Da einzige Argument ist der \meta{Name} der Gliederungsanweisung.
+% \begin{macrocode}
+%<*book|report>
+\newcommand*{\scr@@endpart}[1]{%
+ \vbox to\z@{\use@preamble{#1@u}\vss}%
+ \@tempskipa=\glueexpr\csname scr@#1@afterskip\endcsname\relax\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \partheadendvskip
+ \partheademptypage
+ \if@tempswa
+ \twocolumn
+ \fi
+}
+%</book|report>
+% \end{macrocode}
+% \end{macro}^^A \scr@@endpart
+% \end{macro}^^A \scr@startpart
+%
+%
+% \begin{macro}{\hy@insteadofrefstepcounter}
+% \changes{v3.18}{2015/05/22}{neu (intern und \textsf{hyperref})}
+% Normalerweise führt \textsf{hyperref} via \cs{refstepcounter}
+% Initialisierungen für ein nachfolgendes \cs{addcontentsline} durch. Wenn
+% allerdings eine nicht nummerierte Überschrift ins Inhaltsverzeichnis
+% eingetragen wird, dann fehlt das vorherige \cs{refstepcounter}. Statt
+% \cs{@chapter}, \cs{@schapter}, \cs{@part}, \cs{@spart} etc. direkt zu
+% patchen, erscheint es mir sinnvoller einen Hook dafür zu definieren, der
+% dann von \textsf{hyperref} entsprechend definiert werden kann. Solange
+% \textsf{hyperref} das nicht macht, versuche ich mich selbst daran und kann
+% nur hoffen, dass es funktioniert. Dabei verwende ich im Gegensatz zu
+% \textsf{hyperref} für \cs{Hy@MakeCurrentHrefAuto} kein \cs{Hy@chapapp}, weil
+% ja \cs{autoref} für nicht nummerierte Überschriften ohnehin sinnlos
+% ist. Stattdessen verwende ich den Gliederungsbefehl.
+% \begin{macrocode}
+\newcommand*{\hy@insteadofrefstepcounter}[1]{}
+\let\hy@insteadofrefstepcounter\@gobble
+\BeforePackage{hyperref}{%
+ \let\scr@orig@chapter\@chapter
+ \let\scr@orig@schapter\@schapter
+ \let\scr@orig@addchap\@addchap
+}
+\AfterPackage!{hyperref}{%
+ \let\@chapter\scr@orig@chapter
+ \let\@schapter\scr@orig@schapter
+ \let\@addchap\scr@orig@addchap
+ \ifx\hy@insteadofrefstepcounter\@gobble
+ \renewcommand*{\hy@insteadofrefstepcounter}[1]{%
+ \Hy@MakeCurrentHrefAuto{#1*}%
+ \Hy@raisedlink{%
+ \hyper@anchorstart{\@currentHref}\hyper@anchorend
+ }%
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}^^A \hy@insteadofrefstepcounter
+%
+% \begin{macro}{\addparttocentry}
+% \changes{v3.08}{2010/11/01}{Neu}^^A
+% 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}^^A \addparttocentry
+%
+%
+% \begin{macro}{\part}
+% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
+% \cs{scr@startpart}}^^A
+% \begin{macro}{\@part}
+% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
+% \cs{scr@@startpart}}^^A
+% \begin{macro}{\@spart}
+% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
+% \cs{scr@@startspart}}^^A
+% \begin{macro}{\@endpart}
+% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
+% \cs{scr@@endpart}}^^A
+% \begin{macro}{\setpartpreamble}
+% \changes{v2.8f}{2001/07/12}{neu}^^A
+% \changes{v2.8p}{2001/09/27}{Verwendung von \cs{use@preamble}}^^A
+% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
+% \cs{scr@@endpart}}^^A
+% \begin{macro}{\part@u@preamble}
+% \changes{v2.8p}{2001/09/27}{neu (intern)}^^A
+% \changes{v2.8p}{2001/09/27}{Ersatz für \cs{part@preamble}}^^A
+% \changes{v3.12a}{2014/02/14}{flaschen (\cs{part@preamble@u}) Namen
+% korrigiert}^^A
+% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
+% \cs{scr@@endpart}}^^A
+% \begin{macro}{\part@o@preamble}
+% \changes{v2.8p}{2001/09/27}{neu (intern)}^^A
+% \changes{v3.12a}{2014/02/14}{flaschen Namen (\cs{part@preamble@o})
+% korrigiert}^^A
+% \changes{v3.18}{2015/05/23}{siehe \cs{scr@dsc@def@style@part@command} und
+% \cs{scr@@endpart}}^^A
+% Diese Anweisungen werden indirekt über \cs{DeclareSectionCommand} und
+% \cs{scr@dsc@def@style@part@command} bzw. \cs{setpartpreamble} definiert.
+% \end{macro}^^A \setpartpreamble
+% \end{macro}^^A \part@u@preamble
+% \end{macro}^^A \part@o@preamble
+% \end{macro}^^A \@endpart
+% \end{macro}^^A \@spart
+% \end{macro}^^A \@part
+% \end{macro}^^A \part
+%
+% \begin{macro}{\addpart}
+% \changes{v2.8c}{2001/06/29}{neu}^^A
+% \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt \texttt{plain}}^^A
+% \changes{v2.95a}{2006/07/10}{support of preamble added}^^A
+% \changes{v3.11b}{2012/07/29}{missing negativ \cs{vskip} added}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}^^A
+% \changes{v3.15a}{2015/01/22}{Anpassung an geänderte Abstandsbehandlung bei
+% \cs{part} und \cs{@spart}}^^A
+% \changes{v3.18}{2015/05/25}{Komplett neu definiert}^^A
+% \begin{macro}{\@addpart}
+% \changes{v2.8c}{2001/06/29}{neu (intern)}^^A
+% \changes{v2.8l}{2001/08/17}{erst eintragen, dann ausgeben}^^A
+% \changes{v2.95}{2004/07/20}{kann Kolumnentitel erzeugen}^^A
+% \changes{v3.00}{2008/07/01}{Notlösung für \textsf{hyperref} eingefügt}^^A
+% \changes{v3.08}{2010/11/02}{Verwendung von \cs{addparttocentry}}^^A
+% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
+% Argument der Gliederungsbefehle}^^A
+% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird
+% \cs{@mkboth}{}{} aufgerufen.}^^A
+% \changes{v3.17}{2015/04/20}{Es wird \cs{addpartmark} verwendet und auch
+% nie \cs{@mkboth}{}{} aufgerufen.}^^A
+% \changes{v3.18}{2015/05/25}{Komplett neu definiert}^^A
+% \begin{macro}{\@saddpart}
+% \changes{v2.8c}{2001/06/29}{neu (intern)}^^A
+% \changes{v3.18}{2015/05/25}{Komplett neu definiert}^^A
+% \begin{macrocode}
+\newcommand\addpart{%
+ \SecDef\@addpart\@saddpart
+}
+\newcommand*{\@addpart}{}
+\long\def\@addpart[#1]#2{%
+ \edef\reserved@a{%
+ \unexpanded{%
+ \part[{#1}]{#2}%
+ \c@secnumdepth=
+ }\the\c@secnumdepth\relax
+ }%
+ \c@secnumdepth=\numexpr \partnumdepth-1\relax
+ \reserved@a
+}
+\newcommand{\@saddpart}[1]{%
+ \part*{#1}%
+ \addpartmark{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \@saddpart
+% \end{macro}^^A \@addpart
+% \end{macro}^^A \addpart
+%
+%
+% \begin{macro}{\l@part}
+% \changes{v2.97c}{2007/06/21}{\cs{sectfont}\cs{large} durch Verwendung von
+% Element \texttt{partentry} ersetzt}^^A
+% \changes{v2.97c}{2007/06/21}{Element \texttt{partentrypagenumber} wird
+% verwendet}^^A
+% \changes{v3.15}{2014/12/23}{Verwendung von \cs{parttocdepth} und
+% \cs{scr@part@numwidth}}^^A
+% \changes{v3.20}{2015/10/06}{Überführung in Verzeichnisstil}^^A
+% Der Eintrag für \cs{part}. Es werden einige Hilfsmakros passend zu
+% \cs{DeclareSectionCommand} definiert. Dadurch können diverse Einstellungen
+% darüber geändert werden. Es kann jedoch derzeit kein neuer Stil zugewiesen
+% werden.
+% \begin{macro}{\scr@part@tocindent}
+% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}^^A
+% \changes{v3.18}{2015/06/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \changes{v3.20}{2015/11/06}{wird nun auch verwendet}^^A
+% Der Einzug des Eintrags noch vor der Nummer.
+% \end{macro}^^A \scr@part@tocindent
+% \begin{macro}{\scr@part@tocnumwidth}
+% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}^^A
+% \changes{v3.18}{2015/06/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% Die definierte Breite der Nummer für den Eintrag ins Inhaltsverzeichnis.
+% \end{macro}
+% \end{macro}^^A \l@part
+%
+%
+% \begin{Counter}{part}
+% \begin{macro}{\thepart}
+% \begin{macro}{\partformat}
+% \changes{v2.3c}{1995/08/06}{Duden Regel 6}^^A
+% \changes{v2.5f}{1999/02/14}{überflüssiges Leerzeichen am Ende
+% entfernt}^^A
+% \changes{v2.7h}{2001/04/22}{verlorenen Backslash in \cs{autodot}^^A
+% wieder eingefügt}^^A
+% 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}) benötigt.
+% \begin{macrocode}
+\newcounter{part}
+\renewcommand*{\thepart}{\@Roman\c@part}
+\newcommand*{\partformat}{\partname~\thepart\autodot}
+% \end{macrocode}
+% \end{macro}^^A \partformat
+% \end{macro}^^A \thepart
+% \end{Counter}{part}
+%
+%
+% \begin{macro}{\partname}
+% Namen der Gliederungsebenen \cs{part}.
+% \begin{macrocode}
+\newcommand*\partname{Part}
+% \end{macrocode}
+% \end{macro}^^A \partname
+%
+%
+% \begin{macro}{\partmark}
+% \changes{v2.9r}{2004/07/20}{neu (für \textsf{scrpage2})}^^A
+% \changes{v3.18}{2015/05/24}{Voreinstellung von \cs{@gobble} zu
+% \cs{@mkboth{}{}} geändert}
+% \begin{macrocode}
+\newcommand*{\partmark}[1]{\@mkboth{}{}}
+% \end{macrocode}
+% \end{macro}^^A \partmark
+%
+% \begin{macro}{\addpartmark}
+% \changes{v3.17}{2015/04/20}{neue Anweisung}^^A
+% \changes{v3.18}{2015/05/24}{abhängig von \cs{partnumdepth}}^^A
+% Analog zu \cs{addchapmark} für \cs{addpart}. Auch dabei gilt, 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}
+\newcommand*\addpartmark[1]{%
+ \begingroup
+ \expandafter\let\csname if@mainmatter\expandafter\endcsname
+ \csname iffalse\endcsname
+ \c@secnumdepth=\numexpr \partnumdepth-1\relax
+ \partmark{#1}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}^^A \addpartmark
+%
+%
+% \begin{macro}{\raggedpart}
+% \changes{v2.95a}{2006/07/10}{neue Konfigurationsmöglichkeit}^^A
+% 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}{}
+%<article>\let\raggedpart\raggedsection
+%<report|book>\let\raggedpart\centering
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{KOMAfont}{part}
+% \changes{v2.8p}{2001/09/23}{neues Element \texttt{part}}^^A
+% \begin{macro}{\scr@fnt@part}
+% \changes{v2.8p}{2001/09/23}{neues Element \texttt{part}}^^A
+% \begin{KOMAfont}{partnumber}
+% \changes{v2.8p}{2001/09/23}{neues Element \texttt{partnumber}}^^A
+% \begin{macro}{\scr@fnt@partnumber}
+% \changes{v2.8p}{2001/09/23}{neues Element \texttt{partnumber}}^^A
+% \begin{KOMAfont}{partprefix}
+% \changes{v3.18}{2015/06/10}{neues Alias-Element \texttt{partprefix}}^^A
+% \begin{macrocode}
+\newcommand*{\scr@fnt@part}{\size@part}
+\newcommand*{\scr@fnt@partnumber}{\size@partnumber}
+\aliaskomafont{partprefix}{partnumber}
+% \end{macrocode}
+% \end{KOMAfont}
+% \end{macro}
+% \end{KOMAfont}
+% \end{macro}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{partentry}
+% \changes{v2.97c}{2007/06/21}{neues Font-Element}^^A
+% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch
+% \texttt{disposition} ersetzt}^^A
+% 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}^^A
+% Schrift für die Seitenzahl des \cs{part}-Eintrags im Inhaltsverzeichnis
+% abweichend von \texttt{partentry}.
+% \begin{macrocode}
+\newkomafont{partentrypagenumber}{}
+%</body>
+%</class>
+% \end{macrocode}
+% \end{KOMAfont}
+%
+%
+% \subsection{Kapitel}
+%
+% Bei den Klassen \texttt{scrbook} und \texttt{scrreprt} gibt es im
+% Unterschied zu \texttt{scrartcl} auch noch die Kapitelebene. Für die
+% Definition des Kapitelstils mittels \cs{DeclareSectionCommand} werden neben
+% den Optionen und \cs{scr@dsc@def@style@chapter@command} noch diverse
+% Anweisungen benötigt. Diese sind allesamt von der ursprünglichen Definition
+% für Kapitel abgeleitet. Eine Besonderheit ist dabei, dass \textsf{hyperref}
+% dem neuen Code durch (inkompatible) Umdefinierung von \cs{@schapter} und
+% \cs{@chapter} in die Quere kommt. Das gilt es also zusätzlich zu verhindern
+% und dennoch \cs{hyperref} zu berücksichtigen. Dies gelingt am einfachsten
+% durch einen neuen Hook, den \cs{hyperref} zukünftig gerne selbst passend
+% umdefinieren kann. Wer sonst noch an \cs{@chapter} und \cs{@schaper}
+% herumdoktert und dabei \KOMAScript{} aus dem Tritt bringt, ist selbst
+% schuld.
+%
+% \begin{option}{chapterprefix}
+% \changes{v2.8}{2001/06/15}{neue Option}^^A
+% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option}^^A
+% \changes{v3.18}{2015/05/22}{die Option bezieht sich allgemein auf den
+% Gliederungsstil}^^A
+% \begin{option}{nochapterprefix}
+% \changes{v2.8}{2001/06/15}{neue Option}^^A
+% \changes{v2.95c}{2006/08/21}{obsolete Option}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% 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}.
+% 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}
+%<*class>
+%<*book|report>
+%<prepare>\newif\if@chapterprefix
+%<*option>
+\KOMA@key{chapterprefix}[true]{%
+ \KOMA@set@ifkey{chapterprefix}{@chapterprefix}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \KOMA@kav@replacebool{.\KOMAClassFileName}%
+ {chapterprefix}{@chapterprefix}%
+ \KOMA@kav@remove{.\KOMAClassFileName}%
+ {headings}{twolinechapter}%
+ \KOMA@kav@remove{.\KOMAClassFileName}%
+ {headings}{onelinechapter}%
+ \KOMA@kav@xadd{.\KOMAClassFileName}%
+ {headings}{%
+ \if@chapterprefix twolinechapter\else onelinechapter\fi
+ }%
+ \fi
+}
+\KOMA@DeclareDeprecatedOption{nochapterprefix}{chapterprefix=false}
+\KOMA@kav@add{.\KOMAClassFileName}{headings}{onelinechapter}%
+%</option>
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{appendixprefix}
+% \changes{v2.8}{2001/06/15}{neue Option}^^A
+% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option}^^A
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \changes{v3.17}{2015/03/09}{interne Speicherung des Wert}^^A
+% \begin{option}{noappendixprefix}
+% \changes{v2.8}{2001/06/15}{neue Option}^^A
+% \changes{v2.95c}{2006/08/21}{obsolete Option}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% 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}
+%<*option>
+\KOMA@key{appendixprefix}[true]{%
+ \KOMA@set@ifkey{appendixprefix}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.\KOMAClassFileName}{appendixprefix}{#1}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{twolineappendix}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{onelineappendix}%
+ \if@tempswa
+ \KOMA@kav@add{.\KOMAClassFileName}{headings}{twolineappendix}%
+ \@ifundefined{appendixmore}{%
+ \def\appendixmore{\@chapterprefixtrue}%
+ }{%
+ \l@addto@macro\appendixmore{\@chapterprefixtrue}%
+ }%
+ \else
+ \KOMA@kav@add{.\KOMAClassFileName}{headings}{onelineappendix}%
+ \@ifundefined{appendixmore}{%
+ \def\appendixmore{\@chapterprefixfalse}%
+ }{%
+ \l@addto@macro\appendixmore{\@chapterprefixfalse}%
+ }%
+ \fi
+ \fi
+}
+\KOMA@DeclareDeprecatedOption{noappendixprefix}{appendixprefix=false}
+%</option>
+% \end{macrocode}
+% \end{option}^^A noappendixprefix
+% \end{option}^^A appendixprefix
+%
+%
+% \begin{macro}{\size@chapter}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten,
+% wenn es keine Auswirkung auf den Zeilen abstand hat}^^A
+% \begin{macro}{\size@chapterprefix}
+% \changes{v2.96a}{2006/12/02}{neu (intern)}^^A
+% Hier werden diese Befehle nur vordefiniert. Ihre tatsächliche Einstellung
+% erfolgt über die (Vor-)Auswahl von Option \texttt{headings}.
+% \begin{macrocode}
+%<*prepare>
+\newcommand*{\size@chapter}{}
+\newcommand*{\size@chapterprefix}{\size@chapter}
+%</prepare>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\chapterheadstartvskip}
+% \changes{v3.15}{2014/11/24}{\cs{scr@chapter@beforeskip} wird
+% definiert und verwendet}^^A
+% \begin{macro}{\chapterheadendvskip}
+% \changes{v3.11c}{2013/02/13}{\cs{chapterheadstartvskip} und
+% \cs{chapterheadendvskip} haben in \textsf{scrartcl} nichts verloren}^^A
+% \changes{v3.15}{2014/11/24}{\cs{scr@chapter@afterskip} wird
+% definiert und verwendet}^^A
+% \changes{v3.15}{2014/12/10}{\cs{vspace} durch \cs{vskip} ersetzt, damit
+% \cs{lastskip} korrekt gesetzt ist}
+% \begin{macro}{\chapterheadmidvskip}
+% \changes{v3.15}{2014/11/20}{neue Anweisung}^^A
+% \changes{v3.17}{2015/03/25}{\cs{scr@chapter@innerskip} wird
+% definiert und verwendet}^^A
+% 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. Dabei wird \cs{chapterheadmidvskip} nur
+% verwendet, wenn Option \texttt{chapterprefix} aktiv ist.
+%
+% Zur Erhöhung der Kompatibilität mit \cs{DeclareSectionCommand} werden
+% zunächst einige Hilfsanweisung definiert und verwendet.
+% \begin{macro}{\scr@chapter@beforeskip}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}^^A
+% \changes{v3.17}{2015/03/25}{umbenannt in
+% \cs{scr@chapter@beforeskip}}^^A
+% \begin{macro}{\scr@chapter@afterskip}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}^^A
+% \changes{v3.17}{2015/03/25}{umbenannt in
+% \cs{scr@chapter@afterskip}}^^A
+% \begin{macro}{\scr@chapter@sectionindent}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung (unbenutzt)}^^A
+% \changes{v3.17}{2015/04/24}{entfernt}^^A
+% \end{macro}^^A \scr@chapter@sectionindent
+% \end{macro}^^A \scr@chapter@afterskip
+% \end{macro}^^A \scr@chapter@beforeskip
+% \begin{macro}{\scr@chapter@beforeskip}
+% \changes{v3.17}{2015/03/25}{Neu (intern) aus Umdefinierung von
+% \cs{scr@chapter@sectionbeforeskip}}^^A
+% \begin{macro}{\scr@chapter@innerskip}
+% \changes{v3.17}{2015/03/25}{Neu (intern)}^^A
+% \begin{macro}{\scr@chapter@afterskip}
+% \changes{v3.17}{2015/03/25}{Neu (intern) aus Umdefinierung von
+% \cs{scr@chapter@sectionafterskip}}^^A
+% \begin{macro}{\scr@chapter@style}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}^^A
+% Dabei wird der leere Stil verwendet, mit dem Neudefinitionen von \cs{part}
+% über \cs{DeclareSectionCommand} verhindert werden. Gleichzeitig können
+% jedoch Einstellungen einiger Werte darüber erfolgen.
+% \begin{macrocode}
+%<*prepare>
+\newcommand*{\scr@chapter@beforeskip}{\z@}
+\let\scr@chapter@beforeskip\z@
+\newcommand*{\scr@chapter@afterskip}{\z@}
+\let\scr@chapter@afterskip\z@
+\newcommand*{\scr@chapter@innerskip}{\z@}
+\let\scr@chapter@innerskip\z@
+\newcommand*{\scr@chapter@style}{chapter}
+% \end{macrocode}
+% \end{macro}^^A \scr@chapter@style
+% \end{macro}^^A \scr@chapter@innerskip
+% \end{macro}^^A \scr@chapter@beforeskip
+% \end{macro}^^A \scr@chapter@afterskip
+% \begin{macrocode}
+\newcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}
+\newcommand*{\chapterheadendvskip}{\vskip\@tempskipa}
+\newcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}
+%</prepare>
+% \end{macrocode}
+% \end{macro}^^A \chapterheadmidvskip
+% \end{macro}^^A \chapterheadendvskip
+% \end{macro}^^A \chapterheadstartvskip
+%
+%
+% \begin{macro}{\scr@startchapter}
+% \changes{v3.18}{2015/05/22}{neue Anweisung (für Paketautoren)}
+% \changes{v3.19}{2015/08/25}{Seitenstil nur ändern wenn definiert und nicht
+% leer}^^A
+% Diese Anweisung legt fest, wie der konkrete Aufruf für Überschriften des
+% Stils \texttt{chapter} lautet. Einziges Argument ist dabei der Name der
+% Gliederungsebene, beispielsweise \texttt{chapter}. Alle anderen benötigten
+% Werte ergeben sich aus den Einstellungen für die Gliederungsebene. Beim
+% tatsächlichen Aufruf wird dann daran wie üblich noch optional noch entweder
+% ein Stern oder ein Argument für Kolumnentitel und Inhaltsverzeichniseintrag
+% und der Text der Überschrift angehängt. Diese Anweisung wurde von der
+% ursprünglichen Definition von \cs{chapter} abgeleitet.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\scr@startchapter}[1]{%
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \scr@ifundefinedorrelax{#1pagestyle}{}{%
+ \ifstr{#1pagestyle}{}{}{%
+ \thispagestyle{\@nameuse{#1pagestyle}}%
+ }%
+ }%
+ \global\@topnum\z@
+ \@ifundefined{scr@#1@afterindent}{\@afterindentfalse}{%
+ \csname scr@#1@afterindent\endcsname
+ {\@afterindenttrue}{\@afterindentfalse}{%
+ \@afterindenttrue
+ \@ifundefined{scr@#1@beforeskip}{\@afterindentfalse}{%
+ \ifdim\glueexpr\@nameuse{scr@#1@beforeskip}\relax<\z@
+ \@afterindentfalse
+ \fi
+ }%
+ }%
+ }%
+ \expandafter\SecDef\csname @#1\expandafter\endcsname\csname @s#1\endcsname
+}
+% \end{macrocode}
+%
+% \begin{macro}{\scr@@startchapter}
+% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
+% Diese Anweisung nimmt die Rolle des ursprüngliche \cs{@chapter} ein und
+% erbst damit auch die ganzen noch relevanten ChangeLog-Einträge dieser
+% Anweisung.
+% \begin{macrocode}
+\newcommand*{\scr@@startchapter}{}
+\def\scr@@startchapter#1[#2]#3{%
+% \end{macrocode}
+% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
+% Argument der Gliederungsbefehle}^^A
+% Für das erweitere optionale Argument muss hier eine key-value-Auswertung
+% erfolgen, falls das erweitere optionale Argument aktiviert ist:
+% \begin{macrocode}
+ \ifnum \scr@osectarg=\z@
+ \@scr@tempswafalse
+ \else
+ \scr@istest#2=\@nil
+ \fi
+ \if@scr@tempswa
+ \setkeys{KOMAarg.section}{tocentry={#3},head={#3},reference={#3},#2}%
+ \else
+ \ifcase \scr@osectarg\relax
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},reference={#2}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#3},head={#2},reference={#3}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#3},reference={#2}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},reference={#2}}%
+ \fi
+ \fi
+% \end{macrocode}
+% Als nächstes muss für nummerierte Überschriften dieser Ebene sowohl der
+% Zähler erhöht also auch ein nummerierter Eintrag ins Inhaltsverzeichnis
+% erstellt werden.
+% \changes{v2.8e}{2001/07/10}{\cs{@maybeautodot} wird aufgerufen}^^A
+% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}}^^A
+% \changes{v3.18}{2015/05/20}{Verwendung von \cs{add\meta{Name}tocentry}}^^A
+% \changes{v3.18}{2015/05/22}{Verwendung von \meta{Name} statt \cs{@chapapp}
+% in \cs{typeout}}^^A
+% \begin{macrocode}
+ \ifnumbered{#1}{%
+%<book> \if@mainmatter
+ \@tempswatrue
+%<book> \else\@tempswafalse\fi
+ }{\@tempswafalse}%
+ \if@tempswa
+ \refstepcounter{#1}%
+ \expandafter\@maybeautodot\csname the#1\endcsname
+ \typeout{#1 \csname the#1\endcsname.}%
+ \ifx\@currenttocentry\@empty\else
+ \scr@ifundefinedorrelax{add#1tocentry}{%
+ \addtocentrydefault{#1}%
+ }{%
+ \@nameuse{add#1tocentry}%
+ }{\csname the#1\endcsname}{\@currenttocentry}%
+ \fi
+% \end{macrocode}
+% Für alle nicht nummerieten Überschriften dieser Ebene trotzdem die
+% Resetliste des Zählers ausführen und ggf. einen Verzeichniseintrag
+% erstellen.
+% \begin{macrocode}
+ \else
+ \expandafter\ifnum\scr@v@is@lt{3.15}\relax\else
+ \begingroup
+ \let\@elt\@stpelt
+ \csname cl@#1\endcsname
+ \endgroup
+ \fi
+ \typeout{#1 without number}%
+ \ifx\@currenttocentry\@empty\else
+% \end{macrocode}
+% An dieser Stelle muss ggf. der \textsf{hyperref}-Hook für nicht nummerierte
+% Inhaltsverzeichniseinträge ausgeführt werden.
+% \begin{macrocode}
+ \hy@insteadofrefstepcounter{#1}%
+ \scr@ifundefinedorrelax{add#1tocentry}{%
+ \addtocentrydefault{#1}%
+ }{%
+ \@nameuse{add#1tocentry}%
+ }{}{\@currenttocentry}%
+ \fi
+ \fi
+% \end{macrocode}
+% Jetzt kommt der Kolumnentitel an die Reihe.
+% \begin{macrocode}
+ \csname #1mark\expandafter\endcsname\expandafter{\@currentheadentry}%
+% \end{macrocode}
+% Und die Abstände in die andere Verzeichnisse.
+% \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
+% \begin{macrocode}
+ \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
+% \end{macrocode}
+% Jetzt kommt die eigentliche Überschrift. An dieser Stelle wird ab
+% Version~3.18 nicht mehr stur \cs{@makecshapterhead} verwendet, sondern eine
+% Anweisung, die vom Namen der Gliederungsüberschrift abhängig ist.
+% \changes{v3.18}{2015/05/22}{\cs{@makechapterhead} durch
+% \cs{@make\meta{Name}head} ersetzt}^^A
+% \begin{macrocode}
+ \if@twocolumn
+ \if@at@twocolumn
+ \@nameuse{@make#1head}{#3}%
+ \else
+ \@topnewpage[\@nameuse{@make#1head}{#3}]%
+ \fi
+ \else
+ \@nameuse{@make#1head}{#3}%
+ \fi
+% \end{macrocode}
+% Und das Ganze endet schließlich mit:
+% \changes{v3.18}{2015/05/21}{\cs{@afterheading} in jedem Fall}^^A
+% \begin{macrocode}
+ \@afterheading
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@@startchapter
+%
+% \begin{macro}{\scr@@startschapter}
+% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
+% Diese Anweisung nimmt die Rolle des ursprüngliche \cs{@schapter} ein sie ist
+% sehr viel einfacher gestrickt als \cs{scr@@startchapter}.
+% \begin{macrocode}
+\newcommand*{\scr@@startschapter}[2]{%
+% \end{macrocode}
+% Für Leute, die unbedingt nach der Sternversion noch ein \cs{addcontentsline}
+% anfügen wollen, muss hier ebenfalls der \textsf{hyperref}-Hook ausgeführt
+% werden. Allerdings passiert das hier entsprechend dem Vorgehen von
+% \textsf{hyperref} selbst in einer Gruppe, in der zusätzlich \cs{@mkboth} zu
+% \cs{@gobbletwo} gemacht wird, auch wenn ich absolut nicht versehe, was das
+% soll.
+% \begin{macrocode}
+ \begingroup
+ \let\@mkboth\@gobbletwo
+ \hy@insteadofrefstepcounter{#1}%
+ \endgroup
+% \end{macrocode}
+% Dann wird die eigentliche Überschrift ausgegeben.
+% \begin{macrocode}
+ \if@twocolumn
+ \if@at@twocolumn
+ \@nameuse{@makes#1head}{#2}%
+ \else
+ \@topnewpage[\@nameuse{@makes#1head}{#2}]%
+ \fi
+ \else
+ \@nameuse{@makes#1head}{#2}%
+ \fi
+% \end{macrocode}
+% Und das Ganze endet schließlich mit:
+% \changes{v3.18}{2015/05/21}{\cs{@afterheading} in jedem Fall}^^A
+% \begin{macrocode}
+ \@afterheading
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@@startschapter
+%
+%% \begin{macro}{\if@at@twocolumn}
+% \changes{v2.7b}{2001/01/05}{neu (intern)}^^A
+% \begin{macro}{\scr@topnewpage}
+% \changes{v2.7b}{2001/01/05}{neu (intern)}^^A
+% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}^^A
+% \begin{macro}{\@topnewpage}
+% \changes{v2.7b}{2001/01/05}{neu (\LaTeX{} intern)}^^A
+% \changes{v2.7g}{2001/04/17}{vergessenes \cs{long} ergänzt}^^A
+% \changes{v3.01}{2008/11/13}{Verwendung von
+% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})}^^A
+% 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}^^A \@topnewpage
+% \end{macro}^^A \scr@topnewpage
+% \end{macro}^^A \if@at@twocolumn
+%
+% \begin{macro}{\scr@makechapterhead}
+% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
+% Diese Anweisung nimmt die Rolle des ursprüngliche \cs{@makechapterhead}
+% ein. Mit dem neuen Mechanismus könnte man auf diesen zusätzlichen Schritt
+% verzichten. Aus Gründen der Kompatibilität wurde er aber übernommen. Daher
+% übernimmt sie auch die ChangeLog-Einträge der alten Anweisung.
+% \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit einer
+% Präambel versehen werden}^^A
+% \changes{v2.8p}{2001/09/25}{es gibt verschiedene Arten von Präambeln}^^A
+% \changes{v3.15}{2014/12/10}{\cs{nobreak} am Ende entfernt}^^A
+% \begin{macrocode}
+\newcommand*{\scr@makechapterhead}[2]{%
+ \use@chapter@o@preamble{#1}%
+ \@nameuse{@@make#1head}{#2}%
+ \use@preamble{#1@u}%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@makechapterhead
+%
+% \begin{macro}{\scr@makeschapterhead}
+% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
+% Diese Anweisung nimmt die Rolle des ursprüngliche \cs{@makeschapterhead}
+% ein. Mit dem neuen Mechanismus könnte man auf diesen zusätzlichen Schritt
+% verzichten. Aus Gründen der Kompatibilität wurde er aber übernommen. Daher
+% übernimmt sie auch die ChangeLog-Einträge der alten Anweisung.
+% \begin{macrocode}
+\newcommand*{\scr@makeschapterhead}[2]{%
+ \use@chapter@o@preamble{#1}%
+ \@nameuse{@@makes#1head}{#2}%
+ \use@preamble{#1@u}%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@makeschapterhead
+%
+% \begin{macro}{\scr@@makechapterhead}
+% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
+% Diese Anweisung nimmt die Rolle des ursprüngliche \cs{@@makechapterhead}
+% ein. Daher übernimmt sie auch die ChangeLog-Einträge der alten Anweisung.
+% \changes{v2.8q}{2002/04/18}{\cs{raggedsection} wird bei Option
+% \texttt{chapterprefix} auch auf den Präfix angewendet}^^A
+% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt}^^A
+% \changes{v2.96a}{2006/12/02}{Abstand nach der Präfixzeile nur, wenn eines
+% Präfixzeile ausgegeben wurde}^^A
+% \changes{v2.97b}{2007/03/09}{\cs{endgraf} korrigiert}^^A
+% \changes{v3.15}{2014/11/20}{Generalumbau}^^A
+% \changes{v3.15}{2014/12/09}{\cs{raggedchapter} ersetzt
+% \cs{raggedsection}}^^A
+% \changes{v3.17}{2015/04/03}{Verwendung von \cs{usefontofkomafont} für die
+% initiale Fontumstellung}^^A
+% \begin{macrocode}
+\newcommand*{\scr@@makechapterhead}[2]{%
+% \end{macrocode}
+% Der Absolutwert des Abstandes davor wird eingefügt.
+% \changes{v3.22}{2016/12/21}{\cs{@afterindentrue} wird bei positivem
+% \texttt{beforeskip} gesetzt}^^A
+% \changes{v3.26}{2018/09/18}{Beachtung von Einstellung
+% \texttt{afterindent}}^^A
+% \begin{macrocode}
+ \@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
+ \csname scr@#1@afterindent\endcsname
+ {\@afterindenttrue}{\@afterindentfalse}{%
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\else
+ \expandafter\ifnum\scr@v@is@ge{3.22}\@afterindenttrue\fi
+ \fi
+ }%
+ \chapterheadstartvskip
+% \end{macrocode}
+% Dann die eigentliche Überschrift innerhalb einer Gruppe.
+% \changes{v3.20}{2015/12/23}{\cs{parfillskip} auf \texttt{\cs{z@} plus
+% 1fil} gesetzt}^^A
+% \begin{macrocode}
+ {%
+ \setlength{\parindent}{\z@}\setlength{\parfillskip}{\z@ plus 1fil}%
+% \end{macrocode}
+% \changes{v3.19}{2015/08/02}{Verwendung von \cs{chapterlinesformat} und
+% \cs{chapterlineswithprefixformat}}^^A
+% \changes{v3.19}{2015/08/02}{Verwendung von Element \texttt{disposition} an
+% Stelle von Befehl \cs{sectfont}}^^A
+% \changes{v3.19a}{2015/10/03}{Bug durch vergessene Definition von
+% \cs{IfUseNumber} behoben}^^A
+% Ab Version~3.19 wurde der Code weitgehend umgebaut, um die Befehle
+% \cs{chapterlinesformat} für die hängende Version und
+% \cs{chapterlinesandprefixformat} für die Version mit Präfixzeile zu
+% verwenden. Dadurch entfällt dann auch die Verwendung von
+% \cs{usefontofkomafont}. Ich bin mir bewusst, dass dadurch diverse Hacks
+% bezüglich der Kapitelüberschriften nicht mehr funktionieren. Dafür kann man
+% diese Hacks nun durch saubere Lösungen ersetzen.
+% \begin{macrocode}
+ \def\IfUseNumber{\ifnumbered{#1}}%
+%<book> \if@mainmatter\else\let\IfUseNumber\@secondoftwo\fi
+ \if@chapterprefix
+ \let\IfUsePrefixLine\@firstoftwo
+ \else
+ \let\IfUsePrefixLine\@secondoftwo
+ \fi
+ \normalfont\usekomafont{disposition}{%
+ \usekomafont{#1}{%
+ \settoheight{\@tempskipa}{%
+ {\usekomafont{#1prefix}{%
+ \vrule \@width\z@ \@height\csname scr@#1@innerskip\endcsname}}%
+ }%
+ \raggedchapter
+ \IfUseNumber{%
+ \IfUsePrefixLine{%
+ \chapterlineswithprefixformat{#1}%
+ {{\usekomafont{#1prefix}{\csname #1format\endcsname%
+ \setlength{\@tempskipa}{\csname scr@#1@innerskip\endcsname}%
+ \chapterheadmidvskip}}}%
+ {\interlinepenalty \@M#2\@@par}%
+ }{%
+ \chapterlinesformat{#1}%
+ {\csname #1format\endcsname}%
+ {\interlinepenalty \@M#2\@@par}%
+ }%
+ }{%
+ \IfUsePrefixLine{%
+ \chapterlineswithprefixformat{#1}%
+ {}%
+ {\interlinepenalty \@M#2\@@par}%
+ }{%
+ \chapterlinesformat{#1}%
+ {}%
+ {\interlinepenalty \@M#2\@@par}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ \nobreak\par\nobreak
+% \end{macrocode}
+% Zum Schluss der Absolutwert des Abstandes dahinter.
+% \changes{v3.26}{2018/09/20}{Betragsbildung entfernt}^^A
+% \begin{macrocode}
+ \@tempskipa=\glueexpr \csname scr@#1@afterskip\endcsname\relax\relax
+ \chapterheadendvskip
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@@makechapterhead
+%
+% \begin{macro}{\scr@@makeschapterhead}
+% \changes{v3.18}{2015/05/22}{neue Anweisung (intern)}
+% Diese Anweisung nimmt die Rolle des ursprüngliche \cs{@@makechapterhead}
+% ein. Sie ist um einiges einfacher als \cs{scr@@makechapterhead} orientiert
+% sich aber prinzipiell daran.
+% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt}^^A
+% \changes{v2.9q}{2004/03/24}{Klammerung an \cs{@@makechapterhead}^^A
+% angepasst}^^A
+%\changes{v3.15}{2014/12/09}{\cs{raggedchapter} ersetzt
+% \cs{raggedsection}}^^A
+%\changes{v3.19}{2015/08/02}{an die Änderungen bei \cs{scr@@makechapterhead}
+% angepasst}^^A
+% \changes{v3.20}{2015/12/23}{\cs{parfillskip} auf \texttt{\cs{z@} plus
+% 1fil} gesetzt}^^A
+% \changes{v3.22}{2016/12/21}{\cs{@afterindentrue} wird bei positivem
+% \texttt{beforeskip} gesetzt}^^A
+% \changes{v3.25}{2017/09/07}{\cs{IfUseNumber} korrigiert}^^A
+% \changes{v3.26}{2018/09/18}{Beachtung von Einstellung
+% \texttt{afterindent}}^^A
+% \changes{v3.26}{2018/09/20}{Betragsbildung für \texttt{afterskip}
+% entfernt}^^A
+% \begin{macrocode}
+\newcommand*{\scr@@makeschapterhead}[2]{%
+ \@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
+ \csname scr@#1@afterindent\endcsname
+ {\@afterindenttrue}{\@afterindentfalse}{%
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\else
+ \expandafter\ifnum\scr@v@is@ge{3.22}\@afterindenttrue\fi
+ \fi
+ }%
+ \chapterheadstartvskip
+ {%
+ \setlength{\parindent}{\z@}\setlength{\parfillskip}{\z@ plus 1fil}%
+ \let\IfUseNumber\@secondoftwo
+ \if@chapterprefix
+ \let\IfUsePrefixLine\@firstoftwo
+ \else
+ \let\IfUsePrefixLine\@secondoftwo
+ \fi
+ \normalfont\usekomafont{disposition}{%
+ \usekomafont{#1}{%
+ \raggedchapter
+ \IfUsePrefixLine{%
+ \chapterlineswithprefixformat{#1}%
+ {}%
+ {\interlinepenalty \@M#2\@@par}%
+ }{%
+ \chapterlinesformat{#1}%
+ {}%
+ {\interlinepenalty \@M#2\@@par}%
+ }%
+ }%
+ }%
+ }%
+ \nobreak\par\nobreak
+ \@tempskipa=\glueexpr \csname scr@#1@afterskip\endcsname\relax\relax
+ \chapterheadendvskip
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@@makeschapterhead
+%
+% \begin{macro}{\chapterlinesformat}
+% \changes{v3.19}{2015/08/02}{neue Anweisung}
+% \begin{macro}{\chapterlineswithprefixformat}
+% \changes{v3.19}{2015/08/02}{neue Anweisung}
+% Diese Anweisung definiert das Format der eigentlichen Überschriften im Stil
+% \texttt{chapter}, wenn mit Überschriftenzeilen gearbeitet
+% wird. Fonteinstellungen sind zu diesem Zeitpunkt bereits erfolgt. Die
+% Argumente sind:
+% \begin{description}
+% \item[\meta{Befehlsname} --] der Name der Gliederungsebene, normalerweise
+% \texttt{chapter}.
+% \item[\meta{Gliederungsnummer} --] die bereits fertig formatierte
+% Gliederungsnummer (bei \cs{chapterlineswithprefixformat} einschließlich
+% des nachfolgenden vertikalen Abstands) oder leer, falls keine
+% Gliederungsnummer auszugeben ist.
+% \item[\meta{Text} --] der Text der Überschrift.
+% \end{description}
+% Der Anwender ist selbst verantwortlich, dass innerhalb der Überschrift kein
+% Seitenumbruch erfolgen kann. Nach der Überschrift wird jedoch zwangsweise
+% ein \cs{@@par} ausgeführt, so dass sichergestellt ist, dass mit einem
+% internen Absatz abgeschlossen wird.
+% \begin{macrocode}
+\newcommand{\chapterlinesformat}[3]{%
+ \@hangfrom{#2}{#3}%
+}
+\newcommand{\chapterlineswithprefixformat}[3]{%
+ #2#3%
+}
+% \end{macrocode}
+% \end{macro}^^A \chapterlineswithprefixformat
+% \end{macro}^^A \chapterlinesformat
+%
+% \begin{macro}{\use@chapter@o@preamble}
+% \changes{v3.15}{2014/12/08}{Anpassung an geänderte Abstandsbehandlung}^^A
+% \changes{v3.15a}{2015/02/02}{Korrektur, zur Verhinderung falscher
+% \texttt{overfull \cs{vbox}} Meldungen}^^A
+% \changes{v3.18}{2015/05/20}{Verwendung befehlsabhängiger Abstände und
+% Warnungen}^^A
+% \changes{v3.18}{2015/05/22}{Bekommt ein Argument und setzt die Prämabel
+% der Anweisung nicht des Stils}^^A
+% 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}[1]{%
+ {%
+ \settoheight{\@tempdima}{%
+ \@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \vbox{\chapterheadstartvskip}%
+ }%
+ \settodepth{\@tempdimb}{%
+ \@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \vbox{\chapterheadstartvskip}%
+ }%
+ \addtolength{\@tempdima}{\@tempdimb}%
+ \setbox\z@\vbox{%
+ \use@preamble{#1@o}%
+ }%
+ \setlength{\@tempdimb}{\ht0}%
+ \addtolength{\@tempdimb}{\dp0}%
+ \vbox to \z@{%
+ \vskip-\baselineskip
+ \vbox to \@tempdima{%
+ \vfill
+ \box\z@
+ }%
+ \vss
+ }\vskip-\parskip\vskip-\baselineskip
+ \ifdim \@tempdimb>\@tempdima%
+ \addtolength{\@tempdimb}{-\@tempdima}%
+ \ifdim\@tempdimb<\vfuzz
+ \ClassInfo{\KOMAClassName}{%
+ preamble before #1 is \the\@tempdimb\space to high.\MessageBreak
+ Tolerated without warning because of\MessageBreak
+ \string\vfuzz\space = \the\vfuzz\space >= \the\@tempdimb
+ }%
+ \else
+ \ClassWarning{\KOMAClassName}{%
+ preamble before #1 is \the\@tempdimb\space to high.\MessageBreak
+ To avoid the overfull \string\vbox\space you may
+ change\MessageBreak
+ the `beforeskip' value using
+ \string\RedeclareSectionCommand\MessageBreak
+ at the preamble of your document.\MessageBreak
+ You may also change \string\setchapterpreamble\MessageBreak
+ before the command, which generates the message
+ about\MessageBreak
+ an overfull \string\vbox
+ }%
+ \fi
+ \fi%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \use@chapter@o@preamble
+% \end{macro}^^A \scr@startchapter
+%
+% \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}^^A \addchaptertocentry
+%
+% \begin{macro}{\@chapter}
+% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}
+% und \cs{scr@@startchapter}}^^A
+% \begin{macro}{\@makechapterhead}
+% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}
+% und \cs{scr@makechapterhead}}^^A
+% \begin{macro}{\@@makechapterhead}
+% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}
+% und \cs{scr@@makechapterhead}}^^A
+% \begin{macro}{\@schapter}
+% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}
+% und \cs{scr@@startschapter}}^^A
+% \begin{macro}{\@makeschapterhead}
+% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}
+% und \cs{scr@makeschapterhead}}^^A
+% \begin{macro}{\@@makeschapterhead}
+% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}
+% und \cs{scr@@makeschapterhead}}^^A
+% \begin{macro}{\setchapterpreamble}
+% \changes{v2.7b}{2001/01/05}{neu}^^A
+% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}}^^A
+% \begin{macro}{\chapter@u@preamble}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}}^^A
+% \begin{macro}{\chapter@o@preamble}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% \changes{v3.18}{2015/05/22}{siehe \cs{scr@dsc@def@style@chapter@command}}^^A
+% All diese Anweisungen wurden in früheren Versionen von \KOMAScript{}
+% explizit definiert. Nun werden sie nur noch indirekt über
+% \cs{scr@dsc@def@style@chapter@command} definiert und verwenden dabei andere
+% interne Anweisungen als früher. Deshalb funktionieren ggf. das Patchen mit
+% \textsf{etoolbox}, \textsf{xpatch} und ähnlichen Paketen nicht mehr. Das ist
+% der Preis für die neuen Möglichkeiten.
+% \end{macro}^^A \chapter@o@preamble
+% \end{macro}^^A \chapter@u@preamble
+% \end{macro}^^A \setchapterpreamble
+% \end{macro}^^A \@@makeschapterhead
+% \end{macro}^^A \@makeschapterhead
+% \end{macro}^^A \@schapter
+% \end{macro}^^A \@@makechapterhead
+% \end{macro}^^A \@makechapterhead
+% \end{macro}^^A \@chapter
+%
+% \begin{macro}{\addchap}
+% \changes{v2.0e}{1994/08/10}{\cs{sectdef} durch \cs{secdef} ersetzt}^^A
+% \changes{v2.0e}{1994/08/10}{\cs{addcontensline} durch
+% \cs{addcontentsline} ersetzt}^^A
+% \changes{v2.0e}{1994/08/10}{\cs{@makechapterhead} durch
+% \cs{@makeschapterhead} ersetzt}^^A
+% \changes{v2.0e}{1994/08/10}{\cs{afterheadings} durch
+% \cs{@afterheading} ersetzt}^^A
+% \changes{v2.1a}{1994/10/29}{Argument von \cs{chaptermark}^^A
+% entfernt bei \textsf{scrbook}}^^A
+% \changes{v2.0e}{1994/10/12}{mehrfach \cs{markboth} durch
+% \cs{sectionmark} ersetzt}^^A
+% \changes{v2.2b}{1995/03/20}{\cs{chaptermark} durch \cs{@mkboth}
+% ersetzt}^^A
+% \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt
+% \texttt{plain}}^^A
+% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere
+% float-Verzeichnisse mit hyperref}^^A
+% \changes{v3.01}{2008/11/13}{Verwendung von
+% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})}^^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
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}^^A
+% \changes{v3.18}{2015/05/22}{Komplett neu definiert}^^A
+% \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}}^^A
+% \changes{v3.17}{2015/04/20}{\cs{scr@ds@head} in \cs{addchapmark}
+% expandieren}^^A
+% \changes{v3.18}{2015/05/22}{Komplett neu definiert}^^A
+% \begin{macro}{\@saddchap}
+% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addchapmark}}^^A
+% \changes{v3.18}{2015/05/22}{Komplett neu definiert}^^A
+% Seit \KOMAScript~3.18 wurden die Definitionen noch einmal deutlich
+% vereinfacht. Deshalb wird nun auch nur noch für \cs{addchap*} die neue
+% Anweisung \cs{addchapmark} benötigt. Bei \cs{addchap} geht es hingegen
+% einfach über \cs{chaptermark} innerhalb von \cs{chapter}.
+% \begin{macrocode}
+\newcommand\addchap{%
+ \SecDef\@addchap\@saddchap
+}%
+\newcommand*{\@addchap}{}%
+\long\def\@addchap[#1]#2{%
+ \edef\reserved@a{%
+ \unexpanded{%
+ \chapter[{#1}]{#2}%
+ \c@secnumdepth=
+ }\the\c@secnumdepth\relax
+ }%
+ \c@secnumdepth=\numexpr \chapternumdepth-1\relax
+ \reserved@a
+}
+\newcommand{\@saddchap}[1]{%
+ \chapter*{#1}%
+ \addchapmark{}%
+}%
+% \end{macrocode}
+% 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}^^A
+% \changes{v2.7f}{2001/04/17}{fehlendes Klammerpaar ergänzt}^^A
+% \changes{v2.8q}{2001/11/17}{\cs{AfterPackage} zur Überprüfung der
+% \textsf{hyperref}-Version verwendet}
+% \begin{macrocode}
+%<*book>
+\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}}}
+%</book>
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@saddchap
+% \end{macro}^^A \@addchap
+% \end{macro}^^A \addchap
+%
+%
+% \begin{macro}{\l@chapter}
+% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}}^^A
+% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im
+% Inhaltsverzeichnis und übergeordneten Einträgen verhindern}^^A
+% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im
+% Inhaltsverzeichnis und untergeordneten Einträgen verhindern}^^A
+% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von
+% Element \texttt{chapterentry} ersetzt}^^A
+% \changes{v2.97c}{2007/06/21}{Element \texttt{chapterentrypagenumber} wird
+% verwendet}^^A
+% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige
+% Einträge zu ermöglichen}^^A
+% \changes{v3.15}{2014/12/22}{Verwendung von \cs{chaptertocdepth} und
+% \cs{scr@chapter@tocnumwidth}}^^A
+% \changes{v3.15}{2014/12/10}{Verwendung von \cs{addvspace} statt \cs{vskip}
+% für den Abstand am Anfang}^^A
+% \changes{v3.20}{2015/10/06}{überführt in Verzeichnisstil}^^A
+% Für die Definition des Kapiteleintrags ins Inhaltsverzeichnis werden einige
+% Parameter von \cs{DeclareSectionCommand} definiert und teilweise
+% verwendet. Damit kann man dann zumindest einige Änderungen mit
+% \cs{DeclareSectionCommand} vornehmen, allerdings noch keine komplette
+% Neugestaltung des Eintrags erreichen.
+% \begin{macro}{\scr@chapter@tocindent}
+% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}^^A
+% \changes{v3.18}{2015/05/20}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \changes{v3.20}{2015/11/06}{wird nun auch verwendet}^^A
+% Der Einzug des Eintrags noch vor der Nummer.
+% \end{macro}^^A \scr@chapter@tocindent
+% \begin{macro}{\scr@chapter@tocnumwidth}
+% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}^^A
+% \changes{v3.18}{2015/05/20}{indirekt über \cs{DeclareSectionCommand}}^^A
+% Die Breite der Nummer des Eintrags wird tatsächlich verwendet.
+% \end{macro}
+% \begin{option}{chapterentrydots}
+% \changes{v3.15}{2014/12/10}{Neu}^^A
+% Seit Version~3.15 kann man mit dieser Option Pünktchen zwischen Text und
+% Seitenzahl in den Kapiteleinträgen einschalten.
+% \begin{macrocode}
+%<*option>
+\KOMA@ifkey{chapterentrydots}{@chapterentrywithdots}
+%</option>
+% \end{macrocode}
+% \end{option}^^A chapterentrydots
+% \begin{macro}{\raggedchapterentry}
+% \changes{v2.97c}{2007/06/21}{neue Anweisung}^^A
+% \changes{v3.20}{2016/02/23}{wird nicht mehr verwendet}^^A
+% \changes{v3.21}{2016/06/06}{siehe \texttt{scrkernel-tocstyle.dtx},
+% Stil \texttt{tocline}, Eigenschaft \texttt{raggedentrytext}}^^A
+% Ausrichtung des Textes der Kapiteleinträge im Inhaltsverzeichnis.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\raggedchapterentry}{}
+% \end{macrocode}
+% \end{macro}^^A \raggedchapterentry
+% \end{macro}^^A \l@chapter
+%
+% \begin{macro}{\l@chapteratlist}
+% \changes{v2.96a}{2006/12/03}{neues Macro}^^A
+% 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}^^A \l@chapteratlist
+%
+% \begin{Counter}{chapter}
+% \begin{macro}{\thechapter}
+% \begin{macro}{\chapterformat}
+% \changes{v2.3c}{1995/08/06}{Duden Regel 6}^^A
+% \changes{v2.7}{2000/01/03}{einfaches Leerzeichen durch \cs{enskip}^^A
+% ersetzt}^^A
+% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingefügt}^^A
+% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt
+% \cs{chapappifprefix}} ^^A
+% \changes{v2.96a}{2006/12/02}{\cs{mbox} eingefügt, um \cs{caps} zu
+% ermöglichen}^^A
+% \changes{v3.17}{2015/03/08}{\cs{enskip} not in prefix line mode}^^A
+% \begin{macro}{\chaptermarkformat}
+% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer erhöht}^^A
+% \changes{v2.3c}{1995/08/06}{Duden Regel 6}^^A
+% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingefügt}^^A
+% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt
+% \cs{chapappifprefix}}^^A
+% \changes{v3.03a}{2009/04/03}{Tilde durch \cs{nobreakspace} ersetzt, um die
+% Kompatibilität mit Spanisch zu verbessern}^^A
+% 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{chapter}
+\renewcommand*{\thechapter}{\@arabic\c@chapter}
+\newcommand*{\chapterformat}{%
+ \mbox{\chapappifchapterprefix{\nobreakspace}\thechapter\autodot
+ \IfUsePrefixLine{}{\enskip}}%
+}
+\newcommand*\chaptermarkformat{\chapappifchapterprefix{\ }%
+ \thechapter\autodot\enskip}
+% \end{macrocode}
+% \end{macro}^^A \chaptermarkformat
+% \end{macro}^^A \chapterformat
+% \end{macro}^^A \thechapter
+% \end{Counter}^^A chapter
+%
+%
+% \begin{macro}{\chaptername}
+% Name der Gliederungsebenen \cs{chapter}.
+% \begin{macrocode}
+\newcommand*\chaptername{Chapter}
+% \end{macrocode}
+% \end{macro}^^A \chaptername
+%
+%
+% \begin{macro}{\appendixname}
+% Der Name des Anhangs.
+% \begin{macrocode}
+\newcommand*\appendixname{Appendix}
+% \end{macrocode}
+% \end{macro}^^A \appendixname
+%
+%
+% \begin{macro}{\chapappifprefix}
+% \changes{v2.8}{2001/06/15}{neu}^^A
+% \changes{v2.8o}{2001/09/19}{obsolet}^^A
+% \begin{macro}{\chapappifchapterprefix}
+% \changes{v2.8o}{2001/09/19}{neu}^^A
+% \changes{v2.8o}{2001/09/19}{Argument ist nicht optional}^^A
+% \changes{v3.18}{2015/06/09}{verwendet \cs{IfChapterUsePrefixLine}}^^A
+% \begin{macro}{\IfChapterUsesPrefixLine}
+% \changes{v3.18}{2015/06/09}{neu (intern)}
+% \begin{macro}{\chapapp}
+% \changes{v2.8}{2001/06/15}{neu}^^A
+% 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%
+ }%
+ \chapappifchapterprefix{#1}%
+}
+\newcommand*{\chapappifchapterprefix}[1]{%
+ \IfChapterUsesPrefixLine{\chapapp#1}{}%
+}
+\newcommand*{\IfChapterUsesPrefixLine}{%
+ \if@chapterprefix\expandafter\@firstoftwo\else\expandafter\@secondoftwo\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}^^A \@chapapp
+% \end{macro}^^A \chapapp
+% \end{macro}^^A \IfChapterUsePrefixLine
+% \end{macro}^^A \chapappifchapterprefix
+% \end{macro}^^A \chapappifprefix
+%
+%
+% \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}^^A
+% Für \cs{addchapmark} 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}
+\newcommand*\addchapmark[1]{%
+ \begingroup
+ \expandafter\let\csname if@mainmatter\expandafter\endcsname
+ \csname iffalse\endcsname
+ \c@secnumdepth=\numexpr \chapternumdepth-1\relax
+ \chaptermark{#1}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}^^A \addchapmark
+%
+%
+% \begin{macro}{\raggedchapter}
+% \changes{v3.15}{2014/12/09}{neu}^^A
+% Da das doch recht häufig gewünscht wird, kann man die Ausrichtung der
+% Kapitelüberschrift auch getrennt von der Ausrichtung der übrigen
+% Überschriften einstellen.
+% \begin{macrocode}
+\newcommand*{\raggedchapter}{\raggedsection}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{KOMAfont}{chapter}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{chapter}}^^A
+% \begin{macro}{\scr@fnt@chapter}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{chapter}}^^A
+% \begin{KOMAfont}{chapterprefix}
+% \changes{v2.96a}{2006/12/02}{neues Element \texttt{chapterprefix}}^^A
+% \begin{macro}{\scr@fnt@chapterprefix}
+% \changes{v2.96a}{2006/12/02}{neues Element \texttt{chapterprefix}}^^A
+% \begin{macrocode}
+\newcommand*{\scr@fnt@chapter}{\size@chapter}
+\newcommand*{\scr@fnt@chapterprefix}{\size@chapterprefix}
+% \end{macrocode}
+% \end{macro}^^A \scr@fnt@chapterprefix
+% \end{KOMAfont} chapterprefix
+% \end{macro}^^A \scr@fnt@chapter
+% \end{KOMAfont}^^A chapter
+%
+% \begin{KOMAfont}{chapterentry}
+% \changes{v2.97c}{2007/06/21}{neues Font-Element}^^A
+% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch
+% \texttt{disposition} ersetzt}^^A
+% Schrift für den \cs{chapter}-Eintrag im Inhaltsverzeichnis.
+% \begin{macrocode}
+\newkomafont{chapterentry}{\usekomafont{disposition}}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{chapterentrypagenumber}
+% \changes{v2.97c}{2007/06/21}{neues Font-Element}^^A
+% 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}{chapterentrydots}
+% \changes{v3.15}{2014/12/10}{neues Font-Element}^^A
+% Schrift für die optionalen Pünktchen des \cs{chapter}-Eintrags im
+% Inhaltsverzeichnis abweichend von \texttt{chapterentrypagenumber}.
+% \begin{macrocode}
+\newkomafont{chapterentrydots}{\normalfont}
+%</body>
+%</book|report>
+%</class>
+% \end{macrocode}
+% \end{KOMAfont}
+%
+%
+% \subsection{Abschnitte und Untergliederungen}
+%
+% Alle Ebenen ab \cs{section} ähneln sich so sehr, dass sie gemeinsam
+% behandelt werden. Lediglich bei \textsf{scrartl} gibt es für \cs{section}
+% selbst noch ein paar Besonderheiten.
+%
+% \begin{macro}{\size@section}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \begin{macro}{\size@subsection}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \begin{macro}{\size@subsubsection}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \begin{macro}{\size@paragraph}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \begin{macro}{\size@subparagraph}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% Hier werden diese Befehle nur vordefiniert. Ihre tatsächliche Einstellung
+% erfolgt über die (Vor-)Auswahl von Option \texttt{headings}.
+% \begin{macrocode}
+%<*class>
+%<*prepare>
+\newcommand*{\size@section}{}
+\newcommand*{\size@subsection}{}
+\newcommand*{\size@subsubsection}{}
+\newcommand*{\size@paragraph}{}
+\newcommand*{\size@subparagraph}{}
+%</prepare>
+% \end{macrocode}
+% \end{macro}^^A \size@subparagraph
+% \end{macro}^^A \size@paragraph
+% \end{macro}^^A \size@subsubsection
+% \end{macro}^^A \size@subsection
+% \end{macro}^^A \size@section
+%
+%
+% \begin{macro}{\l@section}
+% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}}^^A
+% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im
+% Inhaltsverzeichnis und übergeordneten Einträgen verhindern}^^A
+% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im
+% Inhaltsverzeichnis und untergeordneten Einträgen verhindern}^^A
+% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von
+% Element \texttt{sectionentry} ersetzt}^^A
+% \changes{v2.97c}{2007/06/21}{Element \texttt{sectionentrypagenumber} wird
+% verwendet}^^A
+% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige
+% Einträge zu ermöglichen}^^A
+% \changes{v3.15}{2014/11/24}{\cs{sectiontocdepth},
+% \cs{scr@section@tocindent} und \cs{scr@section@tocnumwidth} werden
+% verwendet}^^A
+% \changes{v3.20}{2015/10/06}{Überführung in Verzeichnisstil}^^A
+% 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{option}{sectionentrydots}
+% \changes{v3.15}{2014/12/10}{Neu}^^A
+% Seit Version~3.15 kann man mit dieser Option Pünktchen zwischen Text und
+% Seitenzahl in den Kapiteleinträgen einschalten.
+% \begin{macrocode}
+%<*article>
+%<*option>
+\KOMA@ifkey{sectionentrydots}{@sectionentrywithdots}
+%</option>
+% \end{macrocode}
+% \end{option}^^A sectionentrydots
+% \begin{macro}{\raggedsectionentry}
+% \changes{v2.97c}{2007/06/21}{neue Anweisung}^^A
+% \changes{v3.20}{2016/02/23}{nicht mehr verwendet}^^A
+% Ausrichtung des Textes der Abschnittseinträge im Inhaltsverzeichnis.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\raggedsectionentry}{}
+%</body>
+%</article>
+% \end{macrocode}
+% \end{macro}^^A \raggedsectionentry
+% \end{macro}^^A \l@section
+%
+%
+% \begin{macro}{\addsec}
+% \changes{v2.0e}{1994/10/12}{mehrfach \cs{markboth} durch
+% \cs{sectionmark} ersetzt}^^A
+% \changes{v2.2b}{1995/03/20}{\cs{sectionmark} durch \cs{@mkboth}
+% ersetzt}^^A
+% \changes{v2.3h}{1995/01/21}{jetzt auch bei \textsf{scrbook} und
+% \textsf{scrreprt}}^^A
+% \changes{v2.4g}{1996/11/04}{\cs{section*} vorgezogen, damit
+% dadurch provozierte Seitenumbrüche im Inhaltsverzeichnis
+% berücksichtigt werden}^^A
+% \changes{v2.5d}{1998/01/03}{\cs{@mkboth} bedingt durch
+% \cs{markright} ersetzt}^^A
+% \changes{v2.7a}{2001/01/04}{\cs{addsec} für eine bessere
+% Unterstützung von \textsf{hyperref} geändert}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}^^A
+% \begin{macro}{\@addsec}
+% \changes{v3.10}{2011/08/30}{Verwendung von \cs{addsectiontocentry}}^^A
+% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
+% Argument der Gliederungsbefehle}^^A
+% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}}^^A
+% \changes{v3.18}{2015/05/22}{komplett neu definiert}^^A
+% \begin{macro}{\@saddsec}
+% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}}^^A
+% \changes{v3.17}{2015/04/20}{\cs{scr@ds@head} in \cs{addsecmark}
+% expandieren}^^A
+% \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).
+%
+% Mit Version~3.18 wurde \cs{addsec} deutlich vereinfacht. Seither verwendet
+% nur noch \cs{@saddsec} die Anweiung \cs{addsecmark}, während \cs{@addsec}
+% direkt über das \cs{sectionmark} von \cs{section} arbeitet.
+% \begin{macrocode}
+%<*body>
+\newcommand\addsec{\SecDef\@addsec\@saddsec}
+\newcommand*{\@addsec}{}
+\def\@addsec[#1]#2{%
+ \edef\reserved@a{%
+ \unexpanded{%
+ \section[{#1}]{#2}%
+ \c@secnumdepth=
+ }\the\c@secnumdepth\relax
+ }%
+ \c@secnumdepth=\numexpr \sectionnumdepth-1\relax
+ \reserved@a
+}
+\newcommand*{\@saddsec}[1]{%
+ \section*{#1}\addsecmark{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \@saddsec
+% \end{macro}^^A \@addsec
+% \end{macro}^^A \addsec
+%
+%
+% \begin{macro}{\minisec}
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
+% behebt einen Bug im color Paket}^^A
+% \changes{v2.9o}{2003/01/31}{\cs{nobreak} nach dem Gruppenende
+% behebt einen Bug im color Paket}^^A
+% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
+% von Option \texttt{version})}^^A
+% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak}^^A
+% entfernt}^^A
+% \changes{v3.13a}{2014/08/07}{Absicherung der Abstände bei
+% aufeinanderfolgenden Überschriften entsprechend \cs{@startsection}}^^A
+% \changes{v3.26}{2018/05/14}{fehlendes \cs{interlinepenalty}\cs{@M}
+% ergänzt}^^A
+% \begin{KOMAfont}{minisec}
+% \changes{v2.96a}{2006/12/03}{\texttt{minisec} ist ein eigenes
+% Fontelement}^^A
+% \changes{v3.21}{2016/06/12}{fehlendes \cs{nobreak} ergänzt}^^A
+% 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]{%
+ \expandafter\ifnum\scr@v@is@lt{3.13a}\relax
+ \@afterindentfalse \vskip 1.5ex
+ \else
+ \if@noskipsec \leavevmode \fi
+ \par
+ \@afterindentfalse
+ \if@nobreak
+ \everypar{}%
+ \else
+ \addpenalty\@secpenalty\addvspace{1.5ex}%
+ \fi
+ \fi
+ {\parindent \z@
+ \expandafter\ifnum\scr@v@is@gt{2.96}\relax
+ \setlength{\parfillskip}{\z@ plus 1fil}\fi
+ \raggedsection\normalfont\sectfont\nobreak
+ \usekomafont{minisec}{\nobreak\interlinepenalty \@M #1\par\nobreak}%
+ }\nobreak
+ \@afterheading
+}
+% \end{macrocode}
+% \end{KOMAfont}
+% \end{macro}
+%
+%
+% \begin{macro}{\addsectiontocentry}
+% \changes{v3.10}{2011/08/30}{Neu}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% Entsprechend \cs{addparttocentry} usw.
+% \begin{macrocode}
+\newcommand*{\addsubparagraphtocentry}[2]{%
+ \addtocentrydefault{subparagraph}{#1}{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{Counter}{section}
+% \begin{macro}{\thesection}
+% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil}^^A
+% \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}^^A
+% \changes{v2.3c}{1995/08/06}{Duden Regel 6}^^A
+% \begin{Counter}{subsection}
+% \begin{macro}{\thesubsection}
+% \begin{macro}{\subsectionmarkformat}
+% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer
+% erhöht}^^A
+% \changes{v2.3c}{1995/08/06}{Duden Regel 6}^^A
+% \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}
+%<*book|report>
+\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
+%</book>
+ \thechapter.%
+%<book> \fi
+ \@arabic\c@section
+}
+%</book|report>
+%<*article>
+\newcounter{section}
+\renewcommand*{\thesection}{\@arabic\c@section}
+%</article>
+\newcommand*\sectionmarkformat{\thesection\autodot\enskip}
+\newcounter{subsection}[section]
+\renewcommand*{\thesubsection}{\thesection.\@arabic\c@subsection}
+%<*article>
+\newcommand*\subsectionmarkformat{\thesubsection\autodot\enskip}
+%</article>
+\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}^^A
+% \changes{v2.9p}{2004/01/07}{\cs{protect} eingefügt}^^A
+% \changes{v2.97}{2007/01/24}{Workaround für das blöde \cs{protect}}^^A
+% \changes{v3.17}{2015/02/23}{verwendet \cs{\dots format}, wenn es
+% existiert}^^A
+% \changes{v3.17}{2015/03/31}{verwendet \cs{protect} für \cs{\dots
+% format}}^^A
+% \begin{macro}{\othersectionlevelsformat}
+% \changes{v2.7}{2000/01/03}{neu}^^A
+% \changes{v2.7}{2000/01/03}{\cs{quad} durch \cs{enskip} ersetzt}^^A
+% \changes{v2.7i}{2001/05/17}{\cs{let} durch \cs{def} ersetzt}^^A
+% \changes{v2.97}{2007/01/24}{statt einem Argument jetzt drei}^^A
+% 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]{%
+ \expandafter\ifnum\scr@v@is@lt{3.17}\relax
+ \protect\othersectionlevelsformat{#1}{%
+ \expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}%
+ \else
+ \scr@ifundefinedorrelax{#1format}{%
+ \protect\othersectionlevelsformat{#1}{%
+ \expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}%
+ }{\expandafter\protect\csname #1format\endcsname}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}^^A \othersectonlevelsformat
+% \end{macro}^^A \@seccntformat
+% \end{macro}^^A \thesubparagraph
+% \end{Counter}^^A subparagraph
+% \end{macro}^^A \theparagraph
+% \end{Counter}^^A paragraph
+% \end{macro}^^A \thesubsubsection
+% \end{Counter}^^A subsubsection
+% \end{macro}^^A \subsectionformat
+% \end{macro}^^A \thesubsection
+% \end{Counter}^^A subsection
+% \end{macro}^^A \sectionformat
+% \end{macro}^^A \thesection
+% \end{Counter}^^A section
+%
+%
+% \begin{macro}{\addsecmark}
+% \changes{v3.12}{2013/03/26}{neue Anweisung}^^A
+% \cs{addsecmark} wird nicht von den Seitenstilen definiert, sondern direkt
+% mit der gewünschten Definition initialisiert.
+% \begin{macrocode}
+\newcommand*\addsecmark[1]{%
+ \begingroup
+ \c@secnumdepth=\numexpr \sectionnumdepth-1\relax
+ \sectionmark{#1}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}^^A \addsecmark
+%
+% \begin{KOMAfont}{section}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{section}}^^A
+% \begin{macro}{\scr@fnt@section}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{section}}^^A
+% \begin{KOMAfont}{subsection}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsection}}^^A
+% \begin{macro}{\scr@fnt@subsection}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsection}}^^A
+% \begin{KOMAfont}{subsubsection}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsubsection}}^^A
+% \begin{macro}{\scr@fnt@subsubsection}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsubsection}}^^A
+% \begin{KOMAfont}{paragraph}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{paragraph}}^^A
+% \begin{macro}{\scr@fnt@paragraph}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{paragraph}}^^A
+% \begin{KOMAfont}{subparagraph}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subparagraph}}^^A
+% \begin{macro}{\scr@fnt@subparagraph}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subparagraph}}^^A
+% \begin{KOMAfont}{minisec}
+% \changes{v2.8o}{2001/09/14}{neuer Ersatz für das Element
+% \texttt{minisec}}^^A
+% \changes{v2.96a}{2007/01/08}{Alias für das Element \texttt{minisec}^^A
+% entfernt, da es nun ein eigenes Element ist}^^A
+% Definition der Elemente der Gliederung, deren Schrift geändert
+% werden kann.
+% \begin{macrocode}
+\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}^^A minisec
+% \end{macro}
+% \end{KOMAfont}
+% \end{macro}
+% \end{KOMAfont}
+% \end{macro}
+% \end{KOMAfont}
+% \end{macro}
+% \end{KOMAfont}
+% \end{macro}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{sectionentry}
+% \changes{v2.97c}{2007/06/21}{neues Font-Element}^^A
+% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch
+% \texttt{disposition} ersetzt}^^A
+% 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}^^A
+% Schrift für die Seitenzahl des \cs{section}-Eintrags im Inhaltsverzeichnis
+% abweichend von \texttt{sectionentry}.
+% \begin{macrocode}
+\newkomafont{sectionentrypagenumber}{}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{sectionentrydots}
+% \changes{v3.15}{2014/12/10}{neues Font-Element}^^A
+% Schrift für die optionalen Pünktchen des \cs{section}-Eintrags im
+% Inhaltsverzeichnis abweichend von \texttt{sectionentrypagenumber}.
+% \begin{macrocode}
+\newkomafont{sectionentrydots}{\normalfont}
+%</article>
+% \end{macrocode}
+% \end{KOMAfont}
+%
+%
+% \begin{macro}{\partnumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}^^A
+% \changes{v3.18}{2015/05/24}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\chapternumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}^^A
+% \changes{v3.18}{2015/05/20}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\sectionnumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}^^A
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subsectionnumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}^^A
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subsubsectionnumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}^^A
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\paragraphnumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}^^A
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subparagraphnumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}^^A
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% 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{macro}{\parttocdepth}
+% \changes{v3.15}{2014/12/22}{neue Anweisung}^^A
+% \changes{v3.18}{2015/05/25}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\chaptertocdepth}
+% \changes{v3.15}{2014/12/22}{neue Anweisung}^^A
+% \changes{v3.18}{2015/05/20}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\sectiontocdepth}
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subsectiontocdepth}
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subsubsectiontocdepth}
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\paragraphtocdepth}
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subparagraphtocdepth}
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% Diese dürfen nur gelesen, sollten aber nie umdefiniert werden und geben die
+% Verzeichnisebene der Gliederungsanweisungen an.
+% \begin{macro}{\part}
+% \changes{v3.18}{2015/05/25}{Verwendung von \cs{DeclareSectionCommand}}^^A
+% \changes{v3.26}{2018/06/27}{Definition nach \cs{section} verschoben (wegen
+% bookmark level fix)}^^A
+% \begin{macro}{\chapter}
+% \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt
+% \texttt{plain}}^^A
+% \changes{v3.18}{2015/05/20}{Verwendung von \cs{DeclareSectionCommand}}^^A
+% Als Besonderheit werden für \cs{chapter} nur diejenigen Werte gesetzt, die
+% nicht über Optionen eingestellt werden können und daher vorab deklariert
+% werden müssen. Bei den Anweisungen der unteren Ebenen werden hingegen alle
+% Einstellungen über \cs{DeclareSectionCommand} vorgenommen.
+% \begin{macro}{\section}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
+% \cs{size@section} aufgerufen}^^A
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
+% behebt einen Bug im color Paket}^^A
+% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
+% von Option \texttt{version})}^^A
+% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}^^A
+% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subsection}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
+% \cs{size@subsection} aufgerufen}^^A
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
+% behebt einen Bug im color Paket}^^A
+% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
+% von Option \texttt{version})}^^A
+% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}^^A
+% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subsubsection}
+% \changes{v2.3d}{1995/08/19}{wird bei \texttt{scrartcl} nun
+% ebenfalls numeriert und ins Inhaltsverzeichnis geschrieben}^^A
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
+% \cs{size@subsubsection} aufgerufen}^^A
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
+% behebt einen Bug im color Paket}^^A
+% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
+% von Option \texttt{version})}^^A
+% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}^^A
+% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\paragraph}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
+% \cs{size@paragraph} aufgerufen}^^A
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
+% behebt einen Bug im color Paket}^^A
+% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}^^A
+% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subparagraph}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
+% \cs{size@subparagraph} aufgerufen}^^A
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
+% behebt einen Bug im color Paket}^^A
+% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}^^A
+% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}^^A
+% \changes{v3.15}{2014/11/24}{\cs{parindent} durch \cs{scr@parindent}
+% ersetzt}^^A
+% Die Standardgliederungsbefehle \cs{section} bis \cs{subparagraph}
+% sind seit \KOMAScript{} v3.15 über die von \KOMAScript{} bereitgestellte
+% Schnittstelle \cs{DeclareSectionCommand} definiert.
+% \begin{macrocode}
+%<*book|report>
+\DeclareSectionCommand[%
+ style=chapter,%
+ level=\z@,%
+ pagestyle=plain,%
+ tocstyle=chapter,%
+ tocindent=\z@,%
+ tocnumwidth=1.5em%
+]{chapter}
+%</book|report>
+\DeclareSectionCommand[%
+ style=section,%
+ level=1,%
+ indent=\z@,%
+ beforeskip=-3.5ex \@plus -1ex \@minus -.2ex,%
+ afterskip=2.3ex \@plus.2ex,%
+ tocstyle=section,%
+%<article> tocindent=0pt,%
+%<book|report> tocindent=1.5em,%
+%<article> tocnumwidth=1.5em%
+%<book|report> tocnumwidth=2.3em%
+]{section}
+\DeclareSectionCommand[%
+ style=part,%
+%<article> level=\z@,%
+%<report|book> level=\m@ne,%
+%<report|book> pagestyle=plain,%
+ tocstyle=part,%
+ toclevel=\m@ne,%
+ tocindent=\z@,%
+ tocnumwidth=2em%
+]{part}
+\DeclareSectionCommand[%
+ style=section,%
+ level=2,%
+ indent=\z@,%
+ beforeskip=-3.25ex\@plus -1ex \@minus -.2ex,%
+ afterskip=1.5ex \@plus .2ex,%
+%<article> tocstyle=subsection,%
+%<book|report> tocstyle=section,%
+%<article> tocindent=1.5em,%
+%<book|report> tocindent=3.8em,%
+%<article> tocnumwidth=2.3em%
+%<book|report> tocnumwidth=3.2em%
+]{subsection}
+\DeclareSectionCommand[%
+ style=section,%
+ level=3,%
+ indent=\z@,%
+ beforeskip=-3.25ex\@plus -1ex \@minus -.2ex,%
+ afterskip=1.5ex \@plus .2ex,%
+%<article> tocstyle=subsection,%
+%<book|report> tocstyle=section,%
+%<article> tocindent=3.8em,%
+%<book|report> tocindent=7.0em,%
+%<article> tocnumwidth=3.2em%
+%<book|report> tocnumwidth=4.1em%
+]{subsubsection}
+\DeclareSectionCommand[%
+ style=section,%
+ level=4,%
+ indent=\z@,%
+ beforeskip=3.25ex \@plus1ex \@minus.2ex,%
+ afterskip=-1em,%
+%<article> tocstyle=subsection,%
+%<book|report> tocstyle=section,%
+%<article> tocindent=7.0em,%
+%<book|report> tocindent=10em,%
+%<article> tocnumwidth=4.1em%
+%<book|report> tocnumwidth=5em%
+]{paragraph}
+\DeclareSectionCommand[%
+ style=section,%
+ level=5,%
+ indent=\scr@parindent,%
+ beforeskip=3.25ex \@plus1ex \@minus .2ex,%
+ afterskip=-1em,%
+%<article> tocstyle=subsection,%
+%<book|report> tocstyle=section,%
+%<article> tocindent=10em,%
+%<book|report> tocindent=12em,%
+%<article> tocnumwidth=5em%
+%<book|report> tocnumwidth=6em%
+]{subparagraph}
+\expandafter\ifnum\scr@v@is@lt{3.15}\relax
+ \let\scr@subparagraph@sectionindent\parindent
+\else
+ \def\scr@subparagraph@sectionindent{\scr@parindent}%
+\fi
+%</body>
+%</class>
+% \end{macrocode}
+% \end{macro}^^A \subparagraph
+% \end{macro}^^A \paragraph
+% \end{macro}^^A \subsubsection
+% \end{macro}^^A \subsection
+% \end{macro}^^A \section
+% \end{macro}^^A \chapter
+% \end{macro}^^A \part
+% \end{macro}^^A \subparargraphtocdepth
+% \end{macro}^^A \paragraphtocdepth
+% \end{macro}^^A \subsubsectiontocdepth
+% \end{macro}^^A \subsectiontocdepth
+% \end{macro}^^A \sectiontocdepth
+% \end{macro}^^A \chaptertocdepth
+% \end{macro}^^A \parttocdepth
+% \end{macro}^^A \subparargraphnumdepth
+% \end{macro}^^A \paragraphnumdepth
+% \end{macro}^^A \subsubsectionnumdepth
+% \end{macro}^^A \subsectionnumdepth
+% \end{macro}^^A \sectionnumdepth
+% \end{macro}^^A \chapternumdepth
+% \end{macro}^^A \partnumdepth
+%
+%
+% \subsection{Font und Größeneinstellungen}
+%
+% Die Einstellungen für die einzelnen Ebenen werden bei den Definitonen der
+% Ebenen vorgenommen. Hier gibt es nur Einstellungen, die nicht einer
+% einzelnen Ebene zugeordnet sind.
+%
+% \begin{KOMAfont}{disposition}
+% \changes{v2.95b}{2006/07/30}{neues Element \texttt{disposition}}^^A
+% \begin{KOMAfont}{sectioning}
+% \begin{macro}{\scr@fnt@disposition}
+% \changes{v2.95b}{2006/07/30}{neues Element \texttt{disposition}}^^A
+% \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
+% \changes{v3.20}{2016/01/29}{\cs{sffamily} durch \cs{@gr@gsffamily}
+% ersetzt}^^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}
+%<*prepare>
+\newcommand*{\sectfont}{\normalcolor\@gr@gsffamily\bfseries}
+%</prepare>
+%<*body>
+\newcommand*{\scr@fnt@disposition}{\sectfont}
+\aliaskomafont{sectioning}{disposition}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \sectfont
+% \end{macro}^^A \scr@fnt@disposition
+% \end{KOMAfont}^^A sectioning
+% \end{KOMAfont}^^A disposition
+%
+%
+% \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
+% \changes{v3.15}{2014/11/24}{\cs{scr@chapter@beforeskip} und
+% \cs{scr@chapter@afterskip} werden verwendet}^^A
+% \changes{v3.17}{2015/03/09}{interne Speicherung des Wert}^^A
+% \changes{v3.18}{2015/05/20}{Werte für \cs{scr@chapter@beforeskip}
+% negiert}^^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}
+%<*class>
+%<*option>
+\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},%
+%</book|report>
+ {optiontotocandhead}{10},{optiontoheadandtoc}{10},%
+ {optiontotoc}{11},%
+ {optiontohead}{12},%
+ {standardclasses}{13}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifcase \@tempa\relax% big
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{big}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{normal}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{small}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{standardclasses}%
+ \KOMA@kav@add{.\KOMAClassFileName}{headings}{big}%
+% \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!
+%
+% Hinweis: Es wurde |+\baselineskip+\parskip| hinzugefügt, um
+% Kompatibilitätsprobleme zu vermeiden. Die entsprechenden Werte werden in der
+% Präambel aber wieder abgezogen, um Überschriften wirklich mit
+% |beforeskip=0pt| an den oberen Rand zu bekommen.
+% \begin{macrocode}
+%<*book|report>
+ \renewcommand*{\scr@chapter@beforeskip}{-3.3\baselineskip-\parskip}%
+ \renewcommand*{\scr@chapter@afterskip}{%
+ 1.725\baselineskip \@plus .115\baselineskip \@minus .192\baselineskip
+ }%
+ \renewcommand*{\scr@chapter@innerskip}{.5\baselineskip}%
+ \renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
+ \renewcommand*{\chapterheadendvskip}{%
+ \expandafter\ifnum\scr@v@is@lt{3.15}\vspace\@tempskipa
+ \else\vskip\@tempskipa\fi
+ }%
+ \renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}%
+%</book|report>
+ \renewcommand*{\size@part}{\Huge}%
+ \renewcommand*{\size@partnumber}{\huge}%
+%<book|report> \renewcommand*{\size@chapter}{\huge}%
+%<book|report> \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 % normal
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{big}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{normal}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{small}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{standardclasses}%
+ \KOMA@kav@add{.\KOMAClassFileName}{headings}{normal}%
+%<*book|report>
+ \renewcommand*{\scr@chapter@beforeskip}{-3\baselineskip-\parskip}%
+ \renewcommand*{\scr@chapter@afterskip}{%
+ 1.5\baselineskip \@plus .1\baselineskip \@minus .167\baselineskip
+ }%
+ \renewcommand*{\scr@chapter@innerskip}{.5\baselineskip}%
+ \renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
+ \renewcommand*{\chapterheadendvskip}{%
+ \expandafter\ifnum\scr@v@is@lt{3.15}\vspace\@tempskipa
+ \else\vskip\@tempskipa\fi
+ }%
+ \renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}%
+%</book|report>
+ \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}%
+%</book|report>
+%<*article>
+ \renewcommand*{\size@section}{\large}%
+ \renewcommand*{\size@subsection}{\normalsize}%
+%</article>
+ \renewcommand*{\size@subsubsection}{\normalsize}%
+ \renewcommand*{\size@paragraph}{\normalsize}%
+ \renewcommand*{\size@subparagraph}{\normalsize}%
+ \or % small
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{big}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{normal}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{small}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{standardclasses}%
+ \KOMA@kav@add{.\KOMAClassFileName}{headings}{small}%
+%<*book|report>
+ \renewcommand*{\scr@chapter@beforeskip}{-2.8\baselineskip-\parskip}%
+ \renewcommand*{\scr@chapter@afterskip}{%
+ 1.35\baselineskip \@plus 0.09\baselineskip \@minus .15\baselineskip
+ }%
+ \renewcommand*{\scr@chapter@innerskip}{.5\baselineskip}%
+ \renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
+ \renewcommand*{\chapterheadendvskip}{%
+ \expandafter\ifnum\scr@v@is@lt{3.15}\vspace\@tempskipa
+ \else\vskip\@tempskipa\fi
+ }%
+ \renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}%
+%</book|report>
+ \renewcommand*{\size@part}{\LARGE}%
+ \renewcommand*{\size@partnumber}{\LARGE}%
+%<*book|report>
+ \renewcommand*{\size@chapter}{\Large}%
+ \renewcommand*{\size@chapterprefix}{\size@chapter}%
+ \renewcommand*{\size@section}{\large}%
+%</book|report>
+%<*article>
+ \renewcommand*{\size@section}{\normalsize}%
+%</article>
+ \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 % openany
+%<*book|report>
+ \KOMAoptions{open=any}%
+%</book|report>
+ \or % openright
+%<*book|report>
+ \KOMAoptions{open=right}%
+%</book|report>
+ \or % openleft
+%<*book|report>
+ \KOMAoptions{open=left}%
+%</book|report>
+% \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 % twolinechapter
+%<*book|report>
+ \KOMAoptions{chapterprefix=true}%
+%</book|report>
+ \or % onelinechapter
+%<*book|report>
+ \KOMAoptions{chapterprefix=false}%
+%</book|report>
+ \or % twolineappendix
+%<*book|report>
+ \KOMAoptions{appendixprefix=true}%
+%</book|report>
+ \or % onelineappend
+%<*book|report>
+ \KOMAoptions{appendixprefix=false}%
+%</book|report>
+% \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 % optiontotocandhead
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotocandhead}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontohead}%
+ \KOMA@kav@add{.\KOMAClassFileName}{headings}{optiontotocandhead}%
+ \scr@activate@xsection{3}%
+ \or % optiontotoc
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotocandhead}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontohead}%
+ \KOMA@kav@add{.\KOMAClassFileName}{headings}{optiontotoc}%
+ \scr@activate@xsection{2}%
+ \or % optiontohead
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotocandhead}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotoc}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontohead}%
+ \KOMA@kav@add{.\KOMAClassFileName}{headings}{optiontohead}%
+ \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 % standardclasses
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{big}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{normal}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{small}%
+ \KOMA@kav@remove{.\KOMAClassFileName}{headings}{standardclasses}%
+ \KOMA@kav@add{.\KOMAClassFileName}{headings}{standardclasses}%
+%<*book|report>
+ \renewcommand*{\scr@chapter@beforeskip}{-50\p@}%
+ \renewcommand*{\scr@chapter@afterskip}{40\p@}%
+ \renewcommand*{\scr@chapter@innerskip}{20\p@}%
+ \renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
+ \renewcommand*{\chapterheadendvskip}{\vskip\@tempskipa}%
+ \renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}%
+ \renewcommand*{\size@part}{\Huge}%
+ \renewcommand*{\size@partnumber}{\huge}%
+ \renewcommand*{\size@chapter}{\Huge}%
+ \renewcommand*{\size@chapterprefix}{\huge}%
+%</book|report>
+%<*article>
+ \renewcommand*{\size@part}{\huge}%
+ \renewcommand*{\size@partnumber}{\Large}%
+%</article>
+ \renewcommand*{\size@section}{\Large}%
+ \renewcommand*{\size@subsection}{\large}%
+ \renewcommand*{\size@subsubsection}{\normalsize}%
+ \renewcommand*{\size@paragraph}{\normalsize}%
+ \renewcommand*{\size@subparagraph}{\normalsize}%
+ \renewcommand*{\sectfont}{\bfseries}%
+%<book|report> \KOMAoptions{open=right,chapterprefix=true}%
+ \fi
+ \fi
+}
+\KOMA@kav@add{.\KOMAClassFileName}{headings}{big}
+%<book|report>\KOMA@kav@add{.\KOMAClassFileName}{headings}{onelinechapter}
+% \end{macrocode}
+% \end{option}^^A headings
+%
+% \begin{option}{bigheadings}
+% \changes{v2.3h}{1996/01/20}{neue Option}^^A
+% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei
+% Verwendung des alten, falschen Namens wird ein Fehler
+% ausgegeben}^^A
+% \changes{v2.98c}{2008/03/10}{obsolet}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{macro}{\@bigheadings}
+% \changes{v2.98c}{2008/03/10}{entfernt}^^A
+% \begin{option}{normalheadings}
+% \changes{v2.3h}{1996/01/20}{neue Option}^^A
+% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei
+% Verwendung des alten, falschen Namens wird ein Fehler
+% ausgegeben}^^A
+% \changes{v2.98c}{2008/03/10}{obsolet}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{macro}{\@normalheadings}
+% \changes{v2.98c}{2008/03/10}{entfernt}^^A
+% \begin{option}{smallheadings}
+% \changes{v2.3h}{1996/01/20}{neue Option}^^A
+% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei
+% Verwendung des alten, falschen Namens wird ein Fehler
+% ausgegeben}^^A
+% \changes{v2.98c}{2008/03/10}{obsolet}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% \begin{macro}{\@smallheadings}
+% \changes{v2.98c}{2008/03/10}{entfernt}^^A
+% \begin{macrocode}
+\KOMA@DeclareDeprecatedOption{bigheadings}{headings=big}
+\KOMA@DeclareDeprecatedOption{normalheadings}{headings=normal}
+\KOMA@DeclareDeprecatedOption{smallheadings}{headings=small}
+%</option>
+%</class>
+% \end{macrocode}
+% \end{macro}^^A \@smallheadings
+% \end{option}^^A smallheadings
+% \end{macro}^^A \@normalheadings
+% \end{option}^^A normalheadings
+% \end{macro}^^A \@bigheadings
+% \end{option}^^A bigheadings
+%
+%
+% \iffalse
+%</!letter>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-sections.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% coding: iso-latin-1
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-title.dtx b/macros/latex/contrib/koma-script/source/scrkernel-title.dtx
new file mode 100644
index 0000000000..4aa076b934
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-title.dtx
@@ -0,0 +1,1071 @@
+% \CheckSum{974}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-title.dtx
+% Copyright (c) Markus Kohm, 2002-2019
+%
+% 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-2019
+%
+% 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 3052 2019-01-01 12:47:38Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2019-01-01 13:47:38 +0100 (Tue, 01 Jan 2019) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1638 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-title.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source (title pages)]
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \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}}^^A
+% \changes{v3.17}{2015/03/10}{interne Speicherung des Werts}^^A
+% \begin{option}{notitlepage}
+% \changes{v2.95c}{2006/08/21}{Option ist obsolet}^^A
+% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A
+% 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
+%<article>\@titlepagefalse
+%<report|book>\@titlepagetrue
+%</class>
+% \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
+ }{}%
+%</package&extend>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+%<*class|package>
+%<class>\newif\if@titlepageiscoverpage
+\KOMA@key{titlepage}[true]{%
+%<!(package&extend)> \ifstr{#1}{firstiscover}{%
+%<package&extend> \ifstr{##1}{firstiscover}{%
+ \@titlepagetrue
+ \@titlepageiscoverpagetrue
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{titlepage}{firstiscover}%
+ }{%
+ \def\FamilyElseValue{, `firstiscover'}%
+%<!(package&extend)> \KOMA@set@ifkey{titlepage}{@titlepage}{#1}%
+%<package&extend> \KOMA@set@ifkey{titlepage}{@titlepage}{##1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \KOMA@kav@remove{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{titlepage}{firstiscover}%
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{titlepage}{@titlepage}%
+ \@titlepageiscoverpagefalse
+ \fi
+ }%
+}
+\KOMA@kav@xadd{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+}{titlepage}{\if@titlepage true\else false\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
+ }%
+}
+%</extend>
+%</class|package>
+\KOMA@DeclareStandardOption%
+%<package> [scrextend]%
+ {notitlepage}{titlepage=false}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{abstract}
+% \changes{v2.95c}{2006/08/21}{neue \textsf{keyval}-Option}^^A
+% \begin{option}{abstracton}
+% \changes{v2.95c}{2006/08/21}{Option ist obsolet}^^A
+% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A
+% \begin{option}{abstractoff}
+% \changes{v2.95c}{2006/08/21}{Option ist obsolet}^^A
+% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A
+% 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}
+% \changes{v3.17}{2015/03/10}{wird von \cs{KOMA@ifkey} definiert}^^A
+% \begin{macro}{\@abstrttrue}
+% \begin{macro}{\@abstrtfalse}
+% Die Enscheidung, ob der Titel der Zusammenfassung gesetzt werden soll, wird
+% in einem Schalter gespeichert.
+% \begin{macrocode}
+\KOMA@ifkey{abstract}{@abstrt}
+\KOMA@DeclareStandardOption{abstracton}{abstract=true}
+\KOMA@DeclareStandardOption{abstractoff}{abstract=false}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+% \end{option}
+% \end{option}
+% \iffalse
+%</article|report>
+%</class>
+% \fi
+%
+%
+% \iffalse
+%</option>
+%<*body>
+% \fi
+%
+%
+% \subsection{Definitionen der Titelei}
+%
+% \begin{macro}{\extratitle}
+% \begin{macro}{\@extratitle}
+% \begin{macro}{\frontispiece}
+% \changes{v3.25}{2017/11/21}{neu}
+% \begin{macro}{\@frontispiece}
+% \changes{v3.25}{2017/11/21}{neu (intern)}
+% \begin{macro}{\titlehead}
+% \begin{macro}{\@titlehead}
+% \begin{macro}{\subject}
+% \begin{macro}{\@subject}
+% \begin{macro}{\subtitle}
+% \changes{v2.97c}{2007/06/20}{neue Möglichkeit}^^A
+% \begin{macro}{\@subtitle}
+% \changes{v2.97c}{2007/06/20}{neu (intern)}^^A
+% \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}
+%<package&extend>\scr@ext@addto@activateable{title}{%
+\newcommand*{\@extratitle}{}%
+\newcommand{\extratitle}[1]{\gdef\@extratitle{%
+%<extend> ##1%
+%<!extend> #1%
+}}%
+\newcommand*{\@frontispiece}{}%
+\newcommand{\frontispiece}[1]{\gdef\@frontispiece{%
+%<extend> ##1%
+%<!extend> #1%
+}}%
+\newcommand*{\@titlehead}{}%
+\newcommand{\titlehead}[1]{\gdef\@titlehead{%
+%<extend> ##1%
+%<!extend> #1%
+}}%
+\newcommand*{\@subject}{}%
+\newcommand*{\subject}[1]{\gdef\@subject{%
+%<extend> ##1%
+%<!extend> #1%
+}}%
+\newcommand*{\subtitle}[1]{\gdef\@subtitle{%
+%<extend> ##1%
+%<!extend> #1%
+}}%
+\newcommand*{\@subtitle}{}%
+\newcommand*{\@publishers}{}%
+\newcommand{\publishers}[1]{\gdef\@publishers{%
+%<extend> ##1%
+%<!extend> #1%
+}}%
+\newcommand*{\@uppertitleback}{}%
+\newcommand{\uppertitleback}[1]{\gdef\@uppertitleback{%
+%<extend> ##1%
+%<!extend> #1%
+}}%
+\newcommand*{\@lowertitleback}{}%
+\newcommand{\lowertitleback}[1]{\gdef\@lowertitleback{%
+%<extend> ##1%
+%<!extend> #1%
+}}%
+\newcommand*{\@dedication}{}%
+\newcommand{\dedication}[1]{\gdef\@dedication{%
+%<extend> ##1%
+%<!extend> #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}
+%
+% \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}^^A
+% \changes{v3.11c}{2013/02/14}{Fußnoten für die nächste Titelseite
+% initialisieren}^^A
+% \changes{v3.20}{2015/10/14}{\cs{setparsizes} bzw. entsprechende Angaben
+% für die Längen eingefügt}^^A
+% \begin{macro}{\next@tdpage}
+% \changes{v3.11c}{2013/02/14}{neue Anweisung (intern)}^^A
+% \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
+%<!extend> \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+%<extend> \parskip\z@ \parindent\z@ \parfillskip\z@\@plus 1fil
+ \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}^^A
+% \changes{v3.11c}{2013/02/14}{Verwendung von \cs{next@tdpage}}^^A
+% 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)}^^A
+% \changes{v2.3a}{1995/07/08}{\texttt{plus} durch \cs{@plus}
+% ersetzt}^^A
+% \changes{v2.3a}{1995/07/08}{\texttt{fill} durch \cs{fill}
+% ersetzt}^^A
+% \changes{v2.3d}{1995/08/19}{\cs{fill} durch \texttt{fill}
+% ersetzt}^^A
+% \changes{v2.3a}{1995/07/08}{\cs{vfil} durch \cs{vfill} ersetzt}^^A
+% \changes{v2.3b}{1995/07/24}{Umbruch bei \cs{@extratitle} in der
+% beidseitigen Titelseite korrigiert}^^A
+% \changes{v2.3g}{1996/01/14}{\cs{footnote} funktioniert nun auch
+% im Titel}^^A
+% \changes{v2.4}{1996/02/25}{\cs{footnote} funktioniert nun
+% wirklich im Titel}^^A
+% \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}^^A
+% \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}^^A
+% \changes{v2.8p}{2001/09/22}{\cs{titlefont} an Stelle von
+% \cs{sectfont}}^^A
+% \changes{v2.95c}{2006/08/21}{Absatzgrundeinstellungen}^^A
+% \changes{v2.97c}{2007/08/31}{Vakatseiten in der Titelei immer im
+% Seitenstil \texttt{empty}}^^A
+% \changes{v3.04a}{2009/07/14}{die Unterscheidung, ob Titelseite oder
+% Titelkopf sollte erst in \cs{maketitle} und nicht schon bei dessen
+% Definition erfolgen}^^A
+% \changes{v3.12}{2013/05/29}{Verwendung neuer Font-Elemente
+% \texttt{titlehead}, \texttt{author}, \texttt{date}, \texttt{publishers},
+% \texttt{dedication}}^^A
+% \changes{v3.25}{2017/11/21}{Verwendung von \cs{@frontispiece}}^^A
+% \begin{macrocode}
+%<package&extend>\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}{%
+%<extend> ##1%
+%<!extend> #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
+ \ifx\@frontispiece\@empty
+ \else
+ \if@twoside\mbox{}\next@tpage\fi
+ \noindent\@frontispiece\next@tdpage
+ \fi
+ \else
+ \noindent\@extratitle
+ \ifx\@frontispiece\@empty
+ \else
+ \next@tpage
+ \noindent\@frontispiece
+ \fi
+ \next@tdpage
+ \fi
+%<!extend> \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+%<extend> \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
+% \end{macrocode}
+% \changes{v3.27}{2019/01/01}{Warnung für nicht leere Titelrückseite bei
+% einseitigen Dokumenten}^^A
+% Bei einseitigen Dokumenten werden eventuell gesetzte Inhalte von
+% \cs{uppertitleback} oder \cs{lowertitleback} nicht ausgegeben.
+% \begin{macrocode}
+ \else
+ \ifx\@uppertitleback\@empty\else
+%<package> \PackageWarning{scrextend}{%
+%<class> \ClassWarning{\KOMAClassName}{%
+ non empty \string\uppertitleback\space ignored
+ by \string\maketitle\MessageBreak
+ in `twoside=false' mode%
+ }%
+ \fi
+ \ifx\@lowertitleback\@empty\else
+%<package> \PackageWarning{scrextend}{%
+%<class> \ClassWarning{\KOMAClassName}{%
+ non empty \string\lowertitleback\space ignored
+ by \string\maketitle\MessageBreak
+ in `twoside=false' mode%
+ }%
+ \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}}^^A
+% \changes{v2.3a}{1995/07/08}{Definition von \cs{@makefnmark} und
+% \cs{@makefntext} unabhängig von math}^^A
+% \changes{v2.3e}{1995/08/30}{optionales Argument bei der
+% einseitigen Version erlauben und ignorieren}^^A
+% \changes{v2.3g}{1996/01/14}{mehrfach \cs{null} bei
+% \cs{next@tpage} ergänzt}^^A
+% \changes{v2.4l}{1997/02/06}{es ist nicht mehr notwendig
+% \cs{\@makefntext} umzudefinieren, stattdessen wird nur
+% \cs{\@makefnmark} umdefiniert}^^A
+% \changes{v2.8d}{2001/07/05}{\cs{titlepagestyle} statt
+% \texttt{plain}}^^A
+% \changes{v3.12a}{2014/03/03}{Leerzeichenfehler behoben}^^A
+% \changes{v3.12a}{2014/03/03}{Schmutztitel wird nur ausgegeben, wenn er
+% nicht leer ist}^^A
+% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} aus \cs{@maketitle} und
+% \cs{@makeextrattitle} entfernt}^^A
+% \changes{v3.19}{2015/08/25}{Seitenstil nur ändern wenn nicht leer}^^A
+% \begin{macrocode}
+ \else
+ \par
+ \@tempcnta=%
+%<extend> ##1%
+%<!extend> #1%
+ \relax\ifnum\@tempcnta=1\else
+%<class> \ClassWarning{\KOMAClassName}{%
+%<package> \PackageWarning{scrextend}{%
+ Optional argument of \string\maketitle\space ignored\MessageBreak
+ in `titlepage=false' mode%
+ }%
+ \fi
+ \ifx\@uppertitleback\@empty\else
+%<package> \PackageWarning{scrextend}{%
+%<class> \ClassWarning{\KOMAClassName}{%
+ non empty \string\uppertitleback\space ignored
+ by \string\maketitle\MessageBreak
+ in `titlepage=false' mode%
+ }%
+ \fi
+ \ifx\@lowertitleback\@empty\else
+%<package> \PackageWarning{scrextend}{%
+%<class> \ClassWarning{\KOMAClassName}{%
+ non empty \string\lowertitleback\space ignored
+ by \string\maketitle\MessageBreak
+ in `titlepage=false' 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
+ \ifx\@extratitle\@empty
+ \ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi
+ \else
+ \@makeextratitle
+ \fi
+ \ifx\@frontispiece\@empty
+ \ifx\@extratitle\@empty\else\next@tdpage\fi
+ \else
+ \next@tpage
+ \@makefrontispiece
+ \next@tdpage
+ \fi
+ \@maketitle
+ \else
+ \ifx\@extratitle\@empty
+ \ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi
+ \else
+ \twocolumn[\@makeextratitle]%
+ \fi
+ \ifx\@frontispiece\@empty
+ \ifx\@extratitle\@empty\else\next@tdpage\fi
+ \else
+ \next@tpage
+ \twocolumn[\@makefrontispiece]%
+ \next@tdpage
+ \fi
+ \twocolumn[\@maketitle]%
+ \fi
+ \else
+ \ifx\@extratitle\@empty
+ \ifx\@frontispiece\@empty\else \mbox{}\fi
+ \else
+ \@makeextratitle
+ \fi
+ \ifx\@frontispiece\@empty
+ \ifx\@extratitle\@empty\else\next@tdpage\fi
+ \else
+ \next@tpage
+ \@makefrontispiece
+ \next@tdpage
+ \fi
+ \@maketitle
+ \fi
+ \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi
+ \@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}^^A
+% \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\@frontispiece\@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}^^A
+% \changes{v3.11c}{2012/02/14}{Schmutztitel in eigene Anweisung verlagert}^^A
+% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} aus \cs{@maketitle}
+% entfernt}^^A
+% \begin{macro}{\@makeextratitle}
+% \changes{v3.11c}{2013/02/14}{neue Anweisung (intern)}^^A
+% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} aus \cs{@makeextrattitle}
+% entfernt}^^A
+% Damit wird im Fall des Titelkopfes die eigentliche Arbeit geleistet.
+% \begin{macro}{\@makefrontispiece}
+% \changes{v3.25}{2017/11/21}{neu}^^A
+% \begin{macrocode}
+\newcommand*{\@makeextratitle}{%
+ \ifx\@extratitle\@empty \else
+ \noindent\@extratitle\par
+ \fi
+}
+\newcommand*{\@makefrontispiece}{%
+ \ifx\@frontispiece\@empty \else
+ \noindent\@frontispiece\par
+ \fi
+}
+\newcommand*{\@maketitle}{%
+ \global\@topnum=\z@
+%<!extend> \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+%<extend> \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}
+% \end{macro}
+%
+% \begin{macro}{\coverpagetopmargin}
+% \changes{v3.12}{2013/11/21}{neu}^^A
+% 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}^^A
+% 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}^^A
+% 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}^^A
+% 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}
+%<package&extend>\scr@ifundefinedorrelax{titlepage}{%
+\newenvironment{titlepage}{%
+%<report|book> \cleardoublepage
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse\newpage
+ \fi
+ \thispagestyle{empty}%
+ \if@compatibility
+ \setcounter{page}{0}%
+ \fi
+}{%
+ \if@restonecol\twocolumn \else \newpage \fi
+}%
+%<package&extend>}{}%
+% \end{macrocode}
+% \end{environment}
+%
+% Im Fall von \textsf{scrextend} muss jetzt das Kürzel \emph{title} beendet
+% werden:
+% \begin{macrocode}
+%<package&extend>}\csname scr@ext@immediate@title\endcsname
+% \end{macrocode}
+%
+% \subsection{Fonts für den Titel}
+%
+% \begin{macro}{\titlefont}
+% \changes{v2.8p}{2001/09/22}{neu}^^A
+% 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)}^^A
+% \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}^^A
+% \begin{macrocode}
+\newkomafont{subtitle}{\usekomafont{title}\large}%
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{titlehead}
+% \changes{v3.12}{2013/05/29}{neu}^^A
+% \begin{macrocode}
+\newkomafont{titlehead}{}%
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{author}
+% \changes{v3.12}{2013/05/29}{neu}^^A
+% \begin{macrocode}
+\newkomafont{author}{\Large}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{date}
+% \changes{v3.12}{2013/05/29}{neu}^^A
+% \begin{macrocode}
+\newkomafont{date}{\Large}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{publishers}
+% \changes{v3.12}{2013/05/29}{neu}^^A
+% \begin{macrocode}
+\newkomafont{publishers}{\Large}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{dedication}
+% \changes{v3.12}{2013/05/29}{neu}^^A
+% \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}^^A
+% \changes{v2.3g}{1996/01/14}{\cs{@beginparpenalty} zur
+% Verhinderung eines Seitenumbruchs vor dem Abstract-Kopf
+% eingefügt}^^A
+% \changes{v2.7a}{2001/01/04}{statt \cs{section*} wird nun
+% \cs{addsec*} verwendet, damit die Kolumnentitel korrekt
+% behandelt werden}^^A
+% \changes{v3.04a}{2009/07/14}{die Unterscheidung, ob Titelseite oder
+% Titelkopf sollte erst in der Umgebung und nicht schon bei deren
+% Definition erfolgen}^^A
+% \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}
+% \end{environment}^^A abstract
+%
+% \begin{macro}{\abstractname}
+% Name der Zusammenfassung.
+% \begin{macrocode}
+\newcommand*\abstractname{Abstract}
+% \end{macrocode}
+% \end{macro}^^A \abstractname
+%
+% \iffalse
+%</article|report>
+%</class>
+% \fi
+%
+%
+% \iffalse
+%</body>
+% \fi
+%
+% \iffalse
+%</!letter>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-title.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-tocstyle.dtx b/macros/latex/contrib/koma-script/source/scrkernel-tocstyle.dtx
new file mode 100644
index 0000000000..04dec8e47f
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-tocstyle.dtx
@@ -0,0 +1,2090 @@
+% \CheckSum{1380}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-tocstyle.dtx
+% Copyright (c) Markus Kohm, 2015-2018
+%
+% 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-tocstyle.dtx
+% Copyright (c) Markus Kohm, 2015-2018
+%
+% 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-tocstyle.dtx 3011 2018-08-29 07:35:17Z kohm $
+% The runs of run-time file generation:
+%<preidentify>%%% (run: preidentify)
+% - everything that is needed before selfidentification of resulting files
+% (unused)
+%<identify>%%% (run: identify)
+% - everything that is needed for selfidentification of resulting files
+% (unused)
+%<prepare>%%% (run: prepare)
+% - everything that is needed to define options
+%<option>%%% (run: option)
+% - definition of options (unused)
+%<execoption>%%% (run: execoption)
+% - initial option executions up to \KOMAProcessOptions
+% (unused)
+%<body>%%% (run: body)
+% - everything, that should be done after \KOMAProcessOptions
+%<exit>%%% (run: exit)
+% - everything, that should be done immediately before leaving the file
+% (unused)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-08-29 09:35:17 +0200 (Wed, 29 Aug 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 2254 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-tocstyle.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source (TOC styles)]
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{scrdoc}
+\usepackage[english,ngerman]{babel}
+\usepackage[latin1]{inputenc}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrkernel-tocstyle.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}
+%</dtx>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \section{Verzeichnisstile}
+%
+% Verzeichnisstile werden derzeit nur in Kooperation mit Gliederungsstilen
+% untersützt. In Zukunft soll das aber mal anders werden. Dann sollen
+% Verzeichnisstile Teil der Grundfunktionalität für Verzeichnisse (Paket
+% \textsf{tocbasic}) werden und auch unabhängig von Gliederungsstilen
+% einsetzbar sein.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \changes{v3.20}{2015/11/13}{neu und nur bei Vorhandensein verwendet}
+%
+%
+% \subsection{Einstellungen unabhängig von Verzeichnisstilen und doch
+% Grundlage für diese}
+%
+% Bis \KOMAScript~3.20 waren die Befehle, die hier definiert werden, Teil der
+% KOMA-Script-Klassen. Allerdings zeigt sich, dass es für die Definition von
+% Verzeichnisstilen von Vorteil ist, wenn diese Definitionen im Paket
+% vorhanden sind.
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \begin{macro}{\numberline}
+% \changes{v3.20}{2016/03/10}{\cs{numberline} wird indirekt über
+% \cs{scr@numberline} definiert}^^A
+% \begin{macro}{\scr@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}
+%<*body>
+\newcommand*{\scr@numberline}[1]{%
+ \numberline@box{%
+ \numberline@prefix
+ \ifstr{#1}{}{#1}{%
+ \numberline@numberformat{#1}%
+ }%
+ \numberline@postfix
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\usetocbasicnumberline}
+% \changes{v3.20}{2016/03/15}{neu}^^A
+% Dieses Makro testet, ob \cs{numberline} auf \cs{scr@numberline}
+% basiert. Falls das nicht der Fall ist, führt es das optionale Argument aus
+% und führt dann eine entsprechende Umdefinierung statt. Falls es jedoch der
+% Fall ist, lässt es alles unverändert.
+% \begin{macrocode}
+\newcommand*{\usetocbasicnumberline}[1][%
+ \PackageInfo{tocbasic}{Using my definition of `\string\numberline'}%
+]{%
+ \@tempswatrue
+ \begingroup
+ \def\scr@numberline##1{\global\@tempswafalse}%
+% \end{macrocode}
+% \cs{@tempdima} ist üblicherweise bei \cs{numberline} die Breite der Nummer.
+% Damit zu kleine Werte nicht zu einem Problem werden können, nehme ich hier
+% gleich mal einen richtig großen Wert.
+% \begin{macrocode}
+ \@tempdima\maxdimen
+ \sbox\@tempboxa{\numberline{0}}%
+ \endgroup
+ \if@tempswa #1\renewcommand*{\numberline}[1]{\scr@numberline{##1}}\fi
+}
+% \end{macrocode}
+% \end{macro}^^A \usetocbasicnumberline
+% \begin{macro}{\numberline@prefix}
+% \changes{v3.06}{2010/05/18}{neu (intern)}^^A
+% 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}^^A \numberline@prefix
+% \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}^^A \numberline@postfix
+% \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}{}{}{\numberline@numberprefix#1\numberline@numberpostfix}%
+}
+% \end{macrocode}
+% \begin{macro}{\numberline@numberprefix}
+% \changes{v3.20}{2016/03/15}{neu (intern)}
+% Wird verwendet, um innerhalb von \cs{numberline@numberformat} der Nummer
+% einen Präfix voran zu stellen. Im Gegensatz zu \cs{numberline@prefix} wird
+% dieser nur ausgegeben, wenn das Argument von \cs{numberline@numberformat},
+% also auch das Argument von \cs{numberline} nicht leer ist.
+% \begin{macrocode}
+\newcommand*{\numberline@numberprefix}{}
+% \end{macrocode}
+% \end{macro}^^A \numberline@numberprefix
+% \begin{macro}{\numberline@numberpostfix}
+% \changes{v3.20}{2016/03/15}{neu (intern)}
+% Wird verwendet, um innerhalb von \cs{numberline@numberformat} der Nummer
+% einen Postfix anzuhängen. Im Gegensatz zu \cs{numberline@prefix} wird
+% dieser nur ausgegeben, wenn das Argument von \cs{numberline@numberformat},
+% also auch das Argument von \cs{numberline} nicht leer ist.
+% \begin{macrocode}
+\newcommand*{\numberline@numberpostfix}{}
+% \end{macrocode}
+% \end{macro}^^A \numberline@numberpostfix
+% \end{macro}^^A \numberline@numberformat
+% \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}}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \numberline@box
+% \end{macro}^^A \scr@numberline
+%
+% \iffalse
+%</package>
+%<*class>
+% \fi
+%
+% \begin{macrocode}
+%<*body>
+\let\numberline\scr@numberline
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \numberline
+%
+% \iffalse
+%</class>
+% \fi
+%
+% \subsection{Grundlagen für Verzeichniseintragsstile}
+%
+% Ab \KOMAScript~3.20 halten Stile Einzug in die Verzeichnisse. Der erste
+% Schritt dabei sind die Stile der Verzeichniseinträge. Jeder Stil besteht aus
+% einer Anweisung, mit der ein Verzeichnisbefehl definiert wird und
+% zugehörigen Optionen. Die Optionen dienen dazu, Einstellungen für die
+% einzelnen Verzeichnisbefehle vorzunehmen.
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \changes{v3.20}{2015/11/17}{Verzeichnisstile bekommen das
+% \texttt{KOMAarg}-Mitglied \texttt{.dte}}^^A
+% \begin{macrocode}
+%<*body>
+\DefineFamily{KOMAarg}
+\DefineFamilyMember[.dte]{KOMAarg}
+%</body>
+% \end{macrocode}
+%
+% \begin{macro}{\@DefineTOCEntryOption}
+% \changes{v3.20}{2015/04/10}{neu (intern)}
+% Die Definition der Optionen geschieht mit einer einheitlichen
+% Schnittstelle. Wichtig dabei ist, dass hier nicht tatsächlich die Optionen
+% definiert werden, sondern eine Anweisung, die ihrerseits die Optionen bei
+% Bedarf definiert. Ein solcher Bedarf besteht beispielsweise bei der
+% Definition des Eintragsbefehls selbst. Er besteht aber auch innerhalb von
+% \cs{DeclareSectionCommand}, weil diese Anweisung ebenfalls indirekt
+% Verzeichniseinträge definiert und deshalb die Optionen auswerten können
+% soll. Es gibt folgende Parameter:
+% \begin{description}
+% \item[\marg{Stil}: \meta{String},] Name des Eintragsstils
+% \item[\marg{Option}: \meta{String},] Name der Option
+% \item[\oarg{Wert}:] der Säumniswert der Option abhängig von der
+% \meta{Definition}
+% \item[\marg{Definition}: \meta{Code},] Definition der Option
+% \end{description}
+% \begin{macro}{\@DefineTOCEntryOptionWithoutDefault}
+% \changes{v3.20}{2015/11/10}{neu (intern)}
+% \begin{macro}{\@DefineTOCEntryOptionWithDefault}
+% \changes{v3.20}{2015/11/10}{neu (intern)}
+% Da mit einem optionalen Argument an Position 3 gearbeitet wird, werden zwei
+% Hilfsmakros benötigt.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\@DefineTOCEntryOption}[2]{%
+ \edef\scr@dte@doopts{%
+ \unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2}%
+ }%
+ \kernel@ifnextchar [%]
+ {\@DefineTOCEntryOptionWithDefault{#1}{#2}}%
+ {\@DefineTOCEntryOptionWithoutDefault{#1}{#2}}%
+}
+\newcommand*{\@DefineTOCEntryOptionWithoutDefault}[3]{%
+ \DefineFamilyKey[.dte]{KOMAarg}{#2}{#3}%
+}
+\newcommand*{\@DefineTOCEntryOptionWithDefault}{}
+\def\@DefineTOCEntryOptionWithDefault#1#2[#3]#4{%
+ \l@addto@macro\scr@dte@doopts{[{#3}]}%
+ \DefineFamilyKey[.dte]{KOMAarg}{#2}[{#3}]{#4}%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@DefineTOCEntryOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryOptionWithDefault
+% \end{macro}^^A \@DefineTOCEntryOption
+%
+% \begin{macro}{\@RelaxTOCEntryOptions}
+% \changes{v3.20}{2015/04/10}{neu (intern)}
+% Setzt alle Optionen der aktuellen Do-Liste zurück auf \cs{relax}.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\@RelaxTOCEntryOptions}{%
+ \begingroup
+ \def\do@endgroup{\endgroup}%
+ \def\do##1{%
+ \l@addto@macro\do@endgroup{\RelaxFamilyKey[.dte]{KOMAarg}{##1}}%
+ \scr@dte@gobbleopt
+ }%
+ \scr@dte@doopts
+ \do@endgroup
+}
+\newcommand{\scr@dte@gobbleopt}[1][]{}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@RelaxTOCEntryOptions
+%
+% \begin{macro}{\@DefineTOCEntryLengthOption}
+% \changes{v3.20}{2015/12/04}{neu (intern)}
+% Verwendet \cs{DefineTOCEntryOption}, um eine Option zu definieren, die ein
+% Längenmacro definiert. Es gibt folgende Parameter:
+% \begin{description}
+% \item[\marg{Stil}: \meta{String},] Name des Eintragsstils
+% \item[\marg{Option}: \meta{String},] Name der Option
+% \item[\oarg{Wert}:] der Säumniswert der Option
+% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros
+% \item[\marg{Postfix}: \meta{String},] Postfix des zu definierenden Makros
+% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option
+% \item[\oarg{Init}: \meta{Code},] Initialisierung der Option
+% \end{description}
+% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition
+% automatisch \cs{scr@dte@current} eingefügt.
+% \begin{macro}{\@DefineTOCEntryLengthOptionWithoutDefault}
+% \changes{v3.20}{2015/11/10}{neu (intern)}^^A
+% \begin{macro}{\@DefineTOCEntryLengthOptionWithDefault}
+% \changes{v3.20}{2015/11/10}{neu (intern)}^^A
+% \begin{macro}{\@DefineTOCEntryLengthOptionMacro}
+% \changes{v3.20}{2015/11/10}{neu (intern)}^^A
+% Da mit einem optionalen Argument an Position 3 gearbeitet wird, werden drei
+% Hilfsmakros benötigt.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\@DefineTOCEntryLengthOption}[2]{%
+ \kernel@ifnextchar [%]
+ {\@DefineTOCEntryLengthOptionWithDefault{#1}{#2}}
+ {\@DefineTOCEntryLengthOptionWithoutDefault{#1}{#2}}%
+}
+\newcommand*{\@DefineTOCEntryLengthOptionWithoutDefault}[5]{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#3}{#4}{#2}{#5}%
+ \@DefineTOCEntryOption{#1}{#2}{%
+ \@DefineTOCEntryLengthOptionMacro{#2}{#3}{#4}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryLengthOptionWithDefault}{}
+\def\@DefineTOCEntryLengthOptionWithDefault#1#2[#3]#4#5#6{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#4}{#5}{#2}{#6}%
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryLengthOptionMacro{#2}{#4}{#5}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryLengthOptionMacro}[4]{%
+ \protected@edef\reserved@a{%
+ \noexpand\FamilySetLength{KOMAarg}{#1}{\noexpand\@tempskipa}{#4}%
+ }\reserved@a
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifscr@dte@expandtopt
+ \expandafter\edef\csname #2\scr@dte@current#3\endcsname{%
+ \the\@tempskipa}%
+ \else
+ \expandafter\protected@edef\csname #2\scr@dte@current#3\endcsname{#4}%
+ \fi
+ \fi
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@DefineTOCEntryLengthOptionMacro
+% \end{macro}^^A \@DefineTOCEntryLengthOptionWithDefault
+% \end{macro}^^A \@DefineTOCEntryLengthOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryLengthOption
+%
+% \begin{macro}{\@DefineTOCEntryNumberOption}
+% \changes{v3.20}{2015/12/04}{neu (intern)}
+% Verwendet \cs{DefineTOCEntryOption}, um eine Option zu definieren, die ein
+% Nummernmacro definiert. Es gibt folgende Parameter:
+% \begin{description}
+% \item[\marg{Stil}: \meta{String},] Name des Eintragsstils
+% \item[\marg{Option}: \meta{String},] Name der Option
+% \item[\oarg{Wert}:] der Säumniswert der Option
+% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros
+% \item[\marg{Postfix}: \meta{String},] Postfix des zu definierenden Makros
+% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option
+% \item[\oarg{Init}: \meta{Code},] Initialisierung der Option
+% \end{description}
+% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition
+% automatisch \cs{scr@dte@current} eingefügt.
+% \begin{macro}{\@DefineTOCEntryNumberOptionWithoutDefault}
+% \changes{v3.20}{2015/11/12}{neu (intern)}
+% \begin{macro}{\@DefineTOCEntryNumberOptionWithDefault}
+% \changes{v3.20}{2015/11/12}{neu (intern)}
+% \begin{macro}{\@DefineTOCEntryNumberOptionMacro}
+% \changes{v3.20}{2015/11/12}{neu (intern)}
+% Da mit einem optionalen Argument an Position 3 gearbeitet wird, werden drei
+% Hilfsmakros benötigt.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\@DefineTOCEntryNumberOption}[2]{%
+ \kernel@ifnextchar [%]
+ {\@DefineTOCEntryNumberOptionWithDefault{#1}{#2}}
+ {\@DefineTOCEntryNumberOptionWithoutDefault{#1}{#2}}%
+}
+\newcommand*{\@DefineTOCEntryNumberOptionWithoutDefault}[5]{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#3}{#4}{#2}{#5}%
+ \@DefineTOCEntryOption{#1}{#2}{%
+ \@DefineTOCEntryNumberOptionMacro{#2}{#3}{#4}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryNumberOptionWithDefault}{}
+\def\@DefineTOCEntryNumberOptionWithDefault#1#2[#3]#4#5#6{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#4}{#5}{#2}{#6}%
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryNumberOptionMacro{#2}{#4}{#5}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryNumberOptionMacro}[4]{%
+ \protected@edef\reserved@a{%
+ \noexpand\FamilySetCounterMacro{KOMAarg}{#1}{%
+ \expandafter\noexpand\csname #2\scr@dte@current#3\endcsname
+ }{#4}%
+ }\reserved@a
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@DefineTOCEntryNumberOptionMacro
+% \end{macro}^^A \@DefineTOCEntryNumberOptionWithDefault
+% \end{macro}^^A \@DefineTOCEntryNumberOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryNumberOption
+%
+% \begin{macro}{\@DefineTOCEntryBooleanOption}
+% \changes{v3.20}{2015/12/04}{neu (intern)}
+% Verwendet \cs{DefineTOCEntryOption}, um eine Option zu definieren, die einen
+% Schalter definiert. Es gibt folgende Parameter:
+% \begin{description}
+% \item[\marg{Stil}: \meta{String},] Name des Eintragsstils
+% \item[\marg{Option}: \meta{String},] Name der Option
+% \item[\oarg{Wert}:] der Säumniswert der Option
+% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros
+% \item[\marg{Postfix}: \meta{String},] Postfix des zu definierenden Makros
+% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option
+% \item[\oarg{Init}: \meta{Code},] Initialisierung der Option
+% \end{description}
+% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition
+% automatisch \cs{scr@dte@current} eingefügt.
+% \begin{macro}{\@DefineTOCEntryBoolOptionWithoutDefault}
+% \changes{v3.20}{2015/11/12}{neu (intern)}
+% \begin{macro}{\@DefineTOCEntryBoolOptionWithDefault}
+% \changes{v3.20}{2015/11/12}{neu (intern)}
+% \begin{macro}{\@DefineTOCEntryBoolOptionMacro}
+% \changes{v3.20}{2015/11/12}{neu (intern)}
+% Da mit einem optionalen Argument an Position 3 gearbeitet wird, werden drei
+% Hilfsmakros benötigt.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\@DefineTOCEntryBooleanOption}[2]{%
+ \kernel@ifnextchar [%]
+ {\@DefineTOCEntryBoolOptionWithDefault{#1}{#2}}
+ {\@DefineTOCEntryBoolOptionWithoutDefault{#1}{#2}}%
+}
+\newcommand*{\@DefineTOCEntryBoolOptionWithoutDefault}[5]{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{if#3}{#4}{#2}{#5}%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#3}{#4false}{#2}{#5}%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#3}{#4false}{#2}{#5}%
+ \@DefineTOCEntryOption{#1}{#2}[true]{%
+ \@DefineTOCEntryBoolOptionMacro{#2}{#3}{#4}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryBoolOptionWithDefault}{}
+\def\@DefineTOCEntryBoolOptionWithDefault#1#2[#3]#4#5#6{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{if#4}{#5}{#2}{#6}%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#4}{#5true}{#2}{#6}%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#4}{#5false}{#2}{#6}%
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryBoolOptionMacro{#2}{#4}{#5}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryBoolOptionMacro}[4]{%
+ \@ifundefined{if#2\scr@dte@current#3}{%
+ \expandafter\newif\csname if#2\scr@dte@current#3\endcsname
+ }{}%
+ \FamilySetBool{KOMAarg}{#1}{#2\scr@dte@current#3}{#4}%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@DefineTOCEntryBoolOptionMacro
+% \end{macro}^^A \@DefineTOCEntryBoolOptionWithDefault
+% \end{macro}^^A \@DefineTOCEntryBoolOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryBooleanOption
+%
+% \begin{macro}{\@DefineTOCEntryIfOption}
+% \changes{v3.20}{2015/12/06}{neu (intern)}
+% Verwendet \cs{DefineTOCEntryOption}, um eine Option zu definieren, die eine
+% If-Anweisung definiert. Die Option selbst ist dabei eine Schalter-Option. Es
+% gibt folgende Parameter:
+% \begin{description}
+% \item[\marg{Stil}: \meta{String},] Name des Eintragsstils
+% \item[\marg{Option}: \meta{String},] Name der Option
+% \item[\oarg{Wert}:] der Säumniswert der Option
+% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros
+% \item[\marg{Postfix}: \meta{String},] Postfix des zu definierenden Makros
+% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option
+% \end{description}
+% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition
+% automatisch \cs{scr@dte@current} eingefügt.
+% \begin{macro}{\@DefineTOCEntryIfOptionWithoutDefault}
+% \changes{v3.20}{2015/11/12}{neu (intern)}
+% \begin{macro}{\@DefineTOCEntryIfOptionWithDefault}
+% \changes{v3.20}{2015/11/12}{neu (intern)}
+% \begin{macro}{\@DefineTOCEntryIfOptionMacro}
+% \changes{v3.20}{2015/11/12}{neu (intern)}
+% Da mit einem optionalen Argument an Position 3 gearbeitet wird, werden drei
+% Hilfsmakros benötigt.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\@DefineTOCEntryIfOption}[2]{%
+ \kernel@ifnextchar [%]
+ {\@DefineTOCEntryIfOptionWithDefault{#1}{#2}}
+ {\@DefineTOCEntryIfOptionWithoutDefault{#1}{#2}}%
+}
+\newcommand*{\@DefineTOCEntryIfOptionWithoutDefault}[5]{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{If#3}{#4}{#2}{#5}%
+ \@DefineTOCEntryOption{#1}{#2}[true]{%
+ \@DefineTOCEntryIfOptionMacro{#2}{#3}{#4}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryIfOptionWithDefault}{}
+\def\@DefineTOCEntryIfOptionWithDefault#1#2[#3]#4#5#6{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{If#4}{#5}{#2}{#6}%
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryIfOptionMacro{#2}{#4}{#5}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryIfOptionMacro}[4]{%
+ \FamilySetBool{KOMAarg}{#1}{@tempswa}{#4}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \expandafter\let\csname If#2\scr@dte@current#3\endcsname\@firstoftwo
+ \else
+ \expandafter\let\csname If#2\scr@dte@current#3\endcsname\@secondoftwo
+ \fi
+ \fi
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@DefineTOCEntryIfOptionMacro
+% \end{macro}^^A \@DefineTOCEntryIfOptionWithDefault
+% \end{macro}^^A \@DefineTOCEntryIfOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryIfOption
+%
+% \begin{macro}{\@DefineTOCEntryCommandOption}
+% \changes{v3.20}{2015/11/17}{neu}
+% Verwendet \cs{DefineTOCEntryOption}, um eine Option zu definieren, die ein
+% Macro definiert. Es gibt folgende Parameter:
+% \begin{description}
+% \item[\marg{Stil}: \meta{String},] Name des Eintragsstils
+% \item[\marg{Option}: \meta{String},] Name der Option
+% \item[\oarg{Wert}:] der Säumniswert der Option
+% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros
+% \item[\marg{Postfix}: \meta{String},] Postfix des zu definierenden Makros
+% \item[\oarg{Argumentzahl}: \meta{Nummer},] Anzahl der Argumente des Makros
+% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option
+% \item[\oarg{Init}: \meta{Code},] Initialisierung der Option
+% \end{description}
+% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition
+% automatisch \cs{scr@dte@current} eingefügt.
+% \begin{macro}{\@DefineTOCEntryCommandOptionWithoutDefault}
+% \changes{v3.20}{2015/11/12}{neu (intern)}
+% \begin{macro}{\@@DefineTOCEntryCommandOptionWithoutDefault}
+% \changes{v3.20}{2015/11/26}{neu (intern)}
+% \begin{macro}{\@DefineTOCEntryCommandOptionWithDefault}
+% \changes{v3.20}{2015/11/12}{neu (intern)}
+% \begin{macro}{\@@DefineTOCEntryCommandOptionWithDefault}
+% \changes{v3.20}{2015/11/26}{neu (intern)}
+% \begin{macro}{\@DefineTOCEntryCommandOptionMacro}
+% \changes{v3.20}{2015/11/12}{neu (intern)}
+% \begin{macro}{\@@DefineTOCEntryCommandOptionMacro}
+% \changes{v3.20}{2015/11/26}{neu (intern)}
+% Da mit einem optionalen Argument an Position 3 gearbeitet wird, werden drei
+% Hilfsmakros benötigt.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\@DefineTOCEntryCommandOption}[2]{%
+ \kernel@ifnextchar [%]
+ {\@DefineTOCEntryCommandOptionWithDefault{#1}{#2}}
+ {\@DefineTOCEntryCommandOptionWithoutDefault{#1}{#2}}%
+}
+\newcommand*{\@DefineTOCEntryCommandOptionWithoutDefault}[4]{%
+ \@testopt{\@@DefineTOCEntryCommandOptionWithoutDefault{#1}{#2}{#3}{#4}}0%
+}
+\newcommand*{\@@DefineTOCEntryCommandOptionWithoutDefault}{}%
+\def\@@DefineTOCEntryCommandOptionWithoutDefault#1#2#3#4[#5]#6{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#3}{#4}{#2}{#6}%
+ \ifcase #5
+ \@DefineTOCEntryOption{#1}{#2}{%
+ \@DefineTOCEntryCommandOptionMacro{#2}{#3}{#4}[#5]{##1}%
+ }%
+ \or
+ \@DefineTOCEntryOption{#1}{#2}{%
+ \@DefineTOCEntryCommandOptionMacro{#2}{#3}{#4}[#5]{##1{####1}}%
+ }%
+ \else
+%<class> \ClassError{\KOMAClassName
+%<package> \PackageError{tocbasic%
+ }{only one argument supported}{%
+ \string\DefineTOCEntryCommandOption\space currently supports only
+ commands with\MessageBreak
+ at most one argument not #5}%
+ \fi
+}
+\newcommand*{\@DefineTOCEntryCommandOptionWithDefault}{}
+\def\@DefineTOCEntryCommandOptionWithDefault#1#2[#3]#4#5{%
+ \@testopt{\@@DefineTOCEntryCommandOptionWithDefault{#1}{#2}{#3}{#4}{#5}}0%
+}
+\def\@@DefineTOCEntryCommandOptionWithDefault#1#2#3#4#5[#6]#7{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#4}{#5}{#2}{#7}%
+ \ifcase #6
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryCommandOptionMacro{#2}{#4}{#5}[#6]{##1}%
+ }%
+ \or
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryCommandOptionMacro{#2}{#4}{#5}[#6]{##1{####1}}%
+ }%
+ \or
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryCommandOptionMacro{#2}{#4}{#5}[#6]{##1{####1}{####2}}%
+ }%
+ \else
+%<class> \ClassError{\KOMAClassName
+%<package> \PackageError{tocbasic%
+ }{only one argument supported}{%
+ \string\DefineTOCEntryCommandOption\space currently supports only
+ commands with\MessageBreak
+ at most two argument not #6}%
+ \fi
+}
+\newcommand*{\@DefineTOCEntryCommandOptionMacro}[3]{%
+ \@testopt{\@@DefineTOCEntryCommandOptionMacro{#1}{#2}{#3}}0%
+}
+\newcommand*{\@@DefineTOCEntryCommandOptionMacro}{}
+\long\def\@@DefineTOCEntryCommandOptionMacro#1#2#3[#4]#5{%
+ \let\l@ngrel@x\long
+ \expandafter\@yargdef\csname #2\scr@dte@current#3\endcsname\@ne{#4}{#5}%
+ \FamilyKeyStateProcessed
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@@DefineTOCEntryCommandOptionMacro
+% \end{macro}^^A \@DefineTOCEntryCommandOptionMacro
+% \end{macro}^^A \@@DefineTOCEntryCommandOptionWithDefault
+% \end{macro}^^A \@DefineTOCEntryCommandOptionWithDefault
+% \end{macro}^^A \@@DefineTOCEntryCommandOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryCommandOptionWithoutDefault
+% \end{macro}^^A \@DefineTOCEntryCommandOption
+%
+% \begin{macro}{\@AddToDeclareTOCStyleEntryPreCheckNeeds}
+% \changes{v3.20}{2015/12/06}{neu (intern)}
+% \begin{macro}{\@PreToDeclareTOCStyleEntryPreCheckNeeds}
+% \changes{v3.20}{2015/12/06}{neu (intern)}
+% Noch bevor die benötigten Befehle getestet werden, wird in
+% \cs{DeclareTOCStyleEntry} ein Hook ausgeführt. Für das Hinzufügen von Code
+% zu diesem Hook gibt es folgende Parameter:
+% \begin{description}
+% \item[\marg{Code}: \meta{Code},] Code, der ausgeführt werden soll.
+% \end{description}
+% Bitte beachten, dass diese Anweisung im Init-Code von Stilen verwendet wird,
+% also innerhalb von \cs{DeclareTOCEntryStyle}, während der Hook innerhalb
+% von \cs{DeclareTOCStyleEntry} ausgeführt wird. Der Code des Hooks hat ein
+% Argument: Den Namen der Gliederungsebene.
+% \begin{macrocode}
+%<*body>
+\newcommand{\@AddToDeclareTOCEntryStylePreCheckNeeds}[1]{%
+ \expandafter\providecommand\csname scr@dte@precheck\endcsname[1]{}%
+ \expandafter\l@addto@macro@a\csname scr@dte@precheck\endcsname
+}
+\newcommand{\@PreToDeclareTOCEntryStylePreCheckNeeds}[1]{%
+ \expandafter\providecommand\csname scr@dte@precheck\endcsname[1]{}%
+ \expandafter\l@preto@macro@a\csname scr@dte@precheck\endcsname
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@PreToDeclareTOCStyleEntryPreCheckNeeds
+% \end{macro}^^A \@AddToDeclareTOCStyleEntryPreCheckNeeds
+%
+% \begin{macro}{\@TOCEntryStyleNeedsCommandByOption}
+% \changes{v3.20}{2015/12/04}{neu (intern)}
+% Fügt einen oder mehrere Befehle der Liste der benötigten Befehle hinzu.
+% \begin{description}
+% \item[\marg{Stil}:] Der Stil \meta{string}, der die Befehle benötigt.
+% \item[\marg{Präfix}:] Präfix \meta{string} des benötigten Befehls.
+% \item[\marg{Postfix}:] Postfix \meta{string} des benötigten Befehls.
+% \item[\marg{Option}:] Die Option \meta{string}, über die dieser Befehl
+% definiert wird.
+% \item[\marg{Erklärung}:] Bedeutung \meta{string} des Befehls.
+% \end{description}
+% Zwischen Präfix und Postfix wird dann automatisch der Name der
+% Gliederungsebene eingefügt.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\@TOCEntryStyleNeedsCommandByOption}[5]{%
+ \expandafter\providecommand\expandafter*\csname scr@dte@#1@needs\endcsname{}%
+ \expandafter\l@addto@macro\csname scr@dte@#1@needs\endcsname{%
+ \do{#2}{#3}{#4}{#5}%
+ }%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@TOCEntryStyleNeedsCommandByOption
+%
+% \begin{macro}{\TOCEntryStyleInitCode}
+% \changes{v3.20}{2015/11/19}{neu}
+% \begin{macro}{\TOCEntryStyleStartInitCode}
+% \changes{v3.20}{2015/11/25}{neu}
+% Führt Befehle aus, bevor ein Verzeichnisbefehl in diesem Stil definiert wird
+% und noch bevor die \emph{needs}-Liste abgearbeitet wird.
+% Argumente sind:
+% \begin{description}
+% \item[\marg{Stil}:] Der Stil \meta{string} für den die Initialisierung
+% erfolgen soll.
+% \item[\marg{Code}:] Wird zwecks Initialisierung ausgeführt. Innerhalb dieses
+% Codes ist \texttt{\#1} der Name der Verzeichnisebene.
+% \end{description}
+% \begin{macrocode}
+%<*body>
+\newcommand{\TOCEntryStyleInitCode}[1]{%
+ \scr@ifundefinedorrelax{scr@dte@#1@init}{%
+ \expandafter\providecommand\expandafter*%
+ \csname scr@dte@#1@init\endcsname[1]%
+ }{%
+ \expandafter\l@addto@macro@a\csname scr@dte@#1@init\endcsname
+ }%
+}
+\newcommand{\TOCEntryStyleStartInitCode}[1]{%
+ \scr@ifundefinedorrelax{scr@dte@#1@init}{%
+ \expandafter\providecommand\expandafter*%
+ \csname scr@dte@#1@init\endcsname[1]%
+ }{%
+ \expandafter\l@preto@macro@a\csname scr@dte@#1@init\endcsname
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \TOCEntryStyleStartInitCode
+% \end{macro}^^A \TOCEntryStyleInitCode
+% \begin{macro}{\@ExecuteTOCEntryStyleInitCode}
+% \changes{v3.20}{2015/12/04}{neu (intern)}
+% Führt den Init-Code eines Stils aus. Das erste Argument ist der Name des
+% Stils, das zweite der Name der Verzeichnisebene. Diesen erhält die
+% Init-Anweisung außerdem als Argument.
+% \begin{macrocode}
+\newcommand*{\@ExecuteTOCEntryStyleInitCode}[2]{%
+ \let\scr@dte@doopts\@empty
+ \scr@ifundefinedorrelax{scr@dte@#1@init}{}{%
+ \def\DefineTOCEntryBooleanOption{\@DefineTOCEntryBooleanOption{#1}}%
+ \def\DefineTOCEntryCommandOption{\@DefineTOCEntryCommandOption{#1}}%
+ \def\DefineTOCEntryIfOption{\@DefineTOCEntryIfOption{#1}}%
+ \def\DefineTOCEntryLengthOption{\@DefineTOCEntryLengthOption{#1}}%
+ \def\DefineTOCEntryNumberOption{\@DefineTOCEntryNumberOption{#1}}%
+ \def\DefineTOCEntryOption{\@DefineTOCEntryOption{#1}}%
+ \def\AddToDeclareTOCEntryStylePreCheckNeeds{%
+ \@AddToDeclareTOCEntryStylePreCheckNeeds{#1}}%
+ \def\PreToDeclareTOCEntryStylePreCheckNeeds{%
+ \@PreToDeclareTOCEntryStylePreCheckNeeds{#1}}%
+ \def\TOCEntryStyleNeedsCommandByOption{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}}%
+ \@nameuse{scr@dte@#1@init}{#2}%
+ \let\TOCEntryStyleNeedsCommandByOption\relax
+ \let\PreToDeclareTOCEntryStylePreCheckNeeds\relax
+ \let\AddToDeclareTOCEntryStylePreCheckNeeds\relax
+ \let\DefineTOCEntryOption\relax
+ \let\DefineTOCEntryNumberOption\relax
+ \let\DefineTOCEntryLengthOption\relax
+ \let\DefineTOCEntryIfOption\relax
+ \let\DefineTOCEntryCommandOption\relax
+ \let\DefineTOCEntryBooleanOption\relax
+ }%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \ExecuteTOCEntryStyleInitCode
+%
+% \begin{macro}{\DeclareTOCStyleEntry}
+% \changes{v3.20}{2015/11/13}{neu}
+% Diese Anweisung definiert einen Verzeichniseintragsbefehl. Dabei wird auch
+% geprüft, ob all benötigten Befehle definiert sind. Falls das nicht der Fall
+% ist, wird der Verzeichniseintragsbefehl nicht definiert, sondern ein Fehler
+% gemeldet. Für die Definition werden folgende Argumente verwendet.
+% \begin{description}
+% \item[\oarg{Optionen}:] Komma separierte Liste von Optionen für die
+% Definition des Eintrags.
+% \item[\marg{Stil}:] Der Stil \meta{string}, in dem der Verzeichniseintrag
+% sein soll.
+% \item[\marg{Gliederungsebene}:] Der Name \meta{string} der Gliederungsebene
+% für die ein Verzeichniseintrag definiert werden soll.
+% \end{description}
+% Es wird außerdem eine Anweisung \cs{scr@dte@def@l@\meta{Stil}} benötigt,
+% über die dann die eigentliche Definition der Eintragsanweisung
+% erfolgt. Diese hat genau ein Argument: \meta{Gliederungsebene}.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\DeclareTOCStyleEntry}[3][]{%
+ \scr@ifundefinedorrelax{scr@dte@def@l@#2}{%
+%<class> \ClassError{\KOMAClassName
+%<package> \PackageError{tocbasic%
+ }{toc entry style `#2' undefined}{%
+ Somebody told me to define toc entry `#3' with style `#2',\MessageBreak
+ but I do not know style `#2'.\MessageBreak
+ You should first define the style then define the entry.\MessageBreak
+ If you'll continue, I'll ignore the command. This could result
+ in\MessageBreak
+ further error messages.%
+ }%
+ }{%
+ \let\scr@dte@precheck\@gobble
+ \def\scr@dte@current{#3}%
+ \@ExecuteTOCEntryStyleInitCode{#2}{#3}%
+ \IfArgIsEmpty{#1}{}{%
+ \FamilyBoolKey[.dte]{KOMAarg}{expandtopt}{scr@dte@expandtopt}%
+ \scr@dte@expandtoptfalse
+ \FamilyExecuteOptions[.dte]{KOMAarg}{#1}%
+ \RelaxFamilyKey[.dte]{KOMAarg}{expandtopt}%
+ }%
+ \@RelaxTOCEntryOptions
+ \let\scr@dte@doopts\relax
+ \let\scr@dte@current\relax
+ \scr@ifundefinedorrelax{#3tocdepth}{%
+ \expandafter\let\csname #3tocdepth\expandafter\endcsname
+ \csname #3numdepth\endcsname
+ }{}%
+ \scr@dte@precheck{#3}%
+ \let\scr@dte@precheck\relax
+ \begingroup
+ \aftergroup\@tempswatrue
+ \def\do##1##2##3##4{%
+ \scr@ifundefinedorrelax{##1#3##2}{%
+%<class> \ClassError{\KOMAClassName
+%<package> \PackageError{tocbasic%
+ }{toc style `#2' needs ##4}{%
+ Usually the ##4 is defined using option `##3'.\MessageBreak
+ In some cases it may be set defining command
+ `\expandafter\string\csname ##1#3##2\endcsname'.\MessageBreak
+ If you'll continue, I'll ignore the command. This could result
+ in\MessageBreak
+ further error messages.%
+ }%
+ \aftergroup\@tempswafalse
+ }{}%
+ }%
+ \do{}{tocdepth}{level}{toc style level}%
+ \@nameuse{scr@dte@#2@needs}%
+ \endgroup
+ \if@tempswa
+ \@nameuse{scr@dte@def@l@#2}{#3}%
+ \expandafter\edef\csname scr@dte@#3@style\endcsname{#2}%
+% \end{macrocode}
+% \changes{v3.21}{2016/06/09}{\cs{toclevel@\emph{ebene}} wird für
+% \textsf{hyperref} neu gesetzt}^^A
+% Da verschiedene Pakete davon ausgehen, dass die Ebene
+% \textsf{hyperref}-kompatibel gespeichert ist, setzen wir die hier
+% zusätzlich. Das \textsf{hyperref} die Einstellungen ggf. überschreibt,
+% machen wir das in der Dokumentpräambel auch mehrfach.
+% \begin{macrocode}
+ \expandafter\let\csname toclevel@#3\expandafter\endcsname
+ \csname #3tocdepth\endcsname
+ \if@atdocument\else
+ \scr@ifundefinedorrelax{AfterPackage}{%
+ \AtBeginDocument
+ }{%
+ \AfterPackage*{hyperref}%
+ }%
+ {%
+ \expandafter\let\csname toclevel@#3\expandafter\endcsname
+ \csname #3tocdepth\endcsname
+ }%
+ \fi
+ \fi
+ }%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \DeclareTOCStyleEntry
+%
+% \begin{macro}{\DeclareTOCStyleEntries}
+% \changes{v3.26}{2018/08/27}{new}^^A
+% Use \cs{DeclareTOCStyleEntry} to define a list of entries, all with the same
+% options and style.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\DeclareTOCStyleEntries}[3][]{%
+ \edef\reserved@a{#3}%
+ \@for \reserved@a:=\reserved@a \do {%
+ \scr@trim@spaces\reserved@a
+ \ifx\reserved@a\@empty\else
+ \IfArgIsEmpty{#1}{%
+ \edef\reserved@a{%
+ \unexpanded{\DeclareTOCStyleEntry{#2}}{\reserved@a}}%
+ }{%
+ \edef\reserved@a{%
+ \unexpanded{\DeclareTOCStyleEntry[{#1}]{#2}}{\reserved@a}}%
+ }%
+ \reserved@a
+ \fi
+ }%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \DeclareTOCStyleEntries
+%
+% \begin{macro}{\DeclareTOCEntryStyle}
+% \changes{v3.20}{2015/11/17}{neu}
+% \begin{macro}{\@DeclareTOCEntryStyle}
+% \changes{v3.20}{2015/11/17}{neu (intern)}
+% Über diese Anweisung wir ein neuer Stil für TOC-Einträge definiert. Ein Stil
+% besteht aus:
+% \begin{description}
+% \item[\marg{Stil}:] Der Stil \meta{string}, der definiert werden soll.
+% \item[\oarg{Initialisierungscode}:] Dieser Code wird bei der Definition
+% eines Verzeichnisbefehls ausgeführt und enthält beispielsweise
+% Optionendeklarationen. Es ist zu beachten, dass dieser Code ggf. auch
+% mehrfach ausgeführt werden kann!
+% \item[\marg{Code}:] Der Code, der ausgeführt wird, wenn ein
+% Verzeichniseintrag ausgegeben werden soll.
+% \end{description}
+% Unabhängig davon, ob eine \meta{Optionendeklaration} angegeben ist oder
+% nicht, wird immer eine Option \texttt{level} definiert, über die die
+% Verzeichnisebene einen nummerischen Wert erhält.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\DeclareTOCEntryStyle}[1]{%
+ \kernel@ifnextchar [%]
+ {\@DeclareTOCEntryStyle{#1}}%
+ {\@DeclareTOCEntryStyle{#1}[]}%
+}
+\newcommand{\@DeclareTOCEntryStyle}{}
+\long\def\@DeclareTOCEntryStyle#1[#2]#3{%
+ \@namedef{scr@dte@def@l@#1}##1{%
+ \@namedef{l@##1}####1####2{%
+ \TOC@EntryStartHook{##1}%
+ #3%
+ \TOC@EntryEndHook{##1}%
+ }%
+ }%
+ \TOCEntryStyleInitCode{#1}{%
+ \DefineTOCEntryNumberOption{level}{}{tocdepth}{toc entry level}%
+ #2%
+ }%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \@DeclareTOCEntryStyle
+% \end{macro}^^A \DeclareTOCEntryStyle
+%
+% \begin{macro}{\TOC@EntryStartHook}
+% \changes{v3.20}{2016/01/12}{neu (intern)}
+% Bei jedem Eintrag, der über einen Eintragsstil von \KOMAScript{} definiert
+% ist, kann vor dem jeweiligen Eintrag über einen Haken eine Reihe
+% von Anweisungen ausgeführt werden. Innerhalb dieser Anweisungen ist
+% \texttt{\#1} der Name der Gliederungsebene. In der Regel dürfen diese
+% Anweisungen keinerlei Ausgaben tätigen und weder \cs{lastpenalty} noch
+% \cs{lastskip} verändern. Der Anwender ist dafür selbst verantwortlich! Weil
+% diese Einschränkung jedoch etwas kritisch ist und der Aufruf ohnehin ein
+% \cs{makeatletter} benötigt, wird nur der Haken definiert aber keine
+% Anweisung, um diesen zu ändern oder zu erweitern.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\TOC@EntryStartHook}[1]{}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \TOC@EntryStartHook
+%
+% \begin{macro}{\TOC@EntryEndHook}
+% \changes{v3.20}{2016/01/12}{neu (intern)}
+% Bei jedem Eintrag, der über einen Eintragsstil von \KOMAScript{} definiert
+% ist, kann nach dem jeweiligen Eintrag über einen Haken eine Reihe
+% von Anweisungen ausgeführt werden. Innerhalb dieser Anweisungen ist
+% \texttt{\#1} der Name der Gliederungsebene. In der Regel dürfen diese
+% Anweisungen keinerlei Ausgaben tätigen und weder \cs{lastpenalty} noch
+% \cs{lastskip} verändern. Der Anwender ist dafür selbst verantwortlich! Weil
+% diese Einschränkung jedoch etwas kritisch ist und der Aufruf ohnehin ein
+% \cs{makeatletter} benötigt, wird nur der Haken definiert aber keine
+% Anweisung, um diesen zu ändern oder zu erweitern.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\TOC@EntryEndHook}[1]{}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \TOC@EntryEndHook
+%
+% \begin{macro}{\CloneTOCEntryStyle}
+% \changes{v3.20}{2015/11/25}{neu}
+% Diese Anweisung dupliziert einen Stil samt seiner Optionen und
+% Befehle. Anschließend kann man ihn beispielsweise verändern. Das erste
+% Argument ist der Name des ursprünglichen Stils, das zweite der neue Name.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\CloneTOCEntryStyle}[2]{%
+% \end{macrocode}
+% Als erstes wird die Anweisung kopiert, mit der die \cs{l@\dots}-Anweisungen
+% definiert werden.
+% \begin{macrocode}
+ \expandafter\let\csname scr@dte@def@l@#2\expandafter\endcsname
+ \csname scr@dte@def@l@#1\endcsname
+% \end{macrocode}
+% Der Init-Code wird kopiert.
+% \begin{macrocode}
+ \expandafter\let\csname scr@dte@#2@init\expandafter\endcsname
+ \csname scr@dte@#1@init\endcsname
+}
+%</body>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Vorgefertigte Verzeichniseintragsstile}
+%
+% Hier wird quasi an Beispielen gezeigt, wie man Verzeichniseintragsstile
+% definieren kann. Einige dieser Stile sind sehr grundlegend. Andere sind
+% stellen Erweiterungen der grundlegenden Stile dar. Die Stile können über
+% mehrere \texttt{docstrip}-Durchgänge einzeln in den Quelltext gelangen.
+%
+% \iffalse
+%<*style>
+% \fi
+%
+% \begin{macro}{\scr@dte@def@l@gobble}
+% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil
+% \texttt{gobble}}^^A
+% Der aller einfachste Verzeichniseintragsstil ist \texttt{gobble}. Er nimmt
+% die beiden Argumente für den Verzeichniseintrag und die Seitenzahl und
+% vergisst sie unabhängig von der Ebene des Eintrags einfach. Daher benötigt
+% dieser Stil auch keinerlei Optionen oder Initialisierung.
+% \begin{macrocode}
+%<*gobble>
+%%% (run: style,gobble)
+\DeclareTOCEntryStyle{gobble}{}%
+%</gobble>
+% \end{macrocode}
+% \end{macro}^^A \scr@dte@def@l@gobble
+%
+% \begin{macro}{\scr@dte@def@l@dottedtocline}
+% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil
+% \texttt{dottedtocline}}^^A
+% Der einfachste echte Verzeichniseintragsstil ist
+% \texttt{dottedtocline}. Dieser verwendet einfach nur die
+% \LaTeX-Kern-Anweisung \cs{dottedtocline}. Für \KOMAScript{} selbst sollte
+% man dieses Stil nicht verwenden. Man kann ihn aber beispielsweise mit den
+% Standardklassen verwenden, wenn man kompatibel bleiben will. Dieser benötigt
+% jedoch bereits Angaben bezüglich der Nummernbreite und des
+% Eintragseinzugs. Der ohnehin immer definierte Level wird ebenfalls
+% ausgewertet.
+% \begin{macro}{\scr@dte@def@l@undottedtocline}
+% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil
+% \texttt{undottedtocline}}^^A
+% Im Unterschied dazu entspricht der Verzeichniseintragsstil
+% \texttt{undottedtocline} dem der \texttt{chapter}-Ebene der
+% Standardklassen. Im Unterschied zu diesen wird jedoch ein Eintragseinzug
+% unterstützt.
+% \begin{macro}{\scr@dte@def@l@largetocline}
+% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil
+% \texttt{largetocline}}^^A
+% Im Unterschied dazu entspricht der Verzeichniseintragsstil
+% \texttt{largetocline} dem der \texttt{part}-Ebene der Standardklassen. Im
+% Unterschied zu diesen wird jedoch ein Eintragseinzug unterstützt. Eine
+% Nummernbreite gibt es hingegen nicht. Stattdessen werden die Einträge nicht
+% hängend gesetzt.
+% \begin{macro}{\scr@dte@def@l@tocline}
+% \changes{v3.20}{2015/11/22}{neuer Verzeichniseintragsstil
+% \texttt{tocline}}^^A
+% Das hingegen wird der hochflexible Stil für Verzeichniseinträge, die aus
+% einer oder mehreren Zeilen bestehen. Dieser wird später über diverse
+% Hilfsmakros definiert.
+% \begin{macrocode}
+%<*dottedtocline|undottedtocline|largetocline|tocline>
+%<*dottedtocline>
+%%% (run: style,dottedtocline)
+\DeclareTOCEntryStyle{dottedtocline}[{%
+%</dottedtocline>
+%<*undottedtocline>
+%%% (run: style,undottedtocline)
+\DeclareTOCEntryStyle{undottedtocline}[{%
+%</undottedtocline>
+%<*largetocline>
+%%% (run: style, largetocline)
+\DeclareTOCEntryStyle{largetocline}[{%
+%</largetocline>
+%<*tocline>
+%%% (run: style,tocline)
+\DeclareTOCEntryStyle{tocline}[{%
+ \DefineTOCEntryLengthOption{beforeskip}%
+ {scr@tso@}{@beforeskip}{vertical skip before the entry}%
+ \DefineTOCEntryIfOption{breakafternumber}%
+ {scr@tso@}{@breakafternumber}{line break after number flag}%
+ \DefineTOCEntryIfOption{dynnumwidth}%
+ {scr@tso@}{@dynnumwidth}{dynamic number width flag}%
+ \DefineTOCEntryCommandOption{entryformat}%
+ {scr@tso@}{@entryformat}[1]{entry format}%
+ \DefineTOCEntryCommandOption{entrynumberformat}%
+ {scr@tso@}{@numberformat}[1]{entry number format}%
+ \DefineTOCEntryCommandOption{linefill}[\TOCLineLeaderFill]%
+ {scr@tso@}{@linefill}{filling between text and page number}%
+ \DefineTOCEntryLengthOption{numsep}%
+ {scr@tso@}{@numsep}{entry number separation}%
+ \DefineTOCEntryCommandOption{onstarthigherlevel}%
+ {scr@tso@}{@LastTOCLevelWasLower}{start higher level entry hook}%
+ \DefineTOCEntryCommandOption{onstartlowerlevel}%
+ {scr@tso@}{@LastTOCLevelWasHigher}{start lower level entry hook}%
+ \DefineTOCEntryCommandOption{onstartsamelevel}%
+ {scr@tso@}{@LastTOCLevelWasSame}{start same level entry hook}%
+ \DefineTOCEntryCommandOption{pagenumberbox}%
+ {scr@tso@}{@pagenumberbox}[1]{page number box}%
+ \DefineTOCEntryCommandOption{pagenumberformat}%
+ {scr@tso@}{@pagenumberformat}[1]{page number format}%
+% \end{macrocode}
+% \changes{v3.21}{2016/06/06}{neue Option \texttt{raggedentrytext}}^^A
+% Die Option \texttt{raggedentrytext} muss leider etwas umständlich definiert
+% werden, damit sie mit der früheren Definition eines Makros
+% \cs{raggedchapterentry} halbwegs kompatibel ist.
+% \begin{macrocode}
+ \DefineTOCEntryOption{raggedentrytext}[true]{%
+ \FamilySetBool{KOMAarg}{raggedentrytext}{@tempswa}{##1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \expandafter\let\csname ragged\scr@dte@current entry\endcsname
+ \raggedright
+ \else
+ \expandafter\let\csname ragged\scr@dte@current entry\endcsname
+ \relax
+ \fi
+ \fi
+ }%
+ \DefineTOCEntryIfOption{raggedpagenumber}%
+ {scr@tso@}{@raggedpage}{page number ragged flag}%
+%</tocline>
+ \DefineTOCEntryLengthOption{indent}%
+ {scr@tso@}{@indent}{entry indent}%
+%<*dottedtocline|undottedtocline|tocline>
+ \DefineTOCEntryLengthOption{numwidth}%
+ {scr@tso@}{@numwidth}{entry number width}%
+%</dottedtocline|undottedtocline|tocline>
+% \end{macrocode}
+% Die Ebene, \texttt{level} bzw. \cs{\dots tocdepth}, kann auf zweierlei Arten
+% automatisch bestimmt werden. Zum einen wird für Sub-Ebenen die Elternebene
+% um eins erhöht verwendet, falls die Elternebene bereits definiert ist.
+% \changes{v3.21}{2016/06/09}{\cs{the} eingefügt}^^A
+% \begin{macrocode}
+%<*tocline>
+ \scr@ifundefinedorrelax{#1tocdepth}{%
+ \ifstrstart{#1}{sub}{%
+ \scr@ifundefinedorrelax{\scr@dte@nosub{#1}tocdepth}{}{%
+ \expandafter\edef\csname #1tocdepth\endcsname{%
+ \the\numexpr \noexpand\@nameuse{\scr@dte@nosub{#1}tocdepth}+\@ne\relax
+ }%
+ }%
+ }{}%
+ }{}%
+%</tocline>
+% \end{macrocode}
+% War der Weg über Elternebenen nicht erfolgreich oder wurde er nicht
+% verwendet, so werden Standardwerte angenommen, wie sie bei den
+% Standardklassen und bei \KOMAScript{} zutreffen.
+% \begin{macrocode}
+ \@ifundefined{#1tocdepth}{%
+ \ifstr{#1}{part}{\@namedef{#1tocdepth}{-1}}{%
+ \ifstr{#1}{chapter}{\@namedef{#1tocdepth}{0}}{%
+ \ifstr{#1}{section}{\@namedef{#1tocdepth}{1}}{%
+ \ifstr{#1}{subsection}{\@namedef{#1tocdepth}{2}}{%
+ \ifstr{#1}{subsubsection}{\@namedef{#1tocdepth}{3}}{%
+ \ifstr{#1}{paragraph}{\@namedef{#1tocdepth}{4}}{%
+ \ifstr{#1}{subparagraph}{\@namedef{#1tocdepth}{5}}{%
+ \ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{%
+ \ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{%
+% \end{macrocode}
+% Für unbekannte Anweisungen wird stattdessen eine eventuell vorhandene
+% Gliederungsebene auch als Verzeichnisebene übernommen:
+% \begin{macrocode}
+ \expandafter\let\csname #1tocdepth\expandafter\endcsname
+ \csname #1numdepth\endcsname
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{}%
+% \end{macrocode}
+% Der Einzug kann wie der Level aus der Elternebene gebildet werden
+% \begin{macrocode}
+%<*tocline>
+ \scr@ifundefinedorrelax{scr@tso@#1@indent}{%
+ \@ifundefined{scr@#1@tocindent}{%
+ \ifstrstart{#1}{sub}{%
+ \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@indent}{%
+ \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@numwidth}{}{%
+ \expandafter\edef\csname scr@tso@#1@indent\endcsname{%
+ \glueexpr \noexpand\@nameuse{scr@tso@\scr@dte@nosub{#1}@numwidth}%
+ \relax
+ }%
+ }%
+ }{%
+ \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@numwidth}{%
+ \expandafter\edef\csname scr@tso@#1@indent\endcsname{%
+ \glueexpr \noexpand\@nameuse{scr@tso@\scr@dte@nosub{#1}@indent}%
+ \relax
+ }%
+ }{%
+ \expandafter\edef\csname scr@tso@#1@indent\endcsname{%
+ \glueexpr \noexpand\@nameuse{scr@tso@\scr@dte@nosub{#1}@indent}%
+ +\noexpand\@nameuse{scr@tso@\scr@dte@nosub{#1}@numwidth}%
+ \relax
+ }%
+ }%
+ }%
+ }{}%
+ }{%
+% \end{macrocode}
+% Kompatibilität mit älteren \KOMAScript-Klassen.
+% \begin{macrocode}
+ \@namedef{scr@tso@#1@indent}{\@nameuse{scr@#1@tocindent}}%
+ }%
+ }{}%
+%</tocline>
+% \end{macrocode}
+% War das nicht erfolgreich oder wird es nicht genutzt, so werden
+% Standardwerte verwendet, die sowohl für die Standardklasse als auch die
+% \KOMAScript-Klassen zutreffend sind.
+% \begin{macrocode}
+ \@ifundefined{scr@tso@#1@indent}{%
+%<*dottedtocline|undottedtocline|largetocline>
+ \@ifundefined{scr@#1@tocindent}{%
+%</dottedtocline|undottedtocline|largetocline>
+ \ifstr{#1}{figure}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{table}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{%
+ \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{%
+% \end{macrocode}
+% Ab hier hängt es nun davon ab, ob es eine Kapitel-Ebene gibt oder
+% nicht. Dazu sollte die Kapitelebene bereits definiert sein!
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{l@chapter}{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{0pt}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@indent}{3.8em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@indent}{7em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@indent}{10em}%
+ }{%
+% \end{macrocode}
+% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden!
+% \begin{macrocode}
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{3.8em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@indent}{7.0em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@indent}{10em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@indent}{12em}%
+ }{%
+% \end{macrocode}
+% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden!
+% \begin{macrocode}
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+%<*dottedtocline|undottedtocline|largetocline>
+ }{%
+% \end{macrocode}
+% Kompatibilität mit älteren \KOMAScript-Klassen.
+% \begin{macrocode}
+ \@namedef{scr@tso@#1@indent}{\@nameuse{scr@#1@tocindent}}%
+ }%
+%</dottedtocline|undottedtocline|largetocline>
+ }{}%
+% \end{macrocode}
+% Für die Nummernbreite gibt es ebenfalls beide Wege.
+% \begin{macrocode}
+%<*dottedtocline|undottedtocline|tocline>
+%<*tocline>
+ \scr@ifundefinedorrelax{scr@tso@#1@numwidth}{%
+ \scr@ifundefinedorrelax{scr@#1@tocnumwidth}{%
+ \ifstrstart{#1}{sub}{%
+ \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@numwidth}{}{%
+ \expandafter\edef\csname scr@tso@#1@numwidth\endcsname{%
+ \glueexpr \noexpand\@nameuse{scr@tso@\scr@dte@nosub{#1}@numwidth}%
+ +.9em%
+ \relax
+ }%
+ }%
+ }{}%
+ }{%
+ \@namedef{scr@tso@#1@numwidth}{\@nameuse{scr@#1@tocnumwidth}}%
+ }%
+ }{}%
+%</tocline>
+ \@ifundefined{scr@tso@#1@numwidth}{%
+%<*dottedtocline|undottedtocline>
+ \@ifundefined{scr@#1@tocnumwidth}{%
+%</dottedtocline|undottedtocline>
+ \ifstr{#1}{figure}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{table}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{%
+% \end{macrocode}
+% Ab hier hängt es nun davon ab, ob es eine Kapitel-Ebene gibt oder
+% nicht. Dazu sollte die Kapitelebene bereits definiert sein!
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{chapter}{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@numwidth}{3.2em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@numwidth}{4.1em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@numwidth}{5m}%
+ }{%
+% \end{macrocode}
+% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden!
+% \begin{macrocode}
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{3.2em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@numwidth}{3.1em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@numwidth}{5em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@numwidth}{6em}%
+ }{%
+% \end{macrocode}
+% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden!
+% \begin{macrocode}
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+%<*dottedtocline|undottedtocline>
+ }{%
+% \end{macrocode}
+% Kompatibilität mit älteren \KOMAScript-Klassen.
+% \begin{macrocode}
+ \@namedef{scr@tso@#1@numwidth}{\@nameuse{scr@#1@tocnumwidth}}%
+ }%
+%</dottedtocline|undottedtocline>
+ }{}%
+%</dottedtocline|undottedtocline|tocline>
+%<*tocline>
+% \end{macrocode}
+% Die Standardeinstellungen für die drei Penalty-Hooks sind einfach die
+% Standardanweisungen dafür. Dabei ist das so definiert, dass Änderungen an
+% den Standardanweisungen direkte Auswirkungen haben.
+% \begin{macrocode}
+ \expandafter\providecommand%
+ \csname scr@tso@#1@LastTOCLevelWasLower\endcsname{\LastTOCLevelWasLower}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@LastTOCLevelWasSame\endcsname{\LastTOCLevelWasSame}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@LastTOCLevelWasHigher\endcsname{\LastTOCLevelWasHigher}%
+% \end{macrocode}
+% Die Voreinstellung für den vertikalen Abstand ist Null mit ein klein wenig
+% Leim, um den Seitenumbruch zu optimieren. Das genügt bei einer normalen
+% A4-Seite aber gerade mal für den Ausgleich einer Zeile. Bei den höheren
+% Ebenen werden stattdessen die Voreinstellungen der Standardklassen
+% verwendet.
+% \begin{macrocode}
+ \@ifundefined{scr@tso@#1@beforeskip}{%
+ \ifstr{#1}{part}{%
+ \@namedef{scr@tso@#1@beforeskip}{\glueexpr 2.25em \@plus\p@\relax}%
+ }{%
+ \ifstr{#1}{chapter}{%
+ \@namedef{scr@tso@#1@beforeskip}{\glueexpr 1.0em \@plus\p@\relax}%
+ }{%
+ \ifstr{#1}{section}{%
+ \scr@ifundefinedorrelax{l@chapter}{%
+ \@namedef{scr@tso@#1@beforeskip}{\glueexpr 1.0em \@plus\p@\relax}%
+ }{}%
+ }{}%
+ }%
+ }%
+ \expandafter\providecommand\expandafter*%
+ \csname scr@tso@#1@beforeskip\endcsname{\glueexpr \z@ plus .2\p@\relax}%
+ }{}%
+% \end{macrocode}
+% Es ist gut zu wissen, wie breit die breiteste Nummer ist, damit wir
+% ggf. prüfen können, ob entsprechende Bedingungen eingehalten werden.
+% \begin{macrocode}
+ \@ifundefined{scr@dte@#1@maxnumwidth}{%
+ \expandafter\newlength\csname scr@dte@#1@maxnumwidth\endcsname
+ \setlength{\@nameuse{scr@dte@#1@maxnumwidth}}{\z@}%
+ }{}%
+ \providecommand*{\scr@dte@donumwidth}{}%
+ \g@addto@macro{\scr@dte@donumwidth}{\do{#1}}%
+% \end{macrocode}
+% Eine dieser Bedingungen ist, dass ein Mindestabstand zwischen Nummer und
+% Text eingehalten wird.
+% \begin{macrocode}
+ \expandafter\providecommand\expandafter*%
+ \csname scr@tso@#1@numsep\endcsname{.4em}%
+% \end{macrocode}
+% Jede Ebene kann ihre eigene Formatierungsanweisung für die Nummer haben.
+% Jede Ebene kann auch ihre eigene Formatierungsanweisung für Nummer und Text
+% haben. Für \texttt{part} wird hier die Voreinstellung der Standardklassen
+% verwendet.
+% \begin{macrocode}
+ \expandafter\providecommand%
+ \csname scr@tso@#1@numberformat\endcsname[1]{##1}%
+ \ifstr{#1}{part}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@entryformat\endcsname[1]{\large\bfseries ##1}%
+ }{%
+ \ifstr{#1}{chapter}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@entryformat\endcsname[1]{\bfseries ##1}%
+ }{%
+ \scr@ifundefinedorrelax{l@chapter}{%
+ \ifstr{#1}{section}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@entryformat\endcsname[1]{\bfseries ##1}%
+ }{}%
+ }{}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@entryformat\endcsname[1]{##1}%
+ }%
+ }%
+% \end{macrocode}
+% Nach der Nummer kann wahlweise ein Zeilenumbruch erfolgen, wobei in diesem
+% Fall der Text wieder auf Höhe der Nummer und nicht erst danach
+% erfolgt. Gesteuert wird das über einen Schalter. In der Voreinstellung
+% machen wird das nicht.
+% \begin{macrocode}
+ \expandafter\providecommand
+ \csname Ifscr@tso@#1@breakafternumber\endcsname[2]{##2}%
+% \end{macrocode}
+% Die Verbindung zwischen Ende des Eintrags und den Seitenzahlen erfolgt
+% normalerweise mit Pünktchen. Das wird auch genau die Voreinstellung für die
+% Option werden. In der Voreinstellung wird mit \cs{hfill} gefüllt.
+% \begin{macrocode}
+ \@ifundefined{scr@tso@#1@linefill}{%
+ \ifstr{#1}{part}{%
+ \@namedef{scr@tso@#1@linefill}{\hfill}%
+ }{%
+ \ifstr{#1}{chapter}{%
+ \@namedef{scr@tso@#1@linefill}{\hfill}%
+ }{%
+ \scr@ifundefinedorrelax{l@chapter}{%
+ \ifstr{#1}{section}{%
+ \@namedef{scr@tso@#1@linefill}{\hfill}%
+ }{}%
+ }{}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@linefill\endcsname{\TOCLineLeaderFill\relax}%
+ }%
+ }%
+ }{}%
+% \end{macrocode}
+% Keine Verbindung bedeutet nicht automatisch, dass die Seitenzahlen nach vorn
+% rutschen. Das passiert erst, wenn die sie flatternd gesetzt werden:
+% \begin{macrocode}
+ \expandafter\providecommand\csname Ifscr@tso@#1@raggedpage\endcsname[2]{##2}%
+% \end{macrocode}
+% Auch die Seitenzahl kann speziell formatiert werden, wenn das gewünscht ist.
+% \begin{macrocode}
+ \ifstr{#1}{part}{%
+% \end{macrocode}
+% Für \texttt{part} normalerweise groß und fett:
+% \begin{macrocode}
+ \expandafter\providecommand%
+ \csname scr@tso@#1@pagenumberformat\endcsname[1]{\large\bfseries ##1}%
+ }{%
+% \end{macrocode}
+% \changes{v3.25}{2017/11/23}{Seitenzahlen für \texttt{chapter}-Einräge in der
+% Voreinstellung fett}^^A
+% Für \texttt{chapter} nur fett:
+% \begin{macrocode}
+ \ifstr{#1}{chapter}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@pagenumberformat\endcsname[1]{\bfseries ##1}%
+ }{%
+ \scr@ifundefinedorrelax{l@chapter}{%
+ \ifstr{#1}{section}{%
+% \end{macrocode}
+% \changes{v3.25}{2017/11/23}{Seitenzahlen für \texttt{section}-Einräge in der
+% Voreinstellung unter Umständen fett}^^A
+% Für \texttt{section} ggf. auch fett:
+% \begin{macrocode}
+ \expandafter\providecommand%
+ \csname scr@tso@#1@pagenumberformat\endcsname[1]{\bfseries ##1}%
+ }{}%
+ }{}%
+% \end{macrocode}
+% Sonst in normaler Schrift und Farbe:
+% \begin{macrocode}
+ \expandafter\providecommand%
+ \csname scr@tso@#1@pagenumberformat\endcsname[1]{%
+ \normalfont\normalcolor ##1}%
+ }%
+ }%
+% \end{macrocode}
+% Wobei die Seitenzahl normaleweise in eine Box fester Breite gesetzt wird.
+% \begin{macrocode}
+ \expandafter\providecommand%
+ \csname scr@tso@#1@pagenumberbox\endcsname[1]{%
+ \hb@xt@\@pnumwidth{\hfil ##1}}%
+ \expandafter\providecommand\csname Ifscr@tso@#1@dynnumwidth\endcsname[2]{##2}%
+%</tocline>
+}]{%
+% \end{macrocode}
+% Damit ist die Initialisierung abgeschlossen und wir kommen zur
+% Eintragsanweisung selbst:
+% \begin{macrocode}
+%<*dottedtocline>
+ \@dottedtocline{\@nameuse{#1tocdepth}}{\@nameuse{scr@tso@#1@indent}}%
+ {\@nameuse{scr@tso@#1@numwidth}}{##1}{##2}%
+%</dottedtocline>
+%<*undottedtocline|largetocline>
+ \ifnum \c@tocdepth >\numexpr \@nameuse{#1tocdepth}-\@ne\relax
+% \end{macrocode}
+% An dieser Stelle gibt es einen kleinen Unterschied zwischen der
+% \texttt{chapter}-Ebene und der \texttt{section}-Ebene von
+% \textsf{article}. Diesen machen wir hier an der nummerischen Ebene fest.
+% \begin{macrocode}
+ \ifnum \@nameuse{#1tocdepth}<\@ne
+ \scr@ifundefinedorrelax{chapter}{%
+ \addpenalty\@secpenalty
+%<undottedtocline> \addvspace{1.0em \@plus\p@}%
+%<largetocline> \addvspace{2.25em \@plus\p@}%
+ }{%
+ \addpenalty{-\@highpenalty}%
+%<undottedtocline> \vskip 1.0em \@plus\p@
+%<largetocline> \addvspace{2.25em \@plus\p@}%
+ }%
+ \else
+ \addpenalty\@secpenalty
+%<undottedtocline> \addvspace{1.0em \@plus\p@}%
+%<largetocline> \addvspace{2.25em \@plus\p@}%
+ \fi
+%<undottedtocline> \setlength\@tempdima{\@nameuse{scr@tso@#1@numwidth}}%
+%<largetocline> \setlength\@tempdima{3em}%
+ \begingroup
+% \end{macrocode}
+% Es sei darauf hingewiesen, dass hier eigentlich zweimal \cs{@tocrmarg}
+% statt \cs{@pnumwidth} verwendet werden müsste. Allerdings habe ich
+% beschlossen, diesen schon vor Jahren gemeldeten Fehler aus
+% Kompatibilitätsgründen vorerst von den Standardklassen zu übernehmen.
+% \begin{macrocode}
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+% \end{macrocode}
+% Die Standardklassen fügen an dieser Stelle noch eine Gruppe ein, die dann
+% leider vor dem abschließenden \cs{par} bereits beendet wird. Das führt
+% natürlich zu falschen Zeilenabständen bei mehrzeiligen Einträgen. Ich habe
+% lange überlegt, aber schließlich beschlossen, diesen Fehler nicht aus den
+% Standardklassen zu übernehmen. Das war mir dann doch zu krass! Schlimmer
+% noch, würde man den Fehler übernehmen, müsste man das Setzen von
+% \cs{leftskip} abändern, weil natürlich auch das erst am Absatzende
+% wirklich zur Geltung kommt.
+% \begin{macrocode}
+ \leavevmode
+%<largetocline> \large
+ \bfseries
+% \end{macrocode}
+% Es sei darauf hingewiesen, dass hier eigentlich auch bei
+% \texttt{largetocline} \cs{@tempdima} mit berücksichtigt werden
+% müsste. Das geht nur deshalb nicht, weil bei den Standardklassen \cs{part}
+% kein \cs{numberline} verwendet. Deshalb werden mehrzeilige Einträge auch
+% nicht korrekt eingerückt. Auch das habe ich aus Kompatibilitätsgründen
+% beibehalten.
+% \begin{macrocode}
+%<undottedtocline> \advance\leftskip\@tempdima
+ \advance\leftskip\@nameuse{scr@tso@#1@indent}%
+%<*undottedtocline>
+ \hskip -\dimexpr \leftskip-\@nameuse{scr@tso@#1@indent}\relax
+%</undottedtocline>
+ ##1%
+%<undottedtocline> \nobreak
+% \end{macrocode}
+% Hier schließlich ist \cs{@pnumwidth} aufgrund des vorherigen
+% \cs{large} nicht mehr derselbe absolute Wert wie bei Einträgen ohne
+% \cs{large}. Deshalb müsste eigentlich noch vor dem \cs{large} der Wert
+% beispielsweise in eine Länge wie \cs{@tempdimb} übertragen und dann hier
+% verwendet werden. Auch das habe ich aus Kompatibilitätsgründen übernommen.
+% \begin{macrocode}
+ \hfil \nobreak\hb@xt@\@pnumwidth{\hss ##2}%
+ \par
+%<undottedtocline> \penalty\@highpenalty
+%<*largetocline>
+ \nobreak
+ \ifnum 0=
+ \scr@ifundefinedorrelax{chapter}{\if@compatibility 1\else 0\fi}{1}\relax
+ \global\@nobreaktrue
+ \everypar{\global\@nobreakfalse\everypar{}}%
+ \fi
+%</largetocline>
+ \endgroup
+ \fi
+%</undottedtocline|largetocline>
+%<*tocline>
+ \scr@dte@tocline{#1}{##1}{##2}%
+%</tocline>
+}
+%</dottedtocline|undottedtocline|largetocline|tocline>
+% \end{macrocode}
+% \end{macro}^^A \scr@dte@def@l@tocline
+% \end{macro}^^A \scr@dte@def@l@largetocline
+% \end{macro}^^A \scr@dte@def@l@undottedtocline
+% \end{macro}^^A \scr@dte@def@l@dottedtocline
+%
+% Für den Stil \texttt{tocline} werden diverse weitere Einstellungen und
+% Befehle benötigt:
+% \begin{macrocode}
+%<*tocline>
+\AtBeginDocument{%
+ \BeforeClosingMainAux{%
+ \begingroup
+ \def\do#1{%
+ \relax
+ \scr@ifundefinedorrelax{scr@dte@#1@maxnumwidth}{}{%
+ \ifdim \@nameuse{scr@dte@#1@maxnumwidth}>\z@
+ \if@filesw
+ \protected@write\@mainaux{}{%
+ \string\global\string\@namedef{scr@dte@#1@lastmaxnumwidth}%
+ {\the\@nameuse{scr@dte@#1@maxnumwidth}}%
+ }%
+ \fi
+ \@nameuse{scr@dte@#1@maxnumwidth}\z@
+ \fi
+ }%
+ }%
+ \@nameuse{scr@dte@donumwidth}%
+ \endgroup
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@dte@nosub}
+% \changes{v3.20}{2015/11/23}{neu (intern)}
+% \begin{macro}{\@scr@dte@nosub}
+% \changes{v3.20}{2015/11/23}{neu (intern)}
+% Über diese Hilfsmacros werden die Buchstaben \texttt{sub} am Anfang des
+% Arguments entfernt. Stehen diese gar nicht am Anfang, so wird ein Fehler
+% wegen falscher Verwendung von \cs{@scr@de@nosub} gemeldet.
+% \begin{macrocode}
+\newcommand*{\scr@dte@nosub}[1]{\@scr@dte@nosub #1\relax}
+\newcommand*{\@scr@dte@nosub}{}
+\def\@scr@dte@nosub sub#1\relax{#1}
+% \end{macrocode}
+% \end{macro}^^A \@scr@dte@nosub
+% \end{macro}^^A \scr@dte@nosub
+% \begin{macro}{\scr@dte@tocline}
+% \changes{v3.20}{2015/11/22}{neu (intern)}
+% In gewisser Weise entspricht diese Anweisung der \LaTeX-Kern-Anweisung
+% \cs{dottedtocline}. Allerdings werden hier vielfältige
+% Eingriffsmöglichkeiten untersützt, die jeweils durch Optionen gesteuert
+% werden können. Daher hat der Befehl auch nur drei Argumente:
+% \begin{description}
+% \item[\marg{Ebene}:] Der Name \meta{string} der Verzeichnisebene.
+% \item[\marg{Eintrag}:] Der Verzeichniseintrag \meta{string}.
+% \item[\marg{Seite}:] Die Seitenzahl \meta{string} des Verzeichniseintrags.
+% \end{description}
+% \begin{Length}{\scr@dte@tocline@numberwidth}
+% \changes{v3.20}{2016/01/15}{neu (intern)}
+% Für alle, die es interessiert, gibt diese Länge die tatsächliche Breite der
+% formatierten Nummer an.
+% \begin{macrocode}
+\newlength\scr@dte@tocline@numberwidth
+\newcommand*{\scr@dte@tocline}[3]{%
+ \ifnum \@nameuse{#1tocdepth}>\c@tocdepth
+ \else
+ \tocbasic@DependOnPenaltyAndTOCLevel{#1}%
+ \addvspace{\@nameuse{scr@tso@#1@beforeskip}}\relax
+ {%
+ \leftskip \@nameuse{scr@tso@#1@indent}\relax
+ \rightskip \@tocrmarg
+ \parfillskip -\rightskip
+ \@nameuse{Ifscr@tso@#1@raggedpage}{%
+ \addtolength{\parfillskip}{\z@ \@plus 1fil}%
+ }{}%
+ \parindent \@nameuse{scr@tso@#1@indent}\relax
+ \@afterindenttrue
+ \interlinepenalty\@M
+% \end{macrocode}
+% \changes{v3.21}{2016/06/06}{\cs{ragged\dots entry} wird (wieder)
+% ausgewertet}^^A
+% \begin{macrocode}
+ \expandafter\ifx\csname ragged#1entry\endcsname\raggedright
+ \addtolength\rightskip\@flushglue
+ \else
+ \def\reserved@a{\raggedright}%
+ \expandafter\ifx\csname ragged#1entry\endcsname\reserved@a
+ \addtolength\rightskip\@flushglue
+ \else
+ \renewcommand\reserved@a{\raggedright}%
+ \expandafter\ifx\csname ragged#1entry\endcsname\reserved@a
+ \addtolength\rightskip\@flushglue
+ \fi
+ \fi
+ \fi
+ \leavevmode
+ \@tempdima \@nameuse{scr@tso@#1@numwidth}\relax
+ \@nameuse{Ifscr@tso@#1@dynnumwidth}{%
+ \scr@ifundefinedorrelax{scr@dte@#1@lastmaxnumwidth}{}{%
+ \ifdim \@nameuse{scr@dte@#1@lastmaxnumwidth}>\@tempdima
+ \@tempdima\@nameuse{scr@dte@#1@lastmaxnumwidth}\relax
+ \fi
+ }%
+ }{}%
+ \advance\leftskip \@tempdima
+ \null\nobreak\hskip -\leftskip
+ {%
+% \end{macrocode}
+% An dieser Stelle wenden wir einen Trick an, um die Breite einer eventuell
+% vorhandenen Nummer während deren Ausgabe auszumessen. Dazu ist es eine
+% schlichte Notwendigkeit, dass \cs{numberline} die interne Definition
+% verwendet.
+% \begin{macrocode}
+ \usetocbasicnumberline
+ \let\scr@dte@numberline@box\numberline@box
+ \def\numberline@box##1{%
+ \sbox\scr@dte@tocline@numbox{\@nameuse{scr@tso@#1@numberformat}{##1}}%
+% \end{macrocode}
+% Die Zuweisung an die aktuelle Länge der Nummer muss global erfolgen, weil
+% wir hier in einer Gruppe sind.
+% \changes{v3.22}{2016/12/02}{fehlendes zweites \cs{relax} ergänzt}^^A
+% \begin{macrocode}
+ \global\scr@dte@tocline@numberwidth
+ \dimexpr\wd\scr@dte@tocline@numbox+\@nameuse{scr@tso@#1@numsep}\relax
+% \end{macrocode}
+% \changes{v3.22}{2016/12/02}{fehlendes zweites \cs{relax} ergänzt}^^A
+% Achtung: Hier braucht es ein zweites \cs{relax}, weil das erste von
+% \cs{dimexpr} aufgezehrt wird.
+% \begin{macrocode}
+ \relax
+ \ifdim \scr@dte@tocline@numberwidth
+ >\@nameuse{scr@dte@#1@maxnumwidth}\relax
+ \global\@nameuse{scr@dte@#1@maxnumwidth}\scr@dte@tocline@numberwidth
+ \fi
+ \@nameuse{Ifscr@tso@#1@dynnumwidth}{}{%
+ \ifdim \scr@dte@tocline@numberwidth
+ >\dimexpr \@nameuse{scr@tso@#1@numwidth}%
+ +\@nameuse{scr@tso@#1@numsep}\relax\relax
+%<class> \ClassWarning{\KOMAClassName
+%<package> \PackageWarning{tocbasic%
+ }{%
+ number width of #1 toc entries should be
+ increased!\MessageBreak
+ Currently used number width =
+ \the\wd\scr@dte@tocline@numbox,\MessageBreak
+ Wanted number separation
+ \space\space\space =
+ \the\dimexpr\@nameuse{scr@tso@#1@numsep}\relax,\MessageBreak
+ Reserved number width \space\space\space\space\space\space =
+ \the\dimexpr\@nameuse{scr@tso@#1@numwidth}\relax%
+ }%
+ \fi
+ }%
+ \scr@dte@numberline@box{\@nameuse{scr@tso@#1@numberformat}{##1}}%
+ \@nameuse{Ifscr@tso@#1@breakafternumber}{%
+ {\parfillskip\@flushglue\par}\nobreak\hskip-\leftskip
+ }{}%
+ }%
+ \@nameuse{scr@tso@#1@entryformat}{%
+ #2%
+ \nobreak
+ {%
+ \normalfont\normalsize\@nameuse{scr@tso@#1@linefill}%
+ \nobreak
+ \@nameuse{scr@tso@#1@pagenumberbox}{%
+ \@nameuse{scr@tso@#1@pagenumberformat}{#3}%
+ }%
+ }%
+ \@par
+ }%
+ }%
+ }%
+ \tocbasic@SetPenaltyByTOCLevel{#1}%
+ \fi
+}
+% \end{macrocode}
+% \end{Length}^^A \scr@dte@tocline@numberwidth
+% \begin{macro}{\scr@dte@tocline@numbox}
+% \changes{v3.20}{2015/11/25}{neue Box (intern)}
+% Wird benötigt, um die Breite der Nummer auszumessen und die Nummer später
+% wieder zu verwenden.
+% \begin{macrocode}
+\newsavebox\scr@dte@tocline@numbox
+% \end{macrocode}
+% \end{macro}^^A \scr@dte@tocline@numbox
+% \begin{macro}{\tocbasic@DependOnPenaltyAndTOCLevel}
+% \changes{v3.20}{2015/11/23}{neu}^^A
+% \changes{v3.20}{2016/03/12}{Anpassung an \textsf{tocbasic}-Syntax für
+% Befehle für Paketautoren}^^A
+% Führt eine gespeicherte Aktion in Abhängigkeit davon aus, ob der aktuelle
+% Penalty-Wert darauf schließen lässt, dass zuvor ein Eintrag mit einem
+% höheren, demselben oder einem tieferen Wert für die Ebene erfolgte.
+% \begin{macro}{\tocbasic@SetPenaltyByTOCLevel}
+% \changes{v3.20}{2015/11/23}{neu}
+% \changes{v3.20}{2016/03/12}{Anpassung an \textsf{tocbasic}-Syntax für
+% Befehle für Paketautoren}^^A
+% Setze die Strafpunkte für einen Umbruch entsprechend der aktuellen
+% Verzeichnisebene.
+% \begin{macro}{\LastTOCLevelWasHigher}
+% \changes{v3.20}{2015/11/23}{neu}
+% Standardaktion, falls der vorherige Level einen größeren Wert hatte: Umbruch
+% erlauben.
+% \begin{macro}{\LastTOCLevelWasSame}
+% \changes{v3.20}{2015/11/23}{neu}
+% Standardaktion, falls der vorherige Level denselben Wert hatte: Umbruch
+% erlauben.
+% \begin{macro}{\LastTOCLevelWasLower}
+% Standardaktion, falls der vorherige Level einen kleineren Wert hatte:
+% Penalty beibehalten und damit den Umbruch verbieten.
+% \changes{v3.20}{2015/11/23}{neu}
+% \begin{macrocode}
+\newcommand*{\tocbasic@DependOnPenaltyAndTOCLevel}[1]{%
+ \ifnum \lastpenalty<\numexpr 20009-\@nameuse{#1tocdepth}\relax
+ \@nameuse{scr@tso@#1@LastTOCLevelWasHigher}%
+ \else\ifnum \lastpenalty=\numexpr 20009-\@nameuse{#1tocdepth}\relax
+ \@nameuse{scr@tso@#1@LastTOCLevelWasSame}%
+ \else
+ \@nameuse{scr@tso@#1@LastTOCLevelWasLower}%
+ \fi
+ \fi
+}
+\newcommand*{\tocbasic@SetPenaltyByTOCLevel}[1]{%
+ \penalty \numexpr 20009-\@nameuse{#1tocdepth}\relax
+}
+\newcommand*{\LastTOCLevelWasHigher}{\ifvmode\addpenalty{\@lowpenalty}\fi}
+\newcommand*{\LastTOCLevelWasSame}{\ifvmode\addpenalty{\@lowpenalty}\fi}
+\newcommand*{\LastTOCLevelWasLower}{}
+% \end{macrocode}
+% \end{macro}^^A \tocbasic@SetPenaltyByTOCLevel
+% \end{macro}^^A \tocbasic@DependOnPenaltyAndTOCLevel
+% \end{macro}^^A \LastTOCLevelWasLower
+% \end{macro}^^A \LastTOCLevelWasSame
+% \end{macro}^^A \LastTOCLevelWasHigher
+% \begin{macro}{\TOCLineLeaderFill}
+% \changes{v3.20}{2015/11/14}{neu}
+% Füllt den Abstand zwischen Text und Seitenzahl komplett. Hat als einziges
+% optionales Argument das Füllzeichen.
+% \begin{macrocode}
+\newcommand*{\TOCLineLeaderFill}[1][.]{%
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{#1}\mkern \@dotsep
+ mu$}\hfill
+}
+%</tocline>
+% \end{macrocode}
+% \end{macro}^^A \TOCLineLeaderFill
+% \end{macro}^^A \scr@dte@tocline
+%
+% \begin{macro}{\scr@dte@def@l@default}
+% \changes{v3.20}{2015/12/16}{neu im Paket}^^A
+% Bereits im Paket gibt es einen Standardstil. Anderen Paketen ist es nicht
+% gestattet diesen umzudefinieren. Klassen ist das hingegen gestattet, damit
+% sie einen Dokument weiten Standardstil festlegen können.
+% \begin{macrocode}
+%<*default>
+%%% (run: style,dottedtocline)
+\CloneTOCEntryStyle{dottedtocline}{default}
+%</default>
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</style>
+%</package>
+% \fi
+%
+% \subsubsection{Von den \KOMAScript-Klassen genutzte Stile}
+%
+% \iffalse
+%<*class>
+%<*style>
+% \fi
+%
+% Einige Stile sollen nur definiert werden, wenn die Definition in die Klasse
+% geschrieben wird:
+%
+% \begin{macro}{\scr@dte@def@l@part}
+% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{part}}^^A
+% Dieser Verzeichnisstil existiert bei \textsf{scrbook}, \textsf{scrreprt} und
+% \textsf{scrartcl}. Das Format des Eintrags und der Seitenzahl wird dabei
+% über die Elemente \texttt{partentry} und \texttt{partentrypagenumber}
+% realisiert.
+% \begin{macrocode}
+%<*part>
+%%% (run: class,style,part)
+\CloneTOCEntryStyle{tocline}{part}
+\TOCEntryStyleStartInitCode{part}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@linefill\endcsname{\hfill}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@entryformat\endcsname[1]{\usekomafont{partentry}{##1}}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@pagenumberformat\endcsname[1]{%
+ \usekomafont{partentry}{\usekomafont{partentrypagenumber}{##1}}}%
+ \expandafter\providecommand\expandafter*%
+ \csname scr@tso@#1@beforeskip\endcsname{2.25em \@plus\p@}%
+}
+%</part>
+% \end{macrocode}
+% \end{macro}^^A \scr@dte@def@l@part
+%
+% \begin{macro}{\scr@dte@def@l@chapter}
+% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{chapter}}^^A
+% Dieser Verzeichnisstil existier bei \textsf{scrbook} und \textsf{scrreprt}.
+% \begin{macrocode}
+%<*chapter>
+%%% (run: class,style,chapter)
+\CloneTOCEntryStyle{tocline}{chapter}
+\TOCEntryStyleStartInitCode{chapter}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@linefill\endcsname{%
+ \if@chapterentrywithdots
+ \TOCLineLeaderFill\relax
+ \else
+ \hfill
+ \fi
+ }%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@entryformat\endcsname{\usekomafont{chapterentry}}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@pagenumberformat\endcsname[1]{%
+ \usekomafont{chapterentry}{\usekomafont{chapterentrypagenumber}{##1}}}%
+ \expandafter\providecommand\expandafter*%
+ \csname scr@tso@#1@beforeskip\endcsname{1.0em \@plus\p@}%
+}
+%</chapter>
+% \end{macrocode}
+% \end{macro}^^A \scr@dte@def@l@chapter
+%
+% \begin{macro}{\scr@dte@def@l@section}
+% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{section}}^^A
+% Bei den Klassen \textsf{scrbook} und \textsf{scrreprt} ist das der Stil für
+% die \emph{kleinen} Verzeichnisebenen. Bei \textsf{scrartcl} ist es dagegen
+% der Stil für die obere Verzeichnisebene und entspricht damit obigem Stil
+% \texttt{chapter}.
+% \begin{macrocode}
+%<*section>
+%%% (run: class,style,section)
+\CloneTOCEntryStyle{tocline}{section}
+%<*book|report>
+\TOCEntryStyleStartInitCode{section}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@linefill\endcsname{\TOCLineLeaderFill\relax}%
+}
+%</book|report>
+%<*article>
+\TOCEntryStyleStartInitCode{section}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@linefill\endcsname{%
+ \if@sectionentrywithdots
+ \TOCLineLeaderFill\relax
+ \else
+ \hfill
+ \fi
+ }%
+ % Für die Einträge die Schrift von Element sectionentry verwenden.
+ \expandafter\providecommand%
+ \csname scr@tso@#1@entryformat\endcsname{\usekomafont{sectionentry}}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@pagenumberformat\endcsname[1]{\usekomafont{sectionentry}{\usekomafont{sectionentrypagenumber}{##1}}}%
+ \expandafter\providecommand\expandafter*%
+ \csname scr@tso@#1@beforeskip\endcsname{1.0em \@plus\p@}%
+}
+%</article>
+%</section>
+% \end{macrocode}
+% \end{macro}^^A \scr@dte@def@l@section
+%
+% \begin{macro}{\scr@dte@def@l@subsection}
+% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{subsection}}^^A
+% Dieser Stil existiert nur bei \textsf{scrartcl} und entspricht dann dem Stil
+% \texttt{section} bei \textsf{scrbook} und \textsf{scrreprt}.
+% \begin{macrocode}
+%<*subsection&article>
+%%% (run: class,style,subsection)
+\CloneTOCEntryStyle{tocline}{subsection}
+\TOCEntryStyleStartInitCode{subsection}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@linefill\endcsname{\TOCLineLeaderFill\relax}%
+}
+%</subsection&article>
+% \end{macrocode}
+% \end{macro}^^A \scr@dte@def@l@subsection
+%
+% \begin{macro}{\scr@dte@def@l@default}
+% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{default}}^^A
+% Dieser Stil entspricht bei \textsf{scrbook} und \textsf{scrreprt} dem Stil
+% \texttt{section} und bei \textsf{scrartcl} dem Stil \textsf{subsection}.
+% \begin{macrocode}
+%<*default>
+%%% (run: class,style,default)
+%<book|report>\CloneTOCEntryStyle{section}{default}
+%<article>\CloneTOCEntryStyle{subsection}{default}
+%</default>
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</style>
+%</class>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-tocstyle.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% coding: iso-latin-1
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-typearea.dtx b/macros/latex/contrib/koma-script/source/scrkernel-typearea.dtx
new file mode 100644
index 0000000000..d1b0b2d59c
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-typearea.dtx
@@ -0,0 +1,3338 @@
+%\CheckSum{2882}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-typearea.dtx
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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-2018
+%
+% 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^^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 meta-comment
+%%% From File: $Id: scrkernel-typearea.dtx 2993 2018-07-16 07:33:22Z kohm $
+%<identify>%%% (run: identify)
+%<init>%%% (run: init)
+%<options>%%% (run: options)
+%<body>%%% (run: body)
+%<final>%%% (run: final)
+%<package&identify>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-07-16 09:33:22 +0200 (Mon, 16 Jul 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 2993 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-typearea.dtx}[%
+ \filedate\space\filerevision\space
+ KOMA-Script
+ }
+\reserved@a
+%</dtx>
+%<*dtx|(package&typearea&identify)>
+%<package>\ProvidesPackage{typearea}[%
+%!KOMAScriptVersion
+ package
+%<*dtx>
+ source
+%</dtx>
+ (type area)]
+%</dtx|(package&typearea&identify)>
+%<*dtx>
+%^^A The ins file:
+\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,typearea,identify}%
+ \from{scrkernel-basics.dtx}{load}%
+ \from{scrkernel-compatibility.dtx}{package,typearea,init}%
+ \from{scrkernel-typearea.dtx}{package,typearea,init}%
+ \from{scrkernel-compatibility.dtx}{package,typearea,option}%
+ \from{scrkernel-typearea.dtx}{package,typearea,options}%
+ \from{scrkernel-compatibility.dtx}{package,typearea,body}%
+ \from{scrkernel-typearea.dtx}{package,typearea,body}%
+ \from{scrkernel-typearea.dtx}{package,typearea,final}%
+ \from{scrlogo.dtx}{logo}%
+ }%
+ }
+ \@@input scrstrop.inc
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+%^^A The documentation driver (needed only for checksum calculation):
+\documentclass{scrdoc}
+\usepackage[main=english,ngerman]{babel}
+\usepackage[latin1]{inputenc}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrkernel-typearea.dtx}
+\title{\KOMAScript{} \partname\ \texttt{\filename}%
+ \footnote{This is \fileversion\ of file \texttt{\filename}.}}
+\date{\filedate}
+\author{Markus Kohm}
+
+\begin{document}
+ \maketitle
+ \tableofcontents
+ \DocInput{\filename}
+\end{document}
+%</dtx>
+% \fi^^A meta-comment
+%^^A The documentation part:
+%
+% \changes{v2.95}{2002/06/20}{first version after splitting
+% \texttt{scrclass.dtx}}^^A
+% \changes{v3.24}{2017/07/23}{reorganization of code into semantic
+% portions}^^A
+% \changes{v3.24}{2017/07/23}{start of English translation}^^A
+%
+% \section{Typing Area Macros}
+%
+% This section contains macros for the typing area. These result not only in
+% the package \Package{typearea} but also provide features for the
+% \KOMAScript{} classes.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+%^^A The source part:
+%
+% \subsection{Loading packages}
+%
+% Package \Package{typearea} needs package \Package{scrkbase}. But this will
+% be loaded by \File{scrkernel-basics.dtx} just after the identify run of this
+% file. It does not need other packages.
+%
+% The \KOMAScript{} classes need package \Package{typearea}. This will be
+% loaded here as an early body action. Nevertheless, at this state the typing
+% area option code for the classes has already been loaded. So before loading
+% the almost identical option code of the package, some macros have to be
+% reset:
+% \begin{macrocode}
+%<*class&body>
+\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}
+% Now we can load \Package{typearea}:
+% \changes{v2.95}{2002/06/22}{Use \cs{KOMAScriptVersion} while loading
+% \Package{typearea}}^^A
+% We use \cs{KOMAScriptVersion} to verify the identical versions of
+% \KOMAScript{} and the package. See \File{scrkernel-version.dtx} for more
+% information about this verification.
+% \begin{macrocode}
+\RequirePackage{typearea}[\KOMAScriptVersion]
+%</class&body>
+% \end{macrocode}
+%
+% \subsection{Selection of paper size}
+%
+% Before we can define page margins and a typing area, we have to define the
+% paper size. Beside \Package{typearea} also \Package{scrletter} uses some of
+% this code, because it needs the paper size, too.
+%
+% \begin{macro}{\PaperNameToSize}
+% \changes{v3.23}{2017/02/22}{new}^^A
+% This command sets \cs{paperheight} and \cs{paperwidth} depending on
+% the name of a paper size. It currently supports the ISO formats of the
+% series A, B, C and D and the American formats letter, legal and
+% executive. The command is defined using \Macro{providecommand} so a class
+% can define it different before loading \Package{typearea}. The first
+% optional argument is the error class. Error classes will be defined using
+% \Macro{ProvideUnknownPaperSizeError} later. The second argument is the name
+% of the paper size.
+% \begin{macrocode}
+%<*package&options>
+\providecommand*{\PaperNameToSize}[2][warning]{%
+ \ifstr{#2}{letter}{%
+ \setlength\paperheight{11in}%
+ \setlength\paperwidth {8.5in}%
+ }{%
+ \ifstr{#2}{legal}{%
+ \setlength\paperheight{14in}%
+ \setlength\paperwidth {8.5in}%
+ }{%
+ \ifstr{#2}{executive}{%
+ \setlength\paperheight{10.5in}%
+ \setlength\paperwidth {7.25in}%
+ }{%
+ \ifstr{#2}{}{%
+ \ISO@PaperNameToSize[#1]{}{}\@nil
+ }{%
+ \edef\reserved@a{\noexpand\ISO@PaperNameToSize[#1]#2 \noexpand\@nil}%
+ \reserved@a
+ }%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\ISO@PaperNameToSize}
+% \changes{v3.23}{2017/02/22}{new (internal)}^^A
+% For ISO paper sizes a sub-macro is used. It has to split the series and the
+% root.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{ISO@PaperNameToSize}{%
+ \def\ISO@PaperNameToSize[#1]#2#3\@nil{%
+ \lowercase{\edef\reserved@a{#2}}%
+ \@tempswafalse
+ \if \reserved@a a%
+ \ifnumber{#3}{%
+ \setlength{\paperwidth}{841sp}%
+ \setlength{\paperheight}{1189sp}%
+ \@tempswatrue
+ }{}%
+ \else
+ \if \reserved@a b%
+ \ifnumber{#3}{%
+ \setlength{\paperwidth}{1000sp}%
+ \setlength{\paperheight}{1414sp}%
+ \@tempswatrue
+ }{}%
+ \else
+ \if \reserved@a c%
+ \ifnumber{#3}{%
+ \setlength{\paperwidth}{917sp}%
+ \setlength{\paperheight}{1297sp}%
+ \@tempswatrue
+ }{}%
+ \else
+ \if \reserved@a d%
+ \ifnumber{#3}{%
+ \setlength{\paperwidth}{771sp}%
+ \setlength{\paperheight}{1090sp}%
+ \@tempswatrue
+ }{}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@tempswa
+ \@tempcnta=#3\relax
+ \@whilenum\@tempcnta>\z@
+ \do{\setlength{\@tempdima}{\paperwidth}%
+ \setlength{\paperwidth}{.5\paperheight}%
+ \setlength{\paperheight}{\@tempdima}%
+ \advance\@tempcnta by\m@ne
+ }%
+ \multiply\paperwidth by186468
+ \multiply\paperheight by186468
+ \else
+% \end{macrocode}
+% The paper size is not a supported ISO format. If
+% \Macro{scr@UnknownPaperSize@}\meta{errorclass} is defined, use it to show
+% the error. If not, use \Macro{scr@UnknownPaperSize@error}. This means,
+% \meta{errorclass} \texttt{error} has to be defined.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{scr@UnknownPaperSize@#1}{%
+ \scr@UnknownPaperSize@error{#2#3}%
+ }{%
+ \@nameuse{scr@UnknownPaperSize@#1}{#2#3}%
+ }%
+ \fi
+ }%
+}{}
+% \end{macrocode}
+% \begin{macro}{\ProvideUnknownPaperSizeError}
+% \changes{v3.23}{2017/02/22}{new}^^A
+% Define a new error class for unknown paper formats. The argument is the new
+% error class. Each error class is represented by a command
+% \Macro{scr@UnknownPaperSize@}\meta{errorclass}. That command also has
+% exactly one argument, the unknown paper size.
+% \begin{macrocode}
+\providecommand*{\ProvideUnknownPaperSizeError}[1]{%
+ \expandafter\providecommand\expandafter*%
+ \csname scr@UnknownPaperSize@#1\endcsname[1]%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@UnkownPaperSize@error}
+% \changes{v3.23}{2017/02/22}{new (internal)}
+% \begin{macro}{\scr@UnkownPaperSize@warning}
+% \changes{v3.23}{2017/02/22}{new (internal)}
+% \begin{macro}{\scr@UnkownPaperSize@info}
+% \changes{v3.23}{2017/02/22}{new (internal)}
+% \begin{macro}{\scr@UnkownPaperSize@ignore}
+% \changes{v3.23}{2017/02/22}{new (internal)}
+% Error handling (error classes) for \Macro{PaperNameToSize}.
+% \begin{macrocode}
+\ProvideUnknownPaperSizeError{error}{%
+ \PackageError{%
+%<typearea> typearea%
+%<letter> scrletter%
+ }{Unknown paper size #1}{%
+ \string\paperwidth\space and \string\paperheight\space stay unchanged,
+ because of unknown paper size.%
+ }%
+}
+%<*typearea>
+\ProvideUnknownPaperSizeError{warning}{%
+ \PackageWarning{%
+ typearea%
+ }{%
+ \string\paperwidth\space and \string\paperheight\space stay
+ unchanged, because\MessageBreak
+ of unknown paper size #1%
+ }%
+}
+\ProvideUnknownPaperSizeError{info}{%
+ \PackageInfo{%
+ typearea
+ }{%
+ \string\paperwidth\space and \string\paperheight\space stay
+ unchanged, because\MessageBreak
+ of unknown paper size #1%
+ }%
+}
+\ProvideUnknownPaperSizeError{ignore}{}
+%</typearea>
+%</package&options>
+% \end{macrocode}
+% \end{macro}^^A \scr@UnknownPaperSize@error
+% \end{macro}^^A \scr@UnknownPaperSize@warning
+% \end{macro}^^A \scr@UnknownPaperSize@info
+% \end{macro}^^A \scr@UnknownPaperSize@ignore
+% \end{macro}^^A \ProvideUnknownPaperSizeError
+% \end{macro}^^A \ISO@PaperNameToSize
+% \end{macro}^^A \PaperNameToSize
+%
+% \begin{option}{a4paper}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}^^A
+% \begin{option}{a5paper}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}^^A
+% \begin{option}{b5paper}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}^^A
+% \begin{option}{letterpaper}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}^^A
+% \begin{option}{legalpaper}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}^^A
+% \begin{option}{executivepaper}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}^^A
+% \begin{option}{landscape}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}^^A
+% \begin{option}{portrait}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{the option is standard but not deprecated}^^A
+% The paper sizes of the standard classes are a special case. For
+% compatibility they are declared explicitly. Note: There is still a pattern
+% matching implementation for other paper size options, but the usage of those
+% is hardly deprecated.
+% \begin{macrocode}
+%<*package&typearea&options>
+\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}
+%</package&typearea&options>
+% \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}{new implementation}^^A
+% \changes{v3.01b}{2008/12/09}{height and width swapped}^^A
+% \changes{v3.02c}{2009/02/12}{new \Option{paper!=seascape}}^^A
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}^^A
+% \changes{v3.22}{2016/07/29}{paper orientation depends on format name}^^A
+% Normally, the paper size should be set using this option. It provides the
+% ISO series A, B, C, D, value pairs
+% \Option{(\meta{width},\meta{height})} and the orientations
+% \Option{portrait}, \Option{landscape} and \Option{seascape}.
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMA@key{paper}{%
+ \ifstr{#1}{seascape}{%
+ \@seascapetrue
+ \expandafter\ifnum\scr@ta@v@is@ge{3.22}\relax
+ \@landscapetrue
+ \scr@setpaperorientation
+ \else
+ \if@landscape\else\scr@switchpapersizes\@landscapetrue\fi
+ \fi
+ \FamilyKeyStateProcessed
+ \KOMA@kav@remove{.typearea.\scr@pkgextension}{paper}{landscape}%
+ \KOMA@kav@remove{.typearea.\scr@pkgextension}{paper}{portrait}%
+ \KOMA@kav@remove{.typearea.\scr@pkgextension}{paper}{seascape}%
+ \KOMA@kav@add{.typearea.\scr@pkgextension}{paper}{seascape}%
+ }{%
+ \ifstr{#1}{landscape}{%
+ \@seascapefalse
+ \expandafter\ifnum\scr@ta@v@is@ge{3.22}\relax
+ \@landscapetrue
+ \scr@setpaperorientation
+ \else
+ \if@landscape\else\scr@switchpapersizes\@landscapetrue\fi
+ \fi
+ \FamilyKeyStateProcessed
+ \KOMA@kav@remove{.typearea.\scr@pkgextension}{paper}{landscape}%
+ \KOMA@kav@remove{.typearea.\scr@pkgextension}{paper}{portrait}%
+ \KOMA@kav@remove{.typearea.\scr@pkgextension}{paper}{seascape}%
+ \KOMA@kav@add{.typearea.\scr@pkgextension}{paper}{landscape}%
+ }{%
+ \ifstr{#1}{portrait}{%
+ \expandafter\ifnum\scr@ta@v@is@ge{3.22}\relax
+ \@landscapefalse
+ \scr@setpaperorientation
+ \else
+ \if@landscape\scr@switchpapersizes\@landscapefalse\fi
+ \fi
+ \FamilyKeyStateProcessed
+ \KOMA@kav@remove{.typearea.\scr@pkgextension}{paper}{landscape}%
+ \KOMA@kav@remove{.typearea.\scr@pkgextension}{paper}{portrait}%
+ \KOMA@kav@remove{.typearea.\scr@pkgextension}{paper}{seascape}%
+ \KOMA@kav@add{.typearea.\scr@pkgextension}{paper}{portrait}%
+ }{%
+ \ifstr{#1}{letter}{%
+ \if@landscape
+ \setlength\paperheight{8.5in}%
+ \setlength\paperwidth {11in}%
+ \else
+ \setlength\paperheight{11in}%
+ \setlength\paperwidth {8.5in}%
+ \fi
+ \FamilyKeyStateProcessed
+ \KOMA@kav@removekey{.typearea.\scr@pkgextension}{paper}%
+ \KOMA@kav@add{.typearea.\scr@pkgextension}{paper}{letter}%
+ \KOMA@kav@xadd{.typearea.\scr@pkgextension}{paper}{%
+ \if@seascape seascape\else
+ \if@landscape landscape\else portrait\fi\fi
+ }%
+ }{%
+ \ifstr{#1}{legal}{%
+ \if@landscape
+ \setlength\paperheight{8.5in}%
+ \setlength\paperwidth {14in}%
+ \else
+ \setlength\paperheight{14in}%
+ \setlength\paperwidth {8.5in}%
+ \fi
+ \FamilyKeyStateProcessed
+ \KOMA@kav@removekey{.typearea.\scr@pkgextension}{paper}%
+ \KOMA@kav@add{.typearea.\scr@pkgextension}{paper}{legal}%
+ \KOMA@kav@xadd{.typearea.\scr@pkgextension}{paper}{%
+ \if@seascape seascape\else
+ \if@landscape landscape\else portrait\fi\fi
+ }%
+ }{%
+ \ifstr{#1}{executive}{%
+ \if@landscape
+ \setlength\paperheight{7.25in}%
+ \setlength\paperwidth {10.5in}%
+ \else
+ \setlength\paperheight{10.5in}%
+ \setlength\paperwidth {7.25in}%
+ \fi
+ \FamilyKeyStateProcessed
+ \KOMA@kav@removekey{.typearea.\scr@pkgextension}{paper}%
+ \KOMA@kav@add{.typearea.\scr@pkgextension}{paper}{executive}%
+ \KOMA@kav@xadd{.typearea.\scr@pkgextension}{paper}{%
+ \if@seascape seascape\else
+ \if@landscape landscape\else portrait\fi\fi
+ }%
+ }{%
+ \iso@paper{#1}%
+ \if@tempswa
+ \FamilyKeyStateProcessed
+ \KOMA@kav@removekey{.typearea.\scr@pkgextension}{paper}%
+ \KOMA@kav@xadd{.typearea.\scr@pkgextension}{paper}{#1}%
+ \KOMA@kav@xadd{.typearea.\scr@pkgextension}{paper}{%
+ \if@seascape seascape\else
+ \if@landscape landscape\else portrait\fi\fi
+ }%
+ \else
+ \expandafter\maybe@pair#1::\@nil
+ \if@tempswa
+ \FamilyKeyStateProcessed
+ \KOMA@kav@removekey{.typearea.\scr@pkgextension}{paper}%
+ \expandafter\ifnum \scr@ta@v@is@lt{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\paperwidth{\@tempb}%
+ \setlength\paperheight{\@tempa}%
+ \else
+ \setlength\paperwidth{\@tempa}%
+ \setlength\paperheight{\@tempb}%
+ \fi
+ \expandafter\ifnum \scr@ta@v@is@lt{3.22}\relax
+ \if@landscape
+ \KOMA@kav@xadd{.typearea.\scr@pkgextension}{paper}{\@tempa:\@tempb}%
+ \else
+ \KOMA@kav@xadd{.typearea.\scr@pkgextension}{paper}{\@tempb:\@tempa}%
+ \fi
+ \else
+ \scr@setpaperorientation
+ \KOMA@kav@xadd{.typearea.\scr@pkgextension}{paper}{%
+ \the\paperwidth:\the\paperheight}%
+ \fi
+ \KOMA@kav@xadd{.typearea.\scr@pkgextension}{paper}{%
+ \if@seascape seascape\else
+ \if@landscape landscape\else portrait\fi\fi
+ }%
+ \else
+ \KOMA@unknown@keyval{paper}{#1}{%
+ `letter', `legal', `executive', `a'<nr>, `b'<nr>,
+ `c'<nr>, `d'<nr>,\MessageBreak
+ <width>`:'<height>, `landscape' and `portrait'%
+ }%
+ \fi
+ \fi
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\if@seascape}
+% \changes{v3.02c}{2009/02/12}{new}^^A
+% \begin{macro}{\@seascapetrue}
+% \changes{v3.02c}{2009/02/12}{new}^^A
+% \begin{macro}{\@seascapefalse}
+% \changes{v3.02c}{2009/02/12}{new}^^A
+% This switch stores only whether or not the landscape orientation should be
+% up-side-down. Currently this makes sense only using \File{dvips}.
+% \begin{macrocode}
+\newif\if@seascape
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\if@landscape}
+% \begin{macro}{\@landscapetrue}
+% \begin{macro}{\@landscapefalse}
+% This switch stores whether using portrait or landscape orientation.
+% \begin{macrocode}
+\newif\if@landscape
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\maybe@pair}
+% \changes{v2.95}{2002/12/03}{new (internal)}^^A
+% \changes{v2.97e}{2007/11/26}{works really}^^A
+% Test whether the following parameter is of kind \texttt{\meta{first
+% argument}:\meta{second argument}}. If so \cs{@tempa} will become \meta{first
+% argument} and \cs{@tempb} will become \meta{second argument} and
+% \cs{if@tempswa} will become \cs{iftrue}. Otherwise \cs{if@tempswa} is
+% \cs{iffalse} and \cs{@tempa} and \cs{@tempb} are not specified.
+% \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
+}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \subsection{Special handling of \Package{geometry}}
+%
+% \begin{option}{usegeometry}
+% \changes{v3.17}{2015/02/07}{new}^^A
+% \Package{typearea} optionally can pass several settings to package
+% \Package{geometry}. The user decides whether or not to use this.
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMA@ifkey{usegeometry}{@ta@usegeometry}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{option}
+%
+%
+% \subsection{Setting the output paper size}
+%
+% The document paper format of option \Option{paper} is one thing. It is used
+% only for calculation of the dimensions used by \TeX{}. Originally
+% \textsc{dvi} does not know something like a paper size. It just contained
+% relative movements from the current position starting with the
+% origin. Setting up a page size depends on the output driver or back-end.
+%
+% \begin{option}{pagesize}
+% \changes{v2.7g}{2001/04/17}{new}^^A
+% \changes{v2.95}{2002/08/27}{new implementation}^^A
+% \changes{v3.02c}{2009/02/14}{new \Option{pagesize!=false}}^^A
+% \changes{v3.05a}{2010/03/18}{new \Option{pagesize!=dvipdfmx}}^^A
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}^^A
+% \changes{v3.17a}{2015/05/03}{logic redesigned}^^A
+% \changes{v3.20}{2015/07/10}{\File{luatex} as a synonym of
+% \File{pdftex}}^^A
+% This option is the main element for telling pdf\TeX, \File{dvips} or V\TeX{}
+% which paper size to use. It is also used by some deprecated options. Here
+% are the values and their meanings:
+% \begin{labeling}[~--]{\Option{automedia}}
+% \item[\Option{auto}] combination of options \Option{pdftex} and
+% \Option{dvips}.
+% \item[\Option{automedia}] like \Option{auto} with additional setting of
+% \cs{mediawidth} and \cs{mediaheight} if available.
+% \item[\Option{dvips}] adds a \File{dvips} \cs{special} to set the paper
+% size. This should be done only once in the document preamble. Usage inside
+% the document body is not fully supported and will raise a warning.
+% \item[\Option{dvipdfmx}] adds a \File{dvipdfmx} \cs{special} to set the
+% paper size.
+% \item[\Option{false}] switch of the automatic driver page size setting,
+% i.e., if there are changes inside the document.
+% \item[\Option{pdftex}] set \cs{pdfpagewidth} and \cs{pdfpageheight} if
+% available.
+% \end{labeling}
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMA@key{pagesize}[auto]{%
+ \KOMA@set@ncmdkey{pagesize}{@pagesizelast}{%
+ {off}{-1},{no}{-1},{false}{-1},%
+ {auto}{0},{automedia}{1},{dvips}{2},{pdftex}{3},{luatex}{3},{dvipdfmx}{4}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifcase\number\@pagesizelast\relax
+ \edef\@pagesizelast{auto}%
+ \if@atdocument
+ \set@pdftexpagesize
+ \set@dvipspagesize
+ \fi
+ \or
+ \edef\@pagesizelast{automedia}%
+ \if@atdocument
+ \set@pdftexpagesize
+ \set@vtexpagesize
+ \set@dvipspagesize
+ \fi
+ \or
+ \edef\@pagesizelast{dvips}%
+ \if@atdocument
+ \set@dvipspagesize
+ \fi
+ \or
+ \edef\@pagesizelast{pdftex}%
+ \if@atdocument
+ \set@pdftexpagesize
+ \fi
+ \or
+ \edef\@pagesizelast{dvipdfmx}%
+ \if@atdocument
+ \set@dvipdfmxpagesize
+ \fi
+ \else
+ \edef\@pagesizelast{false}%
+ \fi
+ \KOMA@kav@xreplacevalue{.typearea.\scr@pkgextension}%
+ {pagesize}{\@pagesizelast}%
+ \fi
+}
+% \end{macrocode}
+% \begin{macro}{\@pagesizelast}
+% This internal macro stores the current value of option \Option{pagesize} and
+% is needed to use the correct signalling if option \Option{paper} is used
+% inside the document and the initial setup in |\begin{document}|.
+% \begin{macrocode}
+\newcommand\@pagesizelast{auto}
+\AtBeginDocument{%
+ \KOMAExecuteOptions[.typearea.\scr@pkgextension]{pagesize=\@pagesizelast}%
+% \end{macrocode}
+% \end{macro}^^A \@pagesizelast
+%
+% \begin{macro}{\set@pdftexpagesize}
+% \changes{v2.95}{2002/08/27}{new (internal)}^^A
+% \changes{v3.20}{2015/07/10}{if \cs{pdfpage\dots} does not exist
+% \cs{page\dots} will be tried (needed for lua\TeX{}~0.80.1)}^^A
+% \begin{macro}{\set@dvipspagesize}
+% \changes{v2.95}{2002/08/27}{new (internal)}^^A
+% \changes{v3.02c}{2009/02/13}{respecting \Option{seascape}}
+% \changes{v3.02c}{2009/02/14}{can be used inside the document}^^A
+% \changes{v3.12}{2012/02/06}{not expanded
+% \cs{let}\cs{if@tempswa}\cs{if@dvips} does even work is the later is not
+% yet defined}
+% \begin{macro}{\setnot@dvipspagesize}
+% \changes{v2.95}{2002/08/27}{new (internal)}^^A
+% \begin{macro}{\set@dvipdfmxpagesize}
+% \changes{v3.05a}{2010/03/18}{new (internal)}^^A
+% \begin{macro}{\set@vtexpagesize}
+% \changes{v2.95}{2002/08/27}{new (internal)}^^A
+% \begin{macro}{\scr@updatedvipspagesize}
+% \changes{v3.02c}{2009/02/14}{new (internal)}^^A
+% \changes{v3.12}{2013/05/10}{deactivated, if \cs{XeTeXversion} exists}^^A
+% Option \Option{pagesize} needs some internal macros.
+% \begin{description}
+% \item{Attention:} The definition of these macros may change at usage of
+% themselves or at |\begin{document}|.
+% \end{description}
+% First of all the definition from |\begin{document}|:
+% \begin{macrocode}
+ \expandafter\ifnum\scr@ta@v@is@gt{3.02b}\relax
+ \renewcommand*{\set@dvipspagesize}{%
+% \end{macrocode}
+% \changes{v3.12}{2012/11/23}{use paper size update only for DVI and PS}^^A
+% \changes{v3.12}{2012/02/06}{not expanded
+% \cs{let}\cs{if@tempswa}\cs{if@dvips} does even work is the later is not
+% yet defined}^^A
+% Test whether unspecified \textsc{DVI} output or specified \textsc{PS} output
+% is used. Only in that cases the \textsc{PS} code for paper size updates will
+% be used.
+% \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}
+% If \cs{AtBeginShipoutNext} is available (mostly because of loading package
+% \Package{atbegshi}) use it so execute the code at least before other code
+% that has been added to \cs{shipout}. Unfortunately this is not reliable. If
+% \cs{AtBeginShipout} is used after \cs{set@dvipspagesize} (this means the
+% recalculation of the typing area and the margins) but before the current
+% page has been shipped out the code of such \cs{AtBeginShipout} will be lost!
+% \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}
+% If \cs{AtNextShipout} is available (mostly because of loading package
+% \Package{everyshi} use it to execute the code at least before other code
+% that has been added to \cs{shipout}. Unfortunately this is not reliable. If
+% \cs{AtNextShipout} or \cs{EveryShipout} is used after \cs{set@dvipspagesize}
+% (this means the recalculation of the typing area and the margins) but before
+% the current page has been shipped out the code of such \cs{AtNextShipout} or
+% \cs{EveryShipout} will be lost!
+% \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 this case (neither \textsc{DVI} nor \textsc{PS} output) we only have to
+% finish the group that has been used to keep changes of \cs{if@tempswa}
+% local.
+% \begin{macrocode}
+ \endgroup
+ \fi
+ }%
+ \else
+ \let\set@dvipspagesize=\setnot@dvipspagesize
+ \fi
+ \renewcommand*{\set@dvipdfmxpagesize}{%
+ \scr@ifdvioutput{%
+ \special{papersize=\the\paperwidth,\the\paperheight}%
+ }{}%
+ }%
+}
+% \end{macrocode}
+% And now the definition that is used before |\begin{document}| but executed
+% the first time inside |\begin{document}|.
+% \changes{3.21}{2016/05/27}{two missing backslashs added}
+% \begin{macrocode}
+\newcommand*{\set@pdftexpagesize}{%
+ \scr@ifundefinedorrelax{pdfpagewidth}{%
+ \scr@ifundefinedorrelax{pagewidth}{}{\pagewidth=\paperwidth}%
+ }{\pdfpagewidth=\paperwidth}%
+ \scr@ifundefinedorrelax{pdfpageheight}{%
+ \scr@ifundefinedorrelax{pageheight}{}{\pageheight=\paperheight}%
+ }{\pdfpageheight=\paperheight}%
+}
+\newcommand*{\set@dvipspagesize}{%
+ \begingroup
+ \@tempswafalse
+ \scr@ifdvioutput{\@tempswatrue}{%
+ \ifnotundefined{if@dvips}{%
+ \expandafter\let\csname if@tempswa\expandafter\endcsname
+ \csname if@dvips\endcsname
+ }{}%
+ }{}%
+% \end{macrocode}
+% \changes{v3.22}{2016/08/04}{\textsf{preview} workaround}^^A
+% If package \Package{preview} has been loaded with option \Option{tightpage},
+% which can be recognized by a defined macro \cs{pr@nextbb}, and if the
+% package is active, we do not add \textsc{DVI} specials, because it would
+% disturb Xe\LaTeX.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{pr@nextbb}{}{%
+ \expandafter\ifx\csname ifPreview\expandafter\endcsname
+ \csname iftrue\endcsname
+ \PackageInfo{typearea}{%
+ package `preview' with option `tightpage' detected.\MessageBreak
+ initial page size special deactivated%
+ }%
+ \@tempswafalse
+ \fi
+ }%
+ \if@tempswa
+ \endgroup
+ \AtBeginDvi{%
+ \special{papersize=\the\paperwidth,\the\paperheight}%
+ \if@seascape\special{! TeXDict begin /landplus90{true}store end }\fi
+ }%
+ \expandafter\ifnum\scr@ta@v@is@gt{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{%
+ \AtBeginDvi{%
+ \special{papersize=\the\paperwidth,\the\paperheight}%
+ }%
+ }{}%
+}
+\newcommand*{\set@vtexpagesize}{%
+ \ifnotundefined{mediawith}{\mediawidth=\paperwidth}{}%
+ \ifnotundefined{mediaheight}{\mediaheight=\paperheight}{}%
+}
+\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}%
+ }{}%
+}
+%</package&typearea&options>
+% \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}{new}^^A
+% \changes{v2.95}{2002/08/27}{new implementation}^^A
+% \changes{v2.98c}{2008/04/09}{replacement changed}^^A
+% \changes{v2.98c}{2008/04/09}{info instead of warning}^^A
+% \changes{v3.01a}{2008/11/21}{it's a standard option not deprecated}^^A
+% This option is a kind of obsolete. It is now implemented using
+% \Option{pagesize}. But because this is a standard option using several other
+% packages we only show a standard option information instead of a deprecated
+% option warning. Note: Usage of \Option{pagesize=automedia} can still result
+% in a warning message!
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMA@DeclareStandardOption[typearea]{dvips}{%
+ pagesize=automedia%
+}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{pdftex}
+% \changes{v2.7g}{2001/04/17}{new}^^A
+% \changes{v2.95}{2002/08/27}{new implementation}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{it's a standard option not deprecated}^^A
+% This option is a kind of obsolete. It is now implemented using
+% \Option{pagesize}. But because this is a standard option using several other
+% packages we only show a standard option information instead of a deprecated
+% option warning.
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMA@DeclareStandardOption[typearea]{pdftex}{%
+ pagesize=pdftex%
+}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{option}
+%
+% \subsection{Influencing left and right margin proportions}
+%
+% Options like \Option{twoside} or \Option{twocolumn} influence the
+% proportions of the left and right margin and indirectly also the top and the
+% bottom margin. They are also very important for the document classes.
+%
+% \begin{option}{oneside}
+% \changes{v2.97e}{2007/11/23}{pass option from class to
+% \Package{typearea}}^^A
+% \changes{v3.01a}{2008/11/21}{it's a standard option not deprecated}^^A
+% \begin{option}{twoside}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v2.97e}{2007/11/23}{pass option from class to
+% \Package{typearea}}^^A
+% \changes{v3.00}{2008/07/09}{new option \Option{twoside!=semi}}^^A
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}^^A
+% \changes{v3.13a}{2014/04/09}{the class also uses status signaling with
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.17}{2015/03/17}{automatic usage of \cs{flushbottom} and
+% \cs{raggedbottom}}^^A
+% \changes{v3.17}{2015/03/17}{early setting of default}^^A
+% \changes{v3.17}{2015/03/18}{use \cs{cleardoubleoddpage} if available}^^A
+% \begin{macro}{\if@semitwoside}
+% \changes{v3.00}{2008/07/09}{new boolean switch (intern)}^^A
+% \begin{macro}{\if@twoside}
+% \changes{v3.00}{2008/07/09}{switch also sets \cs{if@semitwoside}}^^A
+% Do we have a single sided or double sided layout?
+% \begin{macrocode}
+%<*package&typearea&options>
+\newif\if@semitwoside
+\g@addto@macro\@twosidetrue\@semitwosidefalse
+\g@addto@macro\@twosidefalse\@semitwosidefalse
+%</package&typearea&options>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+%<*(class|(package&typearea))&options>
+\KOMA@key{twoside}[true]{%
+%<class> \if@atdocument\else\PassOptionsToPackage{twoside=#1}{typearea}\fi%
+%<*package>
+ \if@atdocument\if@twoside
+ \scr@ifundefinedorrelax{cleardoubleoddpage}{%
+ \cleardoublepage
+ }{%
+ \cleardoubleoddpage
+ }%
+ \else\clearpage\fi\fi
+%</package>
+ \ifstr{#1}{semi}{%
+ \@twosidetrue
+%<package> \@semitwosidetrue
+ \FamilyKeyStateProcessed
+ }{%
+ \def\FamilyElseValue{, `semi'}%
+ \KOMA@set@ifkey{twoside}{%
+% \end{macrocode}
+% \changes{v3.20}{2015/11/02}{not existing order dependency of
+% \Option{twocolumn} and \Option{twoside} fixed}^^A
+% From v3.17 until 3.19a the classes used a local switch
+% \Macro{if@tempswa}. As a result of this option \Option{twocolumn} was not
+% able to recognize double sided layout. Because of this it was essential to
+% handle option \Option{twocolumn} before option \Option{twoside}. This has
+% been solved using \Macro{if@twoside} in the classes too. Another solution
+% could have been to move the implementation and execution of
+% \Option{twocolumn} before \Option{twoside}. But I don't know whether or not
+% this would have been reliable and the solution here is more simple.
+% \begin{macrocode}
+ @twoside%
+ }{#1}%
+ }%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+%<*class>
+ \expandafter\ifnum\scr@v@is@ge{3.17}%
+%<*!letter>
+ \if@twoside\flushbottom
+ \else\if@twocolumn\flushbottom\else\raggedbottom\fi\fi
+%</!letter>
+%<letter> \raggedbottom
+ \fi
+%</class>
+ \KOMA@kav@xreplacevalue{.%
+%<class> \KOMAClassFileName
+%<package> typearea.\scr@pkgextension
+ }{twoside}{#1}%
+%<*package>
+ \if@twoside
+ \if@semitwoside
+ \@mparswitchfalse
+ \else
+ \@mparswitchtrue
+ \fi
+ \else
+ \@mparswitchfalse
+ \fi%
+ \csname recalctypearea\endcsname
+%</package>
+ \fi
+}
+%<*class>
+%<book>\KOMAExecuteOptions{twoside=true}
+%<!book>\KOMAExecuteOptions{twoside=false}
+%</class>
+%<*package>
+\KOMA@kav@xadd{.typearea.\scr@pkgextension}{twoside}{%
+ \if@twoside true\else false\fi
+}
+%</package>
+\KOMA@DeclareStandardOption%
+%<package> [typearea]%
+ {oneside}{twoside=false}
+%</(class|(package&typearea))&options>
+% \end{macrocode}
+% \end{option}^^A twoside
+% \end{option}^^A oneside
+%
+% \begin{option}{onecolumn}
+% \changes{v2.95}{2002/12/04}{option moved to package \Package{typearea}}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v2.97e}{2007/11/23}{the classes pass the option to
+% \Package{typearea}}^^A
+% \changes{v3.01a}{2008/11/21}{standard option but not deprecated}^^A
+% \begin{option}{twocolumn}
+% \changes{v2.95}{2002/12/04}{option moved to package \Package{typearea}}^^A
+% \changes{v2.97e}{2007/11/23}{the classes pass the option to
+% \Package{typearea}}^^A
+% \changes{v2.98a}{2007/01/08}{passing the correct option}^^A
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}^^A
+% \changes{v3.13a}{2014/04/09}{the class also uses status signaling with
+% \cs{FamilyKeyStateProcessed}}^^A
+% \changes{v3.20}{2016/02/16}{\cs{sloppy}, \cs{raggedbottom} and
+% \cs{flushbottom} delayed}^^A
+% Do we have a single column or two columns layout?
+% \begin{macrocode}
+%<*(class|(package&typearea))&options>
+\KOMA@key{twocolumn}[true]{%
+%<class> \if@atdocument\else\PassOptionsToPackage{twocolumn=#1}{typearea}\fi%
+%<*package>
+ \if@atdocument\clearpage\fi
+%</package>
+ \KOMA@set@ifkey{twocolumn}{@twocolumn}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package> typearea.\scr@pkgextension
+ }{twocolumn}{@twocolumn}%
+%<package> \csname recalctypearea\endcsname
+%<*class>
+ \if@atdocument\expandafter\@firstofone
+ \else\@ifpackageloaded{typearea}{\expandafter\@firstofone}
+ {\expandafter\AtEndOfClass}\fi
+ {\expandafter\ifnum\scr@v@is@ge{3.17}%
+ \if@twocolumn\twocolumn\sloppy\flushbottom
+ \else\onecolumn\if@twoside\flushbottom\else\raggedbottom\fi\fi
+ \fi}%
+%</class>
+ \fi
+}
+%<*class>
+\AtEndOfClass{%
+ \expandafter\ifnum\scr@v@is@lt{3.17}%
+%<*!letter>
+ \if@twocolumn\twocolumn\sloppy\flushbottom
+ \else\onecolumn\if@twoside\flushbottom\else\raggedbottom\fi\fi
+%</!letter>
+%<letter> \raggedbottom
+ \fi
+}
+\KOMAExecuteOptions{twocolumn=false}
+%</class>
+%<*package>
+\KOMA@kav@xadd{.typearea.\scr@pkgextension}{twocolumn}{%
+ \if@twocolumn true\else false\fi
+}
+%</package>
+\KOMA@DeclareStandardOption%
+%<package> [typearea]%
+ {onecolumn}{twocolumn=false}
+%</(class|(package&typearea))&options>
+% \end{macrocode}
+% \end{option}^^A twocolumn
+% \end{option}^^A onecolumn
+%
+%
+% \subsection{Influencing size of head and foot and margins}
+%
+% We have several options to influence the head hight and the foot height and
+% whether or not these are part of the typing area or the margins. We have also
+% an option to decide whether or not the margin notes are part of the typing
+% area or not.
+%
+% \begin{option}{headlines}
+% \changes{v2.95}{2002/12/06}{new implementation using \textsf{keyval}}^^A
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}^^A
+% \begin{option}{footlines}
+% \changes{v3.12}{2013/03/26}{new}^^A
+% These are two of the recommended options to set the height of the page head
+% and footer. Here we set the height by the number of base lines. The number
+% is a factor to \cs{baselineskip} and therefore a real number.
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMA@key{headlines}{%
+ \begingroup
+ \setlength{\@tempdima}{#1\baselineskip}%
+ \endgroup
+ \def\ta@hh{#1\baselineskip}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{.typearea.\scr@pkgextension}{headlines}{#1}%
+ \KOMA@kav@replacevalue{.typearea.\scr@pkgextension}{headheight}{#1\baselineskip}%
+}
+\KOMA@key{footlines}{%
+ \begingroup
+ \setlength{\@tempdima}{#1\baselineskip}%
+ \endgroup
+ \def\ta@fh{#1\baselineskip}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{.typearea.\scr@pkgextension}{footlines}{#1}%
+ \KOMA@kav@replacevalue{.typearea.\scr@pkgextension}{footheight}{#1\baselineskip}%
+}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{headheight}
+% \changes{v2.98c}{2008/04/06}{new}^^A
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}^^A
+% \begin{option}{footheight}
+% \changes{v3.12}{2013/03/26}{new}^^A
+% Instead of setting the height of the page head or footer by the number of
+% base lines, we can set it also using a length or length value. Note, via
+% \Macro{documenclass} or \Macro{usepackage} only length values are supported
+% (due to an expansion problem by the \LaTeX{} kernel with both commands).
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMA@key{headheight}{%
+ \begingroup
+ \setlength{\@tempdima}{#1}%
+ \endgroup
+ \def\ta@hh{#1}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{.typearea.\scr@pkgextension}{headheight}{#1}%
+ \KOMA@kav@removekey{.typearea.\scr@pkgextension}{headlines}%
+}
+\KOMA@key{footheight}{%
+ \begingroup
+ \setlength{\@tempdima}{#1}%
+ \endgroup
+ \def\ta@fh{#1}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{.typearea.\scr@pkgextension}{footheight}{#1}%
+ \KOMA@kav@removekey{.typearea.\scr@pkgextension}{footlines}%
+}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{headinclude}
+% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}^^A
+% This options determines whether or not the head is part of the typing
+% area.
+% \begin{option}{headexclude}
+% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{deprecated}^^A
+% \begin{macro}{\if@hincl}
+% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}^^A
+% \changes{v2.97c}{2007/04/19}{direct initialization via \cs{if@hsl},
+% if already defined}^^A
+% \begin{macro}{\@hincltrue}
+% \begin{macro}{\@hinclfalse}
+% We use a boolean switch to store the decision.
+% \begin{macrocode}
+%<*package&typearea&options>
+\newif\if@hincl\@ifundefined{if@hsl}{}{\let\if@hincl\if@hsl}
+\KOMA@ifkey{headinclude}{@hincl}
+\KOMA@DeclareDeprecatedOption[typearea]{headexclude}{headinclude=false}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{headsepline}
+% \changes{v3.20}{2015/12/12}{\Package{typearea} itself reacts on
+% \Option{headsepline}}^^A
+% Until \KOMAScript{} v3.20 \Package{typearea} was not able to handle
+% sequences of options \Option{headsepline} and \Option{headinclude} to get
+% always a correct result. Until v3.18a \Option{headinclude} was prioritized
+% against \Option{headsepline} if used as global options but not if used via
+% \Macro{KOMAoptions}. In v3.18a a bug has been fixed with the result that
+% \Option{headsepline} was prioritized against \Option{headinclude} if used
+% as global options. But intentionally
+% \Option{headinclude=false,}\Option{headsepline} or
+% \Option{headinclude=true,}\Option{headsepline=false} always should use the
+% setting of option \Option{headsepline} independent of setting this as
+% global options or using \Macro{KOMAoptions}. Similar with
+% \Option{headsepline,}\Option{headinclude=false} or
+% \Option{headsepline=false,},\Option{headinclude} the setting of
+% \Option{headinclude} should be used. To achieve this \Package{typearea}
+% itself has to interpret not only \Option{headinclude} but also
+% \Option{headsepline} (as an alias of \Option{headinclude}).
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMA@key{headsepline}[true]{%
+ \KOMA@set@ifkey{headinclude}{@hincl}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \KOMA@kav@replacebool{.typearea.\scr@pkgextension}{headinclude}{@hincl}%
+ \fi
+}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{option}^^A headsepline
+%
+% \begin{option}{footinclude}
+% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}^^A
+% \begin{option}{footexclude}
+% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{deprecated}^^A
+% This options determines whether or not the page footer is part of the typing
+% area.
+% \begin{macro}{\if@fincl}
+% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}^^A
+% \changes{v2.97c}{2007/04/19}{direct initialization via \cs{if@fsl},
+% if already defined}^^A
+% \begin{macro}{\@fincltrue}
+% \begin{macro}{\@finclfalse}
+% We use a boolean switch to store the decision.
+% \begin{macrocode}
+%<*package&typearea&options>
+\newif\if@fincl\@ifundefined{if@fsl}{}{\let\if@fincl\if@fsl}
+\KOMA@ifkey{footinclude}{@fincl}
+\KOMA@DeclareDeprecatedOption[typearea]{footexclude}{footinclude=false}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{footsepline}
+% \changes{v3.23}{2017/03/03}{has to set \cs{if@fincl} instead of
+% \cs{if@hincl}}^^A
+% \changes{v3.20}{2015/12/12}{\Package{typearea} itself reacts on
+% \Option{footsepline}}^^A
+% Until \KOMAScript{} v3.20 \Package{typearea} was not able to handle
+% sequences of options \Option{footsepline} and \Option{footinclude} to get
+% always a correct result. Until v3.18a \Option{footinclude} was prioritized
+% against \Option{footsepline} if used as global options but not if used via
+% \Macro{KOMAoptions}. In v3.18a a bug has been fixed with the result that
+% \Option{footsepline} was prioritized against \Option{footinclude} if used
+% as global options. But intentionally
+% \Option{footinclude=false,}\Option{footsepline} or
+% \Option{footinclude=true,}\Option{footsepline=false} always should use the
+% setting of option \Option{footsepline} independent of setting this as
+% global options or using \Macro{KOMAoptions}. Similar with
+% \Option{footsepline,}\Option{footinclude=false} or
+% \Option{footsepline=false,},\Option{footinclude} the setting of
+% \Option{footinclude} should be used. To achieve this \Package{typearea}
+% itself has to interpret not only \Option{footinclude} but also
+% \Option{footsepline} (as an alias of \Option{footinclude}).
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMA@key{footsepline}[true]{%
+ \KOMA@set@ifkey{footinclude}{@fincl}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \KOMA@kav@replacebool{.typearea.\scr@pkgextension}{footinclude}{@fincl}%
+ \fi
+}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{option}^^A footsepline
+%
+% \begin{option}{mpinclude}
+% \changes{v2.8q}{2002/03/28}{new}^^A
+% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}^^A
+% \begin{option}{mpexclude}
+% \changes{v2.8q}{2002/03/28}{new}^^A
+% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{deprecated}^^A
+% Some documents have a lot of large margin notes. Optical these margin notes
+% are more part of the typing area than the margin. This options determines
+% whether or not margin notes should be part of the typing area.
+% \begin{macro}{\if@mincl}
+% \changes{v2.95}{2002/07/08}{new implementation using \textsf{keyval}}^^A
+% \begin{macro}{\@mincltrue}
+% \begin{macro}{\@minclfalse}
+% We use a boolean switch to store the decision. Note, if the margin notes are
+% part of the typing area, you should increase the divisor.
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMA@ifkey{mpinclude}{@mincl}
+\KOMA@DeclareDeprecatedOption[typearea]{mpexclude}{mpinclude=false}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
+% \end{option}
+%
+%
+% \subsection{Typing area for the emulation of the standard classes}
+%
+% For the emulation of the standard classes we need a dedicated size of the
+% typing area, if and only if no explicit \Option{DIV} has been given by
+% option. The emulation of the standard classes is a class feature. We could
+% do it before \Package{typearea} and then deactivate initial setting of
+% margins and typing area. But it is more easy to use \cs{areaset} after
+% loading \Package{typearea}. The standard letter class cannot be emulated.
+% \begin{macrocode}
+%<*class&body&!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
+%</class&body&!letter>
+% \end{macrocode}
+%
+% \subsection{Using a predefined divisor depending on the font size}
+%
+% Some years ago \Package{typearea} provides the feature to use a hard coded
+% or user defined divisor depending on the document font size. The feature to
+% define such predefined divisors is deprecated, because it can be used only
+% for integer font sizes in pt. Nevertheless, for compatibility reasons it is
+% still implemented.
+%
+% \begin{macro}{\ta@divlist}
+% \changes{v2.0e}{1994/10/28}{new (internal)}^^A
+% \changes{v2.6}{2000/01/04}{the list provides values from font size
+% 1\,pt}^^A
+% \begin{macro}{\ta@divlistelse}
+% \changes{v2.6}{2000/01/04}{neu (internal)}^^A
+% We need a default settings for 10\,pt, 11\,pt and 12\,pt. But we define it
+% only if they has not been defined before. So classes could define other
+% defaults before loading \Package{typearea}.
+% \begin{macrocode}
+%<*package&typearea&init>
+\providecommand\ta@divlist{{}{}{}{}{}{}{}{}{}{8}{10}{12}}
+% \end{macrocode}
+% \end{macro}
+% If a font size does not have a predefined divisor, the following default
+% will be used:
+% \begin{macrocode}
+\providecommand\ta@divlistelse{1}
+%</package&typearea&init>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ta@divfor}
+% We also need a macro to get one of the values stored at \cs{ta@divlist}
+% depending on the font size given by the real number argument. The real
+% number will be rounded to the nearest integer.
+% \changes{v2.4g}{1996/11/04}{usage of the default value list}
+% \changes{v2.6}{2000/01/04}{usage of the extended list}^^A
+% \changes{v2.8q}{2002/03/28}{respect option \Option{mpinclude}}^^A
+% \changes{v2.96}{2006/08/11}{font size does not need to be an integer}^^A
+% \changes{v3.25}{2018/03/05}{paper size test added}^^A
+% \begin{macrocode}
+%<*package&typearea&body>
+\newcommand*{\ta@divfor}[1]{%
+ \ta@div=\z@
+ \expandafter\ifnum\scr@ta@v@is@ge{3.25}\relax
+ \ifnum \z@=\ifdim \paperwidth<207mm \z@\else\ifdim \paperwidth>213mm \z@
+ \else\ifdim \paperheight<294mm \z@\else
+ \ifdim \paperheight>300mm \z@\else \@ne\fi\fi\fi\fi
+ \PackageInfoNoLine{typearea}{%
+ With paper sizes other than (almost) `A4' predefined\MessageBreak
+ DIV values do not exist. Using DIV calculation for good\MessageBreak
+ line width (unless using `version=3.24` or prior)%
+ }%
+ \ta@div=\tw@
+ \fi
+ \fi
+ \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@
+ \fi
+ \ifnum \ta@div=\z@
+ \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}
+% If there is not default in the list we use the general default.
+% \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=\ifnum\number\ta@divlistelse>\m@ne
+ \ifcase \ta@divlistelse default%
+ \or calc%
+ \or calc%
+ \or classic%
+ \else\ta@divlistelse\fi\else\ta@divlistelse\fi
+ }%
+ \ta@div=\ta@divlistelse\relax
+ \else
+% \end{macrocode}
+% Otherwise we use the default of the list.
+% \begin{macrocode}
+ \xdef\@tempa{\expandafter\@car\@tempa\@nil}%
+ \ifx\@tempa\empty
+ \ta@div=\ta@divlistelse\relax
+ \else
+ \ta@div=\@tempa\relax
+ \fi
+ \fi
+ \fi
+}
+%</package&typearea&body>
+% \end{macrocode}
+% \end{macro}
+%
+% The documentation of the deprecated part of the feature is still in German.
+% \selectlanguage{ngerman}
+%
+% \begin{macro}{\SetDIVList}
+% \changes{v2.1a}{1994/10/28}{neu}^^A
+% \changes{v2.6}{2000/01/04}{\cs{ta@divlist} enthält Werte für
+% Schriftgrößen ab 1pt}^^A
+% \changes{v3.24}{2017/07/23}{deprecated command}^^A
+% 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}
+%<*package&typearea&body>
+\newcommand*\SetDIVList[1]{%
+ \PackageWarning{typearea}{\string\SetDIVList\space is
+ deprecated!\MessageBreak
+ This command supports only integer font sizes\MessageBreak
+ in pt equal or greater than 10pt.\MessageBreak
+ Since version 2.6 the command is implemented\MessageBreak
+ for compatibility only. You should not use it\MessageBreak
+ any longer}%
+ \def\ta@divlist{{}{}{}{}{}{}{}{}{}#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SetXDIVList}
+% \changes{v2.6}{2000/01/04}{neu}^^A
+% \changes{v3.24}{2017/07/23}{deprecated command}^^A
+% 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]{%
+ \PackageWarning{typearea}{\string\SetXDIVList\space is
+ deprecated!\MessageBreak
+ This command supports only integer font sizes\MessageBreak
+ in pt equal or greater than 10pt.\MessageBreak
+ Since version 3.0 the command is implemented\MessageBreak
+ for compatibility only. You should not use it\MessageBreak
+ any longer}%
+ \def\ta@divlist{#1}}
+%</package&typearea&body>
+% \end{macrocode}
+% \end{macro}
+%
+% \selectlanguage{english}
+%
+% \subsection{Calculation of typing area and margins}
+%
+% The main purpose of the package is the calculation of the size of the
+% typeing area and the margins depending on a divisor. As an addition a
+% binding correction is included.
+%
+% The parameters and the calculation is needed before the options can be
+% processed.
+%
+% \begin{Length}{\ta@bcor}
+% \changes{v2.2a}{1995/01/25}{definition of the dimension before option
+% \Option{BCOR}}^^A
+% \changes{v2.7g}{2001/04/17}{definition using \cs{newlength} instead of
+% \cs{newdimen}}^^A
+% We need a length to store the binding correction. It is initializes to 0\,pt
+% implicitly by \Macro{newlength}.
+% \begin{macrocode}
+%<*package&typearea&options>
+\newlength{\ta@bcor}
+% \end{macrocode}
+% \end{Length}
+%
+% \begin{macro}{\ta@div}
+% \changes{v2.2a}{1995/01/25}{definition of the dimension before option
+% \Option{BCOR}}^^A
+% We need a counter for the divisor (aka \emph{DIV}). It is initializes to
+% 0\,pt implicitly by \Macro{newcount}.
+% \begin{macrocode}
+\newcount\ta@div
+%</package&typearea&options>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{Length}{\ta@hblk}
+% \begin{Length}{\ta@vblk}
+% Width of one horizontal resp. height of one vertical block.
+% \begin{macrocode}
+%<*package&typearea&body>
+\newlength{\ta@hblk}
+\newlength{\ta@vblk}
+%</package&typearea&body>
+% \end{macrocode}
+% \end{Length}
+% \end{Length}
+%
+% \begin{Length}{\ta@temp}
+% Used several times instead of \cs{@tempdima}, \cs{@tempdimb} or another
+% temporary dimension or glue of the LaTeX{} kernel. Nevertheless I should
+% think about not using this temporary length any longer.
+% \begin{macrocode}
+%<*package&typearea&body>
+\newlength{\ta@temp}
+%</package&typearea&body>
+% \end{macrocode}
+% \end{Length}
+%
+% \begin{option}{BCOR}
+% \changes{v2.2a}{1995/01/25}{new}^^A
+% \changes{v2.95}{2002/12/04}{new implementation using \textsf{keyval}}^^A
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}^^A
+% The value is written into the length \cs{ta@bcor}. Several symbolic values
+% are supported that have to be converted into a length. Note, while loading
+% the package symbolic values are nonsense.
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMA@key{BCOR}{%
+ \ifstr{#1}{current}{}{%
+ \setlength{\ta@bcor}{#1}%
+ }%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.typearea.\scr@pkgextension}{BCOR}{#1}%
+}
+% \end{macrocode}
+% After loading the package we have to do a little bit more, because we need
+% to recalculate the areas.
+% \changes{v3.13}{2014/06/30}{\cs{FamilyKeyStateProcessed} added}^^A
+% \changes{v3.24}{2017/07/23}{\cs{KOMA@kav@xreplacevalue} added}^^A
+% \begin{macrocode}
+\AtEndOfPackage{%
+ \KOMA@key{BCOR}{%
+ \typearea[{#1}]{last}
+ \FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.typearea.\scr@pkgextension}{BCOR}{#1}%
+ }%
+}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{DIV}
+% \changes{v2.2a}{1995/01/25}{neue Option}^^A
+% \changes{v2.95}{2002/12/04}{new implementation using \textsf{keyval}}^^A
+% \changes{v3.12}{2013/03/05}{status signaling using \cs{FamilyKeyState}}^^A
+% The value is written into the counter \cs{ta@div}. Several symbolic values
+% are supported and have to be converted into a counter. Note, while loading
+% the package symbolic values are nonsense.
+% \begin{macrocode}
+%<*package&typearea&options>
+\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
+ \KOMA@kav@xreplacevalue{.typearea.\scr@pkgextension}{DIV}{#1}%
+}
+% \end{macrocode}
+% After loading the package we have to do a little bit more, because we need
+% to recalculate the areas.
+% \changes{v3.13}{2014/06/30}{\cs{FamilyKeyStateProcessed} added}^^A
+% \changes{v3.24}{2017/07/23}{\cs{KOMA@kav@xreplacevalue} added}^^A
+% \begin{macrocode}
+\AtEndOfPackage{%
+ \KOMA@key{DIV}{%
+ \typearea[current]{#1}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.typearea.\scr@pkgextension}{DIV}{#1}%
+ }%
+}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{option}
+%
+% \begin{macro}{\typearea}
+% This is the real reason for the package: calculation of typing area and
+% margins providing an optional binding correction and depending on a
+% divisor.
+% \begin{macro}{\@typearea}
+% \changes{v2.4n}{1997/05/28}{moved main calculation into \cs{@typearea}}^^A
+% \changes{v2.95}{2002/08/20}{\cs{selectfont} added}^^A
+% The calculation itself is done in \cs{@typearea}. This command does not need
+% any parameters because it uses \cs{ta@div} and \cs{ta@bcor}.
+% \begin{macrocode}
+%<*package&typearea&body>
+\newcommand*\@typearea{%
+% \end{macrocode}
+% First of all we have to take care to select the correct font. Because
+% otherwise we cannot depend on, e.g., \cs{baselineskip}.
+% \begin{macrocode}
+ \selectfont
+% \end{macrocode}
+% First calculation is about the horizontal block element size:
+% \begin{macrocode}
+ \ta@hblk=\paperwidth
+ \advance \ta@hblk by-\ta@bcor
+ \divide\ta@hblk by\ta@div
+% \end{macrocode}
+% The with of the margin note column depends in the horizontal block size,
+% whether or not is should be part of the typing area and whether of not we
+% have a double sided document.
+% \changes{v2.8q}{2002/03/28}{\cs{marginparwidth} depends on
+% \Option{mpinclude}}^^A
+% \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}
+% The left and right margin resp. the left margin of odd and even pages
+% depends also on the horizontal block width. The relation depends on whether
+% or not the document is double sided.
+% \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}}
+% From v3.12 the binding correction is part of the inner margin also for
+% \Option{twoside=semi}. If compatibility to earlier release is selected the
+% binding correction with \Option{twoside=semi} is always added to the left
+% margin.
+% \begin{macrocode}
+ \expandafter\ifnum\scr@ta@v@is@lt{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}
+% The width of the typing area is the paper width without the three blocks
+% used for the margins and without the binding correction.
+% \begin{macrocode}
+ \textwidth=\paperwidth
+ \advance\textwidth by-\ta@bcor
+ \advance\textwidth by-3\ta@hblk
+% \end{macrocode}
+% But, if the margin note column should be part of the typing area, it's width
+% has to be subtracted from the width of the typing area. We assume to place
+% the margin notes at the outer margin. But if the typing area is to narrow
+% for the margin note column, the width of margin note column will be
+% reduced. This can be done easily be swapping the two lengths.
+% \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}
+% Next the vertical size of a block.
+% \begin{macrocode}
+ \ta@vblk=\paperheight
+ \divide\ta@vblk by\ta@div
+% \end{macrocode}
+% The top margin depends on this vertical block size. But note, \TeX{} will
+% increase it by 1\,in.
+% \begin{macrocode}
+ \topmargin=-1in
+ \advance\topmargin by\ta@vblk
+% \end{macrocode}
+% And if head is not part of the typing area, the top margin has to be reduced
+% by the head size.
+% \begin{macrocode}
+ \if@hincl \else
+ \advance\topmargin by-\headheight
+ \advance\topmargin by-\headsep
+ \fi
+% \end{macrocode}
+% For the height of the typing area we use the paper size without the height
+% of head and footer. The head and footer may be part of the typing area or
+% not. If they are part of the typing area they reduce the height of it.
+% \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}
+% Last but not least we have take care that the typing area consists of an
+% integer number of text lines.
+% \changes{v2.96}{2006/09/12}{setting \cs{topskip}}
+% \changes{v2.97c}{2007/07/04}{setting \cs{maxdepth}}
+% \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}^^A \@typearea
+%
+% \begin{macro}{\ta@modiv}
+% Needed by \cs{typearea}. The first parameter will be divided by the second
+% one. \cs{ta@div} is set to the rounded result. Internally \cs{@tempdima} and
+% \cs{@tempdimb} are used.
+% \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} instead of \cs{ifnum}}
+% \begin{macrocode}
+ \ifdim \@tempdima<\@tempdimb
+ \advance\ta@div by\m@ne
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ta@temp@goodwidth}
+% Sets \cs{ta@temp} to the heuristic optimal line width depending on the
+% current font. An optimal line width has 66 up to 72 characters. Here we use
+% a value of 69 characters. We assume that such a line consists of 66 lower
+% case letters (minors) and three upper case letters (majors). Normally the
+% weight of a letter depends on the language but we use same weight for each
+% letter.
+% \changes{v2.7i}{2001/05/17}{avoid overflows if a very large font is
+% used}^^A
+% \changes{v2.8q}{2002/03/06}{\cs{normalfont} \cs{normalsize} added}^^A
+% \changes{v2.95a}{2006/07/20}{fix of large font calculation}^^A
+% \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}{new}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by
+% \cs{kernel@ifstar}}^^A
+% Users can influence the behaviour of \cs{typearea} by a hook. The star
+% variation adds the code locally the non-star variation globally.
+% \begin{macrocode}
+\newcommand*{\AfterCalculatingTypearea}{%
+ \kernel@ifstar \l@addto@macro \g@addto@macro \@typearea@end
+}
+% \end{macrocode}
+% \begin{macro}{\@typearea@end}
+% \changes{v2.96a}{2006/11/29}{defined again but completely different}^^A
+% Macro \cs{@typearea@end} is a hook that is executed at the end of
+% \cs{typearea} but before the activation of the new settings. So you can
+% change the result of \cs{typearea}.
+% \begin{macrocode}
+\newcommand*{\@typearea@end}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\activateareas}
+% \changes{v2.96a}{2006/11/29}{new name for old macro}^^A
+% \changes{v3.17}{2015/02/07}{respect option \texttt{usegeometry}}^^A
+% This macro is used to activate the new typing area and margin settings
+% inside the document body. It is a hack, because is uses internal \LaTeX{}
+% kernel code.
+% \begin{macrocode}
+\newcommand*{\activateareas}{%
+% \end{macrocode}
+% First of all test, whether or not we are inside the document body. If not do
+% nothing.
+% \begin{macrocode}
+ \if@atdocument
+% \end{macrocode}
+% \changes{v3.23}{2017/04/03}{info instead of warning if used inside the
+% document body}^^A
+% But if, we show an info, because it is a hack. It depends in the \LaTeX{}
+% release. Nevertheless, it seems to be stable from the very first \LaTeXe{}
+% release. So we use an info only. Before v3.23 we have used a warning.
+% \begin{macrocode}
+ \PackageInfo{typearea}{%
+ Using dirty hack to recalculate internal output\MessageBreak
+ dimensions of LaTeX%
+ }%
+% \end{macrocode}
+% Now, set several internal and none internal \LaTeX{}lengths to the new
+% dimensions.
+% \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}%
+ }%
+% \end{macrocode}
+% \changes{v3.17}{2015/03/18}{adapt the \Option{parskip} settings}^^A
+% From v3.17 changes of the typing area can immediately change some of the
+% \Option{parskip} settings. Before |\begin{document}| the change will be done
+% automatically at |\begin{document}| and therefore adding it here is correct.
+% \begin{macrocode}
+ \expandafter\ifnum\scr@ta@v@is@ge{3.17}%
+ \csname par@updaterelative\endcsname
+ \fi
+ \fi
+% \end{macrocode}
+% \changes{v3.17}{2015/02/07}{new code for option \Option{usegeometry}}
+% If option \Option{usegeometry} is active we need to setup several options of
+% package \Package{geometry}. We use \cs{scr@geometryargs} to store them. And
+% we either have to pass these options to \Package{geometry} or define a new
+% geometry. In the second case we also need some hacks to make the new paper
+% size available for \Package{geometry}.
+% \begin{macrocode}
+ \edef\scr@geometryargs{%
+ bindingoffset=\the\ta@bcor,
+ lmargin=\the\dimexpr 1in+\oddsidemargin-\ta@bcor\relax,
+ textwidth=\the\textwidth,
+ \if@hincl
+ includehead,%
+ top=\the\dimexpr 1in+\topmargin\relax,
+ \else
+ includehead=false,%
+ top=\the\dimexpr 1in+\topmargin+\headheight+\headsep\relax,
+ \fi
+ headheight=\the\headheight,
+ headsep=\the\headsep,
+ textheight=\the\textheight,
+ \if@fincl
+ includefoot,
+ \else
+ includefoot=false,
+ \fi
+ footskip=\the\footskip,
+ \if@mincl
+ includemp,
+ \else
+ includemp=false,
+ \fi
+ marginparwidth=\the\marginparwidth,
+ marginparsep=\the\marginparsep
+ }%
+ \if@ta@usegeometry
+ \@ifundefined{Gm@save}{%
+ \if@atdocument\else
+ \edef\scr@geometryargs{%
+ paperwidth=\the\paperwidth,paperheight=\the\paperheight,%
+ \scr@geometryargs
+ }%
+ \PassOptionsToPackage{\scr@geometryargs}{geometry}%
+ \fi
+ }{%
+ \edef\Gm@restore@org{\Gm@restore}%
+ \if@atdocument
+ \expandafter\newgeometry\expandafter{\scr@geometryargs}%
+ \else
+ \edef\scr@geometryargs{%
+ paperwidth=\the\paperwidth,paperheight=\the\paperheight,%
+ \scr@geometryargs
+ }%
+ \expandafter\geometry\expandafter{\scr@geometryargs}%
+ \fi
+ }%
+ \fi
+}
+% \end{macrocode}
+% \begin{macro}{scr@geometryargs}
+% \changes{v3.16}{2015/02/07}{neu (intern)}^^A
+% The initialization of the \Package{geometry} options is empty. It will be
+% filled automatically by \cs{activateareas}.
+% \begin{macrocode}
+\newcommand*{\scr@geometryargs}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v2.4g}{1996/11/04}{waste comments removed}^^A
+% \changes{v2.7g}{2001/04/17}{new symbolic values \texttt{current},
+% \texttt{default}, \texttt{calc}, \texttt{classic}}^^A
+% \changes{v2.8q}{2001/11/06}{new symbolic value \texttt{last}}^^A
+% \changes{v2.96}{2006/08/21}{warn if \cs{typearea} is used inside a
+% group}^^A
+% \changes{v3.10}{2011/09/13}{using \cs{scr@grouplevel@test}}
+% \changes{v3.12}{2013/03/26}{page footer height configurable}^^A
+%
+% The symbolic values of the obligatory argument of \cs{typearea}:
+% \begin{center}\begin{tabular}{lll}
+% Symbol & Value & Meaning \\\hline\\[-2ex]
+% \texttt{calc} & 2 & calculate a good value \\
+% \texttt{classic} & 3 & \emph{mittelalterlicher Buchseitenkanon} \\
+% \texttt{current} & --- & use the current value \\
+% \texttt{default} & 0 & use a value from the list \\
+% \texttt{last} & --- & use the value from the last usage of
+% \cs{typearea} \\
+% \texttt{areaset} & --- & replace the current typing area \\
+% \end{tabular}\end{center}
+%
+% There is only one symbolic value that can be used as the optional argument:
+% \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}
+% Before we do the calculation we need to start a new page if we are inside
+% the document's body. And we need to select the document font size.
+% \changes{v2.95a}{2006/07/20}{select document font size}^^A
+% \begin{macrocode}
+ \if@atdocument\newpage\fi
+ \normalsize
+% \end{macrocode}
+% Is the height of the page head already given or do we need to calculate
+% it. If we need to calculate it we use 1.25 of the base lines distance. This
+% gives enough room for optional separation lines (which are set outside if
+% use \Package{scrlayer-scrpage}).
+% \changes{v2.4n}{1997/05/28}{page head height depends on base line
+% distance}^^A
+% \begin{macrocode}
+ \@ifundefined{ta@hh}{%
+ \headheight=1.25\baselineskip
+ }{%
+ \headheight=\ta@hh
+ }%
+% \end{macrocode}
+% The distance between the head and the text is always the same. Different
+% typographers recommend different values. A good value would result in a grid
+% that would be used for all lines of the page. But the distance should not to
+% large. Supposedly a good value would be the height of one text line. But
+% with head separation rule this wouldn't be a good value. So we use a
+% compromise.
+% \begin{macrocode}
+ \headsep=1.5\baselineskip
+% \end{macrocode}
+% The foot is a similar problem. But we have to setup also \cs{footskip} not
+% only \cs{footheight}.
+% \begin{macrocode}
+ \@ifundefined{footheight}{%
+ \newlength\footheight
+ }{}%
+ \@ifundefined{ta@fh}{%
+ \footheight=1.25\baselineskip
+ }{%
+ \footheight=\ta@fh
+ }%
+ \footskip=\dimexpr\footheight+2.25\baselineskip
+% \end{macrocode}
+% Some values also independent from the divisor and the binding correction.
+% \begin{macrocode}
+ \marginparsep=1cc
+ \marginparpush=0.45\baselineskip
+% \end{macrocode}
+% \changes{v2.4g}{1996/11/04}{\textit{DIV}=0 tries to use a value from the
+% default list}
+% Before we do the calculation we test, whether the resulting divisor is
+% 0. Values from 0 up to 3 are not possible because we use three parts for the
+% margins. So we can use 0 to get a value from the default value list if
+% available.
+% \changes{v2.5h}{1999/12/29}{warning message changed}^^A
+% \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}{optional \emph{klassischer
+% Buchseitenkanon}}^^A
+% Another special case is if the divisor is 3. In this case we calculate a
+% divisor near to the \emph{klassischer Buchseitenkanon}. This means we try to
+% have the height of the typing area is as near as possible the width of the
+% paper. For classic paper size this should be a harmonious result.
+% \begin{macrocode}
+ \ifnum\ta@div=3
+ \typeout{DIV calculation for classic typearea.}%
+ \setlength{\ta@temp}{\paperwidth}%
+ \addtolength{\ta@temp}{-\ta@bcor}%
+% \end{macrocode}
+% Here we also need to take care for whether the head is part of the typing
+% area or the margin.
+% \begin{macrocode}
+ \if@hincl\else
+ \addtolength{\ta@temp}{\headheight}%
+ \addtolength{\ta@temp}{\headsep}%
+ \fi
+ \if@fincl\else
+ \addtolength{\ta@temp}{\footskip}%
+ \fi
+% \end{macrocode}
+% Sometimes we need more vertical space than available. In this case we use
+% another calculation. This will be defined later.
+% \changes{v2.5a}{1997/06/22}{\cs{ifdim} instead of \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}
+% Otherwise we can calculate the height of all vertical margins by the height
+% of the paper width (without binding correction)
+% \begin{macrocode}
+ \else
+ \setlength{\ta@temp}{\paperheight}%
+ \addtolength{\ta@temp}{-\paperwidth}%
+ \addtolength{\ta@temp}{\ta@bcor}%
+% \end{macrocode}
+% and from this the height of one block
+% \begin{macrocode}
+ \divide\ta@temp by3
+% \end{macrocode}
+% and this will result in a divisor.
+% \begin{macrocode}
+ \ta@modiv{\paperheight}{\ta@temp}%
+ \fi
+% \end{macrocode}
+% Here we do not need to respect \Option{mpinclude} because we do not use the
+% width of the typing area but the height of the paper.
+% \begin{macrocode}
+ \fi
+% \end{macrocode}
+% If we did not found a good value until this point, we try to calculate the
+% optimal divisor.
+% \changes{v2.4n}{1997/05/28}{improved optimal divisor calculation}^^A
+% \begin{macrocode}
+ \ifnum\ta@div <4
+ \typeout{DIV calculation for typearea with good linewidth.}%
+% \end{macrocode}
+% The width of the typing area could at most be the width of the paper without
+% the binding correction.
+% \begin{macrocode}
+ \setlength{\textwidth}{\paperwidth}%
+ \addtolength{\textwidth}{-\ta@bcor}%
+% \end{macrocode}
+% The optimal width would be the optimal line width.
+% \begin{macrocode}
+ \ta@temp@goodwidth
+% \end{macrocode}
+% In two column mode each text line has two such columns plus the column
+% separation width.
+% \changes{v2.8q}{2001/12/13}{\texttt{DIVcalc} uses wider columns in two
+% column mode}^^A
+% \begin{macrocode}
+ \if@twocolumn
+ \addtolength{\ta@temp}{\ta@temp}%
+ \addtolength{\ta@temp}{\columnsep}%
+ \fi
+% \end{macrocode}
+% Former releases used an iterative approach to get the best
+% divisor. Depending on the \TeX{} implementation and the paper size this
+% could be more or less slow. So we do a direct calculation starting with the
+% width of the left and right margin.
+% \begin{macrocode}
+ \setlength{\ta@hblk}{\paperwidth}%
+ \addtolength{\ta@hblk}{-\ta@temp}%
+% \end{macrocode}
+% This can be used to calculate the width of a block.
+% \begin{macrocode}
+ \divide\ta@hblk by3
+% \end{macrocode}
+% If this width is negative, we use a minimum width of 5\,mm.
+% \changes{v2.5a}{1997/06/22}{\cs{ifdim} instead of \cs{ifnum}.}
+% \begin{macrocode}
+ \ifdim \ta@hblk <\z@
+ \setlength{\ta@hblk}{5mm}%
+ \fi
+% \end{macrocode}
+% The width of block and the width of the paper can be used to calculate the
+% divisor.
+% \changes{v2.8q}{2002/03/28}{respect \Option{mpinclude} at the calculation
+% of the best divisor}^^A
+% If option \Option{mpinclude} is active, we have to multiply the divisor with
+% $\frac{3}{3+m}$. $m$ is the number of blocks used for the margin notes. If
+% $m=1$ we have an factor of $\frac{3}{4}=0.75$. More difficult would be not
+% to use a number of blocks for the margin note column but a dedicated value
+% for the width of the margin note column.
+% \begin{macrocode}
+ \if@mincl
+ \setlength{\ta@temp}{.75\ta@hblk}%
+ \else
+ \setlength{\ta@temp}{\ta@hblk}%
+ \fi
+ \ta@modiv{\paperwidth}{\ta@temp}%
+% \end{macrocode}
+% Another difficulty would be, if the divisor now is optimal for the width but
+% result in a to large height. To find this out, we first calculate the typing
+% area and margins with the found divisor.
+% \begin{macrocode}
+ \@typearea
+% \end{macrocode}
+% Now, we test the vertical sizes. Again a minimum block size is of 5\,mm will
+% be used. But we have to take care the 1\,in of \TeX!
+% \changes{v2.5a}{1997/06/22}{\cs{ifdim} instead of \cs{ifnum}}
+% \begin{macrocode}
+ \setlength{\ta@temp}{-1in}%
+ \addtolength{\ta@temp}{5mm}%
+ \ifdim\topmargin <\ta@temp
+% \end{macrocode}
+% This would be the minimum top margin. If the margin is less, we need another
+% divisor. In this case we also have to recognize whether the page head and
+% footer are part of the margins or the typing area.
+% \changes{v2.5b}{1997/06/29}{take care for \Option{headinclude} and
+% \Option{footinclude} while calculating the divisor for minimum top
+% margin}^^A
+% \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}
+% A solution for this difficulty has been found.
+% \begin{macrocode}
+ \fi
+% \end{macrocode}
+% So now we have the final divisor and can do the final calculation.
+% \begin{macrocode}
+ \@typearea
+% \end{macrocode}
+% \changes{v2.0e}{1994/10/28}{write layout values to the \File{log} file}^^A
+% \changes{v2.4i}{1996/11/11}{write to the \File{log} file later}^^A
+% \changes{v2.4i}{1996/11/11}{execute \cs{@typearea@end} at the end of
+% \cs{typearea}}^^A
+% \changes{v2.4j}{1996/12/04}{\File{log} output with only one
+% \cs{textheight} but additional \cs{baselineskip}}^^A
+% \changes{v2.5}{1997/06/17}{"`arithmetic overflow"' with \Option{landscape}
+% fixed}^^A
+% \changes{v2.95}{2004/01/30}{warning in two column mode fixed}^^A
+% \changes{v3.00}{2008/10/08}{use \cs{ta@layoutinfo} to write the layout
+% values into the \File{log} file}^^A
+% \changes{v3.01b}{2008/12/09}{warning for sub-optimal settings changed}^^A
+% \changes{v3.26}{2018/07/16}{warning about long lines changed}^^A
+% \changes{v3.26}{2018/07/16}{warning about small lines changed and
+% replaced by an info}^^A
+% Last but not least we write some layout values into the \File{log} file. For
+% some of the information we need additional calculations, e.g., of a good
+% line width.
+% \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 estimated maximum\MessageBreak
+ limit of typographical good line width.\MessageBreak
+ You should e.g.
+ \ifnum\ta@div >6 decrease DIV, \fi
+ \ifdim\f@size\p@<\@xiipt\p@ increase fontsize\else
+ (increase fontsize)\fi\MessageBreak
+ or change papersize%
+ }%
+ \@tempcnta=-\@tempcnta
+ \else
+ \ifnum\@tempcnta>15
+ \PackageInfoNoLine{typearea}{%
+ Maybe no optimal type area settings!\MessageBreak
+ The detected line width is about
+ \the\@tempcnta\@percentchar\MessageBreak
+ smaller than the heuristically estimated maximum\MessageBreak
+ limit of typographical good line width.\MessageBreak
+ You could e.g. increase DIV%
+ \ifdim\f@size\p@>\@xpt\p@, decrease fontsize\fi\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}%
+ \KOMA@kav@removekey{.typearea.\scr@pkgextension}{DIV}%
+ \KOMA@kav@xadd{.typearea.\scr@pkgextension}{DIV}{\@lastdiv}%
+ \KOMA@kav@removekey{.typearea.\scr@pkgextension}{BCOR}%
+ \KOMA@kav@xadd{.typearea.\scr@pkgextension}{BCOR}{\the\ta@bcor}%
+ \@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}
+%
+% \begin{macro}{\ta@layoutinfo}
+% \changes{v3.00}{2008/10/08}{new (internal)}^^A
+% Write several layout information into the \File{log} file. The first
+% argument is the current divisor and the second the discrepancy from the
+% optimal divisor or empty or \cs{relax}.
+% \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}
+% \end{macro}
+%
+% \begin{macro}{\recalctypearea}
+% \changes{v2.95}{2002/12/04}{new}^^A
+% This command can be used to recalculate the typing area and the margins with
+% the divisor and the binding correction that has been used last. The command
+% is available only after loading the package. So it is an indicator if we
+% are in the load or the run-time phase of the package.
+% \begin{macrocode}
+\AtEndOfPackage{\newcommand*{\recalctypearea}{\typearea[current]{last}}}
+%</package&typearea&body>
+% \end{macrocode}
+% \end{macro}
+%
+% Initially \cs{ta@bcor} and \cs{ta@div} are zero if is has not been set using
+% one of the options. The 0 divisor stands for using a value from the default
+% list. So the final initialization of the typing area and margins is very
+% easy.
+% \changes{v2.8q}{2001/11/06}{initialization using symbolic values
+% \texttt{current}}^^A
+% \begin{macrocode}
+%<*package&typearea&final>
+\typearea[current]{current}
+%</package&typearea&final>
+% \end{macrocode}
+%
+% \subsection{Storage and reactivation of typing area and margin settings}
+%
+% \begin{macro}{\storeareas}
+% \changes{v3.10}{2011/09/13}{new}^^A
+% \changes{v3.18}{2015/05/20}{Hooks at the beginning and end of the defined
+% macro}^^A
+% You can store the current settings of the typing area and the margins in a
+% macro. If you use the macro later the stored settings will be restored.
+% \begin{macro}{\scr@grouplevel@test}
+% \changes{v3.10}{2011/09/13}{new (internal)}^^A
+% Warn if restoring the settings is used inside a group.
+% \begin{macrocode}
+%<*package&typearea&body>
+\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\csname scr@storeareas@before@hook\noexpand\endcsname
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@storeareas@before@current@hook\endcsname}%
+ \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
+ \noexpand\def
+ \expandafter\noexpand\csname scr@kav@KOMA.typearea.\scr@pkgextension\endcsname{%
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@kav@KOMA.typearea.\scr@pkgextension\endcsname}%
+ }%
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@storeareas@after@current@hook\endcsname}%
+ \noexpand\csname scr@storeareas@after@hook\noexpand\endcsname
+ }%
+ }%
+ \reserved@a
+}
+% \end{macrocode}
+% \begin{macro}{\BeforeRestoreareas}
+% \changes{v3.18}{2015/05/20}{new}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by
+% \cs{kernel@ifstar}}^^A
+% \begin{macro}{\AfterRestoreareas}
+% \changes{v3.18}{2015/05/20}{new}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by
+% \cs{kernel@ifstar}}^^A
+% \begin{macro}{\scr@storeareashook}
+% \changes{v3.18}{2015/05/20}{new (internal)}^^A
+% \begin{macro}{\scr@storeareas@before@hook}
+% \changes{v3.18}{2015/05/20}{new (internal)}^^A
+% \begin{macro}{\scr@storeareas@before@current@hook}
+% \changes{v3.18}{2015/05/20}{new (internal)}^^A
+% \begin{macro}{\scr@storeareas@after@hook}
+% \changes{v3.18}{2015/05/20}{new (internal)}^^A
+% \begin{macro}{\scr@storeareas@after@current@hook}
+% \changes{v3.18}{2015/05/20}{new (internal)}^^A
+% Adds code to one of the hooks of the macros defined by \cs{storeareas}.
+% The star variants adds code only to not yet defined macros. The non-star
+% variant also changes already defined macros.
+% \begin{macrocode}
+\newcommand*{\BeforeRestoreareas}{%
+ \kernel@ifstar{\scr@storeareashook{before@current}}%
+ {\scr@storeareashook{before}}%
+}
+\newcommand*{\AfterRestoreareas}{%
+ \kernel@ifstar{\scr@storeareashook{after@current}}%
+ {\scr@storeareashook{after}}%
+}
+\newcommand*{\scr@storeareashook}[2]{%
+ \expandafter\l@addto@macro\csname scr@storeareas@#1@hook\endcsname{#2}%
+}
+\newcommand*{\scr@storeareas@before@hook}{}
+\newcommand*{\scr@storeareas@before@current@hook}{}
+\newcommand*{\scr@storeareas@after@hook}{}
+\newcommand*{\scr@storeareas@after@current@hook}{}
+%</package&typearea&body>
+% \end{macrocode}
+% \end{macro}^^A \scr@storeareas@after@current@hook
+% \end{macro}^^A \scr@storeareas@after@hook
+% \end{macro}^^A \scr@storeareas@before@current@hook
+% \end{macro}^^A \scr@storeareas@before@hook
+% \end{macro}^^A \scr@storeareashook
+% \end{macro}^^A \AfterRestoreareas
+% \end{macro}^^A \BeforeRestoreareas
+% \end{macro}^^A \scr@grouplevel@test
+% \end{macro}^^A \storeareas
+%
+% \subsection{Calculation of margins for a given typing area}
+%
+% Beside the calculation of the typing area and the margins by a divisor
+% \Package{typearea} also provides the calculation of margins for a given
+% typing area.
+%
+% \begin{option}{areasetadvanced}
+% \changes{v3.11}{2012/04/17}{new}^^A
+% 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}
+%<*package&typearea&options>
+\KOMA@ifkey{areasetadvanced}{@areasetadvanced}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{option}
+%
+% \begin{macro}{\areaset}
+% \changes{v2.1b}{1994/12/31}{\cs{headheight} depends on \cs{@ptsize}}^^A
+% \changes{v2.6}{2000/01/04}{\cs{headheight} depends on \cs{f@size} instead
+% of \cs{@ptsize}}^^A
+% \changes{v2.7g}{2001/04/17}{symbolic value \texttt{current} for the
+% optional argument}^^A
+% \changes{v2.95}{2002/12/05}{execute \cs{@typearea@end} at the end of
+% \cs{areaset}}^^A
+% If we have given width and height of the typing area we still can calculate
+% the margins. Again we want to use this not only in the document preamble but
+% also in the document body.
+% \begin{macrocode}
+%<*package&typearea&body>
+\newcommand*\areaset[3][\z@]{%
+ \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else
+ \setlength{\ta@bcor}{#1}%
+ \fi
+% \end{macrocode}
+% We have to start a new page if we are inside the document body.
+% \begin{macrocode}
+ \if@atdocument\newpage\fi
+% \end{macrocode}
+% Then we do the calculation.
+% \changes{v2.96}{2006/09/12}{set \cs{topskip}}
+% \changes{v3.00}{2008/10/08}{use \cs{ta@layoutinfo} to write layout
+% information into the \File{log} file}^^A
+% \begin{macrocode}
+ \setlength{\textwidth}{#2}%
+ \setlength{\textheight}{#3}%
+ \def\@lastdiv{areaset}%
+ \KOMA@kav@removekey{.typearea.\scr@pkgextension}{DIV}%
+ \KOMA@kav@add{.typearea.\scr@pkgextension}{DIV}{areaset}%
+ \KOMA@kav@removekey{.typearea.\scr@pkgextension}{BCOR}%
+ \KOMA@kav@add{.typearea.\scr@pkgextension}{BCOR}{\the\ta@bcor}%
+ \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 v3.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}}
+% If \Option{twoside=semi} is used, form v3.12 we add the binding correction
+% to the inner margin. If compatibility to version less than 3.12 has been
+% selected the binding correction will be added to the left margin.
+% \begin{macrocode}
+ \expandafter\ifnum\scr@ta@v@is@lt{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 v3.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}^^A
+% \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}{using \cs{@areaset@end}}^^A
+% \changes{v3.16a}{2015/02/11}{using \cs{footheight} for calculation of
+% page usage}^^A
+% Since v3.11 we also support \cs{AfterSettingArea} analogous to
+% \cs{AfterCalculatingTypearea}:
+% \begin{macrocode}
+ \@areaset@end
+ \activateareas
+ \ifdim \dimexpr 1in+\topmargin
+ +\headheight+\headsep
+ +\textheight
+ +\footskip+\footheight-\ht\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}
+%
+% \begin{macro}{\AfterSettingArea}
+% \changes{v3.11}{2012/04/17}{new}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% 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}{%
+ \kernel@ifstar \l@addto@macro \g@addto@macro \@areaset@end
+}
+% \end{macrocode}
+% \begin{macro}{\@areaset@end}
+% \changes{v3.11}{2012/04/17}{new}^^A
+% 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}{}
+%</package&typearea&body>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Deprecated options}
+%
+% Former versions of \KOMAScript{} had some options that are completely
+% deprecated since \KOMAScript{} 3.00. Most of them but not all are pattern
+% matching options.
+%
+% \begin{option}{DIVcalc}
+% \changes{v2.4g}{1996/11/04}{new}^^A
+% \changes{v2.95}{2002/12/04}{implemented using option \Option{DIV}}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{deprecated}^^A
+% \begin{option}{DIVclassic}
+% \changes{v2.4n}{1997/05/28}{new}^^A
+% \changes{v2.95}{2002/12/04}{implemented using option \Option{DIV}}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}^^A
+% \changes{v3.01a}{2008/11/21}{deprecated}^^A
+% The former form of \Option{DIV=}\Option{calc} and
+% \Option{DIV=}\Option{classic}.
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMA@DeclareDeprecatedOption[typearea]{DIVcalc}{DIV=calc}
+\KOMA@DeclareDeprecatedOption[typearea]{DIVclassic}{DIV=classic}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{option}^^A DIVclassic
+% \end{option}^^A DIVcalc
+%
+% \begin{option}{a\meta{integer}paper}
+% \begin{option}{b\meta{integer}paper}
+% \begin{option}{c\meta{integer}paper}
+% \begin{option}{d\meta{integer}paper}
+% Formerly \Option{a}\meta{integer}\Option{paper},
+% \Option{b}\meta{integer}\Option{paper},
+% \Option{c}\meta{integer}\Option{paper},
+% \Option{d}\meta{integer}\Option{paper} has been documented. Since
+% \KOMAScript{} v3.00 most of them are deprecated and has been replaced by
+% option \Option{paper}. Nevertheless, for compatibility these options and the
+% commands needed to recognize and handle them are still implemented.
+%
+% The documentation of the deprecated part of the feature is still in German.
+% \selectlanguage{ngerman}
+%
+% \begin{macro}{\x@paper}
+% \begin{macro}{\x@@paper}
+% \changes{v2.5}{1997/06/17}{neue Mustererkennung für die
+% Papiergröße}^^A
+% Diese Makros werden ebenfalls später benötigt, wenn die Papiergröße
+% festgelegt wird.
+% \begin{macro}{\isopaper}
+% \changes{v2.5}{1997/06/17}{neu}^^A
+% \changes{v2.95}{2002/12/03}{es sind auch Großbuchstaben erlaubt}^^A
+% \changes{v3.23}{2017/02/22}{verwendet \cs{ISO@PaperNameToSize}}^^A
+% 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}
+%<*package&typearea&options>
+\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.
+% \begin{macrocode}
+ \ISO@PaperNameToSize[typearea]#1#2\@nil
+% \end{macrocode}
+% Jetzt noch die gewünschte Ausrichtung beachten.
+% \changes{v2.97e}{2007/10/23}{gewünschte Papierausrichtung wird
+% beachtet}^^A
+% \changes{v3.22}{2016/07/29}{Papierausrichtung entsprechend dem
+% tatsächlichen Format}^^A
+% \begin{macrocode}
+ \expandafter\ifnum\scr@ta@v@is@ge{3.22}\relax
+ \scr@setpaperorientation
+ \else
+ \if@landscape\scr@switchpapersizes\fi
+ \fi
+}
+% \end{macrocode}
+% \textsf{typearea} verwendet eine eigene Fehlerausgabe.
+% \begin{macro}{\scr@UnknownPaperSize@typearea}
+% \changes{v3.23}{2017/02/22}{neu (intern)}
+% \begin{macrocode}
+\ProvideUnknownPaperSizeError{typearea}{%
+ \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}%
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@UnknownPaperSize@typearea
+% \end{macro}^^A \isopaper
+% \begin{macro}{\scr@setpaperorientation}
+% \changes{v3.22}{2016/07/29}{neu (intern)}
+% Stellt die Papierausrichtung entsprechend \cs{if@landscape} ein.
+% \begin{macrocode}
+\newcommand*\scr@setpaperorientation{%
+ \ifdim\paperheight>\paperwidth
+ \if@landscape\scr@switchpapersizes\fi
+ \else
+ \if@landscape\else\scr@switchpapersizes\fi
+ \fi
+}
+% \end{macrocode}
+% \begin{macro}{\scr@switchpapersizes}
+% \changes{v3.22}{2016/07/29}{neu (intern)}
+% Vertauscht zwei Längen.
+% \begin{macrocode}
+\newcommand*\scr@switchpapersizes{%
+ \@tempdima\paperwidth\paperwidth\paperheight\paperheight\@tempdima
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@switchlength
+% \end{macro}^^A \scr@setpaperorientation
+% \begin{macro}{\iso@paper}
+% \changes{v2.95}{2002/12/03}{neu (intern)}^^A
+% 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)}^^A
+% 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
+}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{macro}^^A \iso@@paper
+% \end{macro}^^A \iso@paper
+% \selectlanguage{english}
+%
+% \begin{option}{DIV\meta{integer}}
+% \begin{option}{BCOR\meta{length}}
+% Formerly \Option{DIV}\meta{integer}, \Option{BCOR}\meta{length},
+% \Option{headlines}\meta{real} has been documented as options. Since
+% \KOMAScript{} 3.00 these have been replaced by \Option{DIV=}\meta{integer},
+% \Option{BCOR=}\meta{length} and
+% \Option{headlines=}\meta{real}. Nevertheless, for compatibility the
+% deprecated options are still handled by \Macro{DeclareOption*} and so we
+% need several helper macros to recognize them.
+%
+% The documentation of the deprecated part of the feature is still in German.
+% \selectlanguage{ngerman}
+%
+% \begin{macro}{\@BCOR}
+% \begin{macro}{\@@BCOR}
+% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch
+% Mustererkennung ersetzt}^^A
+% 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}
+%<*(class|(package&typearea))&options>
+\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}).
+% \changes{v3.22}{2016/07/29}{missing deprecated option warning added}^^A
+% \begin{macrocode}
+%<class> \PassOptionsToPackage{BCOR#2}{typearea}%
+%<*package>
+ \ifdimen{#2}{%
+ \KOMA@UseDeprecatedOption{%
+ \PackageWarningNoLine{typearea}}{BCOR#2}{BCOR=#2}%
+ }{\scr@pti@nerr@r}%
+%</package>
+% \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}^^A
+% \changes{v3.22}{2016/07/29}{missing deprecated option warning added}^^A
+% 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
+%<class> \PassOptionsToPackage{DIV#2}{typearea}%
+%<*package>
+ \ifnumber{#2}{%
+ \KOMA@UseDeprecatedOption{%
+ \PackageWarningNoLine{typearea}}{DIV#2}{DIV=#2}%
+ }{\scr@pti@nerr@r}%
+%</package>
+ \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}^^A \@@DIV
+% \end{macro}^^A \@DIV
+%
+% \begin{option}{headlines\meta{integer}}
+% \begin{macro}{\@headlines}
+% \begin{macro}{\@@headlines}
+% \changes{v2.7g}{2001/04/17}{neue Mustererkennung für die Anzahl
+% der Kopfzeilen}^^A
+% 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
+%<class> \PassOptionsToPackage{#1headlines}{typearea}
+%<package> \setlength{\@tempdima}{#1\baselineskip}%
+%<package> \def\ta@hh{#1\baselineskip}%
+ \else\@DIV\fi
+}
+%</(class|(package&typearea))&options>
+% \end{macrocode}
+% \end{macro}^^A \@headlines
+% \end{macro}^^A \@@headlines
+%
+% \selectlanguage{english}
+% Starting point for all the deprecated pattern matching options is
+% \Macro{DeclareOption*} for command \Macro{x@paper} that uses pattern
+% matching with \Macro{x@@paper} to recognize the deprecated options. These
+% are needed not only for package \Package{typearea} but also for the classes.
+%
+% The documentation of the deprecated part of the feature is still in German.
+% \selectlanguage{ngerman}
+% 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}^^A
+% \begin{macrocode}
+%<*(class|(package&typearea))&options>
+\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}{%
+%<class> \PassOptionsToPackage{#3=#1#2}{typearea}%
+%<package> \isopaper[a]{#2}%
+ }{%
+ \ifstr{#1}{b}{%
+%<class> \PassOptionsToPackage{#3=#1#2}{typearea}%
+%<package> \isopaper[b]{#2}%
+ }{%
+ \ifstr{#1}{c}{%
+%<class> \PassOptionsToPackage{#3=#1#2}{typearea}%
+%<package> \isopaper[c]{#2}%
+ }{%
+ \ifstr{#1}{d}{%
+%<class> \PassOptionsToPackage{#3=#1#2}{typearea}%
+%<package> \isopaper[d]{#2}%
+ }{\scr@pti@nerr@r}%
+ }%
+ }%
+ }%
+ }{\scr@pti@nerr@r}%
+ }{%
+%<class> \@pt@scan
+%<package> \@headlines
+ }%
+}
+% \end{macrocode}
+%
+% \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}{
+%<class> \OptionNotUsed
+%<package> \@unknownoptionerror
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v2.97c}{2007/09/12}{\cs{lco@test} bei den geparsten Optionen
+% eingefügt}
+% \begin{macrocode}
+\DeclareOption*{%
+%<letter> \lco@test
+ \x@paper}
+%</(class|(package&typearea))&options>
+% \end{macrocode}
+% \end{option}^^A headline...
+% \end{option}^^A DIV...
+% \end{option}^^A BCOR...
+% \end{macro}^^A \x@paper
+% \end{macro}^^A \x@@paper
+% \end{option}^^A d...paper
+% \end{option}^^A c...paper
+% \end{option}^^A b...paper
+% \end{option}^^A a...paper
+%
+% \selectlanguage{english}
+%
+% ^^A This part should stay at the end of the source file!
+% \subsection{Configuration file}
+%
+% At the very ending of the option section just before executing and
+% processing the options you can add additional options the
+% \Package{typearea}. This is a very seldom used feature and I recommend to
+% not use it any longer. If you need additional options use
+% |\BeforeFamilyProcessOptions[.typearea.sty]{KOMA}{...}|.
+%
+% \changes{v2.0e}{1994/10/28}{configuration file \File{typearea.cfg}}^^A
+% \begin{macrocode}
+%<*package&typearea&options>
+\InputIfFileExists{typearea.cfg}{%
+ \typeout{%
+ ***************************************^^J%
+ * Local config file typearea.cfg used^^J%
+ ***************************************%
+ }
+}{}
+%</package&typearea&options>
+% \end{macrocode}
+%
+% \subsection{Option execution}
+%
+% The paper size and telling the back-end driver information about the paper
+% size are default. The default for the default paper size will be \Option{A4}
+% if nothing else was defined by a class. Execution of option \Option{twoside}
+% depends already on the setting of \cs{if@twoside} and
+% \cs{if@semitwoside}. This may be surprising but nevertheless is correct.
+% \changes{v2.3h}{1995/01/19}{\cs{relax} after \cs{ProcessOptions} added}^^A
+% \changes{v2.96}{2006/08/18}{processing options in order of usage instead of
+% order of declaration}^^A
+% \changes{v2.97c}{2007/04/19}{Usage of \cs{KOMAExecuteOptions} instead of
+% \cs{KOMAoptions}}^^A
+% \changes{v2.97c}{2007/04/19}{Usage of \cs{KOMAProcessOptions} instead of
+% \cs{ProcessOptions}}^^A
+% \changes{v2.97c}{2007/04/19}{set only options that are not an implicit
+% default}^^A
+% \changes{v2.97c}{2007/07/18}{explicit setting of a valid value to
+% \texttt{twoside}}^^A
+% \changes{v3.12}{2013/11/11}{the default paper size is given by
+% \cs{defaultpagesize}}^^A
+% \changes{v3.17}{2015/03/02}{\Option{pagesize} is default}^^A
+% \begin{macro}{\defaultpapersize}
+% \changes{v3.12}{2013/11/11}{new}^^A
+% The default paper size. Defined using \cs{providecommand} so it can be
+% changed by a class or wrapper package or \File{typearea.cfg} or somewhere
+% else before loading \Package{typearea}.
+% \begin{macrocode}
+%<*package&typearea&options>
+\providecommand*{\defaultpapersize}{A4}
+%</package&typearea&options>
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+%<*package&typearea&options>
+\KOMAExecuteOptions{paper=\defaultpapersize,pagesize}
+\if@twoside
+ \if@semitwoside
+ \KOMAExecuteOptions{twoside=semi}
+ \else
+ \KOMAExecuteOptions{twoside}
+ \fi
+\else
+ \KOMAExecuteOptions{twoside=false}
+\fi
+\KOMAProcessOptions\relax
+%</package&typearea&options>
+% \end{macrocode}
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-typearea.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-variables.dtx b/macros/latex/contrib/koma-script/source/scrkernel-variables.dtx
new file mode 100644
index 0000000000..909be6f30c
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-variables.dtx
@@ -0,0 +1,399 @@
+% \CheckSum{160}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-variables.dtx
+% Copyright (c) Markus Kohm, 2008-2017
+%
+% 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-2017
+%
+% 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 2640 2017-05-08 09:36:55Z kohm $
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
+ \filedate$Date: 2017-05-08 11:36:55 +0200 (Mon, 08 May 2017) $
+ \def\filerevision$#1: #2 ${\def\filerevision{r#2}}
+ \filerevision$Revision: 1638 $
+ \xdef\fileinfo{\filedate\space\filerevision\space}
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-variables.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source(koma variables)]
+ }%
+\reserved@a
+% \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}
+%</dtx>
+% \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
+%</option>
+%<*body>
+% \fi
+%
+% \subsection{Anweisungen zum Anlegen und Verwenden von Variablen}
+%
+% \begin{macro}{\newkomavar}
+% \changes{v2.8q}{2002/01/14}{Neu}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% 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}{%
+ \kernel@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
+ }{%
+%<class> \ClassError{scrlttr2%
+%<package> \PackageError{scrletter%
+ }{%
+ 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!%
+ }%
+ }%
+ }{%
+%<class> \ClassError{scrlttr2%
+%<package> \PackageError{scrletter%
+ }{%
+ 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}^^A
+% \changes{v3.08}{2010/10/28}{\cs{scr@\emph{Name}@postsetname}
+% und \cs{scr@\emph{Name}@postsetvar}}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% 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}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% 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}^^A
+% Die Sternvariante definiert nur den Ausgabename neu.
+% \begin{macro}{\@@setkomavar}
+% \changes{v2.8q}{2002/01/14}{Neu}^^A
+% 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}{%
+ \kernel@ifstar {\@setkomaname}{\@setkomavar}}
+\newcommand*{\@setkomavar}[1]{%
+ \kernel@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}^^A
+% Dieses Makro wird intern in den Makros \cs{setkomavar} und
+% \cs{usekomavar} verwendet.
+% \begin{macrocode}
+\newcommand*{\@komavar@err}[2]{%
+%<class> \ClassError{scrlttr2%
+%<package> \PackageError{scrletter%
+ }{%
+ 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}^^A
+% \changes{v2.9i}{2002/09/04}{robust}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% 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}^^A
+% \changes{v2.9i}{2002/09/04}{optionales Argument}^^A
+% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} als Defaultargument
+% eingefügt}
+% \begin{macro}{\@usekomaname}
+% \changes{v2.8q}{2002/01/14}{Neu}^^A
+% \changes{v2.9i}{2002/09/04}{optionales Argument}^^A
+% \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}{%
+ \kernel@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}^^A
+% 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}^^A
+% \changes{v2.9i}{2002/09/04}{Leerzeichen rausgeworfen}^^A
+% \changes{v2.9i}{2002/09/04}{robust}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% 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}^^A
+% \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}^^A
+% Da mit einer Sternvariante gearbeitet wird, wird wieder ein
+% Hilfsmakro verwendet.
+% \begin{macrocode}
+\DeclareRobustCommand*{\ifkomavarempty}{%
+ \begingroup
+ \kernel@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
+%</body>
+% \fi
+%
+% \iffalse
+%</letter>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-variables.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-version.dtx b/macros/latex/contrib/koma-script/source/scrkernel-version.dtx
new file mode 100644
index 0000000000..19762fed84
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrkernel-version.dtx
@@ -0,0 +1,236 @@
+% \CheckSum{73}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-version.dtx
+% Copyright (c) Markus Kohm, 2002-2019
+%
+% 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-2019
+%
+% 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 3063 2019-02-01 07:39:11Z kohm $
+% \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}^^A
+% 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)}^^A
+% 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
+%</ignorethis>
+ \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
+%</ignorethis>
+ \fi
+ \@CheckKOMAScriptVersion{2019/02/01 v3.26b KOMA-Script}%
+\endgroup
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%<*dtx>
+% \fi
+\ProvidesFile{scrkernel-version.dtx}[\KOMAScriptVersion (versions)]
+% \iffalse
+\documentclass[parskip=half-]{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}
+%</dtx>
+% \fi
+%
+% \begin{macro}{\scr@pkgextension}
+% \changes{v3.17}{2015/03/17}{Neu (intern)}^^A
+% \begin{macro}{\scr@clsextension}
+% \changes{v3.17}{2015/03/17}{Neu (intern)}^^A
+% \changes{v3.18}{2015/06/17}{fixed}^^A
+% Die beiden sind prinzipiell das gleiche wie \cs{@pkgextension} und
+% \cs{@clsextension} aber auch noch nach \cs{begin{document}}.
+% \begin{macrocode}
+%<*class|package>
+%<package>\providecommand*{\scr@pkgextension}{\@pkgextension}
+%<class>\providecommand*{\scr@clsextension}{\@clsextension}
+\AtBeginDocument{%
+%<package> \let\scr@pkgextension\@pkgextension
+%<class> \let\scr@clsextension\@clsextension
+}
+%</class|package>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%<*class>
+% \fi
+% \begin{macro}{\KOMAClassFileName}
+% \changes{v3.17}{2014/03/12}{Neu}^^A
+% \begin{macro}{\KOMAClassName}
+% \changes{v2.95}{2004/11/04}{Neu}^^A
+% \begin{macro}{\ClassName}
+% \changes{v2.95}{2004/11/04}{Neu}^^A
+% Für \KOMAScript-Klassen wird hier einmalig der Name der Klasse definiert und
+% und die Klasse der Klasse angegeben.
+% \begin{macrocode}
+\newcommand*{\KOMAClassName}{%
+%<article> scrartcl%
+%<report> scrreprt%
+%<book> scrbook%
+%<letter> scrlttr2%
+}
+\newcommand*{\ClassName}{%
+%<article> article%
+%<report> report%
+%<book> book%
+%<letter> letter%
+}
+\newcommand*{\KOMAClassFileName}{\KOMAClassName.\@clsextension}
+\edef\KOMAClassFileName{\KOMAClassFileName}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+\ProvidesClass{\KOMAClassName}[%
+%!KOMAScriptVersion
+ document class (\ClassName)%
+]
+% \end{macrocode}
+% \iffalse
+%</class>
+% \fi
+%
+% \iffalse
+%<*package&letter>
+% \fi
+% \begin{macrocode}
+\ProvidesPackage{scrletter}[%
+%!KOMAScriptVersion
+ letter package extending any KOMA-Script class%
+]
+% \end{macrocode}
+% \iffalse
+%</package&letter>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-version.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrlayer-fancyhdr.dtx b/macros/latex/contrib/koma-script/source/scrlayer-fancyhdr.dtx
new file mode 100644
index 0000000000..7e2d0be1f9
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrlayer-fancyhdr.dtx
@@ -0,0 +1,549 @@
+% \iffalse^^A meta-comment
+% ======================================================================
+% scrlayer-fancyhdr.dtx
+% Copyright (c) Markus Kohm, 2018
+%
+% 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 and
+% `scrlayer-fancyhdr.dtx'.
+% ----------------------------------------------------------------------
+% scrlayer-fancyhdr.dtx
+% Copyright (c) Markus Kohm, 2018
+%
+% 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
+% sowie `scrlayer-fancyhdr.dtx'.
+% ======================================================================
+% \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-fancyhdr.dtx ALPHA (see date below) kohm $
+%<identify>%%% (run: identify)
+%<init>%%% (run: init)
+%<options>%%% (run: options)
+%<body>%%% (run: body)
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+% TODO: Replace \thisfiledate and \thisfilerevision by \filedate and
+% \filerevision
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\thisfiledate{#2/#3/#4}}
+ \filedate$Date: 2018-09-10 08:00:00 $
+ \def\filerevision$#1: #2 ${\gdef\thisfilerevision{r#2 ALPHA}}
+ \filerevision$Revision: 0 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrlayer-fancyhdr.dtx}%
+ [\thisfiledate\space\thisfilerevision\space
+ KOMA-Script package source
+ }%
+\reserved@a
+%</dtx>
+%<*identify>
+%<interface>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+%<interface>\ProvidesPackage{scrlayer-fancyhdr}[%
+% Sometimes following will be replaced by !KOMAScriptVersion:
+%!SCRLAYERFANCYHDRVERSION
+%<interface> package
+%</identify>
+%<*dtx|identify>
+ (end user interface for scrlayer)]
+%</dtx|identify>
+%<*dtx>
+\ifx\documentclass\undefined
+ \input scrdocstrip.tex
+ \@@input scrkernel-version.dtx
+ \@@input scrstrip.inc
+ \KOMAdefVariable{COPYRIGHTFROM}{2018}
+ \KOMAdefVariable{SCRLAYERFANCYHDRVERSION}{%
+ \space\space\thisfiledate\space\thisfilerevision\space KOMA-Script
+ }%
+ \generate{\usepreamble\defaultpreamble
+ \file{scrlayer-fancyhdr.sty}{%
+ \from{scrlayer-fancyhdr.dtx}{interface,trace,fancyhdr,identify}%
+ \from{scrlayer.dtx}{interface,trace,fancyhdr,init}%
+ \from{scrlayer-fancyhdr.dtx}{interface,trace,fancyhdr,init}%
+ \from{scrlayer.dtx}{interface,trace,fancyhdr,options}%
+ \from{scrlayer-fancyhdr.dtx}{interface,trace,fancyhdr,options}%
+ \from{scrlayer.dtx}{interface,trace,fancyhdr,body}%
+ \from{scrlayer-fancyhdr.dtx}{interface,trace,fancyhdr,body}%
+ \from{scrlogo.dtx}{logo}%
+ }%
+ }
+ \@@input scrstrop.inc
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+ \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-fancyhdr.dtx}
+ \title{The \texttt{scrlayer} interface \texttt{scrlayer-fancyhdr}%
+ \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}{2018/09/01}{start of interface}
+% \let\restorechapter\chapter
+% \let\chapter\section
+% \let\section\subsection
+% \let\subsection\subsubsection
+%
+% \changes{v0.0}{2018/09/05}{some user documentation}
+% \chapter{The Purpose of this Package}
+% This package has been made to give users a chance to combine the features of
+% Piet van Oostrum's \Package{fancyhdr} \cite{pkg:fancyhdr} with the features
+% of \Package{scrlayer} \cite{pkg:komascript}. In other words: It has been
+% made to combine the page layers of \Package{scrlayer} with the page styles
+% of \Package{fancyhdr}.
+%
+% In this combination compatibility with \Package{fancyhdr} is the first
+% aim! Usability and the freedom provided by \Package{scrlayer} is only the
+% second one. Compatibility with other parts of \KOMAScript{} is not a primary
+% aim. Perhaps it will become an optional feature in future. Abolishing any
+% real or virtual limitations of \Package{fancyhdr} other than make it
+% possible to use layers is not an aim and will not be an aim in future.
+%
+% If you need a better combination of page styles and layers, you should
+% either use the low level interface of \Package{scrlayer} to define your page
+% styles or\,---\,and this is the recommendation of the author\,---\,use
+% \Package{scrlayer-scrpage} instead of \Package{scrlayer-fancyhdr} or
+% \Package{fancyhdr}. If you need more compatibility with other parts of
+% \KOMAScript, i.\,e.\@ with the \KOMAScript{} classes, you should use
+% \Package{scrlayer-scrpage} instead of \Package{scrlayer-fancyhdr} or
+% \Package{fancyhdr}.
+%
+%
+% \chapter{How it works}
+% To combine \Package{fancyhdr} and \Package{scrlayer},
+% \Package{scrlayer-scrpage} loads both packages. After loading
+% \Package{fancyhdr} it redefines page style \Pagestyle{@fancy} to make it a
+% layer page style of \Package{scrlayer} using the newly defined layers
+% \texttt{fancy.head.even}, \texttt{fancy.head.odd}, \texttt{fancy.foot.even}
+% and \texttt{fancy.foot.odd}. The \texttt{\dots head\dots} layers are
+% background layers like the page head of \Package{fancyhdr}'s page styles (or
+% other usual page styles). The \texttt{\dots foot\dots} layers are foreground
+% layers like the page footer of \Package{fancyhdr}'s page styles (or other
+% usual page styles). The \texttt{\dots even} layers are restricted to even
+% pages, that means left side pages in two-sided documents. The \texttt{\dots
+% odd} layers are restricted to odd pages, that means right side pages in
+% two-sided documents or all pages in single-sided documents.
+%
+% \DescribeMacro\ps@@fancy
+% \DescribeMacro\ps@fancyplain
+% \DescribeMacro\ps@plain@fancy
+% Note: Page style \Pagestyle{@fancy} is an internal basic page style of
+% package \Package{fancyhdr}. It is used for the user page style
+% \Pagestyle{fancy}. The user page style \Pagestyle{fancy} is also used for
+% \Package{fancyhdr}'s undocumented page style \Pagestyle{fancyplain}, that
+% also redefines page style \Pagestyle{plain} to be \Package{fancyhdr}'s
+% internal page style \Pagestyle{plain@fancy}, that also uses
+% \Pagestyle{fancy} but with \Macro{if@fancyplain} set to
+% \Macro{iftrue}. There is also an undocumented command
+% \Macro{fancyplain}\Parameter{plain code}\Parameter{fancy code}, that uses
+% the \meta{plain code} if \Macro{if@fancyplain} is \Macro{iftrue} and
+% \meta{fancy code} if \Macro{if@fancyplain} is \Macro{iffalse}.
+%
+% Note: Page styles defined using \Package{fancyhdr}'s command
+% \Macro{fancypagestyle} also always use page style \Pagestyle{fancy} and so
+% the internal basic page style \Pagestyle{@fancy}.
+%
+% As a result of the two notes above, every page style of \Package{fancyhdr}
+% always uses page style \Pagestyle{fancy} and the same internal basic page
+% style \Pagestyle{@fancy}. As a result of redefining page style
+% \Pagestyle{@fancy} to be a layer page style, users can add layers to or
+% remove layers from all \Package{fancyhdr} page styles by adding layers to or
+% remove layers from page style \Pagestyle{@fancy}. You cannot add layers to
+% or remove layers from \Package{fancyhdr}'s single page styles
+% \Pagestyle{fancy}, \Pagestyle{fancyplain}, \Pagestyle{plain@fancy} or the
+% page styles defined using \Macro{fancypagestyle} directly. So using layers
+% is a all or nothing feature with \Package{scrlayer-scrpage}. However, you
+% can use the second argument of \Macro{fancypagestyle} to add or remove
+% layers whenever one of the \Package{fancyhdr} page styles is activated. So
+% this is a move from the \Package{scrlayer} interface of adding or removing
+% layers to single page styles to the \Package{fancyhdr} interface of defining
+% modifications of page style \Pagestyle{fancy}.
+%
+% Another such movement from an \Package{scrlayer} user interface to a
+% \Package{fancyhdr} user interface it the decision whether or not automatic
+% running heads are used. \Package{scrlayer} provides the options
+% \Option{automark} and \Option{manualmark} and commands \Macro{automark} and
+% \Macro{manualmark} to do this decision and also to configure commands like
+% \Macro{partmark}, \Macro{chaptermark}, \Macro{sectionmark} etc. With
+% \Package{scrlayer-fancyhdr} also using page style \Pagestyle{@fancy} does
+% switch to automatic running heads. The first activation of page style
+% \Pagestyle{fancy} still redefines \Macro{chaptermark} and
+% \Macro{sectionmark}, if a class with \Macro{chapter} is used, or
+% \Macro{sectionmark} and \Macro{subsectionmark}, if a class without
+% \Macro{chapter} is used. However, you still can use \Macro{manualmark} and
+% \Macro{automark} after switching to a \Package{fancyhdr} page style to
+% configure the running heads. So this movement is only partial.
+%
+% \DescribeMacro\ps@headings
+% \DescribeMacro\ps@myheadings
+% \DescribeMacro\ps@plain
+% Note: Currently, neither \Package{scrlayer} nor \Package{fancyhdr} nor
+% \Package{scrlayer-fancyhdr} do redefine page styles \Pagestyle{headings} or
+% \Pagestyle{myheadings}. And neither \Package{scrlayer} nor
+% \Package{fancyhdr} nor \Package{scrlayer-fancyhdr} do redefine page style
+% \Pagestyle{plain} unless you are activating the undocumented
+% \Package{fancyhdr} page style \Pagestyle{fancyplain}. So if you like to use
+% layers on \Pagestyle{plain} pages, i.\,e. usually the first page of a
+% chapter or part or the page with a title head, you have to either use
+% \Package{fancyhdr}'s undocumented page style \Pagestyle{fancyplain} or
+% redefine page style \Pagestyle{plain} either using \Macro{fancypagestyle} as
+% documented in the \Package{fancyhdr} manual or using
+% \Macro{DeclareNewPageStyleByLayers}, documented in the \KOMAScript{} manual.
+%
+% \DescribeMacro\ps@empty
+% \DescribeMacro\ps@@empty
+% Note: Pagestyle \Pagestyle{empty} is somehow special. \Package{scrlayer}
+% redefines it to be a layer page style. And \Package{fancyhdr}'s internal
+% page style \Pagestyle{@empty} is the same like \Pagestyle{empty}. So
+% \Pagestyle{@empty} also uses the layers of \Pagestyle{empty} but you should
+% not try to modify it directly using the interface of
+% \Package{scrlayer}. Moreover, if \Package{fancyhdr} is loaded before
+% \Package{scrlayer-scrpage}, \Package{fancyhdr}'s internal page style
+% \Pagestyle{@empty} is not a copy of \Package{scrlayer}'s layer page style
+% \Pagestyle{empty} but the original standard page style
+% \Pagestyle{empty}. However, with \Package{scrlayer-fancyhdr} package
+% \Package{fancyhdr} does not longer use the internal page style
+% \Pagestyle{@empty}. So you would not need to know this.
+%
+% \chapter{How to use the Package}
+%
+%^^A TODO: Remove the following alpha note.
+% First of all, this package is experimental and should not be used for
+% anything else but testing whether or not it works as documented! This
+% package even is not an official part of \KOMAScript!
+%
+% To use the package you have to load it, e.\,g., using:
+%\begin{verbatim}
+% \usepackage{scrlayer-fancyhdr}
+%\end{verbatim}
+% instead of loading \Package{scrlayer} and \Package{fancyhdr} or before or
+% after loading one of these packages. However it is recommended to replace
+% loading \Package{scrlayer} and \Package{fancyhdr} by loading
+% \Package{scrlayer-fancyhdr} because this avoids option
+% clashes. \Package{scrlayer-fancyhdr} provides all options of
+% \Package{scrlayer} and passes them to \Package{scrlayer}. Nevertheless
+% sometimes it may be useful to be able to additionally load
+% \Package{scrlayer} or \Package{fancyhdr}.
+%
+% \DescribeMacro\ps@@fancy
+% \DescribeMacro\ps@fancy
+% \DescribeMacro\ps@fancyplain
+% \DescribeMacro\ps@plain@fancy
+% \DescribeMacro\fancypagestyle
+% After this you should be able to use the page styles and commands of
+% \Package{fancyhdr} and to add layers to or remove layers from the
+% \Package{fancyhdr}'s internal basic page style \Package{@fancy}. Note, you
+% are not able to add layers to or remove layers from \Package{fancyhdr}'s
+% page styles \Pagestyle{fancy}, \Pagestyle{fancyplain},
+% \Pagestyle{plain@fancy} or page styles defined by
+% \Macro{fancypagestyle}. However adding layers to or removing layers from
+% \Pagestyle{@fancy} will always change all these page styles!
+%
+% \DescribeMacro\ps@plain
+% \DescribeMacro\ps@headings
+% \DescribeMacro\ps@myheadings
+% \DescribeMacro\ps@empty
+% Note: Loading \Package{scrlayer-fancyhdr} will not make page style
+% \Pagestyle{plain} nor \Pagestyle{headings} nor \Pagestyle{myheadings} or any
+% other page style but \Pagestyle{empty} to automatically be a layer page
+% style!
+%
+% \chapter{Known Issues}
+%
+% Please note, the follow issues are either notes to the package author or
+% notes to the user to avoid them reporting the same issues again and
+% again. Listing these issues does not say they are bugs or features.
+%
+% \begin{itemize}
+% \item
+% \DescribeMacro\ps@fancy
+% \DescribeMacro\ps@fancyplain
+% \DescribeMacro\fancypagestyle
+% \DescribeMacro\ps@@fancy
+% You are not able to add layers to the user level page style
+% \Pagestyle{fancy} or \Pagestyle{fancyplain} or any page style defined by
+% \Macro{fancypagestyle} but only to the internal page style
+% \Pagestyle{@fancy}. This is intended as explained in this manual.
+% \item
+% \DescribeMacro\ps@@empty
+% Using \Package{fancyhdr}'s internal page style \Pagestyle{@empty}
+% could have strange results. However, there is a simple solution for this:
+% Don't use the internal \Pagestyle{@empty} but always the user level page
+% style \Pagestyle{empty}!
+% \item
+% \DescribeMacro\ps@@fancy
+% The vertical position of the page header does differ a little bit, if
+% \Package{scrlayer-fancyhdr} is used instead of \Package{fancyhdr}. This
+% could be fixed by a modification of the layers \texttt{fancy.head.odd} and
+% \texttt{fancy.head.even} using \Option{addvoffset}. More tests are needed.
+% \end{itemize}
+%
+%\iffalse
+%</dtx>
+%\fi
+%
+% \StopEventually{}
+%
+% \chapter{Implementation of \Package{scrlayer-fancyhdr}}
+% \label{sec:scrlayer-fancyhdr}
+%
+% This section if for developers only.
+%
+% \iffalse
+% TODO: Remove this alpha warning (but not the markers)!
+%<*interface>
+%<*identify>
+\PackageWarningNoLine{scrlayer-fancyhdr}{%
+ THIS IS AN ALPHA VERSION OF AN\MessageBreak
+ EXPERIMENTAL PACKAGE!\MessageBreak
+ YOU SHOULD NOT USE THIS PACKAGE FOR\MessageBreak
+ ANYTHING ELSE BUT TESTING%
+}
+%</identify>
+%\fi
+%
+% Note: The main problem of this interface is, that it tries to implement the
+% user interface of package \Package{fancyhdr} by Piet van Oostrum, that is
+% completely different from \Package{scrlayer} and not really compatible with
+% \Package{scrlayer}, using \Package{scrlayer}. This means, that
+% \Package{scrlayer-fancyhdr} never can be a drop-in replacement of
+% \Package{fancyhdr}. Nevertheless it can help to let \Package{scrlayer} and
+% \Package{fancyhdr} coexist. To do so
+% \begin{itemize}
+% \item the lowest level of \Package{fancyhdr} should not be the page style
+% but a layer
+% \item the page styles of \Package{fancyhdr} should be layer page styles
+% \item init code of the page styles of \Package{fancyhdr} should use the
+% layer page init code
+% \end{itemize}
+% Currently it is unsure whether it would be best to do a new implementation
+% or to load original \Package{fancyhdr} and to only modify some things. First
+% I'll try the second method and therefore:
+% \begin{macrocode}
+%<*body>
+\RequirePackage{fancyhdr}
+%</body>
+% \end{macrocode}
+%
+% We need at least one new layer for the new layer page style
+% \Pagestyle{fancy}. However, it could be useful to have not only one but
+% four layers (even side head, odd side head, even side foot, odd side foot).
+% \begin{macrocode}
+%<*body>
+\DeclareNewLayer[%
+ background,oddpage,
+ head,
+ contents={\hb@xt@ \layerwidth{%
+ \f@nch@head\f@nch@Oolh\f@nch@olh\f@nch@och\f@nch@orh\f@nch@Oorh}}
+]{fancy.head.odd}
+\DeclareNewLayer[%
+ background,evenpage,
+ head,
+ contents={\hb@xt@ \layerwidth{%
+ \f@nch@head\f@nch@Oelh\f@nch@elh\f@nch@ech\f@nch@erh\f@nch@Oerh}}
+]{fancy.head.even}
+\DeclareNewLayer[%
+ foreground,oddpage,
+ foot,
+ contents={\hb@xt@ \layerwidth{%
+ \f@nch@foot\f@nch@Oolf\f@nch@olf\f@nch@ocf\f@nch@orf\f@nch@Oorf}}
+]{fancy.foot.odd}
+\DeclareNewLayer[%
+ foreground,evenpage,
+ foot,
+ contents={\hb@xt@ \layerwidth{%
+ \f@nch@foot\f@nch@Oelf\f@nch@elf\f@nch@ecf\f@nch@erf\f@nch@Oerf}}
+]{fancy.foot.even}
+% \end{macrocode}
+% \begin{macro}{\ps@@fancy}
+% \begin{macro}{\@mkboth}
+% And have to create a layer page style from this new layers, but we do not
+% redefine page style \Pagestyle{fancy} but the low level page style
+% \Pagestyle{@fancy}.
+% \begin{macrocode}
+\DeclarePageStyleByLayers[
+% \end{macrocode}
+% \Package{fancyhdr} does some initialization at the very first call
+% of \cs{pagestyle{fancy}}. To do so \Package{fancyhdr} first uses a different
+% page style definition, that does the initialization and redefines the page
+% style afterwards. This is still active with \Package{scrlayer-fancyhdr}.
+% Additionally, \Package{fancyhdr} redefines \cs{@mkboth} at every selection
+% of the internal page style \Pagestyle{@fancy}. This can be adapted using the
+% \Option{onselect} feature of the new layer page style \Pagestyle{@fancy}. In
+% my opinion, the |\let\@mkboth\markboth| used by page style
+% \Pagestyle{headings} of, e.\,g., the standard classes or the \KOMAScript{}
+% classes would be best here. However, \Package{fancyhdr} uses the uncommon
+% |\def\@mkboth{\protect\markboth}|, which would fail if a class or package
+% tests \cs{@mkboth} using |\ifx\@mkboth\markboth|. However, \KOMAScript's
+% \cs{IfActiveMkBoth} (see the \Package{scrbase} chapter in the \KOMAScript{}
+% manual) does also recognize the \Package{fancyhdr} definition and copying
+% this is more compatible with \Package{fancyhdr}.
+% \begin{macrocode}
+ onselect={\def\@mkboth{\protect\markboth}},
+]{@fancy}{%
+ fancy.head.odd,fancy.head.even,fancy.foot.odd,fancy.foot.even
+}
+%</body>
+% \end{macrocode}
+% Note: Redefining page style \Pagestyle{@fancy} instead of \Pagestyle{fancy}
+% does also mean, that features like options \Option{automark} and
+% \Option{manualmark} resp. \cs{automark} and \cs{manualmark} are not fully
+% supported by \Package{scrlayer-fancyhdr}. Also currently the font features
+% of the \KOMAScript{} classes are not supported by
+% \Package{scrlayer-fancyhdr}. However you are now able to combine other
+% features of \Package{scrlayer} with features of \Package{fancyhdr} and you
+% can, e.g., use \Package{scrlayer-notecolumn} with
+% \Package{scrlayer-fancyhdr}.
+% \end{macro}^^A \@mkboth
+% \end{macro}^^A \ps@@fancy
+%
+% A future release of \Package{scrlayer-fancyhdr} may even provide the font
+% features of the \KOMAScript{} classes and a working
+% \Option{markcase}. However, in this case I would have to redefine the
+% initial page style \Pagestyle{fancy} and the layers above.
+%
+% \iffalse
+%</interface>
+% \fi
+%
+% \begin{thebibliography}{99}
+% \raggedright
+% \bibitem[1]{pkg:fancyhdr} Piet van Oostrum: \emph{Page layout in \LaTeX},
+% release 3.9a 2017-06-30,
+% \url{https://ctan.org/tex-archive/macros/latex/contrib/fancyhdr},
+% last visited: 2018-09-06.
+% \bibitem[2]{pkg:komascript} Markus Kohm: \emph{\KOMAScript},
+% release 3.25 2018-03-30,
+% \url{https://ctan.org/tex-archive/macros/latex/contrib/koma-script},
+% last visited: 2018-09-06.
+% \end{thebibliography}
+%
+% \Finale
+% \let\subsection\section
+% \let\section\chapter
+% \let\chapter\restorechapter
+%
+\endinput
+%
+% End of file `scrlayer-fancyhdr.dtx'.
+%
+
+%%% Local Variables:
+%%% mode: doctex
+%%% mode: flyspell
+%%% ispell-local-dictionary: "en_GB"
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrlayer-notecolumn.dtx b/macros/latex/contrib/koma-script/source/scrlayer-notecolumn.dtx
new file mode 100644
index 0000000000..324a5e8330
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrlayer-notecolumn.dtx
@@ -0,0 +1,1787 @@
+% \CheckSum{1747}
+% \iffalse^^A meta-comment
+% ======================================================================
+% scrlayer-notecolumn.dtx
+% Copyright (c) Markus Kohm, 2013-2018
+%
+% 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-2018
+%
+% 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 3011 2018-08-29 07:35:17Z kohm $
+%<identify>%%% (run: identify)
+%<init>%%% (run: init)
+%<options>%%% (run: options)
+%<body>%%% (run: body)
+%<final>%%% (run: final)
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-08-29 09:35:17 +0200 (Wed, 29 Aug 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{v0.1.#2}}
+ \filerevision$Revision: 3011 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrlayer-notecolumn.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script package source
+ }%
+\reserved@a
+%</dtx>
+%<*identify|doc>
+%<interface>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+%<interface>\ProvidesPackage{scrlayer-notecolumn}[%
+%<doc>\ProvidesFile{scrlayer-notecolumn.tex}[%
+% Sometimes following will be replaced by !KOMASCRIPTVERSION:
+%!SCRLAYERVERSION
+%<interface> package
+%</identify|doc>
+%<*dtx|identify|doc>
+ (end user interface for scrlayer)]
+%</dtx|identify|doc>
+%<*dtx>
+\ifx\documentclass\undefined
+ \input scrdocstrip.tex
+ \@@input scrkernel-version.dtx
+ \@@input scrstrip.inc
+ \KOMAdefVariable{COPYRIGHTFROM}{2013}
+ \KOMAdefVariable{SCRLAYERVERSION}{%
+ \space\space\filedate\space\filerevision\space KOMA-Script
+ }%
+ \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}%
+ }%
+ }
+ \expandafter\let\csname ifbeta\expandafter\endcsname
+ \csname ifbetawas\endcsname
+ \@@input scrstrop.inc
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+ \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
+ \begin{abstract}
+ This is only the implementation documentation of package
+ \Package{scrlayer-notecolumn}. See the English or German \KOMAScript{}
+ manual for more information about usage of the package!
+ \end{abstract}
+ \tableofcontents
+ \DocInput{\filename}
+ \PrintChanges
+ \PrintIndex
+ \end{document}
+%</dtx>
+% \fi^^A meta-comment
+%
+% \selectlanguage{english}
+%
+% \changes{v0.0}{2013/04/26}{start of interface}
+%
+% \StopEventually{}
+%
+%
+% \iffalse
+%<*interface>
+%<*identify>
+% \fi
+%
+%\iffalse
+%</identify>
+%\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.
+% \changes{v0.1}{2015/10/07}{ready for renaming \cs{pdfsavepos} and
+% \cs{pdflastypos} in luaTeX}^^A
+% \changes{v0.1.2483}{2016/06/28}{grouping fixed}^^A
+% \begin{macrocode}
+\@tempswatrue
+\scr@ifundefinedorrelax{pdfsavepos}{%
+ \scr@ifundefinedorrelax{savepos}{%
+ \expandafter\@tempswafalse
+ }{%
+ \let\scr@savepos\savepos
+ }%
+}{%
+ \let\scr@savepos\pdfsavepos
+}
+\scr@ifundefinedorrelax{pdflastypos}{%
+ \scr@ifundefinedorrelax{lastypos}{%
+ \expandafter\@tempswafalse
+ }{%
+ \let\scr@lastypos\lastypos
+ }%
+}{%
+ \let\scr@lastypos\pdflastypos
+}%
+\if@tempswa\else
+ \PackageError{scrlayer-notecolumn}{missing pdfTeX/luaTeX features}{%
+ This package needs \string\pdfsavepos\space or \string\savepos\space
+ and\MessageBreak
+ \string\pdflastypos\space or \string\lastypos.\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
+%</init>
+% \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@}.
+% \changes{v0.1.1681}{2014/02/05}{add the layer only once}
+% \begin{macrocode}
+ \IfLayerAtPageStyle{@everystyle@}{notecolumn.#2}{}{%
+ \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}
+%</body>
+% \end{macrocode}
+% One note column will be declared by default:
+% \begin{macrocode}
+%<*final>
+\DeclareNoteColumn{marginpar}
+%</final>
+%<*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}
+%</body>
+% \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}%
+ }%
+}
+%</body>
+% \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}
+% \changes{v0.1.2395}{2016/03/25}{write to \texttt{aux}-file with
+% \cs{if@filesw}}^^A
+% \begin{macro}{\slnc@initwrite}
+% \begin{macro}{\slnc@openwrite}
+% \changes{v0.1.2928}{2018/02/02}{use \cs{closein} instead of \cs{closeout}
+% to close \cs{slnc@file}}^^A
+% 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{%
+ \if@filesw
+ \immediate\write\@auxout{%
+ \noexpand\csname slnc@initwrite\noexpand\endcsname
+ }%
+ \fi
+ }%
+ \AtEndDocument{\let\slnc@initwrite\slnc@openwrite}%
+}
+\scrlayerAddToInterface\slnc@initwrite{}%
+\scrlayerAddToInterface\slnc@openwrite{%
+ \newcommand*{\slnc@openwrite}{%
+ \immediate\closein\slnc@file
+%<*trace>
+ \PackageInfo{scrlayer-notecolumn}{%
+ Opening `\jobname.slnc'\MessageBreak
+ for writing}%
+%</trace>
+ \immediate\openout\tf@slnc\jobname.slnc
+ }%
+}
+% \end{macrocode}
+% After reading the main \File{aux}-file at |\end{document}|, we again
+% calculate the md5 checksum of the \File{slnc}-file. If it has been changed
+% we set |\if@tempswa| to |\iftrue| to provocate a rerun message.
+% \changes{v0.1.2872}{2018/01/17}{usage of Lua function
+% \texttt{slncmdfivesum}}^^A
+% \changes{v0.1.2972}{2018/04/01}{usage of not yet documented Xe\TeX{}
+% primitive \cs{mdfivesum}}^^A
+% \begin{macrocode}
+\AfterReadingMainAux{%
+ \immediate\closeout\tf@slnc
+ \begingroup
+ \scr@ifundefinedorrelax{pdfmdfivesum}{%
+ \scr@ifundefinedorrelax{mdfivesum}{%
+ \ifdefined\directlua
+ \edef\reserved@a{\directlua{slncmdfivesum("\jobname.slnc")}}%
+ \else
+ \let\reserved@a\relax
+ \fi
+ }{%
+ \edef\reserved@a{\mdfivesum file {\jobname.slnc}}%
+ }%
+ }{%
+ \edef\reserved@a{\pdfmdfivesum file {\jobname.slnc}}%
+ }%
+ \ifx\reserved@a\relax
+ \PackageWarningNoLine{scrlayer-notecolumn}{%
+ \string\pdfmdfivesum\space unavailable.\MessageBreak
+ The package needs \string\pdfmdfivesum,\MessageBreak
+ \string\mdfivesum, or LuaTeX to test whether\MessageBreak
+ or not one more LaTeX run is needed to place the\MessageBreak
+ note columns correctly. If these are unavailable\MessageBreak
+ you have to do the decision without the help\MessageBreak
+ of the package%
+ }%
+ \else
+ \ifx \slnc@mdfivesum\reserved@a
+%<*trace>
+ \PackageInfo{scrlayer-notecolumn}{%
+ MD5 of current `\jobname.slnc':\MessageBreak
+ \reserved@a}%
+%</trace>
+ \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 needed to\MessageBreak
+ make note columns right%
+ }%
+%</trace>
+ \aftergroup\@tempswatrue
+ \fi
+ \fi
+ \endgroup
+}
+%</body>
+% \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}
+% There is a star variant with the same parameters, that writes the
+% \meta{code} un-expanded. To do so, we need some internal commands.
+% \begin{macro}{\slnc@unexpanded}
+% \changes{0.1.2583}{2017/02/08}{new (internal)}^^A
+% \begin{macro}{\slnc@makenote}
+% \changes{0.1.2583}{2017/02/08}{new (internal)}^^A
+% \begin{macrocode}
+%<*body>
+\scrlayerAddToInterface\slnc@unexpanded{%
+ \let\slnc@unexpanded\detokenize
+}
+\scrlayerAddToInterface\makenote{%
+ \newcommand*{\makenote}{%
+ \kernel@ifstar{\let\slnc@unexpanded\detokenize\slnc@makenote}%
+ {\let\slnc@unexpanded\@firstofone\slnc@makenote}%
+ }%
+}
+\scrlayerAddToInterface\slnc@makenote{%
+ \newcommand{\slnc@makenote}[2][marginpar]{%
+ \@bsphack
+ \scr@savepos
+ \addtocontents{slnc}{%
+ \string\slnc@note{#1}%
+ {\noexpand\number\value{slncpage}}%
+ {\noexpand\number\scr@lastypos}%
+ {\slnc@unexpanded{#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}%
+ }%
+}{}
+%</body>
+% \end{macrocode}
+%^^A \end{counter}^^A slncpage
+% \end{macro}^^A \slnc@unexpanded
+% \end{macro}^^A \slnc@makenote
+% \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
+%<trace> \typeout{TRACE (slnc): ##2<=\theslncpage?}%
+ \ifnum ##2>\value{slncpage}\relax
+%<trace> \typeout{TRACE (slnc): no: unprocess note}%
+ \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
+% \end{macrocode}
+% \changes{v0.1}{2015/10/07}{ready for renaming \cs{pdfpageheight} in
+% luaTeX}^^A
+% From lua\TeX~0.80.1 \cs{pdfpageheight} will be renamed into
+% \cs{pageheight}. So we have to do an extra test for the new primitive.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{pdfpageheight}{%
+ \scr@ifundefinedorrelax{pageheight}{%
+ \@tempdima=\paperheight
+ }{%
+ \@tempdima=\pageheight
+ }%
+ }{%
+ \@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'
+ }%
+%</trace>
+ \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'
+ }%
+%</trace>
+ \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
+% \end{macrocode}
+% \changes{v0.1.2582}{2017/02/08}{restore several commands}^^A
+% Some commands have to be restored when processing the note.
+% \begin{macrocode}
+ \slnc@restoreinnote
+ \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
+ \scr@savepos
+ \protected@write\@auxout{}{%
+ \string\newlabel{notecolumn.##1.##3.syncnote.label}{%
+ {%
+ \noexpand\number\scr@lastypos
+ }{\thepage}%
+ }%
+ }%
+ }%
+ \fi
+ \fi
+ }%
+ \reserved@a
+ \expandafter\ifvoid\csname slnc@#1@box\endcsname
+%<*trace>
+ \PackageInfo{scrlayer-notecolumn}{Note box `#1' empty}%
+%</trace>
+ \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'}%
+%</trace>
+ \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'}%
+%</trace>
+% \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}{\restoreinnote}
+% \changes{0.1.2582}{2017/02/08}{new command}^^A
+% \begin{macro}{\slnc@restoreinnote}
+% \changes{0.1.2582}{2017/02/08}{new (internal)}^^A
+% Some commands have to be restored while processing the notes. By default
+% these are \cs{label}, \cs{index}, \cs{glossary}. More can be added using
+% \cs{restoreinnote}. The storage is \cs{slnc@restoreinnote}.
+% \begin{macrocode}
+\scrlayerAddToInterface\slnc@restoreinnote{%
+ \let\slnc@restoreinnote\@empty
+}
+\scrlayerAddToInterface\restoreinnote{%
+ \newcommand*\restoreinnote[1]{%
+ \AtBeginDocument{%
+ \expandafter\scrlayerAddCsToInterface[scrlayer-notecolumn.sty]{slnc\string#1}{%
+ \expandafter\let\csname slnc\string#1\endcsname#1%
+ \g@addto@macro\slnc@restoreinnote{%
+ \expandafter\let\expandafter#1\csname slnc\string#1\endcsname
+ }%
+ }%
+ }%
+ }%
+ \@onlypreamble\restoreinnote
+ \restoreinnote\label
+ \restoreinnote\index
+ \restoreinnote\glossary
+}
+% \end{macrocode}
+% \end{macro}^^A \slnc@restoreinnote
+% \end{macro}^^A \restoreinnote
+% \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}'}%
+%</trace>
+ \@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}%
+}
+%</body>
+% \end{macrocode}
+% \begin{macro}{\slnc@file}
+% The input file with the unprocessed notes.
+% \changes{v0.1.2928}{2018/02/02}{use \cs{closein} instead of \cs{closeout}
+% to close \cs{slnc@file}}^^A
+% \begin{macro}{\slnc@mdfivesum}
+% \changes{v0.1.2872}{2018/01/17}{definition and usage of Lua function
+% \texttt{slncmdfivesum}}^^A
+% \changes{v0.1.2972}{2018/04/01}{usage of not yet documented Xe\TeX{}
+% primitive \cs{mdfivesum}}^^A
+% 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}{%
+ \scr@ifundefinedorrelax{mdfivesum}{%
+ \ifdefined\directlua
+ \directlua{%
+ function slncmdfivesum(filename)
+ local fh = io.open(filename,"rb")
+ if fh then
+ local sum=md5.sumhexa(fh:read("*a"))
+ tex.sprint(sum)
+ fh:close()
+ end
+ end
+ }%
+ \xdef\slnc@mdfivesum{\directlua{slncmdfivesum("\jobname.slnc")}}%
+ \fi
+ }{%
+ \xdef\slnc@mdfivesum{\mdfivesum file {\jobname.slnc}}%
+ }%
+ }{%
+ \xdef\slnc@mdfivesum{\pdfmdfivesum file {\jobname.slnc}}%
+ }%
+%<*trace>
+ \scr@ifundefinedorrelax{slnc@mdfivesum}{}{%
+ \PackageInfo{scrlayer-notecolumn}{%
+ MD5 of last `\jobname.slnc':\MessageBreak
+ \slnc@mdfivesum}%
+ }%
+%</trace>
+ \newread\slnc@file
+ \immediate\openin\slnc@file \jobname.slnc
+ \scrlayerOnAutoRemoveInterface{\immediate\closein\slnc@file}%
+}
+%</body>
+% \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}
+%</options>
+%<*final>
+\let\reserved@a\clearpage
+\def\clearpage{%
+ \ifslnc@autoclearnotecolumns\clearnotecolumns\relax\fi
+}%
+\expandafter\g@addto@macro\expandafter\clearpage\expandafter{\reserved@a}
+%</final>
+% \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}%
+ }%
+%<*trace>
+ \typeout{TRACE (slnc): clearnote=\@nameuse{theslnc@clearnote@label},
+ abspage=\the\value{slncpage}, until page=\slnc@cmp@value,
+ process=\reserved@a, pagetotal=\the\pagetotal, topskip=\the\topskip}%
+%</trace>
+ \ifvmode\ifdim \pagetotal<\topskip
+% \end{macrocode}
+% \Macro{clearpage} wouldn't result in a new page, so we do not have to output
+% the notes of this page but only until the previous.
+% \begin{macrocode}
+ \edef\slnc@cmp@value{\the\numexpr\slnc@cmp@value-1}%
+%<trace> \typeout{TRACE (slnc): until page=\slnc@cmp@value}%
+ \fi\fi
+ \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{%
+%<trace> \typeout{TRACE (slnc): add \string\clearpage}%
+% \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
+ }%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \slnc@voidtest
+% \end{macro}^^A \clearnotecolumn
+%
+% \begin{macro}{\clearnotecolumns}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}^^A
+% \changes{v3.26}{2018/08/29}{removed spurious \cs{expandafter}}^^A
+% \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}%
+ \@for\reserved@a:=\reserved@a\do {%
+ \scr@trim@spaces\reserved@a
+ \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}%
+ }%
+%<*trace>
+ \typeout{TRACE (slnc): clearnote=\@nameuse{theslnc@clearnote@label},
+ abspage=\theslncpage, until page=\slnc@cmp@value,
+ process=\reserved@a, pagetotal=\the\pagetotal, topskip=\the\topskip}%
+%</trace>
+ \ifvmode\ifdim \pagetotal<\topskip
+% \end{macrocode}
+% \Macro{clearpage} wouldn't result in a new page, so we do not have to output
+% the notes of this page but only until the previous.
+% \begin{macrocode}
+ \edef\slnc@cmp@value{\the\numexpr\slnc@cmp@value-1}%
+%<trace> \typeout{TRACE (slnc): until page=\slnc@cmp@value}%
+ \fi\fi
+ \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
+ \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{%
+%<trace> \typeout{TRACE (slnc): add \string\clearpage}%
+% \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
+ }%
+}
+%</body>
+% \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}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}^^A
+% \changes{v3.26}{2018/08/29}{removed spurious \cs{expandafter}}^^A
+% \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}%
+ \@for\reserved@a:=\reserved@a\do {%
+ \scr@trim@spaces\reserved@a
+ \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
+ \scr@savepos
+ \protected@write\@auxout{}{%
+ \string\newlabel{notecolumn.\theslnc@syncpoint.synctext.label}{%
+ {%
+ \noexpand\number
+ \numexpr \scr@lastypos\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}%
+ }%
+% \end{macrocode}
+% \changes{v0.1}{2015/10/07}{ready for renaming \cs{pdfpageheight} in
+% luaTeX}^^A
+% From lua\TeX~0.80.1 \cs{pdfpageheight} will be renamed into
+% \cs{pageheight}. So we have to do an extra test for the new primitive.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{pdfpageheight}{%
+ \scr@ifundefinedorrelax{pageheight}{%
+ \@tempdima=\paperheight
+ }{%
+ \@tempdima=\pageheight
+ }%
+ }{%
+ \@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%
+ }%
+%</trace>
+ \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
+ }%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \slnc@vadjust
+% \end{macro}^^A \syncwithnotecolumn
+%
+%
+% \iffalse^^A meta-comment
+%</interface>
+% \fi^^A meta-comment
+%
+% \Finale
+%
+\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/macros/latex/contrib/koma-script/source/scrlayer-scrpage.dtx b/macros/latex/contrib/koma-script/source/scrlayer-scrpage.dtx
new file mode 100644
index 0000000000..3868af7741
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrlayer-scrpage.dtx
@@ -0,0 +1,2968 @@
+% \CheckSum{2591}
+% \iffalse^^A meta-comment
+% ======================================================================
+% scrlayer-scrpage.dtx
+% Copyright (c) Markus Kohm, 2012-2018
+%
+% 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-scrpage.dtx
+% Copyright (c) Markus Kohm, 2012-2018
+%
+% 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 3017 2018-09-05 06:27:27Z kohm $
+%<identify>%%% (run: identify)
+%<init>%%% (run: init)
+%<options>%%% (run: options)
+%<body>%%% (run: body)
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-09-05 08:27:27 +0200 (Wed, 05 Sep 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 3017 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrlayer-scrpage.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script package source
+ }%
+\reserved@a
+%</dtx>
+%<*identify>
+%<interface>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+%<interface>\ProvidesPackage{scrlayer-scrpage}[%
+%!KOMAScriptVersion
+%<interface> package
+%</identify>
+%<*dtx|identify>
+ (end user interface for scrlayer)]
+%</dtx|identify>
+%<*dtx>
+\ifx\documentclass\undefined
+ \input scrdocstrip.tex
+ \@@input scrkernel-version.dtx
+ \@@input scrstrip.inc
+ \KOMAdefVariable{COPYRIGHTFROM}{2012}
+ \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
+ \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}
+% \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
+%
+%\iffalse
+%</dtx>
+%\fi
+%
+% \StopEventually{}
+%
+% \chapter{Implementation of \Package{scrlayer-scrpage}}
+% \label{sec:scrlayer-scrpage}
+%
+% This section if for developers only.
+%
+% \iffalse
+%<*interface>
+%<*identify>
+% \fi
+%
+%\iffalse
+%</identify>
+%\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
+%</init>
+% \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
+%</options>
+% \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}
+% \changes{v0.9.1757}{2014/04/09}{new: two offsets available}^^A
+% \changes{v3.17}{2015/02/25}{new: store the values}^^A
+% \begin{option}{footwidth}
+% \changes{v0.9.1757}{2014/04/09}{new: two offsets available}^^A
+% \changes{v3.15}{2014/12/28}{fix: missing colon in call of
+% \cs{sls@split@at@iicolons}}^^A
+% \changes{v3.17}{2015/02/25}{new: store the values}^^A
+% \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@iicolons#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@c}{\reserved@a}%
+ \noexpand\FamilyKeyStateProcessed
+ \noexpand\KOMA@kav@replacevalue{.scrlayer-scrpage.sty}{headwidth}{%
+ \reserved@a:\reserved@b:\reserved@c
+ }%
+ }%
+ \reserved@a
+}
+\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@headwidth}
+\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@headwidth@default}
+\KOMA@key{footwidth}{%
+ \begingroup
+ \sls@split@at@iicolons#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@c}{\reserved@a}%
+ \noexpand\FamilyKeyStateProcessed
+ \noexpand\KOMA@kav@replacevalue{.scrlayer-scrpage.sty}{footwidth}{%
+ \reserved@a:\reserved@b:\reserved@c
+ }%
+ }%
+ \reserved@a
+}
+\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@footwidth}
+\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@footwidth@default}
+% \end{macrocode}
+% \begin{macro}{\sls@split@at@iicolons}
+% \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 is 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@iicolons{%
+ \def\sls@split@at@iicolons#1:#2:#3:#4\@nil{%
+ \ifstr{#4}{}{}{%
+ \ifstr{#4}{:}{}{%
+ \ifstr{#4}{::}{}{%
+ \PackageWarning{scrlayer}{extra `:' found!\MessageBreak
+ You've used more than two colons 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}%
+ \def\reserved@c{#3}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \sls@split@at@iicolons
+% \begin{macro}{\sls@set@hf@width}
+% \changes{v0.9.1757}{2014/04/09}{new: two offsets available}
+% \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 odd page
+% \item[\Parameter{special dimensional expression}:] the offset even page
+% \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}[4]{%
+ \sls@settowidthof{\@tempdima}{#4}%
+ \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}%
+ }%
+ \ifstr{#3}{}{%
+ \addtolength{\@tempdima}{-\@tempdimb}%
+ }{%
+ \sls@settowidthof{\@tempdima}{#3}%
+ \setlength{\@tempdima}{-\@tempdima}%
+ }%
+ \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}%
+ \KOMA@kav@add{.scrlayer-scrpage.sty}{headwidth}{\textwidth:0pt:0pt}%
+ }{%
+ \newcommand*{\sls@headwidth}{\@headwidth}%
+ \KOMA@kav@xadd{.scrlayer-scrpage.sty}{headwidth}{\@headwidth:0pt:0pt}%
+ }%
+}
+\scrlayerAddToInterface\sls@oddheadshift{\newcommand*{\sls@oddheadshift}{0pt}}
+\scrlayerAddToInterface\sls@evenheadshift{\newcommand*{\sls@evenheadshift}{0pt}}
+\scrlayerAddToInterface\sls@footwidth{%
+ \scr@ifundefinedorrelax{@footwidth}{%
+ \newcommand*{\sls@footwidth}{\textwidth}%
+ \KOMA@kav@add{.scrlayer-scrpage.sty}{footwidth}{\textwidth:0pt:0pt}
+ }{%
+ \newcommand*{\sls@footwidth}{\@footwidth}%
+ \KOMA@kav@xadd{.scrlayer-scrpage.sty}{footwidth}{\@footwidth:0pt:0pt}
+ }%
+}
+\scrlayerAddToInterface\sls@oddfootshift{\newcommand*{\sls@oddfootshift}{0pt}}
+\scrlayerAddToInterface\sls@evenfootshift{\newcommand*{\sls@evenfootshift}{0pt}}
+% \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}%
+ }%
+ }%
+ }%
+}
+%</options>
+% \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}%
+ }%
+}
+%</body>
+% \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}
+% \changes{v3.17}{2015/02/25}{new: store the values}^^A
+% \begin{option}{headsepline}
+% \changes{v3.17}{2015/02/25}{new: store the values}^^A
+% \begin{option}{footsepline}
+% \changes{v3.17}{2015/02/25}{new: store the values}^^A
+% \begin{option}{footbotline}
+% \changes{v3.17}{2015/02/25}{new: store the values}^^A
+% \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[headtopline]{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[headsepline]{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[footsepline]{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[footbotline]{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[\OParameter{option name}:] either empty or the name of the option
+% that sets the line,
+% \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}[4][]{%
+ \begingroup
+ \ifstr{#1}{}{%
+ \FamilyKeyStateUnknown
+ }{%
+ \KOMA@set@ifkey{#1}{@tempswa}{#4}%
+ }%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \edef\reserved@b{%
+ \noexpand\endgroup
+ \noexpand\@namedef{sls@#2#3@linethickness}{.4pt}%
+ \noexpand\@namedef{sls@#2#3@linelength}{%
+ \expandafter\noexpand\csname sls@#2width\endcsname
+ }%
+ }%
+ \else
+ \def\reserved@b{%
+ \endgroup
+ \@namedef{sls@#2#3@linethickness}{0pt}%
+ \@namedef{sls@#2#3@linelength}{0pt}%
+ }%
+ \fi
+ \else
+ \let\reserved@a\@empty
+ \let\reserved@b\@empty
+ \sls@split@at@colon#4::\@nil
+ \ifx\reserved@a\@empty
+ \def\reserved@a{\endgroup\@namedef{sls@#2#3@linethickness}{.4pt}}%
+ \else
+ \setlength{\@tempdima}{\dimexpr\reserved@a\relax}%
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\@namedef{sls@#2#3@linethickness}{\the\@tempdima}%
+ }%
+ \fi
+ \ifx\reserved@b\@empty
+ \def\reserved@b{%
+ \reserved@a
+ \@namedef{sls@#2#3@linelength}{\@nameuse{sls@#2width}}%
+ }%
+ \else
+ \edef\reserved@b{%
+ \noexpand\reserved@a
+ \noexpand\sls@deftowidthof{sls@#2#3@linelength}{\reserved@b}%
+ }%
+ \fi
+ \fi
+ \reserved@b
+ \FamilyKeyStateProcessed
+ \ifstr{#1}{}{}{%
+ \KOMA@kav@xreplacevalue{.scrlayer-scrpage.sty}{#1}{%
+ \csname sls@#2#3@linethickness\endcsname
+ :\csname sls@#2#3@linelength\endcsname
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \sls@set@values
+% \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 is 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@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}{0pt}%
+}
+\KOMA@kav@xadd{.scrlayer-scrpage.sty}{headtopline}{%
+ \expandafter\noexpand\sls@headabove@linethickness:%
+ \expandafter\noexpand\sls@headabove@linelength}
+\scrlayerAddToInterface\sls@headbelow@linelength{%
+ \newcommand*{\sls@headbelow@linelength}{\sls@headwidth}%
+}
+\scrlayerAddToInterface\sls@headbelow@linethickness{%
+ \newcommand*{\sls@headbelow@linethickness}{0pt}%
+}
+\KOMA@kav@xadd{.scrlayer-scrpage.sty}{headsepline}{%
+ \expandafter\noexpand\sls@headbelow@linethickness:%
+ \expandafter\noexpand\sls@headbelow@linelength}
+\scrlayerAddToInterface\sls@footabove@linelength{%
+ \newcommand*{\sls@footabove@linelength}{\sls@footwidth}%
+}
+\scrlayerAddToInterface\sls@footabove@linethickness{%
+ \newcommand*{\sls@footabove@linethickness}{0pt}%
+}
+\KOMA@kav@xadd{.scrlayer-scrpage.sty}{footsepline}{%
+ \expandafter\noexpand\sls@footabove@linethickness:%
+ \expandafter\noexpand\sls@footabove@linelength}
+\scrlayerAddToInterface\sls@footbelow@linelength{%
+ \newcommand*{\sls@footbelow@linelength}{\sls@footwidth}%
+}
+\scrlayerAddToInterface\sls@footbelow@linethickness{%
+ \newcommand*{\sls@footbelow@linethickness}{0pt}%
+}
+\KOMA@kav@xadd{.scrlayer-scrpage.sty}{footbotline}{%
+ \expandafter\noexpand\sls@footbelow@linethickness:%
+ \expandafter\noexpand\sls@footbelow@linelength}
+%</options>
+% \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}%
+}
+%</options>
+% \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}
+% \changes{v3.17}{2015/02/25}{new: store the values}^^A
+% \begin{option}{clines}
+% \changes{v3.17}{2015/02/25}{new: store the values}^^A
+% \begin{option}{olines}
+% \changes{v3.17}{2015/02/25}{new: store the values}^^A
+% \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@kav@add{.scrlayer-scrpage.sty}{ilines}{}
+\KOMA@key{ilines}[]{%
+ \ifx\relax#1\relax
+ \renewcommand*{\sls@hfline@adjust}{0}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@removekey{.scrlayer-scrpage.sty}{ilines}%
+ \KOMA@kav@removekey{.scrlayer-scrpage.sty}{clines}%
+ \KOMA@kav@removekey{.scrlayer-scrpage.sty}{olines}%
+ \KOMA@kav@add{.scrlayer-scrpage.sty}{ilines}{}%
+ \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
+ \KOMA@kav@removekey{.scrlayer-scrpage.sty}{ilines}%
+ \KOMA@kav@removekey{.scrlayer-scrpage.sty}{clines}%
+ \KOMA@kav@removekey{.scrlayer-scrpage.sty}{olines}%
+ \KOMA@kav@add{.scrlayer-scrpage.sty}{clines}{}%
+ \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
+ \KOMA@kav@removekey{.scrlayer-scrpage.sty}{ilines}%
+ \KOMA@kav@removekey{.scrlayer-scrpage.sty}{clines}%
+ \KOMA@kav@removekey{.scrlayer-scrpage.sty}{olines}%
+ \KOMA@kav@add{.scrlayer-scrpage.sty}{olines}{}%
+ \else
+ \def\FamilyKeyStateProcessed{unexpected value}%
+ \fi
+}
+\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@olines}
+\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@olines@default}
+\KOMA@kav@add{.scrlayer-scrpage.sty}{ilines}{}
+%</options>
+% \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}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\sls@@setline}
+% \begin{macro}{\sls@@@setline}
+% \changes{v3.17}[2015/02/27]{internal use of the corresponding options}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\sls@@@@setline}
+% \changes{v3.18}{2015/06/17}{explicit reuse of the current length}^^A
+% Helper to set up the line attributes processing the parameters of the
+% commands above.
+% \begin{macrocode}
+\scrlayerAddToInterface\sls@setline{%
+ \newcommand*\sls@setline[2]{%
+ \kernel@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}%
+ \ifstr{#1}{headabove}{%
+ \KOMAExecuteOptions[.scrlayer-scrpage.sty]%
+ {headtopline=\@tempdima:\csname sls@#1@linelength\endcsname}%
+ }{\ifstr{#1}{headbelow}{%
+ \KOMAExecuteOptions[.scrlayer-scrpage.sty]%
+ {headsepline=\@tempdima:\csname sls@#1@linelength\endcsname}%
+ }{%
+ \ifstr{#1}{footabove}{%
+ \KOMAExecuteOptions[.scrlayer-scrpage.sty]%
+ {footsepline=\@tempdima:\csname sls@#1@linelength\endcsname}%
+ }{%
+ \KOMAExecuteOptions[.scrlayer-scrpage.sty]%
+ {footbotline=\@tempdima:\csname sls@#1@linelength\endcsname}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ \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
+ `<line thickness>:<line length>' to setup\MessageBreak
+ the line length and thickness, and\MessageBreak
+ `\string\setkomafont' or `\string\addtokomafont' to\MessageBreak
+ setup the colour%
+ }%
+ \kernel@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}%
+}{}
+%</body>
+% \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}
+% \changes{v3.24}{2017/05/22}{warning depends on option
+% \texttt{singlespacing}}^^A
+% Some classes set \Length{headheight} to a very, very small value. We'll
+% warn about that.
+% \begin{length}{\footheight}
+% \changes{v3.24}{2017/05/23}{also warn for low \cs{footheight}}^^A
+% If the \Length{headheight} is OK, we also test for \Length{footheight}.
+% \begin{macrocode}
+%<*body>
+\AtBeginDocument{%
+ \ifdim \headheight
+ <\if@ps@singlespacing\f@baselineskip\else\baselineskip\fi\relax
+ \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
+ \if@ps@singlespacing\f@baselineskip\else\the\baselineskip\fi\space
+ currently.\MessageBreak
+ But head height is currently
+ \the\headheight\space only.\MessageBreak
+ You may use\MessageBreak
+ \@ifpackageloaded{geometry}{%
+ geometry option
+ `head=\if@ps@singlespacing\f@baselineskip\else\the\baselineskip\fi'%
+ }{%
+ \@ifpackageloaded{typearea}{%
+ typearea option `headheight=%
+ \if@ps@singlespacing\f@baselineskip\else\the\baselineskip\fi'%
+ }{%
+ \string\setlength{\string\headheight}%
+ {\if@ps@singlespacing\f@baselineskip\else\the\baselineskip\fi}%
+ }%
+ }\MessageBreak
+ \if@ps@singlespacing\else\ifdim \headheight<\f@baselineskip\else
+ or load package `scrlayer-scrpage' with\MessageBreak
+ option `singlespacing=true'\MessageBreak
+ \fi\fi
+ to avoid this warning%
+ }%
+ \else
+ \ifdim \footheight
+ <\if@ps@singlespacing\f@baselineskip\else\baselineskip\fi\relax
+ \PackageWarningNoLine{scrlayer-scrpage}{Very small foot height
+ detected!\MessageBreak
+ Using scrlayer-scrpage the foot height\MessageBreak
+ should be at least \string\baselineskip, which is\MessageBreak
+ \if@ps@singlespacing\f@baselineskip\else\the\baselineskip\fi\space
+ currently.\MessageBreak
+ But foot height is currently
+ \the\footheight\space only.\MessageBreak
+ You may use\MessageBreak
+ \@ifpackageloaded{typearea}{%
+ typearea option `footheight=%
+ \if@ps@singlespacing\f@baselineskip\else\the\baselineskip\fi'%
+ }{%
+ \string\setlength{\string\footheight}%
+ {\if@ps@singlespacing\f@baselineskip\else\the\baselineskip\fi}%
+ }%
+ \MessageBreak
+ \if@ps@singlespacing\else\ifdim \footheight<\f@baselineskip\else
+ or load package `scrlayer-scrpage' with\MessageBreak
+ option `singlespacing=true'\MessageBreak
+ \fi\fi
+ to avoid this warning%
+ }%
+ \fi
+ \fi
+}
+%</body>
+% \end{macrocode}
+% \end{length}^^A \footheight
+% \end{length}^^A \headheight
+%
+%
+% \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{%
+ \sls@auto@pagestyleset%
+}
+% \end{macrocode}
+% \begin{macro}{\sls@auto@pagestyleset}
+% \changes{v0.9}{2014/01/22}{new (internal) macro}%^^A
+% \begin{macrocode}
+\newcommand*{\sls@auto@pagestyleset}{%
+ \scr@ifundefinedorrelax{KOMAClassName}{%
+%<trace> \PackageInfoNoLine{scrlayer-scrpage}{%
+%<trace> auto-selection of `pagestyleset=standard'}%
+ \FamilyExecuteOptions[.scrlayer-scrpage.sty]{KOMA}{pagestyleset=standard}%
+ }{%
+%<trace> \PackageInfoNoLine{scrlayer-scrpage}{%
+%<trace> auto-selection of `pagestyleset=KOMA-Script'}%
+ \FamilyExecuteOptions[.scrlayer-scrpage.sty]{KOMA}%
+ {pagestyleset=KOMA-Script}%
+ }%
+}
+%</init>
+% \end{macrocode}
+% \end{macro}%^^A \sls@auto@pagestyleset
+% \changes{v3.17}{2015/02/25}{new: store the values}^^A
+% \begin{macrocode}
+%<*options>
+\KOMA@key{pagestyleset}{%
+ \scr@ifundefinedorrelax{sls@ps@style@#1}{%
+ \FamilyKeyStateUnknownValue
+ }{%
+ \let\sls@auto@pagestyleset\relax
+ \@nameuse{sls@ps@style@#1}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{.scrlayer-scrpage.sty}{pagestyleset}{#1}%
+ }%
+}
+\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:
+% \changes{v3.18}{2015/06/24}{missing \cs{lofoot} and \cs{rofoot} added}^^A
+% \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}%
+ \lofoot[\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}%
+ \rofoot[\ifnum\@pageat=5 \pagemark\fi]
+ {\ifnum\@pageat=5 \pagemark\fi}%
+ }{}%
+ }%
+ }%
+ }%
+}
+%</options>
+% \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}
+%</options>
+% \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%
+}
+%</options>
+% \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}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\sls@@defhead}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\sls@@@defhead}
+% \changes{v0.9}{2014/08/18}{fix names of layers \texttt{\dots head.odd} and
+% \texttt{\dots head.even}}%^^A
+% \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]{%
+ \kernel@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{%
+ \kernel@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:
+% \changes{v3.13b}{2014/10/16}{workaround: additional group added to avoid
+% pdf\TeX{} color stack warnings}%^^A
+% \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.even}%
+ \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.odd}%
+ \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}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\sls@@deffoot}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\sls@@@deffoot}
+% \changes{v0.9}{2014/08/18}{fix names of layers \texttt{\dots foot.odd} and
+% \texttt{\dots foot.even}}%^^A
+% \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]{%
+ \kernel@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{%
+ \kernel@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.even}%
+ \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.odd}%
+ \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
+ \ifsls@autoenlarge
+ I'll enlarge \string#1, for further\MessageBreak
+ processing, but you should do this yourself,\MessageBreak
+ \else
+ You should enlarge \string#1,\MessageBreak
+ \fi
+ 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
+ }%
+ \ifsls@autoenlarge
+ .\MessageBreak
+ I'll also
+ \ifx #1\headheight decrease \string\topmargin
+ \else increase \string\footskip\fi
+ \fi
+ }%
+ \ifsls@autoenlarge
+ \@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
+ \fi
+ \usebox\z@
+ \endgroup
+ }%
+}
+%</body>
+% \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}
+%</options>
+% \end{macrocode}
+% \end{option}^^A hmode
+% \begin{option}{autoenlargeheadfoot}
+% \changes{v3.25}{2018/01/14}{new option}^^A
+% Automaticly enlarge vertical size of head or foot if the contents is to
+% large. This is the default.
+% \begin{macrocode}
+%<*options>
+\KOMA@ifkey{autoenlargeheadfoot}{sls@autoenlarge}
+\KOMAExecuteOptions{autoenlargeheadfoot=true}
+\scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@autoenlargeheadfoot}
+\scrlayer@AddCsToInterface{%
+ KV@KOMA.scrlayer-scrpage.sty@autoenlargeheadfoot@default}
+\scrlayer@AddCsToInterface{sls@autoenlargetrue}
+\scrlayer@AddCsToInterface{sls@autoenlargefalse}
+%</options>
+% \end{macrocode}
+% \end{option}^^A autoenlargeheadfoot
+% \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}
+% The low level page head font command. It is deprecated to redefine or use
+% this and it may already be defined.
+% \begin{macro}{\scr@fnt@pagehead}
+% \changes{v3.25}{2018/02/05}{don't use \cs{newkomafont} to avoid
+% warning}^^A
+% \begin{macro}{\scr@fnt@wrn@pagehead}
+% \changes{v0.9}{2014/01/13}{warning always deactivated}^^A
+% \begin{macro}{\scr@fnt@pageheadfoot}
+% \begin{macrocode}
+%<*body>
+\@ifundefined{scr@fnt@pagehead}{%
+ \scr@ifundefinedorrelax{scr@fnt@instead@pagehead}{}{%
+ \PackageInfo{scrlayer-scrpage}{%
+ Makeing stand-alone element `pagehead' from\MessageBreak
+ alias to `pageheadfoot'%
+ }%
+ \let\scr@fnt@instead@pagehead\relax
+ }%
+ \scrlayer@AddCsToInterface{scr@fnt@pagehead}%
+ \@ifundefined{@pageheadfont}{%
+ \newcommand*{\@pageheadfont}{}%
+ \scrlayer@AddCsToInterface{@pageheadfont}%
+ }{}%
+ \newcommand*{\scr@fnt@pagehead}{\@pageheadfont}%
+}{}
+\@ifundefined{scr@fnt@pageheadfoot}{%
+ \newcommand*{\scr@fnt@pageheadfoot}{\headfont}%
+ \scrlayer@AddCsToInterface{scr@fnt@pageheadfoot}%
+ \@ifundefined{headfont}{%
+ \newcommand*{\headfont}{\normalcolor\slshape}%
+ }{}
+}{}
+\scr@ifundefinedorrelax{scr@fnt@wrn@pagehead}{}{%
+%<trace> \PackageInfo{scrlayer-scrpage}{%
+%<trace> deactivating warning for font element\MessageBreak
+%<trace> `pagehead'}%
+ \let\scr@fnt@wrn@pagehead\relax
+}
+% \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}
+% The low level page footer font command. It is deprecated to redefine or use
+% this and it may already be defined.
+% \begin{macro}{\scr@fnt@pagefoot}
+% \begin{macro}{\scr@fnt@wrn@pagefoot}
+% \changes{v0.9}{2014/01/13}{warning always deactivated}
+% \begin{macrocode}
+\@ifundefined{scr@fnt@pagefoot}{%
+ \scrlayer@AddCsToInterface{scr@fnt@pagefoot}%
+ \def\scr@fnt@pagefoot{\footfont}%
+ \@ifundefined{footfont}{%
+ \newcommand*{\footfont}{}%
+ \scrlayer@AddCsToInterface{footfont}%
+ }{}%
+}{}
+\scr@ifundefinedorrelax{scr@fnt@wrn@pagefoot}{}{%
+%<trace> \PackageInfo{scrlayer-scrpage}{%
+%<trace> deactivating warning for font element\MessageBreak
+%<trace> `pagefoot'}%
+ \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
+ }%
+}
+%</body>
+% \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.%
+ }%
+ }%
+ }%
+}
+%</body>
+% \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}%
+ }%
+ }%
+}
+%</body>
+% \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%
+ }%
+%</trace>
+ }%
+ }%
+}
+%</body>
+% \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}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\scrlayer@@triplestyle}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \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{%
+ \kernel@ifnextchar[%]
+ {\scrlayer@@triplestyle{#1}}%
+ {\scrlayer@@triplestyle{#1}[\z@]}%
+ }
+}
+\scrlayerAddToInterface\scrlayer@@triplestyle{%
+ \def\scrlayer@@triplestyle#1[#2]{%
+ \kernel@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
+ }%
+}
+%</body>
+% \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={%
+% \end{macrocode}
+% \changes{v3.15}{2015/01/08}{usage of \cs{DeclarePageStyleAlias} instead of
+% \cs{let}}^^A fixme: Is this correct?
+% \begin{macrocode}
+ \DeclarePageStyleAlias{plain}{plain.#2}%
+ \DeclarePageStyleAlias{headings}{#2}%
+ \def\sls@currentheadings{#2}%
+ \def\sls@currentplain{plain.#2}%
+ #3%
+ }%
+ }%
+ \sls@def@pair@page@style@member{plain.#2}%
+ \AddToLayerPageStyleOptions{plain.#2}{%
+ onselect={%
+% \end{macrocode}
+% \changes{v3.15}{2015/01/08}{usage of \cs{DeclarePageStyleAlias} instead of
+% \cs{let}}^^A fixme: Is this correct?
+% \begin{macrocode}
+ \DeclarePageStyleAlias{plain}{plain.#2}%
+ \DeclarePageStyleAlias{headings}{#2}%
+ \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}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \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}{%
+ \kernel@ifstar {%
+ \kernel@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}
+% \changes{v3.24}{2017/05/04}{improved \textsf{bidi} compatibility}^^A
+% \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][\IfRTL{r}{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][\IfRTL{l}{r}]{\parbox{\sls@headwidth}{\raggedleft
+ \strut\@nameuse{sls@ps@#1@even@right@head}\strut}}%
+ }{%
+ \makebox[0pt][\IfRTL{r}{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][\IfRTL{l}{r}]{\parbox{\sls@headwidth}{\raggedleft
+ \strut\@nameuse{sls@ps@#1@odd@right@head}\strut}}%
+ }{%
+ \makebox[0pt][\IfRTL{r}{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][\IfRTL{l}{r}]{\parbox{\sls@headwidth}{\raggedleft
+ \strut\@nameuse{sls@ps@#1@odd@right@head}\strut}}%
+ }%
+ }{%
+ {%
+ \makebox[0pt][\IfRTL{r}{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][\IfRTL{l}{r}]{\parbox{\sls@footwidth}{\raggedleft
+ \strut\@nameuse{sls@ps@#1@even@right@foot}\strut}}%
+ }{%
+ \makebox[0pt][\IfRTL{r}{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][\IfRTL{l}{r}]{\parbox{\sls@footwidth}{\raggedleft
+ \strut\@nameuse{sls@ps@#1@odd@right@foot}\strut}}%
+ }{%
+ \makebox[0pt][\IfRTL{r}{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][\IfRTL{l}{r}]{\parbox{\sls@footwidth}{\raggedleft
+ \strut\@nameuse{sls@ps@#1@odd@right@foot}\strut}}%
+ }%
+ }%
+ }%
+}
+%</body>
+% \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>
+ }%
+ }{%
+%<*trace>
+ \PackageInfo{scrlayer-scrpage}{%
+ Page style of `#2' already defined.\MessageBreak
+ Definition ignored}%
+%</trace>
+ }%
+ }%
+}
+%</body>
+% \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}}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \ps@scrplain
+% \end{macro}^^A \ps@plain.scrheadings
+% \end{macro}^^A \ps@scrheadings
+%
+%
+% \begin{macro}{\ihead}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ohead}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\chead}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\lehead}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\lohead}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\rehead}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\rohead}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\cehead}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\cohead}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ifoot}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\ofoot}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\cfoot}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\lefoot}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\lofoot}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\refoot}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\rofoot}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\cefoot}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\cofoot}
+% \changes{v3.14}{2014/09/19}{new star version double the argument}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% 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}{\kernel@ifstar {\@dblarg\@@@ihead}{\@ihead}}%
+}
+% \end{macrocode}
+% \begin{macro}{\@ihead}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \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}{\kernel@ifnextchar[{\@@@ihead}{\@@ihead}}%
+}
+\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
+% \end{macro}^^A \@ihead
+% \begin{macrocode}
+\scrlayerAddToInterface\ohead{%
+ \newcommand*{\ohead}{\kernel@ifstar {\@dblarg\@@@ohead}{\@ohead}}%
+}
+% \end{macrocode}
+% \begin{macro}{\@ohead}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \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}{\kernel@ifnextchar[{\@@@ohead}{\@@ohead}}%
+}
+\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
+% \end{macro}^^A \@ohead
+% \begin{macrocode}
+\scrlayerAddToInterface\chead{%
+ \newcommand*{\chead}{\kernel@ifstar {\@dblarg\@@@chead}{\@chead}}%
+}
+% \end{macrocode}
+% \begin{macro}{\@chead}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \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}{\kernel@ifnextchar[{\@@@chead}{\@@chead}}%
+}
+\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
+% \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}}%
+}
+% \end{macrocode}
+% \begin{macrocode}
+\scrlayerAddToInterface\ifoot{%
+ \newcommand*{\ifoot}{\kernel@ifstar {\@dblarg\@@@ifoot}{\@ifoot}}%
+}
+% \end{macrocode}
+% \begin{macro}{\@ifoot}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \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}{\kernel@ifnextchar[{\@@@ifoot}{\@@ifoot}}%
+}
+\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
+% \end{macro}^^A \@ifoot
+% \begin{macrocode}
+\scrlayerAddToInterface\ofoot{%
+ \newcommand*{\ofoot}{\kernel@ifstar {\@dblarg\@@@ofoot}{\@ofoot}}%
+}
+% \end{macrocode}
+% \begin{macro}{\@ofoot}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \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}{\kernel@ifnextchar[{\@@@ofoot}{\@@ofoot}}%
+}
+\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
+% \end{macro}^^A \@ofoot
+% \begin{macrocode}
+\scrlayerAddToInterface\cfoot{%
+ \newcommand*{\cfoot}{\kernel@ifstar {\@dblarg\@@@cfoot}{\@cfoot}}%
+}
+% \end{macrocode}
+% \begin{macro}{\@cfoot}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \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}{\kernel@ifnextchar[{\@@@cfoot}{\@@cfoot}}%
+}
+\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
+% \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}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \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]{%
+ \kernel@ifstar{\@dblarg{\sls@@@@renewelement{#1}{#2}{#3}}}%
+ {\sls@@renewelement{#1}{#2}{#3}}%
+ }%
+}
+\scrlayerAddToInterface\sls@@renewelement{%
+ \newcommand*{\sls@@renewelement}[3]{%
+ \kernel@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}%
+ }%
+ }%
+}
+%</body>
+% \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 \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
+}
+%</body>
+% \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
+}
+%</body>
+% \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
+}
+%</body>
+% \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}}%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \ps@useheadings
+%
+% \iffalse^^A meta-comment
+%</interface>
+% \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/macros/latex/contrib/koma-script/source/scrlayer.dtx b/macros/latex/contrib/koma-script/source/scrlayer.dtx
new file mode 100644
index 0000000000..0fc52a4e68
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrlayer.dtx
@@ -0,0 +1,4319 @@
+% \CheckSum{4042}
+% \iffalse^^A meta-comment
+% ======================================================================
+% scrlayer.dtx
+% Copyright (c) Markus Kohm, 2012-2018
+%
+% 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-2018
+%
+% 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 3015 2018-09-03 10:51:32Z kohm $
+%<identify>%%% (run: identify)
+%<init>%%% (run: init)
+%<options>%%% (run: options)
+%<body>%%% (run: body)
+%<final>%%% (run: final)
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-09-03 12:51:32 +0200 (Mon, 03 Sep 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 3015 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrlayer.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script package source
+ }%
+\reserved@a
+%</dtx>
+%<*identify|doc>
+%<package>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+%<package>\ProvidesPackage{scrlayer}[%
+%<doc>\ProvidesFile{scrlayer.tex}[%
+%!KOMAScriptVersion
+%<package> package
+%</identify|doc>
+%<*dtx|identify|doc>
+ (defining layers and page styles)]
+%</dtx|identify|doc>
+%<*dtx>
+\ifx\documentclass\undefined
+ \input scrdocstrip.tex
+ \@@input scrkernel-version.dtx
+ \@@input scrstrip.inc
+ \KOMAdefVariable{COPYRIGHTFROM}{2012}
+ \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
+ \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}
+%</dtx>
+% \fi^^A meta-comment
+%
+% \selectlanguage{english}
+%
+% \changes{v0.0}{2012/01/01}{Start of new package}
+% \changes{v0.9}{2014/07/25}{User documentation removed}
+%
+% \StopEventually{}
+%
+%
+% \section{Implementation of \Package{scrlayer}}
+%
+% This section if for developers only.
+%
+% \iffalse
+%<*package>
+%<*identify>
+% \fi
+%
+%\iffalse^^A meta-comment
+%</identify>
+%</package>
+%<*package|interface|class>
+%\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}
+%<package>\RequirePackage{scrkbase}[2013/03/05]
+%<interface>\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
+}
+%</package>
+% \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}%
+ }%
+ }%
+}{}
+%</package>
+% \end{macrocode}
+% \end{macro}^^A \if@mainmatter
+%
+% \iffalse^^A meta-comment
+%</init>
+% \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}
+%<*package|interface>
+\KOMAProcessOptions\relax
+%</package|interface>
+% \end{macrocode}
+%
+% \subsection{Body Initialisation}
+%
+% Currently not needed.
+%
+% \iffalse
+%</body>
+% \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}{%
+%<interface&scrpage>\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
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \KOMA@kav@removekey{.scrlayer.sty}{markcase}%
+ \KOMA@kav@xadd{.scrlayer.sty}{markcase}{#1}%
+ \fi
+%<interface&scrpage>}%
+}
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @markcase\endcsname\relax
+%</interface&body>
+% \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&options>
+\@ifundefined{MakeMarkcase}{\let\MakeMarkcase\@firstofone}{}
+\ifx\MakeMarkcase\@firstofone
+ \KOMA@kav@replacevalue{.scrlayer.sty}{markcase}{used}%
+\else\ifx\MakeMarkcase\MakeUppercase
+ \KOMA@kav@replacevalue{.scrlayer.sty}{markcase}{upper}%
+ \else\ifx\MakeMarkcase\MakeLowercase
+ \KOMA@kav@replacevalue{.scrlayer.sty}{markcase}{lower}%
+ \else\ifx\MakeMarkcase\scr@ignoreuppercase
+ \KOMA@kav@replacevalue{.scrlayer.sty}{markcase}{ignoreuppercase}%
+\fi\fi\fi\fi
+% \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
+%</package&options>
+% \end{macrocode}
+% \end{macro}^^A \ifscrlayer@forceignoreuppercase
+% \end{macro}^^A \scrlayer@ignoreuppercase
+% \end{macro}^^A \MakeMarkcase
+% \end{option}^^A markcase
+%
+% \begin{macro}{\rightfirstmark}
+% \changes{v3.16}{2015/01/14}{new}
+% \begin{macro}{\rightbotmark}
+% \changes{v3.16}{2015/01/14}{new}
+% \begin{macro}{\righttopmark}
+% \changes{v3.16}{2015/01/14}{new}
+% \Macro{rightfirstmark} is simply the same like the \Macro{rightmark} of the
+% \LaTeX{} kernel. \Macro{rightbotmark} uses \Macro{botmark} instead of
+% \Macro{firstmark} and \Macro{righttopmark} uses \Macro{topmark}.
+% \begin{macrocode}
+%<*package&body>
+\newcommand*{\rightfirstmark}{\expandafter\@rightmark\firstmark\@empty\@empty}
+\newcommand*{\rightbotmark}{\expandafter\@rightmark\botmark\@empty\@empty}
+\newcommand*{\righttopmark}{\expandafter\@rightmark\topmark\@empty\@empty}
+% \end{macrocode}
+% \end{macro}^^A \righttopmark
+% \end{macro}^^A \rightbotmark
+% \end{macro}^^A \rightfirstmark
+%
+% \begin{macro}{\leftfirstmark}
+% \changes{v3.16}{2015/01/14}{new}
+% \begin{macro}{\leftbotmark}
+% \changes{v3.16}{2015/01/14}{new}
+% \begin{macro}{\lefttopmark}
+% \changes{v3.16}{2015/01/14}{new}
+% \Macro{leftbotmark} is simply the same like the \Macro{leftmark} of the
+% \LaTeX{} kernel. \Macro{leftfirstmark} uses \Macro{firstmark} instead of
+% \Macro{botmark} and \Macro{lefttopmark} uses \Macro{topmark}.
+% \begin{macrocode}
+\newcommand*{\leftfirstmark}{\expandafter\@leftmark\firstmark\@empty\@empty}
+\newcommand*{\leftbotmark}{\expandafter\@leftmark\botmark\@empty\@empty}
+\newcommand*{\lefttopmark}{\expandafter\@leftmark\topmark\@empty\@empty}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \lefttopmark
+% \end{macro}^^A \leftbotmark
+% \end{macro}^^A \leftfirstmark
+%
+% \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%
+ }%
+}
+%</package&body>
+% \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}%
+}{}
+%</package&body>
+% \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}}%
+}
+%</package&body>
+% \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}
+% \changes{v3.25}{2017/10/13}{added to the \KOMAScript{} classes}
+% \begin{macro}{\@mkright}
+% \changes{v3.25}{2017/10/13}{added to the \KOMAScript{} classes}
+% \begin{macro}{\@mkdouble}
+% \changes{v3.25}{2017/10/13}{added to the \KOMAScript{} classes}
+% 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|class)&body>
+\providecommand*{\@mkleft}{%
+ \IfActiveMkBoth{\markleft}{\@gobble}%
+}%
+\providecommand*{\@mkright}{%
+ \IfActiveMkBoth{\markright}{\@gobble}%
+}%
+\providecommand*{\@mkdouble}[1]{%
+ \@mkboth{#1}{#1}%
+}
+%</(package|class)&body>
+% \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}}%
+}
+%</package&body>
+% \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>
+%<*package>
+\KOMA@ifkey{autooneside}{scrlayer@autooneside}\scrlayer@autoonesidetrue
+\KOMA@kav@replacebool{.scrlayer.sty}{autooneside}{scrlayer@autooneside}
+%</package>
+%<*interface>
+\KOMA@key{autooneside}[true]{%
+ \KOMA@set@ifkey{autooneside}{scrlayer@autooneside}{#1}%
+ \KOMA@kav@replacebool{.scrlayer.sty}{autooneside}{scrlayer@autooneside}%
+}
+%</interface>
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @autooneside\endcsname\relax
+%</interface&body>
+% \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}?
+% \changes{v3.22}{2016/12/07}{prepared for classes without \cs{section} or
+% \cs{subsection}}^^A
+% \begin{macrocode}
+%<*options>
+\KOMA@key{automark}[]{%
+ \scrlayer@testunexpectedarg{automark}{#1}%
+ \scrlayer@AtEndOfPackage{%
+ \if@chapter
+ \scr@ifundefinedorrelax{section}{%
+ \automark{chapter}%
+ }{%
+ \automark[section]{chapter}%
+ }%
+ \else
+ \scr@ifundefinedorrelax{section}{%
+ \automark{}%
+ }{%
+ \scr@ifundefinedorrelax{subsection}{%
+ \automark{section}%
+ }{%
+ \automark[subsection]{section}%
+ }
+ }%
+ \fi
+ }%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@removekey{.scrlayer.sty}{automark}%
+ \KOMA@kav@removekey{.scrlayer.sty}{manualmark}%
+ \KOMA@kav@add{.scrlayer.sty}{automark}{}%
+}
+%</options>
+%<*interface&body>
+\expandafter\let\csname KV@KOMA.\@currname.\@currext @automark\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @automark@default\endcsname\relax
+%</interface&body>
+%<*options>
+\KOMA@key{manualmark}[]{%
+ \scrlayer@testunexpectedarg{manualmark}{#1}%
+ \scrlayer@AtEndOfPackage{\manualmark}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@removekey{.scrlayer.sty}{automark}%
+ \KOMA@kav@removekey{.scrlayer.sty}{manualmark}%
+ \KOMA@kav@add{.scrlayer.sty}{manualmark}{}%
+}
+%</options>
+%<*interface&body>
+\expandafter\let\csname KV@KOMA.\@currname.\@currext @manualmark\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @manualmark@default\endcsname\relax
+%</interface&body>
+% \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
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\automark}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \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}{%
+ \kernel@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 #1numdepth\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 #1numdepth\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 #1numdepth\endcsname +0\relax
+ > \numexpr \csname #2numdepth\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 #1numdepth\endcsname +0\relax
+ = \numexpr \csname #2numdepth\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 #2numdepth\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 #1numdepth\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 #2numdepth\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{#1numdepth}{%
+ \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
+ }%
+}
+%</package&body>
+% \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 #1numdepth\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 numdepth}{%
+ \expandafter\DeclareSectionNumberDepth
+ \expandafter{\reserved@a}{\@tempcnta}%
+ }{%
+ \expandafter\DeclareSectionNumberDepth
+ \expandafter{\reserved@a}{\csname \reserved@a numdepth\endcsname}%
+ }%
+ \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
+}
+%</package&body>
+% \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}
+%</package&body>
+% \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, primitive attributes and compounding attributes. The basic
+% attributes are:
+% \begin{description}
+% \item[\texttt{mode=\meta{command sequence}}:] the mode that should be used
+% to output the \texttt{contents}. A command \cs{layer\meta{command
+% sequence}mode} with one argument need to be defined.
+% \changes{v3.19}{2015/07/30}{new layer attribute \texttt{mode}}^^A
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{mode}{%
+ \scr@ifundefinedorrelax{layer#1mode}{\FamilyKeyStateUnknownValue}{%
+ \@namedef{scr@l@\scr@current@layer @mode}{#1}%
+ \FamilyKeyStateProcessed
+ }%
+}
+% \end{macrocode}
+% \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.
+% \changes{v3.14}{2014/10/20}{\texttt{contents} is \cs{long}}^^A
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{contents}{%
+ \long\@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{backandforeground}:] not really useful, but the counterpart of
+% the restrictions above.
+% \changes{v3.18}{2015/05/14}{new layer feature \texttt{backandforeground}}
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{backandforeground}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{backandforeground}{#1}%
+ \csname @scr@l@\scr@current@layer @backgroundtrue\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[\texttt{oddorevenpage}:] do not restrict the layer to odd or even
+% pages.
+% \changes{v3.18}{2015/05/14}{new layer feature \texttt{oddorevenpage}}
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{oddorevenpage}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{oddorevenpage}{#1}%
+ \csname @scr@l@\scr@current@layer @oddtrue\endcsname
+ \csname @scr@l@\scr@current@layer @eventrue\endcsname
+}
+% \end{macrocode}
+% \item[\texttt{evenoroddpage}:] same as \texttt{oddorevenpage}
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{evenoroddpage}[\relax]{%
+ \PackageWarning{scrlayer}{Option `evenoroddpage' unknown.\MessageBreak
+ Using `oddorevenpage' instead}%
+ \ExecuteFamilyOptions[.definelayer]{KOMAarg}{oddorevenpage=#1}
+}
+% \end{macrocode}
+% \item[\texttt{oddandevenpages}:] same as \texttt{oddorevenpage}
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{oddandevenpages}[\relax]{%
+ \PackageWarning{scrlayer}{Option `oddandevenpages' unknown.\MessageBreak
+ Using `oddorevenpage' instead}%
+ \ExecuteFamilyOptions[.definelayer]{KOMAarg}{oddorevenpage=#1}
+}
+% \end{macrocode}
+% \item[\texttt{evenandoddpages}:] same as \texttt{oddorevenpage}
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{evenandoddpages}[\relax]{%
+ \PackageWarning{scrlayer}{Option `evenandoddpages' unknown.\MessageBreak
+ Using `oddorevenpage' instead}%
+ \ExecuteFamilyOptions[.definelayer]{KOMAarg}{oddorevenpage=#1}
+}
+% \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{nonfloatpage}{#1}%
+ \csname @scr@l@\scr@current@layer @nonfloatpagetrue\endcsname
+ \csname @scr@l@\scr@current@layer @floatpagefalse\endcsname
+}
+% \end{macrocode}
+% \item[\Option{floatornonfloatpage}:] don't restrict the layer to float or
+% non-float pages.
+% \changes{v3.18}{2015/05/14}{new layer feature \texttt{floatornonfloatpage}}
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{floatornonfloatpage}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{floatornonfloatpage}{#1}%
+ \csname @scr@l@\scr@current@layer @nonfloatpagetrue\endcsname
+ \csname @scr@l@\scr@current@layer @floatpagetrue\endcsname
+}
+% \end{macrocode}
+% \item[\Option{nonfloatorfloatpage}:] same as \Option{floatornonfloatpage}
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{nonfloatorfloatpage}[\relax]{%
+ \PackageWarning{scrlayer}{Option `nonfloatorfloatpage' unknown.\MessageBreak
+ Using `floatornonfloatpage' instead}%
+ \FamilyExecuteOptions[.definelayer]{KOMAarg}{floatornonfloatpage=#1}%
+}
+% \end{macrocode}
+% \item[\Option{floatandnonfloatpages}:] same as \Option{floatornonfloatpage}
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{floatandnonfloatpages}[\relax]{%
+ \PackageWarning{scrlayer}{Option `floatandnonfloatpages' unknown.\MessageBreak
+ Using `floatornonfloatpage' instead}%
+ \FamilyExecuteOptions[.definelayer]{KOMAarg}{floatornonfloatpage=#1}%
+}
+% \end{macrocode}
+% \item[\Option{nonfloatandfloatpages}:] same as \Option{floatornonfloatpage}
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{nonfloatandfloatpages}[\relax]{%
+ \PackageWarning{scrlayer}{Option `nonfloatandfloatpages' unknown.\MessageBreak
+ Using `floatornonfloatpage' instead}%
+ \FamilyExecuteOptions[.definelayer]{KOMAarg}{floatornonfloatpage=#1}%
+}
+% \end{macrocode}
+% \item[\Option{everypage}:] remove all odd-, even-, float-, and
+% nonfloat-restrictions.
+% \changes{v3.18}{2015/05/14}{new layer feature \texttt{everypage}}^^A
+% \changes{v3.22}{2016/09/24}{foreground and background condition
+% removed}^^A
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{everypage}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{everypage}{#1}%
+ \csname @scr@l@\scr@current@layer @oddtrue\endcsname
+ \csname @scr@l@\scr@current@layer @eventrue\endcsname
+ \csname @scr@l@\scr@current@layer @nonfloatpagetrue\endcsname
+ \csname @scr@l@\scr@current@layer @floatpagetrue\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}
+% \item[\Option{everyside}:] remove all one- or two-side restrictions.
+% \changes{v3.18}{2015/05/14}{new layer feature \texttt{everyside}}
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{everyside}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{everyside}{#1}%
+ \csname @scr@l@\scr@current@layer @twosidetrue\endcsname
+ \csname @scr@l@\scr@current@layer @onesidetrue\endcsname
+}
+% \end{macrocode}
+% \item[\Option{unrestricted}:] remove all restrictions
+% \changes{v3.18}{2015/05/14}{new layer feature \texttt{unrestricted}}^^A
+% \changes{v3.22}{2016/09/24}{missing background and foreground
+% condition}^^A
+% \changes{v3.22}{2016/09/24}{nonfloatpage condition fixed}^^A
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{unrestricted}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{unrestricted}{#1}%
+ \csname @scr@l@\scr@current@layer @oddtrue\endcsname
+ \csname @scr@l@\scr@current@layer @eventrue\endcsname
+ \csname @scr@l@\scr@current@layer @backgroundtrue\endcsname
+ \csname @scr@l@\scr@current@layer @foregroundtrue\endcsname
+ \csname @scr@l@\scr@current@layer @nonfloatpagetrue\endcsname
+ \csname @scr@l@\scr@current@layer @floatpagetrue\endcsname
+ \csname @scr@l@\scr@current@layer @twosidetrue\endcsname
+ \csname @scr@l@\scr@current@layer @onesidetrue\endcsname
+}
+% \end{macrocode}
+% \changes{v3.26}{2018/07/14}{new attribute \texttt{beforecontents}}^^A
+% \item[\Option{beforecontents}:] code to be executed immediately before
+% setting the contents. See also modification attribute
+% \texttt{addbeforecontents}.
+% \begin{macrocode}
+\FamilyCSKey[.definelayer]{KOMAarg}{beforecontents}
+ {scr@l@\scr@current@layer @precontents@hook}
+% \end{macrocode}
+% \changes{v3.26}{2018/07/14}{new attribute \texttt{aftercontents}}^^A
+% \item[\Option{aftercontents}:] code to be executed immediately before
+% setting the contents. See also modification attribute
+% \texttt{addaftercontents}.
+% \begin{macrocode}
+\FamilyCSKey[.definelayer]{KOMAarg}{aftercontents}
+ {scr@l@\scr@current@layer @postcontents@hook}
+% \end{macrocode}
+% \changes{v3.26}{2018/07/14}{new attribute \texttt{artifact}}^^A
+% \item[\Option{artifact}:] reserved for tagging packages. The artifact can
+% either be a boolean or a general value. Boolean false will unset the
+% attribute. Boolean true is the same like empty. All other values will be
+% stored.
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{artifact}[true]{%
+ \FamilySetBool{KOMAarg}{artifact}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \expandafter\let\csname scr@l@\scr@current@layer @artifact\endcsname
+ \@empty
+ \else
+ \expandafter\let\csname scr@l@\scr@current@layer @artifact\endcsname
+ \relax
+ \fi
+ \else
+ \FamilyKeyStateProcessed
+ \@namedef{scr@l@\scr@current@layer @artifact}{#1}%
+ \fi
+}
+% \end{macrocode}
+% \end{description}
+%
+% Attribute modifications are attributes, that modify existing basic
+% attributes:
+% \begin{description}
+% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addhoffset}}^^A
+% \item[\texttt{addhoffset=\meta{dimension expression}}:] add to offset from
+% the left edge of the paper.
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{addhoffset}{%
+ \expandafter\edef\csname scr@l@\scr@current@layer @x\endcsname{%
+ \noexpand\dimexpr \unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@l@\scr@current@layer @x\endcsname + (#1)\relax}}%
+ \FamilyKeyStateProcessed
+}
+% \end{macrocode}
+% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addvoffset}}^^A
+% \item[\texttt{addvoffset=\meta{dimension expression}}:] add to offset from
+% the top edge of the paper.
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{addvoffset}{%
+ \expandafter\edef\csname scr@l@\scr@current@layer @y\endcsname{%
+ \noexpand\dimexpr \unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@l@\scr@current@layer @y\endcsname + (#1)\relax}}%
+ \FamilyKeyStateProcessed
+}
+% \end{macrocode}
+% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addwidth}}^^A
+% \item[\texttt{addwidth=\meta{dimension expression}}:] add to width of the
+% layer.
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{addwidth}{%
+ \expandafter\edef\csname scr@l@\scr@current@layer @w\endcsname{%
+ \noexpand\dimexpr \unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@l@\scr@current@layer @w\endcsname + (#1)\relax}}%
+ \FamilyKeyStateProcessed
+}
+% \end{macrocode}
+% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addheight}}^^A
+% \item[\texttt{addheight=\meta{dimension expression}}:] add to height of the
+% layer.
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{addheight}{%
+ \expandafter\edef\csname scr@l@\scr@current@layer @h\endcsname{%
+ \noexpand\dimexpr \unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@l@\scr@current@layer @h\endcsname + (#1)\relax}}%
+ \FamilyKeyStateProcessed
+}
+% \end{macrocode}
+% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{addcontents}}^^A
+% \item[\texttt{addcontents=\meta{output}}:] append to whatever should be
+% printed by the layer.
+% \changes{v3.14}{2014/10/20}{\texttt{contents} is \cs{long}}^^A
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{addcontents}{%
+ \expandafter\edef\csname scr@l@\scr@current@layer @contents\endcsname{%
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@l@\scr@current@layer @contents\endcsname #1}}%
+ \FamilyKeyStateProcessed
+}
+% \end{macrocode}
+% \changes{v3.16}{2015/01/26}{new layer attribute \texttt{pretocontents}}^^A
+% \item[\texttt{pretocontents=\meta{output}}:] prefix whatever should be
+% printed by the layer.
+% \changes{v3.14}{2014/10/20}{\texttt{contents} is \cs{long}}^^A
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{pretocontents}{%
+ \expandafter\edef\csname scr@l@\scr@current@layer @contents\endcsname{%
+ \unexpanded{#1}\unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@l@\scr@current@layer @contents\endcsname}}%
+ \FamilyKeyStateProcessed
+}
+% \end{macrocode}
+% \changes{v3.26}{2018/07/14}{new attribute \texttt{addbeforecontents}}^^A
+% \item[\Option{addbeforecontents}:] code to be executed immediately before
+% setting the contents. The new code will be added before the old code.
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{addbeforecontents}{%
+ \scr@ifundefinedorrelax{scr@l@\scr@current@layer @precontents@hook}{%
+ \expandafter\def
+ \csname scr@l@\scr@current@layer @precontents@hook\endcsname{#1}%
+ }{%
+ \expandafter\edef
+ \csname scr@l@\scr@current@layer @precontents@hook\endcsname{%
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@l@\scr@current@layer @precontents@hook\endcsname}%
+ \unexpanded{#1}
+ }%
+ }%
+ \FamilyKeyStateProcessed
+}
+% \end{macrocode}
+% \changes{v3.26}{2018/07/14}{new attribute \texttt{addaftercontents}}^^A
+% \item[\Option{addaftercontents}:] code to be executed immediately before
+% setting the contents. The new code will be added after the old code.
+% \begin{macrocode}
+\DefineFamilyKey[.definelayer]{KOMAarg}{addaftercontents}{%
+ \scr@ifundefinedorrelax{scr@l@\scr@current@layer @postcontents@hook}{%
+ \expandafter\def
+ \csname scr@l@\scr@current@layer @postcontents@hook\endcsname{#1}%
+ }{%
+ \expandafter\edef
+ \csname scr@l@\scr@current@layer @postcontents@hook\endcsname{%
+ \unexpanded{#1}%
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@l@\scr@current@layer @postcontents@hook\endcsname}%
+ }%
+ }%
+ \FamilyKeyStateProcessed
+}
+% \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}
+% \changes{v3.26}{2018/07/14}{clone code for \texttt{precontents@hook},
+% \texttt{postcontents@hook} and \texttt{artifact} added}^^A
+% \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}{mode}%
+ \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}%
+ \scrlayer@clone@attribute{\scr@current@layer}{#1}{precontents@hook}%
+ \scrlayer@clone@attribute{\scr@current@layer}{#1}{postcontents@hook}%
+ \scrlayer@clone@attribute{\scr@current@layer}{#1}{artifact}%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\scrlayer@clone@attribute}
+% \begin{macro}{\scrlayer@clone@switch}
+% Two helpers used 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}
+%
+% \changes{v0.9}{2014/08/31}{missing reset of \cs{scr@current@layer}
+% added}%^^A
+% \changes{v3.14}{2014/10/20}{\cs{long}}^^A
+% \begin{macrocode}
+\newcommand{\DeclareLayer}[2][]{%
+ \def\scr@current@layer{#2}%
+ \@namedef{scr@l@#2@mode}{text}%
+ \@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}%
+ \let\scr@current@layer\@empty
+}
+% \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}{}
+%</package&body>
+% \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@mode}{%
+ \expandafter\@secondoftwo
+ }{%
+ \expandafter\@firstoftwo
+ }%
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}%^^A \IfLayerExists
+%
+% \begin{macro}{\DeclareNewLayer}
+% \changes{v3.14}{2014/10/20}{\cs{long}}^^A
+% \begin{macro}{\ProvideLayer}
+% \changes{v3.14}{2014/10/20}{\cs{long}}^^A
+% \begin{macro}{\RedeclareLayer}
+% \changes{v3.14}{2014/10/20}{\cs{long}}^^A
+% \begin{macro}{\ModifyLayer}
+% \changes{v3.14}{2014/10/20}{\cs{long}}^^A
+% \changes{v0.9}{2014/08/31}{missing definition and reset of
+% \cs{scr@current@layer} added}%^^A
+% 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}%
+%</trace>
+ }{\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}{%
+ \def\scr@current@layer{#2}%
+ \edef\reserved@a{%
+ \unexpanded{%
+ \FamilyExecuteOptions[.definelayer]{KOMAarg}{#1}%
+ \ifstr{\csname scr@l@#2@mode\endcsname}%
+ }{\csname scr@l@#2@mode\endcsname}%
+ }\reserved@a{}{%
+ \PackageWarning{scrlayer}{%
+ change of layer mode could result in unexpected\MessageBreak
+ output and errors%
+ }%
+ }%
+ \let\scr@current@layer\@empty
+ }{%
+ \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}%
+ }%
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \ModifyLayer
+% \end{macro}^^A \RedeclareLayer
+% \end{macro}^^A \ProvideLayer
+% \end{macro}^^A \DeclareNewLayer
+%
+% \begin{macro}{\ModifyLayers}
+% \changes{v3.26}{2018/07/14}{new}^^A
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}^^A
+% Like \cs{ModifyLayer} but allows a list of layers instead of only one layer.
+% For the commands \cs{DeclareLayer}, \cs{ProvideLayer} and
+% \cs{RedeclareLayer} this does not make any sense, so there are not similar
+% list commands for these commands.
+% \begin{macrocode}
+%<*package&body>
+\newcommand{\ModifyLayers}[2][]{%
+ \edef\scr@current@layer{#2}%
+ \@for\scr@current@layer:=\scr@current@layer\do{%
+ \scr@trim@spaces\scr@current@layer
+ \ifx\scr@current@layer\@emtpy\else
+ \edef\scr@current@layer{%
+ \unexpanded{\ModifyLayer[{#1}]}{\scr@current@layer}%
+ }%
+ \scr@current@layer
+ \fi
+ }%
+ \let\scr@current@layer\@empty
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \ModifyLayers
+%
+% \begin{macro}{\GetLayerContents}
+% \changes{v3.16}{2015/01/26}{new}
+% \begin{description}
+% \item[\Parameter{string}:] the name of the layer
+% \end{description}
+% Get the contents of the given layer.
+% \begin{macrocode}
+%<*package&body>
+\newcommand*{\GetLayerContents}[1]{%
+ \IfLayerExists{#1}{\@nameuse{scr@l@#1@contents}}{%
+ \PackageError{scrlayer}{unknown layer `#1'}{%
+ You can ask only for the contents of an existing layer.}%
+ }%
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\DestroyLayer}
+% \changes{v3.26}{2018/07/14}{destroy pre-contents hook, post-contents hook
+% and artifact}^^A
+% \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@mode\endcsname\relax
+ \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
+ \expandafter\let\csname scr@l@#1@precontents@hook\relax
+ \expandafter\let\csname scr@l@#1@postcontents@hook\relax
+ \expandafter\let\csname scr@l@#1@artifact\relax
+ }{%
+%<*trace>
+ \PackageInfo{scrlayer}{\string\DestroyLayer{#1} ignored,\MessageBreak
+ because that layer doesn't exist\MessageBreak
+ (any longer)%
+ }%
+%</trace>
+ }%
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \DestroyLayer
+%
+%
+% \begin{macro}{\layercontentsmeasure}
+% \changes{v3.19}{2015/07/27}{\cs{@gobble} eliminated}^^A
+% 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,\LenToUnit{%
+ \if t\layervalign -\ht\strutbox
+ \else
+ \if b\layervalign -\dimexpr\layerheight-\dp\strutbox\relax
+ \else -.5\dimexpr\layerheight+\ht\strutbox-\dp\strutbox\relax
+ \fi
+ \fi})
+% \end{macrocode}
+% 1st horizontal cm
+% \begin{macrocode}
+ \setlength{\unitlength}{1mm}%
+ \put(0,0){\line(1,0){\LenToUnit{\layerwidth}}}%
+ \@tempcnta=\numexpr \dimexpr\layerwidth + .5mm\relax/\dimexpr 1mm\relax\relax
+ \multiput(0,0)(1,0){\@tempcnta}{%
+ \line(0,-1){1}%
+ }%
+ \@tempcnta=\numexpr \dimexpr\layerwidth + 2.5mm\relax/\dimexpr 5mm\relax\relax
+ \multiput(0,0)(5,0){\@tempcnta}{%
+ \line(0,-1){2}%
+ }%
+ \@tempcnta=\numexpr \dimexpr\layerwidth + .5cm\relax/\dimexpr 1cm\relax\relax
+ \multiput(0,0)(10,0){\@tempcnta}{%
+ \put(0,0){\line(0,-1){3}}%
+ \put(0,-3.5){%
+ \makebox(0,0)[ct]{\the\numexpr\@tempcnta-\@multicnt\relax}}%
+ }%
+% \end{macrocode}
+% 2nd horizontal in:
+% \begin{macrocode}
+ \put(0,\LenToUnit{-\layerheight}){\line(1,0){\LenToUnit{\layerwidth}}}%
+ \@tempcnta=\numexpr \dimexpr\layerwidth + .05in\relax/\dimexpr .1in\relax\relax
+ \multiput(0,\LenToUnit{-\layerheight})(2.54,0){\@tempcnta}{%
+ \line(0,1){1}%
+ }%
+ \@tempcnta=\numexpr \dimexpr\layerwidth + .25in\relax/\dimexpr .5in\relax\relax
+ \multiput(0,\LenToUnit{-\layerheight})(12.7,0){\@tempcnta}{%
+ \line(0,1){2}%
+ }%
+ \@tempcnta=\numexpr \dimexpr\layerwidth + .5in\relax/\dimexpr 1in\relax\relax
+ \multiput(0,\LenToUnit{-\layerheight})(25.4,0){\@tempcnta}{%
+ \put(0,0){\line(0,1){3}}%
+ \put(0,3.5){%
+ \makebox(0,0)[cb]{\the\numexpr\@tempcnta-\@multicnt\relax}}%
+ }%
+% \end{macrocode}
+% 3rd vertical cm:
+% \begin{macrocode}
+ \put(0,0){\line(0,-1){\LenToUnit{\layerheight}}}%
+ \@tempcnta\numexpr \dimexpr\layerheight + .5mm\relax/\dimexpr 1mm\relax\relax
+ \multiput(0,0)(0,-1){\@tempcnta}{%
+ \line(1,0){1}%
+ }%
+ \@tempcnta\numexpr \dimexpr\layerheight + 2.5mm\relax/\dimexpr 5mm\relax\relax
+ \multiput(0,0)(0,-5){\@tempcnta}{%
+ \line(1,0){2}%
+ }%
+ \@tempcnta\numexpr \dimexpr\layerheight + .5cm\relax/\dimexpr 1cm\relax\relax
+ \multiput(0,0)(0,-10){\@tempcnta}{%
+ \put(0,0){\line(1,0){3}}%
+ \put(3.5,0){%
+ \makebox(0,0)[cl]{\the\numexpr\@tempcnta-\@multicnt\relax}}%
+ }%
+% \end{macrocode}
+% 4th vertical in:
+% \begin{macrocode}
+ \put(\LenToUnit{\layerwidth},0){\line(0,-1){\LenToUnit{\layerheight}}}%
+ \@tempcnta\numexpr \dimexpr\layerheight + .05in\relax/\dimexpr .1in\relax\relax
+ \multiput(\LenToUnit{\layerwidth},0)(0,-2.54){\@tempcnta}{%
+ \line(-1,0){1}%
+ }%
+ \@tempcnta\numexpr \dimexpr\layerheight + .25in\relax/\dimexpr .5in\relax\relax
+ \multiput(\LenToUnit{\layerwidth},0)(0,-12.7){\@tempcnta}{%
+ \line(-1,0){2}%
+ }%
+ \@tempcnta\numexpr \dimexpr\layerheight + .5in\relax/\dimexpr 1in\relax\relax
+ \multiput(\LenToUnit{\layerwidth},0)(0,-25.4){\@tempcnta}{%
+ \put(0,0){\line(-1,0){3}}%
+ \put(-3.5,0){%
+ \makebox(0,0)[cr]{\the\numexpr\@tempcnta-\@multicnt\relax}}%
+ }%
+ \end{picture}}%
+}
+% \end{macrocode}
+% \begin{macro}{\LenToUnit}
+% \changes{v3.19}{2015/07/27}{new}
+% Due to an incompatibility of package \textsf{curve2e} I've eliminated
+% \cs{@gobble} in the definition of \cs{layercontentsmeasure} and replaced it
+% sometimes by \cs{LenToUnit} with the (not long) definition suggested by
+% \textsf{curve2e} itself.
+% \begin{macrocode}
+\providecommand*{\LenToUnit}[1]{\strip@pt\dimexpr#1*\p@/\unitlength}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \LenToUnit
+% \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}%
+%</trace>
+}
+\AtBeginDocument{%
+ \ifdim\footheight=-12345sp
+%<*trace>
+ \PackageInfo{scrlayer}{Setting magic \string\footheight\space to
+ \string\baselineskip\space while\MessageBreak
+ \string\begin{document}}%
+%</trace>
+ \setlength{\footheight}{\baselineskip}
+ \fi
+}
+%</package&init>
+% \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}
+%</package&body>
+% \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
+ \KOMA@kav@add{.scrlayer.sty}{onpsselect}{#1}%
+}
+%<package>\newcommand*{\@ps@initialhook}{}
+%<package>\KOMA@kav@add{.scrlayer.sty}{onpsselect}{}
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsselect\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsselect@default\endcsname\relax
+%</interface&body>
+%<*package&body>
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onselect}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @initialhook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+%</package&body>
+% \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
+ \KOMA@kav@add{.scrlayer.sty}{onpsinit}{#1}%
+}
+%<package>\newcommand*{\@ps@hook}{}
+%<package>\KOMA@kav@add{.scrlayer.sty}{onpsinit}{}
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsinit\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsinit@default\endcsname\relax
+%</interface&body>
+%<*package&body>
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{oninit}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @hook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+%</package&body>
+% \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
+ \KOMA@kav@add{.scrlayer.sty}{onpsoneside}{#1}%
+}
+%<package>\newcommand*{\@ps@onesidehook}{}
+%<package>\KOMA@kav@add{.scrlayer.sty}{onpsoneside}{}
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsoneside\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsoneside@default\endcsname\relax
+%</interface&body>
+%<*package&body>
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{ononeside}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @onesidehook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+%</package&body>
+% \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
+ \KOMA@kav@add{.scrlayer.sty}{onpstwoside}{#1}%
+}
+%<package>\newcommand*{\@ps@twosidehook}{}
+%<package>\KOMA@kav@add{.scrlayer.sty}{onpstwoside}{}
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpstwoside\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpstwoside@default\endcsname\relax
+%</interface&body>
+%<*package&body>
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{ontwoside}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @twosidehook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+%</package&body>
+% \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
+ \KOMA@kav@add{.scrlayer.sty}{onpsoddpage}{#1}%
+}
+%<package>\newcommand*{\@ps@oddpagehook}{}
+%<package>\KOMA@kav@add{.scrlayer.sty}{onpsoddpage}{}
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsoddpage\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsoddpage@default\endcsname\relax
+%</interface&body>
+%<*package&body>
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onoddpage}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @oddpagehook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+%</package&body>
+% \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
+ \KOMA@kav@add{.scrlayer.sty}{onpsevenpage}{#1}%
+}
+%<package>\newcommand*{\@ps@evenpagehook}{}
+%<package>\KOMA@kav@add{.scrlayer.sty}{onpsevenpage}{}
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsevenpage\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsevenpage@default\endcsname\relax
+%</interface&body>
+%<*package&body>
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onevenpage}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @evenpagehook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+%</package&body>
+% \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
+ \KOMA@kav@add{.scrlayer.sty}{onpsfloatpage}{#1}%
+}
+%<package>\newcommand*{\@ps@floatpagehook}{}
+%<package>\KOMA@kav@add{.scrlayer.sty}{onpsfloatpage}{}
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsfloatpage\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsfloatpage@default\endcsname\relax
+%</interface&body>
+%<*package&body>
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onfloatpage}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @floatpagehook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+%</package&body>
+% \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
+ \KOMA@kav@add{.scrlayer.sty}{onpsnonfloatpage}{#1}%
+}
+%<package>\newcommand*{\@ps@nonfloatpagehook}{}
+%<package>\KOMA@kav@add{.scrlayer.sty}{onpsnonfloatpage}{}
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsnonfloatpage\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsnonfloatpage@default\endcsname\relax
+%</interface&body>
+%<*package&body>
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onnonfloatpage}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @nonfloatpagehook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+%</package&body>
+% \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
+ \KOMA@kav@add{.scrlayer.sty}{onpsbackground}{#1}%
+}
+%<package>\newcommand*{\@ps@backgroundhook}{}
+%<package>\KOMA@kav@add{.scrlayer.sty}{onpsbackground}{}
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsbackground\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsbackground@default\endcsname\relax
+%</interface&body>
+%<*package&body>
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onbackground}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @backgroundhook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+%</package&body>
+% \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
+ \KOMA@kav@add{.scrlayer.sty}{onpsforeground}{#1}%
+}
+%<package>\newcommand*{\@ps@foregroundhook}{}
+%<package>\KOMA@kav@add{.scrlayer.sty}{onpsforeground}{}
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsforeground\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @onpsforeground@default\endcsname\relax
+%</interface&body>
+%<*package&body>
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onforeground}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @foregroundhook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \@psforegroundhook
+% \end{option}^^A onpsforeground
+% \begin{option}{singlespacing}
+% \changes{v3.24}{2017/05/22}{new option added}^^A
+% \begin{description}
+% \item[\texttt{=\meta{simple switch}}:] if activated, all page styles will be
+% set with line spread 1. This switch is global. If you want it for some
+% styles only, add \Macro{linespread}\PParameter{1}\Macro{selectfont} to
+% option \Option{oninit} of only those styles.
+%\end{description}
+% \begin{macrocode}
+%<*options>
+\KOMA@ifkey{singlespacing}{@ps@singlespacing}
+%</options>
+% \end{macrocode}
+% \end{option}
+% \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}
+% \changes{v3.15}{2014/12/28}{fix: \cs{linewidth} replaced by
+% \cs{textwidth}}^^A
+% \changes{v3.18}{2015/06/09}{usage of \cs{parbox[b]} instead of
+% \cs{parbox[t]} because of strange effect with package
+% \textsf{multicol}}^^A
+% \changes{v3.24}{2017/05/22}{test for \cs{if@ps@singlespacing} added}^^A
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}^^A
+% 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
+ \if@ps@singlespacing\linespread{1}\selectfont\fi
+ \@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[b][\headheight][t]{\textwidth}{%
+ \vskip \dimexpr -\topmargin-1in
+ -\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
+ \if@ps@singlespacing\linespread{1}\selectfont\fi
+ \@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[b][\headheight][t]{\textwidth}{%
+ \vskip \dimexpr -\topmargin-1in
+ -\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
+ \if@ps@singlespacing\linespread{1}\selectfont\fi
+ \@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]{\textwidth}{%
+ \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
+ \if@ps@singlespacing\linespread{1}\selectfont\fi
+ \@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]{\textwidth}{%
+ \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 {%
+ \scr@trim@spaces\reserved@a
+ \ifstr\reserved@a\@empty{}{%
+ \expandafter\@cons\csname @ps@#1@layers\endcsname{{\reserved@a}}%
+ }%
+ }%
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \scrlayer@declare@ps@by@layers
+%
+% \begin{macro}{\ForEachLayerOfPageStyle}
+% \changes{v3.18}{2015/05/14}{star version of the command}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \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. There's also a star version of the command, that delays execution
+% of \meta{code} after the end of the group.
+% \begin{macrocode}
+%<*package&body>
+\newcommand*{\ForEachLayerOfPageStyle}{%
+ \kernel@ifstar {\@s@ForEachLayerOfPageStyle}{\@ForEachLayerOfPageStyle}%
+}
+\newcommand*{\@ForEachLayerOfPageStyle}[2]{%
+ \begingroup
+ \edef\reserved@a{\GetRealPageStyle{#1}}%
+ \def\@elt##1{\ifscrlayer@deactivate@layers\else #2\fi}%
+ \@nameuse{@ps@\reserved@a @layers}%
+ \endgroup
+}
+\newcommand*{\@s@ForEachLayerOfPageStyle}[2]{%
+ \begingroup
+ \edef\reserved@a{\GetRealPageStyle{#1}}%
+ \def\reserved@b{\endgroup}%
+ \def\@elt##1{%
+ \l@addto@macro\reserved@b{%
+ \ifscrlayer@deactivate@layers\else #2\fi
+ }%
+ }%
+ \@nameuse{@ps@\reserved@a @layers}%
+ \reserved@b
+}
+%</package&body>
+% \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>
+%<*package>
+\KOMA@ifkey{deactivatepagestylelayers}{scrlayer@deactivate@layers}
+%</package>
+%<*interface>
+\KOMA@key{deactivatepagestylelayers}[true]{%
+ \KOMA@set@ifkey{deactivatepagestylelayers}{scrlayer@deactivate@layers}{#1}%
+ \KOMA@kav@replacebool{.scrlayer.sty}{deactivatepagestylelayers}
+ {scrlayer@deactivate@layers}%
+}
+%</interface>
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @deactivatepagestylelayers\endcsname
+ \relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @deactivatepagestylelayers@default\endcsname
+ \relax
+%</interface&body>
+% \end{macrocode}
+% \end{macro}^^A \ifscrlayer@deactivate@layers
+% \end{option}^^A deactivatepagestylelayers
+% \end{macro}^^A \ForEachLayerOfPageStyle
+%
+% \begin{macro}{\scrlayer@do@page@style@element@layer}
+% \changes{v3.26}{2018/07/14}{added hooks and artifact code}^^A
+% 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]%
+ {%
+ \scrlayer@predraftmeasure@hook
+ \scrlayer@beginartifact{}%
+ \layercontentsmeasure
+ \scrlayer@endartifact{}%
+ \scrlayer@postdraftmeasure@hook
+ }%
+ \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 layer\csname scr@l@#3@mode\endcsname
+ mode\expandafter\endcsname{%
+ \csname scr@l@#3@precontents@hook\endcsname
+ \scr@ifundefinedorrelax{scr@l@#3@artifact}{}{%
+ \expandafter\expandafter\expandafter
+ \scrlayer@beginartifact
+ \expandafter\expandafter\expandafter{%
+ \csname scr@l@#3@artifact\endcsname
+ }%
+ \csname scr@l@#3@contents\endcsname
+ \expandafter\expandafter\expandafter
+ \scrlayer@endartifact
+ \expandafter\expandafter\expandafter{%
+ \csname scr@l@#3@artifact\endcsname
+ }%
+ }{%
+ \csname scr@l@#3@contents\endcsname
+ }%
+ \csname scr@l@#3@postcontents@hook\endcsname
+ }%
+ }%
+ \fi
+ \fi
+ \fi
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macro}{\scrlayer@predraftmeasure@hook}
+% \changes{v3.26}{2018/07/14}{new (internal)}^^A
+% The hooks that will be executed before setting the draft measuring.
+% \begin{macrocode}
+\newcommand*{\scrlayer@predraftmeasure@hook}{}
+% \end{macrocode}
+% \begin{macro}{\BeforeDraftMeasuringLayer}
+% \changes{v3.26}{2018/07/14}{new}^^A
+% New code will be added in front of the hook.
+% \begin{macrocode}
+\newcommand*{\BeforeDraftMeasuringLayer}[1]{%
+ \edef\scrlayer@predraftmeasure@hook{%
+ \unexpanded{#1}\unexpanded\expandafter{\scrlayer@predraftmeasure@hook}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \BeforeDraftMeasuringLayer
+% \end{macro}^^A \scrlayer@predraftmeasure@hook
+% \begin{macro}{\scrlayer@postdraftmeasure@hook}
+% \changes{v3.26}{2018/07/14}{new (internal)}^^A
+% The hook that will be executed after setting the draft measuring.
+% \begin{macrocode}
+\newcommand*{\scrlayer@postdraftmeasure@hook}{}
+% \end{macrocode}
+% \begin{macro}{\AfterDraftMeasuringLayer}
+% \changes{v3.26}{2018/07/14}{new}^^A
+% New code will be added at the end of the hook.
+% \begin{macrocode}
+\newcommand*{\AfterDraftMeasuringLayer}[1]{%
+ \expandafter\def\expandafter\scrlayer@postdraftmeasure@hook\expandafter{%
+ \scrlayer@postdraftmeasure@hook #1%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \AfterDraftMeasuringLayer
+% \end{macro}^^A \scrlayer@postdraftmeasure@hook
+% \begin{macro}{\scr@layerbox}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\scr@@layerbox}
+% \changes{v3.24}{2017/05/08}{\cs{edef} replaced by \cs{protected@edef}}^^A
+% \changes{v3.24}{2017/05/08}{\cs{dimexpr} added to \cs{layer\dots}}^^A
+% \changes{v3.24}{2017/05/08}{\cs{dimexpr} removed from usage of
+% \cs{layer\dots}}^^A
+% 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){%
+ \kernel@ifnextchar [%]
+ {\scr@@layerbox(#1,#2)(#3,#4)}{\scr@@layerbox(#1,#2)(#3,#4)[]}%
+}
+\def\scr@@layerbox(#1,#2)(#3,#4)[#5]#6{%
+ \begingroup
+ \protected@edef\layerxoffset{\noexpand\dimexpr #1\relax}%
+ \protected@edef\layeryoffset{\noexpand\dimexpr #2\relax}%
+ \protected@edef\layerwidth{\noexpand\dimexpr #3\relax}%
+ \protected@edef\layerheight{\noexpand\dimexpr #4\relax}%
+ \def\layervalign{t}%
+ \def\layerhalign{l}%
+ \edef\reserved@b{#5}%
+ \expandafter\@tfor\expandafter\reserved@a\expandafter:\expandafter=%
+ \reserved@b\do{%
+ \if t\reserved@a
+ \def\layervalign{t}%
+ \else
+ \if c\reserved@a
+ \def\layervalign{c}%
+ \def\layerhalign{c}%
+ \else
+ \if b\reserved@a
+ \def\layervalign{b}%
+ \else
+ \if l\reserved@a
+ \def\layerhalign{l}%
+ \else
+ \if r\reserved@a
+ \def\layerhalign{r}%
+ \else
+ \PackageWarning{scrlayer}{%
+ Unknown alignment `\reserved@a' ignored}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ }%
+ \parbox[t][\z@][t]{\z@}{%
+ \vskip\layeryoffset
+ \if b\layervalign\vskip-\layerheight\fi
+ \if c\layervalign\vskip-.5\layerheight\fi
+% \end{macrocode}
+% \changes{3.23a}{2017/04/22}{\textsf{bidi} code added}^^A
+% \changes{v3.24}{2017/05/04}{usage of \textsf{scrbase}'s \cs{IfRTL}}^^A
+% If we are in right-to-left mode of package \textsf{bidi} or
+% \textsf{xepersian} the horizontal output is in the opposite direction. So we
+% need the \cs{makebox} to the right instead of the left and to move the
+% contents additionally by its width.
+% \begin{macrocode}
+ \makebox[\z@][\IfRTL{r}{l}]{%
+ \hskip\layerxoffset
+ \IfRTL{\hskip\layerwidth}{}%
+ \makebox[\z@][\layerhalign]{%
+ \parbox[\layervalign][\layerheight][\layervalign]{\layerwidth}{%
+ \vskip\z@\strut{%
+ \ifscrlayer@forceignoreuppercase
+ \expandafter\let\csname MakeUppercase \endcsname\@firstofone
+ \let\MakeUppercase\@firstofone
+ \let\uppercase\@firstofone
+ \fi
+ #6%
+ }\strut\vskip\z@
+ }%
+ }%
+ }%
+ }%
+ \endgroup
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \scr@@layerbox
+% \end{macro}^^A \scr@layerbox
+%
+% \begin{macro}{\layerrawmode}
+% \changes{v3.19}{2015/07/30}{new command}^^A
+% \begin{macro}{\layertextmode}
+% \changes{v3.19}{2015/07/30}{new command}^^A
+% This is the command to output layers in raw mode. This is very simple:
+% \begin{macrocode}
+%<*package&body>
+\newcommand{\layerrawmode}[1]{#1}
+\newcommand{\layertextmode}[1]{#1}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \layertextmode
+% \end{macro}^^A \layerrawmode
+%
+% \begin{macro}{\layerpicturemode}
+% \changes{v3.19}{2015/07/30}{new command}^^A
+% \changes{v3.24}{2017/05/08}{redundant \cs{dimexpr} removed}^^A
+% This is a bit more complicated. It is the layer output for \texttt{picture}
+% layers. In this case we use a picture environment and internally define some
+% additional commands.
+% \begin{macrocode}
+%<*package&body>
+\newcommand{\layerpicturemode}[1]{%
+ \begin{picture}(0,0)
+ (0,\LenToUnit{%
+ \if t\layervalign \dimexpr\layerheight-\ht\strutbox\relax
+ \else
+ \if b\layervalign \dp\strutbox
+ \else .5\dimexpr\layerheight-\ht\strutbox+\dp\strutbox\relax
+ \fi
+ \fi})
+ \long\def\putLL##1{\put(0,0){##1}}%
+ \long\def\putUL##1{\put(0,\LenToUnit{\layerheight}){##1}}%
+ \long\def\putLR##1{\put(\LenToUnit{\layerwidth},0){##1}}%
+ \long\def\putUR##1{\put(\LenToUnit{\layerwidth},%
+ \LenToUnit{\layerheight}){##1}}%
+ \long\def\putC##1{\put(\LenToUnit{.5\layerwidth},%
+ \LenToUnit{.5\layerheight}){##1}}%
+ #1%
+ \end{picture}%
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \layerpicturemode
+%
+% \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>
+%<*package>
+\KOMA@ifkey{draft}{scrlayer@draft}
+%</package>
+%<*interface>
+\KOMA@key{draft}[true]{%
+ \KOMA@set@ifkey{draft}{scrlayer@draft}{#1}%
+ \KOMA@kav@replacebool{.scrlayer.sty}{draft}{scrlayer@draft}%
+}
+%</interface>
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @draft\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @draft@default\endcsname\relax
+%</interface&body>
+% \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%
+ }%
+%</trace>
+ }%
+}
+\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}%
+}
+%</package&body>
+% \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}{}
+%</package&final>
+% \end{macrocode}
+%
+% \begin{macro}{\AddLayersToPageStyle}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}^^A
+% \begin{macro}{\AddLayersAtBeginOfPageStyle}
+% \begin{macro}{\AddLayersAtEndOfPageStyle}
+% \begin{macro}{\RemoveLayersFromPageStyle}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}^^A
+% \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 {%
+ \scr@trim@spaces\reserved@a
+ \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 {%
+ \scr@trim@spaces\reserved@a
+ \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}
+% \changes{v0.9}{2014/07/25}{cleaning of layer list must be global}
+% 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
+ \expandafter\global\expandafter\let\csname @ps@#2@layers\endcsname\@empty
+ \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.%
+ }%
+}
+%</package&body>
+% \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}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}^^A
+% \begin{macro}{\AddLayersToPageStyleAfterLayer}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}^^A
+% \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 {%
+ \scr@trim@spaces\reserved@a
+ \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 {%
+ \scr@trim@spaces\reserved@a
+ \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}%
+ }%
+}
+%</package&body>
+% \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}%
+ }%
+}
+%</package&body>
+% \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}%
+ }%
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \AddToLayerPageStyleOptions
+% \end{macro}^^A \ModifyLayerPageStyleOptions
+%
+% \begin{macro}{\scrlayer@beginartifact}
+% \changes{v3.26}{2018/07/14}{new (semi internal)}^^A
+% \begin{macro}{\scrlayer@endartifact}
+% \changes{v3.26}{2018/07/14}{new (semi internal)}^^A
+% These macros are reserved for tagging packages. The first one is executed
+% after the initial contents hook, the last one is executed after the final
+% contents hook. Both executions are done only, if the \texttt{artifact}
+% option of the layer has been used an was not boolean false. With boolean
+% true the argument will be empty. All other values will be passed as
+% argument.
+%
+% In case of package \textsf{tagpdf} the following definition would be
+% usefull (here automatically done after loading the package, if the package
+% does not do its own definitions):
+% \begin{macrocode}
+%<*package&body>
+\RequirePackage{scrlfile}
+\BeforePackage{tagpdf}{%
+% \end{macrocode}
+% Deactivation of the two commands before loading \textsf{tagpdf}, so that
+% after loading the package \cs{providecommand} can be used to do a new
+% default definition.
+% \begin{macrocode}
+ \let\scrlayer@beginartifact\relax
+ \let\scrlayer@endartifact\relax
+}
+\AfterPackage*{tagpdf}{%
+ \providecommand*{\scrlayer@beginartifact}[1]{%
+ \ifstr{#1}{}{%
+ \tagmcbegin{artifact}%
+ }{%
+ \tagmcbegin{artifact=#1}%
+ }%
+ }%
+ \providecommand*{\scrlayer@endartifact}[1]{%
+ \tagmcend
+ }%
+}
+% \end{macrocode}
+% But the default definition (if \textsf{tagpdf} has not already been loaded)
+% are simple dummies:
+% \begin{macrocode}
+\providecommand*{\scrlayer@beginartifact}[1]{}
+\providecommand*{\scrlayer@endartifact}[1]{}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \scrlayer@endartifact
+% \end{macro}^^A \scrlayer@beginartifact
+%
+% \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%
+ }%
+%</trace>
+ }%
+}
+\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}%
+ }%
+}
+%</package&body>
+% \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
+ }%
+ }%
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \IfRealLayerPageStyleExists
+% \end{macro}^^A \IfLayerPageStyleExists
+%
+% \begin{macro}{\IfLayerAtPageStyle}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}^^A
+% \begin{macro}{\IfSomeLayersAtPageStyle}
+% \changes{v3.26}{2018/08/29}{\cs{scr@trim@spaces} added}^^A
+% \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 {%
+ \scr@trim@spaces\reserved@a
+ \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 {%
+ \scr@trim@spaces\reserved@a
+ \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
+ }%
+}
+%</package&body>
+% \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)%
+ }%
+%</trace>
+ }%
+}
+%</package&body>
+% \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{%
+ \iftoplevelpagestyle\edef\toplevelpagestyle{##1}\toplevelpagestylefalse\fi
+ \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}%
+ \toplevelpagestyletrue
+}
+\newif\iftoplevelpagestyle\toplevelpagestyletrue
+\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
+}
+%</package&body>
+% \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]{}
+%</package&body>
+% \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}%
+}
+%</package&body>
+% \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>
+%<*package>
+\KOMA@ifkey{forceoverwrite}{scrlayer@forceoverwrite}
+%</package>
+%<*interface>
+\KOMA@key{forceoverwrite}[true]{%
+ \KOMA@set@ifkey{forceoverwrite}{scrlayer@forceoverwrite}{#1}%
+ \KOMA@kav@replacebool{.scrlayer.sty}{forceoverwrite}{scrlayer@forceoverwrite}%
+}
+%</interface>
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @forceoverwrite\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @forceoverwrite@default\endcsname\relax
+%</interface&body>
+% \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>
+%<*package>
+\KOMA@ifkey{autoremoveinterfaces}{scrlayer@autoremoveinterfaces}
+%</package>
+%<*interface>
+\KOMA@key{autoremoveinterfaces}[true]{%
+ \KOMA@set@ifkey{autoremoveinterfaces}{scrlayer@autoremoveinterfaces}{#1}%
+ \KOMA@kav@replacebool{.scrlayer.sty}{autoremoveinterfaces}
+ {scrlayer@autoremoveinterfaces}%
+}
+%</interface>
+%</options>
+%<*interface&body>
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @autoremoveinterfaces\endcsname\relax
+\expandafter\let
+ \csname KV@KOMA.\@currname.\@currext @autoremoveinterfaces@default\endcsname
+ \relax
+%</interface&body>
+% \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
+ }%
+}
+%</package&body>
+% \end{macrocode}
+% The initialisation has to be done by each interface package:
+% \begin{macrocode}
+%<interface&init>\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}%
+}
+%</package&body>
+% \end{macrocode}
+% \end{macro}^^A \scrlayerOnAutoRemoveInterface
+%
+%
+% \iffalse^^A meta-comment
+%</package|interface|class>
+% \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/macros/latex/contrib/koma-script/source/scrlfile.dtx b/macros/latex/contrib/koma-script/source/scrlfile.dtx
new file mode 100644
index 0000000000..a56dbe6266
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrlfile.dtx
@@ -0,0 +1,965 @@
+% \CheckSum{772}
+% \iffalse^^A meta-comment
+% ======================================================================
+% scrlfile.dtx
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+%
+% This work consists of all files listed in manifest.txt.
+% ----------------------------------------------------------------------
+% scrlfile.dtx
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+%
+% 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
+%%% From File: $Id: scrlfile.dtx 3011 2018-08-29 07:35:17Z kohm $
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-08-29 09:35:17 +0200 (Wed, 29 Aug 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 2631 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrlfile.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script package source
+ }%
+\reserved@a
+%</dtx>
+%<*dtx|scrlfile>
+%<scrlfile>\ProvidesPackage{scrlfile}[%
+%!KOMAScriptVersion
+%<scrlfile> package
+ (loading files)]
+%</dtx|scrlfile>
+%<*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
+\documentclass[parskip=half-]{scrdoc}
+\usepackage[german,english]{babel}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrlfile.dtx}
+\title{\KOMAScript{} \partname\ \texttt{\filename}%
+ \thanks{This file is version \fileversion\ of file \texttt{\filename}.}}
+\date{\filedate}
+\author{Markus Kohm\thanks{mailto:komascript@gmx.info}~\thanks{Parts of
+ description sections of the documentation where written by Jens-Uwe
+ Morawski.}}
+
+\begin{document}
+ \maketitle
+ \begin{abstract}
+ This package provides hooks before and after loading files, packages or
+ classes. It also provides a hook after the last \cs{clearpage} of the
+ document. It allowes to replace files, packages and classes by other
+ files, packages and classes. It is inteded to be used by package and class
+ authors but may also be used by \LaTeX{} users.
+ \end{abstract}
+
+ \DocInput{\filename}
+\end{document}
+%</dtx>
+% \fi
+%
+% \selectlanguage{english}
+%
+% \changes{v2.95}{2002/06/11}{First version split from hugh scrclass.dtx}^^A
+% \changes{v3.24}{2017/05/06}{standalone manual removed}^^A
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \section{Implementation of \textsf{scrlfile}}
+%
+% \iffalse
+%<*scrlfile>
+% \fi
+%
+% \subsection{Preamble}
+%
+% \changes{v3.24}{2017/05/06}{Preamble sub-section removed}^^A
+% Since \KOMAScript~3.24 we do not longer output version information into the
+% \texttt{log}-file.
+%
+% \subsection{Options}
+%
+% Currently there are no options.
+% \begin{macrocode}
+\ExecuteOptions{}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+%
+% \subsection{The macros}
+%
+% \begin{macro}{\InputIfFileExists}
+% \changes{v2.96}{2006/07/19}{replacement code added}
+% \LaTeX{} uses this macro for loading files with
+% \cs{input}\marg{filename}, \cs{include}, \cs{LoadClass},
+% \cs{LoadClassWithOptions}, \cs{documentclass}, \cs{documentstyle},
+% \cs{RequirePackage}, \cs{usepackage}. Only
+% \cs{input}~\meta{filename} loads \meta{filename} without using
+% \cs{InputIfFileExists}.
+%
+% Because of this, it's very easy to add stuff before and after
+% loading a file. We simply change this macro and add to
+% macros\,---\,one before loading the file and one after loading the
+% file. But before we redefine the macro, we test, if the macro was
+% defined like we expected. \LaTeX{} will warn, if not.
+% \begin{macrocode}
+\CheckCommand{\InputIfFileExists}[2]{%
+ \IfFileExists{#1}%
+ {#2\@addtofilelist{#1}\@@input \@filef@und}}
+% \end{macrocode}
+% Now we can redefine the macro like described above:
+% \begin{macrocode}
+\renewcommand{\InputIfFileExists}[2]{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname #1-@alias\endcsname\relax
+ \expandafter\@secondoftwo
+ \else
+ \scr@replacefile@msg{\csname #1-@alias\endcsname}{#1}%
+ \expandafter\@firstoftwo
+ \fi
+ {%
+ \expandafter\InputIfFileExists\expandafter{\csname
+ #1-@alias\endcsname}{#2}%
+ }%
+ {\IfFileExists{#1}{%
+ \scr@load@hook{before}{#1}%
+ #2\@addtofilelist{#1}%
+ \@@input \@filef@und
+ \scr@load@hook{after}{#1}%
+ }}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@loadwithoptions}
+% \changes{v2.96}{2006/07/19}{new redefinition}
+% \begin{macro}{\scr@loadwithoptions}
+% \changes{v2.96}{2006/07/19}{new helper macro}
+% \begin{macro}{\scr@@loadwithoptions}
+% \changes{v2.97a}{2007/03/07}{new helper macro}
+% \LaTeX{} uses this macro for loading classes and packages using
+% \cs{LoadClassWithOptions} or \cs{RequirePackageWithOptions}. We simply say
+% now: if the class or package should be replaced by another, try it again
+% with the replacement name. The stack is used. This will result in an
+% error if the replacements are nested too deep. This should be, because it
+% will also result in an error using ring replacements.
+% \begin{macrocode}
+\newcommand*{\scr@@loadwithoptions}{}
+\newcommand*{\scr@loadwithoptions}{}
+\let\scr@loadwithoptions\@loadwithoptions
+\renewcommand*{\@loadwithoptions}[3]{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname #3.#1-@aliasname\endcsname\relax
+ \def\scr@@loadwithoptions{\scr@loadwithoptions{#1}{#2}{#3}}%
+ \else
+ \scr@replacefile@msg{\csname #3.#1-@aliasname\endcsname.#1}{#3.#1}%
+ \def\scr@@loadwithoptions{%
+ \@loadwithoptions{#1}{#2}{\csname #3.#1-@aliasname\endcsname}%
+ }%
+ \fi
+ \scr@@loadwithoptions
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@onefilewithoption}
+% \changes{v2.96}{2006/07/19}{new redefinition}
+% \begin{macro}{\scr@onefilewithoption}
+% \changes{v2.96}{2006/07/19}{new helper macro}
+% \begin{macro}{\scr@@onefilewithoption}
+% \changes{v2.98}{2007/12/18}{new helper macro}
+% \LaTeX{} uses this macro for loading classes and packages using
+% \cs{LoadClass}, \cs{documentclass}, \cs{RequirePackage}, and
+% \cs{usepackage}. We simply say now: if the class or package should be
+% replaced by another, try it again with the replacement name. The stack is
+% used. This will result in an error if the replacements are nested too
+% deep. This should be, because it will also result in an error using ring
+% replacements.
+% \begin{macrocode}
+\newcommand*{\scr@onefilewithoptions}{}
+\let\scr@onefilewithoptions\@onefilewithoptions
+\def\@onefilewithoptions#1[#2][#3]#4{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname #1.#4-@aliasname\endcsname\relax
+% \end{macrocode}
+% Do this ridiculous definition and call outside of \cs{ifx}\dots\cs{fi}
+% because of some errornous packages like some versions of
+% \textsf{breakurl}. This does not avoid an error, but the message about
+% unclosed \cs{if} will be outside of \textsf{scrlfile}.
+% \begin{macrocode}
+ \def\scr@@onefilewithoptions{\scr@onefilewithoptions{#1}}%
+ \else
+ \scr@replacefile@msg{\csname #1.#4-@aliasname\endcsname.#4}{#1.#4}%
+ \edef\scr@@onefilewithoptions{%
+ \noexpand\@onefilewithoptions{\csname #1.#4-@aliasname\endcsname}}%
+ \fi
+ \scr@@onefilewithoptions[{#2}][{#3}]{#4}%
+ \scr@load@hook{lateafter}{#1.#4}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \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*{\ReplaceInput}[2]{%
+ \expandafter\edef\csname #1-@alias\endcsname{#2}%
+}
+% \end{macrocode}
+% \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}{\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
+}
+\newcommand*{\ReplaceClass}[2]{%
+ \@replacefilewithext{#1}{#2}\@clsextension
+}
+% \end{macrocode}
+% \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}
+% \changes{v2.98}{2007/12/18}{spellfix}
+% Last but not least \textsf{scrlfile} will write a message to the log file at
+% every replacement.
+% \begin{macrocode}
+\newcommand*{\scr@replacefile@msg}[2]{%
+ \PackageInfo{scrlfile}{inputing `#1' instead of `#2'}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scr@load@hook}
+% This macro simply calls a load-file-hook, either the \emph{before}
+% or the \emph{after} one, if the hook exists. After calling the hook
+% it will be deleted. First argument is the type of hook
+% (\meta{before} or \meta{after}), second argument is a filename.
+% \begin{macrocode}
+\newcommand*{\scr@load@hook}[2]{%
+ \@ifundefined{#2-@#1}{}{%
+ \@nameuse{#2-@#1}%
+ \expandafter\let\csname #2-@#1\endcsname=\relax}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scr@set@load@hook}
+% This command adds stuff to a load-file-hook, either the
+% \emph{before} or the \emph{after} one. First argument is the type of
+% hook (\meta{before} or \meta{after}), second is a filename. There's
+% a third argument not parsed by the macro itself but
+% \cs{g@addto@macro}. This third argument is the stuff, which will be
+% added to the hook. Because of using \cs{g@addto@macro} the hook must
+% be defined. So we define it, if it isn't.
+% \begin{macrocode}
+\newcommand*{\scr@set@load@hook}[2]{%
+ \@ifundefined{#2-@#1}{\@namedef{#2-@#1}{}}{}%
+ \expandafter\g@addto@macro\csname #2-@#1\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\BeforeFile}
+% \begin{macro}{\AfterFile}
+% \begin{macro}{\BeforeClass}
+% \begin{macro}{\AfterClass}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\AfterAtEndOfClass}
+% \begin{macro}{\@AfterClass}
+% \begin{macro}{\@@AfterClass}
+% \changes{v3.09}{2011/03/08}{new (internal)}
+% \begin{macro}{\@@@AfterClass}
+% \changes{v3.09}{2011/03/09}{new (internal)}
+% \begin{macro}{\@sAfterClass}
+% \begin{macro}{\BeforePackage}
+% \begin{macro}{\AfterPackage}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\AfterAtEndOfPackage}
+% \begin{macro}{\@AfterPackage}
+% \begin{macro}{\@@AfterPackage}
+% \changes{v3.09}{2011/03/08}{new (internal)}
+% \begin{macro}{\@@@AfterPackage}
+% \changes{v3.09}{2011/03/09}{new (internal)}
+% \begin{macro}{\@sAfterPackage}
+% These macros add stuff to a load-file-hook of a file, class or
+% package. First argument is the name of the file (with extension),
+% class (without extension) or package (without extension). There's a
+% second argument parsed by wether the macros themself nor
+% \cs{scr@set@load@hook} but \cs{g@addto@macro}. See
+% \cs{scr@set@load@hook} for more information. The star-forms
+% \cs{AfterClass*} and \cs{AfterPackage*} does the action immediate,
+% if the class or package was already loaded.
+% \begin{macrocode}
+\newcommand*{\BeforeFile}{\scr@set@load@hook{before}}
+\newcommand*{\AfterFile}{\scr@set@load@hook{after}}
+\newcommand*{\BeforeClass}[1]{%
+ \scr@set@load@hook{before}{#1.\@clsextension}}
+\newcommand*{\AfterClass}{%
+ \kernel@ifstar {\@sAfterClass}{%
+ \kernel@ifnextchar +\@@AfterClass{%
+ \kernel@ifnextchar !\@@@AfterClass\@AfterClass
+ }%
+ }%
+}
+\newcommand*{\@@@AfterClass}[2]{%
+ \begingroup\ifx\csname #2.\@clsextension-h@@k\endcsname\relax
+ \aftergroup\@sAfterClass
+ \else
+ \aftergroup\AfterAtEndOfClass
+ \fi
+ \endgroup{#2}%
+}
+\newcommand*{\AfterAtEndOfClass}[1]{%
+ \scr@set@load@hook{lateafter}{#1.\@clsextension}}
+\newcommand*{\@@AfterClass}[2]{%
+ \begingroup
+ \expandafter\ifx\csname #2.\@clsextension-h@@k\endcsname\relax
+ \aftergroup\@sAfterClass
+ \else
+ \aftergroup\@AfterClass
+ \fi
+ \endgroup{#2}%
+}
+\newcommand*{\@AfterClass}[1]{%
+ \scr@set@load@hook{after}{#1.\@clsextension}}
+\newcommand*{\@sAfterClass}[1]{%
+ \begingroup
+ \@ifclassloaded{#1}{%
+ \aftergroup\@secondoftwo
+ }{%
+ \aftergroup\@AfterClass
+ }%
+ \endgroup
+ {#1}%
+}
+\newcommand*{\BeforePackage}[1]{%
+ \scr@set@load@hook{before}{#1.\@pkgextension}}
+\newcommand*{\AfterPackage}{%
+ \kernel@ifstar {\@sAfterPackage}{%
+ \kernel@ifnextchar +\@@AfterPackage{%
+ \kernel@ifnextchar !\@@@AfterPackage\@AfterPackage
+ }%
+ }%
+}
+\newcommand*{\@@@AfterPackage}[2]{%
+ \begingroup\ifx\csname #2.\@pkgextension-h@@k\endcsname\relax
+ \aftergroup\@sAfterPackage
+ \else
+ \aftergroup\AfterAtEndOfPackage
+ \fi
+ \endgroup{#2}%
+}
+\newcommand*{\AfterAtEndOfPackage}[1]{%
+ \scr@set@load@hook{lateafter}{#1.\@pkgextension}}
+\newcommand*{\@@AfterPackage}[2]{%
+ \begingroup
+ \expandafter\ifx\csname #2.\@pkgextension-h@@k\endcsname\relax
+ \aftergroup\@sAfterPackage
+ \else
+ \aftergroup\@AfterPackage
+ \fi
+ \endgroup{#2}%
+}
+\newcommand*{\@AfterPackage}[1]{%
+ \scr@set@load@hook{after}{#1.\@pkgextension}}
+\newcommand*{\@sAfterPackage}[1]{%
+ \begingroup
+ \@ifpackageloaded{#1}{%
+ \aftergroup\@secondoftwo
+ }{%
+ \aftergroup\@AfterPackage
+ }%
+ \endgroup
+ {#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\PreventPackageFromLoading}
+% \changes{v3.08}{2010/11/04}{New}
+% \changes{v3.11a}{2012/06/13}{write fault error in \cs{MessageBreak} fixed}
+% \changes{v3.12}{2012/06/15}{new star version allowes empty argument with
+% info instead of warning}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\@PreventPackageFromLoading}
+% \changes{v3.12}{2012/06/15}{New (internal)}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^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)}^^A
+% \begin{macro}{\scrlfile@saved@RequirePackage}
+% \changes{v3.08}{2010/11/04}{New (internal)}^^A
+% \begin{macrocode}
+\newcommand*{\scrlfile@excludedpackages}{}
+\let\scrlfile@excludedpackages\@empty
+\newcommand*{\scrlfile@saved@RequirePackage}{}
+\newcommand*{\PreventPackageFromLoading}{%
+ \kernel@ifstar{\@PreventPackageFromLoading\PackageInfo}%
+ {\@PreventPackageFromLoading\PackageWarning}%
+}
+\newcommand*{\@PreventPackageFromLoading}[1]{%
+ \kernel@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{\zap@space#3 \@empty}%
+ \ifx \reserved@b\@empty
+ #1{scrlfile}{%
+ \string\PreventPackageFromLoading\space with empty packages\MessageBreak
+ argument ignored%
+ }%
+ \else
+% \end{macrocode}
+% If the argument was not empty we first need to patch \cs{RequirePackage} and
+% maybe \cs{usepackage} too.
+% \begin{macrocode}
+ \ifx\scrlfile@excludedpackages\@empty
+ \let\scrlfile@saved@RequirePackage\RequirePackage
+ \let\RequirePackage\scrlfile@RequirePackage
+ \def\reserved@a##1##{%
+ \@latex@error
+ {\noexpand \usepackage before \string\documentclass}%
+ {\noexpand \usepackage may only appear in the document
+ preamble, i.e.,\MessageBreak
+ between \noexpand\documentclass and
+ \string\begin{document}.}%
+ \@gobble}%
+ \ifx\reserved@a\usepackage\else
+ \ifx\usepackage\scrlfile@saved@RequirePackage\else
+ \PackageWarning{scrlfile}{%
+ Maybe serious problem: unexpected definition of\MessageBreak
+ \string\usepackage
+ }%
+ \fi
+ \let\usepackage\RequirePackage
+ \fi
+ \fi
+% \end{macrocode}
+% 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@excludedpackages} at
+% redefinition of \cs{scrlfile@excludedpackages} added}^^A
+% \changes{v3.26}{2018/08/29}{spurious \cs{expandafter} removed}^^A
+% \begin{macrocode}
+ \@for\reserved@a:=\reserved@b\do {%
+ \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
+ Cannot prevent it from beeing loaded%
+ }%
+ }{%
+ \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
+ }%
+% \end{macrocode}
+% If the exclusion list is still empty (because all packages has been loaded
+% already), remove the patch:
+% \begin{macrocode}
+ \ifx\scrlfile@excludedpackages\@empty
+ \ResetPreventPackageFromLoading
+ \fi
+ \fi
+}
+\@onlypreamble\PreventPackageFromLoading
+% \end{macrocode}
+% \begin{macro}{\ResetPreventPackageFromLoading}
+% \changes{v3.08}{2010/11/04}{New}
+% \begin{macro}{\StorePreventPackageFromLoading}
+% \changes{v3.08}{2010/11/04}{New}
+% These two are very simple
+% \begin{macrocode}
+\newcommand*{\ResetPreventPackageFromLoading}{%
+ \let\scrlfile@excludedpackages\@empty
+ \ifx\RequirePackage\scrlfile@RequirePackage
+ \ifx\usepackage\RequirePackage
+ \let\usepackage\scrlfile@saved@RequirePackage
+ \fi
+ \let\RequirePackage\scrlfile@saved@RequirePackage
+ \fi
+}
+\@onlypreamble\ResetPreventPackageFromLoading
+\newcommand*{\StorePreventPackageFromLoading}[1]{%
+ \let#1\scrlfile@excludedpackages
+}
+\@onlypreamble\StorePreventPackageFromLoading
+% \end{macrocode}
+% \begin{macro}{\UnPreventPackageFromLoading}
+% \changes{v3.12}{2013/11/22}{New}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^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}{%
+ \kernel@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
+ \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
+ \@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
+ }%
+ \ifx\reserved@c\@empty
+ \let\reserved@a\scr@gobbleopt
+ \else
+ \edef\reserved@a{\noexpand\scrlfile@saved@RequirePackage[#1]{%
+ \expandafter\@gobble\reserved@c\@empty}}%
+ \fi
+ \expandafter\reserved@d
+ \reserved@a
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scr@gobbleopt}
+% \changes{v3.08}{2010/11/04}{New (internal)}
+% \changes{v3.08a}{2011/02/11}{\cs{@gobbleopt} renamed due to compaibility
+% problems with \texttt{ntheorem}}
+% Eat the optional argument if it exists.
+% \begin{macrocode}
+\newcommand{\scr@gobbleopt}[1][]{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\kernel@ifstar}
+% \changes{v3.20}{2016/04/12}{New (internal)}
+% I hope, the \LaTeX{} kernel will define this command in future. But
+% nevertheless, there are \LaTeX{} kernels in real live without this
+% command. So I do it again if needed:
+% \begin{macrocode}
+\providecommand*\kernel@ifstar[1]{\kernel@ifnextchar*{\@firstoftwo{#1}}}
+% \end{macrocode}
+% \end{macro}^^A \kernel@ifstar
+%
+% \begin{macro}{\BeforeClosingMainAux}
+% \changes{v2.95}{2002/09/03}{new}
+% \begin{macro}{\AfterReadingMainAux}
+% \changes{v3.03}{2009/03/25}{new}
+% These are completly different. First we have to establish a new hook
+% at \cs{end\{document\}}, just after closing the group and after the
+% final \cs{clearpage}.
+% \begin{macrocode}
+\AtEndDocument{%
+ \let\scr@saved@checkend=\@checkend
+ \renewcommand*{\@checkend}[1]{%
+ \def\reserved@a{#1}\def\reserved@b{document}%
+ \scr@saved@checkend{#1}%
+ \ifx\reserved@a\reserved@b
+ \let\scr@saved@clearpage=\clearpage
+ \renewcommand*{\clearpage}{\scr@saved@clearpage
+ \scr@hook@bcma
+ \scr@restore@newpage
+ \let\clearpage=\scr@saved@clearpage}%
+ \fi%
+ \let\scr@saved@dofilelist\@dofilelist
+ \def\@dofilelist{%
+ \scr@hook@acma
+ \let\@dofilelist\scr@saved@dofilelist
+ \scr@saved@dofilelist
+ }%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@saved@checkend}
+% \changes{v2.95}{2002/09/03}{new (internal)}
+% \begin{macro}{\scr@saved@dofilelist}
+% \changes{v3.03}{2009/03/25}{new}
+% You may see above, that we need save-to macros.
+% \begin{macrocode}
+\newcommand*{\scr@saved@checkend}{}
+\newcommand*{\scr@saved@dofilelist}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\scr@redefine@newpage}
+% \changes{v3.00}{2008/07/09}{new (internal)}
+% Some classes (e.g. \textsf{letter}) write output to the aux file.
+% Because of this, redefinition of \cs{newpage} will only be done, if
+% \cs{BeforeClosingMainAux} is used.
+% \begin{macro}{\scr@saved@newpage}
+% \changes{v3.00}{2008/07/09}{new (internal)}
+% And \cs{newpage} will be restored after the hook.
+% \begin{macro}{\scr@restore@newpage}
+% \begin{macrocode}
+\newcommand*{\scr@redefine@newpage}{%
+ \let\scr@saved@newpage\newpage
+ \def\scr@restore@newpage{%
+ \renewcommand*{\newpage}{%
+ \PackageWarningNoLine{%
+ scrlfile%
+ }{%
+ \string\newpage\space at main aux file!\MessageBreak
+ You have output material at the main aux file.\MessageBreak
+ Note, that the \string\BeforeClosingMainAux\space commands\MessageBreak
+ are processed before the output from aux file%
+ }%
+ \let\newpage\scr@saved@newpage
+ \newpage
+ }%
+ }%
+ \renewcommand*{\newpage}{%
+ \PackageError{%
+ scrlfile%
+ }{%
+ \string\newpage\space at \string\BeforeClosingMainAux
+ }{%
+ You should never use \string\newpage\space or
+ \string\clear(double)page or other output material at the\MessageBreak
+ argument of \string\BeforeClosingMainAux!\MessageBreak
+ If you'll continue, the \string\newpage\space will be ignored to
+ avoid corruption of\MessageBreak
+ every prior use of \string\BeforeClosingMainAux.
+ }%
+ }%
+}
+\newcommand*{\scr@restore@newpage}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\scr@hook@bcma}
+% \changes{v2.95}{2002/09/03}{new (internal)}
+% \begin{macro}{\scr@hook@acma}
+% \changes{v3.03}{2009/03/25}{new (internal)}
+% We also need macros, that saves the commands at the hooks and are
+% extendable using \cs{g@addto@macro}.
+% \begin{macrocode}
+\newcommand*{\scr@hook@bcma}{}
+\newcommand*{\scr@hook@acma}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% Now we are able to write the user command. Here we also warn, if we detect
+% one more \cs{newpage}\,---\,maybe at a \cs{clearpage} or
+% \cs{cleardoublepage}.
+% \begin{macrocode}
+\newcommand*{\BeforeClosingMainAux}{%
+ \ifx\scr@hook@bcma\@empty
+ \gdef\scr@hook@bcma{%
+ \renewcommand*{\BeforeClosingMainAux}[1]{####1}%
+ \let\protected@write\protected@immediate@write
+ \scr@redefine@newpage
+ }%
+ \fi
+ \g@addto@macro\scr@hook@bcma%
+}
+\newcommand*{\AfterReadingMainAux}{%
+ \ifx\scr@hook@acma\@empty
+ \gdef\scr@hook@acma{%
+ \renewcommand*{\AfterReadingMainAux}[1]{####1}%
+ \let\protected@write\protected@immediate@write
+ }%
+ \fi
+ \g@addto@macro\scr@hook@acma%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\protected@immediate@write}
+% Like \LaTeX{} kernel's |\protected@write| but using |\immediate\write|. In
+% this case it is even not a good idea to protect |\thepage|!
+% \begin{macrocode}
+\long\def\protected@immediate@write#1#2#3{%
+ \begingroup
+ #2%
+ \let\protect\@unexpandable@protect
+ \edef\reserved@a{\immediate\write#1{#3}}%
+ \reserved@a
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+% \iffalse
+%</scrlfile>
+%<*load>
+% Used at \KOMAScript{} classes.
+% \begin{macrocode}
+\RequirePackage{scrlfile}[%
+%!KOMAScriptVersion
+]
+% \end{macrocode}
+%</load>
+% \fi
+%
+\endinput
+%
+% end of file `scrlfile.dtx'
+
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrlogo.dtx b/macros/latex/contrib/koma-script/source/scrlogo.dtx
new file mode 100644
index 0000000000..14c5f0b6c9
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrlogo.dtx
@@ -0,0 +1,125 @@
+% \CheckSum{9}
+% \iffalse meta-comment
+% ======================================================================
+% scrlogo.dtx
+% Copyright (c) Markus Kohm, 2002-2017
+%
+% 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 the file `scrlogo.dtx' at least.
+% ----------------------------------------------------------------------
+% scrlogo.dtx
+% Copyright (c) Markus Kohm, 2002-2017
+%
+% 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 mindestens aus der Datei `scrlogo.dtx'.
+% ======================================================================
+% \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: scrlogo.dtx 2640 2017-05-08 09:36:55Z kohm $
+%<*dtx>
+% \fi
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2017-05-08 11:36:55 +0200 (Mon, 08 May 2017) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 2631 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrlogo.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script package source (Logo)]
+ }%
+\reserved@a
+% \iffalse
+\documentclass[parskip=half-]{scrdoc}
+\usepackage[english,ngerman]{babel}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrlogo.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}
+%</dtx>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*logo>
+% \fi
+%
+% \section{\KOMAScript{} Logo}
+%
+% \begin{macro}{\KOMAScript}
+% Das \KOMAScript-Logo wird in allen \KOMAScript-Paketen und -Klassen
+% definiert, falls es nicht bereits definiert ist. Dabei werden die
+% Versalien moderat gesperrt. Es wird jedoch darauf verzichtet, die
+% Versalien etwa einen Punkt kleiner zu setzen, da das Logo aktiv
+% ausgezeichnet erscheinen soll.
+% \begin{macrocode}
+\@ifundefined{KOMAScript}{%
+ \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em%
+ M\kern.05em A\kern.1em-\kern.1em Script}}}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+% \iffalse
+%</logo>
+% \fi
+%
+\endinput
+%
+% end of file `scrlogo.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrmain.ins b/macros/latex/contrib/koma-script/source/scrmain.ins
new file mode 100644
index 0000000000..a7ae3b1dbb
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrmain.ins
@@ -0,0 +1,496 @@
+% ======================================================================
+% scrmain.ins
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrmain.ins
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+
+% ---------- KOMA-Script default docstrip declarations -----------------
+
+\input scrdocstrip.tex
+\@@input scrkernel-version.dtx
+\@@input scrstrip.inc
+
+% ---------- File generation -------------------------------------------
+
+\generate{\usepreamble\defaultpreamble
+ \file{scrextend.sty}{%
+ \from{scrextend.dtx}{package,extend,preidentify}%
+ \from{scrkernel-version.dtx}{package,extend}%
+ \from{scrextend.dtx}{package,extend,identify,prepare}%
+ \from{scrkernel-basics.dtx}{load}%
+ \from{scrkernel-sections.dtx}{package,extend,prepare}%
+ \from{scrkernel-compatibility.dtx}{package,extend,init}%
+% \from{scrkernel-typearea.dtx}{package,extend,init}%
+ \from{scrextend.dtx}{package,extend,option}%
+ \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-sections.dtx}{package,extend,execoption}%
+ \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}{%
+ \from{scrkernel-version.dtx}{class,book}%
+ \from{scrkernel-basics.dtx}{load}%
+ \from{tocbasic.dtx}{class,load,chapter}%
+ \from{scrkernel-tocstyle.dtx}{class,book,prepare}%
+ \from{scrkernel-sections.dtx}{class,book,prepare}%
+ \from{scrkernel-compatibility.dtx}{class,book,init}%
+ \from{scrkernel-typearea.dtx}{class,book,init}%
+ \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,options}%
+ \from{scrkernel-paragraphs.dtx}{class,book,option}%
+ \from{scrkernel-title.dtx}{class,book,option}%
+ \from{scrkernel-tocstyle.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-sections.dtx}{class,book,execoption}%
+ \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-tocstyle.dtx}{class,book,body}%
+ \from{scrkernel-tocstyle.dtx}{class,book,style,part}%
+ \from{scrkernel-tocstyle.dtx}{class,book,style,chapter}%
+ \from{scrkernel-tocstyle.dtx}{class,book,style,section}%
+ \from{scrkernel-tocstyle.dtx}{class,book,style,default}%
+ \from{scrkernel-sections.dtx}{class,book,body}%
+ \from{scrkernel-miscellaneous.dtx}{class,book,body}%
+ \from{scrkernel-pagestyles.dtx}{class,book,body}%
+ \from{scrlayer.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}{%
+ \from{scrkernel-version.dtx}{class,report}%
+ \from{scrkernel-basics.dtx}{load}%
+ \from{tocbasic.dtx}{class,load,chapter}%
+ \from{scrkernel-tocstyle.dtx}{class,report,prepare}%
+ \from{scrkernel-sections.dtx}{class,report,prepare}%
+ \from{scrkernel-compatibility.dtx}{class,report,init}%
+ \from{scrkernel-typearea.dtx}{class,report,init}%
+ \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,options}%
+ \from{scrkernel-paragraphs.dtx}{class,report,option}%
+ \from{scrkernel-title.dtx}{class,report,option}%
+ \from{scrkernel-tocstyle.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-sections.dtx}{class,report,execoption}%
+ \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-tocstyle.dtx}{class,report,body}%
+ \from{scrkernel-tocstyle.dtx}{class,report,style,part}%
+ \from{scrkernel-tocstyle.dtx}{class,report,style,chapter}%
+ \from{scrkernel-tocstyle.dtx}{class,report,style,section}%
+ \from{scrkernel-tocstyle.dtx}{class,report,style,default}%
+ \from{scrkernel-sections.dtx}{class,report,body}%
+ \from{scrkernel-miscellaneous.dtx}{class,report,body}%
+ \from{scrkernel-pagestyles.dtx}{class,report,body}%
+ \from{scrlayer.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}{%
+ \from{scrkernel-version.dtx}{class,article}%
+ \from{scrkernel-basics.dtx}{load}%
+ \from{tocbasic.dtx}{class,load}%
+ \from{scrkernel-tocstyle.dtx}{class,article,prepare}%
+ \from{scrkernel-sections.dtx}{class,article,prepare}%
+ \from{scrkernel-compatibility.dtx}{class,article,init}%
+ \from{scrkernel-typearea.dtx}{class,article,init}%
+ \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,options}%
+ \from{scrkernel-paragraphs.dtx}{class,article,option}%
+ \from{scrkernel-title.dtx}{class,article,option}%
+ \from{scrkernel-tocstyle.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-sections.dtx}{class,article,execoption}%
+ \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-tocstyle.dtx}{class,article,body}%
+ \from{scrkernel-tocstyle.dtx}{class,article,style,part}%
+ \from{scrkernel-tocstyle.dtx}{class,article,style,section}%
+ \from{scrkernel-tocstyle.dtx}{class,article,style,subsection}%
+ \from{scrkernel-tocstyle.dtx}{class,article,style,default}%
+ \from{scrkernel-sections.dtx}{class,article,body}%
+ \from{scrkernel-miscellaneous.dtx}{class,article,body}%
+ \from{scrkernel-pagestyles.dtx}{class,article,body}%
+ \from{scrlayer.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}{%
+ \from{scrkernel-version.dtx}{clo,10pt}%
+ \from{scrkernel-fonts.dtx}{clo,10pt}%
+ \from{scrkernel-paragraphs.dtx}{clo,10pt}%
+ }%
+ \file{scrsize11pt.clo}{%
+ \from{scrkernel-version.dtx}{clo,11pt}%
+ \from{scrkernel-fonts.dtx}{clo,11pt}%
+ \from{scrkernel-paragraphs.dtx}{clo,11pt}%
+ }%
+ \file{scrsize12pt.clo}{%
+ \from{scrkernel-version.dtx}{clo,12pt}%
+ \from{scrkernel-fonts.dtx}{clo,12pt}%
+ \from{scrkernel-paragraphs.dtx}{clo,12pt}%
+ }%
+}%
+
+\generate{\usepreamble\defaultpreamble
+ \file{scrfontsizes.sty}{%
+ \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}{%
+ \from{scrkernel-version.dtx}{class,letter}%
+ \from{scrkernel-basics.dtx}{load}%
+ \from{scrkernel-compatibility.dtx}{class,letter,init}%
+ \from{scrkernel-typearea.dtx}{class,scrlttr2,init}%
+ \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,options}%
+ \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{scrletter.sty}{%
+ \from{scrkernel-version.dtx}{package,letter}%
+ \from{scrkernel-basics.dtx}{load}%
+ \from{scrkernel-miscellaneous.dtx}{package,letter,init}%
+ \from{scrkernel-compatibility.dtx}{package,letter,init}%
+ \from{scrkernel-typearea.dtx}{package,letter,init}%
+% \from{scrkernel-compatibility.dtx}{package,letter,option}%
+ \from{scrkernel-miscellaneous.dtx}{package,letter,option}%
+ \from{scrkernel-letterclassoptions.dtx}{package,letter,option}%
+ \from{scrkernel-language.dtx}{package,letter,option}%
+ \from{scrkernel-fonts.dtx}{package,letter,option}%
+ \from{scrkernel-variables.dtx}{package,letter,option}%
+ \from{scrkernel-pseudolengths.dtx}{package,letter,option}%
+% \from{scrkernel-typearea.dtx}{package,letter,option}%
+% \from{scrkernel-paragraphs.dtx}{package,letter,option}%
+ \from{scrkernel-pagestyles.dtx}{package,letter,option}%
+% \from{scrkernel-floats.dtx}{package,letter,option}%
+% \from{scrkernel-footnotes.dtx}{package,letter,option}%
+% \from{scrkernel-listsandtabulars.dtx}{package,letter,option}%
+ \from{scrkernel-notepaper.dtx}{package,letter,option}%
+ \from{scrkernel-circularletters.dtx}{package,letter,option}%
+ \from{scrkernel-miscellaneous.dtx}{package,letter,execoption}%
+% \from{scrkernel-compatibility.dtx}{package,letter,body}%
+ \from{scrkernel-fonts.dtx}{package,letter,body}%
+ \from{scrkernel-miscellaneous.dtx}{package,letter,body}%
+ \from{scrkernel-letterclassoptions.dtx}{package,letter,body}%
+ \from{scrkernel-language.dtx}{package,letter,body}%
+ \from{scrkernel-variables.dtx}{package,letter,body}%
+ \from{scrkernel-pseudolengths.dtx}{package,letter,body}%
+% \from{scrkernel-typearea.dtx}{package,letter,body}%
+% \from{scrkernel-paragraphs.dtx}{package,letter,body}%
+ \from{scrkernel-pagestyles.dtx}{package,letter,body}%
+% \from{scrkernel-floats.dtx}{package,letter,body}%
+% \from{scrkernel-footnotes.dtx}{package,letter,body}%
+% \from{scrkernel-listsandtabulars.dtx}{package,letter,body}%
+ \from{scrkernel-notepaper.dtx}{package,letter,body}%
+ \from{scrkernel-circularletters.dtx}{package,letter,body}%
+ \from{scrlogo.dtx}{logo}%
+ }%
+}%
+
+\generate{\usepreamble\defaultpreamble
+ \file{visualize.lco}{%
+ \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{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{scrkernel-version.dtx}{trace}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,DIN,head}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,DIN,body}%
+ }%
+ \file{DINmtext.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,DINmoretext,head}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,DINmoretext,body}%
+ }%
+ \file{DIN5008A.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,5008,A,head}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,5008,A,body}%
+ }%
+ \file{DIN5008B.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,5008,B,head}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,5008,B,body}%
+ }%
+ \file{SN.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,SN,head}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,SN,body}%
+ }%
+ \file{SNleft.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,SwissLeft,head}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,SwissLeft,body}%
+ }%
+ \file{NF.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,NF,head}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,NF,body}%
+ }%
+ \file{UScommercial9.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,UScommercial9,head}%
+ \from{scrkernel-letterclassoptions.dtx}{lco,UScommercial9,body}%
+ }%
+ \file{UScommercial9DW.lco}{%
+ \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{scrkernel-version.dtx}{trace}%
+ \from{japanlco.dtx}{lco,Ni,EARLY,LOW,head}%
+ \from{japanlco.dtx}{lco,Ni,EARLY,LOW,body}%
+ }%
+ \file{NipponEH.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{japanlco.dtx}{lco,Ni,EARLY,HIGH,head}%
+ \from{japanlco.dtx}{lco,Ni,EARLY,HIGH,body}%
+ }%
+ \file{NipponLL.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{japanlco.dtx}{lco,Ni,LATE,LOW,head}%
+ \from{japanlco.dtx}{lco,Ni,LATE,LOW,body}%
+ }%
+ \file{NipponLH.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{japanlco.dtx}{lco,Ni,LATE,HIGH,head}%
+ \from{japanlco.dtx}{lco,Ni,LATE,HIGH,body}%
+ }%
+ \file{NipponRL.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{japanlco.dtx}{lco,Ni,RIGHT,LOW,head}%
+ \from{japanlco.dtx}{lco,Ni,RIGHT,LOW,body}%
+ }%
+ \file{KakuLL.lco}{%
+ \from{scrkernel-version.dtx}{trace}%
+ \from{japanlco.dtx}{lco,Kaku,LATE,LOW,head}%
+ \from{japanlco.dtx}{lco,Kaku,LATE,LOW,body}%
+ }%
+}%
+
+%\generate{\usepreamble\defaultpreamble
+% \file{scrhack.tex}{%
+% \from{scrhack.dtx}{manual}%
+% }%
+%}
+
+\generate{\usepreamble\defaultpreamble
+ \file{scrkbase.sty}{%
+ \from{scrkernel-version.dtx}{package,scrkbase}%
+ \from{scrkernel-basics.dtx}{package,prepare,koma}%
+ \from{scrkernel-basics.dtx}{package,option,koma}%
+ \from{scrkernel-fonts.dtx}{package,option,scrkbase}%
+ \from{scrlfile.dtx}{load}%
+ \from{scrkernel-basics.dtx}{package,body,koma}%
+ \from{scrkernel-fonts.dtx}{package,body,scrkbase}%
+ \from{scrlogo.dtx}{logo}%
+ }%
+}
+
+% --- 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 ...
+\batchinput{scrwfile.dtx}% scrwfile.sty
+\batchinput{scrjura.dtx}% scrjura.sty
+
+% ---------- end of docstrip process -----------------------------------
+
+\@@input scrstrop.inc
+
+\endbatchfile
+
+%
+% end of file `scrmain.ins'
+%%% Local Variables:
+%%% mode: TeX
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrpage.dtx b/macros/latex/contrib/koma-script/source/scrpage.dtx
new file mode 100644
index 0000000000..5d500bc36f
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrpage.dtx
@@ -0,0 +1,2260 @@
+% \CheckSum{2389}
+% \iffalse
+% ======================================================================
+% scrpage.dtx
+% Copyright (c) Markus Kohm, 1995-2017
+%
+% 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.dtx
+% Copyright (c) Markus Kohm, 1995-2017
+%
+% 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: scrpage.dtx 2640 2017-05-08 09:36:55Z kohm $
+%<scrpage>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2017-05-08 11:36:55 +0200 (Mon, 08 May 2017) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 2631 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrpage.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script package source
+ }%
+\reserved@a
+%</dtx>
+%<*dtx|scrpage>
+%<scrpage>\ProvidesPackage{scrpage2}[%
+%!KOMAScriptVersion
+%<scrpage> package
+ (page head and foot)]
+%</dtx|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}%
+ \from{scrlogo.dtx}{logo}%
+ }%
+ }
+ \@@input scrstrop.inc
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+\documentclass{scrdoc}
+\usepackage[ngerman,english]{babel}
+\usepackage[latin1]{inputenc}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrpage.dtx}
+\title{\KOMAScript{} \partname\ \texttt{\filename}\thanks{This file has
+ revision number \fileversion, last revised \filedate.}}
+\date{\filedate}
+\author{Markus Kohm}
+\begin{document}
+ \maketitle
+ \tableofcontents
+ \DocInput{\filename}
+\end{document}
+%</dtx>
+% \fi
+%
+% \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.
+%
+% \changes{v3.24}{2017/05/08}{warning about obsolete package added}
+% \begin{macrocode}
+%<*scrpage>
+\PackageWarning{scrpage2}{usage of obsolete package!\MessageBreak
+ Package `scrpage2' is obsolete.\MessageBreak
+ You should not longer use package `scrpage2'.\MessageBreak
+ You should replace usage of package `scrpage2'\MessageBreak
+ by `scrlayer-scrpage'}
+% \end{macrocode}
+% \changes{v1.1}{1995/06/27}{\cs{hbox to} changed into \cs{hb@xt@}.}
+% \changes{v2.2c}{2007/07/23}{a lot of \% added and removed}
+%
+% \subsection{Options}
+% \begin{option}{headinclude}
+% \changes{v2.3}{2008/12/08}{obsolete}%
+% \begin{option}{headexclude}
+% \changes{v2.3}{2008/12/08}{obsolete}%
+% \begin{option}{footinclude}
+% \changes{v2.3}{2008/12/08}{obsolete}%
+% \begin{option}{footexclude}
+% \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}
+\newcommand*{\@Pass@Obsolete@Option@To@Typearea}[1]{%
+ \@expandtwoargs\in@{,\CurrentOption,}{,\@curroptions,}%
+ \ifin@
+ \PackageWarningNoLine{scrpage2}{%
+ deprecated passing option `\CurrentOption' to scrpage2.\MessageBreak
+ If you are using package typearea or\MessageBreak
+ a KOMA-Script class since version 3.00\MessageBreak
+ you may use `\string\KOMAoptions{#1}' and\MessageBreak
+ remove passing `\CurrentOption' to scrpage2%
+ }%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname KOMAoptions\endcsname\relax
+ \PassOptionsToPackage{#1}{typearea}%
+ \else
+ \KOMAoptions{#1}\csname relcalctypearea\endcsname
+ \fi
+ \fi
+}
+\DeclareOption{headinclude}{%
+ \@Pass@Obsolete@Option@To@Typearea{headinclude}%
+}
+\DeclareOption{headexclude}{%
+ \@Pass@Obsolete@Option@To@Typearea{headinclude=false}%
+}
+\DeclareOption{footinclude}{%
+ \@Pass@Obsolete@Option@To@Typearea{footinclude}%
+}
+\DeclareOption{footexclude}{%
+ \@Pass@Obsolete@Option@To@Typearea{footinclude=false}%
+}
+% \end{macrocode}
+% We do so, because we want so set |headinclude|, |footinclude| by
+% default at old version (see below)!
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{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{macrocode}
+\@ifundefined{@mincltrue}{\newif\if@mincl}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+\DeclareOption{mpinclude}{\@mincltrue}
+\DeclareOption{mpexclude}{\@minclfalse}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% Other new options redefine macros, so we have to define them first.
+% \begin{macro}{\scr@headabove@linethickness}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scr@headbelow@linethickness}
+% \changes{v2.0}{2001/03/30}{New}
+% \begin{macro}{\scr@footabove@linethickness}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scr@footbelow@linethickness}
+% \changes{v2.0}{2001/04/20}{New}
+% These macros define the thickness of the line above and below the head
+% and the foot.
+% \begin{macrocode}
+\newcommand*{\scr@headabove@linethickness}{0pt}
+\newcommand*{\scr@headbelow@linethickness}{0pt}
+\newcommand*{\scr@footabove@linethickness}{0pt}
+\newcommand*{\scr@footbelow@linethickness}{0pt}
+% \end{macrocode}
+% \begin{macro}{\scr@headabove@linelength}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scr@headbelow@linelength}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scr@footabove@linelength}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scr@footbelow@linelength}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@headabove@linelength}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@headbelow@linelength}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@footabove@linelength}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@footbelow@linelength}
+% \changes{v2.0}{2001/04/20}{New}
+% Because we want to have the ``line definitions'' at one place, we
+% also define the length of the lines here. We have own length at to
+% be used at pagestyle \texttt{scrplain}.
+% \begin{macrocode}
+\newcommand*{\scr@headabove@linelength}{\@headwidth}
+\newcommand*{\scr@headbelow@linelength}{\@headwidth}
+\newcommand*{\scr@footabove@linelength}{\@footwidth}
+\newcommand*{\scr@footbelow@linelength}{\@footwidth}
+\newcommand*{\scrplain@headabove@linelength}{0pt}
+\newcommand*{\scrplain@headbelow@linelength}{0pt}
+\newcommand*{\scrplain@footabove@linelength}{0pt}
+\newcommand*{\scrplain@footbelow@linelength}{0pt}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{option}{headtopline}
+% \changes{v2.0}{2001/04/20}{New option}
+% \begin{option}{headsepline}
+% \changes{v2.0}{2001/04/20}{New option}
+% \begin{option}{footsepline}
+% \changes{v2.0}{2001/04/20}{New option}
+% \begin{option}{footbotline}
+% \changes{v2.0}{2001/04/20}{New option}
+% \begin{option}{plainheadtopline}
+% \changes{v2.0}{2001/04/20}{New option}
+% \begin{option}{plainheadsepline}
+% \changes{v2.0}{2001/04/20}{New option}
+% \begin{option}{plainfootsepline}
+% \changes{v2.0}{2001/04/20}{New option}
+% \begin{option}{plainfootbotline}
+% \changes{v2.0}{2001/04/20}{New option}
+% The thickness can be set by four simple options:
+% \begin{macrocode}
+\DeclareOption{headtopline}{%
+ \renewcommand*{\scr@headabove@linethickness}{.4pt}
+ \PassOptionsToPackage{headinclude}{typearea}}
+\DeclareOption{headsepline}{%
+ \renewcommand*{\scr@headbelow@linethickness}{.4pt}
+ \PassOptionsToPackage{headinclude}{typearea}}
+\DeclareOption{footsepline}{%
+ \renewcommand*{\scr@footabove@linethickness}{.4pt}
+ \PassOptionsToPackage{footinclude}{typearea}}
+\DeclareOption{footbotline}{
+ \renewcommand*{\scr@footbelow@linethickness}{.4pt}
+ \PassOptionsToPackage{footinclude}{typearea}}
+\DeclareOption{plainheadtopline}{%
+ \renewcommand*{\scrplain@headabove@linelength}{\scr@headabove@linelength}
+ \PassOptionsToPackage{headinclude}{typearea}}
+\DeclareOption{plainheadsepline}{%
+ \renewcommand*{\scrplain@headbelow@linelength}{\scr@headbelow@linelength}
+ \PassOptionsToPackage{headinclude}{typearea}}
+\DeclareOption{plainfootsepline}{%
+ \renewcommand*{\scrplain@footabove@linelength}{\scr@footabove@linelength}
+ \PassOptionsToPackage{footinclude}{typearea}}
+\DeclareOption{plainfootbotline}{
+ \renewcommand*{\scrplain@footbelow@linelength}{\scr@footbelow@linelength}
+ \PassOptionsToPackage{footinclude}{typearea}}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\hfline@adjust}
+% \changes{v2.0f}{2001/06/23}{New}
+% \begin{option}{ilines}
+% \changes{v2.0f}{2001/06/23}{New}
+% \begin{option}{clines}
+% \changes{v2.0f}{2001/06/23}{New}
+% \begin{option}{olines}
+% \changes{v2.0f}{2001/06/23}{New}
+% At Version 2 lines may be inner adjusted (0), centered (1) or outer
+% adjusted (2):
+% \begin{macrocode}
+\newcommand*{\hfline@adjust}{1}
+\DeclareOption{ilines}{\renewcommand*{\hfline@adjust}{0}}
+\DeclareOption{clines}{\renewcommand*{\hfline@adjust}{1}}
+\DeclareOption{olines}{\renewcommand*{\hfline@adjust}{2}}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+% \end{option}
+% \end{macro}
+%
+% \begin{option}{automark}
+% \changes{v2.0b}{2001/05/31}{use \cs{AtEndOfPackage} to run not yet
+% defined macro}
+% \begin{option}{manualmark}
+% \changes{v2.0b}{2001/05/31}{use \cs{AtEndOfPackage} to run not yet
+% defined macro}
+% \changes{v2.0i}{2001/08/17}{don't ignore oneside any longer}
+% At version 2 we want to distinguish between running headline and
+% static headline not only using different pagestyles. We do this with
+% options and commands. But here only the options are defined.
+% \begin{macrocode}
+\DeclareOption{automark}{%
+ \AtEndOfPackage{\if@twoside%
+ \if@chapter\automark[section]{chapter}%
+ \else\automark[subsection]{section}\fi%
+ \else%
+ \if@chapter\automark{chapter}\else\automark{section}\fi%
+ \fi}}
+\DeclareOption{manualmark}{\AtEndOfPackage{\manualmark}}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{autoonesize}
+% \changes{v2.0i}{2001/08/17}{New}
+% \begin{macro}{\if@autooneside}
+% \changes{v2.0i}{2001/08/17}{New}
+% If the optional argument of \cs{automark} should be irgnored at
+% onside mode, use this option:
+% \begin{macrocode}
+\newif\if@autooneside\@autoonesidefalse
+\DeclareOption{autooneside}{\@autoonesidetrue}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{markuppercase}
+% \changes{v2.0c}{2001/06/07}{New}
+% \begin{option}{markusedcase}
+% \changes{v2.0c}{2001/06/07}{New}
+% For use of running headlines there are also options to say ``class
+% uses upper case at the automatic marks'' or ``class use same case at
+% the automatic marks like used writing the heading''.
+% \begin{macrocode}
+\DeclareOption{markuppercase}{\let\MakeMarkcase\MakeUppercase}
+\DeclareOption{markusedcase}{\let\MakeMarkcase\@empty}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% \begin{macro}{\scr@nouppercase}
+% \changes{v2.0j}{2001/08/18}{New}
+% \begin{option}{nouppercase}
+% \changes{v2.0j}{2001/08/18}{New}
+% Sometimes scrpage may be used with a class, which uses
+% \cs{uppercase} or \cs{MakeUppercase} at \cs{markboth} or
+% \cs{markright}. But the author does not want upper case at the
+% headlines. So we define an option, that simply deaktivates
+% \cs{uppercase} and \cs{MakeUppercase} at all heads and foots,
+% defined by scrpage2.
+% \begin{macrocode}
+\newcommand*{\scr@nouppercase}{}
+\DeclareOption{nouppercase}{\renewcommand*{\scr@nouppercase}{%
+ \let\uppercase\relax\let\MakeUppercase\relax
+ \expandafter\let\csname MakeUppercase \endcsname\relax}
+ \ifx\MakeMarkcase\MakeUppercase
+ \PackageWarning{scrpage2}{%
+ Option 'markuppercase' will be ignored.\MessageBreak%
+ You shouldn't use option 'markuppercase' together\MessageBreak%
+ with option 'nouppercase'}
+ \let\MakeMarkcase\@empty
+ \fi}
+% \end{macrocode}
+% \end{option}
+% \end{macro}
+%
+% \begin{option}{komastyle}
+% \begin{option}{standardstyle}
+% At version 2 there is an predefined pagestyle ``scrheadings''. With
+% the two options you may decide, wether it has to behave like
+% ``headings'' at the standard classes or the KOMA-Script classes.
+% The macro saves the name of the style.
+% \begin{macrocode}
+\DeclareOption{komastyle}{\def\scrheadings@style{koma}
+ \@ifundefined{MakeMarkcase}{\let\MakeMarkcase\relax}{}}
+\DeclareOption{standardstyle}{\def\scrheadings@style{standard}
+ \@ifundefined{MakeMarkcase}{\let\MakeMarkcase\MakeUppercase}{}}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+%
+% We don't need default options.
+% \begin{macrocode}
+\ExecuteOptions{}
+% \end{macrocode}
+% But you may set other Options:
+% \begin{macrocode}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+%
+% \subsection{Some Initialisation}
+%
+% For easier handling of the differences between article-, report- and
+% book-classes we define some more switches.
+%
+% \begin{macro}{\if@chapter}
+% \changes{v2.1b}{2003/05/31}{more save test}
+% First distinguish between article and others.
+% \begin{macrocode}
+\newif\if@chapter
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname chapter\endcsname\relax
+ \@chapterfalse
+\else
+ \@chaptertrue
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@mainmatter}
+% \changes{v1.2}{1995/07/08}{Definition changed}
+% \changes{v2.1b}{2003/05/31}{more save test}
+% \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
+ \@ifundefined{@mainmattertrue}{%
+ \PackageWarningNoLine{scrpage2}{%
+ \string\mainmatter\space defined without
+ \expandafter\string\csname if@mainmatter\endcsname!\MessageBreak
+ This switch is obligatory for scrpage2 to omit\MessageBreak
+ running head chapter numbers in front and\MessageBreak
+ back matter and will be defined now%
+ }%
+ }{%
+ \let\@tempa\relax
+ }%
+\fi
+\@tempa
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Predefinitions}
+% There are some commands, you can use at pagestyle-definition.
+%
+% \begin{macro}{\headmark}
+% This macro is |\rightmark| or |\leftmark|. But outside
+% pagestyle-definition it's nothing.
+% \begin{macrocode}
+\let\headmark\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pagemark}
+% This macro is the number of the page at the pagenumberfont:
+% \begin{macrocode}
+\DeclareRobustCommand\pagemark{{\pnumfont\thepage}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Expert-Pagestyle-Definition-Interface}
+% The pagestyle-definition-interface for experts is not as easy as the
+% simple interface we'll define later. But it's more flexible. We'll
+% later use it to define the pagestyle-definition-interface for users.
+%
+% \begin{macro}{\if@automark}
+% \changes{v2.1}{2002/10/30}{New switch}
+% \begin{macro}{\@automarktrue}
+% \begin{macro}{\@automarkfalse}
+% We need this switch to decide to switch on or off \cs{@mkboth} at the
+% pagestyles.
+% \begin{macrocode}
+\newif\if@automark\@automarkfalse
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\defpagestyle}
+% First we define the simple definition-interface. There's no test, if
+% the pagestyle's defined twice.
+%
+% First there has to be the definition of head and foot.
+% \begin{macrocode}
+\def\defpagestyle{%
+% \end{macrocode}
+% We have to decide, whether it is a my-version or not:
+% \begin{macrocode}
+ \@ifstar
+ {\@defpagestyle[-]}%
+ {\@defpagestyle[+]}}
+% \end{macrocode}
+% \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}
+% 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.
+% 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}
+\def\@defpagestyle[#1]#2#3#4{%
+ \expandafter\def\csname ps@#2\endcsname{%
+ \if@automark\let\@mkboth\markboth\else\let\@mkboth\@gobbletwo\fi
+ \def@head#3
+ \def@foot#4
+ }%
+}
+% \end{macrocode}
+%
+% \begin{macro}{\def@head}
+% \changes{v2.5}{2010/04/22}{new (internal)}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\def@@head}
+% \changes{v2.0}{2001/04/20}{Thickness and length of the lines are
+% optional}
+% \changes{v2.0j}{2001/08/18}{Use of \cs{scr@nouppercase}}
+% \changes{v2.5}{2010/04/22}{new (internal)}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% This was real simple, but we already have to do the real definition
+% of the heads and foots. First the head:
+% \begin{macrocode}
+\def\def@head{%
+ \kernel@ifnextchar(%)
+ {\def@@head}%
+ {\def@@head(\scr@headabove@linelength,%
+ \scr@headabove@linethickness)}}
+\def\def@@head(#1,#2)#3#4#5{%
+ \kernel@ifnextchar(%)
+ {\def@@@head({#1},{#2}){#3}{#4}{#5}}%
+ {\def@@@head({#1},{#2}){#3}{#4}{#5}%
+ (\scr@headbelow@linelength,%
+ \scr@headbelow@linethickness)}}
+\def\def@@@head(#1,#2)#3#4#5(#6,#7){%
+ \def\@evenhead{%
+ \if@twoside
+ \let\headmark\leftmark%
+ \hss\hskip\@evenheadshift\vbox{\hsize=\@headwidth\relax%
+ \hf@rule{#1}{#2}{\@headwidth}{headabove}%
+ \vskip#2
+ \vskip\baselineskip
+ \hb@xt@\@headwidth{{%
+ \scr@nouppercase
+ \headfont\strut #3}}%
+ \hf@rule{#6}{#7}{\@headwidth}{headbelow}%
+ }\hskip\@oddheadshift\hss
+ \fi
+ }%
+ \def\@oddhead{\let\headmark\rightmark
+ \hss\hskip\@oddheadshift\vbox{\hsize=\@headwidth\relax
+ \hf@rule{#1}{#2}{\@headwidth}{headabove}%
+ \vskip#2%
+ \vskip\baselineskip
+ \hb@xt@\@headwidth{{%
+ \scr@nouppercase
+ \headfont\strut \if@twoside #4\else #5\fi}}%
+ \hf@rule{#6}{#7}{\@headwidth}{headbelow}%
+ }\hskip\@evenheadshift\hss}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\def@foot}
+% \changes{v2.0}{2001/04/20}{Thickness and length of the lines are
+% optional}
+% \changes{v1.3}{2001/03/30}{Use of \cmd\@footwidth instead of
+% \cs{textwidth}}
+% \changes{v2.5}{2010/04/22}{new (internal)}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\def@@foot}
+% \changes{v2.5}{2010/04/22}{new (internal)}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\def@@@foot}
+% \changes{v2.0j}{2001/08/18}{Use of \cs{scr@nouppercase}}
+% \changes{v2.2f}{2008/02/14}{Use of \cs{footfont}}
+% \changes{v2.5}{2010/04/22}{new (internal)}
+% And last twosided and onesided foot:
+% \begin{macrocode}
+\def\def@foot{%
+ \kernel@ifnextchar(%)
+ {\def@@foot}
+ {\def@@foot(\scr@footabove@linelength,%
+ \scr@footabove@linethickness)}}
+\def\def@@foot(#1,#2)#3#4#5{%
+ \kernel@ifnextchar(%)
+ {\def@@@foot({#1},{#2}){#3}{#4}{#5}}%
+ {\def@@@foot({#1},{#2}){#3}{#4}{#5}%
+ (\scr@footbelow@linelength,%
+ \scr@footbelow@linethickness)}}
+\def\def@@@foot(#1,#2)#3#4#5(#6,#7){%
+ \def\@evenfoot{%
+ \if@twoside
+ \let\headmark\leftmark
+ \hss\hskip\@evenfootshift\vbox{\hsize=\@footwidth\relax
+ \topfoot@rule{#1}{#2}\hb@xt@\@footwidth{{%
+ \scr@nouppercase
+ \headfont\footfont\strut #3}}%
+ \botfoot@rule{#6}{#7}}\hskip\@oddfootshift\hss
+ \fi
+ }%
+ \def\@oddfoot{\let\headmark\rightmark
+ \hss\hskip\@oddfootshift\vbox{\hsize=\@footwidth\relax
+ \topfoot@rule{#1}{#2}\hb@xt@\@footwidth{{%
+ \scr@nouppercase
+ \headfont\footfont\strut \if@twoside #4\else #5\fi}}%
+ \botfoot@rule{#6}{#7}}\hskip\@evenfootshift\hss}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% We now define the rules used at head and foot.
+% \begin{macro}{\topfoot@rule}
+% \begin{macrocode}
+\newcommand\topfoot@rule[2]{%
+ \@tempdima\baselineskip\advance\@tempdima by-.7\normalbaselineskip
+ \advance\@tempdima by -#2
+ \vskip\@tempdima\hf@rule{#1}{#2}{\@footwidth}{footabove}%
+ \vskip-\@tempdima}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\botfoot@rule}
+% \begin{macrocode}
+\newcommand\botfoot@rule[2]{%
+ \@tempdima-\baselineskip\advance\@tempdima by .3\normalbaselineskip
+ \advance\@tempdima by #2
+ \vskip\@tempdima\hf@rule{#1}{#2}{\@footwidth}{footbelow}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\hf@rule}
+% \changes{v1.3}{2001/03/30}{New, third parameter ``boxwidth''}
+% \changes{v2.0f}{2001/06/23}{Rule can be adjusted at inner margine,
+% centered or adjusted at outer margine}
+% \changes{v2.2}{2004/07/05}{Last parameter of the rule tells, if it is a
+% headabove, headbelow, footabove or footbelow rule}
+% \changes{v2.2}{2005/07/05}{Precommands before the rules are allowed}
+% \changes{v2.2}{2005/07/05}{Macro is not longer long}
+% \changes{v2.2b}{2005/08/31}{No even alignment at oneside}
+% \begin{macrocode}
+\newcommand*{\hf@rule}[4]{%
+ \setlength{\@tempdimb}{#1}
+ \begingroup
+ \csname scr@pre@#4@line\endcsname
+ \if@twoside
+ \ifodd\c@page
+ \edef\@tempa{\hfline@adjust}%
+ \else
+ \@tempcnta=2\advance\@tempcnta -\hfline@adjust
+ \edef\@tempa{\the\@tempcnta}%
+ \fi
+ \else
+ \edef\@tempa{\hfline@adjust}%
+ \fi
+ \ifnum\@tempa=1
+ \setlength{\@tempdimb}{.5\@tempdimb}%
+ \fi
+ \hb@xt@#3{%
+ \ifnum\@tempa>0
+ \hfill%
+ \llap{\vrule\@depth#2\@height\z@\@width\@tempdimb}%
+ \fi
+ \ifnum\@tempa<2
+ \rlap{\vrule\@depth#2\@height\z@\@width\@tempdimb}%
+ \hfill%
+ \fi
+ }%
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macro}{\scr@pre@headabove@line}
+% \changes{v2.2}{2004/07/05}{New internal}
+% \begin{macro}{\scr@fnt@headtopline}
+% \changes{v2.2}{2004/07/05}{New KOMA-Script font command}
+% \begin{macro}{\scr@pre@headbelow@line}
+% \changes{v2.2}{2004/07/05}{New internal}
+% \begin{macro}{\scr@fnt@headsepline}
+% \changes{v2.2}{2004/07/05}{New KOMA-Script font command}
+% \begin{macro}{\scr@pre@footabove@line}
+% \changes{v2.2}{2004/07/05}{New internal}
+% \begin{macro}{\scr@fnt@footsepline}
+% \changes{v2.2}{2004/07/05}{New KOMA-Script font command}
+% \begin{macro}{\scr@pre@footbelow@line}
+% \changes{v2.2}{2004/07/05}{New internal}
+% \begin{macro}{\scr@fnt@footbottomrule}
+% \changes{v2.2}{2004/07/05}{New KOMA-Script font command}
+% \begin{macro}{\scr@fnt@instead@footbotline}
+% \changes{v2.2}{2004/07/05}{New KOMA-Script font command}
+% \begin{macrocode}
+\newcommand*{\scr@pre@headabove@line}{}
+\newcommand*{\scr@fnt@headtopline}{\scr@pre@headabove@line}
+\newcommand*{\scr@pre@headbelow@line}{}
+\newcommand*{\scr@fnt@headsepline}{\scr@pre@headbelow@line}
+\newcommand*{\scr@pre@footabove@line}{}
+\newcommand*{\scr@fnt@footsepline}{\scr@pre@footabove@line}
+\newcommand*{\scr@pre@footbelow@line}{}
+\newcommand*{\scr@fnt@footbottomline}{\scr@pre@footbelow@line}
+\newcommand*{\scr@fnt@instead@footbotline}{footbottomline}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Using these definitions, we can define the testing macros.
+%
+% \begin{macro}{\newpagestyle}
+% First the simple star/starless-selection:
+% \begin{macrocode}
+\def\newpagestyle{%
+% \end{macrocode}
+% We have to decide, whether it is a my-version or not:
+% \begin{macrocode}
+ \@ifstar
+ {\@newpagestyle[-]}%
+ {\@newpagestyle[+]}}
+% \end{macrocode}
+% \begin{macro}{\@newpagestyle}
+% There we have to distinguish, whether the pagestyle is already
+% defined or not.
+% \begin{macrocode}
+\def\@newpagestyle[#1]#2#3#4{%
+ \expandafter\ifx\csname ps@#2\endcsname\relax
+% \end{macrocode}
+% Then we can use the already defined |\@defpagestyle|.
+% \begin{macrocode}
+ \@defpagestyle[#1]{#2}{#3}{#4}%
+ \else
+ \PackageError
+ {scrpage2}%
+ {Your command was ignored}%
+ {There is already a pagestyle named ``#1''.\MessageBreak%
+ Use \protect\defpagestyle\space, \protect\renewpagestyle or
+ \protect\providepagestyle.}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\renewpagestyle}
+% First the simple star/starless-selection:
+% \begin{macrocode}
+\def\renewpagestyle{%
+% \end{macrocode}
+% We have to decide, whether it is a my-version or not:
+% \begin{macrocode}
+ \@ifstar
+ {\@renewpagestyle[-]}%
+ {\@renewpagestyle[+]}}
+% \end{macrocode}
+% \begin{macro}{\@renewpagestyle}
+% \changes{v1.2a}{1996/12/07}{Avoid to define pagestyle as \cs{relax}
+% if it wasn't defined (Thanks to Bernd).}
+% There we have to distinguish, whether the pagestyle is already
+% defined or not.
+% \begin{macrocode}
+\def\@renewpagestyle[#1]#2#3#4{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname ps@#2\endcsname\relax
+ \PackageError
+ {scrpage2}%
+ {Your command was ignored}%
+ {There is no pagestyle named ``#1''.\MessageBreak%
+ Use \protect\defpagestyle, \protect\newpagestyle or
+ \protect\providepagestyle.}%
+ \else
+% \end{macrocode}
+% Then we can use the already defined |\@defpagestyle|.
+% \begin{macrocode}
+ \@defpagestyle[#1]{#2}{#3}{#4}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\providepagestyle}
+% First the simple star/starless-selection:
+% \begin{macrocode}
+\def\providepagestyle{%
+% \end{macrocode}
+% We have to decide, whether it is a my-version or not:
+% \begin{macrocode}
+ \@ifstar
+ {\@providepagestyle[-]}%
+ {\@providepagestyle[+]}}
+% \end{macrocode}
+% \begin{macro}{\@providepagestyle}
+% There we have to distinguish, whether the pagestyle is already
+% defined or not.
+% \begin{macrocode}
+\def\@providepagestyle[#1]#2#3#4{%
+ \expandafter\ifx\csname ps@#2\endcsname\relax
+% \end{macrocode}
+% Then we can use the already defined |\@defpagestyle|.
+% \begin{macrocode}
+ \@defpagestyle[#1]{#2}{#3}{#4}%
+ \else
+ \PackageInfo
+ {scrpage2}%
+ {\protect\providepagestyle\protect{#1\protect} ignored.}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{User-Pagestyle-Definition-Interface}
+% The pagestyle-definition-interface for users is much easier than the
+% expert-version. Using the expert-macros, the definition is easy, too.
+%
+% \begin{macro}{\deftripstyle}
+% \begin{macrocode}
+% \end{macrocode}
+% At version 1 we define the selection of star- or starless-version first:
+% \begin{macrocode}
+\def\deftripstyle{%
+ \@ifstar
+ {\@deftripstyle[-]}%
+ {\@deftripstyle[+]}}
+% \end{macrocode}
+% \end{macro}
+% Next we check, if there is an optional argument:
+% \begin{macro}{\@deftripstyle}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macrocode}
+\def\@deftripstyle[#1]#2{%
+ \kernel@ifnextchar[%]
+ {\@@deftripstyle[#1]{#2}}%
+ {\@@deftripstyle[#1]{#2}[\z@]}}
+% \end{macrocode}
+% \end{macro}
+% or perhaps two optional arguments:
+% \begin{macro}{\@@deftripstyle}
+% \begin{macrocode}
+\def\@@deftripstyle[#1]#2[#3]{%
+% \end{macrocode}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% Ok, now we have the problem, that there can be only 9 arguments. So we
+% have to distinguish the star-versions by a macro:
+% \begin{macrocode}
+ \def\@tempa{#1}%
+ \kernel@ifnextchar[%]
+ {\@@@deftripstyle#2[#3]}%
+ {\@@@deftripstyle#2[\z@][#3]}}
+% \end{macrocode}
+% \end{macro}
+% Now the main-definition:
+% \begin{macro}{\@@@deftripstyle}
+% \begin{macrocode}
+\def\@@@deftripstyle#1[#2][#3]#4#5#6#7#8#9{%
+ \def\@tempb{+}%
+ \ifx\@tempa\@tempb
+ \defpagestyle{#1}%
+ {(\@headwidth,#2)%
+ {\rlap{#6}\hfill{#5}\hfill\llap{#4}}%
+ {\rlap{#4}\hfill{#5}\hfill\llap{#6}}%
+ {\rlap{#4}\hfill{#5}\hfill\llap{#6}}%
+ (\@headwidth,#3)}%
+ {(\@footwidth,#3)%
+ {\rlap{#9}\hfill{#8}\hfill\llap{#7}}%
+ {\rlap{#7}\hfill{#8}\hfill\llap{#9}}%
+ {\rlap{#7}\hfill{#8}\hfill\llap{#9}}%
+ (\@footwidth,#2)}%
+ \else
+ \defpagestyle*{#1}%
+ {(\@headwidth,#2)%
+ {\rlap{#6}\hfill{#5}\hfill\llap{#4}}%
+ {\rlap{#4}\hfill{#5}\hfill\llap{#6}}%
+ {\rlap{#4}\hfill{#5}\hfill\llap{#6}}%
+ (\@headwidth,#3)}%
+ {(\@footwidth,#3)%
+ {\rlap{#9}\hfill{#8}\hfill\llap{#7}}%
+ {\rlap{#7}\hfill{#8}\hfill\llap{#9}}%
+ {\rlap{#7}\hfill{#8}\hfill\llap{#9}}%
+ (\@footwidth,#2)}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Automark or not}
+% This is 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}
+% To define \cs{automark} we also need these three makros. The first
+% one decides, if level of second parameter is less than level of
+% first parameter and does then third or fourth parameter.
+% \cs{markleft} and \cs{@markleft} are similar to \cs{markright} and
+% \cs{@markright} at \LaTeX{} kernel.
+% \begin{macrocode}
+\newcommand*{\@iflevelok}[4]{%
+ \begingroup
+ \edef\@tempa{#1}\ifx\@tempa\@empty\def\@tempa{\endgroup #3}\else
+ \def\@tempa{\csname #1level\endcsname}%
+ \def\@tempb{\csname #2level\endcsname}%
+ \ifnum \@tempa>\@tempb
+ \def\@tempa{\endgroup#3}%
+ \else
+ \def\@tempa{\endgroup#4}%
+ \fi\fi\@tempa}
+\providecommand{\markleft}[1]{%
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \expandafter\@markleft\@themark {#1}%
+ \@temptokena \expandafter{\@themark}%
+ \mark{\the\@temptokena}%
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi}
+\providecommand{\@markleft}[3]{\@temptokena {#2}%
+ \unrestored@protected@xdef\@themark{{#3}{\the\@temptokena}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \changes{v2.2a}{2004/09/05}{all changes of helper macros and switches are
+% local to fix e.g.\ twocolumn problem with \cs{part}}
+% \begin{macrocode}
+\newcommand*{\automark}[2][\@empty]{%
+ \manualmark
+ \@automarktrue
+ \begingroup
+ \edef\@tempa{#2}\ifx\@tempa\@empty
+ \endgroup
+ \PackageWarning{scrpage2}%
+ {\string\automark\space with empty obligatory argument}%
+ \else
+ \endgroup
+ \expandafter\def\csname #2mark\endcsname##1{%
+ \begingroup
+ \def\@tempa{\csname #2level\endcsname}%
+ \@tempswafalse
+ \ifnum \c@secnumdepth <\@tempa\else\if@mainmatter
+ \@tempswatrue
+ \fi\fi
+ \edef\@tempa{#1}%
+ \if@twoside\edef\@tempb{#2}\else\let\@tempb\@tempa\fi
+ \ifx\@tempa\@tempb
+ \if@tempswa
+ \@mkboth{\MakeMarkcase{\csname #2markformat\endcsname ##1}}%
+ {\MakeMarkcase{\csname #2markformat\endcsname ##1}}%
+ \else%
+ \@mkboth{\MakeMarkcase{##1}}{\MakeMarkcase{##1}}%
+ \fi
+ \else
+ \if@tempswa
+ \@iflevelok{#1}{#2}{%
+ \@mkboth{\MakeMarkcase{\csname #2markformat\endcsname
+ ##1}}{}}{%
+ \ifx\@mkboth\markboth\markleft{\MakeMarkcase{\csname
+ #2markformat\endcsname ##1}}%
+ \fi}
+ \else
+ \@iflevelok{#1}{#2}{%
+ \@mkboth{\MakeMarkcase{##1}}{}}{%
+ \ifx\@mkboth\markboth\markleft{\MakeMarkcase{##1}}\fi}%
+ \fi
+ \fi
+ \endgroup
+ }
+ \fi
+ \begingroup
+ \edef\@tempa{#1}\edef\@tempb{#2}%
+ \if@autooneside\if@twoside\else\let\@tempa\@empty\fi\fi
+ \ifx\@tempa\@empty
+ \endgroup
+ \else
+ \ifx\@tempa\@tempb
+ \endgroup
+ \else
+ \endgroup
+ \expandafter\def\csname #1mark\endcsname##1{%
+ \begingroup
+ \def\@tempa{\csname #1level\endcsname}%
+ \@tempswafalse
+ \ifnum \c@secnumdepth <\@tempa\else\if@mainmatter
+ \@tempswatrue
+ \fi\fi
+ \if@tempswa
+ \@iflevelok{#1}{#2}{%
+ \ifx\@mkboth\markboth
+ \markright{\MakeMarkcase{\csname #1markformat\endcsname
+ ##1}}%
+ \fi}{%
+ \@mkboth{}{\MakeMarkcase{\csname #1markformat\endcsname
+ ##1}}}%
+ \else
+ \@iflevelok{#1}{#2}{%
+ \ifx\@mkboth\markboth
+ \markright{\MakeMarkcase{##1}}%
+ \fi}{%
+ \@mkboth{}{\MakeMarkcase{##1}}}%
+ \fi
+ \endgroup
+ }
+ \fi\fi%
+ \let\@mkboth\markboth
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\manualmark}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v2.0g}{2001/06/25}{also deactivating \cs{...mark}}
+% \changes{v2.1a}{2002/10/30}{Switch off \cs{if@automark}}
+% This macro switchs to the manual set of marks (using \cs{markboth}
+% and \cs{markright}. This is very simple, we only have to deaktivate
+% the mark macros.
+% \begin{macrocode}
+\newcommand*{\manualmark}{%
+ \if@chapter\let\chaptermark\@gobble\fi
+ \let\sectionmark\@gobble
+ \let\subsectionmark\@gobble
+ \let\subsubsectionmark\@gobble
+ \let\paragraphmark\@gobble
+ \let\subparagraphmark\@gobble
+ \let\@mkboth\@gobbletwo
+ \@automarkfalse
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\partlevel}
+% \changes{v2.2}{2004/07/05}{New}
+% \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}
+\newcommand*{\partlevel}{-1}
+\newcommand*{\chapterlevel}{0}
+\newcommand*{\sectionlevel}{1}
+\newcommand*{\subsectionlevel}{2}
+\newcommand*{\subsubsectionlevel}{3}
+\newcommand*{\paragraphlevel}{4}
+\newcommand*{\subparagraphlevel}{5}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\MakeMarkcase}
+% \changes{v2.0m}{2002/02/05}{\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:
+% \begin{macrocode}
+\@ifundefined{MakeMarkcase}{%
+ \@ifclassloaded{scrbook}{\let\MakeMarkcase\relax}{%
+ \@ifclassloaded{scrreprt}{\let\MakeMarkcase\relax}{%
+ \@ifclassloaded{scrartcl}{\let\MakeMarkcase\relax}{%
+ \@ifclassloaded{scrlttr2}{\let\MakeMarkcase\relax}{%
+ \@ifclassloaded{book}{}{%
+ \@ifclassloaded{report}{}{%
+ \@ifclassloaded{article}{}{%
+ \PackageWarningNoLine{scrpage2}{%
+ use of scrpage2 with unknown class.\MessageBreak
+ Please mail to markus.kohm@gmx.de, if
+ headmarks\MessageBreak
+ are lower case without use of scrpage2}}}}%
+ \let\MakeMarkcase\MakeUppercase}}}}}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scrheadings@style}
+% \changes{v2.0g}{2001/06/25}{New}
+% \changes{v2.0m}{2002/02/05}{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}
+\@ifundefined{scrheadings@style}{%
+ \@ifclassloaded{scrbook}{\def\scrheadings@style{koma}}{%
+ \@ifclassloaded{scrreprt}{\def\scrheadings@style{koma}}{%
+ \@ifclassloaded{scrartcl}{\def\scrheadings@style{koma}}{%
+ \@ifclassloaded{scrlttr2}{\def\scrheadings@style{koma}}{%
+ \def\scrheadings@style{standard}}}}}}{}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Width of head and foot}
+% \begin{macro}{\setheadwidth}
+% \changes{v1.3}{2001/03/30}{New}
+% \begin{macro}{\setfootwidth}
+% \changes{v1.3}{2001/03/30}{New}
+% \begin{macro}{\set@hf@width}
+% \changes{v1.3}{2001/03/30}{New}
+% \changes{v1.3a}{2001/05/31}{symbolic values ``paper'', ``text'',
+% ``textwidthmarginpar''}
+% \changes{v2.0b}{2001/05/31}{symbolic values ``paper'', ``text'',
+% ``textwidthmarginpar''}
+% \changes{v2.0c}{2001/06/07}{error fix at warning}
+% \begin{macro}{\settowidthof}
+% \changes{v2.0e}{2001/06/22}{New}
+% \begin{macro}{\deftowidthof}
+% \changes{v2.0e}{2001/06/22}{New}
+% \changes{v2.0f}{2001/06/23}{new symbolic values ``autohead'' and
+% ``autofoot''}
+% \changes{v2.0i}{2001/08/17}{new symbolic value ``page''}
+% \changes{v2.0k}{2001/09/28}{\cs{pagewidth} korrigiert}
+% \changes{v2.1b}{2003/05/31}{more save existance test}
+% \changes{v2.2}{2004/07/05}{value ``foot'' fixed}
+% Until version 1.3, head and foot of a page had same width like the
+% text block. Since version 1.3 this was changed. Now the head and
+% foot have their own width and an optional shift relative to the text
+% part of the page. This shift can be positive or negative. We set
+% the width and shift with one macro and save them at macros. The set
+% macros have an optional argument: the shift.
+%
+% For definition of symbolic length values there is the macro
+% \cs{settowidthof}. And to define a macro with this value, there
+% is \cs{deftowidthof}.
+% \begin{macrocode}
+\newcommand*{\settowidthof}[2]{%
+ \edef\@tempa{#2}%
+ \edef\@tempb{paper}\ifx\@tempa\@tempb
+ \setlength{#1}{\paperwidth}%
+ \else\edef\@tempb{text}\ifx\@tempa\@tempb
+ \setlength{#1}{\textwidth}%
+ \else\edef\@tempb{textwithmarginpar}\ifx\@tempa\@tempb
+ \setlength{#1}{\textwidth}%
+ \addtolength{#1}{\marginparwidth}%
+ \addtolength{#1}{\marginparsep}%
+ \else\edef\@tempb{head}\ifx\@tempa\@tempb
+ \setlength{#1}{\@headwidth}%
+ \else\edef\@tempb{foot}\ifx\@tempa\@tempb
+ \setlength{#1}{\@footwidth}%
+ \else\edef\@tempb{headtopline}\ifx\@tempa\@tempb
+ \setlength{#1}{\scr@headabove@linelength}%
+ \else\edef\@tempb{headsepline}\ifx\@tempa\@tempb
+ \setlength{#1}{\scr@headbelow@linelength}%
+ \else\edef\@tempb{footsepline}\ifx\@tempa\@tempb
+ \setlength{#1}{\scr@footabove@linelength}%
+ \else\edef\@tempb{footbotline}\ifx\@tempa\@tempb
+ \setlength{#1}{\scr@footbelow@linelength}%
+ \else\edef\@tempb{page}\ifx\@tempa\@tempb
+ \setlength{#1}{\paperwidth}%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname ta@bcor\endcsname\relax\else
+ \addtolength{#1}{-\ta@bcor}%
+ \fi
+ \else
+ \setlength{#1}{#2}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+}
+\newcommand*{\deftowidthof}[2]{%
+ \edef\@tempa{#2}\edef\@tempb{autohead}\ifx\@tempa\@tempb
+ \expandafter\def\csname #1\endcsname{\@headwidth}%
+ \else\edef\@tempb{autofoot}\ifx\@tempa\@tempb
+ \expandafter\def\csname #1\endcsname{\@footwidth}%
+ \else
+ \settowidthof{\@tempdima}{#2}%
+ \expandafter\edef\csname #1\endcsname{\the\@tempdima}%
+ \fi
+ \fi
+}
+\newcommand*{\setheadwidth}[2][\@empty]{%
+ \set@hf@width{head}{#1}{#2} %
+}
+\newcommand*{\setfootwidth}[2][\@empty]{%
+ \set@hf@width{foot}{#1}{#2}%
+}
+\newcommand*{\set@hf@width}[3]{%
+ \settowidthof{\@tempdima}{#3}%
+ \ifdim\@tempdima>\paperwidth
+ \PackageWarning
+ {scrpage2}%
+ {You've set width of #1 to a value\MessageBreak
+ greater than width of page!\MessageBreak%
+ I`ll reduce width of #1 to width of page}%
+ \setlength{\@tempdima}{\paperwidth}%
+ \else
+ \ifdim\@tempdima<\z@
+ \PackageWarning
+ {scrpage2}%
+ {You've set width of #1 to negative value!\MessageBreak%
+ I'll set it to 0pt}%
+ \setlength{\@tempdima}{\z@}%
+ \fi
+ \fi
+ \expandafter\edef\csname @#1width\endcsname{\the\@tempdima}%
+ \edef\@tempa{#2}%
+ \setlength{\@tempdima}{\textwidth}%
+ \addtolength{\@tempdima}{-\csname @#1width\endcsname}%
+ \ifx\@tempa\@empty
+ \if@twoside
+ \setlength{\@tempdimb}{.3333333333\@tempdima}%
+ \else
+ \setlength{\@tempdimb}{.5\@tempdima}%
+ \fi
+ \else
+ \setlength{\@tempdimb}{#2}%
+ \fi
+ \addtolength{\@tempdima}{-\@tempdimb}%
+ \ifdim\@tempdimb<\z@
+ \setlength{\@tempdimb}{-\@tempdimb}%
+ \expandafter\edef\csname @odd#1shift\endcsname{-\the\@tempdimb}%
+ \else
+ \expandafter\edef\csname @odd#1shift\endcsname{\the\@tempdimb}%
+ \fi
+ \ifdim\@tempdima<\z@
+ \setlength{\@tempdima}{-\@tempdima}%
+ \expandafter\edef\csname @even#1shift\endcsname{-\the\@tempdima}%
+ \else
+ \expandafter\edef\csname @even#1shift\endcsname{\the\@tempdima}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@headwidth}
+% \changes{v1.3}{2001/03/30}{New}
+% \changes{v2.1}{2002/03/28}{use of option \texttt{mpinclude}}
+% \begin{macro}{\@footwidth}
+% \changes{v1.3}{2001/03/30}{New}
+% \changes{v2.1}{2002/03/28}{use of option \texttt{mpinclude}}
+% \begin{macro}{\@oddheadshift}
+% \changes{v1.3}{2001/03/30}{New}
+% \begin{macro}{\@evenheadshift}
+% \changes{v1.3}{2001/03/30}{New}
+% \begin{macro}{\@oddfootshift}
+% \changes{v1.3}{2001/03/30}{New}
+% \begin{macro}{\@evenfootshift}
+% \changes{v1.3}{2001/03/30}{New}
+% The values of width and shift of head and foot are saved at internal
+% macros.
+% \begin{macrocode}
+\newcommand*{\@headwidth}{\textwidth}%
+\newcommand*{\@oddheadshift}{\z@}%
+\newcommand*{\@evenheadshift}{\z@}%
+\newcommand*{\@footwidth}{\textwidth}%
+\newcommand*{\@oddfootshift}{\z@}%
+\newcommand*{\@evenfootshift}{\z@}%
+% \end{macrocode}
+% If option \texttt{mpinclude} was used, we use a special trick to set
+% width of head and foot but only if the user doesn't:
+% \begin{macrocode}
+\if@mincl
+ \renewcommand*{\@headwidth}{}%
+ \renewcommand*{\@footwidth}{}%
+ \AtBeginDocument{%
+ \ifx\@headwidth\@empty
+ \setheadwidth[0pt]{textwithmarginpar}%
+ \fi
+ \ifx\@footwidth\@empty
+ \setfootwidth[0pt]{textwithmarginpar}%
+ \fi
+ }
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Fonts}
+% \begin{macro}{\pnumfont}
+% We have to define a macro defining the font, used by |\pagemark|. Because
+% of this macro may already be defined by a \textsf{KOMA}-script-class, we
+% have to do this, using |\providecommand|
+% \begin{macrocode}
+\providecommand*{\pnumfont}{\normalfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\headfont}
+% There is also a macro used by |\@evenhead|, |\@oddhead| and |\@evenfoot|,
+% |\@oddfoot|:
+% \begin{macrocode}
+\providecommand*{\headfont}{\normalfont\slshape}
+\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}
+%
+% \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}
+\providecommand*{\footfont}{\normalfont}
+\providecommand*{\scr@fnt@pagefoot}{\footfont}
+\let\scr@fnt@wrn@pagefoot\relax
+% \end{macrocode}
+% \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''}
+% 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}
+\newcommand*{\setheadtopline}{\scr@setline{head}{above}}
+\newcommand*{\setheadsepline}{\scr@setline{head}{below}}
+\newcommand*{\setfootsepline}{\scr@setline{foot}{above}}
+\newcommand*{\setfootbotline}{\scr@setline{foot}{below}}
+% \end{macrocode}
+% \begin{macro}{\scr@setline}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \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}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\@scr@set@pre@line}
+% \changes{v2.2}{2004/07/05}{New internal}
+% The real change of the lines is done with the macros
+% \cs{scr@setline}, \cs{@scr@setline} and \cs{@@scr@setline}:
+% \begin{macrocode}
+\def\scr@setline#1#2{%
+ \kernel@ifnextchar[%]
+ {\@scr@setline{#1}{#2}}{\@@scr@setline{#1#2}}%
+}
+\def\@scr@setline#1#2[#3]{%
+ \edef\@tempa{#3}\edef\@tempa{auto}\ifx\@tempa\@tempb
+ \deftowidthof{scr@#1#2@linelength}{#3#1}%
+ \else
+ \deftowidthof{scr@#1#2@linelength}{#3}%
+ \fi
+ \@@scr@setline{#1#2}%
+}
+\def\@@scr@setline#1#2{%
+ \edef\@tempa{#2}\edef\@tempb{current}\ifx\@tempa\@empty\else
+ \ifx\@tempa\@tempb\else
+ \setlength{\@tempdima}{#2}%
+ \expandafter\edef\csname scr@#1@linethickness\endcsname%
+ {\the\@tempdima}%
+ \fi\fi
+ \kernel@ifnextchar[%]
+ {\@src@set@pre@line{#1}}{}%
+}
+\def\@src@set@pre@line#1[#2]{%
+ \expandafter\def\csname scr@pre@#1@line\endcsname{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Extended multilanguage formats}
+% \begin{macro}{\partmarkformat}
+% \changes{v2.2}{2004/07/05}{New}
+% \begin{macro}{\chaptermarkformat}
+% \changes{v1.1}{1995/06/27}{Space after chapternumber increased.}
+% \begin{macro}{\sectionmarkformat}
+% \changes{v1.1}{1995/06/27}{Space after sectionnumber increased.}
+% \begin{macro}{\subsectionmarkformat}
+% \changes{v1.1}{1995/06/27}{Space after subsectionnumber increased.}
+% \begin{macro}{\subsubsectionmarkformat}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\paragraphmarkformat}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\subparagraphmarkformat}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\@seccntmarkformat}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\@seccntformat}
+% \changes{v2.0}{2001/04/20}{New}
+% There are some macros to handle languages like Chinese, Japanese or Korean.
+% These macros were defined first by Werner Lemberg at his CJK-bundle. See
+% |scrclass.dtx| for further information.
+% \begin{macrocode}
+\providecommand{\partmarkformat} {\partname\ \thepart. \ }
+\if@chapter
+ \providecommand{\chaptermarkformat} {\@chapapp\ \thechapter. \ }
+ \providecommand{\sectionmarkformat} {\thesection. \ }
+ \providecommand{\subsectionmarkformat} {\@seccntmarkformat{subsection}}
+\else
+ \providecommand{\sectionmarkformat} {\thesection\quad}
+ \providecommand{\subsectionmarkformat} {\thesubsection\quad}
+\fi
+\providecommand{\subsubsectionmarkformat}{\@seccntmarkformat{subsubsection}}
+\providecommand{\paragraphmarkformat} {\@seccntmarkformat{paragraph}}
+\providecommand{\subparagraphmarkformat} {\@seccntmarkformat{subparagraph}}
+\providecommand{\@seccntmarkformat}[1] {\@seccntformat{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Definition of default pagestyles}
+%
+% \begin{macro}{\ps@save@plain}
+% \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
+% pagestyle for \emph{plain} pages with not so much head and foot. So
+% we have to redefine the standard pagestyle \texttt{plain}. But maybe
+% someone want to use the old standard pagestyle. So we first define
+% new names for old pagestyles.
+% \begin{macrocode}
+\newcommand*{\ps@save@plain}{}
+\let\ps@save@plain\ps@plain
+\newcommand*{\ps@use@plain}{\let\save@@mkboth\@mkboth
+ \ps@save@plain
+ \let\@mkboth\save@@mkboth}
+\let\ps@plain\ps@use@plain
+% \end{macrocode}
+% \begin{macro}{\ps@save@headings}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v2.0b}{2001/05/31}{use this 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 instead of
+% \cs{ps@standardmyheadings}}
+% \begin{macro}{\ps@headings}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\ps@myheadings}
+% \changes{v2.0}{2001/04/20}{New}
+% If standard pagestyle \texttt{headings} or \texttt{myheadings} is
+% used, also standard pagestyle \texttt{use@plain} should be
+% used. So we also define new names for the other old pagestyles and
+% new pagestyles with the old names, doing the switch back for the
+% plain pagestyle. These are defined even if the pagestyles are
+% unknown.
+% \begin{macrocode}
+\newcommand*{\ps@save@headings}{}
+\let\ps@save@headings\ps@headings
+\newcommand*{\ps@save@myheadings}{}
+\let\ps@save@myheadings\ps@myheadings
+\def\ps@headings{%
+ \PackageWarning{scrpage2}%
+ {you've used pagestyle ``headings''.\MessageBreak
+ You should not use this pagestyle with a\MessageBreak
+ scrpage2-pagestyle!\MessageBreak
+ You should use pagestyle ``useheadings'' instead\MessageBreak}%
+ \let\ps@plain\ps@save@plain%
+ \ps@save@headings\@automarktrue}
+\def\ps@myheadings{%
+ \PackageWarning{scrpage2}%
+ {you've used pagestyle ``myheadings''.\MessageBreak
+ You should not use this pagestyle with a\MessageBreak
+ scrpage2-pagestyle!\MessageBreak
+ You should use pagestyle ``useheadings'' instead\MessageBreak}%
+ \let\ps@plain\ps@save@plain%
+ \ps@save@myheadings\@automarkfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\ps@useheadings}
+% \changes{v2.0b}{2001/05/31}{New}
+% \changes{v2.0m}{2002/02/05}{Fatal bug (\cs{mkboth} instead of
+% \cs{@mkboth}) fixed}
+% \changes{v2.1a}{2002/10/30}{Use of switch \cs{if@automark}}
+% This is the pagestyle, you should use instead of \texttt{headings}
+% or \texttt{myheadings}. If you are using manual marks, this behaves
+% like pagestyle \texttt{myheadings}. If you are using automatic
+% marks, this behaves like headings, but without changing
+% \cs{chaptermark}, \cs{sectionmark} or \cs{subsectionmark}.
+% \begin{macrocode}
+\newcommand*{\ps@useheadings}{%
+ \if@automark\let\@mkboth\markboth\else\let\@mkboth\@gobbletwo\fi
+ \let\ps@plain\ps@use@plain
+ \let\save@@mkboth\@mkboth
+ \let\save@chaptermark\chaptermark
+ \let\save@sectionmark\sectionmark
+ \let\save@subsectionmark\subsectionmark
+ \ifx\@mkboth\markboth\ps@save@headings\else\ps@save@myheadings\fi
+ \let\@mkboth\save@@mkboth
+ \let\chaptermark\save@chaptermark
+ \let\sectionmark\save@sectionmark
+ \let\subsectionmark\save@subsectionmark
+}
+% \end{macrocode}
+% Note: Because of saving \cs{@mkboth}, \cs{chaptermark},
+% \cs{sectionmark} and \cs{subsection} before changing the pagestyle
+% and restore them after changing the pagestyle it does not matter, if
+% we set pagestyle \texttt{headings} or \texttt{myheadings}. So it
+% would be possible to remove the \cs{ifx}\dots\cs{fi}-line above and
+% simply use \cs{ps@save@headings} or \cs{ps@save@myheadings} instead
+% of.
+% \end{macro}
+%
+%
+% \begin{macro}{\ps@scrplain}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v2.0a}{2001/04/24}{\cs{strut} inserted}
+% \changes{v2.0f}{2001/06/23}{\cs{strut} inserted}
+% \changes{v2.1c}{2004/02/07}{thickness of footbelow line fixed}
+% \begin{macro}{\scrplain@even@left@head}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@even@middle@head}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@even@right@head}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@odd@left@head}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@odd@middle@head}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@odd@right@head}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@even@left@foot}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@even@middle@foot}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@even@right@foot}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@odd@left@foot}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@odd@middle@foot}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrplain@odd@right@foot}
+% \changes{v2.0}{2001/04/20}{New}
+% After this, we can define the new pagestyles, first a new plain
+% one. It sould be variable and so we use macros to define the parts.
+% \begin{macrocode}
+\newcommand*{\ps@scrplain}{\let\ps@plain\ps@@scrplain\ps@plain}
+\newpagestyle{@scrplain}
+{%
+ (\scrplain@headabove@linelength,\scr@headabove@linethickness)%
+ {%
+ \rlap{\parbox{\@headwidth}{\raggedright
+ \strut\scrplain@even@left@head\strut}}%
+ \hfill
+ \parbox{\@headwidth}{\centering\strut
+ \scrplain@even@middle@head\strut}%
+ \hfill
+ \llap{\parbox{\@headwidth}{\raggedleft
+ \strut\scrplain@even@right@head\strut}}}%
+ {%
+ \rlap{\parbox{\@headwidth}{\raggedright
+ \strut\scrplain@odd@left@head\strut}}%
+ \hfill
+ \parbox{\@headwidth}{\centering
+ \strut\scrplain@odd@middle@head\strut}%
+ \hfill
+ \llap{\parbox{\@headwidth}{\raggedleft
+ \strut\scrplain@odd@right@head\strut}}}%
+ {%
+ \rlap{\parbox{\@headwidth}{\raggedright
+ \strut\scrplain@odd@left@head\strut}}%
+ \hfill
+ \parbox{\@headwidth}{\centering
+ \strut\scrplain@odd@middle@head\strut}%
+ \hfill
+ \llap{\parbox{\@headwidth}{\raggedleft
+ \strut\scrplain@odd@right@head\strut}}}%
+ (\scrplain@headbelow@linelength,\scr@headbelow@linethickness)
+}{%
+ (\scrplain@footabove@linelength,\scr@footabove@linethickness)
+ {%
+ \rlap{\parbox{\@footwidth}{\raggedright
+ \strut\scrplain@even@left@foot\strut}}%
+ \hfill
+ \parbox{\@footwidth}{\centering
+ \strut\scrplain@even@middle@foot\strut}%
+ \hfill
+ \llap{\parbox{\@footwidth}{\raggedleft
+ \strut\scrplain@even@right@foot\strut}}}%
+ {%
+ \rlap{\parbox{\@footwidth}{\raggedright
+ \strut\scrplain@odd@left@foot\strut}}%
+ \hfill
+ \parbox{\@footwidth}{\centering
+ \strut\scrplain@odd@middle@foot\strut}%
+ \hfill
+ \llap{\parbox{\@footwidth}{\raggedleft
+ \strut\scrplain@odd@right@foot\strut}}}%
+ {%
+ \rlap{\parbox{\@footwidth}{\raggedright
+ \strut\scrplain@odd@left@foot\strut}}%
+ \hfill
+ \parbox{\@footwidth}{\centering
+ \strut\scrplain@odd@middle@foot\strut}%
+ \hfill
+ \llap{\parbox{\@footwidth}{\raggedleft
+ \strut\scrplain@odd@right@foot\strut}}}%
+ (\scrplain@footbelow@linelength,\scr@footbelow@linethickness)
+}
+\newcommand*{\scrplain@even@left@head}{}
+\newcommand*{\scrplain@even@middle@head}{}
+\newcommand*{\scrplain@even@right@head}{}
+\newcommand*{\scrplain@odd@left@head}{}
+\newcommand*{\scrplain@odd@middle@head}{}
+\newcommand*{\scrplain@odd@right@head}{}
+\newcommand*{\scrplain@even@left@foot}{}
+\newcommand*{\scrplain@even@middle@foot}{}
+\newcommand*{\scrplain@even@right@foot}{}
+\newcommand*{\scrplain@odd@left@foot}{}
+\newcommand*{\scrplain@odd@middle@foot}{}
+\newcommand*{\scrplain@odd@right@foot}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\ps@scrheadings}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v2.0a}{2001/04/24}{\cs{strut} inserted}
+% \changes{v2.0f}{2001/06/23}{\cs{strut} inserted}
+% \begin{macro}{\scrheadings@even@left@head}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrheadings@even@middle@head}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrheadings@even@right@head}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrheadings@odd@left@head}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrheadings@odd@middle@head}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrheadings@odd@right@head}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrheadings@even@left@foot}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrheadings@even@middle@foot}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrheadings@even@right@foot}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrheadings@odd@left@foot}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrheadings@odd@middle@foot}
+% \changes{v2.0}{2001/04/20}{New}
+% \begin{macro}{\scrheadings@odd@right@foot}
+% \changes{v2.0}{2001/04/20}{New}
+% We also define define a new headings one. It sould be variable and
+% so we use macros to define the parts. But we need an \emph{also
+% action}, so we first define a inner pagestyle and then use this at a
+% outer one (definition is done in reverse order):
+% \begin{macrocode}
+\newcommand*{\ps@scrheadings}{\let\ps@plain\ps@scrplain\ps@@scrheadings}
+\newpagestyle{@scrheadings}
+{%
+ {%
+ \rlap{\parbox{\@headwidth}{\raggedright
+ \strut\scrheadings@even@left@head\strut}}%
+ \hfill
+ \parbox{\@headwidth}{\centering
+ \strut\scrheadings@even@middle@head\strut}%
+ \hfill
+ \llap{\parbox{\@headwidth}{\raggedleft%
+ \strut\scrheadings@even@right@head\strut}}}%
+ {%
+ \rlap{\parbox{\@headwidth}{\raggedright
+ \strut\scrheadings@odd@left@head\strut}}%
+ \hfill
+ \parbox{\@headwidth}{\centering
+ \strut\scrheadings@odd@middle@head\strut}%
+ \hfill
+ \llap{\parbox{\@headwidth}{\raggedleft%
+ \strut\scrheadings@odd@right@head\strut}}}%
+ {%
+ \rlap{\parbox{\@headwidth}{\raggedright
+ \strut\scrheadings@odd@left@head\strut}}%
+ \hfill
+ \parbox{\@headwidth}{\centering
+ \strut\scrheadings@odd@middle@head\strut}%
+ \hfill
+ \llap{\parbox{\@headwidth}{\raggedleft
+ \strut\scrheadings@odd@right@head\strut}}}}%
+{%
+ {%
+ \rlap{\parbox{\@footwidth}{\raggedright
+ \strut\scrheadings@even@left@foot\strut}}%
+ \hfill
+ \parbox{\@footwidth}{\centering
+ \strut\scrheadings@even@middle@foot\strut}%
+ \hfill
+ \llap{\parbox{\@footwidth}{\raggedleft
+ \strut\scrheadings@even@right@foot\strut}}}%
+ {%
+ \rlap{\parbox{\@footwidth}{\raggedright
+ \strut\scrheadings@odd@left@foot\strut}}%
+ \hfill
+ \parbox{\@footwidth}{\centering
+ \strut\scrheadings@odd@middle@foot\strut}%
+ \hfill
+ \llap{\parbox{\@footwidth}{\raggedleft
+ \strut\scrheadings@odd@right@foot\strut}}}%
+ {%
+ \rlap{\parbox{\@footwidth}{\raggedright
+ \strut\scrheadings@odd@left@foot\strut}}%
+ \hfill
+ \parbox{\@footwidth}{\centering
+ \strut\scrheadings@odd@middle@foot\strut}%
+ \hfill
+ \llap{\parbox{\@footwidth}{\raggedleft
+ \strut\scrheadings@odd@right@foot\strut}}%
+ }%
+}
+\newcommand*{\scrheadings@even@left@head}{}
+\newcommand*{\scrheadings@even@middle@head}{}
+\newcommand*{\scrheadings@even@right@head}{}
+\newcommand*{\scrheadings@odd@left@head}{}
+\newcommand*{\scrheadings@odd@middle@head}{}
+\newcommand*{\scrheadings@odd@right@head}{}
+\newcommand*{\scrheadings@even@left@foot}{}
+\newcommand*{\scrheadings@even@middle@foot}{}
+\newcommand*{\scrheadings@even@right@foot}{}
+\newcommand*{\scrheadings@odd@left@foot}{}
+\newcommand*{\scrheadings@odd@middle@foot}{}
+\newcommand*{\scrheadings@odd@right@foot}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\ihead}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\ohead}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\chead}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\lehead}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\lohead}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\rehead}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\rohead}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\cehead}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\cohead}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\ifoot}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\ofoot}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\cfoot}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\lefoot}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\lofoot}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\refoot}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\rofoot}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\cefoot}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\cofoot}
+% \changes{v2.0}{2001/04/20}{New}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% We also need macros to define the contents of the three part head
+% and foot. Each macro defines one of the part of head or foot of the
+% scrheadings pagestyle and optional of the scrplain pagestyle.
+% \begin{macrocode}
+\newcommand{\ihead}{\kernel@ifnextchar[{\@@lhead}{\@lhead}}
+\newcommand{\@lhead}[1]{\@rehead{#1}\@lohead{#1}}
+\newcommand{\@@lhead}[2][]{\@@rehead[{#1}]{#2}\@@lohead[{#1}]{#2}}
+\newcommand{\ohead}{\kernel@ifnextchar[{\@@rhead}{\@rhead}}
+\newcommand{\@rhead}[1]{\@lehead{#1}\@rohead{#1}}
+\newcommand{\@@rhead}[2][]{\@@lehead[{#1}]{#2}\@@rohead[{#1}]{#2}}
+\newcommand{\chead}{\kernel@ifnextchar[{\@@chead}{\@chead}}
+\newcommand{\@chead}[1]{\@cehead{#1}\@cohead{#1}}
+\newcommand{\@@chead}[2][]{\@@cehead[{#1}]{#2}\@@cohead[{#1}]{#2}}
+\newcommand{\lehead}{\kernel@ifnextchar[{\@@lehead}{\@lehead}}
+\newcommand{\@lehead}[1]{\renewcommand*{\scrheadings@even@left@head}{#1}}
+\newcommand{\@@lehead}[2][]{%
+ \renewcommand*{\scrplain@even@left@head}{#1}%
+ \renewcommand*{\scrheadings@even@left@head}{#2}}
+\newcommand{\lohead}{\kernel@ifnextchar[{\@@lohead}{\@lohead}}
+\newcommand{\@lohead}[1]{\renewcommand*{\scrheadings@odd@left@head}{#1}}
+\newcommand{\@@lohead}[2][]{%
+ \renewcommand*{\scrplain@odd@left@head}{#1}%
+ \renewcommand*{\scrheadings@odd@left@head}{#2}}
+\newcommand{\rehead}{\kernel@ifnextchar[{\@@rehead}{\@rehead}}
+\newcommand{\@rehead}[1]{\renewcommand*{\scrheadings@even@right@head}{#1}}
+\newcommand{\@@rehead}[2][]{%
+ \renewcommand*{\scrplain@even@right@head}{#1}%
+ \renewcommand*{\scrheadings@even@right@head}{#2}}
+\newcommand{\rohead}{\kernel@ifnextchar[{\@@rohead}{\@rohead}}
+\newcommand{\@rohead}[1]{\renewcommand*{\scrheadings@odd@right@head}{#1}}
+\newcommand{\@@rohead}[2][]{%
+ \renewcommand*{\scrplain@odd@right@head}{#1}%
+ \renewcommand*{\scrheadings@odd@right@head}{#2}}
+\newcommand{\cehead}{\kernel@ifnextchar[{\@@cehead}{\@cehead}}
+\newcommand{\@cehead}[1]{\renewcommand*{\scrheadings@even@middle@head}{#1}}
+\newcommand{\@@cehead}[2][]{%
+ \renewcommand*{\scrplain@even@middle@head}{#1}%
+ \renewcommand*{\scrheadings@even@middle@head}{#2}}
+\newcommand{\cohead}{\kernel@ifnextchar[{\@@cohead}{\@cohead}}
+\newcommand{\@cohead}[1]{\renewcommand*{\scrheadings@odd@middle@head}{#1}}
+\newcommand{\@@cohead}[2][]{%
+ \renewcommand*{\scrplain@odd@middle@head}{#1}%
+ \renewcommand*{\scrheadings@odd@middle@head}{#2}}
+\newcommand{\ifoot}{\kernel@ifnextchar[{\@@lfoot}{\@lfoot}}
+\newcommand{\@lfoot}[1]{\@refoot{#1}\@lofoot{#1}}
+\newcommand{\@@lfoot}[2][]{\@@refoot[{#1}]{#2}\@@lofoot[{#1}]{#2}}
+\newcommand{\ofoot}{\kernel@ifnextchar[{\@@rfoot}{\@rfoot}}
+\newcommand{\@rfoot}[1]{\@lefoot{#1}\@rofoot{#1}}
+\newcommand{\@@rfoot}[2][]{\@@lefoot[{#1}]{#2}\@@rofoot[{#1}]{#2}}
+\newcommand{\cfoot}{\kernel@ifnextchar[{\@@cfoot}{\@cfoot}}
+\newcommand{\@cfoot}[1]{\@cefoot{#1}\@cofoot{#1}}
+\newcommand{\@@cfoot}[2][]{\@@cefoot[{#1}]{#2}\@@cofoot[{#1}]{#2}}
+\newcommand{\lefoot}{\kernel@ifnextchar[{\@@lefoot}{\@lefoot}}
+\newcommand{\@lefoot}[1]{\renewcommand*{\scrheadings@even@left@foot}{#1}}
+\newcommand{\@@lefoot}[2][]{%
+ \renewcommand*{\scrplain@even@left@foot}{#1}%
+ \renewcommand*{\scrheadings@even@left@foot}{#2}}
+\newcommand{\lofoot}{\kernel@ifnextchar[{\@@lofoot}{\@lofoot}}
+\newcommand{\@lofoot}[1]{\renewcommand*{\scrheadings@odd@left@foot}{#1}}
+\newcommand{\@@lofoot}[2][]{%
+ \renewcommand*{\scrplain@odd@left@foot}{#1}%
+ \renewcommand*{\scrheadings@odd@left@foot}{#2}}
+\newcommand{\refoot}{\kernel@ifnextchar[{\@@refoot}{\@refoot}}
+\newcommand{\@refoot}[1]{\renewcommand*{\scrheadings@even@right@foot}{#1}}
+\newcommand{\@@refoot}[2][]{%
+ \renewcommand*{\scrplain@even@right@foot}{#1}%
+ \renewcommand*{\scrheadings@even@right@foot}{#2}}
+\newcommand{\rofoot}{\kernel@ifnextchar[{\@@rofoot}{\@rofoot}}
+\newcommand{\@rofoot}[1]{\renewcommand*{\scrheadings@odd@right@foot}{#1}}
+\newcommand{\@@rofoot}[2][]{%
+ \renewcommand*{\scrplain@odd@right@foot}{#1}%
+ \renewcommand*{\scrheadings@odd@right@foot}{#2}}
+\newcommand{\cefoot}{\kernel@ifnextchar[{\@@cefoot}{\@cefoot}}
+\newcommand{\@cefoot}[1]{\renewcommand*{\scrheadings@even@middle@foot}{#1}}
+\newcommand{\@@cefoot}[2][]{%
+ \renewcommand*{\scrplain@even@middle@foot}{#1}%
+ \renewcommand*{\scrheadings@even@middle@foot}{#2}}
+\newcommand{\cofoot}{\kernel@ifnextchar[{\@@cofoot}{\@cofoot}}
+\newcommand{\@cofoot}[1]{\renewcommand*{\scrheadings@odd@middle@foot}{#1}}
+\newcommand{\@@cofoot}[2][]{%
+ \renewcommand*{\scrplain@odd@middle@foot}{#1}%
+ \renewcommand*{\scrheadings@odd@middle@foot}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\clearscrheadings}
+% \changes{v2.0j}{2001/08/18}{New}
+% \begin{macro}{\clearscrheadfoot}
+% \changes{v2.0j}{2001/08/18}{New}
+% \begin{macro}{\clearscrpain}
+% \changes{v2.0j}{2001/08/18}{New}
+% Maybe you want to clear the currently defined head and foot. First
+% let's clear only scrheadings pagestyle but not scrplain pagestyle.
+% We do this simply using the already known command:
+% \begin{macrocode}
+\newcommand*{\clearscrheadings}{%
+ \ihead{}\chead{}\ohead{}\ifoot{}\cfoot{}\ofoot{}}
+% \end{macrocode}
+% We can do almost the same to clear scrheadings pagestyle and
+% scrplain pagestyle together:
+% \begin{macrocode}
+\newcommand*{\clearscrheadfoot}{%
+ \ihead[]{}\chead[]{}\ohead[]{}\ifoot[]{}\cfoot[]{}\ofoot[]{}}
+% \end{macrocode}
+% But, for only clearing the scrplain pagestyle, we have to do the
+% redefinition directly:
+% \begin{macrocode}
+\newcommand*{\clearscrplain}{%
+ \renewcommand*{\scrplain@even@left@head}{}%
+ \renewcommand*{\scrplain@even@middle@head}{}%
+ \renewcommand*{\scrplain@even@right@head}{}%
+ \renewcommand*{\scrplain@odd@left@head}{}%
+ \renewcommand*{\scrplain@odd@middle@head}{}%
+ \renewcommand*{\scrplain@odd@right@head}{}%
+ \renewcommand*{\scrplain@even@left@foot}{}%
+ \renewcommand*{\scrplain@even@middle@foot}{}%
+ \renewcommand*{\scrplain@even@right@foot}{}%
+ \renewcommand*{\scrplain@odd@left@foot}{}%
+ \renewcommand*{\scrplain@odd@middle@foot}{}%
+ \renewcommand*{\scrplain@odd@right@foot}{}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% Let's do the default setting:
+% \changes{v2.0m}{2002/02/05}{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}\rohead{\leftmark}%
+ \or
+ \lehead{\leftmark}\lohead{\leftmark}%
+ \chead[\pagemark]{\pagemark}%
+ \rehead{\rightmark}\rohead{\rightmark}%
+ \or
+ \lehead{\leftmark}\lohead{\leftmark}%
+ \chead{\rightmark}%
+ \rehead[\pagemark]{\pagemark}\rohead[\pagemark]{\pagemark}%
+ \or
+ \lehead{\leftmark}\lohead{\leftmark}%
+ \rehead{\rightmark}\rohead{\rightmark}%
+ \lefoot[\pagemark]{\pagemark}\lofoot[\pagemark]{\pagemark}%
+ \or
+ \lehead{\leftmark}\lohead{\leftmark}%
+ \rehead{\rightmark}\rohead{\rightmark}%
+ \cfoot[\pagemark]{\pagemark}%
+ \or
+ \lehead{\leftmark}\lohead{\leftmark}%
+ \rehead{\rightmark}\rohead{\rightmark}%
+ \refoot[\pagemark]{\pagemark}\rofoot[\pagemark]{\pagemark}%
+ \fi
+ \let\ps@save@myheadings=\ps@save@headings
+ }{%
+ \ohead{\if@twoside\headmark\fi}%
+ \chead{\if@twoside\else\headmark\fi}%
+ \cfoot[\if@twoside\else\pagemark\fi]{\if@twoside\else\pagemark\fi}%
+ \ofoot[\if@twoside\pagemark\fi]{\if@twoside\pagemark\fi}%
+ }%
+\else\def\@tempa{standard}\ifx\scrheadings@style\@tempa
+ \ihead{\headmark}
+ \ohead{\pagemark}
+ \cfoot[\pagemark]{}
+ \else\PackageErrorNoLine{scrpage2}{unknown scrheadings style}%
+ {Somehow \string\scrheadings@style was
+ defined\MessageBreak
+ as ``\scrheadings@style''.\MessageBreak
+ scrpage2 doesn't know what to do.
+ If you'll continue, pagestyle
+ ``scrheadings''\MessageBreak
+ will be predefined empty}
+\fi\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup\expandafter
+\ifx\csname chaptermark\endcsname\relax
+ \begingroup\expandafter\expandafter\expandafter\endgroup\expandafter
+ \ifx\csname sectionmark\endcsname\relax
+ \ifx\@mkboth\markboth\@automarktrue\fi
+ \else
+% \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
+ \begingroup
+ \def\@gobble#1{}\ifx\chaptermark\@gobble\else
+ \aftergroup\@automarktrue
+ \fi
+ \endgroup
+ \fi
+\fi
+% \end{macrocode}
+%
+%
+% \subsection{Configurationfile}
+% Not last and not least we include the local configuration-file
+% \texttt{scrpage.cfg}, if it exists.
+% \begin{macrocode}
+\InputIfFileExists{scrpage.cfg}
+ {\typeout{*************************************^^J%
+ * Local config file scrpage.cfg used^^J%
+ *************************************}}
+ {}
+% \end{macrocode}
+%
+%
+% \subsection{Some checks}
+% \changes{v2.0}{2001/04/20}{\cs{headheight}-check}
+% Last but not least we do some checks at version 2. Some means one at
+% the moment. And the one is a check, if the \cs{headheight} should be
+% increased.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \ifdim\headheight=12pt
+ \PackageWarningNoLine{scrpage2}%
+ {seems you are using a constant headheight.\MessageBreak
+ If you get overfull \string\vbox\space warnings at almost every%
+ \MessageBreak
+ page, you should increase headheight e.g. writing\MessageBreak
+ \space\string\setlength{\string\headheight}{%
+ 1.1\string\baselineskip}\MessageBreak
+ into the preamble of your document.\MessageBreak
+ A better solution would be to use typearea package}%
+ \else\ifdim\headheight<1.07\baselineskip
+ \PackageWarningNoLine{scrpage2}%
+ {seems you are using a very small headheight.\MessageBreak
+ If you get overfull \string\vbox\space warnings at almost every%
+ \MessageBreak
+ page, you should increase headheight e.g. writing\MessageBreak
+ \space\string\setlength{\string\headheight}{%
+ 1.1\string\baselineskip}\MessageBreak
+ into the preamble of your document.\MessageBreak
+ A better solution would be to use typearea package}%
+ \fi\fi}
+% \end{macrocode}
+%
+% \subsection{End}
+% \begin{macrocode}
+%</scrpage>
+% \end{macrocode}
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrpage.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrsource.tex b/macros/latex/contrib/koma-script/source/scrsource.tex
new file mode 100644
index 0000000000..f7cbbbda1e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrsource.tex
@@ -0,0 +1,137 @@
+% ======================================================================
+% scrsource.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrsource.tex
+% Copyright (c) Markus Kohm, 2002-2018
+%
+% 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.
+% ======================================================================
+
+% Try to get the version of KOMA-Script from scrkernel-version.dtx.
+\begingroup
+ \def\ProvidesFile#1[#2]{\csname endinput\endcsname}%
+ \input scrkernel-version.dtx
+ \newcommand*{\ParseKOMAScriptVersion}{}
+ \def\ParseKOMAScriptVersion#1/#2/#3 v#4 #5\ParseKOMAScriptVersion{%
+ \gdef\filedate{#1\kern1pt-\kern0pt#2\kern1pt-\kern0pt#3}%
+ \gdef\fileversion{#4}%
+ }
+ \expandafter
+ \ParseKOMAScriptVersion\KOMAScriptVersion\ParseKOMAScriptVersion
+ \gdef\filename{\jobname}
+\endgroup
+
+\ProvidesFile{scrsource.tex}[\KOMAScriptVersion (source)]
+\documentclass{scrdoc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[english,ngerman]{babel}
+\usepackage[latin1]{inputenc}
+\newcommand*{\Environment}[1]{\texttt{\mbox{#1}}}
+\CodelineIndex
+\RecordChanges\setcounter{GlossaryColumns}{1}
+\title{\KOMAScript{} -- The Source\footnote{Ich weiß natürlich, dass ein
+ Englischer Titel eines vorwiegend deutschsprachigen Dokuments ein
+ wenig eigentümlich ist, aber "`\KOMAScript{} -- Der
+ Quelltext"' wollte mir einfach nicht gefallen.}%
+}
+\date{\filedate\\[1ex] Version \fileversion}
+\author{Markus Kohm}
+
+\begin{document}
+ \maketitle
+ \begin{abstract}\noindent
+ In diesem Dokument finden Sie \emph{nicht} die Anleitung zu
+ \KOMAScript{}. Wenn Sie diese suchen, dann suchen Sie bitte nach
+ \texttt{scrguide} (Deutsch) oder \texttt{scrguien} (Englisch). In
+ diesem Dokument ist die Implementierung von \KOMAScript{} -- in
+ erster Linie der \KOMAScript{}-Klassen -- dokumentiert.
+ \end{abstract}
+ \tableofcontents
+
+ \clearpage
+ \addsec{Vorwort}
+
+ Sie finden im Folgenden die Dokumentation der Implementierung von
+ \KOMAScript. Diese kann für Paketautoren von Interesse sein. Bevor
+ ein Paketautor ein Makro umdefiniert oder ein internes Makro
+ verwendet, sollte er jedoch Rücksprache mit dem Autor von
+ \KOMAScript{} halten, damit so weit wie möglich sichergestellt ist,
+ dass bei zukünftigen Versionen von \KOMAScript{} die notwendige
+ Kompatibilität erhalten bleibt oder der Paketautor über notwendige
+ Änderungen an den entsprechenden Makros informiert wird.
+
+ Teile der Dokumentation sind in Englisch. Der größte Teil ist jedoch
+ in Deutsch.
+
+ Der Quelltext ist in logische Gruppen eingeteilt und in dieser Form
+ dokumentiert. Die Reihenfolge in der Dokumentation entspricht jedoch
+ \emph{nicht} der Reihenfolge des Codes in den Klassen und Paketen.
+
+ \DocInclude{scrkernel-version}
+ \DocInclude{scrkernel-basics}
+% \DocInclude{tocbasic}
+ \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}
+ \IfFileExists{scrkernel-tocstyle.dtx}{\DocInclude{scrkernel-tocstyle}}{}
+ \DocInclude{scrkernel-bibliography}
+ \DocInclude{scrkernel-index}
+ \DocInclude{scrkernel-listsandtabulars}
+ \DocInclude{scrlfile}
+ \DocInclude{scrlogo}
+ \DocInclude{scrkernel-compatibility}
+ \DocInclude{scrkernel-notepaper}
+ \DocInclude{scrkernel-variables}
+ \DocInclude{scrkernel-pseudolengths}
+ \DocInclude{scrkernel-letterclassoptions}
+ \DocInclude{japanlco}
+ \DocInclude{scrkernel-circularletters}
+ \DocInclude{scrextend}
+ \DocInclude{scrhack}
+
+ \PrintIndex
+ \PrintChanges
+\end{document}
+%
+% end of file `scrsource.tex'
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrstrip.inc b/macros/latex/contrib/koma-script/source/scrstrip.inc
new file mode 100644
index 0000000000..01cbfbcfb8
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrstrip.inc
@@ -0,0 +1,119 @@
+% ======================================================================
+% scrstrip.inc
+% Copyright (c) Markus Kohm, 2002-2017
+%
+% 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.
+%
+% 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 all files listed in manifest.txt.
+% ----------------------------------------------------------------------
+% scrstrip.inc
+% Copyright (c) Markus Kohm, 2002-2017
+%
+% Diese Datei ist Teil des LaTeX2e-KOMA-Script-Pakets.
+%
+% 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 aus den in manifest.txt aufgefuehrten Dateien.
+% ======================================================================
+%
+% This file will be included at startup of every KOMA-Script
+% docstrip batch file.
+%
+
+% ---------- start of docstrip -----------------------------------------
+
+\KOMAdefVariable{AUTHOR}{Markus Kohm}
+\KOMAdefVariable{EMAIL}{[komascript at gmx info]}
+\KOMAdefVariable{COPYRIGHTFROM}{1994}
+\KOMAdefVariable{COPYRIGHTTILL}{2017}
+
+\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
+% ---------- validity --------------------------------------------------
+ \KOMAvalidityTest{manifest.txt}
+}
+
+% ---------- defining preambles ----------------------------------------
+
+\preamble
+
+\noexpand\KOMAuseVariable{COPYRIGHT}
+
+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
+<http://mirror.ctan.org/tex-archive/macros/latex/base/>.
+
+\endpreamble
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrstrop.inc b/macros/latex/contrib/koma-script/source/scrstrop.inc
new file mode 100644
index 0000000000..715acaedaa
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrstrop.inc
@@ -0,0 +1,67 @@
+% ======================================================================
+% scrstrop.inc
+% 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.
+% ----------------------------------------------------------------------
+% scrstrop.inc
+% 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.
+% ======================================================================
+%
+% This file will be included at end of every KOMA-Script
+% docstrip batch file.
+%
+
+% ---------- end of docstrip -----------------------------------------
+
+\ifToplevel{%
+ \Msg{| Unpacking finished successfully.}
+ \Msg{+----------------------------------------------------------------------}
+ \ifbeta
+ \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 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{+======================================================================}
+}
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrtime.dtx b/macros/latex/contrib/koma-script/source/scrtime.dtx
new file mode 100644
index 0000000000..a301769a38
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrtime.dtx
@@ -0,0 +1,785 @@
+% \CheckSum{311}
+% \iffalse
+% ======================================================================
+% scrtime.dtx
+% Copyright (c) Markus Kohm, 1995-2017
+%
+% 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.
+% ----------------------------------------------------------------------
+% scrtime.dtx
+% Copyright (c) Markus Kohm, 1995-2017
+%
+% 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: scrtime.dtx 2649 2017-05-29 09:39:43Z kohm $
+%<package&identify>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2017-05-29 11:39:43 +0200 (Mon, 29 May 2017) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 2649 $
+\endgroup
+\ProvidesFile{scrtime.dtx}[\filedate\space\filerevision\space
+%</driver>
+%<*driver|package>
+%<identify&scrtime>\ProvidesPackage{scrtime}[%
+%<identify&scrdate>\ProvidesPackage{scrdate}[%
+%<*driver|identify>
+%!KOMAScriptVersion
+ package
+%</driver|identify>
+%<identify&scrtime> (time of LaTeX run)%
+%<identify&scrdate> (day of the week)%
+%<*driver|identify>
+]
+%</driver|identify>
+%</driver|package>
+%<*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
+%</dtx>
+%<*driver>
+\documentclass{scrdoc}
+\usepackage[german,english]{babel}
+\usepackage[latin1]{inputenc}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrtime.dtx}
+\title{The \textsf{KOMA}-timedate-bundle\thanks{This file has
+ revision number \fileversion, last revised \filedate.}}
+\author{Markus Kohm}
+\date{\filedate}
+\begin{document}
+ \maketitle
+ \begin{abstract}
+ This bundle includes a package \texttt{scrtime} defining some macros to
+ handle compilation-time. It's a very simple implementation similar to
+ \texttt{time.sty}. I've tried to use no additional register.
+
+ The second package \texttt{scrdate} defines some macros to handle the name
+ of the day!
+ \end{abstract}
+ \tableofcontents
+ \DocInput{scrtime.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% See the \KOMAScript{} guide for informations about how to use the package.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \section{Implementation}
+%
+% \subsection{Options}
+%
+% \iffalse
+%<*option>
+% \fi
+% Since version~1.2 both packages use \textsf{scrkbase} for options and
+% additional features.
+%
+%
+% \subsubsection{Options of \textsf{scrtime}}
+%
+% \iffalse
+%<*scrtime>
+% \fi
+%
+% \begin{option}{12h}
+% \changes{v1.1b}{1995/02/15}{Option \texttt{12h} added.}
+% \changes{v1.2}{2010/03/10}{Option uses \textsf{scrkbase}.}
+% \begin{option}{24h}
+% \changes{v1.1b}{1995/02/15}{Option \texttt{24h} added.}
+% \changes{v1.2}{2010/03/10}{Option is deprecated.}
+% \begin{macro}{\if@Hxii}
+% \changes{v1.1b}{1995/02/15}{new switch}
+% There are two the two Options |24h| and |12h|. We need a switch to
+% distinguish.
+% \begin{macrocode}
+\newif\if@Hxii
+% \end{macrocode}
+% \end{macro}
+%
+% So the Options are simple.
+% \begin{macrocode}
+\KOMA@ifkey{12h}{@Hxii}
+\KOMA@DeclareDeprecatedOption[scrtime]{24h}{12h=false}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% Currently only \textsf{scrtime} uses options, so only \textsf{scrtime} needs
+% to process them.
+% \begin{macrocode}
+\KOMAProcessOptions\relax
+% \end{macrocode}
+%
+% \iffalse
+%</scrtime>
+%</option>
+% \fi
+%
+% \subsection{Macros}
+%
+% \iffalse
+%<*body>
+% \fi
+%
+% \subsubsection{Macros of \textsf{scrtime}}
+% \iffalse
+%<*scrtime>
+% \fi
+% We use |\@tempcnta| and |\@tempcntb| but we know, that this is not
+% a very good idea.
+%
+% \begin{macro}{\thistime}
+% \changes{v1.1b}{1995/02/15}{{\cmd\thistime*} added.}^^A
+% \changes{v1.1b}{1995/02/15}{{\cmd\thistime} works.}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% First we have to decide, is it a star-version ore not.
+% \begin{macrocode}
+\def\thistime{%
+ \kernel@ifstar
+ {\let\@tempif\iffalse\@thistime}
+ {\let\@tempif\iftrue\@thistime}}
+% \end{macrocode}
+% Know we have to calculate the hours and minutes. |\@tempcnta| are the
+% hours and |\@tempcntb| are the minutes.
+% \begin{macrocode}
+\newcommand*{\@thistime}[1][:]{%
+ \begingroup
+ \@tempcnta\time\divide\@tempcnta60\multiply\@tempcnta60
+ \@tempcntb\time\advance\@tempcntb-\@tempcnta
+ \divide\@tempcnta60
+% \end{macrocode}
+% If we use 12h-mode, we have to cut the houres.
+% \changes{v1.1d}{1996/01/14}{Space added at \cs{@thistime} between -12
+% and \cs{fi} (Martin Schroeder).}
+% \begin{macrocode}
+ \if@Hxii\ifnum\@tempcnta>12 \advance\@tempcnta-12 \fi\fi
+% \end{macrocode}
+% Know we have to compose the value. If the minutes are less than 10
+% maybe there has to be an additional 0.
+% \begin{macrocode}
+ \the\@tempcnta{#1}\@tempif\ifnum\@tempcntb<10 0\fi\fi\the\@tempcntb%
+ \endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\settime}
+% \changes{v1.1b}{1995/02/15}{{\cmd\settime} redefines {\cmd\@thistime}}
+% \changes{v1.1c}{1995/05/24}{missing macrocode-environment inserted}
+% We simply have to set |\thistime|.
+% \begin{macrocode}
+\newcommand*{\settime}[1]{\renewcommand*{\@thistime}[1][]{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \iffalse
+%</scrtime>
+% \fi
+%
+%
+% \subsubsection{Macros of \textsf{scrdate}}
+%
+% \iffalse
+%<*scrdate>
+% \fi
+%
+% \changes{v1.1a}{1995/02/12}{Changed simply all but the user-interface.}
+% \changes{v3.05a}{2010/03/10}{Changed simply everything.}
+% Since version~3.05a \textsf{scrdate} was rewritten. First step was to make
+% more macros full expandable to provide \cs{MakeUppercase} and
+% \cs{MakeLowercase}. Second was to extend the user interface by some new
+% functionality.
+%
+% \begin{macro}{\CenturyPart}
+% \changes{v3.05a}{2010/03/10}{New}
+% This is the century part of a year number and so only a shortcut to
+% |\XdivY{...}{100}|, that is defined at \textsf{scrbase}.
+% \begin{macrocode}
+\newcommand*{\CenturyPart}[1]{\XdivY{#1}{100}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DecadePart}
+% \changes{v3.05a}{2010/03/10}{New}
+% This is the year number withoud the century part and therefrso only a
+% shortcut to |\XmodY{...}{100}|, that is defined at \textsf{scrbase}.
+% \begin{macrocode}
+\newcommand*{\DecadePart}[1]{\XmodY{#1}{100}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@GaussYear}
+% \changes{v3.05a}{2010/03/10}{New (internal)}
+% At the Gauss calculation of the day of the week January and February relates
+% to the year before. This macro does the correction for any date.
+% \begin{macrocode}
+\newcommand*{\@GaussYear}[3]{%
+ \ifcase #2
+ \PackageError{scrdate}{month out of range}{%
+ You've asked for the Gauss year of ISO date #1-#2-#3,\MessageBreak
+ this means, that month hat invalid value '#2'.}%
+ \or
+ \numexpr #1 - 1\relax
+ \or
+ \numexpr #1 - 1\relax
+ \else
+ #1
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DayNumber}
+% \changes{v3.05a}{2010/03/10}{New}
+% Returns the numerical value of the day of week. Note, that Sunday is 0,
+% Monday is 1, \dots, Saturday is 6. We use the Gauss calculation of the day
+% of the week. First argument is the year, second the month and last the day
+% of the month.
+% \begin{macrocode}
+\newcommand*{\DayNumber}[3]{%
+ \XmodY{%
+ \numexpr #3
+ + \ifcase #2
+ \PackageError{scrdate}{month out of range}{%
+ You've asked for the dayname of ISO date #1-#2-#3,\MessageBreak
+ this means, that month hat invalid value '#2'.}%
+ \or 28 \or 31 \or 2 \or 5 \or 7 \or 10 \or 12 \or 15 \or 18
+ \or 20 \or 23 \or 25
+ \else
+ \PackageError{scrdate}{month out of range}{%
+ You've asked for the dayname of ISO date #1-#2-#3,\MessageBreak
+ this means, that month hat invalid value '#2'.}%
+ \fi
+ + \DecadePart{\@GaussYear{#1}{#2}{#3}}
+ + \XdivY{\DecadePart{\@GaussYear{#1}{#2}{#3}}}{4}
+ + \XdivY{\CenturyPart{\@GaussYear{#1}{#2}{#3}}}{4}
+ - 2 * \CenturyPart{\@GaussYear{#1}{#2}{#3}} \relax
+ }{7}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ISODayNumber}
+% \changes{v3.05a}{2010/03/10}{New}
+% Das gleiche wie \cs{DayNumber} aber mit einem ISO-Datum als Argument.
+% \begin{macrocode}
+\newcommand*{\ISODayNumber}[1]{\expandafter\@IsoDayNumber#1\@nil}
+% \end{macrocode}
+% \begin{macro}{\@IsoDayNumber}
+% \changes{v3.05a}{2010/03/10}{New (internal)}
+% \begin{macrocode}
+\newcommand*{\@IsoDayNumber}{}
+\def\@IsoDayNumber#1-#2-#3\@nil{\DayNumber{#1}{#2}{#3}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\DayName}
+% \changes{v3.05a}{2010/03/10}{New}
+% Returns the name of the day of the week. Arguments like \cs{DayNumber}.
+% \begin{macrocode}
+\newcommand*{\DayName}[3]{\@dayname{\DayNumber{#1}{#2}{#3}}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ISODayName}
+% \changes{v3.05a}{2010/03/10}{New}
+% Das gleiche wie \cs{DayName} aber mit einem ISO-Datum als Argument.
+% \begin{macrocode}
+\newcommand*{\ISODayName}[1]{\@dayname{\ISODayNumber{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DayNameByNumber}
+% \changes{v3.05a}{2010/03/10}{New}
+% Returns the name of the day of the week. The argument is a number that will
+% be transposed to the range 0..6.
+% \begin{macrocode}
+\newcommand*{\DayNameByNumber}[1]{%
+ \@dayname{\XmodY{#1}{7}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ISOToday}
+% \changes{v3.05a}{2010/03/10}{New}
+% Returns the ISO date.
+% \begin{macrocode}
+\newcommand*{\ISOToday}{%
+ \the\year-\ifnum \month<10 0\fi\the\month-\ifnum \day<10 0\fi\the\day%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IsoToday}
+% \changes{v3.05a}{2010/03/10}{New}
+% Returns the ISO date.
+% \begin{macrocode}
+\newcommand*{\IsoToday}{%
+ \the\year-\the\month-\the\day%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\todaysname}
+% \changes{v3.05a}{2010/03/10}{Rewritten}
+% Using \cs{DayName} this is very, very simple.
+% \begin{macrocode}
+\newcommand*{\todaysname}{\DayName{\year}{\month}{\day}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\todaysnumber}
+% \changes{v3.05a}{2010/03/11}{New}
+% Using \cs{DayNumber} this is very, very simple.
+% \begin{macrocode}
+\newcommand*{\todaysnumber}{\DayNumber{\year}{\month}{\day}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\nameday}
+% \changes{v3.05a}{2010/03/10}{Not longer \cs{long}}
+% We simply have to redefine |\todaysname|
+% \begin{macrocode}
+\newcommand\nameday[1]{\renewcommand*{\todaysname}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newdaylanguage}
+% \changes{v3.05a}{2010/03/10}{Sunday is 0}
+% We write a macro to define the name of the days.
+% \begin{macro}{\scrdate@languagenamewarning}
+% But before this, we have to define a once only warning.
+% \begin{macrocode}
+\newcommand*\scrdate@languagenamewarning{%
+ \PackageWarningNoLine{scrdate}
+ {\string\languagename\space not
+ defined, using \string\language.\MessageBreak
+ This may result in use of wrong language!\MessageBreak
+ You should use a compatible language
+ package\MessageBreak
+ (e.g. `babel', `german', `french', ...)}%
+ \let\scrdate@languagenamewarning\relax
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\newcommand\newdaylanguage[8]{%
+% \end{macrocode}
+% First we check, if the language is defined at the format, the user uses.
+% If it is not defined, we do not define the name of the days and warn.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{l@#1}{%
+ \PackageInfoNoLine{scrdate}{Language #1\space not defined.\MessageBreak
+ \protect\dayname@#1\space skipped}%
+% \end{macrocode}
+% \changes{v1.1c}{1995/05/24}{missing \cs{end\{macrocode\}} added.}
+% If it is defined, we define the name-selection-macro
+% |\dayname@|\emph{language}.
+% First we define the new macro |\dayname@|\emph{language}:
+% \changes{v3.05a}{2010/03/10}{Group removed.}
+% \changes{v3.15}{2014/12/11}{more robust \cs{ifcase}}
+% \begin{macrocode}
+ }{%
+ \@namedef{dayname@#1}##1{%
+ \ifcase\numexpr \XmodY{##1}{7}\relax
+ #8\or #2\or #3\or #4\or #5\or #6\or #7\fi%
+ }%
+% \end{macrocode}
+% Then we define, what to do at |\begin{document}|:
+% \begin{macrocode}
+ \AtBeginDocument{%
+% \end{macrocode}
+% There we first have to test, if |\date|\emph{language} is defined
+% (e.g. using |german.sty|). If not, we have to warn once more.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{date#1}{%
+ \PackageInfoNoLine{scrdate}
+ {\protect\date#1\space not defined.\MessageBreak
+ \protect\todaysname\space probably cannot use
+ \protect\dayname@#1}%
+% \end{macrocode}
+% But if it is defined, we can use it
+% \begin{macrocode}
+ }{%
+% \end{macrocode}
+% There we first save |\date|\emph{language} as |\D@date|\emph{language}.
+% This is a bit tricky, but I think, you'll understand it.
+% \begin{macrocode}
+ \expandafter\let\csname D@date#1\expandafter\endcsname
+ \csname date#1\endcsname
+% \end{macrocode}
+% Now we redefine |\date|\emph{language}. It first defines |\@dayname| and
+% then calls saved macro. If you've understand the definition before, you'll
+% understand this tricky one, too.
+% \begin{macrocode}
+ \@namedef{date#1}{%
+ \expandafter\let\expandafter\@dayname\csname dayname@#1\endcsname
+ \@nameuse{D@date#1}}%
+% \end{macrocode}
+% Last we have to select this new |\date|\emph{language}.
+% \changes{v1.1j}{2000/01/20}{use of \cs{languagename} if defined}
+% \changes{v3.08b}{2011/03/31}{one \% added}
+% \begin{macrocode}
+ \@ifundefined{languagename}{%
+ \scrdate@languagenamewarning
+ \ifnum\language=\@nameuse{l@#1}
+ \@nameuse{date#1}%
+ \fi
+ }{%
+ \@ifundefined{date\languagename}%
+ {}%
+ {\@nameuse{date\languagename}}%
+ }%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@dayname}
+% This should be named selecting the language. Since I changed the definitions
+% |german.sty| and equal may be loaded before or after |scrdate.sty| or not.
+%
+% First we define the usual languages using |\newdaylanguage|:
+% \begin{macro}{\dayname@german}
+% \begin{macrocode}
+\newdaylanguage{german}{Montag}{Dienstag}{Mittwoch}
+ {Donnerstag}{Freitag}{Samstag}{Sonntag}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@ngerman}
+% \changes{v1.1i}{1999/10/09}{new language ``ngerman''.}
+% \begin{macrocode}
+\newdaylanguage{ngerman}{Montag}{Dienstag}{Mittwoch}
+ {Donnerstag}{Freitag}{Samstag}{Sonntag}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@naustrian}
+% \changes{v3.08b}{2011/02/22}{new language ``naustrian''.}
+% \begin{macrocode}
+\newdaylanguage{naustrian}{Montag}{Dienstag}{Mittwoch}
+ {Donnerstag}{Freitag}{Samstag}{Sonntag}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@austrian}
+% \changes{v3.08b}{2011/02/22}{new language ``austrian''.}
+% \begin{macrocode}
+\newdaylanguage{austrian}{Montag}{Dienstag}{Mittwoch}
+ {Donnerstag}{Freitag}{Samstag}{Sonntag}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@swissgerman}
+% \changes{v3.13}{2014/01/23}{new language ``swissgerman''.}
+% \begin{macrocode}
+\newdaylanguage{swissgerman}{Montag}{Dienstag}{Mittwoch}
+ {Donnerstag}{Freitag}{Samstag}{Sonntag}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@nswissgerman}
+% \changes{v3.13}{2014/01/23}{new language ``nswissgerman''.}
+% \begin{macrocode}
+\newdaylanguage{nswissgerman}{Montag}{Dienstag}{Mittwoch}
+ {Donnerstag}{Freitag}{Samstag}{Sonntag}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dayname@american}
+% \changes{v3.13}{2014/01/23}{new language ``american''.}
+% \begin{macrocode}
+\newdaylanguage{american}{Monday}{Tuesday}{Wednesday}
+ {Thursday}{Friday}{Saturday}{Sunday}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@australian}
+% \changes{v3.13}{2014/01/23}{new language ``australian''.}
+% \begin{macrocode}
+\newdaylanguage{australian}{Monday}{Tuesday}{Wednesday}
+ {Thursday}{Friday}{Saturday}{Sunday}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@british}
+% \changes{v3.13}{2014/01/23}{new language ``british''.}
+% \begin{macrocode}
+\newdaylanguage{british}{Monday}{Tuesday}{Wednesday}
+ {Thursday}{Friday}{Saturday}{Sunday}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@canadian}
+% \changes{v3.13}{2014/01/23}{new language ``canadian''.}
+% \begin{macrocode}
+\newdaylanguage{canadian}{Monday}{Tuesday}{Wednesday}
+ {Thursday}{Friday}{Saturday}{Sunday}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@english}
+% \changes{v1.1g}{1997/06/21}{correct name is ``tuesday''.}
+% \begin{macrocode}
+\newdaylanguage{english}{Monday}{Tuesday}{Wednesday}
+ {Thursday}{Friday}{Saturday}{Sunday}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@newzealand}
+% \changes{v3.13}{2014/01/23}{new language ``newzealand''.}
+% \begin{macrocode}
+\newdaylanguage{newzealand}{Monday}{Tuesday}{Wednesday}
+ {Thursday}{Friday}{Saturday}{Sunday}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@UKenglish}
+% \changes{v3.13}{2014/01/23}{new language ``UKenglish''.}
+% \begin{macrocode}
+\newdaylanguage{UKenglish}{Monday}{Tuesday}{Wednesday}
+ {Thursday}{Friday}{Saturday}{Sunday}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@ukenglish}
+% \changes{v3.24}{2017/05/29}{new language ``ukenglish''.}
+% \begin{macrocode}
+\newdaylanguage{ukenglish}{Monday}{Tuesday}{Wednesday}
+ {Thursday}{Friday}{Saturday}{Sunday}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@USenglish}
+% \changes{v1.1g}{1997/06/21}{correct name is ``tuesday''.}
+% \begin{macrocode}
+\newdaylanguage{USenglish}{Monday}{Tuesday}{Wednesday}
+ {Thursday}{Friday}{Saturday}{Sunday}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@usenglish}
+% \changes{v3.24}{2017/05/29}{new language ``usenglish''.}
+% \begin{macrocode}
+\newdaylanguage{usenglish}{Monday}{Tuesday}{Wednesday}
+ {Thursday}{Friday}{Saturday}{Sunday}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dayname@acadian}
+% \changes{v3.13}{2014/01/23}{new language ``acadian''.}
+% \begin{macrocode}
+\newdaylanguage{acadian}{Lundi}{Mardi}{Mercredi}
+ {Jeudi}{Vendredi}{Samedi}{Dimanche}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@canadien}
+% \changes{v3.13}{2014/01/23}{new language ``canadien''.}
+% \begin{macrocode}
+\newdaylanguage{canadien}{Lundi}{Mardi}{Mercredi}
+ {Jeudi}{Vendredi}{Samedi}{Dimanche}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@francais}
+% \changes{v3.13}{2014/01/23}{new language ``francais''.}
+% \begin{macrocode}
+\newdaylanguage{francais}{Lundi}{Mardi}{Mercredi}
+ {Jeudi}{Vendredi}{Samedi}{Dimanche}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@french}
+% \begin{macrocode}
+\newdaylanguage{french}{Lundi}{Mardi}{Mercredi}
+ {Jeudi}{Vendredi}{Samedi}{Dimanche}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@italian}
+% \changes{v1.1f}{1997/06/06}{New (thanks to Lorenzo M.\ Catucci)}
+% \begin{macrocode}
+\newdaylanguage{italian}{Luned\`\i}{Marted\`\i}{Mercoled\`\i}
+ {Gioved\`\i}{Venerd\`\i}{Sabato}{Domenica}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@spanish}
+% \changes{v1.1h}{1997/07/26}{New (thanks to Ralph J.\ Hangleiter)}
+% \begin{macrocode}
+\newdaylanguage{spanish}{Lunes}{Martes}{Mi\'ercoles}
+ {Jueves}{Viernes}{S\'abado}{Domingo}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@croatian}
+% \changes{v1.1l}{2001/10/05}{New (thanks to Branka Lon\v{c}arevi\'{c})}
+% \begin{macrocode}
+\newdaylanguage{croatian}{Ponedjeljak}{Utorak}{Srijeda}
+ {\v{C}etvrtak}{Petak}{Subota}{Nedjelja}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dayname@dutch}
+% \changes{v1.1m}{2002/02/02}{New (thanks to Henk Jongbloets)}
+% \changes{v1.1p}{2009/01/01}{fixed to upper case}
+% \begin{macrocode}
+\newdaylanguage{dutch}{Maandag}{Dinsdag}{Woensdag}
+ {Donderdag}{Vrijdag}{Zaterdag}{Zondag}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dayname@finnish}
+% \changes{v1.1n}{2005/02/07}{New (thanks to Hannu V\"ais\"anen)}
+% \begin{macrocode}
+\newdaylanguage{finnish}{Maanantai}{Tiistai}{Keskiviikko}
+ {Torstai}{Perjantai}{Lauantai}{Sunnuntai}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dayname@norsk}
+% \changes{v1.1p}{2009/01/01}{New (thank to Sveinung Heggen)}
+% \begin{macrocode}
+\newdaylanguage{norsk}{Mandag}{Tirsdag}{Onsdag}
+ {Torsdag}{Fredag}{L\o{}rdag}{S\o{}ndag}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dayname@danish}
+% \changes{v3.08}{2011/01/18}{New (thanks to Benjamin Hell)}
+% \begin{macrocode}
+\newdaylanguage{danish}{Mandag}{Tirsdag}{Onsdag}
+ {Torsdag}{Fredag}{L\o{}rdag}{S\o{}ndag}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dayname@swedish}
+% \changes{v3.08}{2011/01/18}{New (thanks to Benjamin Hell)}
+% \begin{macrocode}
+\newdaylanguage{swedish}{M\aa{}ndag}{Tisdag}{Onsdag}
+ {Torsdag}{Fredag}{L\"ordag}{S\"ondag}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dayname@polish}
+% \changes{v3.13}{2014/01/07}{New (thanks to Blandyna Bogdol)}
+% \changes{v3.13}{2014/01/23}{Fixed (thanks to Elke Schubert)}
+% \begin{macrocode}
+\newdaylanguage{polish}{Poniedzia\l{}ek}{Wtorek}{\'Sroda}
+ {Czwartek}{Pi\aob{}tek}{Sobota}{Niedziela}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dayname@czech}
+% \changes{v3.13}{2014/01/23}{New (thanks to Elke Schubert)}
+% \begin{macrocode}
+\newdaylanguage{czech}{Pond\v{e}l\'\i}{\'Uter\'y}{St\v{r}eda}
+ {\v{C}tvrtek}{P\'atek}{Sobota}{Ned\v{e}le}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dayname@slovak}
+% \changes{v3.13}{2014/02/26}{New (thanks to Elke Schubert)}
+% \begin{macrocode}
+\newdaylanguage{slovak}{Pondelok}{Utorok}{Streda}
+ {\v{S}tvrtok}{Piatok}{Sobota}{Nede\v{l}a}
+% \end{macrocode}
+% \end{macro}
+%
+% If there are no language-definitions, we simply want the US-english names
+% of the days.
+% \changes{v1.1g}{1997/06/21}{correct name is ``tuesday''.}
+% \changes{v3.15}{2014/12/11}{default language definition fixed.}
+% \begin{macrocode}
+\let\@dayname\dayname@english
+% \end{macrocode}
+% \end{macro}
+%
+% Last but not least file \texttt{scrdate.cfg} has to be included,
+% if it exists.
+% \begin{macrocode}
+\InputIfFileExists{scrdate.cfg}
+ {\typeout{*************************************^^J%
+ * Local config file scrdate.cfg used^^J%
+ *************************************}}
+ {}
+% \end{macrocode}
+%
+% \iffalse
+%</scrdate>
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% Ende der Datei `scrtime.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/scrwfile.dtx b/macros/latex/contrib/koma-script/source/scrwfile.dtx
new file mode 100644
index 0000000000..453d708d8e
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/scrwfile.dtx
@@ -0,0 +1,515 @@
+% \CheckSum{306}
+% \iffalse meta-comment
+% ======================================================================
+% scrwfile.dtx
+% Copyright (c) Markus Kohm, 2010-2014
+%
+% 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.
+%
+% The KOMA-Script bundle consists of all files listed in manifest.txt.
+% The work `scrwfile' consists of the files `scrwfile.dtx' and
+% `scrlogo.dtx'.
+%
+% If you're missing the installation batch file `scrwfile.ins', try
+% tex scrwfile.dtx
+% to unpack all files.
+% The package documentation may be produced repeating
+% latex scrwfile.dtx
+% at least three times.
+% ----------------------------------------------------------------------
+% scrwfile.dtx
+% Copyright (c) Markus Kohm, 2010-2014
+%
+% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets.
+%
+% 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.
+%
+% Das KOMA-Script-Paket besteht aus allen Dateien, die in manifest.txt
+% genannt sind.
+% Das Werk `scrwfile' besteht aus den Dateien `scrwfile.dtx' und
+% `scrlogo.dtx'.
+%
+% Falls Sie die Installations-Batch-Datei `scrwfile.ins' vermissen,
+% probieren Sie einfach einmal
+% tex scrwfile.dtx
+% um alle Dateien auszupacken. Zur englischen Anleitung siehe den
+% englischen Kommentar oben.
+% ======================================================================
+% \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: scrwfile.dtx 1805 2014-10-13 08:55:20Z kohm $
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{scrwfile.dtx}
+%</dtx>
+%<(package&identify)|driver>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<package&identify>\ProvidesPackage{scrwfile}
+%<driver>\ProvidesFile{scrwfile.drv}
+%<*dtx|(package&identify)|driver>
+ [2013/08/05 v0.1f-alpha KOMA-Script package (write and clone files)]
+%</dtx|(package&identify)|driver>
+%<*dtx>
+\ifx\documentclass\undefined
+ \input scrdocstrip.tex
+ \@@input scrstrip.inc
+ \KOMAdefVariable{COPYRIGHTFROM}{2010}
+
+ \generate{\usepreamble\defaultpreamble
+ \file{scrwfile.sty}{%
+ \from{scrwfile.dtx}{package,trace,scrwfile,identify,option,body}%
+ \from{scrlogo.dtx}{logo}%
+ }%
+ }
+
+ \@@input scrstrop.inc
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+%</dtx>
+%<*driver>
+ \documentclass{scrdoc}
+ \usepackage[ngerman,english]{babel}
+ \usepackage{listings}
+ \lstnewenvironment{lstcode}[1][]{%
+ \lstset{language=[LaTeX]TeX,basicstyle=\ttfamily\small,#1}%
+ }{}
+
+ \CodelineIndex
+ \RecordChanges
+ \GetFileInfo{scrwfile.dtx}
+ \title{The \KOMAScript{} package \texttt{scrwfile}%
+ \footnote{This is version \fileversion\ of file \texttt{\filename}.}}
+ \date{\filedate}
+ \author{Markus Kohm}
+
+ \newenvironment{Explain}{\par}{\par}
+ \let\Macro\cs
+ \let\Package\textsf
+ \let\File\texttt
+ \let\Option\texttt
+ \let\Counter\texttt
+ \let\ShowOutput\quote
+ \let\endShowOutput\endquote
+ \let\Parameter\marg
+ \let\OParameter\oarg
+ \providecommand\PParameter[1]{\mbox{\texttt{\{#1\}}}}
+ \let\PName\meta
+ \let\PValue\texttt
+ \providecommand*{\important}[1]{}
+ \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][]{}
+ \makeatother
+
+ \begin{document}
+ \maketitle
+ \DocInput{\filename}
+ \end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{english}
+%
+% \changes{v0.1}{2010/10/01}{start of new package}
+% \changes{v0.1g}{2014/10/13}{manual moved to \KOMAScript{} manual}
+%
+% \StopEventually{%
+% \clearpage
+% \PrintIndex\PrintChanges}
+%
+%
+% \section{Implementation of \Package{scrwfile}}
+%
+% \iffalse
+%<*package>
+%<*identify>
+% \fi
+%
+% \begin{macrocode}
+\PackageWarningNoLine{scrwfile}{%
+ THIS IS AN ALPHA VERSION!\MessageBreak
+ USAGE OF THIS VERSION IS ON YOUR OWN RISK!\MessageBreak
+ EVERYTHING MAY HAPPEN!\MessageBreak
+ EVERYTHING MAY CHANGE IN FUTURE!\MessageBreak
+ THERE IS NO SUPPORT, IF YOU USE THIS PACKAGE!\MessageBreak
+ Maybe, it would be better not to load this package.%
+}
+% \end{macrocode}
+%\iffalse
+%</identify>
+%\fi
+%
+% \subsection{Options}
+% \iffalse
+%<*option>
+% \fi
+%
+% Currently we don't need options.
+%
+% \iffalse
+%</option>
+% \fi
+%
+% \subsection{Body}
+% \iffalse
+%<*body>
+% \fi
+%
+% \subsubsection{Needed Packages}
+%
+% Package \textsf{scrbase} is needed, because of using several \KOMAScript{}
+% basic commands.
+% \begin{macrocode}
+\RequirePackage{scrbase}[2010/09/17]
+% \end{macrocode}
+%
+% Package \textsf{tocbasic} is needed for the lists of cloned TOCs.
+% \begin{macrocode}
+\RequirePackage{tocbasic}[2010/10/01]
+% \end{macrocode}
+%
+% Package \textsf{scrlfile} is needed because of the \texttt{aux} file
+% handling and \verb|\protected@immediate@write|.
+% \begin{macrocode}
+\RequirePackage{scrlfile}[2010/09/30]
+% \end{macrocode}
+%
+% \subsubsection{\LaTeX{} Kernel Patchs}
+%
+% For some features we need to patch \LaTeX{} kernel macros. Those features
+% and macros are:
+% \begin{description}
+% \item[Single handle feature] means, that \LaTeX{} will no longer need a file
+% handle for every help file, but only one for all files. We will patch
+% |\@starttoc| and |\@writefile| to do so.
+% \item[Clone file feature] means, that every write to one file may be done to
+% another file, too. We will patch |\@writefile| to do so.
+% \end{description}
+% Every patch should be minimum invasive, so that files, that are not under
+% \textsf{scrwfile}'s control are changed as little as possible.
+%
+% \begin{macro}{\scrwfile@if@only}
+% First of all we check, if the file should be handled by \textsf{scrwfile}.
+% \begin{macrocode}
+\newcommand*{\scrwfile@if@only}[1]{%
+ \begingroup
+ \scr@ifundefinedorrelax{scrwfile@only}{\@tempswatrue}{%
+ \@tempswafalse
+ \edef\reserved@b{#1}%
+ \@for\reserved@a:=\scrwfile@only\do
+ {\ifx\reserved@a\reserved@b\@tempswatrue\fi}%
+ }%
+ \if@tempswa
+ \scr@ifundefinedorrelax{scrwfile@never}{}{%
+ \edef\reserved@b{#1}%
+ \@for\reserved@a:=\scrwfile@only\do
+ {\ifx\reserved@a\reserved@b\@tempswafalse\fi}%
+ }%
+ \fi
+ \expandafter\endgroup
+ \if@tempswa
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scrwfile@starttoc}
+% \begin{macro}{\scrwfile@@starttoc}
+% This is the internal redefinition of |\@starttoc|. First of all test, if it
+% should be used, then use it or not.
+% \begin{macrocode}
+\newcommand*{\scrwfile@starttoc}[1]{%
+ \scrwfile@if@only{#1}{\scrwfile@@starttoc}{\scrwfile@saved@starttoc}{#1}%
+}
+\newcommand*{\scrwfile@@starttoc}[1]{%
+%<trace> \typeout{Use my own \string\@starttoc\space for #1}%
+ \begingroup
+ \if@filesw
+ \xdef\scrwfile@writefilelist{\scrwfile@writefilelist,#1}%
+ \fi
+ \@fileswfalse
+ \scrwfile@saved@starttoc{#1}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scrwfile@writefile}
+% \begin{macro}{\scrwfile@@writefile}
+% \begin{macro}{\scrwfile@wrtout}
+% \begin{macro}{\scrwfile@writefilelist}
+% This is the internal redefinition of |\@writefile|. First of all test, if it
+% should be used, then use it or not.
+% \begin{macrocode}
+\newcommand*{\scrwfile@writefile}[1]{%
+ \scrwfile@if@only{#1}{\scrwfile@@writefile}{\scrwfile@saved@writefile}{#1}%
+}
+\newcommand{\scrwfile@@writefile}[2]{%
+%<trace> \typeout{Use my own \string\@writefile\space for #1}%
+ \ifnum\scrwfile@wrtout>0
+ \begingroup
+ \@temptokena{#2}%
+ \immediate\write\scrwfile@wrtout{%
+ \string\@writefile{#1}{\the\@temptokena}%
+ }%
+% \end{macrocode}
+% This was the entry for the real file. But we also may have clone files:
+% \begin{macrocode}
+ \scrwfile@process@clones{#1}%
+ \endgroup
+ \fi
+}
+\chardef\scrwfile@wrtout\z@
+\newcommand*{\scrwfile@writefilelist}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@writefile}
+% We have to add the single handle feature and the clone file feature to this.
+% \begin{macro}{\scrwfile@saved@writefile}
+% This is the original definition, that will be used, if the file is not under
+% \texttt{scrwfile}'s control.
+% \begin{macrocode}
+\newcommand*{\scrwfile@saved@writefile}{}
+\BeforeClosingMainAux{%
+ \ifx\scrwfile@writefilelist\@empty\else
+ \let\scrwfile@saved@writefile\@writefile
+ \let\scrwfile@wrtout\@partaux
+ \immediate\openout\scrwfile@wrtout \jobname.wrt
+ \let\@writefile\scrwfile@writefile
+ \fi
+}
+\AfterReadingMainAux{%
+ \ifx\scrwfile@writefilelist\@empty\else
+ \immediate\closeout\scrwfile@wrtout
+ \chardef\scrwfile@wrtout\z@
+ \begingroup
+ \let\@writefile\scrwfile@saved@writefile
+ \@for\@currext:=\scrwfile@writefilelist\do{%
+ \begingroup
+ \ifx\@currext\@empty\else
+ \scr@ifundefinedorrelax{tf@\@currext}{%
+%<trace> \typeout{Process extension: `\@currext'}
+ \immediate\openout\@partaux \jobname.\@currext
+ \expandafter\let\csname tf@\@currext\endcsname\@partaux
+ \@input@{\jobname.wrt}%
+ \immediate\closeout\@partaux
+ }{}%
+ \fi
+ \endgroup
+ }%
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \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. 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}{}
+\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}
+%
+%
+% \subsubsection{Clone TOC Feature}
+%
+% \textsf{scrwfile} may clone a TOC, that means, every entry to one file will
+% be copied to other files, too. You must not clone recursively!
+%
+% \begin{macro}{\scrwfile@process@clones}
+% \begin{macrocode}
+\newcommand*{\scrwfile@process@clones}[1]{%
+ \scr@ifundefinedorrelax{scrwfile@clone@#1}{}{%
+ \begingroup
+ \let\@@protect\protect\let\protect\@empty\afterassignment\restore@protect
+ \edef\reserved@b{\csname scrwfile@clone@#1\endcsname}%
+ \edef\reserved@c{,#1}%
+ \@for \reserved@a:=\reserved@b\do {%
+ \@tempswatrue
+ \@for \reserved@d:=\reserved@c\do {%
+ \ifx\reserved@d\reserved@a\@tempswafalse\fi
+ }%
+ \if@tempswa
+%<trace> \typeout{clone entry from `#1' to `\reserved@a'}%
+ \immediate\write\scrwfile@wrtout{%
+ \string\@writefile{\reserved@a}{\the\@temptokena}%
+ }%
+ \edef\reserved@c{\reserved@c,\reserved@a}%
+ \fi
+ }%
+ \endgroup
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TOCclone}
+% Clone the entries from the second (first mandatory) argument TOC to the
+% third (second mandatory) argument TOC. If the first (optional) argument was
+% given, define |\listof#3name| to this and also define |\listof#3| and clone
+% the toc features \texttt{leveldown}, \texttt{numbered}, \texttt{onecolumn}
+% and \texttt{totoc} of |#2| to |#3|. The toc feature \texttt{nobabel} will
+% always be set, because the babel entries at TOC |#3| will be cloned from TOC
+% |#2|. \textbf{Note:} We use owner \texttt{TOCclone} for all cloned
+% extensions.
+% \begin{macrocode}
+\newcommand*{\TOCclone}[3][]{%
+ \scr@ifundefinedorrelax{scrwfile@clone@#2}{%
+ \expandafter\protected@edef\csname scrwfile@clone@#2\endcsname{%
+ #3,\protect\csname scrwfile@clone@#3\endcsname
+ }%
+ }{%
+ \edef\reserved@b{\csname scrwfile@clone@#2\endcsname}%
+ \expandafter\protected@edef\csname scrwfile@clone@#2\endcsname{%
+ \csname scrwfile@clone@#2\endcsname,%
+ #3,%
+ \protect\csname scrwfile@clone@#3\endcsname
+ }%
+ }%
+ \scr@ifundefinedorrelax{scrwfile@clone@#3}{%
+ \expandafter\let\csname scrwfile@clone@#3\endcsname\@empty
+ }{}%
+ \ifattoclist{#3}{%
+ \PackageWarning{scrwfile}{`#3' already under control of
+ tocbasic.\MessageBreak
+ Nevertheless features will be set
+ }%
+ }{%
+ \addtotoclist[TOCclone]{#3}%
+ }%
+ \setuptoc{#3}{nobabel}%
+ \ifstr{#1}{}{%
+ }{%
+ \@namedef{listof#3name}{#1}%
+ \@namedef{listof#3}{\listoftoc{#3}}%
+ \iftocfeature{#2}{leveldown}{\setuptoc{#3}{leveldown}}{}%
+ \iftocfeature{#2}{numbered}{\setuptoc{#3}{numbered}}{}%
+ \iftocfeature{#2}{onecolumn}{\setuptoc{#3}{leveldownonecolumn}}{}%
+ \iftocfeature{#2}{totoc}{\setuptoc{#3}{totoc}}{}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</body>
+%</package>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrwfile.dtx'
+
+%%% Local Variables:
+%%% mode: doctex
+%%% mode: flyspell
+%%% ispell-local-dictionary: "english"
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/tocbasic.dtx b/macros/latex/contrib/koma-script/source/tocbasic.dtx
new file mode 100644
index 0000000000..aa133bb834
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/tocbasic.dtx
@@ -0,0 +1,1961 @@
+% \CheckSum{1592}
+% \iffalse meta-comment
+% ======================================================================
+% tocbasic.dtx
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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.
+% ----------------------------------------------------------------------
+% tocbasic.dtx
+% Copyright (c) Markus Kohm, 2008-2018
+%
+% 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: tocbasic.dtx 3050 2018-12-30 14:36:55Z kohm $
+%<identify>%%% (run: identify)
+%<prepare>%%% (run: prepare)
+%<option>%%% (run: option)
+%<execoption>%%% (run: execoption)
+%<body>%%% (run: body)
+%<exit>%%% (run: exit)
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2018-12-30 15:36:55 +0100 (Sun, 30 Dec 2018) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 1962 $
+\endgroup
+\ProvidesFile{tocbasic.dtx}[\filedate\space\filerevision\space
+%</dtx>
+%<package&identify>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+%<package&identify>\ProvidesPackage{tocbasic}[%
+%<*dtx|(package&identify)>
+%!KOMAScriptVersion
+ package
+%<*dtx>
+ source
+%</dtx>
+%</dtx|(package&identify)>
+%<package&identify> (handling toc-files)%
+%<*dtx>
+ (dtx)%
+%</dtx>
+%<*dtx|(package&identify)>
+]
+%</dtx|(package&identify)>
+%<*dtx>
+\ifx\documentclass\undefined
+ \input scrdocstrip.tex
+ \@@input scrkernel-version.dtx
+ \@@input scrstrip.inc
+ \KOMAdefVariable{COPYRIGHTFROM}{2008}
+ \generate{\usepreamble\defaultpreamble
+ \file{tocbasic.sty}{%
+ \from{tocbasic.dtx}{package,identify}%
+ \from{tocbasic.dtx}{package,prepare}%
+ \from{scrkernel-tocstyle.dtx}{package,prepare}%
+ \from{tocbasic.dtx}{package,option}%
+ \from{scrkernel-tocstyle.dtx}{package,option}%
+ \from{tocbasic.dtx}{package,body}%
+ \from{scrkernel-tocstyle.dtx}{package,body}%
+ \from{scrkernel-tocstyle.dtx}{package,style,gobble}%
+ \from{scrkernel-tocstyle.dtx}{package,style,dottedtocline}%
+ \from{scrkernel-tocstyle.dtx}{package,style,undottedtocline}%
+ \from{scrkernel-tocstyle.dtx}{package,style,largetocline}%
+ \from{scrkernel-tocstyle.dtx}{package,style,tocline}%
+ \from{scrkernel-tocstyle.dtx}{package,style,default}%
+ \from{tocbasic.dtx}{package,exit}%
+ \from{scrlogo.dtx}{logo}%
+ }%
+ }%
+ \@@input scrstrop.inc
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+\documentclass[parskip=half-]{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}%
+}{}
+\lstnewenvironment{lstoutput}[1][]{}{}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{tocbasic.dtx}
+\sloppy
+\DocInput{\filename}
+\end{document}
+% \fi
+%
+% \begin{document}
+% \title{\KOMAScript{} \partname\ \texttt{\filename}%
+% \thanks{Diese Datei ist Version \fileversion\ von \texttt{\filename}.}}
+% \date{\filedate}
+% \author{Markus Kohm\thanks{mailto:komascript(at)gmx.info}}
+% \maketitle
+% \begin{abstract}
+% The main purpose of package \textsf{tocbasic} is to provide features for
+% authors of classes and packages to create own tables or lists of contents
+% like the list of figures and the list of tables and thereby allow other
+% classes or packages some types of control over these. For examples package
+% \textsf{tocbasic} delegates language control of all these tables and lists
+% of contents to package \textsf{babel}. So automatic change of language
+% will be provided inside all these tables and lists of contents. Using
+% \textsf{tocbasic} will exculpate authors of classes and packages from
+% implementation of such features.
+%
+% \KOMAScript{} itself uses \textsf{tocbasic} not only for the table of
+% contents but also for the already mentioned lists of figures and tables.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \iffalse
+%</dtx>
+% \fi
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+%
+% \section{Implementation}
+% \label{sec:implementation}
+%
+% All macros with prefix \texttt{tb@} or \texttt{@} are internal macros and
+% should not be used by package and class authors. Macros with prefix
+% \texttt{tocbasic@} are internal macros, that may be used by class and
+% packages authors. Macros without \texttt{@} are interface macros and may be
+% used by class and package authors and users.
+%
+% Note: Parts of the implementation of package \textsf{tocbasic} are
+% out-sourced into file \texttt{scrkernel-tocbasic.dtx}.
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \subsection{Options}
+% \label{sec:options}
+%
+% There are no options because the package should be used by class and package
+% authors not by users. So the package will be loaded using
+% \cs{RequiresPackage}. Using different options by different packages would
+% result in an option clash.
+% \begin{macrocode}
+%<*option>
+\ProcessOptions\relax
+%</option>
+% \end{macrocode}
+%
+%
+% \subsection{Required Packages}
+% \label{sec:packages}
+%
+% Package \textsf{scrbase} is needed to process all macro options. As long as
+% no package options are provided, the \texttt{body}-run is early enough to
+% load it.
+% \begin{macrocode}
+%<*body>
+\RequirePackage{scrbase}
+%</body>
+% \end{macrocode}
+% We load it after processing the options, because we don't need it for
+% processing options.
+%
+%
+%
+% \subsection{Unwanted Packages}
+% \label{sec:unpackages}
+%
+% There are packages, that are not recommended to be used together with
+% \textsf{tocbasic}:
+% \begin{macrocode}
+%<*body>
+% \end{macrocode}
+% \begin{description}
+% \item[\textsf{multitoc}:] This package implements multi-column ToCs using
+% \textsf{multicol}. Unfortunately there is a bug in that package, that
+% disables all extensions but \texttt{toc}, \texttt{lof} and \texttt{lot} and
+% even these if the corresponding option has not been set.
+% \begin{macrocode}
+\AfterPackage*{multitoc}{%
+ \@ifpackagelater{multitoc}{2018/08/31}{}{%
+ \PackageWarningNoLine{tocbasic}{%
+ Usage of package `multitoc' is not recommended!\MessageBreak
+ Note, this package generally results in empty ToCs\MessageBreak
+ for all extension but `toc', `lof' and `lot' and\MessageBreak
+ even for these extensions if you do not use the\MessageBreak
+ corresponding multitoc options.\MessageBreak
+ It is recommended to use:\MessageBreak
+ \space\space\string\usepackage{multicol}\MessageBreak
+ \space\space\string\BeforeStartingTOC{\string\begin{multicols}{2}}%
+ \MessageBreak
+ \space\space\string\AfterStartingTOC{\string\end{multicols}}%
+ \MessageBreak
+ instead of loading package `multitoc'.\MessageBreak
+ See the KOMA-Script manual for more information\MessageBreak
+ about using \string\BeforeStartingTOC\space and
+ \string\AfterStartingTOC\MessageBreak
+ and the multicol manual for more information\MessageBreak
+ about the `multicols' environment%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{description}
+% \begin{macrocode}
+%</body>
+% \end{macrocode}
+%
+%
+% \subsection{Having a List of All Tocs}
+% \label{sec:listoftocs}
+%
+% If we have a list of all toc-files we may do commands for all
+% toc-files. Somethimes it may be usefull to known the package, that created
+% the toc-file, so this information will be stored additionally.
+%
+% \begin{macro}{\tb@listoftocs}
+% This is the list of toc-files. The list will be:
+% \begin{quote}
+% \cs{do}\marg{extension}\marg{class or
+% package}\cs{do}\marg{extension}\marg{class or package}\dots
+% \end{quote}
+% With this, adding and processing the list will be very fast but removing
+% an element will be very slow.
+%
+% The initial state of the list will be \emph{empty}.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\tb@listoftocs}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifattoclist}
+% This command tests, if an extension is already at the list of
+% toc-files. The extension has to be the first argument. The second argument
+% will be done, if the extension is already at the list of toc-files. The
+% third argument will be done, if the extension is at the list of toc-files
+% not yet.
+% \begin{macrocode}
+\newcommand{\ifattoclist}[1]{%
+ \begingroup
+ \def\do##1##2{%
+ \edef\reserved@a{##1}%
+ \ifx\reserved@a\reserved@b\@tempswatrue\fi
+ }%
+ \edef\reserved@b{#1}\@tempswafalse\tb@listoftocs
+ \if@tempswa\aftergroup\@firstoftwo\else\aftergroup\@secondoftwo\fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addtotoclist}
+% \changes{v1.0a}{2008/11/11}{internal \cs{@addtotoclist} renamed to
+% \cs{scr@addtotoclist} because of package \textsf{floatfram}}.^^A
+% \changes{v1.0a}{2008/11/11}{internal \cs{@@addtotoclist} renamed to
+% \cs{scr@@addtotoclist} because of package \textsf{floatfram}}.^^A
+% \changes{v3.06a}{2010/09/14}{expand the arguments while adding them to the
+% internal list}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% This command adds an extension to the list of toc-files. The first,
+% optional argument is the class or package name with the corresponding
+% extension of class or package files. If this argument was omitted
+% \textsf{tocbasic} tries to get it automatically. This should be
+% successfull while loading a class or package but not while processing any
+% command of a class or package after loading the class or package. The
+% second, mandatory argument is the extension of the toc-file. NOTE: An
+% empty first argument is not the same like omitting the first argument!
+% \begin{macrocode}
+\newcommand*{\addtotoclist}{%
+ \kernel@ifnextchar [%]
+ \scr@@addtotoclist\scr@addtotoclist
+}
+\newcommand*{\scr@addtotoclist}{%
+ \ifx\@currname\@empty
+ \def\reserved@a{\scr@@addtotoclist[]}%
+ \else
+ \edef\reserved@a{\noexpand\scr@@addtotoclist[\@currname.\@currext]}%
+ \fi
+ \reserved@a
+}
+\newcommand*{\scr@@addtotoclist}[2][]{%
+ \ifattoclist{#2}{%
+ \PackageError{tocbasic}{%
+ file extension `#2' cannot be used twice
+ }{%
+ File extension `#2' is already used by a toc-file, while
+ \ifx\relax#1\relax someone\else #2\fi\MessageBreak
+ tried to use it again for a toc-file.\MessageBreak
+ This may be either an incompatibility of packages, an error at a
+ package,\MessageBreak
+ or a mistake by the user.\MessageBreak
+ }%
+ }{%
+ \begingroup
+ \protected@edef\reserved@a{%
+ \noexpand\g@addto@macro\noexpand\tb@listoftocs{%
+ \noexpand\do{#2}{#1}}}\reserved@a
+ \endgroup
+ \ifx\relax #1\relax\else
+ \@ifundefined{tb@#1@add@hook}{}{%
+ \edef\reserved@a{%
+ \noexpand\def\noexpand\@currext{#2}%
+ \noexpand\@nameuse{tb@#1@add@hook}%
+ \noexpand\def\noexpand\@currext{\@currext}%
+ }\reserved@a
+ }%
+ \fi
+ \edef\reserved@a{%
+ \noexpand\def\noexpand\@currext{#2}%
+ \noexpand\@nameuse{tb@@add@hook}%
+ \noexpand\def\noexpand\@currext{\@currext}%
+ }\reserved@a
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\owneroftoc}
+% \changes{v3.22}{2016/08/09}{new}
+% Returns the owner of a TOC or uses the owner of a TOC as argument of the
+% optional argument, if it exists.
+% \begin{macrocode}
+\newcommand*{\owneroftoc}[2][\@firstofone]{%
+ \begingroup
+ \let\reserved@a\endgroup
+ \def\do##1##2{\ifstr{#2}{##1}{\def\reserved@a{\endgroup#1{##2}}}{}}%
+ \tb@listoftocs
+ \reserved@a
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AtAddToTocList}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% Action to be done, when adding a toc-file of a known owner. The first
+% optional argument is the owner. The second, mandatory argument is the
+% action. While doing the action \cs{@currext} will be the extension of the
+% added toc-file. If the first argument was omitted \textsf{tocbasic} tries
+% to get it automatically. This should be successfull while loading a class
+% or package but not while processing any command of a class or package
+% after loading the class or package. The second, mandatory argument is the
+% extension of the toc-file. NOTE: An empty first argument is not the same
+% like omitting the first argument, but set's up the general hook. The
+% general hook will be done for every adding after the individual hook (this
+% means, you may dactivate features at the individual hook before processing
+% the general hook). But the individual hook will not be processed for
+% toc-files without any owner!
+% \begin{macrocode}
+\newcommand*{\AtAddToTocList}{%
+ \kernel@ifnextchar [%]
+ \@@AtAddToTocList\@AtAddToTocList
+}
+\newcommand*{\@AtAddToTocList}{%
+ \ifx\@currname\@empty
+ \def\reserved@a{\@@AtAddToTocList[]}%
+ \else
+ \edef\reserved@a{\noexpand\@@AtAddToTocList[\@currname.\@currext]}%
+ \fi
+ \reserved@a
+}
+\newcommand*{\@@AtAddToTocList}[1][]{%
+ \@ifundefined{tb@#1@add@hook}{\@namedef{tb@#1@add@hook}{}}{}%
+ \expandafter\g@addto@macro\csname tb@#1@add@hook\endcsname
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tocbasic@extend@babel}
+% NOTE: To extend the original \cs{bbl@set@language} the argument of
+% \cs{tocbasic@extend@babel} must not be a local macro (like \cs{@currext})
+% \begin{macrocode}
+\newcommand*{\tocbasic@extend@babel}[1]{%
+ \scr@ifundefinedorrelax{bbl@set@language}{%
+ \PackageInfo{tocbasic}{babel extension for `#1' omitted\MessageBreak
+ because of missing \string\bbl@set@language}%
+ }{%
+ \iftocfeature{#1}{nobabel}{%
+ \PackageInfo{tocbasic}{omitting babel extension for `#1'\MessageBreak
+ because of feature `nobabel' available\MessageBreak
+ for `#1'}%
+ }{%
+% \end{macrocode}
+% \changes{v3.23}{2017/02/23}{using \cs{BabelContentsFiles} if available}^^A
+% Since version 3.9a provides adding extensions to the language switch
+% preparation. So it is used if it is available.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{BabelContentsFiles}{%
+ \PackageInfo{tocbasic}{setting babel extension for `#1'}%
+ \expandafter\gdef\expandafter\bbl@set@language
+ \expandafter##\expandafter1%
+ \expandafter{%
+ \bbl@set@language{##1}%
+ \addtocontents{#1}{\xstring\select@language{\languagename}}%
+ }%
+ }{%
+ \@expandtwoargs\in@{,#1,}{,\BabelContentsFiles,}%
+ \ifin@
+ \PackageInfo{tocbasic}{omitting babel extension for
+ `#1'\MessageBreak
+ because it is already in \string\BabelContentsFiles}%
+ \else
+ \PackageInfo{tocbasic}{setting babel extension for `#1'}%
+ \xdef\BabelContentsFiles{\BabelContentsFiles,#1}%
+ \fi
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% This feature should be used for all toc-files (unless feature
+% \texttt{nobabel} was set for the toc-file.
+% \begin{macrocode}
+\AtAddToTocList[]{\expandafter\tocbasic@extend@babel\expandafter{\@currext}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\removefromtoclist}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\@removefromtoclist}
+% \changes{v3.22}{2016/09/06}{missing \cs{global} added}^^A
+% \begin{macro}{\@@removefromtoclist}
+% \changes{v3.22}{2016/09/06}{missing \cs{global} added}^^A
+% This command will remove an extension from the list of toc-files. If the
+% first, optional argument is given, the extension will only be removed, if
+% it was added by the given owner. NOTE: An empty first argument is not the
+% same like omitting the first argument!
+% \begin{macrocode}
+\newcommand*{\removefromtoclist}{%
+ \kernel@ifnextchar [%]
+ \@removefromtoclist\@@removefromtoclist
+}
+\newcommand*{\@removefromtoclist}[2][]{%
+ \begingroup
+ \let\tb@oldlist\tb@listoftocs
+ \def\do##1##2{%
+ \edef\reserved@a{##1}%
+ \ifx\reserved@a\reserved@b
+ \begingroup
+ \edef\@currext{##2}%
+ \edef\reserved@b{#1}%
+ \ifx\@currext\reserved@b
+ \else
+ \g@addto@macro\tb@listoftocs{\do{##1}{##2}}%
+ \fi
+ \endgroup
+ \else
+ \g@addto@macro\tb@listoftocs{\do{##1}{##2}}%
+ \fi
+ }%
+ \edef\reserved@b{#2}\global\let\tb@listoftocs\@empty
+ \tb@oldlist
+ \endgroup
+}
+\newcommand*{\@@removefromtoclist}[1]{%
+ \begingroup
+ \let\tb@oldlist\tb@listoftocs
+ \def\do##1##2{%
+ \edef\reserved@a{##1}%
+ \ifx\reserved@a\reserved@b
+ \else
+ \g@addto@macro\tb@listoftocs{\do{##1}{##2}}%
+ \fi
+ }%
+ \edef\reserved@b{#1}\global\let\tb@listoftocs\@empty
+ \tb@oldlist
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\doforeachtocfile}
+% \changes{v3.09}{2011/03/01}{\cs{@currext} defined using \cs{edef} instead
+% of \cs{def}}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% This command does the second, mandatory argument for each toc-file at the
+% list of toc-files. If the first, optional argument was given this will be
+% done only for the toc-files of that owner. NOTE: An empty first argument
+% is not the same like omitting the first argument!
+%
+% While processing the second argument \cs{@currext} is the extension of
+% the toc-file. The second argument will be processed with increased group
+% level!
+%
+% See \cs{addtoeachtocfile} for an example of usage of
+% \cs{doforeachtocfile}.
+% \begin{macrocode}
+\newcommand{\doforeachtocfile}{%
+ \kernel@ifnextchar [%]
+ \@doforeachtocfile\@@doforeachtocfile
+}
+\newcommand{\@doforeachtocfile}[2][]{%
+ \def\do##1##2{%
+ \edef\reserved@a{#1}\edef\reserved@b{##2}\ifx\reserved@a\reserved@b
+ \edef\@currext{##1}#2%
+ \fi
+ }%
+ \edef\reserved@a{%
+ \noexpand\tb@listoftocs
+ \noexpand\def\noexpand\@currext{\@currext}%
+ }\reserved@a
+ \let\do\relax
+}
+\newcommand{\@@doforeachtocfile}[1]{%
+ \def\do##1##2{%
+ \edef\@currext{##1}#1%
+ }%
+ \edef\reserved@a{%
+ \noexpand\tb@listoftocs
+ \noexpand\def\noexpand\@currext{\@currext}%
+ }\reserved@a
+ \let\do\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addtoeachtocfile}
+% \begin{macro}{\@addtoeachtocfile}
+% \begin{macro}{\@@addtoeachtocfile}
+% \changes{v3.03b}{2009/06/08}{typo fix at usage of \cs{doforeachtocfile}}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% This command calls \cs{addtocontents} with the section, mandatory
+% argument for each toc-file at the list of toc-files. If the first,
+% optional argument was given this will be done only for the toc-files of
+% that owener. NOTE: An empty first argument is not the same like omitting
+% the first argument! And don't forget to protect the commands, that should
+% not be expanded, at the mandatory argument.
+% \begin{macrocode}
+\newcommand{\addtoeachtocfile}{%
+ \kernel@ifnextchar [%]
+ \@addtoeachtocfile\@@addtoeachtocfile
+}
+\newcommand{\@addtoeachtocfile}[2][]{%
+ \doforeachtocfile[{#1}]{\addtocontents{\@currext}{#2}}%
+}
+\newcommand{\@@addtoeachtocfile}[1]{%
+ \doforeachtocfile{\addtocontents{\@currext}{#1}}%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}
+% \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}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% Something like a combination of \cs{addtoeachtocfile} and
+% \cs{addcontentsline}.
+% \begin{macrocode}
+%<*body>
+\newcommand{\addcontentslinetoeachtocfile}{%
+ \kernel@ifnextchar [%]
+ \@addcontentslinetoeachtocfile\@@addcontentslinetoeachtocfile
+}
+\newcommand{\@addcontentslinetoeachtocfile}[3][]{%
+ \doforeachtocfile[{#1}]{\addcontentsline{\@currext}{#2}{#3}}%
+}
+\newcommand{\@@addcontentslinetoeachtocfile}[2]{%
+ \doforeachtocfile{\addcontentsline{\@currext}{#1}{#2}}%
+}
+% \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}}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \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]{%
+ \kernel@ifnextchar [%]
+ {\@addxcontentsline{#1}{#2}}%
+ {\@addxcontentsline{#1}{#2}[]}%
+}
+\newcommand*{\@addxcontentsline}{}
+\def\@addxcontentsline#1#2[#3]#4{%
+ \scr@ifundefinedorrelax{add#2#1entry}{%
+ \tocbasic@addxcontentsline{#1}{#2}{#3}{#4}%
+ }{%
+ \@nameuse{add#2#1entry}{#3}{#4}%
+ }%
+}
+% \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}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\@addxcontentslinetoeachtocfile}
+% \changes{v3.12}{2013/09/24}{new (internal)}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \begin{macro}{\@@addxcontentslinetoeachtocfile}
+% \changes{v3.12}{2013/09/24}{new (internal)}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \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}{%
+ \kernel@ifnextchar [%]
+ \@addxcontentslinetoeachtocfile\@@addxcontentslinetoeachtocfile
+}
+\newcommand{\@addxcontentslinetoeachtocfile}[2][]{%
+ \kernel@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]{%
+ \kernel@ifnextchar [%]
+ {\@@@@addxcontentslinetoeachtocfile{#1}}%
+ {\@@@@addxcontentslinetoeachtocfile{#1}[]}%
+}
+\newcommand*{\@@@@addxcontentslinetoeachtocfile}{}
+\def\@@@@addxcontentslinetoeachtocfile#1[#2]#3{%
+ \doforeachtocfile{\addxcontentsline{\@currext}{#1}[{#2}]{#3}}%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Show List of Toc-File}
+% \label{sec:showlistoftocfile}
+%
+% If you have a toc-file you want a list-of-command for this toc-file,
+% too. Here are basics and high level commands for this.
+%
+% \begin{macro}{\tocbasic@starttoc}
+% \changes{v3.17}{2015/03/23}{usage of feature \texttt{noparskipfake}}^^A
+% Some basics are done like setting up \cs{parskip}, \cs{parindent} and
+% \cs{parfillskip}, a general hook will be called, an individual hook will
+% be called, the toc will be started, an individual hook will be called, an
+% general hook wil be called, that's it.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\tocbasic@starttoc}[1]{%
+ \begingroup
+ \edef\@currext{#1}%
+ \iftocfeature{\@currext}{noparskipfake}{}{%
+ \ifvmode
+ \@tempskipa\lastskip
+ \vskip-\lastskip
+ \addtolength{\@tempskipa}{\parskip}%
+ \vskip\@tempskipa
+ \fi
+ }%
+ \setlength{\parskip}{\z@}%
+ \setlength{\parindent}{\z@}%
+ \setlength{\parfillskip}{\z@\@plus 1fil}%
+ \csname tocbasic@@before@hook\endcsname
+ \csname tb@#1@before@hook\endcsname
+ \@starttoc{#1}%
+ \csname tb@#1@after@hook\endcsname
+ \csname tocbasic@@after@hook\endcsname
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macro}{\tocbasic@@before@hook}
+% \begin{macro}{\tocbasic@@after@hook}
+% These are the general hooks. They may be used by classes and packages for
+% commands, that should be used for all lists of not only the own lists of,
+% e.\,g., \KOMAScript{} may use it to handle option \texttt{tocleft}.
+% \begin{macrocode}
+\newcommand*{\tocbasic@@before@hook}{}
+\newcommand*{\tocbasic@@after@hook}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\BeforeStartingTOC}
+% \changes{v3.04b}{2010/01/05}{fix: define the hook if not already defined}^^A
+% \changes{v3.06}{2010/06/09}{fix: using \cs{@ifundefined} instead of
+% undefined \cs{scr@ifundefinedorrelax}}^^A
+% \changes{v3.26}{2018/08/10}{message moved to \texttt{trace}}^^A
+% \begin{macro}{\AfterStartingTOC}
+% \changes{v3.04b}{2010/01/05}{fix:define the hook if not already defined}^^A
+% \changes{v3.06}{2010/06/09}{fix: using \cs{@ifundefined} instead of
+% undefined \cs{scr@ifundefinedorrelax}}^^A
+% \changes{v3.26}{2018/08/10}{message moved to \texttt{trace}}^^A
+% These are the commands to add code to the general or individual hooks. If
+% the first, optional argument was given, the second, mandatory argument
+% will be added to the individual hook, otherwise the general hook will be
+% extended.
+% \begin{macrocode}
+\newcommand{\BeforeStartingTOC}[2][]{%
+ \ifx\relax#1\relax
+ \g@addto@macro\tocbasic@@before@hook{#2}%
+ \else
+ \@ifundefined{tb@#1@before@hook}{%
+%<trace> \PackageInfo{tocbasic}{defining new hook before starting `#1'}%
+ \expandafter\global\expandafter\let\csname tb@#1@before@hook\endcsname
+ \@empty
+ }{}%
+ \expandafter\g@addto@macro\csname tb@#1@before@hook\endcsname{#2}%
+ \fi
+}
+\newcommand{\AfterStartingTOC}[2][]{%
+ \ifx\relax#1\relax
+ \g@addto@macro\tocbasic@@after@hook{#2}%
+ \else
+ \@ifundefined{tb@#1@after@hook}{%
+%<trace> \PackageInfo{tocbasic}{defining new hook after starting `#1'}%
+ \expandafter\global\expandafter\let\csname tb@#1@after@hook\endcsname
+ \@empty
+ }{}%
+ \expandafter\g@addto@macro\csname tb@#1@after@hook\endcsname{#2}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\listoftoc}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
+% \begin{macro}{\@listoftoc}
+% \changes{v1.0a}{2008/11/12}{\cs{twocolumn} fixed}^^A
+% \changes{v1.01}{2008/11/13}{new feature \texttt{onecolumn}}^^A
+% \changes{v3.09}{2011/03/01}{\cs{@currext} defined using \cs{edef} instead
+% of \cs{def}}^^A
+% Command to handle the hole list of something. There are additional hooks
+% for this. The first optional argument is the title for this list. If the
+% optional argument was omitted \cs{listof\#2name} will be used. The star
+% version does not set up a heading or switch the column number!
+% \begin{macrocode}
+\newcommand*{\listoftoc}{%
+ \kernel@ifstar \tocbasic@starttoc\@listoftoc
+}
+\newcommand*{\@listoftoc}[2][\list@fname]{%
+ \begingroup
+ \@ifundefined{listof#2name}{%
+ \let\list@fname\relax
+ \ifx\relax#1\relax
+ \PackageWarning{tocbasic}{%
+ You should either define \expandafter\string\csname
+ listof#2name\endcsname\MessageBreak
+ or use the optional argument of \string\listoftoc\space\MessageBreak
+ to set the term to be used for the\MessageBreak
+ heading of list of #2}%
+ \def\list@fname{\listofname~#2}%
+ \fi
+ }{%
+ \expandafter\let\expandafter\list@fname\csname listof#2name\endcsname
+ }%
+ \edef\@currext{#2}%
+ \iftocfeature{\@currext}{onecolumn}{%
+ \iftocfeature{\@currext}{leveldown}{}{%
+ \if@twocolumn
+ \aftergroup\twocolumn\onecolumn
+ \fi
+ }%
+ }{}%
+ \iftocfeature{\@currext}{numberline}{\def\nonumberline{\numberline{}}}{}%
+ \tocbasic@listhead{#1}%
+ \scr@ifundefinedorrelax{microtypesetup}{}{%
+ \iftocfeature{\@currext}{noprotrusion}{}{%
+ \microtypesetup{protrusion=false}%
+ \PackageInfo{tocbasic}{%
+ character protrusion at \@currext\space deactivated}%
+ }%
+ }%
+ \tocbasic@starttoc{#2}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v3.25}{2017/11/21}{\textsf{tocbibind} warning added}^^A
+% Using \textsf{tocbibind} and \textsf{tocbasic} together can break features
+% either of \textsf{tocbibind} or \textsf{tocbasic}. Here we add at least a
+% warning:
+% \begin{macrocode}
+\@ifpackageloaded{tocbibind}{}{%
+ \AtBeginDocument{%
+ \@ifpackageloaded{tocbibind}{%
+ \PackageInfo{tocbasic}{usage of `tocbibind' detected}%
+ \newcommand*{\tb@tocbibindpatch}[3]{%
+ \long\def\reserved@a{\tocfile{#2}{#1} }%
+ \ifx #3\reserved@a
+ \PackageWarningNoLine{tocbasic}{%
+ `tocbibind' redefinition of `\string#3'\MessageBreak
+ detected.\MessageBreak
+ Note: Loading `tocbibind' without option `not#1'\MessageBreak
+ can break several features of `tocbasic'%
+ \scr@ifundefinedorrelax{KOMAClassName}{%
+ .\MessageBreak
+ Loading `tocbibind' before `tocbasic' would avoid\MessageBreak
+ this warning message%
+ }{}%
+ }%
+ \fi
+ }%
+ \tb@tocbibindpatch{toc}{\contentsname}{\tableofcontents}%
+ \tb@tocbibindpatch{lof}{\listfigurename}{\listoffigures}%
+ \tb@tocbibindpatch{lot}{\listtablename}{\listoftables}%
+ }{}%
+ }%
+}
+% \end{macrocode}
+%
+% \begin{macro}{\listofname}
+% While this is only an emergancy command, we don't support languages.
+% \begin{macrocode}
+\newcommand*{\listofname}{List of}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\listofeachtoc}
+% \begin{macro}{\@listofeachtoc}
+% \begin{macro}{\@@listofeachtoc}
+% \changes{v3.03b}{2009/06/08}{typo fix at usage of \cs{doforeachtocfile}}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% Another example of using \cs{doforeachtocfile}.
+% \begin{macrocode}
+\newcommand*{\listofeachtoc}{%
+ \kernel@ifnextchar [%]
+ \@listofeachtoc\@@listofeachtoc
+}
+\newcommand{\@listofeachtoc}[1][]{%
+ \doforeachtocfile[{#1}]{\listoftoc{\@currext}}%
+}
+\newcommand{\@@listofeachtoc}[1]{%
+ \doforeachtocfile{\listoftoc{\@currext}}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ext@toc}
+% \changes{v3.23}{2017/02/23}{use indirect extension for toc}^^A
+% We do not longer hard code extension \texttt{toc} for the table of
+% contents. This allowes users to change it. Classes or other packages may
+% also define it. So it seems to be better to \cs{providecommand} instead of
+% \cs{newcommand} here.
+% \begin{macrocode}
+\providecommand*{\ext@toc}{toc}
+% \end{macrocode}
+% \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.12}{2013/09/24}{usage of new
+% \cs{tocbasic@addxcontentsline}}%
+% \changes{v3.15}{2014/12/10}{moved \cs{@mkboth} inside \cs{chapter*}}^^A
+% \changes{v3.15}{2014/12/10}{usage of \cs{addsec} if available}^^A
+% \changes{v3.15}{2014/12/10}{usage of \cs{@mkright} if available}^^A
+% \changes{v3.17}{2015/03/08}{moved \cs{@mkboth} outside \cs{chapter*}}^^A
+% \changes{v3.17}{2015/03/08}{usage of \cs{@mkdouble} if available}^^A
+% \changes{v3.17}{2015/03/25}{penalty and skip reconstruction after
+% \cs{@mkright}, \cs{@mkboth}, or \cs{@mkdouble}}^^A
+% \changes{v3.26}{2018/06/22}{removed spurious group}^^A
+% \changes{v3.26}{2018/09/03}{usage of \cs{addsecmark} or \cs{sectionmark}
+% instead of \cs{@mkright} or \cs{markright}}^^A
+% Setting the headings of a list of something. The heading is the only
+% argument.
+% \begin{macrocode}
+\newcommand*{\tocbasic@listhead}[1]{%
+ \@ifundefined{tocbasic@listhead@\@currext}{%
+ \scr@ifundefinedorrelax{chapter}{%
+ \expandafter\def\csname tocbasic@listhead@\@currext\endcsname##1{%
+ \iftocfeature{\@currext}{leveldown}{%
+ \iftocfeature{\@currext}{numbered}{%
+ \subsection[##1]{##1}%
+ }{%
+ \subsection*{##1}%
+ \ifvmode\@tempcnta\lastpenalty\@tempskipa\lastskip\unskip\fi
+ \begingroup
+ \iftocfeature{\@currext}{totoc}{%
+ \expandafter\addxcontentsline\expandafter{\ext@toc}%
+ {subsection}{##1}%
+ }{}%
+ \c@secnumdepth=-\maxdimen
+ \subsectionmark{##1}%
+ \endgroup
+ \ifvmode\penalty\@tempcnta\vskip\@tempskipa\fi
+ }%
+ }{%
+ \iftocfeature{\@currext}{numbered}{%
+ \section[##1]{##1}%
+ }{%
+ \section*{##1}%
+ \ifvmode\@tempcnta\lastpenalty\@tempskipa\lastskip\unskip\fi
+ \begingroup
+ \iftocfeature{\@currext}{totoc}{%
+ \expandafter\addxcontentsline\expandafter{\ext@toc}%
+ {section}{##1}%
+ }{}%
+ \@ifundefined{@mkdouble}{%
+ \@mkboth{\MakeMarkcase{##1}}{\MakeMarkcase{##1}}%
+ }{%
+ \@mkdouble{\MakeMarkcase{##1}}%
+ }%
+ \endgroup
+ \ifvmode\penalty\@tempcnta\vskip\@tempskipa\fi
+ }%
+ }%
+ }%
+ }{%
+ \expandafter\def\csname tocbasic@listhead@\@currext\endcsname##1{%
+ \iftocfeature{\@currext}{leveldown}{%
+ \iftocfeature{\@currext}{numbered}{%
+ \section{##1}%
+ }{%
+ \iftocfeature{\@currext}{totoc}{%
+ \@ifundefined{addsec}{%
+ \section*{##1}%
+ \ifvmode\@tempcnta\lastpenalty\@tempskipa\lastskip\unskip\fi
+ \begingroup
+ \@ifundefined{@mkright}{%
+ \IfActiveMkBoth{\markright{\MakeMarkcase{##1}}}{}%
+ }{%
+ \@mkright{\MakeMarkcase{##1}}%
+ }%
+ \expandafter\addxcontentsline\expandafter{\ext@toc}%
+ {section}{##1}%
+ \endgroup
+ \ifvmode\penalty\@tempcnta\vskip\@tempskipa\fi
+ }{%
+ \addsec{##1}%
+ }%
+ }{%
+ \section*{##1}%
+ \ifvmode\@tempcnta\lastpenalty\@tempskipa\lastskip\unskip\fi
+ \begingroup
+ \@ifundefined{addsecmark}{%
+ \c@secnumdepth=-\maxdimen
+ \sectionmark{##1}%
+ }{%
+ \addsecmark{##1}%
+ }%
+ \endgroup
+ \ifvmode\penalty\@tempcnta\vskip\@tempskipa\fi
+ }%
+ }%
+ }{%
+ \iftocfeature{\@currext}{numbered}{%
+ \chapter[##1]{##1}%
+ }{%
+ \chapter*{##1}%
+ \ifvmode\@tempcnta\lastpenalty\@tempskipa\lastskip\unskip\fi
+ \begingroup
+ \@ifundefined{@mkdouble}{%
+ \@mkboth{\MakeMarkcase{##1}}{\MakeMarkcase{##1}}%
+ }{%
+ \@mkdouble{\MakeMarkcase{##1}}%
+ }%
+ \iftocfeature{\@currext}{totoc}{%
+ \expandafter\addxcontentsline\expandafter{\ext@toc}%
+ {chapter}{##1}%
+ }{}%
+ \endgroup
+ \ifvmode\penalty\@tempcnta\vskip\@tempskipa\fi
+ }%
+ }%
+ }%
+ }%
+ }{}%
+ \csname tb@@beforehead@hook\endcsname
+ \csname tb@\@currext @beforehead@hook\endcsname
+ \csname tocbasic@listhead@\@currext\endcsname{#1}%
+ \csname tb@\@currext @afterhead@hook\endcsname
+ \csname tb@@afterhead@hook\endcsname
+}
+% \end{macrocode}
+% \begin{macro}{\BeforeTOCHead}
+% \changes{v3.04b}{2010/01/05}{fix: define the hook if not already defined}^^A
+% \changes{v3.06}{2010/06/09}{fix: using \cs{@ifundefined} instead of
+% undefined \cs{scr@ifundefinedorrelax}}^^A
+% \changes{v3.26}{2018/08/10}{message moved to \texttt{trace}}^^A
+% \begin{macro}{\AfterTOCHead}
+% \changes{v3.04b}{2010/01/05}{fix: define the hook if not already defined}^^A
+% \changes{v3.06}{2010/06/09}{fix: using \cs{@ifundefined} instead of
+% undefined \cs{scr@ifundefinedorrelax}}^^A
+% \changes{v3.26}{2018/08/10}{message moved to \texttt{trace}}^^A
+% These are the commands to add code to the general or individual hooks. If
+% the first, optional argument was given, the second, mandatory argument
+% will be added to the individual hook, otherwise the general hook will be
+% extended.
+% \begin{macrocode}
+\newcommand{\BeforeTOCHead}[2][]{%
+ \@ifundefined{tb@#1@beforehead@hook}{%
+%<trace> \PackageInfo{tocbasic}{defining new hook before heading of `#1'}%
+ \expandafter\global\expandafter\let\csname tb@#1@beforehead@hook\endcsname
+ \@empty
+ }{}%
+ \expandafter\g@addto@macro\csname tb@#1@beforehead@hook\endcsname{#2}%
+}
+\newcommand{\AfterTOCHead}[2][]{%
+ \@ifundefined{tb@#1@afterhead@hook}{%
+%<trace> \PackageInfo{tocbasic}{defining new hook after heading of `#1'}%
+ \expandafter\global\expandafter\let\csname tb@#1@afterhead@hook\endcsname
+ \@empty
+ }{}%
+ \expandafter\g@addto@macro\csname tb@#1@afterhead@hook\endcsname{#2}%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\MakeMarkcase}
+% Use upper-case or not?
+% \begin{macrocode}
+%<*exit>
+\AtBeginDocument{%
+ \@ifundefined{MakeMarkcase}{%
+ \scr@ifundefinedorrelax{KOMAClassName}{%
+ \let\MakeMarkcase\MakeUppercase
+ }{%
+ \let\MakeMarkcase\@firstofone
+ }%
+ }{}%
+}
+%</exit>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\deftocheading}
+% Define a toc headings command with one argument (the title).
+% \begin{macrocode}
+%<*body>
+\newcommand*{\deftocheading}[1]{%
+ \@namedef{tocbasic@listhead@#1}##1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setuptoc}
+% \changes{v3.26}{2018/08/29}{Verwendung von \cs{scr@trim@spaces} statt
+% \cs{tb@@sp@def}}^^A
+% \begin{macro}{\unsettoc}
+% \changes{v3.26}{2018/08/29}{Verwendung von \cs{scr@trim@spaces} statt
+% \cs{tb@@sp@def}}^^A
+% Known features are:
+% \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
+% book).
+% \item[\texttt{nobabel}] prevents the extension to be added to the babel
+% handling of toc-files. To make this work, you have to set the feature
+% before adding the extension to the list of known extension.
+% \item[[\texttt{noprotrusion}]] prevents disabling character protrusion at
+% the toc.
+% \end{description}
+% Other features may be package dependent. You may test the feature using:
+% \begin{quote}
+% \cs{@ifundefined}\texttt{\{tocbasic@\meta{toc}@feature@\meta{feature}\}}\\
+% \phantom{\cs{@ifundefined}}\marg{do if feature not set}\\
+% \phantom{\cs{@ifundefined}}\marg{do if feature set}
+% \end{quote}
+% See \cs{tocbasic@listhead} for an example of this.
+% \begin{macrocode}
+\newcommand*{\setuptoc}[2]{%
+ \@for\@tempa:=#2\do{%
+ \scr@trim@spaces\@tempa
+ \@namedef{tocbasic@#1@feature@\@tempa}{}%
+ }%
+}
+\newcommand*{\unsettoc}[2]{%
+ \@for\@tempa:=#2\do{%
+ \scr@trim@spaces\@tempa
+ \expandafter\let\csname tocbasic@#1@feature@\@tempa\endcsname\relax
+ }%
+}
+% \end{macrocode}
+% Do not add the files, that babel handles by default.
+% \begin{macrocode}
+\setuptoc{toc}{nobabel}
+\setuptoc{lof}{nobabel}
+\setuptoc{lot}{nobabel}
+% \end{macrocode}
+% \begin{macro}{\iftocfeature}
+% We need a test for the features
+% \begin{macrocode}
+\newcommand*{\iftocfeature}[2]{%
+ \scr@ifundefinedorrelax{tocbasic@#1@feature@#2}{%
+ \expandafter\@secondoftwo
+ }{%
+ \expandafter\@firstoftwo
+ }%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tocbasicautomode}
+% \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}}%
+% \textsf{tocbasic} can overtake \cs{@starttoc} to automaticly add all
+% used extensions to the list of known extensions and use
+% \cs{tocbasic@starttoc} instead of \cs{@starttoc} from \LaTeX{}
+% kernel. Please note, that we don't need a fix for the unfriendly
+% redefinition of \cs{@starttoc} by \textsf{hyperref}, because hyperref
+% does it only at the first \LaTeX{} run. So this action of \textsf{hyperref}
+% may only result in the need of one more \LaTeX{} run, but not in a permanent
+% mistake.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\tocbasicautomode}{%
+ \let\tb@saved@starttoc\@starttoc
+ \let\@starttoc\tocbasic@starttoc
+ \BeforeStartingTOC{%
+ \let\@starttoc\tb@saved@starttoc
+ \expandafter\ifattoclist\expandafter{\@currext}{}{%
+ \addtotoclist[tocbasicautomode]{\@currext}%
+ }%
+ }%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{High Level Interface for Generating New TOCs and Floats}
+% \label{sec:newfloats}
+%
+% \begin{macro}{\DeclareNewTOC}
+% \changes{v3.06}{2010/06/01}{new high level command}^^A
+% \changes{v3.18}{2015/06/20}{\cs{tb@nt@types} and \cs{tb@nt@listname} are
+% initialised \cs{relax}}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% \changes{v3.26a}{2018/12/30}{fixed usage of \cs{kernel@ifnextchar}}^^A
+% This command defines only a new TOC and a new caption command for this
+% TOC. It does not define a new foat unless option float was set! It does
+% not define a new nonfloat unless option nonfloat was set! The optional
+% argument is used to set up several settings using \textsf{keyval}. The
+% mandatory argument is the shortcut. The default type is the shortcut.
+% The extension is the shortcut. The default owner is ``\texttt{float}''.
+% \begin{macrocode}
+%<*body>
+\DefineFamily{KOMAarg}
+\DefineFamilyMember[.toc]{KOMAarg}
+\newcommand*{\DeclareNewTOC}[2][]{%
+ \newif\iftb@nt@float
+ \newif\iftb@nt@nonfloat
+ \newif\iftb@nt@forcenames
+ \def\tb@nt@floattype{\tb@nt@autofloattype}%
+ \def\tb@nt@floatpos{tbp}%
+ \def\tb@nt@ext{#2}%
+ \edef\tb@nt@type{#2}%
+ \let\tb@nt@types\relax
+ \def\tb@nt@owner{float}%
+ \def\tb@nt@name{\expandafter\protect\expandafter\MakeUppercase\tb@nt@type}%
+ \let\tb@nt@listname\relax
+ \let\tb@nt@counterwithin\@empty
+ \let\tb@nt@atbegin\@empty
+ \let\tb@nt@atend\@empty
+ \def\tb@nt@tocentrystyle{default}%
+% \end{macrocode}
+% \changes{v3.20}{2016/04/29}{need more initialization for empty optional
+% argument}^^A
+% \begin{macrocode}
+ \def\tb@nt@tocstyle@options{level=1}%
+ \IfArgIsEmpty{#1}{%
+% \end{macrocode}
+% Also need to call the style init code, to set the defaults for options
+% \texttt{numwidth} and \texttt{indent}.
+% \begin{macrocode}
+ \begingroup
+ \let\scr@dte@current\tb@nt@type
+ \@ExecuteTOCEntryStyleInitCode{\tb@nt@tocentrystyle}{\tb@nt@type}%
+ \def\do@endgroup{\endgroup}%
+ \def\do##1{%
+ \ifstr{##1}{numwidth}{%
+ \l@addto@macro\do@endgroup{%
+ \l@addto@macro{\tb@nt@tocstyle@options}{,numwidth=1.5em}%
+ }%
+ }{%
+ \ifstr{##1}{indent}{%
+%<trace>\typeout{TRACE \string\DeclareNewTOC[...]{#2}: set default indent 1em}%
+ \l@addto@macro\do@endgroup{%
+ \l@addto@macro{\tb@nt@tocstyle@options}{,indent=1em}%
+ }%
+ }{}%
+ }%
+ \kernel@ifnextchar[%]
+ {\@dodefault}%
+ {}%
+ }%
+ \def\@dodefault[##1]{}%
+ \scr@dte@doopts
+ \do@endgroup
+ }{%
+ \let\tb@nt@extra@relax@opts\@empty
+% \end{macrocode}
+% After initialisation of the local values we need to know the style of the
+% toc entry, to define style dependend options.
+% \begin{macro}{\tb@nt@type}
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% The type of list is used for environment and counter names and as part of
+% several internal and user macros. It is needed before defining the style
+% dependend options. So we use a first run to set it up.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{type}{%
+ \tb@ifvalueisnotempty{##1}{\edef\tb@nt@type{##1}}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@tocentrystyle}
+% \changes{v3.20}{2015/12/16}{neu (intern)}
+% The style of the toc entry. It is needed before defining the style
+% dependend options. So we use a first run to set it up.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{tocentrystyle}[default]{%
+ \IfArgIsEmpty{##1}{%
+ \edef\tb@nt@tocentrystyle{##1}%
+ \FamilyKeyStateProcessed
+ }{%
+ \scr@ifundefinedorrelax{scr@dte@def@l@##1}{%
+ \FamilyKeyStateUnknownValue
+ }{%
+ \edef\tb@nt@tocentrystyle{##1}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@ext}
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% \changes{v3.25}{2017/11/20}{moved to pass 1}^^A
+% Don't tell the user, that the mandatory argument of the command may be
+% overloaded by this option. This was only done to simplify the definition.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{extension}{%
+ \tb@ifvalueisnotempty{##1}{\edef\tb@nt@ext{##1}}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@owner}
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% \changes{v3.26}{2018/06/09}{moved to pass 1}^^A
+% The owner of the new list extension.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{owner}{%
+ \tb@ifvalueisnotempty{##1}{\edef\tb@nt@owner{##1}}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% After this we define pseudo option \texttt{@else@} to ignore all currently
+% not needed options. After this we do the first option execution run.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{@else@}{\FamilyKeyStateProcessed}%
+ \FamilyExecuteOptions[.toc]{KOMAarg}{#1}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{@else@}%
+% \end{macrocode}
+% \changes{v3.26}{2018/06/09}{add extension already after first pass}^^A
+% First of all, every TOC needs an extension, that should be added to the
+% list of known extensions. This has to be done also, if no options has been
+% given!
+% \begin{macrocode}
+ }%
+ \expandafter\newcommand\csname ext@\tb@nt@type\endcsname{}%
+ \expandafter\let\csname ext@\tb@nt@type\endcsname\tb@nt@ext
+ \addtotoclist[\tb@nt@owner]{\csname ext@\tb@nt@type\endcsname}%
+ \IfArgIsEmpty{#1}{}{%
+% \end{macrocode}
+% For the second option pass we do not need to set up these options
+% again. So define it as no-opt.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{type}{\FamilyKeyStateProcessed}%
+ \DefineFamilyKey[.toc]{KOMAarg}{tocentrystyle}{\FamilyKeyStateProcessed}%
+ \DefineFamilyKey[.toc]{KOMAarg}{extension}{\FamilyKeyStateProcessed}%
+ \DefineFamilyKey[.toc]{KOMAarg}{owner}{\FamilyKeyStateProcessed}%
+% \end{macrocode}
+% \changes{v3.20}{2015/12/16}{defining toc style depending options}^^A
+% \changes{v3.20}{2016/06/12}{using prefix \texttt{tocentry} instead of
+% \texttt{toc}}^^A
+% If the toc style is empty we won't define any \cs{l@\dots}. Otherwise we
+% need to define additional options.
+% \begin{macrocode}
+ \ifstr{\tb@nt@tocentrystyle}{}{}{%
+ \begingroup
+ \let\scr@dte@current\tb@nt@type
+ \@ExecuteTOCEntryStyleInitCode{\tb@nt@tocentrystyle}{\tb@nt@type}%
+ \def\do@endgroup{\endgroup}%
+ \def\do##1{%
+ \l@addto@macro\do@endgroup{%
+ \l@addto@macro\tb@nt@extra@relax@opts{%
+ \RelaxFamilyKey[.toc]{KOMAarg}{toc##1}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{tocentry##1}%
+ }%
+ }%
+ \kernel@ifnextchar[%]
+ {\@dodefault{##1}}%
+ {\@donodefault{##1}}%
+ }%
+ \def\@donodefault##1{%
+ \l@addto@macro\do@endgroup{%
+ \DefineFamilyKey[.toc]{KOMAarg}{toc##1}{%
+ \PackageWarning{tocbasic}{you should use `tocentry##1'
+ instead\MessageBreak
+ of `toc##1'}%
+ \l@addto@macro{\tb@nt@tocstyle@options}{,##1={####1}}%
+ \FamilyKeyStateProcessed
+ }%
+ \DefineFamilyKey[.toc]{KOMAarg}{tocentry##1}{%
+ \l@addto@macro{\tb@nt@tocstyle@options}{,##1={####1}}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+ \def\@dodefault##1[##2]{%
+ \l@addto@macro\do@endgroup{%
+ \DefineFamilyKey[.toc]{KOMAarg}{toc##1}[##2]{%
+ \PackageWarning{tocbasic}{you should use `tocentry##1'
+ instead\MessageBreak
+ of `toc##1'}%
+ \l@addto@macro{\tb@nt@tocstyle@options}{,##1={####1}}%
+ \FamilyKeyStateProcessed
+ }%
+ \DefineFamilyKey[.toc]{KOMAarg}{tocentry##1}[##2]{%
+ \l@addto@macro{\tb@nt@tocstyle@options}{,##1={####1}}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+ \scr@dte@doopts
+ \do@endgroup
+ }%
+% \end{macrocode}
+% After this, we need to define all the other options and do the real option
+% execution.
+% \begin{macro}{\tb@nt@atbegin}
+% \changes{v3.09}{2011/03/01}{new optional identifier \texttt{atbegin}}
+% \changes{v3.11c}{2013/02/01}{\texttt{atbegin} argument may be empty}
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% Additional code executed at the begin of a new defined environment.
+% \begin{macrocode}
+ \FamilyStringKey[.toc]{KOMAarg}{atbegin}{\tb@nt@atbegin}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@atend}
+% \changes{v3.09}{2011/03/01}{new optional identifier \texttt{atbend}}
+% \changes{v3.11c}{2013/02/01}{\texttt{atend} argument may be empty}
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% Additional code executed at the end of a new defined environment.
+% \begin{macrocode}
+ \FamilyStringKey[.toc]{KOMAarg}{atend}{\tb@nt@atend}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@counterwithin}
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% If a counter will be defined, this counter may depend on another counter
+% (like figure counter depends on chapter counter at book classes). If the
+% value is empty, the counter does not depend on any other counter.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{counterwithin}{%
+ \edef\tb@nt@counterwithin{##1}\FamilyKeyStateProcessed
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\iftb@nt@float}
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% \changes{v3.06}{2010/06/01}{new internal}
+% This boolean indicates, that float environments should also be defined.
+% \begin{macrocode}
+ \FamilyBoolKey[.toc]{KOMAarg}{float}{tb@nt@float}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@floatpos}
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% Simply the value for the |\fps@...| macro.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{floatpos}{%
+ \tb@ifvalueisnotempty{##1}{\edef\tb@nt@floatpos{##1}}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@floattype}
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% Simply the value for the |\ftype@...| macro. It has to be
+% $1<=\textrm{value}<=31$.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{floattype}{%
+ \FamilySetCounterMacro{KOMAarg}{floattype}{\reserved@d}{##1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifnum 0=
+ \ifnum\reserved@d<1 0 \else\ifnum\reserved@d>31 0 \else 1 \fi\fi
+ \FamilyKeyStateUnknownValue
+ \else
+ \let\tb@nt@floattype\reserved@d
+ \fi
+ \fi
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\iftb@nt@forcenames}
+% \changes{v3.06}{2010/06/01}{new internal}
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% The |\...name| commands will only be defined, if they are not already
+% defined. But some users may want to define their own names even if there
+% are already definitions. So this boolean option may switch to force the
+% definition.
+% \begin{macrocode}
+ \FamilyBoolKey[.toc]{KOMAarg}{forcenames}{tb@nt@forcenames}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@hang}
+% \changes{v3.20}{2015/12/16}{undefined}^^A
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% Earch entry of a TOC/list of is idented on the left side. This is the
+% amount of the indention of the text of the entry.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{hang}{%
+ \scr@ifundefinedorrelax{KV@KOMAarg.toc@tocnumwidth}{%
+ \PackageWarning{tocbasic}{%
+ deprecated option `hang'.\MessageBreak
+ Option will be ignored, because toc entry style\MessageBreak
+ `\tb@nt@tocentrystyle' does not provide option `numwidth'%
+ }%
+ }{%
+ \PackageWarning{tocbasic}{%
+ deprecated option `hang'.\MessageBreak
+ You should replace option `hang' by option\MessageBreak
+ `tocentrynumwidth'%
+ }%
+ \l@addto@macro\tb@nt@tocstyle@options{,numwidth={##1}}%
+ }%
+ \FamilyKeyStateProcessed
+ }%
+ \scr@ifundefinedorrelax{KV@KOMAarg.toc@tocnumwidth}{}{%
+ \l@addto@macro\tb@nt@tocstyle@options{,numwidth=1.5em}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@indent}
+% \changes{v3.20}{2015/12/16}{undefined}^^A
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% Earch entry of a TOC/list of is idented on the left side. This is the
+% amount of the indention of the number part.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{indent}{%
+ \scr@ifundefinedorrelax{KV@KOMAarg.toc@tocindent}{%
+ \PackageWarning{tocbasic}{%
+ deprecated option `indent'.\MessageBreak
+ Option will be ignored, because toc entry style\MessageBreak
+ `\tb@nt@tocentrystyle' does not provide option `indent'%
+ }%
+ }{%
+ \PackageWarning{tocbasic}{%
+ deprecated option `indent'.\MessageBreak
+ You should replace option `indent' by option\MessageBreak
+ `tocentryindent'%
+ }%
+ \l@addto@macro\tb@nt@tocstyle@options{,indent={##1}}%
+ }%
+ \FamilyKeyStateProcessed
+ }%
+ \scr@ifundefinedorrelax{KV@KOMAarg.toc@tocindent}{}{%
+%<trace>\typeout{TRACE \string\DeclareNewTOC[...]{#2}: set default indent 1em}%
+ \l@addto@macro\tb@nt@tocstyle@options{,indent=1em}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@level}
+% \changes{v3.20}{2015/12/16}{undefined}^^A
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% Each entry to a TOC/list of has a numeric level. You may set up your own
+% level.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{level}{%
+ \PackageWarning{tocbasic}{%
+ deprecated option `level'.\MessageBreak
+ You should replace option `level' by option\MessageBreak
+ `tocentrylevel'
+ }%
+ \l@addto@macro\tb@nt@tocstyle@options{,level={##1}}%
+ \FamilyKeyStateProcessed
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@listname}
+% \changes{v3.18}{2015/06/20}{using \cs{def} instead of \cs{edef}}^^A
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% The list itself has a heading. A |\list<type>name| will also be defined.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{listname}{%
+ \tb@ifvalueisnotempty{##1}{\def\tb@nt@listname{##1}}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@name}
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% We need a name/term for the entries of the new list. This may e.\,g. be used
+% for |caption| output. A |\<type>name| will also be defined.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{name}{%
+ \tb@ifvalueisnotempty{##1}{\edef\tb@nt@name{##1}}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\iftb@nt@nonfloat}
+% \changes{v3.06}{2010/06/01}{new (internal)}^^A
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% This boolean indicates, that non-float environment should also be
+% defined. The environment has the postfix ``-''.
+% \begin{macrocode}
+ \FamilyBoolKey[.toc]{KOMAarg}{nonfloat}{tb@nt@nonfloat}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@nt@types}
+% \changes{v3.20}{2015/12/16}{local valid only}^^A
+% Sometimes the plural of the type is needed and may be defined by a
+% seperate option.
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{types}{%
+ \tb@ifvalueisnotempty{##1}{\edef\tb@nt@types{##1}}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \changes{v3.25}{2017/11/20}{new (internal)}
+% The new option \texttt{setup} allowes to setup ToC features provided by
+% \cs{setuptoc}. Note, currently there is no test whether or not a feature
+% does exist!
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{setup}{%
+ \setuptoc\tb@nt@ext{##1}%
+ }%
+% \end{macrocode}
+% \changes{v3.25}{2017/11/20}{new (internal)}
+% The new option \texttt{unset} allowes to unset ToC features provided
+% by \cs{unsettoc}. Note, currently there is no test whether or not a
+% feature does exist!
+% \begin{macrocode}
+ \DefineFamilyKey[.toc]{KOMAarg}{unset}{%
+ \unsettoc\tb@nt@ext{##1}%
+ }%
+% \end{macrocode}
+% Last but not least we have to execute the options and reset the option
+% definitions.
+% \changes{v3.25}{2017/09/27}{\texttt{nonfloat} fixed}^^A
+% \changes{v3.26}{2018/06/09}{added missing reset of \texttt{unset} and
+% \texttt{setup}}^^A
+% \begin{macrocode}
+ \FamilyExecuteOptions[.toc]{KOMAarg}{#1}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{unset}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{setup}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{types}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{nonfloat}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{name}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{listname}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{level}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{indent}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{hang}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{forcenames}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{floatpos}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{float}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{counterwithin}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{atend}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{atbegin}%
+ \tb@nt@extra@relax@opts
+ \RelaxFamilyKey[.toc]{KOMAarg}{owner}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{extension}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{tocentrystyle}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{type}%
+ }%
+% \end{macrocode}
+% We save the type of the extension at \cs{tb@nt@type@\meta{extension}}
+% for later usage.
+% \begin{macrocode}
+ \expandafter\let\csname tb@nt@type@\tb@nt@ext\endcsname\tb@nt@type
+% \end{macrocode}
+% Then we need the TOC itself with a name:
+% \changes{v3.25}{2017/10/10}{use \cs{ext@\dots} instead of the extension
+% itself in definition of \cs{listof\dots}}^^A
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{tb@nt@types}{%
+ \edef\tb@nt@types{\tb@nt@type s}%
+ }{}%
+ \scr@ifundefinedorrelax{tb@nt@listname}{%
+ \protected@edef\tb@nt@listname{List of \protect\MakeUppercase\tb@nt@types}%
+ }{}%
+ \@ifundefined{\tb@nt@type name}{%
+ \expandafter\protected@edef\csname \tb@nt@type name\endcsname{\tb@nt@name}%
+ }{%
+ \iftb@nt@forcenames
+ \expandafter\protected@edef\csname \tb@nt@type name\endcsname
+ {\tb@nt@name}%
+ \fi
+ }%
+ \@ifundefined{list\tb@nt@type name}{%
+ \expandafter\let\csname list\tb@nt@type name\endcsname\tb@nt@listname
+ }{%
+ \iftb@nt@forcenames
+ \expandafter\let\csname list\tb@nt@type name\endcsname\tb@nt@listname
+ \fi
+ }%
+ \expandafter\newcommand\csname listof\tb@nt@ext name\expandafter\endcsname
+ \expandafter{\csname list\tb@nt@type name\endcsname}%
+ \begingroup\edef\@tempa{\endgroup
+ \noexpand\newcommand*\csname listof\tb@nt@types\endcsname{%
+ \noexpand\listoftoc{%
+ \expandafter\noexpand\csname ext@\tb@nt@type\endcsname}%
+ }%
+ }\@tempa
+% \end{macrocode}
+% The list entry:
+% \changes{v3.20}{2016/04/05}{warning if \cs{l@\dots} is undefined}^^A
+% \begin{macrocode}
+ \ifstr{\tb@nt@tocentrystyle}{}{%
+ \@ifundefined{l@\tb@nt@type}{%
+ \PackageWarning{tocbasic}{%
+ \expandafter\string\csname l@\tb@nt@type\endcsname\space
+ undefined!\MessageBreak
+ I hope you know, what you are doing, but\MessageBreak
+ maybe it would be better to use proper\MessageBreak
+ `tocentrystyle` settings%
+ }%
+ }{}%
+ }{%
+ \edef\reserved@a{%
+ \noexpand\DeclareTOCStyleEntry[%
+ {\unexpanded\expandafter{\tb@nt@tocstyle@options}}%
+ ]{\tb@nt@tocentrystyle}{\tb@nt@type}%
+ }%
+ \reserved@a
+ }%
+% \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
+ \noexpand\newcommand*\csname setup\tb@nt@types\endcsname{%
+ \noexpand\setuptoc{\tb@nt@ext}%
+ }%
+ }\@tempa
+ \@tempswafalse
+% \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@nt@float
+ \expandafter\newcommand\expandafter*\csname fps@\tb@nt@type\expandafter
+ \endcsname\expandafter{\tb@nt@floatpos}%
+ \expandafter\newcommand\expandafter*\csname ftype@\tb@nt@type\expandafter
+ \endcsname\expandafter{\tb@nt@floattype}%
+ \begingroup
+ \edef\@tempa{%
+ \noexpand\endgroup
+ \noexpand\newenvironment{\tb@nt@type}{%
+ \noexpand\kernel@ifnextchar[%]
+ {\noexpand\tb@atbegin@after\noexpand\@float{\tb@nt@type}}%
+ {\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
+ }%
+ \noexpand\newenvironment{\tb@nt@type*}{%
+ \noexpand\kernel@ifnextchar[%]
+ {\noexpand\tb@atbegin@after\noexpand\@dblfloat{\tb@nt@type}}%
+ {\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
+ }%
+ }%
+ \@tempa
+ \@tempswatrue
+ \fi
+% \end{macrocode}
+% The nonfloat environment:
+% \begin{macrocode}
+ \iftb@nt@nonfloat
+ \begingroup
+ \edef\@tempa{%
+ \noexpand\endgroup
+ \noexpand\newenvironment{\tb@nt@type-}{%
+ \noexpand\trivlist\noexpand\item\noexpand\relax
+ \noexpand\minipage{\noexpand\linewidth}%
+ \noexpand\def\noexpand\@captype{\tb@nt@type}%
+ \noexpand\csname \tb@nt@type @atbegin\noexpand\endcsname
+ }{%
+ \noexpand\csname \tb@nt@type @atend\noexpand\endcsname
+ \noexpand\endminipage\noexpand\endtrivlist
+ }%
+ }%
+ \@tempa
+ \@tempswatrue
+ \fi
+% \end{macrocode}
+% The counter and hooks of float and nonfloat environments:
+% \changes{v3.10b}{2012/04/04}{\cs{noexpand} added to fix problems using
+% \cs{autodot}}^^A
+% \changes{v3.13}{2014/07/31}{add \cs{autodot} only to hierachical
+% counters}^^A
+% \begin{macrocode}
+ \if@tempswa
+ \@ifundefined{c@\tb@nt@type}{%
+ \newcounter{\tb@nt@type}%
+ }{%
+ \PackageWarning{tocbasic}{using already defined counter `\tb@nt@type'}%
+ }%
+ \ifx\tb@nt@counterwithin\@empty\else
+ \@addtoreset{\tb@nt@type}{\tb@nt@counterwithin}%
+ \begingroup\edef\@tempa{%
+ \noexpand\endgroup
+ \noexpand\renewcommand*\expandafter\noexpand
+ \csname the\tb@nt@type\endcsname{%
+ \expandafter\noexpand\csname the\tb@nt@counterwithin\endcsname
+ .\noexpand\arabic{\tb@nt@type}%
+ }%
+ }\@tempa
+ \fi
+ \begingroup
+ \edef\@tempa{%
+ \noexpand\endgroup
+ \noexpand\newcommand*\expandafter\noexpand
+ \csname \tb@nt@type format\endcsname{%
+ \expandafter\noexpand\csname \tb@nt@type name\endcsname
+ \noexpand\nobreakspace
+ \expandafter\noexpand\csname the\tb@nt@type\endcsname
+ \ifx\tb@nt@counterwithin\@empty\else
+ \noexpand\csname autodot\endcsname
+ \fi
+ }%
+ \noexpand\newcommand*\expandafter\noexpand
+ \csname fnum@\tb@nt@type\endcsname{%
+ \expandafter\noexpand\csname \tb@nt@type format\endcsname
+ }%
+ }%
+ \@tempa
+ \expandafter\newcommand\expandafter*\csname \tb@nt@type @atbegin\expandafter
+ \endcsname\expandafter{\tb@nt@atbegin}%
+ \expandafter\newcommand\expandafter*\csname \tb@nt@type @atend\expandafter
+ \endcsname\expandafter{\tb@nt@atend}%
+ \fi
+}
+% \end{macrocode}
+% \begin{macro}{\tb@atbegin@after}
+% \changes{v3.09a}{2011/05/30}{new internal}%
+% Processes command \#1 with argument \#2 and optional argument \#3 and than
+% \verb|\csname #2@atbegin\endcsname|. This is used to add
+% \verb|csname #2@atbegin\endcsname| at begin part of a float (but after
+% optional argument of the float).
+% \begin{macrocode}
+\newcommand*{\tb@atbegin@after}[3]{}
+\def\tb@atbegin@after#1#2[#3]{%
+ #1{#2}[#3]%
+ \csname #2@atbegin\endcsname
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@ifvalueisnotempty}
+% \changes{v3.06}{2010/05/21}{new internal}^^A
+% \changes{v3.20}{2015/12/16}{simpler definition}^^A
+% This is only a helper for defining some of the keys.
+% \begin{macrocode}
+\newcommand*{\tb@ifvalueisnotempty}[1]{%
+ \ifstr{#1}{}{%
+ \FamilyKeyStateUnknownValue
+ \expandafter\@gobble
+ }{%
+ \FamilyKeyStateProcessed
+ \expandafter\@firstofone
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tb@boolkey}
+% \changes{v3.06}{2010/05/21}{new (internal)}^^A
+% \changes{v3.20}{2015/12/16}{undefined}^^A
+% \end{macro}
+% \begin{macro}{\tb@dimkey}
+% \changes{v3.06}{2010/05/21}{new (internal)}^^A
+% \changes{v3.20}{2015/12/16}{undefined}^^A
+% \end{macro}
+% \begin{macro}{\tb@numkey}
+% \changes{v3.06}{2010/05/21}{new internal}%
+% \changes{v3.20}{2015/12/16}{undefined}^^A
+% \end{macro}
+% \begin{macro}{\tb@nt@autofloattype}
+% \changes{v3.06}{2010/06/01}{new internal}
+% This macro saves the float type for auto generated float types.
+% \begin{macrocode}
+\newcommand*{\tb@nt@autofloattype}{16}
+%</body>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \iffalse
+%</package>
+%<*load>
+% Used at \KOMAScript{} packages and classes to load the package.
+% \begin{macrocode}
+\RequirePackage{tocbasic}[%
+%!KOMAScriptVersion
+]
+% \end{macrocode}
+%
+%<*class>
+% \KOMAScript{} classes need some additional initialization.
+%
+% \changes{v1.00}{auto-activation of feature \texttt{onecolumn}}
+% Set feature \texttt{onecolumn} for every toc file if feature
+% \texttt{leveldown} was not used.
+% \begin{macrocode}
+%<*chapter>
+\AtAddToTocList[\@currname.\@currext]{\setuptoc{\@currext}{onecolumn}}%
+\AtAddToTocList[float]{\setuptoc{\@currext}{onecolumn}}%
+%</chapter>
+% \end{macrocode}
+% Tell the package, what files are used:
+% \changes{v3.25}{2017/10/10}{extension \texttt{lof} not added explicitely}^^A
+% \changes{v3.25}{2017/10/10}{extension \texttt{lot} not added explicitely}^^A
+% \begin{macrocode}
+\addtotoclist{toc}
+\ifstr{\ext@toc}{toc}{}{\expandafter\addtotoclist\expandafter{\ext@toc}}
+% \end{macrocode}
+%</class>
+%</load>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `tocbasic.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% coding: iso-latin-1
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/koma-script/source/tocstyle.dtx b/macros/latex/contrib/koma-script/source/tocstyle.dtx
new file mode 100644
index 0000000000..eda5188828
--- /dev/null
+++ b/macros/latex/contrib/koma-script/source/tocstyle.dtx
@@ -0,0 +1,2327 @@
+% \CheckSum{1867}
+% \iffalse meta-comment
+% ======================================================================
+% tocstyle.dtx
+% Copyright (c) Markus Kohm, 2007-2017
+%
+% 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.
+%
+% The KOMA-Script bundle consists of all files listed in manifest.txt.
+% The work `tocstyle' consists of the files `tocstyle.dtx' and
+% `scrlogo.dtx'.
+%
+% If you're missing the installation batch file `tocstyle.ins', try
+% tex tocstyle.dtx
+% to unpack all files.
+% The package documentation may be produced repeating
+% latex tocstyle.dtx
+% at least three times.
+% ----------------------------------------------------------------------
+% tocstyle.dtx
+% Copyright (c) Markus Kohm, 2007-2017
+%
+% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets.
+%
+% 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.
+%
+% Das KOMA-Script-Paket besteht aus allen Dateien, die in manifest.txt
+% genannt sind.
+% Das Werk `tocstyle' besteht aus den Dateien `tocstyle.dtx' und
+% `scrlogo.dtx'.
+%
+% Falls Sie die Installations-Batch-Datei `tocstyle.ins' vermissen,
+% probieren Sie einfach einmal
+% tex tocstyle.dtx
+% um alle Dateien auszupacken. Zur englischen Anleitung siehe den
+% englischen Kommentar oben.
+% ======================================================================
+% \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: tocstyle.dtx 2600 2017-02-23 12:07:58Z kohm $
+%<*dtx>
+% \fi
+\def\LaTeXformat{LaTeX2e}
+\let\ifbeta=\iffalse %^^A with = will be replaced by release process
+\ifx\fmtname\LaTeXformat\else
+% \iffalse
+%</dtx>
+%<*insfile>
+% \fi
+\def\batchfile{tocstyle.dtx}
+\input docstrip.tex
+\ifToplevel{%
+ \Msg{**********************************************************************}
+ \Msg{*}
+ \Msg{* KOMA-Script presents tocstyle}
+ \Msg{* a package to define, configure and several different styles for}
+ \Msg{* table of contents, list of floats and comparables.}
+ \Msg{*}
+ \Msg{* This is `\batchfile', a batchfile to unpack the package tocstyle,}
+ \Msg{* the documentation of the package, and an archive of all these files.}
+ \Msg{*}
+ \Msg{**********************************************************************}
+ \keepsilent
+ \askforoverwritefalse
+}
+
+\preamble
+
+Copyright (c) 2007-2017 by 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.
+
+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 file
+`tocstyle.dtx' and `scrlogo.dtx'. You may however distribute the files
+`tocstyle.dtx' and `scrlogo.dtx' without this file.
+
+If this file is a beta version, you are not allowed to distribute it.
+
+English and German manuals are part of KOMA-Script bundle.
+----------------------------------------------------------
+
+The english manual is in `tocstyle.dtx', too.
+
+The KOMA-Script bundle (but 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.
+
+THIS IS AN ALPHA VERSION!
+USAGE OF THIS VERSION IS ON YOUR OWN RISK!
+EVERYTHING MAY HAPPEN!
+EVERYTHING MAY CHANGE IN FUTURE!
+THERE IS NO SUPPORT, IF YOU USE THIS PACKAGE!
+
+\endpreamble
+
+\generate{\usepreamble\defaultpreamble
+ \file{tocstyle.sty}{%
+ \from{tocstyle.dtx}{package,trace,tocstyle}%
+ \from{scrlogo.dtx}{logo}%
+ }%
+}
+
+\ifToplevel{%
+ \generate{\usepreamble\defaultpreamble
+ \file{tocstyle.ins}{%
+ \from{tocstyle.dtx}{insfile}%
+ }%
+ \file{tocstyle.tex}{%
+ \from{tocstyle.dtx}{doc}%
+ }%
+ \file{tocstyle.drv}{%
+ \from{tocstyle.dtx}{driver}%
+ }%
+ }%
+}
+
+\ifToplevel{%
+ \Msg{**********************************************************************}
+ \Msg{*}
+ \ifbeta
+ \Msg{* THIS IS A BETA VERSION. YOU SHOULD NOT INSTALL OR USE IT!}
+ \Msg{* THERE MAY BE A LOT OF BUGS AT THIS VERSION!}
+ \Msg{* PLEASE INSTALL THE RELEASE YOU MAY FIND AT CTAN!}
+ \else
+ \Msg{* To finish the installation you have to copy the file `tocstyle.sty'}
+ \Msg{* to folder `tex/latex/tocstyle/' of one of your TEXMF trees.}
+ \Msg{* You should also produce the documentation using}
+ \Msg{*\space\space pdflatex tocstyle.dtx}
+ \Msg{* and copy it to folder `doc/latex/tocstyle/' of one of your}
+ \Msg{* TEXMF trees.}
+ \Msg{*}
+ \Msg{* See the manual of your TeX distribution for more informations about}
+ \Msg{* package installation.}
+ \fi
+ \Msg{*}
+ \Msg{**********************************************************************}
+}
+% \iffalse
+%</insfile>
+%<*dtx>
+% \fi
+ \def\ProvidesFile{\csname fi\endcsname\csname endinput\endcsname}
+\fi
+\ProvidesFile{tocstyle.dtx}
+% \iffalse
+%</dtx>
+%<package|driver>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<package>\ProvidesPackage{tocstyle}
+%<driver>\ProvidesFile{tocstyle.drv}
+%<doc>\ProvidesFile{tocstyle.tex}
+%<*dtx|package|driver|doc>
+ [2017/02/23 v0.2i-alpha KOMA-Script package (versatile toc styles)]
+%</dtx|package|driver|doc>
+%<*driver>
+\documentclass{scrdoc}
+\usepackage[ngerman,english]{babel}
+\usepackage{listings}
+\lstnewenvironment{lstcode}[1][]{%
+ \lstset{language=[LaTeX]TeX,basicstyle=\ttfamily\small,#1}%
+}{}
+
+\usepackage{tocstyle}
+\usetocstyle[toc]{nopagecolumn}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{tocstyle.dtx}
+\title{The \KOMAScript{} package \texttt{tocstyle}%
+ \footnote{This is version \fileversion\ of file \texttt{\filename}.}}
+\date{\filedate}
+\author{Markus Kohm}
+
+\let\Macro\cs
+\let\Package\textsf
+\let\File\texttt
+\let\Option\texttt
+\let\Counter\texttt
+\let\ShowOutput\quote
+\let\endShowOutput\endquote
+\let\Parameter\marg
+\let\OParameter\oarg
+\newcommand\PParameter[1]{\mbox{\texttt{\{#1\}}}}
+\let\PName\meta
+\let\PValue\texttt
+\newlength\descwidth
+\newenvironment{desctabular}{%
+ \setlength{\descwidth}{\linewidth}
+ \addtolength{\descwidth}{-1em}
+ \addtolength{\descwidth}{-2\tabcolsep}
+ \tabular{@{}lp{\descwidth}@{}}
+ \hline
+}{%
+ \hline
+ \endtabular
+}
+\newcommand{\pventry}[2]{%
+ \multicolumn{2}{@{}l@{}}{\PValue{#1}}\\
+ ~ & #2 \\ }
+\providecommand*{\autoref}[1]{\expandafter\AUTOREF#1:}
+\newcommand*{\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}%
+}
+\makeatother
+
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{english}
+%
+% \changes{v0.1}{2007/06/23}{start of new package}^^A
+% \changes{v0.2h}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+%
+%\iffalse
+%<doc>\chapter{Other Styles for Table of Contents and Lists of Floats}
+%<doc>\labelbase{tocstyle}
+%<doc>\BeginIndex{Package}{tocstyle}
+%\fi
+%
+% \begin{abstract}
+%\iffalse
+%<*doc>
+%\fi
+While the main classes of the \KOMAScript\ bundle were made, there where
+several ideas for formating the table of contents and lists of floats, but
+almost none of them where implemented. One reason was, that the \KOMAScript\
+author didn't like to change the \LaTeX\ kernel at a class, because this may
+result in serveral problems with other packages. The package
+\Package{tocstyle} will fill the gap. If it conflicts with another package,
+you simply may decide not to use it.
+
+Since \KOMAScript~3.20 most of the features of \Package{tocstyle} are also
+provided by other \KOMAScript{} packages like \Package{tocbasic}.
+%\iffalse
+%</doc>
+%\fi
+% \end{abstract}
+%
+% \def\appendixtocdepth{\value{tocdepth}}
+% \tableofcontents
+% \def\appendixtocdepth{2}
+%
+%\iffalse
+%<*doc>
+%\fi
+%
+\section{Package Status}
+\label{sec:tocstyle.status}
+
+Package \Package{tocstyle} has alpha status for a very long time (since
+2007), despite the fact that it was very stable all over the years. The main
+reason for this is that it was an experiment and I always intended to make a
+better successor. Another reason was, that there are known issues, which are
+hardly to fix. So \Package{tocstyle} never became an official part of
+\KOMAScript. Nevertheless it has been published with \KOMAScript, because I
+thought it would be an useful addition. I never thought that the interim
+status of the package would be for more than eight years.
+
+With \KOMAScript~3.20 several features of \Package{tocstyle} can be found also
+in \Package{tocbasic}. I recommend to use that official and essential part of
+\KOMAScript{} instead of \Package{tocstyle} whenever possible. Nevertheless, I
+plan to ensure the compatibility of \Package{tocstyle} with new releases of
+\KOMAScript{} for at least already existing, unchanged documents as long as it
+is possible. But expect that \Package{tocstyle} will move from
+\KOMAScript{} bundle to another package, e.\,g., \KOMAScript-obsolete or a
+stand-alone package.
+
+\section{How It Works}
+\label{sec:tocstyle.howitworks}
+
+Loading the package \Package{tocstyle} will redefine the kernel macro
+\Macro{@starttoc}. Using the redefined \Macro{@starttoc} will redefine
+\Macro{@dottedtocline}, \Macro{l@part} down to \Macro{l@subparagraph},
+\Macro{l@figure}, and \Macro{l@table}, if and only if \Package{tocstyle}
+wasn't deactivated for all TOCs or this TOC. Usage the redefined
+\Macro{@dottedtocline} will redefine \Macro{numberline}.
+
+Redefining \Macro{@starttoc}, \Macro{@dottedtocline}, and \Macro{numberline}
+will activate the features of \Package{tocstyle} for all lists that uses
+these, e.g. table of contents, list of figures and list of tables at the
+standard or the \KOMAScript{} classes. But while not all classes uses
+\Macro{@dottedtocline} and \Macro{@numberline} for all entries to table of
+contents and list of floats the package redefines some other macros that are
+typically used for those entries. These are e.g. \Macro{l@part},
+\Macro{l@chapter} and some more. If the class even does not use those macros,
+you may not use \Package{tocstyle} to change the lists. The term TOC will be
+used for all kind of list, that may be processed by \Package{tocstyle}. The
+package tests wether the original kernel macros \Macro{@starttoc},
+\Macro{@dottedtocline}, and \Macro{numberline} were used or not and warns if
+not.
+
+Package \Package{tocstyle} needs some more information. For the standard and
+the \KOMAScript{} classes these informations may be detected by the
+package. If the result is not the expected, you may configure these
+informations manually.
+
+The entries of every TOC hat a depth. See the counter \Counter{tocdepth} for
+more information about the depth. You may change several settings for the
+entries of either all depths of all TOCs, all depths of one TOC, or one depth
+of one TOC.
+
+But most users will not need to set up \Package{tocstyle} at this low
+level. They simply will select one of the predefined styles and maybe select
+one of the optional features.
+
+\section{Optional Features}
+\label{sec:tocstyle.options}
+
+Optional features will be selected using a package option while loading the
+package or using the package option as a global option loading the class using
+\Macro{documentclass}. Optional features change generall behaviour of all
+TOCs.
+
+%\iffalse
+\begin{Description}
+ \Option{tocindentauto}
+ \Option{tocindentmanual}
+\end{Description}
+\BeginIndex{Option}{tocindentauto}\BeginIndex{Option}{tocindentmanual}
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{tocindentauto}
+\DescribeMacro{tocindentmanual}
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+With option \Option{tocindentauto} all widths at the TOCs are calculated by
+\Package{tocstyle}. The calculation of the width needs at least one \LaTeX{}
+run with all TOC entries. So you need at least three \LaTeX{} runs:
+\begin{itemize}
+\item one to write all the TOC entries to the TOC file
+\item one with the known TOC entries from the TOC file but unknown widths
+\item one with the known TOC entries from the TOC file and known widths
+\end{itemize}
+If the TOC entries changed between the second and the third
+run\,---\,e.g. because of page numbers changed\,---\,you'll need one more run
+(and so on).
+
+Note: The widths of all entries of same depth and same TOC are same. Don't ask
+for less width of page numbers at the first than the last TOC page!
+%\iffalse
+\EndIndex{Option}{tocindentauto}\EndIndex{Option}{tocindentmanual}
+%\fi
+%
+%\iffalse
+\begin{Description}
+ \Option{tocgraduated}
+ \Option{tocflat}
+ \Option{tocfullflat}
+\end{Description}%
+\BeginIndex{Option}{tocgraduated}\BeginIndex{Option}{tocflat}%
+\BeginIndex{Option}{tocfullflat}%
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{tocgraduated}
+\DescribeMacro{tocflat}
+\DescribeMacro{tocfullflat}
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+The option \Option{tocgraduated} selects the graduated version of all
+TOCs. You know the graduated version from the standard classes. Entries of lower
+depth are indented against entries of higher depth. This may e.g. look like:
+\begin{ShowOutput}
+ \showtoc[{%
+ \aliastoc{\tocstyleTOC}{toc}%
+ \usetocstyle[toc]{standard}%
+ \settocfeature[toc]{raggedhook}{\raggedright}%
+ \selecttocstyleoption{tocgraduated}%
+ }]{toc}
+\end{ShowOutput}
+The option \Option{tocflat} selects the flat\,---\,aka left
+aligned\,---\,version of all TOCs. You know the flat version from the
+\KOMAScript{} classes using option \Option{tocleft}. This may e.g. look like:
+\begin{ShowOutput}
+ \showtoc[{%
+ \aliastoc{\tocstyleTOC}{toc}%
+ \usetocstyle[toc]{standard}%
+ \selecttocstyleoption{tocflat}%
+ }]{toc}%
+\end{ShowOutput}
+The option \Option{tocfullflat} is similar to flat version of all
+TOCs, but there is even no box of same width for the numbers of all entries.
+This may e.g. look like:
+\begin{ShowOutput}
+ \showtoc[{%
+ \aliastoc{\tocstyleTOC}{toc}%
+ \usetocstyle[toc]{standard}%
+ \selecttocstyleoption{tocfullflat}%
+ }]{toc}%
+\end{ShowOutput}
+Default is option \Option{tocgraduated}.
+%\iffalse
+\EndIndex{Option}{tocgraduated}\EndIndex{Option}{tocflat}%
+\EndIndex{Option}{tocfullflat}%
+%\fi
+%
+%\iffalse
+\begin{Description}
+ \Option{tocbreaksstrict}\\
+ \Option{tocbreakscareless}
+\end{Description}%
+\BeginIndex{Option}{tocbreaksstrict}%
+\BeginIndex{Option}{tocbreakscareless}%
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{tocbreaksstrict}
+\DescribeMacro{tocbreakscareless}
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+Default option \Option{tocbreaksstrict} sets a lot of penalties before and
+after TOC entries to avoid page break between a TOC entry and it's parent. But
+sometimes you may like to allow more page breaks. You may use option
+\Option{tocbreakscareless} for this.
+%\iffalse
+\EndIndex{Option}{tocbreaksstrict}\EndIndex{Option}{tocbreakscareless}%
+%\fi
+%
+%\iffalse
+\begin{Description}
+ \Option{toctextentriesindented}\\
+ \Option{toctextentriesleft}
+\end{Description}%
+\BeginIndex{Option}{toctextentriesindented}%
+\BeginIndex{Option}{toctextentriesleft}%
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{toctextentriesindented}
+\DescribeMacro{toctextentriesleft}
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+With default option \Option{toctextentriesleft} unnumbered TOC entries,
+e.g. from \KOMAScript{} command \Macro{addchap}, are indented only as wide as
+the number of numbered TOC entries of the same level are. But with option
+\Option{toctextentriesindented} these are indented as if they have an empty
+number.
+%\iffalse
+\EndIndex{Option}{toctextentriesindented}%
+\EndIndex{Option}{toctextentriesleft}%
+%\fi
+%
+\section{Using TOC Styles}
+\label{sec:tocstyle.usestyles}
+
+Package \Package{tocstyle} hat several predefined toc styles. Most users will
+never need to define their own toc style but only select one of the
+predefined and maybe configure it by one of the options described at the
+previsous section.
+
+%\iffalse
+\begin{Description}
+ \Macro{usetocstyle}\OParameter{TOC}\Parameter{style}
+\end{Description}%
+\BeginIndex{Macro}{usetocstyle}%
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{\usetocstyle}
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+You may set the style of one or all TOCs. If you want to set the style of all
+TOCs, you'd simply say \Macro{usetocstyle}\Parameter{style}. This will set
+all settings of the given style to all TOCs. Individual settings will
+overwrite this generall setting.
+
+If you use \Macro{usetocstyle}\OParameter{TOC}\Parameter{style}, only the
+style of the given TOC will be set. This will be done \emph{after} the general
+setting. Only individual settings of single features may overwrite the setting
+of the style.
+
+The \autoref{tab:tocstyle.styles} shows the predefined styles, that may be
+used as mandatory argument of \Macro{tocstyle}. The optional argument
+\PName{TOC} is the shortcut (file extension) of the TOC. Examples of known
+shortcuts are shown at \autoref{tab:tocstyle.shortcuts}.
+
+\begin{table}
+ \centering
+ \caption{Predefined TOC Styles}
+ \label{tab:tocstyle.styles}
+ \begin{desctabular}
+ \pventry{standard}{A style similar to the standard classes. All width are
+ predefined to the width of the standard classes, but may be overwritten
+ by the general options (see \autoref{sec:tocstyle.options}). The depth -1
+ (part) and 0 (chapter) are set in bold face (\Macro{bfseries}). If no
+ depth 0 was found at the TOC, depth 1 (section) will be set in bold
+ face, too. All other depth will be set in normal font. Depth -1 (part)
+ will be set using \Macro{large}. The font changes are valid for the
+ page numbers, too.}%
+ \pventry{KOMAlike}{A style similar to the \KOMAScript{} classes. This is
+ almost the same like \PValue{standard}, but instead of bold face
+ \Macro{usekomafont}\PParameter{disposition} will be used if
+ \Macro{usekomafont} was defined and sans serif, bold face
+ (\Macro{sffamily}\Macro{bfseries}) if not.}%
+ \pventry{classic}{Like \PValue{KOMAlike} but all page numbers are set
+ using normal font.}%
+ \pventry{allwithdot}{Like \PValue{classic} but dots between entry text and
+ page numbers are used at all depths.}%
+ \pventry{noonewithdot}{Like \PValue{classic} but not dots between entry
+ text and page numbers are used.}%
+ \pventry{nopagecolumn}{Like \PValue{noonewithdot} but also the gap
+ between text and page numbers is omited. This means, that the page
+ numbers are set 1\,em after the text.}%
+ \end{desctabular}
+\end{table}
+
+Note: Before you're setting a style the style of the TOCs are
+unspecified. This means that some entries may be set using \Package{tocstyle}
+others may not.
+
+\begin{table}
+ \centering
+ \caption{Known TOC Shortcuts}
+ \label{tab:tocstyle.shortcuts}
+ \begin{desctabular}
+ \pventry{toc}{Table of contents of almost all known classes.}
+ \pventry{lof}{List of figures of almost all known classes.}
+ \pventry{lot}{List of tables of almost all known classes.}
+ \pventry{lol}{List of listings of package \Package{listings}. Currently
+ the usability of \Package{listings} with \Package{tocstyle} is not
+ recomended. Maybe it works, maybe not. Maybe you should try
+ \Macro{deactivatetocstyle[lol]}.}
+ \end{desctabular}
+\end{table}
+%\iffalse
+\EndIndex{Macro}{usetocstyle}%
+%\fi
+%
+%\iffalse
+\begin{Description}
+ \Macro{deactivatetocstyle}\OParameter{TOC}\\
+ \Macro{reactivatetocstyle}\OParameter{TOC}
+\end{Description}%
+\BeginIndex{Macro}{\deactivatetocstyle}\BeginIndex{Macro}{\reactivatetocstyle}%
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{\deactivatetocstyle}\DescribeMacro{\reactivatetocstyle}
+Both commands have one optional argument \PName{TOC}.
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+You may deactive the influence of \Package{tocstyle} for a TOC and reactivate
+it. If you use \Macro{deactivatetocstyle} without the optional argument or
+empty optional argument, the influence of \Package{tocstyle} for all TOCs will
+be deactivated and may reactivated only using \Macro{reactivatetocstyle}
+without the optional argument or empty optional argument too.
+
+After deactivation of \Package{tocstyle} for one TOC or all TOCs you may
+continue configuring TOCs. All these changes will be used after reactivation.
+%\iffalse
+\EndIndex{Macro}{\deactivatetocstyle}\EndIndex{Macro}{\reactivatetocstyle}%
+%\fi
+
+%
+
+\section{Setting-up Single Features}
+\label{sec:tocstyle.singlefeatures}
+
+At the previous section you've learned how to select a predefined TOC
+style. You were also told, that you may change one ore more features against
+the used predefined TOC style for one or all depth of one ore all TOCs. Now
+you will learn how to do this.
+
+%\iffalse
+\begin{Description}
+ \Macro{settocfeature}%
+ \OParameter{TOC}\OParameter{depth}\Parameter{feature}\Parameter{commands}\\
+ \Macro{settocstylefeature}%
+ \OParameter{depth}\Parameter{feature}\Parameter{commands}
+\end{Description}%
+\BeginIndex{Macro}{settocfeature}\BeginIndex{Macro}{settocstylefeature}%
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{\settocfeature}
+\DescribeMacro{\settocstylefeature}
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+These commands are used to set a single feature eiher of all depth of all TOCs
+(\Macro{settocfeature} \Parameter{feature} \Parameter{command} or
+\Macro{settocstylefeature} \Parameter{feature} \Parameter{commands}), or of
+all depth of a single TOC (\Macro{settocfeature}
+\OParameter{TOC} \Parameter{feature} \Parameter{commands}), or of a single
+depth of all TOCs (\Macro{settocstylefeature}
+\OParameter{depth} \Parameter{feature} \Parameter{commands}), or of a single
+depth of a single TOC (\Macro{settocfeature} \OParameter{TOC}
+\OParameter{depth} \Parameter{feature} \Parameter{commands}).
+
+Parameter \PName{commands} is a list of commands. In most cases these must not
+be commands, that need an argument. So you should e.g. not use \Macro{textbf}
+but \Macro{bfseries} to switch to bold face. Parameter \PName{feature} is
+the feature, that may be configured with parameter \PName{commands}. All known
+features are show at \autoref{tab:tocstyle.features}.
+
+\begin{table}
+ \centering
+ \caption{Features that May Be Set}
+ \label{tab:tocstyle.features}
+ \begin{desctabular}
+ \pventry{dothook}{will be executed before any dot of the dot line}%
+ \pventry{entryhook}{hook before the entry will be set}%
+ \pventry{entryvskip}{initial vertical skip amount (if not set 0pt plus
+ .2pt will be used)}%
+ \pventry{leaders}{commands for fillin the gap between entry text and page
+ number (if not set the default leaders command with dots will be used)}%
+ \pventry{pagenumberbox}{the box command for setting the page number (if
+ not set the default box of with \Macro{@pnumwidth} will be used); note,
+ that this has to be a command with exactly one argument}%
+ \pventry{pagenumberhook}{hook before the page number will be set at the
+ page number box}%
+ \pventry{parfillskip}{add this amount to the default value of
+ \Macro{parfillskip} after setting up all lengths}%
+ \pventry{raggedhook}{the only allowed values here are \Macro{raggedright}
+ or nothing}%
+ \pventry{spaceafternumber}{amount of minimum space after the entry number,
+ if the needed width will be calculated automaticly}%
+ \end{desctabular}
+\end{table}
+
+The order of used commands for a feature is
+\begin{enumerate}
+\item commands for all depths of all TOCs,
+\item commands for all depth of a single TOC,
+\item commands for a single depth of all TOCs,
+\item commands for a single depth of a single TOC,
+\end{enumerate}
+and settings of \Macro{usetocstyle} may be overwritten by
+\Macro{settocfeature} und \Macro{settocstylefeature}.
+%\iffalse
+\EndIndex{Macro}{settocfeature}\EndIndex{Macro}{settocstylefeature}%
+%\fi
+%
+
+\section{Defining New TOC Styles}
+\label{sec:tocstyle.define}
+
+Now you know how to select a prefedined TOC style and how to change single
+features. But wouldn't it be nice to define your own TOC style?
+
+%\iffalse
+\begin{Description}
+ \Macro{newtocstyle}\OParameter{parent style}\OParameter{exclude features}%
+ \Parameter{new style}%
+ \Parameter{\Macro{settocstylefeature}-commands}
+\end{Description}%
+\BeginIndex{Macro}{\newtocstyle}%
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{\newtocstyle}
+You may do this using \Macro{newtocstyle}\OParameter{parent
+ style} \OParameter{exclude features} \Parameter{style
+ name} \Parameter{\Macro{settocstylefeature}-commands}.
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+If you used the optional argument \PName{parent style} all features of the
+parent style will be part of the new style, before overwriting them with the
+features of the \PName{\Macro{settocstylefeature}-commands}. You should not
+use any other commands at the last argument. But at \Macro{newtocstyle} the
+command \Macro{settocfeature} becomes an alias for \Macro{settocstylefeature}
+to avoid to much mistakes.
+
+The second optional argument is a comma seperated list of feature names. If it
+is used, these features of the parent style (and all ancestors of the parent)
+will not be part of the new style.
+%\iffalse
+\EndIndex{Macro}{\newtocstyle}%
+%\fi
+
+%\iffalse
+\begin{Description}
+ \Macro{aliastoc}\Parameter{original-TOC}\Parameter{alias-TOC}
+\end{Description}%
+\BeginIndex{Macro}{\aliastoc}%
+You
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{\aliastoc}
+Using \Macro{aliastoc}\Parameter{original-TOC}\Parameter{alias-TOC} you
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+may define an alias for a TOC. The first argument is the original TOC for that
+the second argument should be the alias. An alias-TOC will be processed
+with all settings, that were done for the original-TOC. Internally this
+command is used as default for the optional, first argument of
+\Macro{showtoc}.%
+%\iffalse
+\EndIndex{Macro}{\aliastoc}
+%\fi
+
+\section{Processing a TOC}
+\label{sec:tocstyle.processing}
+
+While \LaTeX{} inputs a toc file it processes the commands of the TOC. These
+commands mainly produce the entries of the toc. Some commands are only
+available or valid while a TOC is processed. But be carefull: Some of these
+are read-only commands. Changing such a read-only command may result in
+various errors!
+
+%\iffalse
+\begin{Description}
+ \Macro{@starttoc}\Parameter{TOC}\\
+ \Macro{showtoc}\OParameter{preprocession}\Parameter{TOC}
+\end{Description}%
+\BeginIndex{Macro}{\@starttoc}%
+\BeginIndex{Macro}{\showtoc}%
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{\@starttoc}%
+\DescribeMacro{\showtoc}%
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+The internal comand \Macro{@startoc} is defined by the \LaTeX{} kernel. It is
+used by package and class authors to build commands like
+\Macro{tableofcontents} or \Macro{listoffigures}. Without using it you will
+not get a toc file. \Package{tocstyle} redefines it, to add pre- and
+post-processing commands. The original definition found by \Package{tocstyle}
+will be used inside the redefinition.
+
+\Macro{showtoc}%
+%\iffalse
+%</doc>
+%<*dtx>
+%\fi
+\OParameter{preprocession}\Parameter{TOC}%
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+\ is an addition of \texttt{tocstyle}. Using it will procude a copy of TOC and
+process this copy. The copy will be done just after creating the original
+TOC. The copy will be an alias for the original file. The extension of the
+copy is the generated alias if \PName{TOC}. You may generate the alias using
+\Macro{aliastoc} at the optional argument of \Macro{showtoc}. The default for
+this optional argument will be
+\Macro{aliastoc}\Macro{tocstyleTOC}\Macro{tocstyleAliasTOC} and the default
+alias \Macro{tocstyleAliasTOC} will be \Macro{tocstyleTOC} extended by a
+number.
+%\iffalse
+\begin{example}
+%\fi
+The first TOC example at \autoref{sec:tocstyle.options} was made using
+\begin{lstcode}
+ \showtoc[{%
+ \aliastoc{\tocstyleTOC}{toc}%
+ \usetocstyle[toc]{standard}%
+ \settocfeature[toc]{raggedhook}{\raggedright}%
+ \selecttocstyleoption{tocgraduated}%
+ }]{toc}
+\end{lstcode}
+If you want to show a copy of the table of contents, that shows only depth~1 of
+the headlines you may simply use:
+\begin{lstcode}
+ \showtoc[{%
+ \expandafter\value{tocdepth}=1\relax
+ \aliastoc{\tocstyleTOC}{toc}%
+ }]{toc}
+\end{lstcode}
+or
+\begin{lstcode}
+ \newcounter{savedtocdepth}
+ \setcounter{savedtocdepth}{\value{tocdepth}}
+ \setcounter{tocdepth}{1}
+ \showtoc{toc}
+ \setcounter{tocdepth}{\value{savedtocdepth}}
+\end{lstcode}
+%\iffalse
+\end{example}%
+\EndIndex{Macro}{\showtoc}
+%\fi
+
+%\iffalse
+\begin{Description}
+ \Macro{tocstyleTOC}\\
+ \Macro{tocstyleAliasTOC}
+\end{Description}%
+\BeginIndex{Macro}{\tocstyleTOC}%
+\BeginIndex{Macro}{\tocstyleAliasTOC}%
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{\tocstyleTOC}%
+\DescribeMacro{\tocstyleAliasTOC}%
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+These are read-only macros. While processing a TOC using \Macro{@starttoc} or
+\Macro{showtoc}, \Macro{tocstyleAliasTOC} is the shortcut, that is valid for
+the features and \Macro{tocstyleTOC} is valid for the file extension to be
+used.%
+%\iffalse
+\EndIndex{Macro}{\tocstyleAliasTOC}%
+\EndIndex{Macro}{\tocstyleTOC}
+%\fi
+
+%\iffalse
+\begin{Description}
+ \Macro{tocstyledepth}
+\end{Description}%
+\BeginIndex{Macro}{\tocstyledepth}%
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{\tocstyledepth}
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+This is a read-only macro. While processing a single toc entry with
+\Macro{@dottedtocline} this is the depth (first argument of
+\Macro{@dottedtocline}) of this entry. Most users will never need this, but it
+is often used internaly. Because of this \emph{you should never change it!}%
+%\iffalse
+\EndIndex{Macro}{\tocstyledepth}
+%\fi
+
+%\iffalse
+\begin{Description}
+ \Macro{iftochasdepth}\Parameter{TOC}\Parameter{depth}\Parameter{true}%
+ \Parameter{false}
+\end{Description}
+\BeginIndex{Macro}{\iftochasdepth}%
+You
+%</doc>
+%<*dtx>
+%\fi
+\DescribeMacro{\iftochasdepth}
+Using \Macro{iftochasdepth}\Parameter{TOC}\Parameter{depth}\Parameter{true}%
+ \Parameter{false} you
+%\iffalse
+%</dtx>
+%<*doc>
+%\fi
+may test, if an entry of a given depth was already output to a TOC. If so
+the commands of argument \PName{true} will be processed. If not so the
+commands of argument \PName{false} will be processed.%
+%\iffalse
+\EndIndex{Macro}{\iftochasdepth}
+%\fi
+
+\section{Configuration file}
+\label{sec:tocstyle.cfg}
+
+There's another feature for new toc styles. If there's a file
+\File{tocstyle.cfg} it will be loaded at the end of the package. This is
+usefull to define your own toc styles.
+
+%
+%\iffalse
+%</doc>
+%\fi
+%
+% \StopEventually{%
+% \clearpage
+% \appendix
+% \addtocontents{toc}{%
+% \value{tocdepth}=\protect\appendixtocdepth\relax}
+% \section{Examples for the Different TOC Styles}
+% Here you will find the table of contents of this document set in the
+% different TOC styles. All are set with option \Option{tocindentauto}.
+%^^A The appendix will be omitted.
+% \subsection{Graduated Versions}
+% First of all all graduated versions of the table of contents
+% \selecttocstyleoption{tocgraduated}%
+% \subsubsection{\PValue{standard} with Option \Option{tocgraduated}}
+% \usetocstyle[toc]{standard}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{KOMAlike} with Option \Option{tocgraduated}}
+% \usetocstyle[toc]{KOMAlike}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{classic} with Option \Option{tocgraduated}}
+% \usetocstyle[toc]{classic}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{allwithdot} with Option \Option{tocgraduated}}
+% \usetocstyle[toc]{allwithdot}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{noonewithdot} with Option \Option{tocgraduated}}
+% \usetocstyle[toc]{noonewithdot}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{nopagecolumn} with Option \Option{tocgraduated}}
+% \usetocstyle[toc]{nopagecolumn}
+% \showtoc{toc}\clearpage
+% \subsection{Flat Versions}
+% Now, all flat versions of the table of contents
+% \selecttocstyleoption{tocflat}%
+% \subsubsection{\PValue{standard} with Option \Option{tocflat}}
+% \usetocstyle[toc]{standard}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{KOMAlike} with Option \Option{tocflat}}
+% \usetocstyle[toc]{KOMAlike}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{classic} with Option \Option{tocflat}}
+% \usetocstyle[toc]{classic}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{allwithdot} with Option \Option{tocflat}}
+% \usetocstyle[toc]{allwithdot}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{noonewithdot} with Option
+% \Option{tocflat}}
+% \usetocstyle[toc]{noonewithdot}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{nopagecolumn} with Option
+% \Option{tocflat}}
+% \usetocstyle[toc]{nopagecolumn}
+% \showtoc{toc}\clearpage
+% \subsection{Fullflat Versions}
+% Now, all full-flat versions of the table of contents
+% \selecttocstyleoption{tocfullflat}%
+% \subsubsection{\PValue{standard} with Option \Option{tocfullflat}}
+% \usetocstyle[toc]{standard}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{KOMAlike} with Option \Option{tocfullflat}}
+% \usetocstyle[toc]{KOMAlike}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{classic} with Option \Option{tocfullflat}}
+% \usetocstyle[toc]{classic}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{allwithdot} with Option \Option{tocfullflat}}
+% \usetocstyle[toc]{allwithdot}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{noonewithdot} with Option
+% \Option{tocfullflat}}
+% \usetocstyle[toc]{noonewithdot}
+% \showtoc{toc}\clearpage
+% \subsubsection{\PValue{nopagecolumn} with Option
+% \Option{tocfullflat}}
+% \usetocstyle[toc]{nopagecolumn}
+% \showtoc{toc}\clearpage
+% \PrintIndex\PrintChanges}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \begin{macrocode}
+\PackageWarningNoLine{tocstyle}{%
+ THIS IS AN ALPHA VERSION!\MessageBreak
+ USAGE OF THIS VERSION IS ON YOUR OWN RISK!\MessageBreak
+ EVERYTHING MAY HAPPEN!\MessageBreak
+ EVERYTHING MAY CHANGE IN FUTURE!\MessageBreak
+ THERE IS NO SUPPORT, IF YOU USE THIS PACKAGE!\MessageBreak
+ Maybe it would be better, not to load this package%
+}
+% \end{macrocode}
+%
+% \subsection{Option}
+%
+% Options change general behaviour of TOCs.
+%
+% \begin{macro}{\selecttocstyleoption}
+% \begin{macrocode}
+\newif\if@tocstyle@penalties
+\newif\iftocstyle@autolength
+\newif\iftocstyle@indentnotnumbered
+\newcount\tocstyle@indentstyle\tocstyle@indentstyle=\z@
+\newcommand*{\selecttocstyleoption}[1]{%
+ \begingroup
+ \edef\@tempa{#1}%
+ \edef\@tempb{tocbreaksstrict}%
+ \ifx\@tempa\@tempb\aftergroup\@tocstyle@penaltiestrue\else
+ \edef\@tempb{tocbreakscareless}%
+ \ifx\@tempa\@tempb\aftergroup\@tocstyle@penaltiesfalse\else
+ \edef\@tempb{tocindentauto}
+ \ifx\@tempa\@tempb\aftergroup\tocstyle@autolengthtrue\else
+ \edef\@tempb{tocindentmanual}%
+ \ifx\@tempa\@tempb\aftergroup\tocstyle@autolengthfalse\else
+ \edef\@tempb{tocgraduated}%
+ \ifx\@tempa\@tempb
+ \aftergroup\tocstyle@indentstyle\aftergroup\z@
+ \else
+ \edef\@tempb{tocflat}%
+ \ifx\@tempa\@tempb
+ \aftergroup\tocstyle@indentstyle\aftergroup\@ne
+ \aftergroup\relax
+ \else
+ \edef\@tempb{tocfullflat}%
+ \ifx\@tempa\@tempb
+ \aftergroup\tocstyle@indentstyle\aftergroup\tw@
+ \aftergroup\relax
+ \else
+ \edef\@tempb{toctextentriesindented}%
+ \ifx\@tempa\@tempb\aftergroup\tocstyle@indentnotnumberedtrue
+ \else
+ \edef\@tempb{toctextentriesleft}%
+ \ifx\@tempa\@tempb
+ \aftergroup\tocstyle@indentnotnumberedfalse
+ \else
+ \PackageError{tocstyle}{unknown option `#1'}{%
+ You've told me to select toc style option
+ `#1',\MessageBreak
+ but tocstyle doesn't know an option named `#1'}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{option}{chapter}
+% \changes{v0.2d}{2009/11/11}{New}
+% \begin{option}{nochapter}
+% \changes{v0.2d}{2009/11/11}{New}
+% \begin{macro}{\iftochaschapter}
+% \changes{v0.2d}{2009/11/11}{New}
+% Do we have \cs{chapter} and \cs{l@chapter}?
+% \begin{macrocode}
+\newif\iftochaschapter\tochaschapterfalse
+\ifcsname l@chapter\endcsname
+ \ifcsname chapter\endcsname
+ \tochaschaptertrue
+ \fi
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{tocbreaksstrict}
+% \begin{option}{tocbreakscareless}
+% Switch on extended pernalties.
+% \begin{macrocode}
+\DeclareOption{tocbreaksstrict}{\selecttocstyleoption\CurrentOption}
+\DeclareOption{tocbreakscareless}{\selecttocstyleoption\CurrentOption}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{tocindentauto}
+% \begin{option}{tocindentmanual}
+% \begin{macrocode}
+\DeclareOption{tocindentauto}{\selecttocstyleoption\CurrentOption}
+\DeclareOption{tocindentmanual}{\selecttocstyleoption\CurrentOption}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{toctextentriesindented}
+% \begin{option}{toctextentriesleft}
+% \begin{macrocode}
+\DeclareOption{toctextentriesindented}{\selecttocstyleoption\CurrentOption}
+\DeclareOption{toctextentriesleft}{\selecttocstyleoption\CurrentOption}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{tocgraduated}
+% \begin{option}{tocflat}
+% \begin{option}{tocfullflat}
+% \begin{macrocode}
+\DeclareOption{tocgraduated}{\selecttocstyleoption\CurrentOption}
+\DeclareOption{tocflat}{\selecttocstyleoption\CurrentOption}
+\DeclareOption{tocfullflat}{\selecttocstyleoption\CurrentOption}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+% \end{option}
+%
+% Defaults and others:
+% \begin{macrocode}
+\ExecuteOptions{tocbreaksstrict,tocindentauto,tocgraduated,%
+ toctextentriesleft}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifcsname if@tocleft\endcsname
+ \expandafter\let\csname if@tempswa\expandafter\endcsname
+ \csname if@tocleft\endcsname
+\else
+ \@tempswafalse
+\fi
+\if@tempswa
+ \PackageWarningNoLine{tocstyle}{%
+ You should not use class option `toc=flat'!\MessageBreak
+ This may result in errors or unexpected results.\MessageBreak
+ I'll try to deactivate `toc=flat', now.\MessageBreak
+ You may use package options `tocflat' and\MessageBreak
+ `tocindentauto' instead of `toc=flat'}%
+ \csname @tocleftfalse\endcsname
+\fi
+% \end{macrocode}
+%
+%
+% \subsection{Body}
+%
+% There are two parts at \Package{tocstyle}:
+% \begin{itemize}
+% \item redefining internal \LaTeX{} kernel macros,
+% \item defining new macros and redefining class macros.
+% \end{itemize}
+% Redefining \LaTeX{} kernel macros may not be switched of. But redefining
+% class macros will only be on demand.
+%
+% \subsubsection{Redefining \LaTeX{} Kernel Macros}
+%
+% Some \LaTeX{} kernel macros must be redefined to add the new
+% functionality. Before redefining them, we test against the definition at
+% kernel 2005/12/01
+%
+% \begin{macro}{\@starttoc}
+% \begin{macro}{\tocstyle@saved@@starttoc}
+% The original definition will be extended by defaults for \cs{parskip},
+% \cs{parindent} and % \cs{parfillskip} and storage of the shortcut of the
+% current TOC.
+% \begin{macrocode}
+\newcommand*\tocstyle@saved@starttoc{}
+\let\tocstyle@saved@starttoc\@starttoc
+\renewcommand*{\@starttoc}[1]{%
+ \tocstyle@pre@starttoc{#1}%
+ \tocstyle@saved@starttoc{#1}%
+ \tocstyle@post@starttoc{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tocstyle@saved@dottedtocline}
+% For saving the unchanged definition (at \cs{begin{document}}):
+% \begin{macrocode}
+\newcommand*{\tocstyle@saved@dottedtocline}{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tocstyle@dottedtocline}
+% Implement new definition and redefine:
+%^^A ------ Help me to find the \renecommand*{\@dottedtocline} ----------------
+% \begin{macrocode}
+\newcommand*{\tocstyle@dottedtocline}[5]{%
+ \let\numberline\tocstyle@numberline
+ \ifnum #1>\c@tocdepth \else
+% \end{macrocode}
+% Penalty feature: no page break between higher and lower depths.
+% \begin{macrocode}
+ \if@tocstyle@penalties
+ \begingroup
+ \@tempcnta 20010
+ \advance \@tempcnta by -#1
+ \ifnum \@tempcnta>\lastpenalty
+ \aftergroup\penalty\aftergroup\@lowpenalty
+ \fi
+ \endgroup
+ \fi
+% \end{macrocode}
+% Activation of all features for this TOC and depth:
+% \begin{macrocode}
+ \edef\tocstyledepth{#1}%
+ \tocstyle@activate@features
+% \end{macrocode}
+% Similar to kernel command but if feature \texttt{entryvskip} was set use
+% \cs{addvspace}:
+% \begin{macrocode}
+ \ifx\tocstyle@feature@entryvskip\relax
+ \vskip \z@ \@plus.2\p@
+ \else
+ \addvspace{\tocstyle@feature@entryvskip}%
+ \fi
+ {%
+% \end{macrocode}
+% Preinitialization of lengths and skips and then call a hook
+% \begin{macrocode}
+ \parskip \z@ \parindent \z@ \leftskip \z@ \rightskip \z@
+ \tocstyle@feature@raggedhook
+% \end{macrocode}
+% Set number indent to \cs{@tempdimb} and text indent to \cs{@tempdima}.
+% \begin{macrocode}
+ \@tempdima #3\relax
+ \@tempdimb #2\relax
+%<trace> \typeout{number indent by \string\l@... (\tocstyleTOC, \tocstyledepth): \space\the\@tempdimb}%
+%<trace> \typeout{text indent by \string\l@... (\tocstyleTOC, \tocstyledepth): \space\the\@tempdima}%
+% \end{macrocode}
+% \changes{v0.2d}{2009/11/09}{fix: use of max-values}
+% Calc auto lengths. Use max. of last run of parents if available.
+% \begin{macrocode}
+ \ifnum #1>\z@\relax
+ \@tempcnta #1\relax \advance\@tempcnta \m@ne
+ \ifcsname tocstyle@maxskipwidth@\tocstyleTOC @\the\@tempcnta\endcsname
+ \ifcsname tocstyle@maxnumwidth@\tocstyleTOC @\the\@tempcnta\endcsname
+ \@tempdimb
+ \csname tocstyle@maxskipwidth@\tocstyleTOC @\the\@tempcnta\endcsname
+ \advance\@tempdimb
+ \csname tocstyle@maxnumwidth@\tocstyleTOC @\the\@tempcnta\endcsname
+ \fi
+ \fi
+ \fi
+%<trace> \typeout{number indent by parent (\tocstyleTOC, \tocstyledepth): \space\the\@tempdimb}%
+ \ifcsname tocstyle@skipwidth@\tocstyleTOC @#1\endcsname
+ \ifdim \@tempdimb>
+ \csname tocstyle@skipwidth@\tocstyleTOC @#1\endcsname\relax
+ \expandafter\xdef\csname tocstyle@skipwidth@\tocstyleTOC
+ @#1\endcsname{\the\@tempdimb}%
+ \fi
+ \else
+ \expandafter\xdef\csname tocstyle@skipwidth@\tocstyleTOC
+ @#1\endcsname{\the\@tempdimb}%
+ \fi
+ \iftocstyle@autolength
+ \ifcsname tocstyle@maxskipwidth@\tocstyleTOC @#1\endcsname
+ \@tempdimb \csname tocstyle@maxskipwidth@\tocstyleTOC @#1\endcsname
+ \relax
+ \fi
+ \ifcsname tocstyle@maxnumwidth@\tocstyleTOC @#1\endcsname
+ \@tempdima \csname tocstyle@maxnumwidth@\tocstyleTOC @#1\endcsname
+ \relax
+ \fi
+%<trace> \typeout{text indent calculated (\tocstyleTOC, \tocstyledepth): \the\@tempdima}%
+%<trace> \typeout{number indent calculated (\tocstyleTOC, \tocstyledepth): \the\@tempdimb}%
+ \else
+ \@tempdimb #2\relax
+%<trace> \typeout{number indent explicite (\tocstyleTOC, \tocstyledepth): \the\@tempdimb}%
+ \fi
+ \ifcsname tocstyle@unumwidth@\tocstyleTOC @\endcsname
+ \ifdim \@tempdima>
+ \csname tocstyle@unumwidth@\tocstyleTOC @\endcsname\relax
+ \expandafter\xdef\csname tocstyle@unumwidth@\tocstyleTOC
+ @\endcsname{\the\@tempdima}%
+ \fi
+ \else
+ \expandafter\xdef\csname tocstyle@unumwidth@\tocstyleTOC
+ @\endcsname{\the\@tempdima}%
+ \fi
+ \ifcase\tocstyle@indentstyle\relax\else
+ \@tempdimb \z@
+ \ifcsname tocstyle@maxunumwidth@\tocstyleTOC @\endcsname
+ \@tempdima \csname tocstyle@maxunumwidth@\tocstyleTOC @\endcsname
+ \relax
+ \fi
+%<trace> \typeout{text noindent (\tocstyleTOC, \tocstyledepth): \the\@tempdima}%
+%<trace> \typeout{number noindent (\tocstyleTOC, \tocstyledepth): \the\@tempdimb}%
+ \fi
+% \end{macrocode}
+% Advance instead of set, because of the hook above:
+% \begin{macrocode}
+ \advance\parindent \@tempdimb\@afterindenttrue
+ \advance\leftskip \parindent
+ \advance\rightskip \@tocrmarg
+ \parfillskip -\rightskip
+ \ifx\tocstyle@feature@parfillskip\relax\else
+ \advance\parfillskip \tocstyle@feature@parfillskip\relax
+ \fi
+ \interlinepenalty\@M
+ \leavevmode
+ \advance\leftskip \@tempdima
+ \null\nobreak
+% \end{macrocode}
+% \cs{hskip}\cs{-leftskip} optional moved to \cs{numberline}
+% \begin{macrocode}
+ \iftocstyle@indentnotnumbered\else
+ \hskip -\leftskip
+ \fi
+% \end{macrocode}
+% Change at start of the entry
+% \begin{macrocode}
+ \tocstyle@feature@entryhook
+% \end{macrocode}
+% Similar to kernel command but if feature \texttt{leaders} was set use
+% this instead of the default leaders. And if feature \texttt{dothook} was set
+% (default is \cs{normalfont}) use this at the default leaders.
+% \begin{macrocode}
+ {#4}\nobreak
+ \ifx\tocstyle@feature@leaders\relax
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{\tocstyle@feature@dothook .}%
+ \mkern \@dotsep mu$}\hfill
+ \else
+ \tocstyle@feature@leaders
+ \fi
+ \nobreak
+ \ifx\tocstyle@feature@pagenumberbox\relax
+ \hb@xt@\@pnumwidth{\hfil\tocstyle@feature@pagenumberhook #5}%
+ \else
+ \tocstyle@feature@pagenumberbox{\tocstyle@feature@pagenumberhook #5}%
+ \fi
+ \par
+ }%
+% \end{macrocode}
+% Last change is, another penalty change:
+% \begin{macrocode}
+ \if@tocstyle@penalties
+ \bgroup
+ \@tempcnta 20009
+ \advance\@tempcnta by -#1
+ \edef\reserved@a{\egroup\penalty\the\@tempcnta\relax}%
+ \reserved@a
+ \fi
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tocstyle@saved@numberline}
+% \begin{macro}{\tocstyle@numberline}
+% Define a new \cs{numberline}, that will do all the job after
+% \cs{begin{document}} and one to save the original definition.
+%^^A----------------------- \renewcommand*\numberline ------------------------
+% \begin{macrocode}
+\newcommand*{\tocstyle@saved@numberline}{}
+\newcommand*{\tocstyle@numberline}[1]{%
+ \begingroup
+ \ifx\tocstyle@feature@spaceafternumber\relax
+ \settowidth\@tempdima{\tocstyle@@numberline{#1}\enskip}%
+ \else
+ \settowidth\@tempdima{\tocstyle@@numberline{#1}}%
+ \advance \@tempdima \tocstyle@feature@spaceafternumber\relax
+ \fi
+ \ifcsname tocstyle@numwidth@\tocstyleTOC @\tocstyledepth\endcsname
+ \ifdim \@tempdima >
+ \csname tocstyle@numwidth@\tocstyleTOC @\tocstyledepth\endcsname\relax
+ \expandafter\xdef\csname tocstyle@numwidth@\tocstyleTOC
+ @\tocstyledepth\endcsname{\the\@tempdima}%
+ \fi
+ \else
+ \expandafter\xdef\csname tocstyle@numwidth@\tocstyleTOC
+ @\tocstyledepth\endcsname{\the\@tempdima}%
+ \fi
+ \endgroup
+ \iftocstyle@indentnotnumbered
+ \hskip -\leftskip
+ \fi
+ \ifcase \tocstyle@indentstyle
+ \hb@xt@\@tempdima{\tocstyle@@numberline{#1}\hfil}%
+ \or
+ \hb@xt@\@tempdima{\tocstyle@@numberline{#1}\hfil}%
+ \else
+ \ifx\tocstyle@feature@spaceafternumber\relax
+ \hbox{\tocstyle@@numberline{#1}\enskip}%
+ \else
+ \hbox{\tocstyle@@numberline{#1}\hskip
+ \tocstyle@feature@spaceafternumber\relax}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \begin{macro}{\tocstyle@@numberline}
+% Do the main work!
+% \begin{macrocode}
+\newcommand*{\tocstyle@@numberline}[1]{%
+ #1\csname autodot\endcsname
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Redefining Class Macros}
+%
+% \begin{macro}{\l@part}
+% \changes{v0.2d}{2009/11/11}{part level is always -1}
+% \begin{macro}{\l@chapter}
+% \begin{macro}{\l@section}
+% \begin{macro}{\l@subsection}
+% \begin{macro}{\l@subsubsection}
+% \begin{macro}{\l@paragraph}
+% \begin{macro}{\l@subparagraph}
+% \begin{macro}{\l@table}
+% \begin{macro}{\l@figure}
+% Try to redefine the toc commands at startup.
+% \changes{v0.2f}{2016/03/22}{recognize all subs of part, chapter,
+% section and paragraph}^^A
+% \changes{v0.2g}{2016/03/23}{warning for usage of not recommended package
+% combinations}^^A
+% \changes{v0.2h}{2016/04/24}{lokal \cs{normalcolor} auf \cs{relax}
+% setzen}^^A
+% \changes{v0.2h}{2016/04/24}{lokal \cs{color} auf \cs{@gobble} setzen}^^A
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@ifpackageloaded{tocbasic}{%
+ \@ifpackagelater{tocbasic}{2016/03/01}{%
+ \PackageWarningNoLine{tocstyle}{%
+ Usage of `tocstyle' with new `tocbasic' detected.\MessageBreak
+ This is not an error! You can do this.\MessageBreak
+ Nevertheless, you should note, combining `tocstyle'\MessageBreak
+ with this version of `tocbasic' will break several\MessageBreak
+ features of `tocbasic'. You should use `tocstyle'\MessageBreak
+ features instead of `tocbasic' attributes for all\MessageBreak
+ entry changes you want.\MessageBreak
+ You may also get additional warnings because of\MessageBreak
+ redefined `\string\numberline'. Ignore them}%
+ }{}%
+ }{}%
+ \@ifpackageloaded{etoc}{%
+ \PackageWarningNoLine{tocstyle}{%
+ Usage of `tocstyle' with `etoc' detected.\MessageBreak
+ I suggest to use either `tocstyle' or `etoc'\MessageBreak
+ but not both of them together}%
+ }{}%
+ \@ifpackageloaded{titletoc}{%
+ \PackageWarningNoLine{tocstyle}{%
+ Usage of `tocstyle' with `titletoc' detected.\MessageBreak
+ I suggest to use either `tocstyle' or `titletoc'\MessageBreak
+ but not both of them together. I expect even\MessageBreak
+ error messages because of this combination}%
+ }{}%
+ \def\tocstyle@test@level{-1}%
+ \def\tocstyle@test@levelname{part}%
+ \@whilesw\ifcsname l@\tocstyle@test@levelname\endcsname\fi{%
+ \setbox\@tempboxa\vbox{\hsize\maxdimen
+ \let\normalcolor\relax
+ \let\color\@gobble
+ \edef\reserved@a{%
+ \expandafter\noexpand\csname l@\tocstyle@test@levelname\endcsname{%
+ \noexpand\tocstyle@l@define{\tocstyle@test@levelname}%
+ {\tocstyle@test@level}%
+ }{}%
+ }%
+ \reserved@a
+ }%
+ \edef\tocstyle@test@levelname{sub\tocstyle@test@levelname}%
+ \edef\tocstyle@test@level{\the\numexpr\tocstyle@test@level+1}%
+ }%
+ \ifnum\tocstyle@test@level<\z@
+ \def\tocstyle@test@level{0}%
+ \fi
+ \def\tocstyle@test@levelname{chapter}%
+ \@whilesw\ifcsname l@\tocstyle@test@levelname\endcsname\fi{%
+ \setbox\@tempboxa\vbox{\hsize\maxdimen
+ \let\normalcolor\relax
+ \let\color\@gobble
+ \edef\reserved@a{%
+ \expandafter\noexpand\csname l@\tocstyle@test@levelname\endcsname{%
+ \noexpand\tocstyle@l@define{\tocstyle@test@levelname}%
+ {\tocstyle@test@level}%
+ }{}%
+ }%
+ \reserved@a
+ }%
+ \edef\tocstyle@test@levelname{sub\tocstyle@test@levelname}%
+ \edef\tocstyle@test@level{\the\numexpr\tocstyle@test@level+1}%
+ }%
+ \ifnum\tocstyle@test@level<\@ne
+ \def\tocstyle@test@level{1}%
+ \fi
+ \def\tocstyle@test@levelname{section}%
+ \@whilesw\ifcsname l@\tocstyle@test@levelname\endcsname\fi{%
+ \setbox\@tempboxa\vbox{\hsize\maxdimen
+ \let\normalcolor\relax
+ \let\color\@gobble
+ \edef\reserved@a{%
+ \expandafter\noexpand\csname l@\tocstyle@test@levelname\endcsname{%
+ \noexpand\tocstyle@l@define{\tocstyle@test@levelname}%
+ {\tocstyle@test@level}%
+ }{}%
+ }%
+ \reserved@a
+ }%
+ \edef\tocstyle@test@levelname{sub\tocstyle@test@levelname}%
+ \edef\tocstyle@test@level{\the\numexpr\tocstyle@test@level+1}%
+ }%
+ \def\tocstyle@test@levelname{paragraph}%
+ \@whilesw\ifcsname l@\tocstyle@test@levelname\endcsname\fi{%
+ \setbox\@tempboxa\vbox{\hsize\maxdimen
+ \let\normalcolor\relax
+ \let\color\@gobble
+ \edef\reserved@a{%
+ \expandafter\noexpand\csname l@\tocstyle@test@levelname\endcsname{%
+ \noexpand\tocstyle@l@define{\tocstyle@test@levelname}%
+ {\tocstyle@test@level}%
+ }{}%
+ }%
+ \reserved@a
+ }%
+ \edef\tocstyle@test@levelname{sub\tocstyle@test@levelname}%
+ \edef\tocstyle@test@level{\the\numexpr\tocstyle@test@level+1}%
+ }%
+ \def\tocstyle@test@level{1}%
+ \def\tocstyle@test@levelname{table}%
+ \@whilesw\ifcsname l@\tocstyle@test@levelname\endcsname\fi{%
+ \setbox\@tempboxa\vbox{\hsize\maxdimen
+ \let\normalcolor\relax
+ \let\color\@gobble
+ \edef\reserved@a{%
+ \expandafter\noexpand\csname l@\tocstyle@test@levelname\endcsname{%
+ \noexpand\tocstyle@l@define{\tocstyle@test@levelname}%
+ {\tocstyle@test@level}%
+ }{}%
+ }%
+ \reserved@a
+ }%
+ \edef\tocstyle@test@levelname{sub\tocstyle@test@levelname}%
+ \edef\tocstyle@test@level{\the\numexpr\tocstyle@test@level+1}%
+ }%
+ \def\tocstyle@test@level{1}%
+ \def\tocstyle@test@levelname{figure}%
+ \@whilesw\ifcsname l@\tocstyle@test@levelname\endcsname\fi{%
+ \setbox\@tempboxa\vbox{\hsize\maxdimen
+ \let\normalcolor\relax
+ \let\color\@gobble
+ \edef\reserved@a{%
+ \expandafter\noexpand\csname l@\tocstyle@test@levelname\endcsname{%
+ \noexpand\tocstyle@l@define{\tocstyle@test@levelname}%
+ {\tocstyle@test@level}%
+ }{}%
+ }%
+ \reserved@a
+ }%
+ \edef\tocstyle@test@levelname{sub\tocstyle@test@levelname}%
+ \edef\tocstyle@test@level{\the\numexpr\tocstyle@test@level+1}%
+ }%
+% \end{macrocode}
+% \begin{macro}{\@dottedtocline}
+% This will be used even for undotted toc lines. First check the definition,
+% then redefine.
+% \begin{macrocode}
+ \def\@tempa#1#2#3#4#5{%
+ \ifnum #1>\c@tocdepth \else
+ \vskip \z@ \@plus.2\p@
+ {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
+ \parindent #2\relax\@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \@tempdima #3\relax
+ \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
+ {#4}\nobreak
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+ mu$}\hfill
+ \nobreak
+ \hb@xt@\@pnumwidth{\hfil \normalfont \normalcolor #5}%
+ \par}%
+ \fi}%
+ \ifx\@dottedtocline\@tempa\else
+ \tocstyle@macrochangewarning\@dottedtocline
+ \fi
+ \let\tocstyle@saved@dottedtocline\@dottedtocline
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\numberline}
+% This macro needed to be redefined to calculate the with of the numbers.
+% First of all: check the definition. This is a bit more difficult, because
+% of respecting \KOMAScript:
+% \begin{macrocode}
+ \def\@tempa#1{\hb@xt@\@tempdima{#1\autodot\hfil}}%
+ \ifx\numberline\@tempa\else
+ \def\@tempa#1{\hb@xt@\@tempdima{#1\hfil}}%
+ \ifx\numberline@tempa\else
+ \tocstyle@macrochangewarning\numberline
+ \fi
+ \fi
+ \let\tocstyle@saved@numberline\numberline
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tocstyle@macrochangewarning}
+% \begin{macrocode}
+\newcommand*{\tocstyle@macrochangewarning}[1]{%
+ \PackageWarningNoLine{tocstyle}{%
+ unexpected \string#1\space definition!\MessageBreak
+ You are either using an unknown LaTeX kernel\MessageBreak
+ version, an unknown class or package, that redefines\MessageBreak
+ \string#1, or a \string#1\space
+ redefinition\MessageBreak
+ at the document preamble.\MessageBreak
+ Because of this you may get unexpected results!\MessageBreak
+ Maybe it would be better not to use package tocstyle}%
+ \PackageInfo{tocstyle}{Unexpected definition is:\MessageBreak
+ \meaning#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tocstyle@l@define}
+% \begin{macro}{\tocstyle@activate@all@l}
+% \begin{macrocode}
+\newcommand*{\tocstyle@activate@all@l}{}
+\newcommand*{\tocstyle@l@define}[2]{%
+ \advance\leftskip-\@tempdima
+ \edef\@tempa{%
+ \noexpand\global\noexpand\let
+ \expandafter\noexpand\csname tocstyle@saved@l@#1\endcsname
+ \expandafter\noexpand\csname l@#1\endcsname
+ \noexpand\gdef
+ \expandafter\noexpand\csname tocstyle@l@#1\endcsname{%
+ \noexpand\@dottedtocline{#2}{\the\leftskip}{\the\@tempdima}}%
+ \noexpand\g@addto@macro\noexpand\tocstyle@activate@all@l{%
+ \noexpand\let\expandafter\noexpand\csname l@#1\endcsname
+ \expandafter\noexpand\csname tocstyle@l@#1\endcsname
+ }%
+ }%
+ \PackageInfo{tocstyle}{prepare \expandafter\string
+ \csname l@#1\endcsname\space for redefinition}%
+ \@tempa
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{New Macros}
+%
+% \begin{macro}{\showtoc}
+% \begin{macrocode}
+\newcommand*{\showtoc}[2][\aliastoc\tocstyleTOC\tocstyleAliasTOC]{%
+ \ifcsname tocstyle@copyname@#2\endcsname
+ \@tempcnta \csname tocstyle@copyname@#2\endcsname\relax
+ \advance\@tempcnta \@ne
+ \expandafter\xdef\csname tocstyle@copyname@#2\endcsname{\the\@tempcnta}%
+ \else
+ \expandafter\xdef\csname tocstyle@copyname@#2\endcsname{1}%
+ \fi
+ \ifx\@dofilelist\relax\let\@dofilelist\@empty\fi
+ \edef\@tempa{\noexpand\g@addto@macro\noexpand\@dofilelist{%
+ \noexpand\tocstyle@copy@toc{#2}{\csname
+ tocstyle@copyname@#2\endcsname}}%
+ }\@tempa%
+ \begingroup
+ \edef\tocstyleAliasTOC{#2}%
+ \edef\tocstyleTOC{#2\csname tocstyle@copyname@#2\endcsname}%
+ #1
+ \tocstyle@pre@starttoc{#2\csname tocstyle@copyname@#2\endcsname}%
+ \makeatletter
+ \@input{\jobname.#2\csname tocstyle@copyname@#2\endcsname}%
+ \@nobreakfalse
+ \tocstyle@post@starttoc{#2\csname tocstyle@copyname@#2\endcsname}%
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macro}{\tocstyle@copy@toc}
+% \begin{macrocode}
+\newcommand*{\tocstyle@copy@toc}[2]{%
+ \if@filesw
+ \begingroup
+ \endlinechar=\m@ne
+% \end{macrocode}
+% While \LaTeX{} does not close the files, we have to do it know.
+% \begin{macrocode}
+ \immediate\closeout\csname tf@#1\endcsname
+ \immediate\openin\@inputcheck \jobname.#1
+ \immediate\openout\@partaux \jobname.#1#2
+ \loop\unless\ifeof\@inputcheck
+ \immediate\readline\@inputcheck to \@tempa
+ \immediate\write\@partaux{\@tempa}%
+ \repeat
+ \immediate\closeout\@partaux
+ \immediate\closein\@inputcheck
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\aliastoc}
+% Internal use not the real TOC shortcut but another one.
+% \begin{macrocode}
+\newcommand*{\aliastoc}[2]{%
+ \expandafter\edef\csname tocstyle@alias@TOC@#1\endcsname{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tocstyle@pre@starttoc}
+% \begin{macro}{\tocstyle@post@starttoc}
+% Commands before and after the original \cs{@starttoc}.
+% \begin{macrocode}
+\newcommand*{\tocstyle@pre@starttoc}[1]{%
+ \begingroup
+ \expandafter\ifx\csname tocstyle@deactivated@\endcsname\relax
+ \expandafter\ifx\csname tocstyle@deactivated@#1\endcsname\relax\relax
+ \tocstyle@activetrue
+ \else
+ \tocstyle@activefalse
+ \fi
+ \else
+ \tocstyle@activefalse
+ \fi
+ \iftocstyle@active
+ \let\@dottedtocline\tocstyle@dottedtocline
+ \parskip \z@
+ \parindent \z@
+ \parfillskip \z@\@plus 1fil
+ \ifcsname tocstyle@alias@TOC@#1\endcsname
+ \edef\tocstyleAliasTOC{\csname tocstyle@alias@TOC@#1\endcsname}%
+ \else
+ \edef\tocstyleAliasTOC{#1}%
+ \fi
+ \edef\tocstyleTOC{#1}%
+ \tocstyle@activate@all@l
+ \fi
+}
+\newcommand*{\tocstyle@post@starttoc}[1]{%
+ \iftocstyle@active
+ \if@filesw
+ \ifcsname tocstyle@unumwidth@#1@\endcsname
+ \protected@write\@auxout{}{%
+ \protect\tocstyle@set@width{unum}{#1}{}{%
+ \csname tocstyle@unumwidth@#1@\endcsname}%
+ }%
+ \fi
+ \expandafter\let\expandafter\@tempa
+ \csname tocstyle@depthlist@#1\endcsname
+ \ifx\@tempa\relax\else
+ \expandafter\@for \expandafter\@tempa\expandafter:\expandafter=\@tempa
+ \do {%
+ \ifcsname tocstyle@numwidth@#1@\@tempa\endcsname
+ \protected@write\@auxout{}{%
+ \protect\tocstyle@set@width{num}{#1}{\@tempa}{%
+ \csname tocstyle@numwidth@#1@\@tempa\endcsname}%
+ }%
+ \fi
+ \ifcsname tocstyle@skipwidth@#1@\@tempa\endcsname
+ \protected@write\@auxout{}{%
+ \protect\tocstyle@set@width{skip}{#1}{\@tempa}{%
+ \csname tocstyle@skipwidth@#1@\@tempa\endcsname}%
+ }%
+ \fi
+ }%
+ \fi
+ \fi
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tocstyle@set@width}
+% \changes{v0.2d}{2009/11/11}{improve handling of standard classes}^^A
+% \changes{v0.2h}{2016/03/25}{use after definition in \texttt{aux}-file}^^A
+% Some classes do not use \cs{numberline}. This may result in negativ widths
+% (esp. negativ skips). Following special handling of negativ values improves
+% the toc handling of the standard classes. Nevertheless indentation of not
+% numbered entries does not work with such classes!
+% \begin{macrocode}
+\newcommand*{\tocstyle@set@width}[4]{%
+ \iftocstyle@indentnotnumbered
+ \ifdim #4<\z@
+ \expandafter\gdef\csname tocstyle@max#1width@#2@#3\endcsname{%
+ \dimexpr #4/2\relax}%
+ \else
+ \expandafter\gdef\csname tocstyle@max#1width@#2@#3\endcsname{#4}%
+ \fi
+ \else
+ \ifdim #4<\z@
+ \expandafter\gdef\csname tocstyle@max#1width@#2@#3\endcsname{\z@}%
+ \else
+ \expandafter\gdef\csname tocstyle@max#1width@#2@#3\endcsname{#4}%
+ \fi
+ \fi
+}
+\AtBeginDocument{%
+ \if@filesw
+ \immediate\write\@auxout{%
+ \string\providecommand*\string\tocstyle@set@width[4]{}%
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tocstyleTOC}
+% \begin{macro}{\tocstyleAliasTOC}
+% Shortcut of the current processed TOC. Empty outside of TOCs.
+% \begin{macrocode}
+\newcommand*{\tocstyleTOC}{}
+\newcommand*{\tocstyleAliasTOC}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tocstyledepth}
+% Current depth of the current processed TOC entry.
+% \begin{macrocode}
+\newcommand*{\tocstyledepth}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\deactivatetocstyle}%
+% \begin{macro}{\reactivatetocstyle}%
+% You may (de)activate all influence of tocstyle either for one or all TOCs.
+% \begin{macrocode}
+\newif\iftocstyle@active
+\newcommand*{\deactivatetocstyle}[1][]{%
+ \expandafter\let\csname tocstyle@deactivated@#1\endcsname\@empty}
+\newcommand*{\reactivatetocstyle}[1][]{%
+ \expandafter\let\csname tocstyle@deactivated@#1\endcsname\relax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\settocfeature}
+% \begin{macro}{\@settocfeature}
+% \begin{macro}{\@@@settocfeature}
+% The primary command to set the features of a depth of a TOC.
+% \begin{macrocode}
+\newcommand*{\@settocfeature}[1][]{%
+ \kernel@ifnextchar[ {\@@settocfeature[{#1}]}{\@@settocfeature[{#1}][]}
+}
+\def\@@settocfeature[#1][#2]#3#4{%
+%<trace> \typeout{exclude: \tocstyle@feature@excludelist}%
+ \@expandtwoargs\in@{,#3,}{,\tocstyle@feature@excludelist,}%
+ \ifin@\else
+ \expandafter\ifcsname tocstyle@feature@#3\endcsname
+ \@namedef{tocstyle@feature@#3@#1@#2}{#4}%
+ \begingroup
+ \expandafter\let\expandafter\@tempa
+ \csname tocstyle@commandlist@#1\endcsname
+ \@expandtwoargs\in@{,tocstyle@feature@#3@#1@#2,}{,\@tempa,}%
+ \ifin@\let\@tempa\endgroup\else
+ \edef\@tempa{\endgroup
+ \noexpand\expandafter\noexpand\ifx
+ \noexpand\csname tocstyle@commandlist@#1\noexpand\endcsname\relax
+ \noexpand\expandafter\noexpand\expandafter\noexpand\expandafter
+ \noexpand\def
+ \noexpand\else
+ \noexpand\expandafter\noexpand\expandafter\noexpand\expandafter
+ \noexpand\l@addto@macro
+ \noexpand\fi
+ \noexpand\csname tocstyle@commandlist@#1\noexpand\endcsname%
+ {tocstyle@feature@#3@#1@#2,}}%
+ \fi
+ \@tempa
+ \else
+ \PackageError{tocstyle}{unkown feature `#3'}{%
+ You've told me to set up toc style feature `#3',\MessageBreak
+ but I don't know this feature.\MessageBreak
+ See the tocstyle manual for all known feature.\MessageBreak
+ }%
+ \fi
+ \fi
+}
+\newcommand*{\settocfeature}{}
+\let\settocfeature\@settocfeature
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\l@addto@macro}
+% Something like \cs{g@addto@macro} but only with local effect. While other
+% packages or classes may also define this, \cs{providecommand} will be used.
+% \begin{macrocode}
+\providecommand{\l@addto@macro}[2]{%
+ \edef#1{\unexpanded\expandafter{#1#2}}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\settocstylefeature}
+% \begin{macro}{\@settocstylefeature}
+% Same as above without TOC argument.
+% \begin{macrocode}
+\newcommand*{\@settocstylefeature}{%
+ \kernel@ifnextchar[ {\@settocfeature[]}{\@settocfeature[][]}%
+}
+\newcommand*{\settocstylefeature}{}
+\let\settocstylefeature\@settocstylefeature
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Different commands will be defined:
+% \begin{macro}{\tocstyle@feature@!<feature!>@@}
+% Global feature (all TOCs all depths).
+% \end{macro}
+% \begin{macro}{\tocstyle@feature@@!<feature!>@!<TOC!>@}
+% All depth feature for one TOC.
+% \end{macro}
+% \begin{macro}{\tocstyle@feature@@!<feature!>@@!<depth!>}
+% All TOCs feature for one depth.
+% \end{macro}
+% \begin{macro}{\tocstyle@feature@@!<feature!>@!<TOC!>@!<depth!>}
+% One depth of one TOC feature.
+% \end{macro}
+%
+% \begin{macro}{\tocstyle@activate@features}
+% Activates the features
+% \begin{macrocode}
+\newcommand*{\tocstyle@activate@features}{%
+ \expandafter\ifx\csname tocstyle@depthlist@\tocstyleTOC\endcsname\relax
+ \expandafter\xdef\csname tocstyle@depthlist@\tocstyleTOC\endcsname{%
+ \tocstyledepth}%
+ \else
+ \expandafter\let\expandafter\@tempa
+ \csname tocstyle@depthlist@\tocstyleTOC\endcsname
+ \@expandtwoargs\in@{,\tocstyledepth,}{,\@tempa,}%
+ \ifin@\else
+ \expandafter\xdef\csname tocstyle@depthlist@\tocstyleTOC\endcsname{%
+ \csname tocstyle@depthlist@\tocstyleTOC\endcsname,\tocstyledepth}%
+ \fi
+ \fi
+ \expandafter\@for \expandafter\@tempa
+ \expandafter:\expandafter=\tocstyle@featurelist \do
+ {%
+ \@ifundefined{tocstyle@feature@\@tempa @\tocstyleAliasTOC @\tocstyledepth}{%
+ \@ifundefined{tocstyle@feature@\@tempa @@\tocstyledepth}{%
+ \@ifundefined{tocstyle@feature@\@tempa @\tocstyleAliasTOC @}{%
+ \@ifundefined{tocstyle@feature@\@tempa @@}{%
+ \expandafter\let\csname tocstyle@feature@\@tempa\endcsname\relax
+ }{%
+ \expandafter\let\csname tocstyle@feature@\@tempa
+ \expandafter\endcsname
+ \csname tocstyle@feature@\@tempa @@\endcsname
+ }%
+ }{%
+ \expandafter\let\csname tocstyle@feature@\@tempa
+ \expandafter\endcsname
+ \csname tocstyle@feature@\@tempa @\tocstyleAliasTOC @\endcsname
+ }%
+ }{%
+ \expandafter\let\csname tocstyle@feature@\@tempa
+ \expandafter\endcsname
+ \csname tocstyle@feature@\@tempa @@\tocstyledepth\endcsname
+ }%
+ }{%
+ \expandafter\let\csname tocstyle@feature@\@tempa
+ \expandafter\endcsname
+ \csname tocstyle@feature@\@tempa @\tocstyleAliasTOC @\tocstyledepth\endcsname
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newtocstyle}
+% Defining a new TOC style. First optional argument is a TOC style, that
+% will be activated before the new definitions. Note that all new
+% definitions will overwirte the parent's definitions. So a new TOC style,
+% that defines all features doesn't need a parent.
+% \begin{macrocode}
+\newcommand*{\newtocstyle}{%
+ \kernel@ifnextchar [{\@newtocstyle}{\@newtocstyle[]}}
+\newcommand*{\@newtocstyle}{}
+\def\@newtocstyle[#1]{%
+ \kernel@ifnextchar [{\@@newtocstyle[{#1}]}{\@newtocstyle[{#1}][]}}
+\newcommand*{\@@newtocstyle}{}
+\def\@@newtocstyle[#1][#2]#3#4{%
+ \@ifundefined{tocstyle@style@#3}{%
+ \@ifundefined{tocstyle@style@#1}{%
+ \ifx \relax#1\relax\else
+ \PackageError{tocstyle}{unknown parent TOC style `#1'}{%
+ You've told me to inheritate parent TOC style `#1',\MessageBreak
+ but there's no TOC style `#1' defined.}%
+ \fi
+ \expandafter\def\csname tocstyle@style@#3\endcsname{#4}%
+ }{%
+ \expandafter\def\csname tocstyle@style@#3\endcsname{%
+ \edef\reserved@a{%
+ \noexpand\l@addto@macro\noexpand\tocstyle@feature@excludelist{#2}%
+ \noexpand\@usetocstyle{#1}%
+ \noexpand\def\noexpand\tocstyle@feature@excludelist{%
+ \tocstyle@feature@excludelist}%
+ }\reserved@a
+ #4%
+ }%
+ }%
+ }{%
+ \PackageError{tocstyle}{TOC style `#3' already defined}{%
+ You've tried to define a new TOC style `#3',\MessageBreak
+ but there's already a TOC style named `#3'.}%
+ }%
+}
+\newcommand*{\tocstyle@feature@excludelist}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\usetocstyle}
+% \begin{macro}{\@usetocstyle}
+% \changes{v0.2a}{2008/02/14}{extended for deprecated TOC styles}
+% Use the predefined TOC style. You may define
+% |\tocstyle@deprecated@style@foo| to mark TOC style |foo| to be
+% deprecated. If |\tocstyle@deprecated@style@foo| is |\@empty| TOC style
+% |deprecated@foo| will be used instead almost silently. Otherwise TOC
+% style |\tocstyle@deprecated@style@foo| will be used instead and the user
+% will be told about this change.
+% \begin{macrocode}
+\newcommand*{\usetocstyle}[2][]{%
+ \@ifundefined{tocstyle@deprecated@style@#2}{%
+ \@ifundefined{tocstyle@style@#2}{%
+ \PackageError{tocstyle}{unknown TOC style `#2'}{%
+ You've told me to use TOC style `#2',\MessageBreak
+ but there's no TOC style `#2' defined.}%
+ }{%
+ \def\settocfeature{%
+ \kernel@ifnextchar[ %]
+ {\@@settocfeature[{#1}]}{\@@settocfeature[{#1}][]}%
+ }%
+ \let\settocstylefeature\settocfeature
+% \end{macrocode}
+% Deactivate all known features for this TOC
+% \begin{macrocode}
+ \expandafter\ifx\csname tocstyle@commandlist@#1\endcsname\relax
+ \else
+ \expandafter\expandafter\expandafter\@for
+ \expandafter\expandafter\expandafter\@tempa
+ \expandafter\expandafter\expandafter:%
+ \expandafter\expandafter\expandafter=%
+ \csname tocstyle@commandlist@#1\endcsname
+ \do{%
+ \expandafter\let\csname \@tempa\endcsname\relax
+ }%
+% \end{macrocode}
+% So there are no more known features for this TOC.
+% \begin{macrocode}
+ \expandafter\let\csname tocstyle@commandlist@#1\endcsname\relax
+ \fi
+% \end{macrocode}
+% Activate all known features for this style and TOC
+% \begin{macrocode}
+ \@usetocstyle{#2}%
+ \let\settocfeature\@settocfeature
+ \let\settocstylefeature\@settocstylefeature
+ }%
+ }{%
+ \expandafter\ifx\csname tocstyle@deprecated@style@#2\endcsname\@empty
+ \PackageWarning{tocstyle}{%
+ deprecated TOC style `#2'!\MessageBreak
+ You should not longer use this style,\MessageBreak
+ because it will be removed soon.\MessageBreak
+ You should select another TOC style}%
+ \usetocstyle[{#1}]{deprecated@#2}%
+ \else
+ \PackageWarning{tocstyle}{%
+ deprecated TOC style `#2'!\MessageBreak
+ You should use TOC style '\csname
+ tocstyle@deprecated@style@#2\endcsname'\MessageBreak
+ instead of `#2'}%
+ \fi
+ }%
+}
+\newcommand*{\@usetocstyle}[1]{%
+ \csname tocstyle@style@#1\endcsname
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tocstyle@featurelist}
+% Comma seperated list of all known features
+% \begin{macrocode}
+\newcommand*{\tocstyle@featurelist}{%
+ pagenumberhook,entryhook,dothook,entryvskip,leaders,raggedhook,%
+ spaceafternumber,parfillskip,pagenumberbox,%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tocstyle@feature@pagenumberhook}
+% \begin{macro}{\tocstyle@feature@pagenumberhook}
+% \begin{macro}{\tocstyle@feature@entryhook}
+% \begin{macro}{\tocstyle@feature@dothook}
+% \begin{macro}{\tocstyle@feature@entryvskip}
+% \begin{macro}{\tocstyle@feature@leaders}
+% \begin{macro}{\tocstyle@feature@parfillskip}
+% \begin{macro}{\tocstyle@feature@raggedhook}
+% \begin{macro}{\tocstyle@feature@spaceafternumber}
+% \begin{macrocode}
+\newcommand*{\tocstyle@feature@pagenumberhook}{}
+\let\tocstyle@feature@pagenumberhook\relax
+\newcommand*{\tocstyle@feature@pagenumberbox}{}
+\let\tocstyle@feature@pagenumberbox\relax
+\newcommand*{\tocstye@feature@entryhook}{}
+\let\tocstyle@feature@entryhook\relax
+\newcommand*{\tocstye@feature@dothook}{}
+\let\tocstyle@feature@dothook\relax
+\newcommand*{\tocstye@feature@entryvskip}{}
+\let\tocstyle@feature@entryvskip\relax
+\newcommand*{\tocstye@feature@leaders}{}
+\let\tocstyle@feature@leaders\relax
+\newcommand*{\tocstye@feature@parfillskip}{}
+\let\tocstyle@feature@parfillskip\relax
+\newcommand*{\tocstye@feature@raggedhook}{}
+\let\tocstyle@feature@raggedhook\relax
+\newcommand*{\tocstye@feature@spaceafternumber}{}
+\let\tocstyle@feature@spaceafternumber\relax
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\iftochasdepth}
+% Uses \Macro{tocstyle@depthlist@}\meta{TOC} to test, if the TOC has the depth
+% already.
+% \begin{macrocode}
+\newcommand*{\iftochasdepth}[2]{%
+ \begingroup
+ \expandafter\let\expandafter\@tempa\csname tocstyle@depthlist@#1\endcsname
+ \ifx\@tempa\relax
+ \aftergroup\@secondoftwo
+ \else
+ \@expandtwoargs\in@{,#2,}{,\@tempa}%
+ \expandafter\aftergroup\ifin@
+ \@firstoftwo
+ \else
+ \@secondoftwo
+ \fi
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \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{macro}{\ext@toc}
+% \changes{v0.2i}{2017/02/23}{use indirect extensions}
+% From version 0.2i the indirect extension for the auxiliary file of the
+% table of contents is used like the KOMA-Script classes do.
+% \begin{macrocode}
+\providecommand*{\ext@toc}{toc}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\newtocstyle{standard}{%
+ \settocfeature{dothook}{\normalfont}%
+ \settocfeature[-1]{entryhook}{\bfseries}%
+ \settocfeature[-1]{entryvskip}{2.25em\@plus\p@}%
+ \settocfeature[-1]{leaders}{\hfill}%
+ \settocfeature[0]{entryvskip}{1em\@plus\p@}%
+ \settocfeature[0]{leaders}{\hfill}%
+ \settocfeature[0]{entryhook}{\bfseries}
+ \iftochaschapter\else
+ \settocfeature[1]{entryvskip}{1em\@plus\p@}%
+ \settocfeature[1]{leaders}{\hfill}%
+ \settocfeature[1]{entryhook}{%
+ \ifx\tocstyleAliasTOC\ext@toc\bfseries\fi
+ }%
+ \fi
+}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\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}{\sffamily\bfseries}
+ \settocfeature[0]{pagenumberhook}{\sffamily\bfseries}%
+ \iftochaschapter\else
+ \settocfeature[1]{entryvskip}{1em\@plus\p@}%
+ \settocfeature[1]{leaders}{\hfill}%
+ \settocfeature[1]{entryhook}{%
+ \ifx\tocstyleAliasTOC\ext@toc\sffamily\bfseries\fi
+ }%
+ \settocfeature[1]{pagenumberhook}{%
+ \ifx\tocstyleAliasTOC\ext@toc\sffamily\bfseries\fi
+ }%
+ \fi
+ }
+\else
+ \newtocstyle{KOMAlike}{%
+ \settocfeature{dothook}{\normalfont}%
+ \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}{\usekomafont{chapterentry}}%
+ \settocfeature[0]{pagenumberhook}{\usekomafont{chapterentrypagenumber}}%
+ \iftochaschapter\else
+ \settocfeature[1]{entryvskip}{1em\@plus\p@}%
+ \settocfeature[1]{leaders}{\hfill}%
+ \settocfeature[1]{entryhook}{%
+ \begingroup
+ \ifx\tocstyleAliasTOC\ext@toc
+ \def\@tempa{\endgroup\usekomafont{sectionentry}}%
+ \else
+ \let\@tempa\endgroup
+ \fi
+ \@tempa
+ }%
+ \settocfeature[1]{pagenumberhook}{%
+ \begingroup
+ \ifx\tocstyleAliasTOC\ext@toc
+ \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}%
+}
+\newtocstyle[classic][leaders]{allwithdot}{}
+\newtocstyle[allwithdot]{noonewithdot}{%
+ \settocfeature{leaders}{\hfill}%
+}
+\newtocstyle[classic][leaders]{nopagecolumn}{%
+ \settocfeature{leaders}{\quad}%
+ \settocfeature{parfillskip}{\z@ plus 1fil}%
+ \settocfeature{pagenumberbox}{\hbox}%
+}
+% \end{macrocode}
+%
+% \subsubsection{Defining Some TOC Styles}
+%
+% Loading a optional configuration file.
+% \begin{macrocode}
+\InputIfFileExists{tocstyle.cfg}{%
+ \PackageInfo{tocstyle}{using tocstyle.cfg}%
+}{%
+ \PackageInfo{tocstyle}{no tocstyle.cfg found}%
+}
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `tocstyle.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End: