我正在尝试使用 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}