von Noch so einer » Do 10. Okt 2013, 12:03
Problem dabei ist, dass die Gliederungsbefehle keine Umgebungen sind. Man könnte natürlich \leftskip dafür missbrauchen:
\documentclass[12pt, a4paper]{scrreprt}
\usepackage{blindtext}
\usepackage{etoolbox}
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
\newcommand*{\chapterindent}{0pt}
\newcommand*{\sectionindent}{1em}
\newcommand*{\subsectionindent}{2em}
\newcommand*{\subsubsectionindent}{3em}
\newcommand*{\paragraphindent}{4em}
\newcommand*{\subparagraphindent}{5em}
\preto\chapter{\par\setlength{\leftskip}{\chapterindent}}
\preto\section{\par\setlength{\leftskip}{\sectionindent}}
\preto\subsection{\par\setlength{\leftskip}{\subsectionindent}}
\preto\subsubsection{\par\setlength{\leftskip}{\subsubsectionindent}}
\preto\paragraph{\par\setlength{\leftskip}{\paragraphindent}}
\preto\subparagraph{\par\setlength{\leftskip}{\subparagraphindent}}
\renewcommand*{\othersectionlevelsformat}[3]{%
\ifstr{#1}{paragraph}{}{%
\ifstr{#1}{subparagraph}{}{%
{\normalsize\normalfont\hspace{\csname #1indent\endcsname}}%
}%
}#3\autodot\enskip
}
\begin{document}
\tableofcontents
\newpage
\chapter{chapter}
\blindtext
\section{section}
\blindtext
\subsection{subsection}
\blindtext
\subsubsection{subsubsection}
\blindtext
\paragraph{paragraph}
\blindtext
\subparagraph{subparagraph}
\blindtext
\end{document}
Allerdings ergibt das dann ein Problem mit diversen Umgebungen, namentlich allen Listen-Umgebungen, die ihrerseits \leftskip auf einen bestimmten Wert setzen. Die müsste man dann so umdefinieren, dass sie keinen festen Wert verwenden, sondern einen Wert zum aktuell gültigen Wert addieren. Das macht einige Arbeit.
\preto ist in der Anleitung zu
etoolbox erklärt. \othersectionlefelsformat und \ifstr sind in der
KOMA-Script-Anleitung zu finden.
Problem dabei ist, dass die Gliederungsbefehle keine Umgebungen sind. Man könnte natürlich \leftskip dafür missbrauchen: [code]\documentclass[12pt, a4paper]{scrreprt}
\usepackage{blindtext}
\usepackage{etoolbox}
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
\newcommand*{\chapterindent}{0pt}
\newcommand*{\sectionindent}{1em}
\newcommand*{\subsectionindent}{2em}
\newcommand*{\subsubsectionindent}{3em}
\newcommand*{\paragraphindent}{4em}
\newcommand*{\subparagraphindent}{5em}
\preto\chapter{\par\setlength{\leftskip}{\chapterindent}}
\preto\section{\par\setlength{\leftskip}{\sectionindent}}
\preto\subsection{\par\setlength{\leftskip}{\subsectionindent}}
\preto\subsubsection{\par\setlength{\leftskip}{\subsubsectionindent}}
\preto\paragraph{\par\setlength{\leftskip}{\paragraphindent}}
\preto\subparagraph{\par\setlength{\leftskip}{\subparagraphindent}}
\renewcommand*{\othersectionlevelsformat}[3]{%
\ifstr{#1}{paragraph}{}{%
\ifstr{#1}{subparagraph}{}{%
{\normalsize\normalfont\hspace{\csname #1indent\endcsname}}%
}%
}#3\autodot\enskip
}
\begin{document}
\tableofcontents
\newpage
\chapter{chapter}
\blindtext
\section{section}
\blindtext
\subsection{subsection}
\blindtext
\subsubsection{subsubsection}
\blindtext
\paragraph{paragraph}
\blindtext
\subparagraph{subparagraph}
\blindtext
\end{document}[/code]
Allerdings ergibt das dann ein Problem mit diversen Umgebungen, namentlich allen Listen-Umgebungen, die ihrerseits \leftskip auf einen bestimmten Wert setzen. Die müsste man dann so umdefinieren, dass sie keinen festen Wert verwenden, sondern einen Wert zum aktuell gültigen Wert addieren. Das macht einige Arbeit.
\preto ist in der Anleitung zu [url=http://www.ctan.org/pkg/etoolbox]etoolbox[/url] erklärt. \othersectionlefelsformat und \ifstr sind in der [url=http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf]KOMA-Script-Anleitung[/url] zu finden.