我正在编写一些 C++ 列表。我更希望使用更多关键字突出显示(例如cout
,,,,,
cerr
等等endl
)。但是,当我定义为关键字时,指令也会突出显示。ifstream
string
string
#include
\documentclass{scrartcl}
\usepackage{listings}
\usepackage{xcolor}
\begin{document}
\begin{lstlisting}[
language=c++,
keywordstyle=\color{red},
morekeywords={string, cout, endl}
]
#include <string>
#include <iostream>
string s;
cout << s << endl;
\end{lstlisting}
\end{document}
结果是:
我希望string
后面的单词#include
不被突出显示。
答案1
<string>
您可以对文本部分使用例外。
这不是一个完美的解决方案,但它有效。我已将所有选项移至\lstset
块中。
\documentclass{scrartcl}
\usepackage{listings}
\usepackage{xcolor}
\begin{document}
\lstset{
language=c++,
mathescape,
morekeywords={string, cout, endl},keywordstyle=\color{red},
morecomment=[l][\color{black}]{<string>}
}
\begin{lstlisting}
#include <string>
#include <iostream>
string s;
cout << s << endl;
\end{lstlisting}
\end{document}