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

问题描述 投票:28回答:3

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

latex listings pdftex
3个回答
34
投票

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

添加到您的序言中

  \usepackage{color}

  \definecolor{light-gray}{gray}{0.80}

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

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

6
投票

这有点麻烦,但您可以将代码分解为几个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}

0
投票

列表包提供backgroundcolor = \ color {}作为选项,但我确信它会产生整个BG颜色,而不是块。

你可以看看把它放在一个带颜色的parbox或colorbox包。

© www.soinside.com 2019 - 2024. All rights reserved.