Mit

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\makeatletter
\newcommand{\CurrentTOCentry}{\@currenttocentry}
\makeatother
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

lese ich den aktuellen toc-Eintrag aus. Ich bräuchte sowas wie \@currentchapterentry und \@currentsectionentry um die aktuellen section- und chapter-Einträge auszulesen.

Gibt es sowas?

alt text

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass{scrreprt}
\begin{document}
\makeatletter
\newcommand{\CurrentTOCentry}{\@currenttocentry}
\makeatother
\chapter[short]{long}
CurrentTOCentry: \CurrentTOCentry
\section{Abschnitt}
CurrentTOCentry: \CurrentTOCentry
\subsection{Unterabschnitt}
CurrentTOCentry: \CurrentTOCentry
\chapter{Long}
CurrentTOCentry: \CurrentTOCentry
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

gefragt 31 Mai '19, 10:11

cis's gravatar image

cis
9.6k103460491
Akzeptiert-Rate: 29%

bearbeitet 31 Mai '19, 10:12

2

Schlechte Idee. Schon die Verwendung von \@currenttocentry ist ein übler Hack mit Interna, von denen dir niemand garantieren wird, dass das unter allen Umständen funktionieren wird. Ich vermute fast, dass du das für den Seitenstil verwenden willst. Dort wird es wegen der asynchronen Ausgabe ohnehin nicht funktionieren. Deshalb gibt es den Mark-Mechanismus, der auf LaTeX-Ebene durch \markboth, \markright, ggf. \markleft sowie \chaptermark, \sectionmark etc. und \leftmark, \rightmark ggf. \headmark, \lefttopmark etc. repräsentiert ist. Näheres in der KOMA-Script-Anleitung.

(31 Mai '19, 11:03) gast3

Wofür benötigst Du denn die TOC(so steht es im Titel der Frage)-Einträge von Kapiteln und Abschnitten außerhalb vom Inhaltsverzeichnis? Für mich hört sich das sehr nach einem XY-Problem an.

(01 Jun '19, 01:31) esdd

Ja natürlisch... Das war, weil ich das hier https://texwelt.de/wissen/fragen/24914/koma-script-restliches-seitenlayout-bei-kenn-nummern-als-layout
einsetzen wollten. Allerdings ist es mir noch lieber, wenn es ohne das geht.

(01 Jun '19, 01:42) cis

Wie dem auch sei, das kann man auch ganz generell brauchen. Das hatte mich vor Jahren schonmal ganz allgemein interessiert, weil ich ein ref-Kommando bauen wollte, das den Titel zitiert. Ich wüsste also nicht, warum es wichtig ist, ob die Frage nur Teil eines größeren Problem ist.

(01 Jun '19, 13:12) cis

Zitieren der Titel usw. scheint alles mit dem Paket zref zu gehen. Wie das, rein zufällig gefundene, Beispiel zref-example.tex zeigt.

(17 Jun '19, 00:59) cis

An die Einträge ins Inhaltsverzeichnis für die Gliederungsebenen chapter und section kommt man beispielsweise durch Patchen von \addchaptertocentry bzw. \addsectiontocentry.

Code, hier editierbar zum Übersetzen:
\documentclass{scrreprt}
% Sicherstellen, dass Anweisungen neu sind
\newcommand*\currentchaptertocentry{}
\newcommand*\currentsectiontocentry{}
\usepackage{xpatch}
% Speichern der aktuellen TOC-Einträge für Kapitel bzw. Abschnitte
\xpretocmd\addchaptertocentry
{\xdef\currentchaptertocentry{#2}}{}{}
\xpretocmd\addsectiontocentry
{\xdef\currentsectiontocentry{#2}}{}{}
\newcommand\test{
currentchaptertocentry: \currentchaptertocentry\\
currentsectiontocentry:\currentsectiontocentry
}
\begin{document}
\chapter[anderer TOC-Eintrag]{Kapitel}
\test
\section{Abschnitt}
\test
\addchap*{Kapitel ohne Nummer und ohne TOC-Eintrag}
\test
\addsec{Abschnitt ohne Nummer mit TOC-Eintrag}
\test
\chapter{Kapitel}
\test
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Dabei fällt sofort auf, dass bei Kapiteln ohne TOC-Eintrag (\addchap* oder \chapter*) der letzte Eintrag eines Kapitels weiter in \currentchaptertocentry gespeichert ist. Außerdem bleibt ein in \currentsectiontocentry gespeicherter Abschnitts-TOC-Eintrag so lange erhalten, bis eine andere Abschnittsüberschrift einen neuen Eintrag ins Inhaltsverzeichnis erzeugt. Folgen also beispielsweise auf ein Kapitel mit Abschnitten weitere ohne, ist \currentsectiontocentry auch in diesen nicht leer.

Das lässt sich zwar mit

Code, hier editierbar zum Übersetzen:
% "Leeren" der Anweisungen vor neuen Kapiteln und Abschnitten
\xpretocmd\chapter
{\xdef\currentchaptertocentry{}%
\xdef\currentsectiontocentry{}%
}{}{}
\xpretocmd\section
{\xdef\currentsectiontocentry{}}{}{}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ändern, aber auch dann gilt der Hinweis, dass sich diese Anweisungen wegen der asynchronen Ausgabe nicht für den Seitenstil nutzen lassen.

Permanenter link

beantwortet 02 Jun '19, 18:27

esdd's gravatar image

esdd
17.8k304257
Akzeptiert-Rate: 62%

Lass dir nicht von irgendwelchen Schlaubergern Bange mache. Man kann das mit Hilfe von nameref ganz einfach selbst basteln:

`\documentclass[headings=optiontotoc]{scrreprt}
\usepackage{nameref}
\newcounter{label}
\newcommand{\autolabel}{\stepcounter{label}\label{label\thelabel}}
\newcommand{\CurrentName}{\nameref{label\thelabel}}
\begin{document}
\makeatletter
\newcommand{\CurrentTOCentry}{\@currenttocentry}
\makeatother
\chapter[tocentry=short,reference=long]{long}\autolabel
CurrentTOCentry: \CurrentTOCentry\\
CurrentName: \CurrentName
\section{Abschnitt}\autolabel
CurrentTOCentry: \CurrentTOCentry\\
CurrentName: \CurrentName
\subsection{Unterabschnitt}\autolabel
CurrentTOCentry: \CurrentTOCentry\\
CurrentName: \CurrentName

\chapter{Long}\autolabel
CurrentTOCentry: \CurrentTOCentry\\
CurrentName: \CurrentName
\end{document}`

Permanenter link

beantwortet 31 Mai '19, 11:48

user49915's gravatar image

user49915
362
Akzeptiert-Rate: 33%

bearbeitet 31 Mai '19, 11:53

Ich habe gesehen, es gibt übrigens auch eine Möglichkeit nameref zu verwenden, ohne die Titel einzeln zu labeln. Das wurde bei mir aber vom Ergebnis her, wie der 'Hack' mit dem Komabefehl. Daher ist vermutlich das mit dem autolabel ein ganz praktischer Trick (den man vermutlich noch in die Kommandos chapter, section reinnehmen könnte).

(31 Mai '19, 15:30) cis
Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×132
×2

gestellte Frage: 31 Mai '19, 10:11

Frage wurde gesehen: 5,972 Mal

zuletzt geändert: 17 Jun '19, 00:59