Ich habe ein Problem mit langen Unter-/Abschnittsüberschriften: \\
funktioniert nicht.
Da ich neu bei Latex bin, habe ich diese schöne Vorlage übernommenhttp://www.fluortools.com/misc/LaTeXtemplateund es für meine Bedürfnisse modifiziert.
Allerdings stecke ich derzeit mit den Zeilenumbrüchen in Unter-/Abschnittsüberschriften fest.
Hier ist ein MWE:
\documentclass[a4paper,12pt,oneside]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[bitstream-charter]{mathdesign}
\usepackage[scaled]{berasans}
\usepackage[scaled]{beramono}
\usepackage[english]{babel}
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=3cm,includehead,headheight=13.6pt]{geometry}
\usepackage{titlesec}
\usepackage{tikz}
\usetikzlibrary{calc,decorations,decorations.pathmorphing,arrows,matrix,positioning,patterns}
\usepackage{xcolor}
\selectcolormodel{cmyk}
\newcommand\boxedSection[3]{{%
%
\begin{tikzpicture}[inner sep=#3,line width=1.0pt]
\node[anchor=east,rectangle,draw] at (0,0) (counter) {\textbf{#2}};
\draw (counter.south west) ++(.0pt,.5pt)-- ++($(\linewidth,0) - (2.5pt,0)$);
\node [right of=counter,anchor=west]{#1};
\end{tikzpicture}
}}
\newcommand\boxedSectionB[3]{{%
%
\begin{tikzpicture}[inner sep=#3,line width=1pt]
\node[anchor=east,rectangle,draw,fill=black] at (0,0) (counter) {\color{white}\textbf{#2}};
\draw (counter.south west) ++(.0pt,.5pt)-- ++($(\linewidth,0) - (2.5pt,0)$);
\node [right of=counter,anchor=west]{#1};
\end{tikzpicture}
}}
\newcommand\boxedsection[1]{\boxedSectionB{#1}{\thesection}{2mm}}
\newcommand\boxedsubsection[1]{\boxedSection{#1}{\thesubsection}{1.7mm}}
\newcommand\boxedsubsubsection[1]{\boxedSection{#1}{\thesubsubsection}{1.5mm}}
\titleformat{\section}[hang]%
{\usekomafont{section}}%
{}%
{.0em}%
{\filright\boxedsection}%
\titleformat{\subsection}[hang]%
{\usekomafont{subsection}}%
{}%
{.0em}%
{\filright\boxedsubsection}%
\titleformat{\subsubsection}[hang]%
{\usekomafont{subsubsection}}%
{}%
{.0em}%
{\filright\boxedsubsubsection}%
\titlespacing{\section}{0pt}{1.5cm}{-1cm}
\titlespacing{\subsection}{0pt}{1.5cm}{-1cm}
\titlespacing{\subsubsection}{0pt}{6pt}{6pt}
\titlespacing{\paragraph}{}{0pt}{0pt}
\begin{document}
\subsection{This title is really really really long so I'd liked to have a \\line break but instead is just go on and on ...}
\end{document}
Sobald ich den boxedSection-Teil im Titelformat entferne, \\
funktioniert der Zeilenumbruch wieder, aber natürlich geht auch das schöne Layout verloren.
Könnte bitte jemand das MWE so ändern, dass der Zeilenumbruch wieder funktioniert, das schöne Layout aber erhalten bleibt.
Vielen Dank!!
Mischko
BEARBEITEN
Ich habe also eine Lösung gefunden, die für meinen Zweck gut funktioniert. Wie touhami vorschlägt, habe ich die Zeile in der boxedSection hinzugefügt text width=13cm
und anchor=west
entfernt, während ich die boxedSectionB unverändert gelassen habe. Der Code sieht also folgendermaßen aus:
\newcommand\boxedSection[3]{{%
%
\begin{tikzpicture}[inner sep=#3,line width=1.0pt]
\node[anchor=east,rectangle,draw] at (0,0) (counter) {\textbf{#2}};
\node [right of=counter,anchor=west,text width=13cm]{#1};
\end{tikzpicture}
}}
Antwort1
Aktualisieren
Hier noch ein Vorschlag ohne Paket titlesec
. Jetzt stehen keine Regeln mehr unter den Überschriften.
\documentclass[a4paper,12pt,oneside]{scrbook}[2015/10/03]
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[bitstream-charter]{mathdesign}
\usepackage[scaled]{berasans}
\usepackage[scaled]{beramono}
\usepackage[english]{babel}
\usepackage[margin=3cm,top=2.5cm,includehead,headheight=13.6pt]{geometry}
\usepackage{xcolor}
\setcounter{secnumdepth}{\subsubsectionnumdepth}% subsubsection numbered
\RedeclareSectionCommands[
font=\normalsize,
%indent=-1em
]{section,subsection,subsubsection}
\newcommand*\BoxedSectionNumber[2]{{%
\setlength\fboxrule{1pt}%
\setlength\fboxsep{#2}%
\ifstr{#1}{section}{%
\colorbox{darkgray}{\textcolor{white}{\csname the#1\endcsname}}%
}{\fbox{\csname the#1\endcsname}}%
\hspace*{2\fboxsep}%
}}
\renewcommand*\sectionformat{\BoxedSectionNumber{section}{2mm}}
\renewcommand*\subsectionformat{\BoxedSectionNumber{subsection}{1.7mm}}
\renewcommand*\subsubsectionformat{\BoxedSectionNumber{subsection}{1.5mm}}
\newsavebox\SectionNumberBox
\renewcommand*\sectionlinesformat[4]{%
\sbox{\SectionNumberBox}{\hspace*{#2}#3}%
\noindent\usebox\SectionNumberBox%
\parbox{\dimexpr\textwidth-\wd\SectionNumberBox\relax}{#4}%
\par\nobreak%
}
\usepackage{blindtext}% dummy text
\begin{document}
\section{Section title}
\blindtext
\subsection{This title is really really really long so I'd liked
to have a line break but instead is just go on and on ...}
\blindtext
\subsubsection{Subsubsection title}
\blindtext
\end{document}
Ergebnis:
Wenn Sie das Kommentarzeichen entfernen, indent=-1em
erhalten Sie
Ursprüngliche Antwort
Beachten Sie, dass die Verwendung des Pakets titlesec
zusammen mit einer KOMA-Script-Klasse nicht empfohlen wird. Sie erhalten Warnungen von KOMA-Script und titlesec
.
Hier ist ein Vorschlag ohne titlesec
, tikz
der mindestens KOMA-Script Version 3.19a (aktuell auf CTAN) erfordert.
\documentclass[a4paper,12pt,oneside]{scrbook}[2015/10/03]
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[bitstream-charter]{mathdesign}
\usepackage[scaled]{berasans}
\usepackage[scaled]{beramono}
\usepackage[english]{babel}
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=3cm,includehead,headheight=13.6pt]{geometry}
\usepackage{xcolor}
\setcounter{secnumdepth}{\subsubsectionnumdepth}% subsubsection numbered
\RedeclareSectionCommands[font=\normalfont]{section,subsection,subsubsection}
\RedeclareSectionCommands[
beforeskip=-1.5cm,
afterskip=1cm,
font=\normalfont
]{section,subsection}
\RedeclareSectionCommand[
beforeskip=-12pt,
afterskip=6pt,
font=\normalfont
]{subsubsection}
\newcommand*\sectionnumberfboxsep{2mm}
\newcommand*\subsectionnumberfboxsep{1.7mm}
\newcommand*\subsubsectionnumberfboxsep{1.5mm}
\renewcommand*\sectionformat{{%
\setlength\fboxsep{\sectionnumberfboxsep}%
\setlength\fboxrule{1pt}%
\colorbox{black}{\bfseries\textcolor{white}{\thesection}}%
}}
\renewcommand*\subsectionformat{{%
\setlength\fboxsep{\subsectionnumberfboxsep}%
\setlength\fboxrule{1pt}%
\fbox{\bfseries\thesubsection}%
}}
\renewcommand*\subsubsectionformat{{%
\setlength\fboxsep{\subsubsectionnumberfboxsep}%
\setlength\fboxrule{1pt}%
\fbox{\bfseries\thesubsubsection}%
}}
\makeatletter
\renewcommand*\sectionlinesformat[4]{%
\ifstr{#1}{section}{%
\leavevmode\rlap{\rule[\dimexpr-\sectionnumberfboxsep-1pt\relax]{\textwidth}{1pt}}%
\parbox[b]{3em}{#3}\parbox[b]{\dimexpr\textwidth-3em}{#4}\par\nobreak%
}{%
\ifstr{#1}{subsection}{%
\leavevmode\rlap{\rule[\dimexpr-\subsectionnumberfboxsep-1pt\relax]{\textwidth}{1pt}}%
\parbox[b]{4em}{#3}\parbox[b]{\dimexpr\textwidth-4em}{#4}\par\nobreak%
}{%
\ifstr{#1}{subsubsection}{%
\leavevmode\rlap{\rule[\dimexpr-\subsubsectionnumberfboxsep-1pt\relax]{\textwidth}{1pt}}%
\parbox[b]{4.75em}{#3}\parbox[b]{\dimexpr\textwidth-4.75em}{#4}\par\nobreak%
}{%
\@hangfrom{\hspace*{#2}#3}{#4}%
}}}%
}
\makeatletter
\usepackage{blindtext}% dummy text
\begin{document}
\section{Section title}
\blindtext
\subsection{This title is really really really long so I'd liked to have a line break but instead is just go on and on ...}
\blindtext
\subsubsection{Subsubsection title}
\blindtext
\end{document}