Ich weiß, wie ich das Problem händisch lösen kann, aber das vergesse ich
gerne mal. Gibt es eine allgmeine Lösung der Art:
if (subsection == NULL) ihead = section else ihead = subsection ?
Dieter
% Beispiel
\documentclass{scrartcl}
\usepackage{scrpage2}
\usepackage{blindtext}
\pagestyle{scrheadings}
\automark[subsection]{subsection}
\clearscrheadfoot
\ohead{\headmark}
\ofoot[\pagemark]{\pagemark}
\ifoot{Das ist von mir}
\begin{document}
\section{First Section}
\subsection{Erste Unter}
\blindtext
\subsection{Zweite Unter}
\blindtext
\newpage
\section{Zusammenfassung}
Hier steht im ihead \emph{Zweite Unter}. Wuerde aber gerne immer dann
die Section hier haben, wenn es keine subsection gibt.
\end{document}
> Gibt es eine allgmeine Lösung der Art:
>
> if (subsection == NULL) ihead = section else ihead = subsection ?
\documentclass{scrartcl}
\usepackage{scrpage2}
\usepackage{blindtext}
\pagestyle{scrheadings}
\automark{subsection}
\renewcommand*{\sectionmark}[1]{%
\markleft{\ifnum \value{secnumdepth} >0 \sectionmarkformat\fi
#1}}%
\clearscrheadfoot
\ohead{\leftmark}
\ofoot[\pagemark]{\pagemark}
\ifoot{Das ist von mir}
\begin{document}
\blinddocument
\newpage
\section{Zusammenfassung}
Hier steht im ihead \emph{Zusammenfassung}, wie ich das gerne hätte.
\end{document}
Gruß
Markus
--
Gruppenhinweise (auch Minimalbeispiel) --> http://www.latex-einfuehrung.de
Fragen zu LaTeX? --> http://www.dante.de/faq/de-tex-faq/
Fragen zu KOMA-Script? --> Anleitung z. B. auf CTAN (--> FAQ);
--> http://www.komascript.de
So klappt es bei mir...
% (\blindtext, babel)
\documentclass{scrartcl}
\usepackage{scrpage2}
\usepackage{blindtext}
\usepackage[ngerman]{babel}
\pagestyle{scrheadings}
\automark{subsection}
\renewcommand*{\sectionmark}[1]{%
\markleft{\ifnum \value{secnumdepth} >0 \sectionmarkformat\fi
#1}}%
\clearscrheadfoot
\ohead{\leftmark}
\ofoot[\pagemark]{\pagemark}
\ifoot{Das ist von mir}
\begin{document}
\blindtext
\newpage
\section{Zusammenfassung}
Hier steht im ihead \emph{Zusammenfassung}, wie ich das gerne h\"atte.
\end{document}
--
Replace "_" with "-" for proper Email.
Ersetze: "_" mit "-" für eine gültige Emailadresse.
> \renewcommand*{\sectionmark}[1]{%
> \markleft{\ifnum \value{secnumdepth} >0 \sectionmarkformat\fi
> #1}}%
Vielen Dank. Lern' ich nie.
Dieter
> Vielen Dank. Lern' ich nie.
Eigentlich ist das einfach nur die Originaldefinition geklaut. Der Trick
besteht dann aber darin \markright durch \markleft zu ersetzen und auch bei
der Definition der Seite \leftmark statt \headmark (oder \rightmark) zu
verwenden.
\leftmark muss man verwenden, weil \rightmark bei LaTeX mit \firstmark
arbeitet. Das ist die erste Marke, die auf einer Seite gesetzt wird.
\leftmark arbeitet hingegen mit \botmark. Das ist die letzte Marke, die auf
einer Seite gesetzt wird. Wenn man erst einmal so weit mit den Überlegungen
ist, dann liegt es nahe \markright auch noch durch \markleft (gibt es nur
bei scrpage2) zu ersetzen.
bei mir siehts so aus:
%Einrichten der Kopfzeilen
\clearscrplain
\pagestyle{scrheadings}
\ohead{\pagemark}
\ihead{\headmark}
\ofoot{}
und nun habe ich ein "chapter ohne section" und dann bleibt die kopfzeile der rechten seiten leer, es soll aber einfach wieder "kapitelnummer kapitelname" dahin. bei kapiteln mit sections steht da sectionnummer sectionname - das soll auch so bleiben.
vielen dank für hilfen!
> bei mir siehts so aus:
> [...]
schau mal dir die doku zu fancyheader an.
Du kannst es z.B so machen (Eintrag in der praeamble)
\usepackage{fancyhdr}
\fancyhf{} % loeschen aller header und footer
\pagestyle{fancyplain} % empty, plain, fancyplain, headings
%(strich fuer kopf-fusszeile) 0pt = keine, oder auskommentieren
\renewcommand{\headrulewidth}{.7pt} % headspline
\renewcommand{\footrulewidth}{.7pt} % footspline
\renewcommand{\plainheadrulewidth}{.7pt}
\renewcommand{\plainfootrulewidth}{.7pt}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection{}#1}}
\lhead{\sffamily\bfseries{\leftmark}}
\chead{\sffamily\bfseries}
\rhead{\sffamily\bfseries{\thepage}}
\lfoot{\sffamily\bfseries}
\cfoot{\sffamily\bfseries}
\rfoot{\sffamily\bfseries{mein dokument, 2009}}
Das erzeugt eine linie oben und unten mit Kapitelnr. + KapName
oben links und rechts oben die Seitenzahl rechts unten noch
ein text ;-)
Andi
>Ich verwende das KOMA-bundle und ihead, um die Subsection anzeigen >zu lassen. Nun gibt es manchmal Sections, die keine Subsection >haben, und dann wird der falsche ihead angezeigt.
>Ich weiß, wie ich das Problem händisch lösen kann, aber das >vergesse ich gerne mal. Gibt es eine ALLGEMEINE LÖSUNG der Art:
>
>if (subsection == NULL) ihead = section else ihead = subsection ?
nur das ich eben "CHAPTER ohne SECTIONS" an stelle von "SECTIONS ohne SUBSECTIONS" habe.
ich will auf linken seiten oben immer "seitenzahl kapitelnummer kapitelname" stehen haben und auf rechten seiten oben "sectionnummer sectionname seitenzahl" sofern eine section existiert und "kapitelnummer kapitelname seitenzahl" andernfalls. also um mit dieters worten zu sprechen:
if (section == NULL) ihead = chapter else ihead = section
ich hatte gedacht man könnte vielleicht, angelehnt an markus lösung, folgendes verwenden (aber das funktioniert nicht - ich blick da nicht richtig durch):
\automark{section}
\renewcommand*{\chaptermark}[1]{%
\markright{\ifnum \value{secnumdepth} >0 \chaptermarkformat\fi
#1}}%
\clearscrheadfoot
\ohead{\pagemark}
\ihead{\rightmark}
\ofoot{}
momentan verwende ich:
\documentclass[
10pt,
a4,
cleardoubleempty,
headinclude,
normalheadings,
tablecaptionabove,
pointlessnumbers
]{scrbook}
...
...
\clearscrplain
\pagestyle{scrheadings}
\ohead{\pagemark}
\ihead{\headmark}
\ofoot{}
...
...
aber da bleibt eben der kopf auf rechten seiten leer, wenn keine section vorhanden ist.
danke für eure hilfe!
Eine Idee, leider ohne Code (dazu kenne ich mich bei den Seitenrand-
einstellungen von KOMA-Script zu schlecht aus): Versuche doch mal, im
\chapter-Befehl den linken und den rechten Seitenrand zu setzen. Die
erste auftretende \section müsste den rechten Rand ja wieder über-
schreiben.
--
Replace “READ-MY-SIG” by “tcalveu” to answer by mail.
> erstmal danke fuer die schnelle antwort! mit fancyhdr kriegt man
> es vermutlich hin. aber wie gesagt, ich suche sowas im geiste von
> dieter menne (siehe oben):
Wo oben?
>> Ich verwende das KOMA-bundle und ihead, um die Subsection
>> anzeigen zu lassen. Nun gibt es manchmal Sections, die keine
>> Subsection haben, und dann wird der falsche ihead angezeigt.
>> Ich weiß, wie ich das Problem händisch lösen kann, aber das
>> vergesse ich gerne mal. Gibt es eine ALLGEMEINE LÖSUNG der Art:
Mache ein kurzes, prägnantes, vollständiges, lauffähiges Beispiel,
das dein Problem demonstriert und das man zum Testen von Lösungen
verwenden kann. Neue Seiten kannst mit \newpage erzeugen. Schreibe
auf die jeweiligen Seiten, was im Kopf erscheinen soll.
--
Ulrike Fischer
\usepackage{scrpage2,ngerman}
\clearscrplain
\pagestyle{scrheadings}
\ohead{\pagemark}
\ihead{\headmark}
\ofoot{}
\begin{document}
\chapter{Ein Kapitel mit Section}
\section{Bla}
\newpage
Hier steht auf linken Seiten in der Kopfzeile die Seitenzahl sowie
Kapitelnummer und Kapitelname.
\newpage
Auf rechten Seiten steht Seitenzahl sowie Sectionnummer und Sectionname.
\newpage
So soll es auch sein.
\chapter{Ein Kapitel ohne Section}
\newpage
Hier steht auf linken Seiten in der Kopfzeile die Seitenzahl sowie
Kapitelnummer und Kapitelname.
\newpage
Auf rechten Seiten steht leider nix! Bei Kapiteln ohne sections h\"atte ich
da gerne einfach wieder
``Seitenzahl sowie Kapitelnummer und Kapitelname''.
Das bekomme ich manuell auch hin und zwar wenn ich in den Kapiteln ohne
Sections am Anfang
$\backslash$markboth\{$\backslash$thechapter$\sim\sim$Kapitelname\}\{$\backslash$thechapter$\sim\sim$Kapitelname\}
hinschreibe. Siehe n\"achstes Kapitel...
\chapter{Ein Kapitel ohne Section und korrekter Kopfzeile}
\markboth{\thechapter~~Ein Kapitel ohne Section und korrekter
Kopfzeile}{\thechapter~~Ein Kapitel ohne Section und korrekter Kopfzeile}
\newpage
bla
\newpage
blubb
\newpage
bla
\newpage
Ich h\"atte nur gerne eine automatische Variante a la:\\if (section == NULL)
ihead = chapter else ihead = section\\
Im thread ``KOMA, (sub)section und ihead'' wird das Problem f\"ur sections
ohne subsections besprochen mit der L\"osung:\\
$\backslash$pagestyle\{scrheadings\}\\
$\backslash$automark\{subsection\}\\
$\backslash$renewcommand*{$\backslash$sectionmark\}[1]\{\\
$\backslash$markleft\{$\backslash$ifnum
$\backslash$value\{secnumdepth\} $>$0
$\backslash$sectionmarkformat$\backslash$fi\\
\#1\}\}\\
$\backslash$clearscrheadfoot\\
$\backslash$ohead\{$\backslash$leftmark\}\\
$\backslash$ofoot[$\backslash$pagemark]\{$\backslash$pagemark\}\\
$\backslash$ifoot\{Das ist von mir\}\\
Das h\"atte ich nun gerne auf meine Situation \"ubertragen.\\
Vielen Dank f\"ur Hilfe!
\end{document}
> \chapter{Ein Kapitel ohne Section}
> \newpage
> Hier steht auf linken Seiten in der Kopfzeile die Seitenzahl sowie
> Kapitelnummer und Kapitelname.
> \newpage
> Auf rechten Seiten steht leider nix! Bei Kapiteln ohne sections h\"atte ich
> da gerne einfach wieder
> ``Seitenzahl sowie Kapitelnummer und Kapitelname''.
Klingt nach ein Fall von horror vacui. Ich halte das nicht für eine
gute Idee. Denk daran, dass du ein zweiseitiges Dokument erzeugst.
Wenn das gedruckt und gebunden wird, liegen die beiden Seiten immer
nebeneinander. Die Wiederholung der Kapitelnummer ist unnötig und
sieht eher albern aus.
> Das bekomme ich manuell auch hin und zwar wenn ich in den Kapiteln ohne
> Sections am Anfang
> $\backslash$markboth\{$\backslash$thechapter$\sim\sim$Kapitelname\}\{$\backslash$thechapter$\sim\sim$Kapitelname\}
Du solltest mal den Befehl \verb nachschauen.
> hinschreibe. Siehe n\"achstes Kapitel...
Du musst einfach dafür sorgen, dass \chaptermark deinen \markboth
ausführt:
\makeatletter
\renewcommand\chaptermark[1]{%
\markboth{\ifnum \c@secnumdepth >\m@ne
\if@mainmatter \chaptermarkformat \fi \fi #1}
{\ifnum \c@secnumdepth >\m@ne
\if@mainmatter \chaptermarkformat \fi \fi #1}}
\makeatother
--
Ulrike Fischer
>> Du musst einfach dafür sorgen, dass \chaptermark deinen \markboth
>> ausführt:
>
> Das muss man aber erstmal raffen ;-)
>
>> \makeatletter
>> \renewcommand\chaptermark[1]{%
>> \markboth{\ifnum \c@secnumdepth >\m@ne
>> \if@mainmatter \chaptermarkformat \fi \fi #1}
>> {\ifnum \c@secnumdepth >\m@ne
>> \if@mainmatter \chaptermarkformat \fi \fi #1}}
>> \makeatother
>
> jo, geht! vielen dank! ich versuch mal nachzuvollziehen, was da
> passiert. wenn du magst, würde ich mich über eine beschreibung oder
> einen hinweis, wo sowas erklärt wird freuen.
Die \if... usw kannst du einfach ignorieren, die habe ich einfach
aus dem entsprechenden KOMA-Befehl kopiert. Die testen auf
Nummerierungstiefe und \mainmatter.
Das wesentliche ist, dass nun
\markboth{Text}{Text} statt \markboth{Text}{} ausgeführt wird.
Dadurch ist die rechte Marke nicht mehr leer.
--
Ulrike Fischer