Quaneu
05-05-2010, 09:46
Hallo,
habe wie der Titel schon sagt ein Problem mit keywords bei dem Packet Listings.
Er will einfach die keywords nicht fett schreiben. Die Kommentare macht er richtig aber sonst macht er "nix". Weiß einfach net was ich falsch mache...
Hier ein Bsp.: (muss leider die ganzen Packete laden, da ich diese in meinem Document brauche)
\documentclass[11pt,a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[table]{xcolor}
\usepackage[latin1]{inputenc}
\usepackage[intlimits,sumlimits]{amsmath}
\usepackage{pst-pdf}
\usepackage{pst-all}
\usepackage{pstricks-add}
\usepackage{enumitem}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{amsthm}
\usepackage{parskip}
\usepackage{keyval}
\usepackage{listings}
\usepackage{hyperref}
\usepackage{subfig}
\usepackage{graphicx}
\usepackage{array}
\usepackage{tabularx}
\begin{document}
\lstset{language=[Visual]C++, escapeinside={(*@}{@*)}, basicstyle=\small\ttfamily, frame=tb, morekeywords={max, Fitness, min, Crossover, Mutate, random}, breaklines=true, breakautoindent=false, breakindent=69pt}
\begin{lstlisting}[caption={Pseudo--Code: GSA--Verfahren}, basicstyle=\small\ttfamily, columns=fixed]
Intitalisiere: T // Höhe der Abkühltemperatur
Intitalisiere: M // Größe der Anfangspopulation
Intitalisiere: (*@$\gamma$@*) // (*@$0 < \gamma < 1$@*)
Intitalisiere: (*@$P$@*) mit (*@$\left|P\right|=M$@*) // Anfangspopulation
x_best = max(Fitness((*@$P$@*)));
x_globel = x_best;
while( )
{
x_worst = min(Fitness((*@$P$@*)));
x_worst = Crossover((*@$s\in P, k\in P$@*)); // Fitness((*@$s$@*)) (*@$\neq$@*)Fitness((*@$k$@*))
while()
{
for(l = 0; l < ???; l++)
{
x_mut = Mutate(P_i);
(*@$\Delta$@*) = Fitness(x_mut) - Fitness(P_i);
if((*@$\Delta$@*) < 0 || random(0,1) < (*@$\exp^{-\frac{\Delta}{T}}$@*))
{
x_i = x_mut;
}
if(Fitness(x_i) < Fitness(x_best))
{
x_best = x_i;
}
T *= (*@$\gamma$@*); // Temperatur reduzieren
}
}
if(Fitness(x_best) < Fitness(x_global))
{
x_global = x_best;
}
x_worst = x_best;
Fitness(x_best) = (*@$+\infty$@*);
}
return x_best
\end{lstlisting}
\end{document}
Schon mal jetzt vielen Dank für eure Hilfe
Quaneu
habe wie der Titel schon sagt ein Problem mit keywords bei dem Packet Listings.
Er will einfach die keywords nicht fett schreiben. Die Kommentare macht er richtig aber sonst macht er "nix". Weiß einfach net was ich falsch mache...
Hier ein Bsp.: (muss leider die ganzen Packete laden, da ich diese in meinem Document brauche)
\documentclass[11pt,a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[table]{xcolor}
\usepackage[latin1]{inputenc}
\usepackage[intlimits,sumlimits]{amsmath}
\usepackage{pst-pdf}
\usepackage{pst-all}
\usepackage{pstricks-add}
\usepackage{enumitem}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{amsthm}
\usepackage{parskip}
\usepackage{keyval}
\usepackage{listings}
\usepackage{hyperref}
\usepackage{subfig}
\usepackage{graphicx}
\usepackage{array}
\usepackage{tabularx}
\begin{document}
\lstset{language=[Visual]C++, escapeinside={(*@}{@*)}, basicstyle=\small\ttfamily, frame=tb, morekeywords={max, Fitness, min, Crossover, Mutate, random}, breaklines=true, breakautoindent=false, breakindent=69pt}
\begin{lstlisting}[caption={Pseudo--Code: GSA--Verfahren}, basicstyle=\small\ttfamily, columns=fixed]
Intitalisiere: T // Höhe der Abkühltemperatur
Intitalisiere: M // Größe der Anfangspopulation
Intitalisiere: (*@$\gamma$@*) // (*@$0 < \gamma < 1$@*)
Intitalisiere: (*@$P$@*) mit (*@$\left|P\right|=M$@*) // Anfangspopulation
x_best = max(Fitness((*@$P$@*)));
x_globel = x_best;
while( )
{
x_worst = min(Fitness((*@$P$@*)));
x_worst = Crossover((*@$s\in P, k\in P$@*)); // Fitness((*@$s$@*)) (*@$\neq$@*)Fitness((*@$k$@*))
while()
{
for(l = 0; l < ???; l++)
{
x_mut = Mutate(P_i);
(*@$\Delta$@*) = Fitness(x_mut) - Fitness(P_i);
if((*@$\Delta$@*) < 0 || random(0,1) < (*@$\exp^{-\frac{\Delta}{T}}$@*))
{
x_i = x_mut;
}
if(Fitness(x_i) < Fitness(x_best))
{
x_best = x_i;
}
T *= (*@$\gamma$@*); // Temperatur reduzieren
}
}
if(Fitness(x_best) < Fitness(x_global))
{
x_global = x_best;
}
x_worst = x_best;
Fitness(x_best) = (*@$+\infty$@*);
}
return x_best
\end{lstlisting}
\end{document}
Schon mal jetzt vielen Dank für eure Hilfe
Quaneu