
Im Anschluss an meine Frage zumAnpassung der Abschnittsüberschrift, ich möchte das Feld mit der Abschnittsnummer immer außen auf der Seite haben (ich verwende die Option „zweiseitig“). Das heißt, bei ungeraden Seiten sollte das Feld mit der Abschnittsnummer rechts sein, während bei geraden Seiten das Feld mit der Abschnittsnummer links sein sollte.
Für gerade Seiten:
und für ungerade Seiten:
Hier sind die Probleme:
- Ich habe den Code manuell geändert, um die Abschnittsnummer an der gewünschten Stelle für die Snippets zu platzieren. Aber das ist bei großen Dokumenten natürlich nicht akzeptabel. Gibt es Hilfe, um das automatisch zu machen?
- Bei ungeraden Seiten ist es mir nicht gelungen, das Kästchen so außerhalb des Textbereichs zu platzieren wie bei geraden Seiten.
Auch hier ist jeder Hinweis willkommen.
Hier ist mein MWE:
\documentclass[openright]{scrbook}
\usepackage{geometry}
\geometry{a4paper,twoside, margin=3cm}
\usepackage{blindtext}
\usepackage{xcolor}
\usepackage{xhfill}
\renewcommand*{\sectionformat}{%
\usekomafont{section}%
\makebox[0pt][r]{%
\fboxrule=1.5pt\fcolorbox{blue}{white!0}{\color{black}\thesection}\color{blue}\rule[.6ex]{10pt}{1.5pt}
}%
}
\makeatletter
\renewcommand*{\sectionlinesformat}[4]{%
\@hangfrom{\hskip #2#3}{\color{blue}#4}$\;$%
\xrfill[.6ex]{1.5pt}[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}
Danke!
Antwort1
Sie können den KOMA-Script-Befehl verwenden \Ifthispageodd
:
\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}%
}
\renewcommand*{\subsectionformat}{%
\fboxrule=1.5pt\fcolorbox{.}{white}{\normalcolor\thesubsection}%
}
\makeatletter
\renewcommand*{\sectionlinesformat}[4]{%
\Ifthispageodd
{\rule[.6ex]{10pt}{1.5pt}\;#4\;\xrfill[.6ex]{1.5pt}[.]\hspace{-1pt}\usekomafont{#1}\makebox[0pt][l]{\rule[.6ex]{11pt}{1.5pt}#3}}
{\makebox[0pt][r]{#3\rule[.6ex]{10pt}{1.5pt}\;}#4\;\xrfill[.6ex]{1.5pt}[.]}%
}
\makeatother
\addtokomafont{section}{\color{blue!50!black}}
\addtokomafont{subsection}{\color{green!50!black}}
\begin{document}
\chapter{Introduction}
\section{Section 1}
\subsection{Subsection}
\Blindtext[2]
%\vspace{4\baselineskip}
\section{Section 2}
\Blindtext[1]
%\clearpage
\section{Section 3}
\Blindtext[2]
\section{Section 4, very long section title that requires more than one line}
\Blindtext[2]
\end{document}
Warnung: \Ifthispageodd
hat Einschränkungen. Wenn der Befehl auf einer Seite ausgeführt wird, der Inhalt aber auf die nächste Seite verschoben wird, geht es schief. Entfernen Sie die Kommentarzeichen aus der Zeile, \vspace{4\baselineskip}
um das Problem zu sehen. Sie müssen also Ihr Dokument kontrollieren, wenn Sie fertig sind, und das Problem beheben, z. B. mit \clearpage
.
Zusätzliche Bemerkung: Der Code in der Frage verwendet dasselbe Format für Abschnitts-, Unterabschnitts- und Unterunterabschnittsüberschriften. Ich habe einen Unterabschnitt hinzugefügt, um dieses Verhalten zu zeigen und wie man unterschiedliche Farben für Abschnitts- und Unterabschnittsüberschriften verwendet.