1

Possible Duplicate:
How to use different lstset settings for listings?

I have defined my own environment as:

\newenvironment{codegui}[3]{%
\def\tmplanguage{#1}\relax
\def\tmpshowspaces{#2}\relax
\def\tmpshowtabs{#3}\relax
\lstset{language={\tmplanguage},%
showspaces={\tmpshowspaces}, 
showtabs={\tmpshowtabs}, tab=\rightarrowfill,
stepnumber=1, 
numbersep=5pt, 
keywordstyle=\bfseries, 
stringstyle=\ttfamily,
numbers=left, 
numberstyle=\tiny
}
\relax
\begin{lstlisting}
}{%
\end{lstlisting}
}

and when I run it in document such as:

\begin{codegui}{C}{true}{true}
#include <stdio.h>
int main(){
        printf("hello world");
        return 0;
}
\end{codegui}

I have erros:

! Package Listings Error: language C undefined.
! Emergency stop.

I try to find out but I can't. Please help me!

Addendum:

  • parameter #1 is C or Matlab,
  • parameter #2 is true or false,
  • parameter #3 is same as #2

1 Answers1

1
\lstnewenvironment{codegui}[3]{%
\lstset{language={#1},%
showspaces={#2},
showtabs={#3}, tab=\rightarrowfill, 
stepnumber=1,
numbersep=5pt, 
keywordstyle=\bfseries, 
stringstyle=\ttfamily,
numbers=left, 
numberstyle=\tiny
}\relax
}{%
}

I use \lstnewenvironment for the definition, and it works well.

Werner
  • 603,163