PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Textmarkenbefehle in Kolumnentitel



misterjan
22-07-2009, 17:30
Hallo,
ich habe ein Problem mit Textmarkenbefehlen in Kolumnentiteln. Ich benutze die Dokumentenklasse scrbook in einseitigem Druck. Zur Definition des Kolumnentitles nutze ich das Paket fancyhdr. Im Kolumnentitle soll oben links der Name des Chapters und rechts der Name der Section dargestellt werden. Dies funktioniert auch alles total super. Ein Problem ich habe ich nur in meinem Literaturverzeichnis Chapter. Dort möchte ich im Kolumnentitel nur oben links "Literaturverzeichnis" stehen haben; oben rechts soll nichts stehen. Bisher war mein Literaturverzeichnis zwei Seiten lang und ich konnte durch den Befehl \markright{}, also das leere Überschreiben der rechten Marke, den eben beschriebenen Effekt erzielen. Jetzt hat sich allerdings mein Literaturverzeichnis weiter gefüllt und umfasst jetzt drei Seiten. Und jetzt stellt sich die Situation wie folgt dar: Auf der ersten Seite des Literaturverzeichnisses gibt es ja eh noch keinen Kolumnentitel, auf der zweiten Seite steht sowohl links als auch rechts im Kolumnentitel "Literaturverzeichnis". Nur auf der dritten, letzten Seite steht, wie gewünscht, nur links "Literaturverzeichnis". Folgenden Quellcode verwende ich, um das eben beschriebene zu erreichen:



...
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand\chaptermark[1]{\markboth{\thechapter\ #1}{}}
\renewcommand\sectionmark[1]{\markright{\thesection\ #1}{}}
\fancyhf{}
\setlength\headheight{14pt}
\fancyhead[R]{\rightmark}
\fancyhead[L]{\leftmark}
\fancyfoot[C]{\thepage}

\begin{document}
...
%Literaturverzeichnis
\bibliographystyle{alpha}
\nocite{*}
\bibliography{Literatur}
\markright{}
\end{document}


Hat jemand eine Idee, wie ich erreichen kann, dass auf allen Seiten des Literaturverzeichnisses im Kolumnentitel nur oben links "Literaturverzeichnis" steht? Über Hinweise und Tipps freue ich mich sehr!

u_fischer
22-07-2009, 17:41
Vergiss das mit dem \markright. Versuch das hier.



\makeatletter
\renewcommand*\bib@heading{%
\chapter*{\bibname}%
\@mkboth{\bibname}{}}%
\makeatother

misterjan
22-07-2009, 20:09
Vielen Dank für die Lösung! Es macht genau das, was ich will, auch wenn ich die Definition selber noch nicht bis ins Detail verstehe ;-)

u_fischer
23-07-2009, 09:00
Das ist nichts spezielles dran. Die Originaldefinition lautet



\renewcommand*\bib@heading{%
\chapter*{\bibname}%
\@mkboth{\bibname}{\bibname}}%

(\@mkboth ist die interne Variante von \markboth. \bib@heading ist die Überschrift der Bibliographie.)

Ich habe also nur aus dem rechten Argument von \@mkboth das \bibname rausgenommen.

misterjan
23-07-2009, 15:46
Danke dir für die Erklärung.

Leider hat der Code, der dafür sorgt, dass jetzt im Kolumnentitel alles richtig dargestellt wird einen unguten Nebeneffekt: Jetzt taucht das Literaturverzeichnis nicht mehr im Inhaltsverzeichnis auf.
Hat jemand Tipps, um dies zu beheben?

u_fischer
23-07-2009, 16:04
Naja, das kommt davon, wenn man nur Schnipsel sendet. Dann kann auch niemand wissen, dass du bibliography=totoc benützt.

In diesem Fall ist die Originaldefinition


\addchap{\bibname}\@mkboth{\bibname}{\bibname}

Die Anpassung schaffst du wohl selbst.

misterjan
23-07-2009, 17:08
Ehrlich gesagt, habe ich die Anpassung nicht hinbekommen. Ich konnte mir stattdessen mit folgendem Code helfen:


\addcontentsline{toc}{chapter}{Literaturverzeichni s}

Und ich hatte nur Codeschnipsel gepostet, weil der gesamte Code recht lang ist.

misterjan
26-07-2009, 19:02
Hallo,
wie mir eben erst aufgefallen ist, liefert meine Idee bzgl. des Eintrags in das Inhaltsverzeichnis doch kein so gutes Ergebnis. Mein Literaturverzeichnis startet auf Seite 29 und im Inhaltsverzeichnis ist angegeben, dass das Literaturverzeichnis auf Seite 31 beginnt.
Könntest du mir vielleicht sagen, wie ich die Originaldefinition

\addchap{\bibname}\@mkboth{\bibname}{\bibname}
für meine Zwecke anpasse?

u_fischer
27-07-2009, 08:40
Urprünglich war ich davon ausgegangen, dass die Originaldefinition so lautet


\newcommand*\bib@heading{%
\chapter*{\bibname}%
\@mkboth{\bibname}{\bibname}}%

Dies habe ich so geändert:


\makeatletter
\renewcommand*\bib@heading{%
\chapter*{\bibname}%
\@mkboth{\bibname}{}}%
\makeatother

Insgesamt wurde 4 Dinge geändert oder hinzugefügt.

Mit der Option bibliography=totoc lautet die Originaldefinition nun


\newcommand*\bib@heading{%
\addchap{\bibname}%
\@mkboth{\bibname}{\bibname}}%

Es kann ja wohl nicht so schwer sein, rauszufinden, was du tun musst.

misterjan
27-07-2009, 15:01
Es ist leider doch für mich schwierig herauszufinden, was ich tun muss, da ich solche Definitionen noch nie benutzt habe. Mit der von dir eben geposteten Definition bekomme ich leider nur Fehler.

Ich benutzt übrigens die Attributzuweisungen toc=listof und toc=bib der scrbook Klasse.

Mein Quelltext sieht wie folgt aus:



\documentclass[a4paper, 11pt, oneside, titlepage, BCOR12mm, toc=listof, toc=bib]{scrbook}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{xspace}
\usepackage{xcolor}
\usepackage{bibgerm}
\usepackage{setspace}
\usepackage{pxfonts}

\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{shadows}

\usepackage{listings}
\renewcommand{\lstlistingname}{Quelltext}
\renewcommand{\lstlistlistingname}{Quelltextverzei chnis}
\definecolor{Gray}{gray}{0.70}
\lstset{basicstyle=\footnotesize \ttfamily,
frame=shadowbox,
frameround=tftt,
rulesepcolor=\color{Gray},
captionpos=b,
aboveskip=0.5cm,
xrightmargin=.065\textwidth,
xleftmargin=.065\textwidth,
breaklines=true}

%Kolumnentitel erstellen
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand\chaptermark[1]{\markboth{\thechapter\ #1}{}}
\renewcommand\sectionmark[1]{\markright{\thesection\ #1}{}}
\fancyhf{}
\setlength\headheight{14pt}
\fancyhead[R]{\rightmark}
\fancyhead[L]{\leftmark}
\fancyfoot[C]{\thepage}

\makeatletter
\renewcommand*\bib@heading{%
\chapter*{\bibname}%
\@mkboth{\bibname}{}}%
\makeatother


%Schriftart der Überschriften festlegen
\setkomafont{chapter}{\normalfont\huge\bfseries}
\setkomafont{section}{\normalfont\Large\bfseries}
\setkomafont{subsection}{\large\normalfont\bfserie s}
\setkomafont{subsubsection}{\normalfont\bfseries}
\setkomafont{chapterentry}{\normalfont\bfseries}
\setkomafont{chapterentrypagenumber}{\normalfont\b fseries}
\setkomafont{descriptionlabel}{\normalfont\bfserie s}
\setkomafont{pagenumber}{\normalfont}

\newcommand{\autor}{Name}
\newcommand{\titel}{Titel}
\newcommand{\typ}{Arbeit}
\newcommand{\email}{E-Mail}
\newcommand{\matnr}{Matr-Nr}
\newcommand{\datum}{\today}
\newcommand{\stadt}{Stadt}
\newcommand{\betreuer}{Name}
\newcommand{\firstgutachter}{Name}
\newcommand{\secondgutachter}{Name}

\usepackage{comment}

\usepackage[
pdfauthor={\autor},
pdftitle={\titel},
pdfsubject={\typ},
pdfcreator={pdflatex},
colorlinks=false,
linkcolor={black},
citebordercolor={white},
linkbordercolor={white},
urlbordercolor={white}
]{hyperref}

\begin{document}
\begin{spacing}{1.1}
\frontmatter
\begin{titlepage}
\begin{center}
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{Bilder/uni-logo.png}
\end{figure}

\vspace{2cm}

\Large
\typ

\vspace{0.3cm}

\Huge
\textbf{\titel}

\vspace{2cm}

\Large
\autor \\
Matrikelnummer: \matnr \\
E-Mail: \href{mailto:\email}{\email}

\vspace{1cm}

\stadt, den \datum

\vspace{3cm}

\Large

\begin{tabular}{ll}
Betreuer: & \betreuer \\
Gutachter: & \firstgutachter \\
& \secondgutachter
\end{tabular}

\normalsize

\end{center}
\end{titlepage}

\include{Kapitel/Erklaerung}

%Inhaltsverzeichnis
\tableofcontents

\mainmatter

%Einbinden der Kapitel
\include{Kapitel/Einleitung}
\include{Kapitel/Grundlagen}
\include{Kapitel/Sprachentwurf}
\include{Kapitel/Implementierung}
\include{Kapitel/Evaluation}
\include{Kapitel/Resuemee}

%Abbildungsverzeichnis
\listoffigures

%Quelltextverzeichnis
\lstlistoflistings

%Literaturverzeichnis
\bibliographystyle{alpha}
\nocite{*}
\bibliography{Literatur}
\addcontentsline{toc}{chapter}{Literaturverzeichni s}

\end{spacing}
\end{document}


So wie es ich jetzt mit dem Befehl

\addcontentsline{toc}{chapter}{Literaturverzeichni s}
darstellt, wird das Literaturverzeichnis zwar im Inhaltsverzeichnis angegeben, allerdings mit einer falschen Seitenzahl.

Ich wäre sehr dankbar, wenn du mir noch mal helfen könntest.


Noch eine weitere Frage: Mein Inhaltsverzeichnis ist gerade angewachsen und geht jetzt über zwei Seiten. Auf der zweiten Seite wird im Kolumnentitel jetzt "Inhaltsverzeichnis" doppelt dargestellt, so wie vorher bei dem Literaturverzeichnis. Wie kann ich denn dafür sorgen, dass im Kolumnentitel nur links "Inhaltsverzeichnis" steht?

u_fischer
27-07-2009, 15:48
Du sollst hier nicht komplizierten Code schreiben, sondern eine zweizeilige Definition von \bib@heading für deine Zwecke anpassen. Füge das folgende ein (lösche die andere \renewcommand für \bib@heading), kompiliere dein Dokument und dann finde raus, wie du die drei Argumente (mit Blubber, Blabber und Blobber) anpassen musst.



\makeatletter
\renewcommand*\bib@heading{%
\addchap{Blubber \bibname}%
\@mkboth{Blabber \bibname}{Blobber \bibname}}
\makeatother%

misterjan
27-07-2009, 16:07
Vielen Dank, jetzt habe ich es hin bekommen.

Jetzt bleibt noch das Problem mit dem Kolumnentitel im Inhaltsverzeichnis. Ich habe es wie folgt probiert:



\makeatletter
\renewcommand*\toc@heading{%
\addchap*{\contentsname}%
\@mkboth{\contentsname}{}%
\makeatother


Doch leider wird im Kolumnentitel zwei mal "Literaturverzeichnis" angezeigt.

u_fischer
27-07-2009, 16:28
Wie du am folgenden Dokument sehen kannst, benutzt \tableofcontents überhaupt nicht \toc@heading. Also kannst du es umdefinieren bis du schwarz wirst:


\documentclass{scrbook}
\makeatletter
\renewcommand\toc@heading{ABC}
\begin{document}
\tableofcontents

\chapter{A}
\end{document}


KOMA hat aber den Befehl \deftocheading, mit dem sich die Überschrift umdefinieren lässt:


\deftocheading{toc}{\chapter*{Zong!!}\@mkboth{Zang !}{Zing!}}

misterjan
27-07-2009, 17:36
Vielen Dank für die Hilfe, jetzt klappt auch das. Du kennst wenigstens die ganzen Befehle, sodass das klappt. Alleine hätte ich das nicht hin bekommen.

Wie lässt sich dieses Problem denn bei "normalen" Kapiteln ohne Unterabschnitte lösen? Meine Einleitung wird in den nächsten Tage sicher bis auf die zweite Seite gehen und dann würde im Kolumnentitel wieder zwei mal Einleitung stehen. Wäre schön, wenn du mir dafür auch noch einen Tipp geben würdest.

u_fischer
27-07-2009, 17:41
Bei den meisten normalen Kapiteln müsste deine \chaptermark-Definition (\renewcommand\chaptermark[1]{\markboth{\thechapter\ #1}{}}) zum gewünschten Ergebnis führen. Bei anderen Kapiteln (\chapter*{Irgendwas}) kannst du immer nach dem \chapter-Befehl einen \markboth-Befehl einfügen. Schwierig sind ja nur die automatisch erzeugten Kapitel, weil du da nicht so leicht hinter den \chapter-Befehl einfach mal was hinschreiben kannst.

Snakeone
06-10-2009, 09:00
Hallo,

die obigen Einträge haben auch mir bei der Gestaltung schon sehr weitergeholfen. Mein letztes Problem besteht jetzt noch in den angesprochenen lebenden Kolumnen. Eigentlich sollten auch auf den Anfangsseiten der Kapitel sowohl Kapitel links, als auch Section rechts erscheinen. Leider macht Latex das aber nicht. Habe schon an diversen Einstellungen gedreht, leider ohne Erfolg.
Hier mal mein Beispiel:

\documentclass{scrreprt}

\usepackage{graphicx}
\usepackage{ngerman}
\usepackage[latin1]{inputenc}
\usepackage{blindtext}
\usepackage[bottom=2.5cm,includeheadfoot]{geometry}
\usepackage[plainfootsepline,plainheadsepline]{scrpage2}

\makeatletter
\deftocheading{toc}{\chapter*{Inhaltsverzeichnis}\ @mkboth{}{}}
\deftocheading{lof}{\chapter*{Abbildungsverzeichni s}\@mkboth{}{}}
\makeatother

\pagestyle{scrheadings}
\automark[section]{chapter}
\ihead[\scshape\leftmark]{\scshape\leftmark}
\ohead[\rightmark]{\rightmark}
\ofoot[\pagemark]{\pagemark}
\chead{}{}
\cfoot[Bericht]{Bericht}
\setheadsepline{0.5pt}
\setfootsepline{0.5pt}
\renewcommand\chaptermark[1]{\markboth{\thechapter\ #1}{}}


\begin{document}

\tableofcontents
\listoffigures

\chapter{Einleitung}
\blindtext

\chapter{Überblick}
\section{Section1}
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext

\section{Section3}

\end{document}

Vllt. kennt da ja auch noch jemand nen Trick ;o)

Viele Grüße Pascal