Seite 1 von 1

Text nach chapter/section/... einrücken

Verfasst: Do 10. Okt 2013, 11:12
von noerf
Moin,

ich habe für meine Abschlussarbeit folgende Vorgabe bekommen:

Jede Gliederungsebene ist etwas weiter eingerückt als die übergeordnete Ebene.

Als Beispiel:
1 Überschrift
Lorem ipsum dolor sit amet, consetetur
sadipscing elitr At vero eos et accusam
et justo duo dolores et ea rebum.

    1.1 nächste Ebene
    Lorem ipsum dolor sit amet, consetetur
    sadipscing elitr At vero eos et accusam
    et justo duo dolores et ea rebum.

        1.1.1 dritte Ebene
        Lorem ipsum dolor sit amet,
        consetetur sadipscing elitr At vero
        eos et accusam et justo duo dolores
        et ea rebum.
Natürlich kann ich mit \begin{addmargin} ... \end{addmargin} einrücken, würde das aber gerne allgemein für chapter\section\usw definieren.

Hat jemand einen Vorschlag?

Verfasst: Do 10. Okt 2013, 11:17
von Johannes_B
Kannst du uns bitte ein Minimalbeispiel zur Verfügung stellen? So mit sehen wir wenigstens die Dokumentklasse und können mögliche Lösungen sofort testen.

Mal davon abgesehen, halte ich von dieser Vorgabe nicht sonderlich viel.

Verfasst: Do 10. Okt 2013, 11:26
von noerf
Sorry, wollte ich eigentlich gleich schon mitschicken.
Ob die Vorgabe sinnvoll ist oder nicht durfte ich leider nicht entscheiden, schließe mich da aber deiner Meinung an...

\documentclass[12pt, a4paper]{scrreprt}
\usepackage{blindtext}

\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}

\begin{document}

\tableofcontents

\newpage

\chapter{chapter}
\blindtext
\section{section}
\blindtext
\subsection{subsection}
\blindtext
\subsubsection{subsubsection}
\blindtext
\paragraph{paragraph}
\blindtext
\subparagraph{subparagraph}
\blindtext

\end{document}

Verfasst: Do 10. Okt 2013, 12:03
von Noch so einer
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.

Verfasst: Do 10. Okt 2013, 15:03
von noerf
Danke erstmal, werde mich da mal einlesen.