Titel mit Linien umranden

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


MBE
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: So 5. Apr 2026, 17:49

Titel mit Linien umranden

Beitrag von MBE »

Hallo,
Ich versuche nun schon seit Tagen, meine Titel (chapter, section und subsection Überschriften) mit 2 Linien zu umranden... Ansich vermutlich nichts besonderes, dafür gibt es sicher eine praktikable Lösung, wenn man sie denn kennt. Ich habe es jetzt mit titlesec versucht, leider vergebens. Ich bekomme die Linien hin, aber entweder stehen sie mit dem Label (Abschnittsnummer) in einer Zeile, oder das Label steht über den Linien. Langsam steigt mir die Galle hoch... Ich habe jetzt noch mit KI-Unterstützung versucht das Problem zu lösen... das Ergebnis waren 3 Stunden versenkt und kein nennenswerter Output. Ich habe mein Minimalbeispiel hier dranngehängt.
\documentclass[fontsize=12pt,paper=a4,open=any,parskip=half,twoside=false,toc=listof,toc=bibliography,fleqn,leqno,captions=nooneline,captions=tableabove,british]{scrbook}
\usepackage[utf8]{inputenc} % load early
\usepackage[T1]{fontenc} % load early
\usepackage{titlesec}
\usepackage[ngerman,main=british]{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage{graphicx, booktabs, float, scrhack}
\usepackage{amsmath,amssymb}
\usepackage{pdfpages}
%\usepackage[headsepline=0.005pt:,footsepline=0.005pt:,plainfootsepline,automark]{scrlayer-scrpage}
\usepackage[backend=biber,style=verbose,sortcase=false,language=british]{biblatex}
\usepackage{{scrlayer-scrpage}}
\usepackage{xcolor}

\definecolor{mycolor}{RGB}{0,90,150}

\makeatletter
%\addbibresource{thesis.bib}

% =====================
% CHAPTER
% =====================
\titleformat{\chapter}[display]
	{\normalfont\sffamily}
	{\thechapter}
	{2pt}
	{\titlerule\vspace{1ex}}
	[\vspace{1ex}\titlerule]


% =====================
% SECTION
% =====================
\titleformat{\section}[display]
	{\normalfont\sffamily}
	{\thesection}
	{2pt}
	{\titlerule\vspace{1ex}}
	[\vspace{1ex}\titlerule]

% =====================
% SUBSECTION
% =====================
\titleformat{\subsection}[display]
	{\normalfont\sffamily}
	{\thesubsection}
	{2pt}
	{\titlerule\vspace{1ex}}
	[\vspace{1ex}\titlerule]

\makeatother
	
	
\PassOptionsToPackage{hyphens}{url}

\usepackage[hidelinks]{hyperref} % load late

\clearpairofpagestyles
\ohead[]{\headmark} \ofoot[\pagemark]{\pagemark}
%\ModifyLayer[addvoffset=-.6ex]{scrheadings.foot.above.line}
%\ModifyLayer[addvoffset=-.6ex]{plain.scrheadings.foot.above.line}
%\setkomafont{pageheadfoot}{\small}

\newcommand{\RM}[1]{\MakeUppercase{\romannumeral #1{}}}
%\captionsetup{justification=centering}


\begin{document}
\begin{titlepage}
	Masterthesis MBE\\
	tilepage to be replaced by official one


\end{titlepage}
\frontmatter % only if you need page numbering roman
\pagenumbering{Roman}




\chapter*{Preface, Dedication, Acknowlegdement}
test
\pagebreak
\chapter*{Abstract}
test
\pagebreak
\chapter*{Zusammenfassung}
test
\pagebreak
\mainmatter
\chapter{Erstere teil}
test
\pagebreak
\section{Erstere teil,ersterUnterteil}
test
\pagebreak
\subsection{Erstere teil,ersterUnterteil,ersterUnterunterteil}
test
\pagebreak
\chapter{Zweiter Teil}
test
\pagebreak
\section{Zweiter Teil,ersterUnterteil}
test
\pagebreak
\subsection{Zweiter Teil,ersterUnterteil,ersterUnterunterteil}
test
\pagebreak
\end{document}
Ich bin mir sicher, dass es dafür eine elegante einfache Lösung gibt. Ich kenne sie nur nicht.

KOMA-Script-Anwender

Re: Titel mit Linien umranden

Beitrag von KOMA-Script-Anwender »

Schau mal bezüglich der Verwendung von titlesec in die log-Datei. Die Warnung dort gibt auch Hinweise auf Befehle, die man stattdessen verwenden sollte.

Für \chapter gibt es eine fertige Lösung im KOMA-Script-Wiki: https://sourceforge.net/p/koma-script/wiki-de/HowTo_ChapterWithLines/

inputenc brauchst du übrigens schon seit Jahren nicht mehr. Und beim Laden von scrlayer-scrpage ist ein Klammerpaar zuviel.

Frohe Ostern!

MBE
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: So 5. Apr 2026, 17:49

Re: Titel mit Linien umranden

Beitrag von MBE »

Danke das hat dann schon einmal schwer geholfen... Ich wusste es gibt eine ordentliche Lösung, jetzt brauch ich das gleiche noch für sections und subsections... Die Farbe, die Lage udgl. der Linien habe ich hinbekommen, aber da ich nicht ganz verstehe wie die renewcommand syntax funktioniert stehe ich bei meinem Versuch die funktionierende Lösung von chapters auf sections und subsections umzulegen ein bisschen am Schlauch.
\renewcommand*{\chapterlinesformat}[3]{%
  \Ifstr{#1}{chapter}{%
    \textcolor{rulecolor1}{\rule[-5bp]{\linewidth}{0.005bp}}\par\nobreak
  }{}%
  \@hangfrom{#2}{#3}%
  \Ifstr{#1}{chapter}{%
    \textcolor{rulecolor1}{\rule[10bp]{\linewidth}{0.005bp}}\par\nobreak
  }{}%
}
\renewcommand*{\chapterlineswithprefixformat}[3]{%
  \Ifstr{#1}{chapter}{%
    \rule[0.1\baselineskip]{\linewidth}{0.5pt}\par\nobreak
  }{}%
  #2#3%
  \Ifstr{#1}{chapter}{%
    \rule[0.1\baselineskip]{\linewidth}{0.5pt}\par\nobreak
  }{}%
}
Mir ist mittlerweile klar dass die Zeile @hangfrom{#2}{#3} den eigentlichen Text dorthin "hängt" wo er laut Typografie hin soll...
Mir ist auch klar dass jeder renewcommand für eine Möglichkeit des Kapitels steht... erstere für Kapitel mit Nummerierung, zweiteres für Kapitel mit unterdrückter Nummerierung.

Das If-Statement mit Stringvergleich (denke ich zumindest) hab ich auch entschlüsselt...
Dh. steht da dann sinngemäß:
"Wenn #1 chapter Dann Linie(parameter)"
"Hänge #2 #3"
"Wenn #1 chapter Dann Linie(parameter)"

Was ich nicht verstehe... Die Linien werden immer richtig gezeichnet, auch wenn die Kapitel keine Nummerierung haben... kann ich dann den Teil mit \chapterlineswithprefixformat einfach weglassen?

Was bedeuten #1 #2 #3 ... sind das Parameter? Die Parameter {Ebene}{Nummer}{Text}?
Dh. Ebene wäre Chapter, Section usw. Nummer ist vermutlich die Nummerierung und Text wäre dann der Text... aber warum funktioniert dass dann nicht mit sectionlinesformat?

Das hat 4 Parameter... der zweite gibt mir Rätsel auf... Einzug ist ja eine verschiebung. Die sollte 0 sein. Da sie das nicht ist ist die untere linie seitlich versetzt. Wo/Wie kann ich den Wert vorgeben? Wenn ich den Parameter übergehe (auslasse) wird der Text nach dem ersten Wort in eine neue Zeile geschoben, wenn ich hspace verwende detto, wenn ich hspace* verwende dann nicht... die Linie ist immer versetzt.
\renewcommand{\sectionlinesformat}[4]{%
	\Ifstr{#1}{section}{%
	%\hspace{#2}%
	\textcolor{rulecolor1}{\rule[-5bp]{\linewidth}{0.005bp}}\par\nobreak}{}%
	\@hangfrom{#3}{#4}%
	\Ifstr{#1}{section}{%
	%\hspace{#2}%
	\textcolor{rulecolor1}{\rule[-15bp]{\linewidth}{0.005bp}}\par\nobreak}{}%
}
Hier mein verwendetes Beispiel:
\documentclass[fontsize=12bp,paper=a4,open=any,parskip=half,twoside=false,toc=listof,toc=bibliography,fleqn,leqno,captions=nooneline,captions=tableabove,british]{scrbook}
\usepackage[utf8]{inputenc} % load early
\usepackage[T1]{fontenc} % load early
%\usepackage{titlesec}
\usepackage[scaled]{uarial}
\usepackage[ngerman,main=british]{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage{graphicx, booktabs, float, scrhack}
\usepackage{amsmath,amssymb}
\usepackage{pdfpages}
\usepackage[a-3a]{pdfx}
\usepackage[footsepline=0.005pt:,plainfootsepline]{scrlayer-scrpage}
\usepackage[backend=biber,style=verbose,sortcase=false,language=british]{biblatex}
%\usepackage{scrlayer-scrpage}
\usepackage{xcolor}

\definecolor{rulecolor1}{RGB}{191,191,191}
\renewcommand{\familydefault}{\sfdefault}


\addtokomafont{chapter}{\bfseries\Large}

\title{der titel dieser arbeit}
\author{Markus Beschliesser}

\makeatletter
%\addbibresource{thesis.bib}

% =====================
% CHAPTER
% =====================
\renewcommand*{\chapterlinesformat}[3]{%
  \Ifstr{#1}{chapter}{%
    \textcolor{rulecolor1}{\rule[-5bp]{\linewidth}{0.005bp}}\par\nobreak
  }{}%
  \@hangfrom{#2}{#3}%
  \Ifstr{#1}{chapter}{%
    \textcolor{rulecolor1}{\rule[10bp]{\linewidth}{0.005bp}}\par\nobreak
  }{}%
}
\renewcommand*{\chapterlineswithprefixformat}[3]{%
  \Ifstr{#1}{chapter}{%
    \rule[0.1\baselineskip]{\linewidth}{0.5pt}\par\nobreak
  }{}%
  #2#3%
  \Ifstr{#1}{chapter}{%
    \rule[0.1\baselineskip]{\linewidth}{0.5pt}\par\nobreak
  }{}%
}

% =====================
% SECTION
% =====================
\renewcommand{\sectionlinesformat}[4]{%
	\Ifstr{#1}{section}{%
	%\hspace{#2}%
	\textcolor{rulecolor1}{\rule[-5bp]{\linewidth}{0.005bp}}\par\nobreak}{}%
	\@hangfrom{#3}{#4}%
	\Ifstr{#1}{section}{%
	%\hspace{#2}%
	\textcolor{rulecolor1}{\rule[-15bp]{\linewidth}{0.005bp}}\par\nobreak}{}%
}

%\renewcommand*{\sectioncatchphraseformat}[3]{%
%  \Ifstr{#1}{section}{%
%    \rule[0.1\baselineskip]{\linewidth}{0.5pt}\par\nobreak
%  }{}%
%  #2#3%
%  \Ifstr{#1}{section}{%
%    \rule[0.1\baselineskip]{\linewidth}{0.5pt}\par\nobreak
%  }{}%
%}
%\titleformat{\section}[display]
%	{\normalfont\sffamily}
%	{\thesection}
%	{2pt}
%	{\titlerule\vspace{1ex}}
%	[\vspace{1ex}\titlerule]

% =====================
% SUBSECTION
% =====================
%\titleformat{\subsection}[display]
%	{\normalfont\sffamily}
%	{\thesubsection}
%	{2pt}
%	{\titlerule\vspace{1ex}}
%	[\vspace{1ex}\titlerule]

\makeatother
	
	
\PassOptionsToPackage{hyphens}{url}


\clearpairofpagestyles
\rofoot[\textsf{Page \pagemark}]{\textsf{Page \pagemark}}
\lofoot[\textsf{Title}]{\textsf{Title}}
%\ModifyLayer[addvoffset=-.6ex]{scrheadings.foot.above.line}
%\ModifyLayer[addvoffset=-.6ex]{plain.scrheadings.foot.above.line}
\setkomafont{pageheadfoot}{\footnotesize}

\newcommand{\RM}[1]{\MakeUppercase{\romannumeral #1{}}}
%\captionsetup{justification=centering}

\begin{document}
\begin{titlepage}
	Masterthesis MBE\\
	tilepage to be replaced by official one


\end{titlepage}
\frontmatter % only if you need page numbering roman
\pagenumbering{Roman}


\tableofcontents

\chapter*{Preface, Dedication, Acknowlegdement}
test
\pagebreak
\chapter*{Abstract}
test
\pagebreak
\chapter*{Zusammenfassung}
test
\pagebreak
\mainmatter
\chapter{Erstere teil}
test
\pagebreak
\section{Erstere teil,ersterUnterteil}
test
\pagebreak
\subsection{Erstere teil,ersterUnterteil,ersterUnterunterteil}
test
\pagebreak
\chapter{Zweiter Teil}
test
\pagebreak
\section{Zweiter Teil,ersterUnterteil}
test
\pagebreak
\subsection{Zweiter Teil,ersterUnterteil,ersterUnterunterteil}
test
\pagebreak
\end{document}[\code]

KOMA-Script-Anwender

Re: Titel mit Linien umranden

Beitrag von KOMA-Script-Anwender »

Die Unterschiede zwischen den Befehlen und die Bedeutung der Argumente sind in der Anleitung zu finden. Einfach nachlesen. Dein Einzug konfiguriert man über \RedeclareSectionCommand. Siehe auch dazu die Anleitung.
\renewcommand{\sectionlinesformat}[4]{% #1 = Befehlsname, #2 = horizontaler Einzug, #3 = Nummer, #4 = Text
	\Ifstr{#1}{section}{%
	  \textcolor{rulecolor1}{\rule[-5bp]{\linewidth}{0.005bp}}\par\nobreak}{}%
	\@hangfrom{\hskip #2#3}{#4}%
	\Ifstr{#1}{section}{%
	  \vskip-\baselineskip\nobreak\textcolor{rulecolor1}{\rule{\linewidth}{0.005bp}}\par\nobreak}{}%
}
Sollte tun, was du möchtest. Ich empfehle übrigens, (hier) kein uarial zu verwenden. Das entsprechende Paket ist im Online-Editor AFAIK nicht installiert und außerdem ist der Font noch schlechter als Original-Arial, welches selbst schon ein (eher wenig guter) Helvetica-Abklatsch ist.

Es sei darauf hingewiesen, dass das \vskip auch ein \par enthält. Wenn man also den \vskip entfernt, muss man zumindest ein \par ergänzen, sonst ist man an der Stelle AFAIR noch im horizontalen Modus, die Linie würde also direkt hinter der Überschrift begonnen werden.

MBE
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: So 5. Apr 2026, 17:49

Re: Titel mit Linien umranden

Beitrag von MBE »

Danke für den Tipp mit uarial, hab jetzt helvet genommen. Den Einzug musste ich nicht verändern, ich hab dann auch nicht deinen Code genommen... bin draufgekommen ein \par\nobreak am ende der zeile vom \@hangfrom tuts, was ja logisch ist da die Zeile mit der Linie auch so aufhört...

Jedenfalls bin ich fast am Ziel mit meiner Preambel. Eine Frage hätte ich noch...

Kann ich irgendwie die Schriftgröße der Kapitelüberschrift ändern? In der Anleitung steht irgendwo, dass bei gewählter std. Schriftgröße 12, die Kapitel mit 25 gesetzt werden... in meiner Vorlage ist es 16... auf \Large konnte ich einfach mit \addtokomafont{chapter}{\bfseries\Large} ändern. Wenn ich statt \Large jedoch \fontsize=16bp eingebe, erscheint es als Text, weil er offenbar das Steuerzeichen nicht verarbeitet. Da die in der Anleitung angeführten Befehle \usekomafont usw. nur umschalten,wäre mein zweiter ansatz \Large umzudefinieren... in etwa so:
\renewcommand{\Large}{
\fontsize=16bp
}
würde das funktionieren, oder ändere ich dann die Grundschriftgröße des Dokuments?

KOMA-Script-Anwender

Re: Titel mit Linien umranden

Beitrag von KOMA-Script-Anwender »

Du suchst das bereits erwähnt \RedeclareSectionCommand oder \setkomafont oder eventuell auch nur Option headings. Dabei ist die korrekte Syntax von \fontsize{<Schriftgröße>}{<Grundlinienabstand>} ebenso zu beachten wie, dass nach \fontsize{…}{…} ggf. ein \selectfont notwendig ist. Siehe dazu fntguide.pdf, das Teil jeder LaTeX-Distribution ist oder ggf. eine gute LaTeX-Einführung. Es ist zu empfehlen, <Grundlinienabstand> ca. 1,2-mal so groß zu wählen wie <Schriftgröße>, also beispielsweise \fontsize{16}{19.2}\selectfont.

Übrigens ist die Voreinstellung der Schriftgröße nur bei scrlttr2 und der Klasse scrletter 12pt. Bei scrbook, scrreprt und scrartcl ist es 11pt, wie in Abschnitt 3.5 angegeben. Da du 12bp als Grundschriftgröße eingestellt hast, werden die Schriftgrößen auf Basis von 12bp/10bp*<Größe bei 10pt> berechnet. Für \Large ist <Größe bei 10pt> AFAIK 14.4pt (\@xivpt). Du kannst aber auch einfach LaTeX selbst nach den eingestellten Größen fragen:
\documentclass[fontsize=12bp]{scrartcl}
\newlength{\myfsize}
\newcommand*{\sizeinpt}[1]{{#1\global\myfsize\UseName{f@size}pt}\the\myfsize}
\newcommand*{\sizeinbp}[1]{{#1\global\myfsize\UseName{f@size}pt}\UseName{dim_to_decimal_in_bp:n}{\myfsize}bp}
\begin{document}
\begin{tabular}{lrr}
  \texttt{\string\tiny} & \sizeinpt{\tiny} & \sizeinbp{\tiny} \\
  \texttt{\string\scriptsize} & \sizeinpt{\scriptsize} & \sizeinbp{\scriptsize} \\
  \texttt{\string\footnotesize} & \sizeinpt{\footnotesize} & \sizeinbp{\footnotesize} \\
  \texttt{\string\small} & \sizeinpt{\small} & \sizeinbp{\small} \\
  \texttt{\string\normalsize} & \sizeinpt{\normalsize} & \sizeinbp{\normalsize} \\
  \texttt{\string\large} & \sizeinpt{\large} & \sizeinbp{\large} \\
  \texttt{\string\Large} & \sizeinpt{\Large} & \sizeinbp{\Large} \\
  \texttt{\string\LARGE} & \sizeinpt{\LARGE} & \sizeinbp{\LARGE} \\
  \texttt{\string\huge} & \sizeinpt{\huge} & \sizeinbp{\huge} \\
  \texttt{\string\Huge} & \sizeinpt{\Huge} & \sizeinbp{\Huge} \\
\end{tabular}
\end{document}
BTW: Ich empfehle bei derart gebrochenen Schriftgrößen die Verwendung von LuaLaTeX mit dem Paket unicode-math. Das vermeidet ggf. eine Menge Schriftgrößenwarnungen, u.a. weil anderenfalls OT1-codierte Matheschriften verwendet werden, die nur in diskreten Größen vorliegen. Alternativ kann man mit den Standardfonts auch das Paket fix-cm verwenden. Es gibt zu den Warnungen auch einen Eintrag im KOMA-Script-Wiki.

Ich habe übrigens in meiner Definition das \vskip…\nobreak bzw. \par\nobreak (siehe meine Erklärung) bewusst unmittelbar vor der Linie und nicht unmittelbar nach \@hangfrom{…}{…} eingefügt, weil es ja nur in dem Fall benötigt wird, in dem die Linie eingefügt wird. Auch das \hskip #2 habe ich entsprechend verschoben, damit man für (andere) Gliederungebenen weiterhin per \RedeclareSectionCommand ein indent setzen kann, wenn man das will. Ich habe also die Originaldefinition (siehe KOMA-Script-Anleitung) mit all ihren Features so weit wie möglich erhalten und nur für section die Linien hinzugefügt.

Antworten