PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dynamische automark Funktion mit scrpage2



TeacherMC
01-08-2009, 12:38
Hallo zusammen,

ich erzeuge meine Kofpzeilen mit scrpage2 aus dem KOMA Skript und nutze die Funktion.
\automark[subsection]{subsection} .

Wenn jetzt auf einer Seite nur eine \section ohne \subsection vorkommt, soll die \section in der Kopfzeile stehen.
Im Prinzip bräuchte ich eine Verzweigung,
die Überprüft, ob es auf der Seite eine Subsection gibt.
Wenn Ja, zeige sie in der Kopfzeile,
wenn nein, zeige die Section in der Kopfzeile.

Minibeispiel:

\documentclass[%
\documentclass[%
%draft, %Entwurfsmodus
final,
DIVcalc,
%twocolumn,
%twoside,% Doppelseitig
headsepline,% Linie nach Kopfzeile
nochapterprefix,
pagesize,
]{scrbook}
%
%KOPFZEILE
\usepackage[headsepline,plainheadsepline]{scrpage2}
\usepackage{ngerman}
\pagestyle{scrheadings}
\automark[subsection]{subsection} %Setze subsections links/rechts in die Kopfzeile
\ohead{\leftmark} %bei mehreren subsections, nimm die letzte
\renewcommand{\chapterpagestyle}{scrheadings} %übernehme scrheadings auch bei chapter-seiten

\begin{document}
\chapter{Grundlagen der Programmentwicklung}
\section{a}
\subsection{a1}
\subsection{a2}
\newpage
\section{b}
\end{document}


Gruß

Nico

mechanicus
01-08-2009, 12:50
Hallo,

wir hatten eben noch ein anderes Problem bei dir. Hier hattest du auf zweiseitiges Layout mit section in der Kopfzeile abgespielt. Jetzt kommt wieder was anderes. Bevor wir uns jetzt die Mühe machen, jedes Problem einzeln zu lösen, wäre es doch sinnvoller, du sagst uns einmal, was genau rauskommen soll.

Gruß
Marco

TeacherMC
01-08-2009, 13:03
Hallo,

wir hatten eben noch ein anderes Problem bei dir. Hier hattest du auf zweiseitiges Layout mit section in der Kopfzeile abgespielt. Jetzt kommt wieder was anderes. Bevor wir uns jetzt die Mühe machen, jedes Problem einzeln zu lösen, wäre es doch sinnvoller, du sagst uns einmal, was genau rauskommen soll.

Gruß
Marco

Hallo Marco,

ich hab das nur rausgenommen, um ein Minimalbeispiel zu bauen.
Es geht immer noch um dasselbe Buch und Ihr habt mir ja auch vorher prima geholfen. Danke nochmal an der Stelle.
Im Prinzip brauche ich eine Latex Vorlage für ein Fachbuch des Europa Verlages.
Ich hab sie fast fertig, bis eben auf ein paar Kleinigkeiten,
welche ich hier einzeln poste.

Gruß

Nico

TeacherMC
02-08-2009, 14:52
Ich habe mit jetzt eine Lösung zusammengebastelt, die funktioniert.
Allerdings weiß ich nicht wirklich, ob sich damit die Zehennägel der Latex Profis hier aufrollen, da ich in Latex noch ein Anfänger bin.

Lösungsvorschlag:

\documentclass[%
%draft, %Entwurfsmodus
final,
DIVcalc,
%twocolumn,
%twoside,% Doppelseitig
headsepline,% Linie nach Kopfzeile
nochapterprefix,
pagesize,
]{scrbook}
%
%KOPFZEILE
\usepackage[headsepline,plainheadsepline]{scrpage2}
\usepackage{ngerman}
\pagestyle{scrheadings}

%übernehme scrheadings auch bei chapter-seiten
\renewcommand{\chapterpagestyle}{scrheadings}

\renewcommand{\sectionmark}[1]{\markleft{\rmfamily\upshape \thesection{} #1}{}}
\renewcommand{\subsectionmark}[1]{\markleft{\rmfamily\upshape \thesubsection{} #1}{}}

\lehead{\leftmark}
\lohead{\leftmark}
\ofoot{}

\begin{document}
\chapter{Grundlagen der Programmentwicklung}
\section{a}
%\subsection{a1}
%\subsection{a2}
\newpage
\section{b}
\subsection{b1}
\section{c}


Software lässt sich nach verschiedenen
\end{document}

Gruß

Nico

u_fischer
02-08-2009, 16:10
Da ist nichts gegen einzuwenden. Du musst nur prüfen, ob du das Gewünschte erhältst, wenn mehrere \section/\subsections auf einer Seite sind. Willst du dann die erste oder die letzte?

TeacherMC
03-08-2009, 08:00
Da ist nichts gegen einzuwenden. Du musst nur prüfen, ob du das Gewünschte erhältst, wenn mehrere \section/\subsections auf einer Seite sind. Willst du dann die erste oder die letzte?

Da bin ich aber froh.:D

Ich brauch immer die jeweils letzte subsection / section.
Das hat in meinem Minibeispiel soweit funktioniert.


Gruß

Nico

u_fischer
03-08-2009, 09:08
Dann ist \leftmark richtig.

Btw: Ich würde die Schriftbefehle aus dem \markleft-Befehlen in \lehead etc verschieben. Es funktioniert zwar, aber man sollte sich nicht angewöhnen, zuviel in \mark-Befehle zu stecken. Da der Inhalt ja durch die Gegend transportiert wird, kann da schnell mal ein Befehl zerbrechen.