Abschnitt mit Koma-Skript anpassen

Abschnitt mit Koma-Skript anpassen

Ich frage mich, ob Sie mir helfen könnten. Ich möchte die Abschnittstitel in einem scrbookKursdokument anpassen. So etwas wie das hier: Bildbeschreibung hier eingeben

Abschnittsnummer in einem Feld, gefolgt von einer zentrierten Linie, dem Abschnittsnamen und einer weiteren vertikal zentrierten Linie, die die gesamte Textbreite ausfüllt.

Bisher habe ich in diesem StackExchange nach Lösungen gesucht, aber ohne Erfolg. Ich habe dieKoma-Script-Handbuchund habe zwei mögliche Befehle gefunden, um etwas Ähnliches zu tun: \sectionformatund \sectionlinesformat. Aber ehrlich gesagt, meine sehr begrenzten Kenntnisse von Latex erlauben es mir nicht zu verstehen, wann ich das eine oder das andere verwenden soll.

Wenn ich mir ähnliche Lösungen in diesem Forum ansehe, schaffe ich Folgendes:

\documentclass[openright]{scrbook}
\usepackage{geometry}
\geometry{a4paper,twoside, margin=3cm}
\usepackage{blindtext}% only dummy text
\usepackage{xcolor}

\renewcommand*{\sectionformat}{%
    \usekomafont{section}
    \makebox[0pt][r]{\fboxrule=1.5pt\fcolorbox{black}{white!0}{\color{black}\thesection}\rule[.7ex]{10pt}{1.5pt}}
 }

\begin{document}
    \chapter{Introduction}
    \section{Section 1}
    \Blindtext[2]
    \section{Section 2}
    \Blindtext[2]
    \section{Section 3}
    \Blindtext[2]
    \section{Section 4}
    \Blindtext[2]
\end{document}

woraus ich entnehme: Bildbeschreibung hier eingeben

Ich habe jedoch keine Möglichkeit gefunden, die horizontal und vertikal ausgerichtete Texthöhenlinie hinzuzufügen, um die Textbreite auszufüllen.

Eine andere Option, die ich ausprobiert habe, war:

%%%%% Simple + underline
\renewcommand{\sectionlinesformat}[4]{%
\Ifstr{#1}{section}{%
    \parbox[c]{\linewidth}{%
      \raggedsection{\hskip #2{\color{black}#3}}{#4}\par%
      \kern-.75\ht\strutbox\rule{\linewidth}{1pt}%
    }%
  }{%
    {\hskip #2#3}{#4}}% 
}

Sehen Sie, hier \sectionlinesformatwird anstelle von verwendet \sectionformat, aber keine Ahnung, warum. Dafür bekomme ich:

Bildbeschreibung hier eingeben

Eine dritte Option, die ich gefunden habe, war die Verwendung von \makeatletterund \makeatother:

\makeatletter
\renewcommand\@seccntformat[1]{%
  \makebox[0pt][l]{\rule[-\dimexpr\fboxsep+2pt\relax]{\columnwidth}{1.5pt}}%
  \colorbox{blue}{%
    \rule[-2pt]{0pt}{0pt}%
    \color{white}\csname the#1\endcsname
  }%
  \quad
}
\makeatother

Und ich bekomme:

Bildbeschreibung hier eingeben

Gibt es irgendwelche Hinweise, wie ich das gewünschte Ergebnis erzielen kann?

Außerdem wäre es schön, wenn wir die Option hätten, die Abschnittsnummer und ihr Feld am Text auszurichten oder am Rand anzuzeigen.

Antwort1

Etwas wie das?

\documentclass[openright]{scrbook}
\usepackage{geometry}
\geometry{a4paper,twoside, margin=3cm}
\usepackage{blindtext}% only dummy text
\usepackage{xcolor}
\usepackage{xhfill}

\renewcommand*{\sectionformat}{%
    \usekomafont{section}%
    \fboxrule=1pt\fcolorbox{blue}{white!0}{\color{black}\thesection}%
    \color{blue}\rule[.7ex]{10pt}{1pt}\>%
}
\makeatletter
\renewcommand*{\sectionlinesformat}[4]{%
    \@hangfrom{\hskip #2#3}{\color{blue}#4}\>%
    \xrfill[.7ex]{1pt}[blue]%
}
\makeatother

\begin{document}
    \chapter{Introduction}
    \section{Section 1}
    \Blindtext[2]
    \section{Section 2}
    \Blindtext[2]
    \section{Section 3}
    \Blindtext[2]
    \section{Section 4}
    \Blindtext[2]
\end{document}

Antwort2

Nur als Ergänzung zur Antwort von @Vincent:

Wenn nur Abschnitte (und nicht Unterabschnitte und Unterunterabschnitte) das andere Format verwenden sollen:

\documentclass[twoside,open=right]{scrbook}
\usepackage{geometry}
\geometry{margin=3cm}
\usepackage{blindtext}% only for dummy text
\usepackage{xcolor}
\usepackage{xhfill}

\renewcommand*{\sectionformat}{%
  \fboxrule=1.5pt\fcolorbox{.}{white}{\color{black}\thesection}%
  \rule[.7ex]{10pt}{1pt}\;%
}

\NewCommandCopy{\originalsectionlinesformat}{\sectionlinesformat}
\renewcommand*{\sectionlinesformat}[4]{%
  \originalsectionlinesformat{#1}{#2}{#3}{#4\Ifstr{#1}{section}{\;\xrfill[.6ex]{1.5pt}[.]}{}}%
}

\addtokomafont{section}{\color{blue!50!black}}

\begin{document}
\chapter{Introduction}
\section{Section 1}
\subsection{Subsection}
\subsubsection{Subsubsection}
\Blindtext[2]
\end{document}

Bildbeschreibung hier eingeben

Wenn Unterabschnitte und Unterunterabschnitte dasselbe Format, aber unterschiedliche Farben verwenden sollen:

\documentclass[twoside,open=right]{scrbook}
\usepackage{geometry}
\geometry{margin=3cm}
\usepackage{blindtext}% only for dummy text
\usepackage{xcolor}
\usepackage{xhfill}

\renewcommand*{\sectionformat}{%
  \fboxrule=1.5pt\fcolorbox{.}{white}{\normalcolor\thesection}%
  \rule[.7ex]{10pt}{1pt}\;%
}
\renewcommand*{\subsectionformat}{%
  \fboxrule=1.5pt\fcolorbox{.}{white}{\normalcolor\thesubsection}%
  \rule[.7ex]{10pt}{1pt}\;%
}
\renewcommand*{\subsectionformat}{%
  \fboxrule=1.5pt\fcolorbox{.}{white}{\normalcolor\thesubsubsection}%
  \rule[.7ex]{10pt}{1pt}\;%
}

\NewCommandCopy{\originalsectionlinesformat}{\sectionlinesformat}
\renewcommand*{\sectionlinesformat}[4]{%
  \originalsectionlinesformat{#1}{#2}{#3}{#4\;\xrfill[.6ex]{1.5pt}[.]}%
}

\addtokomafont{section}{\color{blue!50!black}}
\addtokomafont{subsection}{\color{green!50!black}}
\addtokomafont{subsubsection}{\color{red!50!black}}

\begin{document}
\chapter{Introduction}
\section{Section 1}
\subsection{Subsection}
\subsubsection{Subsubsection}
\Blindtext[2]
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen