summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pst-infixplot
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 00:56:57 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 00:56:57 +0000
commitf07bb53970ee2ecc53f81a206a3d3a67ef665e4a (patch)
tree6f57a1d62971db79e5ff023bdfd83b22cb971dc9 /Master/texmf-dist/doc/generic/pst-infixplot
parent007f67a693e4d031fd3d792df8e4d5f43e2cb2e7 (diff)
doc 6
git-svn-id: svn://tug.org/texlive/trunk@85 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-infixplot')
-rw-r--r--Master/texmf-dist/doc/generic/pst-infixplot/README5
-rw-r--r--Master/texmf-dist/doc/generic/pst-infixplot/infix-RPN.sty3
-rw-r--r--Master/texmf-dist/doc/generic/pst-infixplot/infix-RPN.tex524
-rw-r--r--Master/texmf-dist/doc/generic/pst-infixplot/pst-infixplot-doc.tex216
-rw-r--r--Master/texmf-dist/doc/generic/pst-infixplot/pst-infixplot.pdfbin0 -> 140655 bytes
5 files changed, 748 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-infixplot/README b/Master/texmf-dist/doc/generic/pst-infixplot/README
new file mode 100644
index 00000000000..4074d933719
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-infixplot/README
@@ -0,0 +1,5 @@
+Plotting functions with pst-plot is very powerful but sometimes difficult
+to learn since the syntax of \psplot and \parametricplot requires some
+PostScript knowledge. What infix-RPN and pst-infixplot styles intend to
+do is to simplify the usage of pst-plot for the beginner, providing macro
+commands that convert natural mathematical expressions to PS syntax.
diff --git a/Master/texmf-dist/doc/generic/pst-infixplot/infix-RPN.sty b/Master/texmf-dist/doc/generic/pst-infixplot/infix-RPN.sty
new file mode 100644
index 00000000000..e7553e8db8b
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-infixplot/infix-RPN.sty
@@ -0,0 +1,3 @@
+\ProvidesPackage{infix-RPN}[2004/02/25 package wrapper for infix-RPN.tex]
+\input infix-RPN.tex
+\endinput
diff --git a/Master/texmf-dist/doc/generic/pst-infixplot/infix-RPN.tex b/Master/texmf-dist/doc/generic/pst-infixplot/infix-RPN.tex
new file mode 100644
index 00000000000..d9ef93a816a
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-infixplot/infix-RPN.tex
@@ -0,0 +1,524 @@
+%%
+%% This is file `infix-RPN.tex',
+%%
+%% IMPORTANT NOTICE:
+%%
+%% Package `infix-RPN.tex'
+%%
+%% Main code:
+%% Jean-Côme Charpentier <jean-come.charpentier@wanadoo.fr>
+%%
+%% Contributions by
+%% Christophe Jorssen <christophe.jorssen@libre.fr.invalid>
+%% `libre' is the french word for `free' :-)
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory CTAN:/macros/latex/base/lppl.txt.
+%%
+%% DESCRIPTION:
+%% `infix-RPN' is a package to convert infix expressions to
+%% Reverse Polish Notation
+%%
+%%
+\def\RCS$#1: #2 ${\expandafter\def\csname RCS#1\endcsname{#2}}
+\RCS$Revision: 1.7 $
+\RCS$Date: 2004-07-06 23:41:52+02 $
+
+\def\fileversion{0.1}
+\csname infixRPNLoaded\endcsname
+\let\infixRPNLoaded\endinput
+\message{`infix-RPN' v\fileversion\space (Rev \RCSRevision, \RCSDate), J.-C.Charpentier/C.Jorssen}
+
+\edef\opAtCode{\the\catcode`\@}
+\edef\opHatCode{\the\catcode`\^}
+\edef\opUnderscoreCode{\the\catcode`\_}
+\catcode`\@=11\relax
+\catcode`\^=12\relax
+\catcode`\_=11\relax
+
+\def\s@pow{exp}
+\def\s@lpar{(}
+\def\s@rpar{)}
+\def\s@comma{,}
+
+\def\DeclareNewPSOperator{%
+ \bgroup
+ \catcode`\_=11\relax
+ \DeclareNewPSOperator@i
+}
+
+\def\DeclareNewPSOperator@i#1{%
+ \expandafter\ifx\csname PS@operator@list\endcsname\relax
+ \gdef\PS@operator@list{#1}%
+ \else
+ \xdef\PS@operator@list{#1,\PS@operator@list}%
+ \fi
+ \expandafter\gdef\csname s@#1\endcsname{#1}%
+ \egroup
+}
+
+\DeclareNewPSOperator{add}
+\DeclareNewPSOperator{sub}
+\DeclareNewPSOperator{mul}
+\DeclareNewPSOperator{div}
+\DeclareNewPSOperator{exp}
+\DeclareNewPSOperator{abs}
+\DeclareNewPSOperator{sin}
+\DeclareNewPSOperator{cos}
+\DeclareNewPSOperator{atan}
+\DeclareNewPSOperator{neg}
+\DeclareNewPSOperator{ceiling}
+\DeclareNewPSOperator{floor}
+\DeclareNewPSOperator{truncate}
+\DeclareNewPSOperator{sqrt}
+\DeclareNewPSOperator{ln}
+\DeclareNewPSOperator{log}
+
+
+\newcount\@parenthesis
+\newcount\token@cpt
+\newif\if@begin@token
+\newif\if@in@number
+\newif\if@in@decimal
+\newif\if@in@name
+\newif\if@sign
+\def\@tokencreate#1{%
+ \expandafter\xdef\csname op@token\the\token@cpt\endcsname{#1}%
+ \global\advance\token@cpt\@ne
+ \expandafter\global
+ \expandafter\let\csname op@token\the\token@cpt\endcsname\relax
+ \global\advance\token@cpt\m@ne
+}
+\def\@tokenappend#1{%
+ \expandafter\xdef\csname op@token\the\token@cpt\endcsname
+ {\csname op@token\the\token@cpt\endcsname#1}%
+}
+\def\@tokensingle#1{%
+ \edef\@arg{#1}%
+ \if@in@name
+ \global\advance\token@cpt\@ne
+ \@in@namefalse
+ \fi
+ \if@in@number
+ \global\advance\token@cpt\@ne
+ \@in@numberfalse
+ \@in@decimalfalse
+ \fi
+ \ifx\@arg\s@add
+ \if@sign
+ % ignore + sign
+ \global\advance\token@cpt\m@ne
+ \else
+ \@tokencreate{#1}%
+ \fi
+ \else\ifx\@arg\s@sub
+ \if@sign
+ \@tokencreate{\s@neg}%
+ \else
+ \@tokencreate{#1}%
+ \fi
+ \else
+ \@tokencreate{#1}%
+ \fi\fi
+ \global\advance\token@cpt\@ne
+}
+\def\@tokenuse#1{%
+ \expandafter\ifx\csname op@token#1\endcsname\s@comma%
+ \else
+ \xdef\RPN{\RPN\space\csname op@token#1\endcsname}%
+ \fi
+}
+
+\let\endscanline\relax
+\def\scan@line{%
+ \begingroup
+ \catcode`\ =12
+ \@parenthesis=\z@
+ \@in@numberfalse
+ \@in@decimalfalse
+ \@in@namefalse
+ \global\token@cpt=\@ne
+ \global\@signfalse
+ \scan@@line
+}
+\def\scan@@line#1{\scan@@@line#1\endscanline\endgroup}
+\def\scan@@@line#1#2\endscanline{%
+ \op@testchar{#1}%
+ \ifop@isdigit
+ \global\@signfalse
+ \if@in@number
+ \@tokenappend{#1}%
+ \else \if@in@name
+ \@in@namefalse
+ \@in@numbertrue
+% \global\advance\token@cpt\@ne
+% \@tokencreate{#1}%
+ \@tokenappend{#1}%
+ \else
+ \@in@numbertrue
+ \@tokencreate{#1}%
+ \fi\fi
+ \fi
+ \ifop@isplus
+ \@tokensingle{\s@add}%
+ \global\@signtrue
+ \fi
+ \ifop@isminus
+ \@tokensingle{\s@sub}%
+ \global\@signtrue
+ \fi
+ \ifop@ismultiply
+ \@tokensingle{\s@mul}%
+ \global\@signtrue
+ \fi
+ \ifop@isdivide
+ \@tokensingle{\s@div}%
+ \global\@signtrue
+ \fi
+ \ifop@ispower
+ \@tokensingle{\s@pow}%
+ \global\@signtrue
+ \fi
+ \ifop@isdecimalsep
+ \global\@signfalse
+ \if@in@decimal
+ \errmessage{Syntax error: number with multiple separators!}%
+ \else \if@in@number
+ \@in@decimaltrue
+ \@tokenappend{.}%
+ \else
+ \@tokencreate{.}%
+ \@in@numbertrue
+ \@in@decimaltrue
+ \fi\fi
+ \fi
+ \ifop@iscomma
+ \@tokensingle{,}%
+ \global\@signtrue
+ \fi
+ \ifop@islparenthesis
+ \@tokensingle{(}%
+ \global\@signtrue
+ \fi
+ \ifop@isrparenthesis
+ \global\@signfalse
+ \@tokensingle{)}%
+ \fi
+ \ifop@isspace
+% \if@in@number
+% \@in@numberfalse
+% \@in@decimalfalse
+% \global\advance\token@cpt\@ne
+% \else \if@in@name
+% \@in@namefalse
+% \global\advance\token@cpt\@ne
+% \fi\fi
+ \fi
+ \ifop@isother
+ \global\@signfalse
+ \if@in@name
+ \@tokenappend{#1}%
+ \else \if@in@number
+ \@in@numberfalse
+ \@in@decimalfalse
+ \@in@nametrue
+% \global\advance\token@cpt\@ne
+% \@tokencreate{#1}%
+ \@tokenappend{#1}%
+% \errmessage{Syntax error: an operator is missing! You can NOT use implicit operation.}%
+ \else
+ \@in@nametrue
+ \@tokencreate{#1}%
+ \fi\fi
+ \fi
+ \def\arg{#2}%
+ \ifx\empty\arg
+ \let\next\relax
+ \else
+ \let\next\scan@@@line
+ \fi
+ \expandafter\next\arg\endscanline
+}
+\count255=`\0 \edef\op@numbegin{\the\count255}
+\count255=`\9 \edef\op@numend{\the\count255}
+\count255=`\+ \edef\op@plus{\the\count255}
+\count255=`\- \edef\op@minus{\the\count255}
+\count255=`\* \edef\op@multiply{\the\count255}
+\count255=`\/ \edef\op@divide{\the\count255}
+\count255=`\^ \edef\op@power{\the\count255}
+\count255=`\. \edef\op@dot{\the\count255}
+\count255=`\, \edef\op@comma{\the\count255}
+\count255=`\( \edef\op@lparenthesis{\the\count255}
+\count255=`\) \edef\op@rparenthesis{\the\count255}
+\edef\op@space{32}
+\newif\ifop@isdigit
+\newif\ifop@isplus
+\newif\ifop@isminus
+\newif\ifop@ismultiply
+\newif\ifop@isdivide
+\newif\ifop@ispower
+\newif\ifop@isdecimalsep
+\newif\ifop@iscomma
+\newif\ifop@islparenthesis
+\newif\ifop@isrparenthesis
+\newif\ifop@isspace
+\newif\ifop@isother
+\def\op@testchar#1{%
+ \op@isdigitfalse
+ \op@isplusfalse
+ \op@isminusfalse
+ \op@ismultiplyfalse
+ \op@isdividefalse
+ \op@ispowerfalse
+ \op@isdecimalsepfalse
+ \op@iscommafalse
+ \op@islparenthesisfalse
+ \op@isrparenthesisfalse
+ \op@isspacefalse
+ \op@isotherfalse
+ \count255=`#1\relax
+ \ifnum\count255=\op@plus \relax
+ \op@isplustrue
+ \else \ifnum\count255=\op@minus \relax
+ \op@isminustrue
+ \else \ifnum\count255=\op@multiply \relax
+ \op@ismultiplytrue
+ \else \ifnum\count255=\op@divide \relax
+ \op@isdividetrue
+ \else \ifnum\count255=\op@power \relax
+ \op@ispowertrue
+ \else \ifnum\count255=\op@dot \relax
+ \op@isdecimalseptrue
+ \else \ifnum\count255=\op@comma \relax
+ \op@iscommatrue
+ \else \ifnum\count255=\op@lparenthesis \relax
+ \op@islparenthesistrue
+ \else \ifnum\count255=\op@rparenthesis \relax
+ \op@isrparenthesistrue
+ \else \ifnum\count255=\op@space \relax
+ \op@isspacetrue
+ \else \ifnum\count255<\op@numbegin \relax
+ \op@isothertrue
+ \else \ifnum\count255>\op@numend \relax
+ \op@isothertrue
+ \else \op@isdigittrue
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+}
+
+\def\search@term#1#2{%
+ \begingroup
+ \count1=#1\relax
+ \count255=#2\relax
+ \ifnum\count1=\count255
+ \@tokenuse{#1}%
+ \else
+ \count5=\count255
+ \count7=\count1
+ \advance\count7\m@ne
+ \count3=\z@
+ \loop
+ \ifnum\count5>\count7
+ \expandafter\ifx\csname op@token\the\count5\endcsname\s@rpar\relax
+ \advance\@parenthesis\@ne
+ \fi
+ \expandafter\ifx\csname op@token\the\count5\endcsname\s@lpar\relax
+ \advance\@parenthesis\m@ne
+ \fi
+ \expandafter\ifx\csname op@token\the\count5\endcsname\s@add\relax
+ \ifnum\@parenthesis=\z@
+ \count3=\count5
+ \count5=\z@
+ \fi
+ \fi
+ \expandafter\ifx\csname op@token\the\count5\endcsname\s@sub\relax
+ \ifnum\@parenthesis=\z@
+ \count3=\count5
+ \count5=\z@
+ \fi
+ \fi
+ \expandafter\ifx\csname op@token\the\count5\endcsname\s@comma\relax
+ \ifnum\@parenthesis=\z@
+ \count3=\count5
+ \count5=\z@
+ \fi
+ \fi
+ \advance\count5\m@ne
+ \repeat
+ \ifnum\count3=\z@
+ \ifnum\@parenthesis=\z@
+ \search@factor{\the\count1}{\the\count255}%
+ \else
+ \errmessage{Syntax error: unbalanced parenthesis!}%
+ \fi
+ \else
+ \advance\count3\m@ne
+ \search@term{\the\count1}{\the\count3}%
+ \advance\count3\tw@
+ \search@term{\the\count3}{\the\count255}%
+ \advance\count3\m@ne
+ \@tokenuse{\the\count3}%
+ \fi
+ \fi
+ \endgroup
+}
+\def\search@factor#1#2{%
+ \begingroup
+ \count1=#1\relax
+ \count255=#2\relax
+ \ifnum\count1=\count255
+ \@tokenuse{\the\count1}%
+ \else
+ \count5=\count255
+ \count7=\count1
+ \advance\count7\m@ne
+ \count3=\z@
+ \loop
+ \ifnum\count5>\count7
+ \expandafter\ifx\csname op@token\the\count5\endcsname\s@rpar\relax
+ \advance\@parenthesis\@ne
+ \fi
+ \expandafter\ifx\csname op@token\the\count5\endcsname\s@lpar\relax
+ \advance\@parenthesis\m@ne
+ \fi
+ \expandafter\ifx\csname op@token\the\count5\endcsname\s@mul\relax
+ \ifnum\@parenthesis=\z@
+ \count3=\count5
+ \count5=\z@
+ \fi
+ \fi
+ \expandafter\ifx\csname op@token\the\count5\endcsname\s@div\relax
+ \ifnum\@parenthesis=\z@
+ \count3=\count5
+ \count5=\z@
+ \fi
+ \fi
+ \advance\count5\m@ne
+ \repeat
+ \ifnum\count3=\z@
+ \ifnum\@parenthesis=\z@
+ \search@power{\the\count1}{\the\count255}%
+ \else
+ \errmessage{! Syntax error: unbalanced parenthesis}%
+ \fi
+ \else
+ \advance\count3\m@ne
+ \search@factor{\the\count1}{\the\count3}%
+ \advance\count3\tw@
+ \search@factor{\the\count3}{\the\count255}%
+ \advance\count3\m@ne
+ \@tokenuse{\the\count3}%
+ \fi
+ \fi
+ \endgroup
+}
+\def\search@power#1#2{%
+ \begingroup
+ \count1=#1\relax
+ \count255=#2\relax
+ \ifnum\count1=\count255
+ \@tokenuse{#1}%
+ \else
+ \count5=\count255
+ \count7=\count1
+ \advance\count7\m@ne
+ \count3=\z@
+ \loop
+ \ifnum\count5>\count7
+ \expandafter\ifx\csname op@token\the\count5\endcsname\s@rpar\relax
+ \advance\@parenthesis\@ne
+ \fi
+ \expandafter\ifx\csname op@token\the\count5\endcsname\s@lpar\relax
+ \advance\@parenthesis\m@ne
+ \fi
+ \expandafter\ifx\csname op@token\the\count5\endcsname\s@pow\relax
+ \ifnum\@parenthesis=\z@
+ \count3=\count5
+ \count5=\z@
+ \fi
+ \fi
+ \advance\count5\m@ne
+ \repeat
+ \ifnum\count3=\z@
+ \ifnum\@parenthesis=\z@
+ \search@primary{\the\count1}{\the\count255}%
+ \else
+ \errmessage{! Syntax error: unbalanced parenthesis}%
+ \fi
+ \else
+ \advance\count3\m@ne
+ \search@power{\the\count1}{\the\count3}%
+ \advance\count3\tw@
+ \search@power{\the\count3}{\the\count255}%
+ \advance\count3\m@ne
+ \@tokenuse{\the\count3}%
+ \fi
+ \fi
+ \endgroup
+}
+\def\search@primary#1#2{%
+ \begingroup
+ \count1=#1\relax
+ \count255=#2\relax
+ \ifnum\count1=\count255
+ \@tokenuse{#1}%
+ \else
+ \edef\current@cnt{#1}%
+ \expandafter\compare@PS@operator\PS@operator@list,\@nil
+ \expandafter\ifx\csname op@token#1\endcsname\s@lpar\relax
+ \expandafter\ifx\csname op@token#2\endcsname\s@rpar\relax
+ \advance\count1\@ne
+ \advance\count255\m@ne
+ \search@term{\the\count1}{\the\count255}%
+ \else
+ \errmessage{Syntax error: Garbage after parenthesis
+ (tokens '#1' to '#2')}%
+ \fi
+ \fi
+ \fi
+ \endgroup
+}
+
+\let\@nil\relax
+
+\def\compare@PS@operator#1,#2\@nil{%
+ \def\@tempa{#1}%
+ \def\@tempb{#2}%
+ \expandafter\ifx\csname op@token\current@cnt\endcsname\@tempa%
+ \advance\count1\@ne
+ \search@primary{\the\count1}{\the\count255}%
+ \advance\count1\m@ne
+ \@tokenuse{\the\count1}%
+ \fi
+ \ifx\@tempb\empty
+ \let\next\relax
+ \let\@tempb\relax
+ \else
+ \let\next\compare@PS@operator
+ \fi
+ \expandafter\next\@tempb\@nil
+}
+
+
+\def\infixtoRPN{%
+ \begingroup
+ \catcode`\ =12
+ \catcode`\^=12
+ \catcode`\_=11
+ \infixt@RPN
+}
+\def\infixt@RPN#1{%
+ \xdef\@expression{#1}%
+ \endgroup
+ \def\RPN{}%
+ \expandafter\scan@line\expandafter{\@expression}%
+ \expandafter\ifx\csname op@token\the\token@cpt\endcsname\relax
+ \advance\token@cpt\m@ne
+ \fi
+ \search@term{1}{\the\token@cpt}%
+}
+
+\catcode`\@=\opAtCode\relax
+\catcode`\^=\opHatCode\relax
+\catcode`\_=\opUnderscoreCode\relax
+\endinput
diff --git a/Master/texmf-dist/doc/generic/pst-infixplot/pst-infixplot-doc.tex b/Master/texmf-dist/doc/generic/pst-infixplot/pst-infixplot-doc.tex
new file mode 100644
index 00000000000..022ec07f0dc
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-infixplot/pst-infixplot-doc.tex
@@ -0,0 +1,216 @@
+\documentclass{article}
+
+\usepackage[T1]{fontenc}
+\usepackage[ansinew]{inputenc}
+
+\usepackage[a4paper,dvips,margin=1.5cm,includeheadfoot]{geometry}
+
+\usepackage{pst-infixplot,fancyhdr}
+
+\usepackage[pstricks,baw]{fvrb-ex}
+
+\makeatletter
+\renewcommand{\Begin@Example}{%
+\parindent=0pt
+\multiply\topsep by 2 \VerbatimEnvironment
+\begin{VerbatimOut}[codes={\catcode`\£=12\catcode`\?=12\catcode`\&=12%
+ \catcode`\"=12}]{\jobname.tmp}}
+
+\renewcommand{\Below@Example}[1]{%
+\VerbatimInput[gobble=0,commentchar=£,commandchars=?&",numbersep=3pt]%
+ {\jobname.tmp}
+\catcode`\£=9\relax%
+\NoHighlight@Attributes % To suppress possible highlighting
+\ifFvrbEx@Grid\vspace{5pt}\fi
+#1%
+\ifFvrbEx@Grid\vspace{5pt}\fi
+\par}
+
+\renewcommand{\SideBySide@Example}[1]{%
+\@tempdimb=\FV@XRightMargin \advance\@tempdimb -5mm
+\begin{minipage}[c]{\@tempdimb}
+ \fvset{xrightmargin=0pt}
+ \catcode`\£=9\relax%
+ \NoHighlight@Attributes % To suppress possible highlighting
+ #1
+\end{minipage}%
+\@tempdimb=\textwidth \advance\@tempdimb -\FV@XRightMargin \advance\@tempdimb 5mm
+\begin{minipage}[c]{\@tempdimb}
+ \VerbatimInput[gobble=0,commentchar=£,commandchars=?&",numbersep=3pt,
+ xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp}
+\end{minipage}}
+% The \NoHighlight@Attributes from `hbaw' and `hcolors' packages
+% must be modified too
+\def\NoHighlight@Attributes{%
+\catcode`\?=0\relax%
+\catcode`\&=1\relax%
+\catcode`\"=2\relax%
+\def\HLa##1{##1}%
+\def\HLb##1{##1}%
+\def\HLc##1{##1}%
+\def\HLd##1{##1}%
+\def\HLe##1{##1}%
+\def\HLf##1{##1}%
+\def\HLBFa##1{##1}%
+\def\HLBFb##1{##1}%
+\def\HLBFc##1{##1}%
+\def\HLBFd##1{##1}%
+\def\HLBFe##1{##1}%
+\def\HLBFf##1{##1}%
+\def\HLITa##1{##1}%
+\def\HLITb##1{##1}%
+\def\HLITc##1{##1}%
+\def\HLITd##1{##1}%
+\def\HLITe##1{##1}%
+\def\HLITf##1{##1}%
+\def\HLCBBa##1{##1}%
+\def\HLCBBb##1{##1}%
+\def\HLCBBc##1{##1}%
+\def\HLCBBd##1{##1}%
+\def\HLCBBe##1{##1}%
+\def\HLCBBf##1{##1}%
+\def\HLCBBz##1{##1}%
+\def\HLCBWa##1{##1}%
+\def\HLCBWb##1{##1}%
+\def\HLCBWc##1{##1}%
+\def\HLCBWd##1{##1}%
+\def\HLCBWe##1{##1}%
+\def\HLCBWf##1{##1}%
+\def\HLCBWz##1{##1}%
+}
+
+\makeatother
+
+\fvset{numbers=none,frame=single,labelposition=topline,gobble=2}
+
+\DefineShortVerb{\|}
+
+\newcommand{\pstInfixplotPackage}{\textbf{`pst-infixplot'}}
+\newcommand{\InfixRPNPackage}{\textbf{`infix-RPN'}}
+
+\lhead{\InfixRPNPackage{} -- \pstInfixplotPackage}\rhead{From infix expressions to Reverse Polish
+Notation} \pagestyle{fancy}
+
+\begin{document}
+\VerbatimFootnotes
+
+\title{\InfixRPNPackage{} -- \pstInfixplotPackage \\ \normalsize ver. 0.1}
+\author{%
+ Jean-Côme \textsc{Charpentier} \texttt{<jean-côme.charpentier@wanadoo.fr>}\\
+ Christophe \textsc{Jorssen} \texttt{<christophe.jorssen@libre.fr.invalid>}\\
+ \footnotesize `libre' is the french word for `free'
+}
+\date{2004/07/14}
+\maketitle
+
+\begin{abstract}
+Plotting functions with \texttt{pst-plot} is very powerful but sometimes difficult to learn since
+the syntax of |\psplot| and |\parametricplot| requires some PostScript knowledge. What
+\InfixRPNPackage{} and \pstInfixplotPackage{} intend to do is to simplify the usage of
+\texttt{pst-plot} for the beginner, providing macro commands that convert natural mathematical
+expressions to PS syntax.
+\end{abstract}
+
+\section{Basic examples: usage of \InfixRPNPackage}
+
+|\usepackage{infix-RPN}| for \LaTeX{} users or |\input infix-RPN.tex| for \TeX{} users gives access
+to three macros: |\infixtoRPN|, |\RPN| and |\DeclareNewPSOperator|.
+
+The macro |\infixtoRPN| takes an infix expression as argument and converts it to Reverse Polish
+Notation. The result of the conversion is put in the macro |\RPN|.
+
+\begin{SideBySideExample}[xrightmargin=6cm]
+ ?HLCBWz&\infixtoRPN"{2+3-4*x}?HLCBWz&\RPN"
+
+ \infixtoRPN{log(-x)}\RPN
+
+ \infixtoRPN{2*sin(x/y)}\RPN
+\end{SideBySideExample}
+
+\bigskip\bigskip
+
+Multiple signs are OK:
+
+\begin{SideBySideExample}[xrightmargin=6cm]
+ \infixtoRPN{3?HLCBWz&+-+--"0.5}\RPN
+\end{SideBySideExample}
+
+\bigskip\bigskip
+
+For operators that require more than one argument, arguments must be separated with commas:
+
+\begin{SideBySideExample}[xrightmargin=6cm]
+ \infixtoRPN{atan(x?HLCBWz&,"y)}\RPN
+\end{SideBySideExample}
+
+\bigskip\bigskip
+
+There is a difference between variables and operators. There are 11 pre-defined
+operators\footnote{Actually, there are five more operators defined : \texttt{add}, \texttt{sub},
+\texttt{mul}, \texttt{div} and \texttt{exp}. Those ones should \emph{not} be used direclty. Use
+|+|, |-|, |*|, |/| and |^| instead, which is, by the way, the main interest of using infix
+notation.}$^{,}$\footnote{If you use \texttt{pst-math} with \texttt{infix-RPN}, PS operators added
+by \texttt{pst-math} are declared by |\DeclareNewPSOperator| and are therefore directly accessible
+in any infix expression.} which are basically those of PostScript: \texttt{abs}, \texttt{sin},
+\texttt{cos}, \texttt{atan}, \texttt{neg}, \texttt{ceiling}, \texttt{floor}, \texttt{truncate},
+\texttt{sqrt}, \texttt{ln}, \texttt{log}. You can define more operators with the
+|\DeclareNewPSOperator| macro:
+
+\begin{SideBySideExample}[xrightmargin=6cm,label={Div is a PS operator defined by pstricks}]
+ ?HLCBWz&\DeclareNewPSOperator"{Div}
+ \infixtoRPN{Div(x,y)}\RPN
+\end{SideBySideExample}
+
+\section{Plot examples with \InfixRPNPackage}
+
+\begin{PSideBySideExample}[xrightmargin=10.5cm](0,-2)(10,3)
+ \psset{plotpoints=1000}
+ \psaxes{->}(0,0)(0,-2)(10,3)
+ \infixtoRPN{sqrt(x)}
+ \psplot[linecolor=green]{0}{10}{\RPN}
+ \infixtoRPN{x^0.4}
+ \psplot[linecolor=red]{0}{10}{\RPN}
+ \infixtoRPN{sin(-x*180/3.1415)}
+ \psplot[linecolor=blue]{0}{10}{\RPN}
+\end{PSideBySideExample}
+
+\section{Plot examples with \pstInfixplotPackage}
+
+If you don't want the limitation of having to invoke two macro calls (namely |\infixtoRPN| and
+|\RPN|) for plotting, then use the \pstInfixplotPackage{} package! \LaTeX{} users should type
+|\usepackage{pst-infixplot}| in the preamble when \TeX{} users should type %
+|\input pst-infixplot.tex|.
+
+\pstInfixplotPackage{} automatically loads \texttt{pstricks}, \texttt{pst-plot} and
+\texttt{infix-RPN}. \pstInfixplotPackage{} defines two macro commands: |\psPlot| and
+|\parametricPlot|.
+
+The syntax of |\psPlot| is:
+\texttt{\char`\\psPlot[\textit{<parameters>}]\{\textit{x\_begin}\}\{\textit{x\_end}\}\{\textit{infix\_expression}\}}
+where the optional \texttt{\textit{parameters}} are any pstricks valid parameter.
+
+\begin{PSideBySideExample}[xrightmargin=7.5cm](0,-2)(7,3)
+ \psset{plotpoints=1000}
+ \psaxes{->}(0,0)(0,-2)(7,3)
+ ?HLCBWz&\psPlot"[linecolor=green]{0}{7}{sqrt(x)}
+ \psPlot[linecolor=red]{0}{7}{x^0.4}
+ \psPlot[linecolor=blue]{0}{7}{sin(-x*180/3.1415)}
+ \psplot{0}{7}{x neg 180 mul 3.1415 div cos}
+\end{PSideBySideExample}
+
+The syntax of |\parametricPlot| is:
+
+\texttt{\char`\\parametricPlot[\textit{<parameters>}]\{\textit{x\_begin}\}\{\textit{x\_end}\}\{\textit{infix\_x\_expression}\}%
+\{\textit{infix\_y\_expression}\}} where the optional \texttt{\textit{parameters}} are any pstricks
+valid parameter.
+
+\begin{PSideBySideExample}[xrightmargin=4cm](0,-2)(3.8,3)
+ \psset{plotpoints=1000}
+ \psaxes{->}(0,0)(0,-2)(3.8,3)
+ ?HLCBWz&\parametricPlot"[linecolor=red]{-30}{70}{3.5*cos(t)}{2.3*sqrt(abs(sin(t)))}
+ \parametricPlot[linecolor=green]{-30}{60}{4*sqrt(abs(floor(t)))/10}{t/20}
+ \parametricplot{-30}{60}{2 t cos mul 3 t sin mul}
+\end{PSideBySideExample}
+
+
+\end{document}
diff --git a/Master/texmf-dist/doc/generic/pst-infixplot/pst-infixplot.pdf b/Master/texmf-dist/doc/generic/pst-infixplot/pst-infixplot.pdf
new file mode 100644
index 00000000000..b655aed1d2f
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-infixplot/pst-infixplot.pdf
Binary files differ