我正在尝试使用 排版 makefile listings
。
现在我想要一些不同的突出显示,例如目标主体中的变量和普通命令。在此代码片段中,想要对VAR
和 进行不同的突出显示rm -rf
,但似乎可以设置样式的类只有identifierstyle
和stringstyle
。keywordstyle
后者几乎没有用,只突出显示内置函数(显然),但identifierstyle
基本上适用于所有内容,因此在这里完全没用。
\documentclass{scrartcl}
\usepackage{listings}
\begin{document}
\lstset{language=[gnu] make}
\lstset{
language=[gnu] make,
keywordstyle=\color{teal}\textbf,
stringstyle=\color{blue},
identifierstyle=\itshape
}
\begin{lstlisting}
VAR=foo
clean:
rm -rf $(VAR)
\end{lstlisting}
\end{document}
make
有人能解释一下为什么会这样吗(如果没有办法解决这个问题,语言定义有什么用?),或者为什么应该这样,或者 - 最好 - 一种不涉及手动指定关键字的解决方法?
编辑:我使用 取得了一些成功morecomment=[n]{$(}{)}
,但它很粗糙,并且无法实际突出显示注释。此外,当不被括号括起来时,也不会突出显示VAR
。有没有办法定义可以不同地突出显示的不同类别的注释?