PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Matlab Quellcode mit listings package darstellen



chris1234567
01-04-2009, 16:44
Ich möchte den Quellcode den ich in Matlab geschrieben habe mit dem listings package darstellen. Das funktioniert auch. Allerdings möchte ich, dass das Wort "ones" erkannt wird und blau dargestellt wird. Obwohl "ones" in der liste für die blau dargestellten Wörter ist, stimmt die Darstellung nicht. Hat jemand Vorschläge?

Das Beispiel lässt sich kompilieren!


\documentclass[a4paper,bibtotoc,oneside,fleqn]{scrbook}
\usepackage{amsmath,amssymb,amsfonts,amstext}

% highlighting
\usepackage{xcolor,soul}

% listings print source code
\usepackage{listings}

% define colors for source code list
\definecolor{colKeys}{rgb}{0,0,1}
\definecolor{colIdentifier}{rgb}{0,0,0}
\definecolor{colComments}{rgb}{0,1,0.3}
\definecolor{colString}{rgb}{0,0.5,0}

\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}

\lstset{language=Matlab,
keywords={break,case,catch,continue,else,elseif,en d,for,function,
global,if,otherwise,persistent,return,switch,try,w hile,ones,zeros},
float=hbp,
basicstyle=\ttfamily\small,
identifierstyle=\color{colIdentifier},
keywordstyle=\color{blue},
commentstyle=\color{red},
stringstyle=\color{dkgreen},
columns=flexible,
tabsize=2,
frame=single,
numbers=left,
extendedchars=true,
showspaces=false,
numberstyle=\tiny\color{gray},
stepnumber=1,
numbersep=10pt,
showspaces=false,
showstringspaces=false,
breakautoindent=true}


\begin{filecontents}{matlab.m}

function [u1] = function(a,b,c)

% Resonanzfrequenzen
f1 = 10.7e6;

iA = ones(1,N);
iB = zeros(1,N);

\end{filecontents}


\begin{document}

\lstset{language=Matlab}
\lstinputlisting[breaklines=true]{matlab.m}


\end{document}
BG
C

Stefan_K
01-04-2009, 17:16
Hallo Chris,

Du verwendest in der Präambel \lstset und später erneut. Schau es Dir einmal an, wenn Du das \lstset{language=Matlab} direkt vor \lstinputlisting entfernst. Man könnte übrigens auch morekeywords={ones} verwenden.

Viele Grüße,

Stefan

chris1234567
02-04-2009, 11:09
so funktioniert es dann auch


\documentclass[a4paper,bibtotoc,oneside,fleqn]{scrbook}
\usepackage{amsmath,amssymb,amsfonts,amstext}

% highlighting
\usepackage{xcolor,soul}

% listings print source code
\usepackage{listings}

% define colors for source code list
\definecolor{colKeys}{rgb}{0,0,1}
\definecolor{colIdentifier}{rgb}{0,0,0}
\definecolor{colComments}{rgb}{0,1,0.3}
\definecolor{colString}{rgb}{0,0.5,0}

\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}

\lstset{language=Matlab,
keywords={break,case,catch,continue,else,elseif,en d,for,function,
global,if,otherwise,persistent,return,switch,try,w hile,ones,zeros},
float=hbp,
basicstyle=\ttfamily\small,
identifierstyle=\color{colIdentifier},
keywordstyle=\color{blue},
commentstyle=\color{red},
stringstyle=\color{dkgreen},
columns=flexible,
tabsize=2,
frame=single,
numbers=left,
extendedchars=true,
showspaces=false,
numberstyle=\tiny\color{gray},
stepnumber=1,
numbersep=10pt,
showspaces=false,
showstringspaces=false,
breakautoindent=true}


\begin{filecontents}{matlab.m}

function [u1] = function(a,b,c)

% Resonanzfrequenzen
f1 = 10.7e6;

iA = ones(1,N);
iB = zeros(1,N);

\end{filecontents}


\begin{document}

\lstinputlisting[breaklines=true]{matlab.m}


\end{document}

vielen dank für den hinweis
bg
c