我有一段代码要放入用 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}
结果如下: