ich arbeite gerade ein wenig mit Latex und habe mich gefragt, wie ich
es Latex mitteilen kann, dass es den höchsten Gliederungspunkt einer
Seite ausgibt.
z.B.:
\section{blub}
\subsection{Noch was...}
Hier soll auf der aktuellen Seite nun die \section in der Kopfzeile
stehen. Ist jedoch auf der nächsten Seite keine neue \section, so soll
nun die \subsection in der Kopfzeile erscheinen.
Sollte nun auf einer folgenden Seite eine weitere Gliederungsebene
(z.B. subsubsection) verwendet werden, dann soll eben diese in der
Kopfzeile stehen.
Ich bedanke mich im voraus für die Hilfe!
> Hier soll auf der aktuellen Seite nun die \section in der Kopfzeile
> stehen. Ist jedoch auf der nächsten Seite keine neue \section, so soll
> nun die \subsection in der Kopfzeile erscheinen.
>
> Sollte nun auf einer folgenden Seite eine weitere Gliederungsebene
> (z.B. subsubsection) verwendet werden, dann soll eben diese in der
> Kopfzeile stehen.
Sicher, dass Du das willst, so wie beschrieben? Das führt meiner Ansicht
nach nur zu Verwirrung.
Ansonsten so wegen grundsätzlicher Anpassung der Kopfzeilen mit diesen
automatischen Titeln: das mache ich mit scrpage2 aus KOMA-Script, schau
da mal in die Doku und such nach »automatische Kolumnentitel«.
Gruß
Alex
--
***** http://blog.antiblau.de/ *****************************
GnuPG-FP: 02C8 A590 7FE5 CA5F 3601 D1D5 8FBA 7744 CC87 10D0
> Hallo,
>
> ich arbeite gerade ein wenig mit Latex und habe mich gefragt, wie ich
> es Latex mitteilen kann, dass es den h�chsten Gliederungspunkt einer
> Seite ausgibt.
>
> z.B.:
>
> \section{blub}
> \subsection{Noch was...}
>
> Hier soll auf der aktuellen Seite nun die \section in der Kopfzeile
> stehen. Ist jedoch auf der n�chsten Seite keine neue \section, so soll
> nun die \subsection in der Kopfzeile erscheinen.
>
> Sollte nun auf einer folgenden Seite eine weitere Gliederungsebene
> (z.B. subsubsection) verwendet werden, dann soll eben diese in der
> Kopfzeile stehen.
Das wird so einfach nicht sein. Die Markierungbefehle k�nnen immer
nur auf die erste oder letzte Markierung einer Seite zugreifen. D.h.
wenn auf der Seite diese Befehle sind:
\subsection
\section
\subsection
dann ist die \section erstmal unsichtbar.
Du m�sstest also neue \mark-Register einrichten, und in den
Kopfzeilen die Inhalte vergleichen.
Wenn es dir reicht, dass immer die erste �berschrift einer Seite in
der Kopfzeile steht: Dann m�ssen alle Mark-Befehle der drei
�berschriften einen \markright-Befehl ausf�hren und in der Kopfzeile
ben�tzt du dann \rightmark. -> Dokumentation von fancyhdr oder
scrpage2.
--
Ulrike Fischer
Hallo,
das ist nicht gerade trivial, du musst den Markenmechanismus von LaTeX
umgehen. Hier ist ein Beispiel:
\documentclass[ngerman, paper=a5, fontsize=12pt, pagesize=auto]{scrartcl}
\usepackage{babel}
\usepackage{blindtext}
\usepackage{etoolbox}
\usepackage{scrpage2}
\pagestyle{scrheadings}
\manualmark
\chead{\printmark}
\newcommand*{\markbaseindex}{}
\chardef\markbaseindex=13
\newcommand*{\markfirstindex}{}
\chardef\markfirstindex=10
\newcommand*{\marklastindex}{}
\chardef\marklastindex=20
\newrobustcmd*{\printmark}{%
\findmark\markfirstindex
\relax
}
\newcommand*{\findmark}[1]{%
\if&\firstmarks#1&%
\expandafter\findmark\expandafter{\number\numexpr#1+1\expandafter}%
\else
\firstmarks#1%
\fi
}
\makeatletter
\newrobustcmd*{\emitmark}[2]{%
\begingroup
\let\protect\@unexpandable@protect
\@tempcnta=\numexpr\markbaseindex+\csuse{#1level}%
\marks\@tempcnta{#2}%
\marks\@tempcnta{}%
\marks\marklastindex{#2}%
\endgroup
}
\makeatother
\def\do#1{\csdef{#1mark}{\emitmark{#1}}}
\docsvlist{section,subsection,subsubsection}
\begin{document}
\blinddocument
\Blinddocument
\end{document}
--
Replace “READ-MY-SIG” by “tcalveu” to answer by mail.
Philipp Stephani schrieb:
> \documentclass[ngerman, paper=a5, fontsize=12pt, pagesize=auto]{scrartcl}
>
> \usepackage{babel}
> \usepackage{blindtext}
> \usepackage{etoolbox}
> \usepackage{scrpage2}
>
> \pagestyle{scrheadings}
> \manualmark
> \chead{\printmark}
\newcommand*{\markcount}{}
\chardef\markcount=16
\newcommand*{\markbaseoffset}{}
\chardef\markbaseoffset=3
\newcommand*{\markfirstindex}{}
\globmarksblk\markfirstindex\markcount
\newcommand*{\markbaseindex}{}
\chardef\markbaseindex=\numexpr\markfirstindex+\markbaseoffset\relax
\newcommand*{\marklastindex}{}
\chardef\marklastindex=\numexpr\markfirstindex+\markcount-1\relax