Anzeige:
Ergebnis 1 bis 8 von 8

Thema: \lstlistoflistings zeigt doppelte Überschrift wenn es eine Caption-Nummer bekommt

  1. #1
    Registrierter Benutzer
    Registriert seit
    29.03.2012
    Beiträge
    5

    \lstlistoflistings zeigt doppelte Überschrift wenn es eine Caption-Nummer bekommt

    Hi zusammen,

    Ich schreibe gerade Masterarbeit und stehe vor folgendem Problem, das im nachstehenden "Minimalbeispiel" klarer werden soll. Mein Gesamtdokument gliedert sich in einen Inhaltsteil (arabisch nummeriert) und einen Anhangsteil (römisch nummeriert). Der Römisch nummerierte Teil umfasst Literaturverzeichnis, Indexverzeichnis usw., welche problemlos mit Römerischer Nummerierung auftauchen. Damit das Ganze einheitlich ist, wollte ich auch das Quellcodeverzeichnis mit einer römischen Nummer versehen, die dann auch logischerweise im Inhaltsverzeichnis auftaucht.

    Das tut sie im Grunde auch, das Problem ist nur, dass mit dem nachstehenden Code im \begin{document} \end{document} Part meines Dokuments einmal ganz normal das Quellcodeverzeichnis mit Nummer auftaucht wie es sein soll, eine Seite oben drüber erscheint einfach noch einmal die Überschrift "Quellcodeverzeichnis", jedoch ohne Nummerierung - also einfach ein doppelter Eintrag und ich sehe den Grund nicht.

    Den Part zwischen \makeatletter und \makeatother habe ich in einem anderen Forum gefunden (genauso wie die dazugehörigen Codes für das Abbildungsverzeichnis, das Literaturverzeichnis und das Indexverzeichnis), den ich bei Bedarf hier gerne posten kann.

    Weiß von Euch jemand, wo der Fehler liegt?

    Danke für ein so informatives Forum, aus dem man so viele Informationen ziehen kann.


    Code:
    \documentclass[fontsize=10bp, oneside, bibtotoc, liststotoc, DIV=calc, toc=listof, toc=bibliography, BCOR=0cm]{scrbook}
    \usepackage{graphicx}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{listings}
    \usepackage[colorlinks, linkcolor = black, citecolor = black, filecolor = black, urlcolor = blue, pdfpagelabels, hypertexnames=true]{hyperref}
    \usepackage[small, nooneline, format=hang, justification=justified, bf]{caption}
    \urlstyle{tt}
    \usepackage{subfigure} 
    \setcounter{tocdepth}{4} 
    \setcounter{secnumdepth}{6}  
    \usepackage{listings}
    \usepackage{makeidx}
    \makeindex
     
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    \makeatletter
    %Quellcodeverzeichnis
     % Festlegen des Kapitelnamen (nicht unbedingt notwendig):
     % aus listing.sty
     
     % Erzeugen eines Eintrags im Inhaltsverzeichnis:
     % aus book.cls
     \newcommand\loltableofcontents{%
        \if@twocolumn
          \@restonecoltrue\onecolumn
        \else
          \@restonecolfalse
        \fi
        \chapter*{\contentsname}
        %    \@mkboth{%
        %       \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
        \chapter{\lstlistlistingname}
     
        \@starttoc{toc}%
        \if@restonecol\twocolumn\fi
        }
     
    \renewcommand\lstlistlistingname{Quellcodeverzeichnis}
     
     % aus listing.sty
     \renewcommand\lstlistoflistings{\bgroup
        \let\contentsname\lstlistlistingname
        \let\lst@temp\@starttoc \def\@starttoc##1{\lst@temp{lol}}%
        \loltableofcontents \egroup}
     
    \makeatother
     
    \usepackage{makeidx}
    \makeindex
     
    \begin{document}
     
    \tableofcontents
     
    \lstlistoflistings
     
    \newpage
     
     \begin{lstlisting}[caption={ein paar Zeilen code},label=test123,captionpos=t]
     for i:=maxint to 0 do 
        begin 
    		//kommentar
        j:=square(root(i)); 
     end; 
     \end{lstlisting}  
     
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Ich habs noch mal ein bisschen minimalisiert:
    Code:
    \documentclass{scrbook}
    %\usepackage{graphicx}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{listings}
    \usepackage{hyperref}
    
    \usepackage{listings}
     
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    \makeatletter
    %Quellcodeverzeichnis
     % Festlegen des Kapitelnamen (nicht unbedingt notwendig):
     % aus listing.sty
     
     % Erzeugen eines Eintrags im Inhaltsverzeichnis:
     % aus book.cls
     \newcommand\loltableofcontents{%
        \if@twocolumn
          \@restonecoltrue\onecolumn
        \else
          \@restonecolfalse
        \fi
        \chapter*{\contentsname}
        %    \@mkboth{%
        %       \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
        \chapter{\lstlistlistingname}
     
        \@starttoc{toc}%
        \if@restonecol\twocolumn\fi
        }
     
    \renewcommand\lstlistlistingname{Quellcodeverzeichnis}
     
     % aus listing.sty
     \renewcommand\lstlistoflistings{\bgroup
        \let\contentsname\lstlistlistingname
        \let\lst@temp\@starttoc \def\@starttoc##1{\lst@temp{lol}}%
        \loltableofcontents \egroup}
     
    \makeatother
     
     
    \begin{document}
     
    \tableofcontents
     
    \lstlistoflistings
     
    
     \begin{lstlisting}[caption={ein paar Zeilen code},label=test123,captionpos=t]
     for i:=maxint to 0 do 
        begin 
    		//kommentar
        j:=square(root(i)); 
     end; 
     \end{lstlisting}  
     
    \end{document}
    Ich VERMUTE, dass du dir mit deinem Auszug aus book.cls keinen neuen Eintrag im Inhaltsverzeichnis, sondern ein neues Inhaltsverzeichnis mit dem Namen des Listingverzeichnisses definierst. Aber mit diesen Sachen kenne ich mich nicht aus.

  3. #3
    Registrierter Benutzer
    Registriert seit
    29.03.2012
    Beiträge
    5
    Danke für die schnelle Antwort

    Du meinst also, dass der vermeintliche Doppeleintrag über der Überschrift die "Überschrift" des neuen Inhaltsverzeichnisses "Quellcodeverzeichnis" ist? im "ursprünglichen" Inhaltverzeichnis wird das aber trotzdem gelistet. Ich nehme an, Du hast das selbst gesehen, als Du es mal laufen hast lassen.

  4. #4
    Registrierter Benutzer
    Registriert seit
    29.03.2012
    Beiträge
    5
    Der Vollständigheithalber gebe ich noch die Quelle für das Ganze an:
    http://www.macwrench.de/wiki/Kurztip...tings_in_LaTeX

    Man beachte, dass bei der vorgeschlagenen Lösung (am Ende der Seite) in der Zeile "\chapter*{\contentsname" ein "}" am Ende fehlt.

  5. #5
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Es wird doch eine KOMA-Script-Klasse verwendet, warum dann überhaupt dieser Hack?

  6. #6
    Registrierter Benutzer
    Registriert seit
    29.03.2012
    Beiträge
    5
    Weils ohne überhaupt nicht funktioniert hat.

  7. #7
    Registrierter Benutzer
    Registriert seit
    11.09.2005
    Beiträge
    1.712
    Für dein Vorhaben genügt doch ein listof=numbered völlig, oder habe ich da was falsch verstanden?

    Code:
    \documentclass[fontsize=10bp, oneside, bibliography=totoc, 
    listof=numbered, 
    DIV=calc, BCOR=0cm]{scrbook}
    \usepackage{graphicx}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{listings}
    \usepackage[colorlinks, linkcolor = black, citecolor = black, filecolor = black, urlcolor = blue, pdfpagelabels, hypertexnames=true]{hyperref}
    \usepackage[small, nooneline, format=hang, justification=justified, bf]{caption}
    \urlstyle{tt}
    \usepackage{subfigure} 
    \setcounter{tocdepth}{4} 
    \setcounter{secnumdepth}{6}  
    %\usepackage{listings}% Einmal laden reicht völlig!!!
    \usepackage{makeidx}
    \makeindex
     
    \usepackage{makeidx}
    \makeindex
     
    \begin{document}
     
    \tableofcontents
    
    \lstlistoflistings
     
    \newpage
    
    \chapter{Section}
     
     \begin{lstlisting}[caption={ein paar Zeilen code},label=test123,captionpos=t]
     for i:=maxint to 0 do 
        begin 
    		//kommentar
        j:=square(root(i)); 
     end; 
     \end{lstlisting}  
     
    \end{document}
    Btw, "Weils ohne überhaupt nicht funktioniert hat." ist keine wirklich hilfreiche Problembeschreibung.

  8. #8
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.326
    Der oberhase1234 hat übrigens vergessen, darauf hinzuweisen, dass das ein Crosspost ist, das dort inzwischen ebenfalls mehr als ausführlich beantwortet wurde.

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •