突出显示源代码,保持间距完整

突出显示源代码,保持间距完整

我尝试使用列表中的颜色框突出显示某些代码行。

\documentclass[12pt,a4paper]{report}
\usepackage{xcolor}
\usepackage{listings}

\begin{document}

\lstdefinestyle{data}{
  backgroundcolor=\color{yellow},
  basicstyle=\ttfamily\small,
  escapechar=\%
}
\lstset{style=data}

\begin{lstlisting}
1       2       3       4
%\colorbox{gray}{1       2       3       4}%
5       6       7       8
\end{lstlisting}

\end{document}

姆韦

从示例中可以看出,似乎存在四个问题:

  1. 忽略所有间距;
  2. 上面有一行细细的空白;
  3. 字体稍微小了一点;
  4. 有一些缩进。

我可以轻松解决第四个问题(添加负空间),但其余的问题就没办法了。在中间添加 \hspace 可以解决第一个问题,但非常麻烦。

答案1

\documentclass{article}
\usepackage{listings,mdframed,xcolor}

\NewDocumentCommand{\hl}{v}{\hspace{-\fboxsep}\colorbox{gray}{#1}}

\lstset{
  basicstyle=\ttfamily\small,
  escapechar=\%,
  columns=fullflexible,
  keepspaces,
}

\mdfsetup{backgroundcolor=yellow,linewidth=0pt}

\begin{document}

\begin{mdframed}
\begin{lstlisting}
1       2       3       4
%\hl{1       2       3       4}%
5       6       7       8
\end{lstlisting}
\end{mdframed}

\end{document}

在此处输入图片描述

相关内容