Sie sind hier

Inhaltsverzeichnis, Neuen Gliederungspunkt eintragen - ohne Text

Hallo,

trotz intensiver Suche im Forum und Nutzung von Google(Koma-Script-Paket.pdf) habe ich leider nicht die Lösung gefunden. Ich vermute allerdings, dass ich wieder nur die falschen Stichwörter verwendet habe.

Zum Problem:
Ich habe mehrere seperate Anlagen geschrieben. Ich will in meinem Hauptdokument(Inhaltsverzeichnis) auf die Anlagen "hinweisen".
Sie sollen im Inhaltsverzeichnis als Punkte erscheinen, auf der selben Gliederungsebene von Abbildungsverzeichnis oder Literaturverzeichnis. Dabei soll aber nur der Name der Anlage erscheinen, keine Seitenzahl.

Ich hab es schon mit \addcontentsline{toc}{}{Anlage A - ......}
probiert, aber dabei wird leider auch ein "Text" generiert.

Meine Frage:
Wie bekommt man es hin, dass Einträge im Inhaltsverzeichnis erscheinen, ohne dass ein tatsächlicher Eintrag(Text) aufgebaut wird?

wenn ich es so lesen würde und nicht weiß was ich meine, wäre es für mich unverständlich, weiß aber nicht, wie ich mich anders ausdrücken soll... Hier wäre wohl wieder ein Bild hilfreich... aber das lass ich erst mal...

danke
zero

Bild von Markus Kohm

Kann es sein, dass du etwas wie:

\addtocontents{toc}{\protect\addvspace{10pt}%
  \protect\contentsline{chapter}{Anlage}{}}

suchst? Wobei ich davon ausgehe, dass du eine Klasse mit Kapitelebene verwendest.

BTW: Externe Anlagen kann man sehr schön mit dem pdfpages-Paket anbinden.

ja, ich verwende scrreprt
hab es mit deinem oberen Beispiel probiert, aber wenn ich das eingefügt habe, ist ... überhaupt nichts passiert.. alles unverändert.

Hab dann mal was probiert, was mach nicht machen sollte, aber es hat genau das gewünschte Ergebnis geliefert...

ich habe die *.toc Datei editiert und dort einfach die Zeile
\contentsline{chapter}{Anlage A - Benutzerhandbuch}{}{}
eingefügt, einmal übersetzt.. und die Ausgabe(pdf) war so wie ich es will...

Aber das ist nat. keine Lösung! is mir schon klar...
Drum meine Frage, wie könnte man so etwas hinbekommen... , ich denke dass deine obere Codezeile genau das bewirken soll, aber wie gesagt, hatte keine Auswirkung ?

Bild von Markus Kohm

\addtocontents schreibt erst bei der Ausgabe der nächsten Seite in die aux-Datei. Wenn aber keine Seite mehr geschrieben wird, dann wird auch nichts mehr in die aux-Datei geschrieben. Ob noch eine Seite auszugeben ist, hängt sehr davon ab, wo \addtocontents steht. Wird beispielsweise mit einem Rahmendokument gearbeitet und die Anweisung steht nach dem letzten \include im Rahmendokument, so sind die Chancen hoch, dass es wirkungslos bleibt, weil \include immer mit einem \clearpage dafür sorgt, dass die letzte Seite der eingefügten Datei ausgegeben ist, bevor \include zum Rahmendokument zurückkehrt.

Nun könnte man natürlich ein \immediateaddtocontents schreiben. Das hätte aber wiederum den Nachteil, dass dann andere Einträge, die eigentlich im aux-File davor stehen sollten, plötzlich dahinter auftauchen. Eine Lösung könnte nun eventuell sein:

\long\def\immediateaddtocontents#1#2{%
  \clearpage
  \immediateprotected@write\@auxout
    {\let\label\@gobble\let\index\@gobble\let\glossary\@gobble}%
    {\string\@writefile{#1}{#2}}}
\long\def\immediateprotected@write#1#2#3{%
      \begingroup
       \let\thepage\relax
       #2%
       \let\protect\@unexpandable@protect
       \edef\reserved@a{\immediate\write#1{#3}}%
       \reserved@a
      \endgroup
      \if@nobreak\ifvmode\nobreak\fi\fi
}

Alles nur reine Spekulation, da ich von dir kein vollständiges Minimalbeispiel habe, an dem ich das ausprobieren könnte.

habe es jetzt nochmal an einem Beispiel ausprobiert. Wie oben, deinen Code integriert. Es folgt der Inhalt der *.tex Datei:

%--------Dokumentenart----------------------------------

\documentclass[DIV17,BCOR10mm, headsepline, a4paper,11pt]{scrreprt}
\addtolength{\topmargin}{-0.2cm}

%--------Einbinden der Packages-----------------------

\usepackage{ngerman, framed, color, listing}
\usepackage[ansinew]{inputenc}
\usepackage{chicago}           
\usepackage{scrpage2}           
\usepackage{float}              

\begin{document}

\addcontentsline{toc}{chapter}{Inhaltsverzeichnis}
  \tableofcontents

\chapter{Chapter Test}

bla bla bla bla bla bla\\
bla bla bla bla bla bla\\
bla bla bla bla bla bla\\

\section{Section Test}

bla bla bla bla bla bla\\
bla bla bla bla bla bla\\

\include{Kapitel/anhang}

\long\def\immediateaddtocontents#1#2{%
  \clearpage
  \immediateprotected@write\@auxout
    {\let\label\@gobble\let\index\@gobble\let\glossary\@gobble}%
    {\string\@writefile{#1}{#2}}}
\long\def\immediateprotected@write#1#2#3{%
      \begingroup
       \let\thepage\relax
       #2%
       \let\protect\@unexpandable@protect
       \edef\reserved@a{\immediate\write#1{#3}}%
       \reserved@a
      \endgroup
      \if@nobreak\ifvmode\nobreak\fi\fi
}

\addtocontents{toc}{\protect\addvspace{10pt}%
\protect\contentsline{chapter}{Anlage A - Benutzerhandbuch}{}}

\addtocontents{toc}{\protect\addvspace{10pt}%
\protect\contentsline{chapter}{Anlage B - Technische
Dokumentation}{}}

\end{document}

Wenn \include{Kapitel\anhang} mit ausgeführt wird, wird der Text für die Anlagen nicht hinzugefügt.
Kommentiere ich \include{Kapitel\anhang} aus, dann funktioniert es... und
Anlage A ...
Anlage B ...
werden mit angefügt.

In der Datei anhang.tex befinden sich:


\addcontentsline{toc}{chapter}{Abk{\"u}rzungsverzeichnis}
\chapter*{Abk{\"u}rzungsverzeichnis}
...
\addcontentsline{toc}{chapter}{Literaturverzeichnis}
\chapter*{Literaturverzeichnis}
...
\addcontentsline{toc}{chapter}{Webverzeichnis}
\chapter*{Webverzeichnis}
...
Bild von Markus Kohm

Es genügt nicht, \immediateaddtotocontents zu definieren. Du musst es schon verwenden, also deine \addtocontents-Anweisungen durch \immediateaddtocontents-Anweisungen mit gleichen Argumenten ersetzen. Außerdem solltest du die Definitionen von \immediateaddtocontents und \immediateprotected@write in die Präambel schieben und dort mit \makeatletter ... \makeatother klammern. Sonst bekommst du Fehlermeldungen wegen der @-Zeichen in einigen Makronamen. Siehe dazu auch die FAQ.

Warum du mit \addtocontents die Einträge im Zusammenhang mit \include nicht bekommst, habe ich ja erklärt.

aber ich bekomme beim übersetzen:

! Undefined control sequence
l.33 \immediateaddcontentsline    
                              {toc....

so hab ich es probiert:

...
{\makeatletter \makeatother
\long\def\immediateaddtocontents#1#2{%
  \clearpage
  \immediateprotected@write\@auxout
    {\let\label\@gobble\let\index\@gobble\let\glossary\@gobble}%
    {\string\@writefile{#1}{#2}}}
\long\def\immediateprotected@write#1#2#3{%
      \begingroup
       \let\thepage\relax
       #2%
       \let\protect\@unexpandable@protect
       \edef\reserved@a{\immediate\write#1{#3}}%
       \reserved@a
      \endgroup
      \if@nobreak\ifvmode\nobreak\fi\fi
}
}
...

\begin{document}

...

\immediateaddtocontents{toc}{\protect\addvspace{10pt}%
\protect\contentsline{chapter}{Anlage A - Benutzerhandbuch}{}}

\end{document}

was mache ich diesmal falsch??

Bild von Markus Kohm

Kann es sein, dass du in Zeile 33 \immediateaddcontentsline statt \immediateaddtocontents stehen hast? Wenn nicht, muss dir jemand anderer helfen oder du warten, bis ich wieder Lust auf das Forum habe.

hab schon \immediateaddtocontents verwendet...
das hab ich oben wohl falsch abgeschrieben..

hab nochmal ein bisschen rumprobiert und war auch in einem anderen Forum unterwegs...

so hab ich es hinbekommen:

\addtocontents{toc}{\protect\contentsline{chapter}{Anlage A - Anwenderhandbuch}{}{}}
usw.

in die *.tex Datei am Ende angefügt, die als letztes mit
\include an das Hauptdokument gebunden wird...
dann geht es ...

thx
zero

Comments for "Inhaltsverzeichnis, Neuen Gliederungspunkt eintragen - ohne Text" abonnieren