Difference between revisions of "Listings in Latex"

From Klaus' wiki
Jump to: navigation, search
 
Line 4: Line 4:
 
\usepackage{color}
 
\usepackage{color}
 
% find color definitions on http://en.wikibooks.org/wiki/LaTeX/Colors
 
% find color definitions on http://en.wikibooks.org/wiki/LaTeX/Colors
 +
\usepackage[usenames,dvipsnames]{xcolor}
 +
\usepackage{textcomp}
  
 
\definecolor{listinggray}{gray}{0.9}
 
\definecolor{listinggray}{gray}{0.9}

Latest revision as of 14:09, 17 May 2012

Setup code listing like this:

\usepackage{color}
% find color definitions on http://en.wikibooks.org/wiki/LaTeX/Colors
\usepackage[usenames,dvipsnames]{xcolor} 
\usepackage{textcomp}
 
\definecolor{listinggray}{gray}{0.9}
\definecolor{lbcolor}{rgb}{0.9,0.9,0.9}
\lstset{
    backgroundcolor=\color{lbcolor},
    tabsize=2,
    rulecolor=,
    basicstyle=\scriptsize,
    upquote=true,
    aboveskip={1.5\baselineskip},
    columns=fixed,
    showstringspaces=false,
    extendedchars=true,
    breaklines=true,
    prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},
    frame=single,
    showtabs=false,
    showspaces=false,
    showstringspaces=false,
    identifierstyle=\ttfamily,
    keywordstyle=\color{Purple},
    identifierstyle=\color{Black},
    commentstyle=\color{BrickRed},
    stringstyle=\color{RubineRed},
    captionpos=b,
}
\lstloadlanguages{
	% Check Dokumentation for further languages ...
        %[Visual]Basic
        %Pascal
        C,
        C++,
        %XML
        HTML,
        %Java,
        Erlang
}

Use the listings like this:

\lstset{language=Erlang}
\begin{lstlisting}[float, caption=The priority test program, label=PriorityTest]
%%
%% Launch a very long running process while launching a number of other
%% processes with Prio priority
%%
s (Prio) ->
	%% Launch one long calculation with low priority	  
	spawn (ef_erlangB, erlangBproc, [1000000000, 100000000, low]),
	%% Ensure that his process will enough priority to launch several other 
	%% processes while calculating
	process_flag (priority, high),
	%% Run 8 rounds of the test
	s (8, Prio).
 
%%
%% Run the longTest N times with Prio priority
%%
s (N, Prio) when (N > 0) ->
	%% Call longTest with Priority = Prio
	longTest(Prio),
	%% Tail recursively call s again
	s (N - 1, Prio);
 
%%
%% Stop the loop
%%
s(N, _Prio) when (N =:= 0) ->
	ok.
 
longTest(Prio) ->
	OffTrf = 100000,
	Res = 10000,
	Priority = Prio,
	spawn (ef_erlangB, erlangBproc, [OffTrf, Res, Priority]),
	spawn (ef_erlangB, erlangBproc, [OffTrf, Res, Priority]),
	spawn (ef_erlangB, erlangBproc, [OffTrf, Res, Priority]),
	spawn (ef_erlangB, erlangBproc, [OffTrf, Res, Priority]),
	spawn (ef_erlangB, erlangBproc, [OffTrf, Res, Priority]),
	spawn (ef_erlangB, erlangBproc, [OffTrf, Res, Priority]),
	spawn (ef_erlangB, erlangBproc, [OffTrf, Res, Priority]),
	spawn (ef_erlangB, erlangBproc, [OffTrf, Res, Priority]).
\end{lstlisting}

It will look like this when set in Latex:

PriorityTestProgramInLatex.png