Listings Umgebung

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


Elisio
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mi 10. Okt 2012, 15:24

Listings Umgebung

Beitrag von Elisio »

Hallo zusammen,

Bin mir nicht sicher ob das Thema hier richtig platziert ist, denke aber, dass es hier am besten passt. Ich habe ein Problem mit der Lisitings Umgebung. Moechte gerne im Anhang meiner Arbeit einige Seiten VBA-code einfuegen, was grundsaetzlich auch gut funktioniert. Auch die Einstellung der Farbe der Signalwoerter funktioniert grundsaetzlich. Alles nach dem backslash hat allerdings nicht mehr den von mir eingestellten color-code. Hoffe es gibt jemand der mir helfen kann;-) Hier noch mein Minimalbeispiel:
\documentclass[a4paper, oneside, BCOR=10mm, numbers=noenddot, cmyk, dvipsnames]{scrartcl} %Dokumentenklasse
\usepackage{listings}

\usepackage{color}
\usepackage{xcolor}

\lstset{breaklines=true, tabsize=3, showstringspaces=false}
\lstdefinestyle{Common}{extendedchars=\true, language={[Visual]Basic}}
\lstdefinestyle{A}{style=Common, basicstyle=\scriptsize\color{Black}\ttfamily, keywordstyle=\color{blue}, identifierstyle=\color{Black}, stringstyle=\color{Black}, commentstyle=\color{Green}}

\begin{document}
\begin{lstlisting}[style=A]
Sub speelogMod()

'----------------------------------KOMMENTAR
Cells(fileAmount, 35) = Range("E3") & "\" 
'----------------------------------KOMMENTAR
\end{lstlisting}
\end{document}
Das Problem laesst sich loesen wenn ich vor den eigentlichen backlslash einen zweiten packe (\\). So wird es dann jedoch auch im PDF angezeigt, was ich sehr unschoen finde.
Dateianhänge
listings.PNG
listings.PNG (54.28 KiB) 3175 mal betrachtet

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2466
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

\ is escaping " character in lstlisting giving wrong output

Laut Abschnitt 2.2 der Dokumentation von listings wäre es ratsam, wenn Du Deine Präambel noch um die folgende Zeile erweiterst
\lstloadlanguages{[Visual]Basic}
Bemerkungen zu dem übrigen Beispiel:

Bei Deiner Dokumentklasse ist oneside die Voreinstellung.

Außerdem genügt es, nur das zweite Paket zu laden.
%\usepackage{color}
\usepackage{xcolor}

Elisio
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mi 10. Okt 2012, 15:24

Beitrag von Elisio »

hallo Bartman,

danke für die Antwort. Gibt es trotzdem eine Möglichkeit den Fehler zu umgehen ohne die vba-syntax zu verunstalten?

DADABBI

Beitrag von DADABBI »

Hast du die Lösung, die unter Bartmans Link angegeben ist, ausprobiert?

Elisio
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mi 10. Okt 2012, 15:24

Beitrag von Elisio »

Selbstverständlich. Das Ergebnis bleibt aber unverändert.

Auch das Einfügen von
\lstset{breaklines=true, tabsize=3, showstringspaces=false, morestring=[b]"}
bringt keine Veränderung. Das Problem liegt auch weder am backslash noch am anführungszeichen. das problem ist die kombination aus beiden.

\" funktioniert nicht
\ " funktioniert (mit leerzeichen)

DADABBI

Beitrag von DADABBI »

Elisio hat geschrieben:Selbstverständlich. Das Ergebnis bleibt aber unverändert.

Auch das Einfügen von
\lstset{breaklines=true, tabsize=3, showstringspaces=false, morestring=[b]"}
bringt keine Veränderung
Das wird dort aber gerade nicht empfohlen. Im Gegenteil wird erklärt, warum das morestring=" in der Originaldefinition falsch ist und deshalb ein morestring=[s]" eingefügt werden sollte:
\documentclass[a4paper, oneside, BCOR=10mm, numbers=noenddot, cmyk, dvipsnames]{scrartcl} %Dokumentenklasse
\usepackage{listings}

\usepackage{color}
\usepackage{xcolor}

\lstset{breaklines=true, tabsize=3, showstringspaces=false}
\lstdefinestyle{Common}{extendedchars=\true, language={[Visual]Basic},morestring=[s]""}
\lstdefinestyle{A}{style=Common, basicstyle=\scriptsize\color{Black}\ttfamily, keywordstyle=\color{blue}, identifierstyle=\color{Black}, stringstyle=\color{Black}, commentstyle=\color{Green}}

\begin{document}
\begin{lstlisting}[style=A]
Sub speelogMod()

'----------------------------------KOMMENTAR
Cells(fileAmount, 35) = Range("E3") & "" 
'----------------------------------KOMMENTAR
\end{lstlisting}
\end{document}
Funktioniert bei mir und im Online-Editor jedenfalls.

Bei dir tatsächlich nicht?

Elisio
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mi 10. Okt 2012, 15:24

Beitrag von Elisio »

Ups... das habe ich wohl übersehen!

Deine Lösung funktioniert auf jeden fall. Vielen dank!!

Antworten