在列表中添加“其他关键词”-如何避免在字符串中突出显示它们?

在列表中添加“其他关键词”-如何避免在字符串中突出显示它们?

我正在使用listingsPython 代码包,并且已经设置

otherkeywords={self,__init__}

这样做的一个意想不到的副作用似乎是,在如下字符串中

"self_loathing"

self部分被突出显示为关键字,而其余部分则突出显示为字符串。 有办法避免这种情况吗?

答案1

在这里,跟随带列表的彩色单词,我用morekeywords来代替otherkeywords,来描述self

\documentclass{article}

\usepackage{xcolor}

\definecolor{main-color}{rgb}{0.6627, 0.7176, 0.7764}
\definecolor{back-color}{rgb}{0.1686, 0.1686, 0.1686}
\definecolor{string-color}{rgb}{0.3333, 0.5254, 0.345}
\definecolor{key-color}{rgb}{0.8, 0.47, 0.196}

\usepackage{listings}

\lstdefinestyle{mystyle}
{
    language = C++,
    basicstyle = {\ttfamily \color{main-color}},
    backgroundcolor = {\color{back-color}},
    stringstyle = {\color{string-color}},
    otherkeywords = {;},
    morekeywords = {self},
    keywordstyle = {\color{key-color}},
    alsoletter = {_},
}

\begin{document}

\begin{lstlisting}[style = mystyle]
#include <iostream>

using namespace std;

int x = 2;

//comment
for (self = 0; self < x; ++self) {
    cout << "self_loathing" << endl;
}
\end{lstlisting}

\end{document}

在此处输入图片描述

如果我添加selfotherkeywords不是morekeywords,我会得到OP描述的问题:

在此处输入图片描述

相关内容