% \iffalse meta-comment
%
% Copyright (C) 2008 by Marek Kubica <marek@xivilization.net>
% -------------------------------------------------------
% 
% 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.
%
% \fi
%
% \iffalse
%<*driver>
\ProvidesFile{texments.dtx}
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{texments}
%<*package>
    [2008/10/10 0.1.0 The Pygments highligher accessible in LaTeX]
%<package>\RequirePackage{fancyvrb}
%<package>\RequirePackage{color}
%</package>
%
%<*driver>
\documentclass{ltxdoc}
\usepackage{texments}[2008/10/10]
\usepackage{hyperref}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\begin{document}
  \DocInput{texments.dtx}
  \PrintChanges
  \PrintIndex
\end{document}
%</driver>
% \fi
%
% \CheckSum{27}
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
%
% \changes{v0.0.1}{2008/10/10}{Initial version}
% \changes{v0.1.0}{2008/10/10}{Properly repackaged}
%
% \GetFileInfo{texments.dtx}
%
% \DoNotIndex{\newcommand,\newenvironment}
% 
%
% \title{The \textsf{texments} package\thanks{This document
%   corresponds to \textsf{texments}~\fileversion, dated \filedate.}}
% \author{Marek Kubica \\ \texttt{marek@xivilization.net}}
%
% \maketitle
%
% \section{Introduction}
%
% texments is a package that is used to connect the not-yet award winning
% source code colorizer library Pygments (\url{http://pygments.org/})
% with \LaTeX documents. That means that it is neccessary to have
% Pygments installed and that the \texttt{pygmentize} command is 
% available.
%
% \section{Usage}
%
% This package does not provide many fancy features, it is just meant
% as an easy bridge between the highlighter and LaTeX. It calls
% internally the \texttt{pygmentize} command, so you need to start it
% with \texttt{-shell-escape} activated. Note that this might change
% in the future.
%
% \DescribeMacro{\usestyle\marg{stylename}}
% This macro needs to be called at least once to set the style that
% pygments should use to highlight all code.
%
% One quite useful style is the ``bw'' style which is, as the name
% somehow implies black and white.
%
% \usestyle{default}
%
% \DescribeMacro{\pygment\marg{language}\marg{code}}
% To highlight a chunk of code, you can use the \texttt{pygment}
% macro.
%
% An example for this is the following Python code:
%
% \pygment{python}{print "Hello World"}
%
% \StopEventually{}
%
% \section{Implementation}
%
% \begin{macro}{\usestyle}
% This macro calls \texttt{pygmentize} with the appropriate style
% name and gets the color definitions that will be used in all
% following code listings.
%    \begin{macrocode}
\newcommand{\usestyle}[1]{
  \immediate\write18{pygmentize -S #1 -f latex > \jobname.pyg}
  \input{\jobname.pyg}
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pygment}
% This macro takes the code in the second argument and feeds it
% to \texttt{pygmentize}, so that it outputs code highlighted
% to the rules of the first argument.
%    \begin{macrocode}

\newwrite\code
\newcommand{\pygment}[2]{
  \immediate\openout\code\jobname.pyg
  \immediate\write\code{#2}
  \immediate\closeout\code

  \immediate\write18{pygmentize -l #1 -f latex -o \jobname.out.pyg \jobname.pyg}
  \input{\jobname.out.pyg}
}
%    \end{macrocode}
% \end{macro}
%
% \Finale
\endinput
