509 lines
15 KiB
TeX
509 lines
15 KiB
TeX
% SWI-Prolog document-style
|
||
|
||
% Test for PDF generation using pdflatex
|
||
|
||
\usepackage{ifpdf}
|
||
%Old tex versions
|
||
%\newif\ifpdf
|
||
%\ifx\pdfoutput\undefined
|
||
% \pdffalse
|
||
%\else
|
||
% \pdfoutput=1
|
||
% \pdftrue
|
||
%\fi
|
||
|
||
% Get hyperrefs to work
|
||
|
||
\usepackage{makeidx}
|
||
\usepackage{url}
|
||
|
||
\ifpdf
|
||
\usepackage[pdftex,colorlinks=true,urlcolor=blue]{hyperref}
|
||
\pdfcompresslevel=9
|
||
% \pdfcatalog{
|
||
% /PageMode /UseOutLines
|
||
% }
|
||
\usepackage[pdftex]{graphicx}
|
||
\DeclareGraphicsExtensions{.pdf,.jpg,.png}
|
||
\else
|
||
\usepackage[dvips]{graphicx}
|
||
\DeclareGraphicsExtensions{.eps,.ps}
|
||
\fi
|
||
\graphicspath{{figs/}{./}}
|
||
|
||
% Other styles
|
||
|
||
\usepackage{a4wide}
|
||
\usepackage{longtable}
|
||
\usepackage{ifthen}
|
||
\usepackage{dcolumn}
|
||
\usepackage{calc}
|
||
\setlongtables
|
||
|
||
\catcode`\^^A=8% downarrow are for subscripts
|
||
\catcode`\_=\active
|
||
\def_{\ifmmode\else\_\fi}
|
||
\def\vobeyspaces{\@vobeyspaces}
|
||
|
||
\newcommand{\onlinebreak}{}
|
||
|
||
% References
|
||
|
||
\newcommand{\secref}[1]{section~\ref{sec:#1}}
|
||
\newcommand{\appref}[1]{appendix~\ref{sec:#1}}
|
||
\newcommand{\chapref}[1]{chapter~\ref{sec:#1}}
|
||
\newcommand{\figref}[1]{figure~\ref{fig:#1}}
|
||
\newcommand{\tabref}[1]{table~\ref{tab:#1}}
|
||
|
||
\newcommand{\Secref}[1]{Section~\ref{sec:#1}}
|
||
\newcommand{\Appref}[1]{Appendix~\ref{sec:#1}}
|
||
\newcommand{\Chapref}[1]{Chapter~\ref{sec:#1}}
|
||
\newcommand{\Figref}[1]{Figure~\ref{fig:#1}}
|
||
\newcommand{\Tabref}[1]{Table~\ref{tab:#1}}
|
||
|
||
\newcommand{\tm}{$^{tm}$}
|
||
|
||
\newcommand{\reffont}{\tt}
|
||
\newcommand{\predref}[2]{% % functor/arity
|
||
\mbox{\reffont #1/#2}}
|
||
\newcommand{\dcgref}[2]{% % functor//arity
|
||
\mbox{\reffont #1//#2}}
|
||
\newcommand{\qpredref}[3]{% % module:functor/arity
|
||
\mbox{\reffont #1:#2/#3}}
|
||
\newcommand{\qdcgref}[3]{% % module:functor//arity
|
||
\mbox{\reffont #1:#2//#3}}
|
||
\newcommand{\nopredref}[2]{% % functor/arity (external)
|
||
\mbox{\reffont #1/#2}}
|
||
\newcommand{\functor}[2]{% % functor/arity (no predicate)
|
||
\mbox{\reffont #1/#2}}
|
||
\newcommand{\manref}[2]{% % page(n)
|
||
\mbox{{\reffont #1(}{\rm #2}{\tt )}}}
|
||
\newcommand{\funcref}[2]{% % function(Args...)
|
||
\mbox{{\reffont #1(}{\it #2}{\tt )}}}
|
||
\newcommand{\prologflag}[1]{%
|
||
\mbox{\reffont #1}}
|
||
|
||
% Descriptions (definitions) of various things
|
||
% Note: I do not know where the 1ex comes from. This should fit
|
||
% exactly, but appearently some dimension is missing. I suspect
|
||
% a space creaping in somewhere.
|
||
|
||
\def\@nodescription{false}
|
||
|
||
\newcommand{\defentry}[1]{\definition{#1}}
|
||
\newcommand{\definition}[1]{%
|
||
\onlinebreak%
|
||
\ifthenelse{\equal{\@nodescription}{true}}{%
|
||
\def\@nodescription{false}%
|
||
\makebox[-\leftmargin]{\mbox{}}\makebox[\linewidth+\leftmargin-1ex][l]{\bf #1}\\}{%
|
||
\item[{\makebox[\linewidth+\leftmargin-1ex][l]{#1}}]}}
|
||
\newcommand{\nodescription}{\def\@nodescription{true}}
|
||
|
||
\makeatletter
|
||
\def\cmdlineoptionitem{\@ifstar{\@gluedcmdoptitem}{\@cmdoptitem}}
|
||
\def\@gluedcmdoptitem#1#2{\definition{\texttt{#1}\var{#2}}}
|
||
\def\@cmdoptitem#1#2{\definition{\texttt{#1} \var{#2}}}
|
||
\makeatother
|
||
\newcommand{\longoptionitem}[2]{%
|
||
\ifthenelse{\equal{}{#2}}{%
|
||
\definition{-{}-#1}}{%
|
||
\definition{-{}-#1={\it #2}}}\ignorespaces}
|
||
\newcommand{\longoption}[2]{%
|
||
\ifthenelse{\equal{}{#2}}{%
|
||
\mbox{\reffont -{}-#1}}{%
|
||
\mbox{\reffont -{}-#1={\it #2}}}}
|
||
|
||
\newcommand{\traceoption}[3]{%
|
||
\definition{{\tt #1} (#2)}#3%
|
||
\ignorespaces}
|
||
\newcommand{\pleaseoption}[3]{%
|
||
\definition{#1 {\it #2} {\rm(default: \it #3)}}%
|
||
\ignorespaces}
|
||
%\prologflagitem{Name}{Type}{Access}
|
||
\newcommand{\prologflagitem}[3]{%
|
||
\definition{#1 {\it (#2%
|
||
\ifthenelse{\equal{rw}{#3}}{, changeable}{})}}%
|
||
\index{flag:#1}\ignorespaces}
|
||
\newcommand{\escapeitem}[1]{%
|
||
\definition{\Sesc{\tt #1}}
|
||
\ignorespaces}
|
||
\newcommand{\fmtchar}[1]{%
|
||
\item[\tt #1]%
|
||
\ignorespaces}
|
||
|
||
% \directive{Name}{Arity}{Args}
|
||
% \predicate[Attibutes]{Name}{Arity}{Args}
|
||
% \infixop{Name}{Left}{Right}
|
||
% \prefixop{Name}{Right}
|
||
% \dcg[Attibutes]{Name}{Arity}{Args}
|
||
%
|
||
% Predicate descriptions. Must appear in a description
|
||
% environment.
|
||
|
||
\newcommand{\resitem}[1]{%
|
||
\defentry{#1}%
|
||
\index{#1}\ignorespaces}
|
||
\makeatletter
|
||
\def\predatt#1{\hfill{\it\footnotesize[#1]}}
|
||
\def\predicate{\@ifnextchar[{\@attpredicate}{\@predicate}}
|
||
\def\qpredicate{\@ifnextchar[{\@attqpredicate}{\@qpredicate}}
|
||
\def\@predicate#1#2#3{%
|
||
\ifthenelse{\equal{#2}{0}}{%
|
||
\defentry{#1}}{%
|
||
\defentry{#1({\it #3})}}%
|
||
\index{#1/#2}\ignorespaces}
|
||
\def\@attpredicate[#1]#2#3#4{%
|
||
\ifthenelse{\equal{#3}{0}}{%
|
||
\defentry{#2\predatt{#1}}}{%
|
||
\defentry{#2({\it #4})\predatt{#1}}}%
|
||
\index{#2/#3}\ignorespaces}
|
||
\def\@qpredicate#1#2#3#4{%
|
||
\ifthenelse{\equal{#3}{0}}{%
|
||
\defentry{#1:#2}}{%
|
||
\defentry{#1:#2({\it #4})}}%
|
||
\index{#1/#2}\ignorespaces}
|
||
\def\@attqpredicate[#1]#2#3#4#5{%
|
||
\ifthenelse{\equal{#4}{0}}{%
|
||
\defentry{#2:#3\predatt{#1}}}{%
|
||
\defentry{#2:#3({\it #5})\predatt{#1}}}%
|
||
\index{#2/#3}\ignorespaces}
|
||
\def\directive{\@ifnextchar[{\@attdirective}{\@directive}}
|
||
\def\@directive#1#2#3{%
|
||
\ifthenelse{\equal{#2}{0}}{%
|
||
\defentry{:- #1}}{%
|
||
\defentry{:- #1({\it #3})}}%
|
||
\index{#1/#2}\ignorespaces}
|
||
\def\@attdirective[#1]#2#3#4{%
|
||
\ifthenelse{\equal{#3}{0}}{%
|
||
\defentry{:- #2\predatt{#1}}}{%
|
||
\defentry{:- #2({\it #4})\predatt{#1}}}%
|
||
\index{#2/#3}\ignorespaces}
|
||
\def\dcg{\@ifnextchar[{\@attdcg}{\@dcg}}
|
||
\def\@dcg#1#2#3{%
|
||
\ifthenelse{\equal{#2}{0}}{%
|
||
\defentry{#1}}{%
|
||
\defentry{#1({\it #3}) \texttt{//}}}%
|
||
\index{#1/#2}\ignorespaces}
|
||
\def\@attdcg[#1]#2#3#4{%
|
||
\ifthenelse{\equal{#3}{0}}{%
|
||
\defentry{#2 \texttt{//}\predatt{#1}}}{%
|
||
\defentry{#2({\it #4}) \texttt{//}\predatt{#1}}}%
|
||
\index{#2//#3}\ignorespaces}
|
||
\def\infixop{\@ifnextchar[{\@attinfixop}{\@infixop}}
|
||
\def\@infixop#1#2#3{%
|
||
\defentry{{\it #2} #1 {\it #3}}%
|
||
\index{#1/2}\ignorespaces}
|
||
\def\@attinfixop[#1]#2#3#4{%
|
||
\defentry{{\it #3} #2 {\it #4}\predatt{#1}}%
|
||
\index{#2/2}\ignorespaces}
|
||
\def\prefixop{\@ifnextchar[{\@attprefixop}{\@prefixop}}
|
||
\def\@prefixop#1#2{%
|
||
\defentry{#1 {\it #2}}%
|
||
\index{#1/1}\ignorespaces}
|
||
\def\@attprefixop[#1]#2#3{%
|
||
\defentry{#2 {\it #3}\predatt{#1}}%
|
||
\index{#2/1}\ignorespaces}
|
||
\makeatother
|
||
|
||
% \termitem{functor}{Args}
|
||
% \infixtermitem{functor}{Left}{Right}
|
||
% \prefixtermitem{functor}{Right}
|
||
% \postfixtermitem{functor}{Left}
|
||
%
|
||
% Terms in description lists. Typically used to describe various
|
||
% possible values or types for a term.
|
||
|
||
\newcommand{\termitem}[2]{%
|
||
\ifthenelse{\equal{}{#2}}{%
|
||
\definition{#1}}{%
|
||
\definition{#1({\it #2})}}\ignorespaces}
|
||
\newcommand{\infixtermitem}[3]{%
|
||
\definition{{\it #2} #1 {\it #3}}\ignorespaces}
|
||
\newcommand{\prefixtermitem}[2]{%
|
||
\definition{#1 {\it #2}}\ignorespaces}
|
||
\newcommand{\postfixtermitem}[2]{%
|
||
\definition{{\it #2} #1}\ignorespaces}
|
||
|
||
% \term{functor}{Args}
|
||
% \infixterm{functor}{Left}{Right}
|
||
% \prefixterm{functor}{Right}
|
||
% \postfixterm{functor}{Left}
|
||
%
|
||
% Terms used in running text.
|
||
|
||
\def\term{}
|
||
\renewcommand{\term}[2]{%
|
||
\ifthenelse{\equal{\protect}{\protect#2}}{%
|
||
{\reffont #1}}{%
|
||
{\reffont #1}({\it #2})}}
|
||
\newcommand{\infixterm}[3]{{\it #2} #1 {\it #3}}
|
||
\newcommand{\prefixterm}[2]{#1 {\it #2}}
|
||
\newcommand{\postfixterm}[2]{{\it #2} #1}
|
||
\newcommand{\errorterm}[2]{\mbox{\tt%
|
||
\ifthenelse{\equal{}{#2}}{%
|
||
#1}{%
|
||
#1(#2)}}}
|
||
|
||
|
||
\newcommand{\cfunction}[3]{%
|
||
\defentry{{\tt #1} #2{\rm (}{\it #3}{\rm )}}%
|
||
\index{#2()}\ignorespaces}
|
||
\newcommand{\constructor}[2]{%
|
||
\defentry{#1::#1{\rm (}{\it #2}{\rm )}}%
|
||
\index{#1::#1()}\ignorespaces}
|
||
\newcommand{\destructor}[1]{%
|
||
\defentry{#1::\Stilde{}#1{\rm ()}}%
|
||
\index{#1::\Stilde{}#1()}\ignorespaces}
|
||
\newcommand{\cppcast}[2]{%
|
||
\defentry{#1::operator #2{\rm ({\it void})}}%
|
||
\index{#1::operator #2()}\ignorespaces}
|
||
\newcommand{\cdecl}[2]{{\tt #1} {\em #2}}
|
||
\newcommand{\cmacro}[3]{%
|
||
\defentry{{\it #1} #2({\it #3})}%
|
||
\index{#2()}\ignorespaces}
|
||
\newcommand{\constitem}[1]{%
|
||
\definition{#1}%
|
||
\index{#1}\ignorespaces}
|
||
\newcommand{\cglobalvar}[1]{{\tt #1}}
|
||
\newcommand{\classitem}[1]{%
|
||
\definition{Class #1}%
|
||
\index{#1 \string\idxtype{class}}\ignorespaces}
|
||
\newcommand{\menuitem}[2]{%
|
||
\ifthenelse{\equal{\protect}{\protect#2}}{%
|
||
\definition{\textsf #1}}{%
|
||
\definition{\textsf #1 ({\it #2})}}%
|
||
\index{#1 \string\idxtype{menu}}%
|
||
\ignorespaces}
|
||
|
||
|
||
% \tag{Keyword}
|
||
%
|
||
% PlDoc @keyword expansion. \mtag{Keyword} is a multi-valued tag
|
||
|
||
\newcommand{\tag}[1]{%
|
||
\item[#1]}
|
||
\newcommand{\mtag}[1]{%
|
||
\item[#1]\mbox{}\\}
|
||
|
||
\newcommand{\bnfmeta}[1]{\ifmmode{\langle\mbox{\it #1}\rangle}\else$\langle\mbox{\it #1}\rangle$\fi}
|
||
\newcommand{\bnfor}{\ifmmode\mid\else$\mid$\fi}
|
||
\newcommand{\isa}{& ::= &}
|
||
\newcommand{\ora}{& $\mid$ &}
|
||
|
||
\renewcommand{\arg}[1]{\ifmmode\mbox{\em #1}\else{\it #1}\fi}
|
||
\newcommand{\class}[1]{{\em #1}\index{#1 \string\idxtype{class}}}
|
||
\newcommand{\classs}[1]{{\em #1s}\index{#1 \string\idxtype{class}}}
|
||
\newcommand{\demo}[1]{{\sf #1}\index{#1 \string\idxtype{demo}}}
|
||
\newcommand{\pllib}[1]{{\texttt{#1}}\index{#1 \string\idxtype{library}}}
|
||
\newcommand{\clib}[1]{{\tt #1}\index{#1 \string\idxtype{library}}}
|
||
\newcommand{\tool}[1]{{\em #1}\index{#1 \string\idxtype{tool}}}
|
||
\newcommand{\menuref}[1]{\textsf{#1}\index{#1 \string\idxtype{menu}}}
|
||
\newcommand{\constf}[1]{{\reffont #1}}
|
||
\newcommand{\const}[1]{{\tt #1}}
|
||
\newcommand{\plflag}[1]{{\tt #1}}
|
||
\newcommand{\type}[1]{{\reffont #1}}
|
||
\newcommand{\idx}[1]{#1\index{#1}}
|
||
\newcommand{\foreseen}[1]{\footnote{#1}}
|
||
\newcommand{\metafile}[1]{\mbox{\tt #1}}
|
||
\newcommand\file{\begingroup \urlstyle{tt}\Url}
|
||
\newcommand\email{\begingroup \urlstyle{tt}\Url}
|
||
\newcommand{\env}[1]{\mbox{\tt #1}}
|
||
\newcommand{\except}[1]{\mbox{\tt #1}}
|
||
\newcommand{\exam}[1]{\mbox{\tt #1}}
|
||
\newcommand{\module}[1]{\mbox{\reffont #1}}
|
||
\newcommand{\fileext}[1]{\mbox{\texttt{.#1}}}
|
||
\newcommand{\option}[1]{\mbox{\tt #1}}
|
||
\newcommand{\resource}[1]{\mbox{\reffont #1}}
|
||
\newcommand{\cmdlineoption}[1]{\mbox{\tt #1}}
|
||
\newcommand{\argoption}[2]{\mbox{\tt #1 \em #2}}
|
||
\newcommand{\ctype}[1]{{\texttt{#1}}}
|
||
\newcommand{\op}[1]{{\tt #1}}
|
||
\newcommand{\program}[1]{\texttt{#1}}
|
||
\newcommand{\manpage}[2]{{\bf #1}(#2)}
|
||
\newcommand{\chr}[1]{{\tt #1}}
|
||
\newcommand{\jargon}[1]{{\em #1}}
|
||
\newcommand{\strong}[1]{{\bf #1}}
|
||
\newcommand{\texcmd}[1]{{\Sesc}{\tt #1}}
|
||
\newcommand{\texenv}[1]{{\tt #1}}
|
||
\newcommand{\texmode}[1]{{\tt #1}}
|
||
\newcommand{\HTML}[1]{{\bf #1}}
|
||
\newcommand{\libdoc}[2]{\section{\pllib{#1}: #2}}
|
||
\newcommand{\key}[1]{{\sf #1}}
|
||
\newcommand{\menu}[2]{%
|
||
{\sf #1}%
|
||
\ifthenelse{\equal{#2}{}}{%
|
||
}{%
|
||
~(\texttt{#2})}}
|
||
|
||
\newcommand\satom{\begingroup \urlstyle{tt}\Url}
|
||
\newcommand\fmtseq{\begingroup \urlstyle{tt}\Url}
|
||
|
||
\urldef{\Sexe}\satom{#!} % #!
|
||
\urldef{\Scgt}\satom{#>} % #>
|
||
\urldef{\Scge}\satom{#>=} % #>=
|
||
\urldef{\Sclt}\satom{#<} % #<
|
||
\urldef{\Scle}\satom{#=<} % #=<
|
||
\urldef{\Sceq}\satom{#=} % #=
|
||
\urldef{\Scne}\satom{#\=} % #\=
|
||
\urldef{\Scnot}\satom{#\} % #\
|
||
\urldef{\Scor}\satom{#\/} % #\/
|
||
\urldef{\Scand}\satom{#/\} % #/\
|
||
\urldef{\Sequiv}\satom{#<=>} % #<=>
|
||
\urldef{\Slimpl}\satom{#<=} % #<=
|
||
\urldef{\Srimpl}\satom{#=>} % #=>
|
||
\urldef{\Slimplies}\satom{#<==} % #<==
|
||
\urldef{\Srimplies}\satom{#==>} % #==>
|
||
\urldef{\Scequal}\satom{#<==>} % #<==>
|
||
\urldef{\Scieq}\satom{#=:=} % #=:=
|
||
\urldef{\Scine}\satom{#=\=} % #=\=
|
||
\urldef{\Scut}\satom{!} % !
|
||
\urldef{\Scomma}\satom{,} % ,
|
||
\urldef{\Sifthen}\satom{->} % ->
|
||
\urldef{\Ssoftcut}\satom{*->} % *->
|
||
\urldef{\Sdot}\satom{.} % .
|
||
\urldef{\Ssemicolon}\satom{;} % ;
|
||
\urldef{\Slt}\satom{<} % <
|
||
\urldef{\Sxor}\satom{><} % ><
|
||
\urldef{\Seq}\satom{=} % =
|
||
\urldef{\Suniv}\satom{=..} % =..
|
||
\urldef{\Saeq}\satom{=:=} % =:=
|
||
\urldef{\Sle}\satom{=<} % =<
|
||
\urldef{\Sel}\satom{<=} % <=
|
||
\urldef{\Sequal}\satom{==} % ==
|
||
\urldef{\Sstructeq}\satom{=@=} % =@=
|
||
\urldef{\Sstructneq}\satom{\=@=} % \=@=
|
||
\urldef{\Sane}\satom{=\=} % =\=
|
||
\urldef{\Sgt}\satom{>} % >
|
||
\urldef{\Sge}\satom{>=} % >=
|
||
\urldef{\Stlt}\satom{@<} % @<
|
||
\urldef{\Stle}\satom{@=<} % @=<
|
||
\urldef{\Stgt}\satom{@>} % @>
|
||
\urldef{\Stge}\satom{@>=} % @>=
|
||
\urldef{\Snot}\satom{\+} % \+
|
||
\urldef{\Sne}\satom{\=} % \=
|
||
\urldef{\Snequal}\satom{\==} % \==
|
||
\urldef{\Shat}\satom{^} % ^
|
||
\urldef{\Sbar}\satom{|} % |
|
||
\urldef{\Stimes}\satom{*} % *
|
||
\urldef{\Spow}\satom{**} % **
|
||
\urldef{\Splus}\satom{+} % +
|
||
\urldef{\Sminus}\satom{-} % -
|
||
\urldef{\Sdiv}\satom{/} % /
|
||
\urldef{\Sidiv}\satom{//} % //
|
||
\urldef{\Sand}\satom{/\} % /\
|
||
\urldef{\Slshift}\satom{<<} % <<
|
||
\urldef{\Srshift}\satom{>>} % >>
|
||
\urldef{\Sneg}\satom{\} % \
|
||
\urldef{\Sesc}\satom{\} % \
|
||
\urldef{\Sor}\satom{\/} % \/
|
||
\urldef{\Sdollar}\satom{$} % $
|
||
\urldef{\Squest}\satom{?} % ?
|
||
\urldef{\Smodule}\satom{:} % :
|
||
\urldef{\Sneck}\satom{:-} % :-
|
||
\urldef{\Sdirective}\satom{?-} % ?-
|
||
\urldef{\Sdcg}\satom{-->} % -->
|
||
\urldef{\Bc}\satom{\c} % \c
|
||
\urldef{\Bn}\satom{\n} % \n
|
||
\urldef{\Br}\satom{\r} % \r
|
||
\urldef{\Bl}\satom{\l} % \l
|
||
\urldef{\BB}\satom{\\} % \\
|
||
\urldef{\Stilde}\satom{~} % ~
|
||
\urldef{\Spercent}\satom{%} % %
|
||
\urldef{\Shash}\satom{#} % #
|
||
\urldef{\Scurl}\satom{{}} % {}
|
||
\urldef{\SxXX}\satom{xXX..\} % xXX..\
|
||
|
||
\newcommand{\bug}[1]{\footnote{BUG: #1}}
|
||
|
||
\newcommand{\mod}[2]{#1 \mbox{\rm mod} #2}
|
||
\newcommand{\rem}[2]{#1 \mbox{\rm rem} #2}
|
||
\newcommand{\pow}[2]{{#1}^{#2}}
|
||
\newcommand{\bsl}[0]{\Sesc}
|
||
|
||
% Index handling
|
||
|
||
\newcommand{\idxtype}[1]{{\small\em #1}}
|
||
|
||
% Prolog predicate summary
|
||
|
||
\newenvironment{summarylist}[1]{\begin{longtable}[l]{#1}}{\end{longtable}}
|
||
\newcommand{\predicatesummary}[3]{#1/#2 & #3 \\}
|
||
\newcommand{\oppredsummary}[5]{#1/#2 & #5 \\}
|
||
\newcommand{\functionsummary}[3]{#1/#2 & #3 \\}
|
||
\newcommand{\opfuncsummary}[5]{#1/#2 & #5 \\}
|
||
\newcommand{\opsummary}[4]{#3 & #1 & #2 & #4 \\}
|
||
\newcommand{\hook}[1]{(hook)}
|
||
|
||
|
||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
% CODE environment %
|
||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
|
||
\usepackage{fancyvrb}
|
||
\usepackage{color}
|
||
|
||
%\definecolor{codeboxcolor}{rgb}{0.7,0.7,0.7}
|
||
\definecolor{codeboxcolor}{rgb}{0.4,0.4,0.4}
|
||
\DefineVerbatimEnvironment%
|
||
{code}{Verbatim}
|
||
{frame=single,
|
||
framerule=0.2pt,
|
||
rulecolor=\color{codeboxcolor},
|
||
}
|
||
|
||
|
||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
% INCLUDE FIGURES %
|
||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
|
||
% PostScript figures
|
||
% \postscriptfig[width=5in]{label}{Title}
|
||
|
||
\makeatletter
|
||
\def\postscriptfig{\@ifnextchar[{\@scaledpostscriptfig}{\@postscriptfig}}
|
||
\def\@scaledpostscriptfig[#1]#2#3{%
|
||
\begin{figure}%
|
||
\centerline{\includegraphics[#1]{#2}}
|
||
\caption{#3}
|
||
\label{fig:#2}
|
||
\end{figure}}
|
||
\def\@postscriptfig#1#2{%
|
||
\begin{figure}%
|
||
\centerline{\includegraphics{#1}}
|
||
\caption{#2}
|
||
\label{fig:#1}
|
||
\end{figure}}
|
||
\makeatother
|
||
|
||
% \begin{tabularlp}{longest-text}
|
||
|
||
\newlength{\tabDright}
|
||
\newlength{\tabDleft}
|
||
\newcommand{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp}
|
||
\newcommand{\raggedrightcolumn}{\PreserveBackslash\raggedright\hspace{0pt}}
|
||
\newenvironment{tabularlp}[1]%
|
||
{\settowidth{\tabDleft}{#1}%
|
||
\setlength{\tabDright}{\linewidth-\columnsep*3-\tabDleft}%
|
||
\begin{tabular}{|p{\tabDleft}|>{\raggedrightcolumn}p{\tabDright}|}}%
|
||
{\end{tabular}}
|
||
|
||
% \begin{tags} ... \end{tags}
|
||
|
||
\newenvironment{tags}%
|
||
{\begin{quote}\begin{description}%
|
||
\setlength{\itemsep}{0pt}%
|
||
\footnotesize}%
|
||
{\end{description}\end{quote}}
|
||
|
||
|
||
% \begin{parameters} ... \end{parameters}
|
||
|
||
\newenvironment{parameters}%
|
||
{\par%
|
||
\makebox[\linewidth]{\hfill\footnotesize Parameters}
|
||
\begin{tabular*}{\linewidth}{lp{0.7\linewidth}}
|
||
\hline}%
|
||
{\end{tabular*}}
|
||
|
||
|