% \iffalse meta-comment % % Copyright (C) 2008 by Marek Kubica % ------------------------------------------------------- % % 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} % %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{texments} %<*package> [2008/10/10 0.1.0 The Pygments highligher accessible in LaTeX] %\RequirePackage{fancyvrb} %\RequirePackage{color} % % %<*driver> \documentclass{ltxdoc} \usepackage{texments}[2008/10/10] \usepackage{hyperref} \EnableCrossrefs \CodelineIndex \RecordChanges \begin{document} \DocInput{texments.dtx} \PrintChanges \PrintIndex \end{document} % % \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