Problem mit Package tocloft und caption

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


Gast

Beitrag von Gast »

esdd hat geschrieben: In Deinem Beispiel werden jetzt sogar 3 Pakete geladen, die um die Formatierung der Verzeichnisse kongurieren: tocloft, tocstyle und tocbasic.

Also tocstyle benötige ich wahrscheinlich nicht. Ohne tocbasic funktioniert das gesonderte Anhangsverzeichnis nicht. Und tocloft soll die Verzeichnisse formatieren.
esdd hat geschrieben: Aber Deine Präambel sieht sehr durcheinander aus. Weißt Du, was die ganzen Pakte machen und ob Du sie alle brauchst. Du lädst beispielsweise einige Pakete mehrmals und nimmst Einstellungen doppelt vor. Wenn ich in Deinem Beispiel \blinddocument\appendix\blinddocument ergänze, dann wird zwar ein Anhangsverzeichnis mit Inhalt erstellt (brauchst Du das?), aber das Inhaltsverzeichnis bleibt leer.

Auf die erste Frage kann ich nur mit nein antworten. Bei packages wie longtable oder geometry weiß ich was sie machen, und auch dass ich sie nutze bzw. brauche.
Aber z.B. welche Mathe-Pakete ich wirklich brauche und ob das externe Anhangsverzeichnis, welches ich erstellen muss, auf einen besseren oder leichteren Weg erstellt werden kann, dass entzieht sich meiner Kenntniss. Meist suche ich solange in Foren und im Internet nach Beispielen und probiere sie aus, bis der gewünschte Effekt erreicht ist. Das ich jetzt an dem Punkt bin, an dem sich einige Sachen doppeln oder nicht miteinander kombinieren lassen ist daher nicht verwunderlich.

esdd hat geschrieben: \sc ist schon ganz lange veraltet. Verwende statt dessen \scshape oder \textsc{<text>}.

Danke für den Tipp, dass werde ich von jetzt an machen.

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Anonymous hat geschrieben: Also tocstyle benötige ich wahrscheinlich nicht. Ohne tocbasic funktioniert das gesonderte Anhangsverzeichnis nicht. Und tocloft soll die Verzeichnisse formatieren.
Ohne KOMA-Script-Klasse wirst du mMn nicht zu einem sauberen Ergebnis kommen, zumindest nicht auf die Schnelle. Den Umstieg von einer Standardklasse zu KOMA-Script sehe ich nicht besonders kritisch, wenn man sich etwas mit den einzelnen Paketen und Befehlen auseinander setzt.

Einige Einstellungen, die du per tocloft erreichst, haben esdd und ich ja in unseren ersten Beispielen bereits veranschaulicht.
tocstyle wird nicht benötigt, und auch das Anhangsverzeichnis, das in deinem Beispiel sowieso nicht so richtig zu funktionieren scheint, kommt ohne Zusatzpakete aus, wie folgendes Beispiel zeigt:
\documentclass[ngerman,%aktualisiert, global laden 
 11pt,a4paper, 
 toc=chapterentrywithdots,%Punkte auf section-Ebene 
 listof=entryprefix, %Bezeichner in Verzeichnissen 
 listof=totoc %Verzeichnisse ins Inhaltsverzeichnis 
]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[T1]{fontenc}

\usepackage{blindtext}

\usepackage{hyperref}

%%Anhang Formatierung%%
\makeatletter% --> De-TeX-FAQ
% Weitergabe des folgenden Codes oder Modifikationen davon nur unter Nennung
% der Originalquelle: <http://www.komascript.de/comment/1073#comment-1073>,
% gestattet.
% Leistungsfähigere Lösung unter <http://www.komascript.de/comment/3447#comment-3447>.
\newcommand*{\maintoc}{% Hauptinhaltsverzeichnis
  \begingroup
    \@fileswfalse% kein neues Verzeichnis öffnen
    \renewcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
      \value{tocdepth}=-10000 % lokal tocdepth auf sehr kleinen Wert setzen
    }%
    \tableofcontents% Verzeichnis ausgeben
  \endgroup
}
\newcommand*{\appendixtoc}{% Anhangsinhaltsverzeichnis
  \begingroup
    \edef\@alltocdepth{\the\value{tocdepth}}% tocdepth merken
    \setcounter{tocdepth}{-10000}% Keine Verzeichniseinträge
    \renewcommand*{\contentsname}{% Verzeichnisname ändern
      Verzeichnis der Anh"ange}%
    \renewcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
      \setcounter{tocdepth}{\@alltocdepth}% tocdepth wiederherstellen
    }%
    \tableofcontents% Verzeichnis ausgeben
    \setcounter{tocdepth}{\@alltocdepth}% tocdepth wiederherstellen
  \endgroup
}
\newcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
}
\g@addto@macro\appendix{% \appendix erweitern
  \if@openright\cleardoublepage\else\clearpage\fi% Neue Seite
  \phantomsection %Verlinkung von hyperref korrigieren
  \addcontentsline{toc}{chapter}{\appendixname}% Eintrag ins Hauptverzeichnis
  \addtocontents{toc}{\protect\appendixattoc}% Trennanweisung in die toc-Datei
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

\maintoc
\newpage

\listoffigures

\listoftables
\newpage
\blinddocument\appendix\appendixtoc\blinddocument
{\captionof{figure}{Eine Abbildung}}
{\captionof{table}{Eine Tabelle}}

\end{document}
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

Gast

Beitrag von Gast »

Wenn man auf der im Code von Markus verlinkten Seiten mal ganz nach unten blättert, findet man übrigens einen Link auf eine weit elegantere Lösung für ein Anhangsverzeichnis mit einer aktuellen KOMA-Script-Klasse.

Konfiguration von Verzeichniseinträgen geht bei KOMA-Script übrigens ganz ohne tocloft einfach über das von den Klassen ohnehin geladene tocbasic. Teilweise genügen auch bereits die Klassenoptionen.

Verwendet man keine KOMA-Script-Klasse, kann man trotzdem tocbasic verwenden, sollte es aber ebenfalls nicht mit tocloft kombinieren.

Vorteilhaft ist in jedem Fall, wenn man Code nicht wahllos aus dem Internet zusammenklaubt, sondern auch mal einen tiefen Blick in die Anleitungen der dabei verwendeten Pakete riskiert und versucht, wenigstens ansatzweise zu verstehen, was man da tut. Sonst verstrickt man sich früher oder später in einem Codekonglomerat in dem man sich durch Hinzufügen von immer neuem Code nur immer tiefer verstrickt, statt wieder heraus zu finden. Du musst wirklich anfangen, aufzuräumen!

BTW: Kann es sein, dass die Wiedergabe des Codes von appendixtoc.sty im Beitrag von Gast illegal war, weil die Links dort fehlen? Davon abgesehen ist es immer sinnvoll, den Ursprung von geklautem Code anzugeben.

Gast

Beitrag von Gast »

Ich habe mich seit heute früh herangesetzt und verwende jetzt folgende Dokumentclass:
\documentclass[ngerman,%aktualisiert, global laden
 11pt,a4paper,
 toc=chapterentrywithdots,%Punkte auf section-Ebene
 listof=entryprefix, %Bezeichner in Verzeichnissen
 listof=totoc, %Verzeichnisse ins Inhaltsverzeichnis
 headinclude,
 numbers=noenddot
 ]{scrreprt}
Weiterhin habe ich die Kopf- und Fußzeile jetzt mit folgendem Packet geladen und auch hinbekommen, dass ich auf den Anfangsseiten jedes Kapitels die Seitennumerrierung stehen habe.

%Kopfzeile und Fußzeile formatieren
\usepackage[headsepline]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot %setzt die Kopf-und Fußzeilen zurück
\ohead{\textbf{\headmark}}	%Kopfzeile außen  Kapitelüberschrift
\automark{chapter}
\ofoot{\pagemark}	%Fußzeile außen Seitenzahl

%Kopf-und Fußzeile jeweils für die 1. Seite festlegen 
\deftripstyle{chapterstyle}[0pt][0pt]{}{}{}{}{}{\pagemark}
\renewcommand*\chapterpagestyle{chapterstyle}
Die letzten zwei Stunden saß ich an dem Problem, dass ich ich beim einfügen eines seperaten Anahngsverzeichnisses immer noch die Abbildungs- und Tabellenbeschriftungen in den anderen Verzeichnisen "gelöscht" habe.
Aber letztendlich habe ich es mit dem Code von markusv[\b] geschafft.
Sogar die Numerierung der Seiten des Anhangsverzeichnisses mit A-1 bis D-10 etc. funktioniert jetzt.
Vielen Dank für die hilfreichen Tipps!

Schlussendlich betrachtet war es einfacher neu anzufangen und sich das Handbuch der Koma-Skript-Klasse durchzulesen, als immer komplexere und neue Codes im Internet zu suchen. 8)

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Dein Code für die Kopf- und Fußzeilen ist unnötig kompliziert
\usepackage[headsepline,automark,autooneside]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot %setzt die Kopf-und Fußzeilen zurück
\ohead{\headmark}   %Kopfzeile außen  Kapitelüberschrift
\ofoot[\pagemark]{\pagemark}
\addtokomafont{pagehead}{\bfseries}
Damit ist dann das Ändern von \chapterpagestyle und die Verwendung von \deftripstyle überflüssig.

Außerdem wurde scrpage2 bereits 2013 von scrlayer-scrpage abgelöst:
\usepackage[automark,headsepline]{scrlayer-scrpage}
\clearpairofpagestyles
\ohead{\headmark}
\ofoot*{\pagemark}
\addtokomafont{pagehead}{\bfseries}
Falls Du in Deinem Dokument noch immer \setspace{1.5} oder ähnliches verwendest, sei Dir empfohlen, das für die Kopf- und Fußzeilen mit
\KOMAoptions{onpsinit={\linespread{1}\selectfont}}
wieder abzuschalten.

Und dann ist hier mal noch ein Vorschlag, der auf der von dem anderen Gast empfohlenen neueren Variante für ein Anhangsverzeichnis beruht. Ich gehe dabei davon aus, dass nach dem Anhang nichts mehr folgt, was wieder ins normale Inhaltsverzeichnis soll.
\documentclass[ 
  listof=entryprefix, 
  listof=totoc, 
  toc=chapterentrywithdots, 
  ngerman,
  parskip=half,% oder full, Absatzabstand statt -einzug
  open=any,
  numbers=noenddot,
  headinclude,
  oneside
]{scrbook} 

\usepackage[utf8]{inputenc} 
\usepackage{babel} 
\usepackage[T1]{fontenc}

\usepackage{geometry} 
\geometry{vmargin=25mm, left=30mm, right=20mm, headsep=10mm, footskip=10mm}

\usepackage[automark,headsepline]{scrlayer-scrpage}
\clearpairofpagestyles
\ohead{\headmark}
\ofoot*{\pagemark}
\addtokomafont{pagehead}{\bfseries}
\KOMAoptions{onpsinit={\linespread{1}\selectfont}}

% Anhangsverzeichnis basierend auf https://komascript.de/comment/5578#comment-5578
\DeclareNewTOC[%
  owner=\jobname,
  listname={Anhangsverzeichnis},% Titel des Verzeichnisses
]{atoc}% Dateierweiterung (a=appendix, toc=table of contents)
\setuptoc{atoc}{totoc}

\usepackage{xpatch}
\makeatletter
\xapptocmd\appendix{%
  \listofatocs
  \renewcommand*{\ext@toc}{atoc}%
  \scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert
    \hypersetup{bookmarkstype=atoc}%
  }%
}{}{\PatchFailed}
\ifundefinedorrelax{ext@toc}{% damit das auch für KOMA-Version vor 3.23 funktioniert
  \newcommand*{\ext@toc}{toc}%
  \renewcommand{\addtocentrydefault}[3]{%
    \expandafter\tocbasic@addxcontentsline\expandafter{\ext@toc}{#1}{#2}{#3}%
  }%
}{}
\makeatother
%%%

\renewcaptionname{ngerman}{\figurename}{Abb.} 
\renewcaptionname{ngerman}{\tablename}{Tab.} 

\usepackage[hidelinks]{hyperref} 
\usepackage{blindtext}% nur Fülltext
\begin{document}
\title{Titel}
\author{Author}
\frontmatter
\maketitle
\tableofcontents 
\listoffigures 
\listoftables 
\mainmatter
\Blinddocument 
\captionof{figure}{Eine Abbildung} 
\captionof{table}{Eine Tabelle} 
\appendix
\blinddocument
\captionof{figure}{Eine Abbildung im Anhang} 
\captionof{table}{Eine Tabelle im Anhang} 
\end{document}

Antworten