Ich versuche, ein zweiseitiges Dokument mit KomaScript zu erstellen. Ich möchte jeder Seite, auf der ein neuer Abschnitt beginnt, etwas Besonderes hinzufügen. Ich habe mit der Erstellung eines neuen Seitenstils gemäßdieser Beitrag. Ich habe versucht, das dort angegebene Beispiel abzuändern. Bisher habe ich Folgendes getan:
\documentclass[12pt,a4paper,ngerman, twoside]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[left=3.8cm,right=2.2cm,top=3cm,bottom=3cm]{geometry}
\usepackage{xcolor}
\usepackage[headsepline, automark]{scrlayer-scrpage}
\clearpairofpagestyles
\renewcommand*\pagemark{{\usekomafont{pagenumber}Seite\nobreakspace\thepage}}
\automark[section]{section}
\ihead*{\headmark}
\ohead*{\pagemark}
\chead{}
\cfoot[]{}
\ofoot[]{}
\ifoot[]{}
\newpairofpagestyles{highlights}{
\chead{}
\KOMAoptions{headsepline=false}
\ohead*{\colorbox{blue!15}{%
\makebox[\dimexpr\linewidth-2\fboxsep][l]{\color{white}%
\hfill
\pagemark}
}
}
}
\begin{document}
\section{Section 1}
Some text.
\cleardoublepage
\thispagestyle{highlights}
\section{Section 2}
Some text.
\end{document}
Das Ergebnis ist folgender Kopfzeilenstil:
Ich möchte drei Dinge erreichen:
Ein ... kreierenbenutzerdefinierter Seitenstilim angegebenen MWE, das ich auf bestimmten Seiten aktivieren kann (wo neue Abschnitte beginnen), das die Farbleiste (die ich im Folgenden spezifiziere) und die Seitennummer enthält
Erstellen Sie dieFarbbalken mit Farbverlauf hinter dem Seitennummerierer in der Kopfzeile(schön wäre es, wenn die Farbleiste optional auch nach innen oder außen über den Headerbereich hinausreichen könnte, je nach Geschmack)
Ändere dasTextfarbe der Seitenmarkierung soll weiß sein, sodass ich weißen Text vor der Farbleiste habe.
Um zu visualisieren, was ich will, habe ich die wichtige Seite meines MWE bearbeitet;das ist, was ich erreichen möchte:
Ich habe bereits versucht, einen neuen Seitenstil auf folgende Weise zu erstellen, was auch im obigen Link vorgeschlagen wurde. Ich habe tikz
jedoch nicht genug Erfahrung damit, um es zum Laufen zu bringen:
\usepackage{tikz}
\DeclareNewLayer[background,head,
contents={\hspace*{0cm}%
\tikz{
\fill[shade,left color=blue!0,right color=blue!20,right color=blue!70] (0,0)rectangle(20cm ,{1.4cm});
\node[rotate=0,font=\bfseries] at({\textwidth-0.9cm},{0})
{\ppagemark};
}}
]{highlights.bg}
\DeclareNewPageStyleByLayers{highlights}{highlights.bg}
Außerdem weiß ich bei diesem Ansatz nicht einmal, wie ich die Seitenzahl dorthin bekomme, wo ich sie haben möchte.
Vielleicht hat jemand von euch das schon einmal gemacht oder kennt sich gut genug mit der Materie aus, um mir weiterhelfen zu können.
Antwort1
Leider verstehe ich nicht ganz, was das gewünschte Ergebnis sein soll. Ich würde aber vorschlagen, eine neue Ebene für den Header-Hintergrund zu definieren:
\DeclareNewLayer[
background,
head,
hoffset=0pt,
width=\paperwidth,
mode=picture,
contents={\putLL{\tikz{
\ifodd \value{page}
\fill[shade,left color=blue!0,right color=blue!70]
(0,0)rectangle(\the\layerwidth,\the\layerheight);
\else
\fill[shade,left color=blue!70,right color=blue!0]
(0,0)rectangle(\the\layerwidth,\the\layerheight);
\fi
}}
}
]{highlights.bg}
Dann können Sie diese Ebene am Anfang Ihres neu definierten Seitenstils hinzufügen:
\newpairofpagestyles{highlights}{
\ohead{\pagemark}
\KOMAoptions{headsepline=false}
\addtokomafont{pagenumber}{\bfseries\color{white}}
}
\AddLayersAtBeginOfPageStyle{highlights}{highlights.bg}
Beispiel:
\documentclass[12pt,ngerman, twoside]{scrartcl}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}% needed with older TeX distributions
\usepackage{lmodern}
\usepackage{babel}
\usepackage[left=3.8cm,right=2.2cm,top=3cm,bottom=3cm]{geometry}
\usepackage{tikz}% loads xcolor, graphicx etc.
\usepackage[headsepline]{scrlayer-scrpage}
\clearpairofpagestyles
\renewcommand*\pagemark{{\usekomafont{pagenumber}Seite\nobreakspace\thepage}}
\automark[section]{section}
\ihead{\headmark}
\ohead*{\pagemark}
\newpairofpagestyles{highlights}{
\ohead{\pagemark}
\KOMAoptions{headsepline=false}
\addtokomafont{pagenumber}{\bfseries\color{white}}
}
\DeclareNewLayer[
background,
head,
hoffset=0pt,
width=\paperwidth,
mode=picture,
contents={\putLL{\tikz{
\ifodd \value{page}
\fill[shade,left color=blue!0,right color=blue!70]
(0,0)rectangle(\the\layerwidth,\the\layerheight);
\else
\fill[shade,left color=blue!70,right color=blue!0]
(0,0)rectangle(\the\layerwidth,\the\layerheight);
\fi
}}
}
]{highlights.bg}
\AddLayersAtBeginOfPageStyle{highlights}{highlights.bg}
\usepackage{blindtext}% only for dummy text
\begin{document}
\section{Section 1}
Some text.
\cleardoublepage
\thispagestyle{highlights}
\blinddocument
\end{document}
Wenn jedoch jeder Abschnitt in Ihrem Dokument auf einer neuen ungeraden Seite beginnen soll, können Sie scrreprt
mit der Option zur Klasse wechseln open=right
. Hier ist also ein zusätzlicher Vorschlag, vorausgesetzt, dass pagestyle highlights
dieselben Ebenen verwendet wie pagestyle plain.scrheadings
und die neue Ebene highlight.bg
:
\documentclass[12pt,ngerman, twoside,open=right]{scrreprt}
\RedeclareSectionCommand[beforeskip=0pt,afterindent=false]{chapter}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}% needed with older TeX distributions
\usepackage{lmodern}
\usepackage{babel}
\usepackage[left=3.8cm,right=2.2cm,top=3cm,bottom=3cm]{geometry}
\usepackage{tikz}% loads xcolor, graphicx etc.
\usepackage[headsepline]{scrlayer-scrpage}
\clearpairofpagestyles
\renewcommand*\pagemark{{\usekomafont{pagenumber}Seite\nobreakspace\thepage}}
\automark[chapter]{chapter}
\ihead{\headmark}
\ohead*{\pagemark}
\DeclareNewLayer[
background,
oddpage,% not on even pages in two-sided documents
head,
hoffset=0pt,
width=\paperwidth,
mode=picture,
contents={\putLL{\tikz{
\fill[shade,left color=blue!0,right color=blue!70]
(0,0)rectangle(\the\layerwidth,\the\layerheight);
}}
}
]{highlights.bg}
\DeclareNewPageStyleByLayers{highlights}{highlights.bg}
\ForEachLayerOfPageStyle{plain.scrheadings}{\AddLayersToPageStyle{highlights}{#1}}% <- add all plain.scrheadings layers to the new page style
\AddToLayerPageStyleOptions{highlights}{oninit=\addtokomafont{pagenumber}{\bfseries\color{white}}\KOMAoptions{headsepline=false}}
\renewcommand\chapterpagestyle{highlights}
\usepackage{blindtext}% only for dummy text
\begin{document}
\chapter{Chapter 1}
Some text.
\blinddocument
\end{document}
Aktualisieren(bezüglich eines Kommentars unten)
addheight
Mit den Optionen , addhoffset
, addvoffset
, addwidth
, height
, hoffset
, voffset
und können Sie width
die Position und Größe der neu definierten Ebene mit der Hintergrundregel anpassen.
Wenn Sie die Hintergrundlinie der Kopfzeile vertikal vergrößern möchten, können Sie die Optionen addvoffset
und addheight
in der Ebenendefinition verwenden.
Beispiel für das zweite MWE oben:
\DeclareNewLayer[
background,
oddpage,% not on even pages in two-sided documents
head,
addvoffset=2mm,% moves the layer 2mm down
addheight=4mm,% enlarges the height of the layer by 4mm
hoffset=0pt,
width=\paperwidth,
mode=picture,
contents={\putLL{\tikz{
\fill[shade,left color=blue!0,right color=blue!70]
(0,0)rectangle(\the\layerwidth,\the\layerheight);
}}
}
]{highlights.bg}
Wenn die Hintergrundlinie vom inneren Text bis zum äußeren Papierrand reichen soll, nicht verändern hoffset
und anpassen width
:
\DeclareNewLayer[
background,
oddpage,% not on even pages in two-sided documents
head,
addvoffset=2mm,% moves the layer 2mm down
addheight=4mm,% enlarges the height of the layer by 4mm
%hoffset=0pt,% <- removed
width=\paperwidth-1in-\hoffset-\oddsidemargin,% <- changed
mode=picture,
contents={\putLL{\tikz{
\fill[shade,left color=blue!0,right color=blue!70]
(0,0)rectangle(\the\layerwidth,\the\layerheight);
}}
}
]{highlights.bg}
Beachten Sie, dass Sie eine zweite Ebene benötigen, wenn der Hintergrund in einem doppelseitigen Dokument auch auf geraden Seiten verwendet werden soll.