TeXwelt wurde neu installiert. Es funktionieren noch nicht alle Features und auch an den deutschsprachigen Formulierungen wird verbessert. Danke für eure Geduld.

... gibt es dafür eine einfache Methode? Die 'sections' sind nicht notwendigerweise mit \section erzeugt.

Nebenbei: Es erzeugt sehr viele Leerseiten :( Ja, muß wohl so sein.

Open in writeLaTeX
\documentclass[a5paper]{scrbook} %
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},  germandbls={ß}}
\usepackage[ngerman]{babel}

\begin{document}
\tableofcontents

\newpage
Diese Seite gehört egtl. nimmer zum toc... \\ \\
\fbox{Schreibe hier ein Chaptertoc für das Kapitel FOO hin: ...} \\ \\
\fbox{Schreibe hier ein Chaptertoc für das Kapitel BAR hin: ...}

\chapter{FOO}
...
\addcontentsline{toc}{section}{foo1}
\addcontentsline{toc}{section}{foo2}
\addcontentsline{toc}{section}{foo3}

\chapter{BAR}
....
\addcontentsline{toc}{section}{bar1}
\addcontentsline{toc}{section}{bar2}

\end{document}

gefragt 07 Nov '14, 06:28

cis's gravatar image

cis
9.3k21214368
Akzeptiert-Rate: 29%

bearbeitet 07 Nov '14, 08:05


Da minitoc die Nummer des bei \minitoc zu verwendenden Kapitelverzeichnisses über einen Zähler bestimmt, ist das ohne allzu großen Aufwand möglich. Man muss nur den Zähler kennen: mtc, am besten auch dessen Ausgabe: \The@mtc, und eine Möglichkeit finden, auf die Nummer des Zählers zu einem beliebigen Kapitel zuzugreifen. Diese Möglichkeit ist zum einen durch das Paket \refcount und zum anderen durch den \label-Mechanismus von LaTeX gegeben. Dazu muss man allerdings als Labelwert den eben die Ausgabe von mtc, also \The@mtc verwenden können. In folgendem Beispiel wird genau das umgesetzt:

Open in writeLaTeX
\documentclass[a5paper]{scrbook} %
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},  germandbls={ß}}
\usepackage[ngerman]{babel}
\usepackage{minitoc}
\usepackage{refcount}

\makeatletter
% Ausgabe von \minitoc für ein bestimmtes Kapitelverzeichnis, durch
% temporäre Änderung des Zählers mtc:
\newcommand*{\xminitoc}[2][d]{%
  \begingroup
    \value{mtc}=#2\relax
    \minitoc[#1]%
  \endgroup
}
% Setzen eines Labels mit dem aktuellen Ausgabewert des Zählers mtc,
% ohne dabei die normale Label-Referenz zu ändern:
\newcommand*{\mtclabel}[1]{%
  \begingroup
    \protected@edef\@currentlabel{\The@mtc}%
    \label{#1}%
  \endgroup
}
\makeatother

\begin{document}
\dominitoc
\tableofcontents

\newpage
Diese Seite gehört egtl. nimmer zum toc... \\ \\
\xminitoc{\getrefnumber{mtc:foo}}
\xminitoc{\getrefnumber{mtc:bar}}

\chapter{FOO}\mtclabel{mtc:foo}
...
\addcontentsline{toc}{section}{foo1}
\addcontentsline{toc}{section}{foo2}
\addcontentsline{toc}{section}{foo3}

\chapter{BAR}\mtclabel{mtc:bar}
....
\addcontentsline{toc}{section}{bar1}
\addcontentsline{toc}{section}{bar2}

\end{document}

Entscheidend bei der Lösung ist natürlich jeweils die Gruppierung (also \begingroup\endgroup), damit durch \xminitoc der Zähler mtc nicht global verändert wird und so minitoc aus dem Tritt kommen würde, bzw. bei \mtclabel die normale Labelreferenz nicht verändert wird, also ein späteres \label ggf. weiterhin das Kapitel, den Abschnitt oder was sonst gerade Labelreferenz ist referenziert. Aus demselben Grund darf man natürlich auch nicht \setcounter verwenden, um mtc in \xminitoc zu verändern, denn \setcounter arbeitet global.

Nebenbei bemerkt: Die Zahl der Leerseiten lässt sich durchaus reduzieren. Das muss also nicht so sein. Allerdings halte ich durchaus viel davon, Kapitel immer auf rechten Seiten beginnen zu lassen.

Permanenter link

beantwortet 07 Nov '14, 08:17

Ijon%20Tichy's gravatar image

Ijon Tichy
8.8k31024
Akzeptiert-Rate: 56%

bearbeitet 07 Nov '14, 08:18

Deine Antwort
Vorschau umschalten

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

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×58
×12
×7
×1

gestellte Frage: 07 Nov '14, 06:28

Frage wurde gesehen: 5,444 Mal

zuletzt geändert: 07 Nov '14, 08:18