beamer add tag
Khaaba (imported from SE)
This question is in continuation of the earlier [question][1] in which it has been modified to include background color along with `linebackground` color in few lines of code. MWE is given below:

	\documentclass{beamer}
	
	\usepackage{listings, pgffor}
	
	\makeatletter
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	  %
	  % \btIfInRange{number}{range list}{TRUE}{FALSE}
	  %
	  % Test if int number <number> is element of a (comma separated) list of ranges
	  % (such as: {1,3-5,7,10-12,14}) and processes <TRUE> or <FALSE> respectively
	
	\newcount\bt@rangea
	\newcount\bt@rangeb
	
	\newcommand\btIfInRange[2]{%
		\global\let\bt@inrange\@secondoftwo%
		\edef\bt@rangelist{#2}%
		\foreach \range in \bt@rangelist {%
			\afterassignment\bt@getrangeb%
			\bt@rangea=0\range\relax%
			\pgfmathtruncatemacro\result{ ( #1 >= \bt@rangea) && (#1 <= \bt@rangeb) }%
			\ifnum\result=1\relax%
				\breakforeach%
				\global\let\bt@inrange\@firstoftwo%
			\fi%
		}%
		\bt@inrange%
	}%
	\newcommand\bt@getrangeb{%
		\@ifnextchar\relax%
			{\bt@rangeb=\bt@rangea}%
			{\@getrangeb}%
	}%
	\def\@getrangeb-#1\relax{%
		\ifx\relax#1\relax%
			\bt@rangeb=100000%   \maxdimen is too large for pgfmath
		\else%
			\bt@rangeb=#1\relax%
		\fi%
	}%
	
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	  %
	  % \btLstHL<overlay spec>{range list}
	  %
	\newcommand<>{\btLstHL}[1]{%
		\only#2{\btIfInRange{\value{lstnumber}}{#1}{\color{blue!30}}{}}%
	}%
	
	
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	  %
	  % \btInputEmph<overlay spec>[listing options]{range list}{file name}
	  %
	\newcommand<>{\btLstInputEmph}[3][\empty]{%                                                    
		\only#4{%
			\lstset{linebackgroundcolor=\btLstHL{#2}}%
			\lstinputlisting{#3}%
		}% \only
	}%
	\makeatletter
		\let\old@lstKV@SwitchCases\lstKV@SwitchCases
		\def\lstKV@SwitchCases#1#2#3{}
	\makeatother
	\usepackage{lstlinebgrd}
	\makeatletter
		\let\lstKV@SwitchCases\old@lstKV@SwitchCases
		\lst@Key{numbers}{none}{%
		\def\lst@PlaceNumber{\lst@linebgrd}%
		\lstKV@SwitchCases{#1}%
			{none:\\%
			left:\def\lst@PlaceNumber{\llap{\normalfont
				\lst@numberstyle{\thelstnumber}\kern\lst@numbersep}	\lst@linebgrd}\\%
			right:\def\lst@PlaceNumber{\rlap{\normalfont
				\kern\linewidth \kern\lst@numbersep
				\lst@numberstyle{\thelstnumber}}\lst@linebgrd}%
		}{\PackageError{Listings}{Numbers #1 unknown}\@ehc}}
	\makeatother
	
	\begin{document}
	
	\begin{frame}[fragile]{Problem}
	Test programme:
	\begin{lstlisting}[%
		language=C, 
		gobble=4, 
	%	linebackgroundcolor={%
	%		\btLstHL<1>{1,3,5-6}%
	%		\btLstHL<2>{4}%
	%	},
		backgroundcolor=\color{gray!10}
	]
		#include <stdio.h>
	
		int main(void) {%
		printf("Hello World!");  
			return 0;
		}
	\end{lstlisting}
	\end{frame}
	\end{document}

This MWE [except backgroundcolor key] was provided by [@moewe](https://tex.stackexchange.com/users/35864/moewe). Now when I use both keys: `linebackgroundcolor` and `backgroundcolor`, color option of `backgroundcolor` stops working. I tried contacting the author of the package but not succeeded. Any suggestion for work around please.

  [1]: https://tex.stackexchange.com/q/451532/18678
Top Answer
samcarter (imported from SE)
The background colour works fine in principle, the problem is that highlighting macro you use fill not only lines to highlight, it fill all other lines with white and thus covers up the gray background. 

As a workaround, you can adjust the `\btLstHL` as in the following example:

    \documentclass{beamer}
    
    \usepackage{listings, pgffor}
    
    \makeatletter
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      %
      % \btIfInRange{number}{range list}{TRUE}{FALSE}
      %
      % Test if int number <number> is element of a (comma separated) list of ranges
      % (such as: {1,3-5,7,10-12,14}) and processes <TRUE> or <FALSE> respectively
    
    \newcount\bt@rangea
    \newcount\bt@rangeb
    
    \newcommand\btIfInRange[2]{%
        \global\let\bt@inrange\@secondoftwo%
        \edef\bt@rangelist{#2}%
        \foreach \range in \bt@rangelist {%
            \afterassignment\bt@getrangeb%
            \bt@rangea=0\range\relax%
            \pgfmathtruncatemacro\result{ ( #1 >= \bt@rangea) && (#1 <= \bt@rangeb) }%
            \ifnum\result=1\relax%
                \breakforeach%
                \global\let\bt@inrange\@firstoftwo%
            \fi%
        }%
        \bt@inrange%
    }%
    \newcommand\bt@getrangeb{%
        \@ifnextchar\relax%
            {\bt@rangeb=\bt@rangea}%
            {\@getrangeb}%
    }%
    \def\@getrangeb-#1\relax{%
        \ifx\relax#1\relax%
            \bt@rangeb=100000%   \maxdimen is too large for pgfmath
        \else%
            \bt@rangeb=#1\relax%
        \fi%
    }%
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      %
      % \btLstHL<overlay spec>{range list}
      %
    \newcommand<>{\btLstHL}[1]{%
        \only#2{\btIfInRange{\value{lstnumber}}{#1}{\color{blue!30}}{\color{gray!20}}}%
    }%
    
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      %
      % \btInputEmph<overlay spec>[listing options]{range list}{file name}
      %
    \newcommand<>{\btLstInputEmph}[3][\empty]{%                                                    
        \only#4{%
            \lstset{linebackgroundcolor=\btLstHL{#2}}%
            \lstinputlisting{#3}%
        }% \only
    }%
    \makeatletter
        \let\old@lstKV@SwitchCases\lstKV@SwitchCases
        \def\lstKV@SwitchCases#1#2#3{}
    \makeatother
    \usepackage{lstlinebgrd}
    \makeatletter
        \let\lstKV@SwitchCases\old@lstKV@SwitchCases
        \lst@Key{numbers}{none}{%
        \def\lst@PlaceNumber{\lst@linebgrd}%
        \lstKV@SwitchCases{#1}%
            {none:\\%
            left:\def\lst@PlaceNumber{\llap{\normalfont
                \lst@numberstyle{\thelstnumber}\kern\lst@numbersep} \lst@linebgrd}\\%
            right:\def\lst@PlaceNumber{\rlap{\normalfont
                \kern\linewidth \kern\lst@numbersep
                \lst@numberstyle{\thelstnumber}}\lst@linebgrd}%
        }{\PackageError{Listings}{Numbers #1 unknown}\@ehc}}
    \makeatother
    
    \begin{document}
    
    \begin{frame}[fragile]{Problem}
    Test programme:
    \begin{lstlisting}[%
        language=C, 
        gobble=4, 
       linebackgroundcolor={%
           \btLstHL<1>{1,3,5-6}%
           \btLstHL<2>{4}%
       },
        backgroundcolor=\color{gray!20}
    ]
        #include <stdio.h>
    
        int main(void) {%
        printf("Hello World!");  
            return 0;
        }
    \end{lstlisting}
    \end{frame}
    \end{document}

[![enter image description here][1]][1]


  [1]: https://i.stack.imgur.com/hRKPb.png

This room is for discussion about this question.

Once logged in you can direct comments to any contributor here.

Enter question or answer id or url (and optionally further answer ids/urls from the same question) from

Separate each id/url with a space. No need to list your own answers; they will be imported automatically.