Sie sind hier

Überschrift des Inhaltsverzeichnises "manipulieren"

Liebe Community!

Schon wieder habe ich ein Problem. Und zwar folgendes: Ich habe mir \chapter so umdefiniert, dass der erste darauffolgende Buchstabe als \yinipar ausgegeben wird, also als schmuckes Initial. Das ist soweit auch sehr schön, doch sobald ich ein Inhaltsverzeichnis einfügen möchte, verschießt mir das Ganze Skript.

Gibt es eine Möglichkeit, die Überschrift bspw. als \oldchapter (s. Beispiel unten) zu definieren? Google und Konsorten helfen mir hier nicht weiter, da nur Themen in der Art wie "section nicht in Inhaltsverzeichnis aufnehmen" erscheinen.

Vielleicht hat jemand einen Schnipsel Code für mich parat?

Mein Minimalbeispiel sieht wie folgt aus:

\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{ngerman}
\usepackage{yfonts}
 
% Chapter mit Initial
\let\oldchapter\chapter
\renewcommand{\chapter}[1]{\oldchapter{#1}\yinipar}
 
\begin{document}
\tableofcontents
\chapter{Lorem ipsum}
Dolor\marginpar{Testext} sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
 
\section{Lorem ipsum}
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
 
\chapter{Lorem ipsum}
Dolor\marginpar{Testext} sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
 
\section{Lorem ipsum}
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
\end{document}

Vielen Dank bereits im Voraus für jede Hilfe!

Es grüßt,
Matthias

P.S.: Ich bin mir im Klaren darüber, dass das angegeben Beispiel nicht funktioniert. Das liegt eben an diesem Fehler. Kommentiert man das Inhaltsverzeichnis aus, so tritt der Fehler nicht auf.

forum: 

Erneut ein Hallo in die weite Welt!

Nach einiger Recherche habe ich herausgefunden, dass ich mir mal die Klasse an sich anschauen sollte. Also habe ich dieses getan und folgenden interessanten Eintrag gefunden:

\newcommand*\toc@heading{%
  \ClassWarning{\KOMAClassName}{%
    usage of deprecated \string\toc@heading!\MessageBreak
    You should use the features of package `tocbasic'\MessageBreak
    instead of \string\toc@heading.\MessageBreak
    Definition of \string\toc@heading\space my be removed from\MessageBreak
    KOMA-Script soon, so it should not be used
  }%
  \chapter*{\contentsname}%
  \@mkboth{\contentsname}{\contentsname}%
}
\newcommand*{\toc@l@number}{}
\newcommand*{\tableofcontents}{%
  \begingroup\let\if@dynlist\if@tocleft\listoftoc{toc}\endgroup
}

Unten wird \tableofcontents definiert, oben gibt es einen Befehl \toc@heading. Nun könnte ich den mit \renewcommand neu erstellen, um auch diese Warnung weg zu bekommen - das ist meiner Meinung nach aber mehr als dreckig. Deshalb: Wie kann ich die Definition der Überschrift des Inhaltsverzeichnisses 'legal' von \chapter* aus ändern?

Vielen Dank bereits im Voraus!

Viele Grüße aus dem Pott,
Matthias

Erneut ein Update!

Ich habe die Lösung nun finden können - falls sich jemand anderes auch dafür interessiert:

Kopiert aus dem Koma-Script-Verzeichnis die tocbasic.sty in euer Verzeichnis. Editiert dort die Zeile 360:
\chapter*{##1}%

Voilà, es funktioniert!

Viele Grüße,
Matthias

In einem zentralen Paket wie tocbaisc herumzuändern – und das auch noch offensichtlich ohne zu wissen, was Du tust – halte ich für die dümmste Idee, die man sich vorstellen kann. Es ist ja keineswegs so, dass tocbasic nur das Inhaltsverzeichnis verwaltet.

Darüber hinaus ist in der KOMA-Script-Anleitung dokumentiert, dass man das Verhalten von tocbasic über verscxhiedende Einstellungen beeinflussen kann.

Wie wäre denn überhaupt die Idee, \chapter erst nach dem Inhaltsverzeichnis umzudefinieren?

Wer sich selbst zu wichtig nimmt, braucht von anderen nicht mehr wichtig genommen zu werden.

Bild von Markus Kohm

Die gezeigte Umdefinierung von \chapter ist mehr als schlecht. So versteht das neue \chapter nun beispielsweise keine Sternform und auch kein optionales Argument mehr. Wenn man eine solche Definition verwendet, sollte man sie als neue Definition verwenden, also (ungetestet, da ich gerade keinen Zugriff auf TeX habe):

\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}% Das Paket ngerman wird seit Jahren nicht mehr gepflegt!
\usepackage{yfonts}
\usepackage{lipsum}
 
% Chapter mit Initial
\newcommand{\ychapter}[1]{\chapter{#1}\yinipar}
 
\begin{document}
\tableofcontents
\ychapter{Lorem ipsum}
\lipsum[1]
 
\section{Lorem ipsum}
\lipsum[2]
 
\ychapter{Lorem ipsum}
\lipsum[3]
 
\section{Lorem ipsum}
\lipsum[4]
 
\chapter[Und noch einmal lipsum]{Lorem ipsum}
\yinipar\lipsum[1]
 
\end{document}

Du musst Dir bewusst machten, dass LaTeX, LaTeX-Klassen und LaTeX-Pakete intern selbst ebenfalls LaTeX-Anweisungen verwenden und man diese deshalb nicht wahllos umdefinieren sollte! Siehe auch den Beitrag von Ratte.

Vielen Dank an euch beide! Habe das Problem so gelöst. Es wäre nur viel bequemer gewesen, da mein Editor dass dann bequem anzeigt.

Gruß,
Matthias

Comments for "Überschrift des Inhaltsverzeichnises "manipulieren"" abonnieren