PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anpassung Texthöhe mit pagestyle



torsten
09-01-2011, 12:39
Hallo Forum,

mein Problem besteht darin, dass ich nur auf der ersten Seite meines Dokuments eine etwa 2cm hohe Kopfzeile benötige. Auf allen folgenden Seiten soll diese Kopfzeile jedoch nicht auftreten - aber ich würde gern den freiwerdenden Platz für den Text verwenden. Da ich viele gleichartige Dokumente erzeugen will, habe ich eine eigene Klasse (hier minbsp.cls) verfasst:


\NeedsTeXFormat{LaTeX2e}
\LoadClass[a4paper,12pt]{article}

\RequirePackage{fancyhdr}
\RequirePackage[showframe]{geometry}

\fancypagestyle{plain}{%
\fancyhf{}%
\newgeometry{top=25mm,
bottom=5mm,
includeheadfoot,
headheight=0cm,
headsep=0cm,
voffset=0cm}
\cfoot{\thepage}
}

\fancypagestyle{test}{%
\fancyhf{}%
\newgeometry{top=25mm,
bottom=5mm,
includeheadfoot,
headheight=2.1cm,
headsep=1cm,
voffset=0cm}
\cfoot{\thepage}
}
\endinput


Ich definiere also einfach zwei pagestyles, von denen ich auf der ersten Seite den Stil -test- auswähle. Für die restlichen Seiten soll -plain- gelten. Jedoch funktioniert das nicht, wenn ich es mit folgendem Dokument teste:


\documentclass{minbsp}
\usepackage{blindtext}
\pagestyle{plain}
\begin{document}
\thispagestyle{test}
\blindtext[15]
\end{document}

Jeder Stil für sich funktioniert, aber wenn ich thispagestyle verwende, scheinen sich die Stile zu überlagern.

Kennt jemand eine Lösung?

mechanicus
09-01-2011, 15:20
Hi,

schaue noch mal in die Dokumentation von geometry. newgeometry sowie restoregeomtry enthalten jeweils ein clearpage in der Anweisung. DU kannst also nicht einfach die Seitengeometrie innerhalb von cfoot ändern.

Gruß
Marco

torsten
09-01-2011, 22:35
Vielen Dank für die rasche Antwort. Allerdings verstehe ich nicht warum es problematisch ist, wenn geometry clearpage aufruft. Du erwähntest, dass ich das nicht im cfoot machen kann, aber wenn ich meinen Code richtig interpretiere, tue ich das eigentlich nicht.

Folgendes Beispiel soll mal illustrieren, dass es theoretisch geht:


\documentclass{minbsp}
\usepackage{blindtext}
\begin{document}
\newgeometry{top=25mm,bottom=5mm,includeheadfoot,h eadheight=0cm,headsep=0cm,voffset=0cm}
\blindtext
\newpage
\newgeometry{top=25mm,bottom=5mm,includeheadfoot,h eadheight=2.1cm,headsep=1cm,voffset=0cm}
\blindtext
\end{document}


Allerdings wollte ich die Größenanpassungen gern in die Klassendatei einbetten.

Hat dazu jemand eine Idee?

u_fischer
10-01-2011, 10:03
Es ist keine gute Idee, die geometry-Befehle in die pagestyle-Befehle zu stecken. \thispagestyle kann irgendwo auf einer Seite stehen, aber du kannst nicht einfach die Seitengeometrie irgendwo auf der Seite ändern.

Ich würde dir empfehlen, einfach auf der ersten Seiten was tiefer anzufangen, und deine Kopfzeile in die Seite hineinragen zu lassen:


\documentclass[a4paper,10pt]{article}
\RequirePackage{fancyhdr,lipsum}
\RequirePackage[showframe]{geometry}
\geometry{top=25mm,
bottom=5mm,
includeheadfoot,
headheight=0cm,
headsep=0cm,
voffset=0cm}

\fancypagestyle{plain}{%
\fancyhf{}%
\cfoot{\thepage}
}

\fancypagestyle{test}{%
\fancyhf{}%
\chead{\raisebox{-2cm}[0pt][0pt]{\begin{tabular}{l}Kopf\\Kopf\end{tabular}}}
\cfoot{\thepage}
}

\AtBeginDocument{\vspace*{3cm}\thispagestyle{test} }
\begin{document}
\lipsum\lipsum
\end{document}