Anzeige:
Ergebnis 1 bis 14 von 14

Thema: Unterbrochender Hintergrund in Listing

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.02.2010
    Beiträge
    8

    Question Unterbrochender Hintergrund in Listing

    Hallo zusammen.

    Wie der Titel schon sagt, ist der Hintergrund in meinem Listing unterbrochen, wenn ich mit dem Mathmode eine zu hohe Zeile einfüge.

    \documentclass[a4paper]{report}
    \pdfoutput=1
    \usepackage{ngerman}
    \usepackage[latin1]{inputenc}
    \usepackage{color}
    \usepackage{listings}
    \usepackage[pdftex,
    colorlinks=true, linkcolor=blue, urlcolor=cyan, citecolor=red,
    raiselinks=true,%
    bookmarks=true,%
    bookmarksopenlevel=1,%
    bookmarksopen=true,%
    bookmarksnumbered=true,%
    hyperindex=true,%
    plainpages=false,% correct hyperlinks
    pdfpagelabels=true%,% view TeX pagenumber in PDF reader
    %pdfborder={0 0 0.5}
    ]{hyperref} % erzeuge Hyperlinks z.B. für pdflatex
    \definecolor{gray}{gray}{.85}
    \lstset{backgroundcolor=\color{gray}, numbers=left, numberstyle=\small, breaklines=true, basicstyle=\footnotesize}
    \begin{document}
    \begin{lstlisting}[caption={Caption}, mathescape=true, nolol=true]
    Zeile 1
    x = $\left\{
    \begin{array}{ll} true & \textrm{,falls Bedingung}\\
    false & \textrm{, sonst}
    \end{array}
    \right.
    $
    Zeile 3
    \end{lstlisting}
    \end{document}

    Kann man das irgendwie beheben, sodass der Hintergrund nicht mehr unterbrochen ist?

    MfG Tom

  2. #2
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hi,

    aus meinem Archiv:
    Code:
    \documentclass{article}
    \usepackage[showframe]{geometry}
    \usepackage{listings}
    \lstset{numbers=left, numberstyle=\small, breaklines=true, basicstyle=\footnotesize}
    \usepackage{xcolor,framed}
    \newenvironment{ListRahm}{%
    \def\FrameCommand{\FrameSep=4pt\fcolorbox{black}{yellow}}%
    \setlength{\fboxrule}{2pt}%
    \MakeFramed {\advance\hsize-\width\FrameRestore}}%
    {\endMakeFramed}
    \lstnewenvironment{ListingRahm}[1][]{\lstset{#1}\ListRahm}{\endListRahm}
    \begin{document}
    
    \lstset{language=Pascal}
    \begin{ListingRahm}[mathescape]
    for i:=maxint to 0 do
    begin
            $\sum\limits_{j=1}^ni^2+j$
    end;
    \end{ListingRahm}
    
    \end{document}
    Gruß
    Marco

  3. #3
    Registrierter Benutzer
    Registriert seit
    26.02.2010
    Beiträge
    8
    Hi,
    danke für die Antwort. Mit deinem Code kann ich die Lücken im Beispiel, in denen der Hintegrund zu sehen war, ausfüllen, sodass der Hintergrund nun einheitlich grau ist. Allerdings ist das Aussehen des Listings bzw. der ganzen Seite sehr stark verändert: die caption ist nun im grauen Hintergrund und es tauchen viele Rahmen auf der Seite auf, die vorher nicht da waren.

    Code:
    \documentclass[a4paper]{report} 
    \pdfoutput=1
    \usepackage{ngerman}
    \usepackage[latin1]{inputenc}
    \usepackage[showframe]{geometry}
    \usepackage{listings}
    \lstset{numbers=left, numberstyle=\small, breaklines=true, basicstyle=\footnotesize}
    \usepackage{xcolor,framed}
    \definecolor{gray}{gray}{.85}
    \newenvironment{ListRahm}{%
    \def\FrameCommand{\FrameSep=4pt\fcolorbox{gray}{gray}}%
    \setlength{\fboxrule}{2pt}%
    \MakeFramed {\advance\hsize-\width\FrameRestore}}%
    {\endMakeFramed}
    \lstnewenvironment{ListingRahm}[1][]{\lstset{#1}\ListRahm}{\endListRahm}
    
    \usepackage{listings}
    \usepackage[pdftex,
    						colorlinks=true, linkcolor=blue, urlcolor=cyan, citecolor=red,
    						raiselinks=true,%
                bookmarks=true,%
                bookmarksopenlevel=1,%
                bookmarksopen=true,%
                bookmarksnumbered=true,%
                hyperindex=true,% 
                plainpages=false,% correct hyperlinks
                pdfpagelabels=true%,% view TeX pagenumber in PDF reader
                %pdfborder={0 0 0.5}
                ]{hyperref} % erzeuge Hyperlinks z.B. für pdflatex
    
    \lstset{backgroundcolor=\color{gray}, numbers=left, numberstyle=\small, breaklines=true, basicstyle=\footnotesize} 
    \begin{document}
    %\begin{lstlisting}[caption={Caption}, mathescape=true, nolol=true]
    \begin{ListingRahm}[mathescape,caption=Caption]
    Zeile 1
    x = $\left\{
                \begin{array}{ll} true & \textrm{,falls Bedingung}\\
                                  false & \textrm{, sonst}
                \end{array}
         \right.
        $
    Zeile 3
    \end{ListingRahm}
    %\end{lstlisting}
    \end{document}
    Ist es irgendwie möglich, dass man das Aussehen wie im Minibeispiel aus dem ersten Posting beibehält, sodass sich die restliche Seite und das Aussehen des Listings nicht verändert?

    MfG Tom

  4. #4
    Registrierter Benutzer
    Registriert seit
    26.02.2010
    Beiträge
    8
    Ist es vielleicht möglich, das Listing irgendwie so zu modifizieren, dass man eine graue Box in den Hintergrund einfügt?

  5. #5
    Registrierter Benutzer
    Registriert seit
    26.02.2010
    Beiträge
    8
    Hallo,

    Weiß wirklich niemand, wie man den Hintergrund wieder als eine einheitliche graue Fläche machen kann? Mit der Lösung von mechanicus ändert sich leider das Aussehen/Seitenlayout zu stark (trotzdem danke für deine Lösung ). Da ich die dazugehörige Arbeit sehr bald abgeben muss, und mir ein weißer Hintergrund nicht so schön erscheint, wäre ich sehr dankbar, wenn jemand eine Lösung wüsste, die das restliche Layout nicht/kaum beeinträchtigt.

    Danke schon mal im Vorraus,
    Tom

  6. #6
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hi,

    Code:
    \documentclass[a4paper]{report} 
    \pdfoutput=1
    \usepackage{ngerman}
    \usepackage[latin1]{inputenc}
    \usepackage[showframe]{geometry}
    
    \usepackage{xcolor,framed}
    \usepackage{caption}
    \usepackage{listings}
    
    \usepackage{listings}
    \lstset{backgroundcolor=\color{gray}, numbers=left, numberstyle=\small, breaklines=true, basicstyle=\footnotesize}
    \definecolor{gray}{gray}{.85}
    \newenvironment{ListRahm}{%
    \def\FrameCommand{\FrameSep=4pt\fcolorbox{gray}{gray}}%
    \setlength{\fboxrule}{2pt}%
    \MakeFramed {\advance\hsize-\width\FrameRestore}}%
    {\endMakeFramed}
    \lstnewenvironment{ListingRahm}[2][]{%
         \center
         \captionsetup{type=lstlisting}\caption{#2}
         \vspace*{-3\medskipamount}
         \endcenter%
         \lstset{aboveskip=0pt,belowskip=0pt,#1}\ListRahm}{\endListRahm}
    
    
    \usepackage[pdftex,
                colorlinks=true, linkcolor=blue, urlcolor=cyan, citecolor=red,
                raiselinks=true,%
                bookmarks=true,%
                bookmarksopenlevel=1,%
                bookmarksopen=true,%
                bookmarksnumbered=true,%
                hyperindex=true,% 
                plainpages=false,% correct hyperlinks
                pdfpagelabels=true%,% view TeX pagenumber in PDF reader
                %pdfborder={0 0 0.5}
                ]{hyperref} % erzeuge Hyperlinks z.B. für pdflatex
    
     
    \begin{document}
    T Text
    \begin{ListingRahm}[mathescape=true]{Caption}
    Zeile 1
    x = $\left\{
                \begin{array}{ll} true & \textrm{,falls Bedingung}\\
                                  false & \textrm{, sonst}
                \end{array}
         \right.
        $
    Zeile 3
    \end{ListingRahm}
    
    \end{document}
    Gruß
    Marco

  7. #7
    Registrierter Benutzer
    Registriert seit
    26.02.2010
    Beiträge
    8
    Hallo,
    danke für die Lösung, damit kann der unterbrochene Hintergrund wiederhergestellt werden.
    Ich dachte das letzte mal, dass die Linien, die durch das Paket
    Code:
    \usepackage[showframe]{geometry}
    auf der Seite eingefügt wurden, ebenfalls zur der ListRahm-Umgebung gehören. Aber durch's Auskommentieren hat es super funktioniert.
    Eine kleine Frage hätte ich trotzdem: Bei einem Listing stand sonst immer noch eine Nummerierung, die jetzt fehlt, obwohl es mit korrekter Nummer in "listoflisting" angezeigt wird. Kann man die ListingRahm-Umgebung erweitern, dass auch wieder die Nummerierung angezeigt wird?

    Viele Grüße,
    Tom

  8. #8
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von tom1986 Beitrag anzeigen
    Eine kleine Frage hätte ich trotzdem: Bei einem Listing stand sonst immer noch eine Nummerierung, die jetzt fehlt, obwohl es mit korrekter Nummer in "listoflisting" angezeigt wird. Kann man die ListingRahm-Umgebung erweitern, dass auch wieder die Nummerierung angezeigt wird?
    Code:
    \documentclass[a4paper]{report} 
    \pdfoutput=1
    \usepackage{ngerman}
    \usepackage[latin1]{inputenc}
    \usepackage[showframe]{geometry}
    
    \usepackage{xcolor,framed}
    \usepackage{listings}
    \usepackage{caption}
    % \DeclareCaptionFormat{plain}{#1#2#3\par}
    \captionsetup[lstlisting]{labelformat=listingsformart}
    \DeclareCaptionLabelFormat{listingsformart}{\bfseries #1 #2}
    
    \lstset{backgroundcolor=\color{gray}, numbers=left, numberstyle=\small, breaklines=true, basicstyle=\footnotesize}
    \definecolor{gray}{gray}{.85}
    \newenvironment{ListRahm}{%
    \def\FrameCommand{\FrameSep=4pt\fcolorbox{gray}{gray}}%
    \setlength{\fboxrule}{2pt}%
    \MakeFramed {\advance\hsize-\width\FrameRestore}}%
    {\endMakeFramed}
    \lstnewenvironment{ListingRahm}[2][]{%
         \center
         \captionsetup{type=lstlisting}\caption{#2}
         \vspace*{-3\medskipamount}
         \endcenter%
         \lstset{aboveskip=0pt,belowskip=0pt,#1}\ListRahm}{\endListRahm}
    
    
    \usepackage[pdftex,
                colorlinks=true, linkcolor=blue, urlcolor=cyan, citecolor=red,
                raiselinks=true,%
                bookmarks=true,%
                bookmarksopenlevel=1,%
                bookmarksopen=true,%
                bookmarksnumbered=true,%
                hyperindex=true,% 
                plainpages=false,% correct hyperlinks
                pdfpagelabels=true%,% view TeX pagenumber in PDF reader
                %pdfborder={0 0 0.5}
                ]{hyperref} % erzeuge Hyperlinks z.B. für pdflatex
    
     
    \begin{document}
    \lstlistoflistings
    T Text
    \begin{ListingRahm}[mathescape=true]{Caption}
    Zeile 1
    x = $\left\{
                \begin{array}{ll} true & \textrm{,falls Bedingung}\\
                                  false & \textrm{, sonst}
                \end{array}
         \right.
        $
    Zeile 3
    \end{ListingRahm}
    
    \end{document}
    Gruß
    Marco

  9. #9
    Registrierter Benutzer
    Registriert seit
    26.02.2010
    Beiträge
    8
    Hallo,

    hat super funktioniert.
    Eine Sache ist mir allerdings aufgefallen. Ich habe jetzt alle meine Listings auf die neue Umgebung geändert. Bei manchen war die Option "nolol=true", da ich einzelne Listings nicht im Listing-Verzeichnis stehen haben wollte. Mit der neuen Umgebung scheint die Option allerdings keine Wirkung mehr zu haben. Andere Optionen wie "mathescape" funktionieren weiterhin. Kann man die Option wieder irgendwie aktivieren?

    Viele Grüße,
    Tom

  10. #10
    Registrierter Benutzer
    Registriert seit
    26.02.2010
    Beiträge
    8
    Hi,

    Wenn die Option "nolol=true" keine Wirkung mehr zeigt und sich in der neuen Umgebung 'ListingRahm' nicht mehr aktivieren lässt, ist es dann vielleicht möglich, Einträge aus dem Listings-Verzeichnis (lstlistoflistings) wieder zu entfernen?

    Viele Grüße,
    Tom

  11. #11
    Registrierter Benutzer Avatar von lockstep
    Registriert seit
    31.08.2008
    Beiträge
    1.487
    Vielleicht nicht die eleganteste Lösung - ich habe eine neue Umgebung ListingRahmNolol definiert, die praktisch das gleiche tut wie ListingRahm, jedoch statt \caption \caption* verwendet.

    Code:
    \documentclass[a4paper]{report} 
    \pdfoutput=1
    \usepackage{ngerman}
    \usepackage[latin1]{inputenc}
    \usepackage[showframe]{geometry}
    
    \usepackage{xcolor,framed}
    \usepackage{listings}
    \usepackage{caption}
    % \DeclareCaptionFormat{plain}{#1#2#3\par}
    \captionsetup[lstlisting]{labelformat=listingsformart}
    \DeclareCaptionLabelFormat{listingsformart}{\bfseries #1 #2}
    
    \lstset{backgroundcolor=\color{gray}, numbers=left, numberstyle=\small, breaklines=true, basicstyle=\footnotesize}
    \definecolor{gray}{gray}{.85}
    \newenvironment{ListRahm}{%
    \def\FrameCommand{\FrameSep=4pt\fcolorbox{gray}{gray}}%
    \setlength{\fboxrule}{2pt}%
    \MakeFramed {\advance\hsize-\width\FrameRestore}}%
    {\endMakeFramed}
    \lstnewenvironment{ListingRahm}[2][]{%
         \center
         \captionsetup{type=lstlisting}\caption{#2}
         \vspace*{-3\medskipamount}
         \endcenter%
         \lstset{aboveskip=0pt,belowskip=0pt,#1}\ListRahm}{\endListRahm}
    \lstnewenvironment{ListingRahmNolol}[2][]{%
         \center
         \captionsetup{type=lstlisting,list=false}\caption*{#2}
         \vspace*{-3\medskipamount}
         \endcenter%
         \lstset{aboveskip=0pt,belowskip=0pt,#1}\ListRahm}{\endListRahm}
    
    
    \usepackage[pdftex,
                colorlinks=true, linkcolor=blue, urlcolor=cyan, citecolor=red,
                raiselinks=true,%
                bookmarks=true,%
                bookmarksopenlevel=1,%
                bookmarksopen=true,%
                bookmarksnumbered=true,%
                hyperindex=true,% 
                plainpages=false,% correct hyperlinks
                pdfpagelabels=true%,% view TeX pagenumber in PDF reader
                %pdfborder={0 0 0.5}
                ]{hyperref} % erzeuge Hyperlinks z.B. für pdflatex
    
     
    \begin{document}
    \lstlistoflistings
    T Text
    
    \begin{ListingRahmNolol}[mathescape=true]{Caption}
    Zeile 1
    x = $\left\{
                \begin{array}{ll} true & \textrm{,falls Bedingung}\\
                                  false & \textrm{, sonst}
                \end{array}
         \right.
        $
    Zeile 3
    \end{ListingRahmNolol}
    
    \begin{ListingRahm}[mathescape=true]{Caption}
    Zeile 1
    x = $\left\{
                \begin{array}{ll} true & \textrm{,falls Bedingung}\\
                                  false & \textrm{, sonst}
                \end{array}
         \right.
        $
    Zeile 3
    \end{ListingRahm}
    
    \end{document}
    lockstep
    idxlayout - Konfigurierbares Index-Layout, kompatibel mit KOMA-Script und memoir

  12. #12
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hi,

    Code:
    \documentclass[a4paper]{report} 
    \pdfoutput=1
    \usepackage{ngerman}
    \usepackage[latin1]{inputenc}
    \usepackage[showframe]{geometry}
    
    \usepackage{xcolor,framed}
    \usepackage{listings}
    \usepackage{caption}
    % \DeclareCaptionFormat{plain}{#1#2#3\par}
    \captionsetup[lstlisting]{labelformat=listingsformart}
    \DeclareCaptionLabelFormat{listingsformart}{\bfseries #1 #2}
    
    \lstset{backgroundcolor=\color{gray}, numbers=left, numberstyle=\small, breaklines=true, basicstyle=\footnotesize}
    \definecolor{gray}{gray}{.85}
    \newenvironment{ListRahm}{%
    \def\FrameCommand{\FrameSep=4pt\fcolorbox{gray}{gray}}%
    \setlength{\fboxrule}{2pt}%
    \MakeFramed {\advance\hsize-\width\FrameRestore}}%
    {\endMakeFramed}
    \makeatletter
    \lstnewenvironment{ListingRahm}[2][]{%
         \center\captionsetup{type=lstlisting}
         \lstset{#1}
         \lst@ifnolol
           \caption[]{#2}
         \else
           \caption{#2}
         \fi
         \vspace*{-3\medskipamount}
         \endcenter%
         \lstset{aboveskip=0pt,belowskip=0pt,#1}\ListRahm}{\endListRahm}
    \makeatother
    
    \usepackage[pdftex,
                colorlinks=true, linkcolor=blue, urlcolor=cyan, citecolor=red,
                raiselinks=true,%
                bookmarks=true,%
                bookmarksopenlevel=1,%
                bookmarksopen=true,%
                bookmarksnumbered=true,%
                hyperindex=true,% 
                plainpages=false,% correct hyperlinks
                pdfpagelabels=true%,% view TeX pagenumber in PDF reader
                %pdfborder={0 0 0.5}
                ]{hyperref} % erzeuge Hyperlinks z.B. für pdflatex
    
    \usepackage{lipsum}
    \begin{document}
    \lstlistoflistings
    \chapter{foo}
    \lipsum[1]
    \begin{ListingRahm}[mathescape=true]{Caption 1}
    Zeile 1
    x = $\left\{
                \begin{array}{ll} true & \textrm{,falls Bedingung}\\
                                  false & \textrm{, sonst}
                \end{array}
         \right.
        $
    Zeile 3
    \end{ListingRahm}
    \lipsum[1]
    \begin{ListingRahm}[mathescape=true,nolol=true]{Caption 2}
    Zeile 1
    x = $\left\{
                \begin{array}{ll} true & \textrm{,falls Bedingung}\\
                                  false & \textrm{, sonst}
                \end{array}
         \right.
        $
    Zeile 3
    \end{ListingRahm}
    \lipsum[1]
    \end{document}
    Gruß
    Marco

  13. #13
    Registrierter Benutzer
    Registriert seit
    26.02.2010
    Beiträge
    8
    Hallo,
    ich bin gerade etwas im Abgabestress, deswegen hatte ich ganz vergessen zu antworten.
    Ich hab mich für die Lösung von mechanicus/Marco entschieden (trotzdem danke lockstep!), da ich so nur eine Umgebung definieren muss, mit der beide Fälle möglich sind. Deine Lösung funktioniert super, deswegen vielen Dank dafür .

    Viele Grüße,
    Tom

  14. #14
    Registrierter Benutzer Avatar von lockstep
    Registriert seit
    31.08.2008
    Beiträge
    1.487
    Zitat Zitat von tom1986 Beitrag anzeigen
    Ich hab mich für die Lösung von mechanicus/Marco entschieden (trotzdem danke lockstep!), da ich so nur eine Umgebung definieren muss, mit der beide Fälle möglich sind.
    Kein Problem - mein Ansatz war mehr als Notlösung für den Fall gedacht, dass mechanicus sich nicht meldet.

    lockstep
    idxlayout - Konfigurierbares Index-Layout, kompatibel mit KOMA-Script und memoir

Stichworte

Lesezeichen

Berechtigungen

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