在一个列表中突出显示一大块代码

Rya*_*rio 29 latex listings pdftex

我在一个lstlisting环境中有一堆代码.如何突出(颜色背景)环境中的特定代码块?

Iul*_*gos 34

您可以在列表中使用\ colorbox和转义字符:

添加到您的序言中

  \usepackage{color}

  \definecolor{light-gray}{gray}{0.80}
Run Code Online (Sandbox Code Playgroud)

然后在你的文档中使用它:

  \begin{lstlisting}[escapechar=!]
  def mult(m: Matrix[Int], n: Matrix[Int]) {
    val p = !\colorbox{light-gray}{new MatrixInt}!(m.rows, n.cols)
  }
  \end{lstlisting}
Run Code Online (Sandbox Code Playgroud)

  • 很好,但它不适用于多行,你正在失去`colorbox`内的语法高亮. (7认同)

Ant*_*nko 9

这有点麻烦,但您可以将代码分解为多个lstlisting环境.

\begin{lstlisting}
line
\end{lstlisting}
\vspace{-\baselineskip}
\begin{lstlisting}[backgroundcolor=\color{pink}]
very
interesting
\end{lstlisting}
\vspace{-\baselineskip}
\begin{lstlisting}
line
line
\end{lstlisting}
Run Code Online (Sandbox Code Playgroud)

  • 事实证明,编号问题有一个更好的解决方案:使用`name`关键字(例如`\ begin {lstlisting} [name = asdf,...`).名称未显示,默认情况下,具有相同名称的`lstlisting`环境共享一个行计数器. (3认同)