Latex 由列表包绘制的背景色条纹

Latex 由列表包绘制的背景色条纹,latex,listings,Latex,Listings,我正在尝试创建一个带有彩色背景的逐字记录环境,它可以跨越多个页面(因此使用颜色框不是一个选项)。清单包似乎是一个很好的方法,但是背景一次画一条线,因此,当我查看PDF时,我看到线之间有恼人的白色“条纹”,以及不可见(0pt)帧规则的地方: 下面是我用来创建图中所示输出的最小代码: \documentclass{minimal} \usepackage[pdftex]{xcolor} \usepackage[a4paper,hmargin=6cm]{geometry} \usepackage{l

我正在尝试创建一个带有彩色背景的逐字记录环境,它可以跨越多个页面(因此使用颜色框不是一个选项)。清单包似乎是一个很好的方法,但是背景一次画一条线,因此,当我查看PDF时,我看到线之间有恼人的白色“条纹”,以及不可见(0pt)帧规则的地方:

下面是我用来创建图中所示输出的最小代码:

\documentclass{minimal}
\usepackage[pdftex]{xcolor}
\usepackage[a4paper,hmargin=6cm]{geometry}
\usepackage{listings}
\lstset{backgroundcolor=\color{gray},
  frame=single, framerule=0pt, framesep=5pt}
\begin{document}

\begin{lstlisting}
 if (a < b)
 {
    printf("A is smaller than  B!\n");
 }
 a = b;
\end{lstlisting}

\end{document}
\documentclass{minimal}
\usepackage[pdftex]{xcolor}
\usepackage[a4paper,hmargin=6cm]{geometry}
\usepackage{listings}
\lstset{backgroundcolor=\color{gray},
frame=single,framerule=0pt,framesep=5pt}
\开始{document}
\开始{lstlisting}
if(a

对于这些“条纹”有什么解决办法吗?

一个简单的解决办法是不为列表本身指定颜色,而是使用
\colorbox
,但要想实现这一点,您需要使用
\lsInputListing
或使用
lrbox
将结果存储在一个框中

\newbox{\mybox}
\begin{lrbox}{\mybox}
\begin{minipage}{\linewidth}
\begin{lstlisting}
 if (a < b)
 {
    printf("A is smaller than  B!\n");
 }
 a = b;
\end{lstlisting}
\end{minipage}
\end{lrbox}
\colorbox{gray}{\usebox{\mybox}}
\newbox{\mybox}
\开始{lrbox}{\mybox}
\开始{minipage}{\linewidth}
\开始{lstlisting}
if(a
更新:然而,更漂亮的解决方案是使用,它还允许源代码跨越多个页面

\documentclass{minimal}
\usepackage[pdftex]{xcolor}
\usepackage[a4paper,hmargin=6cm]{geometry}
\usepackage{listings}
\usepackage{framed}
\begin{document}

\definecolor{shadecolor}{named}{gray} 
\begin{shaded}
\begin{lstlisting}
 if (a < b)
 {
    printf("A is smaller than  B!\n");
 }
 a = b;
\end{lstlisting}
\end{shaded}

\end{document}
\documentclass{minimal}
\usepackage[pdftex]{xcolor}
\usepackage[a4paper,hmargin=6cm]{geometry}
\usepackage{listings}
\usepackage{framed}
\开始{document}
\定义颜色{shadecolor}{named}{gray}
\开始{着色}
\开始{lstlisting}
if(a
问题在于,通过将其包装在\colorbox中,lstlisting环境失去了跨页面的可能性。Hi grddev。我喜欢您使用
框架
包的解决方案。一个问题是行号和标题全部或部分被阴影框遮挡。你知道附近有什么工作吗?谢谢,不谈主题。属于德克萨斯州东南部