PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : farbiger Header



Piola-Kirchhoff
21-12-2005, 14:54
Hallo,

beim neuen scrguide.pdf haben die Autoren einen schönen Header
benutzt.

Weiss jemand zufällig wie man so einen gelben Header hinbekommt?

Link:
http://www.tug.org/tex-archive/macros/latex/contrib/koma-script/scrguide.pdf

Danke im Voraus.

cookie170
21-12-2005, 15:02
Die Frage wird diskutiert unter:

http://www.komascript.de/node/244

und eine Bastelanleitung nebst Erklärung soll laut Markus Kohm nächstes Jahr veröffentlicht werden:
"Eine vollständig ausgeführte Lösung mit Erklärung gibt es vermutlich in "Die TeXnische Komödie" Ausgabe 1/2006."

Gruß,
Alexander

rais
21-12-2005, 21:59
Das sah aber kompliziert aus...
Kannst ja mal:


\documentclass[11pt,a4paper,cleardoubleempty]{scrbook}
\usepackage{color}
\usepackage[automark]{scrpage2}
\newpagestyle{Bla}{%
(\textwidth,0.6pt)%
{{\color{cyan}\rule[-2ex]{\textwidth}{5ex}}\hspace{-\textwidth}\ \pagemark\hfill\rightmark\ }%
{{\color{cyan}\rule[-2ex]{\textwidth}{5ex}}\hspace{-\textwidth}\ \leftmark\hfill\pagemark\ }%
{{\color{cyan}\rule[-2ex]{\textwidth}{5ex}}\hspace{-\textwidth}\ \leftmark\hfill\pagemark\ }%
(\textwidth,0.3pt)%
}{%
(0pt,0pt)%
{}{}{}%
(0pt,0pt)%
}
\pagestyle{Bla}
\begin{document}
\tableofcontents
\chapter{Einleitung}
\section{Abschnitt}
Hier kann man nach Belieben Text einbauen -- sollte man sogar, wenn man denn einen Effekt sehen will\dots
\end{document}

um entsprechend viel Text erweitern (bzw. noch \renewcommand*{\chapterpagestyle}{Bla} einfügen) und mal ausprobieren.;)

uups... nu hab ich doch cyan statt yellow genommen:D

MfG,

cookie170
22-12-2005, 17:48
Hallo Rainer,

mir gefällt Deine Lösung sehr gut, ich verstehe sie aber nicht. Offen gesagt, habe ich gerade _überhaupt_keine_Zeit, zu recherchieren, wie der farbige Balken zustande kommt.

Wenn ich im Januar nachfrage, weiß ich nicht, ob Du's noch weißt oder überhaupt liest.

Falls Du also Lust hast, zwei Sätze anzufügen, wäre ich dankbar...

Gruß,
Alexander

rais
22-12-2005, 19:17
Hallo Alexander,
dann lieber jetzt, bevor ich das wirklich nicht mehr weiß:D
Also mit


\newpagestyle{Bla}{%Kopfdefinition:
(Obere Linienlänge,-Breite)%
{Kopf bei geraden Seiten}%
{Kopf bei ungeraden Seiten}%
{Kopf bei einseitigem Layout}%
(Untere Linienlänge,-Stärke)%
}{%Fußdefinition:
(Obere Linienlänge,-Breite)%
{Fuß bei geraden Seiten}%
{Fuß bei ungeraden Seiten}%
{Fuß bei einseitigem Layout}%
(Untere Linienlänge,-Stärke)%
}

hab ich einen neuen Seitenstil "Bla" definiert. Da bei dieser Art der Definition noch keine Dreiteilung in lcr bzw. ico vorhanden ist, konnte ich mit z.B.


{{\color{cyan}\rule[-2ex]{\textwidth}{5ex}}\hspace{-\textwidth}\ \pagemark\hfill\rightmark\ }%

zunächst auf voller Textbreite die gewünschte Farbe setzen (hier einfach mit \rule), dann mit dem \hspace zurück an den Zeilenanfang positionieren, um dann - inzwischen mit normaler Textfarbe (man beachte die Klammerung von { \color...\rule.. }) - die eigentliche Ausgabe von \pagemark links und \rightmark rechts zu machen. Die umschließenden Leerzeichen "\ " hab ich hier nur gesetzt, damit die Texte nicht direkt an den Rand der hier cyan gefärbten Box gesetzt werden.

Der \newpagestyle Befehl ist im scrguide beschrieben (bei der etwas älteren "einfarbigen" Variante ab Seite 133, Abschnitt 4.2.2)

MfG,

cookie170
22-12-2005, 21:41
Ach, Aufheiterung meines Büroabends.

Vielen Dank,
Alexander

Piola-Kirchhoff
03-01-2006, 08:37
Hallo Rainer,

das sieht ja schonmal recht gut aus.
Mich würde zudem aber interessieren, ob es eine Möglichkeit gibt,
die Farben auch auf den linken - und rechten Rand zu erweitern.
Bis jetzt sieht ist es ja irgendwie eine Farbbox in der Mitte des Headers und
die Ränder sind weiss.

Vielleicht hat ja jemand eine Idee :)

rais
03-01-2006, 16:30
Hallo,
das liegt daran, daß ich die Ausgabe der Kopfzeile an die Textbreite angepaßt habe (sprich: da brauchte ich nix weiter für anzupassen).
Wenn ich mir das neue scrguide so ansehe, dann scheinen dort mit dem geometry-Paket neue Randeinstellungen vorgenommen worden zu sein.
Extrem wäre hier also
\usepackage[left=0pt,right=0pt]{geometry},
um die Kopfzeile auf die volle Breite zu bekommen.
Zumindest der Fließtext läßt sich dann mit \leftskip \rightskip wieder zurechtrücken... aber eigentlich halte ich von diesem Ansatz nicht viel.
Hmm, ich werd' mal noch 'n wenig mit den Parametern rumspielen, vielleicht kriegt man das mit der Kopfzeile auch so hin:confused:
MfG,

rais
03-01-2006, 19:10
Da hab' ich mal wieder gebastelt:D


\documentclass[11pt,a5paper,cleardoubleempty]{scrbook}
\usepackage{color}
\usepackage[automark]{scrpage2}
\newlength{\leftoffset}
\newcommand{\defleftoffsetodd}{%
\setlength{\leftoffset}{1in}
\addtolength{\leftoffset}{\hoffset}
\addtolength{\leftoffset}{\oddsidemargin}
\addtolength{\leftoffset}{\marginparsep}
\addtolength{\leftoffset}{\marginparpush}
}
\newcommand{\defleftoffseteven}{%
\setlength{\leftoffset}{1in}
\addtolength{\leftoffset}{\hoffset}
\addtolength{\leftoffset}{\evensidemargin}
\addtolength{\leftoffset}{\marginparsep}
\addtolength{\leftoffset}{\marginparpush}
}
\newpagestyle{Bla}{%
(\textwidth,0.6pt)%
{\defleftoffseteven{\color{cyan}\hspace*{-\leftoffset}\rule[-2ex]{\paperwidth}{5ex}}\hspace*{-\paperwidth}\hspace*{\leftoffset}\hspace*{-1.5EM}\pagemark\hfill\rightmark\ }%
{\defleftoffsetodd{\color{cyan}\hspace*{-\leftoffset}\rule[-2ex]{\paperwidth}{5ex}}\hspace*{-\paperwidth}\hspace*{\leftoffset}\hspace*{-1.5EM}\leftmark\hfill\pagemark\ }%
{\defleftoffsetodd{\color{cyan}\hspace*{-\leftoffset}\rule[-2ex]{\paperwidth}{5ex}}\hspace*{-\paperwidth}\hspace*{\leftoffset}\hspace*{-1.5EM}\leftmark\hfill\pagemark\ }%
(\textwidth,0.3pt)%
}{%
(0pt,0pt)%
{}{}{}%
(0pt,0pt)%
}
\pagestyle{Bla}
\begin{document}
\tableofcontents
\chapter{Einleitung}
\section{Abschnitt}
Hier kann man nach Belieben Text einbauen -- sollte man sogar, wenn man denn einen Effekt sehen will\dots
\end{document}

Da der normale Abstand des Textkörpers (und der Kopf liegt ja normalerweise direkt darüber, den \headsep mal außer Acht gelassen) von der linken Seite davon abhängig ist, ob's eine gerade oder ungerade Seite ist (jedenfalls beim zweiseitigem Layout), hab ich hier der Einfachheit halber zwei Makros definiert: \defleftoffseteven und -odd, da die Unterscheidung gerade/ungerade ja durch den \newpagestyle bereits gemacht wird.
Jedenfalls positioniere ich so erstmal ganz nach links, um dann den farbigen Balken mit voller Seitenbreite auszugeben.
Anschließend positioniere ich wieder zurück (-\paperwidth), addiere noch den \leftoffset und mußte feststellen, daß dann die Ausgabe zu weit rechts erfolgt...:confused: - jedenfalls war das der Grund für den zusätzlichen \hspace*{-1.5EM}.

Die Linien ober- und unterhalb der Kopfzeile wirken nun eher störend und sollten entfallen, die hatte ich nur für die leichtere Positionsbestimmung der eigentlichen Textelemente im Kopf dringelassen.

Getestet hab ich das Ganze mit a4paper und a5paper, wobei letzteres mit meinem dvi-Betrachter nicht richtig dargestellt wird - aber Einschränkungen in Sachen DVI sind ja bekannt;)
MfG,

irq
03-01-2006, 21:48
Hallo,

ich habe den obigen Code einfach kopiert und die Datei unter TeXnicCenter kompiliert. Ich sehe aber keinen farbigen Header. Soll man noch was hinzufügen?

Danke.

rais
03-01-2006, 23:23
Hallo,
suche mal nach


Hier kann man nach Belieben Text einbauen -- sollte man sogar, wenn man denn einen Effekt sehen will\dots

und tu genau das.;)
Oder Du nimmst die cleardoubleempty-Option raus, dann solltest Du einen farbigen Header bereits auf Seite 2 sehen können.
MfG,

Piola-Kirchhoff
04-01-2006, 08:03
Hallo Rainer,

wenn du es jetzt noch schaffen würdest die beiden Headerlinien auch
auf Seitenbreite zu verlängern wäre ich begeistert. :)

Ein Layout das ich mir vorstelle würde ungefähr so aussehen:

Auf der Bindungsseite des Buches, also auf der linken Seite von ungeraden
Seiten und auf der rechten Seite von geraden Seiten müsste
der "weisse" Rand bestehen bleiben.
Auf der Seite jeweils anderen Seite sollte der farbige Header bis zum Seitenrand gehen.
Die beiden Headerlinien sollten die selben Längen haben wie der farbige
Header.

Wenn du das mit den Headerlinien (s.o.) hinbekommen würdest,
wäre ich aber schon recht dankbar. :)

cookie170
04-01-2006, 13:41
Hallo Rainer,

wenn du es jetzt noch schaffen würdest die beiden Headerlinien auch
auf Seitenbreite zu verlängern wäre ich begeistert. :)



(Ich heiße zwar nicht Rainer, gebe aber trotzdem meinen Senf dazu...)

In der Komascript-Anleitung - in der von Dir eingangs zitierten auf S. 136 wird der Befehl

\setheadwidth[0pt]{textwithmarginpar}

erklärt, etwas später - auf S. 139 ff. - noch ein paar nützliche Optionen, die Dir vielleicht weiterhelfen.

Gruß,
Alexander

Piola-Kirchhoff
06-01-2006, 13:26
Also ich bekomme das einfach nicht gebacken.
Wenn ich die Linie ändere, ändert sich auch die Farbbox.

Vielleicht bekommt Rainer das noch irgendwie hin. :)
Ich verlasse mich mal auf ihn. :)

rais
06-01-2006, 19:50
Hallo,
um mal bei "textwithmarginpar" zu bleiben (auch wenn's dann nicht ganz an den äußeren Rand geht):


\documentclass[11pt,a4paper,cleardoubleempty,BCOR10mm]{scrbook}
\usepackage{color}
\usepackage[automark,olines]{scrpage2}
\pagestyle{scrheadings}
\newlength{\mymarginskip}
\makeatletter
\newcommand{\myheadlength}{\@headwidth}
\makeatother
\setlength{\mymarginskip}{\marginparwidth}
\addtolength{\mymarginskip}{\marginparsep}
\addtolength{\mymarginskip}{\marginparpush}
\setheadwidth[0pt]{textwithmarginpar}
\setheadtopline{0.6pt}
\setheadsepline{0.3pt}
\lehead{{\color{cyan}\rule[-2ex]{\myheadlength}{5ex}}\hspace*{-\myheadlength}\hspace*{\mymarginskip}\leftmark}
\lohead{{\color{cyan}\rule[-2ex]{\myheadlength}{5ex}}\hspace*{-\myheadlength}\ \pagemark}
\rehead{\pagemark\ }
\rohead{\rightmark\hspace*{\mymarginskip}}
\begin{document}
\tableofcontents
\chapter{Einleitung}
\section{Abschnitt}
Hier kann man nach Belieben Text einbauen -- sollte man sogar, wenn man denn einen Effekt sehen will\dots
\end{document}

Nu kannst Du mal mit dem eingefärbten Parameter spielen:D
(der \mymarginskip muß dann ggf. angepaßt werden - oder einfach erstmal ganz rausnehmen bzw. auf 0 setzen)
Jedenfalls bleibt die Farbox jetzt so breit wie der Kopf;)

MfG,

Piola-Kirchhoff
09-01-2006, 07:51
Hallo Rainer,

erst einmal vielen Dank für deine erneute Hilfe.


Ein Layout das ich mir vorstelle würde ungefähr so aussehen:

Auf der Bindungsseite des Buches, also auf der linken Seite von ungeraden
Seiten und auf der rechten Seite von geraden Seiten müsste
der "weisse" Rand bestehen bleiben.
Auf der Seite jeweils anderen Seite sollte der farbige Header bis zum Seitenrand gehen.
Die beiden Headerlinien sollten die selben Längen haben wie der farbige
Header.

Wenn du das mit den Headerlinien (s.o.) hinbekommen würdest,
wäre ich aber schon recht dankbar. :)

Das bekomme ich nun schon hin und bin geradezu begeistert :) :) :)

Wie man einfach den Header über die ganze Seitenbreite gehen lassen kann
ist mir indes nicht ganz klar.
Das sei aber nur mal am Rande erwähnt :)

Ein grösseres Problem habe ich allerdings noch.
Wenn ich mit \setfootsepline{0.4pt} eine Fusslinie einsetze hätte ich gerne, dass die Fusslinie aussieht wie die Linien des Headers (\setheadtopline{0.4pt} bzw. \setheadsepline{0.4pt}), welche ja beide dem farbigen Header
angepasst sind.
Die beiden Headerlinien sind so toll verschoben und die Fusslinie ist leider
zentriert. :(

Piola-Kirchhoff
09-01-2006, 08:48
Ach eigentlich sieht das Layout jetzt doch super aus! :)

rais
09-01-2006, 12:51
Mahlzeit,

Ein grösseres Problem habe ich allerdings noch.
Wenn ich mit \setfootsepline{0.4pt} eine Fusslinie einsetze hätte ich gerne, dass die Fusslinie aussieht wie die Linien des Headers (\setheadtopline{0.4pt} bzw. \setheadsepline{0.4pt}), welche ja beide dem farbigen Header
angepasst sind.
Die beiden Headerlinien sind so toll verschoben und die Fusslinie ist leider
zentriert. :(
Dafür gibt's eigentlich

\setfootwidth[]{} der analog zu \setheadwidth funzt - in diesem Fall hieße also

\setfootwidth[0pt]{head} soviel wie "mach den Fuß genau so breit wie den Kopf".;)
MfG,

Piola-Kirchhoff
09-01-2006, 13:36
Die Linie ist jetzt wirklich verschoben, allerdings ist nun die
Seitenzahl im Fuss verschwunden.... :(

Ist mir jetzt aber auch egal, da mir ja das andere Layout super gefällt! :)