我想知道,列表是否允许您定义自己的语法突出显示,如果是,它的系统有多复杂?
这是一个简单的例子:
\documentclass{article}
\usepackage{listings}
\lstset{emph={%
{:-}%
},emphstyle={\color{red}\bfseries\underbar}%
}%
\begin{document}
\begin{lstlisting}[language=Prolog]
foo(Arg1, Arg2) :-
bar(Arg3),
baz(Arg4),
length([1,2,3], 3).
\end{lstlisting}
\end{document}
理想情况下,在下面的代码示例中,“foo”将被突出显示(因为它声明了一个新子句),“:-”也是如此。
我尝试使用 emph 和 morekeywords 来突出显示 :-,但都不起作用。它们似乎适用于“for”和“while”等常规单词,但不适合序列“:-”。有没有一种特殊的方法来转义它以添加关键字?
为了突出显示 :- 之前的谓词名称,我不知道该如何解决。这不是必需的,但如果我能让它工作就好了。我可以定义自定义语法/语法来突出显示 Prolog 吗?