%% WORKAROUND lstlinebgrd: https://tex.stackexchange.com/questions/451532/recent-issues-with-lstlinebgrd-package-with-listings-after-the-latters-updates %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \btIfInRange{number}{range list}{TRUE}{FALSE} % % Test if int number is element of a (comma separated) list of ranges % (such as: {1,3-5,7,10-12,14}) and processes or 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{range list} % \newcommand<>{\btLstHL}[1]{% % \only#2{\btIfInRange{\value{lstnumber}}{#1}{\color{blue!30}}{}}% \only#2{\btIfInRange{\value{lstnumber}}{#1}{\color{orange!30}\def\lst@linebgrdcmd{\color@block}}{\def\lst@linebgrdcmd####1####2####3{}}}% }% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \btInputEmph[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}}