Seite 1 von 1

Listings Umgebung

Verfasst: Fr 17. Jun 2016, 10:20
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.

Verfasst: Fr 17. Jun 2016, 14:46
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}

Verfasst: Fr 17. Jun 2016, 16:29
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?

Verfasst: Fr 17. Jun 2016, 16:55
von DADABBI
Hast du die Lösung, die unter Bartmans Link angegeben ist, ausprobiert?

Verfasst: Fr 17. Jun 2016, 17:09
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)

Verfasst: Fr 17. Jun 2016, 17:15
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?

Verfasst: Fr 17. Jun 2016, 17:28
von Elisio
Ups... das habe ich wohl übersehen!

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