\addcontentsline nicht im Inhaltsverzeichnis

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


Krabby.Linux
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: Mi 15. Feb 2012, 14:22

\addcontentsline nicht im Inhaltsverzeichnis

Beitrag von Krabby.Linux »

Hi,

ich habe folgende Problematik. Ich schreibe meine Thesis und möchte DINA3 Seiten in den Anhang packen. Da das PDF Dokument so nur unübersichtlich wird will ich den Anhang in der PDF weglassen. Damit das sinnvoll bleibt soll nun im Inhaltsverzeichnis stehen auf welcher Seite was für ein Anhang zu finden ist.

Ich gehe also hin mit :
\addcontentsline{toc}{chapter}{Anhang XXX}

Das Problem ist, dass es nicht im Inhaltsverzeichnis eingetragen wird da ja auf der folgenden Seite nichts kommt und der Compiler diesen Befehld deshalb ignoriert.

Wie kann ich das ganze umgehen? Ich will einfach einen Eintrag festlegen der im Inhaltsverzeichnis auftaucht OHNE eine Seite im PDF einzunehmen! Zusätzlich will ich die Seitenzahl festlegen indem ich den Zaehler nach bzw. vor diesem Befehl inkrementiere.

Das ganze soll dann in etwa so aussehen (keine Ahnung ob es funktioniert):
\addcontentsline{toc}{chapter}{Anhang 1} \setcounter{+1}
\addcontentsline{toc}{chapter}{Anhang 2} \setcounter{+1}
\addcontentsline{toc}{chapter}{Anhang 3} \setcounter{+1}

Vielen Dank schonmal!!!

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Du musst direkt \addtocontents statt \addcontentsline verwenden und dann die Daten manuell eintragen.

Krabby.Linux
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: Mi 15. Feb 2012, 14:22

Beitrag von Krabby.Linux »

Danke für deine Antwort!

mit:

\clearpage

\addtocounter{page}{1}
\addtocontents{toc}{Zeichnung - Zylinderhalterung} \addtocounter{page}{1}
\addtocontents{toc}{Zeichnung - Gestell} \addtocounter{page}{1}
\addtocontents{toc}{Zeichnung - Zylinder}\addtocounter{page}{1}
\addtocontents{toc}{Zeichnung - Ventilblöcke} \addtocounter{page}{1}
\addtocontents{toc}{Zeichnung - Podest}\addtocounter{page}{1}
\addtocontents{toc}{Zeichnung - Gesamtaufbau}


Passiert nichts. Es steht nichts im Inhaltsverzeichnis!

Eine Idee wodran das liegen kann?

Noch so einer

Beitrag von Noch so einer »

Das Problem ist, dass \addtocontents und damit auch das darauf aufbauende \addcontentsline nicht \immediate\write, sondern \write verwendet. Während \immediate\write direkt etwas schreibt, wird bei \write das Schreiben in die Datei bis zum nächsten \shipout verzögert. Das ist auch gut so, weil aufgrund der asynchronen Ausgaberoutine erst dann die Seitenzahlen feststehen. In Deinem Fall ist es aber von Nachteil, weil ja nichts mehr ausgegeben wird, also auch kein \shipout mehr erfolgt.

Die Lösung ist trotzdem geradezu herrlich einfach und lautet scrlfile. Ja, wie so oft bietet das KOMA-Script-Paket mal wieder eine Lösung, die auch mit anderen Klassen verwendbar ist. Hier ein Beispiel:
\documentclass{book}
\usepackage{blindtext}
\usepackage{scrlfile}

\BeforeClosingMainAux{% siehe KOMA-Script-Anleitung
  \addcontentsline{toc}{part}{Zeichnungen}
  \addcontentsline{toc}{chapter}{Zeichnung - Zylinderhalterung}\stepcounter{page} 
  \addcontentsline{toc}{chapter}{Zeichnung - Gestell}\stepcounter{page} 
  \addcontentsline{toc}{chapter}{Zeichnung - Zylinder}\stepcounter{page} 
  \addcontentsline{toc}{chapter}{Zeichnung - Ventilblöcke}\stepcounter{page} 
  \addcontentsline{toc}{chapter}{Zeichnung - Podest}\stepcounter{page} 
  \addcontentsline{toc}{chapter}{Zeichnung - Gesamtaufbau}\stepcounter{page}
}

\begin{document}
\tableofcontents
\blinddocument
Und, um sicher zu sein, dass ich nicht versehentlich ein Beispiel für etwas
erzeugt, was gar nicht der Problemfall ist, wird der Problemfall jetzt
erzwungen:
\clearpage

% Num, um zu beweisen, dass wir beim Problemfall sind.
\addcontentsline{toc}{chapter}{Das kommt nie an}
\end{document}
Wenn Du bereits eine KOMA-Script-Klasse verwendest, kannst Du Dir sogar das Laden von scrlfile sparen. Das machen die Klassen nämlich bereits. Da KOMA-Script immer wieder so schöne Lösungen bietet, würde ich Dir ohnehin die Verwendung einer KOMA-Script-Klasse empfehlen.

Und bitte die gezeigte Anweisung in der KOMA-Script-Anleitung wirklich nachlesen!

Krabby.Linux
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: Mi 15. Feb 2012, 14:22

Beitrag von Krabby.Linux »

Wow, perfekt. Danke für die tolle Antwort. Passt zu 100%!

Krabby.Linux
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: Mi 15. Feb 2012, 14:22

Beitrag von Krabby.Linux »

Sorry, dass ich diese Frage nochmal öffne.

Es hat ja alles toll geklappt mit dem Vorschlag von "Noch so einer", aber es hat sich noch eine neue Frage ergeben....

Es stehen nun die Einträge mit der korrekten Seitenzahl im Inhaltsverzeichnis. Wie kann ich nun aber auf diese Seite ein \ref bzw \autoref setzen? Ich hab ja kein Label das ich auf einer Seite Positionieren kann. Die Seite existiert ja auch nur theoretisch (später im Druck).

Vielen Dank

Noch so einer

Beitrag von Noch so einer »

Ausprobiert hast Du das aber nicht, bevor Du gefragt hast, oder?
\documentclass{book}
\usepackage{blindtext}
\usepackage{scrlfile}

\BeforeClosingMainAux{% siehe KOMA-Script-Anleitung
  \addcontentsline{toc}{part}{Zeichnungen}
  \addcontentsline{toc}{chapter}{Zeichnung - Zylinderhalterung}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Gestell}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Zylinder}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Ventilblöcke}\label{hier}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Podest}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Gesamtaufbau}\stepcounter{page}
}

\begin{document}
\tableofcontents
\blinddocument
Siehe auch Seite~\pageref{hier}.
Und, um sicher zu sein, dass ich nicht versehentlich ein Beispiel für etwas
erzeugt, was gar nicht der Problemfall ist, wird der Problemfall jetzt
erzwungen:
\clearpage

% Num, um zu beweisen, dass wir beim Problemfall sind.
\addcontentsline{toc}{chapter}{Das kommt nie an}
\end{document}
Mit \ref kannst Du natürlich nicht darauf verweisen, weil Du ja keine Kapitelnummer dafür hast. Wenn Du eine solche brauchst, dann geht aber auch das ziemlich normal. Man muss dazu aber natürlich die Kapitelnummern auch hochzählen und sollte die dann auch ins Verzeichnis aufnehmen:
\documentclass{book}
\usepackage{blindtext}
\usepackage{scrlfile}

\BeforeClosingMainAux{% siehe KOMA-Script-Anleitung
  \addcontentsline{toc}{part}{Zeichnungen}
  \refstepcounter{chapter}\label{Zylinder}
  \addcontentsline{toc}{chapter}{\numberline{\thechapter}Zylinderhalterung}
  \stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Gestell}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Zylinder}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Ventilblöcke}\label{hier}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Podest}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Gesamtaufbau}\stepcounter{page}
}

\begin{document}
\tableofcontents
\blinddocument
Siehe auch Seite~\pageref{hier} oder Kapitel~\ref{Zylinder}.
Und, um sicher zu sein, dass ich nicht versehentlich ein Beispiel für etwas
erzeugt, was gar nicht der Problemfall ist, wird der Problemfall jetzt
erzwungen:
\clearpage

% Num, um zu beweisen, dass wir beim Problemfall sind.
\addcontentsline{toc}{chapter}{Das kommt nie an}
\end{document}
Mit Link (hyperref) darauf zu verweisen, wäre hingegen witzlos, da es ja die entsprechenden Seiten nicht gibt. Wenn, dann sollte man stattdessen mit \href auf die entsprechende externe Datei verlinken, also beispielsweise für obiges etwas in der Art:
\documentclass{book}
\usepackage{blindtext}
\usepackage{scrlfile}
\usepackage{hyperref}

\BeforeClosingMainAux{% siehe KOMA-Script-Anleitung
  \addcontentsline{toc}{part}{Zeichnungen}
  \refstepcounter{chapter}\label{Zylinder}
  \addcontentsline{toc}{chapter}{\numberline{\thechapter}Zylinderhalterung}
  \stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Gestell}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Zylinder}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Ventilblöcke}\label{hier}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Podest}\stepcounter{page}
  \addcontentsline{toc}{chapter}{Zeichnung - Gesamtaufbau}\stepcounter{page}
}

\begin{document}
\tableofcontents
\blinddocument
Siehe auch Seite~\pageref{hier} oder \href[page=\pageref*{Zylinder}]{http://hiergibts.alles/DateimitAnhang.pdf}{Kapitel~\ref*{Zylinder}}.
Und, um sicher zu sein, dass ich nicht versehentlich ein Beispiel für etwas
erzeugt, was gar nicht der Problemfall ist, wird der Problemfall jetzt
erzwungen:
\clearpage
\appendix

% Num, um zu beweisen, dass wir beim Problemfall sind.
\addcontentsline{toc}{chapter}{Das kommt nie an}
\end{document}
BTW: Der Status "Rückfrage" ist für Helfer reserviert. Bitte beachten!

Krabby.Linux
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: Mi 15. Feb 2012, 14:22

Beitrag von Krabby.Linux »

WoW, danke! Das ist das wonach ich gesucht hatte.

In meinem Fall ist das mit den Links nicht sinnlos, ich will am Ende mit einem Programm einfach PDF Seiten in den Anhang packen. Mit Latex kriege ich da Probleme. Ich habe im Anhang einige DINA4 und DINA3 Seiten, die mit eingebunden werden sollen (alles pdfs) aber wegen den Rändern usw. können die pdfs nicht ganzsseitig dargestellt werden.

Ich würde schon gerne auf die "nicht existierende" Seite verlinken können, so dass nachher im fertigen Dokument auf die Seite gesprungen wird!

Oder wie kann ich sonst ganzseitig pdfs in DINA4 UND DINA3 einbinden? Ohne Header/Footer. Seitenzahl kann auch weg wenns sein muss!

Noch so einer

Beitrag von Noch so einer »

Wenn Du das gleich von Anfang an gefragt hättest, hätte man Dir gleich von Anfang an mit pdfpages antworten können.

Krabby.Linux
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: Mi 15. Feb 2012, 14:22

Beitrag von Krabby.Linux »

pdfpages hat bei mir nur fehler erzeugt. Ich schau heute im Laufe des Tages sobald ich Zugang zu meinem Notebook habe nochmal genau nach!

Antworten