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

Wie setzt man item-Nummern in eine Kopfzeile?

Beitrag von hellm »

Genauer gesagt, soll in der Kopfzeile von jeder Seite der "erste item der Liste" minus "letzer item der Liste" stehen, z.B.:
6 - 8
Wenn aber nur die Hälfte vom item auf einer Seite ist, soll deren Nummer entsprechend in alle Kopfzeilen, wo dieser item vorkommt.

Wie kann man es realisieren?

Besserwisser

Beitrag von Besserwisser »

Mit \markboth bei den items der Liste und \leftmark und \rightmark im Kopf. Näheres dazu sollte in jeder ausführlichen LaTeX-Einführung zu finden sein. In der KOMA-Script-Anleitung ist auch ein wenig und im KOMA-Script-Buch noch ein wenig mehr dazu zu finden.

Wenn das nicht reicht, solltest Du Dich mit dem mark-Mechanismus von TeX und e-TeX näher beschäftigen. In jedem Fall solltest Du die allgemeinen, wichtigen Hinweise und Vorabhilfen gründlich durchlesen. Das könnte Dir insofern unmittelbar helfen, als Du eventuell nicht nur allgemeine Antworten, sondern eher spezifische Codevorschläge erhältst.

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

Beitrag von hellm »

Es hat mich leider nicht weiter gebracht. Ich habe mehr oder weniger kapiert, wie man mit Kopf/Fusszeile umgeht. Wie man aber eine Spanne von Listennummer hinein plaziert, habe ich nicht begriffen.

Besserwisser

Beitrag von Besserwisser »

Das macht letztlich der Unterschied zwischen \leftmark und \rightmark. Probier es aus. Und wie gesagt, wenn das nicht genügt, solltest Du die allgemeinen, wichtigen Hinweise und Vorabhilfen lesen und beachten!

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

Beitrag von hellm »

Gemeint wäre, dass das Buch in der Kopfzeile so aussehen würde:
10_________________6 - 8_________________Mein Buch

Und die nächste Seite:

Mein Buch________________9 - 11_________________11

(statt Unterstrich haut auch Space hin)

Hier ist meine Datei, also kein ausgedachtes Beispiel:
\documentclass[11pt,a4paper]{book}

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

\renewcommand{\theenumii}{\asbuk{enumii}}

\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}


\begin{document}
    \setcounter{chapter}{0}
    \setcounter{section}{1}

    \tableofcontents
    \include{ch_from_translator}
    \include{ch1}
    \include{ch2}
    \include{ch3}
    \include{ch4}
    .
    .
    .
    \include{ch41}
\end{document}
Die eingefügten Dateien "ch#.tex" sehen so aus:
\chapter[chapter]{chapter}

\begin{enumerate}
  \section[section]{section}
  \item Mein Text.\\
  \item Mein Text.\\
  \item Mein Text.\\
\end{enumerate}

Besserwisser

Beitrag von Besserwisser »

Davon abgesehen, dass das kein lauffähiges VM (mit Anleitung zur Erstellung nicht nur für Anfänger) ist, sehe ich nicht, dass Du den Hinweis bisher im geringsten umgesetzt hättest. Nicht einmal ein Paket wie scrpage2 oder fancyhdr lädst Du, um einen Kopf zu definieren, in dem dann wie erwähnt \leftmark und \rightmark verwendet wird. Auch sehe ich keine einzige \markboth-Anweisung in Deinem Beispiel.

Eine (in Ermangelung eines VM (mit Anleitung zur Erstellung nicht nur für Anfänger) ungetestete Kopfdefinition könnte beispielsweise so aussehen:
\usepackage[manualmark,headsepline]{scrpage2}
\clearscrheadfoot
\ohead[\pagemark]{\pagemark}
\chead{\rightmark--\leftmark}
\ihead{Mein Buch}
\pagestyle{scrheadings}
Und der Aufruf von \markboth bei \item einfach:
\item \markboth{\theenumi}{\theenumi}Mein Text
Besser wäre natürlich, \labelenumi so umzudefinieren, dass es nicht nur ein Label erzeugt, sondern \markboth gleich mit aufruft, also beispielsweise:
\renewcommand*{\labelenumi}{\theenumi.\markboth{\theenumi}{\theenumi}}
Wie gesagt, das ist alles ungetestet. Du solltest die Dinge, die man Dir mit einiger Mühe heraussucht, auch lesen und beachten!

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

Beitrag von hellm »

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?

Noch so einer

Beitrag von Noch so einer »

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:

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

Beitrag von hellm »

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.

Besserwisser

Beitrag von Besserwisser »

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

Antworten