lstlisting einfache Klammern für Kommentare

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Xoon
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 20. Jul 2016, 10:58
Wohnort: Donaueschingen

lstlisting einfache Klammern für Kommentare

Beitrag von Xoon »

Hallo,

ich möchte für lstlisting eine neue Sprache für G-Code nach DIN 66025 definieren. Kommentare werden in einfachen Klammern geschrieben. Entsprechend habe ich folgende Definition versucht:
\lstdefinelanguage{DIN}
{
morekeywords={G,M,X,Y,Z,A,B,C},
sensitive=false,
morecomment=[s]{(} {)}
}
habs mit escapen versucht:
morecomment=[s]{\(} {\)}
Jemand eine Idee?

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Bitte poste ein Minimalbeispiel.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Xoon
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 20. Jul 2016, 10:58
Wohnort: Donaueschingen

Beitrag von Xoon »

Beim Bauen des Minimalbeispiels tritt der Fehler nun nicht mehr auf. Ich mach mich noch auf die Suche, wann er genau auftritt und poste dann nochmal wo das Problem lag.

Trotzdem hier das funktionierende Minimalbeispiel:
\documentclass[
final,
11pt,
onehalfspacing,
dvipsnames]
{scrbook}

\usepackage{xcolor}
\usepackage{listings}
\lstdefinelanguage{DIN}
{	morecomment=[s]{(} {)},
	mathescape
}

\lstdefinestyle{DIN}{
	language=DIN,
	aboveskip=2.2em,
	frame=L,
	captionpos=b,
	basicstyle=\color{Black}\scriptsize\ttfamily,
	stringstyle=\color{Orange}\ttfamily,
	commentstyle=\color{ForestGreen}\ttfamily,
}
\begin{document}
	
\lstset{style=DIN}
\begin{lstlisting}
%
O1234
(Kommentar)
N1 G00 X100
N2 M30
%
\end{lstlisting}
	
\end{document}

Xoon
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 20. Jul 2016, 10:58
Wohnort: Donaueschingen

Beitrag von Xoon »

Ok habs gefunden. Der Fehler tritt auf, wenn man im lstdefinestyle breaklines auf True setzt. Hier nochmal entsprechendes Beispiel
\documentclass[
final,
11pt,
onehalfspacing,
dvipsnames]
{scrbook}

\usepackage{xcolor}
\usepackage{listings}
\lstdefinelanguage{DIN}
{   morecomment=[s]{(} {)},
   mathescape
}

\lstdefinestyle{DIN}{
   language=DIN,
   aboveskip=2.2em,
   frame=L,
   captionpos=b,
   basicstyle=\color{Black}\scriptsize\ttfamily,
   stringstyle=\color{Orange}\ttfamily,
   commentstyle=\color{ForestGreen}\ttfamily,
   breaklines=true
}
\begin{document}
   
\lstset{style=DIN}
\begin{lstlisting}
%
O1234
(Kommentar)
N1 G00 X100
N2 M30
%
\end{lstlisting}
   
\end{document}
Hat jemand einen Workaround mit dem sich breaklines nutzen lässt?

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

Beitrag von Bartman »

Problem with literate and breaklines=true in listings package

Ich habe den dortigen Text nur überflogen und weiß nicht, ob der erwähnte Patch, abgesehen von der sichtbaren Veränderung, wirklich für Dein Anliegen geeignet ist.
\documentclass[
	final,
%	fontsize=11pt, % Voreinstellung
	dvipsnames]
{scrbook}

\usepackage{xcolor}
\usepackage{listings}
\usepackage{etoolbox}

\makeatletter
\patchcmd{\lsthk@SelectCharTable}{`)}{``}{}{}
\makeatother

\lstdefinelanguage{DIN}{
	morecomment=[s]{(} {)},
	mathescape
}

\lstdefinestyle{DIN}{
   language=DIN,
   aboveskip=2.2em,
   frame=L,
   captionpos=b,
   basicstyle=\color{Black}\scriptsize\ttfamily,
   stringstyle=\color{Orange}\ttfamily,
   commentstyle=\color{ForestGreen}\ttfamily,
   breaklines=true
}
\begin{document}

\begin{lstlisting}[style=DIN]
%
O1234
(Kommentar)
N1 G00 X100
N2 M30
%
\end{lstlisting}
   
\end{document}

Xoon
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 20. Jul 2016, 10:58
Wohnort: Donaueschingen

Beitrag von Xoon »

Der Patch triff genau mein Anliegen.

Vielen Dank.

Antworten