PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kopfzeile mit Section und Subsection



Mia_Day
27-08-2013, 12:09
Hallo,
ich schreibe gerade meine Bachelorarbeit mit Latex und verzweifle an der Kopfzeile. Bin leider Anfänger und habe mir den Code nur aus dem Internet zusammengebastelt, passt aber irgendwie noch nicht.
Ich möchte eine Kopfzeile, die mit Trennstrich abgetrennt ist, und links die Section enthält und rechts die Subsection.
Bis jetzt habe ich:

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage[T1]{fontenc}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lmodern}
\usepackage{german}
\usepackage[onehalfspacing]{setspace}
\usepackage[numbers]{natbib}
\bibliographystyle{plaindin}

\usepackage{fancyhdr}
\pagestyle{fancy}
\setlength{\headheight}{15pt}
\pagestyle{fancyplain}
\renewcommand{\sectionmark}[1]{\markboth{#1}{}}
\lhead{\leftmark}
\rhead{}



Der Trennstrich ist da, und auf der linken Seite der Kopfzeile steht die Section. Passt soweit. Aber auf der rechten Seite hätte ich eben gerne noch die aktuelle Subsection. Wäre echt super, wenn mir jemand helfen könnte.

Danke!

u_fischer
27-08-2013, 12:36
Wenn auf der aktuellen Seite

\subsection{A}
\section{B}
\subsection{C}
\section{D}
\subsection{E}

steht. Was soll in der Kopfzeile stehen?

Und wenn auf der aktuellen Seite nur eine \section steht, was dann?

rstuby
27-08-2013, 12:43
Da du ja ein deutsches Dokument schreiben willst, würde ich dir raten, zur Klasse scrartcl zu wechseln.
Das, was du willst, ist eigentlich Voreinstellung, sobald du überhaupt headings benutzt. Wenn du noch was ändern willst, solltest du nach deinem Wechsel zu scrartcl auch das Paket scrpage2 anstatt fancyhdr benutzen. Dessen Funktionen sind im scrguide.pdf beschrieben.

Außerdem solltest du babel benutzen und nicht das german-Paket, das ist veraltet.
Vielleicht haben andere noch mehr Anmerkungen. Anzudenken wäre z.B. ein Wechsel von natbib auf biblatex.

\documentclass[12pt,headsepline,twoside]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage[T1]{fontenc}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[onehalfspacing]{setspace}
\usepackage[numbers]{natbib}
\bibliographystyle{plaindin}
\pagestyle{headings}
\usepackage{blindtext}%Nur zur Demo
\begin{document}
\blinddocument
\end{document}

Mia_Day
27-08-2013, 13:00
Erstmal danke für die schnellen Antworten :)

@u_fischer:

Wenn auf der aktuellen Seite

\subsection{A}
\section{B}
\subsection{C}
\section{D}
\subsection{E}

steht. Dann soll in der Kopfzeile stehen:
Links: section{D}
Rechts: subsection{E}

Also sozusagen immer das letzte, was neu dazukommt.
Glaube aber, dass ich soo viele Sections gar nicht haben werde ;)

Und wenn auf der aktuellen Seite nur eine \section steht, dann eben nur links die Section.

@rstuby:

Habe meinen Code nun so verändert:

\documentclass[12pt,headsepline,twoside]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage[T1]{fontenc}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[onehalfspacing]{setspace}
\usepackage[numbers]{natbib}
\bibliographystyle{plaindin}

\usepackage{scrpage2}
\pagestyle{headings}


War das das, was du meintest? Jetzt ist die Kopfzeile auf manchen Seiten ganz verschwunden :(

Mia_Day
27-08-2013, 13:09
Ah okay, wenn ich das "twoside" in der allerersten Codezeile entferne, habe ich wieder auf jeder Seite eine Kopfzeile. Die enthält aber leider wieder nur die Section..

u_fischer
27-08-2013, 13:26
Erstmal danke für die schnellen Antworten :)

@u_fischer:

Wenn auf der aktuellen Seite

\subsection{A}
\section{B}
\subsection{C}
\section{D}
\subsection{E}

steht. Dann soll in der Kopfzeile stehen:
Links: section{D}
Rechts: subsection{E}

Also sozusagen immer das letzte, was neu dazukommt.


Hm. Und wenn da nur

\subsection{A}
\section{B}

steht? Dann müsste es deiner Regel nach ja B -- A heißen. Fändest du das nicht verwirrend, wenn die \subsection aus einer anderen \section stammt?

Mia_Day
27-08-2013, 13:34
@u_fischer: Hm, da hast du wohl Recht... Dann auf den Seiten, wo eine neue section beginnt, NUR die section. (Eine neue section beginne ich dann immer auf einer komplett neuen Seite).

Habe jetzt noch einen Code aus dem Internet gefunden, und mein Dokument so modifiziert:

\documentclass[12pt,headsepline]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage[T1]{fontenc}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[onehalfspacing]{setspace}
\usepackage[numbers]{natbib}
\bibliographystyle{plaindin}


\usepackage{scrpage2}
\clearscrheadfoot
\pagestyle{scrheadings}
\automark[subsection]{section}
\renewcommand{\sectionmark}[1]{\markboth{\sectionmarkformat #1}{}}%
\renewcommand{\subsectionmark}[1]{\markright{#1}} %nur Titel ohne Nr.
\ihead{\rightmark}
\ohead{\leftmark}
\cfoot{\pagemark}


Ich glaube, das passt jetzt grob... Wenn ich jetzt

section{A}
subsection{B}
subsection{C}

auf einer Seite habe, schreibt er mir die subsection{B} in die Kopfzeile. Damit kann ich auch leben ;)
Eine Frage dann noch: Kann man die Kopfzeile auf einzelnen Seiten, wie dem Inhaltsverzeichnis, ausblenden?

u_fischer
27-08-2013, 13:42
Ich glaube, das passt jetzt grob... Wenn ich jetzt

section{A}
subsection{B}
subsection{C}

auf einer Seite habe, schreibt er mir die subsection{B} in die Kopfzeile. Damit kann ich auch leben ;)


Das tut dein Code aber sicherlich nicht. Das ergibt entweder eine leere Stelle bei \subsection, oder eine \subsection aus der vorherigen \section.

Versuche es mit

\usepackage{extramarks}

und

\ihead{\lastrightmark}

klops
27-08-2013, 13:48
Ich würde Dir ebenfalls zur Verwendung einer KOMA-Script-Klasse raten, beispielsweise:

\documentclass[headsepline]{scrartcl}
\usepackage{selinput}
\SelectInputMappings{
adieresis={ä},
germandbls={ß},
}
\usepackage{scrpage2}
\automark[section]{subsection}
\pagestyle{scrheadings}
\chead{}
\ihead{\rightmark}
\ohead{\leftmark}
\renewcommand*{\subsectionmark}[1]{\markleft{\subsectionmarkformat #1}}

\usepackage{blindtext}% Für Demo-Zwecke

\begin{document}
\Blinddocument
\Blinddocument
\end{document}

Wenn Du tatsächlich alle Abschnitte auf einer neuen Seite beginnst, dann wäre es eventuell besser zu einer report-Klasse zu wechseln und als oberste Ebene \chapter zu verwenden:

\documentclass[headsepline]{scrreprt}
\usepackage{selinput}
\SelectInputMappings{
adieresis={ä},
germandbls={ß},
}
\usepackage{scrpage2}
\automark[chapter]{section}
\pagestyle{scrheadings}
\chead{}
\ihead{\rightmark}
\ohead{\leftmark}
\renewcommand*{\sectionmark}[1]{\markleft{\sectionmarkformat #1}}

\usepackage{blindtext}% Für Demo-Zwecke

\begin{document}
\Blinddocument
\Blinddocument
\end{document}

Dass Du dabei auf den Kapitelanfangsseiten keinen Kolumnentitel hast ist so gewollt und absolut richtig. Du hast dann auch automatisch auf der ersten Seite des Inhaltsverzeichnisses beispielsweise keinen Kolumnentitel mehr, ganz wie Du das haben wolltest. Wenn Du das doch haben willst, schau Dir das optionale Argument von \ihead und \ohead in der KOMA-Script-Anleitung (http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf) an. Und natürlich kann man \ihead und \ohead ggf. auch innerhalb des Dokuments verwenden, um den Stil komplett umzukonfigurieren.

BTW: Du solltest Code in Beiträgen als solchen markieren (http://www.mrunix.de/forums/misc.php?do=bbcode). Das geht in der erweiterten Ansicht auch einfach mit Hilfe des #-Knopfes in der Toolbar. Außerdem solltest Du immer ein VM (mit Anleitung zur Erstellung nicht nur für Anfänger) (http://texwelt.de/wissen/fragen/569/was-ist-ein-vollstandiges-minimalbeispiel-oder-kurz-vm-und-wie-erstelle-ich-dieses) angeben, das Dein Problem (und nur dieses!) verdeutlicht.

rstuby
27-08-2013, 14:15
Entschuldigung, ich dachte, du meinst rechte und linke Seiten, aber in Wirklichkeit willst du beides auf einer Seite rechts und links stehen haben...

Mia_Day
27-08-2013, 14:21
@rstuby: Kein Problem, mittlerweile bin ich der perfekten Kopfzeile ja schon sehr nahe ;)

@klops: Auch dir danke für die Hilfe.
Habe mich jetzt für diese Version entschieden: (Section schreibe ich jetzt doch auf die rechte Seite, Subsection auf die linke, das ist glaube ich so üblich)



\usepackage{selinput}
\SelectInputMappings{
adieresis={ä},
germandbls={ß},
}
\usepackage{scrpage2}
\automark[section]{subsection}
\pagestyle{scrheadings}
\chead{}
\ohead{\rightmark}
\ihead{\leftmark}
\renewcommand*{\subsectionmark}[1]{\markleft{\subsectionmarkformat #1}}




Da wäre jetzt nur noch eine Kleinigkeit, die ich doch gern ändern würde, falls das jetzt unkompliziert geht:

Auf den Seiten, wo eine neue Section beginnt, wäre es schön, wenn nur rechts "Section xy" steht und links gar nichts.
Edit:
Jetzt klappt es. Danke nochmal für die Hilfe, hiermit schließe ich das Thema :P (weiß leider nicht, wie das geht, falls es geht).