Falsches Syntax-Highlighting in eigener listings-Umgebung

Editoren wie TexWorks, TeXmaker, TeXstudio, TeXnicCenter, Kile, LyX, vi, Emacs und Co.


eleboek
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Fr 26. Feb 2016, 12:45

Falsches Syntax-Highlighting in eigener listings-Umgebung

Beitrag von eleboek »

Hallo,
ich habe Bash-Code in der Listings-Umgebung in meinem Dokument. Verwende ich \begin{lstlisting} & \end{lstlisting} wird der darin enthaltene Code korrekt farblich hervorgehoben. Verwende ich jedoch eine eigene listings-Umgebung ist dies nicht der Fall. Schlimmer noch: $-Zeichen werden als Beginn/Ende einer Mathematik-Umgebung gewertet und machen mir meinen Code auch über das \end{eigeneslisting} hinaus (bis zum Seitenende, wenn eine ungerade Anzahl an $-Zeichen im Code ist - sogar das \end{document} bleibt nicht verschont) im Syntax-Highlighting grün. Kompilieren kann ich jedoch ohne Probleme und im PDF sieht auch alles schick aus... Ist bei einem Freund und mir mit TeXstudio und Texmaker reproduzierbar.
\documentclass[a4paper]{scrreprt} % Minimalbsp
\usepackage{listings}% Sourcecode einfügen

\lstnewenvironment{bashcode} % Eigene Bash-Code Umgebung
{\lstset{language=bash, belowskip=-0.8 \baselineskip , numbers=none, xleftmargin=1.5mm}}
{}

\begin{document}
\chapter{Dummy}
Dummytext
\begin{lstlisting}
pi@raspberrypi:~ $ cd sudo apt-get install codeblocks
\end{lstlisting}
Dummytext
\begin{bashcode}
pi@raspberrypi:~ $ cd sudo apt-get install codeblocks
\end{bashcode}
Dummytext
\begin{bashcode}
pi@raspberrypi:~ $ cd sudo apt-get install codeblocks
\end{bashcode}
Dummytext
\begin{bashcode}
pi@raspberrypi:~ $ cd sudo apt-get install codeblocks
\end{bashcode}
Dummytext
\end{document}
Weil das falsche Syntax-Highlighting echt nervig ist bin ich wieder dazu übergegangen das lstlisting zu werden, muss da dann aber immer alle Parameter für jedes Code-Snipping hinten dran schreiben. Wollte mir das (insbesondere bei Änderungen) ein bisschen bequemer in eine eigene Bash-Umgebung nach meinen Wünschen packen.

# Wie ich gerade in der Vorschau hier auf der HP von meinem Minimalbeispiel sehe, wird das hier auch wieder anders mit dem Syntax-Highlighting gehandhabt :shock:

Danke für eure Hilfe
eleboek
Dateianhänge
Screenshot Syntax-Highlighting
Screenshot Syntax-Highlighting
minimalbeispiel.png (34.4 KiB) 3229 mal betrachtet

schaulustiger

Beitrag von schaulustiger »

Welchen Editor benutzt du denn überhaupt?

eleboek
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Fr 26. Feb 2016, 12:45

Re: Falsches Syntax-Highlighting in eigener listings-Umgebun

Beitrag von eleboek »

eleboek hat geschrieben:[...]Ist bei einem Freund und mir mit TeXstudio und Texmaker reproduzierbar.[...]
Hätte ich vielleicht in bisschen prominenter im Text platzieren sollen...

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Woher soll der Editor auch wissen, was bei dir ne Verbatim-Umgebung ist? :-P

Bei TeXstudio kannst du das in den erweiterten Einstellungen unter „Eigene Hervorhebung“ die Umgebung hinzufügen, dann sollte das klappen. Ob in TeXmaker was Ähnliches geht, weiß ich nicht …
Ich biete Hilfe, Beratung und Schulung für alle Fragen rund um TeX, Buchgestaltung und Textsatz, sowie Grafik- und Kommunikationsdesign.
Mehr Infos und Kontakt unter tobiw.de.

Hier schreibe ich über TeX: Mein Blog „TeX-Beispiel des Monats“ (Deutsch) und TeX.tips (Englisch).

eleboek
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Fr 26. Feb 2016, 12:45

Beitrag von eleboek »

Danke @iTob - hab's gefunden. Funktioniert jetzt wie gewünscht.
Zur Frage woher der Editor das wissen soll: Der Editor weiß ja auch das lstlisting so ne Umgebung ist. Und das hab ich dem ja auch nicht explizit gesagt - dachte der weiß das dann weil ich ja das package include und da steht's ja drin (oder so ähnlich). Und wenn ich mit \lstnewenvironment eine neue Umgebung anlege ist das ja auch nix anderes.
Nungut, egal. Funktioniert ja jetzt wie es soll.

Danke
eleboek

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Also TeXstudio hat für jedes Paket eine CWL-Datei (kannst in der Programm-Hilfe mal danach suchen), in der irgendwer eingetragen hat, welche Befehle es gibt und ob diese Speziell sind (Verbatim, Mathemodus, Referenzen, …). TeXstudio untersucht dann deine Datei daraufhin, welche Pakete geladen werden und lädt die entsprechende CWL-Datei. Darin können aber natürlich nur die Umgebungen/Befehle beschrieben sein, die das Paket mitbringt und nicht etwas, was erst mithilfe des Paketes von dir definiert wird.
Für \newcommand u.ä. bietet TeXstudio sogar eine Erkennung und nimmt das in die Autovervollständigung auf. Aber eine entsprechende Erkennung für alle Möglichen Definitionen aller möglichen Pakete zu machen ist fast unmöglich oder zumindest zu viel Arbeit …

Generell gibt es auch die Möglichkeit, für deine eigenen Befehle eine eigene CWL-Datei zu erstellen und diese Laden zu lassen. Für größere Projekte mit vielen von mir definierten befehlen mache ich das so.

Viele Grüße
Tobi
Ich biete Hilfe, Beratung und Schulung für alle Fragen rund um TeX, Buchgestaltung und Textsatz, sowie Grafik- und Kommunikationsdesign.
Mehr Infos und Kontakt unter tobiw.de.

Hier schreibe ich über TeX: Mein Blog „TeX-Beispiel des Monats“ (Deutsch) und TeX.tips (Englisch).

Antworten