可能重复:
如何对列表使用不同的 lstset 设置?
我将自己的环境定义为:
\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}
}
当我在文档中运行它时,例如:
\begin{codegui}{C}{true}{true}
#include <stdio.h>
int main(){
printf("hello world");
return 0;
}
\end{codegui}
我有错误:
! Package Listings Error: language C undefined.
! Emergency stop.
我尝试找出答案,但找不到。请帮帮我!
附录:
- 参数
#1
是 C 或 Matlab, - 参数
#2
为真或假, - 参数
#3
相同#2
答案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
}{%
}
我用\lstnewenvironment
它来定义,效果很好。