Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Pfade in Listing

  1. #1
    Registrierter Benutzer
    Registriert seit
    13.08.2006
    Beiträge
    25

    Pfade in Listing

    Hallo!

    Ich nutze das Paket listings, um Quellcode darzustellen. Ich habe mir eine eigene Sprachdefinition geschrieben. Diese erzeugt zwar 8 Errors, aber läuft trotzdem (scheinbar?) korrekt durch.
    Ein Problem entsteht nun, wenn ich in einem String einen Pfad habe. Dadurch tritt gelegentlich die Kombination \" auf. Damit hat listings aber scheinbar ein Problem, sodass der String nicht mehr korrekt beendet wird. Das wiederum hat zur Folge, dass die Hervorhebung von Keywords nicht mehr funktioniert.

    Hier mein Minimalbeispiel:
    Code:
    \documentclass[12pt]{scrbook}
    \usepackage[latin1]{inputenc}
    \usepackage{ngerman}
    \usepackage[a4paper]{geometry}
    \usepackage{courier}
    \usepackage{listings}
    
    
    \lstset{morekeywords={Global,Local,While,WEnd,If,Then,Select,True,False,ContinueCase,ContinueLoop,Default,Dim,Const,Do,Until,Enum,Exit,ExitLoop,For,Next,In,Func,Return,EndFunc,ElseIf,Else,include,include-once,NoTrayIcon,ReDim,RequireAdmin,Case,EndSelect,EndSwitch,Switch,EndWith,With,Else,EndIf,or,and},
    sensitive=false,
    morecomment=[l]{;},
    morecomment=[s]{#cs}{#ce},
    morecomment=[s]{#comments-start}{#comments-end},
    morestring=[b]",
    morestring=[d]'}
    
    \lstdefinestyle{std}{frame=single,numbers=left,firstnumber=1,numbersep=7pt,basicstyle=\ttfamily, breaklines=true, showstringspaces=false, stringstyle=\ttfamily, keywordstyle=\bfseries\ttfamily, commentstyle=\itshape}
    
    
    \begin{document}
    \begin{lstlisting}[caption={Erfolgskontrolle mit If-Anweisungen}, label=if_check, style=std]
    If FileExists("D:\") Then
        MsgBox(0, "", "D:\ existiert.")
    Else
        MsgBox(0, "", "D:\ existiert nicht.")
    EndIf
    \end{lstlisting}
    \end{document}
    Meine bisherigen Versuche mit escapechars (") oder Escapen zu LaTeX sind fehlgeschlagen. Auch die Forensuche lieferte mir leider keine Anhaltspunkte.

    Ein weiteres Problem habe ich mit & mitten im Code. Das muss ich im Moment so escapen: '\&' (wobei ' als Escapezeichen nach LaTeX definiert ist). Gibt es dafür vielleicht eine einfachere Methode?

    Vielen Dank für eure Mühe schon mal,
    peethebee

  2. #2
    Registrierter Benutzer
    Registriert seit
    13.08.2006
    Beiträge
    25
    Unfassbar: Immer direkt nachdem ich nach langer Suche hier poste, finde ich die Lösung ;-)

    morestring=[d]" statt morestring=[b]" und die Sache läuft wunderbar...

    Bis zum nächsten Mal,
    peethebee

Lesezeichen

Berechtigungen

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