PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Header und Footer



Spankmaster79
24-02-2006, 13:49
Servuz,

also ich hab mit dem Paket fancyhdr oben und unten eine schöne Linie mit Kapitelnamen Seitenzahl und so gebastelt.

Nun tauch aber bei der 1. Seite des Inhaltsverzeichnisses und bei jeder 1. Seite eines neuen Kapitels der Header und Footer nicht auf. Wie krieg ich das hin?

Hier mein Code:

%Paket fancyhdr für einfaches setzen von Kopf und Fußzeilen
\usepackage{fancyhdr}
\pagestyle{fancy} %setzt den Pagestyle auf den Standart des fancyhdr Pakets
\fancyhf{} %leert alle evtl. vorhandenen Kopf und Fußzeilen

%Kopfzeile mittig
\fancyhead[C]{\nouppercase{\leftmark}}
%Linie oben
\renewcommand{\headrulewidth}{0.5pt}

%Seitennummer als Fußzeile mittig
\fancyfoot[C]{\thepage}
%Linie unten
\renewcommand{\footrulewidth}{0.5pt}

Spankmaster79
24-02-2006, 13:51
Bild 2 vergessen

sensemann
24-02-2006, 14:03
Also folgendes... du definierst dir ja alle schön zurecht, doch sobald chapter oder ein Verzeichnis aufgerufen werden, dann nutzen die den pagestyle plain. Den mußt du nun also auch umdefinieren, also sieht das dann so aus:



\pagestyle{fancy}
%% chapter, maketitle... rufen plain auf -> umdefinieren
\fancypagestyle{plain}{
% alle Felder zurücksetzen
\fancyhf{} %leert alle evtl. vorhandenen Kopf und Fußzeilen
%Kopfzeile mittig
\fancyhead[C]{\nouppercase{\leftmark}}
%Linie oben
\renewcommand{\headrulewidth}{0.5pt}
%Seitennummer als Fußzeile mittig
\fancyfoot[C]{\thepage}
%Linie unten
\renewcommand{\footrulewidth}{0.5pt}
}
%% und nochmal normal:
%Kopfzeile mittig
\fancyhead[C]{\nouppercase{\leftmark}}
%Linie oben
\renewcommand{\headrulewidth}{0.5pt}
%Seitennummer als Fußzeile mittig
\fancyfoot[C]{\thepage}
%Linie unten
\renewcommand{\footrulewidth}{0.5pt}


So funktionier's jedenfalls beir mir und sollte auch bei dir :)

Bin mir jetzt nicht ganz sicher, ob man beim zweiten mal auch die head und footrulewidth neu definieren muß, oder ob das einmal reicht...

rais
25-02-2006, 16:28
Moin moin,
wenn Du das ganze umdrehst, dann brauchst Du's auch nur einmal zu definieren:

\usepackage{fancy}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[C]{\nouppercase{\leftmark}}
\renewcommand{\headrulewidth}{0.5pt}
\fancyfoot[C]{\thepage}
\renewcommand{\footrulewidth}{0.5pt}

\fancypagestyle{plain}{}
in der zweiten Klammer von \fancypagestyle stehen die Abweichungen zum bis dahin existierendem fancy-Stil.;)
MfG,

Clython
26-02-2006, 10:46
Hallo Leute

ich habe ein ähnliches Problem. Wenn ich folgendes Dokument erzeuge:


\documentclass{seminar}

\usepackage[german]{varioref}
\usepackage[latin1]{inputenc}
\usepackage{listings}
\lstset{numbers=left, numberstyle=\tiny, numbersep=5pt}
\lstset{language=Python}

\newif\ifpdf
\ifx\pdfoutput\undefined
\pdffalse
\else
\pdfoutput=1
\pdftrue
\fi

\ifpdf
\usepackage[pdftex]{graphicx}
\pdfcompresslevel=9
\pdfpagewidth=11truein %297truemm % your milage may vary....
\pdfpageheight=8.5truein %210truemm
\pdfhorigin=1truein % default value(?), but doesn't work without
\pdfvorigin=1truein % default value(?), but doesn't work without
\else
\usepackage{graphicx}
\fi

\landscapeonly
\special{landscape}

\usepackage{fancyheadings}

\pagestyle{fancy}{
\setlength{\footrulewidth}{\headrulewidth}
\lhead{\footnotesize Einführung in Python}
\chead{\footnotesize \thepage}
\lfoot{\footnotesize 13.03.2006}
\cfoot{\footnotesize 1. Sitzung}
%\rhead{\footnotesize}
}

\begin{document}
% \slideframe{plain} is the default with fancybox.sty
\section{Übersicht}
\subsection{Einleitung}
\subsubsection{Dynamische Typisierung}
\subsubsection{Whitespace}
\subsection{Datentypen}
\subsubsection{Zahlen}
\subsubsection{Strings}
\subsubsection{Listen}
\subsubsection{Tupel}
\subsubsection{Dictionaries}
\newslide
\subsection{Kontrollstrukturen}
\subsubsection{while}
\subsubsection{if-else}
\subsubsection{for-in}
\subsection{Anderes}
\subsubsection{Filehandling}
\subsubsection{Ausnahmenverwaltung}
\subsubsection{Funktionen}
\newslide

\section{Einleitung}
\subsection{Dynamische Typisierung}
\begin{itemize}
\item Werte können ohne vorherige Deklaration einer Variable zugeteilt werden
\item Variablen lassen sich mit einem anderen Datentyp überschreiben
\item Speicherverwaltungscode wird nicht benötigt
\item Der Typ einer Variable beeinflusst mögliche Operationen
\end{itemize}
\newslide

\begin{lstlisting}
a = 7
if a == 7:
print "yes"
else:
print "no"
\end{lstlisting}
\newslide
\end{document}

Dann zeigt er mir die Fusszeile (eine Linie und untendran das Geschriebene) nur auf den ersten zwei Folien an. Die Kopfzeile bleibt korrekt auf allen Folien. Was ist der Fehler? Ich konnte das Problem anhand eurer Lösungen nicht erkennen, bin aber auch total neu in der LaTeX-Welt

sensemann
26-02-2006, 17:45
Moin moin,
wenn Du das ganze umdrehst, dann brauchst Du's auch nur einmal zu definieren:

\usepackage{fancy}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[C]{\nouppercase{\leftmark}}
\renewcommand{\headrulewidth}{0.5pt}
\fancyfoot[C]{\thepage}
\renewcommand{\footrulewidth}{0.5pt}

\fancypagestyle{plain}{}
in der zweiten Klammer von \fancypagestyle stehen die Abweichungen zum bis dahin existierendem fancy-Stil.;)
MfG,


Aha, das ist ja interessant. Danke :)

rais
26-02-2006, 22:52
Hallo Clython,
erstmal Herzlich Willkommen an Board :)

Also erstmal: fancyheadings ist vom fancyhdr-Paket abgelöst worden - daran liegt's aber nicht - bleibt eigentlich nur die verwendete Klasse...
Da seminar ebenfalls veraltet ist, solltest Du Dir vielleicht einmal die beamer-Klasse ansehen - die wird hier von den Meisten für Präsentationen genommen.;)

@sensemann: gern gescheh'n:D

MfG,

Spankmaster79
27-02-2006, 07:18
Wow, danke. So lieb ich mal ein Board.

Danke @sensemann @rais

Die kurze Version geht. Jetzt hätte ich noch ein Anliegen, ich hätte gerne jetzt das Kapitel oben Links und den Autor oben rechts..... aber da schau ich auch erstmal selbst. Falls aber jemand hier schneller ist gern bescheid sagen!

Gruß
Spanky

EDIT: Hab erstmal folgendes am Ende eingefügt. Gefällt mir aber noch nicht ganz

\fancyfoot[L]{Sebastian Beyer}
\fancyfoot[C]{\thepage}
\fancyfoot[R]{Mtrkl.: 616533}

Spankmaster79
27-02-2006, 13:01
Hab noch eine Frage. Also meine Konfig sieht nun wie folgt aus:


%Paket fancyhdr für einfaches setzen von Kopf und Fußzeilen
\usepackage{fancyhdr}
\pagestyle{fancy} %setzt den Pagestyle auf den Standart des fancyhdr Pakets
\fancyhf{} %leert alle evtl. vorhandenen Kopf und Fußzeilen

%Kopfzeile mittig
\fancyhead[L]{\nouppercase{\leftmark}}
\fancyhead[R]{\nouppercase{\rightmark}}
%Linie oben
\renewcommand{\headrulewidth}{0.5pt}

%Seitennummer als Fußzeile mittig
\fancyfoot[L]{My Name}
\fancyfoot[C]{\thepage}
\fancyfoot[R]{Mtrkl.: 0815}
%Linie unten
\renewcommand{\footrulewidth}{0.5pt}

%% chapter, maketitle... rufen plain auf -> umdefinieren
\fancypagestyle{plain}{}

Das gefällt mir auch alles bis auf das Inhaltsverzeichnis. Dort steht dann im Header "Inhaltsverzeichnis" links und rechts. Ist ja auch logisch wegen meiner Angaben.

Aber geht es auch das im Inhalts, Literatur, Stichwortverzeichnis nur einmal in der Mitte das Wort steht? Oder müsste ich dann z.B: \tableofcontents umdefinieren?

sensemann
27-02-2006, 13:35
Du kannst ja das Kopfzeile so definieren wie du sie in der Verzeichnissen möchtest und sie danach umdefinieren.

Spankmaster79
27-02-2006, 14:49
Du kannst ja das Kopfzeile so definieren wie du sie in der Verzeichnissen möchtest und sie danach umdefinieren.

Aber wie definiere ich sie denn um für \tableofcontents? :confused: :confused:

sensemann
27-02-2006, 18:51
Theoretisch sollte auch das Inhaltsverzeichnis wie der Rest arbeiten: Auf der ersten Seite wird plain genutzt, danach fancy.

Es sollte also reichen, wenn du zuerst plain und fancy so definierst, wie du's für das Inhaltsverzeichnis möchtest (s.o.), und danach dann die Änderungen für den Rest der Arbeit.

Clython
02-03-2006, 15:44
Hab mal auf Beamer umgestellt, aber wenn ich in einer frame-Umgebung die listings-Umgebung benutze, bekomme ich einen Fehler: TeX capacity exceeded, sorry [input stack size=1500]- \end{frame}

Wenn ich die frame-Umgebung nicht benutze, funktionierts, das Layout der Folie ist dann aber nicht optimal. Was ist hier nun schon wieder das Problem?

rais
02-03-2006, 16:36
Hab mal auf Beamer umgestellt, aber wenn ich in einer frame-Umgebung die listings-Umgebung benutze, bekomme ich einen Fehler: TeX capacity exceeded, sorry [input stack size=1500]- \end{frame}

Wenn ich die frame-Umgebung nicht benutze, funktionierts, das Layout der Folie ist dann aber nicht optimal. Was ist hier nun schon wieder das Problem?
Ich kann zwar Deinen Quellcode nich sehen, aber hast Du vielleicht versucht, die frame- und listings-Umgebungen ueber Kreuz zu schliessen oder etwas derartiges?
Erstell doch bitte einmal ein Minimalbeispiel fuer diesen Fehlerfall.
MfG,

Clython
02-03-2006, 17:18
Hier mal das Listing:


\documentclass{beamer}

\usepackage[german]{varioref}
\usepackage[latin1]{inputenc}
\usepackage{listings}
\lstset{numbers=left, numberstyle=\tiny, numbersep=5pt}
\lstset{language=Python}

\mode<presentation>
{
\usetheme{Montpellier}
\usecolortheme{seagull}
\useoutertheme{infolines}
\usefonttheme{professionalfonts}
}

\title{Einführung in Python}
\date{13.03.2006}

\begin{document}
\section{Übersicht}

\begin{frame}
\begin{block}{Einleitung}
\begin{enumerate}
\item Dynamische Typisierung
\item Whitespace
\end{enumerate}

\end{block}
\begin{block}{Datentypen}
\begin{enumerate}
\item Zahlen
\item Strings
\item Listen
\item Tupel
\item Dictionaries
\end{enumerate}
\end{block}

\end{frame}

\section{Übersicht}

\begin{frame}

\begin{block}{Kontrollstrukturen}
\begin{enumerate}
\item while
\item if else
\item for in
\end{enumerate}
\end{block}

\begin{block}{Anderes}
\begin{enumerate}
\item Filehandling
\item Ausnahmenverwaltung
\item Funktionen
\end{enumerate}
\end{block}

\end{frame}

\section{Einleitung}
\subsection{Dynamische Typisierung}

\begin{frame}
\begin{itemize}
\item Werte können ohne vorherige Deklaration einer Variable zugeteilt werden
\item Variablen lassen sich mit einem anderen Datentyp überschreiben
\item Speicherverwaltungscode wird nicht benötigt
\item Der Typ einer Variable beeinflusst mögliche Operationen
\end{itemize}
\end{frame}

\subsection{Codebeispiel}
\begin{frame}
\begin{block}
\begin{lstlisting}
a = 7
if a == 7:
print "yes"
else:
print "no"
\end{lstlisting}
\end{block}
\end{frame}

\end{document}

Wie man sieht, sollte es sauber verschachtelt sein...

countbela666
02-03-2006, 21:30
wenn ich in einer frame-Umgebung die listings-Umgebung benutze, bekomme ich einen Fehler: TeX capacity exceeded, sorry [input stack size=1500]- \end{frame}Ist ein Standardfehler, dessen Lösung in der Beamer-Doku in Abschnitt 11.9 "Verbatim and Fragile Text" beschrieben wird:

If you wish to use a {verbatim} environment in a frame, you have to add the option [fragile] to the {frame} environment. In this case, you really have to use the {frame} environment (not the \frame command) and the \end{frame} must be alone on a single line. Using this option will cause the frame contents to be written to an external file and the read back. See the description of the {frame} environment for more details.
Ergo, Lösung:

\begin{frame}[fragile]
\begin{block}
\begin{lstlisting}
a = 7
if a == 7:
print "yes"
else:
print "no"
\end{lstlisting}
\end{block}
\end{frame}Grüße,
Marcel

Clython
02-03-2006, 21:34
Aha, gewusst wie...

Dankeschön!!! :D

Clython
02-03-2006, 21:45
Funktioniert nicht??? :confused: :( :confused:

Muss ich vorher noch etwas deklarieren oder so?

Edit:

Es muss heissen \begin[fragile]{frame}

Aber dann krieg ich eine neue Fehlermeldung, da der Interpreter den Quelltext zu interpretieren versucht... :confused: :( :confused:

countbela666
02-03-2006, 21:59
Sorry, ist mir vorhin nicht aufgefallen: Du hast die block-Umgebung nicht richtig abgeschlossen, deswegen wird das Listing für einen Parameter der block-Umgebung gehalten, was zu einigen Problemen führt. So sollte es klappen:

\begin{frame}[fragile]
\begin{block}{}
\begin{lstlisting}
a = 7
if a == 7:
print "yes"
else:
print "no"
\end{lstlisting}
\end{block}
\end{frame}Grüße,
Marcel

Clython
02-03-2006, 22:05
Ich will ja nicht negativ sein :o , aber es funktioniert immer noch nicht (und ich hab den Code 1 zu 1 reingepastet...) :mad:

countbela666
02-03-2006, 22:07
Tja, was soll ich sagen, bei mir funktioniert dein Beispiel jetzt bestens (wenn ich hinter \mode das < presentation > einfüge, das die Code-Umgebung dieses Formus immer verschluckt). Hast du auch Version 3.06 des beamer-Pakets?

Clython
02-03-2006, 22:14
Aha, daran hats gelegen. Dankeschön! Jetzt kann ich endlich meine Unterlagen machen :)