diff options
author | Karl Berry <karl@freefriends.org> | 2011-08-07 23:40:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-08-07 23:40:10 +0000 |
commit | 7822e32d4066bb81d8e6ed47697c93301b86fe9f (patch) | |
tree | f5eca2b975844d3853d1e21daccfc3419362cf7c /Master/texmf-dist/tex/latex/verbments/verbments.sty | |
parent | 20ff44ce9e3f008751e5b3730036a2c97d5031df (diff) |
new latex package verbments (13jun11)
git-svn-id: svn://tug.org/texlive/trunk@23452 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/verbments/verbments.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/verbments/verbments.sty | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/verbments/verbments.sty b/Master/texmf-dist/tex/latex/verbments/verbments.sty new file mode 100644 index 00000000000..cbcb8c64661 --- /dev/null +++ b/Master/texmf-dist/tex/latex/verbments/verbments.sty @@ -0,0 +1,142 @@ +% verbments.sty v1.1 2011/07/07 +% +% Copyright (C) 2011 by Dejan Zivkovic +% ----------------------------------- +% +% This file may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.2 +% 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.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{verbments}[2011/07/07 v1.1 Pygments/fancyvrb source code highlighting for LaTeX] +\RequirePackage[svgnames]{xcolor} +\RequirePackage{xkeyval,fancyvrb,framed} +% +\newcommand{\@listofpyglistingsname}{Listings}% +\newcommand{\listofpyglistingsname}[1]{% +\renewcommand\@listofpyglistingsname{#1}} +\newcommand{\listofpyglistings}{% + \begingroup + \let\contentsname\@listofpyglistingsname + \let\@pygtoc\@starttoc \def\@starttoc##1{\@pygtoc{pyg.lol}}% + \tableofcontents% + \endgroup +} +\newcommand{\lol@caption}[1]{% + \addcontentsline{pyg.lol}{pyglist}{#1} +} +\newcommand{\l@pyglist}[2]{% + \@dottedtocline{1}{1.5em}{2.3em}{#1}{#2} +} +% +\newlength{\@tmpwidth} +% +\newskip\@tmpskipa +\def\max@vskip #1{% + \@tmpskipa = #1\relax + \ifdim\lastskip < \@tmpskipa + \ifdim\lastskip = 0pt + \else \vskip -\lastskip + \fi + \vskip \@tmpskipa + \fi% +} + +\setlength{\FrameSep}{0pt} +\setlength{\FrameRule}{0pt} +% +\define@cmdkey{pyglist}[pl@]{caption}{} +\define@cmdkey{pyglist}[pl@]{abovecaptionskip}[\bigskipamount]{} +\define@cmdkey{pyglist}[pl@]{belowcaptionskip}[0pt]{} +\define@cmdkey{pyglist}[pl@]{listingname}[Listing]{} +\define@cmdkey{pyglist}[pl@]{label}{} +% +\define@cmdkey{pyglist}[pl@]{bgcolor}[white]{} +\define@cmdkey{pyglist}[pl@]{language}[text]{} +\define@cmdkey{pyglist}[pl@]{encoding}[latin1]{} +\define@boolkey{pyglist}[pl@]{mathescape}[false]{} +\define@boolkey{pyglist}[pl@]{texcl}[false]{} +\define@cmdkey{pyglist}[pl@]{style}[default]{} +\define@cmdkey{pyglist}[pl@]{gobble}[0]{} +% +\define@cmdkey{pyglist}[pl@]{fontsize}{} +\define@cmdkey{pyglist}[pl@]{numbers}{} +\define@cmdkey{pyglist}[pl@]{numbersep}{} +\define@boolkey{pyglist}[pl@]{showspaces}[false]{} + +\newcommand\plset[1]{% + \setkeys{pyglist}{#1}% +} + +\newenvironment{pyglist}{% + \catcode`\^^M=\active + \@ifnextchar[% + {\catcode`\^^M=5 \pyglist@} + {\catcode`\^^M=5 \pyglist@[]} +}{% + \end{VerbatimOut}% + \immediate\write18{\pyg@cmd} + \immediate\write18{\pyg@style} + \input{\jobname.pyg.sty}% +% + \partopsep = 0pt\parskip = 0pt\parindent = 0pt% + \@ifundefined{pl@caption}% + {\setlength{\topsep}{-2pt}}% + {\par% + \allowbreak% + \max@vskip{\pl@abovecaptionskip}% + \refstepcounter{pllisting}% + \@ifundefined{pl@label}{}{\label{\pl@label}}% + \settowidth{\@tmpwidth}{\bfseries\pl@listingname~\thepllisting:\space}% + \mbox{\bfseries\pl@listingname~\thepllisting:\space}% + \parbox[t]{\linewidth-\@tmpwidth}{\pl@caption}% + \par\nobreak\vskip\pl@belowcaptionskip\nobreak% + \setlength{\topsep}{\smallskipamount}% + \lol@caption{\rlap{\thepllisting}\hskip5ex \pl@caption} + }% +% + \@ifundefined{pl@fontsize}{}{\fvset{fontsize=\pl@fontsize}}% + \@ifundefined{pl@numbers}{}{\fvset{numbers=\pl@numbers}}% + \@ifundefined{pl@numbersep}{}{\fvset{numbersep=\pl@numbersep}}% + \ifpl@showspaces\fvset{showspaces}\fi% +% + \definecolor{shadecolor}{named}{\pl@bgcolor}% + \begin{snugshade} + \input{\jobname.pyg.vrb} + \end{snugshade} +} + +\def\pyglist@[#1]{% + \setkeys{pyglist}{#1} + \edef\pyg@cmd{pygmentize -P encoding=\pl@encoding\space -l \pl@language\space + -F tokenmerge \ifnum\pl@gobble=0\space \else -F gobble:n=\pl@gobble\space\fi + -f latex + \ifpl@texcl -P texcomments\space\fi + \ifpl@mathescape -P mathescape\space\fi + -o \jobname.pyg.vrb \jobname.pyg.lst} + \edef\pyg@style{pygmentize -S \pl@style\space -f latex > \jobname.pyg.sty} + \VerbatimEnvironment + \begin{VerbatimOut}{\jobname.pyg.lst}% No char whatsoever to the next brace +} + +\AtBeginDocument{ + \@ifundefined{thechapter}{ + \newcounter{pllisting} + \gdef\thepllisting{\@arabic\c@pllisting} + }{ + \newcounter{pllisting}[chapter] + \gdef\thepllisting% + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@pllisting} + } +} + +\plset{abovecaptionskip,belowcaptionskip,listingname,% + bgcolor,language,encoding,mathescape,texcl,style,gobble,% + showspaces} % set default key values +\endinput |