在现有语言列表中添加包含运算符的新关键字

在现有语言列表中添加包含运算符的新关键字

我正在尝试使用 listingspackage 输入一些 OPL(优化编程语言)代码。结果发现它看起来很像 Java,所以我使用 Java 作为“基础”。但是,Java 中没有我需要的一些关键字。我发现可以dvar使用以下方法添加关键字

\lstset{
  morekeywords={dvar}
}

但是,我还需要添加关键字int+,并且float+“+”也很重要。如果我这样做

\lstset{
      morekeywords={dvar,int+}
    }

我没有实现任何目标,因为似乎忽略了“+”。从以下内容

\begin{lstlisting}
int anInt = 25; // Declaration of an integer storing the value 25
dvar int+ hej;  // Declaration of a non-negative integer valued decision variable
\end{lstlisting}

我得到了输出

在此处输入图片描述

其中“+”似乎像代码中的普通运算符一样排版,而不是int像 中那样与 一起int+排版。如何添加包含“+”的新关键字?


为了完整性,下面是一个(最小的)工作示例

\documentclass{article}
\usepackage{xcolor}
\usepackage{listings,lstautogobble}
\definecolor{napiergreen}{rgb}{0.16, 0.5, 0.0}
\lstset{language=Java,
    keywordstyle=\color{blue},
    basicstyle=\scriptsize\ttfamily,
    commentstyle=\ttfamily\color{napiergreen},
    stringstyle=\ttfamily,
    rulecolor=\color{black},
    autogobble=true,    
    morekeywords={dvar,int+}
}
\begin{document}
    \begin{lstlisting}
        int+ anInt = 25; // Declaration of an integer storing the value 25
        dvar int+ hej;  // Declaration of a non-negative integer valued decision variable
    \end{lstlisting}
\end{document}

答案1

您可以+使用关键字来指示列表在语言定义时将其视为字母alsoletter。如下面的示例所示,只有+在定义的关键字中才会突出显示。

\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}

\begin{document}
\begin{lstlisting}[language=java,alsoletter={+},morekeywords={int+,dvar}, keywordstyle={\color{blue}},]
int+ anInt = 25; // Declaration of an integer storing the value 25
dvar int+ hej;  // Declaration of a non-negative integer valued decision variable
dvar+  foo+; 
int + foo;
int+ + foo+;
\end{lstlisting}

\end{document}

代码输出

相关内容