lstlisting einfache Klammern für Kommentare

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: lstlisting einfache Klammern für Kommentare

von Xoon » Mi 20. Jul 2016, 16:26

Der Patch triff genau mein Anliegen.

Vielen Dank.

von Bartman » Mi 20. Jul 2016, 15:09

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}

von Xoon » Mi 20. Jul 2016, 14:07

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?

von Xoon » Mi 20. Jul 2016, 11:59

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}

von Johannes_B » Mi 20. Jul 2016, 11:13

Bitte poste ein Minimalbeispiel.

lstlisting einfache Klammern für Kommentare

von Xoon » Mi 20. Jul 2016, 11:10

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?

Nach oben