Sie sind hier

Kapitelüberschriften mit Rahmen und geschnittener Nummer links

In letzter Zeit erreichen mich verschiedene Anfragen zu einer sehr speziellen Form der Kapitelüberschriften, bei denen die Überschrift zwischen zwei horizontalen Linien stehen soll, wobei die Kapitelnummer von eben dieser Linie geschnitten wird. Die Kapitelnummer selbst soll farbig (meist schwarz) hinterlegt werden.

Leider ist bisher in keiner der Fragen spezifiziert, wie das ganze aussehen soll, wenn keine Kapitelnummer auszugeben ist. Hier sind zwei Varianten denkbar:

  1. Der Kasten für die Nummer bleibt, es wird nur keine Nummer ausgegeben.
  2. Der Kasten für die Nummer entfällt.

Es mag verblüffen, dass ausgerechnet die erste Variante die einfachere ist:

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{microtype}
 
\usepackage{xcolor}
 
\renewcommand*{\chapterformat}{\thechapter}
\renewcommand*{\raggedchapter}{\raggedleft}
\setkomafont{chapter}{\LARGE}% ggf. zusätzlich \normalfont
\setkomafont{chapterprefix}{\Huge}% ggf. zusätzlich \normalfont
\newcommand*{\ChapterCase}[1]{#1}
%\newcommand*{\ChapterCase}[1]{\MakeUppercase{#1}}% grauenvoll
%\newcommand*{\ChapterCase}[1]{\MakeUppercase{\textls[75]{#1}}}% wenig besser
\renewcommand*{\chapterlinesformat}[3]{% #1 = Ebenenname
                                       % #2 = Nummer (oder leer)
                                       % #3 = Text (mit formatierung, Absatz etc.)
  \rule[-\dp\strutbox]{\linewidth}{.4pt}%
  \makebox[0pt][l]{%
    \hspace{-\linewidth}\hspace{.5em}%
    \colorbox{black}{%
      \parbox[c][1.5em][c]{1.5em}{%
        \centering
        \textcolor{white}{%
          \usekomafont{chapterprefix}{%
            \strut #2%
          }%
        }%
        \par
      }%
    }%
  }%
  \par
  \ChapterCase{#3}%
  \rule[.5em]{\linewidth}{.4pt}\par
}
\makeatother
\usepackage{mwe}
 
\begin{document}
 
\tableofcontents
\blinddocument
 
\end{document}

Das Ergebnis wäre dann:

Das Inhaltsverzeichnis als nicht nummeriertes Kapitel mit leerer NummernboxEin nummeriertes Kapitel mit Nummernbox

Dagegen muss man bei der zweiten Variante berücksichtigen, dass normalerweise der Kasten mit der Nummer Auswirkungen auf die vertikale Position der Überschrift selbst hat. Will man also die Position derselben festnageln, so muss man den Platz für den Kasten trotzdem belegen. Eine mögliche Lösung wäre:

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{microtype}
 
\usepackage{xcolor}
 
\renewcommand*{\chapterformat}{\thechapter}
\renewcommand*{\raggedchapter}{\raggedleft}
\setkomafont{chapter}{\LARGE}% ggf. zusätzlich \normalfont
\setkomafont{chapterprefix}{\Huge}% ggf. zusätzlich \normalfont
\newcommand*{\ChapterCase}[1]{#1}
%\newcommand*{\ChapterCase}[1]{\MakeUppercase{#1}}% grauenvoll
%\newcommand*{\ChapterCase}[1]{\MakeUppercase{\textls[75]{#1}}}% wenig besser
\renewcommand*{\chapterlinesformat}[3]{% #1 = Ebenenname
                                       % #2 = Nummer (oder leer)
                                       % #3 = Text (mit formatierung, Absatz etc.)
  \rule[-\dp\strutbox]{\linewidth}{.4pt}%
  \IfArgIsEmpty{#2}{%
    \parbox[c][\dimexpr 1.5em+2\fboxsep]{0pt}{}\par\kern\fboxsep
  }{%
    \makebox[0pt][l]{%
      \hspace{-\linewidth}\hspace{.5em}%
      \colorbox{black}{%
        \parbox[c][1.5em][c]{1.5em}{%
          \centering
          \textcolor{white}{%
            \usekomafont{chapterprefix}{%
              \strut #2%
            }%
          }%
          \par
        }%
      }%
    }%
  }\par
  \ChapterCase{#3}%
  \rule[.5em]{\linewidth}{.4pt}\par\nobreak
}
 
\usepackage{mwe}
 
\begin{document}
 
\tableofcontents
\blinddocument
 
\end{document}

Eine im Endeffekt wesentlich einfachere Methode besteht in der Verwendung von \vphantom. Die Anweisung tut in der Vertikalen so, als wäre das entsprechende Material vorhanden, ohne es tatsächlich auszugeben. Damit der Inhalt nicht einmal für den Fall der Nummerierung und einmal für den gegenteiligen Fall angegeben werden muss, kann man ihn zunächst einfach in eine Box packen und dabei ignorieren, dass die Nummer eventuell leer ist:

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{microtype}
 
\usepackage{xcolor}
 
\renewcommand*{\chapterformat}{\thechapter}
\renewcommand*{\raggedchapter}{\raggedleft}
\setkomafont{chapter}{\LARGE}% ggf. zusätzlich \normalfont
\setkomafont{chapterprefix}{\Huge}% ggf. zusätzlich \normalfont
\newcommand*{\ChapterCase}[1]{#1}
%\newcommand*{\ChapterCase}[1]{\MakeUppercase{#1}}% grauenvoll
%\newcommand*{\ChapterCase}[1]{\MakeUppercase{\textls[75]{#1}}}% wenig besser
\newsavebox\chapternumberbox
\renewcommand*{\chapterlinesformat}[3]{% #1 = Ebenenname
                                       % #2 = Nummer (oder leer)
                                       % #3 = Text (mit formatierung, Absatz etc.)
  \rule[-\dp\strutbox]{\linewidth}{.4pt}%
  \sbox\chapternumberbox
  {%
    \makebox[0pt][l]{%
      \hspace{-\linewidth}\hspace{.5em}%
      \colorbox{black}{%
        \parbox[c][1.5em][c]{1.5em}{%
          \centering
          \textcolor{white}{%
            \usekomafont{chapterprefix}{%
              \strut #2%
            }%
          }%
          \par
        }%
      }%
    }%
  }%
  \IfArgIsEmpty{#2}{%
    \vphantom{\usebox\chapternumberbox}%
  }{\usebox\chapternumberbox}%
  \par
  \ChapterCase{#3}%
  \rule[.5em]{\linewidth}{.4pt}\par
}
\makeatother
\usepackage{mwe}
 
\begin{document}
 
\tableofcontents
\blinddocument
 
\end{document}

Das Ergebnis wäre dann:

Das Inhaltsverzeichnis als nicht nummeriertes Kapitel ohne NummernboxEin nummeriertes Kapitel mit Nummernbox

Ich habe in den Beispielen bewusst die Ausrichtung der Überschrift, die Wahl des Fonts und ähnliche Dinge nicht fest in die Definition von \chapterlinesformat eingebaut, damit man dergleichen Dinge leicht ändern kann. Desweiteren habe ich für die Groß-/Kleinschreibung der Überschrift drei Varianten vorgestellt. Die erste ist diejenige, die ich wählen würde. Die zweite mit ungesperrten Versalien ist diejenige, die ich keinem empfehlen würde. Die dritte nutzt das Paket microtype, um wenigstens ein wenig automatische Sperrung umzusetzen, die allerdings ohne korrekten Ausgleich daher kommt und deshalb fontabhängig oft auch nicht wesentlich besser ist.

Comments for "Kapitelüberschriften mit Rahmen und geschnittener Nummer links" abonnieren