[Tex/LaTex] Newline after section number / before section title in KOMA-Script

formattingkoma-scriptsectioning

i have to adhere to a style guide which dictates newline after a chapter/section/etc number, i.e. instead of the usual

1.2 Heading

its supposed to be

1.2
Heading

This has to work for both the headings themselves and for the TOC. So far i'm using an ugly clutch by simply writing \section{\\Heading}, which causes some problems, e.g. with the hyperref package. I'm using KOMA-Script (scrreprt), and tried solving this by redefining \sectionformat, which sadly ignores any \newline commands. Is there a clean way to achieve this? I know there is the twolinechapter option which kind of solves it for the chapter headings, although not for the TOC or any other sectioning commands.

Thanks in advance!

EDIT:
I found another clutch, which works for the headings and is probably also applicable in some way to the TOC (don't know how to format TOC items jet, will try to find out):

\renewcommand*{\chapterformat}{\makebox[0pt][l]{\raisebox{17.5pt}{\thechapter}}}

This simply raises the numbering, and the \makebox avoids the indenting (negative \vspace / \hspace doesn't work for some reason). Doesn't feel right, but at least better than a newline the beginning of the heading itself.

EDIT A minimal Example of my current method:

\documentclass{scrreprt}
\usepackage{blindtext}
% Styling the Headings
\renewcommand*{\chapterformat}{\makebox[0pt][l]{\raisebox{17.5pt}{\thechapter}}}
\renewcommand*{\sectionformat}{\makebox[0pt][l]{\raisebox{17.5pt}\thesection}}
\renewcommand*{\subsectionformat}{\makebox[0pt][l]{\raisebox{12pt}\thesubsection}}

\begin{document}
\tableofcontents
\blinddocument  
\end{document}

Now all that remains is Styling the TOC. Is there a similar version of \chapterformat (etc.) for the TOC? I know I can redefine the TOC indents with \RedeclareSectionCommand, and set different toc styles. But nothing similar to what I want to achieve.

Best Answer

Second Update

Since version 3.20 you can use option tocbreakafternumber in \RedeclareSectionCommands to get a break after the sectioning numbers TOC.

\documentclass{scrreprt}[2016/04/09]

\RedeclareSectionCommands[
  tocbreakafternumber,% <-
  tocindent=0pt
]{chapter,section,subsection,subsubsection}

\renewcommand\chapterlinesformat[3]{\ifstr{#2}{}{}{#2\\*}#3}
\renewcommand*{\sectionlinesformat}[4]{%
  \hspace*{#2}%
  \parbox{\dimexpr\linewidth-#2\relax}{\raggedsection
    \ifstr{#3}{}{}{#3\\}%
    #4}%
}

\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\listoffigures
\Blinddocument
\begin{figure}%
  Figure
\caption{A Figure}%
\end{figure}
\end{document}

The result is the same as in the pictures below.


Update

Since version 3.19 the recommended way to change the order or the layout of the sectioning numbers and text is redefining commands \chapterlinesformat, \chapterlineswithprefixformat, \sectionlinesformat and \sectioncatchphraseformat.

Additional I have tested the hack/workaround in my original answer for the TOC with the pre-release of the next KOMA-Script version (3.20). With this upcoming version simple redefining \numberline has no effect. You could appended code to \numberline but at the moment I would suggest to redefine \addtocentrydefault. Maybe in the future there will be a special tocstyle that defines your needed style for the toc entries automatically.

\documentclass[toc=flat]{scrreprt}[2015/10/03]

\renewcommand\chapterlinesformat[3]{\ifstr{#2}{}{}{#2\\*}#3}

\renewcommand*{\sectionlinesformat}[4]{%
  \hspace*{#2}%
  \parbox{\dimexpr\linewidth-#2\relax}{\raggedsection
    \ifstr{#3}{}{}{#3\\}%
    #4}%
}

\renewcommand\addtocentrydefault[3]{%
  \ifstr{#2}{}{%
    \addcontentsline{toc}{#1}{\protect\nonumberline#3}%
  }{%
    \addcontentsline{toc}{#1}{\protect\nonumberline#2\\*#3}%
  }%
}

\usepackage{blindtext}
\begin{document}
\tableofcontents
\listoffigures
\Blinddocument
\begin{figure}%
  Figure
\caption{A Figure}%
\end{figure}
\end{document}

enter image description here

enter image description here


Original answer:

Somebody has asked Markus Kohm a similar question. So there is now a suggestion for the headings on the KOMA-Script website (German):

\documentclass[chapterprefix]{scrreprt}
\renewcommand*{\chapterformat}{\thechapter\autodot}
\RedeclareSectionCommand[innerskip=0pt]{chapter}
\makeatletter
\renewcommand*{\raggedsection}{\raggedright\renewcommand*{\@hangfrom}[1]{##1\\*}}
\makeatother

\usepackage{mwe}
\begin{document}
\Blinddocument
\end{document}

Note: This code is a workaround and uses KOMA-Script internals. It works with the current version 3.18 But maybe it will not work with future releases.

Additionally here is a workaround/hack for the table of contents also based on an idea of Markus:

\documentclass[chapterprefix,
  toc=flat
]{scrreprt}

\renewcommand*{\chapterformat}{\thechapter\autodot}
\RedeclareSectionCommand[innerskip=0pt]{chapter}
\makeatletter
\renewcommand*{\raggedsection}{\raggedright\renewcommand*{\@hangfrom}[1]
{##1\\*}}
\makeatother

\BeforeStartingTOC[toc]{\renewcommand*{\numberline}[1]{#1\\*}}
\RedeclareSectionCommands[tocnumwidth=0pt]{chapter,section,subsection}

\usepackage{blindtext}
\begin{document}
\tableofcontents
\listoffigures
\Blinddocument
\begin{figure}%
  Figure
\caption{A Figure}%
\end{figure}
\end{document}

enter image description here

Or without toc=flat:

enter image description here

Related Question