使用 listings 包突出显示提示

使用 listings 包突出显示提示

我使用该listings软件包在我的讲义中排版了 Octave 语言(Matlab 的免费克隆)中的一系列命令。大多数命令行如下所示:

octave:1> A=eye(4)
A =

Diagonal Matrix

   1   0   0   0
   0   1   0   0
   0   0   1   0
   0   0   0   1

octave:2> det(A)
ans =  1
octave:3> 

如您所见,每个命令都以 形式作为提示符的前缀octave:N>,其中N是会话中的命令编号(可能有多个字符)。我不会跳过此提示符,因为我希望我的笔记看起来与学生的屏幕完全一样。输出行没有前缀。

我希望这个命令前缀能够被格式化为不同的颜色(灰色,表示它不如后面的内容那么重要)。

我该怎么做listings?在手册中,我只找到一个gobble忽略第一个的选项每一行的字符,但这在我的情况下不起作用,因为只有某些行有这个前缀。

答案1

这是你想要的吗?

代码

\documentclass{article}
\usepackage{listings,xcolor}
\lstset{
    language=Octave,
    moredelim=[s][\color{gray}]{octave:}{>}
}
\begin{document}
\begin{lstlisting}
octave:1> A=eye(4)
A =

Diagonal Matrix

   1   0   0   0
   0   1   0   0
   0   0   1   0
   0   0   0   1

octave:2> det(A)
ans =  1
octave:3>
\end{lstlisting}
\end{document}

输出

输出已发布代码

moredelim

moredelim定义了新的分隔符,用于在它们之间手动格式化文本。在这种情况下,分隔符是octave:>,并且它们不会被丢弃(如果使用[is]而不是,则会发生这种情况[s])。
请参阅手册第 3.3 和 4.5 节以了解有关分隔符使用的更多信息。

相关内容