Hallo ich würde gerne in meinem Dokument in der Kopfzeile auf der einen Seite der jeweilige Name der aktuellen section und auf der anderen der jeweilige Name subsection angezeigt bekommen. Open in writeLaTeX
\usepackage{fancyhdr} \pagestyle{fancy} \fancyhf{} \fancyhead[L]{ HIER SOLL DIE SUBSUBSECTION STEHEN} \fancyhead[R]{ \leftmark } \fancyfoot[C]{\thepage} Wie mache ich das am besten? Minimalbeispiel: Open in writeLaTeX
\documentclass[12pt,a4paper,titlepage]{article} \usepackage{fancyhdr} \pagestyle{fancy} \fancyhf{} \fancyhead[R]{\leftmark} \fancyhead[L]{Hier soll Subsection stehen } \fancyfoot[C]{\thepage} \setlength{\headheight}{15pt} \begin{document} \section{Section1} \newpage \section{Section2} \subsection{Subsection2.1} \newpage \subsection{Subsection2.2} \end{document} gefragt 28 Jul '14, 16:00 bor44
Ergebnis 5 von 10
show 5 more comments
|
Theoretisch erreichst Du bereits mit Open in writeLaTeX
\documentclass[12pt,a4paper,titlepage]{article} \usepackage{fancyhdr} \pagestyle{fancy} \fancyhf{} \fancyhead[R]{\leftmark} \fancyhead[L]{\rightmark} \fancyfoot[C]{\thepage} \setlength{\headheight}{15pt} \begin{document} \section{Section1} \newpage \section{Section2} \subsection{Subsection2.1} \newpage \subsection{Subsection2.2} \end{document} das gewünschte. Wie zu erwarten ist, trägt Seite 1 nur die section-Überschrift im Kolumnentitel (hier in der Kopfzeile). Vielleicht etwas überraschen ist aber auch auf Seite 2 kein subsection im Kolumnentitel zu finden. Die Ursache dafür ist einfach: LaTeX verwendet für Noch seltsamer wird es, wenn man ein etwas komplexeres Dokument hat, bei dem dann auf einer Seite erst ein Unterabschnitt und dann ein Abschnitt beginnt: Open in writeLaTeX
\documentclass[12pt,a4paper,titlepage]{article} \usepackage{fancyhdr} \pagestyle{fancy} \fancyhf{} \fancyhead[R]{\leftmark} \fancyhead[L]{\rightmark} \fancyfoot[C]{\thepage} \usepackage{blindtext} \begin{document} \section{Section1} \Blindtext[5] \section{Section2} \blindtext \subsection{Subsection2.1} \blindtext \subsection{Subsection2.2} \blindtext \section{Section3} \Blindtext[2] \subsection{Subsection 3.1} \Blindtext[5] \end{document} Wenn Du Dir hier einmal Seite 3 anschaust, dann hast Du dort in der Kopfzeile links »2.2 Subsection2.2« und rechts »3 Section 3« stehen, obwohl auf der Seite weiter unten auch noch »3.1 subsection 3.1« beginnt. Das finde ich eher verwirrend. Um beide Probleme zu lösen, schlage ich einen Wechsel zum KOMA-Script-Paket Open in writeLaTeX
\documentclass[12pt,a4paper,titlepage]{article} \usepackage[autooneside=false,headsepline,markcase=noupper]{scrlayer-scrpage} \automark[subsection]{section} \pagestyle{scrheadings} \clearscrheadfoot \ofoot[\pagemark]{\pagemark} \ihead{\ifstr{\rightbotmark}{\leftmark}{}{\rightbotmark}} \ohead{\leftmark} \usepackage{blindtext} \makeatletter % Damit die letzte (\botmark) statt der ersten (\firstmark) Marke auf % einer Seite für die "rechte Marke" genommen wird: \providecommand*{\rightbotmark}{\expandafter\@rightmark\botmark\@empty\@empty} \makeatother \begin{document} \section{Section1} \Blindtext[5] \section{Section2} \blindtext \subsection{Subsection2.1} \blindtext \subsection{Subsection2.2} \blindtext \section{Section3} \blindtext \subsection{Subsection 3.1} \Blindtext[5] \end{document} Damit hast Du nun immer die unterste subsection-Überschrift der Seite links oben. Das führst sowohl dazu, dass auf Seite 2 bereits das Feld belegt ist und auf Seite 3 nicht mehr 2.2, sondern 3.1 verwendet wird. Noch besser fände ich allerdings, wenn Du in diesem Beispiel Open in writeLaTeX
\ohead{\ifstr{\rightbotmark}{\leftmark}{}{\rightbotmark}} \ihead{\leftmark} verwenden würdest. Es sei noch darauf hingewiesen, dass bei einem Wechsel zu Bei Verwendung von Open in writeLaTeX
\automark[section]{chapter} ändern. Außerdem bräuchte man dann noch: Open in writeLaTeX
\makeatletter % damit \leftmark voll expandierbar ist (wird für \ifstr benötigt) \renewcommand*{\@seccntformat}[1]{% \othersectionlevelsformat{#1}{}{\csname the#1\endcsname}% } \makeatother Das war's dann schon. BTW: Diese Antwort basiert u. a. auf einem Beitrag von Elke auf matheplanet (Anmerkung: Dieser Link benötigt leider JavaScript). beantwortet 29 Jul '14, 08:50 gast3 Danke für die umfangreiche, gut beschriebene Antwort! Ich werde es gleich mal ausprobieren und dann ggf als gelöst markieren!
(29 Jul '14, 09:16)
bor44
Funktioniert so, wie ich es mir vorstelle! VIELEN DANK!
(29 Jul '14, 10:31)
bor44
1
Seit der KOMA-Script Version 3.16 stellt
(28 Apr '15, 10:34)
esdd
|
Wenn du eine KOMA-Klasse benutzt, dann nimm lieber das Paket
scrlayer-scrpage
.Noch ein anderer Hinweis, falls du es noch nicht selbst gefunden hast. Kann danach gelöscht werden. http://texwelt.de/wissen/fragen/991/wie-kann-ich-die-von-autoref-verwendete-bezeichnung-fur-abbildungen-andern
@Ijon Tichy: Ich würde gerne den LatexCode auf dieser Seite einbinden, allerdings funktioniert das bei mir nicht so richtig. (Nutze Chrome unter Linux). Screenshot von Editor: https://dl.dropboxusercontent.com/u/14369950/16%3A01%3A21280716%3A01%3A21201407001.png
Du musst den Code doch nur hier reinkopieren, markieren und
strg + k
drücken?@Johannes Danke für den Tipp, überlege jetzt auf KOMA umzusteigen, allerdings nutze ich bisher immer article
Wenn mehrere Unterabschnitte oder aber ein neuer Abschnitt auf einer Seite beginnen, welcher Unterabschnitt soll denn dann in die Kopfzeile - der erste oder der letzte auf der Seite? Was soll links stehen, wenn keine aktuelle Unterabschnittsüberschrift vorhanden ist?
@Johannes Ja, wenn man es in der Rheinenfolge macht, funktioniert es mit dem highlighting des LatexCodes. Erst einfügen dann markieren und STRG+k.
@esdd Wenn mehrere Unterabschnitte auf einer Seite beginnen, dann würde ich sagen, dass der letzte oben stehen sollte - von mir aus aber auch der erste. Wenn kein U-Abschnitt auf einer Seite ist, dann sollte der letzte aktuelle U-Abschnitt angezeigt werden, es sei denn, es wurde ein neues Kapitel gestarten, das noch keinen U-Abschnitt hat. In dem Fall würde ich besser gar nichts anzeigen. -Sehr gute frage :)
@bor44
article
hat keine Kapitel.@Ijon Tichy Das heißt ich müsste auf scrartcl umsteigen und anstatt fancyhdr scrlayer-scrpage nutzen? Das ist von mir aus auch möglich.
Auch
scrartcl
hat keine Kapitel. Nimm dann stattdessenscrreprt
(siehe auch die Antwort von @Tichy.