Wie setzt man item-Nummern in eine Kopfzeile?

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


hellm
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: So 17. Nov 2013, 10:08

Beitrag von hellm »

Verzeihung für Missachtung von Regeln meinerseits. Ich wollte keinem damit Unannehmlichkeiten bereiten.


Ich habe diesen Code
\makeatletter
\newcommand*{\righttopmark}{\expandafter\@rightmark\topmark\@empty\@empty}
\makeatother
in den Header hineingefügt.
Jede weitere Datei sieht folgendermaßen aus
\chapter[chapter]{chapter}

\begin{enumerate}
  \section[section]{section}
  \item \righttopmark Mein Text.\\
  \item \righttopmark Mein Text.\\
  \item \righttopmark Mein Text.\\
\end{enumerate} 
Diese Variante geht leider nicht und zwar deswegen, weil in der Kopfzeile die Aufzählung nicht auftaucht.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Vielleicht wäre das ein Ansatz:
\documentclass{scrbook} 

\usepackage{needspace}

\newcommand\sitem{\item\markboth{\theenumi}{\theenumi}}
\newcommand\pitem{%
  \markboth{\theenumi}{\theenumi}\needspace{\baselineskip}\item\markboth{\theenumi}{\theenumi}} 

\usepackage[manualmark,headsepline]{scrpage2} 
\clearscrheadfoot 
\ohead[\pagemark]{\pagemark} 
\chead{\rightmark\,--\,\leftmark} 
\ihead{Mein Buch} 
\pagestyle{scrheadings}

\usepackage{blindtext}

\begin{document} 

\chapter[chapter]{chapter} 
\section[section]{section}
\begin{enumerate} 
   \sitem \blindtext
   \pitem \blindtext 
   \pitem \blindtext
   \pitem \blindtext
   \clearpage
   \sitem \blindtext
   \pitem \blindtext
   \pitem \blindtext
   \pitem \blindtext
   \pitem \blindtext
\end{enumerate}
\clearpage
\section[section]{section}
\begin{enumerate} 
   \sitem \blindtext
   \pitem \blindtext 
   \pitem \blindtext
   \pitem \blindtext[2]
   \pitem \blindtext[2]
   \pitem \blindtext[2]
   \pitem \blindtext[3]
   \pitem \blindtext[5]
   \pitem \blindtext
\end{enumerate}
\end{document}
Gruß
Elke

hellm
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: So 17. Nov 2013, 10:08

Beitrag von hellm »

Wenn ich richtig verstanden habe, sind pitem und sitem dasselbe. Ich habe pitem ausgewählt ;) , sie zeigt auf der nächsten Seite das angefangene item von der letzten.

Dieses Code-Teil habe ich gelöscht:
\newcommand\sitem{\item\markboth{\theenumi}{\theenumi}} 
Aus diesem:
\newcommand\pitem{%
  \markboth{\theenumi}{\theenumi}\needspace{\baselineskip}\item\markboth{\theenumi}{\theenumi}} 
habe ich \needspace{\baselineskip} gelöscht. Es hat das Problem gelöst, dass einige \section am der Seite anfingen und deren Text nur auf der nächsten Seite auftauchte.

Vielen Dank. Eine sehr schöne Lösung! Die habe ich eingesetzt.

Noch eine Frage

Wie kriegt man die Seitenzahlen von Kapitelseiten weg?

Hier ist der Header von meiner Datei:

\documentclass[11pt,a4paper,openany]{book}

\usepackage[T2A]{fontenc}
\usepackage[cp1251]{inputenc}
\usepackage[russian]{babel}

\textwidth=15cm
\usepackage[left = 2cm, right = 2cm, top = 2cm, bottom = 2cm]{geometry}
\usepackage{calc}

\usepackage{indentfirst}

\usepackage{colortbl}
\usepackage{xcolor}
\setcounter{tocdepth}{4}    %%where n is the level, starting with 0 (chapters only) -> depth of content
\usepackage{enumerate}

\renewcommand{\theenumii}{\asbuk{enumii}}
\usepackage{needspace}

\newcommand\pitem{\markboth{\theenumi}{\theenumi}\item\markboth{\theenumi}{\theenumi}}

\usepackage[manualmark,headsepline]{scrpage2}
\clearscrheadfoot
\ohead[\pagemark]{\pagemark}
\chead{\rightmark\,--\,\leftmark}
\ihead{Mein Buch}
\pagestyle{scrheadings}

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Wenn du auf den Kapitelseiten keine Seitenzahlen haben möchtest, dann lass das optionale Argument von \ohead weg. Besserwisser hat dir übrigens den Link zur Doku von scrpage2 mit angegeben.

Zwischen den von mir definierten \sitem und \pitem ist sehr wohl ein Unterschied. \sitem benötigst du aber nur, wenn du irgendwo ein \clearpage einfügst oder auf einer Seite, auf der kein neues Kapitel beginnt, eine neue Aufzählung startest.

Das \needspace{\baselineskip} habe ich eingefügt, weil die Angabe in der Kopfzeile nicht mehr stimmt, wenn ein \item ganz oben auf einer neuen Seite landet. Ohne das \needspace kann sonst die Erhöhung des labelenumi Zählers und das zweite \markboth noch auf der alten Seite ausgeführt werden, weshalb dieses item noch mit in der Kopfzeile der alten Seite steht, obwohl es erst auf der nächste beginnt.

Gruß
Elke

hellm
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: So 17. Nov 2013, 10:08

Beitrag von hellm »

Das \needspace{\baselineskip} habe ich eingefügt, weil die Angabe in der Kopfzeile nicht mehr stimmt, wenn ein \item ganz oben auf einer neuen Seite landet. Ohne das \needspace kann sonst die Erhöhung des labelenumi Zählers und das zweite \markboth noch auf der alten Seite ausgeführt werden, weshalb dieses item noch mit in der Kopfzeile der alten Seite steht, obwohl es erst auf der nächste beginnt.
Der Sectionname steht auf der Seite x und der Text vom section auf x+1. Wie kann man die auf eine Seite bringen? Entweder ein Teil vom Text auf x+1 oder section rüber?

Besserwisser

Beitrag von Besserwisser »

Hast Du direkt nach der Überschrift eine Liste, wie in Elkes Beispiel? Dann kann das tatsächlich passieren. Da ohnehin bereits \needspace verwendet wird, kann man eine entsprechende Anweisung natürlich auch einfach vor der Überschrift einfügen. Ansonsten kann man am Anfang der Liste auch die penalties anpassen. Ohne VM zum Testen, will bin ich mir aber zu unsicher, an welcher Stelle man genau, welchen Wert ändern sollte.

Antworten