PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schriftgröße in der Kopfzeile ändern



nepumuk
02-07-2008, 13:13
Hallo zusammen,

ich schreibe zur Zeit meine Abschlussarbeit. Meine Kopfzeilen werden durch

\pagestyle{headings}
\renewcommand\chaptermark[1]{\markboth{\thechapter.~\MakeUppercase{#1}}{}}

generiert.

Nun hatte ich das Problem, dass manche Titel der Kapitel zu lang waren und über den Rand hinaus geschrieben wurden. Für die linke Seite habe ich das so

\renewcommand\chaptermark[1]{\markboth{\thechapter.~\MakeUppercase{\small#1}}{ }}

gelöst. Nun hätte ich die rechte Zeile auch gerne \small. Ist sicherlich nicht schwer, ich weiß nur nicht wie.

Besten Dank
nepi

Stefan_K
02-07-2008, 13:35
Hallo Nepi,

willst Du nicht lieber stattdessen den Kapiteltitel innerhalb der Kopfzeile kürzer formulieren? Das ginge durch einem \chaptermark-Aufruf (oder \markboth) direkt nach \chapter. Analog für \section mit überlangem Titel.

Sonst könnte man analog zu \chaptermark auch \sectionmark umdefinieren. In Deiner obigen Zeile bleibt \thechapter übrigens in normaler Größe. Man könnte alternativ \markboth und \markright redefinieren, um kleinere Schrift zu erhalten.

Aber wie eingangs bemerkt, ich würde mir überlegen, bei überlangen Titeln eine Kurzform anzugeben, die in Inhaltsverzeichnis und Kopfzeile verwendet wird, das geht mit \chapter[Kurztitel]{Langtitel} bzw. \section[Kurztitel]{Langtitel}.

Viele Grüße,

Stefan

nepumuk
02-07-2008, 13:43
Moin Stefan,

vielen Dank für die schnelle Antwort. Die Kurztitelvariante würde ich auch am liebsten nehmen, allerdings taucht dann der Kurztitel auch im Inhaltsverzeichnis auf, was mir nicht gefällt.

Ich glaube, wenn Du mir
Man könnte alternativ \markboth und \markright redefinieren, um kleinere Schrift zu erhalten. etwas genauer aufdröseln könntest, wäre mir am ehesten geholfen.

Ich kann doch bestimmt irgenwo noch ein \small hinpacken und dann gehts oder?

Viele Grüße
nepi

Stefan_K
02-07-2008, 14:03
Hallo Nepi,

man könnte das so tun:

\newcommand*\stdmarkboth{}
\let\stdmarkboth\markboth
\renewcommand*\markboth[2]{\stdmarkboth{\small#1}{\small#2}}
\newcommand*\stdmarkright{}
\let\stdmarkright\markright
\renewcommand*\markright[1]{\stdmarkright{\small#1}}


Stefan

nepumuk
02-07-2008, 14:20
Das super geklappt Stefan, alles gleich groß!! Vielen Dank!
In der Kopfzeile steht jetzt immer "Kapitel" vor der Zahl und dem Titel, was vorher nicht so war. Wenn Du mir das noch wieder wegnimmst, wird - um mit Nina Ruge zu sprechen - alles gut.

Viele Grüße
nepi

Stefan_K
02-07-2008, 14:34
Kein Problem, Du kannst das ja mit

\renewcommand\chaptermark[1]{\markboth{\thechapter.~\MakeUppercase{#1}}{}}
kombinieren.

Stefan

nepumuk
02-07-2008, 14:38
Hätt ich auch selbst drauf kommen können...
Wenn ich das nächste Mal in Gera bin gebe ich nen Eimer Köstritzer aus!!

Vielen Dank
nepi

Stefan_K
02-07-2008, 14:41
Hi Nepi,

mir fällt noch ein Fallstrick ein: \tableofcontents (u.a.) könnte je nach Klasse statt \markboth das interne Makro \@mkboth aufrufen. Prüfe einmal, ob die Kopfzeile beim Inhaltsverzeichnis bzw. der folgenden Seite die gleiche Größe (\small) aufweist. Falls nötig, kannst Du es ganz analog machen:

\makeatletter
\newcommand*\std@mkboth{}
\let\std@mkboth\@mkboth
\renewcommand*\@mkboth[2]{\std@mkboth{\small#1}{\small#2}}
\makeatother

Dann sind die Kopzeilen konsistenter.

Übrigens wäre das Ganze mit fancyhdr (http://www.ctan.org/tex-archive/help/Catalogue/entries/fancyhdr.html) komfortabler gewesen.

Viele Grüße,

Stefan