我使用该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 节以了解有关分隔符使用的更多信息。