Seite 1 von 1

lstlisting einfache Klammern für Kommentare

Verfasst: Mi 20. Jul 2016, 11:10
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?

Verfasst: Mi 20. Jul 2016, 11:13
von Johannes_B
Bitte poste ein Minimalbeispiel.

Verfasst: Mi 20. Jul 2016, 11:59
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}

Verfasst: Mi 20. Jul 2016, 14:07
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?

Verfasst: Mi 20. Jul 2016, 15:09
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}

Verfasst: Mi 20. Jul 2016, 16:26
von Xoon
Der Patch triff genau mein Anliegen.

Vielen Dank.