From 83b4f07dfc662cf6c2632a34e88a1aad0009e35a Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Mon, 19 Jan 2015 23:43:25 +0000
Subject: koma-script (19jan15)

git-svn-id: svn://tug.org/texlive/trunk@36095 c570f23f-e606-0410-a88d-b1316a301751
---
 .../texmf-dist/tex/latex/koma-script/scrartcl.cls  | 916 +++++++++++++++------
 1 file changed, 661 insertions(+), 255 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/koma-script/scrartcl.cls')

diff --git a/Master/texmf-dist/tex/latex/koma-script/scrartcl.cls b/Master/texmf-dist/tex/latex/koma-script/scrartcl.cls
index 32a5b3a8b58..bcd6de7667a 100644
--- a/Master/texmf-dist/tex/latex/koma-script/scrartcl.cls
+++ b/Master/texmf-dist/tex/latex/koma-script/scrartcl.cls
@@ -7,6 +7,7 @@
 %% scrkernel-version.dtx  (with options: `class,article')
 %% scrkernel-basics.dtx  (with options: `load')
 %% tocbasic.dtx  (with options: `class,load')
+%% scrkernel-sections.dtx  (with options: `class,article,prepare')
 %% scrkernel-compatibility.dtx  (with options: `class,article,option')
 %% scrkernel-miscellaneous.dtx  (with options: `class,article,option')
 %% scrkernel-language.dtx  (with options: `class,article,option')
@@ -72,7 +73,7 @@
 %% find a complete unmodified copy of LaTeX2e at
 %% <http://www.ctan.org/pub/tex-archive/macros/latex/base/>.
 %% 
-%%% From File: $Id: scrkernel-version.dtx 1815 2014-10-28 10:15:59Z kohm $
+%%% From File: $Id: scrkernel-version.dtx 1900 2015-01-14 07:16:26Z kohm $
 \begingroup
   \catcode`\@11\relax
   \ifx\KOMAScriptVersion\undefined
@@ -94,7 +95,7 @@
       \fi
     }
   \fi
-  \@CheckKOMAScriptVersion{2014/10/28 v3.14 KOMA-Script}%
+  \@CheckKOMAScriptVersion{2015/01/14 v3.15 KOMA-Script}%
 \endgroup
 \newcommand*{\KOMAClassName}{%
   scrartcl%
@@ -103,19 +104,54 @@
   article%
 }
 \ProvidesClass{\KOMAClassName}[%
-  2014/10/28 v3.14 KOMA-Script
+  2015/01/14 v3.15 KOMA-Script
   document class (\ClassName)%
 ]
-%%% From File: $Id: scrkernel-basics.dtx 1809 2014-10-17 08:02:00Z kohm $
+%%% From File: $Id: scrkernel-basics.dtx 1897 2015-01-02 12:04:12Z kohm $
 \RequirePackage{scrkbase}[\KOMAScriptVersion]
-%%% From File: $Id: tocbasic.dtx 1782 2014-08-18 10:48:22Z kohm $
+%%% From File: $Id: tocbasic.dtx 1871 2014-12-10 09:06:20Z kohm $
 \RequirePackage{tocbasic}[%
-  2014/10/28 v3.14 KOMA-Script
+  2015/01/14 v3.15 KOMA-Script
 ]
 \addtotoclist{toc}
 \addtotoclist[float]{lof}
 \addtotoclist[float]{lot}
-%%% From File: $Id: scrkernel-compatibility.dtx 1814 2014-10-28 10:06:00Z kohm $
+%%% From File: $Id: scrkernel-sections.dtx 1891 2014-12-23 17:19:04Z kohm $
+\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.%
+  }%
+}
+\newcommand*{\scr@osectarg}{0}
+\newcommand*{\scr@activate@xsection}[1]{%
+  \renewcommand*{\scr@osectarg}{#1}%
+}
+\newif\if@altsecnumformat\@altsecnumformatfalse
+\newif\if@autodot
+\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue}
+\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse}
+\@autodotfalse
+\newcommand*{\scr@altsecnumhook}{}
+\AtBeginDocument{\scr@altsecnumhook}
+\newcommand*{\scr@altsecnumhooktrue}{%
+  \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue
+}
+\newcommand*{\scr@altsecnumhookfalse}{%
+  \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse
+}
+\newcommand*{\size@part}{}
+\newcommand*{\size@partnumber}{}
+\newcommand*{\size@section}{}
+\newcommand*{\size@subsection}{}
+\newcommand*{\size@subsubsection}{}
+\newcommand*{\size@paragraph}{}
+\newcommand*{\size@subparagraph}{}
+\newcommand*{\sectfont}{\normalcolor\sffamily\bfseries}
+%%% From File: $Id: scrkernel-compatibility.dtx 1870 2014-12-10 09:04:55Z kohm $
 \newif\if@scr@emulatestandardclasses
 \let\scr@emulatestandardclassestrue\relax
 \let\scr@emulatestandardclassesfalse\relax
@@ -221,6 +257,7 @@
 \@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@last}{14}
 %%% From File: $Id: scrkernel-miscellaneous.dtx 1803 2014-10-09 08:18:02Z kohm $
 \KOMA@key{draft}[true]{%
@@ -238,7 +275,7 @@
 \DeclareOption{leqno}{\input{leqno.clo}}
 \DeclareOption{fleqn}{\input{fleqn.clo}}
 %%% From File: $Id: scrkernel-language.dtx 1767 2014-06-26 09:20:18Z kohm $
-%%% From File: $Id: scrkernel-fonts.dtx 1483 2013-10-31 15:12:30Z mjk $
+%%% From File: $Id: scrkernel-fonts.dtx 1829 2014-11-21 09:27:52Z kohm $
 \newcommand*\@ptsize{%
   11%
 }
@@ -374,7 +411,7 @@
   {onecolumn}{twocolumn=false}
 \DeclareOption*{%
   \x@paper}
-%%% From File: $Id: scrkernel-paragraphs.dtx 1767 2014-06-26 09:20:18Z kohm $
+%%% From File: $Id: scrkernel-paragraphs.dtx 1824 2014-11-14 08:02:28Z kohm $
 \newcommand*{\setparsizes}[3]{%
   \edef\f@parindent{\the\parindent}%
   \edef\f@parskip{\the\parskip}%
@@ -507,7 +544,7 @@
 \KOMA@DeclareDeprecatedOption{halfparskip+}{parskip=half+}
 \KOMA@DeclareDeprecatedOption{halfparskip*}{parskip=half*}
 \KOMA@DeclareDeprecatedOption{parindent}{parskip=false}
-%%% From File: $Id: scrkernel-title.dtx 1675 2014-02-03 07:37:48Z mjk $
+%%% From File: $Id: scrkernel-title.dtx 1868 2014-12-09 12:45:22Z kohm $
 \newif\if@titlepage
 \@titlepagefalse
 \newif\if@titlepageiscoverpage
@@ -530,16 +567,7 @@
 \KOMA@ifkey{abstract}{@abstrt}
 \KOMA@DeclareStandardOption{abstracton}{abstract=true}
 \KOMA@DeclareStandardOption{abstractoff}{abstract=false}
-%%% From File: $Id: scrkernel-sections.dtx 1788 2014-09-11 13:41:04Z kohm $
-\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.%
-  }%
-}
+%%% From File: $Id: scrkernel-sections.dtx 1891 2014-12-23 17:19:04Z kohm $
 \KOMA@key{numbers}{%
   \KOMA@set@ncmdkey{numbers}{@tempa}{%
     {autoendperiod}{0},{autoenddot}{0},{auto}{0},%
@@ -564,24 +592,9 @@
     \fi
   \fi
 }
-\newcommand*{\scr@altsecnumhook}{}
-\AtBeginDocument{\scr@altsecnumhook}
-\newcommand*{\scr@altsecnumhooktrue}{%
-  \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue
-}
-\newcommand*{\scr@altsecnumhookfalse}{%
-  \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse
-}
 \KOMA@DeclareDeprecatedOption{pointednumbers}{numbers=enddot}
 \KOMA@DeclareDeprecatedOption{pointlessnumbers}{numbers=noenddot}
-\newcommand*{\sectfont}{\normalcolor\sffamily\bfseries}
-\newcommand*{\size@part}{}
-\newcommand*{\size@partnumber}{}
-\newcommand*{\size@section}{}
-\newcommand*{\size@subsection}{}
-\newcommand*{\size@subsubsection}{}
-\newcommand*{\size@paragraph}{}
-\newcommand*{\size@subparagraph}{}
+\KOMA@ifkey{sectionentrydots}{@sectionentrywithdots}
 \KOMA@key{headings}{%
   \KOMA@set@ncmdkey{headings}{@tempa}{%
     {big}{0},%
@@ -645,10 +658,6 @@
 \KOMA@DeclareDeprecatedOption{bigheadings}{headings=big}
 \KOMA@DeclareDeprecatedOption{normalheadings}{headings=normal}
 \KOMA@DeclareDeprecatedOption{smallheadings}{headings=small}
-\newcommand*{\scr@osectarg}{0}
-\newcommand*{\scr@activate@xsection}[1]{%
-  \renewcommand*{\scr@osectarg}{#1}%
-}
 %%% From File: $Id: scrkernel-pagestyles.dtx 1774 2014-07-07 07:15:22Z kohm $
 \newif\if@hsl
 \KOMA@key{headsepline}[true]{%
@@ -864,7 +873,7 @@
   \csname FN@mf@prepare\endcsname
   \ifhmode\spacefactor\@x@sf\fi
   \relax}
-%%% From File: $Id: scrkernel-listsof.dtx 1720 2014-03-05 08:03:10Z kohm $
+%%% From File: $Id: scrkernel-listsof.dtx 1872 2014-12-10 12:51:37Z kohm $
 \newif\if@tocleft
 \KOMA@key{toc}{%
   \KOMA@set@ncmdkey{toc}{@tempa}{%
@@ -880,7 +889,9 @@
     {flat}{8},{left}{8},%
     {graduated}{9},{indent}{9},{indented}{9},%
     {indenttextentries}{10},{indentunnumbered}{10},{numberline}{10},%
-    {leftaligntextentries}{11},{leftalignunnumbered}{11},{nonumberline}{11}%
+    {leftaligntextentries}{11},{leftalignunnumbered}{11},{nonumberline}{11},%
+    {sectionentrywithdots}{12},{sectionentrydotfill}{12},
+    {sectionentrywithoutdots}{13},{sectionentryfill}{13}%
   }{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed
     \ifcase \@tempa\relax
@@ -907,6 +918,10 @@
       \setuptoc{toc}{numberline}%
     \or
       \unsettoc{toc}{numberline}%
+    \or
+      \KOMAoptions{sectionentrydots=true}%
+    \or
+      \KOMAoptions{sectionentrydots=false}%
     \fi
   \fi
 }
@@ -1165,8 +1180,8 @@
   headings=big%
 }
 \KOMAProcessOptions\relax
-%%% From File: $Id: scrkernel-compatibility.dtx 1814 2014-10-28 10:06:00Z kohm $
-%%% From File: $Id: scrkernel-fonts.dtx 1483 2013-10-31 15:12:30Z mjk $
+%%% From File: $Id: scrkernel-compatibility.dtx 1870 2014-12-10 09:04:55Z kohm $
+%%% From File: $Id: scrkernel-fonts.dtx 1829 2014-11-21 09:27:52Z kohm $
 \newcommand*\scr@setlength[4]{%
   \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax
     \setlength{#1}{#2 \@plus#3 \@minus#4}%
@@ -1644,7 +1659,7 @@
     }\reserved@a
   \fi
 \fi
-%%% From File: $Id: scrkernel-paragraphs.dtx 1767 2014-06-26 09:20:18Z kohm $
+%%% From File: $Id: scrkernel-paragraphs.dtx 1824 2014-11-14 08:02:28Z kohm $
 \setlength{\lineskip}{\p@}
 \setlength{\normallineskip}{\p@}
 \setlength{\columnsep}{10\p@}
@@ -1772,7 +1787,7 @@
 \@lowpenalty  = 51
 \@medpenalty  =151
 \@highpenalty =301
-%%% From File: $Id: scrkernel-title.dtx 1675 2014-02-03 07:37:48Z mjk $
+%%% From File: $Id: scrkernel-title.dtx 1868 2014-12-09 12:45:22Z kohm $
 \newcommand*{\@extratitle}{}%
 \newcommand{\extratitle}[1]{\gdef\@extratitle{%
     #1%
@@ -2109,24 +2124,31 @@
     \if@twocolumn\else\endquotation\fi
   \fi
 }
-%%% From File: $Id: scrkernel-sections.dtx 1788 2014-09-11 13:41:04Z kohm $
-\newcommand*\appendix{\par%
-  \setcounter{section}{0}%
-  \setcounter{subsection}{0}%
-  \gdef\thesection{\@Alph\c@section}%
-  \csname appendixmore\endcsname
+\newcommand*\abstractname{Abstract}
+%%% From File: $Id: scrkernel-sections.dtx 1891 2014-12-23 17:19:04Z kohm $
+\setcounter{secnumdepth}{3}
+\newcommand*{\ifnumbered}[1]{%
+  \scr@ifundefinedorrelax{#1numdepth}{%
+    \@secondoftwo
+  }{%
+    \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth
+      \expandafter\@secondoftwo
+    \else
+      \expandafter\@firstoftwo
+    \fi
+  }%
 }
-\newcommand*\addsecmark[1]{%
-  \begingroup
-    \c@secnumdepth=\m@ne
-    \sectionmark{#1}%
-  \endgroup
+\newcommand*{\ifunnumbered}[1]{%
+  \scr@ifundefinedorrelax{#1numdepth}{%
+    \@firstoftwo
+  }{%
+    \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth
+      \expandafter\@firstoftwo
+    \else
+      \expandafter\@secondoftwo
+    \fi
+  }%
 }
-\newif\if@altsecnumformat\@altsecnumformatfalse
-\newif\if@autodot
-\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue}
-\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse}
-\@autodotfalse
 \newcommand{\@maybeautodot}[1]{\if@autodot\else\begingroup%
   \expandafter\@@maybeautodot #1\@stop\endgroup\fi
 }
@@ -2145,6 +2167,7 @@
   \fi
   \@@maybeautodot
 }
+\newcommand*\autodot{\if@altsecnumformat.\fi}
 \newcommand*{\scr@saved@startsection}[6]{%
   \if@noskipsec \leavevmode \fi
   \par
@@ -2367,75 +2390,425 @@
   \if@autodot\if@filesw\immediate\write\@mainaux{%
       \string\global\string\@altsecnumformattrue}%
   \fi\fi}
-\newcommand*\autodot{\if@altsecnumformat.\fi}
-\setcounter{secnumdepth}{3}
-\newcommand*{\partnumdepth}{%
- \z@
-}
-\newcommand*{\sectionnumdepth}{\@ne}
-\newcommand*{\subsectionnumdepth}{\tw@}
-\newcommand*{\subsubsectionnumdepth}{\thr@@}
-\newcommand*{\paragraphnumdepth}{4}
-\newcommand*{\subparagraphnumdepth}{5}
-\newcommand*{\ifnumbered}[1]{%
-  \scr@ifundefinedorrelax{#1numdepth}{%
-    \@secondoftwo
+\newcommand*{\raggedsection}{}
+\let\raggedsection\raggedright
+\DefineFamily{KOMAarg}
+\DefineFamilyMember[.dsc]{KOMAarg}
+\newcommand*{\DeclareSectionCommand}[2][]{%
+  \edef\reserved@a{%
+    \noexpand\FamilyStringKey[.dsc]{KOMAarg}{style}{%
+      \expandafter\noexpand\csname scr@#2@style\endcsname
+    }%
+  }\reserved@a
+  \scr@ifundefinedorrelax{scr@local@levelincrease}{%
+    \RelaxFamilyKey[.dsc]{KOMAarg}{increaselevel}%
   }{%
-    \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth
-      \expandafter\@secondoftwo
-    \else
-      \expandafter\@firstoftwo
+    \FamilyCounterMacroKey[.dsc]{KOMAarg}{increaselevel}[1]%
+                          {\scr@local@levelincrease}%
+  }%
+  \scr@ifundefinedorrelax{scr@local@leveloffset}{%
+    \edef\reserved@a{%
+      \noexpand\FamilyCounterMacroKey[.dsc]{KOMAarg}{level}{%
+        \expandafter\noexpand\csname #2numdepth\endcsname}%
+    }\reserved@a
+  }{%
+    \edef\reserved@a{%
+      \noexpand\DefineFamilyKey[.dsc]{KOMAarg}{level}{%
+        \noexpand\FamilySetCounterMacro{KOMAarg}{level}{%
+          \expandafter\noexpand\csname #2numdepth\endcsname
+        }%
+        \unexpanded{%
+          {\numexpr ##1+\scr@local@leveloffset\relax}%
+          \edef\scr@local@leveloffset{%
+            \the\numexpr\scr@local@leveloffset+\scr@local@levelincrease\relax
+          }%
+        }%
+      }%
+    }\reserved@a
+  }%
+  \edef\reserved@a{%
+    \noexpand\FamilyLengthMacroKey[.dsc]{KOMAarg}{indent}{%
+      \expandafter\noexpand\csname scr@#2@sectionindent\endcsname}%
+  }\reserved@a
+  \edef\reserved@a{%
+    \noexpand\FamilyLengthMacroKey[.dsc]{KOMAarg}{beforeskip}{%
+      \expandafter\noexpand\csname scr@#2@sectionbeforeskip\endcsname}%
+  }\reserved@a
+  \edef\reserved@a{%
+    \noexpand\FamilyLengthMacroKey[.dsc]{KOMAarg}{afterskip}{%
+      \expandafter\noexpand\csname scr@#2@sectionafterskip\endcsname}%
+  }\reserved@a
+  \edef\reserved@a{%
+    \noexpand\DefineFamilyKey[.dsc]{KOMAarg}{font}{%
+      \noexpand\IfExistskomafont{#2}{%
+        \noexpand\setkomafont
+      }{%
+        \noexpand\newkomafont
+      }{#2}{####1}%
+      \noexpand\FamilyKeyStateProcessed
+    }%
+  }\reserved@a
+  \FamilyStringKey[.dsc]{KOMAarg}{counterwithin}{\scr@local@counterwithin}%
+  \let\scr@local@counterwithin\relax
+  \scr@ifundefinedorrelax{scr@local@tocleveloffset}{%
+    \edef\reserved@a{%
+      \noexpand\FamilyCounterMacroKey[.dsc]{KOMAarg}{toclevel}{%
+        \expandafter\noexpand\csname #2tocdepth\endcsname}%
+    }\reserved@a
+  }{%
+    \edef\reserved@a{%
+      \noexpand\DefineFamilyKey[.dsc]{KOMAarg}{toclevel}{%
+        \noexpand\FamilySetCounterMacro{KOMAarg}{toclevel}{%
+          \expandafter\noexpand\csname #2tocdepth\endcsname
+        }%
+        \unexpanded{%
+          {\numexpr ##1+\scr@local@tocleveloffset\relax}%
+          \edef\scr@local@tocleveloffset{%
+            \the\numexpr\scr@local@tocleveloffset+\scr@local@levelincrease\relax
+          }%
+        }%
+      }%
+    }\reserved@a
+  }%
+  \edef\reserved@a{%
+    \noexpand\FamilyLengthMacroKey[.dsc]{KOMAarg}{tocindent}{%
+      \expandafter\noexpand\csname scr@#2@tocindent\endcsname}%
+  }\reserved@a
+  \edef\reserved@a{%
+    \noexpand\FamilyLengthMacroKey[.dsc]{KOMAarg}{tocnumwidth}{%
+      \expandafter\noexpand\csname scr@#2@tocnumwidth\endcsname}%
+  }\reserved@a
+  \FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
+  \begingroup
+    \scr@ifundefinedorrelax{#2numdepth}{%
+      \scr@declaresectioncommanderror{#2}{section level}{level}%
+    }{}%
+    \scr@ifundefinedorrelax{scr@#2@sectionindent}{%
+      \scr@declaresectioncommanderror{#2}{section indent}{indent}%
+    }{}%
+    \scr@ifundefinedorrelax{scr@#2@sectionbeforeskip}{%
+      \scr@declaresectioncommanderror{#2}{before section skip}{beforeskip}%
+    }{}%
+    \scr@ifundefinedorrelax{scr@#2@sectionafterskip}{%
+      \scr@declaresectioncommanderror{#2}{after section skip}{afterskip}%
+    }{}%
+    \IfExistskomafont{#2}{}{%
+      \scr@declaresectioncommanderror{#2}{font}{font}%
+    }{}%
+    \scr@ifundefinedorrelax{scr@#2@tocindent}{%
+      \scr@declaresectioncommanderror{#2}{toc entry indent}{tocindent}%
+    }{}%
+    \scr@ifundefinedorrelax{scr@#2@tocnumwidth}{%
+      \scr@declaresectioncommanderror{#2}{toc entry number
+        width}{tocnumwidth}%
+    }{}%
+  \endgroup
+  \@firstofone{%
+    \@ifundefined{c@#2}{\newcounter{#2}}{}%
+    \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{%
+          \csname the\scr@local@counterwithin\endcsname.\arabic{#2}}%
+      \fi
     \fi
+    \@ifundefined{#2format}{%
+      \@namedef{#2format}{\csname the#2\endcsname\autodot\enskip}%
+    }{}%
+    \ifstr{\csname scr@#2@style\endcsname}{}{%
+      \ClassInfo{\KOMAClassName}{%
+        not defining `\string\csname #2\endcsname' due to\MessageBreak
+        empty section style%
+      }%
+    }{%
+      \scr@ifundefinedorrelax{scr@#2@style}{%
+        \ClassWarning{\KOMAClassName}{using default section style}%
+        \@namedef{scr@#2@style}{section}%
+      }{}%
+      \expandafter\edef\csname #2\endcsname{%
+        \noexpand\scr@ifundefinedorrelax{%
+          scr@start\csname scr@#2@style\endcsname}{%
+          \noexpand\ClassError{\noexpand\KOMAClassName}{%
+            section style `\csname scr@#2@style\endcsname' not defined}{%
+            A not yet defined section style `\csname scr@#2@style\endcsname'
+            has been setup for\MessageBreak
+            `\expandafter\string\csname #2\endcsname'. You should either setup
+            another style\MessageBreak
+            or define the style.\MessageBreak
+            If you'll continue, style `section' will be used as an emergency
+            fallback.%
+          }%
+          \noexpand\def\expandafter\noexpand\csname scr@#2@style\endcsname
+          {section}%
+        }{}%
+        \expandafter\noexpand
+        \csname scr@start\csname scr@#2@style\endcsname\endcsname
+        {#2}%
+        \expandafter\noexpand\csname #2numdepth\endcsname
+        \expandafter\noexpand\csname scr@#2@sectionindent\endcsname
+        \expandafter\noexpand\csname scr@#2@sectionbeforeskip\endcsname
+        \expandafter\noexpand\csname scr@#2@sectionafterskip\endcsname{%
+          \noexpand\ifdim\noexpand\glueexpr
+          \expandafter\noexpand\csname scr@#2@sectionbeforeskip\endcsname
+          <\noexpand\z@
+            \unexpanded{%
+              \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
+                \setlength{\parfillskip}{\z@ plus 1fil}%
+              \fi
+            }%
+          \noexpand\fi
+          \unexpanded{%
+            \raggedsection\normalfont\sectfont\nobreak\usekomafont{#2}%
+          }%
+        }%
+      }%
+    }%
+    \@ifundefined{DeclareSectionNumberDepth}{%
+      \@ifundefined{#2markformat}{%
+        \@namedef{#2markformat}{\csname the#2\endcsname\autodot\endskip}%
+      }{}%
+      \@ifundefined{#2mark}{%
+        \expandafter\let\csname #2mark\endcsname\@gobble
+      }{}%
+    }{%
+      \DeclareSectionNumberDepth{#2}{\csname #2numdepth\endcsname}%
+    }%
+    \scr@ifundefinedorrelax{#2tocdepth}{%
+      \expandafter\let\csname #2tocdepth\expandafter\endcsname
+      \csname #2numdepth\endcsname
+    }{}%
+    \expandafter\providecommand\expandafter*%
+    \csname add#2tocentry\endcsname[2]{%
+      \addtocentrydefault{#2}{##1}{##2}%
+    }%
+    \scr@ifundefinedorrelax{l@#2}{%
+      \expandafter\edef\csname l@#2\endcsname{%
+        \noexpand\bprot@dottedtocline
+        \expandafter\noexpand\csname #2tocdepth\endcsname
+        \expandafter\noexpand\csname scr@#2@tocindent\endcsname
+        \expandafter\noexpand\csname scr@#2@tocnumwidth\endcsname
+      }%
+    }{}%
   }%
 }
-\newcommand*{\ifunnumbered}[1]{%
-  \scr@ifundefinedorrelax{#1numdepth}{%
-    \@firstoftwo
+\newcommand*{\scr@declaresectioncommanderror}[3]{%
+  \ClassError{\KOMAClassName}{%
+    #2 of \expandafter\string\csname #1\endcsname\space unknown%
   }{%
-    \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth
-      \expandafter\@firstoftwo
-    \else
-      \expandafter\@secondoftwo
-    \fi
+    Please use option `#3' to declare the #2.\MessageBreak
+    If you'll continue, declaration will be ignored%
   }%
+  \aftergroup\@gobbletwo
 }
-\newcounter{part}
-\renewcommand*{\thepart}{\@Roman\c@part}
-\newcommand*{\partformat}{\partname~\thepart\autodot}
-\newcounter{section}
-\renewcommand*{\thesection}{\@arabic\c@section}
-\newcommand*\sectionmarkformat{\thesection\autodot\enskip}
-\newcounter{subsection}[section]
-\renewcommand*{\thesubsection}{\thesection.\@arabic\c@subsection}
-\newcommand*\subsectionmarkformat{\thesubsection\autodot\enskip}
-\newcounter{subsubsection}[subsection]
-\renewcommand*{\thesubsubsection}{%
-  \thesubsection.\@arabic\c@subsubsection
+\newcommand*{\DeclareNewSectionCommand}[2][]{%
+  \@ifundefined{#2}{%
+    \DeclareSectionCommand[{#1}]{#2}%
+  }{%
+    \ClassError{\KOMAClassName}{%
+      command `\expandafter\string\csname #1\endcsname` already defined%
+    }{%
+      You've tried to define the section command `\expandafter\string\csname
+      #1\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
+      If you'll continue, the command will be irgnored.%
+    }%
+  }%
 }
-\newcounter{paragraph}[subsubsection]
-\renewcommand*{\theparagraph}{\thesubsubsection.\@arabic\c@paragraph}
-\newcounter{subparagraph}[paragraph]
-\renewcommand*{\thesubparagraph}{%
-  \theparagraph.\@arabic\c@subparagraph
+\newcommand*{\RedeclareSectionCommand}[2][]{%
+  \@ifundefined{#2}{%
+    \ClassError{\KOMAClassName}{%
+      command `\expandafter\string\csname #1\endcsname` not defined%
+    }{%
+      You've tried to re-define the section command `\expandafter\string\csname
+      #1\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}%
+  }%
 }
-\newcommand*{\othersectionlevelsformat}[3]{#3\autodot\enskip}
-\renewcommand*{\@seccntformat}[1]{%
-   \protect\othersectionlevelsformat{#1}{%
-     \expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}%
+\newcommand*{\ProvideSectionCommand}[2][]{%
+  \@ifundefined{#2}{%
+    \DeclareSectionCommand[{#1}]{#2}%
+  }{%
+    \ClassInfo{\KOMAClassName}{%
+      \string\ProvideSectionCommand{#1} ignored%
+    }%
+  }%
+}
+\newcommand*{\DeclareSectionCommands}[2][]{%
+  \edef\reserved@a{#2}%
+  \let\scr@local@levelincrease\z@
+  \let\scr@local@leveloffset\z@
+  \let\scr@local@tocleveloffset\z@
+  \@for\reserved@a:=\reserved@a\do{%
+    \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
+}
+\newcommand*{\DeclareNewSectionCommands}[2][]{%
+  \edef\reserved@a{#2}%
+  \let\scr@local@levelincrease\z@
+  \let\scr@local@leveloffset\z@
+  \let\scr@local@tocleveloffset\z@
+  \@for\reserved@a:=\reserved@a\do{%
+    \@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
+}
+\newcommand*{\RedeclareSectionCommands}[2][]{%
+  \edef\reserved@a{#2}%
+  \let\scr@local@levelincrease\z@
+  \let\scr@local@leveloffset\z@
+  \let\scr@local@tocleveloffset\z@
+  \@for\reserved@a:=\reserved@a\do{%
+    \@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
+}
+\newcommand*{\ProvideSectionCommands}[2][]{%
+  \edef\reserved@a{#2}%
+  \let\scr@local@levelincrease\z@
+  \let\scr@local@leveloffset\z@
+  \let\scr@local@tocleveloffset\z@
+  \@for\reserved@a:=\reserved@a\do{%
+    \@ifundefined{\reserved@a}{%
+      \edef\reserved@a{%
+        \unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
+      }%
+      \reserved@a
+    }{%
+      \DefineFamilyKey[.dsc]{KOMAarg}{style}{}%
+      \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
+        }%
+        \edef\scr@local@tocleveloffset{%
+          \the\numexpr\scr@local@tocleveloffset+\scr@local@levelincrease\relax
+        }%
+      }%
+      \DefineFamilyKey[.dsc]{KOMAarg}{indent}{}%
+      \DefineFamilyKey[.dsc]{KOMAarg}{beforeskip}{}%
+      \DefineFamilyKey[.dsc]{KOMAarg}{afterskip}{}%
+      \DefineFamilyKey[.dsc]{KOMAarg}{font}{}%
+      \DefineFamilyKey[.dsc]{KOMAarg}{counterwidthin}{}%
+      \DefineFamilyKey[.dsc]{KOMAarg}{toclevel}{}%
+      \DefineFamilyKey[.dsc]{KOMAarg}{tocindent}{}%
+      \DefineFamilyKey[.dsc]{KOMAarg}{tocnumwidth}{}%
+      \FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
+    }%
+  }%
+  \let\scr@local@levelincrease\relax
+  \let\scr@local@leveloffset\relax
+  \let\scr@local@tocleveloffset\relax
+}
+\newcommand*{\bprot@dottedtocline}[5]{%
+  \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
+    \ifnum #1>\c@tocdepth \else
+      \begingroup
+        \@tempcnta 20010
+        \advance \@tempcnta by -#1
+      \ifnum \@tempcnta>\lastpenalty
+        \endgroup
+        \addpenalty{\@lowpenalty}%
+      \else
+        \endgroup
+      \fi
+      \@dottedtocline{#1}{#2}{#3}{#4}{#5}%
+      \@tempcnta 20009
+      \advance \@tempcnta by -#1
+      \penalty\@tempcnta
+    \fi
+  \else
+    \@dottedtocline{#1}{#2}{#3}{#4}{#5}%
+  \fi
+}
+\newcommand*\appendix{\par%
+  \setcounter{section}{0}%
+  \setcounter{subsection}{0}%
+  \gdef\thesection{\@Alph\c@section}%
+  \csname appendixmore\endcsname
+}
+\newcommand*{\partnumdepth}{%
+ \z@
+}
+\newcommand*{\scr@part@sectionbeforeskip}{%
+  4ex
 }
-\newcommand*\partname{Part}
-\newcommand*\abstractname{Abstract}
-\newcommand*\appendixname{Appendix}
 \newcommand*{\partheadstartvskip}{%
- \addvspace{4ex}%
+  \addvspace{\@tempskipa}%
 }
 \newcommand*{\partheadmidvskip}{%
   \par\nobreak
 }
+\newcommand*{\scr@part@sectionafterskip}{%
+  3ex
+}
 \newcommand*{\partheadendvskip}{%
-    \vskip 3ex
+  \vskip\@tempskipa
 }
+\newcommand*{\scr@part@sectionindent}{\z@}
+\newcommand*{\scr@part@style}{}
 \newcommand\part{\par
+  \@tempskipa=\glueexpr\scr@part@sectionbeforeskip\relax
+  \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
   \partheadstartvskip%
   \@afterindentfalse
   \SecDef\@part\@spart
@@ -2488,6 +2861,8 @@
     \fi
   \endgroup
   \nobreak
+  \@tempskipa=\glueexpr\scr@part@sectionafterskip\relax
+  \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
   \partheadendvskip
   \@afterheading
 }
@@ -2500,6 +2875,8 @@
     \sectfont\nobreak\size@part{#1}\strut\@mkboth{}{}\par
   \endgroup
   \nobreak
+  \@tempskipa=\glueexpr\scr@part@sectionafterskip\relax
+  \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
   \partheadendvskip
   \@afterheading
 }
@@ -2548,126 +2925,16 @@
 \newcommand*{\@saddpart}{\@spart}
 \newcommand*{\partmark}{}
 \let\partmark\@gobble
-\newcommand*\addsec{\SecDef\@addsec\@saddsec}
-\newcommand*{\@addsec}{}
-\def\@addsec[#1]#2{\section*{#2}%
-  \ifnum \scr@osectarg=\z@
-    \@scr@tempswafalse
-  \else
-    \scr@istest#1=\@nil
-  \fi
-  \if@scr@tempswa
-    \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}%
-  \else
-    \ifcase \scr@osectarg\relax
-      \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
-    \or
-      \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}%
-    \or
-      \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}%
-    \or
-      \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
-    \fi
-  \fi
-  \ifx\scr@ds@tocentry\@empty\else
-    \addsectiontocentry{}{\scr@ds@tocentry}%
-  \fi
-  \addsecmark{\scr@ds@head}%
-}
-\newcommand*{\@saddsec}[1]{\section*{#1}\addsecmark{}}
-\newcommand*{\addsectiontocentry}[2]{%
-  \addtocentrydefault{section}{#1}{#2}%
-}
-\newcommand*{\addsubsectiontocentry}[2]{%
-  \addtocentrydefault{subsection}{#1}{#2}%
-}
-\newcommand*{\addparagraphtocentry}[2]{%
-  \addtocentrydefault{paragraph}{#1}{#2}%
-}
-\newcommand*{\addsubparagraphtocentry}[2]{%
-  \addtocentrydefault{subparagraph}{#1}{#2}%
-}
-\newcommand\section{%
-  \scr@startsection{section}{\sectionnumdepth}{\z@}%
-  {-3.5ex \@plus -1ex \@minus -.2ex}%
-  {2.3ex \@plus.2ex}%
-  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
-    \setlength{\parfillskip}{\z@ plus 1fil}\fi
-    \raggedsection\normalfont\sectfont\nobreak\size@section}%
-}
-\newcommand\subsection{%
-  \scr@startsection{subsection}{\subsectionnumdepth}{\z@}%
-  {-3.25ex\@plus -1ex \@minus -.2ex}%
-  {1.5ex \@plus .2ex}%
-  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
-    \setlength{\parfillskip}{\z@ plus 1fil}\fi
-    \raggedsection\normalfont\sectfont\nobreak\size@subsection
-  }%
-}
-\newcommand\subsubsection{%
-  \scr@startsection{subsubsection}{\subsubsectionnumdepth}{\z@}%
-  {-3.25ex\@plus -1ex \@minus -.2ex}%
-  {1.5ex \@plus .2ex}%
-  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
-    \setlength{\parfillskip}{\z@ plus 1fil}\fi
-    \raggedsection\normalfont\sectfont\nobreak\size@subsubsection
-  }%
-}
-\newcommand\paragraph{%
-  \scr@startsection{paragraph}{\paragraphnumdepth}{\z@}%
-  {3.25ex \@plus1ex \@minus.2ex}%
-  {-1em}%
-  {\raggedsection\normalfont\sectfont\nobreak\size@paragraph}%
-}
-\newcommand\subparagraph{%
-  \scr@startsection{subparagraph}{\subparagraphnumdepth}{\parindent}%
-  {3.25ex \@plus1ex \@minus .2ex}%
-  {-1em}%
-  {\raggedsection\normalfont\sectfont\nobreak\size@subparagraph}%
-}
-\newkomafont{minisec}{}
-\newcommand\minisec[1]{%
-  \ifnum \scr@compatibility<\@nameuse{scr@v@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@
-    \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
-      \setlength{\parfillskip}{\z@ plus 1fil}\fi
-    \raggedsection\normalfont\sectfont\nobreak
-    \usekomafont{minisec}#1\par\nobreak}\nobreak%
-  \@afterheading
-}
-\newcommand*{\raggedsection}{}
-\let\raggedsection\raggedright
-\newcommand*{\raggedpart}{}
-\let\raggedpart\raggedsection
-\newkomafont{partentry}{\usekomafont{disposition}\large}
-\newkomafont{partentrypagenumber}{}
-\newkomafont{sectionentry}{\usekomafont{disposition}}
-\newkomafont{sectionentrypagenumber}{}
-\newcommand*{\scr@fnt@disposition}{\sectfont}
-\aliaskomafont{sectioning}{disposition}
-\newcommand*{\scr@fnt@part}{\size@part}
-\newcommand*{\scr@fnt@partnumber}{\size@partnumber}
-\newcommand*{\scr@fnt@section}{\size@section}
-\newcommand*{\scr@fnt@subsection}{\size@subsection}
-\newcommand*{\scr@fnt@subsubsection}{\size@subsubsection}
-\newcommand*{\scr@fnt@paragraph}{\size@paragraph}
-\newcommand*{\scr@fnt@subparagraph}{\size@subparagraph}
+\newcommand*{\parttocdepth}{\m@ne}
+\let\parttocdepth\m@ne
+\newcommand*{\scr@part@tocindent}{\z@}
+\let\scr@part@tocindent\z@
+\newcommand*{\scr@part@tocnumwidth}{2em}
 \newcommand*\l@part[2]{%
-  \ifnum \c@tocdepth >-2\relax
+  \ifnum \c@tocdepth <\parttocdepth \else
     \addpenalty{\@secpenalty}%
     \addvspace{2.25em \@plus\p@}%
-    \setlength{\@tempdima}{2em}%
+    \setlength{\@tempdima}{\scr@part@tocnumwidth}%
     \if@tocleft
       \ifx\toc@l@number\@empty\else
         \setlength\@tempdima{0\toc@l@number}%
@@ -2696,13 +2963,23 @@
     \fi
   \fi
 }
+\newcounter{part}
+\renewcommand*{\thepart}{\@Roman\c@part}
+\newcommand*{\partformat}{\partname~\thepart\autodot}
+\newcommand*\partname{Part}
+\newcommand*{\raggedpart}{}
+\let\raggedpart\raggedsection
+\newcommand*{\scr@fnt@part}{\size@part}
+\newcommand*{\scr@fnt@partnumber}{\size@partnumber}
+\newkomafont{partentry}{\usekomafont{disposition}\large}
+\newkomafont{partentrypagenumber}{}
 \newcommand*\l@section[2]{%
-  \ifnum \c@tocdepth >\z@
+  \ifnum \c@tocdepth <\sectiontocdepth\else
     \ifnum \lastpenalty<20009
       \addpenalty{\@secpenalty}%
     \fi
     \addvspace{1.0em \@plus\p@}%
-    \setlength\@tempdima{1.5em}%
+    \setlength\@tempdima{\dimexpr\scr@section@tocnumwidth}%
      \if@tocleft
       \ifx\toc@l@number\@empty\else
         \setlength\@tempdima{0\toc@l@number}%
@@ -2715,9 +2992,16 @@
       \interlinepenalty\@M
       \leavevmode
       \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
+      \edef\@pnumwidth{\the\dimexpr\@pnumwidth\relax}%
       \usekomafont{sectionentry}{#1\nobreak
         \usekomafont{sectionentrypagenumber}{%
-          \hfill\nobreak
+          {\usekomafont{sectionentrydots}{%
+              \if@sectionentrywithdots
+                \leaders\hbox{$\m@th
+                  \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+                  mu$}%
+              \fi
+              \hfill}}\nobreak
           \hb@xt@\@pnumwidth{\hss#2}}}\par
     \endgroup
     \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
@@ -2726,31 +3010,153 @@
   \fi
 }
 \newcommand*{\raggedsectionentry}{}
-\newcommand*\l@subsection{\bprot@dottedtocline{2}{1.5em}{2.3em}}
-\newcommand*\l@subsubsection{\bprot@dottedtocline{3}{3.8em}{3.2em}}
-\newcommand*\l@paragraph{\bprot@dottedtocline{4}{7.0em}{4.1em}}
-\newcommand*\l@subparagraph{\bprot@dottedtocline{5}{10em}{5em}}
-\newcommand*{\bprot@dottedtocline}[5]{%
-  \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
-    \ifnum #1>\c@tocdepth \else
-      \begingroup
-        \@tempcnta 20010
-        \advance \@tempcnta by -#1
-      \ifnum \@tempcnta>\lastpenalty
-        \endgroup
-        \addpenalty{\@lowpenalty}%
-      \else
-        \endgroup
-      \fi
-      \@dottedtocline{#1}{#2}{#3}{#4}{#5}%
-      \@tempcnta 20009
-      \advance \@tempcnta by -#1
-      \penalty\@tempcnta
+\newcommand*\addsec{\SecDef\@addsec\@saddsec}
+\newcommand*{\@addsec}{}
+\def\@addsec[#1]#2{\section*{#2}%
+  \ifnum \scr@osectarg=\z@
+    \@scr@tempswafalse
+  \else
+    \scr@istest#1=\@nil
+  \fi
+  \if@scr@tempswa
+    \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}%
+  \else
+    \ifcase \scr@osectarg\relax
+      \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
+    \or
+      \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}%
+    \or
+      \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}%
+    \or
+      \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
     \fi
+  \fi
+  \ifx\scr@ds@tocentry\@empty\else
+    \addsectiontocentry{}{\scr@ds@tocentry}%
+  \fi
+  \addsecmark{\scr@ds@head}%
+}
+\newcommand*{\@saddsec}[1]{\section*{#1}\addsecmark{}}
+\newkomafont{minisec}{}
+\newcommand\minisec[1]{%
+  \ifnum \scr@compatibility<\@nameuse{scr@v@3.13a}\relax
+    \@afterindentfalse \vskip 1.5ex
   \else
-    \@dottedtocline{#1}{#2}{#3}{#4}{#5}%
+    \if@noskipsec \leavevmode \fi
+    \par
+    \@afterindentfalse
+    \if@nobreak
+      \everypar{}%
+    \else
+      \addpenalty\@secpenalty\addvspace{1.5ex}%
+    \fi
   \fi
+  {\parindent \z@
+    \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
+      \setlength{\parfillskip}{\z@ plus 1fil}\fi
+    \raggedsection\normalfont\sectfont\nobreak
+    \usekomafont{minisec}#1\par\nobreak}\nobreak%
+  \@afterheading
+}
+\newcommand*{\addsectiontocentry}[2]{%
+  \addtocentrydefault{section}{#1}{#2}%
+}
+\newcommand*{\addsubsectiontocentry}[2]{%
+  \addtocentrydefault{subsection}{#1}{#2}%
+}
+\newcommand*{\addparagraphtocentry}[2]{%
+  \addtocentrydefault{paragraph}{#1}{#2}%
+}
+\newcommand*{\addsubparagraphtocentry}[2]{%
+  \addtocentrydefault{subparagraph}{#1}{#2}%
+}
+\newcounter{section}
+\renewcommand*{\thesection}{\@arabic\c@section}
+\newcommand*\sectionmarkformat{\thesection\autodot\enskip}
+\newcounter{subsection}[section]
+\renewcommand*{\thesubsection}{\thesection.\@arabic\c@subsection}
+\newcommand*\subsectionmarkformat{\thesubsection\autodot\enskip}
+\newcounter{subsubsection}[subsection]
+\renewcommand*{\thesubsubsection}{%
+  \thesubsection.\@arabic\c@subsubsection
+}
+\newcounter{paragraph}[subsubsection]
+\renewcommand*{\theparagraph}{\thesubsubsection.\@arabic\c@paragraph}
+\newcounter{subparagraph}[paragraph]
+\renewcommand*{\thesubparagraph}{%
+  \theparagraph.\@arabic\c@subparagraph
+}
+\newcommand*{\othersectionlevelsformat}[3]{#3\autodot\enskip}
+\renewcommand*{\@seccntformat}[1]{%
+   \protect\othersectionlevelsformat{#1}{%
+     \expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}%
+}
+\newcommand*\addsecmark[1]{%
+  \begingroup
+    \c@secnumdepth=\m@ne
+    \sectionmark{#1}%
+  \endgroup
 }
+\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}
+\newkomafont{sectionentry}{\usekomafont{disposition}}
+\newkomafont{sectionentrypagenumber}{}
+\newkomafont{sectionentrydots}{\normalfont}
+\DeclareSectionCommand[%
+  style=section,%
+  level=1,%
+  indent=\z@,%
+  beforeskip=-3.5ex \@plus -1ex \@minus -.2ex,%
+  afterskip=2.3ex \@plus.2ex,%
+  tocindent=0pt,%
+  tocnumwidth=1.5em%
+]{section}
+\DeclareSectionCommand[%
+  style=section,%
+  level=2,%
+  indent=\z@,%
+  beforeskip=-3.25ex\@plus -1ex \@minus -.2ex,%
+  afterskip=1.5ex \@plus .2ex,%
+  tocindent=1.5em,%
+  tocnumwidth=2.3em%
+]{subsection}
+\DeclareSectionCommand[%
+  style=section,%
+  level=3,%
+  indent=\z@,%
+  beforeskip=-3.25ex\@plus -1ex \@minus -.2ex,%
+  afterskip=1.5ex \@plus .2ex,%
+  tocindent=3.8em,%
+  tocnumwidth=3.2em%
+]{subsubsection}
+\DeclareSectionCommand[%
+  style=section,%
+  level=4,%
+  indent=\z@,%
+  beforeskip=3.25ex \@plus1ex \@minus.2ex,%
+  afterskip=-1em,%
+  tocindent=7.0em,%
+  tocnumwidth=4.1em%
+]{paragraph}
+\DeclareSectionCommand[%
+  style=section,%
+  level=5,%
+  indent=\scr@parindent,%
+  beforeskip=3.25ex \@plus1ex \@minus .2ex,%
+  afterskip=-1em,%
+  tocindent=10em,%
+  tocnumwidth=5em%
+]{subparagraph}
+\ifnum \scr@compatibility<\@nameuse{scr@v@3.15}\relax
+  \let\scr@subparagraph@sectionindent\parindent
+\else
+  \def\scr@subparagraph@sectionindent{\scr@parindent}%
+\fi
+\newcommand*{\scr@fnt@disposition}{\sectfont}
+\aliaskomafont{sectioning}{disposition}
 %%% From File: $Id: scrkernel-miscellaneous.dtx 1803 2014-10-09 08:18:02Z kohm $
 \newif\if@restonecol
 \newcommand{\dictum}[2][]{\par%
@@ -3706,7 +4112,7 @@
   \endgroup
   \@footnotemark
 }
-%%% From File: $Id: scrkernel-listsof.dtx 1720 2014-03-05 08:03:10Z kohm $
+%%% From File: $Id: scrkernel-listsof.dtx 1872 2014-12-10 12:51:37Z kohm $
 \renewcommand*{\numberline}[1]{%
   \numberline@box{%
     \numberline@prefix
-- 
cgit v1.2.3

