Gepunktete Linien im TOC für chapter|Problem wg. Änderungen

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: Gepunktete Linien im TOC für chapter|Problem wg. Änderungen

von Seban » So 24. Nov 2013, 23:43

Super, vielen Dank!

Geht auch

von localghost » So 24. Nov 2013, 14:35

Seban hat geschrieben:[…] Ich habe mich für den Lösungsvorschlag von u_fischer entschieden, da dort bei chapter Punkte hinzugefügt werden, nicht aber bei parts.
localghosts Vorschlag funktioniert jedoch auch, fügt aber zu allen Struktur-Ebenen Punkte hinzu, nicht nur zu chaptern. Danke trotzdem […]
Das geht natürlich auch. Man definiert einen neuen Stil auf Basis von allwithdot und beeinflusst die entsprechenden Elemente dann wie gewünscht.
\documentclass[
%  toc=flat,
  ngerman
]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß}
}
\usepackage{babel}

\usepackage[tocflat]{tocstyle}
\newtocstyle[allwithdot]{partnodot}{
  \settocstylefeature[-1]{leaders}{\hfill}
  \settocstylefeature[-1]{pagenumberhook}{\normalfont\bfseries}
  \settocstylefeature[0]{pagenumberhook}{\normalfont\bfseries}
}
\usetocstyle{partnodot}

\usepackage{blindtext}

\begin{document}
  \tableofcontents

  \part{Blindtext}
  \blinddocument
\end{document}

von Seban » So 24. Nov 2013, 00:07

Danke an alle für die wie immer hervorragende Hilfe.

Ich habe mich für den Lösungsvorschlag von u_fischer entschieden, da dort bei chapter Punkte hinzugefügt werden, nicht aber bei parts.
localghosts Vorschlag funktioniert jedoch auch, fügt aber zu allen Struktur-Ebenen Punkte hinzu, nicht nur zu chaptern. Danke trotzdem =)

MfG,
Seban

Sehr einfach.

von localghost » Fr 22. Nov 2013, 22:17

Ist mit »tocstyle« aus KOMA-Script irgendwie viel einfacher. Die Klassenoption toc=flat muss auskommentiert (oder gelöscht) und statt dessen das Paket mit der entsprechenden Option tocflat geladen werden. Dazu den Stil allwithdot verwenden.
\documentclass[
%  toc=flat,
  ngerman
]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß}
}
\usepackage{babel}
\usepackage[tocflat]{tocstyle}
\usetocstyle{allwithdot}

\usepackage{blindtext}

\begin{document}
  \tableofcontents

  \blinddocument
\end{document}
Es gibt lediglich eine Warnung zum Alpha-Status des Pakets.


Thorsten

von u_fischer » Fr 22. Nov 2013, 18:29

Versuch's damit (ungetestet, habe keine Zeit dafür):
\makeatletter
\renewcommand*\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \ifnum \lastpenalty<20010
      \addpenalty{-\@highpenalty}%
    \fi
    \vskip 1.0em \@plus\p@
    \setlength\@tempdima{1.5em}%
    \if@tocleft
      \ifx\toc@l@number\@empty\else
        \setlength\@tempdima{0\toc@l@number}%
      \fi
    \fi
    \begingroup
      \raggedchapterentry
      \parindent \z@ \advance\rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \interlinepenalty\@M
      \leavevmode
      \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
      \usekomafont{chapterentry}{#1\nobreak
        \usekomafont{chapterentrypagenumber}{%
          \leaders\hbox{$\m@th
        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
        mu$}\hfill\nobreak
          \hb@xt@\@pnumwidth{\hss#2}}}\par
      \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
      \endgroup
      \penalty20009
      \else
        \penalty\@highpenalty
      \endgroup
    \fi
  \fi
}
\makeatother
(Gibt wahrscheinlich fette Punkte. Wenn du das nicht willst, muss du wahrscheinlich bei \hbox{.} ein \normalfont vor dem Punkt einfügen.

von Seban » Fr 22. Nov 2013, 18:01

Vielen Dank für deine Hilfe.
Noch so einer hat geschrieben:Ich habe dabei einfach die Anweisung für \l@section aus scrreprt kopiert, die Ebene (1. Argument von \bprot@dottedtocline) angepasst und die Einzüge (2. und 3. Argument).
So einfach finde ich das, um ehrlich zu sein, noch nicht :(

Mit deinem Ansatz erscheinen zwar die Punkte wie gewünscht, allerdings werden die Kapitel nun im TOC anders dargestellt als vorher (nicht mehr bold und keine vertikalen Abstände):
Vorher:
Bild
Nachher:
Bild

Ich vermute, das kann man mittels Koma-Skript-Befehlen ebenfalls anpassen. Jetzt habe ich in scrguide.pdf nachgeschaut und auf S.70 steht etwas zu Voreinstellungen der Schrift für die Elemente des Inhaltsverzeichnisses.
Wenn ich aber bspw.
\setkomafont{chapterentry}{\bfseries\usekomafont{disposition}}
in der Präambel einfüge, führt dies nicht zu fetten Einträgen im TOC.

Als nächstes würde ich nun nach einem Paket suchen, dass dies stattdessen erledigen kann (titletoc vermutlich), aber mein gefühl sagt mir, dass ein Lösungsweg über Einstellungen des Koma-Scripts "sauberer" ist.

Wie würdest du denn jetzt bspw. vorgehen, um eine Lösung für das Problem (nicht mehr fett & keine Abstände) zu finden?

Grüße & danke noch mal

von Noch so einer » Fr 22. Nov 2013, 15:16

Wirf tocloft raus und mach die Kapitelüberschriften beispielsweise mit
\makeatletter
\renewcommand*\l@chapter{\bprot@dottedtocline{0}{0em}{1em}}
\makeatother
Ich habe dabei einfach die Anweisung für \l@section aus scrreprt kopiert, die Ebene (1. Argument von \bprot@dottedtocline) angepasst und die Einzüge (2. und 3. Argument). Wobei die Einzüge bei toc=flat AFAIK ohnehin nur als Startwerte verwendet werden, also eigentlich keine Rolle spielen.

Gepunktete Linien im TOC für chapter|Problem wg. Änderungen

von Seban » Fr 22. Nov 2013, 15:02

Hallo zusammen,

Ich möchte im TOC eines Dokuments (scrreprt) auch für chapter gepunktete Linien zw. Kapitelname und -seite einfügen und habe dazu folgenden Befehl gefunden.
\usepackage[titles]{tocloft}
\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}}
Dies "überschreibt" allerdings die Klassen-Option toc=flat.

Das ist von daher von Bedeutung, da mir in folgendem Thread ua. 'Noch so einer' auf S. 2 freundlicherweise geholfen hatte, einen Anhang der Form
  • Anhang A
    A.1 'Chapter'
    A.1.1 'Section'
    A.1.1.1 'Subsection'
    A.1.1.2 'Subsection'
    A.2 'Chapter'
    A.2.1 'Section'
    ...
    A.3 'Chapter'
    ...
    A.4 'Chapter'
    ...

    Anhang B
    B.1 'Chapter'
    ...
    B.2 'Chapter'
    ...
statt
  • Anhang A
    A 'Chapter'
    A.1 'Section'
    A.1.1 'Subsection'
    A.1.2 'Subsection'
    B 'Chapter'
    B.1 'Section'
    ...

    Anhang B
    ...
zu erstellen.

http://www.golatex.de/ueberschriften-nu ... 11686.html

Durch diese Änderungen stimmt der Abstand zw. Kapitel-/Abschnittsnummern und den Kapitel-/Abschnittsnamen nicht mehr überein, wennd as TOC nicht flach ist.


Kann ich bei verwendung von tocloft verhindern, dass das TOC nicht mehr flat ist oder kann ich die Punkte irgendiwe anders einfügen, so dass es mit den Änderungen von 'Noch so einer' kompatibel ist?

Freue mich über jeden Denkanstoß.

Grüße,
Seban


Hier ein Minimal-Bsp.:
\documentclass[a4paper,11pt,openany,toc=flat]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß},
}
\usepackage{blindtext}
	
\usepackage[titles]{tocloft}
\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} % for chapters
	
	

%% part zur Verwendung in appendix anpassen %%%%%%%%%%%%%%%%%%%%%%%%%
%% aus dem genannten Thread
\let\raggedpart\raggedleft
\renewcommand*{\partheadstartvskip}{\cleardoublepage
  \chapterheadstartvskip
}
\setkomafont{partnumber}{\fontsize{18pt}{21pt}\bfseries}
\setkomafont{part}{\normalfont\sffamily}
\makeatletter
\newcommand*{\appendixmore}{%
  \renewcaptionname{ngerman}{\partname}{\appendixname}%
  \setcounter{part}{0}%
  \renewcommand*{\thepart}{\Alph{part}}%
  \renewcommand*{\partformat}{\appendixname~\thepart}%
  \@addtoreset{chapter}{part}%  
  \renewcommand*{\thechapter}{\thepart-\arabic{chapter}}%
}
\makeatother
\renewcommand*{\addparttocentry}[2]{%
  \ifstr{#1}{}{%
    \addtocentrydefault{part}{}{#2}%
  }{%
    \addcontentsline{toc}{part}{\appendixname~#1 -- #2}%
  }%
}



%% Dokument %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

\tableofcontents
\chapter{Kapitel 1}
\section{Ein Abschnitt}
\blindtext


\appendix

\part{Name des ersten Anhangs}
\chapter{Kapitel 1 des Anhangs}\label{chp1}
\blindtext
\chapter{Kapitel 2 des Anhangs}
\blindtext
\section{Ein Abschnitt}
Siehe auch Kapitel~\ref{chp1}.


\part{Name des zweiten Anhangs}
\chapter{Kapitel 1 des Anhangs}\label{chp2}
\blindtext
\chapter{Kapitel 2 des Anhangs}
\blindtext
\section{Ein Abschnitt}
Siehe auch Kapitel~\ref{chp2}.


\end{document}

Nach oben