[Tex/LaTex] Lstlisting in beamer presentation

beamerlistings

I would like to insert a source code listing into my beamer presentation.
I learnt that we cannot use lstlisting directly in the frame environment, so
I am using the following trick:

\defverbatim[colored]\makeset{
\begin{lstlisting}[language=C++,basicstyle=\ttfamily,keywordstyle=\color{blue}]
void make_set(int X) {
  parent[X] = X;
}
\end{lstlisting}
}

\begin{frame}
\makeset
\end{frame}

My lstset is:

\lstset{ %
  backgroundcolor=\color{white}, 
  basicstyle=\footnotesize,       
  breakatwhitespace=false,        
  breaklines=true,                 
  captionpos=b,                    
  commentstyle=\color{mygreen},   
  escapeinside={\%*}{*)},        
  extendedchars=true,              
  frame=single,                  
  keywordstyle=\color{blue},       
  language=Prolog,                
  numbers=left,                    
  numbersep=5pt,                   
  numberstyle=\tiny\color{mygray},
  rulecolor=\color{black},        
  showspaces=false,               
  showstringspaces=false,          
  showtabs=false,                  
  stepnumber=2,                    
  stringstyle=\color{mymauve},   
  tabsize=2,                      
  title=\lstname,                  
  morekeywords={not,\},\{,preconditions,effects },            
  deletekeywords={time}            
}

Unfortunatelty the resulting slide has a thick grey line after the code:

enter image description here

Is there any way to remove the line?

Best Answer

I have found the problem. The grey area displayed is for the caption of the code. Apparently it is grey because of the beamer style I am using.

So, setting captionpos to n in lstset fixes the problem.