Listings 包中的 deletekeywords 有时不起作用

Listings 包中的 deletekeywords 有时不起作用

使用 listings 包,我可以使用deletekeywords删除关键字,这样关键字就不会以粗体显示。例如,for以下内容不是粗体:

\lstset{language=[]C++}
\begin{lstlisting}[deletekeywords={for}]
for (int i = 0; i < 8; i++) {}
\end{lstlisting}

这很有用,因为我喜欢在正文中使用相同的字体来显示小代码片段,但并不总是希望它与关键字一起以粗体显示。为了方便起见,我想出了两个命令:

\newcommand{\code}[1]{\lstinline[deletekeywords=#1]{#1}}
\newcommand{\codeb}[1]{\lstinline[morekeywords=#1]{#1}}

然而,使用 Fortran 则不行。do下文中的 仍以粗体显示。

\lstset{language=[]Fortran}
\begin{lstlisting}[deletekeywords={do}]
do i = 1,8
end do
\end{lstlisting}

有办法吗? 更普遍地在本地覆盖关键字/语言突出显示设置?

答案1

关键字“DO”在中定义为大写lstlang1.sty,而 Fortran 代码则表示sensitive=f;因此

deletekeywords={DO}

成功了。

相关内容