
Ich frage mich, ob Sie mir helfen könnten. Ich möchte die Abschnittstitel in einem scrbook
Kursdokument anpassen. So etwas wie das hier:
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: \sectionformat
und \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}
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 \sectionlinesformat
wird anstelle von verwendet \sectionformat
, aber keine Ahnung, warum. Dafür bekomme ich:
Eine dritte Option, die ich gefunden habe, war die Verwendung von \makeatletter
und \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:
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}
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}