Wie setzt man item-Nummern in eine Kopfzeile?

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Wie setzt man item-Nummern in eine Kopfzeile?

von Besserwisser » Fr 22. Nov 2013, 08:45

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.

von hellm » Fr 22. Nov 2013, 01:13

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?

von esdd » Do 21. Nov 2013, 09:10

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

von hellm » Do 21. Nov 2013, 00:03

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}

von esdd » Mi 20. Nov 2013, 16:58

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

von hellm » Mi 20. Nov 2013, 15:32

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.

von Besserwisser » Mi 20. Nov 2013, 15:13

Und wo ist das vollständige Minimalbeispiel für das Problem? Das wurde nun schon mehrfach nachgefragt, von Dir aber bisher nicht erbracht.

von hellm » Mi 20. Nov 2013, 12:22

Diese Variante geht leider nicht und zwar deswegen, weil in der Kopfzeile die Aufzählung nicht auftaucht.
Auf den mark-Mechanismus von TeX wurdest Du ja ebenso wie auf die VM-Anleitung bereits hingewiesen … Rolling Eyes
Ich frage, weil nicht verstehe.

von Noch so einer » Mi 20. Nov 2013, 08:54

Man könnte eventuell eine Marke verwenden, die statt auf \firstmark auf \topmark basiert, also etwas wie
\makeatletter
\newcommand*{\righttopmark}{\expandafter\@rightmark\topmark\@empty\@empty}
\makeatother
Auf den mark-Mechanismus von TeX wurdest Du ja ebenso wie auf die VM-Anleitung bereits hingewiesen … :roll:

von hellm » Mi 20. Nov 2013, 00:23

Es läuft. Danke. Genauso wie ich es mir vorgestellt habe.

Diese Zeile wäre besser, finde ich auch:
\renewcommand*{\labelenumi}{\theenumi.\markboth{\theenumi}{\theenumi}}
Sie funktioniert aber so, dass die Numern für \item nochmal auftachen:

Eingabe
\item \labelenumi mein Text
Ausgabe
15. 15. mein Text
Diese Variante
\item \markboth{\theenumi}{\theenumi} mein Text
liefert sehr gute Ergebnisse! Keine verdoppelte Nummer, die \items sind oben in der Kopfzeilenmitte.
Das Problem ist, dass die seitenübergreifende \items nicht berücksichtigt werden. D.h.:
Text Text Text Text Text Text 
10. Text Text Text Text 
11. Text Text Text Text Text Text 
In der Kopfzeile wird 10-11 stehen und nicht 9-11. Ich denke aber, dass man es überlebt. Gäbe doch eine Möglichkeit, es zu realisieren?

Nach oben