From bb88380c39955ed093fc8d2edef96bb704b0d467 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 4 May 2012 23:49:12 +0000 Subject: new package lstaddons 0.1 (3may12) git-svn-id: svn://tug.org/texlive/trunk@26196 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/lstaddons/lstautogobble.sty | 93 ++++++++++++++++++++++ .../texmf-dist/tex/latex/lstaddons/lstlinebgrd.sty | 71 +++++++++++++++++ 2 files changed, 164 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/lstaddons/lstautogobble.sty create mode 100644 Master/texmf-dist/tex/latex/lstaddons/lstlinebgrd.sty (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/lstaddons/lstautogobble.sty b/Master/texmf-dist/tex/latex/lstaddons/lstautogobble.sty new file mode 100644 index 00000000000..8f065b4a5c2 --- /dev/null +++ b/Master/texmf-dist/tex/latex/lstaddons/lstautogobble.sty @@ -0,0 +1,93 @@ +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ----------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files lstautogobble.dtx and lstaddons.ins +%% and the derived filebase lstautogobble.sty. +%% +\ProvidesPackage{lstautogobble}[% + 2012/05/03 + v0.1 + Implements 'autogobble' option for 'listings'] + +\RequirePackage{listings} + +\newcount\lstag@spacecount + +\def\lstag@activespace{\lst@ProcessSpace}% Definition of an active space +\def\lstag@tabulator{\lst@ProcessTabulator}% Definition of an tabulator + +\begingroup +\catcode`\^^M=\active% +\gdef\lstag@activenl{^^M}% Active CR (ASCII 13) character which is used as line break +\endgroup + +\lst@Key{autogobble}{false}[t]{\lstKV@SetIf{#1}\lst@ifautogobble} + +\lst@Key{ungobble}{0}{\def\lst@ungobble{#1}} + +\lst@AddToHook{Init}{\lst@autogobble} + +\def\lst@autogobble{% + \lst@ifautogobble + \ifnum\lst@gobble>0\else + \def\lst@gobble{\lstag@gobble}% + \def\lstag@gobble{0}% + \lstag@spacecount\z@ + \def\lstag@spaceaccu{}% + \let\lstag@restofline\empty + \let\lstag@origlstenv@Process\lstenv@Process + \let\lstenv@Process\lstag@countleadingspaces + \fi + \fi +} + +\def\lstag@countleadingspaces#1{% + \expandafter\ifx\lstag@activenl#1\relax + \expandafter\lstag@countleadingspaces@ + \else + \def\lstag@restofline{Dummy replacement of text after begin of listing to trigger original warning message}% + \expandafter\lstag@countleadingspaces + \fi +} + +\def\lstag@countleadingspaces@#1{% + \ifx\lstag@activespace#1\relax + \advance\lstag@spacecount by \@ne + % Accumulate spaces (i.e. their definitions) for later re-insertion: + \expandafter\def\expandafter\lstag@spaceaccu\expandafter{\lstag@spaceaccu\lst@ProcessSpace}% + \let\next\lstag@countleadingspaces@ + \else% Character wasn't a space + \ifx\lstag@tabulator#1\relax + \advance\lstag@spacecount by \lst@tabsize\relax + % Accumulate spaces (i.e. their definitions) for later re-insertion: + \@tempcnta=\lst@tabsize\relax + \loop + \ifnum\@tempcnta>\z@ + \expandafter\def\expandafter\lstag@spaceaccu\expandafter{\lstag@spaceaccu\lst@ProcessSpace}% + \advance\@tempcnta\m@ne + \repeat + \let\next\lstag@countleadingspaces@ + \else% Character wasn't a tabulator either + % Set gobble option (indirect): + \xdef\lstag@gobble{\the\numexpr\lstag@spacecount-\lst@ungobble\relax}% + % Restore original definition of process macro: + \global\let\lstenv@Process\lstag@origlstenv@Process + % Re-insert all collected material or appropriate replacement material: + \edef\next{\noexpand\lstenv@Process\lstag@restofline\expandafter\noexpand\lstag@activenl\expandafter\unexpanded\expandafter{\lstag@spaceaccu}\noexpand#1}% + \fi\fi + \next +} +\endinput +%% +%% End of file `lstautogobble.sty'. diff --git a/Master/texmf-dist/tex/latex/lstaddons/lstlinebgrd.sty b/Master/texmf-dist/tex/latex/lstaddons/lstlinebgrd.sty new file mode 100644 index 00000000000..66f42ab2c96 --- /dev/null +++ b/Master/texmf-dist/tex/latex/lstaddons/lstlinebgrd.sty @@ -0,0 +1,71 @@ + + +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ---------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files lstlinebgrd.dtx and lstladdons.ins +%% and the derived filebase lstlinebgrd.sty. +%% +\ProvidesPackage{lstlinebgrd}[% + 2012/05/03 + v0.1 + Provides 'listings' options to color the background of lines] +\RequirePackage{listings} +\RequirePackage{xcolor} + +\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}} + +\lst@Key{linebackgroundcolor}{}{% + \def\lst@linebgrdcolor{#1}% +} +\lst@Key{linebackgroundsep}{0pt}{% + \def\lst@linebgrdsep{#1}% +} +\lst@Key{linebackgroundwidth}{\linewidth}{% + \def\lst@linebgrdwidth{#1}% +} +\lst@Key{linebackgroundheight}{\ht\strutbox}{% + \def\lst@linebgrdheight{#1}% +} +\lst@Key{linebackgrounddepth}{\dp\strutbox}{% + \def\lst@linebgrddepth{#1}% +} +\lst@Key{linebackgroundcmd}{\color@block}{% + \def\lst@linebgrdcmd{#1}% +} + +\newcommand{\lst@linebgrd}{% + \ifx\lst@linebgrdcolor\empty\else + \rlap{% + \lst@basicstyle + \color{-.}% By default use the opposite (`-`) of the current color (`.`) as background + \lst@linebgrdcolor{% + \kern-\dimexpr\lst@linebgrdsep\relax% + \lst@linebgrdcmd{\lst@linebgrdwidth}{\lst@linebgrdheight}{\lst@linebgrddepth}% + }% + }% + \fi +} +\endinput +%% +%% End of file `lstlinebgrd.sty'. -- cgit v1.2.3