diff options
Diffstat (limited to 'src/share/tex/open-axiom.sty')
-rw-r--r-- | src/share/tex/open-axiom.sty | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/share/tex/open-axiom.sty b/src/share/tex/open-axiom.sty new file mode 100644 index 00000000..13ca2c0d --- /dev/null +++ b/src/share/tex/open-axiom.sty @@ -0,0 +1,76 @@ +%% Copyright (C) 2009, Gabriel Dos Reis +%% All rights reserved. +%% Redistribution and use in source and binary forms, with or without +%% modification, are permitted provided that the following conditions are +%% met: +%% +%% - Redistributions of source code must retain the above copyright +%% notice, this list of conditions and the following disclaimer. +%% +%% - Redistributions in binary form must reproduce the above copyright +%% notice, this list of conditions and the following disclaimer in +%% the documentation and/or other materials provided with the +%% distribution. +%% +%% - Neither the name of The Numerical Algorithms Group Ltd. nor the +%% names of its contributors may be used to endorse or promote products +%% derived from this software without specific prior written permission. +%% +%% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +%% IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +%% TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +%% PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +%% OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +%% EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +%% PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +%% PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +%% LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +%% NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +%% SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{open-axiom}[2009/10/11 OpenAxiom LaTeX package] + +%% We build on top of the listings package +\RequirePackage{listings} + + +%% The base Spad language +\lstdefinelanguage{Spad}{% + keywords={add,and,break,case,else,false,for,has,if,import,% + in,is,isnt,iterate,macro,mod,or,pretend,% + quot,rem,rule,repeat,return,then,true,with,where,while},% + otherkeywords={->,<,<=,>,>=,=,==,~=,=>,\#,::,\@,\$,|},% + alsoletter={\%},% + comment=[l]{++},% + morecomment=[l]{--},% + morestring=[b]",% + sensitive=true +} + +%% OpenAxiom's Spad +\lstdefinelanguage[OpenAxiom]{Spad}[]{Spad}{% + morecomment=[l][\itshape\bfseries]{++} +} + +\lstdefinestyle{spad}{% + language=[OpenAxiom]spad,% + basicstyle=\renewcommand{\ttdefault}{txtt}\footnotesize\ttfamily,% + columns=flexible,% + showstringspaces=false +} + +%% Inline Spad code +%% FIXME: This definition prohibits '!' as valid identifier +%% in inline Spad code. That is unfortunate. +\newcommand{\OpenAxiomCode}[1]{\lstinline[style=Spad]!#1!} + +%% The main inout environment +\lstnewenvironment{OpenAxiomInput}{\lstset{style=spad}}{} + +%% Include a whole Spad file +\newcommand{\OpenAxiomFile}[1]{\lstinputlisting[style=Spad]{#1}} + +%% Some legacy commands +\newcommand{\spad}[1]{\ensuremath{\mathtt{#1}}} |