如何从列表样式中删除#关键字?

如何从列表样式中删除#关键字?

我有一段代码要放入用 LaTeX 编写的论文中。

我不希望它突出显示任何以 # 符号开头的关键字,例如 #define 或 #pragma。以下是我现在拥有的 MWE:

\documentclass[10pt,journal,compsoc]{IEEEtran}

\newcommand{\us}{\char`_}
\usepackage{listings}
\usepackage{color}
\usepackage{float}
\lstdefinestyle{cpp_onecol}{
    language=C++,
    basicstyle=\small\ttfamily,
    breaklines=true,
    morekeywords={CHECK},
    keywordstyle=\color{black}\bfseries\itshape,
    commentstyle=\color{black}\bfseries,
    alsoother={\#},
    deletekeywords ={\#pragma}
}
\begin{document}

\begin{figure}
\begin{lstlisting}[style=cpp_onecol]
#pragma hello
#define I_DONT_LIKE_POUNDSIGN 1

int a;
int b;
volatile int c;   

\end{lstlisting}
\begin{lstlisting}[caption=Stupid hashtag.]
\end{lstlisting}
\end{figure} 

\end{document}

这将生成:

英镑符号仍然突出显示。

我尝试寻找解决方案,但我认为 # 也破坏了我的搜索结果。我找到的唯一一个建议添加,alsoother={\#},但这根本没有帮助。

答案1

我找到了答案。我添加了一个带有井号的 removedelim。

以下是 MWE:

\documentclass[10pt,journal,compsoc]{IEEEtran}

\newcommand{\us}{\char`_}
\usepackage{listings}
\usepackage{color}
\usepackage{float}
\lstdefinestyle{cpp_onecol}{
    language = C++,
    basicstyle=\small\ttfamily,
    breaklines=true,
    morekeywords={CHECK},
    keywordstyle=\color{black}\bfseries\itshape,
    commentstyle=\color{black}\bfseries,
    alsoother={\#},
    deletekeywords ={\#pragma},
    deletedelim=*[directive]\#
}
\begin{document}

\begin{figure}
\begin{lstlisting}[style=cpp_onecol]
#pragma hello
#define I_DONT_LIKE_POUNDSIGN 1

int a;
int b;
volatile int c;  

// Hello! 

\end{lstlisting}
\begin{lstlisting}[caption=Stupid hashtag.]
\end{lstlisting}
\end{figure} 

\end{document}

结果如下:

修复!

相关内容