PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Logo im Header



subaia
29-10-2012, 16:23
Hallo,

ich möchte ein Logo im oder neben dem Header in einem zweiseitigen Dokument einfügen. Das Logo soll nicht mittig zur Linie im Header ausgerichtet sein, sondern etwas höher eingefügt werden. Ein Layout Entwurf habe ich angehängt. Hat jemand eine Idee wie es gehen könnte? Im Moment sieht mein Code so aus:

\documentclass[
12pt,
a4paper,
twoside,
headinclude,
headsepline,
BCOR12mm,
DIV12,
openright,
bibliography=totoc,
listof=totoc,
numbers=noenddot,
fleqn,
]{scrbook}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman, english]{babel}
\usepackage{lipsum}

\usepackage{xcolor}
\definecolor{grey} {RGB} {132,130,132}

\usepackage{scrpage2}

\setkomafont{pageheadfoot}{\color{grey}{\normalfon t\sffamily}}
\setkomafont{pagenumber}{\color{grey}{\normalfont\ sffamily}}
\setheadsepline{1pt}[\color{grey}]

\clearscrheadfoot
\pagestyle{scrheadings}
\rehead[ ]{Document title}
\lohead[ ]{Document title}
\lehead[ ]{\headmark}
\rohead[ ]{\headmark}
\refoot[\pagemark]{\pagemark}
\lofoot[\pagemark]{\pagemark}

\begin{document}

\section{section title}

\lipsum[1-9]

\end{document}

defcon
29-10-2012, 17:14
Entweder machst Du dein Logo kleiner, oder die Kopfzeile größer, da Du im anderen Fall über deine Dokumentenränder schreibst. (evtl. nicht druckbar)

Ansonsten könntest Du das Logo natürlich in den Header selbst schreiben, was Du - nehme ich mal an - nicht willst.

bobmalaria
29-10-2012, 18:47
hi,

da wird dir wohl nichts anderes uebrig bleiben als deinen eigenen seitenstil zu erstellen.
da musst du dann die breite des bilds berechnen damit du die trennlinie in der richtigen laenge zeichnen kannst.

eventuell kann man sowas ganz schick mit tikz machen, aber es geht auch sicher mit ein bisschen nativem latex gehacke.

in einem eigenen seitenstil sollte es dann kein problem sein die elemente zueinander richtig zu positionieren.

gruss

hakaze
29-10-2012, 20:48
Schau mal in der Anleitung für KOMA-Script (scrguide.pdf) nach der Option headlines! In deinem Fall ist das sicher ein Wert von 3 oder höher sinnvoll, um die Höhe der Kopfzeile an dein Logo anzupassen.

klops
30-10-2012, 09:22
Möglicherweise suchst Du auch die Anweisung \raisebox oder das Paket adjustbox (http://www.ctan.org/pkg/adjustbox).

BTW: Du solltest Code hier im Forum immer auch als Code markiern (http://www.mrunix.de/forums/misc.php?do=bbcode). Ein einfachsten geht das mit Hilfe des #-Knopfes in der Toolbar über dem Eingabefeld.

bobmalaria
30-10-2012, 10:59
hi,

hier mal wieder eine loesung nach dem motto: warum einfach wenn es auch kompliziert geht :)

grundsaetzlich hat man zwei moeglichkeiten. man benutzt alle normalen befehle fuer die kopfzeile und fuegt dann das logo hinzu. das ergibt allerdings das problem, dass die trennline dann immer ueber die ganze kopfbreite geht. das sieht dann wohl nicht so gut aus.

dehalb war meine idee die kontrolle ueber die kopfzeile komplett zu uebernehmen. dazu habe ich erstmal die kopfhoehe etwas vergroessert um mehr platz fuer das logo zu haben. dann habe ich begonnen einen eigenen seitenstil zu definieren. die theorie dazu steht in der koma-skript anleitung. begonnen hab ich mit einem tikz-bild in das ich erstmal an jede ecke des kopfes einen knoten (=node) gesetzt habe. das erlaubt mir elemente relativ zu diesen punkten zu platzieren.

da bild wird also in die untere linke ecke (lowerL) gesetzt. da tikz normal immer das zentrum des objektes als ankerpunkt setzt, habe ich das fuer das logo in anchor=south west geaendert. jetzt ist die linke untere ecke des logos deckungsgleich mit der ecke unten links im header.

als naechstes habe ich mich um die schwarze trennlinie gekuemmert. dazu habe ich einen knoten an der linken/rechten unteren ecke des logos gesetzt, diesen aber mit yshift und xshift so verschoben das er etwas nach oben und etwas nach rechts/links wandert. somit habe ich einen startpunkt fuer die linie bei ca 1/3 hoehe des logos + etwas abstand zum logo.
im anschluss musste ich nur noch einen zweiten punkt fuer die linie definieren. dazu habe ich die untere linke/rechte ecke des headers genommen (lowerR/L) und den neuen knoten um den gleichen yshift-wert nach oben verschoben wie zuvor den anderen linienknoten. dann musste ich die beiden punkte nur noch mit einem \draw kommando verbinden.

die textelemente habe ich dann jeweils relativ zu den endpunkten der trennline positioniert.

das ganze muss man einmal fuer ungerade und gerade seiten machen. der code aendert sich dann natuerlich leicht weil das logo immer aussen sein soll und somit praktisch trennline und logo ihren platz tauschen muessen.

der seitenstil hat uebrigenes keinen einfluss auf kapitel-startseiten, denn da wird weierhin der vordefinierte plain-seitenstil verwendet. den koennte man jetzt in aehnlicher weise neu definieren, allerdings sollte man auf kapitelstartseiten auf eine header-zeile verzichten. das zeigt dem leser das da jetzt gleich was neues kommt...



\documentclass[
12pt,
headinclude,
BCOR12mm,
DIV12,
openright,
bibliography=totoc,
listof=totoc,
numbers=noenddot,
fleqn,
]{scrbook}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman, english]{babel}
\usepackage{lipsum}

\usepackage{xcolor}
\definecolor{grey} {RGB} {132,130,132}

\usepackage[automark]{scrpage2}

\usepackage{tikz}
\usetikzlibrary{positioning}

\setkomafont{pageheadfoot}{\color{grey}{\normalfon t\sffamily}}
\setkomafont{pagenumber}{\color{grey}{\normalfont\ sffamily}}

\addtolength{\headheight}{1\baselineskip}
\clearscrheadfoot

%Logo definieren durch \includegraphics erzetzen
\def\logo{\color{red}\rule{60pt}{1\headheight}}
%Dokumententitel definieren
\def\doctitle{Dokumententitel}

\defpagestyle{meiner}{%Kopf
{%Gerade Seite
\begin{tikzpicture}[inner sep=0]
%Ein Punkt in allen 4 Ecken des Headers
\node[] (lowerL) at (0,0) {};
\node (upperL) at (0,\headheight) {};
\node (upperR) at (\textwidth,\headheight) {};
\node (lowerR) at (\textwidth,0) {};
%Zum testen, ein Rahmen um den Header
%\draw (lowerL) -- (upperL) -- (upperR) -- (lowerR) -- (lowerL);
%Einfuegen des Logos
\node[anchor=south east] (logo) at (lowerR) {\logo};
%Position der Trennlinie bestimmen
%yshift anpassen fuer andere linienhoehe
\node[yshift=10pt,xshift=-5pt] (lineL) at (logo.south west) {};
\node[yshift=10pt] (lineR) at (lowerL) {};
\draw[line width=1pt,black] (lineL) -- (lineR);
%Dokumententitel und heading positionieren
\node[,anchor=south west,yshift=2pt] (title) at (lineR)
{\doctitle};
\node[anchor=south east,yshift=2pt] (title) at (lineL)
{\rightmark};
\end{tikzpicture}
}
{%Ungerade seite
\begin{tikzpicture}[inner sep=0]
%Ein Punkt in allen 4 Ecken des Headers
\node (lowerL) at (0,0) {};
\node (upperL) at (0,\headheight) {};
\node (upperR) at (\textwidth,\headheight) {};
\node (lowerR) at (\textwidth,0) {};
%Zum testen, ein Rahmen um den Header
%\draw (lowerL) -- (upperL) -- (upperR) -- (lowerR) -- (lowerL);
%Einfuegen des Logos
\node[anchor=south west] (logo) at (lowerL) {\logo};
%Position der Trennlinie bestimmen
%yshift anpassen fuer andere linienhoehe
\node[yshift=10pt,xshift=5pt] (lineL) at (logo.south east) {};
\node[yshift=10pt] (lineR) at (lowerR) {};
\draw[line width=1pt] (lineL) -- (lineR);
%Dokumententitel und heading positionieren
\node[anchor=south west,yshift=2pt] (title) at (lineL)
{\doctitle};
\node[anchor=south east,yshift=2pt] (title) at (lineR)
{\rightmark};
\end{tikzpicture}
}
{}%Einseitig
}{%Fuss
{\pagemark\hfill}
{\hfill\pagemark}
{}
}

\pagestyle{meiner}

\begin{document}

\chapter{Test}
\lipsum[1]
\section{section title}
\lipsum[1-9]
\end{document}

http://www.mrunix.de/forums/attachment.php?attachmentid=5445&stc=1&d=1351591167

subaia
31-10-2012, 12:15
Hallo,

danke für die Lösung, das war genau das, was ich gesucht habe! :) Bei der Einarbeitung in mein Dokument ist mir aber noch eine Sache aufgefallen, bei der Ihr mir hoffentlich nochmal helfen könnt. Haben die Buchstaben im Section Title eine Unterlänge (wie bei q,y,p...), wandert der Titel nach oben. Alle anderen Section und Document Title bleiben aber unten. Das Problem ist im angehängten Layout ersichtlich. Kann man einfach die Linie nach unten verschieben? Hat irgendjemand noch eine Idee, wie man das am Besten angeht?

Wie kann man die Seitenzahl zur anderen Seite verschieben (dort wo auch das Logo ist)?

Hier nochmal der Code mit meinen kleinen Anpassungen:


\documentclass[
12pt,
headinclude,
BCOR12mm,
DIV12,
openright,
bibliography=totoc,
listof=totoc,
numbers=noenddot,
fleqn,
]{scrbook}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman, english]{babel}
\usepackage{lipsum}
\usepackage{mwe}

\usepackage{xcolor}
\definecolor{grey} {RGB} {132,130,132}

\usepackage[automark]{scrpage2}

\usepackage{tikz}
\usetikzlibrary{positioning}

\setkomafont{pageheadfoot}{\color{grey}{\normalfon t\sffamily}}
\setkomafont{pagenumber}{\color{grey}{\normalfont\ sffamily}}

\addtolength{\headheight}{1\baselineskip}
\clearscrheadfoot

\def\logo{\includegraphics[width=2cm]{example-image-A.jpg}}
%Dokumententitel definieren
\def\doctitle{Dokumententitel}

\defpagestyle{meiner}{%Kopf
{%Gerade Seite
\begin{tikzpicture}[inner sep=0]
%Ein Punkt in allen 4 Ecken des Headers
\node[] (lowerL) at (0,0) {};
\node (upperL) at (0,\headheight) {};
\node (upperR) at (\textwidth,\headheight) {};
\node (lowerR) at (\textwidth,0) {};
%Zum testen, ein Rahmen um den Header
%\draw (lowerL) -- (upperL) -- (upperR) -- (lowerR) -- (lowerL);
%Einfuegen des Logos
\node[anchor=south east] (logo) at (lowerR) {\logo};
%Position der Trennlinie bestimmen
%yshift anpassen fuer andere linienhoehe
\node[yshift=15pt,xshift=-4pt] (lineL) at (logo.south west) {};
\node[yshift=15pt] (lineR) at (lowerL) {};
\draw[line width=0.5pt,grey] (lineL) -- (lineR);
%Dokumententitel und heading positionieren
\node[,anchor=south west,yshift=2pt] (title) at (lineR)
{\rightmark};
\node[anchor=south east,yshift=2pt] (title) at (lineL)
{\doctitle};
\end{tikzpicture}
}
{%Ungerade seite
\begin{tikzpicture}[inner sep=0]
%Ein Punkt in allen 4 Ecken des Headers
\node (lowerL) at (0,0) {};
\node (upperL) at (0,\headheight) {};
\node (upperR) at (\textwidth,\headheight) {};
\node (lowerR) at (\textwidth,0) {};
%Zum testen, ein Rahmen um den Header
%\draw (lowerL) -- (upperL) -- (upperR) -- (lowerR) -- (lowerL);
%Einfuegen des Logos
\node[anchor=south west] (logo) at (lowerL) {\logo};
%Position der Trennlinie bestimmen
%yshift anpassen fuer andere linienhoehe
\node[yshift=15pt,xshift=4pt] (lineL) at (logo.south east) {};
\node[yshift=15pt] (lineR) at (lowerR) {};
\draw[line width=1pt,grey] (lineL) -- (lineR);
%Dokumententitel und heading positionieren
\node[anchor=south west,yshift=2pt] (title) at (lineL)
{\doctitle};
\node[anchor=south east,yshift=2pt] (title) at (lineR)
{\rightmark};
\end{tikzpicture}
}
{}%Einseitig
}{%Fuss
{\pagemark\hfill}
{\hfill\pagemark}
{}
}

\pagestyle{meiner}

\begin{document}

\chapter{Test}
\lipsum[1-9]
\lipsum[1]
\section{section title}
\lipsum[1]
\lipsum[1-5]
\section{example}
\lipsum[1]
\end{document}

bobmalaria
31-10-2012, 13:26
hi,

die unterlaengen habe ich total vergessen. ich habe jetzt den ankerpunkt vom eckpunkt auf den basislinienpunkt verlegt und den abstand von text zu linie leicht vergroessert.

so erscheint der text immer an der selben stelle und in der selben hoehe, ob unterlaengen vorkommen oder nicht.

die linie wuerde ich nicht verschieben, denn das ergibt ein unruhiges seitenbild wenn die linie hoch und runter springt. das gleiche gilt fuer den text, er soll immer an der gleichen stelle auftauchen.
du willst ja einen header und ken daumenkino mit animation :)


\documentclass[
12pt,
headinclude,
BCOR12mm,
DIV12,
openright,
bibliography=totoc,
listof=totoc,
numbers=noenddot,
fleqn,
]{scrbook}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman, english]{babel}
\usepackage{lipsum}
\usepackage{mwe}

\usepackage{xcolor}
\definecolor{grey} {RGB} {132,130,132}

\usepackage[automark]{scrpage2}

\usepackage{tikz}
\usetikzlibrary{positioning}

\setkomafont{pageheadfoot}{\color{grey}{\normalfon t\sffamily}}
\setkomafont{pagenumber}{\color{grey}{\normalfont\ sffamily}}

\addtolength{\headheight}{1\baselineskip}
\clearscrheadfoot

\def\logo{\rule{2cm}{1.8cm}}
%Dokumententitel definieren
\def\doctitle{Dokumententitel}

\defpagestyle{meiner}{%Kopf
{%Gerade Seite
\begin{tikzpicture}[inner sep=0]
%Ein Punkt in allen 4 Ecken des Headers
\node[] (lowerL) at (0,0) {};
\node (upperL) at (0,\headheight) {};
\node (upperR) at (\textwidth,\headheight) {};
\node (lowerR) at (\textwidth,0) {};
%Zum testen, ein Rahmen um den Header
%\draw (lowerL) -- (upperL) -- (upperR) -- (lowerR) -- (lowerL);
%Einfuegen des Logos
\node[anchor=south east] (logo) at (lowerR) {\logo};
%Position der Trennlinie bestimmen
%yshift anpassen fuer andere linienhoehe
\node[yshift=15pt,xshift=-4pt] (lineL) at (logo.south west) {};
\node[yshift=15pt] (lineR) at (lowerL) {};
\draw[line width=0.5pt,grey] (lineL) -- (lineR);
%Dokumententitel und heading positionieren
\node[,anchor=base west,yshift=4pt] (title) at (lineR)
{\rightmark};
\node[anchor=base east,yshift=4pt] (title) at (lineL)
{\doctitle};
\end{tikzpicture}
}
{%Ungerade seite
\begin{tikzpicture}[inner sep=0]
%Ein Punkt in allen 4 Ecken des Headers
\node (lowerL) at (0,0) {};
\node (upperL) at (0,\headheight) {};
\node (upperR) at (\textwidth,\headheight) {};
\node (lowerR) at (\textwidth,0) {};
%Zum testen, ein Rahmen um den Header
%\draw (lowerL) -- (upperL) -- (upperR) -- (lowerR) -- (lowerL);
%Einfuegen des Logos
\node[anchor=south west] (logo) at (lowerL) {\logo};
%Position der Trennlinie bestimmen
%yshift anpassen fuer andere linienhoehe
\node[yshift=15pt,xshift=4pt] (lineL) at (logo.south east) {};
\node[yshift=15pt] (lineR) at (lowerR) {};
\draw[line width=1pt,grey] (lineL) -- (lineR);
%Dokumententitel und heading positionieren
\node[anchor=base west,yshift=4pt] (title) at (lineL)
{\doctitle};
\node[anchor=base east,yshift=4pt] (title) at (lineR)
{\rightmark};
\end{tikzpicture}
}
{}%Einseitig
}{%Fuss
{\pagemark\hfill}
{\hfill\pagemark}
{}
}

\pagestyle{meiner}

\begin{document}

\chapter{Test}
\lipsum[1]
\section{section title}
\lipsum[1-3]
\section{example yy ppp}
\lipsum[1-5]
\end{document}

die seitenzahl solltest du ganz leicht aendern koennen indem du diese beiden befehle einfach vertauschst

{\pagemark\hfill}%nach unten
{\hfill\pagemark}%nach oben

auf der kapitel startseite musst du dies noch anpassen, bzw den plain-seitenstil anpassen.

gruss

subaia
31-10-2012, 15:45
Hi,

jetzt ist es perfekt. Herzlichen Dank für Deine Hilfe!!!

Gruß zurück